darwin-agentic-cloud 3.0.1__tar.gz → 3.0.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.
- {darwin_agentic_cloud-3.0.1 → darwin_agentic_cloud-3.0.2}/.gitignore +7 -0
- {darwin_agentic_cloud-3.0.1 → darwin_agentic_cloud-3.0.2}/CHANGELOG.md +18 -0
- {darwin_agentic_cloud-3.0.1 → darwin_agentic_cloud-3.0.2}/PKG-INFO +7 -2
- {darwin_agentic_cloud-3.0.1 → darwin_agentic_cloud-3.0.2}/README.md +6 -1
- {darwin_agentic_cloud-3.0.1 → darwin_agentic_cloud-3.0.2}/darwin/__init__.py +1 -1
- {darwin_agentic_cloud-3.0.1 → darwin_agentic_cloud-3.0.2}/darwin/agenticcloud/cli.py +59 -0
- {darwin_agentic_cloud-3.0.1 → darwin_agentic_cloud-3.0.2}/darwin/agenticcloud/ui.py +97 -0
- {darwin_agentic_cloud-3.0.1 → darwin_agentic_cloud-3.0.2}/pyproject.toml +1 -1
- {darwin_agentic_cloud-3.0.1 → darwin_agentic_cloud-3.0.2}/.dockerignore +0 -0
- {darwin_agentic_cloud-3.0.1 → darwin_agentic_cloud-3.0.2}/CODE_OF_CONDUCT.md +0 -0
- {darwin_agentic_cloud-3.0.1 → darwin_agentic_cloud-3.0.2}/CONTRIBUTING.md +0 -0
- {darwin_agentic_cloud-3.0.1 → darwin_agentic_cloud-3.0.2}/DARWIN_AGENTIC_CLOUD_PHASE_2_PROGRESS_2of3.md +0 -0
- {darwin_agentic_cloud-3.0.1 → darwin_agentic_cloud-3.0.2}/DARWIN_AGENTIC_CLOUD_PHASE_2_SPEC.md +0 -0
- {darwin_agentic_cloud-3.0.1 → darwin_agentic_cloud-3.0.2}/Dockerfile +0 -0
- {darwin_agentic_cloud-3.0.1 → darwin_agentic_cloud-3.0.2}/LAUNCH_POST_v3.0.0.md +0 -0
- {darwin_agentic_cloud-3.0.1 → darwin_agentic_cloud-3.0.2}/LICENSE +0 -0
- {darwin_agentic_cloud-3.0.1 → darwin_agentic_cloud-3.0.2}/Makefile +0 -0
- {darwin_agentic_cloud-3.0.1 → darwin_agentic_cloud-3.0.2}/QUICKSTART.md +0 -0
- {darwin_agentic_cloud-3.0.1 → darwin_agentic_cloud-3.0.2}/SECURITY.md +0 -0
- {darwin_agentic_cloud-3.0.1 → darwin_agentic_cloud-3.0.2}/darwin/agenticcloud/__init__.py +0 -0
- {darwin_agentic_cloud-3.0.1 → darwin_agentic_cloud-3.0.2}/darwin/agenticcloud/admin_cli.py +0 -0
- {darwin_agentic_cloud-3.0.1 → darwin_agentic_cloud-3.0.2}/darwin/agenticcloud/attestation.py +0 -0
- {darwin_agentic_cloud-3.0.1 → darwin_agentic_cloud-3.0.2}/darwin/agenticcloud/class_keys.py +0 -0
- {darwin_agentic_cloud-3.0.1 → darwin_agentic_cloud-3.0.2}/darwin/agenticcloud/cost.py +0 -0
- {darwin_agentic_cloud-3.0.1 → darwin_agentic_cloud-3.0.2}/darwin/agenticcloud/hashing.py +0 -0
- {darwin_agentic_cloud-3.0.1 → darwin_agentic_cloud-3.0.2}/darwin/agenticcloud/mcp_server.py +0 -0
- {darwin_agentic_cloud-3.0.1 → darwin_agentic_cloud-3.0.2}/darwin/agenticcloud/router.py +0 -0
- {darwin_agentic_cloud-3.0.1 → darwin_agentic_cloud-3.0.2}/darwin/agenticcloud/runtime.py +0 -0
- {darwin_agentic_cloud-3.0.1 → darwin_agentic_cloud-3.0.2}/darwin/agenticcloud/runtime_v02.py +0 -0
- {darwin_agentic_cloud-3.0.1 → darwin_agentic_cloud-3.0.2}/darwin/agenticcloud/sandbox.py +0 -0
- {darwin_agentic_cloud-3.0.1 → darwin_agentic_cloud-3.0.2}/darwin/agenticcloud/schemas/__init__.py +0 -0
- {darwin_agentic_cloud-3.0.1 → darwin_agentic_cloud-3.0.2}/darwin/agenticcloud/schemas/attestation_v0_2.json +0 -0
- {darwin_agentic_cloud-3.0.1 → darwin_agentic_cloud-3.0.2}/darwin/agenticcloud/server.py +0 -0
- {darwin_agentic_cloud-3.0.1 → darwin_agentic_cloud-3.0.2}/darwin/agenticcloud/signing.py +0 -0
- {darwin_agentic_cloud-3.0.1 → darwin_agentic_cloud-3.0.2}/darwin/agenticcloud/storage.py +0 -0
- {darwin_agentic_cloud-3.0.1 → darwin_agentic_cloud-3.0.2}/darwin/agenticcloud/substrate/__init__.py +0 -0
- {darwin_agentic_cloud-3.0.1 → darwin_agentic_cloud-3.0.2}/darwin/agenticcloud/substrate/aws_batch.py +0 -0
- {darwin_agentic_cloud-3.0.1 → darwin_agentic_cloud-3.0.2}/darwin/agenticcloud/substrate/aws_batch_event.py +0 -0
- {darwin_agentic_cloud-3.0.1 → darwin_agentic_cloud-3.0.2}/darwin/agenticcloud/substrate/aws_lambda.py +0 -0
- {darwin_agentic_cloud-3.0.1 → darwin_agentic_cloud-3.0.2}/darwin/agenticcloud/substrate/aws_lambda_event.py +0 -0
- {darwin_agentic_cloud-3.0.1 → darwin_agentic_cloud-3.0.2}/darwin/agenticcloud/substrate/aws_pricing.py +0 -0
- {darwin_agentic_cloud-3.0.1 → darwin_agentic_cloud-3.0.2}/darwin/agenticcloud/substrate/base.py +0 -0
- {darwin_agentic_cloud-3.0.1 → darwin_agentic_cloud-3.0.2}/darwin/agenticcloud/substrate/identity.py +0 -0
- {darwin_agentic_cloud-3.0.1 → darwin_agentic_cloud-3.0.2}/darwin/agenticcloud/substrate/local_docker.py +0 -0
- {darwin_agentic_cloud-3.0.1 → darwin_agentic_cloud-3.0.2}/darwin/agenticcloud/substrate/modal.py +0 -0
- {darwin_agentic_cloud-3.0.1 → darwin_agentic_cloud-3.0.2}/darwin/agenticcloud/templates/demo.html +0 -0
- {darwin_agentic_cloud-3.0.1 → darwin_agentic_cloud-3.0.2}/darwin/agenticcloud/templates/demo_attestation.json +0 -0
- {darwin_agentic_cloud-3.0.1 → darwin_agentic_cloud-3.0.2}/darwin/agenticcloud/templates/docs.html +0 -0
- {darwin_agentic_cloud-3.0.1 → darwin_agentic_cloud-3.0.2}/darwin/agenticcloud/types.py +0 -0
- {darwin_agentic_cloud-3.0.1 → darwin_agentic_cloud-3.0.2}/docker-entrypoint.sh +0 -0
- {darwin_agentic_cloud-3.0.1 → darwin_agentic_cloud-3.0.2}/docs/AGENT_INVENTORY.md +0 -0
- {darwin_agentic_cloud-3.0.1 → darwin_agentic_cloud-3.0.2}/examples/example_workloads/hello.py +0 -0
- {darwin_agentic_cloud-3.0.1 → darwin_agentic_cloud-3.0.2}/examples/hello.py +0 -0
- {darwin_agentic_cloud-3.0.1 → darwin_agentic_cloud-3.0.2}/fly.toml +0 -0
- {darwin_agentic_cloud-3.0.1 → darwin_agentic_cloud-3.0.2}/infra/__init__.py +0 -0
- {darwin_agentic_cloud-3.0.1 → darwin_agentic_cloud-3.0.2}/infra/aws_runner/Dockerfile.batch-runner-python +0 -0
- {darwin_agentic_cloud-3.0.1 → darwin_agentic_cloud-3.0.2}/infra/aws_runner/Dockerfile.runner-node +0 -0
- {darwin_agentic_cloud-3.0.1 → darwin_agentic_cloud-3.0.2}/infra/aws_runner/Dockerfile.runner-python +0 -0
- {darwin_agentic_cloud-3.0.1 → darwin_agentic_cloud-3.0.2}/infra/aws_runner/__init__.py +0 -0
- {darwin_agentic_cloud-3.0.1 → darwin_agentic_cloud-3.0.2}/infra/aws_runner/batch_deploy.py +0 -0
- {darwin_agentic_cloud-3.0.1 → darwin_agentic_cloud-3.0.2}/infra/aws_runner/batch_runner.py +0 -0
- {darwin_agentic_cloud-3.0.1 → darwin_agentic_cloud-3.0.2}/infra/aws_runner/deploy.py +0 -0
- {darwin_agentic_cloud-3.0.1 → darwin_agentic_cloud-3.0.2}/infra/aws_runner/runner.mjs +0 -0
- {darwin_agentic_cloud-3.0.1 → darwin_agentic_cloud-3.0.2}/infra/aws_runner/runner.py +0 -0
- {darwin_agentic_cloud-3.0.1 → darwin_agentic_cloud-3.0.2}/infra/bake_demo_attestation.py +0 -0
- {darwin_agentic_cloud-3.0.1 → darwin_agentic_cloud-3.0.2}/infra/batch_smoketest.py +0 -0
- {darwin_agentic_cloud-3.0.1 → darwin_agentic_cloud-3.0.2}/infra/modal_smoketest.py +0 -0
- {darwin_agentic_cloud-3.0.1 → darwin_agentic_cloud-3.0.2}/tests/__init__.py +0 -0
- {darwin_agentic_cloud-3.0.1 → darwin_agentic_cloud-3.0.2}/tests/fixtures/ec2_ondemand_m5xlarge.json +0 -0
- {darwin_agentic_cloud-3.0.1 → darwin_agentic_cloud-3.0.2}/tests/fixtures/ec2_spot_history_m5xlarge.json +0 -0
- {darwin_agentic_cloud-3.0.1 → darwin_agentic_cloud-3.0.2}/tests/runtime/__init__.py +0 -0
- {darwin_agentic_cloud-3.0.1 → darwin_agentic_cloud-3.0.2}/tests/runtime/test_router.py +0 -0
- {darwin_agentic_cloud-3.0.1 → darwin_agentic_cloud-3.0.2}/tests/runtime/test_runtime_v02.py +0 -0
- {darwin_agentic_cloud-3.0.1 → darwin_agentic_cloud-3.0.2}/tests/substrate/test_aws_batch.py +0 -0
- {darwin_agentic_cloud-3.0.1 → darwin_agentic_cloud-3.0.2}/tests/substrate/test_aws_lambda.py +0 -0
- {darwin_agentic_cloud-3.0.1 → darwin_agentic_cloud-3.0.2}/tests/substrate/test_aws_pricing.py +0 -0
- {darwin_agentic_cloud-3.0.1 → darwin_agentic_cloud-3.0.2}/tests/substrate/test_base.py +0 -0
- {darwin_agentic_cloud-3.0.1 → darwin_agentic_cloud-3.0.2}/tests/substrate/test_identity.py +0 -0
- {darwin_agentic_cloud-3.0.1 → darwin_agentic_cloud-3.0.2}/tests/substrate/test_local_docker.py +0 -0
- {darwin_agentic_cloud-3.0.1 → darwin_agentic_cloud-3.0.2}/tests/substrate/test_modal.py +0 -0
- {darwin_agentic_cloud-3.0.1 → darwin_agentic_cloud-3.0.2}/tests/test_admin_cli.py +0 -0
- {darwin_agentic_cloud-3.0.1 → darwin_agentic_cloud-3.0.2}/tests/test_attestation.py +0 -0
- {darwin_agentic_cloud-3.0.1 → darwin_agentic_cloud-3.0.2}/tests/test_class_keys.py +0 -0
- {darwin_agentic_cloud-3.0.1 → darwin_agentic_cloud-3.0.2}/tests/test_cost.py +0 -0
- {darwin_agentic_cloud-3.0.1 → darwin_agentic_cloud-3.0.2}/tests/test_server_signing.py +0 -0
- {darwin_agentic_cloud-3.0.1 → darwin_agentic_cloud-3.0.2}/tests/test_smoke.py +0 -0
- {darwin_agentic_cloud-3.0.1 → darwin_agentic_cloud-3.0.2}/tests/test_storage.py +0 -0
- {darwin_agentic_cloud-3.0.1 → darwin_agentic_cloud-3.0.2}/tests/test_ui.py +0 -0
- {darwin_agentic_cloud-3.0.1 → darwin_agentic_cloud-3.0.2}/uv.lock +0 -0
|
@@ -7,6 +7,24 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [3.0.2] — 2026-05-28
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
|
|
14
|
+
- First-run welcome banner. When a user runs any `darwin` command for the first
|
|
15
|
+
time after install, an ASCII brand banner prints with the tagline, motto, three
|
|
16
|
+
starter commands, and links to demo, repo, and docs. Shown once per install
|
|
17
|
+
via a marker file at `~/.darwin/welcomed`. Suppressed in non-interactive shells
|
|
18
|
+
(pipes, scripts, CI) and when `DARWIN_SUPPRESS_WELCOME=1` is set.
|
|
19
|
+
- `darwin welcome` command to re-trigger the banner on demand.
|
|
20
|
+
|
|
21
|
+
### Internal
|
|
22
|
+
|
|
23
|
+
- New `render_welcome()` and `print_welcome()` functions in
|
|
24
|
+
`darwin/agenticcloud/ui.py`, reusing the existing `BANNER`, `BRAND_GREEN`,
|
|
25
|
+
`BRAND_AMBER`, and `BRAND_DIM` brand tokens for visual continuity with the
|
|
26
|
+
attestation cert panel.
|
|
27
|
+
|
|
10
28
|
## [3.0.1] — 2026-05-27
|
|
11
29
|
|
|
12
30
|
### Fixed
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: darwin-agentic-cloud
|
|
3
|
-
Version: 3.0.
|
|
3
|
+
Version: 3.0.2
|
|
4
4
|
Summary: Darwin — adaptive software systems. Includes darwin.agenticcloud, the verifiable agentic cloud. Open-source compute for AI agents with cryptographically signed attestations.
|
|
5
5
|
Project-URL: Homepage, https://github.com/vje013/darwin-agentic-cloud
|
|
6
6
|
Project-URL: Repository, https://github.com/vje013/darwin-agentic-cloud
|
|
@@ -275,7 +275,7 @@ Description-Content-Type: text/markdown
|
|
|
275
275
|
[](https://www.python.org/downloads/)
|
|
276
276
|
[](https://darwin-agentic-cloud.fly.dev/.well-known/schemas/attestation/v0.2)
|
|
277
277
|
|
|
278
|
-
> **Verifiable compute for AI agents.** Every workload signed. Every cost capped. Every routing decision auditable. Open
|
|
278
|
+
> **Verifiable compute for AI agents.** Every workload signed. Every cost capped. Every routing decision auditable. Open source, verified, free compute.
|
|
279
279
|
|
|
280
280
|
**Install:** `pip install darwin-agentic-cloud`
|
|
281
281
|
|
|
@@ -285,6 +285,11 @@ Description-Content-Type: text/markdown
|
|
|
285
285
|
|
|
286
286
|
**v0.2 Schema:** https://darwin-agentic-cloud.fly.dev/.well-known/schemas/attestation/v0.2
|
|
287
287
|
|
|
288
|
+
---
|
|
289
|
+
## Darwin's Mission
|
|
290
|
+
|
|
291
|
+
Increase AI adoption by increasing AI safety.
|
|
292
|
+
|
|
288
293
|
---
|
|
289
294
|
|
|
290
295
|
## The question agents can't answer today
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
[](https://www.python.org/downloads/)
|
|
7
7
|
[](https://darwin-agentic-cloud.fly.dev/.well-known/schemas/attestation/v0.2)
|
|
8
8
|
|
|
9
|
-
> **Verifiable compute for AI agents.** Every workload signed. Every cost capped. Every routing decision auditable. Open
|
|
9
|
+
> **Verifiable compute for AI agents.** Every workload signed. Every cost capped. Every routing decision auditable. Open source, verified, free compute.
|
|
10
10
|
|
|
11
11
|
**Install:** `pip install darwin-agentic-cloud`
|
|
12
12
|
|
|
@@ -16,6 +16,11 @@
|
|
|
16
16
|
|
|
17
17
|
**v0.2 Schema:** https://darwin-agentic-cloud.fly.dev/.well-known/schemas/attestation/v0.2
|
|
18
18
|
|
|
19
|
+
---
|
|
20
|
+
## Darwin's Mission
|
|
21
|
+
|
|
22
|
+
Increase AI adoption by increasing AI safety.
|
|
23
|
+
|
|
19
24
|
---
|
|
20
25
|
|
|
21
26
|
## The question agents can't answer today
|
|
@@ -14,6 +14,8 @@ Examples:
|
|
|
14
14
|
from __future__ import annotations
|
|
15
15
|
|
|
16
16
|
import json
|
|
17
|
+
import os
|
|
18
|
+
import sys
|
|
17
19
|
from datetime import UTC
|
|
18
20
|
from pathlib import Path
|
|
19
21
|
from typing import Annotated
|
|
@@ -35,6 +37,63 @@ app = typer.Typer(
|
|
|
35
37
|
no_args_is_help=True,
|
|
36
38
|
add_completion=False,
|
|
37
39
|
)
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
# -------------------------------------------------------------------
|
|
43
|
+
# First-run welcome
|
|
44
|
+
# -------------------------------------------------------------------
|
|
45
|
+
|
|
46
|
+
_WELCOME_MARKER = Path.home() / ".darwin" / "welcomed"
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
def _show_welcome_if_first_run() -> None:
|
|
50
|
+
"""Print the welcome banner exactly once per user install.
|
|
51
|
+
|
|
52
|
+
Suppressed in non-interactive shells, when piped, or when the user
|
|
53
|
+
sets DARWIN_SUPPRESS_WELCOME=1. The marker file at
|
|
54
|
+
~/.darwin/welcomed records that the user has been welcomed.
|
|
55
|
+
"""
|
|
56
|
+
try:
|
|
57
|
+
if not sys.stdout.isatty():
|
|
58
|
+
return
|
|
59
|
+
if os.environ.get("DARWIN_SUPPRESS_WELCOME"):
|
|
60
|
+
return
|
|
61
|
+
if _WELCOME_MARKER.exists():
|
|
62
|
+
return
|
|
63
|
+
|
|
64
|
+
from darwin import __version__ as _v
|
|
65
|
+
from darwin.agenticcloud.ui import print_welcome
|
|
66
|
+
|
|
67
|
+
print_welcome(Console(), version=_v)
|
|
68
|
+
|
|
69
|
+
_WELCOME_MARKER.parent.mkdir(parents=True, exist_ok=True)
|
|
70
|
+
_WELCOME_MARKER.touch()
|
|
71
|
+
except Exception:
|
|
72
|
+
# Welcome banner must never block real commands. If anything
|
|
73
|
+
# goes wrong here (terminal weirdness, IO error, etc.), swallow
|
|
74
|
+
# silently and proceed with the user's command.
|
|
75
|
+
pass
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
@app.callback()
|
|
79
|
+
def _root(ctx: typer.Context) -> None:
|
|
80
|
+
"""Darwin Agentic Cloud — verifiable compute for AI agents."""
|
|
81
|
+
# The `welcome` command renders the banner itself; skip the
|
|
82
|
+
# auto-trigger here to avoid double-rendering.
|
|
83
|
+
if ctx.invoked_subcommand == "welcome":
|
|
84
|
+
return
|
|
85
|
+
_show_welcome_if_first_run()
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
@app.command()
|
|
89
|
+
def welcome() -> None:
|
|
90
|
+
"""Show the Darwin welcome banner."""
|
|
91
|
+
from darwin import __version__ as _v
|
|
92
|
+
from darwin.agenticcloud.ui import print_welcome
|
|
93
|
+
|
|
94
|
+
print_welcome(Console(), version=_v)
|
|
95
|
+
|
|
96
|
+
|
|
38
97
|
keys_app = typer.Typer(help="Manage signing keys.", no_args_is_help=True)
|
|
39
98
|
attest_app = typer.Typer(help="Work with attestations.", no_args_is_help=True)
|
|
40
99
|
history_app = typer.Typer(help="Query attestation history.", no_args_is_help=True)
|
|
@@ -91,6 +91,103 @@ def print_banner(
|
|
|
91
91
|
console.print()
|
|
92
92
|
|
|
93
93
|
|
|
94
|
+
# -------------------------------------------------------------------
|
|
95
|
+
# First-run welcome
|
|
96
|
+
# -------------------------------------------------------------------
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
def render_welcome(
|
|
100
|
+
version: str,
|
|
101
|
+
demo_url: str = "https://darwin-agentic-cloud.fly.dev/demo",
|
|
102
|
+
repo_url: str = "https://github.com/vje013/darwin-agentic-cloud",
|
|
103
|
+
docs_url: str = "https://darwin-agentic-cloud.fly.dev/docs",
|
|
104
|
+
) -> Group:
|
|
105
|
+
"""First-run welcome: ASCII banner + tagline + 3 commands + links.
|
|
106
|
+
|
|
107
|
+
Visually distinct from `render_banner()` (which prints version/signer
|
|
108
|
+
metadata for repeat users). Designed to orient a new user in their
|
|
109
|
+
first 30 seconds with the tool.
|
|
110
|
+
"""
|
|
111
|
+
parts: list = []
|
|
112
|
+
|
|
113
|
+
parts.append(Text(BANNER, style=f"bold {BRAND_GREEN}"))
|
|
114
|
+
parts.append(Text(""))
|
|
115
|
+
|
|
116
|
+
motto = Text()
|
|
117
|
+
motto.append(" ")
|
|
118
|
+
motto.append("✦", style=f"bold {BRAND_AMBER}")
|
|
119
|
+
motto.append(" SECURITAS · STABILITAS · SIGNUM ", style=BRAND_GREEN)
|
|
120
|
+
motto.append("✦", style=f"bold {BRAND_AMBER}")
|
|
121
|
+
parts.append(motto)
|
|
122
|
+
parts.append(Text(""))
|
|
123
|
+
|
|
124
|
+
parts.append(Text(" Verifiable and free compute for AI agents.", style=f"bold {BRAND_GREEN}"))
|
|
125
|
+
parts.append(
|
|
126
|
+
Text(" Cryptographically signed execution attestations.", style=f"bold {BRAND_GREEN}")
|
|
127
|
+
)
|
|
128
|
+
parts.append(Text(" MCP-native.", style=f"bold {BRAND_GREEN}"))
|
|
129
|
+
parts.append(Text(""))
|
|
130
|
+
|
|
131
|
+
parts.append(Text(" " + "─" * 59, style=BRAND_DIM))
|
|
132
|
+
parts.append(Text(""))
|
|
133
|
+
|
|
134
|
+
parts.append(Text(" Try it in 3 commands:", style=f"bold {BRAND_GREEN}"))
|
|
135
|
+
parts.append(Text(""))
|
|
136
|
+
|
|
137
|
+
cmd1 = Text(" 1. ", style=f"bold {BRAND_GREEN}")
|
|
138
|
+
cmd1.append("darwin list", style=f"bold {BRAND_GREEN}")
|
|
139
|
+
parts.append(cmd1)
|
|
140
|
+
parts.append(
|
|
141
|
+
Text(" See which compute substrates are available right now.", style=BRAND_GREEN)
|
|
142
|
+
)
|
|
143
|
+
parts.append(Text(""))
|
|
144
|
+
|
|
145
|
+
cmd2 = Text(" 2. ", style=f"bold {BRAND_GREEN}")
|
|
146
|
+
cmd2.append("echo 'print(\"hello\")' > hello.py", style=BRAND_GREEN)
|
|
147
|
+
parts.append(cmd2)
|
|
148
|
+
parts.append(Text(" darwin run hello.py --save att.json", style=f"bold {BRAND_GREEN}"))
|
|
149
|
+
parts.append(Text(" Execute a workload, get a signed attestation.", style=BRAND_GREEN))
|
|
150
|
+
parts.append(Text(""))
|
|
151
|
+
|
|
152
|
+
cmd3 = Text(" 3. ", style=f"bold {BRAND_GREEN}")
|
|
153
|
+
cmd3.append("darwin verify att.json", style=f"bold {BRAND_GREEN}")
|
|
154
|
+
parts.append(cmd3)
|
|
155
|
+
parts.append(
|
|
156
|
+
Text(" Cryptographically verify the attestation against", style=BRAND_GREEN)
|
|
157
|
+
)
|
|
158
|
+
parts.append(Text(" the public keylist.", style=BRAND_GREEN))
|
|
159
|
+
parts.append(Text(""))
|
|
160
|
+
|
|
161
|
+
parts.append(Text(" " + "─" * 59, style=BRAND_DIM))
|
|
162
|
+
parts.append(Text(""))
|
|
163
|
+
|
|
164
|
+
link_demo = Text(" Live demo: ", style=BRAND_GREEN)
|
|
165
|
+
link_demo.append(demo_url, style=f"underline {BRAND_GREEN}")
|
|
166
|
+
parts.append(link_demo)
|
|
167
|
+
|
|
168
|
+
link_repo = Text(" GitHub: ", style=BRAND_GREEN)
|
|
169
|
+
link_repo.append(repo_url, style=f"underline {BRAND_GREEN}")
|
|
170
|
+
parts.append(link_repo)
|
|
171
|
+
|
|
172
|
+
link_docs = Text(" Docs: ", style=BRAND_GREEN)
|
|
173
|
+
link_docs.append(docs_url, style=f"underline {BRAND_GREEN}")
|
|
174
|
+
parts.append(link_docs)
|
|
175
|
+
|
|
176
|
+
parts.append(Text(""))
|
|
177
|
+
|
|
178
|
+
parts.append(Text(" This message shown once per install.", style=BRAND_DIM))
|
|
179
|
+
parts.append(Text(" Run `darwin welcome` to see it again.", style=BRAND_DIM))
|
|
180
|
+
|
|
181
|
+
return Group(*parts)
|
|
182
|
+
|
|
183
|
+
|
|
184
|
+
def print_welcome(console: Console, version: str) -> None:
|
|
185
|
+
"""Convenience: print the welcome with appropriate vertical spacing."""
|
|
186
|
+
console.print()
|
|
187
|
+
console.print(render_welcome(version=version))
|
|
188
|
+
console.print()
|
|
189
|
+
|
|
190
|
+
|
|
94
191
|
# -------------------------------------------------------------------
|
|
95
192
|
# Matrix boot sequence
|
|
96
193
|
# -------------------------------------------------------------------
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "darwin-agentic-cloud"
|
|
3
|
-
version = "3.0.
|
|
3
|
+
version = "3.0.2"
|
|
4
4
|
description = "Darwin — adaptive software systems. Includes darwin.agenticcloud, the verifiable agentic cloud. Open-source compute for AI agents with cryptographically signed attestations."
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
requires-python = ">=3.11"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{darwin_agentic_cloud-3.0.1 → darwin_agentic_cloud-3.0.2}/DARWIN_AGENTIC_CLOUD_PHASE_2_SPEC.md
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
|
{darwin_agentic_cloud-3.0.1 → darwin_agentic_cloud-3.0.2}/darwin/agenticcloud/attestation.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{darwin_agentic_cloud-3.0.1 → darwin_agentic_cloud-3.0.2}/darwin/agenticcloud/runtime_v02.py
RENAMED
|
File without changes
|
|
File without changes
|
{darwin_agentic_cloud-3.0.1 → darwin_agentic_cloud-3.0.2}/darwin/agenticcloud/schemas/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{darwin_agentic_cloud-3.0.1 → darwin_agentic_cloud-3.0.2}/darwin/agenticcloud/substrate/__init__.py
RENAMED
|
File without changes
|
{darwin_agentic_cloud-3.0.1 → darwin_agentic_cloud-3.0.2}/darwin/agenticcloud/substrate/aws_batch.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{darwin_agentic_cloud-3.0.1 → darwin_agentic_cloud-3.0.2}/darwin/agenticcloud/substrate/base.py
RENAMED
|
File without changes
|
{darwin_agentic_cloud-3.0.1 → darwin_agentic_cloud-3.0.2}/darwin/agenticcloud/substrate/identity.py
RENAMED
|
File without changes
|
|
File without changes
|
{darwin_agentic_cloud-3.0.1 → darwin_agentic_cloud-3.0.2}/darwin/agenticcloud/substrate/modal.py
RENAMED
|
File without changes
|
{darwin_agentic_cloud-3.0.1 → darwin_agentic_cloud-3.0.2}/darwin/agenticcloud/templates/demo.html
RENAMED
|
File without changes
|
|
File without changes
|
{darwin_agentic_cloud-3.0.1 → darwin_agentic_cloud-3.0.2}/darwin/agenticcloud/templates/docs.html
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{darwin_agentic_cloud-3.0.1 → darwin_agentic_cloud-3.0.2}/examples/example_workloads/hello.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{darwin_agentic_cloud-3.0.1 → darwin_agentic_cloud-3.0.2}/infra/aws_runner/Dockerfile.runner-node
RENAMED
|
File without changes
|
{darwin_agentic_cloud-3.0.1 → darwin_agentic_cloud-3.0.2}/infra/aws_runner/Dockerfile.runner-python
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
|
{darwin_agentic_cloud-3.0.1 → darwin_agentic_cloud-3.0.2}/tests/fixtures/ec2_ondemand_m5xlarge.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{darwin_agentic_cloud-3.0.1 → darwin_agentic_cloud-3.0.2}/tests/substrate/test_aws_lambda.py
RENAMED
|
File without changes
|
{darwin_agentic_cloud-3.0.1 → darwin_agentic_cloud-3.0.2}/tests/substrate/test_aws_pricing.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{darwin_agentic_cloud-3.0.1 → darwin_agentic_cloud-3.0.2}/tests/substrate/test_local_docker.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
|