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.
package/dist/bin/gbot.mjs CHANGED
@@ -7600,6 +7600,96 @@ var __webpack_modules__ = {
7600
7600
  resultSchema: resultSchema
7601
7601
  });
7602
7602
  },
7603
+ "./src/cli/codex/new.tsx" (__unused_rspack_module, __webpack_exports__, __webpack_require__) {
7604
+ __webpack_require__.r(__webpack_exports__);
7605
+ var react_jsx_runtime__rspack_import_0 = __webpack_require__("./node_modules/react/jsx-runtime.js");
7606
+ var _agent_bundle_runtime__rspack_import_5 = __webpack_require__("./node_modules/@agent-bundle/runtime/dist/506.js");
7607
+ var zod__rspack_import_4 = __webpack_require__("./node_modules/zod/v4/classic/schemas.js");
7608
+ var _core_codex_bridge_js__rspack_import_1 = __webpack_require__("./src/core/codex-bridge.js");
7609
+ var _core_codex_contract_js__rspack_import_2 = __webpack_require__("./src/core/codex/contract.js");
7610
+ var _core_codex_routes_js__rspack_import_3 = __webpack_require__("./src/core/codex/routes.ts");
7611
+ const inputSchema = zod__rspack_import_4.Ikc({
7612
+ cwd: zod__rspack_import_4.YjP().min(1),
7613
+ expectedCwd: zod__rspack_import_4.YjP().min(1).optional(),
7614
+ model: zod__rspack_import_4.YjP().regex(/^[A-Za-z0-9][A-Za-z0-9._:/-]{0,127}$/).optional(),
7615
+ effort: zod__rspack_import_4.k5n([
7616
+ 'none',
7617
+ 'minimal',
7618
+ 'low',
7619
+ 'medium',
7620
+ 'high',
7621
+ 'xhigh'
7622
+ ]).optional(),
7623
+ message: zod__rspack_import_4.YOg(zod__rspack_import_4.YjP()).optional()
7624
+ }).strict();
7625
+ const config = {
7626
+ description: 'Start a new Codex thread in --cwd, optionally with --model, --effort and a message.',
7627
+ exitCode: 'result',
7628
+ positionals: [
7629
+ 'message'
7630
+ ],
7631
+ inputJsonSchema: {
7632
+ type: 'object',
7633
+ additionalProperties: false,
7634
+ properties: {
7635
+ cwd: {
7636
+ type: 'string'
7637
+ },
7638
+ expectedCwd: {
7639
+ type: 'string'
7640
+ },
7641
+ model: {
7642
+ type: 'string'
7643
+ },
7644
+ effort: {
7645
+ type: 'string',
7646
+ enum: [
7647
+ 'none',
7648
+ 'minimal',
7649
+ 'low',
7650
+ 'medium',
7651
+ 'high',
7652
+ 'xhigh'
7653
+ ]
7654
+ },
7655
+ message: {
7656
+ type: 'array',
7657
+ items: {
7658
+ type: 'string'
7659
+ }
7660
+ }
7661
+ },
7662
+ required: [
7663
+ 'cwd'
7664
+ ]
7665
+ }
7666
+ };
7667
+ async function route({ input, signal }) {
7668
+ let out;
7669
+ try {
7670
+ out = await (0, _core_codex_bridge_js__rspack_import_1.QC)({
7671
+ ...input,
7672
+ message: input.message?.join(' ').trim() || undefined,
7673
+ signal
7674
+ });
7675
+ } catch (error) {
7676
+ out = (0, _core_codex_contract_js__rspack_import_2.DG)(error);
7677
+ }
7678
+ return (0, react_jsx_runtime__rspack_import_0.jsx)(_agent_bundle_runtime__rspack_import_5.g.Result, {
7679
+ value: out,
7680
+ children: (0, react_jsx_runtime__rspack_import_0.jsx)(_agent_bundle_runtime__rspack_import_5.g.Text, {
7681
+ children: out.threadId && !('delivery' in out) ? `Started Codex thread ${out.threadId}` : (0, _core_codex_routes_js__rspack_import_3.D6)(out)
7682
+ })
7683
+ });
7684
+ }
7685
+ __webpack_require__.d(__webpack_exports__, {
7686
+ "default": ()=>route,
7687
+ resultSchema: ()=>_core_codex_routes_js__rspack_import_3.FD
7688
+ }, {
7689
+ config: config,
7690
+ inputSchema: inputSchema
7691
+ });
7692
+ },
7603
7693
  "./src/cli/codex/queue.tsx" (__unused_rspack_module, __webpack_exports__, __webpack_require__) {
7604
7694
  __webpack_require__.r(__webpack_exports__);
7605
7695
  var react_jsx_runtime__rspack_import_0 = __webpack_require__("./node_modules/react/jsx-runtime.js");
@@ -7705,7 +7795,7 @@ var __webpack_modules__ = {
7705
7795
  description: 'Send to Codex; acceptance is distinct from completion. Options precede threadId.',
7706
7796
  exitCode: 'result',
7707
7797
  render: {
7708
- maxElapsedMs: 660000
7798
+ maxElapsedMs: 7260000
7709
7799
  },
7710
7800
  positionals: [
7711
7801
  'threadId',
@@ -7730,9 +7820,23 @@ var __webpack_modules__ = {
7730
7820
  expectedCwd: {
7731
7821
  type: 'string'
7732
7822
  },
7823
+ model: {
7824
+ type: 'string'
7825
+ },
7826
+ effort: {
7827
+ type: 'string',
7828
+ enum: [
7829
+ 'none',
7830
+ 'minimal',
7831
+ 'low',
7832
+ 'medium',
7833
+ 'high',
7834
+ 'xhigh'
7835
+ ]
7836
+ },
7733
7837
  timeoutMs: {
7734
7838
  type: 'number',
7735
- description: 'Observation timeout: 1-600000 milliseconds.'
7839
+ description: 'Observation timeout: 1-7200000 milliseconds.'
7736
7840
  },
7737
7841
  correlationId: {
7738
7842
  type: 'string'
@@ -7867,7 +7971,7 @@ var __webpack_modules__ = {
7867
7971
  description: 'Bounded Codex wait observation; never interrupts execution.',
7868
7972
  exitCode: 'result',
7869
7973
  render: {
7870
- maxElapsedMs: 660000
7974
+ maxElapsedMs: 7260000
7871
7975
  },
7872
7976
  positionals: [
7873
7977
  'threadId',
@@ -7885,7 +7989,7 @@ var __webpack_modules__ = {
7885
7989
  },
7886
7990
  "timeoutMs": {
7887
7991
  "type": "number",
7888
- "description": "Observation timeout: 1-600000 milliseconds."
7992
+ "description": "Observation timeout: 1-7200000 milliseconds."
7889
7993
  },
7890
7994
  "turnId": {
7891
7995
  "type": "string"
@@ -9349,13 +9453,22 @@ var __webpack_modules__ = {
9349
9453
  const observationFields = {
9350
9454
  expectedCwd: zod__rspack_import_3.YjP().min(1).optional(),
9351
9455
  threadId: id,
9352
- timeoutMs: zod__rspack_import_3.aig().int().min(1).max(600000).optional()
9456
+ timeoutMs: zod__rspack_import_3.aig().int().min(1).max(7200000).optional()
9353
9457
  };
9354
9458
  const sendFields = {
9355
9459
  ...observationFields,
9356
9460
  correlationId: id.optional(),
9357
9461
  envelope: zod__rspack_import_3.zMY().optional(),
9358
9462
  hop: zod__rspack_import_3.aig().int().min(0).optional(),
9463
+ model: zod__rspack_import_3.YjP().regex(/^[A-Za-z0-9][A-Za-z0-9._:/-]{0,127}$/).optional(),
9464
+ effort: zod__rspack_import_3.k5n([
9465
+ 'none',
9466
+ 'minimal',
9467
+ 'low',
9468
+ 'medium',
9469
+ 'high',
9470
+ 'xhigh'
9471
+ ]).optional(),
9359
9472
  replyTo: id.optional(),
9360
9473
  expectedTurnId: id.optional(),
9361
9474
  whenBusy: zod__rspack_import_3.k5n([
@@ -9377,7 +9490,9 @@ var __webpack_modules__ = {
9377
9490
  maxOutputBytes: zod__rspack_import_3.aig().int().min(1).max(4194304).optional()
9378
9491
  }).strict();
9379
9492
  const watchSchema = zod__rspack_import_3.Ikc({
9380
- ...observationFields,
9493
+ expectedCwd: zod__rspack_import_3.YjP().min(1).optional(),
9494
+ threadId: id,
9495
+ timeoutMs: zod__rspack_import_3.aig().int().min(1).max(600000).optional(),
9381
9496
  maxEvents: zod__rspack_import_3.aig().int().min(1).max(500).default(100)
9382
9497
  }).strict();
9383
9498
  const threadsSchema = zod__rspack_import_3.Ikc({
@@ -9434,6 +9549,8 @@ var __webpack_modules__ = {
9434
9549
  envelope,
9435
9550
  whenBusy: input.whenBusy,
9436
9551
  expectedCwd: input.expectedCwd,
9552
+ model: input.model,
9553
+ effort: input.effort,
9437
9554
  signal
9438
9555
  });
9439
9556
  }
@@ -9446,7 +9563,9 @@ var __webpack_modules__ = {
9446
9563
  receipt = await conversation.send(input.message, {
9447
9564
  envelope,
9448
9565
  whenBusy: input.whenBusy,
9449
- expectedTurnId: input.expectedTurnId
9566
+ expectedTurnId: input.expectedTurnId,
9567
+ model: input.model,
9568
+ effort: input.effort
9450
9569
  });
9451
9570
  if (!input.wait || receipt.delivery !== 'accepted' || !receipt.turnId) return receipt;
9452
9571
  await progress?.(`Accepted message ${receipt.messageId}; observing turn ${receipt.turnId}`);
@@ -9735,7 +9854,9 @@ var __webpack_modules__ = {
9735
9854
  requestId: input.requestId,
9736
9855
  busyPolicy: input.whenBusy,
9737
9856
  hop: input.hop,
9738
- correlationId: input.correlationId
9857
+ correlationId: input.correlationId,
9858
+ model: input.model,
9859
+ effort: input.effort
9739
9860
  }, options(context)));
9740
9861
  }
9741
9862
  __webpack_require__.d(__webpack_exports__, {
@@ -36935,9 +37056,9 @@ var __webpack_modules__ = {
36935
37056
  try {
36936
37057
  var agent_bundle_launch_env_layer__rspack_import_0 = __webpack_require__("./.agent-bundle-virtual/bin-gbot-0.mjs");
36937
37058
  var agent_bundle_cli_entry__rspack_import_1 = __webpack_require__("./node_modules/agent-bundle/dist/cli-entry.js");
36938
- var _agent_bundle_runtime__rspack_import_40 = __webpack_require__("./node_modules/@agent-bundle/runtime/dist/49.js");
36939
- var _agent_bundle_runtime__rspack_import_41 = __webpack_require__("./node_modules/@agent-bundle/runtime/dist/736.js");
36940
- var _agent_bundle_runtime__rspack_import_42 = __webpack_require__("./node_modules/@agent-bundle/runtime/dist/index.js");
37059
+ var _agent_bundle_runtime__rspack_import_41 = __webpack_require__("./node_modules/@agent-bundle/runtime/dist/49.js");
37060
+ var _agent_bundle_runtime__rspack_import_42 = __webpack_require__("./node_modules/@agent-bundle/runtime/dist/736.js");
37061
+ var _agent_bundle_runtime__rspack_import_43 = __webpack_require__("./node_modules/@agent-bundle/runtime/dist/index.js");
36941
37062
  var node_url__rspack_import_2 = __webpack_require__("node:url");
36942
37063
  var node_worker_threads__rspack_import_3 = __webpack_require__("node:worker_threads");
36943
37064
  var _src_cli_approvals_list_tsx__rspack_import_4 = __webpack_require__("./src/cli/approvals/list.tsx");
@@ -36955,27 +37076,28 @@ var __webpack_modules__ = {
36955
37076
  var _src_cli_codex_bridge_stop_tsx__rspack_import_16 = __webpack_require__("./src/cli/codex/bridge/stop.tsx");
36956
37077
  var _src_cli_codex_desktop_shim_tsx__rspack_import_17 = __webpack_require__("./src/cli/codex/desktop-shim.tsx");
36957
37078
  var _src_cli_codex_list_threads_tsx__rspack_import_18 = __webpack_require__("./src/cli/codex/list-threads.tsx");
36958
- var _src_cli_codex_queue_tsx__rspack_import_19 = __webpack_require__("./src/cli/codex/queue.tsx");
36959
- var _src_cli_codex_send_tsx__rspack_import_20 = __webpack_require__("./src/cli/codex/send.tsx");
36960
- var _src_cli_codex_status_tsx__rspack_import_21 = __webpack_require__("./src/cli/codex/status.tsx");
36961
- var _src_cli_codex_wait_tsx__rspack_import_22 = __webpack_require__("./src/cli/codex/wait.tsx");
36962
- var _src_cli_codex_watch_tsx__rspack_import_23 = __webpack_require__("./src/cli/codex/watch.tsx");
36963
- var _src_cli_doctor_tsx__rspack_import_24 = __webpack_require__("./src/cli/doctor.tsx");
36964
- var _src_cli_groups_add_tsx__rspack_import_25 = __webpack_require__("./src/cli/groups/add.tsx");
36965
- var _src_cli_groups_create_tsx__rspack_import_26 = __webpack_require__("./src/cli/groups/create.tsx");
36966
- var _src_cli_groups_delete_tsx__rspack_import_27 = __webpack_require__("./src/cli/groups/delete.tsx");
36967
- var _src_cli_groups_get_tsx__rspack_import_28 = __webpack_require__("./src/cli/groups/get.tsx");
36968
- var _src_cli_groups_list_tsx__rspack_import_29 = __webpack_require__("./src/cli/groups/list.tsx");
36969
- var _src_cli_groups_members_tsx__rspack_import_30 = __webpack_require__("./src/cli/groups/members.tsx");
36970
- var _src_cli_groups_remove_tsx__rspack_import_31 = __webpack_require__("./src/cli/groups/remove.tsx");
36971
- var _src_cli_groups_set_tsx__rspack_import_32 = __webpack_require__("./src/cli/groups/set.tsx");
36972
- var _src_cli_groups_update_tsx__rspack_import_33 = __webpack_require__("./src/cli/groups/update.tsx");
36973
- var _src_cli_history_tsx__rspack_import_34 = __webpack_require__("./src/cli/history.tsx");
36974
- var _src_cli_send_tsx__rspack_import_35 = __webpack_require__("./src/cli/send.tsx");
36975
- var _src_cli_skills_add_tsx__rspack_import_36 = __webpack_require__("./src/cli/skills/add.tsx");
36976
- var _src_cli_skills_list_tsx__rspack_import_37 = __webpack_require__("./src/cli/skills/list.tsx");
36977
- var _src_cli_skills_remove_tsx__rspack_import_38 = __webpack_require__("./src/cli/skills/remove.tsx");
36978
- var _src_cli_thread_tsx__rspack_import_39 = __webpack_require__("./src/cli/thread.tsx");
37079
+ var _src_cli_codex_new_tsx__rspack_import_19 = __webpack_require__("./src/cli/codex/new.tsx");
37080
+ var _src_cli_codex_queue_tsx__rspack_import_20 = __webpack_require__("./src/cli/codex/queue.tsx");
37081
+ var _src_cli_codex_send_tsx__rspack_import_21 = __webpack_require__("./src/cli/codex/send.tsx");
37082
+ var _src_cli_codex_status_tsx__rspack_import_22 = __webpack_require__("./src/cli/codex/status.tsx");
37083
+ var _src_cli_codex_wait_tsx__rspack_import_23 = __webpack_require__("./src/cli/codex/wait.tsx");
37084
+ var _src_cli_codex_watch_tsx__rspack_import_24 = __webpack_require__("./src/cli/codex/watch.tsx");
37085
+ var _src_cli_doctor_tsx__rspack_import_25 = __webpack_require__("./src/cli/doctor.tsx");
37086
+ var _src_cli_groups_add_tsx__rspack_import_26 = __webpack_require__("./src/cli/groups/add.tsx");
37087
+ var _src_cli_groups_create_tsx__rspack_import_27 = __webpack_require__("./src/cli/groups/create.tsx");
37088
+ var _src_cli_groups_delete_tsx__rspack_import_28 = __webpack_require__("./src/cli/groups/delete.tsx");
37089
+ var _src_cli_groups_get_tsx__rspack_import_29 = __webpack_require__("./src/cli/groups/get.tsx");
37090
+ var _src_cli_groups_list_tsx__rspack_import_30 = __webpack_require__("./src/cli/groups/list.tsx");
37091
+ var _src_cli_groups_members_tsx__rspack_import_31 = __webpack_require__("./src/cli/groups/members.tsx");
37092
+ var _src_cli_groups_remove_tsx__rspack_import_32 = __webpack_require__("./src/cli/groups/remove.tsx");
37093
+ var _src_cli_groups_set_tsx__rspack_import_33 = __webpack_require__("./src/cli/groups/set.tsx");
37094
+ var _src_cli_groups_update_tsx__rspack_import_34 = __webpack_require__("./src/cli/groups/update.tsx");
37095
+ var _src_cli_history_tsx__rspack_import_35 = __webpack_require__("./src/cli/history.tsx");
37096
+ var _src_cli_send_tsx__rspack_import_36 = __webpack_require__("./src/cli/send.tsx");
37097
+ var _src_cli_skills_add_tsx__rspack_import_37 = __webpack_require__("./src/cli/skills/add.tsx");
37098
+ var _src_cli_skills_list_tsx__rspack_import_38 = __webpack_require__("./src/cli/skills/list.tsx");
37099
+ var _src_cli_skills_remove_tsx__rspack_import_39 = __webpack_require__("./src/cli/skills/remove.tsx");
37100
+ var _src_cli_thread_tsx__rspack_import_40 = __webpack_require__("./src/cli/thread.tsx");
36979
37101
  const route0 = Object.assign({}, Reflect.get(_src_cli_approvals_list_tsx__rspack_import_4, 'default'), _src_cli_approvals_list_tsx__rspack_import_4);
36980
37102
  const route1 = Object.assign({}, Reflect.get(_src_cli_approvals_respond_tsx__rspack_import_5, 'default'), _src_cli_approvals_respond_tsx__rspack_import_5);
36981
37103
  const route2 = Object.assign({}, Reflect.get(_src_cli_bots_create_tsx__rspack_import_6, 'default'), _src_cli_bots_create_tsx__rspack_import_6);
@@ -36991,28 +37113,29 @@ var __webpack_modules__ = {
36991
37113
  const route12 = Object.assign({}, Reflect.get(_src_cli_codex_bridge_stop_tsx__rspack_import_16, 'default'), _src_cli_codex_bridge_stop_tsx__rspack_import_16);
36992
37114
  const route13 = Object.assign({}, Reflect.get(_src_cli_codex_desktop_shim_tsx__rspack_import_17, 'default'), _src_cli_codex_desktop_shim_tsx__rspack_import_17);
36993
37115
  const route14 = Object.assign({}, Reflect.get(_src_cli_codex_list_threads_tsx__rspack_import_18, 'default'), _src_cli_codex_list_threads_tsx__rspack_import_18);
36994
- const route15 = Object.assign({}, Reflect.get(_src_cli_codex_queue_tsx__rspack_import_19, 'default'), _src_cli_codex_queue_tsx__rspack_import_19);
36995
- const route16 = Object.assign({}, Reflect.get(_src_cli_codex_send_tsx__rspack_import_20, 'default'), _src_cli_codex_send_tsx__rspack_import_20);
36996
- const route17 = Object.assign({}, Reflect.get(_src_cli_codex_status_tsx__rspack_import_21, 'default'), _src_cli_codex_status_tsx__rspack_import_21);
36997
- const route18 = Object.assign({}, Reflect.get(_src_cli_codex_wait_tsx__rspack_import_22, 'default'), _src_cli_codex_wait_tsx__rspack_import_22);
36998
- const route19 = Object.assign({}, Reflect.get(_src_cli_codex_watch_tsx__rspack_import_23, 'default'), _src_cli_codex_watch_tsx__rspack_import_23);
36999
- const route20 = Object.assign({}, Reflect.get(_src_cli_doctor_tsx__rspack_import_24, 'default'), _src_cli_doctor_tsx__rspack_import_24);
37000
- const route21 = Object.assign({}, Reflect.get(_src_cli_groups_add_tsx__rspack_import_25, 'default'), _src_cli_groups_add_tsx__rspack_import_25);
37001
- const route22 = Object.assign({}, Reflect.get(_src_cli_groups_create_tsx__rspack_import_26, 'default'), _src_cli_groups_create_tsx__rspack_import_26);
37002
- const route23 = Object.assign({}, Reflect.get(_src_cli_groups_delete_tsx__rspack_import_27, 'default'), _src_cli_groups_delete_tsx__rspack_import_27);
37003
- const route24 = Object.assign({}, Reflect.get(_src_cli_groups_get_tsx__rspack_import_28, 'default'), _src_cli_groups_get_tsx__rspack_import_28);
37004
- const route25 = Object.assign({}, Reflect.get(_src_cli_groups_list_tsx__rspack_import_29, 'default'), _src_cli_groups_list_tsx__rspack_import_29);
37005
- const route26 = Object.assign({}, Reflect.get(_src_cli_groups_members_tsx__rspack_import_30, 'default'), _src_cli_groups_members_tsx__rspack_import_30);
37006
- const route27 = Object.assign({}, Reflect.get(_src_cli_groups_remove_tsx__rspack_import_31, 'default'), _src_cli_groups_remove_tsx__rspack_import_31);
37007
- const route28 = Object.assign({}, Reflect.get(_src_cli_groups_set_tsx__rspack_import_32, 'default'), _src_cli_groups_set_tsx__rspack_import_32);
37008
- const route29 = Object.assign({}, Reflect.get(_src_cli_groups_update_tsx__rspack_import_33, 'default'), _src_cli_groups_update_tsx__rspack_import_33);
37009
- const route30 = Object.assign({}, Reflect.get(_src_cli_history_tsx__rspack_import_34, 'default'), _src_cli_history_tsx__rspack_import_34);
37010
- const route31 = Object.assign({}, Reflect.get(_src_cli_send_tsx__rspack_import_35, 'default'), _src_cli_send_tsx__rspack_import_35);
37011
- const route32 = Object.assign({}, Reflect.get(_src_cli_skills_add_tsx__rspack_import_36, 'default'), _src_cli_skills_add_tsx__rspack_import_36);
37012
- const route33 = Object.assign({}, Reflect.get(_src_cli_skills_list_tsx__rspack_import_37, 'default'), _src_cli_skills_list_tsx__rspack_import_37);
37013
- const route34 = Object.assign({}, Reflect.get(_src_cli_skills_remove_tsx__rspack_import_38, 'default'), _src_cli_skills_remove_tsx__rspack_import_38);
37014
- const route35 = Object.assign({}, Reflect.get(_src_cli_thread_tsx__rspack_import_39, 'default'), _src_cli_thread_tsx__rspack_import_39);
37015
- const pluginRoot = (0, _agent_bundle_runtime__rspack_import_40.E7)({
37116
+ const route15 = Object.assign({}, Reflect.get(_src_cli_codex_new_tsx__rspack_import_19, 'default'), _src_cli_codex_new_tsx__rspack_import_19);
37117
+ const route16 = Object.assign({}, Reflect.get(_src_cli_codex_queue_tsx__rspack_import_20, 'default'), _src_cli_codex_queue_tsx__rspack_import_20);
37118
+ const route17 = Object.assign({}, Reflect.get(_src_cli_codex_send_tsx__rspack_import_21, 'default'), _src_cli_codex_send_tsx__rspack_import_21);
37119
+ const route18 = Object.assign({}, Reflect.get(_src_cli_codex_status_tsx__rspack_import_22, 'default'), _src_cli_codex_status_tsx__rspack_import_22);
37120
+ const route19 = Object.assign({}, Reflect.get(_src_cli_codex_wait_tsx__rspack_import_23, 'default'), _src_cli_codex_wait_tsx__rspack_import_23);
37121
+ const route20 = Object.assign({}, Reflect.get(_src_cli_codex_watch_tsx__rspack_import_24, 'default'), _src_cli_codex_watch_tsx__rspack_import_24);
37122
+ const route21 = Object.assign({}, Reflect.get(_src_cli_doctor_tsx__rspack_import_25, 'default'), _src_cli_doctor_tsx__rspack_import_25);
37123
+ const route22 = Object.assign({}, Reflect.get(_src_cli_groups_add_tsx__rspack_import_26, 'default'), _src_cli_groups_add_tsx__rspack_import_26);
37124
+ const route23 = Object.assign({}, Reflect.get(_src_cli_groups_create_tsx__rspack_import_27, 'default'), _src_cli_groups_create_tsx__rspack_import_27);
37125
+ const route24 = Object.assign({}, Reflect.get(_src_cli_groups_delete_tsx__rspack_import_28, 'default'), _src_cli_groups_delete_tsx__rspack_import_28);
37126
+ const route25 = Object.assign({}, Reflect.get(_src_cli_groups_get_tsx__rspack_import_29, 'default'), _src_cli_groups_get_tsx__rspack_import_29);
37127
+ const route26 = Object.assign({}, Reflect.get(_src_cli_groups_list_tsx__rspack_import_30, 'default'), _src_cli_groups_list_tsx__rspack_import_30);
37128
+ const route27 = Object.assign({}, Reflect.get(_src_cli_groups_members_tsx__rspack_import_31, 'default'), _src_cli_groups_members_tsx__rspack_import_31);
37129
+ const route28 = Object.assign({}, Reflect.get(_src_cli_groups_remove_tsx__rspack_import_32, 'default'), _src_cli_groups_remove_tsx__rspack_import_32);
37130
+ const route29 = Object.assign({}, Reflect.get(_src_cli_groups_set_tsx__rspack_import_33, 'default'), _src_cli_groups_set_tsx__rspack_import_33);
37131
+ const route30 = Object.assign({}, Reflect.get(_src_cli_groups_update_tsx__rspack_import_34, 'default'), _src_cli_groups_update_tsx__rspack_import_34);
37132
+ const route31 = Object.assign({}, Reflect.get(_src_cli_history_tsx__rspack_import_35, 'default'), _src_cli_history_tsx__rspack_import_35);
37133
+ const route32 = Object.assign({}, Reflect.get(_src_cli_send_tsx__rspack_import_36, 'default'), _src_cli_send_tsx__rspack_import_36);
37134
+ const route33 = Object.assign({}, Reflect.get(_src_cli_skills_add_tsx__rspack_import_37, 'default'), _src_cli_skills_add_tsx__rspack_import_37);
37135
+ const route34 = Object.assign({}, Reflect.get(_src_cli_skills_list_tsx__rspack_import_38, 'default'), _src_cli_skills_list_tsx__rspack_import_38);
37136
+ const route35 = Object.assign({}, Reflect.get(_src_cli_skills_remove_tsx__rspack_import_39, 'default'), _src_cli_skills_remove_tsx__rspack_import_39);
37137
+ const route36 = Object.assign({}, Reflect.get(_src_cli_thread_tsx__rspack_import_40, 'default'), _src_cli_thread_tsx__rspack_import_40);
37138
+ const pluginRoot = (0, _agent_bundle_runtime__rspack_import_41.E7)({
37016
37139
  fallback: (0, node_url__rspack_import_2.fileURLToPath)(new URL('..', import.meta.url)),
37017
37140
  stateAnchor: 'user-data'
37018
37141
  });
@@ -37067,68 +37190,71 @@ var __webpack_modules__ = {
37067
37190
  "cli:codex/list-threads": Object.freeze({
37068
37191
  module: route14
37069
37192
  }),
37070
- "cli:codex/queue": Object.freeze({
37193
+ "cli:codex/new": Object.freeze({
37071
37194
  module: route15
37072
37195
  }),
37073
- "cli:codex/send": Object.freeze({
37196
+ "cli:codex/queue": Object.freeze({
37074
37197
  module: route16
37075
37198
  }),
37076
- "cli:codex/status": Object.freeze({
37199
+ "cli:codex/send": Object.freeze({
37077
37200
  module: route17
37078
37201
  }),
37079
- "cli:codex/wait": Object.freeze({
37202
+ "cli:codex/status": Object.freeze({
37080
37203
  module: route18
37081
37204
  }),
37082
- "cli:codex/watch": Object.freeze({
37205
+ "cli:codex/wait": Object.freeze({
37083
37206
  module: route19
37084
37207
  }),
37085
- "cli:doctor": Object.freeze({
37208
+ "cli:codex/watch": Object.freeze({
37086
37209
  module: route20
37087
37210
  }),
37088
- "cli:groups/add": Object.freeze({
37211
+ "cli:doctor": Object.freeze({
37089
37212
  module: route21
37090
37213
  }),
37091
- "cli:groups/create": Object.freeze({
37214
+ "cli:groups/add": Object.freeze({
37092
37215
  module: route22
37093
37216
  }),
37094
- "cli:groups/delete": Object.freeze({
37217
+ "cli:groups/create": Object.freeze({
37095
37218
  module: route23
37096
37219
  }),
37097
- "cli:groups/get": Object.freeze({
37220
+ "cli:groups/delete": Object.freeze({
37098
37221
  module: route24
37099
37222
  }),
37100
- "cli:groups/list": Object.freeze({
37223
+ "cli:groups/get": Object.freeze({
37101
37224
  module: route25
37102
37225
  }),
37103
- "cli:groups/members": Object.freeze({
37226
+ "cli:groups/list": Object.freeze({
37104
37227
  module: route26
37105
37228
  }),
37106
- "cli:groups/remove": Object.freeze({
37229
+ "cli:groups/members": Object.freeze({
37107
37230
  module: route27
37108
37231
  }),
37109
- "cli:groups/set": Object.freeze({
37232
+ "cli:groups/remove": Object.freeze({
37110
37233
  module: route28
37111
37234
  }),
37112
- "cli:groups/update": Object.freeze({
37235
+ "cli:groups/set": Object.freeze({
37113
37236
  module: route29
37114
37237
  }),
37115
- "cli:history": Object.freeze({
37238
+ "cli:groups/update": Object.freeze({
37116
37239
  module: route30
37117
37240
  }),
37118
- "cli:send": Object.freeze({
37241
+ "cli:history": Object.freeze({
37119
37242
  module: route31
37120
37243
  }),
37121
- "cli:skills/add": Object.freeze({
37244
+ "cli:send": Object.freeze({
37122
37245
  module: route32
37123
37246
  }),
37124
- "cli:skills/list": Object.freeze({
37247
+ "cli:skills/add": Object.freeze({
37125
37248
  module: route33
37126
37249
  }),
37127
- "cli:skills/remove": Object.freeze({
37250
+ "cli:skills/list": Object.freeze({
37128
37251
  module: route34
37129
37252
  }),
37130
- "cli:thread": Object.freeze({
37253
+ "cli:skills/remove": Object.freeze({
37131
37254
  module: route35
37255
+ }),
37256
+ "cli:thread": Object.freeze({
37257
+ module: route36
37132
37258
  })
37133
37259
  });
37134
37260
  const commands = Object.freeze([
@@ -37808,6 +37934,63 @@ var __webpack_modules__ = {
37808
37934
  "rendered": true,
37809
37935
  "routeId": "cli:codex/list-threads"
37810
37936
  },
37937
+ {
37938
+ "aliases": [],
37939
+ "description": "Start a new Codex thread in --cwd, optionally with --model, --effort and a message.",
37940
+ "exitCode": "result",
37941
+ "options": [
37942
+ {
37943
+ "key": "cwd",
37944
+ "kind": "string",
37945
+ "option": "cwd",
37946
+ "repeated": false,
37947
+ "required": true
37948
+ },
37949
+ {
37950
+ "choices": [
37951
+ "none",
37952
+ "minimal",
37953
+ "low",
37954
+ "medium",
37955
+ "high",
37956
+ "xhigh"
37957
+ ],
37958
+ "key": "effort",
37959
+ "kind": "enum",
37960
+ "option": "effort",
37961
+ "repeated": false,
37962
+ "required": false
37963
+ },
37964
+ {
37965
+ "key": "expectedCwd",
37966
+ "kind": "string",
37967
+ "option": "expected-cwd",
37968
+ "repeated": false,
37969
+ "required": false
37970
+ },
37971
+ {
37972
+ "key": "message",
37973
+ "kind": "string",
37974
+ "option": "message",
37975
+ "positional": 0,
37976
+ "repeated": true,
37977
+ "required": false
37978
+ },
37979
+ {
37980
+ "key": "model",
37981
+ "kind": "string",
37982
+ "option": "model",
37983
+ "repeated": false,
37984
+ "required": false
37985
+ }
37986
+ ],
37987
+ "path": [
37988
+ "codex",
37989
+ "new"
37990
+ ],
37991
+ "rendered": true,
37992
+ "routeId": "cli:codex/new"
37993
+ },
37811
37994
  {
37812
37995
  "aliases": [],
37813
37996
  "description": "List the experimental Codex thread queue (GROK_BOT_CODEX_EXPERIMENTAL=1).",
@@ -37848,6 +38031,21 @@ var __webpack_modules__ = {
37848
38031
  "repeated": false,
37849
38032
  "required": false
37850
38033
  },
38034
+ {
38035
+ "choices": [
38036
+ "none",
38037
+ "minimal",
38038
+ "low",
38039
+ "medium",
38040
+ "high",
38041
+ "xhigh"
38042
+ ],
38043
+ "key": "effort",
38044
+ "kind": "enum",
38045
+ "option": "effort",
38046
+ "repeated": false,
38047
+ "required": false
38048
+ },
37851
38049
  {
37852
38050
  "key": "envelope",
37853
38051
  "kind": "boolean",
@@ -37893,6 +38091,13 @@ var __webpack_modules__ = {
37893
38091
  "repeated": true,
37894
38092
  "required": true
37895
38093
  },
38094
+ {
38095
+ "key": "model",
38096
+ "kind": "string",
38097
+ "option": "model",
38098
+ "repeated": false,
38099
+ "required": false
38100
+ },
37896
38101
  {
37897
38102
  "key": "replyTo",
37898
38103
  "kind": "string",
@@ -37923,7 +38128,7 @@ var __webpack_modules__ = {
37923
38128
  "required": true
37924
38129
  },
37925
38130
  {
37926
- "description": "Observation timeout: 1-600000 milliseconds.",
38131
+ "description": "Observation timeout: 1-7200000 milliseconds.",
37927
38132
  "key": "timeoutMs",
37928
38133
  "kind": "number",
37929
38134
  "option": "timeout-ms",
@@ -37955,7 +38160,7 @@ var __webpack_modules__ = {
37955
38160
  "send"
37956
38161
  ],
37957
38162
  "render": {
37958
- "maxElapsedMs": 660000
38163
+ "maxElapsedMs": 7260000
37959
38164
  },
37960
38165
  "rendered": true,
37961
38166
  "routeId": "cli:codex/send"
@@ -38008,7 +38213,7 @@ var __webpack_modules__ = {
38008
38213
  "required": true
38009
38214
  },
38010
38215
  {
38011
- "description": "Observation timeout: 1-600000 milliseconds.",
38216
+ "description": "Observation timeout: 1-7200000 milliseconds.",
38012
38217
  "key": "timeoutMs",
38013
38218
  "kind": "number",
38014
38219
  "option": "timeout-ms",
@@ -38029,7 +38234,7 @@ var __webpack_modules__ = {
38029
38234
  "wait"
38030
38235
  ],
38031
38236
  "render": {
38032
- "maxElapsedMs": 660000
38237
+ "maxElapsedMs": 7260000
38033
38238
  },
38034
38239
  "rendered": true,
38035
38240
  "routeId": "cli:codex/wait"
@@ -39076,27 +39281,27 @@ var __webpack_modules__ = {
39076
39281
  instanceId: processLifetime.instanceId,
39077
39282
  pid: processLifetime.pid
39078
39283
  };
39079
- const result = await (0, _agent_bundle_runtime__rspack_import_41.iC)({
39284
+ const result = await (0, _agent_bundle_runtime__rspack_import_42.iC)({
39080
39285
  capabilities: {
39081
- command: (0, _agent_bundle_runtime__rspack_import_41.hU)(),
39082
- filesystem: (0, _agent_bundle_runtime__rspack_import_41.hU)(),
39083
- network: (0, _agent_bundle_runtime__rspack_import_41.hU)(),
39084
- projectRoot: (0, _agent_bundle_runtime__rspack_import_41.qC)({
39286
+ command: (0, _agent_bundle_runtime__rspack_import_42.hU)(),
39287
+ filesystem: (0, _agent_bundle_runtime__rspack_import_42.hU)(),
39288
+ network: (0, _agent_bundle_runtime__rspack_import_42.hU)(),
39289
+ projectRoot: (0, _agent_bundle_runtime__rspack_import_42.qC)({
39085
39290
  root: cwd
39086
39291
  }, 'derived')
39087
39292
  },
39088
- host: (0, _agent_bundle_runtime__rspack_import_41.hU)('unsupported-surface'),
39293
+ host: (0, _agent_bundle_runtime__rspack_import_42.hU)('unsupported-surface'),
39089
39294
  invocation: {
39090
39295
  kind: 'cli',
39091
39296
  operationId: command.routeId,
39092
39297
  surface: command.path.join(' ')
39093
39298
  },
39094
- lineage: (0, _agent_bundle_runtime__rspack_import_41.hU)('unsupported-surface'),
39299
+ lineage: (0, _agent_bundle_runtime__rspack_import_42.hU)('unsupported-surface'),
39095
39300
  plugin: pluginRoot.identity,
39096
39301
  process: processHit,
39097
39302
  signal: context.signal,
39098
- terminal: (0, _agent_bundle_runtime__rspack_import_41.qC)(context.terminal, 'native'),
39099
- workspace: (0, _agent_bundle_runtime__rspack_import_41.qC)({
39303
+ terminal: (0, _agent_bundle_runtime__rspack_import_42.qC)(context.terminal, 'native'),
39304
+ workspace: (0, _agent_bundle_runtime__rspack_import_42.qC)({
39100
39305
  root: cwd
39101
39306
  }, 'derived')
39102
39307
  }, async ()=>route.module.default({
@@ -39203,7 +39408,7 @@ var __webpack_modules__ = {
39203
39408
  return stream;
39204
39409
  }
39205
39410
  });
39206
- const dispatcher = (0, _agent_bundle_runtime__rspack_import_42.jK)(host);
39411
+ const dispatcher = (0, _agent_bundle_runtime__rspack_import_43.jK)(host);
39207
39412
  return Object.freeze({
39208
39413
  close: async ()=>{
39209
39414
  await worker.terminate();
@@ -39247,11 +39452,11 @@ var __webpack_modules__ = {
39247
39452
  if (import.meta.main) {
39248
39453
  await (0, agent_bundle_cli_entry__rspack_import_1.yA)({
39249
39454
  commands,
39250
- description: "Message Grok Bot from Codex, Claude Code, and Cursor, with managed automatic replies and explicit Codex conversation links.",
39455
+ description: "Message Grok Bot from Codex, Claude Code, and Cursor. Codex/Claude tools use local sockets on the user's registered machines only (no remote transport); from the Grok Bot box, run gbot via Grok Bot Shell with a machineId.",
39251
39456
  execute,
39252
39457
  name: "gbot",
39253
39458
  render,
39254
- version: "0.10.0"
39459
+ version: "0.10.2"
39255
39460
  });
39256
39461
  }
39257
39462
  __webpack_require__.d(__webpack_exports__, {}, {
@@ -39472,6 +39677,7 @@ var __webpack_modules__ = {
39472
39677
  var node_net__rspack_import_2 = __webpack_require__("node:net");
39473
39678
  var node_os__rspack_import_3 = __webpack_require__("node:os");
39474
39679
  var node_path__rspack_import_4 = __webpack_require__("node:path");
39680
+ var _user_machine_guidance_js__rspack_import_5 = __webpack_require__("./src/core/user-machine-guidance.js");
39475
39681
  const MAX_BYTES = 65536;
39476
39682
  const FRAME_BYTES = MAX_BYTES * 6 + 1024;
39477
39683
  const defaultDirectory = ()=>(0, node_path__rspack_import_4.join)((0, node_os__rspack_import_3.homedir)(), '.grok-bot-cli', 'claude');
@@ -39482,6 +39688,18 @@ var __webpack_modules__ = {
39482
39688
  if (Buffer.byteLength(path) >= 104) throw Error('Claude channel socket path is too long');
39483
39689
  return path;
39484
39690
  }
39691
+ function absentClaudeChannelMessage(path, directory) {
39692
+ if ((0, _user_machine_guidance_js__rspack_import_5.R)({
39693
+ path,
39694
+ home: directory
39695
+ })) {
39696
+ return [
39697
+ 'No Claude channel socket at ' + path + '.',
39698
+ _user_machine_guidance_js__rspack_import_5.M
39699
+ ].join('\n');
39700
+ }
39701
+ 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).';
39702
+ }
39485
39703
  function messageText(message) {
39486
39704
  if (typeof message !== 'string' || !message.trim() || Buffer.byteLength(message) > MAX_BYTES) throw Error('Message must contain text within 64 KiB');
39487
39705
  return message;
@@ -39615,8 +39833,21 @@ var __webpack_modules__ = {
39615
39833
  const path = socketPath(name, directory);
39616
39834
  messageText(message);
39617
39835
  timeout(timeoutMs);
39618
- await privateDirectory(directory);
39619
- const info = await (0, node_fs_promises__rspack_import_1.lstat)(path);
39836
+ try {
39837
+ await privateDirectory(directory);
39838
+ } catch (error) {
39839
+ if (error && (error.code === 'ENOENT' || /no such file|ENOENT/i.test(String(error.message)))) {
39840
+ throw Error(absentClaudeChannelMessage(path, directory));
39841
+ }
39842
+ throw error;
39843
+ }
39844
+ let info;
39845
+ try {
39846
+ info = await (0, node_fs_promises__rspack_import_1.lstat)(path);
39847
+ } catch (error) {
39848
+ if (error && error.code === 'ENOENT') throw Error(absentClaudeChannelMessage(path, directory));
39849
+ throw error;
39850
+ }
39620
39851
  if (!info.isSocket() || info.uid !== process.getuid() || info.mode & 63) throw Error('Claude channel socket is not private to this user');
39621
39852
  return new Promise((resolve, reject)=>{
39622
39853
  const socket = (0, node_net__rspack_import_2.connect)(path);
@@ -39666,7 +39897,8 @@ var __webpack_modules__ = {
39666
39897
  var _package_json__rspack_import_6 = __webpack_require__("./package.json");
39667
39898
  var _codex_contract_js__rspack_import_7 = __webpack_require__("./src/core/codex/contract.js");
39668
39899
  var _desktop_shim_js__rspack_import_8 = __webpack_require__("./src/core/desktop-shim.js");
39669
- const PINNED_CODEX_VERSION = "0.154.0";
39900
+ var _user_machine_guidance_js__rspack_import_9 = __webpack_require__("./src/core/user-machine-guidance.js");
39901
+ const PINNED_CODEX_VERSION = "0.158.0";
39670
39902
  const UPSTREAM_DESKTOP_ISSUES = [
39671
39903
  "https://github.com/openai/codex/issues/41014",
39672
39904
  "https://github.com/openai/codex/issues/41112"
@@ -39699,20 +39931,34 @@ var __webpack_modules__ = {
39699
39931
  function singleLine(text) {
39700
39932
  return stripTerminalControls(text).replace(/[\t\n\r\u2028\u2029]+/g, " ");
39701
39933
  }
39702
- function unreachableMessage(path, desktopAttached = "unknown") {
39934
+ function boxUnreachableMessage(path) {
39935
+ return [
39936
+ "No Codex app-server control socket at " + path + ".",
39937
+ _user_machine_guidance_js__rspack_import_9.M
39938
+ ].join("\n");
39939
+ }
39940
+ function unreachableMessage(path, desktopAttached = "unknown", env = process.env) {
39941
+ if ((0, _user_machine_guidance_js__rspack_import_9.R)({
39942
+ path,
39943
+ env,
39944
+ home: env.HOME || (0, node_os__rspack_import_3.homedir)()
39945
+ })) {
39946
+ return boxUnreachableMessage(path);
39947
+ }
39703
39948
  if (desktopAttached === "private-stdio") {
39704
39949
  return [
39705
39950
  "ChatGPT Desktop is running its private stdio app-server, which external clients cannot reach",
39706
39951
  "(" + UPSTREAM_DESKTOP_ISSUES.join(", ") + ").",
39707
- "No Codex app-server control socket at " + path + ": start a managed standalone daemon with `codex app-server daemon start`.",
39708
- "gbot codex targets daemon-managed threads only."
39952
+ "No Codex app-server control socket at " + path + ": start a managed standalone daemon with `codex app-server daemon start` (or bootstrap).",
39953
+ "gbot codex targets daemon-managed threads only; gbot has no remote transport."
39709
39954
  ].join("\n");
39710
39955
  }
39711
39956
  return [
39712
39957
  "No Codex app-server control socket at " + path + ".",
39713
- "Either no daemon is running (start one with `codex app-server daemon start`),",
39958
+ "Either no daemon is running (start one with `codex app-server daemon start` or bootstrap),",
39714
39959
  "or ChatGPT Desktop is running a private stdio app-server that external clients cannot reach",
39715
39960
  "(" + UPSTREAM_DESKTOP_ISSUES.join(", ") + ").",
39961
+ "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.",
39716
39962
  "gbot codex targets daemon-managed threads only."
39717
39963
  ].join("\n");
39718
39964
  }
@@ -40356,6 +40602,47 @@ var __webpack_modules__ = {
40356
40602
  };
40357
40603
  }
40358
40604
  const openSession = openCodexSession;
40605
+ async function startCodexThread({ cwd, expectedCwd, model, effort, message, env = process.env, signal } = {}) {
40606
+ validateModelEffort(model, effort);
40607
+ if (typeof cwd !== "string" || !cwd.trim()) throw new RangeError("--cwd is required for a new Codex thread");
40608
+ const resolvedCwd = (0, node_fs__rspack_import_1.realpathSync)(cwd);
40609
+ if (expectedCwd !== undefined && (0, node_fs__rspack_import_1.realpathSync)(expectedCwd) !== resolvedCwd) throw new RangeError("New Codex thread cwd does not match expectedCwd");
40610
+ if (message !== undefined && (typeof message !== "string" || !message.trim())) throw new RangeError("Message must contain text");
40611
+ const { client } = await openSession(env, {
40612
+ signal
40613
+ });
40614
+ let threadId, started;
40615
+ try {
40616
+ started = await client.request("thread/start", {
40617
+ cwd: resolvedCwd,
40618
+ ...model ? {
40619
+ model
40620
+ } : {},
40621
+ ...effort ? {
40622
+ config: {
40623
+ model_reasoning_effort: effort
40624
+ }
40625
+ } : {}
40626
+ });
40627
+ threadId = started?.thread?.id;
40628
+ if (typeof threadId !== "string" || !ID_PATTERN.test(threadId)) throw new CodexProtocolError("thread/start", "missing `thread.id`");
40629
+ } finally{
40630
+ client.close();
40631
+ }
40632
+ if (message === undefined) return {
40633
+ threadId,
40634
+ cwd: resolvedCwd,
40635
+ model: started.model ?? model,
40636
+ exitCode: 0
40637
+ };
40638
+ return await sendToCodexThread(threadId, message, {
40639
+ env,
40640
+ expectedCwd: resolvedCwd,
40641
+ model,
40642
+ effort,
40643
+ signal
40644
+ });
40645
+ }
40359
40646
  const CODEX_VERSION_PROBE_TIMEOUT_MS = 3000;
40360
40647
  function probeLocalCodexVersion(timeoutMs = CODEX_VERSION_PROBE_TIMEOUT_MS) {
40361
40648
  const out = (0, node_child_process__rspack_import_5.spawnSync)("codex", [
@@ -40445,7 +40732,7 @@ var __webpack_modules__ = {
40445
40732
  session = await openSession(env);
40446
40733
  } catch (err) {
40447
40734
  if (err instanceof CodexRouteError) {
40448
- const message = err.mode === "socket-absent" ? unreachableMessage(path, desktopAttached) : err.message;
40735
+ const message = err.mode === "socket-absent" ? unreachableMessage(path, desktopAttached, env) : err.message;
40449
40736
  return (0, _codex_contract_js__rspack_import_7.AQ)({
40450
40737
  ...base,
40451
40738
  reachable: false,
@@ -40654,7 +40941,7 @@ var __webpack_modules__ = {
40654
40941
  }
40655
40942
  function requireExperimental(env, what) {
40656
40943
  if (experimentalEnabled(env)) return;
40657
- 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 + ".", {
40944
+ 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.", {
40658
40945
  delivery: "rejected",
40659
40946
  reason: "experimental-disabled"
40660
40947
  });
@@ -40662,7 +40949,7 @@ var __webpack_modules__ = {
40662
40949
  function unsupportedOrRpc(err, method, threadId, envelope, turnId) {
40663
40950
  const guarded = method === "turn/steer";
40664
40951
  if (err instanceof CodexRpcError && err.rpc && err.rpc.code === -32601) {
40665
- 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."), {
40952
+ 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."), {
40666
40953
  delivery: "rejected",
40667
40954
  reason: "unsupported",
40668
40955
  threadId,
@@ -40719,7 +41006,7 @@ var __webpack_modules__ = {
40719
41006
  }
40720
41007
  async function sendToCodexThread(threadId, text, { env = process.env, envelope = buildEnvelope({
40721
41008
  env
40722
- }), whenBusy = "reject", session, expectedTurnId, expectedCwd, signal } = {}) {
41009
+ }), whenBusy = "reject", session, expectedTurnId, expectedCwd, model, effort, signal } = {}) {
40723
41010
  try {
40724
41011
  const receipt = await sendToCodexThreadInner(threadId, text, {
40725
41012
  env,
@@ -40728,6 +41015,8 @@ var __webpack_modules__ = {
40728
41015
  session,
40729
41016
  expectedTurnId,
40730
41017
  expectedCwd,
41018
+ model,
41019
+ effort,
40731
41020
  signal
40732
41021
  });
40733
41022
  return (0, _codex_contract_js__rspack_import_7.Dz)(receipt);
@@ -40739,7 +41028,19 @@ var __webpack_modules__ = {
40739
41028
  return (0, _codex_contract_js__rspack_import_7.DG)(err);
40740
41029
  }
40741
41030
  }
40742
- async function sendToCodexThreadInner(threadId, text, { env, envelope, whenBusy, session, expectedTurnId, expectedCwd, signal }) {
41031
+ function validateModelEffort(model, effort) {
41032
+ 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");
41033
+ if (effort !== undefined && ![
41034
+ "none",
41035
+ "minimal",
41036
+ "low",
41037
+ "medium",
41038
+ "high",
41039
+ "xhigh"
41040
+ ].includes(effort)) throw new RangeError("--effort must be none, minimal, low, medium, high, or xhigh");
41041
+ }
41042
+ async function sendToCodexThreadInner(threadId, text, { env, envelope, whenBusy, session, expectedTurnId, expectedCwd, model, effort, signal }) {
41043
+ validateModelEffort(model, effort);
40743
41044
  if (![
40744
41045
  "reject",
40745
41046
  "queue",
@@ -40785,7 +41086,15 @@ var __webpack_modules__ = {
40785
41086
  try {
40786
41087
  resumed = await client.request("thread/resume", {
40787
41088
  threadId,
40788
- excludeTurns: true
41089
+ excludeTurns: true,
41090
+ ...model ? {
41091
+ model
41092
+ } : {},
41093
+ ...effort ? {
41094
+ config: {
41095
+ model_reasoning_effort: effort
41096
+ }
41097
+ } : {}
40789
41098
  });
40790
41099
  } catch (err) {
40791
41100
  assertNotCancelled();
@@ -40918,7 +41227,13 @@ var __webpack_modules__ = {
40918
41227
  }
40919
41228
  ],
40920
41229
  clientUserMessageId: envelope.messageId,
40921
- turnTrigger: "gbot"
41230
+ turnTrigger: "gbot",
41231
+ ...model ? {
41232
+ model
41233
+ } : {},
41234
+ ...effort ? {
41235
+ effort
41236
+ } : {}
40922
41237
  });
40923
41238
  } catch (err) {
40924
41239
  if (err instanceof CodexSendError) throw err;
@@ -40977,6 +41292,7 @@ var __webpack_modules__ = {
40977
41292
  Bt: ()=>listCodexQueue,
40978
41293
  MU: ()=>codexStatus,
40979
41294
  Mr: ()=>withEnvelopeHeader,
41295
+ QC: ()=>startCodexThread,
40980
41296
  X$: ()=>listCodexThreads1,
40981
41297
  ZS: ()=>sendToCodexThread,
40982
41298
  e0: ()=>experimentalEnabled,
@@ -41193,10 +41509,10 @@ var __webpack_modules__ = {
41193
41509
  ];
41194
41510
  if (afterMessageId !== undefined) boundedInteger(anchors.length, 200, 'afterMessageId count');
41195
41511
  for (const anchor of anchors)conversationId(anchor, 'afterMessageId');
41196
- boundedInteger(timeoutMs, 600000, 'timeoutMs');
41512
+ boundedInteger(timeoutMs, 7200000, 'timeoutMs');
41197
41513
  boundedInteger(maxOutputBytes, BUDGET, 'maxOutputBytes');
41198
41514
  if (waitSignal !== undefined && !(waitSignal instanceof AbortSignal)) throw new TypeError('signal must be an AbortSignal');
41199
- let done = false, status = acceptedTurns.has(turnId) ? 'inProgress' : undefined, error, historyError, itemBytes = 0, truncated = overflow;
41515
+ let done = false, status = acceptedTurns.has(turnId) ? 'inProgress' : undefined, error, historyError, itemBytes = 0, truncated = false;
41200
41516
  const items = new Map();
41201
41517
  const add = (item)=>{
41202
41518
  if (!item || typeof item.id !== 'string' || typeof item.type !== 'string') throw new Error('Invalid history item');
@@ -41243,6 +41559,7 @@ var __webpack_modules__ = {
41243
41559
  };
41244
41560
  const result = (state, detail)=>{
41245
41561
  const interactions = scan();
41562
+ const overflowUncertain = state === 'unknown' && /Notification coverage overflow/.test(detail ?? '');
41246
41563
  const candidates = [
41247
41564
  ...items.values()
41248
41565
  ].map((x)=>x.item);
@@ -41251,7 +41568,7 @@ var __webpack_modules__ = {
41251
41568
  const reply = {
41252
41569
  text: '',
41253
41570
  items: [],
41254
- truncated: truncated || overflow
41571
+ truncated: truncated || overflowUncertain
41255
41572
  };
41256
41573
  for (const item of selected){
41257
41574
  const text = reply.text ? `${reply.text}\n${item.text}` : item.text;
@@ -41284,7 +41601,7 @@ var __webpack_modules__ = {
41284
41601
  interactions
41285
41602
  };
41286
41603
  };
41287
- let timer, notify;
41604
+ let timer, pollTimer, notify;
41288
41605
  const abortSignals = [
41289
41606
  signal,
41290
41607
  waitSignal
@@ -41300,10 +41617,18 @@ var __webpack_modules__ = {
41300
41617
  'Codex connection closed'
41301
41618
  ]);
41302
41619
  };
41303
- timer = setTimeout(()=>resolve([
41620
+ timer = setTimeout(()=>resolve(overflow ? [
41621
+ 'unknown',
41622
+ 'Notification coverage overflow; pending interaction status is uncertain'
41623
+ ] : [
41304
41624
  'timeout',
41305
41625
  'Observation deadline reached'
41306
41626
  ]), timeoutMs);
41627
+ pollTimer = setInterval(()=>{
41628
+ for (const listener of [
41629
+ ...wake
41630
+ ])listener();
41631
+ }, 2000);
41307
41632
  for (const s of abortSignals)s.addEventListener('abort', notify, {
41308
41633
  once: true
41309
41634
  });
@@ -41374,19 +41699,51 @@ var __webpack_modules__ = {
41374
41699
  historyError
41375
41700
  ];
41376
41701
  }
41702
+ let lastPoll = 0;
41377
41703
  while(!done){
41378
41704
  const interactions = scan();
41379
41705
  if (terminal(status)) return [
41380
41706
  status,
41381
41707
  error ?? historyError
41382
41708
  ];
41383
- if (historyError || overflow) return [
41709
+ if (historyError) return [
41384
41710
  'unknown',
41385
- historyError ?? 'Notification coverage overflow'
41711
+ historyError
41386
41712
  ];
41387
41713
  if (interactions.length) return [
41388
41714
  'waiting-for-input'
41389
41715
  ];
41716
+ if (Date.now() - lastPoll >= 2000) {
41717
+ lastPoll = Date.now();
41718
+ try {
41719
+ await visitCodexHistory(session, threadId, 'thread/turns/list', {}, (data)=>{
41720
+ const turn = data.find((t)=>t?.id === turnId);
41721
+ if (!turn) return false;
41722
+ if (terminal(turn.status)) {
41723
+ status = turn.status;
41724
+ error = turn.error;
41725
+ }
41726
+ return true;
41727
+ }, {
41728
+ stopped: ()=>done
41729
+ });
41730
+ if (terminal(status)) {
41731
+ await visitCodexHistory(session, threadId, 'thread/items/list', {
41732
+ turnId,
41733
+ sortDirection: 'asc'
41734
+ }, (data)=>{
41735
+ for (const row of data)if (row?.turnId === turnId && row.item) add(row.item);
41736
+ return false;
41737
+ }, {
41738
+ stopped: ()=>done
41739
+ });
41740
+ continue;
41741
+ }
41742
+ } catch (err) {
41743
+ historyError = err.message;
41744
+ truncated = true;
41745
+ }
41746
+ }
41390
41747
  await new Promise((resolve)=>{
41391
41748
  const listener = ()=>{
41392
41749
  wake.delete(listener);
@@ -41409,6 +41766,7 @@ var __webpack_modules__ = {
41409
41766
  } finally{
41410
41767
  done = true;
41411
41768
  clearTimeout(timer);
41769
+ clearInterval(pollTimer);
41412
41770
  wake.delete(notify);
41413
41771
  for (const s of abortSignals)s.removeEventListener('abort', notify);
41414
41772
  for (const listener of [
@@ -41456,7 +41814,7 @@ var __webpack_modules__ = {
41456
41814
  close,
41457
41815
  async send (text, { envelope = (0, _codex_bridge_js__rspack_import_2.nq)({
41458
41816
  env
41459
- }), whenBusy = 'reject', expectedTurnId, signal: sendSignal } = {}) {
41817
+ }), whenBusy = 'reject', expectedTurnId, model, effort, signal: sendSignal } = {}) {
41460
41818
  if (closed) return (0, _contract_js__rspack_import_0.DG)(Object.assign(new Error('Conversation closed'), {
41461
41819
  delivery: 'rejected',
41462
41820
  reason: 'closed',
@@ -41475,6 +41833,8 @@ var __webpack_modules__ = {
41475
41833
  expectedTurnId,
41476
41834
  session,
41477
41835
  expectedCwd,
41836
+ model,
41837
+ effort,
41478
41838
  signal: submissionSignal
41479
41839
  });
41480
41840
  if (receipt.delivery === 'accepted' && receipt.turnId) {
@@ -43726,9 +44086,30 @@ ts() { date -u +%Y-%m-%dT%H:%M:%SZ; }
43726
44086
  fp: ()=>redactSecrets
43727
44087
  });
43728
44088
  },
44089
+ "./src/core/user-machine-guidance.js" (__unused_rspack___webpack_module__, __webpack_exports__, __webpack_require__) {
44090
+ const USER_MACHINE_CODEX_CLAUDE_GUIDANCE = [
44091
+ "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).",
44092
+ "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.",
44093
+ "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).",
44094
+ "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."
44095
+ ].join("\n");
44096
+ function looksLikeGrokBotBox({ path = "", env = process.env, home = env.HOME || "" } = {}) {
44097
+ const values = [
44098
+ home,
44099
+ env.HOME,
44100
+ path
44101
+ ].filter((value)=>value != null && value !== "").map(String);
44102
+ return values.some((value)=>value === "/home/box" || value.startsWith("/home/box/"));
44103
+ }
44104
+ __webpack_require__.d(__webpack_exports__, {
44105
+ R: ()=>looksLikeGrokBotBox
44106
+ }, {
44107
+ M: USER_MACHINE_CODEX_CLAUDE_GUIDANCE
44108
+ });
44109
+ },
43729
44110
  "./package.json" (module) {
43730
44111
  module.exports = {
43731
- "rE": "0.10.0"
44112
+ "rE": "0.10.2"
43732
44113
  };
43733
44114
  }
43734
44115
  };