@inetafrica/open-claudia 2.2.18 → 2.2.19
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/.env.example +2 -0
- package/CHANGELOG.md +3 -0
- package/bot-agent.js +5 -3
- package/core/config.js +2 -0
- package/core/handlers.js +5 -2
- package/core/runner.js +2 -2
- package/package.json +1 -1
package/.env.example
CHANGED
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## v2.2.19
|
|
4
|
+
- Add Claude Opus 4.8 (`claude-opus-4-8`) to the Claude model picker and make it the default Claude Code model used when no per-user model override is selected. The default can still be overridden with `CLAUDE_MODEL`, now documented in `.env.example`.
|
|
5
|
+
|
|
3
6
|
## v2.2.18
|
|
4
7
|
- Fix the legacy Telegram send/edit path so replies default to Telegram HTML parse mode and go through the shared formatter, preventing raw `<b>`, `<a>`, and related tags from leaking in chat.
|
|
5
8
|
- Preserve safe Telegram HTML tags before Markdown conversion, so underscores inside link URLs such as Higgsfield `wan2_2_video` are not misread as italics and do not break rendered links.
|
package/bot-agent.js
CHANGED
|
@@ -78,6 +78,7 @@ const CHAT_ID = CHAT_IDS[0]; // Primary owner chat for crons/notifications
|
|
|
78
78
|
const WORKSPACE = config.WORKSPACE;
|
|
79
79
|
const CLAUDE_PATH = config.CLAUDE_PATH;
|
|
80
80
|
const CURSOR_PATH = config.CURSOR_PATH || null;
|
|
81
|
+
const DEFAULT_CLAUDE_MODEL = config.CLAUDE_MODEL || process.env.CLAUDE_MODEL || "claude-opus-4-8";
|
|
81
82
|
|
|
82
83
|
// Resolve Cursor Agent CLI (optional)
|
|
83
84
|
let resolvedCursorPath = CURSOR_PATH;
|
|
@@ -1148,7 +1149,7 @@ function buildClaudeArgs(prompt, opts = {}) {
|
|
|
1148
1149
|
"--append-system-prompt", buildSystemPrompt()];
|
|
1149
1150
|
if (opts.continueSession) args.push("--continue");
|
|
1150
1151
|
else if (lastSessionId && !opts.fresh) args.push("--resume", lastSessionId);
|
|
1151
|
-
|
|
1152
|
+
args.push("--model", settings.model || DEFAULT_CLAUDE_MODEL);
|
|
1152
1153
|
if (settings.effort) args.push("--effort", settings.effort);
|
|
1153
1154
|
if (settings.budget) args.push("--max-budget-usd", String(settings.budget));
|
|
1154
1155
|
if (settings.permissionMode) args.push("--permission-mode", settings.permissionMode);
|
|
@@ -1195,7 +1196,7 @@ async function runClaudeChat(prompt, cwd, replyToMsgId) {
|
|
|
1195
1196
|
const args = ["-p", "--verbose", "--output-format", "stream-json",
|
|
1196
1197
|
"--append-system-prompt", buildSystemPrompt(),
|
|
1197
1198
|
"--dangerously-skip-permissions"];
|
|
1198
|
-
|
|
1199
|
+
args.push("--model", settings.model || DEFAULT_CLAUDE_MODEL);
|
|
1199
1200
|
args.push(contextPrompt);
|
|
1200
1201
|
|
|
1201
1202
|
const proc = spawn(CLAUDE_PATH, args, {
|
|
@@ -1660,7 +1661,8 @@ bot.onText(/\/model$/, (msg) => {
|
|
|
1660
1661
|
[{ text: "GPT-5.4", callback_data: "m:gpt-5.4-medium" }, { text: "GPT-5.4 High", callback_data: "m:gpt-5.4-high" }],
|
|
1661
1662
|
[{ text: "Auto", callback_data: "m:auto" }, { text: "Default", callback_data: "m:default" }],
|
|
1662
1663
|
] : [
|
|
1663
|
-
[{ text: "Opus", callback_data: "m:opus" }, { text: "
|
|
1664
|
+
[{ text: "Opus 4.8", callback_data: "m:claude-opus-4-8" }, { text: "Opus 4.7", callback_data: "m:claude-opus-4-7" }],
|
|
1665
|
+
[{ text: "Sonnet", callback_data: "m:sonnet" }, { text: "Haiku", callback_data: "m:haiku" }],
|
|
1664
1666
|
[{ text: "Default", callback_data: "m:default" }],
|
|
1665
1667
|
];
|
|
1666
1668
|
const label = settings.backend === "cursor" ? "Cursor Agent" : "Claude Code";
|
package/core/config.js
CHANGED
|
@@ -47,6 +47,7 @@ const WORKSPACE = config.WORKSPACE;
|
|
|
47
47
|
const CLAUDE_PATH = config.CLAUDE_PATH;
|
|
48
48
|
const CURSOR_PATH = config.CURSOR_PATH || null;
|
|
49
49
|
const CODEX_PATH = config.CODEX_PATH || null;
|
|
50
|
+
const DEFAULT_CLAUDE_MODEL = config.CLAUDE_MODEL || process.env.CLAUDE_MODEL || "claude-opus-4-8";
|
|
50
51
|
const AUTO_COMPACT_TOKENS = parseInt(config.AUTO_COMPACT_TOKENS || process.env.AUTO_COMPACT_TOKENS || "380000", 10);
|
|
51
52
|
const MIN_COMPACT_INTERVAL_MS = parseInt(config.MIN_COMPACT_INTERVAL_MS || process.env.MIN_COMPACT_INTERVAL_MS || "1800000", 10);
|
|
52
53
|
const PROJECT_TRANSCRIPTS = configTruthy(config.PROJECT_TRANSCRIPTS || process.env.PROJECT_TRANSCRIPTS, true);
|
|
@@ -187,6 +188,7 @@ module.exports = {
|
|
|
187
188
|
TOKEN, CHAT_IDS, CHAT_ID,
|
|
188
189
|
WORKSPACE,
|
|
189
190
|
CLAUDE_PATH,
|
|
191
|
+
DEFAULT_CLAUDE_MODEL,
|
|
190
192
|
CURSOR_PATH,
|
|
191
193
|
CODEX_PATH,
|
|
192
194
|
resolvedCursorPath,
|
package/core/handlers.js
CHANGED
|
@@ -9,7 +9,7 @@ const { execSync } = require("child_process");
|
|
|
9
9
|
const {
|
|
10
10
|
WORKSPACE, FULL_PATH, AUTO_COMPACT_TOKENS, CONFIG_DIR,
|
|
11
11
|
config, saveEnvKey,
|
|
12
|
-
CHAT_ID, resolvedCursorPath, resolvedCodexPath, SOUL_FILE,
|
|
12
|
+
CHAT_ID, DEFAULT_CLAUDE_MODEL, resolvedCursorPath, resolvedCodexPath, SOUL_FILE,
|
|
13
13
|
} = require("./config");
|
|
14
14
|
const { register } = require("./commands");
|
|
15
15
|
const { send, deleteMessage } = require("./io");
|
|
@@ -535,8 +535,11 @@ register({
|
|
|
535
535
|
const rows = [];
|
|
536
536
|
rows.push([{ text: "── Claude ──", callback_data: "noop" }]);
|
|
537
537
|
rows.push([
|
|
538
|
+
{ text: "Opus 4.8", callback_data: "mb:claude:claude-opus-4-8" },
|
|
538
539
|
{ text: "Opus 4.7", callback_data: "mb:claude:claude-opus-4-7" },
|
|
539
540
|
{ text: "Opus 4.6", callback_data: "mb:claude:claude-opus-4-6" },
|
|
541
|
+
]);
|
|
542
|
+
rows.push([
|
|
540
543
|
{ text: "Sonnet 4.6", callback_data: "mb:claude:claude-sonnet-4-6" },
|
|
541
544
|
{ text: "Haiku", callback_data: "mb:claude:claude-haiku-4-5-20251001" },
|
|
542
545
|
]);
|
|
@@ -563,7 +566,7 @@ register({
|
|
|
563
566
|
{ text: "o4-mini", callback_data: "mb:codex:o4-mini" },
|
|
564
567
|
]);
|
|
565
568
|
}
|
|
566
|
-
rows.push([{ text:
|
|
569
|
+
rows.push([{ text: `Default (Claude: ${DEFAULT_CLAUDE_MODEL})`, callback_data: "m:default" }]);
|
|
567
570
|
const beLabel = settings.backend === "cursor" ? "Cursor" : settings.backend === "codex" ? "Codex" : "Claude";
|
|
568
571
|
send(`Current: ${beLabel} · ${settings.model || "default"}\n\nPick a model — backend switches automatically.\nOr type /model <name>.`, { keyboard: { inline_keyboard: rows } });
|
|
569
572
|
},
|
package/core/runner.js
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
|
|
6
6
|
const { spawn } = require("child_process");
|
|
7
7
|
const {
|
|
8
|
-
CLAUDE_PATH, resolvedCursorPath, resolvedCodexPath,
|
|
8
|
+
CLAUDE_PATH, DEFAULT_CLAUDE_MODEL, resolvedCursorPath, resolvedCodexPath,
|
|
9
9
|
AUTO_COMPACT_TOKENS, MIN_COMPACT_INTERVAL_MS, MAX_PROCESS_TIMEOUT, COMPACT_SUMMARY_TIMEOUT, botSubprocessEnv,
|
|
10
10
|
} = require("./config");
|
|
11
11
|
const { currentState, saveState, recordSession, userOwnsClaudeSession } = require("./state");
|
|
@@ -124,7 +124,7 @@ function buildClaudeArgs(prompt, opts = {}) {
|
|
|
124
124
|
state.lastSessionId = null;
|
|
125
125
|
}
|
|
126
126
|
}
|
|
127
|
-
|
|
127
|
+
args.push("--model", settings.model || DEFAULT_CLAUDE_MODEL);
|
|
128
128
|
if (settings.effort) args.push("--effort", settings.effort);
|
|
129
129
|
if (settings.budget) args.push("--max-budget-usd", String(settings.budget));
|
|
130
130
|
if (settings.permissionMode) args.push("--permission-mode", settings.permissionMode);
|
package/package.json
CHANGED