@jigging/jig 0.1.0-alpha.11 → 0.1.0-alpha.13
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 +16 -8
- package/dist/index.d.ts +1 -1
- package/dist/index.js +14 -3
- package/dist/project/author.d.ts +6 -6
- package/libexec/agent/claude-agent-acp.js +119 -119
- package/libexec/agent/openai-agent-worker.js +165 -168
- package/libexec/agent/pi-acp.js +69 -69
- package/libexec/agent/pi-agent-launcher.js +2 -15
- package/libexec/evaluator/project-authoring-1.schema.json +3 -14
- package/libexec/evaluator/project-evaluator-sdk.bundle.js +14 -3
- package/libexec/evaluator/project-evaluator-worker.js +61 -56
- package/libexec/installed-cli.js +3928 -2691
- package/libexec/linux-rootless-supervisor.js +126 -12
- package/libexec/preparation/bun-native-preparation-worker.js +1 -9
- package/package.json +3 -12
package/README.md
CHANGED
|
@@ -1,21 +1,26 @@
|
|
|
1
1
|
# `@jigging/jig`
|
|
2
2
|
|
|
3
|
-
Jig
|
|
4
|
-
|
|
3
|
+
Jig puts reusable Agent methods to work with powers you approve. Choose your
|
|
4
|
+
Agents, combine specialists, inspect their results, and stop owned work.
|
|
5
|
+
The developer alpha has one finite command surface:
|
|
5
6
|
|
|
6
7
|
```text
|
|
7
8
|
jig init --bare <directory>
|
|
8
9
|
jig review [project] [--yes]
|
|
9
|
-
jig run <flow:path|binding:id> [--input JSON] [--timeout DURATION]
|
|
10
|
+
jig run <flow:path|binding:id> [--input JSON|@FILE] [--attach NAME=DIR] [--out DIR] [--timeout DURATION]
|
|
11
|
+
jig --version
|
|
10
12
|
```
|
|
11
13
|
|
|
14
|
+
`jig --version` prints the built package version without opening a project or
|
|
15
|
+
acquiring a sandbox.
|
|
16
|
+
|
|
12
17
|
There is no `jig setup`. `review` and `run` transparently acquire the rootless
|
|
13
18
|
authority they need or fail closed.
|
|
14
19
|
|
|
15
20
|
## Install
|
|
16
21
|
|
|
17
22
|
```console
|
|
18
|
-
npm install --global @jigging/jig@
|
|
23
|
+
npm install --global @jigging/jig@alpha
|
|
19
24
|
```
|
|
20
25
|
|
|
21
26
|
Installing Jig also installs `@oven/bun-linux-x64-baseline@1.3.3` as an exact
|
|
@@ -24,6 +29,10 @@ external runtime dependency. Bun is not embedded in or bundled with the
|
|
|
24
29
|
that closed package-local path, authenticates its version, revision, and digest
|
|
25
30
|
before evaluator or Flow bytes execute, and revalidates it before each launch.
|
|
26
31
|
|
|
32
|
+
For a useful application, try [an issue becoming a tested patch](https://jig.md/guide/tested-patch).
|
|
33
|
+
It selects local source files and returns a patch with executed checks, without
|
|
34
|
+
changing the original repository.
|
|
35
|
+
|
|
27
36
|
## Supported host
|
|
28
37
|
|
|
29
38
|
The alpha has been independently tested on a provisioned Ubuntu 24.04 x86_64
|
|
@@ -48,15 +57,14 @@ On NixOS, enable
|
|
|
48
57
|
`programs.nix-ld.enable` for the unmodified npm runtime. Jig uses the real glibc
|
|
49
58
|
loader at the system-managed `share/nix-ld/lib/ld.so` link, mounting only that
|
|
50
59
|
loader and its required libraries into Runs. It does not mount nix-ld or the
|
|
51
|
-
whole Nix store. NixOS
|
|
52
|
-
independent NixOS host conformance is not yet established.
|
|
60
|
+
whole Nix store. Independent NixOS host conformance is not yet established.
|
|
53
61
|
|
|
54
62
|
Jig commands do not use `sudo`, download runtimes, or expose host control to
|
|
55
63
|
Flow code. Runtime installation is handled once by npm with the Jig package.
|
|
56
64
|
|
|
57
65
|
Flow Runs default to 30 seconds. `jig run --timeout DURATION` accepts a
|
|
58
66
|
positive integer followed by `ms`, `s`, `m`, or `h`, up to 24 hours. Flow
|
|
59
|
-
execution scopes remain fixed at 256 MiB aggregate memory,
|
|
67
|
+
execution scopes remain fixed at 256 MiB aggregate memory, 64 aggregate PIDs,
|
|
60
68
|
and 50% of one CPU. Project evaluation is fixed at 3 seconds, 256 MiB, 64
|
|
61
69
|
PIDs, and 50% CPU. Locked dependency preparation is fixed at 60 seconds, 512
|
|
62
70
|
MiB, 64 PIDs, and one CPU. See the repository
|
|
@@ -74,7 +82,7 @@ Place packages under `flows/<name>/`. Each package has exact-case `FLOW.md`
|
|
|
74
82
|
and, for this alpha, one `flow.ts`. The generated `jig.ts`
|
|
75
83
|
explicitly discovers `./flows` and `./bindings`.
|
|
76
84
|
|
|
77
|
-
The
|
|
85
|
+
The published `@jigging/flow@0.1.0-alpha.7` package provides the small Run/1
|
|
78
86
|
authoring API. Declare it exactly in the Flow's `package.json`, generate a text
|
|
79
87
|
`bun.lock` with Bun 1.3.3 and `bun install --lockfile-only`, then handle one
|
|
80
88
|
finite Run:
|
package/dist/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { defineBinding, defineJig, discover, type JigDefinitionInput, type PackageBindingInput, } from
|
|
1
|
+
export { defineBinding, defineJig, discover, type JigDefinitionInput, type PackageBindingInput, } from './project/author.js';
|
package/dist/index.js
CHANGED
|
@@ -1784,10 +1784,16 @@ function defineBinding(input) {
|
|
|
1784
1784
|
return normalizeBinding(input, false);
|
|
1785
1785
|
}
|
|
1786
1786
|
function flowRef(path) {
|
|
1787
|
-
return record({
|
|
1787
|
+
return record({
|
|
1788
|
+
kind: "flow",
|
|
1789
|
+
path: normalizeProjectPath(path, "Flow reference")
|
|
1790
|
+
});
|
|
1788
1791
|
}
|
|
1789
1792
|
function bindingRef(id) {
|
|
1790
|
-
return record({
|
|
1793
|
+
return record({
|
|
1794
|
+
kind: "binding",
|
|
1795
|
+
id: validateLocalName(id, "Binding reference")
|
|
1796
|
+
});
|
|
1791
1797
|
}
|
|
1792
1798
|
function normalizeBinding(input, canonical) {
|
|
1793
1799
|
const captured = snapshotJsonObject(input, "Binding definition");
|
|
@@ -1800,7 +1806,12 @@ function normalizeBinding(input, canonical) {
|
|
|
1800
1806
|
const packagePath = normalizeProjectPath(captured.package, "package");
|
|
1801
1807
|
const settings = Object.hasOwn(captured, "settings") ? expectJsonObject(captured.settings, "settings") : emptyRecord();
|
|
1802
1808
|
const slots = Object.hasOwn(captured, "slots") ? normalizeFlowSlots(captured.slots) : emptyRecord();
|
|
1803
|
-
return record({
|
|
1809
|
+
return record({
|
|
1810
|
+
kind: "package",
|
|
1811
|
+
package: packagePath,
|
|
1812
|
+
settings,
|
|
1813
|
+
slots
|
|
1814
|
+
});
|
|
1804
1815
|
}
|
|
1805
1816
|
function normalizeFlowSlots(value) {
|
|
1806
1817
|
const input = snapshotJsonObject(value, "slots");
|
package/dist/project/author.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import type { JsonObject } from
|
|
1
|
+
import type { JsonObject } from '../json.js';
|
|
2
2
|
export interface DiscoverySource {
|
|
3
|
-
readonly kind:
|
|
3
|
+
readonly kind: 'discover';
|
|
4
4
|
readonly roots: readonly string[];
|
|
5
5
|
}
|
|
6
6
|
export interface MembersSource {
|
|
7
|
-
readonly kind:
|
|
7
|
+
readonly kind: 'members';
|
|
8
8
|
readonly paths: readonly string[];
|
|
9
9
|
}
|
|
10
10
|
export type ProjectSource = DiscoverySource | MembersSource;
|
|
@@ -18,16 +18,16 @@ export interface JigDefinitionInput {
|
|
|
18
18
|
readonly bindings?: ProjectSourceInput;
|
|
19
19
|
}
|
|
20
20
|
export interface FlowRef {
|
|
21
|
-
readonly kind:
|
|
21
|
+
readonly kind: 'flow';
|
|
22
22
|
readonly path: string;
|
|
23
23
|
}
|
|
24
24
|
export interface BindingRef {
|
|
25
|
-
readonly kind:
|
|
25
|
+
readonly kind: 'binding';
|
|
26
26
|
readonly id: string;
|
|
27
27
|
}
|
|
28
28
|
export type RunTargetRef = FlowRef | BindingRef;
|
|
29
29
|
export interface PackageBindingDefinition {
|
|
30
|
-
readonly kind:
|
|
30
|
+
readonly kind: 'package';
|
|
31
31
|
readonly package: string;
|
|
32
32
|
readonly settings: JsonObject;
|
|
33
33
|
readonly slots: Readonly<Record<string, string>>;
|