@aventara/core 1.0.0-rc.0 → 1.0.0-rc.2

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 (267) hide show
  1. package/CHANGELOG.md +1434 -0
  2. package/ERRORS.md +142 -0
  3. package/README.md +247 -57
  4. package/dist/adapters/adapter-discovery-diagnostic.d.ts +4 -4
  5. package/dist/adapters/adapter-discovery-diagnostic.guidance.d.ts +6 -0
  6. package/dist/adapters/adapter-discovery-diagnostic.guidance.js +7 -0
  7. package/dist/adapters/adapter-field.d.ts +25 -11
  8. package/dist/adapters/adapter-identifier.d.ts +6 -6
  9. package/dist/adapters/adapter-model.d.ts +18 -9
  10. package/dist/adapters/adapter-operation-executor.interface.d.ts +4 -4
  11. package/dist/adapters/adapter-operation.d.ts +3 -3
  12. package/dist/adapters/adapter-resource.d.ts +18 -9
  13. package/dist/adapters/adapter-sql-statement.d.ts +19 -0
  14. package/dist/adapters/adapter-transaction-executor.interface.d.ts +19 -0
  15. package/dist/adapters/adapter.interface.d.ts +59 -29
  16. package/dist/avz/avz-check.factory.d.ts +83 -0
  17. package/dist/avz/avz-check.factory.js +116 -0
  18. package/dist/avz/avz-check.registry.d.ts +35 -0
  19. package/dist/avz/avz-check.registry.js +9 -0
  20. package/dist/avz/avz.d.ts +203 -0
  21. package/dist/{json → avz}/avz.js +150 -8
  22. package/dist/{json → avz}/index.d.ts +2 -1
  23. package/dist/{json → avz}/json-shape.registry.d.ts +7 -7
  24. package/dist/{json → avz}/zod-issue.translator.d.ts +8 -2
  25. package/dist/{json → avz}/zod-issue.translator.js +7 -0
  26. package/dist/compiler/contract-compiler-diagnostic.d.ts +31 -5
  27. package/dist/compiler/contract-compiler-diagnostic.guidance.d.ts +6 -0
  28. package/dist/compiler/contract-compiler-diagnostic.guidance.js +97 -0
  29. package/dist/compiler/contract.compiler.d.ts +18 -18
  30. package/dist/compiler/contract.compiler.js +637 -442
  31. package/dist/compiler/create-requirements.projector.d.ts +49 -0
  32. package/dist/compiler/create-requirements.projector.js +423 -0
  33. package/dist/compiler/field-validator.compiler.d.ts +47 -0
  34. package/dist/compiler/field-validator.compiler.js +238 -0
  35. package/dist/config/any-framework-config.d.ts +19 -12
  36. package/dist/config/computed-fields.d.ts +62 -0
  37. package/dist/config/computed-fields.js +80 -0
  38. package/dist/config/config-diagnostic.d.ts +11 -4
  39. package/dist/config/config-diagnostic.guidance.d.ts +6 -0
  40. package/dist/config/config-diagnostic.guidance.js +32 -0
  41. package/dist/config/config-layer.d.ts +15 -6
  42. package/dist/config/config.resolver.d.ts +74 -31
  43. package/dist/config/config.resolver.js +108 -44
  44. package/dist/config/config.validator.d.ts +7 -7
  45. package/dist/config/config.validator.js +581 -72
  46. package/dist/config/define-resource.d.ts +57 -0
  47. package/dist/config/define-resource.js +14 -0
  48. package/dist/config/effective-fields.d.ts +19 -23
  49. package/dist/config/entrypoint.normalizer.d.ts +1 -1
  50. package/dist/config/exact-framework-config.d.ts +308 -0
  51. package/dist/config/field-compute.resolver.d.ts +21 -0
  52. package/dist/config/field-compute.resolver.js +123 -0
  53. package/dist/config/field-pipeline-config.d.ts +47 -0
  54. package/dist/config/forced-operation.validator.d.ts +10 -0
  55. package/dist/config/forced-operation.validator.js +66 -0
  56. package/dist/config/framework-config.d.ts +111 -39
  57. package/dist/config/framework-exemptions-config.d.ts +91 -0
  58. package/dist/config/framework-exemptions-config.js +1 -0
  59. package/dist/config/framework-field-definition.d.ts +78 -0
  60. package/dist/config/framework-field-definition.js +28 -0
  61. package/dist/config/framework-resources-config.d.ts +122 -0
  62. package/dist/config/framework-resources-config.js +1 -0
  63. package/dist/config/pipeline-config.d.ts +56 -20
  64. package/dist/config/pipeline-tree.resolver.d.ts +79 -0
  65. package/dist/config/pipeline-tree.resolver.js +220 -0
  66. package/dist/config/stage-type.eraser.d.ts +65 -0
  67. package/dist/config/stage-type.eraser.js +1 -0
  68. package/dist/contracts/capability.d.ts +21 -12
  69. package/dist/contracts/capability.js +2 -0
  70. package/dist/contracts/client-contract-structure.validator.d.ts +388 -63
  71. package/dist/contracts/client-contract-structure.validator.js +156 -10
  72. package/dist/contracts/contract-canonicalizer.d.ts +26 -3
  73. package/dist/contracts/contract-canonicalizer.js +156 -29
  74. package/dist/contracts/contract-hash.d.ts +12 -7
  75. package/dist/contracts/contract-hash.js +3 -2
  76. package/dist/contracts/contract-limits.d.ts +4 -1
  77. package/dist/contracts/contract-limits.js +1 -0
  78. package/dist/contracts/contract-lookup.d.ts +5 -5
  79. package/dist/contracts/contract-protocol.d.ts +4 -4
  80. package/dist/contracts/contract.d.ts +24 -16
  81. package/dist/contracts/create-requirements.d.ts +35 -0
  82. package/dist/contracts/create-requirements.js +1 -0
  83. package/dist/contracts/enum-definition.d.ts +1 -1
  84. package/dist/contracts/field-check.d.ts +101 -0
  85. package/dist/contracts/field-check.js +1 -0
  86. package/dist/contracts/field.d.ts +81 -42
  87. package/dist/contracts/identifier.d.ts +4 -4
  88. package/dist/contracts/json-shape.d.ts +12 -1
  89. package/dist/contracts/lifecycle-trait.d.ts +2 -2
  90. package/dist/contracts/resource-operations.d.ts +28 -28
  91. package/dist/contracts/resource.d.ts +15 -9
  92. package/dist/contracts/scalar-value-type.d.ts +15 -15
  93. package/dist/contracts/scalar.d.ts +3 -3
  94. package/dist/contracts/transaction-capability.d.ts +1 -1
  95. package/dist/contracts/wire-scalar-format.d.ts +4 -4
  96. package/dist/framework/contract-view.d.ts +213 -147
  97. package/dist/framework/framework-construction.error.d.ts +19 -10
  98. package/dist/framework/framework-construction.error.js +7 -3
  99. package/dist/framework/framework.d.ts +47 -23
  100. package/dist/framework/framework.factory.d.ts +8 -6
  101. package/dist/framework/framework.factory.js +49 -22
  102. package/dist/framework/operation-facade.d.ts +123 -52
  103. package/dist/framework/operation-facade.js +9 -1
  104. package/dist/index.d.ts +57 -50
  105. package/dist/index.js +7 -6
  106. package/dist/internal.d.ts +17 -10
  107. package/dist/internal.js +4 -1
  108. package/dist/operations/database-refusal.d.ts +51 -0
  109. package/dist/operations/database-refusal.js +45 -0
  110. package/dist/operations/operation-arguments.d.ts +343 -207
  111. package/dist/operations/operation-call.d.ts +27 -28
  112. package/dist/operations/operation-identity.d.ts +10 -10
  113. package/dist/operations/operation-result.d.ts +21 -21
  114. package/dist/operations/operation-validator-core.d.ts +6 -6
  115. package/dist/operations/operation-validator-core.js +99 -6
  116. package/dist/operations/operation-validator.d.ts +9 -9
  117. package/dist/operations/projection-scope.resolver.d.ts +6 -6
  118. package/dist/operations/structural-limits.walker.d.ts +6 -6
  119. package/dist/operations/structural-limits.walker.js +145 -0
  120. package/dist/operations/validation-code.d.ts +11 -6
  121. package/dist/operations/validation-code.guidance.d.ts +6 -0
  122. package/dist/operations/validation-code.guidance.js +90 -0
  123. package/dist/operations/validation-code.js +4 -0
  124. package/dist/operations/write-scope.resolver.d.ts +10 -6
  125. package/dist/operations/write-scope.resolver.js +2 -0
  126. package/dist/protocol/absent-route.responder.d.ts +13 -12
  127. package/dist/protocol/absent-route.responder.js +19 -19
  128. package/dist/protocol/contract-document.responder.d.ts +3 -3
  129. package/dist/protocol/contract-document.responder.js +2 -2
  130. package/dist/protocol/http-request.decoder.d.ts +17 -13
  131. package/dist/protocol/http-request.decoder.js +10 -10
  132. package/dist/protocol/http-request.reader.d.ts +3 -3
  133. package/dist/protocol/http-response.encoder.d.ts +4 -4
  134. package/dist/protocol/http-response.encoder.js +94 -55
  135. package/dist/protocol/http-status.table.d.ts +2 -2
  136. package/dist/protocol/operation-response.guard.d.ts +2 -2
  137. package/dist/protocol/protocol-surface.d.ts +4 -4
  138. package/dist/protocol/protocol.binder.d.ts +50 -27
  139. package/dist/protocol/protocol.binder.js +12 -9
  140. package/dist/protocol/protocol.handler.d.ts +22 -13
  141. package/dist/protocol/protocol.handler.js +91 -17
  142. package/dist/protocol/unmounted-route.error.d.ts +4 -4
  143. package/dist/protocol/unmounted-route.error.js +2 -2
  144. package/dist/runtime/caller-data.copier.d.ts +22 -5
  145. package/dist/runtime/caller-data.copier.js +31 -14
  146. package/dist/runtime/caller-data.door.d.ts +17 -11
  147. package/dist/runtime/caller-data.door.js +6 -4
  148. package/dist/runtime/computed-read-runtime.d.ts +7 -6
  149. package/dist/runtime/computed-read-runtime.js +76 -50
  150. package/dist/runtime/computed-value.error.d.ts +7 -6
  151. package/dist/runtime/computed-value.error.js +5 -4
  152. package/dist/runtime/context-executor.runtime.d.ts +59 -0
  153. package/dist/runtime/context-executor.runtime.js +275 -0
  154. package/dist/runtime/create-requirement.d.ts +44 -79
  155. package/dist/runtime/create-requirement.js +213 -73
  156. package/dist/runtime/decimal.d.ts +2 -2
  157. package/dist/runtime/decimal.js +1 -1
  158. package/dist/runtime/diagnostics-reporter.d.ts +54 -27
  159. package/dist/runtime/diagnostics-reporter.js +24 -0
  160. package/dist/runtime/error-boundary.d.ts +65 -8
  161. package/dist/runtime/error-boundary.js +49 -19
  162. package/dist/runtime/error-guidance.d.ts +12 -0
  163. package/dist/runtime/error-guidance.js +1 -0
  164. package/dist/runtime/error.catalog.d.ts +49 -0
  165. package/dist/runtime/error.catalog.js +49 -0
  166. package/dist/runtime/execution-options.d.ts +10 -2
  167. package/dist/runtime/field-check.evaluator.d.ts +29 -0
  168. package/dist/runtime/field-check.evaluator.js +521 -0
  169. package/dist/runtime/field-compute.d.ts +64 -0
  170. package/dist/runtime/field-compute.js +1 -0
  171. package/dist/runtime/field-stage.plan.d.ts +15 -0
  172. package/dist/runtime/field-stage.plan.js +27 -0
  173. package/dist/runtime/field-stage.runtime.d.ts +37 -0
  174. package/dist/runtime/field-stage.runtime.js +147 -0
  175. package/dist/runtime/field-validator.runtime.d.ts +19 -0
  176. package/dist/runtime/field-validator.runtime.js +92 -0
  177. package/dist/runtime/framework-error-class.table.d.ts +33 -0
  178. package/dist/runtime/framework-error-class.table.js +25 -0
  179. package/dist/runtime/framework-error.d.ts +68 -8
  180. package/dist/runtime/framework-error.factory.d.ts +4 -0
  181. package/dist/runtime/framework-error.factory.js +15 -0
  182. package/dist/runtime/framework-error.js +23 -2
  183. package/dist/runtime/interceptor-next.error.d.ts +5 -0
  184. package/dist/runtime/interceptor-next.error.js +6 -0
  185. package/dist/runtime/json-value.d.ts +11 -6
  186. package/dist/runtime/level-lifecycle.runtime.d.ts +25 -0
  187. package/dist/runtime/level-lifecycle.runtime.js +39 -0
  188. package/dist/runtime/misuse-reporter.d.ts +12 -12
  189. package/dist/runtime/mutation-planner.d.ts +19 -10
  190. package/dist/runtime/mutation-planner.js +48 -35
  191. package/dist/runtime/nested-write.walker.d.ts +32 -0
  192. package/dist/runtime/nested-write.walker.js +73 -0
  193. package/dist/runtime/operation-code.guidance.d.ts +6 -0
  194. package/dist/runtime/operation-code.guidance.js +167 -0
  195. package/dist/runtime/operation-request.d.ts +33 -6
  196. package/dist/runtime/operation-response.d.ts +17 -17
  197. package/dist/runtime/operation-runtime.d.ts +127 -25
  198. package/dist/runtime/operation-runtime.js +441 -78
  199. package/dist/runtime/outcome-mapper.d.ts +16 -5
  200. package/dist/runtime/outcome-mapper.js +23 -6
  201. package/dist/runtime/output-validator.d.ts +10 -10
  202. package/dist/runtime/output-validator.js +3 -3
  203. package/dist/runtime/owned-execution.registry.d.ts +16 -6
  204. package/dist/runtime/pipe-output.validator.d.ts +43 -18
  205. package/dist/runtime/pipe-output.validator.js +15 -13
  206. package/dist/runtime/pipeline.d.ts +223 -34
  207. package/dist/runtime/readonly-value.d.ts +43 -0
  208. package/dist/runtime/readonly-value.js +150 -0
  209. package/dist/runtime/request-envelope.validator.d.ts +3 -3
  210. package/dist/runtime/request-envelope.validator.js +12 -7
  211. package/dist/runtime/request-id.d.ts +1 -1
  212. package/dist/runtime/request-state.d.ts +14 -0
  213. package/dist/runtime/request-state.js +1 -0
  214. package/dist/runtime/request-state.resolver.d.ts +12 -0
  215. package/dist/runtime/request-state.resolver.js +20 -0
  216. package/dist/runtime/scalar-runtime.d.ts +35 -16
  217. package/dist/runtime/scalar-runtime.js +102 -34
  218. package/dist/runtime/unsent-value.normalizer.d.ts +15 -0
  219. package/dist/runtime/unsent-value.normalizer.js +128 -0
  220. package/dist/transactions/deferred-operation.d.ts +35 -20
  221. package/dist/transactions/operation-arguments-encoder.d.ts +3 -3
  222. package/dist/transactions/operation-arguments-encoder.js +2 -2
  223. package/dist/transactions/operation-fingerprint.js +2 -2
  224. package/dist/transactions/sql-statement.d.ts +85 -0
  225. package/dist/transactions/sql-statement.js +47 -0
  226. package/dist/transactions/sql-statement.validator.d.ts +44 -0
  227. package/dist/transactions/sql-statement.validator.js +167 -0
  228. package/dist/transactions/transaction-envelope.d.ts +4 -4
  229. package/dist/transactions/transaction-integrity-error.d.ts +6 -6
  230. package/dist/transactions/transaction-integrity-error.js +5 -2
  231. package/dist/transactions/transaction-plan-assembler.d.ts +21 -11
  232. package/dist/transactions/transaction-plan-assembler.js +169 -32
  233. package/dist/transactions/transaction-plan-validator.d.ts +45 -20
  234. package/dist/transactions/transaction-plan-validator.js +96 -38
  235. package/dist/transactions/transaction-reference-collector.d.ts +5 -5
  236. package/dist/transactions/transaction-reference-resolver.d.ts +19 -2
  237. package/dist/transactions/transaction-reference-resolver.js +26 -14
  238. package/dist/transactions/transaction-reference-validator.d.ts +76 -4
  239. package/dist/transactions/transaction-reference-validator.js +129 -71
  240. package/dist/transactions/transaction-reference.d.ts +13 -13
  241. package/dist/transactions/transaction-reference.js +5 -0
  242. package/dist/transactions/transaction-request.d.ts +18 -5
  243. package/dist/transactions/transaction-response.d.ts +6 -6
  244. package/dist/transactions/transaction-runtime.d.ts +8 -7
  245. package/dist/transactions/transaction-runtime.js +191 -50
  246. package/dist/transactions/transaction-settlement.runtime.d.ts +51 -0
  247. package/dist/transactions/transaction-settlement.runtime.js +120 -0
  248. package/dist/transactions/transaction-slot-path-error.d.ts +4 -4
  249. package/dist/transactions/transaction-slot-path-error.js +2 -2
  250. package/dist/transactions/transaction-slot-writer.js +2 -2
  251. package/dist/transactions/transaction-stage.runtime.d.ts +82 -0
  252. package/dist/transactions/transaction-stage.runtime.js +126 -0
  253. package/package.json +9 -7
  254. package/src/runtime/field-check.evaluator.ts +720 -0
  255. package/dist/config/define-fields.d.ts +0 -42
  256. package/dist/config/define-fields.js +0 -3
  257. package/dist/config/framework-behaviors-config.d.ts +0 -30
  258. package/dist/config/framework-fields-config.d.ts +0 -42
  259. package/dist/config/framework-restrictions-config.d.ts +0 -142
  260. package/dist/json/avz.d.ts +0 -96
  261. package/dist/runtime/field-behavior.d.ts +0 -48
  262. /package/dist/{config/framework-behaviors-config.js → adapters/adapter-sql-statement.js} +0 -0
  263. /package/dist/{config/framework-fields-config.js → adapters/adapter-transaction-executor.interface.js} +0 -0
  264. /package/dist/{json → avz}/index.js +0 -0
  265. /package/dist/{json → avz}/json-shape.registry.js +0 -0
  266. /package/dist/config/{framework-restrictions-config.js → exact-framework-config.js} +0 -0
  267. /package/dist/{runtime/field-behavior.js → config/field-pipeline-config.js} +0 -0
@@ -1,6 +1,8 @@
1
- import { FrameworkConstructionError } from "../framework/framework-construction.error.js";
2
- import { entrypointRefusalDiagnostic } from "./config.validator.js";
1
+ import { AvConstructionError } from "../framework/framework-construction.error.js";
2
+ import { mountPathRefusalDiagnostic } from "./config.validator.js";
3
3
  import { normalizeEntrypoint } from "./entrypoint.normalizer.js";
4
+ import { chainCompute, computeOfLayer, } from "./field-compute.resolver.js";
5
+ import { resolvePipelineTree, } from "./pipeline-tree.resolver.js";
4
6
  const hasOwn = (value, key) => Object.hasOwn(value, key);
5
7
  function isPlainRecord(value) {
6
8
  if (value === null || typeof value !== "object" || Array.isArray(value)) {
@@ -39,7 +41,7 @@ function resolveRecord(root, scoped) {
39
41
  }
40
42
  return result;
41
43
  }
42
- function resolveProperty(root, scoped, key) {
44
+ function resolveOverride(root, scoped, key) {
43
45
  if (scoped === undefined || !hasOwn(scoped, key)) {
44
46
  return cloneConfigValue(root[key]);
45
47
  }
@@ -49,63 +51,125 @@ function resolveProperty(root, scoped, key) {
49
51
  ? resolveRecord(rootValue, scopedValue)
50
52
  : cloneConfigValue(scopedValue);
51
53
  }
52
- function resolvePipelines(root, scoped) {
54
+ function resolveLayer(root, rootCompute, overlay, scoped) {
53
55
  return {
54
- guards: [...(root?.guards ?? []), ...(scoped?.guards ?? [])],
55
- pipes: [...(root?.pipes ?? []), ...(scoped?.pipes ?? [])],
56
- hooks: {
57
- before: [
58
- ...(root?.hooks?.before ?? []),
59
- ...(scoped?.hooks?.before ?? []),
60
- ],
61
- after: [...(root?.hooks?.after ?? []), ...(scoped?.hooks?.after ?? [])],
62
- },
63
- interceptors: [
64
- ...(root?.interceptors ?? []),
65
- ...(scoped?.interceptors ?? []),
66
- ],
67
- filters: [...(root?.filters ?? []), ...(scoped?.filters ?? [])],
56
+ compute: scoped === undefined
57
+ ? rootCompute
58
+ : chainCompute(rootCompute, computeOfLayer(scoped.resources)),
59
+ exposed: overlay
60
+ ? scoped?.exposed
61
+ : (root.exposed ?? true),
62
+ exemptions: overlay ? scoped?.exemptions : root.exemptions,
63
+ limits: resolveOverride(root, scoped, "limits"),
64
+ transactionsStyle: resolveOverride(root, scoped, "transactionsStyle"),
65
+ pipelines: scoped === undefined
66
+ ? resolvePipelineTree([root])
67
+ : resolvePipelineTree([root, scoped]),
68
68
  };
69
69
  }
70
- function resolveScope(root, scoped) {
70
+ function resolveAgentLayer(root, parentName, parentOverlay, parent, agent, stated) {
71
+ const effective = {
72
+ limits: parent.limits,
73
+ transactionsStyle: parent.transactionsStyle,
74
+ };
75
+ const chain = [root];
76
+ if (parentName !== "root" && parentOverlay !== undefined) {
77
+ chain.push(parentOverlay);
78
+ }
79
+ if (agent !== undefined) {
80
+ chain.push(agent);
81
+ }
71
82
  return {
72
- fields: resolveProperty(root, scoped, "fields"),
73
- behaviors: resolveProperty(root, scoped, "behaviors"),
74
- restrictions: resolveProperty(root, scoped, "restrictions"),
75
- limits: resolveProperty(root, scoped, "limits"),
76
- transactions: resolveProperty(root, scoped, "transactions"),
77
- pipelines: resolvePipelines(root.pipelines, scoped?.pipelines),
83
+ parent: parentName,
84
+ stated,
85
+ compute: agent === undefined
86
+ ? parent.compute
87
+ : chainCompute(parent.compute, computeOfLayer(agent.resources)),
88
+ exposed: agent?.exposed,
89
+ exemptions: agent?.exemptions,
90
+ limits: resolveOverride(effective, agent, "limits"),
91
+ transactionsStyle: resolveOverride(effective, agent, "transactionsStyle"),
92
+ pipelines: resolvePipelineTree(chain),
78
93
  };
79
94
  }
80
- function resolveEntrypoint(entrypoint) {
81
- const normalized = normalizeEntrypoint(entrypoint);
95
+ function definitionsOf(resources) {
96
+ const result = {};
97
+ if (!isPlainRecord(resources)) {
98
+ return result;
99
+ }
100
+ for (const [resourceName, resource] of Object.entries(resources)) {
101
+ if (!isPlainRecord(resource) || !isPlainRecord(resource.fields)) {
102
+ continue;
103
+ }
104
+ for (const [fieldName, field] of Object.entries(resource.fields)) {
105
+ if (!isPlainRecord(field) || field.definition === undefined) {
106
+ continue;
107
+ }
108
+ result[resourceName] ??= {};
109
+ result[resourceName][fieldName] =
110
+ field.definition;
111
+ }
112
+ }
113
+ return result;
114
+ }
115
+ function resolveMountPath(value, path) {
116
+ const normalized = normalizeEntrypoint(value);
82
117
  if (!normalized.ok) {
83
- throw new FrameworkConstructionError("configuration", [
84
- entrypointRefusalDiagnostic(normalized.message),
118
+ throw new AvConstructionError("configuration", [
119
+ mountPathRefusalDiagnostic(path, normalized.message),
85
120
  ]);
86
121
  }
87
122
  return normalized.path;
88
123
  }
124
+ function resolveMcp(mcp) {
125
+ if (mcp === undefined) {
126
+ return undefined;
127
+ }
128
+ if (typeof mcp === "string") {
129
+ return Object.freeze({ path: resolveMountPath(mcp, "mcp") });
130
+ }
131
+ const path = resolveMountPath(mcp.path, "mcp.path");
132
+ const authorization = mcp.authorization;
133
+ return Object.freeze(authorization === undefined
134
+ ? { path }
135
+ : {
136
+ path,
137
+ authorization: Object.freeze({
138
+ servers: Object.freeze([...authorization.servers]),
139
+ verify: authorization.verify,
140
+ }),
141
+ });
142
+ }
89
143
  export function resolveFrameworkConfig(config) {
90
- const root = {
91
- ...(hasOwn(config, "fields") ? { fields: config.fields } : {}),
92
- ...(hasOwn(config, "behaviors") ? { behaviors: config.behaviors } : {}),
93
- ...(hasOwn(config, "restrictions")
94
- ? { restrictions: config.restrictions }
95
- : {}),
96
- ...(hasOwn(config, "limits") ? { limits: config.limits } : {}),
97
- ...(hasOwn(config, "pipelines") ? { pipelines: config.pipelines } : {}),
98
- ...(hasOwn(config, "transactions")
99
- ? { transactions: config.transactions }
100
- : {}),
144
+ const root = config;
145
+ const application = config.application;
146
+ const client = config.client;
147
+ const agent = config.agent;
148
+ const rootCompute = computeOfLayer(root.resources);
149
+ const layers = {
150
+ root: resolveLayer(root, rootCompute, false),
151
+ application: resolveLayer(root, rootCompute, true, application),
152
+ client: resolveLayer(root, rootCompute, true, client),
101
153
  };
154
+ const parent = agent?.extends ?? "client";
102
155
  return {
103
- entrypoint: resolveEntrypoint(config.entrypoint),
156
+ api: resolveMountPath(config.api, "api"),
157
+ mcp: resolveMcp(config.mcp),
104
158
  adapter: config.adapter,
105
159
  diagnostics: config.diagnostics,
106
160
  misuse: config.misuse,
107
- root: resolveScope(root),
108
- application: resolveScope(root, config.application),
109
- client: resolveScope(root, config.client),
161
+ definitions: definitionsOf(root.resources),
162
+ trees: {
163
+ root: root.resources,
164
+ application: application?.resources,
165
+ client: client?.resources,
166
+ agent: agent?.resources,
167
+ },
168
+ ...layers,
169
+ agent: resolveAgentLayer(root, parent, parent === "application"
170
+ ? application
171
+ : parent === "client"
172
+ ? client
173
+ : undefined, layers[parent], agent, agent !== undefined || config.mcp !== undefined),
110
174
  };
111
175
  }
@@ -1,12 +1,12 @@
1
- import type { ConfigDiagnostic } from "./config-diagnostic.js";
1
+ import type { AvConfigDiagnostic } from "./config-diagnostic.js";
2
2
  /**
3
- * The refusal of an entrypoint whose mount path is not canonical, from the
4
- * normalizer's message: it names the defect and the rule — never the value, which may
5
- * carry credentials.
3
+ * The refusal of a mount path (`api`, `mcp`, `mcp.path`) that is not canonical,
4
+ * from the normalizer's message: it names the defect and the rule — never the
5
+ * value, which may carry credentials.
6
6
  */
7
- export declare function entrypointRefusalDiagnostic(message: string): ConfigDiagnostic;
7
+ export declare function mountPathRefusalDiagnostic(path: string, message: string): AvConfigDiagnostic;
8
8
  /**
9
9
  * Checks the structure of a configuration object and reports each problem as
10
- * a {@link ConfigDiagnostic}.
10
+ * a {@link AvConfigDiagnostic}.
11
11
  */
12
- export declare function validateFrameworkConfig(value: unknown): readonly ConfigDiagnostic[];
12
+ export declare function validateFrameworkConfig(value: unknown): readonly AvConfigDiagnostic[];