@tencent-ai/agent-sdk 0.3.252 → 0.3.253
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/cli/CHANGELOG.md +22 -0
- package/cli/dist/codebuddy-headless.js +73 -58
- package/cli/dist/codebuddy-lite-wb.mjs +96 -81
- package/cli/dist/lazy/{427.68132a34.js → 427.74b982af.js} +4 -4
- package/cli/dist/lazy-headless/{834.391fb41e.js → 834.3b674e07.js} +9 -9
- package/cli/dist-server/3556.codebuddy.js +1 -1
- package/cli/dist-server/6037.codebuddy.js +1 -1
- package/cli/dist-server/6784.codebuddy.js +1 -1
- package/cli/dist-server/codebuddy.js +45 -30
- package/cli/dist-server/types/node/agent/openai-agents-types.d.ts +5 -5
- package/cli/dist-server/types/node/mcp/mcp-sdk-values.d.ts +1 -1
- package/cli/dist-server/types/node/model/model-provider.d.ts +3 -1
- package/cli/dist-server/types/node/tools/a2a-get-task-tool.d.ts +139 -34
- package/cli/dist-server/types/node/tools/a2a-poll-retry.d.ts +46 -0
- package/cli/package.json +1 -1
- package/cli/product.cloudhosted.json +2 -2
- package/cli/product.internal.json +2 -2
- package/cli/product.ioa.json +2 -2
- package/cli/product.json +4 -4
- package/cli/product.selfhosted.json +2 -2
- package/package.json +1 -1
- package/cli/dist-server/types/node/acp/acp-view-rewind-to.d.ts +0 -34
- package/cli/dist-server/types/node/acp/acp-web-ui-client.d.ts +0 -22
- package/cli/dist-server/types/node/acp/usage-by-category-calculator.d.ts +0 -45
- package/cli/dist-server/types/node/acp/usage-by-category-char-weight.d.ts +0 -9
- package/cli/dist-server/types/node/acp/usage-by-category-distribute.d.ts +0 -6
- package/cli/dist-server/types/node/acp/usage-by-category-tools-split.d.ts +0 -11
- package/cli/dist-server/types/node/agent-home/agent-home-envelope-body.d.ts +0 -54
- package/cli/dist-server/types/node/agent-home/agent-home-inbox-events.d.ts +0 -14
- package/cli/dist-server/types/node/agent-home/agent-home-room-contacts.d.ts +0 -30
- package/cli/dist-server/types/node/agent-team/permission-bridge-client.d.ts +0 -32
- package/cli/dist-server/types/node/agent-team/permission-bridge-protocol.d.ts +0 -47
- package/cli/dist-server/types/node/agent-view/handoff-policy.d.ts +0 -80
- package/cli/dist-server/types/node/agent-view/job-respawn-prefs.d.ts +0 -12
- package/cli/dist-server/types/node/agent-view/session-handoff.d.ts +0 -161
- package/cli/dist-server/types/node/ask/index.d.ts +0 -3
- package/cli/dist-server/types/node/bash-sandbox/bash-sandbox-manager.d.ts +0 -125
- package/cli/dist-server/types/node/bash-sandbox/legacy-sandbox-shell-service.d.ts +0 -33
- package/cli/dist-server/types/node/bash-sandbox/managed-security-policy.d.ts +0 -6
- package/cli/dist-server/types/node/bash-sandbox/workbuddy-directory-protection.d.ts +0 -12
- package/cli/dist-server/types/node/checkpoint/checkpoint-service.d.ts +0 -70
- package/cli/dist-server/types/node/checkpoint/file-changes-controller.d.ts +0 -29
- package/cli/dist-server/types/node/checkpoint/file-track-service.d.ts +0 -11
- package/cli/dist-server/types/node/checkpoint/file-version-manager.d.ts +0 -10
- package/cli/dist-server/types/node/checkpoint/file-version-store.d.ts +0 -9
- package/cli/dist-server/types/node/checkpoint/file-version-update-strategies.d.ts +0 -62
- package/cli/dist-server/types/node/command/add-dir-command-executor.d.ts +0 -11
- package/cli/dist-server/types/node/command/agents-command-executor.d.ts +0 -9
- package/cli/dist-server/types/node/command/auto-compact-command-executor.d.ts +0 -20
- package/cli/dist-server/types/node/command/background-command-executor.d.ts +0 -29
- package/cli/dist-server/types/node/command/btw-command-executor.d.ts +0 -19
- package/cli/dist-server/types/node/command/clear-command-executor.d.ts +0 -17
- package/cli/dist-server/types/node/command/config-command-executor.d.ts +0 -15
- package/cli/dist-server/types/node/command/context-command-executor.d.ts +0 -42
- package/cli/dist-server/types/node/command/copy-command-executor.d.ts +0 -10
- package/cli/dist-server/types/node/command/cost-command-executor.d.ts +0 -13
- package/cli/dist-server/types/node/command/debug-command-executor.d.ts +0 -15
- package/cli/dist-server/types/node/command/deep-research-command-executor.d.ts +0 -25
- package/cli/dist-server/types/node/command/doctor-command-executor.d.ts +0 -7
- package/cli/dist-server/types/node/command/effort-command-executor.d.ts +0 -46
- package/cli/dist-server/types/node/command/exit-command-executor.d.ts +0 -14
- package/cli/dist-server/types/node/command/export-command-executor.d.ts +0 -7
- package/cli/dist-server/types/node/command/feedback-command-executor.d.ts +0 -9
- package/cli/dist-server/types/node/command/fork-bg-command-executor.d.ts +0 -30
- package/cli/dist-server/types/node/command/fork-command-executor.d.ts +0 -28
- package/cli/dist-server/types/node/command/goal-command-executor.d.ts +0 -50
- package/cli/dist-server/types/node/command/handoff-message-adapter.d.ts +0 -9
- package/cli/dist-server/types/node/command/help-command-executor.d.ts +0 -9
- package/cli/dist-server/types/node/command/hooks-command-executor.d.ts +0 -9
- package/cli/dist-server/types/node/command/ide-command-executor.d.ts +0 -11
- package/cli/dist-server/types/node/command/mcp-command-executor.d.ts +0 -15
- package/cli/dist-server/types/node/command/memory-command-executor.d.ts +0 -17
- package/cli/dist-server/types/node/command/mode-command-executor.d.ts +0 -11
- package/cli/dist-server/types/node/command/model-command-executor.d.ts +0 -11
- package/cli/dist-server/types/node/command/model-image-to-image-command-executor.d.ts +0 -17
- package/cli/dist-server/types/node/command/model-image-to-video-command-executor.d.ts +0 -17
- package/cli/dist-server/types/node/command/model-lite-command-executor.d.ts +0 -17
- package/cli/dist-server/types/node/command/model-reasoning-command-executor.d.ts +0 -17
- package/cli/dist-server/types/node/command/model-text-to-image-command-executor.d.ts +0 -17
- package/cli/dist-server/types/node/command/model-text-to-video-command-executor.d.ts +0 -17
- package/cli/dist-server/types/node/command/multitask-command-executor.d.ts +0 -9
- package/cli/dist-server/types/node/command/permissions-command-executor.d.ts +0 -9
- package/cli/dist-server/types/node/command/plan-command-executor.d.ts +0 -11
- package/cli/dist-server/types/node/command/plugin-command-executor.d.ts +0 -25
- package/cli/dist-server/types/node/command/plugin-validate-command-executor.d.ts +0 -21
- package/cli/dist-server/types/node/command/release-notes-command-executor.d.ts +0 -18
- package/cli/dist-server/types/node/command/reload-plugins-command-executor.d.ts +0 -24
- package/cli/dist-server/types/node/command/remote-control-command-executor.d.ts +0 -44
- package/cli/dist-server/types/node/command/rename-command-executor.d.ts +0 -11
- package/cli/dist-server/types/node/command/reset-command-executor.d.ts +0 -9
- package/cli/dist-server/types/node/command/resume-command-executor.d.ts +0 -21
- package/cli/dist-server/types/node/command/rewind-command-executor.d.ts +0 -10
- package/cli/dist-server/types/node/command/sandbox-command-executor.d.ts +0 -20
- package/cli/dist-server/types/node/command/save-workflow-command-executor.d.ts +0 -43
- package/cli/dist-server/types/node/command/session-reset-notifier.d.ts +0 -23
- package/cli/dist-server/types/node/command/skills-command-executor.d.ts +0 -9
- package/cli/dist-server/types/node/command/stats-command-executor.d.ts +0 -11
- package/cli/dist-server/types/node/command/status-command-executor.d.ts +0 -11
- package/cli/dist-server/types/node/command/tasks-command-executor.d.ts +0 -9
- package/cli/dist-server/types/node/command/terminal-setup-command-executor.d.ts +0 -7
- package/cli/dist-server/types/node/command/theme-command-executor.d.ts +0 -7
- package/cli/dist-server/types/node/command/todos-command-executor.d.ts +0 -16
- package/cli/dist-server/types/node/command/upgrade-command-executor.d.ts +0 -13
- package/cli/dist-server/types/node/command/vim-command-executor.d.ts +0 -11
- package/cli/dist-server/types/node/command/workflows-command-executor.d.ts +0 -26
- package/cli/dist-server/types/node/feedback/feedback-protocol.d.ts +0 -32
- package/cli/dist-server/types/node/feedback/feedback-service.d.ts +0 -19
- package/cli/dist-server/types/node/feedback/index.d.ts +0 -2
- package/cli/dist-server/types/node/goal/goal-policy.d.ts +0 -55
- package/cli/dist-server/types/node/goal/goal-protocol.d.ts +0 -178
- package/cli/dist-server/types/node/goal/goal-service.d.ts +0 -201
- package/cli/dist-server/types/node/goal/goal-session-start-hook.d.ts +0 -24
- package/cli/dist-server/types/node/hooks/parse-frontmatter-hooks.d.ts +0 -42
- package/cli/dist-server/types/node/install/index.d.ts +0 -6
- package/cli/dist-server/types/node/install/install-controller.d.ts +0 -15
- package/cli/dist-server/types/node/install/install-env.d.ts +0 -12
- package/cli/dist-server/types/node/install/install-errors.d.ts +0 -46
- package/cli/dist-server/types/node/install/install-protocol.d.ts +0 -83
- package/cli/dist-server/types/node/install/install-service.d.ts +0 -36
- package/cli/dist-server/types/node/install/install-utils.d.ts +0 -7
- package/cli/dist-server/types/node/install/releases-service.d.ts +0 -18
- package/cli/dist-server/types/node/install/shell-setup.d.ts +0 -36
- package/cli/dist-server/types/node/mcp/mcp-cancellation.d.ts +0 -65
- package/cli/dist-server/types/node/mcp/mcp-controller.d.ts +0 -56
- package/cli/dist-server/types/node/mcp/mcp-model-id-header-helper.d.ts +0 -12
- package/cli/dist-server/types/node/mcp/mcp-oauth-callback-html.d.ts +0 -6
- package/cli/dist-server/types/node/mcp/mcp-oauth-controller.d.ts +0 -26
- package/cli/dist-server/types/node/mcp/mcp-output-storage.d.ts +0 -57
- package/cli/dist-server/types/node/mcp/mcp-server-override-impl.d.ts +0 -136
- package/cli/dist-server/types/node/mcp/mcp-server-override.d.ts +0 -29
- package/cli/dist-server/types/node/mcp/mcp-tool-result-sideband.d.ts +0 -26
- package/cli/dist-server/types/node/mcp/mcp-validate-middleware.d.ts +0 -25
- package/cli/dist-server/types/node/mcp/models/mcp-server.d.ts +0 -18
- package/cli/dist-server/types/node/mcp/node-websocket-transport.d.ts +0 -38
- package/cli/dist-server/types/node/mcp/official-mcp-egress-policy.d.ts +0 -17
- package/cli/dist-server/types/node/mcp/sdk-mcp-server.d.ts +0 -143
- package/cli/dist-server/types/node/mcp/sdk-mcp-transport.d.ts +0 -97
- package/cli/dist-server/types/node/message-queue/followup-queue.d.ts +0 -35
- package/cli/dist-server/types/node/message-queue/index.d.ts +0 -11
- package/cli/dist-server/types/node/plugins/concurrency.d.ts +0 -1
- package/cli/dist-server/types/node/plugins/dependency-resolver.d.ts +0 -43
- package/cli/dist-server/types/node/plugins/directory-plugin-cache-projection.d.ts +0 -2
- package/cli/dist-server/types/node/plugins/guards/index.d.ts +0 -2
- package/cli/dist-server/types/node/plugins/guards/weixinpay-integrity-guard.d.ts +0 -15
- package/cli/dist-server/types/node/plugins/installers/git-plugin-installer.d.ts +0 -42
- package/cli/dist-server/types/node/plugins/installers/git-subdir-plugin-installer.d.ts +0 -19
- package/cli/dist-server/types/node/plugins/installers/index.d.ts +0 -4
- package/cli/dist-server/types/node/plugins/installers/local-plugin-installer.d.ts +0 -40
- package/cli/dist-server/types/node/plugins/installers/npm-plugin-installer.d.ts +0 -23
- package/cli/dist-server/types/node/plugins/loaders/agent-loader.d.ts +0 -43
- package/cli/dist-server/types/node/plugins/loaders/command-loader.d.ts +0 -37
- package/cli/dist-server/types/node/plugins/loaders/hook-loader.d.ts +0 -55
- package/cli/dist-server/types/node/plugins/loaders/index.d.ts +0 -8
- package/cli/dist-server/types/node/plugins/loaders/lsp-loader.d.ts +0 -47
- package/cli/dist-server/types/node/plugins/loaders/mcp-loader.d.ts +0 -75
- package/cli/dist-server/types/node/plugins/loaders/output-style-loader.d.ts +0 -49
- package/cli/dist-server/types/node/plugins/loaders/plugin-loader-manager.d.ts +0 -49
- package/cli/dist-server/types/node/plugins/loaders/skill-loader.d.ts +0 -45
- package/cli/dist-server/types/node/plugins/marketplace-name-validator.d.ts +0 -50
- package/cli/dist-server/types/node/plugins/marketplace-path-safety.d.ts +0 -86
- package/cli/dist-server/types/node/plugins/marketplaces/base-marketplace.d.ts +0 -43
- package/cli/dist-server/types/node/plugins/marketplaces/builtin-marketplace-provider.d.ts +0 -22
- package/cli/dist-server/types/node/plugins/marketplaces/directory-marketplace.d.ts +0 -19
- package/cli/dist-server/types/node/plugins/marketplaces/git-availability-detector.d.ts +0 -62
- package/cli/dist-server/types/node/plugins/marketplaces/git-fallback-coordinator.d.ts +0 -42
- package/cli/dist-server/types/node/plugins/marketplaces/git-to-zip-url-converter.d.ts +0 -50
- package/cli/dist-server/types/node/plugins/marketplaces/github-marketplace.d.ts +0 -41
- package/cli/dist-server/types/node/plugins/marketplaces/http-marketplace.d.ts +0 -47
- package/cli/dist-server/types/node/plugins/marketplaces/index.d.ts +0 -13
- package/cli/dist-server/types/node/plugins/marketplaces/marketplace-config-manager.d.ts +0 -39
- package/cli/dist-server/types/node/plugins/marketplaces/marketplace-factory.d.ts +0 -11
- package/cli/dist-server/types/node/plugins/marketplaces/marketplace-storage.d.ts +0 -141
- package/cli/dist-server/types/node/plugins/marketplaces/marketplace-update-checker.d.ts +0 -38
- package/cli/dist-server/types/node/plugins/marketplaces/workspace-project-root.d.ts +0 -14
- package/cli/dist-server/types/node/plugins/marketplaces/zip-marketplace.d.ts +0 -134
- package/cli/dist-server/types/node/plugins/mcpb-handler.d.ts +0 -29
- package/cli/dist-server/types/node/plugins/plugin-controller.d.ts +0 -75
- package/cli/dist-server/types/node/plugins/plugin-error-collector.d.ts +0 -17
- package/cli/dist-server/types/node/plugins/plugin-install-stats-service.d.ts +0 -20
- package/cli/dist-server/types/node/plugins/plugin-manager.d.ts +0 -692
- package/cli/dist-server/types/node/plugins/plugin-policy-service.d.ts +0 -53
- package/cli/dist-server/types/node/plugins/plugin-validator.d.ts +0 -48
- package/cli/dist-server/types/node/plugins/zip-utils.d.ts +0 -93
- package/cli/dist-server/types/node/remote-control/clients/liveness-watchdog.d.ts +0 -56
- package/cli/dist-server/types/node/remote-control/clients/wecom-bot/wecom-bot-activity.d.ts +0 -23
- package/cli/dist-server/types/node/remote-control/clients/wecom-bot/wecom-bot-auth.d.ts +0 -64
- package/cli/dist-server/types/node/remote-control/clients/wecom-bot/wecom-bot-client-factory.d.ts +0 -47
- package/cli/dist-server/types/node/remote-control/clients/wecom-bot/wecom-bot-client.d.ts +0 -191
- package/cli/dist-server/types/node/remote-control/clients/wecom-bot/wecom-bot-inbound.d.ts +0 -7
- package/cli/dist-server/types/node/remote-control/clients/wecom-bot/wecom-bot-interaction.d.ts +0 -142
- package/cli/dist-server/types/node/remote-control/clients/wecom-bot/wecom-bot-live.d.ts +0 -78
- package/cli/dist-server/types/node/remote-control/clients/wecom-bot/wecom-bot-media.d.ts +0 -35
- package/cli/dist-server/types/node/remote-control/clients/wecom-bot/wecom-bot-qr-bind.d.ts +0 -49
- package/cli/dist-server/types/node/remote-control/clients/wecom-bot/wecom-bot-respond-queue.d.ts +0 -33
- package/cli/dist-server/types/node/remote-control/clients/wecom-bot/wecom-bot-types.d.ts +0 -207
- package/cli/dist-server/types/node/remote-control/remote-control-protocol.d.ts +0 -288
- package/cli/dist-server/types/node/remote-gateway/gateway-protocol.d.ts +0 -502
- package/cli/dist-server/types/node/remote-gateway/utils/qrcode-utils.d.ts +0 -16
- package/cli/dist-server/types/node/session/session-preview-utils.d.ts +0 -30
- package/cli/dist-server/types/node/settings/model-setting-utils.d.ts +0 -2
- package/cli/dist-server/types/node/tool-control/tool-control-policy.d.ts +0 -35
- package/cli/dist-server/types/node/tools/auto-mode/auto-mode-critique-client.d.ts +0 -51
- package/cli/dist-server/types/node/tools/auto-mode/auto-mode-strategy.d.ts +0 -19
- package/cli/dist-server/types/node/utils/add-dir-utils.d.ts +0 -20
- package/cli/dist-server/types/node/utils/compress-path.source.d.ts +0 -59
- package/cli/dist-server/types/node/vim/index.d.ts +0 -2
- package/cli/dist-server/types/node/vim/vim-manager.d.ts +0 -12
- package/cli/dist-server/types/node/vim/vim-protocol.d.ts +0 -24
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
"use strict";exports.ids=["834"],exports.modules={90396(e,t,r){r.d(t,{KC:()=>retireForegroundSessionRecord,wf:()=>releaseForegroundSessionRecord}),r(79896),r(698),r(43632),r(22701);let n=new Map;function releaseForegroundSessionRecord(e){let t=n.get(e);t&&(t.subscription.unsubscribe(),n.delete(e))}async function retireForegroundSessionRecord(e){let t=n.get(e);t&&(t.subscription.unsubscribe(),n.delete(e),await t.store.remove(t.id).catch(()=>{}))}},37905(e,t,r){r.d(t,{Kx:()=>getInProcessAgentJobs,Ol:()=>clearInProcessAgentJob,SC:()=>inProcessAgentJobs$,hV:()=>l,jq:()=>isInProcessAgentJob,yt:()=>getInProcessAgentSession});var n=r(59707);r(698),r(95235),r(43632);let o=new n.t([]),a=new Map,l="in-process:";function inProcessAgentJobs$(){return o.asObservable()}function getInProcessAgentJobs(){return o.value}function getInProcessAgentSession(e){return a.get(e)?.session}function isInProcessAgentJob(e){return e?.origin==="in-process"}function clearInProcessAgentJob(e){if(!e)return;let t=a.get(e);t&&(t.subscription.unsubscribe(),t.approvalSubscription?.unsubscribe(),a.delete(e),publishJobs())}function publishJobs(){o.next([...o.value].filter(e=>a.has(e.id)))}},35717(e,t,r){r.d(t,{Ij:()=>i});let n=Symbol("FeedbackSurveyService");(o=i||(i={})).CLOSED="closed",o.OPEN="open",o.SUBMITTED="submitted",(a=s||(s={})).BAD="bad",a.FINE="fine",a.GOOD="good",a.DISMISS="dismiss",(l=c||(c={})).KEY_1="key_1",l.KEY_2="key_2",l.KEY_3="key_3",l.KEY_0="key_0",l.KEY_ESC="key_esc";var o,a,l,i,s,c,u,d,m,f,h=r(88523),p=r(79814),g=r(42679),E=r(9151),w=r(92735),__decorate=function(e,t,r,n){var o,a=arguments.length,l=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)l=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(o=e[i])&&(l=(a<3?o(l):a>3?o(t,r,l):o(t,r))||l);return a>3&&l&&Object.defineProperty(t,r,l),l},__metadata=function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};let y="feedback-survey-global-state",b=class{constructor(){this.sessionStates=new Map,this.sessionStartTimes=new Map,this.sessionInitialSubmitCounts=new Map,this.currentSurveyIds=new Map,this.surveyShowTimes=new Map}async shouldShowSurvey(e,t,r,n){this.logger.setContext("FeedbackSurveyService");let o=this.getConfig();if(o.disabled||n||(this.ensureSessionInitialized(e,t),!this.isModelAllowed(r,o.onForModels)))return!1;let a=this.getSessionSurveyState(e),l=this.getSessionDuration(e),i=this.getSessionSubmitCount(e,t);if(null===a.timeLastShown){if(l<o.minTimeBeforeFeedbackMs||i<o.minUserTurnsBeforeFeedback)return!1}else if(i-(a.submitCountAtLastAppearance||0)<o.minUserTurnsBetweenFeedback)return!1;if(Math.random()>o.probability)return this.logger.info(`Feedback survey not shown due to probability check. Config probability: ${o.probability}. Random value: ${Math.random()}`,e),!1;let s=await this.getGlobalSurveyState();if(null!==s.lastShownTime){let t=Date.now()-s.lastShownTime;if(t<o.minTimeBetweenGlobalFeedbackMs)return this.logger.info(`Feedback survey not shown due to global cooldown. Time since last global show: ${t} ms. Configured minTimeBetweenGlobalFeedbackMs: ${o.minTimeBetweenGlobalFeedbackMs} ms`,e),!1}return!0}async recordSurveyAppeared(e,t,r){let n=(0,g.A)();this.currentSurveyIds.set(e,n);let o=Date.now();this.surveyShowTimes.set(n,o);let a=this.getSessionSurveyState(e);a.timeLastShown=o,a.submitCountAtLastAppearance=this.getSessionSubmitCount(e,t);let l=await this.getGlobalSurveyState();return l.lastShownTime=o,await this.saveGlobalSurveyState(l),this.logger.info(`Feedback survey appeared. ID: ${n}`,e),n}async recordSurveySubmitted(e,t,r){try{let n=this.getModelName(r.modelId),o=this.getMappedAction(r.rating),a={conversationId:e,requestId:t,messageId:t,mode:"craft",requestModelId:r.modelId,requestModelName:n,action:o,scene:"userFeedback"};this.eventService?.report(w.Events.ChatUserAction,a),this.logger.info(`Feedback survey submitted. ID: ${t}, Rating: ${r.rating}, Source: ${r.actionSource}, ModelId: ${r.modelId}`,e),this.currentSurveyIds.delete(e),this.surveyShowTimes.delete(t)}catch(r){throw this.logger.error(`Failed to record survey submission: ${r}`,e),this.currentSurveyIds.delete(e),this.surveyShowTimes.delete(t),r}}getSessionSurveyState(e){let t=this.sessionStates.get(e);return t||(t={timeLastShown:null,submitCountAtLastAppearance:null},this.sessionStates.set(e,t)),t}async getGlobalSurveyState(){let e=await this.localStorage.get(y);return e||{lastShownTime:null}}getConfig(){let e=this.productManager.configuration.getValue(),t=e?.feedbackSurvey||{};return{...E.DEFAULT_FEEDBACK_SURVEY_CONFIG,...t}}ensureSessionInitialized(e,t){this.sessionStartTimes.has(e)||this.sessionStartTimes.set(e,Date.now()),this.sessionInitialSubmitCounts.has(e)||this.sessionInitialSubmitCounts.set(e,t),this.sessionStates.has(e)||this.sessionStates.set(e,{timeLastShown:null,submitCountAtLastAppearance:null})}getSessionDuration(e){let t=this.sessionStartTimes.get(e);return t?Date.now()-t:0}getSessionSubmitCount(e,t){return t-(this.sessionInitialSubmitCounts.get(e)||0)}isModelAllowed(e,t){return!!t.includes("*")||t.includes(e)}async saveGlobalSurveyState(e){await this.localStorage.set(y,e)}getModelName(e){if(!e)return"";let t=this.productManager.configuration.getValue();if(!t?.models)return e;let r=t.models.find(t=>t.id===e);return r&&r.name||e}getMappedAction(e){return({[s.GOOD]:"like",[s.BAD]:"dislike",[s.FINE]:"average",[s.DISMISS]:"dismiss"})[e]}};__decorate([(0,h.Autowired)(p.LocalStorage),__metadata("design:type","function"==typeof(u=void 0!==p.LocalStorage&&p.LocalStorage)?u:Object)],b.prototype,"localStorage",void 0),__decorate([(0,h.Autowired)(E.ProductManager),__metadata("design:type","function"==typeof(d=void 0!==E.ProductManager&&E.ProductManager)?d:Object)],b.prototype,"productManager",void 0),__decorate([(0,h.Autowired)(w.EventService),__metadata("design:type","function"==typeof(m=void 0!==w.EventService&&w.EventService)?m:Object)],b.prototype,"eventService",void 0),__decorate([(0,h.Autowired)(w.Logger),__metadata("design:type","function"==typeof(f=void 0!==w.Logger&&w.Logger)?f:Object)],b.prototype,"logger",void 0),__decorate([(0,h.Component)(n)],b)},61741(e,t,r){r.d(t,{AgentViewScreen:()=>AgentViewScreen});var n=r(51147),o=r(21049),a=r(70857),l=r(30296),i=r.n(l),s=r(14372),c=r(87023),u=r(86448),d=r(71762),m=r(88144);function currentToken(e,t){let r=e.slice(0,t),n=Math.max(r.lastIndexOf(" "),r.lastIndexOf("\n"))+1;return{text:r.slice(n),start:n}}function agentSuggestion(e){return{value:`@${e}`,label:`@${e}`,hint:"agent",kind:"agent"}}function repoSuggestion(e){return{value:`@${e.name}`,label:`@${e.name}`,hint:e.branch?`repo \xb7 ${e.branch}`:"repo",kind:"repo"}}function buildDispatchSuggestions(e,t,r){let{text:n}=currentToken(e,t);if(n.startsWith("@")){let e=n.slice(1).toLowerCase(),t=r.repoTargets.filter(t=>t.name.toLowerCase().startsWith(e)).map(repoSuggestion),o=new Set(t.map(e=>e.label));return[...t,...r.agentNames.filter(t=>t.toLowerCase().startsWith(e)).map(agentSuggestion).filter(e=>!o.has(e.label))].slice(0,10)}if(n.startsWith("/")&&e.slice(0,t).trimStart()===n){let e=n.toLowerCase(),t=[...r.allCommands?.map(e=>e.name)??[],...d.M1,...m.RZ,...r.extraCommands??[]],o=new Map((r.allCommands??[]).map(e=>[e.name,e.description])),a=new Set,l=[];for(let r of t){let t=r.toLowerCase();if(a.has(t)||!t.startsWith(e))continue;a.add(t);let n=o.get(r);l.push({value:r,label:r,kind:"command",...n?{hint:n}:{}})}return l.slice(0,100)}return[]}let browseAllAgents=function(e){let t=e.repoTargets.map(repoSuggestion),r=new Set(t.map(e=>e.label));return[...t,...e.agentNames.map(agentSuggestion).filter(e=>!r.has(e.label))].slice(0,10)};function applySuggestion(e,t,r){let{start:n}=currentToken(e,t),o=`${r.value} `;return{value:`${e.slice(0,n)}${o}${e.slice(t)}`,cursor:n+o.length}}var f=r(37905),h=r(74042),p=r(64828),g=r(67292),E=r(89799),w=r(88415),y=r(64799),b=r(32894),x=r(79311),T=r(25576),k=r(60114),S=r(11369),v=r(55425);let AgentViewPeekPanel=({job:e,now:t,replyValue:r,replyCursor:n,notice:a})=>{let{theme:l}=(0,S.D)(),c=(0,s.wXL)(e),u=(0,s.WQs)(e,t),d=(0,s.ijy)(e.state.children),m=r.startsWith("!");return i().createElement(o.Box,{flexDirection:"column",borderStyle:"round",borderColor:l.colors.border,paddingX:1,marginTop:1},i().createElement(o.Text,{bold:!0,color:l.colors.brand},(0,s.rZH)(e)),"questions"===c.kind?i().createElement(o.Box,{flexDirection:"column",marginTop:1},c.questions.map((e,t)=>i().createElement(o.Box,{key:`question-${t}`,flexDirection:"column"},i().createElement(o.Text,{color:l.colors.warning},e.question),(e.options??[]).map((e,t)=>i().createElement(o.Text,{key:`option-${t}`},i().createElement(o.Text,{color:l.colors.brand},` ${t+1}. `),i().createElement(o.Text,null,e.label),e.description?i().createElement(o.Text,{dimColor:!0},` \u{2014} ${e.description}`):void 0))))):i().createElement(o.Box,{flexDirection:"column",marginTop:1},"output"===c.kind?i().createElement(o.Text,{dimColor:!0},"result"):void 0,i().createElement(o.Text,{color:"needs"===c.kind?l.colors.warning:void 0},c.text)),d?i().createElement(o.Box,{marginTop:1},i().createElement(o.Text,{color:l.colors[(0,s.DUk)(e.state.children)]},d.text),d.href?i().createElement(o.Text,{dimColor:!0},` ${d.href}`):void 0):void 0,u?i().createElement(o.Box,{marginTop:1},i().createElement(o.Text,{dimColor:!0},u)):void 0,i().createElement(o.Box,{marginTop:1},i().createElement(o.Text,{color:m?l.colors.bashMode:l.colors.prompt},m?"! ":"> "),i().createElement(T.L,{value:m?r.slice(1):r,cursorOffset:Math.max(0,m?n-1:n),placeholder:(0,s.j3P)(e)?"answer this session":"send a prompt",focus:!0})),a?i().createElement(o.Box,null,i().createElement(o.Text,{color:l.colors.warning},a)):void 0,i().createElement(o.Box,null,i().createElement(o.Text,{dimColor:!0},"enter to send \xb7 tab for suggested reply \xb7 ! for bash \xb7 \u2191\u2193 to peek others \xb7 \u2192 to attach \xb7 esc to close")))};var C=r(15297);let _=i().memo(({job:e,glyph:t,colorToken:r,now:n})=>{let{theme:a}=(0,S.D)(),c=(0,l.useSyncExternalStore)(C.Yc,()=>(0,s.kYF)(e,n)?(0,s.dct)((0,C.dV)()):0);return i().createElement(o.Text,{color:a.colors[r],dimColor:1===c,bold:t===s.DgE},t)});_.displayName="RowGlyph";let A=i().memo(({job:e,selected:t,showStateWord:r,widths:n,rowWidth:a,now:l,origin:c,groupKey:u})=>{let{theme:d}=(0,S.D)(),m=(0,s.EEe)(e,{selected:t,showStateWord:r,widths:n,now:l,origin:c,groupKey:u}),f=(0,s.lkO)(m,n);return i().createElement(o.Box,{width:a,flexShrink:0,overflow:"hidden"},i().createElement(o.Text,{wrap:"truncate-end"},i().createElement(o.Text,{color:d.colors.brand},f.markerCell),n.icon>0?i().createElement(i().Fragment,null,i().createElement(_,{job:e,glyph:f.glyph,colorToken:m.glyphColorToken,now:l}),i().createElement(o.Text,null,f.glyphGap)):void 0,i().createElement(o.Text,{bold:m.nameBold,dimColor:m.nameDim},f.nameCell),i().createElement(o.Text,{dimColor:m.detailDim},f.detailCell),i().createElement(o.Text,{dimColor:!0},f.ageCell)))});A.displayName="AgentViewRow";let AgentViewShortcutsOverlay=()=>{let{theme:e}=(0,S.D)(),t=(0,s.dAC)();return i().createElement(o.Box,{flexDirection:"column",borderStyle:"round",borderColor:e.colors.border,paddingX:1,marginTop:1},i().createElement(o.Text,{bold:!0,color:e.colors.brand},"Keyboard shortcuts"),i().createElement(o.Box,{flexDirection:"column",marginTop:1},s.kK9.map(([r,n])=>i().createElement(o.Box,{key:r},i().createElement(o.Box,{width:t},i().createElement(o.Text,{color:e.colors.hint},r)),i().createElement(o.Text,{dimColor:!0},n)))),i().createElement(o.Box,{marginTop:1},i().createElement(o.Text,{dimColor:!0},"? or esc to close")))};var M=r(88523),I=r(47944),O=r(90396),P=r(59362),R=r(24463);function handoffSeedMessages(e){if(e.length<=200)return(0,P.w)(e);let t=e.length-200,r=-1;for(let n=e.length-1;n>=t;n--){let t=e[n];if("message"!==t.type||"user"!==t.role)continue;let o=E.c.extractTextContent(t,!0)?.trim()??"";if(o&&!R.r.isSystemInjectedContent(o)){r=n;break}}return r<0?(0,P.w)(e):(0,P.w)(e.slice(Math.max(0,r-8)))}var D=r(98866),L=r(67662);async function handOffInProcessSessionsToBackground(){let e=M.ContainerUtil.get(s.BYr),t=M.ContainerUtil.get(D.DH),r=M.ContainerUtil.get(L.c9);for(let n of(0,f.Kx)()){let o=(0,f.yt)(n.id);if(!o){(0,f.Ol)(n.id);continue}let a=handoffSeedMessages(o.history);if(0===a.length){(0,f.Ol)(n.id);continue}if((0,O.wf)(o.id),"busy"===n.live.status){let l;try{l=M.ContainerUtil.get(L.MU)}catch{return{ok:!1,reason:"the session state machine is unavailable"}}let i=await (0,I.KE)({store:e,processManager:t,logDir:w.P.getLoggerDir(),flushTranscript:async()=>{await r.save(o)},updateRegistry:async e=>{try{await M.ContainerUtil.get(D.MN).update({status:e})}catch{}}},{sessionId:o.id,cwd:w.P.getWorkDir(),messages:a,getStatus:()=>l.getSnapshot(o).status,change$:l.getChange$(o),getResultText:()=>(0,L.qd)(o.history)?.trim()??"",getCurrentMessages:()=>handoffSeedMessages(o.history),permissionMode:o.permissionModeSubject.value});if(!i.ok)return{ok:!1,reason:i.reason};(0,f.Ol)(n.id);continue}let l=await (0,s.CFb)({store:e,processManager:t,logDir:w.P.getLoggerDir(),flushTranscript:async()=>{await r.save(o)},releaseOwnership:()=>void 0},{sessionId:o.id,cwd:w.P.getWorkDir(),messages:a,via:"idle-fork",permissionMode:o.permissionModeSubject.value,allowEmptySeed:!1});if(!l.ok){if("nothing-to-background"===l.reason){(0,f.Ol)(n.id);continue}return{ok:!1,reason:l.reason}}(0,f.Ol)(n.id)}return{ok:!0}}function useAgentViewJobs(e=s.BDR){let[t,r]=(0,l.useState)([]),[n,o]=(0,l.useState)((0,f.Kx)()),[a,i]=(0,l.useState)(!1),c=(0,l.useRef)(0),u=(0,l.useRef)(0),d=(0,l.useRef)(!1),m=(0,l.useRef)(!1),h=(0,l.useCallback)(async()=>{let e=++c.current;try{let t=await (0,s.LjG)((0,v.rb)(),(0,v.a)());if(d.current||e!==c.current)return;m.current=!0,r(e=>sameJobs(e,t)?e:t),i(!0)}catch{d.current||i(!0)}},[]),p=(0,l.useCallback)(async()=>{let e=++u.current;try{let t=await (0,s.LjG)((0,v.rb)(),(0,v.a)(),{reap:!1});if(d.current||e!==u.current||m.current)return;r(e=>sameJobs(e,t)?e:t),i(!0)}catch{d.current||i(!0)}},[]);(0,l.useEffect)(()=>{let e=(0,f.SC)().subscribe(o);return()=>e.unsubscribe()},[]),(0,l.useEffect)(()=>{d.current=!1,m.current=!1,p(),h();let t=setInterval(h,e);return"function"==typeof t.unref&&t.unref(),()=>{d.current=!0,clearInterval(t)}},[h,p,e]);let g=(0,l.useCallback)(()=>{h()},[h]);return{jobs:(0,l.useMemo)(()=>[...n,...t.filter(e=>!n.some(t=>t.id===e.id||t.state.sessionId===e.state.sessionId))],[n,t]),loaded:a,refresh:g}}function sameJobs(e,t){return e.length===t.length&&e.every((e,r)=>{let n=t[r];return void 0!==n&&e.id===n.id&&JSON.stringify(e)===JSON.stringify(n)})}let $={value:"",cursor:0};function insertText(e,t){return{value:e.value.slice(0,e.cursor)+t+e.value.slice(e.cursor),cursor:e.cursor+t.length}}function deleteBackward(e){return 0===e.cursor?e:{value:e.value.slice(0,e.cursor-1)+e.value.slice(e.cursor),cursor:e.cursor-1}}function moveCursor(e,t){return{...e,cursor:Math.max(0,Math.min(e.value.length,e.cursor+t))}}function setEditorValue(e){return{value:e,cursor:e.length}}let SegmentedLine=({segments:e})=>{let{theme:t}=(0,S.D)();return i().createElement(o.Text,null,e.map((e,r)=>i().createElement(o.Text,{key:`segment-${r}`,color:e.colorToken?t.colors[e.colorToken]:void 0,dimColor:e.dim,bold:e.bold},e.text)))};function rowIdentity(e){switch(e.kind){case"job":return`job:${e.job.id}`;case"header":return`header:${e.groupKey}`;case"fold":return`fold:${e.groupKey}`;default:return"other"}}function writeTerminalTitle(e){n.BooleanUtils.isTruthy(process.env.CODEBUDDY_CODE_DISABLE_TERMINAL_TITLE)||process.stdout.isTTY&&process.stdout.write(`\u001B]0;${e}\u0007`)}let AgentViewScreen=e=>{let{theme:t}=(0,S.D)(),{columns:n,rows:d}=(0,k.H)(),{jobs:m,loaded:C}=useAgentViewJobs(),[_,M]=(0,l.useState)("state"),[I,O]=(0,l.useState)(new Set),[P,R]=(0,l.useState)(!1),[D,L]=(0,l.useState)(void 0),[B,N]=(0,l.useState)(0),[W,F]=(0,l.useState)($),[j,U]=(0,l.useState)(!1),[H,G]=(0,l.useState)($),[V,K]=(0,l.useState)(void 0),[J,q]=(0,l.useState)(!1),[Y,X]=(0,l.useState)(void 0),[z,Z]=(0,l.useState)(()=>process.env[s.QTX]?.trim()||void 0),[Q,ee]=(0,l.useState)(e.model),[et,er]=(0,l.useState)(!1),[en,eo]=(0,l.useState)(void 0),[ea,el]=(0,l.useState)(!1),[ei,es]=(0,l.useState)(0),[ec,eu]=(0,l.useState)(!1),[ed,em]=(0,l.useState)(()=>Date.now()),ef=(0,l.useRef)(new Map),eh=(0,l.useRef)(0),ep=(0,l.useRef)(new Map),eg=(0,l.useRef)(new Map),eE=(0,l.useCallback)(()=>{(async()=>{let e=await b.E.readImage();e?F(t=>{let r=(0,s.UBx)(eg.current);return eg.current.set(r,e.tempFilePath),insertText(t,(0,s.bcN)(r))}):Z("No image on the clipboard")})().catch(()=>{Z("Could not read an image from the clipboard")})},[]),ew=(0,l.useRef)(1),ey=(0,l.useMemo)(()=>({store:(0,v.rb)(),processManager:(0,v.xQ)(),logDir:w.P.getLoggerDir()}),[]),[eb,ex]=(0,l.useState)(()=>e.agent?[e.agent]:[]);(0,l.useEffect)(()=>{try{let t=(0,v._F)().getAll().map(e=>e.name),r=[...new Set(e.agent?[e.agent,...t]:t)];ex(e=>e.length===r.length&&e.every((e,t)=>e===r[t])?e:r)}catch{}},[e.agent,ed]);let[eT,ek]=(0,l.useState)([]),[eS,ev]=(0,l.useState)([]);(0,l.useEffect)(()=>{let e=!1;return(async()=>{try{let[t,r]=await Promise.all([(0,v.J0)().getAll(),(0,v.jO)().waitConfiguration()]);if(e)return;let n=(r.skills??[]).map(e=>({name:`/${e.name}`,description:e.description||e.name})),o=new Map;for(let e of[...t,...n])e.name.startsWith("/_")||o.has(e.name)||o.set(e.name,{name:e.name,description:e.description});let a=[...o.values()];ek(e=>e.length===a.length&&e.every((e,t)=>e.name===a[t].name&&e.description===a[t].description)?e:a);let l=new Set;for(let e of t)e.scope&&l.add(e.name);for(let e of n)l.add(e.name);let i=[...l];ev(e=>e.length===i.length&&e.every((e,t)=>e===i[t])?e:i)}catch{}})(),()=>{e=!0}},[]);let[eC,e_]=(0,l.useState)([]),eA=(0,l.useMemo)(()=>(0,u.U)(eC),[eC]),eM=(0,l.useMemo)(()=>[...new Set(m.map(e=>(0,s.SE0)(e.state.cwd)).filter(Boolean))],[m]);(0,l.useEffect)(()=>{let t=!1;return(async()=>{let n=e.cwd??w.P.getWorkDir(),o=[],a=[];try{let{readdirSync:e,existsSync:t}=await Promise.resolve().then(r.t.bind(r,79896,23));for(let r of e(n,{withFileTypes:!0}))r.isDirectory()&&t(`${n}/${r.name}/.git`)&&o.push(`${n}/${r.name}`)}catch{}try{let{execFile:e}=await Promise.resolve().then(r.t.bind(r,35317,23)),{promisify:t}=await Promise.resolve().then(r.t.bind(r,39023,23)),{stdout:o}=await t(e)("git",["worktree","list","--porcelain"],{cwd:n,encoding:"utf8",timeout:3e3}),l={};for(let e of o.split("\n"))e.startsWith("worktree ")?l={path:e.slice(9).trim()}:e.startsWith("branch ")?l.branch=e.slice(7).trim().replace(/^refs\/heads\//,""):""===e&&l.path&&(l.path.startsWith(n)&&a.push({path:l.path,branch:l.branch}),l={})}catch{}t||e_((0,u.p)({childRepos:o,worktrees:a,sessionDirs:eM}))})().catch(()=>{}),()=>{t=!0}},[e.cwd,eM]),(0,l.useEffect)(()=>{let e=setInterval(()=>em(Date.now()),1e3);return"function"==typeof e.unref&&e.unref(),()=>clearInterval(e)},[]),(0,l.useEffect)(()=>{if(void 0===en)return;let e=setTimeout(()=>eo(void 0),s.F0p);return()=>clearTimeout(e)},[en]),(0,l.useEffect)(()=>{if(!ea)return;let e=setTimeout(()=>el(!1),s.cCv);return()=>clearTimeout(e)},[ea]);let eI=(0,l.useMemo)(()=>(0,s._7f)(W.value),[W.value]),eO=(0,l.useMemo)(()=>ec&&""===W.value?browseAllAgents({agentNames:eb,repoTargets:eC}):buildDispatchSuggestions(W.value,W.cursor,{agentNames:eb,repoTargets:eC,allCommands:eT}),[ec,W.value,W.cursor,eb,eC,eT]),eP=0===eO.length?0:Math.min(ei,eO.length-1),eR=Math.min(Math.max(eP-9,0),Math.max(eO.length-10,0)),eD=eO.slice(eR,eR+10),eL=Math.min(Math.max(0,...eD.map(e=>(0,s.F1)(e.label))),Math.max(n-8,0));(0,l.useEffect)(()=>{es(0)},[W.value]);let e$=(0,l.useMemo)(()=>(0,c.Ww)(m,e.cwd).filter(e=>(0,s.yyB)(e,eI)),[m,e.cwd,eI]),{rows:eB,compactHeader:eN,showLogo:eW}=(0,l.useMemo)(()=>{if(d>=28){let e=(0,s.Qly)(e$,{groupMode:_,terminalRows:d-5,collapsedGroups:I,doneExpanded:P});if(!e.compactHeader)return{...e,showLogo:!0}}return{...(0,s.Qly)(e$,{groupMode:_,terminalRows:d,collapsedGroups:I,doneExpanded:P}),showLogo:!1}},[e$,_,d,I,P]),eF=(0,l.useMemo)(()=>eB.filter(e=>"job"===e.kind||"header"===e.kind||"fold"===e.kind),[eB]),ej=(0,l.useMemo)(()=>{if(0===eF.length)return 0;if(void 0!==D){let e=eF.findIndex(e=>rowIdentity(e)===D);if(e>=0)return e}return Math.min(B,eF.length-1)},[eF,D,B]),eU=eF[ej],eH=eU?.kind==="job"?eU.job:void 0;(0,l.useEffect)(()=>{delete process.env[s.QTX]},[]),(0,l.useEffect)(()=>{let e=process.env[s.igH];if(!e||!C||0===eF.length)return;let t=`job:${e}`;eF.find(e=>rowIdentity(e)===t)&&(L(t),delete process.env[s.igH])},[C,eF]);let eG=(0,l.useMemo)(()=>eF.filter(e=>"job"===e.kind),[eF]),eV=(0,l.useMemo)(()=>{let e={blocked:0,working:0,review:0,done:0};for(let t of e$)e[(0,s.iuY)(t)]+=1;return e},[e$]),eK=eV.blocked,eJ=(0,l.useMemo)(()=>eG.reduce((e,t)=>Math.max(e,(0,s.F1)((0,s.rZH)(t.job))),0),[eG]),eq=Math.max(0,n-2),eY=(0,l.useMemo)(()=>(0,s.PXA)(eq-s.SrN,eJ),[eq,eJ]),eX=Math.min(eq,Math.max(35,s.SrN+eY.icon+eY.name));(0,l.useEffect)(()=>{j||(G($),K(void 0))},[j]),(0,l.useEffect)(()=>{writeTerminalTitle((0,s.O_T)(eK))},[eK]),(0,l.useEffect)(()=>{if(0===m.length)return;let e=(0,s.nd0)(ef.current,m);if(ef.current=(0,s.VXe)(m),0===e.length)return;let t=(0,v.J)();for(let r of e)t.sendNotification(r.message,"codebuddy agents",r.notificationType).catch(()=>{})},[m]);let ez=(0,l.useCallback)((t="return")=>{writeTerminalTitle(""),e.onExit?.(t)},[e.onExit]),eZ=(0,l.useCallback)(t=>{t&&((0,f.jq)(t)?ez():t.state.inPlaceWorker&&!t.state.attachSocket&&"number"==typeof t.state.pid&&(0,v.xQ)().isProcessRunning(t.state.pid)?Z(s.oES):t.state.foregroundHeld&&!t.state.attachSocket&&"number"==typeof t.state.pid&&(0,v.xQ)().isProcessRunning(t.state.pid)?Z(s.mUG):t.state.exec?Z(s._KY):e.onAttach?0===(0,f.Kx)().length?e.onAttach(t):handOffInProcessSessionsToBackground().then(r=>{r.ok?e.onAttach(t):Z(`Could not move your conversation to the background \u{2014} ${r.reason??"it stays here"}`)}).catch(()=>Z("Could not move your conversation to the background \u2014 it stays here")):Z("Attaching is not available in this context"))},[ez,e.onAttach]),[eQ,e0]=(0,l.useState)(void 0),e1=(0,l.useCallback)(()=>{let e=++eh.current;(async()=>{try{let t=await (0,v.id)().getAllByWorkdir(w.P.getWorkDir());if(e!==eh.current)return;let r=(0,h.oe)(t.map(e=>({id:e.id,updatedAt:e.updatedAt,hasHistory:g.oV.getActiveAgentOnlyHistory(e.history).length>0,label:(0,p.PJ)(E.c.getSessionName(e.history)||E.c.getSessionSummary(e.history))??""})),m);if(0===r.length){if(e!==eh.current)return;Z("No past sessions to resume in this repository.");return}if(e!==eh.current)return;e0({items:r,index:0})}catch(t){if(e!==eh.current)return;Z(`Could not list sessions: ${t instanceof Error?t.message:String(t)}`)}})()},[m]),e3=(0,l.useCallback)(t=>{(async()=>{try{let r=await (0,s.DFO)(ey,{sessionId:t.sessionId,cwd:process.cwd(),extraFlags:e.extraFlags});Z(`Resumed as background session ${r.id}`)}catch(e){Z(`Resume failed: ${e instanceof Error?e.message:String(e)}`)}})().catch(()=>{})},[ey,e.extraFlags]),e2=(0,l.useCallback)((t,r)=>{let n=t.toLowerCase();if("/exit"===n||"/quit"===n)return void ez("exit");if("/model"===n){let t=r.trim();F($),""===t||"default"===t?(ee(e.model),er(!1),Z("Dispatch model reset to the default")):(ee(t),er(!0),Z(`Dispatch model set to ${t}`));return}if("/logout"===n){F($),(0,v.Yf)().logout().then(()=>Z("Signed out.")).catch(e=>Z(`Sign-out failed: ${e instanceof Error?e.message:String(e)}`));return}"/resume"===n||"/continue"===n?(F($),(0,h.qe)({hasArgs:""!==r.trim(),scopedCwd:!!e.cwd,hasDispatchFlags:!!e.permissionMode||(e.extraFlags?.length??0)>0}))?e1():Z(`${t} isn't available in this form \u{2014} ${s.V7L}`):(F($),Z(`${t} is not available yet in agent view`))},[ez,e.model,e.cwd,e.permissionMode,e.extraFlags,e1]),e9=(0,l.useCallback)(async t=>{let r=(0,s.KQv)((0,s.Sft)(W.value,ep.current),eg.current),n=(0,s.kQ8)(r,{agentNames:eb,repos:eA});if("command"===n.kind){let e=(0,s.DgW)(n.name,eS);if("host"===e)return void e2(n.name,n.args);if("attach-only"===e)return void Z(`${n.name} isn't available in agent view \u{2014} ${s.V7L}`);n={kind:"prompt",prompt:`${n.name} ${n.args}`.trim()}}let o=(0,s.L94)(n);if(!o.ok)return void Z(o.hint);Z(void 0),F($),eg.current.clear();try{if("exec"===n.kind)return void await (0,s.GtD)(ey,{command:n.command,cwd:process.cwd()});if("prompt"===n.kind){let r="directory"===_&&eU&&eU.groupKey&&eU.groupKey!==s.BvV?eU.groupKey:void 0,o=await (0,s.pEf)(ey,{prompt:n.prompt,cwd:n.cwd??r??process.cwd(),agent:n.agent??e.agent,model:Q,permissionMode:e.permissionMode,extraFlags:e.extraFlags});if(t){let e=await ey.store.read(o.id);e&&eZ({id:o.id,state:e,display:{},live:{alive:!0}})}}}catch(e){Z(`Dispatch failed: ${e instanceof Error?e.message:String(e)}`)}},[W.value,ey,Q,e2,eZ,e.agent,e.permissionMode,e.extraFlags,eb,eA,_,eU,eS]),e6=(0,l.useCallback)(async()=>{let e=process.env.VISUAL||process.env.EDITOR;if(!e)return void Z("Set $VISUAL or $EDITOR to edit the prompt externally");try{let{mkdtemp:t,readFile:n,writeFile:o}=await Promise.resolve().then(r.t.bind(r,91943,23)),{tmpdir:a}=await Promise.resolve().then(r.t.bind(r,70857,23)),{join:l}=await Promise.resolve().then(r.t.bind(r,16928,23)),{spawnSync:i}=await Promise.resolve().then(r.t.bind(r,35317,23)),s=await t(l(a(),"codebuddy-dispatch-")),c=l(s,"PROMPT.md");await o(c,W.value,"utf8"),i(e,[c],{stdio:"inherit",shell:!0});let u=(await n(c,"utf8")).replace(/\n+$/,"");F(setEditorValue(u))}catch(e){Z(`Could not open the editor: ${e instanceof Error?e.message:String(e)}`)}},[W.value]),e8=(0,l.useCallback)(async()=>{if(!eH)return;if((0,f.jq)(eH))return void K("Return to Chat to reply to this session.");let e=H.value,t=e.startsWith("!"),r=await (0,s.ZCx)(ey,eH,{text:t?e.slice(1):e,bash:t});K(r.notice),(r.delivered||r.saved)&&G($)},[ey,H.value,eH]),e5=(0,l.useCallback)(async()=>{if((0,f.jq)(eH))return void Z("Return to Chat to stop this session.");if(void 0!==en){let e=e$.find(e=>e.id===en);if(e){eo(void 0);let t=await (0,s.XXR)(ey,e,{worktreeGuard:(0,s.ryp)({listJobs:()=>m,isProcessRunning:e=>(0,v.xQ)().isProcessRunning(e)}),removeWorktree:async e=>{if((0,s.M7f)(e)){if(!await (0,v.H4)().isLinkedWorktree(e))throw Error("git no longer recognizes this worktree");await (0,v.H4)().remove(e,{force:!0,deleteBranch:!0})}}});Z(t.deleted?t.keptWorktreePath?`Session deleted \u{2014} worktree kept at ${t.keptWorktreePath}`:"Session deleted":`Not deleted \u{2014} ${t.reason??"unknown reason"}`);return}}eH&&(await (0,s.CCD)(ey,eH),eo(eH.id),Z("Stopped \u2014 press ctrl+x again within 2s to delete"))},[en,ey,e$,m,eH]),e4=(0,l.useCallback)(async e=>{if(!eH||(0,f.jq)(eH))return;let t=eU?.groupKey,r=eG.filter(e=>e.groupKey===t).map(e=>e.job),n=r.findIndex(e=>e.id===eH.id),o=n+e;if(n<0||o<0||o>=r.length)return;let a=r[o],l=(0,s.fbz)(a,t??"",_);await ey.store.setOrder(eH.id,_,l+(e<0?1:-1))},[ey,_,eG,eH,eU]),e7=(0,l.useCallback)(async()=>{!eH||(0,f.jq)(eH)||await ey.store.setPinned(eH.id,!eH.display.pinned)},[ey,eH]),te=(0,l.useCallback)(async()=>{if(!Y)return;let e=Y.editor.value.trim();""===e||(0,f.Kx)().some(e=>e.id===Y.id)||await ey.store.patch(Y.id,{name:e,nameSource:"user"}),X(void 0)},[ey,Y]),tt=(0,l.useCallback)(e=>{O(t=>{let r=new Set(t);return r.delete(e)||r.add(e),r})},[]);(0,o.useInput)((e,t)=>{if(Y)return t.escape?void X(void 0):t.return?void te().catch(()=>{}):t.backspace||t.delete?void X({...Y,editor:deleteBackward(Y.editor)}):t.leftArrow||t.rightArrow?void X({...Y,editor:moveCursor(Y.editor,t.leftArrow?-1:1)}):void(!e||t.ctrl||t.meta||X({...Y,editor:insertText(Y.editor,e)}));if(J){(t.escape||"?"===e)&&q(!1);return}if(eQ){if(t.escape)return void e0(void 0);if(t.upArrow||t.downArrow){let e=t.upArrow?-1:1,r=Math.min(Math.max(eQ.index+e,0),eQ.items.length-1);e0({...eQ,index:r});return}if(t.return){let e=eQ.items[eQ.index];e0(void 0),e&&e3(e)}return}if(j){if(t.escape)return void U(!1);if(t.rightArrow)return""!==H.value?void G(moveCursor(H,1)):void eZ(eH);if(t.upArrow||t.downArrow){let e=eF.map((e,t)=>"job"===e.kind?t:-1).filter(e=>e>=0),r=e.indexOf(ej)+(t.upArrow?-1:1);if(r>=0&&r<e.length){let t=e[r];L(rowIdentity(eF[t])),N(t),G($),K(void 0)}return}if(t.tab){let e=eH?.state.suggestedReply;e&&G(setEditorValue(e));return}if(t.return)return void e8().catch(()=>{});if(t.backspace||t.delete)return void G(deleteBackward(H));if(t.leftArrow)return void G(moveCursor(H,-1));if(""===H.value&&/^[1-9]$/.test(e)&&eH){let t=(0,s.AbU)(eH,e);if(t)return void G(setEditorValue(t))}return" "===e&&""===H.value?void U(!1):void(!e||t.ctrl||t.meta||G(insertText(H,e)))}if("?"===e&&""===W.value)return void q(!0);if(t.ctrl&&"c"===e){if(""!==W.value){F($),eu(!1);return}return ea?void ez("exit"):void el(!0)}if(t.escape){if(ec)return void eu(!1);if(""!==W.value){F($),Z(void 0);return}return void ez()}if(t.ctrl&&"s"===e)return void M(e=>"state"===e?"directory":"state");if(t.ctrl&&"t"===e)return void e7().catch(()=>{});if(t.ctrl&&"r"===e){eH&&!(0,f.jq)(eH)&&X({id:eH.id,editor:setEditorValue((0,s.rZH)(eH))});return}if(t.ctrl&&"x"===e)return void e5().catch(()=>{});if(t.ctrl&&"j"===e)return void F(insertText(W,"\n"));if(t.ctrl&&"g"===e)return void e6().catch(()=>{});if(t.tab&&!t.shift){if(eO.length>0){let e=applySuggestion(W.value,W.cursor,eO[eP]);F({value:e.value,cursor:e.cursor}),eu(!1),es(0)}else""===W.value&&(eu(!0),es(0));return}if(t.meta&&/^[1-9]$/.test(e))return void eZ(eG[Number(e)-1]?.job);if(t.shift&&(t.upArrow||t.downArrow))return void e4(t.upArrow?-1:1).catch(()=>{});if((t.upArrow||t.downArrow)&&eO.length>0)return void es(Math.min(Math.max(eP+(t.upArrow?-1:1),0),eO.length-1));if(t.upArrow||t.downArrow){let e=ej+(t.upArrow?-1:1);e>=0&&e<eF.length&&(L(rowIdentity(eF[e])),N(e));return}if(t.rightArrow)return""===W.value?void eZ(eH):void F(moveCursor(W,1));if(t.return){if(eO.length>0){let e=eO[eP],{text:t}=currentToken(W.value,W.cursor);if(t!==e.value){let t=applySuggestion(W.value,W.cursor,e);F({value:t.value,cursor:t.cursor}),eu(!1);return}}return""!==W.value?void e9((0,s.$nB)(t.shift)).catch(()=>{}):eU?.kind==="header"?void tt(eU.groupKey):eU?.kind==="fold"?void R(e=>!e):void eZ(eH)}if(" "===e&&""===W.value){eH&&(eu(!1),U(!0));return}if(t.backspace||t.delete)return void F(deleteBackward(W));if(t.leftArrow)return void F(moveCursor(W,-1));if(t.ctrl&&"v"===e)return void eE();if(e&&!t.ctrl&&!t.meta){if(Z(void 0),(0,s.MhU)(e)){let t=ew.current++;ep.current.set(t,e),F(insertText(W,(0,s.TE$)(t,e.split("\n").length)));return}F(insertText(W,e))}});let tr=(0,s.rfz)(Q,et,e.cwd??process.cwd(),(0,a.homedir)(),n-2-22*!!eW),tn=(0,s.N5q)(eV),to=(0,f.Kx)().length>0?"This session is still running here \xb7 esc returns to Chat":(0,s.b7z)()?s.HQ3:void 0;return i().createElement(o.Box,{flexDirection:"column",paddingX:1},eN?i().createElement(o.Text,{dimColor:!0},(0,s.Y$h)(`codebuddy agents \xb7 ${tn.map(e=>e.text).join("")}`,n-2)):eW?i().createElement(o.Box,null,i().createElement(x.M,null),i().createElement(o.Box,{flexDirection:"column",marginLeft:2,justifyContent:"center"},i().createElement(SegmentedLine,{segments:tr}),i().createElement(SegmentedLine,{segments:tn}))):i().createElement(o.Box,{flexDirection:"column"},i().createElement(SegmentedLine,{segments:tr}),i().createElement(SegmentedLine,{segments:tn})),to?i().createElement(o.Box,{marginTop:1},i().createElement(o.Text,{dimColor:!0},to)):void 0,i().createElement(o.Box,{flexDirection:"column",marginTop:1},C?void 0:i().createElement(o.Text,{dimColor:!0},"Loading sessions\u2026"),eB.map((e,t)=>renderRow(e,t))),j&&eH?i().createElement(AgentViewPeekPanel,{job:eH,now:ed,replyValue:H.value,replyCursor:H.cursor,notice:V}):void 0,J?i().createElement(AgentViewShortcutsOverlay,null):void 0,eQ?i().createElement(o.Box,{flexDirection:"column",borderStyle:"round",borderColor:t.colors.brand,paddingX:1,marginTop:1},i().createElement(o.Text,{bold:!0,color:t.colors.brand},"Resume a past session"),eQ.items.map((e,r)=>i().createElement(o.Text,{key:e.sessionId,color:r===eQ.index?t.colors.brand:void 0},r===eQ.index?">":" ",(0,s.Y$h)(e.label,Math.max(n-24,20)),i().createElement(o.Text,{dimColor:!0},` ${y.R.formatAgo(e.updatedAt)}`))),i().createElement(o.Text,{dimColor:!0},"enter resume as background session \xb7 esc close")):void 0,Y?i().createElement(o.Box,{marginTop:1},i().createElement(o.Text,{color:t.colors.brand},"rename \u2192 "),i().createElement(T.L,{value:Y.editor.value,cursorOffset:Y.editor.cursor,focus:!0})):void 0,i().createElement(o.Box,{marginTop:1,paddingRight:1,gap:1,borderRight:!1,borderLeft:!1,borderStyle:"single",borderColor:t.colors.prompt},i().createElement(o.Box,{flexShrink:0},i().createElement(o.Text,null,">")),i().createElement(o.Box,{flexGrow:1},i().createElement(T.L,{value:W.value,cursorOffset:W.cursor,placeholder:"describe a task for a new session",focus:!j&&!J&&!Y&&!eQ,showPlaceholderWhenFocused:!0}))),eO.length>0?i().createElement(o.Box,{flexDirection:"column",paddingLeft:2},eD.map((e,r)=>{let n=eR+r===eP,a=n?t.colors.info:t.colors.secondary;return i().createElement(o.Box,{key:`${e.kind}-${e.value}`,flexDirection:"row",gap:1},i().createElement(o.Box,{width:eL,flexShrink:0},i().createElement(o.Text,{color:a,bold:n,wrap:"truncate-middle"},e.label)),e.hint&&e.hint.trim()?i().createElement(o.Box,{flexGrow:1,flexShrink:1},i().createElement(o.Text,{color:a,bold:n,dimColor:!n,wrap:"truncate"},e.hint)):void 0)})):ec?i().createElement(o.Box,{paddingLeft:2},i().createElement(o.Text,{dimColor:!0},"No subagents found yet \xb7 esc to close")):void 0,ea||z?i().createElement(o.Box,null,i().createElement(o.Text,{color:t.colors.warning},ea?s.qPD:z)):void 0,i().createElement(o.Box,null,i().createElement(SegmentedLine,{segments:(0,s.NPq)(n-2)})),e.activeDefaults?i().createElement(o.Box,null,i().createElement(o.Text,{dimColor:!0},e.activeDefaults)):void 0);function renderRow(e,r){let n="job"===e.kind||"header"===e.kind||"fold"===e.kind?eF.indexOf(e):-1,a=n>=0&&n===ej;switch(e.kind){case"header":return i().createElement(o.Box,{key:`header-${e.groupKey}-${r}`,marginTop:+(0!==r)},i().createElement(o.Box,{width:eX,flexShrink:0,overflow:"hidden"},i().createElement(o.Text,{color:a?t.colors.brand:t.colors[(0,s.HMu)(e.groupKey)],bold:a||(0,s.eBX)(e.groupKey),wrap:"truncate-end"},`${e.collapsed?s.FZm:s.LC} ${e.label}`,e.count>0?i().createElement(o.Text,{dimColor:!0},` \xb7 ${e.count}`):void 0)));case"description":return""===e.text?void 0:i().createElement(o.Box,{key:`description-${e.groupKey}-${r}`,width:eX,flexShrink:0,paddingLeft:2,overflow:"hidden"},i().createElement(o.Text,{dimColor:!0,wrap:"truncate-end"},e.text));case"job":return i().createElement(A,{key:`job-${e.job.id}`,job:e.job,selected:a,showStateWord:e.showStateWord,widths:eY,rowWidth:eq,now:ed,groupKey:e.groupKey});case"fold":return i().createElement(o.Box,{key:`fold-${e.groupKey}-${r}`,paddingLeft:s.SrN+eY.icon},i().createElement(o.Text,{dimColor:!0,bold:a},(0,s.t8B)(e)));case"hint":return i().createElement(o.Box,{key:`hint-${r}`,marginTop:1},i().createElement(o.Text,{dimColor:!0},e.text));default:return}}}},20991(e,t,r){let n;r.d(t,{canSwitchToAgentViewInPlace:()=>canSwitchToAgentViewInPlace,switchToAgentView:()=>switchToAgentView});var o=r(14372),a=r(5100);function canSwitchToAgentViewInPlace(){return void 0!==n}function switchToAgentView(e){(0,o.Hfd)(e),(0,o.s4u)(),process.stdout.isTTY&&process.stdout.write("\x1b[2mLoading agent view\u2026\x1b[0m"),n?.to((0,a.sl)(a.HP.AGENT_VIEW))}},68593(e,t,r){r.d(t,{az:()=>useFocusedMemberContext,Jp:()=>M}),r(88523),r(43634),r(97542),r(53900),r(92735);var n,o,a=r(71416),l=r(67945),i=r.n(l),s=r(88987);r(72542);var c=r(93509);r(65003);var u=r(53052),d=r(31349),m=r(36988),f=r(99455);r(17430),r(69449),r(29134),r(65852),r(73369),r(89072),r(9151),r(35717);var h=r(64225);r(49188),r(77153),r(13389);var p=r(55425),g=r(85577),E=r.n(g),w=r(67662),y=r(34559);let ThinkingIndicator=({enableThinking:e})=>{let{state:t}=(0,u.R7)(),{session:r}=(0,d.L)(),{theme:n}=(0,m.DP)(),o=(0,y.U)(r),{isThinkingActive:a,modelSupportsThinking:l}=(0,m.Ng)(t.states),i=(0,g.useMemo)(()=>l&&a,[l,a]);if((0,g.useMemo)(()=>i&&e&&o!==w.OT.CANCELLING,[e,i,o]))return E().createElement(h.Box,{marginTop:1},E().createElement(h.Text,{color:n.colors.secondary},"\u2234 Thinking..."))};r(37906),r(5100),r(46382);var b=r(81998),x=r(79620),T=r(39457),k=r(43840),S=r(88415),v=r(38433),C=r(80661),_=r(79311);(n=o||(o={})).COMPACT="compact",n.STANDARD="standard",n.FULL="full";let ChannelInfoLine=({textColor:e})=>{let{theme:t}=(0,m.DP)(),r=[];try{let e=(0,p.LI)();e.allowedChannels&&e.allowedChannels.size>0&&(r=Array.from(e.allowedChannels))}catch{}return 0===r.length?null:i().createElement(h.Text,{wrap:"truncate-end",color:e},r.map((e,r)=>i().createElement(i().Fragment,{key:e},r>0&&i().createElement(h.Text,{color:t.colors.secondary}," \xb7 "),i().createElement(h.Text,{color:t.colors.warning},"#",e))))},UserInfoBox=({currentThinkingEffort:e,currentModel:t,currentMainAgent:r,currentMainAgentName:n,currentMainAgentCustom:a,webUIEndpoint:s,layout:c})=>{let{theme:u}=(0,m.DP)(),d=k.C.getCurrentPackageJson(),f=S.P.getWorkDir(),p=c===o.COMPACT,g=c===o.STANDARD,E=p?u.colors.secondary:void 0,w=(0,l.useMemo)(()=>i().createElement(h.Text,null,"CodeBuddy Code ",i().createElement(h.Text,{color:u.colors.secondary},"v",d.version)),[]),y=!!t,x=!!e,v=!!r,C=y||x,_=(0,l.useMemo)(()=>{let o=g?"column":"row",l=[];C?(y&&l.push(i().createElement(h.Text,{key:"model",wrap:"truncate-end",color:E},t)),x&&l.push(i().createElement(h.Text,{key:"effort",wrap:"truncate-end",color:E},e))):l.push(i().createElement(h.Text,{key:"empty",wrap:"truncate-end",color:u.colors.secondary},"No login or model information available.")),v&&l.push(i().createElement(h.Text,{key:"main-agent",wrap:"truncate-end",color:u.colors[(0,b.g8)(n,a)]},r));let s=!g&&l.length>1;return i().createElement(h.Box,{flexDirection:o,alignItems:"center",gap:s?0:void 0},l.map((e,t)=>i().createElement(i().Fragment,{key:`item-${t}`},s&&t>0&&i().createElement(h.Text,null," \xb7 "),e)))},[y,x,v,C,g,E,t,e,r,n,a,u.colors]),A=g?"center":"flex-start";return i().createElement(h.Box,{width:"100%",flexDirection:"column",alignItems:A},p&&w,s&&i().createElement(h.Text,{wrap:"truncate-end",color:u.colors.brand,bold:!0},T.n.createHyperlink(s,s)),_,i().createElement(h.Text,{wrap:"truncate-start",color:E},f),i().createElement(ChannelInfoLine,{textColor:E}))},TipsBox=()=>{let{theme:e}=(0,m.DP)(),t="darwin"===process.platform?"Cmd + V or Ctrl + V":"Ctrl + V",r=((e,t)=>{if(t>=e.length)return[...e];let r=[...e];for(let e=r.length-1;e>0;e--){let t=Math.floor(Math.random()*(e+1));[r[e],r[t]]=[r[t],r[e]]}return r.slice(0,t)})([v.c.getNewlineKeyBindingTip(!0),"Press / to use commands, @ to mention files.",`Run ${C.T.chalk.primary("/init")} to create a ${C.T.chalk.primary(x._b)} or ${C.T.chalk.primary(x.FO)} file with instructions for codebase.`,"Press Esc twice to reset the input box.",`Press ${t} to paste URLs, file paths, or images.`,`${C.T.chalk.brand("Open Web UI in browser")} for a richer interactive experience.`],3);return i().createElement(h.Box,{flexDirection:"column"},i().createElement(h.Text,{color:e.colors.brand},"Tips for getting started"),r.map(e=>i().createElement(h.Text,{wrap:"truncate-end",key:e},e)))},RecentBox=({recentList:e})=>{let{theme:t}=(0,m.DP)(),r=(0,l.useMemo)(()=>{let t=[];for(let r of e){if(t.length>=3)break;t.includes(r)||t.push(r)}return t},[e]);return i().createElement(h.Box,{flexDirection:"column"},i().createElement(h.Text,{color:t.colors.brand},"Recent activity"),r.length?r.map(e=>i().createElement(h.Text,{wrap:"truncate-end",key:e},e)):i().createElement(h.Text,{color:t.colors.secondary},"No recent activity"))},ChatHeaderFullBox=e=>{let{theme:t}=(0,m.DP)(),r=k.C.getCurrentPackageJson(),n=`${C.T.chalk.brand("CodeBuddy Code")} ${C.T.chalk.secondary("v"+r.version)}`;return i().createElement(c.G8,{width:e.width,height:e.height,borderText:{content:n,position:"top",offset:3},borderStyle:"round",borderColor:t.colors.brand},i().createElement(h.Box,{flexBasis:1,flexShrink:0,flexGrow:1,borderBottom:!1,borderTop:!1,borderLeft:!1,borderRight:!0,borderRightDimColor:!0,borderRightColor:t.colors.brand,borderStyle:"single",justifyContent:"center",alignItems:"center"},i().createElement(_.M,null)),i().createElement(h.Box,{flexBasis:1,flexShrink:0,flexGrow:2,paddingLeft:1,paddingRight:1,flexDirection:"column"},i().createElement(TipsBox,null),i().createElement(h.Box,{borderBottom:!0,borderTop:!0,borderLeft:!1,borderRight:!1,borderTopDimColor:!0,borderBottomDimColor:!0,borderStyle:"single",borderTopColor:t.colors.brand,borderBottomColor:t.colors.brand},i().createElement(RecentBox,{...e})),i().createElement(UserInfoBox,{...e})))},ChatHeaderCompactBox=e=>i().createElement(h.Box,{width:e.width,height:e.height,gap:2,alignItems:"flex-end"},i().createElement(h.Box,{flexShrink:0},i().createElement(_.M,null)),i().createElement(UserInfoBox,{...e})),ChatHeaderStandardBox=e=>{let{theme:t}=(0,m.DP)(),r=C.T.chalk.brand("CodeBuddy Code");return i().createElement(c.G8,{width:e.width,borderText:{content:r,position:"top",offset:3},borderStyle:"round",borderColor:t.colors.brand,alignItems:"center"},i().createElement(h.Box,{width:"100%",flexDirection:"column",alignItems:"center"},i().createElement(UserInfoBox,{...e})))},ChatHeaderBox=()=>{let{terminalWidth:e}=(0,m._W)(),{headerData:t}=(0,u.i9)(),r=!1;try{let e=(0,p.LI)();r=!!(e.allowedChannels&&e.allowedChannels.size>0)}catch{}let n=+!!r,a={...t,width:e,height:15+n,layout:o.FULL};return e>=110?(a.width=110,i().createElement(ChatHeaderFullBox,{...a})):e>=80?i().createElement(ChatHeaderFullBox,{...a}):e>=60?(a.layout=o.COMPACT,a.height=8+n,i().createElement(ChatHeaderCompactBox,{...a})):(a.layout=o.STANDARD,i().createElement(ChatHeaderStandardBox,{...a}))},DebugModeText=()=>{let{theme:e}=(0,m.DP)(),{session:t}=(0,u.Lg)(),r=(0,p.lH)(),n=r.isDebugEnabled(),o=r.isDebugToStderr(),a=(0,l.useMemo)(()=>o?"stderr":T.n.createHyperlink(S.P.getDebugLogFile(t.id)),[o,t.id]);return n?i().createElement(h.Box,{flexDirection:"column",marginLeft:2,marginTop:1},i().createElement(h.Text,{color:e.colors.debug},"Debug mode enabled"),i().createElement(h.Text,{dimColor:!0},"Logging to: ",a)):i().createElement(i().Fragment,null)};var A=r(79145);(0,l.memo)(({overrideMessageGroups:e})=>{let{theme:t}=(0,m.DP)(),r=(0,s.useContextSelector)(u.rZ,e=>e.rawMessageGroups),n=e??r,o=(0,s.useContextSelector)(u.Gb,e=>e.staticKey),a=(0,s.useContextSelector)(u.Gb,e=>e.refreshStatic),[d,f]=(0,l.useState)(10),p=(0,l.useMemo)(()=>n.map(e=>e.messages.length),[n]),g=(0,l.useMemo)(()=>p.reduce((e,t)=>e+t,0),[p]),E=(0,l.useMemo)(()=>{let e=0,t=n.length;for(let r=n.length-1;r>=0&&!(e>=d);r--)e+=p[r],t=r;return n.slice(t)},[n,p,d]);(0,h.useInput)((e,t)=>{if(m.Om.CTRL_E(e,t)){f(e=>{let t=Math.min(20,g);return e>=t?10:t}),setTimeout(()=>{a()},0);return}});let w=E.reduce((e,t)=>e+t.messages.length,0),y=w<g,b=g-w,x=i().useMemo(()=>{let e,t=[];for(let r of(y&&t.push(i().createElement(c.L3,{key:"load-more-separator",text:(e=d>=Math.min(20,g),`Ctrl+E to ${e?"hide":"show"} ${Math.min(10,b)} previous messages`)})),E))t.push(i().createElement(A.I,{key:`group-${r.id}`,group:r,expanded:!0}));return t.filter(e=>!!e)},[y,E]);return i().createElement(h.Box,{flexDirection:"column"},i().createElement(h.Static,{key:`${o}-history-key`,items:x},e=>e),i().createElement(h.Box,{borderColor:t.colors.secondary,borderTop:!0,borderStyle:"single",borderBottom:!1,borderRight:!1,borderLeft:!1},i().createElement(h.Text,{color:t.colors.secondary},"Showing detailed transcript \xb7 ctrl+o to toggle")))}),r(94309),r(26210),r(28806),r(62909);let M=i().createContext({focusedMemberName:null,focusedColor:void 0,isViewingMember:!1,isMemberSelecting:!1,hasMembers:!1,focusedSession:null,focusedIsBusy:!1,focusedStatus:null,focusNext:()=>{},focusPrev:()=>{},resetFocus:()=>{},focusMember:()=>{},focusedTaskId:null,selectedMemberName:null,footerLayer:"idle",isFooterSelecting:!1,canCaptureFooterDown:!1,pendingInputRef:{current:""},inputEmptyRef:{current:!0},sendToFocusedMember:null}),useFocusedMemberContext=()=>(0,l.useContext)(M);i().memo(({availableHeight:e,overrideMessageGroups:t,overrideIsBusy:r,active:n=!0})=>{let o=(0,s.useContextSelector)(u.Gb,e=>e.staticKey),m=(0,s.useContextSelector)(u.rZ,e=>e.messageGroups),{session:h}=(0,d.L)(),p=t??m,g=(0,f.X)(h),E=r??g,[w,y]=(0,l.useState)([]),[b,x]=(0,l.useState)([]),T=(0,l.useMemo)(()=>{if(!E)return!1;let e=p[p.length-1];return e&&"function_call_group"!==e.type&&"compact_group"!==e.type&&!!e.messages.find(e=>e?.type==="message"&&e?.role==="user")},[E,p.length]),k=i().useRef(new Set);(0,l.useLayoutEffect)(()=>{if(!n)return;let e=[],t=(e=>{for(let t=e.length-1;t>=0;t--){let r=e[t];if("single"===r.type&&r.messages.some(e=>"message"===e.type&&"user"===e.role))return t}return 0})(p),r=[],o=[];for(let n=0;n<p.length;n++){let a=p[n];if("compact_group"===a.type&&!a.messages.some(e=>"message"===e.type&&"assistant"===e.role)){E&&n>=t&&e.push(...a.messages);continue}if("function_call_group"===a.type){let r=a.messages.find(e=>"function_call"===e.type),o=a.messages.find(e=>"function_call_result"===e.type);if(!(r&&o&&"function_call"===r.type&&r.status&&["completed","incomplete"].includes(r.status))){E&&n>=t&&e.push(...a.messages);continue}}k.current.has(a.id)?r.push(a):o.push(a)}let a=[...r,...o];for(let e of o)k.current.add(e.id);y(a),x(e)},[p,E,n]);let S=i().useMemo(()=>{let e=[i().createElement(ChatHeaderBox,{key:"chat-header-box"}),i().createElement(DebugModeText,{key:"chat-debug-text"})];for(let t=0;t<w.length;t++)e.push(i().createElement(A.I,{key:`group-${w[t].id}`,group:w[t],expanded:!1}));return e},[w]);return i().createElement(i().Fragment,null,i().createElement(a.Static,{key:`${o}-static-key`,items:S},e=>e),i().createElement(ThinkingIndicator,{enableThinking:T}),i().createElement(c.mS,{messages:b,availableHeight:(e-1)/2}))})},55752(e,t,r){r.d(t,{h:()=>P});var n=r(67945),o=r.n(n),a=r(62279),l=r(88987),i=r(20131),s=r(32647),c=r(45214),u=r(93509),d=r(64225),m=r(53052),f=r(36988),h=r(91278);let p=new Set([i.mb.SESSION_START,i.mb.SESSION_END,i.mb.STOP,i.mb.SUBAGENT_STOP,i.mb.NOTIFICATION,i.mb.PRE_COMPACT]),g={success:{icon:a.Ay.tick,label:""},blocked:{icon:a.Ay.cross,label:"blocked"},warning:{icon:a.Ay.warning,label:"warning"},error:{icon:a.Ay.cross,label:"error"}},E={icon:a.Ay.bullet,label:""},w=o().memo(({hookStatus:e,eventName:t,iconColor:r,textColor:n})=>o().createElement(d.Text,null,o().createElement(d.Text,{color:r},(e=>{let{icon:t}=e?g[e]:E;return t})(e)," "),o().createElement(d.Text,{color:n},((e,t)=>{let{label:r}=t?g[t]:E,n=`Hook ${e}`;return r?`${n} [${r}]`:n})(t,e)))),y=o().memo(({msg:e,content:t,expanded:r})=>{let n,{theme:a}=(0,f.DP)(),l=e.providerData.hookEvent,i=e.providerData?.hookStatus,s=p.has(l),c=(e=>{let{theme:t}=(0,f.DP)();switch(e){case"blocked":case"error":return t.colors.error;case"warning":return t.colors.warning;case"success":return t.colors.success;default:return t.colors.secondary}})(i),h=a.colors.secondary,g=(n=t.trim())||"",{hookOutputCollapsed:E}=(0,m.Mp)(),y=r||!E;return s?y?o().createElement(d.Box,{marginTop:1,flexDirection:"column",key:`${e.id}-hook-${l}`},o().createElement(w,{hookStatus:i,eventName:l,iconColor:c,textColor:h}),g?o().createElement(d.Box,{marginLeft:2},o().createElement(u.h1,{text:g,offset:2,color:h,maxLines:10,ellipsis:!0,wordBreak:"break-all"})):null):o().createElement(d.Box,{marginTop:1,alignItems:"flex-start",key:`${e.id}-hook-${l}`},o().createElement(w,{hookStatus:i,eventName:l,iconColor:c,textColor:h})):y?o().createElement(u.v7,{key:`${e.id}-hook-${l}`},o().createElement(d.Box,{flexDirection:"column"},o().createElement(w,{hookStatus:i,eventName:l,iconColor:c,textColor:h}),g?o().createElement(d.Box,{marginLeft:2},o().createElement(u.h1,{text:g,offset:8,color:h,maxLines:10,ellipsis:!0,wordBreak:"break-all"})):null)):o().createElement(u.v7,{key:`${e.id}-hook-${l}`},o().createElement(w,{hookStatus:i,eventName:l,iconColor:c,textColor:h}))}),b=o().memo(({msg:e,expanded:t=!1})=>{let{theme:r}=(0,f.DP)(),n=(0,l.useContextSelector)(m.Gb,e=>e.terminalWidth);return e.content.map(a=>{let l="output_text"===a.type?a.text:"";if(l.trim().length)if(!e.providerData?.skipRun)return o().createElement(d.Box,{alignItems:"flex-start",marginTop:1,key:`${e.id}-${l}`},o().createElement(d.Box,{flexShrink:0},o().createElement(d.Text,{color:r.colors.primary},"\u25CF ")),o().createElement(d.Box,{width:n-2},e.providerData?.agent&&e.providerData.isSubAgent?o().createElement(d.Text,null,o().createElement(d.Text,{color:e.providerData.agentColor||s.T.generateColorFromName(e.providerData.agent)},e.providerData.agent),o().createElement(d.Text,null," \xb7 "),o().createElement(d.Markdown,{content:l})):o().createElement(d.Markdown,{content:l})));else{if("incomplete"===e.status&&e.providerData?.error){let{error:t}=e.providerData||{};l=c.o4.formatErrorMessage(t)}return e.providerData?.hookEvent?o().createElement(y,{key:`${e.id}-${l}`,msg:e,content:l,expanded:t}):o().createElement(u.v7,{key:`${e.id}-${l}`},o().createElement(d.Text,{color:"incomplete"===e.status?r.colors.disabled:r.colors.primary},l))}})}),x=o().memo(({msg:e,expanded:t})=>{let r=(0,h.sP)();return(0,h.t1)(e,{coordinator:r})?null:o().createElement(d.Box,{key:`${e.id}-${e.callId}-call-${e.status}`,marginTop:1},o().createElement(h.Jv,{msg:e,expanded:t}))}),T=o().memo(({msg:e,expanded:t})=>{let r=(0,h.sP)(),n=e.providerData;return(0,h.t1)({name:e.name,arguments:n?.arguments},{coordinator:r})?null:o().createElement(d.Box,{key:`${e.id}-${e.callId}-result`},o().createElement(h.KR,{msg:e,expanded:t}))}),k=o().memo(({msg:e,expanded:t})=>{let{theme:r}=(0,f.DP)(),n=a.Ay.circle,l=r.colors.secondary,i="Goal not yet met\u2026 continuing",s=!!e.condition||!!e.reason;return t?o().createElement(d.Box,{marginTop:1,flexDirection:"column",key:`goal-progress-${e.id}`},o().createElement(d.Box,null,o().createElement(d.Text,{color:l},n," "),o().createElement(d.Text,{color:l},i)),o().createElement(d.Box,{marginLeft:2},o().createElement(u.h1,{text:`Goal: ${e.condition}`,offset:2,color:l,maxLines:8,ellipsis:!0,wordBreak:"break-all"})),e.reason?o().createElement(d.Box,{marginLeft:2},o().createElement(u.h1,{text:`Reason: ${e.reason}`,offset:2,color:l,maxLines:8,ellipsis:!0,wordBreak:"break-all"})):null):o().createElement(d.Box,{marginTop:1,key:`goal-progress-${e.id}`},o().createElement(d.Text,{color:l},n," "),o().createElement(d.Text,{color:l},i),s?o().createElement(d.Text,{color:l,dimColor:!0}," (ctrl+o to expand)"):null)});function formatGoalTokenCount(e){return!Number.isFinite(e)||e<0?"0":e<1e3?String(e):e<1e6?`${(e/1e3).toFixed(1)}k`:`${(e/1e6).toFixed(1)}M`}function formatGoalStats(e,t,r){let n=Math.max(1,Math.round(e/1e3)),o=`${t} turn${1===t?"":"s"}`,a=`${formatGoalTokenCount(r)} token${1===r?"":"s"}`;return`${n}s \xb7 ${o} \xb7 ${a}`}let S=o().memo(({msg:e,expanded:t})=>{let{theme:r}=(0,f.DP)(),n=e.ok?a.Ay.tick:a.Ay.cross,l=e.ok?r.colors.success:r.colors.error,i=e.ok?"Goal achieved":"Goal could not be achieved",s=formatGoalStats(e.durationMs,e.turnCount,e.tokenDelta),c=r.colors.secondary,m=!!e.condition||!!e.reason,h=o().createElement(d.Box,null,o().createElement(d.Text,{color:l},n," "),o().createElement(d.Text,{color:c},i," (",s,")"));return t?o().createElement(d.Box,{marginTop:1,flexDirection:"column",key:`goal-result-${e.id}`},h,o().createElement(d.Box,{marginLeft:2},o().createElement(u.h1,{text:`Goal: ${e.condition}`,offset:2,color:c,maxLines:8,ellipsis:!0,wordBreak:"break-all"})),e.reason?o().createElement(d.Box,{marginLeft:2},o().createElement(u.h1,{text:`Reason: ${e.reason}`,offset:2,color:c,maxLines:8,ellipsis:!0,wordBreak:"break-all"})):null):o().createElement(d.Box,{marginTop:1,key:`goal-result-${e.id}`},o().createElement(d.Text,{color:l},n," "),o().createElement(d.Text,{color:c},i," (",s,")"),m?o().createElement(d.Text,{color:c,dimColor:!0}," (ctrl+o to expand)"):null)});var v=r(26112);let C=(0,n.memo)(({msg:e,expanded:t})=>{let{theme:r}=(0,f.DP)(),a=(0,n.useMemo)(()=>e.rawContent&&0!==e.rawContent.length?e.rawContent.map(e=>e.text).join("").trimEnd().split(/\r\n|\r|\n/g).filter(e=>e.trim().length>0):[],[e]);if(0===a.length)return;let l=a.length>3,i=(t?a:a.slice(0,3)).join("\n"),s=l&&!t?`
|
|
2
|
-
... ${a.length-3} more lines (press Ctrl+O to expand)`:"";return o().createElement(d.Box,{marginTop:1,paddingLeft:1,flexDirection:"column"},o().createElement(v.h,{text:i+s,offset:1,italic:!0,color:r.colors.secondary}))});var _=r(64799),A=r(55425),M=r(46382);function readRunningBackgroundShells(){try{return(0,M.MN)((0,A._5)().getBackgroundTasks())}catch{return 0}}function describeTaskOutcome(e,t){switch(e){case"failed":return{icon:a.Ay.cross,color:t.colors.error,verb:"failed after"};case"killed":case"cancelled":return{icon:"\u2298",color:t.colors.secondary,verb:"stopped after"};default:return{icon:a.Ay.tick,color:t.colors.success,verb:"finished in"}}}let I=o().memo(({msg:e})=>{let{theme:t}=(0,f.DP)(),r=_.R.formatTurnDuration(e.durationMs),l="background-task"===e.source,[i]=(0,n.useState)(()=>l?0:readRunningBackgroundShells());if(l){let{icon:n,color:a,verb:l}=describeTaskOutcome(e.taskStatus,t);return o().createElement(u.v7,{key:`turn-metrics-${e.id}`},o().createElement(d.Text,{color:a},n," "),o().createElement(d.Text,{color:t.colors.secondary},"Background task ",l," ",r))}let s=i>0?` \xb7 ${i} ${1===i?"shell":"shells"} still running`:"";return o().createElement(d.Box,{marginTop:1,key:`turn-metrics-${e.id}`},o().createElement(d.Text,{color:t.colors.success},a.Ay.tick," "),o().createElement(d.Text,{color:t.colors.secondary},"Worked for ",r,s))});var O=r(90131);let P=(0,n.memo)(({msg:e,expanded:t})=>((e,t)=>{let r=`${e.type}-${e.id}`;if("message"===e.type)switch(e.role){case"user":if(e.providerData?.isMeta===!0)return null;return o().createElement(O.a,{key:r,msg:e,expanded:t});case"assistant":return o().createElement(b,{key:r,msg:e,expanded:t});default:return}switch(e.type){case"function_call":return o().createElement(x,{key:r,msg:e,expanded:t});case"function_call_result":return o().createElement(T,{key:r,msg:e,expanded:t});case"reasoning":return o().createElement(C,{key:r,msg:e,expanded:t});case"goal-result":return o().createElement(S,{key:r,msg:e,expanded:t});case"goal-progress":return o().createElement(k,{key:r,msg:e,expanded:t});case"turn-metrics":return o().createElement(I,{key:r,msg:e,expanded:t});default:return}})(e,t))},79311(e,t,r){r.d(t,{M:()=>PixelLogoEnhanced});var n=r(71416),o=r(67945),a=r.n(o),l=r(80661),i=r(36988);let PixelLogoEnhanced=()=>{let{theme:e}=(0,i.DP)(),t=l.T.applyColor(e.colors.logo.body)("\u2588"),r=l.T.applyColor(e.colors.logo.eye)("\u2588"),o=[` ${t}${t}${t}${t} ${t}${t}${t}${t} `,` ${t}${t}${t}${t}${t}${t}${t}${t}${t}${t}${t}${t}${t}${t}${t}${t} `,`${t}${t}${t}${t} ${t}${t}${t}${t}`,`${t}${t}${t}${t} ${r}${r} ${r}${r} ${t}${t}${t}${t}`,`${t}${t}${t}${t} ${r}${r} ${r}${r} ${t}${t}${t}${t}`,`${t}${t}${t}${t} ${t}${t}${t}${t}`,` ${t}${t}${t}${t}${t}${t}${t}${t}${t}${t}${t}${t}${t}${t}${t}${t} `];return a().createElement(n.Box,{flexDirection:"column"},o.map((e,t)=>a().createElement(n.Text,{key:`logo-${t}-${e}`},e)))}},79145(e,t,r){r.d(t,{I:()=>h});var n=r(67945),o=r.n(n),a=r(55752),l=r(71416),i=r(49726),s=r(98092),c=r(93509),u=r(64225),d=r(93811),m=r(90131);let f=o().memo(({group:e,expanded:t})=>{let r=e.messages[0],a=(0,n.useMemo)(()=>(e=>{if("string"==typeof e.content){let t=e.content.replace(/\/_compact\b/g,"/compact");return t===e.content?e:{...e,content:t}}if(Array.isArray(e.content)){let t=!1,r=e.content.map(e=>{if("string"==typeof e){let r=e.replace(/\/_compact\b/g,"/compact");return r!==e&&(t=!0),r}if("input_text"===e.type&&"string"==typeof e.text){let r=e.text.replace(/\/_compact\b/g,"/compact");if(r!==e.text)return t=!0,{...e,text:r}}return e});return t?{...e,content:r}:e}return e})(r),[r]),f=e.messages.find(e=>"message"===e.type&&"assistant"===e.role&&e.providerData?.agent===i.QYL.COMPACT)??e.messages.find(e=>"message"===e.type&&"assistant"===e.role);return f?o().createElement(l.Box,{flexDirection:"column"},o().createElement(l.Box,{gap:1,flexDirection:"column"},o().createElement(d.L,{text:"Conversation compacted \xb7 ctrl+o for history",separatorChar:"\u2550"}),t?f.content.map(e=>{let t="output_text"===e.type?e.text:"",r=s.m.extractSummaryContent(t);if(r.trim().length)return o().createElement(l.Box,{alignItems:"flex-start",key:`${f.id}-${r.slice(0,50)}`},o().createElement(u.Markdown,{content:r}))}):o().createElement(o().Fragment,null)),o().createElement(m.a,{msg:a,expanded:t}),o().createElement(c.v7,null,o().createElement(l.Text,{dimColor:!0},"Compacted"))):o().createElement(m.a,{msg:a,expanded:t})}),h=o().memo(({group:e,expanded:t=!1})=>"compact_group"===e.type?o().createElement(f,{key:`group-${e.id}`,group:e,expanded:t}):o().createElement(o().Fragment,null,e.messages.map(e=>o().createElement(a.h,{key:`message-item-${e.type}-${e.id}`,msg:e,expanded:t}))))},91278(e,t,r){r.d(t,{t1:()=>isHiddenToolCall,Jv:()=>S,KR:()=>A,sP:()=>useCoordinatorToolReveal});var n=r(
|
|
1
|
+
"use strict";exports.ids=["834"],exports.modules={90396(e,t,r){r.d(t,{KC:()=>retireForegroundSessionRecord,wf:()=>releaseForegroundSessionRecord}),r(79896),r(698),r(43632),r(22701);let n=new Map;function releaseForegroundSessionRecord(e){let t=n.get(e);t&&(t.subscription.unsubscribe(),n.delete(e))}async function retireForegroundSessionRecord(e){let t=n.get(e);t&&(t.subscription.unsubscribe(),n.delete(e),await t.store.remove(t.id).catch(()=>{}))}},37905(e,t,r){r.d(t,{Kx:()=>getInProcessAgentJobs,Ol:()=>clearInProcessAgentJob,SC:()=>inProcessAgentJobs$,hV:()=>l,jq:()=>isInProcessAgentJob,yt:()=>getInProcessAgentSession});var n=r(59707);r(698),r(95235),r(43632);let o=new n.t([]),a=new Map,l="in-process:";function inProcessAgentJobs$(){return o.asObservable()}function getInProcessAgentJobs(){return o.value}function getInProcessAgentSession(e){return a.get(e)?.session}function isInProcessAgentJob(e){return e?.origin==="in-process"}function clearInProcessAgentJob(e){if(!e)return;let t=a.get(e);t&&(t.subscription.unsubscribe(),t.approvalSubscription?.unsubscribe(),a.delete(e),publishJobs())}function publishJobs(){o.next([...o.value].filter(e=>a.has(e.id)))}},35717(e,t,r){r.d(t,{Ij:()=>i});let n=Symbol("FeedbackSurveyService");(o=i||(i={})).CLOSED="closed",o.OPEN="open",o.SUBMITTED="submitted",(a=s||(s={})).BAD="bad",a.FINE="fine",a.GOOD="good",a.DISMISS="dismiss",(l=c||(c={})).KEY_1="key_1",l.KEY_2="key_2",l.KEY_3="key_3",l.KEY_0="key_0",l.KEY_ESC="key_esc";var o,a,l,i,s,c,u,d,m,f,h=r(88523),p=r(79814),g=r(42679),E=r(9151),w=r(92735),__decorate=function(e,t,r,n){var o,a=arguments.length,l=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)l=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(o=e[i])&&(l=(a<3?o(l):a>3?o(t,r,l):o(t,r))||l);return a>3&&l&&Object.defineProperty(t,r,l),l},__metadata=function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};let y="feedback-survey-global-state",b=class{constructor(){this.sessionStates=new Map,this.sessionStartTimes=new Map,this.sessionInitialSubmitCounts=new Map,this.currentSurveyIds=new Map,this.surveyShowTimes=new Map}async shouldShowSurvey(e,t,r,n){this.logger.setContext("FeedbackSurveyService");let o=this.getConfig();if(o.disabled||n||(this.ensureSessionInitialized(e,t),!this.isModelAllowed(r,o.onForModels)))return!1;let a=this.getSessionSurveyState(e),l=this.getSessionDuration(e),i=this.getSessionSubmitCount(e,t);if(null===a.timeLastShown){if(l<o.minTimeBeforeFeedbackMs||i<o.minUserTurnsBeforeFeedback)return!1}else if(i-(a.submitCountAtLastAppearance||0)<o.minUserTurnsBetweenFeedback)return!1;if(Math.random()>o.probability)return this.logger.info(`Feedback survey not shown due to probability check. Config probability: ${o.probability}. Random value: ${Math.random()}`,e),!1;let s=await this.getGlobalSurveyState();if(null!==s.lastShownTime){let t=Date.now()-s.lastShownTime;if(t<o.minTimeBetweenGlobalFeedbackMs)return this.logger.info(`Feedback survey not shown due to global cooldown. Time since last global show: ${t} ms. Configured minTimeBetweenGlobalFeedbackMs: ${o.minTimeBetweenGlobalFeedbackMs} ms`,e),!1}return!0}async recordSurveyAppeared(e,t,r){let n=(0,g.A)();this.currentSurveyIds.set(e,n);let o=Date.now();this.surveyShowTimes.set(n,o);let a=this.getSessionSurveyState(e);a.timeLastShown=o,a.submitCountAtLastAppearance=this.getSessionSubmitCount(e,t);let l=await this.getGlobalSurveyState();return l.lastShownTime=o,await this.saveGlobalSurveyState(l),this.logger.info(`Feedback survey appeared. ID: ${n}`,e),n}async recordSurveySubmitted(e,t,r){try{let n=this.getModelName(r.modelId),o=this.getMappedAction(r.rating),a={conversationId:e,requestId:t,messageId:t,mode:"craft",requestModelId:r.modelId,requestModelName:n,action:o,scene:"userFeedback"};this.eventService?.report(w.Events.ChatUserAction,a),this.logger.info(`Feedback survey submitted. ID: ${t}, Rating: ${r.rating}, Source: ${r.actionSource}, ModelId: ${r.modelId}`,e),this.currentSurveyIds.delete(e),this.surveyShowTimes.delete(t)}catch(r){throw this.logger.error(`Failed to record survey submission: ${r}`,e),this.currentSurveyIds.delete(e),this.surveyShowTimes.delete(t),r}}getSessionSurveyState(e){let t=this.sessionStates.get(e);return t||(t={timeLastShown:null,submitCountAtLastAppearance:null},this.sessionStates.set(e,t)),t}async getGlobalSurveyState(){let e=await this.localStorage.get(y);return e||{lastShownTime:null}}getConfig(){let e=this.productManager.configuration.getValue(),t=e?.feedbackSurvey||{};return{...E.DEFAULT_FEEDBACK_SURVEY_CONFIG,...t}}ensureSessionInitialized(e,t){this.sessionStartTimes.has(e)||this.sessionStartTimes.set(e,Date.now()),this.sessionInitialSubmitCounts.has(e)||this.sessionInitialSubmitCounts.set(e,t),this.sessionStates.has(e)||this.sessionStates.set(e,{timeLastShown:null,submitCountAtLastAppearance:null})}getSessionDuration(e){let t=this.sessionStartTimes.get(e);return t?Date.now()-t:0}getSessionSubmitCount(e,t){return t-(this.sessionInitialSubmitCounts.get(e)||0)}isModelAllowed(e,t){return!!t.includes("*")||t.includes(e)}async saveGlobalSurveyState(e){await this.localStorage.set(y,e)}getModelName(e){if(!e)return"";let t=this.productManager.configuration.getValue();if(!t?.models)return e;let r=t.models.find(t=>t.id===e);return r&&r.name||e}getMappedAction(e){return({[s.GOOD]:"like",[s.BAD]:"dislike",[s.FINE]:"average",[s.DISMISS]:"dismiss"})[e]}};__decorate([(0,h.Autowired)(p.LocalStorage),__metadata("design:type","function"==typeof(u=void 0!==p.LocalStorage&&p.LocalStorage)?u:Object)],b.prototype,"localStorage",void 0),__decorate([(0,h.Autowired)(E.ProductManager),__metadata("design:type","function"==typeof(d=void 0!==E.ProductManager&&E.ProductManager)?d:Object)],b.prototype,"productManager",void 0),__decorate([(0,h.Autowired)(w.EventService),__metadata("design:type","function"==typeof(m=void 0!==w.EventService&&w.EventService)?m:Object)],b.prototype,"eventService",void 0),__decorate([(0,h.Autowired)(w.Logger),__metadata("design:type","function"==typeof(f=void 0!==w.Logger&&w.Logger)?f:Object)],b.prototype,"logger",void 0),__decorate([(0,h.Component)(n)],b)},61741(e,t,r){r.d(t,{AgentViewScreen:()=>AgentViewScreen});var n=r(51147),o=r(21049),a=r(70857),l=r(30296),i=r.n(l),s=r(14372),c=r(87023),u=r(86448),d=r(71762),m=r(88144);function currentToken(e,t){let r=e.slice(0,t),n=Math.max(r.lastIndexOf(" "),r.lastIndexOf("\n"))+1;return{text:r.slice(n),start:n}}function agentSuggestion(e){return{value:`@${e}`,label:`@${e}`,hint:"agent",kind:"agent"}}function repoSuggestion(e){return{value:`@${e.name}`,label:`@${e.name}`,hint:e.branch?`repo \xb7 ${e.branch}`:"repo",kind:"repo"}}function buildDispatchSuggestions(e,t,r){let{text:n}=currentToken(e,t);if(n.startsWith("@")){let e=n.slice(1).toLowerCase(),t=r.repoTargets.filter(t=>t.name.toLowerCase().startsWith(e)).map(repoSuggestion),o=new Set(t.map(e=>e.label));return[...t,...r.agentNames.filter(t=>t.toLowerCase().startsWith(e)).map(agentSuggestion).filter(e=>!o.has(e.label))].slice(0,10)}if(n.startsWith("/")&&e.slice(0,t).trimStart()===n){let e=n.toLowerCase(),t=[...r.allCommands?.map(e=>e.name)??[],...d.M1,...m.RZ,...r.extraCommands??[]],o=new Map((r.allCommands??[]).map(e=>[e.name,e.description])),a=new Set,l=[];for(let r of t){let t=r.toLowerCase();if(a.has(t)||!t.startsWith(e))continue;a.add(t);let n=o.get(r);l.push({value:r,label:r,kind:"command",...n?{hint:n}:{}})}return l.slice(0,100)}return[]}let browseAllAgents=function(e){let t=e.repoTargets.map(repoSuggestion),r=new Set(t.map(e=>e.label));return[...t,...e.agentNames.map(agentSuggestion).filter(e=>!r.has(e.label))].slice(0,10)};function applySuggestion(e,t,r){let{start:n}=currentToken(e,t),o=`${r.value} `;return{value:`${e.slice(0,n)}${o}${e.slice(t)}`,cursor:n+o.length}}var f=r(37905),h=r(74042),p=r(64828),g=r(67292),E=r(89799),w=r(88415),y=r(64799),b=r(32894),x=r(79311),T=r(25576),k=r(60114),S=r(11369),v=r(55425);let AgentViewPeekPanel=({job:e,now:t,replyValue:r,replyCursor:n,notice:a})=>{let{theme:l}=(0,S.D)(),c=(0,s.wXL)(e),u=(0,s.WQs)(e,t),d=(0,s.ijy)(e.state.children),m=r.startsWith("!");return i().createElement(o.Box,{flexDirection:"column",borderStyle:"round",borderColor:l.colors.border,paddingX:1,marginTop:1},i().createElement(o.Text,{bold:!0,color:l.colors.brand},(0,s.rZH)(e)),"questions"===c.kind?i().createElement(o.Box,{flexDirection:"column",marginTop:1},c.questions.map((e,t)=>i().createElement(o.Box,{key:`question-${t}`,flexDirection:"column"},i().createElement(o.Text,{color:l.colors.warning},e.question),(e.options??[]).map((e,t)=>i().createElement(o.Text,{key:`option-${t}`},i().createElement(o.Text,{color:l.colors.brand},` ${t+1}. `),i().createElement(o.Text,null,e.label),e.description?i().createElement(o.Text,{dimColor:!0},` \u{2014} ${e.description}`):void 0))))):i().createElement(o.Box,{flexDirection:"column",marginTop:1},"output"===c.kind?i().createElement(o.Text,{dimColor:!0},"result"):void 0,i().createElement(o.Text,{color:"needs"===c.kind?l.colors.warning:void 0},c.text)),d?i().createElement(o.Box,{marginTop:1},i().createElement(o.Text,{color:l.colors[(0,s.DUk)(e.state.children)]},d.text),d.href?i().createElement(o.Text,{dimColor:!0},` ${d.href}`):void 0):void 0,u?i().createElement(o.Box,{marginTop:1},i().createElement(o.Text,{dimColor:!0},u)):void 0,i().createElement(o.Box,{marginTop:1},i().createElement(o.Text,{color:m?l.colors.bashMode:l.colors.prompt},m?"! ":"> "),i().createElement(T.L,{value:m?r.slice(1):r,cursorOffset:Math.max(0,m?n-1:n),placeholder:(0,s.j3P)(e)?"answer this session":"send a prompt",focus:!0})),a?i().createElement(o.Box,null,i().createElement(o.Text,{color:l.colors.warning},a)):void 0,i().createElement(o.Box,null,i().createElement(o.Text,{dimColor:!0},"enter to send \xb7 tab for suggested reply \xb7 ! for bash \xb7 \u2191\u2193 to peek others \xb7 \u2192 to attach \xb7 esc to close")))};var C=r(15297);let _=i().memo(({job:e,glyph:t,colorToken:r,now:n})=>{let{theme:a}=(0,S.D)(),c=(0,l.useSyncExternalStore)(C.Yc,()=>(0,s.kYF)(e,n)?(0,s.dct)((0,C.dV)()):0);return i().createElement(o.Text,{color:a.colors[r],dimColor:1===c,bold:t===s.DgE},t)});_.displayName="RowGlyph";let A=i().memo(({job:e,selected:t,showStateWord:r,widths:n,rowWidth:a,now:l,origin:c,groupKey:u})=>{let{theme:d}=(0,S.D)(),m=(0,s.EEe)(e,{selected:t,showStateWord:r,widths:n,now:l,origin:c,groupKey:u}),f=(0,s.lkO)(m,n);return i().createElement(o.Box,{width:a,flexShrink:0,overflow:"hidden"},i().createElement(o.Text,{wrap:"truncate-end"},i().createElement(o.Text,{color:d.colors.brand},f.markerCell),n.icon>0?i().createElement(i().Fragment,null,i().createElement(_,{job:e,glyph:f.glyph,colorToken:m.glyphColorToken,now:l}),i().createElement(o.Text,null,f.glyphGap)):void 0,i().createElement(o.Text,{bold:m.nameBold,dimColor:m.nameDim},f.nameCell),i().createElement(o.Text,{dimColor:m.detailDim},f.detailCell),i().createElement(o.Text,{dimColor:!0},f.ageCell)))});A.displayName="AgentViewRow";let AgentViewShortcutsOverlay=()=>{let{theme:e}=(0,S.D)(),t=(0,s.dAC)();return i().createElement(o.Box,{flexDirection:"column",borderStyle:"round",borderColor:e.colors.border,paddingX:1,marginTop:1},i().createElement(o.Text,{bold:!0,color:e.colors.brand},"Keyboard shortcuts"),i().createElement(o.Box,{flexDirection:"column",marginTop:1},s.kK9.map(([r,n])=>i().createElement(o.Box,{key:r},i().createElement(o.Box,{width:t},i().createElement(o.Text,{color:e.colors.hint},r)),i().createElement(o.Text,{dimColor:!0},n)))),i().createElement(o.Box,{marginTop:1},i().createElement(o.Text,{dimColor:!0},"? or esc to close")))};var M=r(88523),I=r(47944),O=r(90396),P=r(59362),R=r(24463);function handoffSeedMessages(e){if(e.length<=200)return(0,P.w)(e);let t=e.length-200,r=-1;for(let n=e.length-1;n>=t;n--){let t=e[n];if("message"!==t.type||"user"!==t.role)continue;let o=E.c.extractTextContent(t,!0)?.trim()??"";if(o&&!R.r.isSystemInjectedContent(o)){r=n;break}}return r<0?(0,P.w)(e):(0,P.w)(e.slice(Math.max(0,r-8)))}var D=r(98866),L=r(67662);async function handOffInProcessSessionsToBackground(){let e=M.ContainerUtil.get(s.BYr),t=M.ContainerUtil.get(D.DH),r=M.ContainerUtil.get(L.c9);for(let n of(0,f.Kx)()){let o=(0,f.yt)(n.id);if(!o){(0,f.Ol)(n.id);continue}let a=handoffSeedMessages(o.history);if(0===a.length){(0,f.Ol)(n.id);continue}if((0,O.wf)(o.id),"busy"===n.live.status){let l;try{l=M.ContainerUtil.get(L.MU)}catch{return{ok:!1,reason:"the session state machine is unavailable"}}let i=await (0,I.KE)({store:e,processManager:t,logDir:w.P.getLoggerDir(),flushTranscript:async()=>{await r.save(o)},updateRegistry:async e=>{try{await M.ContainerUtil.get(D.MN).update({status:e})}catch{}}},{sessionId:o.id,cwd:w.P.getWorkDir(),messages:a,getStatus:()=>l.getSnapshot(o).status,change$:l.getChange$(o),getResultText:()=>(0,L.qd)(o.history)?.trim()??"",getCurrentMessages:()=>handoffSeedMessages(o.history),permissionMode:o.permissionModeSubject.value});if(!i.ok)return{ok:!1,reason:i.reason};(0,f.Ol)(n.id);continue}let l=await (0,s.CFb)({store:e,processManager:t,logDir:w.P.getLoggerDir(),flushTranscript:async()=>{await r.save(o)},releaseOwnership:()=>void 0},{sessionId:o.id,cwd:w.P.getWorkDir(),messages:a,via:"idle-fork",permissionMode:o.permissionModeSubject.value,allowEmptySeed:!1});if(!l.ok){if("nothing-to-background"===l.reason){(0,f.Ol)(n.id);continue}return{ok:!1,reason:l.reason}}(0,f.Ol)(n.id)}return{ok:!0}}function useAgentViewJobs(e=s.BDR){let[t,r]=(0,l.useState)([]),[n,o]=(0,l.useState)((0,f.Kx)()),[a,i]=(0,l.useState)(!1),c=(0,l.useRef)(0),u=(0,l.useRef)(0),d=(0,l.useRef)(!1),m=(0,l.useRef)(!1),h=(0,l.useCallback)(async()=>{let e=++c.current;try{let t=await (0,s.LjG)((0,v.rb)(),(0,v.a)());if(d.current||e!==c.current)return;m.current=!0,r(e=>sameJobs(e,t)?e:t),i(!0)}catch{d.current||i(!0)}},[]),p=(0,l.useCallback)(async()=>{let e=++u.current;try{let t=await (0,s.LjG)((0,v.rb)(),(0,v.a)(),{reap:!1});if(d.current||e!==u.current||m.current)return;r(e=>sameJobs(e,t)?e:t),i(!0)}catch{d.current||i(!0)}},[]);(0,l.useEffect)(()=>{let e=(0,f.SC)().subscribe(o);return()=>e.unsubscribe()},[]),(0,l.useEffect)(()=>{d.current=!1,m.current=!1,p(),h();let t=setInterval(h,e);return"function"==typeof t.unref&&t.unref(),()=>{d.current=!0,clearInterval(t)}},[h,p,e]);let g=(0,l.useCallback)(()=>{h()},[h]);return{jobs:(0,l.useMemo)(()=>[...n,...t.filter(e=>!n.some(t=>t.id===e.id||t.state.sessionId===e.state.sessionId))],[n,t]),loaded:a,refresh:g}}function sameJobs(e,t){return e.length===t.length&&e.every((e,r)=>{let n=t[r];return void 0!==n&&e.id===n.id&&JSON.stringify(e)===JSON.stringify(n)})}let $={value:"",cursor:0};function insertText(e,t){return{value:e.value.slice(0,e.cursor)+t+e.value.slice(e.cursor),cursor:e.cursor+t.length}}function deleteBackward(e){return 0===e.cursor?e:{value:e.value.slice(0,e.cursor-1)+e.value.slice(e.cursor),cursor:e.cursor-1}}function moveCursor(e,t){return{...e,cursor:Math.max(0,Math.min(e.value.length,e.cursor+t))}}function setEditorValue(e){return{value:e,cursor:e.length}}let SegmentedLine=({segments:e})=>{let{theme:t}=(0,S.D)();return i().createElement(o.Text,null,e.map((e,r)=>i().createElement(o.Text,{key:`segment-${r}`,color:e.colorToken?t.colors[e.colorToken]:void 0,dimColor:e.dim,bold:e.bold},e.text)))};function rowIdentity(e){switch(e.kind){case"job":return`job:${e.job.id}`;case"header":return`header:${e.groupKey}`;case"fold":return`fold:${e.groupKey}`;default:return"other"}}function writeTerminalTitle(e){n.BooleanUtils.isTruthy(process.env.CODEBUDDY_CODE_DISABLE_TERMINAL_TITLE)||process.stdout.isTTY&&process.stdout.write(`\u001B]0;${e}\u0007`)}let AgentViewScreen=e=>{let{theme:t}=(0,S.D)(),{columns:n,rows:d}=(0,k.H)(),{jobs:m,loaded:C}=useAgentViewJobs(),[_,M]=(0,l.useState)("state"),[I,O]=(0,l.useState)(new Set),[P,R]=(0,l.useState)(!1),[D,L]=(0,l.useState)(void 0),[B,N]=(0,l.useState)(0),[W,F]=(0,l.useState)($),[j,U]=(0,l.useState)(!1),[H,G]=(0,l.useState)($),[V,K]=(0,l.useState)(void 0),[J,q]=(0,l.useState)(!1),[Y,X]=(0,l.useState)(void 0),[z,Z]=(0,l.useState)(()=>process.env[s.QTX]?.trim()||void 0),[Q,ee]=(0,l.useState)(e.model),[et,er]=(0,l.useState)(!1),[en,eo]=(0,l.useState)(void 0),[ea,el]=(0,l.useState)(!1),[ei,es]=(0,l.useState)(0),[ec,eu]=(0,l.useState)(!1),[ed,em]=(0,l.useState)(()=>Date.now()),ef=(0,l.useRef)(new Map),eh=(0,l.useRef)(0),ep=(0,l.useRef)(new Map),eg=(0,l.useRef)(new Map),eE=(0,l.useCallback)(()=>{(async()=>{let e=await b.E.readImage();e?F(t=>{let r=(0,s.UBx)(eg.current);return eg.current.set(r,e.tempFilePath),insertText(t,(0,s.bcN)(r))}):Z("No image on the clipboard")})().catch(()=>{Z("Could not read an image from the clipboard")})},[]),ew=(0,l.useRef)(1),ey=(0,l.useMemo)(()=>({store:(0,v.rb)(),processManager:(0,v.xQ)(),logDir:w.P.getLoggerDir()}),[]),[eb,ex]=(0,l.useState)(()=>e.agent?[e.agent]:[]);(0,l.useEffect)(()=>{try{let t=(0,v._F)().getAll().map(e=>e.name),r=[...new Set(e.agent?[e.agent,...t]:t)];ex(e=>e.length===r.length&&e.every((e,t)=>e===r[t])?e:r)}catch{}},[e.agent,ed]);let[eT,ek]=(0,l.useState)([]),[eS,ev]=(0,l.useState)([]);(0,l.useEffect)(()=>{let e=!1;return(async()=>{try{let[t,r]=await Promise.all([(0,v.J0)().getAll(),(0,v.jO)().waitConfiguration()]);if(e)return;let n=(r.skills??[]).map(e=>({name:`/${e.name}`,description:e.description||e.name})),o=new Map;for(let e of[...t,...n])e.name.startsWith("/_")||o.has(e.name)||o.set(e.name,{name:e.name,description:e.description});let a=[...o.values()];ek(e=>e.length===a.length&&e.every((e,t)=>e.name===a[t].name&&e.description===a[t].description)?e:a);let l=new Set;for(let e of t)e.scope&&l.add(e.name);for(let e of n)l.add(e.name);let i=[...l];ev(e=>e.length===i.length&&e.every((e,t)=>e===i[t])?e:i)}catch{}})(),()=>{e=!0}},[]);let[eC,e_]=(0,l.useState)([]),eA=(0,l.useMemo)(()=>(0,u.U)(eC),[eC]),eM=(0,l.useMemo)(()=>[...new Set(m.map(e=>(0,s.SE0)(e.state.cwd)).filter(Boolean))],[m]);(0,l.useEffect)(()=>{let t=!1;return(async()=>{let n=e.cwd??w.P.getWorkDir(),o=[],a=[];try{let{readdirSync:e,existsSync:t}=await Promise.resolve().then(r.t.bind(r,79896,23));for(let r of e(n,{withFileTypes:!0}))r.isDirectory()&&t(`${n}/${r.name}/.git`)&&o.push(`${n}/${r.name}`)}catch{}try{let{execFile:e}=await Promise.resolve().then(r.t.bind(r,35317,23)),{promisify:t}=await Promise.resolve().then(r.t.bind(r,39023,23)),{stdout:o}=await t(e)("git",["worktree","list","--porcelain"],{cwd:n,encoding:"utf8",timeout:3e3}),l={};for(let e of o.split("\n"))e.startsWith("worktree ")?l={path:e.slice(9).trim()}:e.startsWith("branch ")?l.branch=e.slice(7).trim().replace(/^refs\/heads\//,""):""===e&&l.path&&(l.path.startsWith(n)&&a.push({path:l.path,branch:l.branch}),l={})}catch{}t||e_((0,u.p)({childRepos:o,worktrees:a,sessionDirs:eM}))})().catch(()=>{}),()=>{t=!0}},[e.cwd,eM]),(0,l.useEffect)(()=>{let e=setInterval(()=>em(Date.now()),1e3);return"function"==typeof e.unref&&e.unref(),()=>clearInterval(e)},[]),(0,l.useEffect)(()=>{if(void 0===en)return;let e=setTimeout(()=>eo(void 0),s.F0p);return()=>clearTimeout(e)},[en]),(0,l.useEffect)(()=>{if(!ea)return;let e=setTimeout(()=>el(!1),s.cCv);return()=>clearTimeout(e)},[ea]);let eI=(0,l.useMemo)(()=>(0,s._7f)(W.value),[W.value]),eO=(0,l.useMemo)(()=>ec&&""===W.value?browseAllAgents({agentNames:eb,repoTargets:eC}):buildDispatchSuggestions(W.value,W.cursor,{agentNames:eb,repoTargets:eC,allCommands:eT}),[ec,W.value,W.cursor,eb,eC,eT]),eP=0===eO.length?0:Math.min(ei,eO.length-1),eR=Math.min(Math.max(eP-9,0),Math.max(eO.length-10,0)),eD=eO.slice(eR,eR+10),eL=Math.min(Math.max(0,...eD.map(e=>(0,s.F1)(e.label))),Math.max(n-8,0));(0,l.useEffect)(()=>{es(0)},[W.value]);let e$=(0,l.useMemo)(()=>(0,c.Ww)(m,e.cwd).filter(e=>(0,s.yyB)(e,eI)),[m,e.cwd,eI]),{rows:eB,compactHeader:eN,showLogo:eW}=(0,l.useMemo)(()=>{if(d>=28){let e=(0,s.Qly)(e$,{groupMode:_,terminalRows:d-5,collapsedGroups:I,doneExpanded:P});if(!e.compactHeader)return{...e,showLogo:!0}}return{...(0,s.Qly)(e$,{groupMode:_,terminalRows:d,collapsedGroups:I,doneExpanded:P}),showLogo:!1}},[e$,_,d,I,P]),eF=(0,l.useMemo)(()=>eB.filter(e=>"job"===e.kind||"header"===e.kind||"fold"===e.kind),[eB]),ej=(0,l.useMemo)(()=>{if(0===eF.length)return 0;if(void 0!==D){let e=eF.findIndex(e=>rowIdentity(e)===D);if(e>=0)return e}return Math.min(B,eF.length-1)},[eF,D,B]),eU=eF[ej],eH=eU?.kind==="job"?eU.job:void 0;(0,l.useEffect)(()=>{delete process.env[s.QTX]},[]),(0,l.useEffect)(()=>{let e=process.env[s.igH];if(!e||!C||0===eF.length)return;let t=`job:${e}`;eF.find(e=>rowIdentity(e)===t)&&(L(t),delete process.env[s.igH])},[C,eF]);let eG=(0,l.useMemo)(()=>eF.filter(e=>"job"===e.kind),[eF]),eV=(0,l.useMemo)(()=>{let e={blocked:0,working:0,review:0,done:0};for(let t of e$)e[(0,s.iuY)(t)]+=1;return e},[e$]),eK=eV.blocked,eJ=(0,l.useMemo)(()=>eG.reduce((e,t)=>Math.max(e,(0,s.F1)((0,s.rZH)(t.job))),0),[eG]),eq=Math.max(0,n-2),eY=(0,l.useMemo)(()=>(0,s.PXA)(eq-s.SrN,eJ),[eq,eJ]),eX=Math.min(eq,Math.max(35,s.SrN+eY.icon+eY.name));(0,l.useEffect)(()=>{j||(G($),K(void 0))},[j]),(0,l.useEffect)(()=>{writeTerminalTitle((0,s.O_T)(eK))},[eK]),(0,l.useEffect)(()=>{if(0===m.length)return;let e=(0,s.nd0)(ef.current,m);if(ef.current=(0,s.VXe)(m),0===e.length)return;let t=(0,v.J)();for(let r of e)t.sendNotification(r.message,"codebuddy agents",r.notificationType).catch(()=>{})},[m]);let ez=(0,l.useCallback)((t="return")=>{writeTerminalTitle(""),e.onExit?.(t)},[e.onExit]),eZ=(0,l.useCallback)(t=>{t&&((0,f.jq)(t)?ez():t.state.inPlaceWorker&&!t.state.attachSocket&&"number"==typeof t.state.pid&&(0,v.xQ)().isProcessRunning(t.state.pid)?Z(s.oES):t.state.foregroundHeld&&!t.state.attachSocket&&"number"==typeof t.state.pid&&(0,v.xQ)().isProcessRunning(t.state.pid)?Z(s.mUG):t.state.exec?Z(s._KY):e.onAttach?0===(0,f.Kx)().length?e.onAttach(t):handOffInProcessSessionsToBackground().then(r=>{r.ok?e.onAttach(t):Z(`Could not move your conversation to the background \u{2014} ${r.reason??"it stays here"}`)}).catch(()=>Z("Could not move your conversation to the background \u2014 it stays here")):Z("Attaching is not available in this context"))},[ez,e.onAttach]),[eQ,e0]=(0,l.useState)(void 0),e1=(0,l.useCallback)(()=>{let e=++eh.current;(async()=>{try{let t=await (0,v.id)().getAllByWorkdir(w.P.getWorkDir());if(e!==eh.current)return;let r=(0,h.oe)(t.map(e=>({id:e.id,updatedAt:e.updatedAt,hasHistory:g.oV.getActiveAgentOnlyHistory(e.history).length>0,label:(0,p.PJ)(E.c.getSessionName(e.history)||E.c.getSessionSummary(e.history))??""})),m);if(0===r.length){if(e!==eh.current)return;Z("No past sessions to resume in this repository.");return}if(e!==eh.current)return;e0({items:r,index:0})}catch(t){if(e!==eh.current)return;Z(`Could not list sessions: ${t instanceof Error?t.message:String(t)}`)}})()},[m]),e3=(0,l.useCallback)(t=>{(async()=>{try{let r=await (0,s.DFO)(ey,{sessionId:t.sessionId,cwd:process.cwd(),extraFlags:e.extraFlags});Z(`Resumed as background session ${r.id}`)}catch(e){Z(`Resume failed: ${e instanceof Error?e.message:String(e)}`)}})().catch(()=>{})},[ey,e.extraFlags]),e2=(0,l.useCallback)((t,r)=>{let n=t.toLowerCase();if("/exit"===n||"/quit"===n)return void ez("exit");if("/model"===n){let t=r.trim();F($),""===t||"default"===t?(ee(e.model),er(!1),Z("Dispatch model reset to the default")):(ee(t),er(!0),Z(`Dispatch model set to ${t}`));return}if("/logout"===n){F($),(0,v.Yf)().logout().then(()=>Z("Signed out.")).catch(e=>Z(`Sign-out failed: ${e instanceof Error?e.message:String(e)}`));return}"/resume"===n||"/continue"===n?(F($),(0,h.qe)({hasArgs:""!==r.trim(),scopedCwd:!!e.cwd,hasDispatchFlags:!!e.permissionMode||(e.extraFlags?.length??0)>0}))?e1():Z(`${t} isn't available in this form \u{2014} ${s.V7L}`):(F($),Z(`${t} is not available yet in agent view`))},[ez,e.model,e.cwd,e.permissionMode,e.extraFlags,e1]),e9=(0,l.useCallback)(async t=>{let r=(0,s.KQv)((0,s.Sft)(W.value,ep.current),eg.current),n=(0,s.kQ8)(r,{agentNames:eb,repos:eA});if("command"===n.kind){let e=(0,s.DgW)(n.name,eS);if("host"===e)return void e2(n.name,n.args);if("attach-only"===e)return void Z(`${n.name} isn't available in agent view \u{2014} ${s.V7L}`);n={kind:"prompt",prompt:`${n.name} ${n.args}`.trim()}}let o=(0,s.L94)(n);if(!o.ok)return void Z(o.hint);Z(void 0),F($),eg.current.clear();try{if("exec"===n.kind)return void await (0,s.GtD)(ey,{command:n.command,cwd:process.cwd()});if("prompt"===n.kind){let r="directory"===_&&eU&&eU.groupKey&&eU.groupKey!==s.BvV?eU.groupKey:void 0,o=await (0,s.pEf)(ey,{prompt:n.prompt,cwd:n.cwd??r??process.cwd(),agent:n.agent??e.agent,model:Q,permissionMode:e.permissionMode,extraFlags:e.extraFlags});if(t){let e=await ey.store.read(o.id);e&&eZ({id:o.id,state:e,display:{},live:{alive:!0}})}}}catch(e){Z(`Dispatch failed: ${e instanceof Error?e.message:String(e)}`)}},[W.value,ey,Q,e2,eZ,e.agent,e.permissionMode,e.extraFlags,eb,eA,_,eU,eS]),e8=(0,l.useCallback)(async()=>{let e=process.env.VISUAL||process.env.EDITOR;if(!e)return void Z("Set $VISUAL or $EDITOR to edit the prompt externally");try{let{mkdtemp:t,readFile:n,writeFile:o}=await Promise.resolve().then(r.t.bind(r,91943,23)),{tmpdir:a}=await Promise.resolve().then(r.t.bind(r,70857,23)),{join:l}=await Promise.resolve().then(r.t.bind(r,16928,23)),{spawnSync:i}=await Promise.resolve().then(r.t.bind(r,35317,23)),s=await t(l(a(),"codebuddy-dispatch-")),c=l(s,"PROMPT.md");await o(c,W.value,"utf8"),i(e,[c],{stdio:"inherit",shell:!0});let u=(await n(c,"utf8")).replace(/\n+$/,"");F(setEditorValue(u))}catch(e){Z(`Could not open the editor: ${e instanceof Error?e.message:String(e)}`)}},[W.value]),e6=(0,l.useCallback)(async()=>{if(!eH)return;if((0,f.jq)(eH))return void K("Return to Chat to reply to this session.");let e=H.value,t=e.startsWith("!"),r=await (0,s.ZCx)(ey,eH,{text:t?e.slice(1):e,bash:t});K(r.notice),(r.delivered||r.saved)&&G($)},[ey,H.value,eH]),e5=(0,l.useCallback)(async()=>{if((0,f.jq)(eH))return void Z("Return to Chat to stop this session.");if(void 0!==en){let e=e$.find(e=>e.id===en);if(e){eo(void 0);let t=await (0,s.XXR)(ey,e,{worktreeGuard:(0,s.ryp)({listJobs:()=>m,isProcessRunning:e=>(0,v.xQ)().isProcessRunning(e)}),removeWorktree:async e=>{if((0,s.M7f)(e)){if(!await (0,v.H4)().isLinkedWorktree(e))throw Error("git no longer recognizes this worktree");await (0,v.H4)().remove(e,{force:!0,deleteBranch:!0})}}});Z(t.deleted?t.keptWorktreePath?`Session deleted \u{2014} worktree kept at ${t.keptWorktreePath}`:"Session deleted":`Not deleted \u{2014} ${t.reason??"unknown reason"}`);return}}eH&&(await (0,s.CCD)(ey,eH),eo(eH.id),Z("Stopped \u2014 press ctrl+x again within 2s to delete"))},[en,ey,e$,m,eH]),e4=(0,l.useCallback)(async e=>{if(!eH||(0,f.jq)(eH))return;let t=eU?.groupKey,r=eG.filter(e=>e.groupKey===t).map(e=>e.job),n=r.findIndex(e=>e.id===eH.id),o=n+e;if(n<0||o<0||o>=r.length)return;let a=r[o],l=(0,s.fbz)(a,t??"",_);await ey.store.setOrder(eH.id,_,l+(e<0?1:-1))},[ey,_,eG,eH,eU]),e7=(0,l.useCallback)(async()=>{!eH||(0,f.jq)(eH)||await ey.store.setPinned(eH.id,!eH.display.pinned)},[ey,eH]),te=(0,l.useCallback)(async()=>{if(!Y)return;let e=Y.editor.value.trim();""===e||(0,f.Kx)().some(e=>e.id===Y.id)||await ey.store.patch(Y.id,{name:e,nameSource:"user"}),X(void 0)},[ey,Y]),tt=(0,l.useCallback)(e=>{O(t=>{let r=new Set(t);return r.delete(e)||r.add(e),r})},[]);(0,o.useInput)((e,t)=>{if(Y)return t.escape?void X(void 0):t.return?void te().catch(()=>{}):t.backspace||t.delete?void X({...Y,editor:deleteBackward(Y.editor)}):t.leftArrow||t.rightArrow?void X({...Y,editor:moveCursor(Y.editor,t.leftArrow?-1:1)}):void(!e||t.ctrl||t.meta||X({...Y,editor:insertText(Y.editor,e)}));if(J){(t.escape||"?"===e)&&q(!1);return}if(eQ){if(t.escape)return void e0(void 0);if(t.upArrow||t.downArrow){let e=t.upArrow?-1:1,r=Math.min(Math.max(eQ.index+e,0),eQ.items.length-1);e0({...eQ,index:r});return}if(t.return){let e=eQ.items[eQ.index];e0(void 0),e&&e3(e)}return}if(j){if(t.escape)return void U(!1);if(t.rightArrow)return""!==H.value?void G(moveCursor(H,1)):void eZ(eH);if(t.upArrow||t.downArrow){let e=eF.map((e,t)=>"job"===e.kind?t:-1).filter(e=>e>=0),r=e.indexOf(ej)+(t.upArrow?-1:1);if(r>=0&&r<e.length){let t=e[r];L(rowIdentity(eF[t])),N(t),G($),K(void 0)}return}if(t.tab){let e=eH?.state.suggestedReply;e&&G(setEditorValue(e));return}if(t.return)return void e6().catch(()=>{});if(t.backspace||t.delete)return void G(deleteBackward(H));if(t.leftArrow)return void G(moveCursor(H,-1));if(""===H.value&&/^[1-9]$/.test(e)&&eH){let t=(0,s.AbU)(eH,e);if(t)return void G(setEditorValue(t))}return" "===e&&""===H.value?void U(!1):void(!e||t.ctrl||t.meta||G(insertText(H,e)))}if("?"===e&&""===W.value)return void q(!0);if(t.ctrl&&"c"===e){if(""!==W.value){F($),eu(!1);return}return ea?void ez("exit"):void el(!0)}if(t.escape){if(ec)return void eu(!1);if(""!==W.value){F($),Z(void 0);return}return void ez()}if(t.ctrl&&"s"===e)return void M(e=>"state"===e?"directory":"state");if(t.ctrl&&"t"===e)return void e7().catch(()=>{});if(t.ctrl&&"r"===e){eH&&!(0,f.jq)(eH)&&X({id:eH.id,editor:setEditorValue((0,s.rZH)(eH))});return}if(t.ctrl&&"x"===e)return void e5().catch(()=>{});if(t.ctrl&&"j"===e)return void F(insertText(W,"\n"));if(t.ctrl&&"g"===e)return void e8().catch(()=>{});if(t.tab&&!t.shift){if(eO.length>0){let e=applySuggestion(W.value,W.cursor,eO[eP]);F({value:e.value,cursor:e.cursor}),eu(!1),es(0)}else""===W.value&&(eu(!0),es(0));return}if(t.meta&&/^[1-9]$/.test(e))return void eZ(eG[Number(e)-1]?.job);if(t.shift&&(t.upArrow||t.downArrow))return void e4(t.upArrow?-1:1).catch(()=>{});if((t.upArrow||t.downArrow)&&eO.length>0)return void es(Math.min(Math.max(eP+(t.upArrow?-1:1),0),eO.length-1));if(t.upArrow||t.downArrow){let e=ej+(t.upArrow?-1:1);e>=0&&e<eF.length&&(L(rowIdentity(eF[e])),N(e));return}if(t.rightArrow)return""===W.value?void eZ(eH):void F(moveCursor(W,1));if(t.return){if(eO.length>0){let e=eO[eP],{text:t}=currentToken(W.value,W.cursor);if(t!==e.value){let t=applySuggestion(W.value,W.cursor,e);F({value:t.value,cursor:t.cursor}),eu(!1);return}}return""!==W.value?void e9((0,s.$nB)(t.shift)).catch(()=>{}):eU?.kind==="header"?void tt(eU.groupKey):eU?.kind==="fold"?void R(e=>!e):void eZ(eH)}if(" "===e&&""===W.value){eH&&(eu(!1),U(!0));return}if(t.backspace||t.delete)return void F(deleteBackward(W));if(t.leftArrow)return void F(moveCursor(W,-1));if(t.ctrl&&"v"===e)return void eE();if(e&&!t.ctrl&&!t.meta){if(Z(void 0),(0,s.MhU)(e)){let t=ew.current++;ep.current.set(t,e),F(insertText(W,(0,s.TE$)(t,e.split("\n").length)));return}F(insertText(W,e))}});let tr=(0,s.rfz)(Q,et,e.cwd??process.cwd(),(0,a.homedir)(),n-2-22*!!eW),tn=(0,s.N5q)(eV),to=(0,f.Kx)().length>0?"This session is still running here \xb7 esc returns to Chat":(0,s.b7z)()?s.HQ3:void 0;return i().createElement(o.Box,{flexDirection:"column",paddingX:1},eN?i().createElement(o.Text,{dimColor:!0},(0,s.Y$h)(`codebuddy agents \xb7 ${tn.map(e=>e.text).join("")}`,n-2)):eW?i().createElement(o.Box,null,i().createElement(x.M,null),i().createElement(o.Box,{flexDirection:"column",marginLeft:2,justifyContent:"center"},i().createElement(SegmentedLine,{segments:tr}),i().createElement(SegmentedLine,{segments:tn}))):i().createElement(o.Box,{flexDirection:"column"},i().createElement(SegmentedLine,{segments:tr}),i().createElement(SegmentedLine,{segments:tn})),to?i().createElement(o.Box,{marginTop:1},i().createElement(o.Text,{dimColor:!0},to)):void 0,i().createElement(o.Box,{flexDirection:"column",marginTop:1},C?void 0:i().createElement(o.Text,{dimColor:!0},"Loading sessions\u2026"),eB.map((e,t)=>renderRow(e,t))),j&&eH?i().createElement(AgentViewPeekPanel,{job:eH,now:ed,replyValue:H.value,replyCursor:H.cursor,notice:V}):void 0,J?i().createElement(AgentViewShortcutsOverlay,null):void 0,eQ?i().createElement(o.Box,{flexDirection:"column",borderStyle:"round",borderColor:t.colors.brand,paddingX:1,marginTop:1},i().createElement(o.Text,{bold:!0,color:t.colors.brand},"Resume a past session"),eQ.items.map((e,r)=>i().createElement(o.Text,{key:e.sessionId,color:r===eQ.index?t.colors.brand:void 0},r===eQ.index?">":" ",(0,s.Y$h)(e.label,Math.max(n-24,20)),i().createElement(o.Text,{dimColor:!0},` ${y.R.formatAgo(e.updatedAt)}`))),i().createElement(o.Text,{dimColor:!0},"enter resume as background session \xb7 esc close")):void 0,Y?i().createElement(o.Box,{marginTop:1},i().createElement(o.Text,{color:t.colors.brand},"rename \u2192 "),i().createElement(T.L,{value:Y.editor.value,cursorOffset:Y.editor.cursor,focus:!0})):void 0,i().createElement(o.Box,{marginTop:1,paddingRight:1,gap:1,borderRight:!1,borderLeft:!1,borderStyle:"single",borderColor:t.colors.prompt},i().createElement(o.Box,{flexShrink:0},i().createElement(o.Text,null,">")),i().createElement(o.Box,{flexGrow:1},i().createElement(T.L,{value:W.value,cursorOffset:W.cursor,placeholder:"describe a task for a new session",focus:!j&&!J&&!Y&&!eQ,showPlaceholderWhenFocused:!0}))),eO.length>0?i().createElement(o.Box,{flexDirection:"column",paddingLeft:2},eD.map((e,r)=>{let n=eR+r===eP,a=n?t.colors.info:t.colors.secondary;return i().createElement(o.Box,{key:`${e.kind}-${e.value}`,flexDirection:"row",gap:1},i().createElement(o.Box,{width:eL,flexShrink:0},i().createElement(o.Text,{color:a,bold:n,wrap:"truncate-middle"},e.label)),e.hint&&e.hint.trim()?i().createElement(o.Box,{flexGrow:1,flexShrink:1},i().createElement(o.Text,{color:a,bold:n,dimColor:!n,wrap:"truncate"},e.hint)):void 0)})):ec?i().createElement(o.Box,{paddingLeft:2},i().createElement(o.Text,{dimColor:!0},"No subagents found yet \xb7 esc to close")):void 0,ea||z?i().createElement(o.Box,null,i().createElement(o.Text,{color:t.colors.warning},ea?s.qPD:z)):void 0,i().createElement(o.Box,null,i().createElement(SegmentedLine,{segments:(0,s.NPq)(n-2)})),e.activeDefaults?i().createElement(o.Box,null,i().createElement(o.Text,{dimColor:!0},e.activeDefaults)):void 0);function renderRow(e,r){let n="job"===e.kind||"header"===e.kind||"fold"===e.kind?eF.indexOf(e):-1,a=n>=0&&n===ej;switch(e.kind){case"header":return i().createElement(o.Box,{key:`header-${e.groupKey}-${r}`,marginTop:+(0!==r)},i().createElement(o.Box,{width:eX,flexShrink:0,overflow:"hidden"},i().createElement(o.Text,{color:a?t.colors.brand:t.colors[(0,s.HMu)(e.groupKey)],bold:a||(0,s.eBX)(e.groupKey),wrap:"truncate-end"},`${e.collapsed?s.FZm:s.LC} ${e.label}`,e.count>0?i().createElement(o.Text,{dimColor:!0},` \xb7 ${e.count}`):void 0)));case"description":return""===e.text?void 0:i().createElement(o.Box,{key:`description-${e.groupKey}-${r}`,width:eX,flexShrink:0,paddingLeft:2,overflow:"hidden"},i().createElement(o.Text,{dimColor:!0,wrap:"truncate-end"},e.text));case"job":return i().createElement(A,{key:`job-${e.job.id}`,job:e.job,selected:a,showStateWord:e.showStateWord,widths:eY,rowWidth:eq,now:ed,groupKey:e.groupKey});case"fold":return i().createElement(o.Box,{key:`fold-${e.groupKey}-${r}`,paddingLeft:s.SrN+eY.icon},i().createElement(o.Text,{dimColor:!0,bold:a},(0,s.t8B)(e)));case"hint":return i().createElement(o.Box,{key:`hint-${r}`,marginTop:1},i().createElement(o.Text,{dimColor:!0},e.text));default:return}}}},20991(e,t,r){let n;r.d(t,{canSwitchToAgentViewInPlace:()=>canSwitchToAgentViewInPlace,switchToAgentView:()=>switchToAgentView});var o=r(14372),a=r(5100);function canSwitchToAgentViewInPlace(){return void 0!==n}function switchToAgentView(e){(0,o.Hfd)(e),(0,o.s4u)(),process.stdout.isTTY&&process.stdout.write("\x1b[2mLoading agent view\u2026\x1b[0m"),n?.to((0,a.sl)(a.HP.AGENT_VIEW))}},68593(e,t,r){r.d(t,{az:()=>useFocusedMemberContext,Jp:()=>M}),r(88523),r(43634),r(97542),r(53900),r(92735);var n,o,a=r(71416),l=r(67945),i=r.n(l),s=r(88987);r(72542);var c=r(93509);r(65003);var u=r(53052),d=r(31349),m=r(36988),f=r(99455);r(17430),r(69449),r(29134),r(65852),r(73369),r(89072),r(9151),r(35717);var h=r(64225);r(49188),r(77153),r(13389);var p=r(55425),g=r(85577),E=r.n(g),w=r(67662),y=r(34559);let ThinkingIndicator=({enableThinking:e})=>{let{state:t}=(0,u.R7)(),{session:r}=(0,d.L)(),{theme:n}=(0,m.DP)(),o=(0,y.U)(r),{isThinkingActive:a,modelSupportsThinking:l}=(0,m.Ng)(t.states),i=(0,g.useMemo)(()=>l&&a,[l,a]);if((0,g.useMemo)(()=>i&&e&&o!==w.OT.CANCELLING,[e,i,o]))return E().createElement(h.Box,{marginTop:1},E().createElement(h.Text,{color:n.colors.secondary},"\u2234 Thinking..."))};r(37906),r(5100),r(46382);var b=r(81998),x=r(79620),T=r(39457),k=r(43840),S=r(88415),v=r(38433),C=r(80661),_=r(79311);(n=o||(o={})).COMPACT="compact",n.STANDARD="standard",n.FULL="full";let ChannelInfoLine=({textColor:e})=>{let{theme:t}=(0,m.DP)(),r=[];try{let e=(0,p.LI)();e.allowedChannels&&e.allowedChannels.size>0&&(r=Array.from(e.allowedChannels))}catch{}return 0===r.length?null:i().createElement(h.Text,{wrap:"truncate-end",color:e},r.map((e,r)=>i().createElement(i().Fragment,{key:e},r>0&&i().createElement(h.Text,{color:t.colors.secondary}," \xb7 "),i().createElement(h.Text,{color:t.colors.warning},"#",e))))},UserInfoBox=({currentThinkingEffort:e,currentModel:t,currentMainAgent:r,currentMainAgentName:n,currentMainAgentCustom:a,webUIEndpoint:s,layout:c})=>{let{theme:u}=(0,m.DP)(),d=k.C.getCurrentPackageJson(),f=S.P.getWorkDir(),p=c===o.COMPACT,g=c===o.STANDARD,E=p?u.colors.secondary:void 0,w=(0,l.useMemo)(()=>i().createElement(h.Text,null,"CodeBuddy Code ",i().createElement(h.Text,{color:u.colors.secondary},"v",d.version)),[]),y=!!t,x=!!e,v=!!r,C=y||x,_=(0,l.useMemo)(()=>{let o=g?"column":"row",l=[];C?(y&&l.push(i().createElement(h.Text,{key:"model",wrap:"truncate-end",color:E},t)),x&&l.push(i().createElement(h.Text,{key:"effort",wrap:"truncate-end",color:E},e))):l.push(i().createElement(h.Text,{key:"empty",wrap:"truncate-end",color:u.colors.secondary},"No login or model information available.")),v&&l.push(i().createElement(h.Text,{key:"main-agent",wrap:"truncate-end",color:u.colors[(0,b.g8)(n,a)]},r));let s=!g&&l.length>1;return i().createElement(h.Box,{flexDirection:o,alignItems:"center",gap:s?0:void 0},l.map((e,t)=>i().createElement(i().Fragment,{key:`item-${t}`},s&&t>0&&i().createElement(h.Text,null," \xb7 "),e)))},[y,x,v,C,g,E,t,e,r,n,a,u.colors]),A=g?"center":"flex-start";return i().createElement(h.Box,{width:"100%",flexDirection:"column",alignItems:A},p&&w,s&&i().createElement(h.Text,{wrap:"truncate-end",color:u.colors.brand,bold:!0},T.n.createHyperlink(s,s)),_,i().createElement(h.Text,{wrap:"truncate-start",color:E},f),i().createElement(ChannelInfoLine,{textColor:E}))},TipsBox=()=>{let{theme:e}=(0,m.DP)(),t="darwin"===process.platform?"Cmd + V or Ctrl + V":"Ctrl + V",r=((e,t)=>{if(t>=e.length)return[...e];let r=[...e];for(let e=r.length-1;e>0;e--){let t=Math.floor(Math.random()*(e+1));[r[e],r[t]]=[r[t],r[e]]}return r.slice(0,t)})([v.c.getNewlineKeyBindingTip(!0),"Press / to use commands, @ to mention files.",`Run ${C.T.chalk.primary("/init")} to create a ${C.T.chalk.primary(x._b)} or ${C.T.chalk.primary(x.FO)} file with instructions for codebase.`,"Press Esc twice to reset the input box.",`Press ${t} to paste URLs, file paths, or images.`,`${C.T.chalk.brand("Open Web UI in browser")} for a richer interactive experience.`],3);return i().createElement(h.Box,{flexDirection:"column"},i().createElement(h.Text,{color:e.colors.brand},"Tips for getting started"),r.map(e=>i().createElement(h.Text,{wrap:"truncate-end",key:e},e)))},RecentBox=({recentList:e})=>{let{theme:t}=(0,m.DP)(),r=(0,l.useMemo)(()=>{let t=[];for(let r of e){if(t.length>=3)break;t.includes(r)||t.push(r)}return t},[e]);return i().createElement(h.Box,{flexDirection:"column"},i().createElement(h.Text,{color:t.colors.brand},"Recent activity"),r.length?r.map(e=>i().createElement(h.Text,{wrap:"truncate-end",key:e},e)):i().createElement(h.Text,{color:t.colors.secondary},"No recent activity"))},ChatHeaderFullBox=e=>{let{theme:t}=(0,m.DP)(),r=k.C.getCurrentPackageJson(),n=`${C.T.chalk.brand("CodeBuddy Code")} ${C.T.chalk.secondary("v"+r.version)}`;return i().createElement(c.G8,{width:e.width,height:e.height,borderText:{content:n,position:"top",offset:3},borderStyle:"round",borderColor:t.colors.brand},i().createElement(h.Box,{flexBasis:1,flexShrink:0,flexGrow:1,borderBottom:!1,borderTop:!1,borderLeft:!1,borderRight:!0,borderRightDimColor:!0,borderRightColor:t.colors.brand,borderStyle:"single",justifyContent:"center",alignItems:"center"},i().createElement(_.M,null)),i().createElement(h.Box,{flexBasis:1,flexShrink:0,flexGrow:2,paddingLeft:1,paddingRight:1,flexDirection:"column"},i().createElement(TipsBox,null),i().createElement(h.Box,{borderBottom:!0,borderTop:!0,borderLeft:!1,borderRight:!1,borderTopDimColor:!0,borderBottomDimColor:!0,borderStyle:"single",borderTopColor:t.colors.brand,borderBottomColor:t.colors.brand},i().createElement(RecentBox,{...e})),i().createElement(UserInfoBox,{...e})))},ChatHeaderCompactBox=e=>i().createElement(h.Box,{width:e.width,height:e.height,gap:2,alignItems:"flex-end"},i().createElement(h.Box,{flexShrink:0},i().createElement(_.M,null)),i().createElement(UserInfoBox,{...e})),ChatHeaderStandardBox=e=>{let{theme:t}=(0,m.DP)(),r=C.T.chalk.brand("CodeBuddy Code");return i().createElement(c.G8,{width:e.width,borderText:{content:r,position:"top",offset:3},borderStyle:"round",borderColor:t.colors.brand,alignItems:"center"},i().createElement(h.Box,{width:"100%",flexDirection:"column",alignItems:"center"},i().createElement(UserInfoBox,{...e})))},ChatHeaderBox=()=>{let{terminalWidth:e}=(0,m._W)(),{headerData:t}=(0,u.i9)(),r=!1;try{let e=(0,p.LI)();r=!!(e.allowedChannels&&e.allowedChannels.size>0)}catch{}let n=+!!r,a={...t,width:e,height:15+n,layout:o.FULL};return e>=110?(a.width=110,i().createElement(ChatHeaderFullBox,{...a})):e>=80?i().createElement(ChatHeaderFullBox,{...a}):e>=60?(a.layout=o.COMPACT,a.height=8+n,i().createElement(ChatHeaderCompactBox,{...a})):(a.layout=o.STANDARD,i().createElement(ChatHeaderStandardBox,{...a}))},DebugModeText=()=>{let{theme:e}=(0,m.DP)(),{session:t}=(0,u.Lg)(),r=(0,p.lH)(),n=r.isDebugEnabled(),o=r.isDebugToStderr(),a=(0,l.useMemo)(()=>o?"stderr":T.n.createHyperlink(S.P.getDebugLogFile(t.id)),[o,t.id]);return n?i().createElement(h.Box,{flexDirection:"column",marginLeft:2,marginTop:1},i().createElement(h.Text,{color:e.colors.debug},"Debug mode enabled"),i().createElement(h.Text,{dimColor:!0},"Logging to: ",a)):i().createElement(i().Fragment,null)};var A=r(79145);(0,l.memo)(({overrideMessageGroups:e})=>{let{theme:t}=(0,m.DP)(),r=(0,s.useContextSelector)(u.rZ,e=>e.rawMessageGroups),n=e??r,o=(0,s.useContextSelector)(u.Gb,e=>e.staticKey),a=(0,s.useContextSelector)(u.Gb,e=>e.refreshStatic),[d,f]=(0,l.useState)(10),p=(0,l.useMemo)(()=>n.map(e=>e.messages.length),[n]),g=(0,l.useMemo)(()=>p.reduce((e,t)=>e+t,0),[p]),E=(0,l.useMemo)(()=>{let e=0,t=n.length;for(let r=n.length-1;r>=0&&!(e>=d);r--)e+=p[r],t=r;return n.slice(t)},[n,p,d]);(0,h.useInput)((e,t)=>{if(m.Om.CTRL_E(e,t)){f(e=>{let t=Math.min(20,g);return e>=t?10:t}),setTimeout(()=>{a()},0);return}});let w=E.reduce((e,t)=>e+t.messages.length,0),y=w<g,b=g-w,x=i().useMemo(()=>{let e,t=[];for(let r of(y&&t.push(i().createElement(c.L3,{key:"load-more-separator",text:(e=d>=Math.min(20,g),`Ctrl+E to ${e?"hide":"show"} ${Math.min(10,b)} previous messages`)})),E))t.push(i().createElement(A.I,{key:`group-${r.id}`,group:r,expanded:!0}));return t.filter(e=>!!e)},[y,E]);return i().createElement(h.Box,{flexDirection:"column"},i().createElement(h.Static,{key:`${o}-history-key`,items:x},e=>e),i().createElement(h.Box,{borderColor:t.colors.secondary,borderTop:!0,borderStyle:"single",borderBottom:!1,borderRight:!1,borderLeft:!1},i().createElement(h.Text,{color:t.colors.secondary},"Showing detailed transcript \xb7 ctrl+o to toggle")))}),r(94309),r(26210),r(28806),r(62909);let M=i().createContext({focusedMemberName:null,focusedColor:void 0,isViewingMember:!1,isMemberSelecting:!1,hasMembers:!1,focusedSession:null,focusedIsBusy:!1,focusedStatus:null,focusNext:()=>{},focusPrev:()=>{},resetFocus:()=>{},focusMember:()=>{},focusedTaskId:null,selectedMemberName:null,footerLayer:"idle",isFooterSelecting:!1,canCaptureFooterDown:!1,pendingInputRef:{current:""},inputEmptyRef:{current:!0},sendToFocusedMember:null}),useFocusedMemberContext=()=>(0,l.useContext)(M);i().memo(({availableHeight:e,overrideMessageGroups:t,overrideIsBusy:r,active:n=!0})=>{let o=(0,s.useContextSelector)(u.Gb,e=>e.staticKey),m=(0,s.useContextSelector)(u.rZ,e=>e.messageGroups),{session:h}=(0,d.L)(),p=t??m,g=(0,f.X)(h),E=r??g,[w,y]=(0,l.useState)([]),[b,x]=(0,l.useState)([]),T=(0,l.useMemo)(()=>{if(!E)return!1;let e=p[p.length-1];return e&&"function_call_group"!==e.type&&"compact_group"!==e.type&&!!e.messages.find(e=>e?.type==="message"&&e?.role==="user")},[E,p.length]),k=i().useRef(new Set);(0,l.useLayoutEffect)(()=>{if(!n)return;let e=[],t=(e=>{for(let t=e.length-1;t>=0;t--){let r=e[t];if("single"===r.type&&r.messages.some(e=>"message"===e.type&&"user"===e.role))return t}return 0})(p),r=[],o=[];for(let n=0;n<p.length;n++){let a=p[n];if("compact_group"===a.type&&!a.messages.some(e=>"message"===e.type&&"assistant"===e.role)){E&&n>=t&&e.push(...a.messages);continue}if("function_call_group"===a.type){let r=a.messages.find(e=>"function_call"===e.type),o=a.messages.find(e=>"function_call_result"===e.type);if(!(r&&o&&"function_call"===r.type&&r.status&&["completed","incomplete"].includes(r.status))){E&&n>=t&&e.push(...a.messages);continue}}k.current.has(a.id)?r.push(a):o.push(a)}let a=[...r,...o];for(let e of o)k.current.add(e.id);y(a),x(e)},[p,E,n]);let S=i().useMemo(()=>{let e=[i().createElement(ChatHeaderBox,{key:"chat-header-box"}),i().createElement(DebugModeText,{key:"chat-debug-text"})];for(let t=0;t<w.length;t++)e.push(i().createElement(A.I,{key:`group-${w[t].id}`,group:w[t],expanded:!1}));return e},[w]);return i().createElement(i().Fragment,null,i().createElement(a.Static,{key:`${o}-static-key`,items:S},e=>e),i().createElement(ThinkingIndicator,{enableThinking:T}),i().createElement(c.mS,{messages:b,availableHeight:(e-1)/2}))})},55752(e,t,r){r.d(t,{h:()=>P});var n=r(67945),o=r.n(n),a=r(62279),l=r(88987),i=r(20131),s=r(32647),c=r(45214),u=r(93509),d=r(64225),m=r(53052),f=r(36988),h=r(91278);let p=new Set([i.mb.SESSION_START,i.mb.SESSION_END,i.mb.STOP,i.mb.SUBAGENT_STOP,i.mb.NOTIFICATION,i.mb.PRE_COMPACT]),g={success:{icon:a.Ay.tick,label:""},blocked:{icon:a.Ay.cross,label:"blocked"},warning:{icon:a.Ay.warning,label:"warning"},error:{icon:a.Ay.cross,label:"error"}},E={icon:a.Ay.bullet,label:""},w=o().memo(({hookStatus:e,eventName:t,iconColor:r,textColor:n})=>o().createElement(d.Text,null,o().createElement(d.Text,{color:r},(e=>{let{icon:t}=e?g[e]:E;return t})(e)," "),o().createElement(d.Text,{color:n},((e,t)=>{let{label:r}=t?g[t]:E,n=`Hook ${e}`;return r?`${n} [${r}]`:n})(t,e)))),y=o().memo(({msg:e,content:t,expanded:r})=>{let n,{theme:a}=(0,f.DP)(),l=e.providerData.hookEvent,i=e.providerData?.hookStatus,s=p.has(l),c=(e=>{let{theme:t}=(0,f.DP)();switch(e){case"blocked":case"error":return t.colors.error;case"warning":return t.colors.warning;case"success":return t.colors.success;default:return t.colors.secondary}})(i),h=a.colors.secondary,g=(n=t.trim())||"",{hookOutputCollapsed:E}=(0,m.Mp)(),y=r||!E;return s?y?o().createElement(d.Box,{marginTop:1,flexDirection:"column",key:`${e.id}-hook-${l}`},o().createElement(w,{hookStatus:i,eventName:l,iconColor:c,textColor:h}),g?o().createElement(d.Box,{marginLeft:2},o().createElement(u.h1,{text:g,offset:2,color:h,maxLines:10,ellipsis:!0,wordBreak:"break-all"})):null):o().createElement(d.Box,{marginTop:1,alignItems:"flex-start",key:`${e.id}-hook-${l}`},o().createElement(w,{hookStatus:i,eventName:l,iconColor:c,textColor:h})):y?o().createElement(u.v7,{key:`${e.id}-hook-${l}`},o().createElement(d.Box,{flexDirection:"column"},o().createElement(w,{hookStatus:i,eventName:l,iconColor:c,textColor:h}),g?o().createElement(d.Box,{marginLeft:2},o().createElement(u.h1,{text:g,offset:8,color:h,maxLines:10,ellipsis:!0,wordBreak:"break-all"})):null)):o().createElement(u.v7,{key:`${e.id}-hook-${l}`},o().createElement(w,{hookStatus:i,eventName:l,iconColor:c,textColor:h}))}),b=o().memo(({msg:e,expanded:t=!1})=>{let{theme:r}=(0,f.DP)(),n=(0,l.useContextSelector)(m.Gb,e=>e.terminalWidth);return e.content.map(a=>{let l="output_text"===a.type?a.text:"";if(l.trim().length)if(!e.providerData?.skipRun)return o().createElement(d.Box,{alignItems:"flex-start",marginTop:1,key:`${e.id}-${l}`},o().createElement(d.Box,{flexShrink:0},o().createElement(d.Text,{color:r.colors.primary},"\u25CF ")),o().createElement(d.Box,{width:n-2},e.providerData?.agent&&e.providerData.isSubAgent?o().createElement(d.Text,null,o().createElement(d.Text,{color:e.providerData.agentColor||s.T.generateColorFromName(e.providerData.agent)},e.providerData.agent),o().createElement(d.Text,null," \xb7 "),o().createElement(d.Markdown,{content:l})):o().createElement(d.Markdown,{content:l})));else{if("incomplete"===e.status&&e.providerData?.error){let{error:t}=e.providerData||{};l=c.o4.formatErrorMessage(t)}return e.providerData?.hookEvent?o().createElement(y,{key:`${e.id}-${l}`,msg:e,content:l,expanded:t}):o().createElement(u.v7,{key:`${e.id}-${l}`},o().createElement(d.Text,{color:"incomplete"===e.status?r.colors.disabled:r.colors.primary},l))}})}),x=o().memo(({msg:e,expanded:t})=>{let r=(0,h.sP)();return(0,h.t1)(e,{coordinator:r})?null:o().createElement(d.Box,{key:`${e.id}-${e.callId}-call-${e.status}`,marginTop:1},o().createElement(h.Jv,{msg:e,expanded:t}))}),T=o().memo(({msg:e,expanded:t})=>{let r=(0,h.sP)(),n=e.providerData;return(0,h.t1)({name:e.name,arguments:n?.arguments},{coordinator:r})?null:o().createElement(d.Box,{key:`${e.id}-${e.callId}-result`},o().createElement(h.KR,{msg:e,expanded:t}))}),k=o().memo(({msg:e,expanded:t})=>{let{theme:r}=(0,f.DP)(),n=a.Ay.circle,l=r.colors.secondary,i="Goal not yet met\u2026 continuing",s=!!e.condition||!!e.reason;return t?o().createElement(d.Box,{marginTop:1,flexDirection:"column",key:`goal-progress-${e.id}`},o().createElement(d.Box,null,o().createElement(d.Text,{color:l},n," "),o().createElement(d.Text,{color:l},i)),o().createElement(d.Box,{marginLeft:2},o().createElement(u.h1,{text:`Goal: ${e.condition}`,offset:2,color:l,maxLines:8,ellipsis:!0,wordBreak:"break-all"})),e.reason?o().createElement(d.Box,{marginLeft:2},o().createElement(u.h1,{text:`Reason: ${e.reason}`,offset:2,color:l,maxLines:8,ellipsis:!0,wordBreak:"break-all"})):null):o().createElement(d.Box,{marginTop:1,key:`goal-progress-${e.id}`},o().createElement(d.Text,{color:l},n," "),o().createElement(d.Text,{color:l},i),s?o().createElement(d.Text,{color:l,dimColor:!0}," (ctrl+o to expand)"):null)});function formatGoalTokenCount(e){return!Number.isFinite(e)||e<0?"0":e<1e3?String(e):e<1e6?`${(e/1e3).toFixed(1)}k`:`${(e/1e6).toFixed(1)}M`}function formatGoalStats(e,t,r){let n=Math.max(1,Math.round(e/1e3)),o=`${t} turn${1===t?"":"s"}`,a=`${formatGoalTokenCount(r)} token${1===r?"":"s"}`;return`${n}s \xb7 ${o} \xb7 ${a}`}let S=o().memo(({msg:e,expanded:t})=>{let{theme:r}=(0,f.DP)(),n=e.ok?a.Ay.tick:a.Ay.cross,l=e.ok?r.colors.success:r.colors.error,i=e.ok?"Goal achieved":"Goal could not be achieved",s=formatGoalStats(e.durationMs,e.turnCount,e.tokenDelta),c=r.colors.secondary,m=!!e.condition||!!e.reason,h=o().createElement(d.Box,null,o().createElement(d.Text,{color:l},n," "),o().createElement(d.Text,{color:c},i," (",s,")"));return t?o().createElement(d.Box,{marginTop:1,flexDirection:"column",key:`goal-result-${e.id}`},h,o().createElement(d.Box,{marginLeft:2},o().createElement(u.h1,{text:`Goal: ${e.condition}`,offset:2,color:c,maxLines:8,ellipsis:!0,wordBreak:"break-all"})),e.reason?o().createElement(d.Box,{marginLeft:2},o().createElement(u.h1,{text:`Reason: ${e.reason}`,offset:2,color:c,maxLines:8,ellipsis:!0,wordBreak:"break-all"})):null):o().createElement(d.Box,{marginTop:1,key:`goal-result-${e.id}`},o().createElement(d.Text,{color:l},n," "),o().createElement(d.Text,{color:c},i," (",s,")"),m?o().createElement(d.Text,{color:c,dimColor:!0}," (ctrl+o to expand)"):null)});var v=r(26112);let C=(0,n.memo)(({msg:e,expanded:t})=>{let{theme:r}=(0,f.DP)(),a=(0,n.useMemo)(()=>e.rawContent&&0!==e.rawContent.length?e.rawContent.map(e=>e.text).join("").trimEnd().split(/\r\n|\r|\n/g).filter(e=>e.trim().length>0):[],[e]);if(0===a.length)return;let l=a.length>3,i=(t?a:a.slice(0,3)).join("\n"),s=l&&!t?`
|
|
2
|
+
... ${a.length-3} more lines (press Ctrl+O to expand)`:"";return o().createElement(d.Box,{marginTop:1,paddingLeft:1,flexDirection:"column"},o().createElement(v.h,{text:i+s,offset:1,italic:!0,color:r.colors.secondary}))});var _=r(64799),A=r(55425),M=r(46382);function readRunningBackgroundShells(){try{return(0,M.MN)((0,A._5)().getBackgroundTasks())}catch{return 0}}function describeTaskOutcome(e,t){switch(e){case"failed":return{icon:a.Ay.cross,color:t.colors.error,verb:"failed after"};case"killed":case"cancelled":return{icon:"\u2298",color:t.colors.secondary,verb:"stopped after"};default:return{icon:a.Ay.tick,color:t.colors.success,verb:"finished in"}}}let I=o().memo(({msg:e})=>{let{theme:t}=(0,f.DP)(),r=_.R.formatTurnDuration(e.durationMs),l="background-task"===e.source,[i]=(0,n.useState)(()=>l?0:readRunningBackgroundShells());if(l){let{icon:n,color:a,verb:l}=describeTaskOutcome(e.taskStatus,t);return o().createElement(u.v7,{key:`turn-metrics-${e.id}`},o().createElement(d.Text,{color:a},n," "),o().createElement(d.Text,{color:t.colors.secondary},"Background task ",l," ",r))}let s=i>0?` \xb7 ${i} ${1===i?"shell":"shells"} still running`:"";return o().createElement(d.Box,{marginTop:1,key:`turn-metrics-${e.id}`},o().createElement(d.Text,{color:t.colors.success},a.Ay.tick," "),o().createElement(d.Text,{color:t.colors.secondary},"Worked for ",r,s))});var O=r(90131);let P=(0,n.memo)(({msg:e,expanded:t})=>((e,t)=>{let r=`${e.type}-${e.id}`;if("message"===e.type)switch(e.role){case"user":if(e.providerData?.isMeta===!0)return null;return o().createElement(O.a,{key:r,msg:e,expanded:t});case"assistant":return o().createElement(b,{key:r,msg:e,expanded:t});default:return}switch(e.type){case"function_call":return o().createElement(x,{key:r,msg:e,expanded:t});case"function_call_result":return o().createElement(T,{key:r,msg:e,expanded:t});case"reasoning":return o().createElement(C,{key:r,msg:e,expanded:t});case"goal-result":return o().createElement(S,{key:r,msg:e,expanded:t});case"goal-progress":return o().createElement(k,{key:r,msg:e,expanded:t});case"turn-metrics":return o().createElement(I,{key:r,msg:e,expanded:t});default:return}})(e,t))},79311(e,t,r){r.d(t,{M:()=>PixelLogoEnhanced});var n=r(71416),o=r(67945),a=r.n(o),l=r(80661),i=r(36988);let PixelLogoEnhanced=()=>{let{theme:e}=(0,i.DP)(),t=l.T.applyColor(e.colors.logo.body)("\u2588"),r=l.T.applyColor(e.colors.logo.eye)("\u2588"),o=[` ${t}${t}${t}${t} ${t}${t}${t}${t} `,` ${t}${t}${t}${t}${t}${t}${t}${t}${t}${t}${t}${t}${t}${t}${t}${t} `,`${t}${t}${t}${t} ${t}${t}${t}${t}`,`${t}${t}${t}${t} ${r}${r} ${r}${r} ${t}${t}${t}${t}`,`${t}${t}${t}${t} ${r}${r} ${r}${r} ${t}${t}${t}${t}`,`${t}${t}${t}${t} ${t}${t}${t}${t}`,` ${t}${t}${t}${t}${t}${t}${t}${t}${t}${t}${t}${t}${t}${t}${t}${t} `];return a().createElement(n.Box,{flexDirection:"column"},o.map((e,t)=>a().createElement(n.Text,{key:`logo-${t}-${e}`},e)))}},79145(e,t,r){r.d(t,{I:()=>h});var n=r(67945),o=r.n(n),a=r(55752),l=r(71416),i=r(49726),s=r(98092),c=r(93509),u=r(64225),d=r(93811),m=r(90131);let f=o().memo(({group:e,expanded:t})=>{let r=e.messages[0],a=(0,n.useMemo)(()=>(e=>{if("string"==typeof e.content){let t=e.content.replace(/\/_compact\b/g,"/compact");return t===e.content?e:{...e,content:t}}if(Array.isArray(e.content)){let t=!1,r=e.content.map(e=>{if("string"==typeof e){let r=e.replace(/\/_compact\b/g,"/compact");return r!==e&&(t=!0),r}if("input_text"===e.type&&"string"==typeof e.text){let r=e.text.replace(/\/_compact\b/g,"/compact");if(r!==e.text)return t=!0,{...e,text:r}}return e});return t?{...e,content:r}:e}return e})(r),[r]),f=e.messages.find(e=>"message"===e.type&&"assistant"===e.role&&e.providerData?.agent===i.QYL.COMPACT)??e.messages.find(e=>"message"===e.type&&"assistant"===e.role);return f?o().createElement(l.Box,{flexDirection:"column"},o().createElement(l.Box,{gap:1,flexDirection:"column"},o().createElement(d.L,{text:"Conversation compacted \xb7 ctrl+o for history",separatorChar:"\u2550"}),t?f.content.map(e=>{let t="output_text"===e.type?e.text:"",r=s.m.extractSummaryContent(t);if(r.trim().length)return o().createElement(l.Box,{alignItems:"flex-start",key:`${f.id}-${r.slice(0,50)}`},o().createElement(u.Markdown,{content:r}))}):o().createElement(o().Fragment,null)),o().createElement(m.a,{msg:a,expanded:t}),o().createElement(c.v7,null,o().createElement(l.Text,{dimColor:!0},"Compacted"))):o().createElement(m.a,{msg:a,expanded:t})}),h=o().memo(({group:e,expanded:t=!1})=>"compact_group"===e.type?o().createElement(f,{key:`group-${e.id}`,group:e,expanded:t}):o().createElement(o().Fragment,null,e.messages.map(e=>o().createElement(a.h,{key:`message-item-${e.type}-${e.id}`,msg:e,expanded:t}))))},91278(e,t,r){r.d(t,{t1:()=>isHiddenToolCall,Jv:()=>S,KR:()=>A,sP:()=>useCoordinatorToolReveal});var n=r(40838);let o={[n.L3b.EDIT]:n.Xgq.EDIT,[n.L3b.MULTI_EDIT]:n.Xgq.MULTIEDIT,[n.L3b.READ]:n.Xgq.READ,[n.L3b.LS]:n.Xgq.LIST,[n.L3b.WRITE]:n.Xgq.WRITE,[n.L3b.GREP]:n.Xgq.GREP,[n.L3b.GLOB]:n.Xgq.GLOB,[n.L3b.SAVE_MEMORY]:n.Xgq.MEMORY,[n.L3b.BASH]:n.Xgq.BASH,[n.L3b.POWERSHELL]:n.Xgq.POWERSHELL,[n.L3b.WEB_FETCH]:n.Xgq.FETCH,[n.L3b.WEB_SEARCH]:n.Xgq.SEARCH,[n.L3b.ENTER_PLAN_MODE]:n.Xgq.ENTER_PLAN_MODE,[n.L3b.EXIT_PLAN_MODE]:n.Xgq.EXIT_PLAN_MODE};var a=r(16928),l=r(30499),i=r.n(l),s=r(33600),c=r(93509),u=r(64225),d=r(36988);function extractWorkflowUiMeta(e){if(!e)return{};let t=e.slice(0,4096),r=t.search(/\bmeta\s*=\s*\{/);if(r<0)return{};let n=t.indexOf("{",r),o=findMatchingBrace(t,n);if(o<0)return{};let a=t.slice(n+1,o);return{description:extractStringField(a,"description"),phases:extractPhases(a)}}function extractStringField(e,t){let r=RegExp(`(?:^|[,{\\s])${t}\\s*:\\s*([\`'"])`,"m").exec(e);if(!r)return;let n=r[1],o=r.index+r[0].length,a="";for(;o<e.length;){let t=e[o];if("\\"===t&&o+1<e.length){a+=m[e[o+1]]??e[o+1],o+=2;continue}if("`"===n&&"$"===t&&"{"===e[o+1])break;if(t===n)return a;a+=t,o++}}function extractPhases(e){let t=/(?:^|[,{\s])phases\s*:\s*\[/m.exec(e);if(!t)return;let r=e.indexOf("[",t.index),n=findMatchingBracket(e,r);if(n<0)return;let o=e.slice(r+1,n),a=[],l=0;for(;l<o.length;){for(;l<o.length&&"{"!==o[l];)l++;if(l>=o.length)break;let e=findMatchingBrace(o,l);if(e<0)break;let t=o.slice(l+1,e),r=extractStringField(t,"title");if(r){let e=extractStringField(t,"detail");a.push(e?{title:r,detail:e}:{title:r})}l=e+1}return a.length>0?a:void 0}let m={n:"\n",r:"\r",t:" ",'"':'"',"'":"'","`":"`","\\":"\\"};function findMatchingBrace(e,t){return findMatching(e,t,"{","}")}function findMatchingBracket(e,t){return findMatching(e,t,"[","]")}function findMatching(e,t,r,n){let o=0,a=t;for(;a<e.length;){let t=e[a];if("/"===t&&"/"===e[a+1]){let t=e.indexOf("\n",a+2);a=t<0?e.length:t+1;continue}if("/"===t&&"*"===e[a+1]){let t=e.indexOf("*/",a+2);a=t<0?e.length:t+2;continue}if('"'===t||"'"===t||"`"===t){a=skipString(e,a,t);continue}if(t===r)o++;else if(t===n&&0==--o)return a;a++}return -1}function skipString(e,t,r){let n=t+1;for(;n<e.length;){let t=e[n];if("\\"===t){n+=2;continue}if(t===r)return n+1;n++}return e.length}var f=r(55425),h=r(15553),p=r.n(h);let CodeToolCall=({value:e,title:t,providerData:r,expanded:o})=>{let{theme:a}=(0,d.DP)(),l=e.replace(/^\s*\d+\u2192/gm,""),i=l.split(/\r?\n/),{language:s}=r?.toolResult.renderer?.context||{};return p().createElement(u.Text,null,o&&i.length>3?p().createElement(c.qM,{code:l,language:s}):p().createElement(u.Text,{color:a.colors.secondary},t," ",i.length>3?p().createElement(u.Text,{color:a.colors.secondary},n.YKe):p().createElement(p().Fragment,null)))};var g=r(70370);let DiffToolCall=({providerData:e,interruption:t})=>{let{arguments:r="{}"}=e||{},n={};try{n=JSON.parse(r||"{}")}catch{return p().createElement(p().Fragment,null)}let o=n.file_path||n.notebook_path,a={verbose:!1,dimColor:t,showSummary:!t};if(!o)return p().createElement(p().Fragment,null);let ensureNewlineAtEnd=e=>{if(!e)return"";if("string"!=typeof e)try{e=JSON.stringify(e)}catch{return e}return(e=e.replace(/\t/g," ")).endsWith("\n")?e:e+"\n"};if(Array.isArray(n.edits)){let e=n.edits.flatMap(e=>{let t=ensureNewlineAtEnd(e?.old_string??""),r=ensureNewlineAtEnd(e?.new_string??"");return g.i.getPatch({filePath:o,oldStr:t,newStr:r,fileContents:t})});return p().createElement(c.bm,{filePath:o,structuredPatch:e,...a})}if(n.notebook_path){let{edit_mode:e,cell_id:t,new_source:r,cell_type:l}=n;e||(e="replace");let i="",s="",u=o;"replace"===e?(i=`[Cell ${t}]
|
|
3
3
|
(existing content)`,s=`[Cell ${t}] (${l||"existing type"})
|
|
4
4
|
${r||""}`,u=`${o}#cell-${t}`):"insert"===e?(i=t?`[After Cell ${t}]
|
|
5
5
|
(insert position)`:"[At Beginning]\n(insert position)",s=`[New ${l} Cell]
|
|
6
6
|
${r||""}`,u=`${o}#insert${t?`-after-${t}`:"-beginning"}`):"delete"===e&&(i=`[Cell ${t}]
|
|
7
7
|
(content to be deleted)`,s=`[Cell ${t}]
|
|
8
|
-
(deleted)`,u=`${o}#delete-${t}`);let d=g.i.getPatch({filePath:u,oldStr:i,newStr:s,fileContents:i});return p().createElement(c.bm,{filePath:u,structuredPatch:d,...a})}let l=ensureNewlineAtEnd(n.old_string??""),i=ensureNewlineAtEnd(n.new_string??""),s=g.i.getPatch({filePath:o,oldStr:l,newStr:i,fileContents:l});return p().createElement(c.bm,{filePath:o,structuredPatch:s,...a})},EnterPlanModeToolCall=({providerData:e})=>{let{theme:t}=(0,d.DP)(),{toolResult:r}=e||{};return r?.error==="User declined to enter plan mode"?null:p().createElement(u.Box,{flexDirection:"column",paddingLeft:1},p().createElement(u.Text,{color:t.colors.secondary},"CodeBuddy is now exploring and designing an implementation approach."))};var E=r(53052);let ExitPlanModeToolCall=({providerData:e})=>{let{content:t,error:r}=e?.toolResult||{},{session:n}=(0,E.Lg)(),[o,a]=(0,h.useState)(void 0);(0,h.useEffect)(()=>{t||r||(0,f.Uy)().read(n).then(e=>{e&&a(e)}).catch(()=>{})},[t,r]);let l=t||o;return p().createElement(u.Box,{flexDirection:"column"},r?p().createElement(u.Markdown,{content:`Error: ${r}`}):l?p().createElement(u.Markdown,{content:l}):p().createElement(u.Markdown,{content:"Loading plan..."}))},ListToolCall=({value:e,title:t,expanded:r})=>{let{theme:o}=(0,d.DP)(),a="string"==typeof e,l=a?[]:e,i=a?e:l.join("\n");return p().createElement(u.Text,null,r&&(a||l.length)?p().createElement(u.Text,{color:o.colors.secondary},i):p().createElement(u.Text,{color:o.colors.secondary},t," ",a||l.length?p().createElement(u.Text,{color:o.colors.secondary},n.YKe):p().createElement(p().Fragment,null)))},MarkdownToolCall=({value:e})=>p().createElement(u.Markdown,{content:e}),TextToolCall=({title:e,providerData:t,expanded:r})=>{let{theme:o}=(0,d.DP)(),{content:a,renderer:l}=t?.toolResult||{},i=l?.value,s=i||a;return s?r?p().createElement(c.h1,{linkifyFilePaths:!0,text:s,offset:4}):e&&!i?p().createElement(u.Text,{color:o.colors.secondary},e):p().createElement(c.h1,{linkifyFilePaths:!0,text:s,maxLines:n.h20,ellipsis:!0,ellipsisText:e=>`...+${e} line ${n.YKe}`,offset:4}):p().createElement(u.Text,null,n.dMy)},DefaultToolCall=({result:e,expanded:t,isErrorMsg:r})=>{let{theme:o}=(0,d.DP)(),a=r?o.colors.disabled:void 0;return e?t?p().createElement(c.h1,{offset:4,color:a,text:e}):p().createElement(c.h1,{offset:4,color:a,text:e,maxLines:n.h20,ellipsis:!0,ellipsisText:e=>` \u{2192} +${e} line ${r?n.ETv:n.YKe}`}):p().createElement(u.Text,null,n.dMy)},StreamToolCall=({providerData:e,expanded:t})=>{let r=e?.toolResult?.renderer?.value||("string"==typeof e?.toolResult?.content?e.toolResult.content:"")||"";return r?t?p().createElement(c.h1,{linkifyFilePaths:!0,offset:4,text:r}):p().createElement(c.h1,{linkifyFilePaths:!0,text:r,maxLines:n.h20,ellipsis:!0,ellipsisText:e=>`...+${e} line ${n.YKe}`,offset:4}):p().createElement(c.h1,{linkifyFilePaths:!0,text:n.dMy})},MediaToolCall=({value:e,expanded:t=!1})=>{let{theme:r}=(0,d.DP)(),o={audio:"[Audio]",image:"[Image]",resource:"[Resource]",resource_link:"[Resource]"};try{let n=JSON.parse(e),a=Array.isArray(n)?n:[n],l=[],i=[];for(let e of a)e.type in o?i.push(o[e.type]):l.push(e.text||"");return p().createElement(u.Box,{flexDirection:"column"},i.length?p().createElement(c.h1,{color:r.colors.secondary,text:i.join("")}):p().createElement(DefaultToolCall,{result:l.join("\n"),expanded:t}))}catch(e){return p().createElement(u.Text,{color:r.colors.error},e?.message||n.dMy)}};function stripToolUseErrorTags(e){return e.replace(/<\/?tool_use_error>/g,"")}let ToolInterruptionDisplay=({providerData:e,toolResult:t,output:r,expanded:n,children:o})=>{let a=stripToolUseErrorTags(String(e?.error?.message||e?.error||t?.error||r));return p().createElement(u.Box,{flexDirection:"column"},p().createElement(DefaultToolCall,{isErrorMsg:!0,result:a,expanded:!!n}),o)},TeamCreatedToolCall=({value:e})=>{let{theme:t}=(0,d.DP)(),{teamName:r}=e;return p().createElement(u.Text,null,"Team ",p().createElement(u.Text,{bold:!0,color:t.colors.primary},r)," created")},TeamMemberSpawnedToolCall=({value:e,expanded:t=!1})=>{let{theme:r}=(0,d.DP)(),{prompt:n}=e;if(!n)return p().createElement(p().Fragment,null);let o=n.split("\n");if(t)return p().createElement(u.Box,{flexDirection:"column"},p().createElement(u.Text,{color:r.colors.secondary},n));let a=o.filter(e=>e.trim().length>0),l=a.slice(0,3),i=a.length-l.length;return p().createElement(u.Box,{flexDirection:"column"},p().createElement(u.Text,{color:r.colors.secondary},l.join("\n")),i>0&&p().createElement(u.Text,{dimColor:!0},"... (",i," more lines, ctrl+o to expand)"))},AgentSpawnedToolCall=({value:e,expanded:t=!1})=>{let{theme:r}=(0,d.DP)(),{prompt:n,memberName:o,subagentType:a,description:l}=e,i=[a,l].filter(e=>"string"==typeof e&&e.trim()).join(" \xb7 ");if(!n)return i?p().createElement(u.Text,{color:r.colors.info},i):o?p().createElement(u.Text,{color:r.colors.secondary},"Assigned as ",p().createElement(u.Text,{bold:!0,color:r.colors.info},o)):p().createElement(p().Fragment,null);let s=n.split("\n");if(t)return p().createElement(u.Box,{flexDirection:"column"},i?p().createElement(u.Text,{color:r.colors.info},i):null,o&&p().createElement(u.Text,{color:r.colors.secondary},"Assigned as ",p().createElement(u.Text,{bold:!0,color:r.colors.info},o)),p().createElement(u.Text,{color:r.colors.secondary},n));let c=s.filter(e=>e.trim().length>0),m=c.slice(0,3),f=c.length-m.length;return p().createElement(u.Box,{flexDirection:"column"},i?p().createElement(u.Text,{color:r.colors.info},i):null,p().createElement(u.Text,{color:r.colors.secondary},m.join("\n")),f>0&&p().createElement(u.Text,{dimColor:!0},"... (",f," more lines, ctrl+o to expand)"))},AgentOutputToolCall=({value:e,expanded:t=!1})=>{let r,n,o,a,l,{theme:i}=(0,d.DP)(),{status:s,result:c,error:m,duration:f,lastContextWindow:h,toolCallCount:g}=e,E="completed"===s,w="failed"===s||"cancelled"===s,y=[];null!=f&&y.push((n=Math.floor((r=Math.floor(f/1e3))/60))>0?`${n}m ${r%60}s`:`${r}s`),null!=g&&g>0&&y.push(`${g} tool use${g>1?"s":""}`),null!=h&&h>0&&y.push(`${h>=1e3?`${(h/1e3).toFixed(1)}k`:String(h)} tokens`);let b=y.join(" \xb7 "),x=E?i.colors.success:w?i.colors.error:i.colors.brand,T=E?c:w?m:void 0;return p().createElement(u.Box,{flexDirection:"column"},p().createElement(u.Box,{gap:1},p().createElement(u.Text,{color:x},E?"completed":w?s:"running\u2026"),b?p().createElement(u.Text,{color:i.colors.secondary},"\xb7 ",b):null),T&&!t&&(a=(o=T.split("\n").filter(e=>e.trim().length>0)).slice(0,3),l=o.length-a.length,p().createElement(p().Fragment,null,p().createElement(u.Text,{color:i.colors.secondary},a.join("\n")),l>0&&p().createElement(u.Text,{dimColor:!0},"... (",l," more lines, ctrl+o to expand)"))),T&&t&&p().createElement(u.Text,{color:i.colors.secondary},T))},SendMessageToolCall=({value:e})=>{let{theme:t}=(0,d.DP)(),{resultMessage:r}=e;return p().createElement(u.Text,{color:t.colors.secondary},r)},CronCreateToolCall=({value:e})=>e&&e.id?p().createElement(u.Text,null,"Scheduled ",p().createElement(u.Text,{bold:!0},e.id)," ",p().createElement(u.Text,{dimColor:!0},"(",e.humanSchedule,")")):p().createElement(u.Text,{dimColor:!0},"Scheduled task created"),CronDeleteToolCall=({value:e})=>e&&e.id?p().createElement(u.Text,null,"Cancelled ",p().createElement(u.Text,{bold:!0},e.id)):p().createElement(u.Text,{dimColor:!0},"Job cancelled"),CronListToolCall=({value:e})=>e&&e.jobs&&0!==e.jobs.length?p().createElement(u.Box,{flexDirection:"column"},e.jobs.map(e=>p().createElement(u.Text,{key:e.id},p().createElement(u.Text,{bold:!0},e.id)," ",p().createElement(u.Text,{dimColor:!0},e.humanSchedule)))):p().createElement(u.Text,{dimColor:!0},"No scheduled jobs"),WorkflowStartedToolCall=({value:e})=>{let{theme:t}=(0,d.DP)();return p().createElement(u.Box,{flexDirection:"column"},p().createElement(u.Text,{color:t.colors.secondary},p().createElement(u.Text,null,"Running in background \xb7 "),p().createElement(u.Text,{color:t.colors.brand},"/workflows"),p().createElement(u.Text,null," to monitor and save")))},FindingsToolCall=({value:e,expanded:t=!1})=>{let{theme:r}=(0,d.DP)(),n=Array.isArray(e)?e:e&&"object"==typeof e&&Array.isArray(e.findings)?e.findings:[];if(0===n.length)return p().createElement(u.Text,{dimColor:!0},"No findings reported.");let o=t?n:n.slice(0,3),a=n.length-o.length;return p().createElement(u.Box,{flexDirection:"column"},o.map((e,t)=>p().createElement(u.Box,{key:`${e.file}-${t}`,flexDirection:"column",marginBottom:+(t<o.length-1)},p().createElement(u.Box,{gap:1},p().createElement(u.Text,{color:r.colors.filePath},e.file),e.category?p().createElement(u.Text,{dimColor:!0},"[",e.category,"]"):null),p().createElement(u.Text,{color:r.colors.secondary},e.summary),p().createElement(u.Text,{dimColor:!0},e.failureScenario))),a>0&&p().createElement(u.Text,{dimColor:!0},"... (",a," more finding",a>1?"s":"",", ctrl+o to expand)"))},w=i().memo(({name:e,toolCallArguments:t="{}"})=>{let{theme:r}=(0,d.DP)(),{serverName:n,toolName:o}=s.g.parseToolFullName(e),[a,c]=(0,l.useState)("");return(0,l.useEffect)(()=>{(async()=>{let e=await (0,f.o0)().listTools(n).catch(()=>void 0),t=e?.find(e=>{let t=s.g.parseToolFullName(e.name).toolName;return t===o||t===o.replace(/_/g,"-")});c(t?.description||"")})()},[]),i().createElement(u.Box,{flexDirection:"column",paddingLeft:1},i().createElement(u.Text,{color:r.colors.primary},n," - ",o,"(",t.slice(1,-1),")(mcp)"),i().createElement(u.Text,{color:r.colors.secondary},a))});i().memo(({name:e,providerData:t,toolCallArguments:r="{}",defaultShowArg:o})=>{let{theme:l}=(0,d.DP)();try{let s=JSON.parse(r),d=Object.entries(s).reduce((e,[t,r])=>{if(!n.w8W.includes(t)){let n="string"==typeof r?`"${r}"`:JSON.stringify(r);e.push(`${t}: ${n}`)}return e},[]).join(", ");switch(e){case n.L3b.WRITE:return i().createElement(u.Box,{flexDirection:"column",gap:1,alignItems:"flex-start"},i().createElement(u.Text,{bold:!0},(0,a.basename)(s.file_path)),i().createElement(c.qM,{code:s.content,language:(0,a.extname)(s.file_path).substring(1)}));case n.L3b.READ:return i().createElement(u.Box,{paddingLeft:1},i().createElement(u.Text,{bold:!0},"Read(",s.file_path,")"));case n.L3b.GLOB:case n.L3b.GREP:return i().createElement(u.Box,{paddingLeft:1},i().createElement(u.Text,{bold:!0},"Search(",d,")"));case n.L3b.EDIT:case n.L3b.MULTI_EDIT:return i().createElement(u.Box,{flexDirection:"column",gap:1,alignItems:"flex-start"},i().createElement(u.Text,{bold:!0},(0,a.basename)(s.file_path)),i().createElement(DiffToolCall,{providerData:{arguments:r,toolResult:{content:"",renderer:{type:"diff"}}}}));case n.L3b.BASH:case n.L3b.POWERSHELL:return i().createElement(u.Box,{flexDirection:"column",width:"90%",paddingLeft:1},i().createElement(c.h1,{offset:3,text:s.command,maxLines:3}),i().createElement(u.Text,{wrap:"truncate-middle",color:l.colors.secondary},s.description));case n.L3b.WEB_FETCH:return i().createElement(u.Box,{flexDirection:"column",paddingLeft:1},i().createElement(u.Text,null,o),i().createElement(u.Text,{color:l.colors.secondary},s.prompt));case n.L3b.NOTEBOOK_EDIT:return i().createElement(u.Box,{flexDirection:"column",gap:1,alignItems:"flex-start"},i().createElement(u.Text,{bold:!0},(0,a.basename)(s.notebook_path)),i().createElement(DiffToolCall,{providerData:{arguments:r,toolResult:{content:"",renderer:{type:"diff"}}}}));case n.L3b.ENTER_PLAN_MODE:return i().createElement(u.Box,{flexDirection:"column"},i().createElement(u.Text,{wrap:"truncate-middle"},"CodeBuddy wants to enter plan mode:"),i().createElement(EnterPlanModeToolCall,{providerData:{arguments:r,toolResult:{content:"",renderer:{type:"text"}}}}));case n.L3b.EXIT_PLAN_MODE:return i().createElement(ExitPlanModeToolCall,{providerData:{arguments:"",toolResult:{content:""},...t}});case n.L3b.DELEGATE_TOOL:return i().createElement(u.Box,{flexDirection:"column",paddingLeft:1},i().createElement(u.Text,{bold:!0},"Call delegate tool: ",s.toolName||"Unknown"),s.description&&i().createElement(u.Text,{color:l.colors.secondary},s.description),d&&i().createElement(u.Text,{color:l.colors.secondary},"Args: ",d));case n.L3b.DEFER_EXECUTE:if(s.toolName===n.L3b.WORKFLOW){let e=t?.workflowSourceText;return i().createElement(y,{params:s.params||{},preloadedSource:"string"==typeof e?e:void 0})}break;default:if(e.startsWith("mcp__"))return i().createElement(w,{name:e,toolCallArguments:r,defaultShowArg:o})}}catch{}let s=r;try{let e=JSON.parse(r);if("object"==typeof e&&null!==e){let t=Object.entries(e).filter(([e])=>!n.w8W.includes(e));t.length>0&&(s=t.map(([e,t])=>{let r="string"==typeof t?`"${t}"`:JSON.stringify(t);return`${e}: ${r}`}).join(", "))}}catch{}return i().createElement(u.Box,{flexDirection:"column",paddingLeft:1},i().createElement(u.Text,{bold:!0},e),s&&i().createElement(u.Text,{color:l.colors.secondary},s))});let y=i().memo(({params:e,preloadedSource:t})=>{let{theme:r}=(0,d.DP)(),n=("string"==typeof e.script?e.script:"")||t||"",o=(0,l.useMemo)(()=>extractWorkflowUiMeta(n),[n]),a=o.description??("string"==typeof e.name?`saved workflow: ${e.name}`:void 0)??("string"==typeof e.scriptPath?`script: ${e.scriptPath}`:void 0)??"dynamic workflow";return i().createElement(u.Box,{flexDirection:"column",paddingLeft:1},i().createElement(u.Text,{bold:!0},a),o.phases&&o.phases.length>0&&i().createElement(u.Box,{flexDirection:"column",marginTop:1},i().createElement(u.Text,null,"This dynamic workflow will spin up multiple subagents across the following phases:"),o.phases.map((e,t)=>i().createElement(u.Box,{key:t,paddingLeft:2},i().createElement(u.Text,null,i().createElement(u.Text,{bold:!0},`${t+1}. ${e.title}`),e.detail?i().createElement(u.Text,{color:r.colors.secondary},` \u{2014} ${e.detail}`):null)))),i().createElement(u.Box,{marginTop:1},i().createElement(u.Text,{color:r.colors.warning},"Dynamic workflows can use a lot of tokens quickly by running many subagents in parallel \u2014 which counts against your usage limit. Stop a running workflow at any time with /workflows, or disable dynamic workflows in /config.")))});var b=r(36210),x=r(32647),T=r(88415),k=r(26112);function isHiddenToolCall(e,t){if(t?.coordinator&&(0,b.Be)(e.name))return!1;if(e.name===n.L3b.TASK_OUTPUT||e.name===n.L3b.TASK_STOP)return!0;if(e.name===n.L3b.AGENT)try{let t=JSON.parse(e.arguments||"{}");if(t.name||t.run_in_background)return!1;return!0}catch{}return!1}function useCoordinatorToolReveal(){return(0,b.Rn)((0,E.Lg)().session)}let S=i().memo(({msg:e,expanded:t})=>{let{theme:r}=(0,d.DP)(),{columns:a}=(0,d.HP)(),m=useCoordinatorToolReveal(),{name:f,status:h,arguments:p,providerData:g}=e,E={incomplete:r?.colors?.disabled??"grey",in_progress:r?.colors?.secondary??"grey",completed:r?.colors?.success??"green"},w=((e="{}",t={},r)=>{try{let o=JSON.parse(e),a=Object.entries(o).reduce((e,[t,r])=>{if(!n.w8W.includes(t)){let n="string"==typeof r?`"${r}"`:JSON.stringify(r);e.push(`${t}: ${n.replace(/\n/g,"")}`)}return e},[]).join(", ");if(r)return a;if(t&&"argumentsDisplayText"in t)return t.argumentsDisplayText.replace(/\r\n|\r|\n/g,"");return a}catch{return""}})(p,g,t),y=f;if(y.startsWith("mcp__")){let{serverName:e,toolName:t}=s.g.parseToolFullName(f);y=`${e} - ${t} (mcp)`}else y=o[f]||f;if(f===n.L3b.ASK_USER_QUESTION)return i().createElement(u.Box,{key:`${e.id}-${e.callId}-${p}-${h}`,alignItems:"flex-start"},h?i().createElement(u.Text,null,i().createElement(u.Text,{color:r.colors.primary},"\u25CF "),e.providerData?.agent&&e.providerData.isSubAgent?i().createElement(u.Text,null,i().createElement(u.Text,{color:e.providerData.agentColor||x.T.generateColorFromName(e.providerData.agent)},e.providerData.agent),i().createElement(u.Text,null," \xb7 ")):null,i().createElement(u.Text,null,"User answered CodeBuddy's questions:")):void 0);if(f===n.L3b.SEND_MESSAGE)try{let{type:t,recipient:n,summary:o,approve:a}=JSON.parse(p||"{}"),l="",s="";switch(t){case"message":s=`@${n}`,l=o||"Sending message...";break;case"broadcast":s="@team",l=o||"Broadcasting...";break;case"shutdown_request":s=`@${n}`,l="Shutdown requested";break;case"shutdown_response":s="Shutting down",l=!1!==a?"Task completed":"Shutdown rejected";break;case"plan_approval_response":s=`@${n}`,l=!1!==a?"Plan approved":"Plan rejected";break;default:s=n?`@${n}`:"",l=o||t}return i().createElement(u.Box,{key:`${e.id}-${e.callId}-${p}-${h}`,alignItems:"flex-start"},i().createElement(u.Box,{alignItems:"center",flexShrink:0},i().createElement(u.Text,{color:E[h||"in_progress"]},"\u25CF "),e.providerData?.agent&&e.providerData.isSubAgent?i().createElement(u.Text,null,i().createElement(u.Text,{color:e.providerData.agentColor||x.T.generateColorFromName(e.providerData.agent)},e.providerData.agent),i().createElement(u.Text,null," ")):null,i().createElement(u.Text,{bold:!0},s),l&&i().createElement(u.Text,{color:r.colors.secondary}," \xb7 ",l)))}catch{}if(f===n.L3b.SEND_USER_MESSAGE||f===n.L3b.TASK_STOP||f===n.L3b.TASK_OUTPUT&&!m)return i().createElement(i().Fragment,null);if(f===n.L3b.AGENT)try{let t=JSON.parse(p||"{}");if(t.name){let n=t.name,o=t.description||"";return i().createElement(u.Box,{key:`${e.id}-${e.callId}-${p}-${h}`,alignItems:"flex-start"},i().createElement(u.Box,{alignItems:"center",flexShrink:0},i().createElement(u.Text,{color:E[h||"in_progress"]},"\u25CF "),i().createElement(u.Text,{bold:!0,color:r.colors.info},"@",n),o&&i().createElement(u.Text,{color:r.colors.secondary}," \xb7 ",o)))}if(!t.run_in_background&&!m)return i().createElement(i().Fragment,null);{let n=t.subagent_type||"Agent",o=t.description||"";return i().createElement(u.Box,{key:`${e.id}-${e.callId}-${p}-${h}`,alignItems:"flex-start"},i().createElement(u.Box,{alignItems:"center",flexShrink:0},i().createElement(u.Text,{color:E[h||"in_progress"]},"\u25CF "),i().createElement(u.Text,{bold:!0},n),o&&i().createElement(u.Text,{color:r.colors.secondary}," \xb7 ",o),t.run_in_background?i().createElement(u.Text,{color:r.colors.secondary}," (background)"):null))}}catch{}if(f===n.L3b.REPL)try{let n=JSON.parse(p||"{}"),o="string"==typeof n.code?n.code:"",a="string"==typeof n.description?n.description.trim():"";return i().createElement(u.Box,{key:`${e.id}-${e.callId}-${p}-${h}`,flexDirection:"column",alignItems:"flex-start"},i().createElement(u.Box,{alignItems:"center",flexShrink:0},i().createElement(u.Text,{color:E[h||"in_progress"]},"\u25CF "),e.providerData?.agent&&e.providerData.isSubAgent?i().createElement(u.Text,null,i().createElement(u.Text,{color:e.providerData.agentColor||x.T.generateColorFromName(e.providerData.agent)},e.providerData.agent),i().createElement(u.Text,null," \xb7 "),i().createElement(u.Text,{bold:!0},y)):i().createElement(u.Text,{bold:!0},y),i().createElement(u.Text,{color:r.colors.secondary}," \xb7 ",a||"Running code\u2026")),t&&o?i().createElement(u.Box,{flexDirection:"column",paddingLeft:2},i().createElement(u.Text,{color:r.colors.secondary},"Code"),i().createElement(u.Box,{paddingLeft:2},i().createElement(c.qM,{code:o,language:"javascript"}))):null)}catch{}if(f===n.L3b.WRITE||f===n.L3b.EDIT||f===n.L3b.MULTI_EDIT)try{let t=JSON.parse(p||"{}"),n=t.file_path||t.notebook_path||"";if((e=>{if(!e)return!1;let t=T.P.getPlansDir();return T.P.resolveFilePathToWorkDir(e).startsWith(t)})(n))return i().createElement(u.Box,{key:`${e.id}-${e.callId}-${p}-${h}`,flexDirection:"column",alignItems:"flex-start"},i().createElement(u.Box,{alignItems:"center"},i().createElement(u.Text,{color:E[h||"in_progress"]},"\u25CF "),i().createElement(u.Text,{bold:!0},"Updated plan")),i().createElement(u.Box,{paddingLeft:2},i().createElement(u.Text,{color:r.colors.secondary},"\u2514 /plan to preview")))}catch{}let b=(0,l.useMemo)(()=>3+y.length+(e.providerData?.agent&&e.providerData.isSubAgent?e.providerData.agent.length+3:0),[y,e.providerData?.agent,e.providerData?.isSubAgent]);return i().createElement(u.Box,{key:`${e.id}-${e.callId}-${p}-${h}`,alignItems:"flex-start"},i().createElement(u.Box,{alignItems:"center",flexShrink:0},i().createElement(u.Text,{color:E[h||"in_progress"]},"\u25CF "),e.providerData?.agent&&e.providerData.isSubAgent?i().createElement(u.Text,null,i().createElement(u.Text,{color:e.providerData.agentColor||x.T.generateColorFromName(e.providerData.agent)},e.providerData.agent),i().createElement(u.Text,null," \xb7 "),i().createElement(u.Text,{bold:!0},y)):i().createElement(u.Text,{bold:!0},y)),w&&(t?i().createElement(k.h,{text:`(${w})`,color:r.colors.secondary,offset:b,wordBreak:"break-all"}):i().createElement(u.Box,{width:a-b},i().createElement(u.Text,{color:r.colors.secondary,wrap:"truncate-middle"},"(",w,")"))))});var v=r(88523),C=r(92735);let _=/^An error occurred while parsing tool arguments\. Please try again with valid JSON\. Error: (.+)$/,ErrorInterruptionContent=({msg:e})=>{let t=e.providerData,{arguments:r="{}"}=t||{},o={};try{o=JSON.parse(r)}catch(e){v.ContainerUtil.get(C.Logger).error(`Failed to parse tool call arguments: ${e}`)}switch(e.name){case n.L3b.ENTER_PLAN_MODE:return;case n.L3b.EXIT_PLAN_MODE:return i().createElement(ExitPlanModeToolCall,{providerData:t});case n.L3b.EDIT:case n.L3b.MULTI_EDIT:return i().createElement(DiffToolCall,{providerData:t,interruption:!0});case n.L3b.WRITE:{let e=JSON.stringify({...o,old_string:"",new_string:o.content||""});return i().createElement(DiffToolCall,{providerData:{...t,arguments:e},interruption:!0})}default:return}},ToolResultTextRender=({msg:e,expanded:t})=>{var r;let{theme:o}=(0,d.DP)(),a=e.callId,l="output"in e?(r=e.output)&&"object"==typeof r&&r.type&&"string"==typeof r.type&&r.type in r?r[r.type]:r:void 0,s=e.providerData,{toolResult:m}=s||{};if(m?.error||"incomplete"===e.status)return i().createElement(ToolInterruptionDisplay,{providerData:s,toolResult:m,output:l,expanded:t},i().createElement(ErrorInterruptionContent,{msg:e}));if(e.name===n.L3b.CRON_CREATE&&m?.rawResponse){let e=m.rawResponse;return i().createElement(CronCreateToolCall,{value:e})}if(e.name===n.L3b.CRON_DELETE&&m?.rawResponse){let e=m.rawResponse;return i().createElement(CronDeleteToolCall,{value:e})}if(e.name===n.L3b.CRON_LIST&&m?.rawResponse){let e=m.rawResponse;return i().createElement(CronListToolCall,{value:e})}if(!m?.renderer){let e=String(l||""),r=(e=>{if(e.match(_))return"Tool call arguments were invalid JSON. The model will retry automatically."})(e);return r?i().createElement(DefaultToolCall,{isErrorMsg:!0,result:r,expanded:t}):i().createElement(DefaultToolCall,{result:e,expanded:t})}if(t&&e.name===n.L3b.REPL&&"text"===m.renderer.type){let e=String(m.renderer.value??m.content??""),t=e.indexOf("\n"),r=t>=0?e.slice(0,t):e,n=t>=0?e.slice(t+1):"";return i().createElement(u.Box,{flexDirection:"column",width:"100%"},r?i().createElement(u.Text,null,r):null,n?i().createElement(u.Box,{flexDirection:"column"},i().createElement(u.Text,{color:o.colors.secondary},"Output"),i().createElement(u.Box,{paddingLeft:2},i().createElement(c.h1,{text:n,offset:6}))):null)}let f=m.renderer.value??m.content,h=m.title?i().createElement(u.Markdown,{content:m.title}):"";switch(m.renderer.type){case"media":return i().createElement(MediaToolCall,{value:f,expanded:t});case"list":return i().createElement(ListToolCall,{value:f,title:h,expanded:t});case"markdown":return i().createElement(MarkdownToolCall,{value:f});case"diff":return i().createElement(DiffToolCall,{providerData:s});case"code":return i().createElement(CodeToolCall,{value:f,title:h,providerData:s,expanded:t});case"stream":return i().createElement(StreamToolCall,{providerData:s,callId:a,expanded:t});case"plan":return i().createElement(ExitPlanModeToolCall,{providerData:s});case"enterplan":return i().createElement(EnterPlanModeToolCall,{providerData:s});case"team-created":{let e="string"==typeof f?JSON.parse(f):f;return i().createElement(TeamCreatedToolCall,{value:e})}case"team-member-spawned":{let e="string"==typeof f?JSON.parse(f):f;return i().createElement(TeamMemberSpawnedToolCall,{value:e,expanded:t})}case"agent-spawned":{let e="string"==typeof f?JSON.parse(f):f;return i().createElement(AgentSpawnedToolCall,{value:e,expanded:t})}case"agent-output":{let e="string"==typeof f?JSON.parse(f):f;return i().createElement(AgentOutputToolCall,{value:e,expanded:t})}case"send-message":{let e="string"==typeof f?JSON.parse(f):f;return i().createElement(SendMessageToolCall,{value:e})}case"workflow-started":{let e="string"==typeof f?JSON.parse(f):f;return i().createElement(WorkflowStartedToolCall,{value:e})}case"findings":{let e="string"==typeof f?JSON.parse(f):f;return i().createElement(FindingsToolCall,{value:e,expanded:t})}default:return i().createElement(TextToolCall,{value:f,title:h,expanded:t,providerData:s})}},A=i().memo(({msg:e,expanded:t})=>{let{theme:r}=(0,d.DP)();if(e.name===n.L3b.SEND_USER_MESSAGE){let t=e.providerData,n=t?.toolResult;if(!n?.error&&"incomplete"!==e.status&&n?.renderer?.type==="markdown"){let t=n.renderer.value??n.content;return i().createElement(u.Box,{key:`${e.id}-${e.callId}-sum`,alignItems:"flex-start"},i().createElement(u.Box,{flexShrink:0},i().createElement(u.Text,{color:r.colors.primary},"\u25CF ")),i().createElement(u.Box,{flexDirection:"column"},i().createElement(u.Markdown,{content:t})))}}return i().createElement(c.v7,{key:`${e.id}-${e.callId}-branch`},i().createElement(ToolResultTextRender,{key:`${e.id}-${e.callId}-tool-result`,msg:e,expanded:t}))})},90131(e,t,r){r.d(t,{a:()=>w});var n=r(31399),o=r(89634),a=r(39457),l=r(79803),i=r(24463),s=r(67945),c=r.n(s),u=r(93509),d=r(64225),m=r(62909),f=r(36988),h=r(55425),p=r(28806);let MessageBox=({text:e,children:t})=>{let{theme:r}=(0,f.DP)();return c().createElement(d.Box,{marginTop:1,alignItems:"flex-start"},c().createElement(d.Box,{flexShrink:0,backgroundColor:r.colors.rowBackground},t??c().createElement(d.Text,{color:r.colors.text},"> ")),c().createElement(u.h1,{text:e,offset:3,color:r.colors.text,backgroundColor:r.colors.rowBackground,paddingRight:1,rowBackground:!0}))},TeammateMessageBox=({info:e,content:t,expanded:r=!1})=>{let{theme:n}=(0,f.DP)();if("system"===e.from)return null;let o=e.color||n.colors.info,a=t.match(/<teammate-message[^>]*>\n?([\s\S]*?)\n?<\/teammate-message>/),l=a?a[1].trim():t;try{let e=JSON.parse(l);if(e&&"object"==typeof e&&e.type)if("shutdown_response"===e.type){let t=!1!==e.approve?"accepted":"rejected";l=e.reason||`Shutdown ${t}`}else l="shutdown_request"===e.type?e.reason||"Shutdown requested":e.reason||e.summary||l}catch{}let i=l.split("\n"),s=i.length>6,u=r||!s?l:i.slice(0,6).join("\n");return c().createElement(d.Box,{marginTop:1,flexDirection:"column"},c().createElement(d.Box,{alignItems:"flex-start",gap:1},c().createElement(d.Text,{color:o,bold:!0},e.from),e.summary?c().createElement(d.Text,{color:n.colors.secondary},"\xb7 ",e.summary):null),c().createElement(d.Box,{marginLeft:2,flexDirection:"column"},c().createElement(d.Markdown,{content:u}),s&&!r&&c().createElement(d.Text,{dimColor:!0},"... (",i.length-6," more lines, ctrl+o to expand)")))},parseChannelMessage=e=>{let t=e.match(/<channel\s+([^>]+)>\s*([\s\S]*?)\s*<\/channel>/);if(!t)return;let r=t[1],n=t[2].trim(),o=r.match(/source="([^"]+)"/),a=r.match(/sender="([^"]+)"/)||r.match(/user="([^"]+)"/);if(o)return{source:o[1],sender:a?a[1]:o[1],content:n}},ChannelMessageBox=({info:e})=>{let{theme:t}=(0,f.DP)(),r=e.content.length>200?e.content.substring(0,200)+"...":e.content;return c().createElement(d.Box,{marginTop:1,alignItems:"flex-start",flexDirection:"column"},c().createElement(d.Box,null,c().createElement(d.Text,{color:t.colors.warning,bold:!0},"#",e.source),c().createElement(d.Text,{color:t.colors.secondary}," \xb7 "),c().createElement(d.Text,{color:t.colors.secondary},e.sender,": "),c().createElement(d.Text,{color:t.colors.text},r)))},isChannelInstructions=e=>{try{for(let t of(0,h.LI)().channelServers.values())if(t.instructions&&e.includes(t.instructions))return!0}catch{}return!1},AgentNotificationBox=({text:e})=>{let{theme:t}=(0,f.DP)(),r=l.C.parseAgentNotification(e);if(!r)return c().createElement(MessageBox,{text:e});let n="completed"===r.status?t.colors.success:"failed"===r.status||"cancelled"===r.status?t.colors.error:t.colors.secondary;return c().createElement(d.Box,{marginTop:1,alignItems:"flex-start"},c().createElement(d.Text,{color:n},"\u25CF "),c().createElement(u.h1,{text:r.summary,offset:3,color:t.colors.secondary,backgroundColor:t.colors.rowBackground,paddingRight:1,rowBackground:!0}))},CommandInputMessageBox=({inputItem:e})=>{let{theme:t}=(0,f.DP)(),{type:r,text:n}=e;if(r!==l.g.COMMAND){let e=p.X$.getConfig([m.W_[r]],t);return c().createElement(MessageBox,{text:n},c().createElement(d.Text,{color:e.color},e.figure," "))}return c().createElement(MessageBox,{text:n})},CommandOutputMessageBox=({outputItem:e,expanded:t})=>{let{theme:r}=(0,f.DP)(),{type:n,text:i}=e,s=i||o.dMy;return c().createElement(u.v7,null,n===l.g.BASH?c().createElement(d.Box,{flexDirection:"column"},c().createElement(d.Text,{color:r.colors.secondary,wrap:"truncate"},a.n.linkifyFilePaths(s.slice(0,t?void 0:500)))):c().createElement(d.Markdown,{content:s}))},PlanOutputMessageBox=({filePath:e,content:t})=>{let{theme:r}=(0,f.DP)();return c().createElement(u.v7,null,c().createElement(d.Box,{flexDirection:"column"},c().createElement(d.Box,{flexDirection:"column",marginBottom:1},c().createElement(d.Text,null,"Current Plan"),c().createElement(d.Text,{color:r.colors.secondary}," ",e)),c().createElement(d.Markdown,{content:t})))},g=/^<image_local_path>[\s\S]*<\/image_local_path>$/,E=/<image_local_path>\s*[\s\S]*?<\/image_local_path>/gi,w=(0,s.memo)(({msg:e,expanded:t})=>{let{isSystemInternalMessage:r,isAgentNotification:o,parseInput:a,parseOutput:u,parsePlanOutput:d}=l.C,m=(0,s.useCallback)((e,t)=>{let r=t?.content??e;return i.r.stripUserQueryTags(i.r.stripSystemRemindersOutsideUserQuery(r)).replace(E,"").replace(/\n{3,}/g,"\n\n").trim()},[]),f="string"==typeof e.content?e.content:Array.isArray(e.content)?e.content.map(e=>"string"==typeof e?e:"input_text"===e.type?e.text:"").join("\n"):"";if((0,n.SC)(f)||/^\[channel [^\]]*\][^\n]*members:/i.test(f.trim()))return;let h=(e=>{let t="string"==typeof e.content?e.content:e.content.map(e=>"string"==typeof e?e:"input_text"===e.type?e.text:"").join("\n"),r=i.r.stripUserQueryTags(i.r.stripSystemRemindersOutsideUserQuery(t)).trim(),n=parseChannelMessage(r);if(!n||!n.content)return;let o=r.replace(/<channel\s+[^>]+>[\s\S]*?<\/channel>/,"").trim();if(!(o.length>0)||isChannelInstructions(o))return n})(e);if(h)return c().createElement(ChannelMessageBox,{key:`${e.id}-channel`,info:h});let p=(e=>{let t="string"==typeof e.content?e.content:e.content.map(e=>"string"==typeof e?e:"input_text"===e.type?e.text:"").join("\n");if((0,n.SC)(t))return;let r=e.providerData?.teammateMessage;if(r)return{info:r};let o=(0,n.sp)(t);if(o)return{info:{from:o.name||o.id,summary:o.summary},extractedContent:o.content}})(e);if(p){let r=p.extractedContent??("string"==typeof e.content?i.r.stripSystemRemindersOutsideUserQuery(e.content):e.content.map(e=>"string"==typeof e?i.r.stripSystemRemindersOutsideUserQuery(e):"input_text"===e.type?i.r.stripSystemRemindersOutsideUserQuery(e.text):"").join("\n"));return c().createElement(TeammateMessageBox,{key:`${e.id}-teammate`,info:p.info,content:r,expanded:t})}if("string"==typeof e.content){if(r(e.content))return;let t=m(e.content,e.providerData);if(!t||0===t.trim().length||isChannelInstructions(t))return;return c().createElement(MessageBox,{key:`${e.id}-${e.content}`,text:t})}if(Array.isArray(e.content)&&e.content.length>1){let t=[],n=!0;for(let a of e.content){if("string"==typeof a){let e=i.r.stripSystemRemindersOutsideUserQuery(a);if(!e||0===e.trim().length||isChannelInstructions(e)||g.test(e.trim()))continue;if(parseChannelMessage(i.r.stripUserQueryTags(e).trim())){n=!1;break}let r=m(e);r&&t.push(r);continue}if("input_image"===a.type)continue;if("input_text"!==a.type){n=!1;break}let e=i.r.stripSystemRemindersOutsideUserQuery(a.text);if(!(!e||0===e.trim().length||r(e)||isChannelInstructions(e)||g.test(e.trim()))){if(parseChannelMessage(i.r.stripUserQueryTags(e).trim())||o(e)||void 0!==d(e)||void 0!==u(e)){n=!1;break}t.push(m(e,a.providerData))}}let a=t.filter(Boolean).join("\n");if(n&&a.trim().length>0)return c().createElement(MessageBox,{key:`${e.id}-combined`,text:a})}return e.content.map((n,l)=>{if("string"==typeof n){let t=i.r.stripSystemRemindersOutsideUserQuery(n);if(!t||0===t.trim().length)return;let r=parseChannelMessage(t.trim());if(r)return c().createElement(ChannelMessageBox,{key:`${e.id}-channel-${l}`,info:r});if(isChannelInstructions(t))return;let o=m(t);if(!o)return;return c().createElement(MessageBox,{text:o,key:`${e.id}-${n}-${l}`})}if("input_text"===n.type){let s=i.r.stripSystemRemindersOutsideUserQuery(n.text);if(!s||0===s.trim().length||r(s)||g.test(s.trim()))return;let f=parseChannelMessage(i.r.stripUserQueryTags(s).trim());if(f)return c().createElement(ChannelMessageBox,{key:`${e.id}-channel-${l}`,info:f});if(isChannelInstructions(s))return;if(o(s))return c().createElement(AgentNotificationBox,{key:`${e.id}-${l}`,text:s});let h=d(s);if(void 0!==h)return c().createElement(PlanOutputMessageBox,{key:`${e.id}-plan-${l}`,filePath:h.filePath,content:h.content});let p=a(s);if(void 0!==p)return c().createElement(CommandInputMessageBox,{key:`${e.id}-${p.text}-${l}`,inputItem:p});let E=u(s);if(void 0!==E)return c().createElement(CommandOutputMessageBox,{key:`${e.id}-${E.text}-${l}`,outputItem:E,expanded:t});let w=m(s,n.providerData);if(!w)return;return c().createElement(MessageBox,{text:w,key:`${e.id}-${n.text}-${l}`})}})})},72542(e,t,r){r(88523),r(14372),r(43889),r(66936),r(98447),r(53052),r(31349),r(94816),r(90777),r(5100),r(55425)},98447(e,t,r){var n,o;r.d(t,{T:()=>n}),(o=n||(n={})).TASKS="/tasks",o.ADD_DIR="/add-dir",o.AGENTS="/agents",o.BACKGROUND="/background",o.BG="/bg",o.BRANCH="/branch",o.BTW="/btw",o.CLEAR="/clear",o.COMPACT="/compact",o.CONFIG="/config",o.AUTOCOMPACT="/autocompact",o.COST="/cost",o.DOCTOR="/doctor",o.EXIT="/exit",o.EXPORT="/export",o.FORK="/fork",o.GATEWAY="/gateway",o.GOAL="/goal",o.REMOTE_CONTROL="/remote-control",o.HELP="/help",o.IDE="/ide",o.INIT="/init",o.KEYBINDINGS="/keybindings",o.LOGIN="/login",o.LOGOUT="/logout",o.MCP="/mcp",o.PLAN="/plan",o.PLUGIN="/plugin",o.PLUGIN_VALIDATE="/plugin-validate",o.RELOAD_PLUGINS="/reload-plugins",o.TODOS="/todos",o.MEMORY="/memory",o.MODEL="/model",o.MULTITASK="/multitask",o.MODEL_LITE="/model:lite",o.MODEL_REASONING="/model:reasoning",o.MODEL_TEXT_TO_IMAGE="/model:text-to-image",o.MODEL_IMAGE_TO_IMAGE="/model:image-to-image",o.MODEL_TEXT_TO_VIDEO="/model:text-to-video",o.MODEL_IMAGE_TO_VIDEO="/model:image-to-video",o.MODE="/mode",o.PERMISSIONS="/permissions",o.RELEASE_NOTES="/release-notes",o.RENAME="/rename",o.RESUME="/resume",o.SANDBOX="/sandbox",o.SKILLS="/skills",o.STATS="/stats",o.STATUS="/status",o.TERMINAL_SETUP="/terminal-setup",o.THEME="/theme",o.UPGRADE="/upgrade",o.VIM="/vim",o.CONTEXT="/context",o.WORKFLOWS="/workflows",o.EFFORT="/effort",o.DEEP_RESEARCH="/deep-research",o.SIMPLIFY="/simplify",o.CODE_REVIEW="/code-review",o.VERIFY="/verify",o.COPY="/copy",o.DEBUG="/debug"},52412(e,t,r){r.d(t,{q:()=>CodeHighlight});var n=r(89223),o=r.n(n),a=r(88890),l=r(64225);function CodeHighlight({code:e,language:t}){let r=(0,n.useMemo)(()=>(0,a.w)(e,t),[e,t]);return o().createElement(l.Text,null,r)}},64298(e,t,r){r.d(t,{r:()=>StructuredDiff});var n=r(902),o=r(35495),a=r(39457),l=r(36988),i=r(79146),s=r.n(i);function wrapText(e,t){let r=a.n.stripCharsetControls(e),n=[],o="";for(let e of r)s()(o+e)<=t?o+=e:(n.push(o),o=e);return o&&n.push(o),n}let AddSign=()=>{let{theme:e}=(0,l.DP)();return o.createElement(n.Text,{color:e.colors.success},"+ ")},RemoveSign=()=>{let{theme:e}=(0,l.DP)();return o.createElement(n.Text,{color:e.colors.error},"- ")};function WordHighlightLine({wordDiff:e,dim:t,theme:r,type:l}){let i="add"===l?t?r.colors.diff.addedDimmed:r.colors.diff.added:t?r.colors.diff.removedDimmed:r.colors.diff.removed,s="add"===l?r.colors.diff.addedWord:r.colors.diff.removedWord;return o.createElement(n.Text,{backgroundColor:i},e.tokens.map((e,t)=>{let r=a.n.stripCharsetControls(e.text);return"unchanged"!==e.type?o.createElement(n.Text,{key:t,backgroundColor:s},r):o.createElement(n.Text,{key:t},r)}))}function formatDiff(e,t,r,a,l,i,s){let c=numberDiffLines(e.map((e,t)=>e.startsWith("+")?{code:" "+e.slice(1),type:"add",originalIdx:t}:e.startsWith("-")?{code:" "+e.slice(1),type:"remove",originalIdx:t}:{code:e,type:"nochange",originalIdx:t}),t),u=Math.max(...c.map(({i:e})=>e)).toString().length;return c.flatMap(({type:e,code:t,i:c,originalIdx:d},m)=>wrapText(t,r-u-2).map((t,r)=>{let f=`${i}-${m}-${e}-${c}-${r}`,h=s?.find(t=>t.lineIndex===d&&("add"===e&&"add"===t.type||"remove"===e&&"remove"===t.type)&&0===r);switch(e){case"add":return{key:f,element:o.createElement(n.Text,null,o.createElement(LineNumber,{i:0===r?c:void 0,width:u}),o.createElement(AddSign,null),h&&h.metadata.shouldHighlight?o.createElement(WordHighlightLine,{wordDiff:h,dim:a,theme:l,type:"add"}):o.createElement(n.Text,{backgroundColor:a?l.colors.diff.addedDimmed:l.colors.diff.added,color:a?l.colors.textSecondary:void 0},t))};case"remove":return{key:f,element:o.createElement(n.Text,null,o.createElement(LineNumber,{i:0===r?c:void 0,width:u}),o.createElement(RemoveSign,null),h&&h.metadata.shouldHighlight?o.createElement(WordHighlightLine,{wordDiff:h,dim:a,theme:l,type:"remove"}):o.createElement(n.Text,{backgroundColor:a?l.colors.diff.removedDimmed:l.colors.diff.removed,color:a?l.colors.textSecondary:void 0},t))};default:return{key:f,element:o.createElement(n.Text,null,o.createElement(LineNumber,{i:0===r?c:void 0,width:u}),o.createElement(n.Text,null," "),o.createElement(n.Text,{dimColor:a},t))}}}))}function LineNumber({i:e,width:t}){let{theme:r}=(0,l.DP)();return o.createElement(n.Text,{color:r.colors.secondary},void 0!==e?e.toString().padStart(t):" ".repeat(t)," ")}function numberDiffLines(e,t){let r=t,n=[],o=[...e];for(;o.length>0;){let{code:e,type:t,originalIdx:a}=o.shift(),l={code:e,type:t,i:r,originalIdx:a};switch(t){case"nochange":case"add":r++,n.push(l);break;case"remove":{n.push(l);let e=0;for(;o[0]?.type==="remove";){r++;let{code:t,type:a,originalIdx:l}=o.shift(),i={code:t,type:a,i:r,originalIdx:l};n.push(i),e++}r-=e}}}return n}function StructuredDiff({patch:e,dim:t,width:r}){let{theme:a}=(0,l.DP)(),i=(0,o.useMemo)(()=>`patch-${e.oldStart}-${e.newStart}-${e.oldLines||0}-${e.newLines||0}`,[e.oldStart,e.newStart,e.oldLines,e.newLines]);return(0,o.useMemo)(()=>formatDiff(e.lines,e.oldStart,r,t,a,i,e.wordDiffs),[e,r,t,a,i]).map(({key:e,element:t})=>o.createElement(n.Box,{key:e},t))}},74096(e,t,r){r.d(t,{JA:()=>d,bm:()=>FileContentDiff});var n=r(16928),o=r(35495),a=r(25973),l=r(53052),i=r(36988),s=r(55425),c=r(64225),u=r(64298);function intersperse(e,t){return e.flatMap((e,r)=>r?[t(r),e]:[e])}function FileContentDiff({filePath:e,structuredPatch:t,verbose:r,dimColor:d=!1,showSummary:m=!0}){let f=(0,a.useContextSelector)(l.Gb,e=>e.terminalWidth),{theme:h}=(0,i.DP)(),p=t.reduce((e,t)=>e+t.lines.filter(e=>e.startsWith("+")).length,0),g=t.reduce((e,t)=>e+t.lines.filter(e=>e.startsWith("-")).length,0),E=o.useMemo(()=>(0,s.vV)().enhance(t),[t]);return o.createElement(c.Box,{flexDirection:"column",gap:1},m?o.createElement(c.Text,null,o.createElement(c.Text,{bold:!0},r?e:(0,n.relative)(process.cwd(),e)),o.createElement(c.Text,{color:h.colors.secondary},p||g?"":" does not need to be updated"),p>0||g>0?" with ":"",p>0?o.createElement(o.Fragment,null,o.createElement(c.Text,{bold:!0},p)," ",p>1?"additions":"addition"):void 0,p>0&&g>0?" and ":void 0,g>0?o.createElement(o.Fragment,null,o.createElement(c.Text,{bold:!0},g)," ",g>1?"removals":"removal"):void 0):o.createElement(o.Fragment,null),intersperse(E.map((e,t)=>o.createElement(c.Box,{flexDirection:"column",key:`structured-${t}-${e.oldStart}-${e.newStart}`},o.createElement(u.r,{patch:e,dim:d,width:f-12}))),e=>o.createElement(c.Box,{key:`ellipsis-${e}`},o.createElement(c.Text,{color:h.colors.secondary},"..."))))}let d=Symbol("DiffWordService");var m=r(88523),f=r(50594);let h=class{enhance(e){return e.map(e=>this.processHunk(e))}processHunk(e){let t=new f.diff_match_patch,r=[],n=null,o=-1;for(let a=0;a<e.lines.length;a++){let l=e.lines[a];if(l.startsWith("-"))n=l.substring(1),o=a;else if(l.startsWith("+")&&null!==n){let e=l.substring(1),i=t.diff_main(n,e);t.diff_cleanupSemantic(i);let s=this.generateTokensFromDiff(i,"remove"),c=this.generateTokensFromDiff(i,"add"),u=Math.max(s.length,c.length),d=s.filter(e=>"unchanged"!==e.type).length;r.push(this.generateDiffInfo(o,"remove",s,{totalTokens:u,changedTokens:d})),r.push(this.generateDiffInfo(a,"add",c,{totalTokens:u,changedTokens:d})),n=null,o=-1}}return{...e,wordDiffs:r.length>0?r:void 0}}generateTokensFromDiff(e,t){let r=[];for(let[n,o]of e){let e=null;0===n?e="unchanged":"remove"===t&&-1===n?e="removed":"add"===t&&1===n&&(e="added"),null!==e&&this.tokenizeText(o).forEach(t=>{r.push({text:t,type:e})})}return r}tokenizeText(e){if(!e)return[];let t=[],r="";for(let n of Array.from(e)){let e=/\s/.test(n),o=/[^\w\s]/u.test(n);e||o?(r&&(t.push(r),r=""),t.push(n)):r+=n}return r&&t.push(r),t}generateDiffInfo(e,t,r,n){let o=n.totalTokens>0?n.changedTokens/n.totalTokens*100:0;return{lineIndex:e,type:t,tokens:r,metadata:{totalTokens:n.totalTokens,changedTokens:n.changedTokens,changeRatio:o,shouldHighlight:o<40}}}};!function(e,t,r,n){var o,a=arguments.length,l=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)l=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(o=e[i])&&(l=(a<3?o(l):a>3?o(t,r,l):o(t,r))||l);a>3&&l&&Object.defineProperty(t,r,l)}([(0,m.Component)(d)],h)},88890(e,t,r){r.d(t,{w:()=>highlightCode});var n=r(888);let highlightCode=(e,t)=>{if(!e)return"";t=t&&(0,n.supportsLanguage)(t)?t:"markdown";let r=e.replace(/\t/g," ");try{let e=(0,n.highlight)(r,{language:t});return e=(e=e.replace(/\u001b\[3m/g,"")).replace(/\u001b\[23m/g,"")}catch(e){return console.error("[highlight] highlightCode failed for language:",t,"error:",e),r}}},93509(e,t,r){r.d(t,{h1:()=>C.h,G8:()=>TitledBox,rm:()=>d,v7:()=>BranchNode,bm:()=>i.bm,qM:()=>m.q,Os:()=>TextTruncateBox,vB:()=>StatusLine,L3:()=>M.L,mS:()=>A});var n,o,a,l,i=r(74096),s=r(89223),c=r.n(s),u=r(64225);let BranchNode=({children:e})=>c().createElement(u.Box,{width:"100%",flexDirection:"row",marginLeft:2,alignItems:"flex-start"},c().createElement(u.Box,{flexShrink:0,width:2,minWidth:2},c().createElement(u.Text,null,"\u23BF ")),c().createElement(u.Box,{flexGrow:1,flexShrink:1,justifyContent:"flex-start",alignItems:"center"},e)),d=c().memo(({icon:e="\u2692"})=>{let t=Math.floor((0,s.useSyncExternalStore)(u.subscribeTick,u.getSnapshot)/10)%2==0;return c().createElement(u.Text,null,t?e:" ")});d.displayName="BreathingTool";var m=r(52412);r(88523),r(16928),r(71893),r(92309);var f=r(73667),h=r(34479);r(88415),r(80661),r(32647),r(33600),r(77835);var p=r(62909),g=r(53052),E=r(36988),w=r(55425);p.zC.CURRENT_APPECT,h.$D.getShortcutKeyArray(h.nP.SHIFT_TAB),p.zC.ALWAYS_APPECT,f.Xp,p.zC.REJECT,r(91943),r(66936),(n=a||(a={})).USE_THIS_AND_ALL_FUTURE="use_this_and_all_future",n.USE_THIS="use_this",n.REJECT="reject",(o=l||(l={})).CHECKING="checking",o.INITIAL_RENDER="initial_render",o.DIRECTORY_TRUST_REQUIRED="directory_trust_required",o.MCP_APPROVAL_REQUIRED="mcp_approval_required",o.READY="ready",r(19222);var y=r(50022),b=r(33075),x=r.n(b);let T={single:{topLeft:"\u250C",topRight:"\u2510",bottomLeft:"\u2514",bottomRight:"\u2518",horizontal:"\u2500",vertical:"\u2502"},double:{topLeft:"\u2554",topRight:"\u2557",bottomLeft:"\u255A",bottomRight:"\u255D",horizontal:"\u2550",vertical:"\u2551"},round:{topLeft:"\u256D",topRight:"\u256E",bottomLeft:"\u2570",bottomRight:"\u256F",horizontal:"\u2500",vertical:"\u2502"},bold:{topLeft:"\u250F",topRight:"\u2513",bottomLeft:"\u2517",bottomRight:"\u251B",horizontal:"\u2501",vertical:"\u2503"},classic:{topLeft:"+",topRight:"+",bottomLeft:"+",bottomRight:"+",horizontal:"-",vertical:"|"}},TitledBox=({borderText:e,borderStyle:t="round",borderColor:r,borderDimColor:n,borderTopColor:o,borderTopDimColor:a,borderBottomColor:l,borderBottomDimColor:i,borderLeftColor:u,borderLeftDimColor:d,borderRightColor:m,borderRightDimColor:f,children:h,width:p,height:g,...E})=>{let w=T[t]||T.round,b=e?.content||"",k=e?.position||"top",S=e?.offset??1,v=o??r,C=l??r,_=u??r,A=m??r,M=a??n,I=i??n,O=d??n,P=f??n,R=(0,s.useRef)(null),[D,L]=(0,s.useState)(null);(0,s.useEffect)(()=>{if((void 0===p||void 0===g)&&R.current)try{let e=(0,y.measureElement)(R.current);L(e)}catch(e){L({width:80,height:10})}},[p,g,h]);let $="number"==typeof p?p:D?.width??80,B="number"==typeof g?g:D?.height??10,N=Math.max($-2,1),W=Math.max(B-2,1),F=(0,s.useCallback)((e,t)=>{let r=e===k&&!!b,n=r?` ${b} `:"",o=n?x()(n).length:0,a=r?Math.max(0,S):0,l=r?Math.max(0,N-o-a):N,i=t?w.topLeft:w.bottomLeft,s=t?w.topRight:w.bottomRight,u=t?v:C,d=t?M:I;return c().createElement(y.Text,null,c().createElement(y.Text,{color:u,dimColor:d},i),a>0&&c().createElement(y.Text,{color:u,dimColor:d},w.horizontal.repeat(a)),r&&c().createElement(y.Text,{color:u,dimColor:d},n),l>0&&c().createElement(y.Text,{color:u,dimColor:d},w.horizontal.repeat(l)),c().createElement(y.Text,{color:u,dimColor:d},s))},[k,b,S,N,v,C,M,I,w]),j=(0,s.useMemo)(()=>F("top",!0),[F]),U=(0,s.useMemo)(()=>F("bottom",!1),[F]),H=(0,s.useMemo)(()=>{let e=[];for(let t=1;t<W;t++)e.push(c().createElement(y.Box,{key:`vertical-${t}`,flexDirection:"row",width:$,height:1},c().createElement(y.Box,{flexShrink:0,width:1},c().createElement(y.Text,{color:_,dimColor:O},w.vertical)),c().createElement(y.Box,{width:N}),c().createElement(y.Box,{flexShrink:0,width:1},c().createElement(y.Text,{color:A,dimColor:P},w.vertical))));return e},[W,$,N,_,A,O,P,w]);return c().createElement(y.Box,{flexDirection:"column",width:$,height:B},j,c().createElement(y.Box,{flexDirection:"column",width:$,height:W,flexGrow:1},c().createElement(y.Box,{flexDirection:"row",width:$,height:1,flexShrink:0},c().createElement(y.Box,{flexShrink:0,width:1},c().createElement(y.Text,{color:_,dimColor:O},w.vertical)),c().createElement(y.Box,{ref:R,width:N,height:W,...Object.assign({},{flexWrap:"nowrap",flexDirection:"row",flexGrow:0,flexShrink:1,overflowX:"visible",overflowY:"visible"},E)},h),c().createElement(y.Box,{flexShrink:0,width:1},c().createElement(y.Text,{color:A,dimColor:P},w.vertical))),H),U)};var k=r(63585),S=r(69738),v=r.n(S);let TextTruncateBox=({text:e,maxWidth:t,offset:r=0,position:n="end",...o})=>{let{terminalWidth:a}=(0,E._W)(),l=(0,s.useMemo)(()=>{if(!e)return"";let o=t??a-r;return o<=0?"":v()(e)>o?(0,k.A)(e,o,{position:n}):e},[e,t,r,a,n]);return c().createElement(u.Text,{...o},l)};var C=r(26112);let StatusLine=()=>{let{statusLine:e,isEnabled:t}=(0,g.xf)(),[r,n]=(0,s.useState)(0);return((0,s.useEffect)(()=>{let loadPadding=async()=>{try{let e=await (0,w.fq)().list();n(e.statusLine?.padding??0)}catch{}};loadPadding();let e=(0,w.fq)().onDidChange(()=>{loadPadding()});return()=>e.dispose()},[]),t&&e?.success&&e.text)?c().createElement(y.Box,{flexDirection:"column",paddingX:r},c().createElement(C.h,{text:e.text,offset:2*r,maxLines:3,dimColor:!0})):null};var _=r(55752);let A=c().memo(({messages:e,availableHeight:t,avgMessageHeight:r=2})=>{let n=Math.max(1,Math.floor((t-1)/r)),{displayMessages:o,hiddenCount:a}=(0,s.useMemo)(()=>e.length<=n?{displayMessages:e,hiddenCount:0}:{displayMessages:e.slice(0,n),hiddenCount:e.length-n},[e,n]);return 0===e.length?null:c().createElement(y.Box,{flexDirection:"column"},o.map((e,t)=>c().createElement(_.h,{key:`message-item-${e.id}-${t}-pending`,msg:e,expanded:!1})),a>0&&c().createElement(y.Text,{dimColor:!0},a," messages are hidden and waiting."))});r(8095);var M=r(93811);r(65003)},97202(e,t,r){var n=r(19806),o=r.n(n),a=r(16819),l=r(25576),i=r(34479);(0,n.memo)(e=>{let{value:t,onSubmit:r,onEscape:s,onChange:c,placeholder:u="",focus:d=!0,showCursor:m=!0,showPlaceholderWhenFocused:f=!1}=e,h=(0,n.useRef)(t),p=(0,n.useRef)(0),g=(0,n.useRef)(!1),[,E]=(0,n.useState)(0);(0,n.useEffect)(()=>{g.current||(h.current=t,g.current=!0)},[]);let w=(0,n.useCallback)(e=>{let{sequence:t}=e,n=i.$D.classifyInput(t);if(n.shouldBlock)return;let o=i.$D.handleSpecialKey(t);if(!o)return;let{input:a,key:l}=o,u=p.current,d=h.current,m=d.length;if(l.return){r&&r(d);return}if(l.escape){s&&s();return}if(l.leftArrow){p.current=Math.max(0,u-1),E(e=>e+1);return}if(l.rightArrow){p.current=Math.min(m,u+1),E(e=>e+1);return}if(l.home){p.current=0,E(e=>e+1);return}if(l.end){p.current=m,E(e=>e+1);return}if(l.backspace){if(u>0){let e=d.slice(0,u-1)+d.slice(u);h.current=e,p.current=u-1,c(e),E(e=>e+1)}return}if(l.delete){if(u<m){let e=d.slice(0,u)+d.slice(u+1);h.current=e,c(e),E(e=>e+1)}return}if(a&&n.type===i.NZ.NORMAL_TEXT){let e=d.slice(0,u)+a+d.slice(u);h.current=e,p.current=u+a.length,c(e),E(e=>e+1);return}},[c,r,s]);return(0,a.e)({focus:d,onParsedInput:w}),o().createElement(l.L,{value:h.current,cursorOffset:p.current,placeholder:u,showCursor:m,focus:d,showPlaceholderWhenFocused:f})})},64225(e,t,r){r.d(t,{Markdown:()=>a.o,SelectInput:()=>l.p,Spinner:()=>o.y$,getSnapshot:()=>o.dV,subscribeTick:()=>o.Yc});var n=r(11215);r.o(n,"Text")&&r.d(t,{Text:function(){return n.Text}}),r.o(n,"SelectInput")&&r.d(t,{SelectInput:function(){return n.SelectInput}}),r.o(n,"Box")&&r.d(t,{Box:function(){return n.Box}}),r.o(n,"Static")&&r.d(t,{Static:function(){return n.Static}}),r.o(n,"Markdown")&&r.d(t,{Markdown:function(){return n.Markdown}}),r.o(n,"useInput")&&r.d(t,{useInput:function(){return n.useInput}});var o=r(15297);r(57219),r(97202),r(25576);var a=r(14993),l=r(97394);r(36670)},14993(e,t,r){r.d(t,{o:()=>Markdown});var n=r(62279),o=r(11215),a=r(97855),l=r(19806),i=r.n(l),s=r(56421),c=r.n(s),u=r(33075),d=r.n(u),m=r(36031),f=r(80218),h=r(39457),p=r(80661),g=r(53052),E=r(36988),w=r(88890);function linkifyText(e){return m.A.isSupported?h.n.linkifyFilePaths(e):e}let y=!1;function configureMarked(){y||(y=!0,a.xI.use({tokenizer:{del(){}}}))}let Markdown=({content:e})=>{let{theme:t}=(0,E.DP)(),r=(0,f.useContextSelector)(g.Gb,e=>e.terminalWidth)||80;try{let n=(0,l.useMemo)(()=>applyMarkdown(e,t.colors,r),[e,t.colors,r]);return i().createElement(o.Text,null,n)}catch(t){return console.error("[Markdown] applyMarkdown failed, falling back to plain text.","content preview:",e?.slice(0,100),"error:",t),i().createElement(o.Text,null,e)}};function applyMarkdown(e,t,r){return configureMarked(),a.xI.lexer(e).map(e=>format(e,t,0,null,null,r)).join("").trim()}function format(e,t,r=0,o=null,a=null,l=80){try{switch(e.type){case"blockquote":{let r=(e.tokens??[]).map(e=>format(e,t,0,null,null,l)).join(""),n=p.T.chalk.dim("\u2502");return r.split("\n").map(e=>e.trim()?`${n} ${p.T.chalk.italic(e)}`:e).join("\n")}case"html":return(0,w.w)(e.text,"html");case"code":return(0,w.w)(e.text,e.lang)+"\n";case"codespan":return p.T.chalk.info(e.text);case"em":return p.T.chalk.italic((e.tokens??[]).map(e=>format(e,t,0,null,null,l)).join(""));case"strong":return p.T.chalk.bold((e.tokens??[]).map(e=>format(e,t,0,null,null,l)).join(""));case"heading":{let r=(e.tokens??[]).map(e=>format(e,t,0,null,null,l)).join("");switch(e.depth){case 1:return p.T.chalk.bold(p.T.chalk.italic(p.T.chalk.underline(r)))+"\n\n";case 2:return p.T.chalk.bold(p.T.chalk.info(r))+"\n\n";default:return p.T.chalk.bold(r)+"\n\n"}}case"hr":return"---";case"image":return e.href;case"link":{let r=(e.tokens??[]).map(r=>format(r,t,0,null,e,l)).join(""),n=d()(r);if(e.href.startsWith("mailto:"))return e.href.replace(/^mailto:/,"");if(n&&n!==e.href)return(0,m.A)(r,e.href,{fallback:!1});return p.T.chalk.info(e.href)}case"list":return e.items.map((n,o)=>format(n,t,r,e.ordered?e.start+o:null,e,l)).join("");case"list_item":return(e.tokens??[]).map(n=>`${" ".repeat(r)}${format(n,t,r+1,o,e,l)}`).join("");case"paragraph":return(e.tokens??[]).map(e=>format(e,t,0,null,null,l)).join("")+"\n";case"space":case"br":return"\n";case"text":if(a?.type==="list_item"){let i="-";i=a.task?a.checked?n.Ay.checkboxOn:n.Ay.checkboxOff:null===o?"-":getListNumber(r,o)+".";let s=e.tokens?e.tokens.map(n=>format(n,t,r,o,e,l)).join(""):e.text;return`${i} ${linkifyText(s)}
|
|
9
|
-
`}if(a?.type==="link")return e.text;return linkifyText(e.text);case"table":return formatTable(e,t,l);case"escape":return e.text}return""}catch(t){return console.error("[Markdown] format() failed for token type:",e.type,"error:",t),e.raw??e.text??""}}function formatCell(e,t,r){return e?.map(e=>format(e,t,0,null,null,r)).join("")??""}function getPlainWidth(e,t,r){return c()(d()(formatCell(e,t,r)))}function getMinWidth(e,t,r){let n=d()(formatCell(e,t,r)).split(/\s+/).filter(e=>e.length>0);return 0===n.length?3:Math.max(...n.map(e=>c()(e)),3)}function wrapText(e,t,r=!1){if(t<=0)return[e];let n=e.trimEnd().split("\n"),o=[];for(let e of n){if(c()(e)<=t){o.push(e);continue}let n=e.split(/(\s+)/),a="";for(let e of n)c()(a+e)>t&&a.trim()?(o.push(a.trimEnd()),a=/^\s+$/.test(e)?"":e):a+=e;if(a.trim()&&o.push(a.trimEnd()),r){let e=[];for(let r of o.splice(0))if(c()(r)<=t)e.push(r);else{let n=r;for(;c()(n)>t;){let r=0,o=0;for(let e of n){let n=c()(e);if(o+n>t)break;o+=n,r+=e.length}0===r&&(r=1),e.push(n.slice(0,r)),n=n.slice(r)}n&&e.push(n)}return e.length>0?e:[""]}}return o.length>0?o:[""]}function padAligned(e,t,r,n){let o=Math.max(0,r-t);if("center"===n){let t=Math.floor(o/2);return" ".repeat(t)+e+" ".repeat(o-t)}return"right"===n?" ".repeat(o)+e:e+" ".repeat(o)}function formatTable(e,t,r){let n=e.header.length;if(0===n)return"";try{let o,a=e.header.map((n,o)=>{let a=getMinWidth(n.tokens,t,r);for(let n of e.rows)a=Math.max(a,getMinWidth(n[o]?.tokens,t,r));return a}),l=e.header.map((n,o)=>{let a=Math.max(getPlainWidth(n.tokens,t,r),3);for(let n of e.rows)a=Math.max(a,Math.max(getPlainWidth(n[o]?.tokens,t,r),3));return a}),i=Math.max(r-(1+3*n)-4,3*n),s=a.reduce((e,t)=>e+t,0),c=l.reduce((e,t)=>e+t,0),u=!1;if(c<=i)o=l;else if(s<=i){let e=i-s,t=l.map((e,t)=>e-a[t]),r=t.reduce((e,t)=>e+t,0);o=a.map((n,o)=>0===r?n:n+Math.floor(t[o]/r*e))}else{u=!0;let e=i/s;o=a.map(t=>Math.max(Math.floor(t*e),3))}let d=1;for(let a=0;a<n;a++)d=Math.max(d,wrapText(formatCell(e.header[a].tokens,t,r),o[a],u).length);for(let n of e.rows)for(let e=0;e<n.length;e++)d=Math.max(d,wrapText(formatCell(n[e]?.tokens,t,r),o[e],u).length);if(d>4)return renderVerticalTable(e,t,r)+"\n";return renderHorizontalTable(e,t,r,o,u)+"\n"}catch(n){return console.error("[Markdown] formatTable failed, using fallback.","error:",n),renderFallbackTable(e,t,r)}}function renderFallbackTable(e,t,r){let n=[],o=e.header.map(e=>formatCell(e.tokens,t,r));for(let a of(n.push("| "+o.join(" | ")+" |"),n.push("| "+e.header.map(()=>"---").join(" | ")+" |"),e.rows)){let e=a.map(e=>formatCell(e?.tokens,t,r));n.push("| "+e.join(" | ")+" |")}return n.join("\n")+"\n"}function renderRowLines(e,t,r,n,o,a,l){let i=e.map((e,r)=>wrapText(formatCell(e.tokens,a,l),t[r],o)),s=Math.max(...i.map(e=>e.length),1),u=p.T.chalk.dim("\u2502"),m=[];for(let o=0;o<s;o++){let a=u;for(let l=0;l<e.length;l++){let e=i[l],s=o<e.length?e[o]:"",m=t[l],f=n?"center":r?.[l]??"left";a+=" "+padAligned(n?p.T.chalk.bold(s):s,c()(d()(s)),m,f)+" "+u}m.push(a)}return m}function renderBorderLine(e,t){let[r,n,o,a]={top:["\u250C","\u2500","\u252C","\u2510"],middle:["\u251C","\u2500","\u253C","\u2524"],bottom:["\u2514","\u2500","\u2534","\u2518"]}[e],l=r;return t.forEach((e,r)=>{l+=n.repeat(e+2),l+=r<t.length-1?o:a}),p.T.chalk.dim(l)}function renderHorizontalTable(e,t,r,n,o){let a=[];return a.push(renderBorderLine("top",n)),a.push(...renderRowLines(e.header,n,e.align,!0,o,t,r)),a.push(renderBorderLine("middle",n)),e.rows.forEach((l,i)=>{a.push(...renderRowLines(l,n,e.align,!1,o,t,r)),i<e.rows.length-1&&a.push(renderBorderLine("middle",n))}),a.push(renderBorderLine("bottom",n)),a.join("\n")+"\n"}function renderVerticalTable(e,t,r){let n=e.header.map(e=>d()(formatCell(e.tokens,t,r))),o=Math.min(r-1,40),a=p.T.chalk.dim("\u2500".repeat(o)),l=[];return e.rows.forEach((e,o)=>{o>0&&l.push(a),e.forEach((e,o)=>{let a=n[o]||`Column ${o+1}`,i=formatCell(e.tokens,t,r).trimEnd().replace(/\n+/g," ").replace(/\s+/g," ").trim();l.push(`${p.T.chalk.bold(a+":")} ${i}`)})}),l.join("\n")+"\n"}function numberToLetter(e){let t="";for(;e>0;)t=String.fromCharCode(97+--e%26)+t,e=Math.floor(e/26);return t}let b=[[1e3,"m"],[900,"cm"],[500,"d"],[400,"cd"],[100,"c"],[90,"xc"],[50,"l"],[40,"xl"],[10,"x"],[9,"ix"],[5,"v"],[4,"iv"],[1,"i"]];function numberToRoman(e){let t="";for(let[r,n]of b)for(;e>=r;)t+=n,e-=r;return t}function getListNumber(e,t){switch(e){case 0:case 1:default:return t.toString();case 2:return numberToLetter(t);case 3:return numberToRoman(t)}}},36670(e,t,r){r(94302)},94302(e,t,r){r(57975)},97394(e,t,r){r.d(t,{p:()=>u});var n=r(66026),o=r(57975),a=r(22019),l=r.n(a),i=r(62279),s=r(36988);function Indicator({isSelected:e=!1}){let{theme:t}=(0,s.DP)();return l().createElement(n.Box,{marginRight:1},e?l().createElement(n.Text,{color:t.colors.brand},i.Ay.pointer):l().createElement(n.Text,null," "))}function Item({isSelected:e=!1,label:t}){let{theme:r}=(0,s.DP)();return l().createElement(n.Text,{color:e?r.colors.brand:void 0},t)}var c=r(28806);function SelectInputComponent({items:e=[],isFocused:t=!0,initialIndex:r=0,indicatorComponent:i=Indicator,showIndicator:u=!0,itemComponent:d=Item,limit:m,disabledInputMode:f=[],disableLoop:h=!1,initialValue:p,onSelect:g,onHighlight:E}){let{terminalWidth:w}=(0,s._W)(),y="number"==typeof m&&e.length>m,b=y?Math.min(m,e.length):e.length,x=(0,a.useMemo)(()=>(0,c.hE)(e,r,p),[p,r,e]),[T,k]=(0,a.useState)(x),[S,v]=(0,a.useState)(()=>{if(!y)return 0;let t=Math.max(0,x-(b-1));return Math.min(t,Math.max(0,e.length-b))}),C=(0,a.useRef)(e);(0,a.useEffect)(()=>{if(!(0,o.isDeepStrictEqual)(C.current.map(e=>e.value),e.map(e=>e.value))){let t=(0,c.hE)(e,0,p);if(k(t),y){let r=Math.max(0,t-(b-1));v(r=Math.min(r,Math.max(0,e.length-b)))}else v(0)}C.current=e},[e,p,y,b]);let _=(0,a.useMemo)(()=>!f?.includes("number"),[f]),A=(0,a.useMemo)(()=>!f?.includes("vim"),[f]);(0,a.useEffect)(()=>{if(!y)return;let t=(0,c.L6)(T,S,b,e.length);t!==S&&v(t)},[T,S,y,b,e.length]);let M=(0,a.useMemo)(()=>{let t=Math.max(0,S);return e.slice(t,t+b)},[e,S,b]);(0,n.useInput)((0,a.useCallback)((t,r)=>{if((A&&"k"===t||r.upArrow)&&k((0,c.oy)(e,T,"up",h)),(A&&"j"===t||r.downArrow)&&k((0,c.oy)(e,T,"down",h)),_&&/^[1-9]$/.test(t)){let r=Number.parseInt(t,10)-1;if(r>=0&&r<M.length){let t=e[Math.max(0,S)+r];t&&!t.disabled&&g?.(t)}}if(r.return&&g){let t=e[T];t&&!t.disabled&&g(t)}},[T,e,M,S,h,A,_,g]),{isActive:t});let I=M.length>0?Math.max(...M.map(e=>e.label.length)):0;return I+2>=w&&(I=w-8),(0,a.useEffect)(()=>{E&&e[T]&&E(e[T])},[T,e,E]),l().createElement(n.Box,{flexDirection:"column"},M.map((e,t)=>{let r=Math.max(0,S)+t===T;return l().createElement(n.Box,{key:e.key??e.value},u&&l().createElement(i,{isSelected:r}),l().createElement(d,{...e,index:t,isSelected:r,maxLabelLength:I}))}))}let u=l().memo(SelectInputComponent)},57219(e,t,r){var n=r(19806),o=r.n(n),a=r(88523),l=r(53052),i=r(55425),s=r(16819),c=r(25576);function shouldCtrlDDeleteAfterCursor(e,t,r){return e&&t>0&&r<t}function getCtrlTextBoundaryScope(e,t,r){return e&&t&&!r?"line":"document"}var u=r(32894),d=r(26210),m=r(34479),f=r(88415),h=r(94859),p=r(2769),g=r(36988),E=r(62909),w=r(28806);(0,n.memo)(e=>{let{placeholder:t="",focus:r=!0,mask:y,showCursor:b=!0,initialValue:x="",disabledShortcuts:T=[],multiline:k=!1,searchHighlight:S,showPlaceholderWhenFocused:v,onSubmit:C,onHistoryNavigation:_,onEscape:A,onPaste:M,onTabKey:I,onDeleteEmpty:O,onEditPrompt:P,onVimAction:R,onUndo:D,onSwitchModel:L,onCopyLastMessage:$,onThinkingToggle:B,onEditQueue:N,onLeftArrowOnEmpty:W}=e,{state:F,dispatch:j,actions:U}=(0,l.R7)(),{isMenuActive:H}=(0,p.E)(),{suggestions:G,checkAndClearSentFromSuggestion:V}=(0,l.p3)(),K=(0,i.PK)(),{vimState:J}=(0,l.J5)(),{isSurveyOpen:q}=(0,l.s1)(),Y=(0,n.useRef)(q);(0,n.useEffect)(()=>{Y.current=q},[q]);let X=(0,n.useRef)(F);X.current=F,(0,n.useEffect)(()=>{x&&F.value!==x&&U.setValue(x)},[]);let z=(0,g.Lu)(F.value,F.cursorOffset,F.currentLine,U,k);(0,n.useEffect)(()=>{let e=(0,i.QI)().atMentionedSubject.subscribe(e=>{if(!e||!e.filePath)return;let{filePath:t,lineStart:r,lineEnd:n}=e,o=t;try{let e=f.P.getWorkDir();o=f.P.getRelativePath(t,e)||t}catch{}let a="";void 0!==r&&void 0!==n?a=`L${r+1}-${n+1}`:void 0!==r?a=`L${r+1}`:void 0!==n&&(a=`L${n+1}`);let l=a?`@${o}#${a}`:`@${o}`;ed(`${l} `)});return()=>e.unsubscribe()},[U]);let Z=(0,n.useRef)(null),Q=(0,n.useRef)(0),ee=(0,n.useRef)(!1),et=(0,n.useRef)(null),er=(0,n.useRef)(null),en=(0,n.useRef)(!1),eo=(0,n.useRef)(!1),ea=(0,n.useCallback)(()=>{Z.current&&(clearTimeout(Z.current),Z.current=null)},[]),el=(0,n.useCallback)(e=>{ee.current=e,U.setCoalescing(e)},[U]),ei=(0,n.useCallback)(()=>{et.current&&(clearTimeout(et.current),et.current=null),er.current&&(clearTimeout(er.current),er.current=null),en.current=!1,U.removeState(E.W_.WINDOWS_PASTE_HINT)},[U]),es=(0,n.useCallback)(async(e,t=!0)=>{let r=d.YF.formatInput(e,{preserveEsc:!0,preserveTabs:!0});ed(await K.processPasteWithImageDetection(r,t))},[U,K]),ec=(0,n.useCallback)(()=>{if(Q.current=Date.now(),Z.current)return;let flushWhenIdle=()=>{(async()=>{let e=80-(Date.now()-Q.current);if(e>0){Z.current=setTimeout(flushWhenIdle,e);return}Z.current=null;let t=K.flushCoalesce();t&&await es(t,!1),ee.current&&el(!1),ei()})().catch(e=>{console.error("Failed to flush coalesced paste",e),Z.current=null,el(!1)})};Z.current=setTimeout(flushWhenIdle,80)},[K,es,el,ei]),eu=(0,n.useCallback)(e=>["h","j","k","l","w","b","e","0","$","^","G","x","d","c","D","C",".","i","a","I","A","o","O","g"].includes(e),[]),ed=(0,n.useCallback)(e=>{if(J.isEnabled&&J.mode===l.g3.NORMAL){R&&eu(e)&&R(e);return}U.insertText(e)},[J.isEnabled,J.mode,R,eu,U]),em=(0,n.useCallback)(()=>{a.isWindows&&!en.current&&(en.current=!0,U.pushState(E.W_.WINDOWS_PASTE_HINT),er.current=setTimeout(()=>{er.current=null,en.current=!1,U.removeState(E.W_.WINDOWS_PASTE_HINT)},1e4))},[U]),ef=(0,n.useCallback)(()=>{!a.isWindows||en.current||et.current||(et.current=setTimeout(()=>{et.current=null,ee.current&&em()},250))},[em]),eh=(0,n.useCallback)(async()=>{if(!a.isWindows)return!1;eo.current=!0;try{let e=await u.E.readTextFromClipboard();if(!e)return!1;return ea(),K.flushCoalesce(),ei(),el(!1),await es(e,!1),!0}finally{eo.current=!1}},[ea,ei,K,es,el]),ep=(0,n.useCallback)(async(e,t)=>{let{value:r,cursorOffset:n}=F;for(let r of T)if(r(e,t))return;let o=w.X$.isCommandOrFileMenuContextActive(r,F.states,n)&&G.length>0,l=H&&!w.X$.includeDefault(F.states);if(t.tab&&!t.shift){if(o)return;if(I)return void I()}if(B&&t.meta&&!t.ctrl&&"t"===e)return void B();if(!o&&!l){if(t.upArrow&&t.meta&&N)return void N();if(t.upArrow&&!t.shift)return void(k?!z.moveToLineAbove()&&_&&_("up"):_?.("up"));if(t.downArrow&&!t.shift)return void(k?!z.moveToLineBelow()&&_&&_("down"):_&&_("down"))}if(t.leftArrow){if(t.ctrl)U.moveCursor(0);else if(t.meta)U.moveToPreviousWord();else if(t.shift){let e=h.$.moveToPreviousChar(r,n);U.moveCursor(e)}else if(W&&""===r)W();else{let e=h.$.moveToPreviousChar(r,n);U.moveCursor(e)}return}if(t.rightArrow){if(t.ctrl)U.moveCursor(r.length);else if(t.meta)U.moveToNextWord();else{let e=h.$.moveToNextChar(r,n);U.moveCursor(e)}return}if(t.ctrl||t.meta){if(t.meta&&t.backspace)return void U.deletePreviousWord();if(t.meta&&t.delete)return void U.deleteNextWord();switch(e){case"w":t.ctrl&&U.deletePreviousWord();return;case"v":if(t.meta&&await eh())return;M?.();return;case"a":j({type:"MOVE_TO_TEXT_BOUNDARY",payload:{boundary:"start",scope:getCtrlTextBoundaryScope(k,t.ctrl,t.meta)}});return;case"e":j({type:"MOVE_TO_TEXT_BOUNDARY",payload:{boundary:"end",scope:getCtrlTextBoundaryScope(k,t.ctrl,t.meta)}});return;case"k":if(k){let{lineIndex:e}=z.getCurrentLineInfo(),t=z.getOffsetFromLineColumn(e,z.lines[e].length);U.deleteToLineEnd(t)}else U.deleteToLineEnd(r.length);return;case"u":case"c":if(k){let{lineIndex:e}=z.getCurrentLineInfo(),t=z.getOffsetFromLineColumn(e,0);U.deleteToLineStart(t)}else U.deleteToLineStart(0);return;case"j":t.ctrl&&k&&U.insertNewline();return;case"g":t.ctrl&&P?.();return;case"p":if(t.meta)return void L?.();break;case"-":case"\x1f":(t.ctrl||t.meta)&&D?.();return;case"y":t.ctrl&&$?.();return;case"b":if(t.ctrl){let e=h.$.moveToPreviousChar(r,n);U.moveCursor(e)}return;case"f":if(t.ctrl){let e=h.$.moveToNextChar(r,n);U.moveCursor(e);return}break;case"t":case"r":case"o":return;case"d":shouldCtrlDDeleteAfterCursor(t.ctrl,r.length,n)&&U.deleteAfterCursor();return;case"m":if(a.isWindows&&t.meta)return}}if(t.escape)return void A?.();if(t.return){if(V())return;let{value:e,cursorOffset:r,states:n}=X.current;if(w.X$.isCommandOrFileMenuContextActive(e,n,r)&&G.length>0)return;let o=e.slice(0,r).endsWith("\\");if(k&&(t.shift||o)){o&&U.deleteBeforeCursor(),U.insertNewline();return}C?.(e);return}if(t.backspace)return t.ctrl||t.meta||t.shift?void 0:0===n&&0===r.length?void O?.():void(0===n||U.deleteBeforeCursor());if(t.delete)return t.ctrl||t.meta||t.shift?void 0:0===n&&0===r.length?void O?.():void(n>=r.length||U.deleteAfterCursor());if(t.home){if(k){let{lineIndex:e}=z.getCurrentLineInfo(),t=z.getOffsetFromLineColumn(e,0);U.moveCursor(t)}else U.moveCursor(0);return}if(t.end){if(k){let{lineIndex:e,line:t}=z.getCurrentLineInfo(),r=z.getOffsetFromLineColumn(e,t.length);U.moveCursor(r)}else U.moveCursor(r.length);return}e&&(ed(e),U.selectSuggestion(-1))},[F,j,U,T,H,G,z,k,I,_,M,eh,A,C,O,P,D,L,$,B,N,W,V]),eg=(0,n.useCallback)(async e=>{let{sequence:t,isPasted:r}=e;if(!r&&t&&eo.current&&t.length>1)return;if(r){let e=K.flushCoalesce();e&&await es(e,!1),ea(),await es(t,!0),el(!1),ei();return}let n=m.$D.classifyInput(t);if(n.shouldBlock)return;if("\u03C0"===t)return void L?.();if("\u2020"===t)return void B?.();if(Y.current&&("0"===t||"1"===t||"2"===t||"3"===t))return;if(n.type===m.NZ.NORMAL_TEXT&&t){let e=K.addToCoalesce(t);if(e.buffer){let t=d.YF.computePastedLineCount(e.buffer);e.buffer.length>1024||t>3?await es(e.buffer,!1):ed(d.YF.formatInput(e.buffer))}else ec(),ee.current||el(!0),ef();return}let o=m.$D.handleSpecialKey(t);if(!o)return;let{input:l,key:i}=o;if(a.isWindows&&"v"===l&&i.meta)return void await ep(l,i);let s=K.flushCoalesce();s&&await es(s,!1),ea(),el(!1),ei(),await ep(l,i)},[K,es,ec,ef,ea,ei,el,ep,L,B]);return((0,n.useEffect)(()=>()=>{Z.current&&clearTimeout(Z.current),et.current&&clearTimeout(et.current),er.current&&clearTimeout(er.current)},[]),(0,s.e)({focus:r,onParsedInput:eg}),k)?o().createElement(c.L,{value:F.value,cursorOffset:F.cursorOffset,placeholder:t,showCursor:b,focus:r,multiline:!0,mask:y,lines:z.lines,lineOffsets:z.lineOffsets,searchHighlight:S,showPlaceholderWhenFocused:v}):o().createElement(c.L,{value:F.value,cursorOffset:F.cursorOffset,placeholder:t,showCursor:b,focus:r,mask:y,searchHighlight:S,showPlaceholderWhenFocused:v})})},25576(e,t,r){r.d(t,{L:()=>l});var n=r(11215),o=r(19806),a=r.n(o);function markImeCaret(e){return`\u001b[999m${e}`}let applySearchHighlight=(e,t)=>{if(!t||!t.query)return e;let{query:r}=t,n=e.toLowerCase(),o=r.toLowerCase(),a=n.indexOf(o);if(-1===a)return e;let l=e.substring(0,a),i=e.substring(a,a+r.length),s=e.substring(a+r.length);return`${l}\u001b[33m${i}\u001b[39m${s}`},l=(0,o.memo)(e=>{let{value:t,cursorOffset:r,placeholder:l,showCursor:i=!0,focus:s=!0,multiline:c=!1,mask:u,lines:d,lineOffsets:m,searchHighlight:f,showPlaceholderWhenFocused:h=!1}=e,p=(0,o.useMemo)(()=>u?u.repeat(t.length):t,[t,u]);if(!c){let e=(0,o.useMemo)(()=>((e,t,r,n,o,a,l)=>{if(a?.query)return!e&&o?o:applySearchHighlight(e,a);if(!r||!n)return!e&&o?`\u001b[2m${o}\u001b[22m`:e;if(0===e.length){if(l&&o){let e=o[0]||" ",t=o.slice(1);return`${markImeCaret(`\u001b[7m${e}\u001b[27m`)}\u001b[2m${t}\u001b[22m`}return markImeCaret("\x1b[7m \x1b[27m")}let i="";for(let r=0;r<e.length;r++)r===t?i+=markImeCaret(`\u001b[7m${e[r]}\u001b[27m`):i+=e[r];return t===e.length&&(i+=markImeCaret("\x1b[7m \x1b[27m")),i})(p,r,i,s,l,f,h),[p,r,i,s,l,f,h]);return a().createElement(n.Box,null,a().createElement(n.Text,null,e))}return d&&m?a().createElement(n.Box,{flexDirection:"column"},a().createElement(n.Box,{flexDirection:"column"},d.map((e,o)=>{let{startOffset:c,endOffset:u}=m[o],d=e;if(f?.query&&(d=applySearchHighlight(d,f)),i&&s&&!f?.query&&r>=c&&r<=u&&(d=((e,t)=>{if(0===e.length)return 0===t?markImeCaret("\x1b[7m \x1b[27m"):"";let r="",n=0;for(;n<e.length;)if(n===t&&t<e.length){let t=e.charCodeAt(n);if(t>=55296&&t<=56319&&n+1<e.length){let t=e.charCodeAt(n+1);if(t>=56320&&t<=57343){r+=markImeCaret(`\u001b[7m${e[n]}${e[n+1]}\u001b[27m`),n+=2;continue}}r+=markImeCaret(`\u001b[7m${e[n]}\u001b[27m`),n++}else r+=e[n],n++;return t>=e.length&&(r+=markImeCaret("\x1b[7m \x1b[27m")),r})(e,r-c)),0===o&&l&&0===t.length)if(h&&i&&s){let e=l[0]||" ",t=l.slice(1);d=`${markImeCaret(`\u001b[7m${e}\u001b[27m`)}\u001b[2m${t}\u001b[22m`}else i&&s||(d=`\u001b[2m${l}\u001b[22m`);return d||0!==e.length||(d=" "),a().createElement(n.Text,{key:`${o}-${d||e}-render`},d||e)}))):null})},65003(e,t,r){r(64225),r(53052),r(31349),r(55425)},19222(e,t,r){r(53052),r(36988)},93811(e,t,r){r.d(t,{L:()=>SeparatorBox});var n=r(89223),o=r.n(n),a=r(64225),l=r(36988);let SeparatorBox=({text:e,separatorChar:t="-"})=>{let{columns:r}=(0,l.HP)(),n=Math.max(0,r-e.length-2),i=Math.floor(n/2);return o().createElement(a.Box,{marginTop:1,marginBottom:0},o().createElement(a.Text,{dimColor:!0},t.repeat(Math.max(0,i))," ",e," ",t.repeat(Math.max(0,n-i))))}},15297(e,t,r){r.d(t,{Yc:()=>subscribeTick,dV:()=>getSnapshot,y$:()=>d});var n=r(89223),o=r.n(n),a=r(50022),l=r(51473),i=r.n(l);let s=0,c=null,u=new Set;function startTicking(){c||"function"==typeof(c=setInterval(()=>{for(let e of(s++,u))e()},80)).unref&&c.unref()}function stopTicking(){c&&0===u.size&&(clearInterval(c),c=null)}function subscribeTick(e){return u.add(e),startTicking(),()=>{u.delete(e),stopTicking()}}function getSnapshot(){return s}let d=o().memo(({type:e="dots"})=>{let t=(0,n.useSyncExternalStore)(subscribeTick,getSnapshot),r=i()[e]??i().dots,l=r.frames.length;return o().createElement(a.Text,null,r.frames[t%l])});d.displayName="Spinner"},8095(e,t,r){r(53052),r(36988),r(14274),r(64225)},26112(e,t,r){r.d(t,{h:()=>TextWrapBox});var n=r(39457),o=r(89223),a=r.n(o),l=r(69738),i=r.n(l),s=r(36988),c=r(64225);function splitWrapWords(e){return e.match(/(?:"[^"]*"|'[^']*')\S*|\S+/gu)??[]}let TextWrapBox=({text:e,maxWidth:t,offset:r=0,wordBreak:l="normal",rowBackground:u=!1,maxLines:d,ellipsis:m=!1,ellipsisText:f,linkifyFilePaths:h=!1,linkCwd:p,...g})=>{let{terminalWidth:E}=(0,s._W)(),w=(0,o.useMemo)(()=>t??E-r,[r,t,E]),y=(0,o.useMemo)(()=>{if(!e||w<=0)return[e||""];let t=[];for(let r of e.split(/\r?\n/)){if(!r){t.push("");continue}if("break-all"===l){let e="";for(let n of r)i()(e)>=w?(t.push(e),e=n):e+=n;e&&t.push(e)}else{let e=splitWrapWords(r),o="";for(let r of e)if(i()(r)>w){if(h&&n.n.linkifyFilePaths(r,p)!==r){o.trim()&&t.push(o.trim()),t.push(r),o="";continue}o&&(t.push(o.trim()),o="");let e=r;for(;i()(e)>w;){let r=0,n="";for(let t of e){if(i()(n+t)>w)break;n+=t,r++}t.push(n),e=e.substring(r)}e&&(o=e+" ")}else{let e=o+r+" ";i()(e)>w&&o.trim()?(t.push(o.trim()),o=r+" "):o=e}o.trim()&&t.push(o.trim())}}let r=t.length>0?t:[""];if(void 0!==d&&r.length>d){let e=r.filter(e=>e.trim()),t=r.length,n=e.slice(0,d),o=t-d;r=m&&o>0?[...n,f?f(o):`... ${o} more lines`]:n}return r},[e,w,l,d,m,f,h,p]),{color:b,dimColor:x,bold:T,italic:k,underline:S,strikethrough:v,inverse:C,wrap:_,...A}=g,M={color:b,dimColor:x,bold:T,italic:k,underline:S,strikethrough:v,inverse:C,wrap:_};return a().createElement(c.Box,{flexDirection:"column"},y.map((e,t)=>{let r=h?n.n.linkifyFilePaths(e,p):e,o=a().createElement(c.Text,{key:`${t}-${e}-text`,...M},r);return e.trim()?u?a().createElement(c.Box,{key:`${t}-${e}-row`,alignSelf:"flex-start",...A},o):o:a().createElement(c.Box,{key:`${t}-${e}-empty`,height:1})}))}},62909(e,t,r){var n,o,a,l;r.d(t,{W_:()=>o,zC:()=>n}),r(13866),(a=n||(n={})).CURRENT_APPECT="current_accpet",a.ALWAYS_APPECT="always_accept",a.ALWAYS_APPECT_PROJECT_LOCAL="always_accept_project_local",a.APPECT_AND_SWITCH_TO_AUTO_ACCEPT="accept_and_switch_to_auto_accept",a.ACCEPT_AND_SWITCH_TO_MANUAL_EDITS="accept_and_switch_to_manual_edits",a.REJECT="reject",a.REJECT_AND_EXIT_PLAN="reject_and_exit_plan",a.VIEW_RAW_SCRIPT="view_raw_script",(l=o||(o={})).HELP="help",l.BASH="bash",l.MEMORY="memory",l.KEY_PRESS="key-press",l.MENU="menu",l.NO_IMAGE_HINT="no-image-hint",l.PASTE_HINT="paste-hint",l.CLIPBOARD_COMPATIBILITY_ERROR="clipboard-compatibility-error",l.UPDATE_NOTIFICATION="update-notification",l.THINKING="thinking",l.IMAGE_NOT_SUPPORTED="image-not-supported",l.VIM_INSERT_MODE="vim-insert-mode",l.REVERSE_SEARCH="reverse-search",l.COPY_SUCCESS="copy-success",l.COPY_FAILED="copy-failed",l.COPY_NO_MESSAGE="copy-no-message",l.WINDOWS_PASTE_HINT="windows-paste-hint"},91192(e,t,r){r.d(t,{aO:()=>o});var n=r(26792);r(20991),r(55425),r(19175);let o=(0,n.createContext)({})},49188(e,t,r){r.d(t,{r:()=>o});var n=r(26792);r(36988),r(568),r(99601),r(13389),r(31349);let o=(0,n.createContext)({})},77153(e,t,r){r.d(t,{s1:()=>useFeedbackSurveyContext});var n=r(26792),o=r(35717);let a=(0,n.createContext)({}),useFeedbackSurveyContext=()=>({isSurveyOpen:(0,n.useContextSelector)(a,e=>e.surveyState===o.Ij.OPEN)})},53052(e,t,r){r.d(t,{i9:()=>useChatHeaderContext,xf:()=>useStatusLineContext,R7:()=>input_reducer_context_useInputReducerContext,p3:()=>useSuggestionContext,LV:()=>layout_context_useLayoutContext,Mp:()=>y.M,vg:()=>useInputHistoryContext,s1:()=>E.s1,aO:()=>m.aO,J5:()=>w.J5,Gb:()=>d.G,Gk:()=>a,g3:()=>w.g3,Lg:()=>i.L,rZ:()=>s.r});var n,o,a,l,i=r(31349),s=r(49188),c=r(46824);(n=a||(a={})).INPUT_BOTTOM="input-bottom",n.TOP="top",n.Input="input",a.INPUT_BOTTOM,a.TOP,a.Input;let u=(0,c.createContext)({}),layout_context_useLayoutContext=()=>(0,c.useContext)(u);var d=r(19175);r(57318);var m=r(91192);r(55882),r(55425);let f=(0,c.createContext)({}),useStatusLineContext=()=>(0,c.useContext)(f);r(62909),r(60966);let h=(0,c.createContext)({}),input_reducer_context_useInputReducerContext=()=>{let e=(0,c.useContext)(h);if(!e)throw Error("useInputReducerContext must be used within InputReducerProvider");return e},p=(0,c.createContext)(void 0),useInputHistoryContext=()=>{let e=(0,c.useContext)(p);if(!e)throw Error("useInputHistoryContext must be used within InputHistoryProvider");return e},g=(0,c.createContext)({}),useChatHeaderContext=()=>(0,c.useContext)(g);r(88523),r(67662),r(63295),r(66936),r(23701),r(79803),r(94816),(0,c.createContext)(void 0),(o=l||(l={})).CTRL_C="CTRL_C",o.CTRL_D="CTRL_D",(0,c.createContext)(void 0);var E=r(77153),w=r(94309),y=r(15298);r(8153),r(4433),r(44302),r(8076),r(15538);let b=(0,c.createContext)(null),useSuggestionContext=()=>{let e=(0,c.useContext)(b);if(!e)throw Error("useSuggestionContext must be used within SuggestionProvider");return e}},28429(e,t,r){r.d(t,{r:()=>n});let n={current:null}},57318(e,t,r){(0,r(46824).createContext)({})},31349(e,t,r){r.d(t,{L:()=>useSessionContext});var n=r(46824);r(55425);let o=(0,n.createContext)({}),useSessionContext=()=>(0,n.useContext)(o)},15298(e,t,r){r.d(t,{M:()=>useSettingsContext});var n=r(46824);r(55425);let o=(0,n.createContext)({hookOutputCollapsed:!1,leftArrowOpensAgents:!0}),useSettingsContext=()=>(0,n.useContext)(o)},19175(e,t,r){r.d(t,{G:()=>o});var n=r(26792);r(60114);let o=(0,n.createContext)({})},55882(e,t,r){r.d(t,{d:()=>useThemeContext}),r(88523);var n=r(46824);r(36898);let o=(0,n.createContext)({}),useThemeContext=()=>(0,n.useContext)(o)},94309(e,t,r){r.d(t,{J5:()=>useVimContext,Nj:()=>useOptionalVimContext,g3:()=>o});var n,o,a=r(46824);r(55425),(n=o||(o={})).NORMAL="NORMAL",n.INSERT="INSERT";let l=(0,a.createContext)({}),useVimContext=()=>{let e=(0,a.useContext)(l);if(!e)throw Error("useVimContext must be used within a VimProvider");return e},useOptionalVimContext=()=>(0,a.useContext)(l)},94816(e,t,r){r(72314)},36988(e,t,r){r.d(t,{HP:()=>h.H,Ng:()=>useThinkingState,Om:()=>f,QC:()=>X.Q,Lu:()=>useInputMultiline,ok:()=>T.X,Z:()=>useSyncTaskProgress,mM:()=>useTokenTracking,tQ:()=>useCoordinatorWorkers,VK:()=>useLoadingPhrase,EH:()=>p.E,_W:()=>h._,qt:()=>useIsMultitaskCoordinator,DP:()=>M.D});var n,o,a,l,i,s,c,u,d,m=r(88523);let f=Object.freeze({CTRL_R:(e,t)=>t.ctrl&&"r"===e,CTRL_C:(e,t)=>t.ctrl&&"c"===e,CTRL_U:(e,t)=>t.ctrl&&"u"===e,CTRL_O:(e,t)=>t.ctrl&&"o"===e,CTRL_E:(e,t)=>t.ctrl&&"e"===e,CTRL_G:(e,t)=>t.ctrl&&"g"===e,CTRL_Y:(e,t)=>t.ctrl&&"y"===e,SHIFT_TAB:(e,t)=>m.isWindows?t.shift&&t.tab||t.meta&&"m"===e:t.shift&&t.tab,PASTE:e=>e.startsWith("[200~"),RETURN:e=>e.return,ESCAPE:e=>e.escape,TAB:e=>e.tab,DELETE:e=>e.delete,KEY_R:e=>"r"===e,KEY_P:e=>"p"===e,SHIFT_UP:(e,t)=>t.shift&&t.upArrow,SHIFT_DOWN:(e,t)=>t.shift&&t.downArrow});var h=r(60114),p=r(2769);r(4433),r(44302),r(8076);var g=r(55425);r(8153);var E=r(93001);let useLoadingPhrase=e=>{let[t,r]=(0,E.useState)(y[0]);return(0,E.useEffect)(()=>{let t;return e&&(t=setInterval(()=>{let e=Math.floor(Math.random()*y.length);r(y[e])},w)),()=>{t&&clearInterval(t)}},[e]),t},w=5e3,y=["Waking","Booting","Scanning","Charging","Updating","Syncing","Processing","Browsing","Calculating","Pairing","Beeping","Blinking","Rotating","Rolling","Spinning","Buzzing","Streaming","Fetching","Sending","Initializing","Cleaning","Tidying","Delivering","Sorting","Cooking","Mixing","Sweeping","Greeting","Recording","Measuring","Adapting","Repairing","Learning","Analyzing","Linking","Watching","Mapping","Waving","Dancing","Listening","Mimicking","Protecting","Exploring","Tuning","Ticking","Dreaming","Resetting","Upgrading","Notifying","Printing","Testing","Charging","Refreshing","Suggesting","Observing","Hovering","Locating","Syncing","Joking","Chilling","Reporting","Following","Guiding","Celebrating","Reminding","Logging","Flashing","Swiping","Calling","Connecting","Greeting","Zooming","Detecting","Monitoring"];r(99601),r(568);var b=r(53052);let useTokenTracking=e=>{let{session:t}=(0,b.Lg)(),r=void 0===e?t:e,[n,o]=(0,E.useState)(0),[a,l]=(0,E.useState)(0),[i,s]=(0,E.useState)(0);return(0,E.useEffect)(()=>{if(!r){o(0),l(0),s(0);return}let e=[r.inputSubject.subscribe(e=>{if(s(r.usage.totalTokens),!e._fromSubAgent&&(o(0),l(0),"function_call_result"===e.type)){let t=e.output;if("object"==typeof t&&"text"in t&&t?.type==="text"){let e=Math.ceil(t.text.length/4);o(t=>t+e)}}}),r.resultSubject.subscribe(e=>{e&&(o(0),l(0))}),r.modelSubject.subscribe(async e=>{if("model"===e.type&&e.event?.choices?.length){let t=0;for(let r of e.event.choices){let e=r.delta;if(e&&(t+=e.content?.length||0,t+=e.reasoning_content?.length||0,e.tool_calls?.length))for(let r of e.tool_calls)t+=r.function?.name?.length||0,t+=r.function?.arguments?.length||0}let r=Math.ceil(t/4);l(e=>e+r)}})];return s(r.usage.totalTokens),()=>e.forEach(e=>e.unsubscribe())},[r]),{turnInputTokens:n,turnOutputTokens:a,totalTokens:i}};r(90777);var x=r(67662);r(89634),r(91192),r(5100),r(11223),r(19849),r(34559);var T=r(99455);r(64152),r(13389);var k=r(28806);let S=!1,v=!1,C=0,_=new Set;function notify(){for(let e of(C++,_))e()}function use_thinking_state_subscribe(e){return _.add(e),()=>{_.delete(e)}}function use_thinking_state_getSnapshot(){return C}let A=!1;async function initSharedState(){if(!A){A=!0;try{S=await (0,g.fq)().get("alwaysThinkingEnabled")||!1}catch{S=!1}try{let e=await (0,g.zb)().getDefault();v=(await (0,g.zb)().getModel(e.name)).supportsReasoning||!1}catch{v=!1}notify(),(0,g.fq)().onDidChange(async()=>{try{let e=await (0,g.fq)().get("alwaysThinkingEnabled");S!==(e||!1)&&(S=e||!1,notify())}catch{}})}}let useThinkingState=e=>{(0,E.useEffect)(()=>{initSharedState()},[]),(0,E.useSyncExternalStore)(use_thinking_state_subscribe,use_thinking_state_getSnapshot);let t=k.X$.includeDefault(e),r=S&&v&&t,n=v&&t,o=(0,E.useCallback)(async()=>{let e=!S;S=e,notify(),await (0,g.fq)().set("alwaysThinkingEnabled",e)},[]);return{alwaysThinkingEnabled:S,modelSupportsThinking:v,isThinkingActive:r,shouldShowThinkingStatus:n,toggleThinking:o}};var M=r(11369);r(67465);var I=r(51147),O=r(92735),P=r(17611),R=r(59707),D=r(71114),L=r(49726),$=r(40587),B=r(39295),N=r(95235),W=r(89799),F=r(24463);let j=Symbol("PromptSuggestionService");var __decorate=function(e,t,r,n){var o,a=arguments.length,l=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)l=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(o=e[i])&&(l=(a<3?o(l):a>3?o(t,r,l):o(t,r))||l);return a>3&&l&&Object.defineProperty(t,r,l),l},__metadata=function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};let U=`You are now a prompt suggestion generator. The conversation above is context - your job is to suggest what CodeBuddy could help with next.
|
|
8
|
+
(deleted)`,u=`${o}#delete-${t}`);let d=g.i.getPatch({filePath:u,oldStr:i,newStr:s,fileContents:i});return p().createElement(c.bm,{filePath:u,structuredPatch:d,...a})}let l=ensureNewlineAtEnd(n.old_string??""),i=ensureNewlineAtEnd(n.new_string??""),s=g.i.getPatch({filePath:o,oldStr:l,newStr:i,fileContents:l});return p().createElement(c.bm,{filePath:o,structuredPatch:s,...a})},EnterPlanModeToolCall=({providerData:e})=>{let{theme:t}=(0,d.DP)(),{toolResult:r}=e||{};return r?.error==="User declined to enter plan mode"?null:p().createElement(u.Box,{flexDirection:"column",paddingLeft:1},p().createElement(u.Text,{color:t.colors.secondary},"CodeBuddy is now exploring and designing an implementation approach."))};var E=r(53052);let ExitPlanModeToolCall=({providerData:e})=>{let{content:t,error:r}=e?.toolResult||{},{session:n}=(0,E.Lg)(),[o,a]=(0,h.useState)(void 0);(0,h.useEffect)(()=>{t||r||(0,f.Uy)().read(n).then(e=>{e&&a(e)}).catch(()=>{})},[t,r]);let l=t||o;return p().createElement(u.Box,{flexDirection:"column"},r?p().createElement(u.Markdown,{content:`Error: ${r}`}):l?p().createElement(u.Markdown,{content:l}):p().createElement(u.Markdown,{content:"Loading plan..."}))},ListToolCall=({value:e,title:t,expanded:r})=>{let{theme:o}=(0,d.DP)(),a="string"==typeof e,l=a?[]:e,i=a?e:l.join("\n");return p().createElement(u.Text,null,r&&(a||l.length)?p().createElement(u.Text,{color:o.colors.secondary},i):p().createElement(u.Text,{color:o.colors.secondary},t," ",a||l.length?p().createElement(u.Text,{color:o.colors.secondary},n.YKe):p().createElement(p().Fragment,null)))},MarkdownToolCall=({value:e})=>p().createElement(u.Markdown,{content:e}),TextToolCall=({title:e,providerData:t,expanded:r})=>{let{theme:o}=(0,d.DP)(),{content:a,renderer:l}=t?.toolResult||{},i=l?.value,s=i||a;return s?r?p().createElement(c.h1,{linkifyFilePaths:!0,text:s,offset:4}):e&&!i?p().createElement(u.Text,{color:o.colors.secondary},e):p().createElement(c.h1,{linkifyFilePaths:!0,text:s,maxLines:n.h20,ellipsis:!0,ellipsisText:e=>`...+${e} line ${n.YKe}`,offset:4}):p().createElement(u.Text,null,n.dMy)},DefaultToolCall=({result:e,expanded:t,isErrorMsg:r})=>{let{theme:o}=(0,d.DP)(),a=r?o.colors.disabled:void 0;return e?t?p().createElement(c.h1,{offset:4,color:a,text:e}):p().createElement(c.h1,{offset:4,color:a,text:e,maxLines:n.h20,ellipsis:!0,ellipsisText:e=>` \u{2192} +${e} line ${r?n.ETv:n.YKe}`}):p().createElement(u.Text,null,n.dMy)},StreamToolCall=({providerData:e,expanded:t})=>{let r=e?.toolResult?.renderer?.value||("string"==typeof e?.toolResult?.content?e.toolResult.content:"")||"";return r?t?p().createElement(c.h1,{linkifyFilePaths:!0,offset:4,text:r}):p().createElement(c.h1,{linkifyFilePaths:!0,text:r,maxLines:n.h20,ellipsis:!0,ellipsisText:e=>`...+${e} line ${n.YKe}`,offset:4}):p().createElement(c.h1,{linkifyFilePaths:!0,text:n.dMy})},MediaToolCall=({value:e,expanded:t=!1})=>{let{theme:r}=(0,d.DP)(),o={audio:"[Audio]",image:"[Image]",resource:"[Resource]",resource_link:"[Resource]"};try{let n=JSON.parse(e),a=Array.isArray(n)?n:[n],l=[],i=[];for(let e of a)e.type in o?i.push(o[e.type]):l.push(e.text||"");return p().createElement(u.Box,{flexDirection:"column"},i.length?p().createElement(c.h1,{color:r.colors.secondary,text:i.join("")}):p().createElement(DefaultToolCall,{result:l.join("\n"),expanded:t}))}catch(e){return p().createElement(u.Text,{color:r.colors.error},e?.message||n.dMy)}};function stripToolUseErrorTags(e){return e.replace(/<\/?tool_use_error>/g,"")}let ToolInterruptionDisplay=({providerData:e,toolResult:t,output:r,expanded:n,children:o})=>{let a=stripToolUseErrorTags(String(e?.error?.message||e?.error||t?.error||r));return p().createElement(u.Box,{flexDirection:"column"},p().createElement(DefaultToolCall,{isErrorMsg:!0,result:a,expanded:!!n}),o)},TeamCreatedToolCall=({value:e})=>{let{theme:t}=(0,d.DP)(),{teamName:r}=e;return p().createElement(u.Text,null,"Team ",p().createElement(u.Text,{bold:!0,color:t.colors.primary},r)," created")},TeamMemberSpawnedToolCall=({value:e,expanded:t=!1})=>{let{theme:r}=(0,d.DP)(),{prompt:n}=e;if(!n)return p().createElement(p().Fragment,null);let o=n.split("\n");if(t)return p().createElement(u.Box,{flexDirection:"column"},p().createElement(u.Text,{color:r.colors.secondary},n));let a=o.filter(e=>e.trim().length>0),l=a.slice(0,3),i=a.length-l.length;return p().createElement(u.Box,{flexDirection:"column"},p().createElement(u.Text,{color:r.colors.secondary},l.join("\n")),i>0&&p().createElement(u.Text,{dimColor:!0},"... (",i," more lines, ctrl+o to expand)"))},AgentSpawnedToolCall=({value:e,expanded:t=!1})=>{let{theme:r}=(0,d.DP)(),{prompt:n,memberName:o,subagentType:a,description:l}=e,i=[a,l].filter(e=>"string"==typeof e&&e.trim()).join(" \xb7 ");if(!n)return i?p().createElement(u.Text,{color:r.colors.info},i):o?p().createElement(u.Text,{color:r.colors.secondary},"Assigned as ",p().createElement(u.Text,{bold:!0,color:r.colors.info},o)):p().createElement(p().Fragment,null);let s=n.split("\n");if(t)return p().createElement(u.Box,{flexDirection:"column"},i?p().createElement(u.Text,{color:r.colors.info},i):null,o&&p().createElement(u.Text,{color:r.colors.secondary},"Assigned as ",p().createElement(u.Text,{bold:!0,color:r.colors.info},o)),p().createElement(u.Text,{color:r.colors.secondary},n));let c=s.filter(e=>e.trim().length>0),m=c.slice(0,3),f=c.length-m.length;return p().createElement(u.Box,{flexDirection:"column"},i?p().createElement(u.Text,{color:r.colors.info},i):null,p().createElement(u.Text,{color:r.colors.secondary},m.join("\n")),f>0&&p().createElement(u.Text,{dimColor:!0},"... (",f," more lines, ctrl+o to expand)"))},AgentOutputToolCall=({value:e,expanded:t=!1})=>{let r,n,o,a,l,{theme:i}=(0,d.DP)(),{status:s,result:c,error:m,duration:f,lastContextWindow:h,toolCallCount:g}=e,E="completed"===s,w="failed"===s||"cancelled"===s,y=[];null!=f&&y.push((n=Math.floor((r=Math.floor(f/1e3))/60))>0?`${n}m ${r%60}s`:`${r}s`),null!=g&&g>0&&y.push(`${g} tool use${g>1?"s":""}`),null!=h&&h>0&&y.push(`${h>=1e3?`${(h/1e3).toFixed(1)}k`:String(h)} tokens`);let b=y.join(" \xb7 "),x=E?i.colors.success:w?i.colors.error:i.colors.brand,T=E?c:w?m:void 0;return p().createElement(u.Box,{flexDirection:"column"},p().createElement(u.Box,{gap:1},p().createElement(u.Text,{color:x},E?"completed":w?s:"running\u2026"),b?p().createElement(u.Text,{color:i.colors.secondary},"\xb7 ",b):null),T&&!t&&(a=(o=T.split("\n").filter(e=>e.trim().length>0)).slice(0,3),l=o.length-a.length,p().createElement(p().Fragment,null,p().createElement(u.Text,{color:i.colors.secondary},a.join("\n")),l>0&&p().createElement(u.Text,{dimColor:!0},"... (",l," more lines, ctrl+o to expand)"))),T&&t&&p().createElement(u.Text,{color:i.colors.secondary},T))},SendMessageToolCall=({value:e})=>{let{theme:t}=(0,d.DP)(),{resultMessage:r}=e;return p().createElement(u.Text,{color:t.colors.secondary},r)},CronCreateToolCall=({value:e})=>e&&e.id?p().createElement(u.Text,null,"Scheduled ",p().createElement(u.Text,{bold:!0},e.id)," ",p().createElement(u.Text,{dimColor:!0},"(",e.humanSchedule,")")):p().createElement(u.Text,{dimColor:!0},"Scheduled task created"),CronDeleteToolCall=({value:e})=>e&&e.id?p().createElement(u.Text,null,"Cancelled ",p().createElement(u.Text,{bold:!0},e.id)):p().createElement(u.Text,{dimColor:!0},"Job cancelled"),CronListToolCall=({value:e})=>e&&e.jobs&&0!==e.jobs.length?p().createElement(u.Box,{flexDirection:"column"},e.jobs.map(e=>p().createElement(u.Text,{key:e.id},p().createElement(u.Text,{bold:!0},e.id)," ",p().createElement(u.Text,{dimColor:!0},e.humanSchedule)))):p().createElement(u.Text,{dimColor:!0},"No scheduled jobs"),WorkflowStartedToolCall=({value:e})=>{let{theme:t}=(0,d.DP)();return p().createElement(u.Box,{flexDirection:"column"},p().createElement(u.Text,{color:t.colors.secondary},p().createElement(u.Text,null,"Running in background \xb7 "),p().createElement(u.Text,{color:t.colors.brand},"/workflows"),p().createElement(u.Text,null," to monitor and save")))},FindingsToolCall=({value:e,expanded:t=!1})=>{let{theme:r}=(0,d.DP)(),n=Array.isArray(e)?e:e&&"object"==typeof e&&Array.isArray(e.findings)?e.findings:[];if(0===n.length)return p().createElement(u.Text,{dimColor:!0},"No findings reported.");let o=t?n:n.slice(0,3),a=n.length-o.length;return p().createElement(u.Box,{flexDirection:"column"},o.map((e,t)=>p().createElement(u.Box,{key:`${e.file}-${t}`,flexDirection:"column",marginBottom:+(t<o.length-1)},p().createElement(u.Box,{gap:1},p().createElement(u.Text,{color:r.colors.filePath},e.file),e.category?p().createElement(u.Text,{dimColor:!0},"[",e.category,"]"):null),p().createElement(u.Text,{color:r.colors.secondary},e.summary),p().createElement(u.Text,{dimColor:!0},e.failureScenario))),a>0&&p().createElement(u.Text,{dimColor:!0},"... (",a," more finding",a>1?"s":"",", ctrl+o to expand)"))},w=i().memo(({name:e,toolCallArguments:t="{}"})=>{let{theme:r}=(0,d.DP)(),{serverName:n,toolName:o}=s.g.parseToolFullName(e),[a,c]=(0,l.useState)("");return(0,l.useEffect)(()=>{(async()=>{let e=await (0,f.o0)().listTools(n).catch(()=>void 0),t=e?.find(e=>{let t=s.g.parseToolFullName(e.name).toolName;return t===o||t===o.replace(/_/g,"-")});c(t?.description||"")})()},[]),i().createElement(u.Box,{flexDirection:"column",paddingLeft:1},i().createElement(u.Text,{color:r.colors.primary},n," - ",o,"(",t.slice(1,-1),")(mcp)"),i().createElement(u.Text,{color:r.colors.secondary},a))});i().memo(({name:e,providerData:t,toolCallArguments:r="{}",defaultShowArg:o})=>{let{theme:l}=(0,d.DP)();try{let s=JSON.parse(r),d=Object.entries(s).reduce((e,[t,r])=>{if(!n.w8W.includes(t)){let n="string"==typeof r?`"${r}"`:JSON.stringify(r);e.push(`${t}: ${n}`)}return e},[]).join(", ");switch(e){case n.L3b.WRITE:return i().createElement(u.Box,{flexDirection:"column",gap:1,alignItems:"flex-start"},i().createElement(u.Text,{bold:!0},(0,a.basename)(s.file_path)),i().createElement(c.qM,{code:s.content,language:(0,a.extname)(s.file_path).substring(1)}));case n.L3b.READ:return i().createElement(u.Box,{paddingLeft:1},i().createElement(u.Text,{bold:!0},"Read(",s.file_path,")"));case n.L3b.GLOB:case n.L3b.GREP:return i().createElement(u.Box,{paddingLeft:1},i().createElement(u.Text,{bold:!0},"Search(",d,")"));case n.L3b.EDIT:case n.L3b.MULTI_EDIT:return i().createElement(u.Box,{flexDirection:"column",gap:1,alignItems:"flex-start"},i().createElement(u.Text,{bold:!0},(0,a.basename)(s.file_path)),i().createElement(DiffToolCall,{providerData:{arguments:r,toolResult:{content:"",renderer:{type:"diff"}}}}));case n.L3b.BASH:case n.L3b.POWERSHELL:return i().createElement(u.Box,{flexDirection:"column",width:"90%",paddingLeft:1},i().createElement(c.h1,{offset:3,text:s.command,maxLines:3}),i().createElement(u.Text,{wrap:"truncate-middle",color:l.colors.secondary},s.description));case n.L3b.WEB_FETCH:return i().createElement(u.Box,{flexDirection:"column",paddingLeft:1},i().createElement(u.Text,null,o),i().createElement(u.Text,{color:l.colors.secondary},s.prompt));case n.L3b.NOTEBOOK_EDIT:return i().createElement(u.Box,{flexDirection:"column",gap:1,alignItems:"flex-start"},i().createElement(u.Text,{bold:!0},(0,a.basename)(s.notebook_path)),i().createElement(DiffToolCall,{providerData:{arguments:r,toolResult:{content:"",renderer:{type:"diff"}}}}));case n.L3b.ENTER_PLAN_MODE:return i().createElement(u.Box,{flexDirection:"column"},i().createElement(u.Text,{wrap:"truncate-middle"},"CodeBuddy wants to enter plan mode:"),i().createElement(EnterPlanModeToolCall,{providerData:{arguments:r,toolResult:{content:"",renderer:{type:"text"}}}}));case n.L3b.EXIT_PLAN_MODE:return i().createElement(ExitPlanModeToolCall,{providerData:{arguments:"",toolResult:{content:""},...t}});case n.L3b.DELEGATE_TOOL:return i().createElement(u.Box,{flexDirection:"column",paddingLeft:1},i().createElement(u.Text,{bold:!0},"Call delegate tool: ",s.toolName||"Unknown"),s.description&&i().createElement(u.Text,{color:l.colors.secondary},s.description),d&&i().createElement(u.Text,{color:l.colors.secondary},"Args: ",d));case n.L3b.DEFER_EXECUTE:if(s.toolName===n.L3b.WORKFLOW){let e=t?.workflowSourceText;return i().createElement(y,{params:s.params||{},preloadedSource:"string"==typeof e?e:void 0})}break;default:if(e.startsWith("mcp__"))return i().createElement(w,{name:e,toolCallArguments:r,defaultShowArg:o})}}catch{}let s=r;try{let e=JSON.parse(r);if("object"==typeof e&&null!==e){let t=Object.entries(e).filter(([e])=>!n.w8W.includes(e));t.length>0&&(s=t.map(([e,t])=>{let r="string"==typeof t?`"${t}"`:JSON.stringify(t);return`${e}: ${r}`}).join(", "))}}catch{}return i().createElement(u.Box,{flexDirection:"column",paddingLeft:1},i().createElement(u.Text,{bold:!0},e),s&&i().createElement(u.Text,{color:l.colors.secondary},s))});let y=i().memo(({params:e,preloadedSource:t})=>{let{theme:r}=(0,d.DP)(),n=("string"==typeof e.script?e.script:"")||t||"",o=(0,l.useMemo)(()=>extractWorkflowUiMeta(n),[n]),a=o.description??("string"==typeof e.name?`saved workflow: ${e.name}`:void 0)??("string"==typeof e.scriptPath?`script: ${e.scriptPath}`:void 0)??"dynamic workflow";return i().createElement(u.Box,{flexDirection:"column",paddingLeft:1},i().createElement(u.Text,{bold:!0},a),o.phases&&o.phases.length>0&&i().createElement(u.Box,{flexDirection:"column",marginTop:1},i().createElement(u.Text,null,"This dynamic workflow will spin up multiple subagents across the following phases:"),o.phases.map((e,t)=>i().createElement(u.Box,{key:t,paddingLeft:2},i().createElement(u.Text,null,i().createElement(u.Text,{bold:!0},`${t+1}. ${e.title}`),e.detail?i().createElement(u.Text,{color:r.colors.secondary},` \u{2014} ${e.detail}`):null)))),i().createElement(u.Box,{marginTop:1},i().createElement(u.Text,{color:r.colors.warning},"Dynamic workflows can use a lot of tokens quickly by running many subagents in parallel \u2014 which counts against your usage limit. Stop a running workflow at any time with /workflows, or disable dynamic workflows in /config.")))});var b=r(36210),x=r(32647),T=r(88415),k=r(26112);function isHiddenToolCall(e,t){if(t?.coordinator&&(0,b.Be)(e.name))return!1;if(e.name===n.L3b.TASK_OUTPUT||e.name===n.L3b.TASK_STOP)return!0;if(e.name===n.L3b.AGENT)try{let t=JSON.parse(e.arguments||"{}");if(t.name||t.run_in_background)return!1;return!0}catch{}return!1}function useCoordinatorToolReveal(){return(0,b.Rn)((0,E.Lg)().session)}let S=i().memo(({msg:e,expanded:t})=>{let{theme:r}=(0,d.DP)(),{columns:a}=(0,d.HP)(),m=useCoordinatorToolReveal(),{name:f,status:h,arguments:p,providerData:g}=e,E={incomplete:r?.colors?.disabled??"grey",in_progress:r?.colors?.secondary??"grey",completed:r?.colors?.success??"green"},w=((e="{}",t={},r)=>{try{let o=JSON.parse(e),a=Object.entries(o).reduce((e,[t,r])=>{if(!n.w8W.includes(t)){let n="string"==typeof r?`"${r}"`:JSON.stringify(r);e.push(`${t}: ${n.replace(/\n/g,"")}`)}return e},[]).join(", ");if(r)return a;if(t&&"argumentsDisplayText"in t)return t.argumentsDisplayText.replace(/\r\n|\r|\n/g,"");return a}catch{return""}})(p,g,t),y=f;if(y.startsWith("mcp__")){let{serverName:e,toolName:t}=s.g.parseToolFullName(f);y=`${e} - ${t} (mcp)`}else y=o[f]||f;if(f===n.L3b.ASK_USER_QUESTION)return i().createElement(u.Box,{key:`${e.id}-${e.callId}-${p}-${h}`,alignItems:"flex-start"},h?i().createElement(u.Text,null,i().createElement(u.Text,{color:r.colors.primary},"\u25CF "),e.providerData?.agent&&e.providerData.isSubAgent?i().createElement(u.Text,null,i().createElement(u.Text,{color:e.providerData.agentColor||x.T.generateColorFromName(e.providerData.agent)},e.providerData.agent),i().createElement(u.Text,null," \xb7 ")):null,i().createElement(u.Text,null,"User answered CodeBuddy's questions:")):void 0);if(f===n.L3b.SEND_MESSAGE)try{let{type:t,recipient:n,summary:o,approve:a}=JSON.parse(p||"{}"),l="",s="";switch(t){case"message":s=`@${n}`,l=o||"Sending message...";break;case"broadcast":s="@team",l=o||"Broadcasting...";break;case"shutdown_request":s=`@${n}`,l="Shutdown requested";break;case"shutdown_response":s="Shutting down",l=!1!==a?"Task completed":"Shutdown rejected";break;case"plan_approval_response":s=`@${n}`,l=!1!==a?"Plan approved":"Plan rejected";break;default:s=n?`@${n}`:"",l=o||t}return i().createElement(u.Box,{key:`${e.id}-${e.callId}-${p}-${h}`,alignItems:"flex-start"},i().createElement(u.Box,{alignItems:"center",flexShrink:0},i().createElement(u.Text,{color:E[h||"in_progress"]},"\u25CF "),e.providerData?.agent&&e.providerData.isSubAgent?i().createElement(u.Text,null,i().createElement(u.Text,{color:e.providerData.agentColor||x.T.generateColorFromName(e.providerData.agent)},e.providerData.agent),i().createElement(u.Text,null," ")):null,i().createElement(u.Text,{bold:!0},s),l&&i().createElement(u.Text,{color:r.colors.secondary}," \xb7 ",l)))}catch{}if(f===n.L3b.SEND_USER_MESSAGE||f===n.L3b.TASK_STOP||f===n.L3b.TASK_OUTPUT&&!m)return i().createElement(i().Fragment,null);if(f===n.L3b.AGENT)try{let t=JSON.parse(p||"{}");if(t.name){let n=t.name,o=t.description||"";return i().createElement(u.Box,{key:`${e.id}-${e.callId}-${p}-${h}`,alignItems:"flex-start"},i().createElement(u.Box,{alignItems:"center",flexShrink:0},i().createElement(u.Text,{color:E[h||"in_progress"]},"\u25CF "),i().createElement(u.Text,{bold:!0,color:r.colors.info},"@",n),o&&i().createElement(u.Text,{color:r.colors.secondary}," \xb7 ",o)))}if(!t.run_in_background&&!m)return i().createElement(i().Fragment,null);{let n=t.subagent_type||"Agent",o=t.description||"";return i().createElement(u.Box,{key:`${e.id}-${e.callId}-${p}-${h}`,alignItems:"flex-start"},i().createElement(u.Box,{alignItems:"center",flexShrink:0},i().createElement(u.Text,{color:E[h||"in_progress"]},"\u25CF "),i().createElement(u.Text,{bold:!0},n),o&&i().createElement(u.Text,{color:r.colors.secondary}," \xb7 ",o),t.run_in_background?i().createElement(u.Text,{color:r.colors.secondary}," (background)"):null))}}catch{}if(f===n.L3b.REPL)try{let n=JSON.parse(p||"{}"),o="string"==typeof n.code?n.code:"",a="string"==typeof n.description?n.description.trim():"";return i().createElement(u.Box,{key:`${e.id}-${e.callId}-${p}-${h}`,flexDirection:"column",alignItems:"flex-start"},i().createElement(u.Box,{alignItems:"center",flexShrink:0},i().createElement(u.Text,{color:E[h||"in_progress"]},"\u25CF "),e.providerData?.agent&&e.providerData.isSubAgent?i().createElement(u.Text,null,i().createElement(u.Text,{color:e.providerData.agentColor||x.T.generateColorFromName(e.providerData.agent)},e.providerData.agent),i().createElement(u.Text,null," \xb7 "),i().createElement(u.Text,{bold:!0},y)):i().createElement(u.Text,{bold:!0},y),i().createElement(u.Text,{color:r.colors.secondary}," \xb7 ",a||"Running code\u2026")),t&&o?i().createElement(u.Box,{flexDirection:"column",paddingLeft:2},i().createElement(u.Text,{color:r.colors.secondary},"Code"),i().createElement(u.Box,{paddingLeft:2},i().createElement(c.qM,{code:o,language:"javascript"}))):null)}catch{}if(f===n.L3b.WRITE||f===n.L3b.EDIT||f===n.L3b.MULTI_EDIT)try{let t=JSON.parse(p||"{}"),n=t.file_path||t.notebook_path||"";if((e=>{if(!e)return!1;let t=T.P.getPlansDir();return T.P.resolveFilePathToWorkDir(e).startsWith(t)})(n))return i().createElement(u.Box,{key:`${e.id}-${e.callId}-${p}-${h}`,flexDirection:"column",alignItems:"flex-start"},i().createElement(u.Box,{alignItems:"center"},i().createElement(u.Text,{color:E[h||"in_progress"]},"\u25CF "),i().createElement(u.Text,{bold:!0},"Updated plan")),i().createElement(u.Box,{paddingLeft:2},i().createElement(u.Text,{color:r.colors.secondary},"\u2514 /plan to preview")))}catch{}let b=(0,l.useMemo)(()=>3+y.length+(e.providerData?.agent&&e.providerData.isSubAgent?e.providerData.agent.length+3:0),[y,e.providerData?.agent,e.providerData?.isSubAgent]);return i().createElement(u.Box,{key:`${e.id}-${e.callId}-${p}-${h}`,alignItems:"flex-start"},i().createElement(u.Box,{alignItems:"center",flexShrink:0},i().createElement(u.Text,{color:E[h||"in_progress"]},"\u25CF "),e.providerData?.agent&&e.providerData.isSubAgent?i().createElement(u.Text,null,i().createElement(u.Text,{color:e.providerData.agentColor||x.T.generateColorFromName(e.providerData.agent)},e.providerData.agent),i().createElement(u.Text,null," \xb7 "),i().createElement(u.Text,{bold:!0},y)):i().createElement(u.Text,{bold:!0},y)),w&&(t?i().createElement(k.h,{text:`(${w})`,color:r.colors.secondary,offset:b,wordBreak:"break-all"}):i().createElement(u.Box,{width:a-b},i().createElement(u.Text,{color:r.colors.secondary,wrap:"truncate-middle"},"(",w,")"))))});var v=r(88523),C=r(92735);let _=/^An error occurred while parsing tool arguments\. Please try again with valid JSON\. Error: (.+)$/,ErrorInterruptionContent=({msg:e})=>{let t=e.providerData,{arguments:r="{}"}=t||{},o={};try{o=JSON.parse(r)}catch(e){v.ContainerUtil.get(C.Logger).error(`Failed to parse tool call arguments: ${e}`)}switch(e.name){case n.L3b.ENTER_PLAN_MODE:return;case n.L3b.EXIT_PLAN_MODE:return i().createElement(ExitPlanModeToolCall,{providerData:t});case n.L3b.EDIT:case n.L3b.MULTI_EDIT:return i().createElement(DiffToolCall,{providerData:t,interruption:!0});case n.L3b.WRITE:{let e=JSON.stringify({...o,old_string:"",new_string:o.content||""});return i().createElement(DiffToolCall,{providerData:{...t,arguments:e},interruption:!0})}default:return}},ToolResultTextRender=({msg:e,expanded:t})=>{var r;let{theme:o}=(0,d.DP)(),a=e.callId,l="output"in e?(r=e.output)&&"object"==typeof r&&r.type&&"string"==typeof r.type&&r.type in r?r[r.type]:r:void 0,s=e.providerData,{toolResult:m}=s||{};if(m?.error||"incomplete"===e.status)return i().createElement(ToolInterruptionDisplay,{providerData:s,toolResult:m,output:l,expanded:t},i().createElement(ErrorInterruptionContent,{msg:e}));if(e.name===n.L3b.CRON_CREATE&&m?.rawResponse){let e=m.rawResponse;return i().createElement(CronCreateToolCall,{value:e})}if(e.name===n.L3b.CRON_DELETE&&m?.rawResponse){let e=m.rawResponse;return i().createElement(CronDeleteToolCall,{value:e})}if(e.name===n.L3b.CRON_LIST&&m?.rawResponse){let e=m.rawResponse;return i().createElement(CronListToolCall,{value:e})}if(!m?.renderer){let e=String(l||""),r=(e=>{if(e.match(_))return"Tool call arguments were invalid JSON. The model will retry automatically."})(e);return r?i().createElement(DefaultToolCall,{isErrorMsg:!0,result:r,expanded:t}):i().createElement(DefaultToolCall,{result:e,expanded:t})}if(t&&e.name===n.L3b.REPL&&"text"===m.renderer.type){let e=String(m.renderer.value??m.content??""),t=e.indexOf("\n"),r=t>=0?e.slice(0,t):e,n=t>=0?e.slice(t+1):"";return i().createElement(u.Box,{flexDirection:"column",width:"100%"},r?i().createElement(u.Text,null,r):null,n?i().createElement(u.Box,{flexDirection:"column"},i().createElement(u.Text,{color:o.colors.secondary},"Output"),i().createElement(u.Box,{paddingLeft:2},i().createElement(c.h1,{text:n,offset:6}))):null)}let f=m.renderer.value??m.content,h=m.title?i().createElement(u.Markdown,{content:m.title}):"";switch(m.renderer.type){case"media":return i().createElement(MediaToolCall,{value:f,expanded:t});case"list":return i().createElement(ListToolCall,{value:f,title:h,expanded:t});case"markdown":return i().createElement(MarkdownToolCall,{value:f});case"diff":return i().createElement(DiffToolCall,{providerData:s});case"code":return i().createElement(CodeToolCall,{value:f,title:h,providerData:s,expanded:t});case"stream":return i().createElement(StreamToolCall,{providerData:s,callId:a,expanded:t});case"plan":return i().createElement(ExitPlanModeToolCall,{providerData:s});case"enterplan":return i().createElement(EnterPlanModeToolCall,{providerData:s});case"team-created":{let e="string"==typeof f?JSON.parse(f):f;return i().createElement(TeamCreatedToolCall,{value:e})}case"team-member-spawned":{let e="string"==typeof f?JSON.parse(f):f;return i().createElement(TeamMemberSpawnedToolCall,{value:e,expanded:t})}case"agent-spawned":{let e="string"==typeof f?JSON.parse(f):f;return i().createElement(AgentSpawnedToolCall,{value:e,expanded:t})}case"agent-output":{let e="string"==typeof f?JSON.parse(f):f;return i().createElement(AgentOutputToolCall,{value:e,expanded:t})}case"send-message":{let e="string"==typeof f?JSON.parse(f):f;return i().createElement(SendMessageToolCall,{value:e})}case"workflow-started":{let e="string"==typeof f?JSON.parse(f):f;return i().createElement(WorkflowStartedToolCall,{value:e})}case"findings":{let e="string"==typeof f?JSON.parse(f):f;return i().createElement(FindingsToolCall,{value:e,expanded:t})}default:return i().createElement(TextToolCall,{value:f,title:h,expanded:t,providerData:s})}},A=i().memo(({msg:e,expanded:t})=>{let{theme:r}=(0,d.DP)();if(e.name===n.L3b.SEND_USER_MESSAGE){let t=e.providerData,n=t?.toolResult;if(!n?.error&&"incomplete"!==e.status&&n?.renderer?.type==="markdown"){let t=n.renderer.value??n.content;return i().createElement(u.Box,{key:`${e.id}-${e.callId}-sum`,alignItems:"flex-start"},i().createElement(u.Box,{flexShrink:0},i().createElement(u.Text,{color:r.colors.primary},"\u25CF ")),i().createElement(u.Box,{flexDirection:"column"},i().createElement(u.Markdown,{content:t})))}}return i().createElement(c.v7,{key:`${e.id}-${e.callId}-branch`},i().createElement(ToolResultTextRender,{key:`${e.id}-${e.callId}-tool-result`,msg:e,expanded:t}))})},90131(e,t,r){r.d(t,{a:()=>w});var n=r(31399),o=r(40838),a=r(39457),l=r(79803),i=r(24463),s=r(67945),c=r.n(s),u=r(93509),d=r(64225),m=r(62909),f=r(36988),h=r(55425),p=r(28806);let MessageBox=({text:e,children:t})=>{let{theme:r}=(0,f.DP)();return c().createElement(d.Box,{marginTop:1,alignItems:"flex-start"},c().createElement(d.Box,{flexShrink:0,backgroundColor:r.colors.rowBackground},t??c().createElement(d.Text,{color:r.colors.text},"> ")),c().createElement(u.h1,{text:e,offset:3,color:r.colors.text,backgroundColor:r.colors.rowBackground,paddingRight:1,rowBackground:!0}))},TeammateMessageBox=({info:e,content:t,expanded:r=!1})=>{let{theme:n}=(0,f.DP)();if("system"===e.from)return null;let o=e.color||n.colors.info,a=t.match(/<teammate-message[^>]*>\n?([\s\S]*?)\n?<\/teammate-message>/),l=a?a[1].trim():t;try{let e=JSON.parse(l);if(e&&"object"==typeof e&&e.type)if("shutdown_response"===e.type){let t=!1!==e.approve?"accepted":"rejected";l=e.reason||`Shutdown ${t}`}else l="shutdown_request"===e.type?e.reason||"Shutdown requested":e.reason||e.summary||l}catch{}let i=l.split("\n"),s=i.length>6,u=r||!s?l:i.slice(0,6).join("\n");return c().createElement(d.Box,{marginTop:1,flexDirection:"column"},c().createElement(d.Box,{alignItems:"flex-start",gap:1},c().createElement(d.Text,{color:o,bold:!0},e.from),e.summary?c().createElement(d.Text,{color:n.colors.secondary},"\xb7 ",e.summary):null),c().createElement(d.Box,{marginLeft:2,flexDirection:"column"},c().createElement(d.Markdown,{content:u}),s&&!r&&c().createElement(d.Text,{dimColor:!0},"... (",i.length-6," more lines, ctrl+o to expand)")))},parseChannelMessage=e=>{let t=e.match(/<channel\s+([^>]+)>\s*([\s\S]*?)\s*<\/channel>/);if(!t)return;let r=t[1],n=t[2].trim(),o=r.match(/source="([^"]+)"/),a=r.match(/sender="([^"]+)"/)||r.match(/user="([^"]+)"/);if(o)return{source:o[1],sender:a?a[1]:o[1],content:n}},ChannelMessageBox=({info:e})=>{let{theme:t}=(0,f.DP)(),r=e.content.length>200?e.content.substring(0,200)+"...":e.content;return c().createElement(d.Box,{marginTop:1,alignItems:"flex-start",flexDirection:"column"},c().createElement(d.Box,null,c().createElement(d.Text,{color:t.colors.warning,bold:!0},"#",e.source),c().createElement(d.Text,{color:t.colors.secondary}," \xb7 "),c().createElement(d.Text,{color:t.colors.secondary},e.sender,": "),c().createElement(d.Text,{color:t.colors.text},r)))},isChannelInstructions=e=>{try{for(let t of(0,h.LI)().channelServers.values())if(t.instructions&&e.includes(t.instructions))return!0}catch{}return!1},AgentNotificationBox=({text:e})=>{let{theme:t}=(0,f.DP)(),r=l.C.parseAgentNotification(e);if(!r)return c().createElement(MessageBox,{text:e});let n="completed"===r.status?t.colors.success:"failed"===r.status||"cancelled"===r.status?t.colors.error:t.colors.secondary;return c().createElement(d.Box,{marginTop:1,alignItems:"flex-start"},c().createElement(d.Text,{color:n},"\u25CF "),c().createElement(u.h1,{text:r.summary,offset:3,color:t.colors.secondary,backgroundColor:t.colors.rowBackground,paddingRight:1,rowBackground:!0}))},CommandInputMessageBox=({inputItem:e})=>{let{theme:t}=(0,f.DP)(),{type:r,text:n}=e;if(r!==l.g.COMMAND){let e=p.X$.getConfig([m.W_[r]],t);return c().createElement(MessageBox,{text:n},c().createElement(d.Text,{color:e.color},e.figure," "))}return c().createElement(MessageBox,{text:n})},CommandOutputMessageBox=({outputItem:e,expanded:t})=>{let{theme:r}=(0,f.DP)(),{type:n,text:i}=e,s=i||o.dMy;return c().createElement(u.v7,null,n===l.g.BASH?c().createElement(d.Box,{flexDirection:"column"},c().createElement(d.Text,{color:r.colors.secondary,wrap:"truncate"},a.n.linkifyFilePaths(s.slice(0,t?void 0:500)))):c().createElement(d.Markdown,{content:s}))},PlanOutputMessageBox=({filePath:e,content:t})=>{let{theme:r}=(0,f.DP)();return c().createElement(u.v7,null,c().createElement(d.Box,{flexDirection:"column"},c().createElement(d.Box,{flexDirection:"column",marginBottom:1},c().createElement(d.Text,null,"Current Plan"),c().createElement(d.Text,{color:r.colors.secondary}," ",e)),c().createElement(d.Markdown,{content:t})))},g=/^<image_local_path>[\s\S]*<\/image_local_path>$/,E=/<image_local_path>\s*[\s\S]*?<\/image_local_path>/gi,w=(0,s.memo)(({msg:e,expanded:t})=>{let{isSystemInternalMessage:r,isAgentNotification:o,parseInput:a,parseOutput:u,parsePlanOutput:d}=l.C,m=(0,s.useCallback)((e,t)=>{let r=t?.content??e;return i.r.stripUserQueryTags(i.r.stripSystemRemindersOutsideUserQuery(r)).replace(E,"").replace(/\n{3,}/g,"\n\n").trim()},[]),f="string"==typeof e.content?e.content:Array.isArray(e.content)?e.content.map(e=>"string"==typeof e?e:"input_text"===e.type?e.text:"").join("\n"):"";if((0,n.SC)(f)||/^\[channel [^\]]*\][^\n]*members:/i.test(f.trim()))return;let h=(e=>{let t="string"==typeof e.content?e.content:e.content.map(e=>"string"==typeof e?e:"input_text"===e.type?e.text:"").join("\n"),r=i.r.stripUserQueryTags(i.r.stripSystemRemindersOutsideUserQuery(t)).trim(),n=parseChannelMessage(r);if(!n||!n.content)return;let o=r.replace(/<channel\s+[^>]+>[\s\S]*?<\/channel>/,"").trim();if(!(o.length>0)||isChannelInstructions(o))return n})(e);if(h)return c().createElement(ChannelMessageBox,{key:`${e.id}-channel`,info:h});let p=(e=>{let t="string"==typeof e.content?e.content:e.content.map(e=>"string"==typeof e?e:"input_text"===e.type?e.text:"").join("\n");if((0,n.SC)(t))return;let r=e.providerData?.teammateMessage;if(r)return{info:r};let o=(0,n.sp)(t);if(o)return{info:{from:o.name||o.id,summary:o.summary},extractedContent:o.content}})(e);if(p){let r=p.extractedContent??("string"==typeof e.content?i.r.stripSystemRemindersOutsideUserQuery(e.content):e.content.map(e=>"string"==typeof e?i.r.stripSystemRemindersOutsideUserQuery(e):"input_text"===e.type?i.r.stripSystemRemindersOutsideUserQuery(e.text):"").join("\n"));return c().createElement(TeammateMessageBox,{key:`${e.id}-teammate`,info:p.info,content:r,expanded:t})}if("string"==typeof e.content){if(r(e.content))return;let t=m(e.content,e.providerData);if(!t||0===t.trim().length||isChannelInstructions(t))return;return c().createElement(MessageBox,{key:`${e.id}-${e.content}`,text:t})}if(Array.isArray(e.content)&&e.content.length>1){let t=[],n=!0;for(let a of e.content){if("string"==typeof a){let e=i.r.stripSystemRemindersOutsideUserQuery(a);if(!e||0===e.trim().length||isChannelInstructions(e)||g.test(e.trim()))continue;if(parseChannelMessage(i.r.stripUserQueryTags(e).trim())){n=!1;break}let r=m(e);r&&t.push(r);continue}if("input_image"===a.type)continue;if("input_text"!==a.type){n=!1;break}let e=i.r.stripSystemRemindersOutsideUserQuery(a.text);if(!(!e||0===e.trim().length||r(e)||isChannelInstructions(e)||g.test(e.trim()))){if(parseChannelMessage(i.r.stripUserQueryTags(e).trim())||o(e)||void 0!==d(e)||void 0!==u(e)){n=!1;break}t.push(m(e,a.providerData))}}let a=t.filter(Boolean).join("\n");if(n&&a.trim().length>0)return c().createElement(MessageBox,{key:`${e.id}-combined`,text:a})}return e.content.map((n,l)=>{if("string"==typeof n){let t=i.r.stripSystemRemindersOutsideUserQuery(n);if(!t||0===t.trim().length)return;let r=parseChannelMessage(t.trim());if(r)return c().createElement(ChannelMessageBox,{key:`${e.id}-channel-${l}`,info:r});if(isChannelInstructions(t))return;let o=m(t);if(!o)return;return c().createElement(MessageBox,{text:o,key:`${e.id}-${n}-${l}`})}if("input_text"===n.type){let s=i.r.stripSystemRemindersOutsideUserQuery(n.text);if(!s||0===s.trim().length||r(s)||g.test(s.trim()))return;let f=parseChannelMessage(i.r.stripUserQueryTags(s).trim());if(f)return c().createElement(ChannelMessageBox,{key:`${e.id}-channel-${l}`,info:f});if(isChannelInstructions(s))return;if(o(s))return c().createElement(AgentNotificationBox,{key:`${e.id}-${l}`,text:s});let h=d(s);if(void 0!==h)return c().createElement(PlanOutputMessageBox,{key:`${e.id}-plan-${l}`,filePath:h.filePath,content:h.content});let p=a(s);if(void 0!==p)return c().createElement(CommandInputMessageBox,{key:`${e.id}-${p.text}-${l}`,inputItem:p});let E=u(s);if(void 0!==E)return c().createElement(CommandOutputMessageBox,{key:`${e.id}-${E.text}-${l}`,outputItem:E,expanded:t});let w=m(s,n.providerData);if(!w)return;return c().createElement(MessageBox,{text:w,key:`${e.id}-${n.text}-${l}`})}})})},72542(e,t,r){r(88523),r(14372),r(43889),r(66936),r(98447),r(53052),r(31349),r(94816),r(90777),r(5100),r(55425)},98447(e,t,r){var n,o;r.d(t,{T:()=>n}),(o=n||(n={})).TASKS="/tasks",o.ADD_DIR="/add-dir",o.AGENTS="/agents",o.BACKGROUND="/background",o.BG="/bg",o.BRANCH="/branch",o.BTW="/btw",o.CLEAR="/clear",o.COMPACT="/compact",o.CONFIG="/config",o.AUTOCOMPACT="/autocompact",o.COST="/cost",o.DOCTOR="/doctor",o.EXIT="/exit",o.EXPORT="/export",o.FORK="/fork",o.GATEWAY="/gateway",o.GOAL="/goal",o.REMOTE_CONTROL="/remote-control",o.HELP="/help",o.IDE="/ide",o.INIT="/init",o.KEYBINDINGS="/keybindings",o.LOGIN="/login",o.LOGOUT="/logout",o.MCP="/mcp",o.PLAN="/plan",o.PLUGIN="/plugin",o.PLUGIN_VALIDATE="/plugin-validate",o.RELOAD_PLUGINS="/reload-plugins",o.TODOS="/todos",o.MEMORY="/memory",o.MODEL="/model",o.MULTITASK="/multitask",o.MODEL_LITE="/model:lite",o.MODEL_REASONING="/model:reasoning",o.MODEL_TEXT_TO_IMAGE="/model:text-to-image",o.MODEL_IMAGE_TO_IMAGE="/model:image-to-image",o.MODEL_TEXT_TO_VIDEO="/model:text-to-video",o.MODEL_IMAGE_TO_VIDEO="/model:image-to-video",o.MODE="/mode",o.PERMISSIONS="/permissions",o.RELEASE_NOTES="/release-notes",o.RENAME="/rename",o.RESUME="/resume",o.SANDBOX="/sandbox",o.SKILLS="/skills",o.STATS="/stats",o.STATUS="/status",o.TERMINAL_SETUP="/terminal-setup",o.THEME="/theme",o.UPGRADE="/upgrade",o.VIM="/vim",o.CONTEXT="/context",o.WORKFLOWS="/workflows",o.EFFORT="/effort",o.DEEP_RESEARCH="/deep-research",o.SIMPLIFY="/simplify",o.CODE_REVIEW="/code-review",o.VERIFY="/verify",o.COPY="/copy",o.DEBUG="/debug"},52412(e,t,r){r.d(t,{q:()=>CodeHighlight});var n=r(89223),o=r.n(n),a=r(88890),l=r(64225);function CodeHighlight({code:e,language:t}){let r=(0,n.useMemo)(()=>(0,a.w)(e,t),[e,t]);return o().createElement(l.Text,null,r)}},64298(e,t,r){r.d(t,{r:()=>StructuredDiff});var n=r(902),o=r(35495),a=r(39457),l=r(36988),i=r(79146),s=r.n(i);function wrapText(e,t){let r=a.n.stripCharsetControls(e),n=[],o="";for(let e of r)s()(o+e)<=t?o+=e:(n.push(o),o=e);return o&&n.push(o),n}let AddSign=()=>{let{theme:e}=(0,l.DP)();return o.createElement(n.Text,{color:e.colors.success},"+ ")},RemoveSign=()=>{let{theme:e}=(0,l.DP)();return o.createElement(n.Text,{color:e.colors.error},"- ")};function WordHighlightLine({wordDiff:e,dim:t,theme:r,type:l}){let i="add"===l?t?r.colors.diff.addedDimmed:r.colors.diff.added:t?r.colors.diff.removedDimmed:r.colors.diff.removed,s="add"===l?r.colors.diff.addedWord:r.colors.diff.removedWord;return o.createElement(n.Text,{backgroundColor:i},e.tokens.map((e,t)=>{let r=a.n.stripCharsetControls(e.text);return"unchanged"!==e.type?o.createElement(n.Text,{key:t,backgroundColor:s},r):o.createElement(n.Text,{key:t},r)}))}function formatDiff(e,t,r,a,l,i,s){let c=numberDiffLines(e.map((e,t)=>e.startsWith("+")?{code:" "+e.slice(1),type:"add",originalIdx:t}:e.startsWith("-")?{code:" "+e.slice(1),type:"remove",originalIdx:t}:{code:e,type:"nochange",originalIdx:t}),t),u=Math.max(...c.map(({i:e})=>e)).toString().length;return c.flatMap(({type:e,code:t,i:c,originalIdx:d},m)=>wrapText(t,r-u-2).map((t,r)=>{let f=`${i}-${m}-${e}-${c}-${r}`,h=s?.find(t=>t.lineIndex===d&&("add"===e&&"add"===t.type||"remove"===e&&"remove"===t.type)&&0===r);switch(e){case"add":return{key:f,element:o.createElement(n.Text,null,o.createElement(LineNumber,{i:0===r?c:void 0,width:u}),o.createElement(AddSign,null),h&&h.metadata.shouldHighlight?o.createElement(WordHighlightLine,{wordDiff:h,dim:a,theme:l,type:"add"}):o.createElement(n.Text,{backgroundColor:a?l.colors.diff.addedDimmed:l.colors.diff.added,color:a?l.colors.textSecondary:void 0},t))};case"remove":return{key:f,element:o.createElement(n.Text,null,o.createElement(LineNumber,{i:0===r?c:void 0,width:u}),o.createElement(RemoveSign,null),h&&h.metadata.shouldHighlight?o.createElement(WordHighlightLine,{wordDiff:h,dim:a,theme:l,type:"remove"}):o.createElement(n.Text,{backgroundColor:a?l.colors.diff.removedDimmed:l.colors.diff.removed,color:a?l.colors.textSecondary:void 0},t))};default:return{key:f,element:o.createElement(n.Text,null,o.createElement(LineNumber,{i:0===r?c:void 0,width:u}),o.createElement(n.Text,null," "),o.createElement(n.Text,{dimColor:a},t))}}}))}function LineNumber({i:e,width:t}){let{theme:r}=(0,l.DP)();return o.createElement(n.Text,{color:r.colors.secondary},void 0!==e?e.toString().padStart(t):" ".repeat(t)," ")}function numberDiffLines(e,t){let r=t,n=[],o=[...e];for(;o.length>0;){let{code:e,type:t,originalIdx:a}=o.shift(),l={code:e,type:t,i:r,originalIdx:a};switch(t){case"nochange":case"add":r++,n.push(l);break;case"remove":{n.push(l);let e=0;for(;o[0]?.type==="remove";){r++;let{code:t,type:a,originalIdx:l}=o.shift(),i={code:t,type:a,i:r,originalIdx:l};n.push(i),e++}r-=e}}}return n}function StructuredDiff({patch:e,dim:t,width:r}){let{theme:a}=(0,l.DP)(),i=(0,o.useMemo)(()=>`patch-${e.oldStart}-${e.newStart}-${e.oldLines||0}-${e.newLines||0}`,[e.oldStart,e.newStart,e.oldLines,e.newLines]);return(0,o.useMemo)(()=>formatDiff(e.lines,e.oldStart,r,t,a,i,e.wordDiffs),[e,r,t,a,i]).map(({key:e,element:t})=>o.createElement(n.Box,{key:e},t))}},74096(e,t,r){r.d(t,{JA:()=>d,bm:()=>FileContentDiff});var n=r(16928),o=r(35495),a=r(25973),l=r(53052),i=r(36988),s=r(55425),c=r(64225),u=r(64298);function intersperse(e,t){return e.flatMap((e,r)=>r?[t(r),e]:[e])}function FileContentDiff({filePath:e,structuredPatch:t,verbose:r,dimColor:d=!1,showSummary:m=!0}){let f=(0,a.useContextSelector)(l.Gb,e=>e.terminalWidth),{theme:h}=(0,i.DP)(),p=t.reduce((e,t)=>e+t.lines.filter(e=>e.startsWith("+")).length,0),g=t.reduce((e,t)=>e+t.lines.filter(e=>e.startsWith("-")).length,0),E=o.useMemo(()=>(0,s.vV)().enhance(t),[t]);return o.createElement(c.Box,{flexDirection:"column",gap:1},m?o.createElement(c.Text,null,o.createElement(c.Text,{bold:!0},r?e:(0,n.relative)(process.cwd(),e)),o.createElement(c.Text,{color:h.colors.secondary},p||g?"":" does not need to be updated"),p>0||g>0?" with ":"",p>0?o.createElement(o.Fragment,null,o.createElement(c.Text,{bold:!0},p)," ",p>1?"additions":"addition"):void 0,p>0&&g>0?" and ":void 0,g>0?o.createElement(o.Fragment,null,o.createElement(c.Text,{bold:!0},g)," ",g>1?"removals":"removal"):void 0):o.createElement(o.Fragment,null),intersperse(E.map((e,t)=>o.createElement(c.Box,{flexDirection:"column",key:`structured-${t}-${e.oldStart}-${e.newStart}`},o.createElement(u.r,{patch:e,dim:d,width:f-12}))),e=>o.createElement(c.Box,{key:`ellipsis-${e}`},o.createElement(c.Text,{color:h.colors.secondary},"..."))))}let d=Symbol("DiffWordService");var m=r(88523),f=r(50594);let h=class{enhance(e){return e.map(e=>this.processHunk(e))}processHunk(e){let t=new f.diff_match_patch,r=[],n=null,o=-1;for(let a=0;a<e.lines.length;a++){let l=e.lines[a];if(l.startsWith("-"))n=l.substring(1),o=a;else if(l.startsWith("+")&&null!==n){let e=l.substring(1),i=t.diff_main(n,e);t.diff_cleanupSemantic(i);let s=this.generateTokensFromDiff(i,"remove"),c=this.generateTokensFromDiff(i,"add"),u=Math.max(s.length,c.length),d=s.filter(e=>"unchanged"!==e.type).length;r.push(this.generateDiffInfo(o,"remove",s,{totalTokens:u,changedTokens:d})),r.push(this.generateDiffInfo(a,"add",c,{totalTokens:u,changedTokens:d})),n=null,o=-1}}return{...e,wordDiffs:r.length>0?r:void 0}}generateTokensFromDiff(e,t){let r=[];for(let[n,o]of e){let e=null;0===n?e="unchanged":"remove"===t&&-1===n?e="removed":"add"===t&&1===n&&(e="added"),null!==e&&this.tokenizeText(o).forEach(t=>{r.push({text:t,type:e})})}return r}tokenizeText(e){if(!e)return[];let t=[],r="";for(let n of Array.from(e)){let e=/\s/.test(n),o=/[^\w\s]/u.test(n);e||o?(r&&(t.push(r),r=""),t.push(n)):r+=n}return r&&t.push(r),t}generateDiffInfo(e,t,r,n){let o=n.totalTokens>0?n.changedTokens/n.totalTokens*100:0;return{lineIndex:e,type:t,tokens:r,metadata:{totalTokens:n.totalTokens,changedTokens:n.changedTokens,changeRatio:o,shouldHighlight:o<40}}}};!function(e,t,r,n){var o,a=arguments.length,l=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)l=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(o=e[i])&&(l=(a<3?o(l):a>3?o(t,r,l):o(t,r))||l);a>3&&l&&Object.defineProperty(t,r,l)}([(0,m.Component)(d)],h)},88890(e,t,r){r.d(t,{w:()=>highlightCode});var n=r(888);let highlightCode=(e,t)=>{if(!e)return"";t=t&&(0,n.supportsLanguage)(t)?t:"markdown";let r=e.replace(/\t/g," ");try{let e=(0,n.highlight)(r,{language:t});return e=(e=e.replace(/\u001b\[3m/g,"")).replace(/\u001b\[23m/g,"")}catch(e){return console.error("[highlight] highlightCode failed for language:",t,"error:",e),r}}},93509(e,t,r){r.d(t,{h1:()=>C.h,G8:()=>TitledBox,rm:()=>d,v7:()=>BranchNode,bm:()=>i.bm,qM:()=>m.q,Os:()=>TextTruncateBox,vB:()=>StatusLine,L3:()=>M.L,mS:()=>A});var n,o,a,l,i=r(74096),s=r(89223),c=r.n(s),u=r(64225);let BranchNode=({children:e})=>c().createElement(u.Box,{width:"100%",flexDirection:"row",marginLeft:2,alignItems:"flex-start"},c().createElement(u.Box,{flexShrink:0,width:2,minWidth:2},c().createElement(u.Text,null,"\u23BF ")),c().createElement(u.Box,{flexGrow:1,flexShrink:1,justifyContent:"flex-start",alignItems:"center"},e)),d=c().memo(({icon:e="\u2692"})=>{let t=Math.floor((0,s.useSyncExternalStore)(u.subscribeTick,u.getSnapshot)/10)%2==0;return c().createElement(u.Text,null,t?e:" ")});d.displayName="BreathingTool";var m=r(52412);r(88523),r(16928),r(71893),r(92309);var f=r(73667),h=r(34479);r(88415),r(80661),r(32647),r(33600),r(77835);var p=r(62909),g=r(53052),E=r(36988),w=r(55425);p.zC.CURRENT_APPECT,h.$D.getShortcutKeyArray(h.nP.SHIFT_TAB),p.zC.ALWAYS_APPECT,f.Xp,p.zC.REJECT,r(91943),r(66936),(n=a||(a={})).USE_THIS_AND_ALL_FUTURE="use_this_and_all_future",n.USE_THIS="use_this",n.REJECT="reject",(o=l||(l={})).CHECKING="checking",o.INITIAL_RENDER="initial_render",o.DIRECTORY_TRUST_REQUIRED="directory_trust_required",o.MCP_APPROVAL_REQUIRED="mcp_approval_required",o.READY="ready",r(19222);var y=r(50022),b=r(33075),x=r.n(b);let T={single:{topLeft:"\u250C",topRight:"\u2510",bottomLeft:"\u2514",bottomRight:"\u2518",horizontal:"\u2500",vertical:"\u2502"},double:{topLeft:"\u2554",topRight:"\u2557",bottomLeft:"\u255A",bottomRight:"\u255D",horizontal:"\u2550",vertical:"\u2551"},round:{topLeft:"\u256D",topRight:"\u256E",bottomLeft:"\u2570",bottomRight:"\u256F",horizontal:"\u2500",vertical:"\u2502"},bold:{topLeft:"\u250F",topRight:"\u2513",bottomLeft:"\u2517",bottomRight:"\u251B",horizontal:"\u2501",vertical:"\u2503"},classic:{topLeft:"+",topRight:"+",bottomLeft:"+",bottomRight:"+",horizontal:"-",vertical:"|"}},TitledBox=({borderText:e,borderStyle:t="round",borderColor:r,borderDimColor:n,borderTopColor:o,borderTopDimColor:a,borderBottomColor:l,borderBottomDimColor:i,borderLeftColor:u,borderLeftDimColor:d,borderRightColor:m,borderRightDimColor:f,children:h,width:p,height:g,...E})=>{let w=T[t]||T.round,b=e?.content||"",k=e?.position||"top",S=e?.offset??1,v=o??r,C=l??r,_=u??r,A=m??r,M=a??n,I=i??n,O=d??n,P=f??n,R=(0,s.useRef)(null),[D,L]=(0,s.useState)(null);(0,s.useEffect)(()=>{if((void 0===p||void 0===g)&&R.current)try{let e=(0,y.measureElement)(R.current);L(e)}catch(e){L({width:80,height:10})}},[p,g,h]);let $="number"==typeof p?p:D?.width??80,B="number"==typeof g?g:D?.height??10,N=Math.max($-2,1),W=Math.max(B-2,1),F=(0,s.useCallback)((e,t)=>{let r=e===k&&!!b,n=r?` ${b} `:"",o=n?x()(n).length:0,a=r?Math.max(0,S):0,l=r?Math.max(0,N-o-a):N,i=t?w.topLeft:w.bottomLeft,s=t?w.topRight:w.bottomRight,u=t?v:C,d=t?M:I;return c().createElement(y.Text,null,c().createElement(y.Text,{color:u,dimColor:d},i),a>0&&c().createElement(y.Text,{color:u,dimColor:d},w.horizontal.repeat(a)),r&&c().createElement(y.Text,{color:u,dimColor:d},n),l>0&&c().createElement(y.Text,{color:u,dimColor:d},w.horizontal.repeat(l)),c().createElement(y.Text,{color:u,dimColor:d},s))},[k,b,S,N,v,C,M,I,w]),j=(0,s.useMemo)(()=>F("top",!0),[F]),U=(0,s.useMemo)(()=>F("bottom",!1),[F]),H=(0,s.useMemo)(()=>{let e=[];for(let t=1;t<W;t++)e.push(c().createElement(y.Box,{key:`vertical-${t}`,flexDirection:"row",width:$,height:1},c().createElement(y.Box,{flexShrink:0,width:1},c().createElement(y.Text,{color:_,dimColor:O},w.vertical)),c().createElement(y.Box,{width:N}),c().createElement(y.Box,{flexShrink:0,width:1},c().createElement(y.Text,{color:A,dimColor:P},w.vertical))));return e},[W,$,N,_,A,O,P,w]);return c().createElement(y.Box,{flexDirection:"column",width:$,height:B},j,c().createElement(y.Box,{flexDirection:"column",width:$,height:W,flexGrow:1},c().createElement(y.Box,{flexDirection:"row",width:$,height:1,flexShrink:0},c().createElement(y.Box,{flexShrink:0,width:1},c().createElement(y.Text,{color:_,dimColor:O},w.vertical)),c().createElement(y.Box,{ref:R,width:N,height:W,...Object.assign({},{flexWrap:"nowrap",flexDirection:"row",flexGrow:0,flexShrink:1,overflowX:"visible",overflowY:"visible"},E)},h),c().createElement(y.Box,{flexShrink:0,width:1},c().createElement(y.Text,{color:A,dimColor:P},w.vertical))),H),U)};var k=r(63585),S=r(69738),v=r.n(S);let TextTruncateBox=({text:e,maxWidth:t,offset:r=0,position:n="end",...o})=>{let{terminalWidth:a}=(0,E._W)(),l=(0,s.useMemo)(()=>{if(!e)return"";let o=t??a-r;return o<=0?"":v()(e)>o?(0,k.A)(e,o,{position:n}):e},[e,t,r,a,n]);return c().createElement(u.Text,{...o},l)};var C=r(26112);let StatusLine=()=>{let{statusLine:e,isEnabled:t}=(0,g.xf)(),[r,n]=(0,s.useState)(0);return((0,s.useEffect)(()=>{let loadPadding=async()=>{try{let e=await (0,w.fq)().list();n(e.statusLine?.padding??0)}catch{}};loadPadding();let e=(0,w.fq)().onDidChange(()=>{loadPadding()});return()=>e.dispose()},[]),t&&e?.success&&e.text)?c().createElement(y.Box,{flexDirection:"column",paddingX:r},c().createElement(C.h,{text:e.text,offset:2*r,maxLines:3,dimColor:!0})):null};var _=r(55752);let A=c().memo(({messages:e,availableHeight:t,avgMessageHeight:r=2})=>{let n=Math.max(1,Math.floor((t-1)/r)),{displayMessages:o,hiddenCount:a}=(0,s.useMemo)(()=>e.length<=n?{displayMessages:e,hiddenCount:0}:{displayMessages:e.slice(0,n),hiddenCount:e.length-n},[e,n]);return 0===e.length?null:c().createElement(y.Box,{flexDirection:"column"},o.map((e,t)=>c().createElement(_.h,{key:`message-item-${e.id}-${t}-pending`,msg:e,expanded:!1})),a>0&&c().createElement(y.Text,{dimColor:!0},a," messages are hidden and waiting."))});r(8095);var M=r(93811);r(65003)},97202(e,t,r){var n=r(19806),o=r.n(n),a=r(16819),l=r(25576),i=r(34479);(0,n.memo)(e=>{let{value:t,onSubmit:r,onEscape:s,onChange:c,placeholder:u="",focus:d=!0,showCursor:m=!0,showPlaceholderWhenFocused:f=!1}=e,h=(0,n.useRef)(t),p=(0,n.useRef)(0),g=(0,n.useRef)(!1),[,E]=(0,n.useState)(0);(0,n.useEffect)(()=>{g.current||(h.current=t,g.current=!0)},[]);let w=(0,n.useCallback)(e=>{let{sequence:t}=e,n=i.$D.classifyInput(t);if(n.shouldBlock)return;let o=i.$D.handleSpecialKey(t);if(!o)return;let{input:a,key:l}=o,u=p.current,d=h.current,m=d.length;if(l.return){r&&r(d);return}if(l.escape){s&&s();return}if(l.leftArrow){p.current=Math.max(0,u-1),E(e=>e+1);return}if(l.rightArrow){p.current=Math.min(m,u+1),E(e=>e+1);return}if(l.home){p.current=0,E(e=>e+1);return}if(l.end){p.current=m,E(e=>e+1);return}if(l.backspace){if(u>0){let e=d.slice(0,u-1)+d.slice(u);h.current=e,p.current=u-1,c(e),E(e=>e+1)}return}if(l.delete){if(u<m){let e=d.slice(0,u)+d.slice(u+1);h.current=e,c(e),E(e=>e+1)}return}if(a&&n.type===i.NZ.NORMAL_TEXT){let e=d.slice(0,u)+a+d.slice(u);h.current=e,p.current=u+a.length,c(e),E(e=>e+1);return}},[c,r,s]);return(0,a.e)({focus:d,onParsedInput:w}),o().createElement(l.L,{value:h.current,cursorOffset:p.current,placeholder:u,showCursor:m,focus:d,showPlaceholderWhenFocused:f})})},64225(e,t,r){r.d(t,{Markdown:()=>a.o,SelectInput:()=>l.p,Spinner:()=>o.y$,getSnapshot:()=>o.dV,subscribeTick:()=>o.Yc});var n=r(11215);r.o(n,"Text")&&r.d(t,{Text:function(){return n.Text}}),r.o(n,"SelectInput")&&r.d(t,{SelectInput:function(){return n.SelectInput}}),r.o(n,"Box")&&r.d(t,{Box:function(){return n.Box}}),r.o(n,"Static")&&r.d(t,{Static:function(){return n.Static}}),r.o(n,"Markdown")&&r.d(t,{Markdown:function(){return n.Markdown}}),r.o(n,"useInput")&&r.d(t,{useInput:function(){return n.useInput}});var o=r(15297);r(57219),r(97202),r(25576);var a=r(14993),l=r(97394);r(36670)},14993(e,t,r){r.d(t,{o:()=>Markdown});var n=r(62279),o=r(11215),a=r(97855),l=r(19806),i=r.n(l),s=r(56421),c=r.n(s),u=r(33075),d=r.n(u),m=r(36031),f=r(80218),h=r(39457),p=r(80661),g=r(53052),E=r(36988),w=r(88890);function linkifyText(e){return m.A.isSupported?h.n.linkifyFilePaths(e):e}let y=!1;function configureMarked(){y||(y=!0,a.xI.use({tokenizer:{del(){}}}))}let Markdown=({content:e})=>{let{theme:t}=(0,E.DP)(),r=(0,f.useContextSelector)(g.Gb,e=>e.terminalWidth)||80;try{let n=(0,l.useMemo)(()=>applyMarkdown(e,t.colors,r),[e,t.colors,r]);return i().createElement(o.Text,null,n)}catch(t){return console.error("[Markdown] applyMarkdown failed, falling back to plain text.","content preview:",e?.slice(0,100),"error:",t),i().createElement(o.Text,null,e)}};function applyMarkdown(e,t,r){return configureMarked(),a.xI.lexer(e).map(e=>format(e,t,0,null,null,r)).join("").trim()}function format(e,t,r=0,o=null,a=null,l=80){try{switch(e.type){case"blockquote":{let r=(e.tokens??[]).map(e=>format(e,t,0,null,null,l)).join(""),n=p.T.chalk.dim("\u2502");return r.split("\n").map(e=>e.trim()?`${n} ${p.T.chalk.italic(e)}`:e).join("\n")}case"html":return(0,w.w)(e.text,"html");case"code":return(0,w.w)(e.text,e.lang)+"\n";case"codespan":return p.T.chalk.info(e.text);case"em":return p.T.chalk.italic((e.tokens??[]).map(e=>format(e,t,0,null,null,l)).join(""));case"strong":return p.T.chalk.bold((e.tokens??[]).map(e=>format(e,t,0,null,null,l)).join(""));case"heading":{let r=(e.tokens??[]).map(e=>format(e,t,0,null,null,l)).join("");switch(e.depth){case 1:return p.T.chalk.bold(p.T.chalk.italic(p.T.chalk.underline(r)))+"\n\n";case 2:return p.T.chalk.bold(p.T.chalk.info(r))+"\n\n";default:return p.T.chalk.bold(r)+"\n\n"}}case"hr":return"---";case"image":return e.href;case"link":{let r=(e.tokens??[]).map(r=>format(r,t,0,null,e,l)).join(""),n=d()(r);if(e.href.startsWith("mailto:"))return e.href.replace(/^mailto:/,"");if(n&&n!==e.href)return(0,m.A)(r,e.href,{fallback:!1});return p.T.chalk.info(e.href)}case"list":return e.items.map((n,o)=>format(n,t,r,e.ordered?e.start+o:null,e,l)).join("");case"list_item":return(e.tokens??[]).map(n=>`${" ".repeat(r)}${format(n,t,r+1,o,e,l)}`).join("");case"paragraph":return(e.tokens??[]).map(e=>format(e,t,0,null,null,l)).join("")+"\n";case"space":case"br":return"\n";case"text":if(a?.type==="list_item"){let i="-";i=a.task?a.checked?n.Ay.checkboxOn:n.Ay.checkboxOff:null===o?"-":getListNumber(r,o)+".";let s=e.tokens?e.tokens.map(n=>format(n,t,r,o,e,l)).join(""):e.text;return`${i} ${linkifyText(s)}
|
|
9
|
+
`}if(a?.type==="link")return e.text;return linkifyText(e.text);case"table":return formatTable(e,t,l);case"escape":return e.text}return""}catch(t){return console.error("[Markdown] format() failed for token type:",e.type,"error:",t),e.raw??e.text??""}}function formatCell(e,t,r){return e?.map(e=>format(e,t,0,null,null,r)).join("")??""}function getPlainWidth(e,t,r){return c()(d()(formatCell(e,t,r)))}function getMinWidth(e,t,r){let n=d()(formatCell(e,t,r)).split(/\s+/).filter(e=>e.length>0);return 0===n.length?3:Math.max(...n.map(e=>c()(e)),3)}function wrapText(e,t,r=!1){if(t<=0)return[e];let n=e.trimEnd().split("\n"),o=[];for(let e of n){if(c()(e)<=t){o.push(e);continue}let n=e.split(/(\s+)/),a="";for(let e of n)c()(a+e)>t&&a.trim()?(o.push(a.trimEnd()),a=/^\s+$/.test(e)?"":e):a+=e;if(a.trim()&&o.push(a.trimEnd()),r){let e=[];for(let r of o.splice(0))if(c()(r)<=t)e.push(r);else{let n=r;for(;c()(n)>t;){let r=0,o=0;for(let e of n){let n=c()(e);if(o+n>t)break;o+=n,r+=e.length}0===r&&(r=1),e.push(n.slice(0,r)),n=n.slice(r)}n&&e.push(n)}return e.length>0?e:[""]}}return o.length>0?o:[""]}function padAligned(e,t,r,n){let o=Math.max(0,r-t);if("center"===n){let t=Math.floor(o/2);return" ".repeat(t)+e+" ".repeat(o-t)}return"right"===n?" ".repeat(o)+e:e+" ".repeat(o)}function formatTable(e,t,r){let n=e.header.length;if(0===n)return"";try{let o,a=e.header.map((n,o)=>{let a=getMinWidth(n.tokens,t,r);for(let n of e.rows)a=Math.max(a,getMinWidth(n[o]?.tokens,t,r));return a}),l=e.header.map((n,o)=>{let a=Math.max(getPlainWidth(n.tokens,t,r),3);for(let n of e.rows)a=Math.max(a,Math.max(getPlainWidth(n[o]?.tokens,t,r),3));return a}),i=Math.max(r-(1+3*n)-4,3*n),s=a.reduce((e,t)=>e+t,0),c=l.reduce((e,t)=>e+t,0),u=!1;if(c<=i)o=l;else if(s<=i){let e=i-s,t=l.map((e,t)=>e-a[t]),r=t.reduce((e,t)=>e+t,0);o=a.map((n,o)=>0===r?n:n+Math.floor(t[o]/r*e))}else{u=!0;let e=i/s;o=a.map(t=>Math.max(Math.floor(t*e),3))}let d=1;for(let a=0;a<n;a++)d=Math.max(d,wrapText(formatCell(e.header[a].tokens,t,r),o[a],u).length);for(let n of e.rows)for(let e=0;e<n.length;e++)d=Math.max(d,wrapText(formatCell(n[e]?.tokens,t,r),o[e],u).length);if(d>4)return renderVerticalTable(e,t,r)+"\n";return renderHorizontalTable(e,t,r,o,u)+"\n"}catch(n){return console.error("[Markdown] formatTable failed, using fallback.","error:",n),renderFallbackTable(e,t,r)}}function renderFallbackTable(e,t,r){let n=[],o=e.header.map(e=>formatCell(e.tokens,t,r));for(let a of(n.push("| "+o.join(" | ")+" |"),n.push("| "+e.header.map(()=>"---").join(" | ")+" |"),e.rows)){let e=a.map(e=>formatCell(e?.tokens,t,r));n.push("| "+e.join(" | ")+" |")}return n.join("\n")+"\n"}function renderRowLines(e,t,r,n,o,a,l){let i=e.map((e,r)=>wrapText(formatCell(e.tokens,a,l),t[r],o)),s=Math.max(...i.map(e=>e.length),1),u=p.T.chalk.dim("\u2502"),m=[];for(let o=0;o<s;o++){let a=u;for(let l=0;l<e.length;l++){let e=i[l],s=o<e.length?e[o]:"",m=t[l],f=n?"center":r?.[l]??"left";a+=" "+padAligned(n?p.T.chalk.bold(s):s,c()(d()(s)),m,f)+" "+u}m.push(a)}return m}function renderBorderLine(e,t){let[r,n,o,a]={top:["\u250C","\u2500","\u252C","\u2510"],middle:["\u251C","\u2500","\u253C","\u2524"],bottom:["\u2514","\u2500","\u2534","\u2518"]}[e],l=r;return t.forEach((e,r)=>{l+=n.repeat(e+2),l+=r<t.length-1?o:a}),p.T.chalk.dim(l)}function renderHorizontalTable(e,t,r,n,o){let a=[];return a.push(renderBorderLine("top",n)),a.push(...renderRowLines(e.header,n,e.align,!0,o,t,r)),a.push(renderBorderLine("middle",n)),e.rows.forEach((l,i)=>{a.push(...renderRowLines(l,n,e.align,!1,o,t,r)),i<e.rows.length-1&&a.push(renderBorderLine("middle",n))}),a.push(renderBorderLine("bottom",n)),a.join("\n")+"\n"}function renderVerticalTable(e,t,r){let n=e.header.map(e=>d()(formatCell(e.tokens,t,r))),o=Math.min(r-1,40),a=p.T.chalk.dim("\u2500".repeat(o)),l=[];return e.rows.forEach((e,o)=>{o>0&&l.push(a),e.forEach((e,o)=>{let a=n[o]||`Column ${o+1}`,i=formatCell(e.tokens,t,r).trimEnd().replace(/\n+/g," ").replace(/\s+/g," ").trim();l.push(`${p.T.chalk.bold(a+":")} ${i}`)})}),l.join("\n")+"\n"}function numberToLetter(e){let t="";for(;e>0;)t=String.fromCharCode(97+--e%26)+t,e=Math.floor(e/26);return t}let b=[[1e3,"m"],[900,"cm"],[500,"d"],[400,"cd"],[100,"c"],[90,"xc"],[50,"l"],[40,"xl"],[10,"x"],[9,"ix"],[5,"v"],[4,"iv"],[1,"i"]];function numberToRoman(e){let t="";for(let[r,n]of b)for(;e>=r;)t+=n,e-=r;return t}function getListNumber(e,t){switch(e){case 0:case 1:default:return t.toString();case 2:return numberToLetter(t);case 3:return numberToRoman(t)}}},36670(e,t,r){r(94302)},94302(e,t,r){r(57975)},97394(e,t,r){r.d(t,{p:()=>u});var n=r(66026),o=r(57975),a=r(22019),l=r.n(a),i=r(62279),s=r(36988);function Indicator({isSelected:e=!1}){let{theme:t}=(0,s.DP)();return l().createElement(n.Box,{marginRight:1},e?l().createElement(n.Text,{color:t.colors.brand},i.Ay.pointer):l().createElement(n.Text,null," "))}function Item({isSelected:e=!1,label:t}){let{theme:r}=(0,s.DP)();return l().createElement(n.Text,{color:e?r.colors.brand:void 0},t)}var c=r(28806);function SelectInputComponent({items:e=[],isFocused:t=!0,initialIndex:r=0,indicatorComponent:i=Indicator,showIndicator:u=!0,itemComponent:d=Item,limit:m,disabledInputMode:f=[],disableLoop:h=!1,initialValue:p,onSelect:g,onHighlight:E}){let{terminalWidth:w}=(0,s._W)(),y="number"==typeof m&&e.length>m,b=y?Math.min(m,e.length):e.length,x=(0,a.useMemo)(()=>(0,c.hE)(e,r,p),[p,r,e]),[T,k]=(0,a.useState)(x),[S,v]=(0,a.useState)(()=>{if(!y)return 0;let t=Math.max(0,x-(b-1));return Math.min(t,Math.max(0,e.length-b))}),C=(0,a.useRef)(e);(0,a.useEffect)(()=>{if(!(0,o.isDeepStrictEqual)(C.current.map(e=>e.value),e.map(e=>e.value))){let t=(0,c.hE)(e,0,p);if(k(t),y){let r=Math.max(0,t-(b-1));v(r=Math.min(r,Math.max(0,e.length-b)))}else v(0)}C.current=e},[e,p,y,b]);let _=(0,a.useMemo)(()=>!f?.includes("number"),[f]),A=(0,a.useMemo)(()=>!f?.includes("vim"),[f]);(0,a.useEffect)(()=>{if(!y)return;let t=(0,c.L6)(T,S,b,e.length);t!==S&&v(t)},[T,S,y,b,e.length]);let M=(0,a.useMemo)(()=>{let t=Math.max(0,S);return e.slice(t,t+b)},[e,S,b]);(0,n.useInput)((0,a.useCallback)((t,r)=>{if((A&&"k"===t||r.upArrow)&&k((0,c.oy)(e,T,"up",h)),(A&&"j"===t||r.downArrow)&&k((0,c.oy)(e,T,"down",h)),_&&/^[1-9]$/.test(t)){let r=Number.parseInt(t,10)-1;if(r>=0&&r<M.length){let t=e[Math.max(0,S)+r];t&&!t.disabled&&g?.(t)}}if(r.return&&g){let t=e[T];t&&!t.disabled&&g(t)}},[T,e,M,S,h,A,_,g]),{isActive:t});let I=M.length>0?Math.max(...M.map(e=>e.label.length)):0;return I+2>=w&&(I=w-8),(0,a.useEffect)(()=>{E&&e[T]&&E(e[T])},[T,e,E]),l().createElement(n.Box,{flexDirection:"column"},M.map((e,t)=>{let r=Math.max(0,S)+t===T;return l().createElement(n.Box,{key:e.key??e.value},u&&l().createElement(i,{isSelected:r}),l().createElement(d,{...e,index:t,isSelected:r,maxLabelLength:I}))}))}let u=l().memo(SelectInputComponent)},57219(e,t,r){var n=r(19806),o=r.n(n),a=r(88523),l=r(53052),i=r(55425),s=r(16819),c=r(25576);function shouldCtrlDDeleteAfterCursor(e,t,r){return e&&t>0&&r<t}function getCtrlTextBoundaryScope(e,t,r){return e&&t&&!r?"line":"document"}var u=r(32894),d=r(26210),m=r(34479),f=r(88415),h=r(94859),p=r(2769),g=r(36988),E=r(62909),w=r(28806);(0,n.memo)(e=>{let{placeholder:t="",focus:r=!0,mask:y,showCursor:b=!0,initialValue:x="",disabledShortcuts:T=[],multiline:k=!1,searchHighlight:S,showPlaceholderWhenFocused:v,onSubmit:C,onHistoryNavigation:_,onEscape:A,onPaste:M,onTabKey:I,onDeleteEmpty:O,onEditPrompt:P,onVimAction:R,onUndo:D,onSwitchModel:L,onCopyLastMessage:$,onThinkingToggle:B,onEditQueue:N,onLeftArrowOnEmpty:W}=e,{state:F,dispatch:j,actions:U}=(0,l.R7)(),{isMenuActive:H}=(0,p.E)(),{suggestions:G,checkAndClearSentFromSuggestion:V}=(0,l.p3)(),K=(0,i.PK)(),{vimState:J}=(0,l.J5)(),{isSurveyOpen:q}=(0,l.s1)(),Y=(0,n.useRef)(q);(0,n.useEffect)(()=>{Y.current=q},[q]);let X=(0,n.useRef)(F);X.current=F,(0,n.useEffect)(()=>{x&&F.value!==x&&U.setValue(x)},[]);let z=(0,g.Lu)(F.value,F.cursorOffset,F.currentLine,U,k);(0,n.useEffect)(()=>{let e=(0,i.QI)().atMentionedSubject.subscribe(e=>{if(!e||!e.filePath)return;let{filePath:t,lineStart:r,lineEnd:n}=e,o=t;try{let e=f.P.getWorkDir();o=f.P.getRelativePath(t,e)||t}catch{}let a="";void 0!==r&&void 0!==n?a=`L${r+1}-${n+1}`:void 0!==r?a=`L${r+1}`:void 0!==n&&(a=`L${n+1}`);let l=a?`@${o}#${a}`:`@${o}`;ed(`${l} `)});return()=>e.unsubscribe()},[U]);let Z=(0,n.useRef)(null),Q=(0,n.useRef)(0),ee=(0,n.useRef)(!1),et=(0,n.useRef)(null),er=(0,n.useRef)(null),en=(0,n.useRef)(!1),eo=(0,n.useRef)(!1),ea=(0,n.useCallback)(()=>{Z.current&&(clearTimeout(Z.current),Z.current=null)},[]),el=(0,n.useCallback)(e=>{ee.current=e,U.setCoalescing(e)},[U]),ei=(0,n.useCallback)(()=>{et.current&&(clearTimeout(et.current),et.current=null),er.current&&(clearTimeout(er.current),er.current=null),en.current=!1,U.removeState(E.W_.WINDOWS_PASTE_HINT)},[U]),es=(0,n.useCallback)(async(e,t=!0)=>{let r=d.YF.formatInput(e,{preserveEsc:!0,preserveTabs:!0});ed(await K.processPasteWithImageDetection(r,t))},[U,K]),ec=(0,n.useCallback)(()=>{if(Q.current=Date.now(),Z.current)return;let flushWhenIdle=()=>{(async()=>{let e=80-(Date.now()-Q.current);if(e>0){Z.current=setTimeout(flushWhenIdle,e);return}Z.current=null;let t=K.flushCoalesce();t&&await es(t,!1),ee.current&&el(!1),ei()})().catch(e=>{console.error("Failed to flush coalesced paste",e),Z.current=null,el(!1)})};Z.current=setTimeout(flushWhenIdle,80)},[K,es,el,ei]),eu=(0,n.useCallback)(e=>["h","j","k","l","w","b","e","0","$","^","G","x","d","c","D","C",".","i","a","I","A","o","O","g"].includes(e),[]),ed=(0,n.useCallback)(e=>{if(J.isEnabled&&J.mode===l.g3.NORMAL){R&&eu(e)&&R(e);return}U.insertText(e)},[J.isEnabled,J.mode,R,eu,U]),em=(0,n.useCallback)(()=>{a.isWindows&&!en.current&&(en.current=!0,U.pushState(E.W_.WINDOWS_PASTE_HINT),er.current=setTimeout(()=>{er.current=null,en.current=!1,U.removeState(E.W_.WINDOWS_PASTE_HINT)},1e4))},[U]),ef=(0,n.useCallback)(()=>{!a.isWindows||en.current||et.current||(et.current=setTimeout(()=>{et.current=null,ee.current&&em()},250))},[em]),eh=(0,n.useCallback)(async()=>{if(!a.isWindows)return!1;eo.current=!0;try{let e=await u.E.readTextFromClipboard();if(!e)return!1;return ea(),K.flushCoalesce(),ei(),el(!1),await es(e,!1),!0}finally{eo.current=!1}},[ea,ei,K,es,el]),ep=(0,n.useCallback)(async(e,t)=>{let{value:r,cursorOffset:n}=F;for(let r of T)if(r(e,t))return;let o=w.X$.isCommandOrFileMenuContextActive(r,F.states,n)&&G.length>0,l=H&&!w.X$.includeDefault(F.states);if(t.tab&&!t.shift){if(o)return;if(I)return void I()}if(B&&t.meta&&!t.ctrl&&"t"===e)return void B();if(!o&&!l){if(t.upArrow&&t.meta&&N)return void N();if(t.upArrow&&!t.shift)return void(k?!z.moveToLineAbove()&&_&&_("up"):_?.("up"));if(t.downArrow&&!t.shift)return void(k?!z.moveToLineBelow()&&_&&_("down"):_&&_("down"))}if(t.leftArrow){if(t.ctrl)U.moveCursor(0);else if(t.meta)U.moveToPreviousWord();else if(t.shift){let e=h.$.moveToPreviousChar(r,n);U.moveCursor(e)}else if(W&&""===r)W();else{let e=h.$.moveToPreviousChar(r,n);U.moveCursor(e)}return}if(t.rightArrow){if(t.ctrl)U.moveCursor(r.length);else if(t.meta)U.moveToNextWord();else{let e=h.$.moveToNextChar(r,n);U.moveCursor(e)}return}if(t.ctrl||t.meta){if(t.meta&&t.backspace)return void U.deletePreviousWord();if(t.meta&&t.delete)return void U.deleteNextWord();switch(e){case"w":t.ctrl&&U.deletePreviousWord();return;case"v":if(t.meta&&await eh())return;M?.();return;case"a":j({type:"MOVE_TO_TEXT_BOUNDARY",payload:{boundary:"start",scope:getCtrlTextBoundaryScope(k,t.ctrl,t.meta)}});return;case"e":j({type:"MOVE_TO_TEXT_BOUNDARY",payload:{boundary:"end",scope:getCtrlTextBoundaryScope(k,t.ctrl,t.meta)}});return;case"k":if(k){let{lineIndex:e}=z.getCurrentLineInfo(),t=z.getOffsetFromLineColumn(e,z.lines[e].length);U.deleteToLineEnd(t)}else U.deleteToLineEnd(r.length);return;case"u":case"c":if(k){let{lineIndex:e}=z.getCurrentLineInfo(),t=z.getOffsetFromLineColumn(e,0);U.deleteToLineStart(t)}else U.deleteToLineStart(0);return;case"j":t.ctrl&&k&&U.insertNewline();return;case"g":t.ctrl&&P?.();return;case"p":if(t.meta)return void L?.();break;case"-":case"\x1f":(t.ctrl||t.meta)&&D?.();return;case"y":t.ctrl&&$?.();return;case"b":if(t.ctrl){let e=h.$.moveToPreviousChar(r,n);U.moveCursor(e)}return;case"f":if(t.ctrl){let e=h.$.moveToNextChar(r,n);U.moveCursor(e);return}break;case"t":case"r":case"o":return;case"d":shouldCtrlDDeleteAfterCursor(t.ctrl,r.length,n)&&U.deleteAfterCursor();return;case"m":if(a.isWindows&&t.meta)return}}if(t.escape)return void A?.();if(t.return){if(V())return;let{value:e,cursorOffset:r,states:n}=X.current;if(w.X$.isCommandOrFileMenuContextActive(e,n,r)&&G.length>0)return;let o=e.slice(0,r).endsWith("\\");if(k&&(t.shift||o)){o&&U.deleteBeforeCursor(),U.insertNewline();return}C?.(e);return}if(t.backspace)return t.ctrl||t.meta||t.shift?void 0:0===n&&0===r.length?void O?.():void(0===n||U.deleteBeforeCursor());if(t.delete)return t.ctrl||t.meta||t.shift?void 0:0===n&&0===r.length?void O?.():void(n>=r.length||U.deleteAfterCursor());if(t.home){if(k){let{lineIndex:e}=z.getCurrentLineInfo(),t=z.getOffsetFromLineColumn(e,0);U.moveCursor(t)}else U.moveCursor(0);return}if(t.end){if(k){let{lineIndex:e,line:t}=z.getCurrentLineInfo(),r=z.getOffsetFromLineColumn(e,t.length);U.moveCursor(r)}else U.moveCursor(r.length);return}e&&(ed(e),U.selectSuggestion(-1))},[F,j,U,T,H,G,z,k,I,_,M,eh,A,C,O,P,D,L,$,B,N,W,V]),eg=(0,n.useCallback)(async e=>{let{sequence:t,isPasted:r}=e;if(!r&&t&&eo.current&&t.length>1)return;if(r){let e=K.flushCoalesce();e&&await es(e,!1),ea(),await es(t,!0),el(!1),ei();return}let n=m.$D.classifyInput(t);if(n.shouldBlock)return;if("\u03C0"===t)return void L?.();if("\u2020"===t)return void B?.();if(Y.current&&("0"===t||"1"===t||"2"===t||"3"===t))return;if(n.type===m.NZ.NORMAL_TEXT&&t){let e=K.addToCoalesce(t);if(e.buffer){let t=d.YF.computePastedLineCount(e.buffer);e.buffer.length>1024||t>3?await es(e.buffer,!1):ed(d.YF.formatInput(e.buffer))}else ec(),ee.current||el(!0),ef();return}let o=m.$D.handleSpecialKey(t);if(!o)return;let{input:l,key:i}=o;if(a.isWindows&&"v"===l&&i.meta)return void await ep(l,i);let s=K.flushCoalesce();s&&await es(s,!1),ea(),el(!1),ei(),await ep(l,i)},[K,es,ec,ef,ea,ei,el,ep,L,B]);return((0,n.useEffect)(()=>()=>{Z.current&&clearTimeout(Z.current),et.current&&clearTimeout(et.current),er.current&&clearTimeout(er.current)},[]),(0,s.e)({focus:r,onParsedInput:eg}),k)?o().createElement(c.L,{value:F.value,cursorOffset:F.cursorOffset,placeholder:t,showCursor:b,focus:r,multiline:!0,mask:y,lines:z.lines,lineOffsets:z.lineOffsets,searchHighlight:S,showPlaceholderWhenFocused:v}):o().createElement(c.L,{value:F.value,cursorOffset:F.cursorOffset,placeholder:t,showCursor:b,focus:r,mask:y,searchHighlight:S,showPlaceholderWhenFocused:v})})},25576(e,t,r){r.d(t,{L:()=>l});var n=r(11215),o=r(19806),a=r.n(o);function markImeCaret(e){return`\u001b[999m${e}`}let applySearchHighlight=(e,t)=>{if(!t||!t.query)return e;let{query:r}=t,n=e.toLowerCase(),o=r.toLowerCase(),a=n.indexOf(o);if(-1===a)return e;let l=e.substring(0,a),i=e.substring(a,a+r.length),s=e.substring(a+r.length);return`${l}\u001b[33m${i}\u001b[39m${s}`},l=(0,o.memo)(e=>{let{value:t,cursorOffset:r,placeholder:l,showCursor:i=!0,focus:s=!0,multiline:c=!1,mask:u,lines:d,lineOffsets:m,searchHighlight:f,showPlaceholderWhenFocused:h=!1}=e,p=(0,o.useMemo)(()=>u?u.repeat(t.length):t,[t,u]);if(!c){let e=(0,o.useMemo)(()=>((e,t,r,n,o,a,l)=>{if(a?.query)return!e&&o?o:applySearchHighlight(e,a);if(!r||!n)return!e&&o?`\u001b[2m${o}\u001b[22m`:e;if(0===e.length){if(l&&o){let e=o[0]||" ",t=o.slice(1);return`${markImeCaret(`\u001b[7m${e}\u001b[27m`)}\u001b[2m${t}\u001b[22m`}return markImeCaret("\x1b[7m \x1b[27m")}let i="";for(let r=0;r<e.length;r++)r===t?i+=markImeCaret(`\u001b[7m${e[r]}\u001b[27m`):i+=e[r];return t===e.length&&(i+=markImeCaret("\x1b[7m \x1b[27m")),i})(p,r,i,s,l,f,h),[p,r,i,s,l,f,h]);return a().createElement(n.Box,null,a().createElement(n.Text,null,e))}return d&&m?a().createElement(n.Box,{flexDirection:"column"},a().createElement(n.Box,{flexDirection:"column"},d.map((e,o)=>{let{startOffset:c,endOffset:u}=m[o],d=e;if(f?.query&&(d=applySearchHighlight(d,f)),i&&s&&!f?.query&&r>=c&&r<=u&&(d=((e,t)=>{if(0===e.length)return 0===t?markImeCaret("\x1b[7m \x1b[27m"):"";let r="",n=0;for(;n<e.length;)if(n===t&&t<e.length){let t=e.charCodeAt(n);if(t>=55296&&t<=56319&&n+1<e.length){let t=e.charCodeAt(n+1);if(t>=56320&&t<=57343){r+=markImeCaret(`\u001b[7m${e[n]}${e[n+1]}\u001b[27m`),n+=2;continue}}r+=markImeCaret(`\u001b[7m${e[n]}\u001b[27m`),n++}else r+=e[n],n++;return t>=e.length&&(r+=markImeCaret("\x1b[7m \x1b[27m")),r})(e,r-c)),0===o&&l&&0===t.length)if(h&&i&&s){let e=l[0]||" ",t=l.slice(1);d=`${markImeCaret(`\u001b[7m${e}\u001b[27m`)}\u001b[2m${t}\u001b[22m`}else i&&s||(d=`\u001b[2m${l}\u001b[22m`);return d||0!==e.length||(d=" "),a().createElement(n.Text,{key:`${o}-${d||e}-render`},d||e)}))):null})},65003(e,t,r){r(64225),r(53052),r(31349),r(55425)},19222(e,t,r){r(53052),r(36988)},93811(e,t,r){r.d(t,{L:()=>SeparatorBox});var n=r(89223),o=r.n(n),a=r(64225),l=r(36988);let SeparatorBox=({text:e,separatorChar:t="-"})=>{let{columns:r}=(0,l.HP)(),n=Math.max(0,r-e.length-2),i=Math.floor(n/2);return o().createElement(a.Box,{marginTop:1,marginBottom:0},o().createElement(a.Text,{dimColor:!0},t.repeat(Math.max(0,i))," ",e," ",t.repeat(Math.max(0,n-i))))}},15297(e,t,r){r.d(t,{Yc:()=>subscribeTick,dV:()=>getSnapshot,y$:()=>d});var n=r(89223),o=r.n(n),a=r(50022),l=r(51473),i=r.n(l);let s=0,c=null,u=new Set;function startTicking(){c||"function"==typeof(c=setInterval(()=>{for(let e of(s++,u))e()},80)).unref&&c.unref()}function stopTicking(){c&&0===u.size&&(clearInterval(c),c=null)}function subscribeTick(e){return u.add(e),startTicking(),()=>{u.delete(e),stopTicking()}}function getSnapshot(){return s}let d=o().memo(({type:e="dots"})=>{let t=(0,n.useSyncExternalStore)(subscribeTick,getSnapshot),r=i()[e]??i().dots,l=r.frames.length;return o().createElement(a.Text,null,r.frames[t%l])});d.displayName="Spinner"},8095(e,t,r){r(53052),r(36988),r(14274),r(64225)},26112(e,t,r){r.d(t,{h:()=>TextWrapBox});var n=r(39457),o=r(89223),a=r.n(o),l=r(69738),i=r.n(l),s=r(36988),c=r(64225);function splitWrapWords(e){return e.match(/(?:"[^"]*"|'[^']*')\S*|\S+/gu)??[]}let TextWrapBox=({text:e,maxWidth:t,offset:r=0,wordBreak:l="normal",rowBackground:u=!1,maxLines:d,ellipsis:m=!1,ellipsisText:f,linkifyFilePaths:h=!1,linkCwd:p,...g})=>{let{terminalWidth:E}=(0,s._W)(),w=(0,o.useMemo)(()=>t??E-r,[r,t,E]),y=(0,o.useMemo)(()=>{if(!e||w<=0)return[e||""];let t=[];for(let r of e.split(/\r?\n/)){if(!r){t.push("");continue}if("break-all"===l){let e="";for(let n of r)i()(e)>=w?(t.push(e),e=n):e+=n;e&&t.push(e)}else{let e=splitWrapWords(r),o="";for(let r of e)if(i()(r)>w){if(h&&n.n.linkifyFilePaths(r,p)!==r){o.trim()&&t.push(o.trim()),t.push(r),o="";continue}o&&(t.push(o.trim()),o="");let e=r;for(;i()(e)>w;){let r=0,n="";for(let t of e){if(i()(n+t)>w)break;n+=t,r++}t.push(n),e=e.substring(r)}e&&(o=e+" ")}else{let e=o+r+" ";i()(e)>w&&o.trim()?(t.push(o.trim()),o=r+" "):o=e}o.trim()&&t.push(o.trim())}}let r=t.length>0?t:[""];if(void 0!==d&&r.length>d){let e=r.filter(e=>e.trim()),t=r.length,n=e.slice(0,d),o=t-d;r=m&&o>0?[...n,f?f(o):`... ${o} more lines`]:n}return r},[e,w,l,d,m,f,h,p]),{color:b,dimColor:x,bold:T,italic:k,underline:S,strikethrough:v,inverse:C,wrap:_,...A}=g,M={color:b,dimColor:x,bold:T,italic:k,underline:S,strikethrough:v,inverse:C,wrap:_};return a().createElement(c.Box,{flexDirection:"column"},y.map((e,t)=>{let r=h?n.n.linkifyFilePaths(e,p):e,o=a().createElement(c.Text,{key:`${t}-${e}-text`,...M},r);return e.trim()?u?a().createElement(c.Box,{key:`${t}-${e}-row`,alignSelf:"flex-start",...A},o):o:a().createElement(c.Box,{key:`${t}-${e}-empty`,height:1})}))}},62909(e,t,r){var n,o,a,l;r.d(t,{W_:()=>o,zC:()=>n}),r(13866),(a=n||(n={})).CURRENT_APPECT="current_accpet",a.ALWAYS_APPECT="always_accept",a.ALWAYS_APPECT_PROJECT_LOCAL="always_accept_project_local",a.APPECT_AND_SWITCH_TO_AUTO_ACCEPT="accept_and_switch_to_auto_accept",a.ACCEPT_AND_SWITCH_TO_MANUAL_EDITS="accept_and_switch_to_manual_edits",a.REJECT="reject",a.REJECT_AND_EXIT_PLAN="reject_and_exit_plan",a.VIEW_RAW_SCRIPT="view_raw_script",(l=o||(o={})).HELP="help",l.BASH="bash",l.MEMORY="memory",l.KEY_PRESS="key-press",l.MENU="menu",l.NO_IMAGE_HINT="no-image-hint",l.PASTE_HINT="paste-hint",l.CLIPBOARD_COMPATIBILITY_ERROR="clipboard-compatibility-error",l.UPDATE_NOTIFICATION="update-notification",l.THINKING="thinking",l.IMAGE_NOT_SUPPORTED="image-not-supported",l.VIM_INSERT_MODE="vim-insert-mode",l.REVERSE_SEARCH="reverse-search",l.COPY_SUCCESS="copy-success",l.COPY_FAILED="copy-failed",l.COPY_NO_MESSAGE="copy-no-message",l.WINDOWS_PASTE_HINT="windows-paste-hint"},91192(e,t,r){r.d(t,{aO:()=>o});var n=r(26792);r(20991),r(55425),r(19175);let o=(0,n.createContext)({})},49188(e,t,r){r.d(t,{r:()=>o});var n=r(26792);r(36988),r(568),r(99601),r(13389),r(31349);let o=(0,n.createContext)({})},77153(e,t,r){r.d(t,{s1:()=>useFeedbackSurveyContext});var n=r(26792),o=r(35717);let a=(0,n.createContext)({}),useFeedbackSurveyContext=()=>({isSurveyOpen:(0,n.useContextSelector)(a,e=>e.surveyState===o.Ij.OPEN)})},53052(e,t,r){r.d(t,{i9:()=>useChatHeaderContext,xf:()=>useStatusLineContext,R7:()=>input_reducer_context_useInputReducerContext,p3:()=>useSuggestionContext,LV:()=>layout_context_useLayoutContext,Mp:()=>y.M,vg:()=>useInputHistoryContext,s1:()=>E.s1,aO:()=>m.aO,J5:()=>w.J5,Gb:()=>d.G,Gk:()=>a,g3:()=>w.g3,Lg:()=>i.L,rZ:()=>s.r});var n,o,a,l,i=r(31349),s=r(49188),c=r(46824);(n=a||(a={})).INPUT_BOTTOM="input-bottom",n.TOP="top",n.Input="input",a.INPUT_BOTTOM,a.TOP,a.Input;let u=(0,c.createContext)({}),layout_context_useLayoutContext=()=>(0,c.useContext)(u);var d=r(19175);r(57318);var m=r(91192);r(55882),r(55425);let f=(0,c.createContext)({}),useStatusLineContext=()=>(0,c.useContext)(f);r(62909),r(60966);let h=(0,c.createContext)({}),input_reducer_context_useInputReducerContext=()=>{let e=(0,c.useContext)(h);if(!e)throw Error("useInputReducerContext must be used within InputReducerProvider");return e},p=(0,c.createContext)(void 0),useInputHistoryContext=()=>{let e=(0,c.useContext)(p);if(!e)throw Error("useInputHistoryContext must be used within InputHistoryProvider");return e},g=(0,c.createContext)({}),useChatHeaderContext=()=>(0,c.useContext)(g);r(88523),r(67662),r(63295),r(66936),r(23701),r(79803),r(94816),(0,c.createContext)(void 0),(o=l||(l={})).CTRL_C="CTRL_C",o.CTRL_D="CTRL_D",(0,c.createContext)(void 0);var E=r(77153),w=r(94309),y=r(15298);r(8153),r(4433),r(44302),r(8076),r(15538);let b=(0,c.createContext)(null),useSuggestionContext=()=>{let e=(0,c.useContext)(b);if(!e)throw Error("useSuggestionContext must be used within SuggestionProvider");return e}},28429(e,t,r){r.d(t,{r:()=>n});let n={current:null}},57318(e,t,r){(0,r(46824).createContext)({})},31349(e,t,r){r.d(t,{L:()=>useSessionContext});var n=r(46824);r(55425);let o=(0,n.createContext)({}),useSessionContext=()=>(0,n.useContext)(o)},15298(e,t,r){r.d(t,{M:()=>useSettingsContext});var n=r(46824);r(55425);let o=(0,n.createContext)({hookOutputCollapsed:!1,leftArrowOpensAgents:!0}),useSettingsContext=()=>(0,n.useContext)(o)},19175(e,t,r){r.d(t,{G:()=>o});var n=r(26792);r(60114);let o=(0,n.createContext)({})},55882(e,t,r){r.d(t,{d:()=>useThemeContext}),r(88523);var n=r(46824);r(36898);let o=(0,n.createContext)({}),useThemeContext=()=>(0,n.useContext)(o)},94309(e,t,r){r.d(t,{J5:()=>useVimContext,Nj:()=>useOptionalVimContext,g3:()=>o});var n,o,a=r(46824);r(55425),(n=o||(o={})).NORMAL="NORMAL",n.INSERT="INSERT";let l=(0,a.createContext)({}),useVimContext=()=>{let e=(0,a.useContext)(l);if(!e)throw Error("useVimContext must be used within a VimProvider");return e},useOptionalVimContext=()=>(0,a.useContext)(l)},94816(e,t,r){r(72314)},36988(e,t,r){r.d(t,{HP:()=>h.H,Ng:()=>useThinkingState,Om:()=>f,QC:()=>X.Q,Lu:()=>useInputMultiline,ok:()=>T.X,Z:()=>useSyncTaskProgress,mM:()=>useTokenTracking,tQ:()=>useCoordinatorWorkers,VK:()=>useLoadingPhrase,EH:()=>p.E,_W:()=>h._,qt:()=>useIsMultitaskCoordinator,DP:()=>M.D});var n,o,a,l,i,s,c,u,d,m=r(88523);let f=Object.freeze({CTRL_R:(e,t)=>t.ctrl&&"r"===e,CTRL_C:(e,t)=>t.ctrl&&"c"===e,CTRL_U:(e,t)=>t.ctrl&&"u"===e,CTRL_O:(e,t)=>t.ctrl&&"o"===e,CTRL_E:(e,t)=>t.ctrl&&"e"===e,CTRL_G:(e,t)=>t.ctrl&&"g"===e,CTRL_Y:(e,t)=>t.ctrl&&"y"===e,SHIFT_TAB:(e,t)=>m.isWindows?t.shift&&t.tab||t.meta&&"m"===e:t.shift&&t.tab,PASTE:e=>e.startsWith("[200~"),RETURN:e=>e.return,ESCAPE:e=>e.escape,TAB:e=>e.tab,DELETE:e=>e.delete,KEY_R:e=>"r"===e,KEY_P:e=>"p"===e,SHIFT_UP:(e,t)=>t.shift&&t.upArrow,SHIFT_DOWN:(e,t)=>t.shift&&t.downArrow});var h=r(60114),p=r(2769);r(4433),r(44302),r(8076);var g=r(55425);r(8153);var E=r(93001);let useLoadingPhrase=e=>{let[t,r]=(0,E.useState)(y[0]);return(0,E.useEffect)(()=>{let t;return e&&(t=setInterval(()=>{let e=Math.floor(Math.random()*y.length);r(y[e])},w)),()=>{t&&clearInterval(t)}},[e]),t},w=5e3,y=["Waking","Booting","Scanning","Charging","Updating","Syncing","Processing","Browsing","Calculating","Pairing","Beeping","Blinking","Rotating","Rolling","Spinning","Buzzing","Streaming","Fetching","Sending","Initializing","Cleaning","Tidying","Delivering","Sorting","Cooking","Mixing","Sweeping","Greeting","Recording","Measuring","Adapting","Repairing","Learning","Analyzing","Linking","Watching","Mapping","Waving","Dancing","Listening","Mimicking","Protecting","Exploring","Tuning","Ticking","Dreaming","Resetting","Upgrading","Notifying","Printing","Testing","Charging","Refreshing","Suggesting","Observing","Hovering","Locating","Syncing","Joking","Chilling","Reporting","Following","Guiding","Celebrating","Reminding","Logging","Flashing","Swiping","Calling","Connecting","Greeting","Zooming","Detecting","Monitoring"];r(99601),r(568);var b=r(53052);let useTokenTracking=e=>{let{session:t}=(0,b.Lg)(),r=void 0===e?t:e,[n,o]=(0,E.useState)(0),[a,l]=(0,E.useState)(0),[i,s]=(0,E.useState)(0);return(0,E.useEffect)(()=>{if(!r){o(0),l(0),s(0);return}let e=[r.inputSubject.subscribe(e=>{if(s(r.usage.totalTokens),!e._fromSubAgent&&(o(0),l(0),"function_call_result"===e.type)){let t=e.output;if("object"==typeof t&&"text"in t&&t?.type==="text"){let e=Math.ceil(t.text.length/4);o(t=>t+e)}}}),r.resultSubject.subscribe(e=>{e&&(o(0),l(0))}),r.modelSubject.subscribe(async e=>{if("model"===e.type&&e.event?.choices?.length){let t=0;for(let r of e.event.choices){let e=r.delta;if(e&&(t+=e.content?.length||0,t+=e.reasoning_content?.length||0,e.tool_calls?.length))for(let r of e.tool_calls)t+=r.function?.name?.length||0,t+=r.function?.arguments?.length||0}let r=Math.ceil(t/4);l(e=>e+r)}})];return s(r.usage.totalTokens),()=>e.forEach(e=>e.unsubscribe())},[r]),{turnInputTokens:n,turnOutputTokens:a,totalTokens:i}};r(90777);var x=r(67662);r(40838),r(91192),r(5100),r(11223),r(19849),r(34559);var T=r(99455);r(64152),r(13389);var k=r(28806);let S=!1,v=!1,C=0,_=new Set;function notify(){for(let e of(C++,_))e()}function use_thinking_state_subscribe(e){return _.add(e),()=>{_.delete(e)}}function use_thinking_state_getSnapshot(){return C}let A=!1;async function initSharedState(){if(!A){A=!0;try{S=await (0,g.fq)().get("alwaysThinkingEnabled")||!1}catch{S=!1}try{let e=await (0,g.zb)().getDefault();v=(await (0,g.zb)().getModel(e.name)).supportsReasoning||!1}catch{v=!1}notify(),(0,g.fq)().onDidChange(async()=>{try{let e=await (0,g.fq)().get("alwaysThinkingEnabled");S!==(e||!1)&&(S=e||!1,notify())}catch{}})}}let useThinkingState=e=>{(0,E.useEffect)(()=>{initSharedState()},[]),(0,E.useSyncExternalStore)(use_thinking_state_subscribe,use_thinking_state_getSnapshot);let t=k.X$.includeDefault(e),r=S&&v&&t,n=v&&t,o=(0,E.useCallback)(async()=>{let e=!S;S=e,notify(),await (0,g.fq)().set("alwaysThinkingEnabled",e)},[]);return{alwaysThinkingEnabled:S,modelSupportsThinking:v,isThinkingActive:r,shouldShowThinkingStatus:n,toggleThinking:o}};var M=r(11369);r(67465);var I=r(51147),O=r(92735),P=r(17611),R=r(59707),D=r(71114),L=r(49726),$=r(40587),B=r(39295),N=r(95235),W=r(89799),F=r(24463);let j=Symbol("PromptSuggestionService");var __decorate=function(e,t,r,n){var o,a=arguments.length,l=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)l=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(o=e[i])&&(l=(a<3?o(l):a>3?o(t,r,l):o(t,r))||l);return a>3&&l&&Object.defineProperty(t,r,l),l},__metadata=function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};let U=`You are now a prompt suggestion generator. The conversation above is context - your job is to suggest what CodeBuddy could help with next.
|
|
10
10
|
|
|
11
11
|
Based on the conversation, suggest the user's next prompt. Short casual output, 3-8 words. Read the moment - what's the natural next step?
|
|
12
12
|
|
|
@@ -14,14 +14,14 @@ Be specific when you can. Even if the task seems done, think about natural follo
|
|
|
14
14
|
|
|
15
15
|
Reply with ONLY the suggestion text, no quotes, no explanation, no markdown.`,H=class{constructor(){this.suggestionSubject=new R.t(void 0),this.sessionSubscriptions=new Map}static{n=this}generateSuggestionAsync(e){this.doGenerateSuggestion(e).catch(e=>{"AbortError"!==e.name&&this.logger.warn(`Failed to generate prompt suggestion: ${e.message}`)})}async generateSuggestionText(e){try{return await this.doGenerateSuggestionText(e)}catch(e){"AbortError"!==e.name&&this.logger.warn(`Failed to generate prompt suggestion text: ${e.message}`);return}}clearSuggestion(){this.cancelPendingRequest(),this.suggestionSubject.next(void 0)}async isEnabled(){return!I.BooleanUtils.isTruthy(process.env.CODEBUDDY_PROMPT_SUGGESTION_DISABLED)&&(!!I.BooleanUtils.isTruthy(process.env.CODEBUDDY_INCLUDE_PROMPT_SUGGESTION)||!!this.isInteractiveMode()&&(await this.settingsManager.get("promptSuggestionEnabled")??!0))}init(){this.logger.setContext("PromptSuggestionService"),this.isInteractiveMode()&&this.sessionManager.sessionSubject.subscribe(e=>{e&&this.setupSessionListener(e)})}isInteractiveMode(){return!0===process.stdout.isTTY}setupSessionListener(e){this.cleanupSessionSubscriptions(e.id);let t=[],r=e.inputSubject.subscribe(e=>{e?.role==="user"&&this.clearSuggestion()});t.push(r),this.sessionSubscriptions.set(e.id,t)}cleanupSessionSubscriptions(e){let t=this.sessionSubscriptions.get(e);t&&(t.forEach(e=>e.unsubscribe()),this.sessionSubscriptions.delete(e))}async doGenerateSuggestion(e){let t=await this.doGenerateSuggestionText(e);t?this.handleSuggestionResult(t):this.suggestionSubject.next(void 0)}async doGenerateSuggestionText(e){if(await this.isEnabled())return e?.state?(this.cancelPendingRequest(),this.currentAbortController=new AbortController,this.logger.info("Starting prompt suggestion generation"),"1"===process.env.CODEBUDDY_PROMPT_SUGGESTION_LEGACY)?this.doGenerateSuggestionLegacy(e):this.doGenerateSuggestionLite(e):void this.logger.warn("No RunState available for prompt suggestion, skipping")}async doGenerateSuggestionLite(e){try{let t=this.buildSuggestionInput(e.state.history);if(!t)return void this.logger.info("Prompt suggestion skipped: no recent context found");this.logger.debug(`Prompt suggestion input: ${t.slice(0,300)}`);let r=await this.agentService.runOneTime(L.QYL.PROMPT_SUGGESTION,t,{signal:this.currentAbortController.signal,context:e});return this.parseSuggestionResult(r)}finally{this.currentAbortController=void 0}}async doGenerateSuggestionLegacy(e){let t=this.removeTraceHeaders(e),r=e.agentPurpose;e.agentPurpose=$.Wc.PromptSuggestion;try{let t=await this.runnerProvider.get(),r=e.state,n=r._currentAgent,o=this.createSilentAgent(n);r._context.context.conversationRequestId=(0,m.generateUUUID)().replace(/-/g,"");let a=[...N.HistoryUtils.fillFunctionCallResultHistory(r.history),(0,P.kQ)(U)],l=new P.ll(r._context,a,o,1),i=await t.run(o,l,{stream:!0,maxTurns:1,signal:this.currentAbortController.signal}),s="";for await(let e of i.toTextStream())s+=e;return this.parseSuggestionResult(s)}finally{e.agentPurpose=r,this.restoreTraceHeaders(e,t),this.currentAbortController=void 0}}createSilentAgent(e){return new P.g6({name:`${e.name}-silent`,instructions:e.instructions,model:e.model,modelSettings:e.modelSettings,tools:e.tools,handoffs:e.handoffs,inputGuardrails:e.inputGuardrails,outputGuardrails:e.outputGuardrails,outputType:e.outputType})}parseSuggestionResult(e){let t=this.cleanSuggestionResponse(e);return t?"done"===t.toLowerCase()?void this.logger.info("Prompt suggestion generation completed: task done, no suggestion"):t:void this.logger.info("Prompt suggestion generation completed: empty response")}handleSuggestionResult(e){this.logger.info(`Prompt suggestion generation completed, suggestion=${e}`);let t={text:e,timestamp:Date.now()};this.suggestionSubject.next(t),this.pushSuggestionToAcpClients(t)}cleanSuggestionResponse(e){return e.trim().replace(/^["']|["']$/g,"").replace(/\n/g," ").trim()}static{this.MAX_CONTEXT_CHARS=2e3}static{this.MIN_USER_CHARS=100}buildSuggestionInput(e){let t,r,o;for(let n=e.length-1;n>=0;n--){let a=e[n];if(r||"assistant"!==a.role?o||"function_call_result"!==a.type||(o=a):r=a,(r||o)&&!t&&this.isRealUserMessage(a)){t=a;break}}let a=r||o,l=a?this.getMessageText(a):"",i=t?this.getMessageText(t):"";if(!l)return;(i.startsWith("/")||!i.trim())&&(i="");let s=n.MAX_CONTEXT_CHARS,c=n.MIN_USER_CHARS;if(l.length+i.length>s){let e=Math.max(c,s-l.length),t=s-Math.min(i.length,e);l=this.hardCapEnd(l,t),i=this.hardCap(i,e)}let u=[];return i&&u.push(`[User Message]
|
|
16
16
|
${i}`),u.push("..."),l&&u.push(`[Assistant Response]
|
|
17
|
-
${l}`),u.join("\n")}getMessageText(e){if("user"===e.role){let t=W.c.extractTextContent(e,!0)?.trim()||"";return F.r.stripUserQueryTags(t).trim()}return"function_call_result"===e.type?"string"==typeof e.output?e.output:Array.isArray(e.output)?e.output.filter(e=>"text"===e.type).map(e=>e.text).join("\n"):"":"string"==typeof e.content?e.content:Array.isArray(e.content)?e.content.filter(e=>"output_text"===e.type||"text"===e.type).map(e=>e.text).join("\n"):""}isRealUserMessage(e){return e?.type==="message"&&"user"===e.role&&!e.providerData?.skipRun&&!e.providerData?.isCompactInternal}hardCapEnd(e,t){return e.length<=t?e:t<=1?e.slice(-t):"\u2026"+e.slice(-(t-1))}hardCap(e,t){return e.length<=t?e:t<=1?e.slice(0,t):e.slice(0,t-1)+"\u2026"}cancelPendingRequest(){this.currentAbortController&&(this.currentAbortController.abort(),this.currentAbortController=void 0)}static{this.TRACE_HEADER_KEYS=["X-Request-ID","b3","X-B3-TraceId","X-B3-ParentSpanId","X-B3-SpanId","X-B3-Sampled","X-Trace-ID"]}removeTraceHeaders(e){let t={},r=e.requestOptions?.headers;if(!r)return t;for(let e of n.TRACE_HEADER_KEYS)e in r&&(t[e]=r[e],delete r[e]);return t}restoreTraceHeaders(e,t){0!==Object.keys(t).length&&(e.requestOptions||(e.requestOptions={}),e.requestOptions.headers={...e.requestOptions.headers,...t})}pushSuggestionToAcpClients(e){try{for(let[,t]of m.ContainerUtil.get(D.NZ).getAll()){let r=t.getClientCapabilities(),n=r?._meta?.["codebuddy.ai"];if(!n?.promptSuggestion)continue;let o=t.getConnection(),a=this.sessionManager.sessionSubject.value;a&&o.sessionUpdate({sessionId:a.id,update:{sessionUpdate:"session_info_update",_meta:{"codebuddy.ai/promptSuggestion":e.text}}}).catch(e=>{this.logger.warn?.(`Failed to push prompt suggestion to ACP client: ${e.message}`)})}}catch{}}};__decorate([(0,m.Autowired)(L.AgentService),__metadata("design:type","function"==typeof(o=void 0!==L.AgentService&&L.AgentService)?o:Object)],H.prototype,"agentService",void 0),__decorate([(0,m.Autowired)(L.EOh),__metadata("design:type","function"==typeof(a=void 0!==L.EOh&&L.EOh)?a:Object)],H.prototype,"runnerProvider",void 0),__decorate([(0,m.Autowired)(x.Cv),__metadata("design:type","function"==typeof(l=void 0!==x.Cv&&x.Cv)?l:Object)],H.prototype,"sessionManager",void 0),__decorate([(0,m.Autowired)(B.Vr),__metadata("design:type","function"==typeof(i=void 0!==B.Vr&&B.Vr)?i:Object)],H.prototype,"settingsManager",void 0),__decorate([(0,m.Autowired)(O.Logger),__metadata("design:type","function"==typeof(s=void 0!==O.Logger&&O.Logger)?s:Object)],H.prototype,"logger",void 0),__decorate([(0,m.PostConstruct)(),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",void 0)],H.prototype,"init",null),H=n=__decorate([(0,m.Component)(j)],H);var G=r(20131),prompt_suggestion_stop_hook_decorate=function(e,t,r,n){var o,a=arguments.length,l=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)l=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(o=e[i])&&(l=(a<3?o(l):a>3?o(t,r,l):o(t,r))||l);return a>3&&l&&Object.defineProperty(t,r,l),l};let V=class{constructor(){this.event=G.mb.STOP,this.priority=G.Mg.Lowest}async execute(e){let t=e.session;t&&this.promptSuggestionService.generateSuggestionAsync(t)}};prompt_suggestion_stop_hook_decorate([(0,m.Autowired)(j),function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)}("design:type","function"==typeof(c=void 0!==j&&j)?c:Object)],V.prototype,"promptSuggestionService",void 0),V=prompt_suggestion_stop_hook_decorate([(0,m.Component)(G.qn)],V);var prompt_suggestion_channel_approval_hook_decorate=function(e,t,r,n){var o,a=arguments.length,l=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)l=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(o=e[i])&&(l=(a<3?o(l):a>3?o(t,r,l):o(t,r))||l);return a>3&&l&&Object.defineProperty(t,r,l),l},prompt_suggestion_channel_approval_hook_metadata=function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};let K=G.Mg.Lowest-10,J=class{constructor(){this.event=G.mb.STOP,this.priority=K}async execute(e){if(e.stop_hook_active)return;let t=e.session;if(!t)return;let r=t.meta;if(!r?.isChannelSession||!r.channelId||!r.channelChatId)return;if("group"===r.channelChattype)return void this.logger.info("[ChannelApproval] Group chat detected, skipping prompt suggestion");let n=r.channelId,o=r.channelChatId;if(this.logger.info(`[ChannelApproval] Channel session detected: ${n}, chatId: ${o}`),this.isConversationTooShort(t))return void this.logger.info("[ChannelApproval] Conversation too short (no tool calls, few turns), skipping suggestion");if(!await this.waitForInputOrTimeout(t,6e4))return void this.logger.info("[ChannelApproval] New user input received during delay, skipping suggestion");let a=await this.promptSuggestionService.generateSuggestionText(t);return a?(this.logger.info(`[ChannelApproval] Suggestion after 60s delay: ${a}`),await this.sendToChannelAndWaitForApproval(n,o,t.id,a))?(this.logger.info("[ChannelApproval] User approved suggestion, continuing with new conversation"),{allowed:!0,continueRequest:{message:(0,P.kQ)(a)}}):void this.logger.info("[ChannelApproval] Suggestion not approved (rejected/session changed)"):void this.logger.info("[ChannelApproval] No suggestion generated, skipping")}isConversationTooShort(e){return!((e.telemetry?.currentTurn??0)>2)&&!e.history.some(e=>"function_call"===e.type)}waitForInputOrTimeout(e,t){return new Promise(r=>{let n=!1,o=e.inputSubject.subscribe(()=>{n||(n=!0,clearTimeout(a),o.unsubscribe(),r(!1))}),a=setTimeout(()=>{n||(n=!0,o.unsubscribe(),r(!0))},t)})}async sendToChannelAndWaitForApproval(e,t,n,o){try{let a;if("wecom"===e){let{WecomBotChannelBridge:e}=r(94253);a=m.ContainerUtil.get(e)}else{if("wechat"!==e)return this.logger.warn(`[ChannelApproval] Unknown channel type: ${e}`),!1;let{WechatChannelBridge:t}=r(20851);a=m.ContainerUtil.get(t)}if(!a)return this.logger.warn(`[ChannelApproval] ${e} bridge not available`),!1;return await a.sendPromptSuggestionAndWaitForApproval(o,t,n)}catch(t){return this.logger.warn(`[ChannelApproval] Failed to send suggestion to ${e}: ${t.message}`),!1}}};prompt_suggestion_channel_approval_hook_decorate([(0,m.Autowired)(j),prompt_suggestion_channel_approval_hook_metadata("design:type","function"==typeof(u=void 0!==j&&j)?u:Object)],J.prototype,"promptSuggestionService",void 0),prompt_suggestion_channel_approval_hook_decorate([(0,m.Autowired)(O.Logger),prompt_suggestion_channel_approval_hook_metadata("design:type","function"==typeof(d=void 0!==O.Logger&&O.Logger)?d:Object)],J.prototype,"logger",void 0),J=prompt_suggestion_channel_approval_hook_decorate([(0,m.Component)(G.qn)],J);var q=r(36210);function useIsMultitaskCoordinator(){let{session:e}=(0,b.Lg)(),[t,r]=(0,E.useState)(()=>(0,q.Rn)(e));return(0,E.useEffect)(()=>{r((0,q.Rn)(e));try{let t=(0,g.id)().sessionSubject.subscribe(t=>{r((0,q.Rn)(t??e))});return()=>t.unsubscribe()}catch{return}},[e]),t}var Y=r(43634);function readTask(e){try{return m.ContainerUtil.get(Y.AgentTaskManager).getTask(e)}catch{return}}function enrichWorker(e){let t=readTask(e.id);return{...e,toolCallCount:t?.toolCallHistory?.length,lastContextWindow:t?.tokenUsage?.lastContextWindow,totalTokens:t?.tokenUsage?.totalTokens,agentType:t?.agentType,startTime:t?.startTime}}function useCoordinatorWorkers(){let{session:e}=(0,b.Lg)(),[t,r]=(0,E.useState)([]),n=(0,E.useCallback)(()=>{if(!(0,q.Rn)(e))return void r([]);try{r(((0,q.CB)(e)??[]).map(enrichWorker))}catch{r([])}},[e]);return(0,E.useEffect)(()=>{n();let e=[];try{let t=(0,g.id)().sessionSubject.subscribe(()=>n());e.push(()=>t.unsubscribe())}catch{}try{let t=m.ContainerUtil.get(Y.AgentTaskManager),handler=()=>n();t.on("task-started",handler),t.on("task-completed",handler),t.on("task-failed",handler),t.on("task-cancelled",handler),t.on("task-killed",handler);let r=setInterval(n,1e3);e.push(()=>{t.off("task-started",handler),t.off("task-completed",handler),t.off("task-failed",handler),t.off("task-cancelled",handler),t.off("task-killed",handler),clearInterval(r)})}catch{}return()=>{for(let t of e)t()}},[n]),t}var X=r(42163);let z=new Set(["completed","failed","cancelled","killed"]);function useSyncTaskProgress(){let[e,t]=(0,E.useState)([]),r=(0,E.useRef)(0),n=(0,E.useRef)(void 0),o=(0,E.useCallback)(()=>{try{let e=m.ContainerUtil.get(Y.AgentTaskManager),a=e.getTasks().filter(e=>!e.isBackground&&!e.isTeamMember);if(0===a.length){r.current=0,t([]);return}if(a.every(e=>z.has(e.status??""))){0===r.current&&(r.current=Date.now());let l=Date.now()-r.current;if(l>=3e3){for(let t of a)z.has(t.status??"")&&e.removeTask(t.id);t([]);return}n.current||(n.current=setTimeout(()=>{n.current=void 0,o()},3e3-l))}else r.current=0,n.current&&(clearTimeout(n.current),n.current=void 0);let l=a.map(e=>({id:e.id,status:e.status||"pending",description:e.description,agentType:e.agentType,lastContextWindow:e.tokenUsage?.lastContextWindow,toolCallCount:e.toolCallHistory?.length,startTime:e.startTime,totalTokens:e.tokenUsage?.totalTokens}));t(l)}catch{t([])}},[]);return(0,E.useEffect)(()=>{o();try{let e=m.ContainerUtil.get(Y.AgentTaskManager),handler=()=>o();e.on("task-started",handler),e.on("task-completed",handler),e.on("task-failed",handler),e.on("task-cancelled",handler);let t=setInterval(o,3e3);return()=>{e.off("task-started",handler),e.off("task-completed",handler),e.off("task-failed",handler),e.off("task-cancelled",handler),clearInterval(t),n.current&&(clearTimeout(n.current),n.current=void 0)}}catch{return}},[o]),e}r(15538),r(97542),r(73369),r(67292);let useInputMultiline=(e,t,r,n,o=!1)=>{let a=(0,E.useMemo)(()=>o?e.split(/\r?\n/):[e],[e,o]),l=(0,E.useMemo)(()=>{if(!o)return[];let e=0;return a.map(t=>{let r=e,n=e+t.length;return e+=t.length+1,{startOffset:r,endOffset:n}})},[a,o]),i=(0,E.useCallback)(()=>{if(!o)return{lineIndex:0,columnIndex:t,line:e};let r=0,n=0;for(let e of a){let o=r+e.length+1;if(o>t)return{lineIndex:n,columnIndex:t-r,line:e};r=o,n++}let l=a[a.length-1]||"",i=r-l.length-1;return{lineIndex:a.length-1,columnIndex:t-i,line:l}},[o,e,a,t]),s=(0,E.useCallback)((t,r)=>{if(!o)return Math.min(r,e.length);let n=0;for(let e=0;e<t&&e<a.length;e++)n+=a[e].length+1;let l=a[t];return n+Math.min(r,l?.length||0)},[o,e,a]),c=(0,E.useCallback)(()=>{if(!o)return!1;let{lineIndex:e,columnIndex:t}=i();if(0===e)return!1;let r=e-1,a=s(r,t);return n.batchUpdate({cursorOffset:a,currentLine:r}),!0},[o,i,s,n]),u=(0,E.useCallback)(()=>{if(!o)return!1;let{lineIndex:e,columnIndex:t}=i();if(e>=a.length-1)return!1;let r=e+1,l=s(r,t);return n.batchUpdate({cursorOffset:l,currentLine:r}),!0},[o,a.length,i,s,n]),d=(0,E.useCallback)(()=>{if(!o)return!0;let{lineIndex:e}=i();return 0===e},[o,i]),m=(0,E.useCallback)(()=>{if(!o)return!0;let{lineIndex:e}=i();return e===a.length-1},[o,a.length,i]),f=(0,E.useCallback)(t=>{let{lineIndex:r}=i();return{newValue:e.slice(0,t)+"\n"+e.slice(t),newCursorOffset:t+1,newLineIndex:r+1}},[e,i]);return{lines:a,lineOffsets:l,currentLine:r,getCurrentLineInfo:i,getOffsetFromLineColumn:s,moveToLineAbove:c,moveToLineBelow:u,isAtTopLine:d,isAtBottomLine:m,insertNewline:f}};r(16819),r(72542)},11223(e,t,r){r.d(t,{W:()=>l,w:()=>useAgentPhase});var n=r(93001),o=r(67662),a=r(53052);let useAgentPhase=e=>{let{session:t}=(0,a.Lg)(),r=void 0===e?t:e,[o,l]=(0,n.useState)(()=>r?.phaseSubject?.getValue());return(0,n.useEffect)(()=>{let e=r?.phaseSubject?.subscribe(l);return()=>e?.unsubscribe()},[r]),o},l=o.wY.getLabel},16819(e,t,r){r.d(t,{e:()=>useBasicInput});var n=r(88523),o=r(56312),a=r(93001),l=r(26210),i=r(34479);function useBasicInput(e){let{focus:t=!0,onParsedInput:r}=e,{stdin:s,setRawMode:c,isRawModeSupported:u,internal_eventEmitter:d}=(0,o.useStdin)(),m=(0,a.useRef)(l.YF.createState()),f=(0,a.useRef)(r);f.current=r;let h=(0,a.useCallback)(e=>{let t=f.current,r=m.current,o=e.toString();if(n.isWindows&&r.mode===l.X6.NORMAL&&o.length>1&&!o.includes("\x1b"))return void t({sequence:o,isPasted:!1});let[a,i]=l.YF.parse(r,e);for(let e of(m.current=i,a))t(e);r.mode===l.X6.IN_PASTE&&i.mode===l.X6.NORMAL&&0===a.length&&""===i.incomplete&&t({sequence:"",isPasted:!0})},[]);(0,a.useEffect)(()=>{if(t&&u&&process.stdin.setRawMode)return c(!0),()=>c(!1)},[t,u,c]),(0,a.useEffect)(()=>{if(t){if(d)return d.on("input",h),()=>{d.removeListener("input",h)};if(s)return s.on("data",h),()=>{s.off("data",h)}}},[t,s,d,h]),(0,a.useEffect)(()=>{if(t)return i.$D.enableBracketedPaste(),()=>{i.$D.disableBracketedPaste()}},[t])}},8153(e,t,r){r(48161),r(76760),r(38090),r(88415),r(98447)},4433(e,t,r){r(73381),r(36600),r(55425)},44302(e,t,r){r(63909),r(88415),r(15871)},8076(e,t,r){r(28806)},67465(e,t,r){r(88523),r(92735),r(76982),r(16928),r(56913),r(3797),r(89634),r(31833),r(88415),r(55425)},2769(e,t,r){r.d(t,{E:()=>useMenuState});var n=r(93001),o=r(53052),a=r(28806),l=r(62909);let useMenuState=()=>{let{state:e,actions:t}=(0,o.R7)(),r=(0,n.useCallback)((r,n)=>{if(!a.X$.includeDefault(e.states))return;let o=a.X$.shouldShowMenu(r,n),i=e.states.includes(l.W_.MENU);o&&!i?t.pushState(l.W_.MENU):!o&&i&&t.removeState(l.W_.MENU)},[e.states,t]),i=(0,n.useCallback)(()=>{let r=e.states.includes(l.W_.MEMORY),n=e.states.includes(l.W_.MENU);return!!r&&!n&&(t.pushState(l.W_.MENU),!0)},[e.states,t]),s=(0,n.useCallback)(()=>{e.states.includes(l.W_.MENU)&&t.removeState(l.W_.MENU)},[e.states,t]),c=e.states.includes(l.W_.MENU),u=c&&a.X$.includeDefault(e.states),d=c&&e.states.includes(l.W_.MEMORY);return{isMenuActive:c,isCommandMenu:u,isMemoryMenu:d,updateMenuState:r,addMenuStateForMemory:i,clearMenuState:s}}},568(e,t,r){r(88523),r(49726),r(20131),r(89634),r(67292),r(53052)},90777(e,t,r){r(57318)},99601(e,t,r){r(88523),r(76982),r(68938),r(49726),r(99524),r(67662),r(53052),r(55425)},13389(e,t,r){r(88523),r(67662),new WeakMap},99455(e,t,r){r.d(t,{X:()=>useSessionRunStateIsBusy});var n=r(67662),o=r(19849);let useSessionRunStateIsBusy=e=>(0,n.Rh)((0,o.Y)(e).status)},64152(e,t,r){r(67662),r(19849)},19849(e,t,r){r.d(t,{Y:()=>useSessionRunStateSnapshot});var n=r(88523),o=r(93001),a=r(67662);let l={status:a.OT.IDLE},useSessionRunStateSnapshot=e=>{let t=n.ContainerUtil.get(a.MU),[r,i]=(0,o.useState)(()=>e?t.getSnapshot(e):l);return(0,o.useEffect)(()=>{if(!e)return void i(l);i(r=>{let n=t.getSnapshot(e);return r===n||r.status===n.status&&r.lastTransition?.at===n.lastTransition?.at?r:n});let r=t.getChange$(e).subscribe(()=>{let r=t.getSnapshot(e);i(e=>e===r||e.status===r.status&&e.lastTransition?.at===r.lastTransition?.at?e:r)});return()=>r.unsubscribe()},[e,t]),r}},34559(e,t,r){r.d(t,{U:()=>useSessionRunStateStatus});var n=r(19849);let useSessionRunStateStatus=e=>(0,n.Y)(e).status},15538(e,t,r){r(89634),r(68593)},42163(e,t,r){r.d(t,{Q:()=>useTeamProgress});var n=r(88523),o=r(43634),a=r(97542),l=r(89634),i=r(93001);function useTeamProgress(){let[e,t]=(0,i.useState)([]),r=(0,i.useCallback)(()=>{try{if(!n.ContainerUtil.get(a.DQ).isInTeam())return void t([]);let e=(0,l.lhW)().getAll().map(e=>{let t=e.getAgentTask();return{name:e.info.name,color:e.info.color,status:t?.status||"pending",description:t?.description,taskId:t?.id,lastContextWindow:t?.tokenUsage?.lastContextWindow,toolCallCount:t?.toolCallHistory?.length,startTime:t?.startTime,totalTokens:t?.tokenUsage?.totalTokens,agentType:t?.agentType}});t(e)}catch{t([])}},[]);return(0,i.useEffect)(()=>{r();try{let e=n.ContainerUtil.get(o.AgentTaskManager),handler=()=>r();e.on("task-started",handler),e.on("task-completed",handler),e.on("task-failed",handler),e.on("task-cancelled",handler),e.on("task-killed",handler);let t=setInterval(r,3e3);return()=>{e.off("task-started",handler),e.off("task-completed",handler),e.off("task-failed",handler),e.off("task-cancelled",handler),e.off("task-killed",handler),clearInterval(t)}}catch{return}},[r]),e}},60114(e,t,r){r.d(t,{H:()=>useTerminalSize,_:()=>useTerminalResize});var n=r(63598),o=r.n(n),a=r(56312),l=r(93001),i=r(39457),s=r(28429);let c=new Set,u=!1;function ensureResizeListener(){u||(u=!0,process.stdout.on("resize",()=>{for(let e of c)e()}))}function useTerminalSize(){let[e,t]=(0,l.useState)({columns:process.stdout.columns||80,rows:process.stdout.rows||24});return(0,l.useEffect)(()=>{let onResize=()=>{t({columns:process.stdout.columns||80,rows:process.stdout.rows||24})};return c.add(onResize),ensureResizeListener(),()=>{c.delete(onResize)}},[]),e}let useTerminalResize=()=>{let{staticKey:e,refreshStatic:t}=(()=>{let{stdout:e}=(0,a.useStdout)(),t=(0,l.useRef)(e),[r,n]=(0,l.useState)(0);return(0,l.useEffect)(()=>{t.current=e},[e]),{staticKey:r,refreshStatic:(0,l.useCallback)(()=>{s.r.current?.resetStaticOutput?.(),t.current.write(o().clearTerminal+i.$),n(e=>e+1)},[])}})(),r=(0,l.useRef)(!0),n=(0,l.useRef)(!0),{rows:c,columns:u}=useTerminalSize(),d=(0,l.useCallback)(e=>{n.current=e},[]);return(0,l.useEffect)(()=>{if(r.current){r.current=!1;return}if(!n.current)return;let e=setTimeout(()=>{t()},300);return()=>{clearTimeout(e)}},[u,c,t]),{staticKey:e,refreshStatic:t,terminalWidth:u,terminalHeight:c,enableAutoRefresh:d}}},11369(e,t,r){r.d(t,{D:()=>useTheme});var n=r(55882);let useTheme=()=>(0,n.d)()},73369(e,t,r){r.d(t,{C7:()=>formatElapsed,Gx:()=>isActiveAgentStatus,R3:()=>sliceVisibleAgents,RX:()=>n,mW:()=>summarizeAgents,nt:()=>pickTreeSource,sO:()=>displayAgentType,v:()=>padAgentType,yf:()=>shouldUseAgentTree});let n="\u2191/\u2193 to select \xb7 Enter to view \xb7 x to stop \xb7 Ctrl+X Ctrl+K to stop all",o=new Set(["running","streaming"]),a=new Set(["pending","waiting","initializing"]),l=new Set(["completed"]),i=new Set(["failed","cancelled","killed"]);function shouldUseAgentTree(e,t=1){return e>=t}function sliceVisibleAgents(e,t){let r=t?.limit??5;if(t?.expanded||e.length<=r)return{visible:e,hiddenCount:0,offset:0};let n=t?.focusedIndex??-1,o=0;return n>=r&&(o=Math.min(n-r+1,e.length-r)),{visible:e.slice(o,o+r),hiddenCount:e.length-r,offset:o}}function summarizeAgents(e){let t=0,r=0,n=0,s=0,c=0,u=0,d=1/0;for(let m of e)l.has(m.status)?t+=1:i.has(m.status)?s+=1:o.has(m.status)?r+=1:a.has(m.status)?n+=1:r+=1,c+=m.tokens??0,u+=m.toolUses??0,m.startTime>0&&m.startTime<d&&(d=m.startTime);let m=e.length,f="running";return m>0&&t===m?f="completed":m>0&&s===m?f="failed":r>0?f="running":n>0?f="initializing":s>0&&(f="failed"),{total:m,completed:t,running:r,waiting:n,failed:s,totalTokens:c,totalToolUses:u,startTime:Number.isFinite(d)?d:Date.now(),status:f}}function displayAgentType(e,t){let r=t?.trim()?t.trim():e;return r.replace(/-\d+$/,"")||r}function padAgentType(e,t=15){return e.length>=t?e:e+" ".repeat(t-e.length)}function pickTreeSource(e,t){let r=shouldUseAgentTree(e.length),n=shouldUseAgentTree(t.length);return r&&n?{kind:"both",teammates:e,syncTasks:t}:r?{kind:"teammates",items:e}:n?{kind:"sync",items:t}:{kind:"none"}}function isActiveAgentStatus(e){return"running"===e||"pending"===e}function formatElapsed(e){let t=Math.max(0,Math.floor(e/1e3));if(t<60)return`${t}s`;let r=Math.floor(t/60),n=t%60;if(r<60)return n>0?`${r}m ${String(n).padStart(2,"0")}s`:`${r}m`;let o=Math.floor(r/60),a=r%60;return a>0?`${o}h ${String(a).padStart(2,"0")}m`:`${o}h`}},89072(e,t,r){r.d(t,{K8:()=>b,vi:()=>useAgentTreeActive});var n=r(88523),o=r(43634),a=r(85577),l=r.n(a),i=r(6004),s=r.n(i),c=r(68593),u=r(64225),d=r(36988),m=r(46382),f=r(73369);let h=0,p=null,g=new Set;function startElapsedTicking(){p||"function"==typeof(p=setInterval(()=>{for(let e of(h++,g))e()},1e3)).unref&&p.unref()}function stopElapsedTicking(){p&&0===g.size&&(clearInterval(p),p=null)}function subscribeElapsedTick(e){return g.add(e),startElapsedTicking(),()=>{g.delete(e),stopElapsedTicking()}}function getElapsedTickSnapshot(){return h}let E=l().memo(({startedAt:e})=>((0,a.useSyncExternalStore)(subscribeElapsedTick,getElapsedTickSnapshot),l().createElement(l().Fragment,null,(0,f.C7)(Date.now()-e))));function toTreeAgentFromTeammate(e){return{id:e.name,title:(0,f.sO)(e.name,e.agentType),detail:e.description||e.name,status:e.status,startTime:e.startTime??0,lastContextWindow:e.lastContextWindow,totalTokens:e.totalTokens,taskId:e.taskId,name:e.name,color:e.color}}function toTreeAgentFromSync(e){return{id:e.id,title:(0,f.sO)(e.agentType||e.description||"Agent",e.agentType),detail:e.description||e.agentType||"Agent",status:e.status,startTime:e.startTime,lastContextWindow:e.lastContextWindow,totalTokens:e.totalTokens,taskId:e.id}}function toTreeAgentFromWorker(e){return{id:e.id,title:(0,f.sO)(e.agentType||e.description||"Agent",e.agentType),detail:e.description||e.agentType||e.id,status:e.status||"running",startTime:e.startTime??0,lastContextWindow:e.lastContextWindow,totalTokens:e.totalTokens,taskId:e.id}}let w=l().memo(({agent:e,selected:t,hideType:r,nameColumnWidth:n})=>{let{theme:o}=(0,d.DP)(),i="running"===e.status||"pending"===e.status,s="completed"===e.status,c="failed"===e.status,h="cancelled"===e.status||"killed"===e.status,p=i?void 0:o.colors.secondary,g=(0,a.useMemo)(()=>e.lastContextWindow&&e.lastContextWindow>0?`\u{2191}${(0,m.ap)(e.lastContextWindow)}`:e.totalTokens&&e.totalTokens>0?`\u{2193}${(0,m.ap)(e.totalTokens)}`:"",[e.lastContextWindow,e.totalTokens]),w=t&&o.colors.selection||void 0;return l().createElement(u.Box,{flexWrap:"nowrap",width:"100%",backgroundColor:w},l().createElement(u.Text,{color:t?o.colors.brand:o.colors.secondary,bold:t},t?">":" "," "),l().createElement(u.Text,{color:i?o.colors.info:s?o.colors.success:c?o.colors.error:o.colors.secondary},i?"\u25CF":s?"\u2713":c?"\u2717":h?"\u2014":"\u25CB"),l().createElement(u.Text,null," "),r?null:l().createElement(u.Text,{color:p,bold:t},(0,f.v)(e.title)),n>0?l().createElement(u.Box,{width:n,flexShrink:0},e.name?l().createElement(u.Text,{bold:!0,color:e.color||o.colors.info},"@",e.name):null):null,l().createElement(u.Box,{flexGrow:1,flexShrink:1},e.detail?l().createElement(u.Text,{color:p,bold:t,wrap:"truncate-end"},e.detail):null),l().createElement(u.Box,{width:7,flexShrink:0,justifyContent:"flex-end"},l().createElement(u.Text,{color:o.colors.secondary},e.startTime>0?l().createElement(E,{startedAt:e.startTime}):"")),l().createElement(u.Text,null," "),l().createElement(u.Box,{width:9,flexShrink:0,justifyContent:"flex-end"},l().createElement(u.Text,{color:o.colors.secondary},g)))}),y=l().memo(({agents:e})=>{let{theme:t}=(0,d.DP)(),{focusedMemberName:r,isMemberSelecting:i,selectedMemberName:h,footerLayer:p}=(0,a.useContext)(c.Jp),g="agents"===p&&i,[E,y]=(0,a.useState)(!1),b=g?h:r,x=(0,a.useMemo)(()=>b?e.findIndex(e=>e.id===b):-1,[e,b]),T=(0,a.useMemo)(()=>(0,f.R3)(e,{expanded:E,focusedIndex:x}),[e,E,x]),k=(0,a.useMemo)(()=>(0,f.mW)(e.map(e=>({status:e.status,tokens:e.totalTokens,startTime:e.startTime}))),[e]),S=(0,a.useMemo)(()=>{if(0===e.length)return"";let t=e[0].title;return e.every(e=>e.title===t)?t:""},[e]),v=(0,a.useMemo)(()=>{let t=0;for(let r of e)r.name&&(t=Math.max(t,s()(`@${r.name}`)+1));return t},[e]),C=(0,a.useCallback)(e=>{if(e)try{n.ContainerUtil.get(o.AgentTaskManager).getTask(e)?.kill()}catch{}},[]);if((0,u.useInput)((e,t)=>{d.Om.CTRL_G(e,t)&&(T.hiddenCount>0||E)&&y(e=>!e)},{isActive:T.hiddenCount>0||E}),(0,u.useInput)((t,r)=>{if("x"===t&&!r.ctrl){let t=h?e.find(e=>e.id===h):void 0;C(t?.taskId)}},{isActive:g}),0===e.length)return null;let _=g&&null===h;return l().createElement(u.Box,{flexDirection:"column",width:"100%"},l().createElement(u.Box,{flexWrap:"nowrap",backgroundColor:_&&t.colors.selection||void 0},l().createElement(u.Text,{color:_?t.colors.brand:t.colors.secondary,bold:_},_?">":" "),l().createElement(u.Text,{color:t.colors.success}," \u25CF "),l().createElement(u.Text,{bold:!0},"main")),l().createElement(u.Text,{color:t.colors.secondary}," ",k.total," ",S?`${S} `:"","agent",k.total>1?"s":""," running"," \xb7 ",(0,f.C7)(Date.now()-k.startTime),k.totalTokens>0?` \xb7 \u{2193}${(0,m.ap)(k.totalTokens)}`:""),T.visible.map(e=>l().createElement(w,{key:e.id,agent:e,selected:g&&h===e.id,hideType:!!S,nameColumnWidth:v})),T.hiddenCount>0?l().createElement(u.Text,{color:t.colors.secondary}," ","\u2193 ",T.hiddenCount," more \xb7 ctrl+g to expand"):null,E&&e.length>5?l().createElement(u.Text,{color:t.colors.secondary}," ","\u2191 ctrl+g to collapse"):null)});function useActiveTreeSource(){let e=(0,d.QC)(),t=(0,d.Z)(),r=(0,a.useMemo)(()=>e.filter(e=>(0,f.Gx)(e.status)),[e]),n=(0,a.useMemo)(()=>t.filter(e=>(0,f.Gx)(e.status)),[t]);return(0,f.nt)(r,n)}function agentsFromSource(e){return"teammates"===e.kind?e.items.map(toTreeAgentFromTeammate):"sync"===e.kind?e.items.map(toTreeAgentFromSync):"both"===e.kind?[...e.teammates.map(toTreeAgentFromTeammate),...e.syncTasks.map(toTreeAgentFromSync)]:[]}function useTreeAgents(){let e=useActiveTreeSource(),t=(0,d.tQ)(),r=(0,a.useMemo)(()=>t.filter(e=>(0,f.Gx)(e.status)),[t]);return(0,a.useMemo)(()=>[...agentsFromSource(e),...(0,f.yf)(r.length)?r.map(toTreeAgentFromWorker):[]],[e,r])}function useAgentTreeIds(){return useTreeAgents().map(e=>e.id)}function useAgentTreeActive(){return(0,f.yf)(useAgentTreeIds().length)}let b=l().memo(()=>{let e=useTreeAgents();return(0,f.yf)(e.length)?l().createElement(y,{agents:e}):null})},35861(e,t,r){r.d(t,{L:()=>p,y:()=>h});var n=r(88523),o=r(36023),a=r(62279),l=r(85577),i=r.n(l),s=r(68593),c=r(64225),u=r(62909),d=r(53052),m=r(36988),f=r(37906);let h=i().memo(()=>{let{theme:e}=(0,m.DP)(),{session:t}=(0,d.Lg)(),{isMenuActive:r}=(0,m.EH)(),{state:n}=(0,d.R7)(),{footerLayer:a}=(0,s.az)(),f="workflow"===a,h=(0,l.useMemo)(()=>safeGet(o.Dm),[]),p=(0,l.useMemo)(()=>safeGet(o.T_),[]),[E,w]=(0,l.useState)([]),y=n.states.includes(u.W_.HELP);if((0,l.useEffect)(()=>{if(!h)return;let reload=()=>{w(h.listActive().filter(e=>!e.sessionId||e.sessionId===t.id))};if(reload(),!p)return;let e=p.on;if("function"!=typeof e)return;let r=e.call(p,()=>reload());return()=>{try{r()}catch{}}},[h,p,t.id]),y||r||0===E.length)return null;let b=[...E].sort((e,t)=>e.startedAt-t.startedAt)[0],x=E.length-1,T=b.description??"(running)",k=b.agentInFlightCount??0,S=Math.max(0,b.agentCount-k),v=b.agentCount,C=1===E.length?"workflow":"workflows";return i().createElement(c.Box,{flexDirection:"column"},i().createElement(c.Box,null,f?i().createElement(c.Box,{paddingX:1,backgroundColor:e.colors.info},i().createElement(c.Text,{color:e.colors.background,bold:!0},"* Waiting for ",E.length," dynamic ",C)):i().createElement(c.Text,{color:e.colors.secondary},"* Waiting for ",i().createElement(c.Text,{color:e.colors.brand},E.length)," dynamic ",C," to finish"),f?i().createElement(c.Text,{color:e.colors.secondary}," \xb7 Enter to view workflow \xb7 x to stop \xb7 Ctrl+X Ctrl+K to stop all"):null),i().createElement(c.Box,{flexDirection:"row",gap:1},i().createElement(c.Text,{color:e.colors.brand},"\u25CB"),i().createElement(c.Text,{bold:!0},b.name),i().createElement(c.Text,{color:e.colors.secondary},truncate(T,60)),i().createElement(c.Text,{color:e.colors.secondary},v>0?`${S}/${v} agents done`:"0 agents"," \xb7 "),i().createElement(g,{startedAt:b.startedAt}),b.tokens?i().createElement(c.Text,{color:e.colors.secondary},` \xb7 \u{2193} ${formatTokens(b.tokens)}`):null,x>0&&i().createElement(c.Text,{color:e.colors.secondary},"\xb7 +",x," more")))});h.displayName="BackgroundActivityLine";let p=i().memo(()=>{let{theme:e}=(0,m.DP)(),{footerLayer:t}=(0,s.az)(),{shellCount:r}=(0,f.Y)(),n="shells"===t;if(0===r)return null;let o=1===r?"shell":"shells";return i().createElement(c.Box,{alignItems:"center"},n?i().createElement(c.Box,{paddingX:1,backgroundColor:e.colors.info},i().createElement(c.Text,{color:e.colors.background,bold:!0},r," ",o)):i().createElement(c.Text,{color:e.colors.brand},r," ",o),i().createElement(c.Text,{color:e.colors.secondary},n?" \xb7 Enter to view tasks \xb7 Ctrl+X Ctrl+K to kill all":"agents"===t||"workflow"===t?"":` \xb7 press ${a.Ay.arrowDown} to view tasks`))});p.displayName="BackgroundShellsHint";let g=i().memo(({startedAt:e})=>{let{theme:t}=(0,m.DP)(),[,r]=(0,l.useState)(0);(0,l.useEffect)(()=>{let e=setInterval(()=>r(e=>e+1),1e3);return()=>clearInterval(e)},[]);let n=formatDuration(Date.now()-e);return i().createElement(c.Text,{color:t.colors.secondary},n)});function formatTokens(e){return e<1e3?`${e} tok`:e<1e6?`${(e/1e3).toFixed(1)}k tok`:`${(e/1e6).toFixed(1)}M tok`}function formatDuration(e){if(e<1e3)return`${e}ms`;let t=Math.floor(e/1e3);if(t<60)return`${t}s`;let r=Math.floor(t/60);if(r<60)return`${r}m${t%60}s`;let n=Math.floor(r/60);return`${n}h${r%60}m`}function truncate(e,t){return e.length<=t?e:e.slice(0,t-1)+"\u2026"}function safeGet(e){try{return n.ContainerUtil.get(e)}catch{return}}g.displayName="ElapsedTimer"},17430(e,t,r){r(88523),r(73381),r(32894),r(50814),r(96213),r(92735),r(51147),r(14372),r(90396),r(37905),r(67662),r(88415),r(55425),r(20991),r(68593),r(64225),r(57219),r(62909),r(53052),r(15298),r(94309),r(36988),r(64152),r(19849),r(5100),r(28806),r(36529),r(70724),r(79803),r(60114)},29134(e,t,r){r.d(t,{T:()=>InputHintBox});var n=r(88523),o=r(49726),a=r(36210),l=r(36916),i=r(39295),s=r(33286),c=r(85577),u=r.n(c),d=r(68593),m=r(20804),f=r(64225),h=r(62909),p=r(53052),g=r(94309),E=r(36988),w=r(56312),y=r(93001),b=r(66235);function useKeybinding(e,t,r){let{context:o="Global",isActive:a=!0}=r??{},l=(0,y.useRef)(t);l.current=t;let[i,s]=(0,y.useState)(null),c=(0,y.useRef)(null);(0,w.useInput)((t,r)=>{let u;if(!a)return;try{u=n.ContainerUtil.get(b.kJ)}catch{return}let d=u.resolveKeyWithChordState(t??"",r,[o,"Global"],i);switch(d.type){case"match":d.action===e&&l.current(),s(null),c.current&&(clearTimeout(c.current),c.current=null);break;case"chord_started":s(d.pending),c.current&&clearTimeout(c.current),c.current=setTimeout(()=>{s(null),c.current=null},1e3);break;case"chord_cancelled":case"unbound":case"none":i&&(s(null),c.current&&(clearTimeout(c.current),c.current=null))}},{isActive:a}),(0,y.useEffect)(()=>()=>{c.current&&clearTimeout(c.current)},[])}function getKeybindingDisplay(e,t="Global"){try{return n.ContainerUtil.get(b.kJ).getDisplayText(e,t)}catch{return}}var x=r(42163),T=r(55425),k=r(28806),S=r(73369),v=r(89072),C=r(14372),_=r(30296);let A={alive:!1},M={needsInput:0,done:0,succeeded:0,hasLiveJobs:!1};function useAgentNudge(e=C.l8N){let[t,r]=(0,_.useState)(M),[n,o]=(0,_.useState)(!1),a=(0,_.useRef)(0),l=(0,_.useRef)(!1),i=(0,_.useRef)(null),s=(0,_.useRef)(null),c=(0,_.useRef)(null),u=(0,_.useCallback)(async()=>{let e=++a.current;try{let[t,n]=await Promise.all([(0,T.rb)().list(),(0,T.a)().list()]);if(l.current||e!==a.current)return M;let c=new Map,u=new Map;for(let e of n){let t={alive:!0,status:e.status,waitingFor:e.waitingFor};c.set(e.pid,t),e.sessionId&&u.set(e.sessionId,t)}let d=t.map(e=>({id:e.id,state:e.state,display:e.display,live:(void 0!==e.state.pid?c.get(e.state.pid):void 0)??u.get(e.state.sessionId)??A})),m=(0,C.KsS)(d);r(m);let f=i.current;if(i.current=m.done,null!==f&&m.done>f){s.current&&clearTimeout(s.current),o(!0);let e=setTimeout(()=>{l.current||o(!1)},C.skO);"function"==typeof e.unref&&e.unref(),s.current=e}return m}catch{return M}},[]),d=(0,_.useCallback)(t=>{if(l.current||!(0,C.qFj)(t))return;let r=setTimeout(()=>{u().then(d).catch(()=>{})},e);"function"==typeof r.unref&&r.unref(),c.current=r},[e,u]),m=(0,_.useCallback)(()=>{c.current&&(clearTimeout(c.current),c.current=null),u().then(d).catch(()=>{})},[u,d]);return(0,_.useEffect)(()=>(l.current=!1,u().then(d).catch(()=>{}),()=>{l.current=!0,c.current&&clearTimeout(c.current),s.current&&clearTimeout(s.current)}),[u,d]),{counts:t,flashDone:n,refresh:m}}var I=r(15298);function useScreenReaderMode(){let[e,t]=(0,c.useState)(!1);return(0,c.useEffect)(()=>{let e=!1;return(async()=>{try{let r=await (0,T.fq)().get("screenReaderMode");e||t(!0===r)}catch{}})(),()=>{e=!0}},[]),e}let AgentsNudgeBox=()=>{let{theme:e}=(0,E.DP)(),{leftArrowOpensAgents:t}=(0,I.M)(),r=useScreenReaderMode(),n=!!process.env[C.bCv],{counts:o,flashDone:a}=useAgentNudge();if(n||!t)return null;let l=(0,C.IZ9)({counts:o,flashDone:a,screenReader:r}),i=!r&&(o.needsInput>0||a&&o.done>0);return u().createElement(f.Box,null,u().createElement(f.Text,{color:i?e.colors.brand:e.colors.secondary},l))};AgentsNudgeBox.displayName="AgentsNudgeBox";var O=r(35861),P=r(36529);let ReverseSearchDisplay=({reverseSearchState:e,searchInput:t})=>{let{theme:r}=(0,E.DP)(),{matches:n,matchIndex:o,searchQuery:a}=e,l=t??a,i=n.length>0&&o>=0;return u().createElement(f.Box,{flexDirection:"row",gap:1,marginTop:0},i?u().createElement(u().Fragment,null,u().createElement(f.Text,{dimColor:!0},"search prompts:"),l&&u().createElement(f.Text,{color:r.colors.primary},l),n.length>1&&u().createElement(u().Fragment,null,u().createElement(f.Text,{dimColor:!0},"(",o+1,"/",n.length,")"),u().createElement(f.Text,{dimColor:!0},"- Press Ctrl+R for next"))):l?u().createElement(u().Fragment,null,u().createElement(f.Text,{dimColor:!0},"no matching prompt"),u().createElement(f.Text,{dimColor:!0},l)):u().createElement(f.Text,{dimColor:!0},"search prompts: (type to search)"))},InputHintBox=()=>{let{vimState:e}=(0,g.Nj)(),{state:t,actions:r}=(0,p.R7)(),{reverseSearchState:l}=(0,p.vg)(),m=t.value,w=r.setValue,{isMenuActive:y}=(0,E.EH)(),{session:b}=(0,p.Lg)(),C=(0,E.qt)(),[_,A]=(0,c.useState)(i.ZC.Default),[M,I]=(0,c.useState)(!1),R=(0,x.Q)(),D=(0,E.tQ)(),L=(0,E.Z)(),$=(0,P.WH)(D.filter(e=>(0,S.Gx)(e.status)).length,[...L,...R].filter(e=>(0,S.Gx)(e.status)).length),B=(0,v.vi)(),{footerLayer:N}=(0,d.az)();(0,c.useEffect)(()=>{let e=b.permissionModeSubject.subscribe(e=>{A(e)});return()=>e.unsubscribe()},[b.id]),(0,c.useEffect)(()=>{let e=!1;try{n.ContainerUtil.get(s.tq).isAutoModeAvailable().then(t=>{e||I(t.available)}).catch(()=>{e||I(!1)})}catch{I(!1)}return()=>{e=!0}},[b.id]),(0,f.useInput)((e,n)=>{if(E.Om.ESCAPE(n)&&(m&&!y&&(t.states.includes(h.W_.KEY_PRESS)?(w(""),r.removeState(h.W_.KEY_PRESS)):(r.pushState(h.W_.KEY_PRESS),setTimeout(()=>{r.removeState(h.W_.KEY_PRESS)},1e3))),0!==t.states.length&&!t.states.includes(h.W_.KEY_PRESS)&&t.states.length>0)){let e=t.states[t.states.length-1];r.removeState(e)}}),useKeybinding("chat:cycleMode",()=>{let e=[i.ZC.Default,i.ZC.BypassPermissions,i.ZC.AcceptEdits,...M?[i.ZC.Auto]:[],...(0,o.Rqu)(b)?[]:[i.ZC.Plan],...(0,a.Rn)(b)?[]:[i.ZC.Delegate]],t=(e.indexOf(_===i.ZC.FullAccess?i.ZC.BypassPermissions:_)+1)%e.length,r=e[t];b.permissionModeSubject.next(r),r===i.ZC.Plan&&(0,T.qN)().updatePlanModeUse().catch(e=>{(0,T.Rm)().error("Failed to update plan mode usage:",e)})},{context:"Chat"});let W=[];return(!y&&(l.isActive?W.push(u().createElement(ReverseSearchDisplay,{key:"reverse-search",reverseSearchState:l})):e.isEnabled&&e.mode===g.g3.INSERT&&W.push(u().createElement(VimModeIndicatorBox,{key:"vim-mode",mode:e.mode}))),t.states.includes(h.W_.COPY_SUCCESS)?W.push(u().createElement(CopySuccessHintBox,{key:"copy-success"})):t.states.includes(h.W_.COPY_FAILED)?W.push(u().createElement(CopyFailedHintBox,{key:"copy-failed"})):t.states.includes(h.W_.COPY_NO_MESSAGE)?W.push(u().createElement(CopyNoMessageHintBox,{key:"copy-no-message"})):t.states.includes(h.W_.WINDOWS_PASTE_HINT)?W.push(u().createElement(WindowsPasteHintBox,{key:"windows-paste-hint"})):t.states.includes(h.W_.CLIPBOARD_COMPATIBILITY_ERROR)?W.push(u().createElement(ClipboardCompatibilityErrorBox,{key:"clipboard-error"})):t.states.includes(h.W_.IMAGE_NOT_SUPPORTED)?W.push(u().createElement(ImageNotSupportedBox,{key:"image-not-supported"})):t.states.includes(h.W_.NO_IMAGE_HINT)?W.push(u().createElement(NoImageHintBox,{key:"no-image"})):t.states.includes(h.W_.KEY_PRESS)&&m.length?W.push(u().createElement(EscKeyPressHintBox,{key:"esc-press"})):t.states.includes(h.W_.HELP)&&!m?W.push(u().createElement(ShortcutsHintBox,{key:"shortcuts"})):k.X$.onlyIncludeBash(t.states)?W.push(u().createElement(BashModeHintBox,{key:"bash-mode"})):k.X$.onlyIncludeMemory(t.states)?W.push(u().createElement(MemoryModeHintBox,{key:"memory-mode"})):k.X$.onlyIncludeDefault(t.states)&&("agents"===N?W.push(u().createElement(AgentSelectHintBox,{key:"agent-select"})):(C?W.push(u().createElement(MultitaskModeHint,{key:"multitask-mode",permissionMode:_,liveCount:$})):_!==i.ZC.Default?W.push(u().createElement(PermissionModeDisplay,{key:"permission-mode",permissionMode:_})):m&&!k.X$.isFileOrComandOrHelpMenuActive(m,t.states)?W.push(u().createElement(PlaceholdHintBox,{key:"placeholder"})):m||_!==i.ZC.Default||0!==R.length||W.push(u().createElement(HelpHintBox,{key:"help"})),W.push(u().createElement(O.L,{key:"background-shells"})),B||W.push(u().createElement(AgentsNudgeBox,{key:"agents-nudge"})))),0===W.length)?u().createElement(u().Fragment,null):u().createElement(f.Box,{flexDirection:"row",gap:2},W)},AgentSelectHintBox=()=>{let{theme:e}=(0,E.DP)();return u().createElement(f.Box,null,u().createElement(f.Text,{color:e.colors.secondary},S.RX))},PlaceholdHintBox=()=>u().createElement(f.Box,null),HelpHintBox=()=>{let{theme:e}=(0,E.DP)(),{session:t}=(0,p.Lg)(),r=(0,E.ok)(t),n=!!(0,p.i9)().headerData?.currentMainAgent&&!r&&!(0,m.BT)(t);return u().createElement(f.Box,null,u().createElement(f.Text,{color:e.colors.secondary},(0,m.hW)(n)))},MultitaskModeHint=({permissionMode:e,liveCount:t})=>{let{theme:r}=(0,E.DP)(),{session:n}=(0,p.Lg)(),o=getKeybindingDisplay("chat:cycleMode","Chat")??"shift+tab",a=n.meta?.prePlanPermissionMode,s=r.colors.secondary;switch(e){case i.ZC.BypassPermissions:case i.ZC.FullAccess:s=(0,l.PY)(e)?r.colors.error:r.colors.warning;break;case i.ZC.AcceptEdits:s=r.colors.info;break;case i.ZC.Plan:s=r.colors.planMode;break;case i.ZC.Delegate:s=r.colors.delegateMode;break;case i.ZC.DontAsk:case i.ZC.Auto:s=r.colors.warning}return u().createElement(f.Box,null,u().createElement(f.Text,{color:s},(0,P.Sk)(e,a,o,t)))},PermissionModeDisplay=({permissionMode:e})=>{let{theme:t}=(0,E.DP)(),{session:r}=(0,p.Lg)(),n="",o=t.colors.secondary,a=getKeybindingDisplay("chat:cycleMode","Chat")??"shift+tab",s=r.meta?.prePlanPermissionMode;switch(e){case i.ZC.BypassPermissions:case i.ZC.FullAccess:n=`\u{23F5}\u{23F5} bypass permissions on (${a} to cycle)`,o=(0,l.PY)(e)?t.colors.error:t.colors.warning;break;case i.ZC.AcceptEdits:n=`\u{23F5}\u{23F5} accept edits on (${a} to cycle)`,o=t.colors.info;break;case i.ZC.Plan:if(s&&s!==i.ZC.Default){let e=s===i.ZC.BypassPermissions||s===i.ZC.FullAccess?"bypass":s===i.ZC.AcceptEdits?"accept edits":s===i.ZC.Auto?"auto mode":"";if(e){n=`\u{23F8} plan + ${e} (${a} to cycle)`,o=t.colors.planMode;break}}n=`\u{23F8} plan mode on (${a} to cycle)`,o=t.colors.planMode;break;case i.ZC.Delegate:n=`\u{21E2} delegate mode on (${a} to cycle)`,o=t.colors.delegateMode;break;case i.ZC.DontAsk:n="\u23F5\u23F5 don't ask on",o=t.colors.warning;break;case i.ZC.Auto:n=`\u{23F5}\u{23F5} auto mode on (${a} to cycle)`,o=t.colors.warning;break;case i.ZC.Default:default:return}return u().createElement(f.Box,null,u().createElement(f.Text,{color:o},n))},R="! for bash mode",D="# to memorize",ShortcutsHintBox=()=>{let{theme:e}=(0,E.DP)(),t=e.colors.secondary,r=getKeybindingDisplay("chat:cycleMode","Chat")??"shift+tab",n=[{title:R,usage:"double tap esc to clear input",other:"ctrl + _ to undo"},{title:"/ for commands",usage:`${r} to auto-accept edits`,other:"ctrl + z to suspend"},{title:"/mode to switch",usage:"before the first message",other:"/clear then /mode"},{title:"@ for file paths",usage:"ctrl + r for verbose output",other:"tab to autocomplete"},{title:D,usage:"shift + \u23CE for newline",other:"ctrl + a/e line nav"},{title:"Enhanced editing",usage:"ctrl + k/u kill line",other:"ctrl + y copy response"}],o=Math.max(...n.map(({title:e})=>e.length))+4,a=Math.max(...n.map(({usage:e})=>e.length))+4;return u().createElement(f.Box,{flexDirection:"column"},n.map(({title:e,usage:r,other:n},l)=>u().createElement(f.Box,{key:`${l}-${e}-${r}`},u().createElement(f.Box,{width:o},u().createElement(f.Text,{color:t},e)),u().createElement(f.Box,{width:a},u().createElement(f.Text,{color:t},r)),u().createElement(f.Box,null,u().createElement(f.Text,{color:t},n)))))},BashModeHintBox=()=>{let{state:e}=(0,p.R7)(),{theme:t}=(0,E.DP)(),{color:r}=k.X$.getConfig(e.states,t);return u().createElement(f.Box,null,u().createElement(f.Text,{color:r},R))},MemoryModeHintBox=()=>{let{state:e}=(0,p.R7)(),{theme:t}=(0,E.DP)(),{color:r}=k.X$.getConfig(e.states,t);return u().createElement(f.Box,null,u().createElement(f.Text,{color:r},D))},EscKeyPressHintBox=()=>{let{theme:e}=(0,E.DP)();return u().createElement(f.Box,null,u().createElement(f.Text,{color:e.colors.secondary},"Press Esc again to clear"))},NoImageHintBox=()=>{let{theme:e}=(0,E.DP)(),t="darwin"===process.platform?"Cmd + V or Ctrl + V":"Ctrl + V";return u().createElement(f.Box,null,u().createElement(f.Text,{color:e.colors.warning},"No image in clipboard. Please copy an image first and then ",t," to paste."))},ClipboardCompatibilityErrorBox=()=>{let{theme:e}=(0,E.DP)();return u().createElement(f.Box,null,u().createElement(f.Text,{color:e.colors.error},"Image pasting not supported. Install required tools:"),u().createElement(f.Text,{color:e.colors.error},"macOS: `brew install pngpaste`"),u().createElement(f.Text,{color:e.colors.error},"Linux: `sudo apt install xclip`"))},ImageNotSupportedBox=()=>{let{theme:e}=(0,E.DP)();return u().createElement(f.Box,null,u().createElement(f.Text,{color:e.colors.warning},"Current model does not support images. Please switch to a model that supports images."))},VimModeIndicatorBox=({mode:e})=>u().createElement(f.Box,{flexDirection:"row",justifyContent:"flex-start",marginTop:0},u().createElement(f.Text,{dimColor:!0},"-- ",e," --")),CopySuccessHintBox=()=>{let{theme:e}=(0,E.DP)();return u().createElement(f.Box,null,u().createElement(f.Text,{color:e.colors.success},"Copied to clipboard"))},CopyFailedHintBox=()=>{let{theme:e}=(0,E.DP)();return u().createElement(f.Box,null,u().createElement(f.Text,{color:e.colors.error},"Failed to copy to clipboard"))},CopyNoMessageHintBox=()=>{let{theme:e}=(0,E.DP)();return u().createElement(f.Box,null,u().createElement(f.Text,{color:e.colors.warning},"No message to copy"))},WindowsPasteHintBox=()=>{let{theme:e}=(0,E.DP)();return u().createElement(f.Box,null,u().createElement(f.Text,{color:e.colors.warning},"Windows Ctrl+V may block input for large paste. Use Alt+V for fast paste."))}},69449(e,t,r){r.d(t,{Z:()=>InputMenuBox});var n=r(85577),o=r.n(n),a=r(2769),l=r(82284),i=r(52379),s=r(64225),c=r(53052),u=r(36988),d=r(28806);let InputSuggestionsMenu=()=>{let{theme:e}=(0,u.DP)(),t=(0,n.useRef)(void 0),{state:r,actions:a}=(0,c.R7)(),l=a.setValue,m=a.moveCursor,{addToHistory:f}=(0,c.vg)(),{suggestions:h,requestSuggestions:p,setSuggestions:g,markSentFromSuggestion:E}=(0,c.p3)(),w=d.X$.isCommandOrFileMenuContextActive(r.value,r.states,r.cursorOffset),y=(0,i.useContextSelector)(c.rZ,e=>e.sendMessage),b=(0,n.useMemo)(()=>h.map(e=>({key:e.label,label:e.label,value:e})),[h]),x=(0,n.useMemo)(()=>[],[]),T=(0,n.useCallback)(async(e,n,o)=>{let a=e.startsWith("/"),i=o||e,s=r.value,c=r.cursorOffset,u=r?.cursorWidth??0,d=c,h=c;if(u>0)d=c,h=c+u;else{if(a){let e=-1;for(let t=c-1;t>=0;t--){let r=s[t];if("/"===r){e=t;break}if(/\s/.test(r))break}if(-1!==e)d=e;else for(;d>0&&!/\s/.test(s[d-1]);)d--}else for(;d>0&&!/\s/.test(s[d-1]);)d--;h=c}let p=s.slice(0,d),w=s.slice(h),b=0===w.length||!/^\s/.test(w),x=p+i+(b?" ":"")+w,T=(p+i+(b?" ":"")).length;l(x),m(T,0),(a=x.startsWith("/"))&&n&&(t.current=void 0,g([])),a&&!n&&(E(),f(x),y(x),l(""))},[r.value,r.cursorWidth,r.cursorOffset,f,y,l,E,m]),k=(0,n.useCallback)(e=>{e&&e.value&&T(e.value.label,!1,e.value.value)},[T]),S=(0,n.useCallback)(e=>{if(!e){t.current=void 0;return}t.current=e.value},[]);(0,n.useEffect)(()=>{if(!w)return void g([]);let e=setTimeout(()=>{p(r.value,r.cursorOffset)},100);return()=>{clearTimeout(e)}},[r.value,r.cursorOffset,p,g,w]),(0,s.useInput)((e,r)=>{if(r.tab&&t.current){let e=t.current;T(e.label,!0,e.value)}},{isActive:w&&h.length>0});let v=(0,n.useCallback)(({value:t,isSelected:r,maxLabelLength:n})=>{let a=t.color??(r?e.colors.info:e.colors.secondary),l=r?e.colors.info:e.colors.secondary;return o().createElement(s.Box,{flexDirection:"row",gap:1,paddingX:2},o().createElement(s.Box,{width:n+4,flexShrink:0},o().createElement(s.Text,{color:a,bold:r,wrap:"truncate-middle"},t.label)),t.description&&t.description.trim()&&o().createElement(s.Box,{flexGrow:1,flexShrink:1},o().createElement(s.Text,{color:l,bold:r,dimColor:!r,wrap:"truncate"},t.description)))},[e]);return o().createElement(s.SelectInput,{items:w?b:x,limit:10*!!w,showIndicator:!1,itemComponent:v,onSelect:k,onHighlight:S,isFocused:w&&h.length>0,disabledInputMode:["number"]})},InputMenuBox=()=>{let{isMemoryMenu:e}=(0,a.E)();return e?o().createElement(l.n,null):o().createElement(InputSuggestionsMenu,null)}},82284(e,t,r){r.d(t,{n:()=>MemorySavingMenu});var n=r(79896),o=r(91943),a=r(19960),l=r(16928),i=r(85577),s=r.n(i),c=r(52379),u=r(73381),d=r(79620),m=r(39457),f=r(72251),h=r(70370),p=r(88415),g=r(64225),E=r(53052),w=r(36988),y=r(55425),b=r(28806);let MemorySavingMenu=({commandMode:e})=>{let{theme:t}=(0,w.DP)(),r=(0,c.useContextSelector)(E.aO,e=>e.back),x=(0,c.useContextSelector)(E.Gb,e=>e.refreshStatic),{session:T}=(0,E.Lg)(),{state:k,actions:S}=(0,E.R7)(),v=k.value,C=S.setValue,{clearMenuState:_}=(0,w.EH)(),A=t.colors.brand;e||(A=b.X$.getConfig(k.states,t).color);let M=(0,i.useMemo)(()=>p.P.getProjectMemoryDir(),[]),I=(0,i.useMemo)(()=>`${M}/MEMORY.md`,[M]),[O,P]=(0,i.useState)(!0);(0,i.useEffect)(()=>{e&&(0,y.fq)().get("memory").then(e=>{e?.autoMemoryEnabled!==void 0?P(e.autoMemoryEnabled):P(!0)}).catch(()=>{P(!0)})},[e]);let R=(0,i.useMemo)(()=>{if(!e)return[];let t=[];try{if((0,n.existsSync)(M)){let e=(0,n.readdirSync)(M).filter(e=>e.endsWith(".md"));t.push(...e)}}catch{}let r=[],o=t.length;r.push({value:"open-auto-memory-dir",label:"1. Auto Memory directory",description:o>0?`${o} file(s) in ${M}/`:`(empty) ${M}/`,action:"open-dir",filePath:M}),r.push({value:"edit-memory-index",label:"2. Edit MEMORY.md",description:`Index file \u{2014} ${I}`,action:"open-file",filePath:I});let a=p.P.getMemoryFilePath(d.we.PROJECT);r.push({value:"edit-codebuddy-project",label:"3. Project CODEBUDDY.md",description:`./${(0,l.basename)(p.P.getRelativePath(a))}`,action:"open-file",filePath:a});let i=p.P.getMemoryFilePath(d.we.USER);return r.push({value:"edit-codebuddy-user",label:"4. User CODEBUDDY.md",description:i,action:"open-file",filePath:i}),r.push({value:"toggle-auto-memory",label:`5. Auto Memory: ${O?"ON":"OFF"}`,description:O?"Enabled \u2014 AI will automatically save and read memories":"Disabled \u2014 AI will not use the memory system",action:"toggle",filePath:""}),r},[e,M,I,O]),D=(0,i.useMemo)(()=>{if(e)return[];let t=p.P.getMemoryFilePath(d.we.PROJECT),r=p.P.getMemoryFilePath(d.we.USER),n=p.P.getRelativePath(t);return[{value:d.we.PROJECT,label:"1. Project memory",filePath:`./${(0,l.basename)(n)}`},{value:d.we.USER,label:"2. User memory",filePath:r}]},[e]),L=(0,i.useCallback)(e=>{(0,y.J0)().executeLocalCommand({name:u.B5.Memory,session:T,args:[{fact:v,scope:e}]}),_(),C("")},[v,T.id,_,C]),$=(0,i.useCallback)(async e=>{if("toggle"===e.action){let e=!O;try{let t=await (0,y.fq)().get("memory")??{};await (0,y.fq)().set("memory",{...t,autoMemoryEnabled:e}),P(e),(0,y.J0)().finalizeCommandExecution(T,`Auto Memory ${e?"enabled":"disabled"}.`)}catch(t){let e=t instanceof Error?t.message:String(t);(0,y.J0)().finalizeCommandExecution(T,`Failed to toggle Auto Memory: ${e}`)}r({onAfterRender:()=>{x()}});return}if("open-dir"===e.action){let t=e.filePath;try{await (0,o.mkdir)(t,{recursive:!0})}catch{}let r=!1;try{r=await h.i.openFile(t)}catch{r=!1}r?(0,y.J0)().finalizeCommandExecution(T,`Opened Auto Memory directory at ${m.n.createFileHyperlink(t)}`):(0,y.J0)().finalizeCommandExecution(T,`Auto Memory directory: ${t}
|
|
17
|
+
${l}`),u.join("\n")}getMessageText(e){if("user"===e.role){let t=W.c.extractTextContent(e,!0)?.trim()||"";return F.r.stripUserQueryTags(t).trim()}return"function_call_result"===e.type?"string"==typeof e.output?e.output:Array.isArray(e.output)?e.output.filter(e=>"text"===e.type).map(e=>e.text).join("\n"):"":"string"==typeof e.content?e.content:Array.isArray(e.content)?e.content.filter(e=>"output_text"===e.type||"text"===e.type).map(e=>e.text).join("\n"):""}isRealUserMessage(e){return e?.type==="message"&&"user"===e.role&&!e.providerData?.skipRun&&!e.providerData?.isCompactInternal}hardCapEnd(e,t){return e.length<=t?e:t<=1?e.slice(-t):"\u2026"+e.slice(-(t-1))}hardCap(e,t){return e.length<=t?e:t<=1?e.slice(0,t):e.slice(0,t-1)+"\u2026"}cancelPendingRequest(){this.currentAbortController&&(this.currentAbortController.abort(),this.currentAbortController=void 0)}static{this.TRACE_HEADER_KEYS=["X-Request-ID","b3","X-B3-TraceId","X-B3-ParentSpanId","X-B3-SpanId","X-B3-Sampled","X-Trace-ID"]}removeTraceHeaders(e){let t={},r=e.requestOptions?.headers;if(!r)return t;for(let e of n.TRACE_HEADER_KEYS)e in r&&(t[e]=r[e],delete r[e]);return t}restoreTraceHeaders(e,t){0!==Object.keys(t).length&&(e.requestOptions||(e.requestOptions={}),e.requestOptions.headers={...e.requestOptions.headers,...t})}pushSuggestionToAcpClients(e){try{for(let[,t]of m.ContainerUtil.get(D.NZ).getAll()){let r=t.getClientCapabilities(),n=r?._meta?.["codebuddy.ai"];if(!n?.promptSuggestion)continue;let o=t.getConnection(),a=this.sessionManager.sessionSubject.value;a&&o.sessionUpdate({sessionId:a.id,update:{sessionUpdate:"session_info_update",_meta:{"codebuddy.ai/promptSuggestion":e.text}}}).catch(e=>{this.logger.warn?.(`Failed to push prompt suggestion to ACP client: ${e.message}`)})}}catch{}}};__decorate([(0,m.Autowired)(L.AgentService),__metadata("design:type","function"==typeof(o=void 0!==L.AgentService&&L.AgentService)?o:Object)],H.prototype,"agentService",void 0),__decorate([(0,m.Autowired)(L.EOh),__metadata("design:type","function"==typeof(a=void 0!==L.EOh&&L.EOh)?a:Object)],H.prototype,"runnerProvider",void 0),__decorate([(0,m.Autowired)(x.Cv),__metadata("design:type","function"==typeof(l=void 0!==x.Cv&&x.Cv)?l:Object)],H.prototype,"sessionManager",void 0),__decorate([(0,m.Autowired)(B.Vr),__metadata("design:type","function"==typeof(i=void 0!==B.Vr&&B.Vr)?i:Object)],H.prototype,"settingsManager",void 0),__decorate([(0,m.Autowired)(O.Logger),__metadata("design:type","function"==typeof(s=void 0!==O.Logger&&O.Logger)?s:Object)],H.prototype,"logger",void 0),__decorate([(0,m.PostConstruct)(),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",void 0)],H.prototype,"init",null),H=n=__decorate([(0,m.Component)(j)],H);var G=r(20131),prompt_suggestion_stop_hook_decorate=function(e,t,r,n){var o,a=arguments.length,l=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)l=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(o=e[i])&&(l=(a<3?o(l):a>3?o(t,r,l):o(t,r))||l);return a>3&&l&&Object.defineProperty(t,r,l),l};let V=class{constructor(){this.event=G.mb.STOP,this.priority=G.Mg.Lowest}async execute(e){let t=e.session;t&&this.promptSuggestionService.generateSuggestionAsync(t)}};prompt_suggestion_stop_hook_decorate([(0,m.Autowired)(j),function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)}("design:type","function"==typeof(c=void 0!==j&&j)?c:Object)],V.prototype,"promptSuggestionService",void 0),V=prompt_suggestion_stop_hook_decorate([(0,m.Component)(G.qn)],V);var prompt_suggestion_channel_approval_hook_decorate=function(e,t,r,n){var o,a=arguments.length,l=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)l=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(o=e[i])&&(l=(a<3?o(l):a>3?o(t,r,l):o(t,r))||l);return a>3&&l&&Object.defineProperty(t,r,l),l},prompt_suggestion_channel_approval_hook_metadata=function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};let K=G.Mg.Lowest-10,J=class{constructor(){this.event=G.mb.STOP,this.priority=K}async execute(e){if(e.stop_hook_active)return;let t=e.session;if(!t)return;let r=t.meta;if(!r?.isChannelSession||!r.channelId||!r.channelChatId)return;if("group"===r.channelChattype)return void this.logger.info("[ChannelApproval] Group chat detected, skipping prompt suggestion");let n=r.channelId,o=r.channelChatId;if(this.logger.info(`[ChannelApproval] Channel session detected: ${n}, chatId: ${o}`),this.isConversationTooShort(t))return void this.logger.info("[ChannelApproval] Conversation too short (no tool calls, few turns), skipping suggestion");if(!await this.waitForInputOrTimeout(t,6e4))return void this.logger.info("[ChannelApproval] New user input received during delay, skipping suggestion");let a=await this.promptSuggestionService.generateSuggestionText(t);return a?(this.logger.info(`[ChannelApproval] Suggestion after 60s delay: ${a}`),await this.sendToChannelAndWaitForApproval(n,o,t.id,a))?(this.logger.info("[ChannelApproval] User approved suggestion, continuing with new conversation"),{allowed:!0,continueRequest:{message:(0,P.kQ)(a)}}):void this.logger.info("[ChannelApproval] Suggestion not approved (rejected/session changed)"):void this.logger.info("[ChannelApproval] No suggestion generated, skipping")}isConversationTooShort(e){return!((e.telemetry?.currentTurn??0)>2)&&!e.history.some(e=>"function_call"===e.type)}waitForInputOrTimeout(e,t){return new Promise(r=>{let n=!1,o=e.inputSubject.subscribe(()=>{n||(n=!0,clearTimeout(a),o.unsubscribe(),r(!1))}),a=setTimeout(()=>{n||(n=!0,o.unsubscribe(),r(!0))},t)})}async sendToChannelAndWaitForApproval(e,t,n,o){try{let a;if("wecom"===e){let{WecomBotChannelBridge:e}=r(94253);a=m.ContainerUtil.get(e)}else{if("wechat"!==e)return this.logger.warn(`[ChannelApproval] Unknown channel type: ${e}`),!1;let{WechatChannelBridge:t}=r(20851);a=m.ContainerUtil.get(t)}if(!a)return this.logger.warn(`[ChannelApproval] ${e} bridge not available`),!1;return await a.sendPromptSuggestionAndWaitForApproval(o,t,n)}catch(t){return this.logger.warn(`[ChannelApproval] Failed to send suggestion to ${e}: ${t.message}`),!1}}};prompt_suggestion_channel_approval_hook_decorate([(0,m.Autowired)(j),prompt_suggestion_channel_approval_hook_metadata("design:type","function"==typeof(u=void 0!==j&&j)?u:Object)],J.prototype,"promptSuggestionService",void 0),prompt_suggestion_channel_approval_hook_decorate([(0,m.Autowired)(O.Logger),prompt_suggestion_channel_approval_hook_metadata("design:type","function"==typeof(d=void 0!==O.Logger&&O.Logger)?d:Object)],J.prototype,"logger",void 0),J=prompt_suggestion_channel_approval_hook_decorate([(0,m.Component)(G.qn)],J);var q=r(36210);function useIsMultitaskCoordinator(){let{session:e}=(0,b.Lg)(),[t,r]=(0,E.useState)(()=>(0,q.Rn)(e));return(0,E.useEffect)(()=>{r((0,q.Rn)(e));try{let t=(0,g.id)().sessionSubject.subscribe(t=>{r((0,q.Rn)(t??e))});return()=>t.unsubscribe()}catch{return}},[e]),t}var Y=r(43634);function readTask(e){try{return m.ContainerUtil.get(Y.AgentTaskManager).getTask(e)}catch{return}}function enrichWorker(e){let t=readTask(e.id);return{...e,toolCallCount:t?.toolCallHistory?.length,lastContextWindow:t?.tokenUsage?.lastContextWindow,totalTokens:t?.tokenUsage?.totalTokens,agentType:t?.agentType,startTime:t?.startTime}}function useCoordinatorWorkers(){let{session:e}=(0,b.Lg)(),[t,r]=(0,E.useState)([]),n=(0,E.useCallback)(()=>{if(!(0,q.Rn)(e))return void r([]);try{r(((0,q.CB)(e)??[]).map(enrichWorker))}catch{r([])}},[e]);return(0,E.useEffect)(()=>{n();let e=[];try{let t=(0,g.id)().sessionSubject.subscribe(()=>n());e.push(()=>t.unsubscribe())}catch{}try{let t=m.ContainerUtil.get(Y.AgentTaskManager),handler=()=>n();t.on("task-started",handler),t.on("task-completed",handler),t.on("task-failed",handler),t.on("task-cancelled",handler),t.on("task-killed",handler);let r=setInterval(n,1e3);e.push(()=>{t.off("task-started",handler),t.off("task-completed",handler),t.off("task-failed",handler),t.off("task-cancelled",handler),t.off("task-killed",handler),clearInterval(r)})}catch{}return()=>{for(let t of e)t()}},[n]),t}var X=r(42163);let z=new Set(["completed","failed","cancelled","killed"]);function useSyncTaskProgress(){let[e,t]=(0,E.useState)([]),r=(0,E.useRef)(0),n=(0,E.useRef)(void 0),o=(0,E.useCallback)(()=>{try{let e=m.ContainerUtil.get(Y.AgentTaskManager),a=e.getTasks().filter(e=>!e.isBackground&&!e.isTeamMember);if(0===a.length){r.current=0,t([]);return}if(a.every(e=>z.has(e.status??""))){0===r.current&&(r.current=Date.now());let l=Date.now()-r.current;if(l>=3e3){for(let t of a)z.has(t.status??"")&&e.removeTask(t.id);t([]);return}n.current||(n.current=setTimeout(()=>{n.current=void 0,o()},3e3-l))}else r.current=0,n.current&&(clearTimeout(n.current),n.current=void 0);let l=a.map(e=>({id:e.id,status:e.status||"pending",description:e.description,agentType:e.agentType,lastContextWindow:e.tokenUsage?.lastContextWindow,toolCallCount:e.toolCallHistory?.length,startTime:e.startTime,totalTokens:e.tokenUsage?.totalTokens}));t(l)}catch{t([])}},[]);return(0,E.useEffect)(()=>{o();try{let e=m.ContainerUtil.get(Y.AgentTaskManager),handler=()=>o();e.on("task-started",handler),e.on("task-completed",handler),e.on("task-failed",handler),e.on("task-cancelled",handler);let t=setInterval(o,3e3);return()=>{e.off("task-started",handler),e.off("task-completed",handler),e.off("task-failed",handler),e.off("task-cancelled",handler),clearInterval(t),n.current&&(clearTimeout(n.current),n.current=void 0)}}catch{return}},[o]),e}r(15538),r(97542),r(73369),r(67292);let useInputMultiline=(e,t,r,n,o=!1)=>{let a=(0,E.useMemo)(()=>o?e.split(/\r?\n/):[e],[e,o]),l=(0,E.useMemo)(()=>{if(!o)return[];let e=0;return a.map(t=>{let r=e,n=e+t.length;return e+=t.length+1,{startOffset:r,endOffset:n}})},[a,o]),i=(0,E.useCallback)(()=>{if(!o)return{lineIndex:0,columnIndex:t,line:e};let r=0,n=0;for(let e of a){let o=r+e.length+1;if(o>t)return{lineIndex:n,columnIndex:t-r,line:e};r=o,n++}let l=a[a.length-1]||"",i=r-l.length-1;return{lineIndex:a.length-1,columnIndex:t-i,line:l}},[o,e,a,t]),s=(0,E.useCallback)((t,r)=>{if(!o)return Math.min(r,e.length);let n=0;for(let e=0;e<t&&e<a.length;e++)n+=a[e].length+1;let l=a[t];return n+Math.min(r,l?.length||0)},[o,e,a]),c=(0,E.useCallback)(()=>{if(!o)return!1;let{lineIndex:e,columnIndex:t}=i();if(0===e)return!1;let r=e-1,a=s(r,t);return n.batchUpdate({cursorOffset:a,currentLine:r}),!0},[o,i,s,n]),u=(0,E.useCallback)(()=>{if(!o)return!1;let{lineIndex:e,columnIndex:t}=i();if(e>=a.length-1)return!1;let r=e+1,l=s(r,t);return n.batchUpdate({cursorOffset:l,currentLine:r}),!0},[o,a.length,i,s,n]),d=(0,E.useCallback)(()=>{if(!o)return!0;let{lineIndex:e}=i();return 0===e},[o,i]),m=(0,E.useCallback)(()=>{if(!o)return!0;let{lineIndex:e}=i();return e===a.length-1},[o,a.length,i]),f=(0,E.useCallback)(t=>{let{lineIndex:r}=i();return{newValue:e.slice(0,t)+"\n"+e.slice(t),newCursorOffset:t+1,newLineIndex:r+1}},[e,i]);return{lines:a,lineOffsets:l,currentLine:r,getCurrentLineInfo:i,getOffsetFromLineColumn:s,moveToLineAbove:c,moveToLineBelow:u,isAtTopLine:d,isAtBottomLine:m,insertNewline:f}};r(16819),r(72542)},11223(e,t,r){r.d(t,{W:()=>l,w:()=>useAgentPhase});var n=r(93001),o=r(67662),a=r(53052);let useAgentPhase=e=>{let{session:t}=(0,a.Lg)(),r=void 0===e?t:e,[o,l]=(0,n.useState)(()=>r?.phaseSubject?.getValue());return(0,n.useEffect)(()=>{let e=r?.phaseSubject?.subscribe(l);return()=>e?.unsubscribe()},[r]),o},l=o.wY.getLabel},16819(e,t,r){r.d(t,{e:()=>useBasicInput});var n=r(88523),o=r(56312),a=r(93001),l=r(26210),i=r(34479);function useBasicInput(e){let{focus:t=!0,onParsedInput:r}=e,{stdin:s,setRawMode:c,isRawModeSupported:u,internal_eventEmitter:d}=(0,o.useStdin)(),m=(0,a.useRef)(l.YF.createState()),f=(0,a.useRef)(r);f.current=r;let h=(0,a.useCallback)(e=>{let t=f.current,r=m.current,o=e.toString();if(n.isWindows&&r.mode===l.X6.NORMAL&&o.length>1&&!o.includes("\x1b"))return void t({sequence:o,isPasted:!1});let[a,i]=l.YF.parse(r,e);for(let e of(m.current=i,a))t(e);r.mode===l.X6.IN_PASTE&&i.mode===l.X6.NORMAL&&0===a.length&&""===i.incomplete&&t({sequence:"",isPasted:!0})},[]);(0,a.useEffect)(()=>{if(t&&u&&process.stdin.setRawMode)return c(!0),()=>c(!1)},[t,u,c]),(0,a.useEffect)(()=>{if(t){if(d)return d.on("input",h),()=>{d.removeListener("input",h)};if(s)return s.on("data",h),()=>{s.off("data",h)}}},[t,s,d,h]),(0,a.useEffect)(()=>{if(t)return i.$D.enableBracketedPaste(),()=>{i.$D.disableBracketedPaste()}},[t])}},8153(e,t,r){r(48161),r(76760),r(38090),r(88415),r(98447)},4433(e,t,r){r(73381),r(36600),r(55425)},44302(e,t,r){r(63909),r(88415),r(15871)},8076(e,t,r){r(28806)},67465(e,t,r){r(88523),r(92735),r(76982),r(16928),r(56913),r(3797),r(40838),r(31833),r(88415),r(55425)},2769(e,t,r){r.d(t,{E:()=>useMenuState});var n=r(93001),o=r(53052),a=r(28806),l=r(62909);let useMenuState=()=>{let{state:e,actions:t}=(0,o.R7)(),r=(0,n.useCallback)((r,n)=>{if(!a.X$.includeDefault(e.states))return;let o=a.X$.shouldShowMenu(r,n),i=e.states.includes(l.W_.MENU);o&&!i?t.pushState(l.W_.MENU):!o&&i&&t.removeState(l.W_.MENU)},[e.states,t]),i=(0,n.useCallback)(()=>{let r=e.states.includes(l.W_.MEMORY),n=e.states.includes(l.W_.MENU);return!!r&&!n&&(t.pushState(l.W_.MENU),!0)},[e.states,t]),s=(0,n.useCallback)(()=>{e.states.includes(l.W_.MENU)&&t.removeState(l.W_.MENU)},[e.states,t]),c=e.states.includes(l.W_.MENU),u=c&&a.X$.includeDefault(e.states),d=c&&e.states.includes(l.W_.MEMORY);return{isMenuActive:c,isCommandMenu:u,isMemoryMenu:d,updateMenuState:r,addMenuStateForMemory:i,clearMenuState:s}}},568(e,t,r){r(88523),r(49726),r(20131),r(40838),r(67292),r(53052)},90777(e,t,r){r(57318)},99601(e,t,r){r(88523),r(76982),r(68938),r(49726),r(99524),r(67662),r(53052),r(55425)},13389(e,t,r){r(88523),r(67662),new WeakMap},99455(e,t,r){r.d(t,{X:()=>useSessionRunStateIsBusy});var n=r(67662),o=r(19849);let useSessionRunStateIsBusy=e=>(0,n.Rh)((0,o.Y)(e).status)},64152(e,t,r){r(67662),r(19849)},19849(e,t,r){r.d(t,{Y:()=>useSessionRunStateSnapshot});var n=r(88523),o=r(93001),a=r(67662);let l={status:a.OT.IDLE},useSessionRunStateSnapshot=e=>{let t=n.ContainerUtil.get(a.MU),[r,i]=(0,o.useState)(()=>e?t.getSnapshot(e):l);return(0,o.useEffect)(()=>{if(!e)return void i(l);i(r=>{let n=t.getSnapshot(e);return r===n||r.status===n.status&&r.lastTransition?.at===n.lastTransition?.at?r:n});let r=t.getChange$(e).subscribe(()=>{let r=t.getSnapshot(e);i(e=>e===r||e.status===r.status&&e.lastTransition?.at===r.lastTransition?.at?e:r)});return()=>r.unsubscribe()},[e,t]),r}},34559(e,t,r){r.d(t,{U:()=>useSessionRunStateStatus});var n=r(19849);let useSessionRunStateStatus=e=>(0,n.Y)(e).status},15538(e,t,r){r(40838),r(68593)},42163(e,t,r){r.d(t,{Q:()=>useTeamProgress});var n=r(88523),o=r(43634),a=r(97542),l=r(40838),i=r(93001);function useTeamProgress(){let[e,t]=(0,i.useState)([]),r=(0,i.useCallback)(()=>{try{if(!n.ContainerUtil.get(a.DQ).isInTeam())return void t([]);let e=(0,l.lhW)().getAll().map(e=>{let t=e.getAgentTask();return{name:e.info.name,color:e.info.color,status:t?.status||"pending",description:t?.description,taskId:t?.id,lastContextWindow:t?.tokenUsage?.lastContextWindow,toolCallCount:t?.toolCallHistory?.length,startTime:t?.startTime,totalTokens:t?.tokenUsage?.totalTokens,agentType:t?.agentType}});t(e)}catch{t([])}},[]);return(0,i.useEffect)(()=>{r();try{let e=n.ContainerUtil.get(o.AgentTaskManager),handler=()=>r();e.on("task-started",handler),e.on("task-completed",handler),e.on("task-failed",handler),e.on("task-cancelled",handler),e.on("task-killed",handler);let t=setInterval(r,3e3);return()=>{e.off("task-started",handler),e.off("task-completed",handler),e.off("task-failed",handler),e.off("task-cancelled",handler),e.off("task-killed",handler),clearInterval(t)}}catch{return}},[r]),e}},60114(e,t,r){r.d(t,{H:()=>useTerminalSize,_:()=>useTerminalResize});var n=r(63598),o=r.n(n),a=r(56312),l=r(93001),i=r(39457),s=r(28429);let c=new Set,u=!1;function ensureResizeListener(){u||(u=!0,process.stdout.on("resize",()=>{for(let e of c)e()}))}function useTerminalSize(){let[e,t]=(0,l.useState)({columns:process.stdout.columns||80,rows:process.stdout.rows||24});return(0,l.useEffect)(()=>{let onResize=()=>{t({columns:process.stdout.columns||80,rows:process.stdout.rows||24})};return c.add(onResize),ensureResizeListener(),()=>{c.delete(onResize)}},[]),e}let useTerminalResize=()=>{let{staticKey:e,refreshStatic:t}=(()=>{let{stdout:e}=(0,a.useStdout)(),t=(0,l.useRef)(e),[r,n]=(0,l.useState)(0);return(0,l.useEffect)(()=>{t.current=e},[e]),{staticKey:r,refreshStatic:(0,l.useCallback)(()=>{s.r.current?.resetStaticOutput?.(),t.current.write(o().clearTerminal+i.$),n(e=>e+1)},[])}})(),r=(0,l.useRef)(!0),n=(0,l.useRef)(!0),{rows:c,columns:u}=useTerminalSize(),d=(0,l.useCallback)(e=>{n.current=e},[]);return(0,l.useEffect)(()=>{if(r.current){r.current=!1;return}if(!n.current)return;let e=setTimeout(()=>{t()},300);return()=>{clearTimeout(e)}},[u,c,t]),{staticKey:e,refreshStatic:t,terminalWidth:u,terminalHeight:c,enableAutoRefresh:d}}},11369(e,t,r){r.d(t,{D:()=>useTheme});var n=r(55882);let useTheme=()=>(0,n.d)()},73369(e,t,r){r.d(t,{C7:()=>formatElapsed,Gx:()=>isActiveAgentStatus,R3:()=>sliceVisibleAgents,RX:()=>n,mW:()=>summarizeAgents,nt:()=>pickTreeSource,sO:()=>displayAgentType,v:()=>padAgentType,yf:()=>shouldUseAgentTree});let n="\u2191/\u2193 to select \xb7 Enter to view \xb7 x to stop \xb7 Ctrl+X Ctrl+K to stop all",o=new Set(["running","streaming"]),a=new Set(["pending","waiting","initializing"]),l=new Set(["completed"]),i=new Set(["failed","cancelled","killed"]);function shouldUseAgentTree(e,t=1){return e>=t}function sliceVisibleAgents(e,t){let r=t?.limit??5;if(t?.expanded||e.length<=r)return{visible:e,hiddenCount:0,offset:0};let n=t?.focusedIndex??-1,o=0;return n>=r&&(o=Math.min(n-r+1,e.length-r)),{visible:e.slice(o,o+r),hiddenCount:e.length-r,offset:o}}function summarizeAgents(e){let t=0,r=0,n=0,s=0,c=0,u=0,d=1/0;for(let m of e)l.has(m.status)?t+=1:i.has(m.status)?s+=1:o.has(m.status)?r+=1:a.has(m.status)?n+=1:r+=1,c+=m.tokens??0,u+=m.toolUses??0,m.startTime>0&&m.startTime<d&&(d=m.startTime);let m=e.length,f="running";return m>0&&t===m?f="completed":m>0&&s===m?f="failed":r>0?f="running":n>0?f="initializing":s>0&&(f="failed"),{total:m,completed:t,running:r,waiting:n,failed:s,totalTokens:c,totalToolUses:u,startTime:Number.isFinite(d)?d:Date.now(),status:f}}function displayAgentType(e,t){let r=t?.trim()?t.trim():e;return r.replace(/-\d+$/,"")||r}function padAgentType(e,t=15){return e.length>=t?e:e+" ".repeat(t-e.length)}function pickTreeSource(e,t){let r=shouldUseAgentTree(e.length),n=shouldUseAgentTree(t.length);return r&&n?{kind:"both",teammates:e,syncTasks:t}:r?{kind:"teammates",items:e}:n?{kind:"sync",items:t}:{kind:"none"}}function isActiveAgentStatus(e){return"running"===e||"pending"===e}function formatElapsed(e){let t=Math.max(0,Math.floor(e/1e3));if(t<60)return`${t}s`;let r=Math.floor(t/60),n=t%60;if(r<60)return n>0?`${r}m ${String(n).padStart(2,"0")}s`:`${r}m`;let o=Math.floor(r/60),a=r%60;return a>0?`${o}h ${String(a).padStart(2,"0")}m`:`${o}h`}},89072(e,t,r){r.d(t,{K8:()=>b,vi:()=>useAgentTreeActive});var n=r(88523),o=r(43634),a=r(85577),l=r.n(a),i=r(6004),s=r.n(i),c=r(68593),u=r(64225),d=r(36988),m=r(46382),f=r(73369);let h=0,p=null,g=new Set;function startElapsedTicking(){p||"function"==typeof(p=setInterval(()=>{for(let e of(h++,g))e()},1e3)).unref&&p.unref()}function stopElapsedTicking(){p&&0===g.size&&(clearInterval(p),p=null)}function subscribeElapsedTick(e){return g.add(e),startElapsedTicking(),()=>{g.delete(e),stopElapsedTicking()}}function getElapsedTickSnapshot(){return h}let E=l().memo(({startedAt:e})=>((0,a.useSyncExternalStore)(subscribeElapsedTick,getElapsedTickSnapshot),l().createElement(l().Fragment,null,(0,f.C7)(Date.now()-e))));function toTreeAgentFromTeammate(e){return{id:e.name,title:(0,f.sO)(e.name,e.agentType),detail:e.description||e.name,status:e.status,startTime:e.startTime??0,lastContextWindow:e.lastContextWindow,totalTokens:e.totalTokens,taskId:e.taskId,name:e.name,color:e.color}}function toTreeAgentFromSync(e){return{id:e.id,title:(0,f.sO)(e.agentType||e.description||"Agent",e.agentType),detail:e.description||e.agentType||"Agent",status:e.status,startTime:e.startTime,lastContextWindow:e.lastContextWindow,totalTokens:e.totalTokens,taskId:e.id}}function toTreeAgentFromWorker(e){return{id:e.id,title:(0,f.sO)(e.agentType||e.description||"Agent",e.agentType),detail:e.description||e.agentType||e.id,status:e.status||"running",startTime:e.startTime??0,lastContextWindow:e.lastContextWindow,totalTokens:e.totalTokens,taskId:e.id}}let w=l().memo(({agent:e,selected:t,hideType:r,nameColumnWidth:n})=>{let{theme:o}=(0,d.DP)(),i="running"===e.status||"pending"===e.status,s="completed"===e.status,c="failed"===e.status,h="cancelled"===e.status||"killed"===e.status,p=i?void 0:o.colors.secondary,g=(0,a.useMemo)(()=>e.lastContextWindow&&e.lastContextWindow>0?`\u{2191}${(0,m.ap)(e.lastContextWindow)}`:e.totalTokens&&e.totalTokens>0?`\u{2193}${(0,m.ap)(e.totalTokens)}`:"",[e.lastContextWindow,e.totalTokens]),w=t&&o.colors.selection||void 0;return l().createElement(u.Box,{flexWrap:"nowrap",width:"100%",backgroundColor:w},l().createElement(u.Text,{color:t?o.colors.brand:o.colors.secondary,bold:t},t?">":" "," "),l().createElement(u.Text,{color:i?o.colors.info:s?o.colors.success:c?o.colors.error:o.colors.secondary},i?"\u25CF":s?"\u2713":c?"\u2717":h?"\u2014":"\u25CB"),l().createElement(u.Text,null," "),r?null:l().createElement(u.Text,{color:p,bold:t},(0,f.v)(e.title)),n>0?l().createElement(u.Box,{width:n,flexShrink:0},e.name?l().createElement(u.Text,{bold:!0,color:e.color||o.colors.info},"@",e.name):null):null,l().createElement(u.Box,{flexGrow:1,flexShrink:1},e.detail?l().createElement(u.Text,{color:p,bold:t,wrap:"truncate-end"},e.detail):null),l().createElement(u.Box,{width:7,flexShrink:0,justifyContent:"flex-end"},l().createElement(u.Text,{color:o.colors.secondary},e.startTime>0?l().createElement(E,{startedAt:e.startTime}):"")),l().createElement(u.Text,null," "),l().createElement(u.Box,{width:9,flexShrink:0,justifyContent:"flex-end"},l().createElement(u.Text,{color:o.colors.secondary},g)))}),y=l().memo(({agents:e})=>{let{theme:t}=(0,d.DP)(),{focusedMemberName:r,isMemberSelecting:i,selectedMemberName:h,footerLayer:p}=(0,a.useContext)(c.Jp),g="agents"===p&&i,[E,y]=(0,a.useState)(!1),b=g?h:r,x=(0,a.useMemo)(()=>b?e.findIndex(e=>e.id===b):-1,[e,b]),T=(0,a.useMemo)(()=>(0,f.R3)(e,{expanded:E,focusedIndex:x}),[e,E,x]),k=(0,a.useMemo)(()=>(0,f.mW)(e.map(e=>({status:e.status,tokens:e.totalTokens,startTime:e.startTime}))),[e]),S=(0,a.useMemo)(()=>{if(0===e.length)return"";let t=e[0].title;return e.every(e=>e.title===t)?t:""},[e]),v=(0,a.useMemo)(()=>{let t=0;for(let r of e)r.name&&(t=Math.max(t,s()(`@${r.name}`)+1));return t},[e]),C=(0,a.useCallback)(e=>{if(e)try{n.ContainerUtil.get(o.AgentTaskManager).getTask(e)?.kill()}catch{}},[]);if((0,u.useInput)((e,t)=>{d.Om.CTRL_G(e,t)&&(T.hiddenCount>0||E)&&y(e=>!e)},{isActive:T.hiddenCount>0||E}),(0,u.useInput)((t,r)=>{if("x"===t&&!r.ctrl){let t=h?e.find(e=>e.id===h):void 0;C(t?.taskId)}},{isActive:g}),0===e.length)return null;let _=g&&null===h;return l().createElement(u.Box,{flexDirection:"column",width:"100%"},l().createElement(u.Box,{flexWrap:"nowrap",backgroundColor:_&&t.colors.selection||void 0},l().createElement(u.Text,{color:_?t.colors.brand:t.colors.secondary,bold:_},_?">":" "),l().createElement(u.Text,{color:t.colors.success}," \u25CF "),l().createElement(u.Text,{bold:!0},"main")),l().createElement(u.Text,{color:t.colors.secondary}," ",k.total," ",S?`${S} `:"","agent",k.total>1?"s":""," running"," \xb7 ",(0,f.C7)(Date.now()-k.startTime),k.totalTokens>0?` \xb7 \u{2193}${(0,m.ap)(k.totalTokens)}`:""),T.visible.map(e=>l().createElement(w,{key:e.id,agent:e,selected:g&&h===e.id,hideType:!!S,nameColumnWidth:v})),T.hiddenCount>0?l().createElement(u.Text,{color:t.colors.secondary}," ","\u2193 ",T.hiddenCount," more \xb7 ctrl+g to expand"):null,E&&e.length>5?l().createElement(u.Text,{color:t.colors.secondary}," ","\u2191 ctrl+g to collapse"):null)});function useActiveTreeSource(){let e=(0,d.QC)(),t=(0,d.Z)(),r=(0,a.useMemo)(()=>e.filter(e=>(0,f.Gx)(e.status)),[e]),n=(0,a.useMemo)(()=>t.filter(e=>(0,f.Gx)(e.status)),[t]);return(0,f.nt)(r,n)}function agentsFromSource(e){return"teammates"===e.kind?e.items.map(toTreeAgentFromTeammate):"sync"===e.kind?e.items.map(toTreeAgentFromSync):"both"===e.kind?[...e.teammates.map(toTreeAgentFromTeammate),...e.syncTasks.map(toTreeAgentFromSync)]:[]}function useTreeAgents(){let e=useActiveTreeSource(),t=(0,d.tQ)(),r=(0,a.useMemo)(()=>t.filter(e=>(0,f.Gx)(e.status)),[t]);return(0,a.useMemo)(()=>[...agentsFromSource(e),...(0,f.yf)(r.length)?r.map(toTreeAgentFromWorker):[]],[e,r])}function useAgentTreeIds(){return useTreeAgents().map(e=>e.id)}function useAgentTreeActive(){return(0,f.yf)(useAgentTreeIds().length)}let b=l().memo(()=>{let e=useTreeAgents();return(0,f.yf)(e.length)?l().createElement(y,{agents:e}):null})},35861(e,t,r){r.d(t,{L:()=>p,y:()=>h});var n=r(88523),o=r(36023),a=r(62279),l=r(85577),i=r.n(l),s=r(68593),c=r(64225),u=r(62909),d=r(53052),m=r(36988),f=r(37906);let h=i().memo(()=>{let{theme:e}=(0,m.DP)(),{session:t}=(0,d.Lg)(),{isMenuActive:r}=(0,m.EH)(),{state:n}=(0,d.R7)(),{footerLayer:a}=(0,s.az)(),f="workflow"===a,h=(0,l.useMemo)(()=>safeGet(o.Dm),[]),p=(0,l.useMemo)(()=>safeGet(o.T_),[]),[E,w]=(0,l.useState)([]),y=n.states.includes(u.W_.HELP);if((0,l.useEffect)(()=>{if(!h)return;let reload=()=>{w(h.listActive().filter(e=>!e.sessionId||e.sessionId===t.id))};if(reload(),!p)return;let e=p.on;if("function"!=typeof e)return;let r=e.call(p,()=>reload());return()=>{try{r()}catch{}}},[h,p,t.id]),y||r||0===E.length)return null;let b=[...E].sort((e,t)=>e.startedAt-t.startedAt)[0],x=E.length-1,T=b.description??"(running)",k=b.agentInFlightCount??0,S=Math.max(0,b.agentCount-k),v=b.agentCount,C=1===E.length?"workflow":"workflows";return i().createElement(c.Box,{flexDirection:"column"},i().createElement(c.Box,null,f?i().createElement(c.Box,{paddingX:1,backgroundColor:e.colors.info},i().createElement(c.Text,{color:e.colors.background,bold:!0},"* Waiting for ",E.length," dynamic ",C)):i().createElement(c.Text,{color:e.colors.secondary},"* Waiting for ",i().createElement(c.Text,{color:e.colors.brand},E.length)," dynamic ",C," to finish"),f?i().createElement(c.Text,{color:e.colors.secondary}," \xb7 Enter to view workflow \xb7 x to stop \xb7 Ctrl+X Ctrl+K to stop all"):null),i().createElement(c.Box,{flexDirection:"row",gap:1},i().createElement(c.Text,{color:e.colors.brand},"\u25CB"),i().createElement(c.Text,{bold:!0},b.name),i().createElement(c.Text,{color:e.colors.secondary},truncate(T,60)),i().createElement(c.Text,{color:e.colors.secondary},v>0?`${S}/${v} agents done`:"0 agents"," \xb7 "),i().createElement(g,{startedAt:b.startedAt}),b.tokens?i().createElement(c.Text,{color:e.colors.secondary},` \xb7 \u{2193} ${formatTokens(b.tokens)}`):null,x>0&&i().createElement(c.Text,{color:e.colors.secondary},"\xb7 +",x," more")))});h.displayName="BackgroundActivityLine";let p=i().memo(()=>{let{theme:e}=(0,m.DP)(),{footerLayer:t}=(0,s.az)(),{shellCount:r}=(0,f.Y)(),n="shells"===t;if(0===r)return null;let o=1===r?"shell":"shells";return i().createElement(c.Box,{alignItems:"center"},n?i().createElement(c.Box,{paddingX:1,backgroundColor:e.colors.info},i().createElement(c.Text,{color:e.colors.background,bold:!0},r," ",o)):i().createElement(c.Text,{color:e.colors.brand},r," ",o),i().createElement(c.Text,{color:e.colors.secondary},n?" \xb7 Enter to view tasks \xb7 Ctrl+X Ctrl+K to kill all":"agents"===t||"workflow"===t?"":` \xb7 press ${a.Ay.arrowDown} to view tasks`))});p.displayName="BackgroundShellsHint";let g=i().memo(({startedAt:e})=>{let{theme:t}=(0,m.DP)(),[,r]=(0,l.useState)(0);(0,l.useEffect)(()=>{let e=setInterval(()=>r(e=>e+1),1e3);return()=>clearInterval(e)},[]);let n=formatDuration(Date.now()-e);return i().createElement(c.Text,{color:t.colors.secondary},n)});function formatTokens(e){return e<1e3?`${e} tok`:e<1e6?`${(e/1e3).toFixed(1)}k tok`:`${(e/1e6).toFixed(1)}M tok`}function formatDuration(e){if(e<1e3)return`${e}ms`;let t=Math.floor(e/1e3);if(t<60)return`${t}s`;let r=Math.floor(t/60);if(r<60)return`${r}m${t%60}s`;let n=Math.floor(r/60);return`${n}h${r%60}m`}function truncate(e,t){return e.length<=t?e:e.slice(0,t-1)+"\u2026"}function safeGet(e){try{return n.ContainerUtil.get(e)}catch{return}}g.displayName="ElapsedTimer"},17430(e,t,r){r(88523),r(73381),r(32894),r(50814),r(96213),r(92735),r(51147),r(14372),r(90396),r(37905),r(67662),r(88415),r(55425),r(20991),r(68593),r(64225),r(57219),r(62909),r(53052),r(15298),r(94309),r(36988),r(64152),r(19849),r(5100),r(28806),r(36529),r(70724),r(79803),r(60114)},29134(e,t,r){r.d(t,{T:()=>InputHintBox});var n=r(88523),o=r(49726),a=r(36210),l=r(36916),i=r(39295),s=r(33286),c=r(85577),u=r.n(c),d=r(68593),m=r(20804),f=r(64225),h=r(62909),p=r(53052),g=r(94309),E=r(36988),w=r(56312),y=r(93001),b=r(66235);function useKeybinding(e,t,r){let{context:o="Global",isActive:a=!0}=r??{},l=(0,y.useRef)(t);l.current=t;let[i,s]=(0,y.useState)(null),c=(0,y.useRef)(null);(0,w.useInput)((t,r)=>{let u;if(!a)return;try{u=n.ContainerUtil.get(b.kJ)}catch{return}let d=u.resolveKeyWithChordState(t??"",r,[o,"Global"],i);switch(d.type){case"match":d.action===e&&l.current(),s(null),c.current&&(clearTimeout(c.current),c.current=null);break;case"chord_started":s(d.pending),c.current&&clearTimeout(c.current),c.current=setTimeout(()=>{s(null),c.current=null},1e3);break;case"chord_cancelled":case"unbound":case"none":i&&(s(null),c.current&&(clearTimeout(c.current),c.current=null))}},{isActive:a}),(0,y.useEffect)(()=>()=>{c.current&&clearTimeout(c.current)},[])}function getKeybindingDisplay(e,t="Global"){try{return n.ContainerUtil.get(b.kJ).getDisplayText(e,t)}catch{return}}var x=r(42163),T=r(55425),k=r(28806),S=r(73369),v=r(89072),C=r(14372),_=r(30296);let A={alive:!1},M={needsInput:0,done:0,succeeded:0,hasLiveJobs:!1};function useAgentNudge(e=C.l8N){let[t,r]=(0,_.useState)(M),[n,o]=(0,_.useState)(!1),a=(0,_.useRef)(0),l=(0,_.useRef)(!1),i=(0,_.useRef)(null),s=(0,_.useRef)(null),c=(0,_.useRef)(null),u=(0,_.useCallback)(async()=>{let e=++a.current;try{let[t,n]=await Promise.all([(0,T.rb)().list(),(0,T.a)().list()]);if(l.current||e!==a.current)return M;let c=new Map,u=new Map;for(let e of n){let t={alive:!0,status:e.status,waitingFor:e.waitingFor};c.set(e.pid,t),e.sessionId&&u.set(e.sessionId,t)}let d=t.map(e=>({id:e.id,state:e.state,display:e.display,live:(void 0!==e.state.pid?c.get(e.state.pid):void 0)??u.get(e.state.sessionId)??A})),m=(0,C.KsS)(d);r(m);let f=i.current;if(i.current=m.done,null!==f&&m.done>f){s.current&&clearTimeout(s.current),o(!0);let e=setTimeout(()=>{l.current||o(!1)},C.skO);"function"==typeof e.unref&&e.unref(),s.current=e}return m}catch{return M}},[]),d=(0,_.useCallback)(t=>{if(l.current||!(0,C.qFj)(t))return;let r=setTimeout(()=>{u().then(d).catch(()=>{})},e);"function"==typeof r.unref&&r.unref(),c.current=r},[e,u]),m=(0,_.useCallback)(()=>{c.current&&(clearTimeout(c.current),c.current=null),u().then(d).catch(()=>{})},[u,d]);return(0,_.useEffect)(()=>(l.current=!1,u().then(d).catch(()=>{}),()=>{l.current=!0,c.current&&clearTimeout(c.current),s.current&&clearTimeout(s.current)}),[u,d]),{counts:t,flashDone:n,refresh:m}}var I=r(15298);function useScreenReaderMode(){let[e,t]=(0,c.useState)(!1);return(0,c.useEffect)(()=>{let e=!1;return(async()=>{try{let r=await (0,T.fq)().get("screenReaderMode");e||t(!0===r)}catch{}})(),()=>{e=!0}},[]),e}let AgentsNudgeBox=()=>{let{theme:e}=(0,E.DP)(),{leftArrowOpensAgents:t}=(0,I.M)(),r=useScreenReaderMode(),n=!!process.env[C.bCv],{counts:o,flashDone:a}=useAgentNudge();if(n||!t)return null;let l=(0,C.IZ9)({counts:o,flashDone:a,screenReader:r}),i=!r&&(o.needsInput>0||a&&o.done>0);return u().createElement(f.Box,null,u().createElement(f.Text,{color:i?e.colors.brand:e.colors.secondary},l))};AgentsNudgeBox.displayName="AgentsNudgeBox";var O=r(35861),P=r(36529);let ReverseSearchDisplay=({reverseSearchState:e,searchInput:t})=>{let{theme:r}=(0,E.DP)(),{matches:n,matchIndex:o,searchQuery:a}=e,l=t??a,i=n.length>0&&o>=0;return u().createElement(f.Box,{flexDirection:"row",gap:1,marginTop:0},i?u().createElement(u().Fragment,null,u().createElement(f.Text,{dimColor:!0},"search prompts:"),l&&u().createElement(f.Text,{color:r.colors.primary},l),n.length>1&&u().createElement(u().Fragment,null,u().createElement(f.Text,{dimColor:!0},"(",o+1,"/",n.length,")"),u().createElement(f.Text,{dimColor:!0},"- Press Ctrl+R for next"))):l?u().createElement(u().Fragment,null,u().createElement(f.Text,{dimColor:!0},"no matching prompt"),u().createElement(f.Text,{dimColor:!0},l)):u().createElement(f.Text,{dimColor:!0},"search prompts: (type to search)"))},InputHintBox=()=>{let{vimState:e}=(0,g.Nj)(),{state:t,actions:r}=(0,p.R7)(),{reverseSearchState:l}=(0,p.vg)(),m=t.value,w=r.setValue,{isMenuActive:y}=(0,E.EH)(),{session:b}=(0,p.Lg)(),C=(0,E.qt)(),[_,A]=(0,c.useState)(i.ZC.Default),[M,I]=(0,c.useState)(!1),R=(0,x.Q)(),D=(0,E.tQ)(),L=(0,E.Z)(),$=(0,P.WH)(D.filter(e=>(0,S.Gx)(e.status)).length,[...L,...R].filter(e=>(0,S.Gx)(e.status)).length),B=(0,v.vi)(),{footerLayer:N}=(0,d.az)();(0,c.useEffect)(()=>{let e=b.permissionModeSubject.subscribe(e=>{A(e)});return()=>e.unsubscribe()},[b.id]),(0,c.useEffect)(()=>{let e=!1;try{n.ContainerUtil.get(s.tq).isAutoModeAvailable().then(t=>{e||I(t.available)}).catch(()=>{e||I(!1)})}catch{I(!1)}return()=>{e=!0}},[b.id]),(0,f.useInput)((e,n)=>{if(E.Om.ESCAPE(n)&&(m&&!y&&(t.states.includes(h.W_.KEY_PRESS)?(w(""),r.removeState(h.W_.KEY_PRESS)):(r.pushState(h.W_.KEY_PRESS),setTimeout(()=>{r.removeState(h.W_.KEY_PRESS)},1e3))),0!==t.states.length&&!t.states.includes(h.W_.KEY_PRESS)&&t.states.length>0)){let e=t.states[t.states.length-1];r.removeState(e)}}),useKeybinding("chat:cycleMode",()=>{let e=[i.ZC.Default,i.ZC.BypassPermissions,i.ZC.AcceptEdits,...M?[i.ZC.Auto]:[],...(0,o.Rqu)(b)?[]:[i.ZC.Plan],...(0,a.Rn)(b)?[]:[i.ZC.Delegate]],t=(e.indexOf(_===i.ZC.FullAccess?i.ZC.BypassPermissions:_)+1)%e.length,r=e[t];b.permissionModeSubject.next(r),r===i.ZC.Plan&&(0,T.qN)().updatePlanModeUse().catch(e=>{(0,T.Rm)().error("Failed to update plan mode usage:",e)})},{context:"Chat"});let W=[];return(!y&&(l.isActive?W.push(u().createElement(ReverseSearchDisplay,{key:"reverse-search",reverseSearchState:l})):e.isEnabled&&e.mode===g.g3.INSERT&&W.push(u().createElement(VimModeIndicatorBox,{key:"vim-mode",mode:e.mode}))),t.states.includes(h.W_.COPY_SUCCESS)?W.push(u().createElement(CopySuccessHintBox,{key:"copy-success"})):t.states.includes(h.W_.COPY_FAILED)?W.push(u().createElement(CopyFailedHintBox,{key:"copy-failed"})):t.states.includes(h.W_.COPY_NO_MESSAGE)?W.push(u().createElement(CopyNoMessageHintBox,{key:"copy-no-message"})):t.states.includes(h.W_.WINDOWS_PASTE_HINT)?W.push(u().createElement(WindowsPasteHintBox,{key:"windows-paste-hint"})):t.states.includes(h.W_.CLIPBOARD_COMPATIBILITY_ERROR)?W.push(u().createElement(ClipboardCompatibilityErrorBox,{key:"clipboard-error"})):t.states.includes(h.W_.IMAGE_NOT_SUPPORTED)?W.push(u().createElement(ImageNotSupportedBox,{key:"image-not-supported"})):t.states.includes(h.W_.NO_IMAGE_HINT)?W.push(u().createElement(NoImageHintBox,{key:"no-image"})):t.states.includes(h.W_.KEY_PRESS)&&m.length?W.push(u().createElement(EscKeyPressHintBox,{key:"esc-press"})):t.states.includes(h.W_.HELP)&&!m?W.push(u().createElement(ShortcutsHintBox,{key:"shortcuts"})):k.X$.onlyIncludeBash(t.states)?W.push(u().createElement(BashModeHintBox,{key:"bash-mode"})):k.X$.onlyIncludeMemory(t.states)?W.push(u().createElement(MemoryModeHintBox,{key:"memory-mode"})):k.X$.onlyIncludeDefault(t.states)&&("agents"===N?W.push(u().createElement(AgentSelectHintBox,{key:"agent-select"})):(C?W.push(u().createElement(MultitaskModeHint,{key:"multitask-mode",permissionMode:_,liveCount:$})):_!==i.ZC.Default?W.push(u().createElement(PermissionModeDisplay,{key:"permission-mode",permissionMode:_})):m&&!k.X$.isFileOrComandOrHelpMenuActive(m,t.states)?W.push(u().createElement(PlaceholdHintBox,{key:"placeholder"})):m||_!==i.ZC.Default||0!==R.length||W.push(u().createElement(HelpHintBox,{key:"help"})),W.push(u().createElement(O.L,{key:"background-shells"})),B||W.push(u().createElement(AgentsNudgeBox,{key:"agents-nudge"})))),0===W.length)?u().createElement(u().Fragment,null):u().createElement(f.Box,{flexDirection:"row",gap:2},W)},AgentSelectHintBox=()=>{let{theme:e}=(0,E.DP)();return u().createElement(f.Box,null,u().createElement(f.Text,{color:e.colors.secondary},S.RX))},PlaceholdHintBox=()=>u().createElement(f.Box,null),HelpHintBox=()=>{let{theme:e}=(0,E.DP)(),{session:t}=(0,p.Lg)(),r=(0,E.ok)(t),n=!!(0,p.i9)().headerData?.currentMainAgent&&!r&&!(0,m.BT)(t);return u().createElement(f.Box,null,u().createElement(f.Text,{color:e.colors.secondary},(0,m.hW)(n)))},MultitaskModeHint=({permissionMode:e,liveCount:t})=>{let{theme:r}=(0,E.DP)(),{session:n}=(0,p.Lg)(),o=getKeybindingDisplay("chat:cycleMode","Chat")??"shift+tab",a=n.meta?.prePlanPermissionMode,s=r.colors.secondary;switch(e){case i.ZC.BypassPermissions:case i.ZC.FullAccess:s=(0,l.PY)(e)?r.colors.error:r.colors.warning;break;case i.ZC.AcceptEdits:s=r.colors.info;break;case i.ZC.Plan:s=r.colors.planMode;break;case i.ZC.Delegate:s=r.colors.delegateMode;break;case i.ZC.DontAsk:case i.ZC.Auto:s=r.colors.warning}return u().createElement(f.Box,null,u().createElement(f.Text,{color:s},(0,P.Sk)(e,a,o,t)))},PermissionModeDisplay=({permissionMode:e})=>{let{theme:t}=(0,E.DP)(),{session:r}=(0,p.Lg)(),n="",o=t.colors.secondary,a=getKeybindingDisplay("chat:cycleMode","Chat")??"shift+tab",s=r.meta?.prePlanPermissionMode;switch(e){case i.ZC.BypassPermissions:case i.ZC.FullAccess:n=`\u{23F5}\u{23F5} bypass permissions on (${a} to cycle)`,o=(0,l.PY)(e)?t.colors.error:t.colors.warning;break;case i.ZC.AcceptEdits:n=`\u{23F5}\u{23F5} accept edits on (${a} to cycle)`,o=t.colors.info;break;case i.ZC.Plan:if(s&&s!==i.ZC.Default){let e=s===i.ZC.BypassPermissions||s===i.ZC.FullAccess?"bypass":s===i.ZC.AcceptEdits?"accept edits":s===i.ZC.Auto?"auto mode":"";if(e){n=`\u{23F8} plan + ${e} (${a} to cycle)`,o=t.colors.planMode;break}}n=`\u{23F8} plan mode on (${a} to cycle)`,o=t.colors.planMode;break;case i.ZC.Delegate:n=`\u{21E2} delegate mode on (${a} to cycle)`,o=t.colors.delegateMode;break;case i.ZC.DontAsk:n="\u23F5\u23F5 don't ask on",o=t.colors.warning;break;case i.ZC.Auto:n=`\u{23F5}\u{23F5} auto mode on (${a} to cycle)`,o=t.colors.warning;break;case i.ZC.Default:default:return}return u().createElement(f.Box,null,u().createElement(f.Text,{color:o},n))},R="! for bash mode",D="# to memorize",ShortcutsHintBox=()=>{let{theme:e}=(0,E.DP)(),t=e.colors.secondary,r=getKeybindingDisplay("chat:cycleMode","Chat")??"shift+tab",n=[{title:R,usage:"double tap esc to clear input",other:"ctrl + _ to undo"},{title:"/ for commands",usage:`${r} to auto-accept edits`,other:"ctrl + z to suspend"},{title:"/mode to switch",usage:"before the first message",other:"/clear then /mode"},{title:"@ for file paths",usage:"ctrl + r for verbose output",other:"tab to autocomplete"},{title:D,usage:"shift + \u23CE for newline",other:"ctrl + a/e line nav"},{title:"Enhanced editing",usage:"ctrl + k/u kill line",other:"ctrl + y copy response"}],o=Math.max(...n.map(({title:e})=>e.length))+4,a=Math.max(...n.map(({usage:e})=>e.length))+4;return u().createElement(f.Box,{flexDirection:"column"},n.map(({title:e,usage:r,other:n},l)=>u().createElement(f.Box,{key:`${l}-${e}-${r}`},u().createElement(f.Box,{width:o},u().createElement(f.Text,{color:t},e)),u().createElement(f.Box,{width:a},u().createElement(f.Text,{color:t},r)),u().createElement(f.Box,null,u().createElement(f.Text,{color:t},n)))))},BashModeHintBox=()=>{let{state:e}=(0,p.R7)(),{theme:t}=(0,E.DP)(),{color:r}=k.X$.getConfig(e.states,t);return u().createElement(f.Box,null,u().createElement(f.Text,{color:r},R))},MemoryModeHintBox=()=>{let{state:e}=(0,p.R7)(),{theme:t}=(0,E.DP)(),{color:r}=k.X$.getConfig(e.states,t);return u().createElement(f.Box,null,u().createElement(f.Text,{color:r},D))},EscKeyPressHintBox=()=>{let{theme:e}=(0,E.DP)();return u().createElement(f.Box,null,u().createElement(f.Text,{color:e.colors.secondary},"Press Esc again to clear"))},NoImageHintBox=()=>{let{theme:e}=(0,E.DP)(),t="darwin"===process.platform?"Cmd + V or Ctrl + V":"Ctrl + V";return u().createElement(f.Box,null,u().createElement(f.Text,{color:e.colors.warning},"No image in clipboard. Please copy an image first and then ",t," to paste."))},ClipboardCompatibilityErrorBox=()=>{let{theme:e}=(0,E.DP)();return u().createElement(f.Box,null,u().createElement(f.Text,{color:e.colors.error},"Image pasting not supported. Install required tools:"),u().createElement(f.Text,{color:e.colors.error},"macOS: `brew install pngpaste`"),u().createElement(f.Text,{color:e.colors.error},"Linux: `sudo apt install xclip`"))},ImageNotSupportedBox=()=>{let{theme:e}=(0,E.DP)();return u().createElement(f.Box,null,u().createElement(f.Text,{color:e.colors.warning},"Current model does not support images. Please switch to a model that supports images."))},VimModeIndicatorBox=({mode:e})=>u().createElement(f.Box,{flexDirection:"row",justifyContent:"flex-start",marginTop:0},u().createElement(f.Text,{dimColor:!0},"-- ",e," --")),CopySuccessHintBox=()=>{let{theme:e}=(0,E.DP)();return u().createElement(f.Box,null,u().createElement(f.Text,{color:e.colors.success},"Copied to clipboard"))},CopyFailedHintBox=()=>{let{theme:e}=(0,E.DP)();return u().createElement(f.Box,null,u().createElement(f.Text,{color:e.colors.error},"Failed to copy to clipboard"))},CopyNoMessageHintBox=()=>{let{theme:e}=(0,E.DP)();return u().createElement(f.Box,null,u().createElement(f.Text,{color:e.colors.warning},"No message to copy"))},WindowsPasteHintBox=()=>{let{theme:e}=(0,E.DP)();return u().createElement(f.Box,null,u().createElement(f.Text,{color:e.colors.warning},"Windows Ctrl+V may block input for large paste. Use Alt+V for fast paste."))}},69449(e,t,r){r.d(t,{Z:()=>InputMenuBox});var n=r(85577),o=r.n(n),a=r(2769),l=r(82284),i=r(52379),s=r(64225),c=r(53052),u=r(36988),d=r(28806);let InputSuggestionsMenu=()=>{let{theme:e}=(0,u.DP)(),t=(0,n.useRef)(void 0),{state:r,actions:a}=(0,c.R7)(),l=a.setValue,m=a.moveCursor,{addToHistory:f}=(0,c.vg)(),{suggestions:h,requestSuggestions:p,setSuggestions:g,markSentFromSuggestion:E}=(0,c.p3)(),w=d.X$.isCommandOrFileMenuContextActive(r.value,r.states,r.cursorOffset),y=(0,i.useContextSelector)(c.rZ,e=>e.sendMessage),b=(0,n.useMemo)(()=>h.map(e=>({key:e.label,label:e.label,value:e})),[h]),x=(0,n.useMemo)(()=>[],[]),T=(0,n.useCallback)(async(e,n,o)=>{let a=e.startsWith("/"),i=o||e,s=r.value,c=r.cursorOffset,u=r?.cursorWidth??0,d=c,h=c;if(u>0)d=c,h=c+u;else{if(a){let e=-1;for(let t=c-1;t>=0;t--){let r=s[t];if("/"===r){e=t;break}if(/\s/.test(r))break}if(-1!==e)d=e;else for(;d>0&&!/\s/.test(s[d-1]);)d--}else for(;d>0&&!/\s/.test(s[d-1]);)d--;h=c}let p=s.slice(0,d),w=s.slice(h),b=0===w.length||!/^\s/.test(w),x=p+i+(b?" ":"")+w,T=(p+i+(b?" ":"")).length;l(x),m(T,0),(a=x.startsWith("/"))&&n&&(t.current=void 0,g([])),a&&!n&&(E(),f(x),y(x),l(""))},[r.value,r.cursorWidth,r.cursorOffset,f,y,l,E,m]),k=(0,n.useCallback)(e=>{e&&e.value&&T(e.value.label,!1,e.value.value)},[T]),S=(0,n.useCallback)(e=>{if(!e){t.current=void 0;return}t.current=e.value},[]);(0,n.useEffect)(()=>{if(!w)return void g([]);let e=setTimeout(()=>{p(r.value,r.cursorOffset)},100);return()=>{clearTimeout(e)}},[r.value,r.cursorOffset,p,g,w]),(0,s.useInput)((e,r)=>{if(r.tab&&t.current){let e=t.current;T(e.label,!0,e.value)}},{isActive:w&&h.length>0});let v=(0,n.useCallback)(({value:t,isSelected:r,maxLabelLength:n})=>{let a=t.color??(r?e.colors.info:e.colors.secondary),l=r?e.colors.info:e.colors.secondary;return o().createElement(s.Box,{flexDirection:"row",gap:1,paddingX:2},o().createElement(s.Box,{width:n+4,flexShrink:0},o().createElement(s.Text,{color:a,bold:r,wrap:"truncate-middle"},t.label)),t.description&&t.description.trim()&&o().createElement(s.Box,{flexGrow:1,flexShrink:1},o().createElement(s.Text,{color:l,bold:r,dimColor:!r,wrap:"truncate"},t.description)))},[e]);return o().createElement(s.SelectInput,{items:w?b:x,limit:10*!!w,showIndicator:!1,itemComponent:v,onSelect:k,onHighlight:S,isFocused:w&&h.length>0,disabledInputMode:["number"]})},InputMenuBox=()=>{let{isMemoryMenu:e}=(0,a.E)();return e?o().createElement(l.n,null):o().createElement(InputSuggestionsMenu,null)}},82284(e,t,r){r.d(t,{n:()=>MemorySavingMenu});var n=r(79896),o=r(91943),a=r(19960),l=r(16928),i=r(85577),s=r.n(i),c=r(52379),u=r(73381),d=r(79620),m=r(39457),f=r(72251),h=r(70370),p=r(88415),g=r(64225),E=r(53052),w=r(36988),y=r(55425),b=r(28806);let MemorySavingMenu=({commandMode:e})=>{let{theme:t}=(0,w.DP)(),r=(0,c.useContextSelector)(E.aO,e=>e.back),x=(0,c.useContextSelector)(E.Gb,e=>e.refreshStatic),{session:T}=(0,E.Lg)(),{state:k,actions:S}=(0,E.R7)(),v=k.value,C=S.setValue,{clearMenuState:_}=(0,w.EH)(),A=t.colors.brand;e||(A=b.X$.getConfig(k.states,t).color);let M=(0,i.useMemo)(()=>p.P.getProjectMemoryDir(),[]),I=(0,i.useMemo)(()=>`${M}/MEMORY.md`,[M]),[O,P]=(0,i.useState)(!0);(0,i.useEffect)(()=>{e&&(0,y.fq)().get("memory").then(e=>{e?.autoMemoryEnabled!==void 0?P(e.autoMemoryEnabled):P(!0)}).catch(()=>{P(!0)})},[e]);let R=(0,i.useMemo)(()=>{if(!e)return[];let t=[];try{if((0,n.existsSync)(M)){let e=(0,n.readdirSync)(M).filter(e=>e.endsWith(".md"));t.push(...e)}}catch{}let r=[],o=t.length;r.push({value:"open-auto-memory-dir",label:"1. Auto Memory directory",description:o>0?`${o} file(s) in ${M}/`:`(empty) ${M}/`,action:"open-dir",filePath:M}),r.push({value:"edit-memory-index",label:"2. Edit MEMORY.md",description:`Index file \u{2014} ${I}`,action:"open-file",filePath:I});let a=p.P.getMemoryFilePath(d.we.PROJECT);r.push({value:"edit-codebuddy-project",label:"3. Project CODEBUDDY.md",description:`./${(0,l.basename)(p.P.getRelativePath(a))}`,action:"open-file",filePath:a});let i=p.P.getMemoryFilePath(d.we.USER);return r.push({value:"edit-codebuddy-user",label:"4. User CODEBUDDY.md",description:i,action:"open-file",filePath:i}),r.push({value:"toggle-auto-memory",label:`5. Auto Memory: ${O?"ON":"OFF"}`,description:O?"Enabled \u2014 AI will automatically save and read memories":"Disabled \u2014 AI will not use the memory system",action:"toggle",filePath:""}),r},[e,M,I,O]),D=(0,i.useMemo)(()=>{if(e)return[];let t=p.P.getMemoryFilePath(d.we.PROJECT),r=p.P.getMemoryFilePath(d.we.USER),n=p.P.getRelativePath(t);return[{value:d.we.PROJECT,label:"1. Project memory",filePath:`./${(0,l.basename)(n)}`},{value:d.we.USER,label:"2. User memory",filePath:r}]},[e]),L=(0,i.useCallback)(e=>{(0,y.J0)().executeLocalCommand({name:u.B5.Memory,session:T,args:[{fact:v,scope:e}]}),_(),C("")},[v,T.id,_,C]),$=(0,i.useCallback)(async e=>{if("toggle"===e.action){let e=!O;try{let t=await (0,y.fq)().get("memory")??{};await (0,y.fq)().set("memory",{...t,autoMemoryEnabled:e}),P(e),(0,y.J0)().finalizeCommandExecution(T,`Auto Memory ${e?"enabled":"disabled"}.`)}catch(t){let e=t instanceof Error?t.message:String(t);(0,y.J0)().finalizeCommandExecution(T,`Failed to toggle Auto Memory: ${e}`)}r({onAfterRender:()=>{x()}});return}if("open-dir"===e.action){let t=e.filePath;try{await (0,o.mkdir)(t,{recursive:!0})}catch{}let r=!1;try{r=await h.i.openFile(t)}catch{r=!1}r?(0,y.J0)().finalizeCommandExecution(T,`Opened Auto Memory directory at ${m.n.createFileHyperlink(t)}`):(0,y.J0)().finalizeCommandExecution(T,`Auto Memory directory: ${t}
|
|
18
18
|
|
|
19
19
|
> Use your file manager to open this directory.`)}else{let t=p.P.resolveFilePathToWorkDir(e.filePath,p.P.getWorkDir());if(!await h.i.fileExists(t))try{await (0,o.mkdir)((0,l.dirname)(t),{recursive:!0}),await (0,o.writeFile)(t,"")}catch(t){let e=t instanceof Error?t.message:String(t);(0,y.J0)().finalizeCommandExecution(T,`Failed to create memory file: ${e}`),r({onAfterRender:()=>{x()}});return}try{f.s.openWithExternalEditor(t);let e="",r=process.env.VISUAL?.trim(),n=process.env.EDITOR?.trim();r?e=`Using $VISUAL="${r}".`:n&&(e=`Using $EDITOR="${n}".`);let o=e?`> ${e} To change editor, set $EDITOR or $VISUAL environment variable.`:"> To use a different editor, set the $EDITOR or $VISUAL environment variable.";(0,y.J0)().finalizeCommandExecution(T,`Opened memory file at ${m.n.createFileHyperlink(t)}
|
|
20
20
|
|
|
21
21
|
${o}`)}catch(r){let e=!1;try{e=await h.i.openFile(t)}catch{e=!1}if(e)(0,y.J0)().finalizeCommandExecution(T,`Opened memory file at ${m.n.createFileHyperlink(t)}
|
|
22
22
|
|
|
23
|
-
> Using system default application.`);else{let e=r instanceof Error?r.message:String(r);(0,y.J0)().finalizeCommandExecution(T,`Failed to open memory file: ${e}`)}}}r({onAfterRender:()=>{x()}})},[T.id,r,x,O]),B=(0,i.useCallback)(t=>{e?$(t):L(t.value)},[e,L,$]);return((0,a.useInput)((t,r)=>{w.Om.ESCAPE(r)&&e&&(0,y.J0)().finalizeCommandExecution(T)}),e)?s().createElement(a.Box,{marginBottom:3,padding:1,flexDirection:"column",borderStyle:"round",borderColor:A},s().createElement(a.Box,{marginBottom:1},s().createElement(a.Text,{color:A},"Memory Management")),s().createElement(g.SelectInput,{itemComponent:CommandItemComponent,items:R,onSelect:B}),s().createElement(a.Box,{marginTop:1},s().createElement(a.Text,{color:t.colors.secondary},"Select a file or directory to manage your memories."))):s().createElement(a.Box,{marginBottom:3,padding:1,flexDirection:"column",borderStyle:"round",borderColor:A},s().createElement(a.Box,{marginBottom:1},s().createElement(a.Text,{color:A},"Where should this memory be saved?")),s().createElement(g.SelectInput,{itemComponent:ItemComponent,items:D,onSelect:B}),s().createElement(a.Box,{marginTop:1},s().createElement(a.Text,{color:t.colors.secondary},'Example project memory: "Run lint with the following command after major edits: npm run lint"')))},ItemComponent=e=>{let{label:t,filePath:r,isSelected:n,maxLabelLength:o}=e,{theme:l}=(0,w.DP)();return s().createElement(a.Box,{gap:4},s().createElement(a.Box,{width:o,flexShrink:0},s().createElement(a.Text,{color:n?l.colors.brand:void 0},t)),s().createElement(a.Box,null,s().createElement(a.Text,{dimColor:!0,color:n?l.colors.brand:void 0},"Saved in ",r)))},CommandItemComponent=e=>{let{label:t,description:r,isSelected:n,maxLabelLength:o}=e,{theme:l}=(0,w.DP)();return s().createElement(a.Box,{gap:4},s().createElement(a.Box,{width:o,flexShrink:0},s().createElement(a.Text,{color:n?l.colors.brand:void 0},t)),s().createElement(a.Box,null,s().createElement(a.Text,{dimColor:!0,color:n?l.colors.brand:void 0},r)))}},36529(e,t,r){r.d(t,{Sk:()=>formatMultitaskHintText,WH:()=>resolveMultitaskLiveCount});var n=r(39295);function permissionComposeSuffix(e,t){switch(e){case n.ZC.BypassPermissions:case n.ZC.FullAccess:return"bypass";case n.ZC.AcceptEdits:return"accept edits";case n.ZC.Auto:return"auto mode";case n.ZC.Delegate:return"delegate";case n.ZC.DontAsk:return"don't ask";case n.ZC.Plan:{let e=permissionComposeSuffix(t);return e?`plan + ${e}`:"plan"}default:return""}}function permissionHintPrefix(e){switch(e){case n.ZC.Plan:return"\u23F8 ";case n.ZC.Delegate:return"\u21E2 ";case n.ZC.Default:case void 0:return"";default:return"\u23F5\u23F5 "}}function resolveMultitaskLiveCount(e,t=0){return e>0?e:Math.max(0,t)}function formatMultitaskHintText(e,t,r,o=0){let a=o>0?` \xb7 ${o} live`:"";if(e===n.ZC.Default)return`multitask on${a} (/multitask to exit)`;let l=permissionComposeSuffix(e,t);return`${permissionHintPrefix(e)}multitask + ${l}${a} (${r} to cycle)`}},65852(e,t,r){var n,o,a,l,i,s,c,u,d,m,f,h,p,g,E,w,y,b,x,T,k,S,v,C,_,A,M,I,O=r(81998);r(20804);var P=r(93509),R=r(64225),D=r(53052),L=r(36988),$=r(55425);r(71070),r(25177),r(14274),r(59658);var B=r(89634),N=r(88523),W=r(67662);r(91278),r(62909),r(67465),r(52412);var F=r(39295);r(11369),r(91192),r(5100);var j=r(65366),U=r.n(j),H=r(89072),G=r(35861);r(17430);var V=r(29134),K=r(69449),J=r(16928),q=r.n(J),Y=r(85577),X=r.n(Y),z=r(33732),Z=r(96213),Q=r(39931);let GoalActiveIndicator=()=>{let{theme:e}=(0,L.DP)(),{session:t}=(0,D.Lg)(),r=(0,z.FE)(t.meta?.activeGoal);if(!r)return null;let n=!0===r.paused,o=formatElapsed(Math.max(0,("number"==typeof r.pausedAt?r.pausedAt:Date.now())-r.createdAt));return X().createElement(R.Box,null,X().createElement(R.Text,{color:e.colors.secondary},n?`\u{229A} /goal paused (${o})`:`\u{229A} /goal active (${o})`))};function formatElapsed(e){let t=Math.max(1,Math.floor(e/1e3));if(t<60)return`${t}s`;let r=Math.floor(t/60),n=t%60;if(r<60)return 0===n?`${r}m`:`${r}m ${n}s`;let o=Math.floor(r/60),a=r%60;return 0===a?`${o}h`:`${o}h ${a}m`}(n=E||(E={})).MCP_CONNECTED="mcp_connected",n.IDE_CONNECTED="ide_connected",n.PLUGIN_CONNECTED="plugin_connected",n.DEBUG_MODE="debug_mode",n.THINKING_MODE="thinking_mode",n.CONTEXT_REMIND="context_remind",n.IDE_SELECTION_REMIND="ide_selection_remind";let InputStatusBox=()=>{let{isMenuActive:e}=(0,L.EH)(),{state:t}=(0,D.R7)(),r=(0,D.i9)().headerData,n=r?.currentMainAgent,o=r?.currentMainAgentName,a=r?.currentMainAgentCustom,[l,i]=(0,Y.useState)([]),s=(0,$.lH)(),{session:c}=(0,D.Lg)(),{alwaysThinkingEnabled:u,shouldShowThinkingStatus:d}=(0,L.Ng)(t.states),[m,f]=(0,Y.useState)({errorCount:0,totalCount:0}),[h,p]=(0,Y.useState)(void 0),[g,w]=(0,Y.useState)(!0),[y,b]=(0,Y.useState)(null),[,x]=(0,Y.useState)(0),T=!!(0,z.FE)(c.meta?.activeGoal);(0,Y.useEffect)(()=>{if(!T)return;let e=setInterval(()=>x(e=>(e+1)%1e6),1e3);return()=>clearInterval(e)},[T]);let k=(0,Y.useCallback)((e,t,r)=>{i(r=>{let n=r.includes(e);return"show"!==t||n?"hide"===t&&n?r.filter(t=>t!==e):r:[...r,e]}),"show"===t&&r&&setTimeout(()=>{i(t=>t.filter(t=>t!==e))},r)},[]);(0,Y.useEffect)(()=>{d?k(E.THINKING_MODE,"show",5e3):k(E.THINKING_MODE,"hide")},[d,u,k]),(0,Y.useEffect)(()=>{k(E.DEBUG_MODE,s.isDebugEnabled()?"show":"hide")},[s,k]),(0,Y.useEffect)(()=>{let updateTokenUsageThresholds=async()=>{try{let e=await (0,$._E)().calculateTokenTokenUsageThresholds(c);p(e),e&&"info"!==e.usageLevel?k(E.CONTEXT_REMIND,"show"):k(E.CONTEXT_REMIND,"hide")}catch(e){(0,$.Rm)().debug("Failed to calculate token usage thresholds:",e),p(void 0),k(E.CONTEXT_REMIND,"hide")}};updateTokenUsageThresholds();let e=c.inputSubject.subscribe(e=>{e&&updateTokenUsageThresholds()});return()=>e.unsubscribe()},[c.id,k]),(0,Y.useEffect)(()=>{(async()=>{let e=await (0,$.o0)().list(),t=e.filter(e=>e.error);f({errorCount:t.length,totalCount:e.length}),t.length>0&&k(E.MCP_CONNECTED,"show",5e3)})()},[k]),(0,Y.useEffect)(()=>{(async()=>{try{let e=await (0,$.fq)().get("showTokensCounter");w(!1!==e)}catch(e){w(!0)}})()},[]),(0,Y.useEffect)(()=>{let e=(0,$.QI)().selectionChangedSubject.subscribe(e=>{e?(b(e),e.selection||e.text?k(E.IDE_SELECTION_REMIND,"show"):k(E.IDE_SELECTION_REMIND,"hide")):(b(null),k(E.IDE_SELECTION_REMIND,"hide"))});return()=>e.unsubscribe()},[k]);let S=(0,Y.useMemo)(()=>m,[m.errorCount,m.totalCount]),v=(0,Y.useMemo)(()=>l.includes(E.MCP_CONNECTED)?X().createElement(et,{errorCount:S.errorCount}):l.includes(E.THINKING_MODE)?X().createElement(er,{enabled:u}):null,[l,S,u]);return e?X().createElement(X().Fragment,null):X().createElement(R.Box,{flexDirection:"column",alignItems:"flex-end"},n?X().createElement(ee,{label:n,agentName:o,custom:a}):null,l.includes(E.IDE_SELECTION_REMIND)&&X().createElement(el,{selectionInfo:y}),l.includes(E.CONTEXT_REMIND)&&h&&X().createElement(en,{info:h}),v,l.includes(E.DEBUG_MODE)&&X().createElement(eo,null),T&&X().createElement(GoalActiveIndicator,null),g&&X().createElement(ea,null))},ee=X().memo(({label:e,agentName:t,custom:r})=>{let{theme:n}=(0,L.DP)();return X().createElement(R.Box,{width:16,justifyContent:"flex-end"},X().createElement(R.Text,{color:n.colors[(0,O.g8)(t,r)],wrap:"truncate-end"},e))}),et=X().memo(({errorCount:e})=>{let{theme:t}=(0,L.DP)();return X().createElement(R.Text,{color:t.colors.error},e," MCP server failed. ",X().createElement(R.Text,{dimColor:!0,color:t.colors.error},"/mcp for info"))}),er=X().memo(({enabled:e})=>{let{theme:t}=(0,L.DP)(),r=`${Z.b.optionKeyLabel()}T to toggle`;return X().createElement(R.Text,{color:e?t.colors.thinking:t.colors.disabled},e?"Thinking on":"Thinking off"," ",X().createElement(R.Text,{dimColor:!0},"(",r,")"))}),en=X().memo(({info:e})=>{let{theme:t}=(0,L.DP)(),r=(0,Y.useMemo)(()=>{switch(e.usageLevel){case"emergency":return t.colors.error;case"critical":case"warning":return t.colors.warning;default:return t.colors.secondary}},[e.usageLevel,t]);return X().createElement(R.Text,{color:r},"Context tokens: ",Math.round(100*(e.usage||0)),"%")}),eo=X().memo(()=>{let{theme:e}=(0,L.DP)();return X().createElement(R.Text,{color:e.colors.debug},"Debug mode")}),ea=X().memo(()=>{let{theme:e}=(0,L.DP)(),{totalTokens:t}=(0,L.mM)();return X().createElement(R.Text,{color:e.colors.disabled},(0,Q.Bh)(t)," tokens")}),el=X().memo(({selectionInfo:e})=>{let{theme:t}=(0,L.DP)(),r=(0,Y.useMemo)(()=>{if(!e)return null;let{selection:t,filePath:r}=e;if(t&&t.start&&t.end){let e=t.end.line-t.start.line+1;if(t.start.character!==t.end.character||e>1)return`${e} ${1===e?"line":"lines"} selected`}return r?q().basename(r):null},[e]);return r?X().createElement(R.Text,{color:t.colors.secondary},X().createElement(R.Text,{dimColor:!0},"\u29C9 "),X().createElement(R.Text,null,r)):X().createElement(X().Fragment,null)});r(39457);var ei=r(43634),es=r(97542),ec=r(48436),eu=r(36210),ed=r(67292),em=r(20252),ef=r(92735),eh=r(6004),ep=r.n(eh),eg=r(52379),eE=r(68593),ew=r(11223),ey=r(99455),eb=r(34559),ex=r(46382),eT=r(73369);let StatusIcon=({status:e})=>X().createElement(X().Fragment,null,"completed"===e?"\u2612":"\u2610"),ek=X().memo(({isExpanded:e=!1})=>{let{theme:t}=(0,L.DP)(),r=(0,eg.useContextSelector)(D.rZ,e=>e.todos),n=(0,eg.useContextSelector)(D.rZ,e=>e.currentTodoIndex)??0;if(!r?.length)return null;if(!e){let e=r[n+1];return e?X().createElement(R.Text,{color:t.colors.secondary},"Next: ",e.content):null}return X().createElement(R.Box,{flexDirection:"column"},r.map((e,r)=>{let o=r===n,a=o?e.activeForm:e.content;return X().createElement(R.Box,{key:`todo-${r}-${e.content}`},X().createElement(R.Text,{color:o?t.colors.brand:void 0},X().createElement(StatusIcon,{status:e.status})," ",a))}))});function isForwardedSubAgentInput(e){return e?._fromSubAgent===!0||e?._detachedUsageOnly===!0}function countActive(e){return e.filter(e=>(0,eT.Gx)(e.status)).length}let eS=X().memo(()=>{(0,Y.useSyncExternalStore)(R.subscribeTick,R.getSnapshot);let e=(0,Y.useRef)(Date.now()),t=Math.max(0,Math.floor((Date.now()-e.current)/1e3)),{session:r}=(0,D.Lg)();return(0,Y.useEffect)(()=>{let t=r.inputSubject.subscribe(t=>{isForwardedSubAgentInput(t)||(e.current=Date.now())});return()=>t.unsubscribe()},[r.id]),X().createElement(R.Text,null,t,"s")}),ev=X().memo(({children:e})=>{let{session:t}=(0,D.Lg)(),r=(0,Y.useRef)(Date.now()),[n,o]=(0,Y.useState)(0);return(0,Y.useEffect)(()=>{let e=t.inputSubject.subscribe(e=>{isForwardedSubAgentInput(e)||(r.current=Date.now(),o(0))});return()=>e.unsubscribe()},[t.id]),(0,Y.useEffect)(()=>{let e=setInterval(()=>{let e=Math.max(0,Math.floor((Date.now()-r.current)/1e3));o(t=>t===e?t:e)},1e3);return()=>clearInterval(e)},[]),X().createElement(X().Fragment,null,e(n))}),eC=X().memo(({inputTokens:e,outputTokens:t,isToolExecution:r})=>{let n=(0,Y.useMemo)(()=>{let n=t>0?"\u2193":"\u2191",o=t>0?t:e;return r?(0,Q.Bh)(o):`${n} ${(0,Q.Bh)(o)}`},[e,t,r]);return X().createElement(X().Fragment,null,r&&X().createElement(X().Fragment,null,X().createElement(P.rm,null),X().createElement(R.Text,null," ")),n," tokens")}),e_=X().memo(()=>{let[e,t]=(0,Y.useState)("");(0,Y.useEffect)(()=>{(async()=>{try{let e=await (0,$.EG)().getRelevantTip();e?(t(e.content),await (0,$.qN)().recordTipShown(e.id)):t("")}catch(e){t("")}})()},[]);let{theme:r}=(0,L.DP)();return e?X().createElement(P.v7,null,X().createElement(P.h1,{text:`Tip: ${e}`,offset:4,color:r.colors.secondary})):null}),eA=X().memo(({displayTokens:e,isToolExecution:t,hasTodos:r,isExpanded:n,isLastMessageToolCall:o,phaseLabel:a})=>{let{theme:l}=(0,L.DP)(),i=(0,Y.useMemo)(()=>X().createElement(R.Text,null,X().createElement(R.Text,{bold:!0},"esc")," to interrupt"),[]);return X().createElement(R.Box,{flexShrink:0,marginLeft:1},X().createElement(R.Text,{wrap:"truncate-end",color:l.colors.secondary},"(",o?i:X().createElement(ev,null,o=>X().createElement(X().Fragment,null,X().createElement(eS,null),a&&X().createElement(X().Fragment,null," \xb7 ",a),(e.input>0||e.output>0)&&X().createElement(X().Fragment,null," \xb7 ",X().createElement(eC,{inputTokens:e.input,outputTokens:e.output,isToolExecution:t})),r&&X().createElement(X().Fragment,null," \xb7 ",i," \xb7 ",X().createElement(R.Text,{bold:!0},"ctrl+t")," to ",n?"hide":"show"," todos"),!r&&X().createElement(X().Fragment,null," \xb7 ",i),o>=60&&" \xb7 Task running for a while")),")"))}),eM=X().memo(({task:e})=>{let{theme:t}=(0,L.DP)(),r="running"===e.status||"pending"===e.status,n="completed"===e.status,o="failed"===e.status,a="cancelled"===e.status||"killed"===e.status,l=(0,Y.useMemo)(()=>{if(!r)return null;try{let t=N.ContainerUtil.get(ei.AgentTaskManager).getTask(e.id);return t?.getSubAgentSession()??null}catch{return null}},[e.id,r]),{turnInputTokens:i,turnOutputTokens:s}=(0,L.mM)(l),[c,u]=(0,Y.useState)(void 0);(0,Y.useEffect)(()=>{if(!l?.progressSubject)return void u(void 0);let e=l.progressSubject.subscribe(e=>{u(e)});return()=>e.unsubscribe()},[l]);let d=(0,ew.w)(l),m=(0,ew.W)(d),f=(0,Y.useMemo)(()=>{let t=[];if(r||t.push(e.status),r&&m&&t.push(m),r){let e=s>0,r=e?s:i;r>0&&t.push(`${e?"\u2193":"\u2191"} ${(0,Q.Bh)(r)}`)}return null!=e.toolCallCount&&e.toolCallCount>0&&t.push(`${e.toolCallCount} tool use${e.toolCallCount>1?"s":""}`),null!=e.lastContextWindow&&e.lastContextWindow>0&&t.push(`${(0,ex.ap)(e.lastContextWindow)} tokens`),t.filter(Boolean).join(" \xb7 ")},[r,m,i,s,e.lastContextWindow,e.toolCallCount,e.status]),h=(0,Y.useMemo)(()=>{if(c)return f?`${c} \xb7 ${f}`:c;let t=e.agentType?`${e.agentType} \xb7 ${e.description||"Agent"}`:e.description||"Agent";return f?`${t} \xb7 ${f}`:t},[c,e.agentType,e.description,f]),p=(0,Y.useMemo)(()=>n?t.colors.success:o?t.colors.error:t.colors.secondary,[n,o,t.colors.success,t.colors.error,t.colors.secondary]);return X().createElement(R.Box,{key:e.id},r?X().createElement(R.Text,{color:t.colors.info},X().createElement(R.Spinner,{type:"dots"})):X().createElement(R.Text,{color:p},n?"\u2713":o?"\u2717":a?"\u2014":"\u25CB"),X().createElement(R.Text,null," "),X().createElement(P.Os,{text:h,offset:6,color:r?void 0:t.colors.secondary}))}),eI=X().memo(()=>{let e=(0,L.Z)();return(0,eT.yf)(countActive(e))||0===e.length?null:X().createElement(P.v7,null,X().createElement(R.Box,{flexDirection:"column"},e.map(e=>X().createElement(eM,{key:e.id,task:e}))))}),eO=X().memo(({teammate:e,focusedMemberName:t,isViewingMember:r})=>{let{theme:n}=(0,L.DP)(),o="running"===e.status||"pending"===e.status,a="completed"===e.status,l="failed"===e.status,i="cancelled"===e.status||"killed"===e.status,s=e.color||n.colors.info,c=r&&e.name===t,u=(0,Y.useMemo)(()=>{if(!o||!e.taskId)return null;try{let t=N.ContainerUtil.get(ei.AgentTaskManager).getTask(e.taskId);return t?.getSubAgentSession()??null}catch{return null}},[e.taskId,o]),{turnInputTokens:d,turnOutputTokens:m}=(0,L.mM)(u),f=(0,ew.w)(u),h=(0,ew.W)(f),p=(0,Y.useMemo)(()=>{let t=[];if(o||t.push(e.status),o&&h&&t.push(h),o){let e=m>0,r=e?m:d;r>0&&t.push(`${e?"\u2193":"\u2191"} ${(0,Q.Bh)(r)}`)}return null!=e.toolCallCount&&e.toolCallCount>0&&t.push(`${e.toolCallCount} tool use${e.toolCallCount>1?"s":""}`),null!=e.lastContextWindow&&e.lastContextWindow>0&&t.push(`${(0,ex.ap)(e.lastContextWindow)} tokens`),t.filter(Boolean).join(" \xb7 ")},[o,h,d,m,e.lastContextWindow,e.toolCallCount,e.status]),g=(0,Y.useMemo)(()=>{let t=e.description||"";return p?t?`${t} \xb7 ${p}`:p:t},[e.description,p]),E=(0,Y.useMemo)(()=>6+ep()(`@${e.name}`)+1,[e.name]),w=(0,Y.useMemo)(()=>a?n.colors.success:l?n.colors.error:n.colors.secondary,[a,l,n.colors.success,n.colors.error,n.colors.secondary]);return X().createElement(R.Box,{key:e.name},o?X().createElement(R.Text,{color:s},X().createElement(R.Spinner,{type:"dots"})):X().createElement(R.Text,{color:w},a?"\u2713":l?"\u2717":i?"\u2014":"\u25CB"),X().createElement(R.Text,null," "),X().createElement(R.Text,{bold:!0,color:c||o?s:n.colors.secondary},"@",e.name),X().createElement(R.Text,null," "),X().createElement(P.Os,{text:g,offset:E,color:o?void 0:n.colors.secondary}))}),eP=X().memo(()=>{let e=(0,L.QC)(),{focusedMemberName:t,isViewingMember:r}=(0,Y.useContext)(eE.Jp),n=e.some(e=>"running"===e.status||"pending"===e.status);return 0===e.length||!n&&!r||(0,eT.yf)(countActive(e))?null:X().createElement(P.v7,null,X().createElement(R.Box,{flexDirection:"column"},e.map(e=>X().createElement(eO,{key:e.name,teammate:e,focusedMemberName:t??void 0,isViewingMember:r}))))}),eR=X().memo(({isExpanded:e})=>{let{theme:t}=(0,L.DP)(),{session:r}=(0,D.Lg)(),n=(0,eg.useContextSelector)(D.rZ,e=>e.todos),o=(0,eg.useContextSelector)(D.rZ,e=>e.currentTodoIndex),{isViewingMember:a,focusedSession:l,focusedMemberName:i,focusedColor:s}=(0,Y.useContext)(eE.Jp),c=a&&l?l:r,{turnInputTokens:u,turnOutputTokens:d}=(0,L.mM)(a?l:void 0),m=(0,ew.w)(a?l:void 0),f=(0,ew.W)(m),[h,p]=(0,Y.useState)(!1),[g,E]=(0,Y.useState)({input:0,output:0}),[w,y]=(0,Y.useState)(void 0),b=(0,Y.useRef)(void 0),x=(0,eb.U)(c),T=x===W.OT.TOOL_EXECUTING,k=x===W.OT.PENDING,S=(0,L.VK)(!0);(0,Y.useEffect)(()=>{let e=c.progressSubject?.subscribe(e=>{y(e)});return()=>e?.unsubscribe()},[c.id]);let v=(0,Y.useMemo)(()=>{let e=ed.oV.getActiveAgentOnlyHistory(c.history);if(0===e.length)return!1;let t=e[e.length-1];return"function_call"===t.type&&(t.name===B.L3b.BASH||t.name===B.L3b.POWERSHELL)},[c.history.length,x]),C=(0,Y.useCallback)(()=>{c.abortController.abort()},[c.id]);(0,Y.useEffect)(()=>{!k&&h&&(C(),p(!1))},[h,k,C]);let _=(0,Y.useRef)({input:u,output:d});_.current={input:u,output:d},(0,Y.useEffect)(()=>{b.current||(E({input:u,output:d}),b.current=setTimeout(()=>{b.current=void 0,E({input:_.current.input,output:_.current.output})},100))},[u,d]),(0,Y.useEffect)(()=>()=>{b.current&&(clearTimeout(b.current),b.current=void 0)},[]);let A=(0,Y.useMemo)(()=>w||(n?.length?n[o??0].activeForm??S:S),[w,S,n?.length,o]);return X().createElement(R.Box,{flexDirection:"column"},X().createElement(R.Box,{marginTop:1},X().createElement(R.Box,null,a&&i?X().createElement(R.Text,{color:s||t.colors.brand,wrap:"truncate-end"},X().createElement(R.Spinner,{type:"star"}),` @${i} \xb7 ${A}\u{2026}`):X().createElement(R.Text,{color:t.colors.brand,wrap:"truncate-end"},X().createElement(R.Spinner,{type:"star"}),` ${A}\u{2026}`)),X().createElement(eA,{displayTokens:g,isToolExecution:T,hasTodos:!!n?.length,isExpanded:e,isLastMessageToolCall:v,phaseLabel:f})),n?.length&&(e||n[(o??0)+1])?X().createElement(P.v7,null,X().createElement(ek,{isExpanded:e})):X().createElement(e_,null),X().createElement(eP,null),X().createElement(eI,null))}),eD=X().memo(()=>{let{theme:e}=(0,L.DP)(),t=(0,L.QC)(),r=t.filter(e=>"running"===e.status||"pending"===e.status);return 0===r.length?null:X().createElement(R.Box,{flexDirection:"column",marginTop:1},X().createElement(R.Box,null,X().createElement(R.Text,{color:e.colors.brand,wrap:"truncate-end"},X().createElement(R.Spinner,{type:"star"}),` Waiting for ${r.length} teammate${r.length>1?"s":""}\u{2026}`),X().createElement(R.Box,{flexShrink:0,marginLeft:1},X().createElement(R.Text,{wrap:"truncate-end",color:e.colors.secondary},"(",X().createElement(R.Text,{bold:!0},"esc")," to interrupt)"))),(0,eT.yf)(countActive(t))?null:X().createElement(eP,null))});X().memo(()=>{let{session:e}=(0,D.Lg)(),[t,r]=(0,Y.useState)(!1),[n,o]=(0,Y.useState)(!1),[a,l]=(0,Y.useState)(e.progressSubject?.value),i=(0,eb.U)(e),s=(0,ey.X)(e),c=i===W.OT.PENDING,u=(0,L.QC)(),d=(0,L.tQ)(),{focusedMemberName:m,focusedTaskId:f,isViewingMember:h,focusedSession:p,focusedStatus:g,focusedIsBusy:E,resetFocus:w}=(0,Y.useContext)(eE.Jp),y=(0,eb.U)(p??void 0),b=i===W.OT.CANCELLING,x=y===W.OT.CANCELLING,T=s&&!b,k=!!(a&&!s),S=(0,Y.useMemo)(()=>u.some(e=>"running"===e.status||"pending"===e.status),[u]),v=(0,Y.useMemo)(()=>d.some(e=>"running"===e.status||"pending"===e.status),[d]),C=(0,L.Z)(),_=(0,Y.useMemo)(()=>C.some(e=>"running"===e.status||"pending"===e.status),[C]),A=h&&"active"===g&&E&&!x;(0,Y.useEffect)(()=>{let t=e.progressSubject?.subscribe(e=>{l(e)});return()=>t?.unsubscribe()},[e.id]);let M=(0,Y.useCallback)(()=>{let t=em.G.resolveTeamLeadTeamName(e);t&&(e.teamCancelled=!0,(0,B.OEJ)(e)),e.abortController.abort();try{let r=(0,B.lhW)();if(t||r.size>0){let n=N.ContainerUtil.get(ef.Logger);n.info("User abort from team-lead view, pausing active team members"),(async()=>{t&&await (0,ec.Np)(t,e.id);let o=(t?r.getAll().filter(e=>e.teamName===t):r.getAll()).filter(e=>e.isActive());await Promise.all(o.map(e=>t&&"in-process"===e.info.backendType?e.stopCurrentTurn("lead-cancelled").catch(t=>{n.warn?.(`stopCurrentTurn failed for ${e.info.name}: ${t}`)}):t?e.forceKill({keepWakeable:!1}):e.forceKill()))})().catch(e=>n.warn?.(`Failed to pause team members after lead abort: ${e}`))}}catch{}},[e.id]),I=(0,Y.useCallback)(()=>{try{let t=(0,eu.CB)(e)??[],r=N.ContainerUtil.get(ei.AgentTaskManager);for(let e of t)r.getTask(e.id)?.kill()}catch{}},[e]),O=(0,Y.useCallback)(()=>{if(!h||!m)return!1;if(f)try{return N.ContainerUtil.get(ei.AgentTaskManager).getTask(f)?.kill(),!0}catch{return!1}try{let e=N.ContainerUtil.get(es.DQ).getTeam()?.name;if(!e)return!1;let t=(0,B.lhW)().get(m,e);if(t&&t.isActive()){let e=t.getAgentTask();if(e)return e.kill(),!0}}catch(e){try{N.ContainerUtil.get(ef.Logger).error("abortFocusedMember error:",e)}catch{}}return!1},[h,m,f]);(0,Y.useEffect)(()=>{!c&&n&&(M(),o(!1))},[n,c,M]);let P=T||S||v||_||A||k;return((0,R.useInput)((e,t)=>{if(P)if(L.Om.ESCAPE(t)){if(h)return f?void w():void O();if(v&&!T)return void I();c?o(!0):M()}else t.ctrl&&"t"===e&&r(e=>!e)},{isActive:P}),A)?X().createElement(eR,{isExpanded:t}):h?(0,eT.yf)(countActive(u))?null:X().createElement(R.Box,{flexDirection:"column",marginTop:1},X().createElement(eP,null)):!v||_||k?T||k||_?X().createElement(eR,{isExpanded:t}):S?X().createElement(eD,null):null:null});var eL=r(42163);let e$={running:"\u25CF",pending:"\u25CB",completed:"\u2713",failed:"\u2717",cancelled:"\u2014",killed:"\u2014"},eB=X().memo(()=>{let{theme:e}=(0,L.DP)(),t=(0,eL.Q)(),{suggestions:r}=(0,D.p3)(),{focusedMemberName:n,isMemberSelecting:o}=(0,eE.az)(),a=(0,H.vi)();if(0===t.length||r.length>0&&!o||a)return null;let l=t.filter(e=>(0,eT.Gx)(e.status));if(0===l.length)return null;let renderMember=t=>{let r="running"===t.status||"pending"===t.status,a=o&&n===t.name,l=e$[t.status]||"?",i=t.color||e.colors.info;return a?X().createElement(R.Box,{key:t.name,paddingX:1,backgroundColor:i},X().createElement(R.Text,{color:e.colors.background,bold:!0},"@",t.name," ",l)):X().createElement(R.Text,{key:t.name},X().createElement(R.Text,{color:i,bold:r},"@",t.name),X().createElement(R.Text,{color:r?i:e.colors.secondary}," ",l))};if(o){let t=null===n;return X().createElement(R.Box,{gap:1,alignItems:"center"},X().createElement(R.Box,{paddingX:1,backgroundColor:t?e.colors.secondary:void 0},X().createElement(R.Text,{color:t?"black":e.colors.secondary,bold:t},"@main")),X().createElement(R.Text,{color:e.colors.secondary},"\xb7"),l.map(renderMember))}return X().createElement(R.Box,{gap:1},l.map(renderMember))}),eN="#C084FC";X().memo(()=>{let{session:e}=(0,D.Lg)();return e.meta?.workflowEffortLevel!=="ultracode"?null:X().createElement(R.Box,{justifyContent:"flex-end"},X().createElement(R.Text,{color:eN},"ultracode"),X().createElement(R.Text,{color:eN}," -"))}).displayName="WorkflowEffortBadge",U().memo(()=>{let{visibility:e}=(0,D.LV)();if(e[D.Gk.INPUT_BOTTOM])return U().createElement(U().Fragment,null,U().createElement(P.vB,null),U().createElement(R.Box,{alignItems:"flex-start",justifyContent:"space-between"},U().createElement(V.T,null),U().createElement(InputStatusBox,null)),U().createElement(G.y,null),U().createElement(eB,null),U().createElement(H.K8,null),U().createElement(K.Z,null))});var eW=r(35061);r(12119),r(40198),r(43840);var eF=r(88415);r(66936),r(79896),r(2203),r(32894),r(79145),r(28806),(o=w||(w={})).CLIP="clipboard",o.FILE="file",r(89799),r(50814),r(76760),r(7386),r(79620),(a=y||(y={})).MODE="mode",a.OVERRIDES="overrides",a.CONFIG="config",r(80661),(l=b||(b={})).SESSION="session",l.LOCAL="local",l.CANCEL="cancel",r(82284),r(8095);var ej=r(92309);(i=x||(x={})).ALLOW="Allow",i.ASK="Ask",i.DENY="Deny",i.WORKSPACE="Workspace",(s=T||(T={})).MAIN="main",s.ADD_RULE="add_rule",s.DELETE_CONFIRM="delete_confirm",s.ADD_DIRECTORY="add_directory",s.REMOVE_DIRECTORY_CONFIRM="remove_directory_confirm",s.SAVE_LOCATION="save_location",(c=k||(k={})).MAIN="main",c.ADD="add",c.DELETE_CONFIRM="delete_confirm",c.SAVE_LOCATION="save_location",(u=S||(S={})).ALLOW_ADD="allow-add",u.ALLOW_DELETE_CONFIRM="allow-delete-confirm",u.ALLOW_SAVE_LOCATION="allow-save-location",u.ASK_ADD="ask-add",u.ASK_DELETE_CONFIRM="ask-delete-confirm",u.ASK_SAVE_LOCATION="ask-save-location",u.DENY_ADD="deny-add",u.DENY_DELETE_CONFIRM="deny-delete-confirm",u.DENY_SAVE_LOCATION="deny-save-location",u.WORKSPACE_ADD="workspace-add",u.WORKSPACE_DELETE_CONFIRM="workspace-delete-confirm",u.WORKSPACE_SAVE_LOCATION="workspace-save-location",eF.P.getHomeDir(),ej.I7.PROJECT_LOCAL,ej.I7.PROJECT,ej.I7.USER,x.ALLOW,x.ASK,x.DENY,x.WORKSPACE,r(49726),r(19222);var eU=r(93034);eF.P.getHomeDir(),eU.v9.PROJECT,eU.FK.PROJECT,eU.v9.USER,eU.QY.TERMINAL_TITLE_GENERATOR,eF.P.getHomeDir(),(d=v||(v={})).MAIN="main",d.CREATE="create",d.AGENT_SCOPE="agent_scope",d.DELETE_CONFIRM="delete_confirm",d.CREATING="creating",d.CREATED_SUCCESS="created_success",d.AGENT_ACTIONS="agent_actions",d.VIEW_AGENT="view_agent",d.BUILTIN_ACTIONS="builtin_actions",d.BUILTIN_EDIT_MODEL="builtin_edit_model";var eH=r(62279),eG=r(99844);r(98447),eG.sw.PENDING,eH.Ay.ellipsis,eG.sw.CONNECTED,eH.Ay.tick,eG.sw.CONNECTING,eH.Ay.ellipsis,eG.sw.DISCONNECTED,eH.Ay.cross,eG.sw.UNAUTHORIZED,eH.Ay.warning,eG.sw.AUTHORIZED,eH.Ay.tick,eG.sw.AUTHORIZING,eH.Ay.ellipsis,eG.sw.PENDING_APPROVAL,eH.Ay.warning,eG.RG.USER,eG.RG.PROJECT,eG.DZ,eG.RG.LOCAL,eG.RG.DYNAMIC,eG.RG.PLUGIN,eG.RG.INTERNAL,eG.RG.SDK,eG.RG.USER,eG.RG.PROJECT,eG.RG.LOCAL,eG.RG.DYNAMIC,eG.RG.PLUGIN,eG.RG.INTERNAL,eG.RG.SDK,r(33600),(m=C||(C={})).RUNNING="running",m.DONE="completed",m.KILLED="killed",m.FAILED="failed",(f=_||(_={})).LIST="list",f.DETAIL="detail",(h=A||(A={})).KILL="x",h.UP="k",h.DOWN="j",r(36023),r(41319),r(38433),r(6854);var eV=r(13866),eK=r(20131);eK.mb.PRE_TOOL_USE,eK.mb.PRE_TOOL_USE,eK.de[eK.mb.PRE_TOOL_USE],eK.mb.POST_TOOL_USE,eK.mb.POST_TOOL_USE,eK.de[eK.mb.POST_TOOL_USE],eK.mb.NOTIFICATION,eK.mb.NOTIFICATION,eK.de[eK.mb.NOTIFICATION],eK.mb.USER_PROMPT_SUBMIT,eK.mb.USER_PROMPT_SUBMIT,eK.de[eK.mb.USER_PROMPT_SUBMIT],eK.mb.SESSION_START,eK.mb.SESSION_START,eK.de[eK.mb.SESSION_START],eK.mb.SESSION_END,eK.mb.SESSION_END,eK.de[eK.mb.SESSION_END],eK.mb.STOP,eK.mb.STOP,eK.de[eK.mb.STOP],eK.mb.SUBAGENT_STOP,eK.mb.SUBAGENT_STOP,eK.de[eK.mb.SUBAGENT_STOP],eK.mb.PRE_COMPACT,eK.mb.PRE_COMPACT,eK.de[eK.mb.PRE_COMPACT],eK.mb.PRE_TOOL_USE,eK.mb.POST_TOOL_USE,eK.mb.SESSION_START,eK.mb.SESSION_END,eK.mb.PRE_COMPACT,eK.mb.NOTIFICATION,eK.mb.USER_PROMPT_SUBMIT,eK.mb.STOP,eK.mb.SUBAGENT_STOP,eK.mb.WORKTREE_CREATE,eK.mb.WORKTREE_REMOVE,eK.mb.POST_TOOL_USE_FAILURE,eK.mb.SUBAGENT_START,eK.mb.STOP_FAILURE,eK.mb.POST_COMPACT,eK.mb.CONFIG_CHANGE,eK.mb.INSTRUCTIONS_LOADED,eK.mb.PERMISSION_REQUEST,eK.mb.PERMISSION_DENIED,eK.mb.ELICITATION,eK.mb.ELICITATION_RESULT,eK.mb.TASK_CREATED,eK.mb.TASK_COMPLETED,eK.mb.TEAMMATE_IDLE,eK.mb.SETUP,eK.mb.FILE_CHANGED,eK.mb.CWD_CHANGED,eK.mb.FINAL_STOP,F.I7.USER,F.I7.PROJECT,F.I7.PROJECT_LOCAL,F.I7.CLI,eW.me,eK.mb.PRE_TOOL_USE,eK.mb.POST_TOOL_USE,eK.mb.NOTIFICATION,eK.mb.USER_PROMPT_SUBMIT,eK.mb.SESSION_START,eK.mb.SESSION_END,eK.mb.STOP,eK.mb.SUBAGENT_STOP,eK.mb.PRE_COMPACT,eK.mb.WORKTREE_CREATE,eK.mb.WORKTREE_REMOVE,eK.mb.POST_TOOL_USE_FAILURE,eK.mb.SUBAGENT_START,eK.mb.STOP_FAILURE,eK.mb.POST_COMPACT,eK.mb.CONFIG_CHANGE,eK.mb.INSTRUCTIONS_LOADED,eK.mb.PERMISSION_REQUEST,eK.mb.PERMISSION_DENIED,eK.mb.ELICITATION,eK.mb.ELICITATION_RESULT,eK.mb.TASK_CREATED,eK.mb.TASK_COMPLETED,eK.mb.TEAMMATE_IDLE,eK.mb.SETUP,eK.mb.FILE_CHANGED,eK.mb.CWD_CHANGED,eK.mb.FINAL_STOP,ej.I7.PROJECT,eV.KR.toLowerCase(),ej.I7.USER,eV.KR.toLowerCase(),F.I7.USER,F.I7.PROJECT,F.I7.PROJECT_LOCAL,F.I7.CLI,r(72251),r(86976),r(79803),r(94302),r(36898),r(64298);var eJ=r(70857);r(73381),r(36600);let eq=eF.P.getHomeDir();eq.startsWith((0,eJ.homedir)())&&eq.slice((0,eJ.homedir)().length),r(60016),r(80896),r(61082),r(31349),(p=M||(M={})).LIST="list",p.DETAIL="detail",p.AGENT="agent",(g=I||(I={})).STOP="x",g.SAVE="s",g.PAUSE="p",g.RESTART="r",g.SCROLL_DOWN="j",g.SCROLL_UP="k";let eY=["low","medium","high","xhigh","max"];[...eY],[...eY]},41319(e,t,r){var n,o,a,l,i,s;r.d(t,{e1:()=>n}),(l=n||(n={})).PENDING="pending",l.RUNNING="running",l.COMPLETED="completed",l.FAILED="failed",l.CANCELLED="cancelled",l.KILLED="killed",(i=o||(o={})).LIST="list",i.DETAIL="detail",(s=a||(a={})).KILL="x",s.UP="k",s.DOWN="j"},37906(e,t,r){r.d(t,{Y:()=>useFooterTaskCounts});var n=r(88523),o=r(53900),a=r(85577),l=r(53052),i=r(55425),s=r(46382);function safeGet(e){try{return n.ContainerUtil.get(e)}catch{return}}let c={shellCount:0,workflowCount:0};function useFooterTaskCounts(){let{session:e}=(0,l.Lg)(),t=(0,a.useMemo)(()=>(0,i._5)(),[]),r=(0,a.useMemo)(()=>safeGet(o.Dm),[]),n=(0,a.useMemo)(()=>safeGet(o.T_),[]),[u,d]=(0,a.useState)(c);return(0,a.useEffect)(()=>{let o,refresh=()=>{let n=(0,s.MN)(t.getBackgroundTasks()),o=0;if(r)try{o=r.listActive().filter(t=>!t.sessionId||t.sessionId===e.id).length}catch{o=0}d(e=>e.shellCount===n&&e.workflowCount===o?e:{shellCount:n,workflowCount:o})};refresh();let a=e.backgroundTaskSubject.subscribe(refresh);if(n){let e=n.on;"function"==typeof e&&(o=e.call(n,()=>refresh()))}let l=setInterval(refresh,2e3);return()=>{a.unsubscribe();try{o?.()}catch{}clearInterval(l)}},[e.id,t,r,n]),u}},60966(e,t,r){r.d(t,{VH:()=>getCharType});r(94859),r(39931);let n=/[\u4e00-\u9fff\u3400-\u4dbf\uf900-\ufaff]/,o=/[\u3000-\u303f\uff00-\uffef\u2000-\u206f]/,a=/[!-/:-@[-`{-~]/;function getCharType(e){return/\s/.test(e)?"whitespace":n.test(e)?"cjk":/\w/.test(e)?"word":o.test(e)||a.test(e)?"punctuation":"other"}},5100(e,t,r){r.d(t,{HP:()=>a,sl:()=>buildPanelPath});var n,o,a,l,i=r(30296),s=r.n(i),c=r(23544),u=r(14372),d=r(90396),m=r(37905),f=r(53052),h=r(55425),p=r(61741),g=r(88523),E=r(47944),w=r(62614),y=r(43164),b=r(28429);let x={suppressExitMessage:!1,active:!1};async function attachJobInPlace(e){let t,r=(0,u.Iwb)(e.id,(0,u.b7z)()),n=g.ContainerUtil.get(u.LJA),o=await n.prepareAttach(e);if(!o.ok){o.message&&(process.env[u.QTX]=o.message);return}let a=g.ContainerUtil.get(u.BYr),l=new Date().toISOString();await a.patchQuiet(e.id,{attachedAt:l}).catch(()=>{}),x.suppressExitMessage=!0,x.active=!0;let i=b.r.current;(0,u.Rfb)();try{i?.unmount(),await i?.waitUntilExit().catch(()=>{})}catch{}await new Promise(e=>setTimeout(e,0)),(0,u.Rfb)(),(0,u.s4u)();try{t=await n.attachPrepared(o)}catch(r){await a.patchQuiet(e.id,{attachedAt:null}).catch(()=>{}),t={outcome:"error",message:r instanceof Error?r.message:String(r)}}"error"===t.outcome&&t.message&&process.stderr.write(`${t.message}
|
|
24
|
-
`),returnToAgentView(r,t.code??+("error"===t.outcome))}function returnToAgentView(e,t,r){r&&(process.env[u.QTX]=r),(0,u.Hfd)(e),remountAgentView().catch(()=>(0,E.ZQ)(t))}async function remountAgentView(){(0,u.Rfb)(),(0,u.s4u)(),x.active=!1,x.suppressExitMessage=!1;let e=g.ContainerUtil.get(y.e),t=g.ContainerUtil.get(w.CliViewToken),{AgentViewScreen:n}=await Promise.resolve().then(r.bind(r,61741));e.setInitialRender({component:n,props:remountAgentViewScreenProps({onExit:e=>exitToReturnJob(e),onAttach:e=>{attachJobInPlace(e).catch(()=>{})}})}),await t.render("command_render",{viewName:w.CLI_VIEW_NAME,metadata:{initialPage:"agents"}})}function exitToReturnJob(e){if("exit"===e)return void(0,E.ZQ)(0);let t=(0,u.b7z)();t&&(0,u.LjG)((0,h.rb)(),(0,h.a)()).then(e=>{let r=findReturnJob(e,t);r&&attachJobInPlace(r).catch(()=>{})}).catch(()=>{})}function remountAgentViewScreenProps(e){return{onExit:e.onExit,onAttach:e.onAttach}}function findReturnJob(e,t){return e.find(e=>{if(e.id===t)return!0;if(t.startsWith(m.hV)){let r=t.slice(m.hV.length);return e.state.sessionId===r}return!1})}s().memo(()=>{let e=(0,c.useContextSelector)(f.aO,e=>e.back),t=(0,i.useCallback)(()=>{let t=(0,u.b7z)();if(!t||t.startsWith("in-process:")){for(let e of(0,m.Kx)())(0,d.KC)(e.state.sessionId).catch(()=>{}),(0,m.Ol)(e.id);(0,u.dAW)(),e();return}(0,u.LjG)((0,h.rb)(),(0,h.a)()).then(r=>{let n=r.find(e=>e.id===t);n?attachJobInPlace(n).catch(()=>e()):e()}).catch(()=>e())},[e]),r=(0,i.useCallback)(t=>{if("in-process"===t.origin){(0,d.KC)(t.state.sessionId).catch(()=>{}),(0,m.Ol)(t.id),(0,u.dAW)(),e();return}attachJobInPlace(t).catch(()=>{})},[e]),[n]=(0,i.useState)(()=>process.env[u.igH]??"agent-view");return s().createElement(p.AgentViewScreen,{onExit:t,onAttach:r,key:n})}).displayName="AgentViewPanel",r(65852),(n=a||(a={})).ASK="ask",n.EXTERNAL_EDITOR="external-editor",n.MCP="mcp",n.MCP_DETAILS="mcp-details",n.MCP_TOOLS="mcp-tools",n.MCP_TOOLS_DETAILS="mcp-tools-details",n.MCP_RECONNECT="mcp-reconnect",n.MCP_OAUTH_CONNECT="mcp-oauth-connect",n.MCP_OAUTH_AUTHENTICATE="mcp-oauth-authenticate",n.MCP_OAUTH_REFRESH="mcp-oauth-refresh",n.MCP_OAUTH_DISCONNECT="mcp-oauth-disconnect",n.MODEL="model",n.MODE="mode",n.OUTPUT_STYLE="output-style",n.MEMORY="memory",n.PLUGIN="plugin",n.PLUGIN_ADD_MARKETPLACE="plugin-add-marketplace",n.PLUGIN_MANAGE_MARKETPLACES="plugin-manage-marketplaces",n.PLUGIN_MARKETPLACE_DETAILS="plugin-marketplace-details",n.PLUGIN_BROWSE_SELECT_MARKETPLACE="plugin-browse-select-marketplace",n.PLUGIN_BROWSE_SELECT_PLUGIN="plugin-browse-select-plugin",n.PLUGIN_BROWSE_INSTALL="plugin-browse-install",n.PLUGIN_MANAGE_SELECT_MARKETPLACE="plugin-manage-select-marketplace",n.PLUGIN_MANAGE_LIST="plugin-manage-list",n.PLUGIN_MANAGE_DETAILS="plugin-manage-details",n.PLUGIN_DETAILS="plugin-details",n.PLUGIN_INSTALLED_DETAILS="plugin-installed-details",n.TOOL_APPROVAL="tool-approval",n.INPUT="input",n.DOCTOR="doctor",n.STATUS="status",n.CONFIG="config",n.SANDBOX="sandbox",n.SKILLS="skills",n.RESUME="resume",n.REWIND="rewind",n.EXPORT="export",n.FEEDBACK="feedback",n.UPGRADE="upgrade",n.PERMISSIONS="permissions",n.TERMINAL_SETUP="terminal-setup",n.TASKS="tasks",n.THINKING="thinking",n.HOOKS="hooks",n.HOOKS_EVENT="hooks-event",n.HOOKS_MATCHER="hooks-matcher",n.HOOKS_CONFIG="hooks-config",n.HOOKS_COMMAND="hooks-command",n.HOOKS_SAVE="hooks-save",n.HOOKS_DELETE_CONFIRM="hooks-delete-confirm",n.ERROR="error",n.STATS="stats",n.STATS_OVERVIEW="stats-overview",n.STATS_MODELS="stats-models",n.REMOTE_CONTROL="remote-control",n.BTW="btw",n.WORKFLOWS="workflows",n.WORKFLOWS_SAVE="workflows-save",n.EFFORT="effort",n.AGENT_VIEW="agent-view",(o=l||(l={})).DISCOVER="discover",o.INSTALLED="installed",o.MARKETPLACES="marketplaces",o.ERRORS="errors";let buildPanelPath=(e,t)=>{let r=`/chat/panel/${e}`;if(t&&Object.keys(t).length>0){let e=new URLSearchParams(t);r+=`?${e.toString()}`}return r}},55425(e,t,r){r.d(t,{LI:()=>channelManager,fq:()=>settingsManager,_E:()=>tokenUsageThresholdsService,qN:()=>userStateManager,H4:()=>worktreeService,_5:()=>toolManager,rb:()=>jobStore,QI:()=>ideService,Rm:()=>consoleManager,xQ:()=>daemonProcessManager,J:()=>terminalNotificationService,id:()=>sessionManager,zb:()=>agentManager,J0:()=>commandManager,EG:()=>tipsManager,o0:()=>mcpManager,a:()=>sessionRegistry,Yf:()=>authenticationManager,PK:()=>pasteStreamService,Uy:()=>planStorageService,_F:()=>customAgentManager,vV:()=>diffWordService,lH:()=>debugService,jO:()=>productManager});var n,o,a,l=r(88523),i=r(86482),s=r(9151);r(79814);var c=r(49726);r(43634);var u=r(14372);r(64236),r(7386),r(68474);var d=r(9773);r(58115);var m=r(73381),f=r(45611),h=r(98866),p=r(40580);r(24526),r(35717),r(33732);var g=r(56913);r(19472);var E=r(99844);r(79620),r(43164);var w=r(76247);r(59206);let y=Symbol("PasteStreamService");var b=r(32894),x=r(26210);let T=Symbol("CoalesceManager"),k=class{constructor(){this.chunks=[],this.windowsPlatform=l.isWindows}setWindowsPlatformForTesting(e){this.windowsPlatform=e}add(e){return this.chunks.length>0?(this.chunks.push(e),{ready:!1}):!this.windowsPlatform||e.length<=1?{ready:!1,buffer:e}:(this.chunks.push(e),{ready:!1})}flush(){let e=this.chunks.join("");return this.reset(),e}reset(){this.chunks=[]}isCoalescing(){return this.chunks.length>0}dispose(){this.reset()}};k=function(e,t,r,n){var o,a=arguments.length,l=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)l=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(o=e[i])&&(l=(a<3?o(l):a>3?o(t,r,l):o(t,r))||l);return a>3&&l&&Object.defineProperty(t,r,l),l}([(0,l.Component)(T)],k);let S=Symbol("CompressionManager"),v=class{constructor(){this.compressedTexts=new Map,this.nextId=1}compress(e,t){let r=this.nextId++;return this.compressedTexts.set(r,e),{id:r,placeholder:`[Pasted text #${r}: ${t} lines]`}}expand(e){let t=e;return this.compressedTexts.forEach((e,r)=>{let n=`[Pasted text #${r}: `;for(;t.includes(n);){let r=t.indexOf(n),o=t.indexOf("]",r);if(-1===o)break;t=t.slice(0,r)+e+t.slice(o+1)}}),t}remove(e){this.compressedTexts.delete(e)}clear(){this.compressedTexts.clear()}hasAny(){return this.compressedTexts.size>0}};v=function(e,t,r,n){var o,a=arguments.length,l=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)l=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(o=e[i])&&(l=(a<3?o(l):a>3?o(t,r,l):o(t,r))||l);return a>3&&l&&Object.defineProperty(t,r,l),l}([(0,l.Component)(S)],v);var C=r(79896),_=r(70857),A=r(16928);let M=Symbol("ImageManager"),I=class{constructor(){this.images=new Map,this.nextId=1}register(e,t){let r=this.nextId++;return this.images.set(r,{path:e,isTemp:t}),{id:r,placeholder:`[Image #${r}]`}}registerFromDataUrl(e,t){let r=t.match(/^data:([^;,]+)[;,]/),n=r?r[1]:"image/png",o=n.split("/")[1]?.split("+")[0]||"png",a=t.split(",")[1]??"",l=A.join(_.tmpdir(),`edited-image-${Date.now()}-${Math.random().toString(36).slice(2,8)}.${o}`);return(C.writeFileSync(l,Buffer.from(a,"base64")),e<=0||this.images.has(e))?this.register(l,!0):(this.images.set(e,{path:l,isTemp:!0}),e>=this.nextId&&(this.nextId=e+1),{id:e,placeholder:`[Image #${e}]`})}get(e){return this.images.get(e)}async cleanup(e){let t=this.images.get(e);if(t?.isTemp)try{b.E.cleanupTempFile(t.path)}catch(e){console.error("Failed to cleanup image:",e)}this.images.delete(e)}async cleanupAll(){for(let[,e]of this.images)if(e.isTemp)try{b.E.cleanupTempFile(e.path)}catch(e){console.error("Failed to cleanup image:",e)}this.images.clear()}};I=function(e,t,r,n){var o,a=arguments.length,l=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)l=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(o=e[i])&&(l=(a<3?o(l):a>3?o(t,r,l):o(t,r))||l);return a>3&&l&&Object.defineProperty(t,r,l),l}([(0,l.Component)(M)],I);var paste_stream_service_decorate=function(e,t,r,n){var o,a=arguments.length,l=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)l=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(o=e[i])&&(l=(a<3?o(l):a>3?o(t,r,l):o(t,r))||l);return a>3&&l&&Object.defineProperty(t,r,l),l},__metadata=function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};let O=class{async processPastedContent(e){try{if(0===e.length){let e=await b.E.readImage();if(e?.tempFilePath){let{placeholder:t}=this.imageManager.register(e.tempFilePath,!0);return t}return}let t=x.YF.computePastedLineCount(e);if(e.length>1024||t>3)return this.compressionManager.compress(e,t).placeholder;return e}catch(e){console.error("Failed to process pasted content",e)}}async processPaste(e){try{return await this.processPastedContent(e)??e}catch(t){return e}}async processPasteWithImageDetection(e,t=!0){try{if(0===e.length&&t){let e=await b.E.readImage({retry:!0});if(e?.tempFilePath){let{placeholder:t}=this.imageManager.register(e.tempFilePath,!0);return t}}return await this.processPaste(e)}catch(t){return console.error("Failed to process paste with image detection",t),e}}expand(e){return this.compressionManager.expand(e)}cleanupRemoved(e,t){let r=this.extractCompressedPlaceholders(e),n=this.extractCompressedPlaceholders(t);for(let e of r)n.has(e)||this.compressionManager.remove(e);let o=this.extractImagePlaceholders(e),a=this.extractImagePlaceholders(t);for(let e of o)a.has(e)||this.imageManager.cleanup(e)}async cleanup(){await this.imageManager.cleanupAll(),this.compressionManager.clear(),this.coalesceManager.dispose()}extractImageMap(e){let t,r=new Map,n=/\[Image #(\d+)\]/g;for(;null!==(t=n.exec(e));){let e=parseInt(t[1],10),n=this.imageManager.get(e);n&&r.set(e,{path:n.path,format:n.path.split(".").pop()||""})}return r}rehydrateEditedImages(e){let t=new Map;for(let{placeholderId:r,dataUrl:n}of e)try{let{id:e}=this.imageManager.registerFromDataUrl(r,n);t.set(r,e)}catch(e){console.error("Failed to rehydrate edited image",e)}return t}addToCoalesce(e){return this.coalesceManager.add(e)}flushCoalesce(){return this.coalesceManager.flush()}isCoalescing(){return this.coalesceManager.isCoalescing()}hasCompressedPastes(){return this.compressionManager.hasAny()}removeAllCompressedPlaceholders(e){return e.replace(/\[Pasted text #\d+: \d+ lines\]/g,"")}removeAllImagePlaceholders(e){return e.replace(/\[Image #\d+\]/g,"")}async clearAll(){await this.imageManager.cleanupAll(),this.compressionManager.clear()}extractCompressedPlaceholders(e){let t,r=new Set,n=/\[Pasted text #(\d+):/g;for(;null!==(t=n.exec(e));)r.add(parseInt(t[1],10));return r}extractImagePlaceholders(e){let t,r=new Set,n=/\[Image #(\d+)\]/g;for(;null!==(t=n.exec(e));)r.add(parseInt(t[1],10));return r}};paste_stream_service_decorate([(0,l.Autowired)(S),__metadata("design:type","function"==typeof(n=void 0!==v&&v)?n:Object)],O.prototype,"compressionManager",void 0),paste_stream_service_decorate([(0,l.Autowired)(M),__metadata("design:type","function"==typeof(o=void 0!==I&&I)?o:Object)],O.prototype,"imageManager",void 0),paste_stream_service_decorate([(0,l.Autowired)(T),__metadata("design:type","function"==typeof(a=void 0!==k&&k)?a:Object)],O.prototype,"coalesceManager",void 0),O=paste_stream_service_decorate([(0,l.Component)(y)],O),r(36916),r(86976),r(48278),r(59626),r(68609),r(47385);var P=r(67662),R=r(39295);r(93944),r(63295),r(67819),r(69386),r(3797),r(36898);var D=r(80271),L=r(93447),$=r(89634);let B=Symbol("UndoRedoService"),N=class{constructor(){this.undoStack=[],this.throttleTimer=null,this.lastValue="",this.isRestoringSnapshot=!1,this.THROTTLE_MS=1e3,this.MAX_STACK_SIZE=10}onValueChange(e,t){if(this.isRestoringSnapshot){this.isRestoringSnapshot=!1;return}if(e!==this.lastValue){if(this.throttleTimer){this.lastValue=e;return}this.undoStack.push({value:this.lastValue,cursorOffset:t}),this.undoStack.length>this.MAX_STACK_SIZE&&this.undoStack.shift(),this.lastValue=e,this.throttleTimer=setTimeout(()=>{this.throttleTimer=null},this.THROTTLE_MS)}}undo(){let e=this.undoStack.pop()??null;return e&&(this.isRestoringSnapshot=!0,this.lastValue=e.value),e}canUndo(){return this.undoStack.length>0}clear(){this.undoStack=[],this.throttleTimer&&(clearTimeout(this.throttleTimer),this.throttleTimer=null),this.isRestoringSnapshot=!1}};N=function(e,t,r,n){var o,a=arguments.length,l=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)l=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(o=e[i])&&(l=(a<3?o(l):a>3?o(t,r,l):o(t,r))||l);return a>3&&l&&Object.defineProperty(t,r,l),l}([(0,l.Component)(B)],N),r(12119),r(35421);var W=r(23701),F=r(74096);let sessionManager=()=>l.ContainerUtil.get(P.Cv),authenticationManager=()=>l.ContainerUtil.get(i.AuthenticationManager),customAgentManager=()=>l.ContainerUtil.get(c.cQH),pasteStreamService=()=>l.ContainerUtil.get(y),agentManager=()=>l.ContainerUtil.get(c.VaB),settingsManager=()=>l.ContainerUtil.get(R.Vr),commandManager=()=>l.ContainerUtil.get(m.FQ),mcpManager=()=>l.ContainerUtil.get(E.i9),productManager=()=>l.ContainerUtil.get(s.ProductManager),jobStore=()=>l.ContainerUtil.get(u.BYr),terminalNotificationService=()=>l.ContainerUtil.get(w.V_),sessionRegistry=()=>l.ContainerUtil.get(h.MN),daemonProcessManager=()=>l.ContainerUtil.get(h.DH),tokenUsageThresholdsService=()=>l.ContainerUtil.get(L.e),toolManager=()=>l.ContainerUtil.get($.cK4),tipsManager=()=>l.ContainerUtil.get(D.oi),userStateManager=()=>l.ContainerUtil.get(D.kq),debugService=()=>l.ContainerUtil.get(p.VB),consoleManager=()=>l.ContainerUtil.get(f.dy),ideService=()=>l.ContainerUtil.get(g.OL),diffWordService=()=>l.ContainerUtil.get(F.JA),planStorageService=()=>l.ContainerUtil.get($.EGu),channelManager=()=>l.ContainerUtil.get(d.fI),worktreeService=()=>l.ContainerUtil.get(W.pZ)},39931(e,t,r){r.d(t,{Bh:()=>o.B,wF:()=>getWordRange});var n=r(60966),o=r(84265);let isSameWordGroup=(e,t)=>{let r=(0,n.VH)(e),o=(0,n.VH)(t);return"cjk"!==r&&"cjk"!==o&&"whitespace"!==r&&"whitespace"!==o&&r===o},getWordRange=(e,t,r)=>{let o=t,a=t;if("forward"===r){if(a>=e.length)return{start:o,end:a};let t=(0,n.VH)(e[a]);if("cjk"===t)a++;else if("whitespace"===t){for(;a<e.length&&"whitespace"===(0,n.VH)(e[a]);)a++;return{start:o,end:a}}else for(;a<e.length&&(0,n.VH)(e[a])===t;)a++;for(;a<e.length&&"whitespace"===(0,n.VH)(e[a]);)a++}else if("end"===r){if(a>=e.length)return{start:o,end:a};let t=(0,n.VH)(e[a]);if("cjk"===t){for(a++;a<e.length&&"whitespace"===(0,n.VH)(e[a]);)a++;if(a<e.length&&"cjk"!==(0,n.VH)(e[a])){let t=(0,n.VH)(e[a]);for(;a+1<e.length&&(0,n.VH)(e[a+1])===t;)a++}}else if("whitespace"!==t){let t=a+1;if(t>=e.length||!isSameWordGroup(e[a],e[t])){for(a=t;a<e.length&&"whitespace"===(0,n.VH)(e[a]);)a++;if(a<e.length&&"cjk"!==(0,n.VH)(e[a])){let t=(0,n.VH)(e[a]);for(;a+1<e.length&&(0,n.VH)(e[a+1])===t;)a++}}else for(;a+1<e.length&&isSameWordGroup(e[a],e[a+1]);)a++}else{for(;a<e.length&&"whitespace"===(0,n.VH)(e[a]);)a++;if(a<e.length&&"cjk"!==(0,n.VH)(e[a])){let t=(0,n.VH)(e[a]);for(;a+1<e.length&&(0,n.VH)(e[a+1])===t;)a++}}a>=e.length&&e.length>0&&(a=e.length-1)}else{if(o<=0)return{start:0,end:a};for(o--;o>0&&"whitespace"===(0,n.VH)(e[o]);)o--;let t=(0,n.VH)(e[o]);if("cjk"===t);else if("whitespace"!==t)for(;o>0&&(0,n.VH)(e[o-1])===t;)o--}return{start:o,end:a}}},28806(e,t,r){r.d(t,{X$:()=>InputStateUtils,oy:()=>c.oy,L6:()=>c.L6,hE:()=>c.hE});var n,o,a=r(98447),l=r(62909);let i=[a.T.ADD_DIR],s={"?":l.W_.HELP,"!":l.W_.BASH,"#":l.W_.MEMORY};let InputStateUtils=class InputStateUtils{static filterNonInputModeStates(e){return e.filter(e=>e!==l.W_.VIM_INSERT_MODE&&e!==l.W_.REVERSE_SEARCH)}static resolve(e,t){return this.includeDefault(t)&&!t.includes(l.W_.HELP)&&e in s?[s[e]]:e&&t.includes(l.W_.HELP)?t.filter(e=>e!==l.W_.HELP):t}static getConfig(e,t){return e.includes(l.W_.MEMORY)?{color:t?.colors.brand??"cyan",figure:"#"}:e.includes(l.W_.BASH)?{color:t?.colors.bashMode??"magenta",figure:"!"}:{color:t?.colors.secondary??"grey",figure:">"}}static onlyIncludeDefault(e){return 0===this.filterNonInputModeStates(e).length}static includeDefault(e){return!e.includes(l.W_.MEMORY)&&!e.includes(l.W_.BASH)}static onlyIncludeMemory(e){let t=this.filterNonInputModeStates(e);return 1===t.length&&t[0]===l.W_.MEMORY}static onlyIncludeBash(e){let t=this.filterNonInputModeStates(e);return 1===t.length&&t[0]===l.W_.BASH}static isFileOrComandOrHelpMenuActive(e,t,r){return this.includeDefault(t)&&(this.hasFileContext(e,r)||this.hasCommandContext(e,r)||!e&&t.includes(l.W_.HELP))}static hasFileContext(e,t){let r=t??e.length;for(let t=r-1;t>=0;t--){let n=e[t];if("@"===n){let n=t>0?e[t-1]:" ";if(/\s/.test(n))return!e.substring(t+1,r).includes(" ");break}if(/\s/.test(n))break}return!1}static hasCommandContext(e,t){if(!e.trimStart().startsWith("/"))return!1;if(i.some(t=>e.startsWith(t)))return!0;let r=t??e.length,n=e.slice(0,r),o=e.slice(r);return!n.substring(n.indexOf("/")+1).includes(" ")&&(!(o.length>0)||" "===o[0])}static shouldShowMenu(e,t){return this.hasFileContext(e,t)||this.hasCommandContext(e,t)}static isCommandOrFileMenuContextActive(e,t,r){return this.includeDefault(t)&&this.shouldShowMenu(e,r)}};r(79896),r(70857),r(16928),r(89634),r(88415),r(80661),(n=o||(o={})).EMPTY_PATH="emptyPath",n.PATH_NOT_FOUND="pathNotFound",n.NOT_A_DIRECTORY="notADirectory",n.SUCCESS="success",n.ALREADY_IN_WORKING_DIRECTORY="alreadyInWorkingDirectory",r(46382);var c=r(14274)},14274(e,t,r){r.d(t,{L6:()=>ensureWindowVisible,hE:()=>resolveInitialSelection,oy:()=>moveSelection});var n=r(57975);function findIndexByValue(e,t){return t.findIndex(t=>t.value===e||"object"==typeof t.value&&(0,n.isDeepStrictEqual)(t.value,e))}function findFirstEnabledIndex(e,t){if(0===t.length)return 0;let r=Math.min(Math.max(e,0),t.length-1);for(let e=r;e<t.length;e++)if(!t[e]?.disabled)return e;for(let e=0;e<r;e++)if(!t[e]?.disabled)return e;return r}function resolveInitialSelection(e,t,r){if(0===e.length)return 0;if(void 0!==r){let t=findIndexByValue(r,e);if(-1!==t)return findFirstEnabledIndex(t,e)}return findFirstEnabledIndex(Math.min(Math.max(t,0),e.length-1),e)}function moveSelection(e,t,r,n){if(0===e.length)return 0;if("up"===r){if(0===t){if(n)return 0;let t=e.length-1;for(;t>=0&&e[t]?.disabled;)t--;return t>=0?t:0}let r=t-1;for(;r>=0&&e[r]?.disabled;)r--;return r>=0?r:t}{if(t===e.length-1){if(n)return t;let r=0;for(;r<e.length&&e[r]?.disabled;)r++;return r<e.length?r:e.length-1}let r=t+1;for(;r<e.length&&e[r]?.disabled;)r++;return r<e.length?r:t}}function ensureWindowVisible(e,t,r,n){if(r<=0||0===n)return 0;let o=Math.max(0,n-r);return e<t?Math.max(0,Math.min(e,o)):e>t+r-1?Math.max(0,Math.min(e-(r-1),o)):t}},46382(e,t,r){r.d(t,{MN:()=>countRunningBackgroundShells,ap:()=>formatTokenCount});var n=r(89634),o=r(41319);function isRunningBackgroundShell(e){return e.toolName!==n.L3b.WORKFLOW&&!e.isTeamMember&&e.status===o.e1.RUNNING}function countRunningBackgroundShells(e){return e.filter(isRunningBackgroundShell).length}function formatTokenCount(e){return e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(1)}k`:e.toString()}},53900(e,t,r){r.d(t,{T_:()=>c,Dm:()=>n});let n=Symbol("WorkflowManager"),o=Symbol("WorkflowSourceResolver"),a=Symbol("WorkflowParser"),l=Symbol("WorkflowCompiler"),i=Symbol("WorkflowRunner"),s=Symbol("WorkflowSubagentSpawner"),c=Symbol("WorkflowProgressEmitter"),u=Symbol("WorkflowRegistry"),d=Symbol("WorkflowJournalFactory"),m=Symbol("WorkflowCacheKeyHasher"),f=Symbol("WorkflowBudgetFactory"),h=Symbol("WorkflowRecordWriter"),p=Symbol("SubagentExecutionFactory");let WorkflowError=class WorkflowError extends Error{constructor(e,t){super(e),this.name=this.constructor.name,t?.cause!==void 0&&(this.cause=t.cause)}};let WorkflowSourceError=class WorkflowSourceError extends WorkflowError{constructor(e,t){super(t),this.reason=e,this.errorCode=1}};let WorkflowParseError=class WorkflowParseError extends WorkflowError{constructor(e,t){super(e),this.loc=t,this.errorCode=2}};let WorkflowCompileError=class WorkflowCompileError extends WorkflowError{constructor(e,t){super(e,t),this.errorCode=3}};let WorkflowDeterminismError=class WorkflowDeterminismError extends WorkflowError{constructor(e){super(`Workflow script must be deterministic; found ${e.length} forbidden call(s): `+e.map(e=>`${e.pattern} at ${e.line}:${e.column}`).join(", ")),this.violations=e,this.errorCode=4}};let WorkflowAbortedError=class WorkflowAbortedError extends WorkflowError{constructor(e){super(`Workflow aborted: ${e}`),this.reason=e,this.errorCode=5}};let WorkflowAgentCapError=class WorkflowAgentCapError extends WorkflowError{constructor(e){super(`Workflow exceeded the per-run agent cap (${e}). Set a budget on the run to bound work, or break the task into smaller workflows.`),this.cap=e,this.errorCode=6}};let WorkflowBudgetExceededError=class WorkflowBudgetExceededError extends WorkflowError{constructor(e,t,r){super(`Workflow budget exhausted: total=${e}, spent=${t}, next call needs >= ${r} tokens.`),this.total=e,this.spent=t,this.remainingNeeded=r,this.errorCode=7}};let WorkflowSandboxError=class WorkflowSandboxError extends WorkflowError{constructor(e,t){super(e,t),this.errorCode=8}};let WorkflowParallelExhaustedError=class WorkflowParallelExhaustedError extends WorkflowError{constructor(e,t){super(`parallel(): all ${e} subtasks failed. Pass { allowAllFailures: true } to opt out. First few errors: ${t.slice(0,3).join(" | ")||"(no detail)"}`),this.total=e,this.errors=t,this.errorCode=9}};var g,E,w,y,b,x,T,k,S,v,C,_,A,M,I,O,P=r(70857);let WorkflowConcurrencyConstants=class WorkflowConcurrencyConstants{static{this.MAX_AGENT_CONCURRENCY=Math.floor(Math.min(16,Math.max(2,(()=>{try{return(0,P.cpus)().length||1}catch{return 1}})()-2)))}static{this.MAX_BATCH_SIZE=50}static{this.MAX_AGENTS_PER_RUN=1e3}static{this.SCRIPT_SYNC_TIMEOUT_MS=3e4}static{this.DEFAULT_STALL_MS=18e4}static{this.PROGRESS_DEBOUNCE_MS=16}static{this.MAX_INLINE_SCRIPT_BYTES=524288}};let Semaphore=class Semaphore{constructor(e){if(this.capacity=e,this.waiters=[],!Number.isInteger(e)||e<=0)throw Error(`Semaphore capacity must be a positive integer, got ${e}`);this.available=e}get availableSlots(){return this.available}get queueLength(){return this.waiters.length}tryAcquire(){return this.available>0&&(this.available--,!0)}async acquire(){return this.available>0?(this.available--,this.makeReleaseOnce()):new Promise(e=>{this.waiters.push(()=>e(this.makeReleaseOnce()))})}drain(){for(;this.waiters.length>0;){let e=this.waiters.shift();this.available++,e()}}makeReleaseOnce(){let e=!1;return()=>{if(e)return;e=!0;let t=this.waiters.shift();t?t():this.available++}}};var R=r(88523);let D=class{static{g=this}static{this.PRELUDE_VERSION=1}build(e=0){let t=Number.isFinite(e)?Math.floor(e):0;return`
|
|
23
|
+
> Using system default application.`);else{let e=r instanceof Error?r.message:String(r);(0,y.J0)().finalizeCommandExecution(T,`Failed to open memory file: ${e}`)}}}r({onAfterRender:()=>{x()}})},[T.id,r,x,O]),B=(0,i.useCallback)(t=>{e?$(t):L(t.value)},[e,L,$]);return((0,a.useInput)((t,r)=>{w.Om.ESCAPE(r)&&e&&(0,y.J0)().finalizeCommandExecution(T)}),e)?s().createElement(a.Box,{marginBottom:3,padding:1,flexDirection:"column",borderStyle:"round",borderColor:A},s().createElement(a.Box,{marginBottom:1},s().createElement(a.Text,{color:A},"Memory Management")),s().createElement(g.SelectInput,{itemComponent:CommandItemComponent,items:R,onSelect:B}),s().createElement(a.Box,{marginTop:1},s().createElement(a.Text,{color:t.colors.secondary},"Select a file or directory to manage your memories."))):s().createElement(a.Box,{marginBottom:3,padding:1,flexDirection:"column",borderStyle:"round",borderColor:A},s().createElement(a.Box,{marginBottom:1},s().createElement(a.Text,{color:A},"Where should this memory be saved?")),s().createElement(g.SelectInput,{itemComponent:ItemComponent,items:D,onSelect:B}),s().createElement(a.Box,{marginTop:1},s().createElement(a.Text,{color:t.colors.secondary},'Example project memory: "Run lint with the following command after major edits: npm run lint"')))},ItemComponent=e=>{let{label:t,filePath:r,isSelected:n,maxLabelLength:o}=e,{theme:l}=(0,w.DP)();return s().createElement(a.Box,{gap:4},s().createElement(a.Box,{width:o,flexShrink:0},s().createElement(a.Text,{color:n?l.colors.brand:void 0},t)),s().createElement(a.Box,null,s().createElement(a.Text,{dimColor:!0,color:n?l.colors.brand:void 0},"Saved in ",r)))},CommandItemComponent=e=>{let{label:t,description:r,isSelected:n,maxLabelLength:o}=e,{theme:l}=(0,w.DP)();return s().createElement(a.Box,{gap:4},s().createElement(a.Box,{width:o,flexShrink:0},s().createElement(a.Text,{color:n?l.colors.brand:void 0},t)),s().createElement(a.Box,null,s().createElement(a.Text,{dimColor:!0,color:n?l.colors.brand:void 0},r)))}},36529(e,t,r){r.d(t,{Sk:()=>formatMultitaskHintText,WH:()=>resolveMultitaskLiveCount});var n=r(39295);function permissionComposeSuffix(e,t){switch(e){case n.ZC.BypassPermissions:case n.ZC.FullAccess:return"bypass";case n.ZC.AcceptEdits:return"accept edits";case n.ZC.Auto:return"auto mode";case n.ZC.Delegate:return"delegate";case n.ZC.DontAsk:return"don't ask";case n.ZC.Plan:{let e=permissionComposeSuffix(t);return e?`plan + ${e}`:"plan"}default:return""}}function permissionHintPrefix(e){switch(e){case n.ZC.Plan:return"\u23F8 ";case n.ZC.Delegate:return"\u21E2 ";case n.ZC.Default:case void 0:return"";default:return"\u23F5\u23F5 "}}function resolveMultitaskLiveCount(e,t=0){return e>0?e:Math.max(0,t)}function formatMultitaskHintText(e,t,r,o=0){let a=o>0?` \xb7 ${o} live`:"";if(e===n.ZC.Default)return`multitask on${a} (/multitask to exit)`;let l=permissionComposeSuffix(e,t);return`${permissionHintPrefix(e)}multitask + ${l}${a} (${r} to cycle)`}},65852(e,t,r){var n,o,a,l,i,s,c,u,d,m,f,h,p,g,E,w,y,b,x,T,k,S,v,C,_,A,M,I,O=r(81998);r(20804);var P=r(93509),R=r(64225),D=r(53052),L=r(36988),$=r(55425);r(71070),r(25177),r(14274),r(59658);var B=r(40838),N=r(88523),W=r(67662);r(91278),r(62909),r(67465),r(52412);var F=r(39295);r(11369),r(91192),r(5100);var j=r(65366),U=r.n(j),H=r(89072),G=r(35861);r(17430);var V=r(29134),K=r(69449),J=r(16928),q=r.n(J),Y=r(85577),X=r.n(Y),z=r(33732),Z=r(96213),Q=r(39931);let GoalActiveIndicator=()=>{let{theme:e}=(0,L.DP)(),{session:t}=(0,D.Lg)(),r=(0,z.FE)(t.meta?.activeGoal);if(!r)return null;let n=!0===r.paused,o=formatElapsed(Math.max(0,("number"==typeof r.pausedAt?r.pausedAt:Date.now())-r.createdAt));return X().createElement(R.Box,null,X().createElement(R.Text,{color:e.colors.secondary},n?`\u{229A} /goal paused (${o})`:`\u{229A} /goal active (${o})`))};function formatElapsed(e){let t=Math.max(1,Math.floor(e/1e3));if(t<60)return`${t}s`;let r=Math.floor(t/60),n=t%60;if(r<60)return 0===n?`${r}m`:`${r}m ${n}s`;let o=Math.floor(r/60),a=r%60;return 0===a?`${o}h`:`${o}h ${a}m`}(n=E||(E={})).MCP_CONNECTED="mcp_connected",n.IDE_CONNECTED="ide_connected",n.PLUGIN_CONNECTED="plugin_connected",n.DEBUG_MODE="debug_mode",n.THINKING_MODE="thinking_mode",n.CONTEXT_REMIND="context_remind",n.IDE_SELECTION_REMIND="ide_selection_remind";let InputStatusBox=()=>{let{isMenuActive:e}=(0,L.EH)(),{state:t}=(0,D.R7)(),r=(0,D.i9)().headerData,n=r?.currentMainAgent,o=r?.currentMainAgentName,a=r?.currentMainAgentCustom,[l,i]=(0,Y.useState)([]),s=(0,$.lH)(),{session:c}=(0,D.Lg)(),{alwaysThinkingEnabled:u,shouldShowThinkingStatus:d}=(0,L.Ng)(t.states),[m,f]=(0,Y.useState)({errorCount:0,totalCount:0}),[h,p]=(0,Y.useState)(void 0),[g,w]=(0,Y.useState)(!0),[y,b]=(0,Y.useState)(null),[,x]=(0,Y.useState)(0),T=!!(0,z.FE)(c.meta?.activeGoal);(0,Y.useEffect)(()=>{if(!T)return;let e=setInterval(()=>x(e=>(e+1)%1e6),1e3);return()=>clearInterval(e)},[T]);let k=(0,Y.useCallback)((e,t,r)=>{i(r=>{let n=r.includes(e);return"show"!==t||n?"hide"===t&&n?r.filter(t=>t!==e):r:[...r,e]}),"show"===t&&r&&setTimeout(()=>{i(t=>t.filter(t=>t!==e))},r)},[]);(0,Y.useEffect)(()=>{d?k(E.THINKING_MODE,"show",5e3):k(E.THINKING_MODE,"hide")},[d,u,k]),(0,Y.useEffect)(()=>{k(E.DEBUG_MODE,s.isDebugEnabled()?"show":"hide")},[s,k]),(0,Y.useEffect)(()=>{let updateTokenUsageThresholds=async()=>{try{let e=await (0,$._E)().calculateTokenTokenUsageThresholds(c);p(e),e&&"info"!==e.usageLevel?k(E.CONTEXT_REMIND,"show"):k(E.CONTEXT_REMIND,"hide")}catch(e){(0,$.Rm)().debug("Failed to calculate token usage thresholds:",e),p(void 0),k(E.CONTEXT_REMIND,"hide")}};updateTokenUsageThresholds();let e=c.inputSubject.subscribe(e=>{e&&updateTokenUsageThresholds()});return()=>e.unsubscribe()},[c.id,k]),(0,Y.useEffect)(()=>{(async()=>{let e=await (0,$.o0)().list(),t=e.filter(e=>e.error);f({errorCount:t.length,totalCount:e.length}),t.length>0&&k(E.MCP_CONNECTED,"show",5e3)})()},[k]),(0,Y.useEffect)(()=>{(async()=>{try{let e=await (0,$.fq)().get("showTokensCounter");w(!1!==e)}catch(e){w(!0)}})()},[]),(0,Y.useEffect)(()=>{let e=(0,$.QI)().selectionChangedSubject.subscribe(e=>{e?(b(e),e.selection||e.text?k(E.IDE_SELECTION_REMIND,"show"):k(E.IDE_SELECTION_REMIND,"hide")):(b(null),k(E.IDE_SELECTION_REMIND,"hide"))});return()=>e.unsubscribe()},[k]);let S=(0,Y.useMemo)(()=>m,[m.errorCount,m.totalCount]),v=(0,Y.useMemo)(()=>l.includes(E.MCP_CONNECTED)?X().createElement(et,{errorCount:S.errorCount}):l.includes(E.THINKING_MODE)?X().createElement(er,{enabled:u}):null,[l,S,u]);return e?X().createElement(X().Fragment,null):X().createElement(R.Box,{flexDirection:"column",alignItems:"flex-end"},n?X().createElement(ee,{label:n,agentName:o,custom:a}):null,l.includes(E.IDE_SELECTION_REMIND)&&X().createElement(el,{selectionInfo:y}),l.includes(E.CONTEXT_REMIND)&&h&&X().createElement(en,{info:h}),v,l.includes(E.DEBUG_MODE)&&X().createElement(eo,null),T&&X().createElement(GoalActiveIndicator,null),g&&X().createElement(ea,null))},ee=X().memo(({label:e,agentName:t,custom:r})=>{let{theme:n}=(0,L.DP)();return X().createElement(R.Box,{width:16,justifyContent:"flex-end"},X().createElement(R.Text,{color:n.colors[(0,O.g8)(t,r)],wrap:"truncate-end"},e))}),et=X().memo(({errorCount:e})=>{let{theme:t}=(0,L.DP)();return X().createElement(R.Text,{color:t.colors.error},e," MCP server failed. ",X().createElement(R.Text,{dimColor:!0,color:t.colors.error},"/mcp for info"))}),er=X().memo(({enabled:e})=>{let{theme:t}=(0,L.DP)(),r=`${Z.b.optionKeyLabel()}T to toggle`;return X().createElement(R.Text,{color:e?t.colors.thinking:t.colors.disabled},e?"Thinking on":"Thinking off"," ",X().createElement(R.Text,{dimColor:!0},"(",r,")"))}),en=X().memo(({info:e})=>{let{theme:t}=(0,L.DP)(),r=(0,Y.useMemo)(()=>{switch(e.usageLevel){case"emergency":return t.colors.error;case"critical":case"warning":return t.colors.warning;default:return t.colors.secondary}},[e.usageLevel,t]);return X().createElement(R.Text,{color:r},"Context tokens: ",Math.round(100*(e.usage||0)),"%")}),eo=X().memo(()=>{let{theme:e}=(0,L.DP)();return X().createElement(R.Text,{color:e.colors.debug},"Debug mode")}),ea=X().memo(()=>{let{theme:e}=(0,L.DP)(),{totalTokens:t}=(0,L.mM)();return X().createElement(R.Text,{color:e.colors.disabled},(0,Q.Bh)(t)," tokens")}),el=X().memo(({selectionInfo:e})=>{let{theme:t}=(0,L.DP)(),r=(0,Y.useMemo)(()=>{if(!e)return null;let{selection:t,filePath:r}=e;if(t&&t.start&&t.end){let e=t.end.line-t.start.line+1;if(t.start.character!==t.end.character||e>1)return`${e} ${1===e?"line":"lines"} selected`}return r?q().basename(r):null},[e]);return r?X().createElement(R.Text,{color:t.colors.secondary},X().createElement(R.Text,{dimColor:!0},"\u29C9 "),X().createElement(R.Text,null,r)):X().createElement(X().Fragment,null)});r(39457);var ei=r(43634),es=r(97542),ec=r(48436),eu=r(36210),ed=r(67292),em=r(20252),ef=r(92735),eh=r(6004),ep=r.n(eh),eg=r(52379),eE=r(68593),ew=r(11223),ey=r(99455),eb=r(34559),ex=r(46382),eT=r(73369);let StatusIcon=({status:e})=>X().createElement(X().Fragment,null,"completed"===e?"\u2612":"\u2610"),ek=X().memo(({isExpanded:e=!1})=>{let{theme:t}=(0,L.DP)(),r=(0,eg.useContextSelector)(D.rZ,e=>e.todos),n=(0,eg.useContextSelector)(D.rZ,e=>e.currentTodoIndex)??0;if(!r?.length)return null;if(!e){let e=r[n+1];return e?X().createElement(R.Text,{color:t.colors.secondary},"Next: ",e.content):null}return X().createElement(R.Box,{flexDirection:"column"},r.map((e,r)=>{let o=r===n,a=o?e.activeForm:e.content;return X().createElement(R.Box,{key:`todo-${r}-${e.content}`},X().createElement(R.Text,{color:o?t.colors.brand:void 0},X().createElement(StatusIcon,{status:e.status})," ",a))}))});function isForwardedSubAgentInput(e){return e?._fromSubAgent===!0||e?._detachedUsageOnly===!0}function countActive(e){return e.filter(e=>(0,eT.Gx)(e.status)).length}let eS=X().memo(()=>{(0,Y.useSyncExternalStore)(R.subscribeTick,R.getSnapshot);let e=(0,Y.useRef)(Date.now()),t=Math.max(0,Math.floor((Date.now()-e.current)/1e3)),{session:r}=(0,D.Lg)();return(0,Y.useEffect)(()=>{let t=r.inputSubject.subscribe(t=>{isForwardedSubAgentInput(t)||(e.current=Date.now())});return()=>t.unsubscribe()},[r.id]),X().createElement(R.Text,null,t,"s")}),ev=X().memo(({children:e})=>{let{session:t}=(0,D.Lg)(),r=(0,Y.useRef)(Date.now()),[n,o]=(0,Y.useState)(0);return(0,Y.useEffect)(()=>{let e=t.inputSubject.subscribe(e=>{isForwardedSubAgentInput(e)||(r.current=Date.now(),o(0))});return()=>e.unsubscribe()},[t.id]),(0,Y.useEffect)(()=>{let e=setInterval(()=>{let e=Math.max(0,Math.floor((Date.now()-r.current)/1e3));o(t=>t===e?t:e)},1e3);return()=>clearInterval(e)},[]),X().createElement(X().Fragment,null,e(n))}),eC=X().memo(({inputTokens:e,outputTokens:t,isToolExecution:r})=>{let n=(0,Y.useMemo)(()=>{let n=t>0?"\u2193":"\u2191",o=t>0?t:e;return r?(0,Q.Bh)(o):`${n} ${(0,Q.Bh)(o)}`},[e,t,r]);return X().createElement(X().Fragment,null,r&&X().createElement(X().Fragment,null,X().createElement(P.rm,null),X().createElement(R.Text,null," ")),n," tokens")}),e_=X().memo(()=>{let[e,t]=(0,Y.useState)("");(0,Y.useEffect)(()=>{(async()=>{try{let e=await (0,$.EG)().getRelevantTip();e?(t(e.content),await (0,$.qN)().recordTipShown(e.id)):t("")}catch(e){t("")}})()},[]);let{theme:r}=(0,L.DP)();return e?X().createElement(P.v7,null,X().createElement(P.h1,{text:`Tip: ${e}`,offset:4,color:r.colors.secondary})):null}),eA=X().memo(({displayTokens:e,isToolExecution:t,hasTodos:r,isExpanded:n,isLastMessageToolCall:o,phaseLabel:a})=>{let{theme:l}=(0,L.DP)(),i=(0,Y.useMemo)(()=>X().createElement(R.Text,null,X().createElement(R.Text,{bold:!0},"esc")," to interrupt"),[]);return X().createElement(R.Box,{flexShrink:0,marginLeft:1},X().createElement(R.Text,{wrap:"truncate-end",color:l.colors.secondary},"(",o?i:X().createElement(ev,null,o=>X().createElement(X().Fragment,null,X().createElement(eS,null),a&&X().createElement(X().Fragment,null," \xb7 ",a),(e.input>0||e.output>0)&&X().createElement(X().Fragment,null," \xb7 ",X().createElement(eC,{inputTokens:e.input,outputTokens:e.output,isToolExecution:t})),r&&X().createElement(X().Fragment,null," \xb7 ",i," \xb7 ",X().createElement(R.Text,{bold:!0},"ctrl+t")," to ",n?"hide":"show"," todos"),!r&&X().createElement(X().Fragment,null," \xb7 ",i),o>=60&&" \xb7 Task running for a while")),")"))}),eM=X().memo(({task:e})=>{let{theme:t}=(0,L.DP)(),r="running"===e.status||"pending"===e.status,n="completed"===e.status,o="failed"===e.status,a="cancelled"===e.status||"killed"===e.status,l=(0,Y.useMemo)(()=>{if(!r)return null;try{let t=N.ContainerUtil.get(ei.AgentTaskManager).getTask(e.id);return t?.getSubAgentSession()??null}catch{return null}},[e.id,r]),{turnInputTokens:i,turnOutputTokens:s}=(0,L.mM)(l),[c,u]=(0,Y.useState)(void 0);(0,Y.useEffect)(()=>{if(!l?.progressSubject)return void u(void 0);let e=l.progressSubject.subscribe(e=>{u(e)});return()=>e.unsubscribe()},[l]);let d=(0,ew.w)(l),m=(0,ew.W)(d),f=(0,Y.useMemo)(()=>{let t=[];if(r||t.push(e.status),r&&m&&t.push(m),r){let e=s>0,r=e?s:i;r>0&&t.push(`${e?"\u2193":"\u2191"} ${(0,Q.Bh)(r)}`)}return null!=e.toolCallCount&&e.toolCallCount>0&&t.push(`${e.toolCallCount} tool use${e.toolCallCount>1?"s":""}`),null!=e.lastContextWindow&&e.lastContextWindow>0&&t.push(`${(0,ex.ap)(e.lastContextWindow)} tokens`),t.filter(Boolean).join(" \xb7 ")},[r,m,i,s,e.lastContextWindow,e.toolCallCount,e.status]),h=(0,Y.useMemo)(()=>{if(c)return f?`${c} \xb7 ${f}`:c;let t=e.agentType?`${e.agentType} \xb7 ${e.description||"Agent"}`:e.description||"Agent";return f?`${t} \xb7 ${f}`:t},[c,e.agentType,e.description,f]),p=(0,Y.useMemo)(()=>n?t.colors.success:o?t.colors.error:t.colors.secondary,[n,o,t.colors.success,t.colors.error,t.colors.secondary]);return X().createElement(R.Box,{key:e.id},r?X().createElement(R.Text,{color:t.colors.info},X().createElement(R.Spinner,{type:"dots"})):X().createElement(R.Text,{color:p},n?"\u2713":o?"\u2717":a?"\u2014":"\u25CB"),X().createElement(R.Text,null," "),X().createElement(P.Os,{text:h,offset:6,color:r?void 0:t.colors.secondary}))}),eI=X().memo(()=>{let e=(0,L.Z)();return(0,eT.yf)(countActive(e))||0===e.length?null:X().createElement(P.v7,null,X().createElement(R.Box,{flexDirection:"column"},e.map(e=>X().createElement(eM,{key:e.id,task:e}))))}),eO=X().memo(({teammate:e,focusedMemberName:t,isViewingMember:r})=>{let{theme:n}=(0,L.DP)(),o="running"===e.status||"pending"===e.status,a="completed"===e.status,l="failed"===e.status,i="cancelled"===e.status||"killed"===e.status,s=e.color||n.colors.info,c=r&&e.name===t,u=(0,Y.useMemo)(()=>{if(!o||!e.taskId)return null;try{let t=N.ContainerUtil.get(ei.AgentTaskManager).getTask(e.taskId);return t?.getSubAgentSession()??null}catch{return null}},[e.taskId,o]),{turnInputTokens:d,turnOutputTokens:m}=(0,L.mM)(u),f=(0,ew.w)(u),h=(0,ew.W)(f),p=(0,Y.useMemo)(()=>{let t=[];if(o||t.push(e.status),o&&h&&t.push(h),o){let e=m>0,r=e?m:d;r>0&&t.push(`${e?"\u2193":"\u2191"} ${(0,Q.Bh)(r)}`)}return null!=e.toolCallCount&&e.toolCallCount>0&&t.push(`${e.toolCallCount} tool use${e.toolCallCount>1?"s":""}`),null!=e.lastContextWindow&&e.lastContextWindow>0&&t.push(`${(0,ex.ap)(e.lastContextWindow)} tokens`),t.filter(Boolean).join(" \xb7 ")},[o,h,d,m,e.lastContextWindow,e.toolCallCount,e.status]),g=(0,Y.useMemo)(()=>{let t=e.description||"";return p?t?`${t} \xb7 ${p}`:p:t},[e.description,p]),E=(0,Y.useMemo)(()=>6+ep()(`@${e.name}`)+1,[e.name]),w=(0,Y.useMemo)(()=>a?n.colors.success:l?n.colors.error:n.colors.secondary,[a,l,n.colors.success,n.colors.error,n.colors.secondary]);return X().createElement(R.Box,{key:e.name},o?X().createElement(R.Text,{color:s},X().createElement(R.Spinner,{type:"dots"})):X().createElement(R.Text,{color:w},a?"\u2713":l?"\u2717":i?"\u2014":"\u25CB"),X().createElement(R.Text,null," "),X().createElement(R.Text,{bold:!0,color:c||o?s:n.colors.secondary},"@",e.name),X().createElement(R.Text,null," "),X().createElement(P.Os,{text:g,offset:E,color:o?void 0:n.colors.secondary}))}),eP=X().memo(()=>{let e=(0,L.QC)(),{focusedMemberName:t,isViewingMember:r}=(0,Y.useContext)(eE.Jp),n=e.some(e=>"running"===e.status||"pending"===e.status);return 0===e.length||!n&&!r||(0,eT.yf)(countActive(e))?null:X().createElement(P.v7,null,X().createElement(R.Box,{flexDirection:"column"},e.map(e=>X().createElement(eO,{key:e.name,teammate:e,focusedMemberName:t??void 0,isViewingMember:r}))))}),eR=X().memo(({isExpanded:e})=>{let{theme:t}=(0,L.DP)(),{session:r}=(0,D.Lg)(),n=(0,eg.useContextSelector)(D.rZ,e=>e.todos),o=(0,eg.useContextSelector)(D.rZ,e=>e.currentTodoIndex),{isViewingMember:a,focusedSession:l,focusedMemberName:i,focusedColor:s}=(0,Y.useContext)(eE.Jp),c=a&&l?l:r,{turnInputTokens:u,turnOutputTokens:d}=(0,L.mM)(a?l:void 0),m=(0,ew.w)(a?l:void 0),f=(0,ew.W)(m),[h,p]=(0,Y.useState)(!1),[g,E]=(0,Y.useState)({input:0,output:0}),[w,y]=(0,Y.useState)(void 0),b=(0,Y.useRef)(void 0),x=(0,eb.U)(c),T=x===W.OT.TOOL_EXECUTING,k=x===W.OT.PENDING,S=(0,L.VK)(!0);(0,Y.useEffect)(()=>{let e=c.progressSubject?.subscribe(e=>{y(e)});return()=>e?.unsubscribe()},[c.id]);let v=(0,Y.useMemo)(()=>{let e=ed.oV.getActiveAgentOnlyHistory(c.history);if(0===e.length)return!1;let t=e[e.length-1];return"function_call"===t.type&&(t.name===B.L3b.BASH||t.name===B.L3b.POWERSHELL)},[c.history.length,x]),C=(0,Y.useCallback)(()=>{c.abortController.abort()},[c.id]);(0,Y.useEffect)(()=>{!k&&h&&(C(),p(!1))},[h,k,C]);let _=(0,Y.useRef)({input:u,output:d});_.current={input:u,output:d},(0,Y.useEffect)(()=>{b.current||(E({input:u,output:d}),b.current=setTimeout(()=>{b.current=void 0,E({input:_.current.input,output:_.current.output})},100))},[u,d]),(0,Y.useEffect)(()=>()=>{b.current&&(clearTimeout(b.current),b.current=void 0)},[]);let A=(0,Y.useMemo)(()=>w||(n?.length?n[o??0].activeForm??S:S),[w,S,n?.length,o]);return X().createElement(R.Box,{flexDirection:"column"},X().createElement(R.Box,{marginTop:1},X().createElement(R.Box,null,a&&i?X().createElement(R.Text,{color:s||t.colors.brand,wrap:"truncate-end"},X().createElement(R.Spinner,{type:"star"}),` @${i} \xb7 ${A}\u{2026}`):X().createElement(R.Text,{color:t.colors.brand,wrap:"truncate-end"},X().createElement(R.Spinner,{type:"star"}),` ${A}\u{2026}`)),X().createElement(eA,{displayTokens:g,isToolExecution:T,hasTodos:!!n?.length,isExpanded:e,isLastMessageToolCall:v,phaseLabel:f})),n?.length&&(e||n[(o??0)+1])?X().createElement(P.v7,null,X().createElement(ek,{isExpanded:e})):X().createElement(e_,null),X().createElement(eP,null),X().createElement(eI,null))}),eD=X().memo(()=>{let{theme:e}=(0,L.DP)(),t=(0,L.QC)(),r=t.filter(e=>"running"===e.status||"pending"===e.status);return 0===r.length?null:X().createElement(R.Box,{flexDirection:"column",marginTop:1},X().createElement(R.Box,null,X().createElement(R.Text,{color:e.colors.brand,wrap:"truncate-end"},X().createElement(R.Spinner,{type:"star"}),` Waiting for ${r.length} teammate${r.length>1?"s":""}\u{2026}`),X().createElement(R.Box,{flexShrink:0,marginLeft:1},X().createElement(R.Text,{wrap:"truncate-end",color:e.colors.secondary},"(",X().createElement(R.Text,{bold:!0},"esc")," to interrupt)"))),(0,eT.yf)(countActive(t))?null:X().createElement(eP,null))});X().memo(()=>{let{session:e}=(0,D.Lg)(),[t,r]=(0,Y.useState)(!1),[n,o]=(0,Y.useState)(!1),[a,l]=(0,Y.useState)(e.progressSubject?.value),i=(0,eb.U)(e),s=(0,ey.X)(e),c=i===W.OT.PENDING,u=(0,L.QC)(),d=(0,L.tQ)(),{focusedMemberName:m,focusedTaskId:f,isViewingMember:h,focusedSession:p,focusedStatus:g,focusedIsBusy:E,resetFocus:w}=(0,Y.useContext)(eE.Jp),y=(0,eb.U)(p??void 0),b=i===W.OT.CANCELLING,x=y===W.OT.CANCELLING,T=s&&!b,k=!!(a&&!s),S=(0,Y.useMemo)(()=>u.some(e=>"running"===e.status||"pending"===e.status),[u]),v=(0,Y.useMemo)(()=>d.some(e=>"running"===e.status||"pending"===e.status),[d]),C=(0,L.Z)(),_=(0,Y.useMemo)(()=>C.some(e=>"running"===e.status||"pending"===e.status),[C]),A=h&&"active"===g&&E&&!x;(0,Y.useEffect)(()=>{let t=e.progressSubject?.subscribe(e=>{l(e)});return()=>t?.unsubscribe()},[e.id]);let M=(0,Y.useCallback)(()=>{let t=em.G.resolveTeamLeadTeamName(e);t&&(e.teamCancelled=!0,(0,B.OEJ)(e)),e.abortController.abort();try{let r=(0,B.lhW)();if(t||r.size>0){let n=N.ContainerUtil.get(ef.Logger);n.info("User abort from team-lead view, pausing active team members"),(async()=>{t&&await (0,ec.Np)(t,e.id);let o=(t?r.getAll().filter(e=>e.teamName===t):r.getAll()).filter(e=>e.isActive());await Promise.all(o.map(e=>t&&"in-process"===e.info.backendType?e.stopCurrentTurn("lead-cancelled").catch(t=>{n.warn?.(`stopCurrentTurn failed for ${e.info.name}: ${t}`)}):t?e.forceKill({keepWakeable:!1}):e.forceKill()))})().catch(e=>n.warn?.(`Failed to pause team members after lead abort: ${e}`))}}catch{}},[e.id]),I=(0,Y.useCallback)(()=>{try{let t=(0,eu.CB)(e)??[],r=N.ContainerUtil.get(ei.AgentTaskManager);for(let e of t)r.getTask(e.id)?.kill()}catch{}},[e]),O=(0,Y.useCallback)(()=>{if(!h||!m)return!1;if(f)try{return N.ContainerUtil.get(ei.AgentTaskManager).getTask(f)?.kill(),!0}catch{return!1}try{let e=N.ContainerUtil.get(es.DQ).getTeam()?.name;if(!e)return!1;let t=(0,B.lhW)().get(m,e);if(t&&t.isActive()){let e=t.getAgentTask();if(e)return e.kill(),!0}}catch(e){try{N.ContainerUtil.get(ef.Logger).error("abortFocusedMember error:",e)}catch{}}return!1},[h,m,f]);(0,Y.useEffect)(()=>{!c&&n&&(M(),o(!1))},[n,c,M]);let P=T||S||v||_||A||k;return((0,R.useInput)((e,t)=>{if(P)if(L.Om.ESCAPE(t)){if(h)return f?void w():void O();if(v&&!T)return void I();c?o(!0):M()}else t.ctrl&&"t"===e&&r(e=>!e)},{isActive:P}),A)?X().createElement(eR,{isExpanded:t}):h?(0,eT.yf)(countActive(u))?null:X().createElement(R.Box,{flexDirection:"column",marginTop:1},X().createElement(eP,null)):!v||_||k?T||k||_?X().createElement(eR,{isExpanded:t}):S?X().createElement(eD,null):null:null});var eL=r(42163);let e$={running:"\u25CF",pending:"\u25CB",completed:"\u2713",failed:"\u2717",cancelled:"\u2014",killed:"\u2014"},eB=X().memo(()=>{let{theme:e}=(0,L.DP)(),t=(0,eL.Q)(),{suggestions:r}=(0,D.p3)(),{focusedMemberName:n,isMemberSelecting:o}=(0,eE.az)(),a=(0,H.vi)();if(0===t.length||r.length>0&&!o||a)return null;let l=t.filter(e=>(0,eT.Gx)(e.status));if(0===l.length)return null;let renderMember=t=>{let r="running"===t.status||"pending"===t.status,a=o&&n===t.name,l=e$[t.status]||"?",i=t.color||e.colors.info;return a?X().createElement(R.Box,{key:t.name,paddingX:1,backgroundColor:i},X().createElement(R.Text,{color:e.colors.background,bold:!0},"@",t.name," ",l)):X().createElement(R.Text,{key:t.name},X().createElement(R.Text,{color:i,bold:r},"@",t.name),X().createElement(R.Text,{color:r?i:e.colors.secondary}," ",l))};if(o){let t=null===n;return X().createElement(R.Box,{gap:1,alignItems:"center"},X().createElement(R.Box,{paddingX:1,backgroundColor:t?e.colors.secondary:void 0},X().createElement(R.Text,{color:t?"black":e.colors.secondary,bold:t},"@main")),X().createElement(R.Text,{color:e.colors.secondary},"\xb7"),l.map(renderMember))}return X().createElement(R.Box,{gap:1},l.map(renderMember))}),eN="#C084FC";X().memo(()=>{let{session:e}=(0,D.Lg)();return e.meta?.workflowEffortLevel!=="ultracode"?null:X().createElement(R.Box,{justifyContent:"flex-end"},X().createElement(R.Text,{color:eN},"ultracode"),X().createElement(R.Text,{color:eN}," -"))}).displayName="WorkflowEffortBadge",U().memo(()=>{let{visibility:e}=(0,D.LV)();if(e[D.Gk.INPUT_BOTTOM])return U().createElement(U().Fragment,null,U().createElement(P.vB,null),U().createElement(R.Box,{alignItems:"flex-start",justifyContent:"space-between"},U().createElement(V.T,null),U().createElement(InputStatusBox,null)),U().createElement(G.y,null),U().createElement(eB,null),U().createElement(H.K8,null),U().createElement(K.Z,null))});var eW=r(35061);r(12119),r(40198),r(43840);var eF=r(88415);r(66936),r(79896),r(2203),r(32894),r(79145),r(28806),(o=w||(w={})).CLIP="clipboard",o.FILE="file",r(89799),r(50814),r(76760),r(7386),r(79620),(a=y||(y={})).MODE="mode",a.OVERRIDES="overrides",a.CONFIG="config",r(80661),(l=b||(b={})).SESSION="session",l.LOCAL="local",l.CANCEL="cancel",r(82284),r(8095);var ej=r(92309);(i=x||(x={})).ALLOW="Allow",i.ASK="Ask",i.DENY="Deny",i.WORKSPACE="Workspace",(s=T||(T={})).MAIN="main",s.ADD_RULE="add_rule",s.DELETE_CONFIRM="delete_confirm",s.ADD_DIRECTORY="add_directory",s.REMOVE_DIRECTORY_CONFIRM="remove_directory_confirm",s.SAVE_LOCATION="save_location",(c=k||(k={})).MAIN="main",c.ADD="add",c.DELETE_CONFIRM="delete_confirm",c.SAVE_LOCATION="save_location",(u=S||(S={})).ALLOW_ADD="allow-add",u.ALLOW_DELETE_CONFIRM="allow-delete-confirm",u.ALLOW_SAVE_LOCATION="allow-save-location",u.ASK_ADD="ask-add",u.ASK_DELETE_CONFIRM="ask-delete-confirm",u.ASK_SAVE_LOCATION="ask-save-location",u.DENY_ADD="deny-add",u.DENY_DELETE_CONFIRM="deny-delete-confirm",u.DENY_SAVE_LOCATION="deny-save-location",u.WORKSPACE_ADD="workspace-add",u.WORKSPACE_DELETE_CONFIRM="workspace-delete-confirm",u.WORKSPACE_SAVE_LOCATION="workspace-save-location",eF.P.getHomeDir(),ej.I7.PROJECT_LOCAL,ej.I7.PROJECT,ej.I7.USER,x.ALLOW,x.ASK,x.DENY,x.WORKSPACE,r(49726),r(19222);var eU=r(93034);eF.P.getHomeDir(),eU.v9.PROJECT,eU.FK.PROJECT,eU.v9.USER,eU.QY.TERMINAL_TITLE_GENERATOR,eF.P.getHomeDir(),(d=v||(v={})).MAIN="main",d.CREATE="create",d.AGENT_SCOPE="agent_scope",d.DELETE_CONFIRM="delete_confirm",d.CREATING="creating",d.CREATED_SUCCESS="created_success",d.AGENT_ACTIONS="agent_actions",d.VIEW_AGENT="view_agent",d.BUILTIN_ACTIONS="builtin_actions",d.BUILTIN_EDIT_MODEL="builtin_edit_model";var eH=r(62279),eG=r(99844);r(98447),eG.sw.PENDING,eH.Ay.ellipsis,eG.sw.CONNECTED,eH.Ay.tick,eG.sw.CONNECTING,eH.Ay.ellipsis,eG.sw.DISCONNECTED,eH.Ay.cross,eG.sw.UNAUTHORIZED,eH.Ay.warning,eG.sw.AUTHORIZED,eH.Ay.tick,eG.sw.AUTHORIZING,eH.Ay.ellipsis,eG.sw.PENDING_APPROVAL,eH.Ay.warning,eG.RG.USER,eG.RG.PROJECT,eG.DZ,eG.RG.LOCAL,eG.RG.DYNAMIC,eG.RG.PLUGIN,eG.RG.INTERNAL,eG.RG.SDK,eG.RG.USER,eG.RG.PROJECT,eG.RG.LOCAL,eG.RG.DYNAMIC,eG.RG.PLUGIN,eG.RG.INTERNAL,eG.RG.SDK,r(33600),(m=C||(C={})).RUNNING="running",m.DONE="completed",m.KILLED="killed",m.FAILED="failed",(f=_||(_={})).LIST="list",f.DETAIL="detail",(h=A||(A={})).KILL="x",h.UP="k",h.DOWN="j",r(36023),r(41319),r(38433),r(6854);var eV=r(13866),eK=r(20131);eK.mb.PRE_TOOL_USE,eK.mb.PRE_TOOL_USE,eK.de[eK.mb.PRE_TOOL_USE],eK.mb.POST_TOOL_USE,eK.mb.POST_TOOL_USE,eK.de[eK.mb.POST_TOOL_USE],eK.mb.NOTIFICATION,eK.mb.NOTIFICATION,eK.de[eK.mb.NOTIFICATION],eK.mb.USER_PROMPT_SUBMIT,eK.mb.USER_PROMPT_SUBMIT,eK.de[eK.mb.USER_PROMPT_SUBMIT],eK.mb.SESSION_START,eK.mb.SESSION_START,eK.de[eK.mb.SESSION_START],eK.mb.SESSION_END,eK.mb.SESSION_END,eK.de[eK.mb.SESSION_END],eK.mb.STOP,eK.mb.STOP,eK.de[eK.mb.STOP],eK.mb.SUBAGENT_STOP,eK.mb.SUBAGENT_STOP,eK.de[eK.mb.SUBAGENT_STOP],eK.mb.PRE_COMPACT,eK.mb.PRE_COMPACT,eK.de[eK.mb.PRE_COMPACT],eK.mb.PRE_TOOL_USE,eK.mb.POST_TOOL_USE,eK.mb.SESSION_START,eK.mb.SESSION_END,eK.mb.PRE_COMPACT,eK.mb.NOTIFICATION,eK.mb.USER_PROMPT_SUBMIT,eK.mb.STOP,eK.mb.SUBAGENT_STOP,eK.mb.WORKTREE_CREATE,eK.mb.WORKTREE_REMOVE,eK.mb.POST_TOOL_USE_FAILURE,eK.mb.SUBAGENT_START,eK.mb.STOP_FAILURE,eK.mb.POST_COMPACT,eK.mb.CONFIG_CHANGE,eK.mb.INSTRUCTIONS_LOADED,eK.mb.PERMISSION_REQUEST,eK.mb.PERMISSION_DENIED,eK.mb.ELICITATION,eK.mb.ELICITATION_RESULT,eK.mb.TASK_CREATED,eK.mb.TASK_COMPLETED,eK.mb.TEAMMATE_IDLE,eK.mb.SETUP,eK.mb.FILE_CHANGED,eK.mb.CWD_CHANGED,eK.mb.FINAL_STOP,F.I7.USER,F.I7.PROJECT,F.I7.PROJECT_LOCAL,F.I7.CLI,eW.me,eK.mb.PRE_TOOL_USE,eK.mb.POST_TOOL_USE,eK.mb.NOTIFICATION,eK.mb.USER_PROMPT_SUBMIT,eK.mb.SESSION_START,eK.mb.SESSION_END,eK.mb.STOP,eK.mb.SUBAGENT_STOP,eK.mb.PRE_COMPACT,eK.mb.WORKTREE_CREATE,eK.mb.WORKTREE_REMOVE,eK.mb.POST_TOOL_USE_FAILURE,eK.mb.SUBAGENT_START,eK.mb.STOP_FAILURE,eK.mb.POST_COMPACT,eK.mb.CONFIG_CHANGE,eK.mb.INSTRUCTIONS_LOADED,eK.mb.PERMISSION_REQUEST,eK.mb.PERMISSION_DENIED,eK.mb.ELICITATION,eK.mb.ELICITATION_RESULT,eK.mb.TASK_CREATED,eK.mb.TASK_COMPLETED,eK.mb.TEAMMATE_IDLE,eK.mb.SETUP,eK.mb.FILE_CHANGED,eK.mb.CWD_CHANGED,eK.mb.FINAL_STOP,ej.I7.PROJECT,eV.KR.toLowerCase(),ej.I7.USER,eV.KR.toLowerCase(),F.I7.USER,F.I7.PROJECT,F.I7.PROJECT_LOCAL,F.I7.CLI,r(72251),r(86976),r(79803),r(94302),r(36898),r(64298);var eJ=r(70857);r(73381),r(36600);let eq=eF.P.getHomeDir();eq.startsWith((0,eJ.homedir)())&&eq.slice((0,eJ.homedir)().length),r(60016),r(80896),r(61082),r(31349),(p=M||(M={})).LIST="list",p.DETAIL="detail",p.AGENT="agent",(g=I||(I={})).STOP="x",g.SAVE="s",g.PAUSE="p",g.RESTART="r",g.SCROLL_DOWN="j",g.SCROLL_UP="k";let eY=["low","medium","high","xhigh","max"];[...eY],[...eY]},41319(e,t,r){var n,o,a,l,i,s;r.d(t,{e1:()=>n}),(l=n||(n={})).PENDING="pending",l.RUNNING="running",l.COMPLETED="completed",l.FAILED="failed",l.CANCELLED="cancelled",l.KILLED="killed",(i=o||(o={})).LIST="list",i.DETAIL="detail",(s=a||(a={})).KILL="x",s.UP="k",s.DOWN="j"},37906(e,t,r){r.d(t,{Y:()=>useFooterTaskCounts});var n=r(88523),o=r(53900),a=r(85577),l=r(53052),i=r(55425),s=r(46382);function safeGet(e){try{return n.ContainerUtil.get(e)}catch{return}}let c={shellCount:0,workflowCount:0};function useFooterTaskCounts(){let{session:e}=(0,l.Lg)(),t=(0,a.useMemo)(()=>(0,i._5)(),[]),r=(0,a.useMemo)(()=>safeGet(o.Dm),[]),n=(0,a.useMemo)(()=>safeGet(o.T_),[]),[u,d]=(0,a.useState)(c);return(0,a.useEffect)(()=>{let o,refresh=()=>{let n=(0,s.MN)(t.getBackgroundTasks()),o=0;if(r)try{o=r.listActive().filter(t=>!t.sessionId||t.sessionId===e.id).length}catch{o=0}d(e=>e.shellCount===n&&e.workflowCount===o?e:{shellCount:n,workflowCount:o})};refresh();let a=e.backgroundTaskSubject.subscribe(refresh);if(n){let e=n.on;"function"==typeof e&&(o=e.call(n,()=>refresh()))}let l=setInterval(refresh,2e3);return()=>{a.unsubscribe();try{o?.()}catch{}clearInterval(l)}},[e.id,t,r,n]),u}},60966(e,t,r){r.d(t,{VH:()=>getCharType});r(94859),r(39931);let n=/[\u4e00-\u9fff\u3400-\u4dbf\uf900-\ufaff]/,o=/[\u3000-\u303f\uff00-\uffef\u2000-\u206f]/,a=/[!-/:-@[-`{-~]/;function getCharType(e){return/\s/.test(e)?"whitespace":n.test(e)?"cjk":/\w/.test(e)?"word":o.test(e)||a.test(e)?"punctuation":"other"}},5100(e,t,r){r.d(t,{HP:()=>a,sl:()=>buildPanelPath});var n,o,a,l,i=r(30296),s=r.n(i),c=r(23544),u=r(14372),d=r(90396),m=r(37905),f=r(53052),h=r(55425),p=r(61741),g=r(88523),E=r(47944),w=r(62614),y=r(43164),b=r(28429);let x={suppressExitMessage:!1,active:!1};async function attachJobInPlace(e){let t,r=(0,u.Iwb)(e.id,(0,u.b7z)()),n=g.ContainerUtil.get(u.LJA),o=await n.prepareAttach(e);if(!o.ok){o.message&&(process.env[u.QTX]=o.message);return}let a=g.ContainerUtil.get(u.BYr),l=new Date().toISOString();await a.patchQuiet(e.id,{attachedAt:l}).catch(()=>{}),x.suppressExitMessage=!0,x.active=!0;let i=b.r.current;(0,u.Rfb)();try{i?.unmount(),await i?.waitUntilExit().catch(()=>{})}catch{}await new Promise(e=>setTimeout(e,0)),(0,u.Rfb)(),(0,u.s4u)();try{t=await n.attachPrepared(o)}catch(r){await a.patchQuiet(e.id,{attachedAt:null}).catch(()=>{}),t={outcome:"error",message:r instanceof Error?r.message:String(r)}}"error"===t.outcome&&t.message&&process.stderr.write(`${t.message}
|
|
24
|
+
`),returnToAgentView(r,t.code??+("error"===t.outcome))}function returnToAgentView(e,t,r){r&&(process.env[u.QTX]=r),(0,u.Hfd)(e),remountAgentView().catch(()=>(0,E.ZQ)(t))}async function remountAgentView(){(0,u.Rfb)(),(0,u.s4u)(),x.active=!1,x.suppressExitMessage=!1;let e=g.ContainerUtil.get(y.e),t=g.ContainerUtil.get(w.CliViewToken),{AgentViewScreen:n}=await Promise.resolve().then(r.bind(r,61741));e.setInitialRender({component:n,props:remountAgentViewScreenProps({onExit:e=>exitToReturnJob(e),onAttach:e=>{attachJobInPlace(e).catch(()=>{})}})}),await t.render("command_render",{viewName:w.CLI_VIEW_NAME,metadata:{initialPage:"agents"}})}function exitToReturnJob(e){if("exit"===e)return void(0,E.ZQ)(0);let t=(0,u.b7z)();t&&(0,u.LjG)((0,h.rb)(),(0,h.a)()).then(e=>{let r=findReturnJob(e,t);r&&attachJobInPlace(r).catch(()=>{})}).catch(()=>{})}function remountAgentViewScreenProps(e){return{onExit:e.onExit,onAttach:e.onAttach}}function findReturnJob(e,t){return e.find(e=>{if(e.id===t)return!0;if(t.startsWith(m.hV)){let r=t.slice(m.hV.length);return e.state.sessionId===r}return!1})}s().memo(()=>{let e=(0,c.useContextSelector)(f.aO,e=>e.back),t=(0,i.useCallback)(()=>{let t=(0,u.b7z)();if(!t||t.startsWith("in-process:")){for(let e of(0,m.Kx)())(0,d.KC)(e.state.sessionId).catch(()=>{}),(0,m.Ol)(e.id);(0,u.dAW)(),e();return}(0,u.LjG)((0,h.rb)(),(0,h.a)()).then(r=>{let n=r.find(e=>e.id===t);n?attachJobInPlace(n).catch(()=>e()):e()}).catch(()=>e())},[e]),r=(0,i.useCallback)(t=>{if("in-process"===t.origin){(0,d.KC)(t.state.sessionId).catch(()=>{}),(0,m.Ol)(t.id),(0,u.dAW)(),e();return}attachJobInPlace(t).catch(()=>{})},[e]),[n]=(0,i.useState)(()=>process.env[u.igH]??"agent-view");return s().createElement(p.AgentViewScreen,{onExit:t,onAttach:r,key:n})}).displayName="AgentViewPanel",r(65852),(n=a||(a={})).ASK="ask",n.EXTERNAL_EDITOR="external-editor",n.MCP="mcp",n.MCP_DETAILS="mcp-details",n.MCP_TOOLS="mcp-tools",n.MCP_TOOLS_DETAILS="mcp-tools-details",n.MCP_RECONNECT="mcp-reconnect",n.MCP_OAUTH_CONNECT="mcp-oauth-connect",n.MCP_OAUTH_AUTHENTICATE="mcp-oauth-authenticate",n.MCP_OAUTH_REFRESH="mcp-oauth-refresh",n.MCP_OAUTH_DISCONNECT="mcp-oauth-disconnect",n.MODEL="model",n.MODE="mode",n.OUTPUT_STYLE="output-style",n.MEMORY="memory",n.PLUGIN="plugin",n.PLUGIN_ADD_MARKETPLACE="plugin-add-marketplace",n.PLUGIN_MANAGE_MARKETPLACES="plugin-manage-marketplaces",n.PLUGIN_MARKETPLACE_DETAILS="plugin-marketplace-details",n.PLUGIN_BROWSE_SELECT_MARKETPLACE="plugin-browse-select-marketplace",n.PLUGIN_BROWSE_SELECT_PLUGIN="plugin-browse-select-plugin",n.PLUGIN_BROWSE_INSTALL="plugin-browse-install",n.PLUGIN_MANAGE_SELECT_MARKETPLACE="plugin-manage-select-marketplace",n.PLUGIN_MANAGE_LIST="plugin-manage-list",n.PLUGIN_MANAGE_DETAILS="plugin-manage-details",n.PLUGIN_DETAILS="plugin-details",n.PLUGIN_INSTALLED_DETAILS="plugin-installed-details",n.TOOL_APPROVAL="tool-approval",n.INPUT="input",n.DOCTOR="doctor",n.STATUS="status",n.CONFIG="config",n.SANDBOX="sandbox",n.SKILLS="skills",n.RESUME="resume",n.REWIND="rewind",n.EXPORT="export",n.FEEDBACK="feedback",n.UPGRADE="upgrade",n.PERMISSIONS="permissions",n.TERMINAL_SETUP="terminal-setup",n.TASKS="tasks",n.THINKING="thinking",n.HOOKS="hooks",n.HOOKS_EVENT="hooks-event",n.HOOKS_MATCHER="hooks-matcher",n.HOOKS_CONFIG="hooks-config",n.HOOKS_COMMAND="hooks-command",n.HOOKS_SAVE="hooks-save",n.HOOKS_DELETE_CONFIRM="hooks-delete-confirm",n.ERROR="error",n.STATS="stats",n.STATS_OVERVIEW="stats-overview",n.STATS_MODELS="stats-models",n.REMOTE_CONTROL="remote-control",n.BTW="btw",n.WORKFLOWS="workflows",n.WORKFLOWS_SAVE="workflows-save",n.EFFORT="effort",n.AGENT_VIEW="agent-view",(o=l||(l={})).DISCOVER="discover",o.INSTALLED="installed",o.MARKETPLACES="marketplaces",o.ERRORS="errors";let buildPanelPath=(e,t)=>{let r=`/chat/panel/${e}`;if(t&&Object.keys(t).length>0){let e=new URLSearchParams(t);r+=`?${e.toString()}`}return r}},55425(e,t,r){r.d(t,{LI:()=>channelManager,fq:()=>settingsManager,_E:()=>tokenUsageThresholdsService,qN:()=>userStateManager,H4:()=>worktreeService,_5:()=>toolManager,rb:()=>jobStore,QI:()=>ideService,Rm:()=>consoleManager,xQ:()=>daemonProcessManager,J:()=>terminalNotificationService,id:()=>sessionManager,zb:()=>agentManager,J0:()=>commandManager,EG:()=>tipsManager,o0:()=>mcpManager,a:()=>sessionRegistry,Yf:()=>authenticationManager,PK:()=>pasteStreamService,Uy:()=>planStorageService,_F:()=>customAgentManager,vV:()=>diffWordService,lH:()=>debugService,jO:()=>productManager});var n,o,a,l=r(88523),i=r(86482),s=r(9151);r(79814);var c=r(49726);r(43634);var u=r(14372);r(64236),r(7386),r(68474);var d=r(9773);r(58115);var m=r(73381),f=r(45611),h=r(98866),p=r(40580);r(24526),r(35717),r(33732);var g=r(56913);r(19472);var E=r(99844);r(79620),r(43164);var w=r(76247);r(59206);let y=Symbol("PasteStreamService");var b=r(32894),x=r(26210);let T=Symbol("CoalesceManager"),k=class{constructor(){this.chunks=[],this.windowsPlatform=l.isWindows}setWindowsPlatformForTesting(e){this.windowsPlatform=e}add(e){return this.chunks.length>0?(this.chunks.push(e),{ready:!1}):!this.windowsPlatform||e.length<=1?{ready:!1,buffer:e}:(this.chunks.push(e),{ready:!1})}flush(){let e=this.chunks.join("");return this.reset(),e}reset(){this.chunks=[]}isCoalescing(){return this.chunks.length>0}dispose(){this.reset()}};k=function(e,t,r,n){var o,a=arguments.length,l=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)l=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(o=e[i])&&(l=(a<3?o(l):a>3?o(t,r,l):o(t,r))||l);return a>3&&l&&Object.defineProperty(t,r,l),l}([(0,l.Component)(T)],k);let S=Symbol("CompressionManager"),v=class{constructor(){this.compressedTexts=new Map,this.nextId=1}compress(e,t){let r=this.nextId++;return this.compressedTexts.set(r,e),{id:r,placeholder:`[Pasted text #${r}: ${t} lines]`}}expand(e){let t=e;return this.compressedTexts.forEach((e,r)=>{let n=`[Pasted text #${r}: `;for(;t.includes(n);){let r=t.indexOf(n),o=t.indexOf("]",r);if(-1===o)break;t=t.slice(0,r)+e+t.slice(o+1)}}),t}remove(e){this.compressedTexts.delete(e)}clear(){this.compressedTexts.clear()}hasAny(){return this.compressedTexts.size>0}};v=function(e,t,r,n){var o,a=arguments.length,l=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)l=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(o=e[i])&&(l=(a<3?o(l):a>3?o(t,r,l):o(t,r))||l);return a>3&&l&&Object.defineProperty(t,r,l),l}([(0,l.Component)(S)],v);var C=r(79896),_=r(70857),A=r(16928);let M=Symbol("ImageManager"),I=class{constructor(){this.images=new Map,this.nextId=1}register(e,t){let r=this.nextId++;return this.images.set(r,{path:e,isTemp:t}),{id:r,placeholder:`[Image #${r}]`}}registerFromDataUrl(e,t){let r=t.match(/^data:([^;,]+)[;,]/),n=r?r[1]:"image/png",o=n.split("/")[1]?.split("+")[0]||"png",a=t.split(",")[1]??"",l=A.join(_.tmpdir(),`edited-image-${Date.now()}-${Math.random().toString(36).slice(2,8)}.${o}`);return(C.writeFileSync(l,Buffer.from(a,"base64")),e<=0||this.images.has(e))?this.register(l,!0):(this.images.set(e,{path:l,isTemp:!0}),e>=this.nextId&&(this.nextId=e+1),{id:e,placeholder:`[Image #${e}]`})}get(e){return this.images.get(e)}async cleanup(e){let t=this.images.get(e);if(t?.isTemp)try{b.E.cleanupTempFile(t.path)}catch(e){console.error("Failed to cleanup image:",e)}this.images.delete(e)}async cleanupAll(){for(let[,e]of this.images)if(e.isTemp)try{b.E.cleanupTempFile(e.path)}catch(e){console.error("Failed to cleanup image:",e)}this.images.clear()}};I=function(e,t,r,n){var o,a=arguments.length,l=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)l=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(o=e[i])&&(l=(a<3?o(l):a>3?o(t,r,l):o(t,r))||l);return a>3&&l&&Object.defineProperty(t,r,l),l}([(0,l.Component)(M)],I);var paste_stream_service_decorate=function(e,t,r,n){var o,a=arguments.length,l=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)l=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(o=e[i])&&(l=(a<3?o(l):a>3?o(t,r,l):o(t,r))||l);return a>3&&l&&Object.defineProperty(t,r,l),l},__metadata=function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};let O=class{async processPastedContent(e){try{if(0===e.length){let e=await b.E.readImage();if(e?.tempFilePath){let{placeholder:t}=this.imageManager.register(e.tempFilePath,!0);return t}return}let t=x.YF.computePastedLineCount(e);if(e.length>1024||t>3)return this.compressionManager.compress(e,t).placeholder;return e}catch(e){console.error("Failed to process pasted content",e)}}async processPaste(e){try{return await this.processPastedContent(e)??e}catch(t){return e}}async processPasteWithImageDetection(e,t=!0){try{if(0===e.length&&t){let e=await b.E.readImage({retry:!0});if(e?.tempFilePath){let{placeholder:t}=this.imageManager.register(e.tempFilePath,!0);return t}}return await this.processPaste(e)}catch(t){return console.error("Failed to process paste with image detection",t),e}}expand(e){return this.compressionManager.expand(e)}cleanupRemoved(e,t){let r=this.extractCompressedPlaceholders(e),n=this.extractCompressedPlaceholders(t);for(let e of r)n.has(e)||this.compressionManager.remove(e);let o=this.extractImagePlaceholders(e),a=this.extractImagePlaceholders(t);for(let e of o)a.has(e)||this.imageManager.cleanup(e)}async cleanup(){await this.imageManager.cleanupAll(),this.compressionManager.clear(),this.coalesceManager.dispose()}extractImageMap(e){let t,r=new Map,n=/\[Image #(\d+)\]/g;for(;null!==(t=n.exec(e));){let e=parseInt(t[1],10),n=this.imageManager.get(e);n&&r.set(e,{path:n.path,format:n.path.split(".").pop()||""})}return r}rehydrateEditedImages(e){let t=new Map;for(let{placeholderId:r,dataUrl:n}of e)try{let{id:e}=this.imageManager.registerFromDataUrl(r,n);t.set(r,e)}catch(e){console.error("Failed to rehydrate edited image",e)}return t}addToCoalesce(e){return this.coalesceManager.add(e)}flushCoalesce(){return this.coalesceManager.flush()}isCoalescing(){return this.coalesceManager.isCoalescing()}hasCompressedPastes(){return this.compressionManager.hasAny()}removeAllCompressedPlaceholders(e){return e.replace(/\[Pasted text #\d+: \d+ lines\]/g,"")}removeAllImagePlaceholders(e){return e.replace(/\[Image #\d+\]/g,"")}async clearAll(){await this.imageManager.cleanupAll(),this.compressionManager.clear()}extractCompressedPlaceholders(e){let t,r=new Set,n=/\[Pasted text #(\d+):/g;for(;null!==(t=n.exec(e));)r.add(parseInt(t[1],10));return r}extractImagePlaceholders(e){let t,r=new Set,n=/\[Image #(\d+)\]/g;for(;null!==(t=n.exec(e));)r.add(parseInt(t[1],10));return r}};paste_stream_service_decorate([(0,l.Autowired)(S),__metadata("design:type","function"==typeof(n=void 0!==v&&v)?n:Object)],O.prototype,"compressionManager",void 0),paste_stream_service_decorate([(0,l.Autowired)(M),__metadata("design:type","function"==typeof(o=void 0!==I&&I)?o:Object)],O.prototype,"imageManager",void 0),paste_stream_service_decorate([(0,l.Autowired)(T),__metadata("design:type","function"==typeof(a=void 0!==k&&k)?a:Object)],O.prototype,"coalesceManager",void 0),O=paste_stream_service_decorate([(0,l.Component)(y)],O),r(36916),r(86976),r(48278),r(59626),r(68609),r(47385);var P=r(67662),R=r(39295);r(93944),r(63295),r(67819),r(69386),r(3797),r(36898);var D=r(80271),L=r(93447),$=r(40838);let B=Symbol("UndoRedoService"),N=class{constructor(){this.undoStack=[],this.throttleTimer=null,this.lastValue="",this.isRestoringSnapshot=!1,this.THROTTLE_MS=1e3,this.MAX_STACK_SIZE=10}onValueChange(e,t){if(this.isRestoringSnapshot){this.isRestoringSnapshot=!1;return}if(e!==this.lastValue){if(this.throttleTimer){this.lastValue=e;return}this.undoStack.push({value:this.lastValue,cursorOffset:t}),this.undoStack.length>this.MAX_STACK_SIZE&&this.undoStack.shift(),this.lastValue=e,this.throttleTimer=setTimeout(()=>{this.throttleTimer=null},this.THROTTLE_MS)}}undo(){let e=this.undoStack.pop()??null;return e&&(this.isRestoringSnapshot=!0,this.lastValue=e.value),e}canUndo(){return this.undoStack.length>0}clear(){this.undoStack=[],this.throttleTimer&&(clearTimeout(this.throttleTimer),this.throttleTimer=null),this.isRestoringSnapshot=!1}};N=function(e,t,r,n){var o,a=arguments.length,l=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)l=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(o=e[i])&&(l=(a<3?o(l):a>3?o(t,r,l):o(t,r))||l);return a>3&&l&&Object.defineProperty(t,r,l),l}([(0,l.Component)(B)],N),r(12119),r(35421);var W=r(23701),F=r(74096);let sessionManager=()=>l.ContainerUtil.get(P.Cv),authenticationManager=()=>l.ContainerUtil.get(i.AuthenticationManager),customAgentManager=()=>l.ContainerUtil.get(c.cQH),pasteStreamService=()=>l.ContainerUtil.get(y),agentManager=()=>l.ContainerUtil.get(c.VaB),settingsManager=()=>l.ContainerUtil.get(R.Vr),commandManager=()=>l.ContainerUtil.get(m.FQ),mcpManager=()=>l.ContainerUtil.get(E.i9),productManager=()=>l.ContainerUtil.get(s.ProductManager),jobStore=()=>l.ContainerUtil.get(u.BYr),terminalNotificationService=()=>l.ContainerUtil.get(w.V_),sessionRegistry=()=>l.ContainerUtil.get(h.MN),daemonProcessManager=()=>l.ContainerUtil.get(h.DH),tokenUsageThresholdsService=()=>l.ContainerUtil.get(L.e),toolManager=()=>l.ContainerUtil.get($.cK4),tipsManager=()=>l.ContainerUtil.get(D.oi),userStateManager=()=>l.ContainerUtil.get(D.kq),debugService=()=>l.ContainerUtil.get(p.VB),consoleManager=()=>l.ContainerUtil.get(f.dy),ideService=()=>l.ContainerUtil.get(g.OL),diffWordService=()=>l.ContainerUtil.get(F.JA),planStorageService=()=>l.ContainerUtil.get($.EGu),channelManager=()=>l.ContainerUtil.get(d.fI),worktreeService=()=>l.ContainerUtil.get(W.pZ)},39931(e,t,r){r.d(t,{Bh:()=>o.B,wF:()=>getWordRange});var n=r(60966),o=r(84265);let isSameWordGroup=(e,t)=>{let r=(0,n.VH)(e),o=(0,n.VH)(t);return"cjk"!==r&&"cjk"!==o&&"whitespace"!==r&&"whitespace"!==o&&r===o},getWordRange=(e,t,r)=>{let o=t,a=t;if("forward"===r){if(a>=e.length)return{start:o,end:a};let t=(0,n.VH)(e[a]);if("cjk"===t)a++;else if("whitespace"===t){for(;a<e.length&&"whitespace"===(0,n.VH)(e[a]);)a++;return{start:o,end:a}}else for(;a<e.length&&(0,n.VH)(e[a])===t;)a++;for(;a<e.length&&"whitespace"===(0,n.VH)(e[a]);)a++}else if("end"===r){if(a>=e.length)return{start:o,end:a};let t=(0,n.VH)(e[a]);if("cjk"===t){for(a++;a<e.length&&"whitespace"===(0,n.VH)(e[a]);)a++;if(a<e.length&&"cjk"!==(0,n.VH)(e[a])){let t=(0,n.VH)(e[a]);for(;a+1<e.length&&(0,n.VH)(e[a+1])===t;)a++}}else if("whitespace"!==t){let t=a+1;if(t>=e.length||!isSameWordGroup(e[a],e[t])){for(a=t;a<e.length&&"whitespace"===(0,n.VH)(e[a]);)a++;if(a<e.length&&"cjk"!==(0,n.VH)(e[a])){let t=(0,n.VH)(e[a]);for(;a+1<e.length&&(0,n.VH)(e[a+1])===t;)a++}}else for(;a+1<e.length&&isSameWordGroup(e[a],e[a+1]);)a++}else{for(;a<e.length&&"whitespace"===(0,n.VH)(e[a]);)a++;if(a<e.length&&"cjk"!==(0,n.VH)(e[a])){let t=(0,n.VH)(e[a]);for(;a+1<e.length&&(0,n.VH)(e[a+1])===t;)a++}}a>=e.length&&e.length>0&&(a=e.length-1)}else{if(o<=0)return{start:0,end:a};for(o--;o>0&&"whitespace"===(0,n.VH)(e[o]);)o--;let t=(0,n.VH)(e[o]);if("cjk"===t);else if("whitespace"!==t)for(;o>0&&(0,n.VH)(e[o-1])===t;)o--}return{start:o,end:a}}},28806(e,t,r){r.d(t,{X$:()=>InputStateUtils,oy:()=>c.oy,L6:()=>c.L6,hE:()=>c.hE});var n,o,a=r(98447),l=r(62909);let i=[a.T.ADD_DIR],s={"?":l.W_.HELP,"!":l.W_.BASH,"#":l.W_.MEMORY};let InputStateUtils=class InputStateUtils{static filterNonInputModeStates(e){return e.filter(e=>e!==l.W_.VIM_INSERT_MODE&&e!==l.W_.REVERSE_SEARCH)}static resolve(e,t){return this.includeDefault(t)&&!t.includes(l.W_.HELP)&&e in s?[s[e]]:e&&t.includes(l.W_.HELP)?t.filter(e=>e!==l.W_.HELP):t}static getConfig(e,t){return e.includes(l.W_.MEMORY)?{color:t?.colors.brand??"cyan",figure:"#"}:e.includes(l.W_.BASH)?{color:t?.colors.bashMode??"magenta",figure:"!"}:{color:t?.colors.secondary??"grey",figure:">"}}static onlyIncludeDefault(e){return 0===this.filterNonInputModeStates(e).length}static includeDefault(e){return!e.includes(l.W_.MEMORY)&&!e.includes(l.W_.BASH)}static onlyIncludeMemory(e){let t=this.filterNonInputModeStates(e);return 1===t.length&&t[0]===l.W_.MEMORY}static onlyIncludeBash(e){let t=this.filterNonInputModeStates(e);return 1===t.length&&t[0]===l.W_.BASH}static isFileOrComandOrHelpMenuActive(e,t,r){return this.includeDefault(t)&&(this.hasFileContext(e,r)||this.hasCommandContext(e,r)||!e&&t.includes(l.W_.HELP))}static hasFileContext(e,t){let r=t??e.length;for(let t=r-1;t>=0;t--){let n=e[t];if("@"===n){let n=t>0?e[t-1]:" ";if(/\s/.test(n))return!e.substring(t+1,r).includes(" ");break}if(/\s/.test(n))break}return!1}static hasCommandContext(e,t){if(!e.trimStart().startsWith("/"))return!1;if(i.some(t=>e.startsWith(t)))return!0;let r=t??e.length,n=e.slice(0,r),o=e.slice(r);return!n.substring(n.indexOf("/")+1).includes(" ")&&(!(o.length>0)||" "===o[0])}static shouldShowMenu(e,t){return this.hasFileContext(e,t)||this.hasCommandContext(e,t)}static isCommandOrFileMenuContextActive(e,t,r){return this.includeDefault(t)&&this.shouldShowMenu(e,r)}};r(79896),r(70857),r(16928),r(40838),r(88415),r(80661),(n=o||(o={})).EMPTY_PATH="emptyPath",n.PATH_NOT_FOUND="pathNotFound",n.NOT_A_DIRECTORY="notADirectory",n.SUCCESS="success",n.ALREADY_IN_WORKING_DIRECTORY="alreadyInWorkingDirectory",r(46382);var c=r(14274)},14274(e,t,r){r.d(t,{L6:()=>ensureWindowVisible,hE:()=>resolveInitialSelection,oy:()=>moveSelection});var n=r(57975);function findIndexByValue(e,t){return t.findIndex(t=>t.value===e||"object"==typeof t.value&&(0,n.isDeepStrictEqual)(t.value,e))}function findFirstEnabledIndex(e,t){if(0===t.length)return 0;let r=Math.min(Math.max(e,0),t.length-1);for(let e=r;e<t.length;e++)if(!t[e]?.disabled)return e;for(let e=0;e<r;e++)if(!t[e]?.disabled)return e;return r}function resolveInitialSelection(e,t,r){if(0===e.length)return 0;if(void 0!==r){let t=findIndexByValue(r,e);if(-1!==t)return findFirstEnabledIndex(t,e)}return findFirstEnabledIndex(Math.min(Math.max(t,0),e.length-1),e)}function moveSelection(e,t,r,n){if(0===e.length)return 0;if("up"===r){if(0===t){if(n)return 0;let t=e.length-1;for(;t>=0&&e[t]?.disabled;)t--;return t>=0?t:0}let r=t-1;for(;r>=0&&e[r]?.disabled;)r--;return r>=0?r:t}{if(t===e.length-1){if(n)return t;let r=0;for(;r<e.length&&e[r]?.disabled;)r++;return r<e.length?r:e.length-1}let r=t+1;for(;r<e.length&&e[r]?.disabled;)r++;return r<e.length?r:t}}function ensureWindowVisible(e,t,r,n){if(r<=0||0===n)return 0;let o=Math.max(0,n-r);return e<t?Math.max(0,Math.min(e,o)):e>t+r-1?Math.max(0,Math.min(e-(r-1),o)):t}},46382(e,t,r){r.d(t,{MN:()=>countRunningBackgroundShells,ap:()=>formatTokenCount});var n=r(40838),o=r(41319);function isRunningBackgroundShell(e){return e.toolName!==n.L3b.WORKFLOW&&!e.isTeamMember&&e.status===o.e1.RUNNING}function countRunningBackgroundShells(e){return e.filter(isRunningBackgroundShell).length}function formatTokenCount(e){return e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(1)}k`:e.toString()}},53900(e,t,r){r.d(t,{T_:()=>c,Dm:()=>n});let n=Symbol("WorkflowManager"),o=Symbol("WorkflowSourceResolver"),a=Symbol("WorkflowParser"),l=Symbol("WorkflowCompiler"),i=Symbol("WorkflowRunner"),s=Symbol("WorkflowSubagentSpawner"),c=Symbol("WorkflowProgressEmitter"),u=Symbol("WorkflowRegistry"),d=Symbol("WorkflowJournalFactory"),m=Symbol("WorkflowCacheKeyHasher"),f=Symbol("WorkflowBudgetFactory"),h=Symbol("WorkflowRecordWriter"),p=Symbol("SubagentExecutionFactory");let WorkflowError=class WorkflowError extends Error{constructor(e,t){super(e),this.name=this.constructor.name,t?.cause!==void 0&&(this.cause=t.cause)}};let WorkflowSourceError=class WorkflowSourceError extends WorkflowError{constructor(e,t){super(t),this.reason=e,this.errorCode=1}};let WorkflowParseError=class WorkflowParseError extends WorkflowError{constructor(e,t){super(e),this.loc=t,this.errorCode=2}};let WorkflowCompileError=class WorkflowCompileError extends WorkflowError{constructor(e,t){super(e,t),this.errorCode=3}};let WorkflowDeterminismError=class WorkflowDeterminismError extends WorkflowError{constructor(e){super(`Workflow script must be deterministic; found ${e.length} forbidden call(s): `+e.map(e=>`${e.pattern} at ${e.line}:${e.column}`).join(", ")),this.violations=e,this.errorCode=4}};let WorkflowAbortedError=class WorkflowAbortedError extends WorkflowError{constructor(e){super(`Workflow aborted: ${e}`),this.reason=e,this.errorCode=5}};let WorkflowAgentCapError=class WorkflowAgentCapError extends WorkflowError{constructor(e){super(`Workflow exceeded the per-run agent cap (${e}). Set a budget on the run to bound work, or break the task into smaller workflows.`),this.cap=e,this.errorCode=6}};let WorkflowBudgetExceededError=class WorkflowBudgetExceededError extends WorkflowError{constructor(e,t,r){super(`Workflow budget exhausted: total=${e}, spent=${t}, next call needs >= ${r} tokens.`),this.total=e,this.spent=t,this.remainingNeeded=r,this.errorCode=7}};let WorkflowSandboxError=class WorkflowSandboxError extends WorkflowError{constructor(e,t){super(e,t),this.errorCode=8}};let WorkflowParallelExhaustedError=class WorkflowParallelExhaustedError extends WorkflowError{constructor(e,t){super(`parallel(): all ${e} subtasks failed. Pass { allowAllFailures: true } to opt out. First few errors: ${t.slice(0,3).join(" | ")||"(no detail)"}`),this.total=e,this.errors=t,this.errorCode=9}};var g,E,w,y,b,x,T,k,S,v,C,_,A,M,I,O,P=r(70857);let WorkflowConcurrencyConstants=class WorkflowConcurrencyConstants{static{this.MAX_AGENT_CONCURRENCY=Math.floor(Math.min(16,Math.max(2,(()=>{try{return(0,P.cpus)().length||1}catch{return 1}})()-2)))}static{this.MAX_BATCH_SIZE=50}static{this.MAX_AGENTS_PER_RUN=1e3}static{this.SCRIPT_SYNC_TIMEOUT_MS=3e4}static{this.DEFAULT_STALL_MS=18e4}static{this.PROGRESS_DEBOUNCE_MS=16}static{this.MAX_INLINE_SCRIPT_BYTES=524288}};let Semaphore=class Semaphore{constructor(e){if(this.capacity=e,this.waiters=[],!Number.isInteger(e)||e<=0)throw Error(`Semaphore capacity must be a positive integer, got ${e}`);this.available=e}get availableSlots(){return this.available}get queueLength(){return this.waiters.length}tryAcquire(){return this.available>0&&(this.available--,!0)}async acquire(){return this.available>0?(this.available--,this.makeReleaseOnce()):new Promise(e=>{this.waiters.push(()=>e(this.makeReleaseOnce()))})}drain(){for(;this.waiters.length>0;){let e=this.waiters.shift();this.available++,e()}}makeReleaseOnce(){let e=!1;return()=>{if(e)return;e=!0;let t=this.waiters.shift();t?t():this.available++}}};var R=r(88523);let D=class{static{g=this}static{this.PRELUDE_VERSION=1}build(e=0){let t=Number.isFinite(e)?Math.floor(e):0;return`
|
|
25
25
|
"use strict";
|
|
26
26
|
// --- workflow runtime prelude (v${g.PRELUDE_VERSION}) ---
|
|
27
27
|
(function () {
|
|
@@ -70,7 +70,7 @@ ${o}`)}catch(r){let e=!1;try{e=await h.i.openFile(t)}catch{e=!1}if(e)(0,y.J0)().
|
|
|
70
70
|
|
|
71
71
|
[truncated \xb7 ${t.length-r} bytes omitted]`}};function stripJsonFence(e){let t=e.trim();if(!t.startsWith("```")||!t.endsWith("```"))return e;let r=t.match(/^```([a-zA-Z0-9_+-]+)?/),n=r?r[0].length:3;return t.slice(n,t.length-3).trim()}function reflowJsonString(e){let t,r=e.trim();if(r.length<2)return e;let n=r[0];if("{"!==n&&"["!==n)return e;let o=findBalancedJsonEnd(r);if(o<0)return e;let a=r.slice(0,o+1),l=r.slice(o+1).trim();try{t=JSON.stringify(JSON.parse(a),null,2)}catch{return e}return l?`${t}
|
|
72
72
|
|
|
73
|
-
${l}`:t}function findBalancedJsonEnd(e){let t=0,r=!1,n=!1;for(let o=0;o<e.length;o++){let a=e[o];if(n){n=!1;continue}if(r){"\\"===a?n=!0:'"'===a&&(r=!1);continue}if('"'===a){r=!0;continue}if("{"===a||"["===a)t++;else if(("}"===a||"]"===a)&&0==--t)return o}return -1}function countLines(e){if(!e)return 0;let t=1;for(let r=0;r<e.length;r++)10===e.charCodeAt(r)&&t++;return 10===e.charCodeAt(e.length-1)&&t--,t}function safeStringify(e){try{return JSON.stringify(e,null,2)}catch{return String(e)}}function compactStringify(e){try{return JSON.stringify(e)}catch{return String(e)}}function isFatalWorkflowError(e){return e instanceof WorkflowBudgetExceededError||e instanceof WorkflowAgentCapError||e instanceof WorkflowAbortedError}let WorkflowCallDurability=class WorkflowCallDurability{constructor(e,t,r,n){this.hasher=e,this.budget=t,this.journal=r,this.resumeSnapshot=n,this.prevKey=""}beforeSpawn(e,t,r){let n=this.prevKey,o=this.hasher.next(n,e);this.prevKey=o;let a=this.resumeSnapshot?.results.get(o);if(a&&void 0===a.error)return{key:o,prevKey:n,cached:{value:a.result,finishedRecord:{endedAt:a.endedAt,...void 0!==a.tokens?{tokens:a.tokens}:{},...void 0!==a.sessionId?{sessionId:a.sessionId}:{},result:a.result},key:o}};let l=(e.maxTurns??1)*4e3;return this.budget.reserve(l),this.journal.record({type:"agent_started",runId:this.journal.runId,key:o,prevKey:n,...void 0!==t?{label:t}:{},...void 0!==r?{phase:r}:{},startedAt:Date.now()}),{key:o,prevKey:n}}afterSpawnSuccess(e,t){this.budget.deduct(t.tokens),this.journal.record({type:"agent_finished",runId:this.journal.runId,key:e,...void 0!==t.tokens?{tokens:t.tokens}:{},sessionId:t.sessionId,result:void 0!==t.structured?t.structured:t.text,endedAt:Date.now()})}afterSpawnFailure(e,t){this.journal.record({type:"agent_finished",runId:this.journal.runId,key:e,error:t?.message??String(t),endedAt:Date.now()})}markAgentInvalidated(e,t){this.journal.record({type:"agent_invalidated",runId:this.journal.runId,key:e,reason:t,at:Date.now()})}recordRunStarted(e,t){this.journal.record({type:"run_started",runId:this.journal.runId,name:e,contentHash:t,startedAt:Date.now()})}recordRunFinished(e,t,r){this.journal.record({type:"run_finished",runId:this.journal.runId,status:e,endedAt:Date.now(),...void 0!==t?{output:t}:{},...void 0!==r?{error:r}:{}})}async close(){try{await this.journal.close()}catch{}}};var workflow_orchestrator_decorate=function(e,t,r,n){var o,a=arguments.length,l=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)l=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(o=e[i])&&(l=(a<3?o(l):a>3?o(t,r,l):o(t,r))||l);return a>3&&l&&Object.defineProperty(t,r,l),l},workflow_orchestrator_metadata=function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};let W=class{async create(e,t,r){let n=await this.buildDurability(e);return new WorkflowExecution({spawner:this.spawner,emitter:this.emitter,request:e,...n?{durability:n}:{},...t?{nestedInvoker:t}:{},...r?{pauseGate:r}:{}})}async buildDurability(e){let t;if(!this.cacheKeyHasher||!this.journalFactory||!this.budgetFactory)return;let r=e.parentSessionId||"orphan";try{t=await this.journalFactory.create(r,e.runId)}catch{return}let n=this.budgetFactory.create(e.parsed.meta.budget),o=e.resumeFromRunId?await this.journalFactory.load(r,e.resumeFromRunId).catch(()=>void 0):void 0;return new WorkflowCallDurability(this.cacheKeyHasher,n,t,o)}};workflow_orchestrator_decorate([(0,R.Autowired)(s),workflow_orchestrator_metadata("design:type",Object)],W.prototype,"spawner",void 0),workflow_orchestrator_decorate([(0,R.Autowired)(c),workflow_orchestrator_metadata("design:type",Object)],W.prototype,"emitter",void 0),workflow_orchestrator_decorate([(0,R.Autowired)(m),(0,R.Optional)(),workflow_orchestrator_metadata("design:type",Object)],W.prototype,"cacheKeyHasher",void 0),workflow_orchestrator_decorate([(0,R.Autowired)(d),(0,R.Optional)(),workflow_orchestrator_metadata("design:type",Object)],W.prototype,"journalFactory",void 0),workflow_orchestrator_decorate([(0,R.Autowired)(f),(0,R.Optional)(),workflow_orchestrator_metadata("design:type",Object)],W.prototype,"budgetFactory",void 0),W=workflow_orchestrator_decorate([(0,R.Component)()],W);var F=r(76982),j=r(79896),U=r(16928),workflow_source_resolver_decorate=function(e,t,r,n){var o,a=arguments.length,l=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)l=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(o=e[i])&&(l=(a<3?o(l):a>3?o(t,r,l):o(t,r))||l);return a>3&&l&&Object.defineProperty(t,r,l),l};let H=class{async resolve(e){if(this.validateExclusivity(e),"string"==typeof e.script)return this.fromInline(e.script);if("string"==typeof e.scriptPath)return this.fromPath(e.scriptPath);if("string"==typeof e.name)return this.fromRegistry(e.name);throw new WorkflowSourceError("empty","Workflow input must include exactly one of: script, scriptPath, name.")}validateExclusivity(e){let t=["script","scriptPath","name"].filter(t=>{let r=e[t];return"string"==typeof r&&r.length>0});if(0===t.length)throw new WorkflowSourceError("empty","Workflow input must include one of: script, scriptPath, name.");if(t.length>1)throw new WorkflowSourceError("ambiguous_input",`Workflow input is ambiguous: ${t.join(" / ")} are mutually exclusive.`)}fromInline(e){let t=Buffer.byteLength(e,"utf8");if(t>WorkflowConcurrencyConstants.MAX_INLINE_SCRIPT_BYTES)throw new WorkflowSourceError("too_large",`Inline workflow script exceeds ${WorkflowConcurrencyConstants.MAX_INLINE_SCRIPT_BYTES} bytes (got ${t}).`);let r=this.hash(e);return{text:e,name:`inline-${r.slice(0,6)}`,provenance:{kind:"inline",contentHash:r,sizeBytes:t}}}async fromPath(e){let t,r=this.assertSafePath(e);try{t=await j.promises.readFile(r,"utf8")}catch(e){throw new WorkflowSourceError("not_found",`Workflow script not readable at ${r}: ${e.message}`)}let n=Buffer.byteLength(t,"utf8");if(n>WorkflowConcurrencyConstants.MAX_INLINE_SCRIPT_BYTES)throw new WorkflowSourceError("too_large",`Workflow script ${r} exceeds ${WorkflowConcurrencyConstants.MAX_INLINE_SCRIPT_BYTES} bytes (got ${n}).`);let o=this.hash(t);return{text:t,name:`path:${this.basename(r)}`,provenance:{kind:"path",location:r,contentHash:o,sizeBytes:n}}}async fromRegistry(e){if(!this.registry)throw new WorkflowSourceError("not_found",`Workflow registry is not available; cannot resolve saved workflow "${e}".`);let t=await this.registry.find(e);if(!t)throw new WorkflowSourceError("not_found",`Saved workflow "${e}" not found in project or user registry.`);let r=await j.promises.readFile(t.scriptPath,"utf8"),n=Buffer.byteLength(r,"utf8"),o=this.hash(r);return{text:r,name:t.name,provenance:{kind:"builtin"===t.scope?"builtin":"saved",location:t.scriptPath,contentHash:o,sizeBytes:n}}}assertSafePath(e){if(e.startsWith("\\\\")||e.startsWith("//"))throw new WorkflowSourceError("path_unsafe",`Workflow scriptPath rejected (UNC path not allowed): ${e}`);let t=(0,U.normalize)(e),r=(0,U.isAbsolute)(t)?t:(0,U.resolve)(process.cwd(),t);if(e.split(/[\\/]/).includes("..")){let t=process.cwd(),n=(0,U.relative)(t,r);if(n.startsWith(`..${U.sep}`)||".."===n)throw new WorkflowSourceError("path_unsafe",`Workflow scriptPath escapes the working directory: ${e}`)}return r}hash(e){return(0,F.createHash)("sha256").update(e,"utf8").digest("hex")}basename(e){let t=e.split(/[\\/]/);return t[t.length-1]||e}};workflow_source_resolver_decorate([(0,R.Autowired)(u),(0,R.Optional)(),function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)}("design:type",Object)],H.prototype,"registry",void 0),H=workflow_source_resolver_decorate([(0,R.Component)(o)],H);var G=r(20714);let V=new Set(["__proto__","constructor","prototype"]),K=new Set(["name","label","description","whenToUse","phases","requiredTools","defaultModel","defaultAgentType","argsSchema","budget","defaultIsolation"]),J=new Set(["inherit","worktree","remote"]),q=class{parse(e){let t=stripExportKeywords(e.text),r=this.parseAst(t),n=this.findMetaDeclaration(r),o=n?this.literalizeMeta(n.objectExpression,t):{};return this.validateMetaShape(o),{sourceText:t,ast:r,meta:o,metaLoc:n?{start:n.objectExpression.start,end:n.objectExpression.end}:void 0}}parseAst(e){try{return G.parse(e,{ecmaVersion:2022,sourceType:"script",allowAwaitOutsideFunction:!0,allowReturnOutsideFunction:!0,locations:!0})}catch(e){throw new WorkflowParseError(`Workflow script syntax error: ${e.message??String(e)}`,e.loc?{line:e.loc.line,column:e.loc.column,offset:e.pos??0}:void 0)}}findMetaDeclaration(e){for(let t of e.body){if("VariableDeclaration"===t.type){for(let e of t.declarations)if("Identifier"===e.id.type&&"meta"===e.id.name&&e.init?.type==="ObjectExpression")return{objectExpression:e.init}}if("ExpressionStatement"===t.type&&"AssignmentExpression"===t.expression.type&&"="===t.expression.operator&&"Identifier"===t.expression.left.type&&"meta"===t.expression.left.name&&"ObjectExpression"===t.expression.right.type)return{objectExpression:t.expression.right}}}literalizeMeta(e,t){let r=Object.create(null);for(let n of e.properties){this.assertProperty(n,t);let e=this.extractPropertyKey(n);this.assertKeyAllowed(e,n),r[e]=this.literalizeValue(n.value,t)}return r}assertProperty(e,t){if("Property"!==e.type)throw this.fail("meta object must contain only plain key/value properties (no spreads).",e);if("init"!==e.kind)throw this.fail(`meta property kind '${e.kind}' is not allowed (no getters/setters).`,e);if(e.method)throw this.fail("meta property cannot be a shorthand method.",e);if(e.computed)throw this.fail("meta property keys cannot be computed.",e)}extractPropertyKey(e){if("Identifier"===e.key.type)return e.key.name;if("Literal"===e.key.type&&("string"==typeof e.key.value||"number"==typeof e.key.value))return String(e.key.value);throw this.fail("meta property key must be an identifier or string/number literal.",e.key)}assertKeyAllowed(e,t){if(V.has(e))throw this.fail(`meta property key '${e}' is reserved.`,t)}literalizeValue(e,t){switch(e.type){case"Literal":return e.value;case"TemplateLiteral":if(e.expressions.length>0)throw this.fail("Template literals with interpolation are not allowed in meta.",e);return e.quasis.map(e=>e.value.cooked??"").join("");case"ArrayExpression":return e.elements.map((r,n)=>{if(!r)throw this.fail(`Sparse array elements are not allowed (index ${n}).`,e);if("SpreadElement"===r.type)throw this.fail("Spread elements are not allowed in meta arrays.",r);return this.literalizeValue(r,t)});case"ObjectExpression":return this.literalizeMeta(e,t);case"UnaryExpression":if("-"===e.operator&&"Literal"===e.argument.type&&"number"==typeof e.argument.value)return-e.argument.value;throw this.fail(`Unary operator '${e.operator}' is not allowed in meta.`,e);case"Identifier":if("undefined"===e.name)return;throw this.fail(`meta values must be literals; identifier '${e.name}' is not allowed.`,e);default:throw this.fail(`meta value of type ${e.type} is not allowed; only literals, arrays, and objects.`,e)}}validateMetaShape(e){for(let t of Object.keys(e))if(!K.has(t))throw new WorkflowParseError(`Unknown meta field '${t}'. Allowed: ${[...K].join(", ")}.`);if(void 0!==e.name&&"string"!=typeof e.name)throw new WorkflowParseError("meta.name must be a string.");if(void 0!==e.label&&"string"!=typeof e.label)throw new WorkflowParseError("meta.label must be a string.");if(void 0!==e.description&&"string"!=typeof e.description)throw new WorkflowParseError("meta.description must be a string.");if(void 0!==e.whenToUse&&"string"!=typeof e.whenToUse)throw new WorkflowParseError("meta.whenToUse must be a string.");if(void 0!==e.phases){if(!Array.isArray(e.phases))throw new WorkflowParseError("meta.phases must be an array.");for(let t of e.phases){if("object"!=typeof t||null===t||Array.isArray(t))throw new WorkflowParseError("meta.phases entries must be plain objects.");if(void 0!==t.title&&"string"!=typeof t.title)throw new WorkflowParseError("meta.phases[].title must be a string.");if(void 0!==t.detail&&"string"!=typeof t.detail)throw new WorkflowParseError("meta.phases[].detail must be a string.");if(void 0!==t.model&&"string"!=typeof t.model)throw new WorkflowParseError("meta.phases[].model must be a string.")}}if(void 0!==e.requiredTools&&(!Array.isArray(e.requiredTools)||!e.requiredTools.every(e=>"string"==typeof e)))throw new WorkflowParseError("meta.requiredTools must be an array of strings.");if(void 0!==e.defaultModel&&"string"!=typeof e.defaultModel)throw new WorkflowParseError("meta.defaultModel must be a string.");if(void 0!==e.defaultAgentType&&"string"!=typeof e.defaultAgentType)throw new WorkflowParseError("meta.defaultAgentType must be a string.");if(void 0!==e.budget&&("number"!=typeof e.budget||!Number.isFinite(e.budget)||e.budget<=0))throw new WorkflowParseError("meta.budget must be a positive number.");if(void 0!==e.defaultIsolation&&("string"!=typeof e.defaultIsolation||!J.has(e.defaultIsolation)))throw new WorkflowParseError(`meta.defaultIsolation must be one of: ${[...J].join(", ")}.`);if(void 0!==e.argsSchema&&("object"!=typeof e.argsSchema||null===e.argsSchema||Array.isArray(e.argsSchema)))throw new WorkflowParseError("meta.argsSchema must be a plain object (JSON Schema).")}fail(e,t){let r=t.loc;return new WorkflowParseError(e,r?{line:r.start.line,column:r.start.column,offset:t.start}:void 0)}};function stripExportKeywords(e){return e.replace(/(^|\n)([ \t]*)export(\s+default)?(\s+)/g,(e,t,r,n,o)=>{let a=6+(n?n.length:0);return t+r+" ".repeat(a)+o})}q=function(e,t,r,n){var o,a=arguments.length,l=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)l=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(o=e[i])&&(l=(a<3?o(l):a>3?o(t,r,l):o(t,r))||l);return a>3&&l&&Object.defineProperty(t,r,l),l}([(0,R.Component)(a)],q);var Y=r(69154);let X=[{pattern:"Date.now",regex:/\bDate\s*\.\s*now\b/g},{pattern:"Math.random",regex:/\bMath\s*\.\s*random\b/g},{pattern:"new Date()",regex:/\bnew\s+Date\s*\(/g}],z=class{compile(e){let t=this.scanDeterminism(e.sourceText,e.metaLoc);if(t.length>0)throw new WorkflowDeterminismError(t.map(e=>({pattern:e.pattern,line:e.line,column:e.column})));let r=this.wrapSource(e.sourceText);return{script:this.compileScript(r),violations:t}}scanDeterminism(e,t){let r=[];for(let n of X){let o=new RegExp(n.regex.source,n.regex.flags),a=o.exec(e);for(;null!==a;){let l=a.index;if(t&&l>=t.start&&l<t.end||this.isInsideStringOrComment(e,l)){a=o.exec(e);continue}let{line:i,column:s}=this.offsetToLineCol(e,l);r.push({pattern:n.pattern,offset:l,line:i,column:s}),a=o.exec(e)}}return r}isInsideStringOrComment(e,t){let r=0,n=!1,o=!1,a=!1,l=!1,i=!1;for(;r<t;){let t=e[r],s=e[r+1];if(l){"\n"===t&&(l=!1),r++;continue}if(i){if("*"===t&&"/"===s){i=!1,r+=2;continue}r++;continue}if(n){if("\\"===t&&void 0!==s){r+=2;continue}"'"===t&&(n=!1),r++;continue}if(o){if("\\"===t&&void 0!==s){r+=2;continue}'"'===t&&(o=!1),r++;continue}if(a){if("\\"===t&&void 0!==s){r+=2;continue}"`"===t&&(a=!1),r++;continue}if("/"===t&&"/"===s){l=!0,r+=2;continue}if("/"===t&&"*"===s){i=!0,r+=2;continue}if("'"===t){n=!0,r++;continue}if('"'===t){o=!0,r++;continue}if("`"===t){a=!0,r++;continue}r++}return n||o||a||l||i}offsetToLineCol(e,t){let r=1,n=1;for(let o=0;o<t&&o<e.length;o++)"\n"===e[o]?(r++,n=1):n++;return{line:r,column:n}}wrapSource(e){let t=e.trim();if(""===t)return"(async () => undefined)()";if(this.isSingleExpression(t)){let e=t.replace(/;\s*$/,"");return`(async () => (${e}))()`}return`(async () => {
|
|
73
|
+
${l}`:t}function findBalancedJsonEnd(e){let t=0,r=!1,n=!1;for(let o=0;o<e.length;o++){let a=e[o];if(n){n=!1;continue}if(r){"\\"===a?n=!0:'"'===a&&(r=!1);continue}if('"'===a){r=!0;continue}if("{"===a||"["===a)t++;else if(("}"===a||"]"===a)&&0==--t)return o}return -1}function countLines(e){if(!e)return 0;let t=1;for(let r=0;r<e.length;r++)10===e.charCodeAt(r)&&t++;return 10===e.charCodeAt(e.length-1)&&t--,t}function safeStringify(e){try{return JSON.stringify(e,null,2)}catch{return String(e)}}function compactStringify(e){try{return JSON.stringify(e)}catch{return String(e)}}function isFatalWorkflowError(e){return e instanceof WorkflowBudgetExceededError||e instanceof WorkflowAgentCapError||e instanceof WorkflowAbortedError}let WorkflowCallDurability=class WorkflowCallDurability{constructor(e,t,r,n){this.hasher=e,this.budget=t,this.journal=r,this.resumeSnapshot=n,this.prevKey=""}beforeSpawn(e,t,r){let n=this.prevKey,o=this.hasher.next(n,e);this.prevKey=o;let a=this.resumeSnapshot?.results.get(o);if(a&&void 0===a.error)return{key:o,prevKey:n,cached:{value:a.result,finishedRecord:{endedAt:a.endedAt,...void 0!==a.tokens?{tokens:a.tokens}:{},...void 0!==a.sessionId?{sessionId:a.sessionId}:{},result:a.result},key:o}};let l=(e.maxTurns??1)*4e3;return this.budget.reserve(l),this.journal.record({type:"agent_started",runId:this.journal.runId,key:o,prevKey:n,...void 0!==t?{label:t}:{},...void 0!==r?{phase:r}:{},startedAt:Date.now()}),{key:o,prevKey:n}}afterSpawnSuccess(e,t){this.budget.deduct(t.tokens),this.journal.record({type:"agent_finished",runId:this.journal.runId,key:e,...void 0!==t.tokens?{tokens:t.tokens}:{},sessionId:t.sessionId,result:void 0!==t.structured?t.structured:t.text,endedAt:Date.now()})}afterSpawnFailure(e,t){this.journal.record({type:"agent_finished",runId:this.journal.runId,key:e,error:t?.message??String(t),endedAt:Date.now()})}markAgentInvalidated(e,t){this.journal.record({type:"agent_invalidated",runId:this.journal.runId,key:e,reason:t,at:Date.now()})}recordRunStarted(e,t){this.journal.record({type:"run_started",runId:this.journal.runId,name:e,contentHash:t,startedAt:Date.now()})}recordRunFinished(e,t,r){this.journal.record({type:"run_finished",runId:this.journal.runId,status:e,endedAt:Date.now(),...void 0!==t?{output:t}:{},...void 0!==r?{error:r}:{}})}async close(){try{await this.journal.close()}catch{}}};var workflow_orchestrator_decorate=function(e,t,r,n){var o,a=arguments.length,l=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)l=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(o=e[i])&&(l=(a<3?o(l):a>3?o(t,r,l):o(t,r))||l);return a>3&&l&&Object.defineProperty(t,r,l),l},workflow_orchestrator_metadata=function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};let W=class{async create(e,t,r){let n=await this.buildDurability(e);return new WorkflowExecution({spawner:this.spawner,emitter:this.emitter,request:e,...n?{durability:n}:{},...t?{nestedInvoker:t}:{},...r?{pauseGate:r}:{}})}async buildDurability(e){let t;if(!this.cacheKeyHasher||!this.journalFactory||!this.budgetFactory)return;let r=e.parentSessionId||"orphan";try{t=await this.journalFactory.create(r,e.runId)}catch{return}let n=this.budgetFactory.create(e.parsed.meta.budget),o=e.resumeFromRunId?await this.journalFactory.load(r,e.resumeFromRunId).catch(()=>void 0):void 0;return new WorkflowCallDurability(this.cacheKeyHasher,n,t,o)}};workflow_orchestrator_decorate([(0,R.Autowired)(s),workflow_orchestrator_metadata("design:type",Object)],W.prototype,"spawner",void 0),workflow_orchestrator_decorate([(0,R.Autowired)(c),workflow_orchestrator_metadata("design:type",Object)],W.prototype,"emitter",void 0),workflow_orchestrator_decorate([(0,R.Autowired)(m),(0,R.Optional)(),workflow_orchestrator_metadata("design:type",Object)],W.prototype,"cacheKeyHasher",void 0),workflow_orchestrator_decorate([(0,R.Autowired)(d),(0,R.Optional)(),workflow_orchestrator_metadata("design:type",Object)],W.prototype,"journalFactory",void 0),workflow_orchestrator_decorate([(0,R.Autowired)(f),(0,R.Optional)(),workflow_orchestrator_metadata("design:type",Object)],W.prototype,"budgetFactory",void 0),W=workflow_orchestrator_decorate([(0,R.Component)()],W);var F=r(76982),j=r(79896),U=r(16928),workflow_source_resolver_decorate=function(e,t,r,n){var o,a=arguments.length,l=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)l=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(o=e[i])&&(l=(a<3?o(l):a>3?o(t,r,l):o(t,r))||l);return a>3&&l&&Object.defineProperty(t,r,l),l};let H=class{async resolve(e){if(this.validateExclusivity(e),"string"==typeof e.script)return this.fromInline(e.script);if("string"==typeof e.scriptPath)return this.fromPath(e.scriptPath);if("string"==typeof e.name)return this.fromRegistry(e.name);throw new WorkflowSourceError("empty","Workflow input must include exactly one of: script, scriptPath, name.")}validateExclusivity(e){let t=["script","scriptPath","name"].filter(t=>{let r=e[t];return"string"==typeof r&&r.length>0});if(0===t.length)throw new WorkflowSourceError("empty","Workflow input must include one of: script, scriptPath, name.");if(t.length>1)throw new WorkflowSourceError("ambiguous_input",`Workflow input is ambiguous: ${t.join(" / ")} are mutually exclusive.`)}fromInline(e){let t=Buffer.byteLength(e,"utf8");if(t>WorkflowConcurrencyConstants.MAX_INLINE_SCRIPT_BYTES)throw new WorkflowSourceError("too_large",`Inline workflow script exceeds ${WorkflowConcurrencyConstants.MAX_INLINE_SCRIPT_BYTES} bytes (got ${t}).`);let r=this.hash(e);return{text:e,name:`inline-${r.slice(0,6)}`,provenance:{kind:"inline",contentHash:r,sizeBytes:t}}}async fromPath(e){let t,r=this.assertSafePath(e);try{t=await j.promises.readFile(r,"utf8")}catch(e){throw new WorkflowSourceError("not_found",`Workflow script not readable at ${r}: ${e.message}`)}let n=Buffer.byteLength(t,"utf8");if(n>WorkflowConcurrencyConstants.MAX_INLINE_SCRIPT_BYTES)throw new WorkflowSourceError("too_large",`Workflow script ${r} exceeds ${WorkflowConcurrencyConstants.MAX_INLINE_SCRIPT_BYTES} bytes (got ${n}).`);let o=this.hash(t);return{text:t,name:`path:${this.basename(r)}`,provenance:{kind:"path",location:r,contentHash:o,sizeBytes:n}}}async fromRegistry(e){if(!this.registry)throw new WorkflowSourceError("not_found",`Workflow registry is not available; cannot resolve saved workflow "${e}".`);let t=await this.registry.find(e);if(!t)throw new WorkflowSourceError("not_found",`Saved workflow "${e}" not found in project, user or builtin registry.`);let r=await j.promises.readFile(t.scriptPath,"utf8"),n=Buffer.byteLength(r,"utf8"),o=this.hash(r);return{text:r,name:t.name,provenance:{kind:"builtin"===t.scope?"builtin":"saved",location:t.scriptPath,contentHash:o,sizeBytes:n}}}assertSafePath(e){if(e.startsWith("\\\\")||e.startsWith("//"))throw new WorkflowSourceError("path_unsafe",`Workflow scriptPath rejected (UNC path not allowed): ${e}`);let t=(0,U.normalize)(e),r=(0,U.isAbsolute)(t)?t:(0,U.resolve)(process.cwd(),t);if(e.split(/[\\/]/).includes("..")){let t=process.cwd(),n=(0,U.relative)(t,r);if(n.startsWith(`..${U.sep}`)||".."===n)throw new WorkflowSourceError("path_unsafe",`Workflow scriptPath escapes the working directory: ${e}`)}return r}hash(e){return(0,F.createHash)("sha256").update(e,"utf8").digest("hex")}basename(e){let t=e.split(/[\\/]/);return t[t.length-1]||e}};workflow_source_resolver_decorate([(0,R.Autowired)(u),(0,R.Optional)(),function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)}("design:type",Object)],H.prototype,"registry",void 0),H=workflow_source_resolver_decorate([(0,R.Component)(o)],H);var G=r(20714);let V=new Set(["__proto__","constructor","prototype"]),K=new Set(["name","label","description","whenToUse","phases","requiredTools","defaultModel","defaultAgentType","argsSchema","budget","defaultIsolation"]),J=new Set(["inherit","worktree","remote"]),q=class{parse(e){let t=stripExportKeywords(e.text),r=this.parseAst(t),n=this.findMetaDeclaration(r),o=n?this.literalizeMeta(n.objectExpression,t):{};return this.validateMetaShape(o),{sourceText:t,ast:r,meta:o,metaLoc:n?{start:n.objectExpression.start,end:n.objectExpression.end}:void 0}}parseAst(e){try{return G.parse(e,{ecmaVersion:2022,sourceType:"script",allowAwaitOutsideFunction:!0,allowReturnOutsideFunction:!0,locations:!0})}catch(e){throw new WorkflowParseError(`Workflow script syntax error: ${e.message??String(e)}`,e.loc?{line:e.loc.line,column:e.loc.column,offset:e.pos??0}:void 0)}}findMetaDeclaration(e){for(let t of e.body){if("VariableDeclaration"===t.type){for(let e of t.declarations)if("Identifier"===e.id.type&&"meta"===e.id.name&&e.init?.type==="ObjectExpression")return{objectExpression:e.init}}if("ExpressionStatement"===t.type&&"AssignmentExpression"===t.expression.type&&"="===t.expression.operator&&"Identifier"===t.expression.left.type&&"meta"===t.expression.left.name&&"ObjectExpression"===t.expression.right.type)return{objectExpression:t.expression.right}}}literalizeMeta(e,t){let r=Object.create(null);for(let n of e.properties){this.assertProperty(n,t);let e=this.extractPropertyKey(n);this.assertKeyAllowed(e,n),r[e]=this.literalizeValue(n.value,t)}return r}assertProperty(e,t){if("Property"!==e.type)throw this.fail("meta object must contain only plain key/value properties (no spreads).",e);if("init"!==e.kind)throw this.fail(`meta property kind '${e.kind}' is not allowed (no getters/setters).`,e);if(e.method)throw this.fail("meta property cannot be a shorthand method.",e);if(e.computed)throw this.fail("meta property keys cannot be computed.",e)}extractPropertyKey(e){if("Identifier"===e.key.type)return e.key.name;if("Literal"===e.key.type&&("string"==typeof e.key.value||"number"==typeof e.key.value))return String(e.key.value);throw this.fail("meta property key must be an identifier or string/number literal.",e.key)}assertKeyAllowed(e,t){if(V.has(e))throw this.fail(`meta property key '${e}' is reserved.`,t)}literalizeValue(e,t){switch(e.type){case"Literal":return e.value;case"TemplateLiteral":if(e.expressions.length>0)throw this.fail("Template literals with interpolation are not allowed in meta.",e);return e.quasis.map(e=>e.value.cooked??"").join("");case"ArrayExpression":return e.elements.map((r,n)=>{if(!r)throw this.fail(`Sparse array elements are not allowed (index ${n}).`,e);if("SpreadElement"===r.type)throw this.fail("Spread elements are not allowed in meta arrays.",r);return this.literalizeValue(r,t)});case"ObjectExpression":return this.literalizeMeta(e,t);case"UnaryExpression":if("-"===e.operator&&"Literal"===e.argument.type&&"number"==typeof e.argument.value)return-e.argument.value;throw this.fail(`Unary operator '${e.operator}' is not allowed in meta.`,e);case"Identifier":if("undefined"===e.name)return;throw this.fail(`meta values must be literals; identifier '${e.name}' is not allowed.`,e);default:throw this.fail(`meta value of type ${e.type} is not allowed; only literals, arrays, and objects.`,e)}}validateMetaShape(e){for(let t of Object.keys(e))if(!K.has(t))throw new WorkflowParseError(`Unknown meta field '${t}'. Allowed: ${[...K].join(", ")}.`);if(void 0!==e.name&&"string"!=typeof e.name)throw new WorkflowParseError("meta.name must be a string.");if(void 0!==e.label&&"string"!=typeof e.label)throw new WorkflowParseError("meta.label must be a string.");if(void 0!==e.description&&"string"!=typeof e.description)throw new WorkflowParseError("meta.description must be a string.");if(void 0!==e.whenToUse&&"string"!=typeof e.whenToUse)throw new WorkflowParseError("meta.whenToUse must be a string.");if(void 0!==e.phases){if(!Array.isArray(e.phases))throw new WorkflowParseError("meta.phases must be an array.");for(let t of e.phases){if("object"!=typeof t||null===t||Array.isArray(t))throw new WorkflowParseError("meta.phases entries must be plain objects.");if(void 0!==t.title&&"string"!=typeof t.title)throw new WorkflowParseError("meta.phases[].title must be a string.");if(void 0!==t.detail&&"string"!=typeof t.detail)throw new WorkflowParseError("meta.phases[].detail must be a string.");if(void 0!==t.model&&"string"!=typeof t.model)throw new WorkflowParseError("meta.phases[].model must be a string.")}}if(void 0!==e.requiredTools&&(!Array.isArray(e.requiredTools)||!e.requiredTools.every(e=>"string"==typeof e)))throw new WorkflowParseError("meta.requiredTools must be an array of strings.");if(void 0!==e.defaultModel&&"string"!=typeof e.defaultModel)throw new WorkflowParseError("meta.defaultModel must be a string.");if(void 0!==e.defaultAgentType&&"string"!=typeof e.defaultAgentType)throw new WorkflowParseError("meta.defaultAgentType must be a string.");if(void 0!==e.budget&&("number"!=typeof e.budget||!Number.isFinite(e.budget)||e.budget<=0))throw new WorkflowParseError("meta.budget must be a positive number.");if(void 0!==e.defaultIsolation&&("string"!=typeof e.defaultIsolation||!J.has(e.defaultIsolation)))throw new WorkflowParseError(`meta.defaultIsolation must be one of: ${[...J].join(", ")}.`);if(void 0!==e.argsSchema&&("object"!=typeof e.argsSchema||null===e.argsSchema||Array.isArray(e.argsSchema)))throw new WorkflowParseError("meta.argsSchema must be a plain object (JSON Schema).")}fail(e,t){let r=t.loc;return new WorkflowParseError(e,r?{line:r.start.line,column:r.start.column,offset:t.start}:void 0)}};function stripExportKeywords(e){return e.replace(/(^|\n)([ \t]*)export(\s+default)?(\s+)/g,(e,t,r,n,o)=>{let a=6+(n?n.length:0);return t+r+" ".repeat(a)+o})}q=function(e,t,r,n){var o,a=arguments.length,l=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)l=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(o=e[i])&&(l=(a<3?o(l):a>3?o(t,r,l):o(t,r))||l);return a>3&&l&&Object.defineProperty(t,r,l),l}([(0,R.Component)(a)],q);var Y=r(69154);let X=[{pattern:"Date.now",regex:/\bDate\s*\.\s*now\b/g},{pattern:"Math.random",regex:/\bMath\s*\.\s*random\b/g},{pattern:"new Date()",regex:/\bnew\s+Date\s*\(/g}],z=class{compile(e){let t=this.scanDeterminism(e.sourceText,e.metaLoc);if(t.length>0)throw new WorkflowDeterminismError(t.map(e=>({pattern:e.pattern,line:e.line,column:e.column})));let r=this.wrapSource(e.sourceText);return{script:this.compileScript(r),violations:t}}scanDeterminism(e,t){let r=[];for(let n of X){let o=new RegExp(n.regex.source,n.regex.flags),a=o.exec(e);for(;null!==a;){let l=a.index;if(t&&l>=t.start&&l<t.end||this.isInsideStringOrComment(e,l)){a=o.exec(e);continue}let{line:i,column:s}=this.offsetToLineCol(e,l);r.push({pattern:n.pattern,offset:l,line:i,column:s}),a=o.exec(e)}}return r}isInsideStringOrComment(e,t){let r=0,n=!1,o=!1,a=!1,l=!1,i=!1;for(;r<t;){let t=e[r],s=e[r+1];if(l){"\n"===t&&(l=!1),r++;continue}if(i){if("*"===t&&"/"===s){i=!1,r+=2;continue}r++;continue}if(n){if("\\"===t&&void 0!==s){r+=2;continue}"'"===t&&(n=!1),r++;continue}if(o){if("\\"===t&&void 0!==s){r+=2;continue}'"'===t&&(o=!1),r++;continue}if(a){if("\\"===t&&void 0!==s){r+=2;continue}"`"===t&&(a=!1),r++;continue}if("/"===t&&"/"===s){l=!0,r+=2;continue}if("/"===t&&"*"===s){i=!0,r+=2;continue}if("'"===t){n=!0,r++;continue}if('"'===t){o=!0,r++;continue}if("`"===t){a=!0,r++;continue}r++}return n||o||a||l||i}offsetToLineCol(e,t){let r=1,n=1;for(let o=0;o<t&&o<e.length;o++)"\n"===e[o]?(r++,n=1):n++;return{line:r,column:n}}wrapSource(e){let t=e.trim();if(""===t)return"(async () => undefined)()";if(this.isSingleExpression(t)){let e=t.replace(/;\s*$/,"");return`(async () => (${e}))()`}return`(async () => {
|
|
74
74
|
${e}
|
|
75
75
|
})()`}isSingleExpression(e){let t=this.stripLeadingWhitespaceAndComments(e);if(/^(const|let|var|function|class|async\s+function|return|if|for|while|do|switch|try|throw|import|export)\b/.test(t))return!1;let r=0,n=!1,o=!1,a=!1,l=!1,i=!1,s=0,c=0,u=0;for(;r<e.length;){let t=e[r],d=e[r+1];if(l){"\n"===t&&(l=!1),r++;continue}if(i){if("*"===t&&"/"===d){i=!1,r+=2;continue}r++;continue}if(n){if("\\"===t){r+=2;continue}"'"===t&&(n=!1),r++;continue}if(o){if("\\"===t){r+=2;continue}'"'===t&&(o=!1),r++;continue}if(a){if("\\"===t){r+=2;continue}"`"===t&&(a=!1),r++;continue}if("/"===t&&"/"===d){l=!0,r+=2;continue}if("/"===t&&"*"===d){i=!0,r+=2;continue}if("'"===t){n=!0,r++;continue}if('"'===t){o=!0,r++;continue}if("`"===t){a=!0,r++;continue}if("{"===t){s++,r++;continue}if("}"===t){s--,r++;continue}if("("===t){c++,r++;continue}if(")"===t){c--,r++;continue}if("["===t){u++,r++;continue}if("]"===t){u--,r++;continue}if(";"===t&&0===s&&0===c&&0===u){if(0===e.slice(r+1).trim().length)return!0;return!1}r++}return!0}stripLeadingWhitespaceAndComments(e){let t=0;for(;t<e.length;){let r=e[t],n=e[t+1];if(" "===r||" "===r||"\r"===r||"\n"===r){t++;continue}if("/"===r&&"/"===n){for(;t<e.length&&"\n"!==e[t];)t++;continue}if("/"===r&&"*"===n){for(t+=2;t<e.length&&("*"!==e[t]||"/"!==e[t+1]);)t++;t<e.length&&(t+=2);continue}break}return e.slice(t)}hasTopLevelReturn(e){let t=0,r=!1,n=!1,o=!1,a=!1,l=!1,i=0,s=0,c=0;for(;t<e.length;){let u=e[t],d=e[t+1];if(a){"\n"===u&&(a=!1),t++;continue}if(l){if("*"===u&&"/"===d){l=!1,t+=2;continue}t++;continue}if(r){if("\\"===u){t+=2;continue}"'"===u&&(r=!1),t++;continue}if(n){if("\\"===u){t+=2;continue}'"'===u&&(n=!1),t++;continue}if(o){if("\\"===u){t+=2;continue}"`"===u&&(o=!1),t++;continue}if("/"===u&&"/"===d){a=!0,t+=2;continue}if("/"===u&&"*"===d){l=!0,t+=2;continue}if("'"===u){r=!0,t++;continue}if('"'===u){n=!0,t++;continue}if("`"===u){o=!0,t++;continue}if("{"===u){i++,t++;continue}if("}"===u){i--,t++;continue}if("("===u){s++,t++;continue}if(")"===u){s--,t++;continue}if("["===u){c++,t++;continue}if("]"===u){c--,t++;continue}if(0===i&&0===s&&0===c&&"r"===u&&"return"===e.slice(t,t+6)&&/[\s;{(]/.test(e[t+6]??" ")&&(0===t||/[\s;{}]/.test(e[t-1]??" ")))return!0;t++}return!1}compileScript(e){try{return new Y.Script(e,{filename:"workflow.js",lineOffset:0,columnOffset:0})}catch(e){throw new WorkflowCompileError(`Workflow script failed to compile: ${e.message}`,{cause:e})}}};z=function(e,t,r,n){var o,a=arguments.length,l=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)l=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(o=e[i])&&(l=(a<3?o(l):a>3?o(t,r,l):o(t,r))||l);return a>3&&l&&Object.defineProperty(t,r,l),l}([(0,R.Component)(l)],z);var Z=r(24434);let Q="workflow-progress",ee=class{constructor(){this.bus=new Z.EventEmitter,this.pending=[],this.flushTimer=null,this.bus.setMaxListeners(64)}emit(e){this.isCriticalEvent(e)?this.dispatch(e):(this.pending.push(e),this.scheduleFlush())}on(e){return this.bus.on(Q,e),()=>this.bus.off(Q,e)}flushNow(){this.flushTimer&&(clearTimeout(this.flushTimer),this.flushTimer=null),this.flushPending()}cancelPending(){if(this.flushTimer&&(clearTimeout(this.flushTimer),this.flushTimer=null),0===this.pending.length)return;let e=this.pending;for(let t of(this.pending=[],e))this.dispatch(this.stripHeavyRefs(t))}stripHeavyRefs(e){if("workflow_agent_finished"!==e.kind)return e;let{result:t,...r}=e.agent;return{...e,agent:r}}isCriticalEvent(e){return"workflow_agent_finished"!==e.kind}scheduleFlush(){this.flushTimer||(this.flushTimer=setTimeout(()=>{this.flushTimer=null,this.flushPending()},WorkflowConcurrencyConstants.PROGRESS_DEBOUNCE_MS))}flushPending(){let e=this.pending;for(let t of(this.pending=[],e))this.dispatch(t)}dispatch(e){try{this.bus.emit(Q,e)}catch{}}};ee=function(e,t,r,n){var o,a=arguments.length,l=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)l=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(o=e[i])&&(l=(a<3?o(l):a>3?o(t,r,l):o(t,r))||l);return a>3&&l&&Object.defineProperty(t,r,l),l}([(0,R.Component)(c),function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)}("design:paramtypes",[])],ee);var et=r(92735),er=r(72314);let WorktreeIsolationStrategy=class WorktreeIsolationStrategy{constructor(e,t,r,n){this.worktreeService=e,this.changeDetector=t,this.runId=r,this.logger=n,this.nextIndex=1}async lease(){let e,t=this.nextIndex++,r=`wf-${this.runId.slice(0,8)}-${t}`;try{e=await this.worktreeService.create(r)}catch(e){return this.logger.warn?.(`[WorkflowIsolation] worktree create failed for ${r}, falling back to inherit cwd: `+e.message),{cwd:void 0,release:async()=>void 0}}let{worktreePath:n}=e;return{cwd:n,release:async()=>this.releaseWorktree(n)}}async releaseWorktree(e){try{if(await this.detectChanges(e))return void this.logger.info?.(`[WorkflowIsolation] worktree ${e} has changes; keeping for review`);await this.worktreeService.remove(e,{deleteBranch:!0})}catch(t){this.logger.warn?.(`[WorkflowIsolation] worktree release failed for ${e}: ${t.message}`)}}async detectChanges(e){if(!this.changeDetector)return!1;try{return(await this.changeDetector.detect(e)).hasChanges}catch{return!0}}};let StructuredOutputRetryPolicy=class StructuredOutputRetryPolicy{next(e,t,r){return!e.schema||t>2?null:{...e,prompt:this.buildCorrectionPrompt(e.prompt,r)}}buildCorrectionPrompt(e,t){let r=t.message;return[e,"\n---\n\nYour previous answer did not match the required JSON schema.",(t.rawText?`Your previous reply was:
|
|
76
76
|
|
|
@@ -80,4 +80,4 @@ ${truncate(t.rawText,800)}
|
|
|
80
80
|
|
|
81
81
|
---
|
|
82
82
|
|
|
83
|
-
${a.userPrompt}`,subagent_type:l,...e.model&&{model:e.model},mainSession:t,...e.maxTurns&&{maxTurns:e.maxTurns},detached:!0}),this.taskManager.registerTask(this.task,!0)}get lastActivityAt(){let e=this.task.toolCallHistory?.[this.task.toolCallHistory.length-1]?.timestamp;return"number"==typeof e&&e>this._lastActivityAt&&(this._lastActivityAt=e),this._lastActivityAt}async wait(){let e,t;this.executePromise||(this.executePromise=this.task.execute());try{let t=await this.executePromise;this.settled=!0,e={text:t.content,sessionId:t.sessionId,tokens:this.totalTokens(),toolCallCount:this.task.toolCallHistory?.length??0,lastToolCalls:extractLastToolCalls(this.task.toolCallHistory),stopReason:"completed"===this.task.status?"end_turn":null,durationMs:Date.now()-this.startedAt}}catch(e){this.settled=!0,t=this.aborted?new WorkflowSandboxError(`subagent aborted: ${e.message}`,{cause:e}):e}finally{try{this.taskManager.removeTask(this.task.id)}catch{}try{this.task.toolCallHistory&&(this.task.toolCallHistory.length=0),this.task.prompt=void 0,this.task.response=void 0,this.task.result=void 0,this.executePromise=void 0}catch{}}if(t)throw t;return e}abort(e){if(!this.settled&&!this.aborted){this.aborted=!0;try{this.task.abortController?.abort(e)}catch{}}}totalTokens(){let e=this.task.tokenUsage;return e?e.totalTokens??e.inputTokens+e.outputTokens:0}};let ei=class{create(e,t){if(!t)throw new WorkflowSandboxError("AgentTaskExecutionFactory requires a parent session.");return new AgentTaskExecution(e,t,this.promptBuilder)}};function extractLastToolCalls(e){return e&&0!==e.length?e.slice(Math.max(0,e.length-3)).map(e=>({tool:e.name,argsPreview:previewArgs(e.arguments),at:e.timestamp})):[]}function previewArgs(e){let t;if(null==e)return"";if("string"==typeof e)return clip(e);if("object"!=typeof e)return"";for(let t of["query","pattern","command","cmd","path","file_path","filePath","url"]){let r=e[t];if("string"==typeof r&&r.length>0)return clip(r)}try{t=JSON.stringify(e)}catch{return""}return t&&"{}"!==t&&"[]"!==t?clip(t):""}function clip(e){return e.length<=80?e:e.slice(0,79)+"\u2026"}agent_task_adapter_decorate([(0,R.Autowired)(N),function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)}("design:type","function"==typeof(y=void 0!==N&&N)?y:Object)],ei.prototype,"promptBuilder",void 0),ei=agent_task_adapter_decorate([(0,R.Component)(p)],ei);let NestedWorkflowRunner=class NestedWorkflowRunner{constructor(e){this.prelude=e}async run(e){let t;if(e.parentRequest.abortController.signal.aborted)throw new WorkflowAbortedError("parent-aborted-before-nested");let r=this.composeNestedSandbox(e),n=Y.createContext(r,{name:`workflow-${e.parentRequest.runId}/nested:${e.name}`,codeGeneration:{strings:!1,wasm:!1}});new Y.Script(this.prelude.build(0),{filename:"<nested-prelude>"}).runInContext(n,{timeout:WorkflowConcurrencyConstants.SCRIPT_SYNC_TIMEOUT_MS});try{t=e.compiled.script.runInContext(n,{timeout:WorkflowConcurrencyConstants.SCRIPT_SYNC_TIMEOUT_MS,breakOnSigint:!0})}catch(t){throw new WorkflowSandboxError(`Nested workflow "${e.name}" threw: ${t.message}`,{cause:t})}return await this.awaitTopLevel(t)}composeNestedSandbox(e){let t=`[${e.name}]`,r=e.parentExecution.hooks.log,log=(...e)=>r(t,...e);return{agent:e.parentExecution.hooks.agent,parallel:e.parentExecution.hooks.parallel,pipeline:e.parentExecution.hooks.pipeline,phase:(e,t)=>t(),log,args:this.toJsonSafe(e.args),console:{log,warn:log,error:log,info:log,debug:log},setTimeout:(e,t)=>setTimeout(e,Math.max(0,Math.min(t,6e4))),clearTimeout:e=>clearTimeout(e),Promise,Symbol,Map,Set,JSON,RegExp,Number,Boolean,String,Array,Object,Error}}async awaitTopLevel(e){return e&&"function"==typeof e.then?await e:e}toJsonSafe(e){if(void 0!==e)try{return JSON.parse(JSON.stringify(e))}catch{return String(e)}}};let WorkflowAbortRacer=class WorkflowAbortRacer{constructor(e){this.abortSignal=e}async race(e){let t;if(!isPromiseLike(e))return e;let r=new Promise((e,r)=>{let onAbort=()=>r(new WorkflowAbortedError("user-abort"));this.abortSignal.aborted?onAbort():(this.abortSignal.addEventListener("abort",onAbort,{once:!0}),t=()=>this.abortSignal.removeEventListener("abort",onAbort))});try{return await Promise.race([e,r])}finally{t?.()}}};function isPromiseLike(e){return!!e&&"function"==typeof e.then}let WorkflowAbortAwareTimer=class WorkflowAbortAwareTimer{constructor(e){this.abortSignal=e,this.pending=new Map,this.nextId=1,this.disposed=!1,this.setTimeoutFn=(e,t)=>{if("function"!=typeof e)throw TypeError("setTimeout callback must be a function");let r=Math.max(0,Math.min(t??0,6e4));if(this.abortSignal.aborted||this.disposed)return queueMicrotask(()=>{try{e()}catch{}}),-1;let n=this.nextId++,o=setTimeout(()=>{this.pending.delete(n);try{e()}catch{}},r);return"function"==typeof o.unref&&o.unref(),this.pending.set(n,{handle:o,cb:e}),n},this.clearTimeoutFn=e=>{let t=this.pending.get(e);t&&(clearTimeout(t.handle),this.pending.delete(e))},this.abortListener=()=>this.flushAllOnAbort(),e.aborted||e.addEventListener("abort",this.abortListener,{once:!0})}dispose(){if(!this.disposed){for(let e of(this.disposed=!0,this.abortSignal.removeEventListener("abort",this.abortListener),this.pending.values()))clearTimeout(e.handle);this.pending.clear()}}flushAllOnAbort(){let e=[...this.pending.values()];for(let t of(this.pending.clear(),e)){clearTimeout(t.handle);try{t.cb()}catch{}}}};let WorkflowSandboxBuilder=class WorkflowSandboxBuilder{constructor(e){this.prelude=e}build(e,t){let r=new WorkflowAbortAwareTimer(e.abortController.signal),n=this.composeGlobals(e,t,r),o=Y.createContext(n,{name:`workflow-${e.runId}`,codeGeneration:{strings:!1,wasm:!1}});return new Y.Script(this.prelude.build(0),{filename:"<workflow-prelude>"}).runInContext(o,{timeout:WorkflowConcurrencyConstants.SCRIPT_SYNC_TIMEOUT_MS}),{context:o,dispose:()=>r.dispose()}}composeGlobals(e,t,r){let n={log:t.hooks.log,warn:t.hooks.log,error:t.hooks.log,info:t.hooks.log,debug:t.hooks.log};return{agent:t.hooks.agent,parallel:t.hooks.parallel,pipeline:t.hooks.pipeline,phase:t.hooks.phase,log:t.hooks.log,workflow:t.hooks.workflow,args:this.toJsonSafe(e.args),console:n,setTimeout:r.setTimeoutFn,clearTimeout:r.clearTimeoutFn,Promise,Symbol,Map,Set,JSON,RegExp,Number,Boolean,String,Array,Object,Error}}toJsonSafe(e){if(void 0!==e)try{return JSON.parse(JSON.stringify(e))}catch{return String(e)}}};var workflow_runner_decorate=function(e,t,r,n){var o,a=arguments.length,l=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)l=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(o=e[i])&&(l=(a<3?o(l):a>3?o(t,r,l):o(t,r))||l);return a>3&&l&&Object.defineProperty(t,r,l),l},workflow_runner_metadata=function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};let es=class{newSandboxBuilder(){return new WorkflowSandboxBuilder(this.prelude)}async run(e,t){let r=this.makeNestedInvoker(),n=t?.pauseGate,o=await this.factory.create(e,r,n);t?.onExecutionReady?.(o),o.recordRunStarted(e.source.name,e.source.provenance.contentHash);let a=t?.initialRecord??this.startRecord(e);this.emitter.emit({kind:"workflow_run_started",record:a}),e.parentSessionId&&await this.recordWriter.write(e.parentSessionId,a);try{let t=await this.executeInSandbox(e,o);a.status="completed",a.output=this.toJsonSafe(t),a.result=a.output}catch(t){a.status=t instanceof WorkflowAbortedError?"aborted":"failed",a.error=t instanceof Error?t.message:String(t),a.result={error:a.error},this.logger.error?.(`[Workflow] run ${e.runId} ${a.status}: ${a.error}`)}finally{a.endedAt=Date.now(),a.phaseCount=o.totalPhases,a.agentCount=o.totalAgentsSpawned,a.cachedAgentCount=o.totalAgentsCached,this.fillFinalRecord(a,e,o);let t="running"===a.status?"failed":a.status;o.recordRunFinished(t,a.output,a.error),await o.flushDurability(),e.parentSessionId&&await this.recordWriter.write(e.parentSessionId,a)}return a}fillFinalRecord(e,t,r){e.workflowName=t.source.name,e.script=t.source.text,e.args=this.toJsonSafe(t.args),e.defaultModel=t.parsed.meta.defaultModel,e.phases=t.parsed.meta.phases??[],e.logs=[...r.logs],e.workflowProgress=this.buildProgressTimeline(r),e.durationMs=e.endedAt&&e.startedAt?e.endedAt-e.startedAt:void 0,e.totalTokens=r.totalTokensSpent,e.totalToolCalls=this.sumToolCalls(r),e.timestamp=new Date(e.endedAt??Date.now()).toISOString()}buildProgressTimeline(e){let t=e.snapshotPhases(),r=e.snapshotAgents(),n=new Map,o=[];return t.forEach((e,t)=>{let r=t+1;n.set(e.name,r),o.push({type:"workflow_phase",index:r,title:e.name})}),r.forEach((e,t)=>{let r=e.phase?n.get(e.phase):void 0,a=e.cached?"cached":e.error?"error":e.endedAt?"done":"running",l={type:"workflow_agent",index:t+1,agentId:e.sessionId??(e.key.slice(0,16)||`agent-${t+1}`),state:a,startedAt:e.startedAt};void 0!==r&&(l.phaseIndex=r,l.phaseTitle=e.phase),void 0!==e.label&&(l.label=e.label),void 0!==e.model&&(l.model=e.model),void 0!==e.endedAt&&(l.endedAt=e.endedAt,l.durationMs=e.endedAt-e.startedAt),void 0!==e.tokens&&(l.tokens=e.tokens),void 0!==e.toolCallCount&&(l.toolCalls=e.toolCallCount),void 0!==e.error&&(l.error=e.error),o.push(l)}),o}sumToolCalls(e){let t=0;for(let r of e.snapshotAgents())t+=r.toolCallCount??0;return t}startRecord(e){return{runId:e.runId,name:e.source.name,contentHash:e.source.provenance.contentHash,startedAt:Date.now(),status:"running",phaseCount:0,agentCount:0,cachedAgentCount:0}}async executeInSandbox(e,t){let r=this.newSandboxBuilder().build(e,t);try{let t=this.runUserScriptSync(e,r.context),n=new WorkflowAbortRacer(e.abortController.signal);return await n.race(t)}catch(e){if(e instanceof WorkflowError)throw e;throw this.toSandboxError(e)}finally{r.dispose()}}runUserScriptSync(e,t){try{return e.compiled.script.runInContext(t,{timeout:WorkflowConcurrencyConstants.SCRIPT_SYNC_TIMEOUT_MS,breakOnSigint:!0})}catch(e){throw this.toSandboxError(e)}}toSandboxError(e){return e instanceof WorkflowError?e:new WorkflowSandboxError(`Workflow sandbox threw: ${e?.message??String(e)}`,{cause:e})}toJsonSafe(e){if(void 0!==e)try{return JSON.parse(JSON.stringify(e))}catch{return String(e)}}makeNestedInvoker(){if(!this.registry||!this.parser||!this.compiler)return;let e=this.registry,t=this.parser,r=this.compiler,n=new NestedWorkflowRunner(this.prelude);return async(o,a,l)=>{let i=await e.find(o);if(!i)throw new WorkflowSourceError("not_found",`Nested workflow "${o}" is not registered. Save it under .codebuddy/workflows/ first.`);let s=await j.promises.readFile(i.scriptPath,"utf8"),c={text:s,name:i.name,provenance:{kind:"builtin"===i.scope?"builtin":"saved",location:i.scriptPath,contentHash:"",sizeBytes:Buffer.byteLength(s,"utf8")}},u=t.parse(c),d=r.compile(u);return n.run({name:i.name,compiled:d,args:a,parentRequest:l.runRequest,parentExecution:l})}}};workflow_runner_decorate([(0,R.Autowired)(et.Logger),workflow_runner_metadata("design:type","function"==typeof(b=void 0!==et.Logger&&et.Logger)?b:Object)],es.prototype,"logger",void 0),workflow_runner_decorate([(0,R.Autowired)(W),workflow_runner_metadata("design:type","function"==typeof(x=void 0!==W&&W)?x:Object)],es.prototype,"factory",void 0),workflow_runner_decorate([(0,R.Autowired)(D),workflow_runner_metadata("design:type","function"==typeof(T=void 0!==D&&D)?T:Object)],es.prototype,"prelude",void 0),workflow_runner_decorate([(0,R.Autowired)(c),workflow_runner_metadata("design:type",Object)],es.prototype,"emitter",void 0),workflow_runner_decorate([(0,R.Autowired)(h),workflow_runner_metadata("design:type",Object)],es.prototype,"recordWriter",void 0),workflow_runner_decorate([(0,R.Autowired)(u),(0,R.Optional)(),workflow_runner_metadata("design:type",Object)],es.prototype,"registry",void 0),workflow_runner_decorate([(0,R.Autowired)(a),(0,R.Optional)(),workflow_runner_metadata("design:type",Object)],es.prototype,"parser",void 0),workflow_runner_decorate([(0,R.Autowired)(l),(0,R.Optional)(),workflow_runner_metadata("design:type",Object)],es.prototype,"compiler",void 0),es=workflow_runner_decorate([(0,R.Component)(i)],es);let ec=["prompt","agentType","model","isolation","schema","maxTurns"],eu=class{next(e,t){let r=stableSerialize(this.pickKeyFields(t));return"v2:"+(0,F.createHash)("sha256").update(e||"","utf8").update("|","utf8").update(r,"utf8").digest("hex")}pickKeyFields(e){let t={};for(let r of ec){let n=e[r];void 0!==n&&(t[r]=n)}return t}};function stableSerialize(e){return JSON.stringify(e,(e,t)=>{if(t&&"object"==typeof t&&!Array.isArray(t)){let e={};for(let r of Object.keys(t).sort())e[r]=t[r];return e}return t})}eu=function(e,t,r,n){var o,a=arguments.length,l=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)l=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(o=e[i])&&(l=(a<3?o(l):a>3?o(t,r,l):o(t,r))||l);return a>3&&l&&Object.defineProperty(t,r,l),l}([(0,R.Component)(m)],eu);let WorkflowBudgetImpl=class WorkflowBudgetImpl{constructor(e){this.total=e,this.spentTokens=0}spent(){return this.spentTokens}remaining(){return void 0===this.total?1/0:Math.max(0,this.total-this.spentTokens)}reserve(e){if(void 0===this.total)return;let t=Math.max(0,Number.isFinite(e)?e:0);if(this.spentTokens+t>this.total)throw new WorkflowBudgetExceededError(this.total,this.spentTokens,t)}deduct(e){void 0===this.total||Number.isFinite(e)&&!(e<=0)&&(this.spentTokens+=e)}};let ed=class{create(e){return new WorkflowBudgetImpl(e)}};ed=function(e,t,r,n){var o,a=arguments.length,l=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)l=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(o=e[i])&&(l=(a<3?o(l):a>3?o(t,r,l):o(t,r))||l);return a>3&&l&&Object.defineProperty(t,r,l),l}([(0,R.Component)(f)],ed);var em=r(88415),workflow_journal_decorate=function(e,t,r,n){var o,a=arguments.length,l=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)l=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(o=e[i])&&(l=(a<3?o(l):a>3?o(t,r,l):o(t,r))||l);return a>3&&l&&Object.defineProperty(t,r,l),l};let FileJournal=class FileJournal{constructor(e,t,r){this.journalPath=e,this.runId=t,this.logger=r,this.writeChain=Promise.resolve(),this.closed=!1}record(e){if(this.closed)return;let t=JSON.stringify(e)+"\n";this.writeChain=this.writeChain.then(()=>j.promises.appendFile(this.journalPath,t,{mode:384,encoding:"utf8"})).catch(e=>{this.logger.warn?.(`[WorkflowJournal] append failed for run ${this.runId}: ${e.message}`)})}async close(){this.closed=!0,await this.writeChain}};let ef=class{async create(e,t){let r=em.P.getWorkflowRunJournalPath(e,t);await j.promises.mkdir((0,U.dirname)(r),{recursive:!0,mode:448});try{let e=await j.promises.open(r,"a",384);await e.close()}catch(e){this.logger.warn?.(`[WorkflowJournal] could not pre-create ${r}: ${e.message}`)}return new FileJournal(r,t,this.logger)}async load(e,t){let r=em.P.getWorkflowRunJournalPath(e,t),n=await this.tryReadFile(r);if(void 0!==n)return parseSnapshot(t,n,this.logger)}async tryReadFile(e){try{return await j.promises.readFile(e,"utf8")}catch(e){if("ENOENT"===e.code)return;throw e}}};function parseSnapshot(e,t,r){let n={runId:e,started:new Map,results:new Map},o=t.split("\n");for(let t=0;t<o.length;t++){let a,l=o[t].trim();if(l){try{a=JSON.parse(l)}catch{r.warn?.(`[WorkflowJournal] skip malformed line ${t+1} in run ${e}`);continue}switch(a.type){case"agent_started":n.started.set(a.key,a);break;case"agent_finished":n.results.set(a.key,a);break;case"agent_invalidated":n.results.delete(a.key)}}}return n}workflow_journal_decorate([(0,R.Autowired)(et.Logger),function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)}("design:type","function"==typeof(k=void 0!==et.Logger&&et.Logger)?k:Object)],ef.prototype,"logger",void 0),ef=workflow_journal_decorate([(0,R.Component)(d)],ef);var workflow_run_record_writer_decorate=function(e,t,r,n){var o,a=arguments.length,l=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)l=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(o=e[i])&&(l=(a<3?o(l):a>3?o(t,r,l):o(t,r))||l);return a>3&&l&&Object.defineProperty(t,r,l),l};let eh=class{constructor(){this.tmpCounter=0}async write(e,t){let r=em.P.getWorkflowRunRecordPath(e,t.runId),n=`${r}.${process.pid}.${this.tmpCounter++}.tmp`;try{await j.promises.mkdir((0,U.dirname)(r),{recursive:!0,mode:448});let e=JSON.stringify(t,null,2);await j.promises.writeFile(n,e,{mode:384,encoding:"utf8"}),await j.promises.rename(n,r)}catch(e){this.logger.warn?.(`[WorkflowRecordWriter] write failed for run ${t.runId}: ${e.message}`),await j.promises.unlink(n).catch(()=>void 0)}}};workflow_run_record_writer_decorate([(0,R.Autowired)(et.Logger),function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)}("design:type","function"==typeof(S=void 0!==et.Logger&&et.Logger)?S:Object)],eh.prototype,"logger",void 0),eh=workflow_run_record_writer_decorate([(0,R.Component)(h)],eh);var ep=r(6529),workflow_registry_decorate=function(e,t,r,n){var o,a=arguments.length,l=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)l=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(o=e[i])&&(l=(a<3?o(l):a>3?o(t,r,l):o(t,r))||l);return a>3&&l&&Object.defineProperty(t,r,l),l},workflow_registry_metadata=function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};let eg=Symbol("BuiltinWorkflowProvider"),eE=class{async list(){if(this.cache)return this.cache;let e=await this.loadAll();return this.cache=e,e}async find(e){return(await this.list()).find(t=>t.name===e)}invalidate(){this.cache=void 0}async loadAll(){let e=new Map;for(let t of(await this.scanDir("project",this.projectDir())))e.set(t.name,t);for(let t of(await this.scanDir("user",em.P.getWorkflowsDir())))e.has(t.name)||e.set(t.name,t);for(let t of(await this.builtinEntries()))e.has(t.name)||e.set(t.name,t);return[...e.values()].sort((e,t)=>e.name.localeCompare(t.name))}projectDir(){return(0,U.join)(process.cwd(),".codebuddy","workflows")}async scanDir(e,t){let r;try{r=await ep.Sn.readdir(t)}catch(e){if("ENOENT"===e.code)return[];return this.logger.warn?.(`[WorkflowRegistry] scan ${t} failed: ${e.message}`),[]}let n=[];for(let o of r){if(!o.endsWith(".js"))continue;let r=(0,U.join)(t,o),a=await this.readMeta(r);n.push({name:o.replace(/\.js$/,""),scope:e,scriptPath:r,...void 0!==a.description?{description:a.description}:{},...void 0!==a.whenToUse?{whenToUse:a.whenToUse}:{}})}return n}async readMeta(e){try{let t=await ep.Sn.readFile(e,"utf-8");return parseMetaFromHead(t.slice(0,8192))}catch{return{}}}async builtinEntries(){return this.builtinProvider?(await this.builtinProvider.list()).map(e=>({name:e.name,scope:"builtin",scriptPath:e.scriptPath,...void 0!==e.description?{description:e.description}:{}})):[]}};function parseMetaFromHead(e){let t=e.search(/\bmeta\s*=\s*\{/);if(t<0)return{};let r=e.indexOf("{",t),n=findMatchingBrace(e,r);if(n<0)return{};let o=e.slice(r+1,n);return{name:extractStringField(o,"name"),description:extractStringField(o,"description"),whenToUse:extractStringField(o,"whenToUse")}}function extractStringField(e,t){let r=RegExp(`(?:^|[,{\\s])${t}\\s*:\\s*([\`'"])`,"m").exec(e);if(!r)return;let n=r[1],o=r.index+r[0].length,a="";for(;o<e.length;){let t=e[o];if("\\"===t&&o+1<e.length){let t=e[o+1];a+=ew[t]??t,o+=2;continue}if("`"===n&&"$"===t&&"{"===e[o+1])break;if(t===n)return a;a+=t,o++}}workflow_registry_decorate([(0,R.Autowired)(et.Logger),workflow_registry_metadata("design:type","function"==typeof(v=void 0!==et.Logger&&et.Logger)?v:Object)],eE.prototype,"logger",void 0),workflow_registry_decorate([(0,R.Autowired)(eg),(0,R.Optional)(),workflow_registry_metadata("design:type",Object)],eE.prototype,"builtinProvider",void 0),eE=workflow_registry_decorate([(0,R.Component)(u)],eE);let ew={n:"\n",r:"\r",t:" ",'"':'"',"'":"'","`":"`","\\":"\\"};function findMatchingBrace(e,t){let r=0,n=t;for(;n<e.length;){let t=e[n];if("'"===t||'"'===t||"`"===t){if((n=skipString(e,n,t))<0)return -1;continue}if("/"===t&&"/"===e[n+1]){let t=e.indexOf("\n",n);if(t<0)return -1;n=t+1;continue}if("/"===t&&"*"===e[n+1]){let t=e.indexOf("*/",n+2);if(t<0)return -1;n=t+2;continue}if("{"===t)r++;else if("}"===t&&0==--r)return n;n++}return -1}function skipString(e,t,r){let n=t+1;for(;n<e.length;){let t=e[n];if("\\"===t&&n+1<e.length){n+=2;continue}if("`"===r&&"$"===t&&"{"===e[n+1]){n+=2;let t=1;for(;n<e.length&&t>0;)"{"===e[n]?t++:"}"===e[n]&&t--,n++;continue}if(t===r)return n+1;n++}return -1}let ey=".workflow.js",eb=class{async list(){return this.cached?this.cached:(this.inflight||(this.inflight=this.discover().then(e=>(this.cached=e,this.inflight=void 0,e))),this.inflight)}async discover(){let e,t=em.P.resolveRootPathSync("builtin/workflows");try{e=await j.promises.readdir(t)}catch(e){return"ENOENT"!==e.code&&console.warn(`[BuiltinWorkflow] readdir ${t} failed: ${String(e)}`),[]}let r=[];for(let n of e){if(!n.endsWith(ey))continue;let e=(0,U.join)(t,n),o=n.slice(0,-ey.length),a="";try{a=(await j.promises.readFile(e,"utf8")).slice(0,8192)}catch(t){console.warn(`[BuiltinWorkflow] read ${e} failed: ${String(t)}`)}let l=parseMetaFromHead(a);r.push({name:l.name??o,scriptPath:e,...void 0!==l.description?{description:l.description}:{}})}return r}};eb=function(e,t,r,n){var o,a=arguments.length,l=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)l=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(o=e[i])&&(l=(a<3?o(l):a>3?o(t,r,l):o(t,r))||l);return a>3&&l&&Object.defineProperty(t,r,l),l}([(0,R.Component)(eg)],eb);var ex=r(71114),eT=r(9057),workflow_acp_bridge_decorate=function(e,t,r,n){var o,a=arguments.length,l=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)l=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(o=e[i])&&(l=(a<3?o(l):a>3?o(t,r,l):o(t,r))||l);return a>3&&l&&Object.defineProperty(t,r,l),l},workflow_acp_bridge_metadata=function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};let ek=class{install(){if(this.unsubscribe||!this.emitter)return;let e=this.emitter;"function"==typeof e.on&&(this.unsubscribe=e.on(e=>this.dispatch(e)),this.logger.debug?.("[WorkflowAcpBridge] subscribed to workflow progress"))}dispose(){if(this.unsubscribe){try{this.unsubscribe()}catch{}this.unsubscribe=void 0}}dispatch(e){let t=this.resolveSession(),r=t?.meta?.acpConnectionId;r&&t&&this.send(r,t.id,e).catch(e=>this.logger.warn?.(`[WorkflowAcpBridge] dispatch failed: ${e.message}`))}resolveSession(){try{return this.sessionManager.getCurrent()}catch{return}}async send(e,t,r){let n;try{n=R.ContainerUtil.get(ex.NZ)}catch{return}let o=n.get(e);if(!o)return;let a=o.getConnection?.();if(!a||"function"!=typeof a.sessionUpdate)return;let l=this.toMeta(r);await a.sessionUpdate({sessionId:t,update:{sessionUpdate:"session_info_update",_meta:l}})}toMeta(e){let t={"codebuddy.ai/workflowEventKind":e.kind};switch(e.kind){case"workflow_run_started":case"workflow_run_finished":t["codebuddy.ai/workflowRunId"]=e.record.runId,t["codebuddy.ai/workflowName"]=e.record.name,t["codebuddy.ai/workflowStatus"]=e.record.status,t["codebuddy.ai/workflowAgentCount"]=e.record.agentCount,t["codebuddy.ai/workflowCachedCount"]=e.record.cachedAgentCount,t["codebuddy.ai/workflowPhaseCount"]=e.record.phaseCount,void 0!==e.record.error&&(t["codebuddy.ai/workflowError"]=e.record.error);break;case"workflow_phase_started":case"workflow_phase_finished":t["codebuddy.ai/workflowRunId"]=e.runId,t["codebuddy.ai/workflowPhase"]=e.phase;break;case"workflow_agent_started":case"workflow_agent_finished":case"workflow_agent_cached":t["codebuddy.ai/workflowRunId"]=e.runId,t["codebuddy.ai/workflowAgentKey"]=e.agent.key,void 0!==e.agent.label&&(t["codebuddy.ai/workflowAgentLabel"]=e.agent.label),void 0!==e.agent.phase&&(t["codebuddy.ai/workflowAgentPhase"]=e.agent.phase),void 0!==e.agent.error&&(t["codebuddy.ai/workflowAgentError"]=e.agent.error),void 0!==e.agent.tokens&&(t["codebuddy.ai/workflowAgentTokens"]=e.agent.tokens)}return t}};workflow_acp_bridge_decorate([(0,R.Autowired)(et.Logger),workflow_acp_bridge_metadata("design:type","function"==typeof(C=void 0!==et.Logger&&et.Logger)?C:Object)],ek.prototype,"logger",void 0),workflow_acp_bridge_decorate([(0,R.Autowired)(eT.Cv),workflow_acp_bridge_metadata("design:type","function"==typeof(_=void 0!==eT.Cv&&eT.Cv)?_:Object)],ek.prototype,"sessionManager",void 0),workflow_acp_bridge_decorate([(0,R.Autowired)(c),(0,R.Optional)(),workflow_acp_bridge_metadata("design:type",Object)],ek.prototype,"emitter",void 0),ek=workflow_acp_bridge_decorate([(0,R.Component)()],ek);var eS=r(47502),ev=r(43263),memory_probe_decorate=function(e,t,r,n){var o,a=arguments.length,l=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)l=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(o=e[i])&&(l=(a<3?o(l):a>3?o(t,r,l):o(t,r))||l);return a>3&&l&&Object.defineProperty(t,r,l),l},memory_probe_metadata=function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};let eC=class{constructor(){this.installed=!1,this.nearLimitSnapshotTaken=!1,this.sampleCpuPercent=(0,ev.R)(),this.rssDivergenceWarned=!1}static{A=this}static{this.RSS_DIVERGENCE_WARN_MB=2048}async onStart(){this.install()}async onStop(){this.dispose()}install(){if(this.installed)return;this.installed=!0;let e=this.emitter;e&&"function"==typeof e.on&&(this.unsubscribe=e.on(e=>this.handleEvent(e))),this.tickTimer=setInterval(()=>this.tick(),3e4),this.tickTimer.unref?.(),this.logger.info?.("[WorkflowMemProbe] installed")}dispose(){if(this.unsubscribe){try{this.unsubscribe()}catch{}this.unsubscribe=void 0}this.tickTimer&&(clearInterval(this.tickTimer),this.tickTimer=void 0),this.installed=!1}handleEvent(e){let t=A.sampleMemory();switch(e.kind){case"workflow_run_started":this.lastRunId=e.record.runId,this.log("run-start",{runId:e.record.runId,name:e.record.name},t);break;case"workflow_run_finished":this.log("run-end",{runId:e.record.runId,status:e.record.status,agents:e.record.agentCount,cached:e.record.cachedAgentCount,tokens:e.record.tokens??0,durationMs:(e.record.endedAt??Date.now())-e.record.startedAt},t),"1"===process.env.CBC_HEAP_SNAPSHOT_ON_WORKFLOW_END&&this.writeHeapSnapshot(`wf-${e.record.runId.slice(0,8)}`),this.lastRunId===e.record.runId&&(this.lastRunId=void 0);break;case"workflow_phase_started":this.lastRunId=e.runId,this.log("phase-start",{runId:e.runId,phase:e.phase},t);break;case"workflow_phase_finished":this.log("phase-end",{runId:e.runId,phase:e.phase},t);break;case"workflow_agent_finished":this.log("agent-end",{runId:e.runId,label:e.agent.label,phase:e.agent.phase,tokens:e.agent.tokens??0,durationMs:e.agent.endedAt&&e.agent.startedAt?e.agent.endedAt-e.agent.startedAt:0,error:e.agent.error},t);break;case"workflow_agent_started":case"workflow_agent_cached":this.lastRunId=e.runId}}tick(){let e=A.sampleMemory();this.log("tick",{runId:this.lastRunId??"(none)"},e),this.maybeWarnRssDivergence(e),this.maybeSnapshotNearHeapLimit()}maybeWarnRssDivergence(e){if(this.rssDivergenceWarned)return;let t=e.rssMB-e.heapTotalMB-e.externalMB;if(t<A.RSS_DIVERGENCE_WARN_MB)return;this.rssDivergenceWarned=!0;let r=A.sampleNativeMemory(),n=r?`${r.mallocedMB}MB (peak ${r.peakMallocedMB}MB)`:"n/a";this.logger.warn?.(`[WorkflowMemProbe] RSS diverges from JS accounting: rss=${e.rssMB}MB but heapTotal=${e.heapTotalMB}MB external=${e.externalMB}MB \u{2192} ${Math.round(t)}MB unaccounted (V8 malloced=${n}). Growth is outside the JS heap \u{2014} suspect native allocations or an allocator not returning pages. Long sessions can reclaim via /compact or a fresh session.`)}maybeSnapshotNearHeapLimit(){if(this.nearLimitSnapshotTaken)return;let e=A.resolveNearLimitPct(process.env.CODEBUDDY_CODE_HEAP_SNAPSHOT_NEAR_LIMIT_PCT);if(void 0===e)return;let t=this.readHeapLimit(),r=this.readHeapUsed();if(!A.isOverHeapWatermark(r,t,e))return;this.nearLimitSnapshotTaken=!0;let n=(r/t*100).toFixed(1);this.logger.warn?.(`[WorkflowMemProbe] near heap limit: heapUsed=${round(r)}MB/${round(t)}MB (${n}%, watermark=${(100*e).toFixed(0)}%) \u{2014} writing heap snapshot for OOM forensics`),this.writeHeapSnapshot(`oom-nearlimit-${process.pid}`)}readHeapUsed(){return process.memoryUsage().heapUsed}readHeapLimit(){try{return r(11493).getHeapStatistics().heap_size_limit}catch{return 0}}static resolveNearLimitPct(e){if(void 0===e)return;let t=e.trim().toLowerCase();if(""===t||"0"===t||"false"===t||"off"===t||"no"===t)return;if("1"===t||"true"===t||"on"===t||"yes"===t)return .85;let r=Number(t);if(Number.isFinite(r)&&!(r<=0)){if(r<1)return r;if(r<=100)return r/100}}static isOverHeapWatermark(e,t,r){return t>0&&e/t>=r}static sampleMemory(){let e=process.memoryUsage();return{rssMB:round(e.rss),heapUsedMB:round(e.heapUsed),heapTotalMB:round(e.heapTotal),externalMB:round(e.external),arrayBuffersMB:round(e.arrayBuffers??0)}}static sampleNativeMemory(){try{let e=r(11493).getHeapStatistics();return{mallocedMB:round(e.malloced_memory),peakMallocedMB:round(e.peak_malloced_memory),heapLimitMB:round(e.heap_size_limit)}}catch{return}}log(e,t,r){let n=Object.entries(t).filter(([,e])=>void 0!==e&&""!==e).map(([e,t])=>`${e}=${"string"==typeof t?t:JSON.stringify(t)}`).join(" "),o=A.sampleNativeMemory(),a=o?` malloced=${o.mallocedMB}/${o.peakMallocedMB}MB heapLimit=${o.heapLimitMB}MB`:"";this.logger.info?.(`[WorkflowMemProbe] ${e} ${n} | rss=${r.rssMB}MB heap=${r.heapUsedMB}/${r.heapTotalMB}MB external=${r.externalMB}MB arrayBuffers=${r.arrayBuffersMB}MB${a} cpuPercent=${this.sampleCpuPercent().toFixed(1)}`)}writeHeapSnapshot(e){try{let t=r(11493),n=r(16928),o=r(79896),a=r(70857),l=new Date,i=A.dateDir(l),s=n.join(a.homedir(),".codebuddy","diagnostics"),c=n.join(s,i);try{o.mkdirSync(c,{recursive:!0})}catch{}let u=l.toISOString().replace(/[:.]/g,"-"),d=e.replace(/[^A-Za-z0-9_.-]/g,"-").slice(0,48),m=n.join(c,`${d}-${u}.heapsnapshot`);t.writeHeapSnapshot(m),(0,eS.D)(s,eS.w).catch(()=>{}),this.logger.info?.(`[WorkflowMemProbe] heap snapshot written: ${m}`)}catch(e){this.logger.warn?.(`[WorkflowMemProbe] heap snapshot failed: ${e.message}`)}}static dateDir(e=new Date){let t=e.getFullYear(),r=String(e.getMonth()+1).padStart(2,"0"),n=String(e.getDate()).padStart(2,"0");return`${t}-${r}-${n}`}};function round(e){return Math.round(e/1024/1024*10)/10}memory_probe_decorate([(0,R.Autowired)(et.Logger),memory_probe_metadata("design:type","function"==typeof(M=void 0!==et.Logger&&et.Logger)?M:Object)],eC.prototype,"logger",void 0),memory_probe_decorate([(0,R.Autowired)(c),(0,R.Optional)(),memory_probe_metadata("design:type",Object)],eC.prototype,"emitter",void 0),eC=A=memory_probe_decorate([(0,R.Component)(R.ApplicationLifecycle)],eC);var e_=r(68238);let PauseGate=class PauseGate{constructor(){this.paused=!1,this.waiters=[]}isPaused(){return this.paused}pause(){return!this.paused&&(this.paused=!0,!0)}resume(){if(!this.paused)return!1;for(let e of(this.paused=!1,this.waiters.splice(0)))try{e()}catch{}return!0}async waitIfPaused(e){if(this.paused){if(e?.aborted)throw Error("aborted");await new Promise((t,r)=>{let onAbort=()=>{let e=this.waiters.indexOf(wakeup);e>=0&&this.waiters.splice(e,1),r(Error("aborted"))},wakeup=()=>{e?.removeEventListener("abort",onAbort),t()};e?.addEventListener("abort",onAbort,{once:!0}),this.waiters.push(wakeup)})}}};var workflow_manager_decorate=function(e,t,r,n){var o,a=arguments.length,l=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)l=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(o=e[i])&&(l=(a<3?o(l):a>3?o(t,r,l):o(t,r))||l);return a>3&&l&&Object.defineProperty(t,r,l),l},workflow_manager_metadata=function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};let eA=class{constructor(){this.active=new Map,this.recent=[]}static{I=this}async start(e,t){let r=await this.resolver.resolve(e),n=this.parser.parse(r),o=this.compiler.compile(n),a=this.resolveSession(t.sessionId);a&&this.spawner instanceof el&&this.spawner.setMainSession(a);let l=(0,F.randomUUID)(),i=new AbortController;t.parentAbortSignal&&(t.parentAbortSignal.aborted?i.abort():t.parentAbortSignal.addEventListener("abort",()=>i.abort(),{once:!0}));let s={runId:l,source:r,parsed:n,compiled:o,args:e.args,abortController:i,parentSessionId:t.sessionId,...void 0!==e.resumeFromRunId?{resumeFromRunId:e.resumeFromRunId}:{}};this.persistScriptSnapshot(t.sessionId,l,r).catch(e=>this.logger.warn?.(`[Workflow] script snapshot failed for ${l}: ${e.message}`));let c={runId:l,name:r.name,description:this.deriveDescription(n.meta,e.args,r.text),contentHash:r.provenance.contentHash,startedAt:Date.now(),status:"running",phaseCount:0,agentCount:0,cachedAgentCount:0,tokens:0,sessionId:t.sessionId},u=new PauseGate,d={record:c,abortController:i,done:void 0,pauseGate:u};this.active.set(l,d);let m=this.runner.run(s,{initialRecord:c,onExecutionReady:e=>{d.execution=e},pauseGate:u}).then(e=>(this.finalizeRun(l,e,d.execution),e)).catch(e=>{let t={...c,status:e instanceof WorkflowError&&5===e.errorCode?"aborted":"failed",error:e instanceof Error?e.message:String(e),endedAt:Date.now()};return this.finalizeRun(l,t,d.execution),t});return d.done=m,{runId:l,record:c,done:m}}attachExecution(e,t){let r=this.active.get(e);r&&(r.execution=t)}syncProgress(e){let t=this.active.get(e);if(!t?.execution)return;let r=t.execution;t.record.agentCount=r.totalAgentsSpawned,t.record.cachedAgentCount=r.totalAgentsCached,t.record.agentInFlightCount=r.totalAgentsInFlight,t.record.phaseCount=r.totalPhases,t.record.tokens=r.totalTokensSpent}abort(e,t="user-abort"){let r=this.active.get(e);return!!r&&(r.abortController.abort(t),!0)}pause(e){let t=this.active.get(e);if(!t)return!1;let r=t.pauseGate.pause();return r&&(t.record.paused=!0),r}resume(e){let t=this.active.get(e);if(!t)return!1;let r=t.pauseGate.resume();return r&&(t.record.paused=!1),r}abortAgent(e,t){let r=this.active.get(e);return!!r?.execution&&r.execution.abortAgent(t,"user-skip")}restartAgent(e,t){let r=this.active.get(e);if(!r?.execution)return!1;let n=r.execution.abortAgent(t,"user-restart");return r.execution.markAgentInvalidated(t,"user-restart"),n||!0}listActive(){for(let e of this.active.keys())this.syncProgress(e);return[...this.active.values()].map(e=>e.record).sort((e,t)=>t.startedAt-e.startedAt)}listRecent(e=50){for(let e of this.active.keys())this.syncProgress(e);let t=[];for(let e of[...this.active.values()].sort((e,t)=>t.record.startedAt-e.record.startedAt))t.push(e.record);for(let e=this.recent.length-1;e>=0;e--)t.push(this.recent[e].record);return t.slice(0,e)}async getRunDetail(e,t){let r=this.active.get(t);if(r?.execution)return this.buildDetailFromExecution(r.record,r.execution);let n=this.recent.find(e=>e.record.runId===t);return n?.detail?n.detail:n?{record:n.record,phases:[],agents:[]}:void 0}snapshotPath(e,t){let r=this.active.get(t)?.record.scriptPath;if(r)return r;let n=this.recent.find(e=>e.record.runId===t)?.record.scriptPath;return n||em.P.getWorkflowScriptsDirForRun(e)}async saveAs(e,t,r,n){if(!I.SAFE_NAME_RE.test(r))throw Error(`Invalid workflow name "${r}". Use [a-zA-Z0-9_-], 1\u{2013}64 chars.`);let o=this.snapshotPath(e,t);try{await j.promises.access(o)}catch{throw Error(`No script snapshot for run \`${t}\`. The run may not have started or has been pruned.`)}let a="user"===n?em.P.getWorkflowsDir():(0,U.join)(process.cwd(),".codebuddy","workflows"),l=(0,U.join)(a,`${r}.js`);return await j.promises.mkdir((0,U.dirname)(l),{recursive:!0,mode:493}),await j.promises.copyFile(o,l),this.invalidateRegistry(),await this.refreshCommands(),{targetPath:l}}static{this.SAFE_NAME_RE=/^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$/}invalidateRegistry(){try{let e=R.ContainerUtil.get(u);e.invalidate?.()}catch{}}async refreshCommands(){try{let e=R.ContainerUtil.get(e_.FQ);await e.refresh?.()}catch(e){this.logger.warn?.(`[WorkflowManager] commandManager.refresh failed (saved workflow won't appear in / suggestions until next /reload): ${e.message}`)}}resolveSession(e){try{return R.ContainerUtil.get(eT.Cv).getCurrent()}catch{return}}async persistScriptSnapshot(e,t,r){let n=em.P.getWorkflowScriptsDirForRun(e);await j.promises.mkdir(n,{recursive:!0,mode:448});let o=await this.findExistingScriptByHash(n,r.name,r.provenance.contentHash),a=o??em.P.getWorkflowScriptSnapshotPath(e,r.name,t);o||await j.promises.writeFile(a,r.text,{mode:384,encoding:"utf8"});let l=this.active.get(t);l&&(l.record.scriptPath=a)}async findExistingScriptByHash(e,t,r){let n;try{n=await j.promises.readdir(e)}catch(e){if("ENOENT"===e.code)return;throw e}let o=`${t}-wf_`;for(let t of n.filter(e=>e.startsWith(o)&&e.endsWith(".js"))){let n=`${e}/${t}`;try{let e=await j.promises.readFile(n,"utf8");if(await this.sha256(e)===r)return n}catch{continue}}}async sha256(e){let{createHash:t}=await Promise.resolve().then(r.t.bind(r,76982,23));return t("sha256").update(e,"utf8").digest("hex")}finalizeRun(e,t,r){t.agentInFlightCount=0;let n=r?this.buildDetailFromExecution(t,r):{record:t,phases:[],agents:[]};for(this.active.delete(e),this.recent.push({record:t,detail:n});this.recent.length>50;)this.recent.shift();r?.dispose();let o=this.progressEmitter;try{o.cancelPending?.()}catch{}this.progressEmitter.emit({kind:"workflow_run_finished",record:t})}buildDetailFromExecution(e,t){return{record:e,phases:t.snapshotPhases().map(e=>({...e})),agents:t.snapshotAgents().map(e=>({...e}))}}deriveDescription(e,t,r){if(e?.description&&"string"==typeof e.description)return e.description;if("string"==typeof t&&t.length>0)return t.slice(0,200);if(t&&"object"==typeof t&&null!==t){let e=t.question;if("string"==typeof e&&e.length>0)return e.slice(0,200)}}};workflow_manager_decorate([(0,R.Autowired)(et.Logger),workflow_manager_metadata("design:type","function"==typeof(O=void 0!==et.Logger&&et.Logger)?O:Object)],eA.prototype,"logger",void 0),workflow_manager_decorate([(0,R.Autowired)(o),workflow_manager_metadata("design:type",Object)],eA.prototype,"resolver",void 0),workflow_manager_decorate([(0,R.Autowired)(a),workflow_manager_metadata("design:type",Object)],eA.prototype,"parser",void 0),workflow_manager_decorate([(0,R.Autowired)(l),workflow_manager_metadata("design:type",Object)],eA.prototype,"compiler",void 0),workflow_manager_decorate([(0,R.Autowired)(i),workflow_manager_metadata("design:type",Object)],eA.prototype,"runner",void 0),workflow_manager_decorate([(0,R.Autowired)(s),workflow_manager_metadata("design:type",Object)],eA.prototype,"spawner",void 0),workflow_manager_decorate([(0,R.Autowired)(c),workflow_manager_metadata("design:type",Object)],eA.prototype,"progressEmitter",void 0),eA=I=workflow_manager_decorate([(0,R.Component)(n)],eA),r(92309)},48935(){},37562(){},21049(){},30296(){},23544(){},71416(){},67945(){},30499(){},15553(){},88987(){},888(){},902(){},35495(){},79146(){},25973(){},50022(){},11215(){},66026(){},22019(){},19806(){},56421(){},80218(){},89223(){},69738(){},46824(){},26792(){},63598(){},56312(){},93001(){},19960(){},65366(){},85577(){},6004(){},52379(){}};
|
|
83
|
+
${a.userPrompt}`,subagent_type:l,...e.model&&{model:e.model},mainSession:t,...e.maxTurns&&{maxTurns:e.maxTurns},detached:!0}),this.taskManager.registerTask(this.task,!0)}get lastActivityAt(){let e=this.task.toolCallHistory?.[this.task.toolCallHistory.length-1]?.timestamp;return"number"==typeof e&&e>this._lastActivityAt&&(this._lastActivityAt=e),this._lastActivityAt}async wait(){let e,t;this.executePromise||(this.executePromise=this.task.execute());try{let t=await this.executePromise;this.settled=!0,e={text:t.content,sessionId:t.sessionId,tokens:this.totalTokens(),toolCallCount:this.task.toolCallHistory?.length??0,lastToolCalls:extractLastToolCalls(this.task.toolCallHistory),stopReason:"completed"===this.task.status?"end_turn":null,durationMs:Date.now()-this.startedAt}}catch(e){this.settled=!0,t=this.aborted?new WorkflowSandboxError(`subagent aborted: ${e.message}`,{cause:e}):e}finally{try{this.taskManager.removeTask(this.task.id)}catch{}try{this.task.toolCallHistory&&(this.task.toolCallHistory.length=0),this.task.prompt=void 0,this.task.response=void 0,this.task.result=void 0,this.executePromise=void 0}catch{}}if(t)throw t;return e}abort(e){if(!this.settled&&!this.aborted){this.aborted=!0;try{this.task.abortController?.abort(e)}catch{}}}totalTokens(){let e=this.task.tokenUsage;return e?e.totalTokens??e.inputTokens+e.outputTokens:0}};let ei=class{create(e,t){if(!t)throw new WorkflowSandboxError("AgentTaskExecutionFactory requires a parent session.");return new AgentTaskExecution(e,t,this.promptBuilder)}};function extractLastToolCalls(e){return e&&0!==e.length?e.slice(Math.max(0,e.length-3)).map(e=>({tool:e.name,argsPreview:previewArgs(e.arguments),at:e.timestamp})):[]}function previewArgs(e){let t;if(null==e)return"";if("string"==typeof e)return clip(e);if("object"!=typeof e)return"";for(let t of["query","pattern","command","cmd","path","file_path","filePath","url"]){let r=e[t];if("string"==typeof r&&r.length>0)return clip(r)}try{t=JSON.stringify(e)}catch{return""}return t&&"{}"!==t&&"[]"!==t?clip(t):""}function clip(e){return e.length<=80?e:e.slice(0,79)+"\u2026"}agent_task_adapter_decorate([(0,R.Autowired)(N),function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)}("design:type","function"==typeof(y=void 0!==N&&N)?y:Object)],ei.prototype,"promptBuilder",void 0),ei=agent_task_adapter_decorate([(0,R.Component)(p)],ei);let NestedWorkflowRunner=class NestedWorkflowRunner{constructor(e){this.prelude=e}async run(e){let t;if(e.parentRequest.abortController.signal.aborted)throw new WorkflowAbortedError("parent-aborted-before-nested");let r=this.composeNestedSandbox(e),n=Y.createContext(r,{name:`workflow-${e.parentRequest.runId}/nested:${e.name}`,codeGeneration:{strings:!1,wasm:!1}});new Y.Script(this.prelude.build(0),{filename:"<nested-prelude>"}).runInContext(n,{timeout:WorkflowConcurrencyConstants.SCRIPT_SYNC_TIMEOUT_MS});try{t=e.compiled.script.runInContext(n,{timeout:WorkflowConcurrencyConstants.SCRIPT_SYNC_TIMEOUT_MS,breakOnSigint:!0})}catch(t){throw new WorkflowSandboxError(`Nested workflow "${e.name}" threw: ${t.message}`,{cause:t})}return await this.awaitTopLevel(t)}composeNestedSandbox(e){let t=`[${e.name}]`,r=e.parentExecution.hooks.log,log=(...e)=>r(t,...e);return{agent:e.parentExecution.hooks.agent,parallel:e.parentExecution.hooks.parallel,pipeline:e.parentExecution.hooks.pipeline,phase:(e,t)=>t(),log,args:this.toJsonSafe(e.args),console:{log,warn:log,error:log,info:log,debug:log},setTimeout:(e,t)=>setTimeout(e,Math.max(0,Math.min(t,6e4))),clearTimeout:e=>clearTimeout(e),Promise,Symbol,Map,Set,JSON,RegExp,Number,Boolean,String,Array,Object,Error}}async awaitTopLevel(e){return e&&"function"==typeof e.then?await e:e}toJsonSafe(e){if(void 0!==e)try{return JSON.parse(JSON.stringify(e))}catch{return String(e)}}};let WorkflowAbortRacer=class WorkflowAbortRacer{constructor(e){this.abortSignal=e}async race(e){let t;if(!isPromiseLike(e))return e;let r=new Promise((e,r)=>{let onAbort=()=>r(new WorkflowAbortedError("user-abort"));this.abortSignal.aborted?onAbort():(this.abortSignal.addEventListener("abort",onAbort,{once:!0}),t=()=>this.abortSignal.removeEventListener("abort",onAbort))});try{return await Promise.race([e,r])}finally{t?.()}}};function isPromiseLike(e){return!!e&&"function"==typeof e.then}let WorkflowAbortAwareTimer=class WorkflowAbortAwareTimer{constructor(e){this.abortSignal=e,this.pending=new Map,this.nextId=1,this.disposed=!1,this.setTimeoutFn=(e,t)=>{if("function"!=typeof e)throw TypeError("setTimeout callback must be a function");let r=Math.max(0,Math.min(t??0,6e4));if(this.abortSignal.aborted||this.disposed)return queueMicrotask(()=>{try{e()}catch{}}),-1;let n=this.nextId++,o=setTimeout(()=>{this.pending.delete(n);try{e()}catch{}},r);return"function"==typeof o.unref&&o.unref(),this.pending.set(n,{handle:o,cb:e}),n},this.clearTimeoutFn=e=>{let t=this.pending.get(e);t&&(clearTimeout(t.handle),this.pending.delete(e))},this.abortListener=()=>this.flushAllOnAbort(),e.aborted||e.addEventListener("abort",this.abortListener,{once:!0})}dispose(){if(!this.disposed){for(let e of(this.disposed=!0,this.abortSignal.removeEventListener("abort",this.abortListener),this.pending.values()))clearTimeout(e.handle);this.pending.clear()}}flushAllOnAbort(){let e=[...this.pending.values()];for(let t of(this.pending.clear(),e)){clearTimeout(t.handle);try{t.cb()}catch{}}}};let WorkflowSandboxBuilder=class WorkflowSandboxBuilder{constructor(e){this.prelude=e}build(e,t){let r=new WorkflowAbortAwareTimer(e.abortController.signal),n=this.composeGlobals(e,t,r),o=Y.createContext(n,{name:`workflow-${e.runId}`,codeGeneration:{strings:!1,wasm:!1}});return new Y.Script(this.prelude.build(0),{filename:"<workflow-prelude>"}).runInContext(o,{timeout:WorkflowConcurrencyConstants.SCRIPT_SYNC_TIMEOUT_MS}),{context:o,dispose:()=>r.dispose()}}composeGlobals(e,t,r){let n={log:t.hooks.log,warn:t.hooks.log,error:t.hooks.log,info:t.hooks.log,debug:t.hooks.log};return{agent:t.hooks.agent,parallel:t.hooks.parallel,pipeline:t.hooks.pipeline,phase:t.hooks.phase,log:t.hooks.log,workflow:t.hooks.workflow,args:this.toJsonSafe(e.args),console:n,setTimeout:r.setTimeoutFn,clearTimeout:r.clearTimeoutFn,Promise,Symbol,Map,Set,JSON,RegExp,Number,Boolean,String,Array,Object,Error}}toJsonSafe(e){if(void 0!==e)try{return JSON.parse(JSON.stringify(e))}catch{return String(e)}}};var workflow_runner_decorate=function(e,t,r,n){var o,a=arguments.length,l=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)l=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(o=e[i])&&(l=(a<3?o(l):a>3?o(t,r,l):o(t,r))||l);return a>3&&l&&Object.defineProperty(t,r,l),l},workflow_runner_metadata=function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};let es=class{newSandboxBuilder(){return new WorkflowSandboxBuilder(this.prelude)}async run(e,t){let r=this.makeNestedInvoker(),n=t?.pauseGate,o=await this.factory.create(e,r,n);t?.onExecutionReady?.(o),o.recordRunStarted(e.source.name,e.source.provenance.contentHash);let a=t?.initialRecord??this.startRecord(e);this.emitter.emit({kind:"workflow_run_started",record:a}),e.parentSessionId&&await this.recordWriter.write(e.parentSessionId,a);try{let t=await this.executeInSandbox(e,o);a.status="completed",a.output=this.toJsonSafe(t),a.result=a.output}catch(t){a.status=t instanceof WorkflowAbortedError?"aborted":"failed",a.error=t instanceof Error?t.message:String(t),a.result={error:a.error},this.logger.error?.(`[Workflow] run ${e.runId} ${a.status}: ${a.error}`)}finally{a.endedAt=Date.now(),a.phaseCount=o.totalPhases,a.agentCount=o.totalAgentsSpawned,a.cachedAgentCount=o.totalAgentsCached,this.fillFinalRecord(a,e,o);let t="running"===a.status?"failed":a.status;o.recordRunFinished(t,a.output,a.error),await o.flushDurability(),e.parentSessionId&&await this.recordWriter.write(e.parentSessionId,a)}return a}fillFinalRecord(e,t,r){e.workflowName=t.source.name,e.script=t.source.text,e.args=this.toJsonSafe(t.args),e.defaultModel=t.parsed.meta.defaultModel,e.phases=t.parsed.meta.phases??[],e.logs=[...r.logs],e.workflowProgress=this.buildProgressTimeline(r),e.durationMs=e.endedAt&&e.startedAt?e.endedAt-e.startedAt:void 0,e.totalTokens=r.totalTokensSpent,e.totalToolCalls=this.sumToolCalls(r),e.timestamp=new Date(e.endedAt??Date.now()).toISOString()}buildProgressTimeline(e){let t=e.snapshotPhases(),r=e.snapshotAgents(),n=new Map,o=[];return t.forEach((e,t)=>{let r=t+1;n.set(e.name,r),o.push({type:"workflow_phase",index:r,title:e.name})}),r.forEach((e,t)=>{let r=e.phase?n.get(e.phase):void 0,a=e.cached?"cached":e.error?"error":e.endedAt?"done":"running",l={type:"workflow_agent",index:t+1,agentId:e.sessionId??(e.key.slice(0,16)||`agent-${t+1}`),state:a,startedAt:e.startedAt};void 0!==r&&(l.phaseIndex=r,l.phaseTitle=e.phase),void 0!==e.label&&(l.label=e.label),void 0!==e.model&&(l.model=e.model),void 0!==e.endedAt&&(l.endedAt=e.endedAt,l.durationMs=e.endedAt-e.startedAt),void 0!==e.tokens&&(l.tokens=e.tokens),void 0!==e.toolCallCount&&(l.toolCalls=e.toolCallCount),void 0!==e.error&&(l.error=e.error),o.push(l)}),o}sumToolCalls(e){let t=0;for(let r of e.snapshotAgents())t+=r.toolCallCount??0;return t}startRecord(e){return{runId:e.runId,name:e.source.name,contentHash:e.source.provenance.contentHash,startedAt:Date.now(),status:"running",phaseCount:0,agentCount:0,cachedAgentCount:0}}async executeInSandbox(e,t){let r=this.newSandboxBuilder().build(e,t);try{let t=this.runUserScriptSync(e,r.context),n=new WorkflowAbortRacer(e.abortController.signal);return await n.race(t)}catch(e){if(e instanceof WorkflowError)throw e;throw this.toSandboxError(e)}finally{r.dispose()}}runUserScriptSync(e,t){try{return e.compiled.script.runInContext(t,{timeout:WorkflowConcurrencyConstants.SCRIPT_SYNC_TIMEOUT_MS,breakOnSigint:!0})}catch(e){throw this.toSandboxError(e)}}toSandboxError(e){return e instanceof WorkflowError?e:new WorkflowSandboxError(`Workflow sandbox threw: ${e?.message??String(e)}`,{cause:e})}toJsonSafe(e){if(void 0!==e)try{return JSON.parse(JSON.stringify(e))}catch{return String(e)}}makeNestedInvoker(){if(!this.registry||!this.parser||!this.compiler)return;let e=this.registry,t=this.parser,r=this.compiler,n=new NestedWorkflowRunner(this.prelude);return async(o,a,l)=>{let i=await e.find(o);if(!i)throw new WorkflowSourceError("not_found",`Nested workflow "${o}" is not registered. Save it under .codebuddy/workflows/ first.`);let s=await j.promises.readFile(i.scriptPath,"utf8"),c={text:s,name:i.name,provenance:{kind:"builtin"===i.scope?"builtin":"saved",location:i.scriptPath,contentHash:"",sizeBytes:Buffer.byteLength(s,"utf8")}},u=t.parse(c),d=r.compile(u);return n.run({name:i.name,compiled:d,args:a,parentRequest:l.runRequest,parentExecution:l})}}};workflow_runner_decorate([(0,R.Autowired)(et.Logger),workflow_runner_metadata("design:type","function"==typeof(b=void 0!==et.Logger&&et.Logger)?b:Object)],es.prototype,"logger",void 0),workflow_runner_decorate([(0,R.Autowired)(W),workflow_runner_metadata("design:type","function"==typeof(x=void 0!==W&&W)?x:Object)],es.prototype,"factory",void 0),workflow_runner_decorate([(0,R.Autowired)(D),workflow_runner_metadata("design:type","function"==typeof(T=void 0!==D&&D)?T:Object)],es.prototype,"prelude",void 0),workflow_runner_decorate([(0,R.Autowired)(c),workflow_runner_metadata("design:type",Object)],es.prototype,"emitter",void 0),workflow_runner_decorate([(0,R.Autowired)(h),workflow_runner_metadata("design:type",Object)],es.prototype,"recordWriter",void 0),workflow_runner_decorate([(0,R.Autowired)(u),(0,R.Optional)(),workflow_runner_metadata("design:type",Object)],es.prototype,"registry",void 0),workflow_runner_decorate([(0,R.Autowired)(a),(0,R.Optional)(),workflow_runner_metadata("design:type",Object)],es.prototype,"parser",void 0),workflow_runner_decorate([(0,R.Autowired)(l),(0,R.Optional)(),workflow_runner_metadata("design:type",Object)],es.prototype,"compiler",void 0),es=workflow_runner_decorate([(0,R.Component)(i)],es);let ec=["prompt","agentType","model","isolation","schema","maxTurns"],eu=class{next(e,t){let r=stableSerialize(this.pickKeyFields(t));return"v2:"+(0,F.createHash)("sha256").update(e||"","utf8").update("|","utf8").update(r,"utf8").digest("hex")}pickKeyFields(e){let t={};for(let r of ec){let n=e[r];void 0!==n&&(t[r]=n)}return t}};function stableSerialize(e){return JSON.stringify(e,(e,t)=>{if(t&&"object"==typeof t&&!Array.isArray(t)){let e={};for(let r of Object.keys(t).sort())e[r]=t[r];return e}return t})}eu=function(e,t,r,n){var o,a=arguments.length,l=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)l=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(o=e[i])&&(l=(a<3?o(l):a>3?o(t,r,l):o(t,r))||l);return a>3&&l&&Object.defineProperty(t,r,l),l}([(0,R.Component)(m)],eu);let WorkflowBudgetImpl=class WorkflowBudgetImpl{constructor(e){this.total=e,this.spentTokens=0}spent(){return this.spentTokens}remaining(){return void 0===this.total?1/0:Math.max(0,this.total-this.spentTokens)}reserve(e){if(void 0===this.total)return;let t=Math.max(0,Number.isFinite(e)?e:0);if(this.spentTokens+t>this.total)throw new WorkflowBudgetExceededError(this.total,this.spentTokens,t)}deduct(e){void 0===this.total||Number.isFinite(e)&&!(e<=0)&&(this.spentTokens+=e)}};let ed=class{create(e){return new WorkflowBudgetImpl(e)}};ed=function(e,t,r,n){var o,a=arguments.length,l=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)l=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(o=e[i])&&(l=(a<3?o(l):a>3?o(t,r,l):o(t,r))||l);return a>3&&l&&Object.defineProperty(t,r,l),l}([(0,R.Component)(f)],ed);var em=r(88415),workflow_journal_decorate=function(e,t,r,n){var o,a=arguments.length,l=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)l=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(o=e[i])&&(l=(a<3?o(l):a>3?o(t,r,l):o(t,r))||l);return a>3&&l&&Object.defineProperty(t,r,l),l};let FileJournal=class FileJournal{constructor(e,t,r){this.journalPath=e,this.runId=t,this.logger=r,this.writeChain=Promise.resolve(),this.closed=!1}record(e){if(this.closed)return;let t=JSON.stringify(e)+"\n";this.writeChain=this.writeChain.then(()=>j.promises.appendFile(this.journalPath,t,{mode:384,encoding:"utf8"})).catch(e=>{this.logger.warn?.(`[WorkflowJournal] append failed for run ${this.runId}: ${e.message}`)})}async close(){this.closed=!0,await this.writeChain}};let ef=class{async create(e,t){let r=em.P.getWorkflowRunJournalPath(e,t);await j.promises.mkdir((0,U.dirname)(r),{recursive:!0,mode:448});try{let e=await j.promises.open(r,"a",384);await e.close()}catch(e){this.logger.warn?.(`[WorkflowJournal] could not pre-create ${r}: ${e.message}`)}return new FileJournal(r,t,this.logger)}async load(e,t){let r=em.P.getWorkflowRunJournalPath(e,t),n=await this.tryReadFile(r);if(void 0!==n)return parseSnapshot(t,n,this.logger)}async tryReadFile(e){try{return await j.promises.readFile(e,"utf8")}catch(e){if("ENOENT"===e.code)return;throw e}}};function parseSnapshot(e,t,r){let n={runId:e,started:new Map,results:new Map},o=t.split("\n");for(let t=0;t<o.length;t++){let a,l=o[t].trim();if(l){try{a=JSON.parse(l)}catch{r.warn?.(`[WorkflowJournal] skip malformed line ${t+1} in run ${e}`);continue}switch(a.type){case"agent_started":n.started.set(a.key,a);break;case"agent_finished":n.results.set(a.key,a);break;case"agent_invalidated":n.results.delete(a.key)}}}return n}workflow_journal_decorate([(0,R.Autowired)(et.Logger),function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)}("design:type","function"==typeof(k=void 0!==et.Logger&&et.Logger)?k:Object)],ef.prototype,"logger",void 0),ef=workflow_journal_decorate([(0,R.Component)(d)],ef);var workflow_run_record_writer_decorate=function(e,t,r,n){var o,a=arguments.length,l=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)l=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(o=e[i])&&(l=(a<3?o(l):a>3?o(t,r,l):o(t,r))||l);return a>3&&l&&Object.defineProperty(t,r,l),l};let eh=class{constructor(){this.tmpCounter=0}async write(e,t){let r=em.P.getWorkflowRunRecordPath(e,t.runId),n=`${r}.${process.pid}.${this.tmpCounter++}.tmp`;try{await j.promises.mkdir((0,U.dirname)(r),{recursive:!0,mode:448});let e=JSON.stringify(t,null,2);await j.promises.writeFile(n,e,{mode:384,encoding:"utf8"}),await j.promises.rename(n,r)}catch(e){this.logger.warn?.(`[WorkflowRecordWriter] write failed for run ${t.runId}: ${e.message}`),await j.promises.unlink(n).catch(()=>void 0)}}};workflow_run_record_writer_decorate([(0,R.Autowired)(et.Logger),function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)}("design:type","function"==typeof(S=void 0!==et.Logger&&et.Logger)?S:Object)],eh.prototype,"logger",void 0),eh=workflow_run_record_writer_decorate([(0,R.Component)(h)],eh);var ep=r(6529),workflow_registry_decorate=function(e,t,r,n){var o,a=arguments.length,l=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)l=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(o=e[i])&&(l=(a<3?o(l):a>3?o(t,r,l):o(t,r))||l);return a>3&&l&&Object.defineProperty(t,r,l),l},workflow_registry_metadata=function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};let eg=Symbol("BuiltinWorkflowProvider"),eE=class{async list(){if(this.cache)return this.cache;let e=await this.loadAll();return this.cache=e,e}async find(e){return(await this.list()).find(t=>t.name===e)}invalidate(){this.cache=void 0}async loadAll(){let e=new Map;for(let t of(await this.scanDir("project",this.projectDir())))e.set(t.name,t);for(let t of(await this.scanDir("user",em.P.getWorkflowsDir())))e.has(t.name)||e.set(t.name,t);for(let t of(await this.builtinEntries()))e.has(t.name)||e.set(t.name,t);return[...e.values()].sort((e,t)=>e.name.localeCompare(t.name))}projectDir(){return(0,U.join)(process.cwd(),".codebuddy","workflows")}async scanDir(e,t){let r;try{r=await ep.Sn.readdir(t)}catch(e){if("ENOENT"===e.code)return[];return this.logger.warn?.(`[WorkflowRegistry] scan ${t} failed: ${e.message}`),[]}let n=[];for(let o of r){if(!o.endsWith(".js"))continue;let r=(0,U.join)(t,o),a=await this.readMeta(r);n.push({name:o.replace(/\.js$/,""),scope:e,scriptPath:r,...void 0!==a.description?{description:a.description}:{},...void 0!==a.whenToUse?{whenToUse:a.whenToUse}:{}})}return n}async readMeta(e){try{let t=await ep.Sn.readFile(e,"utf-8");return parseMetaFromHead(t.slice(0,8192))}catch{return{}}}async builtinEntries(){return this.builtinProvider?(await this.builtinProvider.list()).map(e=>({name:e.name,scope:"builtin",scriptPath:e.scriptPath,...void 0!==e.description?{description:e.description}:{}})):[]}};function parseMetaFromHead(e){let t=e.search(/\bmeta\s*=\s*\{/);if(t<0)return{};let r=e.indexOf("{",t),n=findMatchingBrace(e,r);if(n<0)return{};let o=e.slice(r+1,n);return{name:extractStringField(o,"name"),description:extractStringField(o,"description"),whenToUse:extractStringField(o,"whenToUse")}}function extractStringField(e,t){let r=RegExp(`(?:^|[,{\\s])${t}\\s*:\\s*([\`'"])`,"m").exec(e);if(!r)return;let n=r[1],o=r.index+r[0].length,a="";for(;o<e.length;){let t=e[o];if("\\"===t&&o+1<e.length){let t=e[o+1];a+=ew[t]??t,o+=2;continue}if("`"===n&&"$"===t&&"{"===e[o+1])break;if(t===n)return a;a+=t,o++}}workflow_registry_decorate([(0,R.Autowired)(et.Logger),workflow_registry_metadata("design:type","function"==typeof(v=void 0!==et.Logger&&et.Logger)?v:Object)],eE.prototype,"logger",void 0),workflow_registry_decorate([(0,R.Autowired)(eg),(0,R.Optional)(),workflow_registry_metadata("design:type",Object)],eE.prototype,"builtinProvider",void 0),eE=workflow_registry_decorate([(0,R.Component)(u)],eE);let ew={n:"\n",r:"\r",t:" ",'"':'"',"'":"'","`":"`","\\":"\\"};function findMatchingBrace(e,t){let r=0,n=t;for(;n<e.length;){let t=e[n];if("'"===t||'"'===t||"`"===t){if((n=skipString(e,n,t))<0)return -1;continue}if("/"===t&&"/"===e[n+1]){let t=e.indexOf("\n",n);if(t<0)return -1;n=t+1;continue}if("/"===t&&"*"===e[n+1]){let t=e.indexOf("*/",n+2);if(t<0)return -1;n=t+2;continue}if("{"===t)r++;else if("}"===t&&0==--r)return n;n++}return -1}function skipString(e,t,r){let n=t+1;for(;n<e.length;){let t=e[n];if("\\"===t&&n+1<e.length){n+=2;continue}if("`"===r&&"$"===t&&"{"===e[n+1]){n+=2;let t=1;for(;n<e.length&&t>0;)"{"===e[n]?t++:"}"===e[n]&&t--,n++;continue}if(t===r)return n+1;n++}return -1}let ey=".workflow.js",eb=class{async list(){return this.cached?this.cached:(this.inflight||(this.inflight=this.discover().then(e=>(this.cached=e,this.inflight=void 0,e))),this.inflight)}async discover(){let e,t=globalThis.__CODEBUDDY_BUILTIN_WORKFLOWS__;if(Array.isArray(t)){if(0===t.length)return console.warn("[BuiltinWorkflow] SFE manifest is empty (builtin/workflows has no workflow files at bundle time) \u2014 builtin workflows unavailable."),[];let e=[];for(let r of t)e.push(await this.toSource(r.scriptPath,r.name));return e}let r=em.P.resolveRootPathSync("builtin/workflows");try{e=await j.promises.readdir(r)}catch(e){return console.warn(`[BuiltinWorkflow] readdir ${r} failed (builtin workflows unavailable): ${String(e)}`),[]}let n=[];for(let t of e){if(!t.endsWith(ey))continue;let e=(0,U.join)(r,t),o=t.slice(0,-ey.length);n.push(await this.toSource(e,o))}return n}async toSource(e,t){let r="";try{r=(await j.promises.readFile(e,"utf8")).slice(0,8192)}catch(t){console.warn(`[BuiltinWorkflow] read ${e} failed: ${String(t)}`)}let n=parseMetaFromHead(r);return{name:n.name??t,scriptPath:e,...void 0!==n.description?{description:n.description}:{}}}};eb=function(e,t,r,n){var o,a=arguments.length,l=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)l=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(o=e[i])&&(l=(a<3?o(l):a>3?o(t,r,l):o(t,r))||l);return a>3&&l&&Object.defineProperty(t,r,l),l}([(0,R.Component)(eg)],eb);var ex=r(71114),eT=r(9057),workflow_acp_bridge_decorate=function(e,t,r,n){var o,a=arguments.length,l=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)l=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(o=e[i])&&(l=(a<3?o(l):a>3?o(t,r,l):o(t,r))||l);return a>3&&l&&Object.defineProperty(t,r,l),l},workflow_acp_bridge_metadata=function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};let ek=class{install(){if(this.unsubscribe||!this.emitter)return;let e=this.emitter;"function"==typeof e.on&&(this.unsubscribe=e.on(e=>this.dispatch(e)),this.logger.debug?.("[WorkflowAcpBridge] subscribed to workflow progress"))}dispose(){if(this.unsubscribe){try{this.unsubscribe()}catch{}this.unsubscribe=void 0}}dispatch(e){let t=this.resolveSession(),r=t?.meta?.acpConnectionId;r&&t&&this.send(r,t.id,e).catch(e=>this.logger.warn?.(`[WorkflowAcpBridge] dispatch failed: ${e.message}`))}resolveSession(){try{return this.sessionManager.getCurrent()}catch{return}}async send(e,t,r){let n;try{n=R.ContainerUtil.get(ex.NZ)}catch{return}let o=n.get(e);if(!o)return;let a=o.getConnection?.();if(!a||"function"!=typeof a.sessionUpdate)return;let l=this.toMeta(r);await a.sessionUpdate({sessionId:t,update:{sessionUpdate:"session_info_update",_meta:l}})}toMeta(e){let t={"codebuddy.ai/workflowEventKind":e.kind};switch(e.kind){case"workflow_run_started":case"workflow_run_finished":t["codebuddy.ai/workflowRunId"]=e.record.runId,t["codebuddy.ai/workflowName"]=e.record.name,t["codebuddy.ai/workflowStatus"]=e.record.status,t["codebuddy.ai/workflowAgentCount"]=e.record.agentCount,t["codebuddy.ai/workflowCachedCount"]=e.record.cachedAgentCount,t["codebuddy.ai/workflowPhaseCount"]=e.record.phaseCount,void 0!==e.record.error&&(t["codebuddy.ai/workflowError"]=e.record.error);break;case"workflow_phase_started":case"workflow_phase_finished":t["codebuddy.ai/workflowRunId"]=e.runId,t["codebuddy.ai/workflowPhase"]=e.phase;break;case"workflow_agent_started":case"workflow_agent_finished":case"workflow_agent_cached":t["codebuddy.ai/workflowRunId"]=e.runId,t["codebuddy.ai/workflowAgentKey"]=e.agent.key,void 0!==e.agent.label&&(t["codebuddy.ai/workflowAgentLabel"]=e.agent.label),void 0!==e.agent.phase&&(t["codebuddy.ai/workflowAgentPhase"]=e.agent.phase),void 0!==e.agent.error&&(t["codebuddy.ai/workflowAgentError"]=e.agent.error),void 0!==e.agent.tokens&&(t["codebuddy.ai/workflowAgentTokens"]=e.agent.tokens)}return t}};workflow_acp_bridge_decorate([(0,R.Autowired)(et.Logger),workflow_acp_bridge_metadata("design:type","function"==typeof(C=void 0!==et.Logger&&et.Logger)?C:Object)],ek.prototype,"logger",void 0),workflow_acp_bridge_decorate([(0,R.Autowired)(eT.Cv),workflow_acp_bridge_metadata("design:type","function"==typeof(_=void 0!==eT.Cv&&eT.Cv)?_:Object)],ek.prototype,"sessionManager",void 0),workflow_acp_bridge_decorate([(0,R.Autowired)(c),(0,R.Optional)(),workflow_acp_bridge_metadata("design:type",Object)],ek.prototype,"emitter",void 0),ek=workflow_acp_bridge_decorate([(0,R.Component)()],ek);var eS=r(47502),ev=r(43263),memory_probe_decorate=function(e,t,r,n){var o,a=arguments.length,l=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)l=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(o=e[i])&&(l=(a<3?o(l):a>3?o(t,r,l):o(t,r))||l);return a>3&&l&&Object.defineProperty(t,r,l),l},memory_probe_metadata=function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};let eC=class{constructor(){this.installed=!1,this.nearLimitSnapshotTaken=!1,this.sampleCpuPercent=(0,ev.R)(),this.rssDivergenceWarned=!1}static{A=this}static{this.RSS_DIVERGENCE_WARN_MB=2048}async onStart(){this.install()}async onStop(){this.dispose()}install(){if(this.installed)return;this.installed=!0;let e=this.emitter;e&&"function"==typeof e.on&&(this.unsubscribe=e.on(e=>this.handleEvent(e))),this.tickTimer=setInterval(()=>this.tick(),3e4),this.tickTimer.unref?.(),this.logger.info?.("[WorkflowMemProbe] installed")}dispose(){if(this.unsubscribe){try{this.unsubscribe()}catch{}this.unsubscribe=void 0}this.tickTimer&&(clearInterval(this.tickTimer),this.tickTimer=void 0),this.installed=!1}handleEvent(e){let t=A.sampleMemory();switch(e.kind){case"workflow_run_started":this.lastRunId=e.record.runId,this.log("run-start",{runId:e.record.runId,name:e.record.name},t);break;case"workflow_run_finished":this.log("run-end",{runId:e.record.runId,status:e.record.status,agents:e.record.agentCount,cached:e.record.cachedAgentCount,tokens:e.record.tokens??0,durationMs:(e.record.endedAt??Date.now())-e.record.startedAt},t),"1"===process.env.CBC_HEAP_SNAPSHOT_ON_WORKFLOW_END&&this.writeHeapSnapshot(`wf-${e.record.runId.slice(0,8)}`),this.lastRunId===e.record.runId&&(this.lastRunId=void 0);break;case"workflow_phase_started":this.lastRunId=e.runId,this.log("phase-start",{runId:e.runId,phase:e.phase},t);break;case"workflow_phase_finished":this.log("phase-end",{runId:e.runId,phase:e.phase},t);break;case"workflow_agent_finished":this.log("agent-end",{runId:e.runId,label:e.agent.label,phase:e.agent.phase,tokens:e.agent.tokens??0,durationMs:e.agent.endedAt&&e.agent.startedAt?e.agent.endedAt-e.agent.startedAt:0,error:e.agent.error},t);break;case"workflow_agent_started":case"workflow_agent_cached":this.lastRunId=e.runId}}tick(){let e=A.sampleMemory();this.log("tick",{runId:this.lastRunId??"(none)"},e),this.maybeWarnRssDivergence(e),this.maybeSnapshotNearHeapLimit()}maybeWarnRssDivergence(e){if(this.rssDivergenceWarned)return;let t=e.rssMB-e.heapTotalMB-e.externalMB;if(t<A.RSS_DIVERGENCE_WARN_MB)return;this.rssDivergenceWarned=!0;let r=A.sampleNativeMemory(),n=r?`${r.mallocedMB}MB (peak ${r.peakMallocedMB}MB)`:"n/a";this.logger.warn?.(`[WorkflowMemProbe] RSS diverges from JS accounting: rss=${e.rssMB}MB but heapTotal=${e.heapTotalMB}MB external=${e.externalMB}MB \u{2192} ${Math.round(t)}MB unaccounted (V8 malloced=${n}). Growth is outside the JS heap \u{2014} suspect native allocations or an allocator not returning pages. Long sessions can reclaim via /compact or a fresh session.`)}maybeSnapshotNearHeapLimit(){if(this.nearLimitSnapshotTaken)return;let e=A.resolveNearLimitPct(process.env.CODEBUDDY_CODE_HEAP_SNAPSHOT_NEAR_LIMIT_PCT);if(void 0===e)return;let t=this.readHeapLimit(),r=this.readHeapUsed();if(!A.isOverHeapWatermark(r,t,e))return;this.nearLimitSnapshotTaken=!0;let n=(r/t*100).toFixed(1);this.logger.warn?.(`[WorkflowMemProbe] near heap limit: heapUsed=${round(r)}MB/${round(t)}MB (${n}%, watermark=${(100*e).toFixed(0)}%) \u{2014} writing heap snapshot for OOM forensics`),this.writeHeapSnapshot(`oom-nearlimit-${process.pid}`)}readHeapUsed(){return process.memoryUsage().heapUsed}readHeapLimit(){try{return r(11493).getHeapStatistics().heap_size_limit}catch{return 0}}static resolveNearLimitPct(e){if(void 0===e)return;let t=e.trim().toLowerCase();if(""===t||"0"===t||"false"===t||"off"===t||"no"===t)return;if("1"===t||"true"===t||"on"===t||"yes"===t)return .85;let r=Number(t);if(Number.isFinite(r)&&!(r<=0)){if(r<1)return r;if(r<=100)return r/100}}static isOverHeapWatermark(e,t,r){return t>0&&e/t>=r}static sampleMemory(){let e=process.memoryUsage();return{rssMB:round(e.rss),heapUsedMB:round(e.heapUsed),heapTotalMB:round(e.heapTotal),externalMB:round(e.external),arrayBuffersMB:round(e.arrayBuffers??0)}}static sampleNativeMemory(){try{let e=r(11493).getHeapStatistics();return{mallocedMB:round(e.malloced_memory),peakMallocedMB:round(e.peak_malloced_memory),heapLimitMB:round(e.heap_size_limit)}}catch{return}}log(e,t,r){let n=Object.entries(t).filter(([,e])=>void 0!==e&&""!==e).map(([e,t])=>`${e}=${"string"==typeof t?t:JSON.stringify(t)}`).join(" "),o=A.sampleNativeMemory(),a=o?` malloced=${o.mallocedMB}/${o.peakMallocedMB}MB heapLimit=${o.heapLimitMB}MB`:"";this.logger.info?.(`[WorkflowMemProbe] ${e} ${n} | rss=${r.rssMB}MB heap=${r.heapUsedMB}/${r.heapTotalMB}MB external=${r.externalMB}MB arrayBuffers=${r.arrayBuffersMB}MB${a} cpuPercent=${this.sampleCpuPercent().toFixed(1)}`)}writeHeapSnapshot(e){try{let t=r(11493),n=r(16928),o=r(79896),a=r(70857),l=new Date,i=A.dateDir(l),s=n.join(a.homedir(),".codebuddy","diagnostics"),c=n.join(s,i);try{o.mkdirSync(c,{recursive:!0})}catch{}let u=l.toISOString().replace(/[:.]/g,"-"),d=e.replace(/[^A-Za-z0-9_.-]/g,"-").slice(0,48),m=n.join(c,`${d}-${u}.heapsnapshot`);t.writeHeapSnapshot(m),(0,eS.D)(s,eS.w).catch(()=>{}),this.logger.info?.(`[WorkflowMemProbe] heap snapshot written: ${m}`)}catch(e){this.logger.warn?.(`[WorkflowMemProbe] heap snapshot failed: ${e.message}`)}}static dateDir(e=new Date){let t=e.getFullYear(),r=String(e.getMonth()+1).padStart(2,"0"),n=String(e.getDate()).padStart(2,"0");return`${t}-${r}-${n}`}};function round(e){return Math.round(e/1024/1024*10)/10}memory_probe_decorate([(0,R.Autowired)(et.Logger),memory_probe_metadata("design:type","function"==typeof(M=void 0!==et.Logger&&et.Logger)?M:Object)],eC.prototype,"logger",void 0),memory_probe_decorate([(0,R.Autowired)(c),(0,R.Optional)(),memory_probe_metadata("design:type",Object)],eC.prototype,"emitter",void 0),eC=A=memory_probe_decorate([(0,R.Component)(R.ApplicationLifecycle)],eC);var e_=r(68238);let PauseGate=class PauseGate{constructor(){this.paused=!1,this.waiters=[]}isPaused(){return this.paused}pause(){return!this.paused&&(this.paused=!0,!0)}resume(){if(!this.paused)return!1;for(let e of(this.paused=!1,this.waiters.splice(0)))try{e()}catch{}return!0}async waitIfPaused(e){if(this.paused){if(e?.aborted)throw Error("aborted");await new Promise((t,r)=>{let onAbort=()=>{let e=this.waiters.indexOf(wakeup);e>=0&&this.waiters.splice(e,1),r(Error("aborted"))},wakeup=()=>{e?.removeEventListener("abort",onAbort),t()};e?.addEventListener("abort",onAbort,{once:!0}),this.waiters.push(wakeup)})}}};var workflow_manager_decorate=function(e,t,r,n){var o,a=arguments.length,l=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)l=Reflect.decorate(e,t,r,n);else for(var i=e.length-1;i>=0;i--)(o=e[i])&&(l=(a<3?o(l):a>3?o(t,r,l):o(t,r))||l);return a>3&&l&&Object.defineProperty(t,r,l),l},workflow_manager_metadata=function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};let eA=class{constructor(){this.active=new Map,this.recent=[]}static{I=this}async start(e,t){let r=await this.resolver.resolve(e),n=this.parser.parse(r),o=this.compiler.compile(n),a=this.resolveSession(t.sessionId);a&&this.spawner instanceof el&&this.spawner.setMainSession(a);let l=(0,F.randomUUID)(),i=new AbortController;t.parentAbortSignal&&(t.parentAbortSignal.aborted?i.abort():t.parentAbortSignal.addEventListener("abort",()=>i.abort(),{once:!0}));let s={runId:l,source:r,parsed:n,compiled:o,args:e.args,abortController:i,parentSessionId:t.sessionId,...void 0!==e.resumeFromRunId?{resumeFromRunId:e.resumeFromRunId}:{}};this.persistScriptSnapshot(t.sessionId,l,r).catch(e=>this.logger.warn?.(`[Workflow] script snapshot failed for ${l}: ${e.message}`));let c={runId:l,name:r.name,description:this.deriveDescription(n.meta,e.args,r.text),contentHash:r.provenance.contentHash,startedAt:Date.now(),status:"running",phaseCount:0,agentCount:0,cachedAgentCount:0,tokens:0,sessionId:t.sessionId},u=new PauseGate,d={record:c,abortController:i,done:void 0,pauseGate:u};this.active.set(l,d);let m=this.runner.run(s,{initialRecord:c,onExecutionReady:e=>{d.execution=e},pauseGate:u}).then(e=>(this.finalizeRun(l,e,d.execution),e)).catch(e=>{let t={...c,status:e instanceof WorkflowError&&5===e.errorCode?"aborted":"failed",error:e instanceof Error?e.message:String(e),endedAt:Date.now()};return this.finalizeRun(l,t,d.execution),t});return d.done=m,{runId:l,record:c,done:m}}attachExecution(e,t){let r=this.active.get(e);r&&(r.execution=t)}syncProgress(e){let t=this.active.get(e);if(!t?.execution)return;let r=t.execution;t.record.agentCount=r.totalAgentsSpawned,t.record.cachedAgentCount=r.totalAgentsCached,t.record.agentInFlightCount=r.totalAgentsInFlight,t.record.phaseCount=r.totalPhases,t.record.tokens=r.totalTokensSpent}abort(e,t="user-abort"){let r=this.active.get(e);return!!r&&(r.abortController.abort(t),!0)}pause(e){let t=this.active.get(e);if(!t)return!1;let r=t.pauseGate.pause();return r&&(t.record.paused=!0),r}resume(e){let t=this.active.get(e);if(!t)return!1;let r=t.pauseGate.resume();return r&&(t.record.paused=!1),r}abortAgent(e,t){let r=this.active.get(e);return!!r?.execution&&r.execution.abortAgent(t,"user-skip")}restartAgent(e,t){let r=this.active.get(e);if(!r?.execution)return!1;let n=r.execution.abortAgent(t,"user-restart");return r.execution.markAgentInvalidated(t,"user-restart"),n||!0}listActive(){for(let e of this.active.keys())this.syncProgress(e);return[...this.active.values()].map(e=>e.record).sort((e,t)=>t.startedAt-e.startedAt)}listRecent(e=50){for(let e of this.active.keys())this.syncProgress(e);let t=[];for(let e of[...this.active.values()].sort((e,t)=>t.record.startedAt-e.record.startedAt))t.push(e.record);for(let e=this.recent.length-1;e>=0;e--)t.push(this.recent[e].record);return t.slice(0,e)}async getRunDetail(e,t){let r=this.active.get(t);if(r?.execution)return this.buildDetailFromExecution(r.record,r.execution);let n=this.recent.find(e=>e.record.runId===t);return n?.detail?n.detail:n?{record:n.record,phases:[],agents:[]}:void 0}snapshotPath(e,t){let r=this.active.get(t)?.record.scriptPath;if(r)return r;let n=this.recent.find(e=>e.record.runId===t)?.record.scriptPath;return n||em.P.getWorkflowScriptsDirForRun(e)}async saveAs(e,t,r,n){if(!I.SAFE_NAME_RE.test(r))throw Error(`Invalid workflow name "${r}". Use [a-zA-Z0-9_-], 1\u{2013}64 chars.`);let o=this.snapshotPath(e,t);try{await j.promises.access(o)}catch{throw Error(`No script snapshot for run \`${t}\`. The run may not have started or has been pruned.`)}let a="user"===n?em.P.getWorkflowsDir():(0,U.join)(process.cwd(),".codebuddy","workflows"),l=(0,U.join)(a,`${r}.js`);return await j.promises.mkdir((0,U.dirname)(l),{recursive:!0,mode:493}),await j.promises.copyFile(o,l),this.invalidateRegistry(),await this.refreshCommands(),{targetPath:l}}static{this.SAFE_NAME_RE=/^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$/}invalidateRegistry(){try{let e=R.ContainerUtil.get(u);e.invalidate?.()}catch{}}async refreshCommands(){try{let e=R.ContainerUtil.get(e_.FQ);await e.refresh?.()}catch(e){this.logger.warn?.(`[WorkflowManager] commandManager.refresh failed (saved workflow won't appear in / suggestions until next /reload): ${e.message}`)}}resolveSession(e){try{return R.ContainerUtil.get(eT.Cv).getCurrent()}catch{return}}async persistScriptSnapshot(e,t,r){let n=em.P.getWorkflowScriptsDirForRun(e);await j.promises.mkdir(n,{recursive:!0,mode:448});let o=await this.findExistingScriptByHash(n,r.name,r.provenance.contentHash),a=o??em.P.getWorkflowScriptSnapshotPath(e,r.name,t);o||await j.promises.writeFile(a,r.text,{mode:384,encoding:"utf8"});let l=this.active.get(t);l&&(l.record.scriptPath=a)}async findExistingScriptByHash(e,t,r){let n;try{n=await j.promises.readdir(e)}catch(e){if("ENOENT"===e.code)return;throw e}let o=`${t}-wf_`;for(let t of n.filter(e=>e.startsWith(o)&&e.endsWith(".js"))){let n=`${e}/${t}`;try{let e=await j.promises.readFile(n,"utf8");if(await this.sha256(e)===r)return n}catch{continue}}}async sha256(e){let{createHash:t}=await Promise.resolve().then(r.t.bind(r,76982,23));return t("sha256").update(e,"utf8").digest("hex")}finalizeRun(e,t,r){t.agentInFlightCount=0;let n=r?this.buildDetailFromExecution(t,r):{record:t,phases:[],agents:[]};for(this.active.delete(e),this.recent.push({record:t,detail:n});this.recent.length>50;)this.recent.shift();r?.dispose();let o=this.progressEmitter;try{o.cancelPending?.()}catch{}this.progressEmitter.emit({kind:"workflow_run_finished",record:t})}buildDetailFromExecution(e,t){return{record:e,phases:t.snapshotPhases().map(e=>({...e})),agents:t.snapshotAgents().map(e=>({...e}))}}deriveDescription(e,t,r){if(e?.description&&"string"==typeof e.description)return e.description;if("string"==typeof t&&t.length>0)return t.slice(0,200);if(t&&"object"==typeof t&&null!==t){let e=t.question;if("string"==typeof e&&e.length>0)return e.slice(0,200)}}};workflow_manager_decorate([(0,R.Autowired)(et.Logger),workflow_manager_metadata("design:type","function"==typeof(O=void 0!==et.Logger&&et.Logger)?O:Object)],eA.prototype,"logger",void 0),workflow_manager_decorate([(0,R.Autowired)(o),workflow_manager_metadata("design:type",Object)],eA.prototype,"resolver",void 0),workflow_manager_decorate([(0,R.Autowired)(a),workflow_manager_metadata("design:type",Object)],eA.prototype,"parser",void 0),workflow_manager_decorate([(0,R.Autowired)(l),workflow_manager_metadata("design:type",Object)],eA.prototype,"compiler",void 0),workflow_manager_decorate([(0,R.Autowired)(i),workflow_manager_metadata("design:type",Object)],eA.prototype,"runner",void 0),workflow_manager_decorate([(0,R.Autowired)(s),workflow_manager_metadata("design:type",Object)],eA.prototype,"spawner",void 0),workflow_manager_decorate([(0,R.Autowired)(c),workflow_manager_metadata("design:type",Object)],eA.prototype,"progressEmitter",void 0),eA=I=workflow_manager_decorate([(0,R.Component)(n)],eA),r(92309)},48935(){},37562(){},21049(){},30296(){},23544(){},71416(){},67945(){},30499(){},15553(){},88987(){},888(){},902(){},35495(){},79146(){},25973(){},50022(){},11215(){},66026(){},22019(){},19806(){},56421(){},80218(){},89223(){},69738(){},46824(){},26792(){},63598(){},56312(){},93001(){},19960(){},65366(){},85577(){},6004(){},52379(){}};
|