@idea1/cli 1.4.21 → 1.4.23
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 +26 -0
- package/dist/cli/resolver.d.ts.map +1 -1
- package/dist/cli/resolver.js +11 -2
- package/dist/cli/resolver.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +18 -13
- package/dist/cli.js.map +1 -1
- package/dist/commands/attach-project-item.d.ts +3 -0
- package/dist/commands/attach-project-item.d.ts.map +1 -0
- package/dist/commands/attach-project-item.js +148 -0
- package/dist/commands/attach-project-item.js.map +1 -0
- package/dist/commands/help.js +2 -2
- package/dist/commands/help.js.map +1 -1
- package/dist/commands/index.d.ts +2 -1
- package/dist/commands/index.d.ts.map +1 -1
- package/dist/commands/index.js +3 -1
- package/dist/commands/index.js.map +1 -1
- package/dist/commands/join-project-item.d.ts.map +1 -1
- package/dist/commands/join-project-item.js +27 -0
- 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 +14 -3
- 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 +20 -7
- package/dist/commands/ready-for-approval.js.map +1 -1
- package/dist/commands/start-dev-implementation.js +1 -1
- package/dist/commands/start-dev-implementation.js.map +1 -1
- package/dist/commands/start-project-item.d.ts +22 -0
- package/dist/commands/start-project-item.d.ts.map +1 -1
- package/dist/commands/start-project-item.js +36 -25
- package/dist/commands/start-project-item.js.map +1 -1
- package/dist/index.js +0 -0
- package/dist/interactive.d.ts +1 -1
- package/dist/interactive.d.ts.map +1 -1
- package/dist/interactive.js +14 -9
- package/dist/interactive.js.map +1 -1
- package/dist/lib/prompt.d.ts +13 -0
- package/dist/lib/prompt.d.ts.map +1 -1
- package/dist/lib/prompt.js +28 -1
- package/dist/lib/prompt.js.map +1 -1
- package/dist/lib/shell.d.ts.map +1 -1
- package/dist/lib/shell.js +21 -4
- package/dist/lib/shell.js.map +1 -1
- package/dist/services/github.d.ts +13 -3
- package/dist/services/github.d.ts.map +1 -1
- package/dist/services/github.js +40 -9
- package/dist/services/github.js.map +1 -1
- package/dist/services/workflow.d.ts +3 -1
- package/dist/services/workflow.d.ts.map +1 -1
- package/dist/services/workflow.js +18 -34
- package/dist/services/workflow.js.map +1 -1
- package/dist/types/index.d.ts +11 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -98,6 +98,32 @@ In interactive mode, if neither option is supplied you are prompted to choose wh
|
|
|
98
98
|
|
|
99
99
|
If a project item URL is supplied but no branch exists for it yet (the item was never started), `join-project-item` falls back to the `start-project-item` setup flow, without launching the implementation session.
|
|
100
100
|
|
|
101
|
+
### attach-project-item
|
|
102
|
+
|
|
103
|
+
Attach the **current branch** to a project item, wiring it up as if the branch had been created by `start-project-item`. Use this when you already have a branch with work on it and want to bring it into the workflow. Unlike `start-project-item`, it does not create a branch or a worktree and never invokes Claude.
|
|
104
|
+
|
|
105
|
+
```bash
|
|
106
|
+
idea1 attach-project-item --url <url>
|
|
107
|
+
idea1 attach-project-item # prompts for the URL (blank to create a new item)
|
|
108
|
+
idea1 -a --url <url>
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
**Options:**
|
|
112
|
+
- `--url <url>` - The Idea1.ai project item URL. Leave blank to create a new item (you'll be prompted for a `--title`).
|
|
113
|
+
- `-t, --title <title>` - Title for the new project item (only when no URL is given).
|
|
114
|
+
- `-p, --source-path <path>` - Path to source directory.
|
|
115
|
+
- `-b, --base-branch <branch>` - Base branch / PR target for an independent feature (default: `working/release`).
|
|
116
|
+
- `-w, --workflow-type <type>` - Development workflow type: `independent` or `integration`. As with `start-project-item`, you choose any stack branch and (for integration) the integration branch.
|
|
117
|
+
|
|
118
|
+
**What it does:**
|
|
119
|
+
1. Verifies the current branch is not already attached to a project item (errors if it is — use `join-project-item` to resume instead).
|
|
120
|
+
2. Creates the project item if no URL was supplied.
|
|
121
|
+
3. Lets you choose a stack branch and, for integration work, the integration branch — exactly like `start-project-item`.
|
|
122
|
+
4. Sets the item's workflow status to "Agent implementation".
|
|
123
|
+
5. Records the per-branch metadata (project item URL, base branch, workflow state, dev workflow type, stack/integration branch) in git config and the committed `.idea1/<branch>.json` file.
|
|
124
|
+
6. Commits the metadata and pushes the current branch so it is up to date with its metadata.
|
|
125
|
+
7. Sets up a PR into the base branch (the integration branch for integration work), just like `start-project-item` targets it.
|
|
126
|
+
|
|
101
127
|
### start-dev-implementation
|
|
102
128
|
|
|
103
129
|
Transition from agent implementation to dev implementation - commits, pushes, and creates PR.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../../src/cli/resolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAiB,MAAM,mBAAmB,CAAC;AAKhE;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC7B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../../src/cli/resolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAiB,MAAM,mBAAmB,CAAC;AAKhE;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC7B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAwGjC"}
|
package/dist/cli/resolver.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { promptInput, promptSelect } from '../lib/prompt.js';
|
|
1
|
+
import { promptInput, promptSelect, promptMultiSelect } from '../lib/prompt.js';
|
|
2
2
|
import { resolveDefault } from './parser.js';
|
|
3
3
|
import { resolveNamedList } from './named-lists.js';
|
|
4
4
|
/**
|
|
@@ -75,10 +75,19 @@ export async function resolveOptions(command, parsed) {
|
|
|
75
75
|
else {
|
|
76
76
|
resolvedChoices = option.choices;
|
|
77
77
|
}
|
|
78
|
+
// For a single-select option that may resolve to nothing, surface an
|
|
79
|
+
// explicit "(none)" entry that maps to an empty string.
|
|
80
|
+
if (option.allowNone && !option.multiSelect && resolvedChoices) {
|
|
81
|
+
resolvedChoices = [{ label: '(none)', value: '' }, ...resolvedChoices];
|
|
82
|
+
}
|
|
78
83
|
}
|
|
79
84
|
// eslint-disable-next-line no-constant-condition
|
|
80
85
|
while (true) {
|
|
81
|
-
if (resolvedChoices && resolvedChoices.length > 0) {
|
|
86
|
+
if (resolvedChoices && resolvedChoices.length > 0 && option.multiSelect) {
|
|
87
|
+
const selected = await promptMultiSelect(option.description, resolvedChoices);
|
|
88
|
+
value = selected.join(',');
|
|
89
|
+
}
|
|
90
|
+
else if (resolvedChoices && resolvedChoices.length > 0) {
|
|
82
91
|
value = await promptSelect(option.description, resolvedChoices, { default: defaultVal });
|
|
83
92
|
}
|
|
84
93
|
else {
|
package/dist/cli/resolver.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolver.js","sourceRoot":"","sources":["../../src/cli/resolver.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"resolver.js","sourceRoot":"","sources":["../../src/cli/resolver.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AASA;;GAEG;AACH,wBAAsB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AASA;;GAEG;AACH,wBAAsB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAyE1D"}
|
package/dist/cli.js
CHANGED
|
@@ -10,23 +10,23 @@ import * as git from './services/git.js';
|
|
|
10
10
|
* Run the CLI
|
|
11
11
|
*/
|
|
12
12
|
export async function runCli(argv) {
|
|
13
|
-
// Ensure idea1 is set up in the current repository
|
|
14
|
-
try {
|
|
15
|
-
const repoRoot = await git.getRepoRoot();
|
|
16
|
-
await ensureSetup(repoRoot);
|
|
17
|
-
}
|
|
18
|
-
catch {
|
|
19
|
-
// Not in a git repository - skip setup
|
|
20
|
-
}
|
|
21
13
|
// Effective args (strip node and script path)
|
|
22
14
|
const args = argv.slice(2);
|
|
23
|
-
// If no arguments provided, run interactive mode
|
|
24
|
-
if (args.length === 0) {
|
|
25
|
-
await runInteractiveMode();
|
|
26
|
-
return;
|
|
27
|
-
}
|
|
28
15
|
// Handle global flags
|
|
29
16
|
const firstArg = args[0];
|
|
17
|
+
// Skip repo setup for flags that don't need a git repository context
|
|
18
|
+
const isSimpleFlag = firstArg === '--version' || firstArg === '-v'
|
|
19
|
+
|| firstArg === '--help' || firstArg === '-h';
|
|
20
|
+
let repoRoot;
|
|
21
|
+
if (!isSimpleFlag) {
|
|
22
|
+
try {
|
|
23
|
+
repoRoot = await git.getRepoRoot();
|
|
24
|
+
await ensureSetup(repoRoot);
|
|
25
|
+
}
|
|
26
|
+
catch {
|
|
27
|
+
// Not in a git repository - skip setup
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
30
|
if (firstArg === '--version' || firstArg === '-v') {
|
|
31
31
|
console.log(VERSION);
|
|
32
32
|
return;
|
|
@@ -35,6 +35,11 @@ export async function runCli(argv) {
|
|
|
35
35
|
printUsage();
|
|
36
36
|
return;
|
|
37
37
|
}
|
|
38
|
+
// If no arguments provided, run interactive mode
|
|
39
|
+
if (args.length === 0) {
|
|
40
|
+
await runInteractiveMode(repoRoot);
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
38
43
|
// Extract command name
|
|
39
44
|
const commandName = firstArg;
|
|
40
45
|
const remainingArgs = args.slice(1);
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAClF,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,GAAG,MAAM,mBAAmB,CAAC;AAEzC;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,IAAc;IACzC,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"attach-project-item.d.ts","sourceRoot":"","sources":["../../src/commands/attach-project-item.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAmB,MAAM,mBAAmB,CAAC;AAelE,eAAO,MAAM,wBAAwB,EAAE,OA4ItC,CAAC"}
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
import { logger } from '../lib/logger.js';
|
|
2
|
+
import * as git from '../services/git.js';
|
|
3
|
+
import * as github from '../services/github.js';
|
|
4
|
+
import * as claude from '../services/claude.js';
|
|
5
|
+
import * as worktree from '../services/worktree.js';
|
|
6
|
+
import { configService } from '../services/config.js';
|
|
7
|
+
import { isProjectItemUrl, validateProjectItemUrl } from '../lib/project-item-url.js';
|
|
8
|
+
import { WORKFLOW_CHOICES, promptForStackBranch, promptForIntegrationBranch } from './start-project-item.js';
|
|
9
|
+
export const attachProjectItemCommand = {
|
|
10
|
+
name: 'attach-project-item',
|
|
11
|
+
aliases: ['a', 'attach'],
|
|
12
|
+
description: 'Attach the current branch to a project item as if it had been started here',
|
|
13
|
+
options: [
|
|
14
|
+
{
|
|
15
|
+
// Asked first; a blank value means "create a new item" and unlocks 'title'.
|
|
16
|
+
longName: 'url',
|
|
17
|
+
description: 'Project item URL (leave blank to create a new item)',
|
|
18
|
+
defaultValue: '',
|
|
19
|
+
promptWhenDefaultExists: true,
|
|
20
|
+
validate: (value) => (value ? validateProjectItemUrl(value) : undefined)
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
// Only prompted (and required) when no URL was given, i.e. creating a new item.
|
|
24
|
+
longName: 'title',
|
|
25
|
+
shortName: 't',
|
|
26
|
+
description: 'Title for the new project item',
|
|
27
|
+
dependsOn: (resolved) => !resolved['url'],
|
|
28
|
+
validate: (value) => value.trim() ? undefined : 'A title is required to create a project item'
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
longName: 'source-path',
|
|
32
|
+
shortName: 'p',
|
|
33
|
+
description: 'Path to source directory',
|
|
34
|
+
defaultValue: '',
|
|
35
|
+
promptWhenDefaultExists: false
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
longName: 'base-branch',
|
|
39
|
+
shortName: 'b',
|
|
40
|
+
description: 'Base branch (PR target for an independent feature)',
|
|
41
|
+
defaultValue: () => configService.getDefaultBaseBranch(),
|
|
42
|
+
promptWhenDefaultExists: false
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
longName: 'workflow-type',
|
|
46
|
+
shortName: 'w',
|
|
47
|
+
description: 'Development workflow type',
|
|
48
|
+
defaultValue: undefined,
|
|
49
|
+
choices: WORKFLOW_CHOICES
|
|
50
|
+
}
|
|
51
|
+
],
|
|
52
|
+
async execute(resolved) {
|
|
53
|
+
let projectItemUrl = resolved['url'];
|
|
54
|
+
const sourcePath = resolved['source-path'];
|
|
55
|
+
const baseBranch = resolved['base-branch'];
|
|
56
|
+
const workflowType = (resolved['workflow-type'] ?? 'independent');
|
|
57
|
+
// Navigate to source path if provided
|
|
58
|
+
if (sourcePath) {
|
|
59
|
+
process.chdir(sourcePath);
|
|
60
|
+
}
|
|
61
|
+
await git.fetchLatest();
|
|
62
|
+
const currentBranch = await git.getCurrentBranch();
|
|
63
|
+
if (!currentBranch || currentBranch === 'HEAD') {
|
|
64
|
+
throw new Error('Not on a branch (detached HEAD). Check out the branch you want to attach first.');
|
|
65
|
+
}
|
|
66
|
+
// Attaching is only valid for a branch that has not already been wired up to
|
|
67
|
+
// a project item — re-attaching would clobber existing workflow state.
|
|
68
|
+
await ensureNotAlreadyAttached(currentBranch);
|
|
69
|
+
// The URL is resolved up front. A blank value means create a brand new item
|
|
70
|
+
// here, in which case the dependent 'title' option was prompted and required.
|
|
71
|
+
if (!projectItemUrl) {
|
|
72
|
+
projectItemUrl = await claude.createProjectItem(resolved['title'].trim());
|
|
73
|
+
}
|
|
74
|
+
if (!isProjectItemUrl(projectItemUrl)) {
|
|
75
|
+
logger.warning('URL does not appear to be an idea1.ai project item URL');
|
|
76
|
+
}
|
|
77
|
+
// Collect every user decision up front (mirrors start-project-item), before
|
|
78
|
+
// any slow MCP or git writes.
|
|
79
|
+
const stackBranch = await promptForStackBranch();
|
|
80
|
+
let integrationSelection = null;
|
|
81
|
+
if (workflowType === 'integration') {
|
|
82
|
+
integrationSelection = await promptForIntegrationBranch();
|
|
83
|
+
}
|
|
84
|
+
// Determine the PR target branch exactly the way start-project-item does:
|
|
85
|
+
// the integration branch for integration work, otherwise the base branch.
|
|
86
|
+
let prTargetBranch = baseBranch;
|
|
87
|
+
if (integrationSelection) {
|
|
88
|
+
if (integrationSelection.isNew) {
|
|
89
|
+
await worktree.ensureIntegrationBranch(integrationSelection.integrationBranchName, baseBranch);
|
|
90
|
+
// ensureIntegrationBranch leaves the working tree on the base branch — return
|
|
91
|
+
// to the branch we are attaching so metadata is committed to the right place.
|
|
92
|
+
await git.checkoutBranch(currentBranch);
|
|
93
|
+
}
|
|
94
|
+
prTargetBranch = integrationSelection.integrationBranchName;
|
|
95
|
+
}
|
|
96
|
+
if (currentBranch === prTargetBranch) {
|
|
97
|
+
throw new Error(`Cannot attach branch '${currentBranch}' to itself as the PR base ('${prTargetBranch}').`);
|
|
98
|
+
}
|
|
99
|
+
logger.section('Attach Project Item');
|
|
100
|
+
logger.info(`Attaching current branch '${currentBranch}' to ${projectItemUrl}`);
|
|
101
|
+
if (stackBranch) {
|
|
102
|
+
logger.info(`Stacked workflow recorded: stacked on ${stackBranch}, PR will target ${prTargetBranch}`);
|
|
103
|
+
}
|
|
104
|
+
// Update the item's workflow status on idea1.ai.
|
|
105
|
+
await claude.setWorkflowStatus(projectItemUrl, 'Agent implementation');
|
|
106
|
+
// Persist per-branch metadata (git config fast-path + committed JSON file).
|
|
107
|
+
// These must be stored before commitBranchMetadata so it gathers all values.
|
|
108
|
+
await git.storeWorkflowState('Agent implementation', currentBranch);
|
|
109
|
+
await git.storeDevWorkflowType(workflowType, currentBranch);
|
|
110
|
+
if (stackBranch) {
|
|
111
|
+
await git.storeStackBranch(stackBranch, currentBranch);
|
|
112
|
+
}
|
|
113
|
+
if (integrationSelection) {
|
|
114
|
+
await git.storeIntegrationBranch(integrationSelection.integrationBranchName, currentBranch);
|
|
115
|
+
}
|
|
116
|
+
await git.storeProjectItemUrl(projectItemUrl, currentBranch);
|
|
117
|
+
await git.storeBaseBranch(prTargetBranch, currentBranch);
|
|
118
|
+
// Commit the metadata file on the branch and push so the branch is up to date
|
|
119
|
+
// with its metadata and visible on the remote for PR creation.
|
|
120
|
+
const repoRoot = await git.getRepoRoot();
|
|
121
|
+
await git.commitBranchMetadata(repoRoot, currentBranch, projectItemUrl);
|
|
122
|
+
await git.pushToRemote(currentBranch);
|
|
123
|
+
// Set up the PR into the target branch, just like start-project-item targets it.
|
|
124
|
+
const prInfo = await github.createPrIfNeeded(currentBranch, prTargetBranch, projectItemUrl);
|
|
125
|
+
logger.success(`Attached ${currentBranch} to ${projectItemUrl}`);
|
|
126
|
+
logger.newline();
|
|
127
|
+
logger.hint('Use `idea1 next` to transition to the next workflow step when ready.');
|
|
128
|
+
if (prInfo) {
|
|
129
|
+
logger.hint(`PR: ${prInfo.url}`);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
};
|
|
133
|
+
/**
|
|
134
|
+
* Throw if the branch is already attached to a project item. Checks both the
|
|
135
|
+
* local git config / working-tree metadata and the committed metadata on the
|
|
136
|
+
* remote ref, so a freshly-cloned branch is still detected.
|
|
137
|
+
*/
|
|
138
|
+
async function ensureNotAlreadyAttached(branch) {
|
|
139
|
+
const existingUrl = await git.getProjectItemUrl(branch);
|
|
140
|
+
const existingState = await git.getWorkflowState(branch);
|
|
141
|
+
const remote = await git.readBranchMetadataFromRef(branch);
|
|
142
|
+
if (existingUrl || existingState || remote?.projectItemUrl || remote?.workflowState) {
|
|
143
|
+
const url = existingUrl ?? remote?.projectItemUrl;
|
|
144
|
+
throw new Error(`Branch '${branch}' is already attached to a project item${url ? ` (${url})` : ''}. ` +
|
|
145
|
+
`Use 'join-project-item' to resume work on it instead.`);
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
//# sourceMappingURL=attach-project-item.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"attach-project-item.js","sourceRoot":"","sources":["../../src/commands/attach-project-item.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/help.js
CHANGED
|
@@ -20,7 +20,7 @@ export const helpCommand = {
|
|
|
20
20
|
console.log();
|
|
21
21
|
console.log(` ${chalk.bold('start-project-item')} Begin work on a project item (creates branch + worktree)`);
|
|
22
22
|
console.log(` ${chalk.bold('start-dev-implementation')} Commit agent work, create PR, close worktree`);
|
|
23
|
-
console.log(` ${chalk.bold('ready-for-approval')} Mark PR ready for review, optionally assign
|
|
23
|
+
console.log(` ${chalk.bold('ready-for-approval')} Mark PR ready for review, optionally assign + request reviewers`);
|
|
24
24
|
console.log(` ${chalk.bold('approve-pr')} Approve, merge PR, clean up branch`);
|
|
25
25
|
console.log(` ${chalk.bold('next-workflow-step')} Auto-detect and run the next transition`);
|
|
26
26
|
console.log(` ${chalk.bold('update-branch')} Merge latest from source branch into current branch`);
|
|
@@ -108,7 +108,7 @@ export const helpCommand = {
|
|
|
108
108
|
console.log(' idea1 start --url https://app.idea1.ai/project/items/590 -b working/release');
|
|
109
109
|
console.log(' idea1 update-branch');
|
|
110
110
|
console.log(' idea1 next');
|
|
111
|
-
console.log(' idea1 ready-for-approval --
|
|
111
|
+
console.log(' idea1 ready-for-approval --assignee octocat --reviewers octocat,hubot');
|
|
112
112
|
console.log(' idea1 approve-pr');
|
|
113
113
|
logger.newline();
|
|
114
114
|
console.log(chalk.bold('INTERACTIVE MODE:'));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"help.js","sourceRoot":"","sources":["../../src/commands/help.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,CAAC,MAAM,WAAW,GAAY;IAClC,IAAI,EAAE,MAAM;IACZ,OAAO,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC;IACnB,WAAW,EAAE,uBAAuB;IAEpC,KAAK,CAAC,OAAO,CAAC,SAAiC;QAC7C,qBAAqB;QACrB,UAAU,EAAE,CAAC;QAEb,0BAA0B;QAC1B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC;QAC9C,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,yFAAyF,CAAC,CAAC;QACvG,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,MAAM,CAAC,sBAAsB,CAAC,QAAQ,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,QAAQ,KAAK,CAAC,OAAO,CAAC,mBAAmB,CAAC,QAAQ,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QAC5K,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAC;QACtE,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,iEAAiE,CAAC,CAAC;QACtH,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,gDAAgD,CAAC,CAAC;QAC3G,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,
|
|
1
|
+
{"version":3,"file":"help.js","sourceRoot":"","sources":["../../src/commands/help.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/index.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { Command } from '../types/index.js';
|
|
2
2
|
import { startProjectItemCommand } from './start-project-item.js';
|
|
3
3
|
import { joinProjectItemCommand } from './join-project-item.js';
|
|
4
|
+
import { attachProjectItemCommand } from './attach-project-item.js';
|
|
4
5
|
import { closeWorktreeCommand } from './close-worktree.js';
|
|
5
6
|
import { createWorktreeCommand } from './create-worktree.js';
|
|
6
7
|
import { pushCommand } from './push.js';
|
|
@@ -24,5 +25,5 @@ export declare function getAllCommands(): Command[];
|
|
|
24
25
|
* Get all command names and aliases for autocomplete
|
|
25
26
|
*/
|
|
26
27
|
export declare function getAllCommandNamesAndAliases(): string[];
|
|
27
|
-
export { startProjectItemCommand, joinProjectItemCommand, closeWorktreeCommand, createWorktreeCommand, pushCommand, helpCommand, releaseCommand, startDevImplementationCommand, readyForApprovalCommand, approvePrCommand, nextWorkflowStepCommand, updateBranchCommand, getProjectItemUrlCommand };
|
|
28
|
+
export { startProjectItemCommand, joinProjectItemCommand, attachProjectItemCommand, closeWorktreeCommand, createWorktreeCommand, pushCommand, helpCommand, releaseCommand, startDevImplementationCommand, readyForApprovalCommand, approvePrCommand, nextWorkflowStepCommand, updateBranchCommand, getProjectItemUrlCommand };
|
|
28
29
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,6BAA6B,EAAE,MAAM,+BAA+B,CAAC;AAC9E,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,6BAA6B,EAAE,MAAM,+BAA+B,CAAC;AAC9E,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAwCrE;;GAEG;AACH,wBAAgB,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAEnE;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,OAAO,EAAE,CAM1C;AAED;;GAEG;AACH,wBAAgB,4BAA4B,IAAI,MAAM,EAAE,CAEvD;AAED,OAAO,EACL,uBAAuB,EACvB,sBAAsB,EACtB,wBAAwB,EACxB,oBAAoB,EACpB,qBAAqB,EACrB,WAAW,EACX,WAAW,EACX,cAAc,EACd,6BAA6B,EAC7B,uBAAuB,EACvB,gBAAgB,EAChB,uBAAuB,EACvB,mBAAmB,EACnB,wBAAwB,EACzB,CAAC"}
|
package/dist/commands/index.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { startProjectItemCommand } from './start-project-item.js';
|
|
2
2
|
import { joinProjectItemCommand } from './join-project-item.js';
|
|
3
|
+
import { attachProjectItemCommand } from './attach-project-item.js';
|
|
3
4
|
import { closeWorktreeCommand } from './close-worktree.js';
|
|
4
5
|
import { createWorktreeCommand } from './create-worktree.js';
|
|
5
6
|
import { pushCommand } from './push.js';
|
|
@@ -30,6 +31,7 @@ function registerCommand(command) {
|
|
|
30
31
|
registerCommand(helpCommand);
|
|
31
32
|
registerCommand(startProjectItemCommand);
|
|
32
33
|
registerCommand(joinProjectItemCommand);
|
|
34
|
+
registerCommand(attachProjectItemCommand);
|
|
33
35
|
registerCommand(startDevImplementationCommand);
|
|
34
36
|
registerCommand(readyForApprovalCommand);
|
|
35
37
|
registerCommand(approvePrCommand);
|
|
@@ -64,5 +66,5 @@ export function getAllCommands() {
|
|
|
64
66
|
export function getAllCommandNamesAndAliases() {
|
|
65
67
|
return Array.from(commandRegistry.keys());
|
|
66
68
|
}
|
|
67
|
-
export { startProjectItemCommand, joinProjectItemCommand, closeWorktreeCommand, createWorktreeCommand, pushCommand, helpCommand, releaseCommand, startDevImplementationCommand, readyForApprovalCommand, approvePrCommand, nextWorkflowStepCommand, updateBranchCommand, getProjectItemUrlCommand };
|
|
69
|
+
export { startProjectItemCommand, joinProjectItemCommand, attachProjectItemCommand, closeWorktreeCommand, createWorktreeCommand, pushCommand, helpCommand, releaseCommand, startDevImplementationCommand, readyForApprovalCommand, approvePrCommand, nextWorkflowStepCommand, updateBranchCommand, getProjectItemUrlCommand };
|
|
68
70
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,6BAA6B,EAAE,MAAM,+BAA+B,CAAC;AAC9E,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAErE;;GAEG;AACH,MAAM,eAAe,GAAG,IAAI,GAAG,EAAmB,CAAC;AAEnD;;GAEG;AACH,SAAS,eAAe,CAAC,OAAgB;IACvC,mBAAmB;IACnB,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAE3C,sBAAsB;IACtB,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACpC,eAAe,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACtC,CAAC;AACH,CAAC;AAED,wBAAwB;AACxB,eAAe,CAAC,WAAW,CAAC,CAAC;AAC7B,eAAe,CAAC,uBAAuB,CAAC,CAAC;AACzC,eAAe,CAAC,sBAAsB,CAAC,CAAC;AACxC,eAAe,CAAC,6BAA6B,CAAC,CAAC;AAC/C,eAAe,CAAC,uBAAuB,CAAC,CAAC;AACzC,eAAe,CAAC,gBAAgB,CAAC,CAAC;AAClC,eAAe,CAAC,cAAc,CAAC,CAAC;AAChC,eAAe,CAAC,uBAAuB,CAAC,CAAC;AACzC,eAAe,CAAC,mBAAmB,CAAC,CAAC;AACrC,eAAe,CAAC,wBAAwB,CAAC,CAAC;AAE1C,kGAAkG;AAClG,oEAAoE;AAEpE,yCAAyC;AACzC,0CAA0C;AAC1C,gCAAgC;AAEhC;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,WAAmB;IAC5C,OAAO,eAAe,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;AAC1C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc;IAC5B,MAAM,cAAc,GAAG,IAAI,GAAG,EAAW,CAAC;IAC1C,KAAK,MAAM,OAAO,IAAI,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC;QAC/C,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;AACpC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,4BAA4B;IAC1C,OAAO,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC;AAC5C,CAAC;AAED,OAAO,EACL,uBAAuB,EACvB,sBAAsB,EACtB,oBAAoB,EACpB,qBAAqB,EACrB,WAAW,EACX,WAAW,EACX,cAAc,EACd,6BAA6B,EAC7B,uBAAuB,EACvB,gBAAgB,EAChB,uBAAuB,EACvB,mBAAmB,EACnB,wBAAwB,EACzB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,6BAA6B,EAAE,MAAM,+BAA+B,CAAC;AAC9E,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAErE;;GAEG;AACH,MAAM,eAAe,GAAG,IAAI,GAAG,EAAmB,CAAC;AAEnD;;GAEG;AACH,SAAS,eAAe,CAAC,OAAgB;IACvC,mBAAmB;IACnB,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAE3C,sBAAsB;IACtB,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACpC,eAAe,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACtC,CAAC;AACH,CAAC;AAED,wBAAwB;AACxB,eAAe,CAAC,WAAW,CAAC,CAAC;AAC7B,eAAe,CAAC,uBAAuB,CAAC,CAAC;AACzC,eAAe,CAAC,sBAAsB,CAAC,CAAC;AACxC,eAAe,CAAC,wBAAwB,CAAC,CAAC;AAC1C,eAAe,CAAC,6BAA6B,CAAC,CAAC;AAC/C,eAAe,CAAC,uBAAuB,CAAC,CAAC;AACzC,eAAe,CAAC,gBAAgB,CAAC,CAAC;AAClC,eAAe,CAAC,cAAc,CAAC,CAAC;AAChC,eAAe,CAAC,uBAAuB,CAAC,CAAC;AACzC,eAAe,CAAC,mBAAmB,CAAC,CAAC;AACrC,eAAe,CAAC,wBAAwB,CAAC,CAAC;AAE1C,kGAAkG;AAClG,oEAAoE;AAEpE,yCAAyC;AACzC,0CAA0C;AAC1C,gCAAgC;AAEhC;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,WAAmB;IAC5C,OAAO,eAAe,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;AAC1C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc;IAC5B,MAAM,cAAc,GAAG,IAAI,GAAG,EAAW,CAAC;IAC1C,KAAK,MAAM,OAAO,IAAI,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC;QAC/C,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;AACpC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,4BAA4B;IAC1C,OAAO,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC;AAC5C,CAAC;AAED,OAAO,EACL,uBAAuB,EACvB,sBAAsB,EACtB,wBAAwB,EACxB,oBAAoB,EACpB,qBAAqB,EACrB,WAAW,EACX,WAAW,EACX,cAAc,EACd,6BAA6B,EAC7B,uBAAuB,EACvB,gBAAgB,EAChB,uBAAuB,EACvB,mBAAmB,EACnB,wBAAwB,EACzB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"join-project-item.d.ts","sourceRoot":"","sources":["../../src/commands/join-project-item.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAA2D,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"join-project-item.d.ts","sourceRoot":"","sources":["../../src/commands/join-project-item.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAA2D,MAAM,mBAAmB,CAAC;AAS1G,eAAO,MAAM,sBAAsB,EAAE,OAwIpC,CAAC"}
|
|
@@ -3,6 +3,7 @@ import { logger } from '../lib/logger.js';
|
|
|
3
3
|
import * as git from '../services/git.js';
|
|
4
4
|
import * as worktree from '../services/worktree.js';
|
|
5
5
|
import * as claude from '../services/claude.js';
|
|
6
|
+
import * as github from '../services/github.js';
|
|
6
7
|
import { validateProjectItemUrl } from '../lib/project-item-url.js';
|
|
7
8
|
import { startProjectItemCommand, VALID_PERMISSION_MODES, VALID_EFFORT_LEVELS } from './start-project-item.js';
|
|
8
9
|
export const joinProjectItemCommand = {
|
|
@@ -23,6 +24,19 @@ export const joinProjectItemCommand = {
|
|
|
23
24
|
exclusiveGroup: 'target',
|
|
24
25
|
validate: (value) => (value.trim() ? undefined : 'A branch name is required')
|
|
25
26
|
},
|
|
27
|
+
{
|
|
28
|
+
longName: 'pull-request-url',
|
|
29
|
+
description: 'GitHub PR URL to join (resolves the head branch automatically)',
|
|
30
|
+
exclusiveGroup: 'target',
|
|
31
|
+
validate: (value) => {
|
|
32
|
+
if (!value.trim())
|
|
33
|
+
return 'A PR URL is required';
|
|
34
|
+
if (!/^https:\/\/github\.com\/.+\/.+\/pull\/\d+/.test(value)) {
|
|
35
|
+
return 'URL should be a GitHub PR URL (e.g., https://github.com/org/repo/pull/123)';
|
|
36
|
+
}
|
|
37
|
+
return undefined;
|
|
38
|
+
}
|
|
39
|
+
},
|
|
26
40
|
{
|
|
27
41
|
longName: 'source-path',
|
|
28
42
|
shortName: 'p',
|
|
@@ -59,6 +73,7 @@ export const joinProjectItemCommand = {
|
|
|
59
73
|
const effort = (resolved['effort'] ?? 'high');
|
|
60
74
|
const url = resolved['project-item-url'] || undefined;
|
|
61
75
|
const branchArg = resolved['branch-name'] || undefined;
|
|
76
|
+
const prUrl = resolved['pull-request-url'] || undefined;
|
|
62
77
|
if (sourcePath) {
|
|
63
78
|
process.chdir(sourcePath);
|
|
64
79
|
}
|
|
@@ -86,6 +101,18 @@ export const joinProjectItemCommand = {
|
|
|
86
101
|
branch = resolvedBranch;
|
|
87
102
|
logger.info(`Resolved branch for ${url}: ${branch}`);
|
|
88
103
|
}
|
|
104
|
+
else if (prUrl) {
|
|
105
|
+
logger.step(`Looking up PR: ${prUrl}`);
|
|
106
|
+
const prInfo = await github.getBranchFromPrUrl(prUrl);
|
|
107
|
+
if (!prInfo) {
|
|
108
|
+
throw new Error(`Could not resolve branch from PR URL: ${prUrl}`);
|
|
109
|
+
}
|
|
110
|
+
branch = prInfo.headBranch;
|
|
111
|
+
logger.info(`Resolved branch from PR: ${branch}`);
|
|
112
|
+
if (!await git.branchExists(branch)) {
|
|
113
|
+
throw new Error(`Branch '${branch}' does not exist locally or on origin. Cannot join.`);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
89
116
|
else {
|
|
90
117
|
branch = branchArg;
|
|
91
118
|
if (!await git.branchExists(branch)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"join-project-item.js","sourceRoot":"","sources":["../../src/commands/join-project-item.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAEhC,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,KAAK,GAAG,MAAM,oBAAoB,CAAC;AAC1C,OAAO,KAAK,QAAQ,MAAM,yBAAyB,CAAC;AACpD,OAAO,KAAK,MAAM,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAE/G,MAAM,CAAC,MAAM,sBAAsB,GAAY;IAC7C,IAAI,EAAE,mBAAmB;IACzB,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,kFAAkF;IAC/F,OAAO,EAAE;QACP;YACE,QAAQ,EAAE,kBAAkB;YAC5B,WAAW,EAAE,0BAA0B;YACvC,cAAc,EAAE,QAAQ;YACxB,QAAQ,EAAE,sBAAsB;SACjC;QACD;YACE,QAAQ,EAAE,aAAa;YACvB,SAAS,EAAE,GAAG;YACd,WAAW,EAAE,gBAAgB;YAC7B,cAAc,EAAE,QAAQ;YACxB,QAAQ,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,2BAA2B,CAAC;SACtF;QACD;YACE,QAAQ,EAAE,aAAa;YACvB,SAAS,EAAE,GAAG;YACd,WAAW,EAAE,0BAA0B;YACvC,YAAY,EAAE,EAAE;YAChB,uBAAuB,EAAE,KAAK;SAC/B;QACD;YACE,QAAQ,EAAE,iBAAiB;YAC3B,SAAS,EAAE,IAAI;YACf,WAAW,EAAE,wBAAwB;YACrC,YAAY,EAAE,MAAM;YACpB,uBAAuB,EAAE,KAAK;YAC9B,OAAO,EAAE,sBAAsB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;YAClE,QAAQ,EAAE,CAAC,KAAa,EAAE,EAAE,CAC1B,sBAAsB,CAAC,QAAQ,CAAC,KAA6B,CAAC;gBAC5D,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,mBAAmB,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;SAC7D;QACD;YACE,QAAQ,EAAE,QAAQ;YAClB,SAAS,EAAE,GAAG;YACd,WAAW,EAAE,uCAAuC;YACpD,YAAY,EAAE,MAAM;YACpB,uBAAuB,EAAE,KAAK;YAC9B,OAAO,EAAE,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;YAC/D,QAAQ,EAAE,CAAC,KAAa,EAAE,EAAE,CAC1B,mBAAmB,CAAC,QAAQ,CAAC,KAA0B,CAAC;gBACtD,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,mBAAmB,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;SAC1D;KACF;IAED,KAAK,CAAC,OAAO,CAAC,QAAgC;QAC5C,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC;QAC3C,MAAM,cAAc,GAAG,CAAC,QAAQ,CAAC,iBAAiB,CAAC,IAAI,MAAM,CAAyB,CAAC;QACvF,MAAM,MAAM,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAsB,CAAC;QACnE,MAAM,GAAG,GAAG,QAAQ,CAAC,kBAAkB,CAAC,IAAI,SAAS,CAAC;QACtD,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,IAAI,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"join-project-item.js","sourceRoot":"","sources":["../../src/commands/join-project-item.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"next-workflow-step.d.ts","sourceRoot":"","sources":["../../src/commands/next-workflow-step.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"next-workflow-step.d.ts","sourceRoot":"","sources":["../../src/commands/next-workflow-step.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAmBjD,eAAO,MAAM,uBAAuB,EAAE,OAqDrC,CAAC"}
|
|
@@ -1,8 +1,19 @@
|
|
|
1
1
|
import { logger } from '../lib/logger.js';
|
|
2
|
+
import { resolveOptions } from '../cli/resolver.js';
|
|
2
3
|
import * as workflow from '../services/workflow.js';
|
|
3
4
|
import { startDevImplementationCommand } from './start-dev-implementation.js';
|
|
4
5
|
import { readyForApprovalCommand } from './ready-for-approval.js';
|
|
5
6
|
import { approvePrCommand } from './approve-pr.js';
|
|
7
|
+
/**
|
|
8
|
+
* Resolve a transition command's options (prompting for any that weren't
|
|
9
|
+
* supplied) before executing it. Running the transition directly with an empty
|
|
10
|
+
* object would skip resolution entirely, leaving options like the PR assignee
|
|
11
|
+
* undefined.
|
|
12
|
+
*/
|
|
13
|
+
async function runTransition(command) {
|
|
14
|
+
const resolved = await resolveOptions(command, {});
|
|
15
|
+
await command.execute(resolved);
|
|
16
|
+
}
|
|
6
17
|
export const nextWorkflowStepCommand = {
|
|
7
18
|
name: 'next-workflow-step',
|
|
8
19
|
aliases: ['next', 'n'],
|
|
@@ -34,13 +45,13 @@ export const nextWorkflowStepCommand = {
|
|
|
34
45
|
// Execute the appropriate command
|
|
35
46
|
switch (nextTransition) {
|
|
36
47
|
case 'start-dev-implementation':
|
|
37
|
-
await startDevImplementationCommand
|
|
48
|
+
await runTransition(startDevImplementationCommand);
|
|
38
49
|
break;
|
|
39
50
|
case 'ready-for-approval':
|
|
40
|
-
await readyForApprovalCommand
|
|
51
|
+
await runTransition(readyForApprovalCommand);
|
|
41
52
|
break;
|
|
42
53
|
case 'approve-pr':
|
|
43
|
-
await approvePrCommand
|
|
54
|
+
await runTransition(approvePrCommand);
|
|
44
55
|
break;
|
|
45
56
|
default:
|
|
46
57
|
throw new Error(`Unknown transition: ${nextTransition}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"next-workflow-step.js","sourceRoot":"","sources":["../../src/commands/next-workflow-step.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,KAAK,QAAQ,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,6BAA6B,EAAE,MAAM,+BAA+B,CAAC;AAC9E,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEnD,MAAM,CAAC,MAAM,uBAAuB,GAAY;IAC9C,IAAI,EAAE,oBAAoB;IAC1B,OAAO,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC;IACtB,WAAW,EAAE,oDAAoD;IAEjE,KAAK,CAAC,OAAO,CAAC,SAAiC;QAC7C,8BAA8B;QAC9B,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,iBAAiB,EAAE,CAAC;QAElD,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,0FAA0F,CAAC,CAAC;QAC9G,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAC9D,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,2BAA2B,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC;QAE/D,0BAA0B;QAC1B,MAAM,cAAc,GAAG,MAAM,QAAQ,CAAC,iBAAiB,EAAE,CAAC;QAE1D,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,IAAI,MAAM,CAAC,aAAa,KAAK,UAAU,EAAE,CAAC;gBACxC,MAAM,CAAC,OAAO,CAAC,iDAAiD,CAAC,CAAC;gBAClE,MAAM,CAAC,IAAI,CAAC,iBAAiB,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC;YACxD,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,OAAO,CAAC,wDAAwD,CAAC,CAAC;YAC3E,CAAC;YACD,OAAO;QACT,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,8BAA8B,cAAc,EAAE,CAAC,CAAC;QAC5D,MAAM,CAAC,OAAO,EAAE,CAAC;QAEjB,kCAAkC;QAClC,QAAQ,cAAc,EAAE,CAAC;YACvB,KAAK,0BAA0B;gBAC7B,MAAM,
|
|
1
|
+
{"version":3,"file":"next-workflow-step.js","sourceRoot":"","sources":["../../src/commands/next-workflow-step.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,KAAK,QAAQ,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,6BAA6B,EAAE,MAAM,+BAA+B,CAAC;AAC9E,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEnD;;;;;GAKG;AACH,KAAK,UAAU,aAAa,CAAC,OAAgB;IAC3C,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IACnD,MAAM,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AAClC,CAAC;AAED,MAAM,CAAC,MAAM,uBAAuB,GAAY;IAC9C,IAAI,EAAE,oBAAoB;IAC1B,OAAO,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC;IACtB,WAAW,EAAE,oDAAoD;IAEjE,KAAK,CAAC,OAAO,CAAC,SAAiC;QAC7C,8BAA8B;QAC9B,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,iBAAiB,EAAE,CAAC;QAElD,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,0FAA0F,CAAC,CAAC;QAC9G,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAC9D,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,2BAA2B,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC;QAE/D,0BAA0B;QAC1B,MAAM,cAAc,GAAG,MAAM,QAAQ,CAAC,iBAAiB,EAAE,CAAC;QAE1D,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,IAAI,MAAM,CAAC,aAAa,KAAK,UAAU,EAAE,CAAC;gBACxC,MAAM,CAAC,OAAO,CAAC,iDAAiD,CAAC,CAAC;gBAClE,MAAM,CAAC,IAAI,CAAC,iBAAiB,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC;YACxD,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,OAAO,CAAC,wDAAwD,CAAC,CAAC;YAC3E,CAAC;YACD,OAAO;QACT,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,8BAA8B,cAAc,EAAE,CAAC,CAAC;QAC5D,MAAM,CAAC,OAAO,EAAE,CAAC;QAEjB,kCAAkC;QAClC,QAAQ,cAAc,EAAE,CAAC;YACvB,KAAK,0BAA0B;gBAC7B,MAAM,aAAa,CAAC,6BAA6B,CAAC,CAAC;gBACnD,MAAM;YAER,KAAK,oBAAoB;gBACvB,MAAM,aAAa,CAAC,uBAAuB,CAAC,CAAC;gBAC7C,MAAM;YAER,KAAK,YAAY;gBACf,MAAM,aAAa,CAAC,gBAAgB,CAAC,CAAC;gBACtC,MAAM;YAER;gBACE,MAAM,IAAI,KAAK,CAAC,uBAAuB,cAAc,EAAE,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;CACF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ready-for-approval.d.ts","sourceRoot":"","sources":["../../src/commands/ready-for-approval.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAOjD,eAAO,MAAM,uBAAuB,EAAE,
|
|
1
|
+
{"version":3,"file":"ready-for-approval.d.ts","sourceRoot":"","sources":["../../src/commands/ready-for-approval.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAOjD,eAAO,MAAM,uBAAuB,EAAE,OAkGrC,CAAC"}
|