@activade/open-workflows 2.0.5 → 2.0.7

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 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
@@ -36,6 +37,8 @@ jobs:
36
37
  steps:
37
38
  - uses: actions/checkout@v4
38
39
  - uses: activadee/open-workflows/actions/pr-review@main
40
+ with:
41
+ variants: UNDEFINED
39
42
  env:
40
43
  GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
41
44
  ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
@@ -72,6 +75,39 @@ jobs:
72
75
 
73
76
  No NPM_TOKEN needed - uses OIDC trusted publishing with provenance.
74
77
 
78
+ ### Changeset Action (AI-Powered)
79
+
80
+ ```yaml
81
+ name: AI Changeset
82
+ on:
83
+ pull_request:
84
+ types: [opened, synchronize, reopened]
85
+ jobs:
86
+ changeset:
87
+ runs-on: ubuntu-latest
88
+ permissions:
89
+ contents: write
90
+ pull-requests: write
91
+ steps:
92
+ - uses: actions/checkout@v4
93
+ with:
94
+ fetch-depth: 0
95
+ ref: ${{ github.head_ref }}
96
+ token: ${{ secrets.GITHUB_TOKEN }}
97
+ - uses: activadee/open-workflows/actions/changeset@main
98
+ with:
99
+ mode: commit # or 'comment' to suggest via PR comment
100
+ variants: UNDEFINED
101
+ env:
102
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
103
+ ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
104
+ ```
105
+
106
+ The changeset action analyzes PR changes and generates [Changesets](https://github.com/changesets/changesets) files automatically:
107
+ - Detects which packages are affected in monorepos
108
+ - Infers version bump type from conventional commits
109
+ - Writes user-facing changelog entries
110
+
75
111
  ## Authentication
76
112
 
77
113
  ### For AI Actions
@@ -94,6 +130,10 @@ Or manually set the secret:
94
130
  gh secret set OPENCODE_AUTH < ~/.local/share/opencode/auth.json
95
131
  ```
96
132
 
133
+ ## Variants
134
+
135
+ AI actions accept an optional `variants` input to control OpenCode reasoning effort. Use `UNDEFINED` to omit the setting entirely.
136
+
97
137
  ## CLI Options
98
138
 
99
139
  ```bash
@@ -107,12 +147,18 @@ OPTIONS
107
147
 
108
148
  ## How It Works
109
149
 
110
- **AI Actions (pr-review, issue-label, doc-sync):**
150
+ **AI Actions (pr-review, issue-label, doc-sync, changeset):**
111
151
  1. Workflow triggers on GitHub event
112
152
  2. Composite action sets up Bun and OpenCode
113
153
  3. OpenCode runs with the bundled skill
114
154
  4. AI analyzes content and takes action
115
155
 
156
+ **Changeset Action:**
157
+ 1. Triggers on PR open/update
158
+ 2. AI analyzes diff, commits, and PR description
159
+ 3. Generates `.changeset/<random>.md` with package bumps and changelog
160
+ 4. Either commits to PR branch or suggests via comment
161
+
116
162
  **Release Action:**
117
163
  1. Manually triggered with version bump type
118
164
  2. Generates changelog from git commits
@@ -0,0 +1,54 @@
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
+ variants:
15
+ description: 'Optional OpenCode variants setting (e.g., reasoning effort). Set to UNDEFINED to omit.'
16
+ required: false
17
+ default: 'UNDEFINED'
18
+
19
+ runs:
20
+ using: 'composite'
21
+ steps:
22
+ - name: Setup Bun
23
+ uses: oven-sh/setup-bun@v2
24
+
25
+ - name: Setup OpenCode auth
26
+ if: env.OPENCODE_AUTH != ''
27
+ shell: bash
28
+ run: |
29
+ mkdir -p ~/.local/share/opencode
30
+ echo "$OPENCODE_AUTH" > ~/.local/share/opencode/auth.json
31
+ - name: Install opencode-ai
32
+ shell: bash
33
+ run: |
34
+ curl -fsSL https://opencode.ai/install | bash
35
+ - name: Install skill and tools
36
+ shell: bash
37
+ run: |
38
+ mkdir -p .opencode/skill/changeset
39
+ cp "${{ github.action_path }}/skill.md" .opencode/skill/changeset/SKILL.md
40
+ mkdir -p ~/.config/opencode/tool
41
+ cp "${{ github.action_path }}/../../scripts/"*.ts ~/.config/opencode/tool/
42
+ cd ~/.config/opencode && bun add @opencode-ai/plugin
43
+
44
+ - name: Generate Changeset
45
+ shell: bash
46
+ run: |
47
+ VARIANTS_ARG=()
48
+ if [ "${{ inputs.variants }}" != "UNDEFINED" ]; then
49
+ VARIANTS_ARG=(--variants "${{ inputs.variants }}")
50
+ fi
51
+ opencode run "${VARIANTS_ARG[@]}" --model "${{ inputs.model }}" \
52
+ "Load the changeset skill. Generate changeset for PR ${{ github.event.pull_request.number }} in mode: ${{ inputs.mode }}"
53
+ env:
54
+ GITHUB_TOKEN: ${{ github.token }}
@@ -0,0 +1,289 @@
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
+ ## Action Inputs
8
+
9
+ - `variants` (optional): OpenCode variants setting for reasoning effort. Use `UNDEFINED` to omit.
10
+
11
+ ## What I Do
12
+
13
+ Analyze pull request changes and generate [Changesets](https://github.com/changesets/changesets) files that capture:
14
+ 1. Which packages are affected
15
+ 2. What version bump is appropriate (patch/minor/major)
16
+ 3. A user-facing changelog entry
17
+
18
+ ## Workflow
19
+
20
+ 1. **Get PR context**: Fetch PR metadata and changed files
21
+ ```bash
22
+ gh pr view <number> --json files,title,body,commits,headRefOid
23
+ ```
24
+
25
+ 2. **Detect monorepo structure**: Find package locations
26
+ ```bash
27
+ # Check for common monorepo patterns
28
+ ls packages/ 2>/dev/null || ls apps/ 2>/dev/null || cat pnpm-workspace.yaml 2>/dev/null
29
+ ```
30
+
31
+ 3. **Analyze changes**: For each changed file, determine:
32
+ - Which package it belongs to
33
+ - The nature of the change (feature, fix, breaking, docs, etc.)
34
+
35
+ 4. **Infer version bump**: Based on changes and commit messages
36
+ - `major`: Breaking changes (look for BREAKING CHANGE, !)
37
+ - `minor`: New features (feat:, feature)
38
+ - `patch`: Bug fixes, refactors, docs (fix:, chore:, docs:, refactor:)
39
+
40
+ 5. **Generate changeset**: Create the changeset content
41
+
42
+ 6. **Execute action**: Based on mode parameter
43
+ - `commit`: Write file and commit to PR branch
44
+ - `comment`: Post suggestion as PR comment
45
+
46
+ ## Package Detection
47
+
48
+ ### Finding Affected Packages
49
+
50
+ 1. **Parse monorepo config** (in priority order):
51
+ ```bash
52
+ # pnpm workspaces
53
+ cat pnpm-workspace.yaml
54
+
55
+ # npm/yarn workspaces
56
+ cat package.json | jq '.workspaces'
57
+
58
+ # lerna
59
+ cat lerna.json | jq '.packages'
60
+ ```
61
+
62
+ 2. **Map files to packages**:
63
+ - `packages/cli/src/foo.ts` → `cli` package
64
+ - `apps/web/pages/index.tsx` → `web` package
65
+ - `libs/core/utils.ts` → `core` package
66
+ - Root-level files (README, configs) → may affect all packages or none
67
+
68
+ 3. **Read package.json for each affected package**:
69
+ ```bash
70
+ cat packages/cli/package.json | jq '.name'
71
+ ```
72
+
73
+ ### Handling Root Changes
74
+
75
+ Files at the repository root typically don't need changesets:
76
+ - `.github/*` - CI/CD changes
77
+ - `*.md` - Documentation
78
+ - `.eslintrc`, `tsconfig.json` - Config files
79
+ - `package.json` (root) - Dependency updates
80
+
81
+ Exception: If root changes affect package behavior, include relevant packages.
82
+
83
+ ## Version Inference
84
+
85
+ ### From Conventional Commits
86
+
87
+ Parse commit messages in the PR:
88
+ ```bash
89
+ gh pr view <number> --json commits --jq '.commits[].messageHeadline'
90
+ ```
91
+
92
+ | Prefix | Version | Example |
93
+ |--------|---------|---------|
94
+ | `feat:` | minor | `feat: add retry logic` |
95
+ | `feat!:` | major | `feat!: change API signature` |
96
+ | `fix:` | patch | `fix: handle null case` |
97
+ | `perf:` | patch | `perf: optimize query` |
98
+ | `refactor:` | patch | `refactor: extract helper` |
99
+ | `docs:` | patch | `docs: update README` |
100
+ | `chore:` | patch | `chore: update deps` |
101
+ | `BREAKING CHANGE` | major | (in commit body) |
102
+
103
+ ### From PR Content
104
+
105
+ If no conventional commits, analyze:
106
+ - PR title for keywords (add, fix, change, remove, break)
107
+ - PR body for context
108
+ - File changes (new files = likely feature, modified = likely fix)
109
+
110
+ ### Default Behavior
111
+
112
+ When uncertain:
113
+ - Default to `patch` for single-package changes
114
+ - Ask via comment if breaking changes are detected but unclear
115
+
116
+ ## Changeset Format
117
+
118
+ Changesets use this format in `.changeset/<random-id>.md`:
119
+
120
+ ```markdown
121
+ ---
122
+ "@myorg/cli": minor
123
+ "@myorg/core": patch
124
+ ---
125
+
126
+ Add retry logic for failed API requests
127
+
128
+ The CLI now automatically retries failed requests up to 3 times with exponential backoff.
129
+ ```
130
+
131
+ ### Formatting Rules
132
+
133
+ 1. **YAML frontmatter**: Package names in quotes, version bump type
134
+ 2. **Summary line**: Imperative mood, user-facing (what changed, not how)
135
+ 3. **Optional body**: Additional context, migration notes for breaking changes
136
+ 4. **Length**: Summary under 80 chars, body can be multiple paragraphs
137
+
138
+ ### Good vs Bad Summaries
139
+
140
+ | Bad (dev-speak) | Good (user-facing) |
141
+ |-----------------|-------------------|
142
+ | `refactored auth module` | `Improved authentication reliability` |
143
+ | `fixed bug in parser` | `Fixed parsing of nested arrays` |
144
+ | `added new function` | `Add support for custom themes` |
145
+ | `updated dependencies` | `Security updates for dependencies` |
146
+
147
+ ## Writing the Changeset
148
+
149
+ Use the `write-changeset` tool to create the changeset file:
150
+
151
+ ### Tool Arguments
152
+
153
+ | Argument | Required | Description |
154
+ |----------|----------|-------------|
155
+ | `packages` | Yes | Object mapping package names to bump types |
156
+ | `summary` | Yes | Short summary (imperative mood, user-facing) |
157
+ | `body` | No | Additional details or migration notes |
158
+
159
+ ### Example
160
+
161
+ ```json
162
+ {
163
+ "packages": {
164
+ "@myorg/cli": "minor",
165
+ "@myorg/core": "patch"
166
+ },
167
+ "summary": "Add retry logic for failed API requests",
168
+ "body": "The CLI now automatically retries failed requests up to 3 times with exponential backoff."
169
+ }
170
+ ```
171
+
172
+ ## Mode: commit
173
+
174
+ When mode is `commit`:
175
+
176
+ 1. Generate changeset using `write-changeset` tool
177
+ 2. Stage the new file:
178
+ ```bash
179
+ git add .changeset/*.md
180
+ ```
181
+ 3. Commit with `[skip ci]` to prevent infinite workflow loops:
182
+ ```bash
183
+ git commit -m "chore: add changeset for PR #<number> [skip ci]"
184
+ ```
185
+ 4. Push to PR branch:
186
+ ```bash
187
+ git push
188
+ ```
189
+
190
+ **CRITICAL**: Always include `[skip ci]` in the commit message to prevent the workflow from triggering itself.
191
+
192
+ ## Mode: comment
193
+
194
+ When mode is `comment`:
195
+
196
+ 1. Generate the changeset content
197
+ 2. Post as PR comment with the suggested changeset:
198
+
199
+ ````markdown
200
+ ## Suggested Changeset
201
+
202
+ Based on the changes in this PR, here's the recommended changeset:
203
+
204
+ ```markdown
205
+ ---
206
+ "@myorg/cli": minor
207
+ ---
208
+
209
+ Add retry logic for failed API requests
210
+ ```
211
+
212
+ <details>
213
+ <summary>How to apply</summary>
214
+
215
+ Create this file as `.changeset/<any-name>.md` and commit it to this PR.
216
+
217
+ Or run: `npx changeset add` and follow the prompts.
218
+ </details>
219
+ ````
220
+
221
+ ## Edge Cases
222
+
223
+ ### No Package Changes
224
+
225
+ If changes only affect non-package files (CI, docs, root configs):
226
+ - In `commit` mode: Skip creating changeset, post comment explaining why
227
+ - In `comment` mode: Explain that no changeset is needed
228
+
229
+ ### Multiple Packages, Same Change
230
+
231
+ When a change spans packages but represents one logical feature:
232
+ - Create ONE changeset file
233
+ - List all affected packages with appropriate bumps
234
+ - Write a unified summary
235
+
236
+ ### Existing Changeset
237
+
238
+ Before creating a new changeset:
239
+ ```bash
240
+ ls .changeset/*.md 2>/dev/null | head -5
241
+ ```
242
+
243
+ If changesets already exist for this PR:
244
+ - Check if they cover the current changes
245
+ - Only add a new one if there are uncovered changes
246
+ - Never overwrite existing changesets
247
+
248
+ ## Common Mistakes to Avoid
249
+
250
+ - Do NOT create changesets for documentation-only changes in most cases
251
+ - Do NOT guess package names - always verify from package.json
252
+ - Do NOT create empty changesets
253
+ - Do NOT overwrite existing changesets from previous commits
254
+ - Do NOT commit in `comment` mode
255
+ - Do NOT assume monorepo structure - verify it exists first
256
+ - Do NOT forget `[skip ci]` in commit message - this causes infinite workflow loops
257
+
258
+ ## Non-Monorepo Fallback
259
+
260
+ If no monorepo structure is detected (single package.json at root):
261
+ - Use the package name from root package.json
262
+ - Follow the same version inference rules
263
+ - Changeset format remains the same
264
+
265
+ ## Example Changeset Output
266
+
267
+ For a PR that adds a feature to the CLI and fixes a related bug in core:
268
+
269
+ ```markdown
270
+ ---
271
+ "@myorg/cli": minor
272
+ "@myorg/core": patch
273
+ ---
274
+
275
+ Add support for custom retry strategies
276
+
277
+ Users can now configure custom retry strategies for API requests. The default exponential backoff behavior is unchanged.
278
+
279
+ ```
280
+
281
+ ## Checklist Before Submitting
282
+
283
+ - [ ] Verified package names from actual package.json files
284
+ - [ ] Version bump matches the change type
285
+ - [ ] Summary is user-facing, not developer-focused
286
+ - [ ] Summary uses imperative mood ("Add" not "Added")
287
+ - [ ] No duplicate changesets for the same changes
288
+ - [ ] File committed only in `commit` mode
289
+ - [ ] Commit message includes `[skip ci]` (commit mode only)
@@ -7,6 +7,10 @@ inputs:
7
7
  description: 'Model to use for doc analysis'
8
8
  required: false
9
9
  default: 'anthropic/claude-sonnet-4-5'
10
+ variants:
11
+ description: 'Optional OpenCode variants setting (e.g., reasoning effort). Set to UNDEFINED to omit.'
12
+ required: false
13
+ default: 'UNDEFINED'
10
14
 
11
15
  runs:
12
16
  using: 'composite'
@@ -41,7 +45,11 @@ runs:
41
45
  - name: Sync Documentation
42
46
  shell: bash
43
47
  run: |
44
- opencode run --model "${{ inputs.model }}" \
48
+ VARIANTS_ARG=()
49
+ if [ "${{ inputs.variants }}" != "UNDEFINED" ]; then
50
+ VARIANTS_ARG=(--variants "${{ inputs.variants }}")
51
+ fi
52
+ opencode run "${VARIANTS_ARG[@]}" --model "${{ inputs.model }}" \
45
53
  "Load the doc-sync skill and sync documentation for PR ${{ github.event.pull_request.number }}"
46
54
  env:
47
55
  GITHUB_TOKEN: ${{ github.token }}
@@ -4,6 +4,10 @@ description: Keep documentation in sync with code changes. Analyzes PR diffs and
4
4
  license: MIT
5
5
  ---
6
6
 
7
+ ## Action Inputs
8
+
9
+ - `variants` (optional): OpenCode variants setting for reasoning effort. Use `UNDEFINED` to omit.
10
+
7
11
  ## What I Do
8
12
 
9
13
  Analyze pull request changes and update documentation to reflect code changes. Uses native OpenCode tools (`write`, `bash`) for file operations and git commits.
@@ -7,6 +7,10 @@ inputs:
7
7
  description: 'Model to use for labeling'
8
8
  required: false
9
9
  default: 'anthropic/claude-haiku-4-5'
10
+ variants:
11
+ description: 'Optional OpenCode variants setting (e.g., reasoning effort). Set to UNDEFINED to omit.'
12
+ required: false
13
+ default: 'UNDEFINED'
10
14
 
11
15
  runs:
12
16
  using: 'composite'
@@ -36,7 +40,11 @@ runs:
36
40
  - name: Label Issue
37
41
  shell: bash
38
42
  run: |
39
- opencode run --model "${{ inputs.model }}" \
43
+ VARIANTS_ARG=()
44
+ if [ "${{ inputs.variants }}" != "UNDEFINED" ]; then
45
+ VARIANTS_ARG=(--variants "${{ inputs.variants }}")
46
+ fi
47
+ opencode run "${VARIANTS_ARG[@]}" --model "${{ inputs.model }}" \
40
48
  "Load the issue-label skill. Label issue ${{ github.event.issue.number }}"
41
49
  env:
42
50
  GITHUB_TOKEN: ${{ github.token }}
@@ -4,6 +4,10 @@ description: Automatically apply appropriate labels to GitHub issues based on co
4
4
  license: MIT
5
5
  ---
6
6
 
7
+ ## Action Inputs
8
+
9
+ - `variants` (optional): OpenCode variants setting for reasoning effort. Use `UNDEFINED` to omit.
10
+
7
11
  ## What I Do
8
12
 
9
13
  Analyze GitHub issue content and apply up to 3 appropriate labels to help maintainers triage and search issues effectively.
@@ -7,6 +7,10 @@ inputs:
7
7
  description: 'Model to use for review'
8
8
  required: false
9
9
  default: 'anthropic/claude-sonnet-4-5'
10
+ variants:
11
+ description: 'Optional OpenCode variants setting (e.g., reasoning effort). Set to UNDEFINED to omit.'
12
+ required: false
13
+ default: 'UNDEFINED'
10
14
 
11
15
  runs:
12
16
  using: 'composite'
@@ -36,7 +40,11 @@ runs:
36
40
  - name: Review PR
37
41
  shell: bash
38
42
  run: |
39
- opencode run --model "${{ inputs.model }}" \
43
+ VARIANTS_ARG=()
44
+ if [ "${{ inputs.variants }}" != "UNDEFINED" ]; then
45
+ VARIANTS_ARG=(--variants "${{ inputs.variants }}")
46
+ fi
47
+ opencode run "${VARIANTS_ARG[@]}" --model "${{ inputs.model }}" \
40
48
  "Load the pr-review skill. Review PR ${{ github.event.pull_request.number }}"
41
49
  env:
42
50
  GITHUB_TOKEN: ${{ github.token }}
@@ -4,6 +4,10 @@ description: AI-powered pull request code review focusing on correctness, securi
4
4
  license: MIT
5
5
  ---
6
6
 
7
+ ## Action Inputs
8
+
9
+ - `variants` (optional): OpenCode variants setting for reasoning effort. Use `UNDEFINED` to omit.
10
+
7
11
  ## What I Do
8
12
 
9
13
  Review pull request changes systematically and post findings as a sticky PR comment. Focus on **real issues that matter** - bugs, security risks, and stability problems that would block a merge in a typical code review.
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:h}=new RegExp(`(?:\\${qo}(?<code>\\d+)m|\\${io}(?<uri>.*)${lo})`).exec(p.slice(m).join(""))||{groups:{}};if(h.code!==void 0){let I=Number.parseFloat(h.code);r=I===Ws?void 0:I}else h.uri!==void 0&&(i=h.uri.length===0?void 0:h.uri)}let c=Ks.codes.get(Number(r));p[m+1]===`
5
- `?(i&&(l+=Ko("")),r&&c&&(l+=Ho(c))):w===`
6
- `&&(r&&c&&(l+=Ho(r)),i&&(l+=Ko(i)))}return l};function Wo(s,n,e){return String(s).normalize().replace(/\r\n/g,`
3
+ var xs=Object.create;var{getPrototypeOf:Es,defineProperty:So,getOwnPropertyNames:ks}=Object;var Is=Object.prototype.hasOwnProperty;var H=(s,e,n)=>{n=s!=null?xs(Es(s)):{};let l=e||!s||!s.__esModule?So(n,"default",{value:s,enumerable:!0}):n;for(let r of ks(s))if(!Is.call(l,r))So(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,Ao)=>{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"},ys={up:(s=1)=>"\x1B[S".repeat(s),down:(s=1)=>"\x1B[T".repeat(s)},vs={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}};Ao.exports={cursor:F,scroll:ys,erase:vs,beep:"\x07"}});var so=u((xe,oo)=>{var V=process||{},To=V.argv||[],L=V.env||{},Os=!(!!L.NO_COLOR||To.includes("--no-color"))&&(!!L.FORCE_COLOR||To.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)},Co=(s=Os)=>{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=Co();oo.exports.createColors=Co});var cs=u((on,me)=>{me.exports={name:"@activade/open-workflows",version:"2.0.7",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.11.0",picocolors:"^1.1.1"},devDependencies:{"@types/node":"^25.0.10","@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 Ns}from"stream";function Ss({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 As=Ss();function Yo(s){if(typeof s!="string")throw TypeError(`Expected a \`string\`, got \`${typeof s}\``);return s.replace(As,"")}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 f=p[m],c=e.length(f);if(a>=r-(c==2?1:0))if(a+c<=t)o+=f;else break;a+=c}return o}})(qo);var Ts=qo.exports,Cs=jo(Ts),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 U(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(Cs.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`,w={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(w.modifier);var Bs=Object.keys(w.color),Hs=Object.keys(w.bgColor);[...Bs,...Hs];function Us(){let s=new Map;for(let[e,n]of Object.entries(w)){for(let[l,r]of Object.entries(n))w[l]={open:`\x1B[${r[0]}m`,close:`\x1B[${r[1]}m`},n[l]=w[l],s.set(r[0],r[1]);Object.defineProperty(w,e,{value:n,enumerable:!1})}return Object.defineProperty(w,"codes",{value:s,enumerable:!1}),w.color.close="\x1B[39m",w.bgColor.close="\x1B[49m",w.color.ansi=Ro(),w.color.ansi256=Bo(),w.color.ansi16m=Ho(),w.bgColor.ansi=Ro(eo),w.bgColor.ansi256=Bo(eo),w.bgColor.ansi16m=Ho(eo),Object.defineProperties(w,{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)=>w.rgbToAnsi256(...w.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)=>w.ansi256ToAnsi(w.rgbToAnsi256(e,n,l)),enumerable:!1},hexToAnsi:{value:(e)=>w.ansi256ToAnsi(w.hexToAnsi256(e)),enumerable:!1}}),w}var Ks=Us(),q=new Set(["\x1B","\x9B"]),Ws=39,lo="\x07",zo="[",Gs="]",Jo="m",to=`${Gs}8;;`,Uo=(s)=>`${q.values().next().value}${zo}${s}${Jo}`,Ko=(s)=>`${q.values().next().value}${to}${s}${lo}`,Ls=(s)=>s.split(" ").map((e)=>U(e)),no=(s,e,n)=>{let l=[...e],r=!1,t=!1,o=U(Yo(s[s.length-1]));for(let[a,p]of l.entries()){let m=U(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&&!(U(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,f]of s.split(" ").entries()){n.trim!==!1&&(a[a.length-1]=a[a.length-1].trimStart());let c=U(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,y=1+Math.floor((o[m]-g-1)/e);Math.floor((o[m]-1)/e)<y&&a.push(""),no(a,f,e);continue}if(c+o[m]>e&&c>0&&o[m]>0){if(n.wordWrap===!1&&c<e){no(a,f,e);continue}a.push("")}if(c+o[m]>e&&n.wordWrap===!1){no(a,f,e);continue}a[a.length-1]+=f}n.trim!==!1&&(a=a.map((m)=>Vs(m)));let p=[...a.join(`
4
+ `)];for(let[m,f]of p.entries()){if(l+=f,q.has(f)){let{groups:g}=new RegExp(`(?:\\${zo}(?<code>\\d+)m|\\${to}(?<uri>.*)${lo})`).exec(p.slice(m).join(""))||{groups:{}};if(g.code!==void 0){let y=Number.parseFloat(g.code);r=y===Ws?void 0:y}else g.uri!==void 0&&(t=g.uri.length===0?void 0:g.uri)}let c=Ks.codes.get(Number(r));p[m+1]===`
5
+ `?(t&&(l+=Ko("")),r&&c&&(l+=Uo(c))):f===`
6
+ `&&(r&&c&&(l+=Uo(r)),t&&(l+=Ko(t)))}return l};function Wo(s,e,n){return String(s).normalize().replace(/\r\n/g,`
7
7
  `).split(`
8
- `).map((l)=>Vs(l,n,e)).join(`
9
- `)}var Ys=["up","down","left","right","space","enter","cancel"],j={actions:new Set(Ys),aliases:new Map([["k","up"],["j","down"],["h","left"],["l","right"],["\x03","cancel"],["escape","cancel"]])};function to(s,n){if(typeof s=="string")return j.aliases.get(s)===n;for(let e of s)if(e!==void 0&&to(e,n))return!0;return!1}function js(s,n){if(s===n)return;let e=s.split(`
10
- `),l=n.split(`
11
- `),r=[];for(let i=0;i<Math.max(e.length,l.length);i++)e[i]!==l[i]&&r.push(i);return r}var qs=globalThis.process.platform.startsWith("win"),ro=Symbol("clack:cancel");function C(s){return s===ro}function Y(s,n){let e=s;e.isTTY&&e.setRawMode(n)}function Jo({input:s=Lo,output:n=Go,overwrite:e=!0,hideCursor:l=!0}={}){let r=S.createInterface({input:s,output:n,prompt:"",tabSize:1});S.emitKeypressEvents(s,r),s.isTTY&&s.setRawMode(!0);let i=(o,{name:a,sequence:p})=>{let m=String(o);if(to([m,a,p],"cancel")){l&&n.write(x.cursor.show),process.exit(0);return}if(!e)return;S.moveCursor(n,a==="return"?0:-1,a==="return"?-1:0,()=>{S.clearLine(n,1,()=>{s.once("keypress",i)})})};return l&&n.write(x.cursor.hide),s.once("keypress",i),()=>{s.off("keypress",i),l&&n.write(x.cursor.show),s.isTTY&&!qs&&s.setRawMode(!1),r.terminal=!1,r.close()}}var zs=Object.defineProperty,Js=(s,n,e)=>(n in s)?zs(s,n,{enumerable:!0,configurable:!0,writable:!0,value:e}):s[n]=e,E=(s,n,e)=>(Js(s,typeof n!="symbol"?n+"":n,e),e);class ao{constructor(s,n=!0){E(this,"input"),E(this,"output"),E(this,"_abortSignal"),E(this,"rl"),E(this,"opts"),E(this,"_render"),E(this,"_track",!1),E(this,"_prevFrame",""),E(this,"_subscribers",new Map),E(this,"_cursor",0),E(this,"state","initial"),E(this,"error",""),E(this,"value");let{input:e=Lo,output:l=Go,render:r,signal:i,...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=n,this._abortSignal=i,this.input=e,this.output=l}unsubscribe(){this._subscribers.clear()}setSubscriber(s,n){let e=this._subscribers.get(s)??[];e.push(n),this._subscribers.set(s,e)}on(s,n){this.setSubscriber(s,{cb:n})}once(s,n){this.setSubscriber(s,{cb:n,once:!0})}emit(s,...n){let e=this._subscribers.get(s)??[],l=[];for(let r of e)r.cb(...n),r.once&&l.push(()=>e.splice(e.indexOf(r),1));for(let r of l)r()}prompt(){return new Promise((s,n)=>{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 e=new Ss;e._write=(l,r,i)=>{this._track&&(this.value=this.rl?.line.replace(/\t/g,""),this._cursor=this.rl?.cursor??0,this.emit("value",this.value)),i()},this.input.pipe(e),this.rl=To.createInterface({input:this.input,output:e,tabSize:2,prompt:"",escapeCodeTimeout:50,terminal:!0}),To.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,n){if(this.state==="error"&&(this.state="active"),n?.name&&(!this._track&&j.aliases.has(n.name)&&this.emit("cursor",j.aliases.get(n.name)),j.actions.has(n.name)&&this.emit("cursor",n.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()),n?.name==="return"){if(!this.value&&this.opts.placeholder&&(this.rl?.write(this.opts.placeholder),this.emit("value",this.opts.placeholder)),this.opts.validate){let e=this.opts.validate(this.value);e&&(this.error=e instanceof Error?e.message:e,this.state="error",this.rl?.write(this.value))}this.state!=="error"&&(this.state="submit")}to([s,n?.name,n?.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(`
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 C(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,I=(s,e,n)=>(Qs(s,typeof e!="symbol"?e+"":e,n),n);class ao{constructor(s,e=!0){I(this,"input"),I(this,"output"),I(this,"_abortSignal"),I(this,"rl"),I(this,"opts"),I(this,"_render"),I(this,"_track",!1),I(this,"_prevFrame",""),I(this,"_subscribers",new Map),I(this,"_cursor",0),I(this,"state","initial"),I(this,"error",""),I(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 Ns;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.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 n=js(this._prevFrame,s);if(this.restoreCursor(),n&&n?.length===1){let e=n[0];this.output.write(x.cursor.move(0,e)),this.output.write(x.erase.lines(1));let l=s.split(`
14
- `);this.output.write(l[e]),this._prevFrame=s,this.output.write(x.cursor.move(0,l.length-e-1));return}if(n&&n?.length>1){let e=n[0];this.output.write(x.cursor.move(0,e)),this.output.write(x.erase.down());let l=s.split(`
15
- `).slice(e);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",(n)=>{this.output.write(x.cursor.move(0,-1)),this.value=n,this.state="submit",this.close()}),this.on("cursor",()=>{this.value=!this.value})}}var Qs;Qs=new WeakMap;var Xs=Object.defineProperty,Zs=(s,n,e)=>(n in s)?Xs(s,n,{enumerable:!0,configurable:!0,writable:!0,value:e}):s[n]=e,Uo=(s,n,e)=>(Zs(s,typeof n!="symbol"?n+"":n,e),e),Qo=class extends ao{constructor(s){super(s,!1),Uo(this,"options"),Uo(this,"cursor",0),this.options=s.options,this.value=[...s.initialValues??[]],this.cursor=Math.max(this.options.findIndex(({value:n})=>n===s.cursorAt),0),this.on("key",(n)=>{n==="a"&&this.toggleAll()}),this.on("cursor",(n)=>{switch(n){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((n)=>n.value)}toggleValue(){let s=this.value.includes(this._value);this.value=s?this.value.filter((n)=>n!==this._value):[...this.value,this._value]}};var t=H(so(),1),z=H(D(),1);import v from"process";function Ms(){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=Ms(),d=(s,n)=>mo?s:n,us=d("\u25C6","*"),Do=d("\u25A0","x"),os=d("\u25B2","x"),J=d("\u25C7","o"),Fs=d("\u250C","T"),b=d("\u2502","|"),W=d("\u2514","\u2014"),Xo=d("\u25CF",">"),Zo=d("\u25CB"," "),Ds=d("\u25FB","[\u2022]"),Mo=d("\u25FC","[+]"),on=d("\u25FB","[ ]"),Pn=d("\u25AA","\u2022"),uo=d("\u2500","-"),sn=d("\u256E","+"),nn=d("\u251C","+"),en=d("\u256F","+"),rn=d("\u25CF","\u2022"),ln=d("\u25C6","*"),tn=d("\u25B2","!"),an=d("\u25A0","x"),ss=(s)=>{switch(s){case"initial":case"active":return t.default.cyan(us);case"cancel":return t.default.red(Do);case"error":return t.default.yellow(os);case"submit":return t.default.green(J)}},Fo=(s)=>{let{cursor:n,options:e,style:l}=s,r=s.maxItems??Number.POSITIVE_INFINITY,i=Math.max(process.stdout.rows-4,0),o=Math.min(i,Math.max(r,5)),a=0;n>=a+o-3?a=Math.max(Math.min(n-o+3,e.length-o),0):n<a+2&&(a=Math.max(n-2,0));let p=o<e.length&&a>0,m=o<e.length&&a+o<e.length;return e.slice(a,a+o).map((w,c,h)=>{let I=c===0&&p,P=c===h.length-1&&m;return I||P?t.default.dim("..."):l(w,c+a===n)})};var Q=(s)=>{let n=s.active??"Yes",e=s.inactive??"No";return new po({active:n,inactive:e,initialValue:s.initialValue??!0,render(){let l=`${t.default.gray(b)}
17
- ${ss(this.state)} ${s.message}
18
- `,r=this.value?n:e;switch(this.state){case"submit":return`${l}${t.default.gray(b)} ${t.default.dim(r)}`;case"cancel":return`${l}${t.default.gray(b)} ${t.default.strikethrough(t.default.dim(r))}
19
- ${t.default.gray(b)}`;default:return`${l}${t.default.cyan(b)} ${this.value?`${t.default.green(Xo)} ${n}`:`${t.default.dim(Zo)} ${t.default.dim(n)}`} ${t.default.dim("/")} ${this.value?`${t.default.dim(Zo)} ${t.default.dim(e)}`:`${t.default.green(Xo)} ${e}`}
20
- ${t.default.cyan(W)}
21
- `}}}).prompt()};var ns=(s)=>{let n=(e,l)=>{let r=e.label??String(e.value);return l==="active"?`${t.default.cyan(Ds)} ${r} ${e.hint?t.default.dim(`(${e.hint})`):""}`:l==="selected"?`${t.default.green(Mo)} ${t.default.dim(r)} ${e.hint?t.default.dim(`(${e.hint})`):""}`:l==="cancelled"?`${t.default.strikethrough(t.default.dim(r))}`:l==="active-selected"?`${t.default.green(Mo)} ${r} ${e.hint?t.default.dim(`(${e.hint})`):""}`:l==="submitted"?`${t.default.dim(r)}`:`${t.default.dim(on)} ${t.default.dim(r)}`};return new Qo({options:s.options,initialValues:s.initialValues,required:s.required??!0,cursorAt:s.cursorAt,validate(e){if(this.required&&e.length===0)return`Please select at least one option.
22
- ${t.default.reset(t.default.dim(`Press ${t.default.gray(t.default.bgWhite(t.default.inverse(" space ")))} to select, ${t.default.gray(t.default.bgWhite(t.default.inverse(" enter ")))} to submit`))}`},render(){let e=`${t.default.gray(b)}
23
- ${ss(this.state)} ${s.message}
24
- `,l=(r,i)=>{let o=this.value.includes(r.value);return i&&o?n(r,"active-selected"):o?n(r,"selected"):n(r,i?"active":"inactive")};switch(this.state){case"submit":return`${e}${t.default.gray(b)} ${this.options.filter(({value:r})=>this.value.includes(r)).map((r)=>n(r,"submitted")).join(t.default.dim(", "))||t.default.dim("none")}`;case"cancel":{let r=this.options.filter(({value:i})=>this.value.includes(i)).map((i)=>n(i,"cancelled")).join(t.default.dim(", "));return`${e}${t.default.gray(b)} ${r.trim()?`${r}
25
- ${t.default.gray(b)}`:""}`}case"error":{let r=this.error.split(`
26
- `).map((i,o)=>o===0?`${t.default.yellow(W)} ${t.default.yellow(i)}`:` ${i}`).join(`
27
- `);return`${e+t.default.yellow(b)} ${Fo({options:this.options,cursor:this.cursor,maxItems:s.maxItems,style:l}).join(`
28
- ${t.default.yellow(b)} `)}
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 O from"process";function us(){return O.platform!=="win32"?O.env.TERM!=="linux":!!O.env.CI||!!O.env.WT_SESSION||!!O.env.TERMINUS_SUBLIME||O.env.ConEmuTask==="{cmd::Cmder}"||O.env.TERM_PROGRAM==="Terminus-Sublime"||O.env.TERM_PROGRAM==="vscode"||O.env.TERM==="xterm-256color"||O.env.TERM==="alacritty"||O.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","|"),K=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((f,c,g)=>{let y=c===0&&p,R=c===g.length-1&&m;return y||R?i.default.dim("..."):l(f,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(K)}
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(K)} ${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`${e}${t.default.cyan(b)} ${Fo({options:this.options,cursor:this.cursor,maxItems:s.maxItems,style:l}).join(`
31
- ${t.default.cyan(b)} `)}
32
- ${t.default.cyan(W)}
33
- `}}}).prompt()};var X=(s="",n="")=>{let e=`
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(K)}
33
+ `}}}).prompt()};var X=(s="",e="")=>{let n=`
34
34
  ${s}
35
35
  `.split(`
36
- `),l=co(n).length,r=Math.max(e.reduce((o,a)=>{let p=co(a);return p.length>o?p.length:o},0),l)+2,i=e.map((o)=>`${t.default.gray(b)} ${t.default.dim(o)}${" ".repeat(r-co(o).length)}${t.default.gray(b)}`).join(`
37
- `);process.stdout.write(`${t.default.gray(b)}
38
- ${t.default.green(J)} ${t.default.reset(n)} ${t.default.gray(uo.repeat(Math.max(r-l-1,1))+sn)}
39
- ${i}
40
- ${t.default.gray(nn+uo.repeat(r+2)+en)}
41
- `)},Z=(s="")=>{process.stdout.write(`${t.default.gray(W)} ${t.default.red(s)}
42
-
43
- `)},es=(s="")=>{process.stdout.write(`${t.default.gray(Fs)} ${s}
44
- `)},rs=(s="")=>{process.stdout.write(`${t.default.gray(b)}
45
- ${t.default.gray(W)} ${s}
46
-
47
- `)},g={message:(s="",{symbol:n=t.default.gray(b)}={})=>{let e=[`${t.default.gray(b)}`];if(s){let[l,...r]=s.split(`
48
- `);e.push(`${n} ${l}`,...r.map((i)=>`${t.default.gray(b)} ${i}`))}process.stdout.write(`${e.join(`
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(K)} ${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(K)} ${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)=>{g.message(s,{symbol:t.default.blue(rn)})},success:(s)=>{g.message(s,{symbol:t.default.green(ln)})},step:(s)=>{g.message(s,{symbol:t.default.green(J)})},warn:(s)=>{g.message(s,{symbol:t.default.yellow(tn)})},warning:(s)=>{g.warn(s)},error:(s)=>{g.message(s,{symbol:t.default.red(an)})}},Bn=`${t.default.gray(b)} `;var ls=({indicator:s="dots"}={})=>{let n=mo?["\u25D2","\u25D0","\u25D3","\u25D1"]:["\u2022","o","O","0"],e=mo?80:120,l=process.env.CI==="true",r,i,o=!1,a="",p,m=performance.now(),w=(k)=>{let O=k>1?"Something went wrong":"Canceled";o&&So(O,k)},c=()=>w(2),h=()=>w(1),I=()=>{process.on("uncaughtExceptionMonitor",c),process.on("unhandledRejection",c),process.on("SIGINT",h),process.on("SIGTERM",h),process.on("exit",w)},P=()=>{process.removeListener("uncaughtExceptionMonitor",c),process.removeListener("unhandledRejection",c),process.removeListener("SIGINT",h),process.removeListener("SIGTERM",h),process.removeListener("exit",w)},B=()=>{if(p===void 0)return;l&&process.stdout.write(`
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(/\.+$/,""),$o=(k)=>{let O=(performance.now()-k)/1000,$=Math.floor(O/60),A=Math.floor(O%60);return $>0?`[${$}m ${A}s]`:`[${A}s]`},ds=(k="")=>{o=!0,r=Jo(),a=M(k),m=performance.now(),process.stdout.write(`${t.default.gray(b)}
53
- `);let O=0,$=0;I(),i=setInterval(()=>{if(l&&a===p)return;B(),p=a;let A=t.default.magenta(n[O]);if(l)process.stdout.write(`${A} ${a}...`);else if(s==="timer")process.stdout.write(`${A} ${a} ${$o(m)}`);else{let hs=".".repeat(Math.floor($)).slice(0,3);process.stdout.write(`${A} ${a}${hs}`)}O=O+1<n.length?O+1:0,$=$<n.length?$+0.125:0},e)},So=(k="",O=0)=>{o=!1,clearInterval(i),B();let $=O===0?t.default.green(J):O===1?t.default.red(Do):t.default.red(os);a=M(k??a),s==="timer"?process.stdout.write(`${$} ${a} ${$o(m)}
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(),f=(E)=>{let v=E>1?"Something went wrong":"Canceled";o&&No(v,E)},c=()=>f(2),g=()=>f(1),y=()=>{process.on("uncaughtExceptionMonitor",c),process.on("unhandledRejection",c),process.on("SIGINT",g),process.on("SIGTERM",g),process.on("exit",f)},R=()=>{process.removeListener("uncaughtExceptionMonitor",c),process.removeListener("unhandledRejection",c),process.removeListener("SIGINT",g),process.removeListener("SIGTERM",g),process.removeListener("exit",f)},B=()=>{if(p===void 0)return;l&&process.stdout.write(`
51
+ `);let E=p.split(`
52
+ `);process.stdout.write(z.cursor.move(-999,E.length-1)),process.stdout.write(z.erase.down(E.length))},M=(E)=>E.replace(/\.+$/,""),_o=(E)=>{let v=(performance.now()-E)/1000,$=Math.floor(v/60),T=Math.floor(v%60);return $>0?`[${$}m ${T}s]`:`[${T}s]`},gs=(E="")=>{o=!0,r=Qo(),a=M(E),m=performance.now(),process.stdout.write(`${i.default.gray(b)}
53
+ `);let v=0,$=0;y(),t=setInterval(()=>{if(l&&a===p)return;B(),p=a;let T=i.default.magenta(e[v]);if(l)process.stdout.write(`${T} ${a}...`);else if(s==="timer")process.stdout.write(`${T} ${a} ${_o(m)}`);else{let ds=".".repeat(Math.floor($)).slice(0,3);process.stdout.write(`${T} ${a}${ds}`)}v=v+1<e.length?v+1:0,$=$<e.length?$+0.125:0},n)},No=(E="",v=0)=>{o=!1,clearInterval(t),B();let $=v===0?i.default.green(J):v===1?i.default.red(os):i.default.red(ss);a=M(E??a),s==="timer"?process.stdout.write(`${$} ${a} ${_o(m)}
54
54
  `):process.stdout.write(`${$} ${a}
55
- `),P(),r()};return{start:ds,stop:So,message:(k="")=>{a=M(k??a)}}},is=async(s,n)=>{let e={},l=Object.keys(s);for(let r of l){let i=s[r],o=await i({results:e})?.catch((a)=>{throw a});if(typeof n?.onCancel=="function"&&C(o)){e[r]="canceled",n.onCancel({results:e});continue}e[r]=o}return e};var y=H(so(),1);import*as _ from"fs";import*as U from"path";var N="\n OPENCODE_AUTH: ${{ secrets.OPENCODE_AUTH }}",T="\n ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}";var fo=(s)=>`name: PR Review
55
+ `),R(),r()};return{start:gs,stop:No,message:(E="")=>{a=M(E??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"&&C(o)){n[r]="canceled",e.onCancel({results:n});continue}n[r]=o}return n};var k=H(so(),1);import*as A from"fs";import*as W from"path";var N="\n OPENCODE_AUTH: ${{ secrets.OPENCODE_AUTH }}",S="\n ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}";var wo=(s)=>`name: PR Review
56
56
 
57
57
  on:
58
58
  pull_request:
@@ -68,9 +68,11 @@ jobs:
68
68
  - uses: actions/checkout@v4
69
69
 
70
70
  - uses: activadee/open-workflows/actions/pr-review@main
71
+ with:
72
+ variants: "UNDEFINED"
71
73
  env:
72
- GITHUB_TOKEN: \${{ secrets.GITHUB_TOKEN }}${s?N:T}
73
- `;var wo=(s)=>`name: Issue Label
74
+ GITHUB_TOKEN: \${{ secrets.GITHUB_TOKEN }}${s?N:S}
75
+ `;var fo=(s)=>`name: Issue Label
74
76
 
75
77
  on:
76
78
  issues:
@@ -85,8 +87,10 @@ jobs:
85
87
  - uses: actions/checkout@v4
86
88
 
87
89
  - uses: activadee/open-workflows/actions/issue-label@main
90
+ with:
91
+ variants: "UNDEFINED"
88
92
  env:
89
- GITHUB_TOKEN: \${{ secrets.GITHUB_TOKEN }}${s?N:T}
93
+ GITHUB_TOKEN: \${{ secrets.GITHUB_TOKEN }}${s?N:S}
90
94
  `;var bo=(s)=>`name: Doc Sync
91
95
 
92
96
  on:
@@ -106,8 +110,10 @@ jobs:
106
110
  fetch-depth: 0
107
111
 
108
112
  - uses: activadee/open-workflows/actions/doc-sync@main
113
+ with:
114
+ variants: "UNDEFINED"
109
115
  env:
110
- GITHUB_TOKEN: \${{ secrets.GITHUB_TOKEN }}${s?N:T}
116
+ GITHUB_TOKEN: \${{ secrets.GITHUB_TOKEN }}${s?N:S}
111
117
  `;var ho=(s)=>`name: Release
112
118
 
113
119
  on:
@@ -143,8 +149,33 @@ jobs:
143
149
  version: \${{ inputs.version }}
144
150
  env:
145
151
  GITHUB_TOKEN: \${{ secrets.GITHUB_TOKEN }}
146
- `;var go={review:"pr-review",label:"issue-label","doc-sync":"doc-sync",release:"release"};var cn={"pr-review":fo,"issue-label":wo,"doc-sync":bo,release:ho};function ts(s){let{workflows:n,cwd:e=process.cwd()}=s,l=U.join(e,".github","workflows"),r=[];for(let i of n){let o=go[i],a=U.join(l,`${o}.yml`);if(_.existsSync(a))r.push({type:"workflow",name:i,path:`.github/workflows/${o}.yml`})}return r}function as(s){let{workflows:n,cwd:e=process.cwd(),useOAuth:l=!1,override:r=!1,overrideNames:i}=s,o=[],a=U.join(e,".github","workflows");if(!_.existsSync(a))_.mkdirSync(a,{recursive:!0});for(let p of n){let m=go[p],w=cn[m],c=U.join(a,`${m}.yml`);if(!w){o.push({type:"workflow",name:p,status:"error",path:c,message:`Unknown workflow: ${p}`});continue}let h=w(l);if(!h){o.push({type:"workflow",name:p,status:"error",path:c,message:`Unknown workflow: ${p}`});continue}let I=_.existsSync(c),P=r||i?.has(p);if(I&&!P){o.push({type:"workflow",name:p,status:"skipped",path:`.github/workflows/${m}.yml`,message:"Skipped: already exists"});continue}try{_.writeFileSync(c,h,"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 fn=await Promise.resolve().then(() => H(ps(),1)).catch(()=>({version:"unknown"})),Oo=fn.version,R=process.argv.slice(2),wn=R.includes("--help")||R.includes("-h"),bn=R.includes("--version")||R.includes("-v"),Io=R.includes("--force")||R.includes("-f");if(bn)process.stdout.write(`@activade/open-workflows v${Oo}
147
- `),process.exit(0);if(wn)process.stdout.write(`@activade/open-workflows v${Oo}
152
+ `;var go=(s)=>`name: AI Changeset
153
+
154
+ on:
155
+ pull_request:
156
+ types: [opened, synchronize, reopened]
157
+
158
+ jobs:
159
+ changeset:
160
+ runs-on: ubuntu-latest
161
+ permissions:
162
+ contents: write
163
+ pull-requests: write
164
+ steps:
165
+ - uses: actions/checkout@v4
166
+ with:
167
+ fetch-depth: 0
168
+ ref: \${{ github.head_ref }}
169
+ token: \${{ secrets.GITHUB_TOKEN }}
170
+
171
+ - uses: activadee/open-workflows/actions/changeset@main
172
+ with:
173
+ mode: commit
174
+ variants: "UNDEFINED"
175
+ env:
176
+ GITHUB_TOKEN: \${{ secrets.GITHUB_TOKEN }}${s?N:S}
177
+ `;var xo={review:"pr-review",label:"issue-label","doc-sync":"doc-sync",release:"release",changeset:"changeset"};var ce={"pr-review":wo,"issue-label":fo,"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(A.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(!A.existsSync(a))A.mkdirSync(a,{recursive:!0});for(let p of e){let m=xo[p],f=ce[m],c=W.join(a,`${m}.yml`);if(!f){o.push({type:"workflow",name:p,status:"error",path:c,message:`Unknown workflow: ${p}`});continue}let g=f(l);if(!g){o.push({type:"workflow",name:p,status:"error",path:c,message:`Unknown workflow: ${p}`});continue}let y=A.existsSync(c),R=r||t?.has(p);if(y&&!R){o.push({type:"workflow",name:p,status:"skipped",path:`.github/workflows/${m}.yml`,message:"Skipped: already exists"});continue}try{A.writeFileSync(c,g,"utf-8"),o.push({type:"workflow",name:p,status:y?"overwritten":"created",path:`.github/workflows/${m}.yml`,message:y?"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 we=await Promise.resolve().then(() => H(cs(),1)).catch(()=>({version:"unknown"})),Oo=we.version,P=process.argv.slice(2),fe=P.includes("--help")||P.includes("-h"),be=P.includes("--version")||P.includes("-v"),vo=P.includes("--force")||P.includes("-f");if(be)process.stdout.write(`@activade/open-workflows v${Oo}
178
+ `),process.exit(0);if(fe)process.stdout.write(`@activade/open-workflows v${Oo}
148
179
 
149
180
  AI-powered GitHub automation workflows.
150
181
 
@@ -162,6 +193,7 @@ WHAT GETS INSTALLED
162
193
  .github/workflows/issue-label.yml
163
194
  .github/workflows/doc-sync.yml
164
195
  .github/workflows/release.yml
196
+ .github/workflows/changeset.yml
165
197
 
166
198
  REQUIRED SECRETS
167
199
  For Claude Max (OAuth):
@@ -171,10 +203,10 @@ REQUIRED SECRETS
171
203
  ANTHROPIC_API_KEY - Your Anthropic API key
172
204
 
173
205
  For more information: https://github.com/activadee/open-workflows
174
- `),process.exit(0);es(y.default.bgCyan(y.default.black(` @activade/open-workflows v${Oo} `)));var cs=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"}],required:!0}),useOAuth:()=>Q({message:"Use Claude Max subscription (OAuth)? (No = API key)",initialValue:!1})},{onCancel:()=>{Z("Installation cancelled."),process.exit(0)}}),ms=cs.workflows||[],vo=Boolean(cs.useOAuth),fs=!1;if(vo){let s=await Q({message:"Install opencode-auth-sync plugin? (keeps OAuth tokens synced)",initialValue:!0});if(C(s))Z("Installation cancelled."),process.exit(0);fs=Boolean(s)}var ws=new Set;if(!Io){let s=ts({workflows:ms});if(s.length>0){g.warn(`Found ${s.length} existing file(s):`);for(let n of s){let e=await Q({message:`Override ${n.path}?`,initialValue:!1});if(C(e))Z("Installation cancelled."),process.exit(0);if(e)ws.add(n.name)}}}var bs=ls();bs.start("Installing workflows...");var L=as({workflows:ms,useOAuth:vo,override:Io,overrideNames:Io?void 0:ws}),dn=L.some((s)=>s.status==="error");bs.stop(dn?"Installation completed with errors":"Installation complete!");var xo=L.filter((s)=>s.status==="created"),ko=L.filter((s)=>s.status==="overwritten"),yo=L.filter((s)=>s.status==="skipped"),Eo=L.filter((s)=>s.status==="error");if(xo.length>0){g.success(`Created ${xo.length} file(s):`);for(let s of xo)g.message(` ${y.default.green("+")} ${s.path}`)}if(ko.length>0){g.success(`Overwritten ${ko.length} file(s):`);for(let s of ko)g.message(` ${y.default.cyan("~")} ${s.path}`)}if(yo.length>0){g.warn(`Skipped ${yo.length} file(s) (already exist):`);for(let s of yo)g.message(` ${y.default.yellow("-")} ${s.path}`)}if(Eo.length>0){g.error(`Failed ${Eo.length} file(s):`);for(let s of Eo)g.message(` ${y.default.red("x")} ${s.path}: ${s.message}`)}if(vo)if(fs)g.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(`${y.default.cyan("1.")} Export your OpenCode auth as a secret:
175
- ${y.default.dim("gh secret set OPENCODE_AUTH < ~/.local/share/opencode/auth.json")}
206
+ `),process.exit(0);rs(k.default.bgCyan(k.default.black(` @activade/open-workflows v${Oo} `)));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)}}),ws=ms.workflows||[],$o=Boolean(ms.useOAuth),fs=!1;if($o){let s=await Q({message:"Install opencode-auth-sync plugin? (keeps OAuth tokens synced)",initialValue:!0});if(C(s))Z("Installation cancelled."),process.exit(0);fs=Boolean(s)}var bs=new Set;if(!vo){let s=as({workflows:ws});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(C(n))Z("Installation cancelled."),process.exit(0);if(n)bs.add(e.name)}}}var hs=ts();hs.start("Installing workflows...");var G=ps({workflows:ws,useOAuth:$o,override:vo,overrideNames:vo?void 0:bs}),he=G.some((s)=>s.status==="error");hs.stop(he?"Installation completed with errors":"Installation complete!");var Eo=G.filter((s)=>s.status==="created"),ko=G.filter((s)=>s.status==="overwritten"),Io=G.filter((s)=>s.status==="skipped"),yo=G.filter((s)=>s.status==="error");if(Eo.length>0){d.success(`Created ${Eo.length} file(s):`);for(let s of Eo)d.message(` ${k.default.green("+")} ${s.path}`)}if(ko.length>0){d.success(`Overwritten ${ko.length} file(s):`);for(let s of ko)d.message(` ${k.default.cyan("~")} ${s.path}`)}if(Io.length>0){d.warn(`Skipped ${Io.length} file(s) (already exist):`);for(let s of Io)d.message(` ${k.default.yellow("-")} ${s.path}`)}if(yo.length>0){d.error(`Failed ${yo.length} file(s):`);for(let s of yo)d.message(` ${k.default.red("x")} ${s.path}: ${s.message}`)}if($o)if(fs)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(`${k.default.cyan("1.")} Export your OpenCode auth as a secret:
207
+ ${k.default.dim("gh secret set OPENCODE_AUTH < ~/.local/share/opencode/auth.json")}
176
208
 
177
- ${y.default.cyan("2.")} Commit and push the workflow files`,"Next steps (OAuth)");else X(`${y.default.cyan("1.")} Add your Anthropic API key:
178
- ${y.default.dim("gh secret set ANTHROPIC_API_KEY")}
209
+ ${k.default.cyan("2.")} Commit and push the workflow files`,"Next steps (OAuth)");else X(`${k.default.cyan("1.")} Add your Anthropic API key:
210
+ ${k.default.dim("gh secret set ANTHROPIC_API_KEY")}
179
211
 
180
- ${y.default.cyan("2.")} Commit and push the workflow files`,"Next steps");rs(y.default.green("Done!"));
212
+ ${k.default.cyan("2.")} Commit and push the workflow files`,"Next steps");ls(k.default.green("Done!"));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@activade/open-workflows",
3
- "version": "2.0.5",
3
+ "version": "2.0.7",
4
4
  "description": "AI-powered GitHub automation workflows via composite actions",
5
5
  "keywords": [
6
6
  "github",
@@ -37,11 +37,11 @@
37
37
  "prepublishOnly": "bun run clean && bun run build && bun run typecheck"
38
38
  },
39
39
  "dependencies": {
40
- "@clack/prompts": "^0.10.0",
40
+ "@clack/prompts": "^0.11.0",
41
41
  "picocolors": "^1.1.1"
42
42
  },
43
43
  "devDependencies": {
44
- "@types/node": "^22.0.0",
44
+ "@types/node": "^25.0.10",
45
45
  "@types/bun": "^1.3.5",
46
46
  "typescript": "^5.6.0"
47
47
  },