@fre4x/jules 1.0.30 → 1.0.42
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/README.md +36 -39
- package/dist/index.js +46200 -25
- package/package.json +5 -5
- package/dist/__tests__/julesApiClient.test.d.ts +0 -2
- package/dist/__tests__/julesApiClient.test.d.ts.map +0 -1
- package/dist/__tests__/julesApiClient.test.js +0 -53
- package/dist/__tests__/julesApiClient.test.js.map +0 -1
- package/dist/__tests__/toolRegistration.test.d.ts +0 -2
- package/dist/__tests__/toolRegistration.test.d.ts.map +0 -1
- package/dist/__tests__/toolRegistration.test.js +0 -21
- package/dist/__tests__/toolRegistration.test.js.map +0 -1
- package/dist/constants.d.ts +0 -3
- package/dist/constants.d.ts.map +0 -1
- package/dist/constants.js +0 -3
- package/dist/constants.js.map +0 -1
- package/dist/index.d.ts +0 -3
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/mock.d.ts +0 -43
- package/dist/mock.d.ts.map +0 -1
- package/dist/mock.js +0 -60
- package/dist/mock.js.map +0 -1
- package/dist/schemas/julesSchemas.d.ts +0 -60
- package/dist/schemas/julesSchemas.d.ts.map +0 -1
- package/dist/schemas/julesSchemas.js +0 -61
- package/dist/schemas/julesSchemas.js.map +0 -1
- package/dist/services/julesApiClient.d.ts +0 -17
- package/dist/services/julesApiClient.d.ts.map +0 -1
- package/dist/services/julesApiClient.js +0 -63
- package/dist/services/julesApiClient.js.map +0 -1
- package/dist/tools/approvePlan.d.ts +0 -3
- package/dist/tools/approvePlan.d.ts.map +0 -1
- package/dist/tools/approvePlan.js +0 -44
- package/dist/tools/approvePlan.js.map +0 -1
- package/dist/tools/createSession.d.ts +0 -3
- package/dist/tools/createSession.d.ts.map +0 -1
- package/dist/tools/createSession.js +0 -62
- package/dist/tools/createSession.js.map +0 -1
- package/dist/tools/listSessions.d.ts +0 -3
- package/dist/tools/listSessions.d.ts.map +0 -1
- package/dist/tools/listSessions.js +0 -71
- package/dist/tools/listSessions.js.map +0 -1
- package/dist/tools/listSources.d.ts +0 -3
- package/dist/tools/listSources.d.ts.map +0 -1
- package/dist/tools/listSources.js +0 -70
- package/dist/tools/listSources.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
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,KAAK,EAAE,MAAM,CAAC,KAAK;oBACnB,aAAa,EAAE;wBACX,MAAM,EAAE,MAAM,CAAC,MAAM;wBACrB,iBAAiB,EAAE;4BACf,cAAc,EAAE,MAAM,CAAC,cAAc;yBACxC;qBACJ;oBACD,cAAc,EAAE,MAAM,CAAC,cAAc;oBACrC,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 +0,0 @@
|
|
|
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,71 +0,0 @@
|
|
|
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
|
-
export function registerListSessionsTool(server) {
|
|
6
|
-
server.registerTool('jules_list_sessions', {
|
|
7
|
-
title: 'List Jules Sessions',
|
|
8
|
-
description: 'List your active and past Jules sessions and their status.',
|
|
9
|
-
inputSchema: ListSessionsInputSchema,
|
|
10
|
-
annotations: {
|
|
11
|
-
readOnlyHint: true,
|
|
12
|
-
destructiveHint: false,
|
|
13
|
-
idempotentHint: true,
|
|
14
|
-
openWorldHint: false,
|
|
15
|
-
},
|
|
16
|
-
}, async (params) => {
|
|
17
|
-
try {
|
|
18
|
-
const queryParams = {
|
|
19
|
-
pageSize: params.pageSize,
|
|
20
|
-
};
|
|
21
|
-
if (params.pageToken)
|
|
22
|
-
queryParams.pageToken = params.pageToken;
|
|
23
|
-
const data = IS_MOCK
|
|
24
|
-
? MOCK_FIXTURES.listSessions
|
|
25
|
-
: await julesApiRequest('/v1alpha/sessions', 'GET', undefined, queryParams);
|
|
26
|
-
const sessions = data?.sessions ?? [];
|
|
27
|
-
const nextPageToken = data?.nextPageToken;
|
|
28
|
-
if (!sessions.length) {
|
|
29
|
-
return {
|
|
30
|
-
content: [
|
|
31
|
-
{
|
|
32
|
-
type: 'text',
|
|
33
|
-
text: 'No sessions found.',
|
|
34
|
-
},
|
|
35
|
-
],
|
|
36
|
-
};
|
|
37
|
-
}
|
|
38
|
-
const output = { sessions, nextPageToken };
|
|
39
|
-
let textContent;
|
|
40
|
-
if (params.response_format !== ResponseFormat.JSON) {
|
|
41
|
-
const lines = ['# Jules Sessions', ''];
|
|
42
|
-
for (const session of sessions) {
|
|
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('');
|
|
50
|
-
}
|
|
51
|
-
if (nextPageToken)
|
|
52
|
-
lines.push(`**Next Page Token**: ${nextPageToken}`);
|
|
53
|
-
textContent = lines.join('\n');
|
|
54
|
-
}
|
|
55
|
-
else {
|
|
56
|
-
textContent = JSON.stringify(output, null, 2);
|
|
57
|
-
}
|
|
58
|
-
if (textContent.length > CHARACTER_LIMIT)
|
|
59
|
-
textContent =
|
|
60
|
-
textContent.slice(0, CHARACTER_LIMIT) +
|
|
61
|
-
'\n...[truncated]';
|
|
62
|
-
return {
|
|
63
|
-
content: [{ type: 'text', text: textContent }],
|
|
64
|
-
};
|
|
65
|
-
}
|
|
66
|
-
catch (error) {
|
|
67
|
-
return handleApiError(error);
|
|
68
|
-
}
|
|
69
|
-
});
|
|
70
|
-
}
|
|
71
|
-
//# sourceMappingURL=listSessions.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"listSessions.js","sourceRoot":"","sources":["../../src/tools/listSessions.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1,70 +0,0 @@
|
|
|
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
|
-
export function registerListSourcesTool(server) {
|
|
6
|
-
server.registerTool('jules_list_sources', {
|
|
7
|
-
title: 'List Jules Sources',
|
|
8
|
-
description: 'List available sources (repositories) connected to Jules.',
|
|
9
|
-
inputSchema: ListSourcesInputSchema,
|
|
10
|
-
annotations: {
|
|
11
|
-
readOnlyHint: true,
|
|
12
|
-
destructiveHint: false,
|
|
13
|
-
idempotentHint: true,
|
|
14
|
-
openWorldHint: false,
|
|
15
|
-
},
|
|
16
|
-
}, async (params) => {
|
|
17
|
-
try {
|
|
18
|
-
const queryParams = {
|
|
19
|
-
pageSize: params.pageSize,
|
|
20
|
-
};
|
|
21
|
-
if (params.pageToken)
|
|
22
|
-
queryParams.pageToken = params.pageToken;
|
|
23
|
-
const data = IS_MOCK
|
|
24
|
-
? MOCK_FIXTURES.listSources
|
|
25
|
-
: await julesApiRequest('/v1alpha/sources', 'GET', undefined, queryParams);
|
|
26
|
-
const sources = data?.sources ?? [];
|
|
27
|
-
const nextPageToken = data?.nextPageToken;
|
|
28
|
-
if (!sources.length) {
|
|
29
|
-
return {
|
|
30
|
-
content: [
|
|
31
|
-
{
|
|
32
|
-
type: 'text',
|
|
33
|
-
text: 'No sources found.',
|
|
34
|
-
},
|
|
35
|
-
],
|
|
36
|
-
};
|
|
37
|
-
}
|
|
38
|
-
const output = { sources, nextPageToken };
|
|
39
|
-
let textContent;
|
|
40
|
-
if (params.response_format !== ResponseFormat.JSON) {
|
|
41
|
-
const lines = ['# Jules Sources', ''];
|
|
42
|
-
for (const source of sources) {
|
|
43
|
-
lines.push(`## ${source.name}`);
|
|
44
|
-
if (source.id)
|
|
45
|
-
lines.push(`- **ID**: ${source.id}`);
|
|
46
|
-
if (source.githubRepo)
|
|
47
|
-
lines.push(`- **GitHub Repo**: ${source.githubRepo.owner}/${source.githubRepo.repo}`);
|
|
48
|
-
lines.push('');
|
|
49
|
-
}
|
|
50
|
-
if (nextPageToken)
|
|
51
|
-
lines.push(`**Next Page Token**: ${nextPageToken}`);
|
|
52
|
-
textContent = lines.join('\n');
|
|
53
|
-
}
|
|
54
|
-
else {
|
|
55
|
-
textContent = JSON.stringify(output, null, 2);
|
|
56
|
-
}
|
|
57
|
-
if (textContent.length > CHARACTER_LIMIT)
|
|
58
|
-
textContent =
|
|
59
|
-
textContent.slice(0, CHARACTER_LIMIT) +
|
|
60
|
-
'\n...[truncated]';
|
|
61
|
-
return {
|
|
62
|
-
content: [{ type: 'text', text: textContent }],
|
|
63
|
-
};
|
|
64
|
-
}
|
|
65
|
-
catch (error) {
|
|
66
|
-
return handleApiError(error);
|
|
67
|
-
}
|
|
68
|
-
});
|
|
69
|
-
}
|
|
70
|
-
//# sourceMappingURL=listSources.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"listSources.js","sourceRoot":"","sources":["../../src/tools/listSources.ts"],"names":[],"mappings":"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"}
|