@radkode/neo 1.5.0 → 1.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +15 -112
- package/dist/cli.js.map +1 -1
- package/dist/commands/git/push/index.d.ts.map +1 -1
- package/dist/commands/git/push/index.js +3 -0
- package/dist/commands/git/push/index.js.map +1 -1
- package/dist/commands/index.d.ts +1 -0
- package/dist/commands/index.d.ts.map +1 -1
- package/dist/commands/index.js +3 -0
- package/dist/commands/index.js.map +1 -1
- package/dist/commands/init/index.d.ts.map +1 -1
- package/dist/commands/init/index.js +29 -0
- package/dist/commands/init/index.js.map +1 -1
- package/dist/commands/work/finish/index.d.ts +22 -0
- package/dist/commands/work/finish/index.d.ts.map +1 -0
- package/dist/commands/work/finish/index.js +306 -0
- package/dist/commands/work/finish/index.js.map +1 -0
- package/dist/commands/work/index.d.ts +3 -0
- package/dist/commands/work/index.d.ts.map +1 -0
- package/dist/commands/work/index.js +33 -0
- package/dist/commands/work/index.js.map +1 -0
- package/dist/commands/work/ship/index.d.ts +27 -0
- package/dist/commands/work/ship/index.d.ts.map +1 -0
- package/dist/commands/work/ship/index.js +361 -0
- package/dist/commands/work/ship/index.js.map +1 -0
- package/dist/commands/work/start/index.d.ts +17 -0
- package/dist/commands/work/start/index.d.ts.map +1 -0
- package/dist/commands/work/start/index.js +250 -0
- package/dist/commands/work/start/index.js.map +1 -0
- package/dist/core/errors/index.d.ts +7 -129
- package/dist/core/errors/index.d.ts.map +1 -1
- package/dist/core/errors/index.js +0 -233
- package/dist/core/errors/index.js.map +1 -1
- package/dist/storage/db.d.ts +5 -3
- package/dist/storage/db.d.ts.map +1 -1
- package/dist/storage/db.js +87 -120
- package/dist/storage/db.js.map +1 -1
- package/dist/types/agent.d.ts +0 -8
- package/dist/types/agent.d.ts.map +1 -1
- package/dist/types/schemas.d.ts +1 -0
- package/dist/types/schemas.d.ts.map +1 -1
- package/dist/types/schemas.js +1 -0
- package/dist/types/schemas.js.map +1 -1
- package/dist/utils/agent.js +1 -1
- package/dist/utils/agent.js.map +1 -1
- package/dist/utils/config.d.ts +0 -6
- package/dist/utils/config.d.ts.map +1 -1
- package/dist/utils/config.js +0 -8
- package/dist/utils/config.js.map +1 -1
- package/dist/utils/logger.d.ts +8 -2
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +8 -1
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/prompt.d.ts.map +1 -1
- package/dist/utils/prompt.js +15 -11
- package/dist/utils/prompt.js.map +1 -1
- package/dist/utils/skill-installer.d.ts +10 -0
- package/dist/utils/skill-installer.d.ts.map +1 -0
- package/dist/utils/skill-installer.js +56 -0
- package/dist/utils/skill-installer.js.map +1 -0
- package/package.json +6 -13
- package/templates/skills/neo/SKILL.md +66 -0
- package/dist/core/container/index.d.ts +0 -27
- package/dist/core/container/index.d.ts.map +0 -1
- package/dist/core/container/index.js +0 -90
- package/dist/core/container/index.js.map +0 -1
- package/dist/core/interfaces/index.d.ts +0 -324
- package/dist/core/interfaces/index.d.ts.map +0 -1
- package/dist/core/interfaces/index.js +0 -19
- package/dist/core/interfaces/index.js.map +0 -1
- package/dist/core/plugins/command-registry.d.ts +0 -16
- package/dist/core/plugins/command-registry.d.ts.map +0 -1
- package/dist/core/plugins/command-registry.js +0 -40
- package/dist/core/plugins/command-registry.js.map +0 -1
- package/dist/core/plugins/event-bus.d.ts +0 -12
- package/dist/core/plugins/event-bus.d.ts.map +0 -1
- package/dist/core/plugins/event-bus.js +0 -56
- package/dist/core/plugins/event-bus.js.map +0 -1
- package/dist/core/plugins/index.d.ts +0 -6
- package/dist/core/plugins/index.d.ts.map +0 -1
- package/dist/core/plugins/index.js +0 -6
- package/dist/core/plugins/index.js.map +0 -1
- package/dist/core/plugins/plugin-context.d.ts +0 -3
- package/dist/core/plugins/plugin-context.d.ts.map +0 -1
- package/dist/core/plugins/plugin-context.js +0 -116
- package/dist/core/plugins/plugin-context.js.map +0 -1
- package/dist/core/plugins/plugin-loader.d.ts +0 -30
- package/dist/core/plugins/plugin-loader.d.ts.map +0 -1
- package/dist/core/plugins/plugin-loader.js +0 -149
- package/dist/core/plugins/plugin-loader.js.map +0 -1
- package/dist/core/plugins/plugin-registry.d.ts +0 -21
- package/dist/core/plugins/plugin-registry.d.ts.map +0 -1
- package/dist/core/plugins/plugin-registry.js +0 -150
- package/dist/core/plugins/plugin-registry.js.map +0 -1
- package/dist/utils/ui-examples.d.ts +0 -3
- package/dist/utils/ui-examples.d.ts.map +0 -1
- package/dist/utils/ui-examples.js +0 -188
- package/dist/utils/ui-examples.js.map +0 -1
|
@@ -0,0 +1,306 @@
|
|
|
1
|
+
import { Command } from '@commander-js/extra-typings';
|
|
2
|
+
import { execa } from 'execa';
|
|
3
|
+
import { access } from 'node:fs/promises';
|
|
4
|
+
import { ui } from '../../../utils/ui.js';
|
|
5
|
+
import { emitJson } from '../../../utils/output.js';
|
|
6
|
+
import { runAction } from '../../../utils/run-action.js';
|
|
7
|
+
import { GitErrors, isNotGitRepository, isAuthenticationError, isNetworkError, } from '../../../utils/git-errors.js';
|
|
8
|
+
import { isAgentInitialized, getAgentDbPath } from '../../../utils/agent.js';
|
|
9
|
+
import { ContextDB } from '../../../storage/db.js';
|
|
10
|
+
async function pathExists(p) {
|
|
11
|
+
try {
|
|
12
|
+
await access(p);
|
|
13
|
+
return true;
|
|
14
|
+
}
|
|
15
|
+
catch {
|
|
16
|
+
return false;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
async function detectDefaultBranch() {
|
|
20
|
+
try {
|
|
21
|
+
const { stdout } = await execa('git', ['symbolic-ref', 'refs/remotes/origin/HEAD']);
|
|
22
|
+
return stdout.replace('refs/remotes/origin/', '').trim();
|
|
23
|
+
}
|
|
24
|
+
catch {
|
|
25
|
+
for (const name of ['main', 'master']) {
|
|
26
|
+
try {
|
|
27
|
+
await execa('git', ['show-ref', '--verify', '--quiet', `refs/remotes/origin/${name}`]);
|
|
28
|
+
return name;
|
|
29
|
+
}
|
|
30
|
+
catch {
|
|
31
|
+
continue;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
throw new Error('Could not detect default branch. Pass --base <name>, or run `git remote set-head origin --auto`.');
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
async function getCurrentBranch() {
|
|
38
|
+
const { stdout } = await execa('git', ['branch', '--show-current']);
|
|
39
|
+
return stdout.trim();
|
|
40
|
+
}
|
|
41
|
+
async function hasUncommittedChanges() {
|
|
42
|
+
const { stdout } = await execa('git', ['status', '--porcelain']);
|
|
43
|
+
return stdout.trim().length > 0;
|
|
44
|
+
}
|
|
45
|
+
async function branchExistsLocally(branch) {
|
|
46
|
+
try {
|
|
47
|
+
await execa('git', ['show-ref', '--verify', '--quiet', `refs/heads/${branch}`]);
|
|
48
|
+
return true;
|
|
49
|
+
}
|
|
50
|
+
catch {
|
|
51
|
+
return false;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
async function ghInstalled() {
|
|
55
|
+
try {
|
|
56
|
+
await execa('gh', ['--version'], { stdio: ['ignore', 'pipe', 'pipe'] });
|
|
57
|
+
return true;
|
|
58
|
+
}
|
|
59
|
+
catch {
|
|
60
|
+
return false;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
async function queryPrMerged(branch) {
|
|
64
|
+
if (!(await ghInstalled()))
|
|
65
|
+
return null;
|
|
66
|
+
try {
|
|
67
|
+
const { stdout } = await execa('gh', ['pr', 'list', '--head', branch, '--state', 'all', '--json', 'state,url', '--limit', '1'], { stdio: ['ignore', 'pipe', 'pipe'] });
|
|
68
|
+
const parsed = JSON.parse(stdout);
|
|
69
|
+
const first = parsed[0];
|
|
70
|
+
if (!first)
|
|
71
|
+
return null;
|
|
72
|
+
return {
|
|
73
|
+
merged: first.state === 'MERGED',
|
|
74
|
+
url: first.url ?? '',
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
catch {
|
|
78
|
+
return null;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
async function isBranchAncestorOfBase(branch, base) {
|
|
82
|
+
try {
|
|
83
|
+
await execa('git', ['merge-base', '--is-ancestor', branch, `origin/${base}`]);
|
|
84
|
+
return true;
|
|
85
|
+
}
|
|
86
|
+
catch {
|
|
87
|
+
return false;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
async function findWorktreePath(branch) {
|
|
91
|
+
try {
|
|
92
|
+
const { stdout } = await execa('git', ['worktree', 'list', '--porcelain']);
|
|
93
|
+
let currentPath = null;
|
|
94
|
+
for (const line of stdout.split('\n')) {
|
|
95
|
+
if (line.startsWith('worktree ')) {
|
|
96
|
+
currentPath = line.slice('worktree '.length).trim();
|
|
97
|
+
}
|
|
98
|
+
else if (line.startsWith('branch refs/heads/')) {
|
|
99
|
+
const name = line.slice('branch refs/heads/'.length).trim();
|
|
100
|
+
if (name === branch && currentPath)
|
|
101
|
+
return currentPath;
|
|
102
|
+
}
|
|
103
|
+
else if (line.trim() === '') {
|
|
104
|
+
currentPath = null;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
return null;
|
|
108
|
+
}
|
|
109
|
+
catch {
|
|
110
|
+
return null;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
async function markWorkItemDone(branch) {
|
|
114
|
+
if (!(await isAgentInitialized()))
|
|
115
|
+
return false;
|
|
116
|
+
const dbPath = await getAgentDbPath();
|
|
117
|
+
if (!dbPath)
|
|
118
|
+
return false;
|
|
119
|
+
let db = null;
|
|
120
|
+
try {
|
|
121
|
+
db = await ContextDB.create(dbPath);
|
|
122
|
+
const items = db.listContexts({ tag: `branch:${branch}` });
|
|
123
|
+
const workItem = items.find((it) => it.tags.includes('work-item'));
|
|
124
|
+
if (!workItem)
|
|
125
|
+
return false;
|
|
126
|
+
const nextTags = workItem.tags
|
|
127
|
+
.filter((t) => t !== 'active')
|
|
128
|
+
.concat(workItem.tags.includes('done') ? [] : ['done']);
|
|
129
|
+
db.updateContext(workItem.id, { tags: nextTags, priority: 'low' });
|
|
130
|
+
return true;
|
|
131
|
+
}
|
|
132
|
+
catch {
|
|
133
|
+
return false;
|
|
134
|
+
}
|
|
135
|
+
finally {
|
|
136
|
+
db?.close();
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
export async function executeWorkFinish(branchArg, options) {
|
|
140
|
+
try {
|
|
141
|
+
await execa('git', ['rev-parse', '--is-inside-work-tree']);
|
|
142
|
+
}
|
|
143
|
+
catch (error) {
|
|
144
|
+
if (isNotGitRepository(error))
|
|
145
|
+
throw GitErrors.notARepository('work finish');
|
|
146
|
+
throw GitErrors.unknown('work finish', error);
|
|
147
|
+
}
|
|
148
|
+
const base = options.base ?? (await detectDefaultBranch());
|
|
149
|
+
const currentBranch = await getCurrentBranch();
|
|
150
|
+
const branch = branchArg?.trim() || currentBranch;
|
|
151
|
+
if (!branch) {
|
|
152
|
+
throw new Error('No branch specified and HEAD is detached. Pass a branch name.');
|
|
153
|
+
}
|
|
154
|
+
if (branch === base) {
|
|
155
|
+
throw new Error(`Refusing to delete base branch "${base}".`);
|
|
156
|
+
}
|
|
157
|
+
if (!(await branchExistsLocally(branch))) {
|
|
158
|
+
throw new Error(`Branch "${branch}" does not exist locally.`);
|
|
159
|
+
}
|
|
160
|
+
if (currentBranch === branch && (await hasUncommittedChanges()) && !options.force) {
|
|
161
|
+
throw new Error('You have uncommitted changes on the branch being finished. Commit/stash first, or pass --force to override.');
|
|
162
|
+
}
|
|
163
|
+
const prInfo = await queryPrMerged(branch);
|
|
164
|
+
let mergedOnRemote = null;
|
|
165
|
+
if (prInfo) {
|
|
166
|
+
mergedOnRemote = prInfo.merged;
|
|
167
|
+
}
|
|
168
|
+
else {
|
|
169
|
+
mergedOnRemote = (await isBranchAncestorOfBase(branch, base)) ? true : null;
|
|
170
|
+
}
|
|
171
|
+
if (mergedOnRemote === false && !options.force) {
|
|
172
|
+
throw new Error(`PR for ${branch} is not merged${prInfo?.url ? ` (${prInfo.url})` : ''}. Pass --force to finish anyway.`);
|
|
173
|
+
}
|
|
174
|
+
if (mergedOnRemote === null && !options.force) {
|
|
175
|
+
throw new Error(`Could not confirm ${branch} is merged (no PR found and not an ancestor of origin/${base}). Pass --force to finish anyway.`);
|
|
176
|
+
}
|
|
177
|
+
if (currentBranch === branch) {
|
|
178
|
+
const switchSpinner = ui.spinner(`Switching to ${base}`);
|
|
179
|
+
switchSpinner.start();
|
|
180
|
+
try {
|
|
181
|
+
await execa('git', ['checkout', base]);
|
|
182
|
+
switchSpinner.succeed(`Switched to ${base}`);
|
|
183
|
+
}
|
|
184
|
+
catch (error) {
|
|
185
|
+
switchSpinner.fail(`Failed to switch to ${base}`);
|
|
186
|
+
throw GitErrors.unknown('work finish', error);
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
let pulled = false;
|
|
190
|
+
if (options.pull !== false) {
|
|
191
|
+
const pullSpinner = ui.spinner(`Pulling ${base}`);
|
|
192
|
+
pullSpinner.start();
|
|
193
|
+
try {
|
|
194
|
+
await execa('git', ['pull', '--ff-only', 'origin', base]);
|
|
195
|
+
pullSpinner.succeed(`Pulled ${base}`);
|
|
196
|
+
pulled = true;
|
|
197
|
+
}
|
|
198
|
+
catch (error) {
|
|
199
|
+
pullSpinner.fail(`Pull failed for ${base}`);
|
|
200
|
+
if (isAuthenticationError(error))
|
|
201
|
+
throw GitErrors.authenticationFailed('work finish');
|
|
202
|
+
if (isNetworkError(error))
|
|
203
|
+
throw GitErrors.networkError('work finish');
|
|
204
|
+
throw GitErrors.unknown('work finish', error);
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
let worktreeRemoved = false;
|
|
208
|
+
let worktreePath;
|
|
209
|
+
if (options.keepWorktree !== true) {
|
|
210
|
+
const wt = await findWorktreePath(branch);
|
|
211
|
+
if (wt && (await pathExists(wt))) {
|
|
212
|
+
worktreePath = wt;
|
|
213
|
+
const wtSpinner = ui.spinner(`Removing worktree ${wt}`);
|
|
214
|
+
wtSpinner.start();
|
|
215
|
+
try {
|
|
216
|
+
await execa('git', ['worktree', 'remove', wt, '--force']);
|
|
217
|
+
wtSpinner.succeed(`Removed worktree ${wt}`);
|
|
218
|
+
worktreeRemoved = true;
|
|
219
|
+
}
|
|
220
|
+
catch (error) {
|
|
221
|
+
wtSpinner.fail(`Failed to remove worktree ${wt}`);
|
|
222
|
+
throw GitErrors.unknown('work finish', error);
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
const delSpinner = ui.spinner(`Deleting local branch ${branch}`);
|
|
227
|
+
delSpinner.start();
|
|
228
|
+
let branchDeleted = false;
|
|
229
|
+
try {
|
|
230
|
+
await execa('git', ['branch', '-D', branch]);
|
|
231
|
+
delSpinner.succeed(`Deleted ${branch}`);
|
|
232
|
+
branchDeleted = true;
|
|
233
|
+
}
|
|
234
|
+
catch (error) {
|
|
235
|
+
delSpinner.fail(`Failed to delete ${branch}`);
|
|
236
|
+
throw GitErrors.unknown('work finish', error);
|
|
237
|
+
}
|
|
238
|
+
const contextUpdated = await markWorkItemDone(branch);
|
|
239
|
+
const result = {
|
|
240
|
+
branch,
|
|
241
|
+
base,
|
|
242
|
+
mergedOnRemote,
|
|
243
|
+
branchDeleted,
|
|
244
|
+
worktreeRemoved,
|
|
245
|
+
pulled,
|
|
246
|
+
contextUpdated,
|
|
247
|
+
};
|
|
248
|
+
if (prInfo?.url)
|
|
249
|
+
result.prUrl = prInfo.url;
|
|
250
|
+
if (worktreePath !== undefined)
|
|
251
|
+
result.worktreePath = worktreePath;
|
|
252
|
+
return result;
|
|
253
|
+
}
|
|
254
|
+
export function createWorkFinishCommand() {
|
|
255
|
+
const command = new Command('finish');
|
|
256
|
+
command
|
|
257
|
+
.description('After a PR merges: switch to base, pull, delete the local branch, remove any worktree')
|
|
258
|
+
.argument('[branch]', 'branch to finish (default: current branch)')
|
|
259
|
+
.option('--base <branch>', 'base branch (default: origin HEAD)')
|
|
260
|
+
.option('--force', 'finish even if PR is not merged or cannot be confirmed')
|
|
261
|
+
.option('--no-pull', 'do not pull the base branch after switching')
|
|
262
|
+
.option('--keep-worktree', 'leave the associated worktree in place')
|
|
263
|
+
.addHelpText('after', `
|
|
264
|
+
Examples:
|
|
265
|
+
After your PR merged, from the feature branch:
|
|
266
|
+
$ neo work finish
|
|
267
|
+
|
|
268
|
+
Finish another branch without switching to it:
|
|
269
|
+
$ neo work finish jacek/old-feature
|
|
270
|
+
|
|
271
|
+
Agent-friendly:
|
|
272
|
+
$ neo work finish --yes --json
|
|
273
|
+
|
|
274
|
+
Force finish an unmerged branch (e.g. abandoned):
|
|
275
|
+
$ neo work finish --force
|
|
276
|
+
`)
|
|
277
|
+
.action(runAction(async (branchArg, options) => {
|
|
278
|
+
const result = await executeWorkFinish(branchArg, options);
|
|
279
|
+
emitJson({
|
|
280
|
+
ok: true,
|
|
281
|
+
command: 'work finish',
|
|
282
|
+
branch: result.branch,
|
|
283
|
+
base: result.base,
|
|
284
|
+
mergedOnRemote: result.mergedOnRemote,
|
|
285
|
+
prUrl: result.prUrl,
|
|
286
|
+
branchDeleted: result.branchDeleted,
|
|
287
|
+
worktreeRemoved: result.worktreeRemoved,
|
|
288
|
+
worktreePath: result.worktreePath,
|
|
289
|
+
pulled: result.pulled,
|
|
290
|
+
contextUpdated: result.contextUpdated,
|
|
291
|
+
}, {
|
|
292
|
+
text: () => {
|
|
293
|
+
ui.newline();
|
|
294
|
+
ui.success(`Finished ${result.branch} → on ${result.base}`);
|
|
295
|
+
if (result.worktreeRemoved && result.worktreePath) {
|
|
296
|
+
ui.muted(`Removed worktree: ${result.worktreePath}`);
|
|
297
|
+
}
|
|
298
|
+
if (result.contextUpdated) {
|
|
299
|
+
ui.muted('Marked work item as done in agent context DB');
|
|
300
|
+
}
|
|
301
|
+
},
|
|
302
|
+
});
|
|
303
|
+
}));
|
|
304
|
+
return command;
|
|
305
|
+
}
|
|
306
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/commands/work/finish/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/work/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAKtD,wBAAgB,iBAAiB,IAAI,OAAO,CAiC3C"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { Command } from '@commander-js/extra-typings';
|
|
2
|
+
import { createWorkStartCommand } from '../work/start/index.js';
|
|
3
|
+
import { createWorkShipCommand } from '../work/ship/index.js';
|
|
4
|
+
import { createWorkFinishCommand } from '../work/finish/index.js';
|
|
5
|
+
export function createWorkCommand() {
|
|
6
|
+
const command = new Command('work');
|
|
7
|
+
command
|
|
8
|
+
.description('Workflow commands: start, ship, and finish a piece of work')
|
|
9
|
+
.addHelpText('after', `
|
|
10
|
+
Subcommands:
|
|
11
|
+
start <name> Create a new prefixed branch (optionally in a worktree)
|
|
12
|
+
ship Verify + ensure changeset + push + open PR for the current branch
|
|
13
|
+
finish [branch] After merge: switch to base, pull, delete the local branch + worktree
|
|
14
|
+
|
|
15
|
+
Examples:
|
|
16
|
+
Start a new change:
|
|
17
|
+
$ neo work start fix-login-redirect
|
|
18
|
+
|
|
19
|
+
Start in a worktree:
|
|
20
|
+
$ neo work start fix-login-redirect --worktree
|
|
21
|
+
|
|
22
|
+
Ship the current branch:
|
|
23
|
+
$ neo work ship
|
|
24
|
+
|
|
25
|
+
After the PR merged:
|
|
26
|
+
$ neo work finish
|
|
27
|
+
`);
|
|
28
|
+
command.addCommand(createWorkStartCommand());
|
|
29
|
+
command.addCommand(createWorkShipCommand());
|
|
30
|
+
command.addCommand(createWorkFinishCommand());
|
|
31
|
+
return command;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/work/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAE1E,MAAM,UAAU,iBAAiB;IAC/B,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAEpC,OAAO;SACJ,WAAW,CAAC,4DAA4D,CAAC;SACzE,WAAW,CACV,OAAO,EACP;;;;;;;;;;;;;;;;;;CAkBL,CACI,CAAC;IAEJ,OAAO,CAAC,UAAU,CAAC,sBAAsB,EAAE,CAAC,CAAC;IAC7C,OAAO,CAAC,UAAU,CAAC,qBAAqB,EAAE,CAAC,CAAC;IAC5C,OAAO,CAAC,UAAU,CAAC,uBAAuB,EAAE,CAAC,CAAC;IAE9C,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Command } from '@commander-js/extra-typings';
|
|
2
|
+
interface WorkShipOptions {
|
|
3
|
+
base?: string;
|
|
4
|
+
verify?: boolean;
|
|
5
|
+
changeset?: boolean;
|
|
6
|
+
aiPr?: boolean;
|
|
7
|
+
draft?: boolean;
|
|
8
|
+
bump?: string;
|
|
9
|
+
summary?: string;
|
|
10
|
+
package?: string;
|
|
11
|
+
}
|
|
12
|
+
interface WorkShipResult {
|
|
13
|
+
branch: string;
|
|
14
|
+
base: string;
|
|
15
|
+
verified: boolean;
|
|
16
|
+
verifyDurationMs?: number;
|
|
17
|
+
pushed: boolean;
|
|
18
|
+
prUrl?: string;
|
|
19
|
+
prCreated: boolean;
|
|
20
|
+
changesetPath?: string;
|
|
21
|
+
changesetExisting: boolean;
|
|
22
|
+
commits: number;
|
|
23
|
+
}
|
|
24
|
+
export declare function executeWorkShip(options: WorkShipOptions): Promise<WorkShipResult>;
|
|
25
|
+
export declare function createWorkShipCommand(): Command;
|
|
26
|
+
export {};
|
|
27
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/commands/work/ship/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAoBtD,UAAU,eAAe;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,cAAc;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;CACjB;AAkID,wBAAsB,eAAe,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC,CA+KvF;AAED,wBAAgB,qBAAqB,IAAI,OAAO,CAuE/C"}
|