alvin-bot 5.7.0 → 5.8.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.
- package/CHANGELOG.md +25 -0
- package/README.md +25 -31
- package/dist/claude.js +1 -102
- package/dist/config.js +1 -96
- package/dist/engine.js +1 -90
- package/dist/find-claude-binary.js +1 -98
- package/dist/handlers/async-agent-chunk-handler.js +1 -50
- package/dist/handlers/background-bypass.js +1 -75
- package/dist/handlers/commands.js +1 -2336
- package/dist/handlers/cron-progress.js +1 -52
- package/dist/handlers/document.js +1 -194
- package/dist/handlers/message.js +1 -959
- package/dist/handlers/photo.js +1 -154
- package/dist/handlers/platform-message.js +1 -360
- package/dist/handlers/stuck-timer.js +1 -54
- package/dist/handlers/video.js +1 -237
- package/dist/handlers/voice.js +1 -148
- package/dist/i18n.js +1 -805
- package/dist/index.js +1 -697
- package/dist/init-data-dir.js +1 -98
- package/dist/middleware/auth.js +1 -233
- package/dist/migrate.js +1 -162
- package/dist/paths.js +1 -146
- package/dist/platforms/discord.js +1 -175
- package/dist/platforms/index.js +1 -130
- package/dist/platforms/signal.js +1 -205
- package/dist/platforms/slack-slash-parser.js +1 -32
- package/dist/platforms/slack.js +1 -501
- package/dist/platforms/telegram.js +1 -111
- package/dist/platforms/types.js +1 -8
- package/dist/platforms/whatsapp-auth-helpers.js +1 -53
- package/dist/platforms/whatsapp.js +1 -707
- package/dist/providers/claude-sdk-provider.js +1 -565
- package/dist/providers/codex-cli-provider.js +1 -134
- package/dist/providers/index.js +1 -7
- package/dist/providers/ollama-provider.js +1 -32
- package/dist/providers/openai-compatible.js +1 -406
- package/dist/providers/registry.js +1 -352
- package/dist/providers/runtime-header.js +1 -45
- package/dist/providers/tool-executor.js +1 -475
- package/dist/providers/types.js +1 -227
- package/dist/services/access.js +1 -144
- package/dist/services/allowed-users-gate.js +1 -56
- package/dist/services/alvin-dispatch.js +1 -174
- package/dist/services/alvin-mcp-tools.js +1 -104
- package/dist/services/asset-index.js +1 -224
- package/dist/services/async-agent-parser.js +1 -418
- package/dist/services/async-agent-watcher.js +1 -583
- package/dist/services/auto-diagnostic.js +1 -228
- package/dist/services/broadcast.js +1 -52
- package/dist/services/browser-manager.js +1 -562
- package/dist/services/browser-webfetch.js +1 -127
- package/dist/services/browser.js +1 -121
- package/dist/services/cdp-bootstrap.js +1 -357
- package/dist/services/compaction.js +1 -144
- package/dist/services/critical-notify.js +1 -203
- package/dist/services/cron-resolver.js +1 -58
- package/dist/services/cron-scheduling.js +1 -310
- package/dist/services/cron.js +1 -861
- package/dist/services/custom-tools.js +1 -317
- package/dist/services/delivery-queue.js +1 -173
- package/dist/services/delivery-registry.js +1 -21
- package/dist/services/disk-cleanup.js +1 -203
- package/dist/services/elevenlabs.js +1 -58
- package/dist/services/embeddings/auto-detect.js +1 -74
- package/dist/services/embeddings/fts5.js +1 -108
- package/dist/services/embeddings/gemini.js +1 -65
- package/dist/services/embeddings/index.js +1 -496
- package/dist/services/embeddings/ollama.js +1 -78
- package/dist/services/embeddings/openai.js +1 -49
- package/dist/services/embeddings/provider.js +1 -22
- package/dist/services/embeddings/vector-base.js +1 -113
- package/dist/services/embeddings-migration.js +1 -193
- package/dist/services/embeddings.js +1 -9
- package/dist/services/env-file.js +1 -50
- package/dist/services/exec-guard.js +1 -71
- package/dist/services/fallback-order.js +1 -154
- package/dist/services/file-permissions.js +1 -93
- package/dist/services/heartbeat-file.js +1 -65
- package/dist/services/heartbeat.js +1 -313
- package/dist/services/hooks.js +1 -44
- package/dist/services/imagegen.js +1 -72
- package/dist/services/language-detect.js +1 -154
- package/dist/services/markdown.js +1 -63
- package/dist/services/mcp.js +1 -263
- package/dist/services/memory-extractor.js +1 -178
- package/dist/services/memory-inject-mode.js +1 -43
- package/dist/services/memory-layers.js +1 -156
- package/dist/services/memory.js +1 -146
- package/dist/services/ollama-manager.js +1 -339
- package/dist/services/permissions-wizard.js +1 -291
- package/dist/services/personality.js +1 -376
- package/dist/services/plugins.js +1 -171
- package/dist/services/preflight.js +1 -292
- package/dist/services/process-manager.js +1 -291
- package/dist/services/release-highlights.js +1 -79
- package/dist/services/reminders.js +1 -97
- package/dist/services/restart.js +1 -48
- package/dist/services/security-audit.js +1 -74
- package/dist/services/self-diagnosis.js +1 -272
- package/dist/services/self-search.js +1 -129
- package/dist/services/session-persistence.js +1 -237
- package/dist/services/session.js +1 -282
- package/dist/services/skills.js +1 -290
- package/dist/services/ssrf-guard.js +1 -162
- package/dist/services/standing-orders.js +1 -29
- package/dist/services/steer-channel.js +1 -46
- package/dist/services/stop-controller.js +1 -52
- package/dist/services/subagent-dedup.js +1 -86
- package/dist/services/subagent-delivery.js +1 -452
- package/dist/services/subagent-stats.js +1 -123
- package/dist/services/subagents.js +1 -814
- package/dist/services/sudo.js +1 -329
- package/dist/services/telegram.js +1 -158
- package/dist/services/timing-safe-bearer.js +1 -51
- package/dist/services/tool-discovery.js +1 -214
- package/dist/services/trends.js +1 -580
- package/dist/services/updater.js +1 -291
- package/dist/services/usage-tracker.js +1 -144
- package/dist/services/users.js +1 -271
- package/dist/services/voice.js +1 -104
- package/dist/services/watchdog-brake.js +1 -154
- package/dist/services/watchdog.js +1 -311
- package/dist/services/workspaces.js +1 -276
- package/dist/tui/index.js +1 -667
- package/dist/util/console-formatter.js +1 -109
- package/dist/util/debounce.js +1 -24
- package/dist/util/telegram-error-filter.js +1 -62
- package/dist/version.js +1 -24
- package/dist/web/bind-strategy.js +1 -42
- package/dist/web/canvas.js +1 -30
- package/dist/web/doctor-api.js +1 -604
- package/dist/web/openai-compat.js +1 -252
- package/dist/web/server.js +1 -1902
- package/dist/web/setup-api.js +1 -1101
- package/package.json +5 -2
- package/dist/.metadata_never_index +0 -0
|
@@ -1,134 +1 @@
|
|
|
1
|
-
|
|
2
|
-
* Codex CLI Provider
|
|
3
|
-
*
|
|
4
|
-
* Wraps OpenAI's Codex CLI as a provider, similar to how Claude SDK Provider
|
|
5
|
-
* wraps the Claude CLI. Uses `codex exec` for non-interactive completions.
|
|
6
|
-
*
|
|
7
|
-
* Requires: Codex CLI installed & logged in (`codex login --device-auth`)
|
|
8
|
-
*/
|
|
9
|
-
import { spawn } from "child_process";
|
|
10
|
-
export class CodexCLIProvider {
|
|
11
|
-
config;
|
|
12
|
-
constructor(config) {
|
|
13
|
-
this.config = {
|
|
14
|
-
type: "codex-cli",
|
|
15
|
-
name: "Codex CLI (OpenAI)",
|
|
16
|
-
model: "gpt-5.4",
|
|
17
|
-
supportsTools: true,
|
|
18
|
-
supportsVision: false,
|
|
19
|
-
supportsStreaming: true,
|
|
20
|
-
...config,
|
|
21
|
-
};
|
|
22
|
-
}
|
|
23
|
-
async *query(options) {
|
|
24
|
-
const args = [
|
|
25
|
-
"exec",
|
|
26
|
-
"--skip-git-repo-check",
|
|
27
|
-
"--ephemeral",
|
|
28
|
-
"-s", "read-only",
|
|
29
|
-
"-m", this.config.model,
|
|
30
|
-
];
|
|
31
|
-
if (options.workingDir) {
|
|
32
|
-
args.push("-C", options.workingDir);
|
|
33
|
-
}
|
|
34
|
-
// Build the prompt with system context. The runtime-header is injected
|
|
35
|
-
// first so its version/install-path overrides any stale value that may
|
|
36
|
-
// appear later in the system prompt or CLAUDE.md.
|
|
37
|
-
const { buildRuntimeHeader } = await import("./runtime-header.js");
|
|
38
|
-
const runtimeHeader = buildRuntimeHeader();
|
|
39
|
-
let fullPrompt = options.prompt;
|
|
40
|
-
if (options.systemPrompt) {
|
|
41
|
-
fullPrompt = `${runtimeHeader}\n\n${options.systemPrompt}\n\n${fullPrompt}`;
|
|
42
|
-
}
|
|
43
|
-
else {
|
|
44
|
-
fullPrompt = `${runtimeHeader}\n\n${fullPrompt}`;
|
|
45
|
-
}
|
|
46
|
-
args.push(fullPrompt);
|
|
47
|
-
try {
|
|
48
|
-
const result = await this.execCodex(args, options.abortSignal);
|
|
49
|
-
if (result.trim()) {
|
|
50
|
-
yield {
|
|
51
|
-
type: "text",
|
|
52
|
-
text: result,
|
|
53
|
-
delta: result,
|
|
54
|
-
};
|
|
55
|
-
}
|
|
56
|
-
yield {
|
|
57
|
-
type: "done",
|
|
58
|
-
text: result,
|
|
59
|
-
};
|
|
60
|
-
}
|
|
61
|
-
catch (err) {
|
|
62
|
-
if (err instanceof Error && err.message.includes("abort")) {
|
|
63
|
-
yield { type: "error", error: "Request aborted" };
|
|
64
|
-
}
|
|
65
|
-
else {
|
|
66
|
-
yield {
|
|
67
|
-
type: "error",
|
|
68
|
-
error: `Codex CLI error: ${err instanceof Error ? err.message : String(err)}`,
|
|
69
|
-
};
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
async isAvailable() {
|
|
74
|
-
try {
|
|
75
|
-
const { execSync } = await import("child_process");
|
|
76
|
-
const output = execSync("codex login status 2>&1", {
|
|
77
|
-
stdio: "pipe",
|
|
78
|
-
timeout: 5000,
|
|
79
|
-
encoding: "utf-8",
|
|
80
|
-
});
|
|
81
|
-
return output.includes("Logged in");
|
|
82
|
-
}
|
|
83
|
-
catch {
|
|
84
|
-
return false;
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
getInfo() {
|
|
88
|
-
return {
|
|
89
|
-
name: this.config.name,
|
|
90
|
-
model: this.config.model,
|
|
91
|
-
status: "✅ Codex CLI (ChatGPT auth)",
|
|
92
|
-
};
|
|
93
|
-
}
|
|
94
|
-
execCodex(args, abortSignal) {
|
|
95
|
-
return new Promise((resolve, reject) => {
|
|
96
|
-
const proc = spawn("codex", args, {
|
|
97
|
-
stdio: ["pipe", "pipe", "pipe"],
|
|
98
|
-
timeout: 120_000,
|
|
99
|
-
env: { ...process.env, NO_COLOR: "1" },
|
|
100
|
-
});
|
|
101
|
-
// Close stdin so `codex exec` doesn't wait for additional input — the
|
|
102
|
-
// prompt is passed as a positional arg, no stdin payload follows.
|
|
103
|
-
// Without this, codex prints "Reading additional input from stdin..."
|
|
104
|
-
// and blocks until the 120s timeout, causing the bot to return
|
|
105
|
-
// "keine Antwort" / empty replies on the chat side.
|
|
106
|
-
proc.stdin.end();
|
|
107
|
-
let stdout = "";
|
|
108
|
-
let stderr = "";
|
|
109
|
-
proc.stdout.on("data", (data) => {
|
|
110
|
-
stdout += data.toString();
|
|
111
|
-
});
|
|
112
|
-
proc.stderr.on("data", (data) => {
|
|
113
|
-
stderr += data.toString();
|
|
114
|
-
});
|
|
115
|
-
proc.on("close", (code) => {
|
|
116
|
-
if (code === 0 || stdout.trim()) {
|
|
117
|
-
resolve(stdout.trim());
|
|
118
|
-
}
|
|
119
|
-
else {
|
|
120
|
-
reject(new Error(stderr.trim() || `codex exec exited with code ${code}`));
|
|
121
|
-
}
|
|
122
|
-
});
|
|
123
|
-
proc.on("error", (err) => {
|
|
124
|
-
reject(new Error(`Failed to spawn codex: ${err.message}`));
|
|
125
|
-
});
|
|
126
|
-
if (abortSignal) {
|
|
127
|
-
abortSignal.addEventListener("abort", () => {
|
|
128
|
-
proc.kill("SIGTERM");
|
|
129
|
-
reject(new Error("abort"));
|
|
130
|
-
});
|
|
131
|
-
}
|
|
132
|
-
});
|
|
133
|
-
}
|
|
134
|
-
}
|
|
1
|
+
const _0x12e802=_0x4eb0,_0x3f8c3c=_0x4eb0;(function(_0x2224ac,_0x3199c0){const _0x24a4b5=_0x4eb0,_0x13d64f=_0x4eb0,_0x29628c=_0x2224ac();while(!![]){try{const _0x3aff50=-parseInt(_0x24a4b5(0x1c5))/(0x6a7+-0x1d8b+-0x1*-0x16e5)+parseInt(_0x13d64f(0x1e0))/(0x974+-0x6d*0x1+-0x905)*(-parseInt(_0x24a4b5(0x1d4))/(-0x69d+-0x65b+-0xcfb*-0x1))+parseInt(_0x13d64f(0x1c6))/(0x25be+0x18c1+-0xc7f*0x5)+-parseInt(_0x13d64f(0x1b3))/(0x227*0x2+-0x1eb3*-0x1+-0x22fc)+-parseInt(_0x24a4b5(0x1ad))/(-0x215c+0x1*-0x2d7+0x2439)+-parseInt(_0x13d64f(0x1bc))/(0x20e+0x8e8+-0xaef)*(-parseInt(_0x13d64f(0x1b9))/(0x4b+0x3*0x534+-0xfdf))+-parseInt(_0x13d64f(0x1d8))/(0x2190+0x1b86+-0x3d0d*0x1)*(-parseInt(_0x13d64f(0x1b5))/(0x2600*0x1+-0xe07+-0x1*0x17ef));if(_0x3aff50===_0x3199c0)break;else _0x29628c['push'](_0x29628c['shift']());}catch(_0x15661a){_0x29628c['push'](_0x29628c['shift']());}}}(_0x333e,-0x4cec3+0x105a8e+0x12f27));function _0x4eb0(_0x15cbbf,_0x6f96e5){_0x15cbbf=_0x15cbbf-(0x1*0x108e+0x2*-0x12ec+0x16eb);const _0x2c3912=_0x333e();let _0x109c8e=_0x2c3912[_0x15cbbf];if(_0x4eb0['aBGBam']===undefined){var _0x5d7d40=function(_0x3a8f06){const _0x17f668='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2dbe39='',_0x1a79ba='',_0x300b81=_0x2dbe39+_0x5d7d40;for(let _0x42bd3d=-0x1*0x162a+-0xe54+-0x9*-0x40e,_0x1050fb,_0x3e4c7d,_0x34accc=-0x3b*-0xa1+0xf62*0x1+0x3*-0x117f;_0x3e4c7d=_0x3a8f06['charAt'](_0x34accc++);~_0x3e4c7d&&(_0x1050fb=_0x42bd3d%(-0x3ad+-0x1b32+0x1ee3)?_0x1050fb*(0xdf7+-0x3e*0x13+-0x91d)+_0x3e4c7d:_0x3e4c7d,_0x42bd3d++%(-0x242e+-0xa03*-0x3+0x629))?_0x2dbe39+=_0x300b81['charCodeAt'](_0x34accc+(0x1*0xce2+0x14e8+-0x21c0))-(-0x1207+0x18ae+-0x69d*0x1)!==-0x343+0x41*0x49+-0xf46?String['fromCharCode'](-0x3*0x42b+-0x2*0xec3+-0x1*-0x2b06&_0x1050fb>>(-(-0xb*0x2c5+-0x1b6b+0x474*0xd)*_0x42bd3d&-0x181d*0x1+-0x11b*0xa+0x2331)):_0x42bd3d:0x2431+0x10b6+-0x34e7){_0x3e4c7d=_0x17f668['indexOf'](_0x3e4c7d);}for(let _0x2aeb2d=0x16*-0x65+0x3de+-0x4d*-0x10,_0x58a790=_0x2dbe39['length'];_0x2aeb2d<_0x58a790;_0x2aeb2d++){_0x1a79ba+='%'+('00'+_0x2dbe39['charCodeAt'](_0x2aeb2d)['toString'](-0x173f+-0x68*0x2c+0x292f*0x1))['slice'](-(-0x1b9b+0xcd2*-0x1+0x286f));}return decodeURIComponent(_0x1a79ba);};_0x4eb0['IzSitb']=_0x5d7d40,_0x4eb0['pcQOcx']={},_0x4eb0['aBGBam']=!![];}const _0x333ed1=_0x2c3912[-0x141c+0x1*-0xfea+0x1203*0x2],_0xfd1a1f=_0x15cbbf+_0x333ed1,_0x323277=_0x4eb0['pcQOcx'][_0xfd1a1f];if(!_0x323277){const _0x51487d=function(_0x110bab){this['DlMdnk']=_0x110bab,this['jUqTsF']=[0x4c+0x309+-0x354,-0x1c63+0x4c8+0x179b,-0x25a2*-0x1+-0x16f+-0x2433],this['YZNiYx']=function(){return'newState';},this['ebufSu']='\x5cw+\x20*\x5c(\x5c)\x20*{\x5cw+\x20*',this['VPfLii']='[\x27|\x22].+[\x27|\x22];?\x20*}';};_0x51487d['prototype']['QqJyDJ']=function(){const _0x1dd93d=new RegExp(this['ebufSu']+this['VPfLii']),_0x5c7940=_0x1dd93d['test'](this['YZNiYx']['toString']())?--this['jUqTsF'][-0x1*-0xcb6+-0xa85+-0x38*0xa]:--this['jUqTsF'][-0x874+-0x69d+0xf11];return this['KGzXrg'](_0x5c7940);},_0x51487d['prototype']['KGzXrg']=function(_0x7c03ed){if(!Boolean(~_0x7c03ed))return _0x7c03ed;return this['Fqcejw'](this['DlMdnk']);},_0x51487d['prototype']['Fqcejw']=function(_0x5e112b){for(let _0x1e91bb=0x6cd*0x4+-0x1d4e+0x21a,_0x3b7dec=this['jUqTsF']['length'];_0x1e91bb<_0x3b7dec;_0x1e91bb++){this['jUqTsF']['push'](Math['round'](Math['random']())),_0x3b7dec=this['jUqTsF']['length'];}return _0x5e112b(this['jUqTsF'][0x3ab*0x2+0xa09*-0x3+-0x797*-0x3]);},new _0x51487d(_0x4eb0)['QqJyDJ'](),_0x109c8e=_0x4eb0['IzSitb'](_0x109c8e),_0x4eb0['pcQOcx'][_0xfd1a1f]=_0x109c8e;}else _0x109c8e=_0x323277;return _0x109c8e;}const _0x5f0e58=(function(){let _0x3ab3b1=!![];return function(_0x3a06df,_0x2b33b5){const _0xe7f0df=_0x3ab3b1?function(){const _0x42ecbf=_0x4eb0;if(_0x2b33b5){const _0x1c2584=_0x2b33b5[_0x42ecbf(0x1b2)](_0x3a06df,arguments);return _0x2b33b5=null,_0x1c2584;}}:function(){};return _0x3ab3b1=![],_0xe7f0df;};}()),_0x32eed8=_0x5f0e58(this,function(){const _0x23b315=_0x4eb0,_0x455664=_0x4eb0;return _0x32eed8[_0x23b315(0x1e1)]()[_0x23b315(0x1c9)]('(((.+)+)+)'+'+$')[_0x23b315(0x1e1)]()[_0x23b315(0x1aa)+'r'](_0x32eed8)[_0x455664(0x1c9)](_0x455664(0x1de)+'+$');});_0x32eed8();import{spawn}from'child_process';export class CodexCLIProvider{[_0x12e802(0x1dc)];constructor(_0xe9d4c3){const _0x29cf4d=_0x12e802,_0x337a87=_0x12e802;this[_0x29cf4d(0x1dc)]={'type':_0x29cf4d(0x1c2),'name':_0x337a87(0x1b7)+_0x337a87(0x1bd),'model':_0x337a87(0x1c3),'supportsTools':!![],'supportsVision':![],'supportsStreaming':!![],..._0xe9d4c3};}async*[_0x12e802(0x1c0)](_0x10334a){const _0x5aab3d=_0x12e802,_0x51deff=_0x3f8c3c,_0x40bb0c=['exec',_0x5aab3d(0x1a2)+'-repo-chec'+'k',_0x51deff(0x1a9)+'l','-s',_0x5aab3d(0x1cf),'-m',this[_0x5aab3d(0x1dc)]['model']];_0x10334a['workingDir']&&_0x40bb0c['push']('-C',_0x10334a[_0x51deff(0x1cd)]);const {buildRuntimeHeader:_0x2a126a}=await import(_0x51deff(0x1ac)+'header.js'),_0x29ba51=_0x2a126a();let _0x5403e2=_0x10334a[_0x51deff(0x1a1)];_0x10334a[_0x51deff(0x1d6)+'pt']?_0x5403e2=_0x29ba51+'\x0a\x0a'+_0x10334a[_0x51deff(0x1d6)+'pt']+'\x0a\x0a'+_0x5403e2:_0x5403e2=_0x29ba51+'\x0a\x0a'+_0x5403e2;_0x40bb0c[_0x51deff(0x1cb)](_0x5403e2);try{const _0x118bfa=await this[_0x51deff(0x1a6)](_0x40bb0c,_0x10334a[_0x5aab3d(0x1b4)+'l']);_0x118bfa['trim']()&&(yield{'type':_0x5aab3d(0x1bb),'text':_0x118bfa,'delta':_0x118bfa}),yield{'type':_0x5aab3d(0x1d9),'text':_0x118bfa};}catch(_0x481137){_0x481137 instanceof Error&&_0x481137[_0x51deff(0x1ae)][_0x5aab3d(0x1a8)]('abort')?yield{'type':'error','error':_0x51deff(0x1d7)+_0x51deff(0x1af)}:yield{'type':_0x5aab3d(0x1bf),'error':_0x5aab3d(0x1b7)+_0x5aab3d(0x1c7)+(_0x481137 instanceof Error?_0x481137[_0x5aab3d(0x1ae)]:String(_0x481137))};}}async[_0x3f8c3c(0x1d5)+'e'](){const _0x38151f=_0x3f8c3c,_0xdd4fb2=_0x3f8c3c;try{const {execSync:_0x387590}=await import(_0x38151f(0x1d3)+_0x38151f(0x1ca)),_0x5458d2=_0x387590(_0x38151f(0x1ab)+'n\x20status\x202'+_0xdd4fb2(0x1c1),{'stdio':_0x38151f(0x1c8),'timeout':0x1388,'encoding':_0x38151f(0x1cc)});return _0x5458d2[_0xdd4fb2(0x1a8)](_0xdd4fb2(0x1a5));}catch{return![];}}['getInfo'](){const _0x4113c0=_0x12e802,_0x5aff01=_0x12e802;return{'name':this[_0x4113c0(0x1dc)][_0x4113c0(0x1b0)],'model':this[_0x4113c0(0x1dc)]['model'],'status':'✅\x20Codex\x20CL'+_0x5aff01(0x1be)+_0x5aff01(0x1d2)};}[_0x3f8c3c(0x1a6)](_0x8a4f07,_0x5779bb){return new Promise((_0xaffe6c,_0x28096c)=>{const _0x78bd86=_0x4eb0,_0x5dcdec=_0x4eb0,_0x3f69b9=spawn(_0x78bd86(0x1dd),_0x8a4f07,{'stdio':[_0x5dcdec(0x1c8),'pipe',_0x78bd86(0x1c8)],'timeout':0x1d4c0,'env':{...process['env'],'NO_COLOR':'1'}});_0x3f69b9[_0x5dcdec(0x1da)]['end']();let _0x493436='',_0x3818cc='';_0x3f69b9['stdout']['on'](_0x5dcdec(0x1d1),_0x35222b=>{const _0x40fd02=_0x78bd86;_0x493436+=_0x35222b[_0x40fd02(0x1e1)]();}),_0x3f69b9[_0x5dcdec(0x1a3)]['on'](_0x5dcdec(0x1d1),_0x1ce767=>{const _0x417190=_0x78bd86;_0x3818cc+=_0x1ce767[_0x417190(0x1e1)]();}),_0x3f69b9['on'](_0x5dcdec(0x1c4),_0x12f806=>{const _0x21e69c=_0x78bd86,_0x36ebc4=_0x78bd86;_0x12f806===0x1*-0xb1c+0x251b+0x19ff*-0x1||_0x493436[_0x21e69c(0x1a7)]()?_0xaffe6c(_0x493436[_0x21e69c(0x1a7)]()):_0x28096c(new Error(_0x3818cc['trim']()||_0x36ebc4(0x1df)+'\x20exited\x20wi'+_0x36ebc4(0x1d0)+_0x12f806));}),_0x3f69b9['on'](_0x78bd86(0x1bf),_0x19af98=>{const _0x52d5f8=_0x5dcdec,_0x287926=_0x5dcdec;_0x28096c(new Error(_0x52d5f8(0x1b1)+_0x52d5f8(0x1b8)+_0x287926(0x1b6)+_0x19af98[_0x287926(0x1ae)]));}),_0x5779bb&&_0x5779bb['addEventLi'+_0x78bd86(0x1a4)](_0x5dcdec(0x1ba),()=>{const _0x103b88=_0x5dcdec,_0x22c74e=_0x5dcdec;_0x3f69b9[_0x103b88(0x1db)](_0x103b88(0x1ce)),_0x28096c(new Error(_0x103b88(0x1ba)));});});}}function _0x333e(){const _0x334b36=['pIyX','y29KzxGTy2XP','z3b0ltuUna','y2XVC2u','mtiWnZq0ovL2zMHuCq','mtuXmZe5mMzNzhvdrq','zxjYB3i6ia','CgLWzq','C2vHCMnO','zxnZ','ChvZAa','DxrMltG','D29YA2LUz0rPCG','u0Lhvevstq','CMvHzc1VBMX5','DgGGy29Kzsa','zgf0yq','igf1DgGP','y2HPBgrFChjVyW','ntu4m2PjBw5zta','AxnbDMfPBgfIBa','C3LZDgvTuhjVBq','uMvXDwvZDcbHyG','oufdCwrKAa','zg9Uzq','C3rKAw4','A2LSBa','y29UzMLN','y29KzxG','kcGOlISPkYKRkq','y29KzxGGzxHLyW','mtCXmMDjvMPZwq','Dg9tDhjPBMC','ChjVBxb0','ls1ZA2LWlwDPDa','C3rKzxjY','C3rLBMvY','tg9Nz2vKigLU','zxHLy0nVzgv4','DhjPBq','Aw5JBhvKzxm','ls1LCgHLBwvYyq','y29UC3rYDwn0BW','y29KzxGGBg9NAq','lI9YDw50Aw1Llq','odm1nZqWyKfSrLvO','BwvZC2fNzq','B3j0zwq','BMfTzq','rMfPBgvKihrVia','yxbWBhK','nJy4nZm3nuXJs2PRBW','ywjVCNrtAwDUyq','mZK0mtuWnZbeCwP5wNO','EdOG','q29KzxGGq0Xjia','C3bHD24Gy29Kzq','ndiYmJq4ChrdquLy','ywjVCNq','Dgv4Da','mta1CNffwhzT','ke9Wzw5bssK','ssaOq2HHDeDqva','zxjYB3i','CxvLCNK'];_0x333e=function(){return _0x334b36;};return _0x333e();}
|
package/dist/providers/index.js
CHANGED
|
@@ -1,7 +1 @@
|
|
|
1
|
-
|
|
2
|
-
* Provider system — public API
|
|
3
|
-
*/
|
|
4
|
-
export { PROVIDER_PRESETS } from "./types.js";
|
|
5
|
-
export { ClaudeSDKProvider } from "./claude-sdk-provider.js";
|
|
6
|
-
export { OpenAICompatibleProvider } from "./openai-compatible.js";
|
|
7
|
-
export { ProviderRegistry, createRegistry } from "./registry.js";
|
|
1
|
+
(function(_0x54c63a,_0x4a4128){var _0x4267b8=_0x51ab,_0x561acd=_0x51ab,_0x5bab4b=_0x54c63a();while(!![]){try{var _0x4c83b8=-parseInt(_0x4267b8(0x172))/(-0xd1f*0x1+-0x34*-0x79+-0xb74)*(parseInt(_0x4267b8(0x175))/(0x2024+0x959*0x4+-0x4586))+-parseInt(_0x4267b8(0x179))/(0xad*0xa+-0x9ff+-0x10*-0x34)*(-parseInt(_0x4267b8(0x17b))/(0x243d+-0x13bf+0x26*-0x6f))+parseInt(_0x561acd(0x178))/(0x2*-0xd29+0x19c0+-0x1*-0x97)+-parseInt(_0x4267b8(0x177))/(-0x21b2+-0x1*-0x931+0x1887)*(-parseInt(_0x4267b8(0x176))/(-0xb6+0x7*0x481+0x233*-0xe))+parseInt(_0x4267b8(0x17e))/(-0x180*0xc+0x1*0x2117+-0x3*0x505)*(-parseInt(_0x561acd(0x17d))/(0x186c+0x1e65+-0xdb2*0x4))+parseInt(_0x561acd(0x17f))/(-0x15*-0xb+0x83*-0x3+0xac)*(parseInt(_0x4267b8(0x17c))/(-0x54a+-0x144a+-0x7*-0x3a9))+-parseInt(_0x561acd(0x170))/(-0x313*0x7+0x1be3+-0x652*0x1)*(-parseInt(_0x561acd(0x173))/(0x4*-0x2a1+-0x91*0xd+0x5a*0x33));if(_0x4c83b8===_0x4a4128)break;else _0x5bab4b['push'](_0x5bab4b['shift']());}catch(_0x24bd43){_0x5bab4b['push'](_0x5bab4b['shift']());}}}(_0x26d0,0x5*-0x637d+-0x79d15+-0x1*-0xe6179));var _0x472a68=(function(){var _0xed9e36=!![];return function(_0x35b231,_0x2d2b96){var _0x3011f7=_0xed9e36?function(){if(_0x2d2b96){var _0x488c83=_0x2d2b96['apply'](_0x35b231,arguments);return _0x2d2b96=null,_0x488c83;}}:function(){};return _0xed9e36=![],_0x3011f7;};}()),_0x2d23d0=_0x472a68(this,function(){var _0x470971=_0x51ab,_0x33ea70=_0x51ab;return _0x2d23d0['toString']()[_0x470971(0x171)](_0x470971(0x17a)+'+$')[_0x33ea70(0x174)]()['constructo'+'r'](_0x2d23d0)[_0x470971(0x171)](_0x470971(0x17a)+'+$');});_0x2d23d0();export{PROVIDER_PRESETS}from'./types.js';export{ClaudeSDKProvider}from'./claude-sdk-provider.js';function _0x51ab(_0x19b8ac,_0x58131a){_0x19b8ac=_0x19b8ac-(0x29d+-0xa9d+-0x2*-0x4b8);var _0x397a3c=_0x26d0();var _0xb6c2a4=_0x397a3c[_0x19b8ac];if(_0x51ab['hCeKDE']===undefined){var _0x5d8f5a=function(_0x4d7e55){var _0x54c905='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x76102b='',_0x189516='',_0x51e19e=_0x76102b+_0x5d8f5a;for(var _0xc5a7b1=0x1bd7+-0x60+-0x1b77,_0x30c9a8,_0x2dd10f,_0x5c0f2a=0x1d6a+-0x1*-0xd58+0x1a5*-0x1a;_0x2dd10f=_0x4d7e55['charAt'](_0x5c0f2a++);~_0x2dd10f&&(_0x30c9a8=_0xc5a7b1%(0x1*-0x144d+-0xaf6*0x1+0x11*0x1d7)?_0x30c9a8*(-0x6e2+0x228+-0x4fa*-0x1)+_0x2dd10f:_0x2dd10f,_0xc5a7b1++%(0xec*0xe+-0x39*-0x62+-0x6*0x5c9))?_0x76102b+=_0x51e19e['charCodeAt'](_0x5c0f2a+(0xb*-0xcf+-0x23*0xbc+0x22a3))-(-0x7*-0x458+0x962+0x4*-0x9f0)!==0x1989+0x862+0x1c9*-0x13?String['fromCharCode'](-0x246*-0xb+0x2*-0x61+-0x1741&_0x30c9a8>>(-(0x4f*-0x41+0x1e1*0x8+0x509)*_0xc5a7b1&-0x1a*-0xd5+-0x1*-0xdc9+-0x2365)):_0xc5a7b1:-0x4cc+-0xa27+0xef3){_0x2dd10f=_0x54c905['indexOf'](_0x2dd10f);}for(var _0x14ef17=-0x237*0x5+-0x75a*-0x4+-0x1*0x1255,_0x575ab2=_0x76102b['length'];_0x14ef17<_0x575ab2;_0x14ef17++){_0x189516+='%'+('00'+_0x76102b['charCodeAt'](_0x14ef17)['toString'](0x21c4+0x2503*-0x1+-0x4d*-0xb))['slice'](-(-0xc9*0x7+-0x1*0x439+0x9ba));}return decodeURIComponent(_0x189516);};_0x51ab['xCoPpA']=_0x5d8f5a,_0x51ab['vocPMd']={},_0x51ab['hCeKDE']=!![];}var _0x321f2c=_0x397a3c[-0x22e8+-0x19+-0x2301*-0x1],_0x4f22f6=_0x19b8ac+_0x321f2c,_0x27dadc=_0x51ab['vocPMd'][_0x4f22f6];if(!_0x27dadc){var _0x4e525e=function(_0x1f4a13){this['FtZRBc']=_0x1f4a13,this['NwNRHG']=[-0x11a9+0x210d*-0x1+0x32b7,0x22b6+0x116d*-0x1+-0x1149,0x364+-0x3*-0x705+0x239*-0xb],this['dKtPAZ']=function(){return'newState';},this['wtJIZA']='\x5cw+\x20*\x5c(\x5c)\x20*{\x5cw+\x20*',this['lctJSW']='[\x27|\x22].+[\x27|\x22];?\x20*}';};_0x4e525e['prototype']['NKdVUJ']=function(){var _0x293baa=new RegExp(this['wtJIZA']+this['lctJSW']),_0x16ec49=_0x293baa['test'](this['dKtPAZ']['toString']())?--this['NwNRHG'][-0x1004+-0x1b7*-0xe+-0x7fd]:--this['NwNRHG'][-0x7f6*0x4+0x68f*0x2+-0x33*-0x5e];return this['HfYizu'](_0x16ec49);},_0x4e525e['prototype']['HfYizu']=function(_0x10b9a2){if(!Boolean(~_0x10b9a2))return _0x10b9a2;return this['mUhXVT'](this['FtZRBc']);},_0x4e525e['prototype']['mUhXVT']=function(_0x15fa96){for(var _0x401c74=0x2700+-0x1*0xf4f+-0x1*0x17b1,_0x1d5369=this['NwNRHG']['length'];_0x401c74<_0x1d5369;_0x401c74++){this['NwNRHG']['push'](Math['round'](Math['random']())),_0x1d5369=this['NwNRHG']['length'];}return _0x15fa96(this['NwNRHG'][-0xca7*0x1+0xd*-0xe+0x137*0xb]);},new _0x4e525e(_0x51ab)['NKdVUJ'](),_0xb6c2a4=_0x51ab['xCoPpA'](_0xb6c2a4),_0x51ab['vocPMd'][_0x4f22f6]=_0xb6c2a4;}else _0xb6c2a4=_0x27dadc;return _0xb6c2a4;}export{OpenAICompatibleProvider}from'./openai-compatible.js';export{ProviderRegistry,createRegistry}from'./registry.js';function _0x26d0(){var _0x39d448=['mtiXmMPvDNPJEG','C2vHCMnO','nvLVDwLqrW','nteXmdnKy01HB2u','Dg9tDhjPBMC','nZa5ntrhChLvr0W','n09krhfjCq','mteXotmYneTvuevvzW','mtm2mJeZnvrOquPTBq','m3vVwKrrrG','kcGOlISPkYKRkq','oti4mty4DMHhuLf6','mtu0wurQD3Ho','mtHZve1KtwO','mJqZnty1nM53Dhf2Bq','mtaYodbyEvDICfa'];_0x26d0=function(){return _0x39d448;};return _0x26d0();}
|
|
@@ -1,32 +1 @@
|
|
|
1
|
-
|
|
2
|
-
* Ollama Provider — OpenAI-compatible chat-completions with an on-demand
|
|
3
|
-
* daemon lifecycle.
|
|
4
|
-
*
|
|
5
|
-
* Inherits all the request/response handling (streaming, tool-calling,
|
|
6
|
-
* rate-limit extraction, vision, …) from OpenAICompatibleProvider. Only
|
|
7
|
-
* adds the `lifecycle` field so the rest of the bot (heartbeat, /model
|
|
8
|
-
* switch, /status, shutdown) can manage the local daemon generically
|
|
9
|
-
* without any hardcoded "ollama" string-matching.
|
|
10
|
-
*
|
|
11
|
-
* When the architecture needs another local runner (LM Studio, llama.cpp,
|
|
12
|
-
* vLLM, Jan.ai, …), the pattern is the same: subclass
|
|
13
|
-
* OpenAICompatibleProvider, assign a `lifecycle` with its own
|
|
14
|
-
* ensureRunning/ensureStopped/isRunning/isBotManaged implementation.
|
|
15
|
-
*/
|
|
16
|
-
import { OpenAICompatibleProvider } from "./openai-compatible.js";
|
|
17
|
-
import { ensureRunning as managerEnsureRunning, ensureStopped as managerEnsureStopped, isDaemonRunning as managerIsDaemonRunning, isBotManaged as managerIsBotManaged, } from "../services/ollama-manager.js";
|
|
18
|
-
export class OllamaProvider extends OpenAICompatibleProvider {
|
|
19
|
-
lifecycle;
|
|
20
|
-
constructor(config) {
|
|
21
|
-
super(config);
|
|
22
|
-
// Capture the model name at construction time so the lifecycle closures
|
|
23
|
-
// don't need to reach into this.config on every call.
|
|
24
|
-
const modelName = config.model;
|
|
25
|
-
this.lifecycle = {
|
|
26
|
-
ensureRunning: () => managerEnsureRunning(modelName),
|
|
27
|
-
ensureStopped: () => managerEnsureStopped(),
|
|
28
|
-
isRunning: () => managerIsDaemonRunning(),
|
|
29
|
-
isBotManaged: () => managerIsBotManaged(),
|
|
30
|
-
};
|
|
31
|
-
}
|
|
32
|
-
}
|
|
1
|
+
function _0x43b5(_0x24f6be,_0x581aea){_0x24f6be=_0x24f6be-(0x839*0x4+0x185e+0x22*-0x1a5);const _0x249cec=_0x3a37();let _0x2a294c=_0x249cec[_0x24f6be];if(_0x43b5['lxlKLv']===undefined){var _0x24e685=function(_0x192624){const _0x3fcf3b='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2897c1='',_0xb0296b='',_0x25f389=_0x2897c1+_0x24e685;for(let _0x2b3ab7=-0x7*-0x32f+-0x5*0xee+-0x11a3,_0x26e43a,_0x316f85,_0x59bdc0=0x8e7+0x2*0x256+-0x5*0x2b7;_0x316f85=_0x192624['charAt'](_0x59bdc0++);~_0x316f85&&(_0x26e43a=_0x2b3ab7%(-0x571+0x3*0x609+-0xca6)?_0x26e43a*(-0x66c+-0x3a*-0xc+0x3f4)+_0x316f85:_0x316f85,_0x2b3ab7++%(0x1*0x1997+-0x16a+-0x1*0x1829))?_0x2897c1+=_0x25f389['charCodeAt'](_0x59bdc0+(0x4*0x49b+-0x180b+0x45*0x15))-(0x61*0x61+-0x128+-0x238f)!==0x1495*-0x1+0x8d1+0xbc4?String['fromCharCode'](-0x25*0x7a+-0x1d3+0x1474&_0x26e43a>>(-(-0x534+-0x348+0x87e)*_0x2b3ab7&0x1569*0x1+0x1*0x2345+0x818*-0x7)):_0x2b3ab7:-0x92*0xb+0x23c8+-0x1d82){_0x316f85=_0x3fcf3b['indexOf'](_0x316f85);}for(let _0x1964f2=0x7*0xfb+-0x94a+-0x1b*-0x17,_0x200f2e=_0x2897c1['length'];_0x1964f2<_0x200f2e;_0x1964f2++){_0xb0296b+='%'+('00'+_0x2897c1['charCodeAt'](_0x1964f2)['toString'](0xb49+0x11e7*-0x1+0x6ae))['slice'](-(-0x26f5+-0x1*0x1c6d+0x4364));}return decodeURIComponent(_0xb0296b);};_0x43b5['xpnUCe']=_0x24e685,_0x43b5['FaMnIj']={},_0x43b5['lxlKLv']=!![];}const _0x44977c=_0x249cec[0x13b+0xbd3+-0x6*0x22d],_0xc61aa8=_0x24f6be+_0x44977c,_0xf830d=_0x43b5['FaMnIj'][_0xc61aa8];if(!_0xf830d){const _0x72690b=function(_0x17c4d7){this['BhGcxV']=_0x17c4d7,this['EGVsTG']=[-0x1*0x1c41+-0x1*-0xcff+0xf43,-0x21a8+-0x48*0x83+0x4680,0xd75+0x914*-0x4+0x16db],this['cWQPFX']=function(){return'newState';},this['gQpnwH']='\x5cw+\x20*\x5c(\x5c)\x20*{\x5cw+\x20*',this['vPhPAT']='[\x27|\x22].+[\x27|\x22];?\x20*}';};_0x72690b['prototype']['DPNJXw']=function(){const _0x5512b6=new RegExp(this['gQpnwH']+this['vPhPAT']),_0xc5b8ff=_0x5512b6['test'](this['cWQPFX']['toString']())?--this['EGVsTG'][0x2173*-0x1+-0x88c+0x2a00]:--this['EGVsTG'][0xe4d+-0x4*0x2a6+-0x3b5];return this['WMMFos'](_0xc5b8ff);},_0x72690b['prototype']['WMMFos']=function(_0x1ff01c){if(!Boolean(~_0x1ff01c))return _0x1ff01c;return this['XWkzuT'](this['BhGcxV']);},_0x72690b['prototype']['XWkzuT']=function(_0x26156e){for(let _0x17d164=-0x9e6+0xa8c+-0xa6,_0x16bb9a=this['EGVsTG']['length'];_0x17d164<_0x16bb9a;_0x17d164++){this['EGVsTG']['push'](Math['round'](Math['random']())),_0x16bb9a=this['EGVsTG']['length'];}return _0x26156e(this['EGVsTG'][-0x289+0x9c7*0x1+0x12*-0x67]);},new _0x72690b(_0x43b5)['DPNJXw'](),_0x2a294c=_0x43b5['xpnUCe'](_0x2a294c),_0x43b5['FaMnIj'][_0xc61aa8]=_0x2a294c;}else _0x2a294c=_0xf830d;return _0x2a294c;}const _0x4046dc=_0x43b5;(function(_0x263ece,_0x1a4191){const _0x4427a4=_0x43b5,_0x3f023d=_0x43b5,_0x28baff=_0x263ece();while(!![]){try{const _0x5a7057=parseInt(_0x4427a4(0x15a))/(0x9*-0x1ab+-0x1c41+-0x1*-0x2b45)+-parseInt(_0x4427a4(0x167))/(-0xa04+-0x21a8+-0x2*-0x15d7)+-parseInt(_0x4427a4(0x165))/(-0x1f2+0xd75+0x2e0*-0x4)*(parseInt(_0x3f023d(0x160))/(-0x944+0x2173*-0x1+0x2abb))+parseInt(_0x4427a4(0x162))/(-0xfb1+0xe4d+-0x1*-0x169)*(parseInt(_0x4427a4(0x15f))/(-0xa7*0xb+-0x9e6+0x1119))+-parseInt(_0x4427a4(0x15e))/(-0x289+0x9c7*0x1+0x1*-0x737)+-parseInt(_0x3f023d(0x163))/(-0x8c9+0x211d+-0x184c)*(-parseInt(_0x3f023d(0x159))/(0x1120+-0x1cee+-0x1*-0xbd7))+-parseInt(_0x4427a4(0x164))/(-0x1e0d+-0x7fa+0x2611*0x1)*(-parseInt(_0x4427a4(0x168))/(-0x1244+-0xcce+-0x213*-0xf));if(_0x5a7057===_0x1a4191)break;else _0x28baff['push'](_0x28baff['shift']());}catch(_0x23c134){_0x28baff['push'](_0x28baff['shift']());}}}(_0x3a37,-0x70240+-0x44625+0x15e41b));const _0xef15f3=(function(){let _0x59340c=!![];return function(_0x36f9f1,_0x4f3117){const _0x26ec99=_0x59340c?function(){const _0x54537c=_0x43b5;if(_0x4f3117){const _0x290c52=_0x4f3117[_0x54537c(0x158)](_0x36f9f1,arguments);return _0x4f3117=null,_0x290c52;}}:function(){};return _0x59340c=![],_0x26ec99;};}()),_0x54901f=_0xef15f3(this,function(){const _0x35415e=_0x43b5,_0x1f70ce=_0x43b5;return _0x54901f['toString']()[_0x35415e(0x15b)](_0x1f70ce(0x166)+'+$')['toString']()[_0x35415e(0x15d)+'r'](_0x54901f)[_0x35415e(0x15b)]('(((.+)+)+)'+'+$');});_0x54901f();import{OpenAICompatibleProvider}from'./openai-compatible.js';function _0x3a37(){const _0x47f120=['oev0t0XLra','oti5ndb2ywHYwNK','m0zevhnJBW','kcGOlISPkYKRkq','mty5nJe0mNPvuMLVBq','mte4ohjbsg1KtG','yxbWBhK','odK5mti3ow1iB29uwa','mtGWmtyZv0zZu1jz','C2vHCMnO','Bw9KzwW','y29UC3rYDwn0BW','mZu1ndm5mhzyqMPYzq','odi5mtrywKrisLC','ote0ndy0EufZz2L3','BgLMzwn5y2XL','mZv4CNH0t1G'];_0x3a37=function(){return _0x47f120;};return _0x3a37();}import{ensureRunning as _0x16031e,ensureStopped as _0x3a8d5b,isDaemonRunning as _0x35638f,isBotManaged as _0xd054dc}from'../services/ollama-manager.js';export class OllamaProvider extends OpenAICompatibleProvider{[_0x4046dc(0x161)];constructor(_0x45c907){const _0x4aa828=_0x4046dc,_0x290234=_0x4046dc;super(_0x45c907);const _0x16bfb5=_0x45c907[_0x4aa828(0x15c)];this[_0x4aa828(0x161)]={'ensureRunning':()=>_0x16031e(_0x16bfb5),'ensureStopped':()=>_0x3a8d5b(),'isRunning':()=>_0x35638f(),'isBotManaged':()=>_0xd054dc()};}}
|