@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 +69 -10
- package/SPEC.md +59 -16
- package/dist/graph.d.ts +5 -5
- package/dist/graph.js +0 -8
- package/dist/graph.js.map +1 -1
- package/dist/resolve.js +39 -19
- package/dist/resolve.js.map +1 -1
- package/examples/agent.circuitry.yaml +1 -1
- package/examples/context.circuitry.yaml +1 -1
- package/examples/imports.circuitry.yaml +2 -1
- package/examples/minimal.circuitry.yaml +1 -0
- package/examples/run.circuitry.yaml +6 -1
- package/examples/shared.circuitry.yaml +1 -1
- package/package.json +3 -6
- package/schema.json +1 -1
package/README.md
CHANGED
|
@@ -37,7 +37,7 @@ resources:
|
|
|
37
37
|
inputs: [system, turn]
|
|
38
38
|
tools: []
|
|
39
39
|
instructions: Answer the user.
|
|
40
|
-
|
|
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`
|
|
52
|
+
- `inputs` are graph invocation inputs/arguments.
|
|
53
53
|
- `resources` define the internal graph.
|
|
54
|
-
- `
|
|
55
|
-
- `
|
|
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
|
-
|
|
124
|
-
from: assistant.
|
|
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
|
-
`
|
|
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
|
-
|
|
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
|
-
-
|
|
26
|
-
-
|
|
27
|
-
- An **
|
|
28
|
-
-
|
|
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
|
-
|
|
56
|
-
|
|
57
|
-
x-runtime-name: any
|
|
57
|
+
output: {}
|
|
58
58
|
```
|
|
59
59
|
|
|
60
|
-
Unknown resource `type` values are allowed
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
-
|
|
163
|
+
final:
|
|
150
164
|
from: assistant.answer
|
|
151
165
|
```
|
|
152
166
|
|
|
153
|
-
`
|
|
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
|
-
|
|
187
|
+
system: base_system
|
|
170
188
|
```
|
|
171
189
|
|
|
172
|
-
|
|
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
|
|
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
|
|
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
|
-
|
|
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":"AAAA,MAAM,CAAC,MAAM,sBAAsB,GAAG,KAAc,CAAC;
|
|
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
|
-
|
|
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
|
-
|
|
77
|
+
return resources.map((id) => {
|
|
74
78
|
if (!imported[id])
|
|
75
79
|
throw new Error(`imported resource not found: ${id}`);
|
|
76
|
-
|
|
77
|
-
|
|
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
|
-
|
|
83
|
+
return Object.entries(resources).map(([local, remote]) => {
|
|
84
84
|
if (!imported[remote])
|
|
85
85
|
throw new Error(`imported resource not found: ${remote}`);
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
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])
|
package/dist/resolve.js.map
CHANGED
|
@@ -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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"}
|
|
@@ -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
|
-
|
|
27
|
+
output:
|
|
23
28
|
answer: str
|
|
24
29
|
outputs:
|
|
25
30
|
answer:
|
package/package.json
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@darkhorseprojects/circuitry",
|
|
3
|
-
"version": "0.4.
|
|
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": "
|
|
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",
|