Co-Authored-By: win0na <winnie@winneon.moe>
feat(lib.sh): add install_plugins helper for opencode JS plugins
build(adapters): opencode adapter skeleton with capability/event tables
build(opencode): adapter_translate_dispatcher (DISPATCHER.md → AGENTS.md)
build(opencode): adapter_translate_references and adapter_translate_skills
Implements Task 4 and Task 5:
- adapter_translate_references: Copies reference markdown files to .opencode/references/
- adapter_translate_skills: Copies skill SKILL.md files to .opencode/skills/<name>/ with exclude filtering
Both functions respect framework filtering via should_include().
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
build(opencode): adapter_translate_agents with capability→permission mapping
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
build(opencode): bash-executor template for spawning hook scripts
build(opencode): plugin-stub template for mbifc-hooks.js
build(opencode): adapter_translate_hooks with JS plugin generation
Implements _oc_hook_registry_json and adapter_translate_hooks in the
opencode adapter. Copies hook scripts to .opencode/hooks/, generates a
single .opencode/plugins/mbifc-hooks.js by inlining bash-executor.js and
synthesising a hook registry from *.hook.yaml files. Uses python3 for
template substitution to safely handle multi-line JS content. Adds 3
unit tests (copies scripts, registry entries, noop when no hooks dir).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
build(opencode): adapter_translate_mcp with local/remote handling
build(opencode): adapter_finalize and complete adapter_build wiring
Add adapter_finalize placeholder and wire adapter_translate_mcp into
adapter_build; add end-to-end integration test (14/14 pass).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
feat(launchme): branch on --framework for opencode install layout
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
feat(updateme): branch on --framework for opencode install layout
Mirror the same case "$FRAMEWORK" block from launchme.sh: framework-specific
DIST_COMPONENTS_DIR, VAULT_COMPONENTS_DIR, DISPATCHER_SRC/DST, MCP_SRC/DST,
HAS_PLUGINS; conditional install_plugins; conditional install_settings;
framework-aware vault-setup check; framework-neutral summary messages.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
refactor(lib.sh): generalize install_claude_md → install_dispatcher
New signature takes the full destination path instead of just the vault
dir, allowing callers to install CLAUDE.md, AGENTS.md, or any dispatcher
file to an explicit location.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
feat(launchme): support --framework flag, build dist/ before install
Add --framework and --target arg parsing. Run build.sh before installing
to populate dist/<framework>/. All install_* calls now read from
dist/<framework>/ instead of the raw source dirs. MCP is now handled
automatically by the adapter (no interactive prompt). Replaced
install_claude_md with install_dispatcher.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
feat(updateme): support --framework flag, build dist/ before update
Add --framework and --target arg parsing. Run build.sh before installing
to populate dist/<framework>/. All install_* calls now read from
dist/<framework>/ instead of raw source dirs. Replaced install_claude_md
with install_dispatcher.
Also fix set -e compatibility in lib.sh: add || true to all conditional
[[ ... ]] && info "..." logging lines so they don't abort the script
when VERBOSE_COPY=0.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>