gravity-schema 0.4.0__tar.gz → 0.4.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.
Files changed (28) hide show
  1. {gravity_schema-0.4.0 → gravity_schema-0.4.2}/PKG-INFO +1 -1
  2. {gravity_schema-0.4.0 → gravity_schema-0.4.2}/gravity_schema/catalog.yaml +8 -0
  3. {gravity_schema-0.4.0 → gravity_schema-0.4.2}/gravity_schema/manifest.py +14 -0
  4. {gravity_schema-0.4.0 → gravity_schema-0.4.2}/pyproject.toml +1 -1
  5. {gravity_schema-0.4.0 → gravity_schema-0.4.2}/schema/manifest.schema.json +1 -0
  6. {gravity_schema-0.4.0 → gravity_schema-0.4.2}/.gitignore +0 -0
  7. {gravity_schema-0.4.0 → gravity_schema-0.4.2}/LICENSE +0 -0
  8. {gravity_schema-0.4.0 → gravity_schema-0.4.2}/NOTICE +0 -0
  9. {gravity_schema-0.4.0 → gravity_schema-0.4.2}/README.md +0 -0
  10. {gravity_schema-0.4.0 → gravity_schema-0.4.2}/gravity_schema/__init__.py +0 -0
  11. {gravity_schema-0.4.0 → gravity_schema-0.4.2}/gravity_schema/__main__.py +0 -0
  12. {gravity_schema-0.4.0 → gravity_schema-0.4.2}/gravity_schema/catalog.py +0 -0
  13. {gravity_schema-0.4.0 → gravity_schema-0.4.2}/gravity_schema/catalog_imported.yaml +0 -0
  14. {gravity_schema-0.4.0 → gravity_schema-0.4.2}/gravity_schema/contract.py +0 -0
  15. {gravity_schema-0.4.0 → gravity_schema-0.4.2}/gravity_schema/cron.py +0 -0
  16. {gravity_schema-0.4.0 → gravity_schema-0.4.2}/gravity_schema/errors.py +0 -0
  17. {gravity_schema-0.4.0 → gravity_schema-0.4.2}/gravity_schema/export.py +0 -0
  18. {gravity_schema-0.4.0 → gravity_schema-0.4.2}/gravity_schema/gen_catalog.py +0 -0
  19. {gravity_schema-0.4.0 → gravity_schema-0.4.2}/gravity_schema/validation.py +0 -0
  20. {gravity_schema-0.4.0 → gravity_schema-0.4.2}/tests/conftest.py +0 -0
  21. {gravity_schema-0.4.0 → gravity_schema-0.4.2}/tests/test_catalog_parity.py +0 -0
  22. {gravity_schema-0.4.0 → gravity_schema-0.4.2}/tests/test_cron.py +0 -0
  23. {gravity_schema-0.4.0 → gravity_schema-0.4.2}/tests/test_errors.py +0 -0
  24. {gravity_schema-0.4.0 → gravity_schema-0.4.2}/tests/test_json_schema.py +0 -0
  25. {gravity_schema-0.4.0 → gravity_schema-0.4.2}/tests/test_kind_outputs.py +0 -0
  26. {gravity_schema-0.4.0 → gravity_schema-0.4.2}/tests/test_manifest.py +0 -0
  27. {gravity_schema-0.4.0 → gravity_schema-0.4.2}/tests/test_slots.py +0 -0
  28. {gravity_schema-0.4.0 → gravity_schema-0.4.2}/tests/test_validation.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: gravity-schema
3
- Version: 0.4.0
3
+ Version: 0.4.2
4
4
  Summary: Gravity agent manifest contract — models, validation, and JSON Schema export
5
5
  License-Expression: Apache-2.0
6
6
  License-File: LICENSE
@@ -27,6 +27,14 @@
27
27
  guarantee: certified
28
28
  side_effect: read
29
29
 
30
+ - name: supadata.get_transcript
31
+ slug: null
32
+ description: fetch the transcript of a YouTube video with the caller's own Supadata API key (api_key argument)
33
+ scopes: []
34
+ breadth: niche
35
+ guarantee: certified
36
+ side_effect: read
37
+
30
38
  - name: gmail.read
31
39
  slug: GMAIL_FETCH_EMAILS
32
40
  description: read the connected Gmail inbox
@@ -26,6 +26,9 @@ class InputType(str, Enum):
26
26
  EMAIL = "email"
27
27
  URL = "url"
28
28
  DATE = "date"
29
+ # An API key or password. The platform seals it with KMS when it is submitted, keeps it
30
+ # out of every API response and log, and opens it only to hand it to the running agent.
31
+ SECRET = "secret"
29
32
  # The agent gets a short-lived URL it fetches through the gateway.
30
33
  FILE = "file"
31
34
 
@@ -40,6 +43,7 @@ _PYTHON_TYPES: dict[InputType, tuple[type, ...]] = {
40
43
  InputType.EMAIL: (str,),
41
44
  InputType.URL: (str,),
42
45
  InputType.DATE: (str,),
46
+ InputType.SECRET: (str,),
43
47
  InputType.FILE: (), # never has a default
44
48
  }
45
49
 
@@ -254,6 +258,16 @@ class InputSpec(BaseModel):
254
258
  },
255
259
  )
256
260
 
261
+ if self.type is InputType.SECRET:
262
+ raise PydanticCustomError(
263
+ ErrorCode.INVALID_INPUT.value,
264
+ "Secret input '{value}' cannot have a default.",
265
+ {
266
+ "value": self.name,
267
+ "remediation": "Remove the default; the consumer enters the secret for each run or schedule.",
268
+ },
269
+ )
270
+
257
271
  expected = _PYTHON_TYPES[self.type]
258
272
  # bool is an int subclass, so NUMBER needs this guard.
259
273
  is_bool = isinstance(self.default, bool)
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "gravity-schema"
3
- version = "0.4.0"
3
+ version = "0.4.2"
4
4
  description = "Gravity agent manifest contract — models, validation, and JSON Schema export"
5
5
  readme = "README.md"
6
6
  license = "Apache-2.0"
@@ -122,6 +122,7 @@
122
122
  "email",
123
123
  "url",
124
124
  "date",
125
+ "secret",
125
126
  "file"
126
127
  ],
127
128
  "title": "InputType",
File without changes
File without changes
File without changes