@shaferllc/keel 0.77.0 → 0.78.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -90,32 +90,32 @@ from a working skeleton.
90
90
  git clone https://github.com/shaferllc/keel.git
91
91
  cd keel
92
92
  npm install
93
- npm run dev # example app on http://localhost:3000
93
+ npm test # 740 tests
94
+ npm run typecheck # src + tests
94
95
  npm run build # compile the package to dist/
96
+ npm run verify:release # build from what's committed — what a consumer's install runs
95
97
  ```
96
98
 
97
- ```bash
98
- curl localhost:3000/ # HomeController@index (JSON)
99
- curl localhost:3000/ping # inline closure route
100
- curl localhost:3000/hello/Tom # route parameter
101
- ```
99
+ This repo is **the framework, and only the framework** — there is no app in it. To
100
+ run one, clone the [starter app](https://github.com/shaferllc/keel-app) and point it
101
+ at your checkout (`"@shaferllc/keel": "file:../keel"`).
102
102
 
103
103
  ## The console
104
104
 
105
105
  ```bash
106
- npm run keel routes # list every registered route
107
- npm run keel serve --port 8080 # start the server on a chosen port
108
- npm run keel make:controller Post # -> app/Controllers/PostController.ts
109
- npm run keel make:provider Billing # -> app/Providers/BillingServiceProvider.ts
110
- npm run keel make:middleware Auth # -> app/Http/Middleware/authMiddleware.ts
111
- npm run keel make:page users/[id] # -> resources/pages/users/[id].tsx
112
- npm run keel make:command greet # -> app/Commands/greet.ts
113
- npm run keel repl # a shell with the app booted
114
- npm run keel mcp # start the MCP server (docs + API for AI agents)
106
+ keel routes # list every registered route
107
+ keel serve --port 8080 # start the server on a chosen port
108
+ keel make:controller Post # -> app/Controllers/PostController.ts
109
+ keel make:provider Billing # -> app/Providers/BillingServiceProvider.ts
110
+ keel make:middleware Auth # -> app/Http/Middleware/authMiddleware.ts
111
+ keel make:page users/[id] # -> resources/pages/users/[id].tsx
112
+ keel make:command greet # -> app/Commands/greet.ts
113
+ keel repl # a shell with the app booted
114
+ keel mcp # start the MCP server (docs + API for AI agents)
115
115
  ```
116
116
 
117
- Under the hood the console binary is `bin/keel.ts`; the npm scripts wrap it with
118
- `tsx`.
117
+ These run in **your app**, from its own `bin/keel.ts` which is a few lines that
118
+ hand the console your application factory (see the [console guide](./docs/console.md)).
119
119
 
120
120
  ## Built for AI ⚓🤖
121
121
 
@@ -146,7 +146,7 @@ export changes with `npm run build:ai` (also runs automatically on `npm run buil
146
146
  ## Project layout
147
147
 
148
148
  ```
149
- src/core/ The framework (destined to become @keel/core on npm)
149
+ src/core/ The framework
150
150
  ├─ container.ts Service container — bind / singleton / instance / make
151
151
  ├─ application.ts Kernel: env + config loading + provider lifecycle
152
152
  ├─ config.ts Dot-notation config repository + env() helper
@@ -154,26 +154,24 @@ src/core/ The framework (destined to become @keel/core on npm)
154
154
  ├─ http/
155
155
  │ ├─ router.ts Route facade (closures or [Controller, method] tuples)
156
156
  │ └─ kernel.ts Global middleware + compiles routes onto Hono
157
- ├─ cli/ The `keel` console and make: stubs
158
- └─ index.ts Public surface — userland imports "@keel/core"
159
-
160
- app/ Your application code
161
- ├─ Controllers/ Resolved from the container (dependency injection)
162
- ├─ Providers/ Register + wire services
163
- └─ Http/
164
- ├─ Kernel.ts Register global middleware here
165
- └─ Middleware/
166
-
167
- bootstrap/ createApplication(): boots providers, loads routes
168
- ├─ app.ts
169
- └─ providers.ts The list of providers to load
170
-
171
- config/ config/app.ts -> config('app.*')
172
- routes/web.ts Route definitions
157
+ ├─ cli/ The console: commands, generators, the kernel that runs them
158
+ └─ index.ts Public surface — apps import "@shaferllc/keel/core"
159
+
160
+ src/db/ Database adapters (D1, Postgres, libSQL)
161
+ src/api/ CRUD REST resources from a model
162
+ src/openapi/ Generates an OpenAPI spec from the routes
163
+ src/watch/ The debug dashboard
164
+ src/mcp/ The MCP server (docs + API for AI agents)
165
+ src/vite/ The Vite plugin
166
+
167
+ tests/ 740 tests
168
+ docs/ Every guide, plus type-checked examples of each
169
+ scripts/ build-ai (llms.txt, the MCP manifest), verify-release
173
170
  ```
174
171
 
175
- The `app/` vs `src/core/` split mirrors the classic application-vs-library
176
- separation: your code in `app/`, the framework in `src/core/`.
172
+ **There is no `app/` here.** Your application code controllers, providers,
173
+ routes, config lives in *your* repo, not the framework's. The
174
+ [starter app](https://github.com/shaferllc/keel-app) has the layout.
177
175
 
178
176
  ## The request lifecycle
179
177
 
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@shaferllc/keel",
3
- "version": "0.77.0",
3
+ "version": "0.78.2",
4
4
  "description": "The house framework for Node.js — a service container, providers, routing, JSX views, and a code-generating console.",
5
5
  "repo": "https://github.com/shaferllc/keel",
6
6
  "generated": "run `npm run build:ai` to regenerate",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@shaferllc/keel",
3
- "version": "0.77.0",
3
+ "version": "0.78.2",
4
4
  "type": "module",
5
5
  "description": "The house framework for Node.js — a service container, providers, routing, JSX views, and a code-generating console.",
6
6
  "license": "MIT",
@@ -64,7 +64,8 @@
64
64
  "./cli": {
65
65
  "types": "./dist/core/cli/index.d.ts",
66
66
  "import": "./dist/core/cli/index.js"
67
- }
67
+ },
68
+ "./package.json": "./package.json"
68
69
  },
69
70
  "bin": {
70
71
  "keel-mcp": "./bin/keel-mcp.mjs"
@@ -81,9 +82,6 @@
81
82
  "access": "public"
82
83
  },
83
84
  "scripts": {
84
- "keel": "tsx bin/keel.ts",
85
- "serve": "tsx bin/keel.ts serve",
86
- "dev": "tsx watch bin/keel.ts serve",
87
85
  "mcp": "tsx bin/keel-mcp.ts",
88
86
  "typecheck": "tsc --noEmit && npm run typecheck:tests",
89
87
  "typecheck:docs": "npm run build && tsc -p tsconfig.docs.json",
@@ -93,8 +91,6 @@
93
91
  "build:watch-ui": "vite build --config src/watch/ui/vite.config.ts",
94
92
  "build:watch-copy": "mkdir -p dist/watch/ui && cp -R src/watch/ui/dist dist/watch/ui/dist && cp src/watch/watch.config.stub dist/watch/ && cp src/openapi/openapi.config.stub dist/openapi/ && cp src/api/api.config.stub dist/api/",
95
93
  "build": "npm run build:ai && npm run build:watch-ui && rm -rf dist && tsc -p tsconfig.build.json && npm run build:watch-copy",
96
- "dev:client": "vite",
97
- "build:client": "vite build",
98
94
  "prepare": "npm run build",
99
95
  "typecheck:tests": "tsc --noEmit -p tsconfig.tests.json",
100
96
  "verify:release": "bash scripts/verify-release.sh",