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