@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,12 +1,11 @@
|
|
|
1
|
-
import { handleApiError, julesApiRequest } from
|
|
2
|
-
import { ListSourcesInputSchema, ResponseFormat } from
|
|
3
|
-
import { CHARACTER_LIMIT } from
|
|
4
|
-
import { IS_MOCK, MOCK_FIXTURES } from
|
|
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
|
-
|
|
7
|
-
|
|
8
|
-
|
|
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 = {
|
|
21
|
-
|
|
22
|
-
|
|
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(
|
|
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 {
|
|
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 (
|
|
34
|
-
const lines = [
|
|
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(
|
|
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 =
|
|
52
|
-
|
|
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":"
|
|
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.
|
|
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": "
|
|
16
|
-
"build": "tsc",
|
|
17
|
-
"typecheck": "tsc --noEmit",
|
|
18
|
-
"prepublishOnly": "
|
|
19
|
-
"inspector": "
|
|
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": "
|
|
33
|
+
"zod": "4.3.6"
|
|
34
34
|
},
|
|
35
35
|
"devDependencies": {
|
|
36
36
|
"@types/node": "^22.10.0",
|