@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.
Files changed (232) hide show
  1. package/.cursorrules +32 -0
  2. package/.github/workflows/ci.yml +13 -0
  3. package/.github/workflows/deploy.yml +28 -0
  4. package/.github/workflows/docker-build.yml +25 -0
  5. package/.github/workflows/drift-check.yml +10 -0
  6. package/.github/workflows/profiles-validate.yml +16 -0
  7. package/.github/workflows/release.yml +8 -0
  8. package/.kb/devkit/agents/devkit-maintainer/context.globs +15 -0
  9. package/.kb/devkit/agents/devkit-maintainer/permissions.yml +17 -0
  10. package/.kb/devkit/agents/devkit-maintainer/prompt.md +28 -0
  11. package/.kb/devkit/agents/devkit-maintainer/runbook.md +31 -0
  12. package/.kb/devkit/agents/docs-crafter/prompt.md +24 -0
  13. package/.kb/devkit/agents/docs-crafter/runbook.md +18 -0
  14. package/.kb/devkit/agents/release-manager/context.globs +7 -0
  15. package/.kb/devkit/agents/release-manager/prompt.md +27 -0
  16. package/.kb/devkit/agents/release-manager/runbook.md +17 -0
  17. package/.kb/devkit/agents/test-generator/context.globs +7 -0
  18. package/.kb/devkit/agents/test-generator/prompt.md +27 -0
  19. package/.kb/devkit/agents/test-generator/runbook.md +18 -0
  20. package/.vscode/settings.json +23 -0
  21. package/CHANGELOG.md +33 -0
  22. package/CONTRIBUTING.md +117 -0
  23. package/LICENSE +21 -0
  24. package/README.md +306 -0
  25. package/docs/DECLARATIVE-FLAGS-AND-ENV.md +622 -0
  26. package/docs/DOCUMENTATION.md +70 -0
  27. package/docs/adr/0000-template.md +52 -0
  28. package/docs/adr/0001-architecture-and-repository-layout.md +31 -0
  29. package/docs/adr/0002-plugins-and-extensibility.md +44 -0
  30. package/docs/adr/0003-package-and-module-boundaries.md +35 -0
  31. package/docs/adr/0004-versioning-and-release-policy.md +36 -0
  32. package/docs/adr/0005-reactive-loader-pattern.md +179 -0
  33. package/docs/adr/0006-declarative-flags-and-env-systems.md +376 -0
  34. package/eslint.config.js +27 -0
  35. package/kb-labs.config.json +5 -0
  36. package/package.json +88 -0
  37. package/package.json.bin +25 -0
  38. package/package.json.lib +30 -0
  39. package/packages/shared-cli-ui/CHANGELOG.md +20 -0
  40. package/packages/shared-cli-ui/README.md +342 -0
  41. package/packages/shared-cli-ui/docs/ARCHITECTURE.md +105 -0
  42. package/packages/shared-cli-ui/eslint.config.js +27 -0
  43. package/packages/shared-cli-ui/package.json +72 -0
  44. package/packages/shared-cli-ui/src/__tests__/artifacts-display.spec.ts +89 -0
  45. package/packages/shared-cli-ui/src/__tests__/format.spec.ts +44 -0
  46. package/packages/shared-cli-ui/src/__tests__/loader-json-mode.test.ts +119 -0
  47. package/packages/shared-cli-ui/src/artifacts-display.ts +266 -0
  48. package/packages/shared-cli-ui/src/cli-auto-discovery.ts +120 -0
  49. package/packages/shared-cli-ui/src/colors.ts +142 -0
  50. package/packages/shared-cli-ui/src/command-discovery.ts +72 -0
  51. package/packages/shared-cli-ui/src/command-output.ts +153 -0
  52. package/packages/shared-cli-ui/src/command-result.ts +267 -0
  53. package/packages/shared-cli-ui/src/command-runner.ts +310 -0
  54. package/packages/shared-cli-ui/src/command-suggestions.ts +204 -0
  55. package/packages/shared-cli-ui/src/debug/components/output.ts +141 -0
  56. package/packages/shared-cli-ui/src/debug/components/trace.ts +101 -0
  57. package/packages/shared-cli-ui/src/debug/components/tree.ts +88 -0
  58. package/packages/shared-cli-ui/src/debug/formatters/ai.ts +17 -0
  59. package/packages/shared-cli-ui/src/debug/formatters/human.ts +98 -0
  60. package/packages/shared-cli-ui/src/debug/formatters/timeline.ts +94 -0
  61. package/packages/shared-cli-ui/src/debug/index.ts +56 -0
  62. package/packages/shared-cli-ui/src/debug/types.ts +57 -0
  63. package/packages/shared-cli-ui/src/debug/utilities.ts +203 -0
  64. package/packages/shared-cli-ui/src/dynamic-command-discovery.ts +131 -0
  65. package/packages/shared-cli-ui/src/format.ts +412 -0
  66. package/packages/shared-cli-ui/src/index.ts +34 -0
  67. package/packages/shared-cli-ui/src/loader.ts +196 -0
  68. package/packages/shared-cli-ui/src/manifest-parser.ts +151 -0
  69. package/packages/shared-cli-ui/src/modern-format.ts +271 -0
  70. package/packages/shared-cli-ui/src/multi-cli-suggestions.ts +159 -0
  71. package/packages/shared-cli-ui/src/table.ts +134 -0
  72. package/packages/shared-cli-ui/src/timing-tracker.ts +68 -0
  73. package/packages/shared-cli-ui/src/utils/context.ts +12 -0
  74. package/packages/shared-cli-ui/src/utils/env.ts +164 -0
  75. package/packages/shared-cli-ui/src/utils/flags.ts +269 -0
  76. package/packages/shared-cli-ui/src/utils/path.ts +8 -0
  77. package/packages/shared-cli-ui/tsconfig.build.json +15 -0
  78. package/packages/shared-cli-ui/tsconfig.json +9 -0
  79. package/packages/shared-cli-ui/tsup.config.ts +11 -0
  80. package/packages/shared-cli-ui/vitest.config.ts +15 -0
  81. package/packages/shared-command-kit/CHANGELOG.md +20 -0
  82. package/packages/shared-command-kit/LICENSE +22 -0
  83. package/packages/shared-command-kit/README.md +1030 -0
  84. package/packages/shared-command-kit/docs/HIGH-LEVEL-API.md +89 -0
  85. package/packages/shared-command-kit/docs/LOW-LEVEL-API.md +105 -0
  86. package/packages/shared-command-kit/docs/MIGRATION-GUIDE.md +135 -0
  87. package/packages/shared-command-kit/eslint.config.js +27 -0
  88. package/packages/shared-command-kit/eslint.config.ts +14 -0
  89. package/packages/shared-command-kit/package.json +76 -0
  90. package/packages/shared-command-kit/prettierrc.json +5 -0
  91. package/packages/shared-command-kit/src/__tests__/define-command.spec.ts +294 -0
  92. package/packages/shared-command-kit/src/__tests__/define-route.test.ts +285 -0
  93. package/packages/shared-command-kit/src/__tests__/define-system-command.spec.ts +508 -0
  94. package/packages/shared-command-kit/src/__tests__/define-webhook.test.ts +156 -0
  95. package/packages/shared-command-kit/src/__tests__/define-websocket.test.ts +316 -0
  96. package/packages/shared-command-kit/src/__tests__/errors.spec.ts +45 -0
  97. package/packages/shared-command-kit/src/__tests__/flags.spec.ts +353 -0
  98. package/packages/shared-command-kit/src/__tests__/platform-api.test.ts +135 -0
  99. package/packages/shared-command-kit/src/__tests__/plugin-context-v3.snapshot.spec.ts +240 -0
  100. package/packages/shared-command-kit/src/__tests__/ws-types.test.ts +359 -0
  101. package/packages/shared-command-kit/src/analytics/index.ts +6 -0
  102. package/packages/shared-command-kit/src/analytics/with-analytics.ts +195 -0
  103. package/packages/shared-command-kit/src/define-action.ts +100 -0
  104. package/packages/shared-command-kit/src/define-command.ts +113 -0
  105. package/packages/shared-command-kit/src/define-route.ts +113 -0
  106. package/packages/shared-command-kit/src/define-system-command.ts +362 -0
  107. package/packages/shared-command-kit/src/define-webhook.ts +115 -0
  108. package/packages/shared-command-kit/src/define-websocket.ts +308 -0
  109. package/packages/shared-command-kit/src/errors/factory.ts +282 -0
  110. package/packages/shared-command-kit/src/errors/format-validation.ts +144 -0
  111. package/packages/shared-command-kit/src/errors/format.ts +92 -0
  112. package/packages/shared-command-kit/src/errors/index.ts +9 -0
  113. package/packages/shared-command-kit/src/errors/types.ts +32 -0
  114. package/packages/shared-command-kit/src/flags/define.ts +92 -0
  115. package/packages/shared-command-kit/src/flags/index.ts +9 -0
  116. package/packages/shared-command-kit/src/flags/types.ts +153 -0
  117. package/packages/shared-command-kit/src/flags/validate.ts +358 -0
  118. package/packages/shared-command-kit/src/helpers/context.ts +8 -0
  119. package/packages/shared-command-kit/src/helpers/flags.ts +84 -0
  120. package/packages/shared-command-kit/src/helpers/index.ts +42 -0
  121. package/packages/shared-command-kit/src/helpers/patterns.ts +464 -0
  122. package/packages/shared-command-kit/src/helpers/platform.ts +335 -0
  123. package/packages/shared-command-kit/src/helpers/use-analytics.ts +95 -0
  124. package/packages/shared-command-kit/src/helpers/use-cache.ts +97 -0
  125. package/packages/shared-command-kit/src/helpers/use-config.ts +99 -0
  126. package/packages/shared-command-kit/src/helpers/use-embeddings.ts +49 -0
  127. package/packages/shared-command-kit/src/helpers/use-llm.ts +316 -0
  128. package/packages/shared-command-kit/src/helpers/use-logger.ts +77 -0
  129. package/packages/shared-command-kit/src/helpers/use-platform.ts +111 -0
  130. package/packages/shared-command-kit/src/helpers/use-resource-broker.ts +106 -0
  131. package/packages/shared-command-kit/src/helpers/use-storage.ts +71 -0
  132. package/packages/shared-command-kit/src/helpers/use-vector-store.ts +49 -0
  133. package/packages/shared-command-kit/src/helpers/validation.ts +398 -0
  134. package/packages/shared-command-kit/src/index.ts +410 -0
  135. package/packages/shared-command-kit/src/jobs.ts +132 -0
  136. package/packages/shared-command-kit/src/lifecycle/define-handlers.ts +366 -0
  137. package/packages/shared-command-kit/src/lifecycle/index.ts +6 -0
  138. package/packages/shared-command-kit/src/manifest.ts +127 -0
  139. package/packages/shared-command-kit/src/rest/define-handler.ts +187 -0
  140. package/packages/shared-command-kit/src/rest/index.ts +11 -0
  141. package/packages/shared-command-kit/src/studio/index.ts +12 -0
  142. package/packages/shared-command-kit/src/validation/index.ts +6 -0
  143. package/packages/shared-command-kit/src/validation/schema-builders.ts +409 -0
  144. package/packages/shared-command-kit/src/ws-types.ts +106 -0
  145. package/packages/shared-command-kit/tsconfig.build.json +15 -0
  146. package/packages/shared-command-kit/tsconfig.json +9 -0
  147. package/packages/shared-command-kit/tsup.config.ts +30 -0
  148. package/packages/shared-command-kit/vitest.config.ts +4 -0
  149. package/packages/shared-http/package.json +67 -0
  150. package/packages/shared-http/src/__tests__/log-correlation.test.ts +81 -0
  151. package/packages/shared-http/src/__tests__/operation-metrics-tracker.test.ts +55 -0
  152. package/packages/shared-http/src/http-observability-collector.ts +363 -0
  153. package/packages/shared-http/src/index.ts +36 -0
  154. package/packages/shared-http/src/log-correlation.ts +89 -0
  155. package/packages/shared-http/src/operation-metrics-tracker.ts +107 -0
  156. package/packages/shared-http/src/register-openapi.ts +108 -0
  157. package/packages/shared-http/src/resolve-schema-ref.ts +75 -0
  158. package/packages/shared-http/src/schemas.ts +29 -0
  159. package/packages/shared-http/src/service-observability.ts +63 -0
  160. package/packages/shared-http/tsconfig.build.json +15 -0
  161. package/packages/shared-http/tsconfig.json +9 -0
  162. package/packages/shared-http/tsup.config.ts +23 -0
  163. package/packages/shared-http/vitest.config.ts +13 -0
  164. package/packages/shared-perm-presets/CHANGELOG.md +20 -0
  165. package/packages/shared-perm-presets/README.md +78 -0
  166. package/packages/shared-perm-presets/eslint.config.js +27 -0
  167. package/packages/shared-perm-presets/package.json +45 -0
  168. package/packages/shared-perm-presets/src/__tests__/combine.test.ts +403 -0
  169. package/packages/shared-perm-presets/src/__tests__/presets.test.ts +205 -0
  170. package/packages/shared-perm-presets/src/combine.ts +278 -0
  171. package/packages/shared-perm-presets/src/index.ts +18 -0
  172. package/packages/shared-perm-presets/src/presets/ci-environment.ts +34 -0
  173. package/packages/shared-perm-presets/src/presets/full-env.ts +16 -0
  174. package/packages/shared-perm-presets/src/presets/git-workflow.ts +40 -0
  175. package/packages/shared-perm-presets/src/presets/index.ts +8 -0
  176. package/packages/shared-perm-presets/src/presets/kb-platform.ts +30 -0
  177. package/packages/shared-perm-presets/src/presets/llm-access.ts +29 -0
  178. package/packages/shared-perm-presets/src/presets/minimal.ts +21 -0
  179. package/packages/shared-perm-presets/src/presets/npm-publish.ts +48 -0
  180. package/packages/shared-perm-presets/src/presets/vector-store.ts +40 -0
  181. package/packages/shared-perm-presets/src/types.ts +192 -0
  182. package/packages/shared-perm-presets/tsconfig.build.json +15 -0
  183. package/packages/shared-perm-presets/tsconfig.json +9 -0
  184. package/packages/shared-perm-presets/tsup.config.ts +8 -0
  185. package/packages/shared-perm-presets/vitest.config.ts +9 -0
  186. package/packages/shared-testing/CHANGELOG.md +20 -0
  187. package/packages/shared-testing/README.md +430 -0
  188. package/packages/shared-testing/package.json +51 -0
  189. package/packages/shared-testing/src/__tests__/create-test-context.test.ts +199 -0
  190. package/packages/shared-testing/src/__tests__/mock-cache.test.ts +174 -0
  191. package/packages/shared-testing/src/__tests__/mock-llm.test.ts +212 -0
  192. package/packages/shared-testing/src/__tests__/setup-platform.test.ts +90 -0
  193. package/packages/shared-testing/src/__tests__/test-command.test.ts +557 -0
  194. package/packages/shared-testing/src/create-test-context.ts +550 -0
  195. package/packages/shared-testing/src/index.ts +77 -0
  196. package/packages/shared-testing/src/mock-cache.ts +179 -0
  197. package/packages/shared-testing/src/mock-llm.ts +319 -0
  198. package/packages/shared-testing/src/mock-logger.ts +97 -0
  199. package/packages/shared-testing/src/mock-storage.ts +108 -0
  200. package/packages/shared-testing/src/setup-platform.ts +101 -0
  201. package/packages/shared-testing/src/test-command.ts +288 -0
  202. package/packages/shared-testing/tsconfig.build.json +15 -0
  203. package/packages/shared-testing/tsconfig.json +9 -0
  204. package/packages/shared-testing/tsup.config.ts +20 -0
  205. package/packages/shared-testing/vitest.config.ts +3 -0
  206. package/packages/shared-tool-kit/CHANGELOG.md +20 -0
  207. package/packages/shared-tool-kit/package.json +47 -0
  208. package/packages/shared-tool-kit/src/__tests__/factory.test.ts +103 -0
  209. package/packages/shared-tool-kit/src/__tests__/mock-tool.test.ts +95 -0
  210. package/packages/shared-tool-kit/src/factory.ts +126 -0
  211. package/packages/shared-tool-kit/src/index.ts +32 -0
  212. package/packages/shared-tool-kit/src/testing/index.ts +84 -0
  213. package/packages/shared-tool-kit/tsconfig.build.json +15 -0
  214. package/packages/shared-tool-kit/tsconfig.json +9 -0
  215. package/packages/shared-tool-kit/tsup.config.ts +21 -0
  216. package/pnpm-workspace.yaml +11070 -0
  217. package/prettierrc.json +1 -0
  218. package/scripts/devkit-sync.mjs +37 -0
  219. package/scripts/hooks/post-push +9 -0
  220. package/scripts/hooks/pre-commit +9 -0
  221. package/scripts/hooks/pre-push +9 -0
  222. package/tsconfig.base.json +9 -0
  223. package/tsconfig.build.json +15 -0
  224. package/tsconfig.json +9 -0
  225. package/tsconfig.paths.json +50 -0
  226. package/tsconfig.tools.json +18 -0
  227. package/tsup.config.bin.ts +34 -0
  228. package/tsup.config.cli.ts +41 -0
  229. package/tsup.config.dual.ts +46 -0
  230. package/tsup.config.ts +36 -0
  231. package/tsup.external.json +104 -0
  232. package/vitest.config.ts +48 -0
@@ -0,0 +1 @@
1
+ { "extends": "@kb-labs/devkit/prettier" }
@@ -0,0 +1,37 @@
1
+ #!/usr/bin/env node
2
+ import { resolve } from 'node:path';
3
+ import { access } from 'node:fs/promises';
4
+ import { spawn } from 'node:child_process';
5
+
6
+ async function tryApi(args) {
7
+ try {
8
+ const mod = await import('@kb-labs/devkit/sync');
9
+ if (typeof mod.run === 'function') {
10
+ const code = await mod.run({ args });
11
+ if (typeof code === 'number' && code !== 0) process.exit(code);
12
+ return true;
13
+ }
14
+ } catch { }
15
+ return false;
16
+ }
17
+
18
+ async function tryBin(args) {
19
+ const isWin = process.platform === 'win32';
20
+ const binName = isWin ? 'kb-devkit-sync.cmd' : 'kb-devkit-sync';
21
+ const binPath = resolve(process.cwd(), 'node_modules', '.bin', binName);
22
+ try { await access(binPath); } catch { return false; }
23
+
24
+ await new Promise((res, rej) => {
25
+ const cp = spawn(binPath, args, { stdio: 'inherit', shell: false });
26
+ cp.on('close', (code) => (code === 0 ? res() : rej(Object.assign(new Error('sync failed'), { code }))));
27
+ });
28
+ return true;
29
+ }
30
+
31
+ (async () => {
32
+ const args = process.argv.slice(2);
33
+ if (await tryApi(args)) process.exit(0);
34
+ if (await tryBin(args)) process.exit(0);
35
+ console.error('[devkit-sync] DevKit is not installed. Add @kb-labs/devkit to devDependencies.');
36
+ process.exit(1);
37
+ })();
@@ -0,0 +1,9 @@
1
+ #!/usr/bin/env bash
2
+ # Post-push hook — managed by kb-labs-devkit, do not edit manually.
3
+ #
4
+ # Note: DevLink undo was removed here — npm switch no longer runs
5
+ # during push, so there is nothing to restore. npm mode is only
6
+ # used during `npm publish` (managed by Release Manager).
7
+
8
+ # No-op for now. Add project-specific post-push actions here if needed.
9
+ exit 0
@@ -0,0 +1,9 @@
1
+ #!/usr/bin/env bash
2
+ # Pre-commit hook — managed by kb-labs-devkit, do not edit manually.
3
+ #
4
+ # Note: DevLink npm switch was removed — npm mode is only needed
5
+ # for `npm publish`, not for git commits. Release Manager handles
6
+ # the npm switch during the publish flow.
7
+
8
+ # No-op for now. Add project-specific pre-commit checks here if needed.
9
+ exit 0
@@ -0,0 +1,9 @@
1
+ #!/usr/bin/env bash
2
+ # Pre-push hook — managed by kb-labs-devkit, do not edit manually.
3
+ #
4
+ # Note: DevLink npm switch was removed — git push only contains
5
+ # submodule pointers or source code, not published package.json.
6
+ # npm mode switch is only needed during `npm publish` (Release Manager).
7
+
8
+ # No-op for now. Add project-specific pre-push checks here if needed.
9
+ exit 0
@@ -0,0 +1,9 @@
1
+ {
2
+ "extends": [
3
+ "@kb-labs/devkit/tsconfig/base.json",
4
+ "./tsconfig.paths.json"
5
+ ],
6
+ "compilerOptions": {
7
+ "baseUrl": "."
8
+ }
9
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "extends": "tsconfig.base.json",
3
+ "compilerOptions": {
4
+ "outDir": "dist",
5
+ "baseUrl": ".",
6
+ "paths": {}
7
+ },
8
+ "include": [
9
+ "src/**/*"
10
+ ],
11
+ "exclude": [
12
+ "dist",
13
+ "node_modules"
14
+ ]
15
+ }
package/tsconfig.json ADDED
@@ -0,0 +1,9 @@
1
+ {
2
+ "$schema": "https://json.schemastore.org/tsconfig",
3
+ "extends": "@kb-labs/devkit/tsconfig/node.json",
4
+ "compilerOptions": {
5
+ "rootDir": "src",
6
+ "outDir": "dist"
7
+ },
8
+ "include": ["src"]
9
+ }
@@ -0,0 +1,50 @@
1
+ {
2
+ "$schema": "https://json.schemastore.org/tsconfig",
3
+ "compilerOptions": {
4
+ "baseUrl": ".",
5
+ "paths": {
6
+ "@kb-labs/core-platform": [
7
+ "../kb-labs-core/packages/core-platform/src/index.ts"
8
+ ],
9
+ "@kb-labs/core-platform/*": [
10
+ "../kb-labs-core/packages/core-platform/src/*"
11
+ ],
12
+ "@kb-labs/core-resource-broker": [
13
+ "../kb-labs-core/packages/core-resource-broker/src/index.ts"
14
+ ],
15
+ "@kb-labs/core-resource-broker/*": [
16
+ "../kb-labs-core/packages/core-resource-broker/src/*"
17
+ ],
18
+ "@kb-labs/core-runtime": [
19
+ "../kb-labs-core/packages/core-runtime/src/index.ts"
20
+ ],
21
+ "@kb-labs/core-runtime/*": [
22
+ "../kb-labs-core/packages/core-runtime/src/*"
23
+ ],
24
+ "@kb-labs/plugin-contracts": [
25
+ "../../infra/kb-labs-plugin/packages/plugin-contracts/src/index.ts"
26
+ ],
27
+ "@kb-labs/plugin-contracts/*": [
28
+ "../../infra/kb-labs-plugin/packages/plugin-contracts/src/*"
29
+ ],
30
+ "@kb-labs/plugin-runtime": [
31
+ "../../infra/kb-labs-plugin/packages/plugin-runtime/src/index.ts"
32
+ ],
33
+ "@kb-labs/plugin-runtime/*": [
34
+ "../../infra/kb-labs-plugin/packages/plugin-runtime/src/*"
35
+ ],
36
+ "@kb-labs/shared-cli-ui": [
37
+ "packages/shared-cli-ui/src/index.ts"
38
+ ],
39
+ "@kb-labs/shared-cli-ui/*": [
40
+ "packages/shared-cli-ui/src/*"
41
+ ],
42
+ "@kb-labs/studio-contracts": [
43
+ "../kb-labs-studio/packages/studio-contracts/src/index.ts"
44
+ ],
45
+ "@kb-labs/studio-contracts/*": [
46
+ "../kb-labs-studio/packages/studio-contracts/src/*"
47
+ ]
48
+ }
49
+ }
50
+ }
@@ -0,0 +1,18 @@
1
+ {
2
+ "extends": "@kb-labs/devkit/tsconfig/node.json",
3
+ "files": [],
4
+ "references": [
5
+ { "path": "packages/shared-boundaries" },
6
+ { "path": "packages/shared-diff" },
7
+ { "path": "packages/profiles" },
8
+ { "path": "packages/shared-textops" },
9
+ { "path": "apps/demo" }
10
+ ],
11
+ "compilerOptions": {
12
+ "composite": false,
13
+ "declaration": false,
14
+ "declarationMap": false,
15
+ "emitDeclarationOnly": false,
16
+ "noEmit": true
17
+ }
18
+ }
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Standard tsup configuration template for CLI binaries
3
+ *
4
+ * This template is for packages that provide executable binaries.
5
+ * Examples: cli-bin, core-state-daemon, any standalone executables
6
+ *
7
+ * DO NOT modify this file locally - it is synced from @kb-labs/devkit
8
+ *
9
+ * Key differences from library template:
10
+ * - Uses binPreset instead of nodePreset
11
+ * - Bundles ALL dependencies into standalone executable
12
+ * - Outputs .cjs format (CommonJS)
13
+ * - No type generation (dts: false)
14
+ * - Adds shebang automatically
15
+ *
16
+ * @see https://github.com/kb-labs/devkit#binary-packages
17
+ */
18
+ import { defineConfig } from 'tsup';
19
+ import binPreset from '@kb-labs/devkit/tsup/bin.js';
20
+
21
+ export default defineConfig({
22
+ ...binPreset,
23
+
24
+ // REQUIRED: Use build-specific tsconfig (convention)
25
+ tsconfig: 'tsconfig.build.json',
26
+
27
+ // REQUIRED: Entry point for binary
28
+ // Output will be dist/bin.cjs
29
+ entry: { bin: 'src/bin.ts' },
30
+
31
+ // binPreset already sets dts: false (binaries don't need types)
32
+ // binPreset already adds shebang banner
33
+ // binPreset already bundles everything
34
+ });
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Standard tsup configuration template for CLI packages
3
+ *
4
+ * This template is for CLI packages that provide:
5
+ * - Multiple command handlers as separate entries
6
+ * - Importable from other packages (not bundled)
7
+ *
8
+ * Examples: cli-commands, mind-cli, workflow-cli
9
+ *
10
+ * DO NOT modify this file locally - it is synced from @kb-labs/devkit
11
+ *
12
+ * Key differences:
13
+ * - Multiple entry points for commands
14
+ * - NOT bundled (uses nodePreset)
15
+ * - Generates types (for other packages to import)
16
+ *
17
+ * @see https://github.com/kb-labs/devkit#cli-packages
18
+ */
19
+ import { defineConfig } from 'tsup';
20
+ import nodePreset from '@kb-labs/devkit/tsup/node.js';
21
+
22
+ export default defineConfig({
23
+ ...nodePreset,
24
+
25
+ // REQUIRED: Use build-specific tsconfig (convention)
26
+ tsconfig: 'tsconfig.build.json',
27
+
28
+ // REQUIRED: Multiple entries for CLI commands
29
+ entry: [
30
+ 'src/index.ts', // Main export
31
+ 'src/commands/**/*.ts', // All command files
32
+ // Add more entries as needed
33
+ ],
34
+
35
+ // REQUIRED: Explicit type generation
36
+ dts: true,
37
+
38
+ // OPTIONAL: CLI packages often have manifest files
39
+ // If you have manifest.json or similar, you might need to copy it:
40
+ // onSuccess: 'cp src/manifest.json dist/'
41
+ });
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Standard tsup configuration template for packages with BOTH library AND binary
3
+ *
4
+ * This template is for packages that provide:
5
+ * 1. A library (importable by other packages)
6
+ * 2. A CLI binary (executable)
7
+ *
8
+ * Examples: cli packages with both API and bin
9
+ *
10
+ * DO NOT modify this file locally - it is synced from @kb-labs/devkit
11
+ *
12
+ * Important: This builds BOTH lib and bin in one config.
13
+ * For complex cases, use separate configs (tsup.lib.config.ts + tsup.bin.config.ts)
14
+ *
15
+ * @see https://github.com/kb-labs/devkit#dual-packages
16
+ */
17
+ import { defineConfig } from 'tsup';
18
+ import nodePreset from '@kb-labs/devkit/tsup/node.js';
19
+
20
+ export default defineConfig([
21
+ // Library build (for imports)
22
+ {
23
+ ...nodePreset,
24
+ tsconfig: 'tsconfig.build.json',
25
+ entry: ['src/index.ts'], // Main library entry
26
+ dts: true,
27
+ },
28
+ // Binary build (for execution)
29
+ {
30
+ format: ['cjs'],
31
+ target: 'es2022',
32
+ platform: 'node',
33
+ sourcemap: true,
34
+ clean: false, // Already cleaned by first build
35
+ dts: false,
36
+ treeshake: true,
37
+ minify: false,
38
+ outDir: 'dist',
39
+ splitting: false,
40
+ noExternal: [/.*/], // Bundle everything
41
+ external: ['fsevents'], // Except native modules
42
+ banner: { js: '#!/usr/bin/env node' },
43
+ tsconfig: 'tsconfig.build.json',
44
+ entry: { bin: 'src/bin.ts' }, // Binary entry
45
+ },
46
+ ]);
package/tsup.config.ts ADDED
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Standard tsup configuration template
3
+ *
4
+ * This is the canonical template for all @kb-labs packages.
5
+ * DO NOT modify this file locally - it is synced from @kb-labs/devkit
6
+ *
7
+ * Customization guidelines:
8
+ * - For single entry point: use as-is
9
+ * - For multiple entry points: override `entry` array
10
+ * - For extra external deps: extend `external` array (only if needed!)
11
+ * - For special build needs: add minimal overrides, document why
12
+ *
13
+ * @see https://github.com/kb-labs/devkit#tsup-configuration
14
+ */
15
+ import { defineConfig } from 'tsup';
16
+ import nodePreset from '@kb-labs/devkit/tsup/node.js';
17
+
18
+ export default defineConfig({
19
+ ...nodePreset,
20
+
21
+ // REQUIRED: Use build-specific tsconfig (convention)
22
+ tsconfig: 'tsconfig.build.json',
23
+
24
+ // REQUIRED: Entry point(s)
25
+ // Single entry (most common):
26
+ entry: ['src/index.ts'],
27
+ // Multiple entries (if needed):
28
+ // entry: ['src/index.ts', 'src/cli/index.ts', 'src/api/index.ts'],
29
+
30
+ // REQUIRED: Explicit type generation
31
+ dts: true,
32
+
33
+ // OPTIONAL: Only add if you need EXTRA externals beyond nodePreset
34
+ // nodePreset already includes all @kb-labs/* packages + dependencies from package.json
35
+ // external: ['special-package-not-in-preset'],
36
+ });
@@ -0,0 +1,104 @@
1
+ {
2
+ "$schema": "https://json.schemastore.org/tsconfig",
3
+ "externals": [
4
+ "@kb-labs/ai-docs",
5
+ "@kb-labs/ai-docs-contracts",
6
+ "@kb-labs/ai-docs-plugin",
7
+ "@kb-labs/ai-review",
8
+ "@kb-labs/ai-review-contracts",
9
+ "@kb-labs/ai-review-core",
10
+ "@kb-labs/ai-review-plugin",
11
+ "@kb-labs/ai-review-providers",
12
+ "@kb-labs/ai-tests",
13
+ "@kb-labs/ai-tests-contracts",
14
+ "@kb-labs/ai-tests-plugin",
15
+ "@kb-labs/analytics-adapters",
16
+ "@kb-labs/analytics-cli",
17
+ "@kb-labs/analytics-core",
18
+ "@kb-labs/analytics-sdk-node",
19
+ "@kb-labs/rest-api-contracts",
20
+ "@kb-labs/audit",
21
+ "@kb-labs/audit-checks",
22
+ "@kb-labs/audit-cli",
23
+ "@kb-labs/audit-contracts",
24
+ "@kb-labs/audit-core",
25
+ "@kb-labs/release-manager-changelog",
26
+ "@kb-labs/cli",
27
+ "@kb-labs/cli-api",
28
+ "@kb-labs/cli-bin",
29
+ "@kb-labs/cli-commands",
30
+ "@kb-labs/cli-core",
31
+ "@kb-labs/cli-runtime",
32
+ "@kb-labs/core",
33
+ "@kb-labs/core-bundle",
34
+ "@kb-labs/core-cli",
35
+ "@kb-labs/core-cli-adapters",
36
+ "@kb-labs/core-config",
37
+ "@kb-labs/core-policy",
38
+ "@kb-labs/core-profiles",
39
+ "@kb-labs/core-sys",
40
+ "@kb-labs/core-types",
41
+ "@kb-labs/core-workspace",
42
+ "@kb-labs/data-client",
43
+ "@kb-labs/devkit",
44
+ "@kb-labs/devlink",
45
+ "@kb-labs/devlink-contracts",
46
+ "@kb-labs/devlink-core",
47
+ "@kb-labs/knowledge-contracts",
48
+ "@kb-labs/knowledge-core",
49
+ "@kb-labs/knowledge-fs",
50
+ "@kb-labs/mind",
51
+ "@kb-labs/mind-adapters",
52
+ "@kb-labs/mind-cli",
53
+ "@kb-labs/mind-contracts",
54
+ "@kb-labs/mind-core",
55
+ "@kb-labs/mind-embeddings",
56
+ "@kb-labs/mind-engine",
57
+ "@kb-labs/mind-gateway",
58
+ "@kb-labs/mind-indexer",
59
+ "@kb-labs/mind-llm",
60
+ "@kb-labs/mind-pack",
61
+ "@kb-labs/mind-query",
62
+ "@kb-labs/mind-tests",
63
+ "@kb-labs/mind-types",
64
+ "@kb-labs/mind-vector-store",
65
+ "@kb-labs/plugin",
66
+ "@kb-labs/plugin-adapter-cli",
67
+ "@kb-labs/plugin-adapter-rest",
68
+ "@kb-labs/plugin-adapter-studio",
69
+ "@kb-labs/plugin-contracts",
70
+ "@kb-labs/plugin-devtools",
71
+ "@kb-labs/plugin-manifest",
72
+ "@kb-labs/plugin-runtime",
73
+ "@kb-labs/plugin-template",
74
+ "@kb-labs/plugin-template-cli",
75
+ "@kb-labs/plugin-template-contracts",
76
+ "@kb-labs/product-template",
77
+ "@kb-labs/profile-toolkit",
78
+ "@kb-labs/release-manager-checks",
79
+ "@kb-labs/release-manager-cli",
80
+ "@kb-labs/release-manager-core",
81
+ "@kb-labs/release-manager",
82
+ "@kb-labs/rest-api-app",
83
+ "@kb-labs/rest-api-core",
84
+ "@kb-labs/sandbox",
85
+ "@kb-labs/setup-engine-core",
86
+ "@kb-labs/setup-engine-operations",
87
+ "@kb-labs/shared",
88
+ "@kb-labs/shared-boundaries",
89
+ "@kb-labs/shared-cli-ui",
90
+ "@kb-labs/shared-diff",
91
+ "@kb-labs/shared-repo",
92
+ "@kb-labs/shared-review-types",
93
+ "@kb-labs/shared-textops",
94
+ "@kb-labs/ui-core",
95
+ "@kb-labs/ui-react",
96
+ "@kb-labs/workflow",
97
+ "@kb-labs/workflow-artifacts",
98
+ "@kb-labs/workflow-constants",
99
+ "@kb-labs/workflow-contracts",
100
+ "@kb-labs/workflow-engine",
101
+ "@kb-labs/workflow-runtime",
102
+ "zod"
103
+ ]
104
+ }
@@ -0,0 +1,48 @@
1
+ import { defineConfig } from 'vitest/config'
2
+ import nodePreset from '@kb-labs/devkit/vitest/node.js'
3
+
4
+ export default defineConfig({
5
+ ...nodePreset,
6
+ test: {
7
+ ...nodePreset.test,
8
+ include: [
9
+ 'packages/**/src/**/*.spec.ts',
10
+ 'packages/**/src/**/*.test.ts',
11
+ 'packages/**/src/**/__tests__/**/*.spec.ts',
12
+ 'packages/**/src/**/__tests__/**/*.test.ts',
13
+ 'packages/**/tests/**/*.test.ts',
14
+ 'apps/**/src/**/*.spec.ts',
15
+ 'apps/**/src/**/*.test.ts',
16
+ 'apps/**/src/**/__tests__/**/*.spec.ts',
17
+ 'apps/**/src/**/__tests__/**/*.test.ts',
18
+ ],
19
+ coverage: {
20
+ ...nodePreset.test?.coverage,
21
+ enabled: true,
22
+ exclude: [
23
+ '**/dist/**',
24
+ '**/fixtures/**',
25
+ '**/__tests__/**',
26
+ '**/*.spec.*',
27
+ '**/*.test.*',
28
+ // non-source and config files
29
+ 'eslint.config.js',
30
+ '**/vitest.config.ts',
31
+ '**/tsup.config.ts',
32
+ '**/tsconfig*.json',
33
+ 'apps/**',
34
+ // coverage reports
35
+ '**/coverage/**',
36
+ // barrel files / types
37
+ '**/index.ts',
38
+ '**/types.ts',
39
+ '**/types/**',
40
+ // devkit scripts
41
+ 'scripts/devkit-sync.mjs',
42
+ // test files and directories
43
+ '**/tests/**',
44
+ '**/test/**',
45
+ ],
46
+ },
47
+ },
48
+ })