@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.
Files changed (81) hide show
  1. package/LICENSE +201 -0
  2. package/agents/acceptance.md +141 -0
  3. package/agents/api-contract.md +89 -0
  4. package/agents/architect.md +52 -0
  5. package/agents/challenger-reviewer.md +104 -0
  6. package/agents/classifier.md +74 -0
  7. package/agents/code-analyzer.md +43 -0
  8. package/agents/context-doc-verifier.md +94 -0
  9. package/agents/dependency-auditor.md +42 -0
  10. package/agents/implementer.md +135 -0
  11. package/agents/logic-reviewer.md +132 -0
  12. package/agents/migration.md +55 -0
  13. package/agents/performance.md +95 -0
  14. package/agents/plan-conformance.md +127 -0
  15. package/agents/plan-grounding-check.md +106 -0
  16. package/agents/planner.md +143 -0
  17. package/agents/playwright.md +68 -0
  18. package/agents/research.md +52 -0
  19. package/agents/security.md +88 -0
  20. package/agents/style-reviewer.md +85 -0
  21. package/agents/test.md +206 -0
  22. package/agents/ui-consistency.md +75 -0
  23. package/dist/manifest.d.ts +2 -0
  24. package/dist/manifest.js +34 -0
  25. package/dist/manifest.js.map +1 -0
  26. package/dist/src/bundle.d.ts +2 -0
  27. package/dist/src/bundle.js +424 -0
  28. package/dist/src/bundle.js.map +1 -0
  29. package/dist/src/index.d.ts +5 -0
  30. package/dist/src/index.js +14 -0
  31. package/dist/src/index.js.map +1 -0
  32. package/dist/src/invariants.d.ts +10 -0
  33. package/dist/src/invariants.js +208 -0
  34. package/dist/src/invariants.js.map +1 -0
  35. package/dist/src/policy-resolver.d.ts +2 -0
  36. package/dist/src/policy-resolver.js +65 -0
  37. package/dist/src/policy-resolver.js.map +1 -0
  38. package/dist/src/sandbox-rules.d.ts +2 -0
  39. package/dist/src/sandbox-rules.js +40 -0
  40. package/dist/src/sandbox-rules.js.map +1 -0
  41. package/dist/test/bundle.test.d.ts +1 -0
  42. package/dist/test/bundle.test.js +289 -0
  43. package/dist/test/bundle.test.js.map +1 -0
  44. package/dist/test/sandbox-rules.test.d.ts +1 -0
  45. package/dist/test/sandbox-rules.test.js +73 -0
  46. package/dist/test/sandbox-rules.test.js.map +1 -0
  47. package/knowledge/references/api-design.md +188 -0
  48. package/knowledge/references/arch-patterns.md +106 -0
  49. package/knowledge/references/caching.md +190 -0
  50. package/knowledge/references/concurrency.md +195 -0
  51. package/knowledge/references/db-postgres.md +153 -0
  52. package/knowledge/references/e2e-flutter.md +56 -0
  53. package/knowledge/references/e2e-playwright.md +53 -0
  54. package/knowledge/references/error-handling.md +208 -0
  55. package/knowledge/references/next-app-router.md +231 -0
  56. package/knowledge/references/observability.md +169 -0
  57. package/knowledge/references/optimization-strategy.md +197 -0
  58. package/knowledge/references/perf-flutter.md +62 -0
  59. package/knowledge/references/perf-nestjs.md +59 -0
  60. package/knowledge/references/perf-python.md +50 -0
  61. package/knowledge/references/perf-react.md +52 -0
  62. package/knowledge/references/react19.md +176 -0
  63. package/knowledge/references/redis.md +175 -0
  64. package/knowledge/references/security-backend.md +219 -0
  65. package/knowledge/references/test-flutter.md +65 -0
  66. package/knowledge/references/test-nestjs.md +82 -0
  67. package/knowledge/references/test-python.md +76 -0
  68. package/knowledge/references/test-react.md +66 -0
  69. package/knowledge/references/test-strategy.md +175 -0
  70. package/knowledge/references/ui-flutter.md +56 -0
  71. package/knowledge/references/ui-web.md +51 -0
  72. package/package.json +34 -0
  73. package/schemas/agent-feedback.schema.json +80 -0
  74. package/schemas/category-vocab.json +170 -0
  75. package/schemas/classifier-output.schema.json +53 -0
  76. package/schemas/finding.schema.json +92 -0
  77. package/schemas/pipeline-state.schema.json +238 -0
  78. package/schemas/reviewer-output.schema.json +62 -0
  79. package/schemas/state-extension.schema.json +53 -0
  80. package/schemas/validator-output.schema.json +48 -0
  81. 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]