@nervekit/tools 0.2.0 → 0.4.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/dist/catalog/core/jira.tools.d.ts +111 -0
- package/dist/catalog/core/jira.tools.d.ts.map +1 -0
- package/dist/catalog/core/jira.tools.js +151 -0
- package/dist/catalog/core/jira.tools.js.map +1 -0
- package/dist/catalog/core/shell.tools.js +3 -3
- package/dist/catalog/core/shell.tools.js.map +1 -1
- package/dist/catalog/index.d.ts +1 -0
- package/dist/catalog/index.d.ts.map +1 -1
- package/dist/catalog/index.js +3 -0
- package/dist/catalog/index.js.map +1 -1
- package/dist/catalog/orchestration/task.tools.d.ts.map +1 -1
- package/dist/catalog/orchestration/task.tools.js +8 -4
- package/dist/catalog/orchestration/task.tools.js.map +1 -1
- package/dist/catalog/risk.d.ts.map +1 -1
- package/dist/catalog/risk.js +7 -0
- package/dist/catalog/risk.js.map +1 -1
- package/dist/execution/common/output-budget.d.ts +5 -0
- package/dist/execution/common/output-budget.d.ts.map +1 -1
- package/dist/execution/common/output-budget.js +26 -0
- package/dist/execution/common/output-budget.js.map +1 -1
- package/dist/execution/common/process-result.d.ts.map +1 -1
- package/dist/execution/common/process-result.js +55 -1
- package/dist/execution/common/process-result.js.map +1 -1
- package/dist/execution/core-dispatch.d.ts.map +1 -1
- package/dist/execution/core-dispatch.js +15 -0
- package/dist/execution/core-dispatch.js.map +1 -1
- package/dist/execution/filesystem/find.d.ts.map +1 -1
- package/dist/execution/filesystem/find.js +5 -2
- package/dist/execution/filesystem/find.js.map +1 -1
- package/dist/execution/filesystem/list.d.ts.map +1 -1
- package/dist/execution/filesystem/list.js +5 -2
- package/dist/execution/filesystem/list.js.map +1 -1
- package/dist/execution/filesystem/read.d.ts.map +1 -1
- package/dist/execution/filesystem/read.js +19 -2
- package/dist/execution/filesystem/read.js.map +1 -1
- package/dist/execution/filesystem/search.d.ts.map +1 -1
- package/dist/execution/filesystem/search.js +12 -2
- package/dist/execution/filesystem/search.js.map +1 -1
- package/dist/execution/index.d.ts +2 -1
- package/dist/execution/index.d.ts.map +1 -1
- package/dist/execution/index.js +2 -1
- package/dist/execution/index.js.map +1 -1
- package/dist/execution/jira/adf.d.ts +15 -0
- package/dist/execution/jira/adf.d.ts.map +1 -0
- package/dist/execution/jira/adf.js +105 -0
- package/dist/execution/jira/adf.js.map +1 -0
- package/dist/execution/jira/client.d.ts +19 -0
- package/dist/execution/jira/client.d.ts.map +1 -0
- package/dist/execution/jira/client.js +104 -0
- package/dist/execution/jira/client.js.map +1 -0
- package/dist/execution/jira/format.d.ts +43 -0
- package/dist/execution/jira/format.d.ts.map +1 -0
- package/dist/execution/jira/format.js +174 -0
- package/dist/execution/jira/format.js.map +1 -0
- package/dist/execution/jira/jira.d.ts +9 -0
- package/dist/execution/jira/jira.d.ts.map +1 -0
- package/dist/execution/jira/jira.js +471 -0
- package/dist/execution/jira/jira.js.map +1 -0
- package/dist/execution/shell/bash.d.ts.map +1 -1
- package/dist/execution/shell/bash.js +6 -2
- package/dist/execution/shell/bash.js.map +1 -1
- package/dist/execution/shell/shell-config.d.ts +16 -0
- package/dist/execution/shell/shell-config.d.ts.map +1 -0
- package/dist/execution/shell/shell-config.js +74 -0
- package/dist/execution/shell/shell-config.js.map +1 -0
- package/dist/execution/web/web-fetch.d.ts.map +1 -1
- package/dist/execution/web/web-fetch.js +39 -0
- package/dist/execution/web/web-fetch.js.map +1 -1
- package/dist/execution/web/web-search.d.ts.map +1 -1
- package/dist/execution/web/web-search.js +9 -2
- package/dist/execution/web/web-search.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +3 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adf.js","sourceRoot":"","sources":["../../../src/execution/jira/adf.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { ToolExecutionContext } from "../../types.js";
|
|
2
|
+
export type JiraConnection = {
|
|
3
|
+
siteUrl: string;
|
|
4
|
+
email: string;
|
|
5
|
+
token: string;
|
|
6
|
+
defaultProjectKey?: string;
|
|
7
|
+
};
|
|
8
|
+
type JiraRequestOptions = {
|
|
9
|
+
method?: string;
|
|
10
|
+
path: string;
|
|
11
|
+
query?: Record<string, string | number | boolean | string[] | undefined>;
|
|
12
|
+
body?: unknown;
|
|
13
|
+
signal?: AbortSignal;
|
|
14
|
+
};
|
|
15
|
+
export declare function requireJiraConnection(context: ToolExecutionContext): Promise<JiraConnection>;
|
|
16
|
+
export declare function jiraRequest<T = unknown>(connection: JiraConnection, options: JiraRequestOptions): Promise<T>;
|
|
17
|
+
export declare function pathSegment(value: string): string;
|
|
18
|
+
export {};
|
|
19
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/execution/jira/client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAG3D,MAAM,MAAM,cAAc,GAAG;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B,CAAC;AASF,KAAK,kBAAkB,GAAG;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC;IACzE,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB,CAAC;AAEF,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,cAAc,CAAC,CA8BzB;AAED,wBAAsB,WAAW,CAAC,CAAC,GAAG,OAAO,EAC3C,UAAU,EAAE,cAAc,EAC1B,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,CAAC,CAAC,CAmCZ;AA2CD,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEjD"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { Buffer } from "node:buffer";
|
|
2
|
+
import { ToolExecutionError } from "../common/tool-error.js";
|
|
3
|
+
export async function requireJiraConnection(context) {
|
|
4
|
+
const token = await context.getApiKey?.("jira");
|
|
5
|
+
const rawConfig = (await context.getProviderConfig?.("jira"));
|
|
6
|
+
const siteUrl = typeof rawConfig?.siteUrl === "string"
|
|
7
|
+
? rawConfig.siteUrl.trim().replace(/\/+$/, "")
|
|
8
|
+
: "";
|
|
9
|
+
const email = typeof rawConfig?.email === "string" ? rawConfig.email.trim() : "";
|
|
10
|
+
const defaultProjectKey = typeof rawConfig?.defaultProjectKey === "string" &&
|
|
11
|
+
rawConfig.defaultProjectKey.trim().length > 0
|
|
12
|
+
? rawConfig.defaultProjectKey.trim()
|
|
13
|
+
: undefined;
|
|
14
|
+
if (rawConfig?.enabled !== true || !siteUrl || !email || !token) {
|
|
15
|
+
throw new ToolExecutionError("JIRA_NOT_CONFIGURED", "Jira is not configured or enabled. Configure Jira site URL, Atlassian email, and API token in Nerve Settings, then enable the Jira module.", {
|
|
16
|
+
enabled: rawConfig?.enabled === true,
|
|
17
|
+
hasSiteUrl: Boolean(siteUrl),
|
|
18
|
+
hasEmail: Boolean(email),
|
|
19
|
+
hasToken: Boolean(token),
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
return { siteUrl, email, token, defaultProjectKey };
|
|
23
|
+
}
|
|
24
|
+
export async function jiraRequest(connection, options) {
|
|
25
|
+
const url = new URL(`${connection.siteUrl}/rest/api/3${options.path}`);
|
|
26
|
+
for (const [key, value] of Object.entries(options.query ?? {})) {
|
|
27
|
+
if (value === undefined)
|
|
28
|
+
continue;
|
|
29
|
+
if (Array.isArray(value)) {
|
|
30
|
+
if (value.length > 0)
|
|
31
|
+
url.searchParams.set(key, value.join(","));
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
url.searchParams.set(key, String(value));
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
const headers = {
|
|
38
|
+
Accept: "application/json",
|
|
39
|
+
Authorization: `Basic ${Buffer.from(`${connection.email}:${connection.token}`, "utf8").toString("base64")}`,
|
|
40
|
+
};
|
|
41
|
+
const init = {
|
|
42
|
+
method: options.method ?? "GET",
|
|
43
|
+
headers,
|
|
44
|
+
signal: timeoutSignal(options.signal, 60_000),
|
|
45
|
+
};
|
|
46
|
+
if (options.body !== undefined) {
|
|
47
|
+
headers["Content-Type"] = "application/json";
|
|
48
|
+
init.body = JSON.stringify(options.body);
|
|
49
|
+
}
|
|
50
|
+
const response = await fetch(url, init);
|
|
51
|
+
if (!response.ok)
|
|
52
|
+
await throwJiraError(response);
|
|
53
|
+
if (response.status === 204)
|
|
54
|
+
return undefined;
|
|
55
|
+
const text = await response.text();
|
|
56
|
+
if (!text.trim())
|
|
57
|
+
return undefined;
|
|
58
|
+
try {
|
|
59
|
+
return JSON.parse(text);
|
|
60
|
+
}
|
|
61
|
+
catch {
|
|
62
|
+
return text;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
function timeoutSignal(signal, milliseconds) {
|
|
66
|
+
const timeout = AbortSignal.timeout(milliseconds);
|
|
67
|
+
return signal ? AbortSignal.any([signal, timeout]) : timeout;
|
|
68
|
+
}
|
|
69
|
+
async function throwJiraError(response) {
|
|
70
|
+
const body = await response.text().catch(() => "");
|
|
71
|
+
const code = jiraErrorCode(response.status);
|
|
72
|
+
const retryable = response.status === 429 || response.status >= 500;
|
|
73
|
+
throw new ToolExecutionError(code, `Jira API error: ${response.status} ${response.statusText}`, {
|
|
74
|
+
status: response.status,
|
|
75
|
+
statusText: response.statusText,
|
|
76
|
+
body: safeErrorBody(body),
|
|
77
|
+
}, retryable);
|
|
78
|
+
}
|
|
79
|
+
function jiraErrorCode(status) {
|
|
80
|
+
if (status === 400)
|
|
81
|
+
return "JIRA_BAD_REQUEST";
|
|
82
|
+
if (status === 401)
|
|
83
|
+
return "JIRA_UNAUTHORIZED";
|
|
84
|
+
if (status === 403)
|
|
85
|
+
return "JIRA_FORBIDDEN";
|
|
86
|
+
if (status === 404)
|
|
87
|
+
return "JIRA_NOT_FOUND";
|
|
88
|
+
if (status === 429)
|
|
89
|
+
return "JIRA_RATE_LIMITED";
|
|
90
|
+
if (status >= 500)
|
|
91
|
+
return "JIRA_SERVER_ERROR";
|
|
92
|
+
return "JIRA_API_ERROR";
|
|
93
|
+
}
|
|
94
|
+
function safeErrorBody(body) {
|
|
95
|
+
if (!body)
|
|
96
|
+
return undefined;
|
|
97
|
+
return body
|
|
98
|
+
.replaceAll(/Basic\s+[A-Za-z0-9+/=_-]+/g, "Basic [redacted]")
|
|
99
|
+
.slice(0, 4000);
|
|
100
|
+
}
|
|
101
|
+
export function pathSegment(value) {
|
|
102
|
+
return encodeURIComponent(value);
|
|
103
|
+
}
|
|
104
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/execution/jira/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAwB7D,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,OAA6B;IAE7B,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,CAAC;IAChD,MAAM,SAAS,GAAG,CAAC,MAAM,OAAO,CAAC,iBAAiB,EAAE,CAAC,MAAM,CAAC,CAE/C,CAAC;IACd,MAAM,OAAO,GACX,OAAO,SAAS,EAAE,OAAO,KAAK,QAAQ;QACpC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;QAC9C,CAAC,CAAC,EAAE,CAAC;IACT,MAAM,KAAK,GACT,OAAO,SAAS,EAAE,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACrE,MAAM,iBAAiB,GACrB,OAAO,SAAS,EAAE,iBAAiB,KAAK,QAAQ;QAChD,SAAS,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;QAC3C,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,IAAI,EAAE;QACpC,CAAC,CAAC,SAAS,CAAC;IAEhB,IAAI,SAAS,EAAE,OAAO,KAAK,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC;QAChE,MAAM,IAAI,kBAAkB,CAC1B,qBAAqB,EACrB,4IAA4I,EAC5I;YACE,OAAO,EAAE,SAAS,EAAE,OAAO,KAAK,IAAI;YACpC,UAAU,EAAE,OAAO,CAAC,OAAO,CAAC;YAC5B,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC;YACxB,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC;SACzB,CACF,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC;AACtD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,UAA0B,EAC1B,OAA2B;IAE3B,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,UAAU,CAAC,OAAO,cAAc,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IACvE,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC;QAC/D,IAAI,KAAK,KAAK,SAAS;YAAE,SAAS;QAClC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;gBAAE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QACnE,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAA2B;QACtC,MAAM,EAAE,kBAAkB;QAC1B,aAAa,EAAE,SAAS,MAAM,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,KAAK,IAAI,UAAU,CAAC,KAAK,EAAE,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;KAC5G,CAAC;IACF,MAAM,IAAI,GAAgB;QACxB,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,KAAK;QAC/B,OAAO;QACP,MAAM,EAAE,aAAa,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC;KAC9C,CAAC;IACF,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC/B,OAAO,CAAC,cAAc,CAAC,GAAG,kBAAkB,CAAC;QAC7C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3C,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACxC,IAAI,CAAC,QAAQ,CAAC,EAAE;QAAE,MAAM,cAAc,CAAC,QAAQ,CAAC,CAAC;IACjD,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG;QAAE,OAAO,SAAc,CAAC;IACnD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IACnC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;QAAE,OAAO,SAAc,CAAC;IACxC,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAM,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CACpB,MAA+B,EAC/B,YAAoB;IAEpB,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAClD,OAAO,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;AAC/D,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,QAAkB;IAC9C,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;IACnD,MAAM,IAAI,GAAG,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC5C,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG,CAAC;IACpE,MAAM,IAAI,kBAAkB,CAC1B,IAAI,EACJ,mBAAmB,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,EAC3D;QACE,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,UAAU,EAAE,QAAQ,CAAC,UAAU;QAC/B,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC;KAC1B,EACD,SAAS,CACV,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,MAAc;IACnC,IAAI,MAAM,KAAK,GAAG;QAAE,OAAO,kBAAkB,CAAC;IAC9C,IAAI,MAAM,KAAK,GAAG;QAAE,OAAO,mBAAmB,CAAC;IAC/C,IAAI,MAAM,KAAK,GAAG;QAAE,OAAO,gBAAgB,CAAC;IAC5C,IAAI,MAAM,KAAK,GAAG;QAAE,OAAO,gBAAgB,CAAC;IAC5C,IAAI,MAAM,KAAK,GAAG;QAAE,OAAO,mBAAmB,CAAC;IAC/C,IAAI,MAAM,IAAI,GAAG;QAAE,OAAO,mBAAmB,CAAC;IAC9C,OAAO,gBAAgB,CAAC;AAC1B,CAAC;AAED,SAAS,aAAa,CAAC,IAAY;IACjC,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IAC5B,OAAO,IAAI;SACR,UAAU,CAAC,4BAA4B,EAAE,kBAAkB,CAAC;SAC5D,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAa;IACvC,OAAO,kBAAkB,CAAC,KAAK,CAAC,CAAC;AACnC,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import type { JiraIssueSummaryPayload, JiraProjectSummaryPayload, JiraTransitionSummaryPayload } from "@nervekit/shared";
|
|
2
|
+
import type { ToolExecutionContext, ToolExecutionResult } from "../../types.js";
|
|
3
|
+
export declare const JIRA_DISPLAY_ITEM_LIMIT = 20;
|
|
4
|
+
export declare const JIRA_FIELD_DISPLAY_LIMIT = 20;
|
|
5
|
+
export declare const JIRA_TEXT_FIELD_MAX_CHARS = 300;
|
|
6
|
+
export declare function writeJiraArtifact(context: ToolExecutionContext, kind: string, payload: unknown): Promise<{
|
|
7
|
+
path: string;
|
|
8
|
+
bytes: number;
|
|
9
|
+
chars: number;
|
|
10
|
+
lines: number;
|
|
11
|
+
}>;
|
|
12
|
+
export declare function buildJiraTextResult({ text, context, details, artifact, }: {
|
|
13
|
+
text: string;
|
|
14
|
+
context: ToolExecutionContext;
|
|
15
|
+
details?: Record<string, unknown>;
|
|
16
|
+
artifact?: {
|
|
17
|
+
path: string;
|
|
18
|
+
bytes: number;
|
|
19
|
+
chars: number;
|
|
20
|
+
lines: number;
|
|
21
|
+
};
|
|
22
|
+
}): Promise<ToolExecutionResult>;
|
|
23
|
+
export declare function takeDisplayItems<T>(items: T[], limit?: number): {
|
|
24
|
+
items: T[];
|
|
25
|
+
total: number;
|
|
26
|
+
displayed: number;
|
|
27
|
+
omitted: number;
|
|
28
|
+
};
|
|
29
|
+
export declare function displayLimitNotice({ noun, total, displayed, artifactPath, }: {
|
|
30
|
+
noun: string;
|
|
31
|
+
total: number;
|
|
32
|
+
displayed: number;
|
|
33
|
+
artifactPath?: string;
|
|
34
|
+
}): string | undefined;
|
|
35
|
+
export declare function summarizeJiraIssue(issue: unknown): JiraIssueSummaryPayload | undefined;
|
|
36
|
+
export declare function summarizeJiraProject(project: unknown, fallbackKey?: string): JiraProjectSummaryPayload | undefined;
|
|
37
|
+
export declare function summarizeJiraTransition(value: unknown): JiraTransitionSummaryPayload | undefined;
|
|
38
|
+
export declare function issueLine(issue: unknown): string;
|
|
39
|
+
export declare function formatIssueSummaryLine(summary: JiraIssueSummaryPayload): string;
|
|
40
|
+
export declare function nameOf(value: unknown): string | undefined;
|
|
41
|
+
export declare function transitionLine(value: unknown): string;
|
|
42
|
+
export declare function formatTransitionSummaryLine(summary: JiraTransitionSummaryPayload): string;
|
|
43
|
+
//# sourceMappingURL=format.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../../src/execution/jira/format.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,uBAAuB,EACvB,yBAAyB,EACzB,4BAA4B,EAE7B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAGhF,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAC1C,eAAO,MAAM,wBAAwB,KAAK,CAAC;AAC3C,eAAO,MAAM,yBAAyB,MAAM,CAAC;AAE7C,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,oBAAoB,EAC7B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,OAAO,GACf,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAgBxE;AAED,wBAAsB,mBAAmB,CAAC,EACxC,IAAI,EACJ,OAAO,EACP,OAAY,EACZ,QAAQ,GACT,EAAE;IACD,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,oBAAoB,CAAC;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,QAAQ,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CAC1E,GAAG,OAAO,CAAC,mBAAmB,CAAC,CA2B/B;AAED,wBAAgB,gBAAgB,CAAC,CAAC,EAChC,KAAK,EAAE,CAAC,EAAE,EACV,KAAK,SAA0B,GAC9B;IAAE,KAAK,EAAE,CAAC,EAAE,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CASnE;AAED,wBAAgB,kBAAkB,CAAC,EACjC,IAAI,EACJ,KAAK,EACL,SAAS,EACT,YAAY,GACb,EAAE;IACD,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,GAAG,MAAM,GAAG,SAAS,CAMrB;AAED,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,OAAO,GACb,uBAAuB,GAAG,SAAS,CAgBrC;AAED,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,OAAO,EAChB,WAAW,CAAC,EAAE,MAAM,GACnB,yBAAyB,GAAG,SAAS,CAcvC;AAED,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,OAAO,GACb,4BAA4B,GAAG,SAAS,CAU1C;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAGhD;AAED,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,uBAAuB,GAC/B,MAAM,CAWR;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAIzD;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAGrD;AAED,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,4BAA4B,GACpC,MAAM,CAER"}
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
import { createHash } from "node:crypto";
|
|
2
|
+
import { mkdir, writeFile } from "node:fs/promises";
|
|
3
|
+
import { tmpdir } from "node:os";
|
|
4
|
+
import { join } from "node:path";
|
|
5
|
+
import { buildProcessTextResult } from "../common/process-result.js";
|
|
6
|
+
export const JIRA_DISPLAY_ITEM_LIMIT = 20;
|
|
7
|
+
export const JIRA_FIELD_DISPLAY_LIMIT = 20;
|
|
8
|
+
export const JIRA_TEXT_FIELD_MAX_CHARS = 300;
|
|
9
|
+
export async function writeJiraArtifact(context, kind, payload) {
|
|
10
|
+
const baseDir = context.dataDir
|
|
11
|
+
? join(context.dataDir, "tmp", "jira")
|
|
12
|
+
: join(tmpdir(), "nerve-jira");
|
|
13
|
+
await mkdir(baseDir, { recursive: true, mode: 0o700 });
|
|
14
|
+
const text = JSON.stringify(payload, null, 2);
|
|
15
|
+
const hash = createHash("sha256").update(text).digest("hex").slice(0, 10);
|
|
16
|
+
const timestamp = new Date().toISOString().replace(/[:.]/g, "-");
|
|
17
|
+
const path = join(baseDir, `${kind}-${timestamp}-${hash}.json`);
|
|
18
|
+
await writeFile(path, text, { encoding: "utf8", mode: 0o600 });
|
|
19
|
+
return {
|
|
20
|
+
path,
|
|
21
|
+
bytes: Buffer.byteLength(text, "utf8"),
|
|
22
|
+
chars: text.length,
|
|
23
|
+
lines: text.length === 0 ? 0 : text.split("\n").length,
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
export async function buildJiraTextResult({ text, context, details = {}, artifact, }) {
|
|
27
|
+
const existingOutputLimits = details.outputLimits;
|
|
28
|
+
const outputLimits = artifact
|
|
29
|
+
? {
|
|
30
|
+
...(existingOutputLimits ?? {}),
|
|
31
|
+
artifacts: [
|
|
32
|
+
...(existingOutputLimits?.artifacts ?? []),
|
|
33
|
+
{
|
|
34
|
+
kind: "raw_result",
|
|
35
|
+
path: artifact.path,
|
|
36
|
+
label: "Raw Jira JSON",
|
|
37
|
+
bytes: artifact.bytes,
|
|
38
|
+
chars: artifact.chars,
|
|
39
|
+
lines: artifact.lines,
|
|
40
|
+
},
|
|
41
|
+
],
|
|
42
|
+
}
|
|
43
|
+
: existingOutputLimits;
|
|
44
|
+
return buildProcessTextResult({
|
|
45
|
+
text,
|
|
46
|
+
outputFilePrefix: "nerve-jira",
|
|
47
|
+
exitMessagePrefix: "Jira",
|
|
48
|
+
dataDir: context.dataDir,
|
|
49
|
+
details: { ...details, ...(outputLimits ? { outputLimits } : {}) },
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
export function takeDisplayItems(items, limit = JIRA_DISPLAY_ITEM_LIMIT) {
|
|
53
|
+
const total = items.length;
|
|
54
|
+
const displayedItems = items.slice(0, limit);
|
|
55
|
+
return {
|
|
56
|
+
items: displayedItems,
|
|
57
|
+
total,
|
|
58
|
+
displayed: displayedItems.length,
|
|
59
|
+
omitted: Math.max(0, total - displayedItems.length),
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
export function displayLimitNotice({ noun, total, displayed, artifactPath, }) {
|
|
63
|
+
if (total <= displayed)
|
|
64
|
+
return undefined;
|
|
65
|
+
const plural = total === 1 ? noun : `${noun}s`;
|
|
66
|
+
return artifactPath
|
|
67
|
+
? `Showing first ${displayed} of ${total} ${plural}; full Jira response is saved to ${artifactPath}.`
|
|
68
|
+
: `Showing first ${displayed} of ${total} ${plural}; narrow the query or save raw JSON for full details.`;
|
|
69
|
+
}
|
|
70
|
+
export function summarizeJiraIssue(issue) {
|
|
71
|
+
if (!issue || typeof issue !== "object")
|
|
72
|
+
return undefined;
|
|
73
|
+
const record = issue;
|
|
74
|
+
const fields = asRecord(record.fields);
|
|
75
|
+
const key = stringField(record.key) ?? stringField(record.id);
|
|
76
|
+
if (!key)
|
|
77
|
+
return undefined;
|
|
78
|
+
return compactRecord({
|
|
79
|
+
key,
|
|
80
|
+
id: stringField(record.id),
|
|
81
|
+
summary: truncateField(stringField(fields.summary)),
|
|
82
|
+
issueType: truncateField(nameOf(fields.issuetype)),
|
|
83
|
+
status: truncateField(nameOf(fields.status)),
|
|
84
|
+
assignee: truncateField(displayNameOf(fields.assignee)),
|
|
85
|
+
priority: truncateField(nameOf(fields.priority)),
|
|
86
|
+
updated: truncateField(stringField(fields.updated)),
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
export function summarizeJiraProject(project, fallbackKey) {
|
|
90
|
+
if (!project || typeof project !== "object") {
|
|
91
|
+
return fallbackKey ? { key: fallbackKey } : undefined;
|
|
92
|
+
}
|
|
93
|
+
const record = project;
|
|
94
|
+
const key = stringField(record.key) ?? fallbackKey ?? stringField(record.id);
|
|
95
|
+
if (!key)
|
|
96
|
+
return undefined;
|
|
97
|
+
return compactRecord({
|
|
98
|
+
key,
|
|
99
|
+
id: stringField(record.id),
|
|
100
|
+
name: truncateField(stringField(record.name)),
|
|
101
|
+
projectTypeKey: truncateField(stringField(record.projectTypeKey)),
|
|
102
|
+
lead: truncateField(displayNameOf(record.lead)),
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
export function summarizeJiraTransition(value) {
|
|
106
|
+
if (!value || typeof value !== "object")
|
|
107
|
+
return undefined;
|
|
108
|
+
const record = value;
|
|
109
|
+
const id = stringField(record.id);
|
|
110
|
+
if (!id)
|
|
111
|
+
return undefined;
|
|
112
|
+
return compactRecord({
|
|
113
|
+
id,
|
|
114
|
+
name: truncateField(stringField(record.name)),
|
|
115
|
+
to: truncateField(nameOf(record.to) ?? stringField(record.to)),
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
export function issueLine(issue) {
|
|
119
|
+
const summary = summarizeJiraIssue(issue);
|
|
120
|
+
return summary ? formatIssueSummaryLine(summary) : JSON.stringify(issue);
|
|
121
|
+
}
|
|
122
|
+
export function formatIssueSummaryLine(summary) {
|
|
123
|
+
const parts = [
|
|
124
|
+
summary.key,
|
|
125
|
+
summary.issueType,
|
|
126
|
+
summary.status,
|
|
127
|
+
summary.priority ? `priority: ${summary.priority}` : undefined,
|
|
128
|
+
summary.assignee ? `assignee: ${summary.assignee}` : undefined,
|
|
129
|
+
]
|
|
130
|
+
.filter(Boolean)
|
|
131
|
+
.join(" · ");
|
|
132
|
+
return `- ${parts}${summary.summary ? ` — ${summary.summary}` : ""}`;
|
|
133
|
+
}
|
|
134
|
+
export function nameOf(value) {
|
|
135
|
+
if (!value || typeof value !== "object")
|
|
136
|
+
return undefined;
|
|
137
|
+
const name = value.name;
|
|
138
|
+
return typeof name === "string" ? name : undefined;
|
|
139
|
+
}
|
|
140
|
+
export function transitionLine(value) {
|
|
141
|
+
const summary = summarizeJiraTransition(value);
|
|
142
|
+
return summary ? formatTransitionSummaryLine(summary) : JSON.stringify(value);
|
|
143
|
+
}
|
|
144
|
+
export function formatTransitionSummaryLine(summary) {
|
|
145
|
+
return `- ${summary.id} · ${summary.name ?? "(unnamed)"}${summary.to ? ` → ${summary.to}` : ""}`;
|
|
146
|
+
}
|
|
147
|
+
function truncateField(value) {
|
|
148
|
+
if (value === undefined)
|
|
149
|
+
return undefined;
|
|
150
|
+
const normalized = value.replace(/\s+/g, " ").trim();
|
|
151
|
+
if (normalized.length <= JIRA_TEXT_FIELD_MAX_CHARS)
|
|
152
|
+
return normalized;
|
|
153
|
+
return `${normalized.slice(0, JIRA_TEXT_FIELD_MAX_CHARS - 1)}…`;
|
|
154
|
+
}
|
|
155
|
+
function stringField(value) {
|
|
156
|
+
return typeof value === "string" && value.length > 0 ? value : undefined;
|
|
157
|
+
}
|
|
158
|
+
function asRecord(value) {
|
|
159
|
+
return value && typeof value === "object" && !Array.isArray(value)
|
|
160
|
+
? value
|
|
161
|
+
: {};
|
|
162
|
+
}
|
|
163
|
+
function displayNameOf(value) {
|
|
164
|
+
if (!value || typeof value !== "object")
|
|
165
|
+
return undefined;
|
|
166
|
+
const record = value;
|
|
167
|
+
return typeof record.displayName === "string"
|
|
168
|
+
? record.displayName
|
|
169
|
+
: nameOf(value);
|
|
170
|
+
}
|
|
171
|
+
function compactRecord(record) {
|
|
172
|
+
return Object.fromEntries(Object.entries(record).filter(([, value]) => value !== undefined));
|
|
173
|
+
}
|
|
174
|
+
//# sourceMappingURL=format.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format.js","sourceRoot":"","sources":["../../../src/execution/jira/format.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { ToolExecutionContext, ToolExecutionResult } from "../../types.js";
|
|
2
|
+
export declare function executeJiraSearchIssues(args: Record<string, unknown>, context: ToolExecutionContext): Promise<ToolExecutionResult>;
|
|
3
|
+
export declare function executeJiraGetIssue(args: Record<string, unknown>, context: ToolExecutionContext): Promise<ToolExecutionResult>;
|
|
4
|
+
export declare function executeJiraGetProject(args: Record<string, unknown>, context: ToolExecutionContext): Promise<ToolExecutionResult>;
|
|
5
|
+
export declare function executeJiraCreateIssue(args: Record<string, unknown>, context: ToolExecutionContext): Promise<ToolExecutionResult>;
|
|
6
|
+
export declare function executeJiraUpdateIssue(args: Record<string, unknown>, context: ToolExecutionContext): Promise<ToolExecutionResult>;
|
|
7
|
+
export declare function executeJiraAddComment(args: Record<string, unknown>, context: ToolExecutionContext): Promise<ToolExecutionResult>;
|
|
8
|
+
export declare function executeJiraTransitionIssue(args: Record<string, unknown>, context: ToolExecutionContext): Promise<ToolExecutionResult>;
|
|
9
|
+
//# sourceMappingURL=jira.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jira.d.ts","sourceRoot":"","sources":["../../../src/execution/jira/jira.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAiDhF,wBAAsB,uBAAuB,CAC3C,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,mBAAmB,CAAC,CA8D9B;AAED,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,mBAAmB,CAAC,CAoF9B;AAED,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,mBAAmB,CAAC,CAyD9B;AAED,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,mBAAmB,CAAC,CA6C9B;AAED,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,mBAAmB,CAAC,CAyC9B;AAED,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,mBAAmB,CAAC,CAyB9B;AAED,wBAAsB,0BAA0B,CAC9C,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,mBAAmB,CAAC,CAmF9B"}
|