@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.
Files changed (36) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +71 -71
  3. package/dist/__tests__/julesApiClient.test.js +12 -8
  4. package/dist/__tests__/julesApiClient.test.js.map +1 -1
  5. package/dist/__tests__/toolRegistration.test.js +1 -1
  6. package/dist/constants.js +1 -1
  7. package/dist/index.js +14 -14
  8. package/dist/index.js.map +1 -1
  9. package/dist/mock.d.ts.map +1 -1
  10. package/dist/mock.js +26 -26
  11. package/dist/mock.js.map +1 -1
  12. package/dist/schemas/julesSchemas.d.ts +55 -79
  13. package/dist/schemas/julesSchemas.d.ts.map +1 -1
  14. package/dist/schemas/julesSchemas.js +40 -12
  15. package/dist/schemas/julesSchemas.js.map +1 -1
  16. package/dist/services/julesApiClient.d.ts +2 -2
  17. package/dist/services/julesApiClient.d.ts.map +1 -1
  18. package/dist/services/julesApiClient.js +27 -19
  19. package/dist/services/julesApiClient.js.map +1 -1
  20. package/dist/tools/approvePlan.d.ts +1 -1
  21. package/dist/tools/approvePlan.d.ts.map +1 -1
  22. package/dist/tools/approvePlan.js +20 -17
  23. package/dist/tools/approvePlan.js.map +1 -1
  24. package/dist/tools/createSession.d.ts +1 -1
  25. package/dist/tools/createSession.d.ts.map +1 -1
  26. package/dist/tools/createSession.js +35 -30
  27. package/dist/tools/createSession.js.map +1 -1
  28. package/dist/tools/listSessions.d.ts +1 -1
  29. package/dist/tools/listSessions.d.ts.map +1 -1
  30. package/dist/tools/listSessions.js +37 -36
  31. package/dist/tools/listSessions.js.map +1 -1
  32. package/dist/tools/listSources.d.ts +1 -1
  33. package/dist/tools/listSources.d.ts.map +1 -1
  34. package/dist/tools/listSources.js +31 -20
  35. package/dist/tools/listSources.js.map +1 -1
  36. package/package.json +8 -8
@@ -1,4 +1,6 @@
1
- import { z } from "zod";
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.number().int().min(1).max(100).default(20).describe("Maximum results to return"),
11
- pageToken: z.string().optional().describe("Page token for retrieving the next page"),
12
- response_format: z.enum(["markdown", "json"]).default("markdown").describe("Output format: 'markdown' or 'json'"),
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.string().describe("The name of the source resource (e.g., 'sources/github/owner/repo')."),
20
- startingBranch: z.string().default("main").describe("The starting branch for the repository."),
21
- automationMode: z.enum(["AUTO_CREATE_PR", "NONE"]).default("NONE").describe("Whether to automatically create a PR ('AUTO_CREATE_PR' or 'NONE')."),
22
- title: z.string().describe("The title of the session."),
23
- requirePlanApproval: z.boolean().default(false).describe("If true, requires an explicit call to approve_plan to proceed."),
24
- response_format: z.enum(["markdown", "json"]).default("markdown").describe("Output format: 'markdown' or 'json'"),
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.string().describe("The session ID or resource name (e.g., 'sessions/12345')."),
31
- response_format: z.enum(["markdown", "json"]).default("markdown").describe("Output format: 'markdown' or 'json'"),
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,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,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,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,2BAA2B,CAAC;IAC5F,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yCAAyC,CAAC;IACpF,eAAe,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,qCAAqC,CAAC;CACpH,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,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sEAAsE,CAAC;IACnG,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,yCAAyC,CAAC;IAC9F,cAAc,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,oEAAoE,CAAC;IACjJ,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;IACvD,mBAAmB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,gEAAgE,CAAC;IAC1H,eAAe,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,qCAAqC,CAAC;CACpH,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,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2DAA2D,CAAC;IAC3F,eAAe,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,qCAAqC,CAAC;CACpH,CAAC,CAAC"}
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: "text";
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?: "GET" | "POST" | "PUT" | "DELETE", data?: unknown, params?: Record<string, unknown>): Promise<T>;
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,CAwB1D"}
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 "axios";
2
- import { API_BASE_URL } from "../constants.js";
1
+ import axios from 'axios';
2
+ import { API_BASE_URL } from '../constants.js';
3
3
  function apiError(message) {
4
- return { content: [{ type: "text", text: message }], isError: true };
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 = "GET", data, params) {
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("JULES_API_KEY environment variable is missing.");
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("/") ? endpoint : `/${endpoint}`}`,
16
+ url: `${API_BASE_URL}${endpoint.startsWith('/') ? endpoint : `/${endpoint}`}`,
17
17
  data,
18
18
  params,
19
19
  timeout: 30000,
20
20
  headers: {
21
- "Content-Type": "application/json",
22
- "Accept": "application/json",
23
- "X-Goog-Api-Key": apiKey,
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("JULES_API_KEY")) {
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 ?? JSON.stringify(data) ?? "No details.");
39
+ const detail = String(data?.error?.message ??
40
+ JSON.stringify(data) ??
41
+ 'No details.');
40
42
  switch (status) {
41
- case 400: return apiError(`Bad Request (400): ${detail}`);
42
- case 401: return apiError(`Unauthorized (401). Ensure JULES_API_KEY is correct. ${detail}`);
43
- case 403: return apiError(`Forbidden (403). You do not have access to this resource. ${detail}`);
44
- case 404: return apiError(`Not Found (404). The resource does not exist. ${detail}`);
45
- case 429: return apiError(`Rate limit exceeded (429). Please wait before retrying. ${detail}`);
46
- default: return apiError(`API request failed with status ${status}. ${detail}`);
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 === "ECONNABORTED") {
50
- return apiError("Request timed out. Please try again.");
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,QAAQ,EAAE,kBAAkB;YAC5B,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,IAA2C,CAAC;YACxE,MAAM,MAAM,GACR,MAAM,CAAE,IAAI,EAAE,KAA6C,EAAE,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,aAAa,CAAC,CAAC;YACnH,QAAQ,MAAM,EAAE,CAAC;gBACb,KAAK,GAAG,CAAC,CAAC,OAAO,QAAQ,CAAC,sBAAsB,MAAM,EAAE,CAAC,CAAC;gBAC1D,KAAK,GAAG,CAAC,CAAC,OAAO,QAAQ,CAAC,wDAAwD,MAAM,EAAE,CAAC,CAAC;gBAC5F,KAAK,GAAG,CAAC,CAAC,OAAO,QAAQ,CAAC,6DAA6D,MAAM,EAAE,CAAC,CAAC;gBACjG,KAAK,GAAG,CAAC,CAAC,OAAO,QAAQ,CAAC,iDAAiD,MAAM,EAAE,CAAC,CAAC;gBACrF,KAAK,GAAG,CAAC,CAAC,OAAO,QAAQ,CAAC,2DAA2D,MAAM,EAAE,CAAC,CAAC;gBAC/F,OAAO,CAAC,CAAE,OAAO,QAAQ,CAAC,kCAAkC,MAAM,KAAK,MAAM,EAAE,CAAC,CAAC;YACrF,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,CAAC,qBAAqB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AACnG,CAAC"}
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,3 +1,3 @@
1
- import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
1
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
2
  export declare function registerApprovePlanTool(server: McpServer): void;
3
3
  //# sourceMappingURL=approvePlan.d.ts.map
@@ -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;AAOpE,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,QAuCxD"}
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 "../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";
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("jules_approve_plan", {
7
- title: "Approve Jules Session Plan",
8
- description: "Approve a pending plan for a Jules session to proceed.",
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 = p.sessionId.includes("/")
20
- ? `/${p.sessionId}:approvePlan`
21
- : `/v1alpha/sessions/${p.sessionId}:approvePlan`;
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, "POST", {});
23
+ : await julesApiRequest(endpoint, 'POST', {});
25
24
  let textContent;
26
- if (p.response_format === ResponseFormat.MARKDOWN) {
27
- textContent = `# Plan Approved\n\nSuccessfully approved plan for session \`${p.sessionId}\`.\n\nUse \`jules_list_sessions\` to monitor progress.`;
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: p.sessionId, data }, null, 2);
29
+ textContent = JSON.stringify({ success: true, session: params.sessionId, data }, null, 2);
31
30
  }
32
31
  if (textContent.length > CHARACTER_LIMIT)
33
- textContent = textContent.slice(0, CHARACTER_LIMIT) + "\n...[truncated]";
34
- return { content: [{ type: "text", text: textContent }] };
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":"AAEA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChF,OAAO,EAAE,sBAAsB,EAAoB,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACtG,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,EAAE,wDAAwD;QACrE,WAAW,EAAE,sBAAoD;QACjE,WAAW,EAAE;YACT,YAAY,EAAE,KAAK;YACnB,eAAe,EAAE,IAAI;YACrB,cAAc,EAAE,KAAK;YACrB,aAAa,EAAE,KAAK;SACvB;KACJ,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACb,MAAM,CAAC,GAAG,MAAqC,CAAC;QAChD,IAAI,CAAC;YACD,MAAM,QAAQ,GAAG,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC;gBACtC,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,cAAc;gBAC/B,CAAC,CAAC,qBAAqB,CAAC,CAAC,SAAS,cAAc,CAAC;YAErD,MAAM,IAAI,GAAG,OAAO;gBAChB,CAAC,CAAC,aAAa,CAAC,WAAW;gBAC3B,CAAC,CAAC,MAAM,eAAe,CAA0B,QAAQ,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;YAE3E,IAAI,WAAmB,CAAC;YACxB,IAAI,CAAC,CAAC,eAAe,KAAK,cAAc,CAAC,QAAQ,EAAE,CAAC;gBAChD,WAAW,GAAG,+DAA+D,CAAC,CAAC,SAAS,yDAAyD,CAAC;YACtJ,CAAC;iBAAM,CAAC;gBACJ,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YACzF,CAAC;YAED,IAAI,WAAW,CAAC,MAAM,GAAG,eAAe;gBAAE,WAAW,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,eAAe,CAAC,GAAG,kBAAkB,CAAC;YACnH,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC;QACvE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,cAAc,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC;IACL,CAAC,CACJ,CAAC;AACN,CAAC"}
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,3 +1,3 @@
1
- import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
1
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
2
  export declare function registerCreateSessionTool(server: McpServer): void;
3
3
  //# sourceMappingURL=createSession.d.ts.map
@@ -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;AAepE,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,SAAS,QAuD1D"}
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 "../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";
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("jules_create_session", {
7
- title: "Create Jules Session",
8
- description: "Start a new automated coding session with Jules.",
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("/v1alpha/sessions", "POST", payload);
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 (p.response_format === ResponseFormat.MARKDOWN) {
34
+ if (params.response_format !== ResponseFormat.JSON) {
34
35
  const lines = [
35
- `# Created Session: ${data.title ?? "Untitled"}`,
36
- "",
37
- `- **Name/ID**: ${data.name ?? data.id}`,
38
- `- **Prompt**: ${data.prompt ?? p.prompt}`,
39
- `- **Status**: ${data.state ?? "PENDING"}`,
40
- "",
41
- "You can check the progress of this session using the `jules_list_sessions` tool.",
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("\n");
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 = textContent.slice(0, CHARACTER_LIMIT) + "\n...[truncated]";
50
- return { content: [{ type: "text", text: textContent }] };
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":"AAEA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChF,OAAO,EAAE,wBAAwB,EAAsB,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC1G,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAUpD,MAAM,UAAU,yBAAyB,CAAC,MAAiB;IACvD,MAAM,CAAC,YAAY,CACf,sBAAsB,EACtB;QACI,KAAK,EAAE,sBAAsB;QAC7B,WAAW,EAAE,kDAAkD;QAC/D,WAAW,EAAE,wBAAsD;QACnE,WAAW,EAAE;YACT,YAAY,EAAE,KAAK;YACnB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,KAAK;YACrB,aAAa,EAAE,KAAK;SACvB;KACJ,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACb,MAAM,CAAC,GAAG,MAAuC,CAAC;QAClD,IAAI,CAAC;YACD,MAAM,OAAO,GAAG;gBACZ,MAAM,EAAE,CAAC,CAAC,MAAM;gBAChB,aAAa,EAAE;oBACX,MAAM,EAAE,CAAC,CAAC,MAAM;oBAChB,iBAAiB,EAAE,EAAE,cAAc,EAAE,CAAC,CAAC,cAAc,EAAE;iBAC1D;gBACD,cAAc,EAAE,CAAC,CAAC,cAAc;gBAChC,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,mBAAmB,EAAE,CAAC,CAAC,mBAAmB;aAC7C,CAAC;YAEF,MAAM,IAAI,GAAG,OAAO;gBAChB,CAAC,CAAE,aAAa,CAAC,aAAuC;gBACxD,CAAC,CAAC,MAAM,eAAe,CAAwB,mBAAmB,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;YAEzF,IAAI,WAAmB,CAAC;YACxB,IAAI,CAAC,CAAC,eAAe,KAAK,cAAc,CAAC,QAAQ,EAAE,CAAC;gBAChD,MAAM,KAAK,GAAG;oBACV,sBAAsB,IAAI,CAAC,KAAK,IAAI,UAAU,EAAE;oBAChD,EAAE;oBACF,kBAAkB,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,EAAE;oBACxC,iBAAiB,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,EAAE;oBAC1C,iBAAiB,IAAI,CAAC,KAAK,IAAI,SAAS,EAAE;oBAC1C,EAAE;oBACF,kFAAkF;iBACrF,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;gBAAE,WAAW,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,eAAe,CAAC,GAAG,kBAAkB,CAAC;YACnH,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC;QACvE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,cAAc,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC;IACL,CAAC,CACJ,CAAC;AACN,CAAC"}
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,3 +1,3 @@
1
- import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
1
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
2
  export declare function registerListSessionsTool(server: McpServer): void;
3
3
  //# sourceMappingURL=listSessions.d.ts.map
@@ -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;AA0BpE,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,SAAS,QAkEzD"}
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 "../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";
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("jules_list_sessions", {
7
- title: "List Jules Sessions",
8
- description: "List Jules sessions to check status or view outputs.",
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 = { pageSize: p.pageSize };
20
- if (p.pageToken)
21
- queryParams.pageToken = p.pageToken;
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("/v1alpha/sessions", "GET", undefined, queryParams);
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 { content: [{ type: "text", text: "No sessions found." }] };
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 (p.response_format === ResponseFormat.MARKDOWN) {
33
- const lines = ["# Jules Sessions", ""];
40
+ if (params.response_format !== ResponseFormat.JSON) {
41
+ const lines = ['# Jules Sessions', ''];
34
42
  for (const session of sessions) {
35
- lines.push(`## ${session.title ?? "Untitled"} (${session.name ?? session.id})`);
36
- lines.push(`- **State**: ${session.state ?? "UNKNOWN"}`);
37
- if (session.prompt)
38
- lines.push(`- **Prompt**: ${session.prompt}`);
39
- if (session.outputs?.length) {
40
- lines.push("- **Outputs**:");
41
- for (const out of session.outputs) {
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("\n");
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 = textContent.slice(0, CHARACTER_LIMIT) + "\n...[truncated]";
63
- return { content: [{ type: "text", text: textContent }] };
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":"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"}
1
+ {"version":3,"file":"listSessions.js","sourceRoot":"","sources":["../../src/tools/listSessions.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
- import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
1
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
2
  export declare function registerListSourcesTool(server: McpServer): void;
3
3
  //# sourceMappingURL=listSources.d.ts.map
@@ -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;AAkBpE,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,QAwDxD"}
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"}