gravity-cli 0.7.0__tar.gz → 0.7.2__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.7.0 → gravity_cli-0.7.2}/PKG-INFO +2 -2
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/packages/gravity-schema/gravity_schema/catalog.yaml +90 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/packages/gravity-schema/pyproject.toml +1 -1
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/pyproject.toml +2 -2
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/src/gravity_cli/CHANGELOG.md +10 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/src/gravity_cli/docs/Gravity.agent.md +16 -2
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/uv.lock +2 -2
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/.env.example +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/.github/workflows/ci.yml +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/.github/workflows/release.yml +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/.gitignore +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/AGENT_STANDARD.md +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/LICENSE +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/NOTICE +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/README.md +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/RELEASING.md +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/TEMPLATES.md +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/packages/gravity-schema/LICENSE +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/packages/gravity-schema/NOTICE +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/packages/gravity-schema/README.md +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/packages/gravity-schema/gravity_schema/__init__.py +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/packages/gravity-schema/gravity_schema/__main__.py +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/packages/gravity-schema/gravity_schema/catalog.py +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/packages/gravity-schema/gravity_schema/catalog_imported.yaml +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/packages/gravity-schema/gravity_schema/contract.py +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/packages/gravity-schema/gravity_schema/cron.py +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/packages/gravity-schema/gravity_schema/errors.py +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/packages/gravity-schema/gravity_schema/export.py +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/packages/gravity-schema/gravity_schema/gen_catalog.py +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/packages/gravity-schema/gravity_schema/manifest.py +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/packages/gravity-schema/gravity_schema/rules.py +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/packages/gravity-schema/gravity_schema/rules_cases.json +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/packages/gravity-schema/gravity_schema/source_scan.py +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/packages/gravity-schema/gravity_schema/validation.py +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/packages/gravity-schema/schema/manifest.schema.json +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/packages/gravity-schema/tests/conftest.py +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/packages/gravity-schema/tests/test_actions_memory.py +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/packages/gravity-schema/tests/test_catalog_parity.py +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/packages/gravity-schema/tests/test_cron.py +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/packages/gravity-schema/tests/test_errors.py +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/packages/gravity-schema/tests/test_json_schema.py +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/packages/gravity-schema/tests/test_kind_outputs.py +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/packages/gravity-schema/tests/test_manifest.py +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/packages/gravity-schema/tests/test_rules.py +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/packages/gravity-schema/tests/test_slots.py +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/packages/gravity-schema/tests/test_source_scan.py +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/packages/gravity-schema/tests/test_validation.py +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/src/gravity_cli/BUILDER_GUIDE.md +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/src/gravity_cli/__init__.py +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/src/gravity_cli/__main__.py +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/src/gravity_cli/_runner_script.py +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/src/gravity_cli/api.py +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/src/gravity_cli/changelog.py +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/src/gravity_cli/cli.py +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/src/gravity_cli/commands/__init__.py +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/src/gravity_cli/commands/adapt.py +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/src/gravity_cli/commands/build.py +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/src/gravity_cli/commands/changelog.py +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/src/gravity_cli/commands/connect.py +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/src/gravity_cli/commands/dev.py +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/src/gravity_cli/commands/docs.py +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/src/gravity_cli/commands/guide.py +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/src/gravity_cli/commands/init.py +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/src/gravity_cli/commands/login.py +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/src/gravity_cli/commands/memory.py +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/src/gravity_cli/commands/push.py +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/src/gravity_cli/commands/run.py +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/src/gravity_cli/commands/runs.py +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/src/gravity_cli/commands/schedule.py +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/src/gravity_cli/commands/tools.py +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/src/gravity_cli/commands/update.py +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/src/gravity_cli/commands/validate.py +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/src/gravity_cli/config.py +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/src/gravity_cli/dev.py +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/src/gravity_cli/dev_page/index.html +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/src/gravity_cli/docs/problem-to-agent.md +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/src/gravity_cli/inputs.py +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/src/gravity_cli/localrun.py +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/src/gravity_cli/manifest.py +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/src/gravity_cli/project.py +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/src/gravity_cli/templates/chat/.gitignore +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/src/gravity_cli/templates/chat/manifest.yaml +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/src/gravity_cli/templates/chat/requirements.txt +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/src/gravity_cli/templates/chat/src/agent.py +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/src/gravity_cli/templates/deepagent/.gitignore +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/src/gravity_cli/templates/deepagent/manifest.yaml +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/src/gravity_cli/templates/deepagent/requirements.txt +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/src/gravity_cli/templates/deepagent/src/agent.py +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/src/gravity_cli/templates/minimal/.gitignore +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/src/gravity_cli/templates/minimal/manifest.yaml +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/src/gravity_cli/templates/minimal/requirements.txt +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/src/gravity_cli/templates/minimal/src/agent.py +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/src/gravity_cli/templates/structured/.gitignore +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/src/gravity_cli/templates/structured/manifest.yaml +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/src/gravity_cli/templates/structured/requirements.txt +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/src/gravity_cli/templates/structured/src/agent.py +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/src/gravity_cli/templates/structured/src/gateway.py +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/src/gravity_cli/templates/structured/src/nodes/agent.py +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/src/gravity_cli/templates/structured/src/prompts.py +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/src/gravity_cli/templates/structured/src/state.py +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/src/gravity_cli/timeline.py +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/src/gravity_cli/ui.py +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/src/gravity_cli/updater.py +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/src/gravity_cli/workspace.py +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/starter/manifest.yaml +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/starter/requirements.txt +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/starter/src/agent.py +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/starter/src/summary.py +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/starter/tests/test_summary.py +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/tests/conftest.py +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/tests/test_adapt.py +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/tests/test_agent_guide.py +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/tests/test_agents.py +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/tests/test_api.py +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/tests/test_build_push.py +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/tests/test_changelog.py +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/tests/test_connect.py +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/tests/test_dev.py +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/tests/test_gateway_token.py +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/tests/test_inputs_memory.py +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/tests/test_localrun.py +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/tests/test_manifest_integration.py +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/tests/test_run.py +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/tests/test_runs.py +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/tests/test_schedule.py +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/tests/test_session.py +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/tests/test_templates.py +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/tests/test_timeline.py +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/tests/test_tools.py +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/tests/test_ui.py +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/tests/test_updater.py +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/tests/test_validate.py +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/tests/test_welcome.py +0 -0
- {gravity_cli-0.7.0 → gravity_cli-0.7.2}/tests/test_workspace.py +0 -0
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: gravity-cli
|
|
3
|
-
Version: 0.7.
|
|
3
|
+
Version: 0.7.2
|
|
4
4
|
Summary: gravity cli — init, run, and push python agents to the Gravity marketplace
|
|
5
5
|
License-Expression: Apache-2.0
|
|
6
6
|
License-File: LICENSE
|
|
7
7
|
License-File: NOTICE
|
|
8
8
|
Requires-Python: >=3.12
|
|
9
|
-
Requires-Dist: gravity-schema==0.7.
|
|
9
|
+
Requires-Dist: gravity-schema==0.7.2
|
|
10
10
|
Requires-Dist: httpx>=0.27.0
|
|
11
11
|
Requires-Dist: keyring>=25.0.0
|
|
12
12
|
Requires-Dist: python-dotenv>=1.0.0
|
|
@@ -56,6 +56,15 @@
|
|
|
56
56
|
guarantee: community
|
|
57
57
|
side_effect: read
|
|
58
58
|
|
|
59
|
+
- name: web.fetch_proxied
|
|
60
|
+
slug: null
|
|
61
|
+
toolkit: null
|
|
62
|
+
description: read a public web page or API (GET) through Gravity's rotating proxies, for sites that refuse cloud addresses (Reddit RSS, PullPush, Product Hunt, LinkedIn and X pages); returns the final url, status, content_type and content, HTML as text (format text) or the body as sent (format raw). A blocked page comes back with its status. No account needed; charged to the run's budget
|
|
63
|
+
scopes: []
|
|
64
|
+
breadth: generic
|
|
65
|
+
guarantee: certified
|
|
66
|
+
side_effect: read
|
|
67
|
+
|
|
59
68
|
- name: supadata.get_transcript
|
|
60
69
|
slug: null
|
|
61
70
|
toolkit: null
|
|
@@ -299,3 +308,84 @@
|
|
|
299
308
|
breadth: generic
|
|
300
309
|
guarantee: certified
|
|
301
310
|
side_effect: write
|
|
311
|
+
|
|
312
|
+
- name: forms.create
|
|
313
|
+
slug: GOOGLEFORMS_CREATE_FORM
|
|
314
|
+
toolkit: googleforms
|
|
315
|
+
description: create an empty Google Form with a title in the connected Google account; forms created through the API start unpublished. Add questions with forms.update and open it with forms.publish_settings
|
|
316
|
+
scopes: [https://www.googleapis.com/auth/forms.body]
|
|
317
|
+
breadth: generic
|
|
318
|
+
guarantee: certified
|
|
319
|
+
side_effect: write
|
|
320
|
+
|
|
321
|
+
- name: forms.update
|
|
322
|
+
slug: GOOGLEFORMS_BATCH_UPDATE_FORM
|
|
323
|
+
toolkit: googleforms
|
|
324
|
+
description: apply a batch of changes to a Google Form in one atomic call (title, description, settings such as verified email collection, and questions); the API cannot create file-upload questions
|
|
325
|
+
scopes: [https://www.googleapis.com/auth/forms.body]
|
|
326
|
+
breadth: generic
|
|
327
|
+
guarantee: certified
|
|
328
|
+
side_effect: write
|
|
329
|
+
|
|
330
|
+
- name: forms.publish_settings
|
|
331
|
+
slug: GOOGLEFORMS_SET_PUBLISH_SETTINGS
|
|
332
|
+
toolkit: googleforms
|
|
333
|
+
description: publish or unpublish a Google Form and turn response collection on or off, for example to close a form at its deadline
|
|
334
|
+
scopes: [https://www.googleapis.com/auth/forms.body]
|
|
335
|
+
breadth: generic
|
|
336
|
+
guarantee: certified
|
|
337
|
+
side_effect: write
|
|
338
|
+
|
|
339
|
+
- name: forms.get
|
|
340
|
+
slug: GOOGLEFORMS_GET_FORM
|
|
341
|
+
toolkit: googleforms
|
|
342
|
+
description: read a Google Form's structure, settings, publish state and its responder link
|
|
343
|
+
scopes: [https://www.googleapis.com/auth/forms.body.readonly]
|
|
344
|
+
breadth: generic
|
|
345
|
+
guarantee: certified
|
|
346
|
+
side_effect: read
|
|
347
|
+
|
|
348
|
+
- name: forms.list_responses
|
|
349
|
+
slug: GOOGLEFORMS_LIST_RESPONSES
|
|
350
|
+
toolkit: googleforms
|
|
351
|
+
description: list the responses submitted to a Google Form, with paging and an optional filter for responses after a timestamp
|
|
352
|
+
scopes: [https://www.googleapis.com/auth/forms.responses.readonly]
|
|
353
|
+
breadth: generic
|
|
354
|
+
guarantee: certified
|
|
355
|
+
side_effect: read
|
|
356
|
+
|
|
357
|
+
- name: hunter.find_email
|
|
358
|
+
slug: HUNTER_EMAIL_FINDER
|
|
359
|
+
toolkit: hunter
|
|
360
|
+
description: find the most likely work email for a person from their name and company domain, with a confidence score; runs on Gravity's account where Composio Instant covers it, charged to the run's budget
|
|
361
|
+
scopes: []
|
|
362
|
+
breadth: generic
|
|
363
|
+
guarantee: community
|
|
364
|
+
side_effect: read
|
|
365
|
+
|
|
366
|
+
- name: hunter.verify_email
|
|
367
|
+
slug: HUNTER_EMAIL_VERIFIER
|
|
368
|
+
toolkit: hunter
|
|
369
|
+
description: check whether an email address is deliverable (valid, accept_all, risky or invalid) before writing to it; runs on Gravity's account where Composio Instant covers it, charged to the run's budget
|
|
370
|
+
scopes: []
|
|
371
|
+
breadth: generic
|
|
372
|
+
guarantee: community
|
|
373
|
+
side_effect: read
|
|
374
|
+
|
|
375
|
+
- name: exa.search
|
|
376
|
+
slug: EXA_SEARCH
|
|
377
|
+
toolkit: exa
|
|
378
|
+
description: search the web with Exa, including category 'people' (public profiles) and 'personal site' (portfolios); on Gravity's account through Composio Instant only type auto and at most 10 results, without page text (read pages with exa.contents)
|
|
379
|
+
scopes: []
|
|
380
|
+
breadth: generic
|
|
381
|
+
guarantee: community
|
|
382
|
+
side_effect: read
|
|
383
|
+
|
|
384
|
+
- name: exa.contents
|
|
385
|
+
slug: EXA_GET_CONTENTS_ACTION
|
|
386
|
+
toolkit: exa
|
|
387
|
+
description: read the text of up to 10 URLs from Exa's index; check each URL's status, because the call succeeds even when a page fails
|
|
388
|
+
scopes: []
|
|
389
|
+
breadth: generic
|
|
390
|
+
guarantee: community
|
|
391
|
+
side_effect: read
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "gravity-cli"
|
|
3
|
-
version = "0.7.
|
|
3
|
+
version = "0.7.2"
|
|
4
4
|
description = "gravity cli — init, run, and push python agents to the Gravity marketplace"
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
license = "Apache-2.0"
|
|
7
7
|
license-files = ["LICENSE", "NOTICE"]
|
|
8
8
|
requires-python = ">=3.12"
|
|
9
9
|
dependencies = [
|
|
10
|
-
"gravity-schema==0.7.
|
|
10
|
+
"gravity-schema==0.7.2", # released in lockstep: always the same version as this package
|
|
11
11
|
"typer>=0.15.0",
|
|
12
12
|
"httpx>=0.27.0",
|
|
13
13
|
"rich>=13.9.0",
|
|
@@ -4,6 +4,16 @@ Shown by `gravity update` and `gravity changelog`, and after an update. Each rel
|
|
|
4
4
|
then one bullet per change: `- new|improved|fixed: A one-line headline. The detail behind it.`
|
|
5
5
|
Write it for a builder, not for a maintainer. `tests/test_changelog.py` fails a release that has no entry.
|
|
6
6
|
|
|
7
|
+
## 0.7.2 - 2026-10-23
|
|
8
|
+
|
|
9
|
+
- new: Google Forms tools. forms.create, forms.update, forms.publish_settings, forms.get and forms.list_responses build a form in the person's own Google account, open it, close it at a deadline and read the responses. The API cannot make file-upload questions, so ask for a link instead.
|
|
10
|
+
- new: hunter.find_email and hunter.verify_email find a work email from a name and a company and check it before anyone writes to it. They run on Gravity's account wherever Composio Instant covers them, charged to the run's budget.
|
|
11
|
+
- new: exa.search and exa.contents search people and personal sites by what they work on (category 'people' or 'personal site') and read the pages found. On Gravity's account: at most 10 results and no page text in the search, so read pages with exa.contents.
|
|
12
|
+
|
|
13
|
+
## 0.7.1 - 2026-10-23
|
|
14
|
+
|
|
15
|
+
- new: web.fetch_proxied reads a public page through Gravity's rotating proxies, for sources that refuse cloud addresses (Reddit RSS, PullPush, Product Hunt, LinkedIn profile and post pages, X profiles). No account; a few hundredths of a cent from the run's budget per call.
|
|
16
|
+
|
|
7
17
|
## 0.7.0 - 2026-10-23
|
|
8
18
|
|
|
9
19
|
- new: Questions that apply only sometimes. show_if asks an input only when a slot or an earlier input has a given value, and choose_one makes "upload or paste" an either / or that can be required. gravity run, gravity schedule and gravity dev apply the same rules the platform does on every run.
|
|
@@ -490,9 +490,11 @@ Catalog of this release: {{tool_counts}}.
|
|
|
490
490
|
|
|
491
491
|
{{curated_tools}}
|
|
492
492
|
|
|
493
|
-
- `web.search`, `web.fetch` and `example.echo` need no account. `supadata.get_transcript` needs none, but takes the
|
|
493
|
+
- `web.search`, `web.fetch`, `web.fetch_proxied` and `example.echo` need no account. `supadata.get_transcript` needs none, but takes the
|
|
494
494
|
caller's own `api_key` argument: model it as a `secret` input. `web.render` and `firecrawl.*` need a connected
|
|
495
|
-
Firecrawl account (billed to it).
|
|
495
|
+
Firecrawl account (billed to it). `hunter.*` and `exa.*` run on Gravity's account where Composio Instant covers
|
|
496
|
+
them; `forms.*` needs the person's Google account, and forms made through the API start unpublished
|
|
497
|
+
(`forms.publish_settings` opens and closes them).
|
|
496
498
|
- **Imported tools** are the same apps' other actions, synced from the vendor and unreviewed (guarantee
|
|
497
499
|
`experimental`). Their names are verbose (`github.create_an_issue`, not `github.create_issue`), so look them up:
|
|
498
500
|
`gravity tools github`, or `gravity tools issue`. Any imported tool that **changes something** must be under
|
|
@@ -504,6 +506,17 @@ Catalog of this release: {{tool_counts}}.
|
|
|
504
506
|
and say so. For pages that refuse the sandbox or need JavaScript use `firecrawl.scrape` or `web.render`; cap the
|
|
505
507
|
paid calls per run and degrade to one line under "could not do" when the account is not connected. Do not pass a
|
|
506
508
|
`location` to a render: routing through another country measured 36 s against 8 s.
|
|
509
|
+
- `web.fetch_proxied` GETs a URL through Gravity's rotating proxies, for sources that refuse the sandbox's cloud
|
|
510
|
+
address: Reddit RSS (`/r/<sub>/search.rss`) and Product Hunt pages answered 200 through it on 23 Oct 2026, PullPush
|
|
511
|
+
through the same proxies on 15 Oct. It is not a browser and changes no TLS fingerprint: Reddit's HTML and `.json`, Capterra, Glassdoor, G2 and Trustpilot
|
|
512
|
+
still answer 403. LinkedIn profile and post pages came back 200 with their JSON-LD for 7 of 8 profiles on 23 Oct;
|
|
513
|
+
some profiles answer LinkedIn's 999 from every address, so confirm a person another way when that happens. X
|
|
514
|
+
profile pages carry the latest posts with dates and links. A 403, 429 or 999 is tried on up to three proxies. Arguments: `url`, `format` (`text`, the default, turns HTML into lines of text; `raw` returns
|
|
515
|
+
JSON, XML or RSS as sent), `max_chars` (default 50,000, at most 200,000). It returns `url` (after redirects),
|
|
516
|
+
`status`, `content_type`, `content`, `truncated`, `attempts`; a 403, 404 or 429 is a result with that status, not
|
|
517
|
+
an error, so check `status`. Each call costs about $0.0002 from the run's budget, and a run gets at most 200.
|
|
518
|
+
Private, internal and metadata addresses, ports other than 80/443/8080/8443, and non-http(s) URLs answer
|
|
519
|
+
`URL_REFUSED`. Prefer it over a `proxy_url` secret input: the person supplies nothing.
|
|
507
520
|
- Outbound HTTPS is open, so code may read public pages and APIs directly (`httpx`, `curl_cffi`). Anything that acts
|
|
508
521
|
on an account still goes through a tool, so the person's connection and approvals apply.
|
|
509
522
|
- Locally, `gravity connect <app>` attaches **your** account to your local runs (`gravity connect` alone lists what
|
|
@@ -818,6 +831,7 @@ checkpointing, durable approvals, `gravity.ask()`, action buttons, chains and ou
|
|
|
818
831
|
| `Fill in the required input(s): …`, `pick one of …` (hosted, 400) | A visible required input is missing, or a dropdown, multi-select or action choice is out of bounds | Check `show_if` and defaults; `gravity run` reports the same |
|
|
819
832
|
| "X needs Y to run first", "X runs once" | An action's `requires` has not completed in the conversation, or a `run_once` one already ran | Expected; the buttons show only what may run |
|
|
820
833
|
| `402 BUDGET_EXCEEDED` | The run spent its model budget | Fewer or smaller calls; `max_tokens`; at most two in flight |
|
|
834
|
+
| `URL_REFUSED`, `FETCH_FAILED`, `PROXY_LIMIT` (`web.fetch_proxied`) | Not a public http(s) URL on a web port; no proxy reached the page (connections or timeouts on three proxies); the run used its 200 proxied fetches | Fix the URL; retry later or degrade to one line under "could not do"; fetch fewer pages |
|
|
821
835
|
| "finished without a result" (`gravity run`), `null` result (hosted) | The final state has no `result` | Return `{"result": ...}` |
|
|
822
836
|
| "could not load the agent" | An import error, a relative import, env read at import, or the graph built at import | Section 5 |
|
|
823
837
|
| Lockfile will not compile | A dependency has no Linux ARM64 wheel | Pick another version or package |
|
|
@@ -164,7 +164,7 @@ wheels = [
|
|
|
164
164
|
|
|
165
165
|
[[package]]
|
|
166
166
|
name = "gravity-cli"
|
|
167
|
-
version = "0.7.
|
|
167
|
+
version = "0.7.2"
|
|
168
168
|
source = { editable = "." }
|
|
169
169
|
dependencies = [
|
|
170
170
|
{ name = "gravity-schema" },
|
|
@@ -201,7 +201,7 @@ dev = [
|
|
|
201
201
|
|
|
202
202
|
[[package]]
|
|
203
203
|
name = "gravity-schema"
|
|
204
|
-
version = "0.7.
|
|
204
|
+
version = "0.7.2"
|
|
205
205
|
source = { editable = "packages/gravity-schema" }
|
|
206
206
|
dependencies = [
|
|
207
207
|
{ name = "pydantic" },
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{gravity_cli-0.7.0 → gravity_cli-0.7.2}/packages/gravity-schema/gravity_schema/catalog_imported.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{gravity_cli-0.7.0 → gravity_cli-0.7.2}/packages/gravity-schema/gravity_schema/gen_catalog.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{gravity_cli-0.7.0 → gravity_cli-0.7.2}/packages/gravity-schema/gravity_schema/rules_cases.json
RENAMED
|
File without changes
|
{gravity_cli-0.7.0 → gravity_cli-0.7.2}/packages/gravity-schema/gravity_schema/source_scan.py
RENAMED
|
File without changes
|
{gravity_cli-0.7.0 → gravity_cli-0.7.2}/packages/gravity-schema/gravity_schema/validation.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{gravity_cli-0.7.0 → gravity_cli-0.7.2}/packages/gravity-schema/tests/test_actions_memory.py
RENAMED
|
File without changes
|
{gravity_cli-0.7.0 → gravity_cli-0.7.2}/packages/gravity-schema/tests/test_catalog_parity.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{gravity_cli-0.7.0 → gravity_cli-0.7.2}/src/gravity_cli/templates/deepagent/requirements.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{gravity_cli-0.7.0 → gravity_cli-0.7.2}/src/gravity_cli/templates/structured/requirements.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{gravity_cli-0.7.0 → gravity_cli-0.7.2}/src/gravity_cli/templates/structured/src/nodes/agent.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|