grok-bot-cli 0.10.0 → 0.10.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.
@@ -9192,6 +9192,96 @@ var __webpack_modules__ = {
9192
9192
  resultSchema: resultSchema
9193
9193
  });
9194
9194
  },
9195
+ "./src/cli/codex/new.tsx" (__unused_rspack_module, __webpack_exports__, __webpack_require__) {
9196
+ __webpack_require__.r(__webpack_exports__);
9197
+ var react_jsx_runtime__rspack_import_0 = __webpack_require__("./node_modules/react/jsx-runtime.react-server.js");
9198
+ var _agent_bundle_runtime__rspack_import_5 = __webpack_require__("./node_modules/@agent-bundle/runtime/dist/506.js");
9199
+ var zod__rspack_import_4 = __webpack_require__("./node_modules/zod/v4/classic/schemas.js");
9200
+ var _core_codex_bridge_js__rspack_import_1 = __webpack_require__("./src/core/codex-bridge.js");
9201
+ var _core_codex_contract_js__rspack_import_2 = __webpack_require__("./src/core/codex/contract.js");
9202
+ var _core_codex_routes_js__rspack_import_3 = __webpack_require__("./src/core/codex/routes.ts");
9203
+ const inputSchema = zod__rspack_import_4.Ikc({
9204
+ cwd: zod__rspack_import_4.YjP().min(1),
9205
+ expectedCwd: zod__rspack_import_4.YjP().min(1).optional(),
9206
+ model: zod__rspack_import_4.YjP().regex(/^[A-Za-z0-9][A-Za-z0-9._:/-]{0,127}$/).optional(),
9207
+ effort: zod__rspack_import_4.k5n([
9208
+ 'none',
9209
+ 'minimal',
9210
+ 'low',
9211
+ 'medium',
9212
+ 'high',
9213
+ 'xhigh'
9214
+ ]).optional(),
9215
+ message: zod__rspack_import_4.YOg(zod__rspack_import_4.YjP()).optional()
9216
+ }).strict();
9217
+ const config = {
9218
+ description: 'Start a new Codex thread in --cwd, optionally with --model, --effort and a message.',
9219
+ exitCode: 'result',
9220
+ positionals: [
9221
+ 'message'
9222
+ ],
9223
+ inputJsonSchema: {
9224
+ type: 'object',
9225
+ additionalProperties: false,
9226
+ properties: {
9227
+ cwd: {
9228
+ type: 'string'
9229
+ },
9230
+ expectedCwd: {
9231
+ type: 'string'
9232
+ },
9233
+ model: {
9234
+ type: 'string'
9235
+ },
9236
+ effort: {
9237
+ type: 'string',
9238
+ enum: [
9239
+ 'none',
9240
+ 'minimal',
9241
+ 'low',
9242
+ 'medium',
9243
+ 'high',
9244
+ 'xhigh'
9245
+ ]
9246
+ },
9247
+ message: {
9248
+ type: 'array',
9249
+ items: {
9250
+ type: 'string'
9251
+ }
9252
+ }
9253
+ },
9254
+ required: [
9255
+ 'cwd'
9256
+ ]
9257
+ }
9258
+ };
9259
+ async function route({ input, signal }) {
9260
+ let out;
9261
+ try {
9262
+ out = await (0, _core_codex_bridge_js__rspack_import_1.QC)({
9263
+ ...input,
9264
+ message: input.message?.join(' ').trim() || undefined,
9265
+ signal
9266
+ });
9267
+ } catch (error) {
9268
+ out = (0, _core_codex_contract_js__rspack_import_2.DG)(error);
9269
+ }
9270
+ return (0, react_jsx_runtime__rspack_import_0.jsx)(_agent_bundle_runtime__rspack_import_5.g.Result, {
9271
+ value: out,
9272
+ children: (0, react_jsx_runtime__rspack_import_0.jsx)(_agent_bundle_runtime__rspack_import_5.g.Text, {
9273
+ children: out.threadId && !('delivery' in out) ? `Started Codex thread ${out.threadId}` : (0, _core_codex_routes_js__rspack_import_3.D6)(out)
9274
+ })
9275
+ });
9276
+ }
9277
+ __webpack_require__.d(__webpack_exports__, {
9278
+ "default": ()=>route,
9279
+ resultSchema: ()=>_core_codex_routes_js__rspack_import_3.FD
9280
+ }, {
9281
+ config: config,
9282
+ inputSchema: inputSchema
9283
+ });
9284
+ },
9195
9285
  "./src/cli/codex/queue.tsx" (__unused_rspack_module, __webpack_exports__, __webpack_require__) {
9196
9286
  __webpack_require__.r(__webpack_exports__);
9197
9287
  var react_jsx_runtime__rspack_import_0 = __webpack_require__("./node_modules/react/jsx-runtime.react-server.js");
@@ -9297,7 +9387,7 @@ var __webpack_modules__ = {
9297
9387
  description: 'Send to Codex; acceptance is distinct from completion. Options precede threadId.',
9298
9388
  exitCode: 'result',
9299
9389
  render: {
9300
- maxElapsedMs: 660000
9390
+ maxElapsedMs: 7260000
9301
9391
  },
9302
9392
  positionals: [
9303
9393
  'threadId',
@@ -9322,9 +9412,23 @@ var __webpack_modules__ = {
9322
9412
  expectedCwd: {
9323
9413
  type: 'string'
9324
9414
  },
9415
+ model: {
9416
+ type: 'string'
9417
+ },
9418
+ effort: {
9419
+ type: 'string',
9420
+ enum: [
9421
+ 'none',
9422
+ 'minimal',
9423
+ 'low',
9424
+ 'medium',
9425
+ 'high',
9426
+ 'xhigh'
9427
+ ]
9428
+ },
9325
9429
  timeoutMs: {
9326
9430
  type: 'number',
9327
- description: 'Observation timeout: 1-600000 milliseconds.'
9431
+ description: 'Observation timeout: 1-7200000 milliseconds.'
9328
9432
  },
9329
9433
  correlationId: {
9330
9434
  type: 'string'
@@ -9459,7 +9563,7 @@ var __webpack_modules__ = {
9459
9563
  description: 'Bounded Codex wait observation; never interrupts execution.',
9460
9564
  exitCode: 'result',
9461
9565
  render: {
9462
- maxElapsedMs: 660000
9566
+ maxElapsedMs: 7260000
9463
9567
  },
9464
9568
  positionals: [
9465
9569
  'threadId',
@@ -9477,7 +9581,7 @@ var __webpack_modules__ = {
9477
9581
  },
9478
9582
  "timeoutMs": {
9479
9583
  "type": "number",
9480
- "description": "Observation timeout: 1-600000 milliseconds."
9584
+ "description": "Observation timeout: 1-7200000 milliseconds."
9481
9585
  },
9482
9586
  "turnId": {
9483
9587
  "type": "string"
@@ -10941,13 +11045,22 @@ var __webpack_modules__ = {
10941
11045
  const observationFields = {
10942
11046
  expectedCwd: zod__rspack_import_3.YjP().min(1).optional(),
10943
11047
  threadId: id,
10944
- timeoutMs: zod__rspack_import_3.aig().int().min(1).max(600000).optional()
11048
+ timeoutMs: zod__rspack_import_3.aig().int().min(1).max(7200000).optional()
10945
11049
  };
10946
11050
  const sendFields = {
10947
11051
  ...observationFields,
10948
11052
  correlationId: id.optional(),
10949
11053
  envelope: zod__rspack_import_3.zMY().optional(),
10950
11054
  hop: zod__rspack_import_3.aig().int().min(0).optional(),
11055
+ model: zod__rspack_import_3.YjP().regex(/^[A-Za-z0-9][A-Za-z0-9._:/-]{0,127}$/).optional(),
11056
+ effort: zod__rspack_import_3.k5n([
11057
+ 'none',
11058
+ 'minimal',
11059
+ 'low',
11060
+ 'medium',
11061
+ 'high',
11062
+ 'xhigh'
11063
+ ]).optional(),
10951
11064
  replyTo: id.optional(),
10952
11065
  expectedTurnId: id.optional(),
10953
11066
  whenBusy: zod__rspack_import_3.k5n([
@@ -10969,7 +11082,9 @@ var __webpack_modules__ = {
10969
11082
  maxOutputBytes: zod__rspack_import_3.aig().int().min(1).max(4194304).optional()
10970
11083
  }).strict();
10971
11084
  const watchSchema = zod__rspack_import_3.Ikc({
10972
- ...observationFields,
11085
+ expectedCwd: zod__rspack_import_3.YjP().min(1).optional(),
11086
+ threadId: id,
11087
+ timeoutMs: zod__rspack_import_3.aig().int().min(1).max(600000).optional(),
10973
11088
  maxEvents: zod__rspack_import_3.aig().int().min(1).max(500).default(100)
10974
11089
  }).strict();
10975
11090
  const threadsSchema = zod__rspack_import_3.Ikc({
@@ -11026,6 +11141,8 @@ var __webpack_modules__ = {
11026
11141
  envelope,
11027
11142
  whenBusy: input.whenBusy,
11028
11143
  expectedCwd: input.expectedCwd,
11144
+ model: input.model,
11145
+ effort: input.effort,
11029
11146
  signal
11030
11147
  });
11031
11148
  }
@@ -11038,7 +11155,9 @@ var __webpack_modules__ = {
11038
11155
  receipt = await conversation.send(input.message, {
11039
11156
  envelope,
11040
11157
  whenBusy: input.whenBusy,
11041
- expectedTurnId: input.expectedTurnId
11158
+ expectedTurnId: input.expectedTurnId,
11159
+ model: input.model,
11160
+ effort: input.effort
11042
11161
  });
11043
11162
  if (!input.wait || receipt.delivery !== 'accepted' || !receipt.turnId) return receipt;
11044
11163
  await progress?.(`Accepted message ${receipt.messageId}; observing turn ${receipt.turnId}`);
@@ -11327,7 +11446,9 @@ var __webpack_modules__ = {
11327
11446
  requestId: input.requestId,
11328
11447
  busyPolicy: input.whenBusy,
11329
11448
  hop: input.hop,
11330
- correlationId: input.correlationId
11449
+ correlationId: input.correlationId,
11450
+ model: input.model,
11451
+ effort: input.effort
11331
11452
  }, options(context)));
11332
11453
  }
11333
11454
  __webpack_require__.d(__webpack_exports__, {
@@ -21558,6 +21679,7 @@ var __webpack_modules__ = {
21558
21679
  var node_net__rspack_import_2 = __webpack_require__("node:net");
21559
21680
  var node_os__rspack_import_3 = __webpack_require__("node:os");
21560
21681
  var node_path__rspack_import_4 = __webpack_require__("node:path");
21682
+ var _user_machine_guidance_js__rspack_import_5 = __webpack_require__("./src/core/user-machine-guidance.js");
21561
21683
  const MAX_BYTES = 65536;
21562
21684
  const FRAME_BYTES = MAX_BYTES * 6 + 1024;
21563
21685
  const defaultDirectory = ()=>(0, node_path__rspack_import_4.join)((0, node_os__rspack_import_3.homedir)(), '.grok-bot-cli', 'claude');
@@ -21568,6 +21690,18 @@ var __webpack_modules__ = {
21568
21690
  if (Buffer.byteLength(path) >= 104) throw Error('Claude channel socket path is too long');
21569
21691
  return path;
21570
21692
  }
21693
+ function absentClaudeChannelMessage(path, directory) {
21694
+ if ((0, _user_machine_guidance_js__rspack_import_5.R)({
21695
+ path,
21696
+ home: directory
21697
+ })) {
21698
+ return [
21699
+ 'No Claude channel socket at ' + path + '.',
21700
+ _user_machine_guidance_js__rspack_import_5.M
21701
+ ].join('\n');
21702
+ }
21703
+ return 'No Claude channel socket at ' + path + '. Start an opted-in Claude Code session with GROK_BOT_CLAUDE_CHANNEL on this machine (gbot has no remote transport).';
21704
+ }
21571
21705
  function messageText(message) {
21572
21706
  if (typeof message !== 'string' || !message.trim() || Buffer.byteLength(message) > MAX_BYTES) throw Error('Message must contain text within 64 KiB');
21573
21707
  return message;
@@ -21701,8 +21835,21 @@ var __webpack_modules__ = {
21701
21835
  const path = socketPath(name, directory);
21702
21836
  messageText(message);
21703
21837
  timeout(timeoutMs);
21704
- await privateDirectory(directory);
21705
- const info = await (0, node_fs_promises__rspack_import_1.lstat)(path);
21838
+ try {
21839
+ await privateDirectory(directory);
21840
+ } catch (error) {
21841
+ if (error && (error.code === 'ENOENT' || /no such file|ENOENT/i.test(String(error.message)))) {
21842
+ throw Error(absentClaudeChannelMessage(path, directory));
21843
+ }
21844
+ throw error;
21845
+ }
21846
+ let info;
21847
+ try {
21848
+ info = await (0, node_fs_promises__rspack_import_1.lstat)(path);
21849
+ } catch (error) {
21850
+ if (error && error.code === 'ENOENT') throw Error(absentClaudeChannelMessage(path, directory));
21851
+ throw error;
21852
+ }
21706
21853
  if (!info.isSocket() || info.uid !== process.getuid() || info.mode & 63) throw Error('Claude channel socket is not private to this user');
21707
21854
  return new Promise((resolve, reject)=>{
21708
21855
  const socket = (0, node_net__rspack_import_2.connect)(path);
@@ -21752,7 +21899,8 @@ var __webpack_modules__ = {
21752
21899
  var _package_json__rspack_import_6 = __webpack_require__("./package.json");
21753
21900
  var _codex_contract_js__rspack_import_7 = __webpack_require__("./src/core/codex/contract.js");
21754
21901
  var _desktop_shim_js__rspack_import_8 = __webpack_require__("./src/core/desktop-shim.js");
21755
- const PINNED_CODEX_VERSION = "0.154.0";
21902
+ var _user_machine_guidance_js__rspack_import_9 = __webpack_require__("./src/core/user-machine-guidance.js");
21903
+ const PINNED_CODEX_VERSION = "0.158.0";
21756
21904
  const UPSTREAM_DESKTOP_ISSUES = [
21757
21905
  "https://github.com/openai/codex/issues/41014",
21758
21906
  "https://github.com/openai/codex/issues/41112"
@@ -21785,20 +21933,34 @@ var __webpack_modules__ = {
21785
21933
  function singleLine(text) {
21786
21934
  return stripTerminalControls(text).replace(/[\t\n\r\u2028\u2029]+/g, " ");
21787
21935
  }
21788
- function unreachableMessage(path, desktopAttached = "unknown") {
21936
+ function boxUnreachableMessage(path) {
21937
+ return [
21938
+ "No Codex app-server control socket at " + path + ".",
21939
+ _user_machine_guidance_js__rspack_import_9.M
21940
+ ].join("\n");
21941
+ }
21942
+ function unreachableMessage(path, desktopAttached = "unknown", env = process.env) {
21943
+ if ((0, _user_machine_guidance_js__rspack_import_9.R)({
21944
+ path,
21945
+ env,
21946
+ home: env.HOME || (0, node_os__rspack_import_3.homedir)()
21947
+ })) {
21948
+ return boxUnreachableMessage(path);
21949
+ }
21789
21950
  if (desktopAttached === "private-stdio") {
21790
21951
  return [
21791
21952
  "ChatGPT Desktop is running its private stdio app-server, which external clients cannot reach",
21792
21953
  "(" + UPSTREAM_DESKTOP_ISSUES.join(", ") + ").",
21793
- "No Codex app-server control socket at " + path + ": start a managed standalone daemon with `codex app-server daemon start`.",
21794
- "gbot codex targets daemon-managed threads only."
21954
+ "No Codex app-server control socket at " + path + ": start a managed standalone daemon with `codex app-server daemon start` (or bootstrap).",
21955
+ "gbot codex targets daemon-managed threads only; gbot has no remote transport."
21795
21956
  ].join("\n");
21796
21957
  }
21797
21958
  return [
21798
21959
  "No Codex app-server control socket at " + path + ".",
21799
- "Either no daemon is running (start one with `codex app-server daemon start`),",
21960
+ "Either no daemon is running (start one with `codex app-server daemon start` or bootstrap),",
21800
21961
  "or ChatGPT Desktop is running a private stdio app-server that external clients cannot reach",
21801
21962
  "(" + UPSTREAM_DESKTOP_ISSUES.join(", ") + ").",
21963
+ "Codex must run on the same machine as gbot. Set CODEX_APP_SERVER_SOCK to an existing local control socket if it is elsewhere; gbot has no remote transport.",
21802
21964
  "gbot codex targets daemon-managed threads only."
21803
21965
  ].join("\n");
21804
21966
  }
@@ -22442,6 +22604,47 @@ var __webpack_modules__ = {
22442
22604
  };
22443
22605
  }
22444
22606
  const openSession = openCodexSession;
22607
+ async function startCodexThread({ cwd, expectedCwd, model, effort, message, env = process.env, signal } = {}) {
22608
+ validateModelEffort(model, effort);
22609
+ if (typeof cwd !== "string" || !cwd.trim()) throw new RangeError("--cwd is required for a new Codex thread");
22610
+ const resolvedCwd = (0, node_fs__rspack_import_1.realpathSync)(cwd);
22611
+ if (expectedCwd !== undefined && (0, node_fs__rspack_import_1.realpathSync)(expectedCwd) !== resolvedCwd) throw new RangeError("New Codex thread cwd does not match expectedCwd");
22612
+ if (message !== undefined && (typeof message !== "string" || !message.trim())) throw new RangeError("Message must contain text");
22613
+ const { client } = await openSession(env, {
22614
+ signal
22615
+ });
22616
+ let threadId, started;
22617
+ try {
22618
+ started = await client.request("thread/start", {
22619
+ cwd: resolvedCwd,
22620
+ ...model ? {
22621
+ model
22622
+ } : {},
22623
+ ...effort ? {
22624
+ config: {
22625
+ model_reasoning_effort: effort
22626
+ }
22627
+ } : {}
22628
+ });
22629
+ threadId = started?.thread?.id;
22630
+ if (typeof threadId !== "string" || !ID_PATTERN.test(threadId)) throw new CodexProtocolError("thread/start", "missing `thread.id`");
22631
+ } finally{
22632
+ client.close();
22633
+ }
22634
+ if (message === undefined) return {
22635
+ threadId,
22636
+ cwd: resolvedCwd,
22637
+ model: started.model ?? model,
22638
+ exitCode: 0
22639
+ };
22640
+ return await sendToCodexThread(threadId, message, {
22641
+ env,
22642
+ expectedCwd: resolvedCwd,
22643
+ model,
22644
+ effort,
22645
+ signal
22646
+ });
22647
+ }
22445
22648
  const CODEX_VERSION_PROBE_TIMEOUT_MS = 3000;
22446
22649
  function probeLocalCodexVersion(timeoutMs = CODEX_VERSION_PROBE_TIMEOUT_MS) {
22447
22650
  const out = (0, node_child_process__rspack_import_5.spawnSync)("codex", [
@@ -22531,7 +22734,7 @@ var __webpack_modules__ = {
22531
22734
  session = await openSession(env);
22532
22735
  } catch (err) {
22533
22736
  if (err instanceof CodexRouteError) {
22534
- const message = err.mode === "socket-absent" ? unreachableMessage(path, desktopAttached) : err.message;
22737
+ const message = err.mode === "socket-absent" ? unreachableMessage(path, desktopAttached, env) : err.message;
22535
22738
  return (0, _codex_contract_js__rspack_import_7.AQ)({
22536
22739
  ...base,
22537
22740
  reachable: false,
@@ -22740,7 +22943,7 @@ var __webpack_modules__ = {
22740
22943
  }
22741
22944
  function requireExperimental(env, what) {
22742
22945
  if (experimentalEnabled(env)) return;
22743
- throw new CodexSendError(what + " uses Codex's experimental app-server API (thread/queue/*), which is off by default. " + "Set GROK_BOT_CODEX_EXPERIMENTAL=1 to opt in; method names are pinned to Codex " + PINNED_CODEX_VERSION + ".", {
22946
+ throw new CodexSendError(what + " needs thread/queue/add, which is experimental and absent from Codex " + PINNED_CODEX_VERSION + "'s stable API. " + "Use --when-busy steer with an expected turn ID, wait until the thread is idle, or opt in with GROK_BOT_CODEX_EXPERIMENTAL=1 on a Codex daemon that supports the experimental queue API.", {
22744
22947
  delivery: "rejected",
22745
22948
  reason: "experimental-disabled"
22746
22949
  });
@@ -22748,7 +22951,7 @@ var __webpack_modules__ = {
22748
22951
  function unsupportedOrRpc(err, method, threadId, envelope, turnId) {
22749
22952
  const guarded = method === "turn/steer";
22750
22953
  if (err instanceof CodexRpcError && err.rpc && err.rpc.code === -32601) {
22751
- return new CodexSendError("Codex app-server does not offer " + method + " (daemon predates it, or experimentalApi was not granted). " + (guarded ? "Upgrade Codex before retrying guarded steering." : "Upgrade Codex or send without --when-busy queue."), {
22954
+ return new CodexSendError("Codex app-server does not offer " + method + " (daemon predates it, or experimentalApi was not granted). " + (guarded ? "Upgrade Codex before retrying guarded steering." : "Use --when-busy steer with an expected turn ID, wait for idle, or use a Codex daemon with experimental queue support and GROK_BOT_CODEX_EXPERIMENTAL=1."), {
22752
22955
  delivery: "rejected",
22753
22956
  reason: "unsupported",
22754
22957
  threadId,
@@ -22805,7 +23008,7 @@ var __webpack_modules__ = {
22805
23008
  }
22806
23009
  async function sendToCodexThread(threadId, text, { env = process.env, envelope = buildEnvelope({
22807
23010
  env
22808
- }), whenBusy = "reject", session, expectedTurnId, expectedCwd, signal } = {}) {
23011
+ }), whenBusy = "reject", session, expectedTurnId, expectedCwd, model, effort, signal } = {}) {
22809
23012
  try {
22810
23013
  const receipt = await sendToCodexThreadInner(threadId, text, {
22811
23014
  env,
@@ -22814,6 +23017,8 @@ var __webpack_modules__ = {
22814
23017
  session,
22815
23018
  expectedTurnId,
22816
23019
  expectedCwd,
23020
+ model,
23021
+ effort,
22817
23022
  signal
22818
23023
  });
22819
23024
  return (0, _codex_contract_js__rspack_import_7.Dz)(receipt);
@@ -22825,7 +23030,19 @@ var __webpack_modules__ = {
22825
23030
  return (0, _codex_contract_js__rspack_import_7.DG)(err);
22826
23031
  }
22827
23032
  }
22828
- async function sendToCodexThreadInner(threadId, text, { env, envelope, whenBusy, session, expectedTurnId, expectedCwd, signal }) {
23033
+ function validateModelEffort(model, effort) {
23034
+ if (model !== undefined && (typeof model !== "string" || !/^[A-Za-z0-9][A-Za-z0-9._:/-]{0,127}$/.test(model))) throw new RangeError("--model must be a nonempty model ID");
23035
+ if (effort !== undefined && ![
23036
+ "none",
23037
+ "minimal",
23038
+ "low",
23039
+ "medium",
23040
+ "high",
23041
+ "xhigh"
23042
+ ].includes(effort)) throw new RangeError("--effort must be none, minimal, low, medium, high, or xhigh");
23043
+ }
23044
+ async function sendToCodexThreadInner(threadId, text, { env, envelope, whenBusy, session, expectedTurnId, expectedCwd, model, effort, signal }) {
23045
+ validateModelEffort(model, effort);
22829
23046
  if (![
22830
23047
  "reject",
22831
23048
  "queue",
@@ -22871,7 +23088,15 @@ var __webpack_modules__ = {
22871
23088
  try {
22872
23089
  resumed = await client.request("thread/resume", {
22873
23090
  threadId,
22874
- excludeTurns: true
23091
+ excludeTurns: true,
23092
+ ...model ? {
23093
+ model
23094
+ } : {},
23095
+ ...effort ? {
23096
+ config: {
23097
+ model_reasoning_effort: effort
23098
+ }
23099
+ } : {}
22875
23100
  });
22876
23101
  } catch (err) {
22877
23102
  assertNotCancelled();
@@ -23004,7 +23229,13 @@ var __webpack_modules__ = {
23004
23229
  }
23005
23230
  ],
23006
23231
  clientUserMessageId: envelope.messageId,
23007
- turnTrigger: "gbot"
23232
+ turnTrigger: "gbot",
23233
+ ...model ? {
23234
+ model
23235
+ } : {},
23236
+ ...effort ? {
23237
+ effort
23238
+ } : {}
23008
23239
  });
23009
23240
  } catch (err) {
23010
23241
  if (err instanceof CodexSendError) throw err;
@@ -23063,6 +23294,7 @@ var __webpack_modules__ = {
23063
23294
  Bt: ()=>listCodexQueue,
23064
23295
  MU: ()=>codexStatus,
23065
23296
  Mr: ()=>withEnvelopeHeader,
23297
+ QC: ()=>startCodexThread,
23066
23298
  X$: ()=>listCodexThreads1,
23067
23299
  ZS: ()=>sendToCodexThread,
23068
23300
  e0: ()=>experimentalEnabled,
@@ -23279,10 +23511,10 @@ var __webpack_modules__ = {
23279
23511
  ];
23280
23512
  if (afterMessageId !== undefined) boundedInteger(anchors.length, 200, 'afterMessageId count');
23281
23513
  for (const anchor of anchors)conversationId(anchor, 'afterMessageId');
23282
- boundedInteger(timeoutMs, 600000, 'timeoutMs');
23514
+ boundedInteger(timeoutMs, 7200000, 'timeoutMs');
23283
23515
  boundedInteger(maxOutputBytes, BUDGET, 'maxOutputBytes');
23284
23516
  if (waitSignal !== undefined && !(waitSignal instanceof AbortSignal)) throw new TypeError('signal must be an AbortSignal');
23285
- let done = false, status = acceptedTurns.has(turnId) ? 'inProgress' : undefined, error, historyError, itemBytes = 0, truncated = overflow;
23517
+ let done = false, status = acceptedTurns.has(turnId) ? 'inProgress' : undefined, error, historyError, itemBytes = 0, truncated = false;
23286
23518
  const items = new Map();
23287
23519
  const add = (item)=>{
23288
23520
  if (!item || typeof item.id !== 'string' || typeof item.type !== 'string') throw new Error('Invalid history item');
@@ -23329,6 +23561,7 @@ var __webpack_modules__ = {
23329
23561
  };
23330
23562
  const result = (state, detail)=>{
23331
23563
  const interactions = scan();
23564
+ const overflowUncertain = state === 'unknown' && /Notification coverage overflow/.test(detail ?? '');
23332
23565
  const candidates = [
23333
23566
  ...items.values()
23334
23567
  ].map((x)=>x.item);
@@ -23337,7 +23570,7 @@ var __webpack_modules__ = {
23337
23570
  const reply = {
23338
23571
  text: '',
23339
23572
  items: [],
23340
- truncated: truncated || overflow
23573
+ truncated: truncated || overflowUncertain
23341
23574
  };
23342
23575
  for (const item of selected){
23343
23576
  const text = reply.text ? `${reply.text}\n${item.text}` : item.text;
@@ -23370,7 +23603,7 @@ var __webpack_modules__ = {
23370
23603
  interactions
23371
23604
  };
23372
23605
  };
23373
- let timer, notify;
23606
+ let timer, pollTimer, notify;
23374
23607
  const abortSignals = [
23375
23608
  signal,
23376
23609
  waitSignal
@@ -23386,10 +23619,18 @@ var __webpack_modules__ = {
23386
23619
  'Codex connection closed'
23387
23620
  ]);
23388
23621
  };
23389
- timer = setTimeout(()=>resolve([
23622
+ timer = setTimeout(()=>resolve(overflow ? [
23623
+ 'unknown',
23624
+ 'Notification coverage overflow; pending interaction status is uncertain'
23625
+ ] : [
23390
23626
  'timeout',
23391
23627
  'Observation deadline reached'
23392
23628
  ]), timeoutMs);
23629
+ pollTimer = setInterval(()=>{
23630
+ for (const listener of [
23631
+ ...wake
23632
+ ])listener();
23633
+ }, 2000);
23393
23634
  for (const s of abortSignals)s.addEventListener('abort', notify, {
23394
23635
  once: true
23395
23636
  });
@@ -23460,19 +23701,51 @@ var __webpack_modules__ = {
23460
23701
  historyError
23461
23702
  ];
23462
23703
  }
23704
+ let lastPoll = 0;
23463
23705
  while(!done){
23464
23706
  const interactions = scan();
23465
23707
  if (terminal(status)) return [
23466
23708
  status,
23467
23709
  error ?? historyError
23468
23710
  ];
23469
- if (historyError || overflow) return [
23711
+ if (historyError) return [
23470
23712
  'unknown',
23471
- historyError ?? 'Notification coverage overflow'
23713
+ historyError
23472
23714
  ];
23473
23715
  if (interactions.length) return [
23474
23716
  'waiting-for-input'
23475
23717
  ];
23718
+ if (Date.now() - lastPoll >= 2000) {
23719
+ lastPoll = Date.now();
23720
+ try {
23721
+ await visitCodexHistory(session, threadId, 'thread/turns/list', {}, (data)=>{
23722
+ const turn = data.find((t)=>t?.id === turnId);
23723
+ if (!turn) return false;
23724
+ if (terminal(turn.status)) {
23725
+ status = turn.status;
23726
+ error = turn.error;
23727
+ }
23728
+ return true;
23729
+ }, {
23730
+ stopped: ()=>done
23731
+ });
23732
+ if (terminal(status)) {
23733
+ await visitCodexHistory(session, threadId, 'thread/items/list', {
23734
+ turnId,
23735
+ sortDirection: 'asc'
23736
+ }, (data)=>{
23737
+ for (const row of data)if (row?.turnId === turnId && row.item) add(row.item);
23738
+ return false;
23739
+ }, {
23740
+ stopped: ()=>done
23741
+ });
23742
+ continue;
23743
+ }
23744
+ } catch (err) {
23745
+ historyError = err.message;
23746
+ truncated = true;
23747
+ }
23748
+ }
23476
23749
  await new Promise((resolve)=>{
23477
23750
  const listener = ()=>{
23478
23751
  wake.delete(listener);
@@ -23495,6 +23768,7 @@ var __webpack_modules__ = {
23495
23768
  } finally{
23496
23769
  done = true;
23497
23770
  clearTimeout(timer);
23771
+ clearInterval(pollTimer);
23498
23772
  wake.delete(notify);
23499
23773
  for (const s of abortSignals)s.removeEventListener('abort', notify);
23500
23774
  for (const listener of [
@@ -23542,7 +23816,7 @@ var __webpack_modules__ = {
23542
23816
  close,
23543
23817
  async send (text, { envelope = (0, _codex_bridge_js__rspack_import_2.nq)({
23544
23818
  env
23545
- }), whenBusy = 'reject', expectedTurnId, signal: sendSignal } = {}) {
23819
+ }), whenBusy = 'reject', expectedTurnId, model, effort, signal: sendSignal } = {}) {
23546
23820
  if (closed) return (0, _contract_js__rspack_import_0.DG)(Object.assign(new Error('Conversation closed'), {
23547
23821
  delivery: 'rejected',
23548
23822
  reason: 'closed',
@@ -23561,6 +23835,8 @@ var __webpack_modules__ = {
23561
23835
  expectedTurnId,
23562
23836
  session,
23563
23837
  expectedCwd,
23838
+ model,
23839
+ effort,
23564
23840
  signal: submissionSignal
23565
23841
  });
23566
23842
  if (receipt.delivery === 'accepted' && receipt.turnId) {
@@ -25812,9 +26088,30 @@ ts() { date -u +%Y-%m-%dT%H:%M:%SZ; }
25812
26088
  fp: ()=>redactSecrets
25813
26089
  });
25814
26090
  },
26091
+ "./src/core/user-machine-guidance.js" (__unused_rspack___webpack_module__, __webpack_exports__, __webpack_require__) {
26092
+ const USER_MACHINE_CODEX_CLAUDE_GUIDANCE = [
26093
+ "Codex and Claude sessions live on the user's registered machines (for example their Linux desktop or Mac), not on the Grok Bot agent box (/home/box).",
26094
+ "Codex must run on the same machine as gbot. Set CODEX_APP_SERVER_SOCK to an existing local control socket, or use $CODEX_HOME/app-server-control/app-server-control.sock. There is no remote transport.",
26095
+ "When running on the box (HOME=/home/box), do not call codex_* or claude_send there. Run the gbot CLI on the user's machine through Grok Bot Shell with a machineId (the host's machine-targeted shell).",
26096
+ "On that machine, provide the socket with `codex app-server daemon start` (or bootstrap). Auth stays with each machine's native Codex or Claude login; gbot does not store or export credentials."
26097
+ ].join("\n");
26098
+ function looksLikeGrokBotBox({ path = "", env = process.env, home = env.HOME || "" } = {}) {
26099
+ const values = [
26100
+ home,
26101
+ env.HOME,
26102
+ path
26103
+ ].filter((value)=>value != null && value !== "").map(String);
26104
+ return values.some((value)=>value === "/home/box" || value.startsWith("/home/box/"));
26105
+ }
26106
+ __webpack_require__.d(__webpack_exports__, {
26107
+ R: ()=>looksLikeGrokBotBox
26108
+ }, {
26109
+ M: USER_MACHINE_CODEX_CLAUDE_GUIDANCE
26110
+ });
26111
+ },
25815
26112
  "./package.json" (module) {
25816
26113
  module.exports = {
25817
- "rE": "0.10.0"
26114
+ "rE": "0.10.2"
25818
26115
  };
25819
26116
  }
25820
26117
  };
@@ -25867,9 +26164,9 @@ function __webpack_require__(moduleId) {
25867
26164
  var __webpack_exports__ = {};
25868
26165
  var node_worker_threads__rspack_import_0 = __webpack_require__("node:worker_threads");
25869
26166
  var react__rspack_import_1 = __webpack_require__("./node_modules/react/react.react-server.js");
25870
- var _agent_bundle_runtime_flight_server__rspack_import_41 = __webpack_require__("./node_modules/@agent-bundle/runtime/dist/flight/server.js");
25871
- var _agent_bundle_runtime__rspack_import_39 = __webpack_require__("./node_modules/@agent-bundle/runtime/dist/49.js");
25872
- var _agent_bundle_runtime__rspack_import_40 = __webpack_require__("./node_modules/@agent-bundle/runtime/dist/736.js");
26167
+ var _agent_bundle_runtime_flight_server__rspack_import_42 = __webpack_require__("./node_modules/@agent-bundle/runtime/dist/flight/server.js");
26168
+ var _agent_bundle_runtime__rspack_import_40 = __webpack_require__("./node_modules/@agent-bundle/runtime/dist/49.js");
26169
+ var _agent_bundle_runtime__rspack_import_41 = __webpack_require__("./node_modules/@agent-bundle/runtime/dist/736.js");
25873
26170
  var node_url__rspack_import_2 = __webpack_require__("node:url");
25874
26171
  var _src_cli_approvals_list_tsx__rspack_import_3 = __webpack_require__("./src/cli/approvals/list.tsx");
25875
26172
  var _src_cli_approvals_respond_tsx__rspack_import_4 = __webpack_require__("./src/cli/approvals/respond.tsx");
@@ -25886,27 +26183,28 @@ var _src_cli_codex_bridge_status_tsx__rspack_import_14 = __webpack_require__("./
25886
26183
  var _src_cli_codex_bridge_stop_tsx__rspack_import_15 = __webpack_require__("./src/cli/codex/bridge/stop.tsx");
25887
26184
  var _src_cli_codex_desktop_shim_tsx__rspack_import_16 = __webpack_require__("./src/cli/codex/desktop-shim.tsx");
25888
26185
  var _src_cli_codex_list_threads_tsx__rspack_import_17 = __webpack_require__("./src/cli/codex/list-threads.tsx");
25889
- var _src_cli_codex_queue_tsx__rspack_import_18 = __webpack_require__("./src/cli/codex/queue.tsx");
25890
- var _src_cli_codex_send_tsx__rspack_import_19 = __webpack_require__("./src/cli/codex/send.tsx");
25891
- var _src_cli_codex_status_tsx__rspack_import_20 = __webpack_require__("./src/cli/codex/status.tsx");
25892
- var _src_cli_codex_wait_tsx__rspack_import_21 = __webpack_require__("./src/cli/codex/wait.tsx");
25893
- var _src_cli_codex_watch_tsx__rspack_import_22 = __webpack_require__("./src/cli/codex/watch.tsx");
25894
- var _src_cli_doctor_tsx__rspack_import_23 = __webpack_require__("./src/cli/doctor.tsx");
25895
- var _src_cli_groups_add_tsx__rspack_import_24 = __webpack_require__("./src/cli/groups/add.tsx");
25896
- var _src_cli_groups_create_tsx__rspack_import_25 = __webpack_require__("./src/cli/groups/create.tsx");
25897
- var _src_cli_groups_delete_tsx__rspack_import_26 = __webpack_require__("./src/cli/groups/delete.tsx");
25898
- var _src_cli_groups_get_tsx__rspack_import_27 = __webpack_require__("./src/cli/groups/get.tsx");
25899
- var _src_cli_groups_list_tsx__rspack_import_28 = __webpack_require__("./src/cli/groups/list.tsx");
25900
- var _src_cli_groups_members_tsx__rspack_import_29 = __webpack_require__("./src/cli/groups/members.tsx");
25901
- var _src_cli_groups_remove_tsx__rspack_import_30 = __webpack_require__("./src/cli/groups/remove.tsx");
25902
- var _src_cli_groups_set_tsx__rspack_import_31 = __webpack_require__("./src/cli/groups/set.tsx");
25903
- var _src_cli_groups_update_tsx__rspack_import_32 = __webpack_require__("./src/cli/groups/update.tsx");
25904
- var _src_cli_history_tsx__rspack_import_33 = __webpack_require__("./src/cli/history.tsx");
25905
- var _src_cli_send_tsx__rspack_import_34 = __webpack_require__("./src/cli/send.tsx");
25906
- var _src_cli_skills_add_tsx__rspack_import_35 = __webpack_require__("./src/cli/skills/add.tsx");
25907
- var _src_cli_skills_list_tsx__rspack_import_36 = __webpack_require__("./src/cli/skills/list.tsx");
25908
- var _src_cli_skills_remove_tsx__rspack_import_37 = __webpack_require__("./src/cli/skills/remove.tsx");
25909
- var _src_cli_thread_tsx__rspack_import_38 = __webpack_require__("./src/cli/thread.tsx");
26186
+ var _src_cli_codex_new_tsx__rspack_import_18 = __webpack_require__("./src/cli/codex/new.tsx");
26187
+ var _src_cli_codex_queue_tsx__rspack_import_19 = __webpack_require__("./src/cli/codex/queue.tsx");
26188
+ var _src_cli_codex_send_tsx__rspack_import_20 = __webpack_require__("./src/cli/codex/send.tsx");
26189
+ var _src_cli_codex_status_tsx__rspack_import_21 = __webpack_require__("./src/cli/codex/status.tsx");
26190
+ var _src_cli_codex_wait_tsx__rspack_import_22 = __webpack_require__("./src/cli/codex/wait.tsx");
26191
+ var _src_cli_codex_watch_tsx__rspack_import_23 = __webpack_require__("./src/cli/codex/watch.tsx");
26192
+ var _src_cli_doctor_tsx__rspack_import_24 = __webpack_require__("./src/cli/doctor.tsx");
26193
+ var _src_cli_groups_add_tsx__rspack_import_25 = __webpack_require__("./src/cli/groups/add.tsx");
26194
+ var _src_cli_groups_create_tsx__rspack_import_26 = __webpack_require__("./src/cli/groups/create.tsx");
26195
+ var _src_cli_groups_delete_tsx__rspack_import_27 = __webpack_require__("./src/cli/groups/delete.tsx");
26196
+ var _src_cli_groups_get_tsx__rspack_import_28 = __webpack_require__("./src/cli/groups/get.tsx");
26197
+ var _src_cli_groups_list_tsx__rspack_import_29 = __webpack_require__("./src/cli/groups/list.tsx");
26198
+ var _src_cli_groups_members_tsx__rspack_import_30 = __webpack_require__("./src/cli/groups/members.tsx");
26199
+ var _src_cli_groups_remove_tsx__rspack_import_31 = __webpack_require__("./src/cli/groups/remove.tsx");
26200
+ var _src_cli_groups_set_tsx__rspack_import_32 = __webpack_require__("./src/cli/groups/set.tsx");
26201
+ var _src_cli_groups_update_tsx__rspack_import_33 = __webpack_require__("./src/cli/groups/update.tsx");
26202
+ var _src_cli_history_tsx__rspack_import_34 = __webpack_require__("./src/cli/history.tsx");
26203
+ var _src_cli_send_tsx__rspack_import_35 = __webpack_require__("./src/cli/send.tsx");
26204
+ var _src_cli_skills_add_tsx__rspack_import_36 = __webpack_require__("./src/cli/skills/add.tsx");
26205
+ var _src_cli_skills_list_tsx__rspack_import_37 = __webpack_require__("./src/cli/skills/list.tsx");
26206
+ var _src_cli_skills_remove_tsx__rspack_import_38 = __webpack_require__("./src/cli/skills/remove.tsx");
26207
+ var _src_cli_thread_tsx__rspack_import_39 = __webpack_require__("./src/cli/thread.tsx");
25910
26208
  const route0 = Object.assign({}, Reflect.get(_src_cli_approvals_list_tsx__rspack_import_3, 'default'), _src_cli_approvals_list_tsx__rspack_import_3);
25911
26209
  const route1 = Object.assign({}, Reflect.get(_src_cli_approvals_respond_tsx__rspack_import_4, 'default'), _src_cli_approvals_respond_tsx__rspack_import_4);
25912
26210
  const route2 = Object.assign({}, Reflect.get(_src_cli_bots_create_tsx__rspack_import_5, 'default'), _src_cli_bots_create_tsx__rspack_import_5);
@@ -25922,28 +26220,29 @@ const route11 = Object.assign({}, Reflect.get(_src_cli_codex_bridge_status_tsx__
25922
26220
  const route12 = Object.assign({}, Reflect.get(_src_cli_codex_bridge_stop_tsx__rspack_import_15, 'default'), _src_cli_codex_bridge_stop_tsx__rspack_import_15);
25923
26221
  const route13 = Object.assign({}, Reflect.get(_src_cli_codex_desktop_shim_tsx__rspack_import_16, 'default'), _src_cli_codex_desktop_shim_tsx__rspack_import_16);
25924
26222
  const route14 = Object.assign({}, Reflect.get(_src_cli_codex_list_threads_tsx__rspack_import_17, 'default'), _src_cli_codex_list_threads_tsx__rspack_import_17);
25925
- const route15 = Object.assign({}, Reflect.get(_src_cli_codex_queue_tsx__rspack_import_18, 'default'), _src_cli_codex_queue_tsx__rspack_import_18);
25926
- const route16 = Object.assign({}, Reflect.get(_src_cli_codex_send_tsx__rspack_import_19, 'default'), _src_cli_codex_send_tsx__rspack_import_19);
25927
- const route17 = Object.assign({}, Reflect.get(_src_cli_codex_status_tsx__rspack_import_20, 'default'), _src_cli_codex_status_tsx__rspack_import_20);
25928
- const route18 = Object.assign({}, Reflect.get(_src_cli_codex_wait_tsx__rspack_import_21, 'default'), _src_cli_codex_wait_tsx__rspack_import_21);
25929
- const route19 = Object.assign({}, Reflect.get(_src_cli_codex_watch_tsx__rspack_import_22, 'default'), _src_cli_codex_watch_tsx__rspack_import_22);
25930
- const route20 = Object.assign({}, Reflect.get(_src_cli_doctor_tsx__rspack_import_23, 'default'), _src_cli_doctor_tsx__rspack_import_23);
25931
- const route21 = Object.assign({}, Reflect.get(_src_cli_groups_add_tsx__rspack_import_24, 'default'), _src_cli_groups_add_tsx__rspack_import_24);
25932
- const route22 = Object.assign({}, Reflect.get(_src_cli_groups_create_tsx__rspack_import_25, 'default'), _src_cli_groups_create_tsx__rspack_import_25);
25933
- const route23 = Object.assign({}, Reflect.get(_src_cli_groups_delete_tsx__rspack_import_26, 'default'), _src_cli_groups_delete_tsx__rspack_import_26);
25934
- const route24 = Object.assign({}, Reflect.get(_src_cli_groups_get_tsx__rspack_import_27, 'default'), _src_cli_groups_get_tsx__rspack_import_27);
25935
- const route25 = Object.assign({}, Reflect.get(_src_cli_groups_list_tsx__rspack_import_28, 'default'), _src_cli_groups_list_tsx__rspack_import_28);
25936
- const route26 = Object.assign({}, Reflect.get(_src_cli_groups_members_tsx__rspack_import_29, 'default'), _src_cli_groups_members_tsx__rspack_import_29);
25937
- const route27 = Object.assign({}, Reflect.get(_src_cli_groups_remove_tsx__rspack_import_30, 'default'), _src_cli_groups_remove_tsx__rspack_import_30);
25938
- const route28 = Object.assign({}, Reflect.get(_src_cli_groups_set_tsx__rspack_import_31, 'default'), _src_cli_groups_set_tsx__rspack_import_31);
25939
- const route29 = Object.assign({}, Reflect.get(_src_cli_groups_update_tsx__rspack_import_32, 'default'), _src_cli_groups_update_tsx__rspack_import_32);
25940
- const route30 = Object.assign({}, Reflect.get(_src_cli_history_tsx__rspack_import_33, 'default'), _src_cli_history_tsx__rspack_import_33);
25941
- const route31 = Object.assign({}, Reflect.get(_src_cli_send_tsx__rspack_import_34, 'default'), _src_cli_send_tsx__rspack_import_34);
25942
- const route32 = Object.assign({}, Reflect.get(_src_cli_skills_add_tsx__rspack_import_35, 'default'), _src_cli_skills_add_tsx__rspack_import_35);
25943
- const route33 = Object.assign({}, Reflect.get(_src_cli_skills_list_tsx__rspack_import_36, 'default'), _src_cli_skills_list_tsx__rspack_import_36);
25944
- const route34 = Object.assign({}, Reflect.get(_src_cli_skills_remove_tsx__rspack_import_37, 'default'), _src_cli_skills_remove_tsx__rspack_import_37);
25945
- const route35 = Object.assign({}, Reflect.get(_src_cli_thread_tsx__rspack_import_38, 'default'), _src_cli_thread_tsx__rspack_import_38);
25946
- const pluginRoot = (0, _agent_bundle_runtime__rspack_import_39.E7)({
26223
+ const route15 = Object.assign({}, Reflect.get(_src_cli_codex_new_tsx__rspack_import_18, 'default'), _src_cli_codex_new_tsx__rspack_import_18);
26224
+ const route16 = Object.assign({}, Reflect.get(_src_cli_codex_queue_tsx__rspack_import_19, 'default'), _src_cli_codex_queue_tsx__rspack_import_19);
26225
+ const route17 = Object.assign({}, Reflect.get(_src_cli_codex_send_tsx__rspack_import_20, 'default'), _src_cli_codex_send_tsx__rspack_import_20);
26226
+ const route18 = Object.assign({}, Reflect.get(_src_cli_codex_status_tsx__rspack_import_21, 'default'), _src_cli_codex_status_tsx__rspack_import_21);
26227
+ const route19 = Object.assign({}, Reflect.get(_src_cli_codex_wait_tsx__rspack_import_22, 'default'), _src_cli_codex_wait_tsx__rspack_import_22);
26228
+ const route20 = Object.assign({}, Reflect.get(_src_cli_codex_watch_tsx__rspack_import_23, 'default'), _src_cli_codex_watch_tsx__rspack_import_23);
26229
+ const route21 = Object.assign({}, Reflect.get(_src_cli_doctor_tsx__rspack_import_24, 'default'), _src_cli_doctor_tsx__rspack_import_24);
26230
+ const route22 = Object.assign({}, Reflect.get(_src_cli_groups_add_tsx__rspack_import_25, 'default'), _src_cli_groups_add_tsx__rspack_import_25);
26231
+ const route23 = Object.assign({}, Reflect.get(_src_cli_groups_create_tsx__rspack_import_26, 'default'), _src_cli_groups_create_tsx__rspack_import_26);
26232
+ const route24 = Object.assign({}, Reflect.get(_src_cli_groups_delete_tsx__rspack_import_27, 'default'), _src_cli_groups_delete_tsx__rspack_import_27);
26233
+ const route25 = Object.assign({}, Reflect.get(_src_cli_groups_get_tsx__rspack_import_28, 'default'), _src_cli_groups_get_tsx__rspack_import_28);
26234
+ const route26 = Object.assign({}, Reflect.get(_src_cli_groups_list_tsx__rspack_import_29, 'default'), _src_cli_groups_list_tsx__rspack_import_29);
26235
+ const route27 = Object.assign({}, Reflect.get(_src_cli_groups_members_tsx__rspack_import_30, 'default'), _src_cli_groups_members_tsx__rspack_import_30);
26236
+ const route28 = Object.assign({}, Reflect.get(_src_cli_groups_remove_tsx__rspack_import_31, 'default'), _src_cli_groups_remove_tsx__rspack_import_31);
26237
+ const route29 = Object.assign({}, Reflect.get(_src_cli_groups_set_tsx__rspack_import_32, 'default'), _src_cli_groups_set_tsx__rspack_import_32);
26238
+ const route30 = Object.assign({}, Reflect.get(_src_cli_groups_update_tsx__rspack_import_33, 'default'), _src_cli_groups_update_tsx__rspack_import_33);
26239
+ const route31 = Object.assign({}, Reflect.get(_src_cli_history_tsx__rspack_import_34, 'default'), _src_cli_history_tsx__rspack_import_34);
26240
+ const route32 = Object.assign({}, Reflect.get(_src_cli_send_tsx__rspack_import_35, 'default'), _src_cli_send_tsx__rspack_import_35);
26241
+ const route33 = Object.assign({}, Reflect.get(_src_cli_skills_add_tsx__rspack_import_36, 'default'), _src_cli_skills_add_tsx__rspack_import_36);
26242
+ const route34 = Object.assign({}, Reflect.get(_src_cli_skills_list_tsx__rspack_import_37, 'default'), _src_cli_skills_list_tsx__rspack_import_37);
26243
+ const route35 = Object.assign({}, Reflect.get(_src_cli_skills_remove_tsx__rspack_import_38, 'default'), _src_cli_skills_remove_tsx__rspack_import_38);
26244
+ const route36 = Object.assign({}, Reflect.get(_src_cli_thread_tsx__rspack_import_39, 'default'), _src_cli_thread_tsx__rspack_import_39);
26245
+ const pluginRoot = (0, _agent_bundle_runtime__rspack_import_40.E7)({
25947
26246
  fallback: (0, node_url__rspack_import_2.fileURLToPath)(new URL('..', import.meta.url)),
25948
26247
  stateAnchor: 'user-data'
25949
26248
  });
@@ -26049,131 +26348,137 @@ const routes = Object.freeze({
26049
26348
  name: "codex list-threads",
26050
26349
  module: route14
26051
26350
  }),
26351
+ "cli:codex/new": Object.freeze({
26352
+ id: "cli:codex/new",
26353
+ kind: "cli",
26354
+ name: "codex new",
26355
+ module: route15
26356
+ }),
26052
26357
  "cli:codex/queue": Object.freeze({
26053
26358
  id: "cli:codex/queue",
26054
26359
  kind: "cli",
26055
26360
  name: "codex queue",
26056
- module: route15
26361
+ module: route16
26057
26362
  }),
26058
26363
  "cli:codex/send": Object.freeze({
26059
26364
  id: "cli:codex/send",
26060
26365
  kind: "cli",
26061
26366
  name: "codex send",
26062
- module: route16
26367
+ module: route17
26063
26368
  }),
26064
26369
  "cli:codex/status": Object.freeze({
26065
26370
  id: "cli:codex/status",
26066
26371
  kind: "cli",
26067
26372
  name: "codex status",
26068
- module: route17
26373
+ module: route18
26069
26374
  }),
26070
26375
  "cli:codex/wait": Object.freeze({
26071
26376
  id: "cli:codex/wait",
26072
26377
  kind: "cli",
26073
26378
  name: "codex wait",
26074
- module: route18
26379
+ module: route19
26075
26380
  }),
26076
26381
  "cli:codex/watch": Object.freeze({
26077
26382
  id: "cli:codex/watch",
26078
26383
  kind: "cli",
26079
26384
  name: "codex watch",
26080
- module: route19
26385
+ module: route20
26081
26386
  }),
26082
26387
  "cli:doctor": Object.freeze({
26083
26388
  id: "cli:doctor",
26084
26389
  kind: "cli",
26085
26390
  name: "doctor",
26086
- module: route20
26391
+ module: route21
26087
26392
  }),
26088
26393
  "cli:groups/add": Object.freeze({
26089
26394
  id: "cli:groups/add",
26090
26395
  kind: "cli",
26091
26396
  name: "groups add",
26092
- module: route21
26397
+ module: route22
26093
26398
  }),
26094
26399
  "cli:groups/create": Object.freeze({
26095
26400
  id: "cli:groups/create",
26096
26401
  kind: "cli",
26097
26402
  name: "groups create",
26098
- module: route22
26403
+ module: route23
26099
26404
  }),
26100
26405
  "cli:groups/delete": Object.freeze({
26101
26406
  id: "cli:groups/delete",
26102
26407
  kind: "cli",
26103
26408
  name: "groups delete",
26104
- module: route23
26409
+ module: route24
26105
26410
  }),
26106
26411
  "cli:groups/get": Object.freeze({
26107
26412
  id: "cli:groups/get",
26108
26413
  kind: "cli",
26109
26414
  name: "groups get",
26110
- module: route24
26415
+ module: route25
26111
26416
  }),
26112
26417
  "cli:groups/list": Object.freeze({
26113
26418
  id: "cli:groups/list",
26114
26419
  kind: "cli",
26115
26420
  name: "groups list",
26116
- module: route25
26421
+ module: route26
26117
26422
  }),
26118
26423
  "cli:groups/members": Object.freeze({
26119
26424
  id: "cli:groups/members",
26120
26425
  kind: "cli",
26121
26426
  name: "groups members",
26122
- module: route26
26427
+ module: route27
26123
26428
  }),
26124
26429
  "cli:groups/remove": Object.freeze({
26125
26430
  id: "cli:groups/remove",
26126
26431
  kind: "cli",
26127
26432
  name: "groups remove",
26128
- module: route27
26433
+ module: route28
26129
26434
  }),
26130
26435
  "cli:groups/set": Object.freeze({
26131
26436
  id: "cli:groups/set",
26132
26437
  kind: "cli",
26133
26438
  name: "groups set",
26134
- module: route28
26439
+ module: route29
26135
26440
  }),
26136
26441
  "cli:groups/update": Object.freeze({
26137
26442
  id: "cli:groups/update",
26138
26443
  kind: "cli",
26139
26444
  name: "groups update",
26140
- module: route29
26445
+ module: route30
26141
26446
  }),
26142
26447
  "cli:history": Object.freeze({
26143
26448
  id: "cli:history",
26144
26449
  kind: "cli",
26145
26450
  name: "history",
26146
- module: route30
26451
+ module: route31
26147
26452
  }),
26148
26453
  "cli:send": Object.freeze({
26149
26454
  id: "cli:send",
26150
26455
  kind: "cli",
26151
26456
  name: "send",
26152
- module: route31
26457
+ module: route32
26153
26458
  }),
26154
26459
  "cli:skills/add": Object.freeze({
26155
26460
  id: "cli:skills/add",
26156
26461
  kind: "cli",
26157
26462
  name: "skills add",
26158
- module: route32
26463
+ module: route33
26159
26464
  }),
26160
26465
  "cli:skills/list": Object.freeze({
26161
26466
  id: "cli:skills/list",
26162
26467
  kind: "cli",
26163
26468
  name: "skills list",
26164
- module: route33
26469
+ module: route34
26165
26470
  }),
26166
26471
  "cli:skills/remove": Object.freeze({
26167
26472
  id: "cli:skills/remove",
26168
26473
  kind: "cli",
26169
26474
  name: "skills remove",
26170
- module: route34
26475
+ module: route35
26171
26476
  }),
26172
26477
  "cli:thread": Object.freeze({
26173
26478
  id: "cli:thread",
26174
26479
  kind: "cli",
26175
26480
  name: "thread",
26176
- module: route35
26481
+ module: route36
26177
26482
  })
26178
26483
  });
26179
26484
  const requests = new Map();
@@ -26208,18 +26513,18 @@ const render = async (message)=>{
26208
26513
  };
26209
26514
  try {
26210
26515
  const cwd = process.cwd();
26211
- await (0, _agent_bundle_runtime__rspack_import_40.iC)({
26516
+ await (0, _agent_bundle_runtime__rspack_import_41.iC)({
26212
26517
  capabilities: {
26213
- command: (0, _agent_bundle_runtime__rspack_import_40.hU)(),
26214
- filesystem: (0, _agent_bundle_runtime__rspack_import_40.hU)(),
26215
- network: (0, _agent_bundle_runtime__rspack_import_40.hU)(),
26216
- projectRoot: (0, _agent_bundle_runtime__rspack_import_40.qC)({
26518
+ command: (0, _agent_bundle_runtime__rspack_import_41.hU)(),
26519
+ filesystem: (0, _agent_bundle_runtime__rspack_import_41.hU)(),
26520
+ network: (0, _agent_bundle_runtime__rspack_import_41.hU)(),
26521
+ projectRoot: (0, _agent_bundle_runtime__rspack_import_41.qC)({
26217
26522
  root: cwd
26218
26523
  }, 'derived')
26219
26524
  },
26220
- host: (0, _agent_bundle_runtime__rspack_import_40.hU)('unsupported-surface'),
26525
+ host: (0, _agent_bundle_runtime__rspack_import_41.hU)('unsupported-surface'),
26221
26526
  invocation: message.request,
26222
- lineage: (0, _agent_bundle_runtime__rspack_import_40.hU)('unsupported-surface'),
26527
+ lineage: (0, _agent_bundle_runtime__rspack_import_41.hU)('unsupported-surface'),
26223
26528
  plugin: pluginRoot.identity,
26224
26529
  progress: {
26225
26530
  report: async (update)=>{
@@ -26232,8 +26537,8 @@ const render = async (message)=>{
26232
26537
  },
26233
26538
  process: processHit,
26234
26539
  signal: controller.signal,
26235
- terminal: message.terminal === undefined ? (0, _agent_bundle_runtime__rspack_import_40.hU)('not-provided') : (0, _agent_bundle_runtime__rspack_import_40.qC)(message.terminal, 'native'),
26236
- workspace: (0, _agent_bundle_runtime__rspack_import_40.qC)({
26540
+ terminal: message.terminal === undefined ? (0, _agent_bundle_runtime__rspack_import_41.hU)('not-provided') : (0, _agent_bundle_runtime__rspack_import_41.qC)(message.terminal, 'native'),
26541
+ workspace: (0, _agent_bundle_runtime__rspack_import_41.qC)({
26237
26542
  root: cwd
26238
26543
  }, 'derived')
26239
26544
  }, async ()=>{
@@ -26242,7 +26547,7 @@ const render = async (message)=>{
26242
26547
  type: 'observed-render-start'
26243
26548
  });
26244
26549
  const renderStartedAt = performance.now();
26245
- const flight = (0, _agent_bundle_runtime_flight_server__rspack_import_41.y)(composeLayouts(observedRoute, {
26550
+ const flight = (0, _agent_bundle_runtime_flight_server__rspack_import_42.y)(composeLayouts(observedRoute, {
26246
26551
  ...message.props,
26247
26552
  signal: controller.signal
26248
26553
  }, controller.signal), {