@xenosystem/agent-conversation 0.1.178 β†’ 0.1.180

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.
@@ -28,19 +28,6 @@ interface TeamAgentSummary {
28
28
  templateName?: string;
29
29
  isMainAssistant?: boolean;
30
30
  }
31
- /**
32
- * The chat surface's props.
33
- *
34
- * πŸ”΄ Exported because this component IS the XENO Agent conversation β€” transcript, composer, and
35
- * the logic behind them. The sidebar, session list and header tabs live in `AgentInterface`, which
36
- * renders this inside itself, so a host that mounts `AgentInterface` gets a whole application in a
37
- * tile rather than a conversation.
38
- *
39
- * πŸ”΄ It is mode-NEUTRAL. Chat and Agent are capability profiles of this one surface, carried by
40
- * the conversation's scope (`workspaceMode: 'chat'` vs `'agent'`) and expressed here
41
- * through `allowedDirectories`, `capabilities` and `permissionProfile` β€” never by a flag that
42
- * would let the two blur.
43
- */
44
31
  export interface AgentViewProps {
45
32
  agentId: string;
46
33
  workspaceId?: string;
@@ -185,6 +172,7 @@ export interface AgentViewProps {
185
172
  onPeekEditorDiff?: (diff: ConversationEditorDiff) => void;
186
173
  onOpenRuntimeSettings?: () => void;
187
174
  onOpenConversationSettings?: () => void;
175
+ onOpenChanges?: () => void;
188
176
  /** Open another conversation β€” a branch made from this one, for instance. */
189
177
  onOpenConversation?: (conversationId: string) => void;
190
178
  onSelectSdkRuntime?: () => void;
@@ -1 +1 @@
1
- {"version":3,"file":"AgentView.d.ts","sourceRoot":"","sources":["../../../src/components/agent/AgentView.tsx"],"names":[],"mappings":"AAcA,OAAO,KAA4D,MAAM,OAAO,CAAA;AAMhF,OAAO,EAA4P,KAAK,YAAY,EAA2N,MAAM,gCAAgC,CAAA;AAqDrhB,OAAO,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAA;AACvH,OAAO,KAAK,EACV,wBAAwB,EAEzB,MAAM,qCAAqC,CAAA;AAC5C,OAAO,KAAK,EAAE,sBAAsB,EAA2B,MAAM,4BAA4B,CAAA;AA0BjG,OAAO,EAA6C,KAAK,wBAAwB,EAAE,MAAM,+CAA+C,CAAA;AAGxI,OAAO,KAAK,EAAE,iBAAiB,EAAkC,MAAM,sCAAsC,CAAA;AAE7G;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,iBAAiB,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAM/F;AAED,0GAA0G;AAC1G,wBAAgB,eAAe,CAAC,OAAO,EAAE,iBAAiB,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAG1F;AAQD,UAAU,UAAU;IAClB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;CACvB;AAED,UAAU,gBAAgB;IACxB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,sBAAsB,CAAC,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,IAAI,CAAA;IACzD,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,YAAY,CAAC,EAAE,iBAAiB,CAAA;IAChC;;;;OAIG;IACH,OAAO,CAAC,EAAE;QAAE,SAAS,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IACjD;;;OAGG;IACH,KAAK,CAAC,EAAE,aAAa,CAAC,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,CAAA;IACnD;;;;OAIG;IACH,eAAe,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IAC/C,iBAAiB,CAAC,EAAE,0BAA0B,CAAA;IAC9C,gBAAgB,CAAC,EAAE,wBAAwB,CAAA;IAC3C,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC7B,aAAa,CAAC,EAAE,iBAAiB,EAAE,CAAA;IACnC,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,iBAAiB,EAAE,IAAI,GAAG,WAAW,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,GAAG,WAAW,CAAC,CAAC,KAAK,IAAI,CAAA;IACtI,WAAW,CAAC,EAAE,UAAU,EAAE,CAAA;IAC1B,UAAU,CAAC,EAAE,gBAAgB,EAAE,CAAA;IAC/B,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE;QACvB,aAAa,EAAE,MAAM,CAAA;QACrB,IAAI,EAAE,MAAM,CAAA;QACZ,YAAY,CAAC,EAAE,MAAM,CAAA;KACtB,KAAK,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IACzF,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE;QACpB,aAAa,EAAE,MAAM,CAAA;QACrB,oBAAoB,CAAC,EAAE,MAAM,CAAA;QAC7B,eAAe,CAAC,EAAE,MAAM,CAAA;QACxB,eAAe,EAAE,MAAM,CAAA;QACvB,MAAM,EAAE,MAAM,CAAA;KACf,KAAK,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,eAAe,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,oBAAoB,CAAC,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IACpJ,iBAAiB,CAAC,EAAE,CAAC,MAAM,EAAE;QAC3B,IAAI,EAAE,MAAM,CAAA;KACb,KAAK,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IACjG,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE;QACtB,YAAY,EAAE,MAAM,CAAA;QACpB,IAAI,EAAE,MAAM,CAAA;KACb,KAAK,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAC/G,iBAAiB,CAAC,EAAE,CAAC,MAAM,EAAE;QAC3B,YAAY,EAAE,MAAM,CAAA;QACpB,OAAO,EAAE,MAAM,CAAA;QACf,IAAI,EAAE,MAAM,CAAA;QACZ,YAAY,CAAC,EAAE,MAAM,CAAA;KACtB,KAAK,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IACpI,iBAAiB,CAAC,EAAE,MAAM,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IACvE,qBAAqB,CAAC,EAAE,MAAM,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAC/F,0BAA0B,CAAC,EAAE,CAAC,MAAM,EAAE;QACpC,cAAc,EAAE,MAAM,CAAA;QACtB,SAAS,EAAE,MAAM,CAAA;QACjB,KAAK,EAAE,MAAM,CAAA;KACd,KAAK,OAAO,CAAC;QACZ,iBAAiB,CAAC,EAAE;YAClB,WAAW,EAAE,MAAM,CAAA;YACnB,aAAa,EAAE,MAAM,CAAA;SACtB,CAAA;QACD,sBAAsB,EAAE,MAAM,CAAA;KAC/B,CAAC,CAAA;IACF,kCAAkC,CAAC,EAAE,CAAC,MAAM,EAAE;QAC5C,cAAc,EAAE,MAAM,CAAA;QACtB,SAAS,EAAE,MAAM,CAAA;QACjB,KAAK,EAAE,MAAM,CAAA;QACb,IAAI,EAAE,OAAO,GAAG,QAAQ,CAAA;QACxB,WAAW,CAAC,EAAE,MAAM,CAAA;KACrB,KAAK,OAAO,CAAC;QACZ,OAAO,EAAE,OAAO,CAAA;QAChB,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,OAAO,CAAC,EAAE,MAAM,CAAA;QAChB,aAAa,CAAC,EAAE,MAAM,CAAA;QACtB,SAAS,CAAC,EAAE,MAAM,CAAA;QAClB,KAAK,CAAC,EAAE,MAAM,CAAA;KACf,CAAC,CAAA;IACF,4BAA4B,CAAC,EAAE,CAAC,MAAM,EAAE;QACtC,cAAc,EAAE,MAAM,CAAA;QACtB,OAAO,EAAE,MAAM,CAAA;KAChB,KAAK,IAAI,CAAA;IACV,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IACzC,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,sBAAsB,KAAK,IAAI,CAAA;IACzD,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IACzC,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,sBAAsB,KAAK,IAAI,CAAA;IACzD,qBAAqB,CAAC,EAAE,MAAM,IAAI,CAAA;IAClC,0BAA0B,CAAC,EAAE,MAAM,IAAI,CAAA;IACvC,6EAA6E;IAC7E,kBAAkB,CAAC,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,IAAI,CAAA;IACrD,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAA;IAC/B,kBAAkB,CAAC,EAAE,CAAC,gBAAgB,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;IAChF,qBAAqB,CAAC,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,IAAI,CAAA;IACxD,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAC9B,uBAAuB,CAAC,EAAE,MAAM,CAAA;IAChC,+EAA+E;IAC/E,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC,CAAA;CAC3F;AAmsGD,UAAU,2BAA2B;IACnC,oBAAoB,EAAE,MAAM,CAAA;IAC5B,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,sBAAsB,EAAE,MAAM,CAAA;IAC9B,SAAS,EAAE,OAAO,CAAA;IAClB,QAAQ,EAAE,CAAC,MAAM,EAAE,wBAAwB,KAAK,IAAI,CAAA;CACrD;AAED,wBAAgB,cAAc,CAAC,EAC7B,KAAK,EACL,SAAS,EACT,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,uBAAuB,EACvB,gBAAgB,EAChB,sBAAsB,GACvB,EAAE;IACD,KAAK,EAAE,YAAY,EAAE,CAAA;IACrB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,iBAAiB,CAAC,EAAE,cAAc,CAAC,mBAAmB,CAAC,CAAA;IACvD,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IACzC,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,sBAAsB,KAAK,IAAI,CAAA;IACzD,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IACzC,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,sBAAsB,KAAK,IAAI,CAAA;IACzD,uBAAuB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,EAAE,YAAY,KAAK,IAAI,CAAA;IACzF,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,CAAA;IACjD,sBAAsB,CAAC,EAAE,2BAA2B,CAAA;CACrD,4BAm5BA;AAqHD,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,qBAq7M9C"}
1
+ {"version":3,"file":"AgentView.d.ts","sourceRoot":"","sources":["../../../src/components/agent/AgentView.tsx"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { nextAutoFix, pullRequestFixPrompt } from '../../pullRequestFixes.js';
2
3
  import { getAgentPlatformBridge, getOptionalAgentPlatformBridge } from '../../platformBridge.js';
3
4
  import { copyTextWithFallback } from '../../utils/clipboardCopy.js';
4
5
  import { holdSendForModelCatalog } from './holdSendForModelCatalog.js';
@@ -82,6 +83,25 @@ export function modelFundingTag(funding) {
82
83
  }
83
84
  import { AgentProviderSelectorController } from '../../providerSelector.js';
84
85
  import { loadHubAgentProviderCatalog, refreshHubAgentProviderCatalog, subscribeHubAgentProviderCatalog, } from '../../adapters/xenoAgentHostCatalog.js';
86
+ /**
87
+ * The chat surface's props.
88
+ *
89
+ * πŸ”΄ Exported because this component IS the XENO Agent conversation β€” transcript, composer, and
90
+ * the logic behind them. The sidebar, session list and header tabs live in `AgentInterface`, which
91
+ * renders this inside itself, so a host that mounts `AgentInterface` gets a whole application in a
92
+ * tile rather than a conversation.
93
+ *
94
+ * πŸ”΄ It is mode-NEUTRAL. Chat and Agent are capability profiles of this one surface, carried by
95
+ * the conversation's scope (`workspaceMode: 'chat'` vs `'agent'`) and expressed here
96
+ * through `allowedDirectories`, `capabilities` and `permissionProfile` β€” never by a flag that
97
+ * would let the two blur.
98
+ */
99
+ function pullRequestLabel(pr) {
100
+ const passed = pr.checks.filter((check) => check.state === 'passed').length;
101
+ const failed = pr.checks.filter((check) => check.state === 'failed').length;
102
+ const counts = pr.checks.length === 0 ? '' : failed > 0 ? ` Β· ${failed} failed` : ` Β· ${passed}/${pr.checks.length}`;
103
+ return `PR #${pr.number}${counts}`;
104
+ }
85
105
  /**
86
106
  * The seed used before any catalog has loaded β€” and NOT a claim that this model exists.
87
107
  *
@@ -6282,6 +6302,19 @@ export function AgentView(props) {
6282
6302
  };
6283
6303
  const handleSendRef = useRef(handleSend);
6284
6304
  handleSendRef.current = handleSend;
6305
+ const dispatchSendRef = useRef(dispatchSend);
6306
+ dispatchSendRef.current = dispatchSend;
6307
+ const pendingPrompt = conversation?.sessionUi?.pendingPrompt;
6308
+ useEffect(() => {
6309
+ if (!pendingPrompt || !conversationId)
6310
+ return;
6311
+ const sessionUi = useAgentChatStore.getState().getConversation(conversationId)?.sessionUi;
6312
+ if (sessionUi?.pendingPrompt?.id !== pendingPrompt.id)
6313
+ return;
6314
+ const { pendingPrompt: _sent, ...rest } = sessionUi;
6315
+ updateConversation(conversationId, { sessionUi: rest });
6316
+ dispatchSendRef.current(pendingPrompt.text, [], conversationId);
6317
+ }, [conversationId, pendingPrompt, updateConversation]);
6285
6318
  useEffect(() => {
6286
6319
  if (!sendWhenModelsReady || cloudCatalogState?.state === 'loading')
6287
6320
  return;
@@ -6711,6 +6744,57 @@ export function AgentView(props) {
6711
6744
  setGitStrip(null); });
6712
6745
  return () => { cancelled = true; };
6713
6746
  }, [gitStripRoot, isStreaming]);
6747
+ // The branch's pull request, re-read on a slow clock and whenever a turn ends.
6748
+ const [pullRequest, setPullRequest] = useState(null);
6749
+ useEffect(() => {
6750
+ setPullRequest(null);
6751
+ const engineering = getOptionalAgentPlatformBridge()?.engineering;
6752
+ if (!gitStripRoot || !gitStrip?.branch || !engineering?.gitPullRequestStatus)
6753
+ return undefined;
6754
+ let cancelled = false;
6755
+ const read = () => {
6756
+ void engineering.gitPullRequestStatus({ rootDirectory: gitStripRoot, allowedDirectories: [gitStripRoot] })
6757
+ .then((status) => { if (!cancelled)
6758
+ setPullRequest(status.pr?.state === 'OPEN' ? status.pr : null); })
6759
+ .catch(() => { if (!cancelled)
6760
+ setPullRequest(null); });
6761
+ };
6762
+ read();
6763
+ const timer = window.setInterval(read, 60_000);
6764
+ return () => { cancelled = true; window.clearInterval(timer); };
6765
+ }, [gitStripRoot, gitStrip?.branch, isStreaming]);
6766
+ const pullRequestFailing = pullRequest?.checks.some((check) => check.state === 'failed') === true;
6767
+ const fixPullRequest = async (auto) => {
6768
+ const engineering = getOptionalAgentPlatformBridge()?.engineering;
6769
+ if (!pullRequest || !gitStripRoot || !engineering?.gitPullRequestFeedback)
6770
+ return;
6771
+ const feedback = await engineering.gitPullRequestFeedback({ rootDirectory: gitStripRoot, allowedDirectories: [gitStripRoot], number: pullRequest.number });
6772
+ if (!feedback.success)
6773
+ return;
6774
+ if (!auto) {
6775
+ if (feedback.failedChecks.length > 0 || feedback.comments.length > 0) {
6776
+ await handleExecuteCommandOrPrompt(pullRequestFixPrompt(pullRequest.number, feedback));
6777
+ }
6778
+ return;
6779
+ }
6780
+ const sessionUi = conversationId ? useAgentChatStore.getState().getConversation(conversationId)?.sessionUi : undefined;
6781
+ if (!sessionUi?.prAutoFix || sessionUi.prAutoFix.number !== pullRequest.number)
6782
+ return;
6783
+ const next = nextAutoFix(pullRequest.headSha, feedback, sessionUi.prAutoFix);
6784
+ if (!next)
6785
+ return;
6786
+ updateConversation(conversationId, { sessionUi: { ...sessionUi, prAutoFix: { ...next.state, number: pullRequest.number } } });
6787
+ await handleExecuteCommandOrPrompt(pullRequestFixPrompt(pullRequest.number, next.feedback));
6788
+ };
6789
+ const fixPullRequestRef = useRef(fixPullRequest);
6790
+ fixPullRequestRef.current = fixPullRequest;
6791
+ const prAutoFix = conversation?.sessionUi?.prAutoFix;
6792
+ const prAutoFixOn = !!pullRequest && prAutoFix?.number === pullRequest.number;
6793
+ // Runs on each read of the pull request: a commit, a new check result or a new review comment.
6794
+ useEffect(() => {
6795
+ if (prAutoFixOn && !isStreaming)
6796
+ void fixPullRequestRef.current(true);
6797
+ }, [isStreaming, prAutoFixOn, pullRequest]);
6714
6798
  // Create PR is a turn: the agent opens the pull request with its own tools, in the project it is bound to
6715
6799
  const handleCreatePullRequest = useCallback(async () => {
6716
6800
  const command = activeCommandsList.find((entry) => entry.name === '/pr');
@@ -7805,7 +7889,27 @@ export function AgentView(props) {
7805
7889
  : 'The agent works on this computer. Click to move it into a sandbox on XENO’s servers.', onClick: () => { if (isAuthenticatedForCloud)
7806
7890
  setCloudRunEnabled(!cloudRunEnabled); }, disabled: controlsLocked, children: cloudRunEnabled && isAuthenticatedForCloud
7807
7891
  ? (activeCloudRunStatus ? `Hosted sandbox Β· ${activeCloudRunStatus.status || 'queued'}` : 'Hosted sandbox')
7808
- : 'This machine' }), gitStrip?.branch && (_jsxs(_Fragment, { children: [_jsx(CtxVr, { branch: true }), _jsx(CtxSeg, { glyph: "git-branch", dim: true, branch: true, title: gitStrip.upstream ? `${gitStrip.branch} Β· tracks ${gitStrip.upstream}` : gitStrip.branch, children: gitStrip.branch })] })), activeMcpList.length > 0 && (_jsxs(_Fragment, { children: [_jsx(CtxVr, {}), activeMcpList.map((mcp) => (_jsx(CtxSeg, { dim: true, title: `${mcp.server}: ${mcp.status}${mcp.error ? ` (${mcp.error})` : ''}`, onClick: () => { void handleExecuteCommandOrPrompt(`/mcp ${mcp.server}`); }, children: mcp.status === 'connected' ? mcp.server : `${mcp.server} Β· ${mcp.status === 'auth_required' ? 'sign in' : 'down'}` }, mcp.server)))] })), _jsx(CtxGrow, {}), gitStrip && (gitStrip.added > 0 || gitStrip.removed > 0) && _jsx(CtxDiff, { added: gitStrip.added, removed: gitStrip.removed }), _jsx(CtxSplit, { label: "Create PR", title: "Ask the agent to open a pull request for this branch", disabled: controlsLocked || inputLocked, onClick: () => { void handleCreatePullRequest(); }, moreMenu: "branch", moreOpen: branchMoreOpen, onMore: () => setBranchMoreOpen((open) => !open) }), _jsxs(XaMenu, { open: branchMoreOpen, onClose: () => setBranchMoreOpen(false), menu: "branch", width: 260, children: [_jsx(XaRow, { label: "Push this branch", sub: "Push it to its remote, setting upstream if it has none", onClick: () => { setBranchMoreOpen(false); void handleExecuteCommandOrPrompt('Push the current branch to its remote, setting the upstream if it has none. Report what was pushed.'); } }), _jsx(XaRow, { label: "Open a draft pull request", sub: "A PR marked draft, otherwise the same as Create PR", onClick: () => { setBranchMoreOpen(false); void handleExecuteCommandOrPrompt('Open a DRAFT pull request for the current branch: summarise the changes since it diverged from its base in the title and body.'); } }), _jsx(XaRow, { label: "Show me what changed", sub: "The diff against the base, summarised", onClick: () => { setBranchMoreOpen(false); void handleExecuteCommandOrPrompt('Summarise what has changed on this branch since it diverged from its base, file by file.'); } })] })] })) : composerMode === 'machine' ? (
7892
+ : 'This machine' }), gitStrip?.branch && (_jsxs(_Fragment, { children: [_jsx(CtxVr, { branch: true }), _jsx(CtxSeg, { glyph: "git-branch", dim: true, branch: true, title: gitStrip.upstream ? `${gitStrip.branch} Β· tracks ${gitStrip.upstream}` : gitStrip.branch, children: gitStrip.branch })] })), activeMcpList.length > 0 && (_jsxs(_Fragment, { children: [_jsx(CtxVr, {}), activeMcpList.map((mcp) => (_jsx(CtxSeg, { dim: true, title: `${mcp.server}: ${mcp.status}${mcp.error ? ` (${mcp.error})` : ''}`, onClick: () => { void handleExecuteCommandOrPrompt(`/mcp ${mcp.server}`); }, children: mcp.status === 'connected' ? mcp.server : `${mcp.server} Β· ${mcp.status === 'auth_required' ? 'sign in' : 'down'}` }, mcp.server)))] })), _jsx(CtxGrow, {}), gitStrip && (gitStrip.added > 0 || gitStrip.removed > 0) && _jsx(CtxDiff, { added: gitStrip.added, removed: gitStrip.removed, ...(props.onOpenChanges ? { onClick: props.onOpenChanges } : {}) }), _jsx(CtxSplit, { label: pullRequest ? pullRequestLabel(pullRequest) : 'Create PR', title: pullRequest ? `${pullRequest.title}. Click to open it on GitHub.` : 'Ask the agent to open a pull request for this branch', disabled: !pullRequest && (controlsLocked || inputLocked), onClick: () => {
7893
+ if (pullRequest)
7894
+ void getAgentPlatformBridge()?.window?.openExternal?.(pullRequest.url);
7895
+ else
7896
+ void handleCreatePullRequest();
7897
+ }, moreMenu: "branch", moreOpen: branchMoreOpen, onMore: () => setBranchMoreOpen((open) => !open) }), _jsxs(XaMenu, { open: branchMoreOpen, onClose: () => setBranchMoreOpen(false), menu: "branch", width: 260, children: [pullRequest && pullRequestFailing && _jsx(XaRow, { label: "Fix failing checks", sub: "The agent reads the failures and fixes them on this branch", onClick: () => { setBranchMoreOpen(false); void fixPullRequest(false); } }), pullRequest && conversationId && (_jsx(XaRow, { label: prAutoFixOn ? 'Stop auto-fix' : 'Auto-fix', sub: "Fix failed checks and review comments as they arrive, up to three times", onClick: () => {
7898
+ setBranchMoreOpen(false);
7899
+ const sessionUi = useAgentChatStore.getState().getConversation(conversationId)?.sessionUi || {};
7900
+ const { prAutoFix: _off, ...rest } = sessionUi;
7901
+ updateConversation(conversationId, { sessionUi: prAutoFixOn ? rest : { ...rest, prAutoFix: { number: pullRequest.number, attempts: 0 } } });
7902
+ } })), pullRequest && !pullRequest.autoMerge && (_jsx(XaRow, { label: "Merge when ready", sub: "GitHub squashes and merges once the checks pass", onClick: () => {
7903
+ setBranchMoreOpen(false);
7904
+ void getOptionalAgentPlatformBridge()?.engineering?.gitPullRequestMerge({
7905
+ rootDirectory: gitStripRoot, allowedDirectories: [gitStripRoot], number: pullRequest.number, confirmed: true,
7906
+ }).then((result) => {
7907
+ if (result.success)
7908
+ setPullRequest({ ...pullRequest, autoMerge: true });
7909
+ else
7910
+ setToolStatus(result.error || 'GitHub refused to merge this pull request.');
7911
+ });
7912
+ } })), _jsx(XaRow, { label: "Push this branch", sub: "Push it to its remote, setting upstream if it has none", onClick: () => { setBranchMoreOpen(false); void handleExecuteCommandOrPrompt('Push the current branch to its remote, setting the upstream if it has none. Report what was pushed.'); } }), _jsx(XaRow, { label: "Open a draft pull request", sub: "A PR marked draft, otherwise the same as Create PR", onClick: () => { setBranchMoreOpen(false); void handleExecuteCommandOrPrompt('Open a DRAFT pull request for the current branch: summarise the changes since it diverged from its base in the title and body.'); } }), _jsx(XaRow, { label: "Show me what changed", sub: "The diff against the base, summarised", onClick: () => { setBranchMoreOpen(false); void handleExecuteCommandOrPrompt('Summarise what has changed on this branch since it diverged from its base, file by file.'); } })] })] })) : composerMode === 'machine' ? (
7809
7913
  /* D11 β€” this computer, per app, per session, under a grant: the machine, what it
7810
7914
  holds, and the one way to take it back */
7811
7915
  _jsxs(_Fragment, { children: [_jsx(CtxSeg, { glyph: "monitor", name: true, title: machineOffer?.available ? 'The agent acts on this computer, inside the apps you grant it' : (machineOffer?.reason || 'This computer is not answering β€” the agent cannot act on it yet'), children: "This machine" }), _jsx(CtxVr, {}), machineGrant ? (_jsxs(CtxSeg, { glyph: "app-window", dim: true, title: machineGrant.pending ? `${machineGrant.name} β€” asked for, not yet granted` : `${machineGrant.name} β€” granted until this ${machineGrant.scope} ends`, children: [machineGrant.name, " \u00B7 this ", machineGrant.scope] })) : (_jsx(CtxSeg, { dim: true, title: "No app is granted yet \u2014 the agent asks for one when it needs it", children: "No app yet" })), _jsx(CtxGrow, {}), machineGrant