The agent-roles catalog content files move from JSON to YAML so each role's long `instructions` system prompt is stored as a literal block scalar (`|-`): editing one sentence now produces a line-by-line diff and the prompt is editable as plain multi-line text instead of a single escaped JSON string. Data: - `index.json` -> `index.yaml`, `bundles/<id>/<lang>.json` -> `<lang>.yaml` (old `.json` deleted). Converted programmatically via the `yaml` library with `lineWidth: 0`; round-trip verified deepEqual against the old JSON, so the resolved role content is byte-for-byte identical and no `version` is bumped (content-hash lock unchanged). Server (`AiAgentRolesCatalogProvider`): - parse with `yaml`'s safe default (JSON-compatible) schema instead of `JSON.parse` — `strict: true` (rejects unknown tags / duplicate keys) and `maxAliasCount: 100` (billion-laughs guard); no custom `!!` tags / no code execution. Fetched paths become `index.yaml` / `<lang>.yaml`. The streaming 1 MB size cap, `redirect: 'error'`, 10s timeout and `^[a-z0-9-]+$` path-traversal/SSRF guard are unchanged; the hand-written type guards are untouched (`instructions` is still a string after parsing). - add `yaml` as a direct server dependency (already in the lockfile as a transitive dep). Catalog tooling: - `scripts/check.mjs` parses the catalog as YAML (lockfile stays JSON); pin `yaml` as a devDependency of the catalog package. Tests: - provider spec fixtures serialized with `yaml`; new tests for the block-scalar `instructions` round-trip (exact multi-line string), malformed YAML and strict duplicate-key rejection -> BadGateway; size-cap and path-traversal cases retargeted to the `.yaml` paths. Docs: README, `.env.example`, `catalog-types.ts` comments and CHANGELOG updated to the YAML layout. `AI_AGENT_ROLES_CATALOG_URL` base-URL contract unchanged. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
A progressive Node.js framework for building efficient and scalable server-side applications.
Description
Nest framework TypeScript starter repository.
Installation
$ npm install
Running the app
# development
$ npm run start
# watch mode
$ npm run start:dev
# production mode
$ npm run start:prod
Migrations
# This creates a new empty migration file named 'init'
$ npm run migration:create --name=init
# Generates 'init' migration file from existing entities to update the database schema
$ npm run migration:generate --name=init
# Runs all pending migrations to update the database schema
$ npm run migration:run
# Reverts the last executed migration
$ npm run migration:revert
# Reverts all migrations
$ npm run migration:revert
# Shows the list of executed and pending migrations
$ npm run migration:show
## Test
```bash
# unit tests
$ npm run test
# e2e tests
$ npm run test:e2e
# test coverage
$ npm run test:cov
Support
Nest is an MIT-licensed open source project. It can grow thanks to the sponsors and support by the amazing backers. If you'd like to join them, please read more here.
Stay in touch
- Author - Kamil Myśliwiec
- Website - https://nestjs.com
- Twitter - @nestframework
License
Nest is MIT licensed.