@voltro/cli 0.1.5 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +16 -0
- package/THIRD-PARTY-NOTICES.md +1154 -4635
- package/dist/apiBuild-CRV5VLc-.js +2 -0
- package/dist/{apiBuild-B-SMjwR_.js → apiBuild-CnF3GAcP.js} +1 -1
- package/dist/bin.js +2 -2
- package/dist/{commands-BHIaKj-w.js → commands-5AlC8Udj.js} +1341 -1318
- package/dist/{dev-BhBMpHkm.js → dev-CZ2WE3zn.js} +531 -513
- package/dist/dev-DFhyP4GC.js +2 -0
- package/dist/index.js +1 -1
- package/package.json +17 -23
- package/templates/agent-docs/ai.md +21 -21
- package/templates/agent-docs/authentication.md +9 -9
- package/templates/agent-docs/cli.md +1 -1
- package/templates/agent-docs/data.md +7 -7
- package/templates/agent-docs/database/hosting.md +18 -0
- package/templates/agent-docs/database/migrations.md +13 -13
- package/templates/agent-docs/database/querying.md +6 -6
- package/templates/agent-docs/deployment.md +28 -0
- package/templates/apps/api-ai/package.json +7 -7
- package/templates/apps/api-auth/package.json +8 -7
- package/templates/apps/api-backend/package.json +7 -7
- package/templates/apps/api-backend-deactivation/package.json +7 -7
- package/templates/apps/api-backend-mail/package.json +8 -8
- package/templates/apps/api-backend-mariadb/package.json +9 -9
- package/templates/apps/api-backend-storage/package.json +8 -8
- package/templates/apps/api-data-advanced/package.json +8 -8
- package/templates/apps/api-durable/package.json +8 -8
- package/templates/apps/api-feature-flags/package.json +9 -8
- package/templates/apps/api-governance/package.json +8 -8
- package/templates/apps/api-kv/package.json +8 -8
- package/templates/apps/api-moderation/package.json +8 -8
- package/templates/apps/api-observability/package.json +8 -8
- package/templates/apps/api-ratelimit/package.json +8 -8
- package/templates/apps/api-rbac/package.json +8 -8
- package/templates/apps/api-rest/package.json +7 -6
- package/templates/apps/api-saas/package.json +11 -10
- package/templates/apps/api-search/package.json +8 -8
- package/templates/apps/api-versioning/package.json +8 -8
- package/templates/apps/api-webhooks/package.json +8 -7
- package/templates/apps/changelog/package.json +6 -6
- package/templates/apps/edge-functions/package.json +2 -2
- package/templates/apps/frontend-admin/package.json +8 -8
- package/templates/apps/frontend-app/package.json +8 -8
- package/templates/apps/frontend-blank/package.json +7 -7
- package/templates/apps/frontend-contact/package.json +7 -7
- package/templates/apps/frontend-dashboard/package.json +7 -7
- package/templates/apps/frontend-docs/package.json +7 -7
- package/templates/apps/frontend-i18n/package.json +6 -6
- package/templates/apps/frontend-landing/package.json +7 -7
- package/templates/apps/frontend-spa/package.json +7 -7
- package/templates/apps/frontend-ssr/package.json +7 -7
- package/templates/apps/frontend-ssr-api/package.json +8 -8
- package/templates/apps/frontend-static-blog/package.json +6 -6
- package/templates/baselines/compose/docker/api.Dockerfile +10 -6
- package/templates/baselines/compose-mariadb/docker/api.Dockerfile +10 -6
- package/dist/apiBuild-Blk0vma3.js +0 -2
- package/dist/dev-BjylpfGQ.js +0 -2
package/dist/index.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@voltro/cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "The `voltro` CLI — dev server, codegen, migrations, project scaffolding, agent-docs seeding, and production serve.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"voltro",
|
|
@@ -49,31 +49,25 @@
|
|
|
49
49
|
"@effect/workflow": "^0.18.2",
|
|
50
50
|
"@tailwindcss/vite": "^4.3.2",
|
|
51
51
|
"@vitejs/plugin-react": "^6.0.3",
|
|
52
|
-
"@voltro/ai": "0.
|
|
53
|
-
"@voltro/cache": "0.
|
|
54
|
-
"@voltro/data-transfer": "0.
|
|
55
|
-
"@voltro/database": "0.
|
|
56
|
-
"@voltro/env": "0.
|
|
57
|
-
"@voltro/kv": "0.
|
|
58
|
-
"@voltro/logger": "0.
|
|
59
|
-
"@voltro/plugin-auth": "0.
|
|
60
|
-
"@voltro/plugin-broadcast": "0.
|
|
61
|
-
"@voltro/plugin-mail": "0.
|
|
62
|
-
"@voltro/plugin-storage": "0.
|
|
63
|
-
"@voltro/plugin-webhooks": "0.
|
|
64
|
-
"@voltro/protocol": "0.
|
|
65
|
-
"@voltro/runtime": "0.
|
|
66
|
-
"@voltro/serverless": "0.
|
|
67
|
-
"@voltro/
|
|
68
|
-
"@voltro/sql-mysql": "0.1.5",
|
|
69
|
-
"@voltro/sql-postgres": "0.1.5",
|
|
70
|
-
"@voltro/sql-sqlite": "0.1.5",
|
|
71
|
-
"@voltro/sql-turso": "0.1.5",
|
|
72
|
-
"@voltro/workflow": "0.1.5",
|
|
52
|
+
"@voltro/ai": "0.2.0",
|
|
53
|
+
"@voltro/cache": "0.2.0",
|
|
54
|
+
"@voltro/data-transfer": "0.2.0",
|
|
55
|
+
"@voltro/database": "0.2.0",
|
|
56
|
+
"@voltro/env": "0.2.0",
|
|
57
|
+
"@voltro/kv": "0.2.0",
|
|
58
|
+
"@voltro/logger": "0.2.0",
|
|
59
|
+
"@voltro/plugin-auth": "0.2.0",
|
|
60
|
+
"@voltro/plugin-broadcast": "0.2.0",
|
|
61
|
+
"@voltro/plugin-mail": "0.2.0",
|
|
62
|
+
"@voltro/plugin-storage": "0.2.0",
|
|
63
|
+
"@voltro/plugin-webhooks": "0.2.0",
|
|
64
|
+
"@voltro/protocol": "0.2.0",
|
|
65
|
+
"@voltro/runtime": "0.2.0",
|
|
66
|
+
"@voltro/serverless": "0.2.0",
|
|
67
|
+
"@voltro/workflow": "0.2.0",
|
|
73
68
|
"chokidar": "^5.0.0",
|
|
74
69
|
"esbuild": "^0.28.0",
|
|
75
70
|
"ioredis": "^5.11.1",
|
|
76
|
-
"pg": "^8.22.0",
|
|
77
71
|
"tsx": "^4.23.0",
|
|
78
72
|
"vite": "^8.1.4"
|
|
79
73
|
},
|
|
@@ -18,27 +18,27 @@ The implementation is the [Vercel AI SDK](https://sdk.vercel.ai) wrapped behind
|
|
|
18
18
|
## The model
|
|
19
19
|
|
|
20
20
|
```text
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
│ @voltro/ai
|
|
29
|
-
│ generateText(...) / generateObject(...)
|
|
30
|
-
│ streamText(...)
|
|
31
|
-
│ embed(...) / embedMany(...)
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
│ *.agent.tsx (descriptor)
|
|
37
|
-
│ defineAgent({ name, input })│ │ defineTool({ name, input,
|
|
38
|
-
│ *.agent.server.tsx (executor)│ │ output })
|
|
39
|
-
│ defineAgentExecutor(desc, {
|
|
40
|
-
│ system, tools, model })
|
|
41
|
-
|
|
21
|
+
┌───────────────────────────────────────┐
|
|
22
|
+
│ Vercel AI SDK │
|
|
23
|
+
│ anthropic / openai / gateway / mock │
|
|
24
|
+
└───────────────────┬───────────────────┘
|
|
25
|
+
│
|
|
26
|
+
▼
|
|
27
|
+
┌──────────────────────────────────────────────────────────────────────┐
|
|
28
|
+
│ @voltro/ai │
|
|
29
|
+
│ generateText(...) / generateObject(...) │
|
|
30
|
+
│ streamText(...) │
|
|
31
|
+
│ embed(...) / embedMany(...) │
|
|
32
|
+
└────────────────┬────────────────────────────────────┬────────────────┘
|
|
33
|
+
│ │
|
|
34
|
+
▼ ▼
|
|
35
|
+
┌────────────────────────────────┐ ┌─────────────────────────────────┐
|
|
36
|
+
│ *.agent.tsx (descriptor) │ │ *.tool.tsx │
|
|
37
|
+
│ defineAgent({ name, input }) │ │ defineTool({ name, input, │
|
|
38
|
+
│ *.agent.server.tsx (executor) │ │ output }) │
|
|
39
|
+
│ defineAgentExecutor(desc, { │ │ typed + wired on the executor │
|
|
40
|
+
│ system, tools, model }) │ │ │
|
|
41
|
+
└────────────────────────────────┘ └─────────────────────────────────┘
|
|
42
42
|
```
|
|
43
43
|
|
|
44
44
|
## What's in this section
|
|
@@ -20,18 +20,18 @@ Voltro's auth story ships as a plugin: `@voltro/plugin-auth`. It's server-side p
|
|
|
20
20
|
## The pieces
|
|
21
21
|
|
|
22
22
|
```text
|
|
23
|
-
|
|
24
|
-
│ Browser
|
|
25
|
-
│ POST /auth/signin ────────┐
|
|
26
|
-
│ Cookie: voltro:session=... │
|
|
23
|
+
┌────────────────────────────────────────────────────────────────┐
|
|
24
|
+
│ Browser │
|
|
25
|
+
│ POST /auth/signin ────────┐ │
|
|
26
|
+
│ Cookie: voltro:session=... │ │
|
|
27
27
|
└───────────────────────────────┬─┘ │
|
|
28
|
-
│ Set-Cookie (HttpOnly, Secure)│
|
|
28
|
+
│ Set-Cookie (HttpOnly, Secure) │
|
|
29
29
|
▼ │
|
|
30
|
-
|
|
31
|
-
│ api app
|
|
30
|
+
┌────────────────────────────────────────────────────────────────┐
|
|
31
|
+
│ api app │
|
|
32
32
|
│ handleSignIn → verifyPassword → issueSession │
|
|
33
|
-
│ readSession → HMAC verify → Subject
|
|
34
|
-
|
|
33
|
+
│ readSession → HMAC verify → Subject │
|
|
34
|
+
└────────────────────────────────────────────────────────────────┘
|
|
35
35
|
▲
|
|
36
36
|
│ ctx.subject (typed)
|
|
37
37
|
│
|
|
@@ -610,7 +610,7 @@ What it does for a web app:
|
|
|
610
610
|
3. **Pre-builds the SSR bundle** — every page module compiled to `dist/server/ssrEntry.js` so `voltro start` doesn't need a Vite middleware loader at runtime.
|
|
611
611
|
4. **Copies `public/`** into `dist/`.
|
|
612
612
|
|
|
613
|
-
For api apps, `voltro build`
|
|
613
|
+
For api apps, `voltro build` precompiles the whole handler closure — every procedure, workflow, subscriber, reaction, aggregate, agent, webhook, cron, startup, `app.config`, and their shared `database`/`lib` deps — into a single esbuild bundle at `.framework/dist-api/apiEntry.js` (the framework + npm deps stay external). `voltro serve` loads that bundle automatically at boot and resolves every handler from it, so production never transpiles TypeScript at runtime. Without a build, `voltro serve` still loads each source module on demand (via the `tsx` loader) exactly as `voltro dev` does — the build is an optimisation, not a requirement.
|
|
614
614
|
|
|
615
615
|
`voltro build` takes a single optional app directory and parses no flags — the SSR bundle is always attempted, and the SSG pre-render always runs for `static`-mode pages.
|
|
616
616
|
|
|
@@ -36,16 +36,16 @@ sandbox; it resets on refresh):
|
|
|
36
36
|
└──────────────────────────┬───────────────────────────────────────┘
|
|
37
37
|
│ @effect/rpc over WebSocket
|
|
38
38
|
▼
|
|
39
|
-
|
|
40
|
-
│ api app
|
|
41
|
-
│ *.query.ts + *.query.server.ts — reactive reads
|
|
42
|
-
│ *.mutation.ts + *.mutation.server.ts — transactional writes
|
|
43
|
-
│ *.action.ts + *.action.server.ts — external I/O / unary
|
|
44
|
-
│ *.stream.ts + *.stream.server.ts — one-shot element push
|
|
39
|
+
┌────────────────────────────────────────────────────────────────────┐
|
|
40
|
+
│ api app │
|
|
41
|
+
│ *.query.ts + *.query.server.ts — reactive reads │
|
|
42
|
+
│ *.mutation.ts + *.mutation.server.ts — transactional writes │
|
|
43
|
+
│ *.action.ts + *.action.server.ts — external I/O / unary │
|
|
44
|
+
│ *.stream.ts + *.stream.server.ts — one-shot element push │
|
|
45
45
|
│ *.route.tsx — public raw-HTTP route │
|
|
46
46
|
│ *.workflow.tsx + *.trigger.tsx — durable work + events │
|
|
47
47
|
│ *.agent.tsx — persisted AI chat │
|
|
48
|
-
|
|
48
|
+
└────────────────────────────────────────────────────────────────────┘
|
|
49
49
|
```
|
|
50
50
|
|
|
51
51
|
Most of it goes through one WebSocket (REST routes are the public raw-HTTP exception). Queries and streams are both streaming RPCs, but they mean different things: a query emits reactive snapshot/delta envelopes; a stream emits plain elements and then finishes.
|
|
@@ -24,6 +24,24 @@ DB_URL=postgresql://user:pass@host:5432/db?sslmode=require
|
|
|
24
24
|
|
|
25
25
|
`DB_DIALECT` picks the driver; `DB_URL` is the connection string for the provider. When a single URL doesn't fit, the discrete `DB_HOST` / `DB_PORT` / `DB_USER` / `DB_PASSWORD` / `DB_DATABASE` fields are the dialect-agnostic alternative (and `PG_HOST` / `PG_PORT` / `PG_USER` / `PG_PASSWORD` / `PG_DATABASE` are accepted as a fallback). Env always wins over `app.config.ts`'s `store:` field.
|
|
26
26
|
|
|
27
|
+
## Declare your dialect's driver
|
|
28
|
+
|
|
29
|
+
Each app declares the driver package for its DB dialect as a dependency — the CLI does not bundle every driver, so a production image only ships the one your app actually uses (a memory-store app ships none, and never pulls e.g. turso's ~90 MB native binary):
|
|
30
|
+
|
|
31
|
+
| Dialect | Driver package |
|
|
32
|
+
| --- | --- |
|
|
33
|
+
| `postgres` | `@voltro/sql-postgres` |
|
|
34
|
+
| `mysql` / `mariadb` | `@voltro/sql-mysql` |
|
|
35
|
+
| `mssql` | `@voltro/sql-mssql` |
|
|
36
|
+
| `sqlite` | `@voltro/sql-sqlite` |
|
|
37
|
+
| `turso` | `@voltro/sql-turso` |
|
|
38
|
+
|
|
39
|
+
```sh
|
|
40
|
+
pnpm add @voltro/sql-postgres # in the app that uses store: 'postgres'
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
Scaffolded projects already declare the right driver, and `voltro add mssql` adds `@voltro/sql-mssql` for you. If a driver is missing at boot, `voltro serve` fails with a message naming the exact package to install — it never silently falls back. A `store: 'memory'` app needs no driver.
|
|
44
|
+
|
|
27
45
|
## Providers at a glance
|
|
28
46
|
|
|
29
47
|
| Provider | Voltro dialect | Pooling | Notes |
|
|
@@ -1175,38 +1175,38 @@ What prod boot DOES is compare the declared-schema fingerprint against the lates
|
|
|
1175
1175
|
└────────────────┬────────────────┘
|
|
1176
1176
|
│
|
|
1177
1177
|
▼
|
|
1178
|
-
|
|
1179
|
-
│ 2. CI runs `voltro db plan`
|
|
1178
|
+
┌──────────────────────────────────┐
|
|
1179
|
+
│ 2. CI runs `voltro db plan` │
|
|
1180
1180
|
│ against a staging-style │
|
|
1181
1181
|
│ snapshot. The printed plan │
|
|
1182
1182
|
│ (classes + fingerprints) goes │
|
|
1183
1183
|
│ into the PR for review │
|
|
1184
|
-
|
|
1184
|
+
└────────────────┬─────────────────┘
|
|
1185
1185
|
│
|
|
1186
1186
|
▼
|
|
1187
|
-
|
|
1188
|
-
│ 3. Reviewer reads the plan
|
|
1187
|
+
┌──────────────────────────────────┐
|
|
1188
|
+
│ 3. Reviewer reads the plan │
|
|
1189
1189
|
│ classification, fingerprints │
|
|
1190
1190
|
│ + DSL annotations │
|
|
1191
1191
|
│ Approves PR │
|
|
1192
|
-
|
|
1192
|
+
└────────────────┬─────────────────┘
|
|
1193
1193
|
│
|
|
1194
1194
|
▼
|
|
1195
|
-
|
|
1196
|
-
│ 4. Merge to main
|
|
1195
|
+
┌──────────────────────────────────┐
|
|
1196
|
+
│ 4. Merge to main │
|
|
1197
1197
|
│ CI/CD deploys new image │
|
|
1198
1198
|
│ BEFORE traffic switch a │
|
|
1199
1199
|
│ one-shot job runs │
|
|
1200
1200
|
│ `voltro db apply` against │
|
|
1201
1201
|
│ the prod DB (re-diffs live) │
|
|
1202
|
-
|
|
1202
|
+
└────────────────┬─────────────────┘
|
|
1203
1203
|
│
|
|
1204
1204
|
▼
|
|
1205
|
-
|
|
1206
|
-
│ 5. Traffic switches
|
|
1207
|
-
│ Prod boot: fingerprint match
|
|
1205
|
+
┌───────────────────────────────────┐
|
|
1206
|
+
│ 5. Traffic switches │
|
|
1207
|
+
│ Prod boot: fingerprint match │
|
|
1208
1208
|
│ → serves │
|
|
1209
|
-
|
|
1209
|
+
└───────────────────────────────────┘
|
|
1210
1210
|
```
|
|
1211
1211
|
|
|
1212
1212
|
There's a slot for the apply step in every common deploy tool (k8s init container, ECS task pre-deploy hook, Heroku release phase, Cloud Run job-on-deploy, Fly.io `release_command`). The shape is identical: run a one-shot container/process that holds the migration credentials + executes `voltro db apply`. It re-diffs the live DB against the deployed code's declared schema and applies the resulting plan — there is no pre-serialised plan file to pass; the apply re-computes the diff at run time. The serving process never gets the migration-grade credentials.
|
|
@@ -1499,14 +1499,14 @@ At runtime, every `ChangeEvent` consults this map BEFORE triggering a re-query.
|
|
|
1499
1499
|
Stage 1 — the dependency graph tracks per-table dependency. When `posts` changes, the dispatcher finds every subscription whose dependent-table set includes `posts` and triggers a re-query. After the re-query, a shallow row-set compare (JSON.stringify per row) suppresses the delta if the result is shape-identical to the last delivered snapshot.
|
|
1500
1500
|
|
|
1501
1501
|
```text
|
|
1502
|
-
|
|
1503
|
-
│ Subscription: users.with({ posts: { with: { author: true } } })
|
|
1504
|
-
│
|
|
1502
|
+
┌───────────────────────────────────────────────────────────────────────┐
|
|
1503
|
+
│ Subscription: users.with({ posts: { with: { author: true } } }) │
|
|
1504
|
+
│ │
|
|
1505
1505
|
│ change(users) → re-query → diff vs lastDelivered → maybe delta │
|
|
1506
1506
|
│ change(posts) → re-query → diff vs lastDelivered → maybe delta │
|
|
1507
|
-
│
|
|
1508
|
-
│ change(orgs) → no-op (not in dependency graph)
|
|
1509
|
-
|
|
1507
|
+
│ │
|
|
1508
|
+
│ change(orgs) → no-op (not in dependency graph) │
|
|
1509
|
+
└───────────────────────────────────────────────────────────────────────┘
|
|
1510
1510
|
```
|
|
1511
1511
|
|
|
1512
1512
|
This is CORRECT but expensive: every write to a dependent table costs a SQL round-trip, even when the write touched a column the subscription doesn't care about.
|
|
@@ -374,6 +374,34 @@ The app is only stopped when, continuously for the grace window:
|
|
|
374
374
|
|
|
375
375
|
A long-sleeping workflow (`sleep('3 days')`) is exactly the case dormancy is built for: the app stops, and the orchestrator brings a fresh process up when the sleep is due — the workflow resumes from its journal.
|
|
376
376
|
|
|
377
|
+
## Diagnosing cold-start latency
|
|
378
|
+
|
|
379
|
+
The flip side of scale-to-zero is a cold start on the first hit after an idle period. Every `voltro serve` boot logs how long it took to become ready:
|
|
380
|
+
|
|
381
|
+
```text
|
|
382
|
+
serve: ready in 1910ms
|
|
383
|
+
```
|
|
384
|
+
|
|
385
|
+
To see WHERE those milliseconds go, set `VOLTRO_BOOT_TIMING=1` — the same line gains a per-phase breakdown:
|
|
386
|
+
|
|
387
|
+
```text
|
|
388
|
+
serve: ready in 1910ms { bootMs: 1910, phases: { modules: 1872, config: 0, discover: 18, store: 9, plugins: 1, workflow: 1, ready: 9 } }
|
|
389
|
+
```
|
|
390
|
+
|
|
391
|
+
The phases, in boot order:
|
|
392
|
+
|
|
393
|
+
| Phase | What it covers |
|
|
394
|
+
| --- | --- |
|
|
395
|
+
| `modules` | node init + loading and compiling the JS module graph (the framework + your app). On a scale-to-zero container this is almost always the dominant phase — it is the cost of evaluating the dependency graph on a cold process, and it scales inversely with your CPU allotment. No app-level change shrinks it — **precompiling the app (`voltro build`) removes only the transpile of your own source files, not the framework graph load.** |
|
|
396
|
+
| `config` | loading `app.config.ts` + the typed-env gate |
|
|
397
|
+
| `discover` | walking the app + loading discovered primitives (plus the precompiled bundle, when `voltro build` produced one) |
|
|
398
|
+
| `store` | opening the data store + cache/kv facades — a real SQL dialect includes the connection handshake here |
|
|
399
|
+
| `plugins` | plugin bind + lifecycle activation |
|
|
400
|
+
| `workflow` | the durable-workflow engine |
|
|
401
|
+
| `ready` | serveApi's own setup — handler layers, subscribers, reactions, aggregates, the HTTP listener |
|
|
402
|
+
|
|
403
|
+
Read this from the container's own logs at its real CPU allotment, not a beefy dev machine: a `modules` phase that dwarfs everything else means the cold start is dominated by evaluating the dependency graph (raise the container's CPU, or keep one instance warm); a fat `store` phase points at the database connection instead. `VOLTRO_BOOT_TIMING` adds a handful of `performance.now()` calls and one log line — it is safe to leave on in production.
|
|
404
|
+
|
|
377
405
|
## Tiers (Voltro Cloud — coming soon)
|
|
378
406
|
|
|
379
407
|
Managed cloud hosting is not yet available; the Pro / Enterprise rows below are the planned managed tiers. Today you self-host and run `voltro dormancy` yourself.
|
|
@@ -11,16 +11,16 @@
|
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"@effect/platform": "^0.96.1",
|
|
13
13
|
"@effect/rpc": "^0.75.1",
|
|
14
|
-
"@voltro/ai": "0.
|
|
15
|
-
"@voltro/cli": "0.
|
|
16
|
-
"@voltro/database": "0.
|
|
17
|
-
"@voltro/env": "0.
|
|
18
|
-
"@voltro/protocol": "0.
|
|
19
|
-
"@voltro/runtime": "0.
|
|
14
|
+
"@voltro/ai": "0.2.0",
|
|
15
|
+
"@voltro/cli": "0.2.0",
|
|
16
|
+
"@voltro/database": "0.2.0",
|
|
17
|
+
"@voltro/env": "0.2.0",
|
|
18
|
+
"@voltro/protocol": "0.2.0",
|
|
19
|
+
"@voltro/runtime": "0.2.0",
|
|
20
20
|
"effect": "^3.21.2"
|
|
21
21
|
},
|
|
22
22
|
"devDependencies": {
|
|
23
|
-
"@voltro/testing": "0.
|
|
23
|
+
"@voltro/testing": "0.2.0",
|
|
24
24
|
"typescript": "^5.7.0",
|
|
25
25
|
"vitest": "^3.0.0"
|
|
26
26
|
}
|
|
@@ -12,16 +12,17 @@
|
|
|
12
12
|
"dependencies": {
|
|
13
13
|
"@effect/platform": "^0.96.1",
|
|
14
14
|
"@effect/rpc": "^0.75.1",
|
|
15
|
-
"@voltro/cli": "0.
|
|
16
|
-
"@voltro/database": "0.
|
|
17
|
-
"@voltro/env": "0.
|
|
18
|
-
"@voltro/plugin-auth": "0.
|
|
19
|
-
"@voltro/protocol": "0.
|
|
20
|
-
"@voltro/runtime": "0.
|
|
15
|
+
"@voltro/cli": "0.2.0",
|
|
16
|
+
"@voltro/database": "0.2.0",
|
|
17
|
+
"@voltro/env": "0.2.0",
|
|
18
|
+
"@voltro/plugin-auth": "0.2.0",
|
|
19
|
+
"@voltro/protocol": "0.2.0",
|
|
20
|
+
"@voltro/runtime": "0.2.0",
|
|
21
|
+
"@voltro/sql-postgres": "0.2.0",
|
|
21
22
|
"effect": "^3.21.2"
|
|
22
23
|
},
|
|
23
24
|
"devDependencies": {
|
|
24
|
-
"@voltro/testing": "0.
|
|
25
|
+
"@voltro/testing": "0.2.0",
|
|
25
26
|
"typescript": "^5.7.0",
|
|
26
27
|
"vitest": "^3.0.0"
|
|
27
28
|
}
|
|
@@ -12,16 +12,16 @@
|
|
|
12
12
|
"dependencies": {
|
|
13
13
|
"@effect/platform": "^0.96.1",
|
|
14
14
|
"@effect/rpc": "^0.75.1",
|
|
15
|
-
"@voltro/cli": "0.
|
|
16
|
-
"@voltro/database": "0.
|
|
17
|
-
"@voltro/env": "0.
|
|
18
|
-
"@voltro/plugin-multitenancy": "0.
|
|
19
|
-
"@voltro/protocol": "0.
|
|
20
|
-
"@voltro/runtime": "0.
|
|
15
|
+
"@voltro/cli": "0.2.0",
|
|
16
|
+
"@voltro/database": "0.2.0",
|
|
17
|
+
"@voltro/env": "0.2.0",
|
|
18
|
+
"@voltro/plugin-multitenancy": "0.2.0",
|
|
19
|
+
"@voltro/protocol": "0.2.0",
|
|
20
|
+
"@voltro/runtime": "0.2.0",
|
|
21
21
|
"effect": "^3.21.2"
|
|
22
22
|
},
|
|
23
23
|
"devDependencies": {
|
|
24
|
-
"@voltro/testing": "0.
|
|
24
|
+
"@voltro/testing": "0.2.0",
|
|
25
25
|
"typescript": "^5.7.0",
|
|
26
26
|
"vitest": "^3.0.0"
|
|
27
27
|
}
|
|
@@ -12,16 +12,16 @@
|
|
|
12
12
|
"dependencies": {
|
|
13
13
|
"@effect/platform": "^0.96.1",
|
|
14
14
|
"@effect/rpc": "^0.75.1",
|
|
15
|
-
"@voltro/cli": "0.
|
|
16
|
-
"@voltro/database": "0.
|
|
17
|
-
"@voltro/env": "0.
|
|
18
|
-
"@voltro/plugin-deactivation": "0.
|
|
19
|
-
"@voltro/protocol": "0.
|
|
20
|
-
"@voltro/runtime": "0.
|
|
15
|
+
"@voltro/cli": "0.2.0",
|
|
16
|
+
"@voltro/database": "0.2.0",
|
|
17
|
+
"@voltro/env": "0.2.0",
|
|
18
|
+
"@voltro/plugin-deactivation": "0.2.0",
|
|
19
|
+
"@voltro/protocol": "0.2.0",
|
|
20
|
+
"@voltro/runtime": "0.2.0",
|
|
21
21
|
"effect": "^3.21.2"
|
|
22
22
|
},
|
|
23
23
|
"devDependencies": {
|
|
24
|
-
"@voltro/testing": "0.
|
|
24
|
+
"@voltro/testing": "0.2.0",
|
|
25
25
|
"typescript": "^5.7.0",
|
|
26
26
|
"vitest": "^3.0.0"
|
|
27
27
|
}
|
|
@@ -12,18 +12,18 @@
|
|
|
12
12
|
"dependencies": {
|
|
13
13
|
"@react-email/components": "^1.0.12",
|
|
14
14
|
"@react-email/render": "^1.4.0",
|
|
15
|
-
"@voltro/cli": "0.
|
|
16
|
-
"@voltro/database": "0.
|
|
17
|
-
"@voltro/env": "0.
|
|
18
|
-
"@voltro/plugin-mail": "0.
|
|
19
|
-
"@voltro/plugin-multitenancy": "0.
|
|
20
|
-
"@voltro/protocol": "0.
|
|
21
|
-
"@voltro/runtime": "0.
|
|
15
|
+
"@voltro/cli": "0.2.0",
|
|
16
|
+
"@voltro/database": "0.2.0",
|
|
17
|
+
"@voltro/env": "0.2.0",
|
|
18
|
+
"@voltro/plugin-mail": "0.2.0",
|
|
19
|
+
"@voltro/plugin-multitenancy": "0.2.0",
|
|
20
|
+
"@voltro/protocol": "0.2.0",
|
|
21
|
+
"@voltro/runtime": "0.2.0",
|
|
22
22
|
"effect": "^3.21.2",
|
|
23
23
|
"react": "^19.0.0"
|
|
24
24
|
},
|
|
25
25
|
"devDependencies": {
|
|
26
|
-
"@voltro/testing": "0.
|
|
26
|
+
"@voltro/testing": "0.2.0",
|
|
27
27
|
"typescript": "^5.7.0",
|
|
28
28
|
"vitest": "^3.0.0"
|
|
29
29
|
}
|
|
@@ -12,18 +12,18 @@
|
|
|
12
12
|
"dependencies": {
|
|
13
13
|
"@effect/platform": "^0.96.1",
|
|
14
14
|
"@effect/rpc": "^0.75.1",
|
|
15
|
-
"@voltro/cli": "0.
|
|
16
|
-
"@voltro/database": "0.
|
|
17
|
-
"@voltro/env": "0.
|
|
18
|
-
"@voltro/plugin-multitenancy": "0.
|
|
19
|
-
"@voltro/plugin-storage": "0.
|
|
20
|
-
"@voltro/protocol": "0.
|
|
21
|
-
"@voltro/runtime": "0.
|
|
22
|
-
"@voltro/sql-mysql": "0.
|
|
15
|
+
"@voltro/cli": "0.2.0",
|
|
16
|
+
"@voltro/database": "0.2.0",
|
|
17
|
+
"@voltro/env": "0.2.0",
|
|
18
|
+
"@voltro/plugin-multitenancy": "0.2.0",
|
|
19
|
+
"@voltro/plugin-storage": "0.2.0",
|
|
20
|
+
"@voltro/protocol": "0.2.0",
|
|
21
|
+
"@voltro/runtime": "0.2.0",
|
|
22
|
+
"@voltro/sql-mysql": "0.2.0",
|
|
23
23
|
"effect": "^3.21.2"
|
|
24
24
|
},
|
|
25
25
|
"devDependencies": {
|
|
26
|
-
"@voltro/testing": "0.
|
|
26
|
+
"@voltro/testing": "0.2.0",
|
|
27
27
|
"typescript": "^5.7.0",
|
|
28
28
|
"vitest": "^3.0.0"
|
|
29
29
|
}
|
|
@@ -10,17 +10,17 @@
|
|
|
10
10
|
"test": "voltro test"
|
|
11
11
|
},
|
|
12
12
|
"dependencies": {
|
|
13
|
-
"@voltro/cli": "0.
|
|
14
|
-
"@voltro/database": "0.
|
|
15
|
-
"@voltro/env": "0.
|
|
16
|
-
"@voltro/plugin-multitenancy": "0.
|
|
17
|
-
"@voltro/plugin-storage": "0.
|
|
18
|
-
"@voltro/protocol": "0.
|
|
19
|
-
"@voltro/runtime": "0.
|
|
13
|
+
"@voltro/cli": "0.2.0",
|
|
14
|
+
"@voltro/database": "0.2.0",
|
|
15
|
+
"@voltro/env": "0.2.0",
|
|
16
|
+
"@voltro/plugin-multitenancy": "0.2.0",
|
|
17
|
+
"@voltro/plugin-storage": "0.2.0",
|
|
18
|
+
"@voltro/protocol": "0.2.0",
|
|
19
|
+
"@voltro/runtime": "0.2.0",
|
|
20
20
|
"effect": "^3.21.2"
|
|
21
21
|
},
|
|
22
22
|
"devDependencies": {
|
|
23
|
-
"@voltro/testing": "0.
|
|
23
|
+
"@voltro/testing": "0.2.0",
|
|
24
24
|
"typescript": "^5.7.0",
|
|
25
25
|
"vitest": "^3.0.0"
|
|
26
26
|
}
|
|
@@ -11,17 +11,17 @@
|
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"@effect/platform": "^0.96.1",
|
|
13
13
|
"@effect/rpc": "^0.75.1",
|
|
14
|
-
"@voltro/cli": "0.
|
|
15
|
-
"@voltro/database": "0.
|
|
16
|
-
"@voltro/env": "0.
|
|
17
|
-
"@voltro/plugin-governance": "0.
|
|
18
|
-
"@voltro/plugin-multitenancy": "0.
|
|
19
|
-
"@voltro/protocol": "0.
|
|
20
|
-
"@voltro/runtime": "0.
|
|
14
|
+
"@voltro/cli": "0.2.0",
|
|
15
|
+
"@voltro/database": "0.2.0",
|
|
16
|
+
"@voltro/env": "0.2.0",
|
|
17
|
+
"@voltro/plugin-governance": "0.2.0",
|
|
18
|
+
"@voltro/plugin-multitenancy": "0.2.0",
|
|
19
|
+
"@voltro/protocol": "0.2.0",
|
|
20
|
+
"@voltro/runtime": "0.2.0",
|
|
21
21
|
"effect": "^3.21.2"
|
|
22
22
|
},
|
|
23
23
|
"devDependencies": {
|
|
24
|
-
"@voltro/testing": "0.
|
|
24
|
+
"@voltro/testing": "0.2.0",
|
|
25
25
|
"typescript": "^5.7.0",
|
|
26
26
|
"vitest": "^3.0.0"
|
|
27
27
|
}
|
|
@@ -11,17 +11,17 @@
|
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"@effect/platform": "^0.96.1",
|
|
13
13
|
"@effect/rpc": "^0.75.1",
|
|
14
|
-
"@voltro/cli": "0.
|
|
15
|
-
"@voltro/database": "0.
|
|
16
|
-
"@voltro/env": "0.
|
|
17
|
-
"@voltro/plugin-multitenancy": "0.
|
|
18
|
-
"@voltro/protocol": "0.
|
|
19
|
-
"@voltro/runtime": "0.
|
|
20
|
-
"@voltro/workflow": "0.
|
|
14
|
+
"@voltro/cli": "0.2.0",
|
|
15
|
+
"@voltro/database": "0.2.0",
|
|
16
|
+
"@voltro/env": "0.2.0",
|
|
17
|
+
"@voltro/plugin-multitenancy": "0.2.0",
|
|
18
|
+
"@voltro/protocol": "0.2.0",
|
|
19
|
+
"@voltro/runtime": "0.2.0",
|
|
20
|
+
"@voltro/workflow": "0.2.0",
|
|
21
21
|
"effect": "^3.21.2"
|
|
22
22
|
},
|
|
23
23
|
"devDependencies": {
|
|
24
|
-
"@voltro/testing": "0.
|
|
24
|
+
"@voltro/testing": "0.2.0",
|
|
25
25
|
"typescript": "^5.7.0",
|
|
26
26
|
"vitest": "^3.0.0"
|
|
27
27
|
}
|
|
@@ -12,17 +12,18 @@
|
|
|
12
12
|
"dependencies": {
|
|
13
13
|
"@effect/platform": "^0.96.1",
|
|
14
14
|
"@effect/rpc": "^0.75.1",
|
|
15
|
-
"@voltro/cli": "0.
|
|
16
|
-
"@voltro/database": "0.
|
|
17
|
-
"@voltro/env": "0.
|
|
18
|
-
"@voltro/plugin-flags": "0.
|
|
19
|
-
"@voltro/plugin-multitenancy": "0.
|
|
20
|
-
"@voltro/protocol": "0.
|
|
21
|
-
"@voltro/runtime": "0.
|
|
15
|
+
"@voltro/cli": "0.2.0",
|
|
16
|
+
"@voltro/database": "0.2.0",
|
|
17
|
+
"@voltro/env": "0.2.0",
|
|
18
|
+
"@voltro/plugin-flags": "0.2.0",
|
|
19
|
+
"@voltro/plugin-multitenancy": "0.2.0",
|
|
20
|
+
"@voltro/protocol": "0.2.0",
|
|
21
|
+
"@voltro/runtime": "0.2.0",
|
|
22
|
+
"@voltro/sql-postgres": "0.2.0",
|
|
22
23
|
"effect": "^3.21.2"
|
|
23
24
|
},
|
|
24
25
|
"devDependencies": {
|
|
25
|
-
"@voltro/testing": "0.
|
|
26
|
+
"@voltro/testing": "0.2.0",
|
|
26
27
|
"typescript": "^5.7.0",
|
|
27
28
|
"vitest": "^3.0.0"
|
|
28
29
|
}
|