chief-clancy 0.6.0 → 0.7.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 +3 -2
- package/dist/bundle/clancy-afk.js +6 -2
- package/dist/bundle/clancy-once.js +49 -48
- package/dist/installer/hook-installer/hook-installer.d.ts +2 -0
- package/dist/installer/hook-installer/hook-installer.d.ts.map +1 -1
- package/dist/installer/hook-installer/hook-installer.js +36 -1
- package/dist/installer/hook-installer/hook-installer.js.map +1 -1
- package/dist/installer/install.js +8 -0
- package/dist/installer/install.js.map +1 -1
- package/hooks/clancy-branch-guard.js +129 -0
- package/hooks/clancy-context-monitor.js +134 -46
- package/hooks/clancy-post-compact.js +53 -0
- package/hooks/package.json +3 -0
- package/package.json +7 -3
- package/src/agents/verification-gate.md +128 -0
- package/src/roles/setup/workflows/init.md +45 -0
- package/src/roles/setup/workflows/scaffold.md +30 -0
- package/src/roles/setup/workflows/settings.md +56 -0
- package/src/templates/.env.example.github +19 -1
- package/src/templates/.env.example.jira +25 -1
- package/src/templates/.env.example.linear +19 -1
- package/dist/schemas/bitbucket-pr.d.ts +0 -137
- package/dist/schemas/bitbucket-pr.d.ts.map +0 -1
- package/dist/schemas/bitbucket-pr.js +0 -75
- package/dist/schemas/bitbucket-pr.js.map +0 -1
- package/dist/schemas/env.d.ts +0 -150
- package/dist/schemas/env.d.ts.map +0 -1
- package/dist/schemas/env.js +0 -63
- package/dist/schemas/env.js.map +0 -1
- package/dist/schemas/github-issues.d.ts +0 -105
- package/dist/schemas/github-issues.d.ts.map +0 -1
- package/dist/schemas/github-issues.js +0 -54
- package/dist/schemas/github-issues.js.map +0 -1
- package/dist/schemas/gitlab-mr.d.ts +0 -73
- package/dist/schemas/gitlab-mr.d.ts.map +0 -1
- package/dist/schemas/gitlab-mr.js +0 -33
- package/dist/schemas/gitlab-mr.js.map +0 -1
- package/dist/schemas/jira.d.ts +0 -59
- package/dist/schemas/jira.d.ts.map +0 -1
- package/dist/schemas/jira.js +0 -56
- package/dist/schemas/jira.js.map +0 -1
- package/dist/schemas/linear.d.ts +0 -108
- package/dist/schemas/linear.d.ts.map +0 -1
- package/dist/schemas/linear.js +0 -84
- package/dist/schemas/linear.js.map +0 -1
- package/dist/scripts/afk/afk.d.ts +0 -21
- package/dist/scripts/afk/afk.d.ts.map +0 -1
- package/dist/scripts/afk/afk.js +0 -118
- package/dist/scripts/afk/afk.js.map +0 -1
- package/dist/scripts/board/github/github.d.ts +0 -104
- package/dist/scripts/board/github/github.d.ts.map +0 -1
- package/dist/scripts/board/github/github.js +0 -291
- package/dist/scripts/board/github/github.js.map +0 -1
- package/dist/scripts/board/jira/jira.d.ts +0 -139
- package/dist/scripts/board/jira/jira.d.ts.map +0 -1
- package/dist/scripts/board/jira/jira.js +0 -378
- package/dist/scripts/board/jira/jira.js.map +0 -1
- package/dist/scripts/board/linear/linear.d.ts +0 -129
- package/dist/scripts/board/linear/linear.d.ts.map +0 -1
- package/dist/scripts/board/linear/linear.js +0 -393
- package/dist/scripts/board/linear/linear.js.map +0 -1
- package/dist/scripts/once/board-ops/board-ops.d.ts +0 -26
- package/dist/scripts/once/board-ops/board-ops.d.ts.map +0 -1
- package/dist/scripts/once/board-ops/board-ops.js +0 -113
- package/dist/scripts/once/board-ops/board-ops.js.map +0 -1
- package/dist/scripts/once/deliver/deliver.d.ts +0 -37
- package/dist/scripts/once/deliver/deliver.d.ts.map +0 -1
- package/dist/scripts/once/deliver/deliver.js +0 -236
- package/dist/scripts/once/deliver/deliver.js.map +0 -1
- package/dist/scripts/once/fetch-ticket/fetch-ticket.d.ts +0 -22
- package/dist/scripts/once/fetch-ticket/fetch-ticket.d.ts.map +0 -1
- package/dist/scripts/once/fetch-ticket/fetch-ticket.js +0 -123
- package/dist/scripts/once/fetch-ticket/fetch-ticket.js.map +0 -1
- package/dist/scripts/once/git-token/git-token.d.ts +0 -13
- package/dist/scripts/once/git-token/git-token.d.ts.map +0 -1
- package/dist/scripts/once/git-token/git-token.js +0 -30
- package/dist/scripts/once/git-token/git-token.js.map +0 -1
- package/dist/scripts/once/once.d.ts +0 -12
- package/dist/scripts/once/once.d.ts.map +0 -1
- package/dist/scripts/once/once.js +0 -356
- package/dist/scripts/once/once.js.map +0 -1
- package/dist/scripts/once/pr-creation/pr-creation.d.ts +0 -11
- package/dist/scripts/once/pr-creation/pr-creation.d.ts.map +0 -1
- package/dist/scripts/once/pr-creation/pr-creation.js +0 -50
- package/dist/scripts/once/pr-creation/pr-creation.js.map +0 -1
- package/dist/scripts/once/rework/rework.d.ts +0 -32
- package/dist/scripts/once/rework/rework.d.ts.map +0 -1
- package/dist/scripts/once/rework/rework.js +0 -208
- package/dist/scripts/once/rework/rework.js.map +0 -1
- package/dist/scripts/once/types/types.d.ts +0 -13
- package/dist/scripts/once/types/types.d.ts.map +0 -1
- package/dist/scripts/once/types/types.js +0 -2
- package/dist/scripts/once/types/types.js.map +0 -1
- package/dist/scripts/shared/branch/branch.d.ts +0 -50
- package/dist/scripts/shared/branch/branch.d.ts.map +0 -1
- package/dist/scripts/shared/branch/branch.js +0 -61
- package/dist/scripts/shared/branch/branch.js.map +0 -1
- package/dist/scripts/shared/claude-cli/claude-cli.d.ts +0 -31
- package/dist/scripts/shared/claude-cli/claude-cli.d.ts.map +0 -1
- package/dist/scripts/shared/claude-cli/claude-cli.js +0 -60
- package/dist/scripts/shared/claude-cli/claude-cli.js.map +0 -1
- package/dist/scripts/shared/env-schema/env-schema.d.ts +0 -27
- package/dist/scripts/shared/env-schema/env-schema.d.ts.map +0 -1
- package/dist/scripts/shared/env-schema/env-schema.js +0 -47
- package/dist/scripts/shared/env-schema/env-schema.js.map +0 -1
- package/dist/scripts/shared/feasibility/feasibility.d.ts +0 -30
- package/dist/scripts/shared/feasibility/feasibility.d.ts.map +0 -1
- package/dist/scripts/shared/feasibility/feasibility.js +0 -68
- package/dist/scripts/shared/feasibility/feasibility.js.map +0 -1
- package/dist/scripts/shared/format/format.d.ts +0 -11
- package/dist/scripts/shared/format/format.d.ts.map +0 -1
- package/dist/scripts/shared/format/format.js +0 -18
- package/dist/scripts/shared/format/format.js.map +0 -1
- package/dist/scripts/shared/git-ops/git-ops.d.ts +0 -90
- package/dist/scripts/shared/git-ops/git-ops.d.ts.map +0 -1
- package/dist/scripts/shared/git-ops/git-ops.js +0 -190
- package/dist/scripts/shared/git-ops/git-ops.js.map +0 -1
- package/dist/scripts/shared/http/http.d.ts +0 -54
- package/dist/scripts/shared/http/http.d.ts.map +0 -1
- package/dist/scripts/shared/http/http.js +0 -76
- package/dist/scripts/shared/http/http.js.map +0 -1
- package/dist/scripts/shared/notify/notify.d.ts +0 -46
- package/dist/scripts/shared/notify/notify.d.ts.map +0 -1
- package/dist/scripts/shared/notify/notify.js +0 -88
- package/dist/scripts/shared/notify/notify.js.map +0 -1
- package/dist/scripts/shared/preflight/preflight.d.ts +0 -40
- package/dist/scripts/shared/preflight/preflight.d.ts.map +0 -1
- package/dist/scripts/shared/preflight/preflight.js +0 -96
- package/dist/scripts/shared/preflight/preflight.js.map +0 -1
- package/dist/scripts/shared/progress/progress.d.ts +0 -75
- package/dist/scripts/shared/progress/progress.d.ts.map +0 -1
- package/dist/scripts/shared/progress/progress.js +0 -210
- package/dist/scripts/shared/progress/progress.js.map +0 -1
- package/dist/scripts/shared/prompt/prompt.d.ts +0 -58
- package/dist/scripts/shared/prompt/prompt.d.ts.map +0 -1
- package/dist/scripts/shared/prompt/prompt.js +0 -123
- package/dist/scripts/shared/prompt/prompt.js.map +0 -1
- package/dist/scripts/shared/pull-request/bitbucket/bitbucket.d.ts +0 -82
- package/dist/scripts/shared/pull-request/bitbucket/bitbucket.d.ts.map +0 -1
- package/dist/scripts/shared/pull-request/bitbucket/bitbucket.js +0 -301
- package/dist/scripts/shared/pull-request/bitbucket/bitbucket.js.map +0 -1
- package/dist/scripts/shared/pull-request/github/github.d.ts +0 -72
- package/dist/scripts/shared/pull-request/github/github.d.ts.map +0 -1
- package/dist/scripts/shared/pull-request/github/github.js +0 -226
- package/dist/scripts/shared/pull-request/github/github.js.map +0 -1
- package/dist/scripts/shared/pull-request/gitlab/gitlab.d.ts +0 -74
- package/dist/scripts/shared/pull-request/gitlab/gitlab.d.ts.map +0 -1
- package/dist/scripts/shared/pull-request/gitlab/gitlab.js +0 -220
- package/dist/scripts/shared/pull-request/gitlab/gitlab.js.map +0 -1
- package/dist/scripts/shared/pull-request/post-pr/post-pr.d.ts +0 -31
- package/dist/scripts/shared/pull-request/post-pr/post-pr.d.ts.map +0 -1
- package/dist/scripts/shared/pull-request/post-pr/post-pr.js +0 -61
- package/dist/scripts/shared/pull-request/post-pr/post-pr.js.map +0 -1
- package/dist/scripts/shared/pull-request/pr-body/pr-body.d.ts +0 -40
- package/dist/scripts/shared/pull-request/pr-body/pr-body.d.ts.map +0 -1
- package/dist/scripts/shared/pull-request/pr-body/pr-body.js +0 -84
- package/dist/scripts/shared/pull-request/pr-body/pr-body.js.map +0 -1
- package/dist/scripts/shared/pull-request/rework-comment/rework-comment.d.ts +0 -23
- package/dist/scripts/shared/pull-request/rework-comment/rework-comment.d.ts.map +0 -1
- package/dist/scripts/shared/pull-request/rework-comment/rework-comment.js +0 -30
- package/dist/scripts/shared/pull-request/rework-comment/rework-comment.js.map +0 -1
- package/dist/scripts/shared/remote/remote.d.ts +0 -41
- package/dist/scripts/shared/remote/remote.d.ts.map +0 -1
- package/dist/scripts/shared/remote/remote.js +0 -227
- package/dist/scripts/shared/remote/remote.js.map +0 -1
- package/dist/types/board.d.ts +0 -13
- package/dist/types/board.d.ts.map +0 -1
- package/dist/types/board.js +0 -5
- package/dist/types/board.js.map +0 -1
- package/dist/types/index.d.ts +0 -4
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/index.js +0 -2
- package/dist/types/index.js.map +0 -1
- package/dist/types/remote.d.ts +0 -55
- package/dist/types/remote.d.ts.map +0 -1
- package/dist/types/remote.js +0 -5
- package/dist/types/remote.js.map +0 -1
- package/dist/utils/parse-json/parse-json.d.ts +0 -20
- package/dist/utils/parse-json/parse-json.d.ts.map +0 -1
- package/dist/utils/parse-json/parse-json.js +0 -27
- package/dist/utils/parse-json/parse-json.js.map +0 -1
|
@@ -1,208 +0,0 @@
|
|
|
1
|
-
import { resolveUsername } from '../../../scripts/board/github/github.js';
|
|
2
|
-
import { computeTicketBranch } from '../../../scripts/shared/branch/branch.js';
|
|
3
|
-
import { findEntriesWithStatus } from '../../../scripts/shared/progress/progress.js';
|
|
4
|
-
import { checkPrReviewState as checkBitbucketPrReviewState, checkServerPrReviewState as checkBitbucketServerPrReviewState, fetchPrReviewComments as fetchBitbucketPrReviewComments, fetchServerPrReviewComments as fetchBitbucketServerPrReviewComments, postCloudPrComment, postServerPrComment, } from '../../../scripts/shared/pull-request/bitbucket/bitbucket.js';
|
|
5
|
-
import { checkPrReviewState as checkGitHubPrReviewState, fetchPrReviewComments as fetchGitHubPrReviewComments, postPrComment as postGitHubPrComment, requestReview as requestGitHubReview, } from '../../../scripts/shared/pull-request/github/github.js';
|
|
6
|
-
import { checkMrReviewState as checkGitLabMrReviewState, fetchMrReviewComments as fetchGitLabMrReviewComments, postMrNote, resolveDiscussions, } from '../../../scripts/shared/pull-request/gitlab/gitlab.js';
|
|
7
|
-
import { buildApiBaseUrl, detectRemote, } from '../../../scripts/shared/remote/remote.js';
|
|
8
|
-
import { dim } from '../../../utils/ansi/ansi.js';
|
|
9
|
-
import { sharedEnv } from '../board-ops/board-ops.js';
|
|
10
|
-
import { resolveGitToken } from '../git-token/git-token.js';
|
|
11
|
-
// ─── PR-based rework detection ────────────────────────────────────────────────
|
|
12
|
-
/**
|
|
13
|
-
* Check open PRs for review feedback requesting changes.
|
|
14
|
-
*
|
|
15
|
-
* Scans progress.txt for tickets with status PR_CREATED, then checks
|
|
16
|
-
* the corresponding PR's review state on the detected remote platform.
|
|
17
|
-
* If a reviewer has requested changes, returns the ticket and feedback.
|
|
18
|
-
*
|
|
19
|
-
* This is best-effort — errors are swallowed so the orchestrator
|
|
20
|
-
* can fall through to fresh ticket fetch.
|
|
21
|
-
*/
|
|
22
|
-
export async function fetchReworkFromPrReview(config) {
|
|
23
|
-
const prCreated = findEntriesWithStatus(process.cwd(), 'PR_CREATED');
|
|
24
|
-
const reworked = findEntriesWithStatus(process.cwd(), 'REWORK');
|
|
25
|
-
const pushed = findEntriesWithStatus(process.cwd(), 'PUSHED');
|
|
26
|
-
const pushFailed = findEntriesWithStatus(process.cwd(), 'PUSH_FAILED');
|
|
27
|
-
const candidates = [...prCreated, ...reworked, ...pushed, ...pushFailed];
|
|
28
|
-
if (candidates.length === 0)
|
|
29
|
-
return undefined;
|
|
30
|
-
const platformOverride = sharedEnv(config).CLANCY_GIT_PLATFORM;
|
|
31
|
-
const remote = detectRemote(platformOverride);
|
|
32
|
-
if (remote.host === 'none' ||
|
|
33
|
-
remote.host === 'unknown' ||
|
|
34
|
-
remote.host === 'azure') {
|
|
35
|
-
return undefined;
|
|
36
|
-
}
|
|
37
|
-
const creds = resolveGitToken(config, remote);
|
|
38
|
-
if (!creds)
|
|
39
|
-
return undefined;
|
|
40
|
-
const apiBase = buildApiBaseUrl(remote, sharedEnv(config).CLANCY_GIT_API_URL);
|
|
41
|
-
if (!apiBase)
|
|
42
|
-
return undefined;
|
|
43
|
-
// Resolve GitHub username for author filtering (GitHub only)
|
|
44
|
-
let ghUsername;
|
|
45
|
-
if (remote.host === 'github') {
|
|
46
|
-
try {
|
|
47
|
-
ghUsername = await resolveUsername(creds.token, apiBase);
|
|
48
|
-
}
|
|
49
|
-
catch {
|
|
50
|
-
// Best-effort — skip author filtering if username resolution fails
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
// Limit to first 5 candidates to avoid rate limits
|
|
54
|
-
const toCheck = candidates.slice(0, 5);
|
|
55
|
-
for (const entry of toCheck) {
|
|
56
|
-
const branch = computeTicketBranch(config.provider, entry.key);
|
|
57
|
-
// Convert progress timestamp (YYYY-MM-DD HH:MM) to ISO 8601 for API filtering.
|
|
58
|
-
// Only comments created AFTER this timestamp should trigger rework,
|
|
59
|
-
// preventing stale inline comments from causing infinite rework loops.
|
|
60
|
-
// Parse UTC timestamp (YYYY-MM-DD HH:MM) to ISO 8601.
|
|
61
|
-
// Falls back to undefined if timestamp is invalid (skips filtering).
|
|
62
|
-
let since;
|
|
63
|
-
if (entry.timestamp) {
|
|
64
|
-
const date = new Date(entry.timestamp.replace(' ', 'T') + 'Z');
|
|
65
|
-
since = Number.isNaN(date.getTime()) ? undefined : date.toISOString();
|
|
66
|
-
}
|
|
67
|
-
let reviewState;
|
|
68
|
-
switch (remote.host) {
|
|
69
|
-
case 'github':
|
|
70
|
-
reviewState = await checkGitHubPrReviewState(creds.token, `${remote.owner}/${remote.repo}`, branch, remote.owner, apiBase, since, ghUsername);
|
|
71
|
-
break;
|
|
72
|
-
case 'gitlab':
|
|
73
|
-
reviewState = await checkGitLabMrReviewState(creds.token, apiBase, remote.projectPath, branch, since);
|
|
74
|
-
break;
|
|
75
|
-
case 'bitbucket':
|
|
76
|
-
reviewState = await checkBitbucketPrReviewState(creds.username, creds.token, remote.workspace, remote.repoSlug, branch, since);
|
|
77
|
-
break;
|
|
78
|
-
case 'bitbucket-server':
|
|
79
|
-
reviewState = await checkBitbucketServerPrReviewState(creds.token, apiBase, remote.projectKey, remote.repoSlug, branch, since);
|
|
80
|
-
break;
|
|
81
|
-
}
|
|
82
|
-
if (reviewState?.changesRequested) {
|
|
83
|
-
// Fetch review comments for the PR
|
|
84
|
-
let feedback = [];
|
|
85
|
-
let discussionIds;
|
|
86
|
-
switch (remote.host) {
|
|
87
|
-
case 'github':
|
|
88
|
-
feedback = await fetchGitHubPrReviewComments(creds.token, `${remote.owner}/${remote.repo}`, reviewState.prNumber, apiBase, since, ghUsername);
|
|
89
|
-
break;
|
|
90
|
-
case 'gitlab': {
|
|
91
|
-
const mrResult = await fetchGitLabMrReviewComments(creds.token, apiBase, remote.projectPath, reviewState.prNumber, since);
|
|
92
|
-
feedback = mrResult.comments;
|
|
93
|
-
discussionIds = mrResult.discussionIds;
|
|
94
|
-
break;
|
|
95
|
-
}
|
|
96
|
-
case 'bitbucket':
|
|
97
|
-
feedback = await fetchBitbucketPrReviewComments(creds.username, creds.token, remote.workspace, remote.repoSlug, reviewState.prNumber, since);
|
|
98
|
-
break;
|
|
99
|
-
case 'bitbucket-server':
|
|
100
|
-
feedback = await fetchBitbucketServerPrReviewComments(creds.token, apiBase, remote.projectKey, remote.repoSlug, reviewState.prNumber, since);
|
|
101
|
-
break;
|
|
102
|
-
}
|
|
103
|
-
const ticket = {
|
|
104
|
-
key: entry.key,
|
|
105
|
-
title: entry.summary,
|
|
106
|
-
description: entry.summary,
|
|
107
|
-
parentInfo: entry.parent ?? 'none',
|
|
108
|
-
blockers: 'None',
|
|
109
|
-
};
|
|
110
|
-
return {
|
|
111
|
-
ticket,
|
|
112
|
-
feedback,
|
|
113
|
-
prNumber: reviewState.prNumber,
|
|
114
|
-
discussionIds,
|
|
115
|
-
reviewers: reviewState.reviewers ?? [],
|
|
116
|
-
};
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
return undefined;
|
|
120
|
-
}
|
|
121
|
-
// ─── Post-rework actions ──────────────────────────────────────────────────
|
|
122
|
-
/**
|
|
123
|
-
* Build a rework comment to post on the PR after pushing fixes.
|
|
124
|
-
*
|
|
125
|
-
* Prefixed with `[clancy]` (not `Rework:`) so it does NOT trigger
|
|
126
|
-
* rework detection on the next cycle.
|
|
127
|
-
*/
|
|
128
|
-
export function buildReworkComment(feedback) {
|
|
129
|
-
if (feedback.length === 0) {
|
|
130
|
-
return '[clancy] Rework pushed addressing reviewer feedback.';
|
|
131
|
-
}
|
|
132
|
-
const count = feedback.length;
|
|
133
|
-
const summary = feedback
|
|
134
|
-
.slice(0, 3)
|
|
135
|
-
.map((f) => `- ${f.slice(0, 80)}`)
|
|
136
|
-
.join('\n');
|
|
137
|
-
const suffix = feedback.length > 3 ? '\n- ...' : '';
|
|
138
|
-
return `[clancy] Rework pushed addressing ${count} feedback item${count !== 1 ? 's' : ''}.\n\n${summary}${suffix}`;
|
|
139
|
-
}
|
|
140
|
-
/**
|
|
141
|
-
* Perform post-rework actions: comment on PR, re-request review (GitHub),
|
|
142
|
-
* resolve threads (GitLab). All best-effort — failures warn but don't block.
|
|
143
|
-
*/
|
|
144
|
-
export async function postReworkActions(config, prNumber, feedback, discussionIds, reviewers) {
|
|
145
|
-
const platformOverride = sharedEnv(config).CLANCY_GIT_PLATFORM;
|
|
146
|
-
const remote = detectRemote(platformOverride);
|
|
147
|
-
if (remote.host === 'none' ||
|
|
148
|
-
remote.host === 'unknown' ||
|
|
149
|
-
remote.host === 'azure') {
|
|
150
|
-
return;
|
|
151
|
-
}
|
|
152
|
-
const creds = resolveGitToken(config, remote);
|
|
153
|
-
if (!creds)
|
|
154
|
-
return;
|
|
155
|
-
const apiBase = buildApiBaseUrl(remote, sharedEnv(config).CLANCY_GIT_API_URL);
|
|
156
|
-
if (!apiBase)
|
|
157
|
-
return;
|
|
158
|
-
const comment = buildReworkComment(feedback);
|
|
159
|
-
// 1. Post rework comment
|
|
160
|
-
try {
|
|
161
|
-
let posted = false;
|
|
162
|
-
switch (remote.host) {
|
|
163
|
-
case 'github':
|
|
164
|
-
posted = await postGitHubPrComment(creds.token, `${remote.owner}/${remote.repo}`, prNumber, comment, apiBase);
|
|
165
|
-
break;
|
|
166
|
-
case 'gitlab':
|
|
167
|
-
posted = await postMrNote(creds.token, apiBase, remote.projectPath, prNumber, comment);
|
|
168
|
-
break;
|
|
169
|
-
case 'bitbucket':
|
|
170
|
-
posted = await postCloudPrComment(creds.username, creds.token, remote.workspace, remote.repoSlug, prNumber, comment);
|
|
171
|
-
break;
|
|
172
|
-
case 'bitbucket-server':
|
|
173
|
-
posted = await postServerPrComment(creds.token, apiBase, remote.projectKey, remote.repoSlug, prNumber, comment);
|
|
174
|
-
break;
|
|
175
|
-
}
|
|
176
|
-
if (posted) {
|
|
177
|
-
console.log(dim(' ✓ Posted rework comment'));
|
|
178
|
-
}
|
|
179
|
-
}
|
|
180
|
-
catch {
|
|
181
|
-
// Best-effort
|
|
182
|
-
}
|
|
183
|
-
// 2. GitLab: resolve addressed discussion threads
|
|
184
|
-
if (remote.host === 'gitlab' && discussionIds && discussionIds.length > 0) {
|
|
185
|
-
try {
|
|
186
|
-
const resolved = await resolveDiscussions(creds.token, apiBase, remote.projectPath, prNumber, discussionIds);
|
|
187
|
-
if (resolved > 0) {
|
|
188
|
-
console.log(dim(` ✓ Resolved ${resolved} discussion thread${resolved !== 1 ? 's' : ''}`));
|
|
189
|
-
}
|
|
190
|
-
}
|
|
191
|
-
catch {
|
|
192
|
-
// Best-effort
|
|
193
|
-
}
|
|
194
|
-
}
|
|
195
|
-
// 3. GitHub: re-request review from reviewers who requested changes
|
|
196
|
-
if (remote.host === 'github' && reviewers && reviewers.length > 0) {
|
|
197
|
-
try {
|
|
198
|
-
const ok = await requestGitHubReview(creds.token, `${remote.owner}/${remote.repo}`, prNumber, reviewers, apiBase);
|
|
199
|
-
if (ok) {
|
|
200
|
-
console.log(dim(` ✓ Re-requested review from ${reviewers.join(', ')}`));
|
|
201
|
-
}
|
|
202
|
-
}
|
|
203
|
-
catch {
|
|
204
|
-
// Best-effort
|
|
205
|
-
}
|
|
206
|
-
}
|
|
207
|
-
}
|
|
208
|
-
//# sourceMappingURL=rework.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"rework.js","sourceRoot":"","sources":["../../../../src/scripts/once/rework/rework.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAExE,OAAO,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;AAC9E,OAAO,EACL,kBAAkB,IAAI,2BAA2B,EACjD,wBAAwB,IAAI,iCAAiC,EAC7D,qBAAqB,IAAI,8BAA8B,EACvD,2BAA2B,IAAI,oCAAoC,EACnE,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,sDAAsD,CAAC;AAC9D,OAAO,EACL,kBAAkB,IAAI,wBAAwB,EAC9C,qBAAqB,IAAI,2BAA2B,EACpD,aAAa,IAAI,mBAAmB,EACpC,aAAa,IAAI,mBAAmB,GACrC,MAAM,gDAAgD,CAAC;AACxD,OAAO,EACL,kBAAkB,IAAI,wBAAwB,EAC9C,qBAAqB,IAAI,2BAA2B,EACpD,UAAU,EACV,kBAAkB,GACnB,MAAM,gDAAgD,CAAC;AACxD,OAAO,EACL,eAAe,EACf,YAAY,GACb,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAC;AAE3C,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAG5D,iFAAiF;AAEjF;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,MAAmB;IAU/D,MAAM,SAAS,GAAG,qBAAqB,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,YAAY,CAAC,CAAC;IACrE,MAAM,QAAQ,GAAG,qBAAqB,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,CAAC;IAChE,MAAM,MAAM,GAAG,qBAAqB,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,CAAC;IAC9D,MAAM,UAAU,GAAG,qBAAqB,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,CAAC,CAAC;IACvE,MAAM,UAAU,GAAG,CAAC,GAAG,SAAS,EAAE,GAAG,QAAQ,EAAE,GAAG,MAAM,EAAE,GAAG,UAAU,CAAC,CAAC;IACzE,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAE9C,MAAM,gBAAgB,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,mBAAmB,CAAC;IAC/D,MAAM,MAAM,GAAG,YAAY,CAAC,gBAAgB,CAAC,CAAC;IAE9C,IACE,MAAM,CAAC,IAAI,KAAK,MAAM;QACtB,MAAM,CAAC,IAAI,KAAK,SAAS;QACzB,MAAM,CAAC,IAAI,KAAK,OAAO,EACvB,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,KAAK,GAAG,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9C,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAE7B,MAAM,OAAO,GAAG,eAAe,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,kBAAkB,CAAC,CAAC;IAC9E,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IAE/B,6DAA6D;IAC7D,IAAI,UAA8B,CAAC;IACnC,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,IAAI,CAAC;YACH,UAAU,GAAG,MAAM,eAAe,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC3D,CAAC;QAAC,MAAM,CAAC;YACP,mEAAmE;QACrE,CAAC;IACH,CAAC;IAED,mDAAmD;IACnD,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAEvC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,mBAAmB,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;QAE/D,+EAA+E;QAC/E,oEAAoE;QACpE,uEAAuE;QACvE,sDAAsD;QACtD,qEAAqE;QACrE,IAAI,KAAyB,CAAC;QAC9B,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;YACpB,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;YAC/D,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QACxE,CAAC;QAED,IAAI,WAOS,CAAC;QAEd,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;YACpB,KAAK,QAAQ;gBACX,WAAW,GAAG,MAAM,wBAAwB,CAC1C,KAAK,CAAC,KAAK,EACX,GAAG,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,EAAE,EAChC,MAAM,EACN,MAAM,CAAC,KAAK,EACZ,OAAO,EACP,KAAK,EACL,UAAU,CACX,CAAC;gBACF,MAAM;YACR,KAAK,QAAQ;gBACX,WAAW,GAAG,MAAM,wBAAwB,CAC1C,KAAK,CAAC,KAAK,EACX,OAAO,EACP,MAAM,CAAC,WAAW,EAClB,MAAM,EACN,KAAK,CACN,CAAC;gBACF,MAAM;YACR,KAAK,WAAW;gBACd,WAAW,GAAG,MAAM,2BAA2B,CAC7C,KAAK,CAAC,QAAS,EACf,KAAK,CAAC,KAAK,EACX,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,QAAQ,EACf,MAAM,EACN,KAAK,CACN,CAAC;gBACF,MAAM;YACR,KAAK,kBAAkB;gBACrB,WAAW,GAAG,MAAM,iCAAiC,CACnD,KAAK,CAAC,KAAK,EACX,OAAO,EACP,MAAM,CAAC,UAAU,EACjB,MAAM,CAAC,QAAQ,EACf,MAAM,EACN,KAAK,CACN,CAAC;gBACF,MAAM;QACV,CAAC;QAED,IAAI,WAAW,EAAE,gBAAgB,EAAE,CAAC;YAClC,mCAAmC;YACnC,IAAI,QAAQ,GAAa,EAAE,CAAC;YAE5B,IAAI,aAAmC,CAAC;YAExC,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;gBACpB,KAAK,QAAQ;oBACX,QAAQ,GAAG,MAAM,2BAA2B,CAC1C,KAAK,CAAC,KAAK,EACX,GAAG,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,EAAE,EAChC,WAAW,CAAC,QAAQ,EACpB,OAAO,EACP,KAAK,EACL,UAAU,CACX,CAAC;oBACF,MAAM;gBACR,KAAK,QAAQ,CAAC,CAAC,CAAC;oBACd,MAAM,QAAQ,GAAG,MAAM,2BAA2B,CAChD,KAAK,CAAC,KAAK,EACX,OAAO,EACP,MAAM,CAAC,WAAW,EAClB,WAAW,CAAC,QAAQ,EACpB,KAAK,CACN,CAAC;oBACF,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;oBAC7B,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAC;oBACvC,MAAM;gBACR,CAAC;gBACD,KAAK,WAAW;oBACd,QAAQ,GAAG,MAAM,8BAA8B,CAC7C,KAAK,CAAC,QAAS,EACf,KAAK,CAAC,KAAK,EACX,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,QAAQ,EACf,WAAW,CAAC,QAAQ,EACpB,KAAK,CACN,CAAC;oBACF,MAAM;gBACR,KAAK,kBAAkB;oBACrB,QAAQ,GAAG,MAAM,oCAAoC,CACnD,KAAK,CAAC,KAAK,EACX,OAAO,EACP,MAAM,CAAC,UAAU,EACjB,MAAM,CAAC,QAAQ,EACf,WAAW,CAAC,QAAQ,EACpB,KAAK,CACN,CAAC;oBACF,MAAM;YACV,CAAC;YAED,MAAM,MAAM,GAAkB;gBAC5B,GAAG,EAAE,KAAK,CAAC,GAAG;gBACd,KAAK,EAAE,KAAK,CAAC,OAAO;gBACpB,WAAW,EAAE,KAAK,CAAC,OAAO;gBAC1B,UAAU,EAAE,KAAK,CAAC,MAAM,IAAI,MAAM;gBAClC,QAAQ,EAAE,MAAM;aACjB,CAAC;YAEF,OAAO;gBACL,MAAM;gBACN,QAAQ;gBACR,QAAQ,EAAE,WAAW,CAAC,QAAQ;gBAC9B,aAAa;gBACb,SAAS,EAAE,WAAW,CAAC,SAAS,IAAI,EAAE;aACvC,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,6EAA6E;AAE7E;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,QAAkB;IACnD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,sDAAsD,CAAC;IAChE,CAAC;IACD,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC;IAC9B,MAAM,OAAO,GAAG,QAAQ;SACrB,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;SACX,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;SACjC,IAAI,CAAC,IAAI,CAAC,CAAC;IACd,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;IACpD,OAAO,qCAAqC,KAAK,iBAAiB,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,QAAQ,OAAO,GAAG,MAAM,EAAE,CAAC;AACrH,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,MAAmB,EACnB,QAAgB,EAChB,QAAkB,EAClB,aAAwB,EACxB,SAAoB;IAEpB,MAAM,gBAAgB,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,mBAAmB,CAAC;IAC/D,MAAM,MAAM,GAAG,YAAY,CAAC,gBAAgB,CAAC,CAAC;IAE9C,IACE,MAAM,CAAC,IAAI,KAAK,MAAM;QACtB,MAAM,CAAC,IAAI,KAAK,SAAS;QACzB,MAAM,CAAC,IAAI,KAAK,OAAO,EACvB,CAAC;QACD,OAAO;IACT,CAAC;IAED,MAAM,KAAK,GAAG,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9C,IAAI,CAAC,KAAK;QAAE,OAAO;IAEnB,MAAM,OAAO,GAAG,eAAe,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,kBAAkB,CAAC,CAAC;IAC9E,IAAI,CAAC,OAAO;QAAE,OAAO;IAErB,MAAM,OAAO,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IAE7C,yBAAyB;IACzB,IAAI,CAAC;QACH,IAAI,MAAM,GAAG,KAAK,CAAC;QAEnB,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;YACpB,KAAK,QAAQ;gBACX,MAAM,GAAG,MAAM,mBAAmB,CAChC,KAAK,CAAC,KAAK,EACX,GAAG,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,EAAE,EAChC,QAAQ,EACR,OAAO,EACP,OAAO,CACR,CAAC;gBACF,MAAM;YACR,KAAK,QAAQ;gBACX,MAAM,GAAG,MAAM,UAAU,CACvB,KAAK,CAAC,KAAK,EACX,OAAO,EACP,MAAM,CAAC,WAAW,EAClB,QAAQ,EACR,OAAO,CACR,CAAC;gBACF,MAAM;YACR,KAAK,WAAW;gBACd,MAAM,GAAG,MAAM,kBAAkB,CAC/B,KAAK,CAAC,QAAS,EACf,KAAK,CAAC,KAAK,EACX,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,QAAQ,EACf,QAAQ,EACR,OAAO,CACR,CAAC;gBACF,MAAM;YACR,KAAK,kBAAkB;gBACrB,MAAM,GAAG,MAAM,mBAAmB,CAChC,KAAK,CAAC,KAAK,EACX,OAAO,EACP,MAAM,CAAC,UAAU,EACjB,MAAM,CAAC,QAAQ,EACf,QAAQ,EACR,OAAO,CACR,CAAC;gBACF,MAAM;QACV,CAAC;QAED,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,cAAc;IAChB,CAAC;IAED,kDAAkD;IAClD,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,aAAa,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1E,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CACvC,KAAK,CAAC,KAAK,EACX,OAAO,EACP,MAAM,CAAC,WAAW,EAClB,QAAQ,EACR,aAAa,CACd,CAAC;YACF,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;gBACjB,OAAO,CAAC,GAAG,CACT,GAAG,CACD,gBAAgB,QAAQ,qBAAqB,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACzE,CACF,CAAC;YACJ,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,cAAc;QAChB,CAAC;IACH,CAAC;IAED,oEAAoE;IACpE,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClE,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,MAAM,mBAAmB,CAClC,KAAK,CAAC,KAAK,EACX,GAAG,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,EAAE,EAChC,QAAQ,EACR,SAAS,EACT,OAAO,CACR,CAAC;YACF,IAAI,EAAE,EAAE,CAAC;gBACP,OAAO,CAAC,GAAG,CACT,GAAG,CAAC,gCAAgC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAC5D,CAAC;YACJ,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,cAAc;QAChB,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
/** Normalised ticket representation used within the once orchestrator. */
|
|
2
|
-
export type FetchedTicket = {
|
|
3
|
-
key: string;
|
|
4
|
-
title: string;
|
|
5
|
-
description: string;
|
|
6
|
-
parentInfo: string;
|
|
7
|
-
blockers: string;
|
|
8
|
-
/** Linear internal issue ID — needed for state transitions. */
|
|
9
|
-
linearIssueId?: string;
|
|
10
|
-
/** Board-specific issue ID — needed for feedback fetching (e.g., Linear UUID). */
|
|
11
|
-
issueId?: string;
|
|
12
|
-
};
|
|
13
|
-
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/scripts/once/types/types.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,MAAM,MAAM,aAAa,GAAG;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,+DAA+D;IAC/D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kFAAkF;IAClF,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/scripts/once/types/types.ts"],"names":[],"mappings":""}
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Branch name computation for ticket workflows.
|
|
3
|
-
*
|
|
4
|
-
* Pure functions that compute feature and target branch names
|
|
5
|
-
* based on the board provider and ticket metadata.
|
|
6
|
-
*/
|
|
7
|
-
import type { BoardProvider } from '../../../types/index.js';
|
|
8
|
-
/**
|
|
9
|
-
* Compute the feature branch name for a ticket.
|
|
10
|
-
*
|
|
11
|
-
* - Jira/Linear: `feature/{key-lowercase}` (e.g., `feature/proj-123`)
|
|
12
|
-
* - GitHub: `feature/issue-{number}` (e.g., `feature/issue-42`)
|
|
13
|
-
*
|
|
14
|
-
* @param provider - The board provider.
|
|
15
|
-
* @param key - The ticket key (e.g., `'PROJ-123'`, `'#42'`, `'ENG-123'`).
|
|
16
|
-
* @returns The feature branch name.
|
|
17
|
-
*
|
|
18
|
-
* @example
|
|
19
|
-
* ```ts
|
|
20
|
-
* computeTicketBranch('jira', 'PROJ-123'); // 'feature/proj-123'
|
|
21
|
-
* computeTicketBranch('github', '#42'); // 'feature/issue-42'
|
|
22
|
-
* computeTicketBranch('linear', 'ENG-123'); // 'feature/eng-123'
|
|
23
|
-
* ```
|
|
24
|
-
*/
|
|
25
|
-
export declare function computeTicketBranch(provider: BoardProvider, key: string): string;
|
|
26
|
-
/**
|
|
27
|
-
* Compute the target branch for merging.
|
|
28
|
-
*
|
|
29
|
-
* If the ticket has a parent (epic/milestone), branches from that parent's
|
|
30
|
-
* branch. Otherwise falls back to the base branch.
|
|
31
|
-
*
|
|
32
|
-
* - Jira: epic key → `epic/{key-lowercase}`
|
|
33
|
-
* - GitHub: milestone → `milestone/{slug}`
|
|
34
|
-
* - Linear: parent identifier → `epic/{id-lowercase}`
|
|
35
|
-
*
|
|
36
|
-
* @param provider - The board provider.
|
|
37
|
-
* @param baseBranch - The default base branch (e.g., `'main'`).
|
|
38
|
-
* @param parent - Optional parent identifier (epic key, milestone title, parent ID).
|
|
39
|
-
* @returns The target branch name.
|
|
40
|
-
*
|
|
41
|
-
* @example
|
|
42
|
-
* ```ts
|
|
43
|
-
* computeTargetBranch('jira', 'main', 'PROJ-100'); // 'epic/proj-100'
|
|
44
|
-
* computeTargetBranch('github', 'main', 'Sprint 3'); // 'milestone/sprint-3'
|
|
45
|
-
* computeTargetBranch('linear', 'main', 'ENG-50'); // 'epic/eng-50'
|
|
46
|
-
* computeTargetBranch('jira', 'main'); // 'main'
|
|
47
|
-
* ```
|
|
48
|
-
*/
|
|
49
|
-
export declare function computeTargetBranch(provider: BoardProvider, baseBranch: string, parent?: string): string;
|
|
50
|
-
//# sourceMappingURL=branch.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"branch.d.ts","sourceRoot":"","sources":["../../../../src/scripts/shared/branch/branch.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,aAAa,EACvB,GAAG,EAAE,MAAM,GACV,MAAM,CAOR;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,aAAa,EACvB,UAAU,EAAE,MAAM,EAClB,MAAM,CAAC,EAAE,MAAM,GACd,MAAM,CAaR"}
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Compute the feature branch name for a ticket.
|
|
3
|
-
*
|
|
4
|
-
* - Jira/Linear: `feature/{key-lowercase}` (e.g., `feature/proj-123`)
|
|
5
|
-
* - GitHub: `feature/issue-{number}` (e.g., `feature/issue-42`)
|
|
6
|
-
*
|
|
7
|
-
* @param provider - The board provider.
|
|
8
|
-
* @param key - The ticket key (e.g., `'PROJ-123'`, `'#42'`, `'ENG-123'`).
|
|
9
|
-
* @returns The feature branch name.
|
|
10
|
-
*
|
|
11
|
-
* @example
|
|
12
|
-
* ```ts
|
|
13
|
-
* computeTicketBranch('jira', 'PROJ-123'); // 'feature/proj-123'
|
|
14
|
-
* computeTicketBranch('github', '#42'); // 'feature/issue-42'
|
|
15
|
-
* computeTicketBranch('linear', 'ENG-123'); // 'feature/eng-123'
|
|
16
|
-
* ```
|
|
17
|
-
*/
|
|
18
|
-
export function computeTicketBranch(provider, key) {
|
|
19
|
-
if (provider === 'github') {
|
|
20
|
-
const number = key.replace('#', '');
|
|
21
|
-
return `feature/issue-${number}`;
|
|
22
|
-
}
|
|
23
|
-
return `feature/${key.toLowerCase()}`;
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* Compute the target branch for merging.
|
|
27
|
-
*
|
|
28
|
-
* If the ticket has a parent (epic/milestone), branches from that parent's
|
|
29
|
-
* branch. Otherwise falls back to the base branch.
|
|
30
|
-
*
|
|
31
|
-
* - Jira: epic key → `epic/{key-lowercase}`
|
|
32
|
-
* - GitHub: milestone → `milestone/{slug}`
|
|
33
|
-
* - Linear: parent identifier → `epic/{id-lowercase}`
|
|
34
|
-
*
|
|
35
|
-
* @param provider - The board provider.
|
|
36
|
-
* @param baseBranch - The default base branch (e.g., `'main'`).
|
|
37
|
-
* @param parent - Optional parent identifier (epic key, milestone title, parent ID).
|
|
38
|
-
* @returns The target branch name.
|
|
39
|
-
*
|
|
40
|
-
* @example
|
|
41
|
-
* ```ts
|
|
42
|
-
* computeTargetBranch('jira', 'main', 'PROJ-100'); // 'epic/proj-100'
|
|
43
|
-
* computeTargetBranch('github', 'main', 'Sprint 3'); // 'milestone/sprint-3'
|
|
44
|
-
* computeTargetBranch('linear', 'main', 'ENG-50'); // 'epic/eng-50'
|
|
45
|
-
* computeTargetBranch('jira', 'main'); // 'main'
|
|
46
|
-
* ```
|
|
47
|
-
*/
|
|
48
|
-
export function computeTargetBranch(provider, baseBranch, parent) {
|
|
49
|
-
if (!parent)
|
|
50
|
-
return baseBranch;
|
|
51
|
-
if (provider === 'github') {
|
|
52
|
-
const slug = parent
|
|
53
|
-
.toLowerCase()
|
|
54
|
-
.replace(/\s+/g, '-')
|
|
55
|
-
.replace(/[^a-z0-9-]/g, '');
|
|
56
|
-
return `milestone/${slug}`;
|
|
57
|
-
}
|
|
58
|
-
// Jira and Linear both use epic/ prefix
|
|
59
|
-
return `epic/${parent.toLowerCase()}`;
|
|
60
|
-
}
|
|
61
|
-
//# sourceMappingURL=branch.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"branch.js","sourceRoot":"","sources":["../../../../src/scripts/shared/branch/branch.ts"],"names":[],"mappings":"AAQA;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,mBAAmB,CACjC,QAAuB,EACvB,GAAW;IAEX,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACpC,OAAO,iBAAiB,MAAM,EAAE,CAAC;IACnC,CAAC;IAED,OAAO,WAAW,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC;AACxC,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,UAAU,mBAAmB,CACjC,QAAuB,EACvB,UAAkB,EAClB,MAAe;IAEf,IAAI,CAAC,MAAM;QAAE,OAAO,UAAU,CAAC;IAE/B,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC1B,MAAM,IAAI,GAAG,MAAM;aAChB,WAAW,EAAE;aACb,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;aACpB,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;QAC9B,OAAO,aAAa,IAAI,EAAE,CAAC;IAC7B,CAAC;IAED,wCAAwC;IACxC,OAAO,QAAQ,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC;AACxC,CAAC"}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Invoke Claude in print mode and capture the response.
|
|
3
|
-
*
|
|
4
|
-
* Uses `claude -p` for a single-prompt, non-interactive invocation.
|
|
5
|
-
* Stdout is captured (not streamed) so the caller can parse it.
|
|
6
|
-
*
|
|
7
|
-
* @param prompt - The prompt to send.
|
|
8
|
-
* @param model - Optional model override.
|
|
9
|
-
* @returns The captured stdout and whether the process succeeded.
|
|
10
|
-
*/
|
|
11
|
-
export declare function invokeClaudePrint(prompt: string, model?: string): {
|
|
12
|
-
stdout: string;
|
|
13
|
-
ok: boolean;
|
|
14
|
-
};
|
|
15
|
-
/**
|
|
16
|
-
* Invoke a Claude Code session with the given prompt.
|
|
17
|
-
*
|
|
18
|
-
* Pipes the prompt to stdin and streams stdout/stderr live.
|
|
19
|
-
* Uses `--dangerously-skip-permissions` for autonomous operation.
|
|
20
|
-
*
|
|
21
|
-
* @param prompt - The full implementation prompt.
|
|
22
|
-
* @param model - Optional model override (e.g., `'opus'`, `'sonnet'`).
|
|
23
|
-
* @returns `true` if Claude exited successfully (code 0), `false` otherwise.
|
|
24
|
-
*
|
|
25
|
-
* @example
|
|
26
|
-
* ```ts
|
|
27
|
-
* invokeClaudeSession('You are implementing PROJ-123...', 'opus');
|
|
28
|
-
* ```
|
|
29
|
-
*/
|
|
30
|
-
export declare function invokeClaudeSession(prompt: string, model?: string): boolean;
|
|
31
|
-
//# sourceMappingURL=claude-cli.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"claude-cli.d.ts","sourceRoot":"","sources":["../../../../src/scripts/shared/claude-cli/claude-cli.ts"],"names":[],"mappings":"AAQA;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,MAAM,EACd,KAAK,CAAC,EAAE,MAAM,GACb;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,OAAO,CAAA;CAAE,CAiBjC;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAc3E"}
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Claude CLI invocation for ticket implementation.
|
|
3
|
-
*
|
|
4
|
-
* Spawns `claude --dangerously-skip-permissions` with the prompt piped
|
|
5
|
-
* to stdin. Output streams live to the user's terminal.
|
|
6
|
-
*/
|
|
7
|
-
import { spawnSync } from 'node:child_process';
|
|
8
|
-
/**
|
|
9
|
-
* Invoke Claude in print mode and capture the response.
|
|
10
|
-
*
|
|
11
|
-
* Uses `claude -p` for a single-prompt, non-interactive invocation.
|
|
12
|
-
* Stdout is captured (not streamed) so the caller can parse it.
|
|
13
|
-
*
|
|
14
|
-
* @param prompt - The prompt to send.
|
|
15
|
-
* @param model - Optional model override.
|
|
16
|
-
* @returns The captured stdout and whether the process succeeded.
|
|
17
|
-
*/
|
|
18
|
-
export function invokeClaudePrint(prompt, model) {
|
|
19
|
-
const args = ['-p', '--dangerously-skip-permissions'];
|
|
20
|
-
if (model) {
|
|
21
|
-
args.push('--model', model);
|
|
22
|
-
}
|
|
23
|
-
const result = spawnSync('claude', args, {
|
|
24
|
-
input: prompt,
|
|
25
|
-
stdio: ['pipe', 'pipe', 'pipe'],
|
|
26
|
-
encoding: 'utf8',
|
|
27
|
-
});
|
|
28
|
-
return {
|
|
29
|
-
stdout: result.stdout ?? '',
|
|
30
|
-
ok: result.status === 0 && !result.error,
|
|
31
|
-
};
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* Invoke a Claude Code session with the given prompt.
|
|
35
|
-
*
|
|
36
|
-
* Pipes the prompt to stdin and streams stdout/stderr live.
|
|
37
|
-
* Uses `--dangerously-skip-permissions` for autonomous operation.
|
|
38
|
-
*
|
|
39
|
-
* @param prompt - The full implementation prompt.
|
|
40
|
-
* @param model - Optional model override (e.g., `'opus'`, `'sonnet'`).
|
|
41
|
-
* @returns `true` if Claude exited successfully (code 0), `false` otherwise.
|
|
42
|
-
*
|
|
43
|
-
* @example
|
|
44
|
-
* ```ts
|
|
45
|
-
* invokeClaudeSession('You are implementing PROJ-123...', 'opus');
|
|
46
|
-
* ```
|
|
47
|
-
*/
|
|
48
|
-
export function invokeClaudeSession(prompt, model) {
|
|
49
|
-
const args = ['--dangerously-skip-permissions'];
|
|
50
|
-
if (model) {
|
|
51
|
-
args.push('--model', model);
|
|
52
|
-
}
|
|
53
|
-
const result = spawnSync('claude', args, {
|
|
54
|
-
input: prompt,
|
|
55
|
-
stdio: ['pipe', 'inherit', 'inherit'],
|
|
56
|
-
encoding: 'utf8',
|
|
57
|
-
});
|
|
58
|
-
return result.status === 0 && !result.error;
|
|
59
|
-
}
|
|
60
|
-
//# sourceMappingURL=claude-cli.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"claude-cli.js","sourceRoot":"","sources":["../../../../src/scripts/shared/claude-cli/claude-cli.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/C;;;;;;;;;GASG;AACH,MAAM,UAAU,iBAAiB,CAC/B,MAAc,EACd,KAAc;IAEd,MAAM,IAAI,GAAG,CAAC,IAAI,EAAE,gCAAgC,CAAC,CAAC;IAEtD,IAAI,KAAK,EAAE,CAAC;QACV,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAC9B,CAAC;IAED,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE;QACvC,KAAK,EAAE,MAAM;QACb,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;QAC/B,QAAQ,EAAE,MAAM;KACjB,CAAC,CAAC;IAEH,OAAO;QACL,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,EAAE;QAC3B,EAAE,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK;KACzC,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAc,EAAE,KAAc;IAChE,MAAM,IAAI,GAAG,CAAC,gCAAgC,CAAC,CAAC;IAEhD,IAAI,KAAK,EAAE,CAAC;QACV,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAC9B,CAAC;IAED,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE;QACvC,KAAK,EAAE,MAAM;QACb,KAAK,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC;QACrC,QAAQ,EAAE,MAAM;KACjB,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;AAC9C,CAAC"}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Board detection from raw `.clancy/.env` variables.
|
|
3
|
-
*
|
|
4
|
-
* Validates env vars against Zod schemas and returns a typed
|
|
5
|
-
* discriminated union for the detected board provider.
|
|
6
|
-
*/
|
|
7
|
-
import type { BoardConfig } from '../../../schemas/env.js';
|
|
8
|
-
export type { BoardConfig, GitHubEnv, JiraEnv, LinearEnv, SharedEnv, } from '../../../schemas/env.js';
|
|
9
|
-
/**
|
|
10
|
-
* Detect which board is configured from raw env vars and return a typed config.
|
|
11
|
-
*
|
|
12
|
-
* Detection priority: Jira → GitHub → Linear (checked by presence of
|
|
13
|
-
* board-specific required keys). Returns the first match.
|
|
14
|
-
*
|
|
15
|
-
* @param raw - The raw key-value record from `.clancy/.env`.
|
|
16
|
-
* @returns A typed `BoardConfig` or an error string if no board is detected
|
|
17
|
-
* or validation fails.
|
|
18
|
-
*
|
|
19
|
-
* @example
|
|
20
|
-
* ```ts
|
|
21
|
-
* const result = detectBoard({ GITHUB_TOKEN: 'ghp_xxx', GITHUB_REPO: 'acme/app' });
|
|
22
|
-
* if (typeof result === 'string') console.error(result);
|
|
23
|
-
* else console.log(result.provider); // 'github'
|
|
24
|
-
* ```
|
|
25
|
-
*/
|
|
26
|
-
export declare function detectBoard(raw: Record<string, string>): BoardConfig | string;
|
|
27
|
-
//# sourceMappingURL=env-schema.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"env-schema.d.ts","sourceRoot":"","sources":["../../../../src/scripts/shared/env-schema/env-schema.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAQpD,YAAY,EACV,WAAW,EACX,SAAS,EACT,OAAO,EACP,SAAS,EACT,SAAS,GACV,MAAM,kBAAkB,CAAC;AAE1B;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,WAAW,GAAG,MAAM,CAoC7E"}
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import { githubEnvSchema, jiraEnvSchema, linearEnvSchema, } from '../../../schemas/env.js';
|
|
2
|
-
/**
|
|
3
|
-
* Detect which board is configured from raw env vars and return a typed config.
|
|
4
|
-
*
|
|
5
|
-
* Detection priority: Jira → GitHub → Linear (checked by presence of
|
|
6
|
-
* board-specific required keys). Returns the first match.
|
|
7
|
-
*
|
|
8
|
-
* @param raw - The raw key-value record from `.clancy/.env`.
|
|
9
|
-
* @returns A typed `BoardConfig` or an error string if no board is detected
|
|
10
|
-
* or validation fails.
|
|
11
|
-
*
|
|
12
|
-
* @example
|
|
13
|
-
* ```ts
|
|
14
|
-
* const result = detectBoard({ GITHUB_TOKEN: 'ghp_xxx', GITHUB_REPO: 'acme/app' });
|
|
15
|
-
* if (typeof result === 'string') console.error(result);
|
|
16
|
-
* else console.log(result.provider); // 'github'
|
|
17
|
-
* ```
|
|
18
|
-
*/
|
|
19
|
-
export function detectBoard(raw) {
|
|
20
|
-
// Jira — check for JIRA_BASE_URL as the distinguishing key
|
|
21
|
-
if (raw.JIRA_BASE_URL) {
|
|
22
|
-
const parsed = jiraEnvSchema.safeParse(raw);
|
|
23
|
-
if (!parsed.success) {
|
|
24
|
-
return `✗ Jira env validation failed: ${parsed.error.message}`;
|
|
25
|
-
}
|
|
26
|
-
return { provider: 'jira', env: parsed.data };
|
|
27
|
-
}
|
|
28
|
-
// GitHub — check for GITHUB_TOKEN + GITHUB_REPO (GITHUB_TOKEN alone may be
|
|
29
|
-
// a git host token for Jira/Linear users, not a GitHub Issues board)
|
|
30
|
-
if (raw.GITHUB_TOKEN && raw.GITHUB_REPO) {
|
|
31
|
-
const parsed = githubEnvSchema.safeParse(raw);
|
|
32
|
-
if (!parsed.success) {
|
|
33
|
-
return `✗ GitHub env validation failed: ${parsed.error.message}`;
|
|
34
|
-
}
|
|
35
|
-
return { provider: 'github', env: parsed.data };
|
|
36
|
-
}
|
|
37
|
-
// Linear — check for LINEAR_API_KEY as the distinguishing key
|
|
38
|
-
if (raw.LINEAR_API_KEY) {
|
|
39
|
-
const parsed = linearEnvSchema.safeParse(raw);
|
|
40
|
-
if (!parsed.success) {
|
|
41
|
-
return `✗ Linear env validation failed: ${parsed.error.message}`;
|
|
42
|
-
}
|
|
43
|
-
return { provider: 'linear', env: parsed.data };
|
|
44
|
-
}
|
|
45
|
-
return '✗ No board detected — set Jira, GitHub, or Linear credentials in .clancy/.env';
|
|
46
|
-
}
|
|
47
|
-
//# sourceMappingURL=env-schema.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"env-schema.js","sourceRoot":"","sources":["../../../../src/scripts/shared/env-schema/env-schema.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,eAAe,EACf,aAAa,EACb,eAAe,GAChB,MAAM,kBAAkB,CAAC;AAW1B;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,WAAW,CAAC,GAA2B;IACrD,2DAA2D;IAC3D,IAAI,GAAG,CAAC,aAAa,EAAE,CAAC;QACtB,MAAM,MAAM,GAAG,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAE5C,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,iCAAiC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QACjE,CAAC;QAED,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;IAChD,CAAC;IAED,2EAA2E;IAC3E,qEAAqE;IACrE,IAAI,GAAG,CAAC,YAAY,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;QACxC,MAAM,MAAM,GAAG,eAAe,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAE9C,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,mCAAmC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QACnE,CAAC;QAED,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;IAClD,CAAC;IAED,8DAA8D;IAC9D,IAAI,GAAG,CAAC,cAAc,EAAE,CAAC;QACvB,MAAM,MAAM,GAAG,eAAe,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAE9C,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,mCAAmC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QACnE,CAAC;QAED,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;IAClD,CAAC;IAED,OAAO,+EAA+E,CAAC;AACzF,CAAC"}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
export type FeasibilityResult = {
|
|
2
|
-
feasible: boolean;
|
|
3
|
-
reason?: string;
|
|
4
|
-
};
|
|
5
|
-
/**
|
|
6
|
-
* Build the feasibility evaluation prompt.
|
|
7
|
-
*/
|
|
8
|
-
export declare function buildFeasibilityPrompt(ticket: {
|
|
9
|
-
key: string;
|
|
10
|
-
title: string;
|
|
11
|
-
description: string;
|
|
12
|
-
}): string;
|
|
13
|
-
/**
|
|
14
|
-
* Parse the raw Claude output into a feasibility result.
|
|
15
|
-
*
|
|
16
|
-
* Fails open — malformed or empty output is treated as feasible.
|
|
17
|
-
*/
|
|
18
|
-
export declare function parseFeasibilityResponse(stdout: string): FeasibilityResult;
|
|
19
|
-
/**
|
|
20
|
-
* Run a feasibility check for a ticket.
|
|
21
|
-
*
|
|
22
|
-
* @returns A result indicating whether the ticket is feasible and an
|
|
23
|
-
* optional reason if not.
|
|
24
|
-
*/
|
|
25
|
-
export declare function checkFeasibility(ticket: {
|
|
26
|
-
key: string;
|
|
27
|
-
title: string;
|
|
28
|
-
description: string;
|
|
29
|
-
}, model?: string): FeasibilityResult;
|
|
30
|
-
//# sourceMappingURL=feasibility.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"feasibility.d.ts","sourceRoot":"","sources":["../../../../src/scripts/shared/feasibility/feasibility.ts"],"names":[],"mappings":"AAWA,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE;IAC7C,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;CACrB,GAAG,MAAM,CAyBT;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,GAAG,iBAAiB,CAU1E;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,EAC3D,KAAK,CAAC,EAAE,MAAM,GACb,iBAAiB,CAQnB"}
|