@activade/open-workflows 2.0.5 → 2.0.6
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/README.md +40 -1
- package/actions/changeset/action.yml +46 -0
- package/actions/changeset/skill.md +285 -0
- package/dist/cli/index.js +80 -55
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -17,6 +17,7 @@ The CLI will prompt you to select workflows and install them to `.github/workflo
|
|
|
17
17
|
| `pr-review` | Yes | AI-powered code reviews |
|
|
18
18
|
| `issue-label` | Yes | Auto-label issues based on content |
|
|
19
19
|
| `doc-sync` | Yes | Keep docs in sync with code changes |
|
|
20
|
+
| `changeset` | Yes | AI-generated changesets for monorepo releases |
|
|
20
21
|
| `release` | No | Semantic versioning with npm provenance |
|
|
21
22
|
|
|
22
23
|
## Manual Usage
|
|
@@ -72,6 +73,38 @@ jobs:
|
|
|
72
73
|
|
|
73
74
|
No NPM_TOKEN needed - uses OIDC trusted publishing with provenance.
|
|
74
75
|
|
|
76
|
+
### Changeset Action (AI-Powered)
|
|
77
|
+
|
|
78
|
+
```yaml
|
|
79
|
+
name: AI Changeset
|
|
80
|
+
on:
|
|
81
|
+
pull_request:
|
|
82
|
+
types: [opened, synchronize, reopened]
|
|
83
|
+
jobs:
|
|
84
|
+
changeset:
|
|
85
|
+
runs-on: ubuntu-latest
|
|
86
|
+
permissions:
|
|
87
|
+
contents: write
|
|
88
|
+
pull-requests: write
|
|
89
|
+
steps:
|
|
90
|
+
- uses: actions/checkout@v4
|
|
91
|
+
with:
|
|
92
|
+
fetch-depth: 0
|
|
93
|
+
ref: ${{ github.head_ref }}
|
|
94
|
+
token: ${{ secrets.GITHUB_TOKEN }}
|
|
95
|
+
- uses: activadee/open-workflows/actions/changeset@main
|
|
96
|
+
with:
|
|
97
|
+
mode: commit # or 'comment' to suggest via PR comment
|
|
98
|
+
env:
|
|
99
|
+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
100
|
+
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
The changeset action analyzes PR changes and generates [Changesets](https://github.com/changesets/changesets) files automatically:
|
|
104
|
+
- Detects which packages are affected in monorepos
|
|
105
|
+
- Infers version bump type from conventional commits
|
|
106
|
+
- Writes user-facing changelog entries
|
|
107
|
+
|
|
75
108
|
## Authentication
|
|
76
109
|
|
|
77
110
|
### For AI Actions
|
|
@@ -107,12 +140,18 @@ OPTIONS
|
|
|
107
140
|
|
|
108
141
|
## How It Works
|
|
109
142
|
|
|
110
|
-
**AI Actions (pr-review, issue-label, doc-sync):**
|
|
143
|
+
**AI Actions (pr-review, issue-label, doc-sync, changeset):**
|
|
111
144
|
1. Workflow triggers on GitHub event
|
|
112
145
|
2. Composite action sets up Bun and OpenCode
|
|
113
146
|
3. OpenCode runs with the bundled skill
|
|
114
147
|
4. AI analyzes content and takes action
|
|
115
148
|
|
|
149
|
+
**Changeset Action:**
|
|
150
|
+
1. Triggers on PR open/update
|
|
151
|
+
2. AI analyzes diff, commits, and PR description
|
|
152
|
+
3. Generates `.changeset/<random>.md` with package bumps and changelog
|
|
153
|
+
4. Either commits to PR branch or suggests via comment
|
|
154
|
+
|
|
116
155
|
**Release Action:**
|
|
117
156
|
1. Manually triggered with version bump type
|
|
118
157
|
2. Generates changelog from git commits
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
name: 'AI Changeset'
|
|
2
|
+
description: 'AI-powered changeset generation for monorepo releases'
|
|
3
|
+
author: 'activadee'
|
|
4
|
+
|
|
5
|
+
inputs:
|
|
6
|
+
model:
|
|
7
|
+
description: 'Model to use for changeset generation'
|
|
8
|
+
required: false
|
|
9
|
+
default: 'anthropic/claude-sonnet-4-5'
|
|
10
|
+
mode:
|
|
11
|
+
description: 'Operation mode: commit (auto-commit changeset) or comment (suggest via PR comment)'
|
|
12
|
+
required: false
|
|
13
|
+
default: 'commit'
|
|
14
|
+
|
|
15
|
+
runs:
|
|
16
|
+
using: 'composite'
|
|
17
|
+
steps:
|
|
18
|
+
- name: Setup Bun
|
|
19
|
+
uses: oven-sh/setup-bun@v2
|
|
20
|
+
|
|
21
|
+
- name: Setup OpenCode auth
|
|
22
|
+
if: env.OPENCODE_AUTH != ''
|
|
23
|
+
shell: bash
|
|
24
|
+
run: |
|
|
25
|
+
mkdir -p ~/.local/share/opencode
|
|
26
|
+
echo "$OPENCODE_AUTH" > ~/.local/share/opencode/auth.json
|
|
27
|
+
- name: Install opencode-ai
|
|
28
|
+
shell: bash
|
|
29
|
+
run: |
|
|
30
|
+
curl -fsSL https://opencode.ai/install | bash
|
|
31
|
+
- name: Install skill and tools
|
|
32
|
+
shell: bash
|
|
33
|
+
run: |
|
|
34
|
+
mkdir -p .opencode/skill/changeset
|
|
35
|
+
cp "${{ github.action_path }}/skill.md" .opencode/skill/changeset/SKILL.md
|
|
36
|
+
mkdir -p ~/.config/opencode/tool
|
|
37
|
+
cp "${{ github.action_path }}/../../scripts/"*.ts ~/.config/opencode/tool/
|
|
38
|
+
cd ~/.config/opencode && bun add @opencode-ai/plugin
|
|
39
|
+
|
|
40
|
+
- name: Generate Changeset
|
|
41
|
+
shell: bash
|
|
42
|
+
run: |
|
|
43
|
+
opencode run --model "${{ inputs.model }}" \
|
|
44
|
+
"Load the changeset skill. Generate changeset for PR ${{ github.event.pull_request.number }} in mode: ${{ inputs.mode }}"
|
|
45
|
+
env:
|
|
46
|
+
GITHUB_TOKEN: ${{ github.token }}
|
|
@@ -0,0 +1,285 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: changeset
|
|
3
|
+
description: AI-powered changeset generation for monorepo releases. Analyzes PR changes to generate properly formatted changeset files.
|
|
4
|
+
license: MIT
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## What I Do
|
|
8
|
+
|
|
9
|
+
Analyze pull request changes and generate [Changesets](https://github.com/changesets/changesets) files that capture:
|
|
10
|
+
1. Which packages are affected
|
|
11
|
+
2. What version bump is appropriate (patch/minor/major)
|
|
12
|
+
3. A user-facing changelog entry
|
|
13
|
+
|
|
14
|
+
## Workflow
|
|
15
|
+
|
|
16
|
+
1. **Get PR context**: Fetch PR metadata and changed files
|
|
17
|
+
```bash
|
|
18
|
+
gh pr view <number> --json files,title,body,commits,headRefOid
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
2. **Detect monorepo structure**: Find package locations
|
|
22
|
+
```bash
|
|
23
|
+
# Check for common monorepo patterns
|
|
24
|
+
ls packages/ 2>/dev/null || ls apps/ 2>/dev/null || cat pnpm-workspace.yaml 2>/dev/null
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
3. **Analyze changes**: For each changed file, determine:
|
|
28
|
+
- Which package it belongs to
|
|
29
|
+
- The nature of the change (feature, fix, breaking, docs, etc.)
|
|
30
|
+
|
|
31
|
+
4. **Infer version bump**: Based on changes and commit messages
|
|
32
|
+
- `major`: Breaking changes (look for BREAKING CHANGE, !)
|
|
33
|
+
- `minor`: New features (feat:, feature)
|
|
34
|
+
- `patch`: Bug fixes, refactors, docs (fix:, chore:, docs:, refactor:)
|
|
35
|
+
|
|
36
|
+
5. **Generate changeset**: Create the changeset content
|
|
37
|
+
|
|
38
|
+
6. **Execute action**: Based on mode parameter
|
|
39
|
+
- `commit`: Write file and commit to PR branch
|
|
40
|
+
- `comment`: Post suggestion as PR comment
|
|
41
|
+
|
|
42
|
+
## Package Detection
|
|
43
|
+
|
|
44
|
+
### Finding Affected Packages
|
|
45
|
+
|
|
46
|
+
1. **Parse monorepo config** (in priority order):
|
|
47
|
+
```bash
|
|
48
|
+
# pnpm workspaces
|
|
49
|
+
cat pnpm-workspace.yaml
|
|
50
|
+
|
|
51
|
+
# npm/yarn workspaces
|
|
52
|
+
cat package.json | jq '.workspaces'
|
|
53
|
+
|
|
54
|
+
# lerna
|
|
55
|
+
cat lerna.json | jq '.packages'
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
2. **Map files to packages**:
|
|
59
|
+
- `packages/cli/src/foo.ts` → `cli` package
|
|
60
|
+
- `apps/web/pages/index.tsx` → `web` package
|
|
61
|
+
- `libs/core/utils.ts` → `core` package
|
|
62
|
+
- Root-level files (README, configs) → may affect all packages or none
|
|
63
|
+
|
|
64
|
+
3. **Read package.json for each affected package**:
|
|
65
|
+
```bash
|
|
66
|
+
cat packages/cli/package.json | jq '.name'
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
### Handling Root Changes
|
|
70
|
+
|
|
71
|
+
Files at the repository root typically don't need changesets:
|
|
72
|
+
- `.github/*` - CI/CD changes
|
|
73
|
+
- `*.md` - Documentation
|
|
74
|
+
- `.eslintrc`, `tsconfig.json` - Config files
|
|
75
|
+
- `package.json` (root) - Dependency updates
|
|
76
|
+
|
|
77
|
+
Exception: If root changes affect package behavior, include relevant packages.
|
|
78
|
+
|
|
79
|
+
## Version Inference
|
|
80
|
+
|
|
81
|
+
### From Conventional Commits
|
|
82
|
+
|
|
83
|
+
Parse commit messages in the PR:
|
|
84
|
+
```bash
|
|
85
|
+
gh pr view <number> --json commits --jq '.commits[].messageHeadline'
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
| Prefix | Version | Example |
|
|
89
|
+
|--------|---------|---------|
|
|
90
|
+
| `feat:` | minor | `feat: add retry logic` |
|
|
91
|
+
| `feat!:` | major | `feat!: change API signature` |
|
|
92
|
+
| `fix:` | patch | `fix: handle null case` |
|
|
93
|
+
| `perf:` | patch | `perf: optimize query` |
|
|
94
|
+
| `refactor:` | patch | `refactor: extract helper` |
|
|
95
|
+
| `docs:` | patch | `docs: update README` |
|
|
96
|
+
| `chore:` | patch | `chore: update deps` |
|
|
97
|
+
| `BREAKING CHANGE` | major | (in commit body) |
|
|
98
|
+
|
|
99
|
+
### From PR Content
|
|
100
|
+
|
|
101
|
+
If no conventional commits, analyze:
|
|
102
|
+
- PR title for keywords (add, fix, change, remove, break)
|
|
103
|
+
- PR body for context
|
|
104
|
+
- File changes (new files = likely feature, modified = likely fix)
|
|
105
|
+
|
|
106
|
+
### Default Behavior
|
|
107
|
+
|
|
108
|
+
When uncertain:
|
|
109
|
+
- Default to `patch` for single-package changes
|
|
110
|
+
- Ask via comment if breaking changes are detected but unclear
|
|
111
|
+
|
|
112
|
+
## Changeset Format
|
|
113
|
+
|
|
114
|
+
Changesets use this format in `.changeset/<random-id>.md`:
|
|
115
|
+
|
|
116
|
+
```markdown
|
|
117
|
+
---
|
|
118
|
+
"@myorg/cli": minor
|
|
119
|
+
"@myorg/core": patch
|
|
120
|
+
---
|
|
121
|
+
|
|
122
|
+
Add retry logic for failed API requests
|
|
123
|
+
|
|
124
|
+
The CLI now automatically retries failed requests up to 3 times with exponential backoff.
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
### Formatting Rules
|
|
128
|
+
|
|
129
|
+
1. **YAML frontmatter**: Package names in quotes, version bump type
|
|
130
|
+
2. **Summary line**: Imperative mood, user-facing (what changed, not how)
|
|
131
|
+
3. **Optional body**: Additional context, migration notes for breaking changes
|
|
132
|
+
4. **Length**: Summary under 80 chars, body can be multiple paragraphs
|
|
133
|
+
|
|
134
|
+
### Good vs Bad Summaries
|
|
135
|
+
|
|
136
|
+
| Bad (dev-speak) | Good (user-facing) |
|
|
137
|
+
|-----------------|-------------------|
|
|
138
|
+
| `refactored auth module` | `Improved authentication reliability` |
|
|
139
|
+
| `fixed bug in parser` | `Fixed parsing of nested arrays` |
|
|
140
|
+
| `added new function` | `Add support for custom themes` |
|
|
141
|
+
| `updated dependencies` | `Security updates for dependencies` |
|
|
142
|
+
|
|
143
|
+
## Writing the Changeset
|
|
144
|
+
|
|
145
|
+
Use the `write-changeset` tool to create the changeset file:
|
|
146
|
+
|
|
147
|
+
### Tool Arguments
|
|
148
|
+
|
|
149
|
+
| Argument | Required | Description |
|
|
150
|
+
|----------|----------|-------------|
|
|
151
|
+
| `packages` | Yes | Object mapping package names to bump types |
|
|
152
|
+
| `summary` | Yes | Short summary (imperative mood, user-facing) |
|
|
153
|
+
| `body` | No | Additional details or migration notes |
|
|
154
|
+
|
|
155
|
+
### Example
|
|
156
|
+
|
|
157
|
+
```json
|
|
158
|
+
{
|
|
159
|
+
"packages": {
|
|
160
|
+
"@myorg/cli": "minor",
|
|
161
|
+
"@myorg/core": "patch"
|
|
162
|
+
},
|
|
163
|
+
"summary": "Add retry logic for failed API requests",
|
|
164
|
+
"body": "The CLI now automatically retries failed requests up to 3 times with exponential backoff."
|
|
165
|
+
}
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
## Mode: commit
|
|
169
|
+
|
|
170
|
+
When mode is `commit`:
|
|
171
|
+
|
|
172
|
+
1. Generate changeset using `write-changeset` tool
|
|
173
|
+
2. Stage the new file:
|
|
174
|
+
```bash
|
|
175
|
+
git add .changeset/*.md
|
|
176
|
+
```
|
|
177
|
+
3. Commit with `[skip ci]` to prevent infinite workflow loops:
|
|
178
|
+
```bash
|
|
179
|
+
git commit -m "chore: add changeset for PR #<number> [skip ci]"
|
|
180
|
+
```
|
|
181
|
+
4. Push to PR branch:
|
|
182
|
+
```bash
|
|
183
|
+
git push
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
**CRITICAL**: Always include `[skip ci]` in the commit message to prevent the workflow from triggering itself.
|
|
187
|
+
|
|
188
|
+
## Mode: comment
|
|
189
|
+
|
|
190
|
+
When mode is `comment`:
|
|
191
|
+
|
|
192
|
+
1. Generate the changeset content
|
|
193
|
+
2. Post as PR comment with the suggested changeset:
|
|
194
|
+
|
|
195
|
+
````markdown
|
|
196
|
+
## Suggested Changeset
|
|
197
|
+
|
|
198
|
+
Based on the changes in this PR, here's the recommended changeset:
|
|
199
|
+
|
|
200
|
+
```markdown
|
|
201
|
+
---
|
|
202
|
+
"@myorg/cli": minor
|
|
203
|
+
---
|
|
204
|
+
|
|
205
|
+
Add retry logic for failed API requests
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
<details>
|
|
209
|
+
<summary>How to apply</summary>
|
|
210
|
+
|
|
211
|
+
Create this file as `.changeset/<any-name>.md` and commit it to this PR.
|
|
212
|
+
|
|
213
|
+
Or run: `npx changeset add` and follow the prompts.
|
|
214
|
+
</details>
|
|
215
|
+
````
|
|
216
|
+
|
|
217
|
+
## Edge Cases
|
|
218
|
+
|
|
219
|
+
### No Package Changes
|
|
220
|
+
|
|
221
|
+
If changes only affect non-package files (CI, docs, root configs):
|
|
222
|
+
- In `commit` mode: Skip creating changeset, post comment explaining why
|
|
223
|
+
- In `comment` mode: Explain that no changeset is needed
|
|
224
|
+
|
|
225
|
+
### Multiple Packages, Same Change
|
|
226
|
+
|
|
227
|
+
When a change spans packages but represents one logical feature:
|
|
228
|
+
- Create ONE changeset file
|
|
229
|
+
- List all affected packages with appropriate bumps
|
|
230
|
+
- Write a unified summary
|
|
231
|
+
|
|
232
|
+
### Existing Changeset
|
|
233
|
+
|
|
234
|
+
Before creating a new changeset:
|
|
235
|
+
```bash
|
|
236
|
+
ls .changeset/*.md 2>/dev/null | head -5
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
If changesets already exist for this PR:
|
|
240
|
+
- Check if they cover the current changes
|
|
241
|
+
- Only add a new one if there are uncovered changes
|
|
242
|
+
- Never overwrite existing changesets
|
|
243
|
+
|
|
244
|
+
## Common Mistakes to Avoid
|
|
245
|
+
|
|
246
|
+
- Do NOT create changesets for documentation-only changes in most cases
|
|
247
|
+
- Do NOT guess package names - always verify from package.json
|
|
248
|
+
- Do NOT create empty changesets
|
|
249
|
+
- Do NOT overwrite existing changesets from previous commits
|
|
250
|
+
- Do NOT commit in `comment` mode
|
|
251
|
+
- Do NOT assume monorepo structure - verify it exists first
|
|
252
|
+
- Do NOT forget `[skip ci]` in commit message - this causes infinite workflow loops
|
|
253
|
+
|
|
254
|
+
## Non-Monorepo Fallback
|
|
255
|
+
|
|
256
|
+
If no monorepo structure is detected (single package.json at root):
|
|
257
|
+
- Use the package name from root package.json
|
|
258
|
+
- Follow the same version inference rules
|
|
259
|
+
- Changeset format remains the same
|
|
260
|
+
|
|
261
|
+
## Example Changeset Output
|
|
262
|
+
|
|
263
|
+
For a PR that adds a feature to the CLI and fixes a related bug in core:
|
|
264
|
+
|
|
265
|
+
```markdown
|
|
266
|
+
---
|
|
267
|
+
"@myorg/cli": minor
|
|
268
|
+
"@myorg/core": patch
|
|
269
|
+
---
|
|
270
|
+
|
|
271
|
+
Add support for custom retry strategies
|
|
272
|
+
|
|
273
|
+
Users can now configure custom retry strategies for API requests. The default exponential backoff behavior is unchanged.
|
|
274
|
+
|
|
275
|
+
```
|
|
276
|
+
|
|
277
|
+
## Checklist Before Submitting
|
|
278
|
+
|
|
279
|
+
- [ ] Verified package names from actual package.json files
|
|
280
|
+
- [ ] Version bump matches the change type
|
|
281
|
+
- [ ] Summary is user-facing, not developer-focused
|
|
282
|
+
- [ ] Summary uses imperative mood ("Add" not "Added")
|
|
283
|
+
- [ ] No duplicate changesets for the same changes
|
|
284
|
+
- [ ] File committed only in `commit` mode
|
|
285
|
+
- [ ] Commit message includes `[skip ci]` (commit mode only)
|
package/dist/cli/index.js
CHANGED
|
@@ -1,58 +1,58 @@
|
|
|
1
1
|
#!/usr/bin/env bun
|
|
2
2
|
// @bun
|
|
3
|
-
var gs=Object.create;var{getPrototypeOf:xs,defineProperty:_o,getOwnPropertyNames:ks}=Object;var ys=Object.prototype.hasOwnProperty;var H=(s,n,e)=>{e=s!=null?gs(xs(s)):{};let l=n||!s||!s.__esModule?_o(e,"default",{value:s,enumerable:!0}):e;for(let r of ks(s))if(!ys.call(l,r))_o(l,r,{get:()=>s[r],enumerable:!0});return l};var u=(s,n)=>()=>(n||s((n={exports:{}}).exports,n),n.exports);var D=u((gn,Ao)=>{var F={to(s,n){if(!n)return`\x1B[${s+1}G`;return`\x1B[${n+1};${s+1}H`},move(s,n){let e="";if(s<0)e+=`\x1B[${-s}D`;else if(s>0)e+=`\x1B[${s}C`;if(n<0)e+=`\x1B[${-n}A`;else if(n>0)e+=`\x1B[${n}B`;return e},up:(s=1)=>`\x1B[${s}A`,down:(s=1)=>`\x1B[${s}B`,forward:(s=1)=>`\x1B[${s}C`,backward:(s=1)=>`\x1B[${s}D`,nextLine:(s=1)=>"\x1B[E".repeat(s),prevLine:(s=1)=>"\x1B[F".repeat(s),left:"\x1B[G",hide:"\x1B[?25l",show:"\x1B[?25h",save:"\x1B7",restore:"\x1B8"},Es={up:(s=1)=>"\x1B[S".repeat(s),down:(s=1)=>"\x1B[T".repeat(s)},Is={screen:"\x1B[2J",up:(s=1)=>"\x1B[1J".repeat(s),down:(s=1)=>"\x1B[J".repeat(s),line:"\x1B[2K",lineEnd:"\x1B[K",lineStart:"\x1B[1K",lines(s){let n="";for(let e=0;e<s;e++)n+=this.line+(e<s-1?F.up():"");if(s)n+=F.left;return n}};Ao.exports={cursor:F,scroll:Es,erase:Is,beep:"\x07"}});var so=u((xn,oo)=>{var V=process||{},Co=V.argv||[],G=V.env||{},Os=!(!!G.NO_COLOR||Co.includes("--no-color"))&&(!!G.FORCE_COLOR||Co.includes("--color")||V.platform==="win32"||(V.stdout||{}).isTTY&&G.TERM!=="dumb"||!!G.CI),vs=(s,n,e=s)=>(l)=>{let r=""+l,i=r.indexOf(n,s.length);return~i?s+$s(r,n,e,i)+n:s+r+n},$s=(s,n,e,l)=>{let r="",i=0;do r+=s.substring(i,l)+e,i=l+n.length,l=s.indexOf(n,i);while(~l);return r+s.substring(i)},No=(s=Os)=>{let n=s?vs:()=>String;return{isColorSupported:s,reset:n("\x1B[0m","\x1B[0m"),bold:n("\x1B[1m","\x1B[22m","\x1B[22m\x1B[1m"),dim:n("\x1B[2m","\x1B[22m","\x1B[22m\x1B[2m"),italic:n("\x1B[3m","\x1B[23m"),underline:n("\x1B[4m","\x1B[24m"),inverse:n("\x1B[7m","\x1B[27m"),hidden:n("\x1B[8m","\x1B[28m"),strikethrough:n("\x1B[9m","\x1B[29m"),black:n("\x1B[30m","\x1B[39m"),red:n("\x1B[31m","\x1B[39m"),green:n("\x1B[32m","\x1B[39m"),yellow:n("\x1B[33m","\x1B[39m"),blue:n("\x1B[34m","\x1B[39m"),magenta:n("\x1B[35m","\x1B[39m"),cyan:n("\x1B[36m","\x1B[39m"),white:n("\x1B[37m","\x1B[39m"),gray:n("\x1B[90m","\x1B[39m"),bgBlack:n("\x1B[40m","\x1B[49m"),bgRed:n("\x1B[41m","\x1B[49m"),bgGreen:n("\x1B[42m","\x1B[49m"),bgYellow:n("\x1B[43m","\x1B[49m"),bgBlue:n("\x1B[44m","\x1B[49m"),bgMagenta:n("\x1B[45m","\x1B[49m"),bgCyan:n("\x1B[46m","\x1B[49m"),bgWhite:n("\x1B[47m","\x1B[49m"),blackBright:n("\x1B[90m","\x1B[39m"),redBright:n("\x1B[91m","\x1B[39m"),greenBright:n("\x1B[92m","\x1B[39m"),yellowBright:n("\x1B[93m","\x1B[39m"),blueBright:n("\x1B[94m","\x1B[39m"),magentaBright:n("\x1B[95m","\x1B[39m"),cyanBright:n("\x1B[96m","\x1B[39m"),whiteBright:n("\x1B[97m","\x1B[39m"),bgBlackBright:n("\x1B[100m","\x1B[49m"),bgRedBright:n("\x1B[101m","\x1B[49m"),bgGreenBright:n("\x1B[102m","\x1B[49m"),bgYellowBright:n("\x1B[103m","\x1B[49m"),bgBlueBright:n("\x1B[104m","\x1B[49m"),bgMagentaBright:n("\x1B[105m","\x1B[49m"),bgCyanBright:n("\x1B[106m","\x1B[49m"),bgWhiteBright:n("\x1B[107m","\x1B[49m")}};oo.exports=No();oo.exports.createColors=No});var ps=u((un,mn)=>{mn.exports={name:"@activade/open-workflows",version:"2.0.5",description:"AI-powered GitHub automation workflows via composite actions",keywords:["github","github-actions","ai","automation","code-review","pr-review","issue-labeling","opencode"],author:"activadee",license:"MIT",repository:{type:"git",url:"git+https://github.com/activadee/open-workflows.git"},type:"module",bin:{"open-workflows":"dist/cli/index.js"},files:["dist","actions","README.md","LICENSE"],scripts:{clean:"rm -rf dist",build:"bun run clean && bun build src/cli/index.ts --outdir dist/cli --target bun --format esm --minify",dev:"bun run build --watch",typecheck:"tsc --noEmit",test:"bun test",prepublishOnly:"bun run clean && bun run build && bun run typecheck"},dependencies:{"@clack/prompts":"^0.10.0",picocolors:"^1.1.1"},devDependencies:{"@types/node":"^22.0.0","@types/bun":"^1.3.5",typescript:"^5.6.0"},engines:{node:">=18.0.0"}}});import{stripVTControlCharacters as co}from"util";var x=H(D(),1);import{stdin as Lo,stdout as Go}from"process";import*as S from"readline";import To from"readline";import{Writable as Ss}from"stream";function _s({onlyFirst:s=!1}={}){let n=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?(?:\\u0007|\\u001B\\u005C|\\u009C))","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]))"].join("|");return new RegExp(n,s?void 0:"g")}var As=_s();function Vo(s){if(typeof s!="string")throw TypeError(`Expected a \`string\`, got \`${typeof s}\``);return s.replace(As,"")}function Yo(s){return s&&s.__esModule&&Object.prototype.hasOwnProperty.call(s,"default")?s.default:s}var jo={exports:{}};(function(s){var n={};s.exports=n,n.eastAsianWidth=function(l){var r=l.charCodeAt(0),i=l.length==2?l.charCodeAt(1):0,o=r;return 55296<=r&&r<=56319&&56320<=i&&i<=57343&&(r&=1023,i&=1023,o=r<<10|i,o+=65536),o==12288||65281<=o&&o<=65376||65504<=o&&o<=65510?"F":o==8361||65377<=o&&o<=65470||65474<=o&&o<=65479||65482<=o&&o<=65487||65490<=o&&o<=65495||65498<=o&&o<=65500||65512<=o&&o<=65518?"H":4352<=o&&o<=4447||4515<=o&&o<=4519||4602<=o&&o<=4607||9001<=o&&o<=9002||11904<=o&&o<=11929||11931<=o&&o<=12019||12032<=o&&o<=12245||12272<=o&&o<=12283||12289<=o&&o<=12350||12353<=o&&o<=12438||12441<=o&&o<=12543||12549<=o&&o<=12589||12593<=o&&o<=12686||12688<=o&&o<=12730||12736<=o&&o<=12771||12784<=o&&o<=12830||12832<=o&&o<=12871||12880<=o&&o<=13054||13056<=o&&o<=19903||19968<=o&&o<=42124||42128<=o&&o<=42182||43360<=o&&o<=43388||44032<=o&&o<=55203||55216<=o&&o<=55238||55243<=o&&o<=55291||63744<=o&&o<=64255||65040<=o&&o<=65049||65072<=o&&o<=65106||65108<=o&&o<=65126||65128<=o&&o<=65131||110592<=o&&o<=110593||127488<=o&&o<=127490||127504<=o&&o<=127546||127552<=o&&o<=127560||127568<=o&&o<=127569||131072<=o&&o<=194367||177984<=o&&o<=196605||196608<=o&&o<=262141?"W":32<=o&&o<=126||162<=o&&o<=163||165<=o&&o<=166||o==172||o==175||10214<=o&&o<=10221||10629<=o&&o<=10630?"Na":o==161||o==164||167<=o&&o<=168||o==170||173<=o&&o<=174||176<=o&&o<=180||182<=o&&o<=186||188<=o&&o<=191||o==198||o==208||215<=o&&o<=216||222<=o&&o<=225||o==230||232<=o&&o<=234||236<=o&&o<=237||o==240||242<=o&&o<=243||247<=o&&o<=250||o==252||o==254||o==257||o==273||o==275||o==283||294<=o&&o<=295||o==299||305<=o&&o<=307||o==312||319<=o&&o<=322||o==324||328<=o&&o<=331||o==333||338<=o&&o<=339||358<=o&&o<=359||o==363||o==462||o==464||o==466||o==468||o==470||o==472||o==474||o==476||o==593||o==609||o==708||o==711||713<=o&&o<=715||o==717||o==720||728<=o&&o<=731||o==733||o==735||768<=o&&o<=879||913<=o&&o<=929||931<=o&&o<=937||945<=o&&o<=961||963<=o&&o<=969||o==1025||1040<=o&&o<=1103||o==1105||o==8208||8211<=o&&o<=8214||8216<=o&&o<=8217||8220<=o&&o<=8221||8224<=o&&o<=8226||8228<=o&&o<=8231||o==8240||8242<=o&&o<=8243||o==8245||o==8251||o==8254||o==8308||o==8319||8321<=o&&o<=8324||o==8364||o==8451||o==8453||o==8457||o==8467||o==8470||8481<=o&&o<=8482||o==8486||o==8491||8531<=o&&o<=8532||8539<=o&&o<=8542||8544<=o&&o<=8555||8560<=o&&o<=8569||o==8585||8592<=o&&o<=8601||8632<=o&&o<=8633||o==8658||o==8660||o==8679||o==8704||8706<=o&&o<=8707||8711<=o&&o<=8712||o==8715||o==8719||o==8721||o==8725||o==8730||8733<=o&&o<=8736||o==8739||o==8741||8743<=o&&o<=8748||o==8750||8756<=o&&o<=8759||8764<=o&&o<=8765||o==8776||o==8780||o==8786||8800<=o&&o<=8801||8804<=o&&o<=8807||8810<=o&&o<=8811||8814<=o&&o<=8815||8834<=o&&o<=8835||8838<=o&&o<=8839||o==8853||o==8857||o==8869||o==8895||o==8978||9312<=o&&o<=9449||9451<=o&&o<=9547||9552<=o&&o<=9587||9600<=o&&o<=9615||9618<=o&&o<=9621||9632<=o&&o<=9633||9635<=o&&o<=9641||9650<=o&&o<=9651||9654<=o&&o<=9655||9660<=o&&o<=9661||9664<=o&&o<=9665||9670<=o&&o<=9672||o==9675||9678<=o&&o<=9681||9698<=o&&o<=9701||o==9711||9733<=o&&o<=9734||o==9737||9742<=o&&o<=9743||9748<=o&&o<=9749||o==9756||o==9758||o==9792||o==9794||9824<=o&&o<=9825||9827<=o&&o<=9829||9831<=o&&o<=9834||9836<=o&&o<=9837||o==9839||9886<=o&&o<=9887||9918<=o&&o<=9919||9924<=o&&o<=9933||9935<=o&&o<=9953||o==9955||9960<=o&&o<=9983||o==10045||o==10071||10102<=o&&o<=10111||11093<=o&&o<=11097||12872<=o&&o<=12879||57344<=o&&o<=63743||65024<=o&&o<=65039||o==65533||127232<=o&&o<=127242||127248<=o&&o<=127277||127280<=o&&o<=127337||127344<=o&&o<=127386||917760<=o&&o<=917999||983040<=o&&o<=1048573||1048576<=o&&o<=1114109?"A":"N"},n.characterLength=function(l){var r=this.eastAsianWidth(l);return r=="F"||r=="W"||r=="A"?2:1};function e(l){return l.match(/[\uD800-\uDBFF][\uDC00-\uDFFF]|[^\uD800-\uDFFF]/g)||[]}n.length=function(l){for(var r=e(l),i=0,o=0;o<r.length;o++)i=i+this.characterLength(r[o]);return i},n.slice=function(l,r,i){textLen=n.length(l),r=r||0,i=i||1,r<0&&(r=textLen+r),i<0&&(i=textLen+i);for(var o="",a=0,p=e(l),m=0;m<p.length;m++){var w=p[m],c=n.length(w);if(a>=r-(c==2?1:0))if(a+c<=i)o+=w;else break;a+=c}return o}})(jo);var Cs=jo.exports,Ns=Yo(Cs),Ts=function(){return/\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67)\uDB40\uDC7F|(?:\uD83E\uDDD1\uD83C\uDFFF\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFC-\uDFFF])|\uD83D\uDC68(?:\uD83C\uDFFB(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|[\u2695\u2696\u2708]\uFE0F|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))?|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])\uFE0F|\u200D(?:(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D[\uDC66\uDC67])|\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC)?|(?:\uD83D\uDC69(?:\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69]))|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC69(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83E\uDDD1(?:\u200D(?:\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDE36\u200D\uD83C\uDF2B|\uD83C\uDFF3\uFE0F\u200D\u26A7|\uD83D\uDC3B\u200D\u2744|(?:(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\uD83C\uDFF4\u200D\u2620|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])\u200D[\u2640\u2642]|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u2600-\u2604\u260E\u2611\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26B0\u26B1\u26C8\u26CF\u26D1\u26D3\u26E9\u26F0\u26F1\u26F4\u26F7\u26F8\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u3030\u303D\u3297\u3299]|\uD83C[\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]|\uD83D[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3])\uFE0F|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDE35\u200D\uD83D\uDCAB|\uD83D\uDE2E\u200D\uD83D\uDCA8|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83E\uDDD1(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83D\uDC69(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF6\uD83C\uDDE6|\uD83C\uDDF4\uD83C\uDDF2|\uD83D\uDC08\u200D\u2B1B|\u2764\uFE0F\u200D(?:\uD83D\uDD25|\uD83E\uDE79)|\uD83D\uDC41\uFE0F|\uD83C\uDFF3\uFE0F|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|[#\*0-9]\uFE0F\u20E3|\u2764\uFE0F|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|\uD83C\uDFF4|(?:[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270C\u270D]|\uD83D[\uDD74\uDD90])(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC08\uDC15\uDC3B\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE2E\uDE35\uDE36\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5]|\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD]|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF]|[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0D\uDD0E\uDD10-\uDD17\uDD1D\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78\uDD7A-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCB\uDDD0\uDDE0-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6]|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26A7\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5-\uDED7\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDD77\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g},Rs=Yo(Ts);function K(s,n={}){if(typeof s!="string"||s.length===0||(n={ambiguousIsNarrow:!0,...n},s=Vo(s),s.length===0))return 0;s=s.replace(Rs()," ");let e=n.ambiguousIsNarrow?1:2,l=0;for(let r of s){let i=r.codePointAt(0);if(i<=31||i>=127&&i<=159||i>=768&&i<=879)continue;switch(Ns.eastAsianWidth(r)){case"F":case"W":l+=2;break;case"A":l+=e;break;default:l+=1}}return l}var no=10,Ro=(s=0)=>(n)=>`\x1B[${n+s}m`,Po=(s=0)=>(n)=>`\x1B[${38+s};5;${n}m`,Bo=(s=0)=>(n,e,l)=>`\x1B[${38+s};2;${n};${e};${l}m`,f={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};Object.keys(f.modifier);var Ps=Object.keys(f.color),Bs=Object.keys(f.bgColor);[...Ps,...Bs];function Hs(){let s=new Map;for(let[n,e]of Object.entries(f)){for(let[l,r]of Object.entries(e))f[l]={open:`\x1B[${r[0]}m`,close:`\x1B[${r[1]}m`},e[l]=f[l],s.set(r[0],r[1]);Object.defineProperty(f,n,{value:e,enumerable:!1})}return Object.defineProperty(f,"codes",{value:s,enumerable:!1}),f.color.close="\x1B[39m",f.bgColor.close="\x1B[49m",f.color.ansi=Ro(),f.color.ansi256=Po(),f.color.ansi16m=Bo(),f.bgColor.ansi=Ro(no),f.bgColor.ansi256=Po(no),f.bgColor.ansi16m=Bo(no),Object.defineProperties(f,{rgbToAnsi256:{value:(n,e,l)=>n===e&&e===l?n<8?16:n>248?231:Math.round((n-8)/247*24)+232:16+36*Math.round(n/255*5)+6*Math.round(e/255*5)+Math.round(l/255*5),enumerable:!1},hexToRgb:{value:(n)=>{let e=/[a-f\d]{6}|[a-f\d]{3}/i.exec(n.toString(16));if(!e)return[0,0,0];let[l]=e;l.length===3&&(l=[...l].map((i)=>i+i).join(""));let r=Number.parseInt(l,16);return[r>>16&255,r>>8&255,r&255]},enumerable:!1},hexToAnsi256:{value:(n)=>f.rgbToAnsi256(...f.hexToRgb(n)),enumerable:!1},ansi256ToAnsi:{value:(n)=>{if(n<8)return 30+n;if(n<16)return 90+(n-8);let e,l,r;if(n>=232)e=((n-232)*10+8)/255,l=e,r=e;else{n-=16;let a=n%36;e=Math.floor(n/36)/5,l=Math.floor(a/6)/5,r=a%6/5}let i=Math.max(e,l,r)*2;if(i===0)return 30;let o=30+(Math.round(r)<<2|Math.round(l)<<1|Math.round(e));return i===2&&(o+=60),o},enumerable:!1},rgbToAnsi:{value:(n,e,l)=>f.ansi256ToAnsi(f.rgbToAnsi256(n,e,l)),enumerable:!1},hexToAnsi:{value:(n)=>f.ansi256ToAnsi(f.hexToAnsi256(n)),enumerable:!1}}),f}var Ks=Hs(),q=new Set(["\x1B","\x9B"]),Ws=39,lo="\x07",qo="[",Us="]",zo="m",io=`${Us}8;;`,Ho=(s)=>`${q.values().next().value}${qo}${s}${zo}`,Ko=(s)=>`${q.values().next().value}${io}${s}${lo}`,Ls=(s)=>s.split(" ").map((n)=>K(n)),eo=(s,n,e)=>{let l=[...n],r=!1,i=!1,o=K(Vo(s[s.length-1]));for(let[a,p]of l.entries()){let m=K(p);if(o+m<=e?s[s.length-1]+=p:(s.push(p),o=0),q.has(p)&&(r=!0,i=l.slice(a+1).join("").startsWith(io)),r){i?p===lo&&(r=!1,i=!1):p===zo&&(r=!1);continue}o+=m,o===e&&a<l.length-1&&(s.push(""),o=0)}!o&&s[s.length-1].length>0&&s.length>1&&(s[s.length-2]+=s.pop())},Gs=(s)=>{let n=s.split(" "),e=n.length;for(;e>0&&!(K(n[e-1])>0);)e--;return e===n.length?s:n.slice(0,e).join(" ")+n.slice(e).join("")},Vs=(s,n,e={})=>{if(e.trim!==!1&&s.trim()==="")return"";let l="",r,i,o=Ls(s),a=[""];for(let[m,w]of s.split(" ").entries()){e.trim!==!1&&(a[a.length-1]=a[a.length-1].trimStart());let c=K(a[a.length-1]);if(m!==0&&(c>=n&&(e.wordWrap===!1||e.trim===!1)&&(a.push(""),c=0),(c>0||e.trim===!1)&&(a[a.length-1]+=" ",c++)),e.hard&&o[m]>n){let h=n-c,I=1+Math.floor((o[m]-h-1)/n);Math.floor((o[m]-1)/n)<I&&a.push(""),eo(a,w,n);continue}if(c+o[m]>n&&c>0&&o[m]>0){if(e.wordWrap===!1&&c<n){eo(a,w,n);continue}a.push("")}if(c+o[m]>n&&e.wordWrap===!1){eo(a,w,n);continue}a[a.length-1]+=w}e.trim!==!1&&(a=a.map((m)=>Gs(m)));let p=[...a.join(`
|
|
4
|
-
`)];for(let[m,w]of p.entries()){if(l+=w,q.has(w)){let{groups:
|
|
5
|
-
`?(
|
|
6
|
-
`&&(r&&c&&(l+=
|
|
3
|
+
var xs=Object.create;var{getPrototypeOf:ks,defineProperty:Ao,getOwnPropertyNames:Es}=Object;var ys=Object.prototype.hasOwnProperty;var H=(s,e,n)=>{n=s!=null?xs(ks(s)):{};let l=e||!s||!s.__esModule?Ao(n,"default",{value:s,enumerable:!0}):n;for(let r of Es(s))if(!ys.call(l,r))Ao(l,r,{get:()=>s[r],enumerable:!0});return l};var u=(s,e)=>()=>(e||s((e={exports:{}}).exports,e),e.exports);var D=u((de,No)=>{var F={to(s,e){if(!e)return`\x1B[${s+1}G`;return`\x1B[${e+1};${s+1}H`},move(s,e){let n="";if(s<0)n+=`\x1B[${-s}D`;else if(s>0)n+=`\x1B[${s}C`;if(e<0)n+=`\x1B[${-e}A`;else if(e>0)n+=`\x1B[${e}B`;return n},up:(s=1)=>`\x1B[${s}A`,down:(s=1)=>`\x1B[${s}B`,forward:(s=1)=>`\x1B[${s}C`,backward:(s=1)=>`\x1B[${s}D`,nextLine:(s=1)=>"\x1B[E".repeat(s),prevLine:(s=1)=>"\x1B[F".repeat(s),left:"\x1B[G",hide:"\x1B[?25l",show:"\x1B[?25h",save:"\x1B7",restore:"\x1B8"},Is={up:(s=1)=>"\x1B[S".repeat(s),down:(s=1)=>"\x1B[T".repeat(s)},Os={screen:"\x1B[2J",up:(s=1)=>"\x1B[1J".repeat(s),down:(s=1)=>"\x1B[J".repeat(s),line:"\x1B[2K",lineEnd:"\x1B[K",lineStart:"\x1B[1K",lines(s){let e="";for(let n=0;n<s;n++)e+=this.line+(n<s-1?F.up():"");if(s)e+=F.left;return e}};No.exports={cursor:F,scroll:Is,erase:Os,beep:"\x07"}});var so=u((xe,oo)=>{var V=process||{},Co=V.argv||[],L=V.env||{},vs=!(!!L.NO_COLOR||Co.includes("--no-color"))&&(!!L.FORCE_COLOR||Co.includes("--color")||V.platform==="win32"||(V.stdout||{}).isTTY&&L.TERM!=="dumb"||!!L.CI),$s=(s,e,n=s)=>(l)=>{let r=""+l,t=r.indexOf(e,s.length);return~t?s+_s(r,e,n,t)+e:s+r+e},_s=(s,e,n,l)=>{let r="",t=0;do r+=s.substring(t,l)+n,t=l+e.length,l=s.indexOf(e,t);while(~l);return r+s.substring(t)},To=(s=vs)=>{let e=s?$s:()=>String;return{isColorSupported:s,reset:e("\x1B[0m","\x1B[0m"),bold:e("\x1B[1m","\x1B[22m","\x1B[22m\x1B[1m"),dim:e("\x1B[2m","\x1B[22m","\x1B[22m\x1B[2m"),italic:e("\x1B[3m","\x1B[23m"),underline:e("\x1B[4m","\x1B[24m"),inverse:e("\x1B[7m","\x1B[27m"),hidden:e("\x1B[8m","\x1B[28m"),strikethrough:e("\x1B[9m","\x1B[29m"),black:e("\x1B[30m","\x1B[39m"),red:e("\x1B[31m","\x1B[39m"),green:e("\x1B[32m","\x1B[39m"),yellow:e("\x1B[33m","\x1B[39m"),blue:e("\x1B[34m","\x1B[39m"),magenta:e("\x1B[35m","\x1B[39m"),cyan:e("\x1B[36m","\x1B[39m"),white:e("\x1B[37m","\x1B[39m"),gray:e("\x1B[90m","\x1B[39m"),bgBlack:e("\x1B[40m","\x1B[49m"),bgRed:e("\x1B[41m","\x1B[49m"),bgGreen:e("\x1B[42m","\x1B[49m"),bgYellow:e("\x1B[43m","\x1B[49m"),bgBlue:e("\x1B[44m","\x1B[49m"),bgMagenta:e("\x1B[45m","\x1B[49m"),bgCyan:e("\x1B[46m","\x1B[49m"),bgWhite:e("\x1B[47m","\x1B[49m"),blackBright:e("\x1B[90m","\x1B[39m"),redBright:e("\x1B[91m","\x1B[39m"),greenBright:e("\x1B[92m","\x1B[39m"),yellowBright:e("\x1B[93m","\x1B[39m"),blueBright:e("\x1B[94m","\x1B[39m"),magentaBright:e("\x1B[95m","\x1B[39m"),cyanBright:e("\x1B[96m","\x1B[39m"),whiteBright:e("\x1B[97m","\x1B[39m"),bgBlackBright:e("\x1B[100m","\x1B[49m"),bgRedBright:e("\x1B[101m","\x1B[49m"),bgGreenBright:e("\x1B[102m","\x1B[49m"),bgYellowBright:e("\x1B[103m","\x1B[49m"),bgBlueBright:e("\x1B[104m","\x1B[49m"),bgMagentaBright:e("\x1B[105m","\x1B[49m"),bgCyanBright:e("\x1B[106m","\x1B[49m"),bgWhiteBright:e("\x1B[107m","\x1B[49m")}};oo.exports=To();oo.exports.createColors=To});var cs=u((on,me)=>{me.exports={name:"@activade/open-workflows",version:"2.0.6",description:"AI-powered GitHub automation workflows via composite actions",keywords:["github","github-actions","ai","automation","code-review","pr-review","issue-labeling","opencode"],author:"activadee",license:"MIT",repository:{type:"git",url:"git+https://github.com/activadee/open-workflows.git"},type:"module",bin:{"open-workflows":"dist/cli/index.js"},files:["dist","actions","README.md","LICENSE"],scripts:{clean:"rm -rf dist",build:"bun run clean && bun build src/cli/index.ts --outdir dist/cli --target bun --format esm --minify",dev:"bun run build --watch",typecheck:"tsc --noEmit",test:"bun test",prepublishOnly:"bun run clean && bun run build && bun run typecheck"},dependencies:{"@clack/prompts":"^0.10.0",picocolors:"^1.1.1"},devDependencies:{"@types/node":"^22.0.0","@types/bun":"^1.3.5",typescript:"^5.6.0"},engines:{node:">=18.0.0"}}});import{stripVTControlCharacters as co}from"util";var x=H(D(),1);import{stdin as Lo,stdout as Vo}from"process";import*as _ from"readline";import Po from"readline";import{Writable as Ss}from"stream";function As({onlyFirst:s=!1}={}){let e=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?(?:\\u0007|\\u001B\\u005C|\\u009C))","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]))"].join("|");return new RegExp(e,s?void 0:"g")}var Ns=As();function Yo(s){if(typeof s!="string")throw TypeError(`Expected a \`string\`, got \`${typeof s}\``);return s.replace(Ns,"")}function jo(s){return s&&s.__esModule&&Object.prototype.hasOwnProperty.call(s,"default")?s.default:s}var qo={exports:{}};(function(s){var e={};s.exports=e,e.eastAsianWidth=function(l){var r=l.charCodeAt(0),t=l.length==2?l.charCodeAt(1):0,o=r;return 55296<=r&&r<=56319&&56320<=t&&t<=57343&&(r&=1023,t&=1023,o=r<<10|t,o+=65536),o==12288||65281<=o&&o<=65376||65504<=o&&o<=65510?"F":o==8361||65377<=o&&o<=65470||65474<=o&&o<=65479||65482<=o&&o<=65487||65490<=o&&o<=65495||65498<=o&&o<=65500||65512<=o&&o<=65518?"H":4352<=o&&o<=4447||4515<=o&&o<=4519||4602<=o&&o<=4607||9001<=o&&o<=9002||11904<=o&&o<=11929||11931<=o&&o<=12019||12032<=o&&o<=12245||12272<=o&&o<=12283||12289<=o&&o<=12350||12353<=o&&o<=12438||12441<=o&&o<=12543||12549<=o&&o<=12589||12593<=o&&o<=12686||12688<=o&&o<=12730||12736<=o&&o<=12771||12784<=o&&o<=12830||12832<=o&&o<=12871||12880<=o&&o<=13054||13056<=o&&o<=19903||19968<=o&&o<=42124||42128<=o&&o<=42182||43360<=o&&o<=43388||44032<=o&&o<=55203||55216<=o&&o<=55238||55243<=o&&o<=55291||63744<=o&&o<=64255||65040<=o&&o<=65049||65072<=o&&o<=65106||65108<=o&&o<=65126||65128<=o&&o<=65131||110592<=o&&o<=110593||127488<=o&&o<=127490||127504<=o&&o<=127546||127552<=o&&o<=127560||127568<=o&&o<=127569||131072<=o&&o<=194367||177984<=o&&o<=196605||196608<=o&&o<=262141?"W":32<=o&&o<=126||162<=o&&o<=163||165<=o&&o<=166||o==172||o==175||10214<=o&&o<=10221||10629<=o&&o<=10630?"Na":o==161||o==164||167<=o&&o<=168||o==170||173<=o&&o<=174||176<=o&&o<=180||182<=o&&o<=186||188<=o&&o<=191||o==198||o==208||215<=o&&o<=216||222<=o&&o<=225||o==230||232<=o&&o<=234||236<=o&&o<=237||o==240||242<=o&&o<=243||247<=o&&o<=250||o==252||o==254||o==257||o==273||o==275||o==283||294<=o&&o<=295||o==299||305<=o&&o<=307||o==312||319<=o&&o<=322||o==324||328<=o&&o<=331||o==333||338<=o&&o<=339||358<=o&&o<=359||o==363||o==462||o==464||o==466||o==468||o==470||o==472||o==474||o==476||o==593||o==609||o==708||o==711||713<=o&&o<=715||o==717||o==720||728<=o&&o<=731||o==733||o==735||768<=o&&o<=879||913<=o&&o<=929||931<=o&&o<=937||945<=o&&o<=961||963<=o&&o<=969||o==1025||1040<=o&&o<=1103||o==1105||o==8208||8211<=o&&o<=8214||8216<=o&&o<=8217||8220<=o&&o<=8221||8224<=o&&o<=8226||8228<=o&&o<=8231||o==8240||8242<=o&&o<=8243||o==8245||o==8251||o==8254||o==8308||o==8319||8321<=o&&o<=8324||o==8364||o==8451||o==8453||o==8457||o==8467||o==8470||8481<=o&&o<=8482||o==8486||o==8491||8531<=o&&o<=8532||8539<=o&&o<=8542||8544<=o&&o<=8555||8560<=o&&o<=8569||o==8585||8592<=o&&o<=8601||8632<=o&&o<=8633||o==8658||o==8660||o==8679||o==8704||8706<=o&&o<=8707||8711<=o&&o<=8712||o==8715||o==8719||o==8721||o==8725||o==8730||8733<=o&&o<=8736||o==8739||o==8741||8743<=o&&o<=8748||o==8750||8756<=o&&o<=8759||8764<=o&&o<=8765||o==8776||o==8780||o==8786||8800<=o&&o<=8801||8804<=o&&o<=8807||8810<=o&&o<=8811||8814<=o&&o<=8815||8834<=o&&o<=8835||8838<=o&&o<=8839||o==8853||o==8857||o==8869||o==8895||o==8978||9312<=o&&o<=9449||9451<=o&&o<=9547||9552<=o&&o<=9587||9600<=o&&o<=9615||9618<=o&&o<=9621||9632<=o&&o<=9633||9635<=o&&o<=9641||9650<=o&&o<=9651||9654<=o&&o<=9655||9660<=o&&o<=9661||9664<=o&&o<=9665||9670<=o&&o<=9672||o==9675||9678<=o&&o<=9681||9698<=o&&o<=9701||o==9711||9733<=o&&o<=9734||o==9737||9742<=o&&o<=9743||9748<=o&&o<=9749||o==9756||o==9758||o==9792||o==9794||9824<=o&&o<=9825||9827<=o&&o<=9829||9831<=o&&o<=9834||9836<=o&&o<=9837||o==9839||9886<=o&&o<=9887||9918<=o&&o<=9919||9924<=o&&o<=9933||9935<=o&&o<=9953||o==9955||9960<=o&&o<=9983||o==10045||o==10071||10102<=o&&o<=10111||11093<=o&&o<=11097||12872<=o&&o<=12879||57344<=o&&o<=63743||65024<=o&&o<=65039||o==65533||127232<=o&&o<=127242||127248<=o&&o<=127277||127280<=o&&o<=127337||127344<=o&&o<=127386||917760<=o&&o<=917999||983040<=o&&o<=1048573||1048576<=o&&o<=1114109?"A":"N"},e.characterLength=function(l){var r=this.eastAsianWidth(l);return r=="F"||r=="W"||r=="A"?2:1};function n(l){return l.match(/[\uD800-\uDBFF][\uDC00-\uDFFF]|[^\uD800-\uDFFF]/g)||[]}e.length=function(l){for(var r=n(l),t=0,o=0;o<r.length;o++)t=t+this.characterLength(r[o]);return t},e.slice=function(l,r,t){textLen=e.length(l),r=r||0,t=t||1,r<0&&(r=textLen+r),t<0&&(t=textLen+t);for(var o="",a=0,p=n(l),m=0;m<p.length;m++){var w=p[m],c=e.length(w);if(a>=r-(c==2?1:0))if(a+c<=t)o+=w;else break;a+=c}return o}})(qo);var Cs=qo.exports,Ts=jo(Cs),Ps=function(){return/\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67)\uDB40\uDC7F|(?:\uD83E\uDDD1\uD83C\uDFFF\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFC-\uDFFF])|\uD83D\uDC68(?:\uD83C\uDFFB(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|[\u2695\u2696\u2708]\uFE0F|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))?|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])\uFE0F|\u200D(?:(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D[\uDC66\uDC67])|\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC)?|(?:\uD83D\uDC69(?:\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69]))|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC69(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83E\uDDD1(?:\u200D(?:\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDE36\u200D\uD83C\uDF2B|\uD83C\uDFF3\uFE0F\u200D\u26A7|\uD83D\uDC3B\u200D\u2744|(?:(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\uD83C\uDFF4\u200D\u2620|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])\u200D[\u2640\u2642]|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u2600-\u2604\u260E\u2611\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26B0\u26B1\u26C8\u26CF\u26D1\u26D3\u26E9\u26F0\u26F1\u26F4\u26F7\u26F8\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u3030\u303D\u3297\u3299]|\uD83C[\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]|\uD83D[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3])\uFE0F|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDE35\u200D\uD83D\uDCAB|\uD83D\uDE2E\u200D\uD83D\uDCA8|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83E\uDDD1(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83D\uDC69(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF6\uD83C\uDDE6|\uD83C\uDDF4\uD83C\uDDF2|\uD83D\uDC08\u200D\u2B1B|\u2764\uFE0F\u200D(?:\uD83D\uDD25|\uD83E\uDE79)|\uD83D\uDC41\uFE0F|\uD83C\uDFF3\uFE0F|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|[#\*0-9]\uFE0F\u20E3|\u2764\uFE0F|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|\uD83C\uDFF4|(?:[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270C\u270D]|\uD83D[\uDD74\uDD90])(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC08\uDC15\uDC3B\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE2E\uDE35\uDE36\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5]|\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD]|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF]|[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0D\uDD0E\uDD10-\uDD17\uDD1D\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78\uDD7A-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCB\uDDD0\uDDE0-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6]|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26A7\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5-\uDED7\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDD77\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g},Rs=jo(Ps);function K(s,e={}){if(typeof s!="string"||s.length===0||(e={ambiguousIsNarrow:!0,...e},s=Yo(s),s.length===0))return 0;s=s.replace(Rs()," ");let n=e.ambiguousIsNarrow?1:2,l=0;for(let r of s){let t=r.codePointAt(0);if(t<=31||t>=127&&t<=159||t>=768&&t<=879)continue;switch(Ts.eastAsianWidth(r)){case"F":case"W":l+=2;break;case"A":l+=n;break;default:l+=1}}return l}var eo=10,Ro=(s=0)=>(e)=>`\x1B[${e+s}m`,Bo=(s=0)=>(e)=>`\x1B[${38+s};5;${e}m`,Ho=(s=0)=>(e,n,l)=>`\x1B[${38+s};2;${e};${n};${l}m`,f={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};Object.keys(f.modifier);var Bs=Object.keys(f.color),Hs=Object.keys(f.bgColor);[...Bs,...Hs];function Ks(){let s=new Map;for(let[e,n]of Object.entries(f)){for(let[l,r]of Object.entries(n))f[l]={open:`\x1B[${r[0]}m`,close:`\x1B[${r[1]}m`},n[l]=f[l],s.set(r[0],r[1]);Object.defineProperty(f,e,{value:n,enumerable:!1})}return Object.defineProperty(f,"codes",{value:s,enumerable:!1}),f.color.close="\x1B[39m",f.bgColor.close="\x1B[49m",f.color.ansi=Ro(),f.color.ansi256=Bo(),f.color.ansi16m=Ho(),f.bgColor.ansi=Ro(eo),f.bgColor.ansi256=Bo(eo),f.bgColor.ansi16m=Ho(eo),Object.defineProperties(f,{rgbToAnsi256:{value:(e,n,l)=>e===n&&n===l?e<8?16:e>248?231:Math.round((e-8)/247*24)+232:16+36*Math.round(e/255*5)+6*Math.round(n/255*5)+Math.round(l/255*5),enumerable:!1},hexToRgb:{value:(e)=>{let n=/[a-f\d]{6}|[a-f\d]{3}/i.exec(e.toString(16));if(!n)return[0,0,0];let[l]=n;l.length===3&&(l=[...l].map((t)=>t+t).join(""));let r=Number.parseInt(l,16);return[r>>16&255,r>>8&255,r&255]},enumerable:!1},hexToAnsi256:{value:(e)=>f.rgbToAnsi256(...f.hexToRgb(e)),enumerable:!1},ansi256ToAnsi:{value:(e)=>{if(e<8)return 30+e;if(e<16)return 90+(e-8);let n,l,r;if(e>=232)n=((e-232)*10+8)/255,l=n,r=n;else{e-=16;let a=e%36;n=Math.floor(e/36)/5,l=Math.floor(a/6)/5,r=a%6/5}let t=Math.max(n,l,r)*2;if(t===0)return 30;let o=30+(Math.round(r)<<2|Math.round(l)<<1|Math.round(n));return t===2&&(o+=60),o},enumerable:!1},rgbToAnsi:{value:(e,n,l)=>f.ansi256ToAnsi(f.rgbToAnsi256(e,n,l)),enumerable:!1},hexToAnsi:{value:(e)=>f.ansi256ToAnsi(f.hexToAnsi256(e)),enumerable:!1}}),f}var Us=Ks(),q=new Set(["\x1B","\x9B"]),Ws=39,lo="\x07",zo="[",Gs="]",Jo="m",to=`${Gs}8;;`,Ko=(s)=>`${q.values().next().value}${zo}${s}${Jo}`,Uo=(s)=>`${q.values().next().value}${to}${s}${lo}`,Ls=(s)=>s.split(" ").map((e)=>K(e)),no=(s,e,n)=>{let l=[...e],r=!1,t=!1,o=K(Yo(s[s.length-1]));for(let[a,p]of l.entries()){let m=K(p);if(o+m<=n?s[s.length-1]+=p:(s.push(p),o=0),q.has(p)&&(r=!0,t=l.slice(a+1).join("").startsWith(to)),r){t?p===lo&&(r=!1,t=!1):p===Jo&&(r=!1);continue}o+=m,o===n&&a<l.length-1&&(s.push(""),o=0)}!o&&s[s.length-1].length>0&&s.length>1&&(s[s.length-2]+=s.pop())},Vs=(s)=>{let e=s.split(" "),n=e.length;for(;n>0&&!(K(e[n-1])>0);)n--;return n===e.length?s:e.slice(0,n).join(" ")+e.slice(n).join("")},Ys=(s,e,n={})=>{if(n.trim!==!1&&s.trim()==="")return"";let l="",r,t,o=Ls(s),a=[""];for(let[m,w]of s.split(" ").entries()){n.trim!==!1&&(a[a.length-1]=a[a.length-1].trimStart());let c=K(a[a.length-1]);if(m!==0&&(c>=e&&(n.wordWrap===!1||n.trim===!1)&&(a.push(""),c=0),(c>0||n.trim===!1)&&(a[a.length-1]+=" ",c++)),n.hard&&o[m]>e){let g=e-c,I=1+Math.floor((o[m]-g-1)/e);Math.floor((o[m]-1)/e)<I&&a.push(""),no(a,w,e);continue}if(c+o[m]>e&&c>0&&o[m]>0){if(n.wordWrap===!1&&c<e){no(a,w,e);continue}a.push("")}if(c+o[m]>e&&n.wordWrap===!1){no(a,w,e);continue}a[a.length-1]+=w}n.trim!==!1&&(a=a.map((m)=>Vs(m)));let p=[...a.join(`
|
|
4
|
+
`)];for(let[m,w]of p.entries()){if(l+=w,q.has(w)){let{groups:g}=new RegExp(`(?:\\${zo}(?<code>\\d+)m|\\${to}(?<uri>.*)${lo})`).exec(p.slice(m).join(""))||{groups:{}};if(g.code!==void 0){let I=Number.parseFloat(g.code);r=I===Ws?void 0:I}else g.uri!==void 0&&(t=g.uri.length===0?void 0:g.uri)}let c=Us.codes.get(Number(r));p[m+1]===`
|
|
5
|
+
`?(t&&(l+=Uo("")),r&&c&&(l+=Ko(c))):w===`
|
|
6
|
+
`&&(r&&c&&(l+=Ko(r)),t&&(l+=Uo(t)))}return l};function Wo(s,e,n){return String(s).normalize().replace(/\r\n/g,`
|
|
7
7
|
`).split(`
|
|
8
|
-
`).map((l)=>
|
|
9
|
-
`)}var
|
|
10
|
-
`),l=
|
|
11
|
-
`),r=[];for(let
|
|
8
|
+
`).map((l)=>Ys(l,e,n)).join(`
|
|
9
|
+
`)}var js=["up","down","left","right","space","enter","cancel"],j={actions:new Set(js),aliases:new Map([["k","up"],["j","down"],["h","left"],["l","right"],["\x03","cancel"],["escape","cancel"]])};function io(s,e){if(typeof s=="string")return j.aliases.get(s)===e;for(let n of s)if(n!==void 0&&io(n,e))return!0;return!1}function qs(s,e){if(s===e)return;let n=s.split(`
|
|
10
|
+
`),l=e.split(`
|
|
11
|
+
`),r=[];for(let t=0;t<Math.max(n.length,l.length);t++)n[t]!==l[t]&&r.push(t);return r}var zs=globalThis.process.platform.startsWith("win"),ro=Symbol("clack:cancel");function T(s){return s===ro}function Y(s,e){let n=s;n.isTTY&&n.setRawMode(e)}function Qo({input:s=Lo,output:e=Vo,overwrite:n=!0,hideCursor:l=!0}={}){let r=_.createInterface({input:s,output:e,prompt:"",tabSize:1});_.emitKeypressEvents(s,r),s.isTTY&&s.setRawMode(!0);let t=(o,{name:a,sequence:p})=>{let m=String(o);if(io([m,a,p],"cancel")){l&&e.write(x.cursor.show),process.exit(0);return}if(!n)return;_.moveCursor(e,a==="return"?0:-1,a==="return"?-1:0,()=>{_.clearLine(e,1,()=>{s.once("keypress",t)})})};return l&&e.write(x.cursor.hide),s.once("keypress",t),()=>{s.off("keypress",t),l&&e.write(x.cursor.show),s.isTTY&&!zs&&s.setRawMode(!1),r.terminal=!1,r.close()}}var Js=Object.defineProperty,Qs=(s,e,n)=>(e in s)?Js(s,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):s[e]=n,y=(s,e,n)=>(Qs(s,typeof e!="symbol"?e+"":e,n),n);class ao{constructor(s,e=!0){y(this,"input"),y(this,"output"),y(this,"_abortSignal"),y(this,"rl"),y(this,"opts"),y(this,"_render"),y(this,"_track",!1),y(this,"_prevFrame",""),y(this,"_subscribers",new Map),y(this,"_cursor",0),y(this,"state","initial"),y(this,"error",""),y(this,"value");let{input:n=Lo,output:l=Vo,render:r,signal:t,...o}=s;this.opts=o,this.onKeypress=this.onKeypress.bind(this),this.close=this.close.bind(this),this.render=this.render.bind(this),this._render=r.bind(this),this._track=e,this._abortSignal=t,this.input=n,this.output=l}unsubscribe(){this._subscribers.clear()}setSubscriber(s,e){let n=this._subscribers.get(s)??[];n.push(e),this._subscribers.set(s,n)}on(s,e){this.setSubscriber(s,{cb:e})}once(s,e){this.setSubscriber(s,{cb:e,once:!0})}emit(s,...e){let n=this._subscribers.get(s)??[],l=[];for(let r of n)r.cb(...e),r.once&&l.push(()=>n.splice(n.indexOf(r),1));for(let r of l)r()}prompt(){return new Promise((s,e)=>{if(this._abortSignal){if(this._abortSignal.aborted)return this.state="cancel",this.close(),s(ro);this._abortSignal.addEventListener("abort",()=>{this.state="cancel",this.close()},{once:!0})}let n=new Ss;n._write=(l,r,t)=>{this._track&&(this.value=this.rl?.line.replace(/\t/g,""),this._cursor=this.rl?.cursor??0,this.emit("value",this.value)),t()},this.input.pipe(n),this.rl=Po.createInterface({input:this.input,output:n,tabSize:2,prompt:"",escapeCodeTimeout:50,terminal:!0}),Po.emitKeypressEvents(this.input,this.rl),this.rl.prompt(),this.opts.initialValue!==void 0&&this._track&&this.rl.write(this.opts.initialValue),this.input.on("keypress",this.onKeypress),Y(this.input,!0),this.output.on("resize",this.render),this.render(),this.once("submit",()=>{this.output.write(x.cursor.show),this.output.off("resize",this.render),Y(this.input,!1),s(this.value)}),this.once("cancel",()=>{this.output.write(x.cursor.show),this.output.off("resize",this.render),Y(this.input,!1),s(ro)})})}onKeypress(s,e){if(this.state==="error"&&(this.state="active"),e?.name&&(!this._track&&j.aliases.has(e.name)&&this.emit("cursor",j.aliases.get(e.name)),j.actions.has(e.name)&&this.emit("cursor",e.name)),s&&(s.toLowerCase()==="y"||s.toLowerCase()==="n")&&this.emit("confirm",s.toLowerCase()==="y"),s==="\t"&&this.opts.placeholder&&(this.value||(this.rl?.write(this.opts.placeholder),this.emit("value",this.opts.placeholder))),s&&this.emit("key",s.toLowerCase()),e?.name==="return"){if(!this.value&&this.opts.placeholder&&(this.rl?.write(this.opts.placeholder),this.emit("value",this.opts.placeholder)),this.opts.validate){let n=this.opts.validate(this.value);n&&(this.error=n instanceof Error?n.message:n,this.state="error",this.rl?.write(this.value))}this.state!=="error"&&(this.state="submit")}io([s,e?.name,e?.sequence],"cancel")&&(this.state="cancel"),(this.state==="submit"||this.state==="cancel")&&this.emit("finalize"),this.render(),(this.state==="submit"||this.state==="cancel")&&this.close()}close(){this.input.unpipe(),this.input.removeListener("keypress",this.onKeypress),this.output.write(`
|
|
12
12
|
`),Y(this.input,!1),this.rl?.close(),this.rl=void 0,this.emit(`${this.state}`,this.value),this.unsubscribe()}restoreCursor(){let s=Wo(this._prevFrame,process.stdout.columns,{hard:!0}).split(`
|
|
13
|
-
`).length-1;this.output.write(x.cursor.move(-999,s*-1))}render(){let s=Wo(this._render(this)??"",process.stdout.columns,{hard:!0});if(s!==this._prevFrame){if(this.state==="initial")this.output.write(x.cursor.hide);else{let
|
|
14
|
-
`);this.output.write(l[
|
|
15
|
-
`).slice(
|
|
16
|
-
`)),this._prevFrame=s;return}this.output.write(x.erase.down())}this.output.write(s),this.state==="initial"&&(this.state="active"),this._prevFrame=s}}}class po extends ao{get cursor(){return this.value?0:1}get _value(){return this.cursor===0}constructor(s){super(s,!1),this.value=!!s.initialValue,this.on("value",()=>{this.value=this._value}),this.on("confirm",(
|
|
17
|
-
${
|
|
18
|
-
`,r=this.value?n
|
|
19
|
-
${
|
|
20
|
-
${
|
|
21
|
-
`}}}).prompt()};var ns=(s)=>{let
|
|
22
|
-
${
|
|
23
|
-
${
|
|
24
|
-
`,l=(r,
|
|
25
|
-
${
|
|
26
|
-
`).map((
|
|
27
|
-
`);return`${
|
|
28
|
-
${
|
|
13
|
+
`).length-1;this.output.write(x.cursor.move(-999,s*-1))}render(){let s=Wo(this._render(this)??"",process.stdout.columns,{hard:!0});if(s!==this._prevFrame){if(this.state==="initial")this.output.write(x.cursor.hide);else{let e=qs(this._prevFrame,s);if(this.restoreCursor(),e&&e?.length===1){let n=e[0];this.output.write(x.cursor.move(0,n)),this.output.write(x.erase.lines(1));let l=s.split(`
|
|
14
|
+
`);this.output.write(l[n]),this._prevFrame=s,this.output.write(x.cursor.move(0,l.length-n-1));return}if(e&&e?.length>1){let n=e[0];this.output.write(x.cursor.move(0,n)),this.output.write(x.erase.down());let l=s.split(`
|
|
15
|
+
`).slice(n);this.output.write(l.join(`
|
|
16
|
+
`)),this._prevFrame=s;return}this.output.write(x.erase.down())}this.output.write(s),this.state==="initial"&&(this.state="active"),this._prevFrame=s}}}class po extends ao{get cursor(){return this.value?0:1}get _value(){return this.cursor===0}constructor(s){super(s,!1),this.value=!!s.initialValue,this.on("value",()=>{this.value=this._value}),this.on("confirm",(e)=>{this.output.write(x.cursor.move(0,-1)),this.value=e,this.state="submit",this.close()}),this.on("cursor",()=>{this.value=!this.value})}}var Xs;Xs=new WeakMap;var Zs=Object.defineProperty,Ms=(s,e,n)=>(e in s)?Zs(s,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):s[e]=n,Go=(s,e,n)=>(Ms(s,typeof e!="symbol"?e+"":e,n),n),Xo=class extends ao{constructor(s){super(s,!1),Go(this,"options"),Go(this,"cursor",0),this.options=s.options,this.value=[...s.initialValues??[]],this.cursor=Math.max(this.options.findIndex(({value:e})=>e===s.cursorAt),0),this.on("key",(e)=>{e==="a"&&this.toggleAll()}),this.on("cursor",(e)=>{switch(e){case"left":case"up":this.cursor=this.cursor===0?this.options.length-1:this.cursor-1;break;case"down":case"right":this.cursor=this.cursor===this.options.length-1?0:this.cursor+1;break;case"space":this.toggleValue();break}})}get _value(){return this.options[this.cursor].value}toggleAll(){let s=this.value.length===this.options.length;this.value=s?[]:this.options.map((e)=>e.value)}toggleValue(){let s=this.value.includes(this._value);this.value=s?this.value.filter((e)=>e!==this._value):[...this.value,this._value]}};var i=H(so(),1),z=H(D(),1);import v from"process";function us(){return v.platform!=="win32"?v.env.TERM!=="linux":!!v.env.CI||!!v.env.WT_SESSION||!!v.env.TERMINUS_SUBLIME||v.env.ConEmuTask==="{cmd::Cmder}"||v.env.TERM_PROGRAM==="Terminus-Sublime"||v.env.TERM_PROGRAM==="vscode"||v.env.TERM==="xterm-256color"||v.env.TERM==="alacritty"||v.env.TERMINAL_EMULATOR==="JetBrains-JediTerm"}var mo=us(),h=(s,e)=>mo?s:e,Fs=h("\u25C6","*"),os=h("\u25A0","x"),ss=h("\u25B2","x"),J=h("\u25C7","o"),Ds=h("\u250C","T"),b=h("\u2502","|"),U=h("\u2514","\u2014"),Zo=h("\u25CF",">"),Mo=h("\u25CB"," "),oe=h("\u25FB","[\u2022]"),uo=h("\u25FC","[+]"),se=h("\u25FB","[ ]"),Re=h("\u25AA","\u2022"),Fo=h("\u2500","-"),ee=h("\u256E","+"),ne=h("\u251C","+"),re=h("\u256F","+"),le=h("\u25CF","\u2022"),te=h("\u25C6","*"),ie=h("\u25B2","!"),ae=h("\u25A0","x"),es=(s)=>{switch(s){case"initial":case"active":return i.default.cyan(Fs);case"cancel":return i.default.red(os);case"error":return i.default.yellow(ss);case"submit":return i.default.green(J)}},Do=(s)=>{let{cursor:e,options:n,style:l}=s,r=s.maxItems??Number.POSITIVE_INFINITY,t=Math.max(process.stdout.rows-4,0),o=Math.min(t,Math.max(r,5)),a=0;e>=a+o-3?a=Math.max(Math.min(e-o+3,n.length-o),0):e<a+2&&(a=Math.max(e-2,0));let p=o<n.length&&a>0,m=o<n.length&&a+o<n.length;return n.slice(a,a+o).map((w,c,g)=>{let I=c===0&&p,R=c===g.length-1&&m;return I||R?i.default.dim("..."):l(w,c+a===e)})};var Q=(s)=>{let e=s.active??"Yes",n=s.inactive??"No";return new po({active:e,inactive:n,initialValue:s.initialValue??!0,render(){let l=`${i.default.gray(b)}
|
|
17
|
+
${es(this.state)} ${s.message}
|
|
18
|
+
`,r=this.value?e:n;switch(this.state){case"submit":return`${l}${i.default.gray(b)} ${i.default.dim(r)}`;case"cancel":return`${l}${i.default.gray(b)} ${i.default.strikethrough(i.default.dim(r))}
|
|
19
|
+
${i.default.gray(b)}`;default:return`${l}${i.default.cyan(b)} ${this.value?`${i.default.green(Zo)} ${e}`:`${i.default.dim(Mo)} ${i.default.dim(e)}`} ${i.default.dim("/")} ${this.value?`${i.default.dim(Mo)} ${i.default.dim(n)}`:`${i.default.green(Zo)} ${n}`}
|
|
20
|
+
${i.default.cyan(U)}
|
|
21
|
+
`}}}).prompt()};var ns=(s)=>{let e=(n,l)=>{let r=n.label??String(n.value);return l==="active"?`${i.default.cyan(oe)} ${r} ${n.hint?i.default.dim(`(${n.hint})`):""}`:l==="selected"?`${i.default.green(uo)} ${i.default.dim(r)} ${n.hint?i.default.dim(`(${n.hint})`):""}`:l==="cancelled"?`${i.default.strikethrough(i.default.dim(r))}`:l==="active-selected"?`${i.default.green(uo)} ${r} ${n.hint?i.default.dim(`(${n.hint})`):""}`:l==="submitted"?`${i.default.dim(r)}`:`${i.default.dim(se)} ${i.default.dim(r)}`};return new Xo({options:s.options,initialValues:s.initialValues,required:s.required??!0,cursorAt:s.cursorAt,validate(n){if(this.required&&n.length===0)return`Please select at least one option.
|
|
22
|
+
${i.default.reset(i.default.dim(`Press ${i.default.gray(i.default.bgWhite(i.default.inverse(" space ")))} to select, ${i.default.gray(i.default.bgWhite(i.default.inverse(" enter ")))} to submit`))}`},render(){let n=`${i.default.gray(b)}
|
|
23
|
+
${es(this.state)} ${s.message}
|
|
24
|
+
`,l=(r,t)=>{let o=this.value.includes(r.value);return t&&o?e(r,"active-selected"):o?e(r,"selected"):e(r,t?"active":"inactive")};switch(this.state){case"submit":return`${n}${i.default.gray(b)} ${this.options.filter(({value:r})=>this.value.includes(r)).map((r)=>e(r,"submitted")).join(i.default.dim(", "))||i.default.dim("none")}`;case"cancel":{let r=this.options.filter(({value:t})=>this.value.includes(t)).map((t)=>e(t,"cancelled")).join(i.default.dim(", "));return`${n}${i.default.gray(b)} ${r.trim()?`${r}
|
|
25
|
+
${i.default.gray(b)}`:""}`}case"error":{let r=this.error.split(`
|
|
26
|
+
`).map((t,o)=>o===0?`${i.default.yellow(U)} ${i.default.yellow(t)}`:` ${t}`).join(`
|
|
27
|
+
`);return`${n+i.default.yellow(b)} ${Do({options:this.options,cursor:this.cursor,maxItems:s.maxItems,style:l}).join(`
|
|
28
|
+
${i.default.yellow(b)} `)}
|
|
29
29
|
${r}
|
|
30
|
-
`}default:return`${
|
|
31
|
-
${
|
|
32
|
-
${
|
|
33
|
-
`}}}).prompt()};var X=(s="",
|
|
30
|
+
`}default:return`${n}${i.default.cyan(b)} ${Do({options:this.options,cursor:this.cursor,maxItems:s.maxItems,style:l}).join(`
|
|
31
|
+
${i.default.cyan(b)} `)}
|
|
32
|
+
${i.default.cyan(U)}
|
|
33
|
+
`}}}).prompt()};var X=(s="",e="")=>{let n=`
|
|
34
34
|
${s}
|
|
35
35
|
`.split(`
|
|
36
|
-
`),l=co(
|
|
37
|
-
`);process.stdout.write(`${
|
|
38
|
-
${
|
|
39
|
-
${
|
|
40
|
-
${
|
|
41
|
-
`)},Z=(s="")=>{process.stdout.write(`${
|
|
42
|
-
|
|
43
|
-
`)},
|
|
44
|
-
`)},
|
|
45
|
-
${
|
|
46
|
-
|
|
47
|
-
`)},
|
|
48
|
-
`);
|
|
36
|
+
`),l=co(e).length,r=Math.max(n.reduce((o,a)=>{let p=co(a);return p.length>o?p.length:o},0),l)+2,t=n.map((o)=>`${i.default.gray(b)} ${i.default.dim(o)}${" ".repeat(r-co(o).length)}${i.default.gray(b)}`).join(`
|
|
37
|
+
`);process.stdout.write(`${i.default.gray(b)}
|
|
38
|
+
${i.default.green(J)} ${i.default.reset(e)} ${i.default.gray(Fo.repeat(Math.max(r-l-1,1))+ee)}
|
|
39
|
+
${t}
|
|
40
|
+
${i.default.gray(ne+Fo.repeat(r+2)+re)}
|
|
41
|
+
`)},Z=(s="")=>{process.stdout.write(`${i.default.gray(U)} ${i.default.red(s)}
|
|
42
|
+
|
|
43
|
+
`)},rs=(s="")=>{process.stdout.write(`${i.default.gray(Ds)} ${s}
|
|
44
|
+
`)},ls=(s="")=>{process.stdout.write(`${i.default.gray(b)}
|
|
45
|
+
${i.default.gray(U)} ${s}
|
|
46
|
+
|
|
47
|
+
`)},d={message:(s="",{symbol:e=i.default.gray(b)}={})=>{let n=[`${i.default.gray(b)}`];if(s){let[l,...r]=s.split(`
|
|
48
|
+
`);n.push(`${e} ${l}`,...r.map((t)=>`${i.default.gray(b)} ${t}`))}process.stdout.write(`${n.join(`
|
|
49
49
|
`)}
|
|
50
|
-
`)},info:(s)=>{
|
|
50
|
+
`)},info:(s)=>{d.message(s,{symbol:i.default.blue(le)})},success:(s)=>{d.message(s,{symbol:i.default.green(te)})},step:(s)=>{d.message(s,{symbol:i.default.green(J)})},warn:(s)=>{d.message(s,{symbol:i.default.yellow(ie)})},warning:(s)=>{d.warn(s)},error:(s)=>{d.message(s,{symbol:i.default.red(ae)})}},Be=`${i.default.gray(b)} `;var ts=({indicator:s="dots"}={})=>{let e=mo?["\u25D2","\u25D0","\u25D3","\u25D1"]:["\u2022","o","O","0"],n=mo?80:120,l=process.env.CI==="true",r,t,o=!1,a="",p,m=performance.now(),w=(k)=>{let O=k>1?"Something went wrong":"Canceled";o&&So(O,k)},c=()=>w(2),g=()=>w(1),I=()=>{process.on("uncaughtExceptionMonitor",c),process.on("unhandledRejection",c),process.on("SIGINT",g),process.on("SIGTERM",g),process.on("exit",w)},R=()=>{process.removeListener("uncaughtExceptionMonitor",c),process.removeListener("unhandledRejection",c),process.removeListener("SIGINT",g),process.removeListener("SIGTERM",g),process.removeListener("exit",w)},B=()=>{if(p===void 0)return;l&&process.stdout.write(`
|
|
51
51
|
`);let k=p.split(`
|
|
52
|
-
`);process.stdout.write(z.cursor.move(-999,k.length-1)),process.stdout.write(z.erase.down(k.length))},M=(k)=>k.replace(/\.+$/,"")
|
|
53
|
-
`);let O=0,$=0;I(),
|
|
52
|
+
`);process.stdout.write(z.cursor.move(-999,k.length-1)),process.stdout.write(z.erase.down(k.length))},M=(k)=>k.replace(/\.+$/,""),_o=(k)=>{let O=(performance.now()-k)/1000,$=Math.floor(O/60),C=Math.floor(O%60);return $>0?`[${$}m ${C}s]`:`[${C}s]`},gs=(k="")=>{o=!0,r=Qo(),a=M(k),m=performance.now(),process.stdout.write(`${i.default.gray(b)}
|
|
53
|
+
`);let O=0,$=0;I(),t=setInterval(()=>{if(l&&a===p)return;B(),p=a;let C=i.default.magenta(e[O]);if(l)process.stdout.write(`${C} ${a}...`);else if(s==="timer")process.stdout.write(`${C} ${a} ${_o(m)}`);else{let ds=".".repeat(Math.floor($)).slice(0,3);process.stdout.write(`${C} ${a}${ds}`)}O=O+1<e.length?O+1:0,$=$<e.length?$+0.125:0},n)},So=(k="",O=0)=>{o=!1,clearInterval(t),B();let $=O===0?i.default.green(J):O===1?i.default.red(os):i.default.red(ss);a=M(k??a),s==="timer"?process.stdout.write(`${$} ${a} ${_o(m)}
|
|
54
54
|
`):process.stdout.write(`${$} ${a}
|
|
55
|
-
`),
|
|
55
|
+
`),R(),r()};return{start:gs,stop:So,message:(k="")=>{a=M(k??a)}}},is=async(s,e)=>{let n={},l=Object.keys(s);for(let r of l){let t=s[r],o=await t({results:n})?.catch((a)=>{throw a});if(typeof e?.onCancel=="function"&&T(o)){n[r]="canceled",e.onCancel({results:n});continue}n[r]=o}return n};var E=H(so(),1);import*as N from"fs";import*as W from"path";var S="\n OPENCODE_AUTH: ${{ secrets.OPENCODE_AUTH }}",A="\n ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}";var fo=(s)=>`name: PR Review
|
|
56
56
|
|
|
57
57
|
on:
|
|
58
58
|
pull_request:
|
|
@@ -69,7 +69,7 @@ jobs:
|
|
|
69
69
|
|
|
70
70
|
- uses: activadee/open-workflows/actions/pr-review@main
|
|
71
71
|
env:
|
|
72
|
-
GITHUB_TOKEN: \${{ secrets.GITHUB_TOKEN }}${s?
|
|
72
|
+
GITHUB_TOKEN: \${{ secrets.GITHUB_TOKEN }}${s?S:A}
|
|
73
73
|
`;var wo=(s)=>`name: Issue Label
|
|
74
74
|
|
|
75
75
|
on:
|
|
@@ -86,7 +86,7 @@ jobs:
|
|
|
86
86
|
|
|
87
87
|
- uses: activadee/open-workflows/actions/issue-label@main
|
|
88
88
|
env:
|
|
89
|
-
GITHUB_TOKEN: \${{ secrets.GITHUB_TOKEN }}${s?
|
|
89
|
+
GITHUB_TOKEN: \${{ secrets.GITHUB_TOKEN }}${s?S:A}
|
|
90
90
|
`;var bo=(s)=>`name: Doc Sync
|
|
91
91
|
|
|
92
92
|
on:
|
|
@@ -107,7 +107,7 @@ jobs:
|
|
|
107
107
|
|
|
108
108
|
- uses: activadee/open-workflows/actions/doc-sync@main
|
|
109
109
|
env:
|
|
110
|
-
GITHUB_TOKEN: \${{ secrets.GITHUB_TOKEN }}${s?
|
|
110
|
+
GITHUB_TOKEN: \${{ secrets.GITHUB_TOKEN }}${s?S:A}
|
|
111
111
|
`;var ho=(s)=>`name: Release
|
|
112
112
|
|
|
113
113
|
on:
|
|
@@ -143,8 +143,32 @@ jobs:
|
|
|
143
143
|
version: \${{ inputs.version }}
|
|
144
144
|
env:
|
|
145
145
|
GITHUB_TOKEN: \${{ secrets.GITHUB_TOKEN }}
|
|
146
|
-
`;var go=
|
|
147
|
-
|
|
146
|
+
`;var go=(s)=>`name: AI Changeset
|
|
147
|
+
|
|
148
|
+
on:
|
|
149
|
+
pull_request:
|
|
150
|
+
types: [opened, synchronize, reopened]
|
|
151
|
+
|
|
152
|
+
jobs:
|
|
153
|
+
changeset:
|
|
154
|
+
runs-on: ubuntu-latest
|
|
155
|
+
permissions:
|
|
156
|
+
contents: write
|
|
157
|
+
pull-requests: write
|
|
158
|
+
steps:
|
|
159
|
+
- uses: actions/checkout@v4
|
|
160
|
+
with:
|
|
161
|
+
fetch-depth: 0
|
|
162
|
+
ref: \${{ github.head_ref }}
|
|
163
|
+
token: \${{ secrets.GITHUB_TOKEN }}
|
|
164
|
+
|
|
165
|
+
- uses: activadee/open-workflows/actions/changeset@main
|
|
166
|
+
with:
|
|
167
|
+
mode: commit
|
|
168
|
+
env:
|
|
169
|
+
GITHUB_TOKEN: \${{ secrets.GITHUB_TOKEN }}${s?S:A}
|
|
170
|
+
`;var xo={review:"pr-review",label:"issue-label","doc-sync":"doc-sync",release:"release",changeset:"changeset"};var ce={"pr-review":fo,"issue-label":wo,"doc-sync":bo,release:ho,changeset:go};function as(s){let{workflows:e,cwd:n=process.cwd()}=s,l=W.join(n,".github","workflows"),r=[];for(let t of e){let o=xo[t],a=W.join(l,`${o}.yml`);if(N.existsSync(a))r.push({type:"workflow",name:t,path:`.github/workflows/${o}.yml`})}return r}function ps(s){let{workflows:e,cwd:n=process.cwd(),useOAuth:l=!1,override:r=!1,overrideNames:t}=s,o=[],a=W.join(n,".github","workflows");if(!N.existsSync(a))N.mkdirSync(a,{recursive:!0});for(let p of e){let m=xo[p],w=ce[m],c=W.join(a,`${m}.yml`);if(!w){o.push({type:"workflow",name:p,status:"error",path:c,message:`Unknown workflow: ${p}`});continue}let g=w(l);if(!g){o.push({type:"workflow",name:p,status:"error",path:c,message:`Unknown workflow: ${p}`});continue}let I=N.existsSync(c),R=r||t?.has(p);if(I&&!R){o.push({type:"workflow",name:p,status:"skipped",path:`.github/workflows/${m}.yml`,message:"Skipped: already exists"});continue}try{N.writeFileSync(c,g,"utf-8"),o.push({type:"workflow",name:p,status:I?"overwritten":"created",path:`.github/workflows/${m}.yml`,message:I?"Overwritten successfully":"Created successfully"})}catch(B){o.push({type:"workflow",name:p,status:"error",path:c,message:`Failed to write file: ${B instanceof Error?B.message:"Unknown error"}`})}}return o}var fe=await Promise.resolve().then(() => H(cs(),1)).catch(()=>({version:"unknown"})),vo=fe.version,P=process.argv.slice(2),we=P.includes("--help")||P.includes("-h"),be=P.includes("--version")||P.includes("-v"),Oo=P.includes("--force")||P.includes("-f");if(be)process.stdout.write(`@activade/open-workflows v${vo}
|
|
171
|
+
`),process.exit(0);if(we)process.stdout.write(`@activade/open-workflows v${vo}
|
|
148
172
|
|
|
149
173
|
AI-powered GitHub automation workflows.
|
|
150
174
|
|
|
@@ -162,6 +186,7 @@ WHAT GETS INSTALLED
|
|
|
162
186
|
.github/workflows/issue-label.yml
|
|
163
187
|
.github/workflows/doc-sync.yml
|
|
164
188
|
.github/workflows/release.yml
|
|
189
|
+
.github/workflows/changeset.yml
|
|
165
190
|
|
|
166
191
|
REQUIRED SECRETS
|
|
167
192
|
For Claude Max (OAuth):
|
|
@@ -171,10 +196,10 @@ REQUIRED SECRETS
|
|
|
171
196
|
ANTHROPIC_API_KEY - Your Anthropic API key
|
|
172
197
|
|
|
173
198
|
For more information: https://github.com/activadee/open-workflows
|
|
174
|
-
`),process.exit(0);
|
|
175
|
-
${
|
|
199
|
+
`),process.exit(0);rs(E.default.bgCyan(E.default.black(` @activade/open-workflows v${vo} `)));var ms=await is({workflows:()=>ns({message:"Select workflows to install:",options:[{value:"review",label:"PR Review",hint:"AI-powered code reviews"},{value:"label",label:"Issue Label",hint:"Auto-label issues"},{value:"doc-sync",label:"Doc Sync",hint:"Keep docs in sync"},{value:"release",label:"Release",hint:"Automated releases with notes"},{value:"changeset",label:"Changeset",hint:"AI-generated changesets for monorepos"}],required:!0}),useOAuth:()=>Q({message:"Use Claude Max subscription (OAuth)? (No = API key)",initialValue:!1})},{onCancel:()=>{Z("Installation cancelled."),process.exit(0)}}),fs=ms.workflows||[],$o=Boolean(ms.useOAuth),ws=!1;if($o){let s=await Q({message:"Install opencode-auth-sync plugin? (keeps OAuth tokens synced)",initialValue:!0});if(T(s))Z("Installation cancelled."),process.exit(0);ws=Boolean(s)}var bs=new Set;if(!Oo){let s=as({workflows:fs});if(s.length>0){d.warn(`Found ${s.length} existing file(s):`);for(let e of s){let n=await Q({message:`Override ${e.path}?`,initialValue:!1});if(T(n))Z("Installation cancelled."),process.exit(0);if(n)bs.add(e.name)}}}var hs=ts();hs.start("Installing workflows...");var G=ps({workflows:fs,useOAuth:$o,override:Oo,overrideNames:Oo?void 0:bs}),he=G.some((s)=>s.status==="error");hs.stop(he?"Installation completed with errors":"Installation complete!");var ko=G.filter((s)=>s.status==="created"),Eo=G.filter((s)=>s.status==="overwritten"),yo=G.filter((s)=>s.status==="skipped"),Io=G.filter((s)=>s.status==="error");if(ko.length>0){d.success(`Created ${ko.length} file(s):`);for(let s of ko)d.message(` ${E.default.green("+")} ${s.path}`)}if(Eo.length>0){d.success(`Overwritten ${Eo.length} file(s):`);for(let s of Eo)d.message(` ${E.default.cyan("~")} ${s.path}`)}if(yo.length>0){d.warn(`Skipped ${yo.length} file(s) (already exist):`);for(let s of yo)d.message(` ${E.default.yellow("-")} ${s.path}`)}if(Io.length>0){d.error(`Failed ${Io.length} file(s):`);for(let s of Io)d.message(` ${E.default.red("x")} ${s.path}: ${s.message}`)}if($o)if(ws)d.info("Launching opencode-auth-sync setup..."),await Bun.spawn(["bunx","@activade/opencode-auth-sync"],{stdio:["inherit","inherit","inherit"]}).exited,X("Commit and push the workflow files","Next steps");else X(`${E.default.cyan("1.")} Export your OpenCode auth as a secret:
|
|
200
|
+
${E.default.dim("gh secret set OPENCODE_AUTH < ~/.local/share/opencode/auth.json")}
|
|
176
201
|
|
|
177
|
-
${
|
|
178
|
-
${
|
|
202
|
+
${E.default.cyan("2.")} Commit and push the workflow files`,"Next steps (OAuth)");else X(`${E.default.cyan("1.")} Add your Anthropic API key:
|
|
203
|
+
${E.default.dim("gh secret set ANTHROPIC_API_KEY")}
|
|
179
204
|
|
|
180
|
-
${
|
|
205
|
+
${E.default.cyan("2.")} Commit and push the workflow files`,"Next steps");ls(E.default.green("Done!"));
|