@celsian/vura-cli 0.5.10 → 0.5.12

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
@@ -6,7 +6,7 @@ CLI for [Vura](https://vura.io) — develop, build, and run tasks for Vura appli
6
6
 
7
7
  ## What it does
8
8
 
9
- `@celsian/vura-cli` provides the `vura` command for developing, building, inspecting, and deploying Vura projects. It reports effective Function/Dedicated placement and pending Edge requests, including memory, CPU, timeout, provider recommendation, confidence, and reasons. `create-vura` installs the managed deployment adapter, so `vura deploy` works without a follow-up package install. Self-hosted builds can use the Lambda or Cloudflare adapters. The package was historically named `then`/`thenjs`; the only installed bin is `vura`.
9
+ `@celsian/vura-cli` provides the `vura` command for developing, building, inspecting, and deploying Vura projects. It reports effective Function/Dedicated placement, including memory, CPU, timeout, provider-neutral runtime recommendations, confidence, and reasons. Dedicated endpoints can select `nano`, `small`, `medium`, `large`, `xlarge`, `2xlarge`, or `4xlarge` capacity profiles. `create-vura` installs the managed deployment adapter, so `vura deploy` works without a follow-up package install. Self-hosted builds can use the Lambda or Cloudflare adapters. The package was historically named `then`/`thenjs`; the only installed bin is `vura`.
10
10
 
11
11
  ## Install
12
12
 
@@ -44,9 +44,9 @@ vura routes inspect --json
44
44
  vura runtime advise --json
45
45
  ```
46
46
 
47
- An Edge declaration is a request, not an override. The CLI reports it as
48
- pending while the route continues on 1 GiB Function compute; only measured
49
- platform eligibility can promote it to the fixed 128 MiB Edge runtime.
47
+ Managed routes choose between scale-to-zero Function compute and persistent
48
+ Dedicated compute. Function memory defaults to 1 GiB and supports 1, 4, 6, 8,
49
+ and 12 GiB profiles.
50
50
 
51
51
  (`then` is a shell reserved word — use `vura` in all scripts.)
52
52
 
@@ -12,11 +12,11 @@ export interface RuntimeRouteInspection {
12
12
  hasWebsocket?: boolean;
13
13
  effectiveComputeClass?: 'function' | 'dedicated';
14
14
  requestedComputeClass?: ComputeClass;
15
- edgeEligibility?: 'pending';
16
15
  memory?: string | number;
17
16
  cpu?: number;
17
+ size?: string;
18
18
  timeout?: number;
19
- providerRecommendation?: 'elastic-function-provider' | 'dedicated-fly-machine' | 'cloudflare-workers-for-platforms';
19
+ providerRecommendation?: 'serverless-function' | 'dedicated-machine';
20
20
  confidence?: 'high' | 'medium';
21
21
  reasons?: string[];
22
22
  warnings: string[];
@@ -20,40 +20,23 @@ function computeDetails(route) {
20
20
  const effectiveComputeClass = compute.effectiveClass === 'dedicated' || compute.class === 'dedicated'
21
21
  ? 'dedicated'
22
22
  : 'function';
23
- const requestedComputeClass = compute.class === 'edge' || compute.requestedClass === 'edge'
24
- ? 'edge'
25
- : effectiveComputeClass;
26
- const effectiveMemory = compute.effectiveMemory ?? compute.memory;
23
+ const requestedComputeClass = effectiveComputeClass;
24
+ const effectiveMemory = compute.memory;
27
25
  const memory = typeof effectiveMemory === 'string' || typeof effectiveMemory === 'number'
28
26
  ? effectiveMemory
29
27
  : undefined;
30
28
  const cpu = typeof compute.cpu === 'number' ? compute.cpu : undefined;
29
+ const size = typeof compute.size === 'string' ? compute.size : undefined;
31
30
  const timeout = configNumber(route.config, 'timeout');
32
- const edgeEligibility = compute.edgeEligibility === 'pending' ? 'pending' : undefined;
33
- if (requestedComputeClass === 'edge') {
34
- return {
35
- effectiveComputeClass,
36
- requestedComputeClass,
37
- edgeEligibility,
38
- memory,
39
- cpu,
40
- timeout,
41
- providerRecommendation: 'cloudflare-workers-for-platforms',
42
- confidence: 'high',
43
- reasons: [
44
- 'Edge is an optimization request and remains on Function until the platform marks this endpoint eligible from observed memory/runtime telemetry.',
45
- 'Edge has a fixed 128mb isolate ceiling; the safe fallback is Function at 1gb.',
46
- ],
47
- };
48
- }
49
31
  if (effectiveComputeClass === 'dedicated') {
50
32
  return {
51
33
  effectiveComputeClass,
52
34
  requestedComputeClass,
53
35
  memory,
54
36
  cpu,
37
+ size,
55
38
  timeout,
56
- providerRecommendation: 'dedicated-fly-machine',
39
+ providerRecommendation: 'dedicated-machine',
57
40
  confidence: 'high',
58
41
  reasons: [route.hasWebsocket
59
42
  ? 'WebSocket upgrades require persistent Dedicated compute.'
@@ -65,8 +48,9 @@ function computeDetails(route) {
65
48
  requestedComputeClass,
66
49
  memory,
67
50
  cpu,
51
+ size,
68
52
  timeout,
69
- providerRecommendation: 'elastic-function-provider',
53
+ providerRecommendation: 'serverless-function',
70
54
  confidence: 'medium',
71
55
  reasons: ['Stateless endpoints and tasks default to scale-to-zero Function compute at 1gb.'],
72
56
  };
@@ -120,9 +104,6 @@ function inspectApiRoute(route) {
120
104
  warnings.push('WebSocket exports require kind: hot to be reachable.');
121
105
  }
122
106
  const details = computeDetails(route);
123
- if (details.requestedComputeClass === 'edge' && details.edgeEligibility === 'pending') {
124
- warnings.push('Edge request is pending platform eligibility; effective runtime remains Function at 1gb.');
125
- }
126
107
  const base = {
127
108
  type: 'api',
128
109
  pattern: route.urlPattern,
@@ -213,16 +194,6 @@ export function adviseRuntime(manifest) {
213
194
  const schedule = configString(route.config, 'schedule');
214
195
  const timeout = configNumber(route.config, 'timeout');
215
196
  const details = computeDetails(route);
216
- if (details.requestedComputeClass === 'edge') {
217
- advice.push({
218
- pattern: route.urlPattern,
219
- type: 'api',
220
- currentProfile,
221
- recommendation: currentProfile,
222
- severity: 'warn',
223
- reason: 'Edge request is pending measured platform eligibility; deploys continue on Function at 1gb until approved.',
224
- });
225
- }
226
197
  if (route.hasWebsocket) {
227
198
  advice.push({
228
199
  pattern: route.urlPattern,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@celsian/vura-cli",
3
- "version": "0.5.10",
3
+ "version": "0.5.12",
4
4
  "description": "Vura CLI — build and deploy full-stack apps",
5
5
  "type": "module",
6
6
  "bin": {
@@ -15,12 +15,12 @@
15
15
  "!dist/**/*.map"
16
16
  ],
17
17
  "dependencies": {
18
- "@celsian/vura-core": "0.5.10",
18
+ "@celsian/vura-core": "0.5.12",
19
19
  "esbuild": "^0.28.1",
20
20
  "what-framework": "^0.11.1"
21
21
  },
22
22
  "peerDependencies": {
23
- "@celsian/vura-adapter-vura": "0.5.10",
23
+ "@celsian/vura-adapter-vura": "0.5.12",
24
24
  "ws": "^8.0.0"
25
25
  },
26
26
  "peerDependenciesMeta": {
@@ -32,7 +32,7 @@
32
32
  }
33
33
  },
34
34
  "devDependencies": {
35
- "@celsian/vura-adapter-vura": "0.5.10",
35
+ "@celsian/vura-adapter-vura": "0.5.12",
36
36
  "@types/ws": "^8.18.1",
37
37
  "ws": "^8.21.0"
38
38
  },