@almadar/std 16.241.0 → 16.242.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 (109) hide show
  1. package/behaviors/behaviors-registry.json +4650 -535
  2. package/behaviors/lolo/agent/atoms/std-agent-memory.lolo +38 -1
  3. package/behaviors/lolo/agent/atoms/std-agent-session.lolo +1074 -47
  4. package/behaviors/lolo/agent/atoms/std-agent-tool-loop.lolo +8 -7
  5. package/behaviors/lolo/agent/organisms/std-agent-assistant.lolo +56 -37
  6. package/behaviors/lolo/infra/atoms/std-page-open.lolo +59 -0
  7. package/behaviors/lolo/infra/atoms/std-page-search.lolo +134 -0
  8. package/behaviors/lolo/infra/atoms/std-page-treat.lolo +59 -0
  9. package/behaviors/lolo/infra/atoms/std-page-watch.lolo +86 -0
  10. package/behaviors/lolo/ui/core/atoms/std-book-reader.lolo +25 -1
  11. package/behaviors/lolo/ui/core/atoms/std-card-grid.lolo +9 -0
  12. package/behaviors/lolo/ui/core/atoms/std-doc-page.lolo +153 -0
  13. package/behaviors/lolo/ui/learning/atoms/std-learn-arrangement.lolo +124 -92
  14. package/behaviors/lolo/ui/learning/atoms/std-learn-classify.lolo +114 -55
  15. package/behaviors/lolo/ui/learning/atoms/std-learn-compare.lolo +40 -14
  16. package/behaviors/lolo/ui/learning/atoms/std-learn-coupled-sim.lolo +363 -123
  17. package/behaviors/lolo/ui/learning/atoms/std-learn-derivation.lolo +93 -48
  18. package/behaviors/lolo/ui/learning/atoms/std-learn-diagram.lolo +60 -28
  19. package/behaviors/lolo/ui/learning/atoms/std-learn-doser.lolo +193 -96
  20. package/behaviors/lolo/ui/learning/atoms/std-learn-estimate.lolo +75 -32
  21. package/behaviors/lolo/ui/learning/atoms/std-learn-goal-seek.lolo +142 -86
  22. package/behaviors/lolo/ui/learning/atoms/std-learn-grid-sim.lolo +266 -98
  23. package/behaviors/lolo/ui/learning/atoms/std-learn-hotspot.lolo +103 -65
  24. package/behaviors/lolo/ui/learning/atoms/std-learn-live-sim.lolo +223 -109
  25. package/behaviors/lolo/ui/learning/atoms/std-learn-measure.lolo +232 -64
  26. package/behaviors/lolo/ui/learning/atoms/std-learn-param-explorer.lolo +69 -29
  27. package/behaviors/lolo/ui/learning/atoms/std-learn-perturb.lolo +363 -123
  28. package/behaviors/lolo/ui/learning/atoms/std-learn-predict.lolo +73 -41
  29. package/behaviors/lolo/ui/learning/atoms/std-learn-sample-accumulator.lolo +96 -38
  30. package/behaviors/lolo/ui/learning/atoms/std-learn-sandbox.lolo +65 -45
  31. package/behaviors/lolo/ui/learning/atoms/std-learn-scatter-fit.lolo +243 -117
  32. package/behaviors/lolo/ui/learning/atoms/std-learn-scenario.lolo +76 -28
  33. package/behaviors/lolo/ui/learning/atoms/std-learn-sim-3d.lolo +228 -109
  34. package/behaviors/lolo/ui/learning/atoms/std-learn-speed-drill.lolo +95 -44
  35. package/behaviors/lolo/ui/learning/atoms/std-learn-stepper.lolo +199 -125
  36. package/behaviors/lolo/ui/learning/atoms/std-learn-tour-3d.lolo +92 -48
  37. package/behaviors/lolo/ui/learning/atoms/std-learn-trace-player.lolo +239 -78
  38. package/behaviors/lolo/ui/learning/atoms/std-learn-transport.lolo +147 -38
  39. package/behaviors/lolo/ui/learning/atoms/std-learn-tree.lolo +123 -58
  40. package/behaviors/lolo/ui/learning/atoms/ui-algo-graph-canvas.lolo +22 -0
  41. package/behaviors/lolo/ui/learning/atoms/ui-algorithm-canvas.lolo +26 -0
  42. package/behaviors/lolo/ui/learning/atoms/ui-biology-canvas.lolo +26 -0
  43. package/behaviors/lolo/ui/learning/atoms/ui-chemistry-canvas.lolo +27 -1
  44. package/behaviors/lolo/ui/learning/atoms/ui-learning-canvas.lolo +27 -1
  45. package/behaviors/lolo/ui/learning/atoms/ui-math-canvas.lolo +29 -9
  46. package/behaviors/lolo/ui/learning/atoms/ui-physics-canvas.lolo +26 -0
  47. package/behaviors/lolo-behavior-contracts.json +1 -1
  48. package/behaviors/registry/agent/atoms/std-agent-memory.orb +372 -2
  49. package/behaviors/registry/agent/atoms/std-agent-session.orb +4752 -348
  50. package/behaviors/registry/agent/atoms/std-agent-tool-loop.orb +54 -42
  51. package/behaviors/registry/agent/organisms/std-agent-assistant.orb +356 -122
  52. package/behaviors/registry/factory-signatures.json +1 -1
  53. package/behaviors/registry/infra/atoms/std-page-open.orb +435 -0
  54. package/behaviors/registry/infra/atoms/std-page-search.orb +867 -0
  55. package/behaviors/registry/infra/atoms/std-page-treat.orb +494 -0
  56. package/behaviors/registry/infra/atoms/std-page-watch.orb +554 -0
  57. package/behaviors/registry/ui/core/atoms/std-book-reader.orb +119 -0
  58. package/behaviors/registry/ui/core/atoms/std-card-grid.orb +61 -0
  59. package/behaviors/registry/ui/core/atoms/std-doc-page.orb +594 -0
  60. package/behaviors/registry/ui/learning/atoms/std-learn-arrangement.orb +903 -369
  61. package/behaviors/registry/ui/learning/atoms/std-learn-classify.orb +1002 -232
  62. package/behaviors/registry/ui/learning/atoms/std-learn-compare.orb +253 -74
  63. package/behaviors/registry/ui/learning/atoms/std-learn-coupled-sim.orb +3624 -921
  64. package/behaviors/registry/ui/learning/atoms/std-learn-derivation.orb +685 -144
  65. package/behaviors/registry/ui/learning/atoms/std-learn-diagram.orb +404 -52
  66. package/behaviors/registry/ui/learning/atoms/std-learn-doser.orb +1787 -210
  67. package/behaviors/registry/ui/learning/atoms/std-learn-estimate.orb +699 -71
  68. package/behaviors/registry/ui/learning/atoms/std-learn-goal-seek.orb +1102 -578
  69. package/behaviors/registry/ui/learning/atoms/std-learn-grid-sim.orb +2760 -872
  70. package/behaviors/registry/ui/learning/atoms/std-learn-hotspot.orb +689 -152
  71. package/behaviors/registry/ui/learning/atoms/std-learn-live-sim.orb +1431 -633
  72. package/behaviors/registry/ui/learning/atoms/std-learn-measure.orb +2485 -512
  73. package/behaviors/registry/ui/learning/atoms/std-learn-param-explorer.orb +501 -197
  74. package/behaviors/registry/ui/learning/atoms/std-learn-perturb.orb +3642 -928
  75. package/behaviors/registry/ui/learning/atoms/std-learn-predict.orb +705 -125
  76. package/behaviors/registry/ui/learning/atoms/std-learn-sample-accumulator.orb +624 -114
  77. package/behaviors/registry/ui/learning/atoms/std-learn-sandbox.orb +405 -153
  78. package/behaviors/registry/ui/learning/atoms/std-learn-scatter-fit.orb +1911 -611
  79. package/behaviors/registry/ui/learning/atoms/std-learn-scenario.orb +436 -128
  80. package/behaviors/registry/ui/learning/atoms/std-learn-sim-3d.orb +2482 -485
  81. package/behaviors/registry/ui/learning/atoms/std-learn-speed-drill.orb +896 -192
  82. package/behaviors/registry/ui/learning/atoms/std-learn-stepper.orb +2001 -759
  83. package/behaviors/registry/ui/learning/atoms/std-learn-tour-3d.orb +734 -228
  84. package/behaviors/registry/ui/learning/atoms/std-learn-trace-player.orb +2501 -764
  85. package/behaviors/registry/ui/learning/atoms/std-learn-transport.orb +1591 -173
  86. package/behaviors/registry/ui/learning/atoms/std-learn-tree.orb +883 -122
  87. package/behaviors/registry/ui/learning/atoms/ui-algo-graph-canvas.orb +176 -0
  88. package/behaviors/registry/ui/learning/atoms/ui-algorithm-canvas.orb +211 -0
  89. package/behaviors/registry/ui/learning/atoms/ui-biology-canvas.orb +211 -0
  90. package/behaviors/registry/ui/learning/atoms/ui-chemistry-canvas.orb +212 -1
  91. package/behaviors/registry/ui/learning/atoms/ui-learning-canvas.orb +212 -1
  92. package/behaviors/registry/ui/learning/atoms/ui-math-canvas.orb +203 -9
  93. package/behaviors/registry/ui/learning/atoms/ui-physics-canvas.orb +211 -0
  94. package/behaviors/signatures.lolo +325 -655
  95. package/dist/behaviors/exports-reader.js +16092 -9747
  96. package/dist/behaviors/functions/index.d.ts +1052 -136
  97. package/dist/behaviors/functions/index.js +16063 -9745
  98. package/dist/behaviors/index.d.ts +1 -1
  99. package/dist/behaviors/index.js +16093 -9748
  100. package/dist/behaviors/query.js +16092 -9747
  101. package/dist/behaviors-embeddings.hash.json +3 -3
  102. package/dist/behaviors-embeddings.json +45 -25
  103. package/dist/behaviors-registry.json +4650 -535
  104. package/dist/index.d.ts +1 -1
  105. package/dist/index.js +16093 -9748
  106. package/dist/knob-embeddings.hash.json +3 -3
  107. package/dist/knob-embeddings.json +607 -263
  108. package/dist/registry/factory-signatures.json +1 -1
  109. package/package.json +3 -3
@@ -0,0 +1,554 @@
1
+ {
2
+ "description": "std-page-watch — watches every browser tab whose URL matches `match` for elements matching `itemSelector`, and reports each element once as ITEM with the `fields` read from it, now and as the page changes. Needs a host with the `page` service (a browser extension, which asks for access to exactly the `match` pages). Each item carries its tab and element id; compose std-page-treat to hide, blur, highlight or label it.",
3
+ "ledger": {
4
+ "entries": {
5
+ "ent_01M431PMTEWWMZ1XCC8FHVHBW8": {
6
+ "bakedName": "PageWatchRecord",
7
+ "curName": "PageWatchRecord",
8
+ "id": "ent_01M431PMTEWWMZ1XCC8FHVHBW8",
9
+ "kind": "entity",
10
+ "owner": "workspace",
11
+ "renames": []
12
+ },
13
+ "evt_01M431PMTE6W3CZ5QJMYS1459V": {
14
+ "bakedName": "ITEM_FOUND",
15
+ "curName": "ITEM_FOUND",
16
+ "id": "evt_01M431PMTE6W3CZ5QJMYS1459V",
17
+ "kind": "event",
18
+ "owner": "workspace",
19
+ "parent": "trt_01M431PMTE475YASHGMJKN6EFX",
20
+ "renames": []
21
+ },
22
+ "evt_01M431PMTEA16WSSMZX11M16MZ": {
23
+ "bakedName": "WATCH_FAILED",
24
+ "curName": "WATCH_FAILED",
25
+ "id": "evt_01M431PMTEA16WSSMZX11M16MZ",
26
+ "kind": "event",
27
+ "owner": "workspace",
28
+ "parent": "trt_01M431PMTE475YASHGMJKN6EFX",
29
+ "renames": []
30
+ },
31
+ "evt_01M431PMTEB6NGWMFGA2RJ75BX": {
32
+ "bakedName": "ITEM",
33
+ "curName": "ITEM",
34
+ "id": "evt_01M431PMTEB6NGWMFGA2RJ75BX",
35
+ "kind": "event",
36
+ "owner": "workspace",
37
+ "parent": "trt_01M431PMTE475YASHGMJKN6EFX",
38
+ "renames": []
39
+ },
40
+ "evt_01M431PMTEE1C4HT952B1BTJKF": {
41
+ "bakedName": "INIT",
42
+ "curName": "INIT",
43
+ "id": "evt_01M431PMTEE1C4HT952B1BTJKF",
44
+ "kind": "event",
45
+ "owner": "workspace",
46
+ "parent": "trt_01M431PMTE475YASHGMJKN6EFX",
47
+ "renames": []
48
+ },
49
+ "evt_01M431PMTEWJ5ZVF1VQHTS11F7": {
50
+ "bakedName": "WATCHING",
51
+ "curName": "WATCHING",
52
+ "id": "evt_01M431PMTEWJ5ZVF1VQHTS11F7",
53
+ "kind": "event",
54
+ "owner": "workspace",
55
+ "parent": "trt_01M431PMTE475YASHGMJKN6EFX",
56
+ "renames": []
57
+ },
58
+ "orb_01M431PMTEVDD69TFRG6MFPBXP": {
59
+ "bakedName": "PageWatchOrbital",
60
+ "curName": "PageWatchOrbital",
61
+ "id": "orb_01M431PMTEVDD69TFRG6MFPBXP",
62
+ "kind": "orbital",
63
+ "owner": "workspace",
64
+ "renames": []
65
+ },
66
+ "pag_01M431PMTEZ080BE625P6D0CKX": {
67
+ "bakedName": "PageWatchPage",
68
+ "curName": "PageWatchPage",
69
+ "id": "pag_01M431PMTEZ080BE625P6D0CKX",
70
+ "kind": "page",
71
+ "owner": "workspace",
72
+ "renames": []
73
+ },
74
+ "trt_01M431PMTE475YASHGMJKN6EFX": {
75
+ "bakedName": "PageWatch",
76
+ "curName": "PageWatch",
77
+ "id": "trt_01M431PMTE475YASHGMJKN6EFX",
78
+ "kind": "trait",
79
+ "owner": "workspace",
80
+ "renames": []
81
+ }
82
+ },
83
+ "schemaVersion": 1
84
+ },
85
+ "name": "std-page-watch",
86
+ "orbitals": [
87
+ {
88
+ "entity": {
89
+ "fields": [
90
+ {
91
+ "default": "",
92
+ "description": "Id of the attached watch",
93
+ "name": "watchId",
94
+ "synonyms": "watch id, subscription",
95
+ "type": "string"
96
+ },
97
+ {
98
+ "default": 0.0,
99
+ "description": "How many elements have been reported",
100
+ "name": "found",
101
+ "synonyms": "count, items seen, reported",
102
+ "type": "number"
103
+ },
104
+ {
105
+ "default": "",
106
+ "description": "Why the watch could not be attached; blank = none",
107
+ "name": "errorMessage",
108
+ "synonyms": "error, failure reason",
109
+ "type": "string"
110
+ },
111
+ {
112
+ "default": "starting",
113
+ "description": "Whether the watch is attached",
114
+ "name": "status",
115
+ "synonyms": "state, watching, connected",
116
+ "type": "string",
117
+ "values": [
118
+ "starting",
119
+ "watching",
120
+ "failed"
121
+ ]
122
+ }
123
+ ],
124
+ "id": "ent_01M431PMTEWWMZ1XCC8FHVHBW8",
125
+ "name": "PageWatchRecord",
126
+ "persistence": "runtime"
127
+ },
128
+ "id": "orb_01M431PMTEVDD69TFRG6MFPBXP",
129
+ "name": "PageWatchOrbital",
130
+ "pages": [
131
+ {
132
+ "id": "pag_01M431PMTEZ080BE625P6D0CKX",
133
+ "name": "PageWatchPage",
134
+ "path": "/page-watch",
135
+ "traits": [
136
+ {
137
+ "ref": "PageWatch",
138
+ "refId": "trt_01M431PMTE475YASHGMJKN6EFX"
139
+ }
140
+ ]
141
+ }
142
+ ],
143
+ "traits": [
144
+ {
145
+ "category": "lifecycle",
146
+ "config": {
147
+ "fields": {
148
+ "default": {},
149
+ "description": "Field name to how to read it from each element: `selector` (a descendant; absent reads the element itself), `attr` (an attribute; absent reads the text) and `resolve` (the attribute is a URL: return it absolute)",
150
+ "items": {
151
+ "properties": {
152
+ "attr": {
153
+ "name": "attr",
154
+ "required": false,
155
+ "type": "string"
156
+ },
157
+ "resolve": {
158
+ "name": "resolve",
159
+ "required": false,
160
+ "type": "boolean"
161
+ },
162
+ "selector": {
163
+ "name": "selector",
164
+ "required": false,
165
+ "type": "string"
166
+ }
167
+ },
168
+ "type": "object"
169
+ },
170
+ "label": "Fields",
171
+ "synonyms": "columns, properties, extract, read",
172
+ "tier": "domain",
173
+ "type": "Map<string,PageField>"
174
+ },
175
+ "itemEvent": {
176
+ "default": "PageWatch.ITEM_FOUND",
177
+ "description": "The declared input each element arrives as; it follows the trait when a composer renames it",
178
+ "label": "Item input",
179
+ "tier": "internal",
180
+ "type": "event"
181
+ },
182
+ "itemSelector": {
183
+ "default": ".item",
184
+ "description": "CSS selector of the elements to report",
185
+ "label": "Item selector",
186
+ "synonyms": "selector, element, card, tile, row",
187
+ "tier": "domain",
188
+ "type": "string"
189
+ },
190
+ "match": {
191
+ "default": "https://example.com/*",
192
+ "description": "URL match pattern of the tabs to watch, in Chrome match-pattern syntax (`<scheme>://<host>/<path>` with `*` wildcards)",
193
+ "label": "Pages",
194
+ "synonyms": "site, url pattern, pages, domain",
195
+ "tier": "domain",
196
+ "type": "string"
197
+ },
198
+ "statusSlot": {
199
+ "default": "main",
200
+ "description": "Where the atom shows its one-line status; an organism running it in the background sends it to `system`",
201
+ "label": "Status slot",
202
+ "synonyms": "status area, slot",
203
+ "tier": "presentation",
204
+ "type": "slot"
205
+ }
206
+ },
207
+ "effectRow": [
208
+ {
209
+ "kind": "call-service",
210
+ "resource": "page.watch"
211
+ },
212
+ {
213
+ "kind": "emit",
214
+ "resource": "ITEM"
215
+ },
216
+ {
217
+ "kind": "render-ui",
218
+ "resolved": false,
219
+ "resource": "@config.statusSlot"
220
+ },
221
+ {
222
+ "kind": "set",
223
+ "resource": "@entity.errorMessage"
224
+ },
225
+ {
226
+ "kind": "set",
227
+ "resource": "@entity.found"
228
+ },
229
+ {
230
+ "kind": "set",
231
+ "resource": "@entity.status"
232
+ },
233
+ {
234
+ "kind": "set",
235
+ "resource": "@entity.watchId"
236
+ }
237
+ ],
238
+ "emits": [
239
+ {
240
+ "description": "The watch is attached",
241
+ "event": "WATCHING",
242
+ "eventId": "evt_01M431PMTEWJ5ZVF1VQHTS11F7",
243
+ "payloadSchema": [
244
+ {
245
+ "name": "watchId",
246
+ "required": true,
247
+ "type": "string"
248
+ }
249
+ ],
250
+ "tier": "secondary"
251
+ },
252
+ {
253
+ "description": "The watch could not be attached (no page service, or no access to the pages)",
254
+ "event": "WATCH_FAILED",
255
+ "eventId": "evt_01M431PMTEA16WSSMZX11M16MZ",
256
+ "payloadSchema": [
257
+ {
258
+ "name": "error",
259
+ "required": true,
260
+ "type": "string"
261
+ }
262
+ ],
263
+ "scope": "external",
264
+ "tier": "primary"
265
+ },
266
+ {
267
+ "description": "One matching element, reported once, with the fields read from it",
268
+ "event": "ITEM",
269
+ "eventId": "evt_01M431PMTEB6NGWMFGA2RJ75BX",
270
+ "payloadSchema": [
271
+ {
272
+ "name": "tab",
273
+ "required": true,
274
+ "type": "number"
275
+ },
276
+ {
277
+ "name": "elementId",
278
+ "required": true,
279
+ "type": "string"
280
+ },
281
+ {
282
+ "name": "url",
283
+ "required": true,
284
+ "type": "string"
285
+ },
286
+ {
287
+ "name": "fields",
288
+ "type": "Map<string,string>"
289
+ }
290
+ ],
291
+ "scope": "external",
292
+ "synonyms": "element found, item seen, new item",
293
+ "tier": "primary"
294
+ }
295
+ ],
296
+ "entityRefIds": {
297
+ "PageWatchRecord": "ent_01M431PMTEWWMZ1XCC8FHVHBW8"
298
+ },
299
+ "id": "trt_01M431PMTE475YASHGMJKN6EFX",
300
+ "linkedEntity": "PageWatchRecord",
301
+ "linkedEntityId": "ent_01M431PMTEWWMZ1XCC8FHVHBW8",
302
+ "name": "PageWatch",
303
+ "scope": "instance",
304
+ "stateMachine": {
305
+ "events": [
306
+ {
307
+ "id": "evt_01M431PMTEE1C4HT952B1BTJKF",
308
+ "key": "INIT",
309
+ "name": "Initialize"
310
+ },
311
+ {
312
+ "description": "The watch is attached",
313
+ "id": "evt_01M431PMTEWJ5ZVF1VQHTS11F7",
314
+ "key": "WATCHING",
315
+ "name": "Watching",
316
+ "payloadSchema": [
317
+ {
318
+ "name": "watchId",
319
+ "required": true,
320
+ "type": "string"
321
+ }
322
+ ],
323
+ "tier": "secondary"
324
+ },
325
+ {
326
+ "description": "The watch could not be attached (no page service, or no access to the pages)",
327
+ "id": "evt_01M431PMTEA16WSSMZX11M16MZ",
328
+ "key": "WATCH_FAILED",
329
+ "name": "Watch Failed",
330
+ "payloadSchema": [
331
+ {
332
+ "name": "error",
333
+ "required": true,
334
+ "type": "string"
335
+ }
336
+ ],
337
+ "tier": "primary"
338
+ },
339
+ {
340
+ "description": "One matching element, delivered by the page service",
341
+ "external": true,
342
+ "id": "evt_01M431PMTE6W3CZ5QJMYS1459V",
343
+ "key": "ITEM_FOUND",
344
+ "name": "Item Found",
345
+ "payloadSchema": [
346
+ {
347
+ "name": "tab",
348
+ "required": true,
349
+ "type": "number"
350
+ },
351
+ {
352
+ "name": "elementId",
353
+ "required": true,
354
+ "type": "string"
355
+ },
356
+ {
357
+ "name": "url",
358
+ "required": true,
359
+ "type": "string"
360
+ },
361
+ {
362
+ "name": "fields",
363
+ "type": "Map<string,string>"
364
+ }
365
+ ]
366
+ },
367
+ {
368
+ "description": "One matching element, reported once, with the fields read from it",
369
+ "id": "evt_01M431PMTEB6NGWMFGA2RJ75BX",
370
+ "key": "ITEM",
371
+ "name": "Item",
372
+ "payloadSchema": [
373
+ {
374
+ "name": "tab",
375
+ "required": true,
376
+ "type": "number"
377
+ },
378
+ {
379
+ "name": "elementId",
380
+ "required": true,
381
+ "type": "string"
382
+ },
383
+ {
384
+ "name": "url",
385
+ "required": true,
386
+ "type": "string"
387
+ },
388
+ {
389
+ "name": "fields",
390
+ "type": "Map<string,string>"
391
+ }
392
+ ],
393
+ "synonyms": "element found, item seen, new item",
394
+ "tier": "primary"
395
+ }
396
+ ],
397
+ "states": [
398
+ {
399
+ "isInitial": true,
400
+ "name": "active"
401
+ }
402
+ ],
403
+ "transitions": [
404
+ {
405
+ "effects": [
406
+ [
407
+ "call-service",
408
+ "page",
409
+ "watch",
410
+ {
411
+ "event": "@config.itemEvent",
412
+ "fields": "@config.fields",
413
+ "match": "@config.match",
414
+ "selector": "@config.itemSelector"
415
+ },
416
+ {
417
+ "emit": {
418
+ "failure": "WATCH_FAILED",
419
+ "success": "WATCHING"
420
+ }
421
+ }
422
+ ],
423
+ [
424
+ "render-ui",
425
+ "@config.statusSlot",
426
+ {
427
+ "content": "Connecting to the pages…",
428
+ "role": "status",
429
+ "type": "typography",
430
+ "variant": "body"
431
+ }
432
+ ]
433
+ ],
434
+ "event": "INIT",
435
+ "eventId": "evt_01M431PMTEE1C4HT952B1BTJKF",
436
+ "from": "active",
437
+ "to": "active"
438
+ },
439
+ {
440
+ "effects": [
441
+ [
442
+ "set",
443
+ "@entity.watchId",
444
+ "@payload.watchId"
445
+ ],
446
+ [
447
+ "set",
448
+ "@entity.status",
449
+ "watching"
450
+ ],
451
+ [
452
+ "render-ui",
453
+ "@config.statusSlot",
454
+ {
455
+ "content": [
456
+ "str/concat",
457
+ "Watching ",
458
+ "@config.match"
459
+ ],
460
+ "role": "status",
461
+ "type": "typography",
462
+ "variant": "body"
463
+ }
464
+ ]
465
+ ],
466
+ "event": "WATCHING",
467
+ "eventId": "evt_01M431PMTEWJ5ZVF1VQHTS11F7",
468
+ "from": "active",
469
+ "to": "active"
470
+ },
471
+ {
472
+ "effects": [
473
+ [
474
+ "set",
475
+ "@entity.errorMessage",
476
+ "@payload.error"
477
+ ],
478
+ [
479
+ "set",
480
+ "@entity.status",
481
+ "failed"
482
+ ],
483
+ [
484
+ "render-ui",
485
+ "@config.statusSlot",
486
+ {
487
+ "content": [
488
+ "str/concat",
489
+ "Can't watch these pages: ",
490
+ "@payload.error"
491
+ ],
492
+ "role": "status",
493
+ "type": "typography",
494
+ "variant": "body"
495
+ }
496
+ ]
497
+ ],
498
+ "event": "WATCH_FAILED",
499
+ "eventId": "evt_01M431PMTEA16WSSMZX11M16MZ",
500
+ "from": "active",
501
+ "to": "active"
502
+ },
503
+ {
504
+ "effects": [
505
+ [
506
+ "set",
507
+ "@entity.found",
508
+ [
509
+ "+",
510
+ "@entity.found",
511
+ 1.0
512
+ ]
513
+ ],
514
+ [
515
+ "emit",
516
+ "ITEM",
517
+ {
518
+ "elementId": "@payload.elementId",
519
+ "fields": "@payload.fields",
520
+ "tab": "@payload.tab",
521
+ "url": "@payload.url"
522
+ }
523
+ ]
524
+ ],
525
+ "event": "ITEM_FOUND",
526
+ "eventId": "evt_01M431PMTE6W3CZ5QJMYS1459V",
527
+ "from": "active",
528
+ "to": "active"
529
+ }
530
+ ]
531
+ }
532
+ }
533
+ ],
534
+ "types": {
535
+ "PageField": [
536
+ {
537
+ "name": "selector",
538
+ "type": "string"
539
+ },
540
+ {
541
+ "name": "attr",
542
+ "type": "string"
543
+ },
544
+ {
545
+ "name": "resolve",
546
+ "type": "boolean"
547
+ }
548
+ ]
549
+ }
550
+ }
551
+ ],
552
+ "schemaVersion": 1,
553
+ "version": "1.0.0"
554
+ }
@@ -409,6 +409,17 @@
409
409
  "tier": "presentation",
410
410
  "type": "string"
411
411
  },
412
+ "opensAt": {
413
+ "default": "cover",
414
+ "description": "Where the reader opens: the cover, or straight into the first chapter (an article read in place)",
415
+ "label": "Opens at",
416
+ "tier": "presentation",
417
+ "type": "string",
418
+ "values": [
419
+ "cover",
420
+ "reading"
421
+ ]
422
+ },
412
423
  "previousLabel": {
413
424
  "default": "Previous",
414
425
  "label": "Previous button label",
@@ -425,6 +436,29 @@
425
436
  {
426
437
  "align": "start",
427
438
  "children": [
439
+ {
440
+ "className": "text-balance",
441
+ "content": "@config.title",
442
+ "type": "typography",
443
+ "variant": "h5",
444
+ "weight": "semibold"
445
+ },
446
+ {
447
+ "className": [
448
+ "if",
449
+ [
450
+ "==",
451
+ "@config.author",
452
+ ""
453
+ ],
454
+ "hidden",
455
+ "pb-2"
456
+ ],
457
+ "color": "muted",
458
+ "content": "@config.author",
459
+ "type": "typography",
460
+ "variant": "caption"
461
+ },
428
462
  {
429
463
  "action": "BACK_TO_COVER",
430
464
  "label": "@config.coverLabel",
@@ -767,8 +801,93 @@
767
801
  "event": "INIT",
768
802
  "eventId": "evt_01M3B9EHG2JYGWZ0NEKDDJ06CR",
769
803
  "from": "cover",
804
+ "guard": [
805
+ "==",
806
+ "@config.opensAt",
807
+ "cover"
808
+ ],
770
809
  "to": "cover"
771
810
  },
811
+ {
812
+ "effects": [
813
+ [
814
+ "set",
815
+ "@entity.chapterIndex",
816
+ 0.0
817
+ ],
818
+ [
819
+ "set",
820
+ "@entity.chapterTitle",
821
+ [
822
+ "object/get",
823
+ [
824
+ "array/nth",
825
+ "@config.chapters",
826
+ 0.0
827
+ ],
828
+ "title",
829
+ ""
830
+ ]
831
+ ],
832
+ [
833
+ "set",
834
+ "@entity.chapterContent",
835
+ [
836
+ "object/get",
837
+ [
838
+ "array/nth",
839
+ "@config.chapters",
840
+ 0.0
841
+ ],
842
+ "content",
843
+ ""
844
+ ]
845
+ ],
846
+ [
847
+ "set",
848
+ "@entity.isFirst",
849
+ true
850
+ ],
851
+ [
852
+ "set",
853
+ "@entity.isLast",
854
+ [
855
+ "<=",
856
+ [
857
+ "array/len",
858
+ "@config.chapters"
859
+ ],
860
+ 1.0
861
+ ]
862
+ ],
863
+ [
864
+ "set",
865
+ "@entity.progressLabel",
866
+ [
867
+ "str/concat",
868
+ "1 / ",
869
+ [
870
+ "array/len",
871
+ "@config.chapters"
872
+ ]
873
+ ]
874
+ ],
875
+ [
876
+ "render-ui",
877
+ "main",
878
+ "@config.readingContent"
879
+ ]
880
+ ],
881
+ "event": "INIT",
882
+ "eventId": "evt_01M3B9EHG2JYGWZ0NEKDDJ06CR",
883
+ "from": "cover",
884
+ "guard": [
885
+ "==",
886
+ "@config.opensAt",
887
+ "reading"
888
+ ],
889
+ "to": "reading"
890
+ },
772
891
  {
773
892
  "effects": [
774
893
  [