Skip to content

npm 0.4.0: V2 entry never registers pty_* tools — setup omits ctx.tool.transform #86

Open

Description

@harkers

The npm-published opencode-pty@0.4.0 V2 entry loads and reports itself as active in OpenCode, but none of pty_spawn / pty_write / pty_read / pty_list / pty_kill ever reach the agent's tool catalog.

Cause. package.json has no publishConfig/files exclusion that would catch it, but the tarball's dist/src/v2/index.js ships the pre-#61 setup:

setup: async (ctx) => {
    const options = ctx.options;
    const adapter = createV2Adapter();
    installHostAdapter(adapter);
    if (ctx.command && typeof ctx.command.transform === 'function') { ... }
    if (options?.autostart) { ... }
}

It calls createV2Adapter() without the notifier and never calls registerV2Tools. ptyTools is exported from dist/src/v2/tools.js and is importable, but nothing wires it into ctx.tool.transform.

Commit 9be5126 (2026-09-19, "fix(v2): register pty tools, slash commands and exit notifications via the V2 plugin SDK") adds exactly this, but it landed one day after the v0.4.0 release commit ce5f61c (2026-09-18). So the fix is on main and simply never shipped — installing from npm gives a plugin that loads cleanly, passes opencode plugin check-adjacent loading, and silently provides no tools.

Repro. npm pack opencode-pty@0.4.0, inspect dist/src/v2/index.js: no ctx.tool usage. Compare src/v2/index.ts on main, which has registerV2Tools(draft) behind ctx.tool.transform.

Impact. Silent failure — no error at load time. The only signal is that the tools are absent at runtime.

Suggestion. Publish 0.4.1 from main. Note also that the README's V2 config example uses "package": "opencode-pty/v2"; opencode passes that string to npm, which parses pkg/subpath as a GitHub shorthand, so it fails to resolve. A subpath spec that npm can actually install (or documenting the plain package name plus a v2 export condition) would help.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions