@vibesdotdev/localdb 0.0.1 → 1.0.0-rc.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.
Files changed (199) hide show
  1. package/LICENSE +18 -0
  2. package/README.md +134 -112
  3. package/dist/cli/commands/_shared.consumer.d.ts +1 -3
  4. package/dist/cli/commands/_shared.consumer.d.ts.map +1 -1
  5. package/dist/cli/commands/_shared.consumer.js +1 -11
  6. package/dist/cli/commands/_shared.consumer.js.map +1 -1
  7. package/dist/cli/commands/migrate/dev.localdb.migrate.cli-command.descriptor.js +1 -1
  8. package/dist/cli/commands/migrate/dev.localdb.migrate.cli-command.descriptor.js.map +1 -1
  9. package/dist/cli/commands/migrate/dev.localdb.migrate.cli-command.impl.consumer.d.ts +9 -3
  10. package/dist/cli/commands/migrate/dev.localdb.migrate.cli-command.impl.consumer.d.ts.map +1 -1
  11. package/dist/cli/commands/migrate/dev.localdb.migrate.cli-command.impl.consumer.js +59 -45
  12. package/dist/cli/commands/migrate/dev.localdb.migrate.cli-command.impl.consumer.js.map +1 -1
  13. package/dist/cli/commands/namespaces/dev.localdb.namespaces.cli-command.descriptor.js +1 -1
  14. package/dist/cli/commands/namespaces/dev.localdb.namespaces.cli-command.descriptor.js.map +1 -1
  15. package/dist/cli/commands/namespaces/dev.localdb.namespaces.cli-command.impl.d.ts +8 -3
  16. package/dist/cli/commands/namespaces/dev.localdb.namespaces.cli-command.impl.d.ts.map +1 -1
  17. package/dist/cli/commands/namespaces/dev.localdb.namespaces.cli-command.impl.js +12 -10
  18. package/dist/cli/commands/namespaces/dev.localdb.namespaces.cli-command.impl.js.map +1 -1
  19. package/dist/cli/commands/pools/dev.localdb.pools.cli-command.descriptor.js +1 -1
  20. package/dist/cli/commands/pools/dev.localdb.pools.cli-command.descriptor.js.map +1 -1
  21. package/dist/cli/commands/pools/dev.localdb.pools.cli-command.impl.d.ts +6 -3
  22. package/dist/cli/commands/pools/dev.localdb.pools.cli-command.impl.d.ts.map +1 -1
  23. package/dist/cli/commands/pools/dev.localdb.pools.cli-command.impl.js +8 -7
  24. package/dist/cli/commands/pools/dev.localdb.pools.cli-command.impl.js.map +1 -1
  25. package/dist/cli/commands/query/dev.localdb.query.cli-command.descriptor.js +1 -1
  26. package/dist/cli/commands/query/dev.localdb.query.cli-command.descriptor.js.map +1 -1
  27. package/dist/cli/commands/query/dev.localdb.query.cli-command.impl.consumer.d.ts +13 -3
  28. package/dist/cli/commands/query/dev.localdb.query.cli-command.impl.consumer.d.ts.map +1 -1
  29. package/dist/cli/commands/query/dev.localdb.query.cli-command.impl.consumer.js +66 -51
  30. package/dist/cli/commands/query/dev.localdb.query.cli-command.impl.consumer.js.map +1 -1
  31. package/dist/cli/commands/status/dev.localdb.status.cli-command.descriptor.js +1 -1
  32. package/dist/cli/commands/status/dev.localdb.status.cli-command.descriptor.js.map +1 -1
  33. package/dist/cli/commands/status/dev.localdb.status.cli-command.impl.consumer.d.ts +9 -3
  34. package/dist/cli/commands/status/dev.localdb.status.cli-command.impl.consumer.d.ts.map +1 -1
  35. package/dist/cli/commands/status/dev.localdb.status.cli-command.impl.consumer.js +41 -29
  36. package/dist/cli/commands/status/dev.localdb.status.cli-command.impl.consumer.js.map +1 -1
  37. package/dist/cli/inputs.d.ts +25 -0
  38. package/dist/cli/inputs.d.ts.map +1 -0
  39. package/dist/cli/inputs.js +81 -0
  40. package/dist/cli/inputs.js.map +1 -0
  41. package/dist/cli/types.d.ts +45 -0
  42. package/dist/cli/types.d.ts.map +1 -0
  43. package/dist/cli/types.js +14 -0
  44. package/dist/cli/types.js.map +1 -0
  45. package/dist/core/connection-pool.d.ts +204 -46
  46. package/dist/core/connection-pool.d.ts.map +1 -1
  47. package/dist/core/connection-pool.js +610 -101
  48. package/dist/core/connection-pool.js.map +1 -1
  49. package/dist/core/database.d.ts +243 -63
  50. package/dist/core/database.d.ts.map +1 -1
  51. package/dist/core/database.js +937 -203
  52. package/dist/core/database.js.map +1 -1
  53. package/dist/core/holders.d.ts +15 -0
  54. package/dist/core/holders.d.ts.map +1 -0
  55. package/dist/core/holders.js +4 -0
  56. package/dist/core/holders.js.map +1 -0
  57. package/dist/core/host-kinds.d.ts +22 -0
  58. package/dist/core/host-kinds.d.ts.map +1 -0
  59. package/dist/core/host-kinds.js +52 -0
  60. package/dist/core/host-kinds.js.map +1 -0
  61. package/dist/core/live-runtime.d.ts +17 -0
  62. package/dist/core/live-runtime.d.ts.map +1 -0
  63. package/dist/core/live-runtime.js +28 -0
  64. package/dist/core/live-runtime.js.map +1 -0
  65. package/dist/core/migration-registry.d.ts +115 -80
  66. package/dist/core/migration-registry.d.ts.map +1 -1
  67. package/dist/core/migration-registry.js +340 -199
  68. package/dist/core/migration-registry.js.map +1 -1
  69. package/dist/core/open-connection.d.ts +11 -0
  70. package/dist/core/open-connection.d.ts.map +1 -0
  71. package/dist/core/open-connection.js +70 -0
  72. package/dist/core/open-connection.js.map +1 -0
  73. package/dist/core/outcome.d.ts +21 -0
  74. package/dist/core/outcome.d.ts.map +1 -0
  75. package/dist/core/outcome.js +22 -0
  76. package/dist/core/outcome.js.map +1 -0
  77. package/dist/core/pool-api.d.ts +19 -0
  78. package/dist/core/pool-api.d.ts.map +1 -0
  79. package/dist/core/pool-api.js +59 -0
  80. package/dist/core/pool-api.js.map +1 -0
  81. package/dist/core/slow-statement.d.ts +81 -0
  82. package/dist/core/slow-statement.d.ts.map +1 -0
  83. package/dist/core/slow-statement.js +149 -0
  84. package/dist/core/slow-statement.js.map +1 -0
  85. package/dist/core/wal-policy.d.ts +86 -0
  86. package/dist/core/wal-policy.d.ts.map +1 -0
  87. package/dist/core/wal-policy.js +115 -0
  88. package/dist/core/wal-policy.js.map +1 -0
  89. package/dist/dev.localdb.cli-group.descriptor.d.ts +1 -1
  90. package/dist/dev.localdb.cli-group.descriptor.d.ts.map +1 -1
  91. package/dist/dev.localdb.context.descriptor.d.ts +15 -1
  92. package/dist/dev.localdb.context.descriptor.d.ts.map +1 -1
  93. package/dist/dev.localdb.context.descriptor.js +1 -1
  94. package/dist/dev.localdb.context.descriptor.js.map +1 -1
  95. package/dist/dev.localdb.context.impl.consumer.d.ts +12 -5
  96. package/dist/dev.localdb.context.impl.consumer.d.ts.map +1 -1
  97. package/dist/dev.localdb.context.impl.consumer.js +14 -5
  98. package/dist/dev.localdb.context.impl.consumer.js.map +1 -1
  99. package/dist/driver/sqlite-driver.base.d.ts +107 -0
  100. package/dist/driver/sqlite-driver.base.d.ts.map +1 -0
  101. package/dist/driver/sqlite-driver.base.js +426 -0
  102. package/dist/driver/sqlite-driver.base.js.map +1 -0
  103. package/dist/driver/sqlite-driver.d.ts +154 -0
  104. package/dist/driver/sqlite-driver.d.ts.map +1 -0
  105. package/dist/driver/sqlite-driver.js +103 -0
  106. package/dist/driver/sqlite-driver.js.map +1 -0
  107. package/dist/index.d.ts +11 -5
  108. package/dist/index.d.ts.map +1 -1
  109. package/dist/index.js +8 -4
  110. package/dist/index.js.map +1 -1
  111. package/dist/localdb.client.descriptor.d.ts +10 -0
  112. package/dist/localdb.client.descriptor.d.ts.map +1 -0
  113. package/dist/localdb.client.descriptor.js +13 -0
  114. package/dist/localdb.client.descriptor.js.map +1 -0
  115. package/dist/localdb.client.impl.consumer.d.ts +11 -0
  116. package/dist/localdb.client.impl.consumer.d.ts.map +1 -0
  117. package/dist/localdb.client.impl.consumer.js +11 -0
  118. package/dist/localdb.client.impl.consumer.js.map +1 -0
  119. package/dist/localdb.plugin.d.ts +2 -2
  120. package/dist/localdb.plugin.d.ts.map +1 -1
  121. package/dist/localdb.plugin.js +58 -10
  122. package/dist/localdb.plugin.js.map +1 -1
  123. package/dist/location.d.ts +6 -0
  124. package/dist/location.d.ts.map +1 -0
  125. package/dist/location.js +6 -0
  126. package/dist/location.js.map +1 -0
  127. package/dist/migrations/load-sql.d.ts +25 -21
  128. package/dist/migrations/load-sql.d.ts.map +1 -1
  129. package/dist/migrations/load-sql.js +91 -76
  130. package/dist/migrations/load-sql.js.map +1 -1
  131. package/dist/pool.d.ts +3 -0
  132. package/dist/pool.d.ts.map +1 -0
  133. package/dist/pool.js +3 -0
  134. package/dist/pool.js.map +1 -0
  135. package/dist/schemas/api.d.ts +133 -59
  136. package/dist/schemas/api.d.ts.map +1 -1
  137. package/dist/schemas/api.js +1 -1
  138. package/dist/schemas/api.js.map +1 -1
  139. package/dist/schemas/migrations.d.ts +123 -0
  140. package/dist/schemas/migrations.d.ts.map +1 -0
  141. package/dist/schemas/migrations.js +55 -0
  142. package/dist/schemas/migrations.js.map +1 -0
  143. package/dist/schemas/pool.d.ts +27 -0
  144. package/dist/schemas/pool.d.ts.map +1 -0
  145. package/dist/schemas/pool.js +7 -0
  146. package/dist/schemas/pool.js.map +1 -0
  147. package/dist/schemas/sqlite-driver-base.d.ts +50 -0
  148. package/dist/schemas/sqlite-driver-base.d.ts.map +1 -0
  149. package/dist/schemas/sqlite-driver-base.js +2 -0
  150. package/dist/schemas/sqlite-driver-base.js.map +1 -0
  151. package/dist/testing/sqlite-driver-conformance.d.ts +42 -0
  152. package/dist/testing/sqlite-driver-conformance.d.ts.map +1 -0
  153. package/dist/testing/sqlite-driver-conformance.js +471 -0
  154. package/dist/testing/sqlite-driver-conformance.js.map +1 -0
  155. package/package.json +79 -106
  156. package/SPEC.md +0 -119
  157. package/dist/core/error-context.d.ts +0 -2
  158. package/dist/core/error-context.d.ts.map +0 -1
  159. package/dist/core/error-context.js +0 -17
  160. package/dist/core/error-context.js.map +0 -1
  161. package/dist/core/runtime.d.ts +0 -3
  162. package/dist/core/runtime.d.ts.map +0 -1
  163. package/dist/core/runtime.js +0 -17
  164. package/dist/core/runtime.js.map +0 -1
  165. package/dist/localdb.cloud.plugin.d.ts +0 -17
  166. package/dist/localdb.cloud.plugin.d.ts.map +0 -1
  167. package/dist/localdb.cloud.plugin.js +0 -23
  168. package/dist/localdb.cloud.plugin.js.map +0 -1
  169. package/src/cli/commands/_shared.consumer.ts +0 -20
  170. package/src/cli/commands/migrate/dev.localdb.migrate.cli-command.descriptor.ts +0 -20
  171. package/src/cli/commands/migrate/dev.localdb.migrate.cli-command.impl.consumer.ts +0 -97
  172. package/src/cli/commands/namespaces/dev.localdb.namespaces.cli-command.descriptor.ts +0 -17
  173. package/src/cli/commands/namespaces/dev.localdb.namespaces.cli-command.impl.ts +0 -46
  174. package/src/cli/commands/pools/dev.localdb.pools.cli-command.descriptor.ts +0 -16
  175. package/src/cli/commands/pools/dev.localdb.pools.cli-command.impl.ts +0 -37
  176. package/src/cli/commands/query/dev.localdb.query.cli-command.descriptor.ts +0 -21
  177. package/src/cli/commands/query/dev.localdb.query.cli-command.impl.consumer.ts +0 -69
  178. package/src/cli/commands/status/dev.localdb.status.cli-command.descriptor.ts +0 -20
  179. package/src/cli/commands/status/dev.localdb.status.cli-command.impl.consumer.ts +0 -93
  180. package/src/core/connection-pool.ts +0 -240
  181. package/src/core/database.ts +0 -419
  182. package/src/core/error-context.ts +0 -19
  183. package/src/core/migration-registry.ts +0 -321
  184. package/src/core/runtime.ts +0 -17
  185. package/src/dev.localdb.cli-group.descriptor.ts +0 -20
  186. package/src/dev.localdb.context.descriptor.ts +0 -13
  187. package/src/dev.localdb.context.impl.consumer.ts +0 -12
  188. package/src/index.ts +0 -28
  189. package/src/localdb.cloud.plugin.ts +0 -24
  190. package/src/localdb.plugin.ts +0 -43
  191. package/src/migrations/atlas/001-initial-schema.sql +0 -173
  192. package/src/migrations/atlas/002-lang-server-fields.sql +0 -12
  193. package/src/migrations/atlas/003-config-id-dedup.sql +0 -31
  194. package/src/migrations/atlas/004-fix-on-conflict-constraints.sql +0 -25
  195. package/src/migrations/atlas/005-diagnostics.sql +0 -66
  196. package/src/migrations/atlas/006-diagnostic-summaries.sql +0 -65
  197. package/src/migrations/atlas/007-diagnostic-slice.sql +0 -83
  198. package/src/migrations/load-sql.ts +0 -133
  199. package/src/schemas/api.ts +0 -92
package/LICENSE ADDED
@@ -0,0 +1,18 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 VIBES DEV LLC
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and
6
+ associated documentation files (the "Software"), to deal in the Software without restriction, including
7
+ without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8
+ copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the
9
+ following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be included in all copies or substantial
12
+ portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
15
+ LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO
16
+ EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
17
+ IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
18
+ USE OR OTHER DEALINGS IN THE SOFTWARE.
package/README.md CHANGED
@@ -1,121 +1,143 @@
1
1
  # @vibesdotdev/localdb
2
2
 
3
- Local SQLite primitive for the vibes consumer-hardware toolkit. Owns the
4
- connection pool, namespace migration registry, recovery/trapdoor flow, and the
5
- `vibes dev localdb` CLI surface. Backed by `bun:sqlite`; server-runtime only.
3
+ Local SQLite storage helpers and migration utilities for Vibes development surfaces.
6
4
 
7
- The contract lives in [`SPEC.md`](./SPEC.md). Operational status lives in
8
- [`PROD-CHECKLIST.md`](./PROD-CHECKLIST.md). This README is the developer
9
- quick-start.
5
+ This package is part of the public Vibes framework package set. The source repository is private while the public repository split is being prepared, so package documentation is published on the Vibes docs site.
10
6
 
11
7
  ## Install
12
8
 
13
- Workspace-only:
14
-
15
- ```jsonc
16
- // package.json
17
- {
18
- "dependencies": {
19
- "@vibesdotdev/localdb": "workspace:*",
20
- "@vibesdotdev/runtime": "workspace:*"
21
- }
22
- }
23
- ```
24
-
25
- ## Register migrations and open a database
26
-
27
- A domain module declares its migrations once and asks for its database by
28
- namespace + path. Migrations run on first `getDatabase()` for that
29
- `namespace:path`.
30
-
31
- ```ts
32
- import { localdb, type Migration } from '@vibesdotdev/localdb';
33
- import type { Database } from 'bun:sqlite';
34
-
35
- const MY_MIGRATIONS: Migration[] = [
36
- {
37
- version: 1,
38
- name: 'Create things table',
39
- up: (db: Database) => {
40
- db.exec(`
41
- CREATE TABLE IF NOT EXISTS things (
42
- id TEXT PRIMARY KEY,
43
- created_at TEXT NOT NULL DEFAULT (datetime('now'))
44
- )
45
- `);
46
- }
47
- }
48
- ];
49
-
50
- localdb.registerMigrations('my-module', MY_MIGRATIONS);
51
-
52
- const handle = await localdb.getDatabase(
53
- 'my-module',
54
- '.vibes/my-module/state.db',
55
- 'my-module-storage'
56
- );
57
-
58
- const db = handle.getDatabase();
59
- db.query('INSERT INTO things (id) VALUES (?)').run('hello');
60
- ```
61
-
62
- Migration versions must be `1..N` consecutive — registering out of order
63
- throws. Asking for an unregistered namespace throws. Migration failure
64
- triggers automatic recovery: the corrupted file is backed up
65
- (`*.bak-{ts}`, last 12 retained) and a fresh database is migrated from
66
- version 0.
67
-
68
- ## Get a raw connection (no migrations)
69
-
70
- For quick read-only tools or one-off scripts that don't need version
71
- management, `getRawDatabase` returns a pooled `bun:sqlite.Database` directly:
72
-
73
- ```ts
74
- import { localdb } from '@vibesdotdev/localdb';
75
-
76
- const raw = localdb.getRawDatabase('.vibes/scratch/log.db', 'log-reader');
77
- const rows = raw.query('SELECT * FROM events ORDER BY ts DESC LIMIT 100').all();
78
- ```
79
-
80
- This bypasses the migration registry. Prefer `getDatabase()` for any
81
- schema-owning code.
82
-
83
- ## CLI
84
-
85
- The package registers `vibes dev localdb` for inspecting state from a
86
- terminal:
87
-
88
9
  ```sh
89
- vibes dev localdb status # connection + migration status across namespaces
90
- vibes dev localdb namespaces # registered migration namespaces
91
- vibes dev localdb pools # connection pool statistics
92
- vibes dev localdb migrate <ns> # run pending migrations for a namespace
93
- vibes dev localdb query <ns> # raw SQL against a namespace database
10
+ bun add @vibesdotdev/localdb
11
+ # or
12
+ npm install @vibesdotdev/localdb
94
13
  ```
95
14
 
96
- Commands run on consumer hardware only.
97
-
98
- ## What lives where
99
-
100
- - The `storage/adapter` impl `storage.localdb.core` →
101
- [`@vibesdotdev/storage-adapter-localdb`](../storage-adapter-localdb/) (the
102
- thin storage wrapper that consumes this package).
103
- - App and feature schemas / migration SQL → the owning package or app.
104
- This package owns the SQLite *primitive*; it does not carry domain SQL.
105
- - Cloud / multi-tenant SQLite → use
106
- [`@vibesdotdev/storage-adapter-drizzle`](../storage-adapter-drizzle/)
107
- with libsql/Turso or D1.
108
-
109
- ## Verification
110
-
111
- ```sh
112
- bun test packages/localdb
113
- bun --bun tsc -p packages/localdb/tsconfig.json --noEmit
114
- ```
115
-
116
- ## Links
117
-
118
- - [SPEC.md](./SPEC.md) — package contract.
119
- - [storage](../storage/SPEC.md),
120
- [storage-adapter-localdb](../storage-adapter-localdb/),
121
- [storage-adapter-drizzle](../storage-adapter-drizzle/SPEC.md).
15
+ ## Documentation
16
+
17
+ - Package guide: https://docs.vibes.dev/localdb
18
+ - Vibes docs: https://docs.vibes.dev
19
+
20
+ ## License
21
+
22
+
23
+ MIT. See [LICENSE](LICENSE).
24
+
25
+ ## Migrations
26
+
27
+ Register with `localdb.registerMigrations(runtime, namespace, migrations, options?)`.
28
+ Declarations belong to that runtime's `localdb/migrations` kernel kind.
29
+ Versions must form `1..N`; input order is sorted. Each migration has a positive
30
+ integer `version`, a nonblank `name`, and an `up(db)` callback (optional `down`).
31
+ Recovery remains fail-closed unless the owner explicitly declares
32
+ `autoReset: true` for rebuildable data.
33
+
34
+ Registry reads now take the runtime first:
35
+ `migrationRegistry.getMigrations(runtime, namespace)`,
36
+ `getDatabaseStatus(runtime, db, namespace)`, and `listNamespaces(runtime)`.
37
+ The deprecated `getMigrations(namespace)` signature refuses
38
+ `INVALID_INPUT localdb-runtime-required`; callers must supply their runtime.
39
+ The runtime context's manager also supports its bound runtime for reads.
40
+ Unbound manager enumeration requires `localdb.listNamespaces(runtime)`.
41
+ Locations resolve through `resolveDatabaseLocationForNamespace(runtime, namespace)`.
42
+
43
+ Registration, guarded replacement, recovery options, and location types come
44
+ from the owning Zod schemas exported by `./schemas`. Malformed registration
45
+ refuses `INVALID_INPUT localdb-migration-registration-invalid`; malformed
46
+ replacement refuses `localdb-migration-replacement-invalid`, before mutation.
47
+ Replacement compares the exact observed version/name IDs and returns `false`
48
+ on a stale expectation. Location callbacks run only when queried; invalid
49
+ results refuse `localdb-migration-location-invalid`. They must return absolute
50
+ expected paths. Callback failures propagate to the caller.
51
+
52
+ Version tracking, legacy `user_version` bootstrap, and the migration execution
53
+ engine retain their behavior. Earlier successful migrations remain recorded
54
+ if a later migration fails; each migration must make its own changes atomic
55
+ or idempotent.
56
+
57
+ ## Runtime ownership and cleanup
58
+
59
+ Compose `@vibesdotdev/localdb/plugin` on a consumer host. After activation,
60
+ `getVibesClient('localdb', runtime)`, `tryGetVibesClient('localdb', runtime)`
61
+ and the `dev/localdb` context identify the same runtime-owned client.
62
+ The root `localdb` helper remains compatible and takes the handed runtime;
63
+ synchronous migration helpers query its kernel declarations directly. Calling a
64
+ bound client with another runtime lifecycle refuses
65
+ `CONFLICT localdb-runtime-mismatch`, including migration status, namespace
66
+ listing, and location reads. Omitted runtimes on these reads use the bound owner;
67
+ same-lifecycle views are accepted.
68
+
69
+ Each runtime has its own logical database handles and a kernel-owned default
70
+ physical pool. Reload generations inherit their root's pool. Composition roots
71
+ opening the same files across runtimes create one pool with
72
+ `createConnectionPool()` from `@vibesdotdev/localdb/pool` and pass it to each root with
73
+ `shareConnectionPool(runtime, pool)`. Register it during composition, before activation or first pool resolution.
74
+ The shared loader has higher kernel priority than the default and shares one SQLite connection and one path lock per file.
75
+ There is no ambient pool.
76
+ Disposing one runtime closes its logical handles while other holders keep working. A fork has its own
77
+ lifecycle; a view of the same lifecycle releases the same holdings.
78
+
79
+
80
+ The root `connectionPool` is a stateless compatibility facade. Its runtime-first
81
+ operations (`getConnection`, `retain`, `releaseConnection`, `closeConnection`,
82
+ `maintain`, `assertCanReplaceDatabase`, `closeAll`) route through the handed
83
+ runtime. `await connectionPool.forRuntime(runtime)` exposes the full
84
+ `ConnectionPoolApi` after kernel resolution. Synchronous facade calls require
85
+ an already resolved owner; otherwise they refuse
86
+ `UNAVAILABLE localdb-pool-unavailable`. Async resolution uses that refusal
87
+ only for absent pool registration; loader and implementation validation failures
88
+ propagate. The legacy `getStats()`, `withDatabasePathLock(path, task)`,
89
+ `releaseOrphanedConnection(path)`, and `ownsConnection(path, db)` signatures
90
+ remain callable and refuse `INVALID_INPUT localdb-runtime-required` when
91
+ ownership cannot be identified. Supply the runtime as the last argument or use
92
+ `forRuntime(runtime)`.
93
+
94
+ Physical implementations and composition helpers (`SQLiteConnectionPool`,
95
+ `createConnectionPool`, `shareConnectionPool`) live on `./pool`, outside
96
+ the root barrel. Re-registering the resolved shared owner is idempotent;
97
+ a different owner, a duplicate pending registration, or sharing after the default
98
+ was resolved refuses `CONFLICT localdb-pool-owner-selected`. Clients retain
99
+ their captured owner through release, reset, disposal and cleanup retries.
100
+ The public pool facade uses that same semantic client's captured owner, including
101
+ `forRuntime(runtime)`. Replacing a kernel pool loader or registering a higher
102
+ priority pool affects future clients; it never redirects an existing client's
103
+ acquisitions, statistics, locks or cleanup to a competing pool.
104
+ Independent roots have independent defaults. Automatic process-wide sharing
105
+ still requires the external host composition root to create one pool and register
106
+ it on every root before activation; this package does not provide that host wiring.
107
+
108
+ Concurrent `closeAll(runtime)` calls share cleanup. Every close is attempted;
109
+ failures propagate together as `AggregateError` and failed resources remain
110
+ available for retry. Direct `close(runtime)` propagates the driver's
111
+ `INTERNAL sqlite-close-failed` and keeps the same connection for another close
112
+ attempt. Pooled handles release their reference once; a refused physical close
113
+ stays owned by the pool, so retrying cleanup preserves other live borrowers.
114
+ A handle that acquired a connection but never finished initializing keeps that
115
+ connection reachable through `close(runtime)`. While the logical handle still
116
+ owns the connection — a direct handle whose close the driver refused — retrying
117
+ `initialize()` refuses `CONFLICT localdb-database-open` instead of abandoning
118
+ it; a pooled handle's logical release succeeds even when the pool's physical
119
+ close is refused, so the connection stays with the pool at zero references and
120
+ the handle owes no second release. Completed closes are idempotent. Ended-runtime releases sweep orphaned physical holdings
121
+ without suppressing cleanup failures. After full runtime disposal, new facade
122
+ lookups propagate the kernel's `INTERNAL runtime-unbootstrapped` refusal;
123
+ cleanup must run during finalization while its captured owner is accessible. New opens on an ending runtime refuse
124
+ `CANCELLED runtime-disposed`; closed handles refuse
125
+ `UNAVAILABLE localdb-database-closed`. Reset and automatic recovery refuse
126
+ `CONFLICT localdb-database-in-use` before touching another borrower's data.
127
+
128
+ Pooled and direct startup share one five-second contention budget measured by
129
+ the calling lifecycle clock. Only typed `sqlite-busy` setup failures retry.
130
+ The captured lifecycle owns the delay: disposal refuses `CANCELLED wait-aborted`
131
+ while waiting, or `CANCELLED runtime-disposed` during setup or before publication.
132
+ The budget spans all attempts and delays; each setup statement receives only its
133
+ remaining time. Failed handles close immediately; a failed close propagates both failures in an
134
+ `AggregateError` and prevents retry. Migrations and application statements are
135
+ never retried by this startup policy.
136
+
137
+ The root is isomorphic; `./plugin` is consumer-only and includes CLI loaders.
138
+ Driver bases and conformance helpers use the explicit `./sqlite-driver/base`
139
+ and `./test-tooling/sqlite-driver-conformance` subpaths.
140
+
141
+ Run `bun run check`, `bun run test` and `bun run build` for typechecking,
142
+ in-process unit proof and production emission. Cross-process startup is the
143
+ separate `bun run test:contention` integration entrypoint.
@@ -1,5 +1,3 @@
1
- export declare const databasePathsByNamespace: Record<string, string>;
2
- export declare function resolveDatabasePathForNamespace(namespace: string): string | undefined;
3
- export declare function resolveFromCwd(p: string): string;
1
+ export { resolveDatabaseLocationForNamespace, type NamespaceDatabaseLocation } from '../../location.ts';
4
2
  export declare function formatAgeMs(ageMs: number): string;
5
3
  //# sourceMappingURL=_shared.consumer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"_shared.consumer.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/_shared.consumer.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,wBAAwB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAG3D,CAAC;AAEF,wBAAgB,+BAA+B,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAErF;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAIjD"}
1
+ {"version":3,"file":"_shared.consumer.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/_shared.consumer.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,mCAAmC,EACnC,KAAK,yBAAyB,EAC9B,MAAM,mBAAmB,CAAC;AAE3B,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAIjD"}
@@ -1,14 +1,4 @@
1
- import { resolve } from 'node:path';
2
- export const databasePathsByNamespace = {
3
- atlas: '.vibes/atlas/vibes.db',
4
- session: '.vibes/session/sessions.db'
5
- };
6
- export function resolveDatabasePathForNamespace(namespace) {
7
- return databasePathsByNamespace[namespace];
8
- }
9
- export function resolveFromCwd(p) {
10
- return resolve(process.cwd(), p);
11
- }
1
+ export { resolveDatabaseLocationForNamespace } from "../../location.js";
12
2
  export function formatAgeMs(ageMs) {
13
3
  const ageMin = Math.floor(ageMs / 60000);
14
4
  const ageSec = Math.floor((ageMs % 60000) / 1000);
@@ -1 +1 @@
1
- {"version":3,"file":"_shared.consumer.js","sourceRoot":"","sources":["../../../src/cli/commands/_shared.consumer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,MAAM,CAAC,MAAM,wBAAwB,GAA2B;IAC/D,KAAK,EAAE,uBAAuB;IAC9B,OAAO,EAAE,4BAA4B;CACrC,CAAC;AAEF,MAAM,UAAU,+BAA+B,CAAC,SAAiB;IAChE,OAAO,wBAAwB,CAAC,SAAS,CAAC,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,CAAS;IACvC,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAa;IACxC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC;IACzC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;IAClD,OAAO,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,KAAK,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,CAAC;AAC5D,CAAC"}
1
+ {"version":3,"file":"_shared.consumer.js","sourceRoot":"","sources":["../../../src/cli/commands/_shared.consumer.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,mCAAmC,EAEnC,MAAM,mBAAmB,CAAC;AAE3B,MAAM,UAAU,WAAW,CAAC,KAAa;IACxC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC;IACzC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;IAClD,OAAO,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,KAAK,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,CAAC;AAC5D,CAAC"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Dev LocalDB Migrate CLI Command Descriptor
3
3
  */
4
- import { createRuntimeAsset } from '@vibesdotdev/runtime';
4
+ import { createRuntimeAsset } from '@vibesdotdev/kernel';
5
5
  export default createRuntimeAsset({
6
6
  id: 'dev.localdb.migrate',
7
7
  kind: 'cli/command',
@@ -1 +1 @@
1
- {"version":3,"file":"dev.localdb.migrate.cli-command.descriptor.js","sourceRoot":"","sources":["../../../../src/cli/commands/migrate/dev.localdb.migrate.cli-command.descriptor.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,eAAe,kBAAkB,CAAC;IACjC,EAAE,EAAE,qBAAqB;IACzB,IAAI,EAAE,aAAa;IACnB,IAAI,EAAE,SAAS;IACf,WAAW,EAAE,wBAAwB;IACrC,KAAK,EAAE,aAAa;IACpB,QAAQ,EAAE,CAAC,KAAK,CAAC;IACjB,QAAQ,EAAE,CAAC,UAAU,CAAC;IACtB,OAAO,EAAE,IAAI;IACb,OAAO,EAAE;QACR,EAAE,KAAK,EAAE,oBAAoB,EAAE,WAAW,EAAE,yCAAyC,EAAE;QACvF,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,+CAA+C,EAAE;KACpF;CACD,CAAC,CAAC"}
1
+ {"version":3,"file":"dev.localdb.migrate.cli-command.descriptor.js","sourceRoot":"","sources":["../../../../src/cli/commands/migrate/dev.localdb.migrate.cli-command.descriptor.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzD,eAAe,kBAAkB,CAAC;IACjC,EAAE,EAAE,qBAAqB;IACzB,IAAI,EAAE,aAAa;IACnB,IAAI,EAAE,SAAS;IACf,WAAW,EAAE,wBAAwB;IACrC,KAAK,EAAE,aAAa;IACpB,QAAQ,EAAE,CAAC,KAAK,CAAC;IACjB,QAAQ,EAAE,CAAC,UAAU,CAAC;IACtB,OAAO,EAAE,IAAI;IACb,OAAO,EAAE;QACR,EAAE,KAAK,EAAE,oBAAoB,EAAE,WAAW,EAAE,yCAAyC,EAAE;QACvF,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,+CAA+C,EAAE;KACpF;CACD,CAAC,CAAC"}
@@ -1,5 +1,11 @@
1
- declare const _default: {
2
- execute(_args: Record<string, unknown>, opts: Record<string, unknown>): Promise<void>;
1
+ import type { LocalDbCliCommandContext, LocalDbCliNoArguments } from '../../types.ts';
2
+ /** The options the CLI parses from this command's descriptor. */
3
+ interface MigrateOptions {
4
+ namespace?: string;
5
+ dryRun?: boolean;
6
+ }
7
+ declare const defaultExport: {
8
+ execute(_args: LocalDbCliNoArguments, opts: MigrateOptions, context: LocalDbCliCommandContext): Promise<void>;
3
9
  };
4
- export default _default;
10
+ export default defaultExport;
5
11
  //# sourceMappingURL=dev.localdb.migrate.cli-command.impl.consumer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dev.localdb.migrate.cli-command.impl.consumer.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/migrate/dev.localdb.migrate.cli-command.impl.consumer.ts"],"names":[],"mappings":";mBAOsB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;;AAD5F,wBA0FE"}
1
+ {"version":3,"file":"dev.localdb.migrate.cli-command.impl.consumer.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/migrate/dev.localdb.migrate.cli-command.impl.consumer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEX,wBAAwB,EACxB,qBAAqB,EAErB,MAAM,gBAAgB,CAAC;AAOxB,iEAAiE;AACjE,UAAU,cAAc;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;CACjB;AAiCD,QAAA,MAAM,aAAa;mBACG,qBAAqB,QAAQ,cAAc,WAAW,wBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC;CAyEnH,CAAC;AAEF,eAAe,aAAa,CAAC"}
@@ -1,16 +1,39 @@
1
- import { existsSync } from 'node:fs';
2
- import { getVibesRuntime } from '@vibesdotdev/runtime';
3
- import { requestCLIExit } from '@vibesdotdev/cli/providers';
4
- import { resolveDatabasePathForNamespace, resolveFromCwd } from '../_shared.consumer';
5
- export default {
6
- async execute(_args, opts) {
7
- const runtime = getVibesRuntime();
8
- const ui = (await runtime.context('cli/ui'));
9
- const localdb = (await runtime.context('dev/localdb'));
10
- const namespaceOpt = typeof opts.namespace === 'string' ? opts.namespace : undefined;
11
- const dryRun = Boolean(opts.dryRun);
1
+ import { migrationRegistry } from "../../../core/migration-registry.js";
2
+ import { attempt, settle } from "../../../core/outcome.js";
3
+ import { resolveDatabaseLocationForNamespace } from "../_shared.consumer.js";
4
+ import { existingFiles, readCliFlag, readCliText } from "../../inputs.js";
5
+ /** Migrate one database file, or list what would run; reports through `ui`, and logs on the command's runtime. */
6
+ async function migrateDatabase(runtime, localdb, ui, namespace, fullPath, dryRun) {
7
+ const db = await localdb.getRawDatabase(runtime, fullPath, 'localdb-migrate');
8
+ if (!migrationRegistry.needsMigration(runtime, db, namespace)) {
9
+ ui.success('Already up to date');
10
+ return 'current';
11
+ }
12
+ const status = migrationRegistry.getDatabaseStatus(runtime, db, namespace);
13
+ ui.log(`Pending: ${status.pendingMigrations} migration(s) (v${status.currentVersion} → v${status.targetVersion})`);
14
+ if (dryRun) {
15
+ ui.log('Would apply:');
16
+ for (const m of status.migrations) {
17
+ if (!m.applied)
18
+ ui.log(` • v${m.version}: ${m.name}`);
19
+ }
20
+ return 'listed';
21
+ }
22
+ await migrationRegistry.runMigrations(runtime, db, namespace);
23
+ ui.success('Migrations completed');
24
+ return 'migrated';
25
+ }
26
+ // Hoisted const: tsc rewriteRelativeImportExtensions does not rewrite `.ts` specifiers inside `export default <expr>` (TS 6.0.3).
27
+ const defaultExport = {
28
+ async execute(_args, opts, context) {
29
+ const runtime = context.runtime;
30
+ const ui = await runtime.context('cli/ui');
31
+ const app = await runtime.context('cli/app');
32
+ const localdb = await runtime.context('dev/localdb');
33
+ const namespaceOpt = readCliText(opts, 'namespace');
34
+ const dryRun = readCliFlag(opts, 'dryRun');
12
35
  ui.log(`\n=== LocalDB Migrate${dryRun ? ' (Dry Run)' : ''} ===\n`);
13
- const namespaces = localdb.listNamespaces();
36
+ const namespaces = localdb.listNamespaces(runtime);
14
37
  if (namespaces.length === 0) {
15
38
  ui.info('No migration namespaces registered.');
16
39
  return;
@@ -21,50 +44,40 @@ export default {
21
44
  if (namespacesToMigrate.length === 0) {
22
45
  ui.error(`Namespace '${namespaceOpt}' not found.`);
23
46
  ui.info(`Available namespaces: ${namespaces.join(', ')}`);
24
- requestCLIExit(1);
47
+ app.exit(1);
48
+ return;
25
49
  }
26
- const { migrationRegistry } = (await import('../../../core/migration-registry'));
27
50
  let migratedCount = 0;
28
51
  let errorCount = 0;
29
52
  for (const ns of namespacesToMigrate) {
30
- const dbPath = resolveDatabasePathForNamespace(ns);
31
- if (!dbPath) {
32
- ui.warn(`Skipping '${ns}': no known database path`);
53
+ const located = attempt(() => resolveDatabaseLocationForNamespace(runtime, ns));
54
+ if (located.failed) {
55
+ ui.error(`Skipping '${ns}': database location unresolvable (${String(located.cause)})`);
56
+ errorCount++;
33
57
  continue;
34
58
  }
35
- const fullPath = resolveFromCwd(dbPath);
36
- if (!existsSync(fullPath)) {
37
- ui.warn(`Skipping '${ns}': database not found (${dbPath})`);
59
+ const location = located.value;
60
+ if (!location) {
61
+ ui.warn(`Skipping '${ns}': no declared database location`);
38
62
  continue;
39
63
  }
40
- ui.log(`\nNamespace: ${ns}`);
41
- ui.log(`Database: ${dbPath}`);
42
- try {
43
- const db = localdb.getRawDatabase(fullPath, 'localdb-migrate');
44
- const needsMigration = migrationRegistry.needsMigration(db, ns);
45
- if (!needsMigration) {
46
- ui.success('Already up to date');
47
- continue;
48
- }
49
- const status = migrationRegistry.getDatabaseStatus(db, ns);
50
- ui.log(`Pending: ${status.pendingMigrations} migration(s) (v${status.currentVersion} → v${status.targetVersion})`);
51
- if (dryRun) {
52
- ui.log('Would apply:');
53
- for (const m of status.migrations) {
54
- if (!m.applied)
55
- ui.log(` • v${m.version}: ${m.name}`);
56
- }
64
+ const existingPaths = await existingFiles(runtime, location.expectedPaths);
65
+ if (existingPaths.length === 0) {
66
+ ui.warn(`Skipping '${ns}': no database found (${location.description})`);
67
+ continue;
68
+ }
69
+ for (const fullPath of existingPaths) {
70
+ ui.log(`\nNamespace: ${ns}`);
71
+ ui.log(`Database: ${fullPath}`);
72
+ const migrated = await settle(migrateDatabase(runtime, localdb, ui, ns, fullPath, dryRun));
73
+ if (migrated.failed) {
74
+ ui.error(`Error: ${String(migrated.cause)}`);
75
+ errorCount++;
57
76
  }
58
- else {
59
- await migrationRegistry.runMigrations(db, ns);
60
- ui.success('Migrations completed');
77
+ else if (migrated.value === 'migrated') {
61
78
  migratedCount++;
62
79
  }
63
80
  }
64
- catch (error) {
65
- ui.error(`Error: ${String(error)}`);
66
- errorCount++;
67
- }
68
81
  }
69
82
  ui.log('\n' + '─'.repeat(50));
70
83
  if (dryRun) {
@@ -74,7 +87,8 @@ export default {
74
87
  ui.info(`Migration complete: ${migratedCount} migrated, ${errorCount} errors`);
75
88
  }
76
89
  if (errorCount > 0)
77
- requestCLIExit(1);
90
+ app.exit(1);
78
91
  }
79
92
  };
93
+ export default defaultExport;
80
94
  //# sourceMappingURL=dev.localdb.migrate.cli-command.impl.consumer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dev.localdb.migrate.cli-command.impl.consumer.js","sourceRoot":"","sources":["../../../../src/cli/commands/migrate/dev.localdb.migrate.cli-command.impl.consumer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dev.localdb.migrate.cli-command.impl.consumer.js","sourceRoot":"","sources":["../../../../src/cli/commands/migrate/dev.localdb.migrate.cli-command.impl.consumer.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Dev LocalDB Namespaces CLI Command Descriptor
3
3
  */
4
- import { createRuntimeAsset } from '@vibesdotdev/runtime';
4
+ import { createRuntimeAsset } from '@vibesdotdev/kernel';
5
5
  export default createRuntimeAsset({
6
6
  id: 'dev.localdb.namespaces',
7
7
  kind: 'cli/command',
@@ -1 +1 @@
1
- {"version":3,"file":"dev.localdb.namespaces.cli-command.descriptor.js","sourceRoot":"","sources":["../../../../src/cli/commands/namespaces/dev.localdb.namespaces.cli-command.descriptor.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,eAAe,kBAAkB,CAAC;IACjC,EAAE,EAAE,wBAAwB;IAC5B,IAAI,EAAE,aAAa;IACnB,IAAI,EAAE,YAAY;IAClB,WAAW,EAAE,sCAAsC;IACnD,KAAK,EAAE,aAAa;IACpB,QAAQ,EAAE,CAAC,KAAK,CAAC;IACjB,QAAQ,EAAE,CAAC,UAAU,CAAC;IACtB,OAAO,EAAE,IAAI;IACb,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,2CAA2C,EAAE,CAAC;CAC3F,CAAC,CAAC"}
1
+ {"version":3,"file":"dev.localdb.namespaces.cli-command.descriptor.js","sourceRoot":"","sources":["../../../../src/cli/commands/namespaces/dev.localdb.namespaces.cli-command.descriptor.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzD,eAAe,kBAAkB,CAAC;IACjC,EAAE,EAAE,wBAAwB;IAC5B,IAAI,EAAE,aAAa;IACnB,IAAI,EAAE,YAAY;IAClB,WAAW,EAAE,sCAAsC;IACnD,KAAK,EAAE,aAAa;IACpB,QAAQ,EAAE,CAAC,KAAK,CAAC;IACjB,QAAQ,EAAE,CAAC,UAAU,CAAC;IACtB,OAAO,EAAE,IAAI;IACb,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,2CAA2C,EAAE,CAAC;CAC3F,CAAC,CAAC"}
@@ -1,5 +1,10 @@
1
- declare const _default: {
2
- execute(_args: Record<string, unknown>, opts: Record<string, unknown>): Promise<void>;
1
+ import type { LocalDbCliCommandContext, LocalDbCliNoArguments } from '../../types.ts';
2
+ /** The options the CLI parses from this command's descriptor. */
3
+ interface NamespacesOptions {
4
+ verbose?: boolean;
5
+ }
6
+ declare const defaultExport: {
7
+ execute(_args: LocalDbCliNoArguments, opts: NamespacesOptions, context: LocalDbCliCommandContext): Promise<void>;
3
8
  };
4
- export default _default;
9
+ export default defaultExport;
5
10
  //# sourceMappingURL=dev.localdb.namespaces.cli-command.impl.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dev.localdb.namespaces.cli-command.impl.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/namespaces/dev.localdb.namespaces.cli-command.impl.ts"],"names":[],"mappings":";mBAKsB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;;AAD5F,wBAyCE"}
1
+ {"version":3,"file":"dev.localdb.namespaces.cli-command.impl.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/namespaces/dev.localdb.namespaces.cli-command.impl.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,qBAAqB,EAAuB,MAAM,gBAAgB,CAAC;AAK3G,iEAAiE;AACjE,UAAU,iBAAiB;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB;AAGD,QAAA,MAAM,aAAa;mBACG,qBAAqB,QAAQ,iBAAiB,WAAW,wBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC;CAmCtH,CAAC;AAEF,eAAe,aAAa,CAAC"}
@@ -1,12 +1,14 @@
1
- import { getVibesRuntime } from '@vibesdotdev/runtime';
2
- export default {
3
- async execute(_args, opts) {
4
- const runtime = getVibesRuntime();
5
- const ui = (await runtime.context('cli/ui'));
6
- const localdb = (await runtime.context('dev/localdb'));
7
- const verbose = Boolean(opts.verbose);
1
+ import { migrationRegistry } from "../../../core/migration-registry.js";
2
+ import { readCliFlag } from "../../inputs.js";
3
+ // Hoisted const: tsc rewriteRelativeImportExtensions does not rewrite `.ts` specifiers inside `export default <expr>` (TS 6.0.3).
4
+ const defaultExport = {
5
+ async execute(_args, opts, context) {
6
+ const runtime = context.runtime;
7
+ const ui = await runtime.context('cli/ui');
8
+ const localdb = await runtime.context('dev/localdb');
9
+ const verbose = readCliFlag(opts, 'verbose');
8
10
  ui.log('\n=== Registered Migration Namespaces ===\n');
9
- const namespaces = localdb.listNamespaces();
11
+ const namespaces = localdb.listNamespaces(runtime);
10
12
  if (namespaces.length === 0) {
11
13
  ui.info('No migration namespaces registered.');
12
14
  ui.info('Namespaces are registered when their modules are loaded.');
@@ -18,10 +20,9 @@ export default {
18
20
  ui.info('\nUse --verbose to see migration details\n');
19
21
  return;
20
22
  }
21
- const { migrationRegistry } = (await import('../../../core/migration-registry.js'));
22
23
  for (const ns of namespaces) {
23
24
  ui.log(`\nNamespace: ${ns}`);
24
- const migrations = migrationRegistry.getMigrations(ns);
25
+ const migrations = migrationRegistry.getMigrations(runtime, ns);
25
26
  ui.log(`Migrations: ${migrations.length}`);
26
27
  for (const m of migrations) {
27
28
  ui.log(` • v${m.version}: ${m.name}${m.down ? ' (reversible)' : ''}`);
@@ -30,4 +31,5 @@ export default {
30
31
  ui.log('\n');
31
32
  }
32
33
  };
34
+ export default defaultExport;
33
35
  //# sourceMappingURL=dev.localdb.namespaces.cli-command.impl.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dev.localdb.namespaces.cli-command.impl.js","sourceRoot":"","sources":["../../../../src/cli/commands/namespaces/dev.localdb.namespaces.cli-command.impl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAIvD,eAAe;IACd,KAAK,CAAC,OAAO,CAAC,KAA8B,EAAE,IAA6B;QAC1E,MAAM,OAAO,GAAG,eAAe,EAAE,CAAC;QAClC,MAAM,EAAE,GAAG,CAAC,MAAM,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAc,CAAC;QAC1D,MAAM,OAAO,GAAG,CAAC,MAAM,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAe,CAAC;QAErE,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAEtC,EAAE,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC;QAEtD,MAAM,UAAU,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;QAC5C,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,EAAE,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;YAC/C,EAAE,CAAC,IAAI,CAAC,0DAA0D,CAAC,CAAC;YACpE,EAAE,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC;YAC/D,OAAO;QACR,CAAC;QAED,IAAI,CAAC,OAAO,EAAE,CAAC;YACd,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;YACtD,EAAE,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;YACtD,OAAO;QACR,CAAC;QAED,MAAM,EAAE,iBAAiB,EAAE,GAC1B,CAAC,MAAM,MAAM,CAAC,kCAAkC,CAAC,CAEhD,CAAC;QAEH,KAAK,MAAM,EAAE,IAAI,UAAU,EAAE,CAAC;YAC7B,EAAE,CAAC,GAAG,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;YAC7B,MAAM,UAAU,GAAG,iBAAiB,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;YACvD,EAAE,CAAC,GAAG,CAAC,eAAe,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;YAE3C,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;gBAC5B,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACxE,CAAC;QACF,CAAC;QAED,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACd,CAAC;CACD,CAAC"}
1
+ {"version":3,"file":"dev.localdb.namespaces.cli-command.impl.js","sourceRoot":"","sources":["../../../../src/cli/commands/namespaces/dev.localdb.namespaces.cli-command.impl.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AACxE,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAO9C,kIAAkI;AAClI,MAAM,aAAa,GAAG;IACrB,KAAK,CAAC,OAAO,CAAC,KAA4B,EAAE,IAAuB,EAAE,OAAiC;QACrG,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAChC,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC,OAAO,CAAsB,QAAQ,CAAC,CAAC;QAChE,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,CAAa,aAAa,CAAC,CAAC;QAEjE,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAE7C,EAAE,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC;QAEtD,MAAM,UAAU,GAAG,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QACnD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,EAAE,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;YAC/C,EAAE,CAAC,IAAI,CAAC,0DAA0D,CAAC,CAAC;YACpE,EAAE,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC;YAC/D,OAAO;QACR,CAAC;QAED,IAAI,CAAC,OAAO,EAAE,CAAC;YACd,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;YACtD,EAAE,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;YACtD,OAAO;QACR,CAAC;QAED,KAAK,MAAM,EAAE,IAAI,UAAU,EAAE,CAAC;YAC7B,EAAE,CAAC,GAAG,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;YAC7B,MAAM,UAAU,GAAG,iBAAiB,CAAC,aAAa,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YAChE,EAAE,CAAC,GAAG,CAAC,eAAe,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;YAE3C,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;gBAC5B,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACxE,CAAC;QACF,CAAC;QAED,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACd,CAAC;CACD,CAAC;AAEF,eAAe,aAAa,CAAC"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Dev LocalDB Pools CLI Command Descriptor
3
3
  */
4
- import { createRuntimeAsset } from '@vibesdotdev/runtime';
4
+ import { createRuntimeAsset } from '@vibesdotdev/kernel';
5
5
  export default createRuntimeAsset({
6
6
  id: 'dev.localdb.pools',
7
7
  kind: 'cli/command',
@@ -1 +1 @@
1
- {"version":3,"file":"dev.localdb.pools.cli-command.descriptor.js","sourceRoot":"","sources":["../../../../src/cli/commands/pools/dev.localdb.pools.cli-command.descriptor.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,eAAe,kBAAkB,CAAC;IACjC,EAAE,EAAE,mBAAmB;IACvB,IAAI,EAAE,aAAa;IACnB,IAAI,EAAE,OAAO;IACb,WAAW,EAAE,iCAAiC;IAC9C,KAAK,EAAE,aAAa;IACpB,QAAQ,EAAE,CAAC,KAAK,CAAC;IACjB,QAAQ,EAAE,CAAC,UAAU,CAAC;IACtB,OAAO,EAAE,IAAI;CACb,CAAC,CAAC"}
1
+ {"version":3,"file":"dev.localdb.pools.cli-command.descriptor.js","sourceRoot":"","sources":["../../../../src/cli/commands/pools/dev.localdb.pools.cli-command.descriptor.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzD,eAAe,kBAAkB,CAAC;IACjC,EAAE,EAAE,mBAAmB;IACvB,IAAI,EAAE,aAAa;IACnB,IAAI,EAAE,OAAO;IACb,WAAW,EAAE,iCAAiC;IAC9C,KAAK,EAAE,aAAa;IACpB,QAAQ,EAAE,CAAC,KAAK,CAAC;IACjB,QAAQ,EAAE,CAAC,UAAU,CAAC;IACtB,OAAO,EAAE,IAAI;CACb,CAAC,CAAC"}