@telorun/analyzer 0.62.1 → 0.63.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 (142) hide show
  1. package/dist/analysis-registry.d.ts.map +1 -1
  2. package/dist/analysis-registry.js +6 -0
  3. package/dist/analyzer.d.ts +1 -1
  4. package/dist/analyzer.d.ts.map +1 -1
  5. package/dist/analyzer.js +343 -13
  6. package/dist/call-graph.d.ts.map +1 -1
  7. package/dist/call-graph.js +2 -7
  8. package/dist/flatten-for-analyzer.js +1 -1
  9. package/dist/import-resolution-diagnostics.d.ts +9 -2
  10. package/dist/import-resolution-diagnostics.d.ts.map +1 -1
  11. package/dist/import-resolution-diagnostics.js +26 -7
  12. package/dist/index.d.ts +15 -1
  13. package/dist/index.d.ts.map +1 -1
  14. package/dist/index.js +13 -1
  15. package/dist/invocation-contract.d.ts +6 -1
  16. package/dist/invocation-contract.d.ts.map +1 -1
  17. package/dist/invocation-contract.js +27 -4
  18. package/dist/loaded-types.d.ts +12 -3
  19. package/dist/loaded-types.d.ts.map +1 -1
  20. package/dist/manifest-loader.d.ts +0 -1
  21. package/dist/manifest-loader.d.ts.map +1 -1
  22. package/dist/manifest-loader.js +62 -41
  23. package/dist/manifest-schemas.d.ts +699 -0
  24. package/dist/manifest-schemas.d.ts.map +1 -1
  25. package/dist/manifest-schemas.js +306 -14
  26. package/dist/module-compatibility.d.ts +40 -0
  27. package/dist/module-compatibility.d.ts.map +1 -0
  28. package/dist/module-compatibility.js +52 -0
  29. package/dist/ref-slot-reading.d.ts +30 -0
  30. package/dist/ref-slot-reading.d.ts.map +1 -0
  31. package/dist/ref-slot-reading.js +139 -0
  32. package/dist/referrer-rule.d.ts +67 -0
  33. package/dist/referrer-rule.d.ts.map +1 -0
  34. package/dist/referrer-rule.js +96 -0
  35. package/dist/release/index.d.ts +1 -1
  36. package/dist/release/index.d.ts.map +1 -1
  37. package/dist/release/index.js +1 -1
  38. package/dist/release/version-stamp.d.ts +16 -0
  39. package/dist/release/version-stamp.d.ts.map +1 -1
  40. package/dist/release/version-stamp.js +52 -0
  41. package/dist/release/workspace-config.d.ts +10 -6
  42. package/dist/release/workspace-config.d.ts.map +1 -1
  43. package/dist/release/workspace-config.js +10 -6
  44. package/dist/resolve-schema-ref-kinds.d.ts +4 -3
  45. package/dist/resolve-schema-ref-kinds.d.ts.map +1 -1
  46. package/dist/resolve-schema-ref-kinds.js +16 -0
  47. package/dist/resolve-throws-union.d.ts.map +1 -1
  48. package/dist/resolve-throws-union.js +4 -3
  49. package/dist/resolve-zone-containment.d.ts +99 -0
  50. package/dist/resolve-zone-containment.d.ts.map +1 -0
  51. package/dist/resolve-zone-containment.js +212 -0
  52. package/dist/resolve-zone-requirements.d.ts +5 -0
  53. package/dist/resolve-zone-requirements.d.ts.map +1 -1
  54. package/dist/resolve-zone-requirements.js +48 -7
  55. package/dist/resource-rule.d.ts +106 -0
  56. package/dist/resource-rule.d.ts.map +1 -0
  57. package/dist/resource-rule.js +236 -0
  58. package/dist/rule-condition.d.ts +50 -0
  59. package/dist/rule-condition.d.ts.map +1 -0
  60. package/dist/rule-condition.js +108 -0
  61. package/dist/schema-keywords.d.ts.map +1 -1
  62. package/dist/schema-keywords.js +20 -0
  63. package/dist/schema-projection.d.ts +171 -0
  64. package/dist/schema-projection.d.ts.map +1 -0
  65. package/dist/schema-projection.js +317 -0
  66. package/dist/step-slot.d.ts +39 -0
  67. package/dist/step-slot.d.ts.map +1 -0
  68. package/dist/step-slot.js +49 -0
  69. package/dist/telo-version.d.ts +1 -1
  70. package/dist/telo-version.js +1 -1
  71. package/dist/validate-cel-context.d.ts.map +1 -1
  72. package/dist/validate-cel-context.js +17 -3
  73. package/dist/validate-durable-regions.d.ts +15 -0
  74. package/dist/validate-durable-regions.d.ts.map +1 -0
  75. package/dist/validate-durable-regions.js +336 -0
  76. package/dist/validate-references.d.ts.map +1 -1
  77. package/dist/validate-references.js +44 -2
  78. package/dist/validate-referrer-rules.d.ts +120 -0
  79. package/dist/validate-referrer-rules.d.ts.map +1 -0
  80. package/dist/validate-referrer-rules.js +255 -0
  81. package/dist/validate-resource-rules.d.ts +114 -0
  82. package/dist/validate-resource-rules.d.ts.map +1 -0
  83. package/dist/validate-resource-rules.js +283 -0
  84. package/dist/validate-schema-projection.d.ts +32 -0
  85. package/dist/validate-schema-projection.d.ts.map +1 -0
  86. package/dist/validate-schema-projection.js +110 -0
  87. package/dist/validate-step-inputs.d.ts +2 -1
  88. package/dist/validate-step-inputs.d.ts.map +1 -1
  89. package/dist/validate-step-inputs.js +5 -3
  90. package/dist/validate-throws-coverage.d.ts.map +1 -1
  91. package/dist/validate-throws-coverage.js +11 -5
  92. package/dist/validate-zone-slots.d.ts +2 -2
  93. package/dist/validate-zone-slots.d.ts.map +1 -1
  94. package/dist/validate-zone-slots.js +202 -6
  95. package/dist/validate-zone-violations.d.ts +12 -0
  96. package/dist/validate-zone-violations.d.ts.map +1 -0
  97. package/dist/validate-zone-violations.js +169 -0
  98. package/dist/value-type-keyword.d.ts +1 -1
  99. package/dist/value-type-keyword.d.ts.map +1 -1
  100. package/dist/value-type-keyword.js +4 -0
  101. package/dist/zone-slot.d.ts +61 -0
  102. package/dist/zone-slot.d.ts.map +1 -1
  103. package/dist/zone-slot.js +86 -5
  104. package/package.json +2 -2
  105. package/src/analysis-registry.ts +6 -0
  106. package/src/analyzer.ts +395 -14
  107. package/src/call-graph.ts +2 -8
  108. package/src/flatten-for-analyzer.ts +1 -1
  109. package/src/import-resolution-diagnostics.ts +25 -7
  110. package/src/index.ts +73 -0
  111. package/src/invocation-contract.ts +45 -2
  112. package/src/loaded-types.ts +12 -3
  113. package/src/manifest-loader.ts +87 -55
  114. package/src/manifest-schemas.ts +328 -14
  115. package/src/module-compatibility.ts +72 -0
  116. package/src/ref-slot-reading.ts +156 -0
  117. package/src/referrer-rule.ts +116 -0
  118. package/src/release/index.ts +1 -0
  119. package/src/release/version-stamp.ts +58 -0
  120. package/src/release/workspace-config.ts +10 -6
  121. package/src/resolve-schema-ref-kinds.ts +28 -4
  122. package/src/resolve-throws-union.ts +4 -3
  123. package/src/resolve-zone-containment.ts +329 -0
  124. package/src/resolve-zone-requirements.ts +67 -7
  125. package/src/resource-rule.ts +252 -0
  126. package/src/rule-condition.ts +126 -0
  127. package/src/schema-keywords.ts +24 -0
  128. package/src/schema-projection.ts +403 -0
  129. package/src/step-slot.ts +64 -0
  130. package/src/telo-version.ts +1 -1
  131. package/src/validate-cel-context.ts +17 -3
  132. package/src/validate-durable-regions.ts +401 -0
  133. package/src/validate-references.ts +57 -2
  134. package/src/validate-referrer-rules.ts +373 -0
  135. package/src/validate-resource-rules.ts +401 -0
  136. package/src/validate-schema-projection.ts +184 -0
  137. package/src/validate-step-inputs.ts +5 -3
  138. package/src/validate-throws-coverage.ts +12 -5
  139. package/src/validate-zone-slots.ts +192 -8
  140. package/src/validate-zone-violations.ts +190 -0
  141. package/src/value-type-keyword.ts +4 -0
  142. package/src/zone-slot.ts +114 -5
@@ -14,22 +14,41 @@ function isRecognizedSourceShape(source) {
14
14
  source.startsWith("https://") ||
15
15
  isLocalPathSource(source));
16
16
  }
17
- function messageFor(e, malformed) {
17
+ /** Which of the three failures this is. Kept as one function so the code and
18
+ * the sentence can never disagree about which cause was established. */
19
+ function classify(e) {
20
+ if (e.reason === "unusable-target")
21
+ return "INVALID_IMPORT_TARGET";
22
+ return isRecognizedSourceShape(e.source ?? e.url) ? "IMPORT_UNRESOLVED" : "INVALID_IMPORT_SOURCE";
23
+ }
24
+ function messageFor(e, code) {
18
25
  const authored = e.source ?? e.url;
19
26
  const via = e.alias ? `import '${e.alias}' → '${authored}'` : `'${authored}'`;
20
- if (malformed) {
27
+ if (code === "INVALID_IMPORT_SOURCE") {
21
28
  return (`Cannot resolve ${via}: not a recognized module reference. Expected ` +
22
29
  `'namespace/name@version', 'oci://host/repo@tag', 'https://…', or a relative path.`);
23
30
  }
31
+ // The target WAS obtained, so "cannot resolve" would name the wrong problem —
32
+ // and the wrong person to fix it. The loader's message already says what was
33
+ // fetched and why it is not importable.
34
+ if (code === "INVALID_IMPORT_TARGET")
35
+ return `Cannot use ${via}: ${e.error.message}`;
24
36
  return `Cannot resolve ${via}: ${e.error.message}`;
25
37
  }
26
38
  /**
27
- * Convert a graph's import-resolution failures (`graph.errors`) into structured,
28
- * coded diagnostics. This is the single source of truth for surfacing a broken
39
+ * Convert a graph's import failures (`graph.errors`) into structured, coded
40
+ * diagnostics. This is the single source of truth for surfacing a broken
29
41
  * import — every host (CLI, VS Code, telo-editor) routes these instead of each
30
42
  * re-deriving the channel and drifting (the VS Code extension used to drop it
31
43
  * entirely, showing nothing for a broken import).
32
44
  *
45
+ * Three codes, because three different people fix them:
46
+ * `INVALID_IMPORT_SOURCE` (the ref is not a module reference at all),
47
+ * `IMPORT_UNRESOLVED` (a well-formed ref that could not be obtained), and
48
+ * `INVALID_IMPORT_TARGET` (obtained, but not an importable library — an
49
+ * application, no library document, or one that names no module). Collapsing
50
+ * the last into the second would tell an author to fix a ref that is correct.
51
+ *
33
52
  * The analyzer owns only this raw channel conversion; the *presentation* policy
34
53
  * — which analysis cascade to hold back for a compromised file — lives in
35
54
  * `@telorun/ide-support`'s `assembleGraphDiagnostics`.
@@ -42,7 +61,7 @@ function messageFor(e, malformed) {
42
61
  export function importResolutionDiagnostics(graph) {
43
62
  return graph.errors.map((e) => {
44
63
  const filePath = e.fromSource ?? graph.entry.owner.source;
45
- const malformed = !isRecognizedSourceShape(e.source ?? e.url);
64
+ const code = classify(e);
46
65
  const data = { filePath };
47
66
  if (e.alias)
48
67
  data.path = `imports.${e.alias}`;
@@ -50,9 +69,9 @@ export function importResolutionDiagnostics(graph) {
50
69
  data.sourceLine = e.sourceLine;
51
70
  return {
52
71
  severity: DiagnosticSeverity.Error,
53
- code: malformed ? "INVALID_IMPORT_SOURCE" : "IMPORT_UNRESOLVED",
72
+ code,
54
73
  source: SOURCE,
55
- message: messageFor(e, malformed),
74
+ message: messageFor(e, code),
56
75
  data,
57
76
  };
58
77
  });
package/dist/index.d.ts CHANGED
@@ -25,22 +25,36 @@ export { buildReferenceFieldMap, isRefEntry, isScopeEntry } from "./reference-fi
25
25
  export type { ReferenceFieldMap, RefFieldEntry } from "./reference-field-map.js";
26
26
  export { hasDeclaredUse, isRefSlot, isRefUse, possibleUses, readRefSlot, REF_USES, refSlotAnnotation, rewriteRefSlotKinds, transfersControl, } from "./ref-slot.js";
27
27
  export type { RefSlot, RefUse, RefUseCases } from "./ref-slot.js";
28
+ export { isStepSlot, readStepSlot, STEP_FRAGMENT } from "./step-slot.js";
29
+ export type { StepSlot } from "./step-slot.js";
28
30
  export { ANNOTATION_KEYWORDS, registerTeloKeywords, valueTypeKeyword, } from "./value-type-keyword.js";
29
31
  export { applyTextEdits, isPlainSafe, quoteStyleOf, renderFixReplacement, } from "./yaml-source-edit.js";
30
32
  export type { QuoteStyle, TextEdit } from "./yaml-source-edit.js";
31
33
  export { KNOWN_HOST_AXES, evaluateRequires, readRequires } from "./requires-block.js";
32
34
  export type { HostAxis, HostVersions, ReadRequiresResult, RequiresBlock, RequiresIssue, RequiresVerdict, } from "./requires-block.js";
35
+ export { manifestCompatibility } from "./module-compatibility.js";
36
+ export type { ModuleCompatibility } from "./module-compatibility.js";
33
37
  export { TELO_SURFACE_VERSION } from "./telo-version.js";
34
38
  export { validateRequires } from "./validate-requires.js";
35
39
  export type { ValidateRequiresOptions } from "./validate-requires.js";
36
40
  export { isUnsatisfiable, lowerBound, parseVersionRange, rangeAccepts, upperBound, } from "./version-range.js";
37
41
  export type { ComparatorOperator, VersionComparator, VersionRange, VersionRangeResult, } from "./version-range.js";
38
- export { hasProvidesZone, hasRequiresZone, readProvidesZone, readRequiresZone, rewriteRequiresZoneKind, } from "./zone-slot.js";
42
+ export { hasProvidesZone, hasRequiresZone, providedZoneAttributes, readProvidesZone, readRequiresZone, readViolatesZone, rewriteRequiresZoneKind, } from "./zone-slot.js";
39
43
  export type { ProvidesZoneSlot, RequiresZoneSlot } from "./zone-slot.js";
40
44
  export { deriveLibraryExportRequirements, projectZoneRequirements, runZoneAnalysis, zoneDocumentsSignature, } from "./resolve-zone-requirements.js";
41
45
  export type { ZoneExportCache, ZoneExportCacheEntry, ZoneExportRequirements, ZoneRequirementSpec, } from "./resolve-zone-requirements.js";
42
46
  export type { ZoneModuleDocuments } from "./zone-module-documents.js";
43
47
  export { validateZoneSlotDeclarations } from "./validate-zone-slots.js";
48
+ export { RESOURCE_RULES_ANNOTATION, readResourceRules, readRawResourceRules, resolveRuleSubjects, findDynamicLeaf, type ResourceRule, type ResourceRuleSeverity, type RuleSubject, } from "./resource-rule.js";
49
+ export { validateResourceRuleDeclarations, evaluateResourceRules, ruleExercised, RESOURCE_RULE_BUDGET_MS, type ResourceRuleIssue, type ResourceRuleFinding, } from "./validate-resource-rules.js";
50
+ export { REFERRER_RULES_ANNOTATION, readReferrerRules, readRawReferrerRules, hasReferrerRules, rewriteReferrerRuleKinds, type ReferrerRule, } from "./referrer-rule.js";
51
+ export { validateReferrerRuleDeclarations, evaluateReferrerRules, referrerRuleExercised, reportReferrerRules, reportUnexercisedReferrerRule, type Referrer, type ReferrerRuleIssue, type ReferrerRuleFinding, type ReferrerRuleDiagnostic, } from "./validate-referrer-rules.js";
52
+ export { RULE_BUDGET_MS } from "./rule-condition.js";
53
+ export { readSchemaProjection, readSchemaMap, readProjectionFrom, readProjectionRef, manifestListScope, projectionKeyMap, projectEntries, resolveSchemaProjections, describeProjectionFailure, type SchemaProjection, type SchemaMap, type ProjectionRef, type ProjectionLookup, type ProjectionScope, type ProjectionFailure, } from "./schema-projection.js";
54
+ export { validateSchemaProjection, type SchemaProjectionIssue } from "./validate-schema-projection.js";
55
+ export { validateDurableRegions } from "./validate-durable-regions.js";
56
+ export { validateZoneViolations } from "./validate-zone-violations.js";
57
+ export { containmentIndex, findZoneRegions, regionManifests, type ContainedNode, type DefinitionLookup, type RegionBoundary, type ZoneRegion, } from "./resolve-zone-containment.js";
44
58
  export type { ZoneSlotIssue } from "./validate-zone-slots.js";
45
59
  export { validateDynamicSelectors, validateRefSlotDeclarations } from "./validate-ref-slots.js";
46
60
  export type { RefSlotIssue } from "./validate-ref-slots.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -13,15 +13,27 @@ export { hasIntermediateWildcard, parseRedactionPath, RedactionPathError, } from
13
13
  export { buildCallGraph, projectToPairs, resourceId } from "./call-graph.js";
14
14
  export { buildReferenceFieldMap, isRefEntry, isScopeEntry } from "./reference-field-map.js";
15
15
  export { hasDeclaredUse, isRefSlot, isRefUse, possibleUses, readRefSlot, REF_USES, refSlotAnnotation, rewriteRefSlotKinds, transfersControl, } from "./ref-slot.js";
16
+ export { isStepSlot, readStepSlot, STEP_FRAGMENT } from "./step-slot.js";
16
17
  export { ANNOTATION_KEYWORDS, registerTeloKeywords, valueTypeKeyword, } from "./value-type-keyword.js";
17
18
  export { applyTextEdits, isPlainSafe, quoteStyleOf, renderFixReplacement, } from "./yaml-source-edit.js";
18
19
  export { KNOWN_HOST_AXES, evaluateRequires, readRequires } from "./requires-block.js";
20
+ export { manifestCompatibility } from "./module-compatibility.js";
19
21
  export { TELO_SURFACE_VERSION } from "./telo-version.js";
20
22
  export { validateRequires } from "./validate-requires.js";
21
23
  export { isUnsatisfiable, lowerBound, parseVersionRange, rangeAccepts, upperBound, } from "./version-range.js";
22
- export { hasProvidesZone, hasRequiresZone, readProvidesZone, readRequiresZone, rewriteRequiresZoneKind, } from "./zone-slot.js";
24
+ export { hasProvidesZone, hasRequiresZone, providedZoneAttributes, readProvidesZone, readRequiresZone, readViolatesZone, rewriteRequiresZoneKind, } from "./zone-slot.js";
23
25
  export { deriveLibraryExportRequirements, projectZoneRequirements, runZoneAnalysis, zoneDocumentsSignature, } from "./resolve-zone-requirements.js";
24
26
  export { validateZoneSlotDeclarations } from "./validate-zone-slots.js";
27
+ export { RESOURCE_RULES_ANNOTATION, readResourceRules, readRawResourceRules, resolveRuleSubjects, findDynamicLeaf, } from "./resource-rule.js";
28
+ export { validateResourceRuleDeclarations, evaluateResourceRules, ruleExercised, RESOURCE_RULE_BUDGET_MS, } from "./validate-resource-rules.js";
29
+ export { REFERRER_RULES_ANNOTATION, readReferrerRules, readRawReferrerRules, hasReferrerRules, rewriteReferrerRuleKinds, } from "./referrer-rule.js";
30
+ export { validateReferrerRuleDeclarations, evaluateReferrerRules, referrerRuleExercised, reportReferrerRules, reportUnexercisedReferrerRule, } from "./validate-referrer-rules.js";
31
+ export { RULE_BUDGET_MS } from "./rule-condition.js";
32
+ export { readSchemaProjection, readSchemaMap, readProjectionFrom, readProjectionRef, manifestListScope, projectionKeyMap, projectEntries, resolveSchemaProjections, describeProjectionFailure, } from "./schema-projection.js";
33
+ export { validateSchemaProjection } from "./validate-schema-projection.js";
34
+ export { validateDurableRegions } from "./validate-durable-regions.js";
35
+ export { validateZoneViolations } from "./validate-zone-violations.js";
36
+ export { containmentIndex, findZoneRegions, regionManifests, } from "./resolve-zone-containment.js";
25
37
  export { validateDynamicSelectors, validateRefSlotDeclarations } from "./validate-ref-slots.js";
26
38
  export { validateValueTypeSlots } from "./validate-value-type-slots.js";
27
39
  export { checkSchemaCompatibility, selectUnionBranch } from "./schema-compat.js";
@@ -1,5 +1,6 @@
1
1
  import { type ResourceDefinition } from "@telorun/sdk";
2
2
  import { type ContractDirection, type DefResolver } from "./extends-resolution.js";
3
+ import { type ProjectionFailure } from "./schema-projection.js";
3
4
  export type { ContractDirection };
4
5
  /**
5
6
  * The one answer to "what is this target's input / output schema".
@@ -59,7 +60,11 @@ export declare const PERMISSIVE_CONTRACT: Record<string, any>;
59
60
  * "declared nothing" from "declared anything", which the wiring rule and the
60
61
  * `run()` guard both need.
61
62
  */
62
- export declare function resolveContract(direction: ContractDirection, manifest: Record<string, any> | undefined, definition: ResourceDefinition | undefined, scope: ContractScope): ResolvedContract | undefined;
63
+ export declare function resolveContract(direction: ContractDirection, manifest: Record<string, any> | undefined, definition: ResourceDefinition | undefined, scope: ContractScope,
64
+ /** Collects declaration-derived slots that could not be projected. Omitted by
65
+ * every caller that only wants the schema; the one pass that REPORTS them
66
+ * passes an array. */
67
+ projectionFailures?: ProjectionFailure[]): ResolvedContract | undefined;
63
68
  /** {@link resolveContract}, falling back to {@link PERMISSIVE_CONTRACT}. For
64
69
  * callers that need a schema unconditionally (CEL context typing), as opposed
65
70
  * to needing to know whether one was declared. */
@@ -1 +1 @@
1
- {"version":3,"file":"invocation-contract.d.ts","sourceRoot":"","sources":["../src/invocation-contract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,kBAAkB,EAAe,MAAM,cAAc,CAAC;AAChF,OAAO,EACL,KAAK,iBAAiB,EAEtB,KAAK,WAAW,EAEjB,MAAM,yBAAyB,CAAC;AAGjC,YAAY,EAAE,iBAAiB,EAAE,CAAC;AAElC;;;;;;;;;;;;GAYG;AAEH;;oCAEoC;AACpC,MAAM,MAAM,cAAc,GAAG,UAAU,GAAG,MAAM,CAAC;AAEjD,MAAM,WAAW,gBAAgB;IAC/B,oDAAoD;IACpD,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC5B,MAAM,EAAE,cAAc,CAAC;IACvB;gFAC4E;IAC5E,UAAU,CAAC,EAAE,kBAAkB,CAAC;CACjC;AAED,MAAM,WAAW,aAAa;IAC5B;;kEAE8D;IAC9D,iBAAiB,EAAE,WAAW,CAAC;IAC/B;;;;;;;;;OASG;IACH,gBAAgB,CAAC,GAAG,EAAE,kBAAkB,GAAG,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC;CAC9E;AAED;;uCAEuC;AACvC,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAGnD,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAC7B,SAAS,EAAE,iBAAiB,EAC5B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,SAAS,EACzC,UAAU,EAAE,kBAAkB,GAAG,SAAS,EAC1C,KAAK,EAAE,aAAa,GACnB,gBAAgB,GAAG,SAAS,CAa9B;AAED;;mDAEmD;AACnD,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,iBAAiB,EAC5B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,SAAS,EACzC,UAAU,EAAE,kBAAkB,GAAG,SAAS,EAC1C,KAAK,EAAE,aAAa,GACnB,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAErB;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;AAC3B;;;;6CAI6C;AAC7C,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,SAAS,GAC5D,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAErB;AAoFD;;;;;gEAKgE;AAChE,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;AAC3B;;iFAEiF;AACjF,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,SAAS,GAC5D,MAAM,EAAE,EAAE,CA+BZ;AAED;;;;;;kCAMkC;AAClC,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEpD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC;CACnC;AAED;;;;;;;;;;;;;;;;;;;;;;;+DAuB+D;AAC/D,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC3B,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,SAAS,GAC5D,kBAAkB,EAAE,CAoCtB"}
1
+ {"version":3,"file":"invocation-contract.d.ts","sourceRoot":"","sources":["../src/invocation-contract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,kBAAkB,EAAe,MAAM,cAAc,CAAC;AAChF,OAAO,EACL,KAAK,iBAAiB,EAEtB,KAAK,WAAW,EAEjB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAGL,KAAK,iBAAiB,EACvB,MAAM,wBAAwB,CAAC;AAEhC,YAAY,EAAE,iBAAiB,EAAE,CAAC;AAElC;;;;;;;;;;;;GAYG;AAEH;;oCAEoC;AACpC,MAAM,MAAM,cAAc,GAAG,UAAU,GAAG,MAAM,CAAC;AAEjD,MAAM,WAAW,gBAAgB;IAC/B,oDAAoD;IACpD,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC5B,MAAM,EAAE,cAAc,CAAC;IACvB;gFAC4E;IAC5E,UAAU,CAAC,EAAE,kBAAkB,CAAC;CACjC;AAED,MAAM,WAAW,aAAa;IAC5B;;kEAE8D;IAC9D,iBAAiB,EAAE,WAAW,CAAC;IAC/B;;;;;;;;;OASG;IACH,gBAAgB,CAAC,GAAG,EAAE,kBAAkB,GAAG,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC;CAC9E;AAED;;uCAEuC;AACvC,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAGnD,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAC7B,SAAS,EAAE,iBAAiB,EAC5B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,SAAS,EACzC,UAAU,EAAE,kBAAkB,GAAG,SAAS,EAC1C,KAAK,EAAE,aAAa;AACpB;;uBAEuB;AACvB,kBAAkB,CAAC,EAAE,iBAAiB,EAAE,GACvC,gBAAgB,GAAG,SAAS,CAsB9B;AA2BD;;mDAEmD;AACnD,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,iBAAiB,EAC5B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,SAAS,EACzC,UAAU,EAAE,kBAAkB,GAAG,SAAS,EAC1C,KAAK,EAAE,aAAa,GACnB,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAErB;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;AAC3B;;;;6CAI6C;AAC7C,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,SAAS,GAC5D,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAErB;AAoFD;;;;;gEAKgE;AAChE,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;AAC3B;;iFAEiF;AACjF,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,SAAS,GAC5D,MAAM,EAAE,EAAE,CA+BZ;AAED;;;;;;kCAMkC;AAClC,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEpD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC;CACnC;AAED;;;;;;;;;;;;;;;;;;;;;;;+DAuB+D;AAC/D,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC3B,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,SAAS,GAC5D,kBAAkB,EAAE,CAoCtB"}
@@ -1,6 +1,7 @@
1
1
  import { isLiveSlot, valueTypeOf } from "@telorun/sdk";
2
2
  import { contractDeclarer, effectiveContractField, } from "./extends-resolution.js";
3
3
  import { resolveTypeFieldToSchema } from "./validate-cel-context.js";
4
+ import { manifestListScope, resolveSchemaProjections, } from "./schema-projection.js";
4
5
  /** The fallback for a target that declares no contract: anything goes. Not
5
6
  * `additionalProperties: false` — an undeclared contract is an absence of a
6
7
  * claim, not a claim of emptiness. */
@@ -20,12 +21,20 @@ export const PERMISSIVE_CONTRACT = {
20
21
  * "declared nothing" from "declared anything", which the wiring rule and the
21
22
  * `run()` guard both need.
22
23
  */
23
- export function resolveContract(direction, manifest, definition, scope) {
24
+ export function resolveContract(direction, manifest, definition, scope,
25
+ /** Collects declaration-derived slots that could not be projected. Omitted by
26
+ * every caller that only wants the schema; the one pass that REPORTS them
27
+ * passes an array. */
28
+ projectionFailures) {
24
29
  const own = manifest?.[direction];
25
30
  if (own !== undefined && own !== null) {
26
31
  const schema = resolveTypeFieldToSchema(own, scope.typeManifestsFor(definition));
27
- if (schema)
28
- return { schema, origin: "instance" };
32
+ if (schema) {
33
+ return {
34
+ schema: projectionResolved(schema, manifest, scope, definition, projectionFailures),
35
+ origin: "instance",
36
+ };
37
+ }
29
38
  }
30
39
  const declared = effectiveContractField(definition, scope.resolveDefinition, direction);
31
40
  if (declared === undefined || declared === null)
@@ -34,7 +43,21 @@ export function resolveContract(direction, manifest, definition, scope) {
34
43
  const schema = resolveTypeFieldToSchema(declared, scope.typeManifestsFor(declarer));
35
44
  if (!schema)
36
45
  return undefined;
37
- return { schema, origin: "kind", declaredBy: declarer };
46
+ return {
47
+ schema: projectionResolved(schema, manifest, scope, declarer, projectionFailures),
48
+ origin: "kind",
49
+ declaredBy: declarer,
50
+ };
51
+ }
52
+ /**
53
+ * A contract may be DECLARATION-derived: a kind whose `outputType` projects the
54
+ * declaration of a resource it references (a repository typing its rows from
55
+ * the table it reads). The manifest is in hand here and nowhere later, so this
56
+ * is where the projection is resolved — and it is resolved for a kind-declared
57
+ * contract and an instance-declared one alike, since either may carry one.
58
+ */
59
+ function projectionResolved(schema, manifest, scope, declarer, failures) {
60
+ return resolveSchemaProjections(schema, manifest, manifestListScope(scope.typeManifestsFor(declarer), (kind) => scope.resolveDefinition(kind)), failures);
38
61
  }
39
62
  /** {@link resolveContract}, falling back to {@link PERMISSIVE_CONTRACT}. For
40
63
  * callers that need a schema unconditionally (CEL context typing), as opposed
@@ -66,9 +66,11 @@ export interface ImportEdge {
66
66
  * this (minus its version), since it names the module's location
67
67
  * independently of what the module declares about itself. */
68
68
  targetRef: string;
69
- /** Target library's `metadata.name`, or `null` when the target had no
70
- * Telo.Library doc (an error case captured in `LoadedGraph.errors`). */
71
- targetModuleName: string | null;
69
+ /** Target library's `metadata.name`. Never absent: an import whose target
70
+ * names no library identity registers no edge at all and is reported in
71
+ * `LoadedGraph.errors`, so an edge that exists is one every consumer can
72
+ * resolve a kind through. */
73
+ targetModuleName: string;
72
74
  /** DEPRECATED. Target library's `metadata.namespace`, or `null` when it
73
75
  * declares none. Feeds only the legacy `<namespace>/<module>#<Kind>` form
74
76
  * of `x-telo-ref`; nothing else reads it. */
@@ -131,6 +133,13 @@ export interface GraphLoadError {
131
133
  alias?: string;
132
134
  /** Line of the `Telo.Import` doc in `fromSource`, for position fallback. */
133
135
  sourceLine?: number;
136
+ /** Why this import is unusable. `"unresolved"` (the default) means the target
137
+ * was never obtained — an unreachable or unrecognizable source, which the
138
+ * author fixes in their own file. `"unusable-target"` means it WAS obtained
139
+ * and is not an importable library, which is a defect in the target module.
140
+ * Kept apart because the two call for different actions; consumers phrase
141
+ * them differently rather than asserting one cause for both. */
142
+ reason?: "unresolved" | "unusable-target";
134
143
  error: Error;
135
144
  }
136
145
  //# sourceMappingURL=loaded-types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"loaded-types.d.ts","sourceRoot":"","sources":["../src/loaded-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,kBAAkB,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEjD;;;;4EAI4E;AAC5E,MAAM,WAAW,UAAU;IACzB;+DAC2D;IAC3D,MAAM,EAAE,MAAM,CAAC;IACf;gEAC4D;IAC5D,YAAY,EAAE,MAAM,CAAC;IACrB,gDAAgD;IAChD,IAAI,EAAE,MAAM,CAAC;IACb;;+EAE2E;IAC3E,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB;+EAC2E;IAC3E,YAAY,EAAE,WAAW,EAAE,CAAC;IAC5B,6EAA6E;IAC7E,SAAS,EAAE,KAAK,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC;IAC1C,0EAA0E;IAC1E,SAAS,EAAE,gBAAgB,EAAE,CAAC;IAC9B,0EAA0E;IAC1E,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B;;;;2DAIuD;IACvD,UAAU,EAAE,cAAc,CAAC;CAC5B;AAED,MAAM,WAAW,UAAU;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,wEAAwE;IACxE,KAAK,CAAC,EAAE,KAAK,CAAC;CACf;AAED;mCACmC;AACnC,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,UAAU,CAAC;IAClB;oEACgE;IAChE,QAAQ,EAAE,UAAU,EAAE,CAAC;CACxB;AAED;;;;;sCAKsC;AACtC,MAAM,WAAW,UAAU;IACzB,mEAAmE;IACnE,YAAY,EAAE,MAAM,CAAC;IACrB;;;kEAG8D;IAC9D,SAAS,EAAE,MAAM,CAAC;IAClB;6EACyE;IACzE,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC;;kDAE8C;IAC9C,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC;AAED;0BAC0B;AAC1B,MAAM,WAAW,WAAW;IAC1B,4DAA4D;IAC5D,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,YAAY,CAAC;IACpB;;wBAEoB;IACpB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACnC;;;;2BAIuB;IACvB,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;IAClD;;;iFAG6E;IAC7E,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B;;;;sDAIkD;IAClD,oBAAoB,EAAE,kBAAkB,EAAE,CAAC;IAC3C;;;iDAG6C;IAC7C,kBAAkB,EAAE,kBAAkB,EAAE,CAAC;IACzC;;;8EAG0E;IAC1E,gBAAgB,EAAE,kBAAkB,EAAE,CAAC;IACvC;yCACqC;IACrC,MAAM,EAAE,cAAc,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,cAAc;IAC7B;8BAC0B;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ;;qEAEiE;IACjE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,2EAA2E;IAC3E,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B;;gFAE4E;IAC5E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4EAA4E;IAC5E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,KAAK,CAAC;CACd"}
1
+ {"version":3,"file":"loaded-types.d.ts","sourceRoot":"","sources":["../src/loaded-types.ts"],"names":[],"mappings":"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"}
@@ -83,7 +83,6 @@ export declare class Loader {
83
83
  resolveImportUrl(fromSource: string, importSource: string): string;
84
84
  private assertSingleModuleDeclaration;
85
85
  private assertNoSystemKindsInPartialContext;
86
- private assertImportTargetIsLibrary;
87
86
  private resolveIncludes;
88
87
  /** Find the owning telo.yaml for `fileUrl` (or use it directly if it's an
89
88
  * owner) and return the `LoadedGraph` rooted at that owner. Returns
@@ -1 +1 @@
1
- {"version":3,"file":"manifest-loader.d.ts","sourceRoot":"","sources":["../src/manifest-loader.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAGV,UAAU,EACV,WAAW,EACX,YAAY,EACb,MAAM,mBAAmB,CAAC;AAM3B,OAAO,EAIL,KAAK,WAAW,EAChB,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACpB,MAAM,YAAY,CAAC;AA2DpB,qBAAa,MAAM;IACjB;;;yEAGqE;IACrE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAiC;IAE3D;;;;;8BAK0B;IAC1B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA6B;IAEzD,SAAS,CAAC,OAAO,EAAE,cAAc,EAAE,CAAC;IACpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAc;IACrC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAA4B;IAExD;;;;mBAIe;gBACH,OAAO,GAAE,cAAc,EAAO,EAAE,OAAO,GAAE,iBAAsB;IAM3E,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI;IAKtC,OAAO,CAAC,IAAI;IAMN,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAUrD;;;;2CAIuC;IACvC,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAI7C;;;;;;;;;gFAS4E;IAC5E,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAYzB;;;+BAG2B;IACrB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;IAyCvE;;;;;;;;;;6CAUyC;IACzC,OAAO,CAAC,oBAAoB;IAe5B;gFAC4E;IAC5E,OAAO,CAAC,cAAc;IAQtB;;wEAEoE;IAC9D,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;IAsB3E;;;qCAGiC;IAC3B,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IAkI9E;;;;;;;;sBAQkB;IAClB,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM;IAOlE,OAAO,CAAC,6BAA6B;IAarC,OAAO,CAAC,mCAAmC;IAc3C,OAAO,CAAC,2BAA2B;YAkCrB,eAAe;IAmB7B;;;0CAGsC;IAChC,gBAAgB,CACpB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC;QAAE,KAAK,EAAE,WAAW,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;CA0B5D"}
1
+ {"version":3,"file":"manifest-loader.d.ts","sourceRoot":"","sources":["../src/manifest-loader.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAGV,UAAU,EACV,WAAW,EACX,YAAY,EACb,MAAM,mBAAmB,CAAC;AAM3B,OAAO,EAIL,KAAK,WAAW,EAChB,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACpB,MAAM,YAAY,CAAC;AAmHpB,qBAAa,MAAM;IACjB;;;yEAGqE;IACrE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAiC;IAE3D;;;;;8BAK0B;IAC1B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA6B;IAEzD,SAAS,CAAC,OAAO,EAAE,cAAc,EAAE,CAAC;IACpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAc;IACrC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAA4B;IAExD;;;;mBAIe;gBACH,OAAO,GAAE,cAAc,EAAO,EAAE,OAAO,GAAE,iBAAsB;IAM3E,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI;IAKtC,OAAO,CAAC,IAAI;IAMN,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAUrD;;;;2CAIuC;IACvC,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAI7C;;;;;;;;;gFAS4E;IAC5E,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAYzB;;;+BAG2B;IACrB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;IAyCvE;;;;;;;;;;6CAUyC;IACzC,OAAO,CAAC,oBAAoB;IAe5B;gFAC4E;IAC5E,OAAO,CAAC,cAAc;IAQtB;;wEAEoE;IAC9D,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;IAsB3E;;;qCAGiC;IAC3B,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IA4I9E;;;;;;;;sBAQkB;IAClB,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM;IAOlE,OAAO,CAAC,6BAA6B;IAarC,OAAO,CAAC,mCAAmC;YAc7B,eAAe;IAmB7B;;;0CAGsC;IAChC,gBAAgB,CACpB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC;QAAE,KAAK,EAAE,WAAW,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;CA0B5D"}
@@ -35,6 +35,40 @@ function collectMigrationDiagnostics(entry) {
35
35
  }
36
36
  return diagnostics;
37
37
  }
38
+ function importTargetIdentity(target, importSource) {
39
+ const library = target.owner.manifests.find((m) => m?.kind === "Telo.Library");
40
+ const application = target.owner.manifests.find((m) => m?.kind === "Telo.Application");
41
+ if (!library && application) {
42
+ return {
43
+ unusable: `Telo.Import target '${importSource}' is a Telo.Application. ` +
44
+ `Only Telo.Library modules may be imported. Applications are run directly, not imported. ` +
45
+ `Point this import at a library, or drop it and run that application on its own.`,
46
+ };
47
+ }
48
+ if (!library) {
49
+ const kinds = target.owner.manifests
50
+ .map((m) => m?.kind)
51
+ .filter((k) => typeof k === "string");
52
+ const detail = kinds.length
53
+ ? `Fetched ${target.owner.manifests.length} document(s) with kinds [${kinds.join(", ")}].`
54
+ : `Fetched manifest contained no recognizable Telo documents — check that the source ` +
55
+ `serves a Telo.Library manifest and not an upstream error page.`;
56
+ return {
57
+ unusable: `Telo.Import target '${importSource}' did not resolve to a Telo.Library. ` +
58
+ `Fetched from: ${target.owner.source}. ${detail}`,
59
+ };
60
+ }
61
+ const name = library.metadata?.name;
62
+ if (typeof name !== "string" || name === "") {
63
+ return {
64
+ unusable: `Telo.Import target '${importSource}' resolved to a Telo.Library that declares no ` +
65
+ `'metadata.name'. Fetched from: ${target.owner.source}. A library's name is the kind ` +
66
+ `prefix its importers reference, so it cannot be imported until the target declares one.`,
67
+ };
68
+ }
69
+ const namespace = library.metadata?.namespace;
70
+ return { name, namespace: typeof namespace === "string" ? namespace : null };
71
+ }
38
72
  const SYSTEM_KINDS = new Set([
39
73
  "Telo.Application",
40
74
  "Telo.Library",
@@ -303,30 +337,40 @@ export class Loader {
303
337
  continue;
304
338
  }
305
339
  }
306
- // Resolve target identity from its Telo.Library doc and stamp it
307
- // on the edge — flattenForAnalyzer reads from the edge directly,
308
- // never re-deriving from manifest.metadata.
309
- let targetModuleName = null;
310
- let targetNamespace = null;
311
- if (targetModule) {
312
- const lib = targetModule.owner.manifests.find((d) => d?.kind === "Telo.Library");
313
- const libName = lib?.metadata?.name;
314
- if (typeof libName === "string")
315
- targetModuleName = libName;
316
- const libNs = lib?.metadata
317
- ?.namespace;
318
- if (typeof libNs === "string")
319
- targetNamespace = libNs;
340
+ // Resolve target identity from its Telo.Library doc and stamp it on
341
+ // the edge — flattenForAnalyzer reads from the edge directly, never
342
+ // re-deriving from manifest.metadata.
343
+ //
344
+ // Checked per IMPORT rather than per distinct target: an import
345
+ // pointing at a module something else already reached (the entry
346
+ // application above all) would otherwise skip the check entirely and
347
+ // register a nameless edge. An unusable target is recorded exactly
348
+ // like an unfetchable one — an error against this import, no edge,
349
+ // and the rest of the graph still loads — so no consumer has to know
350
+ // the difference between the two ways an import can fail.
351
+ const identity = importTargetIdentity(targetModule, importSource);
352
+ if ("unusable" in identity) {
353
+ const e = new Error(identity.unusable);
354
+ e.sourceLine = sourceLine;
355
+ errors.push({
356
+ url: targetCanonical,
357
+ source: importSource,
358
+ fromSource: file.source,
359
+ alias,
360
+ sourceLine,
361
+ reason: "unusable-target",
362
+ error: e,
363
+ });
364
+ continue;
320
365
  }
321
366
  aliases.set(alias, {
322
367
  targetSource: targetCanonical,
323
368
  targetRef: importSource,
324
- targetModuleName,
325
- targetNamespace,
369
+ targetModuleName: identity.name,
370
+ targetNamespace: identity.namespace,
326
371
  });
327
- if (targetModule && !visited.has(targetCanonical)) {
372
+ if (!visited.has(targetCanonical)) {
328
373
  visited.add(targetCanonical);
329
- this.assertImportTargetIsLibrary(targetModule, importSource, sourceLine);
330
374
  queue.push(targetModule);
331
375
  }
332
376
  }
@@ -386,29 +430,6 @@ export class Loader {
386
430
  }
387
431
  }
388
432
  }
389
- assertImportTargetIsLibrary(target, importSource, sourceLine) {
390
- const importedLibrary = target.owner.manifests.find((m) => m?.kind === "Telo.Library");
391
- const importedApplication = target.owner.manifests.find((m) => m?.kind === "Telo.Application");
392
- if (importedApplication) {
393
- const e = new Error(`Telo.Import target '${importSource}' is a Telo.Application. ` +
394
- `Only Telo.Library modules may be imported. Applications are run directly, not imported.`);
395
- e.sourceLine = sourceLine;
396
- throw e;
397
- }
398
- if (!importedLibrary) {
399
- const kinds = target.owner.manifests
400
- .map((m) => m?.kind)
401
- .filter((k) => typeof k === "string");
402
- const detail = kinds.length
403
- ? `Fetched ${target.owner.manifests.length} document(s) with kinds [${kinds.join(", ")}].`
404
- : `Fetched manifest contained no recognizable Telo documents — check that the source ` +
405
- `serves a Telo.Library manifest and not an upstream error page.`;
406
- const e = new Error(`Telo.Import target '${importSource}' did not resolve to a Telo.Library. ` +
407
- `Fetched from: ${target.owner.source}. ${detail}`);
408
- e.sourceLine = sourceLine;
409
- throw e;
410
- }
411
- }
412
433
  async resolveIncludes(ownerSource, patterns, source) {
413
434
  const hasGlobs = patterns.some((p) => /[*?{}\[\]]/.test(p));
414
435
  if (hasGlobs) {