github-issue-tower-defence-management 1.112.2 → 1.112.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +14 -0
- package/README.md +5 -8
- package/bin/adapter/entry-points/console/ui-dist/assets/{index-BMjm7L0w.js → index-CjYyb4uX.js} +1 -1
- package/bin/adapter/entry-points/console/ui-dist/assets/index-D08V4Rj3.css +1 -0
- package/bin/adapter/entry-points/console/ui-dist/index.html +2 -2
- package/bin/adapter/entry-points/handlers/HandleScheduledEventUseCaseHandler.js +2 -9
- package/bin/adapter/entry-points/handlers/HandleScheduledEventUseCaseHandler.js.map +1 -1
- package/bin/adapter/repositories/ConfigurableSilentSessionMessageComposer.js +0 -6
- package/bin/adapter/repositories/ConfigurableSilentSessionMessageComposer.js.map +1 -1
- package/bin/adapter/repositories/TranscriptOwnerCallStatusProvider.js +26 -1
- package/bin/adapter/repositories/TranscriptOwnerCallStatusProvider.js.map +1 -1
- package/bin/domain/usecases/DefaultSilentSessionMessageComposer.js +0 -9
- package/bin/domain/usecases/DefaultSilentSessionMessageComposer.js.map +1 -1
- package/bin/domain/usecases/NotifySilentLiveSessionsUseCase.js +3 -13
- package/bin/domain/usecases/NotifySilentLiveSessionsUseCase.js.map +1 -1
- package/package.json +1 -1
- package/src/adapter/entry-points/console/ui/src/features/console/components/detail/ConsoleItemDetail.stories.tsx +1 -1
- package/src/adapter/entry-points/console/ui/src/features/console/components/detail/ConsoleItemDetail.test.tsx +13 -0
- package/src/adapter/entry-points/console/ui/src/features/console/components/detail/ConsoleItemDetail.tsx +12 -13
- package/src/adapter/entry-points/console/ui/src/index.css +68 -48
- package/src/adapter/entry-points/console/ui-dist/assets/{index-BMjm7L0w.js → index-CjYyb4uX.js} +1 -1
- package/src/adapter/entry-points/console/ui-dist/assets/index-D08V4Rj3.css +1 -0
- package/src/adapter/entry-points/console/ui-dist/index.html +2 -2
- package/src/adapter/entry-points/handlers/HandleScheduledEventUseCaseHandler.ts +0 -5
- package/src/adapter/entry-points/handlers/notifySilentTmuxSessions.test.ts +2 -42
- package/src/adapter/repositories/ConfigurableSilentSessionMessageComposer.test.ts +0 -44
- package/src/adapter/repositories/ConfigurableSilentSessionMessageComposer.ts +0 -8
- package/src/adapter/repositories/GoogleSpreadsheetRepository.integration.test.ts +4 -4
- package/src/adapter/repositories/GraphqlProjectRepository.test.ts +4 -2
- package/src/adapter/repositories/KySlackRepository.test.ts +5 -4
- package/src/adapter/repositories/TranscriptOwnerCallStatusProvider.test.ts +90 -0
- package/src/adapter/repositories/TranscriptOwnerCallStatusProvider.ts +29 -1
- package/src/adapter/repositories/issue/ApiV3IssueRepository.test.ts +6 -2
- package/src/domain/usecases/DefaultSilentSessionMessageComposer.test.ts +1 -17
- package/src/domain/usecases/DefaultSilentSessionMessageComposer.ts +0 -11
- package/src/domain/usecases/NotifySilentLiveSessionsUseCase.test.ts +2 -62
- package/src/domain/usecases/NotifySilentLiveSessionsUseCase.ts +7 -20
- package/src/domain/usecases/adapter-interfaces/SilentSessionMessageComposer.ts +0 -1
- package/types/adapter/entry-points/handlers/HandleScheduledEventUseCaseHandler.d.ts.map +1 -1
- package/types/adapter/repositories/ConfigurableSilentSessionMessageComposer.d.ts +0 -2
- package/types/adapter/repositories/ConfigurableSilentSessionMessageComposer.d.ts.map +1 -1
- package/types/adapter/repositories/TranscriptOwnerCallStatusProvider.d.ts.map +1 -1
- package/types/domain/usecases/DefaultSilentSessionMessageComposer.d.ts +0 -1
- package/types/domain/usecases/DefaultSilentSessionMessageComposer.d.ts.map +1 -1
- package/types/domain/usecases/NotifySilentLiveSessionsUseCase.d.ts.map +1 -1
- package/types/domain/usecases/adapter-interfaces/SilentSessionMessageComposer.d.ts +0 -1
- package/types/domain/usecases/adapter-interfaces/SilentSessionMessageComposer.d.ts.map +1 -1
- package/bin/adapter/entry-points/console/ui-dist/assets/index-BNPHMdzv.css +0 -1
- package/src/adapter/entry-points/console/ui-dist/assets/index-BNPHMdzv.css +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,17 @@
|
|
|
1
|
+
## [1.112.4](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/compare/v1.112.3...v1.112.4) (2026-06-28)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Bug Fixes
|
|
5
|
+
|
|
6
|
+
* **console:** halve desktop font, full-box commit expand click, status in header ([#1052](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/issues/1052)) ([291d9ba](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/commit/291d9baea2d61273eebebdcc5119f9c7110dcb76)), closes [#1050](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/issues/1050)
|
|
7
|
+
|
|
8
|
+
## [1.112.3](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/compare/v1.112.2...v1.112.3) (2026-06-28)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Bug Fixes
|
|
12
|
+
|
|
13
|
+
* **schedule:** remove owner re-notification path and count only genuine human owner replies ([#1049](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/issues/1049)) ([5809680](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/commit/580968033320347badfe3a6f1237f9bbd0f876ad)), closes [#1047](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/issues/1047)
|
|
14
|
+
|
|
1
15
|
## [1.112.2](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/compare/v1.112.1...v1.112.2) (2026-06-28)
|
|
2
16
|
|
|
3
17
|
|
package/README.md
CHANGED
|
@@ -287,15 +287,14 @@ inTmuxLauncherCommand?: string # Optional: Launcher command that starts an inter
|
|
|
287
287
|
silentNotificationEnabled?: boolean # Optional: Master switch for the silent live session self-check notification. The step is a no-op unless this is `true` (or the `TDPM_SILENT_NOTIFICATION_ENABLED` environment variable equals the string `true`). This gate prevents the step from acting automatically when the daemon is run with a default configuration; it must be explicitly turned on. Default false
|
|
288
288
|
subAgentOutputRootDirectory?: string # Optional: Root directory holding one output file per sub-process (file name derived from the sub-process label). The modification time of each file is read to compute how long the sub-process output has been idle. When unset, sub-process idle time is reported as 0 and only the running-time threshold can trigger a sub-process notification
|
|
289
289
|
subAgentProcessMatchPattern?: string # Optional: Regular expression matched against each process command line to discover the sub-processes that belong to a monitored session. The expression must define a named capture group `session` whose value equals the monitored session name, and may define a named capture group `label` used as the display name. When unset, the sub-process check is skipped
|
|
290
|
-
ownerCallMarker?: string # Optional: Marker substring that identifies an assistant message asking the owner for a decision or confirmation. When set, a session
|
|
290
|
+
ownerCallMarker?: string # Optional: Marker substring that identifies an assistant message asking the owner for a decision or confirmation. When set, the main-session stalled section is suppressed while a session's latest marker-bearing assistant message is newer (by full timestamp) than its latest genuine owner reply. When unset, no session is treated as waiting on the owner
|
|
291
291
|
subAgentTranscriptRootDirectory?: string # Optional: Root directory under which each session has a `<sessionName>/subagents/` directory holding one `agent-<id>.jsonl` transcript per sub-agent. A sub-agent whose latest transcript entry reports a `stop_reason` of `end_turn` or `stop_sequence` is treated as finished and skipped; for any other sub-agent the idle time is computed from the transcript file modification time (following symlinks) and the running time from its first entry timestamp. When set, this transcript-based discovery is used instead of `subAgentProcessMatchPattern`. When unset, the process-match discovery is used
|
|
292
|
-
mainSilentThresholdSeconds?: number # Optional: Seconds of main-session output silence after which the main-session self-check section is sent.
|
|
292
|
+
mainSilentThresholdSeconds?: number # Optional: Seconds of main-session output silence after which the main-session self-check section is sent. Default 600
|
|
293
293
|
subAgentSilentThresholdSeconds?: number # Optional: Seconds of sub-process output silence after which the sub-process section is sent. Default 300
|
|
294
294
|
subAgentRunningThresholdSeconds?: number # Optional: Seconds a sub-process may run before the sub-process section is sent regardless of its output silence. Default 900
|
|
295
295
|
silentNotificationCooldownSeconds?: number # Optional: Minimum seconds between notifications to the same session. Default 1800
|
|
296
296
|
silentNotificationStaggerSeconds?: number # Optional: Seconds to wait between consecutive session notifications within one cycle, so the targets are notified sequentially rather than all at once. Default 25
|
|
297
297
|
silentMainStalledMessage?: string # Optional: Overrides the body of the main-session stalled section. When unset, a generic built-in message is used
|
|
298
|
-
silentOwnerReNotificationMessage?: string # Optional: Overrides the body of the owner-re-notification section sent to a session that has been waiting on the owner past `mainSilentThresholdSeconds`. When unset, a generic built-in message is used that instructs the agent to re-raise its pending call-to-user and states the injected message is not the owner replying
|
|
299
298
|
silentSubAgentMessageHeader?: string # Optional: Overrides the line shown above the sub-process list in the sub-process section. When unset, a generic built-in line is used
|
|
300
299
|
silentSubAgentMessageFooter?: string # Optional: Overrides the line shown below the sub-process list in the sub-process section. When unset, a generic built-in line is used
|
|
301
300
|
changeTargetPathAliases?: # Optional: Map of short alias keys to full repository-root-relative directory paths. Allows `change-target:<alias>` labels to reference deeply nested paths that exceed GitHub's 50-character label limit. When a `change-target:` label's value matches a key in this map, it is expanded to the corresponding full path before confinement checking. Values with leading or trailing slashes are normalized automatically. Example below
|
|
@@ -555,19 +554,17 @@ For each `In Tmux by human` issue with no live session, the reconciler launches
|
|
|
555
554
|
|
|
556
555
|
## Silent Live Session Notification
|
|
557
556
|
|
|
558
|
-
Each schedule cycle, when `silentNotificationEnabled` is true, also inspects every live interactive Claude Code session and sends a short reminder into a session via `tmux send-keys
|
|
557
|
+
Each schedule cycle, when `silentNotificationEnabled` is true, also inspects every live interactive Claude Code session and sends a short self-check reminder into a session via `tmux send-keys` when either of two independent conditions holds. The reminder is composed of only the sections whose condition is met, so a session receives one combined message containing one or both sections. When `silentNotificationEnabled` is not set, the entire step is a no-op even if the daemon picks up its configuration automatically.
|
|
559
558
|
|
|
560
559
|
Sessions are selected purely from the live process tree, independently of session naming or any GitHub issue linkage: every live tmux session is taken, the descendants of each session's pane processes are walked, and the first descendant that is an interactive Claude Code process (its command line contains `claude` and does not contain the owner-handover marker `Take ownership of`, and its environment exposes both `CLAUDE_CODE_SESSION_ID` and `CLAUDE_CONFIG_DIR`) is taken as that session's process. Both issue-url-named sessions and plain-named sessions (for example `workbench`) are selected equally. Because the walk is anchored on tmux panes, background owner-handover spawns, the preparation daemon, and monitor processes — none of which run inside an interactive tmux pane — are excluded; the owner-handover marker check is an additional guard. Each selected session's transcript is then resolved from its process environment as `<CLAUDE_CONFIG_DIR>/projects/<cwd-slug>/<CLAUDE_CODE_SESSION_ID>.jsonl` (the most recently modified match is used when several exist), so a session that has no issue URL resolves just as reliably as one that does.
|
|
561
560
|
|
|
562
|
-
The main-session stalled section is sent when the session's main output has been idle for at least `mainSilentThresholdSeconds
|
|
563
|
-
|
|
564
|
-
The owner-re-notification section replaces the old "suppress and stay silent" behavior for a session that is waiting on the owner. A session waiting on the owner must not be left silent indefinitely, because the owner is only notified when a fresh call-to-user is raised; a single past call-to-user that has gone quiet never reaches them. So when a session is waiting on the owner (an unanswered `ownerCallMarker` call) AND its silence has reached `mainSilentThresholdSeconds`, the monitor sends the owner-re-notification section instead of suppressing. That section instructs the agent to re-raise / re-emit its pending call-to-user now so the owner's call-to-user marker re-fires, and it explicitly states that the injected message is not the owner replying and must not be treated as an owner answer; it does not tell the agent it is stalled or idle, because the session is correctly waiting. Like the other sections it carries the `[TDPM_SILENT_SESSION_SELF_CHECK_REMINDER]` sentinel, so the re-notification itself is never miscounted as an owner reply. The per-session cooldown (`silentNotificationCooldownSeconds`, default 1800 seconds) limits the owner to being re-reminded at most about once every 30 minutes, and the re-notification stops automatically once the owner actually replies, because a genuine owner reply clears the unanswered-owner-call condition. Both this section and the main-session stalled section default to a generic built-in message and can be overridden with `silentOwnerReNotificationMessage` and `silentMainStalledMessage` respectively.
|
|
561
|
+
The main-session stalled section is sent when the session's main output has been idle for at least `mainSilentThresholdSeconds`, unless the session is currently waiting on the owner (in that case the silence is expected and the section is suppressed). Idle time is computed from the timestamp of the latest `assistant` entry in the session's resolved transcript rather than from the transcript file modification time, so a transcript that is only updated by tool results or owner replies still counts as silent. Whether a session is waiting on the owner is determined through an injectable port; the built-in default reports no session as waiting, so the suppression is only applied when a host provides an implementation. When `ownerCallMarker` is configured, a transcript-based implementation is used: it reads each session's resolved transcript and treats the session as waiting on the owner when the latest entry containing `ownerCallMarker` is newer (by full timestamp) than the latest genuine owner reply. A self-check reminder that the monitor injects into a session via `tmux send-keys` itself lands in that session's transcript as a `user` text entry; every injected reminder carries a fixed sentinel tag (`[TDPM_SILENT_SESSION_SELF_CHECK_REMINDER]`), and a `user` entry whose text contains that sentinel is not counted as a genuine owner reply. This prevents the monitor's own reminder from being mistaken for the owner answering, which would otherwise make a genuinely waiting session stop being suppressed.
|
|
565
562
|
|
|
566
563
|
The sub-process section is sent, regardless of main output, when at least one sub-process of the session has been output-idle for `subAgentSilentThresholdSeconds` or has been running for `subAgentRunningThresholdSeconds`; the message lists each matched sub-process with its idle and running minutes. Sub-processes are discovered in one of two ways: when `subAgentTranscriptRootDirectory` is configured, each session's `subagents/agent-<id>.jsonl` transcripts are scanned, finished sub-agents (latest transcript entry `stop_reason` equal to `end_turn` or `stop_sequence`) are skipped, and idle time is taken from the transcript file modification time (following symlinks) while running time is taken from its first entry timestamp; otherwise sub-processes are discovered by matching `subAgentProcessMatchPattern` against process command lines.
|
|
567
564
|
|
|
568
565
|
A per-session cooldown (`silentNotificationCooldownSeconds`) prevents repeated notifications, persisted via the cache. Because the scheduled handler runs once per project but the silent-session monitor inspects the single global set of live tmux sessions, this cooldown is stored in a single project-independent cache scope (a fixed shared path rather than the per-project cache directory). This way the 30-minute cooldown is shared across every per-project pass and a session is notified at most once per cooldown window even when several projects are enabled; all other per-project caches are unaffected. When more than one session is notified in the same cycle, the sends are spaced out sequentially with `silentNotificationStaggerSeconds` between consecutive sends (no wait before the first or after the last) so the targets are not all triggered at once. Process-snapshot collection, transcript resolution, owner-call detection, the wait between sends, and the message wording are all performed through injectable ports, so the logic is unit-testable without touching the host, and the host-specific process and environment access, sub-process pattern, and message wording are supplied through adapters or configuration. When `silentNotificationEnabled` is not true the step is a no-op, and any error during the step is logged and swallowed so the schedule cycle is never affected.
|
|
569
566
|
|
|
570
|
-
Each config key above has a matching environment variable read when the config key is unset: `TDPM_SILENT_NOTIFICATION_ENABLED` (the string `true` enables the step), `TDPM_SILENT_OWNER_CALL_MARKER`, `TDPM_SUBAGENT_OUTPUT_ROOT_DIRECTORY`, `TDPM_SUBAGENT_PROCESS_MATCH_PATTERN`, `TDPM_SUBAGENT_TRANSCRIPT_ROOT_DIRECTORY`, `TDPM_MAIN_SILENT_THRESHOLD_SECONDS`, `TDPM_SUBAGENT_SILENT_THRESHOLD_SECONDS`, `TDPM_SUBAGENT_RUNNING_THRESHOLD_SECONDS`, `TDPM_SILENT_NOTIFICATION_COOLDOWN_SECONDS`, `TDPM_SILENT_NOTIFICATION_STAGGER_SECONDS`, `TDPM_SILENT_MAIN_STALLED_MESSAGE`, `
|
|
567
|
+
Each config key above has a matching environment variable read when the config key is unset: `TDPM_SILENT_NOTIFICATION_ENABLED` (the string `true` enables the step), `TDPM_SILENT_OWNER_CALL_MARKER`, `TDPM_SUBAGENT_OUTPUT_ROOT_DIRECTORY`, `TDPM_SUBAGENT_PROCESS_MATCH_PATTERN`, `TDPM_SUBAGENT_TRANSCRIPT_ROOT_DIRECTORY`, `TDPM_MAIN_SILENT_THRESHOLD_SECONDS`, `TDPM_SUBAGENT_SILENT_THRESHOLD_SECONDS`, `TDPM_SUBAGENT_RUNNING_THRESHOLD_SECONDS`, `TDPM_SILENT_NOTIFICATION_COOLDOWN_SECONDS`, `TDPM_SILENT_NOTIFICATION_STAGGER_SECONDS`, `TDPM_SILENT_MAIN_STALLED_MESSAGE`, `TDPM_SILENT_SUBAGENT_MESSAGE_HEADER`, and `TDPM_SILENT_SUBAGENT_MESSAGE_FOOTER`.
|
|
571
568
|
|
|
572
569
|
## Token Rotation Order File
|
|
573
570
|
|
package/bin/adapter/entry-points/console/ui-dist/assets/{index-BMjm7L0w.js → index-CjYyb4uX.js}
RENAMED
|
@@ -98,4 +98,4 @@ Please report this to https://github.com/markedjs/marked.`,o){const c="<p>An err
|
|
|
98
98
|
`)}),d+=1,r=[])};for(const b of o){if(c===null&&/^```mermaid\s*$/.test(b.trim())){m(),c=[];continue}if(c!==null){if(b.trim()==="```"){u.push({kind:"mermaid",key:`mermaid:${d}`,code:c.join(`
|
|
99
99
|
`)}),d+=1,c=null;continue}c.push(b);continue}r.push(b)}return c!==null&&r.push("```mermaid",...c),m(),u},yv="https://cdn.jsdelivr.net/npm/mermaid@10.9.6/dist/mermaid.min.js";let yi=null,fp=0;const dp=i=>(i.initialize({startOnLoad:!1,securityLevel:"strict",theme:"dark",themeVariables:{background:"#0d1117",primaryColor:"#161b22",primaryTextColor:"#e6edf3",primaryBorderColor:"#30363d",lineColor:"#8b949e",fontSize:"14px"}}),i),vv=()=>yi!==null?yi:window.mermaid!==void 0?(yi=Promise.resolve(dp(window.mermaid)),yi):(yi=new Promise((i,o)=>{const u=document.createElement("script");u.src=yv,u.async=!0,u.onload=()=>{if(window.mermaid===void 0){o(new Error("mermaid failed to load"));return}i(dp(window.mermaid))},u.onerror=()=>o(new Error("mermaid script failed to load")),document.head.appendChild(u)}),yi),Sv=async i=>{const o=await vv();fp+=1;const u=`console-mermaid-${fp}`,{svg:r}=await o.render(u,i);return Hp.sanitize(r,{USE_PROFILES:{svg:!0,svgFilters:!0},ADD_TAGS:["foreignObject"]})},Tv=({code:i})=>{const[o,u]=q.useState({status:"loading"}),r=q.useRef(null);return q.useEffect(()=>{let c=!1;return u({status:"loading"}),Sv(i).then(d=>{c||u({status:"ready",svg:d})}).catch(d=>{c||u({status:"error",message:d instanceof Error?d.message:String(d)})}),()=>{c=!0}},[i]),q.useEffect(()=>{const c=r.current;c!==null&&(c.innerHTML=o.status==="ready"?o.svg:"")},[o]),o.status==="loading"?v.jsx("div",{className:"console-mermaid-loading",children:"Rendering diagram..."}):o.status==="error"?v.jsxs("div",{className:"console-mermaid",children:[v.jsxs("div",{className:"console-mermaid-error",children:["Mermaid render error: ",o.message]}),v.jsx("pre",{className:"console-mermaid-source",children:v.jsx("code",{children:i})})]}):v.jsx("div",{ref:r,className:"console-mermaid-rendered"})},wv=({source:i,buildImageProxyUrl:o})=>{const u=q.useMemo(()=>{const c=_v(i);return o===void 0?c:Py(c,o)},[i,o]),r=q.useRef(null);return q.useEffect(()=>{const c=r.current;c!==null&&(c.innerHTML=u)},[u]),v.jsx("div",{ref:r,className:"console-markdown"})},dr=({body:i,buildImageProxyUrl:o})=>{const u=q.useMemo(()=>bv(i),[i]);return i.trim()===""?v.jsx("p",{className:"console-markdown-empty",children:"No description provided."}):v.jsx("div",{className:"console-markdown-view",children:u.map(r=>r.kind==="mermaid"?v.jsx(Tv,{code:r.code},r.key):v.jsx(wv,{source:r.source,buildImageProxyUrl:o},r.key))})},xv=({isPr:i,now:o,onSubmit:u})=>{const[r,c]=q.useState(!i),[d,m]=q.useState(""),[b,g]=q.useState({kind:"idle"}),[p,E]=q.useState([]),x=async()=>{const O=d.trim();if(!(O.length===0||b.kind==="posting")){g({kind:"posting"});try{const B=await u(O);E(H=>[...H,B]),m(""),g({kind:"idle"})}catch(B){g({kind:"error",message:B instanceof Error?B.message:"failed to post"})}}};return v.jsxs("div",{className:"console-composer",children:[v.jsx("button",{type:"button",className:"console-composer-toggle","aria-expanded":r,onClick:()=>c(O=>!O),children:r?"✕ Cancel":"💬 Add a comment"}),p.length>0&&v.jsx("div",{className:"console-composer-posted",children:p.map(O=>v.jsxs("article",{className:"console-comment",children:[v.jsxs("header",{className:"console-comment-header",title:Lc(O.createdAt),children:[v.jsx("span",{className:"console-comment-author",children:O.author===""?"you":O.author}),v.jsx("span",{className:"console-comment-time",children:Oo(O.createdAt,o)})]}),v.jsx(dr,{body:O.body})]},`${O.author}:${O.createdAt}:${O.body}`))}),r&&v.jsxs("div",{className:"console-composer-form",children:[v.jsx("textarea",{className:"console-composer-input",rows:3,placeholder:"Leave a comment…",value:d,onChange:O=>m(O.target.value)}),v.jsxs("div",{className:"console-composer-row",children:[v.jsx("button",{type:"button",className:"console-composer-submit",disabled:b.kind==="posting",onClick:()=>{x()},children:"Comment"}),b.kind==="posting"&&v.jsx("span",{className:"console-composer-status",children:"Posting…"}),b.kind==="error"&&v.jsxs("span",{role:"alert",className:"console-composer-status console-composer-error",children:["Failed: ",b.message]})]})]})]})},va=({title:i,count:o=null,defaultCollapsed:u=!1,headerAction:r,children:c})=>{const[d,m]=q.useState(u),b=o===null?i:`${i} (${o})`;return v.jsxs("section",{className:"console-panel",children:[v.jsxs("header",{className:"console-panel-header",children:[v.jsxs("button",{type:"button",className:"console-panel-toggle","aria-expanded":!d,onClick:()=>m(g=>!g),children:[v.jsx("span",{className:"console-panel-caret",children:d?"▸":"▾"}),v.jsx("span",{className:"console-panel-title",children:b})]}),r!==void 0&&v.jsx("div",{className:"console-panel-action",children:r})]}),!d&&v.jsx("div",{className:"console-panel-body",children:c})]})},Ev=i=>{switch(i){case"added":return{label:"A",color:"#3fb950"};case"modified":return{label:"M",color:"#d29922"};case"removed":return{label:"D",color:"#f85149"};case"renamed":return{label:"R",color:"#a371f7"};case"changed":return{label:"M",color:"#d29922"};default:return{label:"?",color:"#8b949e"}}},Av=/^@@ -(\d+)(?:,\d+)? \+(\d+)(?:,\d+)? @@/,kv=i=>{const o=[];let u=0,r=0;for(const c of i.split(`
|
|
100
100
|
`)){if(c.startsWith("@@")){const d=c.match(Av);d!==null&&(u=Number(d[1]),r=Number(d[2])),o.push({kind:"hunk",oldLineNumber:null,newLineNumber:null,content:c});continue}if(c.startsWith("+")){o.push({kind:"add",oldLineNumber:null,newLineNumber:r,content:c}),r+=1;continue}if(c.startsWith("-")){o.push({kind:"del",oldLineNumber:u,newLineNumber:null,content:c}),u+=1;continue}o.push({kind:"ctx",oldLineNumber:u,newLineNumber:r,content:c}),u+=1,r+=1}return o},zv=i=>i.kind==="add"||i.kind==="ctx"?i.newLineNumber===null?null:{line:i.newLineNumber,side:"RIGHT"}:i.kind==="del"?i.oldLineNumber===null?null:{line:i.oldLineNumber,side:"LEFT"}:null,Nv=i=>`${i.kind}:${i.oldLineNumber??"x"}:${i.newLineNumber??"x"}:${i.content}`,Ov=({target:i,onSubmit:o,onClose:u})=>{const[r,c]=q.useState(""),[d,m]=q.useState({kind:"idle"}),b=async()=>{const g=r.trim();if(!(g.length===0||d.kind==="posting")){m({kind:"posting"});try{await o(i.path,i.line,i.side,g),c(""),m({kind:"posted"})}catch(p){m({kind:"error",message:p instanceof Error?p.message:"failed to post"})}}};return v.jsxs("div",{className:"console-diff-composer",children:[v.jsxs("div",{className:"console-diff-composer-anchor",children:["commenting on line ",i.line," (",i.side,")"]}),d.kind==="posted"?v.jsx("p",{className:"console-diff-composer-posted",children:"Comment posted."}):v.jsxs(v.Fragment,{children:[v.jsx("textarea",{className:"console-diff-composer-input",rows:3,placeholder:"Leave a review comment on this line…",value:r,onChange:g=>c(g.target.value)}),v.jsxs("div",{className:"console-diff-composer-controls",children:[v.jsx("button",{type:"button",className:"console-diff-composer-submit",disabled:d.kind==="posting",onClick:()=>{b()},children:"Comment"}),v.jsx("button",{type:"button",className:"console-diff-composer-cancel",onClick:u,children:"Cancel"}),d.kind==="posting"&&v.jsx("span",{className:"console-diff-composer-status",children:"Posting…"}),d.kind==="error"&&v.jsxs("span",{role:"alert",className:"console-diff-composer-status console-diff-composer-error",children:["Failed: ",d.message]})]})]})]})},Cv=({patch:i,path:o,onAddInlineComment:u})=>{const[r,c]=q.useState(null);if(i===null||i==="")return v.jsx("p",{className:"console-file-diff-empty",children:"(no diff / binary or too large)"});const d=kv(i),m=u!==void 0&&o!==void 0&&o.length>0,b=m?4:3;return v.jsx("table",{className:"console-file-diff",children:v.jsx("tbody",{children:d.map(g=>{const p=Nv(g),E=m?zv(g):null,x=r!==null&&E!==null&&r.line===E.line&&r.side===E.side;return v.jsxs(q.Fragment,{children:[v.jsxs("tr",{className:`console-diff-row console-diff-${g.kind}`,children:[m&&v.jsx("td",{className:"console-diff-comment-cell",children:E!==null&&o!==void 0&&v.jsx("button",{type:"button",className:"console-diff-comment-button","aria-label":`Comment on line ${E.line} (${E.side})`,"aria-expanded":x,onClick:()=>c(x?null:{path:o,line:E.line,side:E.side}),children:"+"})}),v.jsx("td",{className:"console-diff-ln",children:g.oldLineNumber??""}),v.jsx("td",{className:"console-diff-ln",children:g.newLineNumber??""}),v.jsx("td",{className:"console-diff-code",children:g.content})]}),x&&u!==void 0&&r!==null&&v.jsx("tr",{className:"console-diff-composer-row",children:v.jsx("td",{colSpan:b,children:v.jsx(Ov,{target:r,onSubmit:u,onClose:()=>c(null)})})})]},p)})})})},Rv=({file:i,onAddInlineComment:o})=>{const[u,r]=q.useState(!1),c=Ev(i.status);return v.jsxs("li",{className:"console-file",children:[v.jsxs("button",{type:"button",className:"console-file-row","aria-expanded":u,onClick:()=>r(d=>!d),children:[v.jsx("span",{className:"console-file-caret",children:u?"▾":"▸"}),v.jsx("span",{className:"console-file-badge",style:{color:c.color,borderColor:c.color},children:c.label}),v.jsx("span",{className:"console-file-path",children:i.path}),v.jsxs("span",{className:"console-file-stat console-file-add",children:["+",i.additions]}),v.jsxs("span",{className:"console-file-stat console-file-del",children:["-",i.deletions]})]}),u&&v.jsx(Cv,{patch:i.patch,path:i.path,onAddInlineComment:o})]})},Ip=({files:i,isLoading:o,error:u,onAddInlineComment:r})=>u!==null?v.jsxs("p",{role:"alert",className:"console-files-error",children:["Failed to load changed files: ",u]}):o?v.jsx("p",{className:"console-files-loading",children:"Loading changed files..."}):i.length===0?v.jsx("p",{className:"console-files-empty",children:"No changed files."}):v.jsx("ul",{className:"console-files",children:i.map(c=>v.jsx(Rv,{file:c,onAddInlineComment:r},c.path))}),Mv=({comments:i,isLoading:o,error:u,now:r,buildImageProxyUrl:c})=>{const[d,m]=q.useState(!1);if(u!==null)return v.jsxs("p",{role:"alert",className:"console-comment-error",children:["Failed to load comments: ",u]});if(o)return v.jsx("p",{className:"console-comment-loading",children:"Loading comments..."});if(i.length===0)return v.jsx("p",{className:"console-comment-empty",children:"No comments."});const b=d?i:i.slice(-1);return v.jsxs("div",{className:"console-comment-list",children:[!d&&i.length>1&&v.jsxs("button",{type:"button",className:"console-comment-show-all",onClick:()=>m(!0),children:["Show all ",i.length]}),b.map(g=>v.jsxs("article",{className:"console-comment",children:[v.jsxs("header",{className:"console-comment-header",children:[v.jsx("span",{className:"console-comment-author",children:g.author}),v.jsx("span",{className:"console-comment-time",children:Oo(g.createdAt,r)})]}),v.jsx(dr,{body:g.body,buildImageProxyUrl:c})]},`${g.author}:${g.createdAt}:${g.body}`))]})},Dv=i=>i.slice(0,7),jv=i=>i.split(`
|
|
101
|
-
`)[0],Fp=({commits:i,isLoading:o,error:u,now:r})=>u!==null?v.jsxs("p",{role:"alert",className:"console-commits-error",children:["Failed to load commits: ",u]}):o?v.jsx("p",{className:"console-commits-loading",children:"Loading commits..."}):i.length===0?v.jsx("p",{className:"console-commits-empty",children:"No commits."}):v.jsx("ul",{className:"console-commits",children:i.map(c=>v.jsxs("li",{className:"console-commit",children:[v.jsx("span",{className:"console-commit-message",children:jv(c.message)}),v.jsx("span",{className:"console-commit-sha",children:Dv(c.sha)}),v.jsx("span",{className:"console-commit-author",children:c.author}),v.jsx("span",{className:"console-commit-time",children:Oo(c.authoredAt,r)})]},c.sha))});function mp(i,o){if(typeof i=="function")return i(o);i!=null&&(i.current=o)}function Uv(...i){return o=>{let u=!1;const r=i.map(c=>{const d=mp(c,o);return!u&&typeof d=="function"&&(u=!0),d});if(u)return()=>{for(let c=0;c<r.length;c++){const d=r[c];typeof d=="function"?d():mp(i[c],null)}}}}function Lv(...i){return q.useCallback(Uv(...i),i)}function Hv(i){const o=q.forwardRef((u,r)=>{let{children:c,...d}=u,m=null,b=!1;const g=[];hp(c)&&typeof lr=="function"&&(c=lr(c._payload)),q.Children.forEach(c,O=>{var B;if(Xv(O)){b=!0;const H=O;let G="child"in H.props?H.props.child:H.props.children;hp(G)&&typeof lr=="function"&&(G=lr(G._payload)),m=Gv(H,G),g.push((B=m==null?void 0:m.props)==null?void 0:B.children)}else g.push(O)}),m?m=q.cloneElement(m,void 0,g):!b&&q.Children.count(c)===1&&q.isValidElement(c)&&(m=c);const p=m?Zv(m):void 0,E=Lv(r,p);if(!m){if(c||c===0)throw new Error(b?Jv(i):Kv(i));return c}const x=Yv(d,m.props??{});return m.type!==q.Fragment&&(x.ref=r?E:p),q.cloneElement(m,x)});return o.displayName=`${i}.Slot`,o}var qv=Hv("Slot"),Bv=Symbol.for("radix.slottable"),Gv=(i,o)=>{if("child"in i.props){const u=i.props.child;return q.isValidElement(u)?q.cloneElement(u,void 0,i.props.children(u.props.children)):null}return q.isValidElement(o)?o:null};function Yv(i,o){const u={...o};for(const r in o){const c=i[r],d=o[r];/^on[A-Z]/.test(r)?c&&d?u[r]=(...b)=>{const g=d(...b);return c(...b),g}:c&&(u[r]=c):r==="style"?u[r]={...c,...d}:r==="className"&&(u[r]=[c,d].filter(Boolean).join(" "))}return{...i,...u}}function Zv(i){var r,c;let o=(r=Object.getOwnPropertyDescriptor(i.props,"ref"))==null?void 0:r.get,u=o&&"isReactWarning"in o&&o.isReactWarning;return u?i.ref:(o=(c=Object.getOwnPropertyDescriptor(i,"ref"))==null?void 0:c.get,u=o&&"isReactWarning"in o&&o.isReactWarning,u?i.props.ref:i.props.ref||i.ref)}function Xv(i){return q.isValidElement(i)&&typeof i.type=="function"&&"__radixId"in i.type&&i.type.__radixId===Bv}var Qv=Symbol.for("react.lazy");function hp(i){return i!=null&&typeof i=="object"&&"$$typeof"in i&&i.$$typeof===Qv&&"_payload"in i&&Vv(i._payload)}function Vv(i){return typeof i=="object"&&i!==null&&"then"in i}var Kv=i=>`${i} failed to slot onto its children. Expected a single React element child or \`Slottable\`.`,Jv=i=>`${i} failed to slot onto its \`Slottable\`. Expected \`Slottable\` to receive a single React element child.`,lr=zb[" use ".trim().toString()];function Wp(i){var o,u,r="";if(typeof i=="string"||typeof i=="number")r+=i;else if(typeof i=="object")if(Array.isArray(i)){var c=i.length;for(o=0;o<c;o++)i[o]&&(u=Wp(i[o]))&&(r&&(r+=" "),r+=u)}else for(u in i)i[u]&&(r&&(r+=" "),r+=u);return r}function Pp(){for(var i,o,u=0,r="",c=arguments.length;u<c;u++)(i=arguments[u])&&(o=Wp(i))&&(r&&(r+=" "),r+=o);return r}const pp=i=>typeof i=="boolean"?`${i}`:i===0?"0":i,gp=Pp,$v=(i,o)=>u=>{var r;if((o==null?void 0:o.variants)==null)return gp(i,u==null?void 0:u.class,u==null?void 0:u.className);const{variants:c,defaultVariants:d}=o,m=Object.keys(c).map(p=>{const E=u==null?void 0:u[p],x=d==null?void 0:d[p];if(E===null)return null;const O=pp(E)||pp(x);return c[p][O]}),b=u&&Object.entries(u).reduce((p,E)=>{let[x,O]=E;return O===void 0||(p[x]=O),p},{}),g=o==null||(r=o.compoundVariants)===null||r===void 0?void 0:r.reduce((p,E)=>{let{class:x,className:O,...B}=E;return Object.entries(B).every(H=>{let[G,Y]=H;return Array.isArray(Y)?Y.includes({...d,...b}[G]):{...d,...b}[G]===Y})?[...p,x,O]:p},[]);return gp(i,m,g,u==null?void 0:u.class,u==null?void 0:u.className)},Iv=(i,o)=>{const u=new Array(i.length+o.length);for(let r=0;r<i.length;r++)u[r]=i[r];for(let r=0;r<o.length;r++)u[i.length+r]=o[r];return u},Fv=(i,o)=>({classGroupId:i,validator:o}),eg=(i=new Map,o=null,u)=>({nextPart:i,validators:o,classGroupId:u}),ur="-",_p=[],Wv="arbitrary..",Pv=i=>{const o=t1(i),{conflictingClassGroups:u,conflictingClassGroupModifiers:r}=i;return{getClassGroupId:m=>{if(m.startsWith("[")&&m.endsWith("]"))return e1(m);const b=m.split(ur),g=b[0]===""&&b.length>1?1:0;return tg(b,g,o)},getConflictingClassGroupIds:(m,b)=>{if(b){const g=r[m],p=u[m];return g?p?Iv(p,g):g:p||_p}return u[m]||_p}}},tg=(i,o,u)=>{if(i.length-o===0)return u.classGroupId;const c=i[o],d=u.nextPart.get(c);if(d){const p=tg(i,o+1,d);if(p)return p}const m=u.validators;if(m===null)return;const b=o===0?i.join(ur):i.slice(o).join(ur),g=m.length;for(let p=0;p<g;p++){const E=m[p];if(E.validator(b))return E.classGroupId}},e1=i=>i.slice(1,-1).indexOf(":")===-1?void 0:(()=>{const o=i.slice(1,-1),u=o.indexOf(":"),r=o.slice(0,u);return r?Wv+r:void 0})(),t1=i=>{const{theme:o,classGroups:u}=i;return n1(u,o)},n1=(i,o)=>{const u=eg();for(const r in i){const c=i[r];Vc(c,u,r,o)}return u},Vc=(i,o,u,r)=>{const c=i.length;for(let d=0;d<c;d++){const m=i[d];l1(m,o,u,r)}},l1=(i,o,u,r)=>{if(typeof i=="string"){a1(i,o,u);return}if(typeof i=="function"){i1(i,o,u,r);return}o1(i,o,u,r)},a1=(i,o,u)=>{const r=i===""?o:ng(o,i);r.classGroupId=u},i1=(i,o,u,r)=>{if(s1(i)){Vc(i(r),o,u,r);return}o.validators===null&&(o.validators=[]),o.validators.push(Fv(u,i))},o1=(i,o,u,r)=>{const c=Object.entries(i),d=c.length;for(let m=0;m<d;m++){const[b,g]=c[m];Vc(g,ng(o,b),u,r)}},ng=(i,o)=>{let u=i;const r=o.split(ur),c=r.length;for(let d=0;d<c;d++){const m=r[d];let b=u.nextPart.get(m);b||(b=eg(),u.nextPart.set(m,b)),u=b}return u},s1=i=>"isThemeGetter"in i&&i.isThemeGetter===!0,r1=i=>{if(i<1)return{get:()=>{},set:()=>{}};let o=0,u=Object.create(null),r=Object.create(null);const c=(d,m)=>{u[d]=m,o++,o>i&&(o=0,r=u,u=Object.create(null))};return{get(d){let m=u[d];if(m!==void 0)return m;if((m=r[d])!==void 0)return c(d,m),m},set(d,m){d in u?u[d]=m:c(d,m)}}},jc="!",bp=":",u1=[],yp=(i,o,u,r,c)=>({modifiers:i,hasImportantModifier:o,baseClassName:u,maybePostfixModifierPosition:r,isExternal:c}),c1=i=>{const{prefix:o,experimentalParseClassName:u}=i;let r=c=>{const d=[];let m=0,b=0,g=0,p;const E=c.length;for(let G=0;G<E;G++){const Y=c[G];if(m===0&&b===0){if(Y===bp){d.push(c.slice(g,G)),g=G+1;continue}if(Y==="/"){p=G;continue}}Y==="["?m++:Y==="]"?m--:Y==="("?b++:Y===")"&&b--}const x=d.length===0?c:c.slice(g);let O=x,B=!1;x.endsWith(jc)?(O=x.slice(0,-1),B=!0):x.startsWith(jc)&&(O=x.slice(1),B=!0);const H=p&&p>g?p-g:void 0;return yp(d,B,O,H)};if(o){const c=o+bp,d=r;r=m=>m.startsWith(c)?d(m.slice(c.length)):yp(u1,!1,m,void 0,!0)}if(u){const c=r;r=d=>u({className:d,parseClassName:c})}return r},f1=i=>{const o=new Map;return i.orderSensitiveModifiers.forEach((u,r)=>{o.set(u,1e6+r)}),u=>{const r=[];let c=[];for(let d=0;d<u.length;d++){const m=u[d],b=m[0]==="[",g=o.has(m);b||g?(c.length>0&&(c.sort(),r.push(...c),c=[]),r.push(m)):c.push(m)}return c.length>0&&(c.sort(),r.push(...c)),r}},d1=i=>({cache:r1(i.cacheSize),parseClassName:c1(i),sortModifiers:f1(i),postfixLookupClassGroupIds:m1(i),...Pv(i)}),m1=i=>{const o=Object.create(null),u=i.postfixLookupClassGroups;if(u)for(let r=0;r<u.length;r++)o[u[r]]=!0;return o},h1=/\s+/,p1=(i,o)=>{const{parseClassName:u,getClassGroupId:r,getConflictingClassGroupIds:c,sortModifiers:d,postfixLookupClassGroupIds:m}=o,b=[],g=i.trim().split(h1);let p="";for(let E=g.length-1;E>=0;E-=1){const x=g[E],{isExternal:O,modifiers:B,hasImportantModifier:H,baseClassName:G,maybePostfixModifierPosition:Y}=u(x);if(O){p=x+(p.length>0?" "+p:p);continue}let re=!!Y,ae;if(re){const le=G.substring(0,Y);ae=r(le);const Q=ae&&m[ae]?r(G):void 0;Q&&Q!==ae&&(ae=Q,re=!1)}else ae=r(G);if(!ae){if(!re){p=x+(p.length>0?" "+p:p);continue}if(ae=r(G),!ae){p=x+(p.length>0?" "+p:p);continue}re=!1}const ee=B.length===0?"":B.length===1?B[0]:d(B).join(":"),ue=H?ee+jc:ee,pe=ue+ae;if(b.indexOf(pe)>-1)continue;b.push(pe);const fe=c(ae,re);for(let le=0;le<fe.length;++le){const Q=fe[le];b.push(ue+Q)}p=x+(p.length>0?" "+p:p)}return p},g1=(...i)=>{let o=0,u,r,c="";for(;o<i.length;)(u=i[o++])&&(r=lg(u))&&(c&&(c+=" "),c+=r);return c},lg=i=>{if(typeof i=="string")return i;let o,u="";for(let r=0;r<i.length;r++)i[r]&&(o=lg(i[r]))&&(u&&(u+=" "),u+=o);return u},_1=(i,...o)=>{let u,r,c,d;const m=g=>{const p=o.reduce((E,x)=>x(E),i());return u=d1(p),r=u.cache.get,c=u.cache.set,d=b,b(g)},b=g=>{const p=r(g);if(p)return p;const E=p1(g,u);return c(g,E),E};return d=m,(...g)=>d(g1(...g))},b1=[],gt=i=>{const o=u=>u[i]||b1;return o.isThemeGetter=!0,o},ag=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,ig=/^\((?:(\w[\w-]*):)?(.+)\)$/i,y1=/^\d+(?:\.\d+)?\/\d+(?:\.\d+)?$/,v1=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,S1=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,T1=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,w1=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,x1=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,Gl=i=>y1.test(i),_e=i=>!!i&&!Number.isNaN(Number(i)),Dn=i=>!!i&&Number.isInteger(Number(i)),zc=i=>i.endsWith("%")&&_e(i.slice(0,-1)),ol=i=>v1.test(i),og=()=>!0,E1=i=>S1.test(i)&&!T1.test(i),Kc=()=>!1,A1=i=>w1.test(i),k1=i=>x1.test(i),z1=i=>!I(i)&&!F(i),N1=i=>i.startsWith("@container")&&(i[10]==="/"&&i[11]!==void 0||i[11]==="s"&&i[16]!==void 0&&i.startsWith("-size/",10)||i[11]==="n"&&i[18]!==void 0&&i.startsWith("-normal/",10)),O1=i=>Ql(i,ug,Kc),I=i=>ag.test(i),ya=i=>Ql(i,cg,E1),vp=i=>Ql(i,H1,_e),C1=i=>Ql(i,dg,og),R1=i=>Ql(i,fg,Kc),Sp=i=>Ql(i,sg,Kc),M1=i=>Ql(i,rg,k1),ar=i=>Ql(i,mg,A1),F=i=>ig.test(i),xo=i=>xa(i,cg),D1=i=>xa(i,fg),Tp=i=>xa(i,sg),j1=i=>xa(i,ug),U1=i=>xa(i,rg),ir=i=>xa(i,mg,!0),L1=i=>xa(i,dg,!0),Ql=(i,o,u)=>{const r=ag.exec(i);return r?r[1]?o(r[1]):u(r[2]):!1},xa=(i,o,u=!1)=>{const r=ig.exec(i);return r?r[1]?o(r[1]):u:!1},sg=i=>i==="position"||i==="percentage",rg=i=>i==="image"||i==="url",ug=i=>i==="length"||i==="size"||i==="bg-size",cg=i=>i==="length",H1=i=>i==="number",fg=i=>i==="family-name",dg=i=>i==="number"||i==="weight",mg=i=>i==="shadow",q1=()=>{const i=gt("color"),o=gt("font"),u=gt("text"),r=gt("font-weight"),c=gt("tracking"),d=gt("leading"),m=gt("breakpoint"),b=gt("container"),g=gt("spacing"),p=gt("radius"),E=gt("shadow"),x=gt("inset-shadow"),O=gt("text-shadow"),B=gt("drop-shadow"),H=gt("blur"),G=gt("perspective"),Y=gt("aspect"),re=gt("ease"),ae=gt("animate"),ee=()=>["auto","avoid","all","avoid-page","page","left","right","column"],ue=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],pe=()=>[...ue(),F,I],fe=()=>["auto","hidden","clip","visible","scroll"],le=()=>["auto","contain","none"],Q=()=>[F,I,g],ke=()=>[Gl,"full","auto",...Q()],at=()=>[Dn,"none","subgrid",F,I],$e=()=>["auto",{span:["full",Dn,F,I]},Dn,F,I],je=()=>[Dn,"auto",F,I],vt=()=>["auto","min","max","fr",F,I],ct=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],be=()=>["start","end","center","stretch","center-safe","end-safe"],C=()=>["auto",...Q()],L=()=>[Gl,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...Q()],J=()=>[Gl,"screen","full","dvw","lvw","svw","min","max","fit",...Q()],ye=()=>[Gl,"screen","full","lh","dvh","lvh","svh","min","max","fit",...Q()],V=()=>[i,F,I],S=()=>[...ue(),Tp,Sp,{position:[F,I]}],j=()=>["no-repeat",{repeat:["","x","y","space","round"]}],K=()=>["auto","cover","contain",j1,O1,{size:[F,I]}],$=()=>[zc,xo,ya],ne=()=>["","none","full",p,F,I],ie=()=>["",_e,xo,ya],ve=()=>["solid","dashed","dotted","double"],et=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],de=()=>[_e,zc,Tp,Sp],mn=()=>["","none",H,F,I],Oe=()=>["none",_e,F,I],hn=()=>["none",_e,F,I],Le=()=>[_e,F,I],Rt=()=>[Gl,"full",...Q()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[ol],breakpoint:[ol],color:[og],container:[ol],"drop-shadow":[ol],ease:["in","out","in-out"],font:[z1],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[ol],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[ol],shadow:[ol],spacing:["px",_e],text:[ol],"text-shadow":[ol],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",Gl,I,F,Y]}],container:["container"],"container-type":[{"@container":["","normal","size",F,I]}],"container-named":[N1],columns:[{columns:[_e,I,F,b]}],"break-after":[{"break-after":ee()}],"break-before":[{"break-before":ee()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:pe()}],overflow:[{overflow:fe()}],"overflow-x":[{"overflow-x":fe()}],"overflow-y":[{"overflow-y":fe()}],overscroll:[{overscroll:le()}],"overscroll-x":[{"overscroll-x":le()}],"overscroll-y":[{"overscroll-y":le()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:ke()}],"inset-x":[{"inset-x":ke()}],"inset-y":[{"inset-y":ke()}],start:[{"inset-s":ke(),start:ke()}],end:[{"inset-e":ke(),end:ke()}],"inset-bs":[{"inset-bs":ke()}],"inset-be":[{"inset-be":ke()}],top:[{top:ke()}],right:[{right:ke()}],bottom:[{bottom:ke()}],left:[{left:ke()}],visibility:["visible","invisible","collapse"],z:[{z:[Dn,"auto",F,I]}],basis:[{basis:[Gl,"full","auto",b,...Q()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[_e,Gl,"auto","initial","none",I]}],grow:[{grow:["",_e,F,I]}],shrink:[{shrink:["",_e,F,I]}],order:[{order:[Dn,"first","last","none",F,I]}],"grid-cols":[{"grid-cols":at()}],"col-start-end":[{col:$e()}],"col-start":[{"col-start":je()}],"col-end":[{"col-end":je()}],"grid-rows":[{"grid-rows":at()}],"row-start-end":[{row:$e()}],"row-start":[{"row-start":je()}],"row-end":[{"row-end":je()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":vt()}],"auto-rows":[{"auto-rows":vt()}],gap:[{gap:Q()}],"gap-x":[{"gap-x":Q()}],"gap-y":[{"gap-y":Q()}],"justify-content":[{justify:[...ct(),"normal"]}],"justify-items":[{"justify-items":[...be(),"normal"]}],"justify-self":[{"justify-self":["auto",...be()]}],"align-content":[{content:["normal",...ct()]}],"align-items":[{items:[...be(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...be(),{baseline:["","last"]}]}],"place-content":[{"place-content":ct()}],"place-items":[{"place-items":[...be(),"baseline"]}],"place-self":[{"place-self":["auto",...be()]}],p:[{p:Q()}],px:[{px:Q()}],py:[{py:Q()}],ps:[{ps:Q()}],pe:[{pe:Q()}],pbs:[{pbs:Q()}],pbe:[{pbe:Q()}],pt:[{pt:Q()}],pr:[{pr:Q()}],pb:[{pb:Q()}],pl:[{pl:Q()}],m:[{m:C()}],mx:[{mx:C()}],my:[{my:C()}],ms:[{ms:C()}],me:[{me:C()}],mbs:[{mbs:C()}],mbe:[{mbe:C()}],mt:[{mt:C()}],mr:[{mr:C()}],mb:[{mb:C()}],ml:[{ml:C()}],"space-x":[{"space-x":Q()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":Q()}],"space-y-reverse":["space-y-reverse"],size:[{size:L()}],"inline-size":[{inline:["auto",...J()]}],"min-inline-size":[{"min-inline":["auto",...J()]}],"max-inline-size":[{"max-inline":["none",...J()]}],"block-size":[{block:["auto",...ye()]}],"min-block-size":[{"min-block":["auto",...ye()]}],"max-block-size":[{"max-block":["none",...ye()]}],w:[{w:[b,"screen",...L()]}],"min-w":[{"min-w":[b,"screen","none",...L()]}],"max-w":[{"max-w":[b,"screen","none","prose",{screen:[m]},...L()]}],h:[{h:["screen","lh",...L()]}],"min-h":[{"min-h":["screen","lh","none",...L()]}],"max-h":[{"max-h":["screen","lh",...L()]}],"font-size":[{text:["base",u,xo,ya]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[r,L1,C1]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",zc,I]}],"font-family":[{font:[D1,R1,o]}],"font-features":[{"font-features":[I]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[c,F,I]}],"line-clamp":[{"line-clamp":[_e,"none",F,vp]}],leading:[{leading:[d,...Q()]}],"list-image":[{"list-image":["none",F,I]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",F,I]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:V()}],"text-color":[{text:V()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...ve(),"wavy"]}],"text-decoration-thickness":[{decoration:[_e,"from-font","auto",F,ya]}],"text-decoration-color":[{decoration:V()}],"underline-offset":[{"underline-offset":[_e,"auto",F,I]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:Q()}],"tab-size":[{tab:[Dn,F,I]}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",F,I]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",F,I]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:S()}],"bg-repeat":[{bg:j()}],"bg-size":[{bg:K()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},Dn,F,I],radial:["",F,I],conic:[Dn,F,I]},U1,M1]}],"bg-color":[{bg:V()}],"gradient-from-pos":[{from:$()}],"gradient-via-pos":[{via:$()}],"gradient-to-pos":[{to:$()}],"gradient-from":[{from:V()}],"gradient-via":[{via:V()}],"gradient-to":[{to:V()}],rounded:[{rounded:ne()}],"rounded-s":[{"rounded-s":ne()}],"rounded-e":[{"rounded-e":ne()}],"rounded-t":[{"rounded-t":ne()}],"rounded-r":[{"rounded-r":ne()}],"rounded-b":[{"rounded-b":ne()}],"rounded-l":[{"rounded-l":ne()}],"rounded-ss":[{"rounded-ss":ne()}],"rounded-se":[{"rounded-se":ne()}],"rounded-ee":[{"rounded-ee":ne()}],"rounded-es":[{"rounded-es":ne()}],"rounded-tl":[{"rounded-tl":ne()}],"rounded-tr":[{"rounded-tr":ne()}],"rounded-br":[{"rounded-br":ne()}],"rounded-bl":[{"rounded-bl":ne()}],"border-w":[{border:ie()}],"border-w-x":[{"border-x":ie()}],"border-w-y":[{"border-y":ie()}],"border-w-s":[{"border-s":ie()}],"border-w-e":[{"border-e":ie()}],"border-w-bs":[{"border-bs":ie()}],"border-w-be":[{"border-be":ie()}],"border-w-t":[{"border-t":ie()}],"border-w-r":[{"border-r":ie()}],"border-w-b":[{"border-b":ie()}],"border-w-l":[{"border-l":ie()}],"divide-x":[{"divide-x":ie()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":ie()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...ve(),"hidden","none"]}],"divide-style":[{divide:[...ve(),"hidden","none"]}],"border-color":[{border:V()}],"border-color-x":[{"border-x":V()}],"border-color-y":[{"border-y":V()}],"border-color-s":[{"border-s":V()}],"border-color-e":[{"border-e":V()}],"border-color-bs":[{"border-bs":V()}],"border-color-be":[{"border-be":V()}],"border-color-t":[{"border-t":V()}],"border-color-r":[{"border-r":V()}],"border-color-b":[{"border-b":V()}],"border-color-l":[{"border-l":V()}],"divide-color":[{divide:V()}],"outline-style":[{outline:[...ve(),"none","hidden"]}],"outline-offset":[{"outline-offset":[_e,F,I]}],"outline-w":[{outline:["",_e,xo,ya]}],"outline-color":[{outline:V()}],shadow:[{shadow:["","none",E,ir,ar]}],"shadow-color":[{shadow:V()}],"inset-shadow":[{"inset-shadow":["none",x,ir,ar]}],"inset-shadow-color":[{"inset-shadow":V()}],"ring-w":[{ring:ie()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:V()}],"ring-offset-w":[{"ring-offset":[_e,ya]}],"ring-offset-color":[{"ring-offset":V()}],"inset-ring-w":[{"inset-ring":ie()}],"inset-ring-color":[{"inset-ring":V()}],"text-shadow":[{"text-shadow":["none",O,ir,ar]}],"text-shadow-color":[{"text-shadow":V()}],opacity:[{opacity:[_e,F,I]}],"mix-blend":[{"mix-blend":[...et(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":et()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[_e]}],"mask-image-linear-from-pos":[{"mask-linear-from":de()}],"mask-image-linear-to-pos":[{"mask-linear-to":de()}],"mask-image-linear-from-color":[{"mask-linear-from":V()}],"mask-image-linear-to-color":[{"mask-linear-to":V()}],"mask-image-t-from-pos":[{"mask-t-from":de()}],"mask-image-t-to-pos":[{"mask-t-to":de()}],"mask-image-t-from-color":[{"mask-t-from":V()}],"mask-image-t-to-color":[{"mask-t-to":V()}],"mask-image-r-from-pos":[{"mask-r-from":de()}],"mask-image-r-to-pos":[{"mask-r-to":de()}],"mask-image-r-from-color":[{"mask-r-from":V()}],"mask-image-r-to-color":[{"mask-r-to":V()}],"mask-image-b-from-pos":[{"mask-b-from":de()}],"mask-image-b-to-pos":[{"mask-b-to":de()}],"mask-image-b-from-color":[{"mask-b-from":V()}],"mask-image-b-to-color":[{"mask-b-to":V()}],"mask-image-l-from-pos":[{"mask-l-from":de()}],"mask-image-l-to-pos":[{"mask-l-to":de()}],"mask-image-l-from-color":[{"mask-l-from":V()}],"mask-image-l-to-color":[{"mask-l-to":V()}],"mask-image-x-from-pos":[{"mask-x-from":de()}],"mask-image-x-to-pos":[{"mask-x-to":de()}],"mask-image-x-from-color":[{"mask-x-from":V()}],"mask-image-x-to-color":[{"mask-x-to":V()}],"mask-image-y-from-pos":[{"mask-y-from":de()}],"mask-image-y-to-pos":[{"mask-y-to":de()}],"mask-image-y-from-color":[{"mask-y-from":V()}],"mask-image-y-to-color":[{"mask-y-to":V()}],"mask-image-radial":[{"mask-radial":[F,I]}],"mask-image-radial-from-pos":[{"mask-radial-from":de()}],"mask-image-radial-to-pos":[{"mask-radial-to":de()}],"mask-image-radial-from-color":[{"mask-radial-from":V()}],"mask-image-radial-to-color":[{"mask-radial-to":V()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":ue()}],"mask-image-conic-pos":[{"mask-conic":[_e]}],"mask-image-conic-from-pos":[{"mask-conic-from":de()}],"mask-image-conic-to-pos":[{"mask-conic-to":de()}],"mask-image-conic-from-color":[{"mask-conic-from":V()}],"mask-image-conic-to-color":[{"mask-conic-to":V()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:S()}],"mask-repeat":[{mask:j()}],"mask-size":[{mask:K()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",F,I]}],filter:[{filter:["","none",F,I]}],blur:[{blur:mn()}],brightness:[{brightness:[_e,F,I]}],contrast:[{contrast:[_e,F,I]}],"drop-shadow":[{"drop-shadow":["","none",B,ir,ar]}],"drop-shadow-color":[{"drop-shadow":V()}],grayscale:[{grayscale:["",_e,F,I]}],"hue-rotate":[{"hue-rotate":[_e,F,I]}],invert:[{invert:["",_e,F,I]}],saturate:[{saturate:[_e,F,I]}],sepia:[{sepia:["",_e,F,I]}],"backdrop-filter":[{"backdrop-filter":["","none",F,I]}],"backdrop-blur":[{"backdrop-blur":mn()}],"backdrop-brightness":[{"backdrop-brightness":[_e,F,I]}],"backdrop-contrast":[{"backdrop-contrast":[_e,F,I]}],"backdrop-grayscale":[{"backdrop-grayscale":["",_e,F,I]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[_e,F,I]}],"backdrop-invert":[{"backdrop-invert":["",_e,F,I]}],"backdrop-opacity":[{"backdrop-opacity":[_e,F,I]}],"backdrop-saturate":[{"backdrop-saturate":[_e,F,I]}],"backdrop-sepia":[{"backdrop-sepia":["",_e,F,I]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":Q()}],"border-spacing-x":[{"border-spacing-x":Q()}],"border-spacing-y":[{"border-spacing-y":Q()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",F,I]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[_e,"initial",F,I]}],ease:[{ease:["linear","initial",re,F,I]}],delay:[{delay:[_e,F,I]}],animate:[{animate:["none",ae,F,I]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[G,F,I]}],"perspective-origin":[{"perspective-origin":pe()}],rotate:[{rotate:Oe()}],"rotate-x":[{"rotate-x":Oe()}],"rotate-y":[{"rotate-y":Oe()}],"rotate-z":[{"rotate-z":Oe()}],scale:[{scale:hn()}],"scale-x":[{"scale-x":hn()}],"scale-y":[{"scale-y":hn()}],"scale-z":[{"scale-z":hn()}],"scale-3d":["scale-3d"],skew:[{skew:Le()}],"skew-x":[{"skew-x":Le()}],"skew-y":[{"skew-y":Le()}],transform:[{transform:[F,I,"","none","gpu","cpu"]}],"transform-origin":[{origin:pe()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:Rt()}],"translate-x":[{"translate-x":Rt()}],"translate-y":[{"translate-y":Rt()}],"translate-z":[{"translate-z":Rt()}],"translate-none":["translate-none"],zoom:[{zoom:[Dn,F,I]}],accent:[{accent:V()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:V()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",F,I]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scrollbar-thumb-color":[{"scrollbar-thumb":V()}],"scrollbar-track-color":[{"scrollbar-track":V()}],"scrollbar-gutter":[{"scrollbar-gutter":["auto","stable","both"]}],"scrollbar-w":[{scrollbar:["auto","thin","none"]}],"scroll-m":[{"scroll-m":Q()}],"scroll-mx":[{"scroll-mx":Q()}],"scroll-my":[{"scroll-my":Q()}],"scroll-ms":[{"scroll-ms":Q()}],"scroll-me":[{"scroll-me":Q()}],"scroll-mbs":[{"scroll-mbs":Q()}],"scroll-mbe":[{"scroll-mbe":Q()}],"scroll-mt":[{"scroll-mt":Q()}],"scroll-mr":[{"scroll-mr":Q()}],"scroll-mb":[{"scroll-mb":Q()}],"scroll-ml":[{"scroll-ml":Q()}],"scroll-p":[{"scroll-p":Q()}],"scroll-px":[{"scroll-px":Q()}],"scroll-py":[{"scroll-py":Q()}],"scroll-ps":[{"scroll-ps":Q()}],"scroll-pe":[{"scroll-pe":Q()}],"scroll-pbs":[{"scroll-pbs":Q()}],"scroll-pbe":[{"scroll-pbe":Q()}],"scroll-pt":[{"scroll-pt":Q()}],"scroll-pr":[{"scroll-pr":Q()}],"scroll-pb":[{"scroll-pb":Q()}],"scroll-pl":[{"scroll-pl":Q()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",F,I]}],fill:[{fill:["none",...V()]}],"stroke-w":[{stroke:[_e,xo,ya,vp]}],stroke:[{stroke:["none",...V()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{"container-named":["container-type"],overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","inset-bs","inset-be","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pbs","pbe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mbs","mbe","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-x","border-w-y","border-w-s","border-w-e","border-w-bs","border-w-be","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-bs","border-color-be","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mbs","scroll-mbe","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pbs","scroll-pbe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},postfixLookupClassGroups:["container-type"],orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}},B1=_1(q1),G1=(...i)=>B1(Pp(i)),Y1=$v("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",outline:"border border-input bg-background hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground"},size:{default:"h-9 px-4 py-2",sm:"h-8 rounded-md px-3 text-xs",lg:"h-10 rounded-md px-8"}},defaultVariants:{variant:"default",size:"default"}}),hg=q.forwardRef(({className:i,variant:o,size:u,asChild:r=!1,...c},d)=>{const m=r?qv:"button";return v.jsx(m,{className:G1(Y1({variant:o,size:u,className:i})),ref:d,...c})});hg.displayName="Button";const Z1=1500,pg=({url:i,label:o="Copy URL"})=>{const[u,r]=q.useState(!1),c=q.useRef(null);q.useEffect(()=>()=>{c.current!==null&&clearTimeout(c.current)},[]);const d=async()=>{await navigator.clipboard.writeText(i),r(!0),c.current!==null&&clearTimeout(c.current),c.current=setTimeout(()=>{r(!1),c.current=null},Z1)};return v.jsx(hg,{type:"button",variant:"ghost",size:"sm",className:"console-copy-url-button","aria-label":u?"URL copied to clipboard":o,onClick:d,children:u?"Copied":"Copy URL"})},X1=({pullRequest:i,body:o,bodyIsLoading:u,files:r,filesAreLoading:c,filesError:d,commits:m,commitsAreLoading:b,commitsError:g,now:p,buildImageProxyUrl:E})=>{const x=i.summary,O=c||d!==null?null:r.length,B=b||g!==null?null:m.length;return v.jsxs(v.Fragment,{children:[v.jsxs("div",{className:"console-pr-header",children:[v.jsx("a",{href:i.url,className:"console-pr-section-title",target:"_blank",rel:"noopener noreferrer",children:(x==null?void 0:x.title)??i.url}),i.isDraft&&v.jsx("span",{className:"console-pr-section-state",children:"draft"}),v.jsx(pg,{url:i.url,label:"Copy PR URL"}),v.jsxs("div",{className:"console-pr-statbar",children:[i.branchName!==null&&v.jsx("span",{className:"console-pr-branch",children:i.branchName}),x!==null&&v.jsxs(v.Fragment,{children:[v.jsxs("span",{className:"console-pr-add",children:["+",x.additions]}),v.jsxs("span",{className:"console-pr-del",children:["-",x.deletions]}),v.jsxs("span",{className:"console-pr-files-count",children:[x.changedFiles," files"]})]})]})]}),v.jsx(va,{title:"Description",defaultCollapsed:!0,children:u?v.jsx("p",{className:"console-pr-body-loading",children:"Loading description..."}):v.jsx(dr,{body:(x==null?void 0:x.body)??o,buildImageProxyUrl:E})}),v.jsx(va,{title:"Changed files",count:O,children:v.jsx(Ip,{files:r,isLoading:c,error:d})}),v.jsx(va,{title:"Commits",count:B,defaultCollapsed:!0,children:v.jsx(Fp,{commits:m,isLoading:b,error:g,now:p})})]})},Q1=({item:i,storyName:o,storyColorEnum:u,overlayStatus:r,state:c,body:d,bodyIsLoading:m,bodyError:b,comments:g,commentsAreLoading:p,commentsError:E,files:x,filesAreLoading:O,filesError:B,commits:H,commitsAreLoading:G,commitsError:Y,relatedPullRequests:re,now:ae,commentComposer:ee,operationBar:ue,buildImageProxyUrl:pe,onAddInlineComment:fe})=>{const le=(c==null?void 0:c.state)??"open",Q=(c==null?void 0:c.merged)??!1,ke=!i.isPr&&le==="closed"?"Closed":null,at=No(u),$e=r?No(r.color):null,je=O||B!==null?null:x.length,vt=p||E!==null?null:g.length,ct=G||Y!==null?null:H.length;return v.jsxs("article",{className:"console-detail",children:[o!==null&&v.jsx("div",{className:"console-detail-story",children:v.jsxs("span",{className:"console-storytag",children:[v.jsx("span",{className:"console-story-dot",style:{backgroundColor:at.dot}}),o]})}),r!==null&&$e!==null&&v.jsx("span",{className:"console-detail-status-chip",style:{color:$e.fg,borderColor:$e.border,backgroundColor:$e.bg},children:r.name}),v.jsxs("h2",{className:"console-detail-title",children:[v.jsx(zp,{isPr:i.isPr,state:le,merged:Q,isDraft:!1,stateReason:""}),v.jsx("span",{className:"console-detail-title-text",children:i.title}),v.jsx("span",{className:"console-detail-number",children:i.isPr?`PR #${i.number}`:`#${i.number}`}),ke!==null&&v.jsx("span",{className:"console-detail-closed-label",children:ke})]}),v.jsxs("div",{className:"console-detail-subbar",children:[v.jsx("a",{href:i.url,className:"console-detail-link",target:"_blank",rel:"noopener noreferrer",children:i.isPr?`PR #${i.number}`:`Issue #${i.number}`}),v.jsx("span",{className:"console-detail-repo",children:i.repo}),v.jsx("span",{className:"console-detail-pill",children:i.isPr?"PR":"Issue"}),v.jsx(pg,{url:i.url})]}),i.labels.length>0&&v.jsx("div",{className:"console-detail-labels",children:i.labels.map(be=>v.jsx("span",{className:"console-label-chip",children:be},be))}),v.jsxs("div",{className:"console-detail-createdat",title:Lc(i.createdAt),children:["opened ",Oo(i.createdAt,ae)]}),v.jsx(va,{title:"Description",headerAction:v.jsx("a",{href:i.url,className:"console-panel-open-link",target:"_blank",rel:"noopener noreferrer",children:"open"}),children:b!==null?v.jsxs("p",{role:"alert",className:"console-detail-body-error",children:["Failed to load description: ",b]}):m?v.jsx("p",{className:"console-detail-body-loading",children:"Loading description..."}):v.jsx(dr,{body:d,buildImageProxyUrl:pe})}),i.isPr&&v.jsx(va,{title:"Changed files",count:je,children:v.jsx(Ip,{files:x,isLoading:O,error:B,onAddInlineComment:fe})}),v.jsx(va,{title:"Comments",count:vt,defaultCollapsed:i.isPr,children:v.jsx(Mv,{comments:g,isLoading:p,error:E,now:ae,buildImageProxyUrl:pe})}),i.isPr&&v.jsx(va,{title:"Commits",count:ct,defaultCollapsed:!0,children:v.jsx(Fp,{commits:H,isLoading:G,error:Y,now:ae})}),!i.isPr&&re.map(be=>{var C;return v.jsx(X1,{pullRequest:be.pullRequest,body:((C=be.pullRequest.summary)==null?void 0:C.body)??"",bodyIsLoading:!1,files:be.files,filesAreLoading:be.filesAreLoading,filesError:be.filesError,commits:be.commits,commitsAreLoading:be.commitsAreLoading,commitsError:be.commitsError,now:ae,buildImageProxyUrl:pe},be.pullRequest.url)}),ee,v.jsx("div",{className:"console-actionbar",children:ue})]})},V1=({onClose:i})=>v.jsxs("div",{className:"console-op-group",children:[v.jsx("button",{type:"button",className:"console-op-button",onClick:()=>i("close_not_planned"),children:"Close as not planned"}),v.jsx("button",{type:"button",className:"console-op-button",onClick:()=>i("close"),children:"Close"})]}),K1=({isTodoByHuman:i,onSetNextActionDate:o})=>v.jsxs("div",{className:"console-op-group",children:[v.jsx("button",{type:"button",className:"console-op-button console-op-button-snooze",onClick:()=>o("snooze_1day"),children:"+1 day"}),v.jsx("button",{type:"button",className:"console-op-button console-op-button-snooze",onClick:()=>o("snooze_1week"),children:i?"+1 week and skip":"+1 week"})]}),J1=[{action:"unnecessary",label:"Unnecessary",variant:"unneeded"},{action:"totally_wrong",label:"Totally wrong",variant:"wrong"},{action:"request_changes",label:"Reject",variant:"reject"},{action:"approve",label:"Approve",variant:"approve"}],$1=({onReview:i})=>v.jsx("div",{className:"console-op-group console-op-group-review",children:J1.map(o=>v.jsx("button",{type:"button",className:`console-op-button console-op-button-${o.variant}`,onClick:()=>i(o.action),children:o.label},o.action))}),I1=(i,o)=>{const u=o.toLowerCase();return i.find(r=>r.name.toLowerCase()===u)??null},F1=({statusOptions:i,onSetStatus:o,onSetInTmuxByHuman:u})=>{const r=vy.map(c=>({name:c,option:I1(i,c)})).filter(c=>c.option!==null);return r.length===0?null:v.jsx("div",{className:"console-op-group",children:r.map(({name:c,option:d})=>{const m=No(d.color),b=c===Sy;return v.jsx("button",{type:"button",className:"console-op-button",style:{color:m.fg,borderColor:m.border,backgroundColor:m.bg},onClick:()=>b?u(d):o(d),children:d.name},d.id)})})},W1=i=>i.name.toLowerCase().includes("no story"),P1=({storyOptions:i,onSetStory:o})=>{const u=i.filter(r=>!W1(r));return u.length===0?null:v.jsx("div",{className:"console-op-group console-op-group-stories",children:u.map(r=>{const c=No(r.color);return v.jsx("button",{type:"button",className:"console-op-button",style:{color:c.fg,borderColor:c.border,backgroundColor:c.bg},onClick:()=>o(r),children:r.name},r.id)})})},eS=({tab:i,item:o,hasPullRequest:u,statusOptions:r,storyOptions:c,handlers:d})=>{const m=i==="triage",b=i==="workflow-blocker"||!o.isPr;return v.jsxs("div",{className:"console-operation-bar",children:[u&&v.jsx($1,{onReview:d.onReview}),v.jsx(K1,{isTodoByHuman:Ty(i),onSetNextActionDate:d.onSetNextActionDate}),m&&v.jsx(P1,{storyOptions:c,onSetStory:d.onSetStory}),v.jsx(F1,{statusOptions:r,onSetStatus:d.onSetStatus,onSetInTmuxByHuman:d.onSetInTmuxByHuman}),b&&v.jsx(V1,{onClose:d.onClose})]})},vi=(i,o,u,r)=>{const c=o!==null?i.peek(o):void 0,[d,m]=q.useState(c??r),[b,g]=q.useState(o!==null&&c===void 0),[p,E]=q.useState(null);return q.useEffect(()=>{if(o===null||u===null)return;const x=i.peek(o);if(x!==void 0){m(x),g(!1),E(null);return}let O=!1;return g(!0),E(null),i.load(o,u).then(B=>{O||(m(B),g(!1))}).catch(B=>{O||(E(B instanceof Error?B.message:String(B)),g(!1))}),()=>{O=!0}},[i,o,u]),{data:d,isLoading:b,error:p}},tS=[],wp=[],xp=[],nS=[],lS={state:"open",merged:!1,isPullRequest:!1},aS=(i,o)=>{const u=o!==null?`${o.repo}#${o.number}`:null,r=o!==null?o.url:null,c=(o==null?void 0:o.isPr)??!1,d=vi(i.body,u,r,""),m=vi(i.state,u,r,lS),b=vi(i.comments,u,r,tS),g=vi(i.files,c?u:null,c?r:null,wp),p=vi(i.commits,c?u:null,c?r:null,xp),E=vi(i.relatedPrs,c?null:u,c?null:r,nS),[x,O]=q.useState([]);return q.useEffect(()=>{if(c||E.data.length===0){O([]);return}let B=!1;const H=E.data.map(Y=>({pullRequest:Y,files:wp,filesAreLoading:!0,filesError:null,commits:xp,commitsAreLoading:!0,commitsError:null}));O(H);const G=(Y,re)=>{B||O(ae=>ae.map(ee=>ee.pullRequest.url===Y?{...ee,...re}:ee))};for(const Y of E.data){const re=Y.url;i.files.load(re,Y.url).then(ae=>G(Y.url,{files:ae,filesAreLoading:!1})).catch(ae=>G(Y.url,{filesAreLoading:!1,filesError:ae instanceof Error?ae.message:String(ae)})),i.commits.load(re,Y.url).then(ae=>G(Y.url,{commits:ae,commitsAreLoading:!1})).catch(ae=>G(Y.url,{commitsAreLoading:!1,commitsError:ae instanceof Error?ae.message:String(ae)}))}return()=>{B=!0}},[i,c,E.data]),{state:m.data,body:d.data,bodyIsLoading:d.isLoading,bodyError:d.error,comments:b.data,commentsAreLoading:b.isLoading,commentsError:b.error,files:g.data,filesAreLoading:g.isLoading,filesError:g.error,commits:p.data,commitsAreLoading:p.isLoading,commitsError:p.error,relatedPullRequests:x}},iS=({tab:i,item:o,caches:u,operations:r,statusOptions:c,storyOptions:d,storyColors:m,storyName:b,overlayStatus:g,now:p,onQueueAction:E})=>{const x=aS(u,o),{token:O}=cr(),B=q.useCallback(ee=>Wy(ee,O),[O]),H=o.isPr||x.relatedPullRequests.length>0,G=q.useCallback((ee,ue,pe,fe)=>r.addInlineReviewComment(o.url,ee,ue,pe,fe),[r,o.url]),Y={onReview:ee=>{var pe;const ue=o.isPr?o.url:((pe=x.relatedPullRequests[0])==null?void 0:pe.pullRequest.url)??o.url;E({kind:{type:"review",action:ee},item:o,commit:()=>r.reviewPullRequest(o,ue,ee)})},onSetNextActionDate:ee=>{E({kind:{type:"next_action_date",action:ee},item:o,commit:()=>r.setNextActionDate(o,ee)})},onSetStory:ee=>{E({kind:{type:"set_story",optionName:ee.name},item:o,commit:()=>r.setStory(o,ee)})},onSetStatus:ee=>{E({kind:{type:"set_status",optionName:ee.name},item:o,commit:()=>r.setStatus(o,ee)})},onSetInTmuxByHuman:ee=>{E({kind:{type:"set_in_tmux_by_human",optionName:ee.name},item:o,commit:()=>r.setInTmuxByHuman(o,ee)})},onClose:ee=>{E({kind:{type:"close",action:ee},item:o,commit:()=>r.closeIssue(o,ee)})}},re=b??(o.story.trim()!==""?o.story:null),ae=re!==null?Ep(m,re):null;return v.jsx(Q1,{item:o,storyName:re,storyColorEnum:ae,overlayStatus:g,state:x.state,body:x.body,bodyIsLoading:x.bodyIsLoading,bodyError:x.bodyError,comments:x.comments,commentsAreLoading:x.commentsAreLoading,commentsError:x.commentsError,files:x.files,filesAreLoading:x.filesAreLoading,filesError:x.filesError,commits:x.commits,commitsAreLoading:x.commitsAreLoading,commitsError:x.commitsError,relatedPullRequests:x.relatedPullRequests,now:p,buildImageProxyUrl:B,onAddInlineComment:o.isPr?G:void 0,commentComposer:v.jsx(xv,{isPr:o.isPr,now:p,onSubmit:ee=>r.addComment(o,ee)}),operationBar:v.jsx(eS,{tab:i,item:o,hasPullRequest:H,statusOptions:c,storyOptions:d,handlers:Y})})},oS=()=>{const i={};for(const o of Tn)i[o.name]=0;return i},sS="console",rS=()=>{const i=Ly(),{snapshots:o,isLoading:u,error:r}=Vy(i),c=jy(i??sS),d=q.useMemo(()=>{const L=oS();for(const J of Tn){const ye=o[J.name];ye!==null&&(L[J.name]=Ey(ye.items,c.overlay,J.name))}return L},[o,c.overlay]),m=_y(i,d),{activeTab:b,selectedItemKey:g,openItem:p,closeItem:E,selectTab:x}=m,O=my(),B=Cy(i,b,c),H=Pb(),G=Date.now(),Y=o[b],re=q.useMemo(()=>Y===null?[]:Ay(Y.items,c.overlay,b),[Y,c.overlay,b]),ae=q.useMemo(()=>re.map(L=>sl(L)),[re]),ee=q.useMemo(()=>Hb(re,c.overlay),[re,c.overlay]),ue=(Y==null?void 0:Y.storyColors)??{},pe=(Y==null?void 0:Y.statusOptions)??[],fe=(Y==null?void 0:Y.storyOptions)??[],le=(Y==null?void 0:Y.generatedAt)??null,Q=q.useMemo(()=>g===null||Y===null?null:Y.items.find(L=>L.projectItemId===g)??null,[g,Y]);q.useEffect(()=>{g!==null&&window.scrollTo({top:0})},[g]);const ke=d[b],at=q.useRef({tab:b,count:ke});q.useEffect(()=>{const L=at.current;if(at.current={tab:b,count:ke},L.tab===b&&L.count>0&&ke===0){const J=hy(b,d);J!==null&&(x(J),E())}},[b,ke,d,x,E]);const $e=(()=>{if(Q===null)return null;const L=c.overlay[sl(Q)];return(L==null?void 0:L.status)??null})(),je=Q!==null?Nc(Q,c.overlay):null,vt=q.useCallback(L=>{const J=Ky(ae,L);J!==null?p(J):E()},[ae,p,E]),ct=q.useCallback(L=>{const J=sl(L.item);H.enqueue({message:Ib(L.kind,L.item,b),color:Jb(L.kind),commit:L.commit,advance:()=>{$b(L.kind,b)&&vt(J)}})},[H,b,vt]),be=q.useCallback(L=>{if(g===null||L===null)return;const J=L==="next"?Jy(ae,g):$y(ae,g);J!==null&&p(J)},[g,ae,p]),C=Yy(be);return v.jsxs("main",{className:"console-app",children:[H.pending!==null&&v.jsx(Xb,{message:H.pending.message,color:H.pending.color,remainingSeconds:H.pending.remainingSeconds,progress:H.pending.progress,onUndo:H.undo}),H.error!==null&&v.jsx(Qb,{message:`Operation failed: ${H.error.reason}`,onDismiss:H.dismissError}),v.jsx(Ub,{activeTab:b,counts:d,pjcode:i,generatedAt:le,tabHref:m.tabHref,onSelectTab:m.selectTab}),Q===null?v.jsx(Zb,{rows:ee,storyColors:ue,activeItemId:null,now:G,isLoading:u,error:r,onSelectItem:L=>m.openItem(L.projectItemId)}):v.jsx("div",{className:"console-detail-screen",ref:C,children:v.jsx(iS,{tab:b,item:Q,caches:O,operations:B,statusOptions:pe,storyOptions:fe,storyColors:ue,storyName:je,overlayStatus:$e,now:G,onQueueAction:ct},Q.projectItemId)})]})},gg=document.getElementById("root");if(gg===null)throw new Error("Root container #root not found");jb.createRoot(gg).render(v.jsx(q.StrictMode,{children:v.jsx(rS,{})}));
|
|
101
|
+
`)[0],Fp=({commits:i,isLoading:o,error:u,now:r})=>u!==null?v.jsxs("p",{role:"alert",className:"console-commits-error",children:["Failed to load commits: ",u]}):o?v.jsx("p",{className:"console-commits-loading",children:"Loading commits..."}):i.length===0?v.jsx("p",{className:"console-commits-empty",children:"No commits."}):v.jsx("ul",{className:"console-commits",children:i.map(c=>v.jsxs("li",{className:"console-commit",children:[v.jsx("span",{className:"console-commit-message",children:jv(c.message)}),v.jsx("span",{className:"console-commit-sha",children:Dv(c.sha)}),v.jsx("span",{className:"console-commit-author",children:c.author}),v.jsx("span",{className:"console-commit-time",children:Oo(c.authoredAt,r)})]},c.sha))});function mp(i,o){if(typeof i=="function")return i(o);i!=null&&(i.current=o)}function Uv(...i){return o=>{let u=!1;const r=i.map(c=>{const d=mp(c,o);return!u&&typeof d=="function"&&(u=!0),d});if(u)return()=>{for(let c=0;c<r.length;c++){const d=r[c];typeof d=="function"?d():mp(i[c],null)}}}}function Lv(...i){return q.useCallback(Uv(...i),i)}function Hv(i){const o=q.forwardRef((u,r)=>{let{children:c,...d}=u,m=null,b=!1;const g=[];hp(c)&&typeof lr=="function"&&(c=lr(c._payload)),q.Children.forEach(c,O=>{var B;if(Xv(O)){b=!0;const H=O;let G="child"in H.props?H.props.child:H.props.children;hp(G)&&typeof lr=="function"&&(G=lr(G._payload)),m=Gv(H,G),g.push((B=m==null?void 0:m.props)==null?void 0:B.children)}else g.push(O)}),m?m=q.cloneElement(m,void 0,g):!b&&q.Children.count(c)===1&&q.isValidElement(c)&&(m=c);const p=m?Zv(m):void 0,E=Lv(r,p);if(!m){if(c||c===0)throw new Error(b?Jv(i):Kv(i));return c}const x=Yv(d,m.props??{});return m.type!==q.Fragment&&(x.ref=r?E:p),q.cloneElement(m,x)});return o.displayName=`${i}.Slot`,o}var qv=Hv("Slot"),Bv=Symbol.for("radix.slottable"),Gv=(i,o)=>{if("child"in i.props){const u=i.props.child;return q.isValidElement(u)?q.cloneElement(u,void 0,i.props.children(u.props.children)):null}return q.isValidElement(o)?o:null};function Yv(i,o){const u={...o};for(const r in o){const c=i[r],d=o[r];/^on[A-Z]/.test(r)?c&&d?u[r]=(...b)=>{const g=d(...b);return c(...b),g}:c&&(u[r]=c):r==="style"?u[r]={...c,...d}:r==="className"&&(u[r]=[c,d].filter(Boolean).join(" "))}return{...i,...u}}function Zv(i){var r,c;let o=(r=Object.getOwnPropertyDescriptor(i.props,"ref"))==null?void 0:r.get,u=o&&"isReactWarning"in o&&o.isReactWarning;return u?i.ref:(o=(c=Object.getOwnPropertyDescriptor(i,"ref"))==null?void 0:c.get,u=o&&"isReactWarning"in o&&o.isReactWarning,u?i.props.ref:i.props.ref||i.ref)}function Xv(i){return q.isValidElement(i)&&typeof i.type=="function"&&"__radixId"in i.type&&i.type.__radixId===Bv}var Qv=Symbol.for("react.lazy");function hp(i){return i!=null&&typeof i=="object"&&"$$typeof"in i&&i.$$typeof===Qv&&"_payload"in i&&Vv(i._payload)}function Vv(i){return typeof i=="object"&&i!==null&&"then"in i}var Kv=i=>`${i} failed to slot onto its children. Expected a single React element child or \`Slottable\`.`,Jv=i=>`${i} failed to slot onto its \`Slottable\`. Expected \`Slottable\` to receive a single React element child.`,lr=zb[" use ".trim().toString()];function Wp(i){var o,u,r="";if(typeof i=="string"||typeof i=="number")r+=i;else if(typeof i=="object")if(Array.isArray(i)){var c=i.length;for(o=0;o<c;o++)i[o]&&(u=Wp(i[o]))&&(r&&(r+=" "),r+=u)}else for(u in i)i[u]&&(r&&(r+=" "),r+=u);return r}function Pp(){for(var i,o,u=0,r="",c=arguments.length;u<c;u++)(i=arguments[u])&&(o=Wp(i))&&(r&&(r+=" "),r+=o);return r}const pp=i=>typeof i=="boolean"?`${i}`:i===0?"0":i,gp=Pp,$v=(i,o)=>u=>{var r;if((o==null?void 0:o.variants)==null)return gp(i,u==null?void 0:u.class,u==null?void 0:u.className);const{variants:c,defaultVariants:d}=o,m=Object.keys(c).map(p=>{const E=u==null?void 0:u[p],x=d==null?void 0:d[p];if(E===null)return null;const O=pp(E)||pp(x);return c[p][O]}),b=u&&Object.entries(u).reduce((p,E)=>{let[x,O]=E;return O===void 0||(p[x]=O),p},{}),g=o==null||(r=o.compoundVariants)===null||r===void 0?void 0:r.reduce((p,E)=>{let{class:x,className:O,...B}=E;return Object.entries(B).every(H=>{let[G,Y]=H;return Array.isArray(Y)?Y.includes({...d,...b}[G]):{...d,...b}[G]===Y})?[...p,x,O]:p},[]);return gp(i,m,g,u==null?void 0:u.class,u==null?void 0:u.className)},Iv=(i,o)=>{const u=new Array(i.length+o.length);for(let r=0;r<i.length;r++)u[r]=i[r];for(let r=0;r<o.length;r++)u[i.length+r]=o[r];return u},Fv=(i,o)=>({classGroupId:i,validator:o}),eg=(i=new Map,o=null,u)=>({nextPart:i,validators:o,classGroupId:u}),ur="-",_p=[],Wv="arbitrary..",Pv=i=>{const o=t1(i),{conflictingClassGroups:u,conflictingClassGroupModifiers:r}=i;return{getClassGroupId:m=>{if(m.startsWith("[")&&m.endsWith("]"))return e1(m);const b=m.split(ur),g=b[0]===""&&b.length>1?1:0;return tg(b,g,o)},getConflictingClassGroupIds:(m,b)=>{if(b){const g=r[m],p=u[m];return g?p?Iv(p,g):g:p||_p}return u[m]||_p}}},tg=(i,o,u)=>{if(i.length-o===0)return u.classGroupId;const c=i[o],d=u.nextPart.get(c);if(d){const p=tg(i,o+1,d);if(p)return p}const m=u.validators;if(m===null)return;const b=o===0?i.join(ur):i.slice(o).join(ur),g=m.length;for(let p=0;p<g;p++){const E=m[p];if(E.validator(b))return E.classGroupId}},e1=i=>i.slice(1,-1).indexOf(":")===-1?void 0:(()=>{const o=i.slice(1,-1),u=o.indexOf(":"),r=o.slice(0,u);return r?Wv+r:void 0})(),t1=i=>{const{theme:o,classGroups:u}=i;return n1(u,o)},n1=(i,o)=>{const u=eg();for(const r in i){const c=i[r];Vc(c,u,r,o)}return u},Vc=(i,o,u,r)=>{const c=i.length;for(let d=0;d<c;d++){const m=i[d];l1(m,o,u,r)}},l1=(i,o,u,r)=>{if(typeof i=="string"){a1(i,o,u);return}if(typeof i=="function"){i1(i,o,u,r);return}o1(i,o,u,r)},a1=(i,o,u)=>{const r=i===""?o:ng(o,i);r.classGroupId=u},i1=(i,o,u,r)=>{if(s1(i)){Vc(i(r),o,u,r);return}o.validators===null&&(o.validators=[]),o.validators.push(Fv(u,i))},o1=(i,o,u,r)=>{const c=Object.entries(i),d=c.length;for(let m=0;m<d;m++){const[b,g]=c[m];Vc(g,ng(o,b),u,r)}},ng=(i,o)=>{let u=i;const r=o.split(ur),c=r.length;for(let d=0;d<c;d++){const m=r[d];let b=u.nextPart.get(m);b||(b=eg(),u.nextPart.set(m,b)),u=b}return u},s1=i=>"isThemeGetter"in i&&i.isThemeGetter===!0,r1=i=>{if(i<1)return{get:()=>{},set:()=>{}};let o=0,u=Object.create(null),r=Object.create(null);const c=(d,m)=>{u[d]=m,o++,o>i&&(o=0,r=u,u=Object.create(null))};return{get(d){let m=u[d];if(m!==void 0)return m;if((m=r[d])!==void 0)return c(d,m),m},set(d,m){d in u?u[d]=m:c(d,m)}}},jc="!",bp=":",u1=[],yp=(i,o,u,r,c)=>({modifiers:i,hasImportantModifier:o,baseClassName:u,maybePostfixModifierPosition:r,isExternal:c}),c1=i=>{const{prefix:o,experimentalParseClassName:u}=i;let r=c=>{const d=[];let m=0,b=0,g=0,p;const E=c.length;for(let G=0;G<E;G++){const Y=c[G];if(m===0&&b===0){if(Y===bp){d.push(c.slice(g,G)),g=G+1;continue}if(Y==="/"){p=G;continue}}Y==="["?m++:Y==="]"?m--:Y==="("?b++:Y===")"&&b--}const x=d.length===0?c:c.slice(g);let O=x,B=!1;x.endsWith(jc)?(O=x.slice(0,-1),B=!0):x.startsWith(jc)&&(O=x.slice(1),B=!0);const H=p&&p>g?p-g:void 0;return yp(d,B,O,H)};if(o){const c=o+bp,d=r;r=m=>m.startsWith(c)?d(m.slice(c.length)):yp(u1,!1,m,void 0,!0)}if(u){const c=r;r=d=>u({className:d,parseClassName:c})}return r},f1=i=>{const o=new Map;return i.orderSensitiveModifiers.forEach((u,r)=>{o.set(u,1e6+r)}),u=>{const r=[];let c=[];for(let d=0;d<u.length;d++){const m=u[d],b=m[0]==="[",g=o.has(m);b||g?(c.length>0&&(c.sort(),r.push(...c),c=[]),r.push(m)):c.push(m)}return c.length>0&&(c.sort(),r.push(...c)),r}},d1=i=>({cache:r1(i.cacheSize),parseClassName:c1(i),sortModifiers:f1(i),postfixLookupClassGroupIds:m1(i),...Pv(i)}),m1=i=>{const o=Object.create(null),u=i.postfixLookupClassGroups;if(u)for(let r=0;r<u.length;r++)o[u[r]]=!0;return o},h1=/\s+/,p1=(i,o)=>{const{parseClassName:u,getClassGroupId:r,getConflictingClassGroupIds:c,sortModifiers:d,postfixLookupClassGroupIds:m}=o,b=[],g=i.trim().split(h1);let p="";for(let E=g.length-1;E>=0;E-=1){const x=g[E],{isExternal:O,modifiers:B,hasImportantModifier:H,baseClassName:G,maybePostfixModifierPosition:Y}=u(x);if(O){p=x+(p.length>0?" "+p:p);continue}let re=!!Y,ae;if(re){const le=G.substring(0,Y);ae=r(le);const Q=ae&&m[ae]?r(G):void 0;Q&&Q!==ae&&(ae=Q,re=!1)}else ae=r(G);if(!ae){if(!re){p=x+(p.length>0?" "+p:p);continue}if(ae=r(G),!ae){p=x+(p.length>0?" "+p:p);continue}re=!1}const ee=B.length===0?"":B.length===1?B[0]:d(B).join(":"),ue=H?ee+jc:ee,pe=ue+ae;if(b.indexOf(pe)>-1)continue;b.push(pe);const fe=c(ae,re);for(let le=0;le<fe.length;++le){const Q=fe[le];b.push(ue+Q)}p=x+(p.length>0?" "+p:p)}return p},g1=(...i)=>{let o=0,u,r,c="";for(;o<i.length;)(u=i[o++])&&(r=lg(u))&&(c&&(c+=" "),c+=r);return c},lg=i=>{if(typeof i=="string")return i;let o,u="";for(let r=0;r<i.length;r++)i[r]&&(o=lg(i[r]))&&(u&&(u+=" "),u+=o);return u},_1=(i,...o)=>{let u,r,c,d;const m=g=>{const p=o.reduce((E,x)=>x(E),i());return u=d1(p),r=u.cache.get,c=u.cache.set,d=b,b(g)},b=g=>{const p=r(g);if(p)return p;const E=p1(g,u);return c(g,E),E};return d=m,(...g)=>d(g1(...g))},b1=[],gt=i=>{const o=u=>u[i]||b1;return o.isThemeGetter=!0,o},ag=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,ig=/^\((?:(\w[\w-]*):)?(.+)\)$/i,y1=/^\d+(?:\.\d+)?\/\d+(?:\.\d+)?$/,v1=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,S1=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,T1=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,w1=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,x1=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,Gl=i=>y1.test(i),_e=i=>!!i&&!Number.isNaN(Number(i)),Dn=i=>!!i&&Number.isInteger(Number(i)),zc=i=>i.endsWith("%")&&_e(i.slice(0,-1)),ol=i=>v1.test(i),og=()=>!0,E1=i=>S1.test(i)&&!T1.test(i),Kc=()=>!1,A1=i=>w1.test(i),k1=i=>x1.test(i),z1=i=>!I(i)&&!F(i),N1=i=>i.startsWith("@container")&&(i[10]==="/"&&i[11]!==void 0||i[11]==="s"&&i[16]!==void 0&&i.startsWith("-size/",10)||i[11]==="n"&&i[18]!==void 0&&i.startsWith("-normal/",10)),O1=i=>Ql(i,ug,Kc),I=i=>ag.test(i),ya=i=>Ql(i,cg,E1),vp=i=>Ql(i,H1,_e),C1=i=>Ql(i,dg,og),R1=i=>Ql(i,fg,Kc),Sp=i=>Ql(i,sg,Kc),M1=i=>Ql(i,rg,k1),ar=i=>Ql(i,mg,A1),F=i=>ig.test(i),xo=i=>xa(i,cg),D1=i=>xa(i,fg),Tp=i=>xa(i,sg),j1=i=>xa(i,ug),U1=i=>xa(i,rg),ir=i=>xa(i,mg,!0),L1=i=>xa(i,dg,!0),Ql=(i,o,u)=>{const r=ag.exec(i);return r?r[1]?o(r[1]):u(r[2]):!1},xa=(i,o,u=!1)=>{const r=ig.exec(i);return r?r[1]?o(r[1]):u:!1},sg=i=>i==="position"||i==="percentage",rg=i=>i==="image"||i==="url",ug=i=>i==="length"||i==="size"||i==="bg-size",cg=i=>i==="length",H1=i=>i==="number",fg=i=>i==="family-name",dg=i=>i==="number"||i==="weight",mg=i=>i==="shadow",q1=()=>{const i=gt("color"),o=gt("font"),u=gt("text"),r=gt("font-weight"),c=gt("tracking"),d=gt("leading"),m=gt("breakpoint"),b=gt("container"),g=gt("spacing"),p=gt("radius"),E=gt("shadow"),x=gt("inset-shadow"),O=gt("text-shadow"),B=gt("drop-shadow"),H=gt("blur"),G=gt("perspective"),Y=gt("aspect"),re=gt("ease"),ae=gt("animate"),ee=()=>["auto","avoid","all","avoid-page","page","left","right","column"],ue=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],pe=()=>[...ue(),F,I],fe=()=>["auto","hidden","clip","visible","scroll"],le=()=>["auto","contain","none"],Q=()=>[F,I,g],ke=()=>[Gl,"full","auto",...Q()],at=()=>[Dn,"none","subgrid",F,I],$e=()=>["auto",{span:["full",Dn,F,I]},Dn,F,I],je=()=>[Dn,"auto",F,I],vt=()=>["auto","min","max","fr",F,I],ct=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],be=()=>["start","end","center","stretch","center-safe","end-safe"],C=()=>["auto",...Q()],L=()=>[Gl,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...Q()],J=()=>[Gl,"screen","full","dvw","lvw","svw","min","max","fit",...Q()],ye=()=>[Gl,"screen","full","lh","dvh","lvh","svh","min","max","fit",...Q()],V=()=>[i,F,I],S=()=>[...ue(),Tp,Sp,{position:[F,I]}],j=()=>["no-repeat",{repeat:["","x","y","space","round"]}],K=()=>["auto","cover","contain",j1,O1,{size:[F,I]}],$=()=>[zc,xo,ya],ne=()=>["","none","full",p,F,I],ie=()=>["",_e,xo,ya],ve=()=>["solid","dashed","dotted","double"],et=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],de=()=>[_e,zc,Tp,Sp],mn=()=>["","none",H,F,I],Oe=()=>["none",_e,F,I],hn=()=>["none",_e,F,I],Le=()=>[_e,F,I],Rt=()=>[Gl,"full",...Q()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[ol],breakpoint:[ol],color:[og],container:[ol],"drop-shadow":[ol],ease:["in","out","in-out"],font:[z1],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[ol],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[ol],shadow:[ol],spacing:["px",_e],text:[ol],"text-shadow":[ol],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",Gl,I,F,Y]}],container:["container"],"container-type":[{"@container":["","normal","size",F,I]}],"container-named":[N1],columns:[{columns:[_e,I,F,b]}],"break-after":[{"break-after":ee()}],"break-before":[{"break-before":ee()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:pe()}],overflow:[{overflow:fe()}],"overflow-x":[{"overflow-x":fe()}],"overflow-y":[{"overflow-y":fe()}],overscroll:[{overscroll:le()}],"overscroll-x":[{"overscroll-x":le()}],"overscroll-y":[{"overscroll-y":le()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:ke()}],"inset-x":[{"inset-x":ke()}],"inset-y":[{"inset-y":ke()}],start:[{"inset-s":ke(),start:ke()}],end:[{"inset-e":ke(),end:ke()}],"inset-bs":[{"inset-bs":ke()}],"inset-be":[{"inset-be":ke()}],top:[{top:ke()}],right:[{right:ke()}],bottom:[{bottom:ke()}],left:[{left:ke()}],visibility:["visible","invisible","collapse"],z:[{z:[Dn,"auto",F,I]}],basis:[{basis:[Gl,"full","auto",b,...Q()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[_e,Gl,"auto","initial","none",I]}],grow:[{grow:["",_e,F,I]}],shrink:[{shrink:["",_e,F,I]}],order:[{order:[Dn,"first","last","none",F,I]}],"grid-cols":[{"grid-cols":at()}],"col-start-end":[{col:$e()}],"col-start":[{"col-start":je()}],"col-end":[{"col-end":je()}],"grid-rows":[{"grid-rows":at()}],"row-start-end":[{row:$e()}],"row-start":[{"row-start":je()}],"row-end":[{"row-end":je()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":vt()}],"auto-rows":[{"auto-rows":vt()}],gap:[{gap:Q()}],"gap-x":[{"gap-x":Q()}],"gap-y":[{"gap-y":Q()}],"justify-content":[{justify:[...ct(),"normal"]}],"justify-items":[{"justify-items":[...be(),"normal"]}],"justify-self":[{"justify-self":["auto",...be()]}],"align-content":[{content:["normal",...ct()]}],"align-items":[{items:[...be(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...be(),{baseline:["","last"]}]}],"place-content":[{"place-content":ct()}],"place-items":[{"place-items":[...be(),"baseline"]}],"place-self":[{"place-self":["auto",...be()]}],p:[{p:Q()}],px:[{px:Q()}],py:[{py:Q()}],ps:[{ps:Q()}],pe:[{pe:Q()}],pbs:[{pbs:Q()}],pbe:[{pbe:Q()}],pt:[{pt:Q()}],pr:[{pr:Q()}],pb:[{pb:Q()}],pl:[{pl:Q()}],m:[{m:C()}],mx:[{mx:C()}],my:[{my:C()}],ms:[{ms:C()}],me:[{me:C()}],mbs:[{mbs:C()}],mbe:[{mbe:C()}],mt:[{mt:C()}],mr:[{mr:C()}],mb:[{mb:C()}],ml:[{ml:C()}],"space-x":[{"space-x":Q()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":Q()}],"space-y-reverse":["space-y-reverse"],size:[{size:L()}],"inline-size":[{inline:["auto",...J()]}],"min-inline-size":[{"min-inline":["auto",...J()]}],"max-inline-size":[{"max-inline":["none",...J()]}],"block-size":[{block:["auto",...ye()]}],"min-block-size":[{"min-block":["auto",...ye()]}],"max-block-size":[{"max-block":["none",...ye()]}],w:[{w:[b,"screen",...L()]}],"min-w":[{"min-w":[b,"screen","none",...L()]}],"max-w":[{"max-w":[b,"screen","none","prose",{screen:[m]},...L()]}],h:[{h:["screen","lh",...L()]}],"min-h":[{"min-h":["screen","lh","none",...L()]}],"max-h":[{"max-h":["screen","lh",...L()]}],"font-size":[{text:["base",u,xo,ya]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[r,L1,C1]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",zc,I]}],"font-family":[{font:[D1,R1,o]}],"font-features":[{"font-features":[I]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[c,F,I]}],"line-clamp":[{"line-clamp":[_e,"none",F,vp]}],leading:[{leading:[d,...Q()]}],"list-image":[{"list-image":["none",F,I]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",F,I]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:V()}],"text-color":[{text:V()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...ve(),"wavy"]}],"text-decoration-thickness":[{decoration:[_e,"from-font","auto",F,ya]}],"text-decoration-color":[{decoration:V()}],"underline-offset":[{"underline-offset":[_e,"auto",F,I]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:Q()}],"tab-size":[{tab:[Dn,F,I]}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",F,I]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",F,I]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:S()}],"bg-repeat":[{bg:j()}],"bg-size":[{bg:K()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},Dn,F,I],radial:["",F,I],conic:[Dn,F,I]},U1,M1]}],"bg-color":[{bg:V()}],"gradient-from-pos":[{from:$()}],"gradient-via-pos":[{via:$()}],"gradient-to-pos":[{to:$()}],"gradient-from":[{from:V()}],"gradient-via":[{via:V()}],"gradient-to":[{to:V()}],rounded:[{rounded:ne()}],"rounded-s":[{"rounded-s":ne()}],"rounded-e":[{"rounded-e":ne()}],"rounded-t":[{"rounded-t":ne()}],"rounded-r":[{"rounded-r":ne()}],"rounded-b":[{"rounded-b":ne()}],"rounded-l":[{"rounded-l":ne()}],"rounded-ss":[{"rounded-ss":ne()}],"rounded-se":[{"rounded-se":ne()}],"rounded-ee":[{"rounded-ee":ne()}],"rounded-es":[{"rounded-es":ne()}],"rounded-tl":[{"rounded-tl":ne()}],"rounded-tr":[{"rounded-tr":ne()}],"rounded-br":[{"rounded-br":ne()}],"rounded-bl":[{"rounded-bl":ne()}],"border-w":[{border:ie()}],"border-w-x":[{"border-x":ie()}],"border-w-y":[{"border-y":ie()}],"border-w-s":[{"border-s":ie()}],"border-w-e":[{"border-e":ie()}],"border-w-bs":[{"border-bs":ie()}],"border-w-be":[{"border-be":ie()}],"border-w-t":[{"border-t":ie()}],"border-w-r":[{"border-r":ie()}],"border-w-b":[{"border-b":ie()}],"border-w-l":[{"border-l":ie()}],"divide-x":[{"divide-x":ie()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":ie()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...ve(),"hidden","none"]}],"divide-style":[{divide:[...ve(),"hidden","none"]}],"border-color":[{border:V()}],"border-color-x":[{"border-x":V()}],"border-color-y":[{"border-y":V()}],"border-color-s":[{"border-s":V()}],"border-color-e":[{"border-e":V()}],"border-color-bs":[{"border-bs":V()}],"border-color-be":[{"border-be":V()}],"border-color-t":[{"border-t":V()}],"border-color-r":[{"border-r":V()}],"border-color-b":[{"border-b":V()}],"border-color-l":[{"border-l":V()}],"divide-color":[{divide:V()}],"outline-style":[{outline:[...ve(),"none","hidden"]}],"outline-offset":[{"outline-offset":[_e,F,I]}],"outline-w":[{outline:["",_e,xo,ya]}],"outline-color":[{outline:V()}],shadow:[{shadow:["","none",E,ir,ar]}],"shadow-color":[{shadow:V()}],"inset-shadow":[{"inset-shadow":["none",x,ir,ar]}],"inset-shadow-color":[{"inset-shadow":V()}],"ring-w":[{ring:ie()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:V()}],"ring-offset-w":[{"ring-offset":[_e,ya]}],"ring-offset-color":[{"ring-offset":V()}],"inset-ring-w":[{"inset-ring":ie()}],"inset-ring-color":[{"inset-ring":V()}],"text-shadow":[{"text-shadow":["none",O,ir,ar]}],"text-shadow-color":[{"text-shadow":V()}],opacity:[{opacity:[_e,F,I]}],"mix-blend":[{"mix-blend":[...et(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":et()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[_e]}],"mask-image-linear-from-pos":[{"mask-linear-from":de()}],"mask-image-linear-to-pos":[{"mask-linear-to":de()}],"mask-image-linear-from-color":[{"mask-linear-from":V()}],"mask-image-linear-to-color":[{"mask-linear-to":V()}],"mask-image-t-from-pos":[{"mask-t-from":de()}],"mask-image-t-to-pos":[{"mask-t-to":de()}],"mask-image-t-from-color":[{"mask-t-from":V()}],"mask-image-t-to-color":[{"mask-t-to":V()}],"mask-image-r-from-pos":[{"mask-r-from":de()}],"mask-image-r-to-pos":[{"mask-r-to":de()}],"mask-image-r-from-color":[{"mask-r-from":V()}],"mask-image-r-to-color":[{"mask-r-to":V()}],"mask-image-b-from-pos":[{"mask-b-from":de()}],"mask-image-b-to-pos":[{"mask-b-to":de()}],"mask-image-b-from-color":[{"mask-b-from":V()}],"mask-image-b-to-color":[{"mask-b-to":V()}],"mask-image-l-from-pos":[{"mask-l-from":de()}],"mask-image-l-to-pos":[{"mask-l-to":de()}],"mask-image-l-from-color":[{"mask-l-from":V()}],"mask-image-l-to-color":[{"mask-l-to":V()}],"mask-image-x-from-pos":[{"mask-x-from":de()}],"mask-image-x-to-pos":[{"mask-x-to":de()}],"mask-image-x-from-color":[{"mask-x-from":V()}],"mask-image-x-to-color":[{"mask-x-to":V()}],"mask-image-y-from-pos":[{"mask-y-from":de()}],"mask-image-y-to-pos":[{"mask-y-to":de()}],"mask-image-y-from-color":[{"mask-y-from":V()}],"mask-image-y-to-color":[{"mask-y-to":V()}],"mask-image-radial":[{"mask-radial":[F,I]}],"mask-image-radial-from-pos":[{"mask-radial-from":de()}],"mask-image-radial-to-pos":[{"mask-radial-to":de()}],"mask-image-radial-from-color":[{"mask-radial-from":V()}],"mask-image-radial-to-color":[{"mask-radial-to":V()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":ue()}],"mask-image-conic-pos":[{"mask-conic":[_e]}],"mask-image-conic-from-pos":[{"mask-conic-from":de()}],"mask-image-conic-to-pos":[{"mask-conic-to":de()}],"mask-image-conic-from-color":[{"mask-conic-from":V()}],"mask-image-conic-to-color":[{"mask-conic-to":V()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:S()}],"mask-repeat":[{mask:j()}],"mask-size":[{mask:K()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",F,I]}],filter:[{filter:["","none",F,I]}],blur:[{blur:mn()}],brightness:[{brightness:[_e,F,I]}],contrast:[{contrast:[_e,F,I]}],"drop-shadow":[{"drop-shadow":["","none",B,ir,ar]}],"drop-shadow-color":[{"drop-shadow":V()}],grayscale:[{grayscale:["",_e,F,I]}],"hue-rotate":[{"hue-rotate":[_e,F,I]}],invert:[{invert:["",_e,F,I]}],saturate:[{saturate:[_e,F,I]}],sepia:[{sepia:["",_e,F,I]}],"backdrop-filter":[{"backdrop-filter":["","none",F,I]}],"backdrop-blur":[{"backdrop-blur":mn()}],"backdrop-brightness":[{"backdrop-brightness":[_e,F,I]}],"backdrop-contrast":[{"backdrop-contrast":[_e,F,I]}],"backdrop-grayscale":[{"backdrop-grayscale":["",_e,F,I]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[_e,F,I]}],"backdrop-invert":[{"backdrop-invert":["",_e,F,I]}],"backdrop-opacity":[{"backdrop-opacity":[_e,F,I]}],"backdrop-saturate":[{"backdrop-saturate":[_e,F,I]}],"backdrop-sepia":[{"backdrop-sepia":["",_e,F,I]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":Q()}],"border-spacing-x":[{"border-spacing-x":Q()}],"border-spacing-y":[{"border-spacing-y":Q()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",F,I]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[_e,"initial",F,I]}],ease:[{ease:["linear","initial",re,F,I]}],delay:[{delay:[_e,F,I]}],animate:[{animate:["none",ae,F,I]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[G,F,I]}],"perspective-origin":[{"perspective-origin":pe()}],rotate:[{rotate:Oe()}],"rotate-x":[{"rotate-x":Oe()}],"rotate-y":[{"rotate-y":Oe()}],"rotate-z":[{"rotate-z":Oe()}],scale:[{scale:hn()}],"scale-x":[{"scale-x":hn()}],"scale-y":[{"scale-y":hn()}],"scale-z":[{"scale-z":hn()}],"scale-3d":["scale-3d"],skew:[{skew:Le()}],"skew-x":[{"skew-x":Le()}],"skew-y":[{"skew-y":Le()}],transform:[{transform:[F,I,"","none","gpu","cpu"]}],"transform-origin":[{origin:pe()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:Rt()}],"translate-x":[{"translate-x":Rt()}],"translate-y":[{"translate-y":Rt()}],"translate-z":[{"translate-z":Rt()}],"translate-none":["translate-none"],zoom:[{zoom:[Dn,F,I]}],accent:[{accent:V()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:V()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",F,I]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scrollbar-thumb-color":[{"scrollbar-thumb":V()}],"scrollbar-track-color":[{"scrollbar-track":V()}],"scrollbar-gutter":[{"scrollbar-gutter":["auto","stable","both"]}],"scrollbar-w":[{scrollbar:["auto","thin","none"]}],"scroll-m":[{"scroll-m":Q()}],"scroll-mx":[{"scroll-mx":Q()}],"scroll-my":[{"scroll-my":Q()}],"scroll-ms":[{"scroll-ms":Q()}],"scroll-me":[{"scroll-me":Q()}],"scroll-mbs":[{"scroll-mbs":Q()}],"scroll-mbe":[{"scroll-mbe":Q()}],"scroll-mt":[{"scroll-mt":Q()}],"scroll-mr":[{"scroll-mr":Q()}],"scroll-mb":[{"scroll-mb":Q()}],"scroll-ml":[{"scroll-ml":Q()}],"scroll-p":[{"scroll-p":Q()}],"scroll-px":[{"scroll-px":Q()}],"scroll-py":[{"scroll-py":Q()}],"scroll-ps":[{"scroll-ps":Q()}],"scroll-pe":[{"scroll-pe":Q()}],"scroll-pbs":[{"scroll-pbs":Q()}],"scroll-pbe":[{"scroll-pbe":Q()}],"scroll-pt":[{"scroll-pt":Q()}],"scroll-pr":[{"scroll-pr":Q()}],"scroll-pb":[{"scroll-pb":Q()}],"scroll-pl":[{"scroll-pl":Q()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",F,I]}],fill:[{fill:["none",...V()]}],"stroke-w":[{stroke:[_e,xo,ya,vp]}],stroke:[{stroke:["none",...V()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{"container-named":["container-type"],overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","inset-bs","inset-be","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pbs","pbe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mbs","mbe","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-x","border-w-y","border-w-s","border-w-e","border-w-bs","border-w-be","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-bs","border-color-be","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mbs","scroll-mbe","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pbs","scroll-pbe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},postfixLookupClassGroups:["container-type"],orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}},B1=_1(q1),G1=(...i)=>B1(Pp(i)),Y1=$v("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",outline:"border border-input bg-background hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground"},size:{default:"h-9 px-4 py-2",sm:"h-8 rounded-md px-3 text-xs",lg:"h-10 rounded-md px-8"}},defaultVariants:{variant:"default",size:"default"}}),hg=q.forwardRef(({className:i,variant:o,size:u,asChild:r=!1,...c},d)=>{const m=r?qv:"button";return v.jsx(m,{className:G1(Y1({variant:o,size:u,className:i})),ref:d,...c})});hg.displayName="Button";const Z1=1500,pg=({url:i,label:o="Copy URL"})=>{const[u,r]=q.useState(!1),c=q.useRef(null);q.useEffect(()=>()=>{c.current!==null&&clearTimeout(c.current)},[]);const d=async()=>{await navigator.clipboard.writeText(i),r(!0),c.current!==null&&clearTimeout(c.current),c.current=setTimeout(()=>{r(!1),c.current=null},Z1)};return v.jsx(hg,{type:"button",variant:"ghost",size:"sm",className:"console-copy-url-button","aria-label":u?"URL copied to clipboard":o,onClick:d,children:u?"Copied":"Copy URL"})},X1=({pullRequest:i,body:o,bodyIsLoading:u,files:r,filesAreLoading:c,filesError:d,commits:m,commitsAreLoading:b,commitsError:g,now:p,buildImageProxyUrl:E})=>{const x=i.summary,O=c||d!==null?null:r.length,B=b||g!==null?null:m.length;return v.jsxs(v.Fragment,{children:[v.jsxs("div",{className:"console-pr-header",children:[v.jsx("a",{href:i.url,className:"console-pr-section-title",target:"_blank",rel:"noopener noreferrer",children:(x==null?void 0:x.title)??i.url}),i.isDraft&&v.jsx("span",{className:"console-pr-section-state",children:"draft"}),v.jsx(pg,{url:i.url,label:"Copy PR URL"}),v.jsxs("div",{className:"console-pr-statbar",children:[i.branchName!==null&&v.jsx("span",{className:"console-pr-branch",children:i.branchName}),x!==null&&v.jsxs(v.Fragment,{children:[v.jsxs("span",{className:"console-pr-add",children:["+",x.additions]}),v.jsxs("span",{className:"console-pr-del",children:["-",x.deletions]}),v.jsxs("span",{className:"console-pr-files-count",children:[x.changedFiles," files"]})]})]})]}),v.jsx(va,{title:"Description",defaultCollapsed:!0,children:u?v.jsx("p",{className:"console-pr-body-loading",children:"Loading description..."}):v.jsx(dr,{body:(x==null?void 0:x.body)??o,buildImageProxyUrl:E})}),v.jsx(va,{title:"Changed files",count:O,children:v.jsx(Ip,{files:r,isLoading:c,error:d})}),v.jsx(va,{title:"Commits",count:B,defaultCollapsed:!0,children:v.jsx(Fp,{commits:m,isLoading:b,error:g,now:p})})]})},Q1=({item:i,storyName:o,storyColorEnum:u,overlayStatus:r,state:c,body:d,bodyIsLoading:m,bodyError:b,comments:g,commentsAreLoading:p,commentsError:E,files:x,filesAreLoading:O,filesError:B,commits:H,commitsAreLoading:G,commitsError:Y,relatedPullRequests:re,now:ae,commentComposer:ee,operationBar:ue,buildImageProxyUrl:pe,onAddInlineComment:fe})=>{const le=(c==null?void 0:c.state)??"open",Q=(c==null?void 0:c.merged)??!1,ke=!i.isPr&&le==="closed"?"Closed":null,at=No(u),$e=r?No(r.color):null,je=O||B!==null?null:x.length,vt=p||E!==null?null:g.length,ct=G||Y!==null?null:H.length;return v.jsxs("article",{className:"console-detail",children:[o!==null&&v.jsx("div",{className:"console-detail-story",children:v.jsxs("span",{className:"console-storytag",children:[v.jsx("span",{className:"console-story-dot",style:{backgroundColor:at.dot}}),o]})}),v.jsxs("h2",{className:"console-detail-title",children:[r!==null&&$e!==null&&v.jsx("span",{className:"console-detail-status-chip",style:{color:$e.fg,borderColor:$e.border,backgroundColor:$e.bg},children:r.name}),v.jsx(zp,{isPr:i.isPr,state:le,merged:Q,isDraft:!1,stateReason:""}),v.jsx("span",{className:"console-detail-title-text",children:i.title}),v.jsx("span",{className:"console-detail-number",children:i.isPr?`PR #${i.number}`:`#${i.number}`}),ke!==null&&v.jsx("span",{className:"console-detail-closed-label",children:ke})]}),v.jsxs("div",{className:"console-detail-subbar",children:[v.jsx("a",{href:i.url,className:"console-detail-link",target:"_blank",rel:"noopener noreferrer",children:i.isPr?`PR #${i.number}`:`Issue #${i.number}`}),v.jsx("span",{className:"console-detail-repo",children:i.repo}),v.jsx("span",{className:"console-detail-pill",children:i.isPr?"PR":"Issue"}),v.jsx(pg,{url:i.url})]}),i.labels.length>0&&v.jsx("div",{className:"console-detail-labels",children:i.labels.map(be=>v.jsx("span",{className:"console-label-chip",children:be},be))}),v.jsxs("div",{className:"console-detail-createdat",title:Lc(i.createdAt),children:["opened ",Oo(i.createdAt,ae)]}),v.jsx(va,{title:"Description",headerAction:v.jsx("a",{href:i.url,className:"console-panel-open-link",target:"_blank",rel:"noopener noreferrer",children:"open"}),children:b!==null?v.jsxs("p",{role:"alert",className:"console-detail-body-error",children:["Failed to load description: ",b]}):m?v.jsx("p",{className:"console-detail-body-loading",children:"Loading description..."}):v.jsx(dr,{body:d,buildImageProxyUrl:pe})}),i.isPr&&v.jsx(va,{title:"Changed files",count:je,children:v.jsx(Ip,{files:x,isLoading:O,error:B,onAddInlineComment:fe})}),v.jsx(va,{title:"Comments",count:vt,defaultCollapsed:i.isPr,children:v.jsx(Mv,{comments:g,isLoading:p,error:E,now:ae,buildImageProxyUrl:pe})}),i.isPr&&v.jsx(va,{title:"Commits",count:ct,defaultCollapsed:!0,children:v.jsx(Fp,{commits:H,isLoading:G,error:Y,now:ae})}),!i.isPr&&re.map(be=>{var C;return v.jsx(X1,{pullRequest:be.pullRequest,body:((C=be.pullRequest.summary)==null?void 0:C.body)??"",bodyIsLoading:!1,files:be.files,filesAreLoading:be.filesAreLoading,filesError:be.filesError,commits:be.commits,commitsAreLoading:be.commitsAreLoading,commitsError:be.commitsError,now:ae,buildImageProxyUrl:pe},be.pullRequest.url)}),ee,v.jsx("div",{className:"console-actionbar",children:ue})]})},V1=({onClose:i})=>v.jsxs("div",{className:"console-op-group",children:[v.jsx("button",{type:"button",className:"console-op-button",onClick:()=>i("close_not_planned"),children:"Close as not planned"}),v.jsx("button",{type:"button",className:"console-op-button",onClick:()=>i("close"),children:"Close"})]}),K1=({isTodoByHuman:i,onSetNextActionDate:o})=>v.jsxs("div",{className:"console-op-group",children:[v.jsx("button",{type:"button",className:"console-op-button console-op-button-snooze",onClick:()=>o("snooze_1day"),children:"+1 day"}),v.jsx("button",{type:"button",className:"console-op-button console-op-button-snooze",onClick:()=>o("snooze_1week"),children:i?"+1 week and skip":"+1 week"})]}),J1=[{action:"unnecessary",label:"Unnecessary",variant:"unneeded"},{action:"totally_wrong",label:"Totally wrong",variant:"wrong"},{action:"request_changes",label:"Reject",variant:"reject"},{action:"approve",label:"Approve",variant:"approve"}],$1=({onReview:i})=>v.jsx("div",{className:"console-op-group console-op-group-review",children:J1.map(o=>v.jsx("button",{type:"button",className:`console-op-button console-op-button-${o.variant}`,onClick:()=>i(o.action),children:o.label},o.action))}),I1=(i,o)=>{const u=o.toLowerCase();return i.find(r=>r.name.toLowerCase()===u)??null},F1=({statusOptions:i,onSetStatus:o,onSetInTmuxByHuman:u})=>{const r=vy.map(c=>({name:c,option:I1(i,c)})).filter(c=>c.option!==null);return r.length===0?null:v.jsx("div",{className:"console-op-group",children:r.map(({name:c,option:d})=>{const m=No(d.color),b=c===Sy;return v.jsx("button",{type:"button",className:"console-op-button",style:{color:m.fg,borderColor:m.border,backgroundColor:m.bg},onClick:()=>b?u(d):o(d),children:d.name},d.id)})})},W1=i=>i.name.toLowerCase().includes("no story"),P1=({storyOptions:i,onSetStory:o})=>{const u=i.filter(r=>!W1(r));return u.length===0?null:v.jsx("div",{className:"console-op-group console-op-group-stories",children:u.map(r=>{const c=No(r.color);return v.jsx("button",{type:"button",className:"console-op-button",style:{color:c.fg,borderColor:c.border,backgroundColor:c.bg},onClick:()=>o(r),children:r.name},r.id)})})},eS=({tab:i,item:o,hasPullRequest:u,statusOptions:r,storyOptions:c,handlers:d})=>{const m=i==="triage",b=i==="workflow-blocker"||!o.isPr;return v.jsxs("div",{className:"console-operation-bar",children:[u&&v.jsx($1,{onReview:d.onReview}),v.jsx(K1,{isTodoByHuman:Ty(i),onSetNextActionDate:d.onSetNextActionDate}),m&&v.jsx(P1,{storyOptions:c,onSetStory:d.onSetStory}),v.jsx(F1,{statusOptions:r,onSetStatus:d.onSetStatus,onSetInTmuxByHuman:d.onSetInTmuxByHuman}),b&&v.jsx(V1,{onClose:d.onClose})]})},vi=(i,o,u,r)=>{const c=o!==null?i.peek(o):void 0,[d,m]=q.useState(c??r),[b,g]=q.useState(o!==null&&c===void 0),[p,E]=q.useState(null);return q.useEffect(()=>{if(o===null||u===null)return;const x=i.peek(o);if(x!==void 0){m(x),g(!1),E(null);return}let O=!1;return g(!0),E(null),i.load(o,u).then(B=>{O||(m(B),g(!1))}).catch(B=>{O||(E(B instanceof Error?B.message:String(B)),g(!1))}),()=>{O=!0}},[i,o,u]),{data:d,isLoading:b,error:p}},tS=[],wp=[],xp=[],nS=[],lS={state:"open",merged:!1,isPullRequest:!1},aS=(i,o)=>{const u=o!==null?`${o.repo}#${o.number}`:null,r=o!==null?o.url:null,c=(o==null?void 0:o.isPr)??!1,d=vi(i.body,u,r,""),m=vi(i.state,u,r,lS),b=vi(i.comments,u,r,tS),g=vi(i.files,c?u:null,c?r:null,wp),p=vi(i.commits,c?u:null,c?r:null,xp),E=vi(i.relatedPrs,c?null:u,c?null:r,nS),[x,O]=q.useState([]);return q.useEffect(()=>{if(c||E.data.length===0){O([]);return}let B=!1;const H=E.data.map(Y=>({pullRequest:Y,files:wp,filesAreLoading:!0,filesError:null,commits:xp,commitsAreLoading:!0,commitsError:null}));O(H);const G=(Y,re)=>{B||O(ae=>ae.map(ee=>ee.pullRequest.url===Y?{...ee,...re}:ee))};for(const Y of E.data){const re=Y.url;i.files.load(re,Y.url).then(ae=>G(Y.url,{files:ae,filesAreLoading:!1})).catch(ae=>G(Y.url,{filesAreLoading:!1,filesError:ae instanceof Error?ae.message:String(ae)})),i.commits.load(re,Y.url).then(ae=>G(Y.url,{commits:ae,commitsAreLoading:!1})).catch(ae=>G(Y.url,{commitsAreLoading:!1,commitsError:ae instanceof Error?ae.message:String(ae)}))}return()=>{B=!0}},[i,c,E.data]),{state:m.data,body:d.data,bodyIsLoading:d.isLoading,bodyError:d.error,comments:b.data,commentsAreLoading:b.isLoading,commentsError:b.error,files:g.data,filesAreLoading:g.isLoading,filesError:g.error,commits:p.data,commitsAreLoading:p.isLoading,commitsError:p.error,relatedPullRequests:x}},iS=({tab:i,item:o,caches:u,operations:r,statusOptions:c,storyOptions:d,storyColors:m,storyName:b,overlayStatus:g,now:p,onQueueAction:E})=>{const x=aS(u,o),{token:O}=cr(),B=q.useCallback(ee=>Wy(ee,O),[O]),H=o.isPr||x.relatedPullRequests.length>0,G=q.useCallback((ee,ue,pe,fe)=>r.addInlineReviewComment(o.url,ee,ue,pe,fe),[r,o.url]),Y={onReview:ee=>{var pe;const ue=o.isPr?o.url:((pe=x.relatedPullRequests[0])==null?void 0:pe.pullRequest.url)??o.url;E({kind:{type:"review",action:ee},item:o,commit:()=>r.reviewPullRequest(o,ue,ee)})},onSetNextActionDate:ee=>{E({kind:{type:"next_action_date",action:ee},item:o,commit:()=>r.setNextActionDate(o,ee)})},onSetStory:ee=>{E({kind:{type:"set_story",optionName:ee.name},item:o,commit:()=>r.setStory(o,ee)})},onSetStatus:ee=>{E({kind:{type:"set_status",optionName:ee.name},item:o,commit:()=>r.setStatus(o,ee)})},onSetInTmuxByHuman:ee=>{E({kind:{type:"set_in_tmux_by_human",optionName:ee.name},item:o,commit:()=>r.setInTmuxByHuman(o,ee)})},onClose:ee=>{E({kind:{type:"close",action:ee},item:o,commit:()=>r.closeIssue(o,ee)})}},re=b??(o.story.trim()!==""?o.story:null),ae=re!==null?Ep(m,re):null;return v.jsx(Q1,{item:o,storyName:re,storyColorEnum:ae,overlayStatus:g,state:x.state,body:x.body,bodyIsLoading:x.bodyIsLoading,bodyError:x.bodyError,comments:x.comments,commentsAreLoading:x.commentsAreLoading,commentsError:x.commentsError,files:x.files,filesAreLoading:x.filesAreLoading,filesError:x.filesError,commits:x.commits,commitsAreLoading:x.commitsAreLoading,commitsError:x.commitsError,relatedPullRequests:x.relatedPullRequests,now:p,buildImageProxyUrl:B,onAddInlineComment:o.isPr?G:void 0,commentComposer:v.jsx(xv,{isPr:o.isPr,now:p,onSubmit:ee=>r.addComment(o,ee)}),operationBar:v.jsx(eS,{tab:i,item:o,hasPullRequest:H,statusOptions:c,storyOptions:d,handlers:Y})})},oS=()=>{const i={};for(const o of Tn)i[o.name]=0;return i},sS="console",rS=()=>{const i=Ly(),{snapshots:o,isLoading:u,error:r}=Vy(i),c=jy(i??sS),d=q.useMemo(()=>{const L=oS();for(const J of Tn){const ye=o[J.name];ye!==null&&(L[J.name]=Ey(ye.items,c.overlay,J.name))}return L},[o,c.overlay]),m=_y(i,d),{activeTab:b,selectedItemKey:g,openItem:p,closeItem:E,selectTab:x}=m,O=my(),B=Cy(i,b,c),H=Pb(),G=Date.now(),Y=o[b],re=q.useMemo(()=>Y===null?[]:Ay(Y.items,c.overlay,b),[Y,c.overlay,b]),ae=q.useMemo(()=>re.map(L=>sl(L)),[re]),ee=q.useMemo(()=>Hb(re,c.overlay),[re,c.overlay]),ue=(Y==null?void 0:Y.storyColors)??{},pe=(Y==null?void 0:Y.statusOptions)??[],fe=(Y==null?void 0:Y.storyOptions)??[],le=(Y==null?void 0:Y.generatedAt)??null,Q=q.useMemo(()=>g===null||Y===null?null:Y.items.find(L=>L.projectItemId===g)??null,[g,Y]);q.useEffect(()=>{g!==null&&window.scrollTo({top:0})},[g]);const ke=d[b],at=q.useRef({tab:b,count:ke});q.useEffect(()=>{const L=at.current;if(at.current={tab:b,count:ke},L.tab===b&&L.count>0&&ke===0){const J=hy(b,d);J!==null&&(x(J),E())}},[b,ke,d,x,E]);const $e=(()=>{if(Q===null)return null;const L=c.overlay[sl(Q)];return(L==null?void 0:L.status)??null})(),je=Q!==null?Nc(Q,c.overlay):null,vt=q.useCallback(L=>{const J=Ky(ae,L);J!==null?p(J):E()},[ae,p,E]),ct=q.useCallback(L=>{const J=sl(L.item);H.enqueue({message:Ib(L.kind,L.item,b),color:Jb(L.kind),commit:L.commit,advance:()=>{$b(L.kind,b)&&vt(J)}})},[H,b,vt]),be=q.useCallback(L=>{if(g===null||L===null)return;const J=L==="next"?Jy(ae,g):$y(ae,g);J!==null&&p(J)},[g,ae,p]),C=Yy(be);return v.jsxs("main",{className:"console-app",children:[H.pending!==null&&v.jsx(Xb,{message:H.pending.message,color:H.pending.color,remainingSeconds:H.pending.remainingSeconds,progress:H.pending.progress,onUndo:H.undo}),H.error!==null&&v.jsx(Qb,{message:`Operation failed: ${H.error.reason}`,onDismiss:H.dismissError}),v.jsx(Ub,{activeTab:b,counts:d,pjcode:i,generatedAt:le,tabHref:m.tabHref,onSelectTab:m.selectTab}),Q===null?v.jsx(Zb,{rows:ee,storyColors:ue,activeItemId:null,now:G,isLoading:u,error:r,onSelectItem:L=>m.openItem(L.projectItemId)}):v.jsx("div",{className:"console-detail-screen",ref:C,children:v.jsx(iS,{tab:b,item:Q,caches:O,operations:B,statusOptions:pe,storyOptions:fe,storyColors:ue,storyName:je,overlayStatus:$e,now:G,onQueueAction:ct},Q.projectItemId)})]})},gg=document.getElementById("root");if(gg===null)throw new Error("Root container #root not found");jb.createRoot(gg).render(v.jsx(q.StrictMode,{children:v.jsx(rS,{})}));
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
/*! tailwindcss v4.3.0 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style:solid;--tw-font-weight:initial;--tw-outline-style:solid;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--font-weight-medium:500;--font-weight-semibold:600;--radius-md:.375rem;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-input:#e5e5e5;--color-ring:#0a0a0a;--color-background:#fff;--color-foreground:#0a0a0a;--color-primary:#171717;--color-primary-foreground:#fafafa;--color-secondary:#f5f5f5;--color-secondary-foreground:#171717;--color-accent:#f5f5f5;--color-accent-foreground:#171717}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.relative{position:relative}.static{position:static}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.hidden{display:none}.inline{display:inline}.inline-flex{display:inline-flex}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.items-center{align-items:center}.justify-center{justify-content:center}.gap-2{gap:calc(var(--spacing) * 2)}.rounded-md{border-radius:var(--radius-md)}.border{border-style:var(--tw-border-style);border-width:1px}.border-input{border-color:var(--color-input)}.border-transparent{border-color:#0000}.bg-background{background-color:var(--color-background)}.bg-primary{background-color:var(--color-primary)}.bg-secondary{background-color:var(--color-secondary)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-8{padding-inline:calc(var(--spacing) * 8)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-2{padding-block:calc(var(--spacing) * 2)}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.whitespace-nowrap{white-space:nowrap}.text-foreground{color:var(--color-foreground)}.text-primary-foreground{color:var(--color-primary-foreground)}.text-secondary-foreground{color:var(--color-secondary-foreground)}.lowercase{text-transform:lowercase}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}@media(hover:hover){.hover\:bg-accent:hover{background-color:var(--color-accent)}.hover\:bg-primary\/90:hover{background-color:#171717e6}@supports (color:color-mix(in lab,red,red)){.hover\:bg-primary\/90:hover{background-color:color-mix(in oklab,var(--color-primary) 90%,transparent)}}.hover\:bg-secondary\/80:hover{background-color:#f5f5f5cc}@supports (color:color-mix(in lab,red,red)){.hover\:bg-secondary\/80:hover{background-color:color-mix(in oklab,var(--color-secondary) 80%,transparent)}}.hover\:text-accent-foreground:hover{color:var(--color-accent-foreground)}}.focus-visible\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-ring:focus-visible{--tw-ring-color:var(--color-ring)}.focus-visible\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:opacity-50:disabled{opacity:.5}}html{font-size:16px}@media(min-width:1024px){html{font-size:8px}}body{color:#e6edf3;background-color:#0d1117;margin:0;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}.console-app{flex-direction:column;width:100%;display:flex}.console-tabbar{-webkit-overflow-scrolling:touch;background:#161b22;border-bottom:2px solid #30363d;flex-wrap:nowrap;align-items:stretch;gap:0;min-height:42px;padding:0 8px;display:flex;overflow-x:auto}.console-tab{color:#8b949e;white-space:nowrap;cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;align-items:center;gap:6px;margin-bottom:-2px;padding:10px 14px;font-size:.8125rem;font-weight:500;line-height:1.2;text-decoration:none;display:inline-flex}.console-tab:hover{color:#e6edf3}.console-tab[data-active=true]{color:#e6edf3;border-bottom-color:#2f81f7;font-weight:700}.console-tab-badge{text-align:center;color:#e6edf3;background:#484f58;border-radius:20px;min-width:20px;padding:1px 7px;font-size:.6875rem;font-weight:700;line-height:1.5}.console-tab-badge[data-zero=true]{color:#8b949e;background:#30363d}.console-tab-pjname{color:#8b949e;align-self:center;margin-left:auto;padding:0 8px;font-size:.7188rem}.console-tab-geninfo{color:#8b949e;align-self:center;padding:0 4px;font-size:.6875rem}.console-list{margin:0;padding:12px 18px 18px;list-style:none}.console-list-group{list-style:none}.console-item-row .console-item-icon{flex:none;margin-top:3px}.console-group-header{background:#0b0f14;border-bottom:1px solid #21262d;justify-content:space-between;align-items:center;padding:6px 12px;display:flex}.console-storytag{align-items:center;gap:8px;font-size:.8125rem;font-weight:700;display:inline-flex}.console-story-dot{border-radius:999px;width:10px;height:10px;display:inline-block}.console-group-count{color:#8b949e;font-size:.75rem}.console-item-row{color:#e6edf3;text-align:left;cursor:pointer;background:#161b22;border:1px solid #30363d;border-radius:8px;align-items:flex-start;gap:14px;width:100%;margin-bottom:10px;padding:12px 16px;display:flex}.console-item-row:hover{background:#1a2029;border-color:#484f58}.console-item-row[data-active=true]{background:#1a2029;border-color:#4493f8}.console-item-meta{flex:1;min-width:0}.console-item-title{font-size:.9063rem;font-weight:600;display:block}.console-item-sub{color:#8b949e;margin-top:3px;font-size:.7813rem;display:block}.console-item-pill{color:#8b949e;border:1px solid #30363d;border-radius:20px;margin-right:6px;padding:1px 8px;font-size:.6875rem;display:inline-block}.console-item-createdat{color:#8b949e;cursor:help}.console-item-fields{color:#adbac7;flex-wrap:wrap;gap:4px 10px;margin-top:4px;font-size:.7188rem;display:flex}.console-item-field{word-break:break-all;align-items:baseline;gap:4px;min-width:0;display:inline-flex}.console-item-field-label{color:#6e7681;text-transform:uppercase;letter-spacing:.03em;font-size:.625rem}.console-list-message{color:#8b949e;padding:16px;font-size:.875rem}.console-list-empty{text-align:center;color:#8b949e;padding:40px;font-size:.875rem}.console-list-error,.console-comment-error,.console-files-error,.console-commits-error,.console-detail-body-error{color:#f85149}.console-detail{flex-direction:column;gap:12px;padding:16px;display:flex}.console-detail-title{align-items:center;gap:8px;margin:0;font-size:1.25rem;display:flex}.console-detail-title-text{flex:1}.console-detail-number{color:#8b949e;font-weight:400}.console-detail-closed-label{color:#a371f7;font-size:.8125rem}.console-detail-subbar{align-items:center;gap:12px;font-size:.8125rem;display:flex}.console-detail-link{color:#4493f8}.console-detail-repo{color:#8b949e;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.console-copy-url-button{color:#c9d1d9;border:1px solid #30363d;border-radius:6px;height:24px;padding:0 8px;font-size:.75rem}.console-copy-url-button:hover{color:#e6edf3;background-color:#21262d}.console-detail-pill,.console-label-chip,.console-detail-status-chip{border:1px solid #30363d;border-radius:999px;padding:2px 8px;font-size:.75rem;display:inline-block}.console-detail-labels{flex-wrap:wrap;gap:6px;display:flex}.console-detail-createdat{color:#8b949e;font-size:.75rem}.console-panel{border:1px solid #30363d;border-radius:8px;overflow:hidden}.console-panel-header{background:#161b22;justify-content:space-between;align-items:center;display:flex}.console-panel-toggle{color:#e6edf3;text-align:left;cursor:pointer;background:0 0;border:none;flex:1;align-items:center;gap:8px;padding:6px 12px;font-size:.875rem;font-weight:600;display:flex}.console-panel-toggle:hover{background:#1a2029}.console-panel-action{padding:6px 12px}.console-panel-body{padding:12px}.console-markdown{word-break:break-word;font-size:.875rem;line-height:1.5}.console-markdown ul{margin:.5em 0;padding-left:1.5em;list-style:outside}.console-markdown ol{margin:.5em 0;padding-left:1.5em;list-style:decimal}.console-markdown li{margin:.25em 0}.console-markdown table{border-collapse:collapse;margin:.5em 0}.console-markdown th,.console-markdown td{border:1px solid #30363d;padding:4px 8px}.console-markdown th{background:#161b22}.console-markdown h1,.console-markdown h2,.console-markdown h3,.console-markdown h4,.console-markdown h5,.console-markdown h6{margin:1em 0 .5em;font-weight:700;line-height:1.25}.console-markdown h1{font-size:1.6em}.console-markdown h2{font-size:1.4em}.console-markdown h3{font-size:1.2em}.console-markdown h4{font-size:1.05em}.console-markdown h5{font-size:.95em}.console-markdown h6{color:#8b949e;font-size:.9em}.console-markdown pre{background:#161b22;border:1px solid #30363d;border-radius:6px;margin:.5em 0;padding:12px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.8125rem;line-height:1.45;overflow-x:auto}.console-markdown code{background:#6e768166;border-radius:4px;padding:.15em .4em;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.9em}.console-markdown pre code{font-size:inherit;background:0 0;border-radius:0;padding:0}.console-markdown blockquote{color:#8b949e;border-left:3px solid #30363d;margin:.5em 0;padding:0 1em}.console-markdown a{color:#4493f8;text-decoration:none}.console-markdown a:hover{text-decoration:underline}.console-markdown hr{border:none;border-top:1px solid #30363d;margin:1em 0}.console-mermaid-error{color:#f85149;font-size:.8125rem}.console-comment{border-top:1px solid #21262d;padding-top:8px}.console-comment-header{color:#8b949e;gap:8px;font-size:.75rem;display:flex}.console-comment-author{color:#e6edf3;font-weight:600}.console-files,.console-commits{margin:0;padding:0;list-style:none}.console-commit{align-items:center;gap:8px;padding:4px 0;font-size:.8125rem;display:flex}.console-file{flex-direction:column;font-size:.8125rem;display:flex}.console-file-badge{text-align:center;border:1px solid;border-radius:4px;width:18px;font-size:.6875rem}.console-file-path,.console-commit-message{flex:1;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.console-file-add,.console-pr-add{color:#3fb950}.console-file-del,.console-pr-del{color:#f85149}.console-commit-sha{color:#8b949e;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.console-actionbar{z-index:100;padding:10px 16px;padding-bottom:calc(10px + env(safe-area-inset-bottom));background:#161b22;border-top:2px solid #30363d;position:sticky;bottom:0}.console-operation-bar{flex-direction:column;gap:8px;width:100%;display:flex}.console-op-group{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.console-op-group-review{gap:10px}.console-op-group-stories{max-height:50vh;overflow-y:auto}.console-op-button{color:#e6edf3;white-space:nowrap;cursor:pointer;background:#21262d;border:1px solid #30363d;border-radius:6px;padding:7px 16px;font-size:.8125rem;font-weight:600}.console-op-button:hover{border-color:#484f58}.console-op-button-approve{color:#fff;background:#238636;border-color:#2ea043}.console-op-button-reject{color:#ffd166;background:#7d5000;border-color:#a06800}.console-op-button-wrong{color:#f85149;background:#3a1518;border-color:#f85149}.console-op-button-unneeded{color:#aab0b8;background:#2a2d31;border-color:#6e7681}.console-op-button-snooze{color:#79c0ff;background:#1c2b4a;border-color:#4493f8}.console-pr-section{border:1px solid #30363d;border-radius:8px;flex-direction:column;gap:10px;padding:12px;display:flex}.console-pr-statbar{color:#8b949e;gap:12px;font-size:.75rem;display:flex}.console-detail-screen{padding-bottom:8px}.console-panel-open-link{color:#4493f8;font-size:.8125rem;font-weight:400}.console-composer{margin-top:4px}.console-composer-toggle{color:#8b949e;cursor:pointer;background:0 0;border:none;padding:2px 0;font-size:.7813rem}.console-composer-toggle:hover{color:#e6edf3}.console-composer-posted{flex-direction:column;gap:8px;margin-top:8px;display:flex}.console-composer-form{margin-top:8px}.console-composer-input{box-sizing:border-box;color:#e6edf3;width:100%;font:inherit;resize:vertical;background:#21262d;border:1px solid #30363d;border-radius:6px;padding:8px;font-size:.875rem}.console-composer-row{align-items:center;gap:8px;margin-top:6px;display:flex}.console-composer-submit{color:#fff;cursor:pointer;background:#238636;border:1px solid #2ea043;border-radius:6px;padding:7px 16px;font-size:.8125rem;font-weight:600}.console-composer-submit:disabled{opacity:.6;cursor:default}.console-composer-status{color:#8b949e;font-size:.75rem}.console-composer-error{color:#f85149}.console-undo-toast{z-index:9998;white-space:nowrap;border-radius:10px;align-items:center;gap:12px;max-width:92vw;padding:12px 18px;font-size:.8438rem;display:flex;position:fixed;top:12px;left:50%;transform:translate(-50%);box-shadow:0 4px 20px #0009}.console-undo-toast-green{color:#3fb950;background:#0d3320;border:1px solid #2ea043}.console-undo-toast-amber{color:#ffd166;background:#3a2800;border:1px solid #a06800}.console-undo-toast-red{color:#f85149;background:#3a1518;border:1px solid #da3633}.console-undo-toast-gray{color:#aab0b8;background:#2a2d31;border:1px solid #6e7681}.console-undo-toast-blue{color:#79c0ff;background:#0d1f40;border:1px solid #4493f8}.console-undo-toast-error{color:#f85149;background:#3a1518;border:1px solid #f85149}.console-undo-toast-message{text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.console-undo-toast-undo{cursor:pointer;color:inherit;background:#ffffff1f;border:none;border-radius:6px;flex:none;padding:4px 12px;font-size:.8125rem;font-weight:700}.console-undo-toast-undo:hover{background:#ffffff38}.console-undo-toast-countdown{opacity:.7;flex:none;font-size:.6875rem}.console-undo-toast-bar{opacity:.5;background:currentColor;border-radius:0 0 10px 10px;height:3px;transition:width .1s linear;position:absolute;bottom:0;left:0}.console-file-row{width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;gap:8px;padding:4px 0;font-size:.8125rem;display:flex}.console-file-row:hover{background:#1a2029}.console-file-caret{color:#8b949e;flex:none;width:1em}.console-file-diff{border-collapse:collapse;width:100%;margin:4px 0 8px;font:.8125rem/1.6 ui-monospace,SFMono-Regular,Menlo,monospace}.console-file-diff td{white-space:pre-wrap;word-break:break-word;vertical-align:top;padding:0 10px}.console-diff-ln{text-align:right;color:#6e7681;-webkit-user-select:none;user-select:none;white-space:nowrap;border-right:1px solid #30363d;width:1%;padding:0 8px}.console-file-diff td.console-diff-ln{white-space:nowrap;word-break:normal;overflow-wrap:normal}.console-diff-add td{background:#2ea04326}.console-diff-add .console-diff-code{color:#aff5b4}.console-diff-del td{background:#f8514926}.console-diff-del .console-diff-code{color:#ffdcd7}.console-diff-hunk td{color:#79c0ff;background:#161b22}.console-diff-ctx .console-diff-code{color:#c9d1d9}.console-file-diff-empty{color:#8b949e;padding:8px 14px;font-size:.75rem}.console-diff-comment-cell{text-align:center;-webkit-user-select:none;user-select:none;width:1%;padding:0 2px}.console-diff-comment-button{color:#6e7681;cursor:pointer;opacity:0;background:0 0;border:1px solid #0000;border-radius:4px;width:18px;height:18px;padding:0;font-size:.875rem;line-height:16px}.console-diff-row:hover .console-diff-comment-button,.console-diff-comment-button[aria-expanded=true]{opacity:1;color:#fff;background:#1f6feb;border-color:#2f81f7}.console-diff-composer-row td{background:#0d1117;padding:6px 10px}.console-diff-composer{background:#161b22;border:1px solid #30363d;border-radius:6px;flex-direction:column;gap:6px;padding:8px;display:flex}.console-diff-composer-anchor{color:#8b949e;font-size:.6875rem}.console-diff-composer-input{resize:vertical;color:#c9d1d9;width:100%;font:inherit;background:#0d1117;border:1px solid #30363d;border-radius:6px;padding:6px 8px}.console-diff-composer-controls{align-items:center;gap:8px;display:flex}.console-diff-composer-submit{color:#fff;cursor:pointer;background:#238636;border:1px solid #238636;border-radius:6px;padding:4px 12px}.console-diff-composer-submit:disabled{opacity:.6;cursor:default}.console-diff-composer-cancel{color:#c9d1d9;cursor:pointer;background:0 0;border:1px solid #30363d;border-radius:6px;padding:4px 12px}.console-diff-composer-status{color:#8b949e;font-size:.75rem}.console-diff-composer-error{color:#ff7b72}.console-diff-composer-posted{color:#3fb950;margin:0;font-size:.75rem}.console-pr-header{flex-wrap:wrap;align-items:center;gap:10px;padding-top:4px;display:flex}.console-pr-section-title{color:#e6edf3;font-size:.9375rem;font-weight:600}.console-pr-section-state{color:#8b949e;border:1px solid #6e7681;border-radius:999px;padding:1px 8px;font-size:.6875rem}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
<meta charset="UTF-8" />
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
6
|
<title>TDPM Console</title>
|
|
7
|
-
<script type="module" crossorigin src="/assets/index-
|
|
8
|
-
<link rel="stylesheet" crossorigin href="/assets/index-
|
|
7
|
+
<script type="module" crossorigin src="/assets/index-CjYyb4uX.js"></script>
|
|
8
|
+
<link rel="stylesheet" crossorigin href="/assets/index-D08V4Rj3.css">
|
|
9
9
|
</head>
|
|
10
10
|
<body>
|
|
11
11
|
<div id="root"></div>
|
|
@@ -115,13 +115,13 @@ class HandleScheduledEventUseCaseHandler {
|
|
|
115
115
|
this.handle = async (configFilePath, _verbose) => {
|
|
116
116
|
const configFileContent = fs_1.default.readFileSync(configFilePath, 'utf8');
|
|
117
117
|
const input = yaml_1.default.parse(configFileContent);
|
|
118
|
-
if (!(() => { const _io0 = input => "string" === typeof input.org && "number" === typeof input.allowIssueCacheMinutes && (undefined === input.thresholdForAutoReject || "number" === typeof input.thresholdForAutoReject) && (null === input.changeTargetPathAliases || undefined === input.changeTargetPathAliases || "object" === typeof input.changeTargetPathAliases && null !== input.changeTargetPathAliases && false === Array.isArray(input.changeTargetPathAliases) && _io1(input.changeTargetPathAliases)) && "string" === typeof input.projectUrl && "string" === typeof input.projectName && (null === input.labelsAsLlmAgentName || undefined === input.labelsAsLlmAgentName || Array.isArray(input.labelsAsLlmAgentName) && input.labelsAsLlmAgentName.every(elem => "string" === typeof elem)) && "string" === typeof input.manager && ("object" === typeof input.workingReport && null !== input.workingReport && _io2(input.workingReport)) && "string" === typeof input.urlOfStoryView && "boolean" === typeof input.disabled && (null === input.startPreparation || undefined === input.startPreparation || "object" === typeof input.startPreparation && null !== input.startPreparation && _io3(input.startPreparation)) && (null === input.dailySecurityScan || undefined === input.dailySecurityScan || "object" === typeof input.dailySecurityScan && null !== input.dailySecurityScan && _io4(input.dailySecurityScan)) && (null === input.allowedIssueAuthors || undefined === input.allowedIssueAuthors || "string" === typeof input.allowedIssueAuthors || Array.isArray(input.allowedIssueAuthors) && input.allowedIssueAuthors.every(elem => "string" === typeof elem)) && (undefined === input.claudeCodeOauthTokenListJsonPath || "string" === typeof input.claudeCodeOauthTokenListJsonPath) && (undefined === input.consoleDataOutputDir || "string" === typeof input.consoleDataOutputDir) && (undefined === input.dashboardDataDir || "string" === typeof input.dashboardDataDir) && (undefined === input.workflowBlockerStoryName || "string" === typeof input.workflowBlockerStoryName) && (undefined === input.inTmuxDataOutputDir || "string" === typeof input.inTmuxDataOutputDir) && (undefined === input.inTmuxConsoleBaseUrl || "string" === typeof input.inTmuxConsoleBaseUrl) && (undefined === input.inTmuxConsoleToken || "string" === typeof input.inTmuxConsoleToken) && (undefined === input.inTmuxProjectOrder || Array.isArray(input.inTmuxProjectOrder) && input.inTmuxProjectOrder.every(elem => "string" === typeof elem)) && (undefined === input.inTmuxLauncherCommand || "string" === typeof input.inTmuxLauncherCommand) && (undefined === input.silentNotificationEnabled || "boolean" === typeof input.silentNotificationEnabled) && (undefined === input.ownerCallMarker || "string" === typeof input.ownerCallMarker) && (undefined === input.subAgentOutputRootDirectory || "string" === typeof input.subAgentOutputRootDirectory) && (undefined === input.subAgentProcessMatchPattern || "string" === typeof input.subAgentProcessMatchPattern) && (undefined === input.subAgentTranscriptRootDirectory || "string" === typeof input.subAgentTranscriptRootDirectory) && (undefined === input.mainSilentThresholdSeconds || "number" === typeof input.mainSilentThresholdSeconds) && (undefined === input.subAgentSilentThresholdSeconds || "number" === typeof input.subAgentSilentThresholdSeconds) && (undefined === input.subAgentRunningThresholdSeconds || "number" === typeof input.subAgentRunningThresholdSeconds) && (undefined === input.silentNotificationCooldownSeconds || "number" === typeof input.silentNotificationCooldownSeconds) && (undefined === input.silentNotificationStaggerSeconds || "number" === typeof input.silentNotificationStaggerSeconds) && (undefined === input.silentMainStalledMessage || "string" === typeof input.silentMainStalledMessage) && (undefined === input.
|
|
118
|
+
if (!(() => { const _io0 = input => "string" === typeof input.org && "number" === typeof input.allowIssueCacheMinutes && (undefined === input.thresholdForAutoReject || "number" === typeof input.thresholdForAutoReject) && (null === input.changeTargetPathAliases || undefined === input.changeTargetPathAliases || "object" === typeof input.changeTargetPathAliases && null !== input.changeTargetPathAliases && false === Array.isArray(input.changeTargetPathAliases) && _io1(input.changeTargetPathAliases)) && "string" === typeof input.projectUrl && "string" === typeof input.projectName && (null === input.labelsAsLlmAgentName || undefined === input.labelsAsLlmAgentName || Array.isArray(input.labelsAsLlmAgentName) && input.labelsAsLlmAgentName.every(elem => "string" === typeof elem)) && "string" === typeof input.manager && ("object" === typeof input.workingReport && null !== input.workingReport && _io2(input.workingReport)) && "string" === typeof input.urlOfStoryView && "boolean" === typeof input.disabled && (null === input.startPreparation || undefined === input.startPreparation || "object" === typeof input.startPreparation && null !== input.startPreparation && _io3(input.startPreparation)) && (null === input.dailySecurityScan || undefined === input.dailySecurityScan || "object" === typeof input.dailySecurityScan && null !== input.dailySecurityScan && _io4(input.dailySecurityScan)) && (null === input.allowedIssueAuthors || undefined === input.allowedIssueAuthors || "string" === typeof input.allowedIssueAuthors || Array.isArray(input.allowedIssueAuthors) && input.allowedIssueAuthors.every(elem => "string" === typeof elem)) && (undefined === input.claudeCodeOauthTokenListJsonPath || "string" === typeof input.claudeCodeOauthTokenListJsonPath) && (undefined === input.consoleDataOutputDir || "string" === typeof input.consoleDataOutputDir) && (undefined === input.dashboardDataDir || "string" === typeof input.dashboardDataDir) && (undefined === input.workflowBlockerStoryName || "string" === typeof input.workflowBlockerStoryName) && (undefined === input.inTmuxDataOutputDir || "string" === typeof input.inTmuxDataOutputDir) && (undefined === input.inTmuxConsoleBaseUrl || "string" === typeof input.inTmuxConsoleBaseUrl) && (undefined === input.inTmuxConsoleToken || "string" === typeof input.inTmuxConsoleToken) && (undefined === input.inTmuxProjectOrder || Array.isArray(input.inTmuxProjectOrder) && input.inTmuxProjectOrder.every(elem => "string" === typeof elem)) && (undefined === input.inTmuxLauncherCommand || "string" === typeof input.inTmuxLauncherCommand) && (undefined === input.silentNotificationEnabled || "boolean" === typeof input.silentNotificationEnabled) && (undefined === input.ownerCallMarker || "string" === typeof input.ownerCallMarker) && (undefined === input.subAgentOutputRootDirectory || "string" === typeof input.subAgentOutputRootDirectory) && (undefined === input.subAgentProcessMatchPattern || "string" === typeof input.subAgentProcessMatchPattern) && (undefined === input.subAgentTranscriptRootDirectory || "string" === typeof input.subAgentTranscriptRootDirectory) && (undefined === input.mainSilentThresholdSeconds || "number" === typeof input.mainSilentThresholdSeconds) && (undefined === input.subAgentSilentThresholdSeconds || "number" === typeof input.subAgentSilentThresholdSeconds) && (undefined === input.subAgentRunningThresholdSeconds || "number" === typeof input.subAgentRunningThresholdSeconds) && (undefined === input.silentNotificationCooldownSeconds || "number" === typeof input.silentNotificationCooldownSeconds) && (undefined === input.silentNotificationStaggerSeconds || "number" === typeof input.silentNotificationStaggerSeconds) && (undefined === input.silentMainStalledMessage || "string" === typeof input.silentMainStalledMessage) && (undefined === input.silentSubAgentMessageHeader || "string" === typeof input.silentSubAgentMessageHeader) && (undefined === input.silentSubAgentMessageFooter || "string" === typeof input.silentSubAgentMessageFooter) && ("object" === typeof input.credentials && null !== input.credentials && _io5(input.credentials)); const _io1 = input => Object.keys(input).every(key => {
|
|
119
119
|
const value = input[key];
|
|
120
120
|
if (undefined === value)
|
|
121
121
|
return true;
|
|
122
122
|
return "string" === typeof value;
|
|
123
123
|
}); const _io2 = input => "string" === typeof input.repo && (Array.isArray(input.members) && input.members.every(elem => "string" === typeof elem)) && "string" === typeof input.spreadsheetUrl; const _io3 = input => "string" === typeof input.defaultAgentName && (null === input.defaultLlmModelName || undefined === input.defaultLlmModelName || "string" === typeof input.defaultLlmModelName) && (null === input.fallbackLlmModelName || undefined === input.fallbackLlmModelName || "string" === typeof input.fallbackLlmModelName) && (null === input.defaultLlmAgentName || undefined === input.defaultLlmAgentName || "string" === typeof input.defaultLlmAgentName) && "string" === typeof input.configFilePath && (null === input.maximumPreparingIssuesCount || "number" === typeof input.maximumPreparingIssuesCount) && (undefined === input.utilizationPercentageThreshold || "number" === typeof input.utilizationPercentageThreshold) && (null === input.allowedIssueAuthors || undefined === input.allowedIssueAuthors || Array.isArray(input.allowedIssueAuthors) && input.allowedIssueAuthors.every(elem => "string" === typeof elem)) && (undefined === input.preparationProcessCheckCommand || "string" === typeof input.preparationProcessCheckCommand) && (null === input.codexHomeCandidates || undefined === input.codexHomeCandidates || Array.isArray(input.codexHomeCandidates) && input.codexHomeCandidates.every(elem => "string" === typeof elem)) && (undefined === input.awLogDirectoryPath || "string" === typeof input.awLogDirectoryPath) && (undefined === input.awLogStaleThresholdMinutes || "number" === typeof input.awLogStaleThresholdMinutes) && (null === input.awaitingQualityCheckStatus || undefined === input.awaitingQualityCheckStatus || "string" === typeof input.awaitingQualityCheckStatus) && (null === input.labelsAsLlmAgentName || undefined === input.labelsAsLlmAgentName || Array.isArray(input.labelsAsLlmAgentName) && input.labelsAsLlmAgentName.every(elem => "string" === typeof elem)); const _io4 = input => "string" === typeof input.scanBaseDirectory && "number" === typeof input.targetHourUtc && (undefined === input.enableKevNvdReport || "boolean" === typeof input.enableKevNvdReport) && (undefined === input.kevReportRepo || "string" === typeof input.kevReportRepo); const _io5 = input => "object" === typeof input.manager && null !== input.manager && _io6(input.manager) && ("object" === typeof input.bot && null !== input.bot && _io10(input.bot)); const _io6 = input => "object" === typeof input.github && null !== input.github && _io7(input.github) && ("object" === typeof input.slack && null !== input.slack && _io8(input.slack)) && ("object" === typeof input.googleServiceAccount && null !== input.googleServiceAccount && _io9(input.googleServiceAccount)); const _io7 = input => "string" === typeof input.token; const _io8 = input => "string" === typeof input.userToken; const _io9 = input => "string" === typeof input.serviceAccountKey; const _io10 = input => "object" === typeof input.github && null !== input.github && _io11(input.github); const _io11 = input => "string" === typeof input.token; return input => "object" === typeof input && null !== input && _io0(input); })()(input)) {
|
|
124
|
-
throw new Error(`Invalid input: ${JSON.stringify(input)}\n\n${JSON.stringify((() => { const _io0 = input => "string" === typeof input.org && "number" === typeof input.allowIssueCacheMinutes && (undefined === input.thresholdForAutoReject || "number" === typeof input.thresholdForAutoReject) && (null === input.changeTargetPathAliases || undefined === input.changeTargetPathAliases || "object" === typeof input.changeTargetPathAliases && null !== input.changeTargetPathAliases && false === Array.isArray(input.changeTargetPathAliases) && _io1(input.changeTargetPathAliases)) && "string" === typeof input.projectUrl && "string" === typeof input.projectName && (null === input.labelsAsLlmAgentName || undefined === input.labelsAsLlmAgentName || Array.isArray(input.labelsAsLlmAgentName) && input.labelsAsLlmAgentName.every(elem => "string" === typeof elem)) && "string" === typeof input.manager && ("object" === typeof input.workingReport && null !== input.workingReport && _io2(input.workingReport)) && "string" === typeof input.urlOfStoryView && "boolean" === typeof input.disabled && (null === input.startPreparation || undefined === input.startPreparation || "object" === typeof input.startPreparation && null !== input.startPreparation && _io3(input.startPreparation)) && (null === input.dailySecurityScan || undefined === input.dailySecurityScan || "object" === typeof input.dailySecurityScan && null !== input.dailySecurityScan && _io4(input.dailySecurityScan)) && (null === input.allowedIssueAuthors || undefined === input.allowedIssueAuthors || "string" === typeof input.allowedIssueAuthors || Array.isArray(input.allowedIssueAuthors) && input.allowedIssueAuthors.every(elem => "string" === typeof elem)) && (undefined === input.claudeCodeOauthTokenListJsonPath || "string" === typeof input.claudeCodeOauthTokenListJsonPath) && (undefined === input.consoleDataOutputDir || "string" === typeof input.consoleDataOutputDir) && (undefined === input.dashboardDataDir || "string" === typeof input.dashboardDataDir) && (undefined === input.workflowBlockerStoryName || "string" === typeof input.workflowBlockerStoryName) && (undefined === input.inTmuxDataOutputDir || "string" === typeof input.inTmuxDataOutputDir) && (undefined === input.inTmuxConsoleBaseUrl || "string" === typeof input.inTmuxConsoleBaseUrl) && (undefined === input.inTmuxConsoleToken || "string" === typeof input.inTmuxConsoleToken) && (undefined === input.inTmuxProjectOrder || Array.isArray(input.inTmuxProjectOrder) && input.inTmuxProjectOrder.every(elem => "string" === typeof elem)) && (undefined === input.inTmuxLauncherCommand || "string" === typeof input.inTmuxLauncherCommand) && (undefined === input.silentNotificationEnabled || "boolean" === typeof input.silentNotificationEnabled) && (undefined === input.ownerCallMarker || "string" === typeof input.ownerCallMarker) && (undefined === input.subAgentOutputRootDirectory || "string" === typeof input.subAgentOutputRootDirectory) && (undefined === input.subAgentProcessMatchPattern || "string" === typeof input.subAgentProcessMatchPattern) && (undefined === input.subAgentTranscriptRootDirectory || "string" === typeof input.subAgentTranscriptRootDirectory) && (undefined === input.mainSilentThresholdSeconds || "number" === typeof input.mainSilentThresholdSeconds) && (undefined === input.subAgentSilentThresholdSeconds || "number" === typeof input.subAgentSilentThresholdSeconds) && (undefined === input.subAgentRunningThresholdSeconds || "number" === typeof input.subAgentRunningThresholdSeconds) && (undefined === input.silentNotificationCooldownSeconds || "number" === typeof input.silentNotificationCooldownSeconds) && (undefined === input.silentNotificationStaggerSeconds || "number" === typeof input.silentNotificationStaggerSeconds) && (undefined === input.silentMainStalledMessage || "string" === typeof input.silentMainStalledMessage) && (undefined === input.
|
|
124
|
+
throw new Error(`Invalid input: ${JSON.stringify(input)}\n\n${JSON.stringify((() => { const _io0 = input => "string" === typeof input.org && "number" === typeof input.allowIssueCacheMinutes && (undefined === input.thresholdForAutoReject || "number" === typeof input.thresholdForAutoReject) && (null === input.changeTargetPathAliases || undefined === input.changeTargetPathAliases || "object" === typeof input.changeTargetPathAliases && null !== input.changeTargetPathAliases && false === Array.isArray(input.changeTargetPathAliases) && _io1(input.changeTargetPathAliases)) && "string" === typeof input.projectUrl && "string" === typeof input.projectName && (null === input.labelsAsLlmAgentName || undefined === input.labelsAsLlmAgentName || Array.isArray(input.labelsAsLlmAgentName) && input.labelsAsLlmAgentName.every(elem => "string" === typeof elem)) && "string" === typeof input.manager && ("object" === typeof input.workingReport && null !== input.workingReport && _io2(input.workingReport)) && "string" === typeof input.urlOfStoryView && "boolean" === typeof input.disabled && (null === input.startPreparation || undefined === input.startPreparation || "object" === typeof input.startPreparation && null !== input.startPreparation && _io3(input.startPreparation)) && (null === input.dailySecurityScan || undefined === input.dailySecurityScan || "object" === typeof input.dailySecurityScan && null !== input.dailySecurityScan && _io4(input.dailySecurityScan)) && (null === input.allowedIssueAuthors || undefined === input.allowedIssueAuthors || "string" === typeof input.allowedIssueAuthors || Array.isArray(input.allowedIssueAuthors) && input.allowedIssueAuthors.every(elem => "string" === typeof elem)) && (undefined === input.claudeCodeOauthTokenListJsonPath || "string" === typeof input.claudeCodeOauthTokenListJsonPath) && (undefined === input.consoleDataOutputDir || "string" === typeof input.consoleDataOutputDir) && (undefined === input.dashboardDataDir || "string" === typeof input.dashboardDataDir) && (undefined === input.workflowBlockerStoryName || "string" === typeof input.workflowBlockerStoryName) && (undefined === input.inTmuxDataOutputDir || "string" === typeof input.inTmuxDataOutputDir) && (undefined === input.inTmuxConsoleBaseUrl || "string" === typeof input.inTmuxConsoleBaseUrl) && (undefined === input.inTmuxConsoleToken || "string" === typeof input.inTmuxConsoleToken) && (undefined === input.inTmuxProjectOrder || Array.isArray(input.inTmuxProjectOrder) && input.inTmuxProjectOrder.every(elem => "string" === typeof elem)) && (undefined === input.inTmuxLauncherCommand || "string" === typeof input.inTmuxLauncherCommand) && (undefined === input.silentNotificationEnabled || "boolean" === typeof input.silentNotificationEnabled) && (undefined === input.ownerCallMarker || "string" === typeof input.ownerCallMarker) && (undefined === input.subAgentOutputRootDirectory || "string" === typeof input.subAgentOutputRootDirectory) && (undefined === input.subAgentProcessMatchPattern || "string" === typeof input.subAgentProcessMatchPattern) && (undefined === input.subAgentTranscriptRootDirectory || "string" === typeof input.subAgentTranscriptRootDirectory) && (undefined === input.mainSilentThresholdSeconds || "number" === typeof input.mainSilentThresholdSeconds) && (undefined === input.subAgentSilentThresholdSeconds || "number" === typeof input.subAgentSilentThresholdSeconds) && (undefined === input.subAgentRunningThresholdSeconds || "number" === typeof input.subAgentRunningThresholdSeconds) && (undefined === input.silentNotificationCooldownSeconds || "number" === typeof input.silentNotificationCooldownSeconds) && (undefined === input.silentNotificationStaggerSeconds || "number" === typeof input.silentNotificationStaggerSeconds) && (undefined === input.silentMainStalledMessage || "string" === typeof input.silentMainStalledMessage) && (undefined === input.silentSubAgentMessageHeader || "string" === typeof input.silentSubAgentMessageHeader) && (undefined === input.silentSubAgentMessageFooter || "string" === typeof input.silentSubAgentMessageFooter) && ("object" === typeof input.credentials && null !== input.credentials && _io5(input.credentials)); const _io1 = input => Object.keys(input).every(key => {
|
|
125
125
|
const value = input[key];
|
|
126
126
|
if (undefined === value)
|
|
127
127
|
return true;
|
|
@@ -302,10 +302,6 @@ class HandleScheduledEventUseCaseHandler {
|
|
|
302
302
|
path: _path + ".silentMainStalledMessage",
|
|
303
303
|
expected: "(string | undefined)",
|
|
304
304
|
value: input.silentMainStalledMessage
|
|
305
|
-
}), undefined === input.silentOwnerReNotificationMessage || "string" === typeof input.silentOwnerReNotificationMessage || _report(_exceptionable, {
|
|
306
|
-
path: _path + ".silentOwnerReNotificationMessage",
|
|
307
|
-
expected: "(string | undefined)",
|
|
308
|
-
value: input.silentOwnerReNotificationMessage
|
|
309
305
|
}), undefined === input.silentSubAgentMessageHeader || "string" === typeof input.silentSubAgentMessageHeader || _report(_exceptionable, {
|
|
310
306
|
path: _path + ".silentSubAgentMessageHeader",
|
|
311
307
|
expected: "(string | undefined)",
|
|
@@ -793,9 +789,6 @@ class HandleScheduledEventUseCaseHandler {
|
|
|
793
789
|
mainStalledMessage: mergedInput.silentMainStalledMessage ??
|
|
794
790
|
process.env.TDPM_SILENT_MAIN_STALLED_MESSAGE ??
|
|
795
791
|
null,
|
|
796
|
-
ownerReNotificationMessage: mergedInput.silentOwnerReNotificationMessage ??
|
|
797
|
-
process.env.TDPM_SILENT_OWNER_RE_NOTIFICATION_MESSAGE ??
|
|
798
|
-
null,
|
|
799
792
|
subAgentMessageHeader: mergedInput.silentSubAgentMessageHeader ??
|
|
800
793
|
process.env.TDPM_SILENT_SUBAGENT_MESSAGE_HEADER ??
|
|
801
794
|
null,
|