@almadar/core 10.48.0 → 10.49.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.
@@ -1779,12 +1779,13 @@ declare const ScenePosSchema: z.ZodObject<{
1779
1779
  }>;
1780
1780
  /**
1781
1781
  * Camera behaviors, unifying the former per-host vocab (2D `camera` string +
1782
- * 3D `cameraMode`). `isometric`/`top-down` are fixed framings; `follow`/`chase`
1783
- * track a target; `perspective` is the 3D dramatic framing.
1782
+ * 3D `cameraMode`). `isometric`/`top-down`/`front` are fixed framings (`front` =
1783
+ * the straight-on flat elevation side-scroller / reference-sheet view);
1784
+ * `follow`/`chase` track a target; `perspective` is the 3D dramatic framing.
1784
1785
  */
1785
- declare const CAMERA_MODES: readonly ["isometric", "perspective", "top-down", "follow", "chase"];
1786
+ declare const CAMERA_MODES: readonly ["isometric", "perspective", "top-down", "front", "follow", "chase"];
1786
1787
  type CameraMode = (typeof CAMERA_MODES)[number];
1787
- declare const CameraModeSchema: z.ZodEnum<["isometric", "perspective", "top-down", "follow", "chase"]>;
1788
+ declare const CameraModeSchema: z.ZodEnum<["isometric", "perspective", "top-down", "front", "follow", "chase"]>;
1788
1789
  /**
1789
1790
  * A neutral camera pose shared by the 2D and 3D canvas hosts, so `type: canvas`
1790
1791
  * carries one camera object regardless of painter. `pos`/`target` are `ScenePos`
@@ -1828,7 +1829,7 @@ declare const CameraSchema: z.ZodObject<{
1828
1829
  }>>;
1829
1830
  zoom: z.ZodOptional<z.ZodNumber>;
1830
1831
  fov: z.ZodOptional<z.ZodNumber>;
1831
- mode: z.ZodOptional<z.ZodEnum<["isometric", "perspective", "top-down", "follow", "chase"]>>;
1832
+ mode: z.ZodOptional<z.ZodEnum<["isometric", "perspective", "top-down", "front", "follow", "chase"]>>;
1832
1833
  }, "strip", z.ZodTypeAny, {
1833
1834
  target?: {
1834
1835
  x: number;
@@ -1842,7 +1843,7 @@ declare const CameraSchema: z.ZodObject<{
1842
1843
  } | undefined;
1843
1844
  zoom?: number | undefined;
1844
1845
  fov?: number | undefined;
1845
- mode?: "isometric" | "perspective" | "top-down" | "follow" | "chase" | undefined;
1846
+ mode?: "isometric" | "perspective" | "top-down" | "front" | "follow" | "chase" | undefined;
1846
1847
  }, {
1847
1848
  target?: {
1848
1849
  x: number;
@@ -1856,7 +1857,7 @@ declare const CameraSchema: z.ZodObject<{
1856
1857
  } | undefined;
1857
1858
  zoom?: number | undefined;
1858
1859
  fov?: number | undefined;
1859
- mode?: "isometric" | "perspective" | "top-down" | "follow" | "chase" | undefined;
1860
+ mode?: "isometric" | "perspective" | "top-down" | "front" | "follow" | "chase" | undefined;
1860
1861
  }>;
1861
1862
  type SemanticAssetRefInput = z.input<typeof SemanticAssetRefSchema>;
1862
1863
  type AnimationDefInput = z.input<typeof AnimationDefSchema>;
@@ -2362,7 +2363,7 @@ type EntityData = Record<string, EntityRow[]>;
2362
2363
  *
2363
2364
  * DO NOT EDIT MANUALLY — regenerated by almadar-pattern-sync `patterns` command.
2364
2365
  *
2365
- * Generated: 2026-07-31T10:02:24.509Z
2366
+ * Generated: 2026-08-01T09:06:42.746Z
2366
2367
  * Pattern count: 269
2367
2368
  */
2368
2369
 
@@ -3352,6 +3353,10 @@ interface PatternPropsMap {
3352
3353
  position: PatternPropValue | string | SExpr;
3353
3354
  scale?: number | string | SExpr;
3354
3355
  rotate?: number | string | SExpr;
3356
+ rotation?: unknown[] | string | SExpr;
3357
+ bone?: string | SExpr;
3358
+ skeleton?: boolean | string | SExpr;
3359
+ animation?: PatternPropValue | string | SExpr;
3355
3360
  opacity?: number | string | SExpr;
3356
3361
  clip?: string | SExpr;
3357
3362
  items: unknown[] | string | SExpr;
@@ -3369,6 +3374,9 @@ interface PatternPropsMap {
3369
3374
  radiusBottom?: number | string | SExpr;
3370
3375
  tube?: number | string | SExpr;
3371
3376
  segments?: number | string | SExpr;
3377
+ vertices?: unknown[] | string | SExpr;
3378
+ faces?: unknown[] | string | SExpr;
3379
+ skin?: PatternPropValue | string | SExpr;
3372
3380
  rotation?: unknown[] | string | SExpr;
3373
3381
  pivot?: string | SExpr;
3374
3382
  material?: PatternPropValue | string | SExpr;
@@ -0,0 +1,54 @@
1
+ import { O as OrbitalSchema } from './schema-1bzTH92n.js';
2
+ import { S as SExpr } from './expression-Yf7qvvOs.js';
3
+
4
+ /**
5
+ * Entity access policies — the declared `@read`/`@create`/`@update`/`@delete`
6
+ * directives, keyed by entity name.
7
+ *
8
+ * The JS mirror of `orbital-core/src/runtime/entity_access.rs`'s
9
+ * `EntityAccessPolicies`/`EntityAccessTable`. Both paths must agree: a
10
+ * directive is a per-row predicate (`@entity` = the candidate row, or for
11
+ * `@create` the incoming data; `@user` = the viewer), enforced once for
12
+ * every trait that touches the entity — the un-bypassable twin of a
13
+ * call-site `filter:`, which sibling traits can skip simply by not
14
+ * declaring one.
15
+ *
16
+ * @packageDocumentation
17
+ */
18
+
19
+ /** An entity's four declared directives. Any may be absent — an absent
20
+ * directive means "no restriction" for that operation, exactly like an
21
+ * absent fetch `filter:`. */
22
+ interface EntityAccessPolicies {
23
+ read?: SExpr;
24
+ create?: SExpr;
25
+ update?: SExpr;
26
+ delete?: SExpr;
27
+ }
28
+ /**
29
+ * Every entity's access policies, keyed by entity name.
30
+ *
31
+ * A policy governs the **collection**, not the declaration. A `persistent:`
32
+ * collection is one table, and two entity declarations over one table cannot
33
+ * honestly carry different visibility rules. Keying by entity name alone let an
34
+ * organism declare `@read` on its own entity and still ship an ALLOW-ALL list
35
+ * wherever a page rendered through a std-atom trait that fetched the ATOM's
36
+ * entity on the same collection — measured on `std-customer-success`, where
37
+ * `/health-scores` returned 6 rows for every persona while the organism's own
38
+ * `/cs-accounts` correctly returned 3 vs 6. 36 of 54 app organisms share a
39
+ * collection this way (`R-SHADOW-ENTITY-SHARES-COLLECTION-DIRECTIVES-DONT-APPLY`).
40
+ *
41
+ * So an entity that declares nothing adopts the policy declared on its
42
+ * collection. This can only ever ADD a restriction: an entity with its own
43
+ * directives keeps exactly those, and an entity whose collection carries no
44
+ * declared policy is untouched. Conflicting declarations on one collection are
45
+ * rejected at validate time by `ORB_S_COLLECTION_POLICY_CONFLICT`.
46
+ *
47
+ * Mirrors `resolve_collection_inheritance` in
48
+ * `orbital-rust/crates/orbital-core/src/runtime/entity_access.rs`.
49
+ */
50
+ declare function entityAccessTable(schema: OrbitalSchema): Map<string, EntityAccessPolicies>;
51
+ /** One entity's access policies, or `undefined` when it declares none. */
52
+ declare function entityAccessPolicies(schema: OrbitalSchema, entityName: string): EntityAccessPolicies | undefined;
53
+
54
+ export { type EntityAccessPolicies as E, entityAccessTable as a, entityAccessPolicies as e };
@@ -1,7 +1,7 @@
1
- import { h as FactoryParamValue, c as FactoryConfigTier, b as FactoryConfigParam, F as FactoryCallSite, j as FactorySignature, R as RuleOverlay, p as RuleOverlayEntry, o as PresentationOverlay, T as TraitOverlay } from '../types-1DvdNPye.js';
2
- export { a as FactoryCallSiteParams, d as FactoryEntitySignature, e as FactoryEventSignature, f as FactoryExposure, g as FactoryPageSignature, i as FactoryProvenance, k as FactorySignatureCatalog, l as FactorySignatureEntityField, m as FactoryTraitSignature, J as JsonSchema, n as JsonSchemaType, O as OwnershipOverlayEntry, P as PresentationNavItem, S as SchemaFieldType, q as TraitOverlayEntry, r as TraitOverlayListener } from '../types-1DvdNPye.js';
3
- import { a as EntityPersistence, E as EntityField } from '../effect-DiHGegt9.js';
4
- import { a as TraitReference } from '../trait-pw49W-zL.js';
1
+ import { h as FactoryParamValue, c as FactoryConfigTier, b as FactoryConfigParam, F as FactoryCallSite, j as FactorySignature, R as RuleOverlay, p as RuleOverlayEntry, o as PresentationOverlay, T as TraitOverlay } from '../types-CUdqUyzi.js';
2
+ export { a as FactoryCallSiteParams, d as FactoryEntitySignature, e as FactoryEventSignature, f as FactoryExposure, g as FactoryPageSignature, i as FactoryProvenance, k as FactorySignatureCatalog, l as FactorySignatureEntityField, m as FactoryTraitSignature, J as JsonSchema, n as JsonSchemaType, O as OwnershipOverlayEntry, P as PresentationNavItem, S as SchemaFieldType, q as TraitOverlayEntry, r as TraitOverlayListener } from '../types-CUdqUyzi.js';
3
+ import { a as EntityPersistence, E as EntityField } from '../effect-DjMRX8sI.js';
4
+ import { a as TraitReference } from '../trait-DkMVtmED.js';
5
5
  export { J as JsonValue } from '../expression-Yf7qvvOs.js';
6
6
  import 'zod';
7
7
 
@@ -1,6 +1,6 @@
1
- import { O as OrbitalSchema, a as OrbitalDefinition } from '../schema-C0QwW3G2.js';
2
- import { h as CallSiteConfig, i as CallSiteConfigEntry, g as Trait } from '../trait-pw49W-zL.js';
3
- import { E as EntityField, a as EntityPersistence } from '../effect-DiHGegt9.js';
1
+ import { O as OrbitalSchema, a as OrbitalDefinition } from '../schema-1bzTH92n.js';
2
+ import { h as CallSiteConfig, i as CallSiteConfigEntry, g as Trait } from '../trait-DkMVtmED.js';
3
+ import { E as EntityField, a as EntityPersistence } from '../effect-DjMRX8sI.js';
4
4
  import { MakeTraitRefOpts } from '../builders.js';
5
5
  import '../expression-Yf7qvvOs.js';
6
6
  import 'zod';
@@ -317,7 +317,7 @@ var ScenePosSchema = z.object({
317
317
  y: z.number(),
318
318
  z: z.number().optional()
319
319
  });
320
- var CAMERA_MODES = ["isometric", "perspective", "top-down", "follow", "chase"];
320
+ var CAMERA_MODES = ["isometric", "perspective", "top-down", "front", "follow", "chase"];
321
321
  var CameraModeSchema = z.enum(CAMERA_MODES);
322
322
  z.object({
323
323
  pos: ScenePosSchema.optional(),