feat(#3297): add boost-common types/permissions and boost-node service ref#3402
feat(#3297): add boost-common types/permissions and boost-node service ref#3402fullsend-ai-coder[bot] wants to merge 3 commits into
Conversation
…e ref Scaffold the two foundation packages for the boost workspace: boost-common (common-library): - AgenticProvider, ProviderDescriptor, ProviderCapabilities interfaces - NormalizedStreamEvent discriminated union (19 event types) - ConversationSummary, ConversationDetails, InputItem types - ChatRequest, ChatResponse, ResponseUsage types - 16 resource permissions (10 agent + 5 tool + 1 kagenti-infra) - 5 functional permissions (chat.read/create, documents/mcp/config) - Resource types: boost-agent, boost-tool - Conditional rule constants: IS_OWNER, IS_NOT_CREATOR, HAS_LIFECYCLE_STAGE - No dependency on @backstage/backend-plugin-api (browser-safe) boost-node (node-library): - boostAiProviderServiceRef via createServiceRef (id: boost.ai-provider) - Depends on @backstage/backend-plugin-api (backend-only) - Depends on boost-common for the AgenticProvider type parameter The serviceRef lives in boost-node (not boost-common) to avoid pulling @backstage/backend-plugin-api into browser bundles, per PR #3396 review feedback and Backstage convention (plugin-catalog-common + plugin-catalog-node). Closes #3297
Missing ChangesetsThe following package(s) are changed by this PR but do not have a changeset:
See CONTRIBUTING.md for more information about how to add changesets. Changed Packages
|
|
|
🤖 Finished Review · ✅ Success · Started 8:27 PM UTC · Completed 8:41 PM UTC |
ReviewFindingsMedium
Low
Info
Previous runReviewFindingsLow
Info
Previous run (2)ReviewFindingsMedium
Low
Info
|
|
/fs-fix CI fails because report.api.md is missing for the new boost-common plugin. Run yarn build:api-reports from the boost workspace root and commit the generated plugins/boost-common/report.api.md. See how other workspaces do it: workspaces/lightspeed/plugins/lightspeed-common/report.api.md. If further CI steps fail after that (prettier, lint, tsc), run yarn chores from the workspace root to fix the full cascade in one pass. |
|
🤖 Finished Fix · ✅ Success · Started 9:24 PM UTC · Completed 9:53 PM UTC |
- Escape '>' in TSDoc comments for boostAgentPromotePermission and boostAgentApprovePermission to fix tsdoc-escape-greater-than warnings that blocked API report generation - Regenerate boost-common/report.api.md with full API surface - Add missing boost-node/report.api.md Addresses review feedback on #3402
🔧 Fix agent — iteration 1 (human-triggered)Generated missing API reports for boost-common and boost-node plugins. Fixed TSDoc escape warnings in permissions.ts that were blocking report generation. All tests pass (32/32), linting clean, prettier clean, tsc clean. Fixed (3):
Tests: passed Updated by fullsend fix agent |
|
🤖 Finished Review · ✅ Success · Started 9:54 PM UTC · Completed 10:03 PM UTC |
| * @public | ||
| */ | ||
| export const boostResourcePermissions = [ | ||
| // Agent permissions (10) |
There was a problem hiding this comment.
[low] logic-error
The boostResourcePermissions array name suggests all 16 entries are resource-scoped, but 4 are BasicPermission without resourceType. The JSDoc and TypeScript as-const tuple provide compile-time safety, so runtime risk is low. Consider renaming or updating the JSDoc.
There was a problem hiding this comment.
/fs-fix please act upon review comment #3402 (comment) and rename boostResourcePermissions to boostPermissions
| type: string; | ||
| /** Item identifier */ | ||
| id?: string; | ||
| /** Role of the item author */ |
There was a problem hiding this comment.
[low] edge-case
StreamToolCompletedEvent has optional error while StreamToolFailedEvent has required error. A tool finishing with an error could be represented as either event type, risking silent error swallowing in consumers. Document the semantic distinction.
| import { boostAiProviderServiceRef } from './index'; | ||
|
|
||
| describe('boost-node', () => { | ||
| describe('boostAiProviderServiceRef', () => { |
There was a problem hiding this comment.
[info] test-adequacy
The boost-node test suite verifies only id and scope. Consider adding a compile-time type assertion for the AgenticProvider type parameter.
|
/fs-fix please act upon review comment #3402 (comment) and reorganize |
|
🤖 Finished Fix · ✅ Success · Started 10:04 PM UTC · Completed 10:34 PM UTC |
Reorganize the monolithic boostResourcePermissions (16 entries) into three focused arrays per review feedback: - boostAgentPermissions (10 agent permissions) - boostToolPermissions (5 tool permissions) - boostInfraPermissions (1 kagenti infra permission) The top-level boostPermissions now spreads all three plus boostFunctionalPermissions, preserving the same 21-entry total. Addresses review feedback on #3402
🔧 Fix agent — iteration 2 (human-triggered)Reorganized boostResourcePermissions into boostAgentPermissions, boostToolPermissions, and boostInfraPermissions per human instruction. All 32 tests pass. Fixed (1):
Tests: passed Updated by fullsend fix agent |
|
🤖 Review · Started 10:35 PM UTC |
|
|
🤖 Finished Review · ✅ Success · Started 10:35 PM UTC · Completed 10:47 PM UTC |


Scaffold the two foundation packages for the boost workspace:
boost-common (common-library):
boost-node (node-library):
The serviceRef lives in boost-node (not boost-common) to avoid pulling @backstage/backend-plugin-api into browser bundles, per PR #3396 review feedback and Backstage convention (plugin-catalog-common + plugin-catalog-node).
Closes #3297
Post-script verification
agent/3297-boost-common-node)6c4b03802b506c2f86b0c210d0d622b3053c073f..HEAD)