@ponderbot/cli 0.1.0-alpha.21
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 +112 -0
- package/dist/main.d.ts +1 -0
- package/dist/main.js +2533 -0
- package/dist/main.js.map +1 -0
- package/package.json +50 -0
- package/templates/ponderbot/config.ts +19 -0
package/README.md
ADDED
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
# @ponderbot/cli
|
|
2
|
+
|
|
3
|
+
Ponderbot manifest, run, and control-plane CLI.
|
|
4
|
+
|
|
5
|
+
## Stack Lifecycle
|
|
6
|
+
|
|
7
|
+
Start and stop the local Docker compose stack from the repo root:
|
|
8
|
+
|
|
9
|
+
```sh
|
|
10
|
+
ponder start
|
|
11
|
+
ponder stop
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
`ponder start --build` runs the core compose target with image builds
|
|
15
|
+
enabled. If `PONDERBOT_HOME` is unset, the CLI creates and forwards
|
|
16
|
+
`<repoRoot>/.ponderbot`; an operator-provided value is preserved. If
|
|
17
|
+
`PONDERBOT_BOOTSTRAP_TOKEN` is unset, `ponder start` creates and reuses a
|
|
18
|
+
development bootstrap token under `PONDERBOT_HOME`, passes it to the runtime, and
|
|
19
|
+
prints the `PONDERBOT_URL`, `PONDERBOT_SPACE_ID`, and `PONDERBOT_TOKEN` block
|
|
20
|
+
that `createClient()` reads.
|
|
21
|
+
|
|
22
|
+
For runtime development, use the foreground repo-root script:
|
|
23
|
+
|
|
24
|
+
```sh
|
|
25
|
+
bun dev
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
It runs the full local dev loop through Turbo: an initial SDK build, SDK and CLI
|
|
29
|
+
`tsdown --watch` tasks, `ponder start --dev --build` for the runtime stack, and
|
|
30
|
+
`docker attach ponderbot-runtime` for the interactive IEx console. The runtime
|
|
31
|
+
command layers `docker/compose/targets/dev.yml` on the core compose stack, uses
|
|
32
|
+
Docker Compose Watch to sync `runtime/` into the container filesystem, and runs
|
|
33
|
+
`mix deps.get && exec iex -S mix phx.server` with Phoenix code reloading.
|
|
34
|
+
Runtime Elixir edits are recompiled on the next HTTP request. Background-only
|
|
35
|
+
changes reload when a later request hits the endpoint. Changes to `mix.exs` or
|
|
36
|
+
`mix.lock` sync, restart the runtime, and refresh dependencies before booting.
|
|
37
|
+
|
|
38
|
+
For the same dev stack without the Turbo watchers:
|
|
39
|
+
|
|
40
|
+
```sh
|
|
41
|
+
ponder start --dev
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
`dev.yml` is an overlay, not a target; use `--dev` rather than
|
|
45
|
+
`--target dev`.
|
|
46
|
+
|
|
47
|
+
From the repo root, `bun stop` delegates to `ponder stop`.
|
|
48
|
+
|
|
49
|
+
## Spaces
|
|
50
|
+
|
|
51
|
+
`ponder start` creates the default development space automatically. To choose a
|
|
52
|
+
different local space for the printed env block, pass `--space`:
|
|
53
|
+
|
|
54
|
+
```sh
|
|
55
|
+
ponder start --space dev
|
|
56
|
+
ponder manifest dev
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
`ponder manifest dev` checks the configured dev space first. If it is missing, it prints
|
|
60
|
+
the exact `ponder spaces create <id>` command and exits without deploying.
|
|
61
|
+
|
|
62
|
+
Manifest commands:
|
|
63
|
+
|
|
64
|
+
```sh
|
|
65
|
+
ponder manifest validate
|
|
66
|
+
ponder manifest deploy
|
|
67
|
+
ponder manifest dev
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
`ponder manifest deploy --env staging` stores an immutable Project Release under
|
|
71
|
+
the Project name and environment. A deployment environment needs a Runtime URL
|
|
72
|
+
and token, but it does not need a Space. `ponder manifest dev` still needs a
|
|
73
|
+
development Space because it runs definitions directly.
|
|
74
|
+
|
|
75
|
+
When `project.worker.build` does not set `dockerfile`, the deploy command
|
|
76
|
+
bundles the Ponderbot definition graph and Worker Entry into a separate artifact.
|
|
77
|
+
It copies only the compiled modules and required Agent and Skill Markdown files.
|
|
78
|
+
It does not copy `.env` files, application source, package-manager lockfiles, or
|
|
79
|
+
the project `node_modules` directory. It does not use the project package
|
|
80
|
+
manager. Docker Buildx builds and pushes the image with a registry cache, and
|
|
81
|
+
the Release stores the registry manifest digest from BuildKit metadata.
|
|
82
|
+
|
|
83
|
+
The project package manager does not affect the generated Worker Image. The CLI
|
|
84
|
+
bundles normal JavaScript dependencies. It detects native Node packages and puts
|
|
85
|
+
their exact names and versions in the artifact package file. The image uses its
|
|
86
|
+
own npm dependency stage only when these external packages exist. Set
|
|
87
|
+
`worker.build.external` to a list of exact npm package names when a package must
|
|
88
|
+
remain external because it loads code or assets dynamically. The project still
|
|
89
|
+
uses `@ponderbot/sdk` for authoring and local loading. The CLI bundles the SDK
|
|
90
|
+
Worker Entry into the artifact. A project can set `worker.build.dockerfile` when
|
|
91
|
+
it needs a custom system image or install process.
|
|
92
|
+
|
|
93
|
+
Useful space commands:
|
|
94
|
+
|
|
95
|
+
```sh
|
|
96
|
+
ponder spaces list
|
|
97
|
+
ponder spaces create customer-acme --name "Acme"
|
|
98
|
+
ponder spaces show customer-acme
|
|
99
|
+
ponder spaces budget customer-acme
|
|
100
|
+
ponder spaces budget customer-acme --set budget.json
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
Use `--json` before the command for scripting, for example:
|
|
104
|
+
|
|
105
|
+
```sh
|
|
106
|
+
ponder --json spaces show customer-acme
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
List and create require a service token with `spaces:read` or `spaces:write`
|
|
110
|
+
granted on `service_auth_space: "*"`. Space-scoped tokens can read or update the
|
|
111
|
+
space they are granted, but cannot list or create spaces. When the runtime
|
|
112
|
+
returns 403 for a spaces command, the CLI prints the missing grant guidance.
|
package/dist/main.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { };
|