@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
@@ -0,0 +1,1972 @@
1
+ {
2
+ "description": "std-agent-proposal — an agent that reads what the person hands over, works out a structured proposal, and commits nothing until they approve it. The app starts it with PROPOSAL_REQUESTED { input, context } (any trait emitting it, or the person typing into the start form when `showInputForm` is on). A second std-agent-tool-loop answers with `instructions`, `prompt` and `tools` as the signed-in person — `quiet`, its reply and failure renamed PROPOSAL_LOOP_REPLIED / PROPOSAL_LOOP_FAILED so they never reach the assistant's chat — and submits its proposal through one declared input, PROPOSE (its @description is the tool text): a summary and a list of items, each a flat map of scalar values the app names. The person reviews it (the summary, the items drawn with `itemPattern` and `itemFields`) and chooses: Approve emits PROPOSAL_APPROVED { proposal } for the app to commit (the app owns the commit; this atom writes nothing); Revise sends their written feedback back to the agent, which proposes again; Discard emits PROPOSAL_DISCARDED. Cancel while the agent works aborts its model call and emits PROPOSAL_CANCELLED. A run that fails, or ends without proposing, shows its error with Retry and Discard. The panel renders into `panelSlot`. Import the orbital once per app: `orbital Proposal = Proposal.orbitals.AgentProposalOrbital { config { instructions: \"…\", prompt: \"…\", itemFields: […] } }`, restating `tools` with PROPOSE addressed by its local orbital name (`{ event: Proposal.AgentProposalWorkflow.PROPOSE }`). Instructions, prompts, item fields and labels are the app's vocabulary, declared in config.",
3
+ "ledger": {
4
+ "entries": {
5
+ "ent_01M45SA5BR84VGGGFNPDGF85XA": {
6
+ "bakedName": "AgentProposalRun",
7
+ "curName": "AgentProposalRun",
8
+ "id": "ent_01M45SA5BR84VGGGFNPDGF85XA",
9
+ "kind": "entity",
10
+ "owner": "workspace",
11
+ "renames": []
12
+ },
13
+ "evt_01M45SA5BR42DJGVHDPYYAAYAK": {
14
+ "bakedName": "START_TYPED",
15
+ "curName": "START_TYPED",
16
+ "id": "evt_01M45SA5BR42DJGVHDPYYAAYAK",
17
+ "kind": "event",
18
+ "owner": "workspace",
19
+ "parent": "trt_01M45SA5BRYA76DFG3SZJYDW9F",
20
+ "renames": []
21
+ },
22
+ "evt_01M45SA5BR7TFEZX6E1CDDCYVK": {
23
+ "bakedName": "FEEDBACK_CHANGED",
24
+ "curName": "FEEDBACK_CHANGED",
25
+ "id": "evt_01M45SA5BR7TFEZX6E1CDDCYVK",
26
+ "kind": "event",
27
+ "owner": "workspace",
28
+ "parent": "trt_01M45SA5BRYA76DFG3SZJYDW9F",
29
+ "renames": []
30
+ },
31
+ "evt_01M45SA5BR9KETRNM1N7TJHTCC": {
32
+ "bakedName": "PROPOSAL_CANCELLED",
33
+ "curName": "PROPOSAL_CANCELLED",
34
+ "id": "evt_01M45SA5BR9KETRNM1N7TJHTCC",
35
+ "kind": "event",
36
+ "owner": "workspace",
37
+ "parent": "trt_01M45SA5BRYA76DFG3SZJYDW9F",
38
+ "renames": []
39
+ },
40
+ "evt_01M45SA5BRDK72EQBRHN6EBEVN": {
41
+ "bakedName": "PROPOSE",
42
+ "curName": "PROPOSE",
43
+ "id": "evt_01M45SA5BRDK72EQBRHN6EBEVN",
44
+ "kind": "event",
45
+ "owner": "workspace",
46
+ "parent": "trt_01M45SA5BRYA76DFG3SZJYDW9F",
47
+ "renames": []
48
+ },
49
+ "evt_01M45SA5BRHR5C4BS9VPPX9FYV": {
50
+ "bakedName": "REVISE",
51
+ "curName": "REVISE",
52
+ "id": "evt_01M45SA5BRHR5C4BS9VPPX9FYV",
53
+ "kind": "event",
54
+ "owner": "workspace",
55
+ "parent": "trt_01M45SA5BRYA76DFG3SZJYDW9F",
56
+ "renames": []
57
+ },
58
+ "evt_01M45SA5BRJM7JZ94BX45GSJCH": {
59
+ "bakedName": "PROPOSAL_LOOP_REPLIED",
60
+ "curName": "PROPOSAL_LOOP_REPLIED",
61
+ "id": "evt_01M45SA5BRJM7JZ94BX45GSJCH",
62
+ "kind": "event",
63
+ "owner": "workspace",
64
+ "parent": "trt_01M45SA5BRYA76DFG3SZJYDW9F",
65
+ "renames": []
66
+ },
67
+ "evt_01M45SA5BRM25WS278A2AS6YTC": {
68
+ "bakedName": "PROPOSAL_LOOP_FAILED",
69
+ "curName": "PROPOSAL_LOOP_FAILED",
70
+ "id": "evt_01M45SA5BRM25WS278A2AS6YTC",
71
+ "kind": "event",
72
+ "owner": "workspace",
73
+ "parent": "trt_01M45SA5BRYA76DFG3SZJYDW9F",
74
+ "renames": []
75
+ },
76
+ "evt_01M45SA5BRNBSAZDT8AWMS835W": {
77
+ "bakedName": "RETRY",
78
+ "curName": "RETRY",
79
+ "id": "evt_01M45SA5BRNBSAZDT8AWMS835W",
80
+ "kind": "event",
81
+ "owner": "workspace",
82
+ "parent": "trt_01M45SA5BRYA76DFG3SZJYDW9F",
83
+ "renames": []
84
+ },
85
+ "evt_01M45SA5BRPGDTE8CXRABXZWJB": {
86
+ "bakedName": "PROPOSAL_DISCARDED",
87
+ "curName": "PROPOSAL_DISCARDED",
88
+ "id": "evt_01M45SA5BRPGDTE8CXRABXZWJB",
89
+ "kind": "event",
90
+ "owner": "workspace",
91
+ "parent": "trt_01M45SA5BRYA76DFG3SZJYDW9F",
92
+ "renames": []
93
+ },
94
+ "evt_01M45SA5BRRH2KQB64762EZGDK": {
95
+ "bakedName": "DISCARD",
96
+ "curName": "DISCARD",
97
+ "id": "evt_01M45SA5BRRH2KQB64762EZGDK",
98
+ "kind": "event",
99
+ "owner": "workspace",
100
+ "parent": "trt_01M45SA5BRYA76DFG3SZJYDW9F",
101
+ "renames": []
102
+ },
103
+ "evt_01M45SA5BRRMQGX2TWNYD0VTDE": {
104
+ "bakedName": "INPUT_CHANGED",
105
+ "curName": "INPUT_CHANGED",
106
+ "id": "evt_01M45SA5BRRMQGX2TWNYD0VTDE",
107
+ "kind": "event",
108
+ "owner": "workspace",
109
+ "parent": "trt_01M45SA5BRYA76DFG3SZJYDW9F",
110
+ "renames": []
111
+ },
112
+ "evt_01M45SA5BRW7B48Y2Q13NH0QR6": {
113
+ "bakedName": "PROPOSAL_RUN_REQUESTED",
114
+ "curName": "PROPOSAL_RUN_REQUESTED",
115
+ "id": "evt_01M45SA5BRW7B48Y2Q13NH0QR6",
116
+ "kind": "event",
117
+ "owner": "workspace",
118
+ "parent": "trt_01M45SA5BRYA76DFG3SZJYDW9F",
119
+ "renames": []
120
+ },
121
+ "evt_01M45SA5BRXBTHECE4D56PSSKT": {
122
+ "bakedName": "CANCEL",
123
+ "curName": "CANCEL",
124
+ "id": "evt_01M45SA5BRXBTHECE4D56PSSKT",
125
+ "kind": "event",
126
+ "owner": "workspace",
127
+ "parent": "trt_01M45SA5BRYA76DFG3SZJYDW9F",
128
+ "renames": []
129
+ },
130
+ "evt_01M45SA5BRXSD3K7GF98ND8WPS": {
131
+ "bakedName": "APPROVE",
132
+ "curName": "APPROVE",
133
+ "id": "evt_01M45SA5BRXSD3K7GF98ND8WPS",
134
+ "kind": "event",
135
+ "owner": "workspace",
136
+ "parent": "trt_01M45SA5BRYA76DFG3SZJYDW9F",
137
+ "renames": []
138
+ },
139
+ "evt_01M45SA5BRXV2SDNT6GY3TH9EP": {
140
+ "bakedName": "PROPOSAL_APPROVED",
141
+ "curName": "PROPOSAL_APPROVED",
142
+ "id": "evt_01M45SA5BRXV2SDNT6GY3TH9EP",
143
+ "kind": "event",
144
+ "owner": "workspace",
145
+ "parent": "trt_01M45SA5BRYA76DFG3SZJYDW9F",
146
+ "renames": []
147
+ },
148
+ "evt_01M45SA5BRYYN4AQ8JF9TRGMXS": {
149
+ "bakedName": "INIT",
150
+ "curName": "INIT",
151
+ "id": "evt_01M45SA5BRYYN4AQ8JF9TRGMXS",
152
+ "kind": "event",
153
+ "owner": "workspace",
154
+ "parent": "trt_01M45SA5BRYA76DFG3SZJYDW9F",
155
+ "renames": []
156
+ },
157
+ "evt_01M45SA5BRZE323C3WF5M5KHYQ": {
158
+ "bakedName": "PROPOSAL_REQUESTED",
159
+ "curName": "PROPOSAL_REQUESTED",
160
+ "id": "evt_01M45SA5BRZE323C3WF5M5KHYQ",
161
+ "kind": "event",
162
+ "owner": "workspace",
163
+ "parent": "trt_01M45SA5BRYA76DFG3SZJYDW9F",
164
+ "renames": []
165
+ },
166
+ "evt_01M45TMFKBN981Z1TR2C20XMA5": {
167
+ "bakedName": "CLOSE",
168
+ "curName": "CLOSE",
169
+ "id": "evt_01M45TMFKBN981Z1TR2C20XMA5",
170
+ "kind": "event",
171
+ "owner": "workspace",
172
+ "parent": "trt_01M45SA5BRYA76DFG3SZJYDW9F",
173
+ "renames": []
174
+ },
175
+ "orb_01M45SA5BRXSN9Y2Z2AZ4Y7RDD": {
176
+ "bakedName": "AgentProposalOrbital",
177
+ "curName": "AgentProposalOrbital",
178
+ "id": "orb_01M45SA5BRXSN9Y2Z2AZ4Y7RDD",
179
+ "kind": "orbital",
180
+ "owner": "workspace",
181
+ "renames": []
182
+ },
183
+ "pag_01M45SA5BR6GCGJXFR7XTT3T9M": {
184
+ "bakedName": "AgentProposalPage",
185
+ "curName": "AgentProposalPage",
186
+ "id": "pag_01M45SA5BR6GCGJXFR7XTT3T9M",
187
+ "kind": "page",
188
+ "owner": "workspace",
189
+ "renames": []
190
+ },
191
+ "trt_01M45SA5BRWYX6EH8SAZA3FS0G": {
192
+ "bakedName": "AgentProposalLoop",
193
+ "curName": "AgentProposalLoop",
194
+ "id": "trt_01M45SA5BRWYX6EH8SAZA3FS0G",
195
+ "kind": "trait",
196
+ "owner": "workspace",
197
+ "renames": []
198
+ },
199
+ "trt_01M45SA5BRYA76DFG3SZJYDW9F": {
200
+ "bakedName": "AgentProposalWorkflow",
201
+ "curName": "AgentProposalWorkflow",
202
+ "id": "trt_01M45SA5BRYA76DFG3SZJYDW9F",
203
+ "kind": "trait",
204
+ "owner": "workspace",
205
+ "renames": []
206
+ }
207
+ },
208
+ "schemaVersion": 1
209
+ },
210
+ "name": "std-agent-proposal",
211
+ "orbitals": [
212
+ {
213
+ "config": {
214
+ "approveLabel": {
215
+ "default": "Approve",
216
+ "label": "Approve button",
217
+ "tier": "presentation",
218
+ "type": "string"
219
+ },
220
+ "cancelLabel": {
221
+ "default": "Cancel",
222
+ "label": "Cancel button",
223
+ "tier": "presentation",
224
+ "type": "string"
225
+ },
226
+ "discardLabel": {
227
+ "default": "Discard",
228
+ "label": "Discard button",
229
+ "tier": "presentation",
230
+ "type": "string"
231
+ },
232
+ "feedbackLabel": {
233
+ "default": "What should change?",
234
+ "label": "Revision feedback label",
235
+ "tier": "presentation",
236
+ "type": "string"
237
+ },
238
+ "icon": {
239
+ "default": "sparkles",
240
+ "label": "Panel icon",
241
+ "tier": "presentation",
242
+ "type": "string"
243
+ },
244
+ "inputLabel": {
245
+ "default": "What should the agent work from?",
246
+ "label": "Start form label",
247
+ "tier": "presentation",
248
+ "type": "string"
249
+ },
250
+ "instructions": {
251
+ "default": "You turn what the person hands over into one structured proposal. Look things up with the tools if you need to, then call the proposal tool exactly once with a short summary and the list of items. Do not call it again unless asked to revise.",
252
+ "description": "Standing instructions sent with every run.",
253
+ "label": "How should the agent behave?",
254
+ "synonyms": "system prompt, persona, guidance",
255
+ "tier": "domain",
256
+ "type": "string"
257
+ },
258
+ "itemFields": {
259
+ "default": [],
260
+ "description": "The item keys to show, each `{ name, label, variant }`.",
261
+ "items": {
262
+ "properties": {
263
+ "label": {
264
+ "name": "label",
265
+ "required": false,
266
+ "type": "string"
267
+ },
268
+ "name": {
269
+ "name": "name",
270
+ "required": true,
271
+ "type": "string"
272
+ },
273
+ "variant": {
274
+ "name": "variant",
275
+ "required": false,
276
+ "type": "string"
277
+ }
278
+ },
279
+ "type": "object"
280
+ },
281
+ "label": "Which item values are shown?",
282
+ "synonyms": "columns, fields, attributes",
283
+ "tier": "domain",
284
+ "type": "[ProposalField]"
285
+ },
286
+ "itemPattern": {
287
+ "default": "data-list",
288
+ "description": "The pattern the review renders the items with; it receives `entity` (the items) and `fields`.",
289
+ "label": "How are the proposed items drawn?",
290
+ "synonyms": "item layout, list pattern, table",
291
+ "tier": "presentation",
292
+ "type": "pattern"
293
+ },
294
+ "itemsHeading": {
295
+ "default": "Items",
296
+ "label": "Items heading",
297
+ "tier": "presentation",
298
+ "type": "string"
299
+ },
300
+ "maxSteps": {
301
+ "default": 8.0,
302
+ "label": "Model round-trips per run",
303
+ "tier": "policy",
304
+ "type": "number"
305
+ },
306
+ "panelSlot": {
307
+ "default": "main",
308
+ "description": "`main` for the content of a page or launcher; `modal` or `drawer` for an overlay.",
309
+ "label": "Where the panel renders",
310
+ "tier": "presentation",
311
+ "type": "slot"
312
+ },
313
+ "prompt": {
314
+ "default": "Work out a proposal from the following.",
315
+ "description": "The request that precedes the person's input in every run.",
316
+ "label": "What is the agent asked to do?",
317
+ "synonyms": "task, goal, brief, question",
318
+ "tier": "domain",
319
+ "type": "string"
320
+ },
321
+ "retryLabel": {
322
+ "default": "Retry",
323
+ "label": "Retry button",
324
+ "tier": "presentation",
325
+ "type": "string"
326
+ },
327
+ "reviseLabel": {
328
+ "default": "Revise",
329
+ "label": "Revise button",
330
+ "tier": "presentation",
331
+ "type": "string"
332
+ },
333
+ "showInputForm": {
334
+ "default": true,
335
+ "description": "On, the idle panel lets the person type what the agent works from. Off, the panel renders nothing until the app starts it with PROPOSAL_REQUESTED.",
336
+ "label": "Show a start form?",
337
+ "synonyms": "start form, input box, manual start",
338
+ "tier": "presentation",
339
+ "type": "boolean"
340
+ },
341
+ "startLabel": {
342
+ "default": "Propose",
343
+ "label": "Start button",
344
+ "tier": "presentation",
345
+ "type": "string"
346
+ },
347
+ "summaryHeading": {
348
+ "default": "Summary",
349
+ "label": "Summary heading",
350
+ "tier": "presentation",
351
+ "type": "string"
352
+ },
353
+ "title": {
354
+ "default": "Proposal",
355
+ "label": "Panel heading",
356
+ "tier": "presentation",
357
+ "type": "string"
358
+ },
359
+ "tools": {
360
+ "default": [
361
+ {
362
+ "event": "AgentProposalWorkflow.PROPOSE"
363
+ }
364
+ ],
365
+ "description": "The declared inputs it may fire and the entities it may read, as the signed-in person. An importing app restates the list with PROPOSE addressed by its local orbital name, which the agent can never propose without.",
366
+ "items": {
367
+ "properties": {
368
+ "event": {
369
+ "name": "event",
370
+ "required": false,
371
+ "type": "event"
372
+ },
373
+ "read": {
374
+ "name": "read",
375
+ "required": false,
376
+ "type": "string"
377
+ },
378
+ "scope": {
379
+ "name": "scope",
380
+ "required": false,
381
+ "type": "string",
382
+ "values": [
383
+ "declared"
384
+ ]
385
+ }
386
+ },
387
+ "type": "object"
388
+ },
389
+ "label": "What may the agent do?",
390
+ "synonyms": "allowlist, abilities, permissions",
391
+ "tier": "domain",
392
+ "type": "[AgentTool]"
393
+ },
394
+ "workingLabel": {
395
+ "default": "Working out a proposal…",
396
+ "label": "While the agent works",
397
+ "tier": "presentation",
398
+ "type": "string"
399
+ }
400
+ },
401
+ "entity": {
402
+ "fields": [
403
+ {
404
+ "name": "id",
405
+ "required": true,
406
+ "type": "string"
407
+ },
408
+ {
409
+ "default": "",
410
+ "description": "What the person handed over.",
411
+ "name": "input",
412
+ "type": "string"
413
+ },
414
+ {
415
+ "default": "",
416
+ "description": "Extra background the app handed over.",
417
+ "name": "context",
418
+ "type": "string"
419
+ },
420
+ {
421
+ "default": "",
422
+ "description": "The request the agent is answering, with any revision feedback.",
423
+ "name": "request",
424
+ "type": "string"
425
+ },
426
+ {
427
+ "default": "",
428
+ "description": "What the person asked to change.",
429
+ "name": "feedback",
430
+ "type": "string"
431
+ },
432
+ {
433
+ "default": "",
434
+ "description": "The proposal in a few lines.",
435
+ "name": "summary",
436
+ "type": "string"
437
+ },
438
+ {
439
+ "default": [],
440
+ "description": "The proposed items.",
441
+ "items": {
442
+ "items": {
443
+ "type": "scalar"
444
+ },
445
+ "type": "object"
446
+ },
447
+ "name": "items",
448
+ "type": "array"
449
+ },
450
+ {
451
+ "default": "",
452
+ "description": "Why the last run failed.",
453
+ "name": "error",
454
+ "type": "string"
455
+ }
456
+ ],
457
+ "id": "ent_01M45SA5BR84VGGGFNPDGF85XA",
458
+ "name": "AgentProposalRun",
459
+ "persistence": "runtime"
460
+ },
461
+ "id": "orb_01M45SA5BRXSN9Y2Z2AZ4Y7RDD",
462
+ "name": "AgentProposalOrbital",
463
+ "pages": [
464
+ {
465
+ "id": "pag_01M45SA5BR6GCGJXFR7XTT3T9M",
466
+ "name": "AgentProposalPage",
467
+ "path": "/agent-proposal",
468
+ "traits": [
469
+ {
470
+ "ref": "AgentProposalWorkflow",
471
+ "refId": "trt_01M45SA5BRYA76DFG3SZJYDW9F"
472
+ },
473
+ {
474
+ "ref": "AgentProposalLoop",
475
+ "refId": "trt_01M45SA5BRWYX6EH8SAZA3FS0G"
476
+ }
477
+ ]
478
+ }
479
+ ],
480
+ "traits": [
481
+ {
482
+ "category": "interaction",
483
+ "config": {
484
+ "approveButton": {
485
+ "default": "@config.approveLabel",
486
+ "label": "Approve button",
487
+ "tier": "presentation",
488
+ "type": "string"
489
+ },
490
+ "cancelButton": {
491
+ "default": "@config.cancelLabel",
492
+ "label": "Cancel button",
493
+ "tier": "presentation",
494
+ "type": "string"
495
+ },
496
+ "discardButton": {
497
+ "default": "@config.discardLabel",
498
+ "label": "Discard button",
499
+ "tier": "presentation",
500
+ "type": "string"
501
+ },
502
+ "feedbackText": {
503
+ "default": "@config.feedbackLabel",
504
+ "label": "Revision feedback label",
505
+ "tier": "presentation",
506
+ "type": "string"
507
+ },
508
+ "fieldsForItems": {
509
+ "default": "@config.itemFields",
510
+ "items": {
511
+ "properties": {
512
+ "label": {
513
+ "name": "label",
514
+ "required": false,
515
+ "type": "string"
516
+ },
517
+ "name": {
518
+ "name": "name",
519
+ "required": true,
520
+ "type": "string"
521
+ },
522
+ "variant": {
523
+ "name": "variant",
524
+ "required": false,
525
+ "type": "string"
526
+ }
527
+ },
528
+ "type": "object"
529
+ },
530
+ "label": "Which item values are shown?",
531
+ "tier": "domain",
532
+ "type": "[ProposalField]"
533
+ },
534
+ "framing": {
535
+ "default": "@config.prompt",
536
+ "description": "The request that precedes the person's input.",
537
+ "label": "What is the agent asked to do?",
538
+ "synonyms": "task, goal, brief",
539
+ "tier": "domain",
540
+ "type": "string"
541
+ },
542
+ "heading": {
543
+ "default": "@config.title",
544
+ "label": "Panel heading",
545
+ "tier": "presentation",
546
+ "type": "string"
547
+ },
548
+ "headingIcon": {
549
+ "default": "@config.icon",
550
+ "label": "Panel icon",
551
+ "tier": "presentation",
552
+ "type": "string"
553
+ },
554
+ "inputText": {
555
+ "default": "@config.inputLabel",
556
+ "label": "Start form label",
557
+ "tier": "presentation",
558
+ "type": "string"
559
+ },
560
+ "itemsTitle": {
561
+ "default": "@config.itemsHeading",
562
+ "label": "Items heading",
563
+ "tier": "presentation",
564
+ "type": "string"
565
+ },
566
+ "patternForItems": {
567
+ "default": "@config.itemPattern",
568
+ "label": "How are the proposed items drawn?",
569
+ "tier": "presentation",
570
+ "type": "pattern"
571
+ },
572
+ "retryButton": {
573
+ "default": "@config.retryLabel",
574
+ "label": "Retry button",
575
+ "tier": "presentation",
576
+ "type": "string"
577
+ },
578
+ "reviseButton": {
579
+ "default": "@config.reviseLabel",
580
+ "label": "Revise button",
581
+ "tier": "presentation",
582
+ "type": "string"
583
+ },
584
+ "slot": {
585
+ "default": "@config.panelSlot",
586
+ "label": "Where the panel renders",
587
+ "tier": "internal",
588
+ "type": "slot"
589
+ },
590
+ "startButton": {
591
+ "default": "@config.startLabel",
592
+ "label": "Start button",
593
+ "tier": "presentation",
594
+ "type": "string"
595
+ },
596
+ "summaryTitle": {
597
+ "default": "@config.summaryHeading",
598
+ "label": "Summary heading",
599
+ "tier": "presentation",
600
+ "type": "string"
601
+ },
602
+ "withInputForm": {
603
+ "default": "@config.showInputForm",
604
+ "label": "Show a start form?",
605
+ "tier": "presentation",
606
+ "type": "boolean"
607
+ },
608
+ "workingText": {
609
+ "default": "@config.workingLabel",
610
+ "label": "While the agent works",
611
+ "tier": "presentation",
612
+ "type": "string"
613
+ }
614
+ },
615
+ "effectRow": [
616
+ {
617
+ "kind": "emit",
618
+ "resource": "PROPOSAL_APPROVED"
619
+ },
620
+ {
621
+ "kind": "emit",
622
+ "resource": "PROPOSAL_CANCELLED"
623
+ },
624
+ {
625
+ "kind": "emit",
626
+ "resource": "PROPOSAL_DISCARDED"
627
+ },
628
+ {
629
+ "kind": "emit",
630
+ "resource": "PROPOSAL_RUN_REQUESTED"
631
+ },
632
+ {
633
+ "kind": "render-ui",
634
+ "resolved": false,
635
+ "resource": "@config.slot"
636
+ },
637
+ {
638
+ "kind": "render-ui",
639
+ "resource": "toast"
640
+ },
641
+ {
642
+ "kind": "set",
643
+ "resource": "@entity.context"
644
+ },
645
+ {
646
+ "kind": "set",
647
+ "resource": "@entity.error"
648
+ },
649
+ {
650
+ "kind": "set",
651
+ "resource": "@entity.feedback"
652
+ },
653
+ {
654
+ "kind": "set",
655
+ "resource": "@entity.input"
656
+ },
657
+ {
658
+ "kind": "set",
659
+ "resource": "@entity.items"
660
+ },
661
+ {
662
+ "kind": "set",
663
+ "resource": "@entity.request"
664
+ },
665
+ {
666
+ "kind": "set",
667
+ "resource": "@entity.summary"
668
+ }
669
+ ],
670
+ "emits": [
671
+ {
672
+ "description": "The person approved the proposal as it stands. The app commits it; nothing has been written.",
673
+ "event": "PROPOSAL_APPROVED",
674
+ "eventId": "evt_01M45SA5BRXV2SDNT6GY3TH9EP",
675
+ "payloadSchema": [
676
+ {
677
+ "name": "proposal",
678
+ "properties": [
679
+ {
680
+ "name": "summary",
681
+ "type": "string"
682
+ },
683
+ {
684
+ "name": "items",
685
+ "type": "[Map<string,scalar>]"
686
+ }
687
+ ],
688
+ "required": true,
689
+ "type": "object"
690
+ }
691
+ ],
692
+ "scope": "external",
693
+ "synonyms": "approved, accepted, confirmed, go ahead, commit",
694
+ "tier": "domain"
695
+ },
696
+ {
697
+ "description": "The person discarded the proposal (or a failed run); nothing was committed.",
698
+ "event": "PROPOSAL_DISCARDED",
699
+ "eventId": "evt_01M45SA5BRPGDTE8CXRABXZWJB",
700
+ "scope": "external",
701
+ "synonyms": "rejected, dismissed, thrown away",
702
+ "tier": "domain"
703
+ },
704
+ {
705
+ "description": "The person cancelled while the agent was still working; its model call was aborted.",
706
+ "event": "PROPOSAL_CANCELLED",
707
+ "eventId": "evt_01M45SA5BR9KETRNM1N7TJHTCC",
708
+ "scope": "external",
709
+ "synonyms": "stopped, aborted",
710
+ "tier": "domain"
711
+ },
712
+ {
713
+ "description": "The agent was asked to work out (or revise) a proposal.",
714
+ "event": "PROPOSAL_RUN_REQUESTED",
715
+ "eventId": "evt_01M45SA5BRW7B48Y2Q13NH0QR6",
716
+ "payloadSchema": [
717
+ {
718
+ "entity": "AgentChatMessage",
719
+ "name": "messages",
720
+ "properties": [
721
+ {
722
+ "name": "role",
723
+ "type": "string"
724
+ },
725
+ {
726
+ "name": "content",
727
+ "required": true,
728
+ "type": "string"
729
+ }
730
+ ],
731
+ "required": true,
732
+ "type": "[object]"
733
+ }
734
+ ],
735
+ "scope": "external",
736
+ "synonyms": "run started, working",
737
+ "tier": "domain"
738
+ }
739
+ ],
740
+ "entityRefIds": {
741
+ "AgentProposalRun": "ent_01M45SA5BR84VGGGFNPDGF85XA"
742
+ },
743
+ "id": "trt_01M45SA5BRYA76DFG3SZJYDW9F",
744
+ "linkedEntity": "AgentProposalRun",
745
+ "linkedEntityId": "ent_01M45SA5BR84VGGGFNPDGF85XA",
746
+ "listens": [
747
+ {
748
+ "event": "PROPOSAL_LOOP_REPLIED",
749
+ "eventId": "evt_01M45SA5BRJM7JZ94BX45GSJCH",
750
+ "source": {
751
+ "kind": "trait",
752
+ "trait": "AgentProposalLoop",
753
+ "traitId": "trt_01M45SA5BRWYX6EH8SAZA3FS0G"
754
+ },
755
+ "triggers": "PROPOSAL_LOOP_REPLIED",
756
+ "triggersId": "evt_01M45SA5BRJM7JZ94BX45GSJCH"
757
+ },
758
+ {
759
+ "event": "PROPOSAL_LOOP_FAILED",
760
+ "eventId": "evt_01M45SA5BRM25WS278A2AS6YTC",
761
+ "source": {
762
+ "kind": "trait",
763
+ "trait": "AgentProposalLoop",
764
+ "traitId": "trt_01M45SA5BRWYX6EH8SAZA3FS0G"
765
+ },
766
+ "triggers": "PROPOSAL_LOOP_FAILED",
767
+ "triggersId": "evt_01M45SA5BRM25WS278A2AS6YTC"
768
+ }
769
+ ],
770
+ "name": "AgentProposalWorkflow",
771
+ "scope": "instance",
772
+ "stateMachine": {
773
+ "events": [
774
+ {
775
+ "description": "Submit the proposal for the person to review: a short summary and the list of proposed items, each a flat map of values. Call it once with everything; the person approves, asks for a revision, or discards it.",
776
+ "external": true,
777
+ "id": "evt_01M45SA5BRDK72EQBRHN6EBEVN",
778
+ "key": "PROPOSE",
779
+ "name": "Propose",
780
+ "payloadSchema": [
781
+ {
782
+ "name": "summary",
783
+ "type": "string"
784
+ },
785
+ {
786
+ "name": "items",
787
+ "required": true,
788
+ "type": "[Map<string,scalar>]"
789
+ }
790
+ ],
791
+ "synonyms": "propose, submit proposal, draft"
792
+ },
793
+ {
794
+ "id": "evt_01M45SA5BRYYN4AQ8JF9TRGMXS",
795
+ "key": "INIT",
796
+ "name": "Initialize"
797
+ },
798
+ {
799
+ "description": "The start form's text changed.",
800
+ "id": "evt_01M45SA5BRRMQGX2TWNYD0VTDE",
801
+ "key": "INPUT_CHANGED",
802
+ "name": "Input Changed",
803
+ "payloadSchema": [
804
+ {
805
+ "name": "value",
806
+ "type": "string"
807
+ }
808
+ ]
809
+ },
810
+ {
811
+ "description": "The overlay's own close control was used: cancels the agent's work while it runs, discards the proposal otherwise.",
812
+ "id": "evt_01M45TMFKBN981Z1TR2C20XMA5",
813
+ "key": "CLOSE",
814
+ "name": "Close"
815
+ },
816
+ {
817
+ "description": "Start from the text typed into the start form.",
818
+ "id": "evt_01M45SA5BR42DJGVHDPYYAAYAK",
819
+ "key": "START_TYPED",
820
+ "name": "Start Typed"
821
+ },
822
+ {
823
+ "description": "Work out a proposal from this: the documents or text the person handed over, and optional background.",
824
+ "id": "evt_01M45SA5BRZE323C3WF5M5KHYQ",
825
+ "key": "PROPOSAL_REQUESTED",
826
+ "name": "Proposal Requested",
827
+ "payloadSchema": [
828
+ {
829
+ "name": "input",
830
+ "required": true,
831
+ "type": "string"
832
+ },
833
+ {
834
+ "name": "context",
835
+ "type": "string"
836
+ }
837
+ ],
838
+ "synonyms": "start, propose, analyze, extract, begin"
839
+ },
840
+ {
841
+ "description": "The agent's run ended.",
842
+ "id": "evt_01M45SA5BRJM7JZ94BX45GSJCH",
843
+ "key": "PROPOSAL_LOOP_REPLIED",
844
+ "name": "Proposal Loop Replied",
845
+ "payloadSchema": [
846
+ {
847
+ "name": "reply",
848
+ "type": "string"
849
+ }
850
+ ]
851
+ },
852
+ {
853
+ "description": "The agent's run failed.",
854
+ "id": "evt_01M45SA5BRM25WS278A2AS6YTC",
855
+ "key": "PROPOSAL_LOOP_FAILED",
856
+ "name": "Proposal Loop Failed",
857
+ "payloadSchema": [
858
+ {
859
+ "name": "error",
860
+ "type": "string"
861
+ }
862
+ ]
863
+ },
864
+ {
865
+ "description": "Cancel the agent's work.",
866
+ "id": "evt_01M45SA5BRXBTHECE4D56PSSKT",
867
+ "key": "CANCEL",
868
+ "name": "Cancel"
869
+ },
870
+ {
871
+ "description": "The revision feedback changed.",
872
+ "id": "evt_01M45SA5BR7TFEZX6E1CDDCYVK",
873
+ "key": "FEEDBACK_CHANGED",
874
+ "name": "Feedback Changed",
875
+ "payloadSchema": [
876
+ {
877
+ "name": "value",
878
+ "type": "string"
879
+ }
880
+ ]
881
+ },
882
+ {
883
+ "description": "Approve the proposal.",
884
+ "id": "evt_01M45SA5BRXSD3K7GF98ND8WPS",
885
+ "key": "APPROVE",
886
+ "name": "Approve"
887
+ },
888
+ {
889
+ "description": "Ask for a revision with the written feedback.",
890
+ "id": "evt_01M45SA5BRHR5C4BS9VPPX9FYV",
891
+ "key": "REVISE",
892
+ "name": "Revise"
893
+ },
894
+ {
895
+ "description": "Discard the proposal.",
896
+ "id": "evt_01M45SA5BRRH2KQB64762EZGDK",
897
+ "key": "DISCARD",
898
+ "name": "Discard"
899
+ },
900
+ {
901
+ "description": "Run the agent again.",
902
+ "id": "evt_01M45SA5BRNBSAZDT8AWMS835W",
903
+ "key": "RETRY",
904
+ "name": "Retry"
905
+ },
906
+ {
907
+ "description": "The person approved the proposal as it stands. The app commits it; nothing has been written.",
908
+ "id": "evt_01M45SA5BRXV2SDNT6GY3TH9EP",
909
+ "key": "PROPOSAL_APPROVED",
910
+ "name": "Proposal Approved",
911
+ "payloadSchema": [
912
+ {
913
+ "name": "proposal",
914
+ "properties": [
915
+ {
916
+ "name": "summary",
917
+ "type": "string"
918
+ },
919
+ {
920
+ "name": "items",
921
+ "type": "[Map<string,scalar>]"
922
+ }
923
+ ],
924
+ "required": true,
925
+ "type": "object"
926
+ }
927
+ ],
928
+ "synonyms": "approved, accepted, confirmed, go ahead, commit",
929
+ "tier": "domain"
930
+ },
931
+ {
932
+ "description": "The person discarded the proposal (or a failed run); nothing was committed.",
933
+ "id": "evt_01M45SA5BRPGDTE8CXRABXZWJB",
934
+ "key": "PROPOSAL_DISCARDED",
935
+ "name": "Proposal Discarded",
936
+ "synonyms": "rejected, dismissed, thrown away",
937
+ "tier": "domain"
938
+ },
939
+ {
940
+ "description": "The person cancelled while the agent was still working; its model call was aborted.",
941
+ "id": "evt_01M45SA5BR9KETRNM1N7TJHTCC",
942
+ "key": "PROPOSAL_CANCELLED",
943
+ "name": "Proposal Cancelled",
944
+ "synonyms": "stopped, aborted",
945
+ "tier": "domain"
946
+ },
947
+ {
948
+ "description": "The agent was asked to work out (or revise) a proposal.",
949
+ "id": "evt_01M45SA5BRW7B48Y2Q13NH0QR6",
950
+ "key": "PROPOSAL_RUN_REQUESTED",
951
+ "name": "Proposal Run Requested",
952
+ "payloadSchema": [
953
+ {
954
+ "entity": "AgentChatMessage",
955
+ "name": "messages",
956
+ "properties": [
957
+ {
958
+ "name": "role",
959
+ "type": "string"
960
+ },
961
+ {
962
+ "name": "content",
963
+ "required": true,
964
+ "type": "string"
965
+ }
966
+ ],
967
+ "required": true,
968
+ "type": "[object]"
969
+ }
970
+ ],
971
+ "synonyms": "run started, working",
972
+ "tier": "domain"
973
+ }
974
+ ],
975
+ "states": [
976
+ {
977
+ "isInitial": true,
978
+ "name": "idle"
979
+ },
980
+ {
981
+ "name": "working"
982
+ },
983
+ {
984
+ "name": "review"
985
+ },
986
+ {
987
+ "name": "failed"
988
+ }
989
+ ],
990
+ "transitions": [
991
+ {
992
+ "event": "PROPOSE",
993
+ "eventId": "evt_01M45SA5BRDK72EQBRHN6EBEVN",
994
+ "from": "idle",
995
+ "to": "idle"
996
+ },
997
+ {
998
+ "effects": [
999
+ [
1000
+ "render-ui",
1001
+ "@config.slot",
1002
+ {
1003
+ "children": [
1004
+ {
1005
+ "align": "center",
1006
+ "children": [
1007
+ {
1008
+ "name": "@config.headingIcon",
1009
+ "size": "lg",
1010
+ "type": "icon"
1011
+ },
1012
+ {
1013
+ "content": "@config.heading",
1014
+ "type": "typography",
1015
+ "variant": "h3"
1016
+ }
1017
+ ],
1018
+ "direction": "horizontal",
1019
+ "gap": "sm",
1020
+ "type": "stack"
1021
+ },
1022
+ {
1023
+ "type": "divider"
1024
+ },
1025
+ {
1026
+ "label": "@config.inputText",
1027
+ "onChange": "INPUT_CHANGED",
1028
+ "rows": 6.0,
1029
+ "type": "textarea"
1030
+ },
1031
+ {
1032
+ "action": "START_TYPED",
1033
+ "icon": "sparkles",
1034
+ "label": "@config.startButton",
1035
+ "type": "button",
1036
+ "variant": "primary"
1037
+ }
1038
+ ],
1039
+ "direction": "vertical",
1040
+ "gap": "md",
1041
+ "type": "stack"
1042
+ }
1043
+ ]
1044
+ ],
1045
+ "event": "INIT",
1046
+ "eventId": "evt_01M45SA5BRYYN4AQ8JF9TRGMXS",
1047
+ "from": "idle",
1048
+ "guard": "@config.withInputForm",
1049
+ "to": "idle"
1050
+ },
1051
+ {
1052
+ "event": "INIT",
1053
+ "eventId": "evt_01M45SA5BRYYN4AQ8JF9TRGMXS",
1054
+ "from": "idle",
1055
+ "guard": [
1056
+ "not",
1057
+ "@config.withInputForm"
1058
+ ],
1059
+ "to": "idle"
1060
+ },
1061
+ {
1062
+ "effects": [
1063
+ [
1064
+ "set",
1065
+ "@entity.input",
1066
+ "@payload.value"
1067
+ ]
1068
+ ],
1069
+ "event": "INPUT_CHANGED",
1070
+ "eventId": "evt_01M45SA5BRRMQGX2TWNYD0VTDE",
1071
+ "from": "idle",
1072
+ "to": "idle"
1073
+ },
1074
+ {
1075
+ "effects": [
1076
+ [
1077
+ "render-ui",
1078
+ "@config.slot",
1079
+ null
1080
+ ]
1081
+ ],
1082
+ "event": "CLOSE",
1083
+ "eventId": "evt_01M45TMFKBN981Z1TR2C20XMA5",
1084
+ "from": "idle",
1085
+ "to": "idle"
1086
+ },
1087
+ {
1088
+ "effects": [
1089
+ [
1090
+ "set",
1091
+ "@entity.context",
1092
+ ""
1093
+ ],
1094
+ [
1095
+ "set",
1096
+ "@entity.request",
1097
+ [
1098
+ "str/concat",
1099
+ "@config.framing",
1100
+ "\n\n",
1101
+ "@entity.input"
1102
+ ]
1103
+ ],
1104
+ [
1105
+ "set",
1106
+ "@entity.feedback",
1107
+ ""
1108
+ ],
1109
+ [
1110
+ "emit",
1111
+ "PROPOSAL_RUN_REQUESTED",
1112
+ {
1113
+ "messages": [
1114
+ {
1115
+ "content": "@entity.request",
1116
+ "role": "user"
1117
+ }
1118
+ ]
1119
+ }
1120
+ ],
1121
+ [
1122
+ "render-ui",
1123
+ "@config.slot",
1124
+ {
1125
+ "children": [
1126
+ {
1127
+ "align": "center",
1128
+ "children": [
1129
+ {
1130
+ "size": "sm",
1131
+ "type": "spinner"
1132
+ },
1133
+ {
1134
+ "color": "muted",
1135
+ "content": "@config.workingText",
1136
+ "type": "typography",
1137
+ "variant": "caption"
1138
+ }
1139
+ ],
1140
+ "direction": "horizontal",
1141
+ "gap": "sm",
1142
+ "role": "status",
1143
+ "type": "stack"
1144
+ },
1145
+ {
1146
+ "action": "CANCEL",
1147
+ "icon": "x",
1148
+ "label": "@config.cancelButton",
1149
+ "type": "button",
1150
+ "variant": "ghost"
1151
+ }
1152
+ ],
1153
+ "direction": "vertical",
1154
+ "gap": "md",
1155
+ "type": "stack"
1156
+ }
1157
+ ]
1158
+ ],
1159
+ "event": "START_TYPED",
1160
+ "eventId": "evt_01M45SA5BR42DJGVHDPYYAAYAK",
1161
+ "from": "idle",
1162
+ "guard": [
1163
+ "!=",
1164
+ [
1165
+ "str/default",
1166
+ "@entity.input",
1167
+ ""
1168
+ ],
1169
+ ""
1170
+ ],
1171
+ "to": "working"
1172
+ },
1173
+ {
1174
+ "effects": [
1175
+ [
1176
+ "set",
1177
+ "@entity.input",
1178
+ "@payload.input"
1179
+ ],
1180
+ [
1181
+ "set",
1182
+ "@entity.context",
1183
+ [
1184
+ "str/default",
1185
+ "@payload.context",
1186
+ ""
1187
+ ]
1188
+ ],
1189
+ [
1190
+ "set",
1191
+ "@entity.request",
1192
+ [
1193
+ "if",
1194
+ [
1195
+ "=",
1196
+ [
1197
+ "str/default",
1198
+ "@payload.context",
1199
+ ""
1200
+ ],
1201
+ ""
1202
+ ],
1203
+ [
1204
+ "str/concat",
1205
+ "@config.framing",
1206
+ "\n\n",
1207
+ "@payload.input"
1208
+ ],
1209
+ [
1210
+ "str/concat",
1211
+ "@config.framing",
1212
+ "\n\n",
1213
+ "@payload.input",
1214
+ "\n\nBackground:\n",
1215
+ "@payload.context"
1216
+ ]
1217
+ ]
1218
+ ],
1219
+ [
1220
+ "set",
1221
+ "@entity.feedback",
1222
+ ""
1223
+ ],
1224
+ [
1225
+ "emit",
1226
+ "PROPOSAL_RUN_REQUESTED",
1227
+ {
1228
+ "messages": [
1229
+ {
1230
+ "content": "@entity.request",
1231
+ "role": "user"
1232
+ }
1233
+ ]
1234
+ }
1235
+ ],
1236
+ [
1237
+ "render-ui",
1238
+ "@config.slot",
1239
+ {
1240
+ "children": [
1241
+ {
1242
+ "align": "center",
1243
+ "children": [
1244
+ {
1245
+ "size": "sm",
1246
+ "type": "spinner"
1247
+ },
1248
+ {
1249
+ "color": "muted",
1250
+ "content": "@config.workingText",
1251
+ "type": "typography",
1252
+ "variant": "caption"
1253
+ }
1254
+ ],
1255
+ "direction": "horizontal",
1256
+ "gap": "sm",
1257
+ "role": "status",
1258
+ "type": "stack"
1259
+ },
1260
+ {
1261
+ "action": "CANCEL",
1262
+ "icon": "x",
1263
+ "label": "@config.cancelButton",
1264
+ "type": "button",
1265
+ "variant": "ghost"
1266
+ }
1267
+ ],
1268
+ "direction": "vertical",
1269
+ "gap": "md",
1270
+ "type": "stack"
1271
+ }
1272
+ ]
1273
+ ],
1274
+ "event": "PROPOSAL_REQUESTED",
1275
+ "eventId": "evt_01M45SA5BRZE323C3WF5M5KHYQ",
1276
+ "from": "idle",
1277
+ "to": "working"
1278
+ },
1279
+ {
1280
+ "effects": [
1281
+ [
1282
+ "set",
1283
+ "@entity.summary",
1284
+ [
1285
+ "str/default",
1286
+ "@payload.summary",
1287
+ ""
1288
+ ]
1289
+ ],
1290
+ [
1291
+ "set",
1292
+ "@entity.items",
1293
+ "@payload.items"
1294
+ ],
1295
+ [
1296
+ "render-ui",
1297
+ "@config.slot",
1298
+ {
1299
+ "children": [
1300
+ {
1301
+ "align": "center",
1302
+ "children": [
1303
+ {
1304
+ "name": "@config.headingIcon",
1305
+ "size": "lg",
1306
+ "type": "icon"
1307
+ },
1308
+ {
1309
+ "content": "@config.heading",
1310
+ "type": "typography",
1311
+ "variant": "h3"
1312
+ }
1313
+ ],
1314
+ "direction": "horizontal",
1315
+ "gap": "sm",
1316
+ "type": "stack"
1317
+ },
1318
+ {
1319
+ "type": "divider"
1320
+ },
1321
+ {
1322
+ "content": "@config.summaryTitle",
1323
+ "type": "typography",
1324
+ "variant": "h4"
1325
+ },
1326
+ {
1327
+ "content": "@entity.summary",
1328
+ "type": "typography",
1329
+ "variant": "body"
1330
+ },
1331
+ {
1332
+ "content": "@config.itemsTitle",
1333
+ "type": "typography",
1334
+ "variant": "h4"
1335
+ },
1336
+ {
1337
+ "entity": "@entity.items",
1338
+ "fields": "@config.fieldsForItems",
1339
+ "gap": "sm",
1340
+ "type": "@config.patternForItems"
1341
+ },
1342
+ {
1343
+ "type": "divider"
1344
+ },
1345
+ {
1346
+ "label": "@config.feedbackText",
1347
+ "onChange": "FEEDBACK_CHANGED",
1348
+ "rows": 3.0,
1349
+ "type": "textarea"
1350
+ },
1351
+ {
1352
+ "align": "center",
1353
+ "children": [
1354
+ {
1355
+ "action": "APPROVE",
1356
+ "icon": "check",
1357
+ "label": "@config.approveButton",
1358
+ "type": "button",
1359
+ "variant": "primary"
1360
+ },
1361
+ {
1362
+ "action": "REVISE",
1363
+ "icon": "refresh-cw",
1364
+ "label": "@config.reviseButton",
1365
+ "type": "button",
1366
+ "variant": "secondary"
1367
+ },
1368
+ {
1369
+ "action": "DISCARD",
1370
+ "icon": "x",
1371
+ "label": "@config.discardButton",
1372
+ "type": "button",
1373
+ "variant": "ghost"
1374
+ }
1375
+ ],
1376
+ "direction": "horizontal",
1377
+ "gap": "sm",
1378
+ "type": "stack",
1379
+ "wrap": true
1380
+ }
1381
+ ],
1382
+ "direction": "vertical",
1383
+ "gap": "md",
1384
+ "type": "stack"
1385
+ }
1386
+ ]
1387
+ ],
1388
+ "event": "PROPOSE",
1389
+ "eventId": "evt_01M45SA5BRDK72EQBRHN6EBEVN",
1390
+ "from": "working",
1391
+ "to": "review"
1392
+ },
1393
+ {
1394
+ "effects": [
1395
+ [
1396
+ "set",
1397
+ "@entity.error",
1398
+ "The agent finished without making a proposal."
1399
+ ],
1400
+ [
1401
+ "render-ui",
1402
+ "@config.slot",
1403
+ {
1404
+ "children": [
1405
+ {
1406
+ "message": "@entity.error",
1407
+ "type": "alert",
1408
+ "variant": "error"
1409
+ },
1410
+ {
1411
+ "align": "center",
1412
+ "children": [
1413
+ {
1414
+ "action": "RETRY",
1415
+ "icon": "refresh-cw",
1416
+ "label": "@config.retryButton",
1417
+ "type": "button",
1418
+ "variant": "primary"
1419
+ },
1420
+ {
1421
+ "action": "DISCARD",
1422
+ "icon": "x",
1423
+ "label": "@config.discardButton",
1424
+ "type": "button",
1425
+ "variant": "ghost"
1426
+ }
1427
+ ],
1428
+ "direction": "horizontal",
1429
+ "gap": "sm",
1430
+ "type": "stack"
1431
+ }
1432
+ ],
1433
+ "direction": "vertical",
1434
+ "gap": "md",
1435
+ "type": "stack"
1436
+ }
1437
+ ]
1438
+ ],
1439
+ "event": "PROPOSAL_LOOP_REPLIED",
1440
+ "eventId": "evt_01M45SA5BRJM7JZ94BX45GSJCH",
1441
+ "from": "working",
1442
+ "to": "failed"
1443
+ },
1444
+ {
1445
+ "effects": [
1446
+ [
1447
+ "set",
1448
+ "@entity.error",
1449
+ "@payload.error"
1450
+ ],
1451
+ [
1452
+ "render-ui",
1453
+ "@config.slot",
1454
+ {
1455
+ "children": [
1456
+ {
1457
+ "message": "@entity.error",
1458
+ "type": "alert",
1459
+ "variant": "error"
1460
+ },
1461
+ {
1462
+ "align": "center",
1463
+ "children": [
1464
+ {
1465
+ "action": "RETRY",
1466
+ "icon": "refresh-cw",
1467
+ "label": "@config.retryButton",
1468
+ "type": "button",
1469
+ "variant": "primary"
1470
+ },
1471
+ {
1472
+ "action": "DISCARD",
1473
+ "icon": "x",
1474
+ "label": "@config.discardButton",
1475
+ "type": "button",
1476
+ "variant": "ghost"
1477
+ }
1478
+ ],
1479
+ "direction": "horizontal",
1480
+ "gap": "sm",
1481
+ "type": "stack"
1482
+ }
1483
+ ],
1484
+ "direction": "vertical",
1485
+ "gap": "md",
1486
+ "type": "stack"
1487
+ }
1488
+ ]
1489
+ ],
1490
+ "event": "PROPOSAL_LOOP_FAILED",
1491
+ "eventId": "evt_01M45SA5BRM25WS278A2AS6YTC",
1492
+ "from": "working",
1493
+ "to": "failed"
1494
+ },
1495
+ {
1496
+ "effects": [
1497
+ [
1498
+ "emit",
1499
+ "PROPOSAL_CANCELLED",
1500
+ {}
1501
+ ]
1502
+ ],
1503
+ "event": "CANCEL",
1504
+ "eventId": "evt_01M45SA5BRXBTHECE4D56PSSKT",
1505
+ "from": "working",
1506
+ "guard": [
1507
+ "==",
1508
+ "@config.slot",
1509
+ "main"
1510
+ ],
1511
+ "to": "idle"
1512
+ },
1513
+ {
1514
+ "effects": [
1515
+ [
1516
+ "emit",
1517
+ "PROPOSAL_CANCELLED",
1518
+ {}
1519
+ ],
1520
+ [
1521
+ "render-ui",
1522
+ "@config.slot",
1523
+ null
1524
+ ]
1525
+ ],
1526
+ "event": "CANCEL",
1527
+ "eventId": "evt_01M45SA5BRXBTHECE4D56PSSKT",
1528
+ "from": "working",
1529
+ "guard": [
1530
+ "!=",
1531
+ "@config.slot",
1532
+ "main"
1533
+ ],
1534
+ "to": "idle"
1535
+ },
1536
+ {
1537
+ "effects": [
1538
+ [
1539
+ "emit",
1540
+ "PROPOSAL_CANCELLED",
1541
+ {}
1542
+ ],
1543
+ [
1544
+ "render-ui",
1545
+ "@config.slot",
1546
+ null
1547
+ ]
1548
+ ],
1549
+ "event": "CLOSE",
1550
+ "eventId": "evt_01M45TMFKBN981Z1TR2C20XMA5",
1551
+ "from": "working",
1552
+ "to": "idle"
1553
+ },
1554
+ {
1555
+ "effects": [
1556
+ [
1557
+ "set",
1558
+ "@entity.feedback",
1559
+ "@payload.value"
1560
+ ]
1561
+ ],
1562
+ "event": "FEEDBACK_CHANGED",
1563
+ "eventId": "evt_01M45SA5BR7TFEZX6E1CDDCYVK",
1564
+ "from": "review",
1565
+ "to": "review"
1566
+ },
1567
+ {
1568
+ "effects": [
1569
+ [
1570
+ "set",
1571
+ "@entity.summary",
1572
+ [
1573
+ "str/default",
1574
+ "@payload.summary",
1575
+ ""
1576
+ ]
1577
+ ],
1578
+ [
1579
+ "set",
1580
+ "@entity.items",
1581
+ "@payload.items"
1582
+ ]
1583
+ ],
1584
+ "event": "PROPOSE",
1585
+ "eventId": "evt_01M45SA5BRDK72EQBRHN6EBEVN",
1586
+ "from": "review",
1587
+ "to": "review"
1588
+ },
1589
+ {
1590
+ "effects": [
1591
+ [
1592
+ "emit",
1593
+ "PROPOSAL_APPROVED",
1594
+ {
1595
+ "proposal": {
1596
+ "items": "@entity.items",
1597
+ "summary": "@entity.summary"
1598
+ }
1599
+ }
1600
+ ]
1601
+ ],
1602
+ "event": "APPROVE",
1603
+ "eventId": "evt_01M45SA5BRXSD3K7GF98ND8WPS",
1604
+ "from": "review",
1605
+ "guard": [
1606
+ "==",
1607
+ "@config.slot",
1608
+ "main"
1609
+ ],
1610
+ "to": "idle"
1611
+ },
1612
+ {
1613
+ "effects": [
1614
+ [
1615
+ "emit",
1616
+ "PROPOSAL_APPROVED",
1617
+ {
1618
+ "proposal": {
1619
+ "items": "@entity.items",
1620
+ "summary": "@entity.summary"
1621
+ }
1622
+ }
1623
+ ],
1624
+ [
1625
+ "render-ui",
1626
+ "@config.slot",
1627
+ null
1628
+ ]
1629
+ ],
1630
+ "event": "APPROVE",
1631
+ "eventId": "evt_01M45SA5BRXSD3K7GF98ND8WPS",
1632
+ "from": "review",
1633
+ "guard": [
1634
+ "!=",
1635
+ "@config.slot",
1636
+ "main"
1637
+ ],
1638
+ "to": "idle"
1639
+ },
1640
+ {
1641
+ "effects": [
1642
+ [
1643
+ "set",
1644
+ "@entity.request",
1645
+ [
1646
+ "str/concat",
1647
+ "@entity.request",
1648
+ "\n\nYour earlier proposal:\n",
1649
+ [
1650
+ "json/stringify",
1651
+ {
1652
+ "items": "@entity.items",
1653
+ "summary": "@entity.summary"
1654
+ }
1655
+ ],
1656
+ "\n\nRevise it: ",
1657
+ "@entity.feedback"
1658
+ ]
1659
+ ],
1660
+ [
1661
+ "emit",
1662
+ "PROPOSAL_RUN_REQUESTED",
1663
+ {
1664
+ "messages": [
1665
+ {
1666
+ "content": "@entity.request",
1667
+ "role": "user"
1668
+ }
1669
+ ]
1670
+ }
1671
+ ],
1672
+ [
1673
+ "set",
1674
+ "@entity.feedback",
1675
+ ""
1676
+ ]
1677
+ ],
1678
+ "event": "REVISE",
1679
+ "eventId": "evt_01M45SA5BRHR5C4BS9VPPX9FYV",
1680
+ "from": "review",
1681
+ "guard": [
1682
+ "!=",
1683
+ [
1684
+ "str/default",
1685
+ "@entity.feedback",
1686
+ ""
1687
+ ],
1688
+ ""
1689
+ ],
1690
+ "to": "working"
1691
+ },
1692
+ {
1693
+ "effects": [
1694
+ [
1695
+ "render-ui",
1696
+ "toast",
1697
+ {
1698
+ "dismissible": true,
1699
+ "message": "Say what should change before asking for a revision.",
1700
+ "type": "alert",
1701
+ "variant": "warning"
1702
+ }
1703
+ ]
1704
+ ],
1705
+ "event": "REVISE",
1706
+ "eventId": "evt_01M45SA5BRHR5C4BS9VPPX9FYV",
1707
+ "from": "review",
1708
+ "guard": [
1709
+ "=",
1710
+ [
1711
+ "str/default",
1712
+ "@entity.feedback",
1713
+ ""
1714
+ ],
1715
+ ""
1716
+ ],
1717
+ "to": "review"
1718
+ },
1719
+ {
1720
+ "effects": [
1721
+ [
1722
+ "emit",
1723
+ "PROPOSAL_DISCARDED",
1724
+ {}
1725
+ ]
1726
+ ],
1727
+ "event": "DISCARD",
1728
+ "eventId": "evt_01M45SA5BRRH2KQB64762EZGDK",
1729
+ "from": "review",
1730
+ "guard": [
1731
+ "==",
1732
+ "@config.slot",
1733
+ "main"
1734
+ ],
1735
+ "to": "idle"
1736
+ },
1737
+ {
1738
+ "effects": [
1739
+ [
1740
+ "emit",
1741
+ "PROPOSAL_DISCARDED",
1742
+ {}
1743
+ ],
1744
+ [
1745
+ "render-ui",
1746
+ "@config.slot",
1747
+ null
1748
+ ]
1749
+ ],
1750
+ "event": "DISCARD",
1751
+ "eventId": "evt_01M45SA5BRRH2KQB64762EZGDK",
1752
+ "from": "review",
1753
+ "guard": [
1754
+ "!=",
1755
+ "@config.slot",
1756
+ "main"
1757
+ ],
1758
+ "to": "idle"
1759
+ },
1760
+ {
1761
+ "effects": [
1762
+ [
1763
+ "emit",
1764
+ "PROPOSAL_DISCARDED",
1765
+ {}
1766
+ ],
1767
+ [
1768
+ "render-ui",
1769
+ "@config.slot",
1770
+ null
1771
+ ]
1772
+ ],
1773
+ "event": "CLOSE",
1774
+ "eventId": "evt_01M45TMFKBN981Z1TR2C20XMA5",
1775
+ "from": "review",
1776
+ "to": "idle"
1777
+ },
1778
+ {
1779
+ "effects": [
1780
+ [
1781
+ "emit",
1782
+ "PROPOSAL_RUN_REQUESTED",
1783
+ {
1784
+ "messages": [
1785
+ {
1786
+ "content": "@entity.request",
1787
+ "role": "user"
1788
+ }
1789
+ ]
1790
+ }
1791
+ ]
1792
+ ],
1793
+ "event": "RETRY",
1794
+ "eventId": "evt_01M45SA5BRNBSAZDT8AWMS835W",
1795
+ "from": "failed",
1796
+ "to": "working"
1797
+ },
1798
+ {
1799
+ "effects": [
1800
+ [
1801
+ "emit",
1802
+ "PROPOSAL_DISCARDED",
1803
+ {}
1804
+ ]
1805
+ ],
1806
+ "event": "DISCARD",
1807
+ "eventId": "evt_01M45SA5BRRH2KQB64762EZGDK",
1808
+ "from": "failed",
1809
+ "guard": [
1810
+ "==",
1811
+ "@config.slot",
1812
+ "main"
1813
+ ],
1814
+ "to": "idle"
1815
+ },
1816
+ {
1817
+ "effects": [
1818
+ [
1819
+ "emit",
1820
+ "PROPOSAL_DISCARDED",
1821
+ {}
1822
+ ],
1823
+ [
1824
+ "render-ui",
1825
+ "@config.slot",
1826
+ null
1827
+ ]
1828
+ ],
1829
+ "event": "DISCARD",
1830
+ "eventId": "evt_01M45SA5BRRH2KQB64762EZGDK",
1831
+ "from": "failed",
1832
+ "guard": [
1833
+ "!=",
1834
+ "@config.slot",
1835
+ "main"
1836
+ ],
1837
+ "to": "idle"
1838
+ },
1839
+ {
1840
+ "effects": [
1841
+ [
1842
+ "emit",
1843
+ "PROPOSAL_DISCARDED",
1844
+ {}
1845
+ ],
1846
+ [
1847
+ "render-ui",
1848
+ "@config.slot",
1849
+ null
1850
+ ]
1851
+ ],
1852
+ "event": "CLOSE",
1853
+ "eventId": "evt_01M45TMFKBN981Z1TR2C20XMA5",
1854
+ "from": "failed",
1855
+ "to": "idle"
1856
+ }
1857
+ ]
1858
+ }
1859
+ },
1860
+ {
1861
+ "config": {
1862
+ "cancelKey": {
1863
+ "default": "agent-proposal",
1864
+ "type": "unknown"
1865
+ },
1866
+ "instructions": {
1867
+ "default": "@config.instructions",
1868
+ "type": "unknown"
1869
+ },
1870
+ "maxSteps": {
1871
+ "default": "@config.maxSteps",
1872
+ "type": "unknown"
1873
+ },
1874
+ "quiet": {
1875
+ "default": true,
1876
+ "type": "unknown"
1877
+ },
1878
+ "tools": {
1879
+ "default": "@config.tools",
1880
+ "type": "unknown"
1881
+ }
1882
+ },
1883
+ "events": {
1884
+ "ASSISTANT_REPLIED": "PROPOSAL_LOOP_REPLIED",
1885
+ "ASSISTANT_REPLY_FAILED": "PROPOSAL_LOOP_FAILED"
1886
+ },
1887
+ "id": "trt_01M45SA5BRWYX6EH8SAZA3FS0G",
1888
+ "listens": [
1889
+ {
1890
+ "event": "PROPOSAL_RUN_REQUESTED",
1891
+ "source": {
1892
+ "kind": "trait",
1893
+ "trait": "AgentProposalWorkflow"
1894
+ },
1895
+ "triggers": "CONVERSE"
1896
+ },
1897
+ {
1898
+ "event": "PROPOSAL_CANCELLED",
1899
+ "source": {
1900
+ "kind": "trait",
1901
+ "trait": "AgentProposalWorkflow"
1902
+ },
1903
+ "triggers": "CANCEL"
1904
+ }
1905
+ ],
1906
+ "name": "AgentProposalLoop",
1907
+ "ref": "Loop.traits.AgentToolLoop"
1908
+ }
1909
+ ],
1910
+ "types": {
1911
+ "AgentChatMessage": [
1912
+ {
1913
+ "name": "role",
1914
+ "type": "string"
1915
+ },
1916
+ {
1917
+ "name": "content",
1918
+ "required": true,
1919
+ "type": "string"
1920
+ }
1921
+ ],
1922
+ "AgentTool": [
1923
+ {
1924
+ "name": "event",
1925
+ "type": "event"
1926
+ },
1927
+ {
1928
+ "name": "read",
1929
+ "type": "string"
1930
+ },
1931
+ {
1932
+ "name": "scope",
1933
+ "type": "string"
1934
+ }
1935
+ ],
1936
+ "ProposalField": [
1937
+ {
1938
+ "name": "name",
1939
+ "required": true,
1940
+ "type": "string"
1941
+ },
1942
+ {
1943
+ "name": "label",
1944
+ "type": "string"
1945
+ },
1946
+ {
1947
+ "name": "variant",
1948
+ "type": "string"
1949
+ }
1950
+ ],
1951
+ "ProposalPayload": [
1952
+ {
1953
+ "name": "summary",
1954
+ "type": "string"
1955
+ },
1956
+ {
1957
+ "name": "items",
1958
+ "type": "[Map<string,scalar>]"
1959
+ }
1960
+ ]
1961
+ },
1962
+ "uses": [
1963
+ {
1964
+ "as": "Loop",
1965
+ "from": "std/behaviors/std-agent-tool-loop"
1966
+ }
1967
+ ]
1968
+ }
1969
+ ],
1970
+ "schemaVersion": 1,
1971
+ "version": "1.0.0"
1972
+ }