Files
sjhu 571e14a236 feat: upgrade to upstream v2026.3.28
Major upgrade from e26988a38 to upstream v2026.3.28 (f9b107928).
Key changes:
- Upstream src/, ui/, extensions/ (89 bundled extensions)
- Zero-token web providers preserved in src/zero-token/
- AskOnce plugin restored and registered as CLI command
- Added missing packages: @anthropic-ai/vertex-sdk, @modelcontextprotocol/sdk
- Fixed tsconfig rootDir, skipLibCheck for plugin-sdk DTS build
- Added askonce to bundled plugin metadata and package.json exports
- Fixed AskOnce CLI command registration (missing commands metadata)
- Restored AskOnce adapter imports (correct 5-level relative paths)
- Removed stale migration artifacts from root directory
2026-03-30 17:58:12 +08:00

1.8 KiB

Plugin SDK Boundary

This directory is the public contract between plugins and core. Changes here can affect bundled plugins and third-party plugins.

Source Of Truth

  • Docs:
    • docs/plugins/sdk-overview.md
    • docs/plugins/sdk-entrypoints.md
    • docs/plugins/sdk-runtime.md
    • docs/plugins/sdk-migration.md
    • docs/plugins/architecture.md
  • Definition files:
    • package.json
    • scripts/lib/plugin-sdk-entrypoints.json
    • src/plugin-sdk/entrypoints.ts
    • src/plugin-sdk/api-baseline.ts
    • src/plugin-sdk/plugin-entry.ts
    • src/plugin-sdk/core.ts
    • src/plugin-sdk/provider-entry.ts

Boundary Rules

  • Prefer narrow, purpose-built subpaths over broad convenience re-exports.
  • Do not expose implementation convenience from src/channels/**, src/agents/**, src/plugins/**, or other internals unless you are intentionally promoting a supported public contract.
  • Prefer api.runtime or a focused SDK facade over telling extensions to reach into host internals directly.
  • When core or tests need bundled plugin helpers, expose them through extensions/<id>/api.ts and a matching src/plugin-sdk/<id>.ts facade instead of importing extensions/<id>/src/** or extensions/<id>/onboard.js directly.

Expanding The Boundary

  • Additive, backwards-compatible changes are the default.
  • When adding or changing a public subpath, keep these aligned:
    • docs in docs/plugins/*
    • scripts/lib/plugin-sdk-entrypoints.json
    • src/plugin-sdk/entrypoints.ts
    • package.json exports
    • API baseline and export checks
  • If the seam is for bundled-provider onboarding/config helpers, update the generated plugin facades instead of teaching core tests or commands to reach into private extension files.
  • Breaking removals or renames are major-version work, not drive-by cleanup.