@velarscript/cli 0.12.1 → 0.14.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.
Files changed (144) hide show
  1. package/README.md +5 -13
  2. package/dist/browser-process-owner.d.ts +23 -0
  3. package/dist/browser-process-owner.d.ts.map +1 -1
  4. package/dist/browser-process-owner.js +46 -2
  5. package/dist/browser-process-owner.js.map +1 -1
  6. package/dist/browser-test-runner.d.ts.map +1 -1
  7. package/dist/browser-test-runner.js +110 -14
  8. package/dist/browser-test-runner.js.map +1 -1
  9. package/dist/cli.js +186 -106
  10. package/dist/cli.js.map +1 -1
  11. package/dist/config.d.ts.map +1 -1
  12. package/dist/config.js +28 -4
  13. package/dist/config.js.map +1 -1
  14. package/dist/dev-server.d.ts +18 -0
  15. package/dist/dev-server.d.ts.map +1 -1
  16. package/dist/dev-server.js +168 -8
  17. package/dist/dev-server.js.map +1 -1
  18. package/dist/extension-metadata.d.ts +6 -0
  19. package/dist/extension-metadata.d.ts.map +1 -1
  20. package/dist/extension-metadata.js +71 -4
  21. package/dist/extension-metadata.js.map +1 -1
  22. package/dist/format-guard.d.ts +20 -0
  23. package/dist/format-guard.d.ts.map +1 -0
  24. package/dist/format-guard.js +13 -0
  25. package/dist/format-guard.js.map +1 -0
  26. package/dist/framework-host.d.ts.map +1 -1
  27. package/dist/framework-host.js +15 -2
  28. package/dist/framework-host.js.map +1 -1
  29. package/dist/language-server-bundle-entry.js +0 -2
  30. package/dist/language-server-bundle-entry.js.map +1 -1
  31. package/dist/language-server-tool.d.ts.map +1 -1
  32. package/dist/language-server-tool.js +0 -2
  33. package/dist/language-server-tool.js.map +1 -1
  34. package/dist/language-server.d.ts +1 -1
  35. package/dist/language-server.d.ts.map +1 -1
  36. package/dist/language-server.js +87 -293
  37. package/dist/language-server.js.map +1 -1
  38. package/dist/local-request-guard.d.ts +18 -0
  39. package/dist/local-request-guard.d.ts.map +1 -0
  40. package/dist/local-request-guard.js +75 -0
  41. package/dist/local-request-guard.js.map +1 -0
  42. package/dist/mechanical-fixer.d.ts.map +1 -1
  43. package/dist/mechanical-fixer.js +116 -2
  44. package/dist/mechanical-fixer.js.map +1 -1
  45. package/dist/module-assets.d.ts +23 -0
  46. package/dist/module-assets.d.ts.map +1 -1
  47. package/dist/module-assets.js +216 -14
  48. package/dist/module-assets.js.map +1 -1
  49. package/dist/node-application.d.ts +8 -7
  50. package/dist/node-application.d.ts.map +1 -1
  51. package/dist/node-application.js +63 -32
  52. package/dist/node-application.js.map +1 -1
  53. package/dist/node-runtime-dependencies.d.ts +3 -0
  54. package/dist/node-runtime-dependencies.d.ts.map +1 -0
  55. package/dist/node-runtime-dependencies.js +32 -0
  56. package/dist/node-runtime-dependencies.js.map +1 -0
  57. package/dist/npm.d.ts +29 -0
  58. package/dist/npm.d.ts.map +1 -1
  59. package/dist/npm.js +39 -2
  60. package/dist/npm.js.map +1 -1
  61. package/dist/official-language-server-extensions.d.ts.map +1 -1
  62. package/dist/official-language-server-extensions.js +13 -0
  63. package/dist/official-language-server-extensions.js.map +1 -1
  64. package/dist/ownership-graph.d.ts.map +1 -1
  65. package/dist/ownership-graph.js +155 -38
  66. package/dist/ownership-graph.js.map +1 -1
  67. package/dist/package-manager.d.ts.map +1 -1
  68. package/dist/package-manager.js +4 -1
  69. package/dist/package-manager.js.map +1 -1
  70. package/dist/preview-server.d.ts.map +1 -1
  71. package/dist/preview-server.js +12 -4
  72. package/dist/preview-server.js.map +1 -1
  73. package/dist/production-build.d.ts.map +1 -1
  74. package/dist/production-build.js +24 -6
  75. package/dist/production-build.js.map +1 -1
  76. package/dist/production-verifier.js +3 -0
  77. package/dist/production-verifier.js.map +1 -1
  78. package/dist/project-check.d.ts +14 -1
  79. package/dist/project-check.d.ts.map +1 -1
  80. package/dist/project-check.js +17 -4
  81. package/dist/project-check.js.map +1 -1
  82. package/dist/project-format.d.ts +9 -0
  83. package/dist/project-format.d.ts.map +1 -1
  84. package/dist/project-format.js +13 -0
  85. package/dist/project-format.js.map +1 -1
  86. package/dist/project-semantic.d.ts.map +1 -1
  87. package/dist/project-semantic.js +15 -4
  88. package/dist/project-semantic.js.map +1 -1
  89. package/dist/project.d.ts +25 -0
  90. package/dist/project.d.ts.map +1 -1
  91. package/dist/project.js +341 -42
  92. package/dist/project.js.map +1 -1
  93. package/dist/reproduction.d.ts +18 -0
  94. package/dist/reproduction.d.ts.map +1 -1
  95. package/dist/reproduction.js +47 -6
  96. package/dist/reproduction.js.map +1 -1
  97. package/dist/stable-order.d.ts +17 -0
  98. package/dist/stable-order.d.ts.map +1 -0
  99. package/dist/stable-order.js +19 -0
  100. package/dist/stable-order.js.map +1 -0
  101. package/dist/standard-modules.d.ts +2 -2
  102. package/dist/standard-modules.d.ts.map +1 -1
  103. package/dist/standard-modules.js +2 -2
  104. package/dist/standard-modules.js.map +1 -1
  105. package/dist/static-deployment.d.ts.map +1 -1
  106. package/dist/static-deployment.js +27 -0
  107. package/dist/static-deployment.js.map +1 -1
  108. package/dist/test-runner.d.ts.map +1 -1
  109. package/dist/test-runner.js +196 -100
  110. package/dist/test-runner.js.map +1 -1
  111. package/dist/test-worker.d.ts +64 -0
  112. package/dist/test-worker.d.ts.map +1 -0
  113. package/dist/test-worker.js +161 -0
  114. package/dist/test-worker.js.map +1 -0
  115. package/dist/typescript-declarations.d.ts +1 -1
  116. package/dist/typescript-declarations.d.ts.map +1 -1
  117. package/dist/typescript-declarations.js +233 -21
  118. package/dist/typescript-declarations.js.map +1 -1
  119. package/dist/unowned-errors.d.ts +15 -2
  120. package/dist/unowned-errors.d.ts.map +1 -1
  121. package/dist/unowned-errors.js +13 -2
  122. package/dist/unowned-errors.js.map +1 -1
  123. package/dist/version.d.ts +1 -1
  124. package/dist/version.js +1 -1
  125. package/dist/workspace-index.d.ts.map +1 -1
  126. package/dist/workspace-index.js +42 -17
  127. package/dist/workspace-index.js.map +1 -1
  128. package/package.json +8 -8
  129. package/skill/ai-skill-node.md +91 -22
  130. package/skill/ai-skill-server.md +173 -0
  131. package/skill/ai-skill-web.md +51 -1
  132. package/skill/ai-skill.md +36 -13
  133. package/dist/official-script-language-service.d.ts +0 -2
  134. package/dist/official-script-language-service.d.ts.map +0 -1
  135. package/dist/official-script-language-service.js +0 -10
  136. package/dist/official-script-language-service.js.map +0 -1
  137. package/dist/official-tool-assets.d.ts +0 -3
  138. package/dist/official-tool-assets.d.ts.map +0 -1
  139. package/dist/official-tool-assets.js +0 -60
  140. package/dist/official-tool-assets.js.map +0 -1
  141. package/dist/script-language-service.d.ts +0 -82
  142. package/dist/script-language-service.d.ts.map +0 -1
  143. package/dist/script-language-service.js +0 -18
  144. package/dist/script-language-service.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"workspace-index.js","sourceRoot":"","sources":["../src/workspace-index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workspace-index.js","sourceRoot":"","sources":["../src/workspace-index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@velarscript/cli",
3
- "version": "0.12.1",
3
+ "version": "0.14.0",
4
4
  "description": "The VelarScript command-line compiler, dev server, test runner, and language server.",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",
@@ -30,13 +30,13 @@
30
30
  "velar": "./dist/cli.js"
31
31
  },
32
32
  "dependencies": {
33
- "@velarscript/compiler": "0.12.1",
34
- "@velarscript/core": "0.12.1",
35
- "@velarscript/desktop": "0.12.1",
36
- "@velarscript/node": "0.12.1",
37
- "@velarscript/script-analysis": "0.10.5",
38
- "@velarscript/web": "0.12.1",
39
- "create-velar": "0.12.1",
33
+ "@velarscript/compiler": "0.14.0",
34
+ "@velarscript/core": "0.14.0",
35
+ "@velarscript/desktop": "0.14.0",
36
+ "@velarscript/node": "0.14.0",
37
+ "@velarscript/server": "0.14.0",
38
+ "@velarscript/web": "0.14.0",
39
+ "create-velar": "0.14.0",
40
40
  "esbuild": "^0.28.1",
41
41
  "playwright": "^1.58.2"
42
42
  }
@@ -4,9 +4,17 @@ Load this after `velar skill core`. This brief contains only the Node owner’s
4
4
  contract. Core does not learn server declarations, path-pattern strings, Node
5
5
  capabilities, or application configuration.
6
6
 
7
- ## Ownership and application entry
7
+ ## Ownership and low-level application entry
8
8
 
9
- A Node service activates the extension and names one exported `ServeApp`:
9
+ `@velarscript/node` is a capability extension. It owns route syntax,
10
+ path-pattern strings, Node modules, HTTP/WebSocket transport, and low-level
11
+ server lifecycle; it does not own convention-based application configuration.
12
+ An ordinary service activates `@velarscript/server` and then loads
13
+ `velar skill server` for root `application.*`, application assembly, and
14
+ connection lifecycle.
15
+
16
+ A deliberately low-level Node application may activate Node directly and name
17
+ one exported zero-argument async startup function:
10
18
 
11
19
  ```json
12
20
  {
@@ -16,28 +24,47 @@ A Node service activates the extension and names one exported `ServeApp`:
16
24
  "publicDir": "public",
17
25
  "extensions": ["@velarscript/node"],
18
26
  "node": {
19
- "app": "app",
20
- "host": "127.0.0.1",
21
- "port": 3000,
22
- "maxBodyBytes": 16777216,
27
+ "app": "start",
23
28
  "build": {"sourceMaps": false}
24
29
  }
25
30
  }
26
31
  ```
27
32
 
28
- The entry exports application data; it does not need a manually named function
29
- or top-level `serve(...)` call:
33
+ The low-level entry owns its own startup arguments in code:
30
34
 
31
35
  ```velar fragment
32
- import {app as routes} from "./app.vel"
36
+ import {serve} from "velar/serve"
37
+ import {app} from "./app.vel"
38
+
39
+ export async def start():
40
+ return await serve(app, port=3000, host="127.0.0.1")
41
+ ```
33
42
 
34
- export const app = routes
43
+ For one shared HTTP/WebSocket application port, the same exact zero-argument
44
+ shape returns `Promise<WebSocketServer>`:
45
+
46
+ ```velar fragment
47
+ import {app as routes} from "./app.vel"
48
+ import {listen} from "velar/websocket"
49
+
50
+ export async def start():
51
+ return await listen({
52
+ host: "127.0.0.1",
53
+ port: 3000,
54
+ http: routes,
55
+ path: "/api/events",
56
+ origins: ["https://app.example.com"],
57
+ maxBodyBytes: 16777216,
58
+ })
35
59
  ```
36
60
 
37
- Use `velar dev` while editing, `velar serve` for checked production runtime
38
- behavior, and `velar build` for a standalone Node output directory. A direct
39
- `serve(app, port=0)` call is still correct in integration tests or an embedded
40
- server.
61
+ The exact result is `Promise<WebSocketServer>`. The launcher supplies no
62
+ host, port, or body-limit parameters.
63
+
64
+ Use direct Node activation for tools, embedded adapters, and tests. For an
65
+ application service, activate `@velarscript/server`; it provides the same
66
+ `velar dev`, `velar serve`, and standalone `velar build` workflow without a
67
+ second runtime configuration source.
41
68
 
42
69
  `@name` keeps its one language-wide role: it qualifies a compiler-owned name
43
70
  in the current context. In a `server` block, the available names are `@get`,
@@ -178,6 +205,23 @@ and explicit error recovery. A timeout response does not pretend downstream
178
205
  work was cancelled: its request resources remain alive until that work really
179
206
  ends, and the runtime caps unfinished timed-out tasks.
180
207
 
208
+ Overlapping routes are refused by two referees. At compile time the analyzer
209
+ follows the path-preserving combinators: `use`, `bodyLimit`, `docs`, and
210
+ `lifecycle` carry their app argument’s routes through unchanged, and `prefix`
211
+ translates them when its path is a string literal. So
212
+ `...prefix("/api", routes)` is checked against the composing server’s own
213
+ routes at the translated addresses, and the diagnostic names that address and
214
+ the server the route was composed in from. A module-level `const` alias of a
215
+ server resolves, and so does a `let` the module never reassigns. A spread the
216
+ analyzer cannot resolve, such as an imported server, a computed prefix path, or
217
+ an app handed back by a function, is deliberately let through; a false conflict
218
+ here would block a correct program. The final route table exists only at
219
+ assembly, so the runtime judges it there: an overlapping table refuses to build,
220
+ and the failure names both routes, where each one came from, and the method and
221
+ path shape they share. Both referees read one definition of that shape, and a
222
+ program the compiler rejected never reaches assembly, so nothing is reported
223
+ twice.
224
+
181
225
  `lifecycle` owns paired startup and shutdown hooks. Successful startups unwind
182
226
  in reverse order; a failed startup does not run its paired shutdown.
183
227
  `background(response, task)` keeps request-scoped resources valid until the
@@ -212,9 +256,13 @@ total stream are bounded. SSE accepts text or checked
212
256
  root-contained, streamed reads with validators and one byte range.
213
257
 
214
258
  `velar/websocket.listen({http: app, ...})` serves a `ServeApp` and WebSocket
215
- upgrades on one native server and owns the application lifecycle. Connections
216
- are pull-based. Always consume `next()`, handle backpressure, and stop the
217
- server.
259
+ upgrades on one native server and owns the application lifecycle. Set
260
+ `maxBodyBytes` to the supplied application value. `origins` contains exact
261
+ canonical HTTP/HTTPS origins. The default rejects any upgrade carrying
262
+ `Origin`; no-Origin non-browser clients remain allowed. Use `["*"]` only for an
263
+ intentional unrestricted policy. A rejected browser origin receives 403 before
264
+ it consumes connection-queue capacity. Connections are pull-based. Always
265
+ consume `next()`, handle backpressure, and stop the server.
218
266
 
219
267
  ## Tests
220
268
 
@@ -290,11 +338,32 @@ read-modify-write sequence atomic.
290
338
 
291
339
  Use `velar/fs`, `velar/path`, `velar/process`, `velar/env`,
292
340
  `velar/terminal`, `velar/http`, `velar/worker`, and `velar/websocket` instead of
293
- ambient Node globals. Databases are ordinary external source packages: use the
294
- engine-neutral `@velarscript/database` model contract and install an adapter
295
- such as `@velarscript/sqlite`. Third-party packages cross a checked `extern
296
- module` adapter first; keep `import js unsafe` at one narrow validation
297
- boundary.
341
+ ambient Node globals. Database contracts, drivers, codecs, and other
342
+ application integrations are project-owned modules or dependencies. Declare
343
+ third-party boundaries with checked `extern module`; keep `import js unsafe`
344
+ at one narrow validation boundary.
345
+
346
+ An HTTP response has no `ok` field on any target: `response()` throws
347
+ `HttpResponseError` for every non-2xx status before the value exists, so every
348
+ response the code can hold already succeeded. Wrap the call in `try:` /
349
+ `catch failure:`, narrow with `if failure is HttpResponseError:` —
350
+ `HttpResponseError` is imported from `velar/http` — and read `failure.status`
351
+ there.
352
+
353
+ Wire-shaped values arrive as `unknown`, not as a checked shape. An
354
+ `HttpError`’s `body`, the payload of a response whose declared type is
355
+ `ServeResponse`, the path items of an `openapi(...)` document, the error handed
356
+ to a `middleware.errors` handler, and a test response’s parsed body are all
357
+ `unknown`: validate one with `Type.parse`, or narrow it, before touching a
358
+ member. A middleware reaches no payload at all: `await next()` answers the whole
359
+ `ServeResponse` union, whose three variants share no payload field and no
360
+ discriminant, so `status` and `headers` are the members it can read.
361
+ `request.parse(Report)` is unchanged and stays the checked way in. Constructing
362
+ responses is unchanged too; `json` and `created` accept any payload and hand
363
+ back a response whose payload keeps the type it was given, and that payload
364
+ turns into a read-only `unknown` once the value is widened to `ServeResponse`,
365
+ which is what lets a response carrying a concrete payload still be a
366
+ `ServeResponse`.
298
367
 
299
368
  Run `velar format --check`, `velar check`, `velar test`, and
300
369
  `velar build`. The complete runnable spelling lives in
@@ -0,0 +1,173 @@
1
+ # The VelarScript Server AI skill brief
2
+
3
+ Load this after `velar skill core` and `velar skill node`. This brief contains
4
+ only the convention-based Server application framework. Node still owns route
5
+ syntax, HTTP/WebSocket transport, filesystem, process, and the low-level
6
+ `velar/serve` runtime.
7
+
8
+ ## Activation and ownership
9
+
10
+ A service installs and explicitly activates `@velarscript/server`, just as a
11
+ browser application activates `@velarscript/web`:
12
+
13
+ ```json
14
+ {
15
+ "dependencies": {
16
+ "@velarscript/server": "0.14.0"
17
+ }
18
+ }
19
+ ```
20
+
21
+ ```json
22
+ {
23
+ "formatVersion": 2,
24
+ "entry": "src/main.vel",
25
+ "outDir": "dist",
26
+ "publicDir": "public",
27
+ "extensions": ["@velarscript/server"]
28
+ }
29
+ ```
30
+
31
+ The Server application extension composes the Node capability. Do not list both
32
+ extensions. Without `@velarscript/server`, `velar/server` is unavailable and
33
+ root application configuration is not loaded.
34
+
35
+ The conventional entry export is `start`. A different exported binding may be
36
+ selected with the optional `server.app` manifest field; `server.build.sourceMaps`
37
+ is the only build setting. Host, port, request limits, database locations, and
38
+ other runtime settings never belong in `velar.json`.
39
+
40
+ ## Convention-based application configuration
41
+
42
+ The only conventional configuration file is root `application.yml`.
43
+
44
+ YAML and JSON enter the same checked runtime-Type boundary. Files are bounded;
45
+ YAML is strict, rejects duplicate keys, and limits aliases. An explicit
46
+ `.yml`, `.yaml`, or `.json` path is the escape hatch for deployment-specific
47
+ configuration; other root filenames are never discovered by convention.
48
+
49
+ The framework-owned server section is:
50
+
51
+ ```yaml
52
+ server:
53
+ host: 127.0.0.1
54
+ port: 3000
55
+ maxBodyBytes: 16777216
56
+ ```
57
+
58
+ All three fields are optional. Their defaults are `127.0.0.1`, `3000`, and
59
+ 16 MiB. `application(app)` reads this section when the server starts:
60
+
61
+ ```velar
62
+ import {application} from "velar/server"
63
+
64
+ export server routes:
65
+ @get(p"/health") => {status: "ready"}
66
+
67
+ export const start = application(routes)
68
+ ```
69
+
70
+ `velar dev`, `velar serve`, and the standalone `velar build` output use the
71
+ same root configuration. CLI `--host` and Node `--port` overrides are not a
72
+ second configuration channel. A missing conventional file uses the server
73
+ defaults; when application-specific settings are required, load the full file
74
+ with `configuration(Type)`, which requires the file to exist.
75
+
76
+ ## Typed application settings
77
+
78
+ Declare the application-owned shape and load it through its Runtime Type:
79
+
80
+ ```velar
81
+ import {configuration} from "velar/server"
82
+
83
+ type ServerSettings:
84
+ host: string
85
+ port: number
86
+ maxBodyBytes: number
87
+
88
+ type DatabaseSettings:
89
+ path: string
90
+ busyTimeoutMilliseconds: number
91
+
92
+ type ApplicationSettings:
93
+ server: ServerSettings
94
+ database: DatabaseSettings
95
+
96
+ export const settings = await configuration(ApplicationSettings)
97
+ ```
98
+
99
+ `configuration(Type, path=null, maxBytes=65536)` returns
100
+ `Promise<Type>`. A non-null path must end in `.yml`, `.yaml`, or `.json`.
101
+ The framework parses syntax; the application Runtime Type owns field names and
102
+ types, and application validation still owns domain ranges and invariants.
103
+ Environment variables may form an explicit deployment override layer, but
104
+ secrets do not belong in application configuration.
105
+
106
+ ## Abstract database connection lifecycle
107
+
108
+ `database(connect, disconnect)` creates an eager application-scoped
109
+ `Provider<Connection>`. It establishes one typed connection during application
110
+ startup, injects that same value into routes, and disconnects it during
111
+ application shutdown after admitted work has drained:
112
+
113
+ ```velar
114
+ import {database} from "velar/server"
115
+ import {input} from "velar/serve"
116
+
117
+ type Connection:
118
+ name: string
119
+ close: () -> Promise<null>
120
+
121
+ const connection = database(
122
+ connect=async () => {name: "primary", close: async () => null},
123
+ disconnect=async value => await value.close(),
124
+ )
125
+
126
+ export server databaseRoutes:
127
+ @get(p"/database", value=input.dependency(connection)) => {name: value.name}
128
+ ```
129
+
130
+ The framework owns only this connect/inject/disconnect lifecycle. Concrete
131
+ drivers, pools, database models, schemas, queries, migrations, transactions,
132
+ dialect behavior, retry rules, and credentials remain independently installed
133
+ application dependencies. Do not add SQLite, PostgreSQL, an ORM, or model
134
+ syntax to `@velarscript/server` or `@velarscript/node`.
135
+
136
+ ## Custom shared HTTP/WebSocket startup
137
+
138
+ A service that needs one custom shared HTTP/WebSocket listener may load the same
139
+ typed configuration and export an exact zero-argument async startup function:
140
+
141
+ ```velar fragment
142
+ import {configuration} from "velar/server"
143
+ import {listen} from "velar/websocket"
144
+
145
+ type ServerSettings:
146
+ host: string
147
+ port: number
148
+ maxBodyBytes: number
149
+
150
+ type Settings:
151
+ server: ServerSettings
152
+
153
+ const settings = await configuration(Settings)
154
+
155
+ export async def start():
156
+ return await listen({
157
+ host: settings.server.host,
158
+ port: settings.server.port,
159
+ http: routes,
160
+ path: "/events",
161
+ origins: ["https://app.example.com"],
162
+ maxBodyBytes: settings.server.maxBodyBytes,
163
+ })
164
+ ```
165
+
166
+ The result must be exactly `Promise<WebSocketServer>`. The launcher supplies no
167
+ host, port, or body-limit arguments; the root application configuration remains
168
+ the single runtime authority.
169
+
170
+ Use direct `serve(app, port=0)` in tests or embedded low-level adapters. Use
171
+ `velar/server-test` only from `*.test.vel`. Route, provider, transport,
172
+ Origin-admission, resource-limit, and shutdown semantics are documented in the
173
+ Node brief because Node owns those primitives.
@@ -64,6 +64,22 @@ A resource loads once at mount. Refetching after an input changes is an
64
64
  explicit `watch` plus detached `async resource.reload()`. Actions do not queue;
65
65
  disable or otherwise guard a trigger when concurrent calls are unwanted.
66
66
 
67
+ A watch subject is a reactive name — a `state`, a `computed`, a prop, or a
68
+ resource field — or a read path out of one, such as `items[0].done`. An operator
69
+ or a call there is refused; declare the value with `computed` and watch that
70
+ name. A subject that is not reactive is refused as well: `watch total:` over a
71
+ plain `const` is a body that can never run. `computed` is the only spelling for
72
+ a reactive derived value. A `const` inside a component is not a second one: its
73
+ initializer is evaluated once at construction and never recomputes, and no
74
+ diagnostic marks it.
75
+
76
+ A watch may write state and declares nothing to do so. Within a flush, watches
77
+ run in the order they were written: source order in one module, mount order
78
+ across instances of one component, module initialization order across modules.
79
+ Two watches that write one `state` both take effect, in that order. Put a value
80
+ that must be correct before anything reads it in a `computed`, which settles
81
+ before any DOM is written and never depends on watch order.
82
+
67
83
  `@mounted:` runs after insertion and may await. `@cleanup:` runs before removal
68
84
  and is synchronous. A component may still declare ordinary methods named
69
85
  `mounted` or `cleanup` because compiler-owned names occupy a separate namespace.
@@ -72,7 +88,35 @@ Events use `on:click={handler}`. Writable form paths use `bind:value`,
72
88
  `bind:checked`, or `bind:group`; do not read `event.target`. A JSX tag body is
73
89
  received only through an explicitly declared `children: WebNode` prop.
74
90
  Conditional rendering is an expression, and repeated children need stable
75
- `key` values.
91
+ `key` values. Reuse asks two questions: the key must match, and the row it names
92
+ must still be the same value. `items = items.map(item => { ...item, done: true })`
93
+ rebuilds every row, so the keyed list recognises none of them and destroys and
94
+ rebuilds all of its children — an input being typed into loses focus. Change the
95
+ field in place, `items[index].done = true`. The compiler raises advisory **A4**
96
+ where the rewritten list is the one a keyed position renders; `// velar-allow
97
+ A4: <reason>` suppresses it where a `map` is the only spelling, which a
98
+ `readonly` list or one API response makes it.
99
+
100
+ A native element rejects every attribute name beginning with `on` other than
101
+ the `on:` directive itself. `onclick`, `onClick`, and `ONCLICK` are one
102
+ attribute to the browser, and the browser compiles that attribute's value as
103
+ script in the application's origin, which VelarScript reserves for
104
+ `unsafe:html`. The prefix is reserved by name rather than by a roster of
105
+ handler names, so the next handler spelling the platform adds is closed in
106
+ advance. A component prop may still be named `onSave`; the reservation belongs
107
+ to the native element.
108
+
109
+ `host` marks the element that receives what an invocation attaches to a
110
+ component — `class`, `look`, `look:*`, and `style:*`. `class:*` is a native
111
+ element directive and is not among them; an invocation that writes it is
112
+ reported as an unknown prop. A component whose root is a single native element
113
+ or a single component needs no marker. A nested component's `host` names that
114
+ component's host and never the enclosing one's, wherever the nested component
115
+ sits: buried inside one of the enclosing component's elements, or standing
116
+ directly among its roots. An enclosing component forwards to a nested
117
+ component's host only when it marks no native element of its own, so a
118
+ component whose roots are two nested components must mark a native element of
119
+ its own to say which one receives the invocation.
76
120
 
77
121
  Props are live reactive inputs. Their data is mutable unless the author writes
78
122
  an explicit `readonly` view.
@@ -102,6 +146,12 @@ or a typed `look:color={...}` binding. Checked motion is a module-level
102
146
  animation string. Unsupported styling uses explicit `import css unsafe
103
147
  "./file.css" before look` or `after look`.
104
148
 
149
+ A `look` written on a component invocation composes after the look the
150
+ component applies to its own host, per property and per condition: declare a
151
+ property unconditionally to override the component's outright, and declare it
152
+ under a condition to refine that condition alone and leave the component's
153
+ other values standing.
154
+
105
155
  ## Storage and tests
106
156
 
107
157
  `velar/storage` stores JSON and validates on read. A generic type spelling is
package/skill/ai-skill.md CHANGED
@@ -23,7 +23,13 @@ one round.
23
23
  The working loop:
24
24
 
25
25
  1. Write ordinary code the way a fluent JS/Python author would.
26
- 2. Run `velar check`. Do exactly what each diagnostic says.
26
+ 2. Run `velar check`. Do exactly what each diagnostic says. It reports
27
+ **advisories** as well — a second channel for a spelling Vel accepts with a
28
+ meaning other than the one your JS/Python reflex intended. An advisory never
29
+ fails the check, and leaving one unresolved means the work is not done:
30
+ either write the spelling it names, or put `// velar-allow <CODE>: <reason>`
31
+ on that line saying why the code is right as written. A suppression with no
32
+ reason, and one that no longer applies, are both compile errors.
27
33
  3. Run `velar fix` to apply every rewrite the diagnostics already named
28
34
  (retired spellings with one successor, line-ending semicolons, and the rest
29
35
  of that family); it never rewrites anything that needs a decision, so what
@@ -53,7 +59,8 @@ These names need no import and cannot be shadowed: `const Text = 1` is rejected.
53
59
  protects these names. Capabilities stay explicit imports. Durations use `ms` or
54
60
  `s`, so write `await Promise.sleep(250ms)`, not a bare number.
55
61
 
56
- Use checked binary, random, task, and official adapter APIs. A direct
62
+ Use checked binary, random, and task APIs. Project-specific codecs, storage,
63
+ and algorithms come from project-owned modules or dependencies. A direct
57
64
  `for index in range(...):` is a native counter; range as a value is a List. Use `UInt16Buffer` for 16-bit numeric state,
58
65
  `UInt8Buffer` for compact data, and bounded `UInt32Builder`/`Float32Builder` values for variable-size numeric output.
59
66
 
@@ -90,19 +97,28 @@ module; the body may `await` directly and needs no `export`. A file that declare
90
97
 
91
98
  ## The traps your reflexes will hit
92
99
 
93
- Everything in this table was hit by real models writing Vel blind. All but
94
- the first two rows produce a teaching diagnostic, so `velar check` will catch
95
- them; the first two are the **silent traps** in the list read them twice.
100
+ Everything in this table was hit by real models writing Vel blind. Most rows
101
+ produce a teaching diagnostic, so `velar check` will catch them; the rows
102
+ marked **A1**, **A2**, **A3**, **A5**, and **A6** are answered by an advisory
103
+ instead, which reports without failing the check. Two rows are still silent —
104
+ nothing is reported at all and the program runs with the other meaning:
105
+ `a // b` where the divisor is a name rather than arithmetic, and a collection
106
+ `==` between two bindings, since only a collection literal written inside the
107
+ comparison is reported. Read those twice. The `Type.parse` row is silent as
108
+ well, but it is a guarantee rather than a trap.
96
109
 
97
110
  | Your reflex | Write instead |
98
111
  | --- | --- |
99
- | `"${value}"` or `` `${value}` `` template interpolation | `f"{value}"` or `` f`{value}` ``. Only the `f` prefix interpolates, in either delimiter; `${...}` is legal literal text in every string — including a backtick one — so nothing warns you. |
100
- | `a // b` floor division | `//` starts a comment, so the rest of the line disappears and `const c = a // b` silently binds `a`. Write `(a / b).floor()`. |
112
+ | `"${value}"` or `` `${value}` `` template interpolation (**A5**), `f"${value}"` (**A6**) | `f"{value}"` or `` f`{value}` ``. Only the `f` prefix interpolates, in either delimiter, and a `$` in front of the brace keeps it literal even under that prefix. `${...}` stays legal text in every string — including a backtick one — so nothing fails: the advisory reports and the build continues. Suppress it with `// velar-allow A5: <reason>` where the characters are what you meant, as they are when the string is JavaScript source; under the `f` prefix the code is `A6`, and naming the one that did not fire is a compile error. A raw `r"..."` never raises A5, since asking for literal text is what the prefix says; `rf` still raises A6. |
113
+ | `a // b` floor division (**A1**) | `//` starts a comment, so the rest of the line disappears and `const c = a // b` silently binds `a`. Write `(a / b).floor()`. The advisory reaches only a comment body made of digits and arithmetic — `a // 2` reports, `a // b` does not, because a body carrying letters is an ordinary comment. |
114
+ | `for i, v in nums:` (**A2**) | `for v, i in nums:` — the two-slot `for` gives `value, index`, like JS `forEach((v, i) => …)` and unlike Python's `enumerate`. |
115
+ | `-7 % 3` expecting `2` (**A3**) | Vel's `%` is JavaScript's, so it is `-1`. Python's non-negative modulo is `((a % b) + b) % b`. |
101
116
  | `# comment` | `// comment` (`///` documents the following declaration). |
102
117
  | `function f(...)`, `fn f(...)` | `def f(...) -> Result:` |
103
118
  | `interface X:`, `record X:`, `struct X:` | `type X:` — one keyword for record shapes and aliases. |
104
119
  | `items.length` | `items.size` (also on strings, Sets, Maps). |
105
120
  | `items.push(x)` | `items.append(x)`. There is no `splice`/`shift`/`unshift`/mutating `sort`; use `insert`, `pop`, `remove`, `extend`, and the copying `sorted()`/`reversed()`. |
121
+ | `{retry: 1, timeoutMs: 30}` where the type declares `timeout` | A record literal written at an annotated position is closed: an undeclared key is reported, and the nearest declared field named when one is near enough — `Type 'Options' has no field 'timeoutMs'; did you mean 'timeout'?`, against a bare `Type 'Options' has no field 'extra'` when no declared name is close. The annotation may sit on the binding, the parameter, the result, or the collection the literal is written into. A value that is not a literal stays structurally open, so passing a record that happens to carry more is unaffected. |
106
122
  | `const items = []`, `const tags = Set()` | An empty collection takes its type where it is written: `const items: List<string> = []`. A later `append`/`add`/`set` never types the declaration. A contextual position supplies it too, so `take(Set())` and `return Map()` need no annotation. |
107
123
  | `if value:` truthiness | Conditions accept only `bool`/`bool?`. Test presence explicitly: `if value != null:`. |
108
124
  | `value is null` | `value == null` / `value != null` — `is` tests runtime types, `null` is a value. |
@@ -117,6 +133,7 @@ them; the first two are the **silent traps** in the list — read them twice.
117
133
  | `"""triple-quoted"""` for a block of text | A layout string: a double quote followed immediately by a newline opens it; a quote back at the opening line's indentation closes it. Backtick strings are real, but always single-line. |
118
134
  | Escaping `\"` through a JSON, HTML, or selector string | Use backticks: `` `{"name":"Nova"}` `` is the same `string` value, with `"` as ordinary text. Prefixes are orthogonal (`` f` ``, `` r` ``, `` rf` ``), and `velar format` picks the delimiter for you (`"` by default, backticks when the text contains `"`), so write whichever is convenient. |
119
135
  | `007`, `.5` | Write `7`, `0.5`. Explicit `0xFF`, `0b1010`, and `0o17` integers are supported; legacy leading-zero octal is not. Group long digits with `_` — `1_000_000`. `Infinity` and `NaN` are not literals: write `1 / 0` and `0 / 0`. |
136
+ | Pasting a wide id or an exact bit pattern as a number literal | An integer literal `number` cannot hold exactly is refused rather than rounded: `9007199254740993` and `0x20000000000001` both report instead of becoming `9007199254740992`. Carry an identifier that wide as a `string`. Only a literal written as an integer is tested — a fraction or exponent spelling keeps the ordinary nearest-value reading. |
120
137
  | `a == b == c` | Equality never chains: `a == b and b == c`. Ordered chains work but must point one way — `0 < index <= size` is fine, `a < b > c` is not. An `in` or `is` test inside a comparison needs parentheses. |
121
138
  | A line that is only a value — `x == 5`, `items[0]`, `"a note"` | A statement must do something: call, assign, `await`, or `async`. A computed-and-discarded value is a compile error, and a bare string is not a docstring — use `//`. |
122
139
  | A block comment that starts or ends beside code on a multi-line span | `/* */` exists and nests — commenting out a region that already holds a comment works — but a multi-line one takes whole lines: only `/*` on its opening line, only `*/` on its closing line. Within a single line it can sit anywhere: `call(/* why */ value)`. |
@@ -128,12 +145,15 @@ them; the first two are the **silent traps** in the list — read them twice.
128
145
  | `map[key]` reads | `map.get(key)` returns `T?`. On Lists, `[index]` throws on a bug; `.get(index)` returns `null` when absence is an expected answer. |
129
146
  | `[...text]` or `list(text)` for characters | `text.split("")` — the empty separator splits per Unicode code point. |
130
147
  | `x !== x` or `Number.isNaN(x)` | Number predicates are members: `x.isNaN()`, `x.isFinite()`, `x.isInteger()`. `NaN == NaN` is `true` — equality is SameValueZero. |
148
+ | `Math.min(a, b)` or `values.sorted()` where a NaN may be present | A NaN may be held and tested, and one policy governs the rest: `Math.min`, `Math.max`, `Math.clamp`, `sorted()`, `sorted(by=)`, `min()`, `max()`, `sum()`, and the ordering a `Comparable`-bounded type parameter performs all raise instead of answering. The bare `<`, `<=`, `>`, and `>=` on a plain `number` are the one exception and keep IEEE behavior, so every comparison against a NaN is `false` and `if a < b:` reports nothing. Drop it first — `values.filter(v => not v.isNaN())`. |
131
149
  | `text.trim().size == 0` blank test | `text.isBlank()` — `true` for empty or whitespace-only text. |
132
150
  | `while true:` plus a `pop()` null check to drain a List | `pop(index=-1)` returns `T` and throws `IndexError` when empty or out of range, so drain with `while items.size > 0:`. |
133
151
  | `1 == "1"`, `user == "a"`, `A.member == B.member`, `raw == Kind.member` | `==`/`!=` require the operand types to intersect. Compare enums with `Kind.parse(raw) == Kind.member` when the text must name a member — `parse` throws otherwise — or `str(Kind.member) == raw` when unknown values must be ignored, as on an open wire protocol. `value == null` on an optional is always fine. |
134
152
  | `[1, 2] == [1, 2]` content comparison | Collection `==` is identity; `equals(a, b)` compares data deeply (Lists ordered, Sets/Maps by members, SameValueZero leaves) with no import. |
135
153
  | Iterating or spreading an enum object | `Status.values()` returns the members in declaration order as a fresh `List<Status>`. |
136
154
  | `sorted()`, `min()`, or `sorted(by=)` over enums | Only `number`, `string`, and single-category unions are ordered. Give the order explicitly with `sorted(by=row => row.rank)` or a string-backed enum (`low = "1-low"`). |
155
+ | Writing through the value you handed to `Type.parse` | `parse` returns a copy, so "validated" means "and it stays valid" rather than "it was correct at that instant": neither side's later writes reach the other. Positions the type leaves opaque — an `unknown` field, a class instance — stay shared. |
156
+ | `export const client = thing`, where `thing` came out of `unsafe js` | This compiles, and what it publishes is an `unknown`: the JavaScript boundary hands back `unknown`, so a consuming module that never writes `unsafe` is stopped at its own first read — `Cannot access 'name' on unknown without validation`. Nothing leaks, but nothing is usable either. Validate into a declared type in this module and export that, so the shape is named once instead of at every consumer. `any` is not a type source can write at any position — the word names the boundary, and the boundary answers `unknown`. |
137
157
 
138
158
  The long tail is deliberately not in this table: the diagnostic will name
139
159
  the current spelling when you hit it.
@@ -471,12 +491,15 @@ the Vel side observes it — no recompute, no re-render, no refreshed flow fact
471
491
  until some unrelated Vel assignment invalidates. Have the package **return** the
472
492
  data and assign the result on the Vel side.
473
493
 
474
- 2. **Quick raw access** — `import js unsafe` admits the value as `any`.
475
- Operations on an `any` are raw JavaScript with no runtime check anywhere: it
476
- is assignable to every type without validation, and an `any` holding
477
- `undefined` even answers `false` to `== null`. The import statement is the
478
- only correctness boundary validate with `Type.parse` there, before the
479
- value touches typed code.
494
+ 2. **A boundary with no contract to write** — `import js unsafe` admits the
495
+ value as `unknown`, so it needs no `extern module` block. It skips the
496
+ declaration, not the checking: a member read, a call, an `await`, an
497
+ f-string or `str()`, and an assignment to a typed binding are each refused
498
+ by name while the value is still unvalidated. `print`, `Json.stringify`,
499
+ `== null`, and passing it on as `unknown` are the operations an unvalidated
500
+ boundary value still answers. Validate at the import — `Type.parse` a
501
+ declared shape, or narrow with `value is string` — before the value touches
502
+ typed code.
480
503
  3. **A suspected compiler defect blocking you** — run `velar repro` (below),
481
504
  then take the final exit: `velar build` output is readable, source-mapped
482
505
  JavaScript that runs without the toolchain.