@telorun/templating 0.11.1 → 0.12.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.
package/README.md CHANGED
@@ -48,7 +48,9 @@ See [examples/](./examples/) for a list of working applications.
48
48
 
49
49
  ## Status
50
50
 
51
- Telo is under **active development**. The core runtime, module system, and standard library are functional, but the API surface — including YAML shapes — may change without notice. Not yet recommended for production use.
51
+ Telo is under heavy development. While it is pre-1.0, breaking changes ship in **minor** releases — manifest shapes, kind schemas, and APIs can change between versions. Pin your imports and expect to update manifests when you upgrade. The core runtime, module system, and standard library are functional, but Telo is not yet recommended for production use.
52
+
53
+ **1.0 lands when the Rust kernel reaches feature parity with the Node.js implementation** — that is the milestone that freezes the manifest contract across runtimes.
52
54
 
53
55
  ## The Meaning of Telo
54
56
 
@@ -1 +1 @@
1
- {"version":3,"file":"manifest-schemas.d.ts","sourceRoot":"","sources":["../src/manifest-schemas.ts"],"names":[],"mappings":"AAAA;;;;;;kBAMkB;AAElB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yEA+ByE;AACzE,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoB7B,CAAC;AAqCF;;;;;;;;;;;;;;uDAcuD;AACvD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CA0C1D;AAED;;;;;+BAK+B;AAC/B,eAAO,MAAM,mBAAmB,oBAAoB,CAAC;AAErD;;;8BAG8B;AAC9B,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAK9B,CAAC"}
1
+ {"version":3,"file":"manifest-schemas.d.ts","sourceRoot":"","sources":["../src/manifest-schemas.ts"],"names":[],"mappings":"AAAA;;;;;;kBAMkB;AAElB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yEA+ByE;AACzE,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoB7B,CAAC;AAqCF;;;;;;;;;;;;;;uDAcuD;AACvD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CA+C1D;AAED;;;;;+BAK+B;AAC/B,eAAO,MAAM,mBAAmB,oBAAoB,CAAC;AAErD;;;8BAG8B;AAC9B,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAK9B,CAAC"}
@@ -113,7 +113,12 @@ export function normalizeRefSlots(schema) {
113
113
  const out = { ...node };
114
114
  // Reference slot with a stale scalar `type` (legacy string-ref encoding):
115
115
  // drop the constraint so the resolved reference object / sentinel validates.
116
- if (typeof node[REF_ANNOTATION] === "string" &&
116
+ //
117
+ // A presence test, not a shape test — deliberately, since `templating` sits
118
+ // BELOW the analyzer in the dependency order and cannot reach the shared
119
+ // `readRefSlot` accessor. Presence is the only thing this rule needs, and it
120
+ // is stable across every annotation shape.
121
+ if (node[REF_ANNOTATION] !== undefined &&
117
122
  typeof node.type === "string" &&
118
123
  LEGACY_REF_SCALAR_TYPES.has(node.type)) {
119
124
  delete out.type;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@telorun/templating",
3
- "version": "0.11.1",
3
+ "version": "0.12.0",
4
4
  "description": "Telo Templating - Engine registry and shared CEL core for Telo manifests.",
5
5
  "keywords": [
6
6
  "telo",
@@ -44,7 +44,7 @@
44
44
  "@types/node": "^20.0.0",
45
45
  "typescript": "^5.0.0",
46
46
  "vitest": "^2.1.8",
47
- "@telorun/sdk": "0.62.0"
47
+ "@telorun/sdk": "0.67.0"
48
48
  },
49
49
  "peerDependencies": {
50
50
  "@telorun/sdk": "*"
@@ -118,8 +118,13 @@ export function normalizeRefSlots(schema: unknown): unknown {
118
118
  const out: Record<string, unknown> = { ...node };
119
119
  // Reference slot with a stale scalar `type` (legacy string-ref encoding):
120
120
  // drop the constraint so the resolved reference object / sentinel validates.
121
+ //
122
+ // A presence test, not a shape test — deliberately, since `templating` sits
123
+ // BELOW the analyzer in the dependency order and cannot reach the shared
124
+ // `readRefSlot` accessor. Presence is the only thing this rule needs, and it
125
+ // is stable across every annotation shape.
121
126
  if (
122
- typeof node[REF_ANNOTATION] === "string" &&
127
+ node[REF_ANNOTATION] !== undefined &&
123
128
  typeof node.type === "string" &&
124
129
  LEGACY_REF_SCALAR_TYPES.has(node.type)
125
130
  ) {