Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions .changeset/export-composer-personas.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
'@gemstack/ai-autopilot': minor
---

Export the vike-rbac / vike-crud / vike-shell composer personas individually

`vikeAuthComposer` and `vikeDataModeler` were re-exported individually from the package root, but their three peers `vikeRbacComposer`, `vikeCrudComposer`, and `vikeShellComposer` were only reachable through the `vikeExtensionPersonas` array. They are now exported individually too, so a consumer building a custom persona roster can cherry-pick any of the built-in extension composers uniformly. No runtime change.
3 changes: 3 additions & 0 deletions packages/ai-autopilot/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -110,6 +110,9 @@ export {
uiIntentDesigner,
vikeAuthComposer,
vikeDataModeler,
vikeRbacComposer,
vikeCrudComposer,
vikeShellComposer,
sharedPersonas,
vikeExtensionPersonas,
stackPersonas,
Expand Down
3 changes: 3 additions & 0 deletions packages/ai-autopilot/src/personas/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,9 @@ export {
uiIntentDesigner,
vikeAuthComposer,
vikeDataModeler,
vikeRbacComposer,
vikeCrudComposer,
vikeShellComposer,
sharedPersonas,
vikeExtensionPersonas,
stackPersonas,
Expand Down
14 changes: 9 additions & 5 deletions packages/framework/src/run.ts
Original file line number Diff line number Diff line change
Expand Up @@ -77,10 +77,13 @@ export interface RunFrameworkOptions {
/** Signals for preset detection (deps/files). Default: none, so the flagship preset wins. */
signals?: FrameworkSignals
/**
* Compose the vike-* extensions (currently: vike-auth for authentication)
* instead of hand-rolling them. Frames the agent with the extension personas.
* Opt-in and Vike-only: the extensions resolve inside the vike-data workspace,
* so the default (hand-rolled + Prisma) path stays publish-safe.
* Compose the vike-* extensions instead of hand-rolling them: vike-auth for
* auth, the universal-orm data layer for domain data, vike-rbac for
* roles/permissions, vike-crud/vike-admin for the CRUD+admin UI, and
* vike-themes/vike-layouts for styling and the app shell. Frames the agent
* with the extension personas. Opt-in and Vike-only: the extensions resolve
* inside the vike-data workspace, so the default (hand-rolled + Prisma) path
* stays publish-safe.
*/
composeExtensions?: boolean
/** Max full-fledged passes. Default {@link DEFAULT_MAX_PASSES} (5). */
Expand Down Expand Up @@ -161,7 +164,8 @@ export async function runFramework(opts: RunFrameworkOptions): Promise<RunFramew

// 1. Preset: detect the framework and turn its personas into prompt-framing.
// With --compose-extensions, swap the shared personas for the vike-extension
// set (compose vike-auth instead of hand-rolling auth); default keeps Prisma.
// set (compose vike-auth/vike-rbac/vike-crud/vike-themes + the universal-orm
// data layer instead of hand-rolling them); default keeps Prisma.
const { preset, detection } = builtinPresetRegistry().select(opts.signals ?? {})
const personas = opts.composeExtensions
? presetPersonas(preset, vikeExtensionPersonas)
Expand Down
Loading