@yakirmar/mcp-toggl 1.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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import type { EnrichedTimelineEvent, TimelineEvent } from './types.js';
2
+ interface TimelineArgs extends Record<string, unknown> {
3
+ app?: unknown;
4
+ include_events?: unknown;
5
+ limit?: unknown;
6
+ redact_titles?: unknown;
7
+ period?: unknown;
8
+ start_date?: unknown;
9
+ end_date?: unknown;
10
+ }
11
+ export interface TimelineResponse {
12
+ enabled: true;
13
+ total_events: number;
14
+ returned_events: number;
15
+ truncated: boolean;
16
+ total_seconds: number;
17
+ total_hours: number;
18
+ summary: Record<string, number>;
19
+ events?: EnrichedTimelineEvent[];
20
+ }
21
+ export declare function timelineSecondsToHours(seconds: number): number;
22
+ export declare function buildTimelineResponse(allEvents: TimelineEvent[], args: TimelineArgs | undefined, nowSeconds?: number): TimelineResponse;
23
+ export {};
24
+ //# sourceMappingURL=timeline.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timeline.d.ts","sourceRoot":"","sources":["../src/timeline.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAGvE,UAAU,YAAa,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACpD,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,IAAI,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,OAAO,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,MAAM,CAAC,EAAE,qBAAqB,EAAE,CAAC;CAClC;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE9D;AAED,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,aAAa,EAAE,EAC1B,IAAI,EAAE,YAAY,GAAG,SAAS,EAC9B,UAAU,SAAgC,GACzC,gBAAgB,CAsDlB"}
@@ -0,0 +1,55 @@
1
+ import { localDateRangeFromArgs } from './utils.js';
2
+ export function timelineSecondsToHours(seconds) {
3
+ return Math.round((seconds / 3600) * 10000) / 10000;
4
+ }
5
+ export function buildTimelineResponse(allEvents, args, nowSeconds = Math.floor(Date.now() / 1000)) {
6
+ const range = localDateRangeFromArgs(args);
7
+ const startTs = range?.start ? range.start.getTime() / 1000 : null;
8
+ const endTs = range?.end ? range.end.getTime() / 1000 : null;
9
+ const appFilter = typeof args?.app === 'string' ? args.app.toLowerCase() : null;
10
+ const includeEvents = args?.include_events !== false;
11
+ const redactTitles = args?.redact_titles === true;
12
+ const rawLimit = typeof args?.limit === 'number' ? args.limit : 50;
13
+ const limit = Math.max(1, Math.min(Math.floor(rawLimit), 1000));
14
+ const appSummary = new Map();
15
+ const events = [];
16
+ let totalEvents = 0;
17
+ let totalSeconds = 0;
18
+ for (const event of allEvents) {
19
+ const eventEnd = event.end_time ?? nowSeconds;
20
+ if (startTs !== null && eventEnd <= startTs)
21
+ continue;
22
+ if (endTs !== null && event.start_time >= endTs)
23
+ continue;
24
+ const filename = event.filename ?? 'Unknown';
25
+ if (appFilter && !filename.toLowerCase().includes(appFilter))
26
+ continue;
27
+ const clippedStart = startTs !== null ? Math.max(event.start_time, startTs) : event.start_time;
28
+ const clippedEnd = endTs !== null ? Math.min(eventEnd, endTs) : eventEnd;
29
+ const duration = Math.max(0, Math.floor(clippedEnd - clippedStart));
30
+ totalEvents++;
31
+ totalSeconds += duration;
32
+ appSummary.set(filename, (appSummary.get(filename) ?? 0) + duration);
33
+ if (includeEvents && events.length < limit) {
34
+ events.push({
35
+ ...event,
36
+ filename,
37
+ title: redactTitles ? null : event.title,
38
+ start: new Date(clippedStart * 1000).toISOString(),
39
+ end: new Date(clippedEnd * 1000).toISOString(),
40
+ duration_seconds: duration,
41
+ });
42
+ }
43
+ }
44
+ return {
45
+ enabled: true,
46
+ total_events: totalEvents,
47
+ returned_events: events.length,
48
+ truncated: includeEvents && totalEvents > events.length,
49
+ total_seconds: totalSeconds,
50
+ total_hours: timelineSecondsToHours(totalSeconds),
51
+ summary: Object.fromEntries([...appSummary.entries()].sort(([, a], [, b]) => b - a)),
52
+ ...(includeEvents ? { events } : {}),
53
+ };
54
+ }
55
+ //# sourceMappingURL=timeline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timeline.js","sourceRoot":"","sources":["../src/timeline.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAuBpD,MAAM,UAAU,sBAAsB,CAAC,OAAe;IACpD,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,SAA0B,EAC1B,IAA8B,EAC9B,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;IAE1C,MAAM,KAAK,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC;IAC3C,MAAM,OAAO,GAAG,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IACnE,MAAM,KAAK,GAAG,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IAC7D,MAAM,SAAS,GAAG,OAAO,IAAI,EAAE,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAChF,MAAM,aAAa,GAAG,IAAI,EAAE,cAAc,KAAK,KAAK,CAAC;IACrD,MAAM,YAAY,GAAG,IAAI,EAAE,aAAa,KAAK,IAAI,CAAC;IAClD,MAAM,QAAQ,GAAG,OAAO,IAAI,EAAE,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IACnE,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;IAEhE,MAAM,UAAU,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC7C,MAAM,MAAM,GAA4B,EAAE,CAAC;IAC3C,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,IAAI,YAAY,GAAG,CAAC,CAAC;IAErB,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE,CAAC;QAC9B,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,IAAI,UAAU,CAAC;QAE9C,IAAI,OAAO,KAAK,IAAI,IAAI,QAAQ,IAAI,OAAO;YAAE,SAAS;QACtD,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,UAAU,IAAI,KAAK;YAAE,SAAS;QAE1D,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,IAAI,SAAS,CAAC;QAC7C,IAAI,SAAS,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC;YAAE,SAAS;QAEvE,MAAM,YAAY,GAAG,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC;QAC/F,MAAM,UAAU,GAAG,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;QACzE,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,YAAY,CAAC,CAAC,CAAC;QAEpE,WAAW,EAAE,CAAC;QACd,YAAY,IAAI,QAAQ,CAAC;QACzB,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC;QAErE,IAAI,aAAa,IAAI,MAAM,CAAC,MAAM,GAAG,KAAK,EAAE,CAAC;YAC3C,MAAM,CAAC,IAAI,CAAC;gBACV,GAAG,KAAK;gBACR,QAAQ;gBACR,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK;gBACxC,KAAK,EAAE,IAAI,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE;gBAClD,GAAG,EAAE,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE;gBAC9C,gBAAgB,EAAE,QAAQ;aAC3B,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO;QACL,OAAO,EAAE,IAAI;QACb,YAAY,EAAE,WAAW;QACzB,eAAe,EAAE,MAAM,CAAC,MAAM;QAC9B,SAAS,EAAE,aAAa,IAAI,WAAW,GAAG,MAAM,CAAC,MAAM;QACvD,aAAa,EAAE,YAAY;QAC3B,WAAW,EAAE,sBAAsB,CAAC,YAAY,CAAC;QACjD,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACpF,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACrC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,55 @@
1
+ import type { Workspace, Project, Client, Task, User, Tag, TimeEntry, TimeEntriesRequest, CreateTimeEntryRequest, UpdateTimeEntryRequest, TimelineEvent } from './types.js';
2
+ export declare class TimelineNotEnabledError extends Error {
3
+ constructor();
4
+ }
5
+ export declare class TogglAPIError extends Error {
6
+ readonly status: number;
7
+ readonly code: string;
8
+ readonly retry_after_seconds?: number;
9
+ readonly tip?: string;
10
+ readonly noRetry = true;
11
+ constructor({ status, code, message, retryAfterSeconds, tip, }: {
12
+ status: number;
13
+ code: string;
14
+ message: string;
15
+ retryAfterSeconds?: number;
16
+ tip?: string;
17
+ });
18
+ }
19
+ export declare class TogglAPI {
20
+ private baseUrl;
21
+ private timelineBaseUrl;
22
+ private headers;
23
+ constructor(apiKey: string);
24
+ private request;
25
+ getMe(): Promise<User>;
26
+ getUser(_userId: number): Promise<User>;
27
+ getWorkspaces(): Promise<Workspace[]>;
28
+ getWorkspace(workspaceId: number): Promise<Workspace>;
29
+ private static readonly PAGE_SIZE;
30
+ private static readonly MAX_PAGES;
31
+ private requestAllPages;
32
+ getProjects(workspaceId: number): Promise<Project[]>;
33
+ getProject(projectId: number): Promise<Project>;
34
+ getClients(workspaceId: number): Promise<Client[]>;
35
+ getClient(clientId: number): Promise<Client>;
36
+ getTasks(workspaceId: number, projectId: number): Promise<Task[]>;
37
+ getTask(workspaceId: number, projectId: number, taskId: number): Promise<Task>;
38
+ getTags(workspaceId: number): Promise<Tag[]>;
39
+ getTag(workspaceId: number, tagId: number): Promise<Tag>;
40
+ getTimeEntries(params?: TimeEntriesRequest): Promise<TimeEntry[]>;
41
+ getCurrentTimeEntry(): Promise<TimeEntry | null>;
42
+ getTimeEntry(timeEntryId: number): Promise<TimeEntry>;
43
+ createTimeEntry(workspaceId: number, entry: Partial<CreateTimeEntryRequest>): Promise<TimeEntry>;
44
+ updateTimeEntry(workspaceId: number, timeEntryId: number, updates: UpdateTimeEntryRequest): Promise<TimeEntry>;
45
+ deleteTimeEntry(workspaceId: number, timeEntryId: number): Promise<void>;
46
+ startTimer(workspaceId: number, description?: string, projectId?: number, taskId?: number, tags?: string[]): Promise<TimeEntry>;
47
+ stopTimer(workspaceId: number, timeEntryId: number): Promise<TimeEntry>;
48
+ getTimeEntriesForDateRange(startDate: Date, endDate: Date): Promise<TimeEntry[]>;
49
+ getTimeEntriesForToday(): Promise<TimeEntry[]>;
50
+ getTimeEntriesForWeek(weekOffset?: number): Promise<TimeEntry[]>;
51
+ getTimeEntriesForMonth(monthOffset?: number): Promise<TimeEntry[]>;
52
+ getDetailedReport(workspaceId: number, params: any): Promise<any>;
53
+ getTimeline(): Promise<TimelineEvent[]>;
54
+ }
55
+ //# sourceMappingURL=toggl-api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toggl-api.d.ts","sourceRoot":"","sources":["../src/toggl-api.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,402 @@
1
+ import fetch from 'node-fetch';
2
+ import { toLocalYMD } from './utils.js';
3
+ export class TimelineNotEnabledError extends Error {
4
+ constructor() {
5
+ super('Timeline is not enabled');
6
+ this.name = 'TimelineNotEnabledError';
7
+ }
8
+ }
9
+ export class TogglAPIError extends Error {
10
+ status;
11
+ code;
12
+ retry_after_seconds;
13
+ tip;
14
+ noRetry = true;
15
+ constructor({ status, code, message, retryAfterSeconds, tip, }) {
16
+ super(message);
17
+ this.name = 'TogglAPIError';
18
+ this.status = status;
19
+ this.code = code;
20
+ this.retry_after_seconds = retryAfterSeconds;
21
+ this.tip = tip;
22
+ }
23
+ }
24
+ const MAX_AUTO_RETRY_MS = 30_000;
25
+ export class TogglAPI {
26
+ baseUrl = 'https://api.track.toggl.com/api/v9';
27
+ timelineBaseUrl = 'https://track.toggl.com/api/v9';
28
+ headers;
29
+ constructor(apiKey) {
30
+ // Basic auth: API key as username, 'api_token' as password
31
+ const key = apiKey.trim();
32
+ const auth = Buffer.from(`${key}:api_token`).toString('base64');
33
+ this.headers = {
34
+ Authorization: `Basic ${auth}`,
35
+ 'Content-Type': 'application/json',
36
+ 'User-Agent': 'mcp-toggl/1.0.0 (+https://verygoodplugins.com)',
37
+ };
38
+ }
39
+ // Generic API request method
40
+ async request(method, endpoint, body, retries = 3) {
41
+ const url = `${this.baseUrl}${endpoint}`;
42
+ for (let i = 0; i < retries; i++) {
43
+ try {
44
+ const response = await fetch(url, {
45
+ method,
46
+ headers: this.headers,
47
+ body: body ? JSON.stringify(body) : undefined,
48
+ });
49
+ // Handle rate limiting without sleeping for multi-minute quota resets.
50
+ if (response.status === 429) {
51
+ const retryAfterSeconds = parseRetryAfterSeconds(response.headers.get('Retry-After'));
52
+ const delay = retryAfterSeconds !== undefined ? retryAfterSeconds * 1000 : (i + 1) * 2000;
53
+ if (delay <= MAX_AUTO_RETRY_MS && i < retries - 1) {
54
+ // Log to stderr so we don't pollute MCP stdio
55
+ console.error(`Rate limited. Retrying after ${delay}ms...`);
56
+ await new Promise((resolve) => setTimeout(resolve, delay));
57
+ continue;
58
+ }
59
+ throw new TogglAPIError({
60
+ status: response.status,
61
+ code: 'RATE_LIMITED',
62
+ message: 'Toggl API rate limit reached.',
63
+ retryAfterSeconds,
64
+ tip: 'Retry after the indicated delay, or use cached/list summary tools to reduce repeated Toggl API calls.',
65
+ });
66
+ }
67
+ if (!response.ok) {
68
+ const text = await response.text();
69
+ if (response.status === 402) {
70
+ const retryAfterSeconds = parseQuotaResetSeconds(text);
71
+ throw new TogglAPIError({
72
+ status: response.status,
73
+ code: 'TOGGL_QUOTA_LIMIT',
74
+ message: `Toggl API quota limit reached.${retryAfterSeconds !== undefined ? ` Quota resets in ${retryAfterSeconds} seconds.` : ''}`,
75
+ retryAfterSeconds,
76
+ tip: 'Wait for the Toggl quota window to reset. Cache-backed list tools avoid repeated project/client fetches after they are warmed.',
77
+ });
78
+ }
79
+ const isAuth = response.status === 401 || response.status === 403;
80
+ const message = isAuth
81
+ ? `Authentication failed (${response.status}). ` +
82
+ `Verify TOGGL_API_KEY is correct, has no leading/trailing spaces, and is the Toggl Track API token. ` +
83
+ `Server response: ${text}`
84
+ : `Toggl API error (${response.status}): ${text}`;
85
+ const err = new Error(message);
86
+ // 4xx client errors won't succeed on retry (incl. 401/403); 5xx and network errors do retry.
87
+ if (response.status >= 400 && response.status < 500) {
88
+ Object.assign(err, { noRetry: true });
89
+ }
90
+ throw err;
91
+ }
92
+ // Handle 204 No Content
93
+ if (response.status === 204) {
94
+ return {};
95
+ }
96
+ return (await response.json());
97
+ }
98
+ catch (error) {
99
+ if (error?.noRetry || i === retries - 1)
100
+ throw error;
101
+ // Exponential backoff for transient/network errors
102
+ await new Promise((resolve) => setTimeout(resolve, (i + 1) * 1000));
103
+ }
104
+ }
105
+ throw new Error('Max retries reached');
106
+ }
107
+ // User methods
108
+ async getMe() {
109
+ return this.request('GET', '/me');
110
+ }
111
+ async getUser(_userId) {
112
+ // Note: This might require admin permissions
113
+ return this.request('GET', `/me`);
114
+ }
115
+ // Workspace methods
116
+ async getWorkspaces() {
117
+ return this.request('GET', '/workspaces');
118
+ }
119
+ async getWorkspace(workspaceId) {
120
+ return this.request('GET', `/workspaces/${workspaceId}`);
121
+ }
122
+ // Toggl v9 list endpoints paginate by `page`/`per_page` (1-indexed, sorted by name).
123
+ // Without explicit pagination the API returns only the first page and silently drops
124
+ // the tail, so any project/client past it fails to resolve and shows as "Project <id>".
125
+ static PAGE_SIZE = 200;
126
+ static MAX_PAGES = 100;
127
+ async requestAllPages(endpoint) {
128
+ const sep = endpoint.includes('?') ? '&' : '?';
129
+ const all = [];
130
+ let prevFirstId;
131
+ for (let page = 1; page <= TogglAPI.MAX_PAGES; page++) {
132
+ const batch = await this.request('GET', `${endpoint}${sep}per_page=${TogglAPI.PAGE_SIZE}&page=${page}`);
133
+ if (!Array.isArray(batch) || batch.length === 0)
134
+ break;
135
+ // Guard against endpoints that ignore `page` and keep returning the same window,
136
+ // which would otherwise loop until MAX_PAGES.
137
+ const firstId = batch[0]?.id;
138
+ if (page > 1 && firstId !== undefined && firstId === prevFirstId)
139
+ break;
140
+ prevFirstId = firstId;
141
+ all.push(...batch);
142
+ if (batch.length < TogglAPI.PAGE_SIZE)
143
+ break;
144
+ }
145
+ return all;
146
+ }
147
+ // Project methods
148
+ async getProjects(workspaceId) {
149
+ return this.requestAllPages(`/workspaces/${workspaceId}/projects`);
150
+ }
151
+ async getProject(projectId) {
152
+ // First, we need to find which workspace this project belongs to
153
+ // This is a limitation of Toggl API v9 - no direct project endpoint
154
+ const workspaces = await this.getWorkspaces();
155
+ for (const workspace of workspaces) {
156
+ const projects = await this.getProjects(workspace.id);
157
+ const project = projects.find((p) => p.id === projectId);
158
+ if (project)
159
+ return project;
160
+ }
161
+ throw new Error(`Project ${projectId} not found`);
162
+ }
163
+ // Client methods
164
+ async getClients(workspaceId) {
165
+ return this.requestAllPages(`/workspaces/${workspaceId}/clients`);
166
+ }
167
+ async getClient(clientId) {
168
+ // Similar to projects, need to find workspace first
169
+ const workspaces = await this.getWorkspaces();
170
+ for (const workspace of workspaces) {
171
+ try {
172
+ const clients = await this.getClients(workspace.id);
173
+ const client = clients.find((c) => c.id === clientId);
174
+ if (client)
175
+ return client;
176
+ }
177
+ catch (_error) {
178
+ // Workspace might not have clients
179
+ continue;
180
+ }
181
+ }
182
+ throw new Error(`Client ${clientId} not found`);
183
+ }
184
+ // Task methods
185
+ async getTasks(workspaceId, projectId) {
186
+ return this.request('GET', `/workspaces/${workspaceId}/projects/${projectId}/tasks`);
187
+ }
188
+ async getTask(workspaceId, projectId, taskId) {
189
+ return this.request('GET', `/workspaces/${workspaceId}/projects/${projectId}/tasks/${taskId}`);
190
+ }
191
+ // Tag methods
192
+ async getTags(workspaceId) {
193
+ return this.request('GET', `/workspaces/${workspaceId}/tags`);
194
+ }
195
+ async getTag(workspaceId, tagId) {
196
+ return this.request('GET', `/workspaces/${workspaceId}/tags/${tagId}`);
197
+ }
198
+ // Time entry methods
199
+ async getTimeEntries(params) {
200
+ let endpoint = '/me/time_entries';
201
+ if (params) {
202
+ const queryParams = new URLSearchParams();
203
+ if (params.start_date)
204
+ queryParams.append('start_date', params.start_date);
205
+ if (params.end_date)
206
+ queryParams.append('end_date', params.end_date);
207
+ if (params.since)
208
+ queryParams.append('since', params.since.toString());
209
+ if (params.before)
210
+ queryParams.append('before', params.before.toString());
211
+ if (params.meta !== undefined)
212
+ queryParams.append('meta', params.meta.toString());
213
+ const query = queryParams.toString();
214
+ if (query)
215
+ endpoint += `?${query}`;
216
+ }
217
+ return this.request('GET', endpoint);
218
+ }
219
+ async getCurrentTimeEntry() {
220
+ const result = await this.request('GET', '/me/time_entries/current');
221
+ return result;
222
+ }
223
+ async getTimeEntry(timeEntryId) {
224
+ return this.request('GET', `/me/time_entries/${timeEntryId}`);
225
+ }
226
+ async createTimeEntry(workspaceId, entry) {
227
+ const payload = {
228
+ workspace_id: workspaceId,
229
+ created_with: 'mcp-toggl',
230
+ start: entry.start || new Date().toISOString(),
231
+ ...entry,
232
+ };
233
+ return this.request('POST', `/workspaces/${workspaceId}/time_entries`, payload);
234
+ }
235
+ async updateTimeEntry(workspaceId, timeEntryId, updates) {
236
+ return this.request('PUT', `/workspaces/${workspaceId}/time_entries/${timeEntryId}`, updates);
237
+ }
238
+ async deleteTimeEntry(workspaceId, timeEntryId) {
239
+ await this.request('DELETE', `/workspaces/${workspaceId}/time_entries/${timeEntryId}`);
240
+ }
241
+ async startTimer(workspaceId, description, projectId, taskId, tags) {
242
+ const entry = {
243
+ description,
244
+ project_id: projectId,
245
+ task_id: taskId,
246
+ tags,
247
+ start: new Date().toISOString(),
248
+ duration: -1, // Negative duration indicates running timer
249
+ };
250
+ return this.createTimeEntry(workspaceId, entry);
251
+ }
252
+ async stopTimer(workspaceId, timeEntryId) {
253
+ const now = new Date().toISOString();
254
+ return this.updateTimeEntry(workspaceId, timeEntryId, { stop: now });
255
+ }
256
+ // Bulk operations for efficiency. endDate is exclusive per Toggl Track v9.
257
+ async getTimeEntriesForDateRange(startDate, endDate) {
258
+ const params = {
259
+ start_date: toLocalYMD(startDate),
260
+ end_date: toLocalYMD(endDate),
261
+ };
262
+ return this.getTimeEntries(params);
263
+ }
264
+ async getTimeEntriesForToday() {
265
+ const today = new Date();
266
+ today.setHours(0, 0, 0, 0);
267
+ const tomorrow = new Date(today);
268
+ tomorrow.setDate(tomorrow.getDate() + 1);
269
+ return this.getTimeEntriesForDateRange(today, tomorrow);
270
+ }
271
+ async getTimeEntriesForWeek(weekOffset = 0) {
272
+ const today = new Date();
273
+ today.setHours(0, 0, 0, 0);
274
+ const dayOfWeek = today.getDay();
275
+ const diff = today.getDate() - dayOfWeek + (dayOfWeek === 0 ? -6 : 1); // Adjust for Sunday
276
+ const monday = new Date(today);
277
+ monday.setDate(diff + weekOffset * 7);
278
+ const nextMonday = new Date(monday);
279
+ nextMonday.setDate(nextMonday.getDate() + 7);
280
+ return this.getTimeEntriesForDateRange(monday, nextMonday);
281
+ }
282
+ async getTimeEntriesForMonth(monthOffset = 0) {
283
+ const today = new Date();
284
+ const year = today.getFullYear();
285
+ const month = today.getMonth() + monthOffset;
286
+ const firstDay = new Date(year, month, 1);
287
+ const firstDayNextMonth = new Date(year, month + 1, 1);
288
+ return this.getTimeEntriesForDateRange(firstDay, firstDayNextMonth);
289
+ }
290
+ // Reports API endpoints (if needed)
291
+ async getDetailedReport(workspaceId, params) {
292
+ // This would use the Reports API v3 if needed
293
+ // https://api.track.toggl.com/reports/api/v3/workspace/{workspace_id}/search/time_entries
294
+ const reportsUrl = `https://api.track.toggl.com/reports/api/v3/workspace/${workspaceId}/search/time_entries`;
295
+ const response = await fetch(reportsUrl, {
296
+ method: 'POST',
297
+ headers: this.headers,
298
+ body: JSON.stringify(params),
299
+ });
300
+ if (!response.ok) {
301
+ throw new Error(`Reports API error: ${response.status}`);
302
+ }
303
+ return response.json();
304
+ }
305
+ async getTimeline() {
306
+ const url = `${this.timelineBaseUrl}/timeline`;
307
+ const maxRetries = 3;
308
+ for (let attempt = 0; attempt < maxRetries; attempt++) {
309
+ try {
310
+ const response = await fetch(url, {
311
+ method: 'GET',
312
+ headers: this.headers,
313
+ });
314
+ if (response.status === 429) {
315
+ const retryAfterSeconds = parseRetryAfterSeconds(response.headers.get('Retry-After'));
316
+ const delay = retryAfterSeconds !== undefined ? retryAfterSeconds * 1000 : (attempt + 1) * 2000;
317
+ if (delay <= MAX_AUTO_RETRY_MS && attempt < maxRetries - 1) {
318
+ console.error(`Timeline rate limited. Retrying after ${delay}ms...`);
319
+ await new Promise((resolve) => setTimeout(resolve, delay));
320
+ continue;
321
+ }
322
+ throw new TogglAPIError({
323
+ status: response.status,
324
+ code: 'RATE_LIMITED',
325
+ message: 'Toggl timeline API rate limit reached.',
326
+ retryAfterSeconds,
327
+ tip: 'Retry after the indicated delay. For Claude Desktop charts, request summary-only timeline output with include_events: false.',
328
+ });
329
+ }
330
+ const text = await response.text();
331
+ if (!response.ok) {
332
+ if (response.status === 400 && parseTimelineError(text) === 'Timeline is not enabled') {
333
+ throw new TimelineNotEnabledError();
334
+ }
335
+ const isAuth = response.status === 401 || response.status === 403;
336
+ const message = isAuth
337
+ ? `Timeline authentication failed (${response.status}). Verify TOGGL_API_KEY is correct. Server response: ${text}`
338
+ : `Timeline API error (${response.status}): ${text}`;
339
+ const err = new Error(message);
340
+ if (response.status >= 400 && response.status < 500) {
341
+ Object.assign(err, { noRetry: true });
342
+ }
343
+ throw err;
344
+ }
345
+ const data = JSON.parse(text);
346
+ if (!Array.isArray(data)) {
347
+ throw new Error('Timeline API returned invalid response format');
348
+ }
349
+ return data.filter(isTimelineEvent);
350
+ }
351
+ catch (error) {
352
+ if (error instanceof TimelineNotEnabledError ||
353
+ error?.noRetry ||
354
+ attempt === maxRetries - 1) {
355
+ throw error;
356
+ }
357
+ await new Promise((resolve) => setTimeout(resolve, (attempt + 1) * 1000));
358
+ }
359
+ }
360
+ throw new Error('Max retries reached for timeline');
361
+ }
362
+ }
363
+ function parseTimelineError(text) {
364
+ try {
365
+ const parsed = JSON.parse(text);
366
+ return typeof parsed === 'string' ? parsed : text;
367
+ }
368
+ catch (_error) {
369
+ return text;
370
+ }
371
+ }
372
+ function parseRetryAfterSeconds(value) {
373
+ if (!value)
374
+ return undefined;
375
+ const deltaSeconds = Number.parseInt(value, 10);
376
+ if (Number.isFinite(deltaSeconds))
377
+ return Math.max(0, deltaSeconds);
378
+ const dateMs = Date.parse(value);
379
+ if (!Number.isFinite(dateMs))
380
+ return undefined;
381
+ return Math.max(0, Math.ceil((dateMs - Date.now()) / 1000));
382
+ }
383
+ function parseQuotaResetSeconds(text) {
384
+ const match = /quota will reset in (\d+) seconds/i.exec(text);
385
+ if (!match)
386
+ return undefined;
387
+ const seconds = Number.parseInt(match[1], 10);
388
+ return Number.isFinite(seconds) ? seconds : undefined;
389
+ }
390
+ function isTimelineEvent(value) {
391
+ if (typeof value !== 'object' || value === null)
392
+ return false;
393
+ const event = value;
394
+ return (typeof event.id === 'number' &&
395
+ typeof event.start_time === 'number' &&
396
+ (typeof event.end_time === 'number' || event.end_time === null) &&
397
+ typeof event.desktop_id === 'string' &&
398
+ typeof event.idle === 'boolean' &&
399
+ (typeof event.filename === 'string' || event.filename === null) &&
400
+ (typeof event.title === 'string' || event.title === null));
401
+ }
402
+ //# sourceMappingURL=toggl-api.js.map