@fre4x/jules 1.0.1 → 1.0.4
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/LICENSE +21 -21
- package/README.md +71 -71
- package/dist/__tests__/julesApiClient.test.js +12 -8
- package/dist/__tests__/julesApiClient.test.js.map +1 -1
- package/dist/__tests__/toolRegistration.test.js +1 -1
- package/dist/constants.js +1 -1
- package/dist/index.js +14 -14
- package/dist/index.js.map +1 -1
- package/dist/mock.d.ts.map +1 -1
- package/dist/mock.js +26 -26
- package/dist/mock.js.map +1 -1
- package/dist/schemas/julesSchemas.d.ts +55 -79
- package/dist/schemas/julesSchemas.d.ts.map +1 -1
- package/dist/schemas/julesSchemas.js +40 -12
- package/dist/schemas/julesSchemas.js.map +1 -1
- package/dist/services/julesApiClient.d.ts +2 -2
- package/dist/services/julesApiClient.d.ts.map +1 -1
- package/dist/services/julesApiClient.js +27 -19
- package/dist/services/julesApiClient.js.map +1 -1
- package/dist/tools/approvePlan.d.ts +1 -1
- package/dist/tools/approvePlan.d.ts.map +1 -1
- package/dist/tools/approvePlan.js +20 -17
- package/dist/tools/approvePlan.js.map +1 -1
- package/dist/tools/createSession.d.ts +1 -1
- package/dist/tools/createSession.d.ts.map +1 -1
- package/dist/tools/createSession.js +35 -30
- package/dist/tools/createSession.js.map +1 -1
- package/dist/tools/listSessions.d.ts +1 -1
- package/dist/tools/listSessions.d.ts.map +1 -1
- package/dist/tools/listSessions.js +37 -36
- package/dist/tools/listSessions.js.map +1 -1
- package/dist/tools/listSources.d.ts +1 -1
- package/dist/tools/listSources.d.ts.map +1 -1
- package/dist/tools/listSources.js +31 -20
- package/dist/tools/listSources.js.map +1 -1
- package/package.json +8 -8
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import
|
|
1
|
+
import * as zod from 'zod';
|
|
2
|
+
// biome-ignore lint/suspicious/noExplicitAny: compatibility pattern
|
|
3
|
+
const z = zod.z || zod.default || zod;
|
|
2
4
|
// --- Enums ---
|
|
3
5
|
export var ResponseFormat;
|
|
4
6
|
(function (ResponseFormat) {
|
|
@@ -6,28 +8,54 @@ export var ResponseFormat;
|
|
|
6
8
|
ResponseFormat["JSON"] = "json";
|
|
7
9
|
})(ResponseFormat || (ResponseFormat = {}));
|
|
8
10
|
// --- Common ---
|
|
11
|
+
export const ResponseFormatSchema = z
|
|
12
|
+
.enum(['markdown', 'json'])
|
|
13
|
+
.optional()
|
|
14
|
+
.describe("Output format: 'markdown' or 'json' (default: markdown)");
|
|
9
15
|
export const PaginationSchema = z.object({
|
|
10
|
-
pageSize: z
|
|
11
|
-
|
|
12
|
-
|
|
16
|
+
pageSize: z
|
|
17
|
+
.number()
|
|
18
|
+
.int()
|
|
19
|
+
.min(1)
|
|
20
|
+
.max(100)
|
|
21
|
+
.default(20)
|
|
22
|
+
.describe('Maximum results to return'),
|
|
23
|
+
pageToken: z
|
|
24
|
+
.string()
|
|
25
|
+
.optional()
|
|
26
|
+
.describe('Page token for retrieving the next page'),
|
|
27
|
+
response_format: ResponseFormatSchema,
|
|
13
28
|
});
|
|
14
29
|
// --- jules_list_sources ---
|
|
15
30
|
export const ListSourcesInputSchema = PaginationSchema;
|
|
16
31
|
// --- jules_create_session ---
|
|
17
32
|
export const CreateSessionInputSchema = z.object({
|
|
18
33
|
prompt: z.string().describe("The user's goal or prompt for the session."),
|
|
19
|
-
source: z
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
34
|
+
source: z
|
|
35
|
+
.string()
|
|
36
|
+
.describe("The name of the source resource (e.g., 'sources/github/owner/repo')."),
|
|
37
|
+
startingBranch: z
|
|
38
|
+
.string()
|
|
39
|
+
.default('main')
|
|
40
|
+
.describe('The starting branch for the repository.'),
|
|
41
|
+
automationMode: z
|
|
42
|
+
.enum(['AUTO_CREATE_PR', 'NONE'])
|
|
43
|
+
.optional()
|
|
44
|
+
.describe("Whether to automatically create a PR ('AUTO_CREATE_PR' or 'NONE', default: 'NONE')."),
|
|
45
|
+
title: z.string().describe('The title of the session.'),
|
|
46
|
+
requirePlanApproval: z
|
|
47
|
+
.boolean()
|
|
48
|
+
.default(false)
|
|
49
|
+
.describe('If true, requires an explicit call to approve_plan to proceed.'),
|
|
50
|
+
response_format: ResponseFormatSchema,
|
|
25
51
|
});
|
|
26
52
|
// --- jules_list_sessions ---
|
|
27
53
|
export const ListSessionsInputSchema = PaginationSchema;
|
|
28
54
|
// --- jules_approve_plan ---
|
|
29
55
|
export const ApprovePlanInputSchema = z.object({
|
|
30
|
-
sessionId: z
|
|
31
|
-
|
|
56
|
+
sessionId: z
|
|
57
|
+
.string()
|
|
58
|
+
.describe("The session ID or resource name (e.g., 'sessions/12345')."),
|
|
59
|
+
response_format: ResponseFormatSchema,
|
|
32
60
|
});
|
|
33
61
|
//# sourceMappingURL=julesSchemas.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"julesSchemas.js","sourceRoot":"","sources":["../../src/schemas/julesSchemas.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"julesSchemas.js","sourceRoot":"","sources":["../../src/schemas/julesSchemas.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,KAAK,CAAC;AAC3B,oEAAoE;AACpE,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,IAAK,GAAW,CAAC,OAAO,IAAI,GAAG,CAAC;AAE/C,gBAAgB;AAChB,MAAM,CAAN,IAAY,cAGX;AAHD,WAAY,cAAc;IACtB,uCAAqB,CAAA;IACrB,+BAAa,CAAA;AACjB,CAAC,EAHW,cAAc,KAAd,cAAc,QAGzB;AAED,iBAAiB;AACjB,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC;KAChC,IAAI,CAAC,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;KAC1B,QAAQ,EAAE;KACV,QAAQ,CAAC,yDAAyD,CAAC,CAAC;AAEzE,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,QAAQ,EAAE,CAAC;SACN,MAAM,EAAE;SACR,GAAG,EAAE;SACL,GAAG,CAAC,CAAC,CAAC;SACN,GAAG,CAAC,GAAG,CAAC;SACR,OAAO,CAAC,EAAE,CAAC;SACX,QAAQ,CAAC,2BAA2B,CAAC;IAC1C,SAAS,EAAE,CAAC;SACP,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,yCAAyC,CAAC;IACxD,eAAe,EAAE,oBAAoB;CACxC,CAAC,CAAC;AAEH,6BAA6B;AAC7B,MAAM,CAAC,MAAM,sBAAsB,GAAG,gBAAgB,CAAC;AAGvD,+BAA+B;AAC/B,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4CAA4C,CAAC;IACzE,MAAM,EAAE,CAAC;SACJ,MAAM,EAAE;SACR,QAAQ,CACL,sEAAsE,CACzE;IACL,cAAc,EAAE,CAAC;SACZ,MAAM,EAAE;SACR,OAAO,CAAC,MAAM,CAAC;SACf,QAAQ,CAAC,yCAAyC,CAAC;IACxD,cAAc,EAAE,CAAC;SACZ,IAAI,CAAC,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;SAChC,QAAQ,EAAE;SACV,QAAQ,CACL,qFAAqF,CACxF;IACL,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;IACvD,mBAAmB,EAAE,CAAC;SACjB,OAAO,EAAE;SACT,OAAO,CAAC,KAAK,CAAC;SACd,QAAQ,CACL,gEAAgE,CACnE;IACL,eAAe,EAAE,oBAAoB;CACxC,CAAC,CAAC;AAGH,8BAA8B;AAC9B,MAAM,CAAC,MAAM,uBAAuB,GAAG,gBAAgB,CAAC;AAGxD,6BAA6B;AAC7B,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,SAAS,EAAE,CAAC;SACP,MAAM,EAAE;SACR,QAAQ,CAAC,2DAA2D,CAAC;IAC1E,eAAe,EAAE,oBAAoB;CACxC,CAAC,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
type ErrorResult = {
|
|
2
2
|
content: [{
|
|
3
|
-
type:
|
|
3
|
+
type: 'text';
|
|
4
4
|
text: string;
|
|
5
5
|
}];
|
|
6
6
|
isError: true;
|
|
@@ -8,7 +8,7 @@ type ErrorResult = {
|
|
|
8
8
|
/**
|
|
9
9
|
* Make an authenticated request to the Jules API.
|
|
10
10
|
*/
|
|
11
|
-
export declare function julesApiRequest<T>(endpoint: string, method?:
|
|
11
|
+
export declare function julesApiRequest<T>(endpoint: string, method?: 'GET' | 'POST' | 'PUT' | 'DELETE', data?: unknown, params?: Record<string, unknown>): Promise<T>;
|
|
12
12
|
/**
|
|
13
13
|
* Convert a caught error into a tool error result.
|
|
14
14
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"julesApiClient.d.ts","sourceRoot":"","sources":["../../src/services/julesApiClient.ts"],"names":[],"mappings":"AAGA,KAAK,WAAW,GAAG;IAAE,OAAO,EAAE,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAAC,OAAO,EAAE,IAAI,CAAA;CAAE,CAAC;AAMhF;;GAEG;AACH,wBAAsB,eAAe,CAAC,CAAC,EACnC,QAAQ,EAAE,MAAM,EAChB,MAAM,GAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAgB,EACjD,IAAI,CAAC,EAAE,OAAO,EACd,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,OAAO,CAAC,CAAC,CAAC,CAmBZ;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,WAAW,
|
|
1
|
+
{"version":3,"file":"julesApiClient.d.ts","sourceRoot":"","sources":["../../src/services/julesApiClient.ts"],"names":[],"mappings":"AAGA,KAAK,WAAW,GAAG;IAAE,OAAO,EAAE,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAAC,OAAO,EAAE,IAAI,CAAA;CAAE,CAAC;AAMhF;;GAEG;AACH,wBAAsB,eAAe,CAAC,CAAC,EACnC,QAAQ,EAAE,MAAM,EAChB,MAAM,GAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAgB,EACjD,IAAI,CAAC,EAAE,OAAO,EACd,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,OAAO,CAAC,CAAC,CAAC,CAmBZ;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,WAAW,CA+C1D"}
|
|
@@ -1,26 +1,26 @@
|
|
|
1
|
-
import axios from
|
|
2
|
-
import { API_BASE_URL } from
|
|
1
|
+
import axios from 'axios';
|
|
2
|
+
import { API_BASE_URL } from '../constants.js';
|
|
3
3
|
function apiError(message) {
|
|
4
|
-
return { content: [{ type:
|
|
4
|
+
return { content: [{ type: 'text', text: message }], isError: true };
|
|
5
5
|
}
|
|
6
6
|
/**
|
|
7
7
|
* Make an authenticated request to the Jules API.
|
|
8
8
|
*/
|
|
9
|
-
export async function julesApiRequest(endpoint, method =
|
|
9
|
+
export async function julesApiRequest(endpoint, method = 'GET', data, params) {
|
|
10
10
|
const apiKey = process.env.JULES_API_KEY;
|
|
11
11
|
if (!apiKey) {
|
|
12
|
-
throw new Error(
|
|
12
|
+
throw new Error('JULES_API_KEY environment variable is missing.');
|
|
13
13
|
}
|
|
14
14
|
const response = await axios({
|
|
15
15
|
method,
|
|
16
|
-
url: `${API_BASE_URL}${endpoint.startsWith(
|
|
16
|
+
url: `${API_BASE_URL}${endpoint.startsWith('/') ? endpoint : `/${endpoint}`}`,
|
|
17
17
|
data,
|
|
18
18
|
params,
|
|
19
19
|
timeout: 30000,
|
|
20
20
|
headers: {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
21
|
+
'Content-Type': 'application/json',
|
|
22
|
+
Accept: 'application/json',
|
|
23
|
+
'X-Goog-Api-Key': apiKey,
|
|
24
24
|
},
|
|
25
25
|
});
|
|
26
26
|
return response.data;
|
|
@@ -29,25 +29,33 @@ export async function julesApiRequest(endpoint, method = "GET", data, params) {
|
|
|
29
29
|
* Convert a caught error into a tool error result.
|
|
30
30
|
*/
|
|
31
31
|
export function handleApiError(error) {
|
|
32
|
-
if (error instanceof Error && error.message.includes(
|
|
32
|
+
if (error instanceof Error && error.message.includes('JULES_API_KEY')) {
|
|
33
33
|
return apiError(error.message);
|
|
34
34
|
}
|
|
35
35
|
if (axios.isAxiosError(error)) {
|
|
36
36
|
if (error.response) {
|
|
37
37
|
const status = error.response.status;
|
|
38
38
|
const data = error.response.data;
|
|
39
|
-
const detail = String(data?.error?.message ??
|
|
39
|
+
const detail = String(data?.error?.message ??
|
|
40
|
+
JSON.stringify(data) ??
|
|
41
|
+
'No details.');
|
|
40
42
|
switch (status) {
|
|
41
|
-
case 400:
|
|
42
|
-
|
|
43
|
-
case
|
|
44
|
-
|
|
45
|
-
case
|
|
46
|
-
|
|
43
|
+
case 400:
|
|
44
|
+
return apiError(`Bad Request (400): ${detail}`);
|
|
45
|
+
case 401:
|
|
46
|
+
return apiError(`Unauthorized (401). Ensure JULES_API_KEY is correct. ${detail}`);
|
|
47
|
+
case 403:
|
|
48
|
+
return apiError(`Forbidden (403). You do not have access to this resource. ${detail}`);
|
|
49
|
+
case 404:
|
|
50
|
+
return apiError(`Not Found (404). The resource does not exist. ${detail}`);
|
|
51
|
+
case 429:
|
|
52
|
+
return apiError(`Rate limit exceeded (429). Please wait before retrying. ${detail}`);
|
|
53
|
+
default:
|
|
54
|
+
return apiError(`API request failed with status ${status}. ${detail}`);
|
|
47
55
|
}
|
|
48
56
|
}
|
|
49
|
-
if (error.code ===
|
|
50
|
-
return apiError(
|
|
57
|
+
if (error.code === 'ECONNABORTED') {
|
|
58
|
+
return apiError('Request timed out. Please try again.');
|
|
51
59
|
}
|
|
52
60
|
}
|
|
53
61
|
return apiError(`Unexpected error: ${error instanceof Error ? error.message : String(error)}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"julesApiClient.js","sourceRoot":"","sources":["../../src/services/julesApiClient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAI/C,SAAS,QAAQ,CAAC,OAAe;IAC7B,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AACzE,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACjC,QAAgB,EAChB,SAA4C,KAAK,EACjD,IAAc,EACd,MAAgC;IAEhC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;IACzC,IAAI,CAAC,MAAM,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;IACtE,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAI;QAC5B,MAAM;QACN,GAAG,EAAE,GAAG,YAAY,GAAG,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,QAAQ,EAAE,EAAE;QAC7E,IAAI;QACJ,MAAM;QACN,OAAO,EAAE,KAAK;QACd,OAAO,EAAE;YACL,cAAc,EAAE,kBAAkB;YAClC,
|
|
1
|
+
{"version":3,"file":"julesApiClient.js","sourceRoot":"","sources":["../../src/services/julesApiClient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAI/C,SAAS,QAAQ,CAAC,OAAe;IAC7B,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AACzE,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACjC,QAAgB,EAChB,SAA4C,KAAK,EACjD,IAAc,EACd,MAAgC;IAEhC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;IACzC,IAAI,CAAC,MAAM,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;IACtE,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAI;QAC5B,MAAM;QACN,GAAG,EAAE,GAAG,YAAY,GAAG,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,QAAQ,EAAE,EAAE;QAC7E,IAAI;QACJ,MAAM;QACN,OAAO,EAAE,KAAK;QACd,OAAO,EAAE;YACL,cAAc,EAAE,kBAAkB;YAClC,MAAM,EAAE,kBAAkB;YAC1B,gBAAgB,EAAE,MAAM;SAC3B;KACJ,CAAC,CAAC;IACH,OAAO,QAAQ,CAAC,IAAI,CAAC;AACzB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,KAAc;IACzC,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;QACpE,OAAO,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC;IACD,IAAI,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5B,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YACjB,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;YACrC,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,IAEb,CAAC;YAChB,MAAM,MAAM,GAAG,MAAM,CAChB,IAAI,EAAE,KAA6C,EAAE,OAAO;gBACzD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;gBACpB,aAAa,CACpB,CAAC;YACF,QAAQ,MAAM,EAAE,CAAC;gBACb,KAAK,GAAG;oBACJ,OAAO,QAAQ,CAAC,sBAAsB,MAAM,EAAE,CAAC,CAAC;gBACpD,KAAK,GAAG;oBACJ,OAAO,QAAQ,CACX,wDAAwD,MAAM,EAAE,CACnE,CAAC;gBACN,KAAK,GAAG;oBACJ,OAAO,QAAQ,CACX,6DAA6D,MAAM,EAAE,CACxE,CAAC;gBACN,KAAK,GAAG;oBACJ,OAAO,QAAQ,CACX,iDAAiD,MAAM,EAAE,CAC5D,CAAC;gBACN,KAAK,GAAG;oBACJ,OAAO,QAAQ,CACX,2DAA2D,MAAM,EAAE,CACtE,CAAC;gBACN;oBACI,OAAO,QAAQ,CACX,kCAAkC,MAAM,KAAK,MAAM,EAAE,CACxD,CAAC;YACV,CAAC;QACL,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;YAChC,OAAO,QAAQ,CAAC,sCAAsC,CAAC,CAAC;QAC5D,CAAC;IACL,CAAC;IACD,OAAO,QAAQ,CACX,qBAAqB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAChF,CAAC;AACN,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"approvePlan.d.ts","sourceRoot":"","sources":["../../src/tools/approvePlan.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"approvePlan.d.ts","sourceRoot":"","sources":["../../src/tools/approvePlan.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAUzE,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,QAoDxD"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { handleApiError, julesApiRequest } from
|
|
2
|
-
import { ApprovePlanInputSchema, ResponseFormat } from
|
|
3
|
-
import { CHARACTER_LIMIT } from
|
|
4
|
-
import { IS_MOCK, MOCK_FIXTURES } from
|
|
1
|
+
import { handleApiError, julesApiRequest } from '../services/julesApiClient.js';
|
|
2
|
+
import { ApprovePlanInputSchema, ResponseFormat, } from '../schemas/julesSchemas.js';
|
|
3
|
+
import { CHARACTER_LIMIT } from '../constants.js';
|
|
4
|
+
import { IS_MOCK, MOCK_FIXTURES } from '../mock.js';
|
|
5
5
|
export function registerApprovePlanTool(server) {
|
|
6
|
-
server.registerTool(
|
|
7
|
-
title:
|
|
8
|
-
description:
|
|
6
|
+
server.registerTool('jules_approve_plan', {
|
|
7
|
+
title: 'Approve Jules Session Plan',
|
|
8
|
+
description: 'Approve a pending plan for a Jules session to proceed.',
|
|
9
9
|
inputSchema: ApprovePlanInputSchema,
|
|
10
10
|
annotations: {
|
|
11
11
|
readOnlyHint: false,
|
|
@@ -14,24 +14,27 @@ export function registerApprovePlanTool(server) {
|
|
|
14
14
|
openWorldHint: false,
|
|
15
15
|
},
|
|
16
16
|
}, async (params) => {
|
|
17
|
-
const p = params;
|
|
18
17
|
try {
|
|
19
|
-
const endpoint =
|
|
20
|
-
? `/${
|
|
21
|
-
: `/v1alpha/sessions/${
|
|
18
|
+
const endpoint = params.sessionId.includes('/')
|
|
19
|
+
? `/${params.sessionId}:approvePlan`
|
|
20
|
+
: `/v1alpha/sessions/${params.sessionId}:approvePlan`;
|
|
22
21
|
const data = IS_MOCK
|
|
23
22
|
? MOCK_FIXTURES.approvePlan
|
|
24
|
-
: await julesApiRequest(endpoint,
|
|
23
|
+
: await julesApiRequest(endpoint, 'POST', {});
|
|
25
24
|
let textContent;
|
|
26
|
-
if (
|
|
27
|
-
textContent = `# Plan Approved\n\nSuccessfully approved plan for session \`${
|
|
25
|
+
if (params.response_format !== ResponseFormat.JSON) {
|
|
26
|
+
textContent = `# Plan Approved\n\nSuccessfully approved plan for session \`${params.sessionId}\`.\n\nUse \`jules_list_sessions\` to monitor progress.`;
|
|
28
27
|
}
|
|
29
28
|
else {
|
|
30
|
-
textContent = JSON.stringify({ success: true, session:
|
|
29
|
+
textContent = JSON.stringify({ success: true, session: params.sessionId, data }, null, 2);
|
|
31
30
|
}
|
|
32
31
|
if (textContent.length > CHARACTER_LIMIT)
|
|
33
|
-
textContent =
|
|
34
|
-
|
|
32
|
+
textContent =
|
|
33
|
+
textContent.slice(0, CHARACTER_LIMIT) +
|
|
34
|
+
'\n...[truncated]';
|
|
35
|
+
return {
|
|
36
|
+
content: [{ type: 'text', text: textContent }],
|
|
37
|
+
};
|
|
35
38
|
}
|
|
36
39
|
catch (error) {
|
|
37
40
|
return handleApiError(error);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"approvePlan.js","sourceRoot":"","sources":["../../src/tools/approvePlan.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"approvePlan.js","sourceRoot":"","sources":["../../src/tools/approvePlan.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChF,OAAO,EACH,sBAAsB,EAEtB,cAAc,GACjB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEpD,MAAM,UAAU,uBAAuB,CAAC,MAAiB;IACrD,MAAM,CAAC,YAAY,CACf,oBAAoB,EACpB;QACI,KAAK,EAAE,4BAA4B;QACnC,WAAW,EACP,wDAAwD;QAC5D,WAAW,EAAE,sBAA6B;QAC1C,WAAW,EAAE;YACT,YAAY,EAAE,KAAK;YACnB,eAAe,EAAE,IAAI;YACrB,cAAc,EAAE,KAAK;YACrB,aAAa,EAAE,KAAK;SACvB;KACJ,EACD,KAAK,EAAE,MAAwB,EAAE,EAAE;QAC/B,IAAI,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC;gBAC3C,CAAC,CAAC,IAAI,MAAM,CAAC,SAAS,cAAc;gBACpC,CAAC,CAAC,qBAAqB,MAAM,CAAC,SAAS,cAAc,CAAC;YAE1D,MAAM,IAAI,GAAG,OAAO;gBAChB,CAAC,CAAC,aAAa,CAAC,WAAW;gBAC3B,CAAC,CAAC,MAAM,eAAe,CACjB,QAAQ,EACR,MAAM,EACN,EAAE,CACL,CAAC;YAER,IAAI,WAAmB,CAAC;YACxB,IAAI,MAAM,CAAC,eAAe,KAAK,cAAc,CAAC,IAAI,EAAE,CAAC;gBACjD,WAAW,GAAG,+DAA+D,MAAM,CAAC,SAAS,yDAAyD,CAAC;YAC3J,CAAC;iBAAM,CAAC;gBACJ,WAAW,GAAG,IAAI,CAAC,SAAS,CACxB,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,SAAS,EAAE,IAAI,EAAE,EAClD,IAAI,EACJ,CAAC,CACJ,CAAC;YACN,CAAC;YAED,IAAI,WAAW,CAAC,MAAM,GAAG,eAAe;gBACpC,WAAW;oBACP,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,eAAe,CAAC;wBACrC,kBAAkB,CAAC;YAC3B,OAAO;gBACH,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;aAC1D,CAAC;QACN,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,cAAc,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC;IACL,CAAC,CACJ,CAAC;AACN,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createSession.d.ts","sourceRoot":"","sources":["../../src/tools/createSession.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"createSession.d.ts","sourceRoot":"","sources":["../../src/tools/createSession.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAgBzE,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,SAAS,QAiE1D"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { handleApiError, julesApiRequest } from
|
|
2
|
-
import { CreateSessionInputSchema, ResponseFormat } from
|
|
3
|
-
import { CHARACTER_LIMIT } from
|
|
4
|
-
import { IS_MOCK, MOCK_FIXTURES } from
|
|
1
|
+
import { handleApiError, julesApiRequest } from '../services/julesApiClient.js';
|
|
2
|
+
import { CreateSessionInputSchema, ResponseFormat, } from '../schemas/julesSchemas.js';
|
|
3
|
+
import { CHARACTER_LIMIT } from '../constants.js';
|
|
4
|
+
import { IS_MOCK, MOCK_FIXTURES } from '../mock.js';
|
|
5
5
|
export function registerCreateSessionTool(server) {
|
|
6
|
-
server.registerTool(
|
|
7
|
-
title:
|
|
8
|
-
description:
|
|
6
|
+
server.registerTool('jules_create_session', {
|
|
7
|
+
title: 'Create Jules Session',
|
|
8
|
+
description: 'Create a new Jules session to work on a repository.',
|
|
9
9
|
inputSchema: CreateSessionInputSchema,
|
|
10
10
|
annotations: {
|
|
11
11
|
readOnlyHint: false,
|
|
@@ -14,40 +14,45 @@ export function registerCreateSessionTool(server) {
|
|
|
14
14
|
openWorldHint: false,
|
|
15
15
|
},
|
|
16
16
|
}, async (params) => {
|
|
17
|
-
const p = params;
|
|
18
17
|
try {
|
|
19
|
-
const payload = {
|
|
20
|
-
prompt: p.prompt,
|
|
21
|
-
sourceContext: {
|
|
22
|
-
source: p.source,
|
|
23
|
-
githubRepoContext: { startingBranch: p.startingBranch },
|
|
24
|
-
},
|
|
25
|
-
automationMode: p.automationMode,
|
|
26
|
-
title: p.title,
|
|
27
|
-
requirePlanApproval: p.requirePlanApproval,
|
|
28
|
-
};
|
|
29
18
|
const data = IS_MOCK
|
|
30
19
|
? MOCK_FIXTURES.createSession
|
|
31
|
-
: await julesApiRequest(
|
|
20
|
+
: await julesApiRequest('/v1alpha/sessions', 'POST', {
|
|
21
|
+
prompt: params.prompt,
|
|
22
|
+
options: {
|
|
23
|
+
source: params.source,
|
|
24
|
+
config: {
|
|
25
|
+
startingBranch: params.startingBranch,
|
|
26
|
+
},
|
|
27
|
+
},
|
|
28
|
+
automationMode: params.automationMode,
|
|
29
|
+
title: params.title,
|
|
30
|
+
requirePlanApproval: params.requirePlanApproval,
|
|
31
|
+
});
|
|
32
|
+
const sessionId = data.name;
|
|
32
33
|
let textContent;
|
|
33
|
-
if (
|
|
34
|
+
if (params.response_format !== ResponseFormat.JSON) {
|
|
34
35
|
const lines = [
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
`- **
|
|
38
|
-
`- **
|
|
39
|
-
`- **
|
|
40
|
-
|
|
41
|
-
|
|
36
|
+
'# Session Created',
|
|
37
|
+
'',
|
|
38
|
+
`- **Session ID**: ${sessionId}`,
|
|
39
|
+
`- **Title**: ${data.title ?? params.title}`,
|
|
40
|
+
`- **Prompt**: ${data.prompt ?? params.prompt}`,
|
|
41
|
+
'',
|
|
42
|
+
'Use `jules_list_sessions` to check its status.',
|
|
42
43
|
];
|
|
43
|
-
textContent = lines.join(
|
|
44
|
+
textContent = lines.join('\n');
|
|
44
45
|
}
|
|
45
46
|
else {
|
|
46
47
|
textContent = JSON.stringify(data, null, 2);
|
|
47
48
|
}
|
|
48
49
|
if (textContent.length > CHARACTER_LIMIT)
|
|
49
|
-
textContent =
|
|
50
|
-
|
|
50
|
+
textContent =
|
|
51
|
+
textContent.slice(0, CHARACTER_LIMIT) +
|
|
52
|
+
'\n...[truncated]';
|
|
53
|
+
return {
|
|
54
|
+
content: [{ type: 'text', text: textContent }],
|
|
55
|
+
};
|
|
51
56
|
}
|
|
52
57
|
catch (error) {
|
|
53
58
|
return handleApiError(error);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createSession.js","sourceRoot":"","sources":["../../src/tools/createSession.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"createSession.js","sourceRoot":"","sources":["../../src/tools/createSession.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChF,OAAO,EACH,wBAAwB,EAExB,cAAc,GACjB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAQpD,MAAM,UAAU,yBAAyB,CAAC,MAAiB;IACvD,MAAM,CAAC,YAAY,CACf,sBAAsB,EACtB;QACI,KAAK,EAAE,sBAAsB;QAC7B,WAAW,EAAE,qDAAqD;QAClE,WAAW,EAAE,wBAA+B;QAC5C,WAAW,EAAE;YACT,YAAY,EAAE,KAAK;YACnB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,KAAK;YACrB,aAAa,EAAE,KAAK;SACvB;KACJ,EACD,KAAK,EAAE,MAA0B,EAAE,EAAE;QACjC,IAAI,CAAC;YACD,MAAM,IAAI,GAAG,OAAO;gBAChB,CAAC,CAAE,aAAa,CAAC,aAAuC;gBACxD,CAAC,CAAC,MAAM,eAAe,CACjB,mBAAmB,EACnB,MAAM,EACN;oBACI,MAAM,EAAE,MAAM,CAAC,MAAM;oBACrB,OAAO,EAAE;wBACL,MAAM,EAAE,MAAM,CAAC,MAAM;wBACrB,MAAM,EAAE;4BACJ,cAAc,EAAE,MAAM,CAAC,cAAc;yBACxC;qBACJ;oBACD,cAAc,EAAE,MAAM,CAAC,cAAc;oBACrC,KAAK,EAAE,MAAM,CAAC,KAAK;oBACnB,mBAAmB,EAAE,MAAM,CAAC,mBAAmB;iBAClD,CACJ,CAAC;YAER,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC;YAC5B,IAAI,WAAmB,CAAC;YAExB,IAAI,MAAM,CAAC,eAAe,KAAK,cAAc,CAAC,IAAI,EAAE,CAAC;gBACjD,MAAM,KAAK,GAAG;oBACV,mBAAmB;oBACnB,EAAE;oBACF,qBAAqB,SAAS,EAAE;oBAChC,gBAAgB,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,EAAE;oBAC5C,iBAAiB,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE;oBAC/C,EAAE;oBACF,gDAAgD;iBACnD,CAAC;gBACF,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnC,CAAC;iBAAM,CAAC;gBACJ,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YAChD,CAAC;YAED,IAAI,WAAW,CAAC,MAAM,GAAG,eAAe;gBACpC,WAAW;oBACP,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,eAAe,CAAC;wBACrC,kBAAkB,CAAC;YAC3B,OAAO;gBACH,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;aAC1D,CAAC;QACN,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,cAAc,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC;IACL,CAAC,CACJ,CAAC;AACN,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"listSessions.d.ts","sourceRoot":"","sources":["../../src/tools/listSessions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"listSessions.d.ts","sourceRoot":"","sources":["../../src/tools/listSessions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAsBzE,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,SAAS,QAgFzD"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { handleApiError, julesApiRequest } from
|
|
2
|
-
import { ListSessionsInputSchema, ResponseFormat } from
|
|
3
|
-
import { CHARACTER_LIMIT } from
|
|
4
|
-
import { IS_MOCK, MOCK_FIXTURES } from
|
|
1
|
+
import { handleApiError, julesApiRequest } from '../services/julesApiClient.js';
|
|
2
|
+
import { ListSessionsInputSchema, ResponseFormat, } from '../schemas/julesSchemas.js';
|
|
3
|
+
import { CHARACTER_LIMIT } from '../constants.js';
|
|
4
|
+
import { IS_MOCK, MOCK_FIXTURES } from '../mock.js';
|
|
5
5
|
export function registerListSessionsTool(server) {
|
|
6
|
-
server.registerTool(
|
|
7
|
-
title:
|
|
8
|
-
description:
|
|
6
|
+
server.registerTool('jules_list_sessions', {
|
|
7
|
+
title: 'List Jules Sessions',
|
|
8
|
+
description: 'List your active and past Jules sessions and their status.',
|
|
9
9
|
inputSchema: ListSessionsInputSchema,
|
|
10
10
|
annotations: {
|
|
11
11
|
readOnlyHint: true,
|
|
@@ -14,53 +14,54 @@ export function registerListSessionsTool(server) {
|
|
|
14
14
|
openWorldHint: false,
|
|
15
15
|
},
|
|
16
16
|
}, async (params) => {
|
|
17
|
-
const p = params;
|
|
18
17
|
try {
|
|
19
|
-
const queryParams = {
|
|
20
|
-
|
|
21
|
-
|
|
18
|
+
const queryParams = {
|
|
19
|
+
pageSize: params.pageSize,
|
|
20
|
+
};
|
|
21
|
+
if (params.pageToken)
|
|
22
|
+
queryParams.pageToken = params.pageToken;
|
|
22
23
|
const data = IS_MOCK
|
|
23
24
|
? MOCK_FIXTURES.listSessions
|
|
24
|
-
: await julesApiRequest(
|
|
25
|
+
: await julesApiRequest('/v1alpha/sessions', 'GET', undefined, queryParams);
|
|
25
26
|
const sessions = data?.sessions ?? [];
|
|
26
27
|
const nextPageToken = data?.nextPageToken;
|
|
27
28
|
if (!sessions.length) {
|
|
28
|
-
return {
|
|
29
|
+
return {
|
|
30
|
+
content: [
|
|
31
|
+
{
|
|
32
|
+
type: 'text',
|
|
33
|
+
text: 'No sessions found.',
|
|
34
|
+
},
|
|
35
|
+
],
|
|
36
|
+
};
|
|
29
37
|
}
|
|
30
38
|
const output = { sessions, nextPageToken };
|
|
31
39
|
let textContent;
|
|
32
|
-
if (
|
|
33
|
-
const lines = [
|
|
40
|
+
if (params.response_format !== ResponseFormat.JSON) {
|
|
41
|
+
const lines = ['# Jules Sessions', ''];
|
|
34
42
|
for (const session of sessions) {
|
|
35
|
-
lines.push(`## ${session.title
|
|
36
|
-
lines.push(`- **
|
|
37
|
-
if (session.
|
|
38
|
-
lines.push(`- **
|
|
39
|
-
if (session.
|
|
40
|
-
lines.push(
|
|
41
|
-
|
|
42
|
-
if (out.pullRequest) {
|
|
43
|
-
lines.push(` - Pull Request: [${out.pullRequest.title}](${out.pullRequest.url})`);
|
|
44
|
-
}
|
|
45
|
-
else {
|
|
46
|
-
lines.push(` - ${JSON.stringify(out)}`);
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
if (session.pendingPlanApproval)
|
|
51
|
-
lines.push("- ⚠️ **Requires Plan Approval**: Use `jules_approve_plan` to approve.");
|
|
52
|
-
lines.push("");
|
|
43
|
+
lines.push(`## ${session.title}`);
|
|
44
|
+
lines.push(`- **ID**: ${session.name}`);
|
|
45
|
+
if (session.state)
|
|
46
|
+
lines.push(`- **State**: ${session.state}`);
|
|
47
|
+
if (session.githubPr)
|
|
48
|
+
lines.push(`- **GitHub PR**: #${session.githubPr.number} (${session.githubPr.url})`);
|
|
49
|
+
lines.push('');
|
|
53
50
|
}
|
|
54
51
|
if (nextPageToken)
|
|
55
52
|
lines.push(`**Next Page Token**: ${nextPageToken}`);
|
|
56
|
-
textContent = lines.join(
|
|
53
|
+
textContent = lines.join('\n');
|
|
57
54
|
}
|
|
58
55
|
else {
|
|
59
56
|
textContent = JSON.stringify(output, null, 2);
|
|
60
57
|
}
|
|
61
58
|
if (textContent.length > CHARACTER_LIMIT)
|
|
62
|
-
textContent =
|
|
63
|
-
|
|
59
|
+
textContent =
|
|
60
|
+
textContent.slice(0, CHARACTER_LIMIT) +
|
|
61
|
+
'\n...[truncated]';
|
|
62
|
+
return {
|
|
63
|
+
content: [{ type: 'text', text: textContent }],
|
|
64
|
+
};
|
|
64
65
|
}
|
|
65
66
|
catch (error) {
|
|
66
67
|
return handleApiError(error);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"listSessions.js","sourceRoot":"","sources":["../../src/tools/listSessions.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"listSessions.js","sourceRoot":"","sources":["../../src/tools/listSessions.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"listSources.d.ts","sourceRoot":"","sources":["../../src/tools/listSources.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"listSources.d.ts","sourceRoot":"","sources":["../../src/tools/listSources.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAqBzE,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,QA8ExD"}
|