@voxos-ai/clink-mcp-server 0.4.0
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 -0
- package/README.md +382 -0
- package/dist/client.d.ts +285 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +414 -0
- package/dist/client.js.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +95 -0
- package/dist/index.js.map +1 -0
- package/dist/tools/add_checkpoint.d.ts +68 -0
- package/dist/tools/add_checkpoint.d.ts.map +1 -0
- package/dist/tools/add_checkpoint.js +108 -0
- package/dist/tools/add_checkpoint.js.map +1 -0
- package/dist/tools/archive_project.d.ts +23 -0
- package/dist/tools/archive_project.d.ts.map +1 -0
- package/dist/tools/archive_project.js +44 -0
- package/dist/tools/archive_project.js.map +1 -0
- package/dist/tools/cast_vote.d.ts +38 -0
- package/dist/tools/cast_vote.d.ts.map +1 -0
- package/dist/tools/cast_vote.js +148 -0
- package/dist/tools/cast_vote.js.map +1 -0
- package/dist/tools/check_inbox.d.ts +39 -0
- package/dist/tools/check_inbox.d.ts.map +1 -0
- package/dist/tools/check_inbox.js +99 -0
- package/dist/tools/check_inbox.js.map +1 -0
- package/dist/tools/claim_clink.d.ts +28 -0
- package/dist/tools/claim_clink.d.ts.map +1 -0
- package/dist/tools/claim_clink.js +51 -0
- package/dist/tools/claim_clink.js.map +1 -0
- package/dist/tools/complete_checkpoint.d.ts +33 -0
- package/dist/tools/complete_checkpoint.d.ts.map +1 -0
- package/dist/tools/complete_checkpoint.js +143 -0
- package/dist/tools/complete_checkpoint.js.map +1 -0
- package/dist/tools/complete_clink.d.ts +28 -0
- package/dist/tools/complete_clink.d.ts.map +1 -0
- package/dist/tools/complete_clink.js +50 -0
- package/dist/tools/complete_clink.js.map +1 -0
- package/dist/tools/complete_project.d.ts +23 -0
- package/dist/tools/complete_project.d.ts.map +1 -0
- package/dist/tools/complete_project.js +44 -0
- package/dist/tools/complete_project.js.map +1 -0
- package/dist/tools/create_milestone.d.ts +91 -0
- package/dist/tools/create_milestone.d.ts.map +1 -0
- package/dist/tools/create_milestone.js +114 -0
- package/dist/tools/create_milestone.js.map +1 -0
- package/dist/tools/create_project.d.ts +43 -0
- package/dist/tools/create_project.d.ts.map +1 -0
- package/dist/tools/create_project.js +77 -0
- package/dist/tools/create_project.js.map +1 -0
- package/dist/tools/create_proposal.d.ts +58 -0
- package/dist/tools/create_proposal.d.ts.map +1 -0
- package/dist/tools/create_proposal.js +102 -0
- package/dist/tools/create_proposal.js.map +1 -0
- package/dist/tools/delete_checkpoint.d.ts +28 -0
- package/dist/tools/delete_checkpoint.d.ts.map +1 -0
- package/dist/tools/delete_checkpoint.js +66 -0
- package/dist/tools/delete_checkpoint.js.map +1 -0
- package/dist/tools/finalize_proposal.d.ts +28 -0
- package/dist/tools/finalize_proposal.d.ts.map +1 -0
- package/dist/tools/finalize_proposal.js +86 -0
- package/dist/tools/finalize_proposal.js.map +1 -0
- package/dist/tools/get_clinks.d.ts +43 -0
- package/dist/tools/get_clinks.d.ts.map +1 -0
- package/dist/tools/get_clinks.js +110 -0
- package/dist/tools/get_clinks.js.map +1 -0
- package/dist/tools/get_milestone.d.ts +23 -0
- package/dist/tools/get_milestone.d.ts.map +1 -0
- package/dist/tools/get_milestone.js +77 -0
- package/dist/tools/get_milestone.js.map +1 -0
- package/dist/tools/get_my_permissions.d.ts +14 -0
- package/dist/tools/get_my_permissions.d.ts.map +1 -0
- package/dist/tools/get_my_permissions.js +80 -0
- package/dist/tools/get_my_permissions.js.map +1 -0
- package/dist/tools/get_project.d.ts +23 -0
- package/dist/tools/get_project.d.ts.map +1 -0
- package/dist/tools/get_project.js +88 -0
- package/dist/tools/get_project.js.map +1 -0
- package/dist/tools/get_proposal.d.ts +23 -0
- package/dist/tools/get_proposal.d.ts.map +1 -0
- package/dist/tools/get_proposal.js +102 -0
- package/dist/tools/get_proposal.js.map +1 -0
- package/dist/tools/index.d.ts +17 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +89 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/list_groups.d.ts +14 -0
- package/dist/tools/list_groups.d.ts.map +1 -0
- package/dist/tools/list_groups.js +35 -0
- package/dist/tools/list_groups.js.map +1 -0
- package/dist/tools/list_members.d.ts +23 -0
- package/dist/tools/list_members.d.ts.map +1 -0
- package/dist/tools/list_members.js +52 -0
- package/dist/tools/list_members.js.map +1 -0
- package/dist/tools/list_milestones.d.ts +34 -0
- package/dist/tools/list_milestones.d.ts.map +1 -0
- package/dist/tools/list_milestones.js +78 -0
- package/dist/tools/list_milestones.js.map +1 -0
- package/dist/tools/list_pending_verifications.d.ts +28 -0
- package/dist/tools/list_pending_verifications.d.ts.map +1 -0
- package/dist/tools/list_pending_verifications.js +83 -0
- package/dist/tools/list_pending_verifications.js.map +1 -0
- package/dist/tools/list_projects.d.ts +34 -0
- package/dist/tools/list_projects.d.ts.map +1 -0
- package/dist/tools/list_projects.js +92 -0
- package/dist/tools/list_projects.js.map +1 -0
- package/dist/tools/list_proposals.d.ts +34 -0
- package/dist/tools/list_proposals.d.ts.map +1 -0
- package/dist/tools/list_proposals.js +86 -0
- package/dist/tools/list_proposals.js.map +1 -0
- package/dist/tools/release_clink.d.ts +23 -0
- package/dist/tools/release_clink.d.ts.map +1 -0
- package/dist/tools/release_clink.js +42 -0
- package/dist/tools/release_clink.js.map +1 -0
- package/dist/tools/reopen_milestone.d.ts +23 -0
- package/dist/tools/reopen_milestone.d.ts.map +1 -0
- package/dist/tools/reopen_milestone.js +54 -0
- package/dist/tools/reopen_milestone.js.map +1 -0
- package/dist/tools/reopen_project.d.ts +23 -0
- package/dist/tools/reopen_project.d.ts.map +1 -0
- package/dist/tools/reopen_project.js +44 -0
- package/dist/tools/reopen_project.js.map +1 -0
- package/dist/tools/send_clink.d.ts +33 -0
- package/dist/tools/send_clink.d.ts.map +1 -0
- package/dist/tools/send_clink.js +64 -0
- package/dist/tools/send_clink.js.map +1 -0
- package/dist/tools/submit_feedback.d.ts +38 -0
- package/dist/tools/submit_feedback.d.ts.map +1 -0
- package/dist/tools/submit_feedback.js +93 -0
- package/dist/tools/submit_feedback.js.map +1 -0
- package/dist/tools/update_checkpoint.d.ts +63 -0
- package/dist/tools/update_checkpoint.d.ts.map +1 -0
- package/dist/tools/update_checkpoint.js +105 -0
- package/dist/tools/update_checkpoint.js.map +1 -0
- package/dist/tools/update_milestone.d.ts +33 -0
- package/dist/tools/update_milestone.d.ts.map +1 -0
- package/dist/tools/update_milestone.js +62 -0
- package/dist/tools/update_milestone.js.map +1 -0
- package/dist/tools/update_project.d.ts +43 -0
- package/dist/tools/update_project.d.ts.map +1 -0
- package/dist/tools/update_project.js +74 -0
- package/dist/tools/update_project.js.map +1 -0
- package/dist/types.d.ts +236 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +24 -0
- package/dist/types.js.map +1 -0
- package/package.json +49 -0
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* get_milestone tool - Get milestone details with checkpoints
|
|
3
|
+
*/
|
|
4
|
+
export declare const definition: {
|
|
5
|
+
name: string;
|
|
6
|
+
description: string;
|
|
7
|
+
inputSchema: {
|
|
8
|
+
type: "object";
|
|
9
|
+
properties: {
|
|
10
|
+
milestone_id: {
|
|
11
|
+
type: string;
|
|
12
|
+
description: string;
|
|
13
|
+
};
|
|
14
|
+
};
|
|
15
|
+
required: string[];
|
|
16
|
+
};
|
|
17
|
+
};
|
|
18
|
+
interface GetMilestoneArgs {
|
|
19
|
+
milestone_id: string;
|
|
20
|
+
}
|
|
21
|
+
export declare function handler(args: GetMilestoneArgs): Promise<string>;
|
|
22
|
+
export {};
|
|
23
|
+
//# sourceMappingURL=get_milestone.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get_milestone.d.ts","sourceRoot":"","sources":["../../src/tools/get_milestone.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,eAAO,MAAM,UAAU;;;;;;;;;;;;;CAatB,CAAC;AAEF,UAAU,gBAAgB;IACxB,YAAY,EAAE,MAAM,CAAC;CACtB;AAuBD,wBAAsB,OAAO,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,CAiDrE"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* get_milestone tool - Get milestone details with checkpoints
|
|
3
|
+
*/
|
|
4
|
+
import { getMilestone } from '../client.js';
|
|
5
|
+
import { ClinkApiError } from '../types.js';
|
|
6
|
+
export const definition = {
|
|
7
|
+
name: 'get_milestone',
|
|
8
|
+
description: 'Get detailed information about a milestone including all checkpoints and their status.',
|
|
9
|
+
inputSchema: {
|
|
10
|
+
type: 'object',
|
|
11
|
+
properties: {
|
|
12
|
+
milestone_id: {
|
|
13
|
+
type: 'string',
|
|
14
|
+
description: 'The milestone ID',
|
|
15
|
+
},
|
|
16
|
+
},
|
|
17
|
+
required: ['milestone_id'],
|
|
18
|
+
},
|
|
19
|
+
};
|
|
20
|
+
function formatCheckpoint(cp) {
|
|
21
|
+
const statusEmoji = cp.status === 'completed' ? '✅' : '⬜';
|
|
22
|
+
let line = ` ${statusEmoji} ${cp.order}. ${cp.title}`;
|
|
23
|
+
if (cp.description) {
|
|
24
|
+
line += `\n ${cp.description}`;
|
|
25
|
+
}
|
|
26
|
+
if (cp.status === 'completed') {
|
|
27
|
+
line += `\n Completed by: ${cp.completed_by} at ${new Date(cp.completed_at).toLocaleString()}`;
|
|
28
|
+
}
|
|
29
|
+
if (cp.requires_proposal_id) {
|
|
30
|
+
const proposalStatus = cp.proposal_status || 'pending';
|
|
31
|
+
const proposalEmoji = proposalStatus === 'approved' ? '✅' : proposalStatus === 'rejected' ? '❌' : '🗳️';
|
|
32
|
+
line += `\n ${proposalEmoji} Requires consensus: ${proposalStatus} (proposal: ${cp.requires_proposal_id})`;
|
|
33
|
+
}
|
|
34
|
+
return line;
|
|
35
|
+
}
|
|
36
|
+
export async function handler(args) {
|
|
37
|
+
try {
|
|
38
|
+
const { milestone_id } = args;
|
|
39
|
+
if (!milestone_id) {
|
|
40
|
+
return 'Please provide a milestone_id.';
|
|
41
|
+
}
|
|
42
|
+
const milestone = await getMilestone(milestone_id);
|
|
43
|
+
const statusEmoji = milestone.status === 'active' ? '🔄' : '✅';
|
|
44
|
+
let output = `${statusEmoji} ${milestone.title}\n`;
|
|
45
|
+
output += `━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n`;
|
|
46
|
+
output += `ID: ${milestone.milestone_id}\n`;
|
|
47
|
+
output += `Status: ${milestone.status}\n`;
|
|
48
|
+
output += `Progress: ${milestone.progress}\n`;
|
|
49
|
+
output += `Created by: ${milestone.created_by}\n`;
|
|
50
|
+
output += `Created: ${new Date(milestone.created_at).toLocaleString()}\n`;
|
|
51
|
+
if (milestone.description) {
|
|
52
|
+
output += `\nDescription: ${milestone.description}\n`;
|
|
53
|
+
}
|
|
54
|
+
if (milestone.closed_at) {
|
|
55
|
+
output += `Closed: ${new Date(milestone.closed_at).toLocaleString()}\n`;
|
|
56
|
+
}
|
|
57
|
+
output += `\nCheckpoints:\n`;
|
|
58
|
+
output += (milestone.checkpoints || []).map(formatCheckpoint).join('\n\n');
|
|
59
|
+
// Add tips
|
|
60
|
+
const pendingCheckpoints = (milestone.checkpoints || []).filter(cp => cp.status === 'pending');
|
|
61
|
+
if (pendingCheckpoints.length > 0) {
|
|
62
|
+
output += '\n\nTip: Use complete_checkpoint to mark a checkpoint as done.';
|
|
63
|
+
const blockedCheckpoints = pendingCheckpoints.filter(cp => cp.requires_proposal_id && cp.proposal_status !== 'approved');
|
|
64
|
+
if (blockedCheckpoints.length > 0) {
|
|
65
|
+
output += '\nNote: Some checkpoints require consensus approval before they can be completed.';
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
return output;
|
|
69
|
+
}
|
|
70
|
+
catch (error) {
|
|
71
|
+
if (error instanceof ClinkApiError) {
|
|
72
|
+
return `Error: ${error.message}`;
|
|
73
|
+
}
|
|
74
|
+
throw error;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=get_milestone.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get_milestone.js","sourceRoot":"","sources":["../../src/tools/get_milestone.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* get_my_permissions tool - Get the permissions granted to your API key
|
|
3
|
+
*/
|
|
4
|
+
export declare const definition: {
|
|
5
|
+
name: string;
|
|
6
|
+
description: string;
|
|
7
|
+
inputSchema: {
|
|
8
|
+
type: "object";
|
|
9
|
+
properties: {};
|
|
10
|
+
required: never[];
|
|
11
|
+
};
|
|
12
|
+
};
|
|
13
|
+
export declare function handler(): Promise<string>;
|
|
14
|
+
//# sourceMappingURL=get_my_permissions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get_my_permissions.d.ts","sourceRoot":"","sources":["../../src/tools/get_my_permissions.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,eAAO,MAAM,UAAU;;;;;;;;CAatB,CAAC;AAEF,wBAAsB,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC,CA4D/C"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* get_my_permissions tool - Get the permissions granted to your API key
|
|
3
|
+
*/
|
|
4
|
+
import { getMyPermissions } from '../client.js';
|
|
5
|
+
import { ClinkApiError } from '../types.js';
|
|
6
|
+
export const definition = {
|
|
7
|
+
name: 'get_my_permissions',
|
|
8
|
+
description: `Get the permissions granted to your API key. Use this to check what operations you're allowed to perform.
|
|
9
|
+
|
|
10
|
+
Returns:
|
|
11
|
+
- A list of permissions showing which are granted ([x]) or denied ([ ])
|
|
12
|
+
- Your API key scope (user or group)
|
|
13
|
+
- Whether the key belongs to a user or agent profile`,
|
|
14
|
+
inputSchema: {
|
|
15
|
+
type: 'object',
|
|
16
|
+
properties: {},
|
|
17
|
+
required: [],
|
|
18
|
+
},
|
|
19
|
+
};
|
|
20
|
+
export async function handler() {
|
|
21
|
+
try {
|
|
22
|
+
const result = await getMyPermissions();
|
|
23
|
+
const lines = ['Your API key permissions:', ''];
|
|
24
|
+
// Group permissions by category
|
|
25
|
+
const categories = {
|
|
26
|
+
'Clinks': [],
|
|
27
|
+
'Milestones': [],
|
|
28
|
+
'Projects': [],
|
|
29
|
+
'Proposals': [],
|
|
30
|
+
'Members': [],
|
|
31
|
+
'Other': [],
|
|
32
|
+
};
|
|
33
|
+
for (const [perm, info] of Object.entries(result.permissions_info)) {
|
|
34
|
+
const granted = info.granted ? '[x]' : '[ ]';
|
|
35
|
+
const line = ` ${granted} ${perm} - ${info.description}`;
|
|
36
|
+
if (perm.startsWith('clinks:')) {
|
|
37
|
+
categories['Clinks'].push(line);
|
|
38
|
+
}
|
|
39
|
+
else if (perm.startsWith('milestones:')) {
|
|
40
|
+
categories['Milestones'].push(line);
|
|
41
|
+
}
|
|
42
|
+
else if (perm.startsWith('projects:')) {
|
|
43
|
+
categories['Projects'].push(line);
|
|
44
|
+
}
|
|
45
|
+
else if (perm.startsWith('proposals:')) {
|
|
46
|
+
categories['Proposals'].push(line);
|
|
47
|
+
}
|
|
48
|
+
else if (perm.startsWith('members:')) {
|
|
49
|
+
categories['Members'].push(line);
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
categories['Other'].push(line);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
// Output by category
|
|
56
|
+
for (const [category, perms] of Object.entries(categories)) {
|
|
57
|
+
if (perms.length > 0) {
|
|
58
|
+
lines.push(`${category}:`);
|
|
59
|
+
lines.push(...perms);
|
|
60
|
+
lines.push('');
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
// Add scope info
|
|
64
|
+
lines.push('Scope:');
|
|
65
|
+
lines.push(` Type: ${result.scope_type}`);
|
|
66
|
+
lines.push(` ID: ${result.scope_id}`);
|
|
67
|
+
lines.push(` Owner type: ${result.owner_type}`);
|
|
68
|
+
return lines.join('\n');
|
|
69
|
+
}
|
|
70
|
+
catch (error) {
|
|
71
|
+
if (error instanceof ClinkApiError) {
|
|
72
|
+
if (error.statusCode === 400) {
|
|
73
|
+
return `Error: ${error.message}\n\nThis endpoint requires API key authentication. Make sure CLINK_API_KEY is set.`;
|
|
74
|
+
}
|
|
75
|
+
return `Error: ${error.message}`;
|
|
76
|
+
}
|
|
77
|
+
throw error;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=get_my_permissions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get_my_permissions.js","sourceRoot":"","sources":["../../src/tools/get_my_permissions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* get_project tool - Get detailed information about a project
|
|
3
|
+
*/
|
|
4
|
+
export declare const definition: {
|
|
5
|
+
name: string;
|
|
6
|
+
description: string;
|
|
7
|
+
inputSchema: {
|
|
8
|
+
type: "object";
|
|
9
|
+
properties: {
|
|
10
|
+
project_id: {
|
|
11
|
+
type: string;
|
|
12
|
+
description: string;
|
|
13
|
+
};
|
|
14
|
+
};
|
|
15
|
+
required: string[];
|
|
16
|
+
};
|
|
17
|
+
};
|
|
18
|
+
interface GetProjectArgs {
|
|
19
|
+
project_id: string;
|
|
20
|
+
}
|
|
21
|
+
export declare function handler(args: GetProjectArgs): Promise<string>;
|
|
22
|
+
export {};
|
|
23
|
+
//# sourceMappingURL=get_project.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get_project.d.ts","sourceRoot":"","sources":["../../src/tools/get_project.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,eAAO,MAAM,UAAU;;;;;;;;;;;;;CAatB,CAAC;AAEF,UAAU,cAAc;IACtB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,wBAAsB,OAAO,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CA4EnE"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* get_project tool - Get detailed information about a project
|
|
3
|
+
*/
|
|
4
|
+
import { getProject, listProjectMilestones } from '../client.js';
|
|
5
|
+
import { ClinkApiError } from '../types.js';
|
|
6
|
+
export const definition = {
|
|
7
|
+
name: 'get_project',
|
|
8
|
+
description: 'Get detailed information about a project including its milestones.',
|
|
9
|
+
inputSchema: {
|
|
10
|
+
type: 'object',
|
|
11
|
+
properties: {
|
|
12
|
+
project_id: {
|
|
13
|
+
type: 'string',
|
|
14
|
+
description: 'The project ID',
|
|
15
|
+
},
|
|
16
|
+
},
|
|
17
|
+
required: ['project_id'],
|
|
18
|
+
},
|
|
19
|
+
};
|
|
20
|
+
export async function handler(args) {
|
|
21
|
+
try {
|
|
22
|
+
const { project_id } = args;
|
|
23
|
+
if (!project_id) {
|
|
24
|
+
return 'Please provide a project_id.';
|
|
25
|
+
}
|
|
26
|
+
const project = await getProject(project_id);
|
|
27
|
+
// Also fetch milestones for the project
|
|
28
|
+
const milestones = await listProjectMilestones(project_id, { limit: 10 });
|
|
29
|
+
const statusEmoji = project.status === 'active' ? '🟢' : project.status === 'completed' ? '✅' : '📦';
|
|
30
|
+
const defaultBadge = project.is_default ? ' [default]' : '';
|
|
31
|
+
let output = `${statusEmoji} ${project.title}${defaultBadge}\n\n`;
|
|
32
|
+
output += `Project ID: ${project.project_id}\n`;
|
|
33
|
+
output += `Slug: ${project.slug}\n`;
|
|
34
|
+
output += `Color: ${project.color}\n`;
|
|
35
|
+
output += `Status: ${project.status}\n`;
|
|
36
|
+
output += `Group ID: ${project.group_id}\n`;
|
|
37
|
+
if (project.description) {
|
|
38
|
+
output += `Description: ${project.description}\n`;
|
|
39
|
+
}
|
|
40
|
+
output += `\nTimestamps:\n`;
|
|
41
|
+
output += ` Created: ${new Date(project.created_at).toLocaleString()}`;
|
|
42
|
+
if (project.created_by) {
|
|
43
|
+
output += ` by ${project.created_by}`;
|
|
44
|
+
}
|
|
45
|
+
output += '\n';
|
|
46
|
+
if (project.updated_at) {
|
|
47
|
+
output += ` Updated: ${new Date(project.updated_at).toLocaleString()}\n`;
|
|
48
|
+
}
|
|
49
|
+
if (project.completed_at) {
|
|
50
|
+
output += ` Completed: ${new Date(project.completed_at).toLocaleString()}`;
|
|
51
|
+
if (project.completed_by) {
|
|
52
|
+
output += ` by ${project.completed_by}`;
|
|
53
|
+
}
|
|
54
|
+
output += '\n';
|
|
55
|
+
}
|
|
56
|
+
if (project.archived_at) {
|
|
57
|
+
output += ` Archived: ${new Date(project.archived_at).toLocaleString()}`;
|
|
58
|
+
if (project.archived_by) {
|
|
59
|
+
output += ` by ${project.archived_by}`;
|
|
60
|
+
}
|
|
61
|
+
output += '\n';
|
|
62
|
+
}
|
|
63
|
+
// Show milestones
|
|
64
|
+
output += `\nMilestones (${milestones.length}):\n`;
|
|
65
|
+
if (milestones.length === 0) {
|
|
66
|
+
output += ' No milestones in this project yet.\n';
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
for (const m of milestones) {
|
|
70
|
+
const mStatusEmoji = m.status === 'active' ? '🔄' : '✅';
|
|
71
|
+
output += ` ${mStatusEmoji} ${m.title} [${m.progress}] - ${m.milestone_id}\n`;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
output += '\nActions:\n';
|
|
75
|
+
output += ' • Use update_project to modify title/description/slug/color\n';
|
|
76
|
+
output += ' • Use complete_project to mark as completed\n';
|
|
77
|
+
output += ' • Use archive_project to archive\n';
|
|
78
|
+
output += ' • Use create_milestone with this project to add milestones\n';
|
|
79
|
+
return output;
|
|
80
|
+
}
|
|
81
|
+
catch (error) {
|
|
82
|
+
if (error instanceof ClinkApiError) {
|
|
83
|
+
return `Error: ${error.message}`;
|
|
84
|
+
}
|
|
85
|
+
throw error;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=get_project.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get_project.js","sourceRoot":"","sources":["../../src/tools/get_project.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* get_proposal tool - Get proposal details with votes
|
|
3
|
+
*/
|
|
4
|
+
export declare const definition: {
|
|
5
|
+
name: string;
|
|
6
|
+
description: string;
|
|
7
|
+
inputSchema: {
|
|
8
|
+
type: "object";
|
|
9
|
+
properties: {
|
|
10
|
+
proposal_id: {
|
|
11
|
+
type: string;
|
|
12
|
+
description: string;
|
|
13
|
+
};
|
|
14
|
+
};
|
|
15
|
+
required: string[];
|
|
16
|
+
};
|
|
17
|
+
};
|
|
18
|
+
interface GetProposalArgs {
|
|
19
|
+
proposal_id: string;
|
|
20
|
+
}
|
|
21
|
+
export declare function handler(args: GetProposalArgs): Promise<string>;
|
|
22
|
+
export {};
|
|
23
|
+
//# sourceMappingURL=get_proposal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get_proposal.d.ts","sourceRoot":"","sources":["../../src/tools/get_proposal.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,eAAO,MAAM,UAAU;;;;;;;;;;;;;CAatB,CAAC;AAEF,UAAU,eAAe;IACvB,WAAW,EAAE,MAAM,CAAC;CACrB;AAWD,wBAAsB,OAAO,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAqFpE"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* get_proposal tool - Get proposal details with votes
|
|
3
|
+
*/
|
|
4
|
+
import { getProposal } from '../client.js';
|
|
5
|
+
import { ClinkApiError } from '../types.js';
|
|
6
|
+
export const definition = {
|
|
7
|
+
name: 'get_proposal',
|
|
8
|
+
description: 'Get detailed information about a proposal including all votes and their comments.',
|
|
9
|
+
inputSchema: {
|
|
10
|
+
type: 'object',
|
|
11
|
+
properties: {
|
|
12
|
+
proposal_id: {
|
|
13
|
+
type: 'string',
|
|
14
|
+
description: 'The proposal ID',
|
|
15
|
+
},
|
|
16
|
+
},
|
|
17
|
+
required: ['proposal_id'],
|
|
18
|
+
},
|
|
19
|
+
};
|
|
20
|
+
function formatVote(v) {
|
|
21
|
+
let line = ` • ${v.voter_id}: ${v.vote}`;
|
|
22
|
+
if (v.comment) {
|
|
23
|
+
line += ` - "${v.comment}"`;
|
|
24
|
+
}
|
|
25
|
+
line += ` (${new Date(v.voted_at).toLocaleString()})`;
|
|
26
|
+
return line;
|
|
27
|
+
}
|
|
28
|
+
export async function handler(args) {
|
|
29
|
+
try {
|
|
30
|
+
const { proposal_id } = args;
|
|
31
|
+
if (!proposal_id) {
|
|
32
|
+
return 'Please provide a proposal_id.';
|
|
33
|
+
}
|
|
34
|
+
const proposal = await getProposal(proposal_id);
|
|
35
|
+
const statusEmoji = proposal.status === 'open' ? '🗳️' : (proposal.threshold_met ? '✅' : '❌');
|
|
36
|
+
let output = `${statusEmoji} ${proposal.title}\n`;
|
|
37
|
+
output += `━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n`;
|
|
38
|
+
output += `ID: ${proposal.proposal_id}\n`;
|
|
39
|
+
output += `Status: ${proposal.status}\n`;
|
|
40
|
+
output += `Voting type: ${proposal.voting_type}\n`;
|
|
41
|
+
output += `Threshold: ${proposal.threshold_type}\n`;
|
|
42
|
+
output += `Proposer: ${proposal.proposer_id}\n`;
|
|
43
|
+
output += `Created: ${new Date(proposal.created_at).toLocaleString()}\n`;
|
|
44
|
+
if (proposal.description) {
|
|
45
|
+
output += `\nDescription: ${proposal.description}\n`;
|
|
46
|
+
}
|
|
47
|
+
if (proposal.deadline) {
|
|
48
|
+
const deadline = new Date(proposal.deadline);
|
|
49
|
+
const isPast = deadline < new Date();
|
|
50
|
+
output += `Deadline: ${deadline.toLocaleString()}${isPast ? ' (PASSED)' : ''}\n`;
|
|
51
|
+
}
|
|
52
|
+
if (proposal.options && proposal.options.length > 0 && proposal.voting_type !== 'yes_no') {
|
|
53
|
+
output += `\nOptions:\n`;
|
|
54
|
+
for (const opt of proposal.options) {
|
|
55
|
+
output += ` • ${opt}\n`;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
// Show tally
|
|
59
|
+
if (proposal.tally) {
|
|
60
|
+
output += `\nVote Tally:\n`;
|
|
61
|
+
for (const [option, count] of Object.entries(proposal.tally)) {
|
|
62
|
+
const pct = proposal.vote_count ? Math.round(count / proposal.vote_count * 100) : 0;
|
|
63
|
+
output += ` ${option}: ${count} (${pct}%)\n`;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
// Show result if finalized
|
|
67
|
+
if (proposal.status === 'finalized') {
|
|
68
|
+
output += `\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n`;
|
|
69
|
+
output += `Result: ${proposal.result}\n`;
|
|
70
|
+
output += `Threshold met: ${proposal.threshold_met ? 'Yes' : 'No'}\n`;
|
|
71
|
+
output += `Finalized: ${new Date(proposal.finalized_at).toLocaleString()}\n`;
|
|
72
|
+
}
|
|
73
|
+
// Show votes
|
|
74
|
+
const votes = proposal.votes || [];
|
|
75
|
+
output += `\nVotes (${votes.length}):\n`;
|
|
76
|
+
if (votes.length === 0) {
|
|
77
|
+
output += ' No votes yet.\n';
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
output += votes.map(formatVote).join('\n');
|
|
81
|
+
}
|
|
82
|
+
// Tips
|
|
83
|
+
if (proposal.status === 'open') {
|
|
84
|
+
output += '\n\nTip: Use cast_vote to vote, or finalize_proposal to close voting.';
|
|
85
|
+
}
|
|
86
|
+
// Show linked milestone info
|
|
87
|
+
if (proposal.linked_milestone_id) {
|
|
88
|
+
output += `\n\nLinked to milestone: ${proposal.linked_milestone_id}`;
|
|
89
|
+
if (proposal.linked_checkpoint_order) {
|
|
90
|
+
output += ` (checkpoint ${proposal.linked_checkpoint_order})`;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
return output;
|
|
94
|
+
}
|
|
95
|
+
catch (error) {
|
|
96
|
+
if (error instanceof ClinkApiError) {
|
|
97
|
+
return `Error: ${error.message}`;
|
|
98
|
+
}
|
|
99
|
+
throw error;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
//# sourceMappingURL=get_proposal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get_proposal.js","sourceRoot":"","sources":["../../src/tools/get_proposal.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tool registry - exports all MCP tools
|
|
3
|
+
*/
|
|
4
|
+
export interface Tool {
|
|
5
|
+
definition: {
|
|
6
|
+
name: string;
|
|
7
|
+
description: string;
|
|
8
|
+
inputSchema: {
|
|
9
|
+
type: 'object';
|
|
10
|
+
properties: Record<string, unknown>;
|
|
11
|
+
required: string[];
|
|
12
|
+
};
|
|
13
|
+
};
|
|
14
|
+
handler: (args: Record<string, unknown>) => Promise<string>;
|
|
15
|
+
}
|
|
16
|
+
export declare const tools: Tool[];
|
|
17
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AA+CH,MAAM,WAAW,IAAI;IACnB,UAAU,EAAE;QACV,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ,CAAC;YACf,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YACpC,QAAQ,EAAE,MAAM,EAAE,CAAC;SACpB,CAAC;KACH,CAAC;IACF,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CAC7D;AAOD,eAAO,MAAM,KAAK,EAAE,IAAI,EAkDvB,CAAC"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tool registry - exports all MCP tools
|
|
3
|
+
*/
|
|
4
|
+
import * as listGroups from './list_groups.js';
|
|
5
|
+
import * as listMembers from './list_members.js';
|
|
6
|
+
import * as getClinks from './get_clinks.js';
|
|
7
|
+
import * as sendClink from './send_clink.js';
|
|
8
|
+
import * as checkInbox from './check_inbox.js';
|
|
9
|
+
import * as claimClink from './claim_clink.js';
|
|
10
|
+
import * as completeClink from './complete_clink.js';
|
|
11
|
+
import * as releaseClink from './release_clink.js';
|
|
12
|
+
// Milestones
|
|
13
|
+
import * as createMilestone from './create_milestone.js';
|
|
14
|
+
import * as listMilestones from './list_milestones.js';
|
|
15
|
+
import * as getMilestone from './get_milestone.js';
|
|
16
|
+
import * as completeCheckpoint from './complete_checkpoint.js';
|
|
17
|
+
import * as updateMilestone from './update_milestone.js';
|
|
18
|
+
import * as updateCheckpoint from './update_checkpoint.js';
|
|
19
|
+
import * as deleteCheckpoint from './delete_checkpoint.js';
|
|
20
|
+
import * as addCheckpoint from './add_checkpoint.js';
|
|
21
|
+
import * as reopenMilestone from './reopen_milestone.js';
|
|
22
|
+
// Projects
|
|
23
|
+
import * as createProject from './create_project.js';
|
|
24
|
+
import * as listProjects from './list_projects.js';
|
|
25
|
+
import * as getProject from './get_project.js';
|
|
26
|
+
import * as updateProject from './update_project.js';
|
|
27
|
+
import * as completeProject from './complete_project.js';
|
|
28
|
+
import * as archiveProject from './archive_project.js';
|
|
29
|
+
import * as reopenProject from './reopen_project.js';
|
|
30
|
+
// Consensus
|
|
31
|
+
import * as createProposal from './create_proposal.js';
|
|
32
|
+
import * as listProposals from './list_proposals.js';
|
|
33
|
+
import * as getProposal from './get_proposal.js';
|
|
34
|
+
import * as castVote from './cast_vote.js';
|
|
35
|
+
import * as finalizeProposal from './finalize_proposal.js';
|
|
36
|
+
// Feedback
|
|
37
|
+
import * as submitFeedback from './submit_feedback.js';
|
|
38
|
+
// Permissions
|
|
39
|
+
import * as getMyPermissions from './get_my_permissions.js';
|
|
40
|
+
// HIL / Verifications
|
|
41
|
+
import * as listPendingVerifications from './list_pending_verifications.js';
|
|
42
|
+
// Type-safe wrapper to convert specific handlers to generic handlers
|
|
43
|
+
function wrapHandler(handler) {
|
|
44
|
+
return (args) => handler(args);
|
|
45
|
+
}
|
|
46
|
+
export const tools = [
|
|
47
|
+
// Group management
|
|
48
|
+
{ definition: listGroups.definition, handler: wrapHandler(listGroups.handler) },
|
|
49
|
+
{ definition: listMembers.definition, handler: wrapHandler(listMembers.handler) },
|
|
50
|
+
// Clinks
|
|
51
|
+
{ definition: getClinks.definition, handler: wrapHandler(getClinks.handler) },
|
|
52
|
+
{ definition: sendClink.definition, handler: wrapHandler(sendClink.handler) },
|
|
53
|
+
{ definition: checkInbox.definition, handler: wrapHandler(checkInbox.handler) },
|
|
54
|
+
// Claim/Ack workflow
|
|
55
|
+
{ definition: claimClink.definition, handler: wrapHandler(claimClink.handler) },
|
|
56
|
+
{ definition: completeClink.definition, handler: wrapHandler(completeClink.handler) },
|
|
57
|
+
{ definition: releaseClink.definition, handler: wrapHandler(releaseClink.handler) },
|
|
58
|
+
// Milestones
|
|
59
|
+
{ definition: createMilestone.definition, handler: wrapHandler(createMilestone.handler) },
|
|
60
|
+
{ definition: listMilestones.definition, handler: wrapHandler(listMilestones.handler) },
|
|
61
|
+
{ definition: getMilestone.definition, handler: wrapHandler(getMilestone.handler) },
|
|
62
|
+
{ definition: completeCheckpoint.definition, handler: wrapHandler(completeCheckpoint.handler) },
|
|
63
|
+
{ definition: updateMilestone.definition, handler: wrapHandler(updateMilestone.handler) },
|
|
64
|
+
{ definition: updateCheckpoint.definition, handler: wrapHandler(updateCheckpoint.handler) },
|
|
65
|
+
{ definition: deleteCheckpoint.definition, handler: wrapHandler(deleteCheckpoint.handler) },
|
|
66
|
+
{ definition: addCheckpoint.definition, handler: wrapHandler(addCheckpoint.handler) },
|
|
67
|
+
{ definition: reopenMilestone.definition, handler: wrapHandler(reopenMilestone.handler) },
|
|
68
|
+
// Projects
|
|
69
|
+
{ definition: createProject.definition, handler: wrapHandler(createProject.handler) },
|
|
70
|
+
{ definition: listProjects.definition, handler: wrapHandler(listProjects.handler) },
|
|
71
|
+
{ definition: getProject.definition, handler: wrapHandler(getProject.handler) },
|
|
72
|
+
{ definition: updateProject.definition, handler: wrapHandler(updateProject.handler) },
|
|
73
|
+
{ definition: completeProject.definition, handler: wrapHandler(completeProject.handler) },
|
|
74
|
+
{ definition: archiveProject.definition, handler: wrapHandler(archiveProject.handler) },
|
|
75
|
+
{ definition: reopenProject.definition, handler: wrapHandler(reopenProject.handler) },
|
|
76
|
+
// Consensus
|
|
77
|
+
{ definition: createProposal.definition, handler: wrapHandler(createProposal.handler) },
|
|
78
|
+
{ definition: listProposals.definition, handler: wrapHandler(listProposals.handler) },
|
|
79
|
+
{ definition: getProposal.definition, handler: wrapHandler(getProposal.handler) },
|
|
80
|
+
{ definition: castVote.definition, handler: wrapHandler(castVote.handler) },
|
|
81
|
+
{ definition: finalizeProposal.definition, handler: wrapHandler(finalizeProposal.handler) },
|
|
82
|
+
// Feedback
|
|
83
|
+
{ definition: submitFeedback.definition, handler: wrapHandler(submitFeedback.handler) },
|
|
84
|
+
// Permissions
|
|
85
|
+
{ definition: getMyPermissions.definition, handler: wrapHandler(getMyPermissions.handler) },
|
|
86
|
+
// HIL / Verifications
|
|
87
|
+
{ definition: listPendingVerifications.definition, handler: wrapHandler(listPendingVerifications.handler) },
|
|
88
|
+
];
|
|
89
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* list_groups tool - List all groups the user belongs to
|
|
3
|
+
*/
|
|
4
|
+
export declare const definition: {
|
|
5
|
+
name: string;
|
|
6
|
+
description: string;
|
|
7
|
+
inputSchema: {
|
|
8
|
+
type: "object";
|
|
9
|
+
properties: {};
|
|
10
|
+
required: never[];
|
|
11
|
+
};
|
|
12
|
+
};
|
|
13
|
+
export declare function handler(): Promise<string>;
|
|
14
|
+
//# sourceMappingURL=list_groups.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list_groups.d.ts","sourceRoot":"","sources":["../../src/tools/list_groups.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,eAAO,MAAM,UAAU;;;;;;;;CAQtB,CAAC;AAEF,wBAAsB,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC,CAqB/C"}
|