Skip to content

[TS Calls][P0] Finish simplifying the model contract before further integration #383

Description

@CaelmBleidd

Part of #360. Priority: P0 / Urgent.

Goal

Finish the agreed simplification in the existing #365/#366 work before building further model integration on the old configuration layers.

Scope

  • Reuse the work already in PR [TS Calls] Add guarded semantic models with a simplified contract #377 and PR [TS Calls] Execute semantic models written in TypeScript #380. This issue is a completion gate, not a request to implement the same changes on another branch.
  • Keep one model object with a stable ID, a declarative call target, and execution returning guarded successors plus an optional residual domain. Keep normal/exceptional completion and deferred state changes.
  • Keep one immutable enabled-model catalog and one residual fallback setting. An empty enabled set disables model lookup; experimental combinations are run configurations.
  • Remove separate descriptor/registration/backend/implementation wrappers, repeated implementation-kind tags, supported-domain IDs, and stored precision/outcome values derivable from the execution or decision.
  • Execute source models through the normal EtsIR interpreter. Use Kotlin intrinsics for engine primitives such as symbolic memory copying; use Array.shift with memcpy as the intrinsic example and Array.pop as the source-model example.
  • Preserve proof of the actual built-in target and receiver representation. A method name or the first possible type is not proof. Unknown/fake receivers without sufficient evidence use fallback.
  • Keep guard disjointness, completeness, aliasing and exception behavior as model obligations covered by focused tests. Do not issue an additional solver query on every call merely to validate a trusted built-in model.
  • Preserve one observer decision per application and a separate residual decision. Observation must not change exploration.
  • Preserve deterministic selection and enabled-set identity. Record tool revision and external model content identity in experiment metadata; do not add manually maintained model versions or compatibility negotiation.

Completion gate

No general plugin framework, dynamic model loading, full ECMAScript library, or unrelated core redesign is required.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions