bonito-cli 0.7.2__tar.gz → 0.7.4__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 (47) hide show
  1. {bonito_cli-0.7.2 → bonito_cli-0.7.4}/CLI_SPEC.md +1 -1
  2. {bonito_cli-0.7.2 → bonito_cli-0.7.4}/PKG-INFO +1 -1
  3. {bonito_cli-0.7.2 → bonito_cli-0.7.4}/bonito_cli/__init__.py +1 -1
  4. {bonito_cli-0.7.2 → bonito_cli-0.7.4}/bonito_cli/commands/agents.py +10 -3
  5. {bonito_cli-0.7.2 → bonito_cli-0.7.4}/bonito_cli/examples/enterprise.yaml +21 -16
  6. {bonito_cli-0.7.2 → bonito_cli-0.7.4}/bonito_cli/examples/multi-provider-failover.yaml +13 -12
  7. {bonito_cli-0.7.2 → bonito_cli-0.7.4}/bonito_cli/examples/quickstart.yaml +4 -3
  8. {bonito_cli-0.7.2 → bonito_cli-0.7.4}/bonito_cli/examples/support-agent.yaml +6 -4
  9. {bonito_cli-0.7.2 → bonito_cli-0.7.4}/pyproject.toml +1 -1
  10. {bonito_cli-0.7.2 → bonito_cli-0.7.4}/.gitignore +0 -0
  11. {bonito_cli-0.7.2 → bonito_cli-0.7.4}/CHANGELOG.md +0 -0
  12. {bonito_cli-0.7.2 → bonito_cli-0.7.4}/README.md +0 -0
  13. {bonito_cli-0.7.2 → bonito_cli-0.7.4}/bonito_cli/__main__.py +0 -0
  14. {bonito_cli-0.7.2 → bonito_cli-0.7.4}/bonito_cli/api.py +0 -0
  15. {bonito_cli-0.7.2 → bonito_cli-0.7.4}/bonito_cli/app.py +0 -0
  16. {bonito_cli-0.7.2 → bonito_cli-0.7.4}/bonito_cli/commands/__init__.py +0 -0
  17. {bonito_cli-0.7.2 → bonito_cli-0.7.4}/bonito_cli/commands/admin.py +0 -0
  18. {bonito_cli-0.7.2 → bonito_cli-0.7.4}/bonito_cli/commands/analytics.py +0 -0
  19. {bonito_cli-0.7.2 → bonito_cli-0.7.4}/bonito_cli/commands/approval.py +0 -0
  20. {bonito_cli-0.7.2 → bonito_cli-0.7.4}/bonito_cli/commands/audit.py +0 -0
  21. {bonito_cli-0.7.2 → bonito_cli-0.7.4}/bonito_cli/commands/auth.py +0 -0
  22. {bonito_cli-0.7.2 → bonito_cli-0.7.4}/bonito_cli/commands/chat.py +0 -0
  23. {bonito_cli-0.7.2 → bonito_cli-0.7.4}/bonito_cli/commands/compliance.py +0 -0
  24. {bonito_cli-0.7.2 → bonito_cli-0.7.4}/bonito_cli/commands/deploy.py +0 -0
  25. {bonito_cli-0.7.2 → bonito_cli-0.7.4}/bonito_cli/commands/deployments.py +0 -0
  26. {bonito_cli-0.7.2 → bonito_cli-0.7.4}/bonito_cli/commands/gateway.py +0 -0
  27. {bonito_cli-0.7.2 → bonito_cli-0.7.4}/bonito_cli/commands/groups.py +0 -0
  28. {bonito_cli-0.7.2 → bonito_cli-0.7.4}/bonito_cli/commands/init.py +0 -0
  29. {bonito_cli-0.7.2 → bonito_cli-0.7.4}/bonito_cli/commands/kb.py +0 -0
  30. {bonito_cli-0.7.2 → bonito_cli-0.7.4}/bonito_cli/commands/mcp.py +0 -0
  31. {bonito_cli-0.7.2 → bonito_cli-0.7.4}/bonito_cli/commands/memory.py +0 -0
  32. {bonito_cli-0.7.2 → bonito_cli-0.7.4}/bonito_cli/commands/models.py +0 -0
  33. {bonito_cli-0.7.2 → bonito_cli-0.7.4}/bonito_cli/commands/plan.py +0 -0
  34. {bonito_cli-0.7.2 → bonito_cli-0.7.4}/bonito_cli/commands/policies.py +0 -0
  35. {bonito_cli-0.7.2 → bonito_cli-0.7.4}/bonito_cli/commands/projects.py +0 -0
  36. {bonito_cli-0.7.2 → bonito_cli-0.7.4}/bonito_cli/commands/providers.py +0 -0
  37. {bonito_cli-0.7.2 → bonito_cli-0.7.4}/bonito_cli/commands/rbac.py +0 -0
  38. {bonito_cli-0.7.2 → bonito_cli-0.7.4}/bonito_cli/commands/routing.py +0 -0
  39. {bonito_cli-0.7.2 → bonito_cli-0.7.4}/bonito_cli/commands/scheduler.py +0 -0
  40. {bonito_cli-0.7.2 → bonito_cli-0.7.4}/bonito_cli/commands/secrets.py +0 -0
  41. {bonito_cli-0.7.2 → bonito_cli-0.7.4}/bonito_cli/commands/sso.py +0 -0
  42. {bonito_cli-0.7.2 → bonito_cli-0.7.4}/bonito_cli/config.py +0 -0
  43. {bonito_cli-0.7.2 → bonito_cli-0.7.4}/bonito_cli/examples/__init__.py +0 -0
  44. {bonito_cli-0.7.2 → bonito_cli-0.7.4}/bonito_cli/utils/__init__.py +0 -0
  45. {bonito_cli-0.7.2 → bonito_cli-0.7.4}/bonito_cli/utils/auth.py +0 -0
  46. {bonito_cli-0.7.2 → bonito_cli-0.7.4}/bonito_cli/utils/display.py +0 -0
  47. {bonito_cli-0.7.2 → bonito_cli-0.7.4}/bonito_cli/utils/feature_gate.py +0 -0
@@ -115,7 +115,7 @@ bonito agents create --project PROJECT_ID --name NAME [--description DESC] [--pr
115
115
  bonito agents info AGENT_ID [--sessions] [--json]
116
116
  bonito agents update AGENT_ID [--name NAME] [--description DESC] [--model MODEL] [--max-turns N] [--timeout SECS] [--rate-limit RPM] [--status STATUS] [--json]
117
117
  bonito agents delete AGENT_ID [--force]
118
- bonito agents execute AGENT_ID [MESSAGE] [--session SESSION_ID] [--json]
118
+ bonito agents execute AGENT_ID [MESSAGE] [--session SESSION_ID] [--parent-agent PARENT_AGENT_ID] [--json]
119
119
  bonito agents sessions AGENT_ID [--limit N] [--json]
120
120
  bonito agents messages AGENT_ID SESSION_ID [--json]
121
121
  bonito agents connections AGENT_ID [--json]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: bonito-cli
3
- Version: 0.7.2
3
+ Version: 0.7.4
4
4
  Summary: Bonito CLI — Unified multi-cloud AI management from your terminal
5
5
  Author-email: Bonito <hello@getbonito.com>
6
6
  License: MIT
@@ -1,3 +1,3 @@
1
1
  """Bonito CLI — Unified multi-cloud AI management from your terminal."""
2
2
 
3
- __version__ = "0.7.2"
3
+ __version__ = "0.7.4"
@@ -310,19 +310,26 @@ def execute_agent(
310
310
  agent_id: str = typer.Argument(..., help="Agent ID"),
311
311
  message: Optional[str] = typer.Argument(None, help="Message to send"),
312
312
  session_id: Optional[str] = typer.Option(None, "--session", "-s", help="Session ID (creates new if not provided)"),
313
+ parent_agent: Optional[str] = typer.Option(None, "--parent-agent", "-p", help="Parent (orchestrator) agent ID for Breadcrumbs tracing"),
313
314
  json_output: bool = typer.Option(False, "--json", help="Output in JSON format"),
314
315
  ):
315
- """Execute an agent with a message."""
316
+ """Execute an agent with a message.
317
+
318
+ Use --parent-agent to declare that this call is being orchestrated by
319
+ another agent. The delegation will appear in Breadcrumbs.
320
+ """
316
321
  ensure_authenticated()
317
322
  fmt = get_output_format(json_output)
318
-
323
+
319
324
  # Get message if not provided
320
325
  if not message:
321
326
  message = Prompt.ask("Enter your message")
322
-
327
+
323
328
  payload = {"message": message}
324
329
  if session_id:
325
330
  payload["session_id"] = session_id
331
+ if parent_agent:
332
+ payload["parent_agent_id"] = parent_agent
326
333
 
327
334
  try:
328
335
  with console.status(f"[bold green]Executing agent...", spinner="dots"):
@@ -2,42 +2,46 @@ version: "1"
2
2
  name: enterprise-ai-ops
3
3
  description: "Enterprise AI operations — multi-cloud, failover, governed agents"
4
4
 
5
- providers:
6
- - name: aws-bedrock
7
- type: aws
8
- - name: azure-openai
9
- type: azure
10
- - name: gcp-vertex
11
- type: gcp
12
- - name: anthropic-direct
13
- type: anthropic
5
+ gateway:
6
+ providers:
7
+ - name: aws
8
+ access_key: ${AWS_ACCESS_KEY_ID}
9
+ secret_key: ${AWS_SECRET_ACCESS_KEY}
10
+ region: us-east-1
11
+ - name: azure
12
+ api_key: ${AZURE_API_KEY}
13
+ - name: gcp
14
+ api_key: ${GCP_API_KEY}
15
+ - name: anthropic
16
+ api_key: ${ANTHROPIC_API_KEY}
14
17
 
15
18
  routing:
16
19
  - name: production-failover
17
20
  strategy: failover
18
21
  targets:
19
- - provider: aws-bedrock
22
+ - provider: aws
20
23
  model: us.anthropic.claude-sonnet-4-20250514-v1:0
21
24
  priority: 1
22
- - provider: azure-openai
25
+ - provider: azure
23
26
  model: gpt-4o
24
27
  priority: 2
25
- - provider: gcp-vertex
28
+ - provider: gcp
26
29
  model: gemini-2.0-flash
27
30
  priority: 3
28
31
 
29
32
  - name: internal-cost-optimized
30
33
  strategy: cost
31
34
  targets:
32
- - provider: gcp-vertex
35
+ - provider: gcp
33
36
  model: gemini-2.0-flash
34
37
  priority: 1
35
- - provider: aws-bedrock
38
+ - provider: aws
36
39
  model: us.amazon.nova-lite-v1:0
37
40
  priority: 2
38
41
 
39
42
  agents:
40
- - name: Tier 1 Support
43
+ tier-1-support:
44
+ display_name: "Tier 1 Support"
41
45
  model_id: us.anthropic.claude-sonnet-4-20250514-v1:0
42
46
  system_prompt: |
43
47
  Enterprise support agent. Investigate alerts, follow internal playbooks,
@@ -53,7 +57,8 @@ agents:
53
57
  http_allowlist:
54
58
  - "https://internal-api.company.com/*"
55
59
 
56
- - name: Knowledge Assistant
60
+ knowledge-assistant:
61
+ display_name: "Knowledge Assistant"
57
62
  model_id: gpt-4o
58
63
  system_prompt: |
59
64
  Internal knowledge assistant. Answer questions about company policies,
@@ -2,34 +2,35 @@ version: "1"
2
2
  name: multi-provider
3
3
  description: "Multi-provider setup with automatic failover routing"
4
4
 
5
- providers:
6
- - name: openai-primary
7
- type: openai
8
- - name: anthropic-backup
9
- type: anthropic
10
- - name: groq-fast
11
- type: groq
5
+ gateway:
6
+ providers:
7
+ - name: openai
8
+ api_key: ${OPENAI_API_KEY}
9
+ - name: anthropic
10
+ api_key: ${ANTHROPIC_API_KEY}
11
+ - name: groq
12
+ api_key: ${GROQ_API_KEY}
12
13
 
13
14
  routing:
14
15
  - name: smart-failover
15
16
  strategy: failover
16
17
  targets:
17
- - provider: anthropic-backup
18
+ - provider: anthropic
18
19
  model: anthropic/claude-sonnet-4-20250514
19
20
  priority: 1
20
- - provider: openai-primary
21
+ - provider: openai
21
22
  model: gpt-4o
22
23
  priority: 2
23
- - provider: groq-fast
24
+ - provider: groq
24
25
  model: llama-3.3-70b-versatile
25
26
  priority: 3
26
27
 
27
28
  - name: cost-optimized
28
29
  strategy: cost
29
30
  targets:
30
- - provider: groq-fast
31
+ - provider: groq
31
32
  model: llama-3.3-70b-versatile
32
33
  priority: 1
33
- - provider: openai-primary
34
+ - provider: openai
34
35
  model: gpt-4o-mini
35
36
  priority: 2
@@ -2,6 +2,7 @@ version: "1"
2
2
  name: my-first-bonito
3
3
  description: "Quick start — connect OpenAI and start routing"
4
4
 
5
- providers:
6
- - name: openai
7
- type: openai
5
+ gateway:
6
+ providers:
7
+ - name: openai
8
+ api_key: ${OPENAI_API_KEY}
@@ -2,12 +2,14 @@ version: "1"
2
2
  name: support-bot
3
3
  description: "Customer support agent with governed tools and knowledge base"
4
4
 
5
- providers:
6
- - name: openai
7
- type: openai
5
+ gateway:
6
+ providers:
7
+ - name: openai
8
+ api_key: ${OPENAI_API_KEY}
8
9
 
9
10
  agents:
10
- - name: Customer Support
11
+ customer-support:
12
+ display_name: "Customer Support"
11
13
  model_id: gpt-4o
12
14
  system_prompt: |
13
15
  You are a helpful customer support agent. Answer questions accurately
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "bonito-cli"
7
- version = "0.7.2"
7
+ version = "0.7.4"
8
8
  description = "Bonito CLI — Unified multi-cloud AI management from your terminal"
9
9
  readme = "README.md"
10
10
  license = {text = "MIT"}
File without changes
File without changes
File without changes
File without changes
File without changes