expxagents 0.27.0 → 0.28.0
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.
- package/assets/core/solution-architect.agent.md +4 -0
- package/dist/cli/src/runners/openrouter-runner.js +7 -10
- package/dist/dashboard/assets/{BufferResource-B_hmSnSZ.js → BufferResource-HnEoeigA.js} +1 -1
- package/dist/dashboard/assets/{CanvasRenderer-BeFexcEO.js → CanvasRenderer-D5evM9Sp.js} +1 -1
- package/dist/dashboard/assets/{JarvisView-CcVwaw9U.js → JarvisView-BOemK_pR.js} +1 -1
- package/dist/dashboard/assets/{RenderTargetSystem-CpJJm_Ga.js → RenderTargetSystem-hdtwaRDC.js} +1 -1
- package/dist/dashboard/assets/{ThreeBackground-DrsfVWHb.js → ThreeBackground-D_zmaeNB.js} +1 -1
- package/dist/dashboard/assets/{WebGLRenderer-z3rMq004.js → WebGLRenderer-B7EsuITR.js} +1 -1
- package/dist/dashboard/assets/{WebGPURenderer-Cp_V0AC4.js → WebGPURenderer-CgccnPUe.js} +1 -1
- package/dist/dashboard/assets/{browserAll-BMB0uwc7.js → browserAll-CED8WTvp.js} +1 -1
- package/dist/dashboard/assets/{index-wPQQk0AQ.js → index-Dm8ZkXaH.js} +46 -44
- package/dist/dashboard/assets/{webworkerAll-Cdrf7FOe.js → webworkerAll-CEg29zl9.js} +1 -1
- package/dist/dashboard/index.html +1 -1
- package/dist/server/bridge/openrouter-bridge.d.ts +7 -7
- package/dist/server/bridge/openrouter-bridge.d.ts.map +1 -1
- package/dist/server/bridge/openrouter-bridge.js +62 -93
- package/dist/server/bridge/openrouter-bridge.js.map +1 -1
- package/package.json +2 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a1 as G,a3 as I,a4 as B,l as _,M as k,W as O,N as A,a9 as m,T as v,as as C,R as E,w as z,a8 as U,v as w}from"./index-
|
|
1
|
+
import{a1 as G,a3 as I,a4 as B,l as _,M as k,W as O,N as A,a9 as m,T as v,as as C,R as E,w as z,a8 as U,v as w}from"./index-Dm8ZkXaH.js";var M=`in vec2 aPosition;
|
|
2
2
|
out vec2 vTextureCoord;
|
|
3
3
|
|
|
4
4
|
uniform vec4 uInputSize;
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
<meta charset="UTF-8" />
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
6
|
<title>ExpxAgents — Mission Control</title>
|
|
7
|
-
<script type="module" crossorigin src="/assets/index-
|
|
7
|
+
<script type="module" crossorigin src="/assets/index-Dm8ZkXaH.js"></script>
|
|
8
8
|
<link rel="stylesheet" crossorigin href="/assets/index-DtbIzZ5n.css">
|
|
9
9
|
</head>
|
|
10
10
|
<body>
|
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
import type { AgentEngine, EngineSendOptions } from './engine.js';
|
|
2
2
|
import type { BridgeFactory, BridgeConfig } from './registry.js';
|
|
3
|
-
|
|
4
|
-
timeoutMs?: number;
|
|
5
|
-
}
|
|
6
|
-
/** Available models on OpenRouter with cost per 1M tokens */
|
|
3
|
+
/** Re-export for system-routes.ts with extra provider/cost metadata */
|
|
7
4
|
export declare const OPENROUTER_MODELS: {
|
|
8
5
|
id: string;
|
|
9
6
|
name: string;
|
|
@@ -14,11 +11,14 @@ export declare const OPENROUTER_MODELS: {
|
|
|
14
11
|
};
|
|
15
12
|
}[];
|
|
16
13
|
export declare const OPENROUTER_DEFAULT_MODEL = "anthropic/claude-sonnet-4";
|
|
14
|
+
interface OpenRouterBridgeConfig {
|
|
15
|
+
timeoutMs?: number;
|
|
16
|
+
}
|
|
17
17
|
export declare class OpenRouterBridge implements AgentEngine {
|
|
18
18
|
readonly type: "openrouter";
|
|
19
|
-
private
|
|
20
|
-
private
|
|
21
|
-
constructor(
|
|
19
|
+
private sessions;
|
|
20
|
+
private activeRunners;
|
|
21
|
+
constructor(_config?: OpenRouterBridgeConfig);
|
|
22
22
|
send(opts: EngineSendOptions): void;
|
|
23
23
|
isActive(squadName: string): boolean;
|
|
24
24
|
kill(squadName: string): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openrouter-bridge.d.ts","sourceRoot":"","sources":["../../src/bridge/openrouter-bridge.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"openrouter-bridge.d.ts","sourceRoot":"","sources":["../../src/bridge/openrouter-bridge.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAEjE,uEAAuE;AACvE,eAAO,MAAM,iBAAiB;;;;;eASW,MAAM;gBAAU,MAAM;;GAkB7D,CAAC;AAEH,eAAO,MAAM,wBAAwB,8BAAgB,CAAC;AAEtD,UAAU,sBAAsB;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,gBAAiB,YAAW,WAAW;IAClD,QAAQ,CAAC,IAAI,EAAG,YAAY,CAAU;IAEtC,OAAO,CAAC,QAAQ,CAAwB;IACxC,OAAO,CAAC,aAAa,CAAsC;gBAE/C,OAAO,CAAC,EAAE,sBAAsB;IAI5C,IAAI,CAAC,IAAI,EAAE,iBAAiB,GAAG,IAAI;IAgDnC,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAIpC,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;CAe9B;AAED,qBAAa,uBAAwB,YAAW,aAAa;IAC3D,QAAQ,CAAC,IAAI,gBAAgB;IAE7B,MAAM,IAAI,OAAO;IAIjB,MAAM,CAAC,MAAM,CAAC,EAAE,YAAY,GAAG,gBAAgB;CAKhD"}
|
|
@@ -1,24 +1,40 @@
|
|
|
1
|
-
|
|
2
|
-
export
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
1
|
+
import { AgentRunner, SessionManager, SUPPORTED_MODELS, DEFAULT_MODEL } from '@expxagents/agent';
|
|
2
|
+
/** Re-export for system-routes.ts with extra provider/cost metadata */
|
|
3
|
+
export const OPENROUTER_MODELS = SUPPORTED_MODELS.map((m) => {
|
|
4
|
+
const providerMap = {
|
|
5
|
+
'anthropic': 'Anthropic',
|
|
6
|
+
'openai': 'OpenAI',
|
|
7
|
+
'google': 'Google',
|
|
8
|
+
'deepseek': 'DeepSeek',
|
|
9
|
+
'mistralai': 'Mistral',
|
|
10
|
+
'meta-llama': 'Meta',
|
|
11
|
+
};
|
|
12
|
+
const costMap = {
|
|
13
|
+
'anthropic/claude-sonnet-4': { input: 3.00, output: 15.00 },
|
|
14
|
+
'anthropic/claude-haiku-4': { input: 0.25, output: 1.25 },
|
|
15
|
+
'openai/gpt-4o': { input: 2.50, output: 10.00 },
|
|
16
|
+
'openai/gpt-4o-mini': { input: 0.15, output: 0.60 },
|
|
17
|
+
'google/gemini-2.5-flash': { input: 0.15, output: 0.60 },
|
|
18
|
+
'google/gemini-2.5-pro': { input: 1.25, output: 5.00 },
|
|
19
|
+
'deepseek/deepseek-chat': { input: 0.27, output: 1.10 },
|
|
20
|
+
'mistralai/mistral-large': { input: 2.00, output: 6.00 },
|
|
21
|
+
'meta-llama/llama-4-maverick': { input: 0.20, output: 0.60 },
|
|
22
|
+
};
|
|
23
|
+
const prefix = m.id.split('/')[0];
|
|
24
|
+
return {
|
|
25
|
+
id: m.id,
|
|
26
|
+
name: m.name,
|
|
27
|
+
provider: providerMap[prefix] ?? prefix,
|
|
28
|
+
cost: costMap[m.id] ?? { input: 0, output: 0 },
|
|
29
|
+
};
|
|
30
|
+
});
|
|
31
|
+
export const OPENROUTER_DEFAULT_MODEL = DEFAULT_MODEL;
|
|
15
32
|
export class OpenRouterBridge {
|
|
16
33
|
type = 'openrouter';
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
constructor(
|
|
20
|
-
|
|
21
|
-
console.log('[openrouter-bridge] Initialized');
|
|
34
|
+
sessions = new SessionManager();
|
|
35
|
+
activeRunners = new Map();
|
|
36
|
+
constructor(_config) {
|
|
37
|
+
console.log('[openrouter-bridge] Initialized with @expxagents/agent');
|
|
22
38
|
}
|
|
23
39
|
send(opts) {
|
|
24
40
|
const key = opts.squadName ?? opts.cwd;
|
|
@@ -29,101 +45,54 @@ export class OpenRouterBridge {
|
|
|
29
45
|
}
|
|
30
46
|
const model = opts.model
|
|
31
47
|
?? process.env.OPENROUTER_DEFAULT_MODEL
|
|
32
|
-
??
|
|
33
|
-
const controller = new AbortController();
|
|
34
|
-
this.activeSessions.set(key, controller);
|
|
35
|
-
const timeoutId = setTimeout(() => controller.abort(), this.timeoutMs);
|
|
48
|
+
?? DEFAULT_MODEL;
|
|
36
49
|
console.log(`[openrouter-bridge] Sending to ${model} for key="${key}"`);
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
50
|
+
const controller = new AbortController();
|
|
51
|
+
this.activeRunners.set(key, controller);
|
|
52
|
+
const runOpts = {
|
|
53
|
+
prompt: opts.prompt,
|
|
54
|
+
cwd: opts.cwd,
|
|
55
|
+
apiKey,
|
|
56
|
+
model,
|
|
57
|
+
sessionId: opts.squadName,
|
|
58
|
+
onChunk: opts.onChunk,
|
|
59
|
+
onToolCall: (tool, args) => {
|
|
60
|
+
opts.onActivity?.(tool, JSON.stringify(args).slice(0, 200));
|
|
44
61
|
},
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
.
|
|
53
|
-
if (!res.ok) {
|
|
54
|
-
const text = await res.text();
|
|
55
|
-
throw new Error(`OpenRouter API error ${res.status}: ${text}`);
|
|
56
|
-
}
|
|
57
|
-
const reader = res.body?.getReader();
|
|
58
|
-
if (!reader)
|
|
59
|
-
throw new Error('No response body');
|
|
60
|
-
const decoder = new TextDecoder();
|
|
61
|
-
let fullText = '';
|
|
62
|
-
let buffer = '';
|
|
63
|
-
while (true) {
|
|
64
|
-
const { done, value } = await reader.read();
|
|
65
|
-
if (done)
|
|
66
|
-
break;
|
|
67
|
-
buffer += decoder.decode(value, { stream: true });
|
|
68
|
-
const lines = buffer.split('\n');
|
|
69
|
-
buffer = lines.pop() ?? '';
|
|
70
|
-
for (const line of lines) {
|
|
71
|
-
const trimmed = line.trim();
|
|
72
|
-
if (!trimmed || !trimmed.startsWith('data: '))
|
|
73
|
-
continue;
|
|
74
|
-
const data = trimmed.slice(6);
|
|
75
|
-
if (data === '[DONE]')
|
|
76
|
-
continue;
|
|
77
|
-
try {
|
|
78
|
-
const parsed = JSON.parse(data);
|
|
79
|
-
const delta = parsed.choices?.[0]?.delta?.content;
|
|
80
|
-
if (delta) {
|
|
81
|
-
fullText += delta;
|
|
82
|
-
opts.onChunk(delta);
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
catch {
|
|
86
|
-
// skip malformed SSE chunks
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
if (!fullText.trim()) {
|
|
91
|
-
opts.onError({ code: null, message: 'Empty response from OpenRouter' });
|
|
92
|
-
return;
|
|
93
|
-
}
|
|
94
|
-
console.log(`[openrouter-bridge] SUCCESS for key="${key}": ${fullText.slice(0, 100)}`);
|
|
95
|
-
opts.onDone(fullText);
|
|
62
|
+
};
|
|
63
|
+
// Inject sessionManager (accepted by AgentRunner constructor internally)
|
|
64
|
+
Object.assign(runOpts, { sessionManager: this.sessions });
|
|
65
|
+
const agent = new AgentRunner(runOpts);
|
|
66
|
+
agent.run()
|
|
67
|
+
.then((result) => {
|
|
68
|
+
console.log(`[openrouter-bridge] SUCCESS for key="${key}": ${result.output.slice(0, 100)}`);
|
|
69
|
+
opts.onDone(result.output);
|
|
96
70
|
})
|
|
97
71
|
.catch((err) => {
|
|
98
|
-
if (controller.signal.aborted) {
|
|
99
|
-
opts.onError({ code: null, message: 'OpenRouter request aborted' });
|
|
100
|
-
return;
|
|
101
|
-
}
|
|
102
72
|
const msg = err instanceof Error ? err.message : String(err);
|
|
103
73
|
console.error(`[openrouter-bridge] Error for key="${key}":`, msg);
|
|
104
74
|
opts.onError({ code: null, message: msg });
|
|
105
75
|
})
|
|
106
76
|
.finally(() => {
|
|
107
|
-
|
|
108
|
-
this.activeSessions.delete(key);
|
|
77
|
+
this.activeRunners.delete(key);
|
|
109
78
|
});
|
|
110
79
|
}
|
|
111
80
|
isActive(squadName) {
|
|
112
|
-
return this.
|
|
81
|
+
return this.activeRunners.has(squadName);
|
|
113
82
|
}
|
|
114
83
|
kill(squadName) {
|
|
115
84
|
if (squadName === '__all__') {
|
|
116
|
-
console.log(`[openrouter-bridge] Aborting all ${this.
|
|
117
|
-
for (const [, controller] of this.
|
|
85
|
+
console.log(`[openrouter-bridge] Aborting all ${this.activeRunners.size} active sessions`);
|
|
86
|
+
for (const [, controller] of this.activeRunners) {
|
|
118
87
|
controller.abort();
|
|
119
88
|
}
|
|
120
|
-
this.
|
|
89
|
+
this.activeRunners.clear();
|
|
121
90
|
return;
|
|
122
91
|
}
|
|
123
|
-
const controller = this.
|
|
92
|
+
const controller = this.activeRunners.get(squadName);
|
|
124
93
|
if (controller) {
|
|
125
94
|
controller.abort();
|
|
126
|
-
this.
|
|
95
|
+
this.activeRunners.delete(squadName);
|
|
127
96
|
}
|
|
128
97
|
}
|
|
129
98
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openrouter-bridge.js","sourceRoot":"","sources":["../../src/bridge/openrouter-bridge.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"openrouter-bridge.js","sourceRoot":"","sources":["../../src/bridge/openrouter-bridge.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "expxagents",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.28.0",
|
|
4
4
|
"description": "Multi-agent orchestration platform for AI squads",
|
|
5
5
|
"author": "ExpxAgents",
|
|
6
6
|
"license": "MIT",
|
|
@@ -41,6 +41,7 @@
|
|
|
41
41
|
"dependencies": {
|
|
42
42
|
"@anthropic-ai/sdk": "^0.80.0",
|
|
43
43
|
"@aws-sdk/client-sesv2": "^3.800.0",
|
|
44
|
+
"@expxagents/agent": "file:../packages/agent-cli",
|
|
44
45
|
"@expxagents/registry-client": "^0.1.0",
|
|
45
46
|
"@fastify/cookie": "^11.0.2",
|
|
46
47
|
"@fastify/cors": "^10.0.2",
|