@castlemilk/omega 0.6.0 → 0.6.1

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 (149) hide show
  1. package/dist/server/node_modules/.pnpm/lock.yaml +9 -0
  2. package/dist/server/node_modules/@omega/agent/dist/executor.d.ts +12 -0
  3. package/dist/server/node_modules/@omega/agent/dist/executor.d.ts.map +1 -0
  4. package/dist/server/node_modules/@omega/agent/dist/executor.js +352 -0
  5. package/dist/server/node_modules/@omega/agent/dist/executor.js.map +1 -0
  6. package/dist/server/node_modules/@omega/agent/dist/git.d.ts +15 -0
  7. package/dist/server/node_modules/@omega/agent/dist/git.d.ts.map +1 -0
  8. package/dist/server/node_modules/@omega/agent/dist/git.js +56 -0
  9. package/dist/server/node_modules/@omega/agent/dist/git.js.map +1 -0
  10. package/dist/server/node_modules/@omega/agent/dist/index.d.ts +7 -0
  11. package/dist/server/node_modules/@omega/agent/dist/index.d.ts.map +1 -0
  12. package/dist/server/node_modules/@omega/agent/dist/index.js +7 -0
  13. package/dist/server/node_modules/@omega/agent/dist/index.js.map +1 -0
  14. package/dist/server/node_modules/@omega/agent/dist/planner.d.ts +12 -0
  15. package/dist/server/node_modules/@omega/agent/dist/planner.d.ts.map +1 -0
  16. package/dist/server/node_modules/@omega/agent/dist/planner.js +64 -0
  17. package/dist/server/node_modules/@omega/agent/dist/planner.js.map +1 -0
  18. package/dist/server/node_modules/@omega/agent/dist/prompts.d.ts +7 -0
  19. package/dist/server/node_modules/@omega/agent/dist/prompts.d.ts.map +1 -0
  20. package/dist/server/node_modules/@omega/agent/dist/prompts.js +55 -0
  21. package/dist/server/node_modules/@omega/agent/dist/prompts.js.map +1 -0
  22. package/dist/server/node_modules/@omega/agent/dist/publisher.d.ts +7 -0
  23. package/dist/server/node_modules/@omega/agent/dist/publisher.d.ts.map +1 -0
  24. package/dist/server/node_modules/@omega/agent/dist/publisher.js +57 -0
  25. package/dist/server/node_modules/@omega/agent/dist/publisher.js.map +1 -0
  26. package/dist/server/node_modules/@omega/agent/dist/tools.d.ts +10 -0
  27. package/dist/server/node_modules/@omega/agent/dist/tools.d.ts.map +1 -0
  28. package/dist/server/node_modules/@omega/agent/dist/tools.js +92 -0
  29. package/dist/server/node_modules/@omega/agent/dist/tools.js.map +1 -0
  30. package/dist/server/node_modules/@omega/agent/dist/validator.d.ts +17 -0
  31. package/dist/server/node_modules/@omega/agent/dist/validator.d.ts.map +1 -0
  32. package/dist/server/node_modules/@omega/agent/dist/validator.js +28 -0
  33. package/dist/server/node_modules/@omega/agent/dist/validator.js.map +1 -0
  34. package/dist/server/node_modules/@omega/agent/package.json +19 -0
  35. package/dist/server/node_modules/@omega/core/dist/agent.d.ts +51 -0
  36. package/dist/server/node_modules/@omega/core/dist/agent.d.ts.map +1 -0
  37. package/dist/server/node_modules/@omega/core/dist/agent.js +2 -0
  38. package/dist/server/node_modules/@omega/core/dist/agent.js.map +1 -0
  39. package/dist/server/node_modules/@omega/core/dist/index.d.ts +5 -0
  40. package/dist/server/node_modules/@omega/core/dist/index.d.ts.map +1 -0
  41. package/dist/server/node_modules/@omega/core/dist/index.js +5 -0
  42. package/dist/server/node_modules/@omega/core/dist/index.js.map +1 -0
  43. package/dist/server/node_modules/@omega/core/dist/provider.d.ts +48 -0
  44. package/dist/server/node_modules/@omega/core/dist/provider.d.ts.map +1 -0
  45. package/dist/server/node_modules/@omega/core/dist/provider.js +2 -0
  46. package/dist/server/node_modules/@omega/core/dist/provider.js.map +1 -0
  47. package/dist/server/node_modules/@omega/core/dist/provider.test.d.ts +2 -0
  48. package/dist/server/node_modules/@omega/core/dist/provider.test.d.ts.map +1 -0
  49. package/dist/server/node_modules/@omega/core/dist/provider.test.js +27 -0
  50. package/dist/server/node_modules/@omega/core/dist/provider.test.js.map +1 -0
  51. package/dist/server/node_modules/@omega/core/dist/skill.d.ts +21 -0
  52. package/dist/server/node_modules/@omega/core/dist/skill.d.ts.map +1 -0
  53. package/dist/server/node_modules/@omega/core/dist/skill.js +2 -0
  54. package/dist/server/node_modules/@omega/core/dist/skill.js.map +1 -0
  55. package/dist/server/node_modules/@omega/core/dist/task.d.ts +27 -0
  56. package/dist/server/node_modules/@omega/core/dist/task.d.ts.map +1 -0
  57. package/dist/server/node_modules/@omega/core/dist/task.js +2 -0
  58. package/dist/server/node_modules/@omega/core/dist/task.js.map +1 -0
  59. package/dist/server/node_modules/@omega/core/package.json +13 -0
  60. package/dist/server/node_modules/@omega/db/dist/client.d.ts +8 -0
  61. package/dist/server/node_modules/@omega/db/dist/client.d.ts.map +1 -0
  62. package/dist/server/node_modules/@omega/db/dist/client.js +8 -0
  63. package/dist/server/node_modules/@omega/db/dist/client.js.map +1 -0
  64. package/dist/server/node_modules/@omega/db/dist/index.d.ts +5 -0
  65. package/dist/server/node_modules/@omega/db/dist/index.d.ts.map +1 -0
  66. package/dist/server/node_modules/@omega/db/dist/index.js +5 -0
  67. package/dist/server/node_modules/@omega/db/dist/index.js.map +1 -0
  68. package/dist/server/node_modules/@omega/db/dist/migrate.d.ts +2 -0
  69. package/dist/server/node_modules/@omega/db/dist/migrate.d.ts.map +1 -0
  70. package/dist/server/node_modules/@omega/db/dist/migrate.js +58 -0
  71. package/dist/server/node_modules/@omega/db/dist/migrate.js.map +1 -0
  72. package/dist/server/node_modules/@omega/db/dist/seed.d.ts +2 -0
  73. package/dist/server/node_modules/@omega/db/dist/seed.d.ts.map +1 -0
  74. package/dist/server/node_modules/@omega/db/dist/seed.js +42 -0
  75. package/dist/server/node_modules/@omega/db/dist/seed.js.map +1 -0
  76. package/dist/server/node_modules/@omega/db/generated/client/default.d.ts +1 -0
  77. package/dist/server/node_modules/@omega/db/generated/client/default.js +1 -0
  78. package/dist/server/node_modules/@omega/db/generated/client/edge.d.ts +1 -0
  79. package/dist/server/node_modules/@omega/db/generated/client/edge.js +282 -0
  80. package/dist/server/node_modules/@omega/db/generated/client/index-browser.js +272 -0
  81. package/dist/server/node_modules/@omega/db/generated/client/index.d.ts +12787 -0
  82. package/dist/server/node_modules/@omega/db/generated/client/index.js +303 -0
  83. package/dist/server/node_modules/@omega/db/generated/client/libquery_engine-darwin-arm64.dylib.node +0 -0
  84. package/dist/server/node_modules/@omega/db/generated/client/package.json +124 -0
  85. package/dist/server/node_modules/@omega/db/generated/client/query_engine_bg.js +2 -0
  86. package/dist/server/node_modules/@omega/db/generated/client/query_engine_bg.wasm +0 -0
  87. package/dist/server/node_modules/@omega/db/generated/client/runtime/edge-esm.js +31 -0
  88. package/dist/server/node_modules/@omega/db/generated/client/runtime/edge.js +31 -0
  89. package/dist/server/node_modules/@omega/db/generated/client/runtime/index-browser.d.ts +365 -0
  90. package/dist/server/node_modules/@omega/db/generated/client/runtime/index-browser.js +13 -0
  91. package/dist/server/node_modules/@omega/db/generated/client/runtime/library.d.ts +3403 -0
  92. package/dist/server/node_modules/@omega/db/generated/client/runtime/library.js +143 -0
  93. package/dist/server/node_modules/@omega/db/generated/client/runtime/react-native.js +80 -0
  94. package/dist/server/node_modules/@omega/db/generated/client/runtime/wasm.js +32 -0
  95. package/dist/server/node_modules/@omega/db/generated/client/schema.prisma +119 -0
  96. package/dist/server/node_modules/@omega/db/generated/client/wasm-edge-light-loader.mjs +1 -0
  97. package/dist/server/node_modules/@omega/db/generated/client/wasm-worker-loader.mjs +1 -0
  98. package/dist/server/node_modules/@omega/db/generated/client/wasm.d.ts +1 -0
  99. package/dist/server/node_modules/@omega/db/generated/client/wasm.js +289 -0
  100. package/dist/server/node_modules/@omega/db/package.json +18 -0
  101. package/dist/server/node_modules/@omega/db/prisma/migrations/20260702110000_init/migration.sql +154 -0
  102. package/dist/server/node_modules/@omega/providers/dist/anthropic.d.ts +10 -0
  103. package/dist/server/node_modules/@omega/providers/dist/anthropic.d.ts.map +1 -0
  104. package/dist/server/node_modules/@omega/providers/dist/anthropic.js +50 -0
  105. package/dist/server/node_modules/@omega/providers/dist/anthropic.js.map +1 -0
  106. package/dist/server/node_modules/@omega/providers/dist/gemini.d.ts +9 -0
  107. package/dist/server/node_modules/@omega/providers/dist/gemini.d.ts.map +1 -0
  108. package/dist/server/node_modules/@omega/providers/dist/gemini.js +46 -0
  109. package/dist/server/node_modules/@omega/providers/dist/gemini.js.map +1 -0
  110. package/dist/server/node_modules/@omega/providers/dist/generic.d.ts +4 -0
  111. package/dist/server/node_modules/@omega/providers/dist/generic.d.ts.map +1 -0
  112. package/dist/server/node_modules/@omega/providers/dist/generic.js +4 -0
  113. package/dist/server/node_modules/@omega/providers/dist/generic.js.map +1 -0
  114. package/dist/server/node_modules/@omega/providers/dist/index.d.ts +9 -0
  115. package/dist/server/node_modules/@omega/providers/dist/index.d.ts.map +1 -0
  116. package/dist/server/node_modules/@omega/providers/dist/index.js +31 -0
  117. package/dist/server/node_modules/@omega/providers/dist/index.js.map +1 -0
  118. package/dist/server/node_modules/@omega/providers/dist/kimi.d.ts +8 -0
  119. package/dist/server/node_modules/@omega/providers/dist/kimi.d.ts.map +1 -0
  120. package/dist/server/node_modules/@omega/providers/dist/kimi.js +13 -0
  121. package/dist/server/node_modules/@omega/providers/dist/kimi.js.map +1 -0
  122. package/dist/server/node_modules/@omega/providers/dist/ollama.d.ts +9 -0
  123. package/dist/server/node_modules/@omega/providers/dist/ollama.d.ts.map +1 -0
  124. package/dist/server/node_modules/@omega/providers/dist/ollama.js +38 -0
  125. package/dist/server/node_modules/@omega/providers/dist/ollama.js.map +1 -0
  126. package/dist/server/node_modules/@omega/providers/dist/openai.d.ts +12 -0
  127. package/dist/server/node_modules/@omega/providers/dist/openai.d.ts.map +1 -0
  128. package/dist/server/node_modules/@omega/providers/dist/openai.js +95 -0
  129. package/dist/server/node_modules/@omega/providers/dist/openai.js.map +1 -0
  130. package/dist/server/node_modules/@omega/providers/dist/providers.test.d.ts +2 -0
  131. package/dist/server/node_modules/@omega/providers/dist/providers.test.d.ts.map +1 -0
  132. package/dist/server/node_modules/@omega/providers/dist/providers.test.js +147 -0
  133. package/dist/server/node_modules/@omega/providers/dist/providers.test.js.map +1 -0
  134. package/dist/server/node_modules/@omega/providers/package.json +16 -0
  135. package/dist/server/node_modules/@omega/router/dist/index.d.ts +2 -0
  136. package/dist/server/node_modules/@omega/router/dist/index.d.ts.map +1 -0
  137. package/dist/server/node_modules/@omega/router/dist/index.js +2 -0
  138. package/dist/server/node_modules/@omega/router/dist/index.js.map +1 -0
  139. package/dist/server/node_modules/@omega/router/dist/router.test.d.ts +2 -0
  140. package/dist/server/node_modules/@omega/router/dist/router.test.d.ts.map +1 -0
  141. package/dist/server/node_modules/@omega/router/dist/router.test.js +102 -0
  142. package/dist/server/node_modules/@omega/router/dist/router.test.js.map +1 -0
  143. package/dist/server/node_modules/@omega/router/dist/rules.d.ts +18 -0
  144. package/dist/server/node_modules/@omega/router/dist/rules.d.ts.map +1 -0
  145. package/dist/server/node_modules/@omega/router/dist/rules.js +59 -0
  146. package/dist/server/node_modules/@omega/router/dist/rules.js.map +1 -0
  147. package/dist/server/node_modules/@omega/router/package.json +16 -0
  148. package/dist/server/package.json +3 -0
  149. package/package.json +2 -3
@@ -0,0 +1,55 @@
1
+ export const AGENT_SYSTEM_PROMPT = `You are Omega, an autonomous software engineering agent running inside a project repository. Your job is to plan and execute a given improvement task, then validate the result.
2
+
3
+ You have access to the following tools. Respond with a JSON object containing a single key "tool_calls" which is an array of tool calls to make. Each tool call must have "id" (unique), "name", and "arguments".
4
+
5
+ Available tools:
6
+
7
+ 1. read_file
8
+ Description: Read the contents of a file.
9
+ Parameters: { "path": "relative path from project root" }
10
+
11
+ 2. write_file
12
+ Description: Write content to a file. Creates parent directories if needed.
13
+ Parameters: { "path": "relative path from project root", "content": "file content" }
14
+
15
+ 3. run_command
16
+ Description: Run a shell command in the project root. Prefer pnpm/npm/node commands.
17
+ Parameters: { "command": "shell command" }
18
+
19
+ 4. think
20
+ Description: Record reasoning or a plan step. Use this before writing code.
21
+ Parameters: { "thought": "your reasoning" }
22
+
23
+ 5. finish
24
+ Description: Mark the task as complete.
25
+ Parameters: { "summary": "what was done", "success": true | false }
26
+
27
+ 6. publish
28
+ Description: Request that the changes be built, tested, and published. Only use after validation passes.
29
+ Parameters: { "version": "optional version override, e.g. 0.4.0" }
30
+
31
+ Rules:
32
+ - Work in small, verifiable steps.
33
+ - Always think before writing or running commands.
34
+ - Prefer editing existing files over creating new ones when possible.
35
+ - Run tests and lint after making changes.
36
+ - Do not expose secrets.
37
+ - Do not run destructive commands (rm -rf, git reset --hard, etc).
38
+ - If a step fails, use think to reason and try a fix.
39
+ - Finish only when the task is truly complete or you cannot proceed.
40
+
41
+ Output format (strict JSON, no markdown):
42
+ {"tool_calls":[{"id":"1","name":"think","arguments":{"thought":"..."}}]}`;
43
+ export function buildTaskPrompt(title, description) {
44
+ const parts = [`Task: ${title}`];
45
+ if (description)
46
+ parts.push(`Description: ${description}`);
47
+ parts.push('Start by using the think tool to create a plan.');
48
+ return parts.join('\n\n');
49
+ }
50
+ export function buildToolResultPrompt(results) {
51
+ return `Tool results:\n${results
52
+ .map((r) => `[${r.toolCallId}]\n${r.output}`)
53
+ .join('\n\n')}\n\nRespond with the next tool_calls JSON.`;
54
+ }
55
+ //# sourceMappingURL=prompts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,mBAAmB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yEAyCsC,CAAC;AAE1E,MAAM,UAAU,eAAe,CAAC,KAAa,EAAE,WAAoB;IACjE,MAAM,KAAK,GAAG,CAAC,SAAS,KAAK,EAAE,CAAC,CAAC;IACjC,IAAI,WAAW;QAAE,KAAK,CAAC,IAAI,CAAC,gBAAgB,WAAW,EAAE,CAAC,CAAC;IAC3D,KAAK,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;IAC9D,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,OAAiD;IACrF,OAAO,kBAAkB,OAAO;SAC7B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,UAAU,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC;SAC5C,IAAI,CAAC,MAAM,CAAC,4CAA4C,CAAC;AAC9D,CAAC"}
@@ -0,0 +1,7 @@
1
+ export interface PublishResult {
2
+ success: boolean;
3
+ version?: string;
4
+ output: string;
5
+ }
6
+ export declare function publishOmega(projectPath: string, versionOverride?: string): Promise<PublishResult>;
7
+ //# sourceMappingURL=publisher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publisher.d.ts","sourceRoot":"","sources":["../src/publisher.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AASD,wBAAsB,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAmDxG"}
@@ -0,0 +1,57 @@
1
+ import fs from 'node:fs/promises';
2
+ import path from 'node:path';
3
+ import { execFile } from 'node:child_process';
4
+ import { promisify } from 'node:util';
5
+ import { createTag, push } from './git.js';
6
+ const execFileAsync = promisify(execFile);
7
+ function bumpPatch(version) {
8
+ const parts = version.split('.');
9
+ const patch = parseInt(parts[2] ?? '0', 10);
10
+ parts[2] = String(patch + 1);
11
+ return parts.join('.');
12
+ }
13
+ export async function publishOmega(projectPath, versionOverride) {
14
+ const bundlePackagePath = path.join(projectPath, 'packages/bundle/package.json');
15
+ let bundlePackage;
16
+ try {
17
+ const raw = await fs.readFile(bundlePackagePath, 'utf-8');
18
+ bundlePackage = JSON.parse(raw);
19
+ }
20
+ catch (err) {
21
+ return {
22
+ success: false,
23
+ output: `Could not read packages/bundle/package.json: ${err instanceof Error ? err.message : String(err)}`,
24
+ };
25
+ }
26
+ const newVersion = versionOverride ?? bumpPatch(bundlePackage.version);
27
+ try {
28
+ // Update root version to keep things in sync
29
+ const rootPackagePath = path.join(projectPath, 'package.json');
30
+ const rootRaw = await fs.readFile(rootPackagePath, 'utf-8');
31
+ const rootPackage = JSON.parse(rootRaw);
32
+ rootPackage.version = newVersion;
33
+ await fs.writeFile(rootPackagePath, JSON.stringify(rootPackage, null, 2) + '\n', 'utf-8');
34
+ bundlePackage.version = newVersion;
35
+ await fs.writeFile(bundlePackagePath, JSON.stringify(bundlePackage, null, 2) + '\n', 'utf-8');
36
+ await execFileAsync('pnpm', ['install'], { cwd: projectPath, timeout: 120_000 });
37
+ await execFileAsync('pnpm', ['build'], { cwd: projectPath, timeout: 300_000 });
38
+ await execFileAsync('pnpm', ['--filter', '@castlemilk/omega', 'publish', '--no-git-checks'], { cwd: projectPath, timeout: 120_000 });
39
+ const tag = `v${newVersion}`;
40
+ const tagResult = await createTag(projectPath, tag, `Release ${newVersion}`);
41
+ if (!tagResult.success) {
42
+ return { success: false, version: newVersion, output: tagResult.output };
43
+ }
44
+ const pushResult = await push(projectPath, 'origin', tag);
45
+ if (!pushResult.success) {
46
+ return { success: false, version: newVersion, output: pushResult.output };
47
+ }
48
+ return { success: true, version: newVersion, output: `Published ${newVersion}` };
49
+ }
50
+ catch (err) {
51
+ return {
52
+ success: false,
53
+ output: `Publish failed: ${err instanceof Error ? err.message : String(err)}`,
54
+ };
55
+ }
56
+ }
57
+ //# sourceMappingURL=publisher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publisher.js","sourceRoot":"","sources":["../src/publisher.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ export interface ToolResult {
2
+ success: boolean;
3
+ output: string;
4
+ }
5
+ export declare function readFile(projectPath: string, filePath: string): Promise<ToolResult>;
6
+ export declare function writeFile(projectPath: string, filePath: string, content: string): Promise<ToolResult>;
7
+ export declare function runCommand(projectPath: string, command: string): Promise<ToolResult>;
8
+ export declare function think(_projectPath: string, thought: string): ToolResult;
9
+ export declare function executeTool(projectPath: string, name: string, arguments_: Record<string, unknown>): Promise<ToolResult>;
10
+ //# sourceMappingURL=tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAqBD,wBAAsB,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAWzF;AAED,wBAAsB,SAAS,CAC7B,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,UAAU,CAAC,CAYrB;AAED,wBAAsB,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAc1F;AAED,wBAAgB,KAAK,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,UAAU,CAEvE;AASD,wBAAsB,WAAW,CAC/B,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAClC,OAAO,CAAC,UAAU,CAAC,CAarB"}
@@ -0,0 +1,92 @@
1
+ import fs from 'node:fs/promises';
2
+ import path from 'node:path';
3
+ import { execFile } from 'node:child_process';
4
+ import { promisify } from 'node:util';
5
+ const execFileAsync = promisify(execFile);
6
+ const FORBIDDEN_COMMANDS = [
7
+ 'rm -rf',
8
+ 'git reset --hard',
9
+ 'git clean',
10
+ 'git push --force',
11
+ 'git push -f',
12
+ '> /',
13
+ ];
14
+ function sanitizeCommand(command) {
15
+ const trimmed = command.trim();
16
+ for (const forbidden of FORBIDDEN_COMMANDS) {
17
+ if (trimmed.toLowerCase().includes(forbidden.toLowerCase())) {
18
+ throw new Error(`Forbidden command pattern detected: ${forbidden}`);
19
+ }
20
+ }
21
+ return trimmed;
22
+ }
23
+ export async function readFile(projectPath, filePath) {
24
+ const target = path.resolve(projectPath, filePath);
25
+ if (!target.startsWith(path.resolve(projectPath))) {
26
+ return { success: false, output: 'Path traversal blocked' };
27
+ }
28
+ try {
29
+ const content = await fs.readFile(target, 'utf-8');
30
+ return { success: true, output: content };
31
+ }
32
+ catch (err) {
33
+ return { success: false, output: err instanceof Error ? err.message : String(err) };
34
+ }
35
+ }
36
+ export async function writeFile(projectPath, filePath, content) {
37
+ const target = path.resolve(projectPath, filePath);
38
+ if (!target.startsWith(path.resolve(projectPath))) {
39
+ return { success: false, output: 'Path traversal blocked' };
40
+ }
41
+ try {
42
+ await fs.mkdir(path.dirname(target), { recursive: true });
43
+ await fs.writeFile(target, content, 'utf-8');
44
+ return { success: true, output: `Wrote ${filePath}` };
45
+ }
46
+ catch (err) {
47
+ return { success: false, output: err instanceof Error ? err.message : String(err) };
48
+ }
49
+ }
50
+ export async function runCommand(projectPath, command) {
51
+ try {
52
+ sanitizeCommand(command);
53
+ const [cmd, ...args] = command.split(' ');
54
+ const { stdout, stderr } = await execFileAsync(cmd, args, {
55
+ cwd: projectPath,
56
+ timeout: 120_000,
57
+ shell: false,
58
+ });
59
+ return { success: true, output: stdout + stderr };
60
+ }
61
+ catch (err) {
62
+ const message = err instanceof Error ? err.message : String(err);
63
+ return { success: false, output: message };
64
+ }
65
+ }
66
+ export function think(_projectPath, thought) {
67
+ return { success: true, output: thought };
68
+ }
69
+ function argString(value) {
70
+ if (value === undefined || value === null)
71
+ return '';
72
+ if (typeof value === 'string')
73
+ return value;
74
+ if (typeof value === 'number' || typeof value === 'boolean')
75
+ return value.toString();
76
+ return JSON.stringify(value);
77
+ }
78
+ export async function executeTool(projectPath, name, arguments_) {
79
+ switch (name) {
80
+ case 'read_file':
81
+ return readFile(projectPath, argString(arguments_.path));
82
+ case 'write_file':
83
+ return writeFile(projectPath, argString(arguments_.path), argString(arguments_.content));
84
+ case 'run_command':
85
+ return runCommand(projectPath, argString(arguments_.command));
86
+ case 'think':
87
+ return think(projectPath, argString(arguments_.thought));
88
+ default:
89
+ return { success: false, output: `Unknown tool: ${name}` };
90
+ }
91
+ }
92
+ //# sourceMappingURL=tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ export interface ValidationSummary {
2
+ lint: {
3
+ passed: boolean;
4
+ output: string;
5
+ };
6
+ test: {
7
+ passed: boolean;
8
+ output: string;
9
+ };
10
+ build: {
11
+ passed: boolean;
12
+ output: string;
13
+ };
14
+ allPassed: boolean;
15
+ }
16
+ export declare function validateProject(projectPath: string): Promise<ValidationSummary>;
17
+ //# sourceMappingURL=validator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../src/validator.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE;QAAE,MAAM,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1C,IAAI,EAAE;QAAE,MAAM,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1C,KAAK,EAAE;QAAE,MAAM,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3C,SAAS,EAAE,OAAO,CAAC;CACpB;AAmBD,wBAAsB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAWrF"}
@@ -0,0 +1,28 @@
1
+ import { execFile } from 'node:child_process';
2
+ import { promisify } from 'node:util';
3
+ const execFileAsync = promisify(execFile);
4
+ async function runStep(projectPath, command, args) {
5
+ try {
6
+ const { stdout, stderr } = await execFileAsync(command, args, {
7
+ cwd: projectPath,
8
+ timeout: 300_000,
9
+ });
10
+ return { passed: true, output: stdout + stderr };
11
+ }
12
+ catch (err) {
13
+ const message = err instanceof Error ? err.message : String(err);
14
+ return { passed: false, output: message };
15
+ }
16
+ }
17
+ export async function validateProject(projectPath) {
18
+ const lint = await runStep(projectPath, 'pnpm', ['lint']);
19
+ const test = await runStep(projectPath, 'pnpm', ['test']);
20
+ const build = await runStep(projectPath, 'pnpm', ['build']);
21
+ return {
22
+ lint,
23
+ test,
24
+ build,
25
+ allPassed: lint.passed && test.passed && build.passed,
26
+ };
27
+ }
28
+ //# sourceMappingURL=validator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validator.js","sourceRoot":"","sources":["../src/validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AAS1C,KAAK,UAAU,OAAO,CACpB,WAAmB,EACnB,OAAe,EACf,IAAc;IAEd,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,aAAa,CAAC,OAAO,EAAE,IAAI,EAAE;YAC5D,GAAG,EAAE,WAAW;YAChB,OAAO,EAAE,OAAO;SACjB,CAAC,CAAC;QACH,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACnD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;IAC5C,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,WAAmB;IACvD,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAC1D,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAC1D,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAE5D,OAAO;QACL,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,SAAS,EAAE,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM;KACtD,CAAC;AACJ,CAAC"}
@@ -0,0 +1,19 @@
1
+ {
2
+ "name": "@omega/agent",
3
+ "version": "0.1.0",
4
+ "type": "module",
5
+ "main": "./dist/index.js",
6
+ "types": "./dist/index.d.ts",
7
+ "exports": {
8
+ ".": {
9
+ "import": "./dist/index.js",
10
+ "types": "./dist/index.d.ts"
11
+ }
12
+ },
13
+ "dependencies": {
14
+ "@omega/core": "*",
15
+ "@omega/db": "*",
16
+ "@omega/providers": "*",
17
+ "@omega/router": "*"
18
+ }
19
+ }
@@ -0,0 +1,51 @@
1
+ export type TaskStepStatus = 'pending' | 'running' | 'done' | 'failed';
2
+ export interface TaskStep {
3
+ id: string;
4
+ taskId: string;
5
+ idx: number;
6
+ name: string;
7
+ status: TaskStepStatus;
8
+ input?: string;
9
+ output?: string;
10
+ error?: string;
11
+ createdAt: Date;
12
+ updatedAt: Date;
13
+ }
14
+ export type TaskTraceRole = 'system' | 'user' | 'assistant' | 'tool';
15
+ export interface TaskTrace {
16
+ id: string;
17
+ taskId: string;
18
+ stepId?: string;
19
+ role: TaskTraceRole;
20
+ content?: string;
21
+ toolCalls?: string;
22
+ createdAt: Date;
23
+ }
24
+ export interface TaskDiff {
25
+ id: string;
26
+ taskId: string;
27
+ branch: string;
28
+ commitSha?: string;
29
+ patch: string;
30
+ createdAt: Date;
31
+ }
32
+ export type AgentRunStatus = 'running' | 'done' | 'failed';
33
+ export interface AgentRun {
34
+ id: string;
35
+ taskId: string;
36
+ branch: string;
37
+ baseCommit: string;
38
+ resultStatus: AgentRunStatus;
39
+ validationSummary?: string;
40
+ publishedVersion?: string;
41
+ createdAt: Date;
42
+ updatedAt: Date;
43
+ }
44
+ export interface AgentOptions {
45
+ projectPath: string;
46
+ projectName: string;
47
+ autoPublish?: boolean;
48
+ maxSteps?: number;
49
+ baseBranch?: string;
50
+ }
51
+ //# sourceMappingURL=agent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,GAAG,QAAQ,CAAC;AAEvE,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,cAAc,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,MAAM,GAAG,WAAW,GAAG,MAAM,CAAC;AAErE,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,aAAa,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,MAAM,GAAG,QAAQ,CAAC;AAE3D,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,cAAc,CAAC;IAC7B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=agent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ export * from './provider.js';
2
+ export * from './task.js';
3
+ export * from './skill.js';
4
+ export * from './agent.js';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC"}
@@ -0,0 +1,5 @@
1
+ export * from './provider.js';
2
+ export * from './task.js';
3
+ export * from './skill.js';
4
+ export * from './agent.js';
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC"}
@@ -0,0 +1,48 @@
1
+ export interface ModelRef {
2
+ provider: string;
3
+ model: string;
4
+ }
5
+ export type CapabilityLevel = 'fast' | 'capable' | 'advanced';
6
+ export interface Capability {
7
+ name: string;
8
+ level: CapabilityLevel;
9
+ contextWindow?: number;
10
+ supportsVision?: boolean;
11
+ supportsTools?: boolean;
12
+ }
13
+ export type ProviderKind = 'openai' | 'anthropic' | 'ollama' | 'gemini' | 'kimi' | 'generic';
14
+ export interface ProviderConfig {
15
+ id: string;
16
+ name: string;
17
+ kind: ProviderKind;
18
+ baseUrl?: string;
19
+ apiKey?: string;
20
+ defaultModel: string;
21
+ capabilities: Capability[];
22
+ enabled: boolean;
23
+ }
24
+ export interface SendOptions {
25
+ model?: string;
26
+ system?: string;
27
+ temperature?: number;
28
+ }
29
+ export interface ToolDefinition {
30
+ name: string;
31
+ description: string;
32
+ parameters: Record<string, unknown>;
33
+ }
34
+ export interface ToolCall {
35
+ id: string;
36
+ name: string;
37
+ arguments: Record<string, unknown>;
38
+ }
39
+ export interface ToolSendOptions extends SendOptions {
40
+ tools: ToolDefinition[];
41
+ }
42
+ export interface Provider {
43
+ readonly config: ProviderConfig;
44
+ listModels(): Promise<string[]>;
45
+ send(prompt: string, opts?: SendOptions): Promise<string>;
46
+ sendWithTools?(prompt: string, tools: ToolDefinition[], opts?: SendOptions): Promise<string>;
47
+ }
48
+ //# sourceMappingURL=provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,QAAQ;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,SAAS,GAAG,UAAU,CAAC;AAE9D,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,eAAe,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,WAAW,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,CAAC;AAE7F,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,YAAY,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,UAAU,EAAE,CAAC;IAC3B,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACrC;AAED,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,eAAgB,SAAQ,WAAW;IAClD,KAAK,EAAE,cAAc,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,UAAU,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAChC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1D,aAAa,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC9F"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=provider.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.test.d.ts","sourceRoot":"","sources":["../src/provider.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,27 @@
1
+ import { describe, it, expect } from 'vitest';
2
+ function bestCapability(caps, minLevel) {
3
+ const levels = { simple: 1, medium: 2, complex: 3 };
4
+ const providerLevels = { fast: 1, capable: 2, advanced: 3 };
5
+ const min = levels[minLevel];
6
+ return caps
7
+ .filter((c) => providerLevels[c.level] >= min)
8
+ .sort((a, b) => providerLevels[a.level] - providerLevels[b.level])[0];
9
+ }
10
+ describe('bestCapability', () => {
11
+ it('picks advanced for complex tasks', () => {
12
+ const caps = [{ name: 'gpt-4o', level: 'advanced' }];
13
+ expect(bestCapability(caps, 'complex')?.name).toBe('gpt-4o');
14
+ });
15
+ it('falls back to capable when no advanced is available', () => {
16
+ const caps = [
17
+ { name: 'fast', level: 'fast' },
18
+ { name: 'capable', level: 'capable' },
19
+ ];
20
+ expect(bestCapability(caps, 'medium')?.name).toBe('capable');
21
+ });
22
+ it('returns undefined when no capability meets the level', () => {
23
+ const caps = [{ name: 'fast', level: 'fast' }];
24
+ expect(bestCapability(caps, 'complex')).toBeUndefined();
25
+ });
26
+ });
27
+ //# sourceMappingURL=provider.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.test.js","sourceRoot":"","sources":["../src/provider.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAI9C,SAAS,cAAc,CAAC,IAAkB,EAAE,QAAoB;IAC9D,MAAM,MAAM,GAA+B,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;IAChF,MAAM,cAAc,GAAwC,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;IACjG,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC7B,OAAO,IAAI;SACR,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC;SAC7C,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1E,CAAC;AAED,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC9B,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAC1C,MAAM,IAAI,GAAiB,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;QACnE,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;QAC7D,MAAM,IAAI,GAAiB;YACzB,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;YAC/B,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE;SACtC,CAAC;QACF,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;QAC9D,MAAM,IAAI,GAAiB,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QAC7D,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;IAC1D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,21 @@
1
+ export interface SkillArg {
2
+ name: string;
3
+ type: string;
4
+ required: boolean;
5
+ description?: string;
6
+ }
7
+ export interface SkillManifest {
8
+ name: string;
9
+ description: string;
10
+ args: SkillArg[];
11
+ instructions: string;
12
+ }
13
+ export interface SkillArtifact {
14
+ id: string;
15
+ name: string;
16
+ sourcePath: string;
17
+ generatedPath: string;
18
+ manifest: SkillManifest;
19
+ registeredAt: Date;
20
+ }
21
+ //# sourceMappingURL=skill.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill.d.ts","sourceRoot":"","sources":["../src/skill.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,QAAQ,EAAE,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,aAAa,CAAC;IACxB,YAAY,EAAE,IAAI,CAAC;CACpB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=skill.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill.js","sourceRoot":"","sources":["../src/skill.ts"],"names":[],"mappings":""}
@@ -0,0 +1,27 @@
1
+ import type { ModelRef } from './provider.js';
2
+ export type TaskStatus = 'todo' | 'in_progress' | 'done' | 'failed';
3
+ export type Complexity = 'simple' | 'medium' | 'complex';
4
+ export interface Task {
5
+ id: string;
6
+ projectId: string;
7
+ title: string;
8
+ description?: string;
9
+ status: TaskStatus;
10
+ complexity: Complexity;
11
+ tags: string[];
12
+ assignedModel?: ModelRef;
13
+ result?: string;
14
+ error?: string;
15
+ createdAt: Date;
16
+ updatedAt: Date;
17
+ }
18
+ export interface Project {
19
+ id: string;
20
+ name: string;
21
+ path: string;
22
+ repoUrl?: string;
23
+ description?: string;
24
+ env?: Record<string, string>;
25
+ createdAt: Date;
26
+ }
27
+ //# sourceMappingURL=task.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task.d.ts","sourceRoot":"","sources":["../src/task.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE9C,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,aAAa,GAAG,MAAM,GAAG,QAAQ,CAAC;AACpE,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEzD,MAAM,WAAW,IAAI;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,UAAU,CAAC;IACnB,UAAU,EAAE,UAAU,CAAC;IACvB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,aAAa,CAAC,EAAE,QAAQ,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,SAAS,EAAE,IAAI,CAAC;CACjB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=task.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task.js","sourceRoot":"","sources":["../src/task.ts"],"names":[],"mappings":""}
@@ -0,0 +1,13 @@
1
+ {
2
+ "name": "@omega/core",
3
+ "version": "0.1.0",
4
+ "type": "module",
5
+ "main": "./dist/index.js",
6
+ "types": "./dist/index.d.ts",
7
+ "exports": {
8
+ ".": {
9
+ "import": "./dist/index.js",
10
+ "types": "./dist/index.d.ts"
11
+ }
12
+ }
13
+ }
@@ -0,0 +1,8 @@
1
+ import { PGlite } from '@electric-sql/pglite';
2
+ import { PrismaPGlite } from 'pglite-prisma-adapter';
3
+ import { PrismaClient } from '../generated/client/index.js';
4
+ export declare const pglite: PGlite;
5
+ export declare const prisma: PrismaClient<{
6
+ adapter: PrismaPGlite;
7
+ }, never, import("../generated/client/runtime/library.js").DefaultArgs>;
8
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAI5D,eAAO,MAAM,MAAM,QAA0B,CAAC;AAG9C,eAAO,MAAM,MAAM;;uEAAgC,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { PGlite } from '@electric-sql/pglite';
2
+ import { PrismaPGlite } from 'pglite-prisma-adapter';
3
+ import { PrismaClient } from '../generated/client/index.js';
4
+ const databaseDir = process.env.DATABASE_DIR ?? './pglite-data';
5
+ export const pglite = new PGlite(databaseDir);
6
+ const adapter = new PrismaPGlite(pglite);
7
+ export const prisma = new PrismaClient({ adapter });
8
+ //# sourceMappingURL=client.js.map