@almadar/std 16.145.0 → 16.147.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 (135) hide show
  1. package/behaviors/lolo/infra/atoms/std-migration-job.lolo +269 -0
  2. package/behaviors/lolo/infra/atoms/std-mod-queue.lolo +1 -1
  3. package/behaviors/lolo/ml/atoms/std-data-collector.lolo +56 -0
  4. package/behaviors/lolo/ml/atoms/std-graph-builder.lolo +90 -0
  5. package/behaviors/lolo/ml/atoms/std-ml-similarity.lolo +25 -13
  6. package/behaviors/lolo/ml/atoms/std-tokenizer.lolo +108 -0
  7. package/behaviors/lolo/ml/atoms/std-weight-validator.lolo +106 -0
  8. package/behaviors/lolo/ui/core/atoms/std-app-layout.lolo +14 -0
  9. package/behaviors/lolo/ui/core/atoms/std-billable-hour.lolo +1 -1
  10. package/behaviors/lolo/ui/core/atoms/std-esign-flow.lolo +3 -3
  11. package/behaviors/lolo/ui/core/atoms/std-esign-request.lolo +4 -4
  12. package/behaviors/lolo/ui/core/atoms/std-event-log.lolo +2 -2
  13. package/behaviors/lolo/ui/core/atoms/std-file-store.lolo +1 -1
  14. package/behaviors/lolo/ui/core/atoms/std-gallery.lolo +1 -1
  15. package/behaviors/lolo/ui/core/atoms/std-image-upload-multi.lolo +2 -2
  16. package/behaviors/lolo/ui/core/atoms/std-import.lolo +132 -0
  17. package/behaviors/lolo/ui/core/atoms/std-recurrence.lolo +5 -5
  18. package/behaviors/lolo/ui/core/atoms/std-saved-search.lolo +1 -1
  19. package/behaviors/lolo/ui/core/atoms/std-signature-capture.lolo +1 -1
  20. package/behaviors/lolo/ui/core/atoms/std-stats.lolo +1 -1
  21. package/behaviors/lolo/ui/core/atoms/std-tag-taxonomy.lolo +3 -3
  22. package/behaviors/lolo/ui/core/molecules/ui-data-grid.lolo +0 -2
  23. package/behaviors/lolo/ui/core/molecules/ui-data-list.lolo +0 -2
  24. package/behaviors/lolo/ui/core/molecules/ui-import-preview-tree.lolo +96 -0
  25. package/behaviors/lolo/ui/core/molecules/ui-import-progress.lolo +49 -0
  26. package/behaviors/lolo/ui/core/molecules/ui-import-source-picker.lolo +67 -0
  27. package/behaviors/lolo/ui/core/molecules/ui-table-view.lolo +0 -2
  28. package/behaviors/lolo/ui/core/organisms/ui-entity-cards.lolo +0 -2
  29. package/behaviors/lolo/ui/core/organisms/ui-entity-list.lolo +0 -2
  30. package/behaviors/lolo/ui/core/organisms/ui-entity-table.lolo +0 -2
  31. package/behaviors/lolo/ui/core/organisms/ui-timeline.lolo +0 -2
  32. package/behaviors/lolo/ui/game/atoms/std-dungeon-combat.lolo +2 -2
  33. package/behaviors/lolo/ui/game/molecules/std-worldmap-board-2d.lolo +1 -1
  34. package/behaviors/lolo/ui/game/organisms/ui-boardgame-board.lolo +2 -2
  35. package/behaviors/lolo/ui/game/organisms/ui-builder-board.lolo +2 -2
  36. package/behaviors/lolo/ui/game/organisms/ui-debugger-board.lolo +3 -3
  37. package/behaviors/lolo/ui/game/organisms/ui-physics-sandbox-board.lolo +3 -3
  38. package/behaviors/lolo/ui/game/organisms/ui-roguelike-board.lolo +1 -1
  39. package/behaviors/lolo/ui/game/organisms/ui-sequencer-board.lolo +1 -1
  40. package/behaviors/lolo/ui/learning/atoms/std-algo-heapsort.lolo +2 -2
  41. package/behaviors/lolo/ui/learning/atoms/std-algo-mst.lolo +3 -3
  42. package/behaviors/registry/factory-signatures.json +11531 -2142
  43. package/behaviors/registry/infra/atoms/std-migration-job.orb +1310 -0
  44. package/behaviors/registry/infra/atoms/std-mod-queue.orb +5 -5
  45. package/behaviors/registry/ml/atoms/std-data-collector.orb +324 -0
  46. package/behaviors/registry/ml/atoms/std-graph-builder.orb +480 -0
  47. package/behaviors/registry/ml/atoms/std-ml-similarity.orb +127 -72
  48. package/behaviors/registry/ml/atoms/std-tokenizer.orb +570 -0
  49. package/behaviors/registry/ml/atoms/std-weight-validator.orb +624 -0
  50. package/behaviors/registry/ui/core/atoms/std-app-layout.orb +33 -1
  51. package/behaviors/registry/ui/core/atoms/std-billable-hour.orb +2 -2
  52. package/behaviors/registry/ui/core/atoms/std-esign-flow.orb +17 -21
  53. package/behaviors/registry/ui/core/atoms/std-esign-request.orb +7 -13
  54. package/behaviors/registry/ui/core/atoms/std-event-log.orb +2 -4
  55. package/behaviors/registry/ui/core/atoms/std-file-store.orb +3 -4
  56. package/behaviors/registry/ui/core/atoms/std-gallery.orb +11 -20
  57. package/behaviors/registry/ui/core/atoms/std-image-upload-multi.orb +4 -4
  58. package/behaviors/registry/ui/core/atoms/std-import.orb +701 -0
  59. package/behaviors/registry/ui/core/atoms/std-recurrence.orb +5 -10
  60. package/behaviors/registry/ui/core/atoms/std-saved-search.orb +2 -2
  61. package/behaviors/registry/ui/core/atoms/std-signature-capture.orb +2 -2
  62. package/behaviors/registry/ui/core/molecules/ui-data-grid.orb +12 -25
  63. package/behaviors/registry/ui/core/molecules/ui-data-list.orb +13 -26
  64. package/behaviors/registry/ui/core/molecules/ui-import-preview-tree.orb +354 -0
  65. package/behaviors/registry/ui/core/molecules/ui-import-progress.orb +195 -0
  66. package/behaviors/registry/ui/core/molecules/ui-import-source-picker.orb +279 -0
  67. package/behaviors/registry/ui/core/molecules/ui-table-view.orb +12 -25
  68. package/behaviors/registry/ui/core/organisms/ui-entity-cards.orb +0 -13
  69. package/behaviors/registry/ui/core/organisms/ui-entity-list.orb +8 -21
  70. package/behaviors/registry/ui/core/organisms/ui-entity-table.orb +0 -13
  71. package/behaviors/registry/ui/core/organisms/ui-timeline.orb +0 -13
  72. package/behaviors/registry/ui/game/atoms/std-dungeon-combat.orb +4 -4
  73. package/behaviors/registry/ui/game/molecules/std-worldmap-board-2d.orb +6 -9
  74. package/behaviors/registry/ui/game/organisms/ui-boardgame-board.orb +4 -4
  75. package/behaviors/registry/ui/game/organisms/ui-builder-board.orb +4 -4
  76. package/behaviors/registry/ui/game/organisms/ui-debugger-board.orb +12 -12
  77. package/behaviors/registry/ui/game/organisms/ui-physics-sandbox-board.orb +19 -19
  78. package/behaviors/registry/ui/game/organisms/ui-roguelike-board.orb +1 -1
  79. package/behaviors/registry/ui/game/organisms/ui-sequencer-board.orb +2 -2
  80. package/behaviors/registry/ui/learning/atoms/std-algo-heapsort.orb +8 -8
  81. package/dist/behaviors/behaviors-embeddings.json +568 -496
  82. package/dist/behaviors/behaviors-registry.json +7518 -3936
  83. package/dist/behaviors/exports-reader.js +3093 -2581
  84. package/dist/behaviors/functions/index.d.ts +922 -14
  85. package/dist/behaviors/functions/index.js +3056 -2582
  86. package/dist/behaviors/index.d.ts +1 -1
  87. package/dist/behaviors/index.js +3094 -2582
  88. package/dist/behaviors/knob-embeddings.json +1 -1
  89. package/dist/behaviors/query.js +3093 -2581
  90. package/dist/behaviors/registry/factory-signatures.json +11531 -2142
  91. package/dist/behaviors/registry/infra/atoms/std-migration-job.orb +1310 -0
  92. package/dist/behaviors/registry/infra/atoms/std-mod-queue.orb +5 -5
  93. package/dist/behaviors/registry/ml/atoms/std-data-collector.orb +324 -0
  94. package/dist/behaviors/registry/ml/atoms/std-graph-builder.orb +480 -0
  95. package/dist/behaviors/registry/ml/atoms/std-ml-similarity.orb +127 -72
  96. package/dist/behaviors/registry/ml/atoms/std-tokenizer.orb +570 -0
  97. package/dist/behaviors/registry/ml/atoms/std-weight-validator.orb +624 -0
  98. package/dist/behaviors/registry/ui/core/atoms/std-app-layout.orb +33 -1
  99. package/dist/behaviors/registry/ui/core/atoms/std-billable-hour.orb +2 -2
  100. package/dist/behaviors/registry/ui/core/atoms/std-esign-flow.orb +17 -21
  101. package/dist/behaviors/registry/ui/core/atoms/std-esign-request.orb +7 -13
  102. package/dist/behaviors/registry/ui/core/atoms/std-event-log.orb +2 -4
  103. package/dist/behaviors/registry/ui/core/atoms/std-file-store.orb +3 -4
  104. package/dist/behaviors/registry/ui/core/atoms/std-gallery.orb +11 -20
  105. package/dist/behaviors/registry/ui/core/atoms/std-image-upload-multi.orb +4 -4
  106. package/dist/behaviors/registry/ui/core/atoms/std-import.orb +701 -0
  107. package/dist/behaviors/registry/ui/core/atoms/std-recurrence.orb +5 -10
  108. package/dist/behaviors/registry/ui/core/atoms/std-saved-search.orb +2 -2
  109. package/dist/behaviors/registry/ui/core/atoms/std-signature-capture.orb +2 -2
  110. package/dist/behaviors/registry/ui/core/molecules/ui-data-grid.orb +12 -25
  111. package/dist/behaviors/registry/ui/core/molecules/ui-data-list.orb +13 -26
  112. package/dist/behaviors/registry/ui/core/molecules/ui-import-preview-tree.orb +354 -0
  113. package/dist/behaviors/registry/ui/core/molecules/ui-import-progress.orb +195 -0
  114. package/dist/behaviors/registry/ui/core/molecules/ui-import-source-picker.orb +279 -0
  115. package/dist/behaviors/registry/ui/core/molecules/ui-table-view.orb +12 -25
  116. package/dist/behaviors/registry/ui/core/organisms/ui-entity-cards.orb +0 -13
  117. package/dist/behaviors/registry/ui/core/organisms/ui-entity-list.orb +8 -21
  118. package/dist/behaviors/registry/ui/core/organisms/ui-entity-table.orb +0 -13
  119. package/dist/behaviors/registry/ui/core/organisms/ui-timeline.orb +0 -13
  120. package/dist/behaviors/registry/ui/game/atoms/std-dungeon-combat.orb +4 -4
  121. package/dist/behaviors/registry/ui/game/molecules/std-worldmap-board-2d.orb +6 -9
  122. package/dist/behaviors/registry/ui/game/organisms/ui-boardgame-board.orb +4 -4
  123. package/dist/behaviors/registry/ui/game/organisms/ui-builder-board.orb +4 -4
  124. package/dist/behaviors/registry/ui/game/organisms/ui-debugger-board.orb +12 -12
  125. package/dist/behaviors/registry/ui/game/organisms/ui-physics-sandbox-board.orb +19 -19
  126. package/dist/behaviors/registry/ui/game/organisms/ui-roguelike-board.orb +1 -1
  127. package/dist/behaviors/registry/ui/game/organisms/ui-sequencer-board.orb +2 -2
  128. package/dist/behaviors/registry/ui/learning/atoms/std-algo-heapsort.orb +8 -8
  129. package/dist/behaviors-embeddings.json +568 -496
  130. package/dist/behaviors-registry.json +7518 -3936
  131. package/dist/index.d.ts +1 -1
  132. package/dist/index.js +3094 -2582
  133. package/dist/knob-embeddings.json +1 -1
  134. package/dist/registry/factory-signatures.json +11531 -2142
  135. package/package.json +2 -2
@@ -0,0 +1,701 @@
1
+ {
2
+ "description": "std-import — a dropdown source menu (Paste text / Markdown files defaults; caller can override via config.sources) plus the OS file picker for file-kind sources. Emits IMPORT_REQUESTED { source, files } on the bus — source is the picked SourceOption descriptor; files carries file metadata when the picker ran (empty otherwise). The actual import work is delegated to a sibling std-migration-job, which listens for IMPORT_REQUESTED and drives the migration service. Mirrors std-export: the menu emits each entry's own literal event field, so overriding the event alone does not retarget the click — also set sources[].event to match.",
3
+ "ledger": {
4
+ "entries": {
5
+ "ent_01KYEH1JJPJH06F07Q6CNTHTR8": {
6
+ "bakedName": "ImportPanel",
7
+ "curName": "ImportPanel",
8
+ "id": "ent_01KYEH1JJPJH06F07Q6CNTHTR8",
9
+ "kind": "entity",
10
+ "owner": "workspace",
11
+ "renames": []
12
+ },
13
+ "evt_01KYEH1JJP2KTQ0EAMRQSJBV5W": {
14
+ "bakedName": "FILES_PICKED",
15
+ "curName": "FILES_PICKED",
16
+ "id": "evt_01KYEH1JJP2KTQ0EAMRQSJBV5W",
17
+ "kind": "event",
18
+ "owner": "workspace",
19
+ "parent": "trt_01KYEH1JJPRZYSZAK1NXNH5K01",
20
+ "renames": []
21
+ },
22
+ "evt_01KYEH1JJP6BZ2YWZ9WRJ0GTGW": {
23
+ "bakedName": "IMPORT_FAILED",
24
+ "curName": "IMPORT_FAILED",
25
+ "id": "evt_01KYEH1JJP6BZ2YWZ9WRJ0GTGW",
26
+ "kind": "event",
27
+ "owner": "workspace",
28
+ "parent": "trt_01KYEH1JJPRZYSZAK1NXNH5K01",
29
+ "renames": []
30
+ },
31
+ "evt_01KYEH1JJP9T6G59Z0W8QZ0RQT": {
32
+ "bakedName": "PICK_FAILED",
33
+ "curName": "PICK_FAILED",
34
+ "id": "evt_01KYEH1JJP9T6G59Z0W8QZ0RQT",
35
+ "kind": "event",
36
+ "owner": "workspace",
37
+ "parent": "trt_01KYEH1JJPRZYSZAK1NXNH5K01",
38
+ "renames": []
39
+ },
40
+ "evt_01KYEH1JJPC0KCYZF4BRZPTNXK": {
41
+ "bakedName": "IMPORT_SOURCE_PICKED",
42
+ "curName": "IMPORT_SOURCE_PICKED",
43
+ "id": "evt_01KYEH1JJPC0KCYZF4BRZPTNXK",
44
+ "kind": "event",
45
+ "owner": "workspace",
46
+ "parent": "trt_01KYEH1JJPRZYSZAK1NXNH5K01",
47
+ "renames": []
48
+ },
49
+ "evt_01KYEH1JJPE7K0P5GAFH9G8Z0B": {
50
+ "bakedName": "INIT",
51
+ "curName": "INIT",
52
+ "id": "evt_01KYEH1JJPE7K0P5GAFH9G8Z0B",
53
+ "kind": "event",
54
+ "owner": "workspace",
55
+ "parent": "trt_01KYEH1JJPRZYSZAK1NXNH5K01",
56
+ "renames": []
57
+ },
58
+ "evt_01KYEH1JJPV11XQCNH3ZM9THPS": {
59
+ "bakedName": "IMPORT_REQUESTED",
60
+ "curName": "IMPORT_REQUESTED",
61
+ "id": "evt_01KYEH1JJPV11XQCNH3ZM9THPS",
62
+ "kind": "event",
63
+ "owner": "workspace",
64
+ "parent": "trt_01KYEH1JJPRZYSZAK1NXNH5K01",
65
+ "renames": []
66
+ },
67
+ "evt_01KYEH1JJPWP17G49K8GJRF8A2": {
68
+ "bakedName": "OPEN_IMPORT",
69
+ "curName": "OPEN_IMPORT",
70
+ "id": "evt_01KYEH1JJPWP17G49K8GJRF8A2",
71
+ "kind": "event",
72
+ "owner": "workspace",
73
+ "parent": "trt_01KYEH1JJPRZYSZAK1NXNH5K01",
74
+ "renames": []
75
+ },
76
+ "orb_01KYEH1JJPY8EKC5AAXRAZJ4Q3": {
77
+ "bakedName": "ImportOrbital",
78
+ "curName": "ImportOrbital",
79
+ "id": "orb_01KYEH1JJPY8EKC5AAXRAZJ4Q3",
80
+ "kind": "orbital",
81
+ "owner": "workspace",
82
+ "renames": []
83
+ },
84
+ "pag_01KYEH1JJPGXG8YK410ESQ4SSK": {
85
+ "bakedName": "ImportMenuPage",
86
+ "curName": "ImportMenuPage",
87
+ "id": "pag_01KYEH1JJPGXG8YK410ESQ4SSK",
88
+ "kind": "page",
89
+ "owner": "workspace",
90
+ "renames": []
91
+ },
92
+ "trt_01KYEH1JJP5EXVKFPCJ0SNERNR": {
93
+ "bakedName": "Button1",
94
+ "curName": "Button1",
95
+ "id": "trt_01KYEH1JJP5EXVKFPCJ0SNERNR",
96
+ "kind": "trait",
97
+ "owner": "workspace",
98
+ "renames": []
99
+ },
100
+ "trt_01KYEH1JJPRZYSZAK1NXNH5K01": {
101
+ "bakedName": "ImportMenu",
102
+ "curName": "ImportMenu",
103
+ "id": "trt_01KYEH1JJPRZYSZAK1NXNH5K01",
104
+ "kind": "trait",
105
+ "owner": "workspace",
106
+ "renames": []
107
+ },
108
+ "trt_01KYEH1JJPZEXZV3CY28VFT2W4": {
109
+ "bakedName": "Menu1",
110
+ "curName": "Menu1",
111
+ "id": "trt_01KYEH1JJPZEXZV3CY28VFT2W4",
112
+ "kind": "trait",
113
+ "owner": "workspace",
114
+ "renames": []
115
+ }
116
+ },
117
+ "schemaVersion": 1
118
+ },
119
+ "name": "std-import",
120
+ "orbitals": [
121
+ {
122
+ "entity": {
123
+ "fields": [
124
+ {
125
+ "name": "id",
126
+ "required": true,
127
+ "type": "string"
128
+ },
129
+ {
130
+ "default": {},
131
+ "name": "pendingSource",
132
+ "type": "object"
133
+ },
134
+ {
135
+ "default": [],
136
+ "items": {
137
+ "type": "object"
138
+ },
139
+ "name": "pendingFiles",
140
+ "type": "array"
141
+ }
142
+ ],
143
+ "id": "ent_01KYEH1JJPJH06F07Q6CNTHTR8",
144
+ "name": "ImportPanel",
145
+ "persistence": "runtime"
146
+ },
147
+ "id": "orb_01KYEH1JJPY8EKC5AAXRAZJ4Q3",
148
+ "name": "ImportOrbital",
149
+ "pages": [
150
+ {
151
+ "id": "pag_01KYEH1JJPGXG8YK410ESQ4SSK",
152
+ "name": "ImportMenuPage",
153
+ "path": "/imports/menu",
154
+ "traits": [
155
+ {
156
+ "ref": "ImportMenu",
157
+ "refId": "trt_01KYEH1JJPRZYSZAK1NXNH5K01"
158
+ },
159
+ {
160
+ "ref": "Button1",
161
+ "refId": "trt_01KYEH1JJP5EXVKFPCJ0SNERNR"
162
+ },
163
+ {
164
+ "ref": "Menu1",
165
+ "refId": "trt_01KYEH1JJPZEXZV3CY28VFT2W4"
166
+ }
167
+ ]
168
+ }
169
+ ],
170
+ "traits": [
171
+ {
172
+ "config": {
173
+ "action": {
174
+ "default": "OPEN_IMPORT",
175
+ "type": "unknown"
176
+ },
177
+ "icon": {
178
+ "default": "upload",
179
+ "type": "unknown"
180
+ },
181
+ "label": {
182
+ "default": "@config.buttonLabel",
183
+ "type": "unknown"
184
+ },
185
+ "size": {
186
+ "default": "sm",
187
+ "type": "unknown"
188
+ },
189
+ "variant": {
190
+ "default": "ghost",
191
+ "type": "unknown"
192
+ }
193
+ },
194
+ "id": "trt_01KYEH1JJP5EXVKFPCJ0SNERNR",
195
+ "linkedEntity": "ImportPanel",
196
+ "linkedEntityId": "ent_01KYEH1JJPJH06F07Q6CNTHTR8",
197
+ "name": "Button1",
198
+ "ref": "Button.traits.ButtonRender"
199
+ },
200
+ {
201
+ "config": {
202
+ "items": {
203
+ "default": "@config.sources",
204
+ "type": "unknown"
205
+ },
206
+ "position": {
207
+ "default": "bottom-start",
208
+ "type": "unknown"
209
+ },
210
+ "trigger": {
211
+ "default": [
212
+ "@trait.Button1"
213
+ ],
214
+ "type": "unknown"
215
+ }
216
+ },
217
+ "id": "trt_01KYEH1JJPZEXZV3CY28VFT2W4",
218
+ "linkedEntity": "ImportPanel",
219
+ "linkedEntityId": "ent_01KYEH1JJPJH06F07Q6CNTHTR8",
220
+ "name": "Menu1",
221
+ "ref": "Menu.traits.MenuRender"
222
+ },
223
+ {
224
+ "category": "interaction",
225
+ "config": {
226
+ "accept": {
227
+ "default": ".md,.markdown,.txt",
228
+ "description": "File-extension filter for the OS file picker when a file-kind source is picked",
229
+ "label": "Accepted file types",
230
+ "synonyms": "file filter, allowed extensions, accepted formats",
231
+ "tier": "presentation",
232
+ "type": "string"
233
+ },
234
+ "buttonLabel": {
235
+ "default": "Import",
236
+ "description": "Text shown on the toolbar button that opens the import source popover",
237
+ "label": "Button label",
238
+ "synonyms": "the text on the import trigger button. user phrases: 'rename import button to X' / 'set the button label to X' -> X (e.g. 'Import Data', 'Add Sources')",
239
+ "tier": "presentation",
240
+ "type": "string"
241
+ },
242
+ "event": {
243
+ "default": "IMPORT_SOURCE_PICKED",
244
+ "description": "Event emitted when the user picks a source. Each entry in sources[] carries its own literal event field (no per-item templating in .lolo) — overriding this alone does not retarget the click; also set sources[].event to match.",
245
+ "label": "Source-picked event",
246
+ "synonyms": "bus event name. internal wiring; users rarely target directly",
247
+ "tier": "internal",
248
+ "type": "string"
249
+ },
250
+ "sources": {
251
+ "default": [
252
+ {
253
+ "event": "IMPORT_SOURCE_PICKED",
254
+ "id": "paste",
255
+ "kind": "paste",
256
+ "label": "Paste text"
257
+ },
258
+ {
259
+ "event": "IMPORT_SOURCE_PICKED",
260
+ "id": "markdown",
261
+ "kind": "file",
262
+ "label": "Markdown files"
263
+ }
264
+ ],
265
+ "description": "Sources shown in the import popover. kind 'file' opens the OS file picker before IMPORT_REQUESTED; any other kind emits immediately (the host renders the matching input UI, e.g. a paste textarea).",
266
+ "items": {
267
+ "properties": {
268
+ "event": {
269
+ "name": "event",
270
+ "required": false,
271
+ "type": "string"
272
+ },
273
+ "id": {
274
+ "name": "id",
275
+ "required": true,
276
+ "type": "string"
277
+ },
278
+ "kind": {
279
+ "name": "kind",
280
+ "required": true,
281
+ "type": "string"
282
+ },
283
+ "label": {
284
+ "name": "label",
285
+ "required": true,
286
+ "type": "string"
287
+ }
288
+ },
289
+ "type": "object"
290
+ },
291
+ "label": "Import sources",
292
+ "synonyms": "list of import source entries (paste / file / api / database). user phrases: 'only paste' -> keep only the paste entry; 'add database' -> append a database entry",
293
+ "tier": "presentation",
294
+ "type": "[SourceOption]"
295
+ }
296
+ },
297
+ "emits": [
298
+ {
299
+ "description": "Requests an import from the picked source. source is the SourceOption descriptor (id/kind/label); files carries picker metadata (name/size/type/lastModified) for file-kind sources, empty otherwise. A sibling std-migration-job listens and drives the run.",
300
+ "event": "IMPORT_REQUESTED",
301
+ "eventId": "evt_01KYEH1JJPV11XQCNH3ZM9THPS",
302
+ "payloadSchema": [
303
+ {
304
+ "name": "source",
305
+ "required": true,
306
+ "type": "object"
307
+ },
308
+ {
309
+ "name": "files",
310
+ "type": "[object]"
311
+ }
312
+ ],
313
+ "scope": "external",
314
+ "synonyms": "import, upload, migrate, bring in data",
315
+ "tier": "domain"
316
+ },
317
+ {
318
+ "description": "The file picker failed or was cancelled at the OS level",
319
+ "event": "IMPORT_FAILED",
320
+ "eventId": "evt_01KYEH1JJP6BZ2YWZ9WRJ0GTGW",
321
+ "payloadSchema": [
322
+ {
323
+ "name": "error",
324
+ "required": true,
325
+ "type": "string"
326
+ }
327
+ ],
328
+ "scope": "external",
329
+ "synonyms": "import error, picker failed",
330
+ "tier": "internal"
331
+ },
332
+ {
333
+ "description": "browser/open-file-picker success envelope — result.files holds the picked file metadata",
334
+ "event": "FILES_PICKED",
335
+ "eventId": "evt_01KYEH1JJP2KTQ0EAMRQSJBV5W",
336
+ "payloadSchema": [
337
+ {
338
+ "name": "result",
339
+ "required": true,
340
+ "type": "object"
341
+ }
342
+ ],
343
+ "tier": "secondary"
344
+ },
345
+ {
346
+ "description": "browser/open-file-picker failure signal",
347
+ "event": "PICK_FAILED",
348
+ "eventId": "evt_01KYEH1JJP9T6G59Z0W8QZ0RQT",
349
+ "payloadSchema": [
350
+ {
351
+ "name": "error",
352
+ "required": true,
353
+ "type": "string"
354
+ }
355
+ ],
356
+ "tier": "secondary"
357
+ }
358
+ ],
359
+ "entityRefIds": {
360
+ "ImportPanel": "ent_01KYEH1JJPJH06F07Q6CNTHTR8"
361
+ },
362
+ "id": "trt_01KYEH1JJPRZYSZAK1NXNH5K01",
363
+ "linkedEntity": "ImportPanel",
364
+ "linkedEntityId": "ent_01KYEH1JJPJH06F07Q6CNTHTR8",
365
+ "name": "ImportMenu",
366
+ "scope": "instance",
367
+ "stateMachine": {
368
+ "events": [
369
+ {
370
+ "id": "evt_01KYEH1JJPE7K0P5GAFH9G8Z0B",
371
+ "key": "INIT",
372
+ "name": "Initialize"
373
+ },
374
+ {
375
+ "id": "evt_01KYEH1JJPWP17G49K8GJRF8A2",
376
+ "key": "OPEN_IMPORT",
377
+ "name": "Open Import"
378
+ },
379
+ {
380
+ "description": "A source entry was picked from the menu. itemId matches the SourceOption.id of the picked entry; kind is resolved from config.sources by id.",
381
+ "id": "evt_01KYEH1JJPC0KCYZF4BRZPTNXK",
382
+ "key": "IMPORT_SOURCE_PICKED",
383
+ "name": "Import Source Picked",
384
+ "payloadSchema": [
385
+ {
386
+ "name": "itemId",
387
+ "required": true,
388
+ "type": "string"
389
+ },
390
+ {
391
+ "name": "label",
392
+ "required": true,
393
+ "type": "string"
394
+ }
395
+ ],
396
+ "synonyms": "source selected, import source chosen",
397
+ "tier": "domain"
398
+ },
399
+ {
400
+ "description": "Requests an import from the picked source. source is the SourceOption descriptor (id/kind/label); files carries picker metadata (name/size/type/lastModified) for file-kind sources, empty otherwise. A sibling std-migration-job listens and drives the run.",
401
+ "id": "evt_01KYEH1JJPV11XQCNH3ZM9THPS",
402
+ "key": "IMPORT_REQUESTED",
403
+ "name": "Import Requested",
404
+ "payloadSchema": [
405
+ {
406
+ "name": "source",
407
+ "required": true,
408
+ "type": "object"
409
+ },
410
+ {
411
+ "name": "files",
412
+ "type": "[object]"
413
+ }
414
+ ],
415
+ "synonyms": "import, upload, migrate, bring in data",
416
+ "tier": "domain"
417
+ },
418
+ {
419
+ "description": "The file picker failed or was cancelled at the OS level",
420
+ "id": "evt_01KYEH1JJP6BZ2YWZ9WRJ0GTGW",
421
+ "key": "IMPORT_FAILED",
422
+ "name": "Import Failed",
423
+ "payloadSchema": [
424
+ {
425
+ "name": "error",
426
+ "required": true,
427
+ "type": "string"
428
+ }
429
+ ],
430
+ "synonyms": "import error, picker failed",
431
+ "tier": "internal"
432
+ },
433
+ {
434
+ "description": "browser/open-file-picker success envelope — result.files holds the picked file metadata",
435
+ "id": "evt_01KYEH1JJP2KTQ0EAMRQSJBV5W",
436
+ "key": "FILES_PICKED",
437
+ "name": "Files Picked",
438
+ "payloadSchema": [
439
+ {
440
+ "name": "result",
441
+ "required": true,
442
+ "type": "object"
443
+ }
444
+ ],
445
+ "tier": "secondary"
446
+ },
447
+ {
448
+ "description": "browser/open-file-picker failure signal",
449
+ "id": "evt_01KYEH1JJP9T6G59Z0W8QZ0RQT",
450
+ "key": "PICK_FAILED",
451
+ "name": "Pick Failed",
452
+ "payloadSchema": [
453
+ {
454
+ "name": "error",
455
+ "required": true,
456
+ "type": "string"
457
+ }
458
+ ],
459
+ "tier": "secondary"
460
+ }
461
+ ],
462
+ "states": [
463
+ {
464
+ "isInitial": true,
465
+ "name": "idle"
466
+ },
467
+ {
468
+ "name": "picking"
469
+ }
470
+ ],
471
+ "transitions": [
472
+ {
473
+ "effects": [
474
+ [
475
+ "render-ui",
476
+ "main",
477
+ {
478
+ "children": [
479
+ "@trait.Menu1"
480
+ ],
481
+ "type": "box"
482
+ }
483
+ ]
484
+ ],
485
+ "event": "INIT",
486
+ "eventId": "evt_01KYEH1JJPE7K0P5GAFH9G8Z0B",
487
+ "from": "idle",
488
+ "to": "idle"
489
+ },
490
+ {
491
+ "event": "OPEN_IMPORT",
492
+ "eventId": "evt_01KYEH1JJPWP17G49K8GJRF8A2",
493
+ "from": "idle",
494
+ "to": "idle"
495
+ },
496
+ {
497
+ "effects": [
498
+ [
499
+ "set",
500
+ "@entity.pendingSource",
501
+ [
502
+ "array/find",
503
+ "@config.sources",
504
+ [
505
+ "fn",
506
+ "s",
507
+ [
508
+ "==",
509
+ [
510
+ "object/get",
511
+ "@s",
512
+ "id"
513
+ ],
514
+ "@payload.itemId"
515
+ ]
516
+ ]
517
+ ]
518
+ ],
519
+ [
520
+ "browser/open-file-picker",
521
+ {
522
+ "accept": "@config.accept",
523
+ "multiple": true
524
+ },
525
+ {
526
+ "emit": {
527
+ "failure": "PICK_FAILED",
528
+ "success": "FILES_PICKED"
529
+ }
530
+ }
531
+ ]
532
+ ],
533
+ "event": "IMPORT_SOURCE_PICKED",
534
+ "eventId": "evt_01KYEH1JJPC0KCYZF4BRZPTNXK",
535
+ "from": "idle",
536
+ "guard": [
537
+ "==",
538
+ [
539
+ "object/get",
540
+ [
541
+ "array/find",
542
+ "@config.sources",
543
+ [
544
+ "fn",
545
+ "s",
546
+ [
547
+ "==",
548
+ [
549
+ "object/get",
550
+ "@s",
551
+ "id"
552
+ ],
553
+ "@payload.itemId"
554
+ ]
555
+ ]
556
+ ],
557
+ "kind",
558
+ ""
559
+ ],
560
+ "file"
561
+ ],
562
+ "to": "picking"
563
+ },
564
+ {
565
+ "effects": [
566
+ [
567
+ "set",
568
+ "@entity.pendingSource",
569
+ [
570
+ "array/find",
571
+ "@config.sources",
572
+ [
573
+ "fn",
574
+ "s",
575
+ [
576
+ "==",
577
+ [
578
+ "object/get",
579
+ "@s",
580
+ "id"
581
+ ],
582
+ "@payload.itemId"
583
+ ]
584
+ ]
585
+ ]
586
+ ],
587
+ [
588
+ "emit",
589
+ "IMPORT_REQUESTED",
590
+ {
591
+ "files": "@entity.pendingFiles",
592
+ "source": "@entity.pendingSource"
593
+ }
594
+ ]
595
+ ],
596
+ "event": "IMPORT_SOURCE_PICKED",
597
+ "eventId": "evt_01KYEH1JJPC0KCYZF4BRZPTNXK",
598
+ "from": "idle",
599
+ "guard": [
600
+ "!=",
601
+ [
602
+ "object/get",
603
+ [
604
+ "array/find",
605
+ "@config.sources",
606
+ [
607
+ "fn",
608
+ "s",
609
+ [
610
+ "==",
611
+ [
612
+ "object/get",
613
+ "@s",
614
+ "id"
615
+ ],
616
+ "@payload.itemId"
617
+ ]
618
+ ]
619
+ ],
620
+ "kind",
621
+ ""
622
+ ],
623
+ "file"
624
+ ],
625
+ "to": "idle"
626
+ },
627
+ {
628
+ "event": "IMPORT_REQUESTED",
629
+ "eventId": "evt_01KYEH1JJPV11XQCNH3ZM9THPS",
630
+ "from": "idle",
631
+ "to": "idle"
632
+ },
633
+ {
634
+ "event": "IMPORT_FAILED",
635
+ "eventId": "evt_01KYEH1JJP6BZ2YWZ9WRJ0GTGW",
636
+ "from": "idle",
637
+ "to": "idle"
638
+ },
639
+ {
640
+ "effects": [
641
+ [
642
+ "set",
643
+ "@entity.pendingFiles",
644
+ [
645
+ "object/get",
646
+ "@payload.result",
647
+ "files",
648
+ []
649
+ ]
650
+ ],
651
+ [
652
+ "emit",
653
+ "IMPORT_REQUESTED",
654
+ {
655
+ "files": "@entity.pendingFiles",
656
+ "source": "@entity.pendingSource"
657
+ }
658
+ ]
659
+ ],
660
+ "event": "FILES_PICKED",
661
+ "eventId": "evt_01KYEH1JJP2KTQ0EAMRQSJBV5W",
662
+ "from": "picking",
663
+ "to": "idle"
664
+ },
665
+ {
666
+ "effects": [
667
+ [
668
+ "emit",
669
+ "IMPORT_FAILED",
670
+ {
671
+ "error": "@payload.error"
672
+ }
673
+ ]
674
+ ],
675
+ "event": "PICK_FAILED",
676
+ "eventId": "evt_01KYEH1JJP9T6G59Z0W8QZ0RQT",
677
+ "from": "picking",
678
+ "to": "idle"
679
+ }
680
+ ]
681
+ },
682
+ "traitEmbedIds": {
683
+ "Menu1": "trt_01KYEH1JJPZEXZV3CY28VFT2W4"
684
+ }
685
+ }
686
+ ],
687
+ "uses": [
688
+ {
689
+ "as": "Button",
690
+ "from": "std/behaviors/ui-button"
691
+ },
692
+ {
693
+ "as": "Menu",
694
+ "from": "std/behaviors/ui-menu"
695
+ }
696
+ ]
697
+ }
698
+ ],
699
+ "schemaVersion": 1,
700
+ "version": "1.0.0"
701
+ }