kaizen-3c-cli 1.0.0__tar.gz

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 (83) hide show
  1. kaizen_3c_cli-1.0.0/CHANGELOG.md +374 -0
  2. kaizen_3c_cli-1.0.0/LICENSE +193 -0
  3. kaizen_3c_cli-1.0.0/MANIFEST.in +32 -0
  4. kaizen_3c_cli-1.0.0/NOTICE +119 -0
  5. kaizen_3c_cli-1.0.0/PKG-INFO +123 -0
  6. kaizen_3c_cli-1.0.0/README.md +113 -0
  7. kaizen_3c_cli-1.0.0/README.pypi.md +77 -0
  8. kaizen_3c_cli-1.0.0/cli/__init__.py +2 -0
  9. kaizen_3c_cli-1.0.0/cli/approval.py +72 -0
  10. kaizen_3c_cli-1.0.0/cli/bench/__init__.py +13 -0
  11. kaizen_3c_cli-1.0.0/cli/bench/value_add_fingerprint.py +327 -0
  12. kaizen_3c_cli-1.0.0/cli/commands/__init__.py +2 -0
  13. kaizen_3c_cli-1.0.0/cli/commands/bench.py +333 -0
  14. kaizen_3c_cli-1.0.0/cli/commands/decompose.py +233 -0
  15. kaizen_3c_cli-1.0.0/cli/commands/demo.py +312 -0
  16. kaizen_3c_cli-1.0.0/cli/commands/init.py +299 -0
  17. kaizen_3c_cli-1.0.0/cli/commands/mcp_serve.py +116 -0
  18. kaizen_3c_cli-1.0.0/cli/commands/memsafe_roadmap.py +562 -0
  19. kaizen_3c_cli-1.0.0/cli/commands/migrate_plan.py +586 -0
  20. kaizen_3c_cli-1.0.0/cli/commands/priors.py +86 -0
  21. kaizen_3c_cli-1.0.0/cli/commands/recompose.py +234 -0
  22. kaizen_3c_cli-1.0.0/cli/commands/resume.py +399 -0
  23. kaizen_3c_cli-1.0.0/cli/commands/status.py +130 -0
  24. kaizen_3c_cli-1.0.0/cli/commands/web.py +104 -0
  25. kaizen_3c_cli-1.0.0/cli/config.py +278 -0
  26. kaizen_3c_cli-1.0.0/cli/demo_assets/README.md +68 -0
  27. kaizen_3c_cli-1.0.0/cli/demo_assets/__init__.py +2 -0
  28. kaizen_3c_cli-1.0.0/cli/demo_assets/slugify_demo.tar.gz +0 -0
  29. kaizen_3c_cli-1.0.0/cli/events.py +248 -0
  30. kaizen_3c_cli-1.0.0/cli/main.py +140 -0
  31. kaizen_3c_cli-1.0.0/cli/mcp_server/__init__.py +20 -0
  32. kaizen_3c_cli-1.0.0/cli/mcp_server/server.py +543 -0
  33. kaizen_3c_cli-1.0.0/cli/mcp_server/tests/__init__.py +0 -0
  34. kaizen_3c_cli-1.0.0/cli/mcp_server/tests/test_server.py +224 -0
  35. kaizen_3c_cli-1.0.0/cli/output.py +241 -0
  36. kaizen_3c_cli-1.0.0/cli/pipeline/__init__.py +9 -0
  37. kaizen_3c_cli-1.0.0/cli/pipeline/decompose_v2.py +746 -0
  38. kaizen_3c_cli-1.0.0/cli/pipeline/oneshot_baseline.py +229 -0
  39. kaizen_3c_cli-1.0.0/cli/pipeline/recompose_v2.py +520 -0
  40. kaizen_3c_cli-1.0.0/cli/pipeline/roundtrip_diff.py +126 -0
  41. kaizen_3c_cli-1.0.0/cli/pipeline/specialist_review.py +162 -0
  42. kaizen_3c_cli-1.0.0/cli/review.py +246 -0
  43. kaizen_3c_cli-1.0.0/cli/tests/__init__.py +0 -0
  44. kaizen_3c_cli-1.0.0/cli/tests/test_approval.py +182 -0
  45. kaizen_3c_cli-1.0.0/cli/tests/test_bench.py +261 -0
  46. kaizen_3c_cli-1.0.0/cli/tests/test_config.py +244 -0
  47. kaizen_3c_cli-1.0.0/cli/tests/test_demo.py +214 -0
  48. kaizen_3c_cli-1.0.0/cli/tests/test_events.py +118 -0
  49. kaizen_3c_cli-1.0.0/cli/tests/test_init.py +211 -0
  50. kaizen_3c_cli-1.0.0/cli/tests/test_resume.py +259 -0
  51. kaizen_3c_cli-1.0.0/cli/tests/test_review.py +333 -0
  52. kaizen_3c_cli-1.0.0/cli/web_server/__init__.py +14 -0
  53. kaizen_3c_cli-1.0.0/cli/web_server/routes/__init__.py +2 -0
  54. kaizen_3c_cli-1.0.0/cli/web_server/routes/adr.py +33 -0
  55. kaizen_3c_cli-1.0.0/cli/web_server/routes/decompose.py +110 -0
  56. kaizen_3c_cli-1.0.0/cli/web_server/routes/memsafe.py +138 -0
  57. kaizen_3c_cli-1.0.0/cli/web_server/routes/migrate.py +133 -0
  58. kaizen_3c_cli-1.0.0/cli/web_server/routes/priors.py +50 -0
  59. kaizen_3c_cli-1.0.0/cli/web_server/routes/providers.py +44 -0
  60. kaizen_3c_cli-1.0.0/cli/web_server/routes/recompose.py +105 -0
  61. kaizen_3c_cli-1.0.0/cli/web_server/routes/runs.py +69 -0
  62. kaizen_3c_cli-1.0.0/cli/web_server/routes/status.py +55 -0
  63. kaizen_3c_cli-1.0.0/cli/web_server/routes/version.py +15 -0
  64. kaizen_3c_cli-1.0.0/cli/web_server/server.py +94 -0
  65. kaizen_3c_cli-1.0.0/cli/web_server/settings.py +53 -0
  66. kaizen_3c_cli-1.0.0/cli/web_server/sse.py +101 -0
  67. kaizen_3c_cli-1.0.0/cli/web_server/static/.build-info +4 -0
  68. kaizen_3c_cli-1.0.0/cli/web_server/static/assets/index-BsmHrNwi.js +187 -0
  69. kaizen_3c_cli-1.0.0/cli/web_server/static/assets/index-BsmHrNwi.js.map +1 -0
  70. kaizen_3c_cli-1.0.0/cli/web_server/static/assets/index-FELcRPb3.css +1 -0
  71. kaizen_3c_cli-1.0.0/cli/web_server/static/index.html +14 -0
  72. kaizen_3c_cli-1.0.0/cli/web_server/tests/__init__.py +0 -0
  73. kaizen_3c_cli-1.0.0/cli/web_server/tests/test_integration.py +123 -0
  74. kaizen_3c_cli-1.0.0/cli/web_server/tests/test_routes.py +189 -0
  75. kaizen_3c_cli-1.0.0/cli/web_server/tests/test_sse.py +168 -0
  76. kaizen_3c_cli-1.0.0/kaizen_3c_cli.egg-info/PKG-INFO +123 -0
  77. kaizen_3c_cli-1.0.0/kaizen_3c_cli.egg-info/SOURCES.txt +81 -0
  78. kaizen_3c_cli-1.0.0/kaizen_3c_cli.egg-info/dependency_links.txt +1 -0
  79. kaizen_3c_cli-1.0.0/kaizen_3c_cli.egg-info/entry_points.txt +2 -0
  80. kaizen_3c_cli-1.0.0/kaizen_3c_cli.egg-info/requires.txt +21 -0
  81. kaizen_3c_cli-1.0.0/kaizen_3c_cli.egg-info/top_level.txt +1 -0
  82. kaizen_3c_cli-1.0.0/pyproject.toml +94 -0
  83. kaizen_3c_cli-1.0.0/setup.cfg +4 -0
@@ -0,0 +1,374 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+ The format is based on [Keep a Changelog](https://keepachangelog.com/).
5
+
6
+ ## [1.0.0] - 2026-04-23
7
+
8
+ First public release on PyPI as `kaizen-3c-cli`, published from the public
9
+ repo `Kaizen-3C/kaizen-cli` (Apache-2.0). Prior versions shipped from the
10
+ private `kaizen-delta` monorepo under the package name `kaizen-cli`; the
11
+ `kaizen-cli` PyPI namespace was already held by an unrelated abandoned
12
+ project (Saurav Panda, last release 2024-09-30), so the public name pivots
13
+ to `kaizen-3c-cli`. The shell command stays `kaizen`.
14
+
15
+ ### Changed
16
+
17
+ - **Package renamed** `kaizen-cli` → `kaizen-3c-cli` for PyPI publication.
18
+ Shell command remains `kaizen`.
19
+ - **Repository URLs** in `pyproject.toml` point at `Kaizen-3C/kaizen-cli`
20
+ (new public repo) and `https://kaizen-3c.dev` for the homepage.
21
+ - **Packaging self-contained under `cli/`:** the sibling top-level packages
22
+ `kaizen_web/` and `kaizen_mcp/` were vendored into `cli/web_server/` and
23
+ `cli/mcp_server/` respectively. All imports rewritten; `git mv` preserved
24
+ history. `pyproject.toml [tool.setuptools.packages.find]` narrowed to
25
+ `["cli*"]`. This enables clean `git subtree split --prefix=cli` extraction
26
+ into the public repo.
27
+ - **`license-files`** in `pyproject.toml` now points at `LICENSE` (bare name,
28
+ standard for Apache-2.0 projects) plus `NOTICE`.
29
+
30
+ ### Removed
31
+
32
+ - **`cli/commands/run.py`** — unregistered dead code that still imported from
33
+ the private `agents.src.*` tree. Never wired into `cli/main.py`, not
34
+ reachable from any registered subcommand, safe delete. Removed to avoid
35
+ shipping a module with private-monorepo import references in the public
36
+ wheel.
37
+
38
+ ### Deferred to v1.1
39
+
40
+ `kaizen bench reproduce` was scoped and prototyped during W2 but deferred
41
+ to v1.1. The benchmarks repository at https://github.com/Kaizen-3C/benchmarks
42
+ remains the canonical path for reproduction; `kaizen bench commit0` now
43
+ prints an informational pointer to it with exact steps and requirements.
44
+
45
+ ### Added
46
+
47
+ - **`[demo]` extras** — `pip install "kaizen-3c-cli[demo]"` pulls in `pytest` so `kaizen demo`'s Step 3 runs live against the recomposed code. Without the extras, Step 3 prints the pre-recorded pytest output from the tarball — no ImportError, no confusion.
48
+ - Pre-recorded demo tarball at `cli/demo_assets/wcwidth_demo.tar.gz`: a
49
+ real Python-to-Python recomposition of `wcwidth` (decompose + recompose
50
+ with `--target-language Python`) so `kaizen demo` plays back a genuine
51
+ before/after with pytest deltas, not a tautology.
52
+ - `LICENSE`, `NOTICE`, `CONTRIBUTING.md`, `SECURITY.md` scaffolding
53
+ (authored as part of W2) — Apache-2.0, DCO-signed contributions,
54
+ 90-day security disclosure via `security@kaizen-3c.dev`.
55
+
56
+ ## [0.4.0] - 2026-04-22
57
+
58
+ Second release. Adds config-dir + first-run wizard + resume + adversarial LLM
59
+ review + approval prompt and ships the
60
+ **MCP server** as the v0.5.0 headline — kaizen is now callable as a tool from
61
+ Claude Desktop, Cursor, Zed, and any other MCP-capable client. Python floor
62
+ bumped to 3.10+.
63
+
64
+ ### Added
65
+
66
+ #### CLI subcommands
67
+
68
+ - `kaizen init` — first-run wizard. Interactive provider pick + env-var probe
69
+ + writes `~/.kaizen/config.toml` (platform-appropriate dir via
70
+ `platformdirs`). Flags: `--non-interactive` (CI), `--show` (print config
71
+ without modifying).
72
+ - `kaizen resume [--last | <run_id>]` — re-run recompose against the most
73
+ recent local ADR. Scans the working tree for `adr-root.md`, `roadmap.md`,
74
+ `plan.md`, `adr-*.md`, `ADR-*.md`; skips standard noisy dirs. `--list`
75
+ enumerates candidates. Passthrough flags for all recompose options.
76
+ - `kaizen mcp-serve` — MCP server (new `kaizen_mcp/` package). Exposes six
77
+ tools: `decompose`, `recompose`, `memsafe_roadmap`, `migrate_plan`,
78
+ `list_runs`, `read_adr`. Tool handlers call the same Python functions the
79
+ CLI uses, so every surface stays in lockstep. Transport: stdio (default,
80
+ for Claude Desktop) or SSE (`--transport sse --port 7866`). Requires
81
+ `pip install 'kaizen-3c-cli[mcp]'`.
82
+
83
+ #### CLI flags on existing pipeline commands
84
+
85
+ - `--llm-review` (on `decompose`, `recompose`, `memsafe-roadmap`,
86
+ `migrate-plan`) — adversarial review of the produced ADR by a different
87
+ model instance than the write agent (anti-vibe-coding guardrail per
88
+ ADR-0009). Review findings appear in the `result` event and as a
89
+ `<adr>.review.json` sidecar.
90
+ - `--review-model MODEL` — explicit override for the review-stage model
91
+ (otherwise auto-selected via a "flip heuristic": sonnet-4-5 → sonnet-4-6,
92
+ gpt-4o → gpt-4.1, etc.).
93
+ - `--approve` (on `memsafe-roadmap`, `migrate-plan`) — when combined with
94
+ `--recompose`, pause after the ADR is produced and prompt before continuing.
95
+ - `--yolo` — explicit opt-out of the approval prompt; equivalent to the
96
+ default behavior but usable in scripts for clarity.
97
+
98
+ #### Configuration
99
+
100
+ - New `cli/config.py` module with `load_config()` / `save_config()` /
101
+ `apply_defaults(args)`. Applied at the top of every pipeline command.
102
+ Precedence (highest wins): explicit CLI flag → env var → `config.toml` →
103
+ argparse defaults. Config schema covers `[providers]`, `[providers.<name>]`,
104
+ `[output]`, `[pipeline]`.
105
+
106
+ #### Internal
107
+
108
+ - New `cli/events.py` event kinds: `stage` with `name="llm_review"` and
109
+ `name="approval"` flow through the existing SSE + NDJSON schema
110
+ unchanged — web UI and CLI consumers see review findings and approval
111
+ decisions as normal events.
112
+ - `cli/review.py` — thin wrapper over the existing `cli/pipeline/specialist_review.py`
113
+ pipeline script; exposes `run_llm_review(adr_path, ...)` with auto-selected
114
+ review model and event emission.
115
+ - `cli/approval.py` — `approval_prompt(message, yolo=False, default=False)`
116
+ helper. Non-TTY environments fall back to `default` without prompting
117
+ (so CI pipelines don't hang).
118
+
119
+ ### Changed
120
+
121
+ - Python floor bumped from 3.9 to **3.10** (needed for the MCP SDK; also
122
+ aligns with modern tooling). Classifiers updated.
123
+ - `anthropic` dep pinned to `>=0.87.0` (fixes GHSA-q5f5-3gjm-7mfm +
124
+ GHSA-w828-4qhx-vxx3).
125
+ - New `[mcp]` optional extra for the MCP server.
126
+ - New `platformdirs>=4.0.0` runtime dep (used by `cli.config` for
127
+ cross-platform config-dir resolution).
128
+
129
+ ### Test coverage delta
130
+
131
+ Test count grew from 33 (v0.3.0) to **145** (v0.4.0):
132
+ - `cli/tests/test_config.py` — 22 tests
133
+ - `cli/tests/test_init.py` — 22 tests
134
+ - `cli/tests/test_resume.py` — 11 tests
135
+ - `cli/tests/test_review.py` — 21 tests
136
+ - `cli/tests/test_approval.py` — 17 tests
137
+ - `kaizen_mcp/tests/test_server.py` — 19 tests
138
+
139
+ Pre-existing suites (events, wedge routes, SSE) unchanged and still green.
140
+
141
+ ### Still not shipped
142
+
143
+ - `kaizen run` — remains in dev repo only (requires `agents/src/` transitive
144
+ closure; see v0.3.0 notes).
145
+ - Standalone binary, translated READMEs, interactive TUI — tracked in
146
+ the internal CLI roadmap for later releases.
147
+
148
+ ---
149
+
150
+ ## [0.3.0] - 2026-04-21
151
+
152
+ First public release — `pip install kaizen-3c-cli`. Apache-2.0 core, dual-licensed
153
+ with the Kaizen Enterprise Commercial License (see ADR-0053).
154
+
155
+ ### Added
156
+
157
+ #### CLI (`kaizen-cli`)
158
+
159
+ - `kaizen memsafe-roadmap <repo>` — C/C++ → Rust. Produces a CISA-format memory
160
+ safety roadmap and per-module ADR stubs. Supports `--plain`,
161
+ `--domain memory-safe`, `--recompose`, `--dry-run`, `--provider` (anthropic /
162
+ openai / ollama / litellm / mixed).
163
+ - `kaizen migrate-plan --from X --to Y <repo>` — framework modernization plan
164
+ across 9 language/framework pairs (AngularJS → Angular/React, jQuery → React,
165
+ .NET Framework → .NET 8/9, Python 2 → 3, Java 8 → 17/21, Spring 4 →
166
+ Spring Boot 3). Same flag surface as `memsafe-roadmap`.
167
+ - `kaizen decompose <repo>` — direct pipeline access (Source → ADR). Wraps
168
+ `cli.pipeline.decompose_v2` with all its flags (`--source-language`, `--glob`,
169
+ `--domain`, `--temperature`, `--no-signatures`).
170
+ - `kaizen recompose <adr>` — direct pipeline access (ADR → target code).
171
+ Wraps `cli.pipeline.recompose_v2` with its full flag surface.
172
+ - `kaizen status [--path]` — summarize recent Kaizen runs in a directory.
173
+ - `kaizen priors show|reset [--path]` — inspect / reset Thompson priors files.
174
+ - `kaizen web [--port] [--host] [--open]` — start the lite web UI on
175
+ `127.0.0.1:7865`. Requires `pip install 'kaizen-3c-cli[web]'`.
176
+ - Structured progress events via `cli.events` — CLI prints human-readable
177
+ lines by default; `KAIZEN_EVENT_STREAM=ndjson` switches to NDJSON for
178
+ `jq` / CI log ingestion. Wedge commands emit
179
+ `run.start` / `stage` / `detail` / `stage.done` / `result` events.
180
+
181
+ #### Web UI (`kaizen-3c-cli[web]`, optional)
182
+
183
+ - FastAPI backend at `kaizen_web/` — 11 routes over the CLI surface. Blocking
184
+ and SSE variants for all four pipeline commands (decompose, recompose,
185
+ memsafe-roadmap, migrate-plan). Read-only routes for status, priors,
186
+ artifact listing, ADR markdown fetch, provider/version introspection.
187
+ - React SPA at `ui-lite/` — 7 pages: Home, Decompose, Recompose, Memsafe,
188
+ Migrate, Local runs, ADR viewer. Vite + React 18 + Tailwind + React Query +
189
+ `@microsoft/fetch-event-source` for POST-SSE consumption.
190
+ - Single-origin deployment: `kaizen web` serves the pre-built SPA at `/`
191
+ alongside `/api/*` — no CORS, no separate dev server after install.
192
+ - Live progress streaming: every long-running wedge/pipeline call renders
193
+ stage-by-stage in the browser via SSE.
194
+
195
+ #### Documentation & Release Tooling (internal)
196
+
197
+ Release tooling + the allowlist-driven public-extract pipeline live in the
198
+ upstream monorepo and are not shipped in this repo. Public users consume
199
+ the released wheel on PyPI; contributors see the Apache-2.0 source here.
200
+
201
+ ### Dual-license boundary (ADR-0053)
202
+
203
+ Apache-2.0 covers the public CLI + web + MCP surfaces shipped here. The
204
+ Kaizen Enterprise Commercial License covers the .NET + React Commercial UI
205
+ (multi-tenancy, auth, audit-log, approval workflows, cost attribution) which
206
+ lives in a separate private repo. See `NOTICE` for the tier summary and
207
+ contact hello@kaizen-3c.dev for the commercial surface.
208
+
209
+ ### Not shipped in v0.3.0
210
+
211
+ - `kaizen run` (pre-reframe generic bootstrap orchestrator) — stays in the
212
+ private dev repo. Requires the `agents/src/` transitive closure which is
213
+ not on the public allowlist for v0.3.0. The Phase B wedges and the
214
+ decompose/recompose primitives cover the public surface.
215
+ - Rust orchestrator (`core/`) — 40+ deferred modules; Python pipeline is the
216
+ only end-to-end path in v0.3.0.
217
+ - Enterprise components (auth, MFA, SSO, RBAC, multi-tenancy, audit-log
218
+ export, approval workflows, cost attribution UI) — Commercial-tier only.
219
+
220
+ ### Case studies (reproducible)
221
+
222
+ Case-study writeups live in the upstream monorepo alongside source artifacts:
223
+
224
+ - **memsafe-01-inih** — C → Rust, 522 LOC. One-shot LLM: 6 `cargo check`
225
+ errors. Plain ADR pipeline: 1 error. ADR + memory-safe domain schema:
226
+ **0 errors**.
227
+ - **framework-01-nancy-context** — .NET Fx → .NET 8, 148 LOC. One-shot:
228
+ 14 `dotnet build` errors. Plain ADR pipeline: **0 errors**.
229
+
230
+ ---
231
+
232
+ ## [Unreleased]
233
+ ### Added
234
+ - Beta release preparation (security hardening, documentation, ADR cleanup)
235
+
236
+ ---
237
+
238
+ ## [0.1.0-alpha] - 2026-04-10
239
+
240
+ ### Core Engine
241
+
242
+ #### Added
243
+ - Rust orchestrator foundation with TTD-TOAR (renamed CD-AOR/TAOR) denoising loop
244
+ - Three-stream parallel execution pipeline in gRPC orchestrator
245
+ - Convergence gate and TAOR optimization with production benchmarks
246
+ - Phase 4B/Phase 5 48-hour baseline validation and 14-day RL training run
247
+ - 24-hour production monitoring and deployment approval workflow
248
+ - Cloud baseline validation with dual-track testing and cost routing analysis
249
+ - Held-out validation set for Opus critical review methodology
250
+
251
+ #### Fixed
252
+ - Rust type inference errors with explicit annotations across orchestrator modules
253
+ - Proto import paths and oneof Result enum usage in agent responses
254
+ - `Result` type name conflict resolved via fully qualified paths
255
+ - Deferred unimplemented Phase 9–11 modules to unblock orchestrator build
256
+
257
+ ---
258
+
259
+ ### Agents
260
+
261
+ #### Added
262
+ - Python gRPC agent layer with intelligent provider routing and liteLLM fallback
263
+ - Dual-provider configuration with independent Local/Cloud enabled/disabled toggles
264
+ - Real-time provider health status checking with auto-refresh
265
+ - Dynamic provider selection and cost estimation (7× cloud multiplier)
266
+ - Phase 27: Two-step goal submission with in-memory file upload session service
267
+ - Provider routing implementation guide and architecture documentation
268
+
269
+ #### Fixed
270
+ - Duplicate `ProviderOptions` and `RlConfig` definitions removed
271
+ - gRPC service serving deferred until proto integration complete
272
+ - gRPC client compilation errors resolved
273
+
274
+ ---
275
+
276
+ ### API
277
+
278
+ #### Added
279
+ - Phase 28: C# REST API with user authentication and PostgreSQL session management
280
+ - Phase 29: User profiles, refresh tokens, audit logging, and password reset
281
+ - Phase 30: Enhanced security with session hardening and CSRF/token rotation
282
+ - Database migrations and PostgreSQL connectivity
283
+ - CORS configuration driven by environment variables
284
+ - Comprehensive testing infrastructure with project isolation
285
+ - Goal history and artifact persistence API (Phases 1–5)
286
+ - Work sessions API with frontend integration
287
+
288
+ #### Changed
289
+ - Renamed CD-AOR/TAOR fields across entire C# API and proto layer (was TTD-TOAR/TOAR)
290
+ - Login set as initial landing route; home page gains Sign In button
291
+
292
+ #### Fixed
293
+ - HTTP 400 error on goal submission due to missing required fields
294
+ - API URL corrected to port 8001 across all consumers
295
+ - Login field name mismatch (`email` vs `username`)
296
+ - JSON deserialization issues in authentication API responses
297
+ - CORS configuration for separated UI/API container topology
298
+
299
+ ---
300
+
301
+ ### Frontend
302
+
303
+ #### Added
304
+ - React UI with decompose/recompose pages and goal submission workflow
305
+ - Enhanced submit-goal form with comprehensive CD-AOR controls and file upload
306
+ - Goal History system: create, list, detail, and artifact persistence (Phases 1–5)
307
+ - Work Sessions system with modal, list, and session state management
308
+ - Expandable textarea modal for composing large prompts
309
+ - Model selection flyout menu with 5 LLM options (GPT-4, Claude, Llama 2, etc.)
310
+ - 40+ `data-testid` attributes added for E2E test coverage
311
+ - Outline icons for all sidebar and toolbar buttons; infinity symbol in header
312
+
313
+ #### Changed
314
+ - Sidebar button styling updated to square shape matching AGENTS panel
315
+ - Model button repositioned to far-right of button row, aligned with textarea edge
316
+
317
+ #### Fixed
318
+ - Blank dashboard display resolved with welcome content
319
+ - UI API URL configuration corrected for browser (non-container) access
320
+ - Send/expand button arrows always visible (removed `transition-all` opacity conflict)
321
+ - `NewSessionModal` missing import and rendering restored
322
+ - Sidebar icons always visible with explicit fill, stroke, and opacity values
323
+
324
+ ---
325
+
326
+ ### Infrastructure
327
+
328
+ #### Added
329
+ - Docker Compose stacks for API, UI, LLM, and orchestrator services
330
+ - Nginx reverse proxy configuration for multi-container topology
331
+ - GitHub Actions CI/CD workflow for automated LaTeX PDF compilation
332
+ - CI/CD pipeline improvements and versioning scheme (P3 remediation)
333
+ - Comprehensive QA testing infrastructure and E2E test suite (Playwright)
334
+ - 13/13 authentication E2E tests passing; goals/decompose/recompose tests with graceful skipping
335
+
336
+ #### Fixed
337
+ - Docker dependency injection configuration enabling full stack deployment
338
+ - GitHub Actions updated to latest stable action versions
339
+ - Line endings normalized to LF for LaTeX source files
340
+
341
+ ---
342
+
343
+ ### Architecture
344
+
345
+ #### Added
346
+ - Three-tier workspace architecture with mirror script
347
+ - Comprehensive development roadmap covering Phases 1–30+
348
+ - ADR gap analysis across five iterations (V1–V5); all 49 gaps resolved at V5
349
+ - 14 residual issues (R1–R14) identified and remediated across P0–P2 implementation
350
+ - LaTeX empirical paper and research paper variants with statistical validation
351
+ - Hit-and-Adjust summary with Phase 4B findings
352
+ - PDF compilation guide with five build methods and Python helper script
353
+
354
+ #### Changed
355
+ - TTD-TOAR/TOAR terminology renamed to CD-AOR/TAOR across all ADRs and documentation
356
+
357
+ ---
358
+
359
+ ### Enterprise
360
+
361
+ #### Added
362
+ - Multi-tenancy foundation via PostgreSQL user and session isolation
363
+ - Audit logging for user management events (Phase 29)
364
+ - Password reset flow with token lifecycle management
365
+ - Refresh token rotation with session revocation support
366
+
367
+ ---
368
+
369
+ ## [0.0.1] - 2026-03-01 (estimated)
370
+ ### Added
371
+ - Initial repository setup with three-tier workspace architecture
372
+ - Phase 1 Picasso Study: CD-AOR/TAOR foundation in kaizen-alpha
373
+ - Base Docker infrastructure and LLM stack scaffolding
374
+ - Dashboard and form baseline from early UI prototype
@@ -0,0 +1,193 @@
1
+ Apache License
2
+ Version 2.0, January 2004
3
+ http://www.apache.org/licenses/
4
+
5
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
6
+
7
+ 1. Definitions.
8
+
9
+ "License" shall mean the terms and conditions for use, reproduction,
10
+ and distribution as defined by Sections 1 through 9 of this document.
11
+
12
+ "Licensor" shall mean the copyright owner or entity authorized by
13
+ the copyright owner that is granting the License.
14
+
15
+ "Legal Entity" shall mean the union of the acting entity and all
16
+ other entities that control, are controlled by, or are under common
17
+ control with that entity. For the purposes of this definition,
18
+ "control" means (i) the power, direct or indirect, to cause the
19
+ direction or management of such entity, whether by contract or
20
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
21
+ outstanding shares, or (iii) beneficial ownership of such entity.
22
+
23
+ "You" (or "Your") shall mean an individual or Legal Entity
24
+ exercising permissions granted by this License.
25
+
26
+ "Source" form shall mean the preferred form for making modifications,
27
+ including but not limited to software source code, documentation
28
+ source, and configuration files.
29
+
30
+ "Object" form shall mean any form resulting from mechanical
31
+ transformation or translation of a Source form, including but
32
+ not limited to compiled object code, generated documentation,
33
+ and conversions to other media types.
34
+
35
+ "Work" shall mean the work of authorship made available under
36
+ the License, as indicated by a copyright notice that is included in
37
+ or attached to the work (an example is provided in the Appendix below).
38
+
39
+ "Derivative Works" shall mean any work, whether in Source or Object
40
+ form, that is based on (or derived from) the Work and for which the
41
+ editorial revisions, annotations, elaborations, or other modifications
42
+ represent, as a whole, an original work of authorship. For the purposes
43
+ of this License, Derivative Works shall not include works that remain
44
+ separable from, or merely link (or bind by name) to the interfaces of,
45
+ the Work and its Derivative Works thereof.
46
+
47
+ "Contribution" shall mean, as submitted to the Licensor for inclusion
48
+ in the Work by the copyright owner or by an individual or Legal Entity
49
+ authorized to submit on behalf of the copyright owner. For the purposes
50
+ of this definition, "submitted" means any form of electronic, verbal,
51
+ or written communication sent to the Licensor or its representatives,
52
+ including but not limited to communication on electronic mailing lists,
53
+ source code control systems, and issue tracking systems that are managed
54
+ by, or on behalf of, the Licensor for the purpose of discussing and
55
+ improving the Work, but excluding communication that is conspicuously
56
+ marked or otherwise designated in writing by the copyright owner as
57
+ "Not a Contribution."
58
+
59
+ "Contributor" shall mean Licensor and any Legal Entity on behalf of
60
+ whom a Contribution has been received by the Licensor and subsequently
61
+ incorporated within the Work.
62
+
63
+ 2. Grant of Copyright License. Subject to the terms and conditions of
64
+ this License, each Contributor hereby grants to You a perpetual,
65
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
66
+ copyright license to reproduce, prepare Derivative Works of,
67
+ publicly display, publicly perform, sublicense, and distribute the
68
+ Work and such Derivative Works in Source or Object form.
69
+
70
+ 3. Grant of Patent License. Subject to the terms and conditions of
71
+ this License, each Contributor hereby grants to You a perpetual,
72
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
73
+ (except as stated in this section) patent license to make, have made,
74
+ use, offer to sell, sell, import, and otherwise transfer the Work,
75
+ where such license applies only to those patent claims licensable
76
+ by such Contributor that are necessarily infringed by their
77
+ Contribution(s) alone or by the combination of their Contribution(s)
78
+ with the Work to which such Contribution(s) was submitted. If You
79
+ institute patent litigation against any entity (including a cross-claim
80
+ or counterclaim in a lawsuit) alleging that the Work or any Contribution
81
+ incorporated within the Work constitutes patent or contributory patent
82
+ infringement, then any patent licenses granted to You under this License
83
+ for that Work shall terminate as of the date such litigation is filed.
84
+
85
+ 4. Redistribution. You may reproduce and distribute copies of the
86
+ Work or Derivative Works thereof in any medium, with or without
87
+ modifications, and in Source or Object form, provided that You
88
+ meet the following conditions:
89
+
90
+ (a) You must give any other recipients of the Work or Derivative
91
+ Works a copy of this License; and
92
+
93
+ (b) You must cause any modified files to carry prominent notices
94
+ stating that You changed the files; and
95
+
96
+ (c) You must retain, in the Source form of any Derivative Works
97
+ that You distribute, all copyright, patent, trademark, and
98
+ attribution notices from the Source form of the Work,
99
+ excluding those notices that do not pertain to any part of
100
+ the Derivative Works; and
101
+
102
+ (d) If the Work includes a "NOTICE" text file as part of its
103
+ distribution, You must include a readable copy of the
104
+ attribution notices contained within such NOTICE file, in
105
+ at least one of the following places: within a NOTICE text
106
+ file distributed as part of the Derivative Works; within
107
+ the Source form or documentation, if provided along with the
108
+ Derivative Works; or, within a display generated by the
109
+ Derivative Works, if and wherever such third-party notices
110
+ normally appear. The contents of the NOTICE file are for
111
+ informational purposes only and do not modify the License.
112
+ You may add Your own attribution notices within Derivative
113
+ Works that You distribute, alongside or as an addendum to
114
+ the NOTICE text from the Work, provided that such additional
115
+ attribution notices cannot be construed as modifying the License.
116
+
117
+ You may add Your own license statement for Your modifications and
118
+ may provide additional grant of rights to use, copy, modify, merge,
119
+ publish, distribute, sublicense, and/or sell copies of the
120
+ Derivative Works, and to permit persons to whom the Derivative
121
+ Works are furnished to do so.
122
+
123
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
124
+ any Contribution intentionally submitted for inclusion in the Work
125
+ by You to the Licensor shall be under the terms and conditions of
126
+ this License, without any additional terms or conditions.
127
+ Notwithstanding the above, nothing herein shall supersede or modify
128
+ the terms of any separate license agreement you may have executed
129
+ with Licensor regarding such Contributions.
130
+
131
+ 6. Trademarks. This License does not grant permission to use the trade
132
+ names, trademarks, service marks, or product names of the Licensor,
133
+ except as required for reasonable and customary use in describing the
134
+ origin of the Work and reproducing the content of the NOTICE file.
135
+
136
+ 7. Disclaimer of Warranty. Unless required by applicable law or
137
+ agreed to in writing, Licensor provides the Work (and each
138
+ Contributor provides its Contributions) on an "AS IS" BASIS,
139
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
140
+ implied, including, without limitation, any warranties or conditions
141
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
142
+ PARTICULAR PURPOSE. You are solely responsible for determining the
143
+ appropriateness of using or reproducing the Work and assume any
144
+ risks associated with Your exercise of permissions under this License.
145
+
146
+ 8. Limitation of Liability. In no event and under no legal theory,
147
+ whether in tort (including negligence), contract, or otherwise,
148
+ unless required by applicable law (such as deliberate and grossly
149
+ negligent acts) or agreed to in writing, shall any Contributor be
150
+ liable to You for damages, including any direct, indirect, special,
151
+ incidental, or exemplary damages of any character arising as a
152
+ result of this License or out of the use or inability to use the
153
+ Work (including but not limited to damages for loss of goodwill,
154
+ work stoppage, computer failure or malfunction, or all other
155
+ commercial damages or losses), even if such Contributor has been
156
+ advised of the possibility of such damages.
157
+
158
+ 9. Accepting Warranty or Additional Liability. While redistributing
159
+ the Work or Derivative Works thereof, You may choose to offer,
160
+ and charge a fee for, acceptance of support, warranty, indemnity,
161
+ or other liability obligations and/or rights consistent with this
162
+ License. However, in accepting such obligations, You may offer such
163
+ obligations only on Your own behalf and on Your sole responsibility,
164
+ not on behalf of any other Contributor, and only if You agree to
165
+ indemnify, defend, and hold each Contributor harmless for any
166
+ liability incurred by, or claims asserted against, such Contributor
167
+ by reason of your accepting any warranty or additional liability.
168
+
169
+ END OF TERMS AND CONDITIONS
170
+
171
+ APPENDIX: How to apply the Apache License to your work.
172
+
173
+ To apply the Apache License to your work, attach the following
174
+ boilerplate notice, with the fields enclosed by brackets "[]"
175
+ replaced with your own identifying information. (Don't include
176
+ the brackets!) The text should be enclosed in the appropriate
177
+ comment syntax for the file format in question. It is also
178
+ recommended that a file or directory name be included on the same
179
+ "as is" line as the copyright owner's name for the "same as is" line.
180
+
181
+ Copyright 2026 Anthony Adame (https://kaizen-3c.dev)
182
+
183
+ Licensed under the Apache License, Version 2.0 (the "License");
184
+ you may not use this file except in compliance with the License.
185
+ You may obtain a copy of the License at
186
+
187
+ http://www.apache.org/licenses/LICENSE-2.0
188
+
189
+ Unless required by applicable law or agreed to in writing, software
190
+ distributed under the License is distributed on an "AS IS" BASIS,
191
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
192
+ implied. See the License for the specific language governing
193
+ permissions and limitations under the License.
@@ -0,0 +1,32 @@
1
+ include README.pypi.md
2
+ include LICENSE
3
+ include NOTICE
4
+ include CHANGELOG.md
5
+ include pyproject.toml
6
+
7
+
8
+ # kaizen demo bundled cache (when present — generated by build-demo-cache.py)
9
+ recursive-include cli/demo_assets *
10
+
11
+ # kaizen bench vendored analysis scripts
12
+ recursive-include cli/bench *.py
13
+
14
+ # Lite web UI — pre-built SPA bundle served by FastAPI when `kaizen web` runs.
15
+ # Generated by `scripts/release/bundle-spa.py` (Vite build of `ui-lite/` copied
16
+ # into `cli/web_server/static/`). Not checked into git — regenerated per
17
+ # release — but included here so the sdist + wheel ship the built assets and
18
+ # `pip install 'kaizen-3c-cli[web]'` users get a working UI without needing Node.
19
+ recursive-include cli/web_server/static *
20
+
21
+ # Exclude noise
22
+ recursive-exclude tests *
23
+ recursive-exclude demo-workspaces *
24
+ recursive-exclude ui-lite/node_modules *
25
+ recursive-exclude ui-lite/src *
26
+ recursive-exclude ui-lite *.config.js
27
+ recursive-exclude ui-lite *.config.ts
28
+ recursive-exclude ui-lite tsconfig*.json
29
+ recursive-exclude ui-lite package*.json
30
+ global-exclude __pycache__
31
+ global-exclude *.py[cod]
32
+ global-exclude .DS_Store