@contractspec/example.agent-console 3.7.6 → 3.8.2

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 (288) hide show
  1. package/.turbo/turbo-build.log +126 -105
  2. package/AGENTS.md +52 -31
  3. package/CHANGELOG.md +29 -0
  4. package/README.md +112 -83
  5. package/dist/agent/agent.event.js +1 -1
  6. package/dist/agent/agent.handler.d.ts +3 -0
  7. package/dist/agent/agent.handler.js +730 -1
  8. package/dist/agent/agent.operation.js +1 -1
  9. package/dist/agent/index.d.ts +5 -5
  10. package/dist/agent/index.js +74 -73
  11. package/dist/agent.feature.js +179 -0
  12. package/dist/browser/agent/agent.event.js +1 -1
  13. package/dist/browser/agent/agent.handler.js +730 -1
  14. package/dist/browser/agent/agent.operation.js +1 -1
  15. package/dist/browser/agent/index.js +74 -73
  16. package/dist/browser/agent.feature.js +179 -0
  17. package/dist/browser/docs/agent-console.docblock.js +11 -8
  18. package/dist/browser/docs/index.js +11 -8
  19. package/dist/browser/example.js +2 -3
  20. package/dist/browser/handlers/agent.handlers.js +1883 -2
  21. package/dist/browser/handlers/index.js +2142 -8
  22. package/dist/browser/index.js +4075 -3161
  23. package/dist/browser/presentations/index.js +51 -51
  24. package/dist/browser/run/index.js +380 -374
  25. package/dist/browser/run/run.event.js +2 -2
  26. package/dist/browser/run/run.handler.js +666 -1
  27. package/dist/browser/run/run.presentation.js +2 -2
  28. package/dist/browser/shared/index.js +293 -1
  29. package/dist/browser/shared/mock-runs.js +5 -0
  30. package/dist/browser/tool/index.js +161 -161
  31. package/dist/browser/tool/tool.event.js +1 -1
  32. package/dist/browser/tool/tool.handler.js +479 -3
  33. package/dist/browser/tool/tool.presentation.js +2 -2
  34. package/dist/browser/ui/AgentDashboard.js +1816 -931
  35. package/dist/browser/ui/AgentDashboard.visualizations.js +217 -0
  36. package/dist/browser/ui/AgentRunList.js +360 -128
  37. package/dist/browser/ui/AgentToolRegistry.js +9 -9
  38. package/dist/browser/ui/hooks/index.js +611 -161
  39. package/dist/browser/ui/hooks/useAgentList.js +1 -1
  40. package/dist/browser/ui/hooks/useAgentMutations.js +444 -9
  41. package/dist/browser/ui/hooks/useRunList.js +26 -11
  42. package/dist/browser/ui/hooks/useToolList.js +1 -1
  43. package/dist/browser/ui/index.js +2161 -1258
  44. package/dist/browser/ui/modals/AgentActionsModal.js +13 -13
  45. package/dist/browser/ui/modals/CreateAgentModal.js +15 -15
  46. package/dist/browser/ui/modals/index.js +297 -297
  47. package/dist/browser/ui/renderers/agent-list.markdown.js +14 -5
  48. package/dist/browser/ui/renderers/agent-list.renderer.js +7 -7
  49. package/dist/browser/ui/renderers/dashboard.markdown.js +207 -36
  50. package/dist/browser/ui/renderers/index.js +359 -163
  51. package/dist/browser/ui/renderers/run-list.markdown.js +9 -4
  52. package/dist/browser/ui/renderers/tool-registry.markdown.js +15 -4
  53. package/dist/browser/ui/views/AgentListView.js +7 -7
  54. package/dist/browser/ui/views/RunDataTable.js +326 -0
  55. package/dist/browser/ui/views/RunListView.js +360 -128
  56. package/dist/browser/ui/views/ToolRegistryView.js +9 -9
  57. package/dist/browser/ui/views/index.js +478 -246
  58. package/dist/browser/ui/views/run-data-table.columns.js +271 -0
  59. package/dist/browser/ui/views/run-list.shared.js +177 -0
  60. package/dist/browser/visualizations/catalog.js +134 -0
  61. package/dist/browser/visualizations/index.js +187 -0
  62. package/dist/browser/visualizations/selectors.js +181 -0
  63. package/dist/docs/agent-console.docblock.js +11 -8
  64. package/dist/docs/index.js +11 -8
  65. package/dist/example.js +2 -3
  66. package/dist/example.test.d.ts +1 -0
  67. package/dist/handlers/agent.handlers.d.ts +2 -0
  68. package/dist/handlers/agent.handlers.js +1883 -2
  69. package/dist/handlers/index.d.ts +2 -4
  70. package/dist/handlers/index.js +2142 -8
  71. package/dist/handlers/mock-handlers.test.d.ts +1 -0
  72. package/dist/index.d.ts +6 -4
  73. package/dist/index.js +4075 -3161
  74. package/dist/node/agent/agent.event.js +1 -1
  75. package/dist/node/agent/agent.handler.js +730 -1
  76. package/dist/node/agent/agent.operation.js +1 -1
  77. package/dist/node/agent/index.js +74 -73
  78. package/dist/node/agent.feature.js +179 -0
  79. package/dist/node/docs/agent-console.docblock.js +11 -8
  80. package/dist/node/docs/index.js +11 -8
  81. package/dist/node/example.js +2 -3
  82. package/dist/node/handlers/agent.handlers.js +1883 -2
  83. package/dist/node/handlers/index.js +2142 -8
  84. package/dist/node/index.js +4075 -3161
  85. package/dist/node/presentations/index.js +51 -51
  86. package/dist/node/run/index.js +380 -374
  87. package/dist/node/run/run.event.js +2 -2
  88. package/dist/node/run/run.handler.js +666 -1
  89. package/dist/node/run/run.presentation.js +2 -2
  90. package/dist/node/shared/index.js +293 -1
  91. package/dist/node/shared/mock-runs.js +5 -0
  92. package/dist/node/tool/index.js +161 -161
  93. package/dist/node/tool/tool.event.js +1 -1
  94. package/dist/node/tool/tool.handler.js +479 -3
  95. package/dist/node/tool/tool.presentation.js +2 -2
  96. package/dist/node/ui/AgentDashboard.js +1816 -931
  97. package/dist/node/ui/AgentDashboard.visualizations.js +217 -0
  98. package/dist/node/ui/AgentRunList.js +360 -128
  99. package/dist/node/ui/AgentToolRegistry.js +9 -9
  100. package/dist/node/ui/hooks/index.js +611 -161
  101. package/dist/node/ui/hooks/useAgentList.js +1 -1
  102. package/dist/node/ui/hooks/useAgentMutations.js +444 -9
  103. package/dist/node/ui/hooks/useRunList.js +26 -11
  104. package/dist/node/ui/hooks/useToolList.js +1 -1
  105. package/dist/node/ui/index.js +2161 -1258
  106. package/dist/node/ui/modals/AgentActionsModal.js +13 -13
  107. package/dist/node/ui/modals/CreateAgentModal.js +15 -15
  108. package/dist/node/ui/modals/index.js +297 -297
  109. package/dist/node/ui/renderers/agent-list.markdown.js +14 -5
  110. package/dist/node/ui/renderers/agent-list.renderer.js +7 -7
  111. package/dist/node/ui/renderers/dashboard.markdown.js +207 -36
  112. package/dist/node/ui/renderers/index.js +359 -163
  113. package/dist/node/ui/renderers/run-list.markdown.js +9 -4
  114. package/dist/node/ui/renderers/tool-registry.markdown.js +15 -4
  115. package/dist/node/ui/views/AgentListView.js +7 -7
  116. package/dist/node/ui/views/RunDataTable.js +326 -0
  117. package/dist/node/ui/views/RunListView.js +360 -128
  118. package/dist/node/ui/views/ToolRegistryView.js +9 -9
  119. package/dist/node/ui/views/index.js +478 -246
  120. package/dist/node/ui/views/run-data-table.columns.js +271 -0
  121. package/dist/node/ui/views/run-list.shared.js +177 -0
  122. package/dist/node/visualizations/catalog.js +134 -0
  123. package/dist/node/visualizations/index.js +187 -0
  124. package/dist/node/visualizations/selectors.js +181 -0
  125. package/dist/presentations/index.d.ts +3 -5
  126. package/dist/presentations/index.js +51 -51
  127. package/dist/proof/index.d.ts +2 -0
  128. package/dist/proof/meetup-proof.d.ts +10 -0
  129. package/dist/proof/meetup-proof.runtime.d.ts +22 -0
  130. package/dist/proof/meetup-proof.scenario.d.ts +2 -0
  131. package/dist/proof/meetup-proof.suite.d.ts +1 -0
  132. package/dist/proof/meetup-proof.test.d.ts +1 -0
  133. package/dist/run/index.d.ts +7 -7
  134. package/dist/run/index.js +380 -374
  135. package/dist/run/run.event.js +2 -2
  136. package/dist/run/run.handler.d.ts +7 -0
  137. package/dist/run/run.handler.js +666 -1
  138. package/dist/run/run.presentation.js +2 -2
  139. package/dist/shared/demo-dashboard-data.d.ts +16 -0
  140. package/dist/shared/demo-runtime-seed.d.ts +17 -0
  141. package/dist/shared/demo-runtime.d.ts +8 -0
  142. package/dist/shared/demo-runtime.test.d.ts +1 -0
  143. package/dist/shared/index.d.ts +4 -1
  144. package/dist/shared/index.js +293 -1
  145. package/dist/shared/mock-runs.d.ts +4 -0
  146. package/dist/shared/mock-runs.js +5 -0
  147. package/dist/tool/index.d.ts +7 -7
  148. package/dist/tool/index.js +161 -161
  149. package/dist/tool/tool.event.js +1 -1
  150. package/dist/tool/tool.handler.d.ts +3 -0
  151. package/dist/tool/tool.handler.js +479 -3
  152. package/dist/tool/tool.presentation.js +2 -2
  153. package/dist/ui/AgentDashboard.js +1816 -931
  154. package/dist/ui/AgentDashboard.sandbox.test.d.ts +1 -0
  155. package/dist/ui/AgentDashboard.visualizations.d.ts +4 -0
  156. package/dist/ui/AgentDashboard.visualizations.js +218 -0
  157. package/dist/ui/AgentRunList.js +360 -128
  158. package/dist/ui/AgentToolRegistry.js +9 -9
  159. package/dist/ui/hooks/index.d.ts +4 -4
  160. package/dist/ui/hooks/index.js +611 -161
  161. package/dist/ui/hooks/useAgentList.d.ts +5 -0
  162. package/dist/ui/hooks/useAgentList.js +1 -1
  163. package/dist/ui/hooks/useAgentMutations.d.ts +9 -2
  164. package/dist/ui/hooks/useAgentMutations.js +444 -9
  165. package/dist/ui/hooks/useRunList.d.ts +13 -2
  166. package/dist/ui/hooks/useRunList.js +26 -11
  167. package/dist/ui/hooks/useToolList.d.ts +5 -0
  168. package/dist/ui/hooks/useToolList.js +1 -1
  169. package/dist/ui/index.d.ts +3 -3
  170. package/dist/ui/index.js +2161 -1258
  171. package/dist/ui/modals/AgentActionsModal.js +13 -13
  172. package/dist/ui/modals/CreateAgentModal.js +15 -15
  173. package/dist/ui/modals/index.d.ts +1 -1
  174. package/dist/ui/modals/index.js +297 -297
  175. package/dist/ui/renderers/agent-list.markdown.d.ts +5 -0
  176. package/dist/ui/renderers/agent-list.markdown.js +14 -5
  177. package/dist/ui/renderers/agent-list.renderer.js +7 -7
  178. package/dist/ui/renderers/dashboard.markdown.d.ts +5 -0
  179. package/dist/ui/renderers/dashboard.markdown.js +207 -36
  180. package/dist/ui/renderers/index.d.ts +2 -2
  181. package/dist/ui/renderers/index.js +359 -163
  182. package/dist/ui/renderers/run-list.markdown.d.ts +5 -0
  183. package/dist/ui/renderers/run-list.markdown.js +9 -4
  184. package/dist/ui/renderers/tool-registry.markdown.d.ts +6 -1
  185. package/dist/ui/renderers/tool-registry.markdown.js +15 -4
  186. package/dist/ui/views/AgentListView.js +7 -7
  187. package/dist/ui/views/RunDataTable.d.ts +18 -0
  188. package/dist/ui/views/RunDataTable.js +327 -0
  189. package/dist/ui/views/RunListView.js +360 -128
  190. package/dist/ui/views/ToolRegistryView.js +9 -9
  191. package/dist/ui/views/index.js +478 -246
  192. package/dist/ui/views/run-data-table.columns.d.ts +3 -0
  193. package/dist/ui/views/run-data-table.columns.js +272 -0
  194. package/dist/ui/views/run-list.shared.d.ts +14 -0
  195. package/dist/ui/views/run-list.shared.js +178 -0
  196. package/dist/visualizations/catalog.d.ts +10 -0
  197. package/dist/visualizations/catalog.js +135 -0
  198. package/dist/visualizations/index.d.ts +2 -0
  199. package/dist/visualizations/index.js +188 -0
  200. package/dist/visualizations/selectors.d.ts +3 -0
  201. package/dist/visualizations/selectors.js +182 -0
  202. package/dist/visualizations/selectors.test.d.ts +1 -0
  203. package/package.json +114 -12
  204. package/proofs/agent-console-meetup.replay.json +220 -0
  205. package/src/agent/agent.entity.ts +111 -111
  206. package/src/agent/agent.enum.ts +12 -12
  207. package/src/agent/agent.event.ts +91 -91
  208. package/src/agent/agent.handler.ts +144 -127
  209. package/src/agent/agent.operation.ts +400 -400
  210. package/src/agent/agent.presentation.ts +62 -62
  211. package/src/agent/agent.schema.ts +175 -175
  212. package/src/agent/agent.test-spec.ts +48 -48
  213. package/src/agent/index.ts +46 -51
  214. package/src/agent.capability.ts +11 -11
  215. package/src/agent.feature.ts +134 -131
  216. package/src/docs/agent-console.docblock.ts +52 -49
  217. package/src/example.test.ts +75 -0
  218. package/src/example.ts +34 -35
  219. package/src/handlers/agent.handlers.ts +576 -522
  220. package/src/handlers/index.ts +30 -14
  221. package/src/handlers/mock-handlers.test.ts +77 -0
  222. package/src/index.ts +10 -9
  223. package/src/presentations/index.ts +11 -13
  224. package/src/proof/index.ts +2 -0
  225. package/src/proof/meetup-proof.runtime.ts +196 -0
  226. package/src/proof/meetup-proof.scenario.ts +99 -0
  227. package/src/proof/meetup-proof.suite.ts +29 -0
  228. package/src/proof/meetup-proof.test.ts +28 -0
  229. package/src/proof/meetup-proof.ts +130 -0
  230. package/src/run/index.ts +49 -54
  231. package/src/run/run.entity.ts +137 -137
  232. package/src/run/run.enum.ts +18 -18
  233. package/src/run/run.event.ts +174 -174
  234. package/src/run/run.handler.ts +113 -96
  235. package/src/run/run.operation.ts +474 -474
  236. package/src/run/run.presentation.ts +42 -42
  237. package/src/run/run.schema.ts +126 -126
  238. package/src/run/run.test-spec.ts +48 -48
  239. package/src/seeders/index.ts +21 -21
  240. package/src/shared/demo-dashboard-data.ts +58 -0
  241. package/src/shared/demo-runtime-seed.ts +139 -0
  242. package/src/shared/demo-runtime.test.ts +169 -0
  243. package/src/shared/demo-runtime.ts +260 -0
  244. package/src/shared/index.ts +12 -1
  245. package/src/shared/mock-agents.ts +76 -76
  246. package/src/shared/mock-runs.ts +107 -102
  247. package/src/shared/mock-tools.ts +140 -140
  248. package/src/shared/overlay-types.ts +23 -23
  249. package/src/tool/index.ts +39 -44
  250. package/src/tool/tool.entity.ts +73 -73
  251. package/src/tool/tool.enum.ts +13 -13
  252. package/src/tool/tool.event.ts +80 -80
  253. package/src/tool/tool.handler.ts +124 -107
  254. package/src/tool/tool.operation.ts +328 -328
  255. package/src/tool/tool.presentation.ts +43 -43
  256. package/src/tool/tool.schema.ts +106 -106
  257. package/src/tool/tool.test-spec.ts +48 -48
  258. package/src/ui/AgentDashboard.sandbox.test.tsx +312 -0
  259. package/src/ui/AgentDashboard.tsx +351 -348
  260. package/src/ui/AgentDashboard.visualizations.tsx +35 -0
  261. package/src/ui/hooks/index.ts +7 -7
  262. package/src/ui/hooks/useAgentList.ts +57 -56
  263. package/src/ui/hooks/useAgentMutations.ts +168 -159
  264. package/src/ui/hooks/useRunList.ts +90 -57
  265. package/src/ui/hooks/useToolList.ts +102 -101
  266. package/src/ui/index.ts +6 -9
  267. package/src/ui/modals/AgentActionsModal.tsx +262 -262
  268. package/src/ui/modals/CreateAgentModal.tsx +232 -232
  269. package/src/ui/modals/index.ts +1 -1
  270. package/src/ui/overlays/demo-overlays.ts +52 -52
  271. package/src/ui/renderers/agent-list.markdown.ts +81 -61
  272. package/src/ui/renderers/agent-list.renderer.tsx +14 -14
  273. package/src/ui/renderers/dashboard.markdown.ts +135 -139
  274. package/src/ui/renderers/index.ts +3 -4
  275. package/src/ui/renderers/run-list.markdown.ts +56 -47
  276. package/src/ui/renderers/tool-registry.markdown.ts +79 -66
  277. package/src/ui/views/AgentListView.tsx +90 -90
  278. package/src/ui/views/RunDataTable.tsx +74 -0
  279. package/src/ui/views/RunListView.tsx +84 -158
  280. package/src/ui/views/ToolRegistryView.tsx +113 -113
  281. package/src/ui/views/run-data-table.columns.tsx +102 -0
  282. package/src/ui/views/run-list.shared.tsx +139 -0
  283. package/src/visualizations/catalog.ts +132 -0
  284. package/src/visualizations/index.ts +2 -0
  285. package/src/visualizations/selectors.test.ts +12 -0
  286. package/src/visualizations/selectors.ts +70 -0
  287. package/tsconfig.json +7 -8
  288. package/tsdown.config.js +24 -3
package/dist/run/index.js CHANGED
@@ -79,175 +79,6 @@ var MOCK_AGENTS = [
79
79
  }
80
80
  ];
81
81
 
82
- // src/shared/mock-runs.ts
83
- var MOCK_RUNS = [
84
- {
85
- id: "run-1",
86
- organizationId: "demo-org",
87
- agentId: "agent-1",
88
- agentName: "Customer Support Bot",
89
- userId: "user-1",
90
- sessionId: "session-1",
91
- input: { message: "How do I reset my password?", context: {} },
92
- output: { response: "You can reset your password by clicking..." },
93
- status: "COMPLETED",
94
- totalTokens: 1250,
95
- promptTokens: 800,
96
- completionTokens: 450,
97
- totalIterations: 3,
98
- durationMs: 4500,
99
- estimatedCostUsd: 0.0025,
100
- queuedAt: new Date("2024-04-15T10:00:00Z"),
101
- startedAt: new Date("2024-04-15T10:00:01Z"),
102
- completedAt: new Date("2024-04-15T10:00:05Z"),
103
- steps: [],
104
- logs: []
105
- },
106
- {
107
- id: "run-2",
108
- organizationId: "demo-org",
109
- agentId: "agent-2",
110
- agentName: "Code Review Assistant",
111
- userId: "user-2",
112
- input: { message: "Review PR #123", context: { prNumber: 123 } },
113
- status: "IN_PROGRESS",
114
- totalTokens: 3500,
115
- promptTokens: 3000,
116
- completionTokens: 500,
117
- totalIterations: 5,
118
- queuedAt: new Date("2024-04-15T10:30:00Z"),
119
- startedAt: new Date("2024-04-15T10:30:02Z"),
120
- steps: [],
121
- logs: []
122
- },
123
- {
124
- id: "run-3",
125
- organizationId: "demo-org",
126
- agentId: "agent-1",
127
- agentName: "Customer Support Bot",
128
- userId: "user-1",
129
- input: { message: "What are your business hours?" },
130
- output: { response: "Our business hours are 9 AM to 5 PM EST..." },
131
- status: "COMPLETED",
132
- totalTokens: 800,
133
- promptTokens: 500,
134
- completionTokens: 300,
135
- totalIterations: 2,
136
- durationMs: 2100,
137
- estimatedCostUsd: 0.0012,
138
- queuedAt: new Date("2024-04-15T09:00:00Z"),
139
- startedAt: new Date("2024-04-15T09:00:01Z"),
140
- completedAt: new Date("2024-04-15T09:00:03Z"),
141
- steps: [],
142
- logs: []
143
- },
144
- {
145
- id: "run-4",
146
- organizationId: "demo-org",
147
- agentId: "agent-3",
148
- agentName: "Data Analyst",
149
- userId: "user-3",
150
- input: { message: "Generate sales report for Q1" },
151
- status: "FAILED",
152
- errorMessage: "Database connection timeout",
153
- errorCode: "DB_TIMEOUT",
154
- totalTokens: 2000,
155
- promptTokens: 1500,
156
- completionTokens: 500,
157
- totalIterations: 8,
158
- durationMs: 45000,
159
- queuedAt: new Date("2024-04-14T15:00:00Z"),
160
- startedAt: new Date("2024-04-14T15:00:05Z"),
161
- completedAt: new Date("2024-04-14T15:00:50Z"),
162
- steps: [],
163
- logs: []
164
- },
165
- {
166
- id: "run-5",
167
- organizationId: "demo-org",
168
- agentId: "agent-2",
169
- agentName: "Code Review Assistant",
170
- userId: "user-2",
171
- input: { message: "Review PR #120" },
172
- output: { response: "Code review complete. 3 suggestions..." },
173
- status: "COMPLETED",
174
- totalTokens: 5200,
175
- promptTokens: 4000,
176
- completionTokens: 1200,
177
- totalIterations: 7,
178
- durationMs: 15000,
179
- estimatedCostUsd: 0.0156,
180
- queuedAt: new Date("2024-04-14T11:00:00Z"),
181
- startedAt: new Date("2024-04-14T11:00:03Z"),
182
- completedAt: new Date("2024-04-14T11:00:18Z"),
183
- steps: [],
184
- logs: []
185
- }
186
- ];
187
-
188
- // src/run/run.handler.ts
189
- async function mockListRunsHandler(input) {
190
- const { agentId, status, limit = 20, offset = 0 } = input;
191
- let filtered = [...MOCK_RUNS];
192
- if (agentId)
193
- filtered = filtered.filter((r) => r.agentId === agentId);
194
- if (status)
195
- filtered = filtered.filter((r) => r.status === status);
196
- const total = filtered.length;
197
- const items = filtered.slice(offset, offset + limit).map((r) => {
198
- const agent = MOCK_AGENTS.find((a) => a.id === r.agentId);
199
- return {
200
- id: r.id,
201
- agentId: r.agentId,
202
- agentName: agent?.name ?? "Unknown",
203
- status: r.status,
204
- totalTokens: r.totalTokens,
205
- durationMs: r.durationMs,
206
- estimatedCostUsd: r.estimatedCostUsd,
207
- queuedAt: r.queuedAt,
208
- completedAt: r.completedAt
209
- };
210
- });
211
- return { items, total, hasMore: offset + limit < total };
212
- }
213
- async function mockGetRunHandler(input) {
214
- const run = MOCK_RUNS.find((r) => r.id === input.runId);
215
- if (!run)
216
- throw new Error("RUN_NOT_FOUND");
217
- const agent = MOCK_AGENTS.find((a) => a.id === run.agentId);
218
- return {
219
- ...run,
220
- agent: agent ? {
221
- id: agent.id,
222
- name: agent.name,
223
- modelProvider: agent.modelProvider,
224
- modelName: agent.modelName
225
- } : undefined,
226
- steps: input.includeSteps ? run.steps : undefined,
227
- logs: input.includeLogs ? run.logs : undefined
228
- };
229
- }
230
- async function mockExecuteAgentHandler(input) {
231
- const agent = MOCK_AGENTS.find((a) => a.id === input.agentId);
232
- if (!agent)
233
- throw new Error("AGENT_NOT_FOUND");
234
- if (agent.status !== "ACTIVE")
235
- throw new Error("AGENT_NOT_ACTIVE");
236
- return {
237
- runId: `run-${Date.now()}`,
238
- status: "QUEUED",
239
- estimatedWaitMs: 500
240
- };
241
- }
242
- async function mockCancelRunHandler(input) {
243
- const run = MOCK_RUNS.find((r) => r.id === input.runId);
244
- if (!run)
245
- throw new Error("RUN_NOT_FOUND");
246
- if (!["QUEUED", "IN_PROGRESS"].includes(run.status))
247
- throw new Error("RUN_NOT_CANCELLABLE");
248
- return { success: true, status: "CANCELLED" };
249
- }
250
-
251
82
  // src/run/run.enum.ts
252
83
  import { defineEnum } from "@contractspec/lib.schema";
253
84
  var RunStatusEnum = defineEnum("RunStatus", [
@@ -907,214 +738,180 @@ var GetRunMetricsQuery = defineQuery({
907
738
  }
908
739
  });
909
740
 
910
- // src/run/run.event.ts
911
- import { defineEvent } from "@contractspec/lib.contracts-spec";
912
- import {
913
- ScalarTypeEnum as ScalarTypeEnum3,
914
- defineEnum as defineEnum2,
915
- defineSchemaModel as defineSchemaModel3
916
- } from "@contractspec/lib.schema";
917
- var OWNERS2 = ["@agent-console-team"];
918
- var RunStartedPayload = defineSchemaModel3({
919
- name: "RunStartedPayload",
920
- description: "Payload for run started event",
921
- fields: {
922
- runId: { type: ScalarTypeEnum3.String_unsecure(), isOptional: false },
923
- organizationId: {
924
- type: ScalarTypeEnum3.String_unsecure(),
925
- isOptional: false
926
- },
927
- agentId: { type: ScalarTypeEnum3.String_unsecure(), isOptional: false },
928
- agentName: { type: ScalarTypeEnum3.String_unsecure(), isOptional: false },
929
- userId: { type: ScalarTypeEnum3.String_unsecure(), isOptional: true },
930
- sessionId: { type: ScalarTypeEnum3.String_unsecure(), isOptional: true },
931
- input: { type: ScalarTypeEnum3.JSONObject(), isOptional: false },
932
- startedAt: { type: ScalarTypeEnum3.DateTime(), isOptional: false }
933
- }
934
- });
935
- var RunStartedEvent = defineEvent({
936
- meta: {
937
- key: "agent.run.started",
938
- version: "1.0.0",
939
- description: "An agent run was started.",
940
- stability: "stable",
941
- owners: [...OWNERS2],
942
- tags: ["run", "started"]
741
+ // src/shared/mock-runs.ts
742
+ var MOCK_RUNS = [
743
+ {
744
+ id: "run-1",
745
+ organizationId: "demo-org",
746
+ projectId: "demo-project",
747
+ agentId: "agent-1",
748
+ agentName: "Customer Support Bot",
749
+ userId: "user-1",
750
+ sessionId: "session-1",
751
+ input: { message: "How do I reset my password?", context: {} },
752
+ output: { response: "You can reset your password by clicking..." },
753
+ status: "COMPLETED",
754
+ totalTokens: 1250,
755
+ promptTokens: 800,
756
+ completionTokens: 450,
757
+ totalIterations: 3,
758
+ durationMs: 4500,
759
+ estimatedCostUsd: 0.0025,
760
+ queuedAt: new Date("2024-04-15T10:00:00Z"),
761
+ startedAt: new Date("2024-04-15T10:00:01Z"),
762
+ completedAt: new Date("2024-04-15T10:00:05Z"),
763
+ steps: [],
764
+ logs: []
943
765
  },
944
- payload: RunStartedPayload
945
- });
946
- var RunCompletedPayload = defineSchemaModel3({
947
- name: "RunCompletedPayload",
948
- description: "Payload for run completed event",
949
- fields: {
950
- runId: { type: ScalarTypeEnum3.String_unsecure(), isOptional: false },
951
- organizationId: {
952
- type: ScalarTypeEnum3.String_unsecure(),
953
- isOptional: false
954
- },
955
- agentId: { type: ScalarTypeEnum3.String_unsecure(), isOptional: false },
956
- agentName: { type: ScalarTypeEnum3.String_unsecure(), isOptional: false },
957
- userId: { type: ScalarTypeEnum3.String_unsecure(), isOptional: true },
958
- output: { type: ScalarTypeEnum3.JSONObject(), isOptional: false },
959
- totalTokens: { type: ScalarTypeEnum3.Int_unsecure(), isOptional: false },
960
- promptTokens: { type: ScalarTypeEnum3.Int_unsecure(), isOptional: false },
961
- completionTokens: {
962
- type: ScalarTypeEnum3.Int_unsecure(),
963
- isOptional: false
964
- },
965
- totalIterations: { type: ScalarTypeEnum3.Int_unsecure(), isOptional: false },
966
- durationMs: { type: ScalarTypeEnum3.Int_unsecure(), isOptional: false },
967
- estimatedCostUsd: {
968
- type: ScalarTypeEnum3.Float_unsecure(),
969
- isOptional: true
970
- },
971
- completedAt: { type: ScalarTypeEnum3.DateTime(), isOptional: false }
972
- }
973
- });
974
- var RunCompletedEvent = defineEvent({
975
- meta: {
976
- key: "agent.run.completed",
977
- version: "1.0.0",
978
- description: "An agent run completed successfully.",
979
- stability: "stable",
980
- owners: [...OWNERS2],
981
- tags: ["run", "completed"]
982
- },
983
- payload: RunCompletedPayload
984
- });
985
- var RunFailedPayload = defineSchemaModel3({
986
- name: "RunFailedPayload",
987
- description: "Payload for run failed event",
988
- fields: {
989
- runId: { type: ScalarTypeEnum3.String_unsecure(), isOptional: false },
990
- organizationId: {
991
- type: ScalarTypeEnum3.String_unsecure(),
992
- isOptional: false
993
- },
994
- agentId: { type: ScalarTypeEnum3.String_unsecure(), isOptional: false },
995
- agentName: { type: ScalarTypeEnum3.String_unsecure(), isOptional: false },
996
- userId: { type: ScalarTypeEnum3.String_unsecure(), isOptional: true },
997
- errorMessage: { type: ScalarTypeEnum3.String_unsecure(), isOptional: false },
998
- errorCode: { type: ScalarTypeEnum3.String_unsecure(), isOptional: true },
999
- totalTokens: { type: ScalarTypeEnum3.Int_unsecure(), isOptional: false },
1000
- totalIterations: { type: ScalarTypeEnum3.Int_unsecure(), isOptional: false },
1001
- durationMs: { type: ScalarTypeEnum3.Int_unsecure(), isOptional: true },
1002
- failedAt: { type: ScalarTypeEnum3.DateTime(), isOptional: false }
1003
- }
1004
- });
1005
- var RunFailedEvent = defineEvent({
1006
- meta: {
1007
- key: "agent.run.failed",
1008
- version: "1.0.0",
1009
- description: "An agent run encountered an error.",
1010
- stability: "stable",
1011
- owners: [...OWNERS2],
1012
- tags: ["run", "failed"]
1013
- },
1014
- payload: RunFailedPayload
1015
- });
1016
- var RunCancelledPayload = defineSchemaModel3({
1017
- name: "RunCancelledPayload",
1018
- description: "Payload for run cancelled event",
1019
- fields: {
1020
- runId: { type: ScalarTypeEnum3.String_unsecure(), isOptional: false },
1021
- organizationId: {
1022
- type: ScalarTypeEnum3.String_unsecure(),
1023
- isOptional: false
1024
- },
1025
- agentId: { type: ScalarTypeEnum3.String_unsecure(), isOptional: false },
1026
- userId: { type: ScalarTypeEnum3.String_unsecure(), isOptional: true },
1027
- cancelledBy: { type: ScalarTypeEnum3.String_unsecure(), isOptional: true },
1028
- reason: { type: ScalarTypeEnum3.String_unsecure(), isOptional: true },
1029
- totalTokens: { type: ScalarTypeEnum3.Int_unsecure(), isOptional: false },
1030
- totalIterations: { type: ScalarTypeEnum3.Int_unsecure(), isOptional: false },
1031
- cancelledAt: { type: ScalarTypeEnum3.DateTime(), isOptional: false }
1032
- }
1033
- });
1034
- var RunCancelledEvent = defineEvent({
1035
- meta: {
1036
- key: "agent.run.cancelled",
1037
- version: "1.0.0",
1038
- description: "An agent run was cancelled by the user.",
1039
- stability: "stable",
1040
- owners: [...OWNERS2],
1041
- tags: ["run", "cancelled"]
766
+ {
767
+ id: "run-2",
768
+ organizationId: "demo-org",
769
+ projectId: "demo-project",
770
+ agentId: "agent-2",
771
+ agentName: "Code Review Assistant",
772
+ userId: "user-2",
773
+ input: { message: "Review PR #123", context: { prNumber: 123 } },
774
+ status: "IN_PROGRESS",
775
+ totalTokens: 3500,
776
+ promptTokens: 3000,
777
+ completionTokens: 500,
778
+ totalIterations: 5,
779
+ queuedAt: new Date("2024-04-15T10:30:00Z"),
780
+ startedAt: new Date("2024-04-15T10:30:02Z"),
781
+ steps: [],
782
+ logs: []
1042
783
  },
1043
- payload: RunCancelledPayload
1044
- });
1045
- var ToolInvokedPayload = defineSchemaModel3({
1046
- name: "ToolInvokedPayload",
1047
- description: "Payload for tool invoked event",
1048
- fields: {
1049
- runId: { type: ScalarTypeEnum3.String_unsecure(), isOptional: false },
1050
- stepId: { type: ScalarTypeEnum3.String_unsecure(), isOptional: false },
1051
- toolId: { type: ScalarTypeEnum3.String_unsecure(), isOptional: false },
1052
- toolName: { type: ScalarTypeEnum3.String_unsecure(), isOptional: false },
1053
- input: { type: ScalarTypeEnum3.JSONObject(), isOptional: false },
1054
- invokedAt: { type: ScalarTypeEnum3.DateTime(), isOptional: false }
1055
- }
1056
- });
1057
- var ToolInvokedEvent = defineEvent({
1058
- meta: {
1059
- key: "agent.run.toolInvoked",
1060
- version: "1.0.0",
1061
- description: "A tool was invoked during an agent run.",
1062
- stability: "stable",
1063
- owners: [...OWNERS2],
1064
- tags: ["run", "tool", "invoked"]
784
+ {
785
+ id: "run-3",
786
+ organizationId: "demo-org",
787
+ projectId: "demo-project",
788
+ agentId: "agent-1",
789
+ agentName: "Customer Support Bot",
790
+ userId: "user-1",
791
+ input: { message: "What are your business hours?" },
792
+ output: { response: "Our business hours are 9 AM to 5 PM EST..." },
793
+ status: "COMPLETED",
794
+ totalTokens: 800,
795
+ promptTokens: 500,
796
+ completionTokens: 300,
797
+ totalIterations: 2,
798
+ durationMs: 2100,
799
+ estimatedCostUsd: 0.0012,
800
+ queuedAt: new Date("2024-04-15T09:00:00Z"),
801
+ startedAt: new Date("2024-04-15T09:00:01Z"),
802
+ completedAt: new Date("2024-04-15T09:00:03Z"),
803
+ steps: [],
804
+ logs: []
1065
805
  },
1066
- payload: ToolInvokedPayload
1067
- });
1068
- var ToolCompletedPayload = defineSchemaModel3({
1069
- name: "ToolCompletedPayload",
1070
- description: "Payload for tool completed event",
1071
- fields: {
1072
- runId: { type: ScalarTypeEnum3.String_unsecure(), isOptional: false },
1073
- stepId: { type: ScalarTypeEnum3.String_unsecure(), isOptional: false },
1074
- toolId: { type: ScalarTypeEnum3.String_unsecure(), isOptional: false },
1075
- toolName: { type: ScalarTypeEnum3.String_unsecure(), isOptional: false },
1076
- success: { type: ScalarTypeEnum3.Boolean(), isOptional: false },
1077
- output: { type: ScalarTypeEnum3.JSONObject(), isOptional: true },
1078
- errorMessage: { type: ScalarTypeEnum3.String_unsecure(), isOptional: true },
1079
- durationMs: { type: ScalarTypeEnum3.Int_unsecure(), isOptional: false },
1080
- completedAt: { type: ScalarTypeEnum3.DateTime(), isOptional: false }
1081
- }
1082
- });
1083
- var ToolCompletedEvent = defineEvent({
1084
- meta: {
1085
- key: "agent.run.toolCompleted",
1086
- version: "1.0.0",
1087
- description: "A tool invocation completed during an agent run.",
1088
- stability: "stable",
1089
- owners: [...OWNERS2],
1090
- tags: ["run", "tool", "completed"]
806
+ {
807
+ id: "run-4",
808
+ organizationId: "demo-org",
809
+ projectId: "demo-project",
810
+ agentId: "agent-3",
811
+ agentName: "Data Analyst",
812
+ userId: "user-3",
813
+ input: { message: "Generate sales report for Q1" },
814
+ status: "FAILED",
815
+ errorMessage: "Database connection timeout",
816
+ errorCode: "DB_TIMEOUT",
817
+ totalTokens: 2000,
818
+ promptTokens: 1500,
819
+ completionTokens: 500,
820
+ totalIterations: 8,
821
+ durationMs: 45000,
822
+ queuedAt: new Date("2024-04-14T15:00:00Z"),
823
+ startedAt: new Date("2024-04-14T15:00:05Z"),
824
+ completedAt: new Date("2024-04-14T15:00:50Z"),
825
+ steps: [],
826
+ logs: []
1091
827
  },
1092
- payload: ToolCompletedPayload
1093
- });
1094
- var MessageTypeEnum = defineEnum2("MessageType", ["assistant", "system"]);
1095
- var MessageGeneratedPayload = defineSchemaModel3({
1096
- name: "MessageGeneratedPayload",
1097
- description: "Payload for message generated event",
1098
- fields: {
1099
- runId: { type: ScalarTypeEnum3.String_unsecure(), isOptional: false },
1100
- stepId: { type: ScalarTypeEnum3.String_unsecure(), isOptional: false },
1101
- messageType: { type: MessageTypeEnum, isOptional: false },
1102
- content: { type: ScalarTypeEnum3.String_unsecure(), isOptional: false },
1103
- tokensUsed: { type: ScalarTypeEnum3.Int_unsecure(), isOptional: false },
1104
- generatedAt: { type: ScalarTypeEnum3.DateTime(), isOptional: false }
828
+ {
829
+ id: "run-5",
830
+ organizationId: "demo-org",
831
+ projectId: "demo-project",
832
+ agentId: "agent-2",
833
+ agentName: "Code Review Assistant",
834
+ userId: "user-2",
835
+ input: { message: "Review PR #120" },
836
+ output: { response: "Code review complete. 3 suggestions..." },
837
+ status: "COMPLETED",
838
+ totalTokens: 5200,
839
+ promptTokens: 4000,
840
+ completionTokens: 1200,
841
+ totalIterations: 7,
842
+ durationMs: 15000,
843
+ estimatedCostUsd: 0.0156,
844
+ queuedAt: new Date("2024-04-14T11:00:00Z"),
845
+ startedAt: new Date("2024-04-14T11:00:03Z"),
846
+ completedAt: new Date("2024-04-14T11:00:18Z"),
847
+ steps: [],
848
+ logs: []
1105
849
  }
1106
- });
1107
- var MessageGeneratedEvent = defineEvent({
1108
- meta: {
1109
- key: "agent.run.messageGenerated",
1110
- version: "1.0.0",
1111
- description: "An agent generated a message during a run.",
1112
- stability: "stable",
1113
- owners: [...OWNERS2],
1114
- tags: ["run", "message", "generated"]
1115
- },
1116
- payload: MessageGeneratedPayload
1117
- });
850
+ ];
851
+
852
+ // src/run/run.handler.ts
853
+ var nextMockRunId = MOCK_RUNS.length + 1;
854
+ async function mockListRunsHandler(input) {
855
+ const { agentId, status, limit = 20, offset = 0 } = input;
856
+ let filtered = [...MOCK_RUNS];
857
+ if (agentId)
858
+ filtered = filtered.filter((r) => r.agentId === agentId);
859
+ if (status)
860
+ filtered = filtered.filter((r) => r.status === status);
861
+ const total = filtered.length;
862
+ const items = filtered.slice(offset, offset + limit).map((r) => {
863
+ const agent = MOCK_AGENTS.find((a) => a.id === r.agentId);
864
+ return {
865
+ id: r.id,
866
+ agentId: r.agentId,
867
+ agentName: agent?.name ?? "Unknown",
868
+ status: r.status,
869
+ totalTokens: r.totalTokens,
870
+ durationMs: r.durationMs,
871
+ estimatedCostUsd: r.estimatedCostUsd,
872
+ queuedAt: r.queuedAt,
873
+ completedAt: r.completedAt
874
+ };
875
+ });
876
+ return { items, total, hasMore: offset + limit < total };
877
+ }
878
+ async function mockGetRunHandler(input) {
879
+ const run = MOCK_RUNS.find((r) => r.id === input.runId);
880
+ if (!run)
881
+ throw new Error("RUN_NOT_FOUND");
882
+ const agent = MOCK_AGENTS.find((a) => a.id === run.agentId);
883
+ return {
884
+ ...run,
885
+ agent: agent ? {
886
+ id: agent.id,
887
+ name: agent.name,
888
+ modelProvider: agent.modelProvider,
889
+ modelName: agent.modelName
890
+ } : undefined,
891
+ steps: input.includeSteps ? run.steps : undefined,
892
+ logs: input.includeLogs ? run.logs : undefined
893
+ };
894
+ }
895
+ async function mockExecuteAgentHandler(input) {
896
+ const agent = MOCK_AGENTS.find((a) => a.id === input.agentId);
897
+ if (!agent)
898
+ throw new Error("AGENT_NOT_FOUND");
899
+ if (agent.status !== "ACTIVE")
900
+ throw new Error("AGENT_NOT_ACTIVE");
901
+ return {
902
+ runId: `run-${nextMockRunId++}`,
903
+ status: "QUEUED",
904
+ estimatedWaitMs: 500
905
+ };
906
+ }
907
+ async function mockCancelRunHandler(input) {
908
+ const run = MOCK_RUNS.find((r) => r.id === input.runId);
909
+ if (!run)
910
+ throw new Error("RUN_NOT_FOUND");
911
+ if (!["QUEUED", "IN_PROGRESS"].includes(run.status))
912
+ throw new Error("RUN_NOT_CANCELLABLE");
913
+ return { success: true, status: "CANCELLED" };
914
+ }
1118
915
 
1119
916
  // src/run/run.entity.ts
1120
917
  import {
@@ -1269,10 +1066,219 @@ var RunLogEntity = defineEntity({
1269
1066
  enums: [LogLevelEntityEnum]
1270
1067
  });
1271
1068
 
1069
+ // src/run/run.event.ts
1070
+ import { defineEvent } from "@contractspec/lib.contracts-spec";
1071
+ import {
1072
+ defineEnum as defineEnum2,
1073
+ defineSchemaModel as defineSchemaModel3,
1074
+ ScalarTypeEnum as ScalarTypeEnum3
1075
+ } from "@contractspec/lib.schema";
1076
+ var OWNERS2 = ["@agent-console-team"];
1077
+ var RunStartedPayload = defineSchemaModel3({
1078
+ name: "RunStartedPayload",
1079
+ description: "Payload for run started event",
1080
+ fields: {
1081
+ runId: { type: ScalarTypeEnum3.String_unsecure(), isOptional: false },
1082
+ organizationId: {
1083
+ type: ScalarTypeEnum3.String_unsecure(),
1084
+ isOptional: false
1085
+ },
1086
+ agentId: { type: ScalarTypeEnum3.String_unsecure(), isOptional: false },
1087
+ agentName: { type: ScalarTypeEnum3.String_unsecure(), isOptional: false },
1088
+ userId: { type: ScalarTypeEnum3.String_unsecure(), isOptional: true },
1089
+ sessionId: { type: ScalarTypeEnum3.String_unsecure(), isOptional: true },
1090
+ input: { type: ScalarTypeEnum3.JSONObject(), isOptional: false },
1091
+ startedAt: { type: ScalarTypeEnum3.DateTime(), isOptional: false }
1092
+ }
1093
+ });
1094
+ var RunStartedEvent = defineEvent({
1095
+ meta: {
1096
+ key: "agent.run.started",
1097
+ version: "1.0.0",
1098
+ description: "An agent run was started.",
1099
+ stability: "stable",
1100
+ owners: [...OWNERS2],
1101
+ tags: ["run", "started"]
1102
+ },
1103
+ payload: RunStartedPayload
1104
+ });
1105
+ var RunCompletedPayload = defineSchemaModel3({
1106
+ name: "RunCompletedPayload",
1107
+ description: "Payload for run completed event",
1108
+ fields: {
1109
+ runId: { type: ScalarTypeEnum3.String_unsecure(), isOptional: false },
1110
+ organizationId: {
1111
+ type: ScalarTypeEnum3.String_unsecure(),
1112
+ isOptional: false
1113
+ },
1114
+ agentId: { type: ScalarTypeEnum3.String_unsecure(), isOptional: false },
1115
+ agentName: { type: ScalarTypeEnum3.String_unsecure(), isOptional: false },
1116
+ userId: { type: ScalarTypeEnum3.String_unsecure(), isOptional: true },
1117
+ output: { type: ScalarTypeEnum3.JSONObject(), isOptional: false },
1118
+ totalTokens: { type: ScalarTypeEnum3.Int_unsecure(), isOptional: false },
1119
+ promptTokens: { type: ScalarTypeEnum3.Int_unsecure(), isOptional: false },
1120
+ completionTokens: {
1121
+ type: ScalarTypeEnum3.Int_unsecure(),
1122
+ isOptional: false
1123
+ },
1124
+ totalIterations: { type: ScalarTypeEnum3.Int_unsecure(), isOptional: false },
1125
+ durationMs: { type: ScalarTypeEnum3.Int_unsecure(), isOptional: false },
1126
+ estimatedCostUsd: {
1127
+ type: ScalarTypeEnum3.Float_unsecure(),
1128
+ isOptional: true
1129
+ },
1130
+ completedAt: { type: ScalarTypeEnum3.DateTime(), isOptional: false }
1131
+ }
1132
+ });
1133
+ var RunCompletedEvent = defineEvent({
1134
+ meta: {
1135
+ key: "agent.run.completed",
1136
+ version: "1.0.0",
1137
+ description: "An agent run completed successfully.",
1138
+ stability: "stable",
1139
+ owners: [...OWNERS2],
1140
+ tags: ["run", "completed"]
1141
+ },
1142
+ payload: RunCompletedPayload
1143
+ });
1144
+ var RunFailedPayload = defineSchemaModel3({
1145
+ name: "RunFailedPayload",
1146
+ description: "Payload for run failed event",
1147
+ fields: {
1148
+ runId: { type: ScalarTypeEnum3.String_unsecure(), isOptional: false },
1149
+ organizationId: {
1150
+ type: ScalarTypeEnum3.String_unsecure(),
1151
+ isOptional: false
1152
+ },
1153
+ agentId: { type: ScalarTypeEnum3.String_unsecure(), isOptional: false },
1154
+ agentName: { type: ScalarTypeEnum3.String_unsecure(), isOptional: false },
1155
+ userId: { type: ScalarTypeEnum3.String_unsecure(), isOptional: true },
1156
+ errorMessage: { type: ScalarTypeEnum3.String_unsecure(), isOptional: false },
1157
+ errorCode: { type: ScalarTypeEnum3.String_unsecure(), isOptional: true },
1158
+ totalTokens: { type: ScalarTypeEnum3.Int_unsecure(), isOptional: false },
1159
+ totalIterations: { type: ScalarTypeEnum3.Int_unsecure(), isOptional: false },
1160
+ durationMs: { type: ScalarTypeEnum3.Int_unsecure(), isOptional: true },
1161
+ failedAt: { type: ScalarTypeEnum3.DateTime(), isOptional: false }
1162
+ }
1163
+ });
1164
+ var RunFailedEvent = defineEvent({
1165
+ meta: {
1166
+ key: "agent.run.failed",
1167
+ version: "1.0.0",
1168
+ description: "An agent run encountered an error.",
1169
+ stability: "stable",
1170
+ owners: [...OWNERS2],
1171
+ tags: ["run", "failed"]
1172
+ },
1173
+ payload: RunFailedPayload
1174
+ });
1175
+ var RunCancelledPayload = defineSchemaModel3({
1176
+ name: "RunCancelledPayload",
1177
+ description: "Payload for run cancelled event",
1178
+ fields: {
1179
+ runId: { type: ScalarTypeEnum3.String_unsecure(), isOptional: false },
1180
+ organizationId: {
1181
+ type: ScalarTypeEnum3.String_unsecure(),
1182
+ isOptional: false
1183
+ },
1184
+ agentId: { type: ScalarTypeEnum3.String_unsecure(), isOptional: false },
1185
+ userId: { type: ScalarTypeEnum3.String_unsecure(), isOptional: true },
1186
+ cancelledBy: { type: ScalarTypeEnum3.String_unsecure(), isOptional: true },
1187
+ reason: { type: ScalarTypeEnum3.String_unsecure(), isOptional: true },
1188
+ totalTokens: { type: ScalarTypeEnum3.Int_unsecure(), isOptional: false },
1189
+ totalIterations: { type: ScalarTypeEnum3.Int_unsecure(), isOptional: false },
1190
+ cancelledAt: { type: ScalarTypeEnum3.DateTime(), isOptional: false }
1191
+ }
1192
+ });
1193
+ var RunCancelledEvent = defineEvent({
1194
+ meta: {
1195
+ key: "agent.run.cancelled",
1196
+ version: "1.0.0",
1197
+ description: "An agent run was cancelled by the user.",
1198
+ stability: "stable",
1199
+ owners: [...OWNERS2],
1200
+ tags: ["run", "cancelled"]
1201
+ },
1202
+ payload: RunCancelledPayload
1203
+ });
1204
+ var ToolInvokedPayload = defineSchemaModel3({
1205
+ name: "ToolInvokedPayload",
1206
+ description: "Payload for tool invoked event",
1207
+ fields: {
1208
+ runId: { type: ScalarTypeEnum3.String_unsecure(), isOptional: false },
1209
+ stepId: { type: ScalarTypeEnum3.String_unsecure(), isOptional: false },
1210
+ toolId: { type: ScalarTypeEnum3.String_unsecure(), isOptional: false },
1211
+ toolName: { type: ScalarTypeEnum3.String_unsecure(), isOptional: false },
1212
+ input: { type: ScalarTypeEnum3.JSONObject(), isOptional: false },
1213
+ invokedAt: { type: ScalarTypeEnum3.DateTime(), isOptional: false }
1214
+ }
1215
+ });
1216
+ var ToolInvokedEvent = defineEvent({
1217
+ meta: {
1218
+ key: "agent.run.toolInvoked",
1219
+ version: "1.0.0",
1220
+ description: "A tool was invoked during an agent run.",
1221
+ stability: "stable",
1222
+ owners: [...OWNERS2],
1223
+ tags: ["run", "tool", "invoked"]
1224
+ },
1225
+ payload: ToolInvokedPayload
1226
+ });
1227
+ var ToolCompletedPayload = defineSchemaModel3({
1228
+ name: "ToolCompletedPayload",
1229
+ description: "Payload for tool completed event",
1230
+ fields: {
1231
+ runId: { type: ScalarTypeEnum3.String_unsecure(), isOptional: false },
1232
+ stepId: { type: ScalarTypeEnum3.String_unsecure(), isOptional: false },
1233
+ toolId: { type: ScalarTypeEnum3.String_unsecure(), isOptional: false },
1234
+ toolName: { type: ScalarTypeEnum3.String_unsecure(), isOptional: false },
1235
+ success: { type: ScalarTypeEnum3.Boolean(), isOptional: false },
1236
+ output: { type: ScalarTypeEnum3.JSONObject(), isOptional: true },
1237
+ errorMessage: { type: ScalarTypeEnum3.String_unsecure(), isOptional: true },
1238
+ durationMs: { type: ScalarTypeEnum3.Int_unsecure(), isOptional: false },
1239
+ completedAt: { type: ScalarTypeEnum3.DateTime(), isOptional: false }
1240
+ }
1241
+ });
1242
+ var ToolCompletedEvent = defineEvent({
1243
+ meta: {
1244
+ key: "agent.run.toolCompleted",
1245
+ version: "1.0.0",
1246
+ description: "A tool invocation completed during an agent run.",
1247
+ stability: "stable",
1248
+ owners: [...OWNERS2],
1249
+ tags: ["run", "tool", "completed"]
1250
+ },
1251
+ payload: ToolCompletedPayload
1252
+ });
1253
+ var MessageTypeEnum = defineEnum2("MessageType", ["assistant", "system"]);
1254
+ var MessageGeneratedPayload = defineSchemaModel3({
1255
+ name: "MessageGeneratedPayload",
1256
+ description: "Payload for message generated event",
1257
+ fields: {
1258
+ runId: { type: ScalarTypeEnum3.String_unsecure(), isOptional: false },
1259
+ stepId: { type: ScalarTypeEnum3.String_unsecure(), isOptional: false },
1260
+ messageType: { type: MessageTypeEnum, isOptional: false },
1261
+ content: { type: ScalarTypeEnum3.String_unsecure(), isOptional: false },
1262
+ tokensUsed: { type: ScalarTypeEnum3.Int_unsecure(), isOptional: false },
1263
+ generatedAt: { type: ScalarTypeEnum3.DateTime(), isOptional: false }
1264
+ }
1265
+ });
1266
+ var MessageGeneratedEvent = defineEvent({
1267
+ meta: {
1268
+ key: "agent.run.messageGenerated",
1269
+ version: "1.0.0",
1270
+ description: "An agent generated a message during a run.",
1271
+ stability: "stable",
1272
+ owners: [...OWNERS2],
1273
+ tags: ["run", "message", "generated"]
1274
+ },
1275
+ payload: MessageGeneratedPayload
1276
+ });
1277
+
1272
1278
  // src/run/run.presentation.ts
1273
1279
  import {
1274
- StabilityEnum,
1275
- definePresentation
1280
+ definePresentation,
1281
+ StabilityEnum
1276
1282
  } from "@contractspec/lib.contracts-spec";
1277
1283
  var RunListPresentation = definePresentation({
1278
1284
  meta: {