Skill packaging manifest — identity metadata for a mounted skill.
Manifestis assembled from a skill's name, semver, tool list, public key,
provider-key names (not secrets), and a content digest. Atapp.freeze()
the digest is finalized over tool schemas + template sources + public key and
the manifest is immutable thereafter.
skill.manifest
| Name | Type | Default | Description |
|---|---|---|---|
type
|
|
— | |
qualified_name
|
|
— | |
element_type
|
|
— | |
description
|
|
— | |
source_file
|
|
— | |
line_number
|
|
— | |
is_autodoc
|
|
— | |
autodoc_element
|
|
— | |
_autodoc_template
|
|
— | |
_autodoc_url_path
|
|
— | |
_autodoc_page_type
|
|
— | |
title
|
|
— | |
doc_content_hash
|
|
— |
Symbols on this page
Serializable skill identity record.
Encode an Ed25519 public key as url-safe base64 (no padding).
SHA-256 digest over tool schemas + template sources + public key.
Canonical JSON (sorted keys, compact separators) so identical inputs yield
a stablesha256:...…
Build aManifest.
Whencontent_digestis omitted, a digest is computed from
tool_schemas + template_sources+ the encoded public key when schemas are…
Manifest
class
Serializable skill identity record.
encode_public_key
function
def encode_public_key(public_key: Any) -> str
Encode an Ed25519 public key as url-safe base64 (no padding).
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
public_key
|
Any
|
— |
compute_content_digest
function
def compute_content_digest(*, tool_schemas: Mapping[str, Mapping[str, Any]], template_sources: Mapping[str, str], public_key: str) -> str
SHA-256 digest over tool schemas + template sources + public key.
Canonical JSON (sorted keys, compact separators) so identical inputs yield
a stablesha256:...digest across freezes.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
tool_schemas
|
Mapping[str, Mapping[str, Any]]
|
— | |
template_sources
|
Mapping[str, str]
|
— | |
public_key
|
str
|
— |
assemble_manifest
function
def assemble_manifest(*, name: str, version: str, tools: tuple[str, ...], public_key: Any, provider_keys: tuple[str, ...] = (), content_digest: str | None = None, tool_schemas: Mapping[str, Mapping[str, Any]] | None = None, template_sources: Mapping[str, str] | None = None) -> Manifest
Build aManifest.
Whencontent_digestis omitted, a digest is computed from
tool_schemas + template_sources+ the encoded public key when
schemas are provided; otherwise a provisional identity digest is used
(pre-freeze convenience — freeze replaces it viacompute_content_digest()).
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
name
|
str
|
— | |
version
|
str
|
— | |
tools
|
tuple[str, ...]
|
— | |
public_key
|
Any
|
— | |
provider_keys
|
tuple[str, ...]
|
()
|
|
content_digest
|
str | None
|
None
|
|
tool_schemas
|
Mapping[str, Mapping[str, Any]] | None
|
None
|
|
template_sources
|
Mapping[str, str] | None
|
None
|
View source · /home/runner/work/chirp/chirp/site/../src/chirp/skill/manifest.py:1