Design Node Manifest

A Design Node is an independently executable unit of computation.

Its manifest describes the Signal contract and runtime expectations.

{
  "id": "DN_validate_login",
  "label": "Validate Login",
  "runtime": {
    "kind": "javascript",
    "entrypoint": "validateLogin.execute"
  },
  "absorbs": [
    {
      "intentionId": "I_validate_login",
      "requiredPulses": ["username", "password entered"]
    }
  ],
  "emits": [
    {
      "intentionId": "I_reflect_login_result",
      "pulsePhrases": ["credentials valid", "login message"]
    }
  ]
}

Required Fields

id

Stable identifier for the Design Node:

"id": "DN_validate_login"

runtime

How the DN is executed:

"runtime": {
  "kind": "javascript",
  "entrypoint": "validateLogin.execute"
}

absorbs

Signals the DN can receive.

emits

Signals the DN is expected to emit.


Runtime Kinds

The runtime kind should stay open:

javascript
kotlin
swift
dart
go
rust
python
wasm
http
ai-model
native

CPUX should not be bound to one implementation language.


Signal Contract

The important part is the Signal contract:

"absorbs": [
  {
    "intentionId": "I_validate_login",
    "requiredPulses": ["username", "password entered"]
  }
]

This tells the CPUX runtime and developers when the DN is meaningful to invoke.


Sample Anchor: Move If Allowed

The Green Light sample can be described without exposing the proprietary CPUX engine internals:

{
  "id": "DN_move_if_allowed",
  "label": "Move If Allowed",
  "runtime": {
    "kind": "javascript",
    "entrypoint": "moveIfAllowed.execute"
  },
  "absorbs": [
    {
      "intentionId": "I_move_if_allowed",
      "requiredPulses": ["current light", "current position"]
    }
  ],
  "emits": [
    {
      "intentionId": "I_movement_result",
      "pulsePhrases": [
        "movement allowed",
        "current position",
        "continue movement"
      ]
    }
  ]
}

The absorbs section supports synctest against the current Field.

The emits section supports O_reflector validation of the emitted Signal before the Field absorbs it.

The DN code can stay ordinary platform code. CPUX gives that code a represented input contract, a represented output contract, and a stable place in the visitor cycle.


Developer Rule

Keep the DN manifest focused on execution and Signal contract.

Do not hide business rules in the manifest if they belong inside the DN's explicit computation.