Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions capiscio_sdk/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,12 @@
DVGrant,
)

# Easy connect API ("Let's Encrypt" style)
from .connect import CapiscIO, connect, from_env, AgentIdentity

# Event emission
from .events import EventEmitter

__all__ = [
"__version__",
# Security middleware
Expand Down Expand Up @@ -106,5 +112,12 @@
"finalize_dv_order",
"DVOrder",
"DVGrant",
# Easy Connect API ("Let's Encrypt" style)
"CapiscIO",
"connect",
"from_env",
"AgentIdentity",
# Event emission
"EventEmitter",
]

49 changes: 49 additions & 0 deletions capiscio_sdk/_rpc/client.py
Original file line number Diff line number Diff line change
Expand Up @@ -1275,6 +1275,55 @@ def get_key_info(self, key_id: str) -> tuple[Optional[dict], Optional[str]]:
"has_private_key": response.has_private_key,
"public_key_pem": response.public_key_pem,
}, None

def init(
self,
api_key: str = "",
agent_id: str = "",
server_url: str = "",
output_dir: str = "",
force: bool = False,
metadata: Optional[dict] = None,
) -> tuple[Optional[dict], Optional[str]]:
"""Initialize agent identity - Let's Encrypt style one-call setup.

Generates key pair, derives DID, registers with server, and creates agent card.
All cryptographic operations are performed by capiscio-core Go library.

Args:
api_key: API key for server authentication
agent_id: Agent UUID to register DID for
server_url: CapiscIO server URL (default: https://api.capisc.io)
output_dir: Directory for generated files (default: .capiscio)
force: Overwrite existing files
metadata: Additional metadata for agent card

Returns:
Tuple of (init_result, error_message)
init_result contains: did, agent_id, private_key_path, public_key_path,
agent_card_path, agent_card_json, registered
"""
request = simpleguard_pb2.InitRequest(
api_key=api_key,
agent_id=agent_id,
server_url=server_url,
output_dir=output_dir,
force=force,
metadata=metadata or {},
)
response = self._stub.Init(request)
error = response.error_message if response.error_message else None
if error:
return None, error
return {
"did": response.did,
"agent_id": response.agent_id,
"private_key_path": response.private_key_path,
"public_key_path": response.public_key_path,
"agent_card_path": response.agent_card_path,
"agent_card_json": response.agent_card_json,
"registered": response.registered,
}, None


class MCPClient:
Expand Down
4 changes: 2 additions & 2 deletions capiscio_sdk/_rpc/gen/capiscio/v1/badge_pb2.py

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions capiscio_sdk/_rpc/gen/capiscio/v1/common_pb2.py

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions capiscio_sdk/_rpc/gen/capiscio/v1/did_pb2.py

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions capiscio_sdk/_rpc/gen/capiscio/v1/mcp_pb2.py

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions capiscio_sdk/_rpc/gen/capiscio/v1/registry_pb2.py

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions capiscio_sdk/_rpc/gen/capiscio/v1/revocation_pb2.py

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions capiscio_sdk/_rpc/gen/capiscio/v1/scoring_pb2.py

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading
Loading