Commit Graph

8 Commits

Author SHA1 Message Date
guyoron1 055a1453d3 fix: merge system entries in OpenCode plugin for Qwen compat (#296) (#536)
Qwen models reject multiple system messages — push() added a second
entry.  Append to the last existing entry instead; fall back to push
when the array is empty.

Co-authored-by: Emeriko <dietrich.gebert@gmail.com>
2026-07-09 17:53:06 +02:00
guyoron1 fee48ca59a fix: guard against non-string input.arguments in OpenCode plugin (#557)
Wrap input.arguments with String() before calling .trim(), matching
the defensive pattern already used in the pi-extension (index.js:90).
Prevents TypeError if the host passes a non-string truthy value.

Fixes #553.

Co-authored-by: Emeriko <dietrich.gebert@gmail.com>
2026-07-09 17:52:22 +02:00
D3VL0PR 511ddd4d62 fix(opencode): stop exporting parseCommandFile from plugin module (#301)
OpenCode's legacy plugin loader iterates every exported function in a
plugin module and tries to invoke each one with the plugin context object.
parseCommandFile was exported alongside the default plugin function, so
the loader called it with an object instead of a file path and crashed
with 'path must be a string or a file descriptor' before any hook ran,
which aborted the whole plugin load.

Move the frontmatter parser to its own .cjs sibling; the plugin module
now exposes exactly one top-level export (the default plugin function).
The plugin requires the parser via createRequire, and the existing
parseCommandFile tests now require the sibling directly.

Co-authored-by: ayushere <ayushere@users.noreply.github.com>
2026-07-09 11:44:31 +02:00
Sangeeth Thilakarathna a3e0169c3d fix: ignore invalid opencode mode arguments (#302)
Co-authored-by: sanmaxdev <sanmaxdev@users.noreply.github.com>
2026-07-09 03:12:14 +02:00
DietrichGebert e368c48c52 feat: scope npm package as @dietrichgebert/ponytail (#280)
Publish under a scope you own outright instead of opencode-ponytail (which
sits on a third-party npm account). Matches the GitHub handle and repo.
publishConfig.access is already public, which scoped public packages need.
2026-06-24 02:50:42 +02:00
Dang Trung An 17a466013e feat: publish ponytail as an installable npm package for OpenCode and Pi (#197)
* feat: register slash commands from .opencode/command/*.md

Add parseCommandFile() to read frontmatter-described markdown files
and wire them into opencode's config.command during init.

Extend the config hook to scan .opencode/command/ and register each
.md file as a named slash command.

Update the plugin doc comment to reflect the npm install path
(opencode-ponytail) vs the old relative path.

* chore: rename package to opencode-ponytail

Align package name with npm convention for opencode plugins.
Update keywords to include opencode-plugin and opencode tags.
Fix description back to original correct wording (grammatical
regression introduced during editing).

* chore: add npm metadata and publish workflow

Add author, homepage, repository, bugs, main, exports, files, and
publishConfig fields to package.json for npm publishing.

Add .github/workflows/publish.yml to auto-publish to npm on version
tags (v*) with provenance.

* docs: add npm plugin install for opencode-ponytail

---------

Co-authored-by: Emeriko <dietrich.gebert@gmail.com>
2026-06-24 02:09:40 +02:00
Tianen Cheng a28e5ec123 fix: register skills directory via config hook so opencode discovers ponytail skills (#138)
The ponytail plugin was missing a config hook to register its skills/
directory with opencode's skill discovery system. Without this, the 5
ponytail skills (ponytail, ponytail-audit, ponytail-debt, ponytail-help,
ponytail-review) never appear in the skill tool's available list.

The superpowers plugin already follows this exact pattern — this brings
ponytail in line with the upstream convention.
2026-06-19 00:24:46 +02:00
DietrichGebert 46c5c28b35 feat: add OpenCode adapter
Thin OpenCode plugin injecting the ponytail ruleset via experimental.chat.system.transform, reusing the shared instruction builder. Verified end-to-end on OpenCode 1.17.4. Supersedes #15.
2026-06-13 03:20:44 +02:00