appback-remoteagent 0.23.1 → 0.23.2

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/README.md CHANGED
@@ -105,7 +105,7 @@ Current command surface implemented in `src/bot.ts`:
105
105
  | `/new` | Creates and binds a new session using the saved default mode in a new managed workspace |
106
106
  | `/switch <session>` | Rebinds this chat to an existing RemoteAgent session |
107
107
  | `/status` | Shows current session, workspace, provider, and sandbox state |
108
- | `/model [name]` | Lists selectable provider models or changes the current session model |
108
+ | `/model [name]` | Lists selectable provider models or changes the current session model. New Codex sessions default to `gpt-6-astra` with `medium` reasoning. Use `/model gpt-6-astra` for an existing session. |
109
109
  | `/sandbox [codex <mode>]` | Lists Codex sandbox choices or changes the current session sandbox |
110
110
  | `/option retry <count>` | Sets the automatic continuation turn limit and persists it to `~/.remoteagent/.env` |
111
111
  | `/option timeout <seconds>` | Sets the provider execution timeout and persists it to `~/.remoteagent/.env` |
@@ -67,6 +67,9 @@ export class CodexAdapter {
67
67
  if (request.model) {
68
68
  args.push("-m", request.model);
69
69
  }
70
+ if (request.model === "gpt-6-astra") {
71
+ args.push("-c", 'model_reasoning_effort="medium"');
72
+ }
70
73
  this.appendSandboxArgs(args, sandboxMode);
71
74
  args.push("-o", outputPath, "-C", request.cwd);
72
75
  this.appendPromptStdinArg(args);
@@ -82,6 +85,9 @@ export class CodexAdapter {
82
85
  if (request.model) {
83
86
  args.push("-m", request.model);
84
87
  }
88
+ if (request.model === "gpt-6-astra") {
89
+ args.push("-c", 'model_reasoning_effort="medium"');
90
+ }
85
91
  this.appendSandboxArgs(args, sandboxMode);
86
92
  args.push("-o", outputPath, request.sessionId);
87
93
  this.appendPromptStdinArg(args);
@@ -5,10 +5,10 @@ import path from "node:path";
5
5
  import { stopSpawnedExecution } from "../adapters/windows-shell.js";
6
6
  import { CODEX_USAGE_FALLBACK_MODEL, CodexUsageFallbackService, parseCodexUsageLimit, } from "./codex-usage-fallback-service.js";
7
7
  const MODEL_PRESETS = {
8
- codex: ["gpt-5.6-sol", "gpt-5.6-terra", "gpt-5.6-luna", "gpt-5.6", "gpt-5.5", "gpt-5.4", "gpt-5.4-mini", "gpt-5.3-codex-spark", "gpt-5.2", "gpt-5.1-codex-max"],
8
+ codex: ["gpt-6-astra", "gpt-5.6-sol", "gpt-5.6-terra", "gpt-5.6-luna", "gpt-5.6", "gpt-5.5", "gpt-5.4", "gpt-5.4-mini", "gpt-5.3-codex-spark", "gpt-5.2", "gpt-5.1-codex-max"],
9
9
  claude: ["sonnet", "opus", "haiku"],
10
10
  };
11
- const DEFAULT_CODEX_MODEL = "gpt-5.6-sol";
11
+ const DEFAULT_CODEX_MODEL = "gpt-6-astra";
12
12
  export class BridgeService {
13
13
  store;
14
14
  adapters;
@@ -367,7 +367,8 @@ export class BridgeService {
367
367
  return responses.map((response) => {
368
368
  const sessionLabel = response.publicSessionId ?? response.sessionId;
369
369
  const modelLabel = response.model?.trim() || this.defaultModelFor(response.provider);
370
- const header = `[${response.provider.toUpperCase()} | ${modelLabel} | ${sessionLabel}]`;
370
+ const effortLabel = response.provider === "codex" && modelLabel === "gpt-6-astra" ? " | medium" : "";
371
+ const header = `[${response.provider.toUpperCase()} | ${modelLabel}${effortLabel} | ${sessionLabel}]`;
371
372
  return `${header}\n${response.output}`;
372
373
  });
373
374
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "appback-remoteagent",
3
- "version": "0.23.1",
3
+ "version": "0.23.2",
4
4
  "description": "Personal installable session server for continuing local AI work across PC and Telegram",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -34,6 +34,12 @@ await fs.chmod(fakeCodex, 0o755);
34
34
 
35
35
  const { CodexAdapter } = await import(path.join(root, "dist", "adapters", "codex-adapter.js"));
36
36
  const adapter = new CodexAdapter(fakeCodex, 5000, "read-only");
37
+ for (const method of ["buildExecArgs", "buildResumeArgs"]) {
38
+ const args = adapter[method]({model: "gpt-6-astra", cwd: tmp, sessionId: "stream-thread"}, path.join(tmp, "output"), "read-only");
39
+ if (args[args.indexOf("-m") + 1] !== "gpt-6-astra" || !args.some((arg, i) => arg === "-c" && args[i + 1] === 'model_reasoning_effort="medium"')) {
40
+ throw new Error(`Astra medium missing from ${method}`);
41
+ }
42
+ }
37
43
  const progress = [];
38
44
  let settled = false;
39
45
  const responsePromise = adapter.send({
@@ -18,7 +18,7 @@ const dataDir = path.join(root, "data");
18
18
  const workspaceRoot = path.join(root, "workspaces");
19
19
  const defaultWorkspace = path.join(root, "default-workspace");
20
20
  const fallbackStatePath = path.join(dataDir, "codex-usage-fallback.json");
21
- const primaryModel = "gpt-5.6-sol";
21
+ const primaryModel = "gpt-6-astra";
22
22
  const usageError = "You've hit your usage limit. Visit https://chatgpt.com/codex/settings/usage to purchase more credits or try again at Aug 27th, 2099 3:52 AM.";
23
23
 
24
24
  try {
@@ -63,6 +63,7 @@ try {
63
63
  );
64
64
 
65
65
  let bridge = createBridge();
66
+ assert.equal(bridge.formatResponses([{provider: "codex", model: primaryModel, publicSessionId: "S081", output: "done"}])[0], "[CODEX | gpt-6-astra | medium | S081]\ndone");
66
67
  const started = await bridge.startSession("test-bot", "test-chat", "codex");
67
68
  const originalSessionId = started.session.sessionId;
68
69
  const first = await bridge.routeMessage("test-bot", "test-chat", "first request", async (response) => {