grok-bot-cli 0.6.0 → 0.7.0

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.
@@ -13650,6 +13650,37 @@ __webpack_require__.d(__webpack_exports__, {
13650
13650
  });
13651
13651
 
13652
13652
 
13653
+ },
13654
+ "./src/core/grok-approval-routes.ts"(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
13655
+ /* import */ var zod__rspack_import_3 = __webpack_require__("./node_modules/zod/v4/classic/schemas.js");
13656
+ /* import */ var _gateway_js__rspack_import_0 = __webpack_require__("./src/core/gateway.js");
13657
+ /* import */ var _grok_approvals_js__rspack_import_1 = __webpack_require__("./src/core/grok-approvals.js");
13658
+ /* import */ var _gbot_js__rspack_import_2 = __webpack_require__("./src/gbot.ts");
13659
+
13660
+
13661
+
13662
+
13663
+ const listSchema = zod__rspack_import_3/* .strictObject */.rej({
13664
+ target: zod__rspack_import_3/* .string */.YjP().min(1).max(1024)
13665
+ });
13666
+ const respondSchema = _grok_approvals_js__rspack_import_1/* .grokApprovalResponseSchema */.T5;
13667
+ const resultSchema = zod__rspack_import_3/* .record */.g1P(zod__rspack_import_3/* .string */.YjP(), zod__rspack_import_3/* .json */.Pq9());
13668
+ const listOperation = (input)=>(0,_gbot_js__rspack_import_2/* .withRedactedErrors */.yF)(async ()=>(0,_gateway_js__rspack_import_0/* .listGrokApprovals */.MI)(await (0,_gateway_js__rspack_import_0/* .connectGateway */.Vq)(), listSchema.parse(input).target));
13669
+ const respondOperation = (input)=>(0,_gbot_js__rspack_import_2/* .withRedactedErrors */.yF)(async ()=>{
13670
+ const { target, ...response } = respondSchema.parse(input);
13671
+ return (0,_gateway_js__rspack_import_0/* .respondGrokApproval */.OR)(await (0,_gateway_js__rspack_import_0/* .connectGateway */.Vq)(), target, response);
13672
+ });
13673
+
13674
+ __webpack_require__.d(__webpack_exports__, {
13675
+ }, {
13676
+ FD: resultSchema,
13677
+ cE: listSchema,
13678
+ gi: listOperation,
13679
+ lr: respondOperation,
13680
+ v1: respondSchema
13681
+ });
13682
+
13683
+
13653
13684
  },
13654
13685
  "./src/core/relay/routes.ts"(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
13655
13686
  /* import */ var _agent_bundle_runtime__rspack_import_4 = __webpack_require__("./node_modules/@agent-bundle/runtime/dist/40.js");
@@ -14043,9 +14074,9 @@ const resultSchema = zod__rspack_import_4/* .union */.KCZ([
14043
14074
  const context = await (0,_agent_bundle_runtime__rspack_import_5/* .agent */.MA)();
14044
14075
  if (input.replyToGrok || input.bindingId) {
14045
14076
  const out = await (0,_core_relay_routes_js__rspack_import_3/* .codexReturnOperation */.lt)(input, context);
14046
- return /*#__PURE__*/ (0,react_jsx_runtime__rspack_import_0.jsx)(_agent_bundle_runtime__rspack_import_6/* .Agent.Result */.g6.Result, {
14077
+ return /*#__PURE__*/ (0,react_jsx_runtime__rspack_import_0.jsx)(_agent_bundle_runtime__rspack_import_6/* .Agent.Result */.g.Result, {
14047
14078
  value: out,
14048
- children: /*#__PURE__*/ (0,react_jsx_runtime__rspack_import_0.jsx)(_agent_bundle_runtime__rspack_import_6/* .Agent.Text */.g6.Text, {
14079
+ children: /*#__PURE__*/ (0,react_jsx_runtime__rspack_import_0.jsx)(_agent_bundle_runtime__rspack_import_6/* .Agent.Text */.g.Text, {
14049
14080
  children: `Delivery ${out.delivery}; terminal answer returns to Grok automatically.`
14050
14081
  })
14051
14082
  });
@@ -14056,9 +14087,9 @@ const resultSchema = zod__rspack_import_4/* .union */.KCZ([
14056
14087
  }, context.signal, (message)=>context.progress.report({
14057
14088
  message
14058
14089
  }));
14059
- return /*#__PURE__*/ (0,react_jsx_runtime__rspack_import_0.jsx)(_agent_bundle_runtime__rspack_import_6/* .Agent.Result */.g6.Result, {
14090
+ return /*#__PURE__*/ (0,react_jsx_runtime__rspack_import_0.jsx)(_agent_bundle_runtime__rspack_import_6/* .Agent.Result */.g.Result, {
14060
14091
  value: out,
14061
- children: /*#__PURE__*/ (0,react_jsx_runtime__rspack_import_0.jsx)(_agent_bundle_runtime__rspack_import_6/* .Agent.Text */.g6.Text, {
14092
+ children: /*#__PURE__*/ (0,react_jsx_runtime__rspack_import_0.jsx)(_agent_bundle_runtime__rspack_import_6/* .Agent.Text */.g.Text, {
14062
14093
  children: (0,_core_codex_routes_js__rspack_import_2/* .resultText */.D6)(out)
14063
14094
  })
14064
14095
  });
@@ -14112,9 +14143,9 @@ __webpack_require__.r(__webpack_exports__);
14112
14143
  }, async (input)=>{
14113
14144
  const context = await (0,_agent_bundle_runtime__rspack_import_3/* .agent */.MA)();
14114
14145
  const out = await (0,_core_codex_routes_js__rspack_import_2/* .threadsOperation */.$c)(input);
14115
- return /*#__PURE__*/ (0,react_jsx_runtime__rspack_import_0.jsx)(_agent_bundle_runtime__rspack_import_4/* .Agent.Result */.g6.Result, {
14146
+ return /*#__PURE__*/ (0,react_jsx_runtime__rspack_import_0.jsx)(_agent_bundle_runtime__rspack_import_4/* .Agent.Result */.g.Result, {
14116
14147
  value: out,
14117
- children: /*#__PURE__*/ (0,react_jsx_runtime__rspack_import_0.jsx)(_agent_bundle_runtime__rspack_import_4/* .Agent.Text */.g6.Text, {
14148
+ children: /*#__PURE__*/ (0,react_jsx_runtime__rspack_import_0.jsx)(_agent_bundle_runtime__rspack_import_4/* .Agent.Text */.g.Text, {
14118
14149
  children: (0,_core_codex_routes_js__rspack_import_2/* .resultText */.D6)(out)
14119
14150
  })
14120
14151
  });
@@ -14186,9 +14217,9 @@ __webpack_require__.r(__webpack_exports__);
14186
14217
  const out = await (0,_core_codex_routes_js__rspack_import_2/* .observeOperation */.gT)('wait', input, context.signal, (message)=>context.progress.report({
14187
14218
  message
14188
14219
  }));
14189
- return /*#__PURE__*/ (0,react_jsx_runtime__rspack_import_0.jsx)(_agent_bundle_runtime__rspack_import_4/* .Agent.Result */.g6.Result, {
14220
+ return /*#__PURE__*/ (0,react_jsx_runtime__rspack_import_0.jsx)(_agent_bundle_runtime__rspack_import_4/* .Agent.Result */.g.Result, {
14190
14221
  value: out,
14191
- children: /*#__PURE__*/ (0,react_jsx_runtime__rspack_import_0.jsx)(_agent_bundle_runtime__rspack_import_4/* .Agent.Text */.g6.Text, {
14222
+ children: /*#__PURE__*/ (0,react_jsx_runtime__rspack_import_0.jsx)(_agent_bundle_runtime__rspack_import_4/* .Agent.Text */.g.Text, {
14192
14223
  children: (0,_core_codex_routes_js__rspack_import_2/* .resultText */.D6)(out)
14193
14224
  })
14194
14225
  });
@@ -14253,9 +14284,9 @@ __webpack_require__.r(__webpack_exports__);
14253
14284
  const out = await (0,_core_codex_routes_js__rspack_import_2/* .observeOperation */.gT)('watch', input, context.signal, (message)=>context.progress.report({
14254
14285
  message
14255
14286
  }));
14256
- return /*#__PURE__*/ (0,react_jsx_runtime__rspack_import_0.jsx)(_agent_bundle_runtime__rspack_import_4/* .Agent.Result */.g6.Result, {
14287
+ return /*#__PURE__*/ (0,react_jsx_runtime__rspack_import_0.jsx)(_agent_bundle_runtime__rspack_import_4/* .Agent.Result */.g.Result, {
14257
14288
  value: out,
14258
- children: /*#__PURE__*/ (0,react_jsx_runtime__rspack_import_0.jsx)(_agent_bundle_runtime__rspack_import_4/* .Agent.Text */.g6.Text, {
14289
+ children: /*#__PURE__*/ (0,react_jsx_runtime__rspack_import_0.jsx)(_agent_bundle_runtime__rspack_import_4/* .Agent.Text */.g.Text, {
14259
14290
  children: (0,_core_codex_routes_js__rspack_import_2/* .resultText */.D6)(out)
14260
14291
  })
14261
14292
  });
@@ -14319,9 +14350,9 @@ __webpack_require__.r(__webpack_exports__);
14319
14350
  }
14320
14351
  }, async (input)=>{
14321
14352
  const out = await (0,_core_relay_routes_js__rspack_import_2/* .bridgeOperation */.n1)('startBinding', input, await (0,_agent_bundle_runtime__rspack_import_3/* .agent */.MA)());
14322
- return /*#__PURE__*/ (0,react_jsx_runtime__rspack_import_0.jsx)(_agent_bundle_runtime__rspack_import_4/* .Agent.Result */.g6.Result, {
14353
+ return /*#__PURE__*/ (0,react_jsx_runtime__rspack_import_0.jsx)(_agent_bundle_runtime__rspack_import_4/* .Agent.Result */.g.Result, {
14323
14354
  value: out,
14324
- children: /*#__PURE__*/ (0,react_jsx_runtime__rspack_import_0.jsx)(_agent_bundle_runtime__rspack_import_4/* .Agent.Text */.g6.Text, {
14355
+ children: /*#__PURE__*/ (0,react_jsx_runtime__rspack_import_0.jsx)(_agent_bundle_runtime__rspack_import_4/* .Agent.Text */.g.Text, {
14325
14356
  children: JSON.stringify(out)
14326
14357
  })
14327
14358
  });
@@ -14369,9 +14400,9 @@ __webpack_require__.r(__webpack_exports__);
14369
14400
  }
14370
14401
  }, async (input)=>{
14371
14402
  const out = await (0,_core_relay_routes_js__rspack_import_2/* .bridgeOperation */.n1)('status', input, await (0,_agent_bundle_runtime__rspack_import_3/* .agent */.MA)());
14372
- return /*#__PURE__*/ (0,react_jsx_runtime__rspack_import_0.jsx)(_agent_bundle_runtime__rspack_import_4/* .Agent.Result */.g6.Result, {
14403
+ return /*#__PURE__*/ (0,react_jsx_runtime__rspack_import_0.jsx)(_agent_bundle_runtime__rspack_import_4/* .Agent.Result */.g.Result, {
14373
14404
  value: out,
14374
- children: /*#__PURE__*/ (0,react_jsx_runtime__rspack_import_0.jsx)(_agent_bundle_runtime__rspack_import_4/* .Agent.Text */.g6.Text, {
14405
+ children: /*#__PURE__*/ (0,react_jsx_runtime__rspack_import_0.jsx)(_agent_bundle_runtime__rspack_import_4/* .Agent.Text */.g.Text, {
14375
14406
  children: JSON.stringify(out)
14376
14407
  })
14377
14408
  });
@@ -14422,9 +14453,9 @@ __webpack_require__.r(__webpack_exports__);
14422
14453
  }
14423
14454
  }, async (input)=>{
14424
14455
  const out = await (0,_core_relay_routes_js__rspack_import_2/* .bridgeOperation */.n1)('stop', input, await (0,_agent_bundle_runtime__rspack_import_3/* .agent */.MA)());
14425
- return /*#__PURE__*/ (0,react_jsx_runtime__rspack_import_0.jsx)(_agent_bundle_runtime__rspack_import_4/* .Agent.Result */.g6.Result, {
14456
+ return /*#__PURE__*/ (0,react_jsx_runtime__rspack_import_0.jsx)(_agent_bundle_runtime__rspack_import_4/* .Agent.Result */.g.Result, {
14426
14457
  value: out,
14427
- children: /*#__PURE__*/ (0,react_jsx_runtime__rspack_import_0.jsx)(_agent_bundle_runtime__rspack_import_4/* .Agent.Text */.g6.Text, {
14458
+ children: /*#__PURE__*/ (0,react_jsx_runtime__rspack_import_0.jsx)(_agent_bundle_runtime__rspack_import_4/* .Agent.Text */.g.Text, {
14428
14459
  children: JSON.stringify(out)
14429
14460
  })
14430
14461
  });
@@ -14502,9 +14533,9 @@ __webpack_require__.r(__webpack_exports__);
14502
14533
  }
14503
14534
  }, async (input)=>{
14504
14535
  const out = await (0,_core_relay_routes_js__rspack_import_2/* .bridgeOperation */.n1)('respond', input, await (0,_agent_bundle_runtime__rspack_import_3/* .agent */.MA)());
14505
- return /*#__PURE__*/ (0,react_jsx_runtime__rspack_import_0.jsx)(_agent_bundle_runtime__rspack_import_4/* .Agent.Result */.g6.Result, {
14536
+ return /*#__PURE__*/ (0,react_jsx_runtime__rspack_import_0.jsx)(_agent_bundle_runtime__rspack_import_4/* .Agent.Result */.g.Result, {
14506
14537
  value: out,
14507
- children: /*#__PURE__*/ (0,react_jsx_runtime__rspack_import_0.jsx)(_agent_bundle_runtime__rspack_import_4/* .Agent.Text */.g6.Text, {
14538
+ children: /*#__PURE__*/ (0,react_jsx_runtime__rspack_import_0.jsx)(_agent_bundle_runtime__rspack_import_4/* .Agent.Text */.g.Text, {
14508
14539
  children: JSON.stringify(out)
14509
14540
  })
14510
14541
  });
@@ -14517,6 +14548,120 @@ __webpack_require__.d(__webpack_exports__, {
14517
14548
  });
14518
14549
 
14519
14550
 
14551
+ },
14552
+ "./src/mcp/grok-bot/tools/gbot_grok_approvals.tsx"(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
14553
+ __webpack_require__.r(__webpack_exports__);
14554
+ /* import */ var react_jsx_runtime__rspack_import_0 = __webpack_require__("./node_modules/react/jsx-runtime.react-server.js");
14555
+ /* import */ var _agent_bundle_runtime__rspack_import_3 = __webpack_require__("./node_modules/@agent-bundle/runtime/dist/506.js");
14556
+ /* import */ var agent_bundle_routes__rspack_import_1 = __webpack_require__("./node_modules/agent-bundle/dist/routes.js");
14557
+ /* import */ var _core_grok_approval_routes_js__rspack_import_2 = __webpack_require__("./src/core/grok-approval-routes.ts");
14558
+
14559
+
14560
+
14561
+
14562
+
14563
+ /* export default */ const __rspack_default_export = ((0,agent_bundle_routes__rspack_import_1/* .defineTool */.uO)({
14564
+ title: 'Pending Grok approvals',
14565
+ description: 'List pending auto-review and local-tool approval cards in the latest 200 entries for a Grok bot. Older or unsupported requests require the owning Grok UI.',
14566
+ annotations: {
14567
+ readOnlyHint: true
14568
+ },
14569
+ inputSchema: _core_grok_approval_routes_js__rspack_import_2/* .listSchema */.cE,
14570
+ resultSchema: _core_grok_approval_routes_js__rspack_import_2/* .resultSchema */.FD,
14571
+ inputJsonSchema: {
14572
+ type: 'object',
14573
+ properties: {
14574
+ target: {
14575
+ type: 'string'
14576
+ }
14577
+ },
14578
+ required: [
14579
+ 'target'
14580
+ ],
14581
+ additionalProperties: false
14582
+ }
14583
+ }, async (input)=>{
14584
+ const out = await (0,_core_grok_approval_routes_js__rspack_import_2/* .listOperation */.gi)(input);
14585
+ return /*#__PURE__*/ (0,react_jsx_runtime__rspack_import_0.jsx)(_agent_bundle_runtime__rspack_import_3/* .Agent.Result */.g.Result, {
14586
+ value: out,
14587
+ children: /*#__PURE__*/ (0,react_jsx_runtime__rspack_import_0.jsx)(_agent_bundle_runtime__rspack_import_3/* .Agent.Text */.g.Text, {
14588
+ children: JSON.stringify(out)
14589
+ })
14590
+ });
14591
+ }));
14592
+
14593
+ __webpack_require__.d(__webpack_exports__, {
14594
+ inputSchema: () => (/* reexport safe */ _core_grok_approval_routes_js__rspack_import_2.cE)
14595
+ }, {
14596
+ "default": __rspack_default_export
14597
+ });
14598
+
14599
+
14600
+ },
14601
+ "./src/mcp/grok-bot/tools/gbot_grok_respond.tsx"(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
14602
+ __webpack_require__.r(__webpack_exports__);
14603
+ /* import */ var react_jsx_runtime__rspack_import_0 = __webpack_require__("./node_modules/react/jsx-runtime.react-server.js");
14604
+ /* import */ var _agent_bundle_runtime__rspack_import_3 = __webpack_require__("./node_modules/@agent-bundle/runtime/dist/506.js");
14605
+ /* import */ var agent_bundle_routes__rspack_import_1 = __webpack_require__("./node_modules/agent-bundle/dist/routes.js");
14606
+ /* import */ var _core_grok_approval_routes_js__rspack_import_2 = __webpack_require__("./src/core/grok-approval-routes.ts");
14607
+
14608
+
14609
+
14610
+
14611
+
14612
+ /* export default */ const __rspack_default_export = ((0,agent_bundle_routes__rspack_import_1/* .defineTool */.uO)({
14613
+ title: 'Respond to Grok approval',
14614
+ description: 'Only after an explicit user decision: accept one current Grok approval once or decline it. Exact target, entryId and approval requestId required. Never auto-approve or grant persistent permissions. Success acknowledges response delivery, not execution.',
14615
+ annotations: {
14616
+ readOnlyHint: false
14617
+ },
14618
+ inputSchema: _core_grok_approval_routes_js__rspack_import_2/* .respondSchema */.v1,
14619
+ resultSchema: _core_grok_approval_routes_js__rspack_import_2/* .resultSchema */.FD,
14620
+ inputJsonSchema: {
14621
+ type: 'object',
14622
+ properties: {
14623
+ target: {
14624
+ type: 'string'
14625
+ },
14626
+ entryId: {
14627
+ type: 'string'
14628
+ },
14629
+ requestId: {
14630
+ type: 'string'
14631
+ },
14632
+ decision: {
14633
+ type: 'string',
14634
+ enum: [
14635
+ 'accept',
14636
+ 'decline'
14637
+ ]
14638
+ }
14639
+ },
14640
+ required: [
14641
+ 'target',
14642
+ 'entryId',
14643
+ 'requestId',
14644
+ 'decision'
14645
+ ],
14646
+ additionalProperties: false
14647
+ }
14648
+ }, async (input)=>{
14649
+ const out = await (0,_core_grok_approval_routes_js__rspack_import_2/* .respondOperation */.lr)(input);
14650
+ return /*#__PURE__*/ (0,react_jsx_runtime__rspack_import_0.jsx)(_agent_bundle_runtime__rspack_import_3/* .Agent.Result */.g.Result, {
14651
+ value: out,
14652
+ children: /*#__PURE__*/ (0,react_jsx_runtime__rspack_import_0.jsx)(_agent_bundle_runtime__rspack_import_3/* .Agent.Text */.g.Text, {
14653
+ children: JSON.stringify(out)
14654
+ })
14655
+ });
14656
+ }));
14657
+
14658
+ __webpack_require__.d(__webpack_exports__, {
14659
+ inputSchema: () => (/* reexport safe */ _core_grok_approval_routes_js__rspack_import_2.v1)
14660
+ }, {
14661
+ "default": __rspack_default_export
14662
+ });
14663
+
14664
+
14520
14665
  },
14521
14666
  "./src/mcp/grok-bot/tools/gbot_send.tsx"(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
14522
14667
  __webpack_require__.r(__webpack_exports__);
@@ -14582,9 +14727,9 @@ __webpack_require__.r(__webpack_exports__);
14582
14727
  }
14583
14728
  }, async (input)=>{
14584
14729
  const out = await (0,_core_relay_routes_js__rspack_import_2/* .grokSendOperation */.bv)(input, await (0,_agent_bundle_runtime__rspack_import_3/* .agent */.MA)());
14585
- return /*#__PURE__*/ (0,react_jsx_runtime__rspack_import_0.jsx)(_agent_bundle_runtime__rspack_import_4/* .Agent.Result */.g6.Result, {
14730
+ return /*#__PURE__*/ (0,react_jsx_runtime__rspack_import_0.jsx)(_agent_bundle_runtime__rspack_import_4/* .Agent.Result */.g.Result, {
14586
14731
  value: out,
14587
- children: /*#__PURE__*/ (0,react_jsx_runtime__rspack_import_0.jsx)(_agent_bundle_runtime__rspack_import_4/* .Agent.Text */.g6.Text, {
14732
+ children: /*#__PURE__*/ (0,react_jsx_runtime__rspack_import_0.jsx)(_agent_bundle_runtime__rspack_import_4/* .Agent.Text */.g.Text, {
14588
14733
  children: out.replyRoute.mode === 'auto' ? `Delivery ${out.delivery}; replies will arrive in Codex thread ${out.replyRoute.threadId}. Continue work; no polling needed.` : `Delivery ${out.delivery}${out.delivery === 'unknown' ? ' (no receipt; check the thread before resending)' : ''}; read the reply with gbot_thread.`
14589
14734
  })
14590
14735
  });
@@ -14676,9 +14821,9 @@ const inputSchema = zod__rspack_import_3/* .object */.Ikc({
14676
14821
  summary
14677
14822
  };
14678
14823
  if (!full) {
14679
- return /*#__PURE__*/ (0,react_jsx_runtime__rspack_import_0.jsx)(_agent_bundle_runtime__rspack_import_4/* .Agent.Result */.g6.Result, {
14824
+ return /*#__PURE__*/ (0,react_jsx_runtime__rspack_import_0.jsx)(_agent_bundle_runtime__rspack_import_4/* .Agent.Result */.g.Result, {
14680
14825
  value: receipt,
14681
- children: /*#__PURE__*/ (0,react_jsx_runtime__rspack_import_0.jsx)(_agent_bundle_runtime__rspack_import_4/* .Agent.Text */.g6.Text, {
14826
+ children: /*#__PURE__*/ (0,react_jsx_runtime__rspack_import_0.jsx)(_agent_bundle_runtime__rspack_import_4/* .Agent.Text */.g.Text, {
14682
14827
  children: summary
14683
14828
  })
14684
14829
  });
@@ -14687,9 +14832,9 @@ const inputSchema = zod__rspack_import_3/* .object */.Ikc({
14687
14832
  ...receipt,
14688
14833
  entries
14689
14834
  };
14690
- return /*#__PURE__*/ (0,react_jsx_runtime__rspack_import_0.jsx)(_agent_bundle_runtime__rspack_import_4/* .Agent.Result */.g6.Result, {
14835
+ return /*#__PURE__*/ (0,react_jsx_runtime__rspack_import_0.jsx)(_agent_bundle_runtime__rspack_import_4/* .Agent.Result */.g.Result, {
14691
14836
  value: value,
14692
- children: /*#__PURE__*/ (0,react_jsx_runtime__rspack_import_0.jsx)(_agent_bundle_runtime__rspack_import_4/* .Agent.Text */.g6.Text, {
14837
+ children: /*#__PURE__*/ (0,react_jsx_runtime__rspack_import_0.jsx)(_agent_bundle_runtime__rspack_import_4/* .Agent.Text */.g.Text, {
14693
14838
  children: summary
14694
14839
  })
14695
14840
  });
@@ -15101,50 +15246,11 @@ const Agent = Object.freeze({
15101
15246
  Result: AgentResult,
15102
15247
  Text: AgentText
15103
15248
  });
15104
- const Result = ({ children })=>createElement('agent-hook-result', null, children);
15105
- const AdditionalContext = ({ children })=>createElement('agent-hook-additional-context', null, children);
15106
- const Hook = (/* unused pure expression or super */ null && ({
15107
- AdditionalContext: AdditionalContext,
15108
- Result: Result
15109
- }));
15110
- const McpResult = ({ _meta, children, isError, structuredContent })=>createElement('mcp-result', {
15111
- _meta,
15112
- isError,
15113
- structuredContent
15114
- }, children);
15115
- const McpText = ({ children })=>createElement('mcp-text', null, children);
15116
- const McpImage = ({ data, mimeType })=>createElement('mcp-image', {
15117
- data,
15118
- mimeType
15119
- });
15120
- const McpAudio = ({ data, mimeType })=>createElement('mcp-audio', {
15121
- data,
15122
- mimeType
15123
- });
15124
- const McpResourceLink = ({ mimeType, name, uri })=>createElement('mcp-resource-link', {
15125
- mimeType,
15126
- name,
15127
- uri
15128
- });
15129
- const McpEmbeddedResource = ({ blob, children, mimeType, text, uri })=>createElement('mcp-embedded-resource', {
15130
- blob,
15131
- mimeType,
15132
- text,
15133
- uri
15134
- }, children);
15135
- const Mcp = (/* unused pure expression or super */ null && ({
15136
- Audio: McpAudio,
15137
- EmbeddedResource: McpEmbeddedResource,
15138
- Image: McpImage,
15139
- ResourceLink: McpResourceLink,
15140
- Result: McpResult,
15141
- Text: McpText
15142
- }));
15143
15249
 
15144
15250
 
15145
15251
  __webpack_require__.d(__webpack_exports__, {
15146
15252
  }, {
15147
- g6: Agent
15253
+ g: Agent
15148
15254
  });
15149
15255
 
15150
15256
 
@@ -17164,7 +17270,7 @@ function strictObject(shape, params) {
17164
17270
  type: "object",
17165
17271
  shape,
17166
17272
  catchall: never(),
17167
- ...util.normalizeParams(params),
17273
+ ..._core_index_js__rspack_import_4/* .normalizeParams */.A2(params),
17168
17274
  });
17169
17275
  }
17170
17276
  // looseObject
@@ -17798,6 +17904,7 @@ __webpack_require__.d(__webpack_exports__, {
17798
17904
  euz: () => (literal),
17799
17905
  g1P: () => (record),
17800
17906
  k5n: () => (_enum),
17907
+ rej: () => (strictObject),
17801
17908
  zMY: () => (boolean)
17802
17909
  });
17803
17910
 
@@ -27079,10 +27186,10 @@ function listDesktopProcesses(timeoutMs = DESKTOP_PROCESS_LIST_TIMEOUT_MS) {
27079
27186
  const lines = Array.isArray(listProcesses) ? listProcesses : String(listProcesses ?? "").split(/\r?\n/);
27080
27187
  for (const line of lines){
27081
27188
  if (!/app-server/.test(line)) continue;
27082
- // Desktop's bundled binary, Mac or Windows-style separators with optional .exe.
27189
+ // Desktop's bundled binary only (Mac/Windows separators, optional .exe).
27190
+ // Do NOT match probe shells whose cmdline merely mentions ChatGPT.app +
27191
+ // app-server + codex-app-tools — that false-positives MATCH2 / Scout noise.
27083
27192
  if (/ChatGPT\.app[\\/].*Resources[\\/]codex(\.exe)?(["'\s]|$)/.test(line)) return "private-stdio";
27084
- // Same app-server line owned by ChatGPT.app carrying the app-tools override.
27085
- if (/ChatGPT\.app/.test(line) && /(codex_app|mcp_servers\.codex_app|codex-app-tools)/.test(line)) return "private-stdio";
27086
27193
  }
27087
27194
  return "unknown";
27088
27195
  }
@@ -28769,10 +28876,12 @@ function socketStateOf(path) {
28769
28876
  },
28770
28877
  "./src/core/gateway.js"(__unused_rspack___webpack_module__, __webpack_exports__, __webpack_require__) {
28771
28878
  /* import */ var node_crypto__rspack_import_0 = __webpack_require__("node:crypto");
28772
- /* import */ var _headers_js__rspack_import_4 = __webpack_require__("./src/core/headers.js");
28879
+ /* import */ var _headers_js__rspack_import_5 = __webpack_require__("./src/core/headers.js");
28773
28880
  /* import */ var _app_session_js__rspack_import_1 = __webpack_require__("./src/core/app-session.js");
28774
28881
  /* import */ var _store_js__rspack_import_2 = __webpack_require__("./src/core/store.js");
28775
28882
  /* import */ var _url_policy_js__rspack_import_3 = __webpack_require__("./src/core/url-policy.js");
28883
+ /* import */ var _grok_approvals_js__rspack_import_4 = __webpack_require__("./src/core/grok-approvals.js");
28884
+
28776
28885
 
28777
28886
 
28778
28887
 
@@ -28822,7 +28931,7 @@ function gatewayOverride() {
28822
28931
  kind: "gateway"
28823
28932
  }),
28824
28933
  gatewayToken: token,
28825
- gatewayHeaders: (0,_headers_js__rspack_import_4/* .headersFromEnv */.gx)()
28934
+ gatewayHeaders: (0,_headers_js__rspack_import_5/* .headersFromEnv */.gx)()
28826
28935
  };
28827
28936
  }
28828
28937
  return null;
@@ -28843,7 +28952,7 @@ function sessionFromApp() {
28843
28952
  kind: "gateway"
28844
28953
  }),
28845
28954
  gatewayToken: loaded.gatewayToken,
28846
- gatewayHeaders: (0,_headers_js__rspack_import_4/* .mergeGatewayHeaders */.bQ)((0,_headers_js__rspack_import_4/* .normalizeHeaderMap */.dk)(loaded.headers), (0,_headers_js__rspack_import_4/* .headersFromEnv */.gx)())
28955
+ gatewayHeaders: (0,_headers_js__rspack_import_5/* .mergeGatewayHeaders */.bQ)((0,_headers_js__rspack_import_5/* .normalizeHeaderMap */.dk)(loaded.headers), (0,_headers_js__rspack_import_5/* .headersFromEnv */.gx)())
28847
28956
  };
28848
28957
  }
28849
28958
  function hasGatewayAuth() {
@@ -28903,7 +29012,7 @@ async function ensureSandbox(accessToken, { signal } = {}) {
28903
29012
  method: "POST",
28904
29013
  redirect: "error",
28905
29014
  signal: gatewayDeadline(signal),
28906
- headers: (0,_headers_js__rspack_import_4/* .ensureSandboxHeaders */._6)(accessToken),
29015
+ headers: (0,_headers_js__rspack_import_5/* .ensureSandboxHeaders */._6)(accessToken),
28907
29016
  body: "{}"
28908
29017
  });
28909
29018
  body = await readJson(res);
@@ -28929,7 +29038,7 @@ async function ensureSandbox(accessToken, { signal } = {}) {
28929
29038
  kind: "gateway"
28930
29039
  }),
28931
29040
  gatewayToken: String(gatewayToken),
28932
- gatewayHeaders: (0,_headers_js__rspack_import_4/* .mergeGatewayHeaders */.bQ)((0,_headers_js__rspack_import_4/* .headersFromEnsureSandbox */.Ew)(body), (0,_headers_js__rspack_import_4/* .headersFromEnv */.gx)())
29041
+ gatewayHeaders: (0,_headers_js__rspack_import_5/* .mergeGatewayHeaders */.bQ)((0,_headers_js__rspack_import_5/* .headersFromEnsureSandbox */.Ew)(body), (0,_headers_js__rspack_import_5/* .headersFromEnv */.gx)())
28933
29042
  };
28934
29043
  }
28935
29044
  async function connectGateway({ signal } = {}) {
@@ -28959,7 +29068,7 @@ async function gatewayCall(session, method, body = {}, { signal } = {}) {
28959
29068
  method: "POST",
28960
29069
  redirect: "error",
28961
29070
  signal: gatewayDeadline(prompt ? undefined : signal),
28962
- headers: (0,_headers_js__rspack_import_4/* .requestHeaders */.A1)(session),
29071
+ headers: (0,_headers_js__rspack_import_5/* .requestHeaders */.A1)(session),
28963
29072
  body: JSON.stringify(body)
28964
29073
  };
28965
29074
  assertGatewayActive(signal); // Final synchronous boundary before transmission.
@@ -29226,14 +29335,115 @@ async function getThread(session, ref, rootId) {
29226
29335
  thread: data
29227
29336
  };
29228
29337
  }
29338
+ async function listGrokApprovals(session, ref) {
29339
+ const { target, transcript } = await getTranscriptTail(session, ref, 200);
29340
+ if (!Array.isArray(transcript?.entries) || transcript.entries.length > 200) throw new GatewayError("Invalid approval transcript coverage");
29341
+ return {
29342
+ target: {
29343
+ id: target.id,
29344
+ name: target.name
29345
+ },
29346
+ approvals: transcript.entries.map(_grok_approvals_js__rspack_import_4/* .grokApproval */.Ny).filter(Boolean),
29347
+ coverage: "Latest 200 transcript entries only; older requests require the owning Grok UI."
29348
+ };
29349
+ }
29350
+ async function respondGrokApproval(session, ref, input) {
29351
+ const { entryId, requestId, decision } = _grok_approvals_js__rspack_import_4/* .grokApprovalResponseSchema.parse */.T5.parse({
29352
+ ...input,
29353
+ target: ref
29354
+ });
29355
+ const { target, approvals } = await listGrokApprovals(session, ref);
29356
+ const matches = approvals.filter((card)=>card.entryId === entryId && card.requestId === requestId);
29357
+ if (matches.length !== 1) throw new GatewayError("Stale, foreign or unsupported Grok approval; refresh pending requests or use the owning Grok UI");
29358
+ const approval = matches[0];
29359
+ if (decision === "accept" && approval.truncated) throw new GatewayError("Approval details are truncated; acceptance requires the owning Grok UI");
29360
+ const local = approval.type === "local-tool-permission";
29361
+ await gatewayCall(session, local ? "resolveLocalToolPermission" : "resolveAutoReviewApproval", {
29362
+ agentId: target.id,
29363
+ entryId,
29364
+ requestId,
29365
+ resolution: local ? decision === "accept" ? "allow-once" : "deny" : decision === "accept" ? "approved" : "denied"
29366
+ });
29367
+ return {
29368
+ target,
29369
+ entryId,
29370
+ requestId,
29371
+ decision,
29372
+ delivery: "accepted"
29373
+ };
29374
+ }
29229
29375
 
29230
29376
  __webpack_require__.d(__webpack_exports__, {
29231
29377
  LV: () => (sendPrompt),
29378
+ MI: () => (listGrokApprovals),
29379
+ OR: () => (respondGrokApproval),
29232
29380
  Vq: () => (connectGateway),
29233
29381
  bA: () => (getTranscriptTail)
29234
29382
  });
29235
29383
 
29236
29384
 
29385
+ },
29386
+ "./src/core/grok-approvals.js"(__unused_rspack___webpack_module__, __webpack_exports__, __webpack_require__) {
29387
+ /* import */ var zod__rspack_import_1 = __webpack_require__("./node_modules/zod/v4/classic/schemas.js");
29388
+ /* import */ var _url_policy_js__rspack_import_0 = __webpack_require__("./src/core/url-policy.js");
29389
+
29390
+
29391
+ const id = zod__rspack_import_1/* .string */.YjP().min(1).max(1024);
29392
+ const grokApprovalResponseSchema = zod__rspack_import_1/* .strictObject */.rej({
29393
+ target: id,
29394
+ entryId: id,
29395
+ requestId: id,
29396
+ decision: zod__rspack_import_1/* ["enum"] */.k5n([
29397
+ "accept",
29398
+ "decline"
29399
+ ])
29400
+ });
29401
+ function grokApproval(entry) {
29402
+ if (entry?.kind !== "send-message") return null;
29403
+ const type = entry.message?.type;
29404
+ const card = type === "auto-review-approval" ? entry.message.approval : type === "local-tool-permission" ? entry.message.ask : null;
29405
+ if (card?.status !== "pending" || !id.safeParse(card.requestId).success || !id.safeParse(entry.id).success) return null;
29406
+ const details = {};
29407
+ let truncated = false;
29408
+ for (const key of [
29409
+ "reason",
29410
+ "command",
29411
+ "summary",
29412
+ "action",
29413
+ "description",
29414
+ "target",
29415
+ "machineId",
29416
+ "surface",
29417
+ "workingDirectory"
29418
+ ]){
29419
+ if (typeof card[key] !== "string") continue;
29420
+ const text = (0,_url_policy_js__rspack_import_0/* .redactSecrets */.fp)(card[key]);
29421
+ truncated ||= text.length > 2048;
29422
+ details[key] = text.slice(0, 2048);
29423
+ }
29424
+ return {
29425
+ entryId: entry.id,
29426
+ requestId: card.requestId,
29427
+ type,
29428
+ ...details,
29429
+ truncated
29430
+ };
29431
+ }
29432
+ function grokApprovalNotice(entry, target) {
29433
+ const approval = grokApproval(entry);
29434
+ return approval ? `Grok approval pending. Requires an explicit user decision; never approve automatically.\n${JSON.stringify({
29435
+ botTarget: target,
29436
+ ...approval
29437
+ })}\nUse gbot_grok_respond with target=${JSON.stringify(target)}, entryId, requestId and decision accept (once) or decline.${approval.truncated ? " Details are truncated; acceptance requires the owning Grok UI." : ""} A chat reply is not authorization.` : null;
29438
+ }
29439
+
29440
+ __webpack_require__.d(__webpack_exports__, {
29441
+ Ny: () => (grokApproval)
29442
+ }, {
29443
+ T5: grokApprovalResponseSchema
29444
+ });
29445
+
29446
+
29237
29447
  },
29238
29448
  "./src/core/headers.js"(__unused_rspack___webpack_module__, __webpack_exports__, __webpack_require__) {
29239
29449
  function normalizeHeaderMap(obj) {
@@ -29529,7 +29739,10 @@ function relayProfile(env = process.env) {
29529
29739
  "GROK_BOT_ALLOW_LOCAL_GATEWAY",
29530
29740
  "GROK_BOT_ALLOW_ANY_GATEWAY",
29531
29741
  "GROK_BOT_TEST",
29532
- "NODE_ENV"
29742
+ "NODE_ENV",
29743
+ // Secret Service credentials depend on the caller's desktop session.
29744
+ "DBUS_SESSION_BUS_ADDRESS",
29745
+ "DISPLAY"
29533
29746
  ];
29534
29747
  return digest(JSON.stringify([
29535
29748
  (0,node_path__rspack_import_2.resolve)((0,_codex_bridge_js__rspack_import_3/* .codexSocketPath */.ql)(env)),
@@ -30108,7 +30321,7 @@ __webpack_require__.d(__webpack_exports__, {
30108
30321
 
30109
30322
  },
30110
30323
  "./package.json"(module) {
30111
- module.exports = {"rE":"0.6.0"}
30324
+ module.exports = {"rE":"0.7.0"}
30112
30325
 
30113
30326
  },
30114
30327
 
@@ -30174,10 +30387,10 @@ __webpack_require__.r = (exports) => {
30174
30387
  var __webpack_exports__ = {};
30175
30388
  /* import */ var node_worker_threads__rspack_import_0 = __webpack_require__("node:worker_threads");
30176
30389
  /* import */ var react__rspack_import_1 = __webpack_require__("./node_modules/react/react.react-server.js");
30177
- /* import */ var _agent_bundle_runtime_flight_server__rspack_import_16 = __webpack_require__("./node_modules/@agent-bundle/runtime/dist/flight/server.js");
30178
- /* import */ var _agent_bundle_runtime__rspack_import_13 = __webpack_require__("./node_modules/@agent-bundle/runtime/dist/49.js");
30179
- /* import */ var _agent_bundle_runtime__rspack_import_14 = __webpack_require__("./node_modules/@agent-bundle/runtime/dist/736.js");
30180
- /* import */ var _agent_bundle_runtime__rspack_import_15 = __webpack_require__("./node_modules/@agent-bundle/runtime/dist/506.js");
30390
+ /* import */ var _agent_bundle_runtime_flight_server__rspack_import_18 = __webpack_require__("./node_modules/@agent-bundle/runtime/dist/flight/server.js");
30391
+ /* import */ var _agent_bundle_runtime__rspack_import_15 = __webpack_require__("./node_modules/@agent-bundle/runtime/dist/49.js");
30392
+ /* import */ var _agent_bundle_runtime__rspack_import_16 = __webpack_require__("./node_modules/@agent-bundle/runtime/dist/736.js");
30393
+ /* import */ var _agent_bundle_runtime__rspack_import_17 = __webpack_require__("./node_modules/@agent-bundle/runtime/dist/506.js");
30181
30394
  /* import */ var node_url__rspack_import_2 = __webpack_require__("node:url");
30182
30395
  /* import */ var _home_runner_work_grok_bot_cli_grok_bot_cli_src_mcp_grok_bot_tools_codex_send_tsx__rspack_import_3 = __webpack_require__("./src/mcp/grok-bot/tools/codex_send.tsx");
30183
30396
  /* import */ var _home_runner_work_grok_bot_cli_grok_bot_cli_src_mcp_grok_bot_tools_codex_threads_tsx__rspack_import_4 = __webpack_require__("./src/mcp/grok-bot/tools/codex_threads.tsx");
@@ -30187,8 +30400,10 @@ var __webpack_exports__ = {};
30187
30400
  /* import */ var _home_runner_work_grok_bot_cli_grok_bot_cli_src_mcp_grok_bot_tools_gbot_bridge_status_tsx__rspack_import_8 = __webpack_require__("./src/mcp/grok-bot/tools/gbot_bridge_status.tsx");
30188
30401
  /* import */ var _home_runner_work_grok_bot_cli_grok_bot_cli_src_mcp_grok_bot_tools_gbot_bridge_stop_tsx__rspack_import_9 = __webpack_require__("./src/mcp/grok-bot/tools/gbot_bridge_stop.tsx");
30189
30402
  /* import */ var _home_runner_work_grok_bot_cli_grok_bot_cli_src_mcp_grok_bot_tools_gbot_codex_respond_tsx__rspack_import_10 = __webpack_require__("./src/mcp/grok-bot/tools/gbot_codex_respond.tsx");
30190
- /* import */ var _home_runner_work_grok_bot_cli_grok_bot_cli_src_mcp_grok_bot_tools_gbot_send_tsx__rspack_import_11 = __webpack_require__("./src/mcp/grok-bot/tools/gbot_send.tsx");
30191
- /* import */ var _home_runner_work_grok_bot_cli_grok_bot_cli_src_mcp_grok_bot_tools_gbot_thread_tsx__rspack_import_12 = __webpack_require__("./src/mcp/grok-bot/tools/gbot_thread.tsx");
30403
+ /* import */ var _home_runner_work_grok_bot_cli_grok_bot_cli_src_mcp_grok_bot_tools_gbot_grok_approvals_tsx__rspack_import_11 = __webpack_require__("./src/mcp/grok-bot/tools/gbot_grok_approvals.tsx");
30404
+ /* import */ var _home_runner_work_grok_bot_cli_grok_bot_cli_src_mcp_grok_bot_tools_gbot_grok_respond_tsx__rspack_import_12 = __webpack_require__("./src/mcp/grok-bot/tools/gbot_grok_respond.tsx");
30405
+ /* import */ var _home_runner_work_grok_bot_cli_grok_bot_cli_src_mcp_grok_bot_tools_gbot_send_tsx__rspack_import_13 = __webpack_require__("./src/mcp/grok-bot/tools/gbot_send.tsx");
30406
+ /* import */ var _home_runner_work_grok_bot_cli_grok_bot_cli_src_mcp_grok_bot_tools_gbot_thread_tsx__rspack_import_14 = __webpack_require__("./src/mcp/grok-bot/tools/gbot_thread.tsx");
30192
30407
 
30193
30408
 
30194
30409
 
@@ -30211,22 +30426,26 @@ const route6 = Object.assign({}, Reflect.get(_home_runner_work_grok_bot_cli_grok
30211
30426
 
30212
30427
  const route7 = Object.assign({}, Reflect.get(_home_runner_work_grok_bot_cli_grok_bot_cli_src_mcp_grok_bot_tools_gbot_codex_respond_tsx__rspack_import_10, 'default'), _home_runner_work_grok_bot_cli_grok_bot_cli_src_mcp_grok_bot_tools_gbot_codex_respond_tsx__rspack_import_10);
30213
30428
 
30214
- const route8 = Object.assign({}, Reflect.get(_home_runner_work_grok_bot_cli_grok_bot_cli_src_mcp_grok_bot_tools_gbot_send_tsx__rspack_import_11, 'default'), _home_runner_work_grok_bot_cli_grok_bot_cli_src_mcp_grok_bot_tools_gbot_send_tsx__rspack_import_11);
30429
+ const route8 = Object.assign({}, Reflect.get(_home_runner_work_grok_bot_cli_grok_bot_cli_src_mcp_grok_bot_tools_gbot_grok_approvals_tsx__rspack_import_11, 'default'), _home_runner_work_grok_bot_cli_grok_bot_cli_src_mcp_grok_bot_tools_gbot_grok_approvals_tsx__rspack_import_11);
30430
+
30431
+ const route9 = Object.assign({}, Reflect.get(_home_runner_work_grok_bot_cli_grok_bot_cli_src_mcp_grok_bot_tools_gbot_grok_respond_tsx__rspack_import_12, 'default'), _home_runner_work_grok_bot_cli_grok_bot_cli_src_mcp_grok_bot_tools_gbot_grok_respond_tsx__rspack_import_12);
30432
+
30433
+ const route10 = Object.assign({}, Reflect.get(_home_runner_work_grok_bot_cli_grok_bot_cli_src_mcp_grok_bot_tools_gbot_send_tsx__rspack_import_13, 'default'), _home_runner_work_grok_bot_cli_grok_bot_cli_src_mcp_grok_bot_tools_gbot_send_tsx__rspack_import_13);
30215
30434
 
30216
- const route9 = Object.assign({}, Reflect.get(_home_runner_work_grok_bot_cli_grok_bot_cli_src_mcp_grok_bot_tools_gbot_thread_tsx__rspack_import_12, 'default'), _home_runner_work_grok_bot_cli_grok_bot_cli_src_mcp_grok_bot_tools_gbot_thread_tsx__rspack_import_12);
30435
+ const route11 = Object.assign({}, Reflect.get(_home_runner_work_grok_bot_cli_grok_bot_cli_src_mcp_grok_bot_tools_gbot_thread_tsx__rspack_import_14, 'default'), _home_runner_work_grok_bot_cli_grok_bot_cli_src_mcp_grok_bot_tools_gbot_thread_tsx__rspack_import_14);
30217
30436
  // Generated routes contain only intrinsic Agent protocol elements, so no client references exist.
30218
30437
  globalThis.__rspack_rsc_manifest__ ??= Object.freeze({
30219
30438
  clientManifest: Object.freeze({})
30220
30439
  });
30221
30440
  if (node_worker_threads__rspack_import_0.parentPort === null) throw new Error('Generated Flight worker requires a parent port.');
30222
30441
  process.stdout.write = process.stderr.write.bind(process.stderr);
30223
- const ARTIFACT_EPOCH = "gbot@0.6.0";
30442
+ const ARTIFACT_EPOCH = "gbot@0.7.0";
30224
30443
  const processLifetime = {
30225
30444
  hits: 0,
30226
30445
  instanceId: crypto.randomUUID(),
30227
30446
  pid: process.pid
30228
30447
  };
30229
- const pluginRoot = (0,_agent_bundle_runtime__rspack_import_13/* .resolvePluginRoot */.E7)({
30448
+ const pluginRoot = (0,_agent_bundle_runtime__rspack_import_15/* .resolvePluginRoot */.E7)({
30230
30449
  fallback: (0,node_url__rspack_import_2.fileURLToPath)(new URL('..', import.meta.url)),
30231
30450
  stateAnchor: 'user-data'
30232
30451
  });
@@ -30581,6 +30800,74 @@ const routes = Object.freeze({
30581
30800
  name: "gbot_codex_respond",
30582
30801
  serverId: "mcp:grok-bot"
30583
30802
  }),
30803
+ "tool:grok-bot/gbot_grok_approvals": Object.freeze({
30804
+ config: {
30805
+ "annotations": {
30806
+ "readOnlyHint": true
30807
+ },
30808
+ "description": "List pending auto-review and local-tool approval cards in the latest 200 entries for a Grok bot. Older or unsupported requests require the owning Grok UI.",
30809
+ "inputJsonSchema": {
30810
+ "additionalProperties": false,
30811
+ "properties": {
30812
+ "target": {
30813
+ "type": "string"
30814
+ }
30815
+ },
30816
+ "required": [
30817
+ "target"
30818
+ ],
30819
+ "type": "object"
30820
+ },
30821
+ "title": "Pending Grok approvals"
30822
+ },
30823
+ id: "tool:grok-bot/gbot_grok_approvals",
30824
+ kind: "tool",
30825
+ module: route8,
30826
+ name: "gbot_grok_approvals",
30827
+ serverId: "mcp:grok-bot"
30828
+ }),
30829
+ "tool:grok-bot/gbot_grok_respond": Object.freeze({
30830
+ config: {
30831
+ "annotations": {
30832
+ "readOnlyHint": false
30833
+ },
30834
+ "description": "Only after an explicit user decision: accept one current Grok approval once or decline it. Exact target, entryId and approval requestId required. Never auto-approve or grant persistent permissions. Success acknowledges response delivery, not execution.",
30835
+ "inputJsonSchema": {
30836
+ "additionalProperties": false,
30837
+ "properties": {
30838
+ "decision": {
30839
+ "enum": [
30840
+ "accept",
30841
+ "decline"
30842
+ ],
30843
+ "type": "string"
30844
+ },
30845
+ "entryId": {
30846
+ "type": "string"
30847
+ },
30848
+ "requestId": {
30849
+ "type": "string"
30850
+ },
30851
+ "target": {
30852
+ "type": "string"
30853
+ }
30854
+ },
30855
+ "required": [
30856
+ "target",
30857
+ "entryId",
30858
+ "requestId",
30859
+ "decision"
30860
+ ],
30861
+ "type": "object"
30862
+ },
30863
+ "title": "Respond to Grok approval"
30864
+ },
30865
+ id: "tool:grok-bot/gbot_grok_respond",
30866
+ kind: "tool",
30867
+ module: route9,
30868
+ name: "gbot_grok_respond",
30869
+ serverId: "mcp:grok-bot"
30870
+ }),
30584
30871
  "tool:grok-bot/gbot_send": Object.freeze({
30585
30872
  config: {
30586
30873
  "annotations": {
@@ -30633,7 +30920,7 @@ const routes = Object.freeze({
30633
30920
  },
30634
30921
  id: "tool:grok-bot/gbot_send",
30635
30922
  kind: "tool",
30636
- module: route8,
30923
+ module: route10,
30637
30924
  name: "gbot_send",
30638
30925
  serverId: "mcp:grok-bot"
30639
30926
  }),
@@ -30674,7 +30961,7 @@ const routes = Object.freeze({
30674
30961
  },
30675
30962
  id: "tool:grok-bot/gbot_thread",
30676
30963
  kind: "tool",
30677
- module: route9,
30964
+ module: route11,
30678
30965
  name: "gbot_thread",
30679
30966
  serverId: "mcp:grok-bot"
30680
30967
  })
@@ -30722,7 +31009,7 @@ const render = async (message)=>{
30722
31009
  };
30723
31010
  try {
30724
31011
  const plugin = message.plugin ?? pluginRoot.identity;
30725
- await (0,_agent_bundle_runtime__rspack_import_14/* .runAgentRequest */.iC)({
31012
+ await (0,_agent_bundle_runtime__rspack_import_16/* .runAgentRequest */.iC)({
30726
31013
  ...message.actor === undefined ? {} : {
30727
31014
  actor: message.actor
30728
31015
  },
@@ -30736,7 +31023,7 @@ const render = async (message)=>{
30736
31023
  operationId: route.id,
30737
31024
  surface: route.name
30738
31025
  },
30739
- lineage: message.lineage ?? (0,_agent_bundle_runtime__rspack_import_14/* .unavailable */.hU)('not-provided'),
31026
+ lineage: message.lineage ?? (0,_agent_bundle_runtime__rspack_import_16/* .unavailable */.hU)('not-provided'),
30740
31027
  plugin,
30741
31028
  progress: {
30742
31029
  report: async (update)=>{
@@ -30752,7 +31039,7 @@ const render = async (message)=>{
30752
31039
  session: message.session
30753
31040
  },
30754
31041
  signal: controller.signal,
30755
- terminal: message.terminal ?? (0,_agent_bundle_runtime__rspack_import_14/* .unavailable */.hU)('not-provided'),
31042
+ terminal: message.terminal ?? (0,_agent_bundle_runtime__rspack_import_16/* .unavailable */.hU)('not-provided'),
30756
31043
  ...message.workspace === undefined ? {} : {
30757
31044
  workspace: message.workspace
30758
31045
  }
@@ -30787,10 +31074,10 @@ const render = async (message)=>{
30787
31074
  type: 'observed-render-start'
30788
31075
  });
30789
31076
  const renderStartedAt = performance.now();
30790
- const element = validationError === undefined ? composeLayouts(observedRoute, props, controller.signal) : /*#__PURE__*/ (0,react__rspack_import_1.createElement)(_agent_bundle_runtime__rspack_import_15/* .Agent.Result */.g6.Result, null, /*#__PURE__*/ (0,react__rspack_import_1.createElement)(_agent_bundle_runtime__rspack_import_15/* .Agent.Error */.g6.Error, {
31077
+ const element = validationError === undefined ? composeLayouts(observedRoute, props, controller.signal) : /*#__PURE__*/ (0,react__rspack_import_1.createElement)(_agent_bundle_runtime__rspack_import_17/* .Agent.Result */.g.Result, null, /*#__PURE__*/ (0,react__rspack_import_1.createElement)(_agent_bundle_runtime__rspack_import_17/* .Agent.Error */.g.Error, {
30791
31078
  code: 'invalid-input'
30792
31079
  }, `Input validation error: ${validationError instanceof Error ? validationError.message : String(validationError)}`));
30793
- const flight = (0,_agent_bundle_runtime_flight_server__rspack_import_16/* .renderAgentFlight */.y)(element, {
31080
+ const flight = (0,_agent_bundle_runtime_flight_server__rspack_import_18/* .renderAgentFlight */.y)(element, {
30794
31081
  signal: controller.signal
30795
31082
  });
30796
31083
  const reader = flight.getReader();