You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat(#3311): add dynamic plugin packaging and skills marketplace routes (#3584)
* feat(#3311): add dynamic plugin packaging and skills marketplace routes
Configure boost-backend, boost-backend-module-llamastack, and
boost-backend-module-kagenti for RHDH dynamic plugin export (OCI)
by adding janus-cli export-dynamic scripts and dist-dynamic to
published files (tasks 6.1, 6.2).
Create dynamic-plugins.yaml with example configuration for
deploying boost as a dynamic plugin in RHDH (task 6.3).
Add skills marketplace proxy routes (GET /skills, /skills/runtimes,
/skills/domains) that forward requests to an external skills
catalog backend configured via boost.skillsMarketplace.endpoint
(task 5.1). Add POST /skills/deploy for K8s manifest generation
with OCI init containers (task 5.3) and GET /skills/deployments/:id
for deployment progress polling (task 5.4). Chat routing via
chatEndpoint is returned in the deploy response (task 5.6).
Enrich Zod schema definitions with detailed descriptions and
inline .describe() annotations for all 17 configurable keys
(tasks 3.1, 3.2). Add boost.encryptionSecret field documenting
the AES-256-GCM encryption secret (task 8.2 documentation).
All skills routes are gated by boost.features.skillsMarketplace
feature flag and permissions. Tests cover feature gating,
permission checks, deployment manifest generation, and input
validation (25 tests pass).
Closes#3311
* chore(boost): deduplicate yarn.lock
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix: address review findings in skills routes and config schema
- Fix URL resolution in proxyToSkillsCatalog: use URL pathname join
instead of new URL(path, base) which discards base path per RFC 3986
- Add try/catch around response.json() for non-JSON upstream responses
- Remove unused boost.skillsMarketplace.enabled config key (the actual
feature toggle is boost.features.skillsMarketplace)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix: update api-report and test for removed config key
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix: switch to rhdh-cli, split dynamic-plugins examples, add skills openspec
- Replace @janus-idp/cli with @red-hat-developer-hub/cli in all three
boost package.json files (boost-backend, module-llamastack,
module-kagenti) and update export-dynamic scripts to use rhdh-cli
- Split dynamic-plugins.yaml into two reference files:
dynamic-plugins-filesystem-reference.yaml (local dev paths) and
dynamic-plugins-image-reference.yaml (OCI registry paths)
- Add skills marketplace config examples (commented out) to both files
- Add section 8 (Skills Marketplace Integration) to boost openspec
tasks.md with design decisions from grill-me review session
- Deduplicate yarn.lock after dependency changes
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix: address round-3 review findings and add staged issue 16
- Remove stale boost.skillsMarketplace.enabled from config.d.ts and
runtime-config spec.md (consolidated into boost.features.skillsMarketplace)
- Use InputError instead of res.status(400) in skills deploy route
- Add InputError mapping to test error handler
- Fix task ID references in plugin.ts comment (section 8, not 5.x)
- Add issue 16 (skills route improvements) to staged-issues.md
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
---------
Co-authored-by: fullsend-code <278716306+fullsend-ai-coder[bot]@users.noreply.github.com>
Co-authored-by: gabemontero <gmontero@redhat.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
-[ ] 8c.1 Change `POST /skills/deploy` request body to accept `runtimeId` instead of `ociImage`; resolve container image from `boost.skillsMarketplace.runtimes[]` config
96
+
-[ ] 8c.2 Extract manifest generation into `src/skills/manifestBuilder.ts`
97
+
-[ ] 8c.3 Update deploy tests for `runtimeId` resolution and `manifestBuilder` unit tests
98
+
99
+
### 8d. Skills browse UI
100
+
101
+
-[ ] 8d.1 Implement skills browse UI with runtime and domain filters (consuming proxied data)
102
+
-[ ] 8d.2 Add skill badge to gallery for framework agents
103
+
-[ ] 8d.3 Route chat to skill agents via `chatEndpoint` field
104
+
105
+
### 8e. Deployment progress
106
+
107
+
-[ ] 8e.1 Implement deployment status persistence (replace current stub)
108
+
-[ ] 8e.2 Add deployment progress polling and status display in UI
0 commit comments