@kb-labs/shared 1.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/.cursorrules +32 -0
- package/.github/workflows/ci.yml +13 -0
- package/.github/workflows/deploy.yml +28 -0
- package/.github/workflows/docker-build.yml +25 -0
- package/.github/workflows/drift-check.yml +10 -0
- package/.github/workflows/profiles-validate.yml +16 -0
- package/.github/workflows/release.yml +8 -0
- package/.kb/devkit/agents/devkit-maintainer/context.globs +15 -0
- package/.kb/devkit/agents/devkit-maintainer/permissions.yml +17 -0
- package/.kb/devkit/agents/devkit-maintainer/prompt.md +28 -0
- package/.kb/devkit/agents/devkit-maintainer/runbook.md +31 -0
- package/.kb/devkit/agents/docs-crafter/prompt.md +24 -0
- package/.kb/devkit/agents/docs-crafter/runbook.md +18 -0
- package/.kb/devkit/agents/release-manager/context.globs +7 -0
- package/.kb/devkit/agents/release-manager/prompt.md +27 -0
- package/.kb/devkit/agents/release-manager/runbook.md +17 -0
- package/.kb/devkit/agents/test-generator/context.globs +7 -0
- package/.kb/devkit/agents/test-generator/prompt.md +27 -0
- package/.kb/devkit/agents/test-generator/runbook.md +18 -0
- package/.vscode/settings.json +23 -0
- package/CHANGELOG.md +33 -0
- package/CONTRIBUTING.md +117 -0
- package/LICENSE +21 -0
- package/README.md +306 -0
- package/docs/DECLARATIVE-FLAGS-AND-ENV.md +622 -0
- package/docs/DOCUMENTATION.md +70 -0
- package/docs/adr/0000-template.md +52 -0
- package/docs/adr/0001-architecture-and-repository-layout.md +31 -0
- package/docs/adr/0002-plugins-and-extensibility.md +44 -0
- package/docs/adr/0003-package-and-module-boundaries.md +35 -0
- package/docs/adr/0004-versioning-and-release-policy.md +36 -0
- package/docs/adr/0005-reactive-loader-pattern.md +179 -0
- package/docs/adr/0006-declarative-flags-and-env-systems.md +376 -0
- package/eslint.config.js +27 -0
- package/kb-labs.config.json +5 -0
- package/package.json +88 -0
- package/package.json.bin +25 -0
- package/package.json.lib +30 -0
- package/packages/shared-cli-ui/CHANGELOG.md +20 -0
- package/packages/shared-cli-ui/README.md +342 -0
- package/packages/shared-cli-ui/docs/ARCHITECTURE.md +105 -0
- package/packages/shared-cli-ui/eslint.config.js +27 -0
- package/packages/shared-cli-ui/package.json +72 -0
- package/packages/shared-cli-ui/src/__tests__/artifacts-display.spec.ts +89 -0
- package/packages/shared-cli-ui/src/__tests__/format.spec.ts +44 -0
- package/packages/shared-cli-ui/src/__tests__/loader-json-mode.test.ts +119 -0
- package/packages/shared-cli-ui/src/artifacts-display.ts +266 -0
- package/packages/shared-cli-ui/src/cli-auto-discovery.ts +120 -0
- package/packages/shared-cli-ui/src/colors.ts +142 -0
- package/packages/shared-cli-ui/src/command-discovery.ts +72 -0
- package/packages/shared-cli-ui/src/command-output.ts +153 -0
- package/packages/shared-cli-ui/src/command-result.ts +267 -0
- package/packages/shared-cli-ui/src/command-runner.ts +310 -0
- package/packages/shared-cli-ui/src/command-suggestions.ts +204 -0
- package/packages/shared-cli-ui/src/debug/components/output.ts +141 -0
- package/packages/shared-cli-ui/src/debug/components/trace.ts +101 -0
- package/packages/shared-cli-ui/src/debug/components/tree.ts +88 -0
- package/packages/shared-cli-ui/src/debug/formatters/ai.ts +17 -0
- package/packages/shared-cli-ui/src/debug/formatters/human.ts +98 -0
- package/packages/shared-cli-ui/src/debug/formatters/timeline.ts +94 -0
- package/packages/shared-cli-ui/src/debug/index.ts +56 -0
- package/packages/shared-cli-ui/src/debug/types.ts +57 -0
- package/packages/shared-cli-ui/src/debug/utilities.ts +203 -0
- package/packages/shared-cli-ui/src/dynamic-command-discovery.ts +131 -0
- package/packages/shared-cli-ui/src/format.ts +412 -0
- package/packages/shared-cli-ui/src/index.ts +34 -0
- package/packages/shared-cli-ui/src/loader.ts +196 -0
- package/packages/shared-cli-ui/src/manifest-parser.ts +151 -0
- package/packages/shared-cli-ui/src/modern-format.ts +271 -0
- package/packages/shared-cli-ui/src/multi-cli-suggestions.ts +159 -0
- package/packages/shared-cli-ui/src/table.ts +134 -0
- package/packages/shared-cli-ui/src/timing-tracker.ts +68 -0
- package/packages/shared-cli-ui/src/utils/context.ts +12 -0
- package/packages/shared-cli-ui/src/utils/env.ts +164 -0
- package/packages/shared-cli-ui/src/utils/flags.ts +269 -0
- package/packages/shared-cli-ui/src/utils/path.ts +8 -0
- package/packages/shared-cli-ui/tsconfig.build.json +15 -0
- package/packages/shared-cli-ui/tsconfig.json +9 -0
- package/packages/shared-cli-ui/tsup.config.ts +11 -0
- package/packages/shared-cli-ui/vitest.config.ts +15 -0
- package/packages/shared-command-kit/CHANGELOG.md +20 -0
- package/packages/shared-command-kit/LICENSE +22 -0
- package/packages/shared-command-kit/README.md +1030 -0
- package/packages/shared-command-kit/docs/HIGH-LEVEL-API.md +89 -0
- package/packages/shared-command-kit/docs/LOW-LEVEL-API.md +105 -0
- package/packages/shared-command-kit/docs/MIGRATION-GUIDE.md +135 -0
- package/packages/shared-command-kit/eslint.config.js +27 -0
- package/packages/shared-command-kit/eslint.config.ts +14 -0
- package/packages/shared-command-kit/package.json +76 -0
- package/packages/shared-command-kit/prettierrc.json +5 -0
- package/packages/shared-command-kit/src/__tests__/define-command.spec.ts +294 -0
- package/packages/shared-command-kit/src/__tests__/define-route.test.ts +285 -0
- package/packages/shared-command-kit/src/__tests__/define-system-command.spec.ts +508 -0
- package/packages/shared-command-kit/src/__tests__/define-webhook.test.ts +156 -0
- package/packages/shared-command-kit/src/__tests__/define-websocket.test.ts +316 -0
- package/packages/shared-command-kit/src/__tests__/errors.spec.ts +45 -0
- package/packages/shared-command-kit/src/__tests__/flags.spec.ts +353 -0
- package/packages/shared-command-kit/src/__tests__/platform-api.test.ts +135 -0
- package/packages/shared-command-kit/src/__tests__/plugin-context-v3.snapshot.spec.ts +240 -0
- package/packages/shared-command-kit/src/__tests__/ws-types.test.ts +359 -0
- package/packages/shared-command-kit/src/analytics/index.ts +6 -0
- package/packages/shared-command-kit/src/analytics/with-analytics.ts +195 -0
- package/packages/shared-command-kit/src/define-action.ts +100 -0
- package/packages/shared-command-kit/src/define-command.ts +113 -0
- package/packages/shared-command-kit/src/define-route.ts +113 -0
- package/packages/shared-command-kit/src/define-system-command.ts +362 -0
- package/packages/shared-command-kit/src/define-webhook.ts +115 -0
- package/packages/shared-command-kit/src/define-websocket.ts +308 -0
- package/packages/shared-command-kit/src/errors/factory.ts +282 -0
- package/packages/shared-command-kit/src/errors/format-validation.ts +144 -0
- package/packages/shared-command-kit/src/errors/format.ts +92 -0
- package/packages/shared-command-kit/src/errors/index.ts +9 -0
- package/packages/shared-command-kit/src/errors/types.ts +32 -0
- package/packages/shared-command-kit/src/flags/define.ts +92 -0
- package/packages/shared-command-kit/src/flags/index.ts +9 -0
- package/packages/shared-command-kit/src/flags/types.ts +153 -0
- package/packages/shared-command-kit/src/flags/validate.ts +358 -0
- package/packages/shared-command-kit/src/helpers/context.ts +8 -0
- package/packages/shared-command-kit/src/helpers/flags.ts +84 -0
- package/packages/shared-command-kit/src/helpers/index.ts +42 -0
- package/packages/shared-command-kit/src/helpers/patterns.ts +464 -0
- package/packages/shared-command-kit/src/helpers/platform.ts +335 -0
- package/packages/shared-command-kit/src/helpers/use-analytics.ts +95 -0
- package/packages/shared-command-kit/src/helpers/use-cache.ts +97 -0
- package/packages/shared-command-kit/src/helpers/use-config.ts +99 -0
- package/packages/shared-command-kit/src/helpers/use-embeddings.ts +49 -0
- package/packages/shared-command-kit/src/helpers/use-llm.ts +316 -0
- package/packages/shared-command-kit/src/helpers/use-logger.ts +77 -0
- package/packages/shared-command-kit/src/helpers/use-platform.ts +111 -0
- package/packages/shared-command-kit/src/helpers/use-resource-broker.ts +106 -0
- package/packages/shared-command-kit/src/helpers/use-storage.ts +71 -0
- package/packages/shared-command-kit/src/helpers/use-vector-store.ts +49 -0
- package/packages/shared-command-kit/src/helpers/validation.ts +398 -0
- package/packages/shared-command-kit/src/index.ts +410 -0
- package/packages/shared-command-kit/src/jobs.ts +132 -0
- package/packages/shared-command-kit/src/lifecycle/define-handlers.ts +366 -0
- package/packages/shared-command-kit/src/lifecycle/index.ts +6 -0
- package/packages/shared-command-kit/src/manifest.ts +127 -0
- package/packages/shared-command-kit/src/rest/define-handler.ts +187 -0
- package/packages/shared-command-kit/src/rest/index.ts +11 -0
- package/packages/shared-command-kit/src/studio/index.ts +12 -0
- package/packages/shared-command-kit/src/validation/index.ts +6 -0
- package/packages/shared-command-kit/src/validation/schema-builders.ts +409 -0
- package/packages/shared-command-kit/src/ws-types.ts +106 -0
- package/packages/shared-command-kit/tsconfig.build.json +15 -0
- package/packages/shared-command-kit/tsconfig.json +9 -0
- package/packages/shared-command-kit/tsup.config.ts +30 -0
- package/packages/shared-command-kit/vitest.config.ts +4 -0
- package/packages/shared-http/package.json +67 -0
- package/packages/shared-http/src/__tests__/log-correlation.test.ts +81 -0
- package/packages/shared-http/src/__tests__/operation-metrics-tracker.test.ts +55 -0
- package/packages/shared-http/src/http-observability-collector.ts +363 -0
- package/packages/shared-http/src/index.ts +36 -0
- package/packages/shared-http/src/log-correlation.ts +89 -0
- package/packages/shared-http/src/operation-metrics-tracker.ts +107 -0
- package/packages/shared-http/src/register-openapi.ts +108 -0
- package/packages/shared-http/src/resolve-schema-ref.ts +75 -0
- package/packages/shared-http/src/schemas.ts +29 -0
- package/packages/shared-http/src/service-observability.ts +63 -0
- package/packages/shared-http/tsconfig.build.json +15 -0
- package/packages/shared-http/tsconfig.json +9 -0
- package/packages/shared-http/tsup.config.ts +23 -0
- package/packages/shared-http/vitest.config.ts +13 -0
- package/packages/shared-perm-presets/CHANGELOG.md +20 -0
- package/packages/shared-perm-presets/README.md +78 -0
- package/packages/shared-perm-presets/eslint.config.js +27 -0
- package/packages/shared-perm-presets/package.json +45 -0
- package/packages/shared-perm-presets/src/__tests__/combine.test.ts +403 -0
- package/packages/shared-perm-presets/src/__tests__/presets.test.ts +205 -0
- package/packages/shared-perm-presets/src/combine.ts +278 -0
- package/packages/shared-perm-presets/src/index.ts +18 -0
- package/packages/shared-perm-presets/src/presets/ci-environment.ts +34 -0
- package/packages/shared-perm-presets/src/presets/full-env.ts +16 -0
- package/packages/shared-perm-presets/src/presets/git-workflow.ts +40 -0
- package/packages/shared-perm-presets/src/presets/index.ts +8 -0
- package/packages/shared-perm-presets/src/presets/kb-platform.ts +30 -0
- package/packages/shared-perm-presets/src/presets/llm-access.ts +29 -0
- package/packages/shared-perm-presets/src/presets/minimal.ts +21 -0
- package/packages/shared-perm-presets/src/presets/npm-publish.ts +48 -0
- package/packages/shared-perm-presets/src/presets/vector-store.ts +40 -0
- package/packages/shared-perm-presets/src/types.ts +192 -0
- package/packages/shared-perm-presets/tsconfig.build.json +15 -0
- package/packages/shared-perm-presets/tsconfig.json +9 -0
- package/packages/shared-perm-presets/tsup.config.ts +8 -0
- package/packages/shared-perm-presets/vitest.config.ts +9 -0
- package/packages/shared-testing/CHANGELOG.md +20 -0
- package/packages/shared-testing/README.md +430 -0
- package/packages/shared-testing/package.json +51 -0
- package/packages/shared-testing/src/__tests__/create-test-context.test.ts +199 -0
- package/packages/shared-testing/src/__tests__/mock-cache.test.ts +174 -0
- package/packages/shared-testing/src/__tests__/mock-llm.test.ts +212 -0
- package/packages/shared-testing/src/__tests__/setup-platform.test.ts +90 -0
- package/packages/shared-testing/src/__tests__/test-command.test.ts +557 -0
- package/packages/shared-testing/src/create-test-context.ts +550 -0
- package/packages/shared-testing/src/index.ts +77 -0
- package/packages/shared-testing/src/mock-cache.ts +179 -0
- package/packages/shared-testing/src/mock-llm.ts +319 -0
- package/packages/shared-testing/src/mock-logger.ts +97 -0
- package/packages/shared-testing/src/mock-storage.ts +108 -0
- package/packages/shared-testing/src/setup-platform.ts +101 -0
- package/packages/shared-testing/src/test-command.ts +288 -0
- package/packages/shared-testing/tsconfig.build.json +15 -0
- package/packages/shared-testing/tsconfig.json +9 -0
- package/packages/shared-testing/tsup.config.ts +20 -0
- package/packages/shared-testing/vitest.config.ts +3 -0
- package/packages/shared-tool-kit/CHANGELOG.md +20 -0
- package/packages/shared-tool-kit/package.json +47 -0
- package/packages/shared-tool-kit/src/__tests__/factory.test.ts +103 -0
- package/packages/shared-tool-kit/src/__tests__/mock-tool.test.ts +95 -0
- package/packages/shared-tool-kit/src/factory.ts +126 -0
- package/packages/shared-tool-kit/src/index.ts +32 -0
- package/packages/shared-tool-kit/src/testing/index.ts +84 -0
- package/packages/shared-tool-kit/tsconfig.build.json +15 -0
- package/packages/shared-tool-kit/tsconfig.json +9 -0
- package/packages/shared-tool-kit/tsup.config.ts +21 -0
- package/pnpm-workspace.yaml +11070 -0
- package/prettierrc.json +1 -0
- package/scripts/devkit-sync.mjs +37 -0
- package/scripts/hooks/post-push +9 -0
- package/scripts/hooks/pre-commit +9 -0
- package/scripts/hooks/pre-push +9 -0
- package/tsconfig.base.json +9 -0
- package/tsconfig.build.json +15 -0
- package/tsconfig.json +9 -0
- package/tsconfig.paths.json +50 -0
- package/tsconfig.tools.json +18 -0
- package/tsup.config.bin.ts +34 -0
- package/tsup.config.cli.ts +41 -0
- package/tsup.config.dual.ts +46 -0
- package/tsup.config.ts +36 -0
- package/tsup.external.json +104 -0
- package/vitest.config.ts +48 -0
package/README.md
ADDED
|
@@ -0,0 +1,306 @@
|
|
|
1
|
+
# Standard Configuration Templates
|
|
2
|
+
|
|
3
|
+
This directory contains canonical configuration templates for all `@kb-labs` packages.
|
|
4
|
+
|
|
5
|
+
## 📋 Available Templates
|
|
6
|
+
|
|
7
|
+
### Core Configs (All Packages)
|
|
8
|
+
|
|
9
|
+
| File | Purpose | Required | Customizable |
|
|
10
|
+
|------|---------|----------|--------------|
|
|
11
|
+
| **eslint.config.js** | Linting rules | ✅ Yes | ⚠️ Minimal |
|
|
12
|
+
| **tsconfig.json** | TypeScript IDE config | ✅ Yes | ❌ No |
|
|
13
|
+
| **tsconfig.build.json** | TypeScript build config | ✅ Yes | ❌ No |
|
|
14
|
+
|
|
15
|
+
### Tsup Configs (Choose ONE based on package type)
|
|
16
|
+
|
|
17
|
+
| Template | Package Type | Use Cases |
|
|
18
|
+
|----------|--------------|-----------|
|
|
19
|
+
| **tsup.config.ts** | 📦 **Library** (default) | Most packages, importable libraries |
|
|
20
|
+
| **tsup.config.bin.ts** | 🔧 **Binary** | Standalone executables, CLI bins |
|
|
21
|
+
| **tsup.config.cli.ts** | ⌨️ **CLI** | CLI packages with commands |
|
|
22
|
+
| **tsup.config.dual.ts** | 📦🔧 **Library + Binary** | Packages with both API and bin |
|
|
23
|
+
|
|
24
|
+
### Package.json Examples
|
|
25
|
+
|
|
26
|
+
| Template | Purpose |
|
|
27
|
+
|----------|---------|
|
|
28
|
+
| **package.json.lib** | Library package example |
|
|
29
|
+
| **package.json.bin** | Binary package example |
|
|
30
|
+
|
|
31
|
+
## 🎯 Philosophy
|
|
32
|
+
|
|
33
|
+
**Convention over Configuration**
|
|
34
|
+
|
|
35
|
+
All `@kb-labs` packages MUST use these exact templates with minimal customization. This ensures:
|
|
36
|
+
|
|
37
|
+
- ✅ Consistent build output across all packages
|
|
38
|
+
- ✅ Predictable dependency resolution
|
|
39
|
+
- ✅ Unified linting standards
|
|
40
|
+
- ✅ Easy maintenance and upgrades
|
|
41
|
+
|
|
42
|
+
## 📦 Usage
|
|
43
|
+
|
|
44
|
+
### For New Packages
|
|
45
|
+
|
|
46
|
+
#### Step 1: Choose Package Type
|
|
47
|
+
|
|
48
|
+
**Library Package** (most common):
|
|
49
|
+
```bash
|
|
50
|
+
cp kb-labs-devkit/templates/configs/tsup.config.ts your-package/
|
|
51
|
+
cp kb-labs-devkit/templates/configs/eslint.config.js your-package/
|
|
52
|
+
cp kb-labs-devkit/templates/configs/tsconfig*.json your-package/
|
|
53
|
+
cp kb-labs-devkit/templates/configs/package.json.lib your-package/package.json
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
**Binary Package** (standalone executables):
|
|
57
|
+
```bash
|
|
58
|
+
cp kb-labs-devkit/templates/configs/tsup.config.bin.ts your-package/tsup.config.ts
|
|
59
|
+
cp kb-labs-devkit/templates/configs/eslint.config.js your-package/
|
|
60
|
+
cp kb-labs-devkit/templates/configs/tsconfig*.json your-package/
|
|
61
|
+
cp kb-labs-devkit/templates/configs/package.json.bin your-package/package.json
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
**CLI Package** (command handlers):
|
|
65
|
+
```bash
|
|
66
|
+
cp kb-labs-devkit/templates/configs/tsup.config.cli.ts your-package/tsup.config.ts
|
|
67
|
+
cp kb-labs-devkit/templates/configs/eslint.config.js your-package/
|
|
68
|
+
cp kb-labs-devkit/templates/configs/tsconfig*.json your-package/
|
|
69
|
+
cp kb-labs-devkit/templates/configs/package.json.lib your-package/package.json
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
**Dual Package** (library + binary):
|
|
73
|
+
```bash
|
|
74
|
+
cp kb-labs-devkit/templates/configs/tsup.config.dual.ts your-package/tsup.config.ts
|
|
75
|
+
cp kb-labs-devkit/templates/configs/eslint.config.js your-package/
|
|
76
|
+
cp kb-labs-devkit/templates/configs/tsconfig*.json your-package/
|
|
77
|
+
cp kb-labs-devkit/templates/configs/package.json.lib your-package/package.json
|
|
78
|
+
# Then add "bin" field to package.json
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
#### Step 2: Customize Package Name
|
|
82
|
+
```bash
|
|
83
|
+
# Edit package.json and update name, description
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
### For Existing Packages
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
# Check for drift
|
|
90
|
+
npx kb-devkit-check-configs
|
|
91
|
+
|
|
92
|
+
# Auto-fix drift
|
|
93
|
+
npx kb-devkit-check-configs --fix
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
## 🔧 Customization Rules
|
|
97
|
+
|
|
98
|
+
### tsup.config.ts
|
|
99
|
+
|
|
100
|
+
**Allowed customizations:**
|
|
101
|
+
|
|
102
|
+
```typescript
|
|
103
|
+
export default defineConfig({
|
|
104
|
+
...nodePreset,
|
|
105
|
+
tsconfig: 'tsconfig.build.json', // ✅ Always required
|
|
106
|
+
|
|
107
|
+
// ✅ OK: Multiple entry points
|
|
108
|
+
entry: ['src/index.ts', 'src/cli.ts'],
|
|
109
|
+
|
|
110
|
+
// ✅ OK: Extra external deps (if really needed)
|
|
111
|
+
external: ['special-native-module'],
|
|
112
|
+
|
|
113
|
+
dts: true, // ✅ Always required
|
|
114
|
+
});
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
**NOT allowed:**
|
|
118
|
+
|
|
119
|
+
```typescript
|
|
120
|
+
// ❌ WRONG: Don't override preset settings
|
|
121
|
+
export default defineConfig({
|
|
122
|
+
format: ['esm'], // Already in preset!
|
|
123
|
+
target: 'es2022', // Already in preset!
|
|
124
|
+
sourcemap: true, // Already in preset!
|
|
125
|
+
// ...
|
|
126
|
+
});
|
|
127
|
+
|
|
128
|
+
// ❌ WRONG: Don't disable types
|
|
129
|
+
dts: false,
|
|
130
|
+
|
|
131
|
+
// ❌ WRONG: Don't duplicate external deps
|
|
132
|
+
external: [
|
|
133
|
+
'@kb-labs/core', // Already in preset!
|
|
134
|
+
'@kb-labs/cli', // Already in preset!
|
|
135
|
+
],
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
### eslint.config.js
|
|
139
|
+
|
|
140
|
+
**Allowed customizations:**
|
|
141
|
+
|
|
142
|
+
```javascript
|
|
143
|
+
export default [
|
|
144
|
+
...nodePreset,
|
|
145
|
+
{
|
|
146
|
+
// ✅ OK: Project-specific ignores only
|
|
147
|
+
ignores: ['**/*.generated.ts']
|
|
148
|
+
}
|
|
149
|
+
];
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
**NOT allowed:**
|
|
153
|
+
|
|
154
|
+
```javascript
|
|
155
|
+
// ❌ WRONG: Don't duplicate preset ignores
|
|
156
|
+
export default [
|
|
157
|
+
...nodePreset,
|
|
158
|
+
{
|
|
159
|
+
ignores: [
|
|
160
|
+
'**/dist/**', // Already in preset!
|
|
161
|
+
'**/node_modules/**', // Already in preset!
|
|
162
|
+
]
|
|
163
|
+
}
|
|
164
|
+
];
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
### tsconfig.json & tsconfig.build.json
|
|
168
|
+
|
|
169
|
+
**NOT customizable!**
|
|
170
|
+
|
|
171
|
+
These files MUST remain identical to templates. All TypeScript configuration is standardized in DevKit presets.
|
|
172
|
+
|
|
173
|
+
```json
|
|
174
|
+
// ❌ WRONG: Don't override extends
|
|
175
|
+
{
|
|
176
|
+
"extends": "./my-custom-base.json"
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
// ❌ WRONG: Don't add compilerOptions
|
|
180
|
+
{
|
|
181
|
+
"extends": "@kb-labs/devkit/tsconfig/node.json",
|
|
182
|
+
"compilerOptions": {
|
|
183
|
+
"strict": false // Don't override preset!
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
## 🔍 Drift Detection
|
|
189
|
+
|
|
190
|
+
DevKit automatically detects configuration drift:
|
|
191
|
+
|
|
192
|
+
```bash
|
|
193
|
+
# Check all packages
|
|
194
|
+
npx kb-devkit-check-configs
|
|
195
|
+
|
|
196
|
+
# Check specific package
|
|
197
|
+
npx kb-devkit-check-configs --package=@kb-labs/core
|
|
198
|
+
|
|
199
|
+
# Auto-fix (creates backup)
|
|
200
|
+
npx kb-devkit-check-configs --fix
|
|
201
|
+
|
|
202
|
+
# CI mode (fail on drift)
|
|
203
|
+
npx kb-devkit-check-configs --ci
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
### Drift Detection Rules
|
|
207
|
+
|
|
208
|
+
| Issue | Severity | Auto-fix |
|
|
209
|
+
|-------|----------|----------|
|
|
210
|
+
| Missing `dts: true` | 🔴 Error | ✅ Yes |
|
|
211
|
+
| Using `dts: false` | 🔴 Error | ✅ Yes |
|
|
212
|
+
| Not using `nodePreset` | 🔴 Error | ⚠️ Manual |
|
|
213
|
+
| Duplicate `external` | 🟡 Warning | ✅ Yes |
|
|
214
|
+
| Duplicate `ignores` | 🟡 Warning | ✅ Yes |
|
|
215
|
+
| Missing templates | 🔴 Error | ✅ Yes |
|
|
216
|
+
| Modified templates | 🔴 Error | ⚠️ Manual |
|
|
217
|
+
|
|
218
|
+
## 📚 Examples
|
|
219
|
+
|
|
220
|
+
### ✅ Good Example (Minimal Package)
|
|
221
|
+
|
|
222
|
+
```typescript
|
|
223
|
+
// tsup.config.ts
|
|
224
|
+
import { defineConfig } from 'tsup';
|
|
225
|
+
import nodePreset from '@kb-labs/devkit/tsup/node.js';
|
|
226
|
+
|
|
227
|
+
export default defineConfig({
|
|
228
|
+
...nodePreset,
|
|
229
|
+
tsconfig: 'tsconfig.build.json',
|
|
230
|
+
entry: ['src/index.ts'],
|
|
231
|
+
dts: true,
|
|
232
|
+
});
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
### ✅ Good Example (CLI Package with Multiple Entries)
|
|
236
|
+
|
|
237
|
+
```typescript
|
|
238
|
+
// tsup.config.ts
|
|
239
|
+
import { defineConfig } from 'tsup';
|
|
240
|
+
import nodePreset from '@kb-labs/devkit/tsup/node.js';
|
|
241
|
+
|
|
242
|
+
export default defineConfig({
|
|
243
|
+
...nodePreset,
|
|
244
|
+
tsconfig: 'tsconfig.build.json',
|
|
245
|
+
entry: [
|
|
246
|
+
'src/index.ts',
|
|
247
|
+
'src/cli/index.ts',
|
|
248
|
+
'src/cli/commands/build.ts',
|
|
249
|
+
'src/cli/commands/test.ts',
|
|
250
|
+
],
|
|
251
|
+
dts: true,
|
|
252
|
+
});
|
|
253
|
+
```
|
|
254
|
+
|
|
255
|
+
### ❌ Bad Example (Over-configured)
|
|
256
|
+
|
|
257
|
+
```typescript
|
|
258
|
+
// tsup.config.ts
|
|
259
|
+
import { defineConfig } from 'tsup';
|
|
260
|
+
|
|
261
|
+
// ❌ Not using preset!
|
|
262
|
+
export default defineConfig({
|
|
263
|
+
format: ['esm'],
|
|
264
|
+
target: 'es2022',
|
|
265
|
+
sourcemap: true,
|
|
266
|
+
clean: true,
|
|
267
|
+
dts: true,
|
|
268
|
+
entry: ['src/index.ts'],
|
|
269
|
+
external: [/^@kb-labs\/.*/], // Manual external
|
|
270
|
+
});
|
|
271
|
+
```
|
|
272
|
+
|
|
273
|
+
## 🚀 Migration Guide
|
|
274
|
+
|
|
275
|
+
### From Custom Config to Standard Template
|
|
276
|
+
|
|
277
|
+
1. **Backup your current config**
|
|
278
|
+
```bash
|
|
279
|
+
cp tsup.config.ts tsup.config.ts.backup
|
|
280
|
+
```
|
|
281
|
+
|
|
282
|
+
2. **Copy standard template**
|
|
283
|
+
```bash
|
|
284
|
+
cp kb-labs-devkit/templates/configs/tsup.config.ts .
|
|
285
|
+
```
|
|
286
|
+
|
|
287
|
+
3. **Migrate customizations** (only if needed)
|
|
288
|
+
- Compare your backup with template
|
|
289
|
+
- Extract only truly necessary customizations
|
|
290
|
+
- Add them with comments explaining why
|
|
291
|
+
|
|
292
|
+
4. **Test build**
|
|
293
|
+
```bash
|
|
294
|
+
pnpm run build
|
|
295
|
+
```
|
|
296
|
+
|
|
297
|
+
5. **Verify types**
|
|
298
|
+
```bash
|
|
299
|
+
npx kb-devkit-check-types
|
|
300
|
+
```
|
|
301
|
+
|
|
302
|
+
## 🔗 Related
|
|
303
|
+
|
|
304
|
+
- [DevKit README](../../README.md)
|
|
305
|
+
- [DevKit Usage Guide](../../USAGE_GUIDE.md)
|
|
306
|
+
- [ADR-0009: Unified Build Convention](../../docs/adr/0009-unified-build-convention.md)
|