just-ship-it 0.0.1

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/LICENSE ADDED
@@ -0,0 +1,201 @@
1
+ Apache License
2
+ Version 2.0, January 2004
3
+ http://www.apache.org/licenses/
4
+
5
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
6
+
7
+ 1. Definitions.
8
+
9
+ "License" shall mean the terms and conditions for use, reproduction,
10
+ and distribution as defined by Sections 1 through 9 of this document.
11
+
12
+ "Licensor" shall mean the copyright owner or entity authorized by
13
+ the copyright owner that is granting the License.
14
+
15
+ "Legal Entity" shall mean the union of the acting entity and all
16
+ other entities that control, are controlled by, or are under common
17
+ control with that entity. For the purposes of this definition,
18
+ "control" means (i) the power, direct or indirect, to cause the
19
+ direction or management of such entity, whether by contract or
20
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
21
+ outstanding shares, or (iii) beneficial ownership of such entity.
22
+
23
+ "You" (or "Your") shall mean an individual or Legal Entity
24
+ exercising permissions granted by this License.
25
+
26
+ "Source" form shall mean the preferred form for making modifications,
27
+ including but not limited to software source code, documentation
28
+ source, and configuration files.
29
+
30
+ "Object" form shall mean any form resulting from mechanical
31
+ transformation or translation of a Source form, including but
32
+ not limited to compiled object code, generated documentation,
33
+ and conversions to other media types.
34
+
35
+ "Work" shall mean the work of authorship, whether in Source or
36
+ Object form, made available under the License, as indicated by a
37
+ copyright notice that is included in or attached to the work
38
+ (an example is provided in the Appendix below).
39
+
40
+ "Derivative Works" shall mean any work, whether in Source or Object
41
+ form, that is based on (or derived from) the Work and for which the
42
+ editorial revisions, annotations, elaborations, or other modifications
43
+ represent, as a whole, an original work of authorship. For the purposes
44
+ of this License, Derivative Works shall not include works that remain
45
+ separable from, or merely link (or bind by name) to the interfaces of,
46
+ the Work and Derivative Works thereof.
47
+
48
+ "Contribution" shall mean any work of authorship, including
49
+ the original version of the Work and any modifications or additions
50
+ to that Work or Derivative Works thereof, that is intentionally
51
+ submitted to Licensor for inclusion in the Work by the copyright owner
52
+ or by an individual or Legal Entity authorized to submit on behalf of
53
+ the copyright owner. For the purposes of this definition, "submitted"
54
+ means any form of electronic, verbal, or written communication sent
55
+ to the Licensor or its representatives, including but not limited to
56
+ communication on electronic mailing lists, source code control systems,
57
+ and issue tracking systems that are managed by, or on behalf of, the
58
+ Licensor for the purpose of discussing and improving the Work, but
59
+ excluding communication that is conspicuously marked or otherwise
60
+ designated in writing by the copyright owner as "Not a Contribution."
61
+
62
+ "Contributor" shall mean Licensor and any individual or Legal Entity
63
+ on behalf of whom a Contribution has been received by Licensor and
64
+ subsequently incorporated within the Work.
65
+
66
+ 2. Grant of Copyright License. Subject to the terms and conditions of
67
+ this License, each Contributor hereby grants to You a perpetual,
68
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
69
+ copyright license to reproduce, prepare Derivative Works of,
70
+ publicly display, publicly perform, sublicense, and distribute the
71
+ Work and such Derivative Works in Source or Object form.
72
+
73
+ 3. Grant of Patent License. Subject to the terms and conditions of
74
+ this License, each Contributor hereby grants to You a perpetual,
75
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
76
+ (except as stated in this section) patent license to make, have made,
77
+ use, offer to sell, sell, import, and otherwise transfer the Work,
78
+ where such license applies only to those patent claims licensable
79
+ by such Contributor that are necessarily infringed by their
80
+ Contribution(s) alone or by combination of their Contribution(s)
81
+ with the Work to which such Contribution(s) was submitted. If You
82
+ institute patent litigation against any entity (including a
83
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
84
+ or a Contribution incorporated within the Work constitutes direct
85
+ or contributory patent infringement, then any patent licenses
86
+ granted to You under this License for that Work shall terminate
87
+ as of the date such litigation is filed.
88
+
89
+ 4. Redistribution. You may reproduce and distribute copies of the
90
+ Work or Derivative Works thereof in any medium, with or without
91
+ modifications, and in Source or Object form, provided that You
92
+ meet the following conditions:
93
+
94
+ (a) You must give any other recipients of the Work or
95
+ Derivative Works a copy of this License; and
96
+
97
+ (b) You must cause any modified files to carry prominent notices
98
+ stating that You changed the files; and
99
+
100
+ (c) You must retain, in the Source form of any Derivative Works
101
+ that You distribute, all copyright, patent, trademark, and
102
+ attribution notices from the Source form of the Work,
103
+ excluding those notices that do not pertain to any part of
104
+ the Derivative Works; and
105
+
106
+ (d) If the Work includes a "NOTICE" text file as part of its
107
+ distribution, then any Derivative Works that You distribute must
108
+ include a readable copy of the attribution notices contained
109
+ within such NOTICE file, excluding those notices that do not
110
+ pertain to any part of the Derivative Works, in at least one
111
+ of the following places: within a NOTICE text file distributed
112
+ as part of the Derivative Works; within the Source form or
113
+ documentation, if provided along with the Derivative Works; or,
114
+ within a display generated by the Derivative Works, if and
115
+ wherever such third-party notices normally appear. The contents
116
+ of the NOTICE file are for informational purposes only and
117
+ do not modify the License. You may add Your own attribution
118
+ notices within Derivative Works that You distribute, alongside
119
+ or as an addendum to the NOTICE text from the Work, provided
120
+ that such additional attribution notices cannot be construed
121
+ as modifying the License.
122
+
123
+ You may add Your own copyright statement to Your modifications and
124
+ may provide additional or different license terms and conditions
125
+ for use, reproduction, or distribution of Your modifications, or
126
+ for any such Derivative Works as a whole, provided Your use,
127
+ reproduction, and distribution of the Work otherwise complies with
128
+ the conditions stated in this License.
129
+
130
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
131
+ any Contribution intentionally submitted for inclusion in the Work
132
+ by You to the Licensor shall be under the terms and conditions of
133
+ this License, without any additional terms or conditions.
134
+ Notwithstanding the above, nothing herein shall supersede or modify
135
+ the terms of any separate license agreement you may have executed
136
+ with Licensor regarding such Contributions.
137
+
138
+ 6. Trademarks. This License does not grant permission to use the trade
139
+ names, trademarks, service marks, or product names of the Licensor,
140
+ except as required for reasonable and customary use in describing the
141
+ origin of the Work and reproducing the content of the NOTICE file.
142
+
143
+ 7. Disclaimer of Warranty. Unless required by applicable law or
144
+ agreed to in writing, Licensor provides the Work (and each
145
+ Contributor provides its Contributions) on an "AS IS" BASIS,
146
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
147
+ implied, including, without limitation, any warranties or conditions
148
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
149
+ PARTICULAR PURPOSE. You are solely responsible for determining the
150
+ appropriateness of using or redistributing the Work and assume any
151
+ risks associated with Your exercise of permissions under this License.
152
+
153
+ 8. Limitation of Liability. In no event and under no legal theory,
154
+ whether in tort (including negligence), contract, or otherwise,
155
+ unless required by applicable law (such as deliberate and grossly
156
+ negligent acts) or agreed to in writing, shall any Contributor be
157
+ liable to You for damages, including any direct, indirect, special,
158
+ incidental, or consequential damages of any character arising as a
159
+ result of this License or out of the use or inability to use the
160
+ Work (including but not limited to damages for loss of goodwill,
161
+ work stoppage, computer failure or malfunction, or any and all
162
+ other commercial damages or losses), even if such Contributor
163
+ has been advised of the possibility of such damages.
164
+
165
+ 9. Accepting Warranty or Additional Liability. While redistributing
166
+ the Work or Derivative Works thereof, You may choose to offer,
167
+ and charge a fee for, acceptance of support, warranty, indemnity,
168
+ or other liability obligations and/or rights consistent with this
169
+ License. However, in accepting such obligations, You may act only
170
+ on Your own behalf and on Your sole responsibility, not on behalf
171
+ of any other Contributor, and only if You agree to indemnify,
172
+ defend, and hold each Contributor harmless for any liability
173
+ incurred by, or claims asserted against, such Contributor by reason
174
+ of your accepting any such warranty or additional liability.
175
+
176
+ END OF TERMS AND CONDITIONS
177
+
178
+ APPENDIX: How to apply the Apache License to your work.
179
+
180
+ To apply the Apache License to your work, attach the following
181
+ boilerplate notice, with the fields enclosed by brackets "[]"
182
+ replaced with your own identifying information. (Don't include
183
+ the brackets!) The text should be enclosed in the appropriate
184
+ comment syntax for the file format. We also recommend that a
185
+ file or class name and description of purpose be included on the
186
+ same "printed page" as the copyright notice for easier
187
+ identification within third-party archives.
188
+
189
+ Copyright 2025 OpenRouter Inc.
190
+
191
+ Licensed under the Apache License, Version 2.0 (the "License");
192
+ you may not use this file except in compliance with the License.
193
+ You may obtain a copy of the License at
194
+
195
+ http://www.apache.org/licenses/LICENSE-2.0
196
+
197
+ Unless required by applicable law or agreed to in writing, software
198
+ distributed under the License is distributed on an "AS IS" BASIS,
199
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
200
+ See the License for the specific language governing permissions and
201
+ limitations under the License.
package/README.md ADDED
@@ -0,0 +1,431 @@
1
+ # just-ship-it
2
+
3
+ Automate changeset-based releases with AI-generated descriptions powered by OpenRouter.
4
+
5
+ ## Features
6
+
7
+ - 🤖 **AI-Powered Descriptions**: Automatically generate meaningful changeset descriptions using AI
8
+ - 🔄 **Automated Release Workflow**: Create changesets, open PRs, merge, and publish releases automatically
9
+ - 🎯 **Smart Version Suggestions**: AI analyzes your changes to suggest appropriate version bumps (patch/minor/major)
10
+ - 🔧 **Multi-Repository Support**: Configure and manage releases for multiple repositories
11
+ - 📦 **Monorepo Support**: Full support for npm, pnpm, yarn, and bun workspaces with lockstep or selective versioning
12
+ - 🎨 **Model Selection**: Choose from 300+ AI models via OpenRouter
13
+ - ✅ **CI/CD Integration**: Waits for checks to pass before merging PRs
14
+ - 🔀 **Changeset Compatible**: Works with existing changeset-based workflows
15
+
16
+ ## Installation
17
+
18
+ For end users:
19
+
20
+ ```bash
21
+ # Using bun (recommended)
22
+ bun add -g just-ship-it
23
+
24
+ # Or using npm
25
+ npm install -g just-ship-it
26
+ ```
27
+
28
+ For development:
29
+
30
+ ```bash
31
+ # Clone the repository
32
+ git clone https://github.com/mattapperson/just-ship-it
33
+ cd just-ship-it
34
+
35
+ # Install bun if you haven't already
36
+ curl -fsSL https://bun.sh/install | bash
37
+
38
+ # Install dependencies
39
+ bun install
40
+
41
+ # Build
42
+ bun run build
43
+
44
+ # Run tests
45
+ bun test
46
+ ```
47
+
48
+ ## Prerequisites
49
+
50
+ - **Node.js 18+**: Required for running the CLI
51
+ - **Bun** (for development only): Fast JavaScript runtime and package manager
52
+ - Install: `curl -fsSL https://bun.sh/install | bash`
53
+ - Or visit [bun.sh](https://bun.sh) for other installation methods
54
+ - Note: End users do NOT need bun installed to use just-ship-it
55
+ - **GitHub CLI**: Must be installed and authenticated
56
+ ```bash
57
+ gh auth login
58
+ ```
59
+ - **OpenRouter API Key**: Required for AI features
60
+ - Sign up at [openrouter.ai](https://openrouter.ai)
61
+ - Set your API key as an environment variable:
62
+ ```bash
63
+ export OPENROUTER_API_KEY='your_api_key_here'
64
+ ```
65
+
66
+ ## Setup
67
+
68
+ ### 1. Install GitHub CLI
69
+
70
+ ```bash
71
+ # macOS
72
+ brew install gh
73
+
74
+ # Windows
75
+ winget install GitHub.cli
76
+
77
+ # Linux
78
+ # See https://github.com/cli/cli#installation
79
+ ```
80
+
81
+ ### 2. Authenticate with GitHub
82
+
83
+ ```bash
84
+ gh auth login
85
+ ```
86
+
87
+ ### 3. Get OpenRouter API Key
88
+
89
+ 1. Visit [openrouter.ai](https://openrouter.ai) and create an account
90
+ 2. Generate an API key from your dashboard
91
+ 3. Add it to your environment:
92
+
93
+ ```bash
94
+ # Add to ~/.bashrc, ~/.zshrc, or equivalent
95
+ export OPENROUTER_API_KEY='sk-or-v1-...'
96
+ ```
97
+
98
+ ### 4. Add a Repository
99
+
100
+ ```bash
101
+ just-ship-it add my-project
102
+ ```
103
+
104
+ Follow the prompts to configure:
105
+ - GitHub owner (organization or user)
106
+ - Repository name
107
+ - Base branch (typically `main`)
108
+ - AI model (optional, defaults to `anthropic/claude-opus-4.5`)
109
+
110
+ ## Usage
111
+
112
+ ### Interactive Mode
113
+
114
+ Run without arguments to select a repository and configure the release interactively:
115
+
116
+ ```bash
117
+ just-ship-it
118
+ ```
119
+
120
+ The CLI will:
121
+ 1. Show you a list of configured repositories
122
+ 2. Analyze your changes since the last release
123
+ 3. Suggest a version bump type (patch/minor/major)
124
+ 4. Generate an AI-powered changeset description
125
+ 5. Create a changeset and open a PR
126
+ 6. Wait for CI checks to pass
127
+ 7. Merge the PR and publish the release
128
+
129
+ ### Automated Mode
130
+
131
+ Specify all options via flags for CI/CD integration:
132
+
133
+ ```bash
134
+ just-ship-it my-project --type minor --message "Add new authentication feature" --yes
135
+ ```
136
+
137
+ ### With Custom Model
138
+
139
+ Override the default model for a specific release:
140
+
141
+ ```bash
142
+ just-ship-it my-project --model openai/gpt-4o
143
+ ```
144
+
145
+ ## Commands
146
+
147
+ ### `just-ship-it [repo]`
148
+
149
+ Run a release for the specified repository (or select interactively).
150
+
151
+ **Options:**
152
+ - `-t, --type <type>`: Release type (`patch`, `minor`, or `major`)
153
+ - `-m, --message <message>`: Release message (overrides AI generation)
154
+ - `-y, --yes`: Skip confirmation prompts
155
+ - `--model <model>`: AI model to use for this release
156
+
157
+ **Example:**
158
+ ```bash
159
+ just-ship-it my-app --type patch --yes
160
+ ```
161
+
162
+ ### `just-ship-it add <name>`
163
+
164
+ Add a new repository configuration.
165
+
166
+ **Options:**
167
+ - `--model <model>`: Default model for this repository
168
+ - `--monorepo`: Configure as monorepo (will prompt for versioning mode)
169
+ - `--lockstep`: Use lockstep versioning (all packages bump together)
170
+ - `--selective`: Use selective versioning (only changed packages bump)
171
+
172
+ **Examples:**
173
+ ```bash
174
+ # Single package repository
175
+ just-ship-it add my-project --model anthropic/claude-opus-4.5
176
+
177
+ # Monorepo with interactive setup
178
+ just-ship-it add my-monorepo --monorepo
179
+
180
+ # Monorepo with lockstep versioning
181
+ just-ship-it add design-system --lockstep
182
+
183
+ # Monorepo with selective versioning
184
+ just-ship-it add platform --selective
185
+ ```
186
+
187
+ ### `just-ship-it list`
188
+
189
+ List all configured repositories.
190
+
191
+ **Example:**
192
+ ```bash
193
+ just-ship-it list
194
+ ```
195
+
196
+ ## Model Configuration
197
+
198
+ You can configure which AI model to use at three levels (in order of precedence):
199
+
200
+ ### 1. CLI Flag (Highest Priority)
201
+
202
+ Override for a single release:
203
+
204
+ ```bash
205
+ just-ship-it my-app --model openai/gpt-4o
206
+ ```
207
+
208
+ ### 2. Environment Variable
209
+
210
+ Set a default model for all releases:
211
+
212
+ ```bash
213
+ export OPENROUTER_MODEL='anthropic/claude-opus-4.5'
214
+ ```
215
+
216
+ ### 3. Per-Repository Configuration
217
+
218
+ Configure during `add` or update the config file (`~/.just-ship-it/config.json`):
219
+
220
+ ```bash
221
+ just-ship-it add my-project --model anthropic/claude-opus-4.5
222
+ ```
223
+
224
+ ### 4. Default
225
+
226
+ If no model is specified, defaults to `anthropic/claude-opus-4.5`.
227
+
228
+ ## Example Models
229
+
230
+ OpenRouter provides access to 300+ models. Popular choices include:
231
+
232
+ - `anthropic/claude-opus-4.5` - Best for complex reasoning (default)
233
+ - `anthropic/claude-sonnet-4.5` - Fast and efficient
234
+ - `openai/gpt-4o` - OpenAI's latest
235
+ - `openai/o1` - Advanced reasoning
236
+ - `google/gemini-2.5-pro-002` - Google's flagship model
237
+ - `meta-llama/llama-3.3-70b` - Open source powerhouse
238
+ - `deepseek/deepseek-r1-distill-llama-70b` - Cost-effective reasoning
239
+
240
+ See [openrouter.ai/models](https://openrouter.ai/models) for the complete list.
241
+
242
+ ## Monorepo Support
243
+
244
+ just-ship-it provides comprehensive support for monorepos with multiple packages. It automatically detects workspace configurations and provides two versioning strategies:
245
+
246
+ ### Supported Workspace Types
247
+
248
+ - **npm workspaces** - Detected from `package.json` with `workspaces` field
249
+ - **pnpm workspaces** - Detected from `pnpm-workspace.yaml`
250
+ - **yarn workspaces** - Detected from `package.json` with `workspaces` field
251
+ - **bun workspaces** - Detected from `package.json` with `workspaces` field and `bun.lockb`
252
+
253
+ ### Versioning Modes
254
+
255
+ #### Selective Versioning (Recommended)
256
+
257
+ Only packages with changes are analyzed and released. Best for monorepos with independent packages.
258
+
259
+ ```bash
260
+ just-ship-it add my-monorepo --selective
261
+ ```
262
+
263
+ **How it works:**
264
+ 1. Detects which packages have changes since the last release
265
+ 2. AI analyzes each changed package independently
266
+ 3. You can choose to skip or bump each package individually
267
+ 4. Only changed packages are included in the changeset
268
+
269
+ #### Lockstep Versioning
270
+
271
+ All packages are bumped together, even if they have no changes. Best for tightly coupled packages that should always be on the same version.
272
+
273
+ ```bash
274
+ just-ship-it add design-system --lockstep
275
+ ```
276
+
277
+ **How it works:**
278
+ 1. All packages in the workspace are included
279
+ 2. AI suggests a single version bump based on all changes
280
+ 3. All packages receive the same version bump
281
+ 4. All packages are included in the changeset
282
+
283
+ ### Per-Package AI Analysis
284
+
285
+ For monorepos, just-ship-it analyzes each package's changes independently:
286
+
287
+ - Examines commits that touched each package
288
+ - Reviews files changed within each package
289
+ - Suggests appropriate version bump (patch/minor/major) per package
290
+ - Generates a unified changeset description covering all packages
291
+
292
+ ### Example Workflows
293
+
294
+ **Selective Release:**
295
+ ```bash
296
+ # Setup
297
+ just-ship-it add platform --selective
298
+
299
+ # Run release
300
+ just-ship-it platform
301
+
302
+ # The CLI will:
303
+ # 1. Show you which packages have changes
304
+ # 2. Let you review and adjust version bumps per package
305
+ # 3. Generate a multi-package changeset
306
+ # 4. Create a PR and handle the release
307
+ ```
308
+
309
+ **Lockstep Release:**
310
+ ```bash
311
+ # Setup
312
+ just-ship-it add ui-library --lockstep
313
+
314
+ # Run release
315
+ just-ship-it ui-library
316
+
317
+ # The CLI will:
318
+ # 1. Include all packages in the workspace
319
+ # 2. Suggest a single version bump for all
320
+ # 3. Generate a multi-package changeset
321
+ # 4. Create a PR and handle the release
322
+ ```
323
+
324
+ ## Configuration
325
+
326
+ Configuration is stored in `~/.just-ship-it/config.json`:
327
+
328
+ **Single Package:**
329
+ ```json
330
+ {
331
+ "repos": {
332
+ "my-project": {
333
+ "owner": "myorg",
334
+ "repo": "my-project",
335
+ "baseBranch": "main",
336
+ "cloneUrl": "https://github.com/myorg/my-project.git",
337
+ "model": "anthropic/claude-opus-4.5"
338
+ }
339
+ }
340
+ }
341
+ ```
342
+
343
+ **Monorepo (Selective):**
344
+ ```json
345
+ {
346
+ "repos": {
347
+ "my-monorepo": {
348
+ "owner": "myorg",
349
+ "repo": "my-monorepo",
350
+ "baseBranch": "main",
351
+ "cloneUrl": "https://github.com/myorg/my-monorepo.git",
352
+ "model": "anthropic/claude-opus-4.5",
353
+ "monorepo": {
354
+ "mode": "selective"
355
+ }
356
+ }
357
+ }
358
+ }
359
+ ```
360
+
361
+ **Monorepo (Lockstep):**
362
+ ```json
363
+ {
364
+ "repos": {
365
+ "design-system": {
366
+ "owner": "myorg",
367
+ "repo": "design-system",
368
+ "baseBranch": "main",
369
+ "cloneUrl": "https://github.com/myorg/design-system.git",
370
+ "monorepo": {
371
+ "mode": "lockstep"
372
+ }
373
+ }
374
+ }
375
+ }
376
+ ```
377
+
378
+ ## Environment Variables
379
+
380
+ | Variable | Required | Default | Description |
381
+ |----------|----------|---------|-------------|
382
+ | `OPENROUTER_API_KEY` | **Yes** | - | Your OpenRouter API key |
383
+ | `OPENROUTER_MODEL` | No | `anthropic/claude-opus-4.5` | Default AI model to use |
384
+
385
+ ## How It Works
386
+
387
+ 1. **Clone Repository**: Creates a temporary clone of your repository
388
+ 2. **Analyze Changes**: Uses `git log` and `git diff` to analyze changes since the last release
389
+ 3. **AI Analysis**: Sends change context to OpenRouter for analysis
390
+ 4. **Generate Changeset**: Creates a changeset file with AI-generated description
391
+ 5. **Create PR**: Opens a pull request with the changeset
392
+ 6. **CI Checks**: Waits for all GitHub checks to pass
393
+ 7. **Merge & Publish**: Merges the PR and publishes the release
394
+
395
+ ## Troubleshooting
396
+
397
+ ### "OPENROUTER_API_KEY environment variable is required"
398
+
399
+ Make sure your API key is set:
400
+
401
+ ```bash
402
+ export OPENROUTER_API_KEY='your_key_here'
403
+ ```
404
+
405
+ ### "GitHub CLI not authenticated"
406
+
407
+ Run `gh auth login` to authenticate with GitHub.
408
+
409
+ ### "No repositories configured"
410
+
411
+ Add a repository with:
412
+
413
+ ```bash
414
+ just-ship-it add my-project
415
+ ```
416
+
417
+ ## Credits
418
+
419
+ Based on [autoship](https://github.com/vercel-labs/autoship) v0.2.0 by Vercel Labs, adapted to use OpenRouter for model flexibility and broader AI provider access.
420
+
421
+ ## License
422
+
423
+ Apache-2.0
424
+
425
+ ## Author
426
+
427
+ Matt Apperson
428
+
429
+ ## Repository
430
+
431
+ https://github.com/mattapperson/just-ship-it
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ import '../dist/index.js';
package/dist/ai.d.ts ADDED
@@ -0,0 +1,20 @@
1
+ import type { PackageChange } from './types.js';
2
+ export interface DiffContext {
3
+ commits: string[];
4
+ diff: string;
5
+ filesChanged: string[];
6
+ insertions: number;
7
+ deletions: number;
8
+ previousVersion: string;
9
+ }
10
+ export declare function generateChangesetMessage(packageName: string, releaseType: 'patch' | 'minor' | 'major', context: DiffContext): Promise<string>;
11
+ export declare function suggestReleaseType(context: DiffContext): Promise<'patch' | 'minor' | 'major'>;
12
+ /**
13
+ * Analyze a single package's changes to suggest version bump type
14
+ */
15
+ export declare function analyzePackageChange(packageChange: PackageChange): Promise<'patch' | 'minor' | 'major'>;
16
+ /**
17
+ * Generate a unified description for multiple packages
18
+ */
19
+ export declare function generateMultiPackageChangesetMessage(packageChanges: PackageChange[]): Promise<string>;
20
+ //# sourceMappingURL=ai.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai.d.ts","sourceRoot":"","sources":["../src/ai.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAchD,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,wBAAsB,wBAAwB,CAC5C,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,OAAO,GAAG,OAAO,GAAG,OAAO,EACxC,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,MAAM,CAAC,CAkDjB;AAED,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC,CAsDtC;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,aAAa,EAAE,aAAa,GAC3B,OAAO,CAAC,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC,CAwDtC;AAED;;GAEG;AACH,wBAAsB,oCAAoC,CACxD,cAAc,EAAE,aAAa,EAAE,GAC9B,OAAO,CAAC,MAAM,CAAC,CA2CjB"}