@pollychrome/joan-mcp 1.0.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/README.md +385 -0
- package/bin/joan-mcp +16 -0
- package/dist/auth.d.ts +49 -0
- package/dist/auth.d.ts.map +1 -0
- package/dist/auth.js +264 -0
- package/dist/auth.js.map +1 -0
- package/dist/cli.d.ts +7 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +326 -0
- package/dist/cli.js.map +1 -0
- package/dist/client/api-client.d.ts +86 -0
- package/dist/client/api-client.d.ts.map +1 -0
- package/dist/client/api-client.js +182 -0
- package/dist/client/api-client.js.map +1 -0
- package/dist/client/types.d.ts +270 -0
- package/dist/client/types.d.ts.map +1 -0
- package/dist/client/types.js +5 -0
- package/dist/client/types.js.map +1 -0
- package/dist/config.d.ts +33 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +71 -0
- package/dist/config.js.map +1 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +118 -0
- package/dist/index.js.map +1 -0
- package/dist/resources/goals.d.ts +7 -0
- package/dist/resources/goals.d.ts.map +1 -0
- package/dist/resources/goals.js +49 -0
- package/dist/resources/goals.js.map +1 -0
- package/dist/resources/index.d.ts +16 -0
- package/dist/resources/index.d.ts.map +1 -0
- package/dist/resources/index.js +20 -0
- package/dist/resources/index.js.map +1 -0
- package/dist/resources/milestones.d.ts +7 -0
- package/dist/resources/milestones.d.ts.map +1 -0
- package/dist/resources/milestones.js +40 -0
- package/dist/resources/milestones.js.map +1 -0
- package/dist/resources/notes.d.ts +7 -0
- package/dist/resources/notes.d.ts.map +1 -0
- package/dist/resources/notes.js +33 -0
- package/dist/resources/notes.js.map +1 -0
- package/dist/resources/projects.d.ts +7 -0
- package/dist/resources/projects.d.ts.map +1 -0
- package/dist/resources/projects.js +97 -0
- package/dist/resources/projects.js.map +1 -0
- package/dist/resources/tasks.d.ts +7 -0
- package/dist/resources/tasks.d.ts.map +1 -0
- package/dist/resources/tasks.js +36 -0
- package/dist/resources/tasks.js.map +1 -0
- package/dist/tools/goals.d.ts +7 -0
- package/dist/tools/goals.d.ts.map +1 -0
- package/dist/tools/goals.js +114 -0
- package/dist/tools/goals.js.map +1 -0
- package/dist/tools/index.d.ts +16 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +20 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/milestones.d.ts +7 -0
- package/dist/tools/milestones.d.ts.map +1 -0
- package/dist/tools/milestones.js +119 -0
- package/dist/tools/milestones.js.map +1 -0
- package/dist/tools/notes.d.ts +7 -0
- package/dist/tools/notes.d.ts.map +1 -0
- package/dist/tools/notes.js +82 -0
- package/dist/tools/notes.js.map +1 -0
- package/dist/tools/projects.d.ts +7 -0
- package/dist/tools/projects.d.ts.map +1 -0
- package/dist/tools/projects.js +63 -0
- package/dist/tools/projects.js.map +1 -0
- package/dist/tools/tasks.d.ts +7 -0
- package/dist/tools/tasks.d.ts.map +1 -0
- package/dist/tools/tasks.js +125 -0
- package/dist/tools/tasks.js.map +1 -0
- package/dist/utils/converters.d.ts +78 -0
- package/dist/utils/converters.d.ts.map +1 -0
- package/dist/utils/converters.js +79 -0
- package/dist/utils/converters.js.map +1 -0
- package/dist/utils/errors.d.ts +27 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +104 -0
- package/dist/utils/errors.js.map +1 -0
- package/package.json +53 -0
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* HTTP client for Joan API
|
|
3
|
+
*/
|
|
4
|
+
import type { Project, ProjectWithDetails, ProjectColumn, ProjectAnalytics, Task, TaskWithSubtasks, Goal, GoalWithTasks, GoalStats, Milestone, MilestoneWithTasks, MilestoneResource, Note, CreateProjectInput, UpdateProjectInput, CreateTaskInput, UpdateTaskInput, CreateMilestoneInput, UpdateMilestoneInput, CreateGoalInput, UpdateGoalInput, CreateNoteInput, UpdateNoteInput } from './types.js';
|
|
5
|
+
export interface JoanApiClientConfig {
|
|
6
|
+
baseUrl: string;
|
|
7
|
+
authToken: string;
|
|
8
|
+
}
|
|
9
|
+
export declare class JoanApiClient {
|
|
10
|
+
private baseUrl;
|
|
11
|
+
private authToken;
|
|
12
|
+
constructor(config: JoanApiClientConfig);
|
|
13
|
+
private request;
|
|
14
|
+
listProjects(params?: {
|
|
15
|
+
status?: string;
|
|
16
|
+
include_members?: boolean;
|
|
17
|
+
limit?: number;
|
|
18
|
+
offset?: number;
|
|
19
|
+
}): Promise<Project[]>;
|
|
20
|
+
getProject(id: string): Promise<ProjectWithDetails>;
|
|
21
|
+
createProject(data: CreateProjectInput): Promise<Project>;
|
|
22
|
+
updateProject(id: string, data: UpdateProjectInput): Promise<Project>;
|
|
23
|
+
deleteProject(id: string): Promise<void>;
|
|
24
|
+
getProjectTasks(projectId: string, params?: {
|
|
25
|
+
status?: string;
|
|
26
|
+
limit?: number;
|
|
27
|
+
offset?: number;
|
|
28
|
+
}): Promise<Task[]>;
|
|
29
|
+
getProjectColumns(projectId: string): Promise<ProjectColumn[]>;
|
|
30
|
+
getProjectAnalytics(projectId: string): Promise<ProjectAnalytics>;
|
|
31
|
+
listTasks(params?: {
|
|
32
|
+
project_id?: string;
|
|
33
|
+
status?: string;
|
|
34
|
+
folder_id?: string;
|
|
35
|
+
limit?: number;
|
|
36
|
+
offset?: number;
|
|
37
|
+
}): Promise<Task[]>;
|
|
38
|
+
getTask(id: string): Promise<Task>;
|
|
39
|
+
getTaskWithSubtasks(id: string): Promise<TaskWithSubtasks>;
|
|
40
|
+
createTask(data: CreateTaskInput): Promise<Task>;
|
|
41
|
+
updateTask(id: string, data: UpdateTaskInput): Promise<Task>;
|
|
42
|
+
deleteTask(id: string): Promise<void>;
|
|
43
|
+
completeTask(id: string): Promise<void>;
|
|
44
|
+
listMilestones(projectId: string, params?: {
|
|
45
|
+
status?: string;
|
|
46
|
+
include_tasks?: boolean;
|
|
47
|
+
}): Promise<Milestone[]>;
|
|
48
|
+
getMilestone(projectId: string, milestoneId: string): Promise<MilestoneWithTasks>;
|
|
49
|
+
createMilestone(projectId: string, data: CreateMilestoneInput): Promise<Milestone>;
|
|
50
|
+
updateMilestone(projectId: string, milestoneId: string, data: UpdateMilestoneInput): Promise<Milestone>;
|
|
51
|
+
deleteMilestone(projectId: string, milestoneId: string): Promise<void>;
|
|
52
|
+
linkTasksToMilestone(projectId: string, milestoneId: string, taskIds: string[]): Promise<void>;
|
|
53
|
+
unlinkTaskFromMilestone(projectId: string, milestoneId: string, taskId: string): Promise<void>;
|
|
54
|
+
getMilestoneResources(projectId: string, milestoneId: string): Promise<MilestoneResource[]>;
|
|
55
|
+
listGoals(params?: {
|
|
56
|
+
type?: string;
|
|
57
|
+
status?: string;
|
|
58
|
+
include_tasks?: boolean;
|
|
59
|
+
limit?: number;
|
|
60
|
+
offset?: number;
|
|
61
|
+
}): Promise<Goal[]>;
|
|
62
|
+
getGoal(id: string): Promise<GoalWithTasks>;
|
|
63
|
+
createGoal(data: CreateGoalInput): Promise<Goal>;
|
|
64
|
+
updateGoal(id: string, data: UpdateGoalInput): Promise<Goal>;
|
|
65
|
+
deleteGoal(id: string): Promise<void>;
|
|
66
|
+
linkTaskToGoal(goalId: string, taskId: string): Promise<void>;
|
|
67
|
+
unlinkTaskFromGoal(goalId: string, taskId: string): Promise<void>;
|
|
68
|
+
getGoalStats(id: string): Promise<GoalStats>;
|
|
69
|
+
listNotes(params?: {
|
|
70
|
+
folder_id?: string;
|
|
71
|
+
is_pinned?: boolean;
|
|
72
|
+
is_archived?: boolean;
|
|
73
|
+
limit?: number;
|
|
74
|
+
offset?: number;
|
|
75
|
+
}): Promise<Note[]>;
|
|
76
|
+
getNote(id: string): Promise<Note>;
|
|
77
|
+
createNote(data: CreateNoteInput): Promise<Note>;
|
|
78
|
+
updateNote(id: string, data: UpdateNoteInput): Promise<Note>;
|
|
79
|
+
deleteNote(id: string): Promise<void>;
|
|
80
|
+
getCurrentUser(): Promise<{
|
|
81
|
+
id: string;
|
|
82
|
+
email: string;
|
|
83
|
+
name?: string;
|
|
84
|
+
}>;
|
|
85
|
+
}
|
|
86
|
+
//# sourceMappingURL=api-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../../src/client/api-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* HTTP client for Joan API
|
|
3
|
+
*/
|
|
4
|
+
import { JoanApiError } from '../utils/errors.js';
|
|
5
|
+
export class JoanApiClient {
|
|
6
|
+
baseUrl;
|
|
7
|
+
authToken;
|
|
8
|
+
constructor(config) {
|
|
9
|
+
this.baseUrl = config.baseUrl.replace(/\/$/, ''); // Remove trailing slash
|
|
10
|
+
this.authToken = config.authToken;
|
|
11
|
+
}
|
|
12
|
+
async request(method, path, body, queryParams) {
|
|
13
|
+
let url = `${this.baseUrl}${path}`;
|
|
14
|
+
// Add query parameters
|
|
15
|
+
if (queryParams) {
|
|
16
|
+
const params = new URLSearchParams();
|
|
17
|
+
for (const [key, value] of Object.entries(queryParams)) {
|
|
18
|
+
if (value !== undefined) {
|
|
19
|
+
params.append(key, String(value));
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
const queryString = params.toString();
|
|
23
|
+
if (queryString) {
|
|
24
|
+
url += `?${queryString}`;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
const headers = {
|
|
28
|
+
'Authorization': `Bearer ${this.authToken}`,
|
|
29
|
+
'Content-Type': 'application/json',
|
|
30
|
+
};
|
|
31
|
+
const response = await fetch(url, {
|
|
32
|
+
method,
|
|
33
|
+
headers,
|
|
34
|
+
body: body ? JSON.stringify(body) : undefined,
|
|
35
|
+
});
|
|
36
|
+
if (!response.ok) {
|
|
37
|
+
let errorMessage = 'API request failed';
|
|
38
|
+
let errorDetails;
|
|
39
|
+
try {
|
|
40
|
+
const errorBody = await response.json();
|
|
41
|
+
errorMessage = errorBody.error || errorMessage;
|
|
42
|
+
errorDetails = errorBody.details;
|
|
43
|
+
}
|
|
44
|
+
catch {
|
|
45
|
+
// Ignore JSON parse errors
|
|
46
|
+
}
|
|
47
|
+
throw new JoanApiError(response.status, errorMessage, errorDetails);
|
|
48
|
+
}
|
|
49
|
+
// Handle 204 No Content
|
|
50
|
+
if (response.status === 204) {
|
|
51
|
+
return undefined;
|
|
52
|
+
}
|
|
53
|
+
return response.json();
|
|
54
|
+
}
|
|
55
|
+
// ============ Projects ============
|
|
56
|
+
async listProjects(params) {
|
|
57
|
+
const result = await this.request('GET', '/projects', undefined, params);
|
|
58
|
+
return Array.isArray(result) ? result : (result.items || result.data || []);
|
|
59
|
+
}
|
|
60
|
+
async getProject(id) {
|
|
61
|
+
return this.request('GET', `/projects/${id}`);
|
|
62
|
+
}
|
|
63
|
+
async createProject(data) {
|
|
64
|
+
return this.request('POST', '/projects', data);
|
|
65
|
+
}
|
|
66
|
+
async updateProject(id, data) {
|
|
67
|
+
return this.request('PATCH', `/projects/${id}`, data);
|
|
68
|
+
}
|
|
69
|
+
async deleteProject(id) {
|
|
70
|
+
await this.request('DELETE', `/projects/${id}`);
|
|
71
|
+
}
|
|
72
|
+
async getProjectTasks(projectId, params) {
|
|
73
|
+
const result = await this.request('GET', `/projects/${projectId}/tasks`, undefined, params);
|
|
74
|
+
return Array.isArray(result) ? result : (result.items || result.data || []);
|
|
75
|
+
}
|
|
76
|
+
async getProjectColumns(projectId) {
|
|
77
|
+
// Get kanban board which contains columns
|
|
78
|
+
const result = await this.request('GET', `/tasks/kanban/${projectId}`);
|
|
79
|
+
return Array.isArray(result) ? result : (result.columns || []);
|
|
80
|
+
}
|
|
81
|
+
async getProjectAnalytics(projectId) {
|
|
82
|
+
return this.request('GET', `/projects/${projectId}/analytics`);
|
|
83
|
+
}
|
|
84
|
+
// ============ Tasks ============
|
|
85
|
+
async listTasks(params) {
|
|
86
|
+
const result = await this.request('GET', '/tasks', undefined, params);
|
|
87
|
+
return Array.isArray(result) ? result : (result.items || result.data || []);
|
|
88
|
+
}
|
|
89
|
+
async getTask(id) {
|
|
90
|
+
return this.request('GET', `/tasks/${id}`);
|
|
91
|
+
}
|
|
92
|
+
async getTaskWithSubtasks(id) {
|
|
93
|
+
return this.request('GET', `/tasks/${id}/with-subtasks`);
|
|
94
|
+
}
|
|
95
|
+
async createTask(data) {
|
|
96
|
+
return this.request('POST', '/tasks', data);
|
|
97
|
+
}
|
|
98
|
+
async updateTask(id, data) {
|
|
99
|
+
return this.request('PATCH', `/tasks/${id}`, data);
|
|
100
|
+
}
|
|
101
|
+
async deleteTask(id) {
|
|
102
|
+
await this.request('DELETE', `/tasks/${id}`);
|
|
103
|
+
}
|
|
104
|
+
async completeTask(id) {
|
|
105
|
+
await this.request('POST', `/tasks/${id}/complete`);
|
|
106
|
+
}
|
|
107
|
+
// ============ Milestones ============
|
|
108
|
+
async listMilestones(projectId, params) {
|
|
109
|
+
const result = await this.request('GET', `/projects/${projectId}/milestones`, undefined, params);
|
|
110
|
+
return Array.isArray(result) ? result : (result.items || result.data || []);
|
|
111
|
+
}
|
|
112
|
+
async getMilestone(projectId, milestoneId) {
|
|
113
|
+
return this.request('GET', `/projects/${projectId}/milestones/${milestoneId}`);
|
|
114
|
+
}
|
|
115
|
+
async createMilestone(projectId, data) {
|
|
116
|
+
return this.request('POST', `/projects/${projectId}/milestones`, data);
|
|
117
|
+
}
|
|
118
|
+
async updateMilestone(projectId, milestoneId, data) {
|
|
119
|
+
return this.request('PATCH', `/projects/${projectId}/milestones/${milestoneId}`, data);
|
|
120
|
+
}
|
|
121
|
+
async deleteMilestone(projectId, milestoneId) {
|
|
122
|
+
await this.request('DELETE', `/projects/${projectId}/milestones/${milestoneId}`);
|
|
123
|
+
}
|
|
124
|
+
async linkTasksToMilestone(projectId, milestoneId, taskIds) {
|
|
125
|
+
await this.request('POST', `/projects/${projectId}/milestones/${milestoneId}/tasks`, { task_ids: taskIds });
|
|
126
|
+
}
|
|
127
|
+
async unlinkTaskFromMilestone(projectId, milestoneId, taskId) {
|
|
128
|
+
await this.request('DELETE', `/projects/${projectId}/milestones/${milestoneId}/tasks/${taskId}`);
|
|
129
|
+
}
|
|
130
|
+
async getMilestoneResources(projectId, milestoneId) {
|
|
131
|
+
const result = await this.request('GET', `/projects/${projectId}/milestones/${milestoneId}/resources`);
|
|
132
|
+
return Array.isArray(result) ? result : (result.items || result.data || []);
|
|
133
|
+
}
|
|
134
|
+
// ============ Goals ============
|
|
135
|
+
async listGoals(params) {
|
|
136
|
+
const result = await this.request('GET', '/goals', undefined, params);
|
|
137
|
+
return Array.isArray(result) ? result : (result.items || result.data || []);
|
|
138
|
+
}
|
|
139
|
+
async getGoal(id) {
|
|
140
|
+
return this.request('GET', `/goals/${id}`);
|
|
141
|
+
}
|
|
142
|
+
async createGoal(data) {
|
|
143
|
+
return this.request('POST', '/goals', data);
|
|
144
|
+
}
|
|
145
|
+
async updateGoal(id, data) {
|
|
146
|
+
return this.request('PATCH', `/goals/${id}`, data);
|
|
147
|
+
}
|
|
148
|
+
async deleteGoal(id) {
|
|
149
|
+
await this.request('DELETE', `/goals/${id}`);
|
|
150
|
+
}
|
|
151
|
+
async linkTaskToGoal(goalId, taskId) {
|
|
152
|
+
await this.request('POST', `/goals/${goalId}/tasks`, { task_id: taskId });
|
|
153
|
+
}
|
|
154
|
+
async unlinkTaskFromGoal(goalId, taskId) {
|
|
155
|
+
await this.request('DELETE', `/goals/${goalId}/tasks/${taskId}`);
|
|
156
|
+
}
|
|
157
|
+
async getGoalStats(id) {
|
|
158
|
+
return this.request('GET', `/goals/${id}/stats`);
|
|
159
|
+
}
|
|
160
|
+
// ============ Notes ============
|
|
161
|
+
async listNotes(params) {
|
|
162
|
+
const result = await this.request('GET', '/notes', undefined, params);
|
|
163
|
+
return Array.isArray(result) ? result : (result.items || result.data || []);
|
|
164
|
+
}
|
|
165
|
+
async getNote(id) {
|
|
166
|
+
return this.request('GET', `/notes/${id}`);
|
|
167
|
+
}
|
|
168
|
+
async createNote(data) {
|
|
169
|
+
return this.request('POST', '/notes', data);
|
|
170
|
+
}
|
|
171
|
+
async updateNote(id, data) {
|
|
172
|
+
return this.request('PATCH', `/notes/${id}`, data);
|
|
173
|
+
}
|
|
174
|
+
async deleteNote(id) {
|
|
175
|
+
await this.request('DELETE', `/notes/${id}`);
|
|
176
|
+
}
|
|
177
|
+
// ============ User/Auth ============
|
|
178
|
+
async getCurrentUser() {
|
|
179
|
+
return this.request('GET', '/auth/me');
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
//# sourceMappingURL=api-client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-client.js","sourceRoot":"","sources":["../../src/client/api-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,270 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Type definitions for Joan API responses
|
|
3
|
+
*/
|
|
4
|
+
export interface Project {
|
|
5
|
+
id: string;
|
|
6
|
+
user_id: string;
|
|
7
|
+
client_id?: string;
|
|
8
|
+
name: string;
|
|
9
|
+
description?: string;
|
|
10
|
+
status: 'planning' | 'active' | 'on_hold' | 'completed' | 'archived';
|
|
11
|
+
start_date?: string;
|
|
12
|
+
end_date?: string;
|
|
13
|
+
budget?: number;
|
|
14
|
+
hourly_rate?: number;
|
|
15
|
+
estimated_hours?: number;
|
|
16
|
+
actual_hours?: number;
|
|
17
|
+
created_at: string;
|
|
18
|
+
updated_at: string;
|
|
19
|
+
}
|
|
20
|
+
export interface ProjectWithDetails extends Project {
|
|
21
|
+
members?: ProjectMember[];
|
|
22
|
+
task_stats?: {
|
|
23
|
+
total: number;
|
|
24
|
+
completed: number;
|
|
25
|
+
in_progress: number;
|
|
26
|
+
pending: number;
|
|
27
|
+
};
|
|
28
|
+
recent_activity?: ActivityItem[];
|
|
29
|
+
}
|
|
30
|
+
export interface ProjectMember {
|
|
31
|
+
id: string;
|
|
32
|
+
user_id: string;
|
|
33
|
+
project_id: string;
|
|
34
|
+
role: 'owner' | 'admin' | 'contributor' | 'read_only';
|
|
35
|
+
name?: string;
|
|
36
|
+
email?: string;
|
|
37
|
+
joined_at: string;
|
|
38
|
+
}
|
|
39
|
+
export interface ProjectColumn {
|
|
40
|
+
id: string;
|
|
41
|
+
project_id: string;
|
|
42
|
+
name: string;
|
|
43
|
+
description?: string;
|
|
44
|
+
color: string;
|
|
45
|
+
position: number;
|
|
46
|
+
wip_limit?: number;
|
|
47
|
+
is_default: boolean;
|
|
48
|
+
}
|
|
49
|
+
export interface ProjectAnalytics {
|
|
50
|
+
burndown?: {
|
|
51
|
+
dates: string[];
|
|
52
|
+
remaining: number[];
|
|
53
|
+
ideal: number[];
|
|
54
|
+
};
|
|
55
|
+
velocity?: {
|
|
56
|
+
completed_this_week: number;
|
|
57
|
+
average_weekly: number;
|
|
58
|
+
};
|
|
59
|
+
weekly_activity?: {
|
|
60
|
+
week: string;
|
|
61
|
+
tasks_created: number;
|
|
62
|
+
tasks_completed: number;
|
|
63
|
+
}[];
|
|
64
|
+
}
|
|
65
|
+
export interface Task {
|
|
66
|
+
id: string;
|
|
67
|
+
user_id: string;
|
|
68
|
+
project_id?: string;
|
|
69
|
+
folder_id?: string;
|
|
70
|
+
column_id?: string;
|
|
71
|
+
title: string;
|
|
72
|
+
description?: string;
|
|
73
|
+
status: 'pending' | 'in_progress' | 'completed' | 'cancelled';
|
|
74
|
+
priority: number;
|
|
75
|
+
due_date?: string;
|
|
76
|
+
estimated_minutes?: number;
|
|
77
|
+
actual_minutes?: number;
|
|
78
|
+
kanban_position?: number;
|
|
79
|
+
assignee_id?: string;
|
|
80
|
+
assignee_name?: string;
|
|
81
|
+
task_number?: number;
|
|
82
|
+
milestone_id?: string;
|
|
83
|
+
milestone_name?: string;
|
|
84
|
+
tags?: string[];
|
|
85
|
+
resources?: TaskResource[];
|
|
86
|
+
completed_at?: string;
|
|
87
|
+
created_at: string;
|
|
88
|
+
updated_at: string;
|
|
89
|
+
}
|
|
90
|
+
export interface TaskResource {
|
|
91
|
+
id: string;
|
|
92
|
+
title: string;
|
|
93
|
+
description?: string;
|
|
94
|
+
type: 'article' | 'video' | 'book' | 'tool' | 'tip' | 'plan' | 'workout' | 'guide' | 'generated';
|
|
95
|
+
url?: string;
|
|
96
|
+
content?: string;
|
|
97
|
+
source?: string;
|
|
98
|
+
duration?: number;
|
|
99
|
+
}
|
|
100
|
+
export interface TaskWithSubtasks extends Task {
|
|
101
|
+
subtasks?: Task[];
|
|
102
|
+
}
|
|
103
|
+
export interface Goal {
|
|
104
|
+
id: string;
|
|
105
|
+
user_id: string;
|
|
106
|
+
title: string;
|
|
107
|
+
description?: string;
|
|
108
|
+
type: 'daily' | 'weekly' | 'monthly' | 'yearly' | 'standard';
|
|
109
|
+
status: 'active' | 'paused' | 'completed' | 'archived';
|
|
110
|
+
target_date?: string;
|
|
111
|
+
progress: number;
|
|
112
|
+
metrics?: Record<string, unknown>;
|
|
113
|
+
completed_at?: string;
|
|
114
|
+
created_at: string;
|
|
115
|
+
updated_at: string;
|
|
116
|
+
}
|
|
117
|
+
export interface GoalWithTasks extends Goal {
|
|
118
|
+
linked_tasks?: Task[];
|
|
119
|
+
}
|
|
120
|
+
export interface GoalStats {
|
|
121
|
+
total_tasks: number;
|
|
122
|
+
completed_tasks: number;
|
|
123
|
+
in_progress_tasks: number;
|
|
124
|
+
pending_tasks: number;
|
|
125
|
+
completion_rate: number;
|
|
126
|
+
}
|
|
127
|
+
export interface Milestone {
|
|
128
|
+
id: string;
|
|
129
|
+
project_id: string;
|
|
130
|
+
name: string;
|
|
131
|
+
description?: string;
|
|
132
|
+
target_date?: string;
|
|
133
|
+
status: 'upcoming' | 'in_progress' | 'completed' | 'missed';
|
|
134
|
+
progress: number;
|
|
135
|
+
completed_at?: string;
|
|
136
|
+
created_by: string;
|
|
137
|
+
created_by_name?: string;
|
|
138
|
+
created_at: string;
|
|
139
|
+
updated_at: string;
|
|
140
|
+
}
|
|
141
|
+
export interface MilestoneWithTasks extends Milestone {
|
|
142
|
+
tasks?: Task[];
|
|
143
|
+
task_count: number;
|
|
144
|
+
completed_task_count: number;
|
|
145
|
+
}
|
|
146
|
+
export interface MilestoneResource {
|
|
147
|
+
id: string;
|
|
148
|
+
milestone_id: string;
|
|
149
|
+
type: 'link' | 'note';
|
|
150
|
+
title: string;
|
|
151
|
+
url?: string;
|
|
152
|
+
content?: string;
|
|
153
|
+
created_by: string;
|
|
154
|
+
created_at: string;
|
|
155
|
+
updated_at: string;
|
|
156
|
+
}
|
|
157
|
+
export interface Note {
|
|
158
|
+
id: string;
|
|
159
|
+
user_id: string;
|
|
160
|
+
folder_id?: string;
|
|
161
|
+
title: string;
|
|
162
|
+
content?: string;
|
|
163
|
+
content_html?: string;
|
|
164
|
+
tags?: string[];
|
|
165
|
+
is_pinned: boolean;
|
|
166
|
+
is_archived: boolean;
|
|
167
|
+
created_at: string;
|
|
168
|
+
updated_at: string;
|
|
169
|
+
}
|
|
170
|
+
export interface ActivityItem {
|
|
171
|
+
id: string;
|
|
172
|
+
user_id: string;
|
|
173
|
+
user_name?: string;
|
|
174
|
+
action: string;
|
|
175
|
+
entity_type: string;
|
|
176
|
+
entity_id: string;
|
|
177
|
+
details?: Record<string, unknown>;
|
|
178
|
+
created_at: string;
|
|
179
|
+
}
|
|
180
|
+
export interface CreateProjectInput {
|
|
181
|
+
name: string;
|
|
182
|
+
description?: string;
|
|
183
|
+
status?: Project['status'];
|
|
184
|
+
start_date?: string;
|
|
185
|
+
end_date?: string;
|
|
186
|
+
}
|
|
187
|
+
export interface UpdateProjectInput {
|
|
188
|
+
name?: string;
|
|
189
|
+
description?: string;
|
|
190
|
+
status?: Project['status'];
|
|
191
|
+
start_date?: string;
|
|
192
|
+
end_date?: string;
|
|
193
|
+
}
|
|
194
|
+
export interface CreateTaskInput {
|
|
195
|
+
title: string;
|
|
196
|
+
description?: string;
|
|
197
|
+
project_id?: string;
|
|
198
|
+
column_id?: string;
|
|
199
|
+
status?: string;
|
|
200
|
+
priority?: number;
|
|
201
|
+
due_date?: string;
|
|
202
|
+
estimated_minutes?: number;
|
|
203
|
+
assignee_id?: string;
|
|
204
|
+
tags?: string[];
|
|
205
|
+
}
|
|
206
|
+
export interface UpdateTaskInput {
|
|
207
|
+
title?: string;
|
|
208
|
+
description?: string;
|
|
209
|
+
column_id?: string;
|
|
210
|
+
status?: string;
|
|
211
|
+
priority?: number;
|
|
212
|
+
due_date?: string;
|
|
213
|
+
estimated_minutes?: number;
|
|
214
|
+
assignee_id?: string;
|
|
215
|
+
tags?: string[];
|
|
216
|
+
}
|
|
217
|
+
export interface CreateMilestoneInput {
|
|
218
|
+
name: string;
|
|
219
|
+
description?: string;
|
|
220
|
+
target_date?: string;
|
|
221
|
+
status?: Milestone['status'];
|
|
222
|
+
}
|
|
223
|
+
export interface UpdateMilestoneInput {
|
|
224
|
+
name?: string;
|
|
225
|
+
description?: string;
|
|
226
|
+
target_date?: string;
|
|
227
|
+
status?: Milestone['status'];
|
|
228
|
+
progress?: number;
|
|
229
|
+
}
|
|
230
|
+
export interface CreateGoalInput {
|
|
231
|
+
title: string;
|
|
232
|
+
description?: string;
|
|
233
|
+
type?: Goal['type'];
|
|
234
|
+
target_date?: string;
|
|
235
|
+
}
|
|
236
|
+
export interface UpdateGoalInput {
|
|
237
|
+
title?: string;
|
|
238
|
+
description?: string;
|
|
239
|
+
status?: Goal['status'];
|
|
240
|
+
target_date?: string;
|
|
241
|
+
progress?: number;
|
|
242
|
+
}
|
|
243
|
+
export interface CreateNoteInput {
|
|
244
|
+
title: string;
|
|
245
|
+
content?: string;
|
|
246
|
+
folder_id?: string;
|
|
247
|
+
tags?: string[];
|
|
248
|
+
is_pinned?: boolean;
|
|
249
|
+
}
|
|
250
|
+
export interface UpdateNoteInput {
|
|
251
|
+
title?: string;
|
|
252
|
+
content?: string;
|
|
253
|
+
folder_id?: string;
|
|
254
|
+
tags?: string[];
|
|
255
|
+
is_pinned?: boolean;
|
|
256
|
+
is_archived?: boolean;
|
|
257
|
+
}
|
|
258
|
+
export interface ApiListResponse<T> {
|
|
259
|
+
items?: T[];
|
|
260
|
+
data?: T[];
|
|
261
|
+
total?: number;
|
|
262
|
+
limit?: number;
|
|
263
|
+
offset?: number;
|
|
264
|
+
}
|
|
265
|
+
export interface ApiErrorResponse {
|
|
266
|
+
error: string;
|
|
267
|
+
code?: string;
|
|
268
|
+
details?: unknown;
|
|
269
|
+
}
|
|
270
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/client/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/client/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
package/dist/config.d.ts
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Configuration management for Joan MCP server
|
|
3
|
+
*/
|
|
4
|
+
import { z } from 'zod';
|
|
5
|
+
declare const ConfigSchema: z.ZodObject<{
|
|
6
|
+
apiUrl: z.ZodString;
|
|
7
|
+
authToken: z.ZodString;
|
|
8
|
+
}, "strip", z.ZodTypeAny, {
|
|
9
|
+
apiUrl: string;
|
|
10
|
+
authToken: string;
|
|
11
|
+
}, {
|
|
12
|
+
apiUrl: string;
|
|
13
|
+
authToken: string;
|
|
14
|
+
}>;
|
|
15
|
+
export type Config = z.infer<typeof ConfigSchema>;
|
|
16
|
+
/**
|
|
17
|
+
* Load configuration from environment and stored credentials
|
|
18
|
+
*/
|
|
19
|
+
export declare function loadConfig(): Promise<Config>;
|
|
20
|
+
/**
|
|
21
|
+
* Get the API URL (for display purposes, without needing full config)
|
|
22
|
+
*/
|
|
23
|
+
export declare function getApiUrl(): string;
|
|
24
|
+
/**
|
|
25
|
+
* Get the base app URL (for login redirects)
|
|
26
|
+
*/
|
|
27
|
+
export declare function getAppUrl(): string;
|
|
28
|
+
/**
|
|
29
|
+
* Get the MCP auth URL (for CLI login flow)
|
|
30
|
+
*/
|
|
31
|
+
export declare function getMcpAuthUrl(port: number): string;
|
|
32
|
+
export {};
|
|
33
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,QAAA,MAAM,YAAY;;;;;;;;;EAGhB,CAAC;AAEH,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAIlD;;GAEG;AACH,wBAAsB,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC,CA0BlD;AAED;;GAEG;AACH,wBAAgB,SAAS,IAAI,MAAM,CAElC;AAED;;GAEG;AACH,wBAAgB,SAAS,IAAI,MAAM,CAelC;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAGlD"}
|