@aexol/spectral 0.9.229 → 0.9.231

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 (189) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/dist/auth-helper.d.ts.map +1 -1
  3. package/dist/auth-helper.js +14 -8
  4. package/dist/commands/login.d.ts +12 -4
  5. package/dist/commands/login.d.ts.map +1 -1
  6. package/dist/commands/login.js +36 -15
  7. package/dist/commands/serve.d.ts.map +1 -1
  8. package/dist/commands/serve.js +3 -0
  9. package/dist/config.d.ts +15 -0
  10. package/dist/config.d.ts.map +1 -1
  11. package/dist/config.js +10 -1
  12. package/dist/designer/data/skills/blog-post.d.ts +3 -0
  13. package/dist/designer/data/skills/blog-post.d.ts.map +1 -0
  14. package/dist/designer/data/skills/blog-post.js +84 -0
  15. package/dist/designer/data/skills/blog-post.ts +87 -0
  16. package/dist/designer/data/skills/critique.d.ts +3 -0
  17. package/dist/designer/data/skills/critique.d.ts.map +1 -0
  18. package/dist/designer/data/skills/critique.js +109 -0
  19. package/dist/designer/data/skills/critique.ts +112 -0
  20. package/dist/designer/data/skills/dashboard.d.ts +3 -0
  21. package/dist/designer/data/skills/dashboard.d.ts.map +1 -0
  22. package/dist/designer/data/skills/dashboard.js +165 -0
  23. package/dist/designer/data/skills/dashboard.ts +168 -0
  24. package/dist/designer/data/skills/design-brief.d.ts +3 -0
  25. package/dist/designer/data/skills/design-brief.d.ts.map +1 -0
  26. package/dist/designer/data/skills/design-brief.js +141 -0
  27. package/dist/designer/data/skills/design-brief.ts +144 -0
  28. package/dist/designer/data/skills/design-skill.d.ts +10 -0
  29. package/dist/designer/data/skills/design-skill.d.ts.map +1 -0
  30. package/dist/designer/data/skills/design-skill.js +1 -0
  31. package/dist/designer/data/skills/design-skill.ts +9 -0
  32. package/dist/designer/data/skills/docs-page.d.ts +3 -0
  33. package/dist/designer/data/skills/docs-page.d.ts.map +1 -0
  34. package/dist/designer/data/skills/docs-page.js +68 -0
  35. package/dist/designer/data/skills/docs-page.ts +71 -0
  36. package/dist/designer/data/skills/index.d.ts +3 -0
  37. package/dist/designer/data/skills/index.d.ts.map +1 -0
  38. package/dist/designer/data/skills/index.js +28 -0
  39. package/dist/designer/data/skills/index.ts +30 -0
  40. package/dist/designer/data/skills/magazine-poster.d.ts +3 -0
  41. package/dist/designer/data/skills/magazine-poster.d.ts.map +1 -0
  42. package/dist/designer/data/skills/magazine-poster.js +70 -0
  43. package/dist/designer/data/skills/magazine-poster.ts +73 -0
  44. package/dist/designer/data/skills/mobile-app.d.ts +3 -0
  45. package/dist/designer/data/skills/mobile-app.d.ts.map +1 -0
  46. package/dist/designer/data/skills/mobile-app.js +229 -0
  47. package/dist/designer/data/skills/mobile-app.ts +232 -0
  48. package/dist/designer/data/skills/motion-frames.d.ts +3 -0
  49. package/dist/designer/data/skills/motion-frames.d.ts.map +1 -0
  50. package/dist/designer/data/skills/motion-frames.js +121 -0
  51. package/dist/designer/data/skills/motion-frames.ts +124 -0
  52. package/dist/designer/data/skills/pricing-page.d.ts +3 -0
  53. package/dist/designer/data/skills/pricing-page.d.ts.map +1 -0
  54. package/dist/designer/data/skills/pricing-page.js +76 -0
  55. package/dist/designer/data/skills/pricing-page.ts +79 -0
  56. package/dist/designer/data/skills/saas-landing.d.ts +3 -0
  57. package/dist/designer/data/skills/saas-landing.d.ts.map +1 -0
  58. package/dist/designer/data/skills/saas-landing.js +71 -0
  59. package/dist/designer/data/skills/saas-landing.ts +74 -0
  60. package/dist/designer/data/skills/slide-deck.d.ts +3 -0
  61. package/dist/designer/data/skills/slide-deck.d.ts.map +1 -0
  62. package/dist/designer/data/skills/slide-deck.js +213 -0
  63. package/dist/designer/data/skills/slide-deck.ts +216 -0
  64. package/dist/designer/data/skills/social-carousel.d.ts +3 -0
  65. package/dist/designer/data/skills/social-carousel.d.ts.map +1 -0
  66. package/dist/designer/data/skills/social-carousel.js +135 -0
  67. package/dist/designer/data/skills/social-carousel.ts +138 -0
  68. package/dist/designer/data/skills/web-prototype.d.ts +3 -0
  69. package/dist/designer/data/skills/web-prototype.d.ts.map +1 -0
  70. package/dist/designer/data/skills/web-prototype.js +159 -0
  71. package/dist/designer/data/skills/web-prototype.ts +162 -0
  72. package/dist/designer/skills.d.ts +4 -10
  73. package/dist/designer/skills.d.ts.map +1 -1
  74. package/dist/designer/skills.js +2 -1643
  75. package/dist/extensions/wizard/index.js +9 -1
  76. package/dist/generated/parser/ast/nodes.d.ts +115 -0
  77. package/dist/generated/parser/ast/nodes.d.ts.map +1 -0
  78. package/dist/generated/parser/ast/nodes.js +8 -0
  79. package/dist/generated/parser/lexer/lexer.d.ts +28 -0
  80. package/dist/generated/parser/lexer/lexer.d.ts.map +1 -0
  81. package/dist/generated/parser/{lexer.js → lexer/lexer.js} +1 -180
  82. package/dist/generated/parser/{lexer.d.ts → lexer/tokens.d.ts} +5 -24
  83. package/dist/generated/parser/lexer/tokens.d.ts.map +1 -0
  84. package/dist/generated/parser/lexer/tokens.js +187 -0
  85. package/dist/generated/parser/mod.d.ts +5 -7
  86. package/dist/generated/parser/mod.d.ts.map +1 -1
  87. package/dist/generated/parser/mod.js +2 -1
  88. package/dist/generated/parser/parser/cursor.d.ts +47 -0
  89. package/dist/generated/parser/parser/cursor.d.ts.map +1 -0
  90. package/dist/generated/parser/parser/cursor.js +12 -0
  91. package/dist/generated/parser/parser/definitions.d.ts +16 -0
  92. package/dist/generated/parser/parser/definitions.d.ts.map +1 -0
  93. package/dist/generated/parser/parser/definitions.js +353 -0
  94. package/dist/generated/parser/parser/expressions.d.ts +17 -0
  95. package/dist/generated/parser/parser/expressions.d.ts.map +1 -0
  96. package/dist/generated/parser/parser/expressions.js +165 -0
  97. package/dist/generated/parser/parser.d.ts +18 -133
  98. package/dist/generated/parser/parser.d.ts.map +1 -1
  99. package/dist/generated/parser/parser.js +9 -505
  100. package/dist/generated/parser/tokenizer.d.ts +1 -2
  101. package/dist/generated/parser/tokenizer.d.ts.map +1 -1
  102. package/dist/generated/parser/tokenizer.js +2 -1
  103. package/dist/generated/parser/validator.d.ts +1 -1
  104. package/dist/generated/parser/validator.d.ts.map +1 -1
  105. package/dist/generated/zeus/const.d.ts.map +1 -1
  106. package/dist/generated/zeus/const.js +21 -0
  107. package/dist/generated/zeus/index.d.ts +98 -0
  108. package/dist/generated/zeus/index.d.ts.map +1 -1
  109. package/dist/mcp/glimpse-ui.js +9 -1
  110. package/dist/relay/dispatcher.d.ts +11 -104
  111. package/dist/relay/dispatcher.d.ts.map +1 -1
  112. package/dist/relay/dispatcher.js +10 -1130
  113. package/dist/relay/registration.d.ts +10 -2
  114. package/dist/relay/registration.d.ts.map +1 -1
  115. package/dist/relay/registration.js +32 -3
  116. package/dist/relay/rest.d.ts +31 -0
  117. package/dist/relay/rest.d.ts.map +1 -0
  118. package/dist/relay/rest.js +85 -0
  119. package/dist/relay/routing.d.ts +109 -0
  120. package/dist/relay/routing.d.ts.map +1 -0
  121. package/dist/relay/routing.js +669 -0
  122. package/dist/relay/wizard-login.d.ts +17 -0
  123. package/dist/relay/wizard-login.d.ts.map +1 -0
  124. package/dist/relay/wizard-login.js +419 -0
  125. package/dist/sdk/agent-core/agent-loop.d.ts +2 -9
  126. package/dist/sdk/agent-core/agent-loop.d.ts.map +1 -1
  127. package/dist/sdk/agent-core/agent-loop.js +4 -288
  128. package/dist/sdk/agent-core/tool-execution.d.ts +33 -0
  129. package/dist/sdk/agent-core/tool-execution.d.ts.map +1 -0
  130. package/dist/sdk/agent-core/tool-execution.js +300 -0
  131. package/dist/sdk/ai/env-api-keys.js +9 -1
  132. package/dist/sdk/ai/providers/openai/reasoning-replay.d.ts +48 -0
  133. package/dist/sdk/ai/providers/openai/reasoning-replay.d.ts.map +1 -0
  134. package/dist/sdk/ai/providers/openai/reasoning-replay.js +209 -0
  135. package/dist/sdk/ai/providers/openai-completions.d.ts.map +1 -1
  136. package/dist/sdk/ai/providers/openai-completions.js +1 -203
  137. package/dist/sdk/coding-agent/core/compaction/compaction.d.ts +6 -118
  138. package/dist/sdk/coding-agent/core/compaction/compaction.d.ts.map +1 -1
  139. package/dist/sdk/coding-agent/core/compaction/compaction.js +11 -733
  140. package/dist/sdk/coding-agent/core/compaction/cut-points.d.ts +58 -0
  141. package/dist/sdk/coding-agent/core/compaction/cut-points.d.ts.map +1 -0
  142. package/dist/sdk/coding-agent/core/compaction/cut-points.js +191 -0
  143. package/dist/sdk/coding-agent/core/compaction/dedupe.d.ts +28 -0
  144. package/dist/sdk/coding-agent/core/compaction/dedupe.d.ts.map +1 -0
  145. package/dist/sdk/coding-agent/core/compaction/dedupe.js +156 -0
  146. package/dist/sdk/coding-agent/core/compaction/summarize.d.ts +21 -0
  147. package/dist/sdk/coding-agent/core/compaction/summarize.d.ts.map +1 -0
  148. package/dist/sdk/coding-agent/core/compaction/summarize.js +181 -0
  149. package/dist/sdk/coding-agent/core/compaction/tokens.d.ts +47 -0
  150. package/dist/sdk/coding-agent/core/compaction/tokens.d.ts.map +1 -0
  151. package/dist/sdk/coding-agent/core/compaction/tokens.js +224 -0
  152. package/dist/sdk/coding-agent/core/extensions/session-events.d.ts +157 -0
  153. package/dist/sdk/coding-agent/core/extensions/session-events.d.ts.map +1 -0
  154. package/dist/sdk/coding-agent/core/extensions/session-events.js +13 -0
  155. package/dist/sdk/coding-agent/core/extensions/types.d.ts +6 -365
  156. package/dist/sdk/coding-agent/core/extensions/types.d.ts.map +1 -1
  157. package/dist/sdk/coding-agent/core/extensions/types.js +2 -10
  158. package/dist/sdk/coding-agent/core/extensions/ui-types.d.ts +219 -0
  159. package/dist/sdk/coding-agent/core/extensions/ui-types.d.ts.map +1 -0
  160. package/dist/sdk/coding-agent/core/extensions/ui-types.js +4 -0
  161. package/dist/sdk/coding-agent/core/package/default-package-manager.d.ts +115 -0
  162. package/dist/sdk/coding-agent/core/package/default-package-manager.d.ts.map +1 -0
  163. package/dist/sdk/coding-agent/core/package/default-package-manager.js +1184 -0
  164. package/dist/sdk/coding-agent/core/package/discovery.d.ts +20 -0
  165. package/dist/sdk/coding-agent/core/package/discovery.d.ts.map +1 -0
  166. package/dist/sdk/coding-agent/core/package/discovery.js +283 -0
  167. package/dist/sdk/coding-agent/core/package/ignore.d.ts +29 -0
  168. package/dist/sdk/coding-agent/core/package/ignore.d.ts.map +1 -0
  169. package/dist/sdk/coding-agent/core/package/ignore.js +235 -0
  170. package/dist/sdk/coding-agent/core/package/types.d.ts +128 -0
  171. package/dist/sdk/coding-agent/core/package/types.d.ts.map +1 -0
  172. package/dist/sdk/coding-agent/core/package/types.js +18 -0
  173. package/dist/sdk/coding-agent/core/package/update-check.d.ts +43 -0
  174. package/dist/sdk/coding-agent/core/package/update-check.d.ts.map +1 -0
  175. package/dist/sdk/coding-agent/core/package/update-check.js +253 -0
  176. package/dist/sdk/coding-agent/core/package-manager.d.ts +2 -188
  177. package/dist/sdk/coding-agent/core/package-manager.d.ts.map +1 -1
  178. package/dist/sdk/coding-agent/core/package-manager.js +1 -1940
  179. package/dist/sdk/coding-agent/core/session/migrate.d.ts +18 -0
  180. package/dist/sdk/coding-agent/core/session/migrate.d.ts.map +1 -0
  181. package/dist/sdk/coding-agent/core/session/migrate.js +78 -0
  182. package/dist/sdk/coding-agent/core/session/types.d.ts +165 -0
  183. package/dist/sdk/coding-agent/core/session/types.d.ts.map +1 -0
  184. package/dist/sdk/coding-agent/core/session/types.js +4 -0
  185. package/dist/sdk/coding-agent/core/session-manager.d.ts +3 -161
  186. package/dist/sdk/coding-agent/core/session-manager.d.ts.map +1 -1
  187. package/dist/sdk/coding-agent/core/session-manager.js +4 -72
  188. package/package.json +2 -2
  189. package/dist/generated/parser/lexer.d.ts.map +0 -1
@@ -7,7 +7,9 @@
7
7
  * workflows, and agent structures.
8
8
  */
9
9
  import { Tokenizer } from "./tokenizer.js";
10
- import { TokenType } from "./lexer.js";
10
+ import { TokenType } from "./lexer/tokens.js";
11
+ import { parseAgent, parseRole, parseTypeDefinition, parseVisitor, parseWorkflow, } from "./parser/definitions.js";
12
+ import { parseCondition } from "./parser/expressions.js";
11
13
  export class Parser {
12
14
  tokenizer;
13
15
  currentToken;
@@ -126,20 +128,20 @@ export class Parser {
126
128
  // Check for description before any definition
127
129
  const description = this.parseDescriptionIfPresent();
128
130
  if (this.check(TokenType.VISITOR)) {
129
- body.push(this.parseVisitor(description));
131
+ body.push(parseVisitor(this, description));
130
132
  }
131
133
  else if (this.check(TokenType.ROLE)) {
132
- body.push(this.parseRole(description));
134
+ body.push(parseRole(this, description));
133
135
  }
134
136
  else if (this.check(TokenType.WORKFLOW)) {
135
- body.push(this.parseWorkflow(description));
137
+ body.push(parseWorkflow(this, description));
136
138
  }
137
139
  else if (this.check(TokenType.AGENT)) {
138
- body.push(this.parseAgent(description));
140
+ body.push(parseAgent(this, description));
139
141
  }
140
142
  else if (this.check(TokenType.TYPE) || this.check(TokenType.ENUM) ||
141
143
  this.check(TokenType.INTERFACE)) {
142
- body.push(this.parseTypeDefinition(description));
144
+ body.push(parseTypeDefinition(this, description));
143
145
  }
144
146
  else {
145
147
  this.throwUnexpectedTopLevelToken(description);
@@ -157,34 +159,6 @@ export class Parser {
157
159
  },
158
160
  };
159
161
  }
160
- parseVisitor(description) {
161
- const startToken = this.consume(TokenType.VISITOR);
162
- let name;
163
- if (this.check(TokenType.IDENTIFIER)) {
164
- name = this.advance().value;
165
- }
166
- this.skipNewlines();
167
- this.consume(TokenType.LBRACE, "Expected '{' after visitor");
168
- this.skipNewlines();
169
- const capabilities = [];
170
- while (!this.check(TokenType.RBRACE) && !this.isAtEnd()) {
171
- capabilities.push(this.parseCapability());
172
- this.skipNewlines();
173
- }
174
- this.consume(TokenType.RBRACE, "Expected '}' after visitor body");
175
- return {
176
- type: "VisitorDefinition",
177
- name,
178
- description,
179
- capabilities,
180
- location: {
181
- start: startToken.location.offset,
182
- end: this.currentToken.location.offset,
183
- line: startToken.location.line,
184
- column: startToken.location.column,
185
- },
186
- };
187
- }
188
162
  parseCapability() {
189
163
  // Check for description before capability
190
164
  const description = this.parseDescriptionIfPresent();
@@ -236,7 +210,7 @@ export class Parser {
236
210
  // Check for inline conditions
237
211
  if (this.check(TokenType.IF) || this.check(TokenType.WHEN)) {
238
212
  this.advance();
239
- conditions.push(this.parseCondition());
213
+ conditions.push(parseCondition(this));
240
214
  }
241
215
  return {
242
216
  type: "Capability",
@@ -253,476 +227,6 @@ export class Parser {
253
227
  },
254
228
  };
255
229
  }
256
- parseCondition() {
257
- const startToken = this.currentToken;
258
- const expression = this.parseExpression();
259
- return {
260
- type: "Condition",
261
- expression,
262
- location: {
263
- start: startToken.location.offset,
264
- end: this.currentToken.location.offset,
265
- line: startToken.location.line,
266
- column: startToken.location.column,
267
- },
268
- };
269
- }
270
- parseExpression() {
271
- return this.parseOrExpression();
272
- }
273
- parseOrExpression() {
274
- const startToken = this.currentToken;
275
- let left = this.parseAndExpression();
276
- while (this.check(TokenType.OR)) {
277
- this.advance();
278
- const right = this.parseAndExpression();
279
- left = {
280
- type: "Expression",
281
- operator: "or",
282
- left,
283
- right,
284
- location: {
285
- start: startToken.location.offset,
286
- end: this.currentToken.location.offset,
287
- line: startToken.location.line,
288
- column: startToken.location.column,
289
- },
290
- };
291
- }
292
- return left;
293
- }
294
- parseAndExpression() {
295
- const startToken = this.currentToken;
296
- let left = this.parseComparisonExpression();
297
- while (this.check(TokenType.AND)) {
298
- this.advance();
299
- const right = this.parseComparisonExpression();
300
- left = {
301
- type: "Expression",
302
- operator: "and",
303
- left,
304
- right,
305
- location: {
306
- start: startToken.location.offset,
307
- end: this.currentToken.location.offset,
308
- line: startToken.location.line,
309
- column: startToken.location.column,
310
- },
311
- };
312
- }
313
- return left;
314
- }
315
- parseComparisonExpression() {
316
- const startToken = this.currentToken;
317
- let left = this.parsePrimaryExpression();
318
- while (this.checkAny(TokenType.EQ, TokenType.NEQ, TokenType.LT, TokenType.LTE, TokenType.GT, TokenType.GTE)) {
319
- const op = this.advance().value;
320
- const right = this.parsePrimaryExpression();
321
- left = {
322
- type: "Expression",
323
- operator: op,
324
- left,
325
- right,
326
- location: {
327
- start: startToken.location.offset,
328
- end: this.currentToken.location.offset,
329
- line: startToken.location.line,
330
- column: startToken.location.column,
331
- },
332
- };
333
- }
334
- return left;
335
- }
336
- parsePrimaryExpression() {
337
- const startToken = this.currentToken;
338
- if (this.check(TokenType.TRUE)) {
339
- this.advance();
340
- return {
341
- type: "Expression",
342
- value: true,
343
- location: {
344
- start: startToken.location.offset,
345
- end: this.currentToken.location.offset,
346
- line: startToken.location.line,
347
- column: startToken.location.column,
348
- },
349
- };
350
- }
351
- if (this.check(TokenType.FALSE)) {
352
- this.advance();
353
- return {
354
- type: "Expression",
355
- value: false,
356
- location: {
357
- start: startToken.location.offset,
358
- end: this.currentToken.location.offset,
359
- line: startToken.location.line,
360
- column: startToken.location.column,
361
- },
362
- };
363
- }
364
- if (this.check(TokenType.NUMBER)) {
365
- const value = Number(this.advance().value);
366
- return {
367
- type: "Expression",
368
- value,
369
- location: {
370
- start: startToken.location.offset,
371
- end: this.currentToken.location.offset,
372
- line: startToken.location.line,
373
- column: startToken.location.column,
374
- },
375
- };
376
- }
377
- if (this.check(TokenType.STRING)) {
378
- const value = this.advance().value;
379
- return {
380
- type: "Expression",
381
- value,
382
- location: {
383
- start: startToken.location.offset,
384
- end: this.currentToken.location.offset,
385
- line: startToken.location.line,
386
- column: startToken.location.column,
387
- },
388
- };
389
- }
390
- if (this.check(TokenType.IDENTIFIER)) {
391
- const value = this.advance().value;
392
- return {
393
- type: "Expression",
394
- value,
395
- location: {
396
- start: startToken.location.offset,
397
- end: this.currentToken.location.offset,
398
- line: startToken.location.line,
399
- column: startToken.location.column,
400
- },
401
- };
402
- }
403
- if (this.check(TokenType.LPAREN)) {
404
- this.advance();
405
- const expr = this.parseExpression();
406
- this.consume(TokenType.RPAREN, "Expected ')' after expression");
407
- return expr;
408
- }
409
- throw new SyntaxError(`Unexpected token in expression: ${this.currentToken.type}`);
410
- }
411
- parseRole(description) {
412
- const startToken = this.consume(TokenType.ROLE);
413
- const name = this.consume(TokenType.IDENTIFIER, "Expected role name").value;
414
- this.skipNewlines();
415
- this.consume(TokenType.LBRACE, "Expected '{' after role name");
416
- this.skipNewlines();
417
- const permissions = [];
418
- const inherits = [];
419
- while (!this.check(TokenType.RBRACE) && !this.isAtEnd()) {
420
- const loopStart = this.currentToken.location.offset;
421
- // Check for description before permission
422
- const permissionDescription = this.parseDescriptionIfPresent();
423
- if (this.check(TokenType.PERMISSION)) {
424
- this.advance();
425
- const resource = this.consume(TokenType.IDENTIFIER, "Expected resource name").value;
426
- const actions = [];
427
- if (this.check(TokenType.LBRACE)) {
428
- this.advance();
429
- this.skipNewlines();
430
- while (!this.check(TokenType.RBRACE) && !this.isAtEnd()) {
431
- actions.push(this.consume(TokenType.IDENTIFIER, "Expected action name").value);
432
- if (this.check(TokenType.COMMA)) {
433
- this.advance();
434
- this.skipNewlines();
435
- }
436
- this.skipNewlines();
437
- }
438
- this.consume(TokenType.RBRACE, "Expected '}' after actions");
439
- }
440
- permissions.push({
441
- type: "Permission",
442
- resource,
443
- description: permissionDescription,
444
- actions,
445
- location: {
446
- start: startToken.location.offset,
447
- end: this.currentToken.location.offset,
448
- line: startToken.location.line,
449
- column: startToken.location.column,
450
- },
451
- });
452
- }
453
- else {
454
- // If we hit an unexpected token, throw an error instead of hanging
455
- throw new SyntaxError(`Unexpected token '${this.currentToken.value}' (type: ${this.currentToken.type}) at line ${this.currentToken.location.line}. ` +
456
- `Expected 'permission' keyword or '}' to close role definition. ` +
457
- `Note: Role definitions use 'permission resource { actions }' syntax, not field syntax with colons.`);
458
- }
459
- this.skipNewlines();
460
- // Safety: ensure we're advancing
461
- if (this.currentToken.location.offset === loopStart &&
462
- !this.check(TokenType.RBRACE)) {
463
- throw new SyntaxError(`Parser stuck in role definition at line ${this.currentToken.location.line}`);
464
- }
465
- }
466
- this.consume(TokenType.RBRACE, "Expected '}' after role body");
467
- return {
468
- type: "RoleDefinition",
469
- name,
470
- description,
471
- permissions,
472
- inherits: inherits.length > 0 ? inherits : undefined,
473
- location: {
474
- start: startToken.location.offset,
475
- end: this.currentToken.location.offset,
476
- line: startToken.location.line,
477
- column: startToken.location.column,
478
- },
479
- };
480
- }
481
- parseWorkflow(description) {
482
- const startToken = this.consume(TokenType.WORKFLOW);
483
- const name = this.consume(TokenType.IDENTIFIER, "Expected workflow name").value;
484
- this.skipNewlines();
485
- this.consume(TokenType.LBRACE, "Expected '{' after workflow name");
486
- this.skipNewlines();
487
- const steps = [];
488
- let initialState = "";
489
- const finalStates = [];
490
- while (!this.check(TokenType.RBRACE) && !this.isAtEnd()) {
491
- // Check for description before state
492
- const stepDescription = this.parseDescriptionIfPresent();
493
- // Handle 'initial <stateName>' to set the initial state
494
- if (this.check(TokenType.INITIAL)) {
495
- this.advance();
496
- initialState = this.consume(TokenType.IDENTIFIER, "Expected state name after 'initial'").value;
497
- this.skipNewlines();
498
- continue;
499
- }
500
- if (this.check(TokenType.STATE)) {
501
- this.advance();
502
- const stateName = this.consume(TokenType.IDENTIFIER, "Expected state name").value;
503
- if (this.match(TokenType.ARROW)) {
504
- const transitions = [];
505
- while (!this.check(TokenType.NEWLINE) && !this.check(TokenType.RBRACE) &&
506
- !this.isAtEnd()) {
507
- const toState = this.consume(TokenType.IDENTIFIER, "Expected target state").value;
508
- transitions.push({
509
- type: "Transition",
510
- from: stateName,
511
- to: toState,
512
- location: {
513
- start: startToken.location.offset,
514
- end: this.currentToken.location.offset,
515
- line: startToken.location.line,
516
- column: startToken.location.column,
517
- },
518
- });
519
- if (this.match(TokenType.COMMA)) {
520
- // Continue parsing transitions
521
- }
522
- else {
523
- break;
524
- }
525
- }
526
- steps.push({
527
- type: "WorkflowStep",
528
- name: stateName,
529
- description: stepDescription,
530
- action: "transition",
531
- transitions,
532
- location: {
533
- start: startToken.location.offset,
534
- end: this.currentToken.location.offset,
535
- line: startToken.location.line,
536
- column: startToken.location.column,
537
- },
538
- });
539
- }
540
- this.skipNewlines();
541
- continue;
542
- }
543
- // If we reach here, we have an unexpected token in the workflow body
544
- throw new SyntaxError(`Unexpected token '${this.currentToken.type}' in workflow definition at line ${this.currentToken.location.line}:${this.currentToken.location.column}. ` +
545
- `Workflows should contain 'initial <state>' or 'state <name> -> <transitions>' declarations. ` +
546
- `Note: Workflows use state machine syntax, not method declarations.`);
547
- }
548
- this.consume(TokenType.RBRACE, "Expected '}' after workflow body");
549
- return {
550
- type: "WorkflowDefinition",
551
- name,
552
- description,
553
- steps,
554
- initialState,
555
- finalStates,
556
- location: {
557
- start: startToken.location.offset,
558
- end: this.currentToken.location.offset,
559
- line: startToken.location.line,
560
- column: startToken.location.column,
561
- },
562
- };
563
- }
564
- parseAgent(description) {
565
- const startToken = this.consume(TokenType.AGENT);
566
- const name = this.consume(TokenType.IDENTIFIER, "Expected agent name").value;
567
- let role = "";
568
- if (this.match(TokenType.COLON)) {
569
- role = this.consume(TokenType.IDENTIFIER, "Expected role name").value;
570
- }
571
- this.skipNewlines();
572
- this.consume(TokenType.LBRACE, "Expected '{' after agent name");
573
- this.skipNewlines();
574
- const capabilities = [];
575
- const responsibilities = [];
576
- let skills;
577
- let model;
578
- let maxConcurrent;
579
- while (!this.check(TokenType.RBRACE) && !this.isAtEnd()) {
580
- if (this.check(TokenType.CAPABILITIES)) {
581
- this.advance();
582
- this.consume(TokenType.COLON, "Expected ':' after capabilities");
583
- const capList = this.parseStringArray();
584
- // Convert to capability nodes
585
- for (const cap of capList) {
586
- capabilities.push({
587
- type: "Capability",
588
- verb: "can",
589
- action: cap,
590
- location: {
591
- start: startToken.location.offset,
592
- end: this.currentToken.location.offset,
593
- line: startToken.location.line,
594
- column: startToken.location.column,
595
- },
596
- });
597
- }
598
- }
599
- else if (this.check(TokenType.SKILLS)) {
600
- this.advance();
601
- this.consume(TokenType.COLON, "Expected ':' after skills");
602
- skills = this.parseStringArray();
603
- }
604
- else if (this.check(TokenType.MODEL)) {
605
- this.advance();
606
- this.consume(TokenType.COLON, "Expected ':' after model");
607
- model = this.consume(TokenType.STRING, "Expected string value").value;
608
- }
609
- else if (this.check(TokenType.MAX_CONCURRENT)) {
610
- this.advance();
611
- this.consume(TokenType.COLON, "Expected ':' after max_concurrent");
612
- maxConcurrent = parseInt(this.consume(TokenType.NUMBER, "Expected number value").value);
613
- }
614
- else if (this.check(TokenType.STRING) || this.check(TokenType.IDENTIFIER) ||
615
- this.check(TokenType.PROMPT)) {
616
- // Parse the full capability with nested capabilities support (including descriptions)
617
- capabilities.push(this.parseCapability());
618
- }
619
- else {
620
- this.advance();
621
- }
622
- this.skipNewlines();
623
- }
624
- this.consume(TokenType.RBRACE, "Expected '}' after agent body");
625
- // Determine agent kind based on properties
626
- // Builder agents have skills, model, or maxConcurrent properties
627
- // Domain agents have business logic capabilities and may have roles
628
- const agentKind = (skills !== undefined || model !== undefined ||
629
- maxConcurrent !== undefined)
630
- ? "builder"
631
- : "domain";
632
- return {
633
- type: "AgentDefinition",
634
- name,
635
- description,
636
- agentKind,
637
- role,
638
- responsibilities,
639
- capabilities,
640
- skills,
641
- model,
642
- maxConcurrent,
643
- location: {
644
- start: startToken.location.offset,
645
- end: this.currentToken.location.offset,
646
- line: startToken.location.line,
647
- column: startToken.location.column,
648
- },
649
- };
650
- }
651
- parseTypeDefinition(description) {
652
- const startToken = this.currentToken;
653
- let kind = "type";
654
- if (this.check(TokenType.TYPE)) {
655
- kind = "type";
656
- this.advance();
657
- }
658
- else if (this.check(TokenType.ENUM)) {
659
- kind = "enum";
660
- this.advance();
661
- }
662
- else if (this.check(TokenType.INTERFACE)) {
663
- kind = "interface";
664
- this.advance();
665
- }
666
- this.skipNewlines();
667
- const name = this.consumeIdentifierOrKeyword(`Expected type name after '${kind}' keyword at line ${this.currentToken.location.line}:${this.currentToken.location.column}. Got '${this.currentToken.value || this.currentToken.type}' instead.`).value;
668
- this.skipNewlines();
669
- this.consume(TokenType.LBRACE, "Expected '{' after type name");
670
- this.skipNewlines();
671
- const fields = [];
672
- const values = [];
673
- while (!this.check(TokenType.RBRACE) && !this.isAtEnd()) {
674
- if (kind === "enum") {
675
- // Enum values remain plain strings (no descriptions)
676
- values.push(this.consumeIdentifierOrKeyword("Expected enum value").value);
677
- }
678
- else {
679
- // Check for description before field
680
- const fieldDescription = this.parseDescriptionIfPresent();
681
- const fieldName = this.consumeIdentifierOrKeyword("Expected field name").value;
682
- this.consume(TokenType.COLON, "Expected ':' after field name");
683
- // Parse field type with optional array syntax
684
- let fieldType = this.consumeIdentifierOrKeyword("Expected field type").value;
685
- // Handle array syntax: string[], TypeName[], TypeName[][]
686
- while (this.check(TokenType.LBRACKET)) {
687
- this.advance(); // consume '['
688
- this.consume(TokenType.RBRACKET, "Expected ']' after '['");
689
- fieldType += "[]";
690
- }
691
- fields.push({
692
- type: "TypeField",
693
- name: fieldName,
694
- description: fieldDescription,
695
- fieldType,
696
- required: true,
697
- location: {
698
- start: startToken.location.offset,
699
- end: this.currentToken.location.offset,
700
- line: startToken.location.line,
701
- column: startToken.location.column,
702
- },
703
- });
704
- }
705
- if (this.check(TokenType.COMMA)) {
706
- this.advance();
707
- }
708
- this.skipNewlines();
709
- }
710
- this.consume(TokenType.RBRACE, "Expected '}' after type body");
711
- return {
712
- type: "TypeDefinition",
713
- name,
714
- description,
715
- kind,
716
- fields: fields.length > 0 ? fields : undefined,
717
- values: values.length > 0 ? values : undefined,
718
- location: {
719
- start: startToken.location.offset,
720
- end: this.currentToken.location.offset,
721
- line: startToken.location.line,
722
- column: startToken.location.column,
723
- },
724
- };
725
- }
726
230
  /**
727
231
  * Parse string array: [item1, item2, item3]
728
232
  */
@@ -4,8 +4,7 @@
4
4
  * Provides a stream-like interface for token consumption and lookahead.
5
5
  * Builds on the Lexer to handle token stream management.
6
6
  */
7
- import { TokenType } from "./lexer.js";
8
- import type { Token } from "./lexer.js";
7
+ import { type Token, TokenType } from "./lexer/tokens.js";
9
8
  export declare class Tokenizer {
10
9
  private tokens;
11
10
  private position;
@@ -1 +1 @@
1
- {"version":3,"file":"tokenizer.d.ts","sourceRoot":"","sources":["../../../src/generated/parser/tokenizer.ts"],"names":[],"mappings":"AACA;;;;;GAKG;AAEH,OAAO,EAAS,SAAS,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAExC,qBAAa,SAAS;IACpB,OAAO,CAAC,MAAM,CAAU;IACxB,OAAO,CAAC,QAAQ,CAAa;gBAEjB,MAAM,EAAE,MAAM;IAS1B;;OAEG;IACI,OAAO,IAAI,KAAK;IAIvB;;OAEG;IACI,IAAI,CAAC,MAAM,SAAI,GAAG,KAAK;IAK9B;;OAEG;IACI,QAAQ,CAAC,MAAM,SAAI,GAAG,KAAK;IAIlC;;OAEG;IACI,OAAO,IAAI,KAAK;IAQvB;;OAEG;IACI,KAAK,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO;IAItC;;OAEG;IACI,QAAQ,CAAC,GAAG,KAAK,EAAE,SAAS,EAAE,GAAG,OAAO;IAI/C;;OAEG;IACI,OAAO,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,KAAK;IAUxD;;OAEG;IACI,UAAU,CAAC,IAAI,EAAE,SAAS,GAAG,KAAK,GAAG,IAAI;IAOhD;;OAEG;IACI,KAAK,CAAC,GAAG,KAAK,EAAE,SAAS,EAAE,GAAG,KAAK,GAAG,IAAI;IAOjD;;OAEG;IACI,OAAO,IAAI,OAAO;IAIzB;;OAEG;IACI,YAAY,IAAI,KAAK,EAAE;IAI9B;;OAEG;IACI,WAAW,IAAI,MAAM;IAI5B;;OAEG;IACI,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAIrC;;OAEG;IACI,YAAY,CAAC,IAAI,EAAE,SAAS,GAAG,KAAK,EAAE;IAQ7C;;OAEG;IACI,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,KAAK,EAAE;IAIpD;;OAEG;IACI,WAAW,IAAI,IAAI;IAqB1B;;OAEG;IACI,KAAK,IAAI,SAAS;IAOzB;;OAEG;IACI,eAAe,IAAI,MAAM;IAYhC;;OAEG;IACI,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,KAAK,EAAE;IAIjD;;OAEG;IACI,YAAY,IAAI,IAAI;IAM3B;;OAEG;IACI,eAAe,IAAI,IAAI;IAM9B;;OAEG;IACI,cAAc,IAAI;QACvB,WAAW,EAAE,MAAM,CAAC;QACpB,eAAe,EAAE,MAAM,CAAC;QACxB,YAAY,EAAE,KAAK,CAAC;QACpB,eAAe,EAAE,MAAM,CAAC;KACzB;CAQF"}
1
+ {"version":3,"file":"tokenizer.d.ts","sourceRoot":"","sources":["../../../src/generated/parser/tokenizer.ts"],"names":[],"mappings":"AACA;;;;;GAKG;AAGH,OAAO,EAAE,KAAK,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE1D,qBAAa,SAAS;IACpB,OAAO,CAAC,MAAM,CAAU;IACxB,OAAO,CAAC,QAAQ,CAAa;gBAEjB,MAAM,EAAE,MAAM;IAS1B;;OAEG;IACI,OAAO,IAAI,KAAK;IAIvB;;OAEG;IACI,IAAI,CAAC,MAAM,SAAI,GAAG,KAAK;IAK9B;;OAEG;IACI,QAAQ,CAAC,MAAM,SAAI,GAAG,KAAK;IAIlC;;OAEG;IACI,OAAO,IAAI,KAAK;IAQvB;;OAEG;IACI,KAAK,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO;IAItC;;OAEG;IACI,QAAQ,CAAC,GAAG,KAAK,EAAE,SAAS,EAAE,GAAG,OAAO;IAI/C;;OAEG;IACI,OAAO,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,KAAK;IAUxD;;OAEG;IACI,UAAU,CAAC,IAAI,EAAE,SAAS,GAAG,KAAK,GAAG,IAAI;IAOhD;;OAEG;IACI,KAAK,CAAC,GAAG,KAAK,EAAE,SAAS,EAAE,GAAG,KAAK,GAAG,IAAI;IAOjD;;OAEG;IACI,OAAO,IAAI,OAAO;IAIzB;;OAEG;IACI,YAAY,IAAI,KAAK,EAAE;IAI9B;;OAEG;IACI,WAAW,IAAI,MAAM;IAI5B;;OAEG;IACI,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAIrC;;OAEG;IACI,YAAY,CAAC,IAAI,EAAE,SAAS,GAAG,KAAK,EAAE;IAQ7C;;OAEG;IACI,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,KAAK,EAAE;IAIpD;;OAEG;IACI,WAAW,IAAI,IAAI;IAqB1B;;OAEG;IACI,KAAK,IAAI,SAAS;IAOzB;;OAEG;IACI,eAAe,IAAI,MAAM;IAYhC;;OAEG;IACI,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,KAAK,EAAE;IAIjD;;OAEG;IACI,YAAY,IAAI,IAAI;IAM3B;;OAEG;IACI,eAAe,IAAI,IAAI;IAM9B;;OAEG;IACI,cAAc,IAAI;QACvB,WAAW,EAAE,MAAM,CAAC;QACpB,eAAe,EAAE,MAAM,CAAC;QACxB,YAAY,EAAE,KAAK,CAAC;QACpB,eAAe,EAAE,MAAM,CAAC;KACzB;CAQF"}
@@ -5,7 +5,8 @@
5
5
  * Provides a stream-like interface for token consumption and lookahead.
6
6
  * Builds on the Lexer to handle token stream management.
7
7
  */
8
- import { Lexer, TokenType } from "./lexer.js";
8
+ import { Lexer } from "./lexer/lexer.js";
9
+ import { TokenType } from "./lexer/tokens.js";
9
10
  export class Tokenizer {
10
11
  tokens;
11
12
  position = 0;
@@ -4,7 +4,7 @@
4
4
  * Validates the AST and provides semantic analysis.
5
5
  * Checks for errors, warnings, and best practices.
6
6
  */
7
- import type { ASTNode, Program } from "./parser.js";
7
+ import type { ASTNode, Program } from "./ast/nodes.js";
8
8
  export interface ValidationError {
9
9
  type: "error" | "warning" | "info";
10
10
  message: string;
@@ -1 +1 @@
1
- {"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../../src/generated/parser/validator.ts"],"names":[],"mappings":"AACA;;;;;GAKG;AAEH,OAAO,KAAK,EAEV,OAAO,EAEP,OAAO,EAKR,MAAM,aAAa,CAAC;AAErB,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,QAAQ,EAAE,eAAe,EAAE,CAAC;IAC5B,KAAK,EAAE,eAAe,EAAE,CAAC;CAC1B;AAED,qBAAa,SAAS;IACpB,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,MAAM,CAAyB;IACvC,OAAO,CAAC,QAAQ,CAAyB;IACzC,OAAO,CAAC,KAAK,CAAyB;IACtC,OAAO,CAAC,iBAAiB,CAAkC;IAC3D,OAAO,CAAC,qBAAqB,CAAK;IAClC,OAAO,CAAC,YAAY,CAA0B;IAC9C,OAAO,CAAC,YAAY,CAA0B;IAC9C,OAAO,CAAC,gBAAgB,CAA0B;IAClD,OAAO,CAAC,aAAa,CAA0B;gBAEnC,OAAO,EAAE,OAAO;IAIrB,QAAQ,IAAI,gBAAgB;IAgEnC,OAAO,CAAC,eAAe;IAiCvB,OAAO,CAAC,kBAAkB;IAgB1B,OAAO,CAAC,YAAY;IAepB,OAAO,CAAC,gBAAgB;IA+BxB,OAAO,CAAC,aAAa;IAkCrB,OAAO,CAAC,mBAAmB;IAmB3B,OAAO,CAAC,oBAAoB;IA2B5B,OAAO,CAAC,YAAY;IA2BpB,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,OAAO;CAGhB"}
1
+ {"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../../src/generated/parser/validator.ts"],"names":[],"mappings":"AACA;;;;;GAKG;AAEH,OAAO,KAAK,EAEV,OAAO,EAEP,OAAO,EAKR,MAAM,gBAAgB,CAAC;AAExB,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,QAAQ,EAAE,eAAe,EAAE,CAAC;IAC5B,KAAK,EAAE,eAAe,EAAE,CAAC;CAC1B;AAED,qBAAa,SAAS;IACpB,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,MAAM,CAAyB;IACvC,OAAO,CAAC,QAAQ,CAAyB;IACzC,OAAO,CAAC,KAAK,CAAyB;IACtC,OAAO,CAAC,iBAAiB,CAAkC;IAC3D,OAAO,CAAC,qBAAqB,CAAK;IAClC,OAAO,CAAC,YAAY,CAA0B;IAC9C,OAAO,CAAC,YAAY,CAA0B;IAC9C,OAAO,CAAC,gBAAgB,CAA0B;IAClD,OAAO,CAAC,aAAa,CAA0B;gBAEnC,OAAO,EAAE,OAAO;IAIrB,QAAQ,IAAI,gBAAgB;IAgEnC,OAAO,CAAC,eAAe;IAiCvB,OAAO,CAAC,kBAAkB;IAgB1B,OAAO,CAAC,YAAY;IAepB,OAAO,CAAC,gBAAgB;IA+BxB,OAAO,CAAC,aAAa;IAkCrB,OAAO,CAAC,mBAAmB;IAmB3B,OAAO,CAAC,oBAAoB;IA2B5B,OAAO,CAAC,YAAY;IA2BpB,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,OAAO;CAGhB"}
@@ -1 +1 @@
1
- {"version":3,"file":"const.d.ts","sourceRoot":"","sources":["../../../src/generated/zeus/const.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAC,GAAG,CAwyB5C,CAAA;AAED,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAC,GAAG,CA0lC1C,CAAA;AAED,eAAO,MAAM,GAAG;;;;CAIf,CAAA"}
1
+ {"version":3,"file":"const.d.ts","sourceRoot":"","sources":["../../../src/generated/zeus/const.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAC,GAAG,CA0zB5C,CAAA;AAED,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAC,GAAG,CAumC1C,CAAA;AAED,eAAO,MAAM,GAAG;;;;CAIf,CAAA"}
@@ -4,6 +4,7 @@ export const AllTypesProps = {
4
4
  TeamRole: "enum",
5
5
  TeamUsageTaskType: "enum",
6
6
  CreateTeamApiKeyInput: {},
7
+ CreateUserApiKeyInput: {},
7
8
  TeamInviteStatus: "enum",
8
9
  CreateReferralCampaignInput: {
9
10
  expiresAt: "DateTime"
@@ -103,6 +104,7 @@ export const AllTypesProps = {
103
104
  filter: "TeamUsageFilterInput"
104
105
  },
105
106
  teamApiKeys: {},
107
+ myApiKeys: {},
106
108
  teamInvites: {},
107
109
  validateTeamInvite: {},
108
110
  teamReferralCampaigns: {},
@@ -260,6 +262,11 @@ export const AllTypesProps = {
260
262
  },
261
263
  revokeTeamApiKey: {},
262
264
  regenerateTeamApiKey: {},
265
+ createUserApiKey: {
266
+ input: "CreateUserApiKeyInput"
267
+ },
268
+ revokeUserApiKey: {},
269
+ regenerateUserApiKey: {},
263
270
  createTeamMcpServer: {
264
271
  input: "CreateTeamMcpServerInput"
265
272
  },
@@ -315,6 +322,7 @@ export const AllTypesProps = {
315
322
  input: "UpdateAgentInput"
316
323
  },
317
324
  deleteAgent: {},
325
+ duplicateAgent: {},
318
326
  refineFromTask: {
319
327
  input: "RefineFromTaskInput"
320
328
  },
@@ -536,6 +544,14 @@ export const ReturnTypes = {
536
544
  lastUsedAt: "DateTime",
537
545
  createdAt: "DateTime"
538
546
  },
547
+ UserApiKey: {
548
+ id: "ID",
549
+ name: "String",
550
+ apiKey: "String",
551
+ teamId: "ID",
552
+ lastUsedAt: "DateTime",
553
+ createdAt: "DateTime"
554
+ },
539
555
  TeamInvite: {
540
556
  id: "ID",
541
557
  teamId: "ID",
@@ -947,6 +963,7 @@ export const ReturnTypes = {
947
963
  team: "Team",
948
964
  teamUsage: "TeamUsage",
949
965
  teamApiKeys: "TeamApiKey",
966
+ myApiKeys: "UserApiKey",
950
967
  teamInvites: "TeamInvite",
951
968
  validateTeamInvite: "TeamInviteValidation",
952
969
  teamReferralCampaigns: "ReferralCampaign",
@@ -1052,6 +1069,9 @@ export const ReturnTypes = {
1052
1069
  createTeamApiKey: "TeamApiKey",
1053
1070
  revokeTeamApiKey: "Boolean",
1054
1071
  regenerateTeamApiKey: "TeamApiKey",
1072
+ createUserApiKey: "UserApiKey",
1073
+ revokeUserApiKey: "Boolean",
1074
+ regenerateUserApiKey: "UserApiKey",
1055
1075
  createTeamMcpServer: "TeamMcpServer",
1056
1076
  updateTeamMcpServer: "TeamMcpServer",
1057
1077
  deleteTeamMcpServer: "Boolean",
@@ -1079,6 +1099,7 @@ export const ReturnTypes = {
1079
1099
  createAgent: "Agent",
1080
1100
  updateAgent: "Agent",
1081
1101
  deleteAgent: "Boolean",
1102
+ duplicateAgent: "Agent",
1082
1103
  refineFromTask: "FromTask",
1083
1104
  refineAexolContent: "FromTask",
1084
1105
  evaluatePromptQuality: "PromptQualityResult",