commandmate 0.10.4 → 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (146) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-build-manifest.json +145 -145
  3. package/.next/app-path-routes-manifest.json +26 -26
  4. package/.next/build-manifest.json +2 -2
  5. package/.next/prerender-manifest.json +12 -12
  6. package/.next/required-server-files.json +1 -1
  7. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  8. package/.next/server/app/api/app/update/route.js +1 -1
  9. package/.next/server/app/api/app/update/route_client-reference-manifest.js +1 -1
  10. package/.next/server/app/api/app/update-check/route.js +1 -1
  11. package/.next/server/app/api/app/update-check/route_client-reference-manifest.js +1 -1
  12. package/.next/server/app/api/assistant/conversation/route_client-reference-manifest.js +1 -1
  13. package/.next/server/app/api/assistant/current-output/route_client-reference-manifest.js +1 -1
  14. package/.next/server/app/api/assistant/messages/route_client-reference-manifest.js +1 -1
  15. package/.next/server/app/api/assistant/session/route_client-reference-manifest.js +1 -1
  16. package/.next/server/app/api/assistant/start/route_client-reference-manifest.js +1 -1
  17. package/.next/server/app/api/assistant/terminal/route_client-reference-manifest.js +1 -1
  18. package/.next/server/app/api/assistant/tools/route_client-reference-manifest.js +1 -1
  19. package/.next/server/app/api/auth/login/route_client-reference-manifest.js +1 -1
  20. package/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
  21. package/.next/server/app/api/auth/status/route_client-reference-manifest.js +1 -1
  22. package/.next/server/app/api/daily-summary/route_client-reference-manifest.js +1 -1
  23. package/.next/server/app/api/daily-summary/status/route_client-reference-manifest.js +1 -1
  24. package/.next/server/app/api/external-apps/[id]/health/route_client-reference-manifest.js +1 -1
  25. package/.next/server/app/api/external-apps/[id]/route_client-reference-manifest.js +1 -1
  26. package/.next/server/app/api/external-apps/route_client-reference-manifest.js +1 -1
  27. package/.next/server/app/api/hooks/claude-done/route_client-reference-manifest.js +1 -1
  28. package/.next/server/app/api/ollama/models/route_client-reference-manifest.js +1 -1
  29. package/.next/server/app/api/push/subscriptions/route_client-reference-manifest.js +1 -1
  30. package/.next/server/app/api/push/vapid/route_client-reference-manifest.js +1 -1
  31. package/.next/server/app/api/repositories/[id]/route_client-reference-manifest.js +1 -1
  32. package/.next/server/app/api/repositories/[id]/todos/[todoId]/route_client-reference-manifest.js +1 -1
  33. package/.next/server/app/api/repositories/[id]/todos/route_client-reference-manifest.js +1 -1
  34. package/.next/server/app/api/repositories/clone/[jobId]/route_client-reference-manifest.js +1 -1
  35. package/.next/server/app/api/repositories/clone/route_client-reference-manifest.js +1 -1
  36. package/.next/server/app/api/repositories/excluded/route_client-reference-manifest.js +1 -1
  37. package/.next/server/app/api/repositories/restore/route_client-reference-manifest.js +1 -1
  38. package/.next/server/app/api/repositories/route_client-reference-manifest.js +1 -1
  39. package/.next/server/app/api/repositories/scan/route_client-reference-manifest.js +1 -1
  40. package/.next/server/app/api/repositories/sync/route_client-reference-manifest.js +1 -1
  41. package/.next/server/app/api/sidebar/group-order/route_client-reference-manifest.js +1 -1
  42. package/.next/server/app/api/slash-commands/route_client-reference-manifest.js +1 -1
  43. package/.next/server/app/api/templates/[id]/route_client-reference-manifest.js +1 -1
  44. package/.next/server/app/api/templates/route_client-reference-manifest.js +1 -1
  45. package/.next/server/app/api/todos/route_client-reference-manifest.js +1 -1
  46. package/.next/server/app/api/worktrees/[id]/auto-yes/route_client-reference-manifest.js +1 -1
  47. package/.next/server/app/api/worktrees/[id]/capture/route_client-reference-manifest.js +1 -1
  48. package/.next/server/app/api/worktrees/[id]/cli-tool/route_client-reference-manifest.js +1 -1
  49. package/.next/server/app/api/worktrees/[id]/cmate/schedules/route_client-reference-manifest.js +1 -1
  50. package/.next/server/app/api/worktrees/[id]/current-output/route_client-reference-manifest.js +1 -1
  51. package/.next/server/app/api/worktrees/[id]/execution-logs/[logId]/route_client-reference-manifest.js +1 -1
  52. package/.next/server/app/api/worktrees/[id]/execution-logs/route_client-reference-manifest.js +1 -1
  53. package/.next/server/app/api/worktrees/[id]/files/[...path]/route_client-reference-manifest.js +1 -1
  54. package/.next/server/app/api/worktrees/[id]/git/branch/create/route_client-reference-manifest.js +1 -1
  55. package/.next/server/app/api/worktrees/[id]/git/branch/delete/route_client-reference-manifest.js +1 -1
  56. package/.next/server/app/api/worktrees/[id]/git/branches/route_client-reference-manifest.js +1 -1
  57. package/.next/server/app/api/worktrees/[id]/git/checkout/route_client-reference-manifest.js +1 -1
  58. package/.next/server/app/api/worktrees/[id]/git/commit/route_client-reference-manifest.js +1 -1
  59. package/.next/server/app/api/worktrees/[id]/git/diff/route_client-reference-manifest.js +1 -1
  60. package/.next/server/app/api/worktrees/[id]/git/fetch/route_client-reference-manifest.js +1 -1
  61. package/.next/server/app/api/worktrees/[id]/git/log/route_client-reference-manifest.js +1 -1
  62. package/.next/server/app/api/worktrees/[id]/git/pull/route_client-reference-manifest.js +1 -1
  63. package/.next/server/app/api/worktrees/[id]/git/push/route_client-reference-manifest.js +1 -1
  64. package/.next/server/app/api/worktrees/[id]/git/reset/route_client-reference-manifest.js +1 -1
  65. package/.next/server/app/api/worktrees/[id]/git/revert/route_client-reference-manifest.js +1 -1
  66. package/.next/server/app/api/worktrees/[id]/git/show/[commitHash]/route_client-reference-manifest.js +1 -1
  67. package/.next/server/app/api/worktrees/[id]/git/stage/route_client-reference-manifest.js +1 -1
  68. package/.next/server/app/api/worktrees/[id]/git/staged/route_client-reference-manifest.js +1 -1
  69. package/.next/server/app/api/worktrees/[id]/git/stash/[index]/route_client-reference-manifest.js +1 -1
  70. package/.next/server/app/api/worktrees/[id]/git/stash/apply/route_client-reference-manifest.js +1 -1
  71. package/.next/server/app/api/worktrees/[id]/git/stash/pop/route_client-reference-manifest.js +1 -1
  72. package/.next/server/app/api/worktrees/[id]/git/stash/push/route_client-reference-manifest.js +1 -1
  73. package/.next/server/app/api/worktrees/[id]/git/stash/route_client-reference-manifest.js +1 -1
  74. package/.next/server/app/api/worktrees/[id]/git/status/route_client-reference-manifest.js +1 -1
  75. package/.next/server/app/api/worktrees/[id]/git/unstage/route_client-reference-manifest.js +1 -1
  76. package/.next/server/app/api/worktrees/[id]/git/working-diff/route_client-reference-manifest.js +1 -1
  77. package/.next/server/app/api/worktrees/[id]/interrupt/route_client-reference-manifest.js +1 -1
  78. package/.next/server/app/api/worktrees/[id]/kill-session/route_client-reference-manifest.js +1 -1
  79. package/.next/server/app/api/worktrees/[id]/logs/[filename]/route_client-reference-manifest.js +1 -1
  80. package/.next/server/app/api/worktrees/[id]/logs/route_client-reference-manifest.js +1 -1
  81. package/.next/server/app/api/worktrees/[id]/marp-render/route_client-reference-manifest.js +1 -1
  82. package/.next/server/app/api/worktrees/[id]/memos/[memoId]/route_client-reference-manifest.js +1 -1
  83. package/.next/server/app/api/worktrees/[id]/memos/route_client-reference-manifest.js +1 -1
  84. package/.next/server/app/api/worktrees/[id]/messages/route_client-reference-manifest.js +1 -1
  85. package/.next/server/app/api/worktrees/[id]/prompt-response/route_client-reference-manifest.js +1 -1
  86. package/.next/server/app/api/worktrees/[id]/respond/route_client-reference-manifest.js +1 -1
  87. package/.next/server/app/api/worktrees/[id]/route_client-reference-manifest.js +1 -1
  88. package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route_client-reference-manifest.js +1 -1
  89. package/.next/server/app/api/worktrees/[id]/schedules/active/route_client-reference-manifest.js +1 -1
  90. package/.next/server/app/api/worktrees/[id]/schedules/route_client-reference-manifest.js +1 -1
  91. package/.next/server/app/api/worktrees/[id]/search/route_client-reference-manifest.js +1 -1
  92. package/.next/server/app/api/worktrees/[id]/send/route_client-reference-manifest.js +1 -1
  93. package/.next/server/app/api/worktrees/[id]/slash-commands/route_client-reference-manifest.js +1 -1
  94. package/.next/server/app/api/worktrees/[id]/special-keys/route_client-reference-manifest.js +1 -1
  95. package/.next/server/app/api/worktrees/[id]/start-polling/route_client-reference-manifest.js +1 -1
  96. package/.next/server/app/api/worktrees/[id]/terminal/route_client-reference-manifest.js +1 -1
  97. package/.next/server/app/api/worktrees/[id]/timers/history/route_client-reference-manifest.js +1 -1
  98. package/.next/server/app/api/worktrees/[id]/timers/route_client-reference-manifest.js +1 -1
  99. package/.next/server/app/api/worktrees/[id]/todos/[todoId]/route_client-reference-manifest.js +1 -1
  100. package/.next/server/app/api/worktrees/[id]/todos/route_client-reference-manifest.js +1 -1
  101. package/.next/server/app/api/worktrees/[id]/tree/[...path]/route_client-reference-manifest.js +1 -1
  102. package/.next/server/app/api/worktrees/[id]/tree/route_client-reference-manifest.js +1 -1
  103. package/.next/server/app/api/worktrees/[id]/upload/[...path]/route_client-reference-manifest.js +1 -1
  104. package/.next/server/app/api/worktrees/[id]/viewed/route_client-reference-manifest.js +1 -1
  105. package/.next/server/app/api/worktrees/route_client-reference-manifest.js +1 -1
  106. package/.next/server/app/chat/page_client-reference-manifest.js +1 -1
  107. package/.next/server/app/login/page_client-reference-manifest.js +1 -1
  108. package/.next/server/app/manifest.webmanifest/route_client-reference-manifest.js +1 -1
  109. package/.next/server/app/more/page_client-reference-manifest.js +1 -1
  110. package/.next/server/app/offline/page_client-reference-manifest.js +1 -1
  111. package/.next/server/app/page_client-reference-manifest.js +1 -1
  112. package/.next/server/app/proxy/[...path]/route_client-reference-manifest.js +1 -1
  113. package/.next/server/app/repositories/page_client-reference-manifest.js +1 -1
  114. package/.next/server/app/review/page_client-reference-manifest.js +1 -1
  115. package/.next/server/app/sessions/page_client-reference-manifest.js +1 -1
  116. package/.next/server/app/worktrees/[id]/files/[...path]/page_client-reference-manifest.js +1 -1
  117. package/.next/server/app/worktrees/[id]/page.js +7 -7
  118. package/.next/server/app/worktrees/[id]/page_client-reference-manifest.js +1 -1
  119. package/.next/server/app/worktrees/[id]/terminal/page_client-reference-manifest.js +1 -1
  120. package/.next/server/app-paths-manifest.json +26 -26
  121. package/.next/server/chunks/2119.js +1 -1
  122. package/.next/server/chunks/2445.js +1 -1
  123. package/.next/server/chunks/5959.js +1 -1
  124. package/.next/server/chunks/9067.js +1 -1
  125. package/.next/server/middleware-manifest.json +5 -5
  126. package/.next/server/pages/500.html +1 -1
  127. package/.next/server/server-reference-manifest.json +1 -1
  128. package/.next/static/chunks/{7347-a013a163a75030ec.js → 7347-7ee39e14be89e508.js} +1 -1
  129. package/.next/static/chunks/app/worktrees/[id]/page-1c311aaa0950db1e.js +1 -0
  130. package/.next/trace +10 -10
  131. package/dist/cli/commands/update.d.ts.map +1 -1
  132. package/dist/cli/commands/update.js +178 -1
  133. package/dist/cli/program.d.ts.map +1 -1
  134. package/dist/cli/program.js +6 -0
  135. package/dist/cli/types/index.d.ts +7 -0
  136. package/dist/cli/types/index.d.ts.map +1 -1
  137. package/dist/cli/utils/npx-runner.d.ts +88 -0
  138. package/dist/cli/utils/npx-runner.d.ts.map +1 -0
  139. package/dist/cli/utils/npx-runner.js +165 -0
  140. package/dist/lib/app-update/update-lock.d.ts +39 -0
  141. package/dist/lib/app-update/update-lock.d.ts.map +1 -0
  142. package/dist/lib/app-update/update-lock.js +116 -0
  143. package/package.json +1 -1
  144. package/.next/static/chunks/app/worktrees/[id]/page-932a52f8d11971f7.js +0 -1
  145. /package/.next/static/{uBCIYS1Hth7V4unroKqGu → 8yp8SRJ9h3Uj75SpHLYpl}/_buildManifest.js +0 -0
  146. /package/.next/static/{uBCIYS1Hth7V4unroKqGu → 8yp8SRJ9h3Uj75SpHLYpl}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- "use strict";exports.id=2445,exports.ids=[2445],exports.modules={52445:a=>{a.exports=JSON.parse('{"agentStatus":{"moreAgents":"他 {count} 件のエージェント","overflowTrigger":"他のエージェント"},"toc":{"title":"目次","show":"目次を表示","hide":"目次を非表示","empty":"見出しなし"},"composer":{"placeholder":"メッセージを入力…","commandsHint":"コマンド","newlineHint":"改行","removeAttachment":"添付を削除","showSlashCommands":"スラッシュコマンドを表示","attachImage":"画像を添付","sendMessage":"メッセージを送信"},"interrupt":{"stopProcessing":"処理を中断"},"history":{"title":"メッセージ履歴","regionLabel":"メッセージ履歴","loading":"メッセージを読み込み中","empty":"メッセージはまだありません","show":"表示件数","displayLimit":"履歴の表示件数","showArchived":"アーカイブを表示","showUserOnly":"ユーザーのメッセージのみ表示","showAllMessages":"すべてのメッセージを表示","openSearch":"検索を開く","closeSearch":"検索を閉じる","copied":"クリップボードにコピーしました","copyFailed":"コピーに失敗しました","search":{"regionLabel":"履歴内テキスト検索","placeholder":"検索...","keywordLabel":"検索キーワード","prev":"前の結果 (prev)","next":"次の結果 (next)","close":"検索を閉じる (close)","countAtMax":"{current}/{max}以上"}},"conversation":{"waitingForResponse":"レスポンス待ち...","you":"あなた","assistant":"アシスタント","sending":"送信中…","failedToSend":"送信に失敗しました","retrySending":"メッセージを再送信","discard":"破棄","discardMessage":"メッセージを破棄","insertToMessage":"メッセージ欄に挿入","copy":"コピー","copyMessage":"メッセージをコピー","collapse":"折りたたむ","expand":"展開","collapseMessage":"メッセージを折りたたむ","expandMessage":"メッセージを展開","systemMessage":"システムメッセージ","systemMessageLabel":"システムメッセージ","openFile":"ファイルを開く: {path}","conversationLabel":"会話: {preview}"},"messages":{"loading":"メッセージを読み込み中...","empty":"メッセージはまだありません","you":"あなた","copy":"コピー","copyMessage":"メッセージをコピー","viewLogFile":"ログファイルを表示 →"},"slashCommands":{"title":"コマンド","searchPlaceholder":"コマンドを検索...","enterCustomCommand":"カスタムコマンドを入力...","selectHint":"選択","closeHint":"閉じる","empty":"利用可能なコマンドがありません","descriptions":{"clear":"会話履歴をクリア","compact":"コンテキストを圧縮してトークン使用量を削減","resume":"前回の会話を再開","rewind":"会話を以前の状態に巻き戻す","config":"設定を開く","model":"AI モデルを切り替え","permissions":"ツールの権限を表示・更新","status":"セッションの状態を確認","context":"コンテキストウィンドウの使用量を表示","cost":"トークンとコストの使用量を表示","review":"コードの変更をレビュー","pr-comments":"PR のコメントを表示","help":"利用可能なすべてのコマンドを表示","doctor":"インストール状態を診断","export":"会話履歴をエクスポート","todos":"TODO リストを表示","focus":"フォーカスモードを切り替え","effort":"モデルの思考量を調整(high/medium/low)","fast":"高速応答モードに切り替え","lazy":"レイジーモードを切り替え","new":"新しい会話を開始","undo":"直前の Codex の操作を取り消す","logout":"Codex からサインアウト","quit":"Codex CLI を終了","approvals":"自動実行の承認レベルを変更","diff":"Git の差分を表示(未追跡ファイルを含む)","mention":"次のやり取りにファイル/フォルダを添付","mcp":"利用可能な MCP ツールを一覧表示","init":"カレントディレクトリに AGENTS.md テンプレートを生成","feedback":"Codex チームにフィードバックを送信","plan":"プランモードを切り替え","goal":"現在のセッションの目標を設定","agent":"アクティブなエージェントを切り替え(Codex)","subagents":"サブエージェントを管理","fork":"現在のセッションをフォーク","memories":"Codex のメモリを管理","skills":"Codex のスキルを管理","hooks":"Codex のフックを管理","sessions":"会話履歴を閲覧","connect":"言語サーバーに接続","exit":"OpenCode TUI を終了","models":"AI モデルを切り替え","agents":"利用可能なすべてのエージェントを一覧・管理(OpenCode)","themes":"TUI のテーマを変更","editor":"長文メッセージ用のエディタを開く"}},"session":{"confirmKill":"「{name}」のセッションを終了しますか?\\n\\n※全てのメッセージ履歴が削除されます。ログファイルは保持されます。","failedToKill":"セッションの終了に失敗しました","confirmEnd":"{tool} セッションを終了しますか?","endWarning":"セッションを終了すると、チャット履歴がクリアされます。","running":"セッション実行中","starting":"セッション起動中","startingEllipsis":"セッション起動中..."},"status":{"waitingForResponse":"レスポンス待ち","responseCompleted":"レスポンス完了","thinking":"考え中...","thinkingStatus":"思考中","claudeIsThinking":"Claude が考え中です..."},"output":{"latest":"最新の出力","realtimeUpdate":"リアルタイム更新"},"errors":{"failedToUpdateFavorite":"お気に入りの更新に失敗しました","failedToUpdateStatus":"ステータスの更新に失敗しました"},"feedback":{"title":"フィードバック・サポート","bugReport":"バグを報告","featureRequest":"機能を提案","question":"質問する","viewIssues":"Issue一覧を見る"},"fileTree":{"moveTo":"移動先を選択...","moveDialogTitle":"移動先を選択","moveConfirm":"ここに移動","moveSuccess":"移動しました","timeAgo":"{time}前","rootDirectory":"ルート","metadata":{"size":"サイズ","created":"作成","modified":"更新","settingsLabel":"メタデータ表示設定","settingsTitle":"インライン表示","showSize":"ファイルサイズ","showCreated":"作成日時","showModified":"更新日時"},"loading":"ファイルを読み込み中","empty":"ファイルが見つかりません","newFile":"新規ファイル","newDirectory":"新規ディレクトリ","noResultsMatching":"「{query}」に一致するファイルはありません","noResultsContaining":"「{query}」を含むファイルはありません","label":"ファイルツリー","refreshing":"ファイルを更新中","refreshLabel":"ファイルツリーを更新","resetViewLabel":"ファイルツリーの表示をリセット","loadError":"ファイルの読み込みに失敗しました","loadDirectoryError":"ディレクトリの読み込みに失敗しました: {status}","itemCount":"{count} 項目"},"update":{"available":"新しいバージョンが利用可能です","latestVersion":"最新: v{version}","updateCommand":"更新コマンド:","viewRelease":"リリースを表示","dataPreserved":"アップデートによりデータベースのデータは保持されます。","version":"バージョン","installTypeGlobal":"npm(グローバル)","installTypeLocal":"ローカル(git pull)","updateNow":"今すぐアップデート","confirmTitle":"CommandMate をアップデートしますか?","confirmDescription":"CommandMate を v{version} に更新します。サーバを停止し、新しいバージョンをインストールして、再度起動します。数分かかります。","confirmButton":"アップデート","starting":"アップデートを開始しています...","updating":"アップデート中です。サーバは自動的に再起動します。","updatingHint":"数分かかります。この画面を開いたままにしてください。新しいバージョンの準備ができると自動的に再読み込みされます。","noRestartTitle":"更新をインストールしました","noRestartDescription":"このサーバは「commandmate start --daemon」以外の方法で起動されているため、旧バージョンのまま稼働しています。反映するにはサーバを手動で再起動してください。","timeoutTitle":"アップデートに失敗した可能性があります","timeoutDescription":"想定時間内にサーバが復帰しませんでした。状態を確認し、手動でアップデートを完了してください:","errorTitle":"アップデートを開始できませんでした","errorNotGlobal":"CommandMate はグローバルインストールではないため、自己更新できません。","errorInProgress":"アップデートは既に実行中です。","errorGeneric":"アップデートを開始できませんでした。手動でコマンドを実行してください:","logHint":"アップデートログ: {path}"},"terminal":{"historyLabel":"履歴","filesLabel":"ファイル","showHistory":"履歴を表示","hideHistory":"履歴を非表示","showFiles":"ファイルを表示","hideFiles":"ファイルを非表示","equalizeWidths":"均等幅","equalizeWidthsHint":"ターミナル幅を均等にし、履歴幅を初期値に戻す","addSplit":"分割を追加","removeSplit":"分割を削除","selectInstance":"{split} のエージェントインスタンスを選択","moreActions":"その他の操作","searchTerminal":"ターミナル内を検索","endSession":"セッションを終了","endSessionFor":"{name}のセッションを終了"},"todo":{"addPlaceholder":"ToDoを追加…","add":"追加","empty":"ToDoはまだありません。","loading":"読み込み中…","statusTodo":"未着手","statusDoing":"仕掛","statusDone":"完了","cycleStatus":"ステータス: {status}(クリックで変更)","moveUp":"上へ移動","moveDown":"下へ移動","delete":"ToDoを削除","edit":"ToDoを編集","editTitle":"ToDoを編集","contentLabel":"件名","contentPlaceholder":"ToDoの件名","detailLabel":"詳細","detailPlaceholder":"詳細を入力(任意)…","hasDetail":"詳細あり","copyDetail":"詳細をコピー","save":"保存","cancel":"キャンセル","loadError":"ToDoの読み込みに失敗しました","addError":"ToDoの追加に失敗しました","updateError":"ToDoの更新に失敗しました","deleteError":"ToDoの削除に失敗しました","reorderError":"ToDoの並び替えに失敗しました"},"htmlPreview":{"interactiveModeConfirm":"Interactiveモードではスクリプトが実行されます。信頼できないHTMLファイルではSafeモードを使用してください。","title":"HTML プレビュー: {path}","modeSource":"ソース","modePreview":"プレビュー","modeSplit":"分割","sandboxSafe":"セーフ","sandboxInteractive":"インタラクティブ"},"editor":{"saveFailedCloseConfirm":"保存に失敗しました。このまま閉じますか?","unsavedCloseConfirm":"未保存の変更があります。閉じてもよろしいですか?","loading":"読み込み中...","placeholder":"入力を開始...","placeholderMarkdown":"Markdown の入力を開始...","saveSuccess":"ファイルを保存しました","saveError":"ファイルの保存に失敗しました","loadError":"ファイルの読み込みに失敗しました","sessionExpired":"セッションの有効期限が切れました。再ログインしてください。","autoSaveFailed":"自動保存に失敗しました。手動保存に切り替えます。","unsaved":"未保存","auto":"自動","splitView":"分割表示","editorOnly":"エディタのみ","previewOnly":"プレビューのみ","enterFullscreen":"全画面にする (Ctrl+Shift+F)","exitFullscreen":"全画面を終了 (ESC)"},"actions":{"copyPath":"パスをコピー","copyContent":"内容をコピー","copyFilePath":"ファイルパスをコピー","copyFileContent":"ファイルの内容をコピー","search":"検索","searchInFile":"ファイル内を検索","edit":"編集","editFile":"ファイルを編集","download":"ダウンロード","downloadFile":"ファイルをダウンロード","close":"閉じる","save":"保存","saving":"保存中...","saved":"保存済み","prev":"前へ","next":"次へ","fullscreen":"全画面","exitFullscreen":"全画面を終了","minimize":"最小化","maximize":"最大化","retry":"再試行","refresh":"更新","resetView":"表示をリセット"},"fileSearch":{"placeholder":"検索...","prevMatch":"前の結果","nextMatch":"次の結果","close":"検索を閉じる"},"fileViewer":{"loading":"ファイルを読み込み中...","loadError":"ファイルの読み込みに失敗しました","tabSource":"ソース","tabPreview":"プレビュー","sandboxSafe":"セーフ","sandboxInteractive":"インタラクティブ","slideTitle":"{name} - スライド {number}","noSlides":"{fileName} にスライドが見つかりません","slides":"スライド","editor":"エディタ"},"fileTabs":{"unsavedChanges":"未保存の変更","closeTab":"{name} を閉じる"},"markdownPreview":{"loadingImage":"[画像を読み込み中...]","editor":"エディタ","preview":"プレビュー","exitFullscreenHint":"ESC キーで全画面を終了","exitFullscreenHintSwipe":"(または下にスワイプ)","largeFileWarning":"大きなファイル: パフォーマンスに影響する場合があります。"},"mermaid":{"rendering":"図を描画中...","loading":"図を読み込み中...","errorTitle":"図のエラー","emptyCode":"図のコードが空です","renderError":"図の描画に失敗しました"},"imageViewer":{"loadError":"画像の読み込みに失敗しました"},"videoViewer":{"loadError":"動画の読み込みに失敗しました","loading":"動画を読み込み中...","unsupported":"お使いのブラウザは video タグに対応していません。"},"logViewer":{"title":"ログファイル","all":"すべて ({count})","toolCount":"{tool} ({count})","empty":"ログファイルが見つかりません","emptyFiltered":"{tool} のログファイルが見つかりません","copyTitle":"サニタイズしたログをクリップボードにコピー","export":"エクスポート","exporting":"エクスポート中...","copied":"ログをクリップボードにコピーしました (サニタイズ済み)","exportError":"ログのエクスポートに失敗しました: {error}","searchPlaceholder":"ログファイル内を検索...","prevMatch":"前の一致 (Shift+Enter)","nextMatch":"次の一致 (Enter)","noMatches":"「{query}」に一致するものはありません"},"pdfPreview":{"title":"PDF プレビュー: {path}","loadError":"PDFプレビューを読み込めませんでした。","openInNewTab":"PDFを新しいタブで開く","download":"ダウンロード","downloadPdf":"PDF をダウンロード"},"diffViewer":{"badge":"DIFF","close":"差分表示を閉じる"},"search":{"searching":"検索中...","placeholder":"ファイルを検索...","label":"ファイルを検索","clear":"検索をクリア","mode":"モード:","modeName":"名前","modeContent":"内容"},"tabs":{"ariaLabel":"モバイルナビゲーション","terminal":"ターミナル","history":"履歴","files":"ファイル","memo":"ツール","info":"情報","newOutput":"新しい出力があります","promptWaiting":"プロンプト待機中","updateAvailable":"更新があります"},"git":{"uncommittedChanges":"未コミットの変更","askAi":"AI に質問","askAiTooltip":"現在の状況を AI チャットに下書きします(自動送信はされません)","advancedOperations":"高度な操作","remote":"リモート","paneSections":"Git ペインのセクション","tabs":{"status":"ステータス","changes":"変更","history":"履歴","advanced":"高度な操作"},"checkout":{"action":"チェックアウト","ariaLabel":"ブランチをチェックアウト","noBranches":"ブランチがありません","checkoutBranch":"{name} をチェックアウト","checkedOutElsewhere":"別のワークツリーでチェックアウト中: {path}","defaultBadge":"デフォルト","confirmTitlePrefix":"","confirmTitleSuffix":" をチェックアウトしますか?","forceLabel":"変更を破棄して強制チェックアウト — 未コミットの変更は失われます","historyLossWarning":"別ブランチへ切り替えると、このワークツリーに紐づくチャット履歴・メモ・スケジュールが次回同期時に失われる可能性があります","runningSessionWarning":"このブランチに切り替えると、稼働中のセッションの作業ファイルが変化します。"},"branches":{"title":"ブランチ","newButton":"+ 新規","refresh":"ブランチを更新","filterLocal":"ローカル","filterRemote":"リモート","filterAll":"すべて","loading":"ブランチを読み込み中...","empty":"ブランチがありません","defaultBadge":"デフォルト","deleteBranch":"{name} を削除","delete":"削除","createTitle":"ブランチを作成","namePlaceholder":"ブランチ名(例: feature/123-foo)","nameLabel":"新しいブランチ名","baseLabel":"ベースブランチ","currentHead":"(現在の HEAD)","create":"作成","deleteTitlePrefix":"","deleteTitleSuffix":" を削除しますか?","forceDeleteLabel":"強制削除(-D)— マージされていないコミットは失われます"},"changes":{"title":"変更","refresh":"変更を更新","loading":"変更を読み込み中...","listHeader":"{title}({count})","empty":"なし","togglePreview":"{path} の差分プレビューを切り替え","showDiff":"{path} の差分を表示","diff":"差分","fileAction":"{path} を{action}","loadingPreview":"差分プレビューを読み込み中...","previewFailed":"プレビューの読み込みに失敗しました","noDiff":"差分がありません","truncated":"… 省略されました — 完全な差分を開く","staged":"ステージ済み","unstaged":"未ステージ","untracked":"未追跡","stage":"ステージ","unstage":"アンステージ","commitMessage":"コミットメッセージ","amend":"直前のコミットを修正","commit":"コミット","committing":"コミット中...","commitAndPush":"コミット + プッシュ","commitAndPushTooltip":"コミットしてからプッシュします。プッシュに失敗してもコミットは保存済みなので、プッシュを再実行してください。"},"history":{"title":"コミット履歴","refresh":"コミット履歴を更新","loading":"コミット履歴を読み込み中...","empty":"コミットがありません","viewDiffFor":"{hash} の差分を表示","viewDiff":"差分を表示","hideDiff":"差分を隠す","loadingChangedFiles":"変更ファイルを読み込み中...","noChangedFiles":"変更ファイルがありません","showCommitDiff":"{path} のコミット差分を表示","changedFiles":"変更ファイル","diffLabel":"差分: {file}","loadingDiff":"差分を読み込み中...","noDiff":"差分がありません","diffInFilePanel":"ファイルパネルに差分を表示中: {file}"},"currentStatus":{"title":"現在の状況","refresh":"Git ステータスを更新","loading":"Git ステータスを読み込み中...","uncommitted":"未コミット","aheadTooltip":"アップストリームより先行しているコミット数","behindTooltip":"アップストリームより遅れているコミット数"},"danger":{"title":"危険な操作","resetOpen":"リセット…","revertOpen":"リバート…","forcePushOpen":"強制プッシュ…","selectCommitHint":"リバート / 指定コミットへのリセットを行うには、コミット履歴でコミットを選択してください。","resetTitle":"リセット","resetTargetHead":"HEAD","resetTargetSelectedPrefix":"選択中のコミット ","resetTargetSelectedHash":"({hash})","resetTargetNoneSelected":"(未選択)","modeSoft":"soft","modeMixed":"mixed","modeHard":"hard","resetHardWarning":"ハードリセットは未コミットの変更を完全に破棄し、HEAD を移動するとコミットも失われる可能性があります。この操作は取り消せません。","runningSessionWarning":"この危険な操作は、稼働中のセッションが編集中の作業ファイルを破壊的に書き換えます。","confirmPlaceholder":"確認のため \\"{branch}\\" と入力してください","reset":"リセット","revertTitle":"リバート","revertBodyPrefix":"コミットをリバート ","revertNoCommit":"コミットしない(ステージのまま)","revert":"リバート","forcePushTitle":"強制プッシュ","protectedBranchWarning":"デフォルトブランチへの force push は禁止されています。","forceWithLease":"--force-with-lease を使用(推奨 — リモートが更新されていた場合は拒否されます)","forcePush":"強制プッシュ"},"network":{"quickActions":"クイック操作","fetch":"フェッチ","pull":"プル","push":"プッシュ","noUpstreamTooltip":"アップストリームがありません — プッシュ時に設定されます","pushing":"プッシュ中","pulling":"プル中","fetching":"フェッチ中","progress":"{operation}… {elapsed}秒","abort":"中止","conflicts":"プルで競合が発生しました: {files}。ターミナルで解決してください。","authFailedGuidance":"ターミナルで一度 push/pull して認証情報を設定してください。","failed":"Git のネットワーク操作に失敗しました"},"stash":{"titlePrefix":"スタッシュ ","count":"({count})","refresh":"スタッシュ一覧を更新","messagePlaceholder":"スタッシュメッセージ(任意)","includeUntracked":"未追跡ファイルを含める","push":"スタッシュ","loading":"スタッシュを読み込み中...","empty":"スタッシュがありません","apply":"適用","pop":"ポップ","drop":"破棄","dropConfirmSuffix":" を完全に削除します。この操作は取り消せません。"},"aiPrompts":{"branchCreate":"{base} から {name} ブランチを作成して checkout してください。","branchCreateBaseHead":"現在の HEAD","branchDelete":"{name} ブランチを削除してください。","branchDeleteForce":"{name} ブランチを削除してください。(マージされていないコミットがあっても -D で強制削除してください)","stashCleanup":"古い stash entry をリストアップし、不要なものを削除する提案をしてください。","stashCleanupCurrent":"現在の stash:","stashConflict":"stash の pop / apply で conflict が発生しました。conflict を解決してから commit してください。","reset":"{target} に対して {mode} reset を行いたいです。安全に実行してください。","resetHard":"{target} に対して hard reset を行いたいです。安全に実行してください。 hard reset は作業内容を失う可能性があります。もし直前の hard reset を取り消したい場合は git reflog から復旧してください。","revert":"コミット {commit} を revert してください。","forcePush":"{branchRef} を force-with-lease で push したいです。事前に upstream({upstream})との差分を確認し、安全な場合のみ push してください。","forcePushAhead":"{branchRef}(↑{ahead}) を force-with-lease で push したいです。事前に upstream({upstream})との差分を確認し、安全な場合のみ push してください。","forcePushCurrentBranch":"現在のブランチ"}},"activityBar":{"toggleSidebar":"サイドバーを切り替え","label":"アクティビティバー","files":"ファイル","git":"Git","notes":"メモ","schedules":"スケジュール","agent":"エージェント","timer":"タイマー","todo":"ToDo"},"branchMismatch":{"changedFrom":"ブランチが","to":"から","dismiss":"アラートを閉じる"},"contextMenu":{"label":"ファイル操作","uploadFile":"ファイルをアップロード","rename":"名前を変更","move":"移動","delete":"削除"},"navigation":{"toolbarLabel":"TUI ナビゲーション","caption":"ナビ","quitPager":"ページャーを終了"},"newFileDialog":{"title":"新規ファイル","fileNameLabel":"ファイル名","placeholder":"document","create":"作成"},"paneResizer":{"label":"ペインのサイズを変更します。{arrows}キーで調整できます。","arrowsHorizontal":"左右の矢印","arrowsVertical":"上下の矢印"},"desktopLayout":{"activityPane":"アクティビティペイン","terminalPane":"ターミナルペイン"},"worktreeStatus":{"notSet":"未設定","ready":"準備完了","inProgress":"作業中","inReview":"レビュー中","done":"完了"},"card":{"main":"メイン","description":"説明","link":"リンク","openLink":"リンクを新しいタブで開く","updated":"更新 {time}"},"detail":{"worktree":"ワークツリー","repository":"リポジトリ","copyRepositoryPath":"リポジトリのパスをコピー","copyWorktreePath":"ワークツリーのパスをコピー","copyPath":"パスをコピー","copied":"コピーしました!","path":"パス","status":"ステータス","worktreeStatusLabel":"ワークツリーのステータス","description":"説明","addNotesPlaceholder":"このブランチについてのメモを追加...","noDescription":"説明はまだ追加されていません","link":"リンク","lastUpdated":"最終更新","logs":"ログ","hide":"隠す","show":"表示","goBack":"ワークツリー一覧に戻る","home":"ホーム","viewInfo":"ワークツリーの情報を表示","info":"情報","infoModalTitle":"ワークツリー情報","loading":"ワークツリーを読み込み中...","loadingInfo":"ワークツリー情報を読み込み中...","errorLoading":"ワークツリーの読み込みに失敗しました","uploadFile":"ファイルをアップロード","unknownRepository":"不明","loadingEditor":"エディタを読み込み中...","agentInstanceSelection":"エージェントインスタンスの選択","statusPill":"{label}: {status}","subTabMessage":"メッセージ","subTabGit":"Git"},"detailStatus":{"idle":"アイドル - セッションなし","ready":"準備完了 - 入力待ち","running":"実行中 - 処理しています","waiting":"待機中 - ユーザー入力が必要です"}}')}};
1
+ "use strict";exports.id=2445,exports.ids=[2445],exports.modules={52445:a=>{a.exports=JSON.parse('{"agentStatus":{"moreAgents":"他 {count} 件のエージェント","overflowTrigger":"他のエージェント"},"toc":{"title":"目次","show":"目次を表示","hide":"目次を非表示","empty":"見出しなし"},"composer":{"placeholder":"メッセージを入力…","commandsHint":"コマンド","newlineHint":"改行","removeAttachment":"添付を削除","showSlashCommands":"スラッシュコマンドを表示","attachImage":"画像を添付","sendMessage":"メッセージを送信"},"interrupt":{"stopProcessing":"処理を中断"},"history":{"title":"メッセージ履歴","regionLabel":"メッセージ履歴","loading":"メッセージを読み込み中","empty":"メッセージはまだありません","show":"表示件数","displayLimit":"履歴の表示件数","showArchived":"アーカイブを表示","showUserOnly":"ユーザーのメッセージのみ表示","showAllMessages":"すべてのメッセージを表示","openSearch":"検索を開く","closeSearch":"検索を閉じる","copied":"クリップボードにコピーしました","copyFailed":"コピーに失敗しました","search":{"regionLabel":"履歴内テキスト検索","placeholder":"検索...","keywordLabel":"検索キーワード","prev":"前の結果 (prev)","next":"次の結果 (next)","close":"検索を閉じる (close)","countAtMax":"{current}/{max}以上"}},"conversation":{"waitingForResponse":"レスポンス待ち...","you":"あなた","assistant":"アシスタント","sending":"送信中…","failedToSend":"送信に失敗しました","retrySending":"メッセージを再送信","discard":"破棄","discardMessage":"メッセージを破棄","insertToMessage":"メッセージ欄に挿入","copy":"コピー","copyMessage":"メッセージをコピー","collapse":"折りたたむ","expand":"展開","collapseMessage":"メッセージを折りたたむ","expandMessage":"メッセージを展開","systemMessage":"システムメッセージ","systemMessageLabel":"システムメッセージ","openFile":"ファイルを開く: {path}","conversationLabel":"会話: {preview}"},"messages":{"loading":"メッセージを読み込み中...","empty":"メッセージはまだありません","you":"あなた","copy":"コピー","copyMessage":"メッセージをコピー","viewLogFile":"ログファイルを表示 →"},"slashCommands":{"title":"コマンド","searchPlaceholder":"コマンドを検索...","enterCustomCommand":"カスタムコマンドを入力...","selectHint":"選択","closeHint":"閉じる","empty":"利用可能なコマンドがありません","descriptions":{"clear":"会話履歴をクリア","compact":"コンテキストを圧縮してトークン使用量を削減","resume":"前回の会話を再開","rewind":"会話を以前の状態に巻き戻す","config":"設定を開く","model":"AI モデルを切り替え","permissions":"ツールの権限を表示・更新","status":"セッションの状態を確認","context":"コンテキストウィンドウの使用量を表示","cost":"トークンとコストの使用量を表示","review":"コードの変更をレビュー","pr-comments":"PR のコメントを表示","help":"利用可能なすべてのコマンドを表示","doctor":"インストール状態を診断","export":"会話履歴をエクスポート","todos":"TODO リストを表示","focus":"フォーカスモードを切り替え","effort":"モデルの思考量を調整(high/medium/low)","fast":"高速応答モードに切り替え","lazy":"レイジーモードを切り替え","new":"新しい会話を開始","undo":"直前の Codex の操作を取り消す","logout":"Codex からサインアウト","quit":"Codex CLI を終了","approvals":"自動実行の承認レベルを変更","diff":"Git の差分を表示(未追跡ファイルを含む)","mention":"次のやり取りにファイル/フォルダを添付","mcp":"利用可能な MCP ツールを一覧表示","init":"カレントディレクトリに AGENTS.md テンプレートを生成","feedback":"Codex チームにフィードバックを送信","plan":"プランモードを切り替え","goal":"現在のセッションの目標を設定","agent":"アクティブなエージェントを切り替え(Codex)","subagents":"サブエージェントを管理","fork":"現在のセッションをフォーク","memories":"Codex のメモリを管理","skills":"Codex のスキルを管理","hooks":"Codex のフックを管理","sessions":"会話履歴を閲覧","connect":"言語サーバーに接続","exit":"OpenCode TUI を終了","models":"AI モデルを切り替え","agents":"利用可能なすべてのエージェントを一覧・管理(OpenCode)","themes":"TUI のテーマを変更","editor":"長文メッセージ用のエディタを開く"}},"session":{"confirmKill":"「{name}」のセッションを終了しますか?\\n\\n※全てのメッセージ履歴が削除されます。ログファイルは保持されます。","failedToKill":"セッションの終了に失敗しました","confirmEnd":"{tool} セッションを終了しますか?","endWarning":"セッションを終了すると、チャット履歴がクリアされます。","running":"セッション実行中","starting":"セッション起動中","startingEllipsis":"セッション起動中..."},"status":{"waitingForResponse":"レスポンス待ち","responseCompleted":"レスポンス完了","thinking":"考え中...","thinkingStatus":"思考中","claudeIsThinking":"Claude が考え中です..."},"output":{"latest":"最新の出力","realtimeUpdate":"リアルタイム更新"},"errors":{"failedToUpdateFavorite":"お気に入りの更新に失敗しました","failedToUpdateStatus":"ステータスの更新に失敗しました"},"feedback":{"title":"フィードバック・サポート","bugReport":"バグを報告","featureRequest":"機能を提案","question":"質問する","viewIssues":"Issue一覧を見る"},"fileTree":{"moveTo":"移動先を選択...","moveDialogTitle":"移動先を選択","moveConfirm":"ここに移動","moveSuccess":"移動しました","timeAgo":"{time}前","rootDirectory":"ルート","metadata":{"size":"サイズ","created":"作成","modified":"更新","settingsLabel":"メタデータ表示設定","settingsTitle":"インライン表示","showSize":"ファイルサイズ","showCreated":"作成日時","showModified":"更新日時"},"loading":"ファイルを読み込み中","empty":"ファイルが見つかりません","newFile":"新規ファイル","newDirectory":"新規ディレクトリ","noResultsMatching":"「{query}」に一致するファイルはありません","noResultsContaining":"「{query}」を含むファイルはありません","label":"ファイルツリー","refreshing":"ファイルを更新中","refreshLabel":"ファイルツリーを更新","resetViewLabel":"ファイルツリーの表示をリセット","loadError":"ファイルの読み込みに失敗しました","loadDirectoryError":"ディレクトリの読み込みに失敗しました: {status}","itemCount":"{count} 項目"},"update":{"available":"新しいバージョンが利用可能です","latestVersion":"最新: v{version}","updateCommand":"更新コマンド:","viewRelease":"リリースを表示","dataPreserved":"アップデートによりデータベースのデータは保持されます。","version":"バージョン","installTypeGlobal":"npm(グローバル)","installTypeLocal":"ローカル(git pull)","updateNow":"今すぐアップデート","npxRestartNotice":"このサーバは npx で起動しています。アップデートは最新版を取得してサーバを再起動します。ポートなど一部の起動設定は変わることがあります。自動で再接続しない場合は「commandmate status」で稼働先を確認してください。","confirmTitle":"CommandMate をアップデートしますか?","confirmDescription":"CommandMate を v{version} に更新します。サーバを停止し、新しいバージョンをインストールして、再度起動します。数分かかります。","confirmButton":"アップデート","starting":"アップデートを開始しています...","updating":"アップデート中です。サーバは自動的に再起動します。","updatingHint":"数分かかります。この画面を開いたままにしてください。新しいバージョンの準備ができると自動的に再読み込みされます。","noRestartTitle":"更新をインストールしました","noRestartDescription":"このサーバは「commandmate start --daemon」以外の方法で起動されているため、旧バージョンのまま稼働しています。反映するにはサーバを手動で再起動してください。","timeoutTitle":"アップデートに失敗した可能性があります","timeoutDescription":"想定時間内にサーバが復帰しませんでした。状態を確認し、手動でアップデートを完了してください:","errorTitle":"アップデートを開始できませんでした","errorNotGlobal":"CommandMate はグローバルインストールではないため、自己更新できません。","errorInProgress":"アップデートは既に実行中です。","errorGeneric":"アップデートを開始できませんでした。手動でコマンドを実行してください:","logHint":"アップデートログ: {path}"},"terminal":{"historyLabel":"履歴","filesLabel":"ファイル","showHistory":"履歴を表示","hideHistory":"履歴を非表示","showFiles":"ファイルを表示","hideFiles":"ファイルを非表示","equalizeWidths":"均等幅","equalizeWidthsHint":"ターミナル幅を均等にし、履歴幅を初期値に戻す","addSplit":"分割を追加","removeSplit":"分割を削除","selectInstance":"{split} のエージェントインスタンスを選択","moreActions":"その他の操作","searchTerminal":"ターミナル内を検索","endSession":"セッションを終了","endSessionFor":"{name}のセッションを終了"},"todo":{"addPlaceholder":"ToDoを追加…","add":"追加","empty":"ToDoはまだありません。","loading":"読み込み中…","statusTodo":"未着手","statusDoing":"仕掛","statusDone":"完了","cycleStatus":"ステータス: {status}(クリックで変更)","moveUp":"上へ移動","moveDown":"下へ移動","delete":"ToDoを削除","edit":"ToDoを編集","editTitle":"ToDoを編集","contentLabel":"件名","contentPlaceholder":"ToDoの件名","detailLabel":"詳細","detailPlaceholder":"詳細を入力(任意)…","hasDetail":"詳細あり","copyDetail":"詳細をコピー","save":"保存","cancel":"キャンセル","loadError":"ToDoの読み込みに失敗しました","addError":"ToDoの追加に失敗しました","updateError":"ToDoの更新に失敗しました","deleteError":"ToDoの削除に失敗しました","reorderError":"ToDoの並び替えに失敗しました"},"htmlPreview":{"interactiveModeConfirm":"Interactiveモードではスクリプトが実行されます。信頼できないHTMLファイルではSafeモードを使用してください。","title":"HTML プレビュー: {path}","modeSource":"ソース","modePreview":"プレビュー","modeSplit":"分割","sandboxSafe":"セーフ","sandboxInteractive":"インタラクティブ"},"editor":{"saveFailedCloseConfirm":"保存に失敗しました。このまま閉じますか?","unsavedCloseConfirm":"未保存の変更があります。閉じてもよろしいですか?","loading":"読み込み中...","placeholder":"入力を開始...","placeholderMarkdown":"Markdown の入力を開始...","saveSuccess":"ファイルを保存しました","saveError":"ファイルの保存に失敗しました","loadError":"ファイルの読み込みに失敗しました","sessionExpired":"セッションの有効期限が切れました。再ログインしてください。","autoSaveFailed":"自動保存に失敗しました。手動保存に切り替えます。","unsaved":"未保存","auto":"自動","splitView":"分割表示","editorOnly":"エディタのみ","previewOnly":"プレビューのみ","enterFullscreen":"全画面にする (Ctrl+Shift+F)","exitFullscreen":"全画面を終了 (ESC)"},"actions":{"copyPath":"パスをコピー","copyContent":"内容をコピー","copyFilePath":"ファイルパスをコピー","copyFileContent":"ファイルの内容をコピー","search":"検索","searchInFile":"ファイル内を検索","edit":"編集","editFile":"ファイルを編集","download":"ダウンロード","downloadFile":"ファイルをダウンロード","close":"閉じる","save":"保存","saving":"保存中...","saved":"保存済み","prev":"前へ","next":"次へ","fullscreen":"全画面","exitFullscreen":"全画面を終了","minimize":"最小化","maximize":"最大化","retry":"再試行","refresh":"更新","resetView":"表示をリセット"},"fileSearch":{"placeholder":"検索...","prevMatch":"前の結果","nextMatch":"次の結果","close":"検索を閉じる"},"fileViewer":{"loading":"ファイルを読み込み中...","loadError":"ファイルの読み込みに失敗しました","tabSource":"ソース","tabPreview":"プレビュー","sandboxSafe":"セーフ","sandboxInteractive":"インタラクティブ","slideTitle":"{name} - スライド {number}","noSlides":"{fileName} にスライドが見つかりません","slides":"スライド","editor":"エディタ"},"fileTabs":{"unsavedChanges":"未保存の変更","closeTab":"{name} を閉じる"},"markdownPreview":{"loadingImage":"[画像を読み込み中...]","editor":"エディタ","preview":"プレビュー","exitFullscreenHint":"ESC キーで全画面を終了","exitFullscreenHintSwipe":"(または下にスワイプ)","largeFileWarning":"大きなファイル: パフォーマンスに影響する場合があります。"},"mermaid":{"rendering":"図を描画中...","loading":"図を読み込み中...","errorTitle":"図のエラー","emptyCode":"図のコードが空です","renderError":"図の描画に失敗しました"},"imageViewer":{"loadError":"画像の読み込みに失敗しました"},"videoViewer":{"loadError":"動画の読み込みに失敗しました","loading":"動画を読み込み中...","unsupported":"お使いのブラウザは video タグに対応していません。"},"logViewer":{"title":"ログファイル","all":"すべて ({count})","toolCount":"{tool} ({count})","empty":"ログファイルが見つかりません","emptyFiltered":"{tool} のログファイルが見つかりません","copyTitle":"サニタイズしたログをクリップボードにコピー","export":"エクスポート","exporting":"エクスポート中...","copied":"ログをクリップボードにコピーしました (サニタイズ済み)","exportError":"ログのエクスポートに失敗しました: {error}","searchPlaceholder":"ログファイル内を検索...","prevMatch":"前の一致 (Shift+Enter)","nextMatch":"次の一致 (Enter)","noMatches":"「{query}」に一致するものはありません"},"pdfPreview":{"title":"PDF プレビュー: {path}","loadError":"PDFプレビューを読み込めませんでした。","openInNewTab":"PDFを新しいタブで開く","download":"ダウンロード","downloadPdf":"PDF をダウンロード"},"diffViewer":{"badge":"DIFF","close":"差分表示を閉じる"},"search":{"searching":"検索中...","placeholder":"ファイルを検索...","label":"ファイルを検索","clear":"検索をクリア","mode":"モード:","modeName":"名前","modeContent":"内容"},"tabs":{"ariaLabel":"モバイルナビゲーション","terminal":"ターミナル","history":"履歴","files":"ファイル","memo":"ツール","info":"情報","newOutput":"新しい出力があります","promptWaiting":"プロンプト待機中","updateAvailable":"更新があります"},"git":{"uncommittedChanges":"未コミットの変更","askAi":"AI に質問","askAiTooltip":"現在の状況を AI チャットに下書きします(自動送信はされません)","advancedOperations":"高度な操作","remote":"リモート","paneSections":"Git ペインのセクション","tabs":{"status":"ステータス","changes":"変更","history":"履歴","advanced":"高度な操作"},"checkout":{"action":"チェックアウト","ariaLabel":"ブランチをチェックアウト","noBranches":"ブランチがありません","checkoutBranch":"{name} をチェックアウト","checkedOutElsewhere":"別のワークツリーでチェックアウト中: {path}","defaultBadge":"デフォルト","confirmTitlePrefix":"","confirmTitleSuffix":" をチェックアウトしますか?","forceLabel":"変更を破棄して強制チェックアウト — 未コミットの変更は失われます","historyLossWarning":"別ブランチへ切り替えると、このワークツリーに紐づくチャット履歴・メモ・スケジュールが次回同期時に失われる可能性があります","runningSessionWarning":"このブランチに切り替えると、稼働中のセッションの作業ファイルが変化します。"},"branches":{"title":"ブランチ","newButton":"+ 新規","refresh":"ブランチを更新","filterLocal":"ローカル","filterRemote":"リモート","filterAll":"すべて","loading":"ブランチを読み込み中...","empty":"ブランチがありません","defaultBadge":"デフォルト","deleteBranch":"{name} を削除","delete":"削除","createTitle":"ブランチを作成","namePlaceholder":"ブランチ名(例: feature/123-foo)","nameLabel":"新しいブランチ名","baseLabel":"ベースブランチ","currentHead":"(現在の HEAD)","create":"作成","deleteTitlePrefix":"","deleteTitleSuffix":" を削除しますか?","forceDeleteLabel":"強制削除(-D)— マージされていないコミットは失われます"},"changes":{"title":"変更","refresh":"変更を更新","loading":"変更を読み込み中...","listHeader":"{title}({count})","empty":"なし","togglePreview":"{path} の差分プレビューを切り替え","showDiff":"{path} の差分を表示","diff":"差分","fileAction":"{path} を{action}","loadingPreview":"差分プレビューを読み込み中...","previewFailed":"プレビューの読み込みに失敗しました","noDiff":"差分がありません","truncated":"… 省略されました — 完全な差分を開く","staged":"ステージ済み","unstaged":"未ステージ","untracked":"未追跡","stage":"ステージ","unstage":"アンステージ","commitMessage":"コミットメッセージ","amend":"直前のコミットを修正","commit":"コミット","committing":"コミット中...","commitAndPush":"コミット + プッシュ","commitAndPushTooltip":"コミットしてからプッシュします。プッシュに失敗してもコミットは保存済みなので、プッシュを再実行してください。"},"history":{"title":"コミット履歴","refresh":"コミット履歴を更新","loading":"コミット履歴を読み込み中...","empty":"コミットがありません","viewDiffFor":"{hash} の差分を表示","viewDiff":"差分を表示","hideDiff":"差分を隠す","loadingChangedFiles":"変更ファイルを読み込み中...","noChangedFiles":"変更ファイルがありません","showCommitDiff":"{path} のコミット差分を表示","changedFiles":"変更ファイル","diffLabel":"差分: {file}","loadingDiff":"差分を読み込み中...","noDiff":"差分がありません","diffInFilePanel":"ファイルパネルに差分を表示中: {file}"},"currentStatus":{"title":"現在の状況","refresh":"Git ステータスを更新","loading":"Git ステータスを読み込み中...","uncommitted":"未コミット","aheadTooltip":"アップストリームより先行しているコミット数","behindTooltip":"アップストリームより遅れているコミット数"},"danger":{"title":"危険な操作","resetOpen":"リセット…","revertOpen":"リバート…","forcePushOpen":"強制プッシュ…","selectCommitHint":"リバート / 指定コミットへのリセットを行うには、コミット履歴でコミットを選択してください。","resetTitle":"リセット","resetTargetHead":"HEAD","resetTargetSelectedPrefix":"選択中のコミット ","resetTargetSelectedHash":"({hash})","resetTargetNoneSelected":"(未選択)","modeSoft":"soft","modeMixed":"mixed","modeHard":"hard","resetHardWarning":"ハードリセットは未コミットの変更を完全に破棄し、HEAD を移動するとコミットも失われる可能性があります。この操作は取り消せません。","runningSessionWarning":"この危険な操作は、稼働中のセッションが編集中の作業ファイルを破壊的に書き換えます。","confirmPlaceholder":"確認のため \\"{branch}\\" と入力してください","reset":"リセット","revertTitle":"リバート","revertBodyPrefix":"コミットをリバート ","revertNoCommit":"コミットしない(ステージのまま)","revert":"リバート","forcePushTitle":"強制プッシュ","protectedBranchWarning":"デフォルトブランチへの force push は禁止されています。","forceWithLease":"--force-with-lease を使用(推奨 — リモートが更新されていた場合は拒否されます)","forcePush":"強制プッシュ"},"network":{"quickActions":"クイック操作","fetch":"フェッチ","pull":"プル","push":"プッシュ","noUpstreamTooltip":"アップストリームがありません — プッシュ時に設定されます","pushing":"プッシュ中","pulling":"プル中","fetching":"フェッチ中","progress":"{operation}… {elapsed}秒","abort":"中止","conflicts":"プルで競合が発生しました: {files}。ターミナルで解決してください。","authFailedGuidance":"ターミナルで一度 push/pull して認証情報を設定してください。","failed":"Git のネットワーク操作に失敗しました"},"stash":{"titlePrefix":"スタッシュ ","count":"({count})","refresh":"スタッシュ一覧を更新","messagePlaceholder":"スタッシュメッセージ(任意)","includeUntracked":"未追跡ファイルを含める","push":"スタッシュ","loading":"スタッシュを読み込み中...","empty":"スタッシュがありません","apply":"適用","pop":"ポップ","drop":"破棄","dropConfirmSuffix":" を完全に削除します。この操作は取り消せません。"},"aiPrompts":{"branchCreate":"{base} から {name} ブランチを作成して checkout してください。","branchCreateBaseHead":"現在の HEAD","branchDelete":"{name} ブランチを削除してください。","branchDeleteForce":"{name} ブランチを削除してください。(マージされていないコミットがあっても -D で強制削除してください)","stashCleanup":"古い stash entry をリストアップし、不要なものを削除する提案をしてください。","stashCleanupCurrent":"現在の stash:","stashConflict":"stash の pop / apply で conflict が発生しました。conflict を解決してから commit してください。","reset":"{target} に対して {mode} reset を行いたいです。安全に実行してください。","resetHard":"{target} に対して hard reset を行いたいです。安全に実行してください。 hard reset は作業内容を失う可能性があります。もし直前の hard reset を取り消したい場合は git reflog から復旧してください。","revert":"コミット {commit} を revert してください。","forcePush":"{branchRef} を force-with-lease で push したいです。事前に upstream({upstream})との差分を確認し、安全な場合のみ push してください。","forcePushAhead":"{branchRef}(↑{ahead}) を force-with-lease で push したいです。事前に upstream({upstream})との差分を確認し、安全な場合のみ push してください。","forcePushCurrentBranch":"現在のブランチ"}},"activityBar":{"toggleSidebar":"サイドバーを切り替え","label":"アクティビティバー","files":"ファイル","git":"Git","notes":"メモ","schedules":"スケジュール","agent":"エージェント","timer":"タイマー","todo":"ToDo"},"branchMismatch":{"changedFrom":"ブランチが","to":"から","dismiss":"アラートを閉じる"},"contextMenu":{"label":"ファイル操作","uploadFile":"ファイルをアップロード","rename":"名前を変更","move":"移動","delete":"削除"},"navigation":{"toolbarLabel":"TUI ナビゲーション","caption":"ナビ","quitPager":"ページャーを終了"},"newFileDialog":{"title":"新規ファイル","fileNameLabel":"ファイル名","placeholder":"document","create":"作成"},"paneResizer":{"label":"ペインのサイズを変更します。{arrows}キーで調整できます。","arrowsHorizontal":"左右の矢印","arrowsVertical":"上下の矢印"},"desktopLayout":{"activityPane":"アクティビティペイン","terminalPane":"ターミナルペイン"},"worktreeStatus":{"notSet":"未設定","ready":"準備完了","inProgress":"作業中","inReview":"レビュー中","done":"完了"},"card":{"main":"メイン","description":"説明","link":"リンク","openLink":"リンクを新しいタブで開く","updated":"更新 {time}"},"detail":{"worktree":"ワークツリー","repository":"リポジトリ","copyRepositoryPath":"リポジトリのパスをコピー","copyWorktreePath":"ワークツリーのパスをコピー","copyPath":"パスをコピー","copied":"コピーしました!","path":"パス","status":"ステータス","worktreeStatusLabel":"ワークツリーのステータス","description":"説明","addNotesPlaceholder":"このブランチについてのメモを追加...","noDescription":"説明はまだ追加されていません","link":"リンク","lastUpdated":"最終更新","logs":"ログ","hide":"隠す","show":"表示","goBack":"ワークツリー一覧に戻る","home":"ホーム","viewInfo":"ワークツリーの情報を表示","info":"情報","infoModalTitle":"ワークツリー情報","loading":"ワークツリーを読み込み中...","loadingInfo":"ワークツリー情報を読み込み中...","errorLoading":"ワークツリーの読み込みに失敗しました","uploadFile":"ファイルをアップロード","unknownRepository":"不明","loadingEditor":"エディタを読み込み中...","agentInstanceSelection":"エージェントインスタンスの選択","statusPill":"{label}: {status}","subTabMessage":"メッセージ","subTabGit":"Git"},"detailStatus":{"idle":"アイドル - セッションなし","ready":"準備完了 - 入力待ち","running":"実行中 - 処理しています","waiting":"待機中 - ユーザー入力が必要です"}}')}};
@@ -1,4 +1,4 @@
1
- exports.id=5959,exports.ids=[1296,5959,9358],exports.modules={60:(a,b,c)=>{"use strict";c.d(b,{Q:()=>f,b:()=>e});var d=c(26283);function e(a){return d.Md.test(a)&&!d.kD.test(a)}function f(a,b,c,d,e){if(a=Math.max(0,a),"opencode"===d||"copilot"===d){let a=e(b);return a>=0?a+1:0}if("antigravity"===d){let c=e(b);return c>=0?c+1:Math.max(0,a)}if(a>=b||c){let a=e(40);return a>=0?a+1:0}if("codex"===d)return Math.max(0,a);if(a>=b-5){let a=e(50);return a>=0?a+1:Math.max(0,b-40)}return Math.max(0,a)}},3523:(a,b,c)=>{"use strict";c.d(b,{z$:()=>A,zX:()=>B});var d=c(31766),e=c(88807),f=c(56791),g=c(49997),h=c(25129),i=c(18778),j=c(15194),k=c(8988),l=c(26283),m=c(72626),n=c(46423),o=c(60),p=c(82450),q=c(56263),r=c(13033),s=c(72457),t=c(71080),u=c(45146),v=c(63865);let w=(0,m.h)("response-poller");function x(a){return{response:"",isComplete:!1,lineCount:a}}function y(a,b,c,d,e,f,g){let h=(0,o.Q)(b,c,d,e,f),i=a.slice(h);return{response:(0,l.aJ)(i.join("\n")),isComplete:!0,lineCount:c,promptDetection:g,bufferReset:d}}function z(a,b){let c=(0,l.KO)(b);return(0,h.gF)((0,l._A)((0,l.aJ)(a)),c)}function A(a,b,c){let d=a.split("\n"),e=d.length;for(;e>0&&""===d[e-1].trim();)e--;let f=d.slice(0,e),g=f.length,h="claude"===c?(0,l.GT)(f):-1,i=h>=0?h:g,j=g>0&&b>25&&g+25<b,k=g>0&&b>50&&g<50,m=j||k;if(!m&&g<b-5)return null;let p=Math.max(0,g-20),q=f.slice(p),r="opencode"===c?(0,l.aJ)(f.join("\n")):q.join("\n"),{promptPattern:s,separatorPattern:t,thinkingPattern:v,skipPatterns:w}=(0,l._X)(c),A=(a=60)=>{let b;if("codex"===c)b=/^›\s+(?!Implement|Find and fix|Type|Summarize)/;else if("opencode"===c){let b=0;for(let c=g-1;c>=Math.max(0,g-a);c--){let a=(0,l.aJ)(f[c]);if(l.Md.test(a)&&2==++b)return c}return -1}else b=/^[>❯]\s+\S/;for(let c=i-1;c>=Math.max(0,i-a);c--){let a=(0,l.aJ)(f[c]);if(b.test(a))return c}return -1};if("claude"===c||"codex"===c||"copilot"===c){let a=z(f.join("\n"),c);if(a.isPrompt)return y(f,b,g,m,c,A,a)}let B=(0,l.aJ)(r),C=s.test(B),D=t.test(B),E=v.test(B),F=("codex"===c||"gemini"===c||"vibe-local"===c||"copilot"===c||"antigravity"===c)&&C&&!E,G="claude"===c&&C&&D&&!E,H="opencode"===c&&(0,o.b)(B);if(F||G||H){let a=[],d=(0,o.Q)(b,g,m,c,A),e=g;for(let b=d;b<i;b++){let d=f[b],g=(0,l.aJ)(d);if("codex"===c&&/^›\s+/.test(g)||"gemini"===c&&/^(%|\$|.*@.*[%$#])\s*$/.test(g)||"antigravity"===c&&/^>\s*$/.test(g)||"opencode"===c&&(l.sy.test(g)||l.uA.test(g))){e=b;break}w.some(a=>a.test(g))||a.push(d)}let h=a.join("\n").trim(),j=h.split("\n").slice(-n.$).join("\n");if(v.test(j))return x(g);if("claude"===c){let a=(0,l.aJ)(h),b=/[╭╮╰╯│]/.test(a)||/░{3,}/.test(a)||/▓{3,}/.test(a),c=/Claude Code|claude\/|v\d+\.\d+/.test(a),d=/Tip:|for shortcuts|\?\s*for help/.test(a),e=/^\s*\/Users\/.*$/m.test(a)&&a.split("\n").length<30,f=a.match(/^[>❯]\s+(\S.*)$/m);if(f){let b=a.indexOf(f[0]);if(0===a.substring(b+f[0].length).trim().split("\n").filter(a=>{let b=a.trim();return b&&!w.some(a=>a.test(b))&&!/^─+$/.test(b)}).length)return x(g)}else if((b||c||d||e)&&h.length<2e3)return x(g)}if("gemini"===c&&((h.match(/[░███]/g)||[]).length>.3*h.length||u.SI.some(a=>h.includes(a))||!h.includes("✦")&&h.length<10))return x(g);if("opencode"===c){let a=(0,l.aJ)(h);if((a.length<50||!l.Md.test(B))&&0===a.split("\n").filter(a=>{let b=a.trim();return b&&!l.sx.some(a=>a.test(b))}).length)return x(g)}return{response:h,isComplete:!0,lineCount:e,bufferReset:m}}if("opencode"!==c){let a=z(f.join("\n"),c);if(a.isPrompt)return y(f,b,g,m,c,A,a)}let I=[],J=m||b>=g-5,K=J?A(80):-1,L=J?K>=0?K+1:Math.max(0,g-80):Math.max(0,b);for(let a=L;a<Math.min(g,i);a++){let b=f[a],c=(0,l.aJ)(b);w.some(a=>a.test(c))||I.push(b)}let M=I.join("\n").trim();return M?{response:M,isComplete:!1,lineCount:g}:x(g)}async function B(a,b,c){let h=(0,e.getDbInstance)(),m=c??b;try{let e=(0,f.Ui)(h,a);if(!e)return w.error("worktree-worktreeid-not"),(0,u.Et)(a,b,c),!1;if(!await (0,d.K1)(a,b,c))return w.info("session-not-running"),(0,u.Et)(a,b,c),!1;let o=(0,f.y1)(h,a,m),x=o?.lastCapturedLine||0,y=await (0,d.Wh)(a,b,1e4,c);if("opencode"===b||"copilot"===b){let d=(0,u.MN)(a,b,c);(0,r.IZ)(d,y,b)}let B=A(y,x,b);if(!B||!B.isComplete){let{thinkingPattern:c}=(0,l._X)(b),d=(0,l.aJ)(y).split("\n").slice(-n.$).join("\n");return c.test(d)&&(0,f.PL)(h,a,b,m)>0&&w.info("marked-answeredcount-pending"),!1}let C="opencode"===b||"copilot"===b,D=!(0,j.VA)(b);if(D&&!B.bufferReset&&B.lineCount===x&&!o?.inProgressMessageId)return!1;if(D&&!B.bufferReset&&B.lineCount<=x)return w.info("already-saved-up-to-line-lastcapturedlin"),!1;let E=B.promptDetection??z(B.response,b);if(E.isPrompt){let d=E.rawContent||E.cleanContent,i=(0,u.MN)(a,b,c),j=(0,s.zm)(d,b);if((0,s.gv)(i,j))return w.info("duplicate-prompt-skipped",{worktreeId:a,cliToolId:b}),!1;let k=d;"copilot"===b&&(k=(0,p.LH)(d),k=(0,p.Sj)(k,q.Rf,q.ky)),(0,f.YX)(h,a,b,m);let l=(0,f.oH)(h,{worktreeId:a,role:"assistant",content:k,messageType:"prompt",promptData:E.promptData,timestamp:new Date,cliToolId:b,instanceId:m});return(0,f.gb)(h,a,b,B.lineCount,m),(0,g.Lo)("message",{worktreeId:a,message:l}),(0,v.J$)({worktreeId:a,worktreeName:e.name,kind:"prompt",agentName:m,excerpt:E.promptData?.question??k}).catch(()=>{}),C||(0,u.Et)(a,b,c),!0}if(!B.response||""===B.response.trim())return(0,f.gb)(h,a,b,B.lineCount,m),!1;let F="claude"===b?(0,k.R)(B.response):void 0,G=B.response;if("gemini"===b)G=(0,p.IS)(B.response);else if("claude"===b)G=(0,p.NN)(B.response);else if("copilot"===b){let d=(0,u.MN)(a,b,c),e=(0,r.Uz)(d)||B.response;G=(0,p.LH)(e),G=(0,p.Sj)(G,q.Rf,q.ky),(0,r.q1)(d)}else if("opencode"===b){G=(0,p.aW)(B.response);let d=(0,u.MN)(a,b,c);(0,r.q1)(d)}if(!G||""===G.trim()||"[No content]"===G)return(0,f.gb)(h,a,b,B.lineCount,m),(0,f.YX)(h,a,b,m),!1;if((0,j.VA)(b)){let d=(0,u.MN)(a,b,c);if((0,t.j)(d,G))return(0,f.gb)(h,a,b,B.lineCount,m),!1}G&&await (0,i.T)(h,a,G,b),(0,f.PL)(h,a,b,m)>0&&w.info("marked-answeredcount-pending");let H=(0,f.y1)(h,a,m);if(D&&H&&B.lineCount<=H.lastCapturedLine)return w.info("race-condition-detected-skipping-save-re"),!1;let I=(0,f.oH)(h,{worktreeId:a,role:"assistant",content:G,messageType:"normal",timestamp:new Date,cliToolId:b,instanceId:m,summary:F?.summary,logFileName:F?.logFileName,requestId:F?.requestId});return(0,g.Lo)("message",{worktreeId:a,message:I}),(0,v.J$)({worktreeId:a,worktreeName:e.name,kind:"completion",agentName:m,excerpt:G}).catch(()=>{}),(0,f.gb)(h,a,b,B.lineCount,m),C&&(0,u.Et)(a,b,c),!0}catch(a){return w.error("response:check-failed",{error:a instanceof Error?a.message:String(a)}),!1}}},5344:(a,b,c)=>{"use strict";c.d(b,{v7:()=>i,LP:()=>s,pL:()=>k,GE:()=>l,aq:()=>n,kC:()=>r,xU:()=>D,bZ:()=>E,W8:()=>o,W5:()=>K,_i:()=>L,_C:()=>M});var d=c(68901),e=c(66007),f=c(15194),g=c(72626);let h=(0,g.h)("auto-yes-state");function i(a,b,c){if(a.includes(":"))throw Error(`worktreeId must not contain ':': ${a}`);if(!c||c===b)return`${a}:${b}`;if(c.includes(":"))throw Error(`instanceId must not contain ':': ${c}`);return`${a}:${b}:${c}`}function j(a){let b=a.indexOf(":");return -1===b?a:a.substring(0,b)}function k(a){let b=a.split(":")[1];return void 0===b?null:(0,f.hR)(b)?b:null}function l(a){let b=a.split(":");return b[2]??b[1]??null}let m=globalThis.__autoYesStates??(globalThis.__autoYesStates=new Map);function n(a,b="claude",c){let d=i(a,b,c),e=m.get(d);return e?Date.now()>=e.expiresAt?p(a,b,"expired",c):e:null}function o(a,b,c,e,f,g){let h=i(a,b,g);if(!c)return p(a,b,void 0,g);{let a=Date.now(),b={enabled:!0,enabledAt:a,expiresAt:a+(e??d.t6),stopPattern:f};return m.set(h,b),b}}function p(a,b="claude",c,d){let e=i(a,b,d),f=m.get(e),g={enabled:!1,enabledAt:f?.enabledAt??0,expiresAt:f?.expiresAt??0,stopPattern:f?.stopPattern,stopReason:c};return m.set(e,g),g}function q(a,b){return a.filter(a=>j(a)===b)}function r(a){return q(Array.from(m.keys()),a)}function s(a){let b=r(a);return b.forEach(a=>m.delete(a)),b.length}var t=c(31766),u=c(25129),v=c(63869),w=c(31268),x=c(26283),y=c(77093),z=c(93997);let A=(0,g.h)("auto-yes-poller"),B=globalThis.__autoYesPollerStates??(globalThis.__autoYesPollerStates=new Map);function C(a){return B.get(a)}function D(a){let b=C(a);return b?.lastServerResponseTimestamp??null}function E(a){return B.has(a)}function F(a){let b=C(a);if(b){var c;if(b.consecutiveErrors++,b.currentInterval=(c=b.consecutiveErrors)<5?2e3:Math.min(2e3*Math.pow(2,c-5+1),6e4),b.consecutiveErrors>=d.ul){let b=j(a),c=k(a);c&&p(b,c,"consecutive_errors",l(a)??void 0),L(a)}}}async function G(a,b,c,e){let f=c??d.FW,g=await (0,t.Wh)(a,b,f,e);return(0,x._A)((0,x.aJ)(g))}async function H(a,b,d,e,f,g){let h=i(a,d,g);try{let i=(0,x.KO)(d),l=(0,u.gF)(e,{...i,...f&&{precomputedLines:f}});if(!l.isPrompt||!l.promptData)return b.lastAnsweredPromptKey=null,b.lastAnsweredAt=null,"no_prompt";let m=(j=l.promptData,`${j.type}:${j.question}`);if(b.lastAnsweredPromptKey===m&&null!==b.lastAnsweredAt&&Date.now()-b.lastAnsweredAt<1e4)return"duplicate";let n=function(a){if("yes_no"===a.type)return"y";if("multiple_choice"===a.type){let b=a.options.find(a=>a.isDefault)??a.options[0];return!b||b.requiresTextInput?null:b.number.toString()}return null}(l.promptData);if(null===n)return"no_answer";let o=w.s.getInstance().getTool(d).getSessionName(a,g);try{await (0,v.t)({sessionName:o,answer:n,cliToolId:d,promptData:l.promptData})}finally{(0,z.gm)(o)}var j,k=Date.now();let p=C(h);p&&(p.lastServerResponseTimestamp=k);let q=C(h);q&&(q.consecutiveErrors=0,q.currentInterval=2e3),b.lastAnsweredPromptKey=m,b.lastAnsweredAt=Date.now(),A.info("poller:response-sent",{worktreeId:a,cliToolId:d,instanceId:g});let[{startPolling:r},{broadcastTerminalSnapshotAfterInteraction:s}]=await Promise.all([Promise.resolve().then(c.bind(c,95220)),Promise.resolve().then(c.bind(c,99508))]);return r(a,d,g),s(a,d,g),"responded"}catch{return F(h),A.warn("poller:detect-respond-error",{worktreeId:a,cliToolId:d,instanceId:g}),"error"}}async function I(a,b,c){let e=i(a,b,c),f=C(e);if("valid"===function(a,b){if(!b)return"stopped";let c=j(a),d=k(a);if(!d)return L(a),"expired";let e=n(c,d,l(a)??void 0);return e?.enabled?"valid":(L(a),"expired")}(e,f)){try{let g=n(a,b,c),i=g?.stopPattern?d.FW:d.Ke,m=await G(a,b,i,c),o=m.split("\n");if(function(a,b,c){if(b.stopCheckBaselineLength<0)return b.stopCheckBaselineLength=c.length,!1;let e=b.stopCheckBaselineLength;if(c.length>e){let f=c.substring(e);return b.stopCheckBaselineLength=c.length,function(a,b,c){let e=j(a),f=k(a);if(!f)return!1;let g=l(a)??void 0,i=n(e,f,g);if(!i?.stopPattern)return!1;if(!(0,d.P0)(i.stopPattern).valid)return h.warn("invalid-stop-pattern",{detail:String({compositeKey:a})}),p(e,f,void 0,g),!1;try{let d=new RegExp(i.stopPattern),j=function(a,b,c=100){try{return a.test(b)}catch{return null}}(d,b);if(null===j)return h.warn("stop-condition-check",{detail:String({compositeKey:a})}),p(e,f,void 0,g),!1;if(j)return p(e,f,"stop_pattern_matched",g),c&&c(a),h.warn("stop-condition-matched",{detail:String({compositeKey:a})}),!0}catch{h.warn("stop-condition-check",{detail:String({compositeKey:a})})}return!1}(a,f,L)}return c.length<e&&(b.stopCheckBaselineLength=c.length),!1}(e,f,m))return;let q=await H(a,f,b,m,o,c);if("responded"===q)return void J(a,b,c,5e3);if("no_prompt"===q){let e=o.slice(-50).join("\n");if((0,x.ut)(b,e))return void J(a,b,c,d.QN)}}catch(d){F(e),A.warn("poller:poll-error",{worktreeId:a,cliToolId:b,instanceId:c,error:(0,y.u1)(d)})}J(a,b,c)}}function J(a,b,c,d){let e=C(i(a,b,c));if(!e)return;let f=Math.max(d??e.currentInterval,2e3);e.timerId=setTimeout(()=>{I(a,b,c)},f)}function K(a,b,c){if(!(0,e.h6)(a))return{started:!1,reason:"invalid worktree ID"};let d=c??b,f=n(a,b,d);if(!f?.enabled)return{started:!1,reason:"auto-yes not enabled"};let g=i(a,b,d),h=C(g);if(!h&&B.size>=50)return{started:!1,reason:"max concurrent pollers reached"};if(h&&h.cliToolId===b)return{started:!0,reason:"already_running"};h&&L(g);let j={timerId:null,cliToolId:b,instanceId:d,consecutiveErrors:0,currentInterval:2e3,lastServerResponseTimestamp:null,lastAnsweredPromptKey:null,lastAnsweredAt:null,stopCheckBaselineLength:-1};return B.set(g,j),j.timerId=setTimeout(()=>{I(a,b,d)},2e3),A.info("poller:started",{worktreeId:a,cliToolId:b,instanceId:d}),{started:!0}}function L(a){let b=C(a);b&&(b.timerId&&clearTimeout(b.timerId),B.delete(a),A.info("poller:stopped",{compositeKey:a}))}function M(a){q(Array.from(B.keys()),a).forEach(a=>L(a))}},7015:(a,b,c)=>{"use strict";c.d(b,{Ds:()=>g});var d=c(81719);class e{constructor(a,b=3e4){this.cache=new Map,this.allAppsCache=null,this.lastRefresh=0,this.db=a,this.ttl=b}getTTL(){return this.ttl}isStale(){return Date.now()-this.lastRefresh>this.ttl}async refresh(){let a=(0,d.$i)(this.db);for(let b of(this.cache.clear(),a))this.cache.set(b.pathPrefix,b);this.allAppsCache=a,this.lastRefresh=Date.now()}async getByPathPrefix(a){return this.isStale()&&await this.refresh(),this.cache.get(a)??null}async getAll(){return this.isStale()&&await this.refresh(),this.allAppsCache??[]}invalidate(){this.cache.clear(),this.allAppsCache=null,this.lastRefresh=0}invalidateByIssueNo(a){this.invalidate()}}let f=null;function g(a){if(!f){if(!a)throw Error("Database instance required to initialize cache");f=new e(a)}return f}},8616:(a,b,c)=>{"use strict";c.d(b,{b:()=>g});var d=c(11665),e=c(26283);let f=(0,c(72626).h)("pasted-text");async function g(a){for(let b=0;b<e.Iy;b++){await new Promise(a=>setTimeout(a,e.Om));let c=await (0,d.Xg)(a,{startLine:-10});if(!e.fW.test((0,e.aJ)(c)))return;await (0,d.V1)(a,"",!0),b===e.Iy-1&&f.warn("Pasted text detection: max retries reached",{sessionName:a,maxRetries:e.Iy,finalAttempt:b})}}},8988:(a,b,c)=>{"use strict";c.d(b,{R:()=>g});let d=/📄 Session log: (.+?\/([^\/\s]+\.jsonl))/,e=/Request ID: ([^\s\n]+)/,f=/Summary: (.+?)(?:\n─|$)/s;function g(a){let b={content:a},c=d.exec(a);c&&(b.logFileName=c[2]);let g=e.exec(a);g&&(b.requestId=g[1]);let h=f.exec(a);return h&&(b.summary=h[1].trim()),b}},11508:(a,b,c)=>{"use strict";c.d(b,{H:()=>m,m:()=>n});var d=c(44265),e=c(11665),f=c(8616),g=c(93997),h=c(26283),i=c(72626),j=c(20610);let k=(0,i.h)("cli-tools/gemini");function l(a){return a instanceof Error?a.message:String(a)}let m=200;class n extends d.M{async isRunning(a,b){let c=this.getSessionName(a,b);return await (0,e.N)(c)}async startSession(a,b,c){if(!await this.isInstalled())throw Error("Gemini CLI is not installed or not in PATH");let d=this.getSessionName(a,c);if(await (0,e.N)(d)){await this.reconcileExistingSession(d),k.info("gemini-session-sessionname");return}try{await (0,e.jw)({sessionName:d,workingDirectory:b,historyLimit:5e4}),await new Promise(a=>setTimeout(a,j.Uc)),await (0,e.V1)(d,"gemini",!0),await new Promise(a=>setTimeout(a,6e3)),await this.waitForReady(d),k.info("started-gemini-session:sessionname")}catch(b){let a=l(b);throw Error(`Failed to start Gemini session: ${a}`)}}async waitForReady(a){let b=!1;for(let c=0;c<30;c++){try{let c=await (0,e.Xg)(a,m),d=(0,h.aJ)(c);if(h.wN.test(d))return void k.info("gemini-prompt-detected");!b&&d.includes("Do you trust this folder?")&&(await (0,e.ds)(a,"Enter"),b=!0,k.info("auto-trusted-folder-for"))}catch{}await new Promise(a=>setTimeout(a,1e3))}k.info("gemini-prompt-detection")}async waitForPrompt(a){let b=Date.now();for(;Date.now()-b<15e3;){try{let b=await (0,e.Xg)(a,m),c=(0,h.aJ)(b);if(h.wN.test(c))return}catch{}await new Promise(a=>setTimeout(a,500))}k.info("gemini-prompt-not")}async sendMessage(a,b,c){let d=this.getSessionName(a,c);if(!await (0,e.N)(d))throw Error(`Gemini session ${d} does not exist. Start the session first.`);try{await this.waitForPrompt(d),await (0,e.V1)(d,b,!1),await new Promise(a=>setTimeout(a,j.pL)),await (0,e.ds)(d,"C-m"),await new Promise(a=>setTimeout(a,j.x9)),b.includes("\n")&&await (0,f.b)(d),(0,g.gm)(d),k.info("sent-message-to-gemini-session:sessionna")}catch(b){let a=l(b);throw Error(`Failed to send message to Gemini: ${a}`)}}async killSession(a,b){let c=this.getSessionName(a,b);try{await (0,e.N)(c)&&(await (0,e.ds)(c,"C-c"),await new Promise(a=>setTimeout(a,j.Is)),await (0,e.V1)(c,"/quit",!0),await new Promise(a=>setTimeout(a,j.Zf))),await (0,e.fY)(c)&&k.info("stopped-gemini-session:sessionname")}catch(a){throw k.error("session:stop-failed",{error:l(a)}),a}}constructor(...a){super(...a),this.id="gemini",this.name="Gemini CLI",this.command="gemini"}}},11665:(a,b,c)=>{"use strict";c.d(b,{GW:()=>n,KB:()=>r,N:()=>m,N6:()=>x,Sb:()=>y,V1:()=>p,Xg:()=>s,ds:()=>v,fY:()=>t,jw:()=>o,lA:()=>k,zT:()=>l});var d=c(79646),e=c(28354),f=c(93997),g=c(16983),h=c(72626);let i=(0,e.promisify)(d.execFile),j=(0,h.h)("tmux");function k(a){return`=${a}:`}async function l(a,b={}){let c,d,e,f=b.windowWidth??g.J,h=b.windowHeight??g.s,m=k(a);try{c=(await i("tmux",["show-window-options","-v","-t",m,"window-size"],{timeout:5e3})).stdout.trim();let[a,b]=(await i("tmux",["display-message","-p","-t",m,"#{window_width}|#{window_height}"],{timeout:5e3})).stdout.trim().split("|").map(Number);Number.isFinite(a)&&(d=a),Number.isFinite(b)&&(e=b)}catch{}let n="manual"===c,o=d===f&&e===h;if(n&&o)return!1;try{return n||await i("tmux",["set-window-option","-t",m,"window-size","manual"],{timeout:5e3}),o||await i("tmux",["resize-window","-t",m,"-x",String(f),"-y",String(h)],{timeout:5e3}),!0}catch(b){return j.warn("session-geometry:reconcile-failed",{sessionName:a,error:b instanceof Error?b.message:String(b)}),!1}}async function m(a){try{return await i("tmux",["has-session","-t",k(a)],{timeout:5e3}),!0}catch{return!1}}async function n(){try{let{stdout:a}=await i("tmux",["list-sessions","-F","#{session_name}|#{session_windows}|#{session_attached}"],{timeout:5e3});if(!a||""===a.trim())return[];return a.trim().split("\n").map(a=>{let[b,c,d]=a.split("|");return{name:b,windows:parseInt(c,10)||0,attached:"1"===d}})}catch{return[]}}async function o(a,b){let c,d,e,f,h;"string"==typeof a?(c=a,d=b,e=5e4,f=g.J,h=g.s):(c=a.sessionName,d=a.workingDirectory,e=a.historyLimit||5e4,f=a.windowWidth||g.J,h=a.windowHeight||g.s);try{await i("tmux",["new-session","-d","-s",c,"-c",d,"-x",String(f),"-y",String(h)],{timeout:5e3}),await l(c,{windowWidth:f,windowHeight:h}),await i("tmux",["set-option","-t",k(c),"history-limit",String(e)],{timeout:5e3})}catch(b){let a=b instanceof Error?b.message:String(b);throw Error(`Failed to create tmux session: ${a}`)}}async function p(a,b,c=!0){let d=c?["send-keys","-t",k(a),b,"C-m"]:["send-keys","-t",k(a),b];try{await i("tmux",d,{timeout:5e3})}catch(b){let a=b instanceof Error?b.message:String(b);throw Error(`Failed to send keys to tmux session: ${a}`)}}let q=new Set(["Up","Down","Left","Right","Enter","Space","Tab","Escape","BSpace","DC","PageUp","PageDown","Home","End","q"]);async function r(a,b){if(0!==b.length){for(let a of b)if(!q.has(a))throw Error(`Invalid special key: ${a}`);try{for(let c=0;c<b.length;c++)await i("tmux",["send-keys","-t",k(a),b[c]],{timeout:5e3}),c<b.length-1&&await new Promise(a=>setTimeout(a,100))}catch(b){let a=b instanceof Error?b.message:String(b);throw Error(`Failed to send special keys to tmux session: ${a}`)}}}async function s(a,b){let c,d;"number"==typeof b?(c=-b,d="-"):b?(c=b.startLine??-1e4,d=b.endLine??"-"):(c=-1e3,d="-");try{let{stdout:b}=await i("tmux",["capture-pane","-t",k(a),"-p","-e","-S",String(c),"-E",String(d)],{timeout:5e3,maxBuffer:0xa00000});return b}catch(b){let a=b instanceof Error?b.message:String(b);throw Error(`Failed to capture pane: ${a}`)}}async function t(a){try{return await i("tmux",["kill-session","-t",k(a)],{timeout:5e3}),!0}catch(b){let a=b instanceof Error?b.message:String(b);if(a?.includes("no server running")||a?.includes("can't find session"))return!1;throw Error(`Failed to kill tmux session: ${a}`)}}let u=new Set(["Escape","C-c","C-d","C-m","Enter"]);async function v(a,b){if(!u.has(b))throw Error(`Invalid special key: ${b}`);try{await i("tmux",["send-keys","-t",k(a),b],{timeout:5e3})}catch(b){let a=b instanceof Error?b.message:String(b);throw Error(`Failed to send special key: ${a}`)}}let w=["Up","Down","Left","Right","Enter","Escape","Tab","BTab","PageUp","PageDown","Home","End","q"];function x(a){return w.includes(a)}async function y(a,b){await r(a,b),(0,f.gm)(a)}},13033:(a,b,c)=>{"use strict";c.d(b,{IW:()=>h,IZ:()=>l,K0:()=>g,Uz:()=>m,l1:()=>f,o0:()=>i,q1:()=>n,tb:()=>k,vQ:()=>j});var d=c(26283);let e=new Map;function f(a){return(0,d._A)((0,d.aJ)(a)).replace(/^\u2503\s?/,"").replace(/\s*\u2503$/,"").trim()}function g(a){let b=a.split("\n"),c=[];for(let a of b){let b=f(a);!(!b||d.sx.some(a=>a.test(b)))&&(d.Md.test(b)||c.push(b))}return c}function h(a){return a.replace(/[\u2500-\u257F]/g,"").replace(/\s{2,}/g," ").trim()}function i(a){let b=(0,d.aJ)(a).split("\n"),c=[];for(let a of b){let b=h(a);b&&(d.J7.some(a=>a.test(b))||c.push(b))}return c}function j(a,b){if(0===a.length||0===b.length)return 0;let c=Math.min(a.length,b.length);for(let d=c;d>=1;d--){let c=a.slice(-d),e=b.slice(0,d),f=!0;for(let a=0;a<d;a++)if(c[a]!==e[a]){f=!1;break}if(f)return d}return 0}function k(a){e.set(a,{lines:[],lastFingerprint:[],pollCount:0})}function l(a,b,c="opencode"){let d=e.get(a);if(!d)return;let f="copilot"===c?i(b):g(b);if(0!==f.length){if(d.pollCount++,0===d.lines.length)d.lines=[...f];else{let a=j(d.lastFingerprint,f);if(a>0){let b=f.slice(a);d.lines.push(...b)}else d.lines.push(...f)}d.lastFingerprint=f.slice(-10)}}function m(a){let b=e.get(a);return b&&0!==b.lines.length?b.lines.join("\n"):""}function n(a){e.delete(a)}},16983:(a,b,c)=>{"use strict";c.d(b,{J:()=>e,s:()=>d});let d=1e3,e=200},18778:(a,b,c)=>{"use strict";c.d(b,{T:()=>g});var d=c(56791),e=c(41364);let f=(0,c(72626).h)("conversation-logger");async function g(a,b,c,h="claude"){let i=(0,d.r8)(a,b);if(i)try{await (0,e.hM)(b,i.content,c,h)}catch(a){f.error("conversation:log-failed",{error:a instanceof Error?a.message:String(a)})}}},20610:(a,b,c)=>{"use strict";c.d(b,{CV:()=>i,Em:()=>l,Is:()=>g,KI:()=>j,PY:()=>k,Uc:()=>d,Zf:()=>h,pL:()=>e,x9:()=>f});let d=100,e=100,f=200,g=300,h=500,i=500,j=2e3,k=200,l=100},21684:(a,b,c)=>{"use strict";c.d(b,{U:()=>g});var d=c(33873),e=c.n(d),f=c(87447);function g(){return(0,f._p)("CM_LOG_DIR")||e().join(process.cwd(),"data","logs")}},25129:(a,b,c)=>{"use strict";c.d(b,{gF:()=>A,xn:()=>u});var d=c(72626),e=c(68652);let f=/^\s*[\u276F\u25CF\u203A][^\d]*(\d+)(?:\.(?!\d)|\s{2,})\s*(.+)$/,g=/^\s*[^\d]{0,3}(\d+)(?:\.(?!\d)|\s+)\s*(.+)$/,h=/^[-─]+$/,i=/^\s*\[[^\]]*\d+\s+lines?\]/i,j=/^\s*[…]?\s*[+\-↑↓⏵⏷]?\s*\d+\s+(?:pending|more)\b/i,k=/Esc\s+to\s+cancel\s*[·•]\s*Tab\s+to\s+amend/i,l=/Enter\s+to\s+select\b.*\bnavigate\b/i,m=/press\s+(?:enter|number)\s+to\s+confirm/i,n=/press\s+number\s+to\s+confirm/i,o=/(?:select|choose|pick|which|what|how|where|enter|type|specify|confirm|approve|accept|reject|decide|preference|option)/i,p=[/type\s+here/i,/tell\s+(me|claude)/i,/enter\s+/i,/custom/i,/differently/i];function q(a,b){if(0===b.length)return!0;let c=b[0].number;return a<c&&a>=c-2}function r(a){return{isPrompt:!1,cleanContent:a.trim()}}function s(a){return 0!==a.length&&!!(a.includes("?")||a.includes("?")||o.test(a))}function t(a,b){let c=b.endsWith("?")||b.endsWith("?");return!!(!c&&/^\s{2,}[^\d]/.test(a)&&!/^\s*\d+\./.test(a)||!c&&/^\s{4,}/.test(a)&&!/^\s*\d+\.\s/.test(a)||b.length<5&&!c||/^[\/~]/.test(b)||b.length>=2&&/^[a-zA-Z0-9_-]+$/.test(b))}function u(a,b="yes_no"){let c=a.toLowerCase().trim();if("multiple_choice"===b){if(/^\d+$/.test(c))return c;throw Error("Invalid answer for multiple choice prompt. Expected a number.")}if("yes"===c||"y"===c)return"y";if("no"===c||"n"===c)return"n";throw Error("Invalid answer for yes/no prompt. Expected 'yes', 'no', 'y', or 'n'.")}let v=(0,d.h)("prompt-detector"),w=null;function x(a){let b=a.split("\n"),c=(b.length>200?b.slice(-200):b).join("\n");return c.length>5e3&&(c=c.slice(-5e3)),c}let y=[{regex:/^(.+)\s+\(y\/n\)\s*$/m},{regex:/^(.+)\s+\[y\/N\]\s*$/m,defaultOption:"no"},{regex:/^(.+)\s+\[Y\/n\]\s*$/m,defaultOption:"yes"},{regex:/^(.+)\s+\(yes\/no\)\s*$/m}];function z(a,b,c,d){return{isPrompt:!0,promptData:{type:"yes_no",question:a,options:["yes","no"],status:"pending",...void 0!==d&&{defaultOption:d},instructionText:c},cleanContent:b,rawContent:c}}function A(a,b){let c=(0,e.N)(a),d=c===a&&b?.precomputedLines?b.precomputedLines:c.split("\n"),o=d.slice(-50).join("\n"),u=o===w;u||v.debug("detectPrompt:start",{outputLength:c.length}),w=o;let A=d.slice(-20).join("\n"),B=function(a,b,c){var d,o;a=(0,e.N)(a);let u=b?.requireDefaultIndicator??!0,v=a.split("\n"),w=v.length;for(;w>0&&""===v[w-1].trim();)w--;let x=Math.max(0,w-50),y=!1;for(let a=w-1;a>=x;a--){let b=l.test(v[a]);if(k.test(v[a])||b){w=a,y=b;break}}let z=v.slice(x,w),A=!1,B=!1;for(let a of z){let b=a.trim();if(!A&&m.test(b)){A=!0,n.test(b)&&(B=!0);break}}if(u){let b=!1;for(let a of z){let c=a.trim();if(f.test(c)){b=!0;break}}if(!b&&!A)return r(a)}let C=[],D=-1,E=0;for(let b=w-1;b>=x;b--){let c=v[b].trim();if(i.test(c)||j.test(c)){E++;continue}let d=c.match(f);if(d){let a=parseInt(d[1],10);if(a<=20&&q(a,C)){let b=d[2].trim();C.unshift({number:a,label:b,isDefault:!0}),E=0;continue}}let e=c.match(g);if(e){let a=parseInt(e[1],10);if(a>20);else if(q(a,C)){let b=e[2].trim();C.unshift({number:a,label:b,isDefault:!1}),E=0;continue}}if(0===C.length&&(c.startsWith("❯")||c.startsWith("●")||c.startsWith("›")))return r(a);if(C.length>0&&c&&!h.test(c)){let a=v[b];if(/^\s{4,}/.test(a)&&t(a,c)){if(++E>25){D=b;break}continue}if(s(c)){D=b;break}if(t(a,c)){if(++E>(/^\s{4,}/.test(a)?25:5)){D=b;break}continue}D=b;break}}if(!function(a){if(0===a.length||1!==a[0])return!1;let b=0;for(let c=1;c<a.length;c++){let d=a[c]-a[c-1];if(d<1||d>2||(2===d&&b++,b>1))return!1}return!0}(C.map(a=>a.number)))return r(a);let F=C.some(a=>a.isDefault),G=u&&A;if(C.length<2||u&&!F&&!G||!u&&(-1===D||!s(v[D]?.trim()??"")&&!function(a,b,c,d){let e=Math.max(d,b-3);for(let c=b-1;c>=e;c--){let b=a[c]?.trim()??"";if(!(!b||h.test(b))&&s(b))return!0}return!1}(v,D,0,x)))return r(a);let H=function(a,b){if(b<0)return"Please select an option:";let c=[];for(let d=Math.max(0,b-5);d<=b;d++){let b=a[d].trim();b&&!h.test(b)&&c.push(b)}return c.join(" ")}(v,D),I=function(a,b,c){if(b<0)return;let d=Math.max(0,b-19),e=a.slice(d,c).map(a=>a.trimEnd()).join("\n").trim();return e.length>0?e:void 0}(v,D,w),J=A?B?"answer_only":"answer_then_enter":void 0;return d=a,o=y,{isPrompt:!0,promptData:{type:"multiple_choice",question:H.trim(),options:C.map(a=>{let b=p.some(b=>b.test(a.label));return{number:a.number,label:a.label,isDefault:a.isDefault,requiresTextInput:b}}),status:"pending",instructionText:I,...J?{submitMode:J}:{},...o?{isAskUserQuestion:!0}:{}},cleanContent:H.trim(),rawContent:c(d.trim())}}(c,b,x);if(B.isPrompt)return u||v.info("detectPrompt:multipleChoice",{isPrompt:!0,question:B.promptData?.question,optionsCount:B.promptData?.options?.length}),B;let C=A.trim();for(let a of y){let b=A.match(a.regex);if(b){let c=b[1].trim();return z(c,c,C,a.defaultOption)}}let D=A.match(/^(.*?)Approve\?\s*$/m);if(D){let a=D[1].trim();return z(a?`${a} Approve?`:"Approve?",a||"Approve?",C)}return u||v.debug("detectPrompt:complete",{isPrompt:!1}),{isPrompt:!1,cleanContent:c.trim()}}},25754:(a,b,c)=>{"use strict";c.d(b,{Xn:()=>e,d9:()=>g,gB:()=>f,rv:()=>h});let d=["en","ja"],e="en",f="locale";function g(a){return"string"==typeof a&&d.includes(a)}function h(a,b){return g(a)?a:d.find(a=>(b??"").includes(a))??e}},26838:(a,b,c)=>{"use strict";c.d(b,{Mj:()=>k,Sw:()=>j,lX:()=>l});var d=c(29021),e=c(33873),f=c(90164);let g=/^v?\d+\.\d+\.\d+$/,h=/^[a-zA-Z0-9.\-\s_v]+$/,i=globalThis.__versionCheckCache??(globalThis.__versionCheckCache={result:null,fetchedAt:0,rateLimitResetAt:null});function j(){return function(){try{let a=(0,d.readFileSync)((0,e.join)(process.cwd(),"package.json"),"utf-8"),b=JSON.parse(a);if("commandmate"===b.name&&"string"==typeof b.version&&b.version.length>0)return b.version;return null}catch{return null}}()??"0.10.4"}function k(){return j()}async function l(){try{var a,b,c;if(null!==i.result&&Date.now()-i.fetchedAt<36e5||i.rateLimitResetAt&&(!(Date.now()>=i.rateLimitResetAt)||(i.rateLimitResetAt=null,0)))return i.result;let d=await fetch("https://api.github.com/repos/Kewton/CommandMate/releases/latest",{headers:{Accept:"application/vnd.github+json","User-Agent":`CommandMate/${k()}`},cache:"no-store",signal:AbortSignal.timeout(5e3)});if(403===d.status)return function(a){let b=a.headers.get("X-RateLimit-Reset");b?i.rateLimitResetAt=1e3*parseInt(b,10):i.rateLimitResetAt=Date.now()+36e5}(d),i.result;if(!d.ok)return i.result;let e=await d.json(),j=k(),l=e.tag_name.replace(/^v/,""),m={hasUpdate:function(a,b){if(!g.test(a)||!g.test(b))return!1;let c=a=>a.replace(/^v/,"").split(".").map(Number),[d,e,f]=c(a),[h,i,j]=c(b);return h!==d?h>d:i!==e?i>e:j>f}(j,e.tag_name),currentVersion:j,latestVersion:l,releaseUrl:(a=e.html_url).startsWith(f.Dk)?a:null,releaseName:(b=e.name,c=e.tag_name,h.test(b)&&b.length<=128?b:c),publishedAt:e.published_at};return i.result=m,i.fetchedAt=Date.now(),m}catch{return i.result}}},30618:(a,b,c)=>{"use strict";c.d(b,{xT:()=>w,Ui:()=>x});var d=c(44265),e=c(11665),f=c(8616),g=c(93997),h=c(29021),i=c(33873),j=c(72626);let k=(0,j.h)("cli-tools/opencode-config"),l=/^[a-zA-Z0-9._:/-]{1,100}$/,m=/^[a-zA-Z0-9._:/@-]{1,200}$/;async function n(){let a={};try{let b=new AbortController,c=setTimeout(()=>b.abort(),3e3),d=await fetch("http://localhost:11434/api/tags",{signal:b.signal}).finally(()=>{clearTimeout(c)});if(!d.ok)return k.warn("ollama-api-returned"),{};let e=await d.text();if(e.length>1048576)return k.warn("ollama-api-response"),{};let f=JSON.parse(e);if(!f||!Array.isArray(f.models))return k.warn("invalid-ollama-api"),{};for(let b of f.models.slice(0,100))"string"==typeof b?.name&&l.test(b.name)&&(a[b.name]={name:function(a){let b=String(a.name),c=a.details;if(!c)return b;let d=[b];return"string"==typeof c.parameter_size&&/^[\d.]+[BKMGT]?B?$/i.test(c.parameter_size)&&d.push(c.parameter_size),"string"==typeof c.quantization_level&&/^[A-Z0-9_]{1,20}$/i.test(c.quantization_level)&&d.push(c.quantization_level),d.length>1?`${b} (${d.slice(1).join(", ")})`:b}(b)})}catch(a){a instanceof Error&&"AbortError"===a.name?k.warn("ollama-api-timeout"):k.warn("failed-to-fetch")}return a}async function o(){let a={};try{let b=new AbortController,c=setTimeout(()=>b.abort(),3e3),d=await fetch("http://localhost:1234/v1/models",{signal:b.signal}).finally(()=>{clearTimeout(c)});if(!d.ok)return k.warn("lm-studio-api"),{};let e=await d.text();if(e.length>1048576)return k.warn("lm-studio-api"),{};let f=JSON.parse(e);if(!f||!Array.isArray(f.data))return k.warn("invalid-lm-studio"),{};for(let b of f.data.slice(0,100))"string"==typeof b?.id&&m.test(b.id)&&(a[b.id]={name:b.id})}catch(a){a instanceof Error&&"AbortError"===a.name?k.warn("lm-studio-api"):k.warn("failed-to-fetch")}return a}async function p(a){let b=function(a){let b=i.resolve(a);try{if(!h.lstatSync(b).isDirectory())throw Error(`Path is not a directory: ${b}`)}catch(a){if("ENOENT"===a.code)throw Error(`Path does not exist: ${b}`);throw a}return h.realpathSync(b)}(a),c=i.join(b,"opencode.json");if(h.existsSync(c))return;let[d,e]=await Promise.all([n(),o()]),f={};if(Object.keys(d).length>0&&(f.ollama={npm:"@ai-sdk/openai-compatible",name:"Ollama (local)",options:{baseURL:"http://localhost:11434/v1"},models:d}),Object.keys(e).length>0&&(f.lmstudio={npm:"@ai-sdk/openai-compatible",name:"LM Studio (local)",options:{baseURL:"http://localhost:1234/v1"},models:e}),0!==Object.keys(f).length)try{h.writeFileSync(c,JSON.stringify({$schema:"https://opencode.ai/config.json",provider:f},null,2),{encoding:"utf-8",flag:"wx"})}catch(a){if("EEXIST"===a.code)return;k.warn("failed-to-write-opencodejson:error-insta")}}var q=c(79646),r=c(28354),s=c(20610);let t=(0,j.h)("cli-tools/opencode"),u=(0,r.promisify)(q.execFile);function v(a){return a instanceof Error?a.message:String(a)}let w=200;class x extends d.M{async isRunning(a,b){let c=this.getSessionName(a,b);return await (0,e.N)(c)}async startSession(a,b,c){if(!await this.isInstalled())throw Error("OpenCode is not installed or not in PATH");let d=this.getSessionName(a,c);if(await (0,e.N)(d)){await this.reconcileExistingSession(d,{windowWidth:80,windowHeight:w}),t.info("opencode-session-sessionname");return}try{await p(b),await (0,e.jw)({sessionName:d,workingDirectory:b,historyLimit:5e4}),await new Promise(a=>setTimeout(a,s.Uc));try{await u("tmux",["resize-window","-t",(0,e.lA)(d),"-x","80","-y",String(w)])}catch{}await (0,e.V1)(d,"opencode",!0),await new Promise(a=>setTimeout(a,15e3)),t.info("started-opencode-session:sessionname")}catch(b){let a=v(b);throw Error(`Failed to start OpenCode session: ${a}`)}}async sendMessage(a,b,c){let d=this.getSessionName(a,c);if(!await (0,e.N)(d))throw Error(`OpenCode session ${d} does not exist. Start the session first.`);try{await (0,e.V1)(d,b,!1),await new Promise(a=>setTimeout(a,s.pL)),await (0,e.ds)(d,"C-m"),await new Promise(a=>setTimeout(a,s.x9)),b.includes("\n")&&await (0,f.b)(d),(0,g.gm)(d),t.info("sent-message-to-opencode-session:session")}catch(b){let a=v(b);throw Error(`Failed to send message to OpenCode: ${a}`)}}async killSession(a,b){let c=this.getSessionName(a,b);try{await (0,e.N)(c)?(await (0,e.V1)(c,"/exit",!0),await new Promise(a=>setTimeout(a,s.KI)),await (0,e.N)(c)&&await (0,e.fY)(c)):await (0,e.fY)(c),(0,g.gm)(c),t.info("stopped-opencode-session:sessionname")}catch(a){throw t.error("session:stop-failed",{error:v(a)}),a}}constructor(...a){super(...a),this.id="opencode",this.name="OpenCode",this.command="opencode"}}},31268:(a,b,c)=>{"use strict";c.d(b,{s:()=>K});var d=c(44265),e=c(57905);class f extends d.M{async isInstalled(){return await (0,e.zw)()}async isRunning(a,b){return await (0,e.Yq)(a,b)}async startSession(a,b,c){await (0,e.R7)({worktreeId:a,worktreePath:b,instanceId:c})}async sendMessage(a,b,c){await (0,e.pU)(a,b,c)}supportsImage(){return!0}async sendMessageWithImage(a,b,c,d){let e=`
1
+ exports.id=5959,exports.ids=[1296,5959,9358],exports.modules={60:(a,b,c)=>{"use strict";c.d(b,{Q:()=>f,b:()=>e});var d=c(26283);function e(a){return d.Md.test(a)&&!d.kD.test(a)}function f(a,b,c,d,e){if(a=Math.max(0,a),"opencode"===d||"copilot"===d){let a=e(b);return a>=0?a+1:0}if("antigravity"===d){let c=e(b);return c>=0?c+1:Math.max(0,a)}if(a>=b||c){let a=e(40);return a>=0?a+1:0}if("codex"===d)return Math.max(0,a);if(a>=b-5){let a=e(50);return a>=0?a+1:Math.max(0,b-40)}return Math.max(0,a)}},3523:(a,b,c)=>{"use strict";c.d(b,{z$:()=>A,zX:()=>B});var d=c(31766),e=c(88807),f=c(56791),g=c(49997),h=c(25129),i=c(18778),j=c(15194),k=c(8988),l=c(26283),m=c(72626),n=c(46423),o=c(60),p=c(82450),q=c(56263),r=c(13033),s=c(72457),t=c(71080),u=c(45146),v=c(63865);let w=(0,m.h)("response-poller");function x(a){return{response:"",isComplete:!1,lineCount:a}}function y(a,b,c,d,e,f,g){let h=(0,o.Q)(b,c,d,e,f),i=a.slice(h);return{response:(0,l.aJ)(i.join("\n")),isComplete:!0,lineCount:c,promptDetection:g,bufferReset:d}}function z(a,b){let c=(0,l.KO)(b);return(0,h.gF)((0,l._A)((0,l.aJ)(a)),c)}function A(a,b,c){let d=a.split("\n"),e=d.length;for(;e>0&&""===d[e-1].trim();)e--;let f=d.slice(0,e),g=f.length,h="claude"===c?(0,l.GT)(f):-1,i=h>=0?h:g,j=g>0&&b>25&&g+25<b,k=g>0&&b>50&&g<50,m=j||k;if(!m&&g<b-5)return null;let p=Math.max(0,g-20),q=f.slice(p),r="opencode"===c?(0,l.aJ)(f.join("\n")):q.join("\n"),{promptPattern:s,separatorPattern:t,thinkingPattern:v,skipPatterns:w}=(0,l._X)(c),A=(a=60)=>{let b;if("codex"===c)b=/^›\s+(?!Implement|Find and fix|Type|Summarize)/;else if("opencode"===c){let b=0;for(let c=g-1;c>=Math.max(0,g-a);c--){let a=(0,l.aJ)(f[c]);if(l.Md.test(a)&&2==++b)return c}return -1}else b=/^[>❯]\s+\S/;for(let c=i-1;c>=Math.max(0,i-a);c--){let a=(0,l.aJ)(f[c]);if(b.test(a))return c}return -1};if("claude"===c||"codex"===c||"copilot"===c){let a=z(f.join("\n"),c);if(a.isPrompt)return y(f,b,g,m,c,A,a)}let B=(0,l.aJ)(r),C=s.test(B),D=t.test(B),E=v.test(B),F=("codex"===c||"gemini"===c||"vibe-local"===c||"copilot"===c||"antigravity"===c)&&C&&!E,G="claude"===c&&C&&D&&!E,H="opencode"===c&&(0,o.b)(B);if(F||G||H){let a=[],d=(0,o.Q)(b,g,m,c,A),e=g;for(let b=d;b<i;b++){let d=f[b],g=(0,l.aJ)(d);if("codex"===c&&/^›\s+/.test(g)||"gemini"===c&&/^(%|\$|.*@.*[%$#])\s*$/.test(g)||"antigravity"===c&&/^>\s*$/.test(g)||"opencode"===c&&(l.sy.test(g)||l.uA.test(g))){e=b;break}w.some(a=>a.test(g))||a.push(d)}let h=a.join("\n").trim(),j=h.split("\n").slice(-n.$).join("\n");if(v.test(j))return x(g);if("claude"===c){let a=(0,l.aJ)(h),b=/[╭╮╰╯│]/.test(a)||/░{3,}/.test(a)||/▓{3,}/.test(a),c=/Claude Code|claude\/|v\d+\.\d+/.test(a),d=/Tip:|for shortcuts|\?\s*for help/.test(a),e=/^\s*\/Users\/.*$/m.test(a)&&a.split("\n").length<30,f=a.match(/^[>❯]\s+(\S.*)$/m);if(f){let b=a.indexOf(f[0]);if(0===a.substring(b+f[0].length).trim().split("\n").filter(a=>{let b=a.trim();return b&&!w.some(a=>a.test(b))&&!/^─+$/.test(b)}).length)return x(g)}else if((b||c||d||e)&&h.length<2e3)return x(g)}if("gemini"===c&&((h.match(/[░███]/g)||[]).length>.3*h.length||u.SI.some(a=>h.includes(a))||!h.includes("✦")&&h.length<10))return x(g);if("opencode"===c){let a=(0,l.aJ)(h);if((a.length<50||!l.Md.test(B))&&0===a.split("\n").filter(a=>{let b=a.trim();return b&&!l.sx.some(a=>a.test(b))}).length)return x(g)}return{response:h,isComplete:!0,lineCount:e,bufferReset:m}}if("opencode"!==c){let a=z(f.join("\n"),c);if(a.isPrompt)return y(f,b,g,m,c,A,a)}let I=[],J=m||b>=g-5,K=J?A(80):-1,L=J?K>=0?K+1:Math.max(0,g-80):Math.max(0,b);for(let a=L;a<Math.min(g,i);a++){let b=f[a],c=(0,l.aJ)(b);w.some(a=>a.test(c))||I.push(b)}let M=I.join("\n").trim();return M?{response:M,isComplete:!1,lineCount:g}:x(g)}async function B(a,b,c){let h=(0,e.getDbInstance)(),m=c??b;try{let e=(0,f.Ui)(h,a);if(!e)return w.error("worktree-worktreeid-not"),(0,u.Et)(a,b,c),!1;if(!await (0,d.K1)(a,b,c))return w.info("session-not-running"),(0,u.Et)(a,b,c),!1;let o=(0,f.y1)(h,a,m),x=o?.lastCapturedLine||0,y=await (0,d.Wh)(a,b,1e4,c);if("opencode"===b||"copilot"===b){let d=(0,u.MN)(a,b,c);(0,r.IZ)(d,y,b)}let B=A(y,x,b);if(!B||!B.isComplete){let{thinkingPattern:c}=(0,l._X)(b),d=(0,l.aJ)(y).split("\n").slice(-n.$).join("\n");return c.test(d)&&(0,f.PL)(h,a,b,m)>0&&w.info("marked-answeredcount-pending"),!1}let C="opencode"===b||"copilot"===b,D=!(0,j.VA)(b);if(D&&!B.bufferReset&&B.lineCount===x&&!o?.inProgressMessageId)return!1;if(D&&!B.bufferReset&&B.lineCount<=x)return w.info("already-saved-up-to-line-lastcapturedlin"),!1;let E=B.promptDetection??z(B.response,b);if(E.isPrompt){let d=E.rawContent||E.cleanContent,i=(0,u.MN)(a,b,c),j=(0,s.zm)(d,b);if((0,s.gv)(i,j))return w.info("duplicate-prompt-skipped",{worktreeId:a,cliToolId:b}),!1;let k=d;"copilot"===b&&(k=(0,p.LH)(d),k=(0,p.Sj)(k,q.Rf,q.ky)),(0,f.YX)(h,a,b,m);let l=(0,f.oH)(h,{worktreeId:a,role:"assistant",content:k,messageType:"prompt",promptData:E.promptData,timestamp:new Date,cliToolId:b,instanceId:m});return(0,f.gb)(h,a,b,B.lineCount,m),(0,g.Lo)("message",{worktreeId:a,message:l}),(0,v.J$)({worktreeId:a,worktreeName:e.name,kind:"prompt",agentName:m,excerpt:E.promptData?.question??k}).catch(()=>{}),C||(0,u.Et)(a,b,c),!0}if(!B.response||""===B.response.trim())return(0,f.gb)(h,a,b,B.lineCount,m),!1;let F="claude"===b?(0,k.R)(B.response):void 0,G=B.response;if("gemini"===b)G=(0,p.IS)(B.response);else if("claude"===b)G=(0,p.NN)(B.response);else if("copilot"===b){let d=(0,u.MN)(a,b,c),e=(0,r.Uz)(d)||B.response;G=(0,p.LH)(e),G=(0,p.Sj)(G,q.Rf,q.ky),(0,r.q1)(d)}else if("opencode"===b){G=(0,p.aW)(B.response);let d=(0,u.MN)(a,b,c);(0,r.q1)(d)}if(!G||""===G.trim()||"[No content]"===G)return(0,f.gb)(h,a,b,B.lineCount,m),(0,f.YX)(h,a,b,m),!1;if((0,j.VA)(b)){let d=(0,u.MN)(a,b,c);if((0,t.j)(d,G))return(0,f.gb)(h,a,b,B.lineCount,m),!1}G&&await (0,i.T)(h,a,G,b),(0,f.PL)(h,a,b,m)>0&&w.info("marked-answeredcount-pending");let H=(0,f.y1)(h,a,m);if(D&&H&&B.lineCount<=H.lastCapturedLine)return w.info("race-condition-detected-skipping-save-re"),!1;let I=(0,f.oH)(h,{worktreeId:a,role:"assistant",content:G,messageType:"normal",timestamp:new Date,cliToolId:b,instanceId:m,summary:F?.summary,logFileName:F?.logFileName,requestId:F?.requestId});return(0,g.Lo)("message",{worktreeId:a,message:I}),(0,v.J$)({worktreeId:a,worktreeName:e.name,kind:"completion",agentName:m,excerpt:G}).catch(()=>{}),(0,f.gb)(h,a,b,B.lineCount,m),C&&(0,u.Et)(a,b,c),!0}catch(a){return w.error("response:check-failed",{error:a instanceof Error?a.message:String(a)}),!1}}},5344:(a,b,c)=>{"use strict";c.d(b,{v7:()=>i,LP:()=>s,pL:()=>k,GE:()=>l,aq:()=>n,kC:()=>r,xU:()=>D,bZ:()=>E,W8:()=>o,W5:()=>K,_i:()=>L,_C:()=>M});var d=c(68901),e=c(66007),f=c(15194),g=c(72626);let h=(0,g.h)("auto-yes-state");function i(a,b,c){if(a.includes(":"))throw Error(`worktreeId must not contain ':': ${a}`);if(!c||c===b)return`${a}:${b}`;if(c.includes(":"))throw Error(`instanceId must not contain ':': ${c}`);return`${a}:${b}:${c}`}function j(a){let b=a.indexOf(":");return -1===b?a:a.substring(0,b)}function k(a){let b=a.split(":")[1];return void 0===b?null:(0,f.hR)(b)?b:null}function l(a){let b=a.split(":");return b[2]??b[1]??null}let m=globalThis.__autoYesStates??(globalThis.__autoYesStates=new Map);function n(a,b="claude",c){let d=i(a,b,c),e=m.get(d);return e?Date.now()>=e.expiresAt?p(a,b,"expired",c):e:null}function o(a,b,c,e,f,g){let h=i(a,b,g);if(!c)return p(a,b,void 0,g);{let a=Date.now(),b={enabled:!0,enabledAt:a,expiresAt:a+(e??d.t6),stopPattern:f};return m.set(h,b),b}}function p(a,b="claude",c,d){let e=i(a,b,d),f=m.get(e),g={enabled:!1,enabledAt:f?.enabledAt??0,expiresAt:f?.expiresAt??0,stopPattern:f?.stopPattern,stopReason:c};return m.set(e,g),g}function q(a,b){return a.filter(a=>j(a)===b)}function r(a){return q(Array.from(m.keys()),a)}function s(a){let b=r(a);return b.forEach(a=>m.delete(a)),b.length}var t=c(31766),u=c(25129),v=c(63869),w=c(31268),x=c(26283),y=c(77093),z=c(93997);let A=(0,g.h)("auto-yes-poller"),B=globalThis.__autoYesPollerStates??(globalThis.__autoYesPollerStates=new Map);function C(a){return B.get(a)}function D(a){let b=C(a);return b?.lastServerResponseTimestamp??null}function E(a){return B.has(a)}function F(a){let b=C(a);if(b){var c;if(b.consecutiveErrors++,b.currentInterval=(c=b.consecutiveErrors)<5?2e3:Math.min(2e3*Math.pow(2,c-5+1),6e4),b.consecutiveErrors>=d.ul){let b=j(a),c=k(a);c&&p(b,c,"consecutive_errors",l(a)??void 0),L(a)}}}async function G(a,b,c,e){let f=c??d.FW,g=await (0,t.Wh)(a,b,f,e);return(0,x._A)((0,x.aJ)(g))}async function H(a,b,d,e,f,g){let h=i(a,d,g);try{let i=(0,x.KO)(d),l=(0,u.gF)(e,{...i,...f&&{precomputedLines:f}});if(!l.isPrompt||!l.promptData)return b.lastAnsweredPromptKey=null,b.lastAnsweredAt=null,"no_prompt";let m=(j=l.promptData,`${j.type}:${j.question}`);if(b.lastAnsweredPromptKey===m&&null!==b.lastAnsweredAt&&Date.now()-b.lastAnsweredAt<1e4)return"duplicate";let n=function(a){if("yes_no"===a.type)return"y";if("multiple_choice"===a.type){let b=a.options.find(a=>a.isDefault)??a.options[0];return!b||b.requiresTextInput?null:b.number.toString()}return null}(l.promptData);if(null===n)return"no_answer";let o=w.s.getInstance().getTool(d).getSessionName(a,g);try{await (0,v.t)({sessionName:o,answer:n,cliToolId:d,promptData:l.promptData})}finally{(0,z.gm)(o)}var j,k=Date.now();let p=C(h);p&&(p.lastServerResponseTimestamp=k);let q=C(h);q&&(q.consecutiveErrors=0,q.currentInterval=2e3),b.lastAnsweredPromptKey=m,b.lastAnsweredAt=Date.now(),A.info("poller:response-sent",{worktreeId:a,cliToolId:d,instanceId:g});let[{startPolling:r},{broadcastTerminalSnapshotAfterInteraction:s}]=await Promise.all([Promise.resolve().then(c.bind(c,95220)),Promise.resolve().then(c.bind(c,99508))]);return r(a,d,g),s(a,d,g),"responded"}catch{return F(h),A.warn("poller:detect-respond-error",{worktreeId:a,cliToolId:d,instanceId:g}),"error"}}async function I(a,b,c){let e=i(a,b,c),f=C(e);if("valid"===function(a,b){if(!b)return"stopped";let c=j(a),d=k(a);if(!d)return L(a),"expired";let e=n(c,d,l(a)??void 0);return e?.enabled?"valid":(L(a),"expired")}(e,f)){try{let g=n(a,b,c),i=g?.stopPattern?d.FW:d.Ke,m=await G(a,b,i,c),o=m.split("\n");if(function(a,b,c){if(b.stopCheckBaselineLength<0)return b.stopCheckBaselineLength=c.length,!1;let e=b.stopCheckBaselineLength;if(c.length>e){let f=c.substring(e);return b.stopCheckBaselineLength=c.length,function(a,b,c){let e=j(a),f=k(a);if(!f)return!1;let g=l(a)??void 0,i=n(e,f,g);if(!i?.stopPattern)return!1;if(!(0,d.P0)(i.stopPattern).valid)return h.warn("invalid-stop-pattern",{detail:String({compositeKey:a})}),p(e,f,void 0,g),!1;try{let d=new RegExp(i.stopPattern),j=function(a,b,c=100){try{return a.test(b)}catch{return null}}(d,b);if(null===j)return h.warn("stop-condition-check",{detail:String({compositeKey:a})}),p(e,f,void 0,g),!1;if(j)return p(e,f,"stop_pattern_matched",g),c&&c(a),h.warn("stop-condition-matched",{detail:String({compositeKey:a})}),!0}catch{h.warn("stop-condition-check",{detail:String({compositeKey:a})})}return!1}(a,f,L)}return c.length<e&&(b.stopCheckBaselineLength=c.length),!1}(e,f,m))return;let q=await H(a,f,b,m,o,c);if("responded"===q)return void J(a,b,c,5e3);if("no_prompt"===q){let e=o.slice(-50).join("\n");if((0,x.ut)(b,e))return void J(a,b,c,d.QN)}}catch(d){F(e),A.warn("poller:poll-error",{worktreeId:a,cliToolId:b,instanceId:c,error:(0,y.u1)(d)})}J(a,b,c)}}function J(a,b,c,d){let e=C(i(a,b,c));if(!e)return;let f=Math.max(d??e.currentInterval,2e3);e.timerId=setTimeout(()=>{I(a,b,c)},f)}function K(a,b,c){if(!(0,e.h6)(a))return{started:!1,reason:"invalid worktree ID"};let d=c??b,f=n(a,b,d);if(!f?.enabled)return{started:!1,reason:"auto-yes not enabled"};let g=i(a,b,d),h=C(g);if(!h&&B.size>=50)return{started:!1,reason:"max concurrent pollers reached"};if(h&&h.cliToolId===b)return{started:!0,reason:"already_running"};h&&L(g);let j={timerId:null,cliToolId:b,instanceId:d,consecutiveErrors:0,currentInterval:2e3,lastServerResponseTimestamp:null,lastAnsweredPromptKey:null,lastAnsweredAt:null,stopCheckBaselineLength:-1};return B.set(g,j),j.timerId=setTimeout(()=>{I(a,b,d)},2e3),A.info("poller:started",{worktreeId:a,cliToolId:b,instanceId:d}),{started:!0}}function L(a){let b=C(a);b&&(b.timerId&&clearTimeout(b.timerId),B.delete(a),A.info("poller:stopped",{compositeKey:a}))}function M(a){q(Array.from(B.keys()),a).forEach(a=>L(a))}},7015:(a,b,c)=>{"use strict";c.d(b,{Ds:()=>g});var d=c(81719);class e{constructor(a,b=3e4){this.cache=new Map,this.allAppsCache=null,this.lastRefresh=0,this.db=a,this.ttl=b}getTTL(){return this.ttl}isStale(){return Date.now()-this.lastRefresh>this.ttl}async refresh(){let a=(0,d.$i)(this.db);for(let b of(this.cache.clear(),a))this.cache.set(b.pathPrefix,b);this.allAppsCache=a,this.lastRefresh=Date.now()}async getByPathPrefix(a){return this.isStale()&&await this.refresh(),this.cache.get(a)??null}async getAll(){return this.isStale()&&await this.refresh(),this.allAppsCache??[]}invalidate(){this.cache.clear(),this.allAppsCache=null,this.lastRefresh=0}invalidateByIssueNo(a){this.invalidate()}}let f=null;function g(a){if(!f){if(!a)throw Error("Database instance required to initialize cache");f=new e(a)}return f}},8616:(a,b,c)=>{"use strict";c.d(b,{b:()=>g});var d=c(11665),e=c(26283);let f=(0,c(72626).h)("pasted-text");async function g(a){for(let b=0;b<e.Iy;b++){await new Promise(a=>setTimeout(a,e.Om));let c=await (0,d.Xg)(a,{startLine:-10});if(!e.fW.test((0,e.aJ)(c)))return;await (0,d.V1)(a,"",!0),b===e.Iy-1&&f.warn("Pasted text detection: max retries reached",{sessionName:a,maxRetries:e.Iy,finalAttempt:b})}}},8988:(a,b,c)=>{"use strict";c.d(b,{R:()=>g});let d=/📄 Session log: (.+?\/([^\/\s]+\.jsonl))/,e=/Request ID: ([^\s\n]+)/,f=/Summary: (.+?)(?:\n─|$)/s;function g(a){let b={content:a},c=d.exec(a);c&&(b.logFileName=c[2]);let g=e.exec(a);g&&(b.requestId=g[1]);let h=f.exec(a);return h&&(b.summary=h[1].trim()),b}},11508:(a,b,c)=>{"use strict";c.d(b,{H:()=>m,m:()=>n});var d=c(44265),e=c(11665),f=c(8616),g=c(93997),h=c(26283),i=c(72626),j=c(20610);let k=(0,i.h)("cli-tools/gemini");function l(a){return a instanceof Error?a.message:String(a)}let m=200;class n extends d.M{async isRunning(a,b){let c=this.getSessionName(a,b);return await (0,e.N)(c)}async startSession(a,b,c){if(!await this.isInstalled())throw Error("Gemini CLI is not installed or not in PATH");let d=this.getSessionName(a,c);if(await (0,e.N)(d)){await this.reconcileExistingSession(d),k.info("gemini-session-sessionname");return}try{await (0,e.jw)({sessionName:d,workingDirectory:b,historyLimit:5e4}),await new Promise(a=>setTimeout(a,j.Uc)),await (0,e.V1)(d,"gemini",!0),await new Promise(a=>setTimeout(a,6e3)),await this.waitForReady(d),k.info("started-gemini-session:sessionname")}catch(b){let a=l(b);throw Error(`Failed to start Gemini session: ${a}`)}}async waitForReady(a){let b=!1;for(let c=0;c<30;c++){try{let c=await (0,e.Xg)(a,m),d=(0,h.aJ)(c);if(h.wN.test(d))return void k.info("gemini-prompt-detected");!b&&d.includes("Do you trust this folder?")&&(await (0,e.ds)(a,"Enter"),b=!0,k.info("auto-trusted-folder-for"))}catch{}await new Promise(a=>setTimeout(a,1e3))}k.info("gemini-prompt-detection")}async waitForPrompt(a){let b=Date.now();for(;Date.now()-b<15e3;){try{let b=await (0,e.Xg)(a,m),c=(0,h.aJ)(b);if(h.wN.test(c))return}catch{}await new Promise(a=>setTimeout(a,500))}k.info("gemini-prompt-not")}async sendMessage(a,b,c){let d=this.getSessionName(a,c);if(!await (0,e.N)(d))throw Error(`Gemini session ${d} does not exist. Start the session first.`);try{await this.waitForPrompt(d),await (0,e.V1)(d,b,!1),await new Promise(a=>setTimeout(a,j.pL)),await (0,e.ds)(d,"C-m"),await new Promise(a=>setTimeout(a,j.x9)),b.includes("\n")&&await (0,f.b)(d),(0,g.gm)(d),k.info("sent-message-to-gemini-session:sessionna")}catch(b){let a=l(b);throw Error(`Failed to send message to Gemini: ${a}`)}}async killSession(a,b){let c=this.getSessionName(a,b);try{await (0,e.N)(c)&&(await (0,e.ds)(c,"C-c"),await new Promise(a=>setTimeout(a,j.Is)),await (0,e.V1)(c,"/quit",!0),await new Promise(a=>setTimeout(a,j.Zf))),await (0,e.fY)(c)&&k.info("stopped-gemini-session:sessionname")}catch(a){throw k.error("session:stop-failed",{error:l(a)}),a}}constructor(...a){super(...a),this.id="gemini",this.name="Gemini CLI",this.command="gemini"}}},11665:(a,b,c)=>{"use strict";c.d(b,{GW:()=>n,KB:()=>r,N:()=>m,N6:()=>x,Sb:()=>y,V1:()=>p,Xg:()=>s,ds:()=>v,fY:()=>t,jw:()=>o,lA:()=>k,zT:()=>l});var d=c(79646),e=c(28354),f=c(93997),g=c(16983),h=c(72626);let i=(0,e.promisify)(d.execFile),j=(0,h.h)("tmux");function k(a){return`=${a}:`}async function l(a,b={}){let c,d,e,f=b.windowWidth??g.J,h=b.windowHeight??g.s,m=k(a);try{c=(await i("tmux",["show-window-options","-v","-t",m,"window-size"],{timeout:5e3})).stdout.trim();let[a,b]=(await i("tmux",["display-message","-p","-t",m,"#{window_width}|#{window_height}"],{timeout:5e3})).stdout.trim().split("|").map(Number);Number.isFinite(a)&&(d=a),Number.isFinite(b)&&(e=b)}catch{}let n="manual"===c,o=d===f&&e===h;if(n&&o)return!1;try{return n||await i("tmux",["set-window-option","-t",m,"window-size","manual"],{timeout:5e3}),o||await i("tmux",["resize-window","-t",m,"-x",String(f),"-y",String(h)],{timeout:5e3}),!0}catch(b){return j.warn("session-geometry:reconcile-failed",{sessionName:a,error:b instanceof Error?b.message:String(b)}),!1}}async function m(a){try{return await i("tmux",["has-session","-t",k(a)],{timeout:5e3}),!0}catch{return!1}}async function n(){try{let{stdout:a}=await i("tmux",["list-sessions","-F","#{session_name}|#{session_windows}|#{session_attached}"],{timeout:5e3});if(!a||""===a.trim())return[];return a.trim().split("\n").map(a=>{let[b,c,d]=a.split("|");return{name:b,windows:parseInt(c,10)||0,attached:"1"===d}})}catch{return[]}}async function o(a,b){let c,d,e,f,h;"string"==typeof a?(c=a,d=b,e=5e4,f=g.J,h=g.s):(c=a.sessionName,d=a.workingDirectory,e=a.historyLimit||5e4,f=a.windowWidth||g.J,h=a.windowHeight||g.s);try{await i("tmux",["new-session","-d","-s",c,"-c",d,"-x",String(f),"-y",String(h)],{timeout:5e3}),await l(c,{windowWidth:f,windowHeight:h}),await i("tmux",["set-option","-t",k(c),"history-limit",String(e)],{timeout:5e3})}catch(b){let a=b instanceof Error?b.message:String(b);throw Error(`Failed to create tmux session: ${a}`)}}async function p(a,b,c=!0){let d=c?["send-keys","-t",k(a),b,"C-m"]:["send-keys","-t",k(a),b];try{await i("tmux",d,{timeout:5e3})}catch(b){let a=b instanceof Error?b.message:String(b);throw Error(`Failed to send keys to tmux session: ${a}`)}}let q=new Set(["Up","Down","Left","Right","Enter","Space","Tab","Escape","BSpace","DC","PageUp","PageDown","Home","End","q"]);async function r(a,b){if(0!==b.length){for(let a of b)if(!q.has(a))throw Error(`Invalid special key: ${a}`);try{for(let c=0;c<b.length;c++)await i("tmux",["send-keys","-t",k(a),b[c]],{timeout:5e3}),c<b.length-1&&await new Promise(a=>setTimeout(a,100))}catch(b){let a=b instanceof Error?b.message:String(b);throw Error(`Failed to send special keys to tmux session: ${a}`)}}}async function s(a,b){let c,d;"number"==typeof b?(c=-b,d="-"):b?(c=b.startLine??-1e4,d=b.endLine??"-"):(c=-1e3,d="-");try{let{stdout:b}=await i("tmux",["capture-pane","-t",k(a),"-p","-e","-S",String(c),"-E",String(d)],{timeout:5e3,maxBuffer:0xa00000});return b}catch(b){let a=b instanceof Error?b.message:String(b);throw Error(`Failed to capture pane: ${a}`)}}async function t(a){try{return await i("tmux",["kill-session","-t",k(a)],{timeout:5e3}),!0}catch(b){let a=b instanceof Error?b.message:String(b);if(a?.includes("no server running")||a?.includes("can't find session"))return!1;throw Error(`Failed to kill tmux session: ${a}`)}}let u=new Set(["Escape","C-c","C-d","C-m","Enter"]);async function v(a,b){if(!u.has(b))throw Error(`Invalid special key: ${b}`);try{await i("tmux",["send-keys","-t",k(a),b],{timeout:5e3})}catch(b){let a=b instanceof Error?b.message:String(b);throw Error(`Failed to send special key: ${a}`)}}let w=["Up","Down","Left","Right","Enter","Escape","Tab","BTab","PageUp","PageDown","Home","End","q"];function x(a){return w.includes(a)}async function y(a,b){await r(a,b),(0,f.gm)(a)}},13033:(a,b,c)=>{"use strict";c.d(b,{IW:()=>h,IZ:()=>l,K0:()=>g,Uz:()=>m,l1:()=>f,o0:()=>i,q1:()=>n,tb:()=>k,vQ:()=>j});var d=c(26283);let e=new Map;function f(a){return(0,d._A)((0,d.aJ)(a)).replace(/^\u2503\s?/,"").replace(/\s*\u2503$/,"").trim()}function g(a){let b=a.split("\n"),c=[];for(let a of b){let b=f(a);!(!b||d.sx.some(a=>a.test(b)))&&(d.Md.test(b)||c.push(b))}return c}function h(a){return a.replace(/[\u2500-\u257F]/g,"").replace(/\s{2,}/g," ").trim()}function i(a){let b=(0,d.aJ)(a).split("\n"),c=[];for(let a of b){let b=h(a);b&&(d.J7.some(a=>a.test(b))||c.push(b))}return c}function j(a,b){if(0===a.length||0===b.length)return 0;let c=Math.min(a.length,b.length);for(let d=c;d>=1;d--){let c=a.slice(-d),e=b.slice(0,d),f=!0;for(let a=0;a<d;a++)if(c[a]!==e[a]){f=!1;break}if(f)return d}return 0}function k(a){e.set(a,{lines:[],lastFingerprint:[],pollCount:0})}function l(a,b,c="opencode"){let d=e.get(a);if(!d)return;let f="copilot"===c?i(b):g(b);if(0!==f.length){if(d.pollCount++,0===d.lines.length)d.lines=[...f];else{let a=j(d.lastFingerprint,f);if(a>0){let b=f.slice(a);d.lines.push(...b)}else d.lines.push(...f)}d.lastFingerprint=f.slice(-10)}}function m(a){let b=e.get(a);return b&&0!==b.lines.length?b.lines.join("\n"):""}function n(a){e.delete(a)}},16983:(a,b,c)=>{"use strict";c.d(b,{J:()=>e,s:()=>d});let d=1e3,e=200},18778:(a,b,c)=>{"use strict";c.d(b,{T:()=>g});var d=c(56791),e=c(41364);let f=(0,c(72626).h)("conversation-logger");async function g(a,b,c,h="claude"){let i=(0,d.r8)(a,b);if(i)try{await (0,e.hM)(b,i.content,c,h)}catch(a){f.error("conversation:log-failed",{error:a instanceof Error?a.message:String(a)})}}},20610:(a,b,c)=>{"use strict";c.d(b,{CV:()=>i,Em:()=>l,Is:()=>g,KI:()=>j,PY:()=>k,Uc:()=>d,Zf:()=>h,pL:()=>e,x9:()=>f});let d=100,e=100,f=200,g=300,h=500,i=500,j=2e3,k=200,l=100},21684:(a,b,c)=>{"use strict";c.d(b,{U:()=>g});var d=c(33873),e=c.n(d),f=c(87447);function g(){return(0,f._p)("CM_LOG_DIR")||e().join(process.cwd(),"data","logs")}},25129:(a,b,c)=>{"use strict";c.d(b,{gF:()=>A,xn:()=>u});var d=c(72626),e=c(68652);let f=/^\s*[\u276F\u25CF\u203A][^\d]*(\d+)(?:\.(?!\d)|\s{2,})\s*(.+)$/,g=/^\s*[^\d]{0,3}(\d+)(?:\.(?!\d)|\s+)\s*(.+)$/,h=/^[-─]+$/,i=/^\s*\[[^\]]*\d+\s+lines?\]/i,j=/^\s*[…]?\s*[+\-↑↓⏵⏷]?\s*\d+\s+(?:pending|more)\b/i,k=/Esc\s+to\s+cancel\s*[·•]\s*Tab\s+to\s+amend/i,l=/Enter\s+to\s+select\b.*\bnavigate\b/i,m=/press\s+(?:enter|number)\s+to\s+confirm/i,n=/press\s+number\s+to\s+confirm/i,o=/(?:select|choose|pick|which|what|how|where|enter|type|specify|confirm|approve|accept|reject|decide|preference|option)/i,p=[/type\s+here/i,/tell\s+(me|claude)/i,/enter\s+/i,/custom/i,/differently/i];function q(a,b){if(0===b.length)return!0;let c=b[0].number;return a<c&&a>=c-2}function r(a){return{isPrompt:!1,cleanContent:a.trim()}}function s(a){return 0!==a.length&&!!(a.includes("?")||a.includes("?")||o.test(a))}function t(a,b){let c=b.endsWith("?")||b.endsWith("?");return!!(!c&&/^\s{2,}[^\d]/.test(a)&&!/^\s*\d+\./.test(a)||!c&&/^\s{4,}/.test(a)&&!/^\s*\d+\.\s/.test(a)||b.length<5&&!c||/^[\/~]/.test(b)||b.length>=2&&/^[a-zA-Z0-9_-]+$/.test(b))}function u(a,b="yes_no"){let c=a.toLowerCase().trim();if("multiple_choice"===b){if(/^\d+$/.test(c))return c;throw Error("Invalid answer for multiple choice prompt. Expected a number.")}if("yes"===c||"y"===c)return"y";if("no"===c||"n"===c)return"n";throw Error("Invalid answer for yes/no prompt. Expected 'yes', 'no', 'y', or 'n'.")}let v=(0,d.h)("prompt-detector"),w=null;function x(a){let b=a.split("\n"),c=(b.length>200?b.slice(-200):b).join("\n");return c.length>5e3&&(c=c.slice(-5e3)),c}let y=[{regex:/^(.+)\s+\(y\/n\)\s*$/m},{regex:/^(.+)\s+\[y\/N\]\s*$/m,defaultOption:"no"},{regex:/^(.+)\s+\[Y\/n\]\s*$/m,defaultOption:"yes"},{regex:/^(.+)\s+\(yes\/no\)\s*$/m}];function z(a,b,c,d){return{isPrompt:!0,promptData:{type:"yes_no",question:a,options:["yes","no"],status:"pending",...void 0!==d&&{defaultOption:d},instructionText:c},cleanContent:b,rawContent:c}}function A(a,b){let c=(0,e.N)(a),d=c===a&&b?.precomputedLines?b.precomputedLines:c.split("\n"),o=d.slice(-50).join("\n"),u=o===w;u||v.debug("detectPrompt:start",{outputLength:c.length}),w=o;let A=d.slice(-20).join("\n"),B=function(a,b,c){var d,o;a=(0,e.N)(a);let u=b?.requireDefaultIndicator??!0,v=a.split("\n"),w=v.length;for(;w>0&&""===v[w-1].trim();)w--;let x=Math.max(0,w-50),y=!1;for(let a=w-1;a>=x;a--){let b=l.test(v[a]);if(k.test(v[a])||b){w=a,y=b;break}}let z=v.slice(x,w),A=!1,B=!1;for(let a of z){let b=a.trim();if(!A&&m.test(b)){A=!0,n.test(b)&&(B=!0);break}}if(u){let b=!1;for(let a of z){let c=a.trim();if(f.test(c)){b=!0;break}}if(!b&&!A)return r(a)}let C=[],D=-1,E=0;for(let b=w-1;b>=x;b--){let c=v[b].trim();if(i.test(c)||j.test(c)){E++;continue}let d=c.match(f);if(d){let a=parseInt(d[1],10);if(a<=20&&q(a,C)){let b=d[2].trim();C.unshift({number:a,label:b,isDefault:!0}),E=0;continue}}let e=c.match(g);if(e){let a=parseInt(e[1],10);if(a>20);else if(q(a,C)){let b=e[2].trim();C.unshift({number:a,label:b,isDefault:!1}),E=0;continue}}if(0===C.length&&(c.startsWith("❯")||c.startsWith("●")||c.startsWith("›")))return r(a);if(C.length>0&&c&&!h.test(c)){let a=v[b];if(/^\s{4,}/.test(a)&&t(a,c)){if(++E>25){D=b;break}continue}if(s(c)){D=b;break}if(t(a,c)){if(++E>(/^\s{4,}/.test(a)?25:5)){D=b;break}continue}D=b;break}}if(!function(a){if(0===a.length||1!==a[0])return!1;let b=0;for(let c=1;c<a.length;c++){let d=a[c]-a[c-1];if(d<1||d>2||(2===d&&b++,b>1))return!1}return!0}(C.map(a=>a.number)))return r(a);let F=C.some(a=>a.isDefault),G=u&&A;if(C.length<2||u&&!F&&!G||!u&&(-1===D||!s(v[D]?.trim()??"")&&!function(a,b,c,d){let e=Math.max(d,b-3);for(let c=b-1;c>=e;c--){let b=a[c]?.trim()??"";if(!(!b||h.test(b))&&s(b))return!0}return!1}(v,D,0,x)))return r(a);let H=function(a,b){if(b<0)return"Please select an option:";let c=[];for(let d=Math.max(0,b-5);d<=b;d++){let b=a[d].trim();b&&!h.test(b)&&c.push(b)}return c.join(" ")}(v,D),I=function(a,b,c){if(b<0)return;let d=Math.max(0,b-19),e=a.slice(d,c).map(a=>a.trimEnd()).join("\n").trim();return e.length>0?e:void 0}(v,D,w),J=A?B?"answer_only":"answer_then_enter":void 0;return d=a,o=y,{isPrompt:!0,promptData:{type:"multiple_choice",question:H.trim(),options:C.map(a=>{let b=p.some(b=>b.test(a.label));return{number:a.number,label:a.label,isDefault:a.isDefault,requiresTextInput:b}}),status:"pending",instructionText:I,...J?{submitMode:J}:{},...o?{isAskUserQuestion:!0}:{}},cleanContent:H.trim(),rawContent:c(d.trim())}}(c,b,x);if(B.isPrompt)return u||v.info("detectPrompt:multipleChoice",{isPrompt:!0,question:B.promptData?.question,optionsCount:B.promptData?.options?.length}),B;let C=A.trim();for(let a of y){let b=A.match(a.regex);if(b){let c=b[1].trim();return z(c,c,C,a.defaultOption)}}let D=A.match(/^(.*?)Approve\?\s*$/m);if(D){let a=D[1].trim();return z(a?`${a} Approve?`:"Approve?",a||"Approve?",C)}return u||v.debug("detectPrompt:complete",{isPrompt:!1}),{isPrompt:!1,cleanContent:c.trim()}}},25754:(a,b,c)=>{"use strict";c.d(b,{Xn:()=>e,d9:()=>g,gB:()=>f,rv:()=>h});let d=["en","ja"],e="en",f="locale";function g(a){return"string"==typeof a&&d.includes(a)}function h(a,b){return g(a)?a:d.find(a=>(b??"").includes(a))??e}},26838:(a,b,c)=>{"use strict";c.d(b,{Mj:()=>k,Sw:()=>j,lX:()=>l});var d=c(29021),e=c(33873),f=c(90164);let g=/^v?\d+\.\d+\.\d+$/,h=/^[a-zA-Z0-9.\-\s_v]+$/,i=globalThis.__versionCheckCache??(globalThis.__versionCheckCache={result:null,fetchedAt:0,rateLimitResetAt:null});function j(){return function(){try{let a=(0,d.readFileSync)((0,e.join)(process.cwd(),"package.json"),"utf-8"),b=JSON.parse(a);if("commandmate"===b.name&&"string"==typeof b.version&&b.version.length>0)return b.version;return null}catch{return null}}()??"0.11.0"}function k(){return j()}async function l(){try{var a,b,c;if(null!==i.result&&Date.now()-i.fetchedAt<36e5||i.rateLimitResetAt&&(!(Date.now()>=i.rateLimitResetAt)||(i.rateLimitResetAt=null,0)))return i.result;let d=await fetch("https://api.github.com/repos/Kewton/CommandMate/releases/latest",{headers:{Accept:"application/vnd.github+json","User-Agent":`CommandMate/${k()}`},cache:"no-store",signal:AbortSignal.timeout(5e3)});if(403===d.status)return function(a){let b=a.headers.get("X-RateLimit-Reset");b?i.rateLimitResetAt=1e3*parseInt(b,10):i.rateLimitResetAt=Date.now()+36e5}(d),i.result;if(!d.ok)return i.result;let e=await d.json(),j=k(),l=e.tag_name.replace(/^v/,""),m={hasUpdate:function(a,b){if(!g.test(a)||!g.test(b))return!1;let c=a=>a.replace(/^v/,"").split(".").map(Number),[d,e,f]=c(a),[h,i,j]=c(b);return h!==d?h>d:i!==e?i>e:j>f}(j,e.tag_name),currentVersion:j,latestVersion:l,releaseUrl:(a=e.html_url).startsWith(f.Dk)?a:null,releaseName:(b=e.name,c=e.tag_name,h.test(b)&&b.length<=128?b:c),publishedAt:e.published_at};return i.result=m,i.fetchedAt=Date.now(),m}catch{return i.result}}},30618:(a,b,c)=>{"use strict";c.d(b,{xT:()=>w,Ui:()=>x});var d=c(44265),e=c(11665),f=c(8616),g=c(93997),h=c(29021),i=c(33873),j=c(72626);let k=(0,j.h)("cli-tools/opencode-config"),l=/^[a-zA-Z0-9._:/-]{1,100}$/,m=/^[a-zA-Z0-9._:/@-]{1,200}$/;async function n(){let a={};try{let b=new AbortController,c=setTimeout(()=>b.abort(),3e3),d=await fetch("http://localhost:11434/api/tags",{signal:b.signal}).finally(()=>{clearTimeout(c)});if(!d.ok)return k.warn("ollama-api-returned"),{};let e=await d.text();if(e.length>1048576)return k.warn("ollama-api-response"),{};let f=JSON.parse(e);if(!f||!Array.isArray(f.models))return k.warn("invalid-ollama-api"),{};for(let b of f.models.slice(0,100))"string"==typeof b?.name&&l.test(b.name)&&(a[b.name]={name:function(a){let b=String(a.name),c=a.details;if(!c)return b;let d=[b];return"string"==typeof c.parameter_size&&/^[\d.]+[BKMGT]?B?$/i.test(c.parameter_size)&&d.push(c.parameter_size),"string"==typeof c.quantization_level&&/^[A-Z0-9_]{1,20}$/i.test(c.quantization_level)&&d.push(c.quantization_level),d.length>1?`${b} (${d.slice(1).join(", ")})`:b}(b)})}catch(a){a instanceof Error&&"AbortError"===a.name?k.warn("ollama-api-timeout"):k.warn("failed-to-fetch")}return a}async function o(){let a={};try{let b=new AbortController,c=setTimeout(()=>b.abort(),3e3),d=await fetch("http://localhost:1234/v1/models",{signal:b.signal}).finally(()=>{clearTimeout(c)});if(!d.ok)return k.warn("lm-studio-api"),{};let e=await d.text();if(e.length>1048576)return k.warn("lm-studio-api"),{};let f=JSON.parse(e);if(!f||!Array.isArray(f.data))return k.warn("invalid-lm-studio"),{};for(let b of f.data.slice(0,100))"string"==typeof b?.id&&m.test(b.id)&&(a[b.id]={name:b.id})}catch(a){a instanceof Error&&"AbortError"===a.name?k.warn("lm-studio-api"):k.warn("failed-to-fetch")}return a}async function p(a){let b=function(a){let b=i.resolve(a);try{if(!h.lstatSync(b).isDirectory())throw Error(`Path is not a directory: ${b}`)}catch(a){if("ENOENT"===a.code)throw Error(`Path does not exist: ${b}`);throw a}return h.realpathSync(b)}(a),c=i.join(b,"opencode.json");if(h.existsSync(c))return;let[d,e]=await Promise.all([n(),o()]),f={};if(Object.keys(d).length>0&&(f.ollama={npm:"@ai-sdk/openai-compatible",name:"Ollama (local)",options:{baseURL:"http://localhost:11434/v1"},models:d}),Object.keys(e).length>0&&(f.lmstudio={npm:"@ai-sdk/openai-compatible",name:"LM Studio (local)",options:{baseURL:"http://localhost:1234/v1"},models:e}),0!==Object.keys(f).length)try{h.writeFileSync(c,JSON.stringify({$schema:"https://opencode.ai/config.json",provider:f},null,2),{encoding:"utf-8",flag:"wx"})}catch(a){if("EEXIST"===a.code)return;k.warn("failed-to-write-opencodejson:error-insta")}}var q=c(79646),r=c(28354),s=c(20610);let t=(0,j.h)("cli-tools/opencode"),u=(0,r.promisify)(q.execFile);function v(a){return a instanceof Error?a.message:String(a)}let w=200;class x extends d.M{async isRunning(a,b){let c=this.getSessionName(a,b);return await (0,e.N)(c)}async startSession(a,b,c){if(!await this.isInstalled())throw Error("OpenCode is not installed or not in PATH");let d=this.getSessionName(a,c);if(await (0,e.N)(d)){await this.reconcileExistingSession(d,{windowWidth:80,windowHeight:w}),t.info("opencode-session-sessionname");return}try{await p(b),await (0,e.jw)({sessionName:d,workingDirectory:b,historyLimit:5e4}),await new Promise(a=>setTimeout(a,s.Uc));try{await u("tmux",["resize-window","-t",(0,e.lA)(d),"-x","80","-y",String(w)])}catch{}await (0,e.V1)(d,"opencode",!0),await new Promise(a=>setTimeout(a,15e3)),t.info("started-opencode-session:sessionname")}catch(b){let a=v(b);throw Error(`Failed to start OpenCode session: ${a}`)}}async sendMessage(a,b,c){let d=this.getSessionName(a,c);if(!await (0,e.N)(d))throw Error(`OpenCode session ${d} does not exist. Start the session first.`);try{await (0,e.V1)(d,b,!1),await new Promise(a=>setTimeout(a,s.pL)),await (0,e.ds)(d,"C-m"),await new Promise(a=>setTimeout(a,s.x9)),b.includes("\n")&&await (0,f.b)(d),(0,g.gm)(d),t.info("sent-message-to-opencode-session:session")}catch(b){let a=v(b);throw Error(`Failed to send message to OpenCode: ${a}`)}}async killSession(a,b){let c=this.getSessionName(a,b);try{await (0,e.N)(c)?(await (0,e.V1)(c,"/exit",!0),await new Promise(a=>setTimeout(a,s.KI)),await (0,e.N)(c)&&await (0,e.fY)(c)):await (0,e.fY)(c),(0,g.gm)(c),t.info("stopped-opencode-session:sessionname")}catch(a){throw t.error("session:stop-failed",{error:v(a)}),a}}constructor(...a){super(...a),this.id="opencode",this.name="OpenCode",this.command="opencode"}}},31268:(a,b,c)=>{"use strict";c.d(b,{s:()=>K});var d=c(44265),e=c(57905);class f extends d.M{async isInstalled(){return await (0,e.zw)()}async isRunning(a,b){return await (0,e.Yq)(a,b)}async startSession(a,b,c){await (0,e.R7)({worktreeId:a,worktreePath:b,instanceId:c})}async sendMessage(a,b,c){await (0,e.pU)(a,b,c)}supportsImage(){return!0}async sendMessageWithImage(a,b,c,d){let e=`
2
2
  ![](${c})`,f=b?`${b}${e}`:e;await this.sendMessage(a,f,d)}async killSession(a,b){await (0,e.VU)(a,b)}constructor(...a){super(...a),this.id="claude",this.name="Claude Code",this.command="claude"}}var g=c(11665),h=c(8616),i=c(93997),j=c(26283),k=c(72626),l=c(20610);let m=(0,k.h)("cli-tools/codex");function n(a){return a instanceof Error?a.message:String(a)}class o extends d.M{async isRunning(a,b){let c=this.getSessionName(a,b);return await (0,g.N)(c)}async startSession(a,b,c){if(!await this.isInstalled())throw Error("Codex CLI is not installed or not in PATH");let d=this.getSessionName(a,c);if(await (0,g.N)(d)){await this.reconcileExistingSession(d),m.info("codex-session-sessionname");return}try{await (0,g.jw)({sessionName:d,workingDirectory:b,historyLimit:5e4}),await new Promise(a=>setTimeout(a,l.Uc)),await (0,g.V1)(d,"codex",!0),await new Promise(a=>setTimeout(a,3e3)),await this.waitForReady(d),m.info("started-codex-session:sessionname")}catch(b){let a=n(b);throw Error(`Failed to start Codex session: ${a}`)}}async waitForReady(a){let b=!1,c=!1;for(let d=0;d<30;d++){try{let d=await (0,g.Xg)(a,50),e=(0,j.aJ)(d);if((0,j.zZ)(e))return void m.info("codex-prompt-detected");let f=(0,j.Qh)(e);if("update"===f&&!b){await (0,g.V1)(a,"2",!1),b=!0,m.info("skipped-codex-update"),await new Promise(a=>setTimeout(a,l.CV));continue}if("press-enter"===f){await (0,g.ds)(a,"Enter"),m.info("dismissed-codex-notification"),await new Promise(a=>setTimeout(a,l.CV));continue}if("trust"===f&&!c){await (0,g.V1)(a,"1",!1),c=!0,m.info("auto-trusted-folder-for"),await new Promise(a=>setTimeout(a,l.CV));continue}}catch{}await new Promise(a=>setTimeout(a,1e3))}m.info("codex-prompt-detection")}async waitForPrompt(a){let b=Date.now();for(;Date.now()-b<15e3;){try{let b=await (0,g.Xg)(a,50),c=(0,j.aJ)(b);if((0,j.zZ)(c))return}catch{}await new Promise(a=>setTimeout(a,500))}throw m.info("codex-prompt-not"),Error("Codex prompt not ready: timed out waiting for the input prompt before sending")}async sendMessage(a,b,c){let d=this.getSessionName(a,c);if(!await (0,g.N)(d))throw Error(`Codex session ${d} does not exist. Start the session first.`);try{await this.waitForPrompt(d),await (0,g.V1)(d,b,!1),await new Promise(a=>setTimeout(a,l.pL)),await (0,g.ds)(d,"C-m"),await new Promise(a=>setTimeout(a,l.x9)),b.includes("\n")&&await (0,h.b)(d),(0,i.gm)(d),m.info("sent-message-to-codex-session:sessionnam")}catch(b){let a=n(b);throw Error(`Failed to send message to Codex: ${a}`)}}async killSession(a,b){let c=this.getSessionName(a,b);try{await (0,g.N)(c)&&(await (0,g.ds)(c,"C-d"),await new Promise(a=>setTimeout(a,l.Zf))),await (0,g.fY)(c)&&m.info("stopped-codex-session:sessionname")}catch(a){throw m.error("session:stop-failed",{error:n(a)}),a}}constructor(...a){super(...a),this.id="codex",this.name="Codex CLI",this.command="codex"}}var p=c(11508),q=c(15194),r=c(88807),s=c(56791);let t=(0,k.h)("cli-tools/vibe-local");function u(a){return a instanceof Error?a.message:String(a)}class v extends d.M{async isRunning(a,b){let c=this.getSessionName(a,b);return await (0,g.N)(c)}async startSession(a,b,c){if(!await this.isInstalled())throw Error("vibe-local is not installed or not in PATH");let d=this.getSessionName(a,c);if(await (0,g.N)(d)){await this.reconcileExistingSession(d),t.info("vibe-local-session");return}try{await (0,g.jw)({sessionName:d,workingDirectory:b,historyLimit:5e4}),await new Promise(a=>setTimeout(a,l.Uc));let c="vibe-local -y";try{let b=(0,r.getDbInstance)(),d=(0,s.Ui)(b,a);d?.vibeLocalModel&&q.QP.test(d.vibeLocalModel)&&(c+=` -m ${d.vibeLocalModel}`);let e=d?.vibeLocalContextWindow;(0,q.FV)(e)&&(c+=` --context-window ${Number(e)}`)}catch{}await (0,g.V1)(d,c,!0),await new Promise(a=>setTimeout(a,5e3)),t.info("started-vibe-local-session:sessionname")}catch(b){let a=u(b);throw Error(`Failed to start Vibe Local session: ${a}`)}}async sendMessage(a,b,c){let d=this.getSessionName(a,c);if(!await (0,g.N)(d))throw Error(`Vibe Local session ${d} does not exist. Start the session first.`);try{await (0,g.V1)(d,b,!1),await new Promise(a=>setTimeout(a,l.pL)),await (0,g.ds)(d,"C-m"),await new Promise(a=>setTimeout(a,l.PY)),await (0,g.ds)(d,"C-m"),await new Promise(a=>setTimeout(a,l.x9)),b.includes("\n")&&await (0,h.b)(d),(0,i.gm)(d),t.info("sent-message-to-vibe-local-session:sessi")}catch(b){let a=u(b);throw Error(`Failed to send message to Vibe Local: ${a}`)}}async killSession(a,b){let c=this.getSessionName(a,b);try{await (0,g.N)(c)&&(await (0,g.ds)(c,"C-c"),await new Promise(a=>setTimeout(a,l.Is)),await (0,g.ds)(c,"C-c"),await new Promise(a=>setTimeout(a,l.Zf))),await (0,g.fY)(c)&&t.info("stopped-vibe-local-session:sessionname")}catch(a){throw t.error("session:stop-failed",{error:u(a)}),a}}constructor(...a){super(...a),this.id="vibe-local",this.name="Vibe Local",this.command="vibe-local"}}var w=c(30618),x=c(79646),y=c(56263),z=c(77093);let A=(0,k.h)("cli-tools/copilot"),B=new Set(["model","agent","theme"]);class C extends d.M{async isInstalled(){try{return await new Promise((a,b)=>{(0,x.execFile)("gh",["--version"],{timeout:5e3},c=>{c?b(c):a()})}),await new Promise((a,b)=>{(0,x.execFile)("gh",["copilot","--help"],{timeout:5e3},c=>{c?b(c):a()})}),!0}catch{return!1}}async isRunning(a,b){let c=this.getSessionName(a,b);return await (0,g.N)(c)}async startSession(a,b,c){if(!await this.isInstalled())throw Error("GitHub Copilot CLI is not installed. Install with: gh extension install github/gh-copilot");let d=this.getSessionName(a,c);if(await (0,g.N)(d)){await this.reconcileExistingSession(d),A.info("copilot-session-exists");return}try{await (0,g.jw)({sessionName:d,workingDirectory:b,historyLimit:5e4}),await new Promise(a=>setTimeout(a,l.Uc)),await (0,g.V1)(d,"gh copilot",!0),await new Promise(a=>setTimeout(a,4e3)),await this.waitForReady(d),A.info("started-copilot-session")}catch(b){let a=(0,z.u1)(b);throw Error(`Failed to start Copilot session: ${a}`)}}async waitForReady(a){for(let b=0;b<30;b++){try{let b=await (0,g.Xg)(a,50),c=(0,j.aJ)(b);if(j.Du.test(c))return void A.info("copilot-prompt-detected")}catch{}await new Promise(a=>setTimeout(a,1e3))}A.info("copilot-prompt-detection-timeout")}async waitForPrompt(a,b=15e3){let c=Date.now();for(;Date.now()-c<b;){try{let b=await (0,g.Xg)(a,50),c=(0,j.aJ)(b);if(j.Du.test(c))return}catch{}await new Promise(a=>setTimeout(a,500))}A.info("copilot-prompt-not-detected")}extractSlashCommand(a){let b=a.trim();if(!b.startsWith("/"))return null;let c=b.match(/^\/(\S+)/);return c?c[1]:null}async waitForSelectionList(a){let b=Date.now();for(;Date.now()-b<5e3;){await new Promise(a=>setTimeout(a,300));try{let b=await (0,g.Xg)(a,50),c=(0,j.aJ)(b);if(j.Mi.test(c))return A.info("copilot-selection-list-detected"),!0}catch{}}return A.info("copilot-selection-list-not-detected-timeout"),!1}async sendMessage(a,b,c){let d=this.getSessionName(a,c);if(!await (0,g.N)(d))throw Error(`Copilot session ${d} does not exist. Start the session first.`);try{await this.waitForPrompt(d);let a=this.extractSlashCommand(b);if(a&&B.has(a)){await (0,g.V1)(d,b,!0),await this.waitForSelectionList(d),(0,i.gm)(d),A.info("sent-selection-list-command-to-copilot",{command:a});return}await (0,g.V1)(d,b,!1),await new Promise(a=>setTimeout(a,y.L1)),await (0,g.ds)(d,"C-m"),await new Promise(a=>setTimeout(a,y.wp)),b.includes("\n")&&await (0,h.b)(d),(0,i.gm)(d),A.info("sent-message-to-copilot-session")}catch(b){let a=(0,z.u1)(b);throw Error(`Failed to send message to Copilot: ${a}`)}}async sendModelCommand(a,b,c){let d=this.getSessionName(a,c);if(!await (0,g.N)(d))throw Error(`Copilot session ${d} does not exist. Start the session first.`);try{await (0,g.V1)(d,`/model ${b}`,!0),await this.waitForSelectionList(d)&&await (0,g.ds)(d,"C-m"),await this.waitForPrompt(d,y.pL),(0,i.gm)(d),A.info("copilot-model-switched",{model:b})}catch(c){let a=(0,z.u1)(c);throw Error(`Failed to switch Copilot model to ${b}: ${a}`)}}async killSession(a,b){let c=this.getSessionName(a,b);try{await (0,g.N)(c)&&(await (0,g.ds)(c,"C-c"),await new Promise(a=>setTimeout(a,l.Is)),await (0,g.V1)(c,"exit",!0),await new Promise(a=>setTimeout(a,l.Zf))),await (0,g.fY)(c)&&A.info("stopped-copilot-session")}catch(a){throw A.error("session:stop-failed",{error:(0,z.u1)(a)}),a}}constructor(...a){super(...a),this.id="copilot",this.name="Copilot",this.command="gh"}}let D=(0,k.h)("cli-tools/antigravity");function E(a){return a instanceof Error?a.message:String(a)}let F=/\?\s+for\s+shortcuts/,G=/Do you trust the contents of this project\?/;function H(a){return F.test(a)&&!G.test(a)}class I extends d.M{async isRunning(a,b){let c=this.getSessionName(a,b);return await (0,g.N)(c)}async startSession(a,b,c,d){if(!await this.isInstalled())throw Error("Antigravity CLI (agy) is not installed or not in PATH");let e=this.getSessionName(a,c);if(await (0,g.N)(e)){await this.reconcileExistingSession(e),D.info("antigravity-session-exists");return}try{await (0,g.jw)({sessionName:e,workingDirectory:b,historyLimit:5e4}),await new Promise(a=>setTimeout(a,l.Uc));let a=d?`agy --model '${d.replace(/'/g,"'\\''")}'`:"agy";await (0,g.V1)(e,a,!0),await new Promise(a=>setTimeout(a,3e3)),await this.waitForReady(e),D.info("started-antigravity-session")}catch(b){let a=E(b);throw Error(`Failed to start Antigravity session: ${a}`)}}async waitForReady(a){let b=!1;for(let c=0;c<30;c++){try{let c=await (0,g.Xg)(a,50),d=(0,j.aJ)(c);if(H(d))return void D.info("antigravity-prompt-detected");if(!b&&G.test(d)){await (0,g.ds)(a,"Enter"),b=!0,D.info("auto-trusted-folder-for-antigravity"),await new Promise(a=>setTimeout(a,500));continue}}catch{}await new Promise(a=>setTimeout(a,1e3))}D.info("antigravity-prompt-detection-timeout")}async waitForPrompt(a){let b=Date.now();for(;Date.now()-b<15e3;){try{let b=await (0,g.Xg)(a,50),c=(0,j.aJ)(b);if(H(c))return}catch{}await new Promise(a=>setTimeout(a,500))}throw D.info("antigravity-prompt-not-ready"),Error("Antigravity prompt not ready: timed out waiting for the input prompt before sending")}async sendMessage(a,b,c){let d=this.getSessionName(a,c);if(!await (0,g.N)(d))throw Error(`Antigravity session ${d} does not exist. Start the session first.`);try{await this.waitForPrompt(d),await (0,g.V1)(d,b,!1),await new Promise(a=>setTimeout(a,l.pL)),await (0,g.ds)(d,"C-m"),await new Promise(a=>setTimeout(a,l.x9)),b.includes("\n")&&await (0,h.b)(d),(0,i.gm)(d),D.info("sent-message-to-antigravity-session")}catch(b){let a=E(b);throw Error(`Failed to send message to Antigravity: ${a}`)}}async killSession(a,b){let c=this.getSessionName(a,b);try{await (0,g.N)(c)&&(await (0,g.ds)(c,"C-d"),await new Promise(a=>setTimeout(a,l.Zf)));let a=await (0,g.fY)(c);(0,i.gm)(c),a&&D.info("stopped-antigravity-session")}catch(a){throw D.error("session:stop-failed",{error:E(a)}),a}}constructor(...a){super(...a),this.id="antigravity",this.name="Antigravity CLI",this.command="agy"}}var J=c(95220);class K{constructor(){this.tools=new Map,this.tools.set("claude",new f),this.tools.set("codex",new o),this.tools.set("gemini",new p.m),this.tools.set("vibe-local",new v),this.tools.set("opencode",new w.Ui),this.tools.set("copilot",new C),this.tools.set("antigravity",new I)}static getInstance(){return K.instance||(K.instance=new K),K.instance}getTool(a){let b=this.tools.get(a);if(!b)throw Error(`CLI tool '${a}' not found`);return b}getAllTools(){return Array.from(this.tools.values())}async getToolInfo(a){let b=this.getTool(a),c=await b.isInstalled();return{id:b.id,name:b.name,command:b.command,installed:c}}async getAllToolsInfo(){return Promise.all(this.getAllTools().map(async a=>{let b=await a.isInstalled();return{id:a.id,name:a.name,command:a.command,installed:b}}))}async getInstalledTools(){return(await this.getAllToolsInfo()).filter(a=>a.installed)}stopPollers(a,b,c){(0,J.stopPolling)(a,b,c)}}},31766:(a,b,c)=>{"use strict";c.d(b,{Wh:()=>p,WD:()=>q,K1:()=>o});var d=c(31268),e=c(72626),f=c(11665);let g={streamingOutput:!1,explicitResize:!1,snapshotFallback:!0};class h{async unsubscribe(){}}class i{async ensureSession(a,b){await (0,f.N)(a)||await (0,f.jw)(a,b)}async sessionExists(a){return(0,f.N)(a)}async sendInput(a,b){await (0,f.V1)(a,b)}async sendSpecialKey(a,b){if("Escape"!==b&&"C-c"!==b&&"C-d"!==b&&"C-m"!==b&&"Enter"!==b)throw Error(`Unsupported special key for PollingTmuxTransport: ${b}`);await (0,f.ds)(a,b)}async resize(){throw Error("PollingTmuxTransport does not support explicit resize")}async captureSnapshot(a,b){return(0,f.Xg)(a,b)}async subscribe(){return new h}getCapabilities(){return g}async killSession(a){return(0,f.fY)(a)}}let j=null;var k=c(93997);let l=(0,e.h)("cli-session");function m(){return j||(j=new i),j}function n(a,b,c){let e=d.s.getInstance().getTool(b),f=e.getSessionName(a,c);return{cliTool:e,sessionName:f}}async function o(a,b,c){let{sessionName:d}=n(a,b,c);return m().sessionExists(d)}async function p(a,b,c=1e3,d){let e=l.withContext({worktreeId:a,cliToolId:b});e.debug("captureSessionOutput:start",{requestedLines:c});let{cliTool:f,sessionName:g}=n(a,b,d),h=m();try{let a=await (0,k.aq)(g,c,async()=>{if(!await h.sessionExists(g))throw Error(`${f.name} session ${g} does not exist`);return await h.captureSnapshot(g,{startLine:-k.xE})});return e.debug("captureSessionOutput:success",{actualLines:a.split("\n").length,lastFewLines:a.split("\n").slice(-3).join(" | ")}),a}catch(b){let a=b instanceof Error?b.message:String(b);if(a.includes("does not exist"))throw e.debug("captureSessionOutput:sessionNotFound",{sessionName:g}),b;throw e.error("captureSessionOutput:failed",{error:a}),Error(`Failed to capture ${f.name} output: ${a}`)}}async function q(a,b,c=5e3,d){let e=l.withContext({worktreeId:a,cliToolId:b});e.debug("captureSessionOutputFresh:start",{requestedLines:c});let{cliTool:f,sessionName:g}=n(a,b,d),h=m();try{let a=await h.captureSnapshot(g,{startLine:-c});return a.length>0?(0,k.vF)(g,a,c):(0,k.gm)(g),(0,k.wd)(a,c)}catch(b){(0,k.gm)(g);let a=b instanceof Error?b.message:String(b);throw e.error("captureSessionOutputFresh:failed",{error:a}),Error(`Failed to capture ${f.name} output: ${a}`)}}},34405:(a,b,c)=>{"use strict";c.d(b,{G:()=>e,_:()=>d});let d=1e4,e=1e3},34892:(a,b,c)=>{"use strict";c.d(b,{$:()=>j});var d=c(56791),e=c(31268),f=c(31766),g=c(95595),h=c(5344),i=c(34405);async function j(a,b,c,j){let k=j??c,l=e.s.getInstance().getTool(c);if(!await l.isRunning(b,j))return{isRunning:!1,content:"",lineCount:0,cliToolId:c,sessionStatus:"idle",sessionStatusReason:"session_not_running"};let m=(0,d.y1)(a,b,k),n=m?.lastCapturedLine||0,o=await (0,f.Wh)(b,c,i._,j),p=o.split("\n"),q=p.length,r=p.slice(Math.max(0,n)).join("\n"),s=(0,h.v7)(b,c,j),t=(0,h.xU)(s),u=t?new Date(t):void 0,v=(0,g.WC)(o,c,u),w="running"===v.status&&v.reason===g.gv.THINKING_INDICATOR,x=v.hasActivePrompt,y="waiting"===v.status&&g.ug.has(v.reason),z=v.reason===g.gv.CODEX_PAGER,A="running"===v.status&&v.reason===g.gv.DEFAULT,B=p.slice(-100).join("\n"),C=(0,h.aq)(b,c,j);return{isRunning:!0,cliToolId:c,sessionStatus:v.status,sessionStatusReason:v.reason,content:r,fullOutput:o,realtimeSnippet:B,lineCount:q,lastCapturedLine:n,isComplete:x,isGenerating:w,thinking:w,thinkingMessage:w?"Claude is thinking...":null,isPromptWaiting:x,promptData:x?v.promptDetection.promptData??null:null,autoYes:{enabled:C?.enabled??!1,expiresAt:C?.enabled?C.expiresAt:null,stopReason:C?.stopReason},isSelectionListActive:y,isPagerActive:z,isUnclassifiedActive:A,lastServerResponseTimestamp:t,serverPollerActive:(0,h.bZ)(s)}}},39727:()=>{},41364:(a,b,c)=>{"use strict";c.d(b,{Gv:()=>o,hM:()=>n});var d=c(79748),e=c.n(d),f=c(33873),g=c.n(f),h=c(1634),i=c(21684),j=c(72626),k=c(15194);function l(a="claude"){return g().join((0,i.U)(),a)}async function m(a="claude"){let b=l(a);try{await e().access(b)}catch{await e().mkdir(b,{recursive:!0})}}async function n(a,b,c,d="claude"){await m(d);let f=function(a,b="claude"){let c=(0,h.GP)(new Date,"yyyy-MM-dd"),d=`${a}-${c}.md`,e=l(b);return g().join(e,d)}(a,d),i=(0,h.GP)(new Date,"yyyy-MM-dd HH:mm:ss"),j="";try{j=await e().readFile(f,"utf-8")}catch{let b=(0,k.hR)(d)?k.ef[d]:d;j=`# ${b} Conversation Log: ${a}
3
3
 
4
4
  Created: ${i}
@@ -1 +1 @@
1
- exports.id=9067,exports.ids=[9067],exports.modules={7956:(a,b,c)=>{"use strict";c.d(b,{ZU:()=>i,fW:()=>k});var d=c(29021),e=c.n(d),f=c(33873),g=c.n(f);let h=["/etc","/usr","/bin","/sbin","/var","/tmp","/dev","/sys","/proc"];function i(a,b){let c=b.endsWith("/")?b.slice(0,-1):b;return a===c||a.startsWith(c+"/")}let j=null;function k(a){let b=g().resolve(a),c=function(a){let b=[],c=a;for(;;)try{let a=e().realpathSync(c);return b.length>0?g().join(a,...b):a}catch{let d=g().dirname(c);if(d===c)return a;b.unshift(g().basename(c)),c=d}}(b);return(function(){if(null!==j)return j;let a=new Set;for(let b of h){a.add(b);try{a.add(e().realpathSync(b))}catch{}}return j=Array.from(a)})().some(a=>i(b,a)||i(c,a))}},15194:(a,b,c)=>{"use strict";c.d(b,{Ab:()=>g,FV:()=>s,NL:()=>r,QP:()=>t,Sj:()=>k,VA:()=>f,XH:()=>d,_J:()=>u,ef:()=>m,hR:()=>n,lu:()=>p,n6:()=>j,oo:()=>o,pL:()=>l,pQ:()=>h,vz:()=>q});let d=["claude","codex","gemini","vibe-local","opencode","copilot","antigravity"],e=new Set(["claude","opencode","copilot"]);function f(a){return e.has(a)}let g=10,h=50,i=/^[a-zA-Z0-9_-]+$/;function j(a){return"string"==typeof a&&a.length>0&&a.length<=64&&i.test(a)}function k(a,b){return!a||a===b}function l(a,b){let c=`${b}-`;return a.startsWith(c)?a.slice(c.length):a}let m={claude:"Claude",codex:"Codex",gemini:"Gemini","vibe-local":"Vibe Local",opencode:"OpenCode",copilot:"Copilot",antigravity:"Antigravity"};function n(a){return d.includes(a)}function o(a){return m[a]??a}function p(a){return a.map((a,b)=>({id:a,cliTool:a,alias:o(a),order:b}))}let q=128,r=2097152;function s(a){return"number"==typeof a&&Number.isInteger(a)&&a>=q&&a<=r}let t=/^[a-zA-Z0-9][a-zA-Z0-9._:/-]*$/;function u(a){return"function"==typeof a.supportsImage&&!0===a.supportsImage()}},20416:(a,b,c)=>{"use strict";c.d(b,{$b:()=>i,Sv:()=>j});var d=c(33873),e=c.n(d),f=c(21820),g=c(48870),h=c(7956);function i(){return(0,g.TJ)()?e().join((0,f.homedir)(),".commandmate","data","cm.db"):e().resolve(process.cwd(),"data","cm.db")}function j(a){let b=e().resolve(a);if((0,g.TJ)()){let a=(0,f.homedir)();if(!(0,h.ZU)(b,a))throw Error(`Security error: DB path must be within home directory: ${b}`)}else if((0,h.fW)(b))throw Error(`Security error: DB path cannot be in system directory: ${b}`);return b}},48870:(a,b,c)=>{"use strict";c.d(b,{GQ:()=>i,TJ:()=>g,WI:()=>h});var d=c(29021),e=c(33873),f=c(21820);function g(){let a=(0,e.dirname)(__dirname);return a.includes("/lib/node_modules/")||a.includes("\\node_modules\\")||a.includes("/node_modules/commandmate")}function h(){if(g()){let a=(0,e.join)((0,f.homedir)(),".commandmate");if((0,d.existsSync)(a)){let b=(0,d.realpathSync)(a),c=(0,d.realpathSync)((0,f.homedir)());if(!b.startsWith(c))throw Error(`Security error: Config directory ${a} is outside home directory`);return b}return a}let a=process.cwd();return(0,d.realpathSync)(a)}function i(){let a=g()?(0,e.join)((0,f.homedir)(),".commandmate"):process.cwd();return(0,d.existsSync)(a)||(0,d.mkdirSync)(a,{recursive:!0,mode:448}),h()}},72626:(a,b,c)=>{"use strict";c.d(b,{K:()=>i,h:()=>j});var d=c(87447);let e=[{pattern:/Bearer\s+[A-Za-z0-9\-._~+/]+=*/gi,replacement:"Bearer [REDACTED]"},{pattern:/(password|passwd|pwd)[=:]\s*\S+/gi,replacement:"$1=[REDACTED]"},{pattern:/(token|secret|api_key|apikey|auth)[=:]\s*\S+/gi,replacement:"$1=[REDACTED]"},{pattern:/Authorization:\s*\S+/gi,replacement:"Authorization: [REDACTED]"},{pattern:/-----BEGIN\s+\w+\s+PRIVATE\s+KEY-----[\s\S]*?-----END\s+\w+\s+PRIVATE\s+KEY-----/g,replacement:"[SSH_KEY_REDACTED]"},{pattern:/(\w+:\/\/)[^/@\s]+@/g,replacement:"$1[REDACTED]@"}],f=/password|secret|token|key|auth/i,g={debug:0,info:1,warn:2,error:3};function h(a,b,c,h,i){let j=(0,d.nR)().level;if(g[a]<g[j])return;let k=h?function a(b){if("string"==typeof b){let a=b;for(let{pattern:b,replacement:c}of e)a=a.replace(b,c);return a}if("object"==typeof b&&null!==b){if(Array.isArray(b))return b.map(a);let c={};for(let[d,e]of Object.entries(b))f.test(d)?c[d]="[REDACTED]":c[d]=a(e);return c}return b}(h):void 0,l=function(a){if("json"===(0,d.nR)().format)return JSON.stringify(a);let{timestamp:b,level:c,module:e,action:f,data:g,worktreeId:h,cliToolId:i,requestId:j}=a,k=[h,i].filter(Boolean),l=k.length>0?` [${k.join(":")}]`:"",m=j?` (${j.slice(0,8)})`:"",n=g?` ${JSON.stringify(g)}`:"";return`[${b}] [${c.toUpperCase()}] [${e}]${l}${m} ${f}${n}`}({level:a,module:b,action:c,timestamp:new Date().toISOString(),...i,...k&&{data:k}});switch(a){case"error":console.error(l);break;case"warn":console.warn(l);break;default:console.log(l)}}function i(){return"undefined"!=typeof crypto&&crypto.randomUUID?crypto.randomUUID():"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,a=>{let b=16*Math.random()|0;return("x"===a?b:3&b|8).toString(16)})}function j(a){let b=c=>({debug:(b,d)=>h("debug",a,b,d,c),info:(b,d)=>h("info",a,b,d,c),warn:(b,d)=>h("warn",a,b,d,c),error:(b,d)=>h("error",a,b,d,c),withContext:a=>b({...c,...a})});return b()}},78335:()=>{},87447:(a,b,c)=>{"use strict";c.d(b,{_$:()=>l,_p:()=>i,nR:()=>k});var d=c(33873),e=c.n(d),f=c(20416);let g={CM_ROOT_DIR:"MCBD_ROOT_DIR",CM_PORT:"MCBD_PORT",CM_BIND:"MCBD_BIND",CM_LOG_LEVEL:"MCBD_LOG_LEVEL",CM_LOG_FORMAT:"MCBD_LOG_FORMAT",CM_LOG_DIR:"MCBD_LOG_DIR",CM_DB_PATH:"MCBD_DB_PATH"},h=new Set;function i(a){var b=g[a];let c=process.env[a];if(void 0!==c)return c;let d=process.env[b];return void 0!==d?(h.has(b)||(console.warn(`[DEPRECATED] ${b} is deprecated, use ${a} instead`),h.add(b)),d):void 0}let j=!1;function k(){let a=i("CM_LOG_LEVEL")?.toLowerCase(),b=i("CM_LOG_FORMAT")?.toLowerCase();return{level:void 0!==a&&["debug","info","warn","error"].includes(a)?a:"info",format:"json"===b?"json":"text"}}function l(){let a,b=i("CM_ROOT_DIR")||process.cwd(),c=parseInt(i("CM_PORT")||"3000",10),d=i("CM_BIND")||"127.0.0.1",g=i("CM_DB_PATH"),h=g||function(){let a=process.env.DATABASE_PATH;return a&&!j&&(console.warn("[DEPRECATED] DATABASE_PATH is deprecated. Use CM_DB_PATH instead."),j=!0),a}()||(0,f.$b)();if(!b)throw Error("CM_ROOT_DIR (or MCBD_ROOT_DIR) is required");if(isNaN(c)||c<1||c>65535)throw Error(`Invalid CM_PORT: ${i("CM_PORT")}. Must be between 1 and 65535.`);if("127.0.0.1"!==d&&"0.0.0.0"!==d&&"localhost"!==d)throw Error(`Invalid CM_BIND: ${d}. Must be '127.0.0.1', '0.0.0.0', or 'localhost'.`);try{a=(0,f.Sv)(h)}catch(b){if(void 0!==g){let a=b instanceof Error?b.message:String(b);throw Error(`Invalid CM_DB_PATH: ${a}. Set CM_DB_PATH to an allowed location, or unset it to use the default (${(0,f.$b)()}).`)}console.warn(`[Security] Invalid DB path "${h}", using default.`),a=(0,f.Sv)((0,f.$b)())}return{CM_ROOT_DIR:e().resolve(b),CM_PORT:c,CM_BIND:d,CM_DB_PATH:a}}},96487:()=>{}};
1
+ exports.id=9067,exports.ids=[9067],exports.modules={7956:(a,b,c)=>{"use strict";c.d(b,{ZU:()=>i,fW:()=>k});var d=c(29021),e=c.n(d),f=c(33873),g=c.n(f);let h=["/etc","/usr","/bin","/sbin","/var","/tmp","/dev","/sys","/proc"];function i(a,b){let c=b.endsWith("/")?b.slice(0,-1):b;return a===c||a.startsWith(c+"/")}let j=null;function k(a){let b=g().resolve(a),c=function(a){let b=[],c=a;for(;;)try{let a=e().realpathSync(c);return b.length>0?g().join(a,...b):a}catch{let d=g().dirname(c);if(d===c)return a;b.unshift(g().basename(c)),c=d}}(b);return(function(){if(null!==j)return j;let a=new Set;for(let b of h){a.add(b);try{a.add(e().realpathSync(b))}catch{}}return j=Array.from(a)})().some(a=>i(b,a)||i(c,a))}},15194:(a,b,c)=>{"use strict";c.d(b,{Ab:()=>g,FV:()=>s,NL:()=>r,QP:()=>t,Sj:()=>k,VA:()=>f,XH:()=>d,_J:()=>u,ef:()=>m,hR:()=>n,lu:()=>p,n6:()=>j,oo:()=>o,pL:()=>l,pQ:()=>h,vz:()=>q});let d=["claude","codex","gemini","vibe-local","opencode","copilot","antigravity"],e=new Set(["claude","opencode","copilot"]);function f(a){return e.has(a)}let g=10,h=50,i=/^[a-zA-Z0-9_-]+$/;function j(a){return"string"==typeof a&&a.length>0&&a.length<=64&&i.test(a)}function k(a,b){return!a||a===b}function l(a,b){let c=`${b}-`;return a.startsWith(c)?a.slice(c.length):a}let m={claude:"Claude",codex:"Codex",gemini:"Gemini","vibe-local":"Vibe Local",opencode:"OpenCode",copilot:"Copilot",antigravity:"Antigravity"};function n(a){return d.includes(a)}function o(a){return m[a]??a}function p(a){return a.map((a,b)=>({id:a,cliTool:a,alias:o(a),order:b}))}let q=128,r=2097152;function s(a){return"number"==typeof a&&Number.isInteger(a)&&a>=q&&a<=r}let t=/^[a-zA-Z0-9][a-zA-Z0-9._:/-]*$/;function u(a){return"function"==typeof a.supportsImage&&!0===a.supportsImage()}},20416:(a,b,c)=>{"use strict";c.d(b,{$b:()=>i,Sv:()=>j});var d=c(33873),e=c.n(d),f=c(21820),g=c(48870),h=c(7956);function i(){return(0,g.TJ)()?e().join((0,f.homedir)(),".commandmate","data","cm.db"):e().resolve(process.cwd(),"data","cm.db")}function j(a){let b=e().resolve(a);if((0,g.TJ)()){let a=(0,f.homedir)();if(!(0,h.ZU)(b,a))throw Error(`Security error: DB path must be within home directory: ${b}`)}else if((0,h.fW)(b))throw Error(`Security error: DB path cannot be in system directory: ${b}`);return b}},48870:(a,b,c)=>{"use strict";c.d(b,{GQ:()=>j,TJ:()=>g,Tf:()=>h,WI:()=>i});var d=c(29021),e=c(33873),f=c(21820);function g(){let a=(0,e.dirname)(__dirname);return a.includes("/lib/node_modules/")||a.includes("\\node_modules\\")||a.includes("/node_modules/commandmate")}function h(){let a=(0,e.dirname)(__dirname);return a.includes("/_npx/")||a.includes("\\_npx\\")}function i(){if(g()){let a=(0,e.join)((0,f.homedir)(),".commandmate");if((0,d.existsSync)(a)){let b=(0,d.realpathSync)(a),c=(0,d.realpathSync)((0,f.homedir)());if(!b.startsWith(c))throw Error(`Security error: Config directory ${a} is outside home directory`);return b}return a}let a=process.cwd();return(0,d.realpathSync)(a)}function j(){let a=g()?(0,e.join)((0,f.homedir)(),".commandmate"):process.cwd();return(0,d.existsSync)(a)||(0,d.mkdirSync)(a,{recursive:!0,mode:448}),i()}},72626:(a,b,c)=>{"use strict";c.d(b,{K:()=>i,h:()=>j});var d=c(87447);let e=[{pattern:/Bearer\s+[A-Za-z0-9\-._~+/]+=*/gi,replacement:"Bearer [REDACTED]"},{pattern:/(password|passwd|pwd)[=:]\s*\S+/gi,replacement:"$1=[REDACTED]"},{pattern:/(token|secret|api_key|apikey|auth)[=:]\s*\S+/gi,replacement:"$1=[REDACTED]"},{pattern:/Authorization:\s*\S+/gi,replacement:"Authorization: [REDACTED]"},{pattern:/-----BEGIN\s+\w+\s+PRIVATE\s+KEY-----[\s\S]*?-----END\s+\w+\s+PRIVATE\s+KEY-----/g,replacement:"[SSH_KEY_REDACTED]"},{pattern:/(\w+:\/\/)[^/@\s]+@/g,replacement:"$1[REDACTED]@"}],f=/password|secret|token|key|auth/i,g={debug:0,info:1,warn:2,error:3};function h(a,b,c,h,i){let j=(0,d.nR)().level;if(g[a]<g[j])return;let k=h?function a(b){if("string"==typeof b){let a=b;for(let{pattern:b,replacement:c}of e)a=a.replace(b,c);return a}if("object"==typeof b&&null!==b){if(Array.isArray(b))return b.map(a);let c={};for(let[d,e]of Object.entries(b))f.test(d)?c[d]="[REDACTED]":c[d]=a(e);return c}return b}(h):void 0,l=function(a){if("json"===(0,d.nR)().format)return JSON.stringify(a);let{timestamp:b,level:c,module:e,action:f,data:g,worktreeId:h,cliToolId:i,requestId:j}=a,k=[h,i].filter(Boolean),l=k.length>0?` [${k.join(":")}]`:"",m=j?` (${j.slice(0,8)})`:"",n=g?` ${JSON.stringify(g)}`:"";return`[${b}] [${c.toUpperCase()}] [${e}]${l}${m} ${f}${n}`}({level:a,module:b,action:c,timestamp:new Date().toISOString(),...i,...k&&{data:k}});switch(a){case"error":console.error(l);break;case"warn":console.warn(l);break;default:console.log(l)}}function i(){return"undefined"!=typeof crypto&&crypto.randomUUID?crypto.randomUUID():"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,a=>{let b=16*Math.random()|0;return("x"===a?b:3&b|8).toString(16)})}function j(a){let b=c=>({debug:(b,d)=>h("debug",a,b,d,c),info:(b,d)=>h("info",a,b,d,c),warn:(b,d)=>h("warn",a,b,d,c),error:(b,d)=>h("error",a,b,d,c),withContext:a=>b({...c,...a})});return b()}},78335:()=>{},87447:(a,b,c)=>{"use strict";c.d(b,{_$:()=>l,_p:()=>i,nR:()=>k});var d=c(33873),e=c.n(d),f=c(20416);let g={CM_ROOT_DIR:"MCBD_ROOT_DIR",CM_PORT:"MCBD_PORT",CM_BIND:"MCBD_BIND",CM_LOG_LEVEL:"MCBD_LOG_LEVEL",CM_LOG_FORMAT:"MCBD_LOG_FORMAT",CM_LOG_DIR:"MCBD_LOG_DIR",CM_DB_PATH:"MCBD_DB_PATH"},h=new Set;function i(a){var b=g[a];let c=process.env[a];if(void 0!==c)return c;let d=process.env[b];return void 0!==d?(h.has(b)||(console.warn(`[DEPRECATED] ${b} is deprecated, use ${a} instead`),h.add(b)),d):void 0}let j=!1;function k(){let a=i("CM_LOG_LEVEL")?.toLowerCase(),b=i("CM_LOG_FORMAT")?.toLowerCase();return{level:void 0!==a&&["debug","info","warn","error"].includes(a)?a:"info",format:"json"===b?"json":"text"}}function l(){let a,b=i("CM_ROOT_DIR")||process.cwd(),c=parseInt(i("CM_PORT")||"3000",10),d=i("CM_BIND")||"127.0.0.1",g=i("CM_DB_PATH"),h=g||function(){let a=process.env.DATABASE_PATH;return a&&!j&&(console.warn("[DEPRECATED] DATABASE_PATH is deprecated. Use CM_DB_PATH instead."),j=!0),a}()||(0,f.$b)();if(!b)throw Error("CM_ROOT_DIR (or MCBD_ROOT_DIR) is required");if(isNaN(c)||c<1||c>65535)throw Error(`Invalid CM_PORT: ${i("CM_PORT")}. Must be between 1 and 65535.`);if("127.0.0.1"!==d&&"0.0.0.0"!==d&&"localhost"!==d)throw Error(`Invalid CM_BIND: ${d}. Must be '127.0.0.1', '0.0.0.0', or 'localhost'.`);try{a=(0,f.Sv)(h)}catch(b){if(void 0!==g){let a=b instanceof Error?b.message:String(b);throw Error(`Invalid CM_DB_PATH: ${a}. Set CM_DB_PATH to an allowed location, or unset it to use the default (${(0,f.$b)()}).`)}console.warn(`[Security] Invalid DB path "${h}", using default.`),a=(0,f.Sv)((0,f.$b)())}return{CM_ROOT_DIR:e().resolve(b),CM_PORT:c,CM_BIND:d,CM_DB_PATH:a}}},96487:()=>{}};
@@ -17,11 +17,11 @@
17
17
  "wasm": [],
18
18
  "assets": [],
19
19
  "env": {
20
- "__NEXT_BUILD_ID": "uBCIYS1Hth7V4unroKqGu",
21
- "NEXT_SERVER_ACTIONS_ENCRYPTION_KEY": "3zyx1JRyA202ce4qzM2CwV/35oxN2TaxiQH3hSAtPTM=",
22
- "__NEXT_PREVIEW_MODE_ID": "e6dc15a1dbdb111f7e6a3da4b3e323ca",
23
- "__NEXT_PREVIEW_MODE_SIGNING_KEY": "064885d60dd5e22c524990d6dbafa0cb0ef34732d44e9e932a9a4dc7de61694e",
24
- "__NEXT_PREVIEW_MODE_ENCRYPTION_KEY": "955096c8842e550e02a8cf17e8135173659f4c43b6b3eab3959064e867a38845"
20
+ "__NEXT_BUILD_ID": "8yp8SRJ9h3Uj75SpHLYpl",
21
+ "NEXT_SERVER_ACTIONS_ENCRYPTION_KEY": "mlqUSE6Qa+N1TJyS30hvwf3cCDMmeoC3JKdp5i0HekE=",
22
+ "__NEXT_PREVIEW_MODE_ID": "d6f8e4d6391b882b68a729e53cd429b4",
23
+ "__NEXT_PREVIEW_MODE_SIGNING_KEY": "16c925f05f29122118e0d8e4d142bb78b2f090791b333b81574b31e4744b7c45",
24
+ "__NEXT_PREVIEW_MODE_ENCRYPTION_KEY": "8383ed64bbd07689ed82af00ed9c1e99c8c4bb657a87e7c35e910377cca7ffac"
25
25
  }
26
26
  }
27
27
  },
@@ -1 +1 @@
1
- <!DOCTYPE html><html><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width" data-next-head=""/><title data-next-head="">500: Internal Server Error</title><noscript data-n-css=""></noscript><script defer="" noModule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-4fbc38b2e3abb013.js" defer=""></script><script src="/_next/static/chunks/framework-eaf13c96191cb608.js" defer=""></script><script src="/_next/static/chunks/main-6092074a0dc78280.js" defer=""></script><script src="/_next/static/chunks/pages/_app-4b3fb5e477a0267f.js" defer=""></script><script src="/_next/static/chunks/pages/_error-c970d8b55ace1b48.js" defer=""></script><script src="/_next/static/uBCIYS1Hth7V4unroKqGu/_buildManifest.js" defer=""></script><script src="/_next/static/uBCIYS1Hth7V4unroKqGu/_ssgManifest.js" defer=""></script></head><body><div id="__next"><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div style="line-height:48px"><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top">500</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:28px">Internal Server Error<!-- -->.</h2></div></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":500}},"page":"/_error","query":{},"buildId":"uBCIYS1Hth7V4unroKqGu","nextExport":true,"isFallback":false,"gip":true,"scriptLoader":[]}</script></body></html>
1
+ <!DOCTYPE html><html><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width" data-next-head=""/><title data-next-head="">500: Internal Server Error</title><noscript data-n-css=""></noscript><script defer="" noModule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-4fbc38b2e3abb013.js" defer=""></script><script src="/_next/static/chunks/framework-eaf13c96191cb608.js" defer=""></script><script src="/_next/static/chunks/main-6092074a0dc78280.js" defer=""></script><script src="/_next/static/chunks/pages/_app-4b3fb5e477a0267f.js" defer=""></script><script src="/_next/static/chunks/pages/_error-c970d8b55ace1b48.js" defer=""></script><script src="/_next/static/8yp8SRJ9h3Uj75SpHLYpl/_buildManifest.js" defer=""></script><script src="/_next/static/8yp8SRJ9h3Uj75SpHLYpl/_ssgManifest.js" defer=""></script></head><body><div id="__next"><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div style="line-height:48px"><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top">500</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:28px">Internal Server Error<!-- -->.</h2></div></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":500}},"page":"/_error","query":{},"buildId":"8yp8SRJ9h3Uj75SpHLYpl","nextExport":true,"isFallback":false,"gip":true,"scriptLoader":[]}</script></body></html>
@@ -1 +1 @@
1
- {"node":{},"edge":{},"encryptionKey":"3zyx1JRyA202ce4qzM2CwV/35oxN2TaxiQH3hSAtPTM="}
1
+ {"node":{},"edge":{},"encryptionKey":"mlqUSE6Qa+N1TJyS30hvwf3cCDMmeoC3JKdp5i0HekE="}