@zibby/cli 0.6.1 → 0.7.1
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/dist/bin/zibby.js +19 -18
- package/dist/commands/app-auth.js +17 -0
- package/dist/commands/app.js +1 -1
- package/dist/commands/init.js +126 -118
- package/dist/commands/workflows/generate.js +143 -135
- package/dist/package.json +3 -2
- package/dist/templates/zibby-workflow-claude/agents-md-block.md +23 -23
- package/dist/templates/zibby-workflow-claude/claude/agents/zibby-workflow-builder.md +24 -24
- package/dist/templates/zibby-workflow-claude/claude/commands/zibby-add-node.md +18 -18
- package/dist/templates/zibby-workflow-claude/claude/commands/zibby-debug.md +10 -10
- package/dist/templates/zibby-workflow-claude/claude/commands/zibby-delete.md +7 -7
- package/dist/templates/zibby-workflow-claude/claude/commands/zibby-deploy.md +26 -26
- package/dist/templates/zibby-workflow-claude/claude/commands/zibby-list.md +8 -8
- package/dist/templates/zibby-workflow-claude/claude/commands/zibby-static-ip.md +13 -13
- package/dist/templates/zibby-workflow-claude/claude/commands/zibby-tail.md +13 -13
- package/dist/templates/zibby-workflow-claude/claude/commands/zibby-trigger.md +16 -16
- package/dist/templates/zibby-workflow-claude/cursor/rules/zibby-workflows.mdc +19 -19
- package/dist/templates/zibby-workflow-claude/manifest.json +1 -1
- package/package.json +3 -2
- package/templates/zibby-workflow-claude/agents-md-block.md +23 -23
- package/templates/zibby-workflow-claude/claude/agents/zibby-workflow-builder.md +24 -24
- package/templates/zibby-workflow-claude/claude/commands/zibby-add-node.md +18 -18
- package/templates/zibby-workflow-claude/claude/commands/zibby-debug.md +10 -10
- package/templates/zibby-workflow-claude/claude/commands/zibby-delete.md +7 -7
- package/templates/zibby-workflow-claude/claude/commands/zibby-deploy.md +26 -26
- package/templates/zibby-workflow-claude/claude/commands/zibby-list.md +8 -8
- package/templates/zibby-workflow-claude/claude/commands/zibby-static-ip.md +13 -13
- package/templates/zibby-workflow-claude/claude/commands/zibby-tail.md +13 -13
- package/templates/zibby-workflow-claude/claude/commands/zibby-trigger.md +16 -16
- package/templates/zibby-workflow-claude/cursor/rules/zibby-workflows.mdc +19 -19
- package/templates/zibby-workflow-claude/manifest.json +1 -1
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
<!-- zibby-template-version: 4 -->
|
|
2
|
-
# /zibby-deploy — deploy a Zibby
|
|
2
|
+
# /zibby-deploy — deploy a Zibby agent to the cloud
|
|
3
3
|
|
|
4
|
-
You are helping the user deploy
|
|
4
|
+
You are helping the user deploy an agent they've been building locally.
|
|
5
5
|
|
|
6
|
-
## What `zibby
|
|
6
|
+
## What `zibby agent deploy` does
|
|
7
7
|
|
|
8
|
-
1. Bundles the
|
|
8
|
+
1. Bundles the agent's source (graph.mjs + nodes/ + package.json) into a tarball
|
|
9
9
|
2. Uploads it to S3 via a presigned URL
|
|
10
10
|
3. Triggers AWS CodeBuild to install deps + bake the bundle
|
|
11
11
|
4. Updates DynamoDB so future triggers run the new bundle
|
|
12
12
|
|
|
13
|
-
A successful deploy is required before `zibby
|
|
13
|
+
A successful deploy is required before `zibby agent trigger <uuid>` works against the cloud.
|
|
14
14
|
|
|
15
15
|
Canonical docs: **https://docs.zibby.app/workflows/deploying**
|
|
16
16
|
|
|
17
17
|
## Steps for this command
|
|
18
18
|
|
|
19
|
-
1. **Identify the
|
|
19
|
+
1. **Identify the agent.** If the user passes a name, use it. Otherwise list everything under `paths.workflows` (from `.zibby.config.mjs`) and ask.
|
|
20
20
|
|
|
21
|
-
2. **Pre-flight checks.** Read the
|
|
21
|
+
2. **Pre-flight checks.** Read the agent folder and confirm:
|
|
22
22
|
- `graph.mjs` exists and exports a graph
|
|
23
23
|
- `nodes/` has at least one node
|
|
24
24
|
- `workflow.json` is valid (must have `name`, `entryClass`, `triggers`)
|
|
@@ -26,62 +26,62 @@ Canonical docs: **https://docs.zibby.app/workflows/deploying**
|
|
|
26
26
|
|
|
27
27
|
3. **Run the deploy:**
|
|
28
28
|
```
|
|
29
|
-
zibby
|
|
29
|
+
zibby agent deploy <workflow-name>
|
|
30
30
|
```
|
|
31
31
|
This is interactive if `--project` isn't passed. The user picks a project, the CLI handles auth via the saved session token.
|
|
32
32
|
|
|
33
|
-
4. **Watch the build.** The CLI streams CodeBuild output. If it succeeds, it prints the
|
|
33
|
+
4. **Watch the build.** The CLI streams CodeBuild output. If it succeeds, it prints the agent's UUID. If it fails, the build logs show why — usually a missing dep in `package.json` or a syntax error in a node.
|
|
34
34
|
|
|
35
35
|
5. **Verify post-deploy:**
|
|
36
36
|
```
|
|
37
|
-
zibby
|
|
38
|
-
zibby
|
|
37
|
+
zibby agent trigger <uuid> --input '{}'
|
|
38
|
+
zibby agent logs <uuid> -t
|
|
39
39
|
```
|
|
40
|
-
Tail logs until the
|
|
40
|
+
Tail logs until the agent reaches `completed` (or `failed` — diagnose from logs).
|
|
41
41
|
|
|
42
42
|
## Common failure modes
|
|
43
43
|
|
|
44
44
|
- **Build fails with module-not-found** → node imports a package not in `package.json`. Add it and redeploy.
|
|
45
45
|
- **Build succeeds but trigger fails immediately** → `entryClass` in `workflow.json` doesn't match a class exported by `graph.mjs`.
|
|
46
|
-
- **
|
|
46
|
+
- **Agent runs but a node fails** → tail the live logs and read the error. Most are in the agent's prompt/output handling.
|
|
47
47
|
|
|
48
48
|
## Optional flags worth knowing
|
|
49
49
|
|
|
50
|
-
`zibby
|
|
50
|
+
`zibby agent deploy` accepts:
|
|
51
51
|
- `--project <id>` — skip the interactive project picker
|
|
52
52
|
- `--api-key <key>` — use a PAT instead of the session token (for CI)
|
|
53
|
-
- `--env <path>` — sync a `.env` file into per-
|
|
53
|
+
- `--env <path>` — sync a `.env` file into per-agent env vars after deploy. Repeatable; later files override.
|
|
54
54
|
- `--verbose` — print raw CodeBuild output during the build (helpful for debugging build failures)
|
|
55
55
|
|
|
56
|
-
### Seeding per-
|
|
56
|
+
### Seeding per-agent env on first deploy
|
|
57
57
|
|
|
58
|
-
If the
|
|
58
|
+
If the agent needs its own `ANTHROPIC_API_KEY`, `DATABASE_URL`, etc., put them in a `.env` and pass `--env`:
|
|
59
59
|
|
|
60
60
|
```
|
|
61
|
-
zibby
|
|
62
|
-
zibby
|
|
61
|
+
zibby agent deploy <name> --env .env
|
|
62
|
+
zibby agent deploy <name> --env .env --env .env.prod # later files win
|
|
63
63
|
```
|
|
64
64
|
|
|
65
|
-
After deploy, manage them surgically with `zibby
|
|
65
|
+
After deploy, manage them surgically with `zibby agent env set/unset/list/push <uuid>`. See `/zibby-list` to recover the UUID; full guide at https://docs.zibby.app/cloud/env-vars.
|
|
66
66
|
|
|
67
67
|
## Static outbound IP (dedicated egress)
|
|
68
68
|
|
|
69
|
-
If the user's
|
|
69
|
+
If the user's agent needs to call APIs that require IP allowlisting (corporate GitHub, GitLab Enterprise, paranoid SaaS firewalls), the agent needs the **dedicated egress IP** addon. The flag lives on the legacy alias `zibby deploy` (NOT `zibby agent deploy`):
|
|
70
70
|
|
|
71
71
|
| Flag | What it does |
|
|
72
72
|
|------|-------------|
|
|
73
73
|
| `zibby deploy <name> --dedicated-ip status` | Show current addon state for the account (active / inactive / billing) |
|
|
74
74
|
| `zibby deploy <name> --dedicated-ip enable` | Enable the addon on the account (Pro subscription required, ~$50/mo). One-time per account. |
|
|
75
|
-
| `zibby deploy <name> --dedicated-ip use` | Mark THIS
|
|
76
|
-
| `zibby deploy <name> --dedicated-ip unuse` | Stop routing this
|
|
75
|
+
| `zibby deploy <name> --dedicated-ip use` | Mark THIS agent as using the static egress IP (per-agent opt-in, after `enable`) |
|
|
76
|
+
| `zibby deploy <name> --dedicated-ip unuse` | Stop routing this agent through the static IP |
|
|
77
77
|
| `zibby deploy <name> --dedicated-ip disable` | Disable the addon for the whole account |
|
|
78
78
|
|
|
79
79
|
Typical first-time flow when the user says "I need a static outbound IP":
|
|
80
80
|
1. `zibby deploy <name> --dedicated-ip status` — check whether they have it
|
|
81
81
|
2. If inactive → `zibby deploy <name> --dedicated-ip enable` — enables the account-wide addon (interactive billing prompt; prerequisite Pro subscription)
|
|
82
|
-
3. `zibby deploy <name> --dedicated-ip use` — opts this specific
|
|
83
|
-
4. Regular `zibby
|
|
82
|
+
3. `zibby deploy <name> --dedicated-ip use` — opts this specific agent in
|
|
83
|
+
4. Regular `zibby agent deploy <name>` from now on uses the static IP
|
|
84
84
|
|
|
85
|
-
After `--dedicated-ip use`, every node in this
|
|
85
|
+
After `--dedicated-ip use`, every node in this agent gets its outbound HTTP routed through the egress proxy, and `process.env.HTTP_PROXY` / `HTTPS_PROXY` are set in the sandbox automatically. Their static IPs are visible to customers via `https://docs.zibby.app/workflows/egress`.
|
|
86
86
|
|
|
87
87
|
**Don't** run `--dedicated-ip enable` without confirming with the user — it has billing impact ($50/mo addon). Always confirm. See `/zibby-static-ip` for the deeper walkthrough.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<!-- zibby-template-version: 4 -->
|
|
2
|
-
# /zibby-list — list
|
|
2
|
+
# /zibby-list — list agents (local + cloud) with their UUIDs and statuses
|
|
3
3
|
|
|
4
|
-
You are helping the user see what
|
|
4
|
+
You are helping the user see what agents exist — locally scaffolded and remotely deployed.
|
|
5
5
|
|
|
6
6
|
Canonical docs: **https://docs.zibby.app/cli-reference#workflow-list**
|
|
7
7
|
|
|
@@ -9,22 +9,22 @@ Canonical docs: **https://docs.zibby.app/cli-reference#workflow-list**
|
|
|
9
9
|
|
|
10
10
|
1. **Run the list command:**
|
|
11
11
|
```
|
|
12
|
-
Bash(zibby
|
|
12
|
+
Bash(zibby agent list)
|
|
13
13
|
```
|
|
14
|
-
This shows both local (in `.zibby/workflows/`) and remote (deployed to Zibby Cloud)
|
|
14
|
+
This shows both local (in `.zibby/workflows/`) and remote (deployed to Zibby Cloud) agents. Each row has: name, UUID, project, last triggered.
|
|
15
15
|
|
|
16
16
|
2. **Filter on demand.** If the user wants only local or only remote:
|
|
17
17
|
```
|
|
18
|
-
zibby
|
|
19
|
-
zibby
|
|
18
|
+
zibby agent list --local-only
|
|
19
|
+
zibby agent list --remote-only --project <id>
|
|
20
20
|
```
|
|
21
21
|
|
|
22
22
|
## When you'd use this
|
|
23
23
|
|
|
24
|
-
- User asks "what
|
|
24
|
+
- User asks "what agents do I have?" → run it, show the result.
|
|
25
25
|
- You need a UUID to pass into `/zibby-trigger`, `/zibby-tail`, `/zibby-delete` and the user only knows the name → run it, look up the UUID.
|
|
26
26
|
- After a deploy to confirm the bundle landed.
|
|
27
27
|
|
|
28
28
|
## Output expectations
|
|
29
29
|
|
|
30
|
-
The output is human-readable text (not JSON). If you need to extract a specific UUID programmatically, parse the line for the
|
|
30
|
+
The output is human-readable text (not JSON). If you need to extract a specific UUID programmatically, parse the line for the agent name. If the user has many agents, ask which one they want — don't grep blind.
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
<!-- zibby-template-version: 4 -->
|
|
2
|
-
# /zibby-static-ip — set up dedicated outbound static IP for
|
|
2
|
+
# /zibby-static-ip — set up dedicated outbound static IP for an agent
|
|
3
3
|
|
|
4
|
-
You are helping the user route
|
|
4
|
+
You are helping the user route an agent's outbound traffic through a static IP address — needed when the agent calls APIs that require IP allowlisting (corporate GitLab/GitHub Enterprise, internal SaaS, firewalls).
|
|
5
5
|
|
|
6
6
|
Canonical docs: **https://docs.zibby.app/workflows/egress**
|
|
7
7
|
|
|
8
|
-
> Note: the `--dedicated-ip` flag lives on the legacy alias `zibby deploy <name>`, NOT on `zibby
|
|
8
|
+
> Note: the `--dedicated-ip` flag lives on the legacy alias `zibby deploy <name>`, NOT on `zibby agent deploy <name>`. The two share a handler, but only `zibby deploy` exposes this flag in `--help`.
|
|
9
9
|
|
|
10
10
|
## What "static IP" means here
|
|
11
11
|
|
|
12
|
-
By default,
|
|
12
|
+
By default, agent tasks run on Fargate and their outbound traffic exits via AWS-managed IPs that rotate. With the **dedicated egress** addon enabled, the agent's outbound traffic is routed through a Zibby-managed proxy whose IP is pinned and customer-allowlistable.
|
|
13
13
|
|
|
14
14
|
Two pieces:
|
|
15
15
|
1. **Account-level addon** — `~$50/mo`, requires Pro subscription. One-time toggle per account.
|
|
16
|
-
2. **Per-
|
|
16
|
+
2. **Per-agent opt-in** — once the addon is on, each agent opts in individually (some agents might not need it, no point routing them).
|
|
17
17
|
|
|
18
18
|
## Steps
|
|
19
19
|
|
|
@@ -27,23 +27,23 @@ Two pieces:
|
|
|
27
27
|
```
|
|
28
28
|
Bash(zibby deploy <name> --dedicated-ip status)
|
|
29
29
|
```
|
|
30
|
-
Output tells you: addon active or inactive, this
|
|
30
|
+
Output tells you: addon active or inactive, this agent currently using it or not, and the assigned IPs to publish to customers.
|
|
31
31
|
|
|
32
32
|
3. **If addon is inactive — enable it** (only after explicit user confirmation):
|
|
33
33
|
```
|
|
34
34
|
Bash(zibby deploy <name> --dedicated-ip enable)
|
|
35
35
|
```
|
|
36
|
-
This is one-time per account. After this, the addon is active for ALL
|
|
36
|
+
This is one-time per account. After this, the addon is active for ALL agents in the account that opt in.
|
|
37
37
|
|
|
38
|
-
4. **Opt this
|
|
38
|
+
4. **Opt this agent in:**
|
|
39
39
|
```
|
|
40
40
|
Bash(zibby deploy <name> --dedicated-ip use)
|
|
41
41
|
```
|
|
42
|
-
From now on, every deploy of this
|
|
42
|
+
From now on, every deploy of this agent + every triggered execution routes outbound through the static IP.
|
|
43
43
|
|
|
44
|
-
5. **Re-deploy the
|
|
44
|
+
5. **Re-deploy the agent** so the runtime picks up the change:
|
|
45
45
|
```
|
|
46
|
-
Bash(zibby
|
|
46
|
+
Bash(zibby agent deploy <name>)
|
|
47
47
|
```
|
|
48
48
|
|
|
49
49
|
6. **Verify in a node** by adding a quick log:
|
|
@@ -54,7 +54,7 @@ Two pieces:
|
|
|
54
54
|
|
|
55
55
|
## Reverting
|
|
56
56
|
|
|
57
|
-
- `Bash(zibby deploy <name> --dedicated-ip unuse)` — stop routing this
|
|
57
|
+
- `Bash(zibby deploy <name> --dedicated-ip unuse)` — stop routing this agent's egress through the static IP. Other opted-in agents are unaffected.
|
|
58
58
|
- `Bash(zibby deploy <name> --dedicated-ip disable)` — disable the addon entirely (also stops billing).
|
|
59
59
|
|
|
60
60
|
## Tell the user the IPs
|
|
@@ -67,4 +67,4 @@ Outbound static IPs (allowlist these in the customer's firewall):
|
|
|
67
67
|
|
|
68
68
|
## Don't confuse with the inbound static IPs
|
|
69
69
|
|
|
70
|
-
This is OUTBOUND (
|
|
70
|
+
This is OUTBOUND (agent → external API). There's also an INBOUND static-IP set for `https://logs-stream.zibby.app` (the SSE log endpoint customers tail with `zibby agent logs -t`). That one is unrelated to this addon — see `https://docs.zibby.app/security/ip-allowlist`.
|
|
@@ -1,53 +1,53 @@
|
|
|
1
1
|
<!-- zibby-template-version: 4 -->
|
|
2
|
-
# /zibby-tail — stream live logs from a Zibby
|
|
2
|
+
# /zibby-tail — stream live logs from a Zibby agent
|
|
3
3
|
|
|
4
|
-
You are helping the user tail logs from
|
|
4
|
+
You are helping the user tail logs from an agent execution.
|
|
5
5
|
|
|
6
|
-
`zibby
|
|
6
|
+
`zibby agent logs <jobId> -t` is the live-streaming variant (like `heroku logs --tail` or `docker compose logs -f`). Without `-t`, you get a one-shot fetch.
|
|
7
7
|
|
|
8
8
|
Canonical docs: **https://docs.zibby.app/workflows/logs**
|
|
9
9
|
|
|
10
10
|
## What `<jobId>` accepts
|
|
11
11
|
|
|
12
|
-
- A **
|
|
12
|
+
- A **agent UUID** (`2b1ea07f-...`) → tails ALL currently-active executions of that agent, plus any new ones triggered while the tail is open. Lines are interleaved by arrival time, prefixed with `(taskId)` so concurrent runs are distinguishable.
|
|
13
13
|
- An **execution ID** (`abc-...`) → tails just that single execution. Closes when the execution drains.
|
|
14
14
|
|
|
15
15
|
## Example flow
|
|
16
16
|
|
|
17
17
|
```
|
|
18
|
-
$ zibby
|
|
18
|
+
$ zibby agent trigger 2b1ea07f-3ede-4bfd-a51d-431f0bab008e
|
|
19
19
|
Job ID: 569ef1ee-15c8-4ee7-af30-933c8bec7ea7
|
|
20
20
|
|
|
21
|
-
$ zibby
|
|
22
|
-
Streaming logs for
|
|
21
|
+
$ zibby agent logs 2b1ea07f-3ede-4bfd-a51d-431f0bab008e -t
|
|
22
|
+
Streaming logs for agent 2b1ea07f-...
|
|
23
23
|
Press Ctrl+C to stop.
|
|
24
24
|
|
|
25
25
|
┌─ Execution: 569ef1ee...7ea7 (task: 9e61c690)
|
|
26
26
|
└─ Streaming logs...
|
|
27
27
|
|
|
28
28
|
2026-05-04 06:16:27.621 (9e61c690) zibby v0.1.91
|
|
29
|
-
2026-05-04 06:16:27.997 (9e61c690)
|
|
29
|
+
2026-05-04 06:16:27.997 (9e61c690) Agent: hello-world
|
|
30
30
|
2026-05-04 06:16:33.055 (9e61c690) │ Prompt sent to LLM:
|
|
31
31
|
...
|
|
32
|
-
2026-05-04 06:16:56.389 (9e61c690) ✓
|
|
32
|
+
2026-05-04 06:16:56.389 (9e61c690) ✓ Agent completed
|
|
33
33
|
```
|
|
34
34
|
|
|
35
35
|
## Tail behavior worth knowing
|
|
36
36
|
|
|
37
37
|
- **Auto-switch:** when the current execution drains and a new trigger lands, the tail seamlessly picks it up — no need to re-run the command.
|
|
38
|
-
- **Multi-attach:** if you trigger two
|
|
38
|
+
- **Multi-attach:** if you trigger two agents in parallel, the tail attaches to both. Lines from each are interleaved by timestamp.
|
|
39
39
|
- **Reconnect:** transient network blips reconnect silently. Long quiet windows (3+ min) are kept alive via 5s keepalives.
|
|
40
40
|
|
|
41
41
|
## Steps for this command
|
|
42
42
|
|
|
43
|
-
1. Identify the jobId. If user gives
|
|
43
|
+
1. Identify the jobId. If user gives an agent name (not UUID), look it up via `zibby agent list` and use the UUID.
|
|
44
44
|
2. **Run in the background** — `-t` is a long-running stream. If you call `Bash` without `run_in_background: true` it'll block the chat for minutes:
|
|
45
45
|
```
|
|
46
|
-
Bash({ command: "zibby
|
|
46
|
+
Bash({ command: "zibby agent logs <jobId> -t", run_in_background: true })
|
|
47
47
|
```
|
|
48
48
|
Then use `BashOutput` (or whatever your background-output tool is) to read new lines as they arrive.
|
|
49
49
|
3. If the user wants a **one-shot snapshot** (no follow), drop the `-t` flag and call Bash normally:
|
|
50
50
|
```
|
|
51
|
-
Bash({ command: "zibby
|
|
51
|
+
Bash({ command: "zibby agent logs <jobId>" })
|
|
52
52
|
```
|
|
53
53
|
4. To stop the live tail: kill the background bash task. The CLI exits cleanly with `Stopped streaming.`
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
<!-- zibby-template-version: 4 -->
|
|
2
|
-
# /zibby-trigger — run a deployed Zibby
|
|
2
|
+
# /zibby-trigger — run a deployed Zibby agent
|
|
3
3
|
|
|
4
|
-
You are helping the user trigger a deployed
|
|
4
|
+
You are helping the user trigger a deployed agent execution.
|
|
5
5
|
|
|
6
|
-
A trigger creates a new ECS Fargate task that loads the
|
|
6
|
+
A trigger creates a new ECS Fargate task that loads the agent's bundle, runs the graph, and writes status + logs as it goes.
|
|
7
7
|
|
|
8
8
|
Canonical docs: **https://docs.zibby.app/cloud/triggering**
|
|
9
9
|
|
|
10
10
|
## Steps
|
|
11
11
|
|
|
12
|
-
1. **Get the
|
|
12
|
+
1. **Get the agent UUID.** The user should provide it; if not, run `zibby agent list` to discover it. UUIDs are stable across deploys (the same agent always has the same UUID; only the bundle version changes).
|
|
13
13
|
|
|
14
|
-
2. **Construct the input.**
|
|
14
|
+
2. **Construct the input.** Agents take a JSON input that nodes can read via `ctx.input`. Ask the user what input the agent expects (or read `workflow.json`'s `inputSchema` if present).
|
|
15
15
|
|
|
16
16
|
3. **Run the trigger.** Three ways to pass input — they merge with this **precedence (highest → lowest)**:
|
|
17
17
|
1. `-p key=value` (repeatable) — wins over everything; great for shell-friendly tweaks on top of a base payload
|
|
@@ -19,21 +19,21 @@ Canonical docs: **https://docs.zibby.app/cloud/triggering**
|
|
|
19
19
|
3. `--input-file path.json` — full JSON/YAML payload from a file (lowest precedence; `-p` and `--input` override individual keys)
|
|
20
20
|
|
|
21
21
|
```
|
|
22
|
-
zibby
|
|
23
|
-
zibby
|
|
24
|
-
zibby
|
|
22
|
+
zibby agent trigger <uuid> --input '{"key":"value"}'
|
|
23
|
+
zibby agent trigger <uuid> -p ticket=ENG-1234 -p priority=high
|
|
24
|
+
zibby agent trigger <uuid> --input-file payload.json -p priority=urgent # mix
|
|
25
25
|
```
|
|
26
26
|
|
|
27
|
-
Same flag surface as `zibby
|
|
27
|
+
Same flag surface as `zibby agent run` (local) — flip the verb and the same call shape goes from local to remote.
|
|
28
28
|
|
|
29
29
|
4. **Tail the logs immediately:**
|
|
30
30
|
```
|
|
31
|
-
zibby
|
|
31
|
+
zibby agent logs <uuid> -t
|
|
32
32
|
```
|
|
33
|
-
This streams live output. The tail auto-attaches to all currently-running executions of the
|
|
33
|
+
This streams live output. The tail auto-attaches to all currently-running executions of the agent (docker-compose-style), so back-to-back triggers interleave naturally.
|
|
34
34
|
|
|
35
|
-
5. **Watch for completion.**
|
|
36
|
-
- `✓
|
|
35
|
+
5. **Watch for completion.** Agent runs typically end with one of:
|
|
36
|
+
- `✓ Agent completed` — success, status `completed`
|
|
37
37
|
- `Error: Node 'X' failed` — a node threw; status `failed`
|
|
38
38
|
- silent timeout — task killed by ECS; status stays `running` then becomes a zombie. Trigger again.
|
|
39
39
|
|
|
@@ -41,7 +41,7 @@ Canonical docs: **https://docs.zibby.app/cloud/triggering**
|
|
|
41
41
|
|
|
42
42
|
Use `--idempotency-key <key>` to prevent duplicate runs from a retry-prone caller:
|
|
43
43
|
```
|
|
44
|
-
zibby
|
|
44
|
+
zibby agent trigger <uuid> --input '{}' --idempotency-key job-2026-05-04-001
|
|
45
45
|
```
|
|
46
46
|
Same key + same input within ~24h = same execution returned (no new run).
|
|
47
47
|
|
|
@@ -50,7 +50,7 @@ Same key + same input within ~24h = same execution returned (no new run).
|
|
|
50
50
|
There's no built-in batch trigger — script it from your shell:
|
|
51
51
|
```
|
|
52
52
|
for ticket in ENG-1 ENG-2 ENG-3; do
|
|
53
|
-
zibby
|
|
53
|
+
zibby agent trigger <uuid> -p ticket=$ticket
|
|
54
54
|
done
|
|
55
|
-
zibby
|
|
55
|
+
zibby agent logs <uuid> -t # tail will show all 3 interleaved
|
|
56
56
|
```
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<!-- zibby-template-version: 4 -->
|
|
2
2
|
---
|
|
3
|
-
description: Help the user build, test, and deploy Zibby
|
|
3
|
+
description: Help the user build, test, and deploy Zibby agents + browser tests
|
|
4
4
|
globs:
|
|
5
5
|
- "**/.zibby/workflows/**"
|
|
6
6
|
- ".zibby.config.mjs"
|
|
@@ -11,11 +11,11 @@ globs:
|
|
|
11
11
|
alwaysApply: false
|
|
12
12
|
---
|
|
13
13
|
|
|
14
|
-
# Zibby —
|
|
14
|
+
# Zibby — agents + tests
|
|
15
15
|
|
|
16
16
|
This project uses **Zibby**. Two surfaces share `.zibby.config.mjs` at the project root.
|
|
17
17
|
|
|
18
|
-
##
|
|
18
|
+
## Agents
|
|
19
19
|
|
|
20
20
|
A graph of AI-agent-driven steps that runs inside an ECS Fargate sandbox.
|
|
21
21
|
|
|
@@ -32,14 +32,14 @@ Each node exports `{ id, description, async run(ctx) }`. `ctx` provides `input`,
|
|
|
32
32
|
### Common dev loop
|
|
33
33
|
|
|
34
34
|
```
|
|
35
|
-
zibby
|
|
36
|
-
zibby
|
|
37
|
-
zibby
|
|
38
|
-
zibby
|
|
39
|
-
zibby
|
|
40
|
-
zibby
|
|
41
|
-
zibby
|
|
42
|
-
zibby
|
|
35
|
+
zibby agent new <name> # scaffold
|
|
36
|
+
zibby agent run <name> # one-shot local run (preferred for the dev loop)
|
|
37
|
+
zibby agent deploy <name> # build + push to cloud
|
|
38
|
+
zibby agent trigger <uuid> # invoke the cloud agent
|
|
39
|
+
zibby agent logs <uuid> -t # tail live logs (docker-compose-style for concurrent runs)
|
|
40
|
+
zibby agent list # local + cloud
|
|
41
|
+
zibby agent download <uuid> # pull cloud source back to .zibby/workflows/
|
|
42
|
+
zibby agent delete <uuid> # remove a deployed agent
|
|
43
43
|
```
|
|
44
44
|
|
|
45
45
|
`run` (one-shot) vs `start` (long-lived dev server, port 3848 — Studio integration). For plain CLI iteration always use `run`.
|
|
@@ -51,20 +51,20 @@ zibby workflow delete <uuid> # remove a deployed workflow
|
|
|
51
51
|
1. Create `<workflow>/nodes/<name>.mjs` (mirror existing `example.mjs` pattern)
|
|
52
52
|
2. Register in `<workflow>/nodes/index.mjs`
|
|
53
53
|
3. Wire into `<workflow>/graph.mjs` (add to `nodes` array and connect via edges)
|
|
54
|
-
4. `zibby
|
|
54
|
+
4. `zibby agent run <name>` to test locally; `zibby agent deploy` to push
|
|
55
55
|
|
|
56
|
-
### Per-
|
|
56
|
+
### Per-agent env vars
|
|
57
57
|
|
|
58
|
-
Each deployed
|
|
58
|
+
Each deployed agent has its own encrypted env-var bag (KMS-backed); agent env wins over project secrets on conflict.
|
|
59
59
|
|
|
60
60
|
```
|
|
61
|
-
zibby
|
|
62
|
-
zibby
|
|
63
|
-
zibby
|
|
64
|
-
zibby
|
|
61
|
+
zibby agent env list <uuid> # show key names (values never returned)
|
|
62
|
+
zibby agent env set <uuid> ANTHROPIC_API_KEY=sk-… # add or rotate one
|
|
63
|
+
zibby agent env unset <uuid> OLD_KEY # remove one
|
|
64
|
+
zibby agent env push <uuid> --file .env [--file .env.prod] # bulk replace
|
|
65
65
|
```
|
|
66
66
|
|
|
67
|
-
Fast path on first deploy: `zibby
|
|
67
|
+
Fast path on first deploy: `zibby agent deploy my-pipeline --env .env` deploys, then auto-pushes the .env into the new UUID.
|
|
68
68
|
|
|
69
69
|
## Tests (`zibby test`)
|
|
70
70
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"templateVersion": 4,
|
|
3
|
-
"description": "Canonical agent helpers for Zibby
|
|
3
|
+
"description": "Canonical agent helpers for Zibby agents. Each shipped file carries '<!-- zibby-template-version: N -->' for idempotent upgrades. Bumped on breaking content changes.",
|
|
4
4
|
"agents": {
|
|
5
5
|
"claude": {
|
|
6
6
|
"files": [
|