@warlock.js/core 5.31.0 → 5.32.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +23 -0
- package/esm/application/app.d.mts +3 -3
- package/esm/application/app.d.mts.map +1 -1
- package/esm/application/application-config-types.d.mts +1 -2
- package/esm/application/application-config-types.d.mts.map +1 -1
- package/esm/application/application.d.mts +5 -7
- package/esm/application/application.d.mts.map +1 -1
- package/esm/application/application.mjs +3 -1
- package/esm/application/application.mjs.map +1 -1
- package/esm/application/boot-signal.d.mts +14 -12
- package/esm/application/boot-signal.d.mts.map +1 -1
- package/esm/application/index.d.mts +2 -1
- package/esm/application/index.mjs +1 -1
- package/esm/application/public-url.d.mts +1 -2
- package/esm/application/public-url.d.mts.map +1 -1
- package/esm/application/roles.d.mts +10 -11
- package/esm/application/roles.d.mts.map +1 -1
- package/esm/benchmark/benchmark-snapshots.d.mts +1 -3
- package/esm/benchmark/benchmark-snapshots.d.mts.map +1 -1
- package/esm/benchmark/benchmark.d.mts +1 -3
- package/esm/benchmark/benchmark.d.mts.map +1 -1
- package/esm/benchmark/channels/console.channel.d.mts +1 -3
- package/esm/benchmark/channels/console.channel.d.mts.map +1 -1
- package/esm/benchmark/channels/noop.channel.d.mts +1 -3
- package/esm/benchmark/channels/noop.channel.d.mts.map +1 -1
- package/esm/benchmark/index.mjs +1 -1
- package/esm/benchmark/profiler.d.mts +1 -3
- package/esm/benchmark/profiler.d.mts.map +1 -1
- package/esm/benchmark/profiler.mjs +2 -1
- package/esm/benchmark/profiler.mjs.map +1 -1
- package/esm/benchmark/types.d.mts +22 -17
- package/esm/benchmark/types.d.mts.map +1 -1
- package/esm/bootstrap/setup.d.mts +1 -2
- package/esm/bootstrap/setup.d.mts.map +1 -1
- package/esm/bootstrap.d.mts +1 -2
- package/esm/bootstrap.d.mts.map +1 -1
- package/esm/cache/database-cache-driver.d.mts +3 -5
- package/esm/cache/database-cache-driver.d.mts.map +1 -1
- package/esm/cache/database-cache-driver.mjs +1 -1
- package/esm/cache/index.d.mts +2 -1
- package/esm/cache/index.mjs +1 -1
- package/esm/cli/cli-commands.manager.mjs +6 -3
- package/esm/cli/cli-commands.manager.mjs.map +1 -1
- package/esm/cli/commands/agents-md/agents-md-command.action.mjs +3 -2
- package/esm/cli/commands/agents-md/agents-md-command.action.mjs.map +1 -1
- package/esm/cli/commands/board/board-command.action.mjs +1 -1
- package/esm/cli/commands/check/check-command.action.mjs +1 -1
- package/esm/cli/commands/check/child-typecheck.mjs +1 -1
- package/esm/cli/commands/check/child-typecheck.mjs.map +1 -1
- package/esm/cli/commands/check/format-problems.mjs +1 -1
- package/esm/cli/commands/dev-server.command.mjs +3 -2
- package/esm/cli/commands/dev-server.command.mjs.map +1 -1
- package/esm/cli/commands/doctor/check.types.d.mts +29 -16
- package/esm/cli/commands/doctor/check.types.d.mts.map +1 -1
- package/esm/cli/commands/doctor/checks/locales-ts-deprecated.check.mjs +22 -27
- package/esm/cli/commands/doctor/checks/locales-ts-deprecated.check.mjs.map +1 -1
- package/esm/cli/commands/doctor/doctor-command.action.mjs +2 -1
- package/esm/cli/commands/doctor/doctor-command.action.mjs.map +1 -1
- package/esm/cli/commands/explain/explain-command.action.mjs +1 -1
- package/esm/cli/commands/generate/generators/controller.generator.mjs +5 -2
- package/esm/cli/commands/generate/generators/controller.generator.mjs.map +1 -1
- package/esm/cli/commands/generate/generators/endpoint.generator.mjs +5 -3
- package/esm/cli/commands/generate/generators/endpoint.generator.mjs.map +1 -1
- package/esm/cli/commands/generate/generators/model.generator.mjs +3 -2
- package/esm/cli/commands/generate/generators/model.generator.mjs.map +1 -1
- package/esm/cli/commands/generate/generators/repository.generator.mjs +3 -1
- package/esm/cli/commands/generate/generators/repository.generator.mjs.map +1 -1
- package/esm/cli/commands/generate/generators/resource.generator.mjs +3 -1
- package/esm/cli/commands/generate/generators/resource.generator.mjs.map +1 -1
- package/esm/cli/commands/generate/generators/service.generator.mjs +3 -1
- package/esm/cli/commands/generate/generators/service.generator.mjs.map +1 -1
- package/esm/cli/commands/generate/templates/endpoint-stubs.mjs +2 -2
- package/esm/cli/commands/generate/templates/endpoint-stubs.mjs.map +1 -1
- package/esm/cli/commands/generate/utils/endpoint-schema.mjs +1 -2
- package/esm/cli/commands/generate/utils/endpoint-schema.mjs.map +1 -1
- package/esm/cli/commands/generate/utils/name-parser.mjs +1 -1
- package/esm/cli/commands/generate/utils/path-resolver.mjs +1 -1
- package/esm/cli/commands/inspect/inspect-command.action.mjs +3 -2
- package/esm/cli/commands/inspect/inspect-command.action.mjs.map +1 -1
- package/esm/cli/commands/issue/collect-environment.mjs +187 -0
- package/esm/cli/commands/issue/collect-environment.mjs.map +1 -0
- package/esm/cli/commands/issue/issue-command.action.mjs +70 -0
- package/esm/cli/commands/issue/issue-command.action.mjs.map +1 -0
- package/esm/cli/commands/issue.command.mjs +31 -0
- package/esm/cli/commands/issue.command.mjs.map +1 -0
- package/esm/cli/commands/mcp/mcp-command.action.mjs +15 -14
- package/esm/cli/commands/mcp/mcp-command.action.mjs.map +1 -1
- package/esm/cli/commands/openapi-generator.action.mjs +1 -1
- package/esm/cli/commands/postman-generator.action.mjs +1 -1
- package/esm/cli/commands/routes/format-routes-table.mjs +1 -1
- package/esm/cli/commands/routes/route-row.mjs +1 -1
- package/esm/cli/commands/routes/routes-diff.action.mjs +2 -2
- package/esm/cli/commands/routes/routes-diff.action.mjs.map +1 -1
- package/esm/cli/commands/test.command.mjs +1 -1
- package/esm/cli/commands/trace/trace-command.action.mjs +1 -1
- package/esm/cli/commands-loader.mjs +1 -1
- package/esm/cli/framework-cli-commands.mjs +2 -0
- package/esm/cli/framework-cli-commands.mjs.map +1 -1
- package/esm/cli/parse-cli-args.mjs +2 -2
- package/esm/cli/parse-cli-args.mjs.map +1 -1
- package/esm/cli/start.d.mts +1 -1
- package/esm/cli/string-similarity.mjs +1 -1
- package/esm/commands/cli-command.d.mts +2 -4
- package/esm/commands/cli-command.d.mts.map +1 -1
- package/esm/commands/index.d.mts +2 -1
- package/esm/commands/index.mjs +1 -1
- package/esm/commands/types.d.mts +8 -8
- package/esm/commands/types.d.mts.map +1 -1
- package/esm/config/config-getter.d.mts +2 -3
- package/esm/config/config-getter.d.mts.map +1 -1
- package/esm/config/config-getter.mjs +5 -5
- package/esm/config/config-getter.mjs.map +1 -1
- package/esm/config/config-handlers.d.mts +1 -3
- package/esm/config/config-handlers.d.mts.map +1 -1
- package/esm/config/config-loader.d.mts +1 -2
- package/esm/config/config-loader.d.mts.map +1 -1
- package/esm/config/config-loader.mjs +3 -3
- package/esm/config/config-loader.mjs.map +1 -1
- package/esm/config/config-manager.mjs +1 -1
- package/esm/config/config-schema.d.mts +19 -16
- package/esm/config/config-schema.d.mts.map +1 -1
- package/esm/config/config-setter.d.mts +2 -4
- package/esm/config/config-setter.d.mts.map +1 -1
- package/esm/config/config-setter.mjs +2 -2
- package/esm/config/config-setter.mjs.map +1 -1
- package/esm/config/config-special-handlers.d.mts +2 -4
- package/esm/config/config-special-handlers.d.mts.map +1 -1
- package/esm/config/index.d.mts +2 -1
- package/esm/config/index.mjs +1 -1
- package/esm/config/types.d.mts +4 -5
- package/esm/config/types.d.mts.map +1 -1
- package/esm/connectors/access-connector.d.mts +1 -3
- package/esm/connectors/access-connector.d.mts.map +1 -1
- package/esm/connectors/access-connector.mjs +2 -2
- package/esm/connectors/access-connector.mjs.map +1 -1
- package/esm/connectors/ai-connector.d.mts +1 -3
- package/esm/connectors/ai-connector.d.mts.map +1 -1
- package/esm/connectors/ai-connector.mjs +2 -2
- package/esm/connectors/ai-connector.mjs.map +1 -1
- package/esm/connectors/assert-no-reserved-connector-names.d.mts +1 -3
- package/esm/connectors/assert-no-reserved-connector-names.d.mts.map +1 -1
- package/esm/connectors/assert-unique-connector-names.d.mts +1 -3
- package/esm/connectors/assert-unique-connector-names.d.mts.map +1 -1
- package/esm/connectors/assert-unique-connector-names.mjs +2 -1
- package/esm/connectors/assert-unique-connector-names.mjs.map +1 -1
- package/esm/connectors/base-connector.d.mts +1 -3
- package/esm/connectors/base-connector.d.mts.map +1 -1
- package/esm/connectors/cache-connector.d.mts +1 -3
- package/esm/connectors/cache-connector.d.mts.map +1 -1
- package/esm/connectors/cache-connector.mjs +3 -3
- package/esm/connectors/cache-connector.mjs.map +1 -1
- package/esm/connectors/connectors-manager.d.mts +2 -4
- package/esm/connectors/connectors-manager.d.mts.map +1 -1
- package/esm/connectors/connectors-manager.mjs +2 -2
- package/esm/connectors/connectors-manager.mjs.map +1 -1
- package/esm/connectors/database-connector.d.mts +1 -3
- package/esm/connectors/database-connector.d.mts.map +1 -1
- package/esm/connectors/database-connector.mjs +2 -2
- package/esm/connectors/database-connector.mjs.map +1 -1
- package/esm/connectors/describe-server-address.mjs +4 -4
- package/esm/connectors/describe-server-address.mjs.map +1 -1
- package/esm/connectors/herald-connector.d.mts +1 -3
- package/esm/connectors/herald-connector.d.mts.map +1 -1
- package/esm/connectors/herald-connector.mjs +2 -2
- package/esm/connectors/herald-connector.mjs.map +1 -1
- package/esm/connectors/http-connector.d.mts +1 -3
- package/esm/connectors/http-connector.d.mts.map +1 -1
- package/esm/connectors/http-connector.mjs +8 -7
- package/esm/connectors/http-connector.mjs.map +1 -1
- package/esm/connectors/index.d.mts +2 -1
- package/esm/connectors/index.mjs +1 -1
- package/esm/connectors/logger-connector.d.mts +1 -3
- package/esm/connectors/logger-connector.d.mts.map +1 -1
- package/esm/connectors/logger-connector.mjs +2 -2
- package/esm/connectors/logger-connector.mjs.map +1 -1
- package/esm/connectors/mail-connector.d.mts +1 -3
- package/esm/connectors/mail-connector.d.mts.map +1 -1
- package/esm/connectors/mail-connector.mjs +2 -2
- package/esm/connectors/mail-connector.mjs.map +1 -1
- package/esm/connectors/notifications-connector.d.mts +1 -3
- package/esm/connectors/notifications-connector.d.mts.map +1 -1
- package/esm/connectors/notifications-connector.mjs +2 -2
- package/esm/connectors/notifications-connector.mjs.map +1 -1
- package/esm/connectors/register-configured-connectors.d.mts +2 -4
- package/esm/connectors/register-configured-connectors.d.mts.map +1 -1
- package/esm/connectors/socket-connector.d.mts +1 -3
- package/esm/connectors/socket-connector.d.mts.map +1 -1
- package/esm/connectors/socket-connector.mjs +12 -10
- package/esm/connectors/socket-connector.mjs.map +1 -1
- package/esm/connectors/storage.connector.d.mts +1 -3
- package/esm/connectors/storage.connector.d.mts.map +1 -1
- package/esm/connectors/storage.connector.mjs +2 -2
- package/esm/connectors/storage.connector.mjs.map +1 -1
- package/esm/connectors/types.d.mts +17 -14
- package/esm/connectors/types.d.mts.map +1 -1
- package/esm/container/container-instance-registry.mjs.map +1 -1
- package/esm/container/development-app-modules.d.mts +7 -5
- package/esm/container/development-app-modules.d.mts.map +1 -1
- package/esm/container/development-model-modules.d.mts +6 -5
- package/esm/container/development-model-modules.d.mts.map +1 -1
- package/esm/container/index.d.mts +4 -4
- package/esm/container/index.d.mts.map +1 -1
- package/esm/database/index.d.mts +3 -1
- package/esm/database/index.mjs +1 -1
- package/esm/database/migrate-action.mjs +1 -1
- package/esm/database/models/database-log/database-log.d.mts +2 -3
- package/esm/database/models/database-log/database-log.d.mts.map +1 -1
- package/esm/database/models/database-log/index.d.mts +2 -1
- package/esm/database/models/database-log/index.mjs +1 -1
- package/esm/database/seed-command-action.mjs +1 -1
- package/esm/database/seeds/seeder.d.mts +2 -4
- package/esm/database/seeds/seeder.d.mts.map +1 -1
- package/esm/database/seeds/seeder.errors.d.mts +2 -3
- package/esm/database/seeds/seeder.errors.d.mts.map +1 -1
- package/esm/database/seeds/seeders.manager.mjs +2 -1
- package/esm/database/seeds/seeders.manager.mjs.map +1 -1
- package/esm/database/seeds/types.d.mts +7 -8
- package/esm/database/seeds/types.d.mts.map +1 -1
- package/esm/database/utils.d.mts +4 -5
- package/esm/database/utils.d.mts.map +1 -1
- package/esm/dev-server/app-module-registry.mjs +1 -1
- package/esm/dev-server/create-worker.mjs +5 -3
- package/esm/dev-server/create-worker.mjs.map +1 -1
- package/esm/dev-server/dependency-graph.d.mts +1 -3
- package/esm/dev-server/dependency-graph.d.mts.map +1 -1
- package/esm/dev-server/dependency-graph.mjs +1 -1
- package/esm/dev-server/dependency-graph.mjs.map +1 -1
- package/esm/dev-server/extract-translation-keys.mjs +16 -17
- package/esm/dev-server/extract-translation-keys.mjs.map +1 -1
- package/esm/dev-server/file-manager.d.mts +3 -7
- package/esm/dev-server/file-manager.d.mts.map +1 -1
- package/esm/dev-server/file-operations.d.mts +1 -3
- package/esm/dev-server/file-operations.d.mts.map +1 -1
- package/esm/dev-server/files-watcher.mjs +12 -11
- package/esm/dev-server/files-watcher.mjs.map +1 -1
- package/esm/dev-server/health-checker/checkers/typescript-health-checker.mjs +36 -115
- package/esm/dev-server/health-checker/checkers/typescript-health-checker.mjs.map +1 -1
- package/esm/dev-server/health-checker/file-health-checker.contract.d.mts +5 -5
- package/esm/dev-server/health-checker/file-health-checker.contract.d.mts.map +1 -1
- package/esm/dev-server/health-checker/file-health-result.d.mts +2 -2
- package/esm/dev-server/health-checker/file-health-result.d.mts.map +1 -1
- package/esm/dev-server/health-checker/files-healthcare.manager.mjs +1 -0
- package/esm/dev-server/health-checker/files-healthcare.manager.mjs.map +1 -1
- package/esm/dev-server/health-checker/oxlint-runner.mjs +6 -5
- package/esm/dev-server/health-checker/oxlint-runner.mjs.map +1 -1
- package/esm/dev-server/health-checker/workers/eslint-health.worker.d.mts +1 -1
- package/esm/dev-server/health-checker/workers/oxlint-health.worker.d.mts +1 -1
- package/esm/dev-server/health-checker/workers/ts-health.worker.d.mts +1 -1
- package/esm/dev-server/health-checker/workers/ts-health.worker.mjs +40 -174
- package/esm/dev-server/health-checker/workers/ts-health.worker.mjs.map +1 -1
- package/esm/dev-server/loader/hook-thread.d.mts +4 -8
- package/esm/dev-server/loader/hook-thread.d.mts.map +1 -1
- package/esm/dev-server/loader/load-hook.d.mts +10 -6
- package/esm/dev-server/loader/load-hook.d.mts.map +1 -1
- package/esm/dev-server/loader/load-hook.mjs +4 -3
- package/esm/dev-server/loader/load-hook.mjs.map +1 -1
- package/esm/dev-server/loader/own-resolver.mjs +1 -1
- package/esm/dev-server/loader/register-loader.mjs +3 -2
- package/esm/dev-server/loader/register-loader.mjs.map +1 -1
- package/esm/dev-server/loader/resolve-hook.d.mts +2 -2
- package/esm/dev-server/loader/resolve-hook.d.mts.map +1 -1
- package/esm/dev-server/loader/resolve-hook.mjs +2 -1
- package/esm/dev-server/loader/resolve-hook.mjs.map +1 -1
- package/esm/dev-server/loader/transpile-cache.mjs +2 -1
- package/esm/dev-server/loader/transpile-cache.mjs.map +1 -1
- package/esm/dev-server/manifest-manager.d.mts +1 -3
- package/esm/dev-server/manifest-manager.d.mts.map +1 -1
- package/esm/dev-server/model-module-registry.mjs +3 -3
- package/esm/dev-server/model-module-registry.mjs.map +1 -1
- package/esm/dev-server/model-resource-typings.mjs +40 -47
- package/esm/dev-server/model-resource-typings.mjs.map +1 -1
- package/esm/dev-server/module-loader.mjs +2 -2
- package/esm/dev-server/module-loader.mjs.map +1 -1
- package/esm/dev-server/package-json-manager.mjs +1 -1
- package/esm/dev-server/parse-imports.mjs +6 -38
- package/esm/dev-server/parse-imports.mjs.map +1 -1
- package/esm/dev-server/read-config-ast.mjs +3 -33
- package/esm/dev-server/read-config-ast.mjs.map +1 -1
- package/esm/dev-server/ready-block.mjs +1 -1
- package/esm/dev-server/shortcuts.mjs +1 -1
- package/esm/dev-server/special-files-collector.d.mts +2 -4
- package/esm/dev-server/special-files-collector.d.mts.map +1 -1
- package/esm/dev-server/supervisor.mjs +1 -1
- package/esm/dev-server/tsconfig-manager.mjs +3 -3
- package/esm/dev-server/tsconfig-manager.mjs.map +1 -1
- package/esm/dev-server/type-generator.mjs +28 -35
- package/esm/dev-server/type-generator.mjs.map +1 -1
- package/esm/dev-server/types.d.mts +3 -4
- package/esm/dev-server/types.d.mts.map +1 -1
- package/esm/dev-server/update-check-cache.mjs +2 -2
- package/esm/dev-server/update-check-cache.mjs.map +1 -1
- package/esm/encryption/encrypt.d.mts +2 -3
- package/esm/encryption/encrypt.d.mts.map +1 -1
- package/esm/encryption/hash.d.mts +1 -2
- package/esm/encryption/hash.d.mts.map +1 -1
- package/esm/encryption/index.mjs +1 -1
- package/esm/encryption/password.d.mts +2 -3
- package/esm/encryption/password.d.mts.map +1 -1
- package/esm/encryption/types.d.mts +2 -3
- package/esm/encryption/types.d.mts.map +1 -1
- package/esm/errors/error-codes.d.mts +29 -22
- package/esm/errors/error-codes.d.mts.map +1 -1
- package/esm/errors/warlock-error.d.mts +1 -3
- package/esm/errors/warlock-error.d.mts.map +1 -1
- package/esm/generations/add-command.action.mjs +3 -2
- package/esm/generations/add-command.action.mjs.map +1 -1
- package/esm/generations/features/bull-board.feature.mjs +2 -1
- package/esm/generations/features/bull-board.feature.mjs.map +1 -1
- package/esm/generations/features/notifications.feature.mjs +2 -1
- package/esm/generations/features/notifications.feature.mjs.map +1 -1
- package/esm/generations/features/shared/merge-web-sitemap-config.mjs +16 -23
- package/esm/generations/features/shared/merge-web-sitemap-config.mjs.map +1 -1
- package/esm/generations/features/shared/patch-tsconfig-include.mjs +1 -1
- package/esm/generations/features/shared/relocate-conflicting-home-route.mjs +1 -1
- package/esm/generations/features/sitemap.feature.mjs +2 -1
- package/esm/generations/features/sitemap.feature.mjs.map +1 -1
- package/esm/generations/generation-fs.mjs +1 -1
- package/esm/generations/generation-run.mjs +1 -1
- package/esm/generations/stubs.mjs +1 -1
- package/esm/generations/stubs.mjs.map +1 -1
- package/esm/http/boot-port-preflight.d.mts +4 -5
- package/esm/http/boot-port-preflight.d.mts.map +1 -1
- package/esm/http/boot-port-preflight.mjs +2 -2
- package/esm/http/boot-port-preflight.mjs.map +1 -1
- package/esm/http/bounded-stream-queue.d.mts +4 -4
- package/esm/http/bounded-stream-queue.d.mts.map +1 -1
- package/esm/http/bounded-stream-queue.mjs +1 -1
- package/esm/http/bounded-stream-queue.mjs.map +1 -1
- package/esm/http/build-cors-options.mjs +2 -2
- package/esm/http/build-cors-options.mjs.map +1 -1
- package/esm/http/build-rate-limit-options.d.mts +2 -3
- package/esm/http/build-rate-limit-options.d.mts.map +1 -1
- package/esm/http/build-rate-limit-options.mjs +1 -1
- package/esm/http/build-rate-limit-options.mjs.map +1 -1
- package/esm/http/conditional-request.d.mts +14 -13
- package/esm/http/conditional-request.d.mts.map +1 -1
- package/esm/http/config.d.mts +2 -4
- package/esm/http/config.d.mts.map +1 -1
- package/esm/http/config.mjs +2 -2
- package/esm/http/config.mjs.map +1 -1
- package/esm/http/context/request-context.d.mts +6 -7
- package/esm/http/context/request-context.d.mts.map +1 -1
- package/esm/http/context/request-memo.d.mts +1 -2
- package/esm/http/context/request-memo.d.mts.map +1 -1
- package/esm/http/createHttpApplication.d.mts +2 -3
- package/esm/http/createHttpApplication.d.mts.map +1 -1
- package/esm/http/createHttpApplication.mjs +2 -2
- package/esm/http/createHttpApplication.mjs.map +1 -1
- package/esm/http/csp.d.mts +10 -12
- package/esm/http/csp.d.mts.map +1 -1
- package/esm/http/csp.mjs +2 -2
- package/esm/http/csp.mjs.map +1 -1
- package/esm/http/csrf-default-guard.d.mts +2 -4
- package/esm/http/csrf-default-guard.d.mts.map +1 -1
- package/esm/http/csrf-default-guard.mjs +1 -1
- package/esm/http/csrf-default-guard.mjs.map +1 -1
- package/esm/http/csrf-origin-policy.d.mts +7 -9
- package/esm/http/csrf-origin-policy.d.mts.map +1 -1
- package/esm/http/csrf-origin-policy.mjs +2 -2
- package/esm/http/csrf-origin-policy.mjs.map +1 -1
- package/esm/http/database/RequestLog.d.mts +2 -3
- package/esm/http/database/RequestLog.d.mts.map +1 -1
- package/esm/http/error-codes.d.mts +1 -2
- package/esm/http/error-codes.d.mts.map +1 -1
- package/esm/http/error-mapper.d.mts +2 -4
- package/esm/http/error-mapper.d.mts.map +1 -1
- package/esm/http/error-mapper.mjs +2 -2
- package/esm/http/error-mapper.mjs.map +1 -1
- package/esm/http/errors/errors.d.mts +28 -29
- package/esm/http/errors/errors.d.mts.map +1 -1
- package/esm/http/escape-header-value.d.mts +1 -2
- package/esm/http/escape-header-value.d.mts.map +1 -1
- package/esm/http/events.d.mts +2 -4
- package/esm/http/events.d.mts.map +1 -1
- package/esm/http/health.d.mts +4 -4
- package/esm/http/health.d.mts.map +1 -1
- package/esm/http/index.d.mts +4 -1
- package/esm/http/index.mjs +1 -1
- package/esm/http/middleware/cache-response-middleware.d.mts +2 -4
- package/esm/http/middleware/cache-response-middleware.d.mts.map +1 -1
- package/esm/http/middleware/concurrency-limit.middleware.d.mts +3 -3
- package/esm/http/middleware/concurrency-limit.middleware.d.mts.map +1 -1
- package/esm/http/middleware/idempotency.middleware.d.mts +3 -3
- package/esm/http/middleware/idempotency.middleware.d.mts.map +1 -1
- package/esm/http/middleware/idempotency.middleware.mjs +6 -6
- package/esm/http/middleware/idempotency.middleware.mjs.map +1 -1
- package/esm/http/middleware/index.d.mts +3 -1
- package/esm/http/middleware/index.mjs +1 -1
- package/esm/http/middleware/inject-request-context.d.mts +2 -4
- package/esm/http/middleware/inject-request-context.d.mts.map +1 -1
- package/esm/http/middleware/inject-request-context.mjs +3 -3
- package/esm/http/middleware/inject-request-context.mjs.map +1 -1
- package/esm/http/middleware/ip-filter.middleware.d.mts +3 -3
- package/esm/http/middleware/ip-filter.middleware.d.mts.map +1 -1
- package/esm/http/middleware/maintenance.middleware.d.mts +3 -3
- package/esm/http/middleware/maintenance.middleware.d.mts.map +1 -1
- package/esm/http/middleware/maintenance.middleware.mjs +4 -4
- package/esm/http/middleware/maintenance.middleware.mjs.map +1 -1
- package/esm/http/middleware/max-body-size.middleware.d.mts +2 -2
- package/esm/http/middleware/max-body-size.middleware.d.mts.map +1 -1
- package/esm/http/middleware/middleware-list.d.mts +1 -3
- package/esm/http/middleware/middleware-list.d.mts.map +1 -1
- package/esm/http/middleware/rate-limit.middleware.d.mts +3 -3
- package/esm/http/middleware/rate-limit.middleware.d.mts.map +1 -1
- package/esm/http/middleware/rate-limit.middleware.mjs +2 -2
- package/esm/http/middleware/rate-limit.middleware.mjs.map +1 -1
- package/esm/http/middleware/utils/cidr-match.d.mts +2 -3
- package/esm/http/middleware/utils/cidr-match.d.mts.map +1 -1
- package/esm/http/middleware/utils/idempotency-key.d.mts +3 -5
- package/esm/http/middleware/utils/idempotency-key.d.mts.map +1 -1
- package/esm/http/middleware/utils/index.d.mts +2 -1
- package/esm/http/middleware/utils/parse-size.d.mts +1 -2
- package/esm/http/middleware/utils/parse-size.d.mts.map +1 -1
- package/esm/http/middleware/utils/parse-size.mjs +2 -2
- package/esm/http/middleware/utils/parse-size.mjs.map +1 -1
- package/esm/http/plugins.d.mts +2 -4
- package/esm/http/plugins.d.mts.map +1 -1
- package/esm/http/plugins.mjs +10 -10
- package/esm/http/plugins.mjs.map +1 -1
- package/esm/http/port-preflight.d.mts +3 -4
- package/esm/http/port-preflight.d.mts.map +1 -1
- package/esm/http/rate-limit-cache-store.mjs +4 -3
- package/esm/http/rate-limit-cache-store.mjs.map +1 -1
- package/esm/http/ready-report.d.mts +15 -10
- package/esm/http/ready-report.d.mts.map +1 -1
- package/esm/http/request-controller.d.mts +1 -3
- package/esm/http/request-controller.d.mts.map +1 -1
- package/esm/http/request-log-snapshot.d.mts +20 -16
- package/esm/http/request-log-snapshot.d.mts.map +1 -1
- package/esm/http/request-log-snapshot.mjs +3 -3
- package/esm/http/request-log-snapshot.mjs.map +1 -1
- package/esm/http/request.d.mts +8 -7
- package/esm/http/request.d.mts.map +1 -1
- package/esm/http/request.mjs +8 -7
- package/esm/http/request.mjs.map +1 -1
- package/esm/http/response.d.mts +12 -11
- package/esm/http/response.d.mts.map +1 -1
- package/esm/http/response.mjs +7 -7
- package/esm/http/response.mjs.map +1 -1
- package/esm/http/safe-redirect.d.mts +3 -4
- package/esm/http/safe-redirect.d.mts.map +1 -1
- package/esm/http/serialized.d.mts +12 -13
- package/esm/http/serialized.d.mts.map +1 -1
- package/esm/http/server-rebuilt.d.mts +3 -5
- package/esm/http/server-rebuilt.d.mts.map +1 -1
- package/esm/http/server.d.mts +9 -9
- package/esm/http/server.d.mts.map +1 -1
- package/esm/http/server.mjs +4 -4
- package/esm/http/server.mjs.map +1 -1
- package/esm/http/stream-react-response.d.mts +7 -7
- package/esm/http/stream-react-response.d.mts.map +1 -1
- package/esm/http/tracing/index.mjs +1 -1
- package/esm/http/tracing/trace-id.d.mts +2 -3
- package/esm/http/tracing/trace-id.d.mts.map +1 -1
- package/esm/http/tracing/tracing-dispatcher.d.mts +10 -11
- package/esm/http/tracing/tracing-dispatcher.d.mts.map +1 -1
- package/esm/http/tracing/tracing-dispatcher.mjs +2 -2
- package/esm/http/tracing/tracing-dispatcher.mjs.map +1 -1
- package/esm/http/tracing/tracing.type.d.mts +11 -9
- package/esm/http/tracing/tracing.type.d.mts.map +1 -1
- package/esm/http/types.d.mts +49 -43
- package/esm/http/types.d.mts.map +1 -1
- package/esm/http/uploaded-file.d.mts +6 -5
- package/esm/http/uploaded-file.d.mts.map +1 -1
- package/esm/http/uploads/generate-image-variants.d.mts +6 -6
- package/esm/http/uploads/generate-image-variants.d.mts.map +1 -1
- package/esm/http/uploads/generate-image-variants.mjs +1 -1
- package/esm/http/uploads/generate-image-variants.mjs.map +1 -1
- package/esm/http/uploads/image-variant-cache-entries.mjs +1 -1
- package/esm/http/uploads/image-variant-cache.mjs +8 -8
- package/esm/http/uploads/image-variant-cache.mjs.map +1 -1
- package/esm/http/uploads/image-variant-types.d.mts +7 -9
- package/esm/http/uploads/image-variant-types.d.mts.map +1 -1
- package/esm/http/uploads/image-variants-config-error.d.mts +1 -2
- package/esm/http/uploads/image-variants-config-error.d.mts.map +1 -1
- package/esm/http/uploads/index.d.mts +2 -1
- package/esm/http/uploads/index.mjs +1 -1
- package/esm/http/uploads/parse-uploaded-file-query.mjs +1 -1
- package/esm/http/uploads/parse-uploaded-file-query.mjs.map +1 -1
- package/esm/http/uploads/purge-image-variants.d.mts +2 -4
- package/esm/http/uploads/purge-image-variants.d.mts.map +1 -1
- package/esm/http/uploads/resolve-image-variant.d.mts +3 -5
- package/esm/http/uploads/resolve-image-variant.d.mts.map +1 -1
- package/esm/http/uploads/resolve-image-variants-config.mjs +4 -4
- package/esm/http/uploads/resolve-image-variants-config.mjs.map +1 -1
- package/esm/http/uploads/resolve-original-content-type.mjs +1 -1
- package/esm/http/uploads/resolve-original-content-type.mjs.map +1 -1
- package/esm/http/uploads/trim-image-variant-cache.mjs +3 -3
- package/esm/http/uploads/trim-image-variant-cache.mjs.map +1 -1
- package/esm/http/uploads/uploaded-file.controller.d.mts +6 -5
- package/esm/http/uploads/uploaded-file.controller.d.mts.map +1 -1
- package/esm/http/uploads/uploaded-file.controller.mjs +2 -1
- package/esm/http/uploads/uploaded-file.controller.mjs.map +1 -1
- package/esm/http/uploads/variant-cache-key.mjs +1 -1
- package/esm/http/uploads-config.d.mts +2 -4
- package/esm/http/uploads-config.d.mts.map +1 -1
- package/esm/http/uploads-types.d.mts +19 -17
- package/esm/http/uploads-types.d.mts.map +1 -1
- package/esm/http/xmlable.d.mts +1 -2
- package/esm/http/xmlable.d.mts.map +1 -1
- package/esm/image/image.d.mts +6 -7
- package/esm/image/image.d.mts.map +1 -1
- package/esm/image/image.mjs.map +1 -1
- package/esm/image/index.d.mts +2 -1
- package/esm/image/index.mjs +1 -1
- package/esm/index.d.mts +21 -0
- package/esm/loader/app-module-importer.d.mts +1 -2
- package/esm/loader/app-module-importer.d.mts.map +1 -1
- package/esm/localization/index.mjs +1 -1
- package/esm/localization/parse-locale-dictionary.d.mts +4 -5
- package/esm/localization/parse-locale-dictionary.d.mts.map +1 -1
- package/esm/localization/parse-locale-dictionary.mjs +1 -1
- package/esm/localization/parse-locale-dictionary.mjs.map +1 -1
- package/esm/localization/register-locale-dictionary.d.mts +3 -4
- package/esm/localization/register-locale-dictionary.d.mts.map +1 -1
- package/esm/localization/register-locale-dictionary.mjs +2 -2
- package/esm/localization/register-locale-dictionary.mjs.map +1 -1
- package/esm/logger/fatal-visibility.d.mts +1 -2
- package/esm/logger/fatal-visibility.d.mts.map +1 -1
- package/esm/logger/index.d.mts +2 -1
- package/esm/logger/index.mjs +1 -1
- package/esm/logger/logger.d.mts +1 -3
- package/esm/logger/logger.d.mts.map +1 -1
- package/esm/logger/types.d.mts +2 -3
- package/esm/logger/types.d.mts.map +1 -1
- package/esm/mail/config.d.mts +12 -14
- package/esm/mail/config.d.mts.map +1 -1
- package/esm/mail/events.d.mts +4 -6
- package/esm/mail/events.d.mts.map +1 -1
- package/esm/mail/index.d.mts +2 -1
- package/esm/mail/index.mjs +1 -1
- package/esm/mail/mail.d.mts +1 -3
- package/esm/mail/mail.d.mts.map +1 -1
- package/esm/mail/mailer-pool.d.mts +5 -7
- package/esm/mail/mailer-pool.d.mts.map +1 -1
- package/esm/mail/react-mail.d.mts +1 -3
- package/esm/mail/react-mail.d.mts.map +1 -1
- package/esm/mail/send-mail.d.mts +1 -3
- package/esm/mail/send-mail.d.mts.map +1 -1
- package/esm/mail/send-mail.mjs +2 -1
- package/esm/mail/send-mail.mjs.map +1 -1
- package/esm/mail/test-mailbox.d.mts +11 -13
- package/esm/mail/test-mailbox.d.mts.map +1 -1
- package/esm/mail/types.d.mts +17 -18
- package/esm/mail/types.d.mts.map +1 -1
- package/esm/manifest/manifest-manager.mjs +1 -1
- package/esm/openapi/build-openapi-document.d.mts +2 -4
- package/esm/openapi/build-openapi-document.d.mts.map +1 -1
- package/esm/openapi/cast-schema.mjs +1 -1
- package/esm/openapi/development-openapi-provider.d.mts +5 -6
- package/esm/openapi/development-openapi-provider.d.mts.map +1 -1
- package/esm/openapi/index.d.mts +3 -1
- package/esm/openapi/index.mjs +1 -1
- package/esm/openapi/openapi-child-output.mjs +2 -2
- package/esm/openapi/openapi-child-output.mjs.map +1 -1
- package/esm/openapi/postman/build-request-url.mjs +1 -1
- package/esm/openapi/postman/example-from-schema.d.mts +1 -3
- package/esm/openapi/postman/example-from-schema.d.mts.map +1 -1
- package/esm/openapi/postman/index.d.mts +2 -1
- package/esm/openapi/postman/openapi-to-postman-collection.d.mts +3 -5
- package/esm/openapi/postman/openapi-to-postman-collection.d.mts.map +1 -1
- package/esm/openapi/postman/postman-types.d.mts +19 -18
- package/esm/openapi/postman/postman-types.d.mts.map +1 -1
- package/esm/openapi/postman/schema-refs.d.mts +1 -3
- package/esm/openapi/postman/schema-refs.d.mts.map +1 -1
- package/esm/openapi/postman/uuid-v5.mjs +1 -1
- package/esm/openapi/schema-registry.d.mts +1 -1
- package/esm/openapi/security.mjs +1 -1
- package/esm/openapi/types.d.mts +23 -21
- package/esm/openapi/types.d.mts.map +1 -1
- package/esm/production/assert-generated-imports.mjs +1 -1
- package/esm/production/build-contributions.mjs +1 -1
- package/esm/production/bundle-framework-dependencies.mjs +1 -1
- package/esm/production/dist-build-manifest.mjs +1 -1
- package/esm/production/esbuild-plugins.mjs.map +1 -1
- package/esm/production/esbuild-preflight.mjs +1 -1
- package/esm/production/production-builder.mjs +2 -1
- package/esm/production/production-builder.mjs.map +1 -1
- package/esm/production/production-supervisor.mjs +1 -1
- package/esm/production/registration-child-runner.mjs +4 -3
- package/esm/production/registration-child-runner.mjs.map +1 -1
- package/esm/production/resolve-build-config.d.mts +4 -4
- package/esm/production/resolve-build-config.d.mts.map +1 -1
- package/esm/production/resolve-build-config.mjs +1 -1
- package/esm/production/route-registration-child.d.mts +1 -1
- package/esm/production/route-registration-child.mjs +8 -7
- package/esm/production/route-registration-child.mjs.map +1 -1
- package/esm/production/tsconfig-path-aliases.mjs +1 -1
- package/esm/react/index.d.mts +1 -3
- package/esm/react/index.d.mts.map +1 -1
- package/esm/react/index.mjs.map +1 -1
- package/esm/repositories/adapters/cascade/cascade-adapter.d.mts +3 -4
- package/esm/repositories/adapters/cascade/cascade-adapter.d.mts.map +1 -1
- package/esm/repositories/adapters/cascade/cascade-query-builder.d.mts +2 -3
- package/esm/repositories/adapters/cascade/cascade-query-builder.d.mts.map +1 -1
- package/esm/repositories/adapters/cascade/filter-applicator.mjs +10 -9
- package/esm/repositories/adapters/cascade/filter-applicator.mjs.map +1 -1
- package/esm/repositories/adapters/cascade/index.d.mts +2 -1
- package/esm/repositories/adapters/cascade/index.mjs +1 -1
- package/esm/repositories/contracts/index.d.mts +2 -1
- package/esm/repositories/contracts/query-builder.contract.d.mts +4 -6
- package/esm/repositories/contracts/query-builder.contract.d.mts.map +1 -1
- package/esm/repositories/contracts/repository-adapter.contract.d.mts +1 -3
- package/esm/repositories/contracts/repository-adapter.contract.d.mts.map +1 -1
- package/esm/repositories/contracts/types.d.mts +23 -25
- package/esm/repositories/contracts/types.d.mts.map +1 -1
- package/esm/repositories/index.d.mts +4 -1
- package/esm/repositories/index.mjs +1 -1
- package/esm/repositories/repository.manager.d.mts +2 -3
- package/esm/repositories/repository.manager.d.mts.map +1 -1
- package/esm/repositories/repository.manager.mjs +2 -2
- package/esm/repositories/repository.manager.mjs.map +1 -1
- package/esm/resource/define-resource.d.mts +3 -5
- package/esm/resource/define-resource.d.mts.map +1 -1
- package/esm/resource/index.d.mts +2 -1
- package/esm/resource/index.mjs +1 -1
- package/esm/resource/nullable-resource.d.mts +5 -7
- package/esm/resource/nullable-resource.d.mts.map +1 -1
- package/esm/resource/register-resource.d.mts +1 -3
- package/esm/resource/register-resource.d.mts.map +1 -1
- package/esm/resource/resource-field-builder.d.mts +1 -3
- package/esm/resource/resource-field-builder.d.mts.map +1 -1
- package/esm/resource/resource.d.mts +3 -5
- package/esm/resource/resource.d.mts.map +1 -1
- package/esm/resource/resource.mjs +4 -2
- package/esm/resource/resource.mjs.map +1 -1
- package/esm/resource/types.d.mts +21 -21
- package/esm/resource/types.d.mts.map +1 -1
- package/esm/restful/index.d.mts +2 -1
- package/esm/restful/index.mjs +1 -1
- package/esm/restful/restful.d.mts +12 -32
- package/esm/restful/restful.d.mts.map +1 -1
- package/esm/router/index.d.mts +2 -1
- package/esm/router/index.mjs +1 -1
- package/esm/router/named-api-routes-with-responses.mjs +2 -1
- package/esm/router/named-api-routes-with-responses.mjs.map +1 -1
- package/esm/router/normalize-request-path.d.mts +1 -2
- package/esm/router/normalize-request-path.d.mts.map +1 -1
- package/esm/router/normalize-route-path.d.mts +1 -2
- package/esm/router/normalize-route-path.d.mts.map +1 -1
- package/esm/router/positional-handler-diagnostics.d.mts +15 -13
- package/esm/router/positional-handler-diagnostics.d.mts.map +1 -1
- package/esm/router/resolve-route-rate-limit.mjs +3 -3
- package/esm/router/resolve-route-rate-limit.mjs.map +1 -1
- package/esm/router/route-builder.d.mts +1 -3
- package/esm/router/route-builder.d.mts.map +1 -1
- package/esm/router/route-guard-names.mjs +1 -1
- package/esm/router/route-guard-names.mjs.map +1 -1
- package/esm/router/route-name-method-suffix.d.mts +2 -3
- package/esm/router/route-name-method-suffix.d.mts.map +1 -1
- package/esm/router/route-name-taken-error.d.mts +1 -3
- package/esm/router/route-name-taken-error.d.mts.map +1 -1
- package/esm/router/route-registry.d.mts +1 -3
- package/esm/router/route-registry.d.mts.map +1 -1
- package/esm/router/router.d.mts +2 -4
- package/esm/router/router.d.mts.map +1 -1
- package/esm/router/router.mjs +8 -6
- package/esm/router/router.mjs.map +1 -1
- package/esm/router/types.d.mts +25 -26
- package/esm/router/types.d.mts.map +1 -1
- package/esm/router/unguarded-route-diagnostics.d.mts +6 -8
- package/esm/router/unguarded-route-diagnostics.d.mts.map +1 -1
- package/esm/socket/index.d.mts +2 -1
- package/esm/socket/index.mjs +1 -1
- package/esm/socket/types.d.mts +2 -4
- package/esm/socket/types.d.mts.map +1 -1
- package/esm/socket/utils.d.mts +1 -3
- package/esm/socket/utils.d.mts.map +1 -1
- package/esm/storage/config.d.mts +4 -6
- package/esm/storage/config.d.mts.map +1 -1
- package/esm/storage/context/storage-driver-context.d.mts +3 -4
- package/esm/storage/context/storage-driver-context.d.mts.map +1 -1
- package/esm/storage/drivers/cloud-driver.d.mts +2 -4
- package/esm/storage/drivers/cloud-driver.d.mts.map +1 -1
- package/esm/storage/drivers/cloud-driver.mjs.map +1 -1
- package/esm/storage/drivers/do-spaces-driver.d.mts +1 -3
- package/esm/storage/drivers/do-spaces-driver.d.mts.map +1 -1
- package/esm/storage/drivers/local-driver.d.mts +2 -3
- package/esm/storage/drivers/local-driver.d.mts.map +1 -1
- package/esm/storage/drivers/local-driver.mjs +8 -3
- package/esm/storage/drivers/local-driver.mjs.map +1 -1
- package/esm/storage/drivers/r2-driver.d.mts +1 -3
- package/esm/storage/drivers/r2-driver.d.mts.map +1 -1
- package/esm/storage/drivers/s3-driver.d.mts +1 -3
- package/esm/storage/drivers/s3-driver.d.mts.map +1 -1
- package/esm/storage/index.d.mts +2 -1
- package/esm/storage/index.mjs +1 -1
- package/esm/storage/local-disk-roots.mjs +2 -2
- package/esm/storage/local-disk-roots.mjs.map +1 -1
- package/esm/storage/scoped-storage.d.mts +2 -3
- package/esm/storage/scoped-storage.d.mts.map +1 -1
- package/esm/storage/storage-file.d.mts +1 -3
- package/esm/storage/storage-file.d.mts.map +1 -1
- package/esm/storage/storage.d.mts +3 -4
- package/esm/storage/storage.d.mts.map +1 -1
- package/esm/storage/types.d.mts +36 -36
- package/esm/storage/types.d.mts.map +1 -1
- package/esm/storage/utils/classify-ip-address.d.mts +1 -2
- package/esm/storage/utils/classify-ip-address.d.mts.map +1 -1
- package/esm/storage/utils/contain-path.d.mts +1 -2
- package/esm/storage/utils/contain-path.d.mts.map +1 -1
- package/esm/storage/utils/mime.d.mts +2 -3
- package/esm/storage/utils/mime.d.mts.map +1 -1
- package/esm/storage/utils/safe-fetch.d.mts +6 -6
- package/esm/storage/utils/safe-fetch.d.mts.map +1 -1
- package/esm/storage/utils/safe-fetch.mjs +3 -3
- package/esm/storage/utils/safe-fetch.mjs.map +1 -1
- package/esm/storage/utils/storage-capability-error.d.mts +1 -3
- package/esm/storage/utils/storage-capability-error.d.mts.map +1 -1
- package/esm/storage/utils/storage-error.d.mts +2 -3
- package/esm/storage/utils/storage-error.d.mts.map +1 -1
- package/esm/storage/utils/storage-not-initialized-error.d.mts +1 -2
- package/esm/storage/utils/storage-not-initialized-error.d.mts.map +1 -1
- package/esm/tests/authenticated-test-client.d.mts +5 -6
- package/esm/tests/authenticated-test-client.d.mts.map +1 -1
- package/esm/tests/factories.d.mts +38 -23
- package/esm/tests/factories.d.mts.map +1 -1
- package/esm/tests/fakes/cache-fake.d.mts +14 -9
- package/esm/tests/fakes/cache-fake.d.mts.map +1 -1
- package/esm/tests/fakes/clock-fake.d.mts +13 -8
- package/esm/tests/fakes/clock-fake.d.mts.map +1 -1
- package/esm/tests/fakes/fake-assertion-error.d.mts +2 -3
- package/esm/tests/fakes/fake-assertion-error.d.mts.map +1 -1
- package/esm/tests/fakes/ids-fake.d.mts +5 -4
- package/esm/tests/fakes/ids-fake.d.mts.map +1 -1
- package/esm/tests/fakes/index.d.mts +2 -1
- package/esm/tests/fakes/index.mjs +1 -1
- package/esm/tests/fakes/mail-fake.d.mts +21 -13
- package/esm/tests/fakes/mail-fake.d.mts.map +1 -1
- package/esm/tests/fakes/queue-fake.d.mts +21 -13
- package/esm/tests/fakes/queue-fake.d.mts.map +1 -1
- package/esm/tests/fakes/storage-fake.d.mts +12 -8
- package/esm/tests/fakes/storage-fake.d.mts.map +1 -1
- package/esm/tests/fakes/storage-fake.mjs +1 -1
- package/esm/tests/fakes/test-fakes.d.mts +8 -9
- package/esm/tests/fakes/test-fakes.d.mts.map +1 -1
- package/esm/tests/fakes/test-fakes.mjs +1 -1
- package/esm/tests/fakes/test-fakes.mjs.map +1 -1
- package/esm/tests/index.d.mts +1 -0
- package/esm/tests/snapshot-response.d.mts +4 -5
- package/esm/tests/snapshot-response.d.mts.map +1 -1
- package/esm/tests/start-http-development-server.d.mts +4 -6
- package/esm/tests/start-http-development-server.d.mts.map +1 -1
- package/esm/tests/start-http-development-server.mjs +5 -5
- package/esm/tests/start-http-development-server.mjs.map +1 -1
- package/esm/tests/test-connectors-selection.d.mts +2 -2
- package/esm/tests/test-connectors-selection.d.mts.map +1 -1
- package/esm/tests/test-connectors-selection.mjs +1 -1
- package/esm/tests/test-helpers.d.mts +11 -12
- package/esm/tests/test-helpers.d.mts.map +1 -1
- package/esm/tests/test-http-server.d.mts +14 -10
- package/esm/tests/test-http-server.d.mts.map +1 -1
- package/esm/tests/test-lifecycle-state.mjs +1 -1
- package/esm/tests/vitest-setup.d.mts +6 -7
- package/esm/tests/vitest-setup.d.mts.map +1 -1
- package/esm/tooling/agents-md/agents-md-markers.d.mts +4 -5
- package/esm/tooling/agents-md/agents-md-markers.d.mts.map +1 -1
- package/esm/tooling/agents-md/agents-md-markers.mjs +2 -1
- package/esm/tooling/agents-md/agents-md-markers.mjs.map +1 -1
- package/esm/tooling/agents-md/agents-md-refresher.d.mts +19 -12
- package/esm/tooling/agents-md/agents-md-refresher.d.mts.map +1 -1
- package/esm/tooling/agents-md/installed-skills.d.mts +13 -9
- package/esm/tooling/agents-md/installed-skills.d.mts.map +1 -1
- package/esm/tooling/agents-md/render-agents-md.d.mts +8 -7
- package/esm/tooling/agents-md/render-agents-md.d.mts.map +1 -1
- package/esm/tooling/agents-md/render-agents-md.mjs +2 -2
- package/esm/tooling/agents-md/render-agents-md.mjs.map +1 -1
- package/esm/tooling/agents-md/write-agents-md.d.mts +17 -12
- package/esm/tooling/agents-md/write-agents-md.d.mts.map +1 -1
- package/esm/tooling/board/board-message.d.mts +4 -6
- package/esm/tooling/board/board-message.d.mts.map +1 -1
- package/esm/tooling/board/board.d.mts +50 -38
- package/esm/tooling/board/board.d.mts.map +1 -1
- package/esm/tooling/board/board.mjs +4 -3
- package/esm/tooling/board/board.mjs.map +1 -1
- package/esm/tooling/board/board.types.d.mts +32 -23
- package/esm/tooling/board/board.types.d.mts.map +1 -1
- package/esm/tooling/check/changed-files.d.mts +4 -6
- package/esm/tooling/check/changed-files.d.mts.map +1 -1
- package/esm/tooling/check/changed-files.mjs +2 -2
- package/esm/tooling/check/changed-files.mjs.map +1 -1
- package/esm/tooling/check/check-report.types.d.mts +22 -17
- package/esm/tooling/check/check-report.types.d.mts.map +1 -1
- package/esm/tooling/check/code-style-conventions.mjs +25 -25
- package/esm/tooling/check/code-style-conventions.mjs.map +1 -1
- package/esm/tooling/check/conventions-step.d.mts +4 -6
- package/esm/tooling/check/conventions-step.d.mts.map +1 -1
- package/esm/tooling/check/conventions-step.mjs +7 -18
- package/esm/tooling/check/conventions-step.mjs.map +1 -1
- package/esm/tooling/check/environment-step.d.mts +2 -4
- package/esm/tooling/check/environment-step.d.mts.map +1 -1
- package/esm/tooling/check/environment-step.mjs +1 -1
- package/esm/tooling/check/index.mjs +1 -1
- package/esm/tooling/check/lint-step.d.mts +4 -5
- package/esm/tooling/check/lint-step.d.mts.map +1 -1
- package/esm/tooling/check/lint-step.mjs +2 -1
- package/esm/tooling/check/lint-step.mjs.map +1 -1
- package/esm/tooling/check/request-input.mjs +15 -15
- package/esm/tooling/check/request-input.mjs.map +1 -1
- package/esm/tooling/check/run-check.d.mts +22 -14
- package/esm/tooling/check/run-check.d.mts.map +1 -1
- package/esm/tooling/check/run-tests.d.mts +22 -15
- package/esm/tooling/check/run-tests.d.mts.map +1 -1
- package/esm/tooling/check/security-conventions.mjs +133 -131
- package/esm/tooling/check/security-conventions.mjs.map +1 -1
- package/esm/tooling/check/source-ast.mjs +92 -132
- package/esm/tooling/check/source-ast.mjs.map +1 -1
- package/esm/tooling/check/tests-step.d.mts +7 -8
- package/esm/tooling/check/tests-step.d.mts.map +1 -1
- package/esm/tooling/check/tests-step.mjs +3 -3
- package/esm/tooling/check/tests-step.mjs.map +1 -1
- package/esm/tooling/dev-state/dev-server-state.d.mts +17 -13
- package/esm/tooling/dev-state/dev-server-state.d.mts.map +1 -1
- package/esm/tooling/devtools/devtools-client.d.mts +29 -20
- package/esm/tooling/devtools/devtools-client.d.mts.map +1 -1
- package/esm/tooling/generate/generation.d.mts +34 -22
- package/esm/tooling/generate/generation.d.mts.map +1 -1
- package/esm/tooling/generate/generation.mjs +9 -5
- package/esm/tooling/generate/generation.mjs.map +1 -1
- package/esm/tooling/generate/generator-spec.d.mts +9 -9
- package/esm/tooling/generate/generator-spec.d.mts.map +1 -1
- package/esm/tooling/generate/index.mjs +1 -1
- package/esm/tooling/generate/project-files.mjs +3 -3
- package/esm/tooling/generate/project-files.mjs.map +1 -1
- package/esm/tooling/generate/run-cli.d.mts +14 -11
- package/esm/tooling/generate/run-cli.d.mts.map +1 -1
- package/esm/tooling/generate/run-cli.mjs +2 -2
- package/esm/tooling/generate/run-cli.mjs.map +1 -1
- package/esm/tooling/generate/unified-diff.d.mts +10 -7
- package/esm/tooling/generate/unified-diff.d.mts.map +1 -1
- package/esm/tooling/index.d.mts +1 -0
- package/esm/tooling/inspect/boot-for-inspect.d.mts +7 -7
- package/esm/tooling/inspect/boot-for-inspect.d.mts.map +1 -1
- package/esm/tooling/inspect/collect-config.mjs +3 -3
- package/esm/tooling/inspect/collect-config.mjs.map +1 -1
- package/esm/tooling/inspect/collect-models.d.mts +4 -3
- package/esm/tooling/inspect/collect-models.d.mts.map +1 -1
- package/esm/tooling/inspect/collect-models.mjs +1 -1
- package/esm/tooling/inspect/collect-packages.d.mts +1 -2
- package/esm/tooling/inspect/collect-packages.d.mts.map +1 -1
- package/esm/tooling/inspect/collect-pages.mjs +10 -10
- package/esm/tooling/inspect/collect-pages.mjs.map +1 -1
- package/esm/tooling/inspect/collect-routes.mjs +1 -1
- package/esm/tooling/inspect/event-recorder.d.mts +7 -7
- package/esm/tooling/inspect/event-recorder.d.mts.map +1 -1
- package/esm/tooling/inspect/index.d.mts +2 -1
- package/esm/tooling/inspect/index.mjs +1 -1
- package/esm/tooling/inspect/inspect-app.d.mts +25 -16
- package/esm/tooling/inspect/inspect-app.d.mts.map +1 -1
- package/esm/tooling/inspect/inspect-report.schema.d.mts +1 -2
- package/esm/tooling/inspect/inspect-report.schema.d.mts.map +1 -1
- package/esm/tooling/inspect/inspect-report.types.d.mts +86 -54
- package/esm/tooling/inspect/inspect-report.types.d.mts.map +1 -1
- package/esm/tooling/mcp/create-mcp-context.d.mts +11 -8
- package/esm/tooling/mcp/create-mcp-context.d.mts.map +1 -1
- package/esm/tooling/mcp/db-schema.d.mts +10 -9
- package/esm/tooling/mcp/db-schema.d.mts.map +1 -1
- package/esm/tooling/mcp/docs-search.d.mts +20 -15
- package/esm/tooling/mcp/docs-search.d.mts.map +1 -1
- package/esm/tooling/mcp/index.mjs +1 -1
- package/esm/tooling/mcp/load-ai-tools.d.mts +7 -8
- package/esm/tooling/mcp/load-ai-tools.d.mts.map +1 -1
- package/esm/tooling/mcp/load-ai-tools.mjs +2 -1
- package/esm/tooling/mcp/load-ai-tools.mjs.map +1 -1
- package/esm/tooling/mcp/mcp-tools.d.mts +29 -19
- package/esm/tooling/mcp/mcp-tools.d.mts.map +1 -1
- package/esm/tooling/mcp/mcp-tools.mjs +3 -2
- package/esm/tooling/mcp/mcp-tools.mjs.map +1 -1
- package/esm/tooling/mcp/start-mcp-server.d.mts +24 -17
- package/esm/tooling/mcp/start-mcp-server.d.mts.map +1 -1
- package/esm/tooling/mcp/start-mcp-server.mjs +1 -1
- package/esm/tooling/mcp/start-mcp-server.mjs.map +1 -1
- package/esm/tooling/mcp/tool-input.d.mts +7 -7
- package/esm/tooling/mcp/tool-input.d.mts.map +1 -1
- package/esm/tooling/problem.d.mts +27 -17
- package/esm/tooling/problem.d.mts.map +1 -1
- package/esm/tooling/syntax/ast.mjs +230 -0
- package/esm/tooling/syntax/ast.mjs.map +1 -0
- package/esm/tooling/syntax/imports.mjs +34 -0
- package/esm/tooling/syntax/imports.mjs.map +1 -0
- package/esm/tooling/trace/trace-report.types.d.mts +36 -22
- package/esm/tooling/trace/trace-report.types.d.mts.map +1 -1
- package/esm/tooling/trace/trace-request.d.mts +27 -20
- package/esm/tooling/trace/trace-request.d.mts.map +1 -1
- package/esm/tooling/trace/trace-request.mjs +2 -2
- package/esm/tooling/trace/trace-request.mjs.map +1 -1
- package/esm/tooling/typecheck/index.mjs +1 -1
- package/esm/tooling/typecheck/run-typecheck.d.mts +15 -48
- package/esm/tooling/typecheck/run-typecheck.d.mts.map +1 -1
- package/esm/tooling/typecheck/run-typecheck.mjs +42 -105
- package/esm/tooling/typecheck/run-typecheck.mjs.map +1 -1
- package/esm/tooling/typescript/compiler.d.mts +31 -0
- package/esm/tooling/typescript/compiler.d.mts.map +1 -0
- package/esm/tooling/typescript/compiler.mjs +120 -0
- package/esm/tooling/typescript/compiler.mjs.map +1 -0
- package/esm/updater/update-warlock-packages.mjs +3 -2
- package/esm/updater/update-warlock-packages.mjs.map +1 -1
- package/esm/upgrade/codemods/index.mjs +1 -1
- package/esm/upgrade/codemods/logger-sync-calls.mjs +1 -1
- package/esm/upgrade/codemods/logger-sync-calls.mjs.map +1 -1
- package/esm/upgrade/codemods/request-log-snapshot.mjs +1 -1
- package/esm/upgrade/codemods/request-log-snapshot.mjs.map +1 -1
- package/esm/upgrade/diff.mjs +1 -1
- package/esm/upgrade/diff.mjs.map +1 -1
- package/esm/upgrade/load-ts-morph.mjs +3 -2
- package/esm/upgrade/load-ts-morph.mjs.map +1 -1
- package/esm/upgrade/run-upgrade.mjs +1 -1
- package/esm/use-cases/index.d.mts +2 -1
- package/esm/use-cases/index.mjs +1 -1
- package/esm/use-cases/types.d.mts +116 -63
- package/esm/use-cases/types.d.mts.map +1 -1
- package/esm/use-cases/use-case-broadcast.d.mts +1 -3
- package/esm/use-cases/use-case-broadcast.d.mts.map +1 -1
- package/esm/use-cases/use-case-events.d.mts +3 -5
- package/esm/use-cases/use-case-events.d.mts.map +1 -1
- package/esm/use-cases/use-case-pipeline.d.mts +6 -6
- package/esm/use-cases/use-case-pipeline.d.mts.map +1 -1
- package/esm/use-cases/use-case.d.mts +2 -4
- package/esm/use-cases/use-case.d.mts.map +1 -1
- package/esm/use-cases/use-case.errors.d.mts +1 -3
- package/esm/use-cases/use-case.errors.d.mts.map +1 -1
- package/esm/use-cases/use-cases-registry.d.mts +8 -10
- package/esm/use-cases/use-cases-registry.d.mts.map +1 -1
- package/esm/utils/app-log.d.mts +1 -2
- package/esm/utils/app-log.d.mts.map +1 -1
- package/esm/utils/clock.d.mts +8 -6
- package/esm/utils/clock.d.mts.map +1 -1
- package/esm/utils/database-log.d.mts +3 -4
- package/esm/utils/database-log.d.mts.map +1 -1
- package/esm/utils/environment.d.mts +4 -5
- package/esm/utils/environment.d.mts.map +1 -1
- package/esm/utils/framework-vesion.mjs.map +1 -1
- package/esm/utils/get-localized.d.mts +2 -3
- package/esm/utils/get-localized.d.mts.map +1 -1
- package/esm/utils/ids.d.mts +9 -6
- package/esm/utils/ids.d.mts.map +1 -1
- package/esm/utils/index.d.mts +2 -1
- package/esm/utils/index.mjs +1 -1
- package/esm/utils/normalized-path.d.mts +1 -2
- package/esm/utils/normalized-path.d.mts.map +1 -1
- package/esm/utils/npm-registry.d.mts +1 -2
- package/esm/utils/npm-registry.d.mts.map +1 -1
- package/esm/utils/paths.d.mts +13 -14
- package/esm/utils/paths.d.mts.map +1 -1
- package/esm/utils/paths.mjs +2 -2
- package/esm/utils/paths.mjs.map +1 -1
- package/esm/utils/promise-all-object.d.mts +1 -2
- package/esm/utils/promise-all-object.d.mts.map +1 -1
- package/esm/utils/queue.d.mts +1 -2
- package/esm/utils/queue.d.mts.map +1 -1
- package/esm/utils/runtime.d.mts +11 -10
- package/esm/utils/runtime.d.mts.map +1 -1
- package/esm/utils/sleep.d.mts +1 -2
- package/esm/utils/sleep.d.mts.map +1 -1
- package/esm/utils/sluggable.d.mts +1 -3
- package/esm/utils/sluggable.d.mts.map +1 -1
- package/esm/utils/to-json.d.mts +1 -2
- package/esm/utils/to-json.d.mts.map +1 -1
- package/esm/utils/types.d.mts +1 -2
- package/esm/utils/types.d.mts.map +1 -1
- package/esm/utils/urls.d.mts +5 -6
- package/esm/utils/urls.d.mts.map +1 -1
- package/esm/utils/version-compare.d.mts +1 -2
- package/esm/utils/version-compare.d.mts.map +1 -1
- package/esm/validation/database/exists-except-current-id.d.mts +2 -3
- package/esm/validation/database/exists-except-current-id.d.mts.map +1 -1
- package/esm/validation/database/exists-except-current-user.d.mts +2 -3
- package/esm/validation/database/exists-except-current-user.d.mts.map +1 -1
- package/esm/validation/database/index.d.mts +2 -1
- package/esm/validation/database/index.mjs +1 -1
- package/esm/validation/database/types.d.mts +14 -10
- package/esm/validation/database/types.d.mts.map +1 -1
- package/esm/validation/database/unique-except-current-id.d.mts +2 -3
- package/esm/validation/database/unique-except-current-id.d.mts.map +1 -1
- package/esm/validation/database/unique-except-current-user.d.mts +2 -3
- package/esm/validation/database/unique-except-current-user.d.mts.map +1 -1
- package/esm/validation/file/file.d.mts +4 -6
- package/esm/validation/file/file.d.mts.map +1 -1
- package/esm/validation/file/index.d.mts +2 -1
- package/esm/validation/file/index.mjs +1 -1
- package/esm/validation/index.d.mts +5 -1
- package/esm/validation/index.mjs +1 -1
- package/esm/validation/plugins/index.mjs +1 -1
- package/esm/validation/types.d.mts +6 -4
- package/esm/validation/types.d.mts.map +1 -1
- package/esm/validation/validateAll.mjs +2 -2
- package/esm/validation/validateAll.mjs.map +1 -1
- package/esm/validation/validation-failure-status.mjs +2 -2
- package/esm/validation/validation-failure-status.mjs.map +1 -1
- package/esm/validation/validators/file-validator.d.mts +2 -4
- package/esm/validation/validators/file-validator.d.mts.map +1 -1
- package/esm/validation/validators/index.d.mts +2 -1
- package/esm/validation/validators/index.mjs +1 -1
- package/esm/vite/lower-stage3-decorators.d.mts +2 -3
- package/esm/vite/lower-stage3-decorators.d.mts.map +1 -1
- package/esm/warlock-config/define-config.d.mts +1 -3
- package/esm/warlock-config/define-config.d.mts.map +1 -1
- package/esm/warlock-config/define-config.mjs +3 -2
- package/esm/warlock-config/define-config.mjs.map +1 -1
- package/esm/warlock-config/index.d.mts +2 -1
- package/esm/warlock-config/index.mjs +1 -1
- package/esm/warlock-config/types.d.mts +6 -5
- package/esm/warlock-config/types.d.mts.map +1 -1
- package/esm/warlock-config/warlock-config.manager.d.mts +5 -7
- package/esm/warlock-config/warlock-config.manager.d.mts.map +1 -1
- package/esm/warlock-config/warlock-config.manager.mjs +2 -1
- package/esm/warlock-config/warlock-config.manager.mjs.map +1 -1
- package/esm/warlock-config/warn-deprecated-config.mjs +1 -1
- package/llms-full.txt +55 -5
- package/package.json +17 -15
- package/skills/create-module/SKILL.md +7 -0
- package/skills/index.md +2 -0
- package/skills/report-framework-issue.md +154 -0
- package/skills/run-app/SKILL.md +6 -5
- package/skills/upgrade-from-5-29/SKILL.md +41 -0
- package/skills/warlock-check/SKILL.md +1 -0
- package/esm/tooling/check/index.d.mts +0 -8
- package/esm/tooling/typecheck/index.d.mts +0 -1
|
@@ -1,14 +1,19 @@
|
|
|
1
1
|
//#region ../../packages/core/src/tooling/agents-md/installed-skills.d.ts
|
|
2
2
|
/** One `SKILL.md` an installed `@warlock.js/*` package ships. */
|
|
3
|
-
type InstalledSkill = {
|
|
4
|
-
/** The package, e.g. `@warlock.js/core`. */
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
3
|
+
export type InstalledSkill = {
|
|
4
|
+
/** The package, e.g. `@warlock.js/core`. */
|
|
5
|
+
package: string;
|
|
6
|
+
/** The skill folder name, e.g. `warlock-inspect`. */
|
|
7
|
+
slug: string;
|
|
8
|
+
/** The `name` from the front matter (the slug when absent). */
|
|
9
|
+
name: string;
|
|
10
|
+
/** The full `description` from the front matter (empty when absent). */
|
|
11
|
+
description: string;
|
|
12
|
+
/** Project-relative POSIX path of the `SKILL.md`. */
|
|
8
13
|
file: string;
|
|
9
14
|
};
|
|
10
15
|
/** The `name` and `description` of a `SKILL.md`'s front matter. */
|
|
11
|
-
declare function parseSkillFrontMatter(content: string): {
|
|
16
|
+
export declare function parseSkillFrontMatter(content: string): {
|
|
12
17
|
name?: string;
|
|
13
18
|
description?: string;
|
|
14
19
|
};
|
|
@@ -16,7 +21,7 @@ declare function parseSkillFrontMatter(content: string): {
|
|
|
16
21
|
* The first sentence of a skill description, capped at `max` characters —
|
|
17
22
|
* the one line an agent reads to decide whether to open the skill.
|
|
18
23
|
*/
|
|
19
|
-
declare function shortSkillLine(description: string, max?: number): string;
|
|
24
|
+
export declare function shortSkillLine(description: string, max?: number): string;
|
|
20
25
|
/**
|
|
21
26
|
* Every skill the installed `@warlock.js/*` packages ship, read from
|
|
22
27
|
* `<cwd>/node_modules/@warlock.js/<package>/skills/<slug>/SKILL.md`.
|
|
@@ -24,7 +29,6 @@ declare function shortSkillLine(description: string, max?: number): string;
|
|
|
24
29
|
*
|
|
25
30
|
* @param cwd The project root.
|
|
26
31
|
*/
|
|
27
|
-
declare function listInstalledSkills(cwd: string): InstalledSkill[];
|
|
32
|
+
export declare function listInstalledSkills(cwd: string): InstalledSkill[];
|
|
28
33
|
//#endregion
|
|
29
|
-
export { InstalledSkill, listInstalledSkills, parseSkillFrontMatter, shortSkillLine };
|
|
30
34
|
//# sourceMappingURL=installed-skills.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"installed-skills.d.mts","names":[],"sources":["../../../../../../../../../packages/core/src/tooling/agents-md/installed-skills.ts"],"mappings":";;
|
|
1
|
+
{"version":3,"file":"installed-skills.d.mts","names":[],"sources":["../../../../../../../../../packages/core/src/tooling/agents-md/installed-skills.ts"],"mappings":";;YAIY;;EAEV;;EAEA;;EAEA;;EAEA;;EAEA;;;wBAiCc,sBAAsB;EAAoB;EAAe;;;;;;wBAezD,eAAe,qBAAqB;;;;;;;;wBAcpC,oBAAoB,cAAc"}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import { InspectReport } from "../inspect/inspect-report.types.mjs";
|
|
2
2
|
import { InstalledSkill } from "./installed-skills.mjs";
|
|
3
|
-
|
|
4
3
|
//#region ../../packages/core/src/tooling/agents-md/render-agents-md.d.ts
|
|
5
4
|
/** Options of {@link renderAgentsMdSection}. */
|
|
6
|
-
type RenderAgentsMdOptions = {
|
|
7
|
-
/** Installed skills to list (see `listInstalledSkills`). Default: none listed. */
|
|
8
|
-
|
|
5
|
+
export type RenderAgentsMdOptions = {
|
|
6
|
+
/** Installed skills to list (see `listInstalledSkills`). Default: none listed. */
|
|
7
|
+
skills?: readonly InstalledSkill[];
|
|
8
|
+
/** Module folder names under `src/app` (see `listAppModules`); merged with the ones routes and models name. */
|
|
9
|
+
modules?: readonly string[];
|
|
10
|
+
/** How many routes the compact list shows before pointing at `warlock inspect`. Default: 60. */
|
|
9
11
|
maxRoutes?: number;
|
|
10
12
|
};
|
|
11
13
|
/**
|
|
@@ -13,7 +15,7 @@ type RenderAgentsMdOptions = {
|
|
|
13
15
|
*
|
|
14
16
|
* @param cwd The project root.
|
|
15
17
|
*/
|
|
16
|
-
declare function listAppModules(cwd: string): string[];
|
|
18
|
+
export declare function listAppModules(cwd: string): string[];
|
|
17
19
|
/**
|
|
18
20
|
* Render the app-specific AGENTS.md section from an inspect report: the app
|
|
19
21
|
* and its Warlock packages, modules, a routes summary (unguarded writes
|
|
@@ -27,7 +29,6 @@ declare function listAppModules(cwd: string): string[];
|
|
|
27
29
|
* @param report An `inspectApp()` report (routes, models and packages are read when present).
|
|
28
30
|
* @param options Skills and module folders to include.
|
|
29
31
|
*/
|
|
30
|
-
declare function renderAgentsMdSection(report: InspectReport, options?: RenderAgentsMdOptions): string;
|
|
32
|
+
export declare function renderAgentsMdSection(report: InspectReport, options?: RenderAgentsMdOptions): string;
|
|
31
33
|
//#endregion
|
|
32
|
-
export { RenderAgentsMdOptions, listAppModules, renderAgentsMdSection };
|
|
33
34
|
//# sourceMappingURL=render-agents-md.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render-agents-md.d.mts","names":[],"sources":["../../../../../../../../../packages/core/src/tooling/agents-md/render-agents-md.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"render-agents-md.d.mts","names":[],"sources":["../../../../../../../../../packages/core/src/tooling/agents-md/render-agents-md.ts"],"mappings":";;;;YAMY;;EAEV,kBAAkB;;EAElB;;EAEA;;;;;;;wBAcc,eAAe;;;;;;;;;;;;;;wBAqOf,sBACd,QAAQ,eACR,UAAS"}
|
|
@@ -4,7 +4,7 @@ import { readdirSync } from "node:fs";
|
|
|
4
4
|
|
|
5
5
|
//#region ../../packages/core/src/tooling/agents-md/render-agents-md.ts
|
|
6
6
|
/** Methods that change state; one of these without an auth guard is flagged. */
|
|
7
|
-
const MUTATING_METHODS = new Set([
|
|
7
|
+
const MUTATING_METHODS = /* @__PURE__ */ new Set([
|
|
8
8
|
"POST",
|
|
9
9
|
"PUT",
|
|
10
10
|
"PATCH",
|
|
@@ -67,7 +67,7 @@ function modulesSection(report, extra) {
|
|
|
67
67
|
const module = moduleOf(model.sourceFile);
|
|
68
68
|
if (module) modelCounts.set(module, (modelCounts.get(module) ?? 0) + 1);
|
|
69
69
|
}
|
|
70
|
-
const modules = [
|
|
70
|
+
const modules = [.../* @__PURE__ */ new Set([
|
|
71
71
|
...extra,
|
|
72
72
|
...routeCounts.keys(),
|
|
73
73
|
...modelCounts.keys()
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render-agents-md.mjs","names":[],"sources":["../../../../../../../../../packages/core/src/tooling/agents-md/render-agents-md.ts"],"sourcesContent":["import { readdirSync } from \"node:fs\";\nimport path from \"node:path\";\nimport type { InspectReport, InspectRoute } from \"../inspect/inspect-report.types\";\nimport { type InstalledSkill, shortSkillLine } from \"./installed-skills\";\n\n/** Options of {@link renderAgentsMdSection}. */\nexport type RenderAgentsMdOptions = {\n /** Installed skills to list (see `listInstalledSkills`). Default: none listed. */\n skills?: readonly InstalledSkill[];\n /** Module folder names under `src/app` (see `listAppModules`); merged with the ones routes and models name. */\n modules?: readonly string[];\n /** How many routes the compact list shows before pointing at `warlock inspect`. Default: 60. */\n maxRoutes?: number;\n};\n\n/** Methods that change state; one of these without an auth guard is flagged. */\nconst MUTATING_METHODS = new Set([\"POST\", \"PUT\", \"PATCH\", \"DELETE\"]);\n\n/** Fixed method order for the per-method counts. */\nconst METHOD_ORDER = [\"GET\", \"POST\", \"PUT\", \"PATCH\", \"DELETE\", \"HEAD\", \"OPTIONS\"];\n\n/**\n * The module folders under `<cwd>/src/app`, sorted. Empty when there is none.\n *\n * @param cwd The project root.\n */\nexport function listAppModules(cwd: string): string[] {\n try {\n return readdirSync(path.join(cwd, \"src\", \"app\"), { withFileTypes: true })\n .filter((entry) => entry.isDirectory())\n .map((entry) => entry.name)\n .sort();\n } catch {\n return [];\n }\n}\n\n/** The module a project-relative source path belongs to (`src/app/<module>/…`). */\nfunction moduleOf(file: string | null): string | undefined {\n return file ? /^src\\/app\\/([^/]+)\\//.exec(file.split(\"\\\\\").join(\"/\"))?.[1] : undefined;\n}\n\nfunction compare(first: string, second: string): number {\n return first < second ? -1 : first > second ? 1 : 0;\n}\n\nfunction isUnguardedWrite(route: InspectRoute): boolean {\n return MUTATING_METHODS.has(route.method.toUpperCase()) && !route.auth.required && !route.isPage;\n}\n\nfunction routeLine(route: InspectRoute): string {\n const guard = route.auth.required ? \" [auth]\" : \"\";\n const name = route.name ? ` ${route.name}` : \"\";\n\n return `- \\`${route.method} ${route.path}\\`${guard}${name}`;\n}\n\nfunction sortRoutes(routes: readonly InspectRoute[]): InspectRoute[] {\n return [...routes].sort(\n (first, second) =>\n compare(first.path, second.path) ||\n METHOD_ORDER.indexOf(first.method) - METHOD_ORDER.indexOf(second.method) ||\n compare(first.method, second.method),\n );\n}\n\nfunction appSection(report: InspectReport): string[] {\n const name = report.app.name ?? \"This app\";\n const version = report.app.version ? ` ${report.app.version}` : \"\";\n const lines = [`## ${name}${version} — generated facts`, \"\"];\n const packages = [...(report.packages ?? [])].sort((first, second) =>\n compare(first.name, second.name),\n );\n\n if (packages.length > 0) {\n lines.push(\n `Warlock packages: ${packages.map((entry) => `\\`${entry.name}@${entry.version}\\``).join(\", \")}.`,\n \"\",\n );\n }\n\n return lines;\n}\n\nfunction modulesSection(report: InspectReport, extra: readonly string[]): string[] {\n const routeCounts = new Map<string, number>();\n const modelCounts = new Map<string, number>();\n\n for (const route of report.routes ?? []) {\n const module = moduleOf(route.sourceFile);\n if (module) routeCounts.set(module, (routeCounts.get(module) ?? 0) + 1);\n }\n\n for (const model of report.models ?? []) {\n const module = moduleOf(model.sourceFile);\n if (module) modelCounts.set(module, (modelCounts.get(module) ?? 0) + 1);\n }\n\n const modules = [...new Set([...extra, ...routeCounts.keys(), ...modelCounts.keys()])].sort();\n\n if (modules.length === 0) return [];\n\n return [\n \"### Modules\",\n \"\",\n \"Each lives in `src/app/<module>/`.\",\n \"\",\n \"| Module | Routes | Models |\",\n \"| ------ | ------ | ------ |\",\n ...modules.map(\n (module) =>\n `| \\`${module}\\` | ${routeCounts.get(module) ?? 0} | ${modelCounts.get(module) ?? 0} |`,\n ),\n \"\",\n ];\n}\n\nfunction routesSection(report: InspectReport, maxRoutes: number): string[] {\n const routes = sortRoutes(report.routes ?? []);\n\n if (routes.length === 0) return [];\n\n const counts = new Map<string, number>();\n\n for (const route of routes) {\n counts.set(route.method, (counts.get(route.method) ?? 0) + 1);\n }\n\n const methods = [...counts.keys()].sort(\n (first, second) =>\n (METHOD_ORDER.indexOf(first) + 1 || 99) - (METHOD_ORDER.indexOf(second) + 1 || 99) ||\n compare(first, second),\n );\n const unguarded = routes.filter(isUnguardedWrite);\n const lines = [\n \"### Routes\",\n \"\",\n `${routes.length} route(s): ${methods.map((method) => `${counts.get(method) ?? 0} ${method}`).join(\", \")}.`,\n \"\",\n ];\n\n if (unguarded.length > 0) {\n lines.push(\n `Mutating routes without an auth guard (confirm each is meant to be public): ${unguarded\n .map((route) => `\\`${route.method} ${route.path}\\``)\n .join(\", \")}.`,\n \"\",\n );\n }\n\n lines.push(...routes.slice(0, maxRoutes).map(routeLine));\n\n if (routes.length > maxRoutes) {\n lines.push(\n `- +${routes.length - maxRoutes} more — run \\`npx warlock inspect --json --section routes\\``,\n );\n }\n\n lines.push(\"\");\n\n return lines;\n}\n\nfunction modelsSection(report: InspectReport): string[] {\n const models = [...(report.models ?? [])].sort((first, second) =>\n compare(first.name, second.name),\n );\n\n if (models.length === 0) return [];\n\n return [\n \"### Models\",\n \"\",\n ...models.map((model) => {\n const module = moduleOf(model.sourceFile);\n const table = model.table ? ` → \\`${model.table}\\`` : \"\";\n\n return `- \\`${model.name}\\`${table}${module ? ` (module \\`${module}\\`)` : \"\"}`;\n }),\n \"\",\n ];\n}\n\n/** The rules `warlock check` enforces (WL9001–WL9012) and the layout every skill assumes. */\nconst CONVENTIONS = [\n \"- Features live in `src/app/<module>/`; flow is one-way: `routes.ts` → controllers → services → repositories → models. Resources only map output.\",\n \"- Never import auto-loaded files: `src/app/main.ts`, `src/app/<module>/routes.ts`, `main.ts`, `worker.ts`, `events/*.ts` (`WL9001`).\",\n \"- No `.js` extensions in import paths (`WL9002`).\",\n \"- Cross-module imports use the `app/<module>/...` alias, not `../../` (`WL9003`); relative paths stay inside a module.\",\n '- Cascade uses standard decorators: never set `\"experimentalDecorators\": true` (`WL9004`).',\n \"- Controllers are thin and read input with `request.validated()`, never `request.all()` (`WL9005`); schemas live in `schema/<action>.schema.ts` and export the value and its `Infer` type. One controller per file (`WL9011`).\",\n \"- Every POST/PUT/PATCH/DELETE route is inside `guarded()` (or has auth middleware) or says `public: true` (`WL9006`).\",\n \"- Redirect targets from request input go through `safeRedirect()` / `safeRedirectTarget()` (`WL9007`); logs never carry raw emails, credentials or request bodies (`WL9008`); regexes run on request input have bounded quantifiers (`WL9009`).\",\n \"- Import each API from its home package: `v` from `@warlock.js/seal`, `Model` from `@warlock.js/cascade`, `router` from `@warlock.js/core`.\",\n];\n\nfunction skillsSection(skills: readonly InstalledSkill[]): string[] {\n if (skills.length === 0) return [];\n\n const byPackage = new Map<string, InstalledSkill[]>();\n\n for (const skill of skills) {\n byPackage.set(skill.package, [...(byPackage.get(skill.package) ?? []), skill]);\n }\n\n const lines = [\n \"### Skills\",\n \"\",\n \"Installed with the packages, at `node_modules/<package>/skills/<slug>/SKILL.md`. Read the matching one before changing that area.\",\n \"\",\n ];\n\n for (const packageName of [...byPackage.keys()].sort()) {\n lines.push(`**${packageName}**`, \"\");\n\n const entries = [...(byPackage.get(packageName) ?? [])].sort((first, second) =>\n compare(first.slug, second.slug),\n );\n\n for (const skill of entries) {\n const line = shortSkillLine(skill.description);\n\n lines.push(`- \\`${skill.slug}\\`${line ? ` — ${line}` : \"\"}`);\n }\n\n lines.push(\"\");\n }\n\n return lines;\n}\n\nconst VERIFY = [\n \"### Verify a change\",\n \"\",\n \"- `npx warlock check --changed --json` — typecheck, lint, affected tests and conventions; exit 1 = your code, 2 = this machine.\",\n \"- `npx warlock inspect --json` — routes, models, config keys, events, pages, jobs from the booted app.\",\n \"- `npx warlock explain <code>` — what a `WLxxxx` code means and how to fix it.\",\n \"- `npx warlock trace <method> <url> --json` — send a request to the running `warlock dev` and print its devtools timeline.\",\n \"- `npx warlock mcp` — the same facts and actions as an MCP server.\",\n \"\",\n];\n\n/**\n * Render the app-specific AGENTS.md section from an inspect report: the app\n * and its Warlock packages, modules, a routes summary (unguarded writes\n * flagged), models, the conventions `warlock check` enforces, the installed\n * skills and the verify commands.\n *\n * Deterministic: no timestamps and stable ordering, so regenerating an\n * unchanged app yields the same bytes and `writeAgentsMd` writes nothing.\n * Returned without the markers.\n *\n * @param report An `inspectApp()` report (routes, models and packages are read when present).\n * @param options Skills and module folders to include.\n */\nexport function renderAgentsMdSection(\n report: InspectReport,\n options: RenderAgentsMdOptions = {},\n): string {\n const lines = [\n \"<!-- Generated by `warlock agents-md` and refreshed by `warlock dev`. Write your own notes outside the warlock:generated markers; everything between them is replaced. -->\",\n \"\",\n ...appSection(report),\n ...modulesSection(report, options.modules ?? []),\n ...routesSection(report, options.maxRoutes ?? 60),\n ...modelsSection(report),\n \"### Conventions in force\",\n \"\",\n ...CONVENTIONS,\n \"\",\n ...skillsSection(options.skills ?? []),\n ...VERIFY,\n ];\n\n return `${lines.join(\"\\n\").replace(/\\n+$/, \"\")}\\n`;\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"render-agents-md.mjs","names":[],"sources":["../../../../../../../../../packages/core/src/tooling/agents-md/render-agents-md.ts"],"sourcesContent":["import { readdirSync } from \"node:fs\";\nimport path from \"node:path\";\nimport type { InspectReport, InspectRoute } from \"../inspect/inspect-report.types\";\nimport { type InstalledSkill, shortSkillLine } from \"./installed-skills\";\n\n/** Options of {@link renderAgentsMdSection}. */\nexport type RenderAgentsMdOptions = {\n /** Installed skills to list (see `listInstalledSkills`). Default: none listed. */\n skills?: readonly InstalledSkill[];\n /** Module folder names under `src/app` (see `listAppModules`); merged with the ones routes and models name. */\n modules?: readonly string[];\n /** How many routes the compact list shows before pointing at `warlock inspect`. Default: 60. */\n maxRoutes?: number;\n};\n\n/** Methods that change state; one of these without an auth guard is flagged. */\nconst MUTATING_METHODS = new Set([\"POST\", \"PUT\", \"PATCH\", \"DELETE\"]);\n\n/** Fixed method order for the per-method counts. */\nconst METHOD_ORDER = [\"GET\", \"POST\", \"PUT\", \"PATCH\", \"DELETE\", \"HEAD\", \"OPTIONS\"];\n\n/**\n * The module folders under `<cwd>/src/app`, sorted. Empty when there is none.\n *\n * @param cwd The project root.\n */\nexport function listAppModules(cwd: string): string[] {\n try {\n return readdirSync(path.join(cwd, \"src\", \"app\"), { withFileTypes: true })\n .filter((entry) => entry.isDirectory())\n .map((entry) => entry.name)\n .sort();\n } catch {\n return [];\n }\n}\n\n/** The module a project-relative source path belongs to (`src/app/<module>/…`). */\nfunction moduleOf(file: string | null): string | undefined {\n return file ? /^src\\/app\\/([^/]+)\\//.exec(file.split(\"\\\\\").join(\"/\"))?.[1] : undefined;\n}\n\nfunction compare(first: string, second: string): number {\n return first < second ? -1 : first > second ? 1 : 0;\n}\n\nfunction isUnguardedWrite(route: InspectRoute): boolean {\n return MUTATING_METHODS.has(route.method.toUpperCase()) && !route.auth.required && !route.isPage;\n}\n\nfunction routeLine(route: InspectRoute): string {\n const guard = route.auth.required ? \" [auth]\" : \"\";\n const name = route.name ? ` ${route.name}` : \"\";\n\n return `- \\`${route.method} ${route.path}\\`${guard}${name}`;\n}\n\nfunction sortRoutes(routes: readonly InspectRoute[]): InspectRoute[] {\n return [...routes].sort(\n (first, second) =>\n compare(first.path, second.path) ||\n METHOD_ORDER.indexOf(first.method) - METHOD_ORDER.indexOf(second.method) ||\n compare(first.method, second.method),\n );\n}\n\nfunction appSection(report: InspectReport): string[] {\n const name = report.app.name ?? \"This app\";\n const version = report.app.version ? ` ${report.app.version}` : \"\";\n const lines = [`## ${name}${version} — generated facts`, \"\"];\n const packages = [...(report.packages ?? [])].sort((first, second) =>\n compare(first.name, second.name),\n );\n\n if (packages.length > 0) {\n lines.push(\n `Warlock packages: ${packages.map((entry) => `\\`${entry.name}@${entry.version}\\``).join(\", \")}.`,\n \"\",\n );\n }\n\n return lines;\n}\n\nfunction modulesSection(report: InspectReport, extra: readonly string[]): string[] {\n const routeCounts = new Map<string, number>();\n const modelCounts = new Map<string, number>();\n\n for (const route of report.routes ?? []) {\n const module = moduleOf(route.sourceFile);\n if (module) routeCounts.set(module, (routeCounts.get(module) ?? 0) + 1);\n }\n\n for (const model of report.models ?? []) {\n const module = moduleOf(model.sourceFile);\n if (module) modelCounts.set(module, (modelCounts.get(module) ?? 0) + 1);\n }\n\n const modules = [...new Set([...extra, ...routeCounts.keys(), ...modelCounts.keys()])].sort();\n\n if (modules.length === 0) return [];\n\n return [\n \"### Modules\",\n \"\",\n \"Each lives in `src/app/<module>/`.\",\n \"\",\n \"| Module | Routes | Models |\",\n \"| ------ | ------ | ------ |\",\n ...modules.map(\n (module) =>\n `| \\`${module}\\` | ${routeCounts.get(module) ?? 0} | ${modelCounts.get(module) ?? 0} |`,\n ),\n \"\",\n ];\n}\n\nfunction routesSection(report: InspectReport, maxRoutes: number): string[] {\n const routes = sortRoutes(report.routes ?? []);\n\n if (routes.length === 0) return [];\n\n const counts = new Map<string, number>();\n\n for (const route of routes) {\n counts.set(route.method, (counts.get(route.method) ?? 0) + 1);\n }\n\n const methods = [...counts.keys()].sort(\n (first, second) =>\n (METHOD_ORDER.indexOf(first) + 1 || 99) - (METHOD_ORDER.indexOf(second) + 1 || 99) ||\n compare(first, second),\n );\n const unguarded = routes.filter(isUnguardedWrite);\n const lines = [\n \"### Routes\",\n \"\",\n `${routes.length} route(s): ${methods.map((method) => `${counts.get(method) ?? 0} ${method}`).join(\", \")}.`,\n \"\",\n ];\n\n if (unguarded.length > 0) {\n lines.push(\n `Mutating routes without an auth guard (confirm each is meant to be public): ${unguarded\n .map((route) => `\\`${route.method} ${route.path}\\``)\n .join(\", \")}.`,\n \"\",\n );\n }\n\n lines.push(...routes.slice(0, maxRoutes).map(routeLine));\n\n if (routes.length > maxRoutes) {\n lines.push(\n `- +${routes.length - maxRoutes} more — run \\`npx warlock inspect --json --section routes\\``,\n );\n }\n\n lines.push(\"\");\n\n return lines;\n}\n\nfunction modelsSection(report: InspectReport): string[] {\n const models = [...(report.models ?? [])].sort((first, second) =>\n compare(first.name, second.name),\n );\n\n if (models.length === 0) return [];\n\n return [\n \"### Models\",\n \"\",\n ...models.map((model) => {\n const module = moduleOf(model.sourceFile);\n const table = model.table ? ` → \\`${model.table}\\`` : \"\";\n\n return `- \\`${model.name}\\`${table}${module ? ` (module \\`${module}\\`)` : \"\"}`;\n }),\n \"\",\n ];\n}\n\n/** The rules `warlock check` enforces (WL9001–WL9012) and the layout every skill assumes. */\nconst CONVENTIONS = [\n \"- Features live in `src/app/<module>/`; flow is one-way: `routes.ts` → controllers → services → repositories → models. Resources only map output.\",\n \"- Never import auto-loaded files: `src/app/main.ts`, `src/app/<module>/routes.ts`, `main.ts`, `worker.ts`, `events/*.ts` (`WL9001`).\",\n \"- No `.js` extensions in import paths (`WL9002`).\",\n \"- Cross-module imports use the `app/<module>/...` alias, not `../../` (`WL9003`); relative paths stay inside a module.\",\n '- Cascade uses standard decorators: never set `\"experimentalDecorators\": true` (`WL9004`).',\n \"- Controllers are thin and read input with `request.validated()`, never `request.all()` (`WL9005`); schemas live in `schema/<action>.schema.ts` and export the value and its `Infer` type. One controller per file (`WL9011`).\",\n \"- Every POST/PUT/PATCH/DELETE route is inside `guarded()` (or has auth middleware) or says `public: true` (`WL9006`).\",\n \"- Redirect targets from request input go through `safeRedirect()` / `safeRedirectTarget()` (`WL9007`); logs never carry raw emails, credentials or request bodies (`WL9008`); regexes run on request input have bounded quantifiers (`WL9009`).\",\n \"- Import each API from its home package: `v` from `@warlock.js/seal`, `Model` from `@warlock.js/cascade`, `router` from `@warlock.js/core`.\",\n];\n\nfunction skillsSection(skills: readonly InstalledSkill[]): string[] {\n if (skills.length === 0) return [];\n\n const byPackage = new Map<string, InstalledSkill[]>();\n\n for (const skill of skills) {\n byPackage.set(skill.package, [...(byPackage.get(skill.package) ?? []), skill]);\n }\n\n const lines = [\n \"### Skills\",\n \"\",\n \"Installed with the packages, at `node_modules/<package>/skills/<slug>/SKILL.md`. Read the matching one before changing that area.\",\n \"\",\n ];\n\n for (const packageName of [...byPackage.keys()].sort()) {\n lines.push(`**${packageName}**`, \"\");\n\n const entries = [...(byPackage.get(packageName) ?? [])].sort((first, second) =>\n compare(first.slug, second.slug),\n );\n\n for (const skill of entries) {\n const line = shortSkillLine(skill.description);\n\n lines.push(`- \\`${skill.slug}\\`${line ? ` — ${line}` : \"\"}`);\n }\n\n lines.push(\"\");\n }\n\n return lines;\n}\n\nconst VERIFY = [\n \"### Verify a change\",\n \"\",\n \"- `npx warlock check --changed --json` — typecheck, lint, affected tests and conventions; exit 1 = your code, 2 = this machine.\",\n \"- `npx warlock inspect --json` — routes, models, config keys, events, pages, jobs from the booted app.\",\n \"- `npx warlock explain <code>` — what a `WLxxxx` code means and how to fix it.\",\n \"- `npx warlock trace <method> <url> --json` — send a request to the running `warlock dev` and print its devtools timeline.\",\n \"- `npx warlock mcp` — the same facts and actions as an MCP server.\",\n \"\",\n];\n\n/**\n * Render the app-specific AGENTS.md section from an inspect report: the app\n * and its Warlock packages, modules, a routes summary (unguarded writes\n * flagged), models, the conventions `warlock check` enforces, the installed\n * skills and the verify commands.\n *\n * Deterministic: no timestamps and stable ordering, so regenerating an\n * unchanged app yields the same bytes and `writeAgentsMd` writes nothing.\n * Returned without the markers.\n *\n * @param report An `inspectApp()` report (routes, models and packages are read when present).\n * @param options Skills and module folders to include.\n */\nexport function renderAgentsMdSection(\n report: InspectReport,\n options: RenderAgentsMdOptions = {},\n): string {\n const lines = [\n \"<!-- Generated by `warlock agents-md` and refreshed by `warlock dev`. Write your own notes outside the warlock:generated markers; everything between them is replaced. -->\",\n \"\",\n ...appSection(report),\n ...modulesSection(report, options.modules ?? []),\n ...routesSection(report, options.maxRoutes ?? 60),\n ...modelsSection(report),\n \"### Conventions in force\",\n \"\",\n ...CONVENTIONS,\n \"\",\n ...skillsSection(options.skills ?? []),\n ...VERIFY,\n ];\n\n return `${lines.join(\"\\n\").replace(/\\n+$/, \"\")}\\n`;\n}\n"],"mappings":"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"}
|
|
@@ -1,21 +1,27 @@
|
|
|
1
1
|
import { InspectReport } from "../inspect/inspect-report.types.mjs";
|
|
2
2
|
import { InstalledSkill } from "./installed-skills.mjs";
|
|
3
|
-
|
|
4
3
|
//#region ../../packages/core/src/tooling/agents-md/write-agents-md.d.ts
|
|
5
4
|
/** What {@link writeAgentsMd} did. */
|
|
6
|
-
type AgentsMdWriteStatus = "created" | "updated" | "unchanged" | "skipped";
|
|
5
|
+
export type AgentsMdWriteStatus = "created" | "updated" | "unchanged" | "skipped";
|
|
7
6
|
/** Options of {@link writeAgentsMd}. */
|
|
8
|
-
type WriteAgentsMdOptions = {
|
|
9
|
-
/** Project root. Default: `process.cwd()`. */
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
7
|
+
export type WriteAgentsMdOptions = {
|
|
8
|
+
/** Project root. Default: `process.cwd()`. */
|
|
9
|
+
cwd?: string;
|
|
10
|
+
/** The inspect report to render. */
|
|
11
|
+
report: InspectReport;
|
|
12
|
+
/** Create AGENTS.md when it does not exist. Default: `true`; `false` reports `skipped`. */
|
|
13
|
+
create?: boolean;
|
|
14
|
+
/** Skills to list. Default: `listInstalledSkills(cwd)`. */
|
|
15
|
+
skills?: readonly InstalledSkill[];
|
|
16
|
+
/** Module folders. Default: `listAppModules(cwd)`. */
|
|
13
17
|
modules?: readonly string[];
|
|
14
18
|
};
|
|
15
19
|
/** The result of {@link writeAgentsMd}. */
|
|
16
|
-
type WriteAgentsMdResult = {
|
|
17
|
-
/** Absolute path of AGENTS.md. */
|
|
18
|
-
|
|
20
|
+
export type WriteAgentsMdResult = {
|
|
21
|
+
/** Absolute path of AGENTS.md. */
|
|
22
|
+
file: string;
|
|
23
|
+
status: AgentsMdWriteStatus;
|
|
24
|
+
/** The generated section, without markers. */
|
|
19
25
|
section: string;
|
|
20
26
|
};
|
|
21
27
|
/**
|
|
@@ -27,7 +33,6 @@ type WriteAgentsMdResult = {
|
|
|
27
33
|
* @example
|
|
28
34
|
* const { status } = writeAgentsMd({ report: await inspectApp() });
|
|
29
35
|
*/
|
|
30
|
-
declare function writeAgentsMd(options: WriteAgentsMdOptions): WriteAgentsMdResult;
|
|
36
|
+
export declare function writeAgentsMd(options: WriteAgentsMdOptions): WriteAgentsMdResult;
|
|
31
37
|
//#endregion
|
|
32
|
-
export { AgentsMdWriteStatus, WriteAgentsMdOptions, WriteAgentsMdResult, writeAgentsMd };
|
|
33
38
|
//# sourceMappingURL=write-agents-md.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"write-agents-md.d.mts","names":[],"sources":["../../../../../../../../../packages/core/src/tooling/agents-md/write-agents-md.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"write-agents-md.d.mts","names":[],"sources":["../../../../../../../../../packages/core/src/tooling/agents-md/write-agents-md.ts"],"mappings":";;;;YAQY;;YAGA;;EAEV;;EAEA,QAAQ;;EAER;;EAEA,kBAAkB;;EAElB;;;YAIU;;EAEV;EACA,QAAQ;;EAER;;;;;;;;;;;wBAYc,cAAc,SAAS,uBAAuB"}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { BoardVerdict } from "./board.types.mjs";
|
|
2
|
-
|
|
3
2
|
//#region ../../packages/core/src/tooling/board/board-message.d.ts
|
|
4
3
|
/** The fields a message file's front matter carries. */
|
|
5
|
-
type BoardMessageFields = {
|
|
4
|
+
export type BoardMessageFields = {
|
|
6
5
|
from: string;
|
|
7
6
|
to: string;
|
|
8
7
|
item: number | null;
|
|
@@ -10,7 +9,7 @@ type BoardMessageFields = {
|
|
|
10
9
|
at: string;
|
|
11
10
|
};
|
|
12
11
|
/** A message file's contents, parsed. */
|
|
13
|
-
type ParsedBoardMessage = BoardMessageFields & {
|
|
12
|
+
export type ParsedBoardMessage = BoardMessageFields & {
|
|
14
13
|
body: string;
|
|
15
14
|
verdict: BoardVerdict | null;
|
|
16
15
|
};
|
|
@@ -19,13 +18,12 @@ type ParsedBoardMessage = BoardMessageFields & {
|
|
|
19
18
|
* a blank line, the body, and — for a verdict — a final line that is exactly
|
|
20
19
|
* `VERDICT: APPROVED` or `VERDICT: CHANGES REQUESTED`.
|
|
21
20
|
*/
|
|
22
|
-
declare function formatBoardMessage(fields: BoardMessageFields, body: string, verdict?: BoardVerdict | null): string;
|
|
21
|
+
export declare function formatBoardMessage(fields: BoardMessageFields, body: string, verdict?: BoardVerdict | null): string;
|
|
23
22
|
/**
|
|
24
23
|
* Parse a message file. Tolerates a file without front matter (everything is
|
|
25
24
|
* the body). The verdict is read from the last non-empty line only, so a
|
|
26
25
|
* quoted verdict inside the body does not count.
|
|
27
26
|
*/
|
|
28
|
-
declare function parseBoardMessage(text: string): ParsedBoardMessage;
|
|
27
|
+
export declare function parseBoardMessage(text: string): ParsedBoardMessage;
|
|
29
28
|
//#endregion
|
|
30
|
-
export { BoardMessageFields, ParsedBoardMessage, formatBoardMessage, parseBoardMessage };
|
|
31
29
|
//# sourceMappingURL=board-message.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"board-message.d.mts","names":[],"sources":["../../../../../../../../../packages/core/src/tooling/board/board-message.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"board-message.d.mts","names":[],"sources":["../../../../../../../../../packages/core/src/tooling/board/board-message.ts"],"mappings":";;;YAGY;EACV;EACA;EACA;EACA;EACA;;;YAIU,qBAAqB;EAC/B;EACA,SAAS;;;;;;;wBAaK,mBACd,QAAQ,oBACR,cACA,UAAS;;;;;;wBAuCK,kBAAkB,eAAe"}
|
|
@@ -1,83 +1,96 @@
|
|
|
1
1
|
import { BoardItem, BoardMessage, BoardState, BoardStatus, BoardVerdict } from "./board.types.mjs";
|
|
2
|
-
|
|
3
2
|
//#region ../../packages/core/src/tooling/board/board.d.ts
|
|
4
3
|
/** What `initBoard` did. */
|
|
5
|
-
type InitBoardResult = {
|
|
6
|
-
/** The board directory, relative to the project root. */
|
|
7
|
-
|
|
4
|
+
export type InitBoardResult = {
|
|
5
|
+
/** The board directory, relative to the project root. */
|
|
6
|
+
directory: string;
|
|
7
|
+
/** `false` when the board already existed. */
|
|
8
|
+
created: boolean;
|
|
9
|
+
/** Whether `.warlock/board/` was added to `.gitignore` by this call. */
|
|
8
10
|
gitignoreUpdated: boolean;
|
|
9
11
|
};
|
|
10
12
|
/** Inputs of {@link addBoardItem}. */
|
|
11
|
-
type AddBoardItemInput = {
|
|
13
|
+
export type AddBoardItemInput = {
|
|
12
14
|
title: string;
|
|
13
15
|
assignee?: string | null;
|
|
14
|
-
reviewer?: string | null;
|
|
15
|
-
|
|
16
|
+
reviewer?: string | null;
|
|
17
|
+
/** The agent creating it, recorded in the history. */
|
|
18
|
+
by?: string | null;
|
|
19
|
+
/** Clock, for tests. */
|
|
16
20
|
now?: () => Date;
|
|
17
21
|
};
|
|
18
22
|
/** Inputs of {@link moveBoardItem}. */
|
|
19
|
-
type MoveBoardItemOptions = {
|
|
23
|
+
export type MoveBoardItemOptions = {
|
|
20
24
|
by?: string | null;
|
|
21
25
|
note?: string | null;
|
|
22
26
|
now?: () => Date;
|
|
23
27
|
};
|
|
24
28
|
/** Inputs of {@link sendBoardMessage}. */
|
|
25
|
-
type SendBoardMessageInput = {
|
|
29
|
+
export type SendBoardMessageInput = {
|
|
26
30
|
to: string;
|
|
27
31
|
from: string;
|
|
28
32
|
subject: string;
|
|
29
|
-
body?: string;
|
|
30
|
-
|
|
33
|
+
body?: string;
|
|
34
|
+
/** The item the message is about. */
|
|
35
|
+
item?: number | null;
|
|
36
|
+
/** A review verdict; with `item`, also moves the item to that state. */
|
|
31
37
|
verdict?: BoardVerdict | null;
|
|
32
38
|
now?: () => Date;
|
|
33
39
|
};
|
|
34
40
|
/** What {@link sendBoardMessage} wrote. */
|
|
35
|
-
type SendBoardMessageResult = {
|
|
36
|
-
message: BoardMessage;
|
|
41
|
+
export type SendBoardMessageResult = {
|
|
42
|
+
message: BoardMessage;
|
|
43
|
+
/** The item after the verdict moved it, when the message carried one. */
|
|
37
44
|
item: BoardItem | null;
|
|
38
45
|
};
|
|
39
46
|
/** Inputs of {@link watchBoard}. */
|
|
40
|
-
type WatchBoardOptions = {
|
|
41
|
-
agent: string;
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
47
|
+
export type WatchBoardOptions = {
|
|
48
|
+
agent: string;
|
|
49
|
+
/** Return messages numbered above this. Default: the agent's cursor. */
|
|
50
|
+
since?: number;
|
|
51
|
+
/** Give up after this long; throws `WL7404`. Default: 10 minutes. */
|
|
52
|
+
timeoutMs?: number;
|
|
53
|
+
/** Poll interval. Default: 250 ms. */
|
|
54
|
+
intervalMs?: number;
|
|
55
|
+
/** Stop early (resolves with no messages). */
|
|
45
56
|
signal?: AbortSignal;
|
|
46
57
|
};
|
|
47
58
|
/** What {@link watchBoard} returned. */
|
|
48
|
-
type WatchBoardResult = {
|
|
49
|
-
agent: string;
|
|
50
|
-
|
|
59
|
+
export type WatchBoardResult = {
|
|
60
|
+
agent: string;
|
|
61
|
+
/** The new messages, oldest first. */
|
|
62
|
+
messages: BoardMessage[];
|
|
63
|
+
/** The agent's cursor after the call. */
|
|
51
64
|
cursor: number;
|
|
52
65
|
};
|
|
53
66
|
/** A file-name slug: lower-case, dashes, at most 48 characters. */
|
|
54
|
-
declare function boardSlug(value: string, fallback: string): string;
|
|
67
|
+
export declare function boardSlug(value: string, fallback: string): string;
|
|
55
68
|
/** Throw unless `name` is a valid agent name. */
|
|
56
|
-
declare function assertAgentName(name: string, label?: string): void;
|
|
69
|
+
export declare function assertAgentName(name: string, label?: string): void;
|
|
57
70
|
/** Whether a `.gitignore` already ignores the board folder (or `.warlock` as a whole). */
|
|
58
|
-
declare function gitignoreCoversBoard(content: string): boolean;
|
|
71
|
+
export declare function gitignoreCoversBoard(content: string): boolean;
|
|
59
72
|
/**
|
|
60
73
|
* Create the board (idempotent): `.warlock/board/` with its `board.json`
|
|
61
74
|
* marker, `items/`, and `.warlock/board/` in `.gitignore` unless the project
|
|
62
75
|
* already ignores it. A `.gitignore` is created when there is none.
|
|
63
76
|
*/
|
|
64
|
-
declare function initBoard(cwd?: string, now?: () => Date): InitBoardResult;
|
|
77
|
+
export declare function initBoard(cwd?: string, now?: () => Date): InitBoardResult;
|
|
65
78
|
/** Every item, by id. Throws `WL7401` when the board does not exist. */
|
|
66
|
-
declare function listBoardItems(cwd?: string): BoardItem[];
|
|
79
|
+
export declare function listBoardItems(cwd?: string): BoardItem[];
|
|
67
80
|
/** One item. Throws `WL7402` for an unknown id. */
|
|
68
|
-
declare function readBoardItem(id: number, cwd?: string): BoardItem;
|
|
81
|
+
export declare function readBoardItem(id: number, cwd?: string): BoardItem;
|
|
69
82
|
/** Add an item in state `todo`, with a fresh id no other writer can take. */
|
|
70
|
-
declare function addBoardItem(input: AddBoardItemInput, cwd?: string): BoardItem;
|
|
83
|
+
export declare function addBoardItem(input: AddBoardItemInput, cwd?: string): BoardItem;
|
|
71
84
|
/** The states an item in `state` may move to. */
|
|
72
|
-
declare function nextBoardStates(state: BoardState): readonly BoardState[];
|
|
85
|
+
export declare function nextBoardStates(state: BoardState): readonly BoardState[];
|
|
73
86
|
/** Throw `WL7403` unless `from → to` is in {@link BOARD_TRANSITIONS}. */
|
|
74
|
-
declare function assertBoardTransition(id: number, from: BoardState, to: BoardState): void;
|
|
87
|
+
export declare function assertBoardTransition(id: number, from: BoardState, to: BoardState): void;
|
|
75
88
|
/**
|
|
76
89
|
* Move an item to another state, recording who moved it and why. Throws
|
|
77
90
|
* `WL7402` for an unknown id and `WL7403` for a move the state machine does
|
|
78
91
|
* not allow.
|
|
79
92
|
*/
|
|
80
|
-
declare function moveBoardItem(id: number, to: BoardState, options?: MoveBoardItemOptions, cwd?: string): BoardItem;
|
|
93
|
+
export declare function moveBoardItem(id: number, to: BoardState, options?: MoveBoardItemOptions, cwd?: string): BoardItem;
|
|
81
94
|
/**
|
|
82
95
|
* Write a message to `to-<agent>/NNNN-<slug>.md`. Messages are append-only:
|
|
83
96
|
* the number is reserved exclusively and the file is created with `wx`, so it
|
|
@@ -85,17 +98,17 @@ declare function moveBoardItem(id: number, to: BoardState, options?: MoveBoardIt
|
|
|
85
98
|
* `approved` / `changes-requested` — before the message is written, so a
|
|
86
99
|
* refused move (`WL7403`) leaves no message behind.
|
|
87
100
|
*/
|
|
88
|
-
declare function sendBoardMessage(input: SendBoardMessageInput, cwd?: string): SendBoardMessageResult;
|
|
101
|
+
export declare function sendBoardMessage(input: SendBoardMessageInput, cwd?: string): SendBoardMessageResult;
|
|
89
102
|
/** The messages in an agent's inbox numbered above `since`, oldest first. */
|
|
90
|
-
declare function listBoardMessages(agent: string, options?: {
|
|
103
|
+
export declare function listBoardMessages(agent: string, options?: {
|
|
91
104
|
since?: number;
|
|
92
105
|
}, cwd?: string): BoardMessage[];
|
|
93
106
|
/** The highest message number `watch` has returned to `agent` (0 when none). */
|
|
94
|
-
declare function readBoardCursor(agent: string, cwd?: string): number;
|
|
107
|
+
export declare function readBoardCursor(agent: string, cwd?: string): number;
|
|
95
108
|
/** Record that `agent` has seen messages up to `number`. Never moves the cursor back. */
|
|
96
|
-
declare function writeBoardCursor(agent: string, number: number, cwd?: string): number;
|
|
109
|
+
export declare function writeBoardCursor(agent: string, number: number, cwd?: string): number;
|
|
97
110
|
/** Every item and every inbox with its message count, cursor and unread count. */
|
|
98
|
-
declare function readBoardStatus(cwd?: string): BoardStatus;
|
|
111
|
+
export declare function readBoardStatus(cwd?: string): BoardStatus;
|
|
99
112
|
/**
|
|
100
113
|
* Block until `agent` has a message numbered above `since` (default: its
|
|
101
114
|
* cursor), then return every such message and advance the cursor past them.
|
|
@@ -103,7 +116,6 @@ declare function readBoardStatus(cwd?: string): BoardStatus;
|
|
|
103
116
|
* Polls the inbox every `intervalMs`; throws `WL7404` when `timeoutMs` passes
|
|
104
117
|
* first. An aborted `signal` resolves with no messages.
|
|
105
118
|
*/
|
|
106
|
-
declare function watchBoard(options: WatchBoardOptions, cwd?: string): Promise<WatchBoardResult>;
|
|
119
|
+
export declare function watchBoard(options: WatchBoardOptions, cwd?: string): Promise<WatchBoardResult>;
|
|
107
120
|
//#endregion
|
|
108
|
-
export { AddBoardItemInput, InitBoardResult, MoveBoardItemOptions, SendBoardMessageInput, SendBoardMessageResult, WatchBoardOptions, WatchBoardResult, addBoardItem, assertAgentName, assertBoardTransition, boardSlug, gitignoreCoversBoard, initBoard, listBoardItems, listBoardMessages, moveBoardItem, nextBoardStates, readBoardCursor, readBoardItem, readBoardStatus, sendBoardMessage, watchBoard, writeBoardCursor };
|
|
109
121
|
//# sourceMappingURL=board.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"board.d.mts","names":[],"sources":["../../../../../../../../../packages/core/src/tooling/board/board.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"board.d.mts","names":[],"sources":["../../../../../../../../../packages/core/src/tooling/board/board.ts"],"mappings":";;;YAiCY;;EAEV;;EAEA;;EAEA;;;YAIU;EACV;EACA;EACA;;EAEA;;EAEA,YAAY;;;YAIF;EACV;EACA;EACA,YAAY;;;YAIF;EACV;EACA;EACA;EACA;;EAEA;;EAEA,UAAU;EACV,YAAY;;;YAIF;EACV,SAAS;;EAET,MAAM;;;YAII;EACV;;EAEA;;EAEA;;EAEA;;EAEA,SAAS;;;YAIC;EACV;;EAEA,UAAU;;EAEV;;;wBAgBc,UAAU,eAAe;;wBAYzB,gBAAgB,cAAc;;wBA8E9B,qBAAqB;;;;;;wBAsBrB,UACd,cACA,YAAW,OACV;;wBA4Fa,eAAe,eAAsB;;wBAerC,cAAc,YAAY,eAAsB;;wBAgBhD,aAAa,OAAO,mBAAmB,eAAsB;;wBAqC7D,gBAAgB,OAAO,sBAAsB;;wBAK7C,sBAAsB,YAAY,MAAM,YAAY,IAAI;;;;;;wBAcxD,cACd,YACA,IAAI,YACJ,UAAS,sBACT,eACC;;;;;;;;wBAoCa,iBACd,OAAO,uBACP,eACC;;wBAyDa,kBACd,eACA;EAAW;GACX,eACC;;wBA6Ba,gBAAgB,eAAe;;wBAe/B,iBAAiB,eAAe,gBAAgB;;wBAchD,gBAAgB,eAAsB;;;;;;;;wBA+BhC,WACpB,SAAS,mBACT,eACC,QAAQ"}
|
|
@@ -78,7 +78,7 @@ function assertInitialized(cwd) {
|
|
|
78
78
|
}
|
|
79
79
|
/** Whether a `.gitignore` already ignores the board folder (or `.warlock` as a whole). */
|
|
80
80
|
function gitignoreCoversBoard(content) {
|
|
81
|
-
const covering = new Set([
|
|
81
|
+
const covering = /* @__PURE__ */ new Set([
|
|
82
82
|
".warlock",
|
|
83
83
|
".warlock/",
|
|
84
84
|
"/.warlock",
|
|
@@ -111,7 +111,8 @@ function initBoard(cwd = process.cwd(), now = () => /* @__PURE__ */ new Date())
|
|
|
111
111
|
const current = existsSync(gitignore) ? readFileSync(gitignore, "utf8") : "";
|
|
112
112
|
let gitignoreUpdated = false;
|
|
113
113
|
if (!gitignoreCoversBoard(current)) {
|
|
114
|
-
|
|
114
|
+
const separator = current.length === 0 || current.endsWith("\n") ? "" : "\n";
|
|
115
|
+
writeFileSync(gitignore, `${current}${separator}${current.length > 0 ? "\n" : ""}# Agent board (warlock board)\n${BOARD_DIRECTORY}/\n`, "utf8");
|
|
115
116
|
gitignoreUpdated = true;
|
|
116
117
|
}
|
|
117
118
|
return {
|
|
@@ -377,7 +378,7 @@ async function watchBoard(options, cwd = process.cwd()) {
|
|
|
377
378
|
assertInitialized(cwd);
|
|
378
379
|
assertAgentName(options.agent);
|
|
379
380
|
const since = options.since ?? readBoardCursor(options.agent, cwd);
|
|
380
|
-
const timeoutMs = options.timeoutMs ??
|
|
381
|
+
const timeoutMs = options.timeoutMs ?? 6e5;
|
|
381
382
|
const intervalMs = options.intervalMs ?? 250;
|
|
382
383
|
const deadline = Date.now() + timeoutMs;
|
|
383
384
|
for (;;) {
|