Skip to content

feat(acp): expose built-in skills through sources list acp calls - #9045

Merged
kalvinnchau merged 2 commits into
mainfrom
kalvin/builtin-skills-acp-contract
May 6, 2026
Merged

feat(acp): expose built-in skills through sources list acp calls#9045
kalvinnchau merged 2 commits into
mainfrom
kalvin/builtin-skills-acp-contract

Conversation

@kalvinnchau

@kalvinnchau kalvinnchau commented May 6, 2026

Copy link
Copy Markdown
Collaborator

exposes the builtins from https://github.com/aaif-goose/goose/tree/main/crates/goose/src/skills/builtins, via the ACP layer

Category: new-feature
User Impact: ACP clients can list shipped built-in skills separately from editable filesystem skills.
Problem: Built-in skills are available to Goose at runtime, but ACP clients had no explicit sources-list contract for discovering them. Treating every source as filesystem-backed also made read-only built-ins awkward to represent safely.
Solution: Extend _goose/sources/list to support type: "builtinSkill", return built-ins with stable synthetic paths, and keep mutation APIs limited to writable skill sources.

File changes

crates/goose-sdk/src/custom_requests.rs
Updates the ACP source DTO documentation so generated clients understand that source entries may be filesystem-backed or read-only built-ins, and documents the new builtinSkill listing behavior.

crates/goose/acp-schema.json
Regenerates the ACP schema descriptions for source entries and list requests so the published schema matches the new built-in skill contract.

crates/goose/src/skills/mod.rs
Assigns built-in skills stable builtin://skills/<name> directories when they are discovered, giving clients a durable identifier without implying filesystem editability.

crates/goose/src/sources.rs
Allows source listing for both skill and builtinSkill, keeps unsupported source types rejected, and normalizes built-ins as global read-only entries without supporting files. Adds coverage for built-in listing, filesystem precedence, and rejecting built-in mutations.

crates/goose/tests/acp_custom_requests_test.rs
Adds an ACP custom request test proving _goose/sources/list returns built-in skills when called with type: "builtinSkill".

ui/sdk/src/generated/types.gen.ts
Regenerates TypeScript ACP types so UI clients receive the updated source-entry and list-request documentation.

ui/sdk/src/generated/zod.gen.ts
Regenerates Zod schemas so runtime validation metadata stays aligned with the ACP schema.

Reproduction Steps

  1. Call _goose/sources/list with { "type": "builtinSkill" }.
  2. Confirm the response includes goose-doc-guide with type: "builtinSkill", global: true, and directory: "builtin://skills/goose-doc-guide".
  3. Call _goose/sources/list without a type or with { "type": "skill" } and confirm built-ins are not mixed into editable filesystem skills.
  4. Try update, delete, export, or import flows with type: "builtinSkill" and confirm they remain unsupported for read-only built-ins.

Allow the sources list endpoint to return shipped built-in skills with stable synthetic paths while keeping mutation APIs limited to writable filesystem skills.

Regenerate the ACP schema and SDK types so Goose2 can request builtinSkill sources through the typed client.

Signed-off-by: Kalvin Chau <kalvin@block.xyz>
@kalvinnchau kalvinnchau changed the title feat(acp): expose built-in skills through sources list feat(acp): expose built-in skills through sources list acp calls May 6, 2026
Signed-off-by: Kalvin Chau <kalvin@block.xyz>
@kalvinnchau
kalvinnchau enabled auto-merge May 6, 2026 14:42
@kalvinnchau
kalvinnchau added this pull request to the merge queue May 6, 2026
Merged via the queue into main with commit 4ef091a May 6, 2026
25 of 26 checks passed
@kalvinnchau
kalvinnchau deleted the kalvin/builtin-skills-acp-contract branch May 6, 2026 14:56
lifeizhou-ap added a commit that referenced this pull request May 7, 2026
…-refactor

* origin/main:
  refactor: switch to official new rust-sdk for ACP (#9062)
  refactor(goose2): remove attachment preamble (#9052)
  Align CODEOWNERS with pull request review rules in GOVERNANCE.md (#9056)
  bring MAINTAINERS.md up to date (#9053)
  feat(acp): expose built-in skills through sources list acp calls (#9045)
  add provider-first onboarding (#9039)
  feat: ACP streamable http spec compliance (#9034)
  Skip automatic fix which crashes (#9036)
  fix(openai): accept null tool_call arguments in streaming chunks (#9035)

Signed-off-by: Lifei Zhou <lifei@squareup.com>

# Conflicts:
#	ui/goose2/src/features/chat/hooks/useChat.ts
shafqatevo pushed a commit to shafqatevo/goose that referenced this pull request Aug 7, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants