@castlemilk/omega 0.6.13 → 0.6.15

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 (104) hide show
  1. package/dist/cli.js +630 -1282
  2. package/dist/server/dist/app.d.ts.map +1 -1
  3. package/dist/server/dist/app.js +2 -0
  4. package/dist/server/dist/app.js.map +1 -1
  5. package/dist/server/dist/lib/run-task.d.ts.map +1 -1
  6. package/dist/server/dist/lib/run-task.js +2 -3
  7. package/dist/server/dist/lib/run-task.js.map +1 -1
  8. package/dist/server/dist/routes/metrics.d.ts.map +1 -1
  9. package/dist/server/dist/routes/metrics.js +2 -76
  10. package/dist/server/dist/routes/metrics.js.map +1 -1
  11. package/dist/server/dist/routes/reports.d.ts +3 -0
  12. package/dist/server/dist/routes/reports.d.ts.map +1 -0
  13. package/dist/server/dist/routes/reports.js +44 -0
  14. package/dist/server/dist/routes/reports.js.map +1 -0
  15. package/dist/server/dist/routes/tasks.d.ts.map +1 -1
  16. package/dist/server/dist/routes/tasks.js +0 -4
  17. package/dist/server/dist/routes/tasks.js.map +1 -1
  18. package/dist/server/node_modules/@grpc/proto-loader/build/bin/proto-loader-gen-types.js +0 -0
  19. package/dist/server/node_modules/@omega/agent/dist/executor.d.ts.map +1 -1
  20. package/dist/server/node_modules/@omega/agent/dist/executor.js +10 -83
  21. package/dist/server/node_modules/@omega/agent/dist/executor.js.map +1 -1
  22. package/dist/server/node_modules/@omega/agent/dist/index.d.ts +1 -1
  23. package/dist/server/node_modules/@omega/agent/dist/index.d.ts.map +1 -1
  24. package/dist/server/node_modules/@omega/agent/dist/index.js +1 -1
  25. package/dist/server/node_modules/@omega/agent/dist/index.js.map +1 -1
  26. package/dist/server/node_modules/@omega/agent/dist/planner.d.ts +0 -5
  27. package/dist/server/node_modules/@omega/agent/dist/planner.d.ts.map +1 -1
  28. package/dist/server/node_modules/@omega/agent/dist/planner.js +5 -31
  29. package/dist/server/node_modules/@omega/agent/dist/planner.js.map +1 -1
  30. package/dist/server/node_modules/@omega/agent/dist/prompt-versioning.d.ts.map +1 -1
  31. package/dist/server/node_modules/@omega/agent/dist/prompt-versioning.js +2 -2
  32. package/dist/server/node_modules/@omega/agent/dist/prompt-versioning.js.map +1 -1
  33. package/dist/server/node_modules/@omega/agent/dist/prompts.d.ts.map +1 -1
  34. package/dist/server/node_modules/@omega/agent/dist/prompts.js +16 -9
  35. package/dist/server/node_modules/@omega/agent/dist/prompts.js.map +1 -1
  36. package/dist/server/node_modules/@omega/agent/package.json +0 -4
  37. package/dist/server/node_modules/@omega/core/dist/provider.d.ts +2 -12
  38. package/dist/server/node_modules/@omega/core/dist/provider.d.ts.map +1 -1
  39. package/dist/server/node_modules/@omega/db/dist/seed.js +6 -6
  40. package/dist/server/node_modules/@omega/db/dist/seed.js.map +1 -1
  41. package/dist/server/node_modules/@omega/db/generated/client/edge.js +3 -6
  42. package/dist/server/node_modules/@omega/db/generated/client/index-browser.js +0 -3
  43. package/dist/server/node_modules/@omega/db/generated/client/index.d.ts +0 -223
  44. package/dist/server/node_modules/@omega/db/generated/client/index.js +3 -6
  45. package/dist/server/node_modules/@omega/db/generated/client/libquery_engine-darwin-arm64.dylib.node +0 -0
  46. package/dist/server/node_modules/@omega/db/generated/client/package.json +1 -1
  47. package/dist/server/node_modules/@omega/db/generated/client/schema.prisma +0 -3
  48. package/dist/server/node_modules/@omega/db/generated/client/wasm.js +3 -6
  49. package/dist/server/node_modules/@omega/providers/dist/anthropic.d.ts +2 -2
  50. package/dist/server/node_modules/@omega/providers/dist/anthropic.d.ts.map +1 -1
  51. package/dist/server/node_modules/@omega/providers/dist/anthropic.js +1 -16
  52. package/dist/server/node_modules/@omega/providers/dist/anthropic.js.map +1 -1
  53. package/dist/server/node_modules/@omega/providers/dist/gemini.d.ts +2 -2
  54. package/dist/server/node_modules/@omega/providers/dist/gemini.d.ts.map +1 -1
  55. package/dist/server/node_modules/@omega/providers/dist/gemini.js +1 -14
  56. package/dist/server/node_modules/@omega/providers/dist/gemini.js.map +1 -1
  57. package/dist/server/node_modules/@omega/providers/dist/kimi.d.ts +4 -3
  58. package/dist/server/node_modules/@omega/providers/dist/kimi.d.ts.map +1 -1
  59. package/dist/server/node_modules/@omega/providers/dist/kimi.js +4 -6
  60. package/dist/server/node_modules/@omega/providers/dist/kimi.js.map +1 -1
  61. package/dist/server/node_modules/@omega/providers/dist/ollama.d.ts +2 -2
  62. package/dist/server/node_modules/@omega/providers/dist/ollama.d.ts.map +1 -1
  63. package/dist/server/node_modules/@omega/providers/dist/ollama.js +1 -13
  64. package/dist/server/node_modules/@omega/providers/dist/ollama.js.map +1 -1
  65. package/dist/server/node_modules/@omega/providers/dist/openai.d.ts +3 -3
  66. package/dist/server/node_modules/@omega/providers/dist/openai.d.ts.map +1 -1
  67. package/dist/server/node_modules/@omega/providers/dist/openai.js +5 -28
  68. package/dist/server/node_modules/@omega/providers/dist/openai.js.map +1 -1
  69. package/dist/server/node_modules/@omega/providers/dist/providers.test.js +9 -13
  70. package/dist/server/node_modules/@omega/providers/dist/providers.test.js.map +1 -1
  71. package/dist/server/node_modules/mime/cli.js +0 -0
  72. package/dist/server/node_modules/mime/src/build.js +0 -0
  73. package/dist/server/node_modules/wrap-ansi/index.js +0 -0
  74. package/dist/server/pglite-data/base/5/1247 +0 -0
  75. package/dist/server/pglite-data/base/5/1249 +0 -0
  76. package/dist/server/pglite-data/base/5/1259 +0 -0
  77. package/dist/server/pglite-data/base/5/16384 +0 -0
  78. package/dist/server/pglite-data/base/5/16394 +0 -0
  79. package/dist/server/pglite-data/base/5/16404 +0 -0
  80. package/dist/server/pglite-data/base/5/16406 +0 -0
  81. package/dist/server/pglite-data/base/5/16421 +0 -0
  82. package/dist/server/pglite-data/base/5/16480 +0 -0
  83. package/dist/server/pglite-data/base/5/16510 +0 -0
  84. package/dist/server/pglite-data/base/5/2604 +0 -0
  85. package/dist/server/pglite-data/base/5/2606 +0 -0
  86. package/dist/server/pglite-data/base/5/2610 +0 -0
  87. package/dist/server/pglite-data/base/5/2620 +0 -0
  88. package/dist/server/pglite-data/base/5/2662 +0 -0
  89. package/dist/server/pglite-data/base/5/2663 +0 -0
  90. package/dist/server/pglite-data/base/5/pg_internal.init +0 -0
  91. package/dist/server/pglite-data/global/pg_control +0 -0
  92. package/dist/server/pglite-data/global/pg_internal.init +0 -0
  93. package/dist/server/pglite-data/pg_wal/000000010000000000000001 +0 -0
  94. package/dist/server/pglite-data/pg_xact/0000 +0 -0
  95. package/dist/server/pglite-data/postmaster.pid +1 -1
  96. package/dist/server/src/app.ts +2 -0
  97. package/dist/server/src/lib/run-task.ts +2 -3
  98. package/dist/server/src/routes/metrics.ts +2 -81
  99. package/dist/server/src/routes/reports.ts +54 -0
  100. package/dist/server/src/routes/tasks.ts +2 -6
  101. package/dist/web/dist/assets/index-Ce9D9lg5.css +1 -0
  102. package/dist/web/dist/assets/index-D-wO1mM7.js +40 -0
  103. package/dist/web/dist/index.html +2 -2
  104. package/package.json +13 -14
@@ -1 +1 @@
1
- {"version":3,"file":"ollama.js","sourceRoot":"","sources":["../src/ollama.ts"],"names":[],"mappings":"AAEA,MAAM,gBAAgB,GAAG,wBAAwB,CAAC;AAElD,MAAM,OAAO,cAAc;IAChB,MAAM,CAAiB;IAEhC,YAAY,MAAsB;QAChC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,IAAY,OAAO;QACjB,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,gBAAgB,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACtE,CAAC;IAED,KAAK,CAAC,UAAU;QACd,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,WAAW,CAAC,CAAC;QACpD,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAC/C,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAoC,CAAC;QACnE,OAAO,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IACvE,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,MAAc,EAAE,IAAkB;QAC3C,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,WAAW,EAAE;YAClD,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY;gBAC9C,QAAQ,EAAE;oBACR,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBACnE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE;iBAClC;gBACD,MAAM,EAAE,KAAK;gBACb,OAAO,EAAE,IAAI,EAAE,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,SAAS;aACzF,CAAC;SACH,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,0BAA0B,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;QACvF,CAAC;QACD,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAwF,CAAC;QACvH,MAAM,KAAK,GACT,IAAI,CAAC,iBAAiB,KAAK,SAAS,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS;YACnE,CAAC,CAAC;gBACE,YAAY,EAAE,IAAI,CAAC,iBAAiB;gBACpC,gBAAgB,EAAE,IAAI,CAAC,UAAU;gBACjC,WAAW,EACT,IAAI,CAAC,iBAAiB,KAAK,SAAS,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS;oBACnE,CAAC,CAAC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,UAAU;oBAC1C,CAAC,CAAC,SAAS;aAChB;YACH,CAAC,CAAC,SAAS,CAAC;QAChB,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,IAAI,EAAE;YACpC,KAAK;SACN,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"ollama.js","sourceRoot":"","sources":["../src/ollama.ts"],"names":[],"mappings":"AAEA,MAAM,gBAAgB,GAAG,wBAAwB,CAAC;AAElD,MAAM,OAAO,cAAc;IAChB,MAAM,CAAiB;IAEhC,YAAY,MAAsB;QAChC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,IAAY,OAAO;QACjB,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,gBAAgB,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACtE,CAAC;IAED,KAAK,CAAC,UAAU;QACd,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,WAAW,CAAC,CAAC;QACpD,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAC/C,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAoC,CAAC;QACnE,OAAO,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IACvE,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,MAAc,EAAE,IAAkB;QAC3C,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,WAAW,EAAE;YAClD,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY;gBAC9C,QAAQ,EAAE;oBACR,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBACnE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE;iBAClC;gBACD,MAAM,EAAE,KAAK;gBACb,OAAO,EAAE,IAAI,EAAE,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,SAAS;aACzF,CAAC;SACH,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,0BAA0B,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;QACvF,CAAC;QACD,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAuC,CAAC;QACtE,OAAO,IAAI,CAAC,OAAO,EAAE,OAAO,IAAI,EAAE,CAAC;IACrC,CAAC;CACF"}
@@ -1,12 +1,12 @@
1
- import type { Provider, ProviderConfig, SendOptions, ToolDefinition, ProviderResponse } from '@omega/core';
1
+ import type { Provider, ProviderConfig, SendOptions, ToolDefinition } from '@omega/core';
2
2
  export declare class OpenAIProvider implements Provider {
3
3
  readonly config: ProviderConfig;
4
4
  constructor(config: ProviderConfig);
5
5
  protected get baseUrl(): string;
6
6
  protected readonly supportsTemperature: boolean;
7
7
  listModels(): Promise<string[]>;
8
- send(prompt: string, opts?: SendOptions): Promise<ProviderResponse>;
9
- sendWithTools(prompt: string, tools: ToolDefinition[], opts?: SendOptions): Promise<ProviderResponse>;
8
+ send(prompt: string, opts?: SendOptions): Promise<string>;
9
+ sendWithTools(prompt: string, tools: ToolDefinition[], opts?: SendOptions): Promise<string>;
10
10
  protected authHeaders(): Record<string, string>;
11
11
  }
12
12
  //# sourceMappingURL=openai.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../src/openai.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,WAAW,EAAE,cAAc,EAAE,gBAAgB,EAAS,MAAM,aAAa,CAAC;AA+BlH,qBAAa,cAAe,YAAW,QAAQ;IAC7C,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;gBAEpB,MAAM,EAAE,cAAc;IAIlC,SAAS,KAAK,OAAO,IAAI,MAAM,CAE9B;IAED,SAAS,CAAC,QAAQ,CAAC,mBAAmB,EAAE,OAAO,CAAQ;IAEjD,UAAU,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAS/B,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAgCnE,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA4D3G,SAAS,CAAC,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;CAGhD"}
1
+ {"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../src/openai.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAIzF,qBAAa,cAAe,YAAW,QAAQ;IAC7C,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;gBAEpB,MAAM,EAAE,cAAc;IAIlC,SAAS,KAAK,OAAO,IAAI,MAAM,CAE9B;IAED,SAAS,CAAC,QAAQ,CAAC,mBAAmB,EAAE,OAAO,CAAQ;IAEjD,UAAU,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAS/B,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC;IA2BzD,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC;IA2DjG,SAAS,CAAC,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;CAGhD"}
@@ -1,13 +1,4 @@
1
1
  const DEFAULT_BASE_URL = 'https://api.openai.com/v1';
2
- function toUsage(data) {
3
- if (!data.usage)
4
- return undefined;
5
- return {
6
- promptTokens: data.usage.prompt_tokens,
7
- completionTokens: data.usage.completion_tokens,
8
- totalTokens: data.usage.total_tokens,
9
- };
10
- }
11
2
  export class OpenAIProvider {
12
3
  config;
13
4
  constructor(config) {
@@ -45,15 +36,10 @@ export class OpenAIProvider {
45
36
  }),
46
37
  });
47
38
  if (!res.ok) {
48
- const body = await res.text().catch(() => '');
49
- throw new Error(`OpenAI request failed: ${res.status.toString()} ${res.statusText} - ${body.slice(0, 500)}`);
39
+ throw new Error(`OpenAI request failed: ${res.status.toString()} ${res.statusText}`);
50
40
  }
51
41
  const data = (await res.json());
52
- return {
53
- content: data.choices?.[0]?.message?.content ?? '',
54
- usage: toUsage(data),
55
- model: data.model,
56
- };
42
+ return data.choices?.[0]?.message?.content ?? '';
57
43
  }
58
44
  async sendWithTools(prompt, tools, opts) {
59
45
  const res = await fetch(`${this.baseUrl}/chat/completions`, {
@@ -80,8 +66,7 @@ export class OpenAIProvider {
80
66
  }),
81
67
  });
82
68
  if (!res.ok) {
83
- const body = await res.text().catch(() => '');
84
- throw new Error(`OpenAI tools request failed: ${res.status.toString()} ${res.statusText} - ${body.slice(0, 500)}`);
69
+ throw new Error(`OpenAI tools request failed: ${res.status.toString()} ${res.statusText}`);
85
70
  }
86
71
  const data = (await res.json());
87
72
  const message = data.choices?.[0]?.message;
@@ -101,17 +86,9 @@ export class OpenAIProvider {
101
86
  })(),
102
87
  }))
103
88
  .filter((tc) => tc.id && tc.name);
104
- return {
105
- content: JSON.stringify({ tool_calls: normalized }),
106
- usage: toUsage(data),
107
- model: data.model,
108
- };
89
+ return JSON.stringify({ tool_calls: normalized });
109
90
  }
110
- return {
111
- content: message?.content ?? '',
112
- usage: toUsage(data),
113
- model: data.model,
114
- };
91
+ return message?.content ?? '';
115
92
  }
116
93
  authHeaders() {
117
94
  return this.config.apiKey ? { Authorization: `Bearer ${this.config.apiKey}` } : {};
@@ -1 +1 @@
1
- {"version":3,"file":"openai.js","sourceRoot":"","sources":["../src/openai.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"openai.js","sourceRoot":"","sources":["../src/openai.ts"],"names":[],"mappings":"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"}
@@ -25,11 +25,10 @@ describe('createProvider', () => {
25
25
  enabled: true,
26
26
  };
27
27
  it('creates an OpenAI provider and sends a chat request', async () => {
28
- fetchSpy.mockResolvedValue(jsonResponse({ choices: [{ message: { content: 'Hello' } }], usage: { prompt_tokens: 10, completion_tokens: 5, total_tokens: 15 } }));
28
+ fetchSpy.mockResolvedValue(jsonResponse({ choices: [{ message: { content: 'Hello' } }] }));
29
29
  const provider = createProvider(openaiConfig);
30
30
  const result = await provider.send('hi');
31
- expect(result.content).toBe('Hello');
32
- expect(result.usage).toEqual({ promptTokens: 10, completionTokens: 5, totalTokens: 15 });
31
+ expect(result).toBe('Hello');
33
32
  expect(fetchSpy).toHaveBeenCalledWith('https://api.openai.com/v1/chat/completions', expect.objectContaining({
34
33
  method: 'POST',
35
34
  headers: expect.objectContaining({ Authorization: 'Bearer sk-test' }),
@@ -56,11 +55,10 @@ describe('createProvider', () => {
56
55
  enabled: true,
57
56
  };
58
57
  it('creates an Anthropic provider and sends a message', async () => {
59
- fetchSpy.mockResolvedValue(jsonResponse({ content: [{ type: 'text', text: 'Hi there' }], usage: { input_tokens: 8, output_tokens: 2 } }));
58
+ fetchSpy.mockResolvedValue(jsonResponse({ content: [{ type: 'text', text: 'Hi there' }] }));
60
59
  const provider = createProvider(anthropicConfig);
61
60
  const result = await provider.send('hello', { system: 'You are helpful', temperature: 0.5 });
62
- expect(result.content).toBe('Hi there');
63
- expect(result.usage).toEqual({ promptTokens: 8, completionTokens: 2, totalTokens: 10 });
61
+ expect(result).toBe('Hi there');
64
62
  expect(fetchSpy).toHaveBeenCalledWith('https://api.anthropic.com/v1/messages', expect.objectContaining({
65
63
  method: 'POST',
66
64
  headers: expect.objectContaining({
@@ -82,11 +80,10 @@ describe('createProvider', () => {
82
80
  enabled: true,
83
81
  };
84
82
  it('creates an Ollama provider and sends a chat request', async () => {
85
- fetchSpy.mockResolvedValue(jsonResponse({ message: { content: 'Howdy' }, prompt_eval_count: 12, eval_count: 3 }));
83
+ fetchSpy.mockResolvedValue(jsonResponse({ message: { content: 'Howdy' } }));
86
84
  const provider = createProvider(ollamaConfig);
87
85
  const result = await provider.send('hey');
88
- expect(result.content).toBe('Howdy');
89
- expect(result.usage).toEqual({ promptTokens: 12, completionTokens: 3, totalTokens: 15 });
86
+ expect(result).toBe('Howdy');
90
87
  expect(fetchSpy).toHaveBeenCalledWith('http://localhost:11434/api/chat', expect.objectContaining({
91
88
  method: 'POST',
92
89
  body: expect.stringContaining('"stream":false'),
@@ -107,11 +104,10 @@ describe('createProvider', () => {
107
104
  enabled: true,
108
105
  };
109
106
  it('creates a Gemini provider and generates content', async () => {
110
- fetchSpy.mockResolvedValue(jsonResponse({ candidates: [{ content: { parts: [{ text: 'Greetings' }] } }], usageMetadata: { promptTokenCount: 6, candidatesTokenCount: 1, totalTokenCount: 7 } }));
107
+ fetchSpy.mockResolvedValue(jsonResponse({ candidates: [{ content: { parts: [{ text: 'Greetings' }] } }] }));
111
108
  const provider = createProvider(geminiConfig);
112
109
  const result = await provider.send('hello', { system: 'Be polite', temperature: 0.7 });
113
- expect(result.content).toBe('Greetings');
114
- expect(result.usage).toEqual({ promptTokens: 6, completionTokens: 1, totalTokens: 7 });
110
+ expect(result).toBe('Greetings');
115
111
  expect(fetchSpy).toHaveBeenCalledWith(expect.stringContaining('/models/gemini-1.5-flash:generateContent'), expect.objectContaining({ method: 'POST' }));
116
112
  const url = fetchSpy.mock.calls[0][0];
117
113
  expect(url).toContain('key=gemini-key');
@@ -139,7 +135,7 @@ describe('createProvider', () => {
139
135
  enabled: true,
140
136
  };
141
137
  const result = await createProvider(genericConfig).send('hi');
142
- expect(result.content).toBe('Generic');
138
+ expect(result).toBe('Generic');
143
139
  expect(fetchSpy).toHaveBeenCalledWith('http://localhost:8080/v1/chat/completions', expect.objectContaining({
144
140
  headers: expect.objectContaining({ Authorization: 'Bearer generic-key' }),
145
141
  }));
@@ -1 +1 @@
1
- {"version":3,"file":"providers.test.js","sourceRoot":"","sources":["../src/providers.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"providers.test.js","sourceRoot":"","sources":["../src/providers.test.ts"],"names":[],"mappings":"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"}
File without changes
File without changes
File without changes
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -1,6 +1,6 @@
1
1
  -42
2
2
  /pglite/data
3
- 1783128417
3
+ 1783143868
4
4
  5432
5
5
 
6
6
 
@@ -7,6 +7,7 @@ import { providerRoutes } from './routes/providers.js';
7
7
  import { routerRoutes } from './routes/router.js';
8
8
  import { metricsRoutes } from './routes/metrics.js';
9
9
  import { promptVersionRoutes } from './routes/prompt-versions.js';
10
+ import { reportRoutes } from './routes/reports.js';
10
11
 
11
12
  export const app: express.Express = express();
12
13
 
@@ -19,6 +20,7 @@ app.use('/providers', providerRoutes(prisma));
19
20
  app.use('/router', routerRoutes(prisma));
20
21
  app.use('/metrics', metricsRoutes(prisma));
21
22
  app.use('/prompt-versions', promptVersionRoutes(prisma));
23
+ app.use('/reports', reportRoutes());
22
24
 
23
25
  app.use((err: unknown, _req: express.Request, res: express.Response, _next: express.NextFunction) => {
24
26
  console.error(err);
@@ -41,7 +41,6 @@ export async function runTask(prisma: PrismaClient, taskId: string) {
41
41
  projectPath: task.project.path,
42
42
  projectName: task.project.name,
43
43
  autoPublish: tags.includes('publish'),
44
- maxSteps: tags.includes('self-improve') ? 60 : 30,
45
44
  });
46
45
  return agentResult.task;
47
46
  }
@@ -81,12 +80,12 @@ export async function runTask(prisma: PrismaClient, taskId: string) {
81
80
  const prompt = [task.title, task.description].filter(Boolean).join('\n\n');
82
81
 
83
82
  try {
84
- const response = await provider.send(prompt, { model: modelName });
83
+ const result = await provider.send(prompt, { model: modelName });
85
84
  const updated = await prisma.task.update({
86
85
  where: { id: taskId },
87
86
  data: {
88
87
  status: 'done',
89
- result: response.content,
88
+ result,
90
89
  provider: providerName,
91
90
  model: modelName,
92
91
  error: null,
@@ -9,27 +9,6 @@ const __filename = fileURLToPath(import.meta.url);
9
9
  const root = path.resolve(__filename, '..', '..', '..', '..');
10
10
  const reportsDir = path.join(root, '.omega', 'reports');
11
11
 
12
- async function listReports(pattern: RegExp): Promise<{ file: string; modifiedAt: string }[]> {
13
- try {
14
- const files = await fs.readdir(reportsDir);
15
- const matches = files.filter((f) => pattern.test(f)).sort().reverse();
16
- const results: { file: string; modifiedAt: string }[] = [];
17
- for (const file of matches) {
18
- const stat = await fs.stat(path.join(reportsDir, file));
19
- results.push({ file, modifiedAt: stat.mtime.toISOString() });
20
- }
21
- return results;
22
- } catch {
23
- return [];
24
- }
25
- }
26
-
27
- async function readReport(file: string): Promise<unknown> {
28
- const raw = await fs.readFile(path.join(reportsDir, file), 'utf-8');
29
- if (file.endsWith('.json')) return JSON.parse(raw) as unknown;
30
- return raw;
31
- }
32
-
33
12
  async function latestReport(pattern: RegExp): Promise<{ file: string; data: unknown } | undefined> {
34
13
  try {
35
14
  const files = await fs.readdir(reportsDir);
@@ -39,7 +18,8 @@ async function latestReport(pattern: RegExp): Promise<{ file: string; data: unkn
39
18
  .reverse();
40
19
  const latest = matches[0];
41
20
  if (!latest) return undefined;
42
- const data = await readReport(latest);
21
+ const raw = await fs.readFile(path.join(reportsDir, latest), 'utf-8');
22
+ const data = latest.endsWith('.json') ? (JSON.parse(raw) as unknown) : raw;
43
23
  return { file: latest, data };
44
24
  } catch {
45
25
  return undefined;
@@ -98,8 +78,6 @@ export function metricsRoutes(prisma: PrismaClient): Router {
98
78
  )
99
79
  : 0;
100
80
 
101
- const totalTokens = agentRuns.reduce((sum, r) => sum + (r.totalTokens ?? 0), 0);
102
-
103
81
  const recentRuns = agentRuns.map((r) => ({
104
82
  id: r.id,
105
83
  taskId: r.taskId,
@@ -110,15 +88,11 @@ export function metricsRoutes(prisma: PrismaClient): Router {
110
88
  validationSummary: r.validationSummary,
111
89
  publishedVersion: r.publishedVersion,
112
90
  durationMs: durationMs(r.createdAt, r.updatedAt),
113
- promptTokens: r.promptTokens,
114
- completionTokens: r.completionTokens,
115
- totalTokens: r.totalTokens,
116
91
  createdAt: r.createdAt,
117
92
  }));
118
93
 
119
94
  const e2eReport = await latestReport(/^e2e-raw-/);
120
95
  const benchmarkReport = await latestReport(/^benchmark-/);
121
- const abReport = await latestReport(/^ab-/);
122
96
 
123
97
  res.json({
124
98
  taskCounts,
@@ -126,66 +100,13 @@ export function metricsRoutes(prisma: PrismaClient): Router {
126
100
  providerUsage,
127
101
  modelUsage,
128
102
  avgDurationMs,
129
- totalTokens,
130
103
  recentRuns,
131
104
  latestReports: {
132
105
  e2e: e2eReport,
133
106
  benchmark: benchmarkReport,
134
- ab: abReport,
135
107
  },
136
108
  });
137
109
  }));
138
110
 
139
- r.get('/reports', asyncHandler(async (_req, res) => {
140
- const e2e = await listReports(/^e2e-raw-/);
141
- const benchmark = await listReports(/^benchmark-/);
142
- res.json({ e2e, benchmark });
143
- }));
144
-
145
- r.get('/reports/benchmark', asyncHandler(async (_req, res) => {
146
- const reports = await listReports(/^benchmark-/);
147
- res.json(reports);
148
- }));
149
-
150
- r.get('/reports/benchmark/:file', asyncHandler(async (req, res) => {
151
- const file = path.basename(req.params.file);
152
- if (!file.startsWith('benchmark-')) {
153
- res.status(400).json({ error: 'Invalid benchmark report filename' });
154
- return;
155
- }
156
- try {
157
- const data = await readReport(file);
158
- res.json(data);
159
- } catch {
160
- res.status(404).json({ error: 'Report not found' });
161
- }
162
- }));
163
-
164
- r.get('/reports/ab', asyncHandler(async (_req, res) => {
165
- const reports = await listReports(/^ab-/);
166
- res.json(reports);
167
- }));
168
-
169
- r.get('/reports/ab/:file', asyncHandler(async (req, res) => {
170
- const file = path.basename(req.params.file);
171
- if (!file.startsWith('ab-')) {
172
- res.status(400).json({ error: 'Invalid A/B report filename' });
173
- return;
174
- }
175
- try {
176
- const data = await readReport(file);
177
- res.json(data);
178
- } catch {
179
- res.status(404).json({ error: 'Report not found' });
180
- }
181
- }));
182
-
183
- r.get('/reports/latest', asyncHandler(async (_req, res) => {
184
- const e2eReport = await latestReport(/^e2e-raw-/);
185
- const benchmarkReport = await latestReport(/^benchmark-/);
186
- const abReport = await latestReport(/^ab-/);
187
- res.json({ e2e: e2eReport, benchmark: benchmarkReport, ab: abReport });
188
- }));
189
-
190
111
  return r;
191
112
  }
@@ -0,0 +1,54 @@
1
+ import { Router } from 'express';
2
+ import fs from 'node:fs/promises';
3
+ import path from 'node:path';
4
+ import { asyncHandler } from '../lib/async-handler.js';
5
+
6
+ const REPORTS_DIR = path.resolve('.omega/reports');
7
+
8
+ interface ReportRef {
9
+ file: string;
10
+ type: 'benchmark' | 'ab';
11
+ createdAt: string;
12
+ }
13
+
14
+ async function listReports(): Promise<ReportRef[]> {
15
+ const entries = await fs.readdir(REPORTS_DIR).catch(() => []);
16
+ const files = entries.filter((f) => f.endsWith('.json'));
17
+ const refs: ReportRef[] = [];
18
+ for (const file of files) {
19
+ const type = file.startsWith('ab-') ? 'ab' : file.startsWith('benchmark-') ? 'benchmark' : undefined;
20
+ if (!type) continue;
21
+ const stat = await fs.stat(path.join(REPORTS_DIR, file)).catch(() => undefined);
22
+ refs.push({ file, type, createdAt: stat?.mtime.toISOString() ?? new Date().toISOString() });
23
+ }
24
+ return refs.sort((a, b) => b.createdAt.localeCompare(a.createdAt));
25
+ }
26
+
27
+ export function reportRoutes(): Router {
28
+ const r = Router();
29
+
30
+ r.get('/', asyncHandler(async (_req, res) => {
31
+ const refs = await listReports();
32
+ res.json({
33
+ benchmark: refs.filter((r) => r.type === 'benchmark'),
34
+ ab: refs.filter((r) => r.type === 'ab'),
35
+ });
36
+ }));
37
+
38
+ r.get('/:file', asyncHandler(async (req, res) => {
39
+ const file = path.basename(req.params.file);
40
+ const filePath = path.join(REPORTS_DIR, file);
41
+ if (!filePath.startsWith(REPORTS_DIR)) {
42
+ res.status(400).json({ error: 'Invalid report file' });
43
+ return;
44
+ }
45
+ const raw = await fs.readFile(filePath, 'utf-8').catch(() => null);
46
+ if (!raw) {
47
+ res.status(404).json({ error: 'Report not found' });
48
+ return;
49
+ }
50
+ res.json(JSON.parse(raw));
51
+ }));
52
+
53
+ return r;
54
+ }
@@ -10,8 +10,6 @@ const createSchema = z.object({
10
10
  description: z.string().optional(),
11
11
  complexity: z.enum(['simple', 'medium', 'complex']).default('simple'),
12
12
  tags: z.array(z.string()).default([]),
13
- provider: z.string().optional(),
14
- model: z.string().optional(),
15
13
  });
16
14
 
17
15
  const updateSchema = z.object({
@@ -52,8 +50,6 @@ export function taskRoutes(prisma: PrismaClient): Router {
52
50
  description: body.description,
53
51
  complexity: body.complexity,
54
52
  tags: JSON.stringify(body.tags),
55
- provider: body.provider,
56
- model: body.model,
57
53
  },
58
54
  });
59
55
  res.status(201).json(task);
@@ -139,8 +135,8 @@ export function taskRoutes(prisma: PrismaClient): Router {
139
135
  const children = byParent[key] ?? [];
140
136
  return children.map((s) => ({
141
137
  ...s,
142
- attributes: s.attributes ? (JSON.parse(s.attributes) as Record<string, unknown>) : undefined,
143
- events: s.events ? (JSON.parse(s.events) as unknown[]) : undefined,
138
+ attributes: s.attributes ? JSON.parse(s.attributes) : undefined,
139
+ events: s.events ? JSON.parse(s.events) : undefined,
144
140
  children: buildTree(s.spanId),
145
141
  }));
146
142
  }
@@ -0,0 +1 @@
1
+ *,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.invisible{visibility:hidden}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.ml-auto{margin-left:auto}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.flex{display:flex}.grid{display:grid}.h-full{height:100%}.h-screen{height:100vh}.max-h-20{max-height:5rem}.max-h-24{max-height:6rem}.max-h-32{max-height:8rem}.max-h-64{max-height:16rem}.w-32{width:8rem}.w-4{width:1rem}.w-72{width:18rem}.w-80{width:20rem}.w-full{width:100%}.w-screen{width:100vw}.min-w-\[200px\]{min-width:200px}.min-w-\[800px\]{min-width:800px}.max-w-\[180px\]{max-width:180px}.flex-1{flex:1 1 0%}.list-inside{list-style-position:inside}.list-disc{list-style-type:disc}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-4{gap:1rem}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rounded{border-radius:.25rem}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.border{border-width:1px}.border-b{border-bottom-width:1px}.border-l{border-left-width:1px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-blue-300{--tw-border-opacity: 1;border-color:rgb(147 197 253 / var(--tw-border-opacity, 1))}.border-gray-200{--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity, 1))}.border-red-100{--tw-border-opacity: 1;border-color:rgb(254 226 226 / var(--tw-border-opacity, 1))}.border-transparent{border-color:transparent}.bg-blue-100{--tw-bg-opacity: 1;background-color:rgb(219 234 254 / var(--tw-bg-opacity, 1))}.bg-blue-50{--tw-bg-opacity: 1;background-color:rgb(239 246 255 / var(--tw-bg-opacity, 1))}.bg-blue-600{--tw-bg-opacity: 1;background-color:rgb(37 99 235 / var(--tw-bg-opacity, 1))}.bg-gray-100{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.bg-gray-200{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity, 1))}.bg-gray-50{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1))}.bg-gray-900{--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity, 1))}.bg-green-100{--tw-bg-opacity: 1;background-color:rgb(220 252 231 / var(--tw-bg-opacity, 1))}.bg-green-50{--tw-bg-opacity: 1;background-color:rgb(240 253 244 / var(--tw-bg-opacity, 1))}.bg-green-600{--tw-bg-opacity: 1;background-color:rgb(22 163 74 / var(--tw-bg-opacity, 1))}.bg-orange-50{--tw-bg-opacity: 1;background-color:rgb(255 247 237 / var(--tw-bg-opacity, 1))}.bg-purple-50{--tw-bg-opacity: 1;background-color:rgb(250 245 255 / var(--tw-bg-opacity, 1))}.bg-purple-600{--tw-bg-opacity: 1;background-color:rgb(147 51 234 / var(--tw-bg-opacity, 1))}.bg-red-50{--tw-bg-opacity: 1;background-color:rgb(254 242 242 / var(--tw-bg-opacity, 1))}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-yellow-50{--tw-bg-opacity: 1;background-color:rgb(254 252 232 / var(--tw-bg-opacity, 1))}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-4{padding-top:1rem;padding-bottom:1rem}.pt-3{padding-top:.75rem}.text-left{text-align:left}.text-center{text-align:center}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.capitalize{text-transform:capitalize}.tracking-wide{letter-spacing:.025em}.text-blue-700{--tw-text-opacity: 1;color:rgb(29 78 216 / var(--tw-text-opacity, 1))}.text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.text-gray-600{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.text-gray-700{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.text-green-400{--tw-text-opacity: 1;color:rgb(74 222 128 / var(--tw-text-opacity, 1))}.text-green-600{--tw-text-opacity: 1;color:rgb(22 163 74 / var(--tw-text-opacity, 1))}.text-green-700{--tw-text-opacity: 1;color:rgb(21 128 61 / var(--tw-text-opacity, 1))}.text-orange-700{--tw-text-opacity: 1;color:rgb(194 65 12 / var(--tw-text-opacity, 1))}.text-purple-700{--tw-text-opacity: 1;color:rgb(126 34 206 / var(--tw-text-opacity, 1))}.text-purple-800{--tw-text-opacity: 1;color:rgb(107 33 168 / var(--tw-text-opacity, 1))}.text-red-500{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.text-red-600{--tw-text-opacity: 1;color:rgb(220 38 38 / var(--tw-text-opacity, 1))}.text-red-700{--tw-text-opacity: 1;color:rgb(185 28 28 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.text-yellow-600{--tw-text-opacity: 1;color:rgb(202 138 4 / var(--tw-text-opacity, 1))}.text-yellow-700{--tw-text-opacity: 1;color:rgb(161 98 7 / var(--tw-text-opacity, 1))}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}body{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity, 1));-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.hover\:bg-blue-700:hover{--tw-bg-opacity: 1;background-color:rgb(29 78 216 / var(--tw-bg-opacity, 1))}.hover\:bg-gray-100:hover{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.hover\:bg-gray-200:hover{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity, 1))}.hover\:bg-gray-300:hover{--tw-bg-opacity: 1;background-color:rgb(209 213 219 / var(--tw-bg-opacity, 1))}.hover\:bg-green-700:hover{--tw-bg-opacity: 1;background-color:rgb(21 128 61 / var(--tw-bg-opacity, 1))}.hover\:bg-purple-700:hover{--tw-bg-opacity: 1;background-color:rgb(126 34 206 / var(--tw-bg-opacity, 1))}.hover\:text-red-700:hover{--tw-text-opacity: 1;color:rgb(185 28 28 / var(--tw-text-opacity, 1))}.disabled\:opacity-50:disabled{opacity:.5}