assisted-review 1.0.1 → 1.1.0
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/build/cli.js +9 -1
- package/build/cli.js.map +1 -1
- package/build/jira.js +33 -19
- package/build/jira.js.map +1 -1
- package/build/resolve-token.js +55 -0
- package/build/resolve-token.js.map +1 -0
- package/build/server.js +12 -2
- package/build/server.js.map +1 -1
- package/build/setup-jira.js +132 -0
- package/build/setup-jira.js.map +1 -0
- package/dist/assets/index-a0TSlJbc.js +88 -0
- package/dist/index.html +1 -1
- package/package.json +1 -1
- package/dist/assets/index-D4ESfIvh.js +0 -88
package/build/cli.js
CHANGED
|
@@ -15,6 +15,7 @@ import { parseRef } from './parse-ref.js';
|
|
|
15
15
|
import { startServer } from './server.js';
|
|
16
16
|
import { saveState } from './state.js';
|
|
17
17
|
import { loadReview } from './review.js';
|
|
18
|
+
import { setupJira } from './setup-jira.js';
|
|
18
19
|
function openBrowser(url) {
|
|
19
20
|
const [cmd, args] = process.platform === 'darwin'
|
|
20
21
|
? ['open', [url]]
|
|
@@ -45,6 +46,10 @@ function parseArgs(argv) {
|
|
|
45
46
|
return { ref, noOpen, apiOnly, mockAi, port };
|
|
46
47
|
}
|
|
47
48
|
async function main() {
|
|
49
|
+
if (process.argv[2] === 'configure') {
|
|
50
|
+
await setupJira();
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
48
53
|
const { ref, noOpen, apiOnly, mockAi, port } = parseArgs(process.argv.slice(2));
|
|
49
54
|
let pr;
|
|
50
55
|
try {
|
|
@@ -53,6 +58,7 @@ async function main() {
|
|
|
53
58
|
catch (err) {
|
|
54
59
|
console.error(`error: ${err.message}`);
|
|
55
60
|
console.error('usage: assisted-review <owner/repo#N | PR URL>');
|
|
61
|
+
console.error(' assisted-review configure (Jira setup wizard)');
|
|
56
62
|
process.exit(2);
|
|
57
63
|
}
|
|
58
64
|
console.error(`Fetching ${pr.owner}/${pr.repo}#${pr.number} ...`);
|
|
@@ -78,7 +84,9 @@ async function main() {
|
|
|
78
84
|
console.error(`Resumed state: ${state.comments.length} comment(s), ${state.flagged.length} flagged, ${state.viewed.length} viewed.`);
|
|
79
85
|
}
|
|
80
86
|
await saveState(state);
|
|
81
|
-
const
|
|
87
|
+
const preloadChunks = Number(process.env.PRELOAD_CHUNKS ?? '1');
|
|
88
|
+
const preloadOverview = process.env.PRELOAD_OVERVIEW !== 'false';
|
|
89
|
+
const { url } = await startServer({ review, state }, { port, serveUi: !apiOnly, mockAi, preloadChunks, preloadOverview });
|
|
82
90
|
if (apiOnly) {
|
|
83
91
|
console.error(`\n assisted-review API serving at ${url}/api/review`);
|
|
84
92
|
console.error(` Start the UI with: pnpm dev:web (proxies /api here)\n`);
|
package/build/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,0CAA0C;AAC1C,EAAE;AACF,4EAA4E;AAC5E,iEAAiE;AACjE,EAAE;AACF,SAAS;AACT,wCAAwC;AACxC,wEAAwE;AACxE,wEAAwE;AACxE,4CAA4C;AAE5C,OAAO,UAAU,CAAC,CAAC,gDAAgD;AACnE,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/build/jira.js
CHANGED
|
@@ -4,17 +4,17 @@
|
|
|
4
4
|
//
|
|
5
5
|
// JIRA_BASE_URL e.g. https://your-org.atlassian.net
|
|
6
6
|
// JIRA_USER account email
|
|
7
|
-
// JIRA_TOKEN API token
|
|
7
|
+
// JIRA_TOKEN API token, or a reference: op://vault/item/field,
|
|
8
|
+
// env:VAR_NAME, cmd:<shell command>
|
|
8
9
|
// JIRA_EPIC_FIELD optional; the "Epic Link" custom field (default customfield_10008)
|
|
9
10
|
//
|
|
10
11
|
// If any are missing, returns { available: false } with a setup hint so the UI
|
|
11
12
|
// can show a banner instead of failing.
|
|
12
|
-
|
|
13
|
-
const USER = process.env.JIRA_USER ?? '';
|
|
14
|
-
const TOKEN = process.env.JIRA_TOKEN ?? '';
|
|
15
|
-
const EPIC_FIELD = process.env.JIRA_EPIC_FIELD || 'customfield_10008';
|
|
13
|
+
import { resolveToken } from './resolve-token.js';
|
|
16
14
|
const SETUP_HINT = "assisted-review can't reach Jira. Set JIRA_BASE_URL, JIRA_USER, and JIRA_TOKEN " +
|
|
17
|
-
'(an API token
|
|
15
|
+
'(an API token, or a reference like op://vault/item/field or env:VAR_NAME) ' +
|
|
16
|
+
'in the environment to pull in ticket and epic context. ' +
|
|
17
|
+
'Run `assisted-review configure` to set these up interactively.';
|
|
18
18
|
/** Extract Jira issue keys (e.g. FEN-2622) from any number of text sources. */
|
|
19
19
|
export function extractIssueKeys(...texts) {
|
|
20
20
|
const re = /\b[A-Z][A-Z0-9]+-\d+\b/g;
|
|
@@ -27,9 +27,6 @@ export function extractIssueKeys(...texts) {
|
|
|
27
27
|
}
|
|
28
28
|
return [...seen];
|
|
29
29
|
}
|
|
30
|
-
function configured() {
|
|
31
|
-
return Boolean(BASE_URL && USER && TOKEN);
|
|
32
|
-
}
|
|
33
30
|
/** Recursively flatten Atlassian Document Format to plain text. */
|
|
34
31
|
function adfToText(node) {
|
|
35
32
|
if (!node)
|
|
@@ -56,13 +53,13 @@ function adfToText(node) {
|
|
|
56
53
|
return inner();
|
|
57
54
|
}
|
|
58
55
|
}
|
|
59
|
-
async function fetchIssue(key) {
|
|
60
|
-
const auth = Buffer.from(`${
|
|
61
|
-
const fields = `summary,status,issuetype,description,parent,${
|
|
56
|
+
async function fetchIssue(key, { baseUrl, user, token, epicField }) {
|
|
57
|
+
const auth = Buffer.from(`${user}:${token}`).toString('base64');
|
|
58
|
+
const fields = `summary,status,issuetype,description,parent,${epicField}`;
|
|
62
59
|
const ctrl = new AbortController();
|
|
63
60
|
const timer = setTimeout(() => ctrl.abort(), 8000);
|
|
64
61
|
try {
|
|
65
|
-
const res = await fetch(`${
|
|
62
|
+
const res = await fetch(`${baseUrl}/rest/api/3/issue/${encodeURIComponent(key)}?fields=${fields}`, {
|
|
66
63
|
headers: { authorization: `Basic ${auth}`, accept: 'application/json' },
|
|
67
64
|
signal: ctrl.signal,
|
|
68
65
|
});
|
|
@@ -71,14 +68,14 @@ async function fetchIssue(key) {
|
|
|
71
68
|
const data = (await res.json());
|
|
72
69
|
const f = data.fields ?? {};
|
|
73
70
|
const parent = f.parent;
|
|
74
|
-
const epicLink = f[
|
|
71
|
+
const epicLink = f[epicField];
|
|
75
72
|
return {
|
|
76
73
|
key: data.key,
|
|
77
74
|
summary: f.summary ?? '',
|
|
78
75
|
status: f.status?.name ?? '',
|
|
79
76
|
type: f.issuetype?.name ?? '',
|
|
80
77
|
description: adfToText(f.description).trim(),
|
|
81
|
-
url: `${
|
|
78
|
+
url: `${baseUrl}/browse/${data.key}`,
|
|
82
79
|
epic_key: (typeof epicLink === 'string' ? epicLink : undefined) ?? parent?.key,
|
|
83
80
|
};
|
|
84
81
|
}
|
|
@@ -91,10 +88,26 @@ async function fetchIssue(key) {
|
|
|
91
88
|
}
|
|
92
89
|
/** Build the Jira context for the given issue keys (best effort). */
|
|
93
90
|
export async function buildJiraContext(keys) {
|
|
94
|
-
|
|
91
|
+
const baseUrl = (process.env.JIRA_BASE_URL ?? '').replace(/\/$/, '');
|
|
92
|
+
const user = process.env.JIRA_USER ?? '';
|
|
93
|
+
const tokenRef = process.env.JIRA_TOKEN ?? '';
|
|
94
|
+
const epicField = process.env.JIRA_EPIC_FIELD || 'customfield_10008';
|
|
95
|
+
let token = '';
|
|
96
|
+
let tokenError = '';
|
|
97
|
+
if (tokenRef) {
|
|
98
|
+
try {
|
|
99
|
+
token = await resolveToken(tokenRef);
|
|
100
|
+
}
|
|
101
|
+
catch (err) {
|
|
102
|
+
tokenError = err.message;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
if (!baseUrl || !user || !token) {
|
|
95
106
|
return {
|
|
96
107
|
available: false,
|
|
97
|
-
reason:
|
|
108
|
+
reason: tokenError
|
|
109
|
+
? `JIRA_TOKEN resolution failed: ${tokenError}`
|
|
110
|
+
: 'Jira credentials not configured',
|
|
98
111
|
setup_hint: SETUP_HINT,
|
|
99
112
|
keys,
|
|
100
113
|
issues: [],
|
|
@@ -102,7 +115,8 @@ export async function buildJiraContext(keys) {
|
|
|
102
115
|
}
|
|
103
116
|
if (keys.length === 0)
|
|
104
117
|
return { available: true, keys, issues: [] };
|
|
105
|
-
const
|
|
118
|
+
const creds = { baseUrl, user, token, epicField };
|
|
119
|
+
const issues = (await Promise.all(keys.slice(0, 4).map((k) => fetchIssue(k, creds)))).filter((i) => i !== null);
|
|
106
120
|
if (issues.length === 0) {
|
|
107
121
|
return {
|
|
108
122
|
available: false,
|
|
@@ -113,7 +127,7 @@ export async function buildJiraContext(keys) {
|
|
|
113
127
|
};
|
|
114
128
|
}
|
|
115
129
|
const epicKey = issues.find((i) => i.epic_key)?.epic_key;
|
|
116
|
-
const epic = epicKey ? await fetchIssue(epicKey) : null;
|
|
130
|
+
const epic = epicKey ? await fetchIssue(epicKey, creds) : null;
|
|
117
131
|
return { available: true, keys, issues, epic };
|
|
118
132
|
}
|
|
119
133
|
//# sourceMappingURL=jira.js.map
|
package/build/jira.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jira.js","sourceRoot":"","sources":["../src/jira.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,8EAA8E;AAC9E,qEAAqE;AACrE,EAAE;AACF,wDAAwD;AACxD,kCAAkC;AAClC,
|
|
1
|
+
{"version":3,"file":"jira.js","sourceRoot":"","sources":["../src/jira.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,8EAA8E;AAC9E,qEAAqE;AACrE,EAAE;AACF,wDAAwD;AACxD,kCAAkC;AAClC,sEAAsE;AACtE,sDAAsD;AACtD,uFAAuF;AACvF,EAAE;AACF,+EAA+E;AAC/E,wCAAwC;AAGxC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,MAAM,UAAU,GACd,iFAAiF;IACjF,4EAA4E;IAC5E,yDAAyD;IACzD,gEAAgE,CAAC;AAEnE,+EAA+E;AAC/E,MAAM,UAAU,gBAAgB,CAAC,GAAG,KAAoC;IACtE,MAAM,EAAE,GAAG,yBAAyB,CAAC;IACrC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,CAAC;YAAE,SAAS;QACjB,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE;YAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACjD,CAAC;IACD,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;AACnB,CAAC;AAED,mEAAmE;AACnE,SAAS,SAAS,CAAC,IAAa;IAC9B,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IACrB,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC1C,MAAM,CAAC,GAAG,IAA6D,CAAC;IACxE,MAAM,IAAI,GAAG,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC;IAC7B,MAAM,KAAK,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjD,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;QACf,KAAK,MAAM;YACT,OAAO,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;QACtB,KAAK,WAAW;YACd,OAAO,IAAI,CAAC;QACd,KAAK,WAAW,CAAC;QACjB,KAAK,UAAU,CAAC;QAChB,KAAK,YAAY,CAAC;QAClB,KAAK,SAAS;YACZ,OAAO,KAAK,EAAE,GAAG,IAAI,CAAC;QACxB,KAAK,YAAY,CAAC;QAClB,KAAK,aAAa;YAChB,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACvE;YACE,OAAO,KAAK,EAAE,CAAC;IACnB,CAAC;AACH,CAAC;AASD,KAAK,UAAU,UAAU,CAAC,GAAW,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAS;IAC/E,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAChE,MAAM,MAAM,GAAG,+CAA+C,SAAS,EAAE,CAAC;IAC1E,MAAM,IAAI,GAAG,IAAI,eAAe,EAAE,CAAC;IACnC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,CAAC;IACnD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,KAAK,CACrB,GAAG,OAAO,qBAAqB,kBAAkB,CAAC,GAAG,CAAC,WAAW,MAAM,EAAE,EACzE;YACE,OAAO,EAAE,EAAE,aAAa,EAAE,SAAS,IAAI,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE;YACvE,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CACF,CAAC;QACF,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,OAAO,IAAI,CAAC;QACzB,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAsD,CAAC;QACrF,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,CAAC,CAAC,MAAsC,CAAC;QACxD,MAAM,QAAQ,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC;QAC9B,OAAO;YACL,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,OAAO,EAAG,CAAC,CAAC,OAAkB,IAAI,EAAE;YACpC,MAAM,EAAG,CAAC,CAAC,MAA4B,EAAE,IAAI,IAAI,EAAE;YACnD,IAAI,EAAG,CAAC,CAAC,SAA+B,EAAE,IAAI,IAAI,EAAE;YACpD,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE;YAC5C,GAAG,EAAE,GAAG,OAAO,WAAW,IAAI,CAAC,GAAG,EAAE;YACpC,QAAQ,EAAE,CAAC,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,MAAM,EAAE,GAAG;SAC/E,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;YAAS,CAAC;QACT,YAAY,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC;AACH,CAAC;AAED,qEAAqE;AACrE,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,IAAc;IACnD,MAAM,OAAO,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACrE,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC;IACzC,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC;IAC9C,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,mBAAmB,CAAC;IAErE,IAAI,KAAK,GAAG,EAAE,CAAC;IACf,IAAI,UAAU,GAAG,EAAE,CAAC;IACpB,IAAI,QAAQ,EAAE,CAAC;QACb,IAAI,CAAC;YACH,KAAK,GAAG,MAAM,YAAY,CAAC,QAAQ,CAAC,CAAC;QACvC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,UAAU,GAAI,GAAa,CAAC,OAAO,CAAC;QACtC,CAAC;IACH,CAAC;IAED,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QAChC,OAAO;YACL,SAAS,EAAE,KAAK;YAChB,MAAM,EAAE,UAAU;gBAChB,CAAC,CAAC,iCAAiC,UAAU,EAAE;gBAC/C,CAAC,CAAC,iCAAiC;YACrC,UAAU,EAAE,UAAU;YACtB,IAAI;YACJ,MAAM,EAAE,EAAE;SACX,CAAC;IACJ,CAAC;IAED,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IAEpE,MAAM,KAAK,GAAU,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;IACzD,MAAM,MAAM,GAAG,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAC1F,CAAC,CAAC,EAAkB,EAAE,CAAC,CAAC,KAAK,IAAI,CAClC,CAAC;IAEF,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO;YACL,SAAS,EAAE,KAAK;YAChB,MAAM,EAAE,mBAAmB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,sCAAsC;YAChF,UAAU,EAAE,UAAU;YACtB,IAAI;YACJ,MAAM,EAAE,EAAE;SACX,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACzD,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,MAAM,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC/D,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AACjD,CAAC"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
// Resolve a JIRA_TOKEN value that may be a reference rather than a raw secret.
|
|
2
|
+
//
|
|
3
|
+
// Supported formats:
|
|
4
|
+
// op://vault/item/field 1Password — requires `op` CLI
|
|
5
|
+
// env:VAR_NAME value of the named environment variable
|
|
6
|
+
// cmd:<shell command> stdout of the command (safe since .env is 0600)
|
|
7
|
+
// <anything else> treated as a raw token
|
|
8
|
+
import { execFile, exec } from 'node:child_process';
|
|
9
|
+
import { promisify } from 'node:util';
|
|
10
|
+
const execFileAsync = promisify(execFile);
|
|
11
|
+
const execAsync = promisify(exec);
|
|
12
|
+
async function runOp(ref) {
|
|
13
|
+
try {
|
|
14
|
+
const { stdout } = await execFileAsync('op', ['read', ref], { timeout: 8000 });
|
|
15
|
+
return stdout.trim();
|
|
16
|
+
}
|
|
17
|
+
catch (err) {
|
|
18
|
+
const e = err;
|
|
19
|
+
if (e.code === 'ENOENT') {
|
|
20
|
+
throw new Error('`op` CLI not found — install the 1Password CLI to use op:// references');
|
|
21
|
+
}
|
|
22
|
+
throw new Error(`op read failed: ${e.message}`);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
async function runShell(cmd) {
|
|
26
|
+
try {
|
|
27
|
+
const { stdout } = await execAsync(cmd, { timeout: 8000 });
|
|
28
|
+
return stdout.trim();
|
|
29
|
+
}
|
|
30
|
+
catch (err) {
|
|
31
|
+
throw new Error(`cmd failed: ${err.message}`);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
export function isReference(ref) {
|
|
35
|
+
return ref.startsWith('op://') || ref.startsWith('env:') || ref.startsWith('cmd:');
|
|
36
|
+
}
|
|
37
|
+
export async function resolveToken(ref) {
|
|
38
|
+
if (!ref)
|
|
39
|
+
return '';
|
|
40
|
+
if (ref.startsWith('op://')) {
|
|
41
|
+
return runOp(ref);
|
|
42
|
+
}
|
|
43
|
+
if (ref.startsWith('env:')) {
|
|
44
|
+
const name = ref.slice(4).trim();
|
|
45
|
+
const val = process.env[name];
|
|
46
|
+
if (!val)
|
|
47
|
+
throw new Error(`env var ${name} is not set`);
|
|
48
|
+
return val;
|
|
49
|
+
}
|
|
50
|
+
if (ref.startsWith('cmd:')) {
|
|
51
|
+
return runShell(ref.slice(4).trim());
|
|
52
|
+
}
|
|
53
|
+
return ref;
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=resolve-token.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-token.js","sourceRoot":"","sources":["../src/resolve-token.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,EAAE;AACF,qBAAqB;AACrB,0DAA0D;AAC1D,oEAAoE;AACpE,4EAA4E;AAC5E,mDAAmD;AAEnD,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AAC1C,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;AAElC,KAAK,UAAU,KAAK,CAAC,GAAW;IAC9B,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,aAAa,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/E,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC;IACvB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,CAAC,GAAG,GAA4B,CAAC;QACvC,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,wEAAwE,CAAC,CAAC;QAC5F,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,mBAAoB,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;IAC7D,CAAC;AACH,CAAC;AAED,KAAK,UAAU,QAAQ,CAAC,GAAW;IACjC,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3D,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC;IACvB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,eAAgB,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;IAC3D,CAAC;AACH,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,GAAW;IACrC,OAAO,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;AACrF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,GAAW;IAC5C,IAAI,CAAC,GAAG;QAAE,OAAO,EAAE,CAAC;IAEpB,IAAI,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5B,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC;IACpB,CAAC;IAED,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACjC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,CAAC,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,WAAW,IAAI,aAAa,CAAC,CAAC;QACxD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3B,OAAO,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACvC,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC"}
|
package/build/server.js
CHANGED
|
@@ -63,7 +63,7 @@ async function serveStatic(res, urlPath) {
|
|
|
63
63
|
res.end('not found');
|
|
64
64
|
}
|
|
65
65
|
}
|
|
66
|
-
export function startServer(ctx, { port = 4319, host = '127.0.0.1', serveUi = true, mockAi = false, } = {}) {
|
|
66
|
+
export function startServer(ctx, { port = 4319, host = '127.0.0.1', serveUi = true, mockAi = false, preloadChunks = 1, preloadOverview = true, } = {}) {
|
|
67
67
|
// Track the active Claude SSE stream cancel fn — called before switching reviews
|
|
68
68
|
// to prevent a finishing stream from writing notes into the wrong review's state.
|
|
69
69
|
let currentCancel = null;
|
|
@@ -76,6 +76,12 @@ export function startServer(ctx, { port = 4319, host = '127.0.0.1', serveUi = tr
|
|
|
76
76
|
});
|
|
77
77
|
async function handle(req, res) {
|
|
78
78
|
const url = new URL(req.url ?? '/', `http://${host}`);
|
|
79
|
+
if (url.pathname === '/api/config' && req.method === 'GET') {
|
|
80
|
+
return sendJson(res, 200, {
|
|
81
|
+
preload_chunks: preloadChunks,
|
|
82
|
+
preload_overview: preloadOverview,
|
|
83
|
+
});
|
|
84
|
+
}
|
|
79
85
|
if (url.pathname === '/api/review') {
|
|
80
86
|
if (req.method === 'GET') {
|
|
81
87
|
if (!ctx.review) {
|
|
@@ -266,7 +272,11 @@ export function startServer(ctx, { port = 4319, host = '127.0.0.1', serveUi = tr
|
|
|
266
272
|
}
|
|
267
273
|
return new Promise((resolve, reject) => {
|
|
268
274
|
server.on('error', reject);
|
|
269
|
-
server.listen(port, host, () =>
|
|
275
|
+
server.listen(port, host, () => {
|
|
276
|
+
const addr = server.address();
|
|
277
|
+
const boundPort = typeof addr === 'object' && addr ? addr.port : port;
|
|
278
|
+
resolve({ url: `http://${host}:${boundPort}` });
|
|
279
|
+
});
|
|
270
280
|
});
|
|
271
281
|
}
|
|
272
282
|
//# sourceMappingURL=server.js.map
|
package/build/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,iFAAiF;AAEjF,OAAO,EACL,YAAY,GAGb,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC/E,OAAO,EACL,mBAAmB,EACnB,WAAW,EACX,oBAAoB,EACpB,YAAY,GACb,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,kBAAkB,EAClB,YAAY,EACZ,QAAQ,GAET,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EACL,WAAW,GAMZ,MAAM,YAAY,CAAC;AAEpB,4EAA4E;AAC5E,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AAEzD,MAAM,IAAI,GAA2B;IACnC,OAAO,EAAE,0BAA0B;IACnC,KAAK,EAAE,gCAAgC;IACvC,MAAM,EAAE,yBAAyB;IACjC,OAAO,EAAE,iCAAiC;IAC1C,MAAM,EAAE,eAAe;IACvB,MAAM,EAAE,cAAc;IACtB,QAAQ,EAAE,YAAY;CACvB,CAAC;AAEF,SAAS,QAAQ,CAAC,GAAmB,EAAE,MAAc,EAAE,GAAY;IACjE,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACzD,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;AAC/B,CAAC;AAED,SAAS,QAAQ,CAAC,GAAoB;IACpC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,IAAI,IAAI,GAAG,EAAE,CAAC;QACd,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC;QAC3C,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QACnC,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,WAAW,CACxB,GAAmB,EACnB,OAAe;IAEf,MAAM,GAAG,GAAG,OAAO,KAAK,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC;IACtD,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;IAChD,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QACnC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QACnB,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IACD,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACtC,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE;YACjB,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,0BAA0B;SACtE,CAAC,CAAC;QACH,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACP,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YACvB,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC;gBAC1D,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBACtD,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACd,OAAO;YACT,CAAC;YAAC,MAAM,CAAC;gBACP,kBAAkB;YACpB,CAAC;QACH,CAAC;QACD,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QACnB,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IACvB,CAAC;AACH,CAAC;AAcD,MAAM,UAAU,WAAW,CACzB,GAAe,EACf,EACE,IAAI,GAAG,IAAI,EACX,IAAI,GAAG,WAAW,EAClB,OAAO,GAAG,IAAI,EACd,MAAM,GAAG,KAAK,MACE,EAAE;IAEpB,iFAAiF;IACjF,kFAAkF;IAClF,IAAI,aAAa,GAAwB,IAAI,CAAC;IAE9C,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QACvC,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;YAC3C,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE;gBACjB,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;aACxD,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,KAAK,UAAU,MAAM,CACnB,GAAoB,EACpB,GAAmB;QAEnB,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,EAAE,UAAU,IAAI,EAAE,CAAC,CAAC;QAEtD,IAAI,GAAG,CAAC,QAAQ,KAAK,aAAa,EAAE,CAAC;YACnC,IAAI,GAAG,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;gBACzB,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;oBAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;oBAAC,GAAG,CAAC,GAAG,EAAE,CAAC;oBAAC,OAAO;gBAAC,CAAC;gBAC3D,OAAO,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;YACxC,CAAC;YACD,IAAI,GAAG,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;gBAC5B,aAAa,EAAE,EAAE,CAAC;gBAClB,aAAa,GAAG,IAAI,CAAC;gBACrB,IAAI,GAAG,CAAC,MAAM;oBAAE,MAAM,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;gBAClE,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC;gBAClB,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC;gBACjB,OAAO,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC;QACD,IAAI,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE,CAAC;YAClC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;gBAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;gBAAC,GAAG,CAAC,GAAG,EAAE,CAAC;gBAAC,OAAO;YAAC,CAAC;YAC1D,OAAO,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;QACvC,CAAC;QAED,IAAI,GAAG,CAAC,QAAQ,KAAK,aAAa,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAC5D,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC;YAC9B,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK;gBAAE,OAAO,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,kBAAkB,EAAE,CAAC,CAAC;YAChF,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,GAAG,CAAC,CAAW,CAAC;YACzD,MAAM,SAAS,GAAG,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YAC7C,GAAG,CAAC,KAAK,GAAG,SAAS,CAAC;YACtB,MAAM,SAAS,CAAC,SAAS,CAAC,CAAC;YAC3B,OAAO,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QACvC,CAAC;QAED,uDAAuD;QACvD,IAAI,GAAG,CAAC,QAAQ,KAAK,aAAa,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAC5D,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC;YAC9B,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK;gBAAE,OAAO,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,kBAAkB,EAAE,CAAC,CAAC;YAChF,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,GAAG,CAAC,CAGvD,CAAC;YACF,IAAI,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAkB,CAAC,EAAE,CAAC;gBACvD,OAAO,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE;oBACxB,EAAE,EAAE,KAAK;oBACT,KAAK,EAAE,0BAA0B,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;iBACvD,CAAC,CAAC;YACL,CAAC;YACD,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;gBACpB,OAAO,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE;oBACxB,EAAE,EAAE,KAAK;oBACT,KAAK,EAAE,mCAAmC;iBAC3C,CAAC,CAAC;YACL,CAAC;YACD,MAAM,OAAO,GAAG,kBAAkB,CAChC,MAAM,CAAC,MAAM,EACb,KAAK,CAAC,QAAQ,EACd,OAAkB,EAClB,IAAI,IAAI,EAAE,EACV,KAAK,CAAC,QAAQ,CACf,CAAC;YACF,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;YACtD,MAAM,SAAS,GAAG,MAAM,CAAC,EAAE;gBACzB,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,QAAQ,EAAE,EAAE;gBAC1F,CAAC,CAAC,KAAK,CAAC;YACV,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;gBACd,GAAG,CAAC,KAAK,GAAG,SAAS,CAAC;gBACtB,MAAM,SAAS,CAAC,SAAS,CAAC,CAAC;YAC7B,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;YAC1D,OAAO,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QAChE,CAAC;QAED,2DAA2D;QAC3D,IAAI,GAAG,CAAC,QAAQ,KAAK,cAAc,IAAI,GAAG,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;YAC5D,OAAO,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,WAAW,EAAE,CAAC,CAAC;QACjD,CAAC;QAED,0CAA0C;QAC1C,MAAM,WAAW,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,CACpC,2CAA2C,CAC5C,CAAC;QACF,IAAI,WAAW,IAAI,GAAG,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC3C,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,GAAG,WAAW,CAAC;YACzC,MAAM,EAAE,GAAU,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;YACvD,IAAI,CAAC;gBACH,MAAM,YAAY,CAAC,EAAE,CAAC,CAAC;gBACvB,OAAO,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;YAC1C,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,kBAAkB,EAAE,CAAC,CAAC;YACtE,CAAC;QACH,CAAC;QAED,2DAA2D;QAC3D,IAAI,GAAG,CAAC,QAAQ,KAAK,mBAAmB,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAClE,IAAI,GAAuB,CAAC;YAC5B,IAAI,CAAC;gBACH,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,GAAG,CAAC,CAAqB,CAAC,CAAC;YAClE,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,iCAAiC,EAAE,CAAC,CAAC;YAC1E,CAAC;YACD,IAAI,CAAC,GAAG;gBAAE,OAAO,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC,CAAC;YAClE,IAAI,EAAS,CAAC;YACd,IAAI,CAAC;gBACH,EAAE,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;YACrB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAG,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;YAC/D,CAAC;YACD,kFAAkF;YAClF,aAAa,EAAE,EAAE,CAAC;YAClB,aAAa,GAAG,IAAI,CAAC;YACrB,IAAI,CAAC;gBACH,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,UAAU,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;gBAC3D,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC;gBACpB,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC;gBAClB,MAAM,SAAS,CAAC,KAAK,CAAC,CAAC;gBACvB,OAAO,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC;YACtE,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAG,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;YAC/D,CAAC;QACH,CAAC;QAED,0EAA0E;QAC1E,IAAI,GAAG,CAAC,QAAQ,KAAK,aAAa,EAAE,CAAC;YACnC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,GAAG,CAAC;YAC5C,IAAI,CAAC,MAAM,IAAI,CAAC,YAAY;gBAAE,OAAO,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,kBAAkB,EAAE,CAAC,CAAC;YAEvF,MAAM,OAAO,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;YACvD,MAAM,QAAQ,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YACjD,MAAM,UAAU,GAAG,OAAO,KAAK,WAAW,CAAC;YAE3C,MAAM,KAAK,GAAG,UAAU;gBACtB,CAAC,CAAC,IAAI;gBACN,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC;YAChD,IAAI,CAAC,UAAU,IAAI,CAAC,KAAK;gBACvB,OAAO,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC,CAAC;YAExD,iEAAiE;YACjE,MAAM,IAAI,GAAe,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC;YACvE,MAAM,MAAM,GAAG,UAAU;gBACvB,CAAC,CAAC,mBAAmB,CACjB,MAAM,CAAC,IAAI,EACX,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,QAAQ,CAAC,IAAI,EACpB,QAAQ,CACT;gBACH,CAAC,CAAC,WAAW,CAAC,KAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;YACxC,mEAAmE;YACnE,MAAM,WAAW,GAAG,CAAC,UAAU,IAAI,IAAI,KAAK,SAAS,CAAC;YAEtD,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE;gBACjB,cAAc,EAAE,mBAAmB;gBACnC,eAAe,EAAE,UAAU;gBAC3B,UAAU,EAAE,YAAY;aACzB,CAAC,CAAC;YACH,MAAM,GAAG,GAAG,CAAC,KAAa,EAAE,IAAa,EAAE,EAAE,CAC3C,GAAG,CAAC,KAAK,CAAC,UAAU,KAAK,WAAW,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAElE,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,EAAE;gBAClC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC;gBACzC,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE;oBACnB,IAAI,aAAa,KAAK,MAAM;wBAAE,aAAa,GAAG,IAAI,CAAC;oBACnD,GAAG,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;oBAC1B,GAAG,CAAC,GAAG,EAAE,CAAC;gBACZ,CAAC;gBACD,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;oBACf,IAAI,aAAa,KAAK,MAAM;wBAAE,aAAa,GAAG,IAAI,CAAC;oBACnD,0EAA0E;oBAC1E,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;wBAAC,GAAG,CAAC,GAAG,EAAE,CAAC;wBAAC,OAAO;oBAAC,CAAC;oBACtC,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,WAAW;wBAC3C,CAAC,CAAC,oBAAoB,CAAC,IAAI,CAAC;wBAC5B,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,eAAe,EAAE,SAAS,EAAE,CAAC;oBACtD,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE;wBACvC,IAAI,EAAE,UAAU;wBAChB,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,KAAM,CAAC,EAAE;wBAC9C,IAAI;wBACJ,MAAM,EAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,SAAS;wBACpC,IAAI;wBACJ,gBAAgB,EAAE,eAAe;qBAClC,CAAC,CAAC;oBACH,GAAG,CAAC,KAAK,GAAG,SAAS,CAAC;oBACtB,KAAK,SAAS,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;wBAClC,GAAG,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;wBAClC,GAAG,CAAC,GAAG,EAAE,CAAC;oBACZ,CAAC,CAAC,CAAC;gBACL,CAAC;aACF,CAAC,CAAC;YACH,aAAa,GAAG,MAAM,CAAC;YACvB,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;gBACnB,IAAI,aAAa,KAAK,MAAM;oBAAE,aAAa,GAAG,IAAI,CAAC;gBACnD,MAAM,EAAE,CAAC;YACX,CAAC,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAED,IAAI,CAAC,OAAO;YACV,OAAO,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,2BAA2B,EAAE,CAAC,CAAC;QACpE,OAAO,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;IACxC,CAAC;IAED,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC3B,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,UAAU,IAAI,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;IAC9E,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
// Interactive Jira configuration wizard.
|
|
2
|
+
// Reads existing ~/.assisted-review/.env, prompts for JIRA_* values,
|
|
3
|
+
// tests the connection, and writes back atomically with chmod 0600.
|
|
4
|
+
//
|
|
5
|
+
// JIRA_TOKEN accepts a raw token or a reference:
|
|
6
|
+
// op://vault/item/field 1Password CLI
|
|
7
|
+
// env:VAR_NAME value of the named environment variable
|
|
8
|
+
// cmd:<shell command> stdout of the command
|
|
9
|
+
import { createInterface } from 'node:readline/promises';
|
|
10
|
+
import { mkdirSync, readFileSync, writeFileSync, renameSync, chmodSync, existsSync, } from 'node:fs';
|
|
11
|
+
import { join, dirname } from 'node:path';
|
|
12
|
+
import { homedir } from 'node:os';
|
|
13
|
+
import { resolveToken, isReference } from './resolve-token.js';
|
|
14
|
+
const ENV_PATH = join(homedir(), '.assisted-review', '.env');
|
|
15
|
+
function parseEnvFile(content) {
|
|
16
|
+
const map = new Map();
|
|
17
|
+
for (const line of content.split('\n')) {
|
|
18
|
+
const trimmed = line.trim();
|
|
19
|
+
if (!trimmed || trimmed.startsWith('#'))
|
|
20
|
+
continue;
|
|
21
|
+
const eq = trimmed.indexOf('=');
|
|
22
|
+
if (eq < 0)
|
|
23
|
+
continue;
|
|
24
|
+
map.set(trimmed.slice(0, eq).trim(), trimmed.slice(eq + 1).trim());
|
|
25
|
+
}
|
|
26
|
+
return map;
|
|
27
|
+
}
|
|
28
|
+
function serializeEnvFile(map) {
|
|
29
|
+
return [...map.entries()].map(([k, v]) => `${k}=${v}`).join('\n') + '\n';
|
|
30
|
+
}
|
|
31
|
+
function writeEnvAtomic(filePath, content) {
|
|
32
|
+
mkdirSync(dirname(filePath), { recursive: true });
|
|
33
|
+
const tmp = `${filePath}.tmp`;
|
|
34
|
+
writeFileSync(tmp, content, { encoding: 'utf8', mode: 0o600 });
|
|
35
|
+
renameSync(tmp, filePath);
|
|
36
|
+
chmodSync(filePath, 0o600);
|
|
37
|
+
}
|
|
38
|
+
async function testConnection(baseUrl, user, token) {
|
|
39
|
+
const auth = Buffer.from(`${user}:${token}`).toString('base64');
|
|
40
|
+
const ctrl = new AbortController();
|
|
41
|
+
const timer = setTimeout(() => ctrl.abort(), 8000);
|
|
42
|
+
try {
|
|
43
|
+
const res = await fetch(`${baseUrl.replace(/\/$/, '')}/rest/api/3/myself`, {
|
|
44
|
+
headers: { authorization: `Basic ${auth}`, accept: 'application/json' },
|
|
45
|
+
signal: ctrl.signal,
|
|
46
|
+
});
|
|
47
|
+
if (!res.ok)
|
|
48
|
+
return { ok: false, error: `HTTP ${res.status}` };
|
|
49
|
+
const data = (await res.json());
|
|
50
|
+
return { ok: true, displayName: data.displayName };
|
|
51
|
+
}
|
|
52
|
+
catch (err) {
|
|
53
|
+
return { ok: false, error: err.message };
|
|
54
|
+
}
|
|
55
|
+
finally {
|
|
56
|
+
clearTimeout(timer);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
function displayToken(val) {
|
|
60
|
+
if (!val)
|
|
61
|
+
return '(not set)';
|
|
62
|
+
if (isReference(val))
|
|
63
|
+
return val; // show references in clear
|
|
64
|
+
if (val.length <= 4)
|
|
65
|
+
return '****';
|
|
66
|
+
return val.slice(0, 2) + '*'.repeat(val.length - 4) + val.slice(-2);
|
|
67
|
+
}
|
|
68
|
+
export async function setupJira() {
|
|
69
|
+
const existing = existsSync(ENV_PATH)
|
|
70
|
+
? parseEnvFile(readFileSync(ENV_PATH, 'utf8'))
|
|
71
|
+
: new Map();
|
|
72
|
+
const current = {
|
|
73
|
+
JIRA_BASE_URL: existing.get('JIRA_BASE_URL') ?? '',
|
|
74
|
+
JIRA_USER: existing.get('JIRA_USER') ?? '',
|
|
75
|
+
JIRA_TOKEN: existing.get('JIRA_TOKEN') ?? '',
|
|
76
|
+
JIRA_EPIC_FIELD: existing.get('JIRA_EPIC_FIELD') ?? '',
|
|
77
|
+
};
|
|
78
|
+
const rl = createInterface({ input: process.stdin, output: process.stderr });
|
|
79
|
+
process.stderr.write('\nJira configuration — press Enter to keep the current value.\n\n');
|
|
80
|
+
async function prompt(key, label, hint) {
|
|
81
|
+
const cur = current[key];
|
|
82
|
+
const display = key === 'JIRA_TOKEN' ? displayToken(cur) : cur || '(not set)';
|
|
83
|
+
const suffix = cur ? ` [${display}]` : '';
|
|
84
|
+
const hintLine = hint ? `\n ${hint}\n` : '';
|
|
85
|
+
process.stderr.write(hintLine);
|
|
86
|
+
const answer = await rl.question(` ${label}${suffix}: `);
|
|
87
|
+
return answer.trim() || cur;
|
|
88
|
+
}
|
|
89
|
+
const baseUrl = await prompt('JIRA_BASE_URL', 'Jira base URL (e.g. https://your-org.atlassian.net)');
|
|
90
|
+
const user = await prompt('JIRA_USER', 'Jira account email');
|
|
91
|
+
const tokenRef = await prompt('JIRA_TOKEN', 'Jira API token', 'Accepts a raw token or a reference: op://vault/item/field | env:VAR_NAME | cmd:<command>');
|
|
92
|
+
const epicField = await prompt('JIRA_EPIC_FIELD', 'Epic link field (default: customfield_10008)');
|
|
93
|
+
rl.close();
|
|
94
|
+
if (!baseUrl || !user || !tokenRef) {
|
|
95
|
+
process.stderr.write('\nError: JIRA_BASE_URL, JIRA_USER, and JIRA_TOKEN are all required.\n');
|
|
96
|
+
process.exit(1);
|
|
97
|
+
}
|
|
98
|
+
process.stderr.write('\nResolving token...\n');
|
|
99
|
+
let resolvedToken;
|
|
100
|
+
try {
|
|
101
|
+
resolvedToken = await resolveToken(tokenRef);
|
|
102
|
+
}
|
|
103
|
+
catch (err) {
|
|
104
|
+
process.stderr.write(` Error: ${err.message}\n`);
|
|
105
|
+
process.stderr.write(' Fix the reference and re-run `assisted-review configure`.\n');
|
|
106
|
+
process.exit(1);
|
|
107
|
+
}
|
|
108
|
+
process.stderr.write('Testing connection...\n');
|
|
109
|
+
const result = await testConnection(baseUrl, user, resolvedToken);
|
|
110
|
+
if (result.ok) {
|
|
111
|
+
process.stderr.write(` Connected as: ${result.displayName ?? user}\n`);
|
|
112
|
+
}
|
|
113
|
+
else {
|
|
114
|
+
process.stderr.write(` Warning: connection test failed (${result.error}).\n`);
|
|
115
|
+
process.stderr.write(' Check JIRA_BASE_URL, JIRA_USER, and that the token has the right scopes.\n');
|
|
116
|
+
// Still save — user may be configuring for an offline environment or fixing a typo later.
|
|
117
|
+
}
|
|
118
|
+
// Merge: preserve non-JIRA keys, update JIRA keys. Store the reference, not the resolved token.
|
|
119
|
+
const updated = new Map(existing);
|
|
120
|
+
updated.set('JIRA_BASE_URL', baseUrl);
|
|
121
|
+
updated.set('JIRA_USER', user);
|
|
122
|
+
updated.set('JIRA_TOKEN', tokenRef);
|
|
123
|
+
if (epicField) {
|
|
124
|
+
updated.set('JIRA_EPIC_FIELD', epicField);
|
|
125
|
+
}
|
|
126
|
+
else {
|
|
127
|
+
updated.delete('JIRA_EPIC_FIELD');
|
|
128
|
+
}
|
|
129
|
+
writeEnvAtomic(ENV_PATH, serializeEnvFile(updated));
|
|
130
|
+
process.stderr.write(`\nSaved to ${ENV_PATH}\n\n`);
|
|
131
|
+
}
|
|
132
|
+
//# sourceMappingURL=setup-jira.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup-jira.js","sourceRoot":"","sources":["../src/setup-jira.ts"],"names":[],"mappings":"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"}
|