paean 0.1.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 +296 -0
- package/dist/api/auth.d.ts +71 -0
- package/dist/api/auth.d.ts.map +1 -0
- package/dist/api/auth.js +257 -0
- package/dist/api/auth.js.map +1 -0
- package/dist/api/client.d.ts +37 -0
- package/dist/api/client.d.ts.map +1 -0
- package/dist/api/client.js +101 -0
- package/dist/api/client.js.map +1 -0
- package/dist/api/todo.d.ts +167 -0
- package/dist/api/todo.d.ts.map +1 -0
- package/dist/api/todo.js +137 -0
- package/dist/api/todo.js.map +1 -0
- package/dist/cli.d.ts +7 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +36 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/context.d.ts +7 -0
- package/dist/commands/context.d.ts.map +1 -0
- package/dist/commands/context.js +155 -0
- package/dist/commands/context.js.map +1 -0
- package/dist/commands/login.d.ts +7 -0
- package/dist/commands/login.d.ts.map +1 -0
- package/dist/commands/login.js +108 -0
- package/dist/commands/login.js.map +1 -0
- package/dist/commands/logout.d.ts +7 -0
- package/dist/commands/logout.d.ts.map +1 -0
- package/dist/commands/logout.js +27 -0
- package/dist/commands/logout.js.map +1 -0
- package/dist/commands/serve.d.ts +7 -0
- package/dist/commands/serve.d.ts.map +1 -0
- package/dist/commands/serve.js +29 -0
- package/dist/commands/serve.js.map +1 -0
- package/dist/commands/tasks.d.ts +7 -0
- package/dist/commands/tasks.d.ts.map +1 -0
- package/dist/commands/tasks.js +276 -0
- package/dist/commands/tasks.js.map +1 -0
- package/dist/commands/validate.d.ts +7 -0
- package/dist/commands/validate.d.ts.map +1 -0
- package/dist/commands/validate.js +123 -0
- package/dist/commands/validate.js.map +1 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +19 -0
- package/dist/index.js.map +1 -0
- package/dist/mcp/resources.d.ts +14 -0
- package/dist/mcp/resources.d.ts.map +1 -0
- package/dist/mcp/resources.js +166 -0
- package/dist/mcp/resources.js.map +1 -0
- package/dist/mcp/server.d.ts +12 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +82 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/mcp/tools.d.ts +14 -0
- package/dist/mcp/tools.d.ts.map +1 -0
- package/dist/mcp/tools.js +341 -0
- package/dist/mcp/tools.js.map +1 -0
- package/dist/utils/config.d.ts +69 -0
- package/dist/utils/config.d.ts.map +1 -0
- package/dist/utils/config.js +129 -0
- package/dist/utils/config.js.map +1 -0
- package/dist/utils/output.d.ts +79 -0
- package/dist/utils/output.d.ts.map +1 -0
- package/dist/utils/output.js +157 -0
- package/dist/utils/output.js.map +1 -0
- package/dist/utils/project.d.ts +29 -0
- package/dist/utils/project.d.ts.map +1 -0
- package/dist/utils/project.js +135 -0
- package/dist/utils/project.js.map +1 -0
- package/package.json +72 -0
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Paean API Client
|
|
3
|
+
* HTTP client for communicating with the Paean AI backend
|
|
4
|
+
*/
|
|
5
|
+
import { type AxiosInstance } from 'axios';
|
|
6
|
+
export interface ApiError {
|
|
7
|
+
error: string;
|
|
8
|
+
message?: string;
|
|
9
|
+
statusCode?: number;
|
|
10
|
+
}
|
|
11
|
+
export interface ApiResponse<T> {
|
|
12
|
+
success: boolean;
|
|
13
|
+
data?: T;
|
|
14
|
+
error?: string;
|
|
15
|
+
message?: string;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Create an authenticated API client
|
|
19
|
+
*/
|
|
20
|
+
export declare function createApiClient(): AxiosInstance;
|
|
21
|
+
/**
|
|
22
|
+
* Create an unauthenticated API client (for login flows)
|
|
23
|
+
*/
|
|
24
|
+
export declare function createPublicApiClient(): AxiosInstance;
|
|
25
|
+
/**
|
|
26
|
+
* Get the authenticated API client singleton
|
|
27
|
+
*/
|
|
28
|
+
export declare function getApiClient(): AxiosInstance;
|
|
29
|
+
/**
|
|
30
|
+
* Get the public API client singleton
|
|
31
|
+
*/
|
|
32
|
+
export declare function getPublicApiClient(): AxiosInstance;
|
|
33
|
+
/**
|
|
34
|
+
* Reset the API clients (useful after login/logout)
|
|
35
|
+
*/
|
|
36
|
+
export declare function resetApiClients(): void;
|
|
37
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAc,EAAE,KAAK,aAAa,EAAmB,MAAM,OAAO,CAAC;AAGnE,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,WAAW,CAAC,CAAC;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,aAAa,CAiD/C;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,aAAa,CAiCrD;AAMD;;GAEG;AACH,wBAAgB,YAAY,IAAI,aAAa,CAK5C;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,aAAa,CAKlD;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,IAAI,CAGtC"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Paean API Client
|
|
3
|
+
* HTTP client for communicating with the Paean AI backend
|
|
4
|
+
*/
|
|
5
|
+
import axios from 'axios';
|
|
6
|
+
import { getToken, getApiUrl, clearAuth } from '../utils/config.js';
|
|
7
|
+
/**
|
|
8
|
+
* Create an authenticated API client
|
|
9
|
+
*/
|
|
10
|
+
export function createApiClient() {
|
|
11
|
+
const client = axios.create({
|
|
12
|
+
baseURL: getApiUrl(),
|
|
13
|
+
timeout: 30000,
|
|
14
|
+
headers: {
|
|
15
|
+
'Content-Type': 'application/json',
|
|
16
|
+
'Accept': 'application/json',
|
|
17
|
+
'User-Agent': 'Paean-CLI/0.1.0',
|
|
18
|
+
},
|
|
19
|
+
});
|
|
20
|
+
// Add auth token to requests
|
|
21
|
+
client.interceptors.request.use((config) => {
|
|
22
|
+
const token = getToken();
|
|
23
|
+
if (token) {
|
|
24
|
+
config.headers.Authorization = `Bearer ${token}`;
|
|
25
|
+
}
|
|
26
|
+
return config;
|
|
27
|
+
});
|
|
28
|
+
// Handle response errors
|
|
29
|
+
client.interceptors.response.use((response) => response, (error) => {
|
|
30
|
+
// Handle 401 Unauthorized - clear auth and prompt re-login
|
|
31
|
+
if (error.response?.status === 401) {
|
|
32
|
+
clearAuth();
|
|
33
|
+
}
|
|
34
|
+
// Extract error message
|
|
35
|
+
const errorMessage = error.response?.data?.error ||
|
|
36
|
+
error.response?.data?.message ||
|
|
37
|
+
error.message ||
|
|
38
|
+
'An unknown error occurred';
|
|
39
|
+
// Create a more informative error
|
|
40
|
+
const enhancedError = new Error(errorMessage);
|
|
41
|
+
enhancedError.statusCode = error.response?.status;
|
|
42
|
+
enhancedError.isApiError = true;
|
|
43
|
+
return Promise.reject(enhancedError);
|
|
44
|
+
});
|
|
45
|
+
return client;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Create an unauthenticated API client (for login flows)
|
|
49
|
+
*/
|
|
50
|
+
export function createPublicApiClient() {
|
|
51
|
+
const client = axios.create({
|
|
52
|
+
baseURL: getApiUrl(),
|
|
53
|
+
timeout: 30000,
|
|
54
|
+
headers: {
|
|
55
|
+
'Content-Type': 'application/json',
|
|
56
|
+
'Accept': 'application/json',
|
|
57
|
+
'User-Agent': 'Paean-CLI/0.1.0',
|
|
58
|
+
},
|
|
59
|
+
});
|
|
60
|
+
// Handle response errors
|
|
61
|
+
client.interceptors.response.use((response) => response, (error) => {
|
|
62
|
+
const errorMessage = error.response?.data?.error ||
|
|
63
|
+
error.response?.data?.message ||
|
|
64
|
+
error.message ||
|
|
65
|
+
'An unknown error occurred';
|
|
66
|
+
const enhancedError = new Error(errorMessage);
|
|
67
|
+
enhancedError.statusCode = error.response?.status;
|
|
68
|
+
enhancedError.isApiError = true;
|
|
69
|
+
return Promise.reject(enhancedError);
|
|
70
|
+
});
|
|
71
|
+
return client;
|
|
72
|
+
}
|
|
73
|
+
// Singleton instances
|
|
74
|
+
let apiClient = null;
|
|
75
|
+
let publicApiClient = null;
|
|
76
|
+
/**
|
|
77
|
+
* Get the authenticated API client singleton
|
|
78
|
+
*/
|
|
79
|
+
export function getApiClient() {
|
|
80
|
+
if (!apiClient) {
|
|
81
|
+
apiClient = createApiClient();
|
|
82
|
+
}
|
|
83
|
+
return apiClient;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Get the public API client singleton
|
|
87
|
+
*/
|
|
88
|
+
export function getPublicApiClient() {
|
|
89
|
+
if (!publicApiClient) {
|
|
90
|
+
publicApiClient = createPublicApiClient();
|
|
91
|
+
}
|
|
92
|
+
return publicApiClient;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Reset the API clients (useful after login/logout)
|
|
96
|
+
*/
|
|
97
|
+
export function resetApiClients() {
|
|
98
|
+
apiClient = null;
|
|
99
|
+
publicApiClient = null;
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Todo API
|
|
3
|
+
* Wrapper for Paean AI todo/task management endpoints
|
|
4
|
+
*/
|
|
5
|
+
export interface TodoItem {
|
|
6
|
+
id: string;
|
|
7
|
+
content: string;
|
|
8
|
+
priority: 'high' | 'medium' | 'low';
|
|
9
|
+
status: 'pending' | 'in_progress' | 'completed' | 'cancelled';
|
|
10
|
+
dueDate?: string;
|
|
11
|
+
tags?: string[];
|
|
12
|
+
sourceNoteHashKey?: string;
|
|
13
|
+
sourceContext?: string;
|
|
14
|
+
metadata?: Record<string, unknown>;
|
|
15
|
+
order?: number;
|
|
16
|
+
createdAt: string;
|
|
17
|
+
updatedAt: string;
|
|
18
|
+
}
|
|
19
|
+
export interface TodoListResponse {
|
|
20
|
+
success: boolean;
|
|
21
|
+
data: {
|
|
22
|
+
items: TodoItem[];
|
|
23
|
+
stats: {
|
|
24
|
+
total: number;
|
|
25
|
+
completed: number;
|
|
26
|
+
pending: number;
|
|
27
|
+
overdue?: number;
|
|
28
|
+
dueToday?: number;
|
|
29
|
+
};
|
|
30
|
+
lastProcessedAt?: string;
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
export interface PendingChange {
|
|
34
|
+
id: number;
|
|
35
|
+
status: 'pending' | 'accepted' | 'rejected' | 'partial';
|
|
36
|
+
summary: string;
|
|
37
|
+
changeCount: number;
|
|
38
|
+
operationCounts: {
|
|
39
|
+
add: number;
|
|
40
|
+
update: number;
|
|
41
|
+
complete: number;
|
|
42
|
+
delete: number;
|
|
43
|
+
};
|
|
44
|
+
sourceNoteHashKey?: string;
|
|
45
|
+
sourceNoteTitle?: string;
|
|
46
|
+
createdAt: string;
|
|
47
|
+
expiresAt: string;
|
|
48
|
+
isExpired: boolean;
|
|
49
|
+
}
|
|
50
|
+
export interface PendingChangesResponse {
|
|
51
|
+
success: boolean;
|
|
52
|
+
data: PendingChange[];
|
|
53
|
+
}
|
|
54
|
+
export interface TodoPreferences {
|
|
55
|
+
todoEnabled: boolean;
|
|
56
|
+
todoAutoProcess: boolean;
|
|
57
|
+
todoDefaultPriority: 'high' | 'medium' | 'low';
|
|
58
|
+
turboModeEnabled: boolean;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Get todo list with optional filters
|
|
62
|
+
*/
|
|
63
|
+
export declare function getTodoList(options?: {
|
|
64
|
+
status?: 'all' | 'pending' | 'completed' | 'in_progress' | 'cancelled';
|
|
65
|
+
priority?: 'high' | 'medium' | 'low';
|
|
66
|
+
}): Promise<TodoListResponse>;
|
|
67
|
+
/**
|
|
68
|
+
* Get a specific todo item by ID
|
|
69
|
+
*/
|
|
70
|
+
export declare function getTodoItem(id: string): Promise<{
|
|
71
|
+
success: boolean;
|
|
72
|
+
data: TodoItem;
|
|
73
|
+
}>;
|
|
74
|
+
/**
|
|
75
|
+
* Create a new todo item
|
|
76
|
+
*/
|
|
77
|
+
export declare function createTodoItem(data: {
|
|
78
|
+
content: string;
|
|
79
|
+
priority?: 'high' | 'medium' | 'low';
|
|
80
|
+
status?: 'pending' | 'in_progress';
|
|
81
|
+
dueDate?: string;
|
|
82
|
+
tags?: string[];
|
|
83
|
+
sourceContext?: string;
|
|
84
|
+
}): Promise<{
|
|
85
|
+
success: boolean;
|
|
86
|
+
data: TodoItem;
|
|
87
|
+
}>;
|
|
88
|
+
/**
|
|
89
|
+
* Update a todo item
|
|
90
|
+
*/
|
|
91
|
+
export declare function updateTodoItem(id: string, data: Partial<{
|
|
92
|
+
content: string;
|
|
93
|
+
priority: 'high' | 'medium' | 'low';
|
|
94
|
+
status: 'pending' | 'in_progress' | 'completed' | 'cancelled';
|
|
95
|
+
dueDate: string;
|
|
96
|
+
tags: string[];
|
|
97
|
+
order: number;
|
|
98
|
+
metadata: Record<string, unknown>;
|
|
99
|
+
}>): Promise<{
|
|
100
|
+
success: boolean;
|
|
101
|
+
data: TodoItem;
|
|
102
|
+
}>;
|
|
103
|
+
/**
|
|
104
|
+
* Complete a todo item
|
|
105
|
+
*/
|
|
106
|
+
export declare function completeTodoItem(id: string, summary?: string): Promise<{
|
|
107
|
+
success: boolean;
|
|
108
|
+
data: TodoItem;
|
|
109
|
+
}>;
|
|
110
|
+
/**
|
|
111
|
+
* Reopen a completed/cancelled todo item
|
|
112
|
+
*/
|
|
113
|
+
export declare function reopenTodoItem(id: string): Promise<{
|
|
114
|
+
success: boolean;
|
|
115
|
+
data: TodoItem;
|
|
116
|
+
}>;
|
|
117
|
+
/**
|
|
118
|
+
* Delete a todo item
|
|
119
|
+
*/
|
|
120
|
+
export declare function deleteTodoItem(id: string): Promise<{
|
|
121
|
+
success: boolean;
|
|
122
|
+
}>;
|
|
123
|
+
/**
|
|
124
|
+
* Get pending changes from LLM analysis
|
|
125
|
+
*/
|
|
126
|
+
export declare function getPendingChanges(status?: 'pending' | 'all'): Promise<PendingChangesResponse>;
|
|
127
|
+
/**
|
|
128
|
+
* Accept a pending change
|
|
129
|
+
*/
|
|
130
|
+
export declare function acceptPendingChange(changeId: number): Promise<{
|
|
131
|
+
success: boolean;
|
|
132
|
+
}>;
|
|
133
|
+
/**
|
|
134
|
+
* Reject a pending change
|
|
135
|
+
*/
|
|
136
|
+
export declare function rejectPendingChange(changeId: number, notes?: string): Promise<{
|
|
137
|
+
success: boolean;
|
|
138
|
+
}>;
|
|
139
|
+
/**
|
|
140
|
+
* Get todo preferences
|
|
141
|
+
*/
|
|
142
|
+
export declare function getTodoPreferences(): Promise<{
|
|
143
|
+
success: boolean;
|
|
144
|
+
data: TodoPreferences;
|
|
145
|
+
}>;
|
|
146
|
+
/**
|
|
147
|
+
* Update todo preferences
|
|
148
|
+
*/
|
|
149
|
+
export declare function updateTodoPreferences(prefs: Partial<TodoPreferences>): Promise<{
|
|
150
|
+
success: boolean;
|
|
151
|
+
data: TodoPreferences;
|
|
152
|
+
}>;
|
|
153
|
+
/**
|
|
154
|
+
* Analyze content for todos (manual trigger)
|
|
155
|
+
*/
|
|
156
|
+
export declare function analyzeTodos(content: string, options?: {
|
|
157
|
+
context?: string;
|
|
158
|
+
autoAccept?: boolean;
|
|
159
|
+
}): Promise<{
|
|
160
|
+
success: boolean;
|
|
161
|
+
data: {
|
|
162
|
+
pendingChangeId?: number;
|
|
163
|
+
changes?: unknown[];
|
|
164
|
+
summary?: string;
|
|
165
|
+
};
|
|
166
|
+
}>;
|
|
167
|
+
//# sourceMappingURL=todo.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"todo.d.ts","sourceRoot":"","sources":["../../src/api/todo.ts"],"names":[],"mappings":"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"}
|
package/dist/api/todo.js
ADDED
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Todo API
|
|
3
|
+
* Wrapper for Paean AI todo/task management endpoints
|
|
4
|
+
*/
|
|
5
|
+
import { getApiClient } from './client.js';
|
|
6
|
+
/**
|
|
7
|
+
* Get todo list with optional filters
|
|
8
|
+
*/
|
|
9
|
+
export async function getTodoList(options) {
|
|
10
|
+
const client = getApiClient();
|
|
11
|
+
const params = new URLSearchParams();
|
|
12
|
+
if (options?.status && options.status !== 'all') {
|
|
13
|
+
params.append('status', options.status);
|
|
14
|
+
}
|
|
15
|
+
if (options?.priority) {
|
|
16
|
+
params.append('priority', options.priority);
|
|
17
|
+
}
|
|
18
|
+
const response = await client.get(`/todo?${params.toString()}`);
|
|
19
|
+
return response.data;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Get a specific todo item by ID
|
|
23
|
+
*/
|
|
24
|
+
export async function getTodoItem(id) {
|
|
25
|
+
const list = await getTodoList();
|
|
26
|
+
const item = list.data.items.find((i) => i.id === id);
|
|
27
|
+
if (!item) {
|
|
28
|
+
throw new Error(`Todo item not found: ${id}`);
|
|
29
|
+
}
|
|
30
|
+
return { success: true, data: item };
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Create a new todo item
|
|
34
|
+
*/
|
|
35
|
+
export async function createTodoItem(data) {
|
|
36
|
+
const client = getApiClient();
|
|
37
|
+
const response = await client.post('/todo/items', data);
|
|
38
|
+
return response.data;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Update a todo item
|
|
42
|
+
*/
|
|
43
|
+
export async function updateTodoItem(id, data) {
|
|
44
|
+
const client = getApiClient();
|
|
45
|
+
const response = await client.put(`/todo/items/${id}`, data);
|
|
46
|
+
return response.data;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Complete a todo item
|
|
50
|
+
*/
|
|
51
|
+
export async function completeTodoItem(id, summary) {
|
|
52
|
+
const client = getApiClient();
|
|
53
|
+
// First complete the item
|
|
54
|
+
const response = await client.post(`/todo/items/${id}/complete`);
|
|
55
|
+
// If summary provided, add it to metadata
|
|
56
|
+
if (summary && response.data.success) {
|
|
57
|
+
await updateTodoItem(id, {
|
|
58
|
+
metadata: {
|
|
59
|
+
...response.data.data.metadata,
|
|
60
|
+
completionSummary: summary,
|
|
61
|
+
completedAt: new Date().toISOString(),
|
|
62
|
+
},
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
return response.data;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Reopen a completed/cancelled todo item
|
|
69
|
+
*/
|
|
70
|
+
export async function reopenTodoItem(id) {
|
|
71
|
+
const client = getApiClient();
|
|
72
|
+
const response = await client.post(`/todo/items/${id}/reopen`);
|
|
73
|
+
return response.data;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Delete a todo item
|
|
77
|
+
*/
|
|
78
|
+
export async function deleteTodoItem(id) {
|
|
79
|
+
const client = getApiClient();
|
|
80
|
+
const response = await client.delete(`/todo/items/${id}`);
|
|
81
|
+
return response.data;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Get pending changes from LLM analysis
|
|
85
|
+
*/
|
|
86
|
+
export async function getPendingChanges(status = 'pending') {
|
|
87
|
+
const client = getApiClient();
|
|
88
|
+
const response = await client.get(`/todo/pending?status=${status}`);
|
|
89
|
+
return response.data;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Accept a pending change
|
|
93
|
+
*/
|
|
94
|
+
export async function acceptPendingChange(changeId) {
|
|
95
|
+
const client = getApiClient();
|
|
96
|
+
const response = await client.post(`/todo/pending/${changeId}/accept`);
|
|
97
|
+
return response.data;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Reject a pending change
|
|
101
|
+
*/
|
|
102
|
+
export async function rejectPendingChange(changeId, notes) {
|
|
103
|
+
const client = getApiClient();
|
|
104
|
+
const response = await client.post(`/todo/pending/${changeId}/reject`, {
|
|
105
|
+
notes,
|
|
106
|
+
});
|
|
107
|
+
return response.data;
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Get todo preferences
|
|
111
|
+
*/
|
|
112
|
+
export async function getTodoPreferences() {
|
|
113
|
+
const client = getApiClient();
|
|
114
|
+
const response = await client.get('/todo/preferences');
|
|
115
|
+
return response.data;
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Update todo preferences
|
|
119
|
+
*/
|
|
120
|
+
export async function updateTodoPreferences(prefs) {
|
|
121
|
+
const client = getApiClient();
|
|
122
|
+
const response = await client.put('/todo/preferences', prefs);
|
|
123
|
+
return response.data;
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Analyze content for todos (manual trigger)
|
|
127
|
+
*/
|
|
128
|
+
export async function analyzeTodos(content, options) {
|
|
129
|
+
const client = getApiClient();
|
|
130
|
+
const response = await client.post('/todo/analyze', {
|
|
131
|
+
content,
|
|
132
|
+
context: options?.context,
|
|
133
|
+
autoAccept: options?.autoAccept,
|
|
134
|
+
});
|
|
135
|
+
return response.data;
|
|
136
|
+
}
|
|
137
|
+
//# sourceMappingURL=todo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"todo.js","sourceRoot":"","sources":["../../src/api/todo.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA;;;GAGG"}
|
package/dist/cli.js
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* Paean CLI
|
|
4
|
+
* Command-line interface for Paean AI task management
|
|
5
|
+
*/
|
|
6
|
+
import { Command } from 'commander';
|
|
7
|
+
import { loginCommand } from './commands/login.js';
|
|
8
|
+
import { logoutCommand } from './commands/logout.js';
|
|
9
|
+
import { tasksCommand } from './commands/tasks.js';
|
|
10
|
+
import { contextCommand } from './commands/context.js';
|
|
11
|
+
import { serveCommand } from './commands/serve.js';
|
|
12
|
+
import { validateCommand } from './commands/validate.js';
|
|
13
|
+
import { getConfigPath } from './utils/config.js';
|
|
14
|
+
const program = new Command();
|
|
15
|
+
program
|
|
16
|
+
.name('paean')
|
|
17
|
+
.description('Paean AI CLI - Connect local development with Paean AI cloud')
|
|
18
|
+
.version('0.1.0')
|
|
19
|
+
.option('--config', 'Show config file path')
|
|
20
|
+
.action((options) => {
|
|
21
|
+
if (options.config) {
|
|
22
|
+
console.log(getConfigPath());
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
program.help();
|
|
26
|
+
});
|
|
27
|
+
// Register commands
|
|
28
|
+
program.addCommand(loginCommand);
|
|
29
|
+
program.addCommand(logoutCommand);
|
|
30
|
+
program.addCommand(tasksCommand);
|
|
31
|
+
program.addCommand(contextCommand);
|
|
32
|
+
program.addCommand(serveCommand);
|
|
33
|
+
program.addCommand(validateCommand);
|
|
34
|
+
// Parse arguments
|
|
35
|
+
program.parse();
|
|
36
|
+
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,OAAO,CAAC;KACb,WAAW,CAAC,8DAA8D,CAAC;KAC3E,OAAO,CAAC,OAAO,CAAC;KAChB,MAAM,CAAC,UAAU,EAAE,uBAAuB,CAAC;KAC3C,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE;IAClB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,CAAC;QAC7B,OAAO;IACT,CAAC;IACD,OAAO,CAAC,IAAI,EAAE,CAAC;AACjB,CAAC,CAAC,CAAC;AAEL,oBAAoB;AACpB,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;AACjC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;AACjC,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;AACnC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;AACjC,OAAO,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;AAEpC,kBAAkB;AAClB,OAAO,CAAC,KAAK,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/commands/context.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,eAAO,MAAM,cAAc,SA+EvB,CAAC"}
|