@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,12 +1,11 @@
1
- import { handleApiError, julesApiRequest } from "../services/julesApiClient.js";
2
- import { ListSourcesInputSchema, 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 { ListSourcesInputSchema, 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 registerListSourcesTool(server) {
6
- // @ts-expect-error TS2589: ZodDefault chain triggers deep inference in MCP SDK 1.26
7
- server.registerTool("jules_list_sources", {
8
- title: "List Jules Sources",
9
- description: "List available sources (repositories) connected to Jules.",
6
+ server.registerTool('jules_list_sources', {
7
+ title: 'List Jules Sources',
8
+ description: 'List available sources (repositories) connected to Jules.',
10
9
  inputSchema: ListSourcesInputSchema,
11
10
  annotations: {
12
11
  readOnlyHint: true,
@@ -15,41 +14,53 @@ export function registerListSourcesTool(server) {
15
14
  openWorldHint: false,
16
15
  },
17
16
  }, async (params) => {
18
- const p = params;
19
17
  try {
20
- const queryParams = { pageSize: p.pageSize };
21
- if (p.pageToken)
22
- queryParams.pageToken = p.pageToken;
18
+ const queryParams = {
19
+ pageSize: params.pageSize,
20
+ };
21
+ if (params.pageToken)
22
+ queryParams.pageToken = params.pageToken;
23
23
  const data = IS_MOCK
24
24
  ? MOCK_FIXTURES.listSources
25
- : await julesApiRequest("/v1alpha/sources", "GET", undefined, queryParams);
25
+ : await julesApiRequest('/v1alpha/sources', 'GET', undefined, queryParams);
26
26
  const sources = data?.sources ?? [];
27
27
  const nextPageToken = data?.nextPageToken;
28
28
  if (!sources.length) {
29
- return { content: [{ type: "text", text: "No sources found." }] };
29
+ return {
30
+ content: [
31
+ {
32
+ type: 'text',
33
+ text: 'No sources found.',
34
+ },
35
+ ],
36
+ };
30
37
  }
31
38
  const output = { sources, nextPageToken };
32
39
  let textContent;
33
- if (p.response_format === ResponseFormat.MARKDOWN) {
34
- const lines = ["# Jules Sources", ""];
40
+ if (params.response_format !== ResponseFormat.JSON) {
41
+ const lines = ['# Jules Sources', ''];
35
42
  for (const source of sources) {
36
43
  lines.push(`## ${source.name}`);
37
44
  if (source.id)
38
45
  lines.push(`- **ID**: ${source.id}`);
39
46
  if (source.githubRepo)
40
47
  lines.push(`- **GitHub Repo**: ${source.githubRepo.owner}/${source.githubRepo.repo}`);
41
- lines.push("");
48
+ lines.push('');
42
49
  }
43
50
  if (nextPageToken)
44
51
  lines.push(`**Next Page Token**: ${nextPageToken}`);
45
- textContent = lines.join("\n");
52
+ textContent = lines.join('\n');
46
53
  }
47
54
  else {
48
55
  textContent = JSON.stringify(output, null, 2);
49
56
  }
50
57
  if (textContent.length > CHARACTER_LIMIT)
51
- textContent = textContent.slice(0, CHARACTER_LIMIT) + "\n...[truncated]";
52
- return { content: [{ type: "text", text: textContent }] };
58
+ textContent =
59
+ textContent.slice(0, CHARACTER_LIMIT) +
60
+ '\n...[truncated]';
61
+ return {
62
+ content: [{ type: 'text', text: textContent }],
63
+ };
53
64
  }
54
65
  catch (error) {
55
66
  return handleApiError(error);
@@ -1 +1 @@
1
- {"version":3,"file":"listSources.js","sourceRoot":"","sources":["../../src/tools/listSources.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"listSources.js","sourceRoot":"","sources":["../../src/tools/listSources.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fre4x/jules",
3
- "version": "1.0.1",
3
+ "version": "1.0.4",
4
4
  "description": "MCP server for Jules API integration",
5
5
  "type": "module",
6
6
  "bin": {
@@ -12,12 +12,12 @@
12
12
  "main": "dist/index.js",
13
13
  "scripts": {
14
14
  "start": "node dist/index.js",
15
- "dev": "tsx watch src/index.ts",
16
- "build": "tsc",
17
- "typecheck": "tsc --noEmit",
18
- "prepublishOnly": "npm run build",
19
- "inspector": "mcp-inspector node dist/index.js",
20
- "test": "vitest run",
15
+ "dev": "tsc --watch",
16
+ "build": "NODE_OPTIONS='--max-old-space-size=4096' tsc",
17
+ "typecheck": "NODE_OPTIONS='--max-old-space-size=4096' tsc --noEmit",
18
+ "prepublishOnly": "bun run build && bun run typecheck",
19
+ "inspector": "MOCK=true npx @modelcontextprotocol/inspector dist/index.js",
20
+ "test": "vitest run --exclude dist",
21
21
  "test:watch": "vitest",
22
22
  "clean": "rm -rf dist"
23
23
  },
@@ -30,7 +30,7 @@
30
30
  "dependencies": {
31
31
  "@modelcontextprotocol/sdk": "^1.26.0",
32
32
  "axios": "^1.7.9",
33
- "zod": "^3.24.1"
33
+ "zod": "4.3.6"
34
34
  },
35
35
  "devDependencies": {
36
36
  "@types/node": "^22.10.0",