typekro 0.32.0 → 0.33.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 (100) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/alchemy/resource-registration.d.ts +15 -0
  3. package/dist/alchemy/resource-registration.d.ts.map +1 -1
  4. package/dist/alchemy/resource-registration.js +13 -1
  5. package/dist/alchemy/resource-registration.js.map +1 -1
  6. package/dist/core/dependencies/resolver.d.ts.map +1 -1
  7. package/dist/core/dependencies/resolver.js +13 -3
  8. package/dist/core/dependencies/resolver.js.map +1 -1
  9. package/dist/core/deployment/kro-artifact-binding-migration.d.ts +15 -0
  10. package/dist/core/deployment/kro-artifact-binding-migration.d.ts.map +1 -0
  11. package/dist/core/deployment/kro-artifact-binding-migration.js +181 -0
  12. package/dist/core/deployment/kro-artifact-binding-migration.js.map +1 -0
  13. package/dist/core/deployment/kro-factory.d.ts +1 -1
  14. package/dist/core/deployment/kro-factory.d.ts.map +1 -1
  15. package/dist/core/deployment/kro-factory.js +39 -35
  16. package/dist/core/deployment/kro-factory.js.map +1 -1
  17. package/dist/core/planning/compiler.d.ts.map +1 -1
  18. package/dist/core/planning/compiler.js +9 -23
  19. package/dist/core/planning/compiler.js.map +1 -1
  20. package/dist/core/planning/plan-codec.d.ts.map +1 -1
  21. package/dist/core/planning/plan-codec.js +3 -0
  22. package/dist/core/planning/plan-codec.js.map +1 -1
  23. package/dist/core/planning/types.d.ts +3 -0
  24. package/dist/core/planning/types.d.ts.map +1 -1
  25. package/dist/core/planning/values.d.ts.map +1 -1
  26. package/dist/core/planning/values.js +3 -0
  27. package/dist/core/planning/values.js.map +1 -1
  28. package/dist/core/references/cel-evaluator.d.ts +0 -5
  29. package/dist/core/references/cel-evaluator.d.ts.map +1 -1
  30. package/dist/core/references/cel-evaluator.js +7 -32
  31. package/dist/core/references/cel-evaluator.js.map +1 -1
  32. package/dist/core/references/cel-lexical-scanner.d.ts +14 -0
  33. package/dist/core/references/cel-lexical-scanner.d.ts.map +1 -0
  34. package/dist/core/references/cel-lexical-scanner.js +90 -0
  35. package/dist/core/references/cel-lexical-scanner.js.map +1 -0
  36. package/dist/core/references/cel.d.ts.map +1 -1
  37. package/dist/core/references/cel.js +5 -1
  38. package/dist/core/references/cel.js.map +1 -1
  39. package/dist/core/serialization/cel-references.d.ts.map +1 -1
  40. package/dist/core/serialization/cel-references.js +3 -1
  41. package/dist/core/serialization/cel-references.js.map +1 -1
  42. package/dist/core/serialization/schema.d.ts.map +1 -1
  43. package/dist/core/serialization/schema.js +12 -0
  44. package/dist/core/serialization/schema.js.map +1 -1
  45. package/dist/core/types/deployment.d.ts +20 -0
  46. package/dist/core/types/deployment.d.ts.map +1 -1
  47. package/dist/factories/dagster/compositions/dagster-bootstrap.d.ts +1 -449
  48. package/dist/factories/dagster/compositions/dagster-bootstrap.d.ts.map +1 -1
  49. package/dist/factories/dagster/types.d.ts +2 -898
  50. package/dist/factories/dagster/types.d.ts.map +1 -1
  51. package/dist/factories/dagster/types.js +2 -35
  52. package/dist/factories/dagster/types.js.map +1 -1
  53. package/dist/factories/envoy-ai-gateway/compositions/gateway.d.ts +9 -0
  54. package/dist/factories/envoy-ai-gateway/compositions/gateway.d.ts.map +1 -0
  55. package/dist/factories/envoy-ai-gateway/compositions/gateway.js +773 -0
  56. package/dist/factories/envoy-ai-gateway/compositions/gateway.js.map +1 -0
  57. package/dist/factories/envoy-ai-gateway/compositions/index.d.ts +4 -0
  58. package/dist/factories/envoy-ai-gateway/compositions/index.d.ts.map +1 -0
  59. package/dist/factories/envoy-ai-gateway/compositions/index.js +4 -0
  60. package/dist/factories/envoy-ai-gateway/compositions/index.js.map +1 -0
  61. package/dist/factories/envoy-ai-gateway/compositions/platform.d.ts +70 -0
  62. package/dist/factories/envoy-ai-gateway/compositions/platform.d.ts.map +1 -0
  63. package/dist/factories/envoy-ai-gateway/compositions/platform.js +376 -0
  64. package/dist/factories/envoy-ai-gateway/compositions/platform.js.map +1 -0
  65. package/dist/factories/envoy-ai-gateway/compositions/repository.d.ts +13 -0
  66. package/dist/factories/envoy-ai-gateway/compositions/repository.d.ts.map +1 -0
  67. package/dist/factories/envoy-ai-gateway/compositions/repository.js +29 -0
  68. package/dist/factories/envoy-ai-gateway/compositions/repository.js.map +1 -0
  69. package/dist/factories/envoy-ai-gateway/constants.d.ts +18 -0
  70. package/dist/factories/envoy-ai-gateway/constants.d.ts.map +1 -0
  71. package/dist/factories/envoy-ai-gateway/constants.js +18 -0
  72. package/dist/factories/envoy-ai-gateway/constants.js.map +1 -0
  73. package/dist/factories/envoy-ai-gateway/index.d.ts +11 -0
  74. package/dist/factories/envoy-ai-gateway/index.d.ts.map +1 -0
  75. package/dist/factories/envoy-ai-gateway/index.js +11 -0
  76. package/dist/factories/envoy-ai-gateway/index.js.map +1 -0
  77. package/dist/factories/envoy-ai-gateway/resources/gateway.d.ts +29 -0
  78. package/dist/factories/envoy-ai-gateway/resources/gateway.d.ts.map +1 -0
  79. package/dist/factories/envoy-ai-gateway/resources/gateway.js +195 -0
  80. package/dist/factories/envoy-ai-gateway/resources/gateway.js.map +1 -0
  81. package/dist/factories/envoy-ai-gateway/resources/helm.d.ts +11 -0
  82. package/dist/factories/envoy-ai-gateway/resources/helm.d.ts.map +1 -0
  83. package/dist/factories/envoy-ai-gateway/resources/helm.js +54 -0
  84. package/dist/factories/envoy-ai-gateway/resources/helm.js.map +1 -0
  85. package/dist/factories/envoy-ai-gateway/resources/index.d.ts +3 -0
  86. package/dist/factories/envoy-ai-gateway/resources/index.d.ts.map +1 -0
  87. package/dist/factories/envoy-ai-gateway/resources/index.js +3 -0
  88. package/dist/factories/envoy-ai-gateway/resources/index.js.map +1 -0
  89. package/dist/factories/envoy-ai-gateway/types.d.ts +451 -0
  90. package/dist/factories/envoy-ai-gateway/types.d.ts.map +1 -0
  91. package/dist/factories/envoy-ai-gateway/types.js +54 -0
  92. package/dist/factories/envoy-ai-gateway/types.js.map +1 -0
  93. package/dist/factories/index.d.ts +1 -0
  94. package/dist/factories/index.d.ts.map +1 -1
  95. package/dist/factories/index.js +4 -0
  96. package/dist/factories/index.js.map +1 -1
  97. package/dist/factories/kro/resource-graph-definition.d.ts.map +1 -1
  98. package/dist/factories/kro/resource-graph-definition.js +15 -7
  99. package/dist/factories/kro/resource-graph-definition.js.map +1 -1
  100. package/package.json +6 -2
@@ -0,0 +1,181 @@
1
+ import { ensureError } from '../errors.js';
2
+ import { createBunCompatibleKubernetesObjectApi } from '../kubernetes/index.js';
3
+ import { KRO_ARTIFACT_BINDINGS_SPEC_FIELD } from '../planning/values.js';
4
+ const STABLE_BINDING_SCHEMA = 'map[string]map[string]string';
5
+ const MAX_CRD_PATCH_ATTEMPTS = 5;
6
+ function statusCode(error) {
7
+ const candidate = error;
8
+ return candidate.statusCode ?? candidate.code ?? candidate.body?.code;
9
+ }
10
+ async function findGeneratedCrd(api, group, kind) {
11
+ const listed = (await api.list('apiextensions.k8s.io/v1', 'CustomResourceDefinition'));
12
+ return listed.items?.find((candidate) => candidate.spec?.group === group && candidate.spec?.names?.kind === kind);
13
+ }
14
+ function propertySchema(version) {
15
+ const root = version.schema?.openAPIV3Schema?.properties;
16
+ const spec = root?.spec;
17
+ if (!spec || typeof spec !== 'object')
18
+ return undefined;
19
+ const properties = Reflect.get(spec, 'properties');
20
+ if (!properties || typeof properties !== 'object')
21
+ return undefined;
22
+ const bindings = Reflect.get(properties, KRO_ARTIFACT_BINDINGS_SPEC_FIELD);
23
+ return bindings && typeof bindings === 'object'
24
+ ? bindings
25
+ : undefined;
26
+ }
27
+ function nestedStringMapSchema() {
28
+ return {
29
+ type: 'object',
30
+ additionalProperties: {
31
+ type: 'object',
32
+ additionalProperties: { type: 'string' },
33
+ },
34
+ };
35
+ }
36
+ function isNestedStringMap(schema) {
37
+ const outer = schema.additionalProperties;
38
+ if (!outer || typeof outer !== 'object')
39
+ return false;
40
+ const inner = Reflect.get(outer, 'additionalProperties');
41
+ return (schema.type === 'object' &&
42
+ Reflect.get(outer, 'type') === 'object' &&
43
+ Boolean(inner && typeof inner === 'object' && Reflect.get(inner, 'type') === 'string'));
44
+ }
45
+ function isLegacyArtifactBindingSchema(schema) {
46
+ if (schema.type !== 'object' || schema.additionalProperties !== undefined)
47
+ return false;
48
+ const requirements = schema.properties;
49
+ if (!requirements || typeof requirements !== 'object')
50
+ return false;
51
+ return Object.values(requirements).every((requirement) => {
52
+ if (!requirement || typeof requirement !== 'object')
53
+ return false;
54
+ if (Reflect.get(requirement, 'type') !== 'object')
55
+ return false;
56
+ const outputs = Reflect.get(requirement, 'properties');
57
+ return (outputs !== undefined &&
58
+ typeof outputs === 'object' &&
59
+ Object.values(outputs).every((output) => output !== null && typeof output === 'object' && Reflect.get(output, 'type') === 'string'));
60
+ });
61
+ }
62
+ function needsRgdReconcileRetry(rgd) {
63
+ const generation = rgd.metadata?.generation;
64
+ return (typeof generation === 'number' &&
65
+ rgd.status?.conditions?.some((condition) => condition.type === 'KindReady' &&
66
+ condition.status === 'False' &&
67
+ condition.observedGeneration === generation) === true);
68
+ }
69
+ async function requestRgdReconcile(api, rgdName) {
70
+ await api.patch({
71
+ apiVersion: 'kro.run/v1alpha1',
72
+ kind: 'ResourceGraphDefinition',
73
+ metadata: {
74
+ name: rgdName,
75
+ annotations: {
76
+ 'typekro.io/artifact-binding-migration-retry': new Date().toISOString(),
77
+ },
78
+ },
79
+ }, undefined, undefined, undefined, undefined, 'application/merge-patch+json');
80
+ }
81
+ /**
82
+ * Broadens the generated CRD's released v0.32 artifact-binding schema before
83
+ * KRO sees the topology-independent RGD. KRO rejects a direct fixed-object →
84
+ * map transition as a property removal even though every existing value is
85
+ * valid under the map. Updating the CRD first is non-destructive: it only
86
+ * broadens validation and preserves the persisted nested key/value shape.
87
+ */
88
+ export async function migrateLegacyKroArtifactBindingCrd(kubeConfig, desiredResource, dependencies = {}) {
89
+ const desiredRgd = desiredResource;
90
+ if (desiredRgd.spec?.schema?.spec?.[KRO_ARTIFACT_BINDINGS_SPEC_FIELD] !== STABLE_BINDING_SCHEMA) {
91
+ return;
92
+ }
93
+ const rgdName = desiredRgd.metadata?.name;
94
+ const apiVersion = desiredRgd.spec.schema.apiVersion;
95
+ const kind = desiredRgd.spec.schema.kind;
96
+ if (!rgdName || !apiVersion || !kind)
97
+ return;
98
+ const api = dependencies.api ?? createBunCompatibleKubernetesObjectApi(kubeConfig);
99
+ let liveRgd;
100
+ try {
101
+ liveRgd = (await api.read({
102
+ apiVersion: 'kro.run/v1alpha1',
103
+ kind: 'ResourceGraphDefinition',
104
+ metadata: { name: rgdName },
105
+ }));
106
+ }
107
+ catch (error) {
108
+ if (statusCode(error) === 404)
109
+ return;
110
+ throw new Error(`Could not inspect ResourceGraphDefinition ${rgdName} before artifact-binding migration: ${ensureError(error).message}`);
111
+ }
112
+ const liveBindingSchema = liveRgd.spec?.schema?.spec?.[KRO_ARTIFACT_BINDINGS_SPEC_FIELD];
113
+ if (!liveBindingSchema)
114
+ return;
115
+ if (liveBindingSchema !== STABLE_BINDING_SCHEMA &&
116
+ (typeof liveBindingSchema !== 'object' ||
117
+ !Object.values(liveBindingSchema).every((requirement) => requirement !== null && typeof requirement === 'object'))) {
118
+ throw new Error(`Cannot safely migrate ${rgdName}: ${KRO_ARTIFACT_BINDINGS_SPEC_FIELD} is not a recognized v0.32 or stable schema`);
119
+ }
120
+ const group = desiredRgd.spec.schema.group ??
121
+ (apiVersion.includes('/') ? apiVersion.slice(0, apiVersion.lastIndexOf('/')) : undefined);
122
+ if (!group) {
123
+ throw new Error(`Cannot migrate artifact bindings for ${rgdName}: the desired RGD schema has no API group`);
124
+ }
125
+ // Put the desired RGD in place before broadening the generated CRD. If the
126
+ // legacy RGD remains live, KRO can immediately reconcile and restore its old
127
+ // topology-shaped schema between this patch and the caller's normal apply.
128
+ // Applying the desired RGD first may briefly produce KindReady=False; the CRD
129
+ // broadening below removes that incompatibility and the normal deployment
130
+ // readiness gate waits for the same generation to become ready.
131
+ await api.patch(desiredRgd, undefined, undefined, undefined, undefined, 'application/merge-patch+json');
132
+ for (let attempt = 1; attempt <= MAX_CRD_PATCH_ATTEMPTS; attempt += 1) {
133
+ const crd = await findGeneratedCrd(api, group, kind);
134
+ if (!crd?.metadata?.name || !crd.spec?.versions) {
135
+ throw new Error(`Cannot migrate artifact bindings for ${rgdName}: its generated CRD for ${group}/${kind} was not found`);
136
+ }
137
+ let changed = false;
138
+ const versions = structuredClone(crd.spec.versions);
139
+ for (const version of versions) {
140
+ const bindings = propertySchema(version);
141
+ if (!bindings || isNestedStringMap(bindings))
142
+ continue;
143
+ if (!isLegacyArtifactBindingSchema(bindings)) {
144
+ throw new Error(`Cannot safely migrate ${crd.metadata.name}: ${KRO_ARTIFACT_BINDINGS_SPEC_FIELD} is not a recognized v0.32 schema`);
145
+ }
146
+ const root = version.schema?.openAPIV3Schema?.properties;
147
+ const spec = root?.spec;
148
+ if (!spec?.properties)
149
+ continue;
150
+ spec.properties[KRO_ARTIFACT_BINDINGS_SPEC_FIELD] = nestedStringMapSchema();
151
+ changed = true;
152
+ }
153
+ if (!changed) {
154
+ if (needsRgdReconcileRetry(liveRgd)) {
155
+ await requestRgdReconcile(api, rgdName);
156
+ }
157
+ return;
158
+ }
159
+ try {
160
+ await api.patch({
161
+ apiVersion: 'apiextensions.k8s.io/v1',
162
+ kind: 'CustomResourceDefinition',
163
+ metadata: {
164
+ name: crd.metadata.name,
165
+ ...(crd.metadata.resourceVersion
166
+ ? { resourceVersion: crd.metadata.resourceVersion }
167
+ : {}),
168
+ },
169
+ spec: { versions },
170
+ }, undefined, undefined, undefined, undefined, 'application/merge-patch+json');
171
+ await requestRgdReconcile(api, rgdName);
172
+ return;
173
+ }
174
+ catch (error) {
175
+ if (statusCode(error) !== 409 || attempt === MAX_CRD_PATCH_ATTEMPTS) {
176
+ throw new Error(`Could not migrate generated CRD ${crd.metadata.name} after ${attempt} attempt${attempt === 1 ? '' : 's'}: ${ensureError(error).message}`);
177
+ }
178
+ }
179
+ }
180
+ }
181
+ //# sourceMappingURL=kro-artifact-binding-migration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kro-artifact-binding-migration.js","sourceRoot":"","sources":["../../../src/core/deployment/kro-artifact-binding-migration.ts"],"names":[],"mappings":"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"}
@@ -429,7 +429,6 @@ export declare class KroResourceFactoryImpl<TSpec extends KroCompatibleType, TSt
429
429
  * {@link hoistedNamespaceRefs} / {@link resourcesForRgd}.
430
430
  */
431
431
  private buildRgdManifest;
432
- private kroArtifactOutputUses;
433
432
  private buildRgdYaml;
434
433
  /**
435
434
  * Assert the emitted RGD carries NO leftover reference to a hoisted (removed)
@@ -458,6 +457,7 @@ export declare class KroResourceFactoryImpl<TSpec extends KroCompatibleType, TSt
458
457
  * not survive on an existing cluster-scoped RGD.
459
458
  */
460
459
  private addRgdSchemaStatusPruneMarkers;
460
+ private migrateLegacyArtifactBindings;
461
461
  /**
462
462
  * Ensure the ResourceGraphDefinition is deployed using DirectDeploymentEngine.
463
463
  *
@@ -1 +1 @@
1
- {"version":3,"file":"kro-factory.d.ts","sourceRoot":"","sources":["../../../src/core/deployment/kro-factory.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AASH,OAAO,KAAK,EACV,0BAA0B,EAE3B,MAAM,wBAAwB,CAAC;AAyChC,OAAO,EAgCL,KAAK,gCAAgC,EAEtC,MAAM,sBAAsB,CAAC;AAmB9B,OAAO,KAAK,EAKV,cAAc,EACd,aAAa,EACb,oCAAoC,EACpC,kCAAkC,EAGlC,kBAAkB,EAElB,sBAAsB,EACtB,4BAA4B,EAE5B,SAAS,EAEV,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAyB,QAAQ,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAClG,OAAO,KAAK,EACV,iBAAiB,EAEjB,oBAAoB,EACpB,gBAAgB,EAChB,WAAW,EAEZ,MAAM,2BAA2B,CAAC;AA+KnC;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,iBAAiB,CAI/B,SAAS,EAAE,aAAa,CAAC;IAAE,QAAQ,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,CAAA;CAAE,CAAC,EAChF,UAAU,EAAE,MAAM,EAClB,eAAe,EAAE,OAAO,EACxB,eAAe,CAAC,EAAE,MAAM,GACvB,OAAO,CAST;AA0KD;;;;;GAKG;AACH,qBAAa,sBAAsB,CACjC,KAAK,SAAS,iBAAiB,EAC/B,OAAO,SAAS,iBAAiB,CACjC,YAAW,kBAAkB,CAAC,KAAK,EAAE,OAAO,CAAC;IAE7C,QAAQ,CAAC,IAAI,EAAG,KAAK,CAAU;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAE7C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAqC;IAC/D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAoC;IAC7D,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAmC;IACpE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA0B;IACzD,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAA8B;IACnE,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAA8C;IACrF,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqC;IAC5D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;IAChD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA0B;IACxD;;;;;;OAMG;IACH,OAAO,CAAC,qBAAqB,CAAS;IACtC,OAAO,CAAC,0BAA0B,CAAS;IAE3C;;;;;;;;;;OAUG;IACH,OAAO,CAAC,gBAAgB,CAAqB;IAI7C,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAAwC;IAClF,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA8C;gBAGxE,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,EAC7C,gBAAgB,EAAE,gBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC,EAClD,cAAc,EAAE,oBAAoB,CAAC,OAAO,CAAC,EAC7C,OAAO,GAAE,cAAmB;IA+C9B,iFAAiF;IACjF,OAAO,CAAC,kBAAkB;IAO1B,OAAO,CAAC,gBAAgB;IAMxB,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,qBAAqB;IAI7B,OAAO,CAAC,4BAA4B;IAoBpC;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACH,OAAO,CAAC,wBAAwB;IAMhC;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,oBAAoB;IAM5B;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,yBAAyB;IA0BjC;;;;OAIG;IACH,OAAO,CAAC,qBAAqB;IAI7B;;;;;;;OAOG;IACH,OAAO,CAAC,eAAe;IAWvB;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;IAsBxB,oFAAoF;IACpF,OAAO,CAAC,uBAAuB;IA+D/B;;;OAGG;IACH,OAAO,CAAC,wBAAwB;IA+QhC,uEAAuE;IACvE,OAAO,CAAC,yBAAyB;IAgCjC;;;;;;;;;OASG;YACW,qBAAqB;IA+HnC;;;;;;;;;OASG;YACW,eAAe;IA2B7B;;;;;;;;OAQG;YACW,0BAA0B;YAoB1B,0BAA0B;IAoBxC;;;;;OAKG;YACW,uBAAuB;IAoBrC,OAAO,CAAC,yBAAyB;IAIjC;;;OAGG;IACH,OAAO,CAAC,0BAA0B;IAclC;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAIzB;;OAEG;IACH,OAAO,CAAC,aAAa;IAIrB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAI3B,OAAO,CAAC,aAAa;IAUf,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAU9B;;OAEG;IACG,MAAM,CACV,IAAI,EAAE,KAAK,EACX,IAAI,CAAC,EAAE,oCAAoC,GAC1C,OAAO,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YAWtB,qBAAqB;IAqDnC;;;;OAIG;IACH,OAAO,CAAC,4BAA4B;IAiBpC;;;;;OAKG;IACH,OAAO,CAAC,8BAA8B;IA6DtC,6FAA6F;IAC7F,OAAO,CAAC,mBAAmB;YAuBb,qBAAqB;YAiDrB,uCAAuC;IAwBrD,OAAO,CAAC,+BAA+B;IAcvC;;;OAGG;YACW,wBAAwB;IA0HtC,OAAO,CAAC,wBAAwB;IAsBhC,OAAO,CAAC,mCAAmC;IA4C3C,qFAAqF;YACvE,uBAAuB;IAgPrC;;OAEG;YACW,YAAY;IA8H1B;;;;;;;;;;;OAWG;YACW,6BAA6B;IA2G3C;;;;;;;;;;;;;;;;;;;;;;OAsBG;YACW,iCAAiC;IA2D/C;;;;;;;;;;;;;;;;;OAiBG;YACW,sCAAsC;IAyHpD;;OAEG;IACG,YAAY,CAChB,IAAI,CAAC,EAAE,kCAAkC,GACxC,OAAO,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC;YASxB,2BAA2B;YAqG3B,uBAAuB;YAiCvB,sBAAsB;IAOpC;;OAEG;IACG,cAAc,CAClB,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,4BAA4B,GAClC,OAAO,CAAC,sBAAsB,CAAC;YAOpB,6BAA6B;IAmzB3C;;;;;;;;;;;;;;;;;;;OAmBG;IACG,kBAAkB,CACtB,IAAI,EAAE,KAAK,EACX,IAAI,CAAC,EAAE;QAAE,oBAAoB,CAAC,EAAE,MAAM,CAAC;QAAC,wBAAwB,CAAC,EAAE,MAAM,CAAA;KAAE,GAC1E,OAAO,CAAC,0BAA0B,EAAE,CAAC;IAqLxC;;;;;;;;;;;;;;;;OAgBG;IACH,OAAO,CAAC,iBAAiB;IAIzB,yGAAyG;IACzG,OAAO,CAAC,kCAAkC;IAc1C,iGAAiG;IACjG,OAAO,CAAC,+BAA+B;IAYvC,OAAO,CAAC,6BAA6B;YA2CvB,wCAAwC;IAyMtD;;OAEG;IACG,SAAS,CAAC,IAAI,CAAC,EAAE,kCAAkC,GAAG,OAAO,CAAC,aAAa,CAAC;YASpE,wBAAwB;IAatC;;OAEG;IACG,YAAY,CAAC,IAAI,CAAC,EAAE,kCAAkC,GAAG,OAAO,CAAC,SAAS,CAAC;YASnE,2BAA2B;IA6EzC;;OAEG;IACH,MAAM,IAAI,MAAM;IAChB;;OAEG;IACH,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,gCAAgC,GAAG,MAAM;IA6HvE;;;;;;;;;;;;;;;;;OAiBG;IACH,OAAO,CAAC,gBAAgB;IA6JxB,OAAO,CAAC,qBAAqB;IAe7B,OAAO,CAAC,YAAY;IAOpB;;;;;OAKG;IACH,OAAO,CAAC,iCAAiC;IAazC;;;;;;;;;;OAUG;IACH,OAAO,CAAC,uCAAuC;IAiC/C,OAAO,CAAC,MAAM,CAAC,QAAQ;IAOvB,OAAO,CAAC,MAAM,CAAC,qBAAqB;IASpC;;;;OAIG;YACW,8BAA8B;IA8C5C;;;;;OAKG;YACW,iBAAiB;YAiHjB,qBAAqB;IAiBnC,OAAO,CAAC,6BAA6B;YAoCvB,sBAAsB;IA0BpC,OAAO,CAAC,6BAA6B;IAoDrC,OAAO,CAAC,yBAAyB;IA0CjC,OAAO,CAAC,qCAAqC;IAsE7C,OAAO,CAAC,8BAA8B;IA+DtC,OAAO,CAAC,6BAA6B;IAoCrC,OAAO,CAAC,mCAAmC;IA4B3C,OAAO,CAAC,sCAAsC;IAgB9C,OAAO,CAAC,kCAAkC;IAY1C,OAAO,CAAC,+BAA+B;IA+FvC,OAAO,CAAC,yCAAyC;IAcjD,OAAO,CAAC,mBAAmB;IAU3B,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,+BAA+B;IAQvC;;;;;;;OAOG;YACW,yBAAyB;IAqBvC;;OAEG;YACW,oBAAoB;IAclC;;OAEG;YACW,oBAAoB;YAapB,wBAAwB;IAqEtC,OAAO,CAAC,qBAAqB;IAe7B;;;;;;OAMG;IACH,OAAO,CAAC,2BAA2B;IAwBnC;;;;;;OAMG;IACH,OAAO,CAAC,uBAAuB;IAyB/B;;;;;;OAMG;IACH,OAAO,CAAC,uBAAuB;IA4B/B;;;OAGG;IACH,OAAO,CAAC,oCAAoC;IAyB5C,OAAO,CAAC,2BAA2B;IAenC,OAAO,CAAC,cAAc;IAiBtB;;OAEG;IACH,OAAO,CAAC,eAAe;IAYvB;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAuBhC,OAAO,CAAC,4BAA4B;IAyDpC;;;;;;;;;;;;;;;OAeG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,2BAA2B,CASxC;IAEX;;;;;;;;OAQG;IACH,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAIjC;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,MAAM,CAAC,0BAA0B;IAUzC;;;;;;;;OAQG;IACH,OAAO,CAAC,MAAM,CAAC,8BAA8B;IA8E7C,4DAA4D;IAC5D,OAAO,CAAC,wBAAwB;IA6BhC,OAAO,CAAC,kCAAkC;IA+D1C,OAAO,CAAC,oCAAoC;IAkB5C;;OAEG;YACW,qCAAqC;IAoHnD;;;OAGG;YACW,uBAAuB;IA4GrC,OAAO,CAAC,gCAAgC;IAwCxC;;OAEG;YACW,mBAAmB;IAOjC;;;OAGG;YACW,uBAAuB;IAyBrC;;OAEG;YACW,0BAA0B;CA2CzC;AAID;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,iCAAiC,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAsB1F;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,KAAK,SAAS,iBAAiB,EAC/B,OAAO,SAAS,iBAAiB,EAEjC,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,EAC7C,gBAAgB,EAAE,gBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC,EAClD,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACvC,OAAO,GAAE,cAAmB,GAC3B,kBAAkB,CAAC,KAAK,EAAE,OAAO,CAAC,CAQpC"}
1
+ {"version":3,"file":"kro-factory.d.ts","sourceRoot":"","sources":["../../../src/core/deployment/kro-factory.ts"],"names":[],"mappings":"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"}
@@ -25,7 +25,7 @@ import { getComponentLogger } from '../logging/index.js';
25
25
  // alchemy bridge are injected via FactoryOptions providers (Phase 3.5)
26
26
  // instead of dynamic import() from higher layers.
27
27
  import { copyResourceMetadata, getMetadataField, getReadinessEvaluator, getResourceScope, setMetadataField, setReadinessEvaluator, setResourceId, } from '../metadata/index.js';
28
- import { assertAdapterCapabilitiesSupported, canonicalStringify, collectArtifactOutputUses, collectPlanValueSensitiveBindings, compileKroArtifactPlan, createKroArtifactBundle, decodeKroArtifactBundle, encodeKroArtifactBundle, KRO_ARTIFACT_BINDINGS_SPEC_FIELD, kroArtifactOutputField, kroArtifactPlanToGraphResources, kroArtifactPlanToInstanceResource, kroArtifactPlanToSupportingResources, kroArtifactRequirementField, lowerPlanValue, mapPlanValueSensitiveBindings, materializeKroArtifactBundleOperation, materializePlanValue, mergeKroArtifactBundleOperations, orderKroArtifactBundleOperations, planValueSensitiveBindingNames, resolveStaticYamlSensitiveBindings, schemaToIR, } from '../planning/index.js';
28
+ import { assertAdapterCapabilitiesSupported, canonicalStringify, collectArtifactOutputUses, collectPlanValueSensitiveBindings, compileKroArtifactPlan, createKroArtifactBundle, decodeKroArtifactBundle, encodeKroArtifactBundle, KRO_ARTIFACT_BINDINGS_SPEC_FIELD, kroArtifactPlanToGraphResources, kroArtifactPlanToInstanceResource, kroArtifactPlanToSupportingResources, lowerPlanValue, mapPlanValueSensitiveBindings, materializeKroArtifactBundleOperation, materializePlanValue, mergeKroArtifactBundleOperations, orderKroArtifactBundleOperations, planValueSensitiveBindingNames, resolveStaticYamlSensitiveBindings, schemaToIR, } from '../planning/index.js';
29
29
  import { createAlwaysReadyEvaluator, createCustomResourceDefinitionReadinessEvaluator, ensureReadinessEvaluator, getPortableReadinessStrategy, resolvePortableReadinessStrategy, } from '../readiness/index.js';
30
30
  import { createSchemaProxy, DeploymentMode } from '../references/index.js';
31
31
  import { runStandaloneOperation } from '../runtime/standalone-operation.js';
@@ -40,6 +40,7 @@ import { blockerForRemainingResource, createDeletionResultState, deletionTarget,
40
40
  import { DirectDeploymentEngine } from './engine.js';
41
41
  import { logHandleSnapshot } from './handle-tracing.js';
42
42
  import { isNotFoundError } from './k8s-helpers.js';
43
+ import { migrateLegacyKroArtifactBindingCrd } from './kro-artifact-binding-migration.js';
43
44
  import { assertKroInstanceSpecPreserved } from './kro-instance-admission.js';
44
45
  import { assertKroInstanceNamespaceOwnershipSafe, assertNoHoistWeakenedStatusFields, concreteActiveOwnedResources, concreteOwnedNamespaceResources, findDanglingHoistedReference, resolveConcreteMetadataValue, resolveNamespaceName, rewriteHoistedNamespaceReferences, rewriteHoistedNamespaceRefsInValue, selectHoistedNamespaces, } from './kro-instance-safety.js';
45
46
  import { decideNamespaceOwnershipCreateFirst, deleteNamespaceIfEmpty, HOISTED_NAMESPACES_ANNOTATION, listNamespacesOwnedByRgd, NAMESPACE_OWNER_ANNOTATION, parseHoistedNamespacesAnnotation, readHoistedNamespacesRecord, } from './kro-namespace-teardown.js';
@@ -205,9 +206,11 @@ async function captureKnownControllerDescendants(k8sApi, childTargets, defaultNa
205
206
  });
206
207
  }
207
208
  catch (error) {
208
- const statusCode = error.statusCode ??
209
- error.body?.code;
210
- if (statusCode === 404)
209
+ // @kubernetes/client-node 1.x's KubernetesObjectApi can expose a 404
210
+ // only through its message and a serialized `body` string. Reuse the
211
+ // shared cross-version classifier so an already-absent Job is valid
212
+ // teardown evidence rather than a false discovery failure.
213
+ if (isNotFoundError(error))
211
214
  continue;
212
215
  throw error;
213
216
  }
@@ -1450,6 +1453,12 @@ export class KroResourceFactoryImpl {
1450
1453
  operation.role === 'singleton-owner-rgd') {
1451
1454
  await member.factory.runKroPrerequisiteHook(deploymentEngine, undefined, abortSignal);
1452
1455
  await member.factory.addRgdSchemaStatusPruneMarkers(resource);
1456
+ // Keep the semantic artifact-bundle path equivalent to the legacy
1457
+ // ensureRGDDeployed() path. Existing v0.32 instances may still have a
1458
+ // topology-specific generated CRD even when the desired RGD already
1459
+ // carries the stable map schema, so this must run before the RGD is
1460
+ // applied on every resumable deploy.
1461
+ await member.factory.migrateLegacyArtifactBindings(resource);
1453
1462
  const rgdFactory = member.factory.rgdProvider ??
1454
1463
  (await import('../../factories/kro/resource-graph-definition.js'))
1455
1464
  .resourceGraphDefinition;
@@ -3339,19 +3348,7 @@ export class KroResourceFactoryImpl {
3339
3348
  }
3340
3349
  const kroSchema = generateKroSchemaFromArktype(this.name, this.schemaDefinition, aspectResources, statusMappings, nestedCel, this.factoryOptions.compositionOptions
3341
3350
  ?.schemaFieldValidations);
3342
- const artifactOutputUses = this.kroArtifactOutputUses();
3343
- if (artifactOutputUses.length > 0) {
3344
- const byRequirement = new Map();
3345
- for (const use of artifactOutputUses) {
3346
- const current = byRequirement.get(use.requirementId) ?? [];
3347
- current.push(use);
3348
- byRequirement.set(use.requirementId, current);
3349
- }
3350
- kroSchema.spec[KRO_ARTIFACT_BINDINGS_SPEC_FIELD] = Object.fromEntries([...byRequirement.entries()].map(([requirementId, uses]) => [
3351
- kroArtifactRequirementField(requirementId),
3352
- Object.fromEntries(uses.map((use) => [kroArtifactOutputField(use.output), 'string'])),
3353
- ]));
3354
- }
3351
+ kroSchema.spec[KRO_ARTIFACT_BINDINGS_SPEC_FIELD] = 'map[string]map[string]string';
3355
3352
  // Attach nested status CEL mappings as non-enumerable property so
3356
3353
  // serializeResourceGraphToYaml can inline virtual composition IDs.
3357
3354
  if (nestedCel && Object.keys(nestedCel).length > 0) {
@@ -3393,6 +3390,12 @@ export class KroResourceFactoryImpl {
3393
3390
  const rgdManifest = serializeResourceGraphToManifest(this.rgdName, aspectResources, {
3394
3391
  ...this.factoryOptions.compositionOptions,
3395
3392
  namespace: this.namespace,
3393
+ // Factory-level override. The composition option of the same name is unreachable for a consumer of a
3394
+ // SHIPPED composition (its definition lives in TypeKro), so without this there is no way to authorize
3395
+ // the one-off CRD schema migration KRO would otherwise silently refuse.
3396
+ ...(this.factoryOptions.allowBreakingChanges === undefined
3397
+ ? {}
3398
+ : { allowBreakingChanges: this.factoryOptions.allowBreakingChanges }),
3396
3399
  }, kroSchema);
3397
3400
  // VALIDATE (finding #6): after hoisting, NO reference to any removed resource id
3398
3401
  // may remain anywhere in the emitted RGD. If one slipped through (a form the
@@ -3401,23 +3404,13 @@ export class KroResourceFactoryImpl {
3401
3404
  this.assertNoDanglingHoistedReferences(JSON.stringify(rgdManifest), new Set(hoistIds.keys()));
3402
3405
  return rgdManifest;
3403
3406
  }
3404
- kroArtifactOutputUses() {
3405
- const capture = this.factoryOptions.semanticCapture;
3406
- if (!capture)
3407
- return [];
3408
- const configuredPlan = this.factoryOptions.plan ?? {};
3409
- const plan = capture.planTemplate({
3410
- ...configuredPlan,
3411
- aspects: configuredPlan.aspects ?? this.factoryOptions.aspects ?? [],
3412
- });
3413
- return collectArtifactOutputUses({
3414
- nodes: plan.nodes,
3415
- outputs: plan.outputs,
3416
- representationRequirements: plan.representationRequirements,
3417
- });
3418
- }
3419
3407
  buildRgdYaml(spec) {
3420
- return serializeResourceGraphDefinitionToYaml(this.buildRgdManifest(spec), this.factoryOptions.compositionOptions);
3408
+ return serializeResourceGraphDefinitionToYaml(this.buildRgdManifest(spec), {
3409
+ ...this.factoryOptions.compositionOptions,
3410
+ ...(this.factoryOptions.allowBreakingChanges === undefined
3411
+ ? {}
3412
+ : { allowBreakingChanges: this.factoryOptions.allowBreakingChanges }),
3413
+ });
3421
3414
  }
3422
3415
  /**
3423
3416
  * Assert the emitted RGD carries NO leftover reference to a hoisted (removed)
@@ -3517,6 +3510,9 @@ export class KroResourceFactoryImpl {
3517
3510
  });
3518
3511
  }
3519
3512
  }
3513
+ async migrateLegacyArtifactBindings(rgdManifest) {
3514
+ await migrateLegacyKroArtifactBindingCrd(this.getKubeConfig(), rgdManifest);
3515
+ }
3520
3516
  /**
3521
3517
  * Ensure the ResourceGraphDefinition is deployed using DirectDeploymentEngine.
3522
3518
  *
@@ -3548,6 +3544,7 @@ export class KroResourceFactoryImpl {
3548
3544
  },
3549
3545
  };
3550
3546
  await this.addRgdSchemaStatusPruneMarkers(rgdWithMetadata);
3547
+ await this.migrateLegacyArtifactBindings(rgdWithMetadata);
3551
3548
  // Create Enhanced RGD with readiness evaluator
3552
3549
  const rgdFactory = this.rgdProvider ??
3553
3550
  (await import('../../factories/kro/resource-graph-definition.js')).resourceGraphDefinition;
@@ -4332,8 +4329,15 @@ export class KroResourceFactoryImpl {
4332
4329
  instanceNameOverride: instanceName,
4333
4330
  ...(singletonSpecFingerprint ? { singletonSpecFingerprint } : {}),
4334
4331
  });
4335
- if (!compilation)
4336
- return legacyManifest;
4332
+ if (!compilation) {
4333
+ return {
4334
+ ...legacyManifest,
4335
+ spec: {
4336
+ ...spec,
4337
+ [KRO_ARTIFACT_BINDINGS_SPEC_FIELD]: {},
4338
+ },
4339
+ };
4340
+ }
4337
4341
  return kroArtifactPlanToInstanceResource(compilation.artifacts, {
4338
4342
  sensitive: compilation.sensitiveBindings,
4339
4343
  });