@almadar/std 16.241.0 → 16.243.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 +136 -0
  8. package/behaviors/lolo/infra/atoms/std-page-treat.lolo +59 -0
  9. package/behaviors/lolo/infra/atoms/std-page-watch.lolo +88 -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 +885 -0
  55. package/behaviors/registry/infra/atoms/std-page-treat.orb +494 -0
  56. package/behaviors/registry/infra/atoms/std-page-watch.orb +572 -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
@@ -1,5 +1,5 @@
1
1
  {
2
- "description": "std-agent-assistant — an in-app assistant that operates the running app for the signed-in user. A floating button opens it in a side panel docked beside the page (std-panel-launcher; a side sheet on small screens), where the conversation shows every step the assistant takes live as it works. List AssistantDock with the assistant's traits on each page that should carry the button. One request flows down a chain of std agent atoms on the bus: the conversation (std-agent-session) SENDs → CONVERSE → std-agent-context bounds it → std-agent-memory adds what it recalls → std-agent-tool-loop answers it through `call-service llm call-tools`, firing only the inputs and reading only the entities the `tools` allowlist names, as the signed-in user → REPLIED goes back to the conversation, to memory (remembered) and to std-agent-trace (the run record). Import the orbital and supply the allowlist: `orbital Assistant = Agent.orbitals.AgentAssistantOrbital { config { tools: [{ event: TaskOrbital.TaskPersistor.DO_CREATE }, { read: Task }], instructions: \"…\" } }`. The conversation, memory and run records live in AgentRecordsOrbital; retarget them onto your own owner-scoped entities (`ownerId` a relation to your [identity] roster, with @read/@create) with `entities { AgentMessage: …, AgentMemory: …, AgentRun: … }`.",
2
+ "description": "std-agent-assistant — an in-app assistant that operates the running app for the signed-in user. Each section's floating button opens it in a side panel docked beside the page (std-panel-launcher; a side sheet on small screens), where the conversation shows every step the assistant takes live as it works; /assistant is the same conversation as a full page, in the app's own shell (pass `appName` and `navItems`); past conversations and what the assistant remembers open in place from its toolbar (Back returns to the chat), on either surface. One request flows down a chain of std agent atoms on the bus: the conversation (std-agent-session) SENDs → CONVERSE → std-agent-context bounds it → std-agent-memory adds what it recalls → std-agent-tool-loop answers it through `call-service llm call-tools`, firing only the inputs and reading only the entities its `tools` allow, as the signed-in user → ASSISTANT_REPLIED goes back to the conversation, to memory (remembered) and to std-agent-trace (the run record). By default the tools are the program's own declarations: every `-> external` input (its @description is the tool text) and a read over every persisted entity, so composing building blocks composes the assistant's abilities. Any section's page gets the assistant with two traits, `XAssistant = AgentSession.traits.AgentConversation` and a std-panel-launcher dock: the conversation speaks the ASSISTANT_* contract from any orbital, so the assistant needs no per-section wiring. Import the orbital once per app: `orbital Assistant = Agent.orbitals.AgentAssistantOrbital { config { instructions: \"…\" } }`. The conversation, memory and run records live in AgentRecordsOrbital; retarget them onto your own owner-scoped entities (`ownerId` a relation to your [identity] roster, with @read/@create) with `entities { AgentMessage: …, AgentMemory: …, AgentRun: …, AgentChat: … }`. The conversation is kept across pages and reloads (each person's most recently used conversation is the current one);",
3
3
  "ledger": {
4
4
  "entries": {
5
5
  "ent_01M3TZ0DZDY909P5HZH4V2D7MY": {
@@ -34,6 +34,14 @@
34
34
  "owner": "workspace",
35
35
  "renames": []
36
36
  },
37
+ "ent_01M42AFPPPHTXB167C0TSN3YMG": {
38
+ "bakedName": "AgentChat",
39
+ "curName": "AgentChat",
40
+ "id": "ent_01M42AFPPPHTXB167C0TSN3YMG",
41
+ "kind": "entity",
42
+ "owner": "workspace",
43
+ "renames": []
44
+ },
37
45
  "orb_01M3TZ0DZDJS90708ZRDH25S9C": {
38
46
  "bakedName": "AgentAssistantOrbital",
39
47
  "curName": "AgentAssistantOrbital",
@@ -66,14 +74,6 @@
66
74
  "owner": "workspace",
67
75
  "renames": []
68
76
  },
69
- "pag_01M3V71WRKMMBWKNQ7768PP579": {
70
- "bakedName": "AssistantMemoryPage",
71
- "curName": "AssistantMemoryPage",
72
- "id": "pag_01M3V71WRKMMBWKNQ7768PP579",
73
- "kind": "page",
74
- "owner": "workspace",
75
- "renames": []
76
- },
77
77
  "trt_01M3TZ0DZD2Q7ZQVBTW902F1CE": {
78
78
  "bakedName": "AssistantLoop",
79
79
  "curName": "AssistantLoop",
@@ -114,14 +114,6 @@
114
114
  "owner": "workspace",
115
115
  "renames": []
116
116
  },
117
- "trt_01M3V71WRKAPCPAVW5XM7T3BW5": {
118
- "bakedName": "AgentMemoryList",
119
- "curName": "AgentMemoryList",
120
- "id": "trt_01M3V71WRKAPCPAVW5XM7T3BW5",
121
- "kind": "trait",
122
- "owner": "workspace",
123
- "renames": []
124
- },
125
117
  "trt_01M3V71WRKRBWAZMCGX5EQD8X6": {
126
118
  "bakedName": "AgentRunHistory",
127
119
  "curName": "AgentRunHistory",
@@ -130,14 +122,6 @@
130
122
  "owner": "workspace",
131
123
  "renames": []
132
124
  },
133
- "trt_01M3WD0HMAAMMG2VCZ9KXKYC0V": {
134
- "bakedName": "AssistantDock",
135
- "curName": "AssistantDock",
136
- "id": "trt_01M3WD0HMAAMMG2VCZ9KXKYC0V",
137
- "kind": "trait",
138
- "owner": "workspace",
139
- "renames": []
140
- },
141
125
  "trt_01M3WD0HMAF5RY9APZS2H3AJ46": {
142
126
  "bakedName": "AssistantConversation",
143
127
  "curName": "AssistantConversation",
@@ -145,6 +129,22 @@
145
129
  "kind": "trait",
146
130
  "owner": "workspace",
147
131
  "renames": []
132
+ },
133
+ "trt_01M42AFPPP9XF9WNB1Q2DJVYEX": {
134
+ "bakedName": "AssistantLayout",
135
+ "curName": "AssistantLayout",
136
+ "id": "trt_01M42AFPPP9XF9WNB1Q2DJVYEX",
137
+ "kind": "trait",
138
+ "owner": "workspace",
139
+ "renames": []
140
+ },
141
+ "trt_01M42B9X7M5BB02V920EWW4HYD": {
142
+ "bakedName": "AssistantChatKeeper",
143
+ "curName": "AssistantChatKeeper",
144
+ "id": "trt_01M42B9X7M5BB02V920EWW4HYD",
145
+ "kind": "trait",
146
+ "owner": "workspace",
147
+ "renames": []
148
148
  }
149
149
  },
150
150
  "schemaVersion": 1
@@ -153,10 +153,10 @@
153
153
  "orbitals": [
154
154
  {
155
155
  "config": {
156
- "buttonLabel": {
157
- "default": "Open the assistant",
158
- "description": "What the floating button does, read to screen readers and shown as its tooltip.",
159
- "label": "Button label",
156
+ "appName": {
157
+ "default": "Assistant",
158
+ "description": "Pass the app's own name so the assistant page matches the rest of the app.",
159
+ "label": "App name in the assistant page's header",
160
160
  "tier": "presentation",
161
161
  "type": "string"
162
162
  },
@@ -179,13 +179,9 @@
179
179
  {
180
180
  "href": "/assistant/runs",
181
181
  "label": "Run history"
182
- },
183
- {
184
- "href": "/assistant/memory",
185
- "label": "What I remember"
186
182
  }
187
183
  ],
188
- "description": "The pages showing the assistant's run history and memory.",
184
+ "description": "Related pages, e.g. the assistant's run history.",
189
185
  "items": {
190
186
  "properties": {
191
187
  "href": {
@@ -211,21 +207,70 @@
211
207
  "tier": "policy",
212
208
  "type": "number"
213
209
  },
210
+ "navItems": {
211
+ "default": [],
212
+ "description": "Pass the app's own navItems so the assistant page keeps the app's sidebar.",
213
+ "items": {
214
+ "properties": {
215
+ "badge": {
216
+ "name": "badge",
217
+ "required": false,
218
+ "type": "string"
219
+ },
220
+ "children": {
221
+ "items": {
222
+ "type": "union",
223
+ "values": [
224
+ "NavItem"
225
+ ]
226
+ },
227
+ "name": "children",
228
+ "required": false,
229
+ "type": "array"
230
+ },
231
+ "href": {
232
+ "name": "href",
233
+ "required": true,
234
+ "type": "string"
235
+ },
236
+ "icon": {
237
+ "name": "icon",
238
+ "required": false,
239
+ "type": "string"
240
+ },
241
+ "label": {
242
+ "name": "label",
243
+ "required": true,
244
+ "type": "string"
245
+ },
246
+ "roles": {
247
+ "items": {
248
+ "type": "string"
249
+ },
250
+ "name": "roles",
251
+ "required": false,
252
+ "type": "array"
253
+ }
254
+ },
255
+ "type": "object"
256
+ },
257
+ "label": "Sidebar navigation on the assistant page",
258
+ "tier": "presentation",
259
+ "type": "[NavItem]"
260
+ },
214
261
  "recallLimit": {
215
262
  "default": 3.0,
216
263
  "label": "Memories recalled per request",
217
264
  "tier": "policy",
218
265
  "type": "number"
219
266
  },
220
- "title": {
221
- "default": "Assistant",
222
- "label": "Panel title",
223
- "tier": "presentation",
224
- "type": "string"
225
- },
226
267
  "tools": {
227
- "default": [],
228
- "description": "The declared inputs it may fire (`{ event: Trait.EVENT }` / `{ event: Orbital.Trait.EVENT }`) and the entities it may read (`{ read: Entity }`), as the signed-in user.",
268
+ "default": [
269
+ {
270
+ "scope": "declared"
271
+ }
272
+ ],
273
+ "description": "As the signed-in user: `{ scope: declared }` (the default) gives it every external input the program declares and a read over every persisted entity, so each building block's declared inputs become its abilities; or list them — `{ event: Orbital.Trait.EVENT }` for one input, `{ read: Entity }` for one entity.",
229
274
  "items": {
230
275
  "properties": {
231
276
  "event": {
@@ -237,6 +282,14 @@
237
282
  "name": "read",
238
283
  "required": false,
239
284
  "type": "string"
285
+ },
286
+ "scope": {
287
+ "name": "scope",
288
+ "required": false,
289
+ "type": "string",
290
+ "values": [
291
+ "declared"
292
+ ]
240
293
  }
241
294
  },
242
295
  "type": "object"
@@ -245,6 +298,13 @@
245
298
  "synonyms": "allowlist, abilities, actions, permissions",
246
299
  "tier": "domain",
247
300
  "type": "[AgentTool]"
301
+ },
302
+ "viewerRole": {
303
+ "default": "",
304
+ "description": "The role the assistant page's sidebar items and their `roles` are checked against. Bind `@user.role` in an app whose identity carries a role; left empty, only items with no `roles` show.",
305
+ "label": "Viewer role on the assistant page",
306
+ "tier": "policy",
307
+ "type": "string"
248
308
  }
249
309
  },
250
310
  "entity": {
@@ -268,13 +328,17 @@
268
328
  "path": "/assistant",
269
329
  "traits": [
270
330
  {
271
- "ref": "AssistantDock",
272
- "refId": "trt_01M3WD0HMAAMMG2VCZ9KXKYC0V"
331
+ "ref": "AssistantLayout",
332
+ "refId": "trt_01M42AFPPP9XF9WNB1Q2DJVYEX"
273
333
  },
274
334
  {
275
335
  "ref": "AssistantThread",
276
336
  "refId": "trt_01M3TZ0DZDK3ZYFHBSBZMWW4V7"
277
337
  },
338
+ {
339
+ "ref": "AssistantChatKeeper",
340
+ "refId": "trt_01M42B9X7M5BB02V920EWW4HYD"
341
+ },
278
342
  {
279
343
  "ref": "AssistantContext",
280
344
  "refId": "trt_01M3TZ0DZDA49NXYE56JV7SZH9"
@@ -303,100 +367,129 @@
303
367
  "linkedEntity": "AgentMessage",
304
368
  "listens": [
305
369
  {
306
- "event": "SEND",
370
+ "event": "ASSISTANT_CHAT_OPENED",
307
371
  "source": {
308
372
  "kind": "trait",
309
- "trait": "AssistantConversation"
373
+ "trait": "AssistantChatKeeper"
310
374
  },
311
- "triggers": "SEND"
375
+ "triggers": "OPEN_CHAT"
312
376
  },
313
377
  {
314
- "event": "REPLIED",
378
+ "event": "ASSISTANT_SEND_IN_CHAT",
315
379
  "source": {
316
380
  "kind": "trait",
317
- "trait": "AssistantLoop"
381
+ "trait": "AssistantChatKeeper"
318
382
  },
319
- "triggers": "REPLIED"
383
+ "triggers": "SEND_IN_CHAT"
384
+ },
385
+ {
386
+ "event": "ASSISTANT_REPLY_IN_CHAT",
387
+ "source": {
388
+ "kind": "trait",
389
+ "trait": "AssistantChatKeeper"
390
+ },
391
+ "triggers": "REPLY_IN_CHAT"
320
392
  }
321
393
  ],
322
394
  "name": "AssistantThread",
323
395
  "ref": "Session.traits.AgentThread"
324
396
  },
325
397
  {
326
- "config": {
327
- "links": {
328
- "default": "@config.links",
329
- "type": "unknown"
330
- }
331
- },
332
- "id": "trt_01M3WD0HMAF5RY9APZS2H3AJ46",
398
+ "id": "trt_01M42B9X7M5BB02V920EWW4HYD",
399
+ "linkedEntity": "AgentChat",
333
400
  "listens": [
334
401
  {
335
- "event": "AgentMessagesLoaded",
402
+ "event": "ASSISTANT_SEND",
336
403
  "source": {
337
- "kind": "trait",
338
- "trait": "AssistantThread"
404
+ "kind": "any"
339
405
  },
340
- "triggers": "THREAD_LOADED"
406
+ "triggers": "SEND"
341
407
  },
342
408
  {
343
- "event": "THREAD_FAILED",
409
+ "event": "ASSISTANT_HISTORY_REQUESTED",
344
410
  "source": {
345
- "kind": "trait",
346
- "trait": "AssistantThread"
411
+ "kind": "any"
347
412
  },
348
- "triggers": "REPLY_FAILED"
413
+ "triggers": "LOAD_HISTORY"
349
414
  },
350
415
  {
351
- "event": "STEP",
416
+ "event": "ASSISTANT_NEW_CHAT",
352
417
  "source": {
353
- "kind": "trait",
354
- "trait": "AssistantLoop"
418
+ "kind": "any"
355
419
  },
356
- "triggers": "STEP"
420
+ "triggers": "NEW_CHAT"
357
421
  },
358
422
  {
359
- "event": "REPLIED",
423
+ "event": "ASSISTANT_CHAT_SELECTED",
360
424
  "source": {
361
- "kind": "trait",
362
- "trait": "AssistantLoop"
425
+ "kind": "any"
363
426
  },
364
- "triggers": "REPLIED"
427
+ "triggers": "SELECT_CHAT"
428
+ },
429
+ {
430
+ "event": "ASSISTANT_CHATS_REQUESTED",
431
+ "source": {
432
+ "kind": "any"
433
+ },
434
+ "triggers": "LIST_CHATS"
365
435
  },
366
436
  {
367
- "event": "REPLY_FAILED",
437
+ "event": "ASSISTANT_REPLIED",
368
438
  "source": {
369
439
  "kind": "trait",
370
440
  "trait": "AssistantLoop"
371
441
  },
372
- "triggers": "REPLY_FAILED"
442
+ "triggers": "REPLIED"
373
443
  }
374
444
  ],
445
+ "name": "AssistantChatKeeper",
446
+ "ref": "Session.traits.AgentChatKeeper"
447
+ },
448
+ {
449
+ "config": {
450
+ "links": {
451
+ "default": "@config.links",
452
+ "type": "unknown"
453
+ }
454
+ },
455
+ "id": "trt_01M3WD0HMAF5RY9APZS2H3AJ46",
375
456
  "name": "AssistantConversation",
376
457
  "ref": "Session.traits.AgentConversation"
377
458
  },
378
459
  {
379
460
  "config": {
461
+ "appName": {
462
+ "default": "@config.appName",
463
+ "type": "unknown"
464
+ },
465
+ "contentClassName": {
466
+ "default": "mx-auto flex w-full max-w-3xl flex-col h-[calc(100vh-9rem)] min-h-0",
467
+ "type": "unknown"
468
+ },
380
469
  "contentTrait": {
381
470
  "default": "@trait.AssistantConversation",
382
471
  "type": "unknown"
383
472
  },
384
- "icon": {
385
- "default": "message-circle",
473
+ "navItems": {
474
+ "default": "@config.navItems",
386
475
  "type": "unknown"
387
476
  },
388
- "label": {
389
- "default": "@config.buttonLabel",
477
+ "viewerEmail": {
478
+ "default": "@user.email",
390
479
  "type": "unknown"
391
480
  },
392
- "title": {
393
- "default": "@config.title",
481
+ "viewerName": {
482
+ "default": "@user.name",
483
+ "type": "unknown"
484
+ },
485
+ "viewerRole": {
486
+ "default": "@config.viewerRole",
394
487
  "type": "unknown"
395
488
  }
396
489
  },
397
- "id": "trt_01M3WD0HMAAMMG2VCZ9KXKYC0V",
398
- "name": "AssistantDock",
399
- "ref": "Launcher.traits.PanelLauncher"
490
+ "id": "trt_01M42AFPPP9XF9WNB1Q2DJVYEX",
491
+ "name": "AssistantLayout",
492
+ "ref": "Shell.traits.AppLayout"
400
493
  },
401
494
  {
402
495
  "config": {
@@ -438,12 +531,19 @@
438
531
  "triggers": "RECALL"
439
532
  },
440
533
  {
441
- "event": "REPLIED",
534
+ "event": "ASSISTANT_REPLIED",
442
535
  "source": {
443
536
  "kind": "trait",
444
537
  "trait": "AssistantLoop"
445
538
  },
446
539
  "triggers": "REMEMBER"
540
+ },
541
+ {
542
+ "event": "ASSISTANT_MEMORIES_REQUESTED",
543
+ "source": {
544
+ "kind": "any"
545
+ },
546
+ "triggers": "LIST"
447
547
  }
448
548
  ],
449
549
  "name": "AssistantMemory",
@@ -483,7 +583,7 @@
483
583
  "linkedEntity": "AgentRun",
484
584
  "listens": [
485
585
  {
486
- "event": "REPLIED",
586
+ "event": "ASSISTANT_REPLIED",
487
587
  "source": {
488
588
  "kind": "trait",
489
589
  "trait": "AssistantLoop"
@@ -491,7 +591,7 @@
491
591
  "triggers": "REPLIED"
492
592
  },
493
593
  {
494
- "event": "REPLY_FAILED",
594
+ "event": "ASSISTANT_REPLY_FAILED",
495
595
  "source": {
496
596
  "kind": "trait",
497
597
  "trait": "AssistantLoop"
@@ -524,6 +624,67 @@
524
624
  {
525
625
  "name": "read",
526
626
  "type": "string"
627
+ },
628
+ {
629
+ "name": "scope",
630
+ "type": "string"
631
+ }
632
+ ],
633
+ "NavItem": [
634
+ {
635
+ "name": "label",
636
+ "required": true,
637
+ "type": "string"
638
+ },
639
+ {
640
+ "name": "href",
641
+ "required": true,
642
+ "type": "string"
643
+ },
644
+ {
645
+ "name": "icon",
646
+ "type": "string"
647
+ },
648
+ {
649
+ "name": "badge",
650
+ "type": "string"
651
+ },
652
+ {
653
+ "name": "children",
654
+ "properties": [
655
+ {
656
+ "name": "label",
657
+ "required": true,
658
+ "type": "string"
659
+ },
660
+ {
661
+ "name": "href",
662
+ "required": true,
663
+ "type": "string"
664
+ },
665
+ {
666
+ "name": "icon",
667
+ "type": "string"
668
+ },
669
+ {
670
+ "name": "badge",
671
+ "type": "string"
672
+ },
673
+ {
674
+ "name": "children",
675
+ "properties": [],
676
+ "type": "[NavItem]"
677
+ },
678
+ {
679
+ "name": "roles",
680
+ "type": "[string]"
681
+ }
682
+ ],
683
+ "type": "[object]"
684
+ },
685
+ {
686
+ "name": "roles",
687
+ "type": "[string]"
527
688
  }
528
689
  ]
529
690
  },
@@ -549,8 +710,8 @@
549
710
  "from": "std/behaviors/std-agent-trace"
550
711
  },
551
712
  {
552
- "as": "Launcher",
553
- "from": "std/behaviors/std-panel-launcher"
713
+ "as": "Shell",
714
+ "from": "std/behaviors/std-app-layout"
554
715
  }
555
716
  ]
556
717
  },
@@ -581,6 +742,51 @@
581
742
  "id": "ent_01M3V71WRK9FF6XANDFRRXF24C",
582
743
  "name": "AgentMemory",
583
744
  "persistence": "persistent"
745
+ },
746
+ {
747
+ "collection": "agentChats",
748
+ "fields": [
749
+ {
750
+ "name": "id",
751
+ "required": true,
752
+ "type": "string"
753
+ },
754
+ {
755
+ "name": "ownerId",
756
+ "required": true,
757
+ "type": "string"
758
+ },
759
+ {
760
+ "default": "",
761
+ "name": "title",
762
+ "type": "string"
763
+ },
764
+ {
765
+ "default": 0.0,
766
+ "name": "startedAt",
767
+ "type": "number"
768
+ },
769
+ {
770
+ "default": 0.0,
771
+ "name": "lastActiveAt",
772
+ "type": "number"
773
+ },
774
+ {
775
+ "default": "",
776
+ "intrinsic": true,
777
+ "name": "pendingMessage",
778
+ "type": "string"
779
+ },
780
+ {
781
+ "default": "",
782
+ "intrinsic": true,
783
+ "name": "pendingReply",
784
+ "type": "string"
785
+ }
786
+ ],
787
+ "id": "ent_01M42AFPPPHTXB167C0TSN3YMG",
788
+ "name": "AgentChat",
789
+ "persistence": "persistent"
584
790
  }
585
791
  ],
586
792
  "entity": {
@@ -609,17 +815,6 @@
609
815
  "refId": "trt_01M3V71WRKRBWAZMCGX5EQD8X6"
610
816
  }
611
817
  ]
612
- },
613
- {
614
- "id": "pag_01M3V71WRKMMBWKNQ7768PP579",
615
- "name": "AssistantMemoryPage",
616
- "path": "/assistant/memory",
617
- "traits": [
618
- {
619
- "ref": "AgentMemoryList",
620
- "refId": "trt_01M3V71WRKAPCPAVW5XM7T3BW5"
621
- }
622
- ]
623
818
  }
624
819
  ],
625
820
  "traits": [
@@ -640,24 +835,6 @@
640
835
  ],
641
836
  "name": "AgentRunHistory",
642
837
  "ref": "Trace.traits.AgentRunBrowse"
643
- },
644
- {
645
- "id": "trt_01M3V71WRKAPCPAVW5XM7T3BW5",
646
- "linkedEntity": "AgentMemory",
647
- "linkedEntityId": "ent_01M3V71WRK9FF6XANDFRRXF24C",
648
- "listens": [
649
- {
650
- "event": "MEMORY_STORED",
651
- "source": {
652
- "kind": "orbital",
653
- "orbital": "AgentAssistantOrbital",
654
- "trait": "AssistantMemory"
655
- },
656
- "triggers": "MEMORY_STORED"
657
- }
658
- ],
659
- "name": "AgentMemoryList",
660
- "ref": "Memory.traits.AgentMemoryBrowse"
661
838
  }
662
839
  ],
663
840
  "types": {
@@ -681,14 +858,71 @@
681
858
  {
682
859
  "name": "read",
683
860
  "type": "string"
861
+ },
862
+ {
863
+ "name": "scope",
864
+ "type": "string"
865
+ }
866
+ ],
867
+ "NavItem": [
868
+ {
869
+ "name": "label",
870
+ "required": true,
871
+ "type": "string"
872
+ },
873
+ {
874
+ "name": "href",
875
+ "required": true,
876
+ "type": "string"
877
+ },
878
+ {
879
+ "name": "icon",
880
+ "type": "string"
881
+ },
882
+ {
883
+ "name": "badge",
884
+ "type": "string"
885
+ },
886
+ {
887
+ "name": "children",
888
+ "properties": [
889
+ {
890
+ "name": "label",
891
+ "required": true,
892
+ "type": "string"
893
+ },
894
+ {
895
+ "name": "href",
896
+ "required": true,
897
+ "type": "string"
898
+ },
899
+ {
900
+ "name": "icon",
901
+ "type": "string"
902
+ },
903
+ {
904
+ "name": "badge",
905
+ "type": "string"
906
+ },
907
+ {
908
+ "name": "children",
909
+ "properties": [],
910
+ "type": "[NavItem]"
911
+ },
912
+ {
913
+ "name": "roles",
914
+ "type": "[string]"
915
+ }
916
+ ],
917
+ "type": "[object]"
918
+ },
919
+ {
920
+ "name": "roles",
921
+ "type": "[string]"
684
922
  }
685
923
  ]
686
924
  },
687
925
  "uses": [
688
- {
689
- "as": "Memory",
690
- "from": "std/behaviors/std-agent-memory"
691
- },
692
926
  {
693
927
  "as": "Trace",
694
928
  "from": "std/behaviors/std-agent-trace"