@open-sunsama/mcp 1.0.0 → 1.3.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.
Files changed (38) hide show
  1. package/README.md +52 -14
  2. package/build/index.d.ts +3 -0
  3. package/build/index.d.ts.map +1 -1
  4. package/build/index.js +5 -18
  5. package/build/index.js.map +1 -1
  6. package/build/lib/api-client.d.ts +168 -26
  7. package/build/lib/api-client.d.ts.map +1 -1
  8. package/build/lib/api-client.js +81 -4
  9. package/build/lib/api-client.js.map +1 -1
  10. package/build/lib/define-tool.d.ts +17 -0
  11. package/build/lib/define-tool.d.ts.map +1 -0
  12. package/build/lib/define-tool.js +101 -0
  13. package/build/lib/define-tool.js.map +1 -0
  14. package/build/server.d.ts +19 -0
  15. package/build/server.d.ts.map +1 -0
  16. package/build/server.js +40 -0
  17. package/build/server.js.map +1 -0
  18. package/build/tools/calendar-events.d.ts +28 -0
  19. package/build/tools/calendar-events.d.ts.map +1 -0
  20. package/build/tools/calendar-events.js +209 -0
  21. package/build/tools/calendar-events.js.map +1 -0
  22. package/build/tools/ideas.d.ts +5 -0
  23. package/build/tools/ideas.d.ts.map +1 -0
  24. package/build/tools/ideas.js +106 -0
  25. package/build/tools/ideas.js.map +1 -0
  26. package/build/tools/subtasks.d.ts.map +1 -1
  27. package/build/tools/subtasks.js +6 -5
  28. package/build/tools/subtasks.js.map +1 -1
  29. package/build/tools/tasks.d.ts.map +1 -1
  30. package/build/tools/tasks.js +24 -12
  31. package/build/tools/tasks.js.map +1 -1
  32. package/build/tools/time-blocks.d.ts.map +1 -1
  33. package/build/tools/time-blocks.js +44 -28
  34. package/build/tools/time-blocks.js.map +1 -1
  35. package/build/tools/user.d.ts.map +1 -1
  36. package/build/tools/user.js +3 -2
  37. package/build/tools/user.js.map +1 -1
  38. package/package.json +16 -8
package/README.md CHANGED
@@ -1,12 +1,22 @@
1
1
  # Open Sunsama MCP Server
2
2
 
3
- An MCP (Model Context Protocol) server that enables AI agents like Claude, Cursor, and other AI assistants to manage your tasks, time blocks, and calendar through the Open Sunsama API.
3
+ An MCP (Model Context Protocol) server that enables AI agents like Claude, ChatGPT, Cursor, and other AI assistants to manage your tasks, time blocks, calendar, and Ideas through the Open Sunsama API.
4
+
5
+ > **Most people don't need this package.** Open Sunsama hosts the same server at
6
+ > **`https://api.opensunsama.com/mcp`** with OAuth sign-in. Add that URL to Claude
7
+ > (Settings → Customize → Connectors), ChatGPT (Developer mode → Plugins), Claude Code, or
8
+ > Cursor, then sign in and allow access. There's no API key. See the
9
+ > [setup guides](https://opensunsama.com/docs/mcp/overview).
10
+ >
11
+ > Use this npm package (the local stdio server + API key) for clients without OAuth
12
+ > support, scripts, CI, or self-hosted instances that aren't reachable from the internet.
4
13
 
5
14
  ## Features
6
15
 
7
16
  - **Task Management**: Create, update, complete, delete, and schedule tasks
8
17
  - **Time Blocking**: Schedule focused work sessions on your calendar
9
18
  - **Subtasks**: Break down tasks into smaller actionable items
19
+ - **Ideas**: Manage boards, columns, cards, and checklists, and promote ideas to tasks
10
20
  - **User Profile**: Access and update user preferences
11
21
  - **Full CRUD Operations**: Complete API coverage for AI-assisted productivity
12
22
 
@@ -18,9 +28,9 @@ An MCP (Model Context Protocol) server that enables AI agents like Claude, Curso
18
28
 
19
29
  ## Installation
20
30
 
21
- ### Quick Start (Recommended)
31
+ ### Quick Start (local server)
22
32
 
23
- No installation required! Use `npx` to run directly:
33
+ No installation required. Use `npx` to run it directly:
24
34
 
25
35
  ```json
26
36
  {
@@ -39,25 +49,32 @@ No installation required! Use `npx` to run directly:
39
49
  ### From Source (Development)
40
50
 
41
51
  ```bash
42
- # Clone the repository
52
+ # Clone the repository (the mcp package is a workspace of the monorepo)
43
53
  git clone https://github.com/ShadowWalker2014/open-sunsama.git
44
- cd open-sunsama/mcp
45
-
46
- # Install dependencies
54
+ cd open-sunsama
47
55
  bun install
48
56
 
49
57
  # Build
50
- bun run build
58
+ bun run --filter=@open-sunsama/mcp build
51
59
  ```
52
60
 
61
+ The tools live in `src/tools/` and are shared with the hosted server: the API imports
62
+ `createOpenSunsamaMcpServer` from `@open-sunsama/mcp/server` and serves it at `/mcp`.
63
+
53
64
  ### Getting an API Key
54
65
 
66
+ The fastest way: in the web app, open **Settings → MCP**, expand **Use an API key instead**, and click **Generate key**. The configs are filled in for you.
67
+
68
+ Or create one with custom scopes:
69
+
55
70
  1. Open the Open Sunsama web app
56
71
  2. Go to **Settings** → **API Keys**
57
72
  3. Click **"Generate New Key"**
58
73
  4. Select scopes:
59
74
  - `tasks:read` and `tasks:write` for task management
60
- - `time-blocks:read` and `time-blocks:write` for calendar
75
+ - `time-blocks:read` and `time-blocks:write` for time blocks
76
+ - `calendar:read` for events from connected Google, Outlook and iCloud calendars
77
+ - `ideas:read` and `ideas:write` for idea boards, columns, cards, and checklists
61
78
  - `user:read` and `user:write` for profile access
62
79
  5. Copy the key (it's only shown once!)
63
80
 
@@ -221,7 +238,13 @@ If you prefer Bun over Node.js:
221
238
  | `update_time_block` | Update time block details |
222
239
  | `delete_time_block` | Remove a time block |
223
240
  | `link_task_to_time_block` | Link/unlink a task to a time block |
224
- | `get_schedule_for_day` | Get formatted daily schedule |
241
+ | `get_schedule_for_day` | Get a day's calendar events and time blocks in one view |
242
+
243
+ ### Calendar Events (read-only)
244
+
245
+ | Tool | Description |
246
+ |------|-------------|
247
+ | `list_calendar_events` | List events from connected Google, Outlook and iCloud calendars for a day or range |
225
248
 
226
249
  ### User Profile
227
250
 
@@ -253,7 +276,8 @@ Once configured, you can ask your AI assistant things like:
253
276
  - "What subtasks are left on my project task?"
254
277
 
255
278
  ### Planning
256
- - "Help me plan my day - I need to do code review, write docs, and have a team meeting"
279
+ - "Help me plan my day around my meetings - I need to do code review and write docs"
280
+ - "When am I free tomorrow afternoon?"
257
281
  - "Schedule my tasks for this week based on priority"
258
282
 
259
283
  ## Testing
@@ -264,8 +288,8 @@ Run the test suite to verify your setup:
264
288
  # Set your API key
265
289
  export OPENSUNSAMA_API_KEY=os_your-api-key-here
266
290
 
267
- # Run all tests
268
- bun run test
291
+ # Run all tests against the live API
292
+ bun run test:live
269
293
 
270
294
  # Or run individual test suites
271
295
  bun run test:tasks
@@ -273,6 +297,16 @@ bun run test:time-blocks
273
297
  bun run test:subtasks
274
298
  ```
275
299
 
300
+ ### Hosted server OAuth flow
301
+
302
+ `tests/oauth-e2e.ts` drives the full OAuth connector flow (discovery, registration, PKCE,
303
+ consent, token refresh, revocation, CIMD clients, API keys) with the official MCP SDK
304
+ client. Point it at a local API, since it creates a throwaway account:
305
+
306
+ ```bash
307
+ MCP_E2E_API_URL=http://localhost:3001 bun run tests/oauth-e2e.ts
308
+ ```
309
+
276
310
  ### Using MCP Inspector
277
311
 
278
312
  For interactive testing and debugging:
@@ -308,7 +342,7 @@ Make sure you've set the API key in your MCP configuration:
308
342
 
309
343
  1. Restart your AI assistant after changing the configuration
310
344
  2. Check the configuration file path is correct
311
- 3. Verify the path to `build/index.js` is absolute
345
+ 3. Verify `npx` is available in your PATH (try running `npx -v` in terminal)
312
346
 
313
347
  ### "Authentication required" or 401 Errors
314
348
 
@@ -330,6 +364,7 @@ mcp/
330
364
  │ ├── tasks.ts # Task management tools
331
365
  │ ├── time-blocks.ts# Time block tools
332
366
  │ ├── subtasks.ts # Subtask tools
367
+ │ ├── calendar-events.ts # Calendar event tools (read-only)
333
368
  │ └── user.ts # User profile tools
334
369
  ├── tests/
335
370
  │ └── test-all.ts # Comprehensive test suite
@@ -361,6 +396,9 @@ bun run dev # Watch mode for development
361
396
  | `tasks:write` | Create, update, delete tasks |
362
397
  | `time-blocks:read` | List and view time blocks |
363
398
  | `time-blocks:write` | Create, update, delete time blocks |
399
+ | `calendar:read` | List events from connected calendars |
400
+ | `ideas:read` | List idea boards, columns, cards, and checklists |
401
+ | `ideas:write` | Create, update, delete, and reorder ideas |
364
402
  | `user:read` | View user profile |
365
403
  | `user:write` | Update user profile |
366
404
 
package/build/index.d.ts CHANGED
@@ -5,6 +5,9 @@
5
5
  * A Model Context Protocol server that enables AI agents to manage tasks,
6
6
  * time blocks, and calendars through the Open Sunsama API.
7
7
  *
8
+ * Most users should connect the hosted server instead — no API key needed:
9
+ * https://api.opensunsama.com/mcp (OAuth; see https://opensunsama.com/docs/mcp/overview)
10
+ *
8
11
  * Usage:
9
12
  * OPENSUNSAMA_API_KEY=os_xxx open-sunsama-mcp
10
13
  * OPENSUNSAMA_API_KEY=os_xxx OPENSUNSAMA_API_URL=http://localhost:3001 open-sunsama-mcp (for self-hosted/local)
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;;;;;;GASG"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;GAYG"}
package/build/index.js CHANGED
@@ -5,17 +5,15 @@
5
5
  * A Model Context Protocol server that enables AI agents to manage tasks,
6
6
  * time blocks, and calendars through the Open Sunsama API.
7
7
  *
8
+ * Most users should connect the hosted server instead — no API key needed:
9
+ * https://api.opensunsama.com/mcp (OAuth; see https://opensunsama.com/docs/mcp/overview)
10
+ *
8
11
  * Usage:
9
12
  * OPENSUNSAMA_API_KEY=os_xxx open-sunsama-mcp
10
13
  * OPENSUNSAMA_API_KEY=os_xxx OPENSUNSAMA_API_URL=http://localhost:3001 open-sunsama-mcp (for self-hosted/local)
11
14
  */
12
- import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
13
15
  import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
14
- import { ApiClient } from "./lib/api-client.js";
15
- import { registerTaskTools } from "./tools/tasks.js";
16
- import { registerTimeBlockTools } from "./tools/time-blocks.js";
17
- import { registerSubtaskTools } from "./tools/subtasks.js";
18
- import { registerUserTools } from "./tools/user.js";
16
+ import { createOpenSunsamaMcpServer } from "./server.js";
19
17
  // Configuration from environment variables
20
18
  const API_KEY = process.env.OPENSUNSAMA_API_KEY;
21
19
  const API_URL = process.env.OPENSUNSAMA_API_URL || "https://api.opensunsama.com";
@@ -30,21 +28,10 @@ if (!API_KEY) {
30
28
  console.error(" Settings → API Keys → Generate New Key");
31
29
  process.exit(1);
32
30
  }
33
- // Create the MCP server
34
- const server = new McpServer({
35
- name: "open-sunsama",
36
- version: "1.0.0",
37
- });
38
- // Create the API client
39
- const apiClient = new ApiClient({
31
+ const server = createOpenSunsamaMcpServer({
40
32
  baseUrl: API_URL,
41
33
  apiKey: API_KEY,
42
34
  });
43
- // Register all tools
44
- registerTaskTools(server, apiClient);
45
- registerTimeBlockTools(server, apiClient);
46
- registerSubtaskTools(server, apiClient);
47
- registerUserTools(server, apiClient);
48
35
  // Log to stderr (safe for stdio transport)
49
36
  console.error(`Open Sunsama MCP Server starting...`);
50
37
  console.error(`API URL: ${API_URL}`);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAEzD,2CAA2C;AAC3C,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;AAChD,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,6BAA6B,CAAC;AAEjF,kCAAkC;AAClC,IAAI,CAAC,OAAO,EAAE,CAAC;IACb,OAAO,CAAC,KAAK,CAAC,6DAA6D,CAAC,CAAC;IAC7E,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAClB,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACxB,OAAO,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC;IAC/D,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAClB,OAAO,CAAC,KAAK,CAAC,uDAAuD,CAAC,CAAC;IACvE,OAAO,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAC1D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,MAAM,GAAG,0BAA0B,CAAC;IACxC,OAAO,EAAE,OAAO;IAChB,MAAM,EAAE,OAAO;CAChB,CAAC,CAAC;AAEH,2CAA2C;AAC3C,OAAO,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;AACrD,OAAO,CAAC,KAAK,CAAC,YAAY,OAAO,EAAE,CAAC,CAAC;AACrC,OAAO,CAAC,KAAK,CAAC,YAAY,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;AAEzD,mBAAmB;AACnB,KAAK,UAAU,IAAI;IACjB,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAChC,OAAO,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;AAC5D,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;IACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC;AAEH,2BAA2B;AAC3B,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;IACxB,OAAO,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;IAClC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC;AAEH,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;IACzB,OAAO,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;IAClC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
@@ -4,9 +4,14 @@
4
4
  */
5
5
  export interface ApiClientConfig {
6
6
  baseUrl: string;
7
- apiKey: string;
7
+ /** API key sent as `X-API-Key` (the stdio CLI). */
8
+ apiKey?: string;
9
+ /** Extra headers, e.g. `Authorization: Bearer <oauth token>` (remote MCP). */
10
+ headers?: Record<string, string>;
11
+ /** Custom fetch, e.g. the API's in-process `app.fetch` for the remote MCP. */
12
+ fetch?: typeof globalThis.fetch;
8
13
  }
9
- export interface ApiResponse<T> {
14
+ export interface ApiResponse<T, M = PaginationMeta> {
10
15
  success: boolean;
11
16
  data?: T;
12
17
  error?: {
@@ -15,17 +20,19 @@ export interface ApiResponse<T> {
15
20
  statusCode: number;
16
21
  errors?: Record<string, string[]>;
17
22
  };
18
- meta?: {
19
- page: number;
20
- limit: number;
21
- total: number;
22
- totalPages: number;
23
- };
23
+ meta?: M;
24
24
  message?: string;
25
25
  }
26
+ export interface PaginationMeta {
27
+ page: number;
28
+ limit: number;
29
+ total: number;
30
+ totalPages: number;
31
+ }
26
32
  export declare class ApiClient {
27
33
  private baseUrl;
28
- private apiKey;
34
+ private authHeaders;
35
+ private fetchImpl;
29
36
  constructor(config: ApiClientConfig);
30
37
  private request;
31
38
  listTasks(params?: {
@@ -37,20 +44,50 @@ export declare class ApiClient {
37
44
  sortBy?: "priority" | "position" | "createdAt";
38
45
  page?: number;
39
46
  limit?: number;
40
- }): Promise<ApiResponse<Task[]>>;
41
- getTask(id: string): Promise<ApiResponse<Task>>;
42
- createTask(data: CreateTaskInput): Promise<ApiResponse<Task>>;
43
- updateTask(id: string, data: UpdateTaskInput): Promise<ApiResponse<Task>>;
47
+ }): Promise<ApiResponse<Task[], PaginationMeta>>;
48
+ getTask(id: string): Promise<ApiResponse<Task, PaginationMeta>>;
49
+ createTask(data: CreateTaskInput): Promise<ApiResponse<Task, PaginationMeta>>;
50
+ updateTask(id: string, data: UpdateTaskInput): Promise<ApiResponse<Task, PaginationMeta>>;
44
51
  deleteTask(id: string): Promise<ApiResponse<{
45
52
  message: string;
46
- }>>;
47
- reorderTasks(date: string | "backlog", taskIds: string[]): Promise<ApiResponse<Task[]>>;
48
- listSubtasks(taskId: string): Promise<ApiResponse<Subtask[]>>;
49
- createSubtask(taskId: string, data: CreateSubtaskInput): Promise<ApiResponse<Subtask>>;
50
- updateSubtask(taskId: string, subtaskId: string, data: UpdateSubtaskInput): Promise<ApiResponse<Subtask>>;
53
+ }, PaginationMeta>>;
54
+ reorderTasks(date: string | "backlog", taskIds: string[]): Promise<ApiResponse<Task[], PaginationMeta>>;
55
+ listSubtasks(taskId: string): Promise<ApiResponse<Subtask[], PaginationMeta>>;
56
+ createSubtask(taskId: string, data: CreateSubtaskInput): Promise<ApiResponse<Subtask, PaginationMeta>>;
57
+ updateSubtask(taskId: string, subtaskId: string, data: UpdateSubtaskInput): Promise<ApiResponse<Subtask, PaginationMeta>>;
51
58
  deleteSubtask(taskId: string, subtaskId: string): Promise<ApiResponse<{
52
59
  message: string;
53
- }>>;
60
+ }, PaginationMeta>>;
61
+ listIdeaBoards(): Promise<ApiResponse<IdeaBoard[], PaginationMeta>>;
62
+ createIdeaBoard(data: CreateIdeaBoardInput): Promise<ApiResponse<IdeaBoard & {
63
+ columns: IdeaColumn[];
64
+ }, PaginationMeta>>;
65
+ updateIdeaBoard(id: string, data: Partial<CreateIdeaBoardInput>): Promise<ApiResponse<IdeaBoard, PaginationMeta>>;
66
+ deleteIdeaBoard(id: string): Promise<ApiResponse<never, PaginationMeta>>;
67
+ reorderIdeaBoards(boardIds: string[]): Promise<ApiResponse<IdeaBoard[], PaginationMeta>>;
68
+ listIdeaColumns(boardId: string): Promise<ApiResponse<IdeaColumn[], PaginationMeta>>;
69
+ createIdeaColumn(data: CreateIdeaColumnInput): Promise<ApiResponse<IdeaColumn, PaginationMeta>>;
70
+ updateIdeaColumn(id: string, data: Partial<Pick<IdeaColumn, "name" | "position">>): Promise<ApiResponse<IdeaColumn, PaginationMeta>>;
71
+ deleteIdeaColumn(id: string): Promise<ApiResponse<never, PaginationMeta>>;
72
+ reorderIdeaColumns(boardId: string, columnIds: string[]): Promise<ApiResponse<IdeaColumn[], PaginationMeta>>;
73
+ listIdeas(filters: {
74
+ boardId?: string;
75
+ columnId?: string;
76
+ completed?: boolean;
77
+ }): Promise<ApiResponse<Idea[], PaginationMeta>>;
78
+ createIdea(data: CreateIdeaInput): Promise<ApiResponse<Idea, PaginationMeta>>;
79
+ updateIdea(id: string, data: UpdateIdeaInput): Promise<ApiResponse<Idea, PaginationMeta>>;
80
+ deleteIdea(id: string): Promise<ApiResponse<never, PaginationMeta>>;
81
+ reorderIdeas(columnId: string, ideaIds: string[]): Promise<ApiResponse<Idea[], PaginationMeta>>;
82
+ promoteIdea(id: string, scheduledDate?: string | null): Promise<ApiResponse<{
83
+ idea: Idea;
84
+ task: Task;
85
+ }, PaginationMeta>>;
86
+ listIdeaSubtasks(ideaId: string): Promise<ApiResponse<IdeaSubtask[], PaginationMeta>>;
87
+ createIdeaSubtask(ideaId: string, data: CreateIdeaSubtaskInput): Promise<ApiResponse<IdeaSubtask, PaginationMeta>>;
88
+ updateIdeaSubtask(ideaId: string, id: string, data: UpdateIdeaSubtaskInput): Promise<ApiResponse<IdeaSubtask, PaginationMeta>>;
89
+ deleteIdeaSubtask(ideaId: string, id: string): Promise<ApiResponse<never, PaginationMeta>>;
90
+ reorderIdeaSubtasks(ideaId: string, subtaskIds: string[]): Promise<ApiResponse<IdeaSubtask[], PaginationMeta>>;
54
91
  listTimeBlocks(params?: {
55
92
  date?: string;
56
93
  from?: string;
@@ -58,17 +95,94 @@ export declare class ApiClient {
58
95
  taskId?: string;
59
96
  page?: number;
60
97
  limit?: number;
61
- }): Promise<ApiResponse<TimeBlock[]>>;
62
- getTimeBlock(id: string): Promise<ApiResponse<TimeBlock>>;
63
- createTimeBlock(data: CreateTimeBlockInput): Promise<ApiResponse<TimeBlock>>;
64
- updateTimeBlock(id: string, data: UpdateTimeBlockInput): Promise<ApiResponse<TimeBlock>>;
98
+ }): Promise<ApiResponse<TimeBlock[], PaginationMeta>>;
99
+ getTimeBlock(id: string): Promise<ApiResponse<TimeBlock, PaginationMeta>>;
100
+ createTimeBlock(data: CreateTimeBlockInput): Promise<ApiResponse<TimeBlock, PaginationMeta>>;
101
+ updateTimeBlock(id: string, data: UpdateTimeBlockInput): Promise<ApiResponse<TimeBlock, PaginationMeta>>;
65
102
  deleteTimeBlock(id: string): Promise<ApiResponse<{
66
103
  message: string;
67
- }>>;
68
- getMe(): Promise<ApiResponse<User>>;
69
- updateMe(data: UpdateUserInput): Promise<ApiResponse<User>>;
104
+ }, PaginationMeta>>;
105
+ listCalendarEvents(params: {
106
+ date?: string;
107
+ from?: string;
108
+ to?: string;
109
+ }): Promise<ApiResponse<CalendarEvent[], CalendarEventsMeta>>;
110
+ getMe(): Promise<ApiResponse<User, PaginationMeta>>;
111
+ updateMe(data: UpdateUserInput): Promise<ApiResponse<User, PaginationMeta>>;
70
112
  }
71
113
  export type TaskPriority = "P0" | "P1" | "P2" | "P3";
114
+ export interface IdeaBoard {
115
+ id: string;
116
+ name: string;
117
+ icon: string;
118
+ color: string;
119
+ position: number;
120
+ }
121
+ export interface IdeaColumn {
122
+ id: string;
123
+ boardId: string;
124
+ name: string;
125
+ position: number;
126
+ }
127
+ export interface Idea {
128
+ id: string;
129
+ boardId: string;
130
+ columnId: string;
131
+ title: string;
132
+ notes: string | null;
133
+ estimatedMins: number | null;
134
+ priority: TaskPriority;
135
+ position: number;
136
+ completedAt: string | null;
137
+ promotedTaskId: string | null;
138
+ subtaskCount?: number;
139
+ subtaskDoneCount?: number;
140
+ }
141
+ export interface IdeaSubtask {
142
+ id: string;
143
+ ideaId: string;
144
+ title: string;
145
+ completed: boolean;
146
+ position: number;
147
+ }
148
+ export interface CreateIdeaBoardInput {
149
+ name: string;
150
+ icon?: string;
151
+ color?: string;
152
+ position?: number;
153
+ }
154
+ export interface CreateIdeaColumnInput {
155
+ boardId: string;
156
+ name: string;
157
+ position?: number;
158
+ }
159
+ export interface CreateIdeaInput {
160
+ boardId: string;
161
+ columnId: string;
162
+ title: string;
163
+ notes?: string | null;
164
+ estimatedMins?: number | null;
165
+ priority?: TaskPriority;
166
+ position?: number;
167
+ }
168
+ export interface UpdateIdeaInput {
169
+ title?: string;
170
+ notes?: string | null;
171
+ estimatedMins?: number | null;
172
+ priority?: TaskPriority;
173
+ columnId?: string;
174
+ position?: number;
175
+ completedAt?: string | null;
176
+ }
177
+ export interface CreateIdeaSubtaskInput {
178
+ title: string;
179
+ position?: number;
180
+ }
181
+ export interface UpdateIdeaSubtaskInput {
182
+ title?: string;
183
+ completed?: boolean;
184
+ position?: number;
185
+ }
72
186
  export interface Task {
73
187
  id: string;
74
188
  userId: string;
@@ -76,6 +190,7 @@ export interface Task {
76
190
  notes: string | null;
77
191
  scheduledDate: string | null;
78
192
  estimatedMins: number | null;
193
+ actualMins: number | null;
79
194
  priority: TaskPriority;
80
195
  completedAt: string | null;
81
196
  position: number;
@@ -95,6 +210,7 @@ export interface UpdateTaskInput {
95
210
  notes?: string | null;
96
211
  scheduledDate?: string | null;
97
212
  estimatedMins?: number | null;
213
+ actualMins?: number | null;
98
214
  priority?: TaskPriority;
99
215
  completedAt?: string | null;
100
216
  position?: number;
@@ -153,6 +269,32 @@ export interface UpdateTimeBlockInput {
153
269
  color?: string | null;
154
270
  position?: number;
155
271
  }
272
+ export interface CalendarEvent {
273
+ id: string;
274
+ calendarId: string;
275
+ title: string;
276
+ description: string | null;
277
+ location: string | null;
278
+ /** ISO instant. All-day events start at UTC midnight of their date. */
279
+ startTime: string;
280
+ /** ISO instant. All-day events end at UTC midnight after their last date. */
281
+ endTime: string;
282
+ isAllDay: boolean;
283
+ status: "confirmed" | "tentative" | "cancelled" | null;
284
+ responseStatus: "accepted" | "declined" | "tentative" | "needsAction" | null;
285
+ calendar: {
286
+ id: string;
287
+ name: string;
288
+ color: string | null;
289
+ } | null;
290
+ }
291
+ export interface CalendarEventsMeta {
292
+ total: number;
293
+ /** The user's timezone, which date-only ranges were interpreted in. */
294
+ timezone: string;
295
+ fromDate?: string;
296
+ toDate?: string;
297
+ }
156
298
  export interface User {
157
299
  id: string;
158
300
  email: string;
@@ -1 +1 @@
1
- {"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../../src/lib/api-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../../src/lib/api-client.ts"],"names":[],"mappings":"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"}
@@ -4,10 +4,15 @@
4
4
  */
5
5
  export class ApiClient {
6
6
  baseUrl;
7
- apiKey;
7
+ authHeaders;
8
+ fetchImpl;
8
9
  constructor(config) {
9
10
  this.baseUrl = config.baseUrl.replace(/\/$/, ""); // Remove trailing slash
10
- this.apiKey = config.apiKey;
11
+ this.authHeaders = {
12
+ ...(config.apiKey ? { "X-API-Key": config.apiKey } : {}),
13
+ ...config.headers,
14
+ };
15
+ this.fetchImpl = config.fetch ?? globalThis.fetch;
11
16
  }
12
17
  async request(method, path, body, query) {
13
18
  let url = `${this.baseUrl}${path}`;
@@ -25,7 +30,7 @@ export class ApiClient {
25
30
  }
26
31
  }
27
32
  const headers = {
28
- "X-API-Key": this.apiKey,
33
+ ...this.authHeaders,
29
34
  "Content-Type": "application/json",
30
35
  };
31
36
  const options = {
@@ -36,7 +41,7 @@ export class ApiClient {
36
41
  options.body = JSON.stringify(body);
37
42
  }
38
43
  try {
39
- const response = await fetch(url, options);
44
+ const response = await this.fetchImpl(url, options);
40
45
  const data = await response.json();
41
46
  return data;
42
47
  }
@@ -92,6 +97,70 @@ export class ApiClient {
92
97
  async deleteSubtask(taskId, subtaskId) {
93
98
  return this.request("DELETE", `/tasks/${taskId}/subtasks/${subtaskId}`);
94
99
  }
100
+ // Ideas
101
+ async listIdeaBoards() {
102
+ return this.request("GET", "/ideas/boards");
103
+ }
104
+ async createIdeaBoard(data) {
105
+ return this.request("POST", "/ideas/boards", data);
106
+ }
107
+ async updateIdeaBoard(id, data) {
108
+ return this.request("PATCH", `/ideas/boards/${id}`, data);
109
+ }
110
+ async deleteIdeaBoard(id) {
111
+ return this.request("DELETE", `/ideas/boards/${id}`);
112
+ }
113
+ async reorderIdeaBoards(boardIds) {
114
+ return this.request("POST", "/ideas/boards/reorder", { boardIds });
115
+ }
116
+ async listIdeaColumns(boardId) {
117
+ return this.request("GET", "/ideas/columns", undefined, { boardId });
118
+ }
119
+ async createIdeaColumn(data) {
120
+ return this.request("POST", "/ideas/columns", data);
121
+ }
122
+ async updateIdeaColumn(id, data) {
123
+ return this.request("PATCH", `/ideas/columns/${id}`, data);
124
+ }
125
+ async deleteIdeaColumn(id) {
126
+ return this.request("DELETE", `/ideas/columns/${id}`);
127
+ }
128
+ async reorderIdeaColumns(boardId, columnIds) {
129
+ return this.request("POST", "/ideas/columns/reorder", { boardId, columnIds });
130
+ }
131
+ async listIdeas(filters) {
132
+ return this.request("GET", "/ideas", undefined, filters);
133
+ }
134
+ async createIdea(data) {
135
+ return this.request("POST", "/ideas", data);
136
+ }
137
+ async updateIdea(id, data) {
138
+ return this.request("PATCH", `/ideas/${id}`, data);
139
+ }
140
+ async deleteIdea(id) {
141
+ return this.request("DELETE", `/ideas/${id}`);
142
+ }
143
+ async reorderIdeas(columnId, ideaIds) {
144
+ return this.request("POST", "/ideas/reorder", { columnId, ideaIds });
145
+ }
146
+ async promoteIdea(id, scheduledDate) {
147
+ return this.request("POST", `/ideas/${id}/promote`, { scheduledDate });
148
+ }
149
+ async listIdeaSubtasks(ideaId) {
150
+ return this.request("GET", `/ideas/${ideaId}/subtasks`);
151
+ }
152
+ async createIdeaSubtask(ideaId, data) {
153
+ return this.request("POST", `/ideas/${ideaId}/subtasks`, data);
154
+ }
155
+ async updateIdeaSubtask(ideaId, id, data) {
156
+ return this.request("PATCH", `/ideas/${ideaId}/subtasks/${id}`, data);
157
+ }
158
+ async deleteIdeaSubtask(ideaId, id) {
159
+ return this.request("DELETE", `/ideas/${ideaId}/subtasks/${id}`);
160
+ }
161
+ async reorderIdeaSubtasks(ideaId, subtaskIds) {
162
+ return this.request("POST", `/ideas/${ideaId}/subtasks/reorder`, { subtaskIds });
163
+ }
95
164
  // Time Blocks
96
165
  async listTimeBlocks(params) {
97
166
  return this.request("GET", "/time-blocks", undefined, {
@@ -115,6 +184,14 @@ export class ApiClient {
115
184
  async deleteTimeBlock(id) {
116
185
  return this.request("DELETE", `/time-blocks/${id}`);
117
186
  }
187
+ // Calendar events (synced from Google, Outlook, iCloud; read-only)
188
+ async listCalendarEvents(params) {
189
+ return this.request("GET", "/calendar-events", undefined, {
190
+ date: params.date,
191
+ from: params.from,
192
+ to: params.to,
193
+ });
194
+ }
118
195
  // User
119
196
  async getMe() {
120
197
  return this.request("GET", "/auth/me");
@@ -1 +1 @@
1
- {"version":3,"file":"api-client.js","sourceRoot":"","sources":["../../src/lib/api-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api-client.js","sourceRoot":"","sources":["../../src/lib/api-client.ts"],"names":[],"mappings":"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"}