Skip to content

chore: version packages#184

Merged
suleimansh merged 1 commit into
mainfrom
changeset-release/main
Jul 4, 2026
Merged

chore: version packages#184
suleimansh merged 1 commit into
mainfrom
changeset-release/main

Conversation

@github-actions

@github-actions github-actions Bot commented Jul 3, 2026

Copy link
Copy Markdown
Contributor

This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.

Releases

@gemstack/ai-autopilot@0.6.0

Minor Changes

  • 1db19e2: Teach the compose personas the opt-in real-persistence path (drizzle + pglite)

    The composed stack (vike-auth + the universal-orm data layer) runs on the memory adapter, which resets on every server restart, so accounts and posts vanish on reboot. The vike-data-modeler persona now teaches the "make it real" swap: register the Drizzle adapter over an embedded pglite Postgres instead of the memory adapter, add the vikeSchema() Vite plugin to codegen drizzle/schema.generated.ts, and derive/apply migrations with drizzle-kit. Because auth and domain data ride the same one adapter, that single swap makes both durable at once; defineSchema tables and db() queries do not change. The vike-auth-composer persona points at the same step, and the memory adapter stays the zero-config dev default. Reference: the proven examples/drizzle-pglite twin. Part of Compose the vike-* extensions instead of hand-rolling auth/data/UI #186. Closes Compose layer: real-DB persistence (drizzle + pglite) — accounts + data survive restart #187.

  • c3e7e9e: Thread an active extension's own skills into the agent frame

    The extension SPI (Make The Framework modular (Vike-style extensions) #190) let a FrameworkExtension carry skills (llms.txt doc pointers), but run.ts only framed the built-in SkillRegistry matches, so a discovered extension's own skills were collected and then dropped. Add composeSkills (symmetric with composePersonas): it unions the registry-matched skills with every active extension's skills, deduped by name. run.ts uses it, so an active extension now contributes both its personas and its doc pointers to the frame. Surfaced by the new examples/framework-discovery-demo end-to-end proof, where the third-party framework-hello extension's hello-guide skill now reaches the agent.

  • 6625ca7: Compose vike-crud / vike-admin for the CRUD/admin UI instead of hand-writing screens

    The composed stack taught the agent to compose vike-auth (identity) and the universal-orm data layer (domain data), but it still hand-wrote the list/record/form screens and admin panel, which is the largest chunk of fresh, churn-prone AI code. The new vike-crud-composer persona (wired into vikeExtensionPersonas) teaches the agent to derive those screens from the schema instead: crud({ table }) / crudBlocks({ table }) inside a definePage, rendered through vike-crud/react (or /vue); vike-admin dropped on top for a whole-DB /admin/* panel via the cumulative adminResources seam; mutations through named crudActions (posts.delete) rather than inline closures; and the config -> slot -> eject customization ladder so eject is the last resort, not the starting point. Everything rides the one universal-orm adapter already registered, so there is nothing extra to install. No runtime change; the agent stays a black box. Part of Compose the vike-* extensions instead of hand-rolling auth/data/UI #186. Closes Compose layer: schema-driven CRUD/admin UI (vike-crud + vike-admin) instead of hand-writing it #189.

  • bd13fcf: Compose vike-rbac for roles/permissions instead of hand-rolling authz

    The crud composer teaches ad-hoc role checks (canEdit: (user) => user?.role === 'admin'), which is fine for signed-in-vs-not but leaves the agent to hand-roll a roles/permissions schema and a permission checker the moment an app has named permissions or more than one role. The new vike-rbac-composer persona (wired into vikeExtensionPersonas, between auth and crud) teaches the agent to compose vike-rbac instead: declare permissions with definePermissions and extends: ['import:vike-rbac/config:default'] (self-installs vike-auth), route every guard through the same can(user, permission) / hasRole(user, role) (the crud canView/canEdit, page guards, session scope, and vike-actions guards all delegate to it), and seed roles/permissions from the composed registry with seedRbac() rather than a hand-written list. vike-rbac owns the roles/permissions/role_user/permission_role tables and is the guard subject vike-admin and vike-actions are built around. No runtime change; the agent stays a black box. Part of Compose the vike-* extensions instead of hand-rolling auth/data/UI #186. Closes Compose vike-rbac for roles/permissions instead of hand-rolling authz #194.

  • 11f76da: Compose vike-themes / vike-layouts for styling and the app shell instead of hand-rolling CSS + nav

    After auth, data, and the CRUD/admin UI, the remaining big hand-rolled surface is styling and the app shell: an agent writes its own CSS design system, dark-mode toggle, and layout/nav chrome on every build, and that fresh CSS is the root of the loop's over-polish churn. The new vike-shell-composer persona (wired into vikeExtensionPersonas) teaches the agent to declare a brand with defineTheme and extends: [themesExt] (flash-free system dark mode, a picker, and a CSS-variable contract to style against) instead of hand-writing a color system, and to pick a shell with vike-layouts (layout: 'centered' | 'topbar' | 'sidebar' plus logo / cumulative nav slots) instead of a hand-written topbar/sidebar. It also notes the one-line vike-toolbar install that gives the theme/locale controls a home. No runtime change; the agent stays a black box. Part of Compose the vike-* extensions instead of hand-rolling auth/data/UI #186. Closes Compose vike-themes + vike-layouts for styling/app-shell instead of hand-rolling CSS + nav #192.

  • c79f567: Point the flagship data persona at Prisma (installable) instead of the unpublished universal-orm

    The bootstrap data persona told the agent to build the data layer on universal-orm, which isn't installable (@universal-orm/core 404s on npm), so from-scratch live builds stalled sanity-checking the stack and produced nothing. It now defaults to Prisma with concrete install/init steps (schema-first, migrations derived from the schema, a fully typed client), and the architect default no longer names an unpublished package. The persona export is renamed universalOrmModeler -> dataModeler (persona name data-modeler). Closes Live builds stall: flagship persona points the agent at unpublished 'universal-orm' #181.

  • 93892d7: 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.

  • de37e7e: Make The Framework modular: a capability-extension + skill SPI, discovered instead of hardcoded

    The composition was pinned in run.ts (a fixed vikeExtensionPersonas list swapped in behind --compose-extensions), so no third party could publish a framework-* package and have it compose. This adds the extension SPI (Make The Framework modular (Vike-style extensions) #190), all agnostic (nothing is framework-gated):

    • defineFrameworkExtension — a capability (auth, data, rbac, crud, shell, ...) that self-registers, matched by signal (a dependency is present) or opt-in, and frames the agent with its personas. An extension supersedes the neutral default persona of the same capability (e.g. framework-data replaces the default ORM modeler), so the agent never gets two conflicting personas for one concern.
    • defineSkill — a doc pointer (an llms.txt), the shared unit with Open Loop (Open Loop: customizable prompts + flows, domain presets, marketplace #204). A framework is a skill, not an adapter package: Vike now rides the same seam as https://vike.dev/llms.txt.
    • ExtensionRegistry / SkillRegistry, composePersonas, skillInstructions, and loadExtensionsFromModules for discovering installed framework-* packages.

    run.ts now composes matched extensions + skills through the registry instead of the hardcoded list, and the CLI reads the project's real signals and discovers installed framework-* capability packages (resolved from the user's workspace, failures reported not thrown). The built-in vike-* composers ship as extensions (framework-auth, framework-data, framework-rbac, framework-crud, framework-shell) and Vike ships as a skill, proving the seam. --compose-extensions still opts every built-in in; the publish-safe default (hand-rolled + Prisma) is unchanged. Closes Make The Framework modular (Vike-style extensions) #190.

  • d98d4ad: Move the framework page builder off the preset onto its skill (fully skill-driven framing)

    A framework was represented twice: its page-builder persona rode the preset seam (preset.personas, framed as the run's base) while its docs rode the skill seam (vike.dev/llms.txt). This finishes the "framework = skill, adapter axis gone" design: a Skill now carries its own curated framing personas alongside the doc pointer, so all of a framework's knowledge lives in one unit. vikeSkill carries vikePageBuilder; the new nextSkill carries nextPageBuilder. A preset is now a pure detector that points at its framework skill, and run.ts frames the page builder through the skill set (the detected preset's skill is always framed, even on an empty from-scratch project where nothing signal-matched, since preset selection is the fallback). New exports: nextSkill, skillPersonas. presetPersonas and the framing narration are unchanged. Part of Make The Framework modular (Vike-style extensions) #190.

  • f1d11d9: Architect stack rationale: PROS/CONS + alternatives considered

    The web dashboard's edge over the CLI is showing why the AI chose the stack. The architect step now returns that rationale, not just a one-line why:

    • ArchitectPlan gains optional pros, cons, and alternatives ({option, whyNot}). The agentArchitect (ai-sdk) and driverArchitect (framework) both ask for them and parse them; absent fields are omitted, so existing producers are unaffected.
    • A new exported STACK_TRADEOFFS block gives the architect objective, reusable Vike-vs-Next reasons (edge/Cloudflare deploy, renderer-agnostic, ecosystem size) so the justification is grounded rather than invented per run. Both architect prompts embed it.
    • The Bootstrap orchestrator emits pros/cons/alternatives on the architect event and records the rejected alternatives to the decisions ledger as rejections, so the ledger shows what was weighed.
    • The framework dashboard's "Stack & rationale" panel renders the pros, cons, and "Considered instead" alternatives. The --fake demo populates them.

    Part of Web-first orchestration dashboard as the MVP surface #209. Closes Stack rationale: PROS/CONS + alternatives considered #210.

@gemstack/framework@0.4.0

Minor Changes

  • c3e7e9e: Thread an active extension's own skills into the agent frame

    The extension SPI (Make The Framework modular (Vike-style extensions) #190) let a FrameworkExtension carry skills (llms.txt doc pointers), but run.ts only framed the built-in SkillRegistry matches, so a discovered extension's own skills were collected and then dropped. Add composeSkills (symmetric with composePersonas): it unions the registry-matched skills with every active extension's skills, deduped by name. run.ts uses it, so an active extension now contributes both its personas and its doc pointers to the frame. Surfaced by the new examples/framework-discovery-demo end-to-end proof, where the third-party framework-hello extension's hello-guide skill now reaches the agent.

  • f156cf8: Default the live-run session link to claude.ai/code

    A live run now shows a session link to https://claude.ai/code by default (the page where a Claude Code session appears once Remote Control is enabled), so the dashboard points somewhere useful without needing --session-link. --fake gets no link (it has no real session), and an explicit --session-link still wins — including the {sessionId} template, which is filled in with the real Claude session id once known.

    Why not a per-session deep link: we drive Claude Code headless, and Remote Control (which powers the claude.ai/code session view) is opt-in and subscription-gated, so there is no session-URL slug to construct. The session id is already surfaced on the dashboard and in the CLI narration; the README's new "Watching the live session" section documents the Remote Control path. New exports: chooseSessionLink, CLAUDE_CODE_SESSION_LIST.

    Part of Web-first orchestration dashboard as the MVP surface #209. Closes Live claude.ai/code session link via Remote Control #212.

  • 97b2943: Extend an existing project instead of rebuilding it from scratch

    Pointed at a workspace that already has source, the build step now frames the wrapped agent to work within the existing codebase (read it, follow its conventions, add what was asked) rather than scaffold a fresh app. Greenfield runs (an empty workspace) are unchanged, and detection is gated on a real driver, so --fake stays deterministic. Combined with the live preset detection already wired from the real workspace, running in an existing project now detects its real stack and extends it.

    New exports: extendPrompt, isWorkspaceEmpty.

    Part of Epic: The AI framework — turnkey end-to-end AI orchestration for building software (web-app first) #110. Closes Support running against an existing project (not just from-scratch) #185.

  • de37e7e: Make The Framework modular: a capability-extension + skill SPI, discovered instead of hardcoded

    The composition was pinned in run.ts (a fixed vikeExtensionPersonas list swapped in behind --compose-extensions), so no third party could publish a framework-* package and have it compose. This adds the extension SPI (Make The Framework modular (Vike-style extensions) #190), all agnostic (nothing is framework-gated):

    • defineFrameworkExtension — a capability (auth, data, rbac, crud, shell, ...) that self-registers, matched by signal (a dependency is present) or opt-in, and frames the agent with its personas. An extension supersedes the neutral default persona of the same capability (e.g. framework-data replaces the default ORM modeler), so the agent never gets two conflicting personas for one concern.
    • defineSkill — a doc pointer (an llms.txt), the shared unit with Open Loop (Open Loop: customizable prompts + flows, domain presets, marketplace #204). A framework is a skill, not an adapter package: Vike now rides the same seam as https://vike.dev/llms.txt.
    • ExtensionRegistry / SkillRegistry, composePersonas, skillInstructions, and loadExtensionsFromModules for discovering installed framework-* packages.

    run.ts now composes matched extensions + skills through the registry instead of the hardcoded list, and the CLI reads the project's real signals and discovers installed framework-* capability packages (resolved from the user's workspace, failures reported not thrown). The built-in vike-* composers ship as extensions (framework-auth, framework-data, framework-rbac, framework-crud, framework-shell) and Vike ships as a skill, proving the seam. --compose-extensions still opts every built-in in; the publish-safe default (hand-rolled + Prisma) is unchanged. Closes Make The Framework modular (Vike-style extensions) #190.

  • d98d4ad: Move the framework page builder off the preset onto its skill (fully skill-driven framing)

    A framework was represented twice: its page-builder persona rode the preset seam (preset.personas, framed as the run's base) while its docs rode the skill seam (vike.dev/llms.txt). This finishes the "framework = skill, adapter axis gone" design: a Skill now carries its own curated framing personas alongside the doc pointer, so all of a framework's knowledge lives in one unit. vikeSkill carries vikePageBuilder; the new nextSkill carries nextPageBuilder. A preset is now a pure detector that points at its framework skill, and run.ts frames the page builder through the skill set (the detected preset's skill is always framed, even on an empty from-scratch project where nothing signal-matched, since preset selection is the fallback). New exports: nextSkill, skillPersonas. presetPersonas and the framing narration are unchanged. Part of Make The Framework modular (Vike-style extensions) #190.

  • a06e845: Persist the orchestration state so a restarted dashboard can resume it

    A run now saves its orchestration state (the stack rationale, loop status, and decisions ledger) so it survives a restart. Because the dashboard is a pure projection of the run's FrameworkEvent stream, persisting is durably logging that stream: each run appends to .framework/events.jsonl in the workspace, keeps a small derived run.json snapshot beside it, and writes a human-readable DECISIONS.md at the root. framework --resume reopens the last run's dashboard read-only by replaying the log into a fresh stream, exactly as it looked, without running the agent again. --no-persist opts out of writing state.

    Per the design sync we do not persist the agent's chat transcript (Claude Code owns that); only our own orchestration events. New RunStore module and exports (RunStore, nodeStoreFs, metaFromEvents, applyEventToMeta, RunMeta, StoreFs, ...); new --resume / --no-persist CLI flags.

    Part of Web-first orchestration dashboard as the MVP surface #209. Closes Persist orchestration state (decisions, loop, rationale) #211.

  • c79f567: Recover from-scratch builds: scaffold an empty workspace instead of only polishing

    The full-fledged loop assumed an app already existed, so a from-scratch run could end at the framework's default "Welcome" page. The build step now verifies it produced files and hard re-prompts to scaffold from scratch if the workspace is still empty; the improve step switches to a "create the whole app from scratch" directive when the workspace is empty (instead of "smallest change / no unrelated features"); and the default --max-passes is raised from 3 to 5 so a from-scratch build has room to recover. Also clarifies the dashboard/terminal end status ("finished", not "done", so it reads as separate from the production-grade badge). Closes Loop can't recover an empty/unbuilt workspace: 'improve' framing blocks scaffolding #182.

  • f1d11d9: Architect stack rationale: PROS/CONS + alternatives considered

    The web dashboard's edge over the CLI is showing why the AI chose the stack. The architect step now returns that rationale, not just a one-line why:

    • ArchitectPlan gains optional pros, cons, and alternatives ({option, whyNot}). The agentArchitect (ai-sdk) and driverArchitect (framework) both ask for them and parse them; absent fields are omitted, so existing producers are unaffected.
    • A new exported STACK_TRADEOFFS block gives the architect objective, reusable Vike-vs-Next reasons (edge/Cloudflare deploy, renderer-agnostic, ecosystem size) so the justification is grounded rather than invented per run. Both architect prompts embed it.
    • The Bootstrap orchestrator emits pros/cons/alternatives on the architect event and records the rejected alternatives to the decisions ledger as rejections, so the ledger shows what was weighed.
    • The framework dashboard's "Stack & rationale" panel renders the pros, cons, and "Considered instead" alternatives. The --fake demo populates them.

    Part of Web-first orchestration dashboard as the MVP surface #209. Closes Stack rationale: PROS/CONS + alternatives considered #210.

Patch Changes

  • 5288ca6: Enforce the Vike-only constraint on --compose-extensions

    --compose-extensions is documented as Vike-only, but runFramework applied the vike-* composer personas regardless of the detected preset, so a Next project would be framed with nextPageBuilder plus composers telling the agent to install vike-auth/vike-crud/etc.: an incoherent prompt. It now gates compose on the Vike preset and, on any other preset, falls back to the hand-rolled + Prisma path and emits a log explaining why.

  • c9cf96b: Fix the --compose-extensions help text to name the full composer set

    The framework --help output described --compose-extensions as composing "vike-auth for auth" only, but the flag frames the agent with the whole vike-* composer set: auth, the universal-orm data layer, rbac, crud/admin, and themes/layouts. The help text now names them accurately.

  • Updated dependencies [1db19e2]

  • Updated dependencies [c3e7e9e]

  • Updated dependencies [6625ca7]

  • Updated dependencies [bd13fcf]

  • Updated dependencies [11f76da]

  • Updated dependencies [c79f567]

  • Updated dependencies [93892d7]

  • Updated dependencies [de37e7e]

  • Updated dependencies [d98d4ad]

  • Updated dependencies [f1d11d9]

    • @gemstack/ai-autopilot@0.6.0

@gemstack/example-autopilot-quickstart@0.0.5

Patch Changes

@gemstack/example-bootstrap-quickstart@0.0.5

Patch Changes

@gemstack/example-framework-demo@0.0.1

Patch Changes

@gemstack/example-framework-discovery@0.0.1

Patch Changes

  • Updated dependencies [1db19e2]
  • Updated dependencies [c3e7e9e]
  • Updated dependencies [5288ca6]
  • Updated dependencies [6625ca7]
  • Updated dependencies [bd13fcf]
  • Updated dependencies [11f76da]
  • Updated dependencies [c79f567]
  • Updated dependencies [f156cf8]
  • Updated dependencies [97b2943]
  • Updated dependencies [93892d7]
  • Updated dependencies [de37e7e]
  • Updated dependencies [c9cf96b]
  • Updated dependencies [d98d4ad]
  • Updated dependencies [a06e845]
  • Updated dependencies [c79f567]
  • Updated dependencies [f1d11d9]
    • @gemstack/ai-autopilot@0.6.0
    • @gemstack/framework@0.4.0
    • framework-hello@0.0.1

framework-hello@0.0.1

Patch Changes

@github-actions github-actions Bot force-pushed the changeset-release/main branch 14 times, most recently from 5768f2c to b895688 Compare July 4, 2026 18:33
@github-actions github-actions Bot force-pushed the changeset-release/main branch from b895688 to 4ee7f43 Compare July 4, 2026 18:45
@suleimansh suleimansh merged commit 60ceb4a into main Jul 4, 2026
2 checks passed
@suleimansh suleimansh deleted the changeset-release/main branch July 4, 2026 18:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment