@almadar/core 10.38.0 → 10.40.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/dist/index.js CHANGED
@@ -479,6 +479,11 @@ var OrbitalEntitySchema = z.object({
479
479
  name: z.string().min(1, "Entity name is required"),
480
480
  persistence: EntityPersistenceSchema.default("persistent"),
481
481
  shared: z.boolean().optional(),
482
+ // Must stay in step with the Rust serde field (`EntityDefinition.identity`,
483
+ // orbital-core/src/schema/types.rs). `z.object()` STRIPS unknown keys rather
484
+ // than rejecting them, so a Rust-only field works on the compiled path and
485
+ // silently vanishes on the interpreter path.
486
+ identity: z.boolean().optional(),
482
487
  collection: z.string().optional(),
483
488
  fields: z.array(EntityFieldSchema).min(1, "At least one field is required"),
484
489
  instances: z.array(z.record(z.unknown())).optional(),
@@ -2107,7 +2112,7 @@ function getInteractionModelForDomain(domain) {
2107
2112
  // src/patterns/patterns-registry.json
2108
2113
  var patterns_registry_default = {
2109
2114
  version: "1.0.0",
2110
- exportedAt: "2026-07-26T06:18:13.545Z",
2115
+ exportedAt: "2026-07-28T10:40:00.004Z",
2111
2116
  patterns: {
2112
2117
  "entity-table": {
2113
2118
  type: "entity-table",
@@ -2508,8 +2513,7 @@ var patterns_registry_default = {
2508
2513
  }
2509
2514
  },
2510
2515
  required: [
2511
- "label",
2512
- "onClick"
2516
+ "label"
2513
2517
  ]
2514
2518
  }
2515
2519
  },
@@ -2547,11 +2551,15 @@ var patterns_registry_default = {
2547
2551
  "default",
2548
2552
  "danger"
2549
2553
  ]
2554
+ },
2555
+ event: {
2556
+ types: [
2557
+ "string"
2558
+ ]
2550
2559
  }
2551
2560
  },
2552
2561
  required: [
2553
- "label",
2554
- "onClick"
2562
+ "label"
2555
2563
  ]
2556
2564
  }
2557
2565
  },
@@ -11925,6 +11933,21 @@ var patterns_registry_default = {
11925
11933
  ],
11926
11934
  description: "Inline style"
11927
11935
  },
11936
+ format: {
11937
+ types: [
11938
+ "string"
11939
+ ],
11940
+ description: 'Value formatting applied to string/number/Date content \u2014 `none` (the default) renders content as-is. Covers the raw-ISO-date class: a bound datetime renders human-readable via `format="date"|"time"|"datetime"`.',
11941
+ enumValues: [
11942
+ "none",
11943
+ "date",
11944
+ "time",
11945
+ "datetime",
11946
+ "number",
11947
+ "currency",
11948
+ "percent"
11949
+ ]
11950
+ },
11928
11951
  content: {
11929
11952
  types: [
11930
11953
  "node"
@@ -16722,6 +16745,27 @@ var patterns_registry_default = {
16722
16745
  "number"
16723
16746
  ]
16724
16747
  },
16748
+ mark: {
16749
+ types: [
16750
+ "object"
16751
+ ],
16752
+ properties: {
16753
+ kind: {
16754
+ types: [
16755
+ "unknown"
16756
+ ]
16757
+ },
16758
+ suggestionId: {
16759
+ types: [
16760
+ "string"
16761
+ ]
16762
+ }
16763
+ },
16764
+ required: [
16765
+ "kind",
16766
+ "suggestionId"
16767
+ ]
16768
+ },
16725
16769
  x: {
16726
16770
  types: [
16727
16771
  "number"
@@ -16780,6 +16824,48 @@ var patterns_registry_default = {
16780
16824
  ]
16781
16825
  }
16782
16826
  },
16827
+ proposedEdges: {
16828
+ types: [
16829
+ "array"
16830
+ ],
16831
+ description: "Uncommitted proposal links \u2014 rendered dashed/faint in a separate pass, never folded into the layout springs.",
16832
+ items: {
16833
+ types: [
16834
+ "object"
16835
+ ],
16836
+ properties: {
16837
+ source: {
16838
+ types: [
16839
+ "string"
16840
+ ]
16841
+ },
16842
+ target: {
16843
+ types: [
16844
+ "string"
16845
+ ]
16846
+ },
16847
+ label: {
16848
+ types: [
16849
+ "string"
16850
+ ]
16851
+ },
16852
+ weight: {
16853
+ types: [
16854
+ "number"
16855
+ ]
16856
+ },
16857
+ color: {
16858
+ types: [
16859
+ "string"
16860
+ ]
16861
+ }
16862
+ },
16863
+ required: [
16864
+ "source",
16865
+ "target"
16866
+ ]
16867
+ }
16868
+ },
16783
16869
  similarity: {
16784
16870
  types: [
16785
16871
  "array"
@@ -16927,6 +17013,111 @@ var patterns_registry_default = {
16927
17013
  "number"
16928
17014
  ]
16929
17015
  },
17016
+ mark: {
17017
+ types: [
17018
+ "object"
17019
+ ],
17020
+ properties: {
17021
+ kind: {
17022
+ types: [
17023
+ "unknown"
17024
+ ]
17025
+ },
17026
+ suggestionId: {
17027
+ types: [
17028
+ "string"
17029
+ ]
17030
+ }
17031
+ },
17032
+ required: [
17033
+ "kind",
17034
+ "suggestionId"
17035
+ ]
17036
+ },
17037
+ x: {
17038
+ types: [
17039
+ "number"
17040
+ ]
17041
+ },
17042
+ y: {
17043
+ types: [
17044
+ "number"
17045
+ ]
17046
+ }
17047
+ },
17048
+ required: [
17049
+ "id"
17050
+ ]
17051
+ }
17052
+ }
17053
+ ]
17054
+ },
17055
+ onMarkClick: {
17056
+ types: [
17057
+ "function"
17058
+ ],
17059
+ description: "On marked-node click (suggestion/proposal target). Takes priority over onNodeClick.",
17060
+ kind: "callback",
17061
+ callbackArgs: [
17062
+ {
17063
+ name: "node",
17064
+ type: "object",
17065
+ schema: {
17066
+ types: [
17067
+ "object"
17068
+ ],
17069
+ properties: {
17070
+ id: {
17071
+ types: [
17072
+ "string"
17073
+ ]
17074
+ },
17075
+ label: {
17076
+ types: [
17077
+ "string"
17078
+ ]
17079
+ },
17080
+ group: {
17081
+ types: [
17082
+ "string"
17083
+ ]
17084
+ },
17085
+ color: {
17086
+ types: [
17087
+ "string"
17088
+ ]
17089
+ },
17090
+ size: {
17091
+ types: [
17092
+ "number"
17093
+ ]
17094
+ },
17095
+ badge: {
17096
+ types: [
17097
+ "number"
17098
+ ]
17099
+ },
17100
+ mark: {
17101
+ types: [
17102
+ "object"
17103
+ ],
17104
+ properties: {
17105
+ kind: {
17106
+ types: [
17107
+ "unknown"
17108
+ ]
17109
+ },
17110
+ suggestionId: {
17111
+ types: [
17112
+ "string"
17113
+ ]
17114
+ }
17115
+ },
17116
+ required: [
17117
+ "kind",
17118
+ "suggestionId"
17119
+ ]
17120
+ },
16930
17121
  x: {
16931
17122
  types: [
16932
17123
  "number"
@@ -16990,6 +17181,27 @@ var patterns_registry_default = {
16990
17181
  "number"
16991
17182
  ]
16992
17183
  },
17184
+ mark: {
17185
+ types: [
17186
+ "object"
17187
+ ],
17188
+ properties: {
17189
+ kind: {
17190
+ types: [
17191
+ "unknown"
17192
+ ]
17193
+ },
17194
+ suggestionId: {
17195
+ types: [
17196
+ "string"
17197
+ ]
17198
+ }
17199
+ },
17200
+ required: [
17201
+ "kind",
17202
+ "suggestionId"
17203
+ ]
17204
+ },
16993
17205
  x: {
16994
17206
  types: [
16995
17207
  "number"
@@ -17053,6 +17265,27 @@ var patterns_registry_default = {
17053
17265
  "number"
17054
17266
  ]
17055
17267
  },
17268
+ mark: {
17269
+ types: [
17270
+ "object"
17271
+ ],
17272
+ properties: {
17273
+ kind: {
17274
+ types: [
17275
+ "unknown"
17276
+ ]
17277
+ },
17278
+ suggestionId: {
17279
+ types: [
17280
+ "string"
17281
+ ]
17282
+ }
17283
+ },
17284
+ required: [
17285
+ "kind",
17286
+ "suggestionId"
17287
+ ]
17288
+ },
17056
17289
  x: {
17057
17290
  types: [
17058
17291
  "number"
@@ -19808,12 +20041,24 @@ var patterns_registry_default = {
19808
20041
  ],
19809
20042
  description: 'Field name identifying the sender (used with variant: "message")'
19810
20043
  },
20044
+ senderLabelField: {
20045
+ types: [
20046
+ "string"
20047
+ ],
20048
+ description: 'Field holding the sender\'s human-readable name (used with variant: "message"). Defaults to `senderField`. Set this when `senderField` holds an id \u2014 an id-keyed thread otherwise labels bubbles `staff-1` instead of `Sam Staff`.'
20049
+ },
19811
20050
  currentUser: {
19812
20051
  types: [
19813
20052
  "string"
19814
20053
  ],
19815
20054
  description: 'Current user identifier; messages matching this value align right (used with variant: "message")'
19816
20055
  },
20056
+ emptyMessage: {
20057
+ types: [
20058
+ "string"
20059
+ ],
20060
+ description: 'Message shown when there are no rows. Falls back to the generic "no items" translation. `TableView` already exposes this; an agenda or an inbox wants to say what "empty" means in its own words.'
20061
+ },
19817
20062
  className: {
19818
20063
  types: [
19819
20064
  "string"
@@ -43339,74 +43584,180 @@ var integrators_registry_default = {
43339
43584
  name: "cloneRepo",
43340
43585
  description: "Clone a repository",
43341
43586
  params: [
43342
- { name: "repo", type: "string", required: true, description: "Repository URL or owner/repo" },
43343
- { name: "branch", type: "string", required: false, description: "Branch to clone" }
43587
+ {
43588
+ name: "repo",
43589
+ type: "string",
43590
+ required: true,
43591
+ description: "Repository URL or owner/repo"
43592
+ },
43593
+ {
43594
+ name: "branch",
43595
+ type: "string",
43596
+ required: false,
43597
+ description: "Branch to clone"
43598
+ }
43344
43599
  ],
43345
- responseShape: { path: "string", branch: "string" }
43600
+ responseShape: {
43601
+ path: "string",
43602
+ branch: "string"
43603
+ }
43346
43604
  },
43347
43605
  {
43348
43606
  name: "createBranch",
43349
43607
  description: "Create a new branch",
43350
43608
  params: [
43351
- { name: "repo", type: "string", required: true, description: "Local repo path" },
43352
- { name: "branch", type: "string", required: true, description: "Branch name" }
43609
+ {
43610
+ name: "repo",
43611
+ type: "string",
43612
+ required: true,
43613
+ description: "Local repo path"
43614
+ },
43615
+ {
43616
+ name: "branch",
43617
+ type: "string",
43618
+ required: true,
43619
+ description: "Branch name"
43620
+ }
43353
43621
  ],
43354
- responseShape: { branch: "string" }
43622
+ responseShape: {
43623
+ branch: "string"
43624
+ }
43355
43625
  },
43356
43626
  {
43357
43627
  name: "commit",
43358
43628
  description: "Commit changes",
43359
43629
  params: [
43360
- { name: "repo", type: "string", required: true, description: "Local repo path" },
43361
- { name: "message", type: "string", required: true, description: "Commit message" },
43362
- { name: "files", type: "array", required: false, description: "Files to stage" }
43630
+ {
43631
+ name: "repo",
43632
+ type: "string",
43633
+ required: true,
43634
+ description: "Local repo path"
43635
+ },
43636
+ {
43637
+ name: "message",
43638
+ type: "string",
43639
+ required: true,
43640
+ description: "Commit message"
43641
+ },
43642
+ {
43643
+ name: "files",
43644
+ type: "array",
43645
+ required: false,
43646
+ description: "Files to stage"
43647
+ }
43363
43648
  ],
43364
- responseShape: { hash: "string", message: "string" }
43649
+ responseShape: {
43650
+ hash: "string",
43651
+ message: "string"
43652
+ }
43365
43653
  },
43366
43654
  {
43367
43655
  name: "push",
43368
43656
  description: "Push commits to remote",
43369
43657
  params: [
43370
- { name: "repo", type: "string", required: true, description: "Local repo path" },
43371
- { name: "branch", type: "string", required: false, description: "Branch to push" }
43658
+ {
43659
+ name: "repo",
43660
+ type: "string",
43661
+ required: true,
43662
+ description: "Local repo path"
43663
+ },
43664
+ {
43665
+ name: "branch",
43666
+ type: "string",
43667
+ required: false,
43668
+ description: "Branch to push"
43669
+ }
43372
43670
  ],
43373
- responseShape: { success: "boolean" }
43671
+ responseShape: {
43672
+ success: "boolean"
43673
+ }
43374
43674
  },
43375
43675
  {
43376
43676
  name: "createPR",
43377
43677
  description: "Create a pull request",
43378
43678
  params: [
43379
- { name: "title", type: "string", required: true, description: "PR title" },
43380
- { name: "body", type: "string", required: false, description: "PR description" },
43381
- { name: "head", type: "string", required: true, description: "Head branch" },
43382
- { name: "base", type: "string", required: false, description: "Base branch (default: main)" }
43679
+ {
43680
+ name: "title",
43681
+ type: "string",
43682
+ required: true,
43683
+ description: "PR title"
43684
+ },
43685
+ {
43686
+ name: "body",
43687
+ type: "string",
43688
+ required: false,
43689
+ description: "PR description"
43690
+ },
43691
+ {
43692
+ name: "head",
43693
+ type: "string",
43694
+ required: true,
43695
+ description: "Head branch"
43696
+ },
43697
+ {
43698
+ name: "base",
43699
+ type: "string",
43700
+ required: false,
43701
+ description: "Base branch (default: main)"
43702
+ }
43383
43703
  ],
43384
- responseShape: { number: "number", url: "string" }
43704
+ responseShape: {
43705
+ number: "number",
43706
+ url: "string"
43707
+ }
43385
43708
  },
43386
43709
  {
43387
43710
  name: "getPRComments",
43388
43711
  description: "Fetch pull request comments",
43389
43712
  params: [
43390
- { name: "prNumber", type: "number", required: true, description: "PR number" }
43713
+ {
43714
+ name: "prNumber",
43715
+ type: "number",
43716
+ required: true,
43717
+ description: "PR number"
43718
+ }
43391
43719
  ],
43392
- responseShape: { comments: "array" }
43720
+ responseShape: {
43721
+ comments: "array"
43722
+ }
43393
43723
  },
43394
43724
  {
43395
43725
  name: "listIssues",
43396
43726
  description: "List issues with optional filters",
43397
43727
  params: [
43398
- { name: "state", type: "string", required: false, description: "Issue state: open, closed, all" },
43399
- { name: "labels", type: "string", required: false, description: "Comma-separated label names" }
43728
+ {
43729
+ name: "state",
43730
+ type: "string",
43731
+ required: false,
43732
+ description: "Issue state: open, closed, all"
43733
+ },
43734
+ {
43735
+ name: "labels",
43736
+ type: "string",
43737
+ required: false,
43738
+ description: "Comma-separated label names"
43739
+ }
43400
43740
  ],
43401
- responseShape: { issues: "array" }
43741
+ responseShape: {
43742
+ issues: "array"
43743
+ }
43402
43744
  },
43403
43745
  {
43404
43746
  name: "getIssue",
43405
43747
  description: "Get a single issue",
43406
43748
  params: [
43407
- { name: "issueNumber", type: "number", required: true, description: "Issue number" }
43749
+ {
43750
+ name: "issueNumber",
43751
+ type: "number",
43752
+ required: true,
43753
+ description: "Issue number"
43754
+ }
43408
43755
  ],
43409
- responseShape: { title: "string", body: "string", state: "string" }
43756
+ responseShape: {
43757
+ title: "string",
43758
+ body: "string",
43759
+ state: "string"
43760
+ }
43410
43761
  }
43411
43762
  ]
43412
43763
  },
@@ -43419,7 +43770,12 @@ var integrators_registry_default = {
43419
43770
  name: "validate",
43420
43771
  description: "Validate an orbital schema",
43421
43772
  params: [
43422
- { name: "schema", type: "string", required: true, description: "Schema content to validate" }
43773
+ {
43774
+ name: "schema",
43775
+ type: "string",
43776
+ required: true,
43777
+ description: "Schema content to validate"
43778
+ }
43423
43779
  ],
43424
43780
  responseShape: {
43425
43781
  valid: "boolean",
@@ -43439,9 +43795,24 @@ var integrators_registry_default = {
43439
43795
  name: "query",
43440
43796
  description: "Run a single read-only SELECT against a connection referenced by env var name",
43441
43797
  params: [
43442
- { name: "connectionRef", type: "string", required: true, description: "Name of the environment variable holding the connection string (never the secret itself)" },
43443
- { name: "sql", type: "string", required: true, description: "Single SELECT statement (read-only enforced)" },
43444
- { name: "params", type: "array", required: false, description: "Bind parameters for the query" }
43798
+ {
43799
+ name: "connectionRef",
43800
+ type: "string",
43801
+ required: true,
43802
+ description: "Name of the environment variable holding the connection string (never the secret itself)"
43803
+ },
43804
+ {
43805
+ name: "sql",
43806
+ type: "string",
43807
+ required: true,
43808
+ description: "Single SELECT statement (read-only enforced)"
43809
+ },
43810
+ {
43811
+ name: "params",
43812
+ type: "array",
43813
+ required: false,
43814
+ description: "Bind parameters for the query"
43815
+ }
43445
43816
  ],
43446
43817
  responseShape: {
43447
43818
  rows: "array",
@@ -43449,15 +43820,133 @@ var integrators_registry_default = {
43449
43820
  }
43450
43821
  }
43451
43822
  ]
43823
+ },
43824
+ wikimedia: {
43825
+ name: "wikimedia",
43826
+ description: "Wikipedia API \u2014 redirect-resolved page lookup (description, portrait, lead extract)",
43827
+ category: "reference",
43828
+ actions: [
43829
+ {
43830
+ name: "getPage",
43831
+ description: "Look up a title on Wikipedia",
43832
+ params: [
43833
+ {
43834
+ name: "title",
43835
+ type: "string",
43836
+ required: true,
43837
+ description: "Page title (human-readable name)"
43838
+ }
43839
+ ],
43840
+ responseShape: {
43841
+ title: "string",
43842
+ description: "string",
43843
+ portraitUrl: "string",
43844
+ extract: "string"
43845
+ }
43846
+ }
43847
+ ]
43848
+ },
43849
+ iconify: {
43850
+ name: "iconify",
43851
+ description: "Iconify API \u2014 brand-logo / icon resolution, search, and body fetch",
43852
+ category: "reference",
43853
+ actions: [
43854
+ {
43855
+ name: "svgExists",
43856
+ description: "Check whether an SVG path exists",
43857
+ params: [
43858
+ {
43859
+ name: "path",
43860
+ type: "string",
43861
+ required: true,
43862
+ description: "Path under api.iconify.design (e.g. devicon/typescript.svg)"
43863
+ }
43864
+ ],
43865
+ responseShape: {
43866
+ exists: "boolean"
43867
+ }
43868
+ },
43869
+ {
43870
+ name: "search",
43871
+ description: "Relevance search for icons",
43872
+ params: [
43873
+ {
43874
+ name: "query",
43875
+ type: "string",
43876
+ required: true,
43877
+ description: "Search term"
43878
+ },
43879
+ {
43880
+ name: "limit",
43881
+ type: "number",
43882
+ required: false,
43883
+ description: "Max results"
43884
+ }
43885
+ ],
43886
+ responseShape: {
43887
+ icons: "string[]"
43888
+ }
43889
+ },
43890
+ {
43891
+ name: "getIconBody",
43892
+ description: "Fetch an icon SVG body for color-tone classification",
43893
+ params: [
43894
+ {
43895
+ name: "iconId",
43896
+ type: "string",
43897
+ required: true,
43898
+ description: "Icon id (prefix:name)"
43899
+ }
43900
+ ],
43901
+ responseShape: {
43902
+ body: "string"
43903
+ }
43904
+ }
43905
+ ]
43906
+ },
43907
+ arxiv: {
43908
+ name: "arxiv",
43909
+ description: "arXiv API \u2014 frontier academic preprint search (emerging-axis research backend)",
43910
+ category: "reference",
43911
+ actions: [
43912
+ {
43913
+ name: "search",
43914
+ description: "Search arXiv preprints by relevance",
43915
+ params: [
43916
+ {
43917
+ name: "query",
43918
+ type: "string",
43919
+ required: true,
43920
+ description: "Search query"
43921
+ },
43922
+ {
43923
+ name: "maxResults",
43924
+ type: "number",
43925
+ required: false,
43926
+ description: "Max results (default 8)"
43927
+ }
43928
+ ],
43929
+ responseShape: {
43930
+ results: "ArxivResult[]"
43931
+ }
43932
+ }
43933
+ ]
43452
43934
  }
43453
43935
  },
43454
- categories: ["media", "payment", "messaging", "ai", "devtools", "infrastructure"]
43936
+ categories: [
43937
+ "media",
43938
+ "payment",
43939
+ "messaging",
43940
+ "ai",
43941
+ "devtools",
43942
+ "infrastructure"
43943
+ ]
43455
43944
  };
43456
43945
 
43457
43946
  // src/patterns/component-mapping.json
43458
43947
  var component_mapping_default = {
43459
43948
  version: "1.0.0",
43460
- exportedAt: "2026-07-26T06:18:13.545Z",
43949
+ exportedAt: "2026-07-28T10:40:00.004Z",
43461
43950
  mappings: {
43462
43951
  "page-header": {
43463
43952
  component: "PageHeader",
@@ -44837,7 +45326,7 @@ var component_mapping_default = {
44837
45326
  // src/patterns/event-contracts.json
44838
45327
  var event_contracts_default = {
44839
45328
  version: "1.0.0",
44840
- exportedAt: "2026-07-26T06:18:13.545Z",
45329
+ exportedAt: "2026-07-28T10:40:00.004Z",
44841
45330
  contracts: {
44842
45331
  form: {
44843
45332
  emits: [