# portableGraphNode

A portable graph node record carrying name, kind, kernelName, inputs, outputs, and related state.

Last updated: 2026-09-09

Package: compute.graph | Status: source-declared

Tags: compute, compute.graph, cpu, graph, method, source-example, thing, yeho

Describe compute work as an explicit graph with package-owned validation and scheduling metadata.

```yh
external thing portableGraphNode
```

- text name: Stores name as text.
- text kind: Stores kind as text.
- text kernelName: Stores kernel name as text.
- list of text inputs: Stores inputs as list of text.
- list of text outputs: Stores outputs as list of text.
- list of text mutations: Stores mutations as list of text.
- list of text dependencies: Stores dependencies as list of text.
- text effect: Stores effect as text.
- text requestedDevice: Stores requested device as text.
- bool fallbackAllowed: Stores fallback allowed as bool.
- bool cacheable: Stores cacheable as bool.
- text fusionGroup: Stores fusion group as text.
- text specializationKey: Stores specialization key as text.
- portableGraphNode(text name, text kind, text kernelName, list of text inputs, list of text outputs, list of text mutations, list of text dependencies, text effect, text requestedDevice, bool fallbackAllowed, bool cacheable, text fusionGroup, text specializationKey): Portable graph node.
- Describe() returns text: Describe.

## Use portableGraphNode

A complete small caller. Values are illustrative; check the returned result and package requirements before connecting live resources.

Verification: type checked

```yh
using compute.graph

// Describe compute work as an explicit graph with package-owned validation and scheduling metadata.
portableGraphNode sample = portableGraphNode("Nova", "kind", "kernel Name", [], [], [], [], "effect", "requested Device", true, true, "fusion Group", "specialization Key")
Console.Log(Text.From(sample.name))

```

Save this beside start.yh as project.mech:

```toml
manifestVersion = "2"
package = "api.example.compute_graph__portablegraphnode"
version = "0.1.0"
languageEdition = "yeho-core-2026.1"

[app]
kind = "headless"

[[dependencies]]
package = "compute.buffer"
version = "0.1.0"
path = "../../../yeho/packages/compute/buffer"

[[dependencies]]
package = "compute.device"
version = "0.1.0"
path = "../../../yeho/packages/compute/device"

[[dependencies]]
package = "compute.graph"
version = "0.1.0"
path = "../../../yeho/packages/compute/graph"

[[dependencies]]
package = "compute.kernels"
version = "0.1.0"
path = "../../../yeho/packages/compute/kernels"

[[dependencies]]
package = "compute.tensor"
version = "0.1.0"
path = "../../../yeho/packages/compute/tensor"

[[dependencies]]
package = "console"
version = "0.1.0"
path = "../../../yeho/packages/console"

[[dependencies]]
package = "diagnostics"
version = "0.1.0"
path = "../../../yeho/packages/diagnostics"

```

Extract the example archive beside the yeho and dolphin checkouts. This example requires those source dependencies and a current developer compiler.

```sh
./yeho/build/dolphin-metal/yehoc ./api-examples/compute.graph--portableGraphNode/usage --backend cpu-oracle -o /tmp/yeho-example
/tmp/yeho-example
```


## portableGraphNode.Describe

A complete caller for this public method. Sample inputs are illustrative; native resources require their owning lifecycle.

Verification: type checked

```yh
using compute.graph

// Describe.
portableGraphNode instance = portableGraphNode("Nova", "kind", "kernel Name", [], [], [], [], "effect", "requested Device", true, true, "fusion Group", "specialization Key")
text result = instance.Describe()
Console.Log(Text.From(result))

```

Save this beside start.yh as project.mech:

```toml
manifestVersion = "2"
package = "api.example.compute_graph__portablegraphnode"
version = "0.1.0"
languageEdition = "yeho-core-2026.1"

[app]
kind = "headless"

[[dependencies]]
package = "compute.buffer"
version = "0.1.0"
path = "../../../yeho/packages/compute/buffer"

[[dependencies]]
package = "compute.device"
version = "0.1.0"
path = "../../../yeho/packages/compute/device"

[[dependencies]]
package = "compute.graph"
version = "0.1.0"
path = "../../../yeho/packages/compute/graph"

[[dependencies]]
package = "compute.kernels"
version = "0.1.0"
path = "../../../yeho/packages/compute/kernels"

[[dependencies]]
package = "compute.tensor"
version = "0.1.0"
path = "../../../yeho/packages/compute/tensor"

[[dependencies]]
package = "console"
version = "0.1.0"
path = "../../../yeho/packages/console"

[[dependencies]]
package = "diagnostics"
version = "0.1.0"
path = "../../../yeho/packages/diagnostics"

```

Extract the example archive beside the yeho and dolphin checkouts. This example requires those source dependencies and a current developer compiler.

```sh
./yeho/build/dolphin-metal/yehoc ./api-examples/compute.graph--portableGraphNode/method-Describe-14 --backend cpu-oracle -o /tmp/yeho-example
/tmp/yeho-example
```


Package presence and a declaration do not establish support on every host. Host services need their platform and lifecycle setup.

Source: yeho/packages/compute/graph/portable_contract.yh

AI training permission: https://demonhunterlabs.com/ai-use
