@akanjs/cli 3.0.0-alpha.32 → 3.0.0-alpha.34

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/.build-stamp CHANGED
@@ -1 +1 @@
1
- 2099eccdeb7239ce6ccf7bf5c6a250594bfac9b4208510043dd0365fe7aa7e8f
1
+ 1ba5af5f113a1c106187a2b639d58cebb76b91f2b81154ec5fd690e268026a8e
@@ -59,10 +59,13 @@ that looks wrong; do not "fix" it back.
59
59
  - **Never redeclare a generated CRUD endpoint name** in `*.signal.ts` (`no-redeclare-predefined-endpoint.grit`).
60
60
  - **Never type a `*.Util.tsx` / `*.Zone.tsx` prop as a `cnst` model** (`no-model-type-in-util-zone.grit`). Those two
61
61
  roles are always client components, so a `cnst.Banner` / `cnst.LightBanner` prop is a class instance the server has
62
- to hand across the boundary; take `bannerId: string` and read the model from the store instead. Two shapes are
63
- exempt because neither is an instance: `cnst.<Enum>["value"]`, whose indexed access resolves to a string union, and
64
- a `ClientInit` / `ClientView` / `ClientEdit` type argument, which the framework maps to `GetStateObject<…>` plain
65
- data. Any *other* indexed access is still flagged `cnst.Banner["image"]` is a `File`.
62
+ to hand across the boundary; take `bannerId: string` and read the model from the store instead. Three shapes are
63
+ exempt because none of them is an instance: `cnst.<Enum>["value"]`, whose indexed access resolves to a string
64
+ union; a `ClientInit` / `ClientView` / `ClientEdit` type argument, which the framework maps to `GetStateObject<…>`
65
+ plain data; and a `ModelsProps<cnst.Setting>` type argument, whose only use of the model is the `onClickItem`
66
+ callback, so nothing model-shaped ever lands on a prop. `ModelProps<"setting", cnst.LightSetting>` is *not* exempt
67
+ — that one spreads the model onto the props themselves, and `Unit` / `View`, which take it, are server components
68
+ this rule does not cover. Any *other* indexed access is still flagged — `cnst.Banner["image"]` is a `File`.
66
69
  **Only prop positions are read** — a `*Props` interface or type alias, and the inline object type on the
67
70
  component's own parameter. A `cnst` type that never leaves the file is not a boundary crossing and stays legal: a
68
71
  local annotation, a callback parameter the framework itself types with the model
@@ -710,7 +713,11 @@ apps and libs never import it directly (`no-import-external-library`) — everyt
710
713
  globally and a component cannot build one per render: pass the list it has — a slice's sort keys, the options a
711
714
  prop carried — and it is published and enforced the same way. Neither reaches a set that fills in *after* the
712
715
  first render, since a declaration is mount-static; put that in the tool's `guard`, which is re-read per call and
713
- can name the current values in its refusal.
716
+ can name the current values in its refusal. **An argument type nothing can describe — a model class, `Any`, a
717
+ `Map` — withdraws the whole tool and says so on the console**, naming the tool, the argument and the type; the
718
+ callable still drives the click a person makes. It does not throw: a tool schema is built during render, and an
719
+ agent-tooling mistake that aborted the render would cost the route its server rendering. `st.useState`'s `set`
720
+ degrades the same way, to read-only.
714
721
  - **A component that renders once per row publishes nothing.** A tool registered under one name by fifty rows is
715
722
  forty-nine collisions and one survivor. The container publishes one tool taking the id instead —
716
723
  `removeTask(taskId)`, never fifty `removeTask` — and the agent reads the ids from the `<slice>.items` resource
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@akanjs/cli",
3
- "version": "3.0.0-alpha.32",
3
+ "version": "3.0.0-alpha.34",
4
4
  "sourceType": "module",
5
5
  "type": "module",
6
6
  "publishConfig": {
@@ -34,7 +34,7 @@
34
34
  "@langchain/openai": "^1.4.6",
35
35
  "@tailwindcss/node": "^4.3.0",
36
36
  "@trapezedev/project": "^7.1.4",
37
- "akanjs": "3.0.0-alpha.32",
37
+ "akanjs": "3.0.0-alpha.34",
38
38
  "chalk": "^5.6.2",
39
39
  "commander": "^14.0.3",
40
40
  "dayjs": "^1.11.20",