@idea1/cli 1.10.4 → 1.11.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 +74 -32
- package/dist/commands/help.d.ts.map +1 -1
- package/dist/commands/help.js +30 -12
- package/dist/commands/help.js.map +1 -1
- package/dist/commands/index.d.ts +3 -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/login.d.ts +3 -0
- package/dist/commands/login.d.ts.map +1 -0
- package/dist/commands/login.js +15 -0
- package/dist/commands/login.js.map +1 -0
- package/dist/commands/logout.d.ts +3 -0
- package/dist/commands/logout.d.ts.map +1 -0
- package/dist/commands/logout.js +17 -0
- package/dist/commands/logout.js.map +1 -0
- package/dist/commands/release.d.ts +9 -4
- package/dist/commands/release.d.ts.map +1 -1
- package/dist/commands/release.js +53 -27
- package/dist/commands/release.js.map +1 -1
- package/dist/lib/project-item-url.d.ts +6 -0
- package/dist/lib/project-item-url.d.ts.map +1 -1
- package/dist/lib/project-item-url.js +11 -0
- package/dist/lib/project-item-url.js.map +1 -1
- package/dist/lib/settings.d.ts +25 -3
- package/dist/lib/settings.d.ts.map +1 -1
- package/dist/lib/settings.js +26 -1
- package/dist/lib/settings.js.map +1 -1
- package/dist/prompts/platform-prompts.d.ts +5 -30
- package/dist/prompts/platform-prompts.d.ts.map +1 -1
- package/dist/prompts/platform-prompts.js +5 -44
- package/dist/prompts/platform-prompts.js.map +1 -1
- package/dist/services/github.d.ts +21 -19
- package/dist/services/github.d.ts.map +1 -1
- package/dist/services/github.js +56 -64
- package/dist/services/github.js.map +1 -1
- package/dist/services/platform-auth.d.ts +44 -0
- package/dist/services/platform-auth.d.ts.map +1 -0
- package/dist/services/platform-auth.js +476 -0
- package/dist/services/platform-auth.js.map +1 -0
- package/dist/services/platform.d.ts +75 -18
- package/dist/services/platform.d.ts.map +1 -1
- package/dist/services/platform.js +254 -191
- package/dist/services/platform.js.map +1 -1
- package/dist/services/setup.d.ts.map +1 -1
- package/dist/services/setup.js +2 -1
- package/dist/services/setup.js.map +1 -1
- package/dist/types/index.d.ts +32 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +1 -1
- package/dist/types/index.js.map +1 -1
- package/dist/workflow/data/team-member.d.ts +9 -2
- package/dist/workflow/data/team-member.d.ts.map +1 -1
- package/dist/workflow/data/team-member.js +8 -1
- package/dist/workflow/data/team-member.js.map +1 -1
- package/dist/workflow/engine/approval-flow.d.ts +28 -11
- package/dist/workflow/engine/approval-flow.d.ts.map +1 -1
- package/dist/workflow/engine/approval-flow.js +52 -17
- package/dist/workflow/engine/approval-flow.js.map +1 -1
- package/dist/workflow/engine/branch-setup.d.ts +1 -1
- package/dist/workflow/engine/branch-setup.js +1 -1
- package/dist/workflow/engine/handlers/approve-pr.d.ts +10 -9
- package/dist/workflow/engine/handlers/approve-pr.d.ts.map +1 -1
- package/dist/workflow/engine/handlers/approve-pr.js +24 -17
- package/dist/workflow/engine/handlers/approve-pr.js.map +1 -1
- package/dist/workflow/engine/release-engine.d.ts +90 -58
- package/dist/workflow/engine/release-engine.d.ts.map +1 -1
- package/dist/workflow/engine/release-engine.js +296 -161
- package/dist/workflow/engine/release-engine.js.map +1 -1
- package/dist/workflow/engine/workflow-engine.d.ts +9 -2
- package/dist/workflow/engine/workflow-engine.d.ts.map +1 -1
- package/dist/workflow/engine/workflow-engine.js +20 -2
- package/dist/workflow/engine/workflow-engine.js.map +1 -1
- package/package.json +2 -1
|
@@ -1,100 +1,270 @@
|
|
|
1
1
|
import { logger } from '../lib/logger.js';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { createProjectItemPrompt, generateBranchNamePrompt, getProjectItemSummaryForBranchPrompt, getProjectItemSummaryPrompt, listProjectsPrompt, listTeamMembersPrompt, setWorkflowStatusPrompt, upsertProjectItemWorkflowContextPrompt } from '../prompts/platform-prompts.js';
|
|
2
|
+
import { projectItemExternalId } from '../lib/project-item-url.js';
|
|
3
|
+
import { generateBranchNamePrompt } from '../prompts/platform-prompts.js';
|
|
5
4
|
import * as claude from './claude.js';
|
|
5
|
+
import { apiBaseUrl, authorizedFetch } from './platform-auth.js';
|
|
6
6
|
/**
|
|
7
7
|
* The CLI's access to the Idea1 cloud platform (app.idea1.ai / api.idea1.ai): reading a project
|
|
8
8
|
* item's summary (by item or by branch), recording the item's workflow context, setting its workflow
|
|
9
|
-
* status (with the teammate it is assigned to),
|
|
10
|
-
*
|
|
11
|
-
*
|
|
9
|
+
* status (with the teammate it is assigned to), transitioning an item on the platform and approving
|
|
10
|
+
* a branch's pull request (the stage-1 merges the platform performs), approving a release and
|
|
11
|
+
* committing its version bump (the stage-2 work the platform performs), creating items, listing the team's Projects and
|
|
12
|
+
* members, deriving a branch name from an item, and reading who is signed in. Callers use
|
|
13
|
+
* `platform.someFunction()` and know nothing about the transport.
|
|
12
14
|
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
* `src/prompts/platform-prompts.ts`; this module owns the output schemas their answers are read with.
|
|
15
|
+
* The transport is the platform's REST API, authorized with the user's OAuth credential or
|
|
16
|
+
* `IDEA1_TOKEN` (see `platform-auth.ts`), on the team that credential is bound to. Responses are the
|
|
17
|
+
* platform's `ApiDataResponse` envelope; a refused request surfaces as an Error carrying the
|
|
18
|
+
* platform's status and message. Claude is used only to name branches, on PLATFORM_CALL_RUN_OPTIONS.
|
|
18
19
|
*/
|
|
19
20
|
/**
|
|
20
|
-
* Model and effort for
|
|
21
|
-
*
|
|
21
|
+
* Model and effort for the Claude run that names a branch: a small, fast model at medium effort is
|
|
22
|
+
* all a one-line answer from a description needs, and pinning it keeps the run consistent and cheap.
|
|
22
23
|
*/
|
|
23
24
|
export const PLATFORM_CALL_RUN_OPTIONS = { model: 'sonnet', effort: 'medium' };
|
|
24
25
|
/**
|
|
25
|
-
*
|
|
26
|
+
* The platform's `ApiResultType`, the `result` of every response envelope.
|
|
26
27
|
*/
|
|
27
|
-
|
|
28
|
-
|
|
28
|
+
var ApiResultType;
|
|
29
|
+
(function (ApiResultType) {
|
|
30
|
+
ApiResultType[ApiResultType["Ok"] = 0] = "Ok";
|
|
31
|
+
ApiResultType[ApiResultType["Failed"] = 1] = "Failed";
|
|
32
|
+
ApiResultType[ApiResultType["NotFound"] = 2] = "NotFound";
|
|
33
|
+
ApiResultType[ApiResultType["Unauthorized"] = 3] = "Unauthorized";
|
|
34
|
+
ApiResultType[ApiResultType["InvalidRequest"] = 4] = "InvalidRequest";
|
|
35
|
+
ApiResultType[ApiResultType["QuotaLimit"] = 5] = "QuotaLimit";
|
|
36
|
+
})(ApiResultType || (ApiResultType = {}));
|
|
37
|
+
/**
|
|
38
|
+
* The platform's `ProjectStatus`.
|
|
39
|
+
*/
|
|
40
|
+
var ProjectStatus;
|
|
41
|
+
(function (ProjectStatus) {
|
|
42
|
+
ProjectStatus[ProjectStatus["Live"] = 0] = "Live";
|
|
43
|
+
ProjectStatus[ProjectStatus["Completed"] = 1] = "Completed";
|
|
44
|
+
ProjectStatus[ProjectStatus["Cancelled"] = 2] = "Cancelled";
|
|
45
|
+
})(ProjectStatus || (ProjectStatus = {}));
|
|
46
|
+
/**
|
|
47
|
+
* Send a request to the platform's API, at `path` relative to the API base URL.
|
|
48
|
+
*/
|
|
49
|
+
function send(method, path, body) {
|
|
50
|
+
return authorizedFetch(`${apiBaseUrl()}/${path}`, {
|
|
51
|
+
method,
|
|
52
|
+
headers: body === null ? { Accept: 'application/json' } : { Accept: 'application/json', 'Content-Type': 'application/json' },
|
|
53
|
+
body: body === null ? undefined : JSON.stringify(body)
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* The `data` of a successful response; anything else throws an Error naming the request, the
|
|
58
|
+
* status and the platform's message.
|
|
59
|
+
*/
|
|
60
|
+
async function readData(method, path, response) {
|
|
61
|
+
const text = await response.text();
|
|
62
|
+
if (!response.ok) {
|
|
63
|
+
const message = serverMessage(text);
|
|
64
|
+
throw new Error(`idea1.ai refused ${method} /${path} (${response.status} ${response.statusText})${message.length > 0 ? `: ${message}` : ''}`);
|
|
65
|
+
}
|
|
66
|
+
const envelope = JSON.parse(text);
|
|
67
|
+
if (envelope.result !== ApiResultType.Ok) {
|
|
68
|
+
throw new Error(`idea1.ai could not complete ${method} /${path}: ${ApiResultType[envelope.result]}`);
|
|
69
|
+
}
|
|
70
|
+
return envelope.data;
|
|
71
|
+
}
|
|
72
|
+
async function call(method, path, body) {
|
|
73
|
+
return readData(method, path, await send(method, path, body));
|
|
29
74
|
}
|
|
30
75
|
/**
|
|
31
|
-
*
|
|
76
|
+
* A branch name the platform returned, checked before it reaches git: the CLI passes branch names
|
|
77
|
+
* to git as arguments, so a name that is not a plain ref (one starting with `-` would read as an
|
|
78
|
+
* option) is refused.
|
|
32
79
|
*/
|
|
33
|
-
|
|
34
|
-
|
|
80
|
+
const SAFE_BRANCH_NAME = /^(?!-)(?!.*\.\.)[A-Za-z0-9._\/-]+$/;
|
|
81
|
+
function checkedBranchName(name) {
|
|
82
|
+
if (!SAFE_BRANCH_NAME.test(name)) {
|
|
83
|
+
throw new Error(`idea1.ai returned an invalid branch name: ${JSON.stringify(name)}`);
|
|
84
|
+
}
|
|
85
|
+
return name;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* A project item URL the platform returned, checked before it is stored in git config: it must be a
|
|
89
|
+
* plain idea1.ai project item URL.
|
|
90
|
+
*/
|
|
91
|
+
const SAFE_PROJECT_ITEM_URL = /^https?:\/\/(app\.idea1\.ai|localhost(:\d+)?)\/project\/items\/\d+\/?$/i;
|
|
92
|
+
function checkedProjectItemUrl(url) {
|
|
93
|
+
if (!SAFE_PROJECT_ITEM_URL.test(url)) {
|
|
94
|
+
throw new Error(`idea1.ai returned an invalid project item URL: ${JSON.stringify(url)}`);
|
|
95
|
+
}
|
|
96
|
+
return url;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* A workflow context the platform returned, with its branch names checked. Each field is copied by
|
|
100
|
+
* name, so nothing the platform sent reaches git without passing the check.
|
|
101
|
+
*/
|
|
102
|
+
function checkedContext(context) {
|
|
103
|
+
return {
|
|
104
|
+
workflowStatus: context.workflowStatus,
|
|
105
|
+
codingAgentUrl: context.codingAgentUrl,
|
|
106
|
+
pullRequestUrl: context.pullRequestUrl,
|
|
107
|
+
repositoryFullName: context.repositoryFullName,
|
|
108
|
+
branchName: checkedBranchName(context.branchName),
|
|
109
|
+
baseBranch: checkedBranchName(context.baseBranch),
|
|
110
|
+
devWorkflowType: context.devWorkflowType,
|
|
111
|
+
stackBranch: context.stackBranch === null ? null : checkedBranchName(context.stackBranch),
|
|
112
|
+
integrationBranch: context.integrationBranch === null ? null : checkedBranchName(context.integrationBranch),
|
|
113
|
+
branchState: context.branchState
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
/** A project item summary the platform returned, with its URL and the branch names of its workflow context checked. */
|
|
117
|
+
function checkedSummary(summary) {
|
|
118
|
+
return {
|
|
119
|
+
url: checkedProjectItemUrl(summary.url),
|
|
120
|
+
externalId: summary.externalId,
|
|
121
|
+
title: summary.title,
|
|
122
|
+
epicId: summary.epicId,
|
|
123
|
+
completionDate: summary.completionDate,
|
|
124
|
+
legacyWorkflowStatus: summary.legacyWorkflowStatus,
|
|
125
|
+
projectId: summary.projectId,
|
|
126
|
+
assignedToUserId: summary.assignedToUserId,
|
|
127
|
+
workflowContext: summary.workflowContext === null ? null : checkedContext(summary.workflowContext)
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
async function callForSummary(method, path, body) {
|
|
131
|
+
return checkedSummary(await call(method, path, body));
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* The message an error response carries: the `message` (or OAuth `error_description`) of a JSON
|
|
135
|
+
* body, a JSON string, or the body's text; empty for an empty body.
|
|
136
|
+
*/
|
|
137
|
+
function serverMessage(text) {
|
|
138
|
+
const trimmed = text.trim();
|
|
139
|
+
try {
|
|
140
|
+
const body = JSON.parse(trimmed);
|
|
141
|
+
if (typeof body === 'string') {
|
|
142
|
+
return body;
|
|
143
|
+
}
|
|
144
|
+
if (typeof body === 'object' && body !== null) {
|
|
145
|
+
const fields = body;
|
|
146
|
+
const message = [fields.message, fields.error_description, fields.error, fields.detail, fields.title].find(value => typeof value === 'string');
|
|
147
|
+
if (typeof message === 'string') {
|
|
148
|
+
return message;
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
catch {
|
|
153
|
+
// Not JSON: the text is the message.
|
|
154
|
+
}
|
|
155
|
+
return trimmed.slice(0, 500);
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* The path of a project item by its URL's external id.
|
|
159
|
+
*/
|
|
160
|
+
function projectItemPath(itemUrl) {
|
|
161
|
+
return `v1/teams/active/project-items/by-external-id/${projectItemExternalId(itemUrl)}`;
|
|
35
162
|
}
|
|
36
163
|
/**
|
|
37
164
|
* Record workflow context updates on an idea1.ai project item directly, with no side effects on the
|
|
38
165
|
* platform: the CLI has already run the transition's work locally. The item must be under workflow
|
|
39
166
|
* management (have a workflow context); the workflow engine is the only caller, as the persist step
|
|
40
167
|
* of a transition. `assignedToEmail` names the team member the item is assigned to along with the
|
|
41
|
-
* status; null leaves the assignment as it is.
|
|
42
|
-
*
|
|
43
|
-
* TODO: Direct workflow-context updates move from the update_item MCP tool to an authenticated
|
|
44
|
-
* platform API call; the CLI will authenticate a user and call the API for direct integrations
|
|
45
|
-
* like this, and MCP tools will be only operations that agents should run.
|
|
168
|
+
* status; null leaves the assignment as it is. Returns false, with a warning, when the platform did
|
|
169
|
+
* not record it.
|
|
46
170
|
*/
|
|
47
171
|
export async function setWorkflowStatus(itemUrl, status, pullRequestUrl, assignedToEmail) {
|
|
48
|
-
const hasClaude = await claude.ensureClaudeCli();
|
|
49
|
-
if (!hasClaude) {
|
|
50
|
-
logger.warning('Claude CLI not available, skipping workflow status update');
|
|
51
|
-
return false;
|
|
52
|
-
}
|
|
53
172
|
logger.step(assignedToEmail === null
|
|
54
173
|
? `Setting workflow status to "${status}"...`
|
|
55
174
|
: `Setting workflow status to "${status}", assigned to ${assignedToEmail}...`);
|
|
56
175
|
try {
|
|
57
|
-
await
|
|
176
|
+
await call('PUT', `${projectItemPath(itemUrl)}/workflow-status`, { workflowStatus: status, pullRequestUrl, assignedToEmail });
|
|
58
177
|
logger.success(`Workflow status updated to "${status}"`);
|
|
59
178
|
return true;
|
|
60
179
|
}
|
|
61
180
|
catch (error) {
|
|
62
|
-
|
|
63
|
-
? `Model could not update workflow status: ${error.message}`
|
|
64
|
-
: `Could not update workflow status: ${error.message}`;
|
|
65
|
-
logger.warning(message);
|
|
181
|
+
logger.warning(`Could not update workflow status: ${error.message}`);
|
|
66
182
|
return false;
|
|
67
183
|
}
|
|
68
184
|
}
|
|
185
|
+
/** A project item id the platform returned, checked before it reaches a request path. */
|
|
186
|
+
const SAFE_ITEM_ID = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
|
|
187
|
+
/**
|
|
188
|
+
* Move a project item into `targetStatus` on the platform, which runs the side effects of every
|
|
189
|
+
* state it enters and records each one: entering Approved and Merged merges the item's pull request
|
|
190
|
+
* as the Idea1 GitHub App, once the signed-in user's approval is recorded on it. `expectedStatus` is
|
|
191
|
+
* the status the item has as far as the CLI knows; the platform refuses the transition when the item
|
|
192
|
+
* has moved since, so it never runs twice.
|
|
193
|
+
*/
|
|
194
|
+
export async function transitionWorkflow(itemUrl, expectedStatus, targetStatus) {
|
|
195
|
+
logger.step(`Moving ${itemUrl} to "${targetStatus}" on idea1.ai...`);
|
|
196
|
+
const item = await call('GET', projectItemPath(itemUrl), null);
|
|
197
|
+
if (!SAFE_ITEM_ID.test(item.id)) {
|
|
198
|
+
throw new Error(`idea1.ai returned an invalid project item id: ${JSON.stringify(item.id)}`);
|
|
199
|
+
}
|
|
200
|
+
const result = await call('POST', `v1/teams/active/project-items/${item.id}/workflow-transition`, {
|
|
201
|
+
expectedWorkflowStatus: expectedStatus,
|
|
202
|
+
targetWorkflowStatus: targetStatus,
|
|
203
|
+
branchChoices: null,
|
|
204
|
+
assignedToEmail: null
|
|
205
|
+
});
|
|
206
|
+
logger.success(result.message);
|
|
207
|
+
return { workflowContext: checkedContext(result.workflowContext), message: result.message };
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* Approve the open pull request of a branch no project item carries: the platform records the
|
|
211
|
+
* signed-in user's approval on it and merges it as the Idea1 GitHub App. Returns what was done.
|
|
212
|
+
*/
|
|
213
|
+
export async function approvePullRequest(repositoryFullName, branchName) {
|
|
214
|
+
logger.step(`Approving the PR of ${branchName} on idea1.ai...`);
|
|
215
|
+
const response = await call('POST', 'v1/teams/active/github/repository/pull-requests/approve', { repositoryFullName, branchName });
|
|
216
|
+
logger.success(response.message);
|
|
217
|
+
return response.message;
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* Approve the open release PR from a release branch (the base, hotfix or content release branch):
|
|
221
|
+
* the platform checks the signed-in user is its assignee and holds the release role, brings its
|
|
222
|
+
* change list up to date, records the approval on it and merges it as the Idea1 GitHub App. Returns
|
|
223
|
+
* what was done.
|
|
224
|
+
*/
|
|
225
|
+
export async function approveRelease(repositoryFullName, branchName) {
|
|
226
|
+
logger.step(`Approving the release of ${branchName} on idea1.ai...`);
|
|
227
|
+
const response = await call('POST', 'v1/teams/active/github/repository/releases/approve', { repositoryFullName, branchName });
|
|
228
|
+
logger.success(response.message);
|
|
229
|
+
return response.message;
|
|
230
|
+
}
|
|
231
|
+
/**
|
|
232
|
+
* Have the platform commit a release's version bump onto its release branch as the Idea1 GitHub
|
|
233
|
+
* App, for a releaser who cannot push to the branch: the new content of each version file, made
|
|
234
|
+
* against the branch at `expectedHeadSha`. The platform accepts only version edits of the declared
|
|
235
|
+
* packages' version files. Returns the commit.
|
|
236
|
+
*/
|
|
237
|
+
export async function commitVersionBump(repositoryFullName, branchName, expectedHeadSha, files) {
|
|
238
|
+
logger.step(`Committing the version bump to ${branchName} on idea1.ai...`);
|
|
239
|
+
const response = await call('POST', 'v1/teams/active/github/repository/releases/version-bumps', {
|
|
240
|
+
repositoryFullName,
|
|
241
|
+
branchName,
|
|
242
|
+
expectedHeadSha,
|
|
243
|
+
files
|
|
244
|
+
});
|
|
245
|
+
logger.success(`${response.subject} (${response.commitSha.slice(0, 9)})`);
|
|
246
|
+
return response;
|
|
247
|
+
}
|
|
69
248
|
/**
|
|
70
249
|
* The summary of the project item a branch implements: null for a branch outside workflow
|
|
71
250
|
* management. The repository is always named; nothing defaults it.
|
|
72
251
|
*/
|
|
73
252
|
export async function getProjectItemSummaryForBranch(query) {
|
|
74
|
-
const hasClaude = await claude.ensureClaudeCli();
|
|
75
|
-
if (!hasClaude) {
|
|
76
|
-
throw new Error('Claude CLI is required to read the project item of a branch from idea1.ai');
|
|
77
|
-
}
|
|
78
253
|
logger.step(`Reading the project item of ${query.branchName} from idea1.ai...`);
|
|
79
|
-
const
|
|
80
|
-
|
|
254
|
+
const path = `v1/teams/active/project-items/for-branch?${new URLSearchParams(query).toString()}`;
|
|
255
|
+
const response = await send('GET', path, null);
|
|
256
|
+
if (response.status === 404) {
|
|
257
|
+
return null;
|
|
258
|
+
}
|
|
259
|
+
return checkedSummary(await readData('GET', path, response));
|
|
81
260
|
}
|
|
82
261
|
/**
|
|
83
262
|
* The summary of a project item: its `workflowContext` is null while the item is outside workflow
|
|
84
263
|
* management.
|
|
85
264
|
*/
|
|
86
265
|
export async function getProjectItemSummary(itemUrl) {
|
|
87
|
-
const hasClaude = await claude.ensureClaudeCli();
|
|
88
|
-
if (!hasClaude) {
|
|
89
|
-
throw new Error('Claude CLI is required to read a project item from idea1.ai');
|
|
90
|
-
}
|
|
91
266
|
logger.step(`Reading ${itemUrl} from idea1.ai...`);
|
|
92
|
-
|
|
93
|
-
const summary = readProjectItemSummaryOutput(output, () => false);
|
|
94
|
-
if (!summary) {
|
|
95
|
-
throw new Error(`idea1.ai returned no project item for ${itemUrl}`);
|
|
96
|
-
}
|
|
97
|
-
return summary;
|
|
267
|
+
return callForSummary('GET', `${projectItemPath(itemUrl)}/summary`, null);
|
|
98
268
|
}
|
|
99
269
|
/**
|
|
100
270
|
* Record a branch in a project item's workflow context as the one implementing the item, putting
|
|
@@ -104,120 +274,46 @@ export async function getProjectItemSummary(itemUrl) {
|
|
|
104
274
|
* refused by the platform, which surfaces here as an error.
|
|
105
275
|
*/
|
|
106
276
|
export async function upsertProjectItemWorkflowContext(input) {
|
|
107
|
-
const hasClaude = await claude.ensureClaudeCli();
|
|
108
|
-
if (!hasClaude) {
|
|
109
|
-
throw new Error('Claude CLI is required to record the workflow context on idea1.ai');
|
|
110
|
-
}
|
|
111
277
|
logger.step(`Recording ${input.branchName} as the branch of ${input.projectItemUrl} on idea1.ai...`);
|
|
112
|
-
const
|
|
113
|
-
|
|
114
|
-
|
|
278
|
+
const summary = await callForSummary('PUT', `${projectItemPath(input.projectItemUrl)}/workflow-context`, {
|
|
279
|
+
repositoryFullName: input.repositoryFullName,
|
|
280
|
+
branchName: input.branchName,
|
|
281
|
+
baseBranch: input.baseBranch,
|
|
282
|
+
devWorkflowType: input.devWorkflowType,
|
|
283
|
+
stackBranch: input.stackBranch,
|
|
284
|
+
integrationBranch: input.integrationBranch
|
|
285
|
+
});
|
|
286
|
+
if (summary.workflowContext === null) {
|
|
115
287
|
throw new Error('The platform returned no workflow context after recording the branch');
|
|
116
288
|
}
|
|
117
289
|
return summary;
|
|
118
290
|
}
|
|
119
291
|
/**
|
|
120
|
-
*
|
|
121
|
-
* item" yields null; any other error is thrown.
|
|
122
|
-
*/
|
|
123
|
-
function readProjectItemSummaryOutput(output, isAbsence) {
|
|
124
|
-
if (typeof output.error === 'string' && output.error.trim().length > 0) {
|
|
125
|
-
if (isAbsence(output.error)) {
|
|
126
|
-
return null;
|
|
127
|
-
}
|
|
128
|
-
throw new Error(`idea1.ai: ${output.error.trim()}`);
|
|
129
|
-
}
|
|
130
|
-
const summary = output.projectItemSummary;
|
|
131
|
-
if (!summary || typeof summary.url !== 'string' || !isProjectItemUrl(summary.url)) {
|
|
132
|
-
throw new Error(`Claude did not return a valid project item summary: ${JSON.stringify(output.projectItemSummary)}`);
|
|
133
|
-
}
|
|
134
|
-
return summary;
|
|
135
|
-
}
|
|
136
|
-
/**
|
|
137
|
-
* JSON schema for the project-item-summary structured output (`ProjectItemSummary` or an error).
|
|
138
|
-
*/
|
|
139
|
-
const projectItemSummaryOutputSchema = {
|
|
140
|
-
type: 'object',
|
|
141
|
-
properties: {
|
|
142
|
-
projectItemSummary: {
|
|
143
|
-
type: ['object', 'null'],
|
|
144
|
-
description: 'The project item summary the tool returned, or null when it returned an error',
|
|
145
|
-
properties: {
|
|
146
|
-
url: { type: 'string' },
|
|
147
|
-
externalId: { type: 'integer' },
|
|
148
|
-
title: { type: 'string' },
|
|
149
|
-
epicId: { type: ['string', 'null'] },
|
|
150
|
-
completionDate: { type: ['string', 'null'] },
|
|
151
|
-
legacyWorkflowStatus: { type: 'string' },
|
|
152
|
-
projectId: { type: ['string', 'null'], description: 'The Project the item is planned in; null when it is out of scope' },
|
|
153
|
-
assignedToUserId: { type: ['string', 'null'], description: 'The team member the item is assigned to; null when unassigned' },
|
|
154
|
-
workflowContext: {
|
|
155
|
-
type: ['object', 'null'],
|
|
156
|
-
properties: {
|
|
157
|
-
workflowStatus: { type: 'string' },
|
|
158
|
-
codingAgentUrl: { type: 'string' },
|
|
159
|
-
pullRequestUrl: { type: 'string' },
|
|
160
|
-
repositoryFullName: { type: 'string' },
|
|
161
|
-
branchName: { type: 'string' },
|
|
162
|
-
baseBranch: { type: 'string' },
|
|
163
|
-
devWorkflowType: { type: 'string', enum: ['independent', 'integration'] },
|
|
164
|
-
stackBranch: { type: ['string', 'null'] },
|
|
165
|
-
integrationBranch: { type: ['string', 'null'] },
|
|
166
|
-
branchState: { type: 'integer', enum: [0, 1, 2], description: '0 Live, 1 Merged, 2 Deleted' }
|
|
167
|
-
},
|
|
168
|
-
required: ['workflowStatus', 'codingAgentUrl', 'pullRequestUrl', 'repositoryFullName', 'branchName', 'baseBranch', 'devWorkflowType', 'stackBranch', 'integrationBranch', 'branchState'],
|
|
169
|
-
additionalProperties: false
|
|
170
|
-
}
|
|
171
|
-
},
|
|
172
|
-
required: ['url', 'externalId', 'title', 'epicId', 'completionDate', 'legacyWorkflowStatus', 'projectId', 'assignedToUserId', 'workflowContext'],
|
|
173
|
-
additionalProperties: false
|
|
174
|
-
},
|
|
175
|
-
error: { type: ['string', 'null'], description: 'The error the tool returned, verbatim, or null on success' }
|
|
176
|
-
},
|
|
177
|
-
required: ['projectItemSummary', 'error'],
|
|
178
|
-
additionalProperties: false
|
|
179
|
-
};
|
|
180
|
-
/**
|
|
181
|
-
* Generate a branch name from a project item description
|
|
292
|
+
* Generate a branch name from a project item's description.
|
|
182
293
|
*/
|
|
183
294
|
export async function generateBranchName(itemUrl) {
|
|
184
|
-
const hasClaude = await claude.ensureClaudeCli();
|
|
185
|
-
if (!hasClaude) {
|
|
186
|
-
throw new Error('Claude CLI is required to generate branch names');
|
|
187
|
-
}
|
|
188
295
|
logger.step('Generating branch name from item description...');
|
|
189
|
-
const
|
|
296
|
+
const item = await call('GET', projectItemPath(itemUrl), null);
|
|
297
|
+
const branchName = await claude.runWithPrompt(generateBranchNamePrompt({ description: item.description }), PLATFORM_CALL_RUN_OPTIONS);
|
|
190
298
|
// Clean up any extra whitespace/newlines
|
|
191
299
|
const cleanedName = branchName.replace(/\n/g, '').trim();
|
|
192
300
|
logger.dim(`Generated branch name: ${cleanedName}`);
|
|
193
301
|
return cleanedName;
|
|
194
302
|
}
|
|
303
|
+
/**
|
|
304
|
+
* The team's live Projects, most recently created first.
|
|
305
|
+
*/
|
|
306
|
+
async function readLiveProjects() {
|
|
307
|
+
const projects = await call('GET', 'v1/teams/active/projects', null);
|
|
308
|
+
return projects.filter(project => project.status === ProjectStatus.Live);
|
|
309
|
+
}
|
|
195
310
|
/**
|
|
196
311
|
* The names of the team's live Projects, most recently created first.
|
|
197
312
|
*/
|
|
198
313
|
export async function listProjects() {
|
|
199
314
|
logger.step('Reading the team\'s projects from idea1.ai...');
|
|
200
|
-
|
|
201
|
-
const projects = Array.isArray(output.projects)
|
|
202
|
-
? output.projects.filter((name) => typeof name === 'string' && name.trim().length > 0).map(name => name.trim())
|
|
203
|
-
: [];
|
|
204
|
-
return projects;
|
|
315
|
+
return (await readLiveProjects()).map(project => project.name);
|
|
205
316
|
}
|
|
206
|
-
/**
|
|
207
|
-
* JSON schema for the list-projects structured output.
|
|
208
|
-
*/
|
|
209
|
-
const listProjectsSchema = {
|
|
210
|
-
type: 'object',
|
|
211
|
-
properties: {
|
|
212
|
-
projects: {
|
|
213
|
-
type: 'array',
|
|
214
|
-
description: 'The names of the live Idea1 projects, most recently created first',
|
|
215
|
-
items: { type: 'string' }
|
|
216
|
-
}
|
|
217
|
-
},
|
|
218
|
-
required: ['projects'],
|
|
219
|
-
additionalProperties: false
|
|
220
|
-
};
|
|
221
317
|
let teamMembers = null;
|
|
222
318
|
/**
|
|
223
319
|
* The members of the team, read once per process: the teammates a project item can be assigned
|
|
@@ -234,11 +330,8 @@ export function listTeamMembers() {
|
|
|
234
330
|
}
|
|
235
331
|
async function readTeamMembers() {
|
|
236
332
|
logger.step('Reading the team\'s members from idea1.ai...');
|
|
237
|
-
const
|
|
238
|
-
|
|
239
|
-
throw new Error(`Claude did not return the team's members: ${JSON.stringify(output.members)}`);
|
|
240
|
-
}
|
|
241
|
-
return output.members.map(member => ({
|
|
333
|
+
const members = await call('GET', 'v1/teams/active/members', null);
|
|
334
|
+
return members.map(member => ({
|
|
242
335
|
userId: member.userId,
|
|
243
336
|
email: member.email.trim(),
|
|
244
337
|
role: member.role,
|
|
@@ -260,55 +353,25 @@ export async function resolveTeammate(identity) {
|
|
|
260
353
|
return teammate;
|
|
261
354
|
}
|
|
262
355
|
/**
|
|
263
|
-
*
|
|
264
|
-
*/
|
|
265
|
-
const listTeamMembersSchema = {
|
|
266
|
-
type: 'object',
|
|
267
|
-
properties: {
|
|
268
|
-
members: {
|
|
269
|
-
type: 'array',
|
|
270
|
-
description: 'The team\'s members, in the order returned',
|
|
271
|
-
items: {
|
|
272
|
-
type: 'object',
|
|
273
|
-
properties: {
|
|
274
|
-
userId: { type: 'string' },
|
|
275
|
-
email: { type: 'string' },
|
|
276
|
-
role: { type: 'string' },
|
|
277
|
-
gitHubUsername: { type: ['string', 'null'], description: 'The member\'s linked GitHub login, or null when none is linked' }
|
|
278
|
-
},
|
|
279
|
-
required: ['userId', 'email', 'role', 'gitHubUsername'],
|
|
280
|
-
additionalProperties: false
|
|
281
|
-
}
|
|
282
|
-
}
|
|
283
|
-
},
|
|
284
|
-
required: ['members'],
|
|
285
|
-
additionalProperties: false
|
|
286
|
-
};
|
|
287
|
-
/**
|
|
288
|
-
* Create a new idea1 project item with the given title in the named Project.
|
|
356
|
+
* Create a new idea1 project item with the given title in the named live Project.
|
|
289
357
|
* The item is created with description `# <title>`.
|
|
290
358
|
* Returns the created item's URL.
|
|
291
359
|
*/
|
|
292
360
|
export async function createProjectItem(title, projectName) {
|
|
293
361
|
logger.step(`Creating project item "${title}" in project "${projectName}"...`);
|
|
294
|
-
const
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
throw new Error(`Claude did not return a valid project item URL: ${JSON.stringify(output.projectItemUrl)}`);
|
|
362
|
+
const project = (await readLiveProjects()).find(candidate => candidate.name.trim().toLowerCase() === projectName.trim().toLowerCase());
|
|
363
|
+
if (!project) {
|
|
364
|
+
throw new Error(`The team has no live project named "${projectName}".`);
|
|
298
365
|
}
|
|
299
|
-
|
|
300
|
-
|
|
366
|
+
const summary = await callForSummary('POST', `v1/teams/active/projects/${project.projectId}/project-items`, { description: `# ${title}` });
|
|
367
|
+
logger.success(`Created project item: ${summary.url}`);
|
|
368
|
+
return summary.url;
|
|
301
369
|
}
|
|
302
370
|
/**
|
|
303
|
-
*
|
|
371
|
+
* The user the platform credential signs in as, and the team its calls work on.
|
|
304
372
|
*/
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
error: { type: ['string', 'null'], description: 'The error returned by create_item, or null when the item was created' }
|
|
310
|
-
},
|
|
311
|
-
required: ['projectItemUrl', 'error'],
|
|
312
|
-
additionalProperties: false
|
|
313
|
-
};
|
|
373
|
+
export async function getSignedInUser() {
|
|
374
|
+
const context = await call('GET', 'v1/user/core-application-context', null);
|
|
375
|
+
return { emailAddress: context.userContext.emailAddress, teamName: context.activeTeam.teamName };
|
|
376
|
+
}
|
|
314
377
|
//# sourceMappingURL=platform.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platform.js","sourceRoot":"","sources":["../../src/services/platform.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"platform.js","sourceRoot":"","sources":["../../src/services/platform.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/services/setup.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/services/setup.ts"],"names":[],"mappings":"AA0IA;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEzD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAmBnD;AAED;;;;;GAKG;AACH,wBAAsB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAoBjE"}
|
package/dist/services/setup.js
CHANGED
|
@@ -87,7 +87,7 @@ A state's entries replace that state's built-in ones. Each entry has a \`name\`
|
|
|
87
87
|
|
|
88
88
|
### release (optional)
|
|
89
89
|
|
|
90
|
-
|
|
90
|
+
How changes may reach the release branch, and the packages \`idea1 release\` can version. Before the release PR is opened, every versioned
|
|
91
91
|
package whose folder changed since the last release (and whose version has not moved yet) gets
|
|
92
92
|
a version bump: its \`package.json\` version, and the lockfiles above it, are updated and
|
|
93
93
|
committed to the release branch by \`idea1 release\` itself (the Idea1 web app makes the same
|
|
@@ -95,6 +95,7 @@ bump). Without this section a release has no version bump step.
|
|
|
95
95
|
|
|
96
96
|
| Property | Description |
|
|
97
97
|
|----------|-------------|
|
|
98
|
+
| \`releaseBranchChanges\` | How changes may reach the release branch: \`approved-only\` (default; every change arrives through its own approved change, and a release carrying a direct commit is refused until a repository admin records why) or \`direct-allowed\` (direct commits are carried and listed in the release PR for its approver to review) |
|
|
98
99
|
| \`versionedPackages\` | The packages a release can bump: \`name\` (used by \`--bumps\`), \`label\` (shown in prompts) and \`path\` (the folder holding the package's \`package.json\`) |
|
|
99
100
|
|
|
100
101
|
\`\`\`json
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/services/setup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AACxF,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAE7D,MAAM,SAAS,GAAG,QAAQ,CAAC;AAC3B,MAAM,aAAa,GAAG,eAAe,CAAC;AACtC,MAAM,cAAc,GAAG,YAAY,CAAC;AACpC,MAAM,WAAW,GAAG,WAAW,CAAC;AAEhC,MAAM,gBAAgB,GAAG;IACvB,KAAK,EAAE,EACN;IACD,QAAQ,EAAE;QACR,YAAY,EAAE,uBAAuB,CAAC,YAAY;QAClD,UAAU,EAAE,uBAAuB,CAAC,UAAU;QAC9C,mBAAmB,EAAE,uBAAuB,CAAC,mBAAmB;QAChE,YAAY,EAAE,uBAAuB,CAAC,YAAY;QAClD,uBAAuB,EAAE,uBAAuB,CAAC,uBAAuB;QACxE,yBAAyB,EAAE,uBAAuB,CAAC,yBAAyB;QAC5E,6BAA6B,EAAE,uBAAuB,CAAC,6BAA6B;QACpF,WAAW,EAAE,uBAAuB,CAAC,WAAW;KACjD;CACF,CAAC;AAEF,kGAAkG;AAClG,MAAM,iBAAiB,GAAsB,CAAC,qBAAqB,EAAE,OAAO,CAAC,CAAC;AAE9E,MAAM,iBAAiB,GAAG;;;;;;;CAOzB,CAAC;AAEF,MAAM,cAAc,GAAG
|
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/services/setup.ts"],"names":[],"mappings":"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"}
|