@jigyasudham/veto 3.1.0 → 3.1.1

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.
Files changed (135) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +630 -627
  3. package/dist/agents/llm-runner.js +57 -57
  4. package/dist/cli/statusline.js +2 -2
  5. package/dist/cli.js +26 -26
  6. package/dist/memory/decisions.js +1 -1
  7. package/dist/memory/local.js +144 -144
  8. package/dist/memory/schema.js +228 -228
  9. package/dist/memory/sync.js +27 -27
  10. package/dist/memory/sync.js.map +1 -1
  11. package/dist/router/implicit-outcomes.js +4 -4
  12. package/dist/router/learning-updater.js +45 -45
  13. package/dist/server.js +1 -1
  14. package/dist/tools/compact.js +3 -3
  15. package/dist/transcripts/archive.js +5 -5
  16. package/dist/transcripts/ingest.js +6 -6
  17. package/dist/transcripts/mapping.js +5 -5
  18. package/dist/transcripts/pyramid.js +2 -2
  19. package/dist/transcripts/schema.js +104 -104
  20. package/dist/transcripts/search.js +3 -3
  21. package/dist/transcripts/vectors.js +2 -2
  22. package/package.json +70 -62
  23. package/server.json +23 -23
  24. package/dist/skills/development/skill-api-design.d.ts +0 -15
  25. package/dist/skills/development/skill-api-design.d.ts.map +0 -1
  26. package/dist/skills/development/skill-api-design.js +0 -313
  27. package/dist/skills/development/skill-api-design.js.map +0 -1
  28. package/dist/skills/development/skill-auth.d.ts +0 -15
  29. package/dist/skills/development/skill-auth.d.ts.map +0 -1
  30. package/dist/skills/development/skill-auth.js +0 -255
  31. package/dist/skills/development/skill-auth.js.map +0 -1
  32. package/dist/skills/development/skill-ci-cd.d.ts +0 -2
  33. package/dist/skills/development/skill-ci-cd.d.ts.map +0 -1
  34. package/dist/skills/development/skill-ci-cd.js +0 -2
  35. package/dist/skills/development/skill-ci-cd.js.map +0 -1
  36. package/dist/skills/development/skill-crud.d.ts +0 -15
  37. package/dist/skills/development/skill-crud.d.ts.map +0 -1
  38. package/dist/skills/development/skill-crud.js +0 -193
  39. package/dist/skills/development/skill-crud.js.map +0 -1
  40. package/dist/skills/development/skill-db-schema.d.ts +0 -2
  41. package/dist/skills/development/skill-db-schema.d.ts.map +0 -1
  42. package/dist/skills/development/skill-db-schema.js +0 -2
  43. package/dist/skills/development/skill-db-schema.js.map +0 -1
  44. package/dist/skills/development/skill-docker.d.ts +0 -2
  45. package/dist/skills/development/skill-docker.d.ts.map +0 -1
  46. package/dist/skills/development/skill-docker.js +0 -2
  47. package/dist/skills/development/skill-docker.js.map +0 -1
  48. package/dist/skills/development/skill-env-setup.d.ts +0 -2
  49. package/dist/skills/development/skill-env-setup.d.ts.map +0 -1
  50. package/dist/skills/development/skill-env-setup.js +0 -2
  51. package/dist/skills/development/skill-env-setup.js.map +0 -1
  52. package/dist/skills/development/skill-scaffold.d.ts +0 -15
  53. package/dist/skills/development/skill-scaffold.d.ts.map +0 -1
  54. package/dist/skills/development/skill-scaffold.js +0 -299
  55. package/dist/skills/development/skill-scaffold.js.map +0 -1
  56. package/dist/skills/intelligence/skill-complexity-score.d.ts +0 -15
  57. package/dist/skills/intelligence/skill-complexity-score.d.ts.map +0 -1
  58. package/dist/skills/intelligence/skill-complexity-score.js +0 -66
  59. package/dist/skills/intelligence/skill-complexity-score.js.map +0 -1
  60. package/dist/skills/intelligence/skill-cost-track.d.ts +0 -14
  61. package/dist/skills/intelligence/skill-cost-track.d.ts.map +0 -1
  62. package/dist/skills/intelligence/skill-cost-track.js +0 -36
  63. package/dist/skills/intelligence/skill-cost-track.js.map +0 -1
  64. package/dist/skills/intelligence/skill-learning-loop.d.ts +0 -15
  65. package/dist/skills/intelligence/skill-learning-loop.d.ts.map +0 -1
  66. package/dist/skills/intelligence/skill-learning-loop.js +0 -66
  67. package/dist/skills/intelligence/skill-learning-loop.js.map +0 -1
  68. package/dist/skills/intelligence/skill-pattern-detect.d.ts +0 -14
  69. package/dist/skills/intelligence/skill-pattern-detect.d.ts.map +0 -1
  70. package/dist/skills/intelligence/skill-pattern-detect.js +0 -35
  71. package/dist/skills/intelligence/skill-pattern-detect.js.map +0 -1
  72. package/dist/skills/intelligence/skill-rate-watch.d.ts +0 -15
  73. package/dist/skills/intelligence/skill-rate-watch.d.ts.map +0 -1
  74. package/dist/skills/intelligence/skill-rate-watch.js +0 -58
  75. package/dist/skills/intelligence/skill-rate-watch.js.map +0 -1
  76. package/dist/skills/memory/skill-context-compress.d.ts +0 -15
  77. package/dist/skills/memory/skill-context-compress.d.ts.map +0 -1
  78. package/dist/skills/memory/skill-context-compress.js +0 -82
  79. package/dist/skills/memory/skill-context-compress.js.map +0 -1
  80. package/dist/skills/memory/skill-cross-sync.d.ts +0 -15
  81. package/dist/skills/memory/skill-cross-sync.d.ts.map +0 -1
  82. package/dist/skills/memory/skill-cross-sync.js +0 -88
  83. package/dist/skills/memory/skill-cross-sync.js.map +0 -1
  84. package/dist/skills/memory/skill-decision-log.d.ts +0 -15
  85. package/dist/skills/memory/skill-decision-log.d.ts.map +0 -1
  86. package/dist/skills/memory/skill-decision-log.js +0 -103
  87. package/dist/skills/memory/skill-decision-log.js.map +0 -1
  88. package/dist/skills/memory/skill-session-restore.d.ts +0 -15
  89. package/dist/skills/memory/skill-session-restore.d.ts.map +0 -1
  90. package/dist/skills/memory/skill-session-restore.js +0 -39
  91. package/dist/skills/memory/skill-session-restore.js.map +0 -1
  92. package/dist/skills/memory/skill-session-save.d.ts +0 -15
  93. package/dist/skills/memory/skill-session-save.d.ts.map +0 -1
  94. package/dist/skills/memory/skill-session-save.js +0 -74
  95. package/dist/skills/memory/skill-session-save.js.map +0 -1
  96. package/dist/skills/quality/skill-accessibility.d.ts +0 -2
  97. package/dist/skills/quality/skill-accessibility.d.ts.map +0 -1
  98. package/dist/skills/quality/skill-accessibility.js +0 -2
  99. package/dist/skills/quality/skill-accessibility.js.map +0 -1
  100. package/dist/skills/quality/skill-code-review.d.ts +0 -15
  101. package/dist/skills/quality/skill-code-review.d.ts.map +0 -1
  102. package/dist/skills/quality/skill-code-review.js +0 -60
  103. package/dist/skills/quality/skill-code-review.js.map +0 -1
  104. package/dist/skills/quality/skill-docs-gen.d.ts +0 -2
  105. package/dist/skills/quality/skill-docs-gen.d.ts.map +0 -1
  106. package/dist/skills/quality/skill-docs-gen.js +0 -2
  107. package/dist/skills/quality/skill-docs-gen.js.map +0 -1
  108. package/dist/skills/quality/skill-perf-audit.d.ts +0 -2
  109. package/dist/skills/quality/skill-perf-audit.d.ts.map +0 -1
  110. package/dist/skills/quality/skill-perf-audit.js +0 -2
  111. package/dist/skills/quality/skill-perf-audit.js.map +0 -1
  112. package/dist/skills/quality/skill-security-scan.d.ts +0 -15
  113. package/dist/skills/quality/skill-security-scan.d.ts.map +0 -1
  114. package/dist/skills/quality/skill-security-scan.js +0 -67
  115. package/dist/skills/quality/skill-security-scan.js.map +0 -1
  116. package/dist/skills/quality/skill-test-suite.d.ts +0 -15
  117. package/dist/skills/quality/skill-test-suite.d.ts.map +0 -1
  118. package/dist/skills/quality/skill-test-suite.js +0 -274
  119. package/dist/skills/quality/skill-test-suite.js.map +0 -1
  120. package/dist/skills/workflow/skill-deploy.d.ts +0 -2
  121. package/dist/skills/workflow/skill-deploy.d.ts.map +0 -1
  122. package/dist/skills/workflow/skill-deploy.js +0 -2
  123. package/dist/skills/workflow/skill-deploy.js.map +0 -1
  124. package/dist/skills/workflow/skill-git-workflow.d.ts +0 -2
  125. package/dist/skills/workflow/skill-git-workflow.d.ts.map +0 -1
  126. package/dist/skills/workflow/skill-git-workflow.js +0 -2
  127. package/dist/skills/workflow/skill-git-workflow.js.map +0 -1
  128. package/dist/skills/workflow/skill-rollback.d.ts +0 -2
  129. package/dist/skills/workflow/skill-rollback.d.ts.map +0 -1
  130. package/dist/skills/workflow/skill-rollback.js +0 -2
  131. package/dist/skills/workflow/skill-rollback.js.map +0 -1
  132. package/dist/skills/workflow/skill-task-breakdown.d.ts +0 -2
  133. package/dist/skills/workflow/skill-task-breakdown.d.ts.map +0 -1
  134. package/dist/skills/workflow/skill-task-breakdown.js +0 -2
  135. package/dist/skills/workflow/skill-task-breakdown.js.map +0 -1
@@ -1,299 +0,0 @@
1
- // Skill: scaffold — generates project scaffold structure for detected project type
2
- function detectProjectType(task) {
3
- const t = task.toLowerCase();
4
- if (/\bcli\b|command[\s-]?line|commander|yargs|oclif/.test(t))
5
- return 'cli';
6
- if (/\blibrary\b|npm\s+package|sdk|module|publishable/.test(t))
7
- return 'library';
8
- if (/\bfull[\s-]?stack\b|next\.?js|nuxt|remix|frontend\s*\+\s*backend/.test(t))
9
- return 'full-stack';
10
- if (/\bapi\b|rest(?:ful)?|express|fastify|hono|koa|endpoint/.test(t))
11
- return 'rest-api';
12
- return 'generic';
13
- }
14
- const TEMPLATES = {
15
- 'rest-api': `
16
- my-api/
17
- ├── src/
18
- │ ├── index.ts # Entry point — creates and starts the server
19
- │ ├── app.ts # Express/Fastify app factory (no listen call)
20
- │ ├── config/
21
- │ │ └── env.ts # Typed env validation with zod
22
- │ ├── routes/
23
- │ │ ├── index.ts # Route aggregator
24
- │ │ └── health.ts # GET /health — liveness probe
25
- │ ├── controllers/ # HTTP layer: parse request, call service, send response
26
- │ ├── services/ # Business logic — no HTTP types
27
- │ ├── repositories/ # Data access layer — DB queries only
28
- │ ├── middleware/
29
- │ │ ├── auth.ts # JWT / session verification
30
- │ │ ├── validate.ts # Zod request schema validation
31
- │ │ └── error-handler.ts # Centralised error → HTTP response mapping
32
- │ ├── models/ # TypeScript interfaces / Prisma types
33
- │ └── utils/
34
- │ ├── logger.ts # Pino / Winston structured logger
35
- │ └── errors.ts # Typed application error classes
36
- ├── tests/
37
- │ ├── unit/ # Service and utility unit tests
38
- │ ├── integration/ # Route-level supertest tests
39
- │ └── fixtures/ # Test data factories
40
- ├── .env.example # Template with all required env keys (no real values)
41
- ├── .gitignore
42
- ├── .eslintrc.json
43
- ├── .prettierrc
44
- ├── tsconfig.json
45
- ├── jest.config.ts # Or vitest.config.ts
46
- ├── Dockerfile
47
- ├── docker-compose.yml
48
- └── package.json
49
- `.trim(),
50
- 'full-stack': `
51
- my-app/
52
- ├── apps/
53
- │ ├── web/ # Frontend (React / Next.js / Astro)
54
- │ │ ├── src/
55
- │ │ │ ├── app/ # Next.js App Router pages
56
- │ │ │ ├── components/ # Shared UI components
57
- │ │ │ ├── hooks/ # Custom React hooks
58
- │ │ │ ├── lib/ # API client, utilities
59
- │ │ │ └── styles/ # Global CSS / Tailwind config
60
- │ │ └── package.json
61
- │ └── api/ # Backend (Express / Fastify)
62
- │ ├── src/
63
- │ │ ├── routes/
64
- │ │ ├── services/
65
- │ │ └── repositories/
66
- │ └── package.json
67
- ├── packages/
68
- │ ├── ui/ # Shared component library
69
- │ ├── types/ # Shared TypeScript types between frontend and backend
70
- │ └── config/ # Shared ESLint, tsconfig base
71
- ├── infra/ # IaC (Terraform / Pulumi / CDK)
72
- ├── .env.example
73
- ├── pnpm-workspace.yaml # Or turbo.json for Turborepo
74
- ├── turbo.json
75
- └── package.json
76
- `.trim(),
77
- cli: `
78
- my-cli/
79
- ├── src/
80
- │ ├── index.ts # Entry point — calls main()
81
- │ ├── cli.ts # Commander / yargs setup, command registration
82
- │ ├── commands/
83
- │ │ ├── index.ts # Command exports
84
- │ │ └── init.ts # Example: "my-cli init" command
85
- │ ├── config/
86
- │ │ ├── loader.ts # Reads ~/.my-cli/config.json or XDG config
87
- │ │ └── schema.ts # Zod schema for config validation
88
- │ ├── utils/
89
- │ │ ├── logger.ts # Chalk-powered coloured console output
90
- │ │ ├── spinner.ts # Ora spinner wrapper
91
- │ │ └── prompt.ts # Inquirer / clack prompt helpers
92
- │ └── errors.ts # CLI-specific error classes with exit codes
93
- ├── tests/
94
- │ ├── commands/ # Command unit tests
95
- │ └── integration/ # Full CLI invocation tests via execa
96
- ├── bin/
97
- │ └── my-cli.js # Executable shim (#!/usr/bin/env node)
98
- ├── .env.example
99
- ├── .gitignore
100
- ├── tsconfig.json
101
- ├── tsconfig.build.json # Excludes test files from build output
102
- ├── package.json # "bin" field pointing to dist/index.js
103
- └── README.md
104
- `.trim(),
105
- library: `
106
- my-library/
107
- ├── src/
108
- │ ├── index.ts # Public API barrel — re-exports only the public surface
109
- │ ├── core/ # Core implementation modules
110
- │ ├── types/
111
- │ │ └── index.ts # Exported TypeScript types and interfaces
112
- │ └── utils/ # Internal utilities (not exported)
113
- ├── tests/
114
- │ ├── unit/
115
- │ └── snapshots/
116
- ├── examples/ # Runnable usage examples
117
- ├── scripts/
118
- │ └── build.ts # Build script (tsup / rollup / esbuild)
119
- ├── .env.example
120
- ├── .gitignore
121
- ├── .eslintrc.json
122
- ├── .prettierrc
123
- ├── tsconfig.json
124
- ├── tsup.config.ts # Bundles CJS + ESM + type declarations
125
- ├── vitest.config.ts
126
- ├── CHANGELOG.md
127
- └── package.json # "exports", "main", "module", "types" fields
128
- `.trim(),
129
- generic: `
130
- my-project/
131
- ├── src/
132
- │ ├── index.ts # Entry point
133
- │ └── lib/ # Core modules
134
- ├── tests/
135
- ├── .env.example
136
- ├── .gitignore
137
- ├── tsconfig.json
138
- └── package.json
139
- `.trim(),
140
- };
141
- const CHECKLISTS = {
142
- 'rest-api': [
143
- 'Run: npm init -y && git init && echo "node_modules" > .gitignore',
144
- 'Install TypeScript: npm install -D typescript ts-node @types/node && npx tsc --init',
145
- 'Configure tsconfig.json: strict:true, outDir:dist, rootDir:src, target:ES2022',
146
- 'Install framework: npm install express && npm install -D @types/express',
147
- 'Install security middleware: npm install helmet express-rate-limit cors',
148
- 'Install validation: npm install zod',
149
- 'Install logger: npm install pino && npm install -D pino-pretty',
150
- 'Set up database ORM: npm install prisma && npx prisma init',
151
- 'Configure ESLint and Prettier: npm install -D eslint @typescript-eslint/parser prettier',
152
- 'Install testing: npm install -D vitest supertest @types/supertest',
153
- 'Create .env.example with all required variables; add .env to .gitignore',
154
- 'Write src/app.ts factory and src/index.ts entry point',
155
- 'Add npm scripts: dev (ts-node-dev), build (tsc), start (node dist/index.js), test, lint',
156
- 'Write a Dockerfile with multi-stage build: builder + production runner',
157
- 'Set up GitHub Actions CI: install → lint → test → build on every PR',
158
- 'Add docker-compose.yml for local development with database service',
159
- ],
160
- 'full-stack': [
161
- 'Initialise monorepo: npm install -D turbo && pnpm init (or use create-turbo)',
162
- 'Create pnpm-workspace.yaml listing apps/* and packages/*',
163
- 'Scaffold frontend: pnpm create next-app apps/web --typescript',
164
- 'Scaffold backend: follow rest-api checklist in apps/api',
165
- 'Create packages/types with shared TypeScript interfaces',
166
- 'Create packages/config with shared tsconfig.base.json and eslint config',
167
- 'Configure Turborepo pipeline in turbo.json: build, test, lint tasks',
168
- 'Set up shared environment: turbo.env or dotenv in each app',
169
- 'Install Tailwind CSS and shadcn/ui in apps/web',
170
- 'Set up API client in apps/web/src/lib/api.ts using fetch with typed responses',
171
- 'Configure CORS in apps/api to allow the web origin in development',
172
- 'Add Prettier and ESLint configs in packages/config; extend in each app',
173
- 'Write GitHub Actions matrix workflow that tests each app independently',
174
- 'Write docker-compose.yml that starts both apps and their dependencies',
175
- ],
176
- cli: [
177
- 'npm init -y && git init',
178
- 'Install TypeScript: npm install -D typescript @types/node && npx tsc --init',
179
- 'Install CLI framework: npm install commander && npm install -D @types/commander',
180
- 'Install UX tools: npm install chalk ora inquirer && npm install -D @types/inquirer',
181
- 'Install build tool: npm install -D tsup',
182
- 'Configure package.json: add "bin" field, "files" field, and build/dev scripts',
183
- 'Create bin/my-cli.js shim with #!/usr/bin/env node pointing to dist/index.js',
184
- 'Set "prepublishOnly" script to run build and tests before npm publish',
185
- 'Create src/cli.ts with the Commander program definition',
186
- 'Add at least one example command in src/commands/',
187
- 'Write integration tests using execa to invoke the compiled CLI binary',
188
- 'Set up ESLint and Prettier',
189
- 'Add GitHub Actions workflow: test on push + publish to npm on release tag',
190
- 'Write README.md with installation and usage examples',
191
- ],
192
- library: [
193
- 'npm init -y && git init',
194
- 'Install TypeScript and tsup: npm install -D typescript tsup',
195
- 'Configure tsconfig.json with strict:true, declaration:true, declarationMap:true',
196
- 'Configure tsup.config.ts: entry src/index.ts, formats [cjs, esm], dts:true',
197
- 'Set package.json "exports", "main", "module", "types" fields for dual CJS/ESM',
198
- 'Add "files" field to package.json to only publish src + dist, not tests',
199
- 'Install vitest for testing: npm install -D vitest',
200
- 'Install Changesets for versioning: npm install -D @changesets/cli && npx changeset init',
201
- 'Write public API in src/index.ts; keep internal modules unexported',
202
- 'Write tests covering edge cases, error paths, and type narrowing',
203
- 'Add ESLint with @typescript-eslint and prettier',
204
- 'Create examples/ directory with a working usage example',
205
- 'Set up GitHub Actions: test → build → publish on changeset release',
206
- 'Add CHANGELOG.md and seed first version with npx changeset',
207
- ],
208
- generic: [
209
- 'npm init -y && git init',
210
- 'Install TypeScript: npm install -D typescript && npx tsc --init',
211
- 'Add strict TypeScript configuration',
212
- 'Set up ESLint and Prettier',
213
- 'Install testing framework (vitest or jest)',
214
- 'Create .env.example and add .env to .gitignore',
215
- 'Add CI workflow (GitHub Actions)',
216
- 'Write README with purpose, setup, and usage',
217
- ],
218
- };
219
- const PATTERNS_MAP = {
220
- 'rest-api': ['Controller → Service → Repository layered architecture', 'Middleware chain for cross-cutting concerns', 'Dependency injection via constructor parameters'],
221
- 'full-stack': ['Turborepo monorepo with shared packages', 'Type-sharing between frontend and backend via shared package', 'API contract-first development'],
222
- cli: ['Commander subcommand pattern', 'Config file with XDG base directory spec', 'Spinner + prompt UX pattern'],
223
- library: ['Barrel export pattern (src/index.ts as public API surface)', 'Dual CJS/ESM build with tsup', 'Semantic versioning with Changesets'],
224
- generic: ['Separation of concerns', 'Environment-based configuration', 'Test-driven development'],
225
- };
226
- const GOTCHAS = {
227
- 'rest-api': [
228
- 'Not separating app factory from server listen — makes supertest integration tests impossible',
229
- 'Importing from .ts paths instead of .js in ESM projects — Node requires .js extensions at runtime',
230
- 'Forgetting to handle unhandled promise rejections: process.on("unhandledRejection")',
231
- 'Not setting NODE_ENV=production in Docker — some libraries skip optimisations',
232
- ],
233
- 'full-stack': [
234
- 'pnpm hoisting rules differ from npm — some packages require explicit workspace installation',
235
- 'Turbo caches outputs — always define "outputs" in turbo.json or caching will miss files',
236
- 'Next.js Server Actions run on the server but are bundled client-side if marked incorrectly',
237
- 'CORS in development must allow the exact origin including port number',
238
- ],
239
- cli: [
240
- 'bin script must have chmod +x and #!/usr/bin/env node shebang — otherwise it won\'t run on Unix',
241
- 'Using process.exit() inside async code without await — unhandled async errors go silently',
242
- 'Global config paths differ per OS — use the "env-paths" package for cross-platform XDG dirs',
243
- 'Not handling SIGINT / SIGTERM — CLI leaves terminal in bad state on Ctrl+C',
244
- ],
245
- library: [
246
- 'Publishing src/ instead of dist/ — consumers get TypeScript source, not compiled output',
247
- 'Missing "exports" field in package.json — prevents dual CJS/ESM consumers from working',
248
- 'Exporting internal implementation details — breaks semver compatibility on refactors',
249
- 'Not testing the built package locally with "npm link" before publishing',
250
- ],
251
- generic: [
252
- 'Committing .env files — always add to .gitignore before the first commit',
253
- 'Missing tsconfig strict mode — allows silent type errors',
254
- 'No CI from the start — technical debt accumulates quickly without automated checks',
255
- ],
256
- };
257
- const RESOURCES = {
258
- 'rest-api': [
259
- 'https://expressjs.com/en/advanced/best-practice-security.html',
260
- 'https://www.prisma.io/docs/getting-started',
261
- 'https://vitest.dev/guide/',
262
- 'https://docs.npmjs.com/cli/v10/configuring-npm/package-json#main',
263
- ],
264
- 'full-stack': [
265
- 'https://turbo.build/repo/docs',
266
- 'https://nextjs.org/docs',
267
- 'https://pnpm.io/workspaces',
268
- 'https://ui.shadcn.com/docs',
269
- ],
270
- cli: [
271
- 'https://www.npmjs.com/package/commander',
272
- 'https://www.npmjs.com/package/ora',
273
- 'https://www.npmjs.com/package/inquirer',
274
- 'https://tsup.egoist.dev/',
275
- ],
276
- library: [
277
- 'https://tsup.egoist.dev/',
278
- 'https://github.com/changesets/changesets',
279
- 'https://www.typescriptlang.org/docs/handbook/declaration-files/dts-from-js.html',
280
- 'https://nodejs.org/api/packages.html#package-entry-points',
281
- ],
282
- generic: [
283
- 'https://www.typescriptlang.org/docs/handbook/tsconfig-json.html',
284
- 'https://vitest.dev/guide/',
285
- 'https://eslint.org/docs/latest/use/getting-started',
286
- ],
287
- };
288
- export function run(input) {
289
- const projectType = detectProjectType(input.task);
290
- return {
291
- skill: 'scaffold',
292
- template: TEMPLATES[projectType],
293
- checklist: CHECKLISTS[projectType],
294
- patterns: PATTERNS_MAP[projectType],
295
- gotchas: GOTCHAS[projectType],
296
- resources: RESOURCES[projectType],
297
- };
298
- }
299
- //# sourceMappingURL=skill-scaffold.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"skill-scaffold.js","sourceRoot":"","sources":["../../../src/skills/development/skill-scaffold.ts"],"names":[],"mappings":"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"}
@@ -1,15 +0,0 @@
1
- export interface SkillInput {
2
- task: string;
3
- context?: string;
4
- options?: Record<string, unknown>;
5
- }
6
- export interface SkillOutput {
7
- skill: string;
8
- template?: string;
9
- checklist: string[];
10
- patterns: string[];
11
- gotchas: string[];
12
- resources: string[];
13
- }
14
- export declare function run(input: SkillInput): SkillOutput;
15
- //# sourceMappingURL=skill-complexity-score.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"skill-complexity-score.d.ts","sourceRoot":"","sources":["../../../src/skills/intelligence/skill-complexity-score.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,UAAU;IAAG,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAAE;AAClG,MAAM,WAAW,WAAW;IAAG,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,EAAE,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,SAAS,EAAE,MAAM,EAAE,CAAC;CAAE;AAEnJ,wBAAgB,GAAG,CAAC,KAAK,EAAE,UAAU,GAAG,WAAW,CA+DlD"}
@@ -1,66 +0,0 @@
1
- // Skill: complexity-score — how to write task descriptions that route correctly
2
- export function run(input) {
3
- return {
4
- skill: 'complexity-score',
5
- template: `
6
- // ── Complexity Scoring Cheat Sheet ───────────────────────────────────────
7
- //
8
- // The router scores 0–100 from five factors:
9
- //
10
- // Factor 1: Word count 0–20 pts (1 pt per 3 words, cap 20)
11
- // Factor 2: Tech keywords 0–30 pts HIGH +5, MEDIUM +2
12
- // Factor 3: Task depth 0–20 pts conjunctions, commas, length
13
- // Factor 4: Files affected 0–20 pts 3 pts per file
14
- // Factor 5: Council bonus +10 pts security/auth/migration keywords
15
- //
16
- // Tier thresholds (defaults, adjusted by learning loop):
17
- // Tier 1: score 0–30 → Haiku / Flash (fast, cheap)
18
- // Tier 2: score 31–70 → Sonnet / Pro (daily coding)
19
- // Tier 3: score 71+ → Sonnet / Advanced (hard problems)
20
- //
21
- // To get a higher tier: add detail, technical keywords, or pass files_affected
22
- // To get a lower tier: simplify the description or scope down the task
23
- //
24
- // Example — under-scored:
25
- // "write tests" → score 9 → Tier 1 (too short)
26
- //
27
- // Example — correctly scored:
28
- // "write unit and integration tests for the JWT auth middleware, covering
29
- // token expiry, refresh rotation, and concurrent request edge cases"
30
- // → score 47 → Tier 2
31
- //
32
- // Example — correctly scored, high complexity:
33
- // "migrate user authentication from session cookies to JWT with refresh
34
- // token rotation — update middleware, session store, and all auth tests"
35
- // → score 78 → Tier 3 (contains 'migrate', 'authentication', 'jwt')
36
- `.trim(),
37
- checklist: [
38
- 'Call veto_route_task to see the current score before submitting a task',
39
- 'If the score is too low: add technical keywords and more specific detail to the description',
40
- 'If the score is too high: simplify the description or split into sub-tasks',
41
- 'Pass files_affected if the task touches multiple files — adds 3 pts per file',
42
- 'Use force_council=true to bypass scoring and go straight to Tier 3',
43
- 'After completing a task: call veto_record_outcome with the actual quality (0–100)',
44
- 'After 20+ outcomes: call veto_learning_apply to update the router thresholds',
45
- ],
46
- patterns: [
47
- 'Specificity → score: more specific descriptions score higher and route to better models',
48
- 'Keyword density: security/auth/migration keywords add +5 each and trigger council',
49
- 'files_affected multiplier: 5 files = +12 pts — use this for multi-file refactors',
50
- 'Outcome feedback: recording actuals enables the learning loop to tune thresholds over time',
51
- ],
52
- gotchas: [
53
- 'Short task descriptions under-score — "fix auth bug" scores ~9, Tier 1 is almost certainly wrong for auth',
54
- 'The learning loop needs 20 outcomes before it adjusts thresholds — the router is static until then',
55
- 'force_council=true always routes to Tier 3 regardless of score — use sparingly',
56
- 'Council auto-triggers on: architecture, security, auth, migration, drop table — you cannot suppress this',
57
- ],
58
- resources: [
59
- 'veto_route_task — score a task and see the tier before submitting',
60
- 'veto_record_outcome — record output quality to feed the learning loop',
61
- 'veto_learning_apply — apply learned thresholds after 20+ recorded outcomes',
62
- 'veto_learning_stats — see current tier distribution and suggested thresholds',
63
- ],
64
- };
65
- }
66
- //# sourceMappingURL=skill-complexity-score.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"skill-complexity-score.js","sourceRoot":"","sources":["../../../src/skills/intelligence/skill-complexity-score.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAKhF,MAAM,UAAU,GAAG,CAAC,KAAiB;IACnC,OAAO;QACL,KAAK,EAAE,kBAAkB;QACzB,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+Bb,CAAC,IAAI,EAAE;QACJ,SAAS,EAAE;YACT,wEAAwE;YACxE,6FAA6F;YAC7F,4EAA4E;YAC5E,8EAA8E;YAC9E,oEAAoE;YACpE,mFAAmF;YACnF,8EAA8E;SAC/E;QACD,QAAQ,EAAE;YACR,yFAAyF;YACzF,mFAAmF;YACnF,kFAAkF;YAClF,4FAA4F;SAC7F;QACD,OAAO,EAAE;YACP,2GAA2G;YAC3G,oGAAoG;YACpG,gFAAgF;YAChF,0GAA0G;SAC3G;QACD,SAAS,EAAE;YACT,mEAAmE;YACnE,uEAAuE;YACvE,4EAA4E;YAC5E,8EAA8E;SAC/E;KACF,CAAC;AACJ,CAAC"}
@@ -1,14 +0,0 @@
1
- export interface SkillInput {
2
- task: string;
3
- context?: string;
4
- options?: Record<string, unknown>;
5
- }
6
- export interface SkillOutput {
7
- skill: string;
8
- checklist: string[];
9
- patterns: string[];
10
- gotchas: string[];
11
- resources: string[];
12
- }
13
- export declare function run(input: SkillInput): SkillOutput;
14
- //# sourceMappingURL=skill-cost-track.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"skill-cost-track.d.ts","sourceRoot":"","sources":["../../../src/skills/intelligence/skill-cost-track.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,UAAU;IAAG,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAAE;AAClG,MAAM,WAAW,WAAW;IAAG,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,EAAE,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,SAAS,EAAE,MAAM,EAAE,CAAC;CAAE;AAEhI,wBAAgB,GAAG,CAAC,KAAK,EAAE,UAAU,GAAG,WAAW,CAiClD"}
@@ -1,36 +0,0 @@
1
- // Skill: cost-track — monitor and reduce AI token spend and infrastructure costs
2
- export function run(input) {
3
- return {
4
- skill: 'cost-track',
5
- checklist: [
6
- 'Call veto_learning_stats to see the current Tier 1/2/3 distribution',
7
- 'A healthy distribution is roughly 40% T1 / 45% T2 / 15% T3 — more T3 than this is expensive',
8
- 'Identify tasks that are routed to Tier 3 but could be Tier 2 with a better description',
9
- 'Call veto_rate_status to check current daily usage % per platform',
10
- 'If Claude is above 70%: T1/T2 tasks are already auto-routing to Gemini — verify this is working',
11
- 'Call veto_agent_performance_stats to identify agents with low quality scores — they waste tokens on retries',
12
- 'Record task outcomes via veto_record_outcome — this is the only way to measure actual cost/quality ratio',
13
- 'After 20+ outcomes: call veto_learning_apply — learned thresholds reduce over-routing to expensive tiers',
14
- 'Monthly: export veto_memory_export and review knowledge base size — prune irrelevant entries',
15
- ],
16
- patterns: [
17
- 'Tier distribution monitoring: T3% × avg_T3_tokens = the main cost driver',
18
- 'Outcome recording: quality data enables threshold calibration which directly reduces cost',
19
- 'Rate limit utilisation: 70–90% is healthy; under 30% means you are paying for unused capacity',
20
- 'Context compression: veto_route_task with context= returns a compression plan — use it',
21
- ],
22
- gotchas: [
23
- 'Not recording outcomes — the learning loop cannot calibrate without quality data',
24
- 'Treating all Tier 3 tasks as justified — many are there because of a short description, not actual complexity',
25
- 'Ignoring context compression — a 15,000 token context costs 10× more than a compressed 1,500 token context',
26
- 'Optimising AI cost while ignoring developer time — developer time is almost always the larger cost',
27
- ],
28
- resources: [
29
- 'veto_learning_stats — current tier distribution and suggested thresholds',
30
- 'veto_rate_status — daily usage % per platform',
31
- 'veto_learning_apply — apply learned thresholds to reduce over-routing',
32
- 'veto_record_outcome — record output quality to feed the cost/quality calibration loop',
33
- ],
34
- };
35
- }
36
- //# sourceMappingURL=skill-cost-track.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"skill-cost-track.js","sourceRoot":"","sources":["../../../src/skills/intelligence/skill-cost-track.ts"],"names":[],"mappings":"AAAA,iFAAiF;AAKjF,MAAM,UAAU,GAAG,CAAC,KAAiB;IACnC,OAAO;QACL,KAAK,EAAE,YAAY;QACnB,SAAS,EAAE;YACT,qEAAqE;YACrE,6FAA6F;YAC7F,wFAAwF;YACxF,mEAAmE;YACnE,iGAAiG;YACjG,6GAA6G;YAC7G,0GAA0G;YAC1G,0GAA0G;YAC1G,8FAA8F;SAC/F;QACD,QAAQ,EAAE;YACR,0EAA0E;YAC1E,2FAA2F;YAC3F,+FAA+F;YAC/F,wFAAwF;SACzF;QACD,OAAO,EAAE;YACP,kFAAkF;YAClF,+GAA+G;YAC/G,4GAA4G;YAC5G,oGAAoG;SACrG;QACD,SAAS,EAAE;YACT,0EAA0E;YAC1E,+CAA+C;YAC/C,uEAAuE;YACvE,uFAAuF;SACxF;KACF,CAAC;AACJ,CAAC"}
@@ -1,15 +0,0 @@
1
- export interface SkillInput {
2
- task: string;
3
- context?: string;
4
- options?: Record<string, unknown>;
5
- }
6
- export interface SkillOutput {
7
- skill: string;
8
- template?: string;
9
- checklist: string[];
10
- patterns: string[];
11
- gotchas: string[];
12
- resources: string[];
13
- }
14
- export declare function run(input: SkillInput): SkillOutput;
15
- //# sourceMappingURL=skill-learning-loop.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"skill-learning-loop.d.ts","sourceRoot":"","sources":["../../../src/skills/intelligence/skill-learning-loop.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,UAAU;IAAG,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAAE;AAClG,MAAM,WAAW,WAAW;IAAG,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,EAAE,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,SAAS,EAAE,MAAM,EAAE,CAAC;CAAE;AAEnJ,wBAAgB,GAAG,CAAC,KAAK,EAAE,UAAU,GAAG,WAAW,CA+DlD"}
@@ -1,66 +0,0 @@
1
- // Skill: learning-loop — how to feed outcome data back into the router and agents
2
- export function run(input) {
3
- return {
4
- skill: 'learning-loop',
5
- template: `
6
- // ── Learning Loop Protocol ────────────────────────────────────────────────
7
- //
8
- // The router gets smarter when you record task outcomes.
9
- // Without outcome data, thresholds stay at the default 30/70 forever.
10
- //
11
- // Step 1: Complete a task
12
- //
13
- // Step 2: Score the output quality (0–100):
14
- // 90–100 Excellent — exactly what was needed, no revision required
15
- // 70–89 Good — minor revisions needed
16
- // 50–69 Acceptable — significant revision needed but usable
17
- // 30–49 Poor — required a full rewrite
18
- // 0–29 Failed — output was wrong or harmful
19
- //
20
- // Step 3: Record via veto_record_outcome:
21
- // {
22
- // task_type: "write-auth-middleware", // short label, consistent naming helps
23
- // complexity: 58, // from veto_route_task result
24
- // model_tier: 2, // tier that was actually used
25
- // agent: "coder", // agent type used
26
- // output_quality: 87, // your score
27
- // tokens_used: 1240 // optional but useful
28
- // }
29
- //
30
- // Step 4: After 20+ outcomes: call veto_learning_apply
31
- // The router reads the quality data and adjusts tier1_max and tier2_max
32
- // Adjustment is conservative — it needs 20+ data points to act
33
- //
34
- // Step 5: Check veto_learning_stats to see what changed
35
- `.trim(),
36
- checklist: [
37
- 'Record every task outcome, not just the bad ones — the loop needs both successes and failures',
38
- 'Use consistent task_type labels across sessions (e.g. "write-unit-tests" not "tests")',
39
- 'Score output quality honestly — over-reporting quality prevents threshold improvement',
40
- 'Include tokens_used when possible — this feeds cost/quality optimisation',
41
- 'Call veto_learning_apply after every 10 new outcomes to keep thresholds current',
42
- 'Call veto_learning_stats monthly to review the tier distribution and agent performance',
43
- 'If an agent consistently scores below 70%: check veto_agent_performance_stats for patterns',
44
- 'Council insights: review veto_council_insights monthly to see if any GREEN verdicts led to debugging',
45
- ],
46
- patterns: [
47
- 'Consistent labelling: task_type labels that vary prevent pattern detection ("test" vs "write-tests" vs "unit-tests" are invisible to the loop)',
48
- 'Regular application: apply thresholds every 10 outcomes — waiting for 100 delays improvement by months',
49
- 'Quality honesty: the loop self-corrects only when quality scores reflect reality',
50
- 'Council correlation: the council insights loop needs decisions logged with veto_memory_store to work',
51
- ],
52
- gotchas: [
53
- 'Only recording failures — a loop trained on failures sees everything as over-tiered',
54
- 'Inconsistent task_type labels — "auth", "authentication", "write-auth" look like three different task types',
55
- 'Not calling veto_learning_apply — recording outcomes without applying has zero effect on routing',
56
- 'Applying thresholds with fewer than 20 data points — results will be noisy and unreliable',
57
- ],
58
- resources: [
59
- 'veto_record_outcome — record a task quality score',
60
- 'veto_learning_apply — apply recorded outcomes to adjust tier thresholds',
61
- 'veto_learning_stats — view tier distribution, agent performance, and suggested thresholds',
62
- 'veto_council_insights — review council decisions correlated with debugging sessions',
63
- ],
64
- };
65
- }
66
- //# sourceMappingURL=skill-learning-loop.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"skill-learning-loop.js","sourceRoot":"","sources":["../../../src/skills/intelligence/skill-learning-loop.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAKlF,MAAM,UAAU,GAAG,CAAC,KAAiB;IACnC,OAAO;QACL,KAAK,EAAE,eAAe;QACtB,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8Bb,CAAC,IAAI,EAAE;QACJ,SAAS,EAAE;YACT,+FAA+F;YAC/F,uFAAuF;YACvF,uFAAuF;YACvF,0EAA0E;YAC1E,iFAAiF;YACjF,wFAAwF;YACxF,4FAA4F;YAC5F,sGAAsG;SACvG;QACD,QAAQ,EAAE;YACR,gJAAgJ;YAChJ,wGAAwG;YACxG,kFAAkF;YAClF,sGAAsG;SACvG;QACD,OAAO,EAAE;YACP,qFAAqF;YACrF,6GAA6G;YAC7G,kGAAkG;YAClG,2FAA2F;SAC5F;QACD,SAAS,EAAE;YACT,mDAAmD;YACnD,yEAAyE;YACzE,2FAA2F;YAC3F,qFAAqF;SACtF;KACF,CAAC;AACJ,CAAC"}
@@ -1,14 +0,0 @@
1
- export interface SkillInput {
2
- task: string;
3
- context?: string;
4
- options?: Record<string, unknown>;
5
- }
6
- export interface SkillOutput {
7
- skill: string;
8
- checklist: string[];
9
- patterns: string[];
10
- gotchas: string[];
11
- resources: string[];
12
- }
13
- export declare function run(input: SkillInput): SkillOutput;
14
- //# sourceMappingURL=skill-pattern-detect.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"skill-pattern-detect.d.ts","sourceRoot":"","sources":["../../../src/skills/intelligence/skill-pattern-detect.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,UAAU;IAAG,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAAE;AAClG,MAAM,WAAW,WAAW;IAAG,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,EAAE,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,SAAS,EAAE,MAAM,EAAE,CAAC;CAAE;AAEhI,wBAAgB,GAAG,CAAC,KAAK,EAAE,UAAU,GAAG,WAAW,CAgClD"}
@@ -1,35 +0,0 @@
1
- // Skill: pattern-detect — find repeated patterns and anti-patterns in a codebase
2
- export function run(input) {
3
- return {
4
- skill: 'pattern-detect',
5
- checklist: [
6
- 'Call veto_patterns_list to load all stored coding patterns before scanning',
7
- 'Scan the 5 most recently modified files for structural patterns (not style — structure)',
8
- 'Look for: repeated try/catch shapes, recurring if/else chains, duplicated utility logic',
9
- 'Look for anti-patterns: N+1 loops, empty catch blocks, hardcoded magic strings/numbers',
10
- 'Compare found patterns against stored patterns — update confidence via veto_pattern_store',
11
- 'New patterns not yet stored: add via veto_pattern_store with a category.name key format',
12
- 'Anti-patterns found: flag them via veto_memory_store (type="pattern", title="Anti-pattern: X")',
13
- 'After scanning: call veto_agent_plan with agent="pattern-learner" for deeper style analysis',
14
- ],
15
- patterns: [
16
- 'Structure over style: detect structural patterns (how code is organised) not style (how it is formatted)',
17
- 'Frequency threshold: a pattern seen in 3+ files is established; seen in 1–2 files is tentative',
18
- 'Anti-pattern distinction: store anti-patterns separately with "Anti-pattern:" title prefix',
19
- 'Confidence accumulation: every confirmed observation of a pattern increments its confidence score',
20
- ],
21
- gotchas: [
22
- 'Detecting style instead of structure — style is enforced by a linter; pattern detection adds no value there',
23
- 'Flagging intentional deviations as anti-patterns — some files deliberately break the pattern (e.g. test fixtures)',
24
- 'Not updating stored patterns when the codebase evolves — stale patterns mislead future agents',
25
- 'Storing too-specific patterns ("function X uses this exact shape") vs. too-generic ("uses functions")',
26
- ],
27
- resources: [
28
- 'veto_patterns_list — list all stored patterns with confidence scores',
29
- 'veto_pattern_store — add or update a pattern',
30
- 'veto_memory_store (type="pattern") — store anti-patterns and architectural patterns',
31
- 'veto_agent_plan with agent="pattern-learner" — deeper coding style analysis',
32
- ],
33
- };
34
- }
35
- //# sourceMappingURL=skill-pattern-detect.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"skill-pattern-detect.js","sourceRoot":"","sources":["../../../src/skills/intelligence/skill-pattern-detect.ts"],"names":[],"mappings":"AAAA,iFAAiF;AAKjF,MAAM,UAAU,GAAG,CAAC,KAAiB;IACnC,OAAO;QACL,KAAK,EAAE,gBAAgB;QACvB,SAAS,EAAE;YACT,4EAA4E;YAC5E,yFAAyF;YACzF,yFAAyF;YACzF,wFAAwF;YACxF,2FAA2F;YAC3F,yFAAyF;YACzF,gGAAgG;YAChG,6FAA6F;SAC9F;QACD,QAAQ,EAAE;YACR,0GAA0G;YAC1G,gGAAgG;YAChG,4FAA4F;YAC5F,mGAAmG;SACpG;QACD,OAAO,EAAE;YACP,6GAA6G;YAC7G,mHAAmH;YACnH,+FAA+F;YAC/F,uGAAuG;SACxG;QACD,SAAS,EAAE;YACT,sEAAsE;YACtE,8CAA8C;YAC9C,qFAAqF;YACrF,6EAA6E;SAC9E;KACF,CAAC;AACJ,CAAC"}
@@ -1,15 +0,0 @@
1
- export interface SkillInput {
2
- task: string;
3
- context?: string;
4
- options?: Record<string, unknown>;
5
- }
6
- export interface SkillOutput {
7
- skill: string;
8
- template?: string;
9
- checklist: string[];
10
- patterns: string[];
11
- gotchas: string[];
12
- resources: string[];
13
- }
14
- export declare function run(input: SkillInput): SkillOutput;
15
- //# sourceMappingURL=skill-rate-watch.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"skill-rate-watch.d.ts","sourceRoot":"","sources":["../../../src/skills/intelligence/skill-rate-watch.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,UAAU;IAAG,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAAE;AAClG,MAAM,WAAW,WAAW;IAAG,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,EAAE,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,SAAS,EAAE,MAAM,EAAE,CAAC;CAAE;AAEnJ,wBAAgB,GAAG,CAAC,KAAK,EAAE,UAAU,GAAG,WAAW,CAuDlD"}