@tdk-landscape/tdk-cli-core 1.3.50 → 1.3.52

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 (92) hide show
  1. package/.github/workflows/ci.yml +13 -0
  2. package/.github/workflows/release-binaries.yml +76 -1
  3. package/CHANGELOG.md +50 -0
  4. package/README.md +54 -17
  5. package/cli/README.md +16 -43
  6. package/cli/biome.json +0 -4
  7. package/cli/dist/commands/help.d.ts.map +1 -1
  8. package/cli/dist/commands/help.js +22 -39
  9. package/cli/dist/commands/help.js.map +1 -1
  10. package/cli/dist/commands/project.d.ts +6 -0
  11. package/cli/dist/commands/project.d.ts.map +1 -1
  12. package/cli/dist/commands/project.js +16 -0
  13. package/cli/dist/commands/project.js.map +1 -1
  14. package/cli/dist/commands/up.d.ts.map +1 -1
  15. package/cli/dist/commands/up.js +5 -0
  16. package/cli/dist/commands/up.js.map +1 -1
  17. package/cli/dist/commands/upgrade.d.ts +3 -0
  18. package/cli/dist/commands/upgrade.d.ts.map +1 -1
  19. package/cli/dist/commands/upgrade.js +43 -1
  20. package/cli/dist/commands/upgrade.js.map +1 -1
  21. package/cli/dist/utils/constants.d.ts +1 -1
  22. package/cli/dist/utils/constants.d.ts.map +1 -1
  23. package/cli/dist/utils/constants.js +1 -1
  24. package/cli/dist/utils/constants.js.map +1 -1
  25. package/cli/dist/utils/doctor-runtime.js +5 -5
  26. package/cli/dist/utils/doctor-runtime.js.map +1 -1
  27. package/cli/dist/utils/prompt.d.ts.map +1 -1
  28. package/cli/dist/utils/prompt.js +6 -1
  29. package/cli/dist/utils/prompt.js.map +1 -1
  30. package/cli/dist/utils/service-urls.js +1 -1
  31. package/cli/dist/utils/service-urls.js.map +1 -1
  32. package/cli/package.json +2 -1
  33. package/cli/shared-platform-engineering/docker-templates/infisical-entrypoint.sh +2 -2
  34. package/cli/src/commands/__tests__/doctor.test.ts +8 -8
  35. package/cli/src/commands/__tests__/upgrade.test.ts +90 -3
  36. package/cli/src/commands/help.ts +22 -39
  37. package/cli/src/commands/project.ts +20 -0
  38. package/cli/src/commands/up.ts +10 -0
  39. package/cli/src/commands/upgrade.ts +52 -1
  40. package/cli/src/utils/constants.ts +1 -1
  41. package/cli/src/utils/doctor-runtime.ts +5 -5
  42. package/cli/src/utils/prompt.ts +8 -1
  43. package/cli/src/utils/service-urls.ts +1 -1
  44. package/discovery/identity-management-backend/service.yaml +2 -2
  45. package/discovery/identity-management-frontend/service.yaml +1 -1
  46. package/discovery/registry.star +3 -1
  47. package/discovery/services/platform/orchestrator/orchestrator-glue-backend/service.yaml +2 -2
  48. package/docs/demo.svg +217 -0
  49. package/engine/assets/docker/golden-layers.Dockerfile +18 -18
  50. package/engine/assets/docker/wake-gateway/Dockerfile +4 -3
  51. package/engine/assets/docker/wake-gateway/decide.test.ts +72 -1
  52. package/engine/assets/docker/wake-gateway/decide.ts +51 -2
  53. package/engine/assets/docker/wake-gateway/server.ts +165 -28
  54. package/engine/assets/scripts/mac-m1-resource-monitor.sh +1 -1
  55. package/engine/scripts/debug-container.sh +8 -3
  56. package/engine/spec.master +2 -2
  57. package/engine/topologies/platform/docker/compose/traefik_standalone.star +23 -1
  58. package/engine/topologies/platform/docker/layers/prisma/prisma_build.star +1 -1
  59. package/engine/topologies/platform/docker/networking/traefik_static_routes.star +62 -8
  60. package/engine/topologies/tilt/common/utils.star +1 -1
  61. package/engine/topologies/tilt/resources/orchestrator/apply_compose_resource_registration.star +89 -12
  62. package/engine/topologies/tilt/resources/orchestrator/builders/typescript.star +20 -0
  63. package/install.sh +19 -242
  64. package/openspec/changes/prioritized-cold-start/design.md +27 -3
  65. package/openspec/changes/prioritized-cold-start/proposal.md +1 -0
  66. package/openspec/changes/prioritized-cold-start/specs/on-demand-resource-startup/spec.md +9 -3
  67. package/openspec/changes/prioritized-cold-start/tasks.md +24 -1
  68. package/package.json +1 -1
  69. package/platform/services/platform/proxy/service.yaml +1 -1
  70. package/scripts/record-demo.sh +43 -0
  71. package/scripts/release-binaries.sh +8 -5
  72. package/shared-platform-engineering/docker-templates/infisical-entrypoint.sh +2 -2
  73. package/tests/tilt-engine/test_sablier_defer_start.py +41 -0
  74. package/tests/tilt-engine/test_standalone_traefik.py +14 -0
  75. package/tests/tilt-engine/test_traefik_static_wake_route.py +68 -0
  76. package/openspec/changes/archive/2026-04-29-scan-repo-gaps-fix/codebase-audit-report.md +0 -62
  77. package/openspec/changes/archive/2026-05-04-comprehensive-cleanup-final/.openspec.yaml +0 -5
  78. package/openspec/changes/archive/2026-05-04-comprehensive-cleanup-final/design.md +0 -94
  79. package/openspec/changes/archive/2026-05-04-comprehensive-cleanup-final/proposal.md +0 -46
  80. package/openspec/changes/archive/2026-05-04-comprehensive-cleanup-final/specs/ai-slop-cleanup/CLEANUP_REPORT_8.md +0 -174
  81. package/openspec/changes/archive/2026-05-04-comprehensive-cleanup-final/specs/ai-slop-cleanup/CRITICAL_ASSESSMENT_8.md +0 -160
  82. package/openspec/changes/archive/2026-05-04-comprehensive-cleanup-final/specs/circular-deps/CRITICAL_ASSESSMENT_4.md +0 -381
  83. package/openspec/changes/archive/2026-05-04-comprehensive-cleanup-final/specs/dead-code/CRITICAL_ASSESSMENT_3.md +0 -316
  84. package/openspec/changes/archive/2026-05-04-comprehensive-cleanup-final/specs/deduplication/CRITICAL_ASSESSMENT_1.md +0 -290
  85. package/openspec/changes/archive/2026-05-04-comprehensive-cleanup-final/specs/deduplication/IMPLEMENTATION_SUMMARY_1.md +0 -233
  86. package/openspec/changes/archive/2026-05-04-comprehensive-cleanup-final/specs/defensive-cleanup/CRITICAL_ASSESSMENT_6.md +0 -835
  87. package/openspec/changes/archive/2026-05-04-comprehensive-cleanup-final/specs/legacy-cleanup/CRITICAL_ASSESSMENT_7.md +0 -254
  88. package/openspec/changes/archive/2026-05-04-comprehensive-cleanup-final/specs/legacy-cleanup/IMPLEMENTATION_SUMMARY_7.md +0 -187
  89. package/openspec/changes/archive/2026-05-04-comprehensive-cleanup-final/specs/strong-typing/CRITICAL_ASSESSMENT_5.md +0 -269
  90. package/openspec/changes/archive/2026-05-04-comprehensive-cleanup-final/specs/type-consolidation/CRITICAL_ASSESSMENT_2.md +0 -312
  91. package/openspec/changes/archive/2026-05-04-comprehensive-cleanup-final/specs/type-consolidation/IMPLEMENTATION_SUMMARY.md +0 -170
  92. package/openspec/changes/archive/2026-05-04-comprehensive-cleanup-final/tasks.md +0 -137
@@ -101,6 +101,19 @@ jobs:
101
101
  bun install --frozen-lockfile
102
102
  npm run build
103
103
 
104
+ # cli/dist is committed so `npm install -g github:tdk-landscape/tdk-cli-core`
105
+ # works without a build step. Fail if a source change was committed
106
+ # without rebuilding it.
107
+ - name: Check committed cli/dist is up to date
108
+ run: |
109
+ # --ignored: cli/dist/ is gitignored, so a newly compiled file only
110
+ # shows up with it.
111
+ if [ -n "$(git status --porcelain --ignored -- cli/dist)" ]; then
112
+ git status --short --ignored -- cli/dist
113
+ echo "::error::cli/dist is stale. Run 'npm run build' and commit cli/dist (new files need 'git add -f')."
114
+ exit 1
115
+ fi
116
+
104
117
  - name: Pack and install globally
105
118
  run: | # zizmor: ignore[adhoc-packages] installs our own freshly packed tarball
106
119
  npm pack --pack-destination "$RUNNER_TEMP"
@@ -9,7 +9,7 @@ on:
9
9
  - "cli/package.json"
10
10
 
11
11
  permissions:
12
- contents: read
12
+ contents: write # push the automatic version bump back to main
13
13
  id-token: write
14
14
 
15
15
  # Queue releases instead of running them side by side: two runs for the same
@@ -42,6 +42,44 @@ jobs:
42
42
  - run: bun install --frozen-lockfile
43
43
  working-directory: cli
44
44
 
45
+ # This workflow runs on every package.json change, not only version
46
+ # bumps. A dependency update or other package.json edit used to rebuild
47
+ # the binaries from new code and re-upload them over the release that
48
+ # already had this version, while npm skipped it as "already published":
49
+ # new code under an old version number. Instead, move to the next patch
50
+ # version that is neither on npm nor a tdk-cli-releases tag. Must run
51
+ # before the build: the CLI reads its version from cli/package.json.
52
+ - name: Pick an unreleased version
53
+ id: version
54
+ env:
55
+ GH_TOKEN: ${{ github.token }}
56
+ run: |
57
+ current=$(node -p "require('./package.json').version")
58
+ version="$current"
59
+ while npm view "@tdk-landscape/tdk-cli-core@${version}" version >/dev/null 2>&1 \
60
+ || gh release view "v${version}" --repo tdk-landscape/tdk-cli-releases >/dev/null 2>&1; do
61
+ version=$(node -p 'const [a, b, c] = process.argv[1].split(".").map(Number); [a, b, c + 1].join(".")' "$version")
62
+ done
63
+ if [ "$version" = "$current" ]; then
64
+ echo "Releasing ${version}."
65
+ echo "bumped=false" >> "$GITHUB_OUTPUT"
66
+ else
67
+ echo "::notice::${current} is already released; releasing this commit as ${version}."
68
+ # Edit only the version line: `npm version` would reinstall the
69
+ # workspaces and touch the bun-installed node_modules.
70
+ node -e '
71
+ const fs = require("fs");
72
+ for (const file of ["package.json", "cli/package.json"]) {
73
+ const before = fs.readFileSync(file, "utf8");
74
+ const after = before.replace(/("version":\s*")[^"]+"/, (_, key) => key + process.argv[1] + "\"");
75
+ if (after === before) throw new Error("no version field in " + file);
76
+ fs.writeFileSync(file, after);
77
+ }
78
+ ' "$version"
79
+ echo "bumped=true" >> "$GITHUB_OUTPUT"
80
+ fi
81
+ echo "version=${version}" >> "$GITHUB_OUTPUT"
82
+
45
83
  # cli/bin/tdk.js loads cli/dist/cli.js, so the npm package is broken
46
84
  # unless the CLI is compiled before `npm publish`.
47
85
  - run: npm run build
@@ -62,3 +100,40 @@ jobs:
62
100
  else
63
101
  npm publish --access public --provenance
64
102
  fi
103
+
104
+ # Keep main in step with what was published. A push made with
105
+ # github.token doesn't trigger workflows, so this can't loop. If it
106
+ # fails, the release is still out; the next run bumps past it anyway.
107
+ - name: Commit the version bump
108
+ if: steps.version.outputs.bumped == 'true'
109
+ env:
110
+ GH_TOKEN: ${{ github.token }}
111
+ VERSION: ${{ steps.version.outputs.version }}
112
+ run: |
113
+ git config user.name "github-actions[bot]"
114
+ git config user.email "41898283+github-actions[bot]@users.noreply.github.com"
115
+ # CHANGELOG versions match npm: file the "Unreleased" entries under
116
+ # this version, leaving an empty "Unreleased" section above it.
117
+ node -e '
118
+ const fs = require("fs");
119
+ const [version, date] = process.argv.slice(1);
120
+ if (!fs.existsSync("CHANGELOG.md")) process.exit(0);
121
+ const lines = fs.readFileSync("CHANGELOG.md", "utf8").split("\n");
122
+ const start = lines.indexOf("## Unreleased");
123
+ if (start === -1) process.exit(0);
124
+ let end = lines.findIndex((l, i) => i > start && l.startsWith("## "));
125
+ if (end === -1) end = lines.length;
126
+ if (!lines.slice(start + 1, end).some((l) => l.trim())) process.exit(0);
127
+ lines.splice(start + 1, 0, "", "## " + version + " (" + date + ")");
128
+ fs.writeFileSync("CHANGELOG.md", lines.join("\n"));
129
+ ' "$VERSION" "$(date -u +%F)"
130
+ git add package.json cli/package.json
131
+ if [ -f CHANGELOG.md ]; then git add CHANGELOG.md; fi
132
+ git commit -m "Release ${VERSION} (automatic version bump)"
133
+ remote="https://x-access-token:${GH_TOKEN}@github.com/${GITHUB_REPOSITORY}.git"
134
+ if ! git push "$remote" HEAD:main; then
135
+ git fetch --depth=50 "$remote" main
136
+ if ! { git rebase FETCH_HEAD && git push "$remote" HEAD:main; }; then
137
+ echo "::warning::Released ${VERSION}, but main changed and the version bump could not be pushed. Make sure package.json and cli/package.json on main are ${VERSION} or higher."
138
+ fi
139
+ fi
package/CHANGELOG.md ADDED
@@ -0,0 +1,50 @@
1
+ # Changelog
2
+
3
+ Notable changes to the `tdk` CLI. Versions match [npm](https://www.npmjs.com/package/@tdk-landscape/tdk-cli-core?activeTab=versions) and the [binary releases](https://github.com/tdk-landscape/tdk-cli-releases/releases).
4
+
5
+ ## Unreleased
6
+
7
+ - `tdk up` works in a fresh project. The Tiltfile no longer aborts when a stack listed in `project.json` has no directory yet, and stacks created after `tdk project` are added to the `pre_alpha` phase so they actually start.
8
+ - Prompts fail with an error and exit 1 when there's no input to read (CI, `< /dev/null`). Before, `tdk resource` printed its summary, exited 0 and created nothing.
9
+ - `tdk help`: one-line header with the version, instead of a misaligned ASCII box and doubled icons.
10
+ - One installer: `install.sh` in this repo hands off to `https://tdk-landscape.github.io/install.sh`, which verifies release checksums. `tdk upgrade` verifies checksums too.
11
+
12
+ ## 1.3.51 (2026-09-27)
13
+
14
+ - Cold start on first request (`sablier.deferStart`, paid): an opted-in resource skips the normal bring-up and starts when it first gets a request, through a generated Traefik route and a wake gateway.
15
+ - The wake gateway starts already-built images with `docker compose up --no-build` instead of waiting in Tilt's build queue, which could time out with a 504 under load.
16
+ - The generated wake route strips the same API path prefix as the real route.
17
+
18
+ ## 1.3.50 (2026-09-27)
19
+
20
+ - Fixed the npm package: 1.3.49 shipped without the compiled CLI and its runtime dependencies, so `tdk` failed to start after `npm install -g`.
21
+ - Requires Node.js 22.12+.
22
+ - `tdk up <stack>` starts only that stack instead of every stack.
23
+
24
+ ## 1.3.39 (2026-09-23)
25
+
26
+ - `tdk doctor` and `tdk up` time out after 10 s when the Docker daemon is unresponsive, instead of hanging.
27
+
28
+ ## 1.3.37 (2026-09-22)
29
+
30
+ - Fixed the Vite base path for frontends routed under a path prefix.
31
+
32
+ ## 1.3.36 (2026-09-22)
33
+
34
+ - Service URL helpers, `BASEPATH` routing and health-check targets.
35
+
36
+ ## 1.3.35 (2026-09-22)
37
+
38
+ - `tdk doctor` checks that each service's `package.json` has the scripts the generated containers run.
39
+
40
+ ## 1.3.34 (2026-09-22)
41
+
42
+ - Fixed resource filtering in focus mode and the frontend Docker `tsconfig`.
43
+
44
+ ## 1.3.33 (2026-09-22)
45
+
46
+ - Core infrastructure (Traefik, Postgres) is always on. Fixed `tdk upgrade` self-repair.
47
+
48
+ ## Earlier
49
+
50
+ Releases before 1.3.33 are listed in the [git history](https://github.com/tdk-landscape/tdk-cli-core/commits/main).
package/README.md CHANGED
@@ -7,10 +7,10 @@
7
7
  One CLI that scaffolds your services and runs the whole landscape locally with hot reload, health checks, a proxy, and Postgres, all built on [Tilt](https://tilt.dev).
8
8
 
9
9
  [![npm version](https://img.shields.io/npm/v/@tdk-landscape/tdk-cli-core.svg?style=flat&color=blue)](https://www.npmjs.com/package/@tdk-landscape/tdk-cli-core)
10
- [![npm downloads](https://img.shields.io/npm/dm/@tdk-landscape/tdk-cli-core.svg?style=flat)](https://www.npmjs.com/package/@tdk-landscape/tdk-cli-core)
11
10
  [![CI](https://github.com/tdk-landscape/tdk-cli-core/actions/workflows/ci.yml/badge.svg)](https://github.com/tdk-landscape/tdk-cli-core/actions/workflows/ci.yml)
11
+ [![Known Vulnerabilities](https://snyk.io/test/github/tdk-landscape/tdk-cli-core/badge.svg)](https://snyk.io/test/github/tdk-landscape/tdk-cli-core)
12
+ [![Socket Badge](https://badge.socket.dev/npm/package/@tdk-landscape/tdk-cli-core/latest)](https://socket.dev/npm/package/@tdk-landscape/tdk-cli-core/overview)
12
13
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
13
- [![GitHub stars](https://img.shields.io/github/stars/tdk-landscape/tdk-cli-core?style=flat&logo=github)](https://github.com/tdk-landscape/tdk-cli-core/stargazers)
14
14
 
15
15
  [Website](https://tdk-landscape.github.io/tdk-website) · [Quickstart](https://tdk-landscape.github.io/tdk-website/docs/quickstart/) · [Examples](https://tdk-landscape.github.io/tdk-website/docs/examples/) · [Demo](https://tdk-landscape.github.io/tdk-demo-animation/) · [Report a bug](https://github.com/tdk-landscape/tdk-cli-core/issues/new/choose)
16
16
 
@@ -18,12 +18,15 @@ One CLI that scaffolds your services and runs the whole landscape locally with h
18
18
 
19
19
  ```bash
20
20
  npm install -g @tdk-landscape/tdk-cli-core
21
+ mkdir shop && cd shop # tdk writes files into the current directory
21
22
  tdk project --yes # set up the project
22
23
  tdk resource orders-api --type backend --stack shop # scaffold a service
23
24
  tdk up shop # run it with hot reload
24
25
  ```
25
26
 
26
- > ⭐ **If TDK saves you from writing another `docker-compose.yml`, please [star the repo](https://github.com/tdk-landscape/tdk-cli-core/stargazers).** Stars help other developers find it.
27
+ ![tdk scaffolding a backend and a frontend, then listing the stack](docs/demo.svg)
28
+
29
+ **Requirements:** Docker (Desktop, OrbStack or Colima; Engine 25+, Compose 2.20+), [Tilt](https://docs.tilt.dev/install.html), [Bun](https://bun.sh) for the generated services, and Node.js 22.12+ for the CLI. macOS and Linux are supported. Windows is untested (WSL2 may work). Run `tdk doctor` to check all of it.
27
30
 
28
31
  This is the core monorepo for TDK: the `tdk` CLI, the Starlark-based Tilt orchestration engine that powers it, and the discovery system that turns a directory of services into a running local landscape.
29
32
 
@@ -33,11 +36,13 @@ This is the core monorepo for TDK: the `tdk` CLI, the Starlark-based Tilt orches
33
36
  |---|---|---|---|---|
34
37
  | Scaffold a new service in one command | ❌ | ❌ | ❌ | ✅ `tdk resource` |
35
38
  | Hot reload on file change | ⚠️ `compose watch` config | ⚠️ extra tooling | ✅ | ✅ |
36
- | Health-checked startup order | ⚠️ `depends_on` only | ✅ | ⚠️ write it yourself | ✅ |
39
+ | Health-checked startup order | ✅ `depends_on: condition: service_healthy` | ✅ | ⚠️ write it yourself | ✅ |
37
40
  | Proxy, Postgres, monitoring included | ❌ | ❌ | ❌ | ✅ |
38
41
  | Needs a cluster | No | Yes | Optional | **No** |
39
42
  | Start only one stack of a large system | ⚠️ profiles | ⚠️ | ⚠️ | ✅ `tdk up <stack>` |
40
43
 
44
+ TDK is not a replacement for Tilt: it generates the Tiltfile, Dockerfiles and compose files and then runs Tilt. If you already have a hand-written Tiltfile or compose setup you're happy with, TDK mostly saves you the boilerplate for the next service.
45
+
41
46
  ## Benchmark: 100 services on one laptop
42
47
 
43
48
  Measured with [`scripts/benchmark/container-scale.ts`](scripts/benchmark/README.md) against the 100-service [ERP example](https://github.com/tdk-landscape/tdk-erp-system) on a 16 GB machine (Docker VM: 7.75 GiB). Raw results are in [`benchmarks/results/`](benchmarks/results).
@@ -48,16 +53,23 @@ Measured with [`scripts/benchmark/container-scale.ts`](scripts/benchmark/README.
48
53
  | 50 | 24 s | 829 MiB | 17 MiB | 0 / 0 |
49
54
  | 100 | 112 s | 1.6 GiB | 17 MiB | 0 / 0 |
50
55
 
56
+ What this does and doesn't measure:
57
+
58
+ - The ERP services are small generated Bun HTTP services (about 20 lines each) answering `/health`. Real services with real dependencies use more memory; the point is that TDK's per-service overhead (runtime image, healthchecks, proxy routing) stays small.
59
+ - Images were already built. Build time isn't included, and a first `tdk up` of 100 services takes much longer.
60
+ - The script starts the service containers with the settings `tdk up` generates (512 MiB / 0.5 CPU limits, healthchecks), without Tilt running. The memory column counts only the service containers, not Postgres or Traefik.
61
+ - Numbers vary between runs (a later run reached 100 healthy in 74 s). Run it yourself with `bun scripts/benchmark/container-scale.ts`.
62
+
51
63
  ## What is TDK?
52
64
 
53
65
  TDK organizes microservices using a **Project → Stack → Resource** hierarchy, then uses Tilt to build, run, and hot-reload them locally:
54
66
 
55
67
  ```
56
- 📁 Project (1 per repo)
68
+ Project (1 per repo)
57
69
  ├── TILT_RESOURCE_DEFAULTS.star # Ports, health checks, memory
58
70
  ├── TILT_TECH_STACK.star # Bun, Vite, Prisma, NATS
59
71
  │
60
- └── 📦 Stacks (deployment groups)
72
+ └── Stacks (deployment groups)
61
73
  ├── api-stack
62
74
  │ ├── api-backend # Resource
63
75
  │ └── web-frontend # Resource
@@ -67,6 +79,8 @@ TDK organizes microservices using a **Project → Stack → Resource** hierarchy
67
79
  └── web-frontend
68
80
  ```
69
81
 
82
+ `.tdk/project.json` also groups stacks into phases (`pre_alpha`, `alpha`, `beta`, `out_of_scope`) so a large system can be brought up in stages. `tdk up` runs stacks from the first three and adds any new stack to `pre_alpha`.
83
+
70
84
  Running `tdk resource` scaffolds a service (Dockerfile, TypeScript config, starter code, tests); `tdk up` hands the whole landscape to Tilt for orchestration, live-reload, and health checking — sized to fit dozens of services on a single laptop.
71
85
 
72
86
  ## Install
@@ -77,21 +91,24 @@ npm install -g @tdk-landscape/tdk-cli-core
77
91
  bun install -g @tdk-landscape/tdk-cli-core
78
92
  ```
79
93
 
80
- Or via the installer script:
94
+ Or install the prebuilt binary (no Node or Bun needed; verified against the release checksums):
81
95
 
82
96
  ```bash
83
- curl -fsSL https://raw.githubusercontent.com/tdk-landscape/tdk-cli-core/main/install.sh | bash
97
+ curl -fsSL https://tdk-landscape.github.io/install.sh | sh
84
98
  ```
85
99
 
100
+ Premium features don't need a different install: set `TDK_LICENSE_KEY` and any of these installs unlocks them. See [docs/FEATURES.md](docs/FEATURES.md).
101
+
86
102
  ## Quick start
87
103
 
88
104
  ```bash
89
- cd my-project
90
- tdk project # initialize master configs
91
- tdk resource api-api --type backend --stack api # scaffold a backend
92
- tdk resource api-app --type frontend --stack api # scaffold a frontend
93
- tdk up api # start the stack via Tilt
94
- tdk status # check what's running
105
+ mkdir shop && cd shop
106
+ tdk project --yes # writes .tdk/project.json and generated configs
107
+ tdk resource orders-api --type backend --stack shop # asks you to confirm, then scaffolds services/shop/orders-api
108
+ tdk resource storefront --type frontend --stack shop
109
+ tdk up shop # starts Tilt; UI at http://localhost:10350
110
+ tdk networks # lists the *.localhost URLs Traefik routes
111
+ tdk down # stops everything
95
112
  ```
96
113
 
97
114
  See the [CLI reference](cli/README.md) for the full command set (`stack`, `resources`, `doctor`, `ui`, and more).
@@ -110,12 +127,34 @@ This is a monorepo — most day-to-day CLI work happens under `cli/`, while `eng
110
127
  | [`benchmarks/`](benchmarks) | Container/landscape scale benchmarks. |
111
128
  | [`docs/`](docs) | Reference docs, including [FEATURES.md](docs/FEATURES.md) for project- and resource-level feature flags. |
112
129
  | [`Tiltfile`](Tiltfile) | Entry point that wires the engine into `tilt up`. |
113
- | [`install.sh`](install.sh) | Standalone installer used by the `curl \| bash` flow above. |
130
+ | [`install.sh`](install.sh) | Legacy installer URL; hands off to the official installer at `tdk-landscape.github.io/install.sh`. |
114
131
 
115
132
  ## Features
116
133
 
117
134
  TDK ships a set of always-on infrastructure services (Traefik proxy, PostgreSQL) plus opt-in features — monitoring, ELK, Debezium CDC, a local npm registry, and more. Enable/disable them per-project via `.tdk/project.json`, or per-resource via each service's `service.json`. Full reference: [docs/FEATURES.md](docs/FEATURES.md).
118
135
 
136
+ ## Free and paid features
137
+
138
+ The CLI, engine and everything in this repository are MIT-licensed and work without an account or key. A few extras are paid and need a `TDK_LICENSE_KEY`: on-demand start/stop of idle services (Sablier), a local npm registry (Verdaccio), DDD scaffolding, Playwright config, C4 diagrams, synthetic monitoring, and a few generators (see `KNOWN_RESOURCES` in [extension-fetch.ts](cli/src/generator/extension-fetch.ts)). In this repo those are disabled stubs; with a key set, the CLI downloads the real implementations. [docs/FEATURES.md](docs/FEATURES.md) marks which features are which. To ask about a key, [open an issue](https://github.com/tdk-landscape/tdk-cli-core/issues/new/choose).
139
+
140
+ ## Network access and telemetry
141
+
142
+ TDK has no telemetry or analytics. The CLI only goes online when you ask it to:
143
+
144
+ - `tdk upgrade` checks the latest release on GitHub.
145
+ - With `TDK_LICENSE_KEY` set, `tdk project` and `tdk up` download the paid bundle from `tdk-extension-dist.oranguman.workers.dev` and re-check the key every 12 hours. Without a key, nothing is sent.
146
+ - Docker and Tilt pull images and packages as they normally would.
147
+
148
+ ## FAQ
149
+
150
+ **Why not just docker compose?** For a handful of services, compose is fine. TDK generates the compose files for you. It adds hot reload through Tilt, one-command scaffolding with matching Dockerfiles, and a stack-level `tdk up` for large systems where starting everything is too slow.
151
+
152
+ **How is this different from Skaffold, Garden, DevSpace or Tilt itself?** Skaffold, Garden and DevSpace are built around Kubernetes, and plain Tilt leaves the Tiltfile to you. TDK runs on plain Docker with no cluster, and generates both the services and the Tilt config from a `service.json` per service.
153
+
154
+ **Do I need 100 microservices?** No. Two services work the same way. The 100-service example is a stress test to show the overhead stays flat.
155
+
156
+ **Is TDK affiliated with Tilt or Docker?** No. TDK is an independent project built on top of [Tilt](https://tilt.dev), which is maintained by Docker, Inc.
157
+
119
158
  ## Development
120
159
 
121
160
  ```bash
@@ -142,8 +181,6 @@ Verifies Docker, Bun, Tilt, required ports, and master config files are all in p
142
181
  - **Security:** see [SECURITY.md](SECURITY.md). Please don't report vulnerabilities in public issues.
143
182
  - **Examples:** [ERP system (100 services)](https://github.com/tdk-landscape/tdk-erp-system), [SaaS starter](https://github.com/tdk-landscape/tdk-saas-starter), [restaurant](https://github.com/tdk-landscape/tdk-restaurant-example).
144
183
 
145
- If TDK is useful to you, a ⭐ helps more than you'd think.
146
-
147
184
  ## License
148
185
 
149
186
  [MIT](LICENSE) © [TDK Landscape](https://github.com/tdk-landscape)
package/cli/README.md CHANGED
@@ -1,41 +1,6 @@
1
- # 🚀 TDK CLI
1
+ # 🚀 TDK CLI reference
2
2
 
3
- > **T**ilt **D**evelopment **K**it - All-in-one local development platform for microservices
4
-
5
- [![npm version](https://img.shields.io/npm/v/@tdk-landscape/tdk-cli-core.svg?style=flat&color=blue)](https://www.npmjs.com/package/@tdk-landscape/tdk-cli-core)
6
- [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
7
- [![Socket Badge](https://badge.socket.dev/npm/package/@tdk-landscape/tdk-cli-core/1.3.27)](https://badge.socket.dev/npm/package/@tdk-landscape/tdk-cli-core/1.3.27)
8
-
9
- ---
10
-
11
- ## 🎯 What is TDK?
12
-
13
- TDK CLI organizes your microservices using a clear **Project-Stack-Resource (PSR)** hierarchy:
14
-
15
- ```
16
- 📁 Project (1 per repo)
17
- ├── ⚙️ TILT_RESOURCE_DEFAULTS.star # Ports, health checks, memory
18
- ├── 🔧 TILT_TECH_STACK.star # Bun, Vite, Prisma, NATS
19
- │
20
- └── 📦 Stacks (deployment groups)
21
- ├── 🔐 api-stack
22
- │ ├── ⚡ api-backend # Resource
23
- │ └── 🎨 web-frontend # Resource
24
- │
25
- └── 📅 worker-stack
26
- ├── ⚡ worker-backend # Resource
27
- └── 🎨 web-frontend # Resource
28
- ```
29
-
30
- ---
31
-
32
- ## 📦 Installation
33
-
34
- ```bash
35
- npm install -g @tdk-landscape/tdk-cli-core
36
- # or
37
- bun install -g @tdk-landscape/tdk-cli-core
38
- ```
3
+ > Command reference for the `tdk` CLI. For what TDK is, installation, badges, and the benchmark, see the **[main README](../README.md)**.
39
4
 
40
5
  ---
41
6
 
@@ -114,7 +79,7 @@ tdk resource my-worker --type worker --stack background
114
79
  |---------|-------------|---------|
115
80
  | `tdk up` | 🚀 Start all services | `tdk up` |
116
81
  | `tdk up <stack>` | 🚀 Start a stack | `tdk up api` |
117
- | `tdk up <resource>` | 🚀 Start specific resource | `tdk up api-backend` |
82
+ | `tdk up --dry-run` | 👀 Show what would start, without starting | `tdk up api --dry-run` |
118
83
  | `tdk down` | ⏹️ Stop all services | `tdk down` |
119
84
  | `tdk status` | 📊 Show resource status | `tdk status` |
120
85
 
@@ -125,7 +90,13 @@ tdk resource my-worker --type worker --stack background
125
90
  | Command | Description |
126
91
  |---------|-------------|
127
92
  | `tdk ui` | 🎨 Interactive terminal UI |
93
+ | `tdk networks` | 🌐 Show Traefik-routed URLs (`--stack`, `--json`, `--raw`) |
94
+ | `tdk config regenerate` | ♻️ Regenerate master config files from `.tdk/project.json` |
95
+ | `tdk config verify` | ✅ Check generated files match `.tdk/project.json` |
96
+ | `tdk config enable-infra <service>` | ➕ Enable an optional infrastructure service (`disable-infra` to turn it off) |
128
97
  | `tdk doctor` | 🔍 Check environment (Docker, Bun, Tilt, ports) |
98
+ | `tdk completion --install` | ⌨️ Install shell completions (`--shell bash\|zsh\|fish`) |
99
+ | `tdk upgrade` | ⬆️ Self-update to the latest version (`--dry-run`, `--force`) |
129
100
  | `tdk version` | ℹ️ Show version |
130
101
  | `tdk --help` | ❓ Show help |
131
102
 
@@ -179,6 +150,7 @@ tdk resources --stack api
179
150
  | `backend` | 4000-4999 | 🏎️ Hono API | REST APIs, microservices |
180
151
  | `frontend` | 3000-3999 | ⚛️ React + Vite | Web apps, dashboards |
181
152
  | `worker` | (optional) | 🔧 Background worker | Queue processors, jobs |
153
+ | `sdk` | — | none (register existing, `packages/<name>`) | Shared libraries |
182
154
 
183
155
  ---
184
156
 
@@ -298,21 +270,22 @@ tdk up --help
298
270
 
299
271
  ## 📚 Documentation
300
272
 
301
- - [Main Documentation](https://github.com/tdk-landscape/tdk-cli/tree/main/docs)
302
- - [Architecture](https://github.com/tdk-landscape/tdk-cli/tree/main/engine/docs)
303
- - [Tilt Extension](https://github.com/tdk-landscape/tdk-cli#using-as-tilt-extension)
273
+ - [Main README](../README.md)
274
+ - [Feature flags](../docs/FEATURES.md)
275
+ - [Architecture](../engine/docs/README.md)
276
+ - [Tilt Extension](../ext/)
304
277
 
305
278
  ---
306
279
 
307
280
  ## 📝 License
308
281
 
309
- MIT © [TDK Landscape](https://github.com/tdk-landscape)
282
+ [MIT](../LICENSE) © [TDK Landscape](https://github.com/tdk-landscape)
310
283
 
311
284
  ---
312
285
 
313
286
  <div align="center">
314
287
 
315
- **[⬆️ Back to Top](#-tdk-cli)**
288
+ **[⬆️ Back to Top](#-tdk-cli-reference)**
316
289
 
317
290
  Made with 💚 for developers who ship
318
291
 
package/cli/biome.json CHANGED
@@ -19,10 +19,6 @@
19
19
  "level": "error",
20
20
  "options": {
21
21
  "patterns": [
22
- {
23
- "group": ["@beauty-crm/*-frontend", "@beauty-crm/*-backend"],
24
- "message": "❌ tdk-cli is a leaf dev tool: it must never import a beauty-crm service/frontend. See BOUNDARIES.md §4-5."
25
- },
26
22
  {
27
23
  "group": ["@tdk-landscape/*-backend", "@tdk-landscape/*-frontend"],
28
24
  "message": "❌ tdk-cli is a leaf dev tool: it must never import a service package. See BOUNDARIES.md §4-5."
@@ -1 +1 @@
1
- {"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../../src/commands/help.ts"],"names":[],"mappings":"AAuGA,wBAAgB,QAAQ,IAAI,IAAI,CAwD/B"}
1
+ {"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../../src/commands/help.ts"],"names":[],"mappings":"AAuFA,wBAAgB,QAAQ,IAAI,IAAI,CAuD/B"}
@@ -1,22 +1,11 @@
1
1
  import chalk from "chalk";
2
+ import pkg from "../../package.json" with { type: "json" };
2
3
  const TDK_BANNER = `
3
- ${chalk.cyan("╔════════════════════════════════════════════════════════════╗")}
4
- ${chalk.cyan("║")} ${chalk.cyan("║")}
5
- ${chalk.cyan("║")} ${chalk.bold.white("████████╗██████╗ ██╗ ██╗")} ${chalk.bold.white("██████╗██╗ ██╗")} ${chalk.cyan("║")}
6
- ${chalk.cyan("║")} ${chalk.bold.white("╚══██╔══╝██╔══██╗██║ ██╔╝")} ${chalk.bold.white("██╔════╝██║ ██║")} ${chalk.cyan("║")}
7
- ${chalk.cyan("║")} ${chalk.bold.white("██║ ██║ ██║█████╔╝")} ${chalk.bold.white("██║ ██║ ██║")} ${chalk.cyan("║")}
8
- ${chalk.cyan("║")} ${chalk.bold.white("██║ ██║ ██║██╔═██╗")} ${chalk.bold.white("██║ ██║ ██║")} ${chalk.cyan("║")}
9
- ${chalk.cyan("║")} ${chalk.bold.white("██║ ██████╔╝██║ ██╗")}${chalk.yellow("██╗")}${chalk.bold.white("╚██████╗███████╗██║")} ${chalk.cyan("║")}
10
- ${chalk.cyan("║")} ${chalk.white("╚═╝ ╚═════╝ ╚═╝ ╚═╝╚═╝")} ${chalk.white("╚═════╝╚══════╝╚═╝")} ${chalk.cyan("║")}
11
- ${chalk.cyan("║")} ${chalk.cyan("║")}
12
- ${chalk.cyan("║")} ${chalk.bold.yellow("🚀 Tilt Development Kit - Local Microservices")} ${chalk.cyan("║")}
13
- ${chalk.cyan("║")} ${chalk.cyan("║")}
14
- ${chalk.cyan("╚════════════════════════════════════════════════════════════╝")}
4
+ ${chalk.bold.cyan("tdk")} ${chalk.gray(`v${pkg.version}`)} ${chalk.white("Tilt Development Kit: run your microservices locally")}
15
5
  `;
16
6
  const COMMAND_GROUPS = [
17
7
  {
18
- title: "🌍 Project Level",
19
- emoji: "📁",
8
+ title: "Project Level",
20
9
  color: chalk.blue,
21
10
  commands: [
22
11
  {
@@ -28,8 +17,7 @@ const COMMAND_GROUPS = [
28
17
  ],
29
18
  },
30
19
  {
31
- title: "📦 Stack Level",
32
- emoji: "📦",
20
+ title: "Stack Level",
33
21
  color: chalk.magenta,
34
22
  commands: [
35
23
  { name: "stack", desc: "Organize resources into stacks (interactive)", alias: "" },
@@ -37,8 +25,7 @@ const COMMAND_GROUPS = [
37
25
  ],
38
26
  },
39
27
  {
40
- title: "⚡ Resource Level",
41
- emoji: "⚡",
28
+ title: "Resource Level",
42
29
  color: chalk.yellow,
43
30
  commands: [
44
31
  { name: "resource", desc: "Create new resource with templates", alias: "" },
@@ -46,8 +33,7 @@ const COMMAND_GROUPS = [
46
33
  ],
47
34
  },
48
35
  {
49
- title: "🔄 Lifecycle",
50
- emoji: "🔄",
36
+ title: "Lifecycle",
51
37
  color: chalk.green,
52
38
  commands: [
53
39
  { name: "up, deploy", desc: "Start services (optionally by stack)", alias: "[stack-name]" },
@@ -56,8 +42,7 @@ const COMMAND_GROUPS = [
56
42
  ],
57
43
  },
58
44
  {
59
- title: "🌐 Networking",
60
- emoji: "🌐",
45
+ title: "Networking",
61
46
  color: chalk.blueBright,
62
47
  commands: [
63
48
  {
@@ -68,8 +53,7 @@ const COMMAND_GROUPS = [
68
53
  ],
69
54
  },
70
55
  {
71
- title: "🛠️ Utilities",
72
- emoji: "🛠️",
56
+ title: "Utilities",
73
57
  color: chalk.cyan,
74
58
  commands: [
75
59
  { name: "ui, interactive", desc: "Interactive TUI for managing services", alias: "" },
@@ -82,7 +66,7 @@ const COMMAND_GROUPS = [
82
66
  { name: "completion", desc: "Generate shell completions", alias: "--install --shell zsh" },
83
67
  { name: "upgrade, update", desc: "Self-update to latest version", alias: "--force" },
84
68
  { name: "version, -v", desc: "Display version number", alias: "" },
85
- { name: "help", desc: "Show this colorful help", alias: "[command]" },
69
+ { name: "help", desc: "Show help", alias: "[command]" },
86
70
  ],
87
71
  },
88
72
  ];
@@ -94,7 +78,7 @@ function formatCommand(name, desc, alias, color) {
94
78
  }
95
79
  export function showHelp() {
96
80
  console.log(TDK_BANNER);
97
- console.log(chalk.bold.white("\n Project → Phase → Stack → Resource (PPSR) Model\n"));
81
+ console.log(chalk.bold.white("\n Project → Phase → Stack → Resource\n"));
98
82
  console.log(chalk.gray(" Usage: tdk [command] [options]\n"));
99
83
  console.log(chalk.bold.yellow(" Global Options:"));
100
84
  console.log(` ${chalk.cyan("-v, --version".padEnd(20))} ${chalk.white("Display version number")}`);
@@ -102,14 +86,14 @@ export function showHelp() {
102
86
  console.log(` ${chalk.cyan("-h, --help".padEnd(20))} ${chalk.white("Show help")}`);
103
87
  console.log();
104
88
  for (const group of COMMAND_GROUPS) {
105
- console.log(group.color.bold(`${group.emoji} ${group.title}`));
89
+ console.log(group.color.bold(` ${group.title}`));
106
90
  console.log(group.color(` ${"─".repeat(50)}`));
107
91
  for (const cmd of group.commands) {
108
92
  console.log(formatCommand(cmd.name, cmd.desc, cmd.alias, group.color));
109
93
  }
110
94
  console.log();
111
95
  }
112
- console.log(chalk.bold.yellow(" 🚀 Quick Start:"));
96
+ console.log(chalk.bold.yellow(" Quick start:"));
113
97
  console.log(chalk.gray(` ${"─".repeat(50)}`));
114
98
  console.log(chalk.white(`
115
99
  ${chalk.cyan("1.")} Initialize project: ${chalk.green("tdk project")}
@@ -117,22 +101,21 @@ export function showHelp() {
117
101
  ${chalk.cyan("3.")} Assign to stack: ${chalk.green("tdk stack my-stack")}
118
102
  ${chalk.cyan("4.")} Start development: ${chalk.green("tdk up my-stack")}
119
103
  `));
120
- console.log(chalk.bold.yellow(" 💡 Examples:"));
104
+ console.log(chalk.bold.yellow(" Examples:"));
121
105
  console.log(chalk.gray(` ${"─".repeat(50)}`));
122
106
  console.log(chalk.white(`
123
- ${chalk.cyan("$")} tdk project # Create master configs
124
- ${chalk.cyan("$")} tdk resource api --type backend # Create backend service
125
- ${chalk.cyan("$")} tdk resource app --type frontend # Create frontend app
126
- ${chalk.cyan("$")} tdk stacks --services # List stacks with resources
127
- ${chalk.cyan("$")} tdk up my-stack # Start a stack
128
- ${chalk.cyan("$")} tdk networks # Show Traefik-routed URLs
129
- ${chalk.cyan("$")} tdk doctor # Check environment
130
- ${chalk.cyan("$")} tdk upgrade # Self-update
107
+ ${chalk.cyan("$")} tdk project # Create master configs
108
+ ${chalk.cyan("$")} tdk resource api --type backend # Create a backend service
109
+ ${chalk.cyan("$")} tdk resource app --type frontend # Create a frontend app
110
+ ${chalk.cyan("$")} tdk stacks --services # List stacks with their resources
111
+ ${chalk.cyan("$")} tdk up my-stack # Start a stack
112
+ ${chalk.cyan("$")} tdk networks # Show Traefik-routed URLs
113
+ ${chalk.cyan("$")} tdk doctor # Check your environment
114
+ ${chalk.cyan("$")} tdk upgrade # Self-update
131
115
  `));
132
116
  console.log(chalk.gray(` ${"═".repeat(50)}`));
133
- console.log(chalk.gray(` For more help: ${chalk.cyan("tdk help [command]}")}`));
117
+ console.log(chalk.gray(` For more help: ${chalk.cyan("tdk help [command]")}`));
134
118
  console.log(chalk.gray(` GitHub: ${chalk.cyan("https://github.com/tdk-landscape/tdk-cli-core")}`));
135
119
  console.log();
136
- console.log(chalk.green.bold(" Happy coding! 🚀\n"));
137
120
  }
138
121
  //# sourceMappingURL=help.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"help.js","sourceRoot":"","sources":["../../src/commands/help.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"help.js","sourceRoot":"","sources":["../../src/commands/help.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,9 @@
1
1
  import { Command } from "commander";
2
+ /**
3
+ * Adds stacks that have service.json files but aren't in any phase to
4
+ * pre_alpha, so a resource scaffolded after `tdk project` is picked up by
5
+ * `tdk up` without re-running `tdk project`. Returns the stacks it enabled.
6
+ */
7
+ export declare function enableDiscoveredStacks(projectRoot: string): string[];
2
8
  export declare const projectCommand: Command;
3
9
  //# sourceMappingURL=project.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../src/commands/project.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAmKpC,eAAO,MAAM,cAAc,SA2QvB,CAAC"}
1
+ {"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../src/commands/project.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAkEpC;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,CAapE;AAmGD,eAAO,MAAM,cAAc,SA2QvB,CAAC"}