Repository navigation
v0.23.0
Extensions now say what they let an agent do, and what they need on the computer. See Extensions and Programs it needs.
New features
- Capabilities described for the person (#62).
metadata["agent-kit"].capabilitieslists what the agent can do with an extension: each one's skills and tools together, with a label and description per language./extensions,about_me,extension infoand the catalog show them (the chat controller's entries, Captain Whiskers' drawer, a marketplace'scatalog.json), and the catalog's search matches them. A capability's id counts as provided, sorequiresgates on it as before; give it a neutral id (lms-grading) so skills depend on what can be done, not on which extension does it. Installing refuses a capability naming a skill the extension lacks;/extensionssays when a capability's tool isn't offered by its running server. - The programs an extension needs (#63).
metadata["agent-kit"].requirementsdeclares programs the person installs (Docker, ffmpeg…): how to check the version, how to install it per system, and the capabilities that need it. The kit checks them when a session opens (a bare name on thePATH, run only with option arguments, no shell, a timeout) and never installs them. One the whole extension needs keeps it off with the install command for this system; one only some capabilities need keeps just those off (not provided, their skills left out), and the agent says what to install.extension add,/extensions installand the chat controller say what's missing; the catalog shows "Needs Docker". - New exports:
describeCapability(),checkRequirements(), and the typesExtensionCapability,CapabilityText,DescribedCapability,AboutExtension,UnavailableCapability,ExtensionRequirement,RequirementCheck. @falkenslab/agent-kit-catalog0.2.0 writes and checkscapabilitiesandrequirementsincatalog.json; both schemas inschemas/describe them.
Breaking changes
needsis gone. Declarerequirementsinstead:"needs": ["docker"]becomes"requirements": [{ "name": "Docker", "program": "docker", "install": { "url": "https://docs.docker.com/get-docker/" } }].addExtension(),installFromMarketplace()andinstallExtension()also returnmissing: what the extension needs and this computer lacks, as sentences to show the person.ResolvedExtensions.activeentries carryunavailable, andExtensionsStatus.aboutentries areAboutExtension(withcapabilities,unavailableandservers);SessionFacts' active extensions carrycapabilitiesandunavailable.
Internal
- Two tests that failed at random under the whole suite's load now wait for what they check instead of a fixed time.
Captain Whiskers
Captain Whiskers 0.4.0, the example agent built on agent-kit 0.23.0, as a Windows app: download the installer. It's unsigned, so SmartScreen warns about it; it asks for a Claude key on first start and keeps everything in ~/.captain-whiskers. New: his jokebook (1.3.0) declares its capabilities, "Pirate jokes" and "Ranking jokes", which /extensions and the drawer show in his language; the drawer's details also say what an extension needs on the computer. An installed jokebook shows an update to 1.3.0.