@ontrails/config 1.0.0-beta.13 → 1.0.0-beta.15

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 (141) hide show
  1. package/.turbo/turbo-lint.log +1 -1
  2. package/CHANGELOG.md +18 -0
  3. package/README.md +204 -0
  4. package/dist/app-config.d.ts +4 -4
  5. package/dist/app-config.d.ts.map +1 -1
  6. package/dist/app-config.js +12 -7
  7. package/dist/app-config.js.map +1 -1
  8. package/dist/compose.d.ts +11 -11
  9. package/dist/compose.d.ts.map +1 -1
  10. package/dist/compose.js +7 -7
  11. package/dist/compose.js.map +1 -1
  12. package/dist/config-layer.d.ts +3 -3
  13. package/dist/config-resource.d.ts +3 -0
  14. package/dist/config-resource.d.ts.map +1 -0
  15. package/dist/{config-service.js → config-resource.js} +7 -7
  16. package/dist/config-resource.js.map +1 -0
  17. package/dist/define-config.d.ts +9 -9
  18. package/dist/define-config.d.ts.map +1 -1
  19. package/dist/define-config.js +9 -12
  20. package/dist/define-config.js.map +1 -1
  21. package/dist/{generate → derive}/env.d.ts +1 -1
  22. package/dist/derive/env.d.ts.map +1 -0
  23. package/dist/{generate → derive}/env.js +3 -3
  24. package/dist/derive/env.js.map +1 -0
  25. package/dist/{generate → derive}/example.d.ts +1 -1
  26. package/dist/derive/example.d.ts.map +1 -0
  27. package/dist/{generate → derive}/example.js +21 -19
  28. package/dist/derive/example.js.map +1 -0
  29. package/dist/{generate → derive}/helpers.d.ts +1 -1
  30. package/dist/derive/helpers.d.ts.map +1 -0
  31. package/dist/{generate → derive}/helpers.js +2 -2
  32. package/dist/derive/helpers.js.map +1 -0
  33. package/dist/derive/index.d.ts +4 -0
  34. package/dist/derive/index.d.ts.map +1 -0
  35. package/dist/derive/index.js +4 -0
  36. package/dist/derive/index.js.map +1 -0
  37. package/dist/{generate → derive}/json-schema.d.ts +1 -1
  38. package/dist/derive/json-schema.d.ts.map +1 -0
  39. package/dist/{generate → derive}/json-schema.js +1 -1
  40. package/dist/derive/json-schema.js.map +1 -0
  41. package/dist/{describe.d.ts → derive-fields.d.ts} +2 -2
  42. package/dist/derive-fields.d.ts.map +1 -0
  43. package/dist/{describe.js → derive-fields.js} +2 -2
  44. package/dist/derive-fields.js.map +1 -0
  45. package/dist/{explain.d.ts → derive-provenance.d.ts} +5 -5
  46. package/dist/derive-provenance.d.ts.map +1 -0
  47. package/dist/{explain.js → derive-provenance.js} +8 -21
  48. package/dist/derive-provenance.js.map +1 -0
  49. package/dist/doctor.d.ts.map +1 -1
  50. package/dist/doctor.js +1 -37
  51. package/dist/doctor.js.map +1 -1
  52. package/dist/extensions.d.ts +1 -1
  53. package/dist/extensions.js +1 -1
  54. package/dist/index.d.ts +7 -8
  55. package/dist/index.d.ts.map +1 -1
  56. package/dist/index.js +6 -7
  57. package/dist/index.js.map +1 -1
  58. package/dist/ref.d.ts +8 -3
  59. package/dist/ref.d.ts.map +1 -1
  60. package/dist/ref.js +8 -3
  61. package/dist/ref.js.map +1 -1
  62. package/dist/registry.d.ts +2 -2
  63. package/dist/resolve.d.ts +6 -6
  64. package/dist/resolve.d.ts.map +1 -1
  65. package/dist/resolve.js +11 -8
  66. package/dist/resolve.js.map +1 -1
  67. package/dist/trails/config-check.d.ts +1 -1
  68. package/dist/trails/config-check.d.ts.map +1 -1
  69. package/dist/trails/config-check.js +12 -12
  70. package/dist/trails/config-check.js.map +1 -1
  71. package/dist/trails/config-describe.d.ts +1 -1
  72. package/dist/trails/config-describe.d.ts.map +1 -1
  73. package/dist/trails/config-describe.js +9 -9
  74. package/dist/trails/config-describe.js.map +1 -1
  75. package/dist/trails/config-explain.d.ts +1 -1
  76. package/dist/trails/config-explain.d.ts.map +1 -1
  77. package/dist/trails/config-explain.js +15 -15
  78. package/dist/trails/config-explain.js.map +1 -1
  79. package/dist/trails/config-init.d.ts +1 -1
  80. package/dist/trails/config-init.d.ts.map +1 -1
  81. package/dist/trails/config-init.js +16 -16
  82. package/dist/trails/config-init.js.map +1 -1
  83. package/dist/workspace.d.ts.map +1 -1
  84. package/dist/workspace.js +5 -0
  85. package/dist/workspace.js.map +1 -1
  86. package/package.json +2 -2
  87. package/src/__tests__/app-config.test.ts +19 -6
  88. package/src/__tests__/compose.test.ts +15 -15
  89. package/src/__tests__/config-check.test.ts +7 -7
  90. package/src/__tests__/config-describe.test.ts +7 -7
  91. package/src/__tests__/config-explain.test.ts +7 -7
  92. package/src/__tests__/config-init.test.ts +7 -7
  93. package/src/__tests__/{config-provision.test.ts → config-resource.test.ts} +12 -12
  94. package/src/__tests__/define-config.test.ts +24 -18
  95. package/src/__tests__/{describe.test.ts → derive-fields.test.ts} +11 -11
  96. package/src/__tests__/{explain.test.ts → derive-provenance.test.ts} +18 -18
  97. package/src/__tests__/{generate.test.ts → derive.test.ts} +30 -30
  98. package/src/__tests__/resolve.test.ts +31 -31
  99. package/src/app-config.ts +23 -12
  100. package/src/compose.ts +16 -22
  101. package/src/{config-provision.ts → config-resource.ts} +5 -5
  102. package/src/define-config.ts +12 -15
  103. package/src/{generate → derive}/env.ts +3 -3
  104. package/src/{generate → derive}/example.ts +1 -1
  105. package/src/{generate → derive}/helpers.ts +1 -1
  106. package/src/derive/index.ts +3 -0
  107. package/src/{generate → derive}/json-schema.ts +1 -1
  108. package/src/{describe.ts → derive-fields.ts} +1 -1
  109. package/src/{explain.ts → derive-provenance.ts} +6 -6
  110. package/src/index.ts +12 -18
  111. package/src/registry.ts +2 -2
  112. package/src/resolve.ts +13 -13
  113. package/src/trails/config-check.ts +3 -3
  114. package/src/trails/config-describe.ts +5 -5
  115. package/src/trails/config-explain.ts +13 -13
  116. package/src/trails/config-init.ts +10 -10
  117. package/src/workspace.ts +5 -0
  118. package/tsconfig.tests.json +10 -0
  119. package/tsconfig.tsbuildinfo +1 -1
  120. package/dist/config-service.d.ts +0 -3
  121. package/dist/config-service.d.ts.map +0 -1
  122. package/dist/config-service.js.map +0 -1
  123. package/dist/describe.d.ts.map +0 -1
  124. package/dist/describe.js.map +0 -1
  125. package/dist/explain.d.ts.map +0 -1
  126. package/dist/explain.js.map +0 -1
  127. package/dist/generate/env.d.ts.map +0 -1
  128. package/dist/generate/env.js.map +0 -1
  129. package/dist/generate/example.d.ts.map +0 -1
  130. package/dist/generate/example.js.map +0 -1
  131. package/dist/generate/helpers.d.ts.map +0 -1
  132. package/dist/generate/helpers.js.map +0 -1
  133. package/dist/generate/index.d.ts +0 -4
  134. package/dist/generate/index.d.ts.map +0 -1
  135. package/dist/generate/index.js +0 -4
  136. package/dist/generate/index.js.map +0 -1
  137. package/dist/generate/json-schema.d.ts.map +0 -1
  138. package/dist/generate/json-schema.js.map +0 -1
  139. package/src/__tests__/config-gate.test.ts +0 -53
  140. package/src/config-gate.ts +0 -15
  141. package/src/generate/index.ts +0 -3
package/dist/ref.js CHANGED
@@ -2,13 +2,18 @@
2
2
  * Lazy config reference markers for trail input defaults.
3
3
  *
4
4
  * A `ConfigRef` is a marker object that can be embedded as a trail input
5
- * default. The resolution stack detects it at invocation time and replaces
6
- * it with the live config value at the given path.
5
+ * default. When resolution is wired into the execution pipeline, it will
6
+ * be replaced with the live config value at the given path.
7
+ *
8
+ * Note: resolution is not yet wired into the execution pipeline.
9
+ * Currently this module provides the marker type and type guard only.
10
+ * Trail input defaults using `configRef()` will not be resolved
11
+ * automatically until the execution pipeline integration ships.
7
12
  */
8
13
  /**
9
14
  * Create a lazy reference to a config field for use as a trail input default.
10
15
  *
11
- * The reference is resolved at invocation time, not at declaration time.
16
+ * Note: resolution is not yet automatic. See module-level docs.
12
17
  *
13
18
  */
14
19
  export const configRef = (path) => ({
package/dist/ref.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"ref.js","sourceRoot":"","sources":["../src/ref.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAQH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,IAAY,EAAa,EAAE,CAAC,CAAC;IACrD,WAAW,EAAE,IAAI;IACjB,IAAI;CACL,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,KAAe,EAAsB,EAAE,CACjE,OAAO,KAAK,KAAK,QAAQ;IACzB,KAAK,KAAK,IAAI;IACd,aAAa,IAAI,KAAK;IACrB,KAAiC,CAAC,aAAa,CAAC,KAAK,IAAI,CAAC"}
1
+ {"version":3,"file":"ref.js","sourceRoot":"","sources":["../src/ref.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAQH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,IAAY,EAAa,EAAE,CAAC,CAAC;IACrD,WAAW,EAAE,IAAI;IACjB,IAAI;CACL,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,KAAe,EAAsB,EAAE,CACjE,OAAO,KAAK,KAAK,QAAQ;IACzB,KAAK,KAAK,IAAI;IACd,aAAa,IAAI,KAAK;IACrB,KAAiC,CAAC,aAAa,CAAC,KAAK,IAAI,CAAC"}
@@ -2,7 +2,7 @@
2
2
  * Module-level config state registry.
3
3
  *
4
4
  * Config is resolved once at bootstrap (two-phase init per ADR-010) and
5
- * registered here so `configService` can surface it to trails. This is
5
+ * registered here so `configResource` can expose it to trailheads. This is
6
6
  * a process-level singleton — config resolution is inherently global.
7
7
  */
8
8
  import type { z } from 'zod';
@@ -11,7 +11,7 @@ export interface ConfigState {
11
11
  readonly schema: z.ZodObject<Record<string, z.ZodType>>;
12
12
  readonly resolved: Record<string, unknown>;
13
13
  readonly base?: Record<string, unknown>;
14
- readonly loadout?: Record<string, unknown>;
14
+ readonly profile?: Record<string, unknown>;
15
15
  readonly local?: Record<string, unknown>;
16
16
  readonly env?: Record<string, string | undefined>;
17
17
  }
package/dist/resolve.d.ts CHANGED
@@ -1,21 +1,21 @@
1
1
  /**
2
2
  * Config resolution engine — merges config from multiple sources through
3
- * a deterministic stack: defaults → base → loadout → local → env.
3
+ * a deterministic stack: defaults → base → profile → local → env.
4
4
  */
5
5
  import type { z } from 'zod';
6
6
  import { Result } from '@ontrails/core';
7
7
  /** Options for resolving config through the full stack. */
8
- export interface ResolveConfigOptions<T extends z.ZodType> {
8
+ export interface DeriveConfigOptions<T extends z.ZodType> {
9
9
  readonly schema: T;
10
10
  readonly base?: Record<string, unknown> | undefined;
11
- readonly loadouts?: Record<string, Record<string, unknown>> | undefined;
12
- readonly loadout?: string | undefined;
11
+ readonly profiles?: Record<string, Record<string, unknown>> | undefined;
12
+ readonly profile?: string | undefined;
13
13
  readonly localOverrides?: Record<string, unknown> | undefined;
14
14
  readonly env?: Record<string, string | undefined> | undefined;
15
15
  }
16
16
  /**
17
- * Resolve config through the full stack: defaults → base → loadout → local → env.
17
+ * Derive config through the full stack: defaults → base → profile → local → env.
18
18
  * Returns `Result.ok` with the validated config, or `Result.err` on validation failure.
19
19
  */
20
- export declare const resolveConfig: <T extends z.ZodType>(options: ResolveConfigOptions<T>) => Result<z.infer<T>, Error>;
20
+ export declare const deriveConfig: <T extends z.ZodType>(options: DeriveConfigOptions<T>) => Result<z.infer<T>, Error>;
21
21
  //# sourceMappingURL=resolve.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../src/resolve.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAE7B,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAUxC,2DAA2D;AAC3D,MAAM,WAAW,oBAAoB,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO;IACvD,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IACnB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;IACpD,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IACxE,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;IAC9D,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,GAAG,SAAS,CAAC;CAC/D;AAkOD;;;GAGG;AACH,eAAO,MAAM,aAAa,GAAI,CAAC,SAAS,CAAC,CAAC,OAAO,EAC/C,SAAS,oBAAoB,CAAC,CAAC,CAAC,KAC/B,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAkB1B,CAAC"}
1
+ {"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../src/resolve.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAE7B,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAUxC,2DAA2D;AAC3D,MAAM,WAAW,mBAAmB,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO;IACtD,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IACnB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;IACpD,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IACxE,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;IAC9D,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,GAAG,SAAS,CAAC;CAC/D;AAqOD;;;GAGG;AACH,eAAO,MAAM,YAAY,GAAI,CAAC,SAAS,CAAC,CAAC,OAAO,EAC9C,SAAS,mBAAmB,CAAC,CAAC,CAAC,KAC9B,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAkB1B,CAAC"}
package/dist/resolve.js CHANGED
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Config resolution engine — merges config from multiple sources through
3
- * a deterministic stack: defaults → base → loadout → local → env.
3
+ * a deterministic stack: defaults → base → profile → local → env.
4
4
  */
5
5
  import { Result } from '@ontrails/core';
6
6
  import { collectConfigMeta } from './collect.js';
@@ -50,7 +50,10 @@ const coerceBooleanEnv = (raw) => {
50
50
  /** Coerce env var lookup table keyed by base type name. */
51
51
  const ENV_COERCERS = {
52
52
  boolean: coerceBooleanEnv,
53
- number: Number,
53
+ number: (raw) => {
54
+ const n = Number(raw);
55
+ return Number.isNaN(n) ? raw : n;
56
+ },
54
57
  };
55
58
  /** Coerce a string env value to the type expected by the schema field. */
56
59
  const coerceEnvValue = (raw, schema) => {
@@ -136,13 +139,13 @@ const applyEnvOverrides = (merged, schema, envVars) => {
136
139
  // ---------------------------------------------------------------------------
137
140
  // Merge pipeline
138
141
  // ---------------------------------------------------------------------------
139
- /** Apply the layered merge: base → loadout → local overrides. */
140
- const mergeLayers = (base, loadouts, loadout, localOverrides) => {
142
+ /** Apply the layered merge: base → profile → local overrides. */
143
+ const mergeLayers = (base, profiles, profile, localOverrides) => {
141
144
  let merged = {};
142
145
  if (base) {
143
146
  merged = deepMerge(merged, base);
144
147
  }
145
- const selected = loadout && loadouts ? loadouts[loadout] : undefined;
148
+ const selected = profile && profiles ? profiles[profile] : undefined;
146
149
  if (selected) {
147
150
  merged = deepMerge(merged, selected);
148
151
  }
@@ -157,11 +160,11 @@ const formatValidationError = (issues) => `Config validation failed: ${issues.ma
157
160
  // Public API
158
161
  // ---------------------------------------------------------------------------
159
162
  /**
160
- * Resolve config through the full stack: defaults → base → loadout → local → env.
163
+ * Derive config through the full stack: defaults → base → profile → local → env.
161
164
  * Returns `Result.ok` with the validated config, or `Result.err` on validation failure.
162
165
  */
163
- export const resolveConfig = (options) => {
164
- let merged = mergeLayers(options.base, options.loadouts, options.loadout, options.localOverrides);
166
+ export const deriveConfig = (options) => {
167
+ let merged = mergeLayers(options.base, options.profiles, options.profile, options.localOverrides);
165
168
  if (options.env) {
166
169
  merged = applyEnvOverrides(merged, options.schema, options.env);
167
170
  }
@@ -1 +1 @@
1
- {"version":3,"file":"resolve.js","sourceRoot":"","sources":["../src/resolve.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resolve.js","sourceRoot":"","sources":["../src/resolve.ts"],"names":[],"mappings":"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"}
@@ -7,5 +7,5 @@ export declare const configCheck: import("@ontrails/core").Trail<{
7
7
  status: "default" | "deprecated" | "valid" | "missing" | "invalid";
8
8
  }[];
9
9
  valid: boolean;
10
- }>;
10
+ }, never>;
11
11
  //# sourceMappingURL=config-check.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config-check.d.ts","sourceRoot":"","sources":["../../src/trails/config-check.ts"],"names":[],"mappings":"AAiCA,eAAO,MAAM,WAAW;;;;;;;;;EA0BtB,CAAC"}
1
+ {"version":3,"file":"config-check.d.ts","sourceRoot":"","sources":["../../src/trails/config-check.ts"],"names":[],"mappings":"AAiCA,eAAO,MAAM,WAAW;;;;;;;;;SA0BtB,CAAC"}
@@ -6,7 +6,7 @@
6
6
  */
7
7
  import { Result, trail } from '@ontrails/core';
8
8
  import { z } from 'zod';
9
- import { configService } from '../config-service.js';
9
+ import { configResource } from '../config-resource.js';
10
10
  import { checkConfig } from '../doctor.js';
11
11
  import { deepMerge } from '../merge.js';
12
12
  const diagnosticSchema = z.object({
@@ -24,6 +24,15 @@ const mergeValues = (resolved, overrides) => {
24
24
  return hasOverrides ? deepMerge(resolved, overrides) : resolved;
25
25
  };
26
26
  export const configCheck = trail('config.check', {
27
+ blaze: (input, ctx) => {
28
+ const state = configResource.from(ctx);
29
+ const effective = mergeValues(state.resolved, input.values);
30
+ const checked = checkConfig(state.schema, effective);
31
+ return Result.ok({
32
+ diagnostics: [...checked.diagnostics],
33
+ valid: checked.valid,
34
+ });
35
+ },
27
36
  examples: [
28
37
  {
29
38
  input: {},
@@ -37,17 +46,8 @@ export const configCheck = trail('config.check', {
37
46
  .default({}),
38
47
  }),
39
48
  intent: 'read',
40
- metadata: { category: 'infrastructure' },
49
+ meta: { category: 'infrastructure' },
41
50
  output: outputSchema,
42
- run: (input, ctx) => {
43
- const state = configService.from(ctx);
44
- const effective = mergeValues(state.resolved, input.values);
45
- const checked = checkConfig(state.schema, effective);
46
- return Result.ok({
47
- diagnostics: [...checked.diagnostics],
48
- valid: checked.valid,
49
- });
50
- },
51
- services: [configService],
51
+ resources: [configResource],
52
52
  });
53
53
  //# sourceMappingURL=config-check.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config-check.js","sourceRoot":"","sources":["../../src/trails/config-check.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC;CACzE,CAAC,CAAC;AAEH,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5B,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC;IACtC,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE;CACnB,CAAC,CAAC;AAEH,2DAA2D;AAC3D,MAAM,WAAW,GAAG,CAClB,QAAiC,EACjC,SAAkC,EACT,EAAE;IAC3B,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IACvD,OAAO,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;AAClE,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,CAAC,cAAc,EAAE;IAC/C,QAAQ,EAAE;QACR;YACE,KAAK,EAAE,EAAE;YACT,IAAI,EAAE,sBAAsB;SAC7B;KACF;IACD,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACd,MAAM,EAAE,CAAC;aACN,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;aAC/B,QAAQ,CAAC,+CAA+C,CAAC;aACzD,OAAO,CAAC,EAAE,CAAC;KACf,CAAC;IACF,MAAM,EAAE,MAAM;IACd,QAAQ,EAAE,EAAE,QAAQ,EAAE,gBAAgB,EAAE;IACxC,MAAM,EAAE,YAAY;IACpB,GAAG,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QAClB,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACtC,MAAM,SAAS,GAAG,WAAW,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QAC5D,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QACrD,OAAO,MAAM,CAAC,EAAE,CAAC;YACf,WAAW,EAAE,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC;YACrC,KAAK,EAAE,OAAO,CAAC,KAAK;SACrB,CAAC,CAAC;IACL,CAAC;IACD,QAAQ,EAAE,CAAC,aAAa,CAAC;CAC1B,CAAC,CAAC"}
1
+ {"version":3,"file":"config-check.js","sourceRoot":"","sources":["../../src/trails/config-check.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC;CACzE,CAAC,CAAC;AAEH,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5B,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC;IACtC,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE;CACnB,CAAC,CAAC;AAEH,2DAA2D;AAC3D,MAAM,WAAW,GAAG,CAClB,QAAiC,EACjC,SAAkC,EACT,EAAE;IAC3B,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IACvD,OAAO,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;AAClE,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,CAAC,cAAc,EAAE;IAC/C,KAAK,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QACpB,MAAM,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACvC,MAAM,SAAS,GAAG,WAAW,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QAC5D,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QACrD,OAAO,MAAM,CAAC,EAAE,CAAC;YACf,WAAW,EAAE,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC;YACrC,KAAK,EAAE,OAAO,CAAC,KAAK;SACrB,CAAC,CAAC;IACL,CAAC;IACD,QAAQ,EAAE;QACR;YACE,KAAK,EAAE,EAAE;YACT,IAAI,EAAE,sBAAsB;SAC7B;KACF;IACD,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACd,MAAM,EAAE,CAAC;aACN,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;aAC/B,QAAQ,CAAC,+CAA+C,CAAC;aACzD,OAAO,CAAC,EAAE,CAAC;KACf,CAAC;IACF,MAAM,EAAE,MAAM;IACd,IAAI,EAAE,EAAE,QAAQ,EAAE,gBAAgB,EAAE;IACpC,MAAM,EAAE,YAAY;IACpB,SAAS,EAAE,CAAC,cAAc,CAAC;CAC5B,CAAC,CAAC"}
@@ -8,5 +8,5 @@ export declare const configDescribe: import("@ontrails/core").Trail<Record<strin
8
8
  env?: string | undefined;
9
9
  secret?: boolean | undefined;
10
10
  }[];
11
- }>;
11
+ }, never>;
12
12
  //# sourceMappingURL=config-describe.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config-describe.d.ts","sourceRoot":"","sources":["../../src/trails/config-describe.ts"],"names":[],"mappings":"AA0BA,eAAO,MAAM,cAAc;;;;;;;;;;EAiBzB,CAAC"}
1
+ {"version":3,"file":"config-describe.d.ts","sourceRoot":"","sources":["../../src/trails/config-describe.ts"],"names":[],"mappings":"AA0BA,eAAO,MAAM,cAAc;;;;;;;;;;SAiBzB,CAAC"}
@@ -6,8 +6,8 @@
6
6
  */
7
7
  import { Result, trail } from '@ontrails/core';
8
8
  import { z } from 'zod';
9
- import { configService } from '../config-service.js';
10
- import { describeConfig } from '../describe.js';
9
+ import { configResource } from '../config-resource.js';
10
+ import { deriveConfigFields } from '../derive-fields.js';
11
11
  const fieldSchema = z.object({
12
12
  deprecated: z.string().optional(),
13
13
  description: z.string().optional(),
@@ -21,6 +21,11 @@ const outputSchema = z.object({
21
21
  fields: z.array(fieldSchema),
22
22
  });
23
23
  export const configDescribe = trail('config.describe', {
24
+ blaze: (_input, ctx) => {
25
+ const state = configResource.from(ctx);
26
+ const fields = deriveConfigFields(state.schema);
27
+ return Result.ok({ fields: [...fields] });
28
+ },
24
29
  examples: [
25
30
  {
26
31
  input: {},
@@ -29,13 +34,8 @@ export const configDescribe = trail('config.describe', {
29
34
  ],
30
35
  input: z.object({}),
31
36
  intent: 'read',
32
- metadata: { category: 'infrastructure' },
37
+ meta: { category: 'infrastructure' },
33
38
  output: outputSchema,
34
- run: (_input, ctx) => {
35
- const state = configService.from(ctx);
36
- const fields = describeConfig(state.schema);
37
- return Result.ok({ fields: [...fields] });
38
- },
39
- services: [configService],
39
+ resources: [configResource],
40
40
  });
41
41
  //# sourceMappingURL=config-describe.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config-describe.js","sourceRoot":"","sources":["../../src/trails/config-describe.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEhD,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC1B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE;IACrB,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC9B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;CACjB,CAAC,CAAC;AAEH,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5B,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC;CAC7B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,CAAC,iBAAiB,EAAE;IACrD,QAAQ,EAAE;QACR;YACE,KAAK,EAAE,EAAE;YACT,IAAI,EAAE,4BAA4B;SACnC;KACF;IACD,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;IACnB,MAAM,EAAE,MAAM;IACd,QAAQ,EAAE,EAAE,QAAQ,EAAE,gBAAgB,EAAE;IACxC,MAAM,EAAE,YAAY;IACpB,GAAG,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE;QACnB,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACtC,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC5C,OAAO,MAAM,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;IAC5C,CAAC;IACD,QAAQ,EAAE,CAAC,aAAa,CAAC;CAC1B,CAAC,CAAC"}
1
+ {"version":3,"file":"config-describe.js","sourceRoot":"","sources":["../../src/trails/config-describe.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzD,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC1B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE;IACrB,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC9B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;CACjB,CAAC,CAAC;AAEH,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5B,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC;CAC7B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,CAAC,iBAAiB,EAAE;IACrD,KAAK,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE;QACrB,MAAM,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACvC,MAAM,MAAM,GAAG,kBAAkB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAChD,OAAO,MAAM,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;IAC5C,CAAC;IACD,QAAQ,EAAE;QACR;YACE,KAAK,EAAE,EAAE;YACT,IAAI,EAAE,4BAA4B;SACnC;KACF;IACD,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;IACnB,MAAM,EAAE,MAAM;IACd,IAAI,EAAE,EAAE,QAAQ,EAAE,gBAAgB,EAAE;IACpC,MAAM,EAAE,YAAY;IACpB,SAAS,EAAE,CAAC,cAAc,CAAC;CAC5B,CAAC,CAAC"}
@@ -4,5 +4,5 @@ export declare const configExplain: import("@ontrails/core").Trail<{
4
4
  entries: {
5
5
  readonly path: string;
6
6
  }[];
7
- }>;
7
+ }, never>;
8
8
  //# sourceMappingURL=config-explain.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config-explain.d.ts","sourceRoot":"","sources":["../../src/trails/config-explain.ts"],"names":[],"mappings":"AAoEA,eAAO,MAAM,aAAa;;;;uBAvCG,MAAM;;EA+DjC,CAAC"}
1
+ {"version":3,"file":"config-explain.d.ts","sourceRoot":"","sources":["../../src/trails/config-explain.ts"],"names":[],"mappings":"AAoEA,eAAO,MAAM,aAAa;;;;uBAvCG,MAAM;;SA+DjC,CAAC"}
@@ -6,8 +6,8 @@
6
6
  */
7
7
  import { Result, trail } from '@ontrails/core';
8
8
  import { z } from 'zod';
9
- import { configService } from '../config-service.js';
10
- import { explainConfig } from '../explain.js';
9
+ import { configResource } from '../config-resource.js';
10
+ import { deriveConfigProvenance } from '../derive-provenance.js';
11
11
  const provenanceEntrySchema = z.object({
12
12
  path: z.string(),
13
13
  redacted: z.boolean(),
@@ -21,7 +21,7 @@ const outputSchema = z.object({
21
21
  const filterByPath = (entries, prefix) => prefix
22
22
  ? entries.filter((entry) => entry.path === prefix || entry.path.startsWith(`${prefix}.`))
23
23
  : entries;
24
- /** Build ExplainConfigOptions from ConfigState, omitting undefined layers. */
24
+ /** Build DeriveConfigProvenanceOptions from ConfigState, omitting undefined source overrides. */
25
25
  const toExplainOptions = (state) => {
26
26
  const base = {
27
27
  resolved: state.resolved,
@@ -32,14 +32,14 @@ const toExplainOptions = (state) => {
32
32
  }
33
33
  return base;
34
34
  };
35
- /** Enrich explain options with env and layer overrides from state. */
35
+ /** Enrich explain options with env and source overrides from state. */
36
36
  const enrichOptions = (state, options) => {
37
37
  let enriched = options;
38
38
  if (state.env) {
39
39
  enriched = { ...enriched, env: state.env };
40
40
  }
41
- if (state.loadout) {
42
- enriched = { ...enriched, loadout: state.loadout };
41
+ if (state.profile) {
42
+ enriched = { ...enriched, profile: state.profile };
43
43
  }
44
44
  if (state.local) {
45
45
  enriched = { ...enriched, local: state.local };
@@ -47,6 +47,13 @@ const enrichOptions = (state, options) => {
47
47
  return enriched;
48
48
  };
49
49
  export const configExplain = trail('config.explain', {
50
+ blaze: (input, ctx) => {
51
+ const state = configResource.from(ctx);
52
+ const options = enrichOptions(state, toExplainOptions(state));
53
+ const entries = deriveConfigProvenance(options);
54
+ const filtered = filterByPath(entries, input.path);
55
+ return Result.ok({ entries: [...filtered] });
56
+ },
50
57
  examples: [
51
58
  {
52
59
  input: {},
@@ -60,15 +67,8 @@ export const configExplain = trail('config.explain', {
60
67
  .default(''),
61
68
  }),
62
69
  intent: 'read',
63
- metadata: { category: 'infrastructure' },
70
+ meta: { category: 'infrastructure' },
64
71
  output: outputSchema,
65
- run: (input, ctx) => {
66
- const state = configService.from(ctx);
67
- const options = enrichOptions(state, toExplainOptions(state));
68
- const entries = explainConfig(options);
69
- const filtered = filterByPath(entries, input.path);
70
- return Result.ok({ entries: [...filtered] });
71
- },
72
- services: [configService],
72
+ resources: [configResource],
73
73
  });
74
74
  //# sourceMappingURL=config-explain.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config-explain.js","sourceRoot":"","sources":["../../src/trails/config-explain.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAG9C,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE;IACrB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE;CACnB,CAAC,CAAC;AAEH,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5B,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,qBAAqB,CAAC;CACxC,CAAC,CAAC;AAEH,+DAA+D;AAC/D,MAAM,YAAY,GAAG,CACnB,OAA6C,EAC7C,MAAc,EACwB,EAAE,CACxC,MAAM;IACJ,CAAC,CAAC,OAAO,CAAC,MAAM,CACZ,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,MAAM,GAAG,CAAC,CACxE;IACH,CAAC,CAAC,OAAO,CAAC;AAEd,8EAA8E;AAC9E,MAAM,gBAAgB,GAAG,CACvB,KAAkB,EACyB,EAAE;IAC7C,MAAM,IAAI,GAA8C;QACtD,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,MAAM,EAAE,KAAK,CAAC,MAAM;KACrB,CAAC;IACF,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;QACf,OAAO,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;IACvC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,sEAAsE;AACtE,MAAM,aAAa,GAAG,CACpB,KAAkB,EAClB,OAAkD,EACP,EAAE;IAC7C,IAAI,QAAQ,GAAG,OAAO,CAAC;IACvB,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC;QACd,QAAQ,GAAG,EAAE,GAAG,QAAQ,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC;IAC7C,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QAClB,QAAQ,GAAG,EAAE,GAAG,QAAQ,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;IACrD,CAAC;IACD,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAChB,QAAQ,GAAG,EAAE,GAAG,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;IACjD,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,CAAC,gBAAgB,EAAE;IACnD,QAAQ,EAAE;QACR;YACE,KAAK,EAAE,EAAE;YACT,IAAI,EAAE,oBAAoB;SAC3B;KACF;IACD,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACd,IAAI,EAAE,CAAC;aACJ,MAAM,EAAE;aACR,QAAQ,CAAC,iDAAiD,CAAC;aAC3D,OAAO,CAAC,EAAE,CAAC;KACf,CAAC;IACF,MAAM,EAAE,MAAM;IACd,QAAQ,EAAE,EAAE,QAAQ,EAAE,gBAAgB,EAAE;IACxC,MAAM,EAAE,YAAY;IACpB,GAAG,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QAClB,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACtC,MAAM,OAAO,GAAG,aAAa,CAAC,KAAK,EAAE,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC;QAC9D,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;QACvC,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QACnD,OAAO,MAAM,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC/C,CAAC;IACD,QAAQ,EAAE,CAAC,aAAa,CAAC;CAC1B,CAAC,CAAC"}
1
+ {"version":3,"file":"config-explain.js","sourceRoot":"","sources":["../../src/trails/config-explain.ts"],"names":[],"mappings":"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"}
@@ -5,5 +5,5 @@ export declare const configInit: import("@ontrails/core").Trail<{
5
5
  content: string;
6
6
  format: string;
7
7
  writtenFiles?: string[] | undefined;
8
- }>;
8
+ }, never>;
9
9
  //# sourceMappingURL=config-init.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config-init.d.ts","sourceRoot":"","sources":["../../src/trails/config-init.ts"],"names":[],"mappings":"AA+DA,eAAO,MAAM,UAAU;;;;;;;EAgCrB,CAAC"}
1
+ {"version":3,"file":"config-init.d.ts","sourceRoot":"","sources":["../../src/trails/config-init.ts"],"names":[],"mappings":"AA+DA,eAAO,MAAM,UAAU;;;;;;;SAgCrB,CAAC"}
@@ -11,8 +11,8 @@ import { join } from 'node:path';
11
11
  import { mkdir } from 'node:fs/promises';
12
12
  import { Result, trail } from '@ontrails/core';
13
13
  import { z as zod } from 'zod';
14
- import { configService } from '../config-service.js';
15
- import { generateEnvExample, generateExample, generateJsonSchema, } from '../generate/index.js';
14
+ import { configResource } from '../config-resource.js';
15
+ import { deriveConfigEnvExample, deriveConfigExample, deriveConfigJsonSchema, } from '../derive/index.js';
16
16
  const formatEnum = zod.enum(['toml', 'json', 'jsonc', 'yaml']);
17
17
  const outputSchema = zod.object({
18
18
  content: zod.string(),
@@ -22,13 +22,13 @@ const outputSchema = zod.object({
22
22
  /** Collect artifacts to write: [relativeName, content] pairs. */
23
23
  const collectArtifacts = (schema) => {
24
24
  const artifacts = [];
25
- const envContent = generateEnvExample(schema);
25
+ const envContent = deriveConfigEnvExample(schema);
26
26
  if (envContent.length > 0) {
27
27
  artifacts.push(['.env.example', envContent]);
28
28
  }
29
29
  artifacts.push([
30
30
  '.schema.json',
31
- JSON.stringify(generateJsonSchema(schema), null, 2),
31
+ JSON.stringify(deriveConfigJsonSchema(schema), null, 2),
32
32
  ]);
33
33
  return artifacts;
34
34
  };
@@ -45,6 +45,16 @@ const writeArtifacts = async (dir, schema) => {
45
45
  return written;
46
46
  };
47
47
  export const configInit = trail('config.init', {
48
+ blaze: async (input, ctx) => {
49
+ const state = configResource.from(ctx);
50
+ const schema = state.schema;
51
+ const content = deriveConfigExample(schema, input.format);
52
+ if (input.dir) {
53
+ const writtenFiles = await writeArtifacts(input.dir, schema);
54
+ return Result.ok({ content, format: input.format, writtenFiles });
55
+ }
56
+ return Result.ok({ content, format: input.format });
57
+ },
48
58
  examples: [
49
59
  {
50
60
  input: {},
@@ -61,18 +71,8 @@ export const configInit = trail('config.init', {
61
71
  .default('toml'),
62
72
  }),
63
73
  intent: 'write',
64
- metadata: { category: 'infrastructure' },
74
+ meta: { category: 'infrastructure' },
65
75
  output: outputSchema,
66
- run: async (input, ctx) => {
67
- const state = configService.from(ctx);
68
- const schema = state.schema;
69
- const content = generateExample(schema, input.format);
70
- if (input.dir) {
71
- const writtenFiles = await writeArtifacts(input.dir, schema);
72
- return Result.ok({ content, format: input.format, writtenFiles });
73
- }
74
- return Result.ok({ content, format: input.format });
75
- },
76
- services: [configService],
76
+ resources: [configResource],
77
77
  });
78
78
  //# sourceMappingURL=config-init.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config-init.js","sourceRoot":"","sources":["../../src/trails/config-init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config-init.js","sourceRoot":"","sources":["../../src/trails/config-init.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"workspace.d.ts","sourceRoot":"","sources":["../src/workspace.ts"],"names":[],"mappings":"AAmCA;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,GAAU,MAAM,MAAM,KAAG,OAAO,CAAC,IAAI,CAQhE,CAAC"}
1
+ {"version":3,"file":"workspace.d.ts","sourceRoot":"","sources":["../src/workspace.ts"],"names":[],"mappings":"AAwCA;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,GAAU,MAAM,MAAM,KAAG,OAAO,CAAC,IAAI,CAQhE,CAAC"}
package/dist/workspace.js CHANGED
@@ -18,6 +18,11 @@ const GITIGNORE_CONTENT = [
18
18
  '# Generated artifacts',
19
19
  'generated/',
20
20
  '',
21
+ '# Shared Trails database',
22
+ 'trails.db',
23
+ 'trails.db-shm',
24
+ 'trails.db-wal',
25
+ '',
21
26
  ].join('\n');
22
27
  /**
23
28
  * Write `.gitignore` inside the workspace directory if it does not already exist.
@@ -1 +1 @@
1
- {"version":3,"file":"workspace.js","sourceRoot":"","sources":["../src/workspace.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,MAAM,cAAc,GAAG,CAAC,QAAQ,EAAE,KAAK,EAAE,WAAW,CAAU,CAAC;AAE/D,MAAM,iBAAiB,GAAG;IACxB,0BAA0B;IAC1B,SAAS;IACT,EAAE;IACF,qBAAqB;IACrB,MAAM;IACN,EAAE;IACF,uBAAuB;IACvB,YAAY;IACZ,EAAE;CACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb;;GAEG;AACH,MAAM,uBAAuB,GAAG,KAAK,EAAE,SAAiB,EAAiB,EAAE;IACzE,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;IACpD,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACrC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC;QAC3B,MAAM,GAAG,CAAC,KAAK,CAAC,aAAa,EAAE,iBAAiB,CAAC,CAAC;IACpD,CAAC;AACH,CAAC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,EAAE,IAAY,EAAiB,EAAE;IACnE,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAExC,MAAM,OAAO,CAAC,GAAG,CACf,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAC1E,CAAC;IAEF,MAAM,uBAAuB,CAAC,SAAS,CAAC,CAAC;AAC3C,CAAC,CAAC"}
1
+ {"version":3,"file":"workspace.js","sourceRoot":"","sources":["../src/workspace.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,MAAM,cAAc,GAAG,CAAC,QAAQ,EAAE,KAAK,EAAE,WAAW,CAAU,CAAC;AAE/D,MAAM,iBAAiB,GAAG;IACxB,0BAA0B;IAC1B,SAAS;IACT,EAAE;IACF,qBAAqB;IACrB,MAAM;IACN,EAAE;IACF,uBAAuB;IACvB,YAAY;IACZ,EAAE;IACF,0BAA0B;IAC1B,WAAW;IACX,eAAe;IACf,eAAe;IACf,EAAE;CACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb;;GAEG;AACH,MAAM,uBAAuB,GAAG,KAAK,EAAE,SAAiB,EAAiB,EAAE;IACzE,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;IACpD,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACrC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC;QAC3B,MAAM,GAAG,CAAC,KAAK,CAAC,aAAa,EAAE,iBAAiB,CAAC,CAAC;IACpD,CAAC;AACH,CAAC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,EAAE,IAAY,EAAiB,EAAE;IACnE,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAExC,MAAM,OAAO,CAAC,GAAG,CACf,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAC1E,CAAC;IAEF,MAAM,uBAAuB,CAAC,SAAS,CAAC,CAAC;AAC3C,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ontrails/config",
3
- "version": "1.0.0-beta.13",
3
+ "version": "1.0.0-beta.15",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": "./src/index.ts",
@@ -14,7 +14,7 @@
14
14
  "clean": "rm -rf dist *.tsbuildinfo"
15
15
  },
16
16
  "peerDependencies": {
17
- "@ontrails/core": "^1.0.0-beta.12",
17
+ "@ontrails/core": "^1.0.0-beta.14",
18
18
  "zod": "^4.3.5"
19
19
  }
20
20
  }
@@ -6,7 +6,7 @@ import { z } from 'zod';
6
6
 
7
7
  import type { AppConfig } from '../app-config.js';
8
8
  import { appConfig } from '../app-config.js';
9
- import { describeConfig } from '../describe.js';
9
+ import { deriveConfigFields } from '../derive-fields.js';
10
10
  import { checkConfig } from '../doctor.js';
11
11
  import { configRef } from '../ref.js';
12
12
 
@@ -45,9 +45,9 @@ describe('appConfig()', () => {
45
45
  expect(config.schema).toBe(testSchema);
46
46
  });
47
47
 
48
- test('defaults formats to toml, json, yaml when not specified', () => {
48
+ test('defaults formats to toml, json, jsonc, yaml when not specified', () => {
49
49
  const config = appConfig('myapp', { schema: testSchema });
50
- expect(config.formats).toEqual(['toml', 'json', 'yaml']);
50
+ expect(config.formats).toEqual(['toml', 'json', 'jsonc', 'yaml']);
51
51
  });
52
52
 
53
53
  test('uses provided formats', () => {
@@ -218,6 +218,19 @@ describe('appConfig()', () => {
218
218
  expect(result.unwrap().output).toBe('./from-toml');
219
219
  });
220
220
 
221
+ test('includes jsonc in the default discovery set', async () => {
222
+ await Bun.write(
223
+ join(tempDir, 'myapp.config.jsonc'),
224
+ '{\n // comment\n "output": "./from-jsonc"\n}\n'
225
+ );
226
+
227
+ const config = appConfig('myapp', { schema: testSchema });
228
+ const result = await config.resolve({ cwd: tempDir });
229
+
230
+ expect(result.isOk()).toBe(true);
231
+ expect(result.unwrap().output).toBe('./from-jsonc');
232
+ });
233
+
221
234
  test('returns Result.err when no config file found', async () => {
222
235
  const config = appConfig('myapp', { schema: testSchema });
223
236
  const result = await config.resolve({ cwd: tempDir });
@@ -289,10 +302,10 @@ describe('appConfig()', () => {
289
302
  });
290
303
 
291
304
  describe('method delegations', () => {
292
- test('describe() returns same result as describeConfig(schema)', () => {
305
+ test('describe() returns same result as deriveConfigFields(schema)', () => {
293
306
  const config = appConfig('myapp', { schema: testSchema });
294
307
  const methodResult = config.describe();
295
- const standaloneResult = describeConfig(testSchema);
308
+ const standaloneResult = deriveConfigFields(testSchema);
296
309
 
297
310
  expect(methodResult).toEqual(standaloneResult);
298
311
  });
@@ -315,7 +328,7 @@ describe('appConfig()', () => {
315
328
  expect(methodResult).toEqual(standaloneResult);
316
329
  });
317
330
 
318
- test('explain() delegates to explainConfig with bound schema', () => {
331
+ test('explain() delegates to deriveConfigProvenance with bound schema', () => {
319
332
  const config = appConfig('myapp', { schema: testSchema });
320
333
  const resolved = { output: './dist', verbose: true };
321
334