gravity-cli 0.5.2__tar.gz → 0.5.3__tar.gz
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.
- {gravity_cli-0.5.2 → gravity_cli-0.5.3}/AGENT_STANDARD.md +30 -1
- gravity_cli-0.5.2/README.md → gravity_cli-0.5.3/PKG-INFO +42 -0
- gravity_cli-0.5.2/PKG-INFO → gravity_cli-0.5.3/README.md +25 -17
- {gravity_cli-0.5.2 → gravity_cli-0.5.3}/packages/gravity-schema/gravity_schema/catalog_imported.yaml +478 -0
- {gravity_cli-0.5.2 → gravity_cli-0.5.3}/packages/gravity-schema/pyproject.toml +1 -1
- {gravity_cli-0.5.2 → gravity_cli-0.5.3}/pyproject.toml +2 -2
- {gravity_cli-0.5.2 → gravity_cli-0.5.3}/src/gravity_cli/BUILDER_GUIDE.md +2 -1
- {gravity_cli-0.5.2 → gravity_cli-0.5.3}/src/gravity_cli/_runner_script.py +1 -0
- {gravity_cli-0.5.2 → gravity_cli-0.5.3}/src/gravity_cli/cli.py +2 -0
- gravity_cli-0.5.3/src/gravity_cli/commands/dev.py +40 -0
- {gravity_cli-0.5.2 → gravity_cli-0.5.3}/src/gravity_cli/commands/run.py +157 -63
- gravity_cli-0.5.3/src/gravity_cli/dev.py +309 -0
- gravity_cli-0.5.3/src/gravity_cli/dev_page/index.html +406 -0
- gravity_cli-0.5.3/src/gravity_cli/localrun.py +228 -0
- gravity_cli-0.5.3/tests/test_dev.py +267 -0
- gravity_cli-0.5.3/tests/test_localrun.py +83 -0
- {gravity_cli-0.5.2 → gravity_cli-0.5.3}/tests/test_run.py +24 -0
- {gravity_cli-0.5.2 → gravity_cli-0.5.3}/uv.lock +6 -6
- {gravity_cli-0.5.2 → gravity_cli-0.5.3}/.env.example +0 -0
- {gravity_cli-0.5.2 → gravity_cli-0.5.3}/.github/workflows/ci.yml +0 -0
- {gravity_cli-0.5.2 → gravity_cli-0.5.3}/.github/workflows/release.yml +0 -0
- {gravity_cli-0.5.2 → gravity_cli-0.5.3}/.gitignore +0 -0
- {gravity_cli-0.5.2 → gravity_cli-0.5.3}/LICENSE +0 -0
- {gravity_cli-0.5.2 → gravity_cli-0.5.3}/NOTICE +0 -0
- {gravity_cli-0.5.2 → gravity_cli-0.5.3}/RELEASING.md +0 -0
- {gravity_cli-0.5.2 → gravity_cli-0.5.3}/TEMPLATES.md +0 -0
- {gravity_cli-0.5.2 → gravity_cli-0.5.3}/packages/gravity-schema/LICENSE +0 -0
- {gravity_cli-0.5.2 → gravity_cli-0.5.3}/packages/gravity-schema/NOTICE +0 -0
- {gravity_cli-0.5.2 → gravity_cli-0.5.3}/packages/gravity-schema/README.md +0 -0
- {gravity_cli-0.5.2 → gravity_cli-0.5.3}/packages/gravity-schema/gravity_schema/__init__.py +0 -0
- {gravity_cli-0.5.2 → gravity_cli-0.5.3}/packages/gravity-schema/gravity_schema/__main__.py +0 -0
- {gravity_cli-0.5.2 → gravity_cli-0.5.3}/packages/gravity-schema/gravity_schema/catalog.py +0 -0
- {gravity_cli-0.5.2 → gravity_cli-0.5.3}/packages/gravity-schema/gravity_schema/catalog.yaml +0 -0
- {gravity_cli-0.5.2 → gravity_cli-0.5.3}/packages/gravity-schema/gravity_schema/contract.py +0 -0
- {gravity_cli-0.5.2 → gravity_cli-0.5.3}/packages/gravity-schema/gravity_schema/cron.py +0 -0
- {gravity_cli-0.5.2 → gravity_cli-0.5.3}/packages/gravity-schema/gravity_schema/errors.py +0 -0
- {gravity_cli-0.5.2 → gravity_cli-0.5.3}/packages/gravity-schema/gravity_schema/export.py +0 -0
- {gravity_cli-0.5.2 → gravity_cli-0.5.3}/packages/gravity-schema/gravity_schema/gen_catalog.py +0 -0
- {gravity_cli-0.5.2 → gravity_cli-0.5.3}/packages/gravity-schema/gravity_schema/manifest.py +0 -0
- {gravity_cli-0.5.2 → gravity_cli-0.5.3}/packages/gravity-schema/gravity_schema/source_scan.py +0 -0
- {gravity_cli-0.5.2 → gravity_cli-0.5.3}/packages/gravity-schema/gravity_schema/validation.py +0 -0
- {gravity_cli-0.5.2 → gravity_cli-0.5.3}/packages/gravity-schema/schema/manifest.schema.json +0 -0
- {gravity_cli-0.5.2 → gravity_cli-0.5.3}/packages/gravity-schema/tests/conftest.py +0 -0
- {gravity_cli-0.5.2 → gravity_cli-0.5.3}/packages/gravity-schema/tests/test_catalog_parity.py +0 -0
- {gravity_cli-0.5.2 → gravity_cli-0.5.3}/packages/gravity-schema/tests/test_cron.py +0 -0
- {gravity_cli-0.5.2 → gravity_cli-0.5.3}/packages/gravity-schema/tests/test_errors.py +0 -0
- {gravity_cli-0.5.2 → gravity_cli-0.5.3}/packages/gravity-schema/tests/test_json_schema.py +0 -0
- {gravity_cli-0.5.2 → gravity_cli-0.5.3}/packages/gravity-schema/tests/test_kind_outputs.py +0 -0
- {gravity_cli-0.5.2 → gravity_cli-0.5.3}/packages/gravity-schema/tests/test_manifest.py +0 -0
- {gravity_cli-0.5.2 → gravity_cli-0.5.3}/packages/gravity-schema/tests/test_slots.py +0 -0
- {gravity_cli-0.5.2 → gravity_cli-0.5.3}/packages/gravity-schema/tests/test_source_scan.py +0 -0
- {gravity_cli-0.5.2 → gravity_cli-0.5.3}/packages/gravity-schema/tests/test_validation.py +0 -0
- {gravity_cli-0.5.2 → gravity_cli-0.5.3}/src/gravity_cli/__init__.py +0 -0
- {gravity_cli-0.5.2 → gravity_cli-0.5.3}/src/gravity_cli/__main__.py +0 -0
- {gravity_cli-0.5.2 → gravity_cli-0.5.3}/src/gravity_cli/api.py +0 -0
- {gravity_cli-0.5.2 → gravity_cli-0.5.3}/src/gravity_cli/commands/__init__.py +0 -0
- {gravity_cli-0.5.2 → gravity_cli-0.5.3}/src/gravity_cli/commands/adapt.py +0 -0
- {gravity_cli-0.5.2 → gravity_cli-0.5.3}/src/gravity_cli/commands/build.py +0 -0
- {gravity_cli-0.5.2 → gravity_cli-0.5.3}/src/gravity_cli/commands/connect.py +0 -0
- {gravity_cli-0.5.2 → gravity_cli-0.5.3}/src/gravity_cli/commands/guide.py +0 -0
- {gravity_cli-0.5.2 → gravity_cli-0.5.3}/src/gravity_cli/commands/init.py +0 -0
- {gravity_cli-0.5.2 → gravity_cli-0.5.3}/src/gravity_cli/commands/login.py +0 -0
- {gravity_cli-0.5.2 → gravity_cli-0.5.3}/src/gravity_cli/commands/push.py +0 -0
- {gravity_cli-0.5.2 → gravity_cli-0.5.3}/src/gravity_cli/commands/runs.py +0 -0
- {gravity_cli-0.5.2 → gravity_cli-0.5.3}/src/gravity_cli/commands/schedule.py +0 -0
- {gravity_cli-0.5.2 → gravity_cli-0.5.3}/src/gravity_cli/commands/tools.py +0 -0
- {gravity_cli-0.5.2 → gravity_cli-0.5.3}/src/gravity_cli/commands/validate.py +0 -0
- {gravity_cli-0.5.2 → gravity_cli-0.5.3}/src/gravity_cli/config.py +0 -0
- {gravity_cli-0.5.2 → gravity_cli-0.5.3}/src/gravity_cli/manifest.py +0 -0
- {gravity_cli-0.5.2 → gravity_cli-0.5.3}/src/gravity_cli/project.py +0 -0
- {gravity_cli-0.5.2 → gravity_cli-0.5.3}/src/gravity_cli/templates/chat/.gitignore +0 -0
- {gravity_cli-0.5.2 → gravity_cli-0.5.3}/src/gravity_cli/templates/chat/manifest.yaml +0 -0
- {gravity_cli-0.5.2 → gravity_cli-0.5.3}/src/gravity_cli/templates/chat/requirements.txt +0 -0
- {gravity_cli-0.5.2 → gravity_cli-0.5.3}/src/gravity_cli/templates/chat/src/agent.py +0 -0
- {gravity_cli-0.5.2 → gravity_cli-0.5.3}/src/gravity_cli/templates/deepagent/.gitignore +0 -0
- {gravity_cli-0.5.2 → gravity_cli-0.5.3}/src/gravity_cli/templates/deepagent/manifest.yaml +0 -0
- {gravity_cli-0.5.2 → gravity_cli-0.5.3}/src/gravity_cli/templates/deepagent/requirements.txt +0 -0
- {gravity_cli-0.5.2 → gravity_cli-0.5.3}/src/gravity_cli/templates/deepagent/src/agent.py +0 -0
- {gravity_cli-0.5.2 → gravity_cli-0.5.3}/src/gravity_cli/templates/minimal/.gitignore +0 -0
- {gravity_cli-0.5.2 → gravity_cli-0.5.3}/src/gravity_cli/templates/minimal/manifest.yaml +0 -0
- {gravity_cli-0.5.2 → gravity_cli-0.5.3}/src/gravity_cli/templates/minimal/requirements.txt +0 -0
- {gravity_cli-0.5.2 → gravity_cli-0.5.3}/src/gravity_cli/templates/minimal/src/agent.py +0 -0
- {gravity_cli-0.5.2 → gravity_cli-0.5.3}/src/gravity_cli/templates/structured/.gitignore +0 -0
- {gravity_cli-0.5.2 → gravity_cli-0.5.3}/src/gravity_cli/templates/structured/manifest.yaml +0 -0
- {gravity_cli-0.5.2 → gravity_cli-0.5.3}/src/gravity_cli/templates/structured/requirements.txt +0 -0
- {gravity_cli-0.5.2 → gravity_cli-0.5.3}/src/gravity_cli/templates/structured/src/agent.py +0 -0
- {gravity_cli-0.5.2 → gravity_cli-0.5.3}/src/gravity_cli/templates/structured/src/gateway.py +0 -0
- {gravity_cli-0.5.2 → gravity_cli-0.5.3}/src/gravity_cli/templates/structured/src/nodes/agent.py +0 -0
- {gravity_cli-0.5.2 → gravity_cli-0.5.3}/src/gravity_cli/templates/structured/src/prompts.py +0 -0
- {gravity_cli-0.5.2 → gravity_cli-0.5.3}/src/gravity_cli/templates/structured/src/state.py +0 -0
- {gravity_cli-0.5.2 → gravity_cli-0.5.3}/src/gravity_cli/timeline.py +0 -0
- {gravity_cli-0.5.2 → gravity_cli-0.5.3}/src/gravity_cli/ui.py +0 -0
- {gravity_cli-0.5.2 → gravity_cli-0.5.3}/starter/manifest.yaml +0 -0
- {gravity_cli-0.5.2 → gravity_cli-0.5.3}/starter/requirements.txt +0 -0
- {gravity_cli-0.5.2 → gravity_cli-0.5.3}/starter/src/agent.py +0 -0
- {gravity_cli-0.5.2 → gravity_cli-0.5.3}/starter/src/summary.py +0 -0
- {gravity_cli-0.5.2 → gravity_cli-0.5.3}/starter/tests/test_summary.py +0 -0
- {gravity_cli-0.5.2 → gravity_cli-0.5.3}/tests/conftest.py +0 -0
- {gravity_cli-0.5.2 → gravity_cli-0.5.3}/tests/test_adapt.py +0 -0
- {gravity_cli-0.5.2 → gravity_cli-0.5.3}/tests/test_api.py +0 -0
- {gravity_cli-0.5.2 → gravity_cli-0.5.3}/tests/test_build_push.py +0 -0
- {gravity_cli-0.5.2 → gravity_cli-0.5.3}/tests/test_connect.py +0 -0
- {gravity_cli-0.5.2 → gravity_cli-0.5.3}/tests/test_gateway_token.py +0 -0
- {gravity_cli-0.5.2 → gravity_cli-0.5.3}/tests/test_manifest_integration.py +0 -0
- {gravity_cli-0.5.2 → gravity_cli-0.5.3}/tests/test_session.py +0 -0
- {gravity_cli-0.5.2 → gravity_cli-0.5.3}/tests/test_templates.py +0 -0
- {gravity_cli-0.5.2 → gravity_cli-0.5.3}/tests/test_timeline.py +0 -0
- {gravity_cli-0.5.2 → gravity_cli-0.5.3}/tests/test_tools.py +0 -0
- {gravity_cli-0.5.2 → gravity_cli-0.5.3}/tests/test_ui.py +0 -0
- {gravity_cli-0.5.2 → gravity_cli-0.5.3}/tests/test_validate.py +0 -0
- {gravity_cli-0.5.2 → gravity_cli-0.5.3}/tests/test_welcome.py +0 -0
|
@@ -202,6 +202,26 @@ emb = OpenAIEmbeddings(model="voyageai/voyage-4-lite", # or google/gemini-embe
|
|
|
202
202
|
vectors = await emb.aembed_documents(["first text", "second text"])
|
|
203
203
|
```
|
|
204
204
|
|
|
205
|
+
**Images** come from an image model through the same URL and token: no tool to
|
|
206
|
+
declare. Ask for image output; the picture comes back as a data URL, which is
|
|
207
|
+
exactly what the corpus takes (§8):
|
|
208
|
+
|
|
209
|
+
```python
|
|
210
|
+
async with httpx.AsyncClient(timeout=120) as http:
|
|
211
|
+
resp = await http.post(f"{os.environ['GRAVITY_LLM_URL']}/chat/completions",
|
|
212
|
+
headers={"Authorization": f"Bearer {os.environ['GRAVITY_RUN_TOKEN']}"},
|
|
213
|
+
json={"model": "google/gemini-2.5-flash-image", # or openai/gpt-5-image-mini
|
|
214
|
+
"modalities": ["image", "text"],
|
|
215
|
+
"messages": [{"role": "user", "content": "A flat illustration of ..., no text"}]})
|
|
216
|
+
resp.raise_for_status()
|
|
217
|
+
src = resp.json()["choices"][0]["message"]["images"][0]["image_url"]["url"] # data:image/png;base64,...
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
An image is a few MB and the whole state is checkpointed after every step, so
|
|
221
|
+
make pictures in the **last** node (or the one that builds the corpus) and keep
|
|
222
|
+
them out of state until then. Each one is metered and counts toward the run's
|
|
223
|
+
budget like any model call.
|
|
224
|
+
|
|
205
225
|
Those three env vars — `GRAVITY_GATEWAY_URL`, `GRAVITY_LLM_URL`,
|
|
206
226
|
`GRAVITY_RUN_TOKEN` — are the entire Gravity surface, plus the `gravity`
|
|
207
227
|
package for tools on the platform (§8). No `OPENAI_API_KEY`: locally and in
|
|
@@ -228,6 +248,11 @@ undeclared tool is refused locally exactly as it will be when hosted. Your
|
|
|
228
248
|
agent only ever sees the run token. `GRAVITY_GATEWAY_URL` defaults to
|
|
229
249
|
`http://127.0.0.1:8000/mcp` and `GRAVITY_LLM_URL` to the same host's `/v1`.
|
|
230
250
|
|
|
251
|
+
`gravity dev` opens a local dashboard over the same runs: a form from your
|
|
252
|
+
manifest, a live timeline, approvals, the result and a history. A run from
|
|
253
|
+
`gravity run` in the same folder shows up in it, and the other way round (both
|
|
254
|
+
leave their record in `.gravity/runs/`; one run is live per folder).
|
|
255
|
+
|
|
231
256
|
## 7. What's checked where
|
|
232
257
|
|
|
233
258
|
| Stage | Catches |
|
|
@@ -328,6 +353,7 @@ corpus = gravity.Corpus(
|
|
|
328
353
|
facts=[gravity.Fact(label="TAM", value="$18B", source="s1")], # value: text or a number
|
|
329
354
|
table=gravity.Table(columns=["Segment", "Teams"], rows=[["Founders", "1.2M"]]),
|
|
330
355
|
notes="speaker notes / read-out text",
|
|
356
|
+
images=[gravity.Image(src=src, alt="server rack", caption="Option A")], # data URL, see §4
|
|
331
357
|
sections=[gravity.Section(heading="one level of nesting, same shape")],
|
|
332
358
|
)],
|
|
333
359
|
sources=[gravity.Source(id="s1", title="Report", url="https://example.com")],
|
|
@@ -336,7 +362,10 @@ return {**corpus.to_state(), "result": {"title": corpus.title}}
|
|
|
336
362
|
```
|
|
337
363
|
|
|
338
364
|
A plain dict of the same shape works too. The models catch a typo when the
|
|
339
|
-
corpus is built rather than when it's rendered.
|
|
365
|
+
corpus is built rather than when it's rendered. Images (`png`, `jpeg`, `webp`
|
|
366
|
+
or `gif` data URLs, at most 8 MB each and 12 per corpus) are embedded in the
|
|
367
|
+
Word, PowerPoint and Markdown downloads and shown on `/app` and in `gravity
|
|
368
|
+
dev`; an emailed output names each one as `[image: alt — caption]` instead. Set `result` as well: it's
|
|
340
369
|
what the run returns.
|
|
341
370
|
|
|
342
371
|
## 9. Checklist
|
|
@@ -1,3 +1,20 @@
|
|
|
1
|
+
Metadata-Version: 2.5
|
|
2
|
+
Name: gravity-cli
|
|
3
|
+
Version: 0.5.3
|
|
4
|
+
Summary: gravity cli — init, run, and push python agents to the Gravity marketplace
|
|
5
|
+
License-Expression: Apache-2.0
|
|
6
|
+
License-File: LICENSE
|
|
7
|
+
License-File: NOTICE
|
|
8
|
+
Requires-Python: >=3.12
|
|
9
|
+
Requires-Dist: gravity-schema==0.5.3
|
|
10
|
+
Requires-Dist: httpx>=0.27.0
|
|
11
|
+
Requires-Dist: keyring>=25.0.0
|
|
12
|
+
Requires-Dist: python-dotenv>=1.0.0
|
|
13
|
+
Requires-Dist: rich>=13.9.0
|
|
14
|
+
Requires-Dist: typer>=0.15.0
|
|
15
|
+
Requires-Dist: uv>=0.8.0
|
|
16
|
+
Description-Content-Type: text/markdown
|
|
17
|
+
|
|
1
18
|
<h1 align="center">Gravity CLI</h1>
|
|
2
19
|
|
|
3
20
|
<p align="center">
|
|
@@ -179,6 +196,7 @@ Run `gravity help` for this list in the terminal, and add `-h` to any command fo
|
|
|
179
196
|
| **Build an agent** | [`gravity init`](#gravity-init) | Create a new agent from a template |
|
|
180
197
|
| | [`gravity validate`](#gravity-validate) | Check your agent for mistakes before it runs |
|
|
181
198
|
| | [`gravity run`](#gravity-run) | Run your agent locally against real tools |
|
|
199
|
+
| | [`gravity dev`](#gravity-dev) | Open a local dashboard to run and watch your agent |
|
|
182
200
|
| | [`gravity schedule`](#gravity-schedule) | Run your agent on its schedule, locally |
|
|
183
201
|
| | [`gravity adapt`](#gravity-adapt) | Write a new slot adapter with AI, kept only if its tests pass |
|
|
184
202
|
| **Publish** | [`gravity build`](#gravity-build) | Package your agent into `build/agent.zip` |
|
|
@@ -274,6 +292,29 @@ gravity run --reply "make it shorter"
|
|
|
274
292
|
- Requires a gateway token: the one `gravity login` stores, or `GRAVITY_DEV_TOKEN`.
|
|
275
293
|
- A call to a tool in `approvals.required_for` pauses, shows what it would do, and waits for `y` or `n`. With no terminal to ask in, it is rejected.
|
|
276
294
|
- Exits with code 0 when the run finishes and 1 when it fails.
|
|
295
|
+
- Leaves a record in `.gravity/runs/<id>/` (`run.json` and `events.jsonl`), which is what `gravity dev` reads. One run is live per folder at a time, because runs share the folder's memory, store and thread files.
|
|
296
|
+
|
|
297
|
+
### `gravity dev`
|
|
298
|
+
|
|
299
|
+
Open a local dashboard for the agent in this folder: a form built from the manifest's inputs, a live timeline of each step, model call and tool call, approval buttons for held calls, the result, and a history of runs.
|
|
300
|
+
|
|
301
|
+
```
|
|
302
|
+
gravity dev [path] [--port 4747] [--no-open] [--llm-url URL]
|
|
303
|
+
```
|
|
304
|
+
|
|
305
|
+
| Option | Description |
|
|
306
|
+
|---|---|
|
|
307
|
+
| `--port N` | Port to listen on (default 4747). If it is taken, a free one is used and printed. |
|
|
308
|
+
| `--no-open` | Print the address without opening a browser (SSH, WSL, CI) |
|
|
309
|
+
| `--llm-url URL` | Model endpoint to use instead of `GRAVITY_LLM_URL` |
|
|
310
|
+
|
|
311
|
+
- A run from `gravity run` in the same folder shows up in the dashboard live, and a run started in the dashboard is the same run (same engine, same memory, store and thread files), so `gravity run --reply` continues it.
|
|
312
|
+
- It listens on `127.0.0.1` only, behind a random token in the printed address, for as long as the command runs. Ctrl+C stops it and any run it started. Nothing keeps running in the background.
|
|
313
|
+
- Connected accounts: it shows the accounts your tools need and a Connect button for each one that is missing.
|
|
314
|
+
- Approvals: a call held for approval can be decided in the terminal or in the dashboard; whichever answers first wins.
|
|
315
|
+
- Cancel a run from the dashboard only if the dashboard started it; stop a terminal run with Ctrl+C in that terminal.
|
|
316
|
+
- Results show as text. Word, PowerPoint and CSV files are produced by Gravity after you push. A file input is read as text here.
|
|
317
|
+
- Same requirements as `gravity run`: a gateway token from `gravity login`, or `GRAVITY_DEV_TOKEN`.
|
|
277
318
|
|
|
278
319
|
### `gravity schedule`
|
|
279
320
|
|
|
@@ -738,6 +779,7 @@ Real tools act on a connected account. Connect one with `gravity-gateway connect
|
|
|
738
779
|
|
|
739
780
|
## What's new
|
|
740
781
|
|
|
782
|
+
- **0.5.3** `gravity dev` opens a local dashboard for your agent: a form from your manifest, a live timeline, approvals, the result and run history; runs from `gravity run` in the same folder show up in it live, and the other way round. WhatsApp joins the catalog (51 tools; 1,374 across 12 apps). Agents can return generated images: put them in a corpus section's `images` and they land in the Word, PowerPoint and Markdown outputs. The agent standard now shows how to generate images and embeddings through the gateway. `NEEDS_RECONNECT` on the shared test account tells you to ask Gravity, not to connect your own account.
|
|
741
783
|
- **0.5.2** Jira, Confluence and Notion join the catalog: 1,351 tools across 11 apps. `get_store()` works in local runs, kept in `.gravity/store.json`. Renewing an expired sign-in keeps your gateway token, so `gravity run` keeps working after an hour. Commands start faster: the catalog loads in a quarter of the time.
|
|
742
784
|
- **0.5.0** `gravity connect` links your own accounts. `web.search` and `web.fetch` join the catalog. `gravity validate` now refuses a tool that isn't in the catalog, an imported write tool without an approval, and code that names a write tool the manifest doesn't grant. `gravity tools` reads the gateway's list and needs no sign-in. On Windows the session stays in the keychain instead of a file.
|
|
743
785
|
- **0.4.4** Same code as 0.4.3, released from this repository so the GitHub release, the tag and PyPI line up again. Adds `RELEASING.md`.
|
|
@@ -1,20 +1,3 @@
|
|
|
1
|
-
Metadata-Version: 2.5
|
|
2
|
-
Name: gravity-cli
|
|
3
|
-
Version: 0.5.2
|
|
4
|
-
Summary: gravity cli — init, run, and push python agents to the Gravity marketplace
|
|
5
|
-
License-Expression: Apache-2.0
|
|
6
|
-
License-File: LICENSE
|
|
7
|
-
License-File: NOTICE
|
|
8
|
-
Requires-Python: >=3.12
|
|
9
|
-
Requires-Dist: gravity-schema==0.5.2
|
|
10
|
-
Requires-Dist: httpx>=0.27.0
|
|
11
|
-
Requires-Dist: keyring>=25.0.0
|
|
12
|
-
Requires-Dist: python-dotenv>=1.0.0
|
|
13
|
-
Requires-Dist: rich>=13.9.0
|
|
14
|
-
Requires-Dist: typer>=0.15.0
|
|
15
|
-
Requires-Dist: uv>=0.8.0
|
|
16
|
-
Description-Content-Type: text/markdown
|
|
17
|
-
|
|
18
1
|
<h1 align="center">Gravity CLI</h1>
|
|
19
2
|
|
|
20
3
|
<p align="center">
|
|
@@ -196,6 +179,7 @@ Run `gravity help` for this list in the terminal, and add `-h` to any command fo
|
|
|
196
179
|
| **Build an agent** | [`gravity init`](#gravity-init) | Create a new agent from a template |
|
|
197
180
|
| | [`gravity validate`](#gravity-validate) | Check your agent for mistakes before it runs |
|
|
198
181
|
| | [`gravity run`](#gravity-run) | Run your agent locally against real tools |
|
|
182
|
+
| | [`gravity dev`](#gravity-dev) | Open a local dashboard to run and watch your agent |
|
|
199
183
|
| | [`gravity schedule`](#gravity-schedule) | Run your agent on its schedule, locally |
|
|
200
184
|
| | [`gravity adapt`](#gravity-adapt) | Write a new slot adapter with AI, kept only if its tests pass |
|
|
201
185
|
| **Publish** | [`gravity build`](#gravity-build) | Package your agent into `build/agent.zip` |
|
|
@@ -291,6 +275,29 @@ gravity run --reply "make it shorter"
|
|
|
291
275
|
- Requires a gateway token: the one `gravity login` stores, or `GRAVITY_DEV_TOKEN`.
|
|
292
276
|
- A call to a tool in `approvals.required_for` pauses, shows what it would do, and waits for `y` or `n`. With no terminal to ask in, it is rejected.
|
|
293
277
|
- Exits with code 0 when the run finishes and 1 when it fails.
|
|
278
|
+
- Leaves a record in `.gravity/runs/<id>/` (`run.json` and `events.jsonl`), which is what `gravity dev` reads. One run is live per folder at a time, because runs share the folder's memory, store and thread files.
|
|
279
|
+
|
|
280
|
+
### `gravity dev`
|
|
281
|
+
|
|
282
|
+
Open a local dashboard for the agent in this folder: a form built from the manifest's inputs, a live timeline of each step, model call and tool call, approval buttons for held calls, the result, and a history of runs.
|
|
283
|
+
|
|
284
|
+
```
|
|
285
|
+
gravity dev [path] [--port 4747] [--no-open] [--llm-url URL]
|
|
286
|
+
```
|
|
287
|
+
|
|
288
|
+
| Option | Description |
|
|
289
|
+
|---|---|
|
|
290
|
+
| `--port N` | Port to listen on (default 4747). If it is taken, a free one is used and printed. |
|
|
291
|
+
| `--no-open` | Print the address without opening a browser (SSH, WSL, CI) |
|
|
292
|
+
| `--llm-url URL` | Model endpoint to use instead of `GRAVITY_LLM_URL` |
|
|
293
|
+
|
|
294
|
+
- A run from `gravity run` in the same folder shows up in the dashboard live, and a run started in the dashboard is the same run (same engine, same memory, store and thread files), so `gravity run --reply` continues it.
|
|
295
|
+
- It listens on `127.0.0.1` only, behind a random token in the printed address, for as long as the command runs. Ctrl+C stops it and any run it started. Nothing keeps running in the background.
|
|
296
|
+
- Connected accounts: it shows the accounts your tools need and a Connect button for each one that is missing.
|
|
297
|
+
- Approvals: a call held for approval can be decided in the terminal or in the dashboard; whichever answers first wins.
|
|
298
|
+
- Cancel a run from the dashboard only if the dashboard started it; stop a terminal run with Ctrl+C in that terminal.
|
|
299
|
+
- Results show as text. Word, PowerPoint and CSV files are produced by Gravity after you push. A file input is read as text here.
|
|
300
|
+
- Same requirements as `gravity run`: a gateway token from `gravity login`, or `GRAVITY_DEV_TOKEN`.
|
|
294
301
|
|
|
295
302
|
### `gravity schedule`
|
|
296
303
|
|
|
@@ -755,6 +762,7 @@ Real tools act on a connected account. Connect one with `gravity-gateway connect
|
|
|
755
762
|
|
|
756
763
|
## What's new
|
|
757
764
|
|
|
765
|
+
- **0.5.3** `gravity dev` opens a local dashboard for your agent: a form from your manifest, a live timeline, approvals, the result and run history; runs from `gravity run` in the same folder show up in it live, and the other way round. WhatsApp joins the catalog (51 tools; 1,374 across 12 apps). Agents can return generated images: put them in a corpus section's `images` and they land in the Word, PowerPoint and Markdown outputs. The agent standard now shows how to generate images and embeddings through the gateway. `NEEDS_RECONNECT` on the shared test account tells you to ask Gravity, not to connect your own account.
|
|
758
766
|
- **0.5.2** Jira, Confluence and Notion join the catalog: 1,351 tools across 11 apps. `get_store()` works in local runs, kept in `.gravity/store.json`. Renewing an expired sign-in keeps your gateway token, so `gravity run` keeps working after an hour. Commands start faster: the catalog loads in a quarter of the time.
|
|
759
767
|
- **0.5.0** `gravity connect` links your own accounts. `web.search` and `web.fetch` join the catalog. `gravity validate` now refuses a tool that isn't in the catalog, an imported write tool without an approval, and code that names a write tool the manifest doesn't grant. `gravity tools` reads the gateway's list and needs no sign-in. On Windows the session stays in the keychain instead of a file.
|
|
760
768
|
- **0.4.4** Same code as 0.4.3, released from this repository so the GitHub release, the tag and PyPI line up again. Adds `RELEASING.md`.
|
{gravity_cli-0.5.2 → gravity_cli-0.5.3}/packages/gravity-schema/gravity_schema/catalog_imported.yaml
RENAMED
|
@@ -13156,3 +13156,481 @@
|
|
|
13156
13156
|
breadth: generic
|
|
13157
13157
|
guarantee: experimental
|
|
13158
13158
|
side_effect: read
|
|
13159
|
+
- name: whatsapp.configure_conversational_automation
|
|
13160
|
+
slug: WHATSAPP_CONFIGURE_CONVERSATIONAL_AUTOMATION
|
|
13161
|
+
toolkit: whatsapp
|
|
13162
|
+
description: Configure conversational automation settings for a WhatsApp Business phone number. Sets up away messages, greeting messages, custom commands, and ice breaker prompts to automate customer interactions....
|
|
13163
|
+
scopes:
|
|
13164
|
+
- whatsapp_business_messaging
|
|
13165
|
+
- whatsapp_business_management
|
|
13166
|
+
breadth: generic
|
|
13167
|
+
guarantee: experimental
|
|
13168
|
+
side_effect: write
|
|
13169
|
+
- name: whatsapp.create_flow
|
|
13170
|
+
slug: WHATSAPP_CREATE_FLOW
|
|
13171
|
+
toolkit: whatsapp
|
|
13172
|
+
description: Create a new WhatsApp Flow for the WhatsApp Business Account. Use this action when you want to create an interactive flow that can collect user data, guide users through a process, or provide structur...
|
|
13173
|
+
scopes:
|
|
13174
|
+
- whatsapp_business_messaging
|
|
13175
|
+
- whatsapp_business_management
|
|
13176
|
+
breadth: generic
|
|
13177
|
+
guarantee: experimental
|
|
13178
|
+
side_effect: write
|
|
13179
|
+
- name: whatsapp.create_max_price_agreements
|
|
13180
|
+
slug: WHATSAPP_CREATE_MAX_PRICE_AGREEMENTS
|
|
13181
|
+
toolkit: whatsapp
|
|
13182
|
+
description: Create a max price agreement for WhatsApp marketing messages pricing. Max price agreements set a ceiling on the per-conversation price you'll pay for WhatsApp messaging across your WhatsApp Business A...
|
|
13183
|
+
scopes:
|
|
13184
|
+
- business_management
|
|
13185
|
+
- whatsapp_business_management
|
|
13186
|
+
- whatsapp_business_messaging
|
|
13187
|
+
breadth: generic
|
|
13188
|
+
guarantee: experimental
|
|
13189
|
+
side_effect: write
|
|
13190
|
+
- name: whatsapp.create_message_template
|
|
13191
|
+
slug: WHATSAPP_CREATE_MESSAGE_TEMPLATE
|
|
13192
|
+
toolkit: whatsapp
|
|
13193
|
+
description: Create a new message template for the WhatsApp Business Account. Templates must be approved by WhatsApp before they can be used. Templates are required for marketing messages and messages sent outside...
|
|
13194
|
+
scopes:
|
|
13195
|
+
- whatsapp_business_management
|
|
13196
|
+
breadth: generic
|
|
13197
|
+
guarantee: experimental
|
|
13198
|
+
side_effect: write
|
|
13199
|
+
- name: whatsapp.create_qr_code
|
|
13200
|
+
slug: WHATSAPP_CREATE_QR_CODE
|
|
13201
|
+
toolkit: whatsapp
|
|
13202
|
+
description: Create a new QR code with a prefilled message for a WhatsApp Business phone number. Use this action when you need to generate a shareable QR code that customers can scan to start a conversation with y...
|
|
13203
|
+
scopes:
|
|
13204
|
+
- whatsapp_business_management
|
|
13205
|
+
breadth: generic
|
|
13206
|
+
guarantee: experimental
|
|
13207
|
+
side_effect: write
|
|
13208
|
+
- name: whatsapp.create_upload_session
|
|
13209
|
+
slug: WHATSAPP_CREATE_UPLOAD_SESSION
|
|
13210
|
+
toolkit: whatsapp
|
|
13211
|
+
description: Create a resumable upload session for large file uploads to WhatsApp. This action initiates an upload session that allows you to upload large files in chunks. First create a session, then use the sess...
|
|
13212
|
+
scopes:
|
|
13213
|
+
- whatsapp_business_messaging
|
|
13214
|
+
breadth: generic
|
|
13215
|
+
guarantee: experimental
|
|
13216
|
+
side_effect: write
|
|
13217
|
+
- name: whatsapp.get_activities
|
|
13218
|
+
slug: WHATSAPP_GET_ACTIVITIES
|
|
13219
|
+
toolkit: whatsapp
|
|
13220
|
+
description: Retrieve activity history for a WhatsApp Business Account. This action returns a paginated list of activities such as phone number verifications, user additions, and other administrative actions perfo...
|
|
13221
|
+
scopes:
|
|
13222
|
+
- whatsapp_business_management
|
|
13223
|
+
breadth: generic
|
|
13224
|
+
guarantee: experimental
|
|
13225
|
+
side_effect: read
|
|
13226
|
+
- name: whatsapp.get_business_account_details
|
|
13227
|
+
slug: WHATSAPP_GET_BUSINESS_ACCOUNT_DETAILS
|
|
13228
|
+
toolkit: whatsapp
|
|
13229
|
+
description: Retrieve comprehensive details about a WhatsApp Business Account (WABA). Returns configuration, status, and settings information including account review status, business verification status, timezone...
|
|
13230
|
+
scopes:
|
|
13231
|
+
- whatsapp_business_messaging
|
|
13232
|
+
breadth: generic
|
|
13233
|
+
guarantee: experimental
|
|
13234
|
+
side_effect: read
|
|
13235
|
+
- name: whatsapp.get_business_compliance_info
|
|
13236
|
+
slug: WHATSAPP_GET_BUSINESS_COMPLIANCE_INFO
|
|
13237
|
+
toolkit: whatsapp
|
|
13238
|
+
description: Retrieve comprehensive business compliance information for a WhatsApp Business phone number. Returns regulatory and compliance details including entity registration status, grievance officer contact i...
|
|
13239
|
+
scopes:
|
|
13240
|
+
- whatsapp_business_management
|
|
13241
|
+
breadth: generic
|
|
13242
|
+
guarantee: experimental
|
|
13243
|
+
side_effect: read
|
|
13244
|
+
- name: whatsapp.get_business_encryption
|
|
13245
|
+
slug: WHATSAPP_GET_BUSINESS_ENCRYPTION
|
|
13246
|
+
toolkit: whatsapp
|
|
13247
|
+
description: Retrieve the WhatsApp Business public key and its signature verification status. Use this action when you need to obtain the end-to-end encryption public key for a WhatsApp Business phone number. This...
|
|
13248
|
+
scopes:
|
|
13249
|
+
- whatsapp_business_messaging
|
|
13250
|
+
breadth: generic
|
|
13251
|
+
guarantee: experimental
|
|
13252
|
+
side_effect: read
|
|
13253
|
+
- name: whatsapp.get_business_profile
|
|
13254
|
+
slug: WHATSAPP_GET_BUSINESS_PROFILE
|
|
13255
|
+
toolkit: whatsapp
|
|
13256
|
+
description: Get the business profile information for a WhatsApp Business phone number. This includes business details like description, address, website, and contact info.
|
|
13257
|
+
scopes:
|
|
13258
|
+
- whatsapp_business_messaging
|
|
13259
|
+
breadth: generic
|
|
13260
|
+
guarantee: experimental
|
|
13261
|
+
side_effect: read
|
|
13262
|
+
- name: whatsapp.get_client_business_accounts
|
|
13263
|
+
slug: WHATSAPP_GET_CLIENT_BUSINESS_ACCOUNTS
|
|
13264
|
+
toolkit: whatsapp
|
|
13265
|
+
description: Retrieve WhatsApp Business Accounts shared with or managed by a business portfolio. Use this action when you need to get WhatsApp Business Accounts (WABAs) that are client accounts shared with or mana...
|
|
13266
|
+
scopes:
|
|
13267
|
+
- whatsapp_business_management
|
|
13268
|
+
breadth: generic
|
|
13269
|
+
guarantee: experimental
|
|
13270
|
+
side_effect: read
|
|
13271
|
+
- name: whatsapp.get_commerce_settings
|
|
13272
|
+
slug: WHATSAPP_GET_COMMERCE_SETTINGS
|
|
13273
|
+
toolkit: whatsapp
|
|
13274
|
+
description: Get commerce settings for a WhatsApp Business phone number. Retrieves cart and catalog visibility settings for a specific WhatsApp Business phone number. Use this action to check whether shopping cart...
|
|
13275
|
+
scopes:
|
|
13276
|
+
- whatsapp_business_messaging
|
|
13277
|
+
breadth: generic
|
|
13278
|
+
guarantee: experimental
|
|
13279
|
+
side_effect: read
|
|
13280
|
+
- name: whatsapp.get_flow_assets
|
|
13281
|
+
slug: WHATSAPP_GET_FLOW_ASSETS
|
|
13282
|
+
toolkit: whatsapp
|
|
13283
|
+
description: List assets associated with a WhatsApp Flow. Use this action when you need to retrieve the assets (such as flow.json) that are associated with a WhatsApp Flow. The response includes download URLs for...
|
|
13284
|
+
scopes:
|
|
13285
|
+
- whatsapp_business_messaging
|
|
13286
|
+
breadth: generic
|
|
13287
|
+
guarantee: experimental
|
|
13288
|
+
side_effect: read
|
|
13289
|
+
- name: whatsapp.get_join_requests
|
|
13290
|
+
slug: WHATSAPP_GET_JOIN_REQUESTS
|
|
13291
|
+
toolkit: whatsapp
|
|
13292
|
+
description: Get all pending join requests for a WhatsApp group. Use this action when you need to retrieve pending requests from users who want to join a WhatsApp group. This is useful for group administration, mo...
|
|
13293
|
+
scopes:
|
|
13294
|
+
- whatsapp_business_management
|
|
13295
|
+
- whatsapp_business_messaging
|
|
13296
|
+
breadth: generic
|
|
13297
|
+
guarantee: experimental
|
|
13298
|
+
side_effect: read
|
|
13299
|
+
- name: whatsapp.get_media_info
|
|
13300
|
+
slug: WHATSAPP_GET_MEDIA_INFO
|
|
13301
|
+
toolkit: whatsapp
|
|
13302
|
+
description: Get metadata and download URL for uploaded WhatsApp media. Returns media ID, download URL (valid for 5 minutes), MIME type, SHA256 hash, and file size. The download URL can be used to retrieve the act...
|
|
13303
|
+
scopes:
|
|
13304
|
+
- whatsapp_business_messaging
|
|
13305
|
+
breadth: generic
|
|
13306
|
+
guarantee: experimental
|
|
13307
|
+
side_effect: read
|
|
13308
|
+
- name: whatsapp.get_message_history
|
|
13309
|
+
slug: WHATSAPP_GET_MESSAGE_HISTORY
|
|
13310
|
+
toolkit: whatsapp
|
|
13311
|
+
description: Retrieve message history for a WhatsApp Business phone number. Returns a paginated list of messages with their delivery status information, including events like delivery status updates, timestamps, a...
|
|
13312
|
+
scopes:
|
|
13313
|
+
- whatsapp_business_messaging
|
|
13314
|
+
- whatsapp_business_management
|
|
13315
|
+
breadth: generic
|
|
13316
|
+
guarantee: experimental
|
|
13317
|
+
side_effect: read
|
|
13318
|
+
- name: whatsapp.get_message_templates
|
|
13319
|
+
slug: WHATSAPP_GET_MESSAGE_TEMPLATES
|
|
13320
|
+
toolkit: whatsapp
|
|
13321
|
+
description: Get all message templates for the WhatsApp Business Account. Templates are required for sending messages outside the 24-hour window and for marketing/utility messages.
|
|
13322
|
+
scopes:
|
|
13323
|
+
- whatsapp_business_management
|
|
13324
|
+
breadth: generic
|
|
13325
|
+
guarantee: experimental
|
|
13326
|
+
side_effect: read
|
|
13327
|
+
- name: whatsapp.get_owned_business_accounts
|
|
13328
|
+
slug: WHATSAPP_GET_OWNED_BUSINESS_ACCOUNTS
|
|
13329
|
+
toolkit: whatsapp
|
|
13330
|
+
description: Retrieve WhatsApp Business Accounts owned by a business portfolio. Use this action when you need to get all WhatsApp Business Accounts (WABAs) that are directly owned by a specific business. This diff...
|
|
13331
|
+
scopes:
|
|
13332
|
+
- whatsapp_business_messaging
|
|
13333
|
+
breadth: generic
|
|
13334
|
+
guarantee: experimental
|
|
13335
|
+
side_effect: read
|
|
13336
|
+
- name: whatsapp.get_phone_number
|
|
13337
|
+
slug: WHATSAPP_GET_PHONE_NUMBER
|
|
13338
|
+
toolkit: whatsapp
|
|
13339
|
+
description: Retrieve detailed information about a specific WhatsApp Business phone number. Returns phone number details including verification status, quality rating, display number, verified business name, throu...
|
|
13340
|
+
scopes:
|
|
13341
|
+
- whatsapp_business_management
|
|
13342
|
+
breadth: generic
|
|
13343
|
+
guarantee: experimental
|
|
13344
|
+
side_effect: read
|
|
13345
|
+
- name: whatsapp.get_phone_numbers
|
|
13346
|
+
slug: WHATSAPP_GET_PHONE_NUMBERS
|
|
13347
|
+
toolkit: whatsapp
|
|
13348
|
+
description: Retrieve all phone numbers registered to your WhatsApp Business Account. Returns phone number IDs, display numbers, verification status, quality ratings, and messaging throughput limits. Use the phone...
|
|
13349
|
+
scopes:
|
|
13350
|
+
- whatsapp_business_management
|
|
13351
|
+
breadth: generic
|
|
13352
|
+
guarantee: experimental
|
|
13353
|
+
side_effect: read
|
|
13354
|
+
- name: whatsapp.get_schedules
|
|
13355
|
+
slug: WHATSAPP_GET_SCHEDULES
|
|
13356
|
+
toolkit: whatsapp
|
|
13357
|
+
description: Retrieve campaign schedules associated with a WhatsApp Business Account. Use this action when you need to list all scheduled campaigns for a WABA, including their status, timing, and recurrence patter...
|
|
13358
|
+
scopes:
|
|
13359
|
+
- whatsapp_business_management
|
|
13360
|
+
breadth: generic
|
|
13361
|
+
guarantee: experimental
|
|
13362
|
+
side_effect: read
|
|
13363
|
+
- name: whatsapp.get_settings
|
|
13364
|
+
slug: WHATSAPP_GET_SETTINGS
|
|
13365
|
+
toolkit: whatsapp
|
|
13366
|
+
description: Get Cloud API settings for a WhatsApp Business phone number. Retrieves calling, storage, and payload encryption settings for a specific WhatsApp Business phone number. This includes information about...
|
|
13367
|
+
scopes:
|
|
13368
|
+
- whatsapp_business_management
|
|
13369
|
+
- whatsapp_business_messaging
|
|
13370
|
+
breadth: generic
|
|
13371
|
+
guarantee: experimental
|
|
13372
|
+
side_effect: read
|
|
13373
|
+
- name: whatsapp.get_subscribed_apps
|
|
13374
|
+
slug: WHATSAPP_GET_SUBSCRIBED_APPS
|
|
13375
|
+
toolkit: whatsapp
|
|
13376
|
+
description: Get all applications currently subscribed to webhooks for a WhatsApp Business Account. Use this action when you need to retrieve the list of third-party applications or integrations that are subscribe...
|
|
13377
|
+
scopes:
|
|
13378
|
+
- whatsapp_business_management
|
|
13379
|
+
- whatsapp_business_messaging
|
|
13380
|
+
breadth: generic
|
|
13381
|
+
guarantee: experimental
|
|
13382
|
+
side_effect: read
|
|
13383
|
+
- name: whatsapp.get_template_library
|
|
13384
|
+
slug: WHATSAPP_GET_TEMPLATE_LIBRARY
|
|
13385
|
+
toolkit: whatsapp
|
|
13386
|
+
description: Browse the pre-built message template library for WhatsApp Business Account. This retrieves a list of available templates that can be used for messaging. Use when you need to discover available messag...
|
|
13387
|
+
scopes:
|
|
13388
|
+
- whatsapp_business_messaging
|
|
13389
|
+
- whatsapp_business_management
|
|
13390
|
+
breadth: generic
|
|
13391
|
+
guarantee: experimental
|
|
13392
|
+
side_effect: read
|
|
13393
|
+
- name: whatsapp.get_template_status
|
|
13394
|
+
slug: WHATSAPP_GET_TEMPLATE_STATUS
|
|
13395
|
+
toolkit: whatsapp
|
|
13396
|
+
description: Get the status and details of a specific message template. This is useful for checking if a template has been approved, rejected, or is still pending review.
|
|
13397
|
+
scopes:
|
|
13398
|
+
- whatsapp_business_management
|
|
13399
|
+
breadth: generic
|
|
13400
|
+
guarantee: experimental
|
|
13401
|
+
side_effect: read
|
|
13402
|
+
- name: whatsapp.list_flows
|
|
13403
|
+
slug: WHATSAPP_LIST_FLOWS
|
|
13404
|
+
toolkit: whatsapp
|
|
13405
|
+
description: List all WhatsApp Flows associated with the WhatsApp Business Account. Returns flow details including name, status, categories, and any validation errors. Use when you need to retrieve all available f...
|
|
13406
|
+
scopes:
|
|
13407
|
+
- whatsapp_business_management
|
|
13408
|
+
breadth: generic
|
|
13409
|
+
guarantee: experimental
|
|
13410
|
+
side_effect: read
|
|
13411
|
+
- name: whatsapp.list_groups
|
|
13412
|
+
slug: WHATSAPP_LIST_GROUPS
|
|
13413
|
+
toolkit: whatsapp
|
|
13414
|
+
description: List all WhatsApp groups associated with a business phone number. Use this action when you need to retrieve the list of groups that a business phone number is a member of. This is useful for managing...
|
|
13415
|
+
scopes:
|
|
13416
|
+
- whatsapp_business_management
|
|
13417
|
+
- whatsapp_business_messaging
|
|
13418
|
+
breadth: generic
|
|
13419
|
+
guarantee: experimental
|
|
13420
|
+
side_effect: read
|
|
13421
|
+
- name: whatsapp.list_qr_codes
|
|
13422
|
+
slug: WHATSAPP_LIST_QR_CODES
|
|
13423
|
+
toolkit: whatsapp
|
|
13424
|
+
description: Get a list of all QR codes for a WhatsApp Business phone number. Use this action when you need to retrieve all message QR codes associated with a specific WhatsApp Business phone number. This is usefu...
|
|
13425
|
+
scopes:
|
|
13426
|
+
- whatsapp_business_management
|
|
13427
|
+
breadth: generic
|
|
13428
|
+
guarantee: experimental
|
|
13429
|
+
side_effect: read
|
|
13430
|
+
- name: whatsapp.list_solutions
|
|
13431
|
+
slug: WHATSAPP_LIST_SOLUTIONS
|
|
13432
|
+
toolkit: whatsapp
|
|
13433
|
+
description: Retrieve a paginated list of Multi-Partner Solutions for a WhatsApp Business Account. Use when you need to view all multi-partner solutions (such as SMB solutions) associated with a WABA, including th...
|
|
13434
|
+
scopes:
|
|
13435
|
+
- whatsapp_business_management
|
|
13436
|
+
breadth: generic
|
|
13437
|
+
guarantee: experimental
|
|
13438
|
+
side_effect: read
|
|
13439
|
+
- name: whatsapp.publish_flow
|
|
13440
|
+
slug: WHATSAPP_PUBLISH_FLOW
|
|
13441
|
+
toolkit: whatsapp
|
|
13442
|
+
description: Publish a WhatsApp Flow to make it available for use. Use this action when you have finished designing and testing a WhatsApp Flow and are ready to make it available for users. The flow must be in DRA...
|
|
13443
|
+
scopes:
|
|
13444
|
+
- whatsapp_business_management
|
|
13445
|
+
- whatsapp_business_messaging
|
|
13446
|
+
breadth: generic
|
|
13447
|
+
guarantee: experimental
|
|
13448
|
+
side_effect: write
|
|
13449
|
+
- name: whatsapp.register_phone
|
|
13450
|
+
slug: WHATSAPP_REGISTER_PHONE
|
|
13451
|
+
toolkit: whatsapp
|
|
13452
|
+
description: Register a WhatsApp Business phone number for use with WhatsApp Cloud API. Use when you need to register a phone number that has been added to your WhatsApp Business Account. This action requires sett...
|
|
13453
|
+
scopes:
|
|
13454
|
+
- whatsapp_business_management
|
|
13455
|
+
- whatsapp_business_messaging
|
|
13456
|
+
breadth: generic
|
|
13457
|
+
guarantee: experimental
|
|
13458
|
+
side_effect: write
|
|
13459
|
+
- name: whatsapp.send_contacts
|
|
13460
|
+
slug: WHATSAPP_SEND_CONTACTS
|
|
13461
|
+
toolkit: whatsapp
|
|
13462
|
+
description: 'Send contacts WhatsApp number. Note: The message will be delivered to the recipient only if they have initiated a conversation first.'
|
|
13463
|
+
scopes:
|
|
13464
|
+
- whatsapp_business_messaging
|
|
13465
|
+
breadth: generic
|
|
13466
|
+
guarantee: experimental
|
|
13467
|
+
side_effect: write
|
|
13468
|
+
- name: whatsapp.send_interactive_buttons
|
|
13469
|
+
slug: WHATSAPP_SEND_INTERACTIVE_BUTTONS
|
|
13470
|
+
toolkit: whatsapp
|
|
13471
|
+
description: Send an interactive button message with up to 3 reply buttons to a WhatsApp user. Interactive button messages allow recipients to quickly respond by tapping predefined buttons. Perfect for yes/no ques...
|
|
13472
|
+
scopes:
|
|
13473
|
+
- whatsapp_business_messaging
|
|
13474
|
+
breadth: generic
|
|
13475
|
+
guarantee: experimental
|
|
13476
|
+
side_effect: write
|
|
13477
|
+
- name: whatsapp.send_interactive_list
|
|
13478
|
+
slug: WHATSAPP_SEND_INTERACTIVE_LIST
|
|
13479
|
+
toolkit: whatsapp
|
|
13480
|
+
description: Send an interactive list message to a WhatsApp number. List messages display a menu of options organized into sections. Users tap a button to view the list and select one option. Perfect for product c...
|
|
13481
|
+
scopes:
|
|
13482
|
+
- whatsapp_business_messaging
|
|
13483
|
+
breadth: generic
|
|
13484
|
+
guarantee: experimental
|
|
13485
|
+
side_effect: write
|
|
13486
|
+
- name: whatsapp.send_location
|
|
13487
|
+
slug: WHATSAPP_SEND_LOCATION
|
|
13488
|
+
toolkit: whatsapp
|
|
13489
|
+
description: Send a location message with coordinates, name, and address to a WhatsApp user. This action allows you to share location information through WhatsApp Business API. The location message includes latitu...
|
|
13490
|
+
scopes:
|
|
13491
|
+
- whatsapp_business_messaging
|
|
13492
|
+
breadth: generic
|
|
13493
|
+
guarantee: experimental
|
|
13494
|
+
side_effect: write
|
|
13495
|
+
- name: whatsapp.send_media
|
|
13496
|
+
slug: WHATSAPP_SEND_MEDIA
|
|
13497
|
+
toolkit: whatsapp
|
|
13498
|
+
description: 'Send a media message to a WhatsApp number. Note: The media will be delivered to the recipient only if they have texted first.'
|
|
13499
|
+
scopes:
|
|
13500
|
+
- whatsapp_business_messaging
|
|
13501
|
+
breadth: generic
|
|
13502
|
+
guarantee: experimental
|
|
13503
|
+
side_effect: write
|
|
13504
|
+
- name: whatsapp.send_media_by_id
|
|
13505
|
+
slug: WHATSAPP_SEND_MEDIA_BY_ID
|
|
13506
|
+
toolkit: whatsapp
|
|
13507
|
+
description: Send media using a media ID from previously uploaded media. This is more efficient than sending media by URL as the media is already on WhatsApp servers. Use upload_media action first to get the media...
|
|
13508
|
+
scopes:
|
|
13509
|
+
- whatsapp_business_messaging
|
|
13510
|
+
breadth: generic
|
|
13511
|
+
guarantee: experimental
|
|
13512
|
+
side_effect: write
|
|
13513
|
+
- name: whatsapp.send_message
|
|
13514
|
+
slug: WHATSAPP_SEND_MESSAGE
|
|
13515
|
+
toolkit: whatsapp
|
|
13516
|
+
description: 'Send a text message to a WhatsApp user. Important: The recipient phone number must be registered on WhatsApp and must have initiated a conversation with your business within the last 24 hours, OR you...'
|
|
13517
|
+
scopes:
|
|
13518
|
+
- whatsapp_business_messaging
|
|
13519
|
+
breadth: generic
|
|
13520
|
+
guarantee: experimental
|
|
13521
|
+
side_effect: write
|
|
13522
|
+
- name: whatsapp.send_template_message
|
|
13523
|
+
slug: WHATSAPP_SEND_TEMPLATE_MESSAGE
|
|
13524
|
+
toolkit: whatsapp
|
|
13525
|
+
description: Send a template message to a WhatsApp number.
|
|
13526
|
+
scopes:
|
|
13527
|
+
- whatsapp_business_messaging
|
|
13528
|
+
breadth: generic
|
|
13529
|
+
guarantee: experimental
|
|
13530
|
+
side_effect: write
|
|
13531
|
+
- name: whatsapp.set_two_step_verification
|
|
13532
|
+
slug: WHATSAPP_SET_TWO_STEP_VERIFICATION
|
|
13533
|
+
toolkit: whatsapp
|
|
13534
|
+
description: Set or reset the two-step verification PIN for a WhatsApp Business phone number. Use when you need to change the 6-digit PIN that protects a registered phone number — for example after onboarding a ne...
|
|
13535
|
+
scopes:
|
|
13536
|
+
- whatsapp_business_management
|
|
13537
|
+
- whatsapp_business_messaging
|
|
13538
|
+
breadth: generic
|
|
13539
|
+
guarantee: experimental
|
|
13540
|
+
side_effect: write
|
|
13541
|
+
- name: whatsapp.subscribe_app
|
|
13542
|
+
slug: WHATSAPP_SUBSCRIBE_APP
|
|
13543
|
+
toolkit: whatsapp
|
|
13544
|
+
description: Subscribe your application to receive webhook notifications for a WhatsApp Business Account (WABA). This action registers the application to receive webhook events from the specified WABA. Use this ac...
|
|
13545
|
+
scopes:
|
|
13546
|
+
- whatsapp_business_management
|
|
13547
|
+
- whatsapp_business_messaging
|
|
13548
|
+
breadth: generic
|
|
13549
|
+
guarantee: experimental
|
|
13550
|
+
side_effect: write
|
|
13551
|
+
- name: whatsapp.update_business_account
|
|
13552
|
+
slug: WHATSAPP_UPDATE_BUSINESS_ACCOUNT
|
|
13553
|
+
toolkit: whatsapp
|
|
13554
|
+
description: Update metadata for a WhatsApp Flow including its name, categories, and endpoint URI. Use when you need to modify the configuration or settings of an existing WhatsApp Flow.
|
|
13555
|
+
scopes:
|
|
13556
|
+
- whatsapp_business_management
|
|
13557
|
+
breadth: generic
|
|
13558
|
+
guarantee: experimental
|
|
13559
|
+
side_effect: write
|
|
13560
|
+
- name: whatsapp.update_business_profile
|
|
13561
|
+
slug: WHATSAPP_UPDATE_BUSINESS_PROFILE
|
|
13562
|
+
toolkit: whatsapp
|
|
13563
|
+
description: Update WhatsApp Business Profile information including business details, contact information, and profile settings. Use when you need to modify the business profile settings such as the about text, bu...
|
|
13564
|
+
scopes:
|
|
13565
|
+
- whatsapp_business_management
|
|
13566
|
+
- whatsapp_business_messaging
|
|
13567
|
+
breadth: generic
|
|
13568
|
+
guarantee: experimental
|
|
13569
|
+
side_effect: write
|
|
13570
|
+
- name: whatsapp.update_commerce_settings
|
|
13571
|
+
slug: WHATSAPP_UPDATE_COMMERCE_SETTINGS
|
|
13572
|
+
toolkit: whatsapp
|
|
13573
|
+
description: Set or update commerce settings for a WhatsApp Business phone number. Use this action to enable or disable shopping cart functionality and product catalog visibility for a specific WhatsApp Business p...
|
|
13574
|
+
scopes:
|
|
13575
|
+
- whatsapp_business_management
|
|
13576
|
+
- whatsapp_business_messaging
|
|
13577
|
+
breadth: generic
|
|
13578
|
+
guarantee: experimental
|
|
13579
|
+
side_effect: write
|
|
13580
|
+
- name: whatsapp.update_flow_json
|
|
13581
|
+
slug: WHATSAPP_UPDATE_FLOW_JSON
|
|
13582
|
+
toolkit: whatsapp
|
|
13583
|
+
description: Update the Flow JSON configuration for a WhatsApp Flow. Use this action when you need to update or upload a new flow.json file for an existing WhatsApp Flow. The Flow JSON defines the structure, scree...
|
|
13584
|
+
scopes:
|
|
13585
|
+
- whatsapp_business_management
|
|
13586
|
+
- whatsapp_business_messaging
|
|
13587
|
+
breadth: generic
|
|
13588
|
+
guarantee: experimental
|
|
13589
|
+
side_effect: write
|
|
13590
|
+
- name: whatsapp.update_settings
|
|
13591
|
+
slug: WHATSAPP_UPDATE_SETTINGS
|
|
13592
|
+
toolkit: whatsapp
|
|
13593
|
+
description: Update Cloud API settings for a WhatsApp Business phone number. Use this action to modify calling features, user identity verification settings, payload encryption configuration, and data storage pref...
|
|
13594
|
+
scopes:
|
|
13595
|
+
- whatsapp_business_management
|
|
13596
|
+
- whatsapp_business_messaging
|
|
13597
|
+
breadth: generic
|
|
13598
|
+
guarantee: experimental
|
|
13599
|
+
side_effect: write
|
|
13600
|
+
- name: whatsapp.upload_media
|
|
13601
|
+
slug: WHATSAPP_UPLOAD_MEDIA
|
|
13602
|
+
toolkit: whatsapp
|
|
13603
|
+
description: 'Upload media files (images, videos, audio, documents, stickers) to WhatsApp servers. The uploaded media gets a media ID that can be used in send_media or other messaging actions. Supported formats: -...'
|
|
13604
|
+
scopes:
|
|
13605
|
+
- whatsapp_business_messaging
|
|
13606
|
+
breadth: generic
|
|
13607
|
+
guarantee: experimental
|
|
13608
|
+
side_effect: write
|
|
13609
|
+
- name: whatsapp.upsert_message_template
|
|
13610
|
+
slug: WHATSAPP_UPSERT_MESSAGE_TEMPLATE
|
|
13611
|
+
toolkit: whatsapp
|
|
13612
|
+
description: Create or update a message template for the WhatsApp Business Account. Use this action when you need to create a new message template or update an existing one with the same name. If a template with t...
|
|
13613
|
+
scopes:
|
|
13614
|
+
- whatsapp_business_management
|
|
13615
|
+
- whatsapp_business_messaging
|
|
13616
|
+
breadth: generic
|
|
13617
|
+
guarantee: experimental
|
|
13618
|
+
side_effect: write
|
|
13619
|
+
- name: whatsapp.verify_code
|
|
13620
|
+
slug: WHATSAPP_VERIFY_CODE
|
|
13621
|
+
toolkit: whatsapp
|
|
13622
|
+
description: Verify the OTP code for a pre-verified phone number. Use when you need to complete phone number verification by submitting the received OTP code. The phone number must first be added to your WhatsApp...
|
|
13623
|
+
scopes:
|
|
13624
|
+
- whatsapp_business_management
|
|
13625
|
+
- whatsapp_business_messaging
|
|
13626
|
+
breadth: generic
|
|
13627
|
+
guarantee: experimental
|
|
13628
|
+
side_effect: write
|
|
13629
|
+
- name: whatsapp.who_am_i
|
|
13630
|
+
slug: WHATSAPP_WHO_AM_I
|
|
13631
|
+
toolkit: whatsapp
|
|
13632
|
+
description: Return the identity (name) of the connected WhatsApp (Meta) account.
|
|
13633
|
+
scopes: []
|
|
13634
|
+
breadth: generic
|
|
13635
|
+
guarantee: experimental
|
|
13636
|
+
side_effect: read
|