@effect/platform-node 4.0.0-beta.98 → 4.0.0-rc.108

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 (137) hide show
  1. package/AGENTS.md +381 -0
  2. package/CLAUDE.md +381 -0
  3. package/README.md +10 -3
  4. package/ai-docs/README.md +44 -0
  5. package/ai-docs/package.json +36 -0
  6. package/ai-docs/src/01_effect/01_basics/01_effect-gen.ts +30 -0
  7. package/ai-docs/src/01_effect/01_basics/02_effect-fn.ts +39 -0
  8. package/ai-docs/src/01_effect/01_basics/10_creating-effects.ts +74 -0
  9. package/ai-docs/src/01_effect/01_basics/index.md +5 -0
  10. package/ai-docs/src/01_effect/02_schema/10_schema-basics.ts +43 -0
  11. package/ai-docs/src/01_effect/02_schema/index.md +7 -0
  12. package/ai-docs/src/01_effect/03_services/01_service.ts +45 -0
  13. package/ai-docs/src/01_effect/03_services/10_reference.ts +10 -0
  14. package/ai-docs/src/01_effect/03_services/20_layer-composition.ts +70 -0
  15. package/ai-docs/src/01_effect/03_services/20_layer-unwrap.ts +66 -0
  16. package/ai-docs/src/01_effect/03_services/index.md +5 -0
  17. package/ai-docs/src/01_effect/04_errors/01_error-handling.ts +30 -0
  18. package/ai-docs/src/01_effect/04_errors/10_catch-tags.ts +24 -0
  19. package/ai-docs/src/01_effect/04_errors/20_reason-errors.ts +64 -0
  20. package/ai-docs/src/01_effect/04_errors/index.md +1 -0
  21. package/ai-docs/src/01_effect/05_resources/10_acquire-release.ts +105 -0
  22. package/ai-docs/src/01_effect/05_resources/20_layer-side-effects.ts +31 -0
  23. package/ai-docs/src/01_effect/05_resources/30_layer-map.ts +86 -0
  24. package/ai-docs/src/01_effect/05_resources/index.md +3 -0
  25. package/ai-docs/src/01_effect/06_running/10_run-main.ts +30 -0
  26. package/ai-docs/src/01_effect/06_running/20_layer-launch.ts +27 -0
  27. package/ai-docs/src/01_effect/06_running/index.md +1 -0
  28. package/ai-docs/src/01_effect/07_pubsub/10_pubsub.ts +56 -0
  29. package/ai-docs/src/01_effect/07_pubsub/index.md +3 -0
  30. package/ai-docs/src/03_stream/10_creating-streams.ts +103 -0
  31. package/ai-docs/src/03_stream/20_consuming-streams.ts +137 -0
  32. package/ai-docs/src/03_stream/30_encoding.ts +165 -0
  33. package/ai-docs/src/03_stream/index.md +4 -0
  34. package/ai-docs/src/04_integration/10_managed-runtime.ts +129 -0
  35. package/ai-docs/src/04_integration/index.md +5 -0
  36. package/ai-docs/src/05_batching/10_request-resolver.ts +89 -0
  37. package/ai-docs/src/05_batching/index.md +3 -0
  38. package/ai-docs/src/06_schedule/10_schedules.ts +110 -0
  39. package/ai-docs/src/06_schedule/index.md +3 -0
  40. package/ai-docs/src/07_datetime/10_creating-and-formatting.ts +30 -0
  41. package/ai-docs/src/07_datetime/20_time-zones.ts +44 -0
  42. package/ai-docs/src/07_datetime/index.md +5 -0
  43. package/ai-docs/src/08_observability/10_logging.ts +66 -0
  44. package/ai-docs/src/08_observability/20_otlp-tracing.ts +95 -0
  45. package/ai-docs/src/08_observability/index.md +7 -0
  46. package/ai-docs/src/09_testing/10_effect-tests.ts +55 -0
  47. package/ai-docs/src/09_testing/20_layer-tests.ts +138 -0
  48. package/ai-docs/src/09_testing/index.md +1 -0
  49. package/ai-docs/src/10_predicate/01_basics.ts +14 -0
  50. package/ai-docs/src/10_predicate/index.md +9 -0
  51. package/ai-docs/src/50_http-client/10_basics.ts +102 -0
  52. package/ai-docs/src/50_http-client/index.md +3 -0
  53. package/ai-docs/src/51_http-server/10_basics.ts +116 -0
  54. package/ai-docs/src/51_http-server/fixtures/api/Api.ts +14 -0
  55. package/ai-docs/src/51_http-server/fixtures/api/Authorization.ts +36 -0
  56. package/ai-docs/src/51_http-server/fixtures/api/System.ts +10 -0
  57. package/ai-docs/src/51_http-server/fixtures/api/Users.ts +91 -0
  58. package/ai-docs/src/51_http-server/fixtures/domain/User.ts +12 -0
  59. package/ai-docs/src/51_http-server/fixtures/domain/UserErrors.ts +22 -0
  60. package/ai-docs/src/51_http-server/fixtures/server/Authorization.ts +36 -0
  61. package/ai-docs/src/51_http-server/fixtures/server/Users/http.ts +71 -0
  62. package/ai-docs/src/51_http-server/fixtures/server/Users.ts +62 -0
  63. package/ai-docs/src/51_http-server/index.md +3 -0
  64. package/ai-docs/src/60_child-process/10_working-with-child-processes.ts +117 -0
  65. package/ai-docs/src/60_child-process/index.md +3 -0
  66. package/ai-docs/src/70_cli/10_basics.ts +136 -0
  67. package/ai-docs/src/70_cli/index.md +5 -0
  68. package/ai-docs/src/71_ai/10_language-model.ts +156 -0
  69. package/ai-docs/src/71_ai/20_tools.ts +226 -0
  70. package/ai-docs/src/71_ai/30_chat.ts +158 -0
  71. package/ai-docs/src/71_ai/fixtures/domain/LaunchPlan.ts +9 -0
  72. package/ai-docs/src/71_ai/index.md +5 -0
  73. package/ai-docs/src/80_cluster/10_entities.ts +97 -0
  74. package/ai-docs/src/80_cluster/index.md +4 -0
  75. package/ai-docs/src/index.md +10 -0
  76. package/ai-docs/tsconfig.json +24 -0
  77. package/dist/Mime.js.map +1 -1
  78. package/dist/NodeClusterHttp.d.ts +1 -0
  79. package/dist/NodeClusterHttp.d.ts.map +1 -1
  80. package/dist/NodeClusterHttp.js +6 -1
  81. package/dist/NodeClusterHttp.js.map +1 -1
  82. package/dist/NodeClusterSocket.d.ts +1 -0
  83. package/dist/NodeClusterSocket.d.ts.map +1 -1
  84. package/dist/NodeClusterSocket.js +10 -2
  85. package/dist/NodeClusterSocket.js.map +1 -1
  86. package/dist/NodeCrypto.js.map +1 -1
  87. package/dist/NodeFileSystem.js.map +1 -1
  88. package/dist/NodeHttpClient.d.ts +18 -18
  89. package/dist/NodeHttpClient.d.ts.map +1 -1
  90. package/dist/NodeHttpClient.js +26 -20
  91. package/dist/NodeHttpClient.js.map +1 -1
  92. package/dist/NodeHttpIncomingMessage.js.map +1 -1
  93. package/dist/NodeHttpPlatform.d.ts +8 -4
  94. package/dist/NodeHttpPlatform.d.ts.map +1 -1
  95. package/dist/NodeHttpPlatform.js +38 -0
  96. package/dist/NodeHttpPlatform.js.map +1 -1
  97. package/dist/NodeHttpServer.d.ts +21 -16
  98. package/dist/NodeHttpServer.d.ts.map +1 -1
  99. package/dist/NodeHttpServer.js +29 -21
  100. package/dist/NodeHttpServer.js.map +1 -1
  101. package/dist/NodeHttpServerRequest.js.map +1 -1
  102. package/dist/NodeMultipart.d.ts.map +1 -1
  103. package/dist/NodeMultipart.js +3 -2
  104. package/dist/NodeMultipart.js.map +1 -1
  105. package/dist/NodeMultipartParser.d.ts +97 -0
  106. package/dist/NodeMultipartParser.d.ts.map +1 -0
  107. package/dist/NodeMultipartParser.js +108 -0
  108. package/dist/NodeMultipartParser.js.map +1 -0
  109. package/dist/NodePath.js.map +1 -1
  110. package/dist/NodeRedis.js.map +1 -1
  111. package/dist/NodeRuntime.js.map +1 -1
  112. package/dist/NodeServices.js.map +1 -1
  113. package/dist/NodeSocket.js.map +1 -1
  114. package/dist/NodeStdio.js.map +1 -1
  115. package/dist/NodeTerminal.js.map +1 -1
  116. package/dist/NodeWorker.js.map +1 -1
  117. package/dist/NodeWorkerRunner.d.ts.map +1 -1
  118. package/dist/NodeWorkerRunner.js +30 -18
  119. package/dist/NodeWorkerRunner.js.map +1 -1
  120. package/dist/Undici.d.ts +2 -2
  121. package/dist/Undici.js +2 -2
  122. package/dist/Undici.js.map +1 -1
  123. package/dist/index.d.ts +4 -0
  124. package/dist/index.d.ts.map +1 -1
  125. package/dist/index.js +4 -0
  126. package/dist/index.js.map +1 -1
  127. package/package.json +18 -16
  128. package/src/NodeClusterHttp.ts +6 -2
  129. package/src/NodeClusterSocket.ts +8 -2
  130. package/src/NodeHttpClient.ts +27 -20
  131. package/src/NodeHttpPlatform.ts +49 -0
  132. package/src/NodeHttpServer.ts +61 -40
  133. package/src/NodeMultipart.ts +5 -4
  134. package/src/NodeMultipartParser.ts +184 -0
  135. package/src/NodeWorkerRunner.ts +39 -23
  136. package/src/Undici.ts +2 -2
  137. package/src/index.ts +5 -0
@@ -0,0 +1,158 @@
1
+ /**
2
+ * @title Stateful chat sessions
3
+ *
4
+ * The AI `Chat` module maintains conversation history automatically. Build
5
+ * AI agents or chat assistants.
6
+ */
7
+ import { OpenAiClient, OpenAiLanguageModel } from "@effect/ai-openai"
8
+ import { Config, Context, DateTime, Effect, Layer, Ref, Schema } from "effect"
9
+ import { AiError, Chat, Prompt, Tool, Toolkit } from "effect/unstable/ai"
10
+ import { FetchHttpClient } from "effect/unstable/http"
11
+
12
+ // ---------------------------------------------------------------------------
13
+ // Provider setup
14
+ // ---------------------------------------------------------------------------
15
+
16
+ const OpenAiClientLayer = OpenAiClient.layerConfig({
17
+ apiKey: Config.redacted("OPENAI_API_KEY")
18
+ }).pipe(Layer.provide(FetchHttpClient.layer))
19
+
20
+ // ---------------------------------------------------------------------------
21
+ // Tools for the agentic loop
22
+ // ---------------------------------------------------------------------------
23
+
24
+ const Tools = Toolkit.make(Tool.make("getCurrentTime", {
25
+ description: "Get the current time in ISO format",
26
+ parameters: Schema.Struct({
27
+ id: Schema.String
28
+ }),
29
+ success: Schema.String
30
+ }))
31
+
32
+ const ToolsLayer = Tools.toLayer(Effect.gen(function*() {
33
+ yield* Effect.logDebug("Initializing tools...")
34
+ return Tools.of({
35
+ getCurrentTime: Effect.fn("Tools.getCurrentTime")(function*(_) {
36
+ const now = yield* DateTime.now
37
+ return DateTime.formatIso(now)
38
+ })
39
+ })
40
+ }))
41
+
42
+ // ---------------------------------------------------------------------------
43
+ // Service that wraps Chat for a domain use-case
44
+ // ---------------------------------------------------------------------------
45
+
46
+ export class AiAssistantError extends Schema.TaggedError<AiAssistantError>()("AiAssistantError", {
47
+ reason: AiError.AiErrorReason
48
+ }) {
49
+ static fromAiError(error: AiError.AiError) {
50
+ return new AiAssistantError({ reason: error.reason })
51
+ }
52
+ }
53
+
54
+ export class AiAssistant extends Context.Service<AiAssistant, {
55
+ // Send a message while maintaining conversation history across turns.
56
+ chat(message: string): Effect.Effect<string, AiAssistantError>
57
+ // Ask a question and use an agentic loop with tool calls to answer it.
58
+ agent(question: string): Effect.Effect<string, AiAssistantError>
59
+ }>()("acme/AiAssistant") {
60
+ static readonly layer = Layer.effect(
61
+ AiAssistant,
62
+ Effect.gen(function*() {
63
+ // Choose the model you want to use for the chat sessions.
64
+ const modelLayer = yield* OpenAiLanguageModel.model("gpt-5.2").captureRequirements
65
+
66
+ // ---------------------------------------------------------------------------
67
+ // 1. Chat.empty — basic multi-turn conversation
68
+ // ---------------------------------------------------------------------------
69
+
70
+ // Create a new chat session with `Chat.empty` or `Chat.fromPrompt`. The
71
+ // session maintains conversation history automatically, so you can focus on
72
+ // the current turn without having to manage context.
73
+ const newSession = yield* Chat.fromPrompt(Prompt.empty.pipe(
74
+ Prompt.setSystem("You are a helpful assistant that answers questions.")
75
+ ))
76
+
77
+ // You can also create a chat using a json export.
78
+ const json = yield* newSession.exportJson
79
+ const session = yield* Chat.fromJson(json)
80
+
81
+ const chat = Effect.fn("AiAssistant.chat")(
82
+ function*(message: string) {
83
+ // Create a new turn in the conversation by passing the user's message
84
+ // to `session.generateText`.
85
+ const response = yield* session.generateText({ prompt: message }).pipe(
86
+ // Provide the model layer to use.
87
+ // You could potentially use different models for different turns,
88
+ // or even switch models in the middle of a conversation.
89
+ Effect.provide(modelLayer)
90
+ )
91
+
92
+ // You can inspect the accumulated history at any point through the
93
+ // `history` ref on the chat instance.
94
+ const history = yield* Ref.get(session.history)
95
+ yield* Effect.logInfo(
96
+ `Conversation has ${history.content.length} messages`
97
+ )
98
+
99
+ return response.text
100
+ },
101
+ Effect.mapError((error) => AiAssistantError.fromAiError(error))
102
+ )
103
+
104
+ // ---------------------------------------------------------------------------
105
+ // 2. Create agentic loops with tools
106
+ // ---------------------------------------------------------------------------
107
+
108
+ const tools = yield* Tools
109
+ const agent = Effect.fn("AiAssistant.agent")(
110
+ function*(question: string) {
111
+ // We start the agent with a system prompt and the user question. The
112
+ // agent can then call tools in a loop until it decides to return a
113
+ // final answer.
114
+ const session = yield* Chat.fromPrompt([
115
+ { role: "system", content: "You are an assistant that can use tools to answer questions." },
116
+ { role: "user", content: question }
117
+ ])
118
+
119
+ while (true) {
120
+ const response = yield* session.generateText({
121
+ prompt: [], // No additional prompt — the model has full access to the conversation history
122
+ toolkit: tools // Provide the tools to the model
123
+ }).pipe(
124
+ // Provide the model layer to use.
125
+ // You could potentially use different models for different turns,
126
+ // or even switch models in the middle of a conversation.
127
+ Effect.provide(modelLayer)
128
+ )
129
+ if (response.toolCalls.length > 0) {
130
+ // If the model called any tools, execute them and the Chat module
131
+ // will automatically add the tool results to the conversation
132
+ // history before the next turn.
133
+ continue
134
+ }
135
+ // If there are no tool calls, the model has returned a final answer
136
+ // and we can exit the loop.
137
+ return response.text
138
+ }
139
+ },
140
+ // Remap AI errors to our domain-specific error type, but die on
141
+ // unexpected errors.
142
+ Effect.catchTag(
143
+ "AiError",
144
+ (error) => Effect.fail(AiAssistantError.fromAiError(error)),
145
+ (e) => Effect.die(e)
146
+ )
147
+ )
148
+
149
+ return AiAssistant.of({
150
+ chat,
151
+ agent
152
+ })
153
+ })
154
+ ).pipe(
155
+ // Provide the OpenAI client and tools layers to the AiAssistant service.
156
+ Layer.provide([OpenAiClientLayer, ToolsLayer])
157
+ )
158
+ }
@@ -0,0 +1,9 @@
1
+ import { Schema } from "effect"
2
+
3
+ export class LaunchPlan extends Schema.Class<LaunchPlan>("LaunchPlan")({
4
+ audience: Schema.Literals(["developers", "operators", "platform teams"]),
5
+ channels: Schema.Array(Schema.String),
6
+ launchDate: Schema.String,
7
+ summary: Schema.String,
8
+ keyRisks: Schema.Array(Schema.String)
9
+ }) {}
@@ -0,0 +1,5 @@
1
+ ## Working with AI modules
2
+
3
+ Effect's AI modules provide a provider-agnostic interface for language models.
4
+ You can generate text, decode structured objects with `Schema` and stream partial
5
+ responses.
@@ -0,0 +1,97 @@
1
+ /**
2
+ * @title Defining cluster entities
3
+ *
4
+ * Define distributed entity RPCs and run them in a cluster.
5
+ */
6
+ import { NodeClusterSocket, NodeRuntime } from "@effect/platform-node"
7
+ import { Effect, Layer, Ref, Schema } from "effect"
8
+ import { ClusterSchema, Entity, TestRunner } from "effect/unstable/cluster"
9
+ import { Rpc } from "effect/unstable/rpc"
10
+ import type { SqlClient } from "effect/unstable/sql"
11
+
12
+ export const Increment = Rpc.make("Increment", {
13
+ payload: { amount: Schema.Int },
14
+ success: Schema.Int
15
+ })
16
+
17
+ export const GetCount = Rpc.make("GetCount", {
18
+ success: Schema.Int
19
+ })
20
+ // If you want GetCount messages to be persisted, you can annotate the RPC
21
+ // schema with `ClusterSchema.Persisted`.
22
+ //
23
+ // By default, messages are volatile and only sent over a network.
24
+ .annotate(ClusterSchema.Persisted, true)
25
+
26
+ // `Entity.make` takes an array of Rpc definitions
27
+ export const Counter = Entity.make("Counter", [Increment, GetCount])
28
+
29
+ // Entity handlers can keep in-memory state while the entity is active.
30
+ // `maxIdleTime` controls passivation: if the entity is idle long enough, it is
31
+ // stopped and later recreated on demand.
32
+ export const CounterEntityLayer = Counter.toLayer(
33
+ Effect.gen(function*() {
34
+ const count = yield* Ref.make(0)
35
+
36
+ return Counter.of({
37
+ Increment: ({ payload }) => Ref.updateAndGet(count, (current) => current + payload.amount),
38
+ GetCount: () =>
39
+ Ref.get(count).pipe(
40
+ // Add Rpc.fork to allow the GetCount handler to run concurrently with
41
+ // Increment handlers.
42
+ //
43
+ // This opts-out of the default behavior where all handlers for a
44
+ // given entity run sequentially.
45
+ Rpc.fork
46
+ )
47
+ })
48
+ }),
49
+ { maxIdleTime: "5 minutes" }
50
+ )
51
+
52
+ // If you ever need to access an entity client, you can use the `client`
53
+ // property on the entity definition.
54
+ export const useCounter = Effect.gen(function*() {
55
+ const clientFor = yield* Counter.client
56
+ const counter = clientFor("counter-123")
57
+
58
+ const afterIncrement = yield* counter.Increment({ amount: 1 })
59
+ const currentCount = yield* counter.GetCount()
60
+
61
+ console.log(`Count after increment: ${afterIncrement}, current count: ${currentCount}`)
62
+ })
63
+
64
+ // `SingleRunner.layer` is useful for local development / tests where you still
65
+ // want the cluster entity runtime model.
66
+ declare const SqlClientLayer: Layer.Layer<SqlClient.SqlClient>
67
+
68
+ // Create the cluster layer using `NodeClusterSocket.layer`
69
+ const ClusterLayer = NodeClusterSocket.layer().pipe(
70
+ Layer.provide(SqlClientLayer)
71
+ )
72
+
73
+ // You can also use `TestRunner.layer` to run your entities in a single process,
74
+ // without any network communication and in-memory storage. This is useful for testing and
75
+ // development.
76
+ const ClusterLayerTest = TestRunner.layer
77
+
78
+ // Merge all your entity layers together and provide the cluster layer to run
79
+ // them in a cluster.
80
+ const EntitiesLayer = Layer.mergeAll(
81
+ CounterEntityLayer
82
+ )
83
+
84
+ const ProductionLayer = EntitiesLayer.pipe(
85
+ Layer.provide(ClusterLayer)
86
+ )
87
+
88
+ export const TestLayer = EntitiesLayer.pipe(
89
+ // For testing, we can use `Layer.provideMerge` to tests can access storage
90
+ // and other cluster services directly.
91
+ Layer.provideMerge(ClusterLayerTest)
92
+ )
93
+
94
+ // Finally, run your app with the entities layer.
95
+ Layer.launch(ProductionLayer).pipe(
96
+ NodeRuntime.runMain
97
+ )
@@ -0,0 +1,4 @@
1
+ ## Building distributed applications with cluster
2
+
3
+ The cluster modules let you model stateful services as entities and distribute
4
+ them across multiple machines.
@@ -0,0 +1,10 @@
1
+ # Effect library documentation
2
+
3
+ This documentation covers the Effect library and its related packages.
4
+
5
+ When you need to find information about Effect, use this documentation and the
6
+ Effect source code available in your environment. Avoid unrelated copies of
7
+ Effect or external documentation, as they may be outdated or incorrect.
8
+
9
+ **Note**: The examples in this documentation contain comments for illustration
10
+ purposes. In practice, you would not include these comments in your code.
@@ -0,0 +1,24 @@
1
+ {
2
+ "$schema": "https://json.schemastore.org/tsconfig",
3
+ "extends": "../tsconfig.base.json",
4
+ "include": ["src/**/*.ts", "src/**/*.tsx"],
5
+ "compilerOptions": {
6
+ "rootDir": ".",
7
+ "noEmit": true,
8
+ "declaration": false,
9
+ "declarationMap": false,
10
+ "composite": false,
11
+ "incremental": false,
12
+ "types": ["node"],
13
+ "plugins": [
14
+ {
15
+ "name": "@effect/language-service",
16
+ "namespaceImportPackages": [],
17
+ "diagnosticSeverity": {
18
+ "floatingEffect": "off",
19
+ "preferSchemaOverJson": "off"
20
+ }
21
+ }
22
+ ]
23
+ }
24
+ }
package/dist/Mime.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Mime.js","names":["Mime"],"sources":["../src/Mime.ts"],"sourcesContent":[null],"mappings":"AAAA;;;;;;AAOA;AAEA;;;AAGA,OAAOA,IAAI,MAAM,MAAM;AAEvB;;;;AAIA,cAAc,MAAM;AAEpB;;;;AAIA,eAAeA,IAAI","ignoreList":[]}
1
+ {"version":3,"file":"Mime.js","names":[],"sources":["../src/Mime.ts"],"sourcesContent":[null],"mappings":"AAAA;;;;;;AAOA;AAEA;;;AAGA,OAAO,IAAI,MAAM,MAAM;AAEvB;;;;AAIA,cAAc,MAAM;AAEpB;;;;AAIA,eAAe,IAAI","ignoreList":[]}
@@ -42,6 +42,7 @@ layerK8sHttpClient } from "./NodeClusterSocket.ts";
42
42
  export declare const layer: <const ClientOnly extends boolean = false, const Storage extends "local" | "sql" | "byo" = never>(options: {
43
43
  readonly transport: "http" | "websocket";
44
44
  readonly serialization?: "msgpack" | "ndjson" | undefined;
45
+ readonly serializationMaxBufferSize?: number | "unbounded" | undefined;
45
46
  readonly clientOnly?: ClientOnly | undefined;
46
47
  readonly storage?: Storage | undefined;
47
48
  readonly runnerHealth?: "ping" | "k8s" | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"NodeClusterHttp.d.ts","sourceRoot":"","sources":["../src/NodeClusterHttp.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAA;AAE5C,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAGrC,OAAO,KAAK,cAAc,MAAM,wCAAwC,CAAA;AAExE,OAAO,KAAK,OAAO,MAAM,iCAAiC,CAAA;AAC1D,OAAO,KAAK,aAAa,MAAM,uCAAuC,CAAA;AACtE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAA;AAChE,OAAO,KAAK,cAAc,MAAM,wCAAwC,CAAA;AAGxE,OAAO,KAAK,KAAK,IAAI,MAAM,2BAA2B,CAAA;AACtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAA;AACrE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAA;AACjE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sCAAsC,CAAA;AAEtE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAA;AAK9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAGrD,OAAO;AACL;;;;;GAKG;AACH,kBAAkB,EACnB,MAAM,wBAAwB,CAAA;AAE/B;;;;;;;GAOG;AACH,eAAO,MAAM,KAAK,GAChB,KAAK,CAAC,UAAU,SAAS,OAAO,GAAG,KAAK,EACxC,KAAK,CAAC,OAAO,SAAS,OAAO,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,WAC5C;IACT,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,CAAA;IACxC,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAA;IACzD,QAAQ,CAAC,UAAU,CAAC,EAAE,UAAU,GAAG,SAAS,CAAA;IAC5C,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IACtC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS,CAAA;IAClD,QAAQ,CAAC,eAAe,CAAC,EAAE;QACzB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QACvC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KAC5C,GAAG,SAAS,CAAA;IACb,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,GAAG,SAAS,CAAA;CACxF,KAAG,UAAU,SAAS,IAAI,GAAG,KAAK,CAAC,KAAK,CACrC,QAAQ,GAAG,OAAO,CAAC,OAAO,GAAG,CAAC,KAAK,SAAS,OAAO,GAAG,KAAK,GAAG,cAAc,CAAC,cAAc,CAAC,EAC5F,MAAM,CAAC,WAAW,EAClB,OAAO,SAAS,OAAO,GAAG,KAAK,GAC3B,KAAK,SAAS,OAAO,GAAG,CAAC,cAAc,CAAC,cAAc,GAAG,aAAa,CAAC,aAAa,CAAC,GACrF,SAAS,CACd,GACD,KAAK,CAAC,KAAK,CACT,QAAQ,GAAG,OAAO,CAAC,OAAO,GAAG,CAAC,KAAK,SAAS,OAAO,GAAG,KAAK,GAAG,cAAc,CAAC,cAAc,CAAC,EAC5F,UAAU,GAAG,MAAM,CAAC,WAAW,EAC/B,OAAO,SAAS,OAAO,GAAG,KAAK,GAC3B,KAAK,SAAS,OAAO,GAAG,CAAC,cAAc,CAAC,cAAc,GAAG,aAAa,CAAC,aAAa,CAAC,GACrF,SAAS,CAiDhB,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,KAAK,CACrC,YAAY,GACZ,IAAI,CAAC,SAAS,GACd,YAAY,GACZ,UAAU,EACZ,UAAU,EACV,cAAc,CAAC,cAAc,CAQV,CAAA"}
1
+ {"version":3,"file":"NodeClusterHttp.d.ts","sourceRoot":"","sources":["../src/NodeClusterHttp.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAA;AAE5C,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAGrC,OAAO,KAAK,cAAc,MAAM,wCAAwC,CAAA;AAExE,OAAO,KAAK,OAAO,MAAM,iCAAiC,CAAA;AAC1D,OAAO,KAAK,aAAa,MAAM,uCAAuC,CAAA;AACtE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAA;AAChE,OAAO,KAAK,cAAc,MAAM,wCAAwC,CAAA;AAGxE,OAAO,KAAK,KAAK,IAAI,MAAM,2BAA2B,CAAA;AACtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAA;AACrE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAA;AACjE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sCAAsC,CAAA;AAEtE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAA;AAM9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAGrD,OAAO;AACL;;;;;GAKG;AACH,kBAAkB,EACnB,MAAM,wBAAwB,CAAA;AAE/B;;;;;;;GAOG;AACH,eAAO,MAAM,KAAK,GAChB,KAAK,CAAC,UAAU,SAAS,OAAO,GAAG,KAAK,EACxC,KAAK,CAAC,OAAO,SAAS,OAAO,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,WAC5C;IACT,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,CAAA;IACxC,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAA;IACzD,QAAQ,CAAC,0BAA0B,CAAC,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAAA;IACtE,QAAQ,CAAC,UAAU,CAAC,EAAE,UAAU,GAAG,SAAS,CAAA;IAC5C,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IACtC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS,CAAA;IAClD,QAAQ,CAAC,eAAe,CAAC,EAAE;QACzB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QACvC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KAC5C,GAAG,SAAS,CAAA;IACb,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,GAAG,SAAS,CAAA;CACxF,KAAG,UAAU,SAAS,IAAI,GAAG,KAAK,CAAC,KAAK,CACrC,QAAQ,GAAG,OAAO,CAAC,OAAO,GAAG,CAAC,KAAK,SAAS,OAAO,GAAG,KAAK,GAAG,cAAc,CAAC,cAAc,CAAC,EAC5F,MAAM,CAAC,WAAW,EAClB,OAAO,SAAS,OAAO,GAAG,KAAK,GAC3B,KAAK,SAAS,OAAO,GAAG,CAAC,cAAc,CAAC,cAAc,GAAG,aAAa,CAAC,aAAa,CAAC,GACrF,SAAS,CACd,GACD,KAAK,CAAC,KAAK,CACT,QAAQ,GAAG,OAAO,CAAC,OAAO,GAAG,CAAC,KAAK,SAAS,OAAO,GAAG,KAAK,GAAG,cAAc,CAAC,cAAc,CAAC,EAC5F,UAAU,GAAG,MAAM,CAAC,WAAW,EAC/B,OAAO,SAAS,OAAO,GAAG,KAAK,GAC3B,KAAK,SAAS,OAAO,GAAG,CAAC,cAAc,CAAC,cAAc,GAAG,aAAa,CAAC,aAAa,CAAC,GACrF,SAAS,CAmDhB,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,KAAK,CACrC,YAAY,GACZ,IAAI,CAAC,SAAS,GACd,YAAY,GACZ,UAAU,EACZ,UAAU,EACV,cAAc,CAAC,cAAc,CAQV,CAAA"}
@@ -12,6 +12,7 @@ import * as SqlRunnerStorage from "effect/unstable/cluster/SqlRunnerStorage";
12
12
  import * as RpcSerialization from "effect/unstable/rpc/RpcSerialization";
13
13
  import { createServer } from "node:http";
14
14
  import { layerK8sHttpClient } from "./NodeClusterSocket.js";
15
+ import * as NodeCrypto from "./NodeCrypto.js";
15
16
  import * as NodeHttpClient from "./NodeHttpClient.js";
16
17
  import * as NodeHttpServer from "./NodeHttpServer.js";
17
18
  import * as NodeSocket from "./NodeSocket.js";
@@ -38,7 +39,11 @@ export const layer = options => {
38
39
  // with server
39
40
  : options.transport === "http" ? Layer.provide(HttpRunner.layerHttp, [layerHttpServer, NodeHttpClient.layerUndici]) : Layer.provide(HttpRunner.layerWebsocket, [layerHttpServer, NodeSocket.layerWebSocketConstructor]);
40
41
  const runnerHealth = options?.clientOnly ? Layer.empty : options?.runnerHealth === "k8s" ? RunnerHealth.layerK8s(options.runnerHealthK8s).pipe(Layer.provide(layerK8sHttpClient)) : RunnerHealth.layerPing.pipe(Layer.provide(Runners.layerRpc), Layer.provide(options.transport === "http" ? HttpRunner.layerClientProtocolHttpDefault.pipe(Layer.provide(NodeHttpClient.layerUndici)) : HttpRunner.layerClientProtocolWebsocketDefault.pipe(Layer.provide(NodeSocket.layerWebSocketConstructor))));
41
- return layer.pipe(Layer.provide(runnerHealth), Layer.provideMerge(options?.storage === "local" ? MessageStorage.layerNoop : options?.storage === "byo" ? Layer.empty : Layer.orDie(SqlMessageStorage.layer)), Layer.provide(options?.storage === "local" ? RunnerStorage.layerMemory : options?.storage === "byo" ? Layer.empty : Layer.orDie(SqlRunnerStorage.layer)), Layer.provide(ShardingConfig.layerFromEnv(options?.shardingConfig)), Layer.provide(options?.serialization === "ndjson" ? RpcSerialization.layerNdjson : RpcSerialization.layerMsgPack));
42
+ return layer.pipe(Layer.provide(runnerHealth), Layer.provideMerge(options?.storage === "local" ? MessageStorage.layerNoop : options?.storage === "byo" ? Layer.empty : Layer.orDie(SqlMessageStorage.layer).pipe(Layer.provide(NodeCrypto.layer))), Layer.provide(options?.storage === "local" ? RunnerStorage.layerMemory : options?.storage === "byo" ? Layer.empty : Layer.orDie(SqlRunnerStorage.layer)), Layer.provide(ShardingConfig.layerFromEnv(options?.shardingConfig)), Layer.provide(options?.serialization === "ndjson" ? RpcSerialization.layerNdjsonWith({
43
+ maxBufferSize: options.serializationMaxBufferSize
44
+ }) : RpcSerialization.layerMsgPackWith({
45
+ maxBufferSize: options.serializationMaxBufferSize
46
+ })));
42
47
  };
43
48
  /**
44
49
  * Provides the HTTP server and Node HTTP services used by cluster runners,
@@ -1 +1 @@
1
- {"version":3,"file":"NodeClusterHttp.js","names":["Effect","Layer","Option","HttpRunner","MessageStorage","RunnerHealth","Runners","RunnerStorage","ShardingConfig","SqlMessageStorage","SqlRunnerStorage","RpcSerialization","createServer","layerK8sHttpClient","NodeHttpClient","NodeHttpServer","NodeSocket","layer","options","clientOnly","transport","provide","layerHttpClientOnly","layerUndici","layerWebsocketClientOnly","layerWebSocketConstructor","layerHttp","layerHttpServer","layerWebsocket","runnerHealth","empty","layerK8s","runnerHealthK8s","pipe","layerPing","layerRpc","layerClientProtocolHttpDefault","layerClientProtocolWebsocketDefault","provideMerge","storage","layerNoop","orDie","layerMemory","layerFromEnv","shardingConfig","serialization","layerNdjson","layerMsgPack","gen","config","listenAddress","orElse","runnerListenAddress","runnerAddress","isNone","die","value","unwrap"],"sources":["../src/NodeClusterHttp.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"NodeClusterHttp.js","names":[],"sources":["../src/NodeClusterHttp.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -49,6 +49,7 @@ layerSocketServer };
49
49
  */
50
50
  export declare const layer: <const ClientOnly extends boolean = false, const Storage extends "local" | "sql" | "byo" = never>(options?: {
51
51
  readonly serialization?: "msgpack" | "ndjson" | undefined;
52
+ readonly serializationMaxBufferSize?: number | "unbounded" | undefined;
52
53
  readonly clientOnly?: ClientOnly | undefined;
53
54
  readonly storage?: Storage | undefined;
54
55
  readonly runnerHealth?: "ping" | "k8s" | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"NodeClusterSocket.d.ts","sourceRoot":"","sources":["../src/NodeClusterSocket.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,gDAAgD,CAAA;AACvG,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAGhD,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,aAAa,MAAM,uCAAuC,CAAA;AACtE,OAAO,KAAK,cAAc,MAAM,wCAAwC,CAAA;AAExE,OAAO,KAAK,OAAO,MAAM,iCAAiC,CAAA;AAC1D,OAAO,KAAK,aAAa,MAAM,uCAAuC,CAAA;AACtE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAA;AAChE,OAAO,KAAK,cAAc,MAAM,wCAAwC,CAAA;AAKxE,OAAO,KAAK,KAAK,YAAY,MAAM,qCAAqC,CAAA;AACxE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAA;AAE9D,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAA;AAGrD,OAAO;AACL;;;;;;GAMG;AACH,mBAAmB;AACnB;;;;;;GAMG;AACH,iBAAiB,EAClB,CAAA;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,KAAK,GAChB,KAAK,CAAC,UAAU,SAAS,OAAO,GAAG,KAAK,EACxC,KAAK,CAAC,OAAO,SAAS,OAAO,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,YAE3C;IACR,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAA;IACzD,QAAQ,CAAC,UAAU,CAAC,EAAE,UAAU,GAAG,SAAS,CAAA;IAC5C,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IACtC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS,CAAA;IAClD,QAAQ,CAAC,eAAe,CAAC,EAAE;QACzB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QACvC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KAC5C,GAAG,SAAS,CAAA;IACb,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,GAAG,SAAS,CAAA;CACxF,KACA,UAAU,SAAS,IAAI,GAAG,KAAK,CAAC,KAAK,CACpC,QAAQ,GAAG,OAAO,CAAC,OAAO,GAAG,CAAC,KAAK,SAAS,OAAO,GAAG,KAAK,GAAG,cAAc,CAAC,cAAc,CAAC,EAC5F,WAAW,EACX,OAAO,SAAS,OAAO,GAAG,KAAK,GAC3B,KAAK,SAAS,OAAO,GAAG,CAAC,cAAc,CAAC,cAAc,GAAG,aAAa,CAAC,aAAa,CAAC,GACrF,SAAS,CACd,GACD,KAAK,CAAC,KAAK,CACT,QAAQ,GAAG,OAAO,CAAC,OAAO,GAAG,CAAC,KAAK,SAAS,OAAO,GAAG,KAAK,GAAG,cAAc,CAAC,cAAc,CAAC,EAC5F,YAAY,CAAC,iBAAiB,GAAG,WAAW,EAC5C,OAAO,SAAS,OAAO,GAAG,KAAK,GAC3B,KAAK,SAAS,OAAO,GAAG,CAAC,cAAc,CAAC,cAAc,GAAG,aAAa,CAAC,aAAa,CAAC,GACrF,SAAS,CAyChB,CAAA;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC,UAAU,CAuBrE,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,aAAa,CAIvE,CAAA"}
1
+ {"version":3,"file":"NodeClusterSocket.d.ts","sourceRoot":"","sources":["../src/NodeClusterSocket.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,gDAAgD,CAAA;AACvG,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAGhD,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,aAAa,MAAM,uCAAuC,CAAA;AACtE,OAAO,KAAK,cAAc,MAAM,wCAAwC,CAAA;AAExE,OAAO,KAAK,OAAO,MAAM,iCAAiC,CAAA;AAC1D,OAAO,KAAK,aAAa,MAAM,uCAAuC,CAAA;AACtE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAA;AAChE,OAAO,KAAK,cAAc,MAAM,wCAAwC,CAAA;AAKxE,OAAO,KAAK,KAAK,YAAY,MAAM,qCAAqC,CAAA;AACxE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAA;AAG9D,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAA;AAGrD,OAAO;AACL;;;;;;GAMG;AACH,mBAAmB;AACnB;;;;;;GAMG;AACH,iBAAiB,EAClB,CAAA;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,KAAK,GAChB,KAAK,CAAC,UAAU,SAAS,OAAO,GAAG,KAAK,EACxC,KAAK,CAAC,OAAO,SAAS,OAAO,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,YAE3C;IACR,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAA;IACzD,QAAQ,CAAC,0BAA0B,CAAC,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAAA;IACtE,QAAQ,CAAC,UAAU,CAAC,EAAE,UAAU,GAAG,SAAS,CAAA;IAC5C,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IACtC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS,CAAA;IAClD,QAAQ,CAAC,eAAe,CAAC,EAAE;QACzB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QACvC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KAC5C,GAAG,SAAS,CAAA;IACb,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,GAAG,SAAS,CAAA;CACxF,KACA,UAAU,SAAS,IAAI,GAAG,KAAK,CAAC,KAAK,CACpC,QAAQ,GAAG,OAAO,CAAC,OAAO,GAAG,CAAC,KAAK,SAAS,OAAO,GAAG,KAAK,GAAG,cAAc,CAAC,cAAc,CAAC,EAC5F,WAAW,EACX,OAAO,SAAS,OAAO,GAAG,KAAK,GAC3B,KAAK,SAAS,OAAO,GAAG,CAAC,cAAc,CAAC,cAAc,GAAG,aAAa,CAAC,aAAa,CAAC,GACrF,SAAS,CACd,GACD,KAAK,CAAC,KAAK,CACT,QAAQ,GAAG,OAAO,CAAC,OAAO,GAAG,CAAC,KAAK,SAAS,OAAO,GAAG,KAAK,GAAG,cAAc,CAAC,cAAc,CAAC,EAC5F,YAAY,CAAC,iBAAiB,GAAG,WAAW,EAC5C,OAAO,SAAS,OAAO,GAAG,KAAK,GAC3B,KAAK,SAAS,OAAO,GAAG,CAAC,cAAc,CAAC,cAAc,GAAG,aAAa,CAAC,aAAa,CAAC,GACrF,SAAS,CA2ChB,CAAA;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC,UAAU,CAyBrE,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,aAAa,CAIvE,CAAA"}
@@ -24,6 +24,7 @@ import * as SocketRunner from "effect/unstable/cluster/SocketRunner";
24
24
  import * as SqlMessageStorage from "effect/unstable/cluster/SqlMessageStorage";
25
25
  import * as SqlRunnerStorage from "effect/unstable/cluster/SqlRunnerStorage";
26
26
  import * as RpcSerialization from "effect/unstable/rpc/RpcSerialization";
27
+ import * as NodeCrypto from "./NodeCrypto.js";
27
28
  import * as NodeFileSystem from "./NodeFileSystem.js";
28
29
  import * as NodeHttpClient from "./NodeHttpClient.js";
29
30
  import * as Undici from "./Undici.js";
@@ -59,7 +60,11 @@ export const layer = options => {
59
60
  // with server
60
61
  : Layer.provide(SocketRunner.layer, [layerSocketServer, layerClientProtocol]);
61
62
  const runnerHealth = options?.clientOnly ? Layer.empty : options?.runnerHealth === "k8s" ? RunnerHealth.layerK8s(options.runnerHealthK8s).pipe(Layer.provide(layerK8sHttpClient)) : RunnerHealth.layerPing.pipe(Layer.provide(Runners.layerRpc), Layer.provide(layerClientProtocol));
62
- return layer.pipe(Layer.provide(runnerHealth), Layer.provideMerge(options?.storage === "local" ? MessageStorage.layerNoop : options?.storage === "byo" ? Layer.empty : Layer.orDie(SqlMessageStorage.layer)), Layer.provide(options?.storage === "local" ? RunnerStorage.layerMemory : options?.storage === "byo" ? Layer.empty : Layer.orDie(SqlRunnerStorage.layer)), Layer.provide(ShardingConfig.layerFromEnv(options?.shardingConfig)), Layer.provide(options?.serialization === "ndjson" ? RpcSerialization.layerNdjson : RpcSerialization.layerMsgPack));
63
+ return layer.pipe(Layer.provide(runnerHealth), Layer.provideMerge(options?.storage === "local" ? MessageStorage.layerNoop : options?.storage === "byo" ? Layer.empty : Layer.orDie(SqlMessageStorage.layer).pipe(Layer.provide(NodeCrypto.layer))), Layer.provide(options?.storage === "local" ? RunnerStorage.layerMemory : options?.storage === "byo" ? Layer.empty : Layer.orDie(SqlRunnerStorage.layer)), Layer.provide(ShardingConfig.layerFromEnv(options?.shardingConfig)), Layer.provide(options?.serialization === "ndjson" ? RpcSerialization.layerNdjsonWith({
64
+ maxBufferSize: options?.serializationMaxBufferSize
65
+ }) : RpcSerialization.layerMsgPackWith({
66
+ maxBufferSize: options?.serializationMaxBufferSize
67
+ })));
63
68
  };
64
69
  /**
65
70
  * Provides an Undici dispatcher for Kubernetes API calls, using the service
@@ -73,7 +78,10 @@ export const layerDispatcherK8s = /*#__PURE__*/Layer.effect(NodeHttpClient.Dispa
73
78
  const fs = yield* FileSystem.FileSystem;
74
79
  const caCertOption = yield* fs.readFileString("/var/run/secrets/kubernetes.io/serviceaccount/ca.crt").pipe(Effect.option);
75
80
  if (caCertOption._tag === "Some") {
76
- return yield* Effect.acquireRelease(Effect.sync(() => new Undici.Agent({
81
+ return yield* Effect.acquireRelease(Effect.sync(() =>
82
+ // oxlint cannot resolve values re-exported through the local Undici facade.
83
+ // oxlint-disable-next-line import/namespace
84
+ new Undici.Agent({
77
85
  connect: {
78
86
  ca: caCertOption.value
79
87
  }
@@ -1 +1 @@
1
- {"version":3,"file":"NodeClusterSocket.js","names":["layerClientProtocol","layerSocketServer","Effect","FileSystem","Layer","K8sHttpClient","MessageStorage","RunnerHealth","Runners","RunnerStorage","ShardingConfig","SocketRunner","SqlMessageStorage","SqlRunnerStorage","RpcSerialization","NodeFileSystem","NodeHttpClient","Undici","layer","options","clientOnly","provide","layerClientOnly","runnerHealth","empty","layerK8s","runnerHealthK8s","pipe","layerK8sHttpClient","layerPing","layerRpc","provideMerge","storage","layerNoop","orDie","layerMemory","layerFromEnv","shardingConfig","serialization","layerNdjson","layerMsgPack","layerDispatcherK8s","effect","Dispatcher","gen","fs","caCertOption","readFileString","option","_tag","acquireRelease","sync","Agent","connect","ca","value","agent","promise","destroy","makeDispatcher","fresh","layerUndiciNoDispatcher"],"sources":["../src/NodeClusterSocket.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"NodeClusterSocket.js","names":[],"sources":["../src/NodeClusterSocket.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"NodeCrypto.js","names":["NodeCrypto","layer"],"sources":["../src/NodeCrypto.ts"],"sourcesContent":[null],"mappings":"AAAA;;;;;;;;;;;;;AAaA,OAAO,KAAKA,UAAU,MAAM,yCAAyC;AAIrE;;;;;;AAMA,OAAO,MAAMC,KAAK,GAA+BD,UAAU,CAACC,KAAK","ignoreList":[]}
1
+ {"version":3,"file":"NodeCrypto.js","names":[],"sources":["../src/NodeCrypto.ts"],"sourcesContent":[null],"mappings":"AAAA;;;;;;;;;;;;;AAaA,OAAO,KAAK,UAAU,MAAM,yCAAyC;AAIrE;;;;;;AAMA,OAAO,MAAM,KAAK,GAA+B,UAAU,CAAC,KAAK","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"NodeFileSystem.js","names":["NodeFileSystem","layer"],"sources":["../src/NodeFileSystem.ts"],"sourcesContent":[null],"mappings":"AAAA;;;;;;;;;;AAUA,OAAO,KAAKA,cAAc,MAAM,6CAA6C;AAI7E;;;;;;AAMA,OAAO,MAAMC,KAAK,GAA4BD,cAAc,CAACC,KAAK","ignoreList":[]}
1
+ {"version":3,"file":"NodeFileSystem.js","names":[],"sources":["../src/NodeFileSystem.ts"],"sourcesContent":[null],"mappings":"AAAA;;;;;;;;;;AAUA,OAAO,KAAK,cAAc,MAAM,6CAA6C;AAI7E;;;;;;AAMA,OAAO,MAAM,KAAK,GAA4B,cAAc,CAAC,KAAK","ignoreList":[]}
@@ -26,14 +26,14 @@ export {
26
26
  * Use to access or override the fetch implementation used by the Node
27
27
  * fetch-based HTTP client.
28
28
  *
29
- * @category fetch
29
+ * @category services
30
30
  * @since 4.0.0
31
31
  */
32
32
  Fetch,
33
33
  /**
34
34
  * Layer that provides the fetch-based HTTP client implementation.
35
35
  *
36
- * @category fetch
36
+ * @category layers
37
37
  * @since 4.0.0
38
38
  */
39
39
  layer as layerFetch,
@@ -44,7 +44,7 @@ layer as layerFetch,
44
44
  *
45
45
  * Use to provide default fetch request options for Node HTTP requests.
46
46
  *
47
- * @category fetch
47
+ * @category services
48
48
  * @since 4.0.0
49
49
  */
50
50
  RequestInit } from "effect/unstable/http/FetchHttpClient";
@@ -53,7 +53,7 @@ declare const Dispatcher_base: Context.ServiceClass<Dispatcher, "@effect/platfor
53
53
  * Service tag for the Undici `Dispatcher` used by the Undici-backed HTTP
54
54
  * client.
55
55
  *
56
- * @category Dispatcher
56
+ * @category services
57
57
  * @since 4.0.0
58
58
  */
59
59
  export declare class Dispatcher extends Dispatcher_base {
@@ -62,14 +62,14 @@ export declare class Dispatcher extends Dispatcher_base {
62
62
  * Acquires a new Undici `Agent` dispatcher and destroys it when the enclosing
63
63
  * scope is finalized.
64
64
  *
65
- * @category Dispatcher
65
+ * @category resource management
66
66
  * @since 4.0.0
67
67
  */
68
68
  export declare const makeDispatcher: Effect.Effect<Undici.Dispatcher, never, Scope.Scope>;
69
69
  /**
70
70
  * Provides the `Dispatcher` service using a scoped Undici `Agent`.
71
71
  *
72
- * @category Dispatcher
72
+ * @category layers
73
73
  * @since 4.0.0
74
74
  */
75
75
  export declare const layerDispatcher: Layer.Layer<Dispatcher>;
@@ -77,7 +77,7 @@ export declare const layerDispatcher: Layer.Layer<Dispatcher>;
77
77
  * Provides the `Dispatcher` service from Undici's process-global dispatcher,
78
78
  * without creating or owning a new agent.
79
79
  *
80
- * @category Dispatcher
80
+ * @category layers
81
81
  * @since 4.0.0
82
82
  */
83
83
  export declare const dispatcherLayerGlobal: Layer.Layer<Dispatcher>;
@@ -85,7 +85,7 @@ export declare const dispatcherLayerGlobal: Layer.Layer<Dispatcher>;
85
85
  * Fiber reference containing default Undici request options applied to requests
86
86
  * sent by `makeUndici`.
87
87
  *
88
- * @category Undici
88
+ * @category services
89
89
  * @since 4.0.0
90
90
  */
91
91
  export declare const UndiciOptions: Context.Reference<Partial<Undici.Dispatcher.RequestOptions<null>>>;
@@ -94,7 +94,7 @@ export declare const UndiciOptions: Context.Reference<Partial<Undici.Dispatcher.
94
94
  * `Dispatcher`, converts Effect HTTP bodies to Undici bodies, and maps
95
95
  * transport and decode failures to `HttpClientError`.
96
96
  *
97
- * @category Undici
97
+ * @category constructors
98
98
  * @since 4.0.0
99
99
  */
100
100
  export declare const makeUndici: Effect.Effect<Client.HttpClient, never, Dispatcher>;
@@ -102,7 +102,7 @@ export declare const makeUndici: Effect.Effect<Client.HttpClient, never, Dispatc
102
102
  * Provides an Undici-backed `HttpClient` using the current `Dispatcher`
103
103
  * service.
104
104
  *
105
- * @category Undici
105
+ * @category layers
106
106
  * @since 4.0.0
107
107
  */
108
108
  export declare const layerUndiciNoDispatcher: Layer.Layer<Client.HttpClient, never, Dispatcher>;
@@ -110,7 +110,7 @@ export declare const layerUndiciNoDispatcher: Layer.Layer<Client.HttpClient, nev
110
110
  * Provides an Undici-backed `HttpClient` together with a scoped default
111
111
  * Undici `Agent` dispatcher.
112
112
  *
113
- * @category Undici
113
+ * @category layers
114
114
  * @since 4.0.0
115
115
  */
116
116
  export declare const layerUndici: Layer.Layer<Client.HttpClient>;
@@ -122,7 +122,7 @@ declare const HttpAgent_base: Context.ServiceClass<HttpAgent, "@effect/platform-
122
122
  * Service tag for the paired Node `http` and `https` agents used by the
123
123
  * node:http-backed HTTP client.
124
124
  *
125
- * @category HttpAgent
125
+ * @category services
126
126
  * @since 4.0.0
127
127
  */
128
128
  export declare class HttpAgent extends HttpAgent_base {
@@ -131,7 +131,7 @@ export declare class HttpAgent extends HttpAgent_base {
131
131
  * Acquires Node `http` and `https` agents with the supplied options and
132
132
  * destroys both agents when the enclosing scope is finalized.
133
133
  *
134
- * @category HttpAgent
134
+ * @category resource management
135
135
  * @since 4.0.0
136
136
  */
137
137
  export declare const makeAgent: (options?: Https.AgentOptions) => Effect.Effect<HttpAgent["Service"], never, Scope.Scope>;
@@ -139,7 +139,7 @@ export declare const makeAgent: (options?: Https.AgentOptions) => Effect.Effect<
139
139
  * Provides the `HttpAgent` service using scoped Node `http` and `https`
140
140
  * agents configured with the supplied options.
141
141
  *
142
- * @category HttpAgent
142
+ * @category layers
143
143
  * @since 4.0.0
144
144
  */
145
145
  export declare const layerAgentOptions: (options?: Https.AgentOptions | undefined) => Layer.Layer<HttpAgent>;
@@ -147,7 +147,7 @@ export declare const layerAgentOptions: (options?: Https.AgentOptions | undefine
147
147
  * Provides the `HttpAgent` service using default scoped Node `http` and
148
148
  * `https` agents.
149
149
  *
150
- * @category HttpAgent
150
+ * @category layers
151
151
  * @since 4.0.0
152
152
  */
153
153
  export declare const layerAgent: Layer.Layer<HttpAgent>;
@@ -156,7 +156,7 @@ export declare const layerAgent: Layer.Layer<HttpAgent>;
156
156
  * current `HttpAgent`, streaming request bodies, and wrapping Node responses
157
157
  * as `HttpClientResponse` values.
158
158
  *
159
- * @category node:http
159
+ * @category constructors
160
160
  * @since 4.0.0
161
161
  */
162
162
  export declare const makeNodeHttp: Effect.Effect<Client.HttpClient, never, HttpAgent>;
@@ -164,7 +164,7 @@ export declare const makeNodeHttp: Effect.Effect<Client.HttpClient, never, HttpA
164
164
  * Provides a node:http-backed `HttpClient` using the current `HttpAgent`
165
165
  * service.
166
166
  *
167
- * @category node:http
167
+ * @category layers
168
168
  * @since 4.0.0
169
169
  */
170
170
  export declare const layerNodeHttpNoAgent: Layer.Layer<Client.HttpClient, never, HttpAgent>;
@@ -172,7 +172,7 @@ export declare const layerNodeHttpNoAgent: Layer.Layer<Client.HttpClient, never,
172
172
  * Provides a node:http-backed `HttpClient` together with default scoped Node
173
173
  * `http` and `https` agents.
174
174
  *
175
- * @category node:http
175
+ * @category layers
176
176
  * @since 4.0.0
177
177
  */
178
178
  export declare const layerNodeHttp: Layer.Layer<Client.HttpClient>;