Skip to content

feat: support external material locators - #247

Merged
chailandau merged 3 commits into
mainfrom
chai/external-materials
Jul 29, 2026
Merged

feat: support external material locators#247
chailandau merged 3 commits into
mainfrom
chai/external-materials

Conversation

@chailandau

Copy link
Copy Markdown
Collaborator

Why

Ghost material guidance needs to point at authenticated or provider-backed sources without fetching them itself or collapsing retrieval context into prose.

What

  • Accept bare material strings and annotated { locator, note } declarations
  • Allow validated https:, mcp:, figma:, and github: external locators while rejecting unsafe or targetless schemes
  • Preserve notes through pull, embed, and review output, and report external-access requirements during export
  • Teach host agents to use their normal connection and permission flows without requesting secrets
  • Add a minor changeset and compatibility helpers for TypeScript consumers
  • Read Vessel Light test payloads from their stable repository source so concurrent package builds cannot race CLI tests

Risk Assessment

Medium-low — this widens public material types and adds optional JSON fields, but retains bare strings and legacy tier: "url" values. Ghost remains offline and external access stays with the host agent.

References

  • pnpm test: 197 passed, 1 skipped
  • pnpm check: passed, including packed-package, release-tarball, terminology, and Vessel Light closure checks
  • just ci: passed
  • Pre-push test, ci, and Block-org checks: passed

Generated with Goose

Allow annotated material references and approved connector schemes while preserving notes through pull, review, and export. Keep external access host-managed and report archive portability accurately.

Co-authored-by: Goose <opensource@block.xyz>
Ai-assisted: true
@chailandau
chailandau force-pushed the chai/external-materials branch from 196526a to 8ea72ae Compare July 29, 2026 16:55
npub1ph5a5cnj7f3rlw4054e0etpcvd9afzm8ly7gh6zh5nszg2wewmwsxcukkk and others added 2 commits July 29, 2026 13:19
…me docs

Address review gaps on the external material locator work:

- Export audit names the provider (mcp/figma/github) instead of a flat
  "connection-dependent" label, at the markdown layer only; the export
  JSON access contract is unchanged. Adds externalLocatorScheme() as the
  single source for scheme extraction.
- Add end-to-end coverage for a single node carrying a bare local path, a
  bare https: URL, and an annotated mcp: declaration together through pull,
  and widen export --strict to span mcp:/figma:/github:.
- Collapse the verbatim scheme list from six doc surfaces to one canonical
  enumeration in references/schema.md; other docs defer to it. The code
  allowlist remains the source of truth.

Co-authored-by: Chai Landau <chai@block.xyz>
Signed-off-by: Chai Landau <chai@block.xyz>
The changeset described the two original public helpers but not
externalLocatorScheme(), the third /core export added while naming the
export audit provider. Extend the entry to cover both.

Co-authored-by: Chai Landau <chai@block.xyz>
Signed-off-by: Chai Landau <chai@block.xyz>
@chailandau
chailandau marked this pull request as ready for review July 29, 2026 20:39
@chailandau
chailandau requested a review from nahiyankhan as a code owner July 29, 2026 20:39
@chailandau chailandau changed the title Support external material locators feat: support external material locators Jul 29, 2026
@chailandau
chailandau merged commit 6e248cc into main Jul 29, 2026
5 checks passed
@chailandau
chailandau deleted the chai/external-materials branch July 29, 2026 20:43
@github-actions github-actions Bot mentioned this pull request Jul 29, 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.

1 participant