@idea1/cli 1.8.3 → 1.9.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/README.md +117 -55
- package/dist/cli/resolver.d.ts +1 -0
- package/dist/cli/resolver.d.ts.map +1 -1
- package/dist/cli/resolver.js +5 -0
- package/dist/cli/resolver.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +2 -1
- package/dist/cli.js.map +1 -1
- package/dist/commands/approve-pr.d.ts.map +1 -1
- package/dist/commands/approve-pr.js +20 -37
- package/dist/commands/approve-pr.js.map +1 -1
- package/dist/commands/attach-project-item.js +1 -1
- package/dist/commands/attach-project-item.js.map +1 -1
- package/dist/commands/close-worktree.d.ts.map +1 -1
- package/dist/commands/close-worktree.js +4 -3
- package/dist/commands/close-worktree.js.map +1 -1
- package/dist/commands/help.d.ts.map +1 -1
- package/dist/commands/help.js +9 -5
- package/dist/commands/help.js.map +1 -1
- package/dist/commands/join-project-item.d.ts.map +1 -1
- package/dist/commands/join-project-item.js +22 -48
- package/dist/commands/join-project-item.js.map +1 -1
- package/dist/commands/next-workflow-step.d.ts.map +1 -1
- package/dist/commands/next-workflow-step.js +20 -21
- package/dist/commands/next-workflow-step.js.map +1 -1
- package/dist/commands/ready-for-approval.d.ts.map +1 -1
- package/dist/commands/ready-for-approval.js +26 -18
- package/dist/commands/ready-for-approval.js.map +1 -1
- package/dist/commands/release.d.ts +3 -1
- package/dist/commands/release.d.ts.map +1 -1
- package/dist/commands/release.js +98 -19
- package/dist/commands/release.js.map +1 -1
- package/dist/commands/ship-local-changes.d.ts.map +1 -1
- package/dist/commands/ship-local-changes.js +3 -2
- package/dist/commands/ship-local-changes.js.map +1 -1
- package/dist/commands/start-agent-implementation.js +2 -2
- package/dist/commands/start-agent-implementation.js.map +1 -1
- package/dist/commands/start-dev-implementation.d.ts.map +1 -1
- package/dist/commands/start-dev-implementation.js +8 -3
- package/dist/commands/start-dev-implementation.js.map +1 -1
- package/dist/commands/start.d.ts +2 -2
- package/dist/commands/start.d.ts.map +1 -1
- package/dist/commands/start.js +27 -21
- package/dist/commands/start.js.map +1 -1
- package/dist/interactive.d.ts.map +1 -1
- package/dist/interactive.js +164 -0
- package/dist/interactive.js.map +1 -1
- package/dist/jobs/job.d.ts +81 -0
- package/dist/jobs/job.d.ts.map +1 -0
- package/dist/jobs/job.js +258 -0
- package/dist/jobs/job.js.map +1 -0
- package/dist/jobs/targets.d.ts +58 -0
- package/dist/jobs/targets.d.ts.map +1 -0
- package/dist/jobs/targets.js +215 -0
- package/dist/jobs/targets.js.map +1 -0
- package/dist/lib/logger.d.ts +10 -0
- package/dist/lib/logger.d.ts.map +1 -1
- package/dist/lib/logger.js +16 -0
- package/dist/lib/logger.js.map +1 -1
- package/dist/lib/prompt.d.ts +7 -0
- package/dist/lib/prompt.d.ts.map +1 -1
- package/dist/lib/prompt.js +29 -0
- package/dist/lib/prompt.js.map +1 -1
- package/dist/lib/shell.d.ts +2 -1
- package/dist/lib/shell.d.ts.map +1 -1
- package/dist/lib/shell.js +17 -1
- package/dist/lib/shell.js.map +1 -1
- package/dist/services/git.d.ts +7 -0
- package/dist/services/git.d.ts.map +1 -1
- package/dist/services/git.js +10 -7
- package/dist/services/git.js.map +1 -1
- package/dist/services/github.d.ts +13 -0
- package/dist/services/github.d.ts.map +1 -1
- package/dist/services/github.js +35 -3
- package/dist/services/github.js.map +1 -1
- package/dist/services/setup.d.ts +4 -2
- package/dist/services/setup.d.ts.map +1 -1
- package/dist/services/setup.js +43 -13
- package/dist/services/setup.js.map +1 -1
- package/dist/services/worktree.js +1 -1
- package/dist/services/worktree.js.map +1 -1
- package/dist/types/index.d.ts +7 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/workflow/engine/approval-flow.d.ts +2 -1
- package/dist/workflow/engine/approval-flow.d.ts.map +1 -1
- package/dist/workflow/engine/approval-flow.js +35 -1
- package/dist/workflow/engine/approval-flow.js.map +1 -1
- package/dist/workflow/engine/handlers/agent-implementation.d.ts.map +1 -1
- package/dist/workflow/engine/handlers/agent-implementation.js +3 -10
- package/dist/workflow/engine/handlers/agent-implementation.js.map +1 -1
- package/dist/workflow/engine/handlers/dev-implementation.d.ts +2 -2
- package/dist/workflow/engine/handlers/dev-implementation.d.ts.map +1 -1
- package/dist/workflow/engine/handlers/dev-implementation.js +13 -7
- package/dist/workflow/engine/handlers/dev-implementation.js.map +1 -1
- package/dist/workflow/engine/release-engine.d.ts +7 -1
- package/dist/workflow/engine/release-engine.d.ts.map +1 -1
- package/dist/workflow/engine/release-engine.js +16 -6
- package/dist/workflow/engine/release-engine.js.map +1 -1
- package/dist/workflow/engine/ship-flow.d.ts +2 -2
- package/dist/workflow/engine/ship-flow.d.ts.map +1 -1
- package/dist/workflow/engine/ship-flow.js +3 -9
- package/dist/workflow/engine/ship-flow.js.map +1 -1
- package/dist/workflow/engine/workflow-engine.d.ts +67 -13
- package/dist/workflow/engine/workflow-engine.d.ts.map +1 -1
- package/dist/workflow/engine/workflow-engine.js +137 -47
- package/dist/workflow/engine/workflow-engine.js.map +1 -1
- package/package.json +2 -2
package/dist/commands/release.js
CHANGED
|
@@ -1,8 +1,14 @@
|
|
|
1
1
|
import { logger } from '../lib/logger.js';
|
|
2
2
|
import { readBranchSettings, readReleaseSettings } from '../lib/settings.js';
|
|
3
3
|
import { promptInput, promptSelect } from '../lib/prompt.js';
|
|
4
|
+
import { deferredHandlerOptions } from '../workflow/engine/handlers/index.js';
|
|
4
5
|
import * as git from '../services/git.js';
|
|
5
6
|
import * as github from '../services/github.js';
|
|
7
|
+
import { runJob } from '../jobs/job.js';
|
|
8
|
+
import { TARGET_OPTION_NAME, parseTargets, prepareTargetRuns, promptForTargets } from '../jobs/targets.js';
|
|
9
|
+
import { WorkflowStates } from '../workflow/data/workflow-states.js';
|
|
10
|
+
import { mergeConfirmationOption } from '../workflow/engine/approval-flow.js';
|
|
11
|
+
import { approvePrCommand } from './approve-pr.js';
|
|
6
12
|
import { PR_MODE_OPTION, RELEASE_KIND, VERSION_BUMP_TYPES, approveRelease, commitVersionBumps, createGatedPr, detectPendingVersionBumps, runPrMode, validateSourceBranch } from '../workflow/engine/release-engine.js';
|
|
7
13
|
/**
|
|
8
14
|
* Resolve the release branch (source branch)
|
|
@@ -53,21 +59,19 @@ function parseBumpsOption(value) {
|
|
|
53
59
|
}));
|
|
54
60
|
}
|
|
55
61
|
/**
|
|
56
|
-
*
|
|
57
|
-
*
|
|
58
|
-
*
|
|
59
|
-
*
|
|
60
|
-
*
|
|
61
|
-
* open release PR, which may already be approved.
|
|
62
|
+
* The versioned packages that need a bump for the release, with the bump type of each: from
|
|
63
|
+
* `--bumps`, else asked. Counts the changes of `incomingBranches`, the branches approved into the
|
|
64
|
+
* release branch before it is released, as the release's own. None when the repository declares no
|
|
65
|
+
* versioned packages, or when a release PR is already open: a bump is never made onto an open
|
|
66
|
+
* release PR, which may already be approved.
|
|
62
67
|
*/
|
|
63
|
-
async function
|
|
64
|
-
const
|
|
65
|
-
const settings = await readReleaseSettings(repoRoot);
|
|
68
|
+
async function resolvePendingBumps(sourceBranch, targetBranch, requestedBumps, incomingBranches) {
|
|
69
|
+
const settings = await readReleaseSettings(await git.getRepoRoot());
|
|
66
70
|
if (settings.versionedPackages.length === 0) {
|
|
67
71
|
if (requestedBumps.size > 0) {
|
|
68
72
|
throw new Error('--bumps was given, but this repository declares no release.versionedPackages in .idea1/settings.json.');
|
|
69
73
|
}
|
|
70
|
-
return;
|
|
74
|
+
return { pending: [], bumps: {} };
|
|
71
75
|
}
|
|
72
76
|
const knownNames = settings.versionedPackages.map(pkg => pkg.name);
|
|
73
77
|
const unknownNames = [...requestedBumps.keys()].filter(name => !knownNames.includes(name));
|
|
@@ -78,14 +82,14 @@ async function bumpPendingVersions(sourceBranch, targetBranch, requestedBumps) {
|
|
|
78
82
|
if (await github.checkPrExists(sourceBranch, targetBranch)) {
|
|
79
83
|
logger.dim('A release PR is already open, so no version bump is made onto it');
|
|
80
84
|
logger.newline();
|
|
81
|
-
return;
|
|
85
|
+
return { pending: [], bumps: {} };
|
|
82
86
|
}
|
|
83
87
|
logger.step('Checking which versioned packages changed since the last release...');
|
|
84
|
-
const pending = await detectPendingVersionBumps(settings.versionedPackages, sourceBranch, targetBranch);
|
|
88
|
+
const pending = await detectPendingVersionBumps(settings.versionedPackages, sourceBranch, targetBranch, incomingBranches);
|
|
85
89
|
if (pending.length === 0) {
|
|
86
90
|
logger.success('No versioned package needs a version bump');
|
|
87
91
|
logger.newline();
|
|
88
|
-
return;
|
|
92
|
+
return { pending, bumps: {} };
|
|
89
93
|
}
|
|
90
94
|
const bumps = {};
|
|
91
95
|
for (const pkg of pending) {
|
|
@@ -97,6 +101,20 @@ async function bumpPendingVersions(sourceBranch, targetBranch, requestedBumps) {
|
|
|
97
101
|
}
|
|
98
102
|
}
|
|
99
103
|
logger.newline();
|
|
104
|
+
return { pending, bumps };
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Bump the versions of the packages that changed since the last release, before the PR is opened,
|
|
108
|
+
* so the PR's head - and the one CI/CD run the release is gated on - already carries them. The
|
|
109
|
+
* bump is made here, in the local checkout: the packages' `package.json` and lockfiles are edited,
|
|
110
|
+
* committed and pushed to the release branch. Nothing is asked, and nothing is committed, when no
|
|
111
|
+
* versioned package needs a bump.
|
|
112
|
+
*/
|
|
113
|
+
async function bumpPendingVersions(sourceBranch, targetBranch, requestedBumps) {
|
|
114
|
+
const { pending, bumps } = await resolvePendingBumps(sourceBranch, targetBranch, requestedBumps, []);
|
|
115
|
+
if (pending.length === 0) {
|
|
116
|
+
return;
|
|
117
|
+
}
|
|
100
118
|
await commitVersionBumps({ releaseBranch: sourceBranch, pending, bumps });
|
|
101
119
|
logger.newline();
|
|
102
120
|
}
|
|
@@ -104,6 +122,47 @@ async function promptBumpType(pkg) {
|
|
|
104
122
|
return await promptSelect(`The ${pkg.label} (${pkg.currentVersion}) changed since the last release - version bump:`, VERSION_BUMP_TYPES.map(type => ({ label: type, value: type })), { default: 'patch' });
|
|
105
123
|
}
|
|
106
124
|
const isApprove = (resolved) => resolved['approve'] === 'true';
|
|
125
|
+
/**
|
|
126
|
+
* Release the release branch once the given project items and branches are approved into it: every
|
|
127
|
+
* target's PR is approved - merged once its checks pass - in parallel, each in its own unattended
|
|
128
|
+
* run, and once all of them have merged the release itself runs, exactly as it does on its own.
|
|
129
|
+
* Every answer is asked before anything starts, so the whole sequence runs unattended. The first
|
|
130
|
+
* target that fails stops the others, and nothing is released.
|
|
131
|
+
*/
|
|
132
|
+
async function releaseWithApprovals(sourceBranch, targetBranch, targets, resolved) {
|
|
133
|
+
logger.header(`Release: ${sourceBranch} -> ${targetBranch}, once ${targets.length} target(s) are approved into ${sourceBranch}`);
|
|
134
|
+
logger.newline();
|
|
135
|
+
// The release runs in this checkout once the approvals have merged, so it must be fit for that now.
|
|
136
|
+
await validateSourceBranch(sourceBranch);
|
|
137
|
+
const { runs, summaries } = await prepareTargetRuns(approvePrCommand, targets, resolved, {
|
|
138
|
+
advancesTo: () => WorkflowStates.ApprovedAndMerged,
|
|
139
|
+
itemlessBranches: true
|
|
140
|
+
});
|
|
141
|
+
const { bumps } = await resolvePendingBumps(sourceBranch, targetBranch, parseBumpsOption(resolved['bumps']), summaries.flatMap(summary => summary.branchName ? [summary.branchName] : []));
|
|
142
|
+
const title = resolved['title'] || await promptPrTitle();
|
|
143
|
+
// Every bump the release may need: those asked for here, and any other the command line named.
|
|
144
|
+
const bumpsValue = Object.entries({ ...Object.fromEntries(parseBumpsOption(resolved['bumps'])), ...bumps })
|
|
145
|
+
.map(([name, type]) => `${name}=${type}`)
|
|
146
|
+
.join(',');
|
|
147
|
+
await runJob({
|
|
148
|
+
title: `release ${sourceBranch} -> ${targetBranch} once ${runs.length} target(s) are approved`,
|
|
149
|
+
runs,
|
|
150
|
+
followUp: {
|
|
151
|
+
label: `release ${sourceBranch} -> ${targetBranch}`,
|
|
152
|
+
args: [
|
|
153
|
+
releaseCommand.name,
|
|
154
|
+
'--branch', sourceBranch,
|
|
155
|
+
'--target-branch', targetBranch,
|
|
156
|
+
`--${TARGET_OPTION_NAME}`, '',
|
|
157
|
+
'--bumps', bumpsValue,
|
|
158
|
+
'--title', title,
|
|
159
|
+
'--pr-mode', resolved['pr-mode'],
|
|
160
|
+
`--${mergeConfirmationOption.longName}`
|
|
161
|
+
]
|
|
162
|
+
},
|
|
163
|
+
failFast: true
|
|
164
|
+
});
|
|
165
|
+
}
|
|
107
166
|
/**
|
|
108
167
|
* Stage 2 of change management (change-management-policy.md clause 2): the release PR from the
|
|
109
168
|
* release branch into main. It is assigned to the person who runs the command - they are the
|
|
@@ -113,13 +172,15 @@ const isApprove = (resolved) => resolved['approve'] === 'true';
|
|
|
113
172
|
*
|
|
114
173
|
* Before the PR is opened, the packages that changed since the last release get their version
|
|
115
174
|
* bumps, committed and pushed to the release branch by this command. `--approve` instead approves
|
|
116
|
-
* and merges the release PR that is already open.
|
|
175
|
+
* and merges the release PR that is already open. With `--target`, the named project items and
|
|
176
|
+
* branches are approved into the release branch first, and the release follows once all of them
|
|
177
|
+
* have merged.
|
|
117
178
|
*/
|
|
118
179
|
export const releaseCommand = {
|
|
119
180
|
name: 'release',
|
|
120
181
|
aliases: ['r', 'rel'],
|
|
121
182
|
description: 'Bump the versions of changed packages, open the release PR from the release branch into main assigned to you, ' +
|
|
122
|
-
'and merge it once the checks pass (--approve merges the open release PR)',
|
|
183
|
+
'and merge it once the checks pass - optionally approving items or branches into the release branch first (--approve merges the open release PR)',
|
|
123
184
|
options: [
|
|
124
185
|
{
|
|
125
186
|
longName: 'branch',
|
|
@@ -129,7 +190,7 @@ export const releaseCommand = {
|
|
|
129
190
|
promptWhenDefaultExists: false
|
|
130
191
|
},
|
|
131
192
|
{
|
|
132
|
-
longName: 'target',
|
|
193
|
+
longName: 'target-branch',
|
|
133
194
|
shortName: 't',
|
|
134
195
|
description: 'Target branch to release to',
|
|
135
196
|
defaultValue: '',
|
|
@@ -140,6 +201,14 @@ export const releaseCommand = {
|
|
|
140
201
|
description: 'Approve and merge the open release PR instead of opening one',
|
|
141
202
|
isFlag: true
|
|
142
203
|
},
|
|
204
|
+
{
|
|
205
|
+
longName: TARGET_OPTION_NAME,
|
|
206
|
+
description: 'Project items, branches or PR URLs to approve into the release branch first, releasing once all have merged (default: release the branch as it is)',
|
|
207
|
+
defaultValue: '',
|
|
208
|
+
// Releasing the branch as it is and approving work into it first are both picked here.
|
|
209
|
+
resolveValue: async () => (await promptForTargets('release the release branch as it is')).join(','),
|
|
210
|
+
dependsOn: resolved => !isApprove(resolved)
|
|
211
|
+
},
|
|
143
212
|
{
|
|
144
213
|
longName: 'bumps',
|
|
145
214
|
description: 'Version bump per changed package, e.g. filekit=minor,cli=patch (changed packages not named are prompted)',
|
|
@@ -155,11 +224,15 @@ export const releaseCommand = {
|
|
|
155
224
|
defaultValue: '',
|
|
156
225
|
promptWhenDefaultExists: false,
|
|
157
226
|
dependsOn: resolved => !isApprove(resolved)
|
|
158
|
-
}
|
|
227
|
+
},
|
|
228
|
+
{ ...mergeConfirmationOption, description: 'Merge the release PR without asking for confirmation, in merge mode (the merge still waits for the required checks)' },
|
|
229
|
+
// The approvals a release can start with ask for the options of the workflow states their
|
|
230
|
+
// items pass through on the way.
|
|
231
|
+
...deferredHandlerOptions([mergeConfirmationOption])
|
|
159
232
|
],
|
|
160
233
|
async execute(resolved) {
|
|
161
234
|
const branchArg = resolved['branch'] || undefined;
|
|
162
|
-
const targetArg = resolved['target'] || undefined;
|
|
235
|
+
const targetArg = resolved['target-branch'] || undefined;
|
|
163
236
|
const sourceBranch = await resolveReleaseBranch(branchArg);
|
|
164
237
|
const targetBranch = await resolveTargetBranch(targetArg);
|
|
165
238
|
await github.ensureGitHubCli();
|
|
@@ -169,6 +242,11 @@ export const releaseCommand = {
|
|
|
169
242
|
await approveRelease(sourceBranch, targetBranch);
|
|
170
243
|
return;
|
|
171
244
|
}
|
|
245
|
+
const targets = parseTargets(resolved[TARGET_OPTION_NAME] ?? '');
|
|
246
|
+
if (targets.length > 0) {
|
|
247
|
+
await releaseWithApprovals(sourceBranch, targetBranch, targets, resolved);
|
|
248
|
+
return;
|
|
249
|
+
}
|
|
172
250
|
const prMode = resolved['pr-mode'];
|
|
173
251
|
const titleArg = resolved['title'] || undefined;
|
|
174
252
|
logger.header(`Release: ${sourceBranch} -> ${targetBranch}`);
|
|
@@ -194,7 +272,8 @@ export const releaseCommand = {
|
|
|
194
272
|
targetBranch,
|
|
195
273
|
prUrl,
|
|
196
274
|
kind: RELEASE_KIND,
|
|
197
|
-
openActionsAfterMerge: true
|
|
275
|
+
openActionsAfterMerge: true,
|
|
276
|
+
confirmed: resolved[mergeConfirmationOption.longName] === 'true'
|
|
198
277
|
});
|
|
199
278
|
logger.newline();
|
|
200
279
|
logger.hint(`PR: ${prUrl}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"release.js","sourceRoot":"","sources":["../../src/commands/release.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"release.js","sourceRoot":"","sources":["../../src/commands/release.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ship-local-changes.d.ts","sourceRoot":"","sources":["../../src/commands/ship-local-changes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"ship-local-changes.d.ts","sourceRoot":"","sources":["../../src/commands/ship-local-changes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAYjD;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,EAAE,OAuBrC,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { isolationModeOption } from '../lib/isolation.js';
|
|
2
2
|
import { branchCreationOptions } from '../workflow/engine/branch-setup.js';
|
|
3
3
|
import { approveAndMergeOption, carryLocalChangesOption, commitMessageOption, unpromptedReviewersOption } from '../workflow/engine/ship-flow.js';
|
|
4
|
+
import { TARGET_OPTION_NAME } from '../jobs/targets.js';
|
|
4
5
|
import { projectItemTargetOptions, startProjectItem } from './start.js';
|
|
5
6
|
/**
|
|
6
7
|
* `start --carry-local-changes --approve-and-merge` with nothing asked beyond what a new item
|
|
@@ -12,8 +13,8 @@ export const shipLocalChangesCommand = {
|
|
|
12
13
|
aliases: ['ship'],
|
|
13
14
|
description: 'Ship the uncommitted changes of your base branch checkout: create a project item and its branch, commit and push the changes there, and advance it through approval, merging its PR once the checks pass',
|
|
14
15
|
options: [
|
|
15
|
-
...projectItemTargetOptions.map(option => option.longName ===
|
|
16
|
-
? { ...option, description: 'Project item URL (default: create a new item)', promptWhenDefaultExists: false }
|
|
16
|
+
...projectItemTargetOptions.map(option => option.longName === TARGET_OPTION_NAME
|
|
17
|
+
? { ...option, description: 'Project item URL, or its branch name or PR URL (default: create a new item)', promptWhenDefaultExists: false }
|
|
17
18
|
: option),
|
|
18
19
|
...branchCreationOptions
|
|
19
20
|
.filter(option => option.longName !== 'workflow-type')
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ship-local-changes.js","sourceRoot":"","sources":["../../src/commands/ship-local-changes.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EACvB,mBAAmB,EACnB,yBAAyB,EAC1B,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,wBAAwB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAExE;;;;GAIG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAY;IAC9C,IAAI,EAAE,oBAAoB;IAC1B,OAAO,EAAE,CAAC,MAAM,CAAC;IACjB,WAAW,EAAE,0MAA0M;IACvN,OAAO,EAAE;QACP,GAAG,wBAAwB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,KAAK,
|
|
1
|
+
{"version":3,"file":"ship-local-changes.js","sourceRoot":"","sources":["../../src/commands/ship-local-changes.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EACvB,mBAAmB,EACnB,yBAAyB,EAC1B,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,wBAAwB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAExE;;;;GAIG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAY;IAC9C,IAAI,EAAE,oBAAoB;IAC1B,OAAO,EAAE,CAAC,MAAM,CAAC;IACjB,WAAW,EAAE,0MAA0M;IACvN,OAAO,EAAE;QACP,GAAG,wBAAwB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,KAAK,kBAAkB;YAC9E,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,WAAW,EAAE,6EAA6E,EAAE,uBAAuB,EAAE,KAAK,EAAE;YAC3I,CAAC,CAAC,MAAM,CAAC;QACX,GAAG,qBAAqB;aACrB,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,KAAK,eAAe,CAAC;aACrD,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,YAAY,EAAE,EAAE,EAAE,uBAAuB,EAAE,KAAK,EAAE,CAAC,CAAC;QACnF,mBAAmB;QACnB,EAAE,GAAG,mBAAmB,EAAE,WAAW,EAAE,iDAAiD,EAAE,YAAY,EAAE,UAAU,EAAE,uBAAuB,EAAE,KAAK,EAAE;QACpJ,yBAAyB;KAC1B;IAED,KAAK,CAAC,OAAO,CAAC,QAAgC;QAC5C,MAAM,gBAAgB,CAAC;YACrB,GAAG,QAAQ;YACX,CAAC,uBAAuB,CAAC,QAAQ,CAAC,EAAE,MAAM;YAC1C,CAAC,qBAAqB,CAAC,QAAQ,CAAC,EAAE,MAAM;SACzC,CAAC,CAAC;IACL,CAAC;CACF,CAAC"}
|
|
@@ -21,10 +21,10 @@ export const startAgentImplementationCommand = {
|
|
|
21
21
|
process.chdir(sourcePath);
|
|
22
22
|
}
|
|
23
23
|
const projectItemUrl = await resolveOrCreateProjectItem(resolved);
|
|
24
|
-
const transition = await resolveTransition({ projectItemUrl, options: resolved });
|
|
24
|
+
const transition = await resolveTransition({ target: projectItemUrl, options: resolved });
|
|
25
25
|
if (transition.currentState && isStateAtOrAfter(transition.currentState, WorkflowStates.DevImplementation)) {
|
|
26
26
|
throw new Error(`${projectItemUrl} is already past Agent Implementation (state: ${transition.currentState}). ` +
|
|
27
|
-
`Use 'idea1 join-project-item --
|
|
27
|
+
`Use 'idea1 join-project-item --target ${projectItemUrl}' to set up a working environment.`);
|
|
28
28
|
}
|
|
29
29
|
logger.section('Agent Implementation');
|
|
30
30
|
if (transition.currentState === WorkflowStates.AgentImplementation) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start-agent-implementation.js","sourceRoot":"","sources":["../../src/commands/start-agent-implementation.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AACvF,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAC3G,OAAO,EAAE,0BAA0B,EAAE,MAAM,qDAAqD,CAAC;AACjG,OAAO,EAAE,wBAAwB,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAC;AAElF,MAAM,CAAC,MAAM,+BAA+B,GAAY;IACtD,IAAI,EAAE,4BAA4B;IAClC,gFAAgF;IAChF,OAAO,EAAE,CAAC,WAAW,EAAE,KAAK,EAAE,oBAAoB,CAAC;IACnD,WAAW,EAAE,sKAAsK;IACnL,OAAO,EAAE;QACP,GAAG,wBAAwB;QAC3B,GAAG,qBAAqB;QACxB,GAAG,CAAC,0BAA0B,CAAC,OAAO,IAAI,EAAE,CAAC;KAC9C;IAED,KAAK,CAAC,OAAO,CAAC,QAAgC;QAC5C,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC;QAC3C,IAAI,UAAU,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC5B,CAAC;QAED,MAAM,cAAc,GAAG,MAAM,0BAA0B,CAAC,QAAQ,CAAC,CAAC;QAClE,MAAM,UAAU,GAAG,MAAM,iBAAiB,CAAC,EAAE,cAAc,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"start-agent-implementation.js","sourceRoot":"","sources":["../../src/commands/start-agent-implementation.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AACvF,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAC3G,OAAO,EAAE,0BAA0B,EAAE,MAAM,qDAAqD,CAAC;AACjG,OAAO,EAAE,wBAAwB,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAC;AAElF,MAAM,CAAC,MAAM,+BAA+B,GAAY;IACtD,IAAI,EAAE,4BAA4B;IAClC,gFAAgF;IAChF,OAAO,EAAE,CAAC,WAAW,EAAE,KAAK,EAAE,oBAAoB,CAAC;IACnD,WAAW,EAAE,sKAAsK;IACnL,OAAO,EAAE;QACP,GAAG,wBAAwB;QAC3B,GAAG,qBAAqB;QACxB,GAAG,CAAC,0BAA0B,CAAC,OAAO,IAAI,EAAE,CAAC;KAC9C;IAED,KAAK,CAAC,OAAO,CAAC,QAAgC;QAC5C,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC;QAC3C,IAAI,UAAU,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC5B,CAAC;QAED,MAAM,cAAc,GAAG,MAAM,0BAA0B,CAAC,QAAQ,CAAC,CAAC;QAClE,MAAM,UAAU,GAAG,MAAM,iBAAiB,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;QAE1F,IAAI,UAAU,CAAC,YAAY,IAAI,gBAAgB,CAAC,UAAU,CAAC,YAAY,EAAE,cAAc,CAAC,iBAAiB,CAAC,EAAE,CAAC;YAC3G,MAAM,IAAI,KAAK,CACb,GAAG,cAAc,iDAAiD,UAAU,CAAC,YAAY,KAAK;gBAC9F,yCAAyC,cAAc,oCAAoC,CAC5F,CAAC;QACJ,CAAC;QAED,MAAM,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;QAEvC,IAAI,UAAU,CAAC,YAAY,KAAK,cAAc,CAAC,mBAAmB,EAAE,CAAC;YACnE,mGAAmG;YACnG,MAAM,QAAQ,GAAG,MAAM,aAAa,CAClC,GAAG,cAAc,sGAAsG,EACvH,EAAE,OAAO,EAAE,IAAI,EAAE,CAClB,CAAC;YACF,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,MAAM,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;gBAC/C,OAAO;YACT,CAAC;YAED,MAAM,YAAY,CAAC,UAAU,EAAE,cAAc,CAAC,mBAAmB,CAAC,CAAC;YACnE,OAAO;QACT,CAAC;QAED,MAAM,iBAAiB,CAAC,UAAU,EAAE,cAAc,CAAC,mBAAmB,CAAC,CAAC;IAC1E,CAAC;CACF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start-dev-implementation.d.ts","sourceRoot":"","sources":["../../src/commands/start-dev-implementation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"start-dev-implementation.d.ts","sourceRoot":"","sources":["../../src/commands/start-dev-implementation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAMjD,eAAO,MAAM,6BAA6B,EAAE,OA4B3C,CAAC"}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import { WorkflowStates } from '../workflow/data/workflow-states.js';
|
|
2
2
|
import { advanceAsNeededTo, resolveTransition } from '../workflow/engine/workflow-engine.js';
|
|
3
3
|
import { deferredHandlerOptions } from '../workflow/engine/handlers/index.js';
|
|
4
|
+
import { runForTargets, targetOption } from '../jobs/targets.js';
|
|
4
5
|
export const startDevImplementationCommand = {
|
|
5
6
|
name: 'start-dev-implementation',
|
|
6
7
|
aliases: ['dev'],
|
|
7
|
-
description: 'Advance
|
|
8
|
+
description: 'Advance project items to Dev Implementation (through every state before it) - commits and pushes the work, creates the PR and optionally closes the worktree; several run in parallel',
|
|
8
9
|
options: [
|
|
10
|
+
targetOption(false),
|
|
9
11
|
{
|
|
10
12
|
longName: 'source-path',
|
|
11
13
|
shortName: 'p',
|
|
@@ -20,8 +22,11 @@ export const startDevImplementationCommand = {
|
|
|
20
22
|
if (sourcePath) {
|
|
21
23
|
process.chdir(sourcePath);
|
|
22
24
|
}
|
|
23
|
-
|
|
24
|
-
|
|
25
|
+
await runForTargets(startDevImplementationCommand, resolved, {
|
|
26
|
+
advancesTo: () => WorkflowStates.DevImplementation,
|
|
27
|
+
itemlessBranches: false,
|
|
28
|
+
run: async (target) => advanceAsNeededTo(await resolveTransition({ target, options: resolved }), WorkflowStates.DevImplementation)
|
|
29
|
+
});
|
|
25
30
|
}
|
|
26
31
|
};
|
|
27
32
|
//# sourceMappingURL=start-dev-implementation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start-dev-implementation.js","sourceRoot":"","sources":["../../src/commands/start-dev-implementation.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAC7F,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;
|
|
1
|
+
{"version":3,"file":"start-dev-implementation.js","sourceRoot":"","sources":["../../src/commands/start-dev-implementation.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAC7F,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEjE,MAAM,CAAC,MAAM,6BAA6B,GAAY;IACpD,IAAI,EAAE,0BAA0B;IAChC,OAAO,EAAE,CAAC,KAAK,CAAC;IAChB,WAAW,EAAE,uLAAuL;IACpM,OAAO,EAAE;QACP,YAAY,CAAC,KAAK,CAAC;QACnB;YACE,QAAQ,EAAE,aAAa;YACvB,SAAS,EAAE,GAAG;YACd,WAAW,EAAE,4BAA4B;YACzC,YAAY,EAAE,EAAE;YAChB,uBAAuB,EAAE,KAAK;SAC/B;QACD,GAAG,sBAAsB,CAAC,EAAE,CAAC;KAC9B;IAED,KAAK,CAAC,OAAO,CAAC,QAAgC;QAC5C,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC;QAC3C,IAAI,UAAU,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC5B,CAAC;QAED,MAAM,aAAa,CAAC,6BAA6B,EAAE,QAAQ,EAAE;YAC3D,UAAU,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,iBAAiB;YAClD,gBAAgB,EAAE,KAAK;YACvB,GAAG,EAAE,KAAK,EAAC,MAAM,EAAC,EAAE,CAAC,iBAAiB,CAAC,MAAM,iBAAiB,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,cAAc,CAAC,iBAAiB,CAAC;SACjI,CAAC,CAAC;IACL,CAAC;CACF,CAAC"}
|
package/dist/commands/start.d.ts
CHANGED
|
@@ -5,8 +5,8 @@ import type { Command, CommandOption } from '../types/index.js';
|
|
|
5
5
|
*/
|
|
6
6
|
export declare const projectItemTargetOptions: CommandOption[];
|
|
7
7
|
/**
|
|
8
|
-
* Resolve the item a command targets: the
|
|
9
|
-
* created from the title.
|
|
8
|
+
* Resolve the item a command targets: the item the target names (its URL, or its branch or that
|
|
9
|
+
* branch's PR), or a brand new item created from the title when no target was given.
|
|
10
10
|
*/
|
|
11
11
|
export declare function resolveOrCreateProjectItem(resolved: Record<string, string>): Promise<string>;
|
|
12
12
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAqBhE;;;GAGG;AACH,eAAO,MAAM,wBAAwB,EAAE,aAAa,EAsCnD,CAAC;AAEF;;;GAGG;AACH,wBAAsB,0BAA0B,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAclG;AAED;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CA6CtF;AAED,eAAO,MAAM,YAAY,EAAE,OAe1B,CAAC"}
|
package/dist/commands/start.js
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { logger } from '../lib/logger.js';
|
|
2
|
-
import { isProjectItemUrl
|
|
2
|
+
import { isProjectItemUrl } from '../lib/project-item-url.js';
|
|
3
3
|
import * as git from '../services/git.js';
|
|
4
4
|
import * as platform from '../services/platform.js';
|
|
5
5
|
import * as worktree from '../services/worktree.js';
|
|
6
6
|
import { WorkflowStates } from '../workflow/data/workflow-states.js';
|
|
7
|
-
import { advanceAsNeededTo, requireLiveContext, resolveTransition } from '../workflow/engine/workflow-engine.js';
|
|
7
|
+
import { advanceAsNeededTo, readTarget, requireLiveContext, resolveTransition } from '../workflow/engine/workflow-engine.js';
|
|
8
|
+
import { TARGET_OPTION_NAME, parseTargets } from '../jobs/targets.js';
|
|
8
9
|
import { approveAndMerge, approveAndMergeOption, approvesAndMerges, branchCreationOptionsWithCarrying, carriesLocalChanges, carryLocalChanges, carryLocalChangesOption, findLocalChanges, shipOptions } from '../workflow/engine/ship-flow.js';
|
|
9
10
|
/**
|
|
10
11
|
* Options every command that can put an item under workflow management shares:
|
|
@@ -14,21 +15,19 @@ export const projectItemTargetOptions = [
|
|
|
14
15
|
{
|
|
15
16
|
// Declared first so it's the very first thing prompted — later choices
|
|
16
17
|
// depend on whether it was provided.
|
|
17
|
-
longName:
|
|
18
|
-
|
|
19
|
-
description: 'Project item URL (leave blank to create a new item)',
|
|
18
|
+
longName: TARGET_OPTION_NAME,
|
|
19
|
+
description: 'Project item URL, or its branch name or PR URL (leave blank to create a new item)',
|
|
20
20
|
defaultValue: '',
|
|
21
21
|
promptWhenDefaultExists: true,
|
|
22
|
-
|
|
23
|
-
validate: (value) => (value ? validateProjectItemUrl(value) : undefined)
|
|
22
|
+
validate: (value) => (parseTargets(value).length > 1 ? 'Give one target: this command works on one project item' : undefined)
|
|
24
23
|
},
|
|
25
24
|
{
|
|
26
|
-
// Only prompted (and required) when no
|
|
27
|
-
// creating a new item. Declared after '
|
|
25
|
+
// Only prompted (and required) when no target was given, i.e. the user is
|
|
26
|
+
// creating a new item. Declared after 'target' so it can read its value.
|
|
28
27
|
longName: 'title',
|
|
29
28
|
shortName: 't',
|
|
30
29
|
description: 'Title for the new project item',
|
|
31
|
-
dependsOn: (resolved) => !resolved[
|
|
30
|
+
dependsOn: (resolved) => !resolved[TARGET_OPTION_NAME],
|
|
32
31
|
validate: (value) => value.trim() ? undefined : 'A title is required to create a project item'
|
|
33
32
|
},
|
|
34
33
|
{
|
|
@@ -37,7 +36,7 @@ export const projectItemTargetOptions = [
|
|
|
37
36
|
longName: 'project',
|
|
38
37
|
shortName: 'P',
|
|
39
38
|
description: 'Project to create the item in',
|
|
40
|
-
dependsOn: (resolved) => !resolved[
|
|
39
|
+
dependsOn: (resolved) => !resolved[TARGET_OPTION_NAME],
|
|
41
40
|
choices: 'idea1-projects',
|
|
42
41
|
validate: (value) => value.trim() ? undefined : 'A project is required to create a project item'
|
|
43
42
|
},
|
|
@@ -50,15 +49,22 @@ export const projectItemTargetOptions = [
|
|
|
50
49
|
}
|
|
51
50
|
];
|
|
52
51
|
/**
|
|
53
|
-
* Resolve the item a command targets: the
|
|
54
|
-
* created from the title.
|
|
52
|
+
* Resolve the item a command targets: the item the target names (its URL, or its branch or that
|
|
53
|
+
* branch's PR), or a brand new item created from the title when no target was given.
|
|
55
54
|
*/
|
|
56
55
|
export async function resolveOrCreateProjectItem(resolved) {
|
|
57
|
-
const
|
|
58
|
-
if (!
|
|
59
|
-
|
|
56
|
+
const target = resolved[TARGET_OPTION_NAME].trim();
|
|
57
|
+
if (!target) {
|
|
58
|
+
return platform.createProjectItem(resolved['title'].trim(), resolved['project'].trim());
|
|
60
59
|
}
|
|
61
|
-
|
|
60
|
+
if (isProjectItemUrl(target)) {
|
|
61
|
+
return target;
|
|
62
|
+
}
|
|
63
|
+
const summary = await readTarget(target);
|
|
64
|
+
if (!summary.projectItemUrl) {
|
|
65
|
+
throw new Error(`${summary.branchName} is not a project item's branch. Pass the project item URL, or leave the target blank to create a new item.`);
|
|
66
|
+
}
|
|
67
|
+
return summary.projectItemUrl;
|
|
62
68
|
}
|
|
63
69
|
/**
|
|
64
70
|
* Put a project item under workflow management, optionally carrying the uncommitted changes of the
|
|
@@ -71,7 +77,7 @@ export async function startProjectItem(resolved) {
|
|
|
71
77
|
process.chdir(sourcePath);
|
|
72
78
|
}
|
|
73
79
|
// Everything that can stop the command is checked before an item or a branch is created.
|
|
74
|
-
const isNewItem = !resolved[
|
|
80
|
+
const isNewItem = !resolved[TARGET_OPTION_NAME].trim();
|
|
75
81
|
const localChanges = carriesLocalChanges(resolved)
|
|
76
82
|
? await findLocalChanges(isNewItem ? resolved['base-branch'] || await worktree.resolveBaseBranch() : null)
|
|
77
83
|
: null;
|
|
@@ -82,7 +88,7 @@ export async function startProjectItem(resolved) {
|
|
|
82
88
|
logger.info('There are no uncommitted changes to carry.');
|
|
83
89
|
}
|
|
84
90
|
const projectItemUrl = await resolveOrCreateProjectItem(resolved);
|
|
85
|
-
const transition = await resolveTransition({ projectItemUrl, options: resolved });
|
|
91
|
+
const transition = await resolveTransition({ target: projectItemUrl, options: resolved });
|
|
86
92
|
logger.section('Start Workflow');
|
|
87
93
|
if (localChanges) {
|
|
88
94
|
await carryLocalChanges(transition, localChanges);
|
|
@@ -98,8 +104,8 @@ export async function startProjectItem(resolved) {
|
|
|
98
104
|
logger.newline();
|
|
99
105
|
logger.success(`${projectItemUrl} is under workflow management on ${branchName} (state: ${transition.currentState})`);
|
|
100
106
|
logger.newline();
|
|
101
|
-
logger.hint(`Advance one step: idea1 next --
|
|
102
|
-
logger.hint(`Jump to agent implementation: idea1 start-agent-implementation --
|
|
107
|
+
logger.hint(`Advance one step: idea1 next --target ${projectItemUrl}`);
|
|
108
|
+
logger.hint(`Jump to agent implementation: idea1 start-agent-implementation --target ${projectItemUrl}`);
|
|
103
109
|
if (!localChanges && await git.getCurrentBranch() === baseBranch && await git.hasUncommittedChanges()) {
|
|
104
110
|
logger.hint(`Your uncommitted changes stay on ${baseBranch}. To make them the item's work, run start again with --carry-local-changes while ${branchName} has no commits.`);
|
|
105
111
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start.js","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,
|
|
1
|
+
{"version":3,"file":"start.js","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interactive.d.ts","sourceRoot":"","sources":["../src/interactive.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"interactive.d.ts","sourceRoot":"","sources":["../src/interactive.ts"],"names":[],"mappings":"AAkyBA;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAgGzE"}
|