@idea1/cli 1.7.3 → 1.7.6

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 CHANGED
@@ -305,9 +305,10 @@ idea1 r
305
305
 
306
306
  **What it does:**
307
307
  1. Requires you to be on the release branch with nothing uncommitted, unpushed or behind origin, then runs the `pre-release` hook (the version bumps). The hook runs before the PR is opened, so its commit is the PR's head and the suite runs once, on the release as it will merge
308
- 2. Creates the release PR assigned to you, whose body is the release's approval chain: every contained PR — attributed by GitHub's commit association, so squash and rebase merges are covered — with its author and the assignee who approved it by merging; any commit that reached the branch without a PR is listed separately (the version bump is the one expected entry). A release that carries no approved PR is refused
309
- 3. In `merge` mode, waits for the required CI/CD checks and merges normally. Checks that fail, never start or never finish stop the release; an admin override is available but takes an explicit confirmation and a required reason, and the exception is recorded as a comment on the PR before anything is merged
310
- 4. Opens GitHub Actions, where the merge to `main` has triggered the production deploy
308
+ 2. Creates the release PR assigned to you, whose body is the release's approval chain: every contained PR — attributed by GitHub's commit association, so squash and rebase merges are covered — with its author and the assignee who approved it by merging. Commits with no PR are listed separately, split in two: the `pre-release` hook's version bumps, which are release automation and not an exception, and genuine direct commits, which are
309
+ 3. Refuses the release when nothing in it came through a merged PR. A repository admin can override that — an explicit confirmation and a required reason — and the exception is recorded as a comment on the PR naming the admin, the reason and every commit that had no PR, as well as in the PR body. Anyone who is not a repository admin just gets the refusal
310
+ 4. In `merge` mode, waits for the required CI/CD checks and merges normally. Checks that fail, never start or never finish stop the release; an admin override is available but takes an explicit confirmation and a required reason, and the exception is recorded as a comment on the PR before anything is merged
311
+ 5. Opens GitHub Actions, where the merge to `main` has triggered the production deploy
311
312
 
312
313
  ## Configuration
313
314
 
@@ -315,10 +316,13 @@ idea1 r
315
316
 
316
317
  Settings are resolved in order of priority:
317
318
  1. **CLI argument** (highest priority)
318
- 2. **User-level XDG config** (`~/.config/idea1-cli/config.json`)
319
- 3. **Repository-level `.idea1/settings.local.json`** (git-ignored, per-clone overrides)
320
- 4. **Repository-level `.idea1/settings.json`**
321
- 5. **Hardcoded defaults** (lowest priority)
319
+ 2. **Repository-level `.idea1/settings.local.json`** (git-ignored, per-clone overrides)
320
+ 3. **Repository-level `.idea1/settings.json`**
321
+ 4. **Hardcoded defaults** (lowest priority)
322
+
323
+ Branch names come only from the repository being worked in — nothing machine-global
324
+ sits above its `.idea1/settings.json`, so a repo that branches onto `draft` keeps
325
+ branching onto `draft` whatever other repos on the machine use.
322
326
 
323
327
  ### Repository Settings
324
328
 
@@ -386,10 +390,11 @@ User settings are stored in the XDG-compliant config directory:
386
390
  - Windows: `%APPDATA%/idea1-cli/`
387
391
 
388
392
  Settings include:
389
- - `defaultBaseBranch` - Default base branch (default: `working/release`)
390
- - `defaultBranchPrefix` - Default branch prefix (default: `working/agent`)
391
393
  - `defaultIsolationMode` - Default isolation mode (default: `worktree`)
392
394
 
395
+ Branch names are not user settings: they belong to the repository and are read from
396
+ its `.idea1/settings.json`.
397
+
393
398
  ## Requirements
394
399
 
395
400
  - Node.js 20+
@@ -0,0 +1,27 @@
1
+ import type { Command, ClaudePermissionMode, ClaudeEffortLevel } from '../types/index.js';
2
+ export declare const VALID_PERMISSION_MODES: ClaudePermissionMode[];
3
+ export declare const VALID_EFFORT_LEVELS: ClaudeEffortLevel[];
4
+ export declare const WORKFLOW_CHOICES: {
5
+ label: string;
6
+ value: string;
7
+ }[];
8
+ export interface IntegrationBranchSelection {
9
+ integrationName: string;
10
+ integrationBranchName: string;
11
+ isNew: boolean;
12
+ }
13
+ /**
14
+ * Prompt the user whether to stack this branch on another and resolve the
15
+ * chosen stack branch. Prompt-only: performs no branch writes. Returns the
16
+ * resolved stack branch name, or null when the user opts not to stack.
17
+ * Shared by start-project-item and attach-project-item.
18
+ */
19
+ export declare function promptForStackBranch(): Promise<string | null>;
20
+ /**
21
+ * Prompt the user for integration-branch selection. Prompt-only: does not
22
+ * perform any branch writes. Must be invoked before setWorkflowStatus so the
23
+ * user completes all setup questions up front.
24
+ */
25
+ export declare function promptForIntegrationBranch(): Promise<IntegrationBranchSelection>;
26
+ export declare const startProjectItemCommand: Command;
27
+ //# sourceMappingURL=start-project-item.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"start-project-item.d.ts","sourceRoot":"","sources":["../../src/commands/start-project-item.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,oBAAoB,EAAwB,iBAAiB,EAAkC,MAAM,mBAAmB,CAAC;AAUhJ,eAAO,MAAM,sBAAsB,EAAE,oBAAoB,EAAmF,CAAC;AAE7I,eAAO,MAAM,mBAAmB,EAAE,iBAAiB,EAA8C,CAAC;AAQlG,eAAO,MAAM,gBAAgB;;;GAG5B,CAAC;AAkBF,MAAM,WAAW,0BAA0B;IACzC,eAAe,EAAE,MAAM,CAAC;IACxB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,KAAK,EAAE,OAAO,CAAC;CAChB;AAED;;;;;GAKG;AACH,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA6BnE;AAED;;;;GAIG;AACH,wBAAsB,0BAA0B,IAAI,OAAO,CAAC,0BAA0B,CAAC,CAoBtF;AAED,eAAO,MAAM,uBAAuB,EAAE,OAqLrC,CAAC"}
@@ -0,0 +1,325 @@
1
+ import { logger } from '../lib/logger.js';
2
+ import { promptInput, promptSelect } from '../lib/prompt.js';
3
+ import { isolationModeOption, resolveIsolationMode } from '../lib/isolation.js';
4
+ import * as git from '../services/git.js';
5
+ import * as claude from '../services/claude.js';
6
+ import * as worktree from '../services/worktree.js';
7
+ import { configService } from '../services/config.js';
8
+ import { isProjectItemUrl, validateProjectItemUrl } from '../lib/project-item-url.js';
9
+ export const VALID_PERMISSION_MODES = ['acceptEdits', 'bypassPermissions', 'default', 'delegate', 'dontAsk', 'plan'];
10
+ const VALID_ENTRY_POINT_MODES = ['launch', 'inline', 'none'];
11
+ export const VALID_EFFORT_LEVELS = ['low', 'medium', 'high', 'xhigh', 'max'];
12
+ const ENTRY_POINT_MODE_CHOICES = [
13
+ { label: 'Launch new Claude session', value: 'launch' },
14
+ { label: 'Output prompt for current Claude session', value: 'inline' },
15
+ { label: 'Do not invoke Claude', value: 'none' }
16
+ ];
17
+ export const WORKFLOW_CHOICES = [
18
+ { label: 'Independent Feature', value: 'independent' },
19
+ { label: 'Work for Integration', value: 'integration' }
20
+ ];
21
+ const IMPLEMENT_AFTER_CREATE_CHOICES = [
22
+ { label: 'Start implementing now', value: 'yes' },
23
+ { label: 'Just set up the branch and automation (stop before Claude)', value: 'no' }
24
+ ];
25
+ const STACK_CHOICES = [
26
+ { label: 'No', value: 'no' },
27
+ { label: 'Yes - specify a branch', value: 'branch' },
28
+ { label: 'Yes - specify a project item URL', value: 'url' }
29
+ ];
30
+ const INTEGRATION_BRANCH_CHOICES = [
31
+ { label: 'Create new integration branch', value: 'new' },
32
+ { label: 'Use existing integration branch', value: 'existing' }
33
+ ];
34
+ /**
35
+ * Prompt the user whether to stack this branch on another and resolve the
36
+ * chosen stack branch. Prompt-only: performs no branch writes. Returns the
37
+ * resolved stack branch name, or null when the user opts not to stack.
38
+ * Shared by start-project-item and attach-project-item.
39
+ */
40
+ export async function promptForStackBranch() {
41
+ const stackChoice = await promptSelect('Stack this branch on another?', STACK_CHOICES);
42
+ if (stackChoice === 'branch') {
43
+ const stackBranch = await promptInput('Branch to stack on');
44
+ if (!stackBranch) {
45
+ throw new Error('Stack branch is required when stacking');
46
+ }
47
+ const stackExists = await git.branchExists(stackBranch);
48
+ if (!stackExists) {
49
+ throw new Error(`Stack branch '${stackBranch}' does not exist locally or on origin`);
50
+ }
51
+ return stackBranch;
52
+ }
53
+ if (stackChoice === 'url') {
54
+ const stackUrl = await promptInput('Project item URL to stack on');
55
+ if (!stackUrl) {
56
+ throw new Error('Project item URL is required when stacking by URL');
57
+ }
58
+ const stackBranch = await git.resolveBranchFromProjectItemUrl(stackUrl);
59
+ if (!stackBranch) {
60
+ throw new Error(`No branch found for project item URL: ${stackUrl}. Make sure the project item has been started.`);
61
+ }
62
+ logger.info(`Resolved stack branch: ${stackBranch}`);
63
+ return stackBranch;
64
+ }
65
+ return null;
66
+ }
67
+ /**
68
+ * Prompt the user for integration-branch selection. Prompt-only: does not
69
+ * perform any branch writes. Must be invoked before setWorkflowStatus so the
70
+ * user completes all setup questions up front.
71
+ */
72
+ export async function promptForIntegrationBranch() {
73
+ const existingBranches = await worktree.listExistingIntegrationBranches();
74
+ const branchChoice = existingBranches.length > 0
75
+ ? await promptSelect('Integration branch', INTEGRATION_BRANCH_CHOICES)
76
+ : 'new';
77
+ if (branchChoice === 'existing') {
78
+ const branchChoices = existingBranches.map(b => ({ label: b, value: b }));
79
+ const integrationBranchName = await promptSelect('Select integration branch', branchChoices);
80
+ const integrationName = await worktree.extractIntegrationName(integrationBranchName);
81
+ return { integrationName, integrationBranchName, isNew: false };
82
+ }
83
+ const integrationName = await promptInput('Integration name (e.g., my-cool-feature)');
84
+ if (!integrationName) {
85
+ throw new Error('Integration name is required');
86
+ }
87
+ const integrationBranchName = await worktree.buildIntegrationBranchName(integrationName);
88
+ return { integrationName, integrationBranchName, isNew: true };
89
+ }
90
+ export const startProjectItemCommand = {
91
+ name: 'start-project-item',
92
+ aliases: ['s', 'start'],
93
+ description: 'Start implementing a project item on a new branch, in a worktree or the main repo',
94
+ options: [
95
+ {
96
+ // Declared first so it's the very first thing prompted, before every
97
+ // other choice — later choices depend on whether it was provided.
98
+ longName: 'url',
99
+ description: 'Project item URL (leave blank to create a new item)',
100
+ defaultValue: '',
101
+ promptWhenDefaultExists: true,
102
+ // Allow blank (signals "create a new item"); validate format otherwise.
103
+ validate: (value) => (value ? validateProjectItemUrl(value) : undefined)
104
+ },
105
+ {
106
+ // Only prompted (and required) when no URL was given, i.e. the user is
107
+ // creating a new item. Declared after 'url' so it can read its value.
108
+ longName: 'title',
109
+ shortName: 't',
110
+ description: 'Title for the new project item',
111
+ dependsOn: (resolved) => !resolved['url'],
112
+ validate: (value) => value.trim() ? undefined : 'A title is required to create a project item'
113
+ },
114
+ {
115
+ // Only relevant when creating a new item. Declared after 'title' so it's
116
+ // asked once the item to create is named.
117
+ longName: 'implement-after-create',
118
+ shortName: 'ic',
119
+ description: 'After creating the new item, start implementing it now or just set up the branch?',
120
+ choices: IMPLEMENT_AFTER_CREATE_CHOICES,
121
+ dependsOn: (resolved) => !resolved['url'],
122
+ validate: (value) => value === 'yes' || value === 'no' ? undefined : 'Choose whether to start implementing'
123
+ },
124
+ {
125
+ longName: 'branch-name',
126
+ shortName: 'n',
127
+ description: 'Branch name (auto-generated if not provided)',
128
+ defaultValue: undefined,
129
+ promptWhenDefaultExists: true
130
+ },
131
+ {
132
+ longName: 'source-path',
133
+ shortName: 'p',
134
+ description: 'Path to source directory',
135
+ defaultValue: '',
136
+ promptWhenDefaultExists: false
137
+ },
138
+ {
139
+ longName: 'base-branch',
140
+ shortName: 'b',
141
+ description: 'Base branch',
142
+ defaultValue: () => configService.getDefaultBaseBranch(),
143
+ promptWhenDefaultExists: false
144
+ },
145
+ {
146
+ longName: 'permission-mode',
147
+ shortName: 'pm',
148
+ description: 'Claude permission mode',
149
+ defaultValue: 'plan',
150
+ promptWhenDefaultExists: true,
151
+ choices: VALID_PERMISSION_MODES.map(m => ({ label: m, value: m })),
152
+ validate: (value) => {
153
+ if (!VALID_PERMISSION_MODES.includes(value)) {
154
+ return `Must be one of: ${VALID_PERMISSION_MODES.join(', ')}`;
155
+ }
156
+ return undefined;
157
+ }
158
+ },
159
+ {
160
+ longName: 'workflow-type',
161
+ shortName: 'w',
162
+ description: 'Development workflow type',
163
+ defaultValue: undefined,
164
+ choices: WORKFLOW_CHOICES
165
+ },
166
+ isolationModeOption,
167
+ {
168
+ longName: 'effort',
169
+ shortName: 'e',
170
+ description: 'Claude effort level (reasoning depth)',
171
+ defaultValue: 'high',
172
+ promptWhenDefaultExists: true,
173
+ choices: VALID_EFFORT_LEVELS.map(l => ({ label: l, value: l })),
174
+ validate: (value) => {
175
+ if (!VALID_EFFORT_LEVELS.includes(value)) {
176
+ return `Must be one of: ${VALID_EFFORT_LEVELS.join(', ')}`;
177
+ }
178
+ return undefined;
179
+ }
180
+ },
181
+ {
182
+ longName: 'claude-entry-point',
183
+ shortName: 'im',
184
+ description: 'How to invoke Claude after setup',
185
+ defaultValue: 'launch',
186
+ promptWhenDefaultExists: false,
187
+ choices: ENTRY_POINT_MODE_CHOICES,
188
+ validate: (value) => {
189
+ if (!VALID_ENTRY_POINT_MODES.includes(value)) {
190
+ return `Must be one of: ${VALID_ENTRY_POINT_MODES.join(', ')}`;
191
+ }
192
+ return undefined;
193
+ }
194
+ }
195
+ ],
196
+ async execute(resolved) {
197
+ let projectItemUrl = resolved['url'];
198
+ const sourcePath = resolved['source-path'];
199
+ const baseBranch = resolved['base-branch'];
200
+ const permissionMode = resolved['permission-mode'];
201
+ const effort = (resolved['effort'] ?? 'high');
202
+ const workflowType = (resolved['workflow-type'] ?? 'independent');
203
+ const isolationMode = resolveIsolationMode(resolved);
204
+ let claudeEntryPointMode = (resolved['claude-entry-point'] ?? 'launch');
205
+ let shortBranchName = resolved['branch-name'] || undefined;
206
+ // Navigate to source path if provided
207
+ if (sourcePath) {
208
+ process.chdir(sourcePath);
209
+ }
210
+ // The URL is resolved up front (asked before any other choice). A blank
211
+ // value means the user wants to create a brand new item here; in that case
212
+ // the dependent 'title' and 'implement-after-create' options were also
213
+ // prompted and required.
214
+ if (!projectItemUrl) {
215
+ projectItemUrl = await claude.createProjectItem(resolved['title'].trim());
216
+ if (resolved['implement-after-create'] === 'no') {
217
+ // Stop before invoking Claude: set up the branch and all automation,
218
+ // but don't launch the implementation session.
219
+ claudeEntryPointMode = 'none';
220
+ }
221
+ }
222
+ // Validate URL format
223
+ if (!isProjectItemUrl(projectItemUrl)) {
224
+ logger.warning('URL does not appear to be an idea1.ai project item URL');
225
+ }
226
+ // Prompt for stack option (before MCP calls so all user questions are asked first)
227
+ const stackBranch = await promptForStackBranch();
228
+ // Collect integration-branch answers before the slow workflow status update,
229
+ // so every setup question is asked up front.
230
+ let integrationSelection = null;
231
+ if (workflowType === 'integration') {
232
+ integrationSelection = await promptForIntegrationBranch();
233
+ }
234
+ // Set workflow status to "Agent Implementation"
235
+ await claude.setWorkflowStatus(projectItemUrl, 'Agent Implementation');
236
+ // Generate branch name if not provided
237
+ if (!shortBranchName) {
238
+ shortBranchName = await claude.generateBranchName(projectItemUrl);
239
+ }
240
+ logger.info(`Using branch name: ${shortBranchName}`);
241
+ if (!shortBranchName) {
242
+ throw new Error('Failed to generate a branch name');
243
+ }
244
+ if (stackBranch) {
245
+ await git.ensureStackBranchReady(stackBranch);
246
+ }
247
+ if (workflowType === 'independent') {
248
+ await startIndependentFeature(projectItemUrl, shortBranchName, baseBranch, permissionMode, effort, claudeEntryPointMode, stackBranch, isolationMode);
249
+ }
250
+ else {
251
+ if (!integrationSelection) {
252
+ throw new Error('Integration selection was not collected');
253
+ }
254
+ await startWorkForIntegration(projectItemUrl, shortBranchName, baseBranch, permissionMode, effort, claudeEntryPointMode, stackBranch, integrationSelection, isolationMode);
255
+ }
256
+ }
257
+ };
258
+ /**
259
+ * Start an Independent Feature workflow
260
+ */
261
+ async function startIndependentFeature(projectItemUrl, shortBranchName, baseBranch, permissionMode, effort, claudeEntryPointMode, stackBranch, isolationMode) {
262
+ logger.section('Independent Feature Workflow');
263
+ // Resolve branch prefix
264
+ const branchPrefix = await worktree.resolveBranchPrefix();
265
+ // Determine which branch to base off of
266
+ const sourceBranch = stackBranch ?? baseBranch;
267
+ // PR always targets baseBranch for independent features
268
+ const prTargetBranch = baseBranch;
269
+ const fullBranchName = `${branchPrefix}/${shortBranchName}`;
270
+ if (stackBranch) {
271
+ logger.info(`Stacked workflow: branching from ${stackBranch}, PR will target ${baseBranch}`);
272
+ }
273
+ // Prepare branch
274
+ await worktree.prepareBranchForWorktreeWithFullName(fullBranchName, shortBranchName, sourceBranch, prTargetBranch);
275
+ // Store workflow state in git config
276
+ await git.storeWorkflowState('Agent Implementation', fullBranchName);
277
+ await git.storeDevWorkflowType('independent', fullBranchName);
278
+ if (stackBranch) {
279
+ await git.storeStackBranch(stackBranch, fullBranchName);
280
+ }
281
+ await worktree.setupBranchEnvironment(isolationMode, fullBranchName, shortBranchName, prTargetBranch, {
282
+ projectItemUrl,
283
+ permissionMode,
284
+ effort,
285
+ claudeEntryPointMode
286
+ });
287
+ }
288
+ /**
289
+ * Start a Work for Integration workflow
290
+ */
291
+ async function startWorkForIntegration(projectItemUrl, shortBranchName, baseBranch, permissionMode, effort, claudeEntryPointMode, stackBranch, integrationSelection, isolationMode) {
292
+ logger.section('Work for Integration Workflow');
293
+ const { integrationName, integrationBranchName, isNew } = integrationSelection;
294
+ if (isNew) {
295
+ // Create the integration branch from baseBranch if it doesn't exist.
296
+ // Runs after setWorkflowStatus so the slow remote write is not blocking user prompts.
297
+ await worktree.ensureIntegrationBranch(integrationBranchName, baseBranch);
298
+ }
299
+ logger.info(`Integration branch: ${integrationBranchName}`);
300
+ // For integration workflow, the integration branch acts as the base for PRs
301
+ const prTargetBranch = integrationBranchName;
302
+ // Determine which branch to base off of
303
+ const sourceBranch = stackBranch ?? integrationBranchName;
304
+ // Build the full work branch name using integration template
305
+ const fullBranchName = await worktree.buildIntegrationWorkBranchName(integrationName, shortBranchName);
306
+ if (stackBranch) {
307
+ logger.info(`Stacked workflow: branching from ${stackBranch}, PR will target ${integrationBranchName}`);
308
+ }
309
+ // Prepare branch
310
+ await worktree.prepareBranchForWorktreeWithFullName(fullBranchName, shortBranchName, sourceBranch, prTargetBranch);
311
+ // Store workflow state in git config
312
+ await git.storeWorkflowState('Agent Implementation', fullBranchName);
313
+ await git.storeDevWorkflowType('integration', fullBranchName);
314
+ await git.storeIntegrationBranch(integrationBranchName, fullBranchName);
315
+ if (stackBranch) {
316
+ await git.storeStackBranch(stackBranch, fullBranchName);
317
+ }
318
+ await worktree.setupBranchEnvironment(isolationMode, fullBranchName, shortBranchName, prTargetBranch, {
319
+ projectItemUrl,
320
+ permissionMode,
321
+ effort,
322
+ claudeEntryPointMode
323
+ });
324
+ }
325
+ //# sourceMappingURL=start-project-item.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"start-project-item.js","sourceRoot":"","sources":["../../src/commands/start-project-item.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
File without changes
@@ -1,21 +1,5 @@
1
1
  import type { IsolationMode } from '../types/index.js';
2
2
  export declare const configService: {
3
- /**
4
- * Get the default base branch
5
- */
6
- getDefaultBaseBranch(): string | undefined;
7
- /**
8
- * Set the default base branch
9
- */
10
- setDefaultBaseBranch(branch: string): void;
11
- /**
12
- * Get the default branch prefix
13
- */
14
- getDefaultBranchPrefix(): string | undefined;
15
- /**
16
- * Set the default branch prefix
17
- */
18
- setDefaultBranchPrefix(prefix: string): void;
19
3
  /**
20
4
  * Get the default isolation mode. Any value stored by an older CLI version
21
5
  * that is no longer a valid mode falls back to 'worktree'.
@@ -25,14 +9,6 @@ export declare const configService: {
25
9
  * Set the default isolation mode
26
10
  */
27
11
  setDefaultIsolationMode(mode: IsolationMode): void;
28
- /**
29
- * Get the default integration branch prefix
30
- */
31
- getDefaultIntegrationBranchPrefix(): string | undefined;
32
- /**
33
- * Set the default integration branch prefix
34
- */
35
- setDefaultIntegrationBranchPrefix(prefix: string): void;
36
12
  /**
37
13
  * Get the last used project item URL
38
14
  */
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/services/config.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AA0BvD,eAAO,MAAM,aAAa;IACxB;;OAEG;4BACqB,MAAM,GAAG,SAAS;IAI1C;;OAEG;iCAC0B,MAAM,GAAG,IAAI;IAI1C;;OAEG;8BACuB,MAAM,GAAG,SAAS;IAI5C;;OAEG;mCAC4B,MAAM,GAAG,IAAI;IAI5C;;;OAGG;+BACwB,aAAa;IAKxC;;OAEG;kCAC2B,aAAa,GAAG,IAAI;IAIlD;;OAEG;yCACkC,MAAM,GAAG,SAAS;IAIvD;;OAEG;8CACuC,MAAM,GAAG,IAAI;IAIvD;;OAEG;iCAC0B,MAAM,GAAG,SAAS;IAI/C;;OAEG;mCAC4B,MAAM,GAAG,IAAI;IAI5C;;OAEG;qBACc,MAAM;IAIvB;;OAEG;aACM,IAAI;CAGd,CAAC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/services/config.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAwBvD,eAAO,MAAM,aAAa;IACxB;;;OAGG;+BACwB,aAAa;IAKxC;;OAEG;kCAC2B,aAAa,GAAG,IAAI;IAIlD;;OAEG;iCAC0B,MAAM,GAAG,SAAS;IAI/C;;OAEG;mCAC4B,MAAM,GAAG,IAAI;IAI5C;;OAEG;qBACc,MAAM;IAIvB;;OAEG;aACM,IAAI;CAGd,CAAC"}
@@ -3,10 +3,11 @@ import Conf from 'conf';
3
3
  * Configuration store for user settings
4
4
  * Stored in XDG-compliant directory
5
5
  *
6
- * The branch settings deliberately have no default here: `undefined` is what
7
- * tells the resolvers the user has never chosen one, so the repository's
8
- * `.idea1/settings.json` gets its turn. Seeding them with this repository's
9
- * convention would make "unset" and "set to working/release" indistinguishable.
6
+ * Branch names are deliberately absent: they are a property of the repository
7
+ * being worked in, not of the machine, so they are read from that repository's
8
+ * `.idea1/settings.json`. A branch name cached here would follow the developer
9
+ * from repo to repo and override each one's own convention. Keys written by
10
+ * older versions of the CLI are ignored.
10
11
  */
11
12
  const config = new Conf({
12
13
  projectName: 'idea1-cli',
@@ -15,30 +16,6 @@ const config = new Conf({
15
16
  }
16
17
  });
17
18
  export const configService = {
18
- /**
19
- * Get the default base branch
20
- */
21
- getDefaultBaseBranch() {
22
- return config.get('defaultBaseBranch');
23
- },
24
- /**
25
- * Set the default base branch
26
- */
27
- setDefaultBaseBranch(branch) {
28
- config.set('defaultBaseBranch', branch);
29
- },
30
- /**
31
- * Get the default branch prefix
32
- */
33
- getDefaultBranchPrefix() {
34
- return config.get('defaultBranchPrefix');
35
- },
36
- /**
37
- * Set the default branch prefix
38
- */
39
- setDefaultBranchPrefix(prefix) {
40
- config.set('defaultBranchPrefix', prefix);
41
- },
42
19
  /**
43
20
  * Get the default isolation mode. Any value stored by an older CLI version
44
21
  * that is no longer a valid mode falls back to 'worktree'.
@@ -53,18 +30,6 @@ export const configService = {
53
30
  setDefaultIsolationMode(mode) {
54
31
  config.set('defaultIsolationMode', mode);
55
32
  },
56
- /**
57
- * Get the default integration branch prefix
58
- */
59
- getDefaultIntegrationBranchPrefix() {
60
- return config.get('defaultIntegrationBranchPrefix');
61
- },
62
- /**
63
- * Set the default integration branch prefix
64
- */
65
- setDefaultIntegrationBranchPrefix(prefix) {
66
- config.set('defaultIntegrationBranchPrefix', prefix);
67
- },
68
33
  /**
69
34
  * Get the last used project item URL
70
35
  */
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/services/config.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AAWxB;;;;;;;;GAQG;AACH,MAAM,MAAM,GAAG,IAAI,IAAI,CAAe;IACpC,WAAW,EAAE,WAAW;IACxB,QAAQ,EAAE;QACR,oBAAoB,EAAE,UAAU;KACjC;CACF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B;;OAEG;IACH,oBAAoB;QAClB,OAAO,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;IACzC,CAAC;IAED;;OAEG;IACH,oBAAoB,CAAC,MAAc;QACjC,MAAM,CAAC,GAAG,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC;IAC1C,CAAC;IAED;;OAEG;IACH,sBAAsB;QACpB,OAAO,MAAM,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;IAC3C,CAAC;IAED;;OAEG;IACH,sBAAsB,CAAC,MAAc;QACnC,MAAM,CAAC,GAAG,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;IAC5C,CAAC;IAED;;;OAGG;IACH,uBAAuB;QACrB,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;QAChD,OAAO,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC;IACzD,CAAC;IAED;;OAEG;IACH,uBAAuB,CAAC,IAAmB;QACzC,MAAM,CAAC,GAAG,CAAC,sBAAsB,EAAE,IAAI,CAAC,CAAC;IAC3C,CAAC;IAED;;OAEG;IACH,iCAAiC;QAC/B,OAAO,MAAM,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;IACtD,CAAC;IAED;;OAEG;IACH,iCAAiC,CAAC,MAAc;QAC9C,MAAM,CAAC,GAAG,CAAC,gCAAgC,EAAE,MAAM,CAAC,CAAC;IACvD,CAAC;IAED;;OAEG;IACH,yBAAyB;QACvB,OAAO,MAAM,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;IAC9C,CAAC;IAED;;OAEG;IACH,yBAAyB,CAAC,GAAW;QACnC,MAAM,CAAC,GAAG,CAAC,wBAAwB,EAAE,GAAG,CAAC,CAAC;IAC5C,CAAC;IAED;;OAEG;IACH,aAAa;QACX,OAAO,MAAM,CAAC,IAAI,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,KAAK;QACH,MAAM,CAAC,KAAK,EAAE,CAAC;IACjB,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/services/config.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AAQxB;;;;;;;;;GASG;AACH,MAAM,MAAM,GAAG,IAAI,IAAI,CAAe;IACpC,WAAW,EAAE,WAAW;IACxB,QAAQ,EAAE;QACR,oBAAoB,EAAE,UAAU;KACjC;CACF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B;;;OAGG;IACH,uBAAuB;QACrB,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;QAChD,OAAO,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC;IACzD,CAAC;IAED;;OAEG;IACH,uBAAuB,CAAC,IAAmB;QACzC,MAAM,CAAC,GAAG,CAAC,sBAAsB,EAAE,IAAI,CAAC,CAAC;IAC3C,CAAC;IAED;;OAEG;IACH,yBAAyB;QACvB,OAAO,MAAM,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;IAC9C,CAAC;IAED;;OAEG;IACH,yBAAyB,CAAC,GAAW;QACnC,MAAM,CAAC,GAAG,CAAC,wBAAwB,EAAE,GAAG,CAAC,CAAC;IAC5C,CAAC;IAED;;OAEG;IACH,aAAa;QACX,OAAO,MAAM,CAAC,IAAI,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,KAAK;QACH,MAAM,CAAC,KAAK,EAAE,CAAC;IACjB,CAAC;CACF,CAAC"}
@@ -69,9 +69,9 @@ export declare function getBranchFromPrUrl(prUrl: string): Promise<{
69
69
  * failed (exit code 8 means checks were still pending when it stopped).
70
70
  *
71
71
  * Two ways of "not finished" are failures here, never successes: a watch that hits the timeout is
72
- * killed by a signal and has no exit code, and a PR whose checks never appear at all - GitHub can
73
- * take a moment to report the first check on a just-opened PR, so that case is polled for a short
74
- * grace period before it is called a failure.
72
+ * killed by a signal and has no exit code, and a PR whose checks never appear even though the
73
+ * repository has some configured. A repository with no CI/CD at all is not one of them - there is
74
+ * no gate to wait for, so the merge proceeds.
75
75
  */
76
76
  export declare function waitForPrChecks(branchName: string, timeoutMinutes?: number): Promise<{
77
77
  passed: boolean;
@@ -132,4 +132,11 @@ export interface CommitPullRequest {
132
132
  * "Merge pull request" subject to parse, but GitHub still knows which PR the commit came from.
133
133
  */
134
134
  export declare function getPullRequestsForCommit(sha: string): Promise<CommitPullRequest[]>;
135
+ /**
136
+ * Whether the authenticated user is an admin on the repository. The overrides in
137
+ * change-management-policy.md are the CTO's to make, and repository admin is how that authority is
138
+ * expressed in GitHub - so an override that has no GitHub gate of its own is checked here rather
139
+ * than taken on the caller's word.
140
+ */
141
+ export declare function isCurrentUserRepoAdmin(): Promise<boolean>;
135
142
  //# sourceMappingURL=github.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"github.d.ts","sourceRoot":"","sources":["../../src/services/github.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"github.d.ts","sourceRoot":"","sources":["../../src/services/github.ts"],"names":[],"mappings":"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"}