chore: version packages#184
Merged
Merged
Conversation
5768f2c to
b895688
Compare
b895688 to
4ee7f43
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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-modelerpersona now teaches the "make it real" swap: register the Drizzle adapter over an embedded pglite Postgres instead of the memory adapter, add thevikeSchema()Vite plugin to codegendrizzle/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;defineSchematables anddb()queries do not change. Thevike-auth-composerpersona points at the same step, and the memory adapter stays the zero-config dev default. Reference: the provenexamples/drizzle-pglitetwin. 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
FrameworkExtensioncarryskills(llms.txt doc pointers), butrun.tsonly framed the built-inSkillRegistrymatches, so a discovered extension's own skills were collected and then dropped. AddcomposeSkills(symmetric withcomposePersonas): it unions the registry-matched skills with every active extension's skills, deduped by name.run.tsuses it, so an active extension now contributes both its personas and its doc pointers to the frame. Surfaced by the newexamples/framework-discovery-demoend-to-end proof, where the third-partyframework-helloextension'shello-guideskill 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-composerpersona (wired intovikeExtensionPersonas) teaches the agent to derive those screens from the schema instead:crud({ table })/crudBlocks({ table })inside adefinePage, rendered throughvike-crud/react(or/vue); vike-admin dropped on top for a whole-DB/admin/*panel via the cumulativeadminResourcesseam; mutations through namedcrudActions(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 newvike-rbac-composerpersona (wired intovikeExtensionPersonas, between auth and crud) teaches the agent to compose vike-rbac instead: declare permissions withdefinePermissionsandextends: ['import:vike-rbac/config:default'](self-installs vike-auth), route every guard through the samecan(user, permission)/hasRole(user, role)(the crudcanView/canEdit, page guards, session scope, and vike-actions guards all delegate to it), and seed roles/permissions from the composed registry withseedRbac()rather than a hand-written list. vike-rbac owns theroles/permissions/role_user/permission_roletables 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-composerpersona (wired intovikeExtensionPersonas) teaches the agent to declare a brand withdefineThemeandextends: [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 withvike-layouts(layout: 'centered' | 'topbar' | 'sidebar'pluslogo/ cumulativenavslots) instead of a hand-written topbar/sidebar. It also notes the one-linevike-toolbarinstall 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/core404s 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 renameduniversalOrmModeler->dataModeler(persona namedata-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
vikeAuthComposerandvikeDataModelerwere re-exported individually from the package root, but their three peersvikeRbacComposer,vikeCrudComposer, andvikeShellComposerwere only reachable through thevikeExtensionPersonasarray. 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 fixedvikeExtensionPersonaslist swapped in behind--compose-extensions), so no third party could publish aframework-*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 samecapability(e.g.framework-datareplaces the default ORM modeler), so the agent never gets two conflicting personas for one concern.defineSkill— a doc pointer (anllms.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 ashttps://vike.dev/llms.txt.ExtensionRegistry/SkillRegistry,composePersonas,skillInstructions, andloadExtensionsFromModulesfor discovering installedframework-*packages.run.tsnow composes matched extensions + skills through the registry instead of the hardcoded list, and the CLI reads the project's real signals and discovers installedframework-*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-extensionsstill 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: aSkillnow carries its own curated framing personas alongside the doc pointer, so all of a framework's knowledge lives in one unit.vikeSkillcarriesvikePageBuilder; the newnextSkillcarriesnextPageBuilder. A preset is now a pure detector that points at its frameworkskill, andrun.tsframes 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.presetPersonasand 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:
ArchitectPlangains optionalpros,cons, andalternatives({option, whyNot}). TheagentArchitect(ai-sdk) anddriverArchitect(framework) both ask for them and parse them; absent fields are omitted, so existing producers are unaffected.STACK_TRADEOFFSblock 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.Bootstraporchestrator emitspros/cons/alternativeson thearchitectevent and records the rejected alternatives to the decisions ledger as rejections, so the ledger shows what was weighed.--fakedemo 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
FrameworkExtensioncarryskills(llms.txt doc pointers), butrun.tsonly framed the built-inSkillRegistrymatches, so a discovered extension's own skills were collected and then dropped. AddcomposeSkills(symmetric withcomposePersonas): it unions the registry-matched skills with every active extension's skills, deduped by name.run.tsuses it, so an active extension now contributes both its personas and its doc pointers to the frame. Surfaced by the newexamples/framework-discovery-demoend-to-end proof, where the third-partyframework-helloextension'shello-guideskill 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/codeby default (the page where a Claude Code session appears once Remote Control is enabled), so the dashboard points somewhere useful without needing--session-link.--fakegets no link (it has no real session), and an explicit--session-linkstill 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
--fakestays 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 fixedvikeExtensionPersonaslist swapped in behind--compose-extensions), so no third party could publish aframework-*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 samecapability(e.g.framework-datareplaces the default ORM modeler), so the agent never gets two conflicting personas for one concern.defineSkill— a doc pointer (anllms.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 ashttps://vike.dev/llms.txt.ExtensionRegistry/SkillRegistry,composePersonas,skillInstructions, andloadExtensionsFromModulesfor discovering installedframework-*packages.run.tsnow composes matched extensions + skills through the registry instead of the hardcoded list, and the CLI reads the project's real signals and discovers installedframework-*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-extensionsstill 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: aSkillnow carries its own curated framing personas alongside the doc pointer, so all of a framework's knowledge lives in one unit.vikeSkillcarriesvikePageBuilder; the newnextSkillcarriesnextPageBuilder. A preset is now a pure detector that points at its frameworkskill, andrun.tsframes 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.presetPersonasand 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
FrameworkEventstream, persisting is durably logging that stream: each run appends to.framework/events.jsonlin the workspace, keeps a small derivedrun.jsonsnapshot beside it, and writes a human-readableDECISIONS.mdat the root.framework --resumereopens 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-persistopts 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
RunStoremodule and exports (RunStore,nodeStoreFs,metaFromEvents,applyEventToMeta,RunMeta,StoreFs, ...); new--resume/--no-persistCLI 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-passesis 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:
ArchitectPlangains optionalpros,cons, andalternatives({option, whyNot}). TheagentArchitect(ai-sdk) anddriverArchitect(framework) both ask for them and parse them; absent fields are omitted, so existing producers are unaffected.STACK_TRADEOFFSblock 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.Bootstraporchestrator emitspros/cons/alternativeson thearchitectevent and records the rejected alternatives to the decisions ledger as rejections, so the ledger shows what was weighed.--fakedemo 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-extensionsis documented as Vike-only, butrunFrameworkapplied the vike-* composer personas regardless of the detected preset, so a Next project would be framed withnextPageBuilderplus 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-extensionshelp text to name the full composer setThe
framework --helpoutput described--compose-extensionsas 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/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
framework-hello@0.0.1
Patch Changes