@almadar/std 16.243.0 → 16.244.1

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 (140) hide show
  1. package/behaviors/behaviors-registry.json +72537 -31220
  2. package/behaviors/lolo/agent/atoms/std-agent-context.lolo +24 -4
  3. package/behaviors/lolo/agent/atoms/std-agent-memory.lolo +20 -5
  4. package/behaviors/lolo/agent/atoms/std-agent-proposal.lolo +550 -0
  5. package/behaviors/lolo/agent/atoms/std-agent-session.lolo +284 -25
  6. package/behaviors/lolo/agent/atoms/std-agent-suggestions.lolo +841 -0
  7. package/behaviors/lolo/agent/atoms/std-agent-tool-loop.lolo +58 -8
  8. package/behaviors/lolo/agent/organisms/std-agent-assistant.lolo +1 -0
  9. package/behaviors/lolo/infra/atoms/std-page-treat.lolo +28 -1
  10. package/behaviors/lolo/ui/avl/atoms/ui-avl-state-machine.lolo +22 -0
  11. package/behaviors/lolo/ui/avl/atoms/ui-avl-transition-explainer.lolo +175 -0
  12. package/behaviors/lolo/ui/avl/atoms/ui-module-card.lolo +22 -0
  13. package/behaviors/lolo/ui/core/atoms/std-app-layout.lolo +23 -4
  14. package/behaviors/lolo/ui/core/atoms/std-hero.lolo +72 -33
  15. package/behaviors/lolo/ui/core/molecules/ui-agent-chat-feed.lolo +1 -1
  16. package/behaviors/lolo/ui/core/molecules/ui-markdown-content.lolo +54 -0
  17. package/behaviors/lolo/ui/core/molecules/ui-upload-drop-zone.lolo +5 -0
  18. package/behaviors/lolo/ui/core/organisms/ui-segment-renderer.lolo +127 -3
  19. package/behaviors/lolo/ui/core/organisms/ui-state-machine-view.lolo +22 -0
  20. package/behaviors/lolo/ui/core/templates/ui-dashboard-layout.lolo +2 -2
  21. package/behaviors/lolo/ui/learning/atoms/std-learn-arrangement.lolo +87 -17
  22. package/behaviors/lolo/ui/learning/atoms/std-learn-classify.lolo +172 -37
  23. package/behaviors/lolo/ui/learning/atoms/std-learn-coupled-sim.lolo +183 -70
  24. package/behaviors/lolo/ui/learning/atoms/std-learn-derivation.lolo +78 -13
  25. package/behaviors/lolo/ui/learning/atoms/std-learn-diagram.lolo +58 -2
  26. package/behaviors/lolo/ui/learning/atoms/std-learn-doser.lolo +107 -12
  27. package/behaviors/lolo/ui/learning/atoms/std-learn-estimate.lolo +83 -10
  28. package/behaviors/lolo/ui/learning/atoms/std-learn-goal-seek.lolo +130 -9
  29. package/behaviors/lolo/ui/learning/atoms/std-learn-grid-sim.lolo +143 -59
  30. package/behaviors/lolo/ui/learning/atoms/std-learn-hotspot.lolo +96 -22
  31. package/behaviors/lolo/ui/learning/atoms/std-learn-live-sim.lolo +66 -5
  32. package/behaviors/lolo/ui/learning/atoms/std-learn-predict.lolo +84 -6
  33. package/behaviors/lolo/ui/learning/atoms/std-learn-sandbox.lolo +80 -14
  34. package/behaviors/lolo/ui/learning/atoms/std-learn-scatter-fit.lolo +99 -5
  35. package/behaviors/lolo/ui/learning/atoms/std-learn-scenario.lolo +81 -7
  36. package/behaviors/lolo/ui/learning/atoms/std-learn-speed-drill.lolo +83 -7
  37. package/behaviors/lolo/ui/learning/atoms/std-learn-stepper.lolo +224 -99
  38. package/behaviors/lolo/ui/learning/atoms/std-learn-tour-3d.lolo +63 -2
  39. package/behaviors/lolo/ui/learning/atoms/std-learn-trace-player.lolo +99 -38
  40. package/behaviors/lolo/ui/learning/atoms/std-learn-transport.lolo +7 -7
  41. package/behaviors/lolo/ui/learning/atoms/std-learn-tree.lolo +69 -4
  42. package/behaviors/lolo-behavior-contracts.json +1 -1
  43. package/behaviors/registry/agent/atoms/std-agent-context.orb +205 -6
  44. package/behaviors/registry/agent/atoms/std-agent-memory.orb +146 -4
  45. package/behaviors/registry/agent/atoms/std-agent-proposal.orb +1972 -0
  46. package/behaviors/registry/agent/atoms/std-agent-session.orb +2021 -597
  47. package/behaviors/registry/agent/atoms/std-agent-suggestions.orb +5079 -0
  48. package/behaviors/registry/agent/atoms/std-agent-tool-loop.orb +287 -5
  49. package/behaviors/registry/agent/organisms/std-agent-assistant.orb +7 -0
  50. package/behaviors/registry/factory-signatures.json +1 -1
  51. package/behaviors/registry/infra/atoms/std-page-treat.orb +327 -2
  52. package/behaviors/registry/ui/avl/atoms/ui-avl-state-machine.orb +134 -0
  53. package/behaviors/registry/ui/avl/atoms/ui-avl-transition-explainer.orb +678 -0
  54. package/behaviors/registry/ui/avl/atoms/ui-module-card.orb +122 -0
  55. package/behaviors/registry/ui/core/atoms/std-app-layout.orb +73 -4
  56. package/behaviors/registry/ui/core/atoms/std-hero.orb +174 -97
  57. package/behaviors/registry/ui/core/molecules/ui-markdown-content.orb +204 -1
  58. package/behaviors/registry/ui/core/molecules/ui-upload-drop-zone.orb +12 -0
  59. package/behaviors/registry/ui/core/organisms/ui-segment-renderer.orb +683 -30
  60. package/behaviors/registry/ui/learning/atoms/std-learn-arrangement.orb +748 -21
  61. package/behaviors/registry/ui/learning/atoms/std-learn-classify.orb +1429 -41
  62. package/behaviors/registry/ui/learning/atoms/std-learn-coupled-sim.orb +1031 -185
  63. package/behaviors/registry/ui/learning/atoms/std-learn-derivation.orb +807 -132
  64. package/behaviors/registry/ui/learning/atoms/std-learn-diagram.orb +553 -6
  65. package/behaviors/registry/ui/learning/atoms/std-learn-doser.orb +987 -21
  66. package/behaviors/registry/ui/learning/atoms/std-learn-estimate.orb +582 -16
  67. package/behaviors/registry/ui/learning/atoms/std-learn-goal-seek.orb +954 -13
  68. package/behaviors/registry/ui/learning/atoms/std-learn-grid-sim.orb +828 -88
  69. package/behaviors/registry/ui/learning/atoms/std-learn-hotspot.orb +730 -28
  70. package/behaviors/registry/ui/learning/atoms/std-learn-live-sim.orb +479 -9
  71. package/behaviors/registry/ui/learning/atoms/std-learn-predict.orb +797 -46
  72. package/behaviors/registry/ui/learning/atoms/std-learn-sandbox.orb +757 -58
  73. package/behaviors/registry/ui/learning/atoms/std-learn-scatter-fit.orb +1176 -164
  74. package/behaviors/registry/ui/learning/atoms/std-learn-scenario.orb +599 -12
  75. package/behaviors/registry/ui/learning/atoms/std-learn-speed-drill.orb +832 -150
  76. package/behaviors/registry/ui/learning/atoms/std-learn-stepper.orb +1561 -127
  77. package/behaviors/registry/ui/learning/atoms/std-learn-tour-3d.orb +655 -6
  78. package/behaviors/registry/ui/learning/atoms/std-learn-trace-player.orb +634 -43
  79. package/behaviors/registry/ui/learning/atoms/std-learn-transport.orb +85 -31
  80. package/behaviors/registry/ui/learning/atoms/std-learn-tree.orb +425 -9
  81. package/canonical-operators.json +45 -2
  82. package/dist/behaviors/exports-reader.js +16667 -7868
  83. package/dist/behaviors/functions/index.d.ts +711 -32
  84. package/dist/behaviors/functions/index.js +16651 -7869
  85. package/dist/behaviors/index.d.ts +1 -1
  86. package/dist/behaviors/index.js +16668 -7869
  87. package/dist/behaviors/query.js +16667 -7868
  88. package/dist/behaviors-embeddings.hash.json +3 -3
  89. package/dist/behaviors-embeddings.json +77 -53
  90. package/dist/behaviors-registry.json +72537 -31220
  91. package/dist/index.d.ts +3 -3
  92. package/dist/index.js +16101 -7275
  93. package/dist/knob-embeddings.hash.json +3 -3
  94. package/dist/knob-embeddings.json +11617 -1225
  95. package/dist/modules/anim.d.ts +1 -1
  96. package/dist/modules/array.d.ts +1 -1
  97. package/dist/modules/async.d.ts +1 -1
  98. package/dist/modules/behavior.d.ts +1 -1
  99. package/dist/modules/browser.d.ts +1 -1
  100. package/dist/modules/composition.d.ts +1 -1
  101. package/dist/modules/contract.d.ts +1 -1
  102. package/dist/modules/core.d.ts +1 -1
  103. package/dist/modules/core.js +29 -2
  104. package/dist/modules/data.d.ts +1 -1
  105. package/dist/modules/ease.d.ts +1 -1
  106. package/dist/modules/format.d.ts +1 -1
  107. package/dist/modules/geo.d.ts +1 -1
  108. package/dist/modules/graph.d.ts +1 -1
  109. package/dist/modules/grid.d.ts +1 -1
  110. package/dist/modules/i18n.d.ts +1 -1
  111. package/dist/modules/index.d.ts +1 -1
  112. package/dist/modules/index.js +29 -2
  113. package/dist/modules/integration.d.ts +1 -1
  114. package/dist/modules/json.d.ts +1 -1
  115. package/dist/modules/llm.d.ts +1 -1
  116. package/dist/modules/math.d.ts +1 -1
  117. package/dist/modules/memory.d.ts +1 -1
  118. package/dist/modules/nn.d.ts +1 -1
  119. package/dist/modules/noise.d.ts +1 -1
  120. package/dist/modules/object.d.ts +1 -1
  121. package/dist/modules/os.d.ts +1 -1
  122. package/dist/modules/path.d.ts +1 -1
  123. package/dist/modules/prob.d.ts +1 -1
  124. package/dist/modules/session.d.ts +1 -1
  125. package/dist/modules/str.d.ts +1 -1
  126. package/dist/modules/tensor.d.ts +1 -1
  127. package/dist/modules/time.d.ts +1 -1
  128. package/dist/modules/trace.d.ts +1 -1
  129. package/dist/modules/train.d.ts +1 -1
  130. package/dist/modules/validate.d.ts +1 -1
  131. package/dist/modules/vector.d.ts +1 -1
  132. package/dist/modules/workspace.d.ts +1 -1
  133. package/dist/registry/factory-signatures.json +1 -1
  134. package/dist/registry.d.ts +2 -2
  135. package/dist/registry.js +29 -2
  136. package/dist/{types-Cdb321uM.d.ts → types-Y-yYWEOX.d.ts} +1 -1
  137. package/i18n/ar.json +3 -1
  138. package/i18n/en.json +2 -0
  139. package/i18n/sl.json +3 -1
  140. package/package.json +3 -3
@@ -1,5 +1,5 @@
1
1
  {
2
- "description": "std-agent-tool-loop — answers a conversation by operating the running app as the caller, through `call-service llm call-tools`. Its `tools` are `{ scope: declared }` (every declared external input plus a read over every persisted entity), or named declared inputs (addressed like a listens source: `Trait.EVENT`, `Orbital.Trait.EVENT`) and entities to read; each input fires as the signed-in user through the ordinary dispatch (guards and entity policies apply) and each read returns only the rows the caller may read. Headless: the conversation UI (std-agent-session) shows the reply; a failure shows as a toast. CONVERSE carries the conversation (and optionally what std-agent-memory recalled); ASSISTANT_STEP carries each step live while it works (a model call, a tool it used, what the app answered) to the asking tab; ASSISTANT_REPLIED carries the reply, every step and the token usage; ASSISTANT_REPLY_FAILED carries the error. These names are the assistant contract std-agent-session's conversation hears from any orbital. Compose with std-agent-session (the conversation) and std-agent-trace (the step record).",
2
+ "description": "std-agent-tool-loop — answers a conversation by operating the running app as the caller, through `call-service llm call-tools`. Its `tools` are `{ scope: declared }` (every declared external input plus a read over every persisted entity), or named declared inputs (addressed like a listens source: `Trait.EVENT`, `Orbital.Trait.EVENT`) and entities to read; each input fires as the signed-in user through the ordinary dispatch (guards and entity policies apply) and each read returns only the rows the caller may read. Headless: the conversation UI (std-agent-session) shows the reply; a failure shows as a toast, unless `quiet` is on (a background run nobody is watching: no live steps and no toast). CONVERSE carries the conversation (and optionally what std-agent-memory recalled); ASSISTANT_STEP carries each step live while it works (a model call, a tool it used, what the app answered) to the asking tab; ASSISTANT_REPLIED carries the reply, every step and the token usage; ASSISTANT_REPLY_FAILED carries the error. These names are the assistant contract std-agent-session's conversation hears from any orbital. Compose with std-agent-session (the conversation) and std-agent-trace (the step record).",
3
3
  "ledger": {
4
4
  "entries": {
5
5
  "ent_01M3TYMQFVS7RJC2HPKXYEF2VR": {
@@ -73,6 +73,15 @@
73
73
  "parent": "trt_01M3TYMQFVRCVPTPEX7MQ97HQP",
74
74
  "renames": []
75
75
  },
76
+ "evt_01M45S9TCWRDG4SHXGWDDV9AAC": {
77
+ "bakedName": "CANCEL",
78
+ "curName": "CANCEL",
79
+ "id": "evt_01M45S9TCWRDG4SHXGWDDV9AAC",
80
+ "kind": "event",
81
+ "owner": "workspace",
82
+ "parent": "trt_01M3TYMQFVRCVPTPEX7MQ97HQP",
83
+ "renames": []
84
+ },
76
85
  "orb_01M055GH3FETNDFWVCTDYA1Z10": {
77
86
  "bakedName": "AgentToolLoopOrbital",
78
87
  "curName": "AgentToolLoopOrbital",
@@ -133,6 +142,12 @@
133
142
  "description": "Why the last turn failed.",
134
143
  "name": "error",
135
144
  "type": "string"
145
+ },
146
+ {
147
+ "default": false,
148
+ "description": "The current turn belongs to an ephemeral conversation.",
149
+ "name": "ephemeral",
150
+ "type": "boolean"
136
151
  }
137
152
  ],
138
153
  "id": "ent_01M3TYMQFVS7RJC2HPKXYEF2VR",
@@ -158,6 +173,14 @@
158
173
  {
159
174
  "category": "interaction",
160
175
  "config": {
176
+ "cancelKey": {
177
+ "default": "agent-tool-loop",
178
+ "description": "The key this instance's model call runs under, so CANCEL aborts it. Give each instance of the loop in one app its own.",
179
+ "label": "Cancel key",
180
+ "synonyms": "call key, abort key",
181
+ "tier": "internal",
182
+ "type": "string"
183
+ },
161
184
  "instructions": {
162
185
  "default": "You operate this app for the signed-in user. Use the tools to act and to look things up; when a tool reports that something was refused or denied, say so plainly.",
163
186
  "description": "Standing instructions sent with every conversation.",
@@ -173,6 +196,14 @@
173
196
  "tier": "policy",
174
197
  "type": "number"
175
198
  },
199
+ "quiet": {
200
+ "default": false,
201
+ "description": "No live ASSISTANT_STEP stream and no failure toast: the request is reported only through ASSISTANT_REPLIED and ASSISTANT_REPLY_FAILED. For a run nobody is watching, such as one the app starts on its own.",
202
+ "label": "Run in the background?",
203
+ "synonyms": "silent, background, no toast, suppress errors, headless run",
204
+ "tier": "policy",
205
+ "type": "boolean"
206
+ },
176
207
  "tools": {
177
208
  "default": [],
178
209
  "description": "The declared inputs it may fire (`{ event: Trait.EVENT }`) and the entities it may read (`{ read: Entity }`), as the signed-in user.",
@@ -210,6 +241,9 @@
210
241
  "kind": "call-service",
211
242
  "resource": "llm.call-tools"
212
243
  },
244
+ {
245
+ "kind": "cancel-call"
246
+ },
213
247
  {
214
248
  "kind": "emit",
215
249
  "resource": "ASSISTANT_REPLIED"
@@ -222,6 +256,10 @@
222
256
  "kind": "render-ui",
223
257
  "resource": "toast"
224
258
  },
259
+ {
260
+ "kind": "set",
261
+ "resource": "@entity.ephemeral"
262
+ },
225
263
  {
226
264
  "kind": "set",
227
265
  "resource": "@entity.error"
@@ -412,7 +450,7 @@
412
450
  "tier": "domain"
413
451
  },
414
452
  {
415
- "description": "The assistant answered; carries every tool step it took and the tokens it used.",
453
+ "description": "The assistant answered; carries every tool step it took and the tokens it used. `ephemeral` echoes the conversation's: an ephemeral reply is not stored or remembered, and only an ephemeral conversation shows it.",
416
454
  "event": "ASSISTANT_REPLIED",
417
455
  "eventId": "evt_01M41HQTKHH12EZ3SPKY3ZWJC6",
418
456
  "payloadSchema": [
@@ -452,6 +490,10 @@
452
490
  ],
453
491
  "required": true,
454
492
  "type": "object"
493
+ },
494
+ {
495
+ "name": "ephemeral",
496
+ "type": "boolean"
455
497
  }
456
498
  ],
457
499
  "scope": "external",
@@ -467,6 +509,10 @@
467
509
  "name": "error",
468
510
  "required": true,
469
511
  "type": "string"
512
+ },
513
+ {
514
+ "name": "ephemeral",
515
+ "type": "boolean"
470
516
  }
471
517
  ],
472
518
  "scope": "external",
@@ -548,7 +594,7 @@
548
594
  "name": "Initialize"
549
595
  },
550
596
  {
551
- "description": "Answer this conversation; the last turn is the request. `context` is what the assistant remembers that may be relevant.",
597
+ "description": "Answer this conversation; the last turn is the request. `context` is what the assistant remembers that may be relevant. An `ephemeral` conversation runs under its own `instructions` (empty: the configured ones) and exactly its own `tools` (absent or `[]`: none, never the configured ones), streams no live steps and shows no failure toast.",
552
598
  "id": "evt_01M3TYMQFVAN072R0C2Z5X5NPQ",
553
599
  "key": "CONVERSE",
554
600
  "name": "Converse",
@@ -572,10 +618,43 @@
572
618
  {
573
619
  "name": "context",
574
620
  "type": "string"
621
+ },
622
+ {
623
+ "name": "instructions",
624
+ "type": "string"
625
+ },
626
+ {
627
+ "name": "tools",
628
+ "properties": [
629
+ {
630
+ "name": "event",
631
+ "type": "event"
632
+ },
633
+ {
634
+ "name": "read",
635
+ "type": "string"
636
+ },
637
+ {
638
+ "name": "scope",
639
+ "type": "string"
640
+ }
641
+ ],
642
+ "type": "[object]"
643
+ },
644
+ {
645
+ "name": "ephemeral",
646
+ "type": "boolean"
575
647
  }
576
648
  ],
577
649
  "synonyms": "ask, chat, request"
578
650
  },
651
+ {
652
+ "description": "Abort the request in flight; nothing is replied and no failure is reported.",
653
+ "id": "evt_01M45S9TCWRDG4SHXGWDDV9AAC",
654
+ "key": "CANCEL",
655
+ "name": "Cancel",
656
+ "synonyms": "stop, abort, cancel"
657
+ },
579
658
  {
580
659
  "id": "evt_01M3TYMQFVCJWHGK649HS8W7NA",
581
660
  "key": "ANSWERED",
@@ -810,7 +889,7 @@
810
889
  "tier": "domain"
811
890
  },
812
891
  {
813
- "description": "The assistant answered; carries every tool step it took and the tokens it used.",
892
+ "description": "The assistant answered; carries every tool step it took and the tokens it used. `ephemeral` echoes the conversation's: an ephemeral reply is not stored or remembered, and only an ephemeral conversation shows it.",
814
893
  "id": "evt_01M41HQTKHH12EZ3SPKY3ZWJC6",
815
894
  "key": "ASSISTANT_REPLIED",
816
895
  "name": "Assistant Replied",
@@ -851,6 +930,10 @@
851
930
  ],
852
931
  "required": true,
853
932
  "type": "object"
933
+ },
934
+ {
935
+ "name": "ephemeral",
936
+ "type": "boolean"
854
937
  }
855
938
  ],
856
939
  "synonyms": "answered, responded, done",
@@ -866,6 +949,10 @@
866
949
  "name": "error",
867
950
  "required": true,
868
951
  "type": "string"
952
+ },
953
+ {
954
+ "name": "ephemeral",
955
+ "type": "boolean"
869
956
  }
870
957
  ],
871
958
  "synonyms": "failed, error, gave up",
@@ -902,6 +989,11 @@
902
989
  "@entity.status",
903
990
  "thinking"
904
991
  ],
992
+ [
993
+ "set",
994
+ "@entity.ephemeral",
995
+ false
996
+ ],
905
997
  [
906
998
  "call-service",
907
999
  "llm",
@@ -935,15 +1027,161 @@
935
1027
  "failure": "ASK_FAILED",
936
1028
  "onMessage": "ASSISTANT_STEP",
937
1029
  "success": "ANSWERED"
938
- }
1030
+ },
1031
+ "key": "@config.cancelKey"
1032
+ }
1033
+ ]
1034
+ ],
1035
+ "event": "CONVERSE",
1036
+ "eventId": "evt_01M3TYMQFVAN072R0C2Z5X5NPQ",
1037
+ "from": "idle",
1038
+ "guard": [
1039
+ "and",
1040
+ [
1041
+ "not",
1042
+ "@config.quiet"
1043
+ ],
1044
+ [
1045
+ "not",
1046
+ "@payload.ephemeral"
1047
+ ]
1048
+ ],
1049
+ "to": "thinking"
1050
+ },
1051
+ {
1052
+ "effects": [
1053
+ [
1054
+ "set",
1055
+ "@entity.status",
1056
+ "thinking"
1057
+ ],
1058
+ [
1059
+ "set",
1060
+ "@entity.ephemeral",
1061
+ false
1062
+ ],
1063
+ [
1064
+ "call-service",
1065
+ "llm",
1066
+ "call-tools",
1067
+ {
1068
+ "instructions": [
1069
+ "if",
1070
+ [
1071
+ "=",
1072
+ [
1073
+ "str/default",
1074
+ "@payload.context",
1075
+ ""
1076
+ ],
1077
+ ""
1078
+ ],
1079
+ "@config.instructions",
1080
+ [
1081
+ "str/concat",
1082
+ "@config.instructions",
1083
+ "\n\nWhat you remember that may be relevant:\n",
1084
+ "@payload.context"
1085
+ ]
1086
+ ],
1087
+ "maxSteps": "@config.maxSteps",
1088
+ "messages": "@payload.messages",
1089
+ "tools": "@config.tools"
1090
+ },
1091
+ {
1092
+ "emit": {
1093
+ "failure": "ASK_FAILED",
1094
+ "success": "ANSWERED"
1095
+ },
1096
+ "key": "@config.cancelKey"
1097
+ }
1098
+ ]
1099
+ ],
1100
+ "event": "CONVERSE",
1101
+ "eventId": "evt_01M3TYMQFVAN072R0C2Z5X5NPQ",
1102
+ "from": "idle",
1103
+ "guard": [
1104
+ "and",
1105
+ "@config.quiet",
1106
+ [
1107
+ "not",
1108
+ "@payload.ephemeral"
1109
+ ]
1110
+ ],
1111
+ "to": "thinking"
1112
+ },
1113
+ {
1114
+ "effects": [
1115
+ [
1116
+ "set",
1117
+ "@entity.status",
1118
+ "thinking"
1119
+ ],
1120
+ [
1121
+ "set",
1122
+ "@entity.ephemeral",
1123
+ true
1124
+ ],
1125
+ [
1126
+ "call-service",
1127
+ "llm",
1128
+ "call-tools",
1129
+ {
1130
+ "instructions": [
1131
+ "if",
1132
+ [
1133
+ "=",
1134
+ [
1135
+ "str/default",
1136
+ "@payload.instructions",
1137
+ ""
1138
+ ],
1139
+ ""
1140
+ ],
1141
+ "@config.instructions",
1142
+ "@payload.instructions"
1143
+ ],
1144
+ "maxSteps": "@config.maxSteps",
1145
+ "messages": "@payload.messages",
1146
+ "tools": [
1147
+ "object/get",
1148
+ "@payload",
1149
+ "tools",
1150
+ []
1151
+ ]
1152
+ },
1153
+ {
1154
+ "emit": {
1155
+ "failure": "ASK_FAILED",
1156
+ "success": "ANSWERED"
1157
+ },
1158
+ "key": "@config.cancelKey"
939
1159
  }
940
1160
  ]
941
1161
  ],
942
1162
  "event": "CONVERSE",
943
1163
  "eventId": "evt_01M3TYMQFVAN072R0C2Z5X5NPQ",
944
1164
  "from": "idle",
1165
+ "guard": "@payload.ephemeral",
945
1166
  "to": "thinking"
946
1167
  },
1168
+ {
1169
+ "effects": [
1170
+ [
1171
+ "cancel-call",
1172
+ "@config.cancelKey"
1173
+ ],
1174
+ [
1175
+ "set",
1176
+ "@entity.status",
1177
+ "idle"
1178
+ ]
1179
+ ],
1180
+ "event": "CANCEL",
1181
+ "eventId": "evt_01M45S9TCWRDG4SHXGWDDV9AAC",
1182
+ "from": "thinking",
1183
+ "to": "idle"
1184
+ },
947
1185
  {
948
1186
  "effects": [
949
1187
  [
@@ -960,6 +1198,7 @@
960
1198
  "emit",
961
1199
  "ASSISTANT_REPLIED",
962
1200
  {
1201
+ "ephemeral": "@entity.ephemeral",
963
1202
  "reply": "@payload.reply",
964
1203
  "steps": "@payload.steps",
965
1204
  "usage": "@payload.usage"
@@ -987,6 +1226,38 @@
987
1226
  "emit",
988
1227
  "ASSISTANT_REPLY_FAILED",
989
1228
  {
1229
+ "ephemeral": "@entity.ephemeral",
1230
+ "error": "@payload.error"
1231
+ }
1232
+ ]
1233
+ ],
1234
+ "event": "ASK_FAILED",
1235
+ "eventId": "evt_01M3TYMQFVB6QA7HQ3KR6GGHHX",
1236
+ "from": "thinking",
1237
+ "guard": [
1238
+ "or",
1239
+ "@config.quiet",
1240
+ "@entity.ephemeral"
1241
+ ],
1242
+ "to": "idle"
1243
+ },
1244
+ {
1245
+ "effects": [
1246
+ [
1247
+ "set",
1248
+ "@entity.status",
1249
+ "failed"
1250
+ ],
1251
+ [
1252
+ "set",
1253
+ "@entity.error",
1254
+ "@payload.error"
1255
+ ],
1256
+ [
1257
+ "emit",
1258
+ "ASSISTANT_REPLY_FAILED",
1259
+ {
1260
+ "ephemeral": "@entity.ephemeral",
990
1261
  "error": "@payload.error"
991
1262
  }
992
1263
  ],
@@ -1003,6 +1274,17 @@
1003
1274
  "event": "ASK_FAILED",
1004
1275
  "eventId": "evt_01M3TYMQFVB6QA7HQ3KR6GGHHX",
1005
1276
  "from": "thinking",
1277
+ "guard": [
1278
+ "and",
1279
+ [
1280
+ "not",
1281
+ "@config.quiet"
1282
+ ],
1283
+ [
1284
+ "not",
1285
+ "@entity.ephemeral"
1286
+ ]
1287
+ ],
1006
1288
  "to": "idle"
1007
1289
  }
1008
1290
  ]
@@ -507,6 +507,13 @@
507
507
  "trait": "AssistantThread"
508
508
  },
509
509
  "triggers": "COMPACT"
510
+ },
511
+ {
512
+ "event": "ASSISTANT_EPHEMERAL_SEND",
513
+ "source": {
514
+ "kind": "any"
515
+ },
516
+ "triggers": "COMPACT"
510
517
  }
511
518
  ],
512
519
  "name": "AssistantContext",