@idea1/cli 1.9.1 → 1.10.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +123 -66
- package/dist/cli/named-lists.d.ts +1 -1
- package/dist/cli/named-lists.d.ts.map +1 -1
- package/dist/cli/named-lists.js +18 -2
- package/dist/cli/named-lists.js.map +1 -1
- package/dist/cli/parser.d.ts +3 -2
- package/dist/cli/parser.d.ts.map +1 -1
- package/dist/cli/parser.js +4 -3
- package/dist/cli/parser.js.map +1 -1
- package/dist/cli/resolver.d.ts +3 -0
- package/dist/cli/resolver.d.ts.map +1 -1
- package/dist/cli/resolver.js +41 -36
- package/dist/cli/resolver.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +15 -1
- package/dist/cli.js.map +1 -1
- package/dist/commands/approve-pr.d.ts.map +1 -1
- package/dist/commands/approve-pr.js +2 -54
- package/dist/commands/approve-pr.js.map +1 -1
- package/dist/commands/help.d.ts.map +1 -1
- package/dist/commands/help.js +11 -6
- 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 +5 -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 +31 -12
- 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 +1 -0
- 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 +7 -67
- package/dist/commands/ready-for-approval.js.map +1 -1
- package/dist/commands/release.d.ts.map +1 -1
- package/dist/commands/release.js +7 -9
- package/dist/commands/release.js.map +1 -1
- package/dist/commands/ship-local-changes.d.ts +2 -0
- package/dist/commands/ship-local-changes.d.ts.map +1 -1
- package/dist/commands/ship-local-changes.js +30 -5
- package/dist/commands/ship-local-changes.js.map +1 -1
- package/dist/commands/start-agent-implementation.d.ts.map +1 -1
- package/dist/commands/start-agent-implementation.js +4 -1
- 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 +1 -0
- package/dist/commands/start-dev-implementation.js.map +1 -1
- package/dist/commands/start.d.ts.map +1 -1
- package/dist/commands/start.js +6 -3
- package/dist/commands/start.js.map +1 -1
- package/dist/commands/url-handler.d.ts +5 -0
- package/dist/commands/url-handler.d.ts.map +1 -0
- package/dist/commands/url-handler.js +38 -0
- package/dist/commands/url-handler.js.map +1 -0
- package/dist/jobs/targets.d.ts +6 -1
- package/dist/jobs/targets.d.ts.map +1 -1
- package/dist/jobs/targets.js +12 -8
- package/dist/jobs/targets.js.map +1 -1
- package/dist/lib/claude-options.d.ts +47 -34
- package/dist/lib/claude-options.d.ts.map +1 -1
- package/dist/lib/claude-options.js +95 -82
- package/dist/lib/claude-options.js.map +1 -1
- package/dist/lib/claude-sessions.generated.d.ts +25 -0
- package/dist/lib/claude-sessions.generated.d.ts.map +1 -0
- package/dist/lib/claude-sessions.generated.js +16 -0
- package/dist/lib/claude-sessions.generated.js.map +1 -0
- package/dist/lib/settings.d.ts +10 -4
- package/dist/lib/settings.d.ts.map +1 -1
- package/dist/lib/settings.js +45 -15
- package/dist/lib/settings.js.map +1 -1
- package/dist/prompts/platform-prompts.d.ts +2 -0
- package/dist/prompts/platform-prompts.d.ts.map +1 -1
- package/dist/prompts/platform-prompts.js +9 -4
- package/dist/prompts/platform-prompts.js.map +1 -1
- package/dist/prompts/project-item-prompts.d.ts +3 -12
- package/dist/prompts/project-item-prompts.d.ts.map +1 -1
- package/dist/prompts/project-item-prompts.js +3 -18
- package/dist/prompts/project-item-prompts.js.map +1 -1
- package/dist/services/claude.d.ts +12 -7
- package/dist/services/claude.d.ts.map +1 -1
- package/dist/services/claude.js +7 -4
- package/dist/services/claude.js.map +1 -1
- package/dist/services/config.d.ts +5 -0
- package/dist/services/config.d.ts.map +1 -1
- package/dist/services/config.js +9 -0
- package/dist/services/config.js.map +1 -1
- package/dist/services/git.d.ts +5 -0
- package/dist/services/git.d.ts.map +1 -1
- package/dist/services/git.js +15 -3
- package/dist/services/git.js.map +1 -1
- package/dist/services/github.d.ts +25 -7
- package/dist/services/github.d.ts.map +1 -1
- package/dist/services/github.js +23 -9
- package/dist/services/github.js.map +1 -1
- package/dist/services/os-launcher.d.ts +29 -0
- package/dist/services/os-launcher.d.ts.map +1 -0
- package/dist/services/os-launcher.js +104 -0
- package/dist/services/os-launcher.js.map +1 -0
- package/dist/services/platform.d.ts +17 -3
- package/dist/services/platform.d.ts.map +1 -1
- package/dist/services/platform.js +79 -7
- package/dist/services/platform.js.map +1 -1
- package/dist/services/repository-registry.d.ts +11 -0
- package/dist/services/repository-registry.d.ts.map +1 -0
- package/dist/services/repository-registry.js +43 -0
- package/dist/services/repository-registry.js.map +1 -0
- package/dist/services/setup.d.ts.map +1 -1
- package/dist/services/setup.js +21 -1
- package/dist/services/setup.js.map +1 -1
- package/dist/services/url-handler.d.ts +23 -0
- package/dist/services/url-handler.d.ts.map +1 -0
- package/dist/services/url-handler.js +236 -0
- package/dist/services/url-handler.js.map +1 -0
- package/dist/services/worktree.d.ts +1 -19
- package/dist/services/worktree.d.ts.map +1 -1
- package/dist/services/worktree.js +0 -34
- package/dist/services/worktree.js.map +1 -1
- package/dist/types/index.d.ts +27 -25
- package/dist/types/index.d.ts.map +1 -1
- package/dist/workflow/data/project-item.d.ts +4 -0
- package/dist/workflow/data/project-item.d.ts.map +1 -1
- package/dist/workflow/data/team-member.d.ts +14 -0
- package/dist/workflow/data/team-member.d.ts.map +1 -0
- package/dist/workflow/data/team-member.js +2 -0
- package/dist/workflow/data/team-member.js.map +1 -0
- package/dist/workflow/data/workflow-context.d.ts +1 -1
- package/dist/workflow/data/workflow-states.d.ts +11 -2
- package/dist/workflow/data/workflow-states.d.ts.map +1 -1
- package/dist/workflow/data/workflow-states.generated.d.ts +17 -0
- package/dist/workflow/data/workflow-states.generated.d.ts.map +1 -1
- package/dist/workflow/data/workflow-states.generated.js +41 -0
- package/dist/workflow/data/workflow-states.generated.js.map +1 -1
- package/dist/workflow/data/workflow-states.js +21 -1
- package/dist/workflow/data/workflow-states.js.map +1 -1
- package/dist/workflow/engine/agent-session.d.ts +16 -0
- package/dist/workflow/engine/agent-session.d.ts.map +1 -0
- package/dist/workflow/engine/agent-session.js +109 -0
- package/dist/workflow/engine/agent-session.js.map +1 -0
- package/dist/workflow/engine/approval-flow.d.ts +39 -5
- package/dist/workflow/engine/approval-flow.d.ts.map +1 -1
- package/dist/workflow/engine/approval-flow.js +156 -2
- package/dist/workflow/engine/approval-flow.js.map +1 -1
- package/dist/workflow/engine/handlers/agent-implementation.d.ts +5 -4
- package/dist/workflow/engine/handlers/agent-implementation.d.ts.map +1 -1
- package/dist/workflow/engine/handlers/agent-implementation.js +13 -19
- package/dist/workflow/engine/handlers/agent-implementation.js.map +1 -1
- package/dist/workflow/engine/handlers/dev-implementation.js +1 -1
- package/dist/workflow/engine/handlers/dev-implementation.js.map +1 -1
- package/dist/workflow/engine/handlers/ready-for-approval.d.ts +7 -6
- package/dist/workflow/engine/handlers/ready-for-approval.d.ts.map +1 -1
- package/dist/workflow/engine/handlers/ready-for-approval.js +17 -19
- package/dist/workflow/engine/handlers/ready-for-approval.js.map +1 -1
- package/dist/workflow/engine/release-engine.d.ts +16 -5
- package/dist/workflow/engine/release-engine.d.ts.map +1 -1
- package/dist/workflow/engine/release-engine.js +81 -9
- package/dist/workflow/engine/release-engine.js.map +1 -1
- package/dist/workflow/engine/ship-flow.d.ts +15 -4
- package/dist/workflow/engine/ship-flow.d.ts.map +1 -1
- package/dist/workflow/engine/ship-flow.js +80 -21
- package/dist/workflow/engine/ship-flow.js.map +1 -1
- package/dist/workflow/engine/workflow-engine.d.ts +52 -16
- package/dist/workflow/engine/workflow-engine.d.ts.map +1 -1
- package/dist/workflow/engine/workflow-engine.js +146 -31
- package/dist/workflow/engine/workflow-engine.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
import { existsSync, mkdirSync, readFileSync, rmSync, writeFileSync } from 'fs';
|
|
2
|
+
import { homedir, tmpdir } from 'os';
|
|
3
|
+
import { dirname, join } from 'path';
|
|
4
|
+
import { fileURLToPath } from 'url';
|
|
5
|
+
import { exec, execOrThrow } from '../lib/shell.js';
|
|
6
|
+
import { NO_ENTRY_POINT } from '../lib/claude-options.js';
|
|
7
|
+
import { VALID_ISOLATION_MODES } from '../lib/isolation.js';
|
|
8
|
+
import { isProjectItemUrl } from '../lib/project-item-url.js';
|
|
9
|
+
import { CLAUDE_EFFORT_LEVELS, CLAUDE_MODEL_CHOICES } from '../lib/claude-sessions.generated.js';
|
|
10
|
+
import { VERSION } from '../version.js';
|
|
11
|
+
import { userIdea1Path } from './config.js';
|
|
12
|
+
import * as osLauncher from './os-launcher.js';
|
|
13
|
+
import { findRepositoryClone } from './repository-registry.js';
|
|
14
|
+
/**
|
|
15
|
+
* The `idea1://` URL handler: links in the Idea1 web app that start work on this machine. The CLI
|
|
16
|
+
* registers itself with the operating system as the handler of the `idea1` scheme - on macOS an
|
|
17
|
+
* AppleScript applet in `~/Applications`, on Windows a per-user protocol key in the registry - and
|
|
18
|
+
* the operating system hands each link to `idea1 open-url`.
|
|
19
|
+
*
|
|
20
|
+
* A link is input from outside the machine, so only `idea1://join` is accepted and every parameter
|
|
21
|
+
* is checked against what the web app builds: the project item on the Idea1 app's host, the
|
|
22
|
+
* repository as `owner/name`, and fixed choices for everything else. An entry point is passed on
|
|
23
|
+
* by name only, never as prompt text. The link opens a terminal in the repository's local clone
|
|
24
|
+
* (found in the repository registry, else asked for in the terminal) running
|
|
25
|
+
* `idea1 join-project-item` with exactly those values.
|
|
26
|
+
*
|
|
27
|
+
* Registration happens automatically and idempotently whenever the CLI runs, recorded in a stamp
|
|
28
|
+
* file under `~/.idea1/`, and is redone when the CLI's version, Node or install location changes;
|
|
29
|
+
* `unregister-url-handler` removes it and keeps it removed until `register-url-handler`.
|
|
30
|
+
*/
|
|
31
|
+
const URL_SCHEME = 'idea1';
|
|
32
|
+
/** Set to skip the automatic registration at startup, as the CLI's tests do. */
|
|
33
|
+
const SKIP_REGISTRATION_ENV = 'IDEA1_SKIP_URL_HANDLER_REGISTRATION';
|
|
34
|
+
/** The CLI's entry script, which the handler runs with this Node. */
|
|
35
|
+
const CLI_ENTRY_PATH = fileURLToPath(new URL('../index.js', import.meta.url));
|
|
36
|
+
const MAC_APP_PATH = join(homedir(), 'Applications', 'Idea1 URL Handler.app');
|
|
37
|
+
const MAC_BUNDLE_ID = 'ai.idea1.url-handler';
|
|
38
|
+
const LSREGISTER = '/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister';
|
|
39
|
+
const WINDOWS_KEY = `HKCU\\Software\\Classes\\${URL_SCHEME}`;
|
|
40
|
+
function stampPath() {
|
|
41
|
+
return userIdea1Path('url-handler.json');
|
|
42
|
+
}
|
|
43
|
+
function writeStamp(registered) {
|
|
44
|
+
const stamp = { registered, version: VERSION, node: process.execPath, cli: CLI_ENTRY_PATH };
|
|
45
|
+
mkdirSync(dirname(stampPath()), { recursive: true });
|
|
46
|
+
writeFileSync(stampPath(), JSON.stringify(stamp, null, 2) + '\n');
|
|
47
|
+
}
|
|
48
|
+
/** Whether this operating system can register the handler: macOS and Windows. */
|
|
49
|
+
export function isUrlHandlerSupported() {
|
|
50
|
+
return process.platform === 'darwin' || process.platform === 'win32';
|
|
51
|
+
}
|
|
52
|
+
function requireSupport() {
|
|
53
|
+
if (!isUrlHandlerSupported()) {
|
|
54
|
+
throw new Error(`The ${URL_SCHEME}:// URL handler can be registered on macOS and Windows only.`);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Register the CLI as the operating system's handler of `idea1://` links, for the current user.
|
|
59
|
+
*/
|
|
60
|
+
export async function registerUrlHandler() {
|
|
61
|
+
requireSupport();
|
|
62
|
+
if (process.platform === 'darwin') {
|
|
63
|
+
await registerMacApplet();
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
await registerWindowsProtocol();
|
|
67
|
+
}
|
|
68
|
+
writeStamp(true);
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Remove the CLI's `idea1://` handler registration, and keep it from being registered again at
|
|
72
|
+
* startup until `registerUrlHandler`.
|
|
73
|
+
*/
|
|
74
|
+
export async function unregisterUrlHandler() {
|
|
75
|
+
requireSupport();
|
|
76
|
+
if (process.platform === 'darwin') {
|
|
77
|
+
if (existsSync(MAC_APP_PATH)) {
|
|
78
|
+
await execOrThrow(LSREGISTER, ['-u', MAC_APP_PATH]);
|
|
79
|
+
rmSync(MAC_APP_PATH, { recursive: true, force: true });
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
else if ((await exec('reg', ['query', WINDOWS_KEY])).exitCode === 0) {
|
|
83
|
+
await execOrThrow('reg', ['delete', WINDOWS_KEY, '/f']);
|
|
84
|
+
}
|
|
85
|
+
writeStamp(false);
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Register the handler unless it is registered already by this CLI, Node and version, or was
|
|
89
|
+
* unregistered on purpose. Runs on every CLI start.
|
|
90
|
+
*/
|
|
91
|
+
export async function ensureUrlHandlerRegistered() {
|
|
92
|
+
if (!isUrlHandlerSupported() || process.env[SKIP_REGISTRATION_ENV]) {
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
const stamp = existsSync(stampPath()) ? JSON.parse(readFileSync(stampPath(), 'utf-8')) : null;
|
|
96
|
+
if (stamp && (!stamp.registered || (stamp.version === VERSION && stamp.node === process.execPath && stamp.cli === CLI_ENTRY_PATH))) {
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
await registerUrlHandler();
|
|
100
|
+
}
|
|
101
|
+
/** A string literal in AppleScript. */
|
|
102
|
+
function appleScriptString(value) {
|
|
103
|
+
return `"${value.replace(/\\/g, '\\\\').replace(/"/g, '\\"')}"`;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* An AppleScript applet whose `open location` handler runs `open-url` with the link, reporting a
|
|
107
|
+
* refused link in a dialog. Its Info.plist claims the scheme and keeps it out of the Dock; it is
|
|
108
|
+
* signed again after the edit and registered with Launch Services.
|
|
109
|
+
*/
|
|
110
|
+
async function registerMacApplet() {
|
|
111
|
+
const command = `quoted form of ${appleScriptString(process.execPath)} & " " & quoted form of ${appleScriptString(CLI_ENTRY_PATH)} & " open-url --url " & quoted form of theUrl`;
|
|
112
|
+
const source = [
|
|
113
|
+
'on open location theUrl',
|
|
114
|
+
'\ttry',
|
|
115
|
+
`\t\tdo shell script ${command}`,
|
|
116
|
+
'\ton error errorMessage',
|
|
117
|
+
'\t\tactivate',
|
|
118
|
+
'\t\tdisplay dialog "Idea1 could not open " & theUrl & return & return & errorMessage buttons {"OK"} default button "OK" with title "Idea1" with icon stop',
|
|
119
|
+
'\tend try',
|
|
120
|
+
'end open location',
|
|
121
|
+
''
|
|
122
|
+
].join('\n');
|
|
123
|
+
const sourcePath = join(tmpdir(), `idea1-url-handler-${process.pid}.applescript`);
|
|
124
|
+
writeFileSync(sourcePath, source);
|
|
125
|
+
rmSync(MAC_APP_PATH, { recursive: true, force: true });
|
|
126
|
+
mkdirSync(dirname(MAC_APP_PATH), { recursive: true });
|
|
127
|
+
await execOrThrow('osacompile', ['-o', MAC_APP_PATH, sourcePath]);
|
|
128
|
+
rmSync(sourcePath, { force: true });
|
|
129
|
+
const plist = join(MAC_APP_PATH, 'Contents', 'Info.plist');
|
|
130
|
+
await execOrThrow('plutil', ['-replace', 'CFBundleIdentifier', '-string', MAC_BUNDLE_ID, plist]);
|
|
131
|
+
await execOrThrow('plutil', ['-replace', 'CFBundleURLTypes', '-json', JSON.stringify([{ CFBundleURLName: 'Idea1 link', CFBundleURLSchemes: [URL_SCHEME] }]), plist]);
|
|
132
|
+
await execOrThrow('plutil', ['-replace', 'LSUIElement', '-bool', 'YES', plist]);
|
|
133
|
+
await execOrThrow('codesign', ['--force', '--sign', '-', MAC_APP_PATH]);
|
|
134
|
+
await execOrThrow(LSREGISTER, ['-f', MAC_APP_PATH]);
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* A per-user protocol key whose open command runs `open-url` with the link.
|
|
138
|
+
*/
|
|
139
|
+
async function registerWindowsProtocol() {
|
|
140
|
+
await execOrThrow('reg', ['add', WINDOWS_KEY, '/ve', '/d', `URL:${URL_SCHEME}`, '/f']);
|
|
141
|
+
await execOrThrow('reg', ['add', WINDOWS_KEY, '/v', 'URL Protocol', '/d', '', '/f']);
|
|
142
|
+
await execOrThrow('reg', [
|
|
143
|
+
'add', `${WINDOWS_KEY}\\shell\\open\\command`, '/ve',
|
|
144
|
+
'/d', `"${process.execPath}" "${CLI_ENTRY_PATH}" open-url --url "%1"`,
|
|
145
|
+
'/f'
|
|
146
|
+
]);
|
|
147
|
+
}
|
|
148
|
+
const JOIN_PARAMETERS = ['target', 'repo', 'isolation', 'app', 'entryPoint', 'model', 'effort'];
|
|
149
|
+
const REPOSITORY_PATTERN = /^[A-Za-z0-9](?:[A-Za-z0-9-]{0,38})\/(?!\.\.?$)[A-Za-z0-9._-]{1,100}$/;
|
|
150
|
+
/** An entry point name: words, never prompt text with quotes, shell or template characters. */
|
|
151
|
+
const ENTRY_POINT_NAME_PATTERN = /^[\p{L}\p{N}][\p{L}\p{N} .,'()_-]{0,79}$/u;
|
|
152
|
+
/**
|
|
153
|
+
* Read an `idea1://join` link, refusing anything that is not exactly what the web app builds.
|
|
154
|
+
*/
|
|
155
|
+
function parseJoinUrl(value) {
|
|
156
|
+
let url;
|
|
157
|
+
try {
|
|
158
|
+
url = new URL(value);
|
|
159
|
+
}
|
|
160
|
+
catch {
|
|
161
|
+
throw new Error(`Not a URL: ${value}`);
|
|
162
|
+
}
|
|
163
|
+
if (url.protocol !== `${URL_SCHEME}:` || url.host !== 'join' || (url.pathname !== '' && url.pathname !== '/') || url.hash || url.username || url.password) {
|
|
164
|
+
throw new Error(`Only ${URL_SCHEME}://join links are accepted.`);
|
|
165
|
+
}
|
|
166
|
+
const params = new Map();
|
|
167
|
+
for (const [name, paramValue] of url.searchParams) {
|
|
168
|
+
if (!JOIN_PARAMETERS.includes(name)) {
|
|
169
|
+
throw new Error(`Unknown parameter "${name}" in the ${URL_SCHEME}://join link.`);
|
|
170
|
+
}
|
|
171
|
+
if (params.has(name)) {
|
|
172
|
+
throw new Error(`The parameter "${name}" is given more than once in the ${URL_SCHEME}://join link.`);
|
|
173
|
+
}
|
|
174
|
+
params.set(name, paramValue);
|
|
175
|
+
}
|
|
176
|
+
const required = (name) => {
|
|
177
|
+
const paramValue = params.get(name);
|
|
178
|
+
if (!paramValue) {
|
|
179
|
+
throw new Error(`The ${URL_SCHEME}://join link has no "${name}".`);
|
|
180
|
+
}
|
|
181
|
+
return paramValue;
|
|
182
|
+
};
|
|
183
|
+
const oneOf = (name, paramValue, valid) => {
|
|
184
|
+
if (!valid.includes(paramValue)) {
|
|
185
|
+
throw new Error(`"${paramValue}" is not a valid "${name}" (valid: ${valid.join(', ')}).`);
|
|
186
|
+
}
|
|
187
|
+
return paramValue;
|
|
188
|
+
};
|
|
189
|
+
const optionalOneOf = (name, valid) => params.has(name) ? oneOf(name, required(name), valid) : null;
|
|
190
|
+
const target = required('target');
|
|
191
|
+
const notAnItem = new Error(`"${target}" is not a project item URL of the Idea1 app.`);
|
|
192
|
+
if (!isProjectItemUrl(target)) {
|
|
193
|
+
throw notAnItem;
|
|
194
|
+
}
|
|
195
|
+
const targetUrl = new URL(target);
|
|
196
|
+
if (targetUrl.search || targetUrl.hash || targetUrl.username || targetUrl.password) {
|
|
197
|
+
throw notAnItem;
|
|
198
|
+
}
|
|
199
|
+
const repo = required('repo');
|
|
200
|
+
if (!REPOSITORY_PATTERN.test(repo)) {
|
|
201
|
+
throw new Error(`"${repo}" is not a GitHub repository as owner/name.`);
|
|
202
|
+
}
|
|
203
|
+
const entryPoint = required('entryPoint');
|
|
204
|
+
if (entryPoint !== NO_ENTRY_POINT && !ENTRY_POINT_NAME_PATTERN.test(entryPoint)) {
|
|
205
|
+
throw new Error(`"${entryPoint}" is not an entry point name.`);
|
|
206
|
+
}
|
|
207
|
+
oneOf('app', required('app'), ['desktop']);
|
|
208
|
+
return {
|
|
209
|
+
target,
|
|
210
|
+
repo,
|
|
211
|
+
isolation: oneOf('isolation', required('isolation'), VALID_ISOLATION_MODES),
|
|
212
|
+
entryPoint,
|
|
213
|
+
model: optionalOneOf('model', CLAUDE_MODEL_CHOICES.map(choice => choice.value)),
|
|
214
|
+
effort: optionalOneOf('effort', CLAUDE_EFFORT_LEVELS)
|
|
215
|
+
};
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* Act on an `idea1://` link: open a terminal in the repository's local clone that joins the project
|
|
219
|
+
* item and starts its session in Claude Desktop. A repository the CLI has not run in yet is asked
|
|
220
|
+
* for in the terminal; joining from it records it for the next link.
|
|
221
|
+
*/
|
|
222
|
+
export async function openIdea1Url(value) {
|
|
223
|
+
const request = parseJoinUrl(value);
|
|
224
|
+
const argv = [
|
|
225
|
+
process.execPath, CLI_ENTRY_PATH, 'join-project-item',
|
|
226
|
+
'--target', request.target,
|
|
227
|
+
'--isolation', request.isolation,
|
|
228
|
+
'--claude-entry-point', 'desktop',
|
|
229
|
+
'--entry-point', request.entryPoint,
|
|
230
|
+
...(request.model ? ['--model', request.model] : []),
|
|
231
|
+
...(request.effort ? ['--effort', request.effort] : [])
|
|
232
|
+
];
|
|
233
|
+
const clone = findRepositoryClone(request.repo);
|
|
234
|
+
await osLauncher.openTerminal(clone ? { kind: 'directory', directory: clone } : { kind: 'ask', question: `Where is your local clone of ${request.repo}?` }, argv);
|
|
235
|
+
}
|
|
236
|
+
//# sourceMappingURL=url-handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"url-handler.js","sourceRoot":"","sources":["../../src/services/url-handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { IsolationMode } from '../types/index.js';
|
|
2
2
|
import { type WorkflowState } from '../workflow/data/workflow-states.js';
|
|
3
3
|
/**
|
|
4
4
|
* Run the setup-worktree hook if defined in .idea1/settings.json
|
|
@@ -56,18 +56,6 @@ export declare function extractIntegrationName(fullBranchName: string): Promise<
|
|
|
56
56
|
* Ensure an integration branch exists, creating it from baseBranch if needed
|
|
57
57
|
*/
|
|
58
58
|
export declare function ensureIntegrationBranch(integrationBranchName: string, baseBranchName: string): Promise<void>;
|
|
59
|
-
/**
|
|
60
|
-
* How a project item's implementation session is started on its branch.
|
|
61
|
-
*/
|
|
62
|
-
export interface ImplementationSessionOptions {
|
|
63
|
-
projectItemUrl: string;
|
|
64
|
-
/** The rendered prompt the session starts with. */
|
|
65
|
-
prompt: string;
|
|
66
|
-
permissionMode: ClaudePermissionMode;
|
|
67
|
-
model: ClaudeModel;
|
|
68
|
-
effort: ClaudeEffortLevel;
|
|
69
|
-
claudeEntryPointMode: ClaudeEntryPointMode;
|
|
70
|
-
}
|
|
71
59
|
/**
|
|
72
60
|
* Setup worktree isolation - creates worktree and runs hooks
|
|
73
61
|
*/
|
|
@@ -84,12 +72,6 @@ export declare function ensureBranchEnvironment(isolationMode: IsolationMode, br
|
|
|
84
72
|
workingPath: string;
|
|
85
73
|
created: boolean;
|
|
86
74
|
}>;
|
|
87
|
-
/**
|
|
88
|
-
* Start a project item's implementation session on its branch's working directory per the
|
|
89
|
-
* entry-point mode, then print the directory path and next-step hint. This is the only place the
|
|
90
|
-
* CLI starts a Claude session that writes code.
|
|
91
|
-
*/
|
|
92
|
-
export declare function launchClaudeForBranch(workingPath: string, options: ImplementationSessionOptions): Promise<void>;
|
|
93
75
|
/**
|
|
94
76
|
* Tell the user where the branch is checked out and how to move the workflow on.
|
|
95
77
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worktree.d.ts","sourceRoot":"","sources":["../../src/services/worktree.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"worktree.d.ts","sourceRoot":"","sources":["../../src/services/worktree.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAMvD,OAAO,EAAoB,KAAK,aAAa,EAAE,MAAM,qCAAqC,CAAC;AAE3F;;GAEG;AACH,wBAAsB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAgB1E;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAejF;AAED;;;;;;;GAOG;AACH,wBAAsB,8BAA8B,CAClD,KAAK,EAAE,aAAa,EACpB,UAAU,EAAE,MAAM,EAClB,cAAc,EAAE,MAAM,EACtB,OAAO,EAAE;IAAE,wBAAwB,EAAE,OAAO,CAAA;CAAE,GAC7C,OAAO,CAAC,IAAI,CAAC,CA0Bf;AAyBD;;GAEG;AACH,wBAAsB,mBAAmB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAE7E;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAE/E;AAED;;;;GAIG;AACH,wBAAsB,8BAA8B,IAAI,OAAO,CAAC,MAAM,CAAC,CAEtE;AAgBD;;;GAGG;AACH,wBAAsB,0BAA0B,CAAC,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAMzF;AAED;;;GAGG;AACH,wBAAsB,8BAA8B,CAAC,eAAe,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAOtH;AAED;;GAEG;AACH,wBAAsB,+BAA+B,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAazE;AAED;;GAEG;AACH,wBAAsB,sBAAsB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAmBpF;AAED;;GAEG;AACH,wBAAsB,uBAAuB,CAAC,qBAAqB,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAclH;AAED;;GAEG;AACH,wBAAsB,sBAAsB,CAC1C,cAAc,EAAE,MAAM,EACtB,eAAe,EAAE,MAAM,EACvB,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,MAAM,CAAC,CAajB;AAED;;;;;;;GAOG;AACH,wBAAsB,uBAAuB,CAC3C,aAAa,EAAE,aAAa,EAC5B,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CAgBpD;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAMpE;AAED;;GAEG;AACH,wBAAsB,wBAAwB,CAC5C,eAAe,EAAE,MAAM,EACvB,cAAc,EAAE,MAAM,EACtB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,MAAM,CAAC,CAuBjB"}
|
|
@@ -3,7 +3,6 @@ import { logger } from '../lib/logger.js';
|
|
|
3
3
|
import { execWithOutput, resolveBash } from '../lib/shell.js';
|
|
4
4
|
import { DEFAULT_BRANCH_SETTINGS, getSetupWorktreeHook, getRemoveWorktreeAtState, readBranchSettings } from '../lib/settings.js';
|
|
5
5
|
import * as git from './git.js';
|
|
6
|
-
import * as claude from './claude.js';
|
|
7
6
|
import { isStateAtOrAfter } from '../workflow/data/workflow-states.js';
|
|
8
7
|
/**
|
|
9
8
|
* Run the setup-worktree hook if defined in .idea1/settings.json
|
|
@@ -227,39 +226,6 @@ export async function ensureBranchEnvironment(isolationMode, branchName) {
|
|
|
227
226
|
await runSetupWorktreeHook(worktreePath);
|
|
228
227
|
return { workingPath: worktreePath, created: true };
|
|
229
228
|
}
|
|
230
|
-
/**
|
|
231
|
-
* Start a project item's implementation session on its branch's working directory per the
|
|
232
|
-
* entry-point mode, then print the directory path and next-step hint. This is the only place the
|
|
233
|
-
* CLI starts a Claude session that writes code.
|
|
234
|
-
*/
|
|
235
|
-
export async function launchClaudeForBranch(workingPath, options) {
|
|
236
|
-
if (options.claudeEntryPointMode === 'inline') {
|
|
237
|
-
outputInlinePrompt(options.projectItemUrl, workingPath, options.prompt);
|
|
238
|
-
}
|
|
239
|
-
else if (options.claudeEntryPointMode === 'launch') {
|
|
240
|
-
await claude.runInteractive(options.prompt, {
|
|
241
|
-
cwd: workingPath,
|
|
242
|
-
permissionMode: options.permissionMode,
|
|
243
|
-
model: options.model,
|
|
244
|
-
effort: options.effort
|
|
245
|
-
});
|
|
246
|
-
}
|
|
247
|
-
printWorkingDirectoryHints(workingPath);
|
|
248
|
-
}
|
|
249
|
-
/**
|
|
250
|
-
* Output the entry point prompt as structured output for an already-running Claude session.
|
|
251
|
-
*/
|
|
252
|
-
function outputInlinePrompt(itemUrl, worktreePath, prompt) {
|
|
253
|
-
const output = {
|
|
254
|
-
type: 'idea1-cli-prompt',
|
|
255
|
-
projectItemUrl: itemUrl,
|
|
256
|
-
worktreePath,
|
|
257
|
-
prompt,
|
|
258
|
-
instructions: 'Enter plan mode and implement the project item using the prompt above. The worktree is ready at the specified path.'
|
|
259
|
-
};
|
|
260
|
-
// Output as JSON for Claude to parse from the tool result
|
|
261
|
-
console.log(JSON.stringify(output, null, 2));
|
|
262
|
-
}
|
|
263
229
|
/**
|
|
264
230
|
* Tell the user where the branch is checked out and how to move the workflow on.
|
|
265
231
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worktree.js","sourceRoot":"","sources":["../../src/services/worktree.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,kBAAkB,EAA+B,MAAM,oBAAoB,CAAC;AAC9J,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAChC,OAAO,
|
|
1
|
+
{"version":3,"file":"worktree.js","sourceRoot":"","sources":["../../src/services/worktree.ts"],"names":[],"mappings":"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"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -15,10 +15,16 @@ export interface CommandOption {
|
|
|
15
15
|
description: string;
|
|
16
16
|
/** Boolean flag — never prompted, default false when absent */
|
|
17
17
|
isFlag?: boolean;
|
|
18
|
-
/**
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
18
|
+
/**
|
|
19
|
+
* Static or dynamic default; absence means required. A dynamic default reads the values resolved
|
|
20
|
+
* so far, so it can depend on an option declared earlier.
|
|
21
|
+
*/
|
|
22
|
+
defaultValue?: string | ((resolved: Record<string, string>) => string);
|
|
23
|
+
/**
|
|
24
|
+
* Whether to prompt when a default exists. Default: true. Only relevant when defaultValue is set.
|
|
25
|
+
* A predicate reads the values resolved so far, like `dependsOn`.
|
|
26
|
+
*/
|
|
27
|
+
promptWhenDefaultExists?: boolean | ((resolved: Record<string, string>) => boolean);
|
|
22
28
|
/**
|
|
23
29
|
* Dependency predicate evaluated against the values resolved so far. When it
|
|
24
30
|
* returns false, the option is neither prompted nor required and is left
|
|
@@ -29,8 +35,8 @@ export interface CommandOption {
|
|
|
29
35
|
/**
|
|
30
36
|
* Marks this option as a member of a mutually-exclusive group (by group id).
|
|
31
37
|
* At most one option per group may be supplied. When none is supplied on the
|
|
32
|
-
* CLI, the resolver asks which member to use
|
|
33
|
-
* the other members are left unset.
|
|
38
|
+
* CLI, the resolver asks which applicable member to use when it reaches the
|
|
39
|
+
* group, then prompts only for that one; the other members are left unset.
|
|
34
40
|
*/
|
|
35
41
|
exclusiveGroup?: string;
|
|
36
42
|
/** Selection prompt instead of text input - either an explicit list of choices or a reference to a named list that is resolved at runtime (see cli/named-lists.ts) */
|
|
@@ -81,10 +87,14 @@ export interface HookConfig {
|
|
|
81
87
|
*/
|
|
82
88
|
export type Hook = string | HookConfig;
|
|
83
89
|
/**
|
|
84
|
-
* A prompt
|
|
90
|
+
* A named entry point prompt in `.idea1` settings: the Handlebars template itself, or the file that
|
|
91
|
+
* holds it, relative to the repo root.
|
|
85
92
|
*/
|
|
86
|
-
export type
|
|
87
|
-
|
|
93
|
+
export type EntryPointPromptSetting = {
|
|
94
|
+
name: string;
|
|
95
|
+
template: string;
|
|
96
|
+
} | {
|
|
97
|
+
name: string;
|
|
88
98
|
templateFile: string;
|
|
89
99
|
};
|
|
90
100
|
/**
|
|
@@ -106,8 +116,11 @@ export interface Idea1Settings {
|
|
|
106
116
|
'setup-worktree'?: Hook;
|
|
107
117
|
};
|
|
108
118
|
prompts?: {
|
|
109
|
-
/**
|
|
110
|
-
|
|
119
|
+
/**
|
|
120
|
+
* The entry point prompts an agent session can start with, by workflow state name. A state's
|
|
121
|
+
* entries replace that state's built-in defaults.
|
|
122
|
+
*/
|
|
123
|
+
entryPoints?: Record<string, EntryPointPromptSetting[]>;
|
|
111
124
|
};
|
|
112
125
|
defaults?: {
|
|
113
126
|
branchPrefix?: string;
|
|
@@ -132,25 +145,14 @@ export interface Idea1Settings {
|
|
|
132
145
|
versionedPackages?: VersionedPackage[];
|
|
133
146
|
};
|
|
134
147
|
}
|
|
135
|
-
/**
|
|
136
|
-
* Valid Claude permission modes
|
|
137
|
-
*/
|
|
138
|
-
export type ClaudePermissionMode = 'acceptEdits' | 'bypassPermissions' | 'default' | 'delegate' | 'dontAsk' | 'plan';
|
|
139
|
-
/**
|
|
140
|
-
* Valid Claude effort levels (matches the /effort command options).
|
|
141
|
-
*/
|
|
142
|
-
export type ClaudeEffortLevel = 'low' | 'medium' | 'high' | 'xhigh' | 'max';
|
|
143
|
-
/**
|
|
144
|
-
* Valid Claude model aliases (matches the /model command options), passed to claude via --model.
|
|
145
|
-
*/
|
|
146
|
-
export type ClaudeModel = 'fable' | 'opus' | 'sonnet' | 'haiku';
|
|
147
148
|
/**
|
|
148
149
|
* How Claude is invoked after setup completes.
|
|
149
|
-
* - 'launch': Launch a new Claude
|
|
150
|
+
* - 'launch': Launch a new Claude session in this terminal with the prompt
|
|
151
|
+
* - 'desktop': Start the session in Claude Desktop
|
|
150
152
|
* - 'inline': Output the prompt as structured output for an already-running Claude session
|
|
151
153
|
* - 'none': Do not invoke Claude
|
|
152
154
|
*/
|
|
153
|
-
export type ClaudeEntryPointMode = 'launch' | 'inline' | 'none';
|
|
155
|
+
export type ClaudeEntryPointMode = 'launch' | 'desktop' | 'inline' | 'none';
|
|
154
156
|
/**
|
|
155
157
|
* Where work on a branch happens.
|
|
156
158
|
* - 'worktree': a dedicated git worktree in a sibling directory (isolated)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AAEzE;;;;;;GAMG;AACH,MAAM,WAAW,aAAa;IAC5B,oFAAoF;IACpF,QAAQ,EAAE,MAAM,CAAC;IACjB,sDAAsD;IACtD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4CAA4C;IAC5C,WAAW,EAAE,MAAM,CAAC;IACpB,+DAA+D;IAC/D,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,6 +16,10 @@ export interface ProjectItemSummary {
|
|
|
16
16
|
completionDate: string | null;
|
|
17
17
|
/** A status the item had outside the workflow states, kept for reference; empty when it had none. */
|
|
18
18
|
legacyWorkflowStatus: string;
|
|
19
|
+
/** The Project the item is planned in; null for an item out of scope, which has no assignee. */
|
|
20
|
+
projectId: string | null;
|
|
21
|
+
/** The teammate the item is assigned to; null when it is unassigned or out of scope. */
|
|
22
|
+
assignedToUserId: string | null;
|
|
19
23
|
workflowContext: WorkflowContext | null;
|
|
20
24
|
}
|
|
21
25
|
//# sourceMappingURL=project-item.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-item.d.ts","sourceRoot":"","sources":["../../../src/workflow/data/project-item.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE7D;;;;;;;GAOG;AACH,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,wDAAwD;IACxD,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,qGAAqG;IACrG,oBAAoB,EAAE,MAAM,CAAC;IAC7B,eAAe,EAAE,eAAe,GAAG,IAAI,CAAC;CACzC"}
|
|
1
|
+
{"version":3,"file":"project-item.d.ts","sourceRoot":"","sources":["../../../src/workflow/data/project-item.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE7D;;;;;;;GAOG;AACH,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,wDAAwD;IACxD,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,qGAAqG;IACrG,oBAAoB,EAAE,MAAM,CAAC;IAC7B,gGAAgG;IAChG,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,wFAAwF;IACxF,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,eAAe,EAAE,eAAe,GAAG,IAAI,CAAC;CACzC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A member of the team, as the platform lists them: the teammate a project item can be assigned
|
|
3
|
+
* to. `gitHubUsername` is the member's linked GitHub account, null when none is linked; a member
|
|
4
|
+
* can only be assigned a pull request through a linked account.
|
|
5
|
+
*
|
|
6
|
+
* Mirrors the platform's `list_team_members` entry.
|
|
7
|
+
*/
|
|
8
|
+
export interface TeamMember {
|
|
9
|
+
userId: string;
|
|
10
|
+
email: string;
|
|
11
|
+
role: string;
|
|
12
|
+
gitHubUsername: string | null;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=team-member.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"team-member.d.ts","sourceRoot":"","sources":["../../../src/workflow/data/team-member.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"team-member.js","sourceRoot":"","sources":["../../../src/workflow/data/team-member.ts"],"names":[],"mappings":""}
|
|
@@ -22,7 +22,7 @@ export declare enum WorkflowBranchState {
|
|
|
22
22
|
* `baseBranch`. A context whose branch is no longer live keeps the branch fields as the record of
|
|
23
23
|
* where the work was, and `branchState` says why the branch is not live.
|
|
24
24
|
*
|
|
25
|
-
* Mirrors the platform's `WorkflowContext
|
|
25
|
+
* Mirrors the platform's `WorkflowContext` in the fields the CLI reads.
|
|
26
26
|
*/
|
|
27
27
|
export interface WorkflowContext {
|
|
28
28
|
/** The item's workflow state as stored; always a canonical state name. */
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { type WorkflowState } from './workflow-states.generated.js';
|
|
1
|
+
import { type WorkflowAssignmentRequirement, type WorkflowState } from './workflow-states.generated.js';
|
|
2
2
|
export { WORKFLOW_STATES, WorkflowStates, LEGACY_WORKFLOW_STATE_ALIASES } from './workflow-states.generated.js';
|
|
3
|
-
export type { WorkflowState } from './workflow-states.generated.js';
|
|
3
|
+
export type { WorkflowAssignmentRequirement, WorkflowState } from './workflow-states.generated.js';
|
|
4
4
|
/**
|
|
5
5
|
* Workflow states in the order they are reached
|
|
6
6
|
*/
|
|
@@ -27,4 +27,13 @@ export declare function getWorkflowStatesBetween(from: WorkflowState | null, to:
|
|
|
27
27
|
* Whether a workflow state is the target state or a later one in the sequence
|
|
28
28
|
*/
|
|
29
29
|
export declare function isStateAtOrAfter(state: WorkflowState, targetState: WorkflowState): boolean;
|
|
30
|
+
/**
|
|
31
|
+
* Whether entering a state takes a teammate assignment for the item.
|
|
32
|
+
*/
|
|
33
|
+
export declare function getStateAssignmentRequirement(state: WorkflowState): WorkflowAssignmentRequirement;
|
|
34
|
+
/**
|
|
35
|
+
* Whether moving from `from` to `to` takes a teammate assignment: the strongest requirement among the
|
|
36
|
+
* states entered on the way. Moving back or staying takes none.
|
|
37
|
+
*/
|
|
38
|
+
export declare function getAssignmentRequirement(from: WorkflowState | null, to: WorkflowState): WorkflowAssignmentRequirement;
|
|
30
39
|
//# sourceMappingURL=workflow-states.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow-states.d.ts","sourceRoot":"","sources":["../../../src/workflow/data/workflow-states.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"workflow-states.d.ts","sourceRoot":"","sources":["../../../src/workflow/data/workflow-states.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,6BAA6B,EAClC,KAAK,aAAa,EACnB,MAAM,gCAAgC,CAAC;AAExC,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,6BAA6B,EAAE,MAAM,gCAAgC,CAAC;AAChH,YAAY,EAAE,6BAA6B,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAEnG;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,SAAS,aAAa,EAAoB,CAAC;AAE9E;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,aAAa,GAAG,IAAI,CAiB3F;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,GAAG,aAAa,GAAG,IAAI,CAStF;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,aAAa,GAAG,IAAI,EAAE,EAAE,EAAE,aAAa,GAAG,aAAa,EAAE,CASvG;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,GAAG,OAAO,CAE1F;AAED;;GAEG;AACH,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,aAAa,GAAG,6BAA6B,CAEjG;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,aAAa,GAAG,IAAI,EAAE,EAAE,EAAE,aAAa,GAAG,6BAA6B,CAUrH"}
|
|
@@ -18,4 +18,21 @@ export declare const WorkflowStates: {
|
|
|
18
18
|
* current equivalents. Keys are lowercase; compare case-insensitively.
|
|
19
19
|
*/
|
|
20
20
|
export declare const LEGACY_WORKFLOW_STATE_ALIASES: Readonly<Record<string, WorkflowState>>;
|
|
21
|
+
/** A named Handlebars prompt template an agent session can start with. */
|
|
22
|
+
export interface EntryPointPrompt {
|
|
23
|
+
name: string;
|
|
24
|
+
template: string;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* The entry point prompts an agent session can start with in each workflow state, used for a
|
|
28
|
+
* state the repository's .idea1/settings.json configures no entry points for.
|
|
29
|
+
*/
|
|
30
|
+
export declare const DEFAULT_ENTRY_POINTS: Readonly<Record<WorkflowState, readonly EntryPointPrompt[]>>;
|
|
31
|
+
/**
|
|
32
|
+
* Whether a workflow transition takes a teammate assignment for the item it moves: none, optional (choosing
|
|
33
|
+
* none keeps the current assignee), or required (the item must have an assignee once the transition is done).
|
|
34
|
+
*/
|
|
35
|
+
export type WorkflowAssignmentRequirement = 'none' | 'optional' | 'required';
|
|
36
|
+
/** Whether entering a state takes a teammate assignment for the item; a state not listed takes none. */
|
|
37
|
+
export declare const WORKFLOW_ASSIGNMENT_ON_ENTRY: Readonly<Partial<Record<WorkflowState, Exclude<WorkflowAssignmentRequirement, 'none'>>>>;
|
|
21
38
|
//# sourceMappingURL=workflow-states.generated.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow-states.generated.d.ts","sourceRoot":"","sources":["../../../src/workflow/data/workflow-states.generated.ts"],"names":[],"mappings":"AAEA,+CAA+C;AAC/C,eAAO,MAAM,eAAe,gPAUlB,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC;AAE7D,8CAA8C;AAC9C,eAAO,MAAM,cAAc;;;;;;;;;;CAUjB,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,6BAA6B,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAGjF,CAAC"}
|
|
1
|
+
{"version":3,"file":"workflow-states.generated.d.ts","sourceRoot":"","sources":["../../../src/workflow/data/workflow-states.generated.ts"],"names":[],"mappings":"AAEA,+CAA+C;AAC/C,eAAO,MAAM,eAAe,gPAUlB,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC;AAE7D,8CAA8C;AAC9C,eAAO,MAAM,cAAc;;;;;;;;;;CAUjB,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,6BAA6B,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAGjF,CAAC;AAEF,0EAA0E;AAC1E,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;GAGG;AACH,eAAO,MAAM,oBAAoB,EAAE,QAAQ,CAAC,MAAM,CAAC,aAAa,EAAE,SAAS,gBAAgB,EAAE,CAAC,CA6B7F,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,6BAA6B,GAAG,MAAM,GAAG,UAAU,GAAG,UAAU,CAAC;AAE7E,wGAAwG;AACxG,eAAO,MAAM,4BAA4B,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,6BAA6B,EAAE,MAAM,CAAC,CAAC,CAAC,CAKjI,CAAC"}
|