@agentuity/cli 0.0.51 → 0.0.53

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 (299) hide show
  1. package/dist/api.js +68 -0
  2. package/dist/api.js.map +1 -0
  3. package/dist/auth.js +225 -0
  4. package/dist/auth.js.map +1 -0
  5. package/dist/banner.js +35 -0
  6. package/dist/banner.js.map +1 -0
  7. package/dist/cli-logger.js +72 -0
  8. package/dist/cli-logger.js.map +1 -0
  9. package/dist/cli.js +822 -0
  10. package/dist/cli.js.map +1 -0
  11. package/dist/cmd/ai/capabilities/index.js +10 -0
  12. package/dist/cmd/ai/capabilities/index.js.map +1 -0
  13. package/dist/cmd/ai/capabilities/show.js +221 -0
  14. package/dist/cmd/ai/capabilities/show.js.map +1 -0
  15. package/dist/cmd/ai/index.js +11 -0
  16. package/dist/cmd/ai/index.js.map +1 -0
  17. package/dist/cmd/ai/prompt/index.js +10 -0
  18. package/dist/cmd/ai/prompt/index.js.map +1 -0
  19. package/dist/cmd/ai/prompt/llm.js +365 -0
  20. package/dist/cmd/ai/prompt/llm.js.map +1 -0
  21. package/dist/cmd/ai/schema/index.js +10 -0
  22. package/dist/cmd/ai/schema/index.js.map +1 -0
  23. package/dist/cmd/ai/schema/show.js +23 -0
  24. package/dist/cmd/ai/schema/show.js.map +1 -0
  25. package/dist/cmd/auth/api.js +85 -0
  26. package/dist/cmd/auth/api.js.map +1 -0
  27. package/dist/cmd/auth/index.js +13 -0
  28. package/dist/cmd/auth/index.js.map +1 -0
  29. package/dist/cmd/auth/login.js +84 -0
  30. package/dist/cmd/auth/login.js.map +1 -0
  31. package/dist/cmd/auth/logout.js +17 -0
  32. package/dist/cmd/auth/logout.js.map +1 -0
  33. package/dist/cmd/auth/signup.js +55 -0
  34. package/dist/cmd/auth/signup.js.map +1 -0
  35. package/dist/cmd/auth/ssh/add.js +239 -0
  36. package/dist/cmd/auth/ssh/add.js.map +1 -0
  37. package/dist/cmd/auth/ssh/api.js +53 -0
  38. package/dist/cmd/auth/ssh/api.js.map +1 -0
  39. package/dist/cmd/auth/ssh/delete.js +126 -0
  40. package/dist/cmd/auth/ssh/delete.js.map +1 -0
  41. package/dist/cmd/auth/ssh/index.js +11 -0
  42. package/dist/cmd/auth/ssh/index.js.map +1 -0
  43. package/dist/cmd/auth/ssh/list.js +70 -0
  44. package/dist/cmd/auth/ssh/list.js.map +1 -0
  45. package/dist/cmd/auth/whoami.js +68 -0
  46. package/dist/cmd/auth/whoami.js.map +1 -0
  47. package/dist/cmd/build/ast.js +608 -0
  48. package/dist/cmd/build/ast.js.map +1 -0
  49. package/dist/cmd/build/ast.test.js +389 -0
  50. package/dist/cmd/build/ast.test.js.map +1 -0
  51. package/dist/cmd/build/bundler.js +304 -0
  52. package/dist/cmd/build/bundler.js.map +1 -0
  53. package/dist/cmd/build/file.js +10 -0
  54. package/dist/cmd/build/file.js.map +1 -0
  55. package/dist/cmd/build/fix-duplicate-exports.js +167 -0
  56. package/dist/cmd/build/fix-duplicate-exports.js.map +1 -0
  57. package/dist/cmd/build/fix-duplicate-exports.test.js +300 -0
  58. package/dist/cmd/build/fix-duplicate-exports.test.js.map +1 -0
  59. package/dist/cmd/build/index.d.ts.map +1 -1
  60. package/dist/cmd/build/index.js +81 -0
  61. package/dist/cmd/build/index.js.map +1 -0
  62. package/dist/cmd/build/patch/_util.js +42 -0
  63. package/dist/cmd/build/patch/_util.js.map +1 -0
  64. package/dist/cmd/build/patch/aisdk.js +65 -0
  65. package/dist/cmd/build/patch/aisdk.js.map +1 -0
  66. package/dist/cmd/build/patch/index.js +97 -0
  67. package/dist/cmd/build/patch/index.js.map +1 -0
  68. package/dist/cmd/build/patch/llm.js +18 -0
  69. package/dist/cmd/build/patch/llm.js.map +1 -0
  70. package/dist/cmd/build/plugin.d.ts.map +1 -1
  71. package/dist/cmd/build/plugin.js +581 -0
  72. package/dist/cmd/build/plugin.js.map +1 -0
  73. package/dist/cmd/cloud/agents/index.js +133 -0
  74. package/dist/cmd/cloud/agents/index.js.map +1 -0
  75. package/dist/cmd/cloud/deploy.js +341 -0
  76. package/dist/cmd/cloud/deploy.js.map +1 -0
  77. package/dist/cmd/cloud/deployment/index.js +20 -0
  78. package/dist/cmd/cloud/deployment/index.js.map +1 -0
  79. package/dist/cmd/cloud/deployment/list.js +89 -0
  80. package/dist/cmd/cloud/deployment/list.js.map +1 -0
  81. package/dist/cmd/cloud/deployment/remove.js +60 -0
  82. package/dist/cmd/cloud/deployment/remove.js.map +1 -0
  83. package/dist/cmd/cloud/deployment/rollback.js +80 -0
  84. package/dist/cmd/cloud/deployment/rollback.js.map +1 -0
  85. package/dist/cmd/cloud/deployment/show.js +106 -0
  86. package/dist/cmd/cloud/deployment/show.js.map +1 -0
  87. package/dist/cmd/cloud/deployment/undeploy.js +45 -0
  88. package/dist/cmd/cloud/deployment/undeploy.js.map +1 -0
  89. package/dist/cmd/cloud/deployment/utils.js +10 -0
  90. package/dist/cmd/cloud/deployment/utils.js.map +1 -0
  91. package/dist/cmd/cloud/domain.js +77 -0
  92. package/dist/cmd/cloud/domain.js.map +1 -0
  93. package/dist/cmd/cloud/env/delete.js +50 -0
  94. package/dist/cmd/cloud/env/delete.js.map +1 -0
  95. package/dist/cmd/cloud/env/get.js +65 -0
  96. package/dist/cmd/cloud/env/get.js.map +1 -0
  97. package/dist/cmd/cloud/env/import.js +113 -0
  98. package/dist/cmd/cloud/env/import.js.map +1 -0
  99. package/dist/cmd/cloud/env/index.js +24 -0
  100. package/dist/cmd/cloud/env/index.js.map +1 -0
  101. package/dist/cmd/cloud/env/list.js +58 -0
  102. package/dist/cmd/cloud/env/list.js.map +1 -0
  103. package/dist/cmd/cloud/env/pull.js +81 -0
  104. package/dist/cmd/cloud/env/pull.js.map +1 -0
  105. package/dist/cmd/cloud/env/push.js +61 -0
  106. package/dist/cmd/cloud/env/push.js.map +1 -0
  107. package/dist/cmd/cloud/env/set.js +73 -0
  108. package/dist/cmd/cloud/env/set.js.map +1 -0
  109. package/dist/cmd/cloud/index.js +31 -0
  110. package/dist/cmd/cloud/index.js.map +1 -0
  111. package/dist/cmd/cloud/keyvalue/create-namespace.js +41 -0
  112. package/dist/cmd/cloud/keyvalue/create-namespace.js.map +1 -0
  113. package/dist/cmd/cloud/keyvalue/delete-namespace.js +64 -0
  114. package/dist/cmd/cloud/keyvalue/delete-namespace.js.map +1 -0
  115. package/dist/cmd/cloud/keyvalue/delete.js +47 -0
  116. package/dist/cmd/cloud/keyvalue/delete.js.map +1 -0
  117. package/dist/cmd/cloud/keyvalue/get.js +65 -0
  118. package/dist/cmd/cloud/keyvalue/get.js.map +1 -0
  119. package/dist/cmd/cloud/keyvalue/index.js +32 -0
  120. package/dist/cmd/cloud/keyvalue/index.js.map +1 -0
  121. package/dist/cmd/cloud/keyvalue/keys.js +50 -0
  122. package/dist/cmd/cloud/keyvalue/keys.js.map +1 -0
  123. package/dist/cmd/cloud/keyvalue/list-namespaces.js +37 -0
  124. package/dist/cmd/cloud/keyvalue/list-namespaces.js.map +1 -0
  125. package/dist/cmd/cloud/keyvalue/repl.js +277 -0
  126. package/dist/cmd/cloud/keyvalue/repl.js.map +1 -0
  127. package/dist/cmd/cloud/keyvalue/search.js +72 -0
  128. package/dist/cmd/cloud/keyvalue/search.js.map +1 -0
  129. package/dist/cmd/cloud/keyvalue/set.js +59 -0
  130. package/dist/cmd/cloud/keyvalue/set.js.map +1 -0
  131. package/dist/cmd/cloud/keyvalue/stats.js +82 -0
  132. package/dist/cmd/cloud/keyvalue/stats.js.map +1 -0
  133. package/dist/cmd/cloud/keyvalue/util.js +19 -0
  134. package/dist/cmd/cloud/keyvalue/util.js.map +1 -0
  135. package/dist/cmd/cloud/objectstore/delete-bucket.js +66 -0
  136. package/dist/cmd/cloud/objectstore/delete-bucket.js.map +1 -0
  137. package/dist/cmd/cloud/objectstore/delete.js +56 -0
  138. package/dist/cmd/cloud/objectstore/delete.js.map +1 -0
  139. package/dist/cmd/cloud/objectstore/get.js +64 -0
  140. package/dist/cmd/cloud/objectstore/get.js.map +1 -0
  141. package/dist/cmd/cloud/objectstore/index.js +28 -0
  142. package/dist/cmd/cloud/objectstore/index.js.map +1 -0
  143. package/dist/cmd/cloud/objectstore/list-buckets.js +37 -0
  144. package/dist/cmd/cloud/objectstore/list-buckets.js.map +1 -0
  145. package/dist/cmd/cloud/objectstore/list-keys.js +52 -0
  146. package/dist/cmd/cloud/objectstore/list-keys.js.map +1 -0
  147. package/dist/cmd/cloud/objectstore/put.js +57 -0
  148. package/dist/cmd/cloud/objectstore/put.js.map +1 -0
  149. package/dist/cmd/cloud/objectstore/repl.js +219 -0
  150. package/dist/cmd/cloud/objectstore/repl.js.map +1 -0
  151. package/dist/cmd/cloud/objectstore/url.js +55 -0
  152. package/dist/cmd/cloud/objectstore/url.js.map +1 -0
  153. package/dist/cmd/cloud/objectstore/util.js +18 -0
  154. package/dist/cmd/cloud/objectstore/util.js.map +1 -0
  155. package/dist/cmd/cloud/resource/add.js +70 -0
  156. package/dist/cmd/cloud/resource/add.js.map +1 -0
  157. package/dist/cmd/cloud/resource/delete.js +126 -0
  158. package/dist/cmd/cloud/resource/delete.js.map +1 -0
  159. package/dist/cmd/cloud/resource/index.js +12 -0
  160. package/dist/cmd/cloud/resource/index.js.map +1 -0
  161. package/dist/cmd/cloud/resource/list.js +89 -0
  162. package/dist/cmd/cloud/resource/list.js.map +1 -0
  163. package/dist/cmd/cloud/scp/download.js +72 -0
  164. package/dist/cmd/cloud/scp/download.js.map +1 -0
  165. package/dist/cmd/cloud/scp/index.js +10 -0
  166. package/dist/cmd/cloud/scp/index.js.map +1 -0
  167. package/dist/cmd/cloud/scp/upload.js +75 -0
  168. package/dist/cmd/cloud/scp/upload.js.map +1 -0
  169. package/dist/cmd/cloud/secret/delete.js +50 -0
  170. package/dist/cmd/cloud/secret/delete.js.map +1 -0
  171. package/dist/cmd/cloud/secret/get.js +69 -0
  172. package/dist/cmd/cloud/secret/get.js.map +1 -0
  173. package/dist/cmd/cloud/secret/import.js +88 -0
  174. package/dist/cmd/cloud/secret/import.js.map +1 -0
  175. package/dist/cmd/cloud/secret/index.js +24 -0
  176. package/dist/cmd/cloud/secret/index.js.map +1 -0
  177. package/dist/cmd/cloud/secret/list.js +58 -0
  178. package/dist/cmd/cloud/secret/list.js.map +1 -0
  179. package/dist/cmd/cloud/secret/pull.js +81 -0
  180. package/dist/cmd/cloud/secret/pull.js.map +1 -0
  181. package/dist/cmd/cloud/secret/push.js +61 -0
  182. package/dist/cmd/cloud/secret/push.js.map +1 -0
  183. package/dist/cmd/cloud/secret/set.js +57 -0
  184. package/dist/cmd/cloud/secret/set.js.map +1 -0
  185. package/dist/cmd/cloud/session/get.d.ts.map +1 -1
  186. package/dist/cmd/cloud/session/get.js +155 -0
  187. package/dist/cmd/cloud/session/get.js.map +1 -0
  188. package/dist/cmd/cloud/session/index.js +11 -0
  189. package/dist/cmd/cloud/session/index.js.map +1 -0
  190. package/dist/cmd/cloud/session/list.js +132 -0
  191. package/dist/cmd/cloud/session/list.js.map +1 -0
  192. package/dist/cmd/cloud/session/logs.js +56 -0
  193. package/dist/cmd/cloud/session/logs.js.map +1 -0
  194. package/dist/cmd/cloud/ssh.js +67 -0
  195. package/dist/cmd/cloud/ssh.js.map +1 -0
  196. package/dist/cmd/dev/agents.js +103 -0
  197. package/dist/cmd/dev/agents.js.map +1 -0
  198. package/dist/cmd/dev/api.js +26 -0
  199. package/dist/cmd/dev/api.js.map +1 -0
  200. package/dist/cmd/dev/download.js +77 -0
  201. package/dist/cmd/dev/download.js.map +1 -0
  202. package/dist/cmd/dev/index.js +745 -0
  203. package/dist/cmd/dev/index.js.map +1 -0
  204. package/dist/cmd/dev/sync.js +229 -0
  205. package/dist/cmd/dev/sync.js.map +1 -0
  206. package/dist/cmd/dev/templates.js +75 -0
  207. package/dist/cmd/dev/templates.js.map +1 -0
  208. package/dist/cmd/index.js +49 -0
  209. package/dist/cmd/index.js.map +1 -0
  210. package/dist/cmd/profile/create.js +89 -0
  211. package/dist/cmd/profile/create.js.map +1 -0
  212. package/dist/cmd/profile/delete.js +63 -0
  213. package/dist/cmd/profile/delete.js.map +1 -0
  214. package/dist/cmd/profile/index.js +14 -0
  215. package/dist/cmd/profile/index.js.map +1 -0
  216. package/dist/cmd/profile/list.js +28 -0
  217. package/dist/cmd/profile/list.js.map +1 -0
  218. package/dist/cmd/profile/show.js +68 -0
  219. package/dist/cmd/profile/show.js.map +1 -0
  220. package/dist/cmd/profile/use.js +37 -0
  221. package/dist/cmd/profile/use.js.map +1 -0
  222. package/dist/cmd/project/create.js +92 -0
  223. package/dist/cmd/project/create.js.map +1 -0
  224. package/dist/cmd/project/delete.js +117 -0
  225. package/dist/cmd/project/delete.js.map +1 -0
  226. package/dist/cmd/project/download.js +217 -0
  227. package/dist/cmd/project/download.js.map +1 -0
  228. package/dist/cmd/project/index.js +12 -0
  229. package/dist/cmd/project/index.js.map +1 -0
  230. package/dist/cmd/project/list.js +51 -0
  231. package/dist/cmd/project/list.js.map +1 -0
  232. package/dist/cmd/project/show.js +54 -0
  233. package/dist/cmd/project/show.js.map +1 -0
  234. package/dist/cmd/project/template-flow.js +315 -0
  235. package/dist/cmd/project/template-flow.js.map +1 -0
  236. package/dist/cmd/project/templates.js +31 -0
  237. package/dist/cmd/project/templates.js.map +1 -0
  238. package/dist/cmd/repl/index.js +444 -0
  239. package/dist/cmd/repl/index.js.map +1 -0
  240. package/dist/cmd/version/index.js +29 -0
  241. package/dist/cmd/version/index.js.map +1 -0
  242. package/dist/command-prefix.js +37 -0
  243. package/dist/command-prefix.js.map +1 -0
  244. package/dist/config.js +536 -0
  245. package/dist/config.js.map +1 -0
  246. package/dist/crypto/box.js +382 -0
  247. package/dist/crypto/box.js.map +1 -0
  248. package/dist/crypto/box.test.js +317 -0
  249. package/dist/crypto/box.test.js.map +1 -0
  250. package/dist/download.js +64 -0
  251. package/dist/download.js.map +1 -0
  252. package/dist/env-util.js +219 -0
  253. package/dist/env-util.js.map +1 -0
  254. package/dist/env-util.test.js +146 -0
  255. package/dist/env-util.test.js.map +1 -0
  256. package/dist/errors.js +177 -0
  257. package/dist/errors.js.map +1 -0
  258. package/dist/explain.js +90 -0
  259. package/dist/explain.js.map +1 -0
  260. package/dist/index.js +23 -0
  261. package/dist/index.js.map +1 -0
  262. package/dist/json.js +29 -0
  263. package/dist/json.js.map +1 -0
  264. package/dist/legacy-check.js +104 -0
  265. package/dist/legacy-check.js.map +1 -0
  266. package/dist/output.js +207 -0
  267. package/dist/output.js.map +1 -0
  268. package/dist/repl.js +1176 -0
  269. package/dist/repl.js.map +1 -0
  270. package/dist/runtime.js +19 -0
  271. package/dist/runtime.js.map +1 -0
  272. package/dist/schema-generator.js +289 -0
  273. package/dist/schema-generator.js.map +1 -0
  274. package/dist/schema-parser.js +145 -0
  275. package/dist/schema-parser.js.map +1 -0
  276. package/dist/sound.js +44 -0
  277. package/dist/sound.js.map +1 -0
  278. package/dist/steps.js +293 -0
  279. package/dist/steps.js.map +1 -0
  280. package/dist/terminal.js +130 -0
  281. package/dist/terminal.js.map +1 -0
  282. package/dist/tui.js +1124 -0
  283. package/dist/tui.js.map +1 -0
  284. package/dist/types.js +163 -0
  285. package/dist/types.js.map +1 -0
  286. package/dist/utils/detectSubagent.js +25 -0
  287. package/dist/utils/detectSubagent.js.map +1 -0
  288. package/dist/utils/format.js +21 -0
  289. package/dist/utils/format.js.map +1 -0
  290. package/dist/utils/zip.js +33 -0
  291. package/dist/utils/zip.js.map +1 -0
  292. package/dist/version.js +24 -0
  293. package/dist/version.js.map +1 -0
  294. package/package.json +6 -6
  295. package/src/banner.ts +1 -1
  296. package/src/cmd/build/index.ts +18 -22
  297. package/src/cmd/build/plugin.ts +95 -64
  298. package/src/cmd/cloud/session/get.ts +20 -14
  299. package/src/cmd/cloud/session/list.ts +1 -1
@@ -1,6 +1,6 @@
1
1
  import type { BunPlugin } from 'bun';
2
2
  import { dirname, basename, join, resolve } from 'node:path';
3
- import { existsSync, writeFileSync, mkdirSync } from 'node:fs';
3
+ import { existsSync, writeFileSync, mkdirSync, unlinkSync } from 'node:fs';
4
4
  import type { BuildMetadata } from '@agentuity/server';
5
5
  import { parseAgentMetadata, parseRoute, parseEvalMetadata } from './ast';
6
6
  import { applyPatch, generatePatches } from './patch';
@@ -123,86 +123,63 @@ function generateAgentRegistry(srcDir: string, agentInfo: Array<Record<string, s
123
123
  })
124
124
  .join('\n');
125
125
 
126
- // Generate nested agent type definitions
127
- const agentTypeLines: string[] = [];
126
+ // Generate nested agent type definitions for Hono Context augmentation
127
+ const honoAgentTypeLines: string[] = [];
128
128
  for (const parentAgent of parentAgents) {
129
129
  const parentCamelName = toCamelCase(parentAgent.name);
130
130
  const children = subagentsByParent.get(parentAgent.name) || [];
131
131
 
132
132
  if (children.length === 0) {
133
133
  // No subagents
134
- agentTypeLines.push(
135
- ` ${parentCamelName}: AgentRunner<AgentRegistry['${parentCamelName}']['inputSchema'], AgentRegistry['${parentCamelName}']['outputSchema'], AgentRegistry['${parentCamelName}']['stream'] extends true ? true : false>;`
134
+ honoAgentTypeLines.push(
135
+ ` ${parentCamelName}: AgentRunner<LocalAgentRegistry['${parentCamelName}']['inputSchema'], LocalAgentRegistry['${parentCamelName}']['outputSchema'], LocalAgentRegistry['${parentCamelName}']['stream'] extends true ? true : false>;`
136
136
  );
137
137
  } else {
138
138
  // Has subagents - create intersection type
139
- agentTypeLines.push(
140
- ` ${parentCamelName}: AgentRunner<AgentRegistry['${parentCamelName}']['inputSchema'], AgentRegistry['${parentCamelName}']['outputSchema'], AgentRegistry['${parentCamelName}']['stream'] extends true ? true : false> & {`
139
+ honoAgentTypeLines.push(
140
+ ` ${parentCamelName}: AgentRunner<LocalAgentRegistry['${parentCamelName}']['inputSchema'], LocalAgentRegistry['${parentCamelName}']['outputSchema'], LocalAgentRegistry['${parentCamelName}']['stream'] extends true ? true : false> & {`
141
141
  );
142
142
  for (const child of children) {
143
143
  const childCamelName = toCamelCase(child.name);
144
144
  const fullChildName = toCamelCase(`${parentAgent.name}_${child.name}`);
145
- agentTypeLines.push(
145
+ honoAgentTypeLines.push(
146
146
  ` ${childCamelName}: AgentRunner<typeof ${fullChildName}Agent['inputSchema'], typeof ${fullChildName}Agent['outputSchema'], typeof ${fullChildName}Agent['stream'] extends true ? true : false>;`
147
147
  );
148
148
  }
149
- agentTypeLines.push(` };`);
149
+ honoAgentTypeLines.push(` };`);
150
150
  }
151
151
  }
152
- const agentTypes = agentTypeLines.join('\n');
152
+ const honoAgentTypes = honoAgentTypeLines.join('\n');
153
153
 
154
- const generatedContent = `// Auto-generated by Agentuity - do not edit manually
155
- ${imports}${evalsImportsStr}
156
- import type { AgentRunner, Logger } from '@agentuity/runtime';
157
- import type { KeyValueStorage, ObjectStorage, StreamStorage, VectorStorage } from '@agentuity/core';
158
-
159
- export const agentRegistry = {
160
- ${registry}
161
- } as const;
162
-
163
- export type AgentName = keyof typeof agentRegistry;
164
- export type AgentRegistry = typeof agentRegistry;
165
-
166
- // Typed runners for each agent
167
- ${typeExports}
168
-
169
- // Augment Context to provide strongly-typed agents
170
- declare module "hono" {
171
- interface Context {
172
- agentName: AgentName;
173
- agent: {
174
- ${agentTypes}
175
- };
176
- waitUntil: (promise: Promise<void> | (() => void | Promise<void>)) => void;
177
- logger: Logger;
178
- kv: KeyValueStorage;
179
- objectstore: ObjectStorage;
180
- stream: StreamStorage;
181
- vector: VectorStorage;
182
- }
183
- }
184
- `;
185
-
186
- const agentsDir = join(srcDir, 'agents');
187
- const registryPath = join(agentsDir, 'registry.generated.ts');
154
+ // Generate agent type definitions for AgentRegistry interface augmentation
155
+ const runtimeAgentTypeLines: string[] = [];
156
+ for (const parentAgent of parentAgents) {
157
+ const parentCamelName = toCamelCase(parentAgent.name);
158
+ const children = subagentsByParent.get(parentAgent.name) || [];
188
159
 
189
- // Ensure agents directory exists
190
- if (!existsSync(agentsDir)) {
191
- mkdirSync(agentsDir, { recursive: true });
160
+ if (children.length === 0) {
161
+ // No subagents - use typeof the imported agent
162
+ runtimeAgentTypeLines.push(
163
+ ` ${parentCamelName}: AgentRunner<typeof ${parentCamelName}Agent['inputSchema'], typeof ${parentCamelName}Agent['outputSchema'], typeof ${parentCamelName}Agent['stream'] extends true ? true : false>;`
164
+ );
165
+ } else {
166
+ // Has subagents - create intersection type using typeof
167
+ runtimeAgentTypeLines.push(
168
+ ` ${parentCamelName}: AgentRunner<typeof ${parentCamelName}Agent['inputSchema'], typeof ${parentCamelName}Agent['outputSchema'], typeof ${parentCamelName}Agent['stream'] extends true ? true : false> & {`
169
+ );
170
+ for (const child of children) {
171
+ const childCamelName = toCamelCase(child.name);
172
+ const fullChildName = toCamelCase(`${parentAgent.name}_${child.name}`);
173
+ runtimeAgentTypeLines.push(
174
+ ` ${childCamelName}: AgentRunner<typeof ${fullChildName}Agent['inputSchema'], typeof ${fullChildName}Agent['outputSchema'], typeof ${fullChildName}Agent['stream'] extends true ? true : false>;`
175
+ );
176
+ }
177
+ runtimeAgentTypeLines.push(` };`);
178
+ }
192
179
  }
193
-
194
- writeFileSync(registryPath, generatedContent, 'utf-8');
180
+ const runtimeAgentTypes = runtimeAgentTypeLines.join('\n');
195
181
 
196
182
  // Generate React client types with nested structure
197
- const clientImports = agentInfo
198
- .map(({ name, path, parent }) => {
199
- const fullName = parent ? `${parent}_${name}` : name;
200
- const camelName = toCamelCase(fullName);
201
- const relativePath = path.replace(/^\.\/agents\//, './');
202
- return `import type ${camelName}Agent from '${relativePath}';`;
203
- })
204
- .join('\n');
205
-
206
183
  const clientAgentTypeLines: string[] = [];
207
184
  for (const parentAgent of parentAgents) {
208
185
  const parentCamelName = toCamelCase(parentAgent.name);
@@ -226,21 +203,75 @@ ${agentTypes}
226
203
  }
227
204
  }
228
205
  }
206
+ const reactAgentTypes = clientAgentTypeLines.join('\n');
229
207
 
230
- const clientTypesContent = `// Auto-generated by Agentuity - do not edit manually
231
- // This file augments @agentuity/react with your project's agent types
232
- ${clientImports}
208
+ const generatedContent = `/// <reference types="hono" />
209
+ // Auto-generated by Agentuity - do not edit manually
210
+ ${imports}${evalsImportsStr}
211
+ import type { AgentRunner, Logger } from '@agentuity/runtime';
212
+ import type { KeyValueStorage, ObjectStorage, StreamStorage, VectorStorage } from '@agentuity/core';
233
213
  import type { Agent } from '@agentuity/react';
234
214
 
215
+ export const agentRegistry = {
216
+ ${registry}
217
+ } as const;
218
+
219
+ // Local type aliases for Hono augmentation
220
+ type LocalAgentName = keyof typeof agentRegistry;
221
+ type LocalAgentRegistry = typeof agentRegistry;
222
+
223
+ // Typed runners for each agent
224
+ ${typeExports}
225
+
226
+ // Augment @agentuity/runtime types with strongly-typed agents from this project
227
+ declare module "@agentuity/runtime" {
228
+ // Augment the AgentRegistry interface with project-specific strongly-typed agents
229
+ // eslint-disable-next-line @typescript-eslint/no-empty-object-type
230
+ export interface AgentRegistry {
231
+ ${runtimeAgentTypes}
232
+ }
233
+ }
234
+
235
+ // Augment Hono Context to provide strongly-typed agents and runtime services
236
+ // Note: Properties are added to Context via middleware in @agentuity/runtime
237
+ declare module "hono" {
238
+ interface Context {
239
+ agentName: LocalAgentName;
240
+ agent: {
241
+ ${honoAgentTypes}
242
+ };
243
+ waitUntil: (promise: Promise<void> | (() => void | Promise<void>)) => void;
244
+ logger: Logger;
245
+ kv: KeyValueStorage;
246
+ objectstore: ObjectStorage;
247
+ stream: StreamStorage;
248
+ vector: VectorStorage;
249
+ }
250
+ }
251
+
252
+ // Augment @agentuity/react types with strongly-typed agents from this project
235
253
  declare module '@agentuity/react' {
236
254
  interface AgentRegistry {
237
- ${clientAgentTypeLines.join('\n')}
255
+ ${reactAgentTypes}
238
256
  }
239
257
  }
240
258
  `;
241
259
 
242
- const clientTypesPath = join(agentsDir, 'types.generated.d.ts');
243
- writeFileSync(clientTypesPath, clientTypesContent, 'utf-8');
260
+ const agentsDir = join(srcDir, 'agents');
261
+ const registryPath = join(agentsDir, 'registry.generated.ts');
262
+ const legacyTypesPath = join(agentsDir, 'types.generated.d.ts');
263
+
264
+ // Ensure agents directory exists
265
+ if (!existsSync(agentsDir)) {
266
+ mkdirSync(agentsDir, { recursive: true });
267
+ }
268
+
269
+ writeFileSync(registryPath, generatedContent, 'utf-8');
270
+
271
+ // Remove legacy types.generated.d.ts if it exists (now consolidated into registry.generated.ts)
272
+ if (existsSync(legacyTypesPath)) {
273
+ unlinkSync(legacyTypesPath);
274
+ }
244
275
  }
245
276
 
246
277
  let metadata: Partial<BuildMetadata>;
@@ -27,15 +27,19 @@ const SessionGetResponseSchema = z.object({
27
27
  route_id: z.string().describe('Route ID'),
28
28
  thread_id: z.string().describe('Thread ID'),
29
29
  agentNames: z.array(z.string()).describe('Agent names'),
30
- evalRuns: z.array(z.object({
31
- id: z.string(),
32
- created_at: z.string(),
33
- eval_id: z.string(),
34
- pending: z.boolean(),
35
- success: z.boolean(),
36
- error: z.string().nullable(),
37
- result: z.string().nullable(),
38
- })).describe('Eval runs'),
30
+ evalRuns: z
31
+ .array(
32
+ z.object({
33
+ id: z.string(),
34
+ created_at: z.string(),
35
+ eval_id: z.string(),
36
+ pending: z.boolean(),
37
+ success: z.boolean(),
38
+ error: z.string().nullable(),
39
+ result: z.string().nullable(),
40
+ })
41
+ )
42
+ .describe('Eval runs'),
39
43
  });
40
44
 
41
45
  export const getSubcommand = createSubcommand({
@@ -80,7 +84,7 @@ export const getSubcommand = createSubcommand({
80
84
  route_id: session.route_id,
81
85
  thread_id: session.thread_id,
82
86
  agentNames: enriched.agentNames,
83
- evalRuns: enriched.evalRuns.map(run => ({
87
+ evalRuns: enriched.evalRuns.map((run) => ({
84
88
  id: run.id,
85
89
  eval_id: run.eval_id,
86
90
  created_at: run.created_at,
@@ -122,10 +126,12 @@ export const getSubcommand = createSubcommand({
122
126
  console.log(tui.bold('Error: ') + tui.error(session.error));
123
127
  }
124
128
  if (enriched.agentNames.length > 0) {
125
- const agentDisplay = enriched.agentNames.map((name, idx) => {
126
- const agentId = session.agent_ids[idx];
127
- return `${name} ${tui.muted(`(${agentId})`)}`;
128
- }).join(', ');
129
+ const agentDisplay = enriched.agentNames
130
+ .map((name, idx) => {
131
+ const agentId = session.agent_ids[idx];
132
+ return `${name} ${tui.muted(`(${agentId})`)}`;
133
+ })
134
+ .join(', ');
129
135
  console.log(tui.bold('Agents: ') + agentDisplay);
130
136
  }
131
137
  console.log(tui.bold('Route ID: ') + session.route_id);
@@ -70,7 +70,7 @@ export const listSubcommand = createSubcommand({
70
70
  async handler(ctx) {
71
71
  const { config, logger, auth, project, opts, options } = ctx;
72
72
  const catalystClient = getCatalystAPIClient(config, logger, auth);
73
-
73
+
74
74
  const projectId = opts.projectId || project?.projectId;
75
75
 
76
76
  try {