roboto.domain.skills.operations#
Module Contents#
- class roboto.domain.skills.operations.CreateSkillRequest(/, **data)#
Bases:
pydantic.BaseModelCreate a new skill plus its first version (
version=1) in one call.The author is auto-subscribed at creation time with
ai_versionset to1so the skill is immediately offered to the author’s AI.- Parameters:
data (Any)
- accessibility: roboto.domain.skills.record.SkillAccessibility#
Private(only the author),Org(visible to every org member, author-only to edit), orOrgEditable(visible to every org member, editable by any member who subscribes). The author can flip this later viaUpdateSkillMetadataRequest.- Type:
Visibility scope
- body: str#
Procedure text v1 — the instructions the model executes when this version is invoked. Bumping the version creates a new row; this field never re-edits v1’s body after the fact (use
UpdateSkillVersionRequestfor that).
- description: str = None#
“When to use” text for v1. Surfaces verbatim in the
load_skilltool’s description so the model can decide whether to invoke this skill. Bumping the version replaces this text on the new row; this field never re-edits v1’s description after the fact.
- model_config#
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- name: str = None#
Skill name. Unique per org across every org-visible skill (
OrgandOrgEditableshare one name namespace); private skills are unique per(org_id, created_by). A user’s private skill and an org-shared skill may therefore share a name without conflict. Must matchSKILL_NAME_PATTERNso the name is parseable inside the chat composer’s/slugtoken (no whitespace, letters/digits/hyphens/underscores only).
- tags: list[str] = None#
Initial set of tags. Edits after creation flow through
UpdateSkillMetadataRequest.put_tags/.remove_tagsso concurrent updates merge cleanly — seeSkillRecord.tags.
- class roboto.domain.skills.operations.CreateSkillVersionRequest(/, **data)#
Bases:
pydantic.BaseModelAdd a new version to an existing skill. The new version is assigned
MAX(version) + 1.- Parameters:
data (Any)
- body: str#
Procedure text the model executes when this version is invoked.
- description: str = None#
“When to use” text for this version. Surfaces verbatim in the
load_skilltool’s description on every turn this version is offered to the AI.
- model_config#
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- roboto.domain.skills.operations.SKILL_NAME_PATTERN = '^[A-Za-z0-9_-]+$'#
- class roboto.domain.skills.operations.SetSkillSubscriptionRequest(/, **data)#
Bases:
pydantic.BaseModelUpsert the caller’s subscription for a skill.
Idempotent: creates the subscription row if missing, otherwise updates
ai_versionin place. Visibility-gated only — the caller does not need to be the skill’s author. The server enforces thatai_version, if provided, references an existing version of the skill.- Parameters:
data (Any)
- ai_version: int | None = None#
Pinned AI-available version.
Nonemeans “subscribed, but not exposed to AI”.
- model_config#
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class roboto.domain.skills.operations.SkillListScope#
Bases:
roboto.compat.StrEnumWhich caller-relative slice of the visible skills a list-skills query targets.
- Org = 'org'#
Org-shared skills authored by someone else, regardless of whether the caller has subscribed.
- Personal = 'personal'#
Skills the caller authored or has subscribed to — their personal set.
- class roboto.domain.skills.operations.UpdateSkillMetadataRequest(/, **data)#
Bases:
pydantic.BaseModelUpdate top-level skill identity.
Editing
name/put_tags/remove_tagsis permitted for the author and — on anOrgEditableskill — for any subscribed org member. Changingaccessibilityis always author-only.- Parameters:
data (Any)
- accessibility: roboto.domain.skills.record.SkillAccessibility | roboto.sentinels.NotSetType#
New visibility scope. Omit to leave unchanged. Author-only — a subscribed non-author editor of an
OrgEditableskill cannot change it. FlippingPrivate→Org/OrgEditableimmediately exposes the skill to every org member; flipping toPrivateprunes every non-author subscription.
- model_config#
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- name: str | roboto.sentinels.NotSetType = None#
New skill name. Omit (the
NotSetdefault) to leave unchanged. Must matchSKILL_NAME_PATTERNand stays unique per org (private skills per author).
- put_tags: list[str] = None#
Tags to add. Empty (the default) means “no change to tags.” Additive semantics — does not clear other tags.
- remove_tags: list[str] = None#
Tags to remove. Empty (the default) means “no change to tags.” Removing a tag the skill doesn’t have is a no-op.
- class roboto.domain.skills.operations.UpdateSkillVersionRequest(/, **data)#
Bases:
pydantic.BaseModelEdit fields on an existing version (mutates in place).
- Parameters:
data (Any)
- body: str | roboto.sentinels.NotSetType#
New procedure text. Omit (the
NotSetdefault) to leave unchanged. The change applies in place to this version — subscribers pinned to it will see the new body on their next AI invocation; there is no per-edit revision.
- description: str | roboto.sentinels.NotSetType = None#
New “when to use” text. Omit (the
NotSetdefault) to leave unchanged.
- model_config#
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].