fix(plugins): publish the plugin SDK under the @getpaseo scope
The daemon imports the plugin SDK at runtime, but the workspace was named @paseo/plugin and marked private, so it was never published. 0.5.0-beta.1 shipped @getpaseo/server depending on a package that does not exist and `npm install @getpaseo/cli@beta` failed with a 404 for every user. Two things hid it. sync-workspace-versions only rewrites deps matching @getpaseo/*, so the "*" range on @paseo/plugin survived untouched into the published tarball. And `npm pack --dry-run`, which is all release:check and CI run, lists files without ever resolving the dependency graph. Renaming to @getpaseo/plugin rather than publishing the old name: @paseo is not our scope on npm, so that name could never have been published at all. The rename also brings the package under the version-sync filter, which is what pins it correctly from here on. Plugins scaffolded against the old name still import @paseo/plugin. Both spellings resolve through plugin-sdk-specifiers.ts, tagged COMPAT with a removal date, so existing plugins keep loading. This does not repair 0.5.0-beta.1 — a published tarball's dependencies cannot be changed. The package publishes with the next release.
This commit is contained in:
@@ -50,7 +50,7 @@ The manifest supplies the default install ID:
|
||||
Default-export one contribution function. It must return cleanup, even when there is nothing to clean:
|
||||
|
||||
```tsx
|
||||
import type { PluginContext } from "@paseo/plugin";
|
||||
import type { PluginContext } from "@getpaseo/plugin";
|
||||
|
||||
export default function contribute(plugin: PluginContext) {
|
||||
// Register contributions here.
|
||||
@@ -67,7 +67,7 @@ mobile, and Paseo has multiple themes. Every `Text` must take its color from `th
|
||||
Use `layout.compact` for padding and stacking. Unstyled text is black and fails in dark themes.
|
||||
|
||||
```tsx
|
||||
import { type PluginContext, type PluginWorkspacePanelProps, useWorkspace } from "@paseo/plugin";
|
||||
import { type PluginContext, type PluginWorkspacePanelProps, useWorkspace } from "@getpaseo/plugin";
|
||||
import { useMemo } from "react";
|
||||
import { Text, View } from "react-native";
|
||||
|
||||
@@ -123,7 +123,7 @@ the active workspace or agent. Command callbacks receive the selected host's `pa
|
||||
Plugin surfaces use React Native primitives and work across desktop, browser, iOS, and Android. Register the surface before its sidebar item. Color text from `theme.colors` and pad from `layout.compact`.
|
||||
|
||||
```tsx
|
||||
import type { PluginContext, PluginSurfaceProps } from "@paseo/plugin";
|
||||
import type { PluginContext, PluginSurfaceProps } from "@getpaseo/plugin";
|
||||
import React, { useMemo, useState } from "react";
|
||||
import { Pressable, Text, View } from "react-native";
|
||||
|
||||
@@ -172,12 +172,12 @@ export default function contribute(plugin: PluginContext) {
|
||||
|
||||
Icons are Lucide icon names. `theme` is a typed `PluginTheme` on every surface and panel. Primary text uses `theme.colors.foreground`; labels use `theme.colors.foregroundMuted`; the root view uses `theme.colors.surface0`. `layout.compact` is true on mobile and narrow windows. Paseo owns the route, header, host picker, close action, error boundary, and per-installation query client.
|
||||
|
||||
Client code may import `react`, `react-native`, `@tanstack/react-query`, `zod`, `@paseo/plugin`, and `@paseo/plugin/server`. Install dependencies locally for typechecking; Paseo supplies these runtime modules.
|
||||
Client code may import `react`, `react-native`, `@tanstack/react-query`, `zod`, `@getpaseo/plugin`, and `@getpaseo/plugin/server`. Install dependencies locally for typechecking; Paseo supplies these runtime modules.
|
||||
|
||||
| Module | Use it for |
|
||||
| ---------------------- | ---------------------------------------------------- |
|
||||
| `@paseo/plugin` | hooks and UI types |
|
||||
| `@paseo/plugin/server` | `defineRpc`, `defineAttachmentSource`, handler types |
|
||||
| Module | Use it for |
|
||||
| ------------------------- | ---------------------------------------------------- |
|
||||
| `@getpaseo/plugin` | hooks and UI types |
|
||||
| `@getpaseo/plugin/server` | `defineRpc`, `defineAttachmentSource`, handler types |
|
||||
|
||||
## Choose the correct API
|
||||
|
||||
@@ -188,7 +188,7 @@ Use the existing Paseo SDK for normal Paseo operations. Use plugin RPC only for
|
||||
`usePaseo()` borrows the selected host's current connection. Never create another client inside a surface.
|
||||
|
||||
```tsx
|
||||
import { usePaseo } from "@paseo/plugin";
|
||||
import { usePaseo } from "@getpaseo/plugin";
|
||||
|
||||
function PullRequestAction() {
|
||||
const paseo = usePaseo();
|
||||
@@ -221,9 +221,9 @@ The API covers workspaces, agents, providers, and daemon config. It omits connec
|
||||
Define one Zod contract, register its subprocess handler, and call it with `useRpc()`:
|
||||
|
||||
```tsx
|
||||
import type { PluginContext } from "@paseo/plugin";
|
||||
import { useRpc } from "@paseo/plugin";
|
||||
import { defineRpc } from "@paseo/plugin/server";
|
||||
import type { PluginContext } from "@getpaseo/plugin";
|
||||
import { useRpc } from "@getpaseo/plugin";
|
||||
import { defineRpc } from "@getpaseo/plugin/server";
|
||||
import { z } from "zod";
|
||||
|
||||
const greeting = defineRpc({
|
||||
@@ -275,8 +275,8 @@ daemon log. Never log credentials or other secrets.
|
||||
Define a search RPC and register a declarative source:
|
||||
|
||||
```tsx
|
||||
import type { PluginContext } from "@paseo/plugin";
|
||||
import { defineAttachmentSource, defineRpc } from "@paseo/plugin/server";
|
||||
import type { PluginContext } from "@getpaseo/plugin";
|
||||
import { defineAttachmentSource, defineRpc } from "@getpaseo/plugin/server";
|
||||
import { z } from "zod";
|
||||
|
||||
const searchIssues = defineRpc({
|
||||
|
||||
Reference in New Issue
Block a user