@trenchwork/erosolar 1.1.40 → 1.1.42

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 (105) hide show
  1. package/LICENSE +12 -17
  2. package/README.md +23 -12
  3. package/dist/bin/deepseek.js +18 -198
  4. package/dist/bin/deepseek.js.map +1 -1
  5. package/dist/contracts/agent-profiles.schema.json +5 -23
  6. package/dist/contracts/agent-schemas.json +31 -343
  7. package/dist/contracts/schemas/agent-schemas.schema.json +3 -3
  8. package/dist/contracts/unified-schema.json +8 -628
  9. package/dist/core/hitl.d.ts.map +1 -1
  10. package/dist/core/hitl.js +17 -16
  11. package/dist/core/hitl.js.map +1 -1
  12. package/dist/core/modelDiscovery.d.ts +0 -3
  13. package/dist/core/modelDiscovery.d.ts.map +1 -1
  14. package/dist/core/modelDiscovery.js +3 -355
  15. package/dist/core/modelDiscovery.js.map +1 -1
  16. package/dist/core/permissionMode.d.ts +40 -0
  17. package/dist/core/permissionMode.d.ts.map +1 -0
  18. package/dist/core/permissionMode.js +86 -0
  19. package/dist/core/permissionMode.js.map +1 -0
  20. package/dist/core/quotaErrors.d.ts +42 -0
  21. package/dist/core/quotaErrors.d.ts.map +1 -0
  22. package/dist/core/quotaErrors.js +88 -0
  23. package/dist/core/quotaErrors.js.map +1 -0
  24. package/dist/core/secretStore.d.ts.map +1 -1
  25. package/dist/core/secretStore.js +0 -13
  26. package/dist/core/secretStore.js.map +1 -1
  27. package/dist/core/toolRuntime.d.ts.map +1 -1
  28. package/dist/core/toolRuntime.js +21 -2
  29. package/dist/core/toolRuntime.js.map +1 -1
  30. package/dist/headless/interactiveShell.d.ts +7 -5
  31. package/dist/headless/interactiveShell.d.ts.map +1 -1
  32. package/dist/headless/interactiveShell.js +99 -217
  33. package/dist/headless/interactiveShell.js.map +1 -1
  34. package/dist/plugins/providers/deepseek/index.d.ts +1 -0
  35. package/dist/plugins/providers/deepseek/index.d.ts.map +1 -1
  36. package/dist/plugins/providers/deepseek/index.js +65 -4
  37. package/dist/plugins/providers/deepseek/index.js.map +1 -1
  38. package/dist/plugins/providers/index.d.ts.map +1 -1
  39. package/dist/plugins/providers/index.js +0 -7
  40. package/dist/plugins/providers/index.js.map +1 -1
  41. package/dist/providers/openaiChatCompletionsProvider.js +7 -30
  42. package/dist/providers/openaiChatCompletionsProvider.js.map +1 -1
  43. package/dist/providers/resilientProvider.d.ts.map +1 -1
  44. package/dist/providers/resilientProvider.js +0 -31
  45. package/dist/providers/resilientProvider.js.map +1 -1
  46. package/dist/shell/commandRegistry.js +6 -6
  47. package/dist/shell/commandRegistry.js.map +1 -1
  48. package/dist/shell/toolPresentation.d.ts +47 -0
  49. package/dist/shell/toolPresentation.d.ts.map +1 -0
  50. package/dist/shell/toolPresentation.js +260 -0
  51. package/dist/shell/toolPresentation.js.map +1 -0
  52. package/dist/tools/bashTools.js +2 -2
  53. package/dist/tools/bashTools.js.map +1 -1
  54. package/dist/tools/webTools.d.ts.map +1 -1
  55. package/dist/tools/webTools.js +85 -3
  56. package/dist/tools/webTools.js.map +1 -1
  57. package/dist/ui/ink/App.d.ts +2 -0
  58. package/dist/ui/ink/App.d.ts.map +1 -1
  59. package/dist/ui/ink/App.js +2 -2
  60. package/dist/ui/ink/App.js.map +1 -1
  61. package/dist/ui/ink/ChatStatic.d.ts +6 -5
  62. package/dist/ui/ink/ChatStatic.d.ts.map +1 -1
  63. package/dist/ui/ink/ChatStatic.js +35 -10
  64. package/dist/ui/ink/ChatStatic.js.map +1 -1
  65. package/dist/ui/ink/InkPromptController.d.ts +11 -0
  66. package/dist/ui/ink/InkPromptController.d.ts.map +1 -1
  67. package/dist/ui/ink/InkPromptController.js +50 -11
  68. package/dist/ui/ink/InkPromptController.js.map +1 -1
  69. package/dist/ui/ink/Prompt.d.ts +2 -0
  70. package/dist/ui/ink/Prompt.d.ts.map +1 -1
  71. package/dist/ui/ink/Prompt.js +8 -2
  72. package/dist/ui/ink/Prompt.js.map +1 -1
  73. package/dist/ui/ink/StatusLine.d.ts +16 -8
  74. package/dist/ui/ink/StatusLine.d.ts.map +1 -1
  75. package/dist/ui/ink/StatusLine.js +45 -4
  76. package/dist/ui/ink/StatusLine.js.map +1 -1
  77. package/dist/ui/theme.d.ts.map +1 -1
  78. package/dist/ui/theme.js +4 -6
  79. package/dist/ui/theme.js.map +1 -1
  80. package/package.json +2 -9
  81. package/scripts/postinstall.cjs +1 -2
  82. package/dist/bin/cliMode.d.ts +0 -8
  83. package/dist/bin/cliMode.d.ts.map +0 -1
  84. package/dist/bin/cliMode.js +0 -20
  85. package/dist/bin/cliMode.js.map +0 -1
  86. package/dist/bin/selfTest.d.ts +0 -14
  87. package/dist/bin/selfTest.d.ts.map +0 -1
  88. package/dist/bin/selfTest.js +0 -298
  89. package/dist/bin/selfTest.js.map +0 -1
  90. package/dist/headless/printMode.d.ts +0 -17
  91. package/dist/headless/printMode.d.ts.map +0 -1
  92. package/dist/headless/printMode.js +0 -40
  93. package/dist/headless/printMode.js.map +0 -1
  94. package/dist/plugins/providers/anthropic/index.d.ts +0 -9
  95. package/dist/plugins/providers/anthropic/index.d.ts.map +0 -1
  96. package/dist/plugins/providers/anthropic/index.js +0 -48
  97. package/dist/plugins/providers/anthropic/index.js.map +0 -1
  98. package/dist/plugins/providers/openai/index.d.ts +0 -10
  99. package/dist/plugins/providers/openai/index.d.ts.map +0 -1
  100. package/dist/plugins/providers/openai/index.js +0 -47
  101. package/dist/plugins/providers/openai/index.js.map +0 -1
  102. package/dist/plugins/providers/xai/index.d.ts +0 -10
  103. package/dist/plugins/providers/xai/index.d.ts.map +0 -1
  104. package/dist/plugins/providers/xai/index.js +0 -47
  105. package/dist/plugins/providers/xai/index.js.map +0 -1
package/LICENSE CHANGED
@@ -1,21 +1,16 @@
1
- MIT License
1
+ Erosolar Coder License — Proprietary / Closed Source
2
2
 
3
- Copyright (c) 2025 Erosolar AI
3
+ Copyright (c) 2025 Erosolar AI. All rights reserved.
4
4
 
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
5
+ This software and associated documentation files (the "Software") are proprietary
6
+ and confidential. Unauthorized copying, distribution, modification, public
7
+ display, or any use of the Software, in whole or in part, via any medium, is
8
+ strictly prohibited without prior written permission from Erosolar AI.
11
9
 
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
10
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND. IN NO EVENT
11
+ SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
12
+ OTHER LIABILITY ARISING FROM, OUT OF, OR IN CONNECTION WITH THE SOFTWARE.
14
13
 
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
14
+ No license, express or implied, is granted for any patent, trademark, copyright,
15
+ or other intellectual property right. All rights not expressly granted are
16
+ reserved by Erosolar AI.
package/README.md CHANGED
@@ -52,18 +52,29 @@ ordinary security-research activity. See
52
52
  npm install -g @trenchwork/erosolar
53
53
  ```
54
54
 
55
- Exposes two CLIs: `deepseek`, `erosolar` (synonyms; pick the one you
56
- prefer).
55
+ Exposes three synonyms on PATH: `erosolar`, `erosolar-coder`,
56
+ `deepseek`. Pick whichever you prefer.
57
+
58
+ The bin is **interactive-only**. Running it launches the Ink-rendered
59
+ shell — there are no argv flags, no print/headless mode, no initial
60
+ prompt argument. Anything after the command name is ignored.
57
61
 
58
62
  ```bash
59
- erosolar # interactive shell
60
- erosolar -q "explain X" # one-shot prompt
61
- git diff | erosolar # pipe mode
62
- erosolar --key sk-... # set DeepSeek key
63
+ erosolar # launch the Ink shell
63
64
  ```
64
65
 
65
- In-shell commands: `/model`, `/secrets`, `/help`, `/clear`. See
66
- `/help` for the full list.
66
+ Set your DeepSeek key once, then run `erosolar`:
67
+
68
+ - In-shell: `/key sk-...` (or `/secrets` for a menu)
69
+ - Or via env: `export DEEPSEEK_API_KEY=sk-...`
70
+
71
+ In-shell commands: `/model`, `/key`, `/secrets`, `/auto`,
72
+ `/adversarial`, `/ultracode`, `/stats`, `/debug`, `/keys`, `/clear`,
73
+ `/exit`. Run `/help` in the shell for the full list.
74
+
75
+ A non-TTY invocation (`erosolar < /dev/null`, `git diff | erosolar`,
76
+ CI without a PTY) fails fast with a clear message — there is no
77
+ scriptable path on purpose. If you want one, file an issue.
67
78
 
68
79
  ## How it works (skim)
69
80
 
@@ -178,10 +189,10 @@ scope before running offensive tooling — read it.
178
189
  - **Terminal CLI** — `npm install -g @trenchwork/erosolar`,
179
190
  then `erosolar`. A fully Ink-rendered coding shell — the one surface.
180
191
 
181
- Bring your own DeepSeek API key — `erosolar --key sk-...`, `/secrets`, or the
182
- `DEEPSEEK_API_KEY` env var. No login, no account. Web tasks the agent needs
183
- are handled in-CLI by the `Helia` web tool (search / fetch / extract), not a
184
- separate browser.
192
+ Bring your own DeepSeek API key — set it in-shell via `/key sk-...` or
193
+ `/secrets`, or out-of-band via the `DEEPSEEK_API_KEY` env var. No login,
194
+ no account. Web tasks the agent needs are handled in-CLI by the `Helia`
195
+ web tool (search / fetch / extract), not a separate browser.
185
196
 
186
197
  ## Contributing
187
198
 
@@ -1,203 +1,23 @@
1
1
  #!/usr/bin/env node
2
2
  /**
3
- * DeepSeek Coder CLI - AI-powered coding assistant
3
+ * Erosolar Coder CLI entrypoint.
4
+ *
5
+ * One surface: the Ink-rendered interactive shell. No argv flags, no
6
+ * print mode, no initial-prompt argument. The bin takes nothing after
7
+ * its name — typing `erosolar` (or `deepseek`, or `erosolar-coder`)
8
+ * goes straight to the shell. Configuration (API keys, model choice,
9
+ * self-test, debug) is exposed through in-shell slash commands and the
10
+ * `DEEPSEEK_API_KEY` env var.
4
11
  */
5
- import { reportStatus, reportStatusError } from '../utils/statusReporter.js';
12
+ import { reportStatusError } from '../utils/statusReporter.js';
6
13
  import { track } from '../utils/analytics.js';
7
- // Fast path: Handle --version, --help, --key before any heavy imports
8
- const rawArgs = process.argv.slice(2);
9
- // Best-effort, non-blocking analytics ping. Never throws, never awaited.
10
- const subcommand = rawArgs[0]?.startsWith('-') ? '(flags)' : (rawArgs[0] || 'default');
11
- track('cli_invoked', { subcommand, arg_count: rawArgs.length });
12
- // Handle --key to set API key (simple path that works reliably)
13
- const keyIndex = rawArgs.findIndex(arg => arg === '--key' || arg.startsWith('--key='));
14
- if (keyIndex !== -1) {
15
- let keyValue;
16
- const arg = rawArgs[keyIndex];
17
- if (arg?.startsWith('--key=')) {
18
- keyValue = arg.slice(6);
19
- }
20
- else if (rawArgs[keyIndex + 1] && !rawArgs[keyIndex + 1]?.startsWith('-')) {
21
- keyValue = rawArgs[keyIndex + 1];
22
- }
23
- if (keyValue) {
24
- import('node:fs').then(fs => {
25
- import('node:path').then(path => {
26
- import('node:os').then(os => {
27
- const secretDir = path.join(os.homedir(), '.erosolar');
28
- const secretFile = path.join(secretDir, 'secrets.json');
29
- try {
30
- fs.mkdirSync(secretDir, { recursive: true });
31
- const existing = fs.existsSync(secretFile)
32
- ? JSON.parse(fs.readFileSync(secretFile, 'utf-8'))
33
- : {};
34
- existing['DEEPSEEK_API_KEY'] = keyValue;
35
- fs.writeFileSync(secretFile, JSON.stringify(existing, null, 2) + '\n');
36
- console.log('✓ DEEPSEEK_API_KEY saved to ~/.erosolar/secrets.json');
37
- process.exit(0);
38
- }
39
- catch (err) {
40
- reportStatus(`Failed to save key: ${err instanceof Error ? err.message : err}`);
41
- process.exit(1);
42
- }
43
- });
44
- });
45
- });
46
- }
47
- else {
48
- reportStatus('Usage: deepseek --key YOUR_API_KEY');
49
- process.exit(1);
50
- }
51
- }
52
- else if (rawArgs.includes('--version') || rawArgs.includes('-v')) {
53
- import('node:fs').then(fs => {
54
- import('node:path').then(path => {
55
- import('node:url').then(url => {
56
- try {
57
- const __filename = url.fileURLToPath(import.meta.url);
58
- const pkgPath = path.resolve(path.dirname(__filename), '../../package.json');
59
- const pkg = JSON.parse(fs.readFileSync(pkgPath, 'utf-8'));
60
- console.log(`deepseek-coder-cli v${pkg.version || '0.0.0'}`);
61
- }
62
- catch {
63
- console.log('deepseek-coder-cli (version unknown)');
64
- }
65
- process.exit(0);
66
- });
67
- });
68
- });
69
- }
70
- else if (rawArgs.includes('--help') || rawArgs.includes('-h')) {
71
- console.log(`
72
- deepseek-coder-cli - AI-powered coding assistant
73
-
74
- Usage: deepseek [options] [prompt]
75
-
76
- Modes:
77
- deepseek Start interactive shell
78
- deepseek "prompt" Start with initial prompt
79
- deepseek -p "prompt" Non-interactive: print the answer and exit
80
-
81
- Options:
82
- -v, --version Show version
83
- -h, --help Show this help
84
- -p, --print PROMPT Run one prompt non-interactively and print the answer
85
- (PROMPT, a piped stdin, or -p @file.txt), then exit
86
- --model ID With -p: pick the model (e.g. deepseek-v4-flash)
87
- --json With -p: emit structured JSON {ok, content, toolsUsed, …}
88
- --key KEY Set DeepSeek API key
89
- --self-test Run self-tests
90
-
91
- Environment:
92
- DEEPSEEK_API_KEY DeepSeek API key (or use --key to set)
93
-
94
- Commands (in interactive mode):
95
- /model Switch AI model
96
- /secrets Manage API keys
97
- /help Show commands
98
- /clear Clear screen
99
- `);
100
- process.exit(0);
101
- }
102
- else if (rawArgs.includes('-p') || rawArgs.includes('--print') || rawArgs.includes('--json')) {
103
- void runPrintCli();
104
- }
105
- else {
106
- void main();
107
- }
108
- async function runPrintCli() {
109
- // --model <id> selects the model; pull it + its value out so the value
110
- // (which doesn't start with '-') isn't read as prompt text.
111
- const modelIdx = rawArgs.indexOf('--model');
112
- const model = modelIdx !== -1 ? rawArgs[modelIdx + 1]?.trim() : undefined;
113
- // Prompt = the non-flag tokens after a print flag, else a piped stdin.
114
- const printFlags = new Set(['-p', '--print']);
115
- let seenFlag = false;
116
- const words = [];
117
- rawArgs.forEach((a, i) => {
118
- if (printFlags.has(a)) {
119
- seenFlag = true;
120
- return;
121
- }
122
- if (a === '--model' || (modelIdx !== -1 && i === modelIdx + 1))
123
- return; // skip flag + its value
124
- if (seenFlag && !a.startsWith('-'))
125
- words.push(a);
126
- });
127
- let prompt = '';
128
- const fileArg = words.find((w) => w.startsWith('@'));
129
- if (fileArg) {
130
- // -p @path/to/prompt.txt — read the prompt from a file.
131
- const file = fileArg.slice(1);
132
- try {
133
- const { readFileSync } = await import('node:fs');
134
- prompt = readFileSync(file, 'utf8').trim();
135
- }
136
- catch {
137
- reportStatus(`Could not read prompt file: ${file}`);
138
- process.exit(1);
139
- }
140
- }
141
- else {
142
- prompt = words.join(' ').trim();
143
- if (!prompt && !process.stdin.isTTY) {
144
- prompt = (await readStdin()).trim();
145
- }
146
- }
147
- if (!prompt) {
148
- reportStatus('No prompt. Usage: erosolar -p "your prompt" (pipe it, or -p @prompt.txt)');
149
- process.exit(1);
150
- }
151
- const asJson = rawArgs.includes('--json');
152
- try {
153
- const { runPrintMode } = await import('../headless/printMode.js');
154
- const result = await runPrintMode(prompt, { model });
155
- if (asJson) {
156
- process.stdout.write(JSON.stringify({ ok: true, ...result }) + '\n');
157
- }
158
- else {
159
- process.stdout.write(result.content.endsWith('\n') ? result.content : result.content + '\n');
160
- }
161
- process.exit(0);
162
- }
163
- catch (error) {
164
- if (asJson) {
165
- const message = error instanceof Error ? error.message : String(error);
166
- process.stdout.write(JSON.stringify({ ok: false, error: message }) + '\n');
167
- }
168
- else {
169
- reportStatusError(error);
170
- }
171
- process.exit(1);
172
- }
173
- }
174
- function readStdin() {
175
- return new Promise((resolve) => {
176
- let data = '';
177
- process.stdin.setEncoding('utf8');
178
- process.stdin.on('data', (chunk) => { data += chunk; });
179
- process.stdin.on('end', () => resolve(data));
180
- process.stdin.on('error', () => resolve(data));
181
- });
182
- }
183
- async function main() {
184
- // No login required — erosolar-coder is bring-your-own-key. The DeepSeek
185
- // provider resolves the user's DEEPSEEK_API_KEY (env / --key / /secrets) at
186
- // use time and errors clearly if it's missing.
187
- // Force color support for TTY terminals
188
- if (process.stdout.isTTY && !process.env['NO_COLOR']) {
189
- process.env['FORCE_COLOR'] = process.env['FORCE_COLOR'] ?? '1';
190
- }
191
- // Self-test mode
192
- if (rawArgs.includes('--self-test')) {
193
- const { runSelfTest } = await import('./selfTest.js');
194
- runSelfTest().then((success) => process.exit(success ? 0 : 1)).catch(() => process.exit(1));
195
- return;
196
- }
197
- const { runInteractiveShell } = await import('../headless/interactiveShell.js');
198
- runInteractiveShell({ argv: rawArgs }).catch((error) => {
199
- reportStatusError(error);
200
- process.exit(1);
201
- });
202
- }
14
+ track('cli_invoked', { subcommand: 'shell', arg_count: process.argv.length - 2 });
15
+ if (process.stdout.isTTY && !process.env['NO_COLOR']) {
16
+ process.env['FORCE_COLOR'] = process.env['FORCE_COLOR'] ?? '1';
17
+ }
18
+ const { runInteractiveShell } = await import('../headless/interactiveShell.js');
19
+ runInteractiveShell({ argv: [] }).catch((error) => {
20
+ reportStatusError(error);
21
+ process.exit(1);
22
+ });
203
23
  //# sourceMappingURL=deepseek.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"deepseek.js","sourceRoot":"","sources":["../../src/bin/deepseek.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deepseek.js","sourceRoot":"","sources":["../../src/bin/deepseek.ts"],"names":[],"mappings":";AACA;;;;;;;;;GASG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAE9C,KAAK,CAAC,aAAa,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC;AAElF,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;IACrD,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC;AACjE,CAAC;AAED,MAAM,EAAE,mBAAmB,EAAE,GAAG,MAAM,MAAM,CAAC,iCAAiC,CAAC,CAAC;AAChF,mBAAmB,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IAChD,iBAAiB,CAAC,KAAK,CAAC,CAAC;IACzB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
@@ -2,33 +2,15 @@
2
2
  "$schema": "./schemas/agent-profile.schema.json",
3
3
  "contractVersion": "1.0.0",
4
4
  "version": "2024-11-24",
5
- "label": "AGI CLI profile manifest",
5
+ "label": "Erosolar CLI profile manifest",
6
6
  "description": "Default profile definitions shipped with the CLI, including provider defaults and rulebook bindings.",
7
7
  "profiles": [
8
- {
9
- "name": "general",
10
- "label": "AGI",
11
- "description": "General-purpose operator with advanced reasoning across research, planning, writing, and coding tasks.",
12
- "defaultProvider": "anthropic",
13
- "defaultModel": "claude-sonnet-4-20250514",
14
- "temperature": 0.2,
15
- "systemPrompt": {
16
- "type": "rulebook",
17
- "template": "{{rulebook}}"
18
- },
19
- "rulebook": {
20
- "file": "agents/general.rules.json",
21
- "version": "2024-11-24",
22
- "contractVersion": "1.0.0",
23
- "description": "Structured rules governing the balanced AGI profile."
24
- }
25
- },
26
8
  {
27
9
  "name": "erosolar-code",
28
- "label": "AGI Code",
29
- "description": "Coding specialist with advanced reasoning capabilities.",
30
- "defaultProvider": "anthropic",
31
- "defaultModel": "claude-sonnet-4-20250514",
10
+ "label": "Erosolar Code",
11
+ "description": "DeepSeek-powered coding specialist with advanced reasoning capabilities on max thought.",
12
+ "defaultProvider": "deepseek",
13
+ "defaultModel": "deepseek-v4-pro",
32
14
  "systemPrompt": {
33
15
  "type": "rulebook"
34
16
  },