moostjs
- 9 skills
- 0 followers
- 11 hours ago last updated
- ▌ Aoothjs · moostjs bundleUse when adding authentication or authorization to a Moost app — login, JWT/session tokens, password+MFA (TOTP), SMS OTP, RBAC roles/guards, magic links, password reset, invites, OAuth2/OIDC federated login, or BE the OAuth/OIDC provider (CLI SSO, `@aooth/login-client`; MCP-connector DCR (RFC 7591) + client_secret_post, refresh_token grant, RFC 8414/9728 discovery metadata). Covers `@aooth/user`, `@aooth/auth`, `@aooth/idp`, `@aooth/arbac`, `@aooth/auth-moost`, `@aooth/arbac-moost` — the aoothjs auth+authz stack for moost/atscript apps. Triggers on `.as` models extending `AoothUserCredentials` / `AoothArbacUserCredentials`, `@arbac.*` / `@aooth.user.*` annotations, refresh rotation, `AuthWorkflow` seams, `FederatedLoginService`, `ConsentStore`, consent-only authorize (`resolveAuthzReauthPolicy`), or `authGuardInterceptor` / `arbacAuthorizeInterceptor`. Out of scope: moost internals (`moostjs`), `.as`/`asc` (`atscript`), `@atscript/db`/`moost-db` (`atscript-db`), `@ui.*`/SPA components (`atscript-ui`).
- ▌ Atscript DB · moostjs bundleUse when working with @atscript/db, @atscript/db-{sqlite,postgres,mysql,mongo,memory}, @atscript/db-sql-tools, @atscript/moost-db, @atscript/db-client, or .as models with @db.* annotations. Covers DbSpace, adapter wiring, table/view CRUD, query filters, patch/field/array ops, relations, views, schema sync, engine-specific capabilities, BaseDbAdapter subclassing, moost-db REST routes, declarative actions, @InputForm structured input, URL query syntax, browser Client, client.action(), client.getActionForm(), DB validation, optimistic concurrency control via @db.column.version + $cas + withOptimisticRetry, field-level encryption at rest (@db.encrypted, key rotation, ENC_* errors), geo search (db.geoPoint, @db.index.geo, geoSearch, $geoWithin, GET /geo), token controller binding (provideDbSpace, @db.space), model manifest (atscriptModels), planSchema, assertExposed, provideTestDbSpace. Scope is DB only. Out of scope (use the moostjs/atscript skill): .as syntax, @meta.*, @expect.*, asc, unplugin, VSCode.
- ▌ Atscript · moostjs bundleUse when working with `@atscript/*` packages or `.as` files. `.as` = single source of truth for types, metadata, and validation constraints. Covers `.as` syntax, `@meta.*` / `@expect.*` / custom annotations, primitives, the `asc` CLI + `atscript.config.*`, generated `.as.d.ts` / `.as.js` / `atscript.d.ts`, runtime helpers (`Validator`, `coerceForType`, JSON Schema, serialize), `unplugin-atscript`, `@atscript/moost-validator` (validation + coercion pipes), VSCode LSP, and plugin authoring. Out of scope: `@db.*` annotations, schema sync, DB adapters → use the atscript-db skill; `@ui.*` annotations, vue-form, vue-table → use the atscript-ui skill.
- ▌ Moostjs · moostjs bundleUse when working with the Moost framework (moost, @moostjs/event-http/cli/wf/ws, @moostjs/swagger, @moostjs/otel, @moostjs/vite, create-moost) to build decorator-driven TypeScript apps for HTTP, CLI, WebSocket, Workflow events, or custom adapters. Covers controllers, controller subclassing (@Inherit), handler/parameter/response decorators, DI, interceptors, pipes, auth guards, framework errors, common metadata decorators, Wooks composables, adapter authoring, quick apps, workflow outlets/state strategies, WebSocket rooms/testing, logging, app-init hooks (@MoostInit), the Vite plugin (dev/build, middleware, SSR/SPA, deployment), event context/scoping, Swagger/OpenAPI generation, and OTel tracing/metrics. Not for plain @wooksjs/* apps without Moost decorators (use the wooksjs skill), nor auth/RBAC — @moostjs/arbac is deprecated; use the aooth packages (@aooth/auth-moost, @aooth/arbac-moost) and their own docs/skill.
- ▌ Atscript UI · moostjs bundleGeneral awareness skill for the atscript-ui ecosystem — UI rendered from `.as` annotated types. Use when working with `@atscript/ui`, `@atscript/ui-fns`, or `@atscript/ui-table` framework-agnostic primitives (FormDef, TableDef, FieldResolver, FilterCondition, PresetSnapshot, buildTableQuery, ValueHelpClient, buildModelRoutes — app nav/routes from DB models); when looking up the full `@ui.*` / `@ui.form.*` / `@ui.table.*` / `@ui.dict.*` / `@ui.nav.*` / `@ui.type` / `@wf.*` annotation reference; when wiring `installDynamicResolver()` from `@atscript/ui-fns`; when porting the engine to a non-Vue framework (React, Svelte); or when deciding which specialized atscript-ui skill to load (forms / tables / wf / styles). Scope is cross-cutting and framework-agnostic. Out of scope: `.as` syntax, `@meta.*`, `@expect.*`, `asc`, `unplugin-atscript`, VSCode LSP (use the `atscript` skill); `@db.*`, DbSpace, adapters, `moost-db`, browser `Client` (use the `atscript-db` skill); Vue components (use the per-domain skill).
- ▌ Atscript UI Wf · moostjs bundleBuild HTTP round-trip multi-step workflow forms with `@atscript/vue-wf` (client) + `@atscript/moost-wf` (server). Use when working with `<AsWfForm>` or `useWfForm` on the client; when declaring server flows via `@Workflow` / `@Step` / `@WorkflowSchema` / `@WfInput` / `@WfAction` on top of `@moostjs/event-wf`; when calling `useAtscriptWf(Type)` inside step handlers; when serializing forms (`serializeFormSchema`, `extractPassContext`) or passing context across steps via `@wf.context.pass`; when implementing action-with-data via `@wf.action.withData`; when persisting workflow state via `AsWfStore` + `@wf.store.fromContext` shadow columns; when implementing outlets (email magic link, webhook) with resume via `initialToken`; when emitting a `WfFinished` envelope via `finishWf` / `abortWf`; or when overriding the `<AsWfFinish>` finish-screen slots and `navigate` prop. Out of scope: plain forms (use `atscript-ui-forms`), tables (use `atscript-ui-tables`), styling (use `atscript-ui-styles`).
- ▌ Atscript UI Forms · moostjs bundleRender forms from `.as` types with `@atscript/vue-form`. Use with `<AsForm>`, `<AsField>`, `<AsIterator>`; for `.as` types with `@ui.form.*` / `@ui.form.fn.*`; for validation (`@meta.required`, `@expect.*`, `@ui.form.validate`); for arrays, nested objects, unions, tuples; for form actions (`@ui.form.action`) or FK value-help (`@db.rel.FK` → `AsRef`); for change tracking — dirty state, an `@atscript/db` patch, per-field dirty (mark changed fields), or a 3-way rebase folding fresh server data into unsaved edits (`track-changes`, `useAsFormPatch`, `getPatch`, `$cas`, `isPathDirty`, `isDirtyPath`, `useAsField().isDirty`, `data-dirty`, `rebaseOnto`); to override defaults (`:types` / `:components`); for custom fields (`TAsComponentProps`, `AsFieldShell`, `@atscript/vue-aooth`); or `useAsForm` / `useAsField` / `useAsArray` / `useAsUnion` / `useAsTuple`. Out of scope: tables (`atscript-ui-tables`), HTTP workflow forms (`atscript-ui-wf`), styling (`atscript-ui-styles`), `createFormDef` (general `atscript-ui` skill).
- ▌ Atscript UI Styles · moostjs bundleStyle atscript-ui components with `@atscript/ui-styles` — the UnoCSS preset + `AsResolver` for `unplugin-vue-components` + the `as-*` shortcut tree + baked semantic icons + pre-built CSS bundles. Use when wiring `asPresetVunor()` into `uno.config.ts`; when registering `AsResolver()` from `@atscript/ui-styles/vite` so Tier-1 components (`<AsForm>`, `<AsTable>`, `<AsWfForm>`, …) auto-import; when tuning the vunor palette / `baseRadius` / `fingertip` / `typography` (all flat at `asPresetVunor`'s top level) / dark mode; when overriding icons via `iconOverrides` or adding new ones via `@unocss/preset-icons`; when extending the shortcut tree with `mergeVunorShortcuts(allShortcuts, defineShortcuts({...}))`; when shipping without UnoCSS via `@atscript/ui-styles/css/{all,form,table,wf,aooth}`; or when inspecting `componentClasses` / `componentPackages` / `helperAliases` for custom build pipelines. Out of scope: vunor itself (use the `vunor` skill).
- ▌ Atscript UI Tables · moostjs bundleRender searchable, filterable, sortable, paginated, or virtualized tables from `.as` annotated types with `@atscript/vue-table` + `@atscript/ui-table`. Use when working with `<AsTableRoot>`, `<AsTable>`, `<AsWindowTable>`, `<AsFilters>`, `<AsPresetPicker>`, `<AsConfigDialog>`, or `<AsTableActions>`; when writing `@ui.table.*` / `@ui.table.fn.*` / `@ui.dict.*` annotations; when wiring a custom `queryFn` or a `moost-db` URL; when building custom cells via `@ui.table.component` + `:components` (and `provideCellLocale`); when persisting state to the URL (`useTableUrlQuery`) or to presets (`usePresets`, `useLocalDraft`, `useAppPrefs`, `AsPresetPicker`), including server-side via `AsPresetsController` from `@atscript/moost-ui-presets`; when wiring row/table actions (`AsActionFormDialog`) and selection (`togglePk`, `trimSelection`); or when tuning virtualization and block-aligned fetching. Out of scope: forms (use `atscript-ui-forms`), workflow forms (use `atscript-ui-wf`), styling (use `atscript-ui-styles`).