@scarn/sdk 0.0.0-stage → 0.8.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 (152) hide show
  1. package/dist/chunk-0y2fy5en.js +166 -0
  2. package/dist/chunk-3ctaaseb.js +1456 -0
  3. package/dist/chunk-4ggr8af6.js +30 -0
  4. package/dist/chunk-5zsavw98.js +91 -0
  5. package/dist/chunk-63f90zky.js +39 -0
  6. package/dist/chunk-700xe701.js +100 -0
  7. package/dist/chunk-ar6hcj1r.js +35 -0
  8. package/dist/chunk-cdanncng.js +74 -0
  9. package/dist/chunk-dp86pa6m.js +68 -0
  10. package/dist/chunk-e1h021kq.js +86 -0
  11. package/dist/chunk-gds7w7zh.js +330 -0
  12. package/dist/chunk-k4y5qt4y.js +14 -0
  13. package/dist/chunk-mz53r914.js +300 -0
  14. package/dist/chunk-ngy1fdcx.js +57 -0
  15. package/dist/chunk-p7yrcmqm.js +322 -0
  16. package/dist/chunk-rt9tq4j6.js +116 -0
  17. package/dist/chunk-skzxcba3.js +14282 -0
  18. package/dist/chunk-vfeytkqx.js +1687 -0
  19. package/dist/chunk-y2pv8d6a.js +162 -0
  20. package/dist/chunk-y64skrwp.js +17 -0
  21. package/dist/chunk-yjtaq94c.js +1094 -0
  22. package/dist/chunk-zm72ksz0.js +256 -0
  23. package/dist/client.d.ts +4 -0
  24. package/dist/client.js +58 -0
  25. package/dist/contracts/artifact-markers.d.ts +42 -0
  26. package/dist/contracts/artifact-markers.js +16 -0
  27. package/dist/contracts/artifacts.d.ts +67 -0
  28. package/dist/contracts/artifacts.js +27 -0
  29. package/dist/contracts/pipeline-document/built-ins.d.ts +23 -0
  30. package/dist/contracts/pipeline-document/conditions/operators.d.ts +8 -0
  31. package/dist/contracts/pipeline-document/index.d.ts +11 -0
  32. package/dist/contracts/pipeline-document/index.js +99 -0
  33. package/dist/contracts/pipeline-document/json.d.ts +35 -0
  34. package/dist/contracts/pipeline-document/routes.d.ts +16 -0
  35. package/dist/contracts/pipeline-document/schema.d.ts +780 -0
  36. package/dist/contracts/pipeline-document/step-contract.d.ts +11 -0
  37. package/dist/contracts/step-artifact-submissions.d.ts +71 -0
  38. package/dist/contracts/step-artifact-submissions.js +171 -0
  39. package/dist/defaults/atomic-json-file.d.ts +10 -0
  40. package/dist/defaults/auth-file.d.ts +14 -0
  41. package/dist/defaults/base-url.d.ts +1 -0
  42. package/dist/defaults/config-file.d.ts +46 -0
  43. package/dist/defaults/home-dir.d.ts +3 -0
  44. package/dist/defaults/index.d.ts +12 -0
  45. package/dist/defaults/index.js +1240 -0
  46. package/dist/defaults/legacy-config-migration.d.ts +27 -0
  47. package/dist/defaults/load-push-defaults.d.ts +25 -0
  48. package/dist/defaults/project-config.d.ts +32 -0
  49. package/dist/defaults/project-ref.d.ts +34 -0
  50. package/dist/definitions/artifacts/artifact.d.ts +62 -0
  51. package/dist/definitions/artifacts/index.d.ts +1 -0
  52. package/dist/definitions/pipelines/define-default-pipeline-assignment.d.ts +263 -0
  53. package/dist/definitions/pipelines/index.d.ts +3 -0
  54. package/dist/definitions/pipelines/index.js +26 -0
  55. package/dist/definitions/pipelines/pipeline-definitions-client.d.ts +208 -0
  56. package/dist/definitions/pipelines/work-item-fields.d.ts +93 -0
  57. package/dist/definitions/steps/compile-mcps.d.ts +34 -0
  58. package/dist/definitions/steps/define-code-step.d.ts +84 -0
  59. package/dist/definitions/steps/define-mcp.d.ts +79 -0
  60. package/dist/definitions/steps/define-step.d.ts +137 -0
  61. package/dist/definitions/steps/env.d.ts +136 -0
  62. package/dist/definitions/steps/index.d.ts +14 -0
  63. package/dist/definitions/steps/index.js +76 -0
  64. package/dist/definitions/steps/mcp-server-config.d.ts +102 -0
  65. package/dist/definitions/steps/prompt-template.d.ts +24 -0
  66. package/dist/definitions/steps/repo.d.ts +67 -0
  67. package/dist/definitions/steps/runtime.d.ts +115 -0
  68. package/dist/definitions/steps/step-definitions-client.d.ts +400 -0
  69. package/dist/definitions/steps/step-features.d.ts +109 -0
  70. package/dist/definitions/steps/step-handle.d.ts +25 -0
  71. package/dist/definitions/steps/step-ref.d.ts +19 -0
  72. package/dist/definitions/validation/index.d.ts +2 -0
  73. package/dist/definitions/validation/index.js +19 -0
  74. package/dist/definitions/validation/validate-artifact-markers.d.ts +3 -0
  75. package/dist/definitions/validation/validate-artifacts.d.ts +7 -0
  76. package/dist/definitions/validation/validate-definition-specs.d.ts +16 -0
  77. package/dist/definitions/validation/validate-env.d.ts +15 -0
  78. package/dist/definitions/validation/validate-repo.d.ts +13 -0
  79. package/dist/definitions/validation/validate-runtime.d.ts +12 -0
  80. package/dist/definitions/validation/validation-issue.d.ts +11 -0
  81. package/dist/devcontainer-config-path.d.ts +21 -0
  82. package/dist/devcontainer-config-path.js +15 -0
  83. package/dist/env-vars.d.ts +136 -0
  84. package/dist/env-vars.js +37 -0
  85. package/dist/eslint.d.ts +42 -0
  86. package/dist/eslint.js +127 -0
  87. package/dist/generated/client/client.gen.d.ts +2 -0
  88. package/dist/generated/client/index.d.ts +8 -0
  89. package/dist/generated/client/types.gen.d.ts +117 -0
  90. package/dist/generated/client/utils.gen.d.ts +33 -0
  91. package/dist/generated/client.gen.d.ts +12 -0
  92. package/dist/generated/core/auth.gen.d.ts +18 -0
  93. package/dist/generated/core/bodySerializer.gen.d.ts +25 -0
  94. package/dist/generated/core/params.gen.d.ts +43 -0
  95. package/dist/generated/core/pathSerializer.gen.d.ts +33 -0
  96. package/dist/generated/core/queryKeySerializer.gen.d.ts +18 -0
  97. package/dist/generated/core/serverSentEvents.gen.d.ts +71 -0
  98. package/dist/generated/core/types.gen.d.ts +78 -0
  99. package/dist/generated/core/utils.gen.d.ts +19 -0
  100. package/dist/generated/index.d.ts +2 -0
  101. package/dist/generated/sdk.gen.d.ts +302 -0
  102. package/dist/generated/types.gen.d.ts +18375 -0
  103. package/dist/git-url/git-remote.d.ts +30 -0
  104. package/dist/git-url/git-repo-identity.d.ts +44 -0
  105. package/dist/git-url/git-repo-identity.js +161 -0
  106. package/dist/git-url/parse-git-host.d.ts +23 -0
  107. package/dist/health-checks.d.ts +169 -0
  108. package/dist/health-checks.js +21 -0
  109. package/dist/index.d.ts +11 -0
  110. package/dist/index.js +296 -0
  111. package/dist/jsonc.d.ts +3 -0
  112. package/dist/jsonc.js +12 -0
  113. package/dist/managed-runtimes.d.ts +20 -0
  114. package/dist/managed-runtimes.js +15 -0
  115. package/dist/opencode-mcp.d.ts +313 -0
  116. package/dist/opencode-mcp.js +31 -0
  117. package/dist/pipelines/chain.d.ts +7 -0
  118. package/dist/pipelines/compile-args.d.ts +12 -0
  119. package/dist/pipelines/compile-chain.d.ts +9 -0
  120. package/dist/pipelines/compile-checks.d.ts +16 -0
  121. package/dist/pipelines/compile-state.d.ts +30 -0
  122. package/dist/pipelines/condition-data.d.ts +78 -0
  123. package/dist/pipelines/conditions.d.ts +47 -0
  124. package/dist/pipelines/context.d.ts +16 -0
  125. package/dist/pipelines/define-pipeline.d.ts +32 -0
  126. package/dist/pipelines/each.d.ts +5 -0
  127. package/dist/pipelines/errors.d.ts +26 -0
  128. package/dist/pipelines/handles.d.ts +29 -0
  129. package/dist/pipelines/index.d.ts +18 -0
  130. package/dist/pipelines/index.js +83 -0
  131. package/dist/pipelines/model.d.ts +103 -0
  132. package/dist/pipelines/nodes.d.ts +54 -0
  133. package/dist/pipelines/ref-types.d.ts +54 -0
  134. package/dist/pipelines/refs.d.ts +80 -0
  135. package/dist/pipelines/registry.d.ts +12 -0
  136. package/dist/pipelines/source.d.ts +17 -0
  137. package/dist/pipelines/types.d.ts +160 -0
  138. package/dist/push/code-step-lookup.d.ts +32 -0
  139. package/dist/push/code-step-lookup.js +12 -0
  140. package/dist/push/collect-definitions.d.ts +70 -0
  141. package/dist/push/collect-pipeline-documents.d.ts +14 -0
  142. package/dist/push/index.d.ts +6 -0
  143. package/dist/push/index.js +327 -0
  144. package/dist/push/push-from-directory.d.ts +37 -0
  145. package/dist/repo-config.d.ts +80 -0
  146. package/dist/repo-config.js +25 -0
  147. package/dist/scarn-config-parser.d.ts +29 -0
  148. package/dist/scarn-config-parser.js +10 -0
  149. package/dist/task-plane-client.d.ts +489 -0
  150. package/dist/z.d.ts +7 -0
  151. package/package.json +132 -4
  152. package/README.md +0 -3
package/dist/index.js ADDED
@@ -0,0 +1,296 @@
1
+ // @bun
2
+ import {
3
+ SCARN_CONFIG_RELATIVE_PATH,
4
+ parseScarnConfig
5
+ } from "./chunk-0y2fy5en.js";
6
+ import {
7
+ after,
8
+ all,
9
+ any,
10
+ avg,
11
+ before,
12
+ contains,
13
+ count,
14
+ decision,
15
+ definePipeline,
16
+ each,
17
+ endsWith,
18
+ equal,
19
+ every,
20
+ exists,
21
+ fail,
22
+ greaterThan,
23
+ greaterThanInclusive,
24
+ isEmpty,
25
+ lessThan,
26
+ lessThanInclusive,
27
+ matches,
28
+ max,
29
+ min,
30
+ none,
31
+ not,
32
+ notEqual,
33
+ reply,
34
+ some,
35
+ startsWith,
36
+ stepRef,
37
+ succeed,
38
+ sum,
39
+ workItem,
40
+ workItemField
41
+ } from "./chunk-yjtaq94c.js";
42
+ import {
43
+ parseJsonc,
44
+ stripJsoncComments,
45
+ stripTrailingCommas
46
+ } from "./chunk-rt9tq4j6.js";
47
+ import {
48
+ createScarnClient,
49
+ createTaskPlaneClient
50
+ } from "./chunk-700xe701.js";
51
+ import"./chunk-p7yrcmqm.js";
52
+ import {
53
+ ARTIFACT_BRAND,
54
+ Artifact,
55
+ ArtifactTypes,
56
+ Env,
57
+ Features,
58
+ Notify,
59
+ Repo,
60
+ Runtime,
61
+ artifact,
62
+ codeStep,
63
+ compileEnvironment,
64
+ compileMcps,
65
+ compileRepo,
66
+ compileStepErrors,
67
+ compileStepRetry,
68
+ createPromptInputProxy,
69
+ createPromptTemplateContext,
70
+ createStepDefinitionsClient,
71
+ defineMcp,
72
+ defineStep,
73
+ exports_z,
74
+ isMcpHandle,
75
+ isSecretLookingEnvName,
76
+ normalizeArtifactAccept,
77
+ normalizeEnv,
78
+ renderPromptTemplate,
79
+ resolveMcpChecks,
80
+ toStepHandle,
81
+ toStepSpec
82
+ } from "./chunk-3ctaaseb.js";
83
+ import {
84
+ PipelineBuildError,
85
+ formatIssue
86
+ } from "./chunk-mz53r914.js";
87
+ import"./chunk-5zsavw98.js";
88
+ import"./chunk-4ggr8af6.js";
89
+ import"./chunk-k4y5qt4y.js";
90
+ import"./chunk-cdanncng.js";
91
+ import {
92
+ collectEnvPlaceholderNames,
93
+ isEnvPlaceholderValue,
94
+ openCodeMcpLocalConfigSchema,
95
+ openCodeMcpOAuthConfigSchema,
96
+ openCodeMcpProtocolSchema,
97
+ openCodeMcpRefConfigSchema,
98
+ openCodeMcpRemoteConfigSchema,
99
+ openCodeMcpServerConfigSchema,
100
+ openCodeMcpServersSchema,
101
+ openCodeMcpTimeoutSchema,
102
+ openCodeResolvedMcpServerConfigSchema,
103
+ openCodeResolvedMcpServersSchema
104
+ } from "./chunk-e1h021kq.js";
105
+ import"./chunk-63f90zky.js";
106
+ import {
107
+ ARTIFACT_MARKER_SCHEME,
108
+ buildArtifactMarker,
109
+ findArtifactMarkers,
110
+ formatArtifactMarkerRef,
111
+ parseArtifactMarkerRef
112
+ } from "./chunk-ngy1fdcx.js";
113
+ import {
114
+ ARTIFACT_SCHEMA_KEYWORD,
115
+ EMBEDDABLE_ARTIFACT_EXTENSIONS,
116
+ artifactAcceptsFile,
117
+ artifactFileExtension,
118
+ artifactKindSchema,
119
+ artifactPlatforms,
120
+ findArtifactFields,
121
+ isEmbeddableArtifactExtension,
122
+ matchArtifactNode,
123
+ readArtifactKeyword
124
+ } from "./chunk-y2pv8d6a.js";
125
+ import"./chunk-dp86pa6m.js";
126
+ import {
127
+ DEFAULT_PIPELINE_ASSIGNMENT_FILENAME,
128
+ PipelineDefinitionsApiError,
129
+ WORK_ITEM_FIELDS_PATH_PREFIX,
130
+ WORK_ITEM_TOP_LEVEL_FIELDS,
131
+ createPipelineDefinitionsClient,
132
+ defaultPipelineAssignment,
133
+ isDefaultPipelineAssignmentSpec,
134
+ resolveWorkItemFieldPath,
135
+ serializeDefaultPipelineAssignment
136
+ } from "./chunk-zm72ksz0.js";
137
+ import {
138
+ Api,
139
+ Billing,
140
+ Conversations,
141
+ GitHubIntegrations,
142
+ NotificationRules,
143
+ PipelineDefinitions,
144
+ PipelineExecutions,
145
+ ProjectArtifacts,
146
+ ProjectIntegrations,
147
+ ProjectInvites,
148
+ Projects,
149
+ ScarnClient,
150
+ Secrets,
151
+ StepDefinitionTemplates,
152
+ StepDefinitions,
153
+ TaskRuns,
154
+ Tasks,
155
+ UserNotifications,
156
+ Username,
157
+ WorkItemBlocks,
158
+ WorkItemCommentDrafts,
159
+ WorkItemComments,
160
+ WorkItems
161
+ } from "./chunk-vfeytkqx.js";
162
+ import"./chunk-skzxcba3.js";
163
+ import"./chunk-y64skrwp.js";
164
+ export {
165
+ ARTIFACT_BRAND,
166
+ ARTIFACT_MARKER_SCHEME,
167
+ ARTIFACT_SCHEMA_KEYWORD,
168
+ Api,
169
+ Artifact,
170
+ ArtifactTypes,
171
+ Billing,
172
+ Conversations,
173
+ DEFAULT_PIPELINE_ASSIGNMENT_FILENAME,
174
+ EMBEDDABLE_ARTIFACT_EXTENSIONS,
175
+ Env,
176
+ Features,
177
+ GitHubIntegrations,
178
+ NotificationRules,
179
+ Notify,
180
+ PipelineBuildError,
181
+ PipelineDefinitions,
182
+ PipelineDefinitionsApiError,
183
+ PipelineExecutions,
184
+ ProjectArtifacts,
185
+ ProjectIntegrations,
186
+ ProjectInvites,
187
+ Projects,
188
+ Repo,
189
+ Runtime,
190
+ SCARN_CONFIG_RELATIVE_PATH,
191
+ ScarnClient,
192
+ Secrets,
193
+ StepDefinitionTemplates,
194
+ StepDefinitions,
195
+ TaskRuns,
196
+ Tasks,
197
+ UserNotifications,
198
+ Username,
199
+ WORK_ITEM_FIELDS_PATH_PREFIX,
200
+ WORK_ITEM_TOP_LEVEL_FIELDS,
201
+ WorkItemBlocks,
202
+ WorkItemCommentDrafts,
203
+ WorkItemComments,
204
+ WorkItems,
205
+ after,
206
+ all,
207
+ any,
208
+ artifact,
209
+ artifactAcceptsFile,
210
+ artifactFileExtension,
211
+ artifactKindSchema,
212
+ artifactPlatforms,
213
+ avg,
214
+ before,
215
+ buildArtifactMarker,
216
+ codeStep,
217
+ collectEnvPlaceholderNames,
218
+ compileEnvironment,
219
+ compileMcps,
220
+ compileRepo,
221
+ compileStepErrors,
222
+ compileStepRetry,
223
+ contains,
224
+ count,
225
+ createPipelineDefinitionsClient,
226
+ createPromptInputProxy,
227
+ createPromptTemplateContext,
228
+ createScarnClient,
229
+ createStepDefinitionsClient,
230
+ createTaskPlaneClient,
231
+ decision,
232
+ defaultPipelineAssignment,
233
+ defineMcp,
234
+ definePipeline,
235
+ defineStep,
236
+ each,
237
+ endsWith,
238
+ equal,
239
+ every,
240
+ exists,
241
+ fail,
242
+ findArtifactFields,
243
+ findArtifactMarkers,
244
+ formatArtifactMarkerRef,
245
+ formatIssue,
246
+ greaterThan,
247
+ greaterThanInclusive,
248
+ isDefaultPipelineAssignmentSpec,
249
+ isEmbeddableArtifactExtension,
250
+ isEmpty,
251
+ isEnvPlaceholderValue,
252
+ isMcpHandle,
253
+ isSecretLookingEnvName,
254
+ lessThan,
255
+ lessThanInclusive,
256
+ matchArtifactNode,
257
+ matches,
258
+ max,
259
+ min,
260
+ none,
261
+ normalizeArtifactAccept,
262
+ normalizeEnv,
263
+ not,
264
+ notEqual,
265
+ openCodeMcpLocalConfigSchema,
266
+ openCodeMcpOAuthConfigSchema,
267
+ openCodeMcpProtocolSchema,
268
+ openCodeMcpRefConfigSchema,
269
+ openCodeMcpRemoteConfigSchema,
270
+ openCodeMcpServerConfigSchema,
271
+ openCodeMcpServersSchema,
272
+ openCodeMcpTimeoutSchema,
273
+ openCodeResolvedMcpServerConfigSchema,
274
+ openCodeResolvedMcpServersSchema,
275
+ parseArtifactMarkerRef,
276
+ parseJsonc,
277
+ parseScarnConfig,
278
+ readArtifactKeyword,
279
+ renderPromptTemplate,
280
+ reply,
281
+ resolveMcpChecks,
282
+ resolveWorkItemFieldPath,
283
+ serializeDefaultPipelineAssignment,
284
+ some,
285
+ startsWith,
286
+ stepRef,
287
+ stripJsoncComments,
288
+ stripTrailingCommas,
289
+ succeed,
290
+ sum,
291
+ toStepHandle,
292
+ toStepSpec,
293
+ workItem,
294
+ workItemField,
295
+ exports_z as z
296
+ };
@@ -0,0 +1,3 @@
1
+ export declare const stripJsoncComments: (content: string) => string;
2
+ export declare const stripTrailingCommas: (content: string) => string;
3
+ export declare const parseJsonc: (content: string) => unknown;
package/dist/jsonc.js ADDED
@@ -0,0 +1,12 @@
1
+ // @bun
2
+ import {
3
+ parseJsonc,
4
+ stripJsoncComments,
5
+ stripTrailingCommas
6
+ } from "./chunk-rt9tq4j6.js";
7
+ import"./chunk-y64skrwp.js";
8
+ export {
9
+ parseJsonc,
10
+ stripJsoncComments,
11
+ stripTrailingCommas
12
+ };
@@ -0,0 +1,20 @@
1
+ import { z } from "zod";
2
+ /**
3
+ * Registry of managed runtimes: worker-supplied containers a `codeStep` can run
4
+ * in instead of the project's devcontainer (`Runtime.managed.<id>()`). The
5
+ * identifier is the runtime family plus its major line. Image, distro and patch
6
+ * version are worker registry details and never appear here.
7
+ *
8
+ * This module is the single owner of the identifier list: the SDK, core and the
9
+ * worker all import from it. Adding an identifier is one entry here and one
10
+ * worker registry entry.
11
+ */
12
+ export declare const MANAGED_RUNTIME_IDS: readonly ["bun1", "node24"];
13
+ export type ManagedRuntimeId = (typeof MANAGED_RUNTIME_IDS)[number];
14
+ /** The runtime a `codeStep` gets when it declares none. */
15
+ export declare const DEFAULT_CODE_STEP_RUNTIME_ID = "bun1";
16
+ export declare const managedRuntimeIdSchema: z.ZodEnum<{
17
+ bun1: "bun1";
18
+ node24: "node24";
19
+ }>;
20
+ export declare function isManagedRuntimeId(value: string): value is ManagedRuntimeId;
@@ -0,0 +1,15 @@
1
+ // @bun
2
+ import {
3
+ DEFAULT_CODE_STEP_RUNTIME_ID,
4
+ MANAGED_RUNTIME_IDS,
5
+ isManagedRuntimeId,
6
+ managedRuntimeIdSchema
7
+ } from "./chunk-k4y5qt4y.js";
8
+ import"./chunk-skzxcba3.js";
9
+ import"./chunk-y64skrwp.js";
10
+ export {
11
+ DEFAULT_CODE_STEP_RUNTIME_ID,
12
+ MANAGED_RUNTIME_IDS,
13
+ isManagedRuntimeId,
14
+ managedRuntimeIdSchema
15
+ };
@@ -0,0 +1,313 @@
1
+ /**
2
+ * Step-declared MCP servers, in OpenCode v2's native `mcp.servers.<name>` entry
3
+ * shape, plus a Scarn-only `ref` entry. The worker resolves refs before
4
+ * passing the resulting `local`/`remote` entries to the runtime overlay, so
5
+ * the `local`/`remote` schemas mirror the v2 config schema.
6
+ * `test/opencode-config-shapes.test.ts` fails typecheck if they drift from
7
+ * `@opencode/client`'s generated `ConfigEntry` type.
8
+ */
9
+ import { z } from "zod";
10
+ export declare const openCodeMcpTimeoutSchema: z.ZodObject<{
11
+ startup: z.ZodOptional<z.ZodInt>;
12
+ catalog: z.ZodOptional<z.ZodInt>;
13
+ execution: z.ZodOptional<z.ZodInt>;
14
+ }, z.core.$strict>;
15
+ export declare const openCodeMcpProtocolSchema: z.ZodEnum<{
16
+ auto: "auto";
17
+ legacy: "legacy";
18
+ "2026-07-28": "2026-07-28";
19
+ }>;
20
+ /** A `local` entry, exactly as OpenCode reads it. */
21
+ export declare const openCodeMcpLocalConfigSchema: z.ZodObject<{
22
+ disabled: z.ZodOptional<z.ZodBoolean>;
23
+ codemode: z.ZodOptional<z.ZodBoolean>;
24
+ timeout: z.ZodOptional<z.ZodObject<{
25
+ startup: z.ZodOptional<z.ZodInt>;
26
+ catalog: z.ZodOptional<z.ZodInt>;
27
+ execution: z.ZodOptional<z.ZodInt>;
28
+ }, z.core.$strict>>;
29
+ protocol: z.ZodOptional<z.ZodEnum<{
30
+ auto: "auto";
31
+ legacy: "legacy";
32
+ "2026-07-28": "2026-07-28";
33
+ }>>;
34
+ type: z.ZodLiteral<"local">;
35
+ command: z.ZodArray<z.ZodString>;
36
+ cwd: z.ZodOptional<z.ZodString>;
37
+ environment: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
38
+ }, z.core.$strict>;
39
+ export declare const openCodeMcpOAuthConfigSchema: z.ZodObject<{
40
+ client_id: z.ZodOptional<z.ZodString>;
41
+ client_secret: z.ZodOptional<z.ZodString>;
42
+ scope: z.ZodOptional<z.ZodString>;
43
+ callback_port: z.ZodOptional<z.ZodInt>;
44
+ redirect_uri: z.ZodOptional<z.ZodString>;
45
+ auth_server_metadata_url: z.ZodOptional<z.ZodString>;
46
+ }, z.core.$strict>;
47
+ /** A `remote` entry, exactly as OpenCode reads it. */
48
+ export declare const openCodeMcpRemoteConfigSchema: z.ZodObject<{
49
+ disabled: z.ZodOptional<z.ZodBoolean>;
50
+ codemode: z.ZodOptional<z.ZodBoolean>;
51
+ timeout: z.ZodOptional<z.ZodObject<{
52
+ startup: z.ZodOptional<z.ZodInt>;
53
+ catalog: z.ZodOptional<z.ZodInt>;
54
+ execution: z.ZodOptional<z.ZodInt>;
55
+ }, z.core.$strict>>;
56
+ protocol: z.ZodOptional<z.ZodEnum<{
57
+ auto: "auto";
58
+ legacy: "legacy";
59
+ "2026-07-28": "2026-07-28";
60
+ }>>;
61
+ type: z.ZodLiteral<"remote">;
62
+ url: z.ZodString;
63
+ headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
64
+ oauth: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
65
+ client_id: z.ZodOptional<z.ZodString>;
66
+ client_secret: z.ZodOptional<z.ZodString>;
67
+ scope: z.ZodOptional<z.ZodString>;
68
+ callback_port: z.ZodOptional<z.ZodInt>;
69
+ redirect_uri: z.ZodOptional<z.ZodString>;
70
+ auth_server_metadata_url: z.ZodOptional<z.ZodString>;
71
+ }, z.core.$strict>, z.ZodLiteral<false>]>>;
72
+ }, z.core.$strict>;
73
+ /**
74
+ * A reference to an MCP server defined in the repository's own MCP config
75
+ * files (`.opencode/opencode.json`, `.mcp.json`, `.codex/config.toml`, …).
76
+ * `name` defaults to the step's server key. The worker resolves refs into
77
+ * `local`/`remote` entries before launch, applying the shared fields on top;
78
+ * `name` is Scarn-only and dropped during resolution, so a ref never reaches
79
+ * OpenCode.
80
+ */
81
+ export declare const openCodeMcpRefConfigSchema: z.ZodObject<{
82
+ disabled: z.ZodOptional<z.ZodBoolean>;
83
+ codemode: z.ZodOptional<z.ZodBoolean>;
84
+ timeout: z.ZodOptional<z.ZodObject<{
85
+ startup: z.ZodOptional<z.ZodInt>;
86
+ catalog: z.ZodOptional<z.ZodInt>;
87
+ execution: z.ZodOptional<z.ZodInt>;
88
+ }, z.core.$strict>>;
89
+ protocol: z.ZodOptional<z.ZodEnum<{
90
+ auto: "auto";
91
+ legacy: "legacy";
92
+ "2026-07-28": "2026-07-28";
93
+ }>>;
94
+ type: z.ZodLiteral<"ref">;
95
+ name: z.ZodOptional<z.ZodString>;
96
+ }, z.core.$strict>;
97
+ export declare const openCodeResolvedMcpServerConfigSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
98
+ disabled: z.ZodOptional<z.ZodBoolean>;
99
+ codemode: z.ZodOptional<z.ZodBoolean>;
100
+ timeout: z.ZodOptional<z.ZodObject<{
101
+ startup: z.ZodOptional<z.ZodInt>;
102
+ catalog: z.ZodOptional<z.ZodInt>;
103
+ execution: z.ZodOptional<z.ZodInt>;
104
+ }, z.core.$strict>>;
105
+ protocol: z.ZodOptional<z.ZodEnum<{
106
+ auto: "auto";
107
+ legacy: "legacy";
108
+ "2026-07-28": "2026-07-28";
109
+ }>>;
110
+ type: z.ZodLiteral<"local">;
111
+ command: z.ZodArray<z.ZodString>;
112
+ cwd: z.ZodOptional<z.ZodString>;
113
+ environment: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
114
+ }, z.core.$strict>, z.ZodObject<{
115
+ disabled: z.ZodOptional<z.ZodBoolean>;
116
+ codemode: z.ZodOptional<z.ZodBoolean>;
117
+ timeout: z.ZodOptional<z.ZodObject<{
118
+ startup: z.ZodOptional<z.ZodInt>;
119
+ catalog: z.ZodOptional<z.ZodInt>;
120
+ execution: z.ZodOptional<z.ZodInt>;
121
+ }, z.core.$strict>>;
122
+ protocol: z.ZodOptional<z.ZodEnum<{
123
+ auto: "auto";
124
+ legacy: "legacy";
125
+ "2026-07-28": "2026-07-28";
126
+ }>>;
127
+ type: z.ZodLiteral<"remote">;
128
+ url: z.ZodString;
129
+ headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
130
+ oauth: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
131
+ client_id: z.ZodOptional<z.ZodString>;
132
+ client_secret: z.ZodOptional<z.ZodString>;
133
+ scope: z.ZodOptional<z.ZodString>;
134
+ callback_port: z.ZodOptional<z.ZodInt>;
135
+ redirect_uri: z.ZodOptional<z.ZodString>;
136
+ auth_server_metadata_url: z.ZodOptional<z.ZodString>;
137
+ }, z.core.$strict>, z.ZodLiteral<false>]>>;
138
+ }, z.core.$strict>], "type">;
139
+ export declare const openCodeResolvedMcpServersSchema: z.ZodRecord<z.ZodString, z.ZodDiscriminatedUnion<[z.ZodObject<{
140
+ disabled: z.ZodOptional<z.ZodBoolean>;
141
+ codemode: z.ZodOptional<z.ZodBoolean>;
142
+ timeout: z.ZodOptional<z.ZodObject<{
143
+ startup: z.ZodOptional<z.ZodInt>;
144
+ catalog: z.ZodOptional<z.ZodInt>;
145
+ execution: z.ZodOptional<z.ZodInt>;
146
+ }, z.core.$strict>>;
147
+ protocol: z.ZodOptional<z.ZodEnum<{
148
+ auto: "auto";
149
+ legacy: "legacy";
150
+ "2026-07-28": "2026-07-28";
151
+ }>>;
152
+ type: z.ZodLiteral<"local">;
153
+ command: z.ZodArray<z.ZodString>;
154
+ cwd: z.ZodOptional<z.ZodString>;
155
+ environment: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
156
+ }, z.core.$strict>, z.ZodObject<{
157
+ disabled: z.ZodOptional<z.ZodBoolean>;
158
+ codemode: z.ZodOptional<z.ZodBoolean>;
159
+ timeout: z.ZodOptional<z.ZodObject<{
160
+ startup: z.ZodOptional<z.ZodInt>;
161
+ catalog: z.ZodOptional<z.ZodInt>;
162
+ execution: z.ZodOptional<z.ZodInt>;
163
+ }, z.core.$strict>>;
164
+ protocol: z.ZodOptional<z.ZodEnum<{
165
+ auto: "auto";
166
+ legacy: "legacy";
167
+ "2026-07-28": "2026-07-28";
168
+ }>>;
169
+ type: z.ZodLiteral<"remote">;
170
+ url: z.ZodString;
171
+ headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
172
+ oauth: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
173
+ client_id: z.ZodOptional<z.ZodString>;
174
+ client_secret: z.ZodOptional<z.ZodString>;
175
+ scope: z.ZodOptional<z.ZodString>;
176
+ callback_port: z.ZodOptional<z.ZodInt>;
177
+ redirect_uri: z.ZodOptional<z.ZodString>;
178
+ auth_server_metadata_url: z.ZodOptional<z.ZodString>;
179
+ }, z.core.$strict>, z.ZodLiteral<false>]>>;
180
+ }, z.core.$strict>], "type">>;
181
+ /** The authored/stored shape: `local`, `remote`, or an unresolved `ref`. */
182
+ export declare const openCodeMcpServerConfigSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
183
+ disabled: z.ZodOptional<z.ZodBoolean>;
184
+ codemode: z.ZodOptional<z.ZodBoolean>;
185
+ timeout: z.ZodOptional<z.ZodObject<{
186
+ startup: z.ZodOptional<z.ZodInt>;
187
+ catalog: z.ZodOptional<z.ZodInt>;
188
+ execution: z.ZodOptional<z.ZodInt>;
189
+ }, z.core.$strict>>;
190
+ protocol: z.ZodOptional<z.ZodEnum<{
191
+ auto: "auto";
192
+ legacy: "legacy";
193
+ "2026-07-28": "2026-07-28";
194
+ }>>;
195
+ type: z.ZodLiteral<"local">;
196
+ command: z.ZodArray<z.ZodString>;
197
+ cwd: z.ZodOptional<z.ZodString>;
198
+ environment: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
199
+ }, z.core.$strict>, z.ZodObject<{
200
+ disabled: z.ZodOptional<z.ZodBoolean>;
201
+ codemode: z.ZodOptional<z.ZodBoolean>;
202
+ timeout: z.ZodOptional<z.ZodObject<{
203
+ startup: z.ZodOptional<z.ZodInt>;
204
+ catalog: z.ZodOptional<z.ZodInt>;
205
+ execution: z.ZodOptional<z.ZodInt>;
206
+ }, z.core.$strict>>;
207
+ protocol: z.ZodOptional<z.ZodEnum<{
208
+ auto: "auto";
209
+ legacy: "legacy";
210
+ "2026-07-28": "2026-07-28";
211
+ }>>;
212
+ type: z.ZodLiteral<"remote">;
213
+ url: z.ZodString;
214
+ headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
215
+ oauth: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
216
+ client_id: z.ZodOptional<z.ZodString>;
217
+ client_secret: z.ZodOptional<z.ZodString>;
218
+ scope: z.ZodOptional<z.ZodString>;
219
+ callback_port: z.ZodOptional<z.ZodInt>;
220
+ redirect_uri: z.ZodOptional<z.ZodString>;
221
+ auth_server_metadata_url: z.ZodOptional<z.ZodString>;
222
+ }, z.core.$strict>, z.ZodLiteral<false>]>>;
223
+ }, z.core.$strict>, z.ZodObject<{
224
+ disabled: z.ZodOptional<z.ZodBoolean>;
225
+ codemode: z.ZodOptional<z.ZodBoolean>;
226
+ timeout: z.ZodOptional<z.ZodObject<{
227
+ startup: z.ZodOptional<z.ZodInt>;
228
+ catalog: z.ZodOptional<z.ZodInt>;
229
+ execution: z.ZodOptional<z.ZodInt>;
230
+ }, z.core.$strict>>;
231
+ protocol: z.ZodOptional<z.ZodEnum<{
232
+ auto: "auto";
233
+ legacy: "legacy";
234
+ "2026-07-28": "2026-07-28";
235
+ }>>;
236
+ type: z.ZodLiteral<"ref">;
237
+ name: z.ZodOptional<z.ZodString>;
238
+ }, z.core.$strict>], "type">;
239
+ export declare const openCodeMcpServersSchema: z.ZodRecord<z.ZodString, z.ZodDiscriminatedUnion<[z.ZodObject<{
240
+ disabled: z.ZodOptional<z.ZodBoolean>;
241
+ codemode: z.ZodOptional<z.ZodBoolean>;
242
+ timeout: z.ZodOptional<z.ZodObject<{
243
+ startup: z.ZodOptional<z.ZodInt>;
244
+ catalog: z.ZodOptional<z.ZodInt>;
245
+ execution: z.ZodOptional<z.ZodInt>;
246
+ }, z.core.$strict>>;
247
+ protocol: z.ZodOptional<z.ZodEnum<{
248
+ auto: "auto";
249
+ legacy: "legacy";
250
+ "2026-07-28": "2026-07-28";
251
+ }>>;
252
+ type: z.ZodLiteral<"local">;
253
+ command: z.ZodArray<z.ZodString>;
254
+ cwd: z.ZodOptional<z.ZodString>;
255
+ environment: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
256
+ }, z.core.$strict>, z.ZodObject<{
257
+ disabled: z.ZodOptional<z.ZodBoolean>;
258
+ codemode: z.ZodOptional<z.ZodBoolean>;
259
+ timeout: z.ZodOptional<z.ZodObject<{
260
+ startup: z.ZodOptional<z.ZodInt>;
261
+ catalog: z.ZodOptional<z.ZodInt>;
262
+ execution: z.ZodOptional<z.ZodInt>;
263
+ }, z.core.$strict>>;
264
+ protocol: z.ZodOptional<z.ZodEnum<{
265
+ auto: "auto";
266
+ legacy: "legacy";
267
+ "2026-07-28": "2026-07-28";
268
+ }>>;
269
+ type: z.ZodLiteral<"remote">;
270
+ url: z.ZodString;
271
+ headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
272
+ oauth: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
273
+ client_id: z.ZodOptional<z.ZodString>;
274
+ client_secret: z.ZodOptional<z.ZodString>;
275
+ scope: z.ZodOptional<z.ZodString>;
276
+ callback_port: z.ZodOptional<z.ZodInt>;
277
+ redirect_uri: z.ZodOptional<z.ZodString>;
278
+ auth_server_metadata_url: z.ZodOptional<z.ZodString>;
279
+ }, z.core.$strict>, z.ZodLiteral<false>]>>;
280
+ }, z.core.$strict>, z.ZodObject<{
281
+ disabled: z.ZodOptional<z.ZodBoolean>;
282
+ codemode: z.ZodOptional<z.ZodBoolean>;
283
+ timeout: z.ZodOptional<z.ZodObject<{
284
+ startup: z.ZodOptional<z.ZodInt>;
285
+ catalog: z.ZodOptional<z.ZodInt>;
286
+ execution: z.ZodOptional<z.ZodInt>;
287
+ }, z.core.$strict>>;
288
+ protocol: z.ZodOptional<z.ZodEnum<{
289
+ auto: "auto";
290
+ legacy: "legacy";
291
+ "2026-07-28": "2026-07-28";
292
+ }>>;
293
+ type: z.ZodLiteral<"ref">;
294
+ name: z.ZodOptional<z.ZodString>;
295
+ }, z.core.$strict>], "type">>;
296
+ /**
297
+ * Whether `value` carries nothing but `{env:VAR}` placeholders, optionally
298
+ * behind an HTTP auth scheme (`Bearer {env:TOKEN}`). Anything else is a
299
+ * literal that would be stored in plaintext, so a `local` server's
300
+ * `environment` values and a `remote` server's `headers` values must pass it.
301
+ */
302
+ export declare function isEnvPlaceholderValue(value: string): boolean;
303
+ /** A JSON-like value that may hold `{env:VAR}` placeholders in its strings. */
304
+ export type EnvPlaceholderSource = string | number | boolean | null | undefined | readonly EnvPlaceholderSource[] | {
305
+ readonly [key: string]: EnvPlaceholderSource;
306
+ };
307
+ /** Every variable name a value reads as `{env:VAR}`, at any depth, sorted. */
308
+ export declare function collectEnvPlaceholderNames(value: EnvPlaceholderSource): string[];
309
+ export type OpenCodeMcpRefConfig = z.infer<typeof openCodeMcpRefConfigSchema>;
310
+ export type OpenCodeMcpServerConfig = z.infer<typeof openCodeMcpServerConfigSchema>;
311
+ export type OpenCodeMcpServers = z.infer<typeof openCodeMcpServersSchema>;
312
+ export type ResolvedOpenCodeMcpServerConfig = z.infer<typeof openCodeResolvedMcpServerConfigSchema>;
313
+ export type ResolvedOpenCodeMcpServers = z.infer<typeof openCodeResolvedMcpServersSchema>;
@@ -0,0 +1,31 @@
1
+ // @bun
2
+ import {
3
+ collectEnvPlaceholderNames,
4
+ isEnvPlaceholderValue,
5
+ openCodeMcpLocalConfigSchema,
6
+ openCodeMcpOAuthConfigSchema,
7
+ openCodeMcpProtocolSchema,
8
+ openCodeMcpRefConfigSchema,
9
+ openCodeMcpRemoteConfigSchema,
10
+ openCodeMcpServerConfigSchema,
11
+ openCodeMcpServersSchema,
12
+ openCodeMcpTimeoutSchema,
13
+ openCodeResolvedMcpServerConfigSchema,
14
+ openCodeResolvedMcpServersSchema
15
+ } from "./chunk-e1h021kq.js";
16
+ import"./chunk-skzxcba3.js";
17
+ import"./chunk-y64skrwp.js";
18
+ export {
19
+ collectEnvPlaceholderNames,
20
+ isEnvPlaceholderValue,
21
+ openCodeMcpLocalConfigSchema,
22
+ openCodeMcpOAuthConfigSchema,
23
+ openCodeMcpProtocolSchema,
24
+ openCodeMcpRefConfigSchema,
25
+ openCodeMcpRemoteConfigSchema,
26
+ openCodeMcpServerConfigSchema,
27
+ openCodeMcpServersSchema,
28
+ openCodeMcpTimeoutSchema,
29
+ openCodeResolvedMcpServerConfigSchema,
30
+ openCodeResolvedMcpServersSchema
31
+ };
@@ -0,0 +1,7 @@
1
+ import { type NodeDef } from "./model";
2
+ /**
3
+ * Puts the chain-starting methods on a handle as non-enumerable properties,
4
+ * so the handle's spec fields (and `toStepSpec`) are unchanged. Each call
5
+ * starts a fresh chain.
6
+ */
7
+ export declare function attachChainMethods(handle: object, node: NodeDef): void;