@darkhorseprojects/circuitry 0.4.3 → 0.4.5

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
@@ -37,7 +37,7 @@ resources:
37
37
  inputs: [system, turn]
38
38
  tools: []
39
39
  instructions: Answer the user.
40
- expect:
40
+ output:
41
41
  response: str
42
42
 
43
43
  outputs:
@@ -49,12 +49,13 @@ outputs:
49
49
 
50
50
  A Circuitry file separates the graph boundary from the graph body.
51
51
 
52
- - `inputs` declare values supplied by a caller.
52
+ - `inputs` are graph invocation inputs/arguments.
53
53
  - `resources` define the internal graph.
54
- - `resource.inputs` wire resources together.
55
- - `outputs` expose final or important results back to the caller.
54
+ - `resources.*.inputs` are resource dependencies.
55
+ - `resources.*.output` is the resource output schema/contract.
56
+ - top-level `outputs` are named graph-level exported outputs.
56
57
 
57
- Prompts are inputs. Tools are runtime functions. Graphs are executable topology. Resources are the graph.
58
+ Prompts are inputs/text resources. Tools are runtime functions explicitly declared by a graph resource. Graphs are executable topology. Resources are the graph.
58
59
 
59
60
  A model can consume the graph. A human can review it. A runtime can execute it. Another graph can import it. An agent can write a new one.
60
61
 
@@ -119,17 +120,75 @@ resources:
119
120
  type: input
120
121
  from: user_turn
121
122
 
123
+ assistant:
124
+ type: agent
125
+ inputs: [turn]
126
+ output:
127
+ answer: str
128
+
122
129
  outputs:
123
- response:
124
- from: assistant.response
130
+ final:
131
+ from: assistant.answer
125
132
  ```
126
133
 
127
134
  `resources.turn.from` binds the external input `user_turn` into the internal resource graph.
128
135
 
129
- `outputs.response.from` exposes `assistant.response` as the graph result named `response`.
136
+ `assistant.output` declares the expected schema of the assistant resource's materialized value.
137
+
138
+ `outputs.final.from` exports `assistant.answer` as the graph result named `final`.
139
+
140
+ In `from: assistant.answer`, `assistant` is the resource id and `answer` selects a field/path inside that materialized resource value. Without a dot, the whole materialized resource value is referenced.
141
+
142
+ Internal graph wiring uses `resource.inputs`, not top-level `outputs`. `output` is schema-only and does not define graph exports.
143
+
144
+ ## Imports
145
+
146
+ Import renaming is assignment-style.
147
+
148
+ ```yaml
149
+ imports:
150
+ - path: ./shared.circuitry.yaml
151
+ resources:
152
+ system: base_system
153
+ ```
154
+
155
+ ```txt
156
+ system = imported.base_system
157
+ ```
158
+
159
+ This imports `base_system` from the imported graph and binds it locally as `system`. The current graph should reference `system`.
160
+
161
+ ## Entries
162
+
163
+ `entry` is the default resource to run. `entries` are named entry aliases, so one graph can expose multiple useful executable entrypoints.
164
+
165
+ ```yaml
166
+ entry: assistant
167
+ entries:
168
+ chat: assistant
169
+ recover: recovered_context
170
+ ```
171
+
172
+ Runtimes may run a graph from any explicit entry, alias, or resource they support.
173
+
174
+ ## Tools
175
+
176
+ Tools are an explicit graph-declared tool surface.
177
+
178
+ ```yaml
179
+ resources:
180
+ assistant:
181
+ type: agent
182
+ tools: [read, write, bash]
183
+ ```
184
+
185
+ A runtime must not expose undeclared tools to that resource. Circuitry only declares tool names; the runtime defines what each tool means and how it executes. Zinc implements tools such as `read`, `write`, `edit`, `bash`, and `run_graph`.
186
+
187
+ ## Extensions
130
188
 
131
- Internal graph wiring uses `resource.inputs`, not top-level `outputs`.
189
+ Unknown fields are preserved. Circuitry tooling validates and interprets core fields only. Runtimes may interpret additional fields they understand. Portable meaning is guaranteed only for fields defined by the Circuitry spec.
132
190
 
191
+ Unknown resource types are allowed so runtimes can extend behavior. Circuitry stays small by defining stable graph primitives instead of encoding every workflow feature.
133
192
 
134
193
  ## Run resources
135
194
 
@@ -159,7 +218,7 @@ resources:
159
218
  tools: [read, write, bash, run_graph]
160
219
  ```
161
220
 
162
- `type: run` is declarative topology. A runtime tool like `run_graph` is dynamic capability.
221
+ `type: run` is declarative topology. Its `output` describes the result of the graph run. A runtime tool like `run_graph` is dynamic capability.
163
222
 
164
223
  ## Learn more
165
224
 
package/SPEC.md CHANGED
@@ -22,10 +22,12 @@ Only `circuitry` and `resources` are required.
22
22
  ## Concepts
23
23
 
24
24
  - A **resource** is a named part of the graph.
25
- - An **input** is a caller-supplied value.
26
- - An **entry** is the resource a runtime resolves when the graph is run.
27
- - An **output** maps a public graph result to a resource path.
28
- - A **tool** is a runtime function name. Circuitry does not implement tools.
25
+ - A top-level **input** is a graph invocation input/argument.
26
+ - `resources.*.inputs` are resource dependencies.
27
+ - An **entry** is the default resource a runtime resolves when the graph is run.
28
+ - `resources.*.output` is the resource's output schema/contract.
29
+ - Top-level **outputs** are named graph-level exported outputs.
30
+ - A **tool** is a graph-declared runtime function name. Circuitry does not implement tools.
29
31
  - A **prompt** is ordinary text/input. Circuitry has no special prompt primitive.
30
32
 
31
33
  ## Resource fields
@@ -52,14 +54,14 @@ resources:
52
54
  graph: string
53
55
  entry: string
54
56
 
55
- expect: {}
56
-
57
- x-runtime-name: any
57
+ output: {}
58
58
  ```
59
59
 
60
- Unknown resource `type` values are allowed. Runtimes decide what they support.
60
+ Unknown resource `type` values are allowed so runtimes can extend behavior.
61
+
62
+ Unknown fields are preserved. Circuitry tooling validates and interprets core fields only. Runtimes may interpret additional fields they understand. Portable meaning is guaranteed only for fields defined by the Circuitry spec.
61
63
 
62
- `x-*` fields are extensions. Portable tooling preserves them and does not interpret them.
64
+ Circuitry stays small by defining stable graph primitives instead of encoding every workflow feature a runtime might provide.
63
65
 
64
66
  ## Inputs
65
67
 
@@ -103,12 +105,14 @@ assistant:
103
105
  tools: [read, search]
104
106
  instructions: |
105
107
  Answer carefully.
106
- expect:
108
+ output:
107
109
  answer: str
108
110
  ```
109
111
 
110
112
  Circuitry does not call a model. A runtime resolves the agent resource.
111
113
 
114
+ `output` describes the expected schema of the agent resource's materialized result. It does not define graph exports.
115
+
112
116
  ## Runs
113
117
 
114
118
  `type: run` composes graphs.
@@ -124,9 +128,11 @@ recovered_context:
124
128
 
125
129
  A run resource asks the runtime to resolve another Circuitry graph. `inputs` maps child input names to resources in the current graph.
126
130
 
131
+ For `type: run`, `output` describes the expected schema of the child graph run result.
132
+
127
133
  ## Entries
128
134
 
129
- `entry` is the default resource to resolve.
135
+ `entry` is the default resource to run.
130
136
 
131
137
  ```yaml
132
138
  entry: assistant
@@ -140,17 +146,29 @@ entries:
140
146
  recover: recovered_context
141
147
  ```
142
148
 
149
+ Runtimes may run a graph from any explicit entry, alias, or resource they support. This lets one graph expose multiple useful executable entrypoints without changing the resource graph.
150
+
143
151
  ## Outputs
144
152
 
145
- Top-level outputs describe graph return values.
153
+ Top-level `outputs` define named exports from the graph. Each output points to a resource or to a field/path inside a resource's materialized value.
146
154
 
147
155
  ```yaml
156
+ resources:
157
+ assistant:
158
+ type: agent
159
+ output:
160
+ answer: str
161
+
148
162
  outputs:
149
- answer:
163
+ final:
150
164
  from: assistant.answer
151
165
  ```
152
166
 
153
- `expect` describes a resource result. `outputs` describes graph boundary values.
167
+ `assistant.output` declares the schema of the assistant resource's materialized value. `outputs.final` exports `assistant.answer` as a named graph output.
168
+
169
+ `outputs` is separate from `output`. `output` is schema-only and never defines graph exports.
170
+
171
+ Output paths are intentionally simple: in `from: assistant.answer`, `assistant` is the resource id before the first dot. The remaining `answer` path selects a field/path within that resource's materialized value. If no dot is present, the whole materialized resource value is referenced.
154
172
 
155
173
  ## Imports
156
174
 
@@ -166,10 +184,19 @@ imports:
166
184
  imports:
167
185
  - path: ./shared.circuitry.yaml
168
186
  resources:
169
- shared_system: system
187
+ system: base_system
170
188
  ```
171
189
 
172
- Imports do not merge top-level inputs, entries, outputs, or extension fields.
190
+ Import renaming is assignment-style:
191
+
192
+ ```txt
193
+ local_name = imported.imported_name
194
+ system = imported.base_system
195
+ ```
196
+
197
+ This imports `base_system` from the imported graph and binds it locally as `system`. The current graph should reference `system`.
198
+
199
+ Imports do not merge top-level inputs, entries, outputs, or unknown fields.
173
200
 
174
201
  ## Resolution
175
202
 
@@ -183,6 +210,21 @@ Resource resolution semantics:
183
210
  - `run`: resolves mapped inputs, then asks the runtime to run another Circuitry graph.
184
211
  - unknown `type`: runtime-defined.
185
212
 
213
+ For static resources, `output` describes the resolved/materialized value. For executable resources, `output` describes the produced result.
214
+
215
+ ## Tools
216
+
217
+ Tools are an explicit graph-declared tool surface.
218
+
219
+ ```yaml
220
+ resources:
221
+ assistant:
222
+ type: agent
223
+ tools: [read, write, bash]
224
+ ```
225
+
226
+ A runtime must not expose undeclared tools to that resource. Circuitry only declares tool names. The runtime defines what each tool means and how it executes. Zinc implements tools such as `read`, `write`, `edit`, `bash`, and `run_graph`.
227
+
186
228
  Circuitry tooling validates graph shape and resolves imports. It does not execute runtime behavior.
187
229
 
188
230
  ## Validation
@@ -201,3 +243,4 @@ A valid 0.4 graph:
201
243
  - has `type: input` resources with valid `from`
202
244
  - has `type: run` resources with `graph`
203
245
  - has outputs with valid `from` roots
246
+ - uses valid shapes for all specified Circuitry core fields
package/dist/graph.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  export declare const CIRCUITRY_SPEC_VERSION: "0.4";
2
- export type CircuitryGraph = {
2
+ export type CircuitryGraphCore = {
3
3
  circuitry: "0.4";
4
4
  title?: string;
5
5
  description?: string;
@@ -9,8 +9,8 @@ export type CircuitryGraph = {
9
9
  entries?: Record<string, string>;
10
10
  resources: Record<string, CircuitryResource>;
11
11
  outputs?: Record<string, CircuitryOutput>;
12
- [key: `x-${string}`]: unknown;
13
12
  };
13
+ export type CircuitryGraph = CircuitryGraphCore & Record<string, unknown>;
14
14
  export type CircuitryImport = {
15
15
  path: string;
16
16
  resources?: "*" | string[] | Record<string, string>;
@@ -24,7 +24,7 @@ export type CircuitryInputSpec = {
24
24
  description?: string;
25
25
  mime?: string;
26
26
  };
27
- export type CircuitryResource = {
27
+ export type CircuitryResourceCore = {
28
28
  type: string;
29
29
  label?: string;
30
30
  description?: string;
@@ -39,9 +39,9 @@ export type CircuitryResource = {
39
39
  tools?: string[];
40
40
  graph?: string;
41
41
  entry?: string;
42
- expect?: CircuitrySchema;
43
- [key: `x-${string}`]: unknown;
42
+ output?: CircuitrySchema;
44
43
  };
44
+ export type CircuitryResource = CircuitryResourceCore & Record<string, unknown>;
45
45
  export type CircuitryOutput = {
46
46
  from: string;
47
47
  schema?: CircuitrySchema;
package/dist/graph.js CHANGED
@@ -91,14 +91,6 @@ export function validateCircuitrySource(value) {
91
91
  if (graph.circuitry !== CIRCUITRY_SPEC_VERSION) {
92
92
  issue("invalid_version", `circuitry must be ${CIRCUITRY_SPEC_VERSION}`, ["circuitry"]);
93
93
  }
94
- if ("nodes" in graph)
95
- issue("forbidden_nodes", "nodes are not part of Circuitry 0.4", ["nodes"]);
96
- if ("edges" in graph)
97
- issue("forbidden_edges", "edges are not part of Circuitry 0.4", ["edges"]);
98
- if ("args" in graph)
99
- issue("forbidden_args", "args are not part of Circuitry 0.4; use inputs", ["args"]);
100
- if ("runtime" in graph)
101
- issue("forbidden_runtime", "runtime is not a core Circuitry field; use runtime config or x-*", ["runtime"]);
102
94
  if (!graph.resources || typeof graph.resources !== "object" || Array.isArray(graph.resources)) {
103
95
  issue("missing_resources", "resources must be an object", ["resources"]);
104
96
  return { ok: false, issues };
package/dist/graph.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"graph.js","sourceRoot":"","sources":["../src/graph.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"graph.js","sourceRoot":"","sources":["../src/graph.ts"],"names":[],"mappings":"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"}
package/dist/resolve.js CHANGED
@@ -36,6 +36,7 @@ export async function resolveCircuitrySource(source, options = {}) {
36
36
  mergeImport(resources, origins, resolved.graph.resources, resolved.origins, spec, importedPath);
37
37
  }
38
38
  for (const [id, resource] of Object.entries(source.resources ?? {})) {
39
+ assertAvailable(resources, id);
39
40
  resources[id] = resource;
40
41
  origins[id] = options.filename ?? "<memory>";
41
42
  }
@@ -59,35 +60,54 @@ export async function resolveCircuitrySource(source, options = {}) {
59
60
  return { graph, origins };
60
61
  }
61
62
  function mergeImport(target, origins, imported, importedOrigins, spec, importedPath) {
63
+ const selected = getImportSelection(imported, spec);
64
+ const renames = new Map(selected.map(({ remote, local }) => [remote, local]));
65
+ for (const { remote, local } of selected) {
66
+ assertAvailable(target, local);
67
+ target[local] = rewriteImportedResource(imported[remote], renames);
68
+ origins[local] = importedOrigins[remote] ?? importedPath;
69
+ }
70
+ }
71
+ function getImportSelection(imported, spec) {
62
72
  const resources = spec.resources ?? "*";
63
73
  if (resources === "*") {
64
- for (const [id, resource] of Object.entries(imported)) {
65
- const name = spec.prefix ? `${spec.prefix}${id}` : id;
66
- assertAvailable(target, name);
67
- target[name] = resource;
68
- origins[name] = importedOrigins[id] ?? importedPath;
69
- }
70
- return;
74
+ return Object.keys(imported).map((id) => ({ remote: id, local: applyPrefix(id, spec.prefix) }));
71
75
  }
72
76
  if (Array.isArray(resources)) {
73
- for (const id of resources) {
77
+ return resources.map((id) => {
74
78
  if (!imported[id])
75
79
  throw new Error(`imported resource not found: ${id}`);
76
- const name = spec.prefix ? `${spec.prefix}${id}` : id;
77
- assertAvailable(target, name);
78
- target[name] = imported[id];
79
- origins[name] = importedOrigins[id] ?? importedPath;
80
- }
81
- return;
80
+ return { remote: id, local: applyPrefix(id, spec.prefix) };
81
+ });
82
82
  }
83
- for (const [local, remote] of Object.entries(resources)) {
83
+ return Object.entries(resources).map(([local, remote]) => {
84
84
  if (!imported[remote])
85
85
  throw new Error(`imported resource not found: ${remote}`);
86
- const name = spec.prefix ? `${spec.prefix}${local}` : local;
87
- assertAvailable(target, name);
88
- target[name] = imported[remote];
89
- origins[name] = importedOrigins[remote] ?? importedPath;
86
+ return { remote, local: applyPrefix(local, spec.prefix) };
87
+ });
88
+ }
89
+ function rewriteImportedResource(resource, renames) {
90
+ const rewritten = { ...resource };
91
+ if (Array.isArray(resource.inputs)) {
92
+ rewritten.inputs = resource.inputs.map((id) => rewriteReference(id, renames));
93
+ }
94
+ else if (resource.inputs && typeof resource.inputs === "object") {
95
+ rewritten.inputs = Object.fromEntries(Object.entries(resource.inputs).map(([name, id]) => [name, rewriteReference(id, renames)]));
96
+ }
97
+ if (resource.type === "run" && typeof resource.graph === "string") {
98
+ rewritten.graph = rewriteReference(resource.graph, renames);
90
99
  }
100
+ return rewritten;
101
+ }
102
+ function rewriteReference(reference, renames) {
103
+ const [root, ...rest] = reference.split(".");
104
+ const renamed = renames.get(root);
105
+ if (!renamed)
106
+ return reference;
107
+ return rest.length ? `${renamed}.${rest.join(".")}` : renamed;
108
+ }
109
+ function applyPrefix(id, prefix = "") {
110
+ return `${prefix}${id}`;
91
111
  }
92
112
  function assertAvailable(resources, id) {
93
113
  if (resources[id])
@@ -1 +1 @@
1
- {"version":3,"file":"resolve.js","sourceRoot":"","sources":["../src/resolve.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resolve.js","sourceRoot":"","sources":["../src/resolve.ts"],"names":[],"mappings":"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"}
@@ -20,7 +20,7 @@ resources:
20
20
  tools: [read, search]
21
21
  instructions: |
22
22
  Answer with the smallest sufficient explanation.
23
- expect:
23
+ output:
24
24
  answer: str
25
25
  outputs:
26
26
  answer:
@@ -15,7 +15,7 @@ resources:
15
15
  inputs: [question]
16
16
  instructions: |
17
17
  Return only context relevant to the question.
18
- expect:
18
+ output:
19
19
  context: str
20
20
  outputs:
21
21
  context:
@@ -2,7 +2,8 @@ circuitry: "0.4"
2
2
  title: Imports
3
3
  imports:
4
4
  - path: ./shared.circuitry.yaml
5
- resources: "*"
5
+ resources:
6
+ system: base_system
6
7
  entry: system
7
8
  resources: {}
8
9
  outputs:
@@ -5,6 +5,7 @@ resources:
5
5
  message:
6
6
  type: text
7
7
  value: Hello from Circuitry.
8
+ x-demo-note: preserved runtime extension
8
9
  outputs:
9
10
  message:
10
11
  from: message
@@ -5,6 +5,9 @@ inputs:
5
5
  type: text
6
6
  required: true
7
7
  entry: assistant
8
+ entries:
9
+ chat: assistant
10
+ recover: recovered_context
8
11
  resources:
9
12
  question:
10
13
  type: input
@@ -15,11 +18,13 @@ resources:
15
18
  entry: recover
16
19
  inputs:
17
20
  question: question
21
+ output:
22
+ context: str
18
23
  assistant:
19
24
  type: agent
20
25
  identity: Researcher
21
26
  inputs: [question, recovered_context]
22
- expect:
27
+ output:
23
28
  answer: str
24
29
  outputs:
25
30
  answer:
@@ -1,6 +1,6 @@
1
1
  circuitry: "0.4"
2
2
  title: Shared resources
3
3
  resources:
4
- system:
4
+ base_system:
5
5
  type: text
6
6
  value: You are concise and careful.
package/package.json CHANGED
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "name": "@darkhorseprojects/circuitry",
3
- "version": "0.4.3",
3
+ "version": "0.4.5",
4
4
  "description": "A tiny file format and CLI for executable resource graphs.",
5
5
  "type": "module",
6
6
  "bin": {
7
- "circuitry": "./dist/cli.js"
7
+ "circuitry": "dist/cli.js"
8
8
  },
9
9
  "exports": {
10
10
  ".": {
@@ -12,10 +12,7 @@
12
12
  "import": "./dist/index.js"
13
13
  }
14
14
  },
15
- "repository": {
16
- "type": "git",
17
- "url": "https://github.com/darkhorseprojects/circuitry"
18
- },
15
+ "repository": "https://github.com/darkhorseprojects/circuitry",
19
16
  "files": [
20
17
  "dist",
21
18
  "README.md",
package/schema.json CHANGED
@@ -69,7 +69,7 @@
69
69
  "tools": { "type": "array", "items": { "type": "string" } },
70
70
  "graph": { "type": "string" },
71
71
  "entry": { "type": "string" },
72
- "expect": {}
72
+ "output": {}
73
73
  }
74
74
  },
75
75
  "output": {