vijil-sdk 0.0.1__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 (104) hide show
  1. vijil_sdk-0.0.1/PKG-INFO +224 -0
  2. vijil_sdk-0.0.1/README.md +208 -0
  3. vijil_sdk-0.0.1/pyproject.toml +61 -0
  4. vijil_sdk-0.0.1/src/vijil/__init__.py +6 -0
  5. vijil_sdk-0.0.1/src/vijil/_generated/__init__.py +0 -0
  6. vijil_sdk-0.0.1/src/vijil/_generated/models.py +2473 -0
  7. vijil_sdk-0.0.1/src/vijil/_generated/resources/__init__.py +0 -0
  8. vijil_sdk-0.0.1/src/vijil/_generated/resources/agents.py +236 -0
  9. vijil_sdk-0.0.1/src/vijil/_generated/resources/detections.py +31 -0
  10. vijil_sdk-0.0.1/src/vijil/_generated/resources/dome.py +89 -0
  11. vijil_sdk-0.0.1/src/vijil/_generated/resources/evaluations.py +99 -0
  12. vijil_sdk-0.0.1/src/vijil/_generated/resources/evolution_status.py +32 -0
  13. vijil_sdk-0.0.1/src/vijil/_generated/resources/evolutions.py +118 -0
  14. vijil_sdk-0.0.1/src/vijil/_generated/resources/genomes.py +116 -0
  15. vijil_sdk-0.0.1/src/vijil/_generated/resources/harnesses.py +89 -0
  16. vijil_sdk-0.0.1/src/vijil/_generated/resources/personas.py +133 -0
  17. vijil_sdk-0.0.1/src/vijil/_generated/resources/policies.py +165 -0
  18. vijil_sdk-0.0.1/src/vijil/_generated/resources/proposals.py +85 -0
  19. vijil_sdk-0.0.1/src/vijil/_generated/resources/rca_runs.py +61 -0
  20. vijil_sdk-0.0.1/src/vijil/_generated/resources/redteam.py +94 -0
  21. vijil_sdk-0.0.1/src/vijil/_generated/resources/standard_harnesses.py +30 -0
  22. vijil_sdk-0.0.1/src/vijil/_generated/resources/telemetry.py +125 -0
  23. vijil_sdk-0.0.1/src/vijil/_version.py +1 -0
  24. vijil_sdk-0.0.1/src/vijil/client.py +445 -0
  25. vijil_sdk-0.0.1/src/vijil/config.py +83 -0
  26. vijil_sdk-0.0.1/src/vijil/credentials.py +298 -0
  27. vijil_sdk-0.0.1/src/vijil/exceptions.py +183 -0
  28. vijil_sdk-0.0.1/src/vijil/http.py +509 -0
  29. vijil_sdk-0.0.1/src/vijil/local/__init__.py +65 -0
  30. vijil_sdk-0.0.1/src/vijil/local/_detection_client.py +352 -0
  31. vijil_sdk-0.0.1/src/vijil/local/_detection_types.py +173 -0
  32. vijil_sdk-0.0.1/src/vijil/local/adapter_registry.py +104 -0
  33. vijil_sdk-0.0.1/src/vijil/local/adapters/__init__.py +20 -0
  34. vijil_sdk-0.0.1/src/vijil/local/adapters/_subprocess.py +111 -0
  35. vijil_sdk-0.0.1/src/vijil/local/adapters/claude_code.py +115 -0
  36. vijil_sdk-0.0.1/src/vijil/local/adapters/openai_compat.py +146 -0
  37. vijil_sdk-0.0.1/src/vijil/local/adapters/openclaw.py +143 -0
  38. vijil_sdk-0.0.1/src/vijil/local/persistence.py +230 -0
  39. vijil_sdk-0.0.1/src/vijil/local/runner.py +282 -0
  40. vijil_sdk-0.0.1/src/vijil/local/types.py +201 -0
  41. vijil_sdk-0.0.1/src/vijil/models/__init__.py +43 -0
  42. vijil_sdk-0.0.1/src/vijil/models/agents.py +15 -0
  43. vijil_sdk-0.0.1/src/vijil/models/base.py +56 -0
  44. vijil_sdk-0.0.1/src/vijil/models/deploy.py +13 -0
  45. vijil_sdk-0.0.1/src/vijil/models/discover.py +12 -0
  46. vijil_sdk-0.0.1/src/vijil/models/dome.py +16 -0
  47. vijil_sdk-0.0.1/src/vijil/models/evaluations.py +53 -0
  48. vijil_sdk-0.0.1/src/vijil/models/genomes.py +28 -0
  49. vijil_sdk-0.0.1/src/vijil/models/harnesses.py +40 -0
  50. vijil_sdk-0.0.1/src/vijil/models/jobs.py +23 -0
  51. vijil_sdk-0.0.1/src/vijil/models/monitor.py +36 -0
  52. vijil_sdk-0.0.1/src/vijil/models/personas.py +14 -0
  53. vijil_sdk-0.0.1/src/vijil/models/policies.py +21 -0
  54. vijil_sdk-0.0.1/src/vijil/models/proposals.py +19 -0
  55. vijil_sdk-0.0.1/src/vijil/models/rca_runs.py +27 -0
  56. vijil_sdk-0.0.1/src/vijil/models/reports.py +13 -0
  57. vijil_sdk-0.0.1/src/vijil/models/scores.py +95 -0
  58. vijil_sdk-0.0.1/src/vijil/py.typed +0 -0
  59. vijil_sdk-0.0.1/src/vijil/resources/__init__.py +33 -0
  60. vijil_sdk-0.0.1/src/vijil/resources/agents.py +65 -0
  61. vijil_sdk-0.0.1/src/vijil/resources/base.py +12 -0
  62. vijil_sdk-0.0.1/src/vijil/resources/discover.py +50 -0
  63. vijil_sdk-0.0.1/src/vijil/resources/dome.py +52 -0
  64. vijil_sdk-0.0.1/src/vijil/resources/evaluations.py +122 -0
  65. vijil_sdk-0.0.1/src/vijil/resources/genomes.py +55 -0
  66. vijil_sdk-0.0.1/src/vijil/resources/harnesses.py +147 -0
  67. vijil_sdk-0.0.1/src/vijil/resources/jobs.py +59 -0
  68. vijil_sdk-0.0.1/src/vijil/resources/monitor.py +90 -0
  69. vijil_sdk-0.0.1/src/vijil/resources/personas.py +98 -0
  70. vijil_sdk-0.0.1/src/vijil/resources/policies.py +95 -0
  71. vijil_sdk-0.0.1/src/vijil/resources/proposals.py +56 -0
  72. vijil_sdk-0.0.1/src/vijil/resources/rca_runs.py +167 -0
  73. vijil_sdk-0.0.1/src/vijil/resources/reports.py +70 -0
  74. vijil_sdk-0.0.1/src/vijil/resources/scores.py +105 -0
  75. vijil_sdk-0.0.1/src/vijil_cli/__init__.py +1 -0
  76. vijil_sdk-0.0.1/src/vijil_cli/_generated/__init__.py +0 -0
  77. vijil_sdk-0.0.1/src/vijil_cli/auth.py +42 -0
  78. vijil_sdk-0.0.1/src/vijil_cli/config_cmd.py +37 -0
  79. vijil_sdk-0.0.1/src/vijil_cli/context.py +34 -0
  80. vijil_sdk-0.0.1/src/vijil_cli/main.py +123 -0
  81. vijil_sdk-0.0.1/src/vijil_cli/output.py +72 -0
  82. vijil_sdk-0.0.1/src/vijil_cli/plumbing/__init__.py +0 -0
  83. vijil_sdk-0.0.1/src/vijil_cli/plumbing/agents.py +73 -0
  84. vijil_sdk-0.0.1/src/vijil_cli/plumbing/evaluations.py +29 -0
  85. vijil_sdk-0.0.1/src/vijil_cli/plumbing/genomes.py +49 -0
  86. vijil_sdk-0.0.1/src/vijil_cli/plumbing/harnesses.py +89 -0
  87. vijil_sdk-0.0.1/src/vijil_cli/plumbing/jobs.py +43 -0
  88. vijil_sdk-0.0.1/src/vijil_cli/plumbing/personas.py +102 -0
  89. vijil_sdk-0.0.1/src/vijil_cli/plumbing/policies.py +94 -0
  90. vijil_sdk-0.0.1/src/vijil_cli/plumbing/proposals.py +60 -0
  91. vijil_sdk-0.0.1/src/vijil_cli/plumbing/rca_runs.py +129 -0
  92. vijil_sdk-0.0.1/src/vijil_cli/plumbing/reports.py +44 -0
  93. vijil_sdk-0.0.1/src/vijil_cli/plumbing/scores.py +27 -0
  94. vijil_sdk-0.0.1/src/vijil_cli/porcelain/__init__.py +0 -0
  95. vijil_sdk-0.0.1/src/vijil_cli/porcelain/adapt.py +36 -0
  96. vijil_sdk-0.0.1/src/vijil_cli/porcelain/deploy.py +27 -0
  97. vijil_sdk-0.0.1/src/vijil_cli/porcelain/discover.py +29 -0
  98. vijil_sdk-0.0.1/src/vijil_cli/porcelain/evaluate.py +182 -0
  99. vijil_sdk-0.0.1/src/vijil_cli/porcelain/evolve.py +31 -0
  100. vijil_sdk-0.0.1/src/vijil_cli/porcelain/monitor.py +33 -0
  101. vijil_sdk-0.0.1/src/vijil_cli/porcelain/protect.py +27 -0
  102. vijil_sdk-0.0.1/src/vijil_cli/porcelain/register.py +368 -0
  103. vijil_sdk-0.0.1/src/vijil_cli/porcelain/test_cmd.py +70 -0
  104. vijil_sdk-0.0.1/src/vijil_cli/state.py +18 -0
@@ -0,0 +1,224 @@
1
+ Metadata-Version: 2.4
2
+ Name: vijil-sdk
3
+ Version: 0.0.1
4
+ Summary: Vijil SDK & CLI — measure and improve AI agent trustworthiness
5
+ Author: Vijil AI
6
+ Author-email: eng@vijil.ai
7
+ Requires-Python: >=3.12,<3.14
8
+ Classifier: Programming Language :: Python :: 3
9
+ Classifier: Programming Language :: Python :: 3.12
10
+ Classifier: Programming Language :: Python :: 3.13
11
+ Requires-Dist: httpx (>=0.27.0)
12
+ Requires-Dist: pydantic (>=2.10.0,<3.0.0)
13
+ Requires-Dist: tomli-w (>=1.1.0,<2.0.0)
14
+ Description-Content-Type: text/markdown
15
+
16
+ # Vijil SDK & CLI
17
+
18
+ Measure and improve AI agent trustworthiness from your terminal or Python code.
19
+
20
+ Vijil provides a unified trust layer for the entire agent lifecycle — from discovery through deployment. Evaluate your agent against known standards, test it under adversarial pressure, adapt it to fix weaknesses, and protect it with runtime Guardrails.
21
+
22
+ ## Install
23
+
24
+ ```bash
25
+ pip install vijil-sdk
26
+ ```
27
+
28
+ Requires Python 3.12+. Installs both the `vijil` CLI and the `vijil` Python SDK.
29
+
30
+ **Using Vijil from Claude Desktop, Cursor, or other MCP-aware agent frameworks?** See [`vijil-mcp`](https://github.com/vijilAI/vijil-mcp) — a separate package that exposes the Vijil platform as MCP tools. The SDK and the MCP server are independent: `vijil-sdk` runs in your Python process; `vijil-mcp` runs as a stdio server attached to your agent framework.
31
+
32
+ **Migrating from the legacy `vijil` PyPI package (pre-2026)?** See [`docs/migration-from-legacy-vijil.md`](docs/migration-from-legacy-vijil.md) for the install change, auth flow change, and command-by-command map.
33
+
34
+ ## Authenticate
35
+
36
+ Create an API key at [console.vijil.ai](https://console.vijil.ai) > **Settings** > **API Keys** — a client ID (`vk_…`) plus a one-time secret. Export the pair; the SDK exchanges it for a short-lived access token automatically:
37
+
38
+ ```bash
39
+ export VIJIL_CLIENT_ID="vk_..."
40
+ export VIJIL_CLIENT_SECRET="..." # shown once at creation
41
+ ```
42
+
43
+ Already have a bearer access token? Use it directly instead — `vijil auth login` saves one, or set it in the environment:
44
+
45
+ ```bash
46
+ vijil auth login # paste an access token; saved to ~/.vijil/credentials.json
47
+ export VIJIL_API_KEY="<access-token>"
48
+ ```
49
+
50
+ ## Quick start: CLI
51
+
52
+ ```bash
53
+ # Evaluate against standard trust Harnesses
54
+ vijil evaluate <agent-id> --baseline
55
+
56
+ # Test under adversarial pressure (Swarm)
57
+ vijil test <agent-id> --adaptive
58
+
59
+ # View trust scores
60
+ vijil scores show <agent-id>
61
+
62
+ # Configure runtime Guardrails
63
+ vijil protect <agent-id> --guards prompt_injection,pii --mode enforce
64
+
65
+ # Improve the agent through corrective evolution
66
+ vijil adapt <agent-id> --mode config
67
+ ```
68
+
69
+ ## Quick start: SDK
70
+
71
+ ```python
72
+ from vijil import Vijil
73
+
74
+ client = Vijil()
75
+
76
+ # Evaluate and wait for results
77
+ evaluation = client.evaluate("my-agent", baseline=True)
78
+ print(f"Trust score: {evaluation.trust_score}")
79
+ print(f"Reliability: {evaluation.dimensions.reliability}")
80
+ print(f"Security: {evaluation.dimensions.security}")
81
+ print(f"Safety: {evaluation.dimensions.safety}")
82
+
83
+ # Test under adversarial pressure
84
+ job = client.test("my-agent", mode="adaptive")
85
+ print(f"Test status: {job.status}")
86
+
87
+ # Configure Guardrails
88
+ dome = client.protect("my-agent", guards=["prompt_injection", "pii"])
89
+
90
+ # Improve the agent
91
+ job = client.adapt("my-agent", mode="config")
92
+ ```
93
+
94
+ ## How it works
95
+
96
+ The CLI and SDK are organized into two tiers, inspired by Git:
97
+
98
+ ### Porcelain commands (lifecycle verbs)
99
+
100
+ High-level commands that map to stages of the agent trust lifecycle:
101
+
102
+ | Command | What it does |
103
+ |---------|-------------|
104
+ | `vijil discover` | Find agents in GitHub repos or cloud infrastructure |
105
+ | `vijil register` | Convert agent source into an A2A card and genome |
106
+ | `vijil evaluate` | Measure against known standards (criterion-referenced) |
107
+ | `vijil test` | Explore under adversarial pressure (Swarm) |
108
+ | `vijil adapt` | Improve through corrective evolution (prompt, config, code, Dome) |
109
+ | `vijil protect` | Configure Dome runtime Guardrails |
110
+ | `vijil monitor` | View Dome telemetry (detections, traces, logs) |
111
+ | `vijil evolve` | Create a new agent through generative evolution |
112
+ | `vijil deploy` | Deploy to a production runtime |
113
+
114
+ ### Plumbing commands (resource nouns)
115
+
116
+ Low-level CRUD operations on platform resources:
117
+
118
+ | Command | Subcommands |
119
+ |---------|------------|
120
+ | `vijil agents` | `list`, `show`, `create`, `update`, `delete` |
121
+ | `vijil evaluations` | `list`, `show` |
122
+ | `vijil harnesses` | `list`, `show`, `create`, `update` |
123
+ | `vijil genomes` | `list`, `show`, `diff`, `history` |
124
+ | `vijil jobs` | `list`, `status`, `cancel` |
125
+ | `vijil scores` | `show`, `history` |
126
+ | `vijil reports` | `list`, `show`, `download` |
127
+ | `vijil proposals` | `list`, `show`, `approve`, `apply`, `reject` |
128
+ | `vijil policies` | `list`, `show`, `create`, `update`, `delete` |
129
+ | `vijil personas` | `list`, `show`, `create`, `update`, `delete` |
130
+
131
+ ### Setup commands
132
+
133
+ | Command | What it does |
134
+ |---------|-------------|
135
+ | `vijil auth` | `login`, `logout`, `status` |
136
+ | `vijil config` | `show`, `get`, `set` |
137
+
138
+ ## Key concepts
139
+
140
+ **Evaluate vs Test**: `evaluate` measures against known standards (like a certification exam). `test` explores for unknown weaknesses through adversarial pressure (like a penetration test). Both produce trust scores.
141
+
142
+ **Adapt vs Evolve**: `adapt` improves an existing agent through corrective evolution, fixing weaknesses found by evaluation or testing. `evolve` creates an entirely new agent from a spec or natural-language description.
143
+
144
+ **Trust dimensions**: Every evaluation produces scores across three dimensions — **reliability** (does it work correctly?), **security** (can it resist exploitation?), and **safety** (does it behave responsibly?).
145
+
146
+ ## Global options
147
+
148
+ ```
149
+ --output, -o Output format: table, json, yaml, quiet (default: auto)
150
+ --gateway Gateway URL override
151
+ --api-key API key override (or set VIJIL_API_KEY)
152
+ --quiet, -q Quiet mode — IDs only
153
+ --verbose, -v Debug logging
154
+ ```
155
+
156
+ ## Shell composability
157
+
158
+ The CLI supports shell scripting:
159
+
160
+ ```bash
161
+ # JSON output for machine consumption
162
+ vijil evaluate my-agent --baseline -o json | jq '.trust_score'
163
+
164
+ # Quiet mode returns just the ID
165
+ EVAL_ID=$(vijil evaluate my-agent --baseline -q)
166
+ vijil reports download "$EVAL_ID"
167
+
168
+ # Pipe agent list to evaluation
169
+ vijil agents list -q | xargs -I{} vijil evaluate {} --baseline --no-wait
170
+ ```
171
+
172
+ Exit codes follow Unix convention:
173
+
174
+ | Code | Meaning |
175
+ |------|---------|
176
+ | 0 | Success |
177
+ | 1 | General error |
178
+ | 2 | Authentication error |
179
+ | 3 | Resource not found |
180
+ | 4 | Validation error |
181
+ | 5 | Job failed |
182
+
183
+ ## Agent aliases
184
+
185
+ Set short names for agent IDs you use often:
186
+
187
+ ```bash
188
+ vijil config set aliases.travel-agent d0087de1-a032-49f7-9d28-3abf4a34404d
189
+
190
+ # Now use the alias anywhere
191
+ vijil evaluate travel-agent --baseline
192
+ vijil scores show travel-agent
193
+ ```
194
+
195
+ ## Framework integrations
196
+
197
+ > **Coming soon** — Guides for integrating Vijil into agent development frameworks:
198
+ >
199
+ > - **Google ADK** — Evaluate and protect ADK agents
200
+ > - **LangGraph** — Add trust checks to LangGraph workflows
201
+ > - **CrewAI** — Monitor and adapt CrewAI agents
202
+ >
203
+ > See [docs/integrations/](docs/integrations/) for the roadmap.
204
+
205
+ ## Documentation
206
+
207
+ | Document | Description |
208
+ |----------|-------------|
209
+ | [Configuration](docs/configuration.md) | Auth setup, config file, credentials, CI/CD |
210
+ | [CLI Reference](docs/cli-reference.md) | All commands with flags and examples |
211
+ | [SDK Reference](docs/sdk-reference.md) | Python client, resources, models, errors |
212
+ | [Lifecycle Guide](docs/lifecycle-guide.md) | End-to-end workflows for existing and new agents |
213
+ | [Testing Guide](docs/testing-guide.md) | Running unit and integration tests |
214
+ | [Integrations](docs/integrations/) | Framework integration guides |
215
+
216
+ ## Requirements
217
+
218
+ - Python 3.12+
219
+ - A Vijil account ([console.vijil.ai](https://console.vijil.ai))
220
+
221
+ ## License
222
+
223
+ Proprietary. Copyright 2024-2026 Vijil AI, Inc.
224
+
@@ -0,0 +1,208 @@
1
+ # Vijil SDK & CLI
2
+
3
+ Measure and improve AI agent trustworthiness from your terminal or Python code.
4
+
5
+ Vijil provides a unified trust layer for the entire agent lifecycle — from discovery through deployment. Evaluate your agent against known standards, test it under adversarial pressure, adapt it to fix weaknesses, and protect it with runtime Guardrails.
6
+
7
+ ## Install
8
+
9
+ ```bash
10
+ pip install vijil-sdk
11
+ ```
12
+
13
+ Requires Python 3.12+. Installs both the `vijil` CLI and the `vijil` Python SDK.
14
+
15
+ **Using Vijil from Claude Desktop, Cursor, or other MCP-aware agent frameworks?** See [`vijil-mcp`](https://github.com/vijilAI/vijil-mcp) — a separate package that exposes the Vijil platform as MCP tools. The SDK and the MCP server are independent: `vijil-sdk` runs in your Python process; `vijil-mcp` runs as a stdio server attached to your agent framework.
16
+
17
+ **Migrating from the legacy `vijil` PyPI package (pre-2026)?** See [`docs/migration-from-legacy-vijil.md`](docs/migration-from-legacy-vijil.md) for the install change, auth flow change, and command-by-command map.
18
+
19
+ ## Authenticate
20
+
21
+ Create an API key at [console.vijil.ai](https://console.vijil.ai) > **Settings** > **API Keys** — a client ID (`vk_…`) plus a one-time secret. Export the pair; the SDK exchanges it for a short-lived access token automatically:
22
+
23
+ ```bash
24
+ export VIJIL_CLIENT_ID="vk_..."
25
+ export VIJIL_CLIENT_SECRET="..." # shown once at creation
26
+ ```
27
+
28
+ Already have a bearer access token? Use it directly instead — `vijil auth login` saves one, or set it in the environment:
29
+
30
+ ```bash
31
+ vijil auth login # paste an access token; saved to ~/.vijil/credentials.json
32
+ export VIJIL_API_KEY="<access-token>"
33
+ ```
34
+
35
+ ## Quick start: CLI
36
+
37
+ ```bash
38
+ # Evaluate against standard trust Harnesses
39
+ vijil evaluate <agent-id> --baseline
40
+
41
+ # Test under adversarial pressure (Swarm)
42
+ vijil test <agent-id> --adaptive
43
+
44
+ # View trust scores
45
+ vijil scores show <agent-id>
46
+
47
+ # Configure runtime Guardrails
48
+ vijil protect <agent-id> --guards prompt_injection,pii --mode enforce
49
+
50
+ # Improve the agent through corrective evolution
51
+ vijil adapt <agent-id> --mode config
52
+ ```
53
+
54
+ ## Quick start: SDK
55
+
56
+ ```python
57
+ from vijil import Vijil
58
+
59
+ client = Vijil()
60
+
61
+ # Evaluate and wait for results
62
+ evaluation = client.evaluate("my-agent", baseline=True)
63
+ print(f"Trust score: {evaluation.trust_score}")
64
+ print(f"Reliability: {evaluation.dimensions.reliability}")
65
+ print(f"Security: {evaluation.dimensions.security}")
66
+ print(f"Safety: {evaluation.dimensions.safety}")
67
+
68
+ # Test under adversarial pressure
69
+ job = client.test("my-agent", mode="adaptive")
70
+ print(f"Test status: {job.status}")
71
+
72
+ # Configure Guardrails
73
+ dome = client.protect("my-agent", guards=["prompt_injection", "pii"])
74
+
75
+ # Improve the agent
76
+ job = client.adapt("my-agent", mode="config")
77
+ ```
78
+
79
+ ## How it works
80
+
81
+ The CLI and SDK are organized into two tiers, inspired by Git:
82
+
83
+ ### Porcelain commands (lifecycle verbs)
84
+
85
+ High-level commands that map to stages of the agent trust lifecycle:
86
+
87
+ | Command | What it does |
88
+ |---------|-------------|
89
+ | `vijil discover` | Find agents in GitHub repos or cloud infrastructure |
90
+ | `vijil register` | Convert agent source into an A2A card and genome |
91
+ | `vijil evaluate` | Measure against known standards (criterion-referenced) |
92
+ | `vijil test` | Explore under adversarial pressure (Swarm) |
93
+ | `vijil adapt` | Improve through corrective evolution (prompt, config, code, Dome) |
94
+ | `vijil protect` | Configure Dome runtime Guardrails |
95
+ | `vijil monitor` | View Dome telemetry (detections, traces, logs) |
96
+ | `vijil evolve` | Create a new agent through generative evolution |
97
+ | `vijil deploy` | Deploy to a production runtime |
98
+
99
+ ### Plumbing commands (resource nouns)
100
+
101
+ Low-level CRUD operations on platform resources:
102
+
103
+ | Command | Subcommands |
104
+ |---------|------------|
105
+ | `vijil agents` | `list`, `show`, `create`, `update`, `delete` |
106
+ | `vijil evaluations` | `list`, `show` |
107
+ | `vijil harnesses` | `list`, `show`, `create`, `update` |
108
+ | `vijil genomes` | `list`, `show`, `diff`, `history` |
109
+ | `vijil jobs` | `list`, `status`, `cancel` |
110
+ | `vijil scores` | `show`, `history` |
111
+ | `vijil reports` | `list`, `show`, `download` |
112
+ | `vijil proposals` | `list`, `show`, `approve`, `apply`, `reject` |
113
+ | `vijil policies` | `list`, `show`, `create`, `update`, `delete` |
114
+ | `vijil personas` | `list`, `show`, `create`, `update`, `delete` |
115
+
116
+ ### Setup commands
117
+
118
+ | Command | What it does |
119
+ |---------|-------------|
120
+ | `vijil auth` | `login`, `logout`, `status` |
121
+ | `vijil config` | `show`, `get`, `set` |
122
+
123
+ ## Key concepts
124
+
125
+ **Evaluate vs Test**: `evaluate` measures against known standards (like a certification exam). `test` explores for unknown weaknesses through adversarial pressure (like a penetration test). Both produce trust scores.
126
+
127
+ **Adapt vs Evolve**: `adapt` improves an existing agent through corrective evolution, fixing weaknesses found by evaluation or testing. `evolve` creates an entirely new agent from a spec or natural-language description.
128
+
129
+ **Trust dimensions**: Every evaluation produces scores across three dimensions — **reliability** (does it work correctly?), **security** (can it resist exploitation?), and **safety** (does it behave responsibly?).
130
+
131
+ ## Global options
132
+
133
+ ```
134
+ --output, -o Output format: table, json, yaml, quiet (default: auto)
135
+ --gateway Gateway URL override
136
+ --api-key API key override (or set VIJIL_API_KEY)
137
+ --quiet, -q Quiet mode — IDs only
138
+ --verbose, -v Debug logging
139
+ ```
140
+
141
+ ## Shell composability
142
+
143
+ The CLI supports shell scripting:
144
+
145
+ ```bash
146
+ # JSON output for machine consumption
147
+ vijil evaluate my-agent --baseline -o json | jq '.trust_score'
148
+
149
+ # Quiet mode returns just the ID
150
+ EVAL_ID=$(vijil evaluate my-agent --baseline -q)
151
+ vijil reports download "$EVAL_ID"
152
+
153
+ # Pipe agent list to evaluation
154
+ vijil agents list -q | xargs -I{} vijil evaluate {} --baseline --no-wait
155
+ ```
156
+
157
+ Exit codes follow Unix convention:
158
+
159
+ | Code | Meaning |
160
+ |------|---------|
161
+ | 0 | Success |
162
+ | 1 | General error |
163
+ | 2 | Authentication error |
164
+ | 3 | Resource not found |
165
+ | 4 | Validation error |
166
+ | 5 | Job failed |
167
+
168
+ ## Agent aliases
169
+
170
+ Set short names for agent IDs you use often:
171
+
172
+ ```bash
173
+ vijil config set aliases.travel-agent d0087de1-a032-49f7-9d28-3abf4a34404d
174
+
175
+ # Now use the alias anywhere
176
+ vijil evaluate travel-agent --baseline
177
+ vijil scores show travel-agent
178
+ ```
179
+
180
+ ## Framework integrations
181
+
182
+ > **Coming soon** — Guides for integrating Vijil into agent development frameworks:
183
+ >
184
+ > - **Google ADK** — Evaluate and protect ADK agents
185
+ > - **LangGraph** — Add trust checks to LangGraph workflows
186
+ > - **CrewAI** — Monitor and adapt CrewAI agents
187
+ >
188
+ > See [docs/integrations/](docs/integrations/) for the roadmap.
189
+
190
+ ## Documentation
191
+
192
+ | Document | Description |
193
+ |----------|-------------|
194
+ | [Configuration](docs/configuration.md) | Auth setup, config file, credentials, CI/CD |
195
+ | [CLI Reference](docs/cli-reference.md) | All commands with flags and examples |
196
+ | [SDK Reference](docs/sdk-reference.md) | Python client, resources, models, errors |
197
+ | [Lifecycle Guide](docs/lifecycle-guide.md) | End-to-end workflows for existing and new agents |
198
+ | [Testing Guide](docs/testing-guide.md) | Running unit and integration tests |
199
+ | [Integrations](docs/integrations/) | Framework integration guides |
200
+
201
+ ## Requirements
202
+
203
+ - Python 3.12+
204
+ - A Vijil account ([console.vijil.ai](https://console.vijil.ai))
205
+
206
+ ## License
207
+
208
+ Proprietary. Copyright 2024-2026 Vijil AI, Inc.
@@ -0,0 +1,61 @@
1
+ [tool.poetry]
2
+ name = "vijil-sdk"
3
+ version = "0.0.1"
4
+ description = "Vijil SDK & CLI — measure and improve AI agent trustworthiness"
5
+ authors = ["Vijil AI <eng@vijil.ai>"]
6
+ readme = "README.md"
7
+ packages = [
8
+ {include = "vijil", from = "src"},
9
+ {include = "vijil_cli", from = "src"},
10
+ ]
11
+
12
+ [tool.poetry.dependencies]
13
+ python = ">=3.12,<3.14"
14
+ httpx = ">=0.27.0"
15
+ pydantic = "^2.10.0"
16
+ tomli-w = "^1.1.0"
17
+
18
+ [tool.poetry.group.cli.dependencies]
19
+ typer = {version = ">=0.15.0", extras = ["all"]}
20
+ rich = ">=13.0.0"
21
+
22
+ [tool.poetry.group.dev.dependencies]
23
+ pytest = "^8.0.0"
24
+ pytest-asyncio = ">=0.24.0"
25
+ respx = ">=0.22.0"
26
+ ruff = "^0.8.0"
27
+ mypy = "^1.13.0"
28
+ python-dotenv = "^1.2.2"
29
+ jupyterlab = "^4.5.7"
30
+ pandas = "^3.0.3"
31
+ matplotlib = "^3.10.0"
32
+ nbstripout = "^0.9.1"
33
+
34
+ [tool.poetry.scripts]
35
+ vijil = "vijil_cli.main:app"
36
+
37
+ [build-system]
38
+ requires = ["poetry-core"]
39
+ build-backend = "poetry.core.masonry.api"
40
+
41
+ [tool.ruff]
42
+ line-length = 100
43
+ target-version = "py312"
44
+ # Example scripts and deployment helpers are not held to the same lint
45
+ # standard as production code under src/, tests/, and scripts/. They
46
+ # illustrate usage and drift is expected as APIs evolve.
47
+ extend-exclude = []
48
+
49
+ [tool.ruff.lint]
50
+ select = ["E", "F", "I", "N", "W", "UP"]
51
+ ignore = ["E501"]
52
+
53
+ [tool.mypy]
54
+ python_version = "3.12"
55
+ strict = true
56
+ plugins = ["pydantic.mypy"]
57
+
58
+
59
+ [tool.pytest.ini_options]
60
+ asyncio_mode = "auto"
61
+ testpaths = ["tests"]
@@ -0,0 +1,6 @@
1
+ """Vijil SDK — measure and improve AI agent trustworthiness."""
2
+
3
+ from vijil._version import __version__
4
+ from vijil.client import Vijil
5
+
6
+ __all__ = ["Vijil", "__version__"]
File without changes