@loomfsm/bundle-code 0.1.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/LICENSE +201 -0
- package/agents/acceptance.md +141 -0
- package/agents/api-contract.md +89 -0
- package/agents/architect.md +52 -0
- package/agents/challenger-reviewer.md +104 -0
- package/agents/classifier.md +74 -0
- package/agents/code-analyzer.md +43 -0
- package/agents/context-doc-verifier.md +94 -0
- package/agents/dependency-auditor.md +42 -0
- package/agents/implementer.md +135 -0
- package/agents/logic-reviewer.md +132 -0
- package/agents/migration.md +55 -0
- package/agents/performance.md +95 -0
- package/agents/plan-conformance.md +127 -0
- package/agents/plan-grounding-check.md +106 -0
- package/agents/planner.md +143 -0
- package/agents/playwright.md +68 -0
- package/agents/research.md +52 -0
- package/agents/security.md +88 -0
- package/agents/style-reviewer.md +85 -0
- package/agents/test.md +206 -0
- package/agents/ui-consistency.md +75 -0
- package/dist/manifest.d.ts +2 -0
- package/dist/manifest.js +34 -0
- package/dist/manifest.js.map +1 -0
- package/dist/src/bundle.d.ts +2 -0
- package/dist/src/bundle.js +424 -0
- package/dist/src/bundle.js.map +1 -0
- package/dist/src/index.d.ts +5 -0
- package/dist/src/index.js +14 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/invariants.d.ts +10 -0
- package/dist/src/invariants.js +208 -0
- package/dist/src/invariants.js.map +1 -0
- package/dist/src/policy-resolver.d.ts +2 -0
- package/dist/src/policy-resolver.js +65 -0
- package/dist/src/policy-resolver.js.map +1 -0
- package/dist/src/sandbox-rules.d.ts +2 -0
- package/dist/src/sandbox-rules.js +40 -0
- package/dist/src/sandbox-rules.js.map +1 -0
- package/dist/test/bundle.test.d.ts +1 -0
- package/dist/test/bundle.test.js +289 -0
- package/dist/test/bundle.test.js.map +1 -0
- package/dist/test/sandbox-rules.test.d.ts +1 -0
- package/dist/test/sandbox-rules.test.js +73 -0
- package/dist/test/sandbox-rules.test.js.map +1 -0
- package/knowledge/references/api-design.md +188 -0
- package/knowledge/references/arch-patterns.md +106 -0
- package/knowledge/references/caching.md +190 -0
- package/knowledge/references/concurrency.md +195 -0
- package/knowledge/references/db-postgres.md +153 -0
- package/knowledge/references/e2e-flutter.md +56 -0
- package/knowledge/references/e2e-playwright.md +53 -0
- package/knowledge/references/error-handling.md +208 -0
- package/knowledge/references/next-app-router.md +231 -0
- package/knowledge/references/observability.md +169 -0
- package/knowledge/references/optimization-strategy.md +197 -0
- package/knowledge/references/perf-flutter.md +62 -0
- package/knowledge/references/perf-nestjs.md +59 -0
- package/knowledge/references/perf-python.md +50 -0
- package/knowledge/references/perf-react.md +52 -0
- package/knowledge/references/react19.md +176 -0
- package/knowledge/references/redis.md +175 -0
- package/knowledge/references/security-backend.md +219 -0
- package/knowledge/references/test-flutter.md +65 -0
- package/knowledge/references/test-nestjs.md +82 -0
- package/knowledge/references/test-python.md +76 -0
- package/knowledge/references/test-react.md +66 -0
- package/knowledge/references/test-strategy.md +175 -0
- package/knowledge/references/ui-flutter.md +56 -0
- package/knowledge/references/ui-web.md +51 -0
- package/package.json +34 -0
- package/schemas/agent-feedback.schema.json +80 -0
- package/schemas/category-vocab.json +170 -0
- package/schemas/classifier-output.schema.json +53 -0
- package/schemas/finding.schema.json +92 -0
- package/schemas/pipeline-state.schema.json +238 -0
- package/schemas/reviewer-output.schema.json +62 -0
- package/schemas/state-extension.schema.json +53 -0
- package/schemas/validator-output.schema.json +48 -0
- package/stack-candidates.yaml +248 -0
|
@@ -0,0 +1,248 @@
|
|
|
1
|
+
# Stack-detection candidate registry (v2.2.6).
|
|
2
|
+
#
|
|
3
|
+
# Single source of truth for languages, package managers, default test/lint/
|
|
4
|
+
# build commands, and project-type heuristics. Editing this file = adding
|
|
5
|
+
# language/PM/command support to the pipeline. NO TypeScript edit required.
|
|
6
|
+
#
|
|
7
|
+
# Consumed by:
|
|
8
|
+
# mcp/src/lib/stack-candidates.ts — Zod-validated loader (singleton)
|
|
9
|
+
# mcp/src/driver/bundles/code/decisions/stack-detect.ts — deterministic
|
|
10
|
+
# resolver (gatherStackSignals + resolveStack)
|
|
11
|
+
# agents/classifier.md — classifier-agent uses candidates to pick stack
|
|
12
|
+
#
|
|
13
|
+
# Glob patterns in `signal_files` use micromatch-style globs. The resolver
|
|
14
|
+
# uses simple suffix/prefix matching ("*.csproj", "tsconfig.*.json") so keep
|
|
15
|
+
# patterns conservative.
|
|
16
|
+
|
|
17
|
+
languages:
|
|
18
|
+
# Specific frameworks first: Svelte projects use package.json too, but
|
|
19
|
+
# `svelte.config.*` is a stronger signal than the generic package.json
|
|
20
|
+
# that ts/js fall back on.
|
|
21
|
+
- name: svelte
|
|
22
|
+
signal_files: ["svelte.config.js", "svelte.config.ts"]
|
|
23
|
+
extensions: [".svelte"]
|
|
24
|
+
- name: typescript
|
|
25
|
+
signal_files: ["tsconfig.json", "tsconfig.*.json"]
|
|
26
|
+
extensions: [".ts", ".tsx"]
|
|
27
|
+
- name: javascript
|
|
28
|
+
signal_files: ["package.json"]
|
|
29
|
+
extensions: [".js", ".jsx", ".mjs", ".cjs"]
|
|
30
|
+
- name: python
|
|
31
|
+
signal_files: ["pyproject.toml", "setup.py", "setup.cfg", "requirements.txt"]
|
|
32
|
+
extensions: [".py"]
|
|
33
|
+
- name: rust
|
|
34
|
+
signal_files: ["Cargo.toml"]
|
|
35
|
+
extensions: [".rs"]
|
|
36
|
+
- name: go
|
|
37
|
+
signal_files: ["go.mod"]
|
|
38
|
+
extensions: [".go"]
|
|
39
|
+
- name: csharp
|
|
40
|
+
signal_files: ["*.csproj", "*.sln", "global.json"]
|
|
41
|
+
extensions: [".cs"]
|
|
42
|
+
- name: elixir
|
|
43
|
+
signal_files: ["mix.exs"]
|
|
44
|
+
extensions: [".ex", ".exs"]
|
|
45
|
+
- name: dart
|
|
46
|
+
signal_files: ["pubspec.yaml"]
|
|
47
|
+
extensions: [".dart"]
|
|
48
|
+
|
|
49
|
+
package_managers:
|
|
50
|
+
- name: pnpm
|
|
51
|
+
languages: [typescript, javascript]
|
|
52
|
+
signal_files: ["pnpm-lock.yaml", "pnpm-workspace.yaml"]
|
|
53
|
+
package_json_field_prefix: "pnpm@"
|
|
54
|
+
- name: yarn
|
|
55
|
+
languages: [typescript, javascript]
|
|
56
|
+
signal_files: ["yarn.lock"]
|
|
57
|
+
package_json_field_prefix: "yarn@"
|
|
58
|
+
- name: bun
|
|
59
|
+
languages: [typescript, javascript]
|
|
60
|
+
signal_files: ["bun.lockb"]
|
|
61
|
+
package_json_field_prefix: "bun@"
|
|
62
|
+
# npm is the fall-through default for Node ecosystems: comes LAST in the
|
|
63
|
+
# list so pnpm/yarn/bun signals fire first when present. Including
|
|
64
|
+
# `package.json` ensures any Node project gets a PM picked even when no
|
|
65
|
+
# lockfile / packageManager field is present.
|
|
66
|
+
- name: npm
|
|
67
|
+
languages: [typescript, javascript]
|
|
68
|
+
signal_files: ["package-lock.json", "package.json"]
|
|
69
|
+
package_json_field_prefix: "npm@"
|
|
70
|
+
- name: uv
|
|
71
|
+
languages: [python]
|
|
72
|
+
signal_files: ["uv.lock"]
|
|
73
|
+
- name: poetry
|
|
74
|
+
languages: [python]
|
|
75
|
+
signal_files: ["poetry.lock"]
|
|
76
|
+
- name: pip
|
|
77
|
+
languages: [python]
|
|
78
|
+
signal_files: ["requirements.txt", "pyproject.toml", "setup.py", "setup.cfg"]
|
|
79
|
+
- name: cargo
|
|
80
|
+
languages: [rust]
|
|
81
|
+
signal_files: ["Cargo.toml"]
|
|
82
|
+
- name: go
|
|
83
|
+
languages: [go]
|
|
84
|
+
signal_files: ["go.mod"]
|
|
85
|
+
- name: dotnet
|
|
86
|
+
languages: [csharp]
|
|
87
|
+
signal_files: ["*.csproj", "*.sln"]
|
|
88
|
+
- name: mix
|
|
89
|
+
languages: [elixir]
|
|
90
|
+
signal_files: ["mix.exs"]
|
|
91
|
+
- name: pub
|
|
92
|
+
languages: [dart]
|
|
93
|
+
signal_files: ["pubspec.yaml"]
|
|
94
|
+
|
|
95
|
+
# Default command shapes per (language, package_manager). Pipeline picks
|
|
96
|
+
# language-default if pm is null. CLAUDE.md overrides win over both.
|
|
97
|
+
default_commands:
|
|
98
|
+
- language: typescript
|
|
99
|
+
package_manager: pnpm
|
|
100
|
+
test: "pnpm test"
|
|
101
|
+
lint: "pnpm lint"
|
|
102
|
+
build: "pnpm build"
|
|
103
|
+
- language: typescript
|
|
104
|
+
package_manager: yarn
|
|
105
|
+
test: "yarn test"
|
|
106
|
+
lint: "yarn lint"
|
|
107
|
+
build: "yarn build"
|
|
108
|
+
- language: typescript
|
|
109
|
+
package_manager: bun
|
|
110
|
+
test: "bun run test"
|
|
111
|
+
lint: "bun run lint"
|
|
112
|
+
build: "bun run build"
|
|
113
|
+
- language: typescript
|
|
114
|
+
package_manager: npm
|
|
115
|
+
test: "npm run test"
|
|
116
|
+
lint: "npm run lint"
|
|
117
|
+
build: "npm run build"
|
|
118
|
+
- language: javascript
|
|
119
|
+
package_manager: pnpm
|
|
120
|
+
test: "pnpm test"
|
|
121
|
+
lint: "pnpm lint"
|
|
122
|
+
build: "pnpm build"
|
|
123
|
+
- language: javascript
|
|
124
|
+
package_manager: yarn
|
|
125
|
+
test: "yarn test"
|
|
126
|
+
lint: "yarn lint"
|
|
127
|
+
build: "yarn build"
|
|
128
|
+
- language: javascript
|
|
129
|
+
package_manager: bun
|
|
130
|
+
test: "bun run test"
|
|
131
|
+
lint: "bun run lint"
|
|
132
|
+
build: "bun run build"
|
|
133
|
+
- language: javascript
|
|
134
|
+
package_manager: npm
|
|
135
|
+
test: "npm run test"
|
|
136
|
+
lint: "npm run lint"
|
|
137
|
+
build: "npm run build"
|
|
138
|
+
- language: python
|
|
139
|
+
package_manager: poetry
|
|
140
|
+
test: "poetry run pytest"
|
|
141
|
+
lint: "poetry run ruff check"
|
|
142
|
+
build: null
|
|
143
|
+
- language: python
|
|
144
|
+
package_manager: uv
|
|
145
|
+
test: "uv run pytest"
|
|
146
|
+
lint: "uv run ruff check"
|
|
147
|
+
build: null
|
|
148
|
+
- language: python
|
|
149
|
+
package_manager: pip
|
|
150
|
+
test: "pytest"
|
|
151
|
+
lint: "ruff check"
|
|
152
|
+
build: null
|
|
153
|
+
- language: rust
|
|
154
|
+
package_manager: cargo
|
|
155
|
+
test: "cargo test"
|
|
156
|
+
lint: "cargo clippy"
|
|
157
|
+
build: "cargo build"
|
|
158
|
+
- language: go
|
|
159
|
+
package_manager: go
|
|
160
|
+
test: "go test ./..."
|
|
161
|
+
lint: "go vet ./..."
|
|
162
|
+
build: "go build ./..."
|
|
163
|
+
- language: csharp
|
|
164
|
+
package_manager: dotnet
|
|
165
|
+
test: "dotnet test"
|
|
166
|
+
lint: "dotnet format --verify-no-changes"
|
|
167
|
+
build: "dotnet build"
|
|
168
|
+
- language: svelte
|
|
169
|
+
package_manager: pnpm
|
|
170
|
+
test: "pnpm test"
|
|
171
|
+
lint: "pnpm lint"
|
|
172
|
+
build: "pnpm build"
|
|
173
|
+
- language: svelte
|
|
174
|
+
package_manager: npm
|
|
175
|
+
test: "npm test"
|
|
176
|
+
lint: "npm run lint"
|
|
177
|
+
build: "npm run build"
|
|
178
|
+
- language: elixir
|
|
179
|
+
package_manager: mix
|
|
180
|
+
test: "mix test"
|
|
181
|
+
lint: "mix credo"
|
|
182
|
+
build: "mix compile"
|
|
183
|
+
- language: dart
|
|
184
|
+
package_manager: pub
|
|
185
|
+
test: "flutter test"
|
|
186
|
+
lint: "dart analyze"
|
|
187
|
+
build: null
|
|
188
|
+
|
|
189
|
+
# Project-type heuristics. First entry whose ANY non-empty match-category
|
|
190
|
+
# fires wins. Categories: signal_files (file in project), package_json_deps
|
|
191
|
+
# (entry in deps/devDependencies), languages (detected language matches).
|
|
192
|
+
# Used when classifier-agent is unavailable; classifier may override.
|
|
193
|
+
project_type_signals:
|
|
194
|
+
# 1. Strong positive frontend signal — wins over monorepo + library defaults.
|
|
195
|
+
- type: frontend-app
|
|
196
|
+
signal_files:
|
|
197
|
+
- "next.config.js"
|
|
198
|
+
- "next.config.ts"
|
|
199
|
+
- "next.config.mjs"
|
|
200
|
+
- "vite.config.js"
|
|
201
|
+
- "vite.config.ts"
|
|
202
|
+
- "vite.config.mjs"
|
|
203
|
+
- "rsbuild.config.js"
|
|
204
|
+
- "rsbuild.config.ts"
|
|
205
|
+
- "angular.json"
|
|
206
|
+
- "svelte.config.js"
|
|
207
|
+
- "svelte.config.ts"
|
|
208
|
+
- "remix.config.js"
|
|
209
|
+
- "remix.config.ts"
|
|
210
|
+
- "nuxt.config.js"
|
|
211
|
+
- "nuxt.config.ts"
|
|
212
|
+
- "astro.config.mjs"
|
|
213
|
+
- "astro.config.ts"
|
|
214
|
+
package_json_deps:
|
|
215
|
+
- "next"
|
|
216
|
+
- "vite"
|
|
217
|
+
- "react-dom"
|
|
218
|
+
- "@angular/core"
|
|
219
|
+
- "@sveltejs/kit"
|
|
220
|
+
- "remix"
|
|
221
|
+
- "astro"
|
|
222
|
+
- "vue"
|
|
223
|
+
|
|
224
|
+
# 2. Strong positive backend signal via package.json deps.
|
|
225
|
+
- type: backend
|
|
226
|
+
package_json_deps:
|
|
227
|
+
- "@nestjs/core"
|
|
228
|
+
- "express"
|
|
229
|
+
- "fastify"
|
|
230
|
+
- "@hapi/hapi"
|
|
231
|
+
- "koa"
|
|
232
|
+
- "hono"
|
|
233
|
+
|
|
234
|
+
# 3. Monorepo markers (fires only when no positive frontend/backend matched).
|
|
235
|
+
- type: monorepo
|
|
236
|
+
signal_files:
|
|
237
|
+
- "pnpm-workspace.yaml"
|
|
238
|
+
- "lerna.json"
|
|
239
|
+
- "nx.json"
|
|
240
|
+
- "turbo.json"
|
|
241
|
+
|
|
242
|
+
# 4. Per-language defaults (when no positive signal fired).
|
|
243
|
+
- type: frontend-app
|
|
244
|
+
languages: [svelte, dart]
|
|
245
|
+
- type: backend
|
|
246
|
+
languages: [python, go, csharp, elixir]
|
|
247
|
+
- type: library
|
|
248
|
+
languages: [rust, typescript, javascript]
|