@togglhq/mcp 1.11.65 → 1.11.67
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 +1 -1
- package/build/cli.js +2 -2
- package/build/index.js +1 -1
- package/build/{src-fcnXquo_.js → src-C45SLn6O.js} +259 -413
- package/package.json +1 -1
- package/skills/toggl-mcp/SKILL.md +1 -1
package/README.md
CHANGED
|
@@ -76,7 +76,7 @@ claude mcp add toggl-focus \
|
|
|
76
76
|
|
|
77
77
|
### Entity tools
|
|
78
78
|
|
|
79
|
-
One tool per domain (for example `tasks`, `projects`, `time-
|
|
79
|
+
One tool per domain (for example `tasks`, `projects`, `time-entries`, `organization`). Each tool accepts:
|
|
80
80
|
|
|
81
81
|
- **`action`** (required)
|
|
82
82
|
- **`data`** (optional)
|
package/build/cli.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { a as initProductAnalytics, c as shutdownProductAnalytics, i as getProductAnalyticsDistinctId, n as runMcpCli, o as redactUnsafeSentryMessages, r as captureToolInvocation, s as resolveProductAnalyticsDistinctId } from "./src-
|
|
2
|
+
import { a as initProductAnalytics, c as shutdownProductAnalytics, i as getProductAnalyticsDistinctId, n as runMcpCli, o as redactUnsafeSentryMessages, r as captureToolInvocation, s as resolveProductAnalyticsDistinctId } from "./src-C45SLn6O.js";
|
|
3
3
|
import * as Sentry from "@sentry/node";
|
|
4
4
|
//#region src/analytics-tool-metadata.ts
|
|
5
5
|
/**
|
|
@@ -165,7 +165,7 @@ function wrapServerWithProductAnalytics(server) {
|
|
|
165
165
|
}
|
|
166
166
|
//#endregion
|
|
167
167
|
//#region src/cli.ts
|
|
168
|
-
const packageVersion = "1.11.
|
|
168
|
+
const packageVersion = "1.11.67";
|
|
169
169
|
let sentryEnabled = false;
|
|
170
170
|
let productAnalyticsEnabled = false;
|
|
171
171
|
runMcpCli({
|
package/build/index.js
CHANGED
|
@@ -34975,29 +34975,7 @@ const ProjectSchema = /* @__PURE__ */ object({
|
|
|
34975
34975
|
start_date: /* @__PURE__ */ optional(/* @__PURE__ */ pipe(/* @__PURE__ */ string(), /* @__PURE__ */ isoDate())),
|
|
34976
34976
|
updated_at: /* @__PURE__ */ optional(/* @__PURE__ */ pipe(/* @__PURE__ */ string(), /* @__PURE__ */ isoDateTime()))
|
|
34977
34977
|
});
|
|
34978
|
-
const TimeBlockPayloadSchema = /* @__PURE__ */ object({
|
|
34979
|
-
start: /* @__PURE__ */ string(),
|
|
34980
|
-
completed: /* @__PURE__ */ optional(/* @__PURE__ */ boolean()),
|
|
34981
|
-
duration: /* @__PURE__ */ optional(/* @__PURE__ */ pipe(/* @__PURE__ */ number(), /* @__PURE__ */ minValue(0))),
|
|
34982
|
-
outbound_sync: /* @__PURE__ */ optional(/* @__PURE__ */ boolean())
|
|
34983
|
-
});
|
|
34984
34978
|
const TimeEntryTypeSchema = /* @__PURE__ */ picklist(["activity", "break"]);
|
|
34985
|
-
const TimeBlockSchema = /* @__PURE__ */ object({
|
|
34986
|
-
created_at: /* @__PURE__ */ pipe(/* @__PURE__ */ string(), /* @__PURE__ */ isoDateTime()),
|
|
34987
|
-
id: /* @__PURE__ */ number(),
|
|
34988
|
-
start: /* @__PURE__ */ pipe(/* @__PURE__ */ string(), /* @__PURE__ */ isoDateTime()),
|
|
34989
|
-
task_id: /* @__PURE__ */ number(),
|
|
34990
|
-
toggl_user_id: /* @__PURE__ */ number(),
|
|
34991
|
-
workspace_id: /* @__PURE__ */ number(),
|
|
34992
|
-
archived_at: /* @__PURE__ */ optional(/* @__PURE__ */ pipe(/* @__PURE__ */ string(), /* @__PURE__ */ isoDateTime())),
|
|
34993
|
-
calendar_event_id: /* @__PURE__ */ optional(/* @__PURE__ */ number()),
|
|
34994
|
-
completed_at: /* @__PURE__ */ optional(/* @__PURE__ */ pipe(/* @__PURE__ */ string(), /* @__PURE__ */ isoDateTime())),
|
|
34995
|
-
deleted_at: /* @__PURE__ */ optional(/* @__PURE__ */ pipe(/* @__PURE__ */ string(), /* @__PURE__ */ isoDateTime())),
|
|
34996
|
-
description: /* @__PURE__ */ optional(/* @__PURE__ */ string()),
|
|
34997
|
-
duration: /* @__PURE__ */ optional(/* @__PURE__ */ number()),
|
|
34998
|
-
timezone: /* @__PURE__ */ optional(/* @__PURE__ */ pipe(/* @__PURE__ */ string(), /* @__PURE__ */ description("Timezone is the creator's IANA timezone snapshotted at creation; NULL when unresolved."))),
|
|
34999
|
-
updated_at: /* @__PURE__ */ optional(/* @__PURE__ */ pipe(/* @__PURE__ */ string(), /* @__PURE__ */ isoDateTime()))
|
|
35000
|
-
});
|
|
35001
34979
|
const BillableSourceSchema = /* @__PURE__ */ picklist(["manual", "task_default"]);
|
|
35002
34980
|
const TimeEntrySchema = /* @__PURE__ */ object({
|
|
35003
34981
|
created_at: /* @__PURE__ */ pipe(/* @__PURE__ */ string(), /* @__PURE__ */ isoDateTime()),
|
|
@@ -35128,28 +35106,6 @@ const PaginatedStatussSchema = /* @__PURE__ */ object({
|
|
|
35128
35106
|
page: /* @__PURE__ */ number(),
|
|
35129
35107
|
per_page: /* @__PURE__ */ number()
|
|
35130
35108
|
});
|
|
35131
|
-
const PaginatedTimeBlockAggregateWithTasksSchema = /* @__PURE__ */ object({
|
|
35132
|
-
data: /* @__PURE__ */ array(/* @__PURE__ */ object({
|
|
35133
|
-
created_at: /* @__PURE__ */ pipe(/* @__PURE__ */ string(), /* @__PURE__ */ isoDateTime()),
|
|
35134
|
-
has_time_entry: /* @__PURE__ */ boolean(),
|
|
35135
|
-
id: /* @__PURE__ */ number(),
|
|
35136
|
-
start: /* @__PURE__ */ pipe(/* @__PURE__ */ string(), /* @__PURE__ */ isoDateTime()),
|
|
35137
|
-
task_id: /* @__PURE__ */ number(),
|
|
35138
|
-
toggl_user_id: /* @__PURE__ */ number(),
|
|
35139
|
-
workspace_id: /* @__PURE__ */ number(),
|
|
35140
|
-
archived_at: /* @__PURE__ */ optional(/* @__PURE__ */ pipe(/* @__PURE__ */ string(), /* @__PURE__ */ isoDateTime())),
|
|
35141
|
-
calendar_event_id: /* @__PURE__ */ optional(/* @__PURE__ */ number()),
|
|
35142
|
-
completed_at: /* @__PURE__ */ optional(/* @__PURE__ */ pipe(/* @__PURE__ */ string(), /* @__PURE__ */ isoDateTime())),
|
|
35143
|
-
deleted_at: /* @__PURE__ */ optional(/* @__PURE__ */ pipe(/* @__PURE__ */ string(), /* @__PURE__ */ isoDateTime())),
|
|
35144
|
-
description: /* @__PURE__ */ optional(/* @__PURE__ */ string()),
|
|
35145
|
-
duration: /* @__PURE__ */ optional(/* @__PURE__ */ number()),
|
|
35146
|
-
task: /* @__PURE__ */ optional(TaskSchema),
|
|
35147
|
-
timezone: /* @__PURE__ */ optional(/* @__PURE__ */ pipe(/* @__PURE__ */ string(), /* @__PURE__ */ description("Timezone is the creator's IANA timezone snapshotted at creation; NULL when unresolved."))),
|
|
35148
|
-
updated_at: /* @__PURE__ */ optional(/* @__PURE__ */ pipe(/* @__PURE__ */ string(), /* @__PURE__ */ isoDateTime()))
|
|
35149
|
-
})),
|
|
35150
|
-
page: /* @__PURE__ */ number(),
|
|
35151
|
-
per_page: /* @__PURE__ */ number()
|
|
35152
|
-
});
|
|
35153
35109
|
const PaginatedTimeEntryWithTasksSchema = /* @__PURE__ */ object({
|
|
35154
35110
|
data: /* @__PURE__ */ array(/* @__PURE__ */ object({
|
|
35155
35111
|
created_at: /* @__PURE__ */ pipe(/* @__PURE__ */ string(), /* @__PURE__ */ isoDateTime()),
|
|
@@ -35449,28 +35405,6 @@ const TaskPartialUpdatePayloadWithIDSchema = /* @__PURE__ */ object({
|
|
|
35449
35405
|
tag_ids: /* @__PURE__ */ optional(/* @__PURE__ */ nullable(/* @__PURE__ */ array(/* @__PURE__ */ number()))),
|
|
35450
35406
|
team_assignee_ids: /* @__PURE__ */ optional(/* @__PURE__ */ nullable(/* @__PURE__ */ array(/* @__PURE__ */ number())))
|
|
35451
35407
|
});
|
|
35452
|
-
const TimeBlockBulkCreatePayloadSchema = /* @__PURE__ */ object({ time_blocks: /* @__PURE__ */ pipe(/* @__PURE__ */ array(/* @__PURE__ */ object({
|
|
35453
|
-
start: /* @__PURE__ */ string(),
|
|
35454
|
-
task_id: /* @__PURE__ */ number(),
|
|
35455
|
-
completed: /* @__PURE__ */ optional(/* @__PURE__ */ boolean()),
|
|
35456
|
-
duration: /* @__PURE__ */ optional(/* @__PURE__ */ pipe(/* @__PURE__ */ number(), /* @__PURE__ */ minValue(0))),
|
|
35457
|
-
outbound_sync: /* @__PURE__ */ optional(/* @__PURE__ */ boolean())
|
|
35458
|
-
})), /* @__PURE__ */ minLength(1)) });
|
|
35459
|
-
const TimeBlockPartialUpdatePayloadSchema = /* @__PURE__ */ object({
|
|
35460
|
-
completed: /* @__PURE__ */ optional(/* @__PURE__ */ boolean()),
|
|
35461
|
-
duration: /* @__PURE__ */ optional(/* @__PURE__ */ pipe(/* @__PURE__ */ number(), /* @__PURE__ */ minValue(0))),
|
|
35462
|
-
outbound_sync: /* @__PURE__ */ optional(/* @__PURE__ */ boolean()),
|
|
35463
|
-
start: /* @__PURE__ */ optional(/* @__PURE__ */ pipe(/* @__PURE__ */ string(), /* @__PURE__ */ isoDateTime())),
|
|
35464
|
-
task_id: /* @__PURE__ */ optional(/* @__PURE__ */ number())
|
|
35465
|
-
});
|
|
35466
|
-
const TimeBlockPartialUpdatePayloadWithIDSchema = /* @__PURE__ */ object({
|
|
35467
|
-
id: /* @__PURE__ */ number(),
|
|
35468
|
-
completed: /* @__PURE__ */ optional(/* @__PURE__ */ boolean()),
|
|
35469
|
-
duration: /* @__PURE__ */ optional(/* @__PURE__ */ pipe(/* @__PURE__ */ number(), /* @__PURE__ */ minValue(0))),
|
|
35470
|
-
outbound_sync: /* @__PURE__ */ optional(/* @__PURE__ */ boolean()),
|
|
35471
|
-
start: /* @__PURE__ */ optional(/* @__PURE__ */ pipe(/* @__PURE__ */ string(), /* @__PURE__ */ isoDateTime())),
|
|
35472
|
-
task_id: /* @__PURE__ */ optional(/* @__PURE__ */ number())
|
|
35473
|
-
});
|
|
35474
35408
|
const TimeEntryBulkCreatePayloadSchema = /* @__PURE__ */ object({
|
|
35475
35409
|
type: /* @__PURE__ */ pipe(TimeEntryTypeSchema, /* @__PURE__ */ description("The type of time entry. This could either be an activity, or a break.")),
|
|
35476
35410
|
billable: /* @__PURE__ */ optional(/* @__PURE__ */ boolean()),
|
|
@@ -38042,104 +37976,6 @@ async function unarchiveTask(httpClient, organization_id, workspace_id, task_id,
|
|
|
38042
37976
|
return await httpClient.post(`organizations/${organization_id}/workspaces/${workspace_id}/tasks/${task_id}/unarchive`, { signal }).json();
|
|
38043
37977
|
}
|
|
38044
37978
|
//#endregion
|
|
38045
|
-
//#region ../focus-queries/dist/time-blocks/requests.ts
|
|
38046
|
-
async function getTaskTimeBlocksWithOrgClassic(httpClient, organization_id, workspace_id, task_id, { page, per_page, order_by, archived } = {}, signal) {
|
|
38047
|
-
return await httpClient.get(`organizations/${organization_id}/workspaces/${workspace_id}/tasks/${task_id}/time-blocks`, {
|
|
38048
|
-
signal,
|
|
38049
|
-
searchParams: buildSearchParams$2({
|
|
38050
|
-
page,
|
|
38051
|
-
per_page,
|
|
38052
|
-
order_by,
|
|
38053
|
-
archived
|
|
38054
|
-
})
|
|
38055
|
-
}).json();
|
|
38056
|
-
}
|
|
38057
|
-
async function createTimeBlockWithOrg(httpClient, organization_id, workspace_id, task_id, data, signal) {
|
|
38058
|
-
return await httpClient.post(`organizations/${organization_id}/workspaces/${workspace_id}/tasks/${task_id}/time-blocks`, {
|
|
38059
|
-
signal,
|
|
38060
|
-
json: data
|
|
38061
|
-
}).json();
|
|
38062
|
-
}
|
|
38063
|
-
async function getTimeBlockWithOrg(httpClient, organization_id, workspace_id, task_id, time_block_id, signal) {
|
|
38064
|
-
return await httpClient.get(`organizations/${organization_id}/workspaces/${workspace_id}/tasks/${task_id}/time-blocks/${time_block_id}`, { signal }).json();
|
|
38065
|
-
}
|
|
38066
|
-
async function updateTimeBlockWithOrg(httpClient, organization_id, workspace_id, task_id, time_block_id, data, signal) {
|
|
38067
|
-
return await httpClient.put(`organizations/${organization_id}/workspaces/${workspace_id}/tasks/${task_id}/time-blocks/${time_block_id}`, {
|
|
38068
|
-
signal,
|
|
38069
|
-
json: data
|
|
38070
|
-
}).json();
|
|
38071
|
-
}
|
|
38072
|
-
async function deleteTimeBlockWithOrg(httpClient, organization_id, workspace_id, task_id, time_block_id, outbound_sync, signal) {
|
|
38073
|
-
return await httpClient.delete(`organizations/${organization_id}/workspaces/${workspace_id}/tasks/${task_id}/time-blocks/${time_block_id}`, {
|
|
38074
|
-
signal,
|
|
38075
|
-
searchParams: buildSearchParams$2({ outbound_sync })
|
|
38076
|
-
}).json();
|
|
38077
|
-
}
|
|
38078
|
-
async function partialUpdateTimeBlockWithOrg(httpClient, organization_id, workspace_id, task_id, time_block_id, data, signal) {
|
|
38079
|
-
return await httpClient.patch(`organizations/${organization_id}/workspaces/${workspace_id}/tasks/${task_id}/time-blocks/${time_block_id}`, {
|
|
38080
|
-
signal,
|
|
38081
|
-
json: data
|
|
38082
|
-
}).json();
|
|
38083
|
-
}
|
|
38084
|
-
async function archiveTimeBlockWithOrg(httpClient, organization_id, workspace_id, task_id, time_block_id, signal) {
|
|
38085
|
-
return await httpClient.post(`organizations/${organization_id}/workspaces/${workspace_id}/tasks/${task_id}/time-blocks/${time_block_id}/archive`, { signal }).json();
|
|
38086
|
-
}
|
|
38087
|
-
async function restoreTimeBlockWithOrg(httpClient, organization_id, workspace_id, task_id, time_block_id, signal) {
|
|
38088
|
-
return await httpClient.patch(`organizations/${organization_id}/workspaces/${workspace_id}/tasks/${task_id}/time-blocks/${time_block_id}/restore`, { signal }).json();
|
|
38089
|
-
}
|
|
38090
|
-
async function unarchiveTimeBlockWithOrg(httpClient, organization_id, workspace_id, task_id, time_block_id, signal) {
|
|
38091
|
-
return await httpClient.post(`organizations/${organization_id}/workspaces/${workspace_id}/tasks/${task_id}/time-blocks/${time_block_id}/unarchive`, { signal }).json();
|
|
38092
|
-
}
|
|
38093
|
-
async function getTimeBlocksRangeWithOrgClassic(httpClient, organization_id, workspace_id, { date_from, date_to, task_id, status_id, page, per_page, archived, order_by }, signal) {
|
|
38094
|
-
return await httpClient.get(`organizations/${organization_id}/workspaces/${workspace_id}/time-blocks`, {
|
|
38095
|
-
signal,
|
|
38096
|
-
searchParams: buildSearchParams$2({
|
|
38097
|
-
date_from,
|
|
38098
|
-
date_to,
|
|
38099
|
-
task_id,
|
|
38100
|
-
status_id,
|
|
38101
|
-
page,
|
|
38102
|
-
per_page,
|
|
38103
|
-
archived,
|
|
38104
|
-
order_by
|
|
38105
|
-
})
|
|
38106
|
-
}).json();
|
|
38107
|
-
}
|
|
38108
|
-
async function bulkCreateTimeBlockWithOrg(httpClient, organization_id, workspace_id, data, signal) {
|
|
38109
|
-
return await httpClient.post(`organizations/${organization_id}/workspaces/${workspace_id}/time-blocks/bulk`, {
|
|
38110
|
-
signal,
|
|
38111
|
-
json: data
|
|
38112
|
-
}).json();
|
|
38113
|
-
}
|
|
38114
|
-
async function bulkDeleteTimeBlockWithOrg(httpClient, organization_id, workspace_id, ids, outbound_sync, signal) {
|
|
38115
|
-
return await httpClient.delete(`organizations/${organization_id}/workspaces/${workspace_id}/time-blocks/bulk`, {
|
|
38116
|
-
signal,
|
|
38117
|
-
searchParams: buildSearchParams$2({
|
|
38118
|
-
ids,
|
|
38119
|
-
outbound_sync
|
|
38120
|
-
})
|
|
38121
|
-
}).json();
|
|
38122
|
-
}
|
|
38123
|
-
async function bulkPartialUpdateTimeBlockWithOrg(httpClient, organization_id, workspace_id, data, signal) {
|
|
38124
|
-
return await httpClient.patch(`organizations/${organization_id}/workspaces/${workspace_id}/time-blocks/bulk`, {
|
|
38125
|
-
signal,
|
|
38126
|
-
json: data
|
|
38127
|
-
}).json();
|
|
38128
|
-
}
|
|
38129
|
-
async function getTimeBlocksRangeStreamWithOrg(httpClient, organization_id, workspace_id, { date_from, date_to, task_id, status_id, archived, order_by }, signal) {
|
|
38130
|
-
return await httpClient.get(`organizations/${organization_id}/workspaces/${workspace_id}/time-blocks/stream`, {
|
|
38131
|
-
signal,
|
|
38132
|
-
searchParams: buildSearchParams$2({
|
|
38133
|
-
date_from,
|
|
38134
|
-
date_to,
|
|
38135
|
-
task_id,
|
|
38136
|
-
status_id,
|
|
38137
|
-
archived,
|
|
38138
|
-
order_by
|
|
38139
|
-
})
|
|
38140
|
-
}).json();
|
|
38141
|
-
}
|
|
38142
|
-
//#endregion
|
|
38143
37979
|
//#region ../focus-queries/dist/time-entries/requests.ts
|
|
38144
37980
|
async function getTaskTimeEntriesWithOrgClassic(httpClient, organization_id, workspace_id, task_id, { page, per_page, order_by, type, archived, time_block_id } = {}, signal) {
|
|
38145
37981
|
return await httpClient.get(`organizations/${organization_id}/workspaces/${workspace_id}/tasks/${task_id}/time-entries`, {
|
|
@@ -38372,7 +38208,7 @@ const PublicMeEntryRequestSchema = /* @__PURE__ */ object$2({
|
|
|
38372
38208
|
]))
|
|
38373
38209
|
});
|
|
38374
38210
|
//#endregion
|
|
38375
|
-
//#region ../../node_modules/.pnpm/@toggl+queries@2.2.
|
|
38211
|
+
//#region ../../node_modules/.pnpm/@toggl+queries@2.2.64_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_reac_9a6a00428921d756e77d8976c0226cf3/node_modules/@toggl/queries/dist/org/invitation/requests.mjs
|
|
38376
38212
|
async function getInvitations(httpClient, signal) {
|
|
38377
38213
|
return (await httpClient.get(`invitations`, { signal })).json();
|
|
38378
38214
|
}
|
|
@@ -38389,7 +38225,7 @@ async function resendInvitation(httpClient, organization_id, organization_user_i
|
|
|
38389
38225
|
return (await httpClient.post(`organizations/${organization_id}/invitations/${organization_user_id}/resend`, { signal })).json();
|
|
38390
38226
|
}
|
|
38391
38227
|
//#endregion
|
|
38392
|
-
//#region ../../node_modules/.pnpm/@toggl+queries@2.2.
|
|
38228
|
+
//#region ../../node_modules/.pnpm/@toggl+queries@2.2.64_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_reac_9a6a00428921d756e77d8976c0226cf3/node_modules/@toggl/queries/dist/org/utils/requests.mjs
|
|
38393
38229
|
function buildSearchParams(params, flattenArrays = false) {
|
|
38394
38230
|
const searchParams = new URLSearchParams();
|
|
38395
38231
|
Object.entries(params).forEach(([key, value]) => {
|
|
@@ -38401,7 +38237,7 @@ function buildSearchParams(params, flattenArrays = false) {
|
|
|
38401
38237
|
return searchParams;
|
|
38402
38238
|
}
|
|
38403
38239
|
//#endregion
|
|
38404
|
-
//#region ../../node_modules/.pnpm/@toggl+queries@2.2.
|
|
38240
|
+
//#region ../../node_modules/.pnpm/@toggl+queries@2.2.64_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_reac_9a6a00428921d756e77d8976c0226cf3/node_modules/@toggl/queries/dist/org/organization-user/requests.mjs
|
|
38405
38241
|
async function getOrganizationUser(httpClient, organization_id, organization_user_id, signal) {
|
|
38406
38242
|
return (await httpClient.get(`organizations/${organization_id}/users/${organization_user_id}`, { signal })).json();
|
|
38407
38243
|
}
|
|
@@ -38415,7 +38251,7 @@ async function patchOrganizationUserActive(httpClient, organization_id, organiza
|
|
|
38415
38251
|
return (await httpClient.patch(`organizations/${organization_id}/users/${organization_user_id}/active_status/${status}`, { signal })).json();
|
|
38416
38252
|
}
|
|
38417
38253
|
//#endregion
|
|
38418
|
-
//#region ../../node_modules/.pnpm/@toggl+queries@2.2.
|
|
38254
|
+
//#region ../../node_modules/.pnpm/@toggl+queries@2.2.64_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_reac_9a6a00428921d756e77d8976c0226cf3/node_modules/@toggl/queries/dist/org/workspace/requests.mjs
|
|
38419
38255
|
async function getWorkspaces(httpClient, organization_id, signal) {
|
|
38420
38256
|
return (await httpClient.get(`organizations/${organization_id}/workspaces`, { signal })).json();
|
|
38421
38257
|
}
|
|
@@ -38435,7 +38271,7 @@ const WorkingHoursUpdateInputSchema = /* @__PURE__ */ object$2({
|
|
|
38435
38271
|
});
|
|
38436
38272
|
const StatusOKSchema = /* @__PURE__ */ object$2({ status: /* @__PURE__ */ string$1() });
|
|
38437
38273
|
//#endregion
|
|
38438
|
-
//#region ../../node_modules/.pnpm/@toggl+queries@2.2.
|
|
38274
|
+
//#region ../../node_modules/.pnpm/@toggl+queries@2.2.64_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_reac_9a6a00428921d756e77d8976c0226cf3/node_modules/@toggl/queries/dist/org/holiday-calendar/requests.mjs
|
|
38439
38275
|
async function holidayListDates(httpClient, organization_id, { year, country }, signal) {
|
|
38440
38276
|
return (await httpClient.get(`holidays/organizations/${organization_id}/calendar/dates`, {
|
|
38441
38277
|
signal,
|
|
@@ -38446,12 +38282,12 @@ async function holidayListDates(httpClient, organization_id, { year, country },
|
|
|
38446
38282
|
})).json();
|
|
38447
38283
|
}
|
|
38448
38284
|
//#endregion
|
|
38449
|
-
//#region ../../node_modules/.pnpm/@toggl+queries@2.2.
|
|
38285
|
+
//#region ../../node_modules/.pnpm/@toggl+queries@2.2.64_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_reac_9a6a00428921d756e77d8976c0226cf3/node_modules/@toggl/queries/dist/shared-data/status/requests.mjs
|
|
38450
38286
|
async function getStatus(httpClient, signal) {
|
|
38451
38287
|
return (await httpClient.get(`shared_data/api/status`, { signal })).json();
|
|
38452
38288
|
}
|
|
38453
38289
|
//#endregion
|
|
38454
|
-
//#region ../../node_modules/.pnpm/@toggl+queries@2.2.
|
|
38290
|
+
//#region ../../node_modules/.pnpm/@toggl+queries@2.2.64_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_reac_9a6a00428921d756e77d8976c0226cf3/node_modules/@toggl/queries/dist/org/timeoff/requests.mjs
|
|
38455
38291
|
async function timeoffListMyEntries(httpClient, organization_id, { from, to }, signal) {
|
|
38456
38292
|
return (await httpClient.get(`timeoff/organizations/${organization_id}/me`, {
|
|
38457
38293
|
signal,
|
|
@@ -38479,7 +38315,7 @@ async function timeoffDeleteMyEntry(httpClient, organization_id, id, signal) {
|
|
|
38479
38315
|
return response.json();
|
|
38480
38316
|
}
|
|
38481
38317
|
//#endregion
|
|
38482
|
-
//#region ../../node_modules/.pnpm/@toggl+queries@2.2.
|
|
38318
|
+
//#region ../../node_modules/.pnpm/@toggl+queries@2.2.64_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_reac_9a6a00428921d756e77d8976c0226cf3/node_modules/@toggl/queries/dist/shared-data/working-hours/requests.mjs
|
|
38483
38319
|
async function getMyWorkingHours(httpClient, organization_id, signal) {
|
|
38484
38320
|
return (await httpClient.get(`shared_data/api/workinghours/${organization_id}/me`, { signal })).json();
|
|
38485
38321
|
}
|
|
@@ -38504,7 +38340,7 @@ async function deleteMyWorkingHours(httpClient, organization_id, data, signal) {
|
|
|
38504
38340
|
return response.json();
|
|
38505
38341
|
}
|
|
38506
38342
|
//#endregion
|
|
38507
|
-
//#region ../cli-core/build/focus-client-
|
|
38343
|
+
//#region ../cli-core/build/focus-client-D9JzuIl3.js
|
|
38508
38344
|
/** Request header the API reads to attribute traffic to MCP or CLI. */
|
|
38509
38345
|
const TOGGL_CLIENT_HEADER = "X-Toggl-Client";
|
|
38510
38346
|
/** Header the Focus API reads for analytics and presence `platform_origin`. */
|
|
@@ -38673,14 +38509,12 @@ async function downloadAttachment(ctx, scope, params) {
|
|
|
38673
38509
|
const TimeOffMeUpdateInputSchema$1 = /* @__PURE__ */ intersect([/* @__PURE__ */ object$2({ timeoff_id: /* @__PURE__ */ number$2() }), PublicMeEntryRequestSchema]);
|
|
38674
38510
|
const TaskPatchSchema = withCustomFieldValues(/* @__PURE__ */ partial(TaskPartialUpdatePayloadSchema));
|
|
38675
38511
|
const ProjectPatchSchema = withCustomFieldValues(/* @__PURE__ */ partial(ProjectPartialUpdatePayloadSchema));
|
|
38676
|
-
const TimeBlockPatchSchema = /* @__PURE__ */ partial(TimeBlockPartialUpdatePayloadSchema);
|
|
38677
38512
|
const BulkIdsSchema = /* @__PURE__ */ object$2({
|
|
38678
38513
|
ids: /* @__PURE__ */ pipe$2(/* @__PURE__ */ array$1(/* @__PURE__ */ number$2()), /* @__PURE__ */ minLength$1(1)),
|
|
38679
38514
|
outbound_sync: /* @__PURE__ */ optional$1(/* @__PURE__ */ boolean$1())
|
|
38680
38515
|
});
|
|
38681
38516
|
const BulkTaskPatchItemsSchema = /* @__PURE__ */ pipe$2(/* @__PURE__ */ array$1(withCustomFieldValues(TaskPartialUpdatePayloadWithIDSchema)), /* @__PURE__ */ minLength$1(1));
|
|
38682
38517
|
const BulkProjectPatchItemsSchema = /* @__PURE__ */ pipe$2(/* @__PURE__ */ array$1(withCustomFieldValues(ProjectPartialUpdatePayloadWithIDSchema)), /* @__PURE__ */ minLength$1(1));
|
|
38683
|
-
const BulkTimeBlockPatchItemsSchema = /* @__PURE__ */ pipe$2(/* @__PURE__ */ array$1(TimeBlockPartialUpdatePayloadWithIDSchema), /* @__PURE__ */ minLength$1(1));
|
|
38684
38518
|
const BulkTimeEntryPatchItemsSchema = /* @__PURE__ */ pipe$2(/* @__PURE__ */ array$1(TimeEntryPartialUpdatePayloadWithIDSchema$1), /* @__PURE__ */ minLength$1(1));
|
|
38685
38519
|
const BulkTimeEntryCreateItemsSchema = /* @__PURE__ */ pipe$2(/* @__PURE__ */ array$1(TimeEntryBulkCreatePayloadSchema$1), /* @__PURE__ */ minLength$1(1));
|
|
38686
38520
|
const BulkTimeEntryIdsSchema = /* @__PURE__ */ object$2({ ids: /* @__PURE__ */ pipe$2(/* @__PURE__ */ array$1(/* @__PURE__ */ number$2()), /* @__PURE__ */ minLength$1(1)) });
|
|
@@ -39058,71 +38892,6 @@ var FocusClient = class {
|
|
|
39058
38892
|
return await bulkUnarchiveProjects(this.http, this.organizationIdNum, this.workspaceIdNum, input.data);
|
|
39059
38893
|
});
|
|
39060
38894
|
}
|
|
39061
|
-
async listTimeBlocks(params = {}) {
|
|
39062
|
-
const rawFrom = typeof params.date_from === "string" ? params.date_from : "";
|
|
39063
|
-
const rawTo = typeof params.date_to === "string" ? params.date_to : "";
|
|
39064
|
-
if (!rawFrom || !rawTo) return {
|
|
39065
|
-
ok: false,
|
|
39066
|
-
status: 400,
|
|
39067
|
-
message: "date_from and date_to are required"
|
|
39068
|
-
};
|
|
39069
|
-
const date_from = normalizeDateFrom(rawFrom);
|
|
39070
|
-
const date_to = normalizeDateTo(rawTo);
|
|
39071
|
-
const response = await this.run("listTimeBlocks", () => getTimeBlocksRangeWithOrgClassic(this.http, this.organizationIdNum, this.workspaceIdNum, {
|
|
39072
|
-
date_from,
|
|
39073
|
-
date_to,
|
|
39074
|
-
task_id: parseOptionalInt(params.task_id),
|
|
39075
|
-
page: parseOptionalInt(params.page),
|
|
39076
|
-
per_page: parseOptionalInt(params.per_page)
|
|
39077
|
-
}));
|
|
39078
|
-
return this.softValidateResponse("listTimeBlocks", PaginatedTimeBlockAggregateWithTasksSchema, response);
|
|
39079
|
-
}
|
|
39080
|
-
async getTimeBlock(taskId, timeBlockId) {
|
|
39081
|
-
const response = await this.run("getTimeBlock", () => getTimeBlockWithOrg(this.http, this.organizationIdNum, this.workspaceIdNum, taskId, timeBlockId));
|
|
39082
|
-
return this.softValidateResponse("getTimeBlock", TimeBlockSchema, response);
|
|
39083
|
-
}
|
|
39084
|
-
async createTimeBlock(taskId, payload) {
|
|
39085
|
-
const input = validatePayload(TimeBlockPayloadSchema, payload, "createTimeBlock payload");
|
|
39086
|
-
if (!input.ok) return input;
|
|
39087
|
-
const response = await this.run("createTimeBlock", () => createTimeBlockWithOrg(this.http, this.organizationIdNum, this.workspaceIdNum, taskId, input.data));
|
|
39088
|
-
return this.softValidateResponse("createTimeBlock", TimeBlockSchema, response);
|
|
39089
|
-
}
|
|
39090
|
-
async updateTimeBlock(taskId, timeBlockId, payload) {
|
|
39091
|
-
const input = validatePayload(TimeBlockPatchSchema, payload, "updateTimeBlock payload");
|
|
39092
|
-
if (!input.ok) return input;
|
|
39093
|
-
return this.run("updateTimeBlock", async () => {
|
|
39094
|
-
return await partialUpdateTimeBlockWithOrg(this.http, this.organizationIdNum, this.workspaceIdNum, taskId, timeBlockId, input.data);
|
|
39095
|
-
});
|
|
39096
|
-
}
|
|
39097
|
-
async deleteTimeBlock(taskId, timeBlockId) {
|
|
39098
|
-
return this.run("deleteTimeBlock", async () => {
|
|
39099
|
-
await deleteTimeBlockWithOrg(this.http, this.organizationIdNum, this.workspaceIdNum, taskId, timeBlockId);
|
|
39100
|
-
return null;
|
|
39101
|
-
});
|
|
39102
|
-
}
|
|
39103
|
-
async bulkCreateTimeBlocks(payload) {
|
|
39104
|
-
const input = validatePayload(TimeBlockBulkCreatePayloadSchema, payload, "bulkCreateTimeBlocks payload");
|
|
39105
|
-
if (!input.ok) return input;
|
|
39106
|
-
const response = await this.run("bulkCreateTimeBlocks", () => bulkCreateTimeBlockWithOrg(this.http, this.organizationIdNum, this.workspaceIdNum, input.data));
|
|
39107
|
-
return this.softValidateResponse("bulkCreateTimeBlocks", /* @__PURE__ */ array$1(TimeBlockSchema), response);
|
|
39108
|
-
}
|
|
39109
|
-
async bulkPartialUpdateTimeBlocks(items) {
|
|
39110
|
-
const input = validatePayload(BulkTimeBlockPatchItemsSchema, items, "bulkPartialUpdateTimeBlocks items");
|
|
39111
|
-
if (!input.ok) return input;
|
|
39112
|
-
return this.run("bulkPartialUpdateTimeBlocks", async () => {
|
|
39113
|
-
return await bulkPartialUpdateTimeBlockWithOrg(this.http, this.organizationIdNum, this.workspaceIdNum, input.data);
|
|
39114
|
-
});
|
|
39115
|
-
}
|
|
39116
|
-
async bulkDeleteTimeBlocks(ids, outbound_sync) {
|
|
39117
|
-
const input = validatePayload(BulkIdsSchema, {
|
|
39118
|
-
ids,
|
|
39119
|
-
outbound_sync
|
|
39120
|
-
}, "bulkDeleteTimeBlocks input");
|
|
39121
|
-
if (!input.ok) return input;
|
|
39122
|
-
return this.run("bulkDeleteTimeBlocks", async () => {
|
|
39123
|
-
return await bulkDeleteTimeBlockWithOrg(this.http, this.organizationIdNum, this.workspaceIdNum, input.data.ids, input.data.outbound_sync);
|
|
39124
|
-
});
|
|
39125
|
-
}
|
|
39126
38895
|
async listTimeEntries(params = {}) {
|
|
39127
38896
|
const rawFrom = typeof params.date_from === "string" ? params.date_from : "";
|
|
39128
38897
|
const rawTo = typeof params.date_to === "string" ? params.date_to : "";
|
|
@@ -40602,7 +40371,7 @@ function createAuthenticatedClientProxy() {
|
|
|
40602
40371
|
} });
|
|
40603
40372
|
}
|
|
40604
40373
|
//#endregion
|
|
40605
|
-
//#region ../operations/build/validation-
|
|
40374
|
+
//#region ../operations/build/validation-CLozpAO5.js
|
|
40606
40375
|
const optionalNumber = /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2());
|
|
40607
40376
|
const perPageField = (max) => /* @__PURE__ */ optional$1(/* @__PURE__ */ pipe$2(/* @__PURE__ */ number$2(), /* @__PURE__ */ integer(), /* @__PURE__ */ minValue$1(1), /* @__PURE__ */ maxValue$1(max), /* @__PURE__ */ description$1(`Results per page (1-${max})`)));
|
|
40608
40377
|
const perPageSchema = perPageField(100);
|
|
@@ -40617,13 +40386,6 @@ const rateSchedulePayloadSchema = /* @__PURE__ */ pipe$2(/* @__PURE__ */ strictO
|
|
|
40617
40386
|
end_date: /* @__PURE__ */ optional$1(rateDateSchema)
|
|
40618
40387
|
}), /* @__PURE__ */ forward(/* @__PURE__ */ partialCheck([["start_date"], ["end_date"]], ({ start_date, end_date }) => end_date === void 0 || end_date >= start_date, "must be on or after start_date"), ["end_date"]));
|
|
40619
40388
|
const tagIdFilterSchema = /* @__PURE__ */ union$1([/* @__PURE__ */ pipe$2(/* @__PURE__ */ number$2(), /* @__PURE__ */ transform$1((tagId) => [tagId])), /* @__PURE__ */ pipe$2(/* @__PURE__ */ array$1(/* @__PURE__ */ number$2()), /* @__PURE__ */ minLength$1(1))]);
|
|
40620
|
-
const timeBlockListSchema = /* @__PURE__ */ object$2({
|
|
40621
|
-
date_from: dateField("Range start — date-only (e.g. '2025-01-01') or RFC3339 datetime. Date-only is expanded to T00:00:00Z."),
|
|
40622
|
-
date_to: dateField("Range end — date-only (e.g. '2025-01-07') or RFC3339 datetime. Date-only is expanded to T23:59:59Z."),
|
|
40623
|
-
task_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ pipe$2(/* @__PURE__ */ number$2(), /* @__PURE__ */ description$1("Filter by task ID"))),
|
|
40624
|
-
page: /* @__PURE__ */ optional$1(/* @__PURE__ */ pipe$2(/* @__PURE__ */ number$2(), /* @__PURE__ */ description$1("Page number"))),
|
|
40625
|
-
per_page: perPageSchema
|
|
40626
|
-
});
|
|
40627
40389
|
const timeEntryListSchema = /* @__PURE__ */ object$2({
|
|
40628
40390
|
date_from: dateField("Range start — date-only (e.g. '2025-01-01') or RFC3339 datetime. Date-only is expanded to T00:00:00Z."),
|
|
40629
40391
|
date_to: dateField("Range end — date-only (e.g. '2025-01-07') or RFC3339 datetime. Date-only is expanded to T23:59:59Z."),
|
|
@@ -40752,19 +40514,6 @@ const projectUpdateSchema = /* @__PURE__ */ object$2({
|
|
|
40752
40514
|
project_id: /* @__PURE__ */ number$2(),
|
|
40753
40515
|
payload: withCustomFieldValues(/* @__PURE__ */ partial(ProjectPartialUpdatePayloadSchema))
|
|
40754
40516
|
});
|
|
40755
|
-
const timeBlockCreateSchema = /* @__PURE__ */ object$2({
|
|
40756
|
-
task_id: /* @__PURE__ */ number$2(),
|
|
40757
|
-
payload: TimeBlockPayloadSchema
|
|
40758
|
-
});
|
|
40759
|
-
const timeBlockUpdateSchema = /* @__PURE__ */ object$2({
|
|
40760
|
-
task_id: /* @__PURE__ */ number$2(),
|
|
40761
|
-
time_block_id: /* @__PURE__ */ number$2(),
|
|
40762
|
-
payload: /* @__PURE__ */ partial(TimeBlockPartialUpdatePayloadSchema)
|
|
40763
|
-
});
|
|
40764
|
-
const timeBlockIdSchema = /* @__PURE__ */ object$2({
|
|
40765
|
-
task_id: /* @__PURE__ */ number$2(),
|
|
40766
|
-
time_block_id: /* @__PURE__ */ number$2()
|
|
40767
|
-
});
|
|
40768
40517
|
const taskIdSchema = /* @__PURE__ */ object$2({ task_id: /* @__PURE__ */ number$2() });
|
|
40769
40518
|
const projectIdSchema = /* @__PURE__ */ object$2({ project_id: /* @__PURE__ */ number$2() });
|
|
40770
40519
|
const emptySchema$1 = /* @__PURE__ */ object$2({});
|
|
@@ -40814,7 +40563,6 @@ const bulkIdsWithOutboundSchema = /* @__PURE__ */ object$2({
|
|
|
40814
40563
|
const bulkProjectDeleteSchema = /* @__PURE__ */ object$2({ ids: /* @__PURE__ */ pipe$2(/* @__PURE__ */ array$1(/* @__PURE__ */ number$2()), /* @__PURE__ */ minLength$1(1)) });
|
|
40815
40564
|
const bulkTaskPatchBodySchema = /* @__PURE__ */ pipe$2(/* @__PURE__ */ array$1(withCustomFieldValues(TaskPartialUpdatePayloadWithIDSchema)), /* @__PURE__ */ minLength$1(1));
|
|
40816
40565
|
const bulkProjectPatchBodySchema = /* @__PURE__ */ pipe$2(/* @__PURE__ */ array$1(withCustomFieldValues(ProjectPartialUpdatePayloadWithIDSchema)), /* @__PURE__ */ minLength$1(1));
|
|
40817
|
-
const bulkTimeBlockPatchBodySchema = /* @__PURE__ */ pipe$2(/* @__PURE__ */ array$1(TimeBlockPartialUpdatePayloadWithIDSchema), /* @__PURE__ */ minLength$1(1));
|
|
40818
40566
|
const bulkTimeEntryPatchBodySchema = /* @__PURE__ */ pipe$2(/* @__PURE__ */ array$1(TimeEntryPartialUpdatePayloadWithIDSchema$1), /* @__PURE__ */ minLength$1(1));
|
|
40819
40567
|
const bulkTimeEntryCreateBodySchema = /* @__PURE__ */ pipe$2(/* @__PURE__ */ array$1(TimeEntryBulkCreatePayloadSchema$1), /* @__PURE__ */ minLength$1(1));
|
|
40820
40568
|
const bulkTimeEntryIdsSchema = /* @__PURE__ */ object$2({ ids: /* @__PURE__ */ pipe$2(/* @__PURE__ */ array$1(/* @__PURE__ */ number$2()), /* @__PURE__ */ minLength$1(1)) });
|
|
@@ -40917,7 +40665,7 @@ const compositeOverrides = {
|
|
|
40917
40665
|
mcp: { entityTool: "projects" }
|
|
40918
40666
|
},
|
|
40919
40667
|
"focus.composite.create-task": {
|
|
40920
|
-
description: "Create a task with related data such as subtasks
|
|
40668
|
+
description: "Create a task with related data such as subtasks and an initial time entry.",
|
|
40921
40669
|
cli: {
|
|
40922
40670
|
group: ["tasks"],
|
|
40923
40671
|
command: "create-with-children",
|
|
@@ -41506,103 +41254,6 @@ const taskOverrides = {
|
|
|
41506
41254
|
}]
|
|
41507
41255
|
}
|
|
41508
41256
|
};
|
|
41509
|
-
const timeBlockOverrides = {
|
|
41510
|
-
"focus.time-blocks.list": {
|
|
41511
|
-
agentGuidance: "Returns scheduled time blocks in a date range. Requires date_from and date_to. Accepts date-only strings (YYYY-MM-DD) or RFC3339 datetimes — date-only is automatically expanded: date_from to T00:00:00Z, date_to to T23:59:59Z. Results include associated task summaries.",
|
|
41512
|
-
examples: [{
|
|
41513
|
-
description: "List time blocks for a date range (date-only, expanded to full-day range)",
|
|
41514
|
-
data: {
|
|
41515
|
-
date_from: "2025-01-01",
|
|
41516
|
-
date_to: "2025-01-07"
|
|
41517
|
-
}
|
|
41518
|
-
}, {
|
|
41519
|
-
description: "List time blocks with explicit RFC3339 timestamps",
|
|
41520
|
-
data: {
|
|
41521
|
-
date_from: "2025-01-01T00:00:00Z",
|
|
41522
|
-
date_to: "2025-01-07T23:59:59Z"
|
|
41523
|
-
}
|
|
41524
|
-
}]
|
|
41525
|
-
},
|
|
41526
|
-
"focus.time-blocks.get": {
|
|
41527
|
-
agentGuidance: "Fetch a single time block by task ID and time block ID.",
|
|
41528
|
-
examples: [{
|
|
41529
|
-
description: "Get a time block",
|
|
41530
|
-
data: {
|
|
41531
|
-
task_id: 12345,
|
|
41532
|
-
time_block_id: 67890
|
|
41533
|
-
}
|
|
41534
|
-
}]
|
|
41535
|
-
},
|
|
41536
|
-
"focus.time-blocks.create": {
|
|
41537
|
-
agentGuidance: "Required: task_id and payload.start (ISO 8601 datetime). Optionally set payload.duration (minutes) and payload.completed.",
|
|
41538
|
-
examples: [{
|
|
41539
|
-
description: "Schedule a 1-hour time block",
|
|
41540
|
-
data: {
|
|
41541
|
-
task_id: 12345,
|
|
41542
|
-
payload: {
|
|
41543
|
-
start: "2025-01-15T09:00:00Z",
|
|
41544
|
-
duration: 60
|
|
41545
|
-
}
|
|
41546
|
-
}
|
|
41547
|
-
}]
|
|
41548
|
-
},
|
|
41549
|
-
"focus.time-blocks.update": {
|
|
41550
|
-
agentGuidance: "Partial update — provide task_id, time_block_id, and fields to change in payload.",
|
|
41551
|
-
examples: [{
|
|
41552
|
-
description: "Mark a time block as completed",
|
|
41553
|
-
data: {
|
|
41554
|
-
task_id: 12345,
|
|
41555
|
-
time_block_id: 67890,
|
|
41556
|
-
payload: { completed: true }
|
|
41557
|
-
}
|
|
41558
|
-
}]
|
|
41559
|
-
},
|
|
41560
|
-
"focus.time-blocks.delete": {
|
|
41561
|
-
agentGuidance: "Permanently removes the scheduled time block from the task.",
|
|
41562
|
-
examples: [{
|
|
41563
|
-
description: "Delete a time block",
|
|
41564
|
-
data: {
|
|
41565
|
-
task_id: 12345,
|
|
41566
|
-
time_block_id: 67890
|
|
41567
|
-
}
|
|
41568
|
-
}]
|
|
41569
|
-
},
|
|
41570
|
-
"focus.time-blocks.bulk-create": {
|
|
41571
|
-
agentGuidance: "Body shape: { time_blocks: [{ task_id, start, duration?, completed? }, ...] }. Creates many blocks in one request.",
|
|
41572
|
-
examples: [{
|
|
41573
|
-
description: "Schedule two blocks",
|
|
41574
|
-
data: { time_blocks: [{
|
|
41575
|
-
task_id: 12345,
|
|
41576
|
-
start: "2025-01-15T09:00:00Z",
|
|
41577
|
-
duration: 60
|
|
41578
|
-
}, {
|
|
41579
|
-
task_id: 12345,
|
|
41580
|
-
start: "2025-01-15T11:00:00Z",
|
|
41581
|
-
duration: 30
|
|
41582
|
-
}] }
|
|
41583
|
-
}]
|
|
41584
|
-
},
|
|
41585
|
-
"focus.time-blocks.bulk-patch": {
|
|
41586
|
-
agentGuidance: "JSON array of { id: timeBlockId, ...partial fields }; same fields as single time-block update.",
|
|
41587
|
-
examples: [{
|
|
41588
|
-
description: "Mark two blocks complete",
|
|
41589
|
-
data: [{
|
|
41590
|
-
id: 101,
|
|
41591
|
-
completed: true
|
|
41592
|
-
}, {
|
|
41593
|
-
id: 102,
|
|
41594
|
-
completed: true
|
|
41595
|
-
}]
|
|
41596
|
-
}]
|
|
41597
|
-
},
|
|
41598
|
-
"focus.time-blocks.bulk-delete": {
|
|
41599
|
-
agentGuidance: "Deletes time blocks by numeric id list in one HTTP call (not task_id/time_block_id pairs).",
|
|
41600
|
-
examples: [{
|
|
41601
|
-
description: "Delete two blocks",
|
|
41602
|
-
data: { ids: [101, 102] }
|
|
41603
|
-
}]
|
|
41604
|
-
}
|
|
41605
|
-
};
|
|
41606
41257
|
const timeEntryOverrides = {
|
|
41607
41258
|
"focus.time-entries.list": {
|
|
41608
41259
|
agentGuidance: "Returns tracked time entries in a date range, including taskless entries (tracked on a project with no task). Requires date_from and date_to. Accepts date-only strings (YYYY-MM-DD) or RFC3339 datetimes — date-only is automatically expanded: date_from to T00:00:00Z, date_to to T23:59:59Z. Optional project_id keeps only entries on that project (sent to the API; client also scans up to 50 list pages of 100, then slices page/per_page; not a full workspace scan). If truncated is true, more unfiltered rows exist than were scanned — narrow date_from/date_to. Pass include_taskless:false to hide taskless rows. Includes task and project context.",
|
|
@@ -43135,6 +42786,104 @@ async function getProjectSuggestionsForMultipleTasks(httpClient, organization_id
|
|
|
43135
42786
|
}).json();
|
|
43136
42787
|
}
|
|
43137
42788
|
//#endregion
|
|
42789
|
+
//#region ../focus-queries/dist/time-blocks/requests.ts
|
|
42790
|
+
async function getTaskTimeBlocksWithOrgClassic(httpClient, organization_id, workspace_id, task_id, { page, per_page, order_by, archived } = {}, signal) {
|
|
42791
|
+
return await httpClient.get(`organizations/${organization_id}/workspaces/${workspace_id}/tasks/${task_id}/time-blocks`, {
|
|
42792
|
+
signal,
|
|
42793
|
+
searchParams: buildSearchParams$2({
|
|
42794
|
+
page,
|
|
42795
|
+
per_page,
|
|
42796
|
+
order_by,
|
|
42797
|
+
archived
|
|
42798
|
+
})
|
|
42799
|
+
}).json();
|
|
42800
|
+
}
|
|
42801
|
+
async function createTimeBlockWithOrg(httpClient, organization_id, workspace_id, task_id, data, signal) {
|
|
42802
|
+
return await httpClient.post(`organizations/${organization_id}/workspaces/${workspace_id}/tasks/${task_id}/time-blocks`, {
|
|
42803
|
+
signal,
|
|
42804
|
+
json: data
|
|
42805
|
+
}).json();
|
|
42806
|
+
}
|
|
42807
|
+
async function getTimeBlockWithOrg(httpClient, organization_id, workspace_id, task_id, time_block_id, signal) {
|
|
42808
|
+
return await httpClient.get(`organizations/${organization_id}/workspaces/${workspace_id}/tasks/${task_id}/time-blocks/${time_block_id}`, { signal }).json();
|
|
42809
|
+
}
|
|
42810
|
+
async function updateTimeBlockWithOrg(httpClient, organization_id, workspace_id, task_id, time_block_id, data, signal) {
|
|
42811
|
+
return await httpClient.put(`organizations/${organization_id}/workspaces/${workspace_id}/tasks/${task_id}/time-blocks/${time_block_id}`, {
|
|
42812
|
+
signal,
|
|
42813
|
+
json: data
|
|
42814
|
+
}).json();
|
|
42815
|
+
}
|
|
42816
|
+
async function deleteTimeBlockWithOrg(httpClient, organization_id, workspace_id, task_id, time_block_id, outbound_sync, signal) {
|
|
42817
|
+
return await httpClient.delete(`organizations/${organization_id}/workspaces/${workspace_id}/tasks/${task_id}/time-blocks/${time_block_id}`, {
|
|
42818
|
+
signal,
|
|
42819
|
+
searchParams: buildSearchParams$2({ outbound_sync })
|
|
42820
|
+
}).json();
|
|
42821
|
+
}
|
|
42822
|
+
async function partialUpdateTimeBlockWithOrg(httpClient, organization_id, workspace_id, task_id, time_block_id, data, signal) {
|
|
42823
|
+
return await httpClient.patch(`organizations/${organization_id}/workspaces/${workspace_id}/tasks/${task_id}/time-blocks/${time_block_id}`, {
|
|
42824
|
+
signal,
|
|
42825
|
+
json: data
|
|
42826
|
+
}).json();
|
|
42827
|
+
}
|
|
42828
|
+
async function archiveTimeBlockWithOrg(httpClient, organization_id, workspace_id, task_id, time_block_id, signal) {
|
|
42829
|
+
return await httpClient.post(`organizations/${organization_id}/workspaces/${workspace_id}/tasks/${task_id}/time-blocks/${time_block_id}/archive`, { signal }).json();
|
|
42830
|
+
}
|
|
42831
|
+
async function restoreTimeBlockWithOrg(httpClient, organization_id, workspace_id, task_id, time_block_id, signal) {
|
|
42832
|
+
return await httpClient.patch(`organizations/${organization_id}/workspaces/${workspace_id}/tasks/${task_id}/time-blocks/${time_block_id}/restore`, { signal }).json();
|
|
42833
|
+
}
|
|
42834
|
+
async function unarchiveTimeBlockWithOrg(httpClient, organization_id, workspace_id, task_id, time_block_id, signal) {
|
|
42835
|
+
return await httpClient.post(`organizations/${organization_id}/workspaces/${workspace_id}/tasks/${task_id}/time-blocks/${time_block_id}/unarchive`, { signal }).json();
|
|
42836
|
+
}
|
|
42837
|
+
async function getTimeBlocksRangeWithOrgClassic(httpClient, organization_id, workspace_id, { date_from, date_to, task_id, status_id, page, per_page, archived, order_by }, signal) {
|
|
42838
|
+
return await httpClient.get(`organizations/${organization_id}/workspaces/${workspace_id}/time-blocks`, {
|
|
42839
|
+
signal,
|
|
42840
|
+
searchParams: buildSearchParams$2({
|
|
42841
|
+
date_from,
|
|
42842
|
+
date_to,
|
|
42843
|
+
task_id,
|
|
42844
|
+
status_id,
|
|
42845
|
+
page,
|
|
42846
|
+
per_page,
|
|
42847
|
+
archived,
|
|
42848
|
+
order_by
|
|
42849
|
+
})
|
|
42850
|
+
}).json();
|
|
42851
|
+
}
|
|
42852
|
+
async function bulkCreateTimeBlockWithOrg(httpClient, organization_id, workspace_id, data, signal) {
|
|
42853
|
+
return await httpClient.post(`organizations/${organization_id}/workspaces/${workspace_id}/time-blocks/bulk`, {
|
|
42854
|
+
signal,
|
|
42855
|
+
json: data
|
|
42856
|
+
}).json();
|
|
42857
|
+
}
|
|
42858
|
+
async function bulkDeleteTimeBlockWithOrg(httpClient, organization_id, workspace_id, ids, outbound_sync, signal) {
|
|
42859
|
+
return await httpClient.delete(`organizations/${organization_id}/workspaces/${workspace_id}/time-blocks/bulk`, {
|
|
42860
|
+
signal,
|
|
42861
|
+
searchParams: buildSearchParams$2({
|
|
42862
|
+
ids,
|
|
42863
|
+
outbound_sync
|
|
42864
|
+
})
|
|
42865
|
+
}).json();
|
|
42866
|
+
}
|
|
42867
|
+
async function bulkPartialUpdateTimeBlockWithOrg(httpClient, organization_id, workspace_id, data, signal) {
|
|
42868
|
+
return await httpClient.patch(`organizations/${organization_id}/workspaces/${workspace_id}/time-blocks/bulk`, {
|
|
42869
|
+
signal,
|
|
42870
|
+
json: data
|
|
42871
|
+
}).json();
|
|
42872
|
+
}
|
|
42873
|
+
async function getTimeBlocksRangeStreamWithOrg(httpClient, organization_id, workspace_id, { date_from, date_to, task_id, status_id, archived, order_by }, signal) {
|
|
42874
|
+
return await httpClient.get(`organizations/${organization_id}/workspaces/${workspace_id}/time-blocks/stream`, {
|
|
42875
|
+
signal,
|
|
42876
|
+
searchParams: buildSearchParams$2({
|
|
42877
|
+
date_from,
|
|
42878
|
+
date_to,
|
|
42879
|
+
task_id,
|
|
42880
|
+
status_id,
|
|
42881
|
+
archived,
|
|
42882
|
+
order_by
|
|
42883
|
+
})
|
|
42884
|
+
}).json();
|
|
42885
|
+
}
|
|
42886
|
+
//#endregion
|
|
43138
42887
|
//#region ../focus-queries/dist/time-entry-constraints/requests.ts
|
|
43139
42888
|
async function getTimeEntryConstraints(httpClient, workspace_id, signal) {
|
|
43140
42889
|
return await httpClient.get(`workspaces/${workspace_id}/time-entry-constraints`, { signal }).json();
|
|
@@ -50978,10 +50727,22 @@ const generatedFocusOperations = [
|
|
|
50978
50727
|
interactive: "default"
|
|
50979
50728
|
},
|
|
50980
50729
|
mcp: { entityTool: "time-blocks" },
|
|
50981
|
-
inputSchema:
|
|
50730
|
+
inputSchema: /* @__PURE__ */ looseObject({ payload: /* @__PURE__ */ looseObject({ time_blocks: /* @__PURE__ */ array$1(/* @__PURE__ */ looseObject({
|
|
50731
|
+
start: apiDateTimeString,
|
|
50732
|
+
task_id: /* @__PURE__ */ number$2(),
|
|
50733
|
+
completed: /* @__PURE__ */ optional$1(/* @__PURE__ */ boolean$1()),
|
|
50734
|
+
duration: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
|
|
50735
|
+
outbound_sync: /* @__PURE__ */ optional$1(/* @__PURE__ */ boolean$1())
|
|
50736
|
+
})) }) }),
|
|
50982
50737
|
execute: (input, { client }) => {
|
|
50983
50738
|
const data = input;
|
|
50984
|
-
return client.
|
|
50739
|
+
return client.runGeneratedRequest("bulkCreateTimeBlockWithOrg", () => callGeneratedRequest(bulkCreateTimeBlockWithOrg, [
|
|
50740
|
+
client.httpClient,
|
|
50741
|
+
client.organizationId,
|
|
50742
|
+
client.workspaceIdNumber,
|
|
50743
|
+
data.payload ?? data.data ?? data,
|
|
50744
|
+
void 0
|
|
50745
|
+
]));
|
|
50985
50746
|
}
|
|
50986
50747
|
},
|
|
50987
50748
|
{
|
|
@@ -50999,31 +50760,47 @@ const generatedFocusOperations = [
|
|
|
50999
50760
|
interactive: "default"
|
|
51000
50761
|
},
|
|
51001
50762
|
mcp: { entityTool: "time-blocks" },
|
|
51002
|
-
inputSchema:
|
|
50763
|
+
inputSchema: /* @__PURE__ */ looseObject({
|
|
50764
|
+
ids: /* @__PURE__ */ array$1(/* @__PURE__ */ number$2()),
|
|
50765
|
+
outbound_sync: /* @__PURE__ */ optional$1(/* @__PURE__ */ boolean$1())
|
|
50766
|
+
}),
|
|
51003
50767
|
execute: (input, { client }) => {
|
|
51004
50768
|
const data = input;
|
|
51005
|
-
return client.
|
|
50769
|
+
return client.runGeneratedRequest("bulkDeleteTimeBlockWithOrg", () => callGeneratedRequest(bulkDeleteTimeBlockWithOrg, [
|
|
50770
|
+
client.httpClient,
|
|
50771
|
+
client.organizationId,
|
|
50772
|
+
client.workspaceIdNumber,
|
|
50773
|
+
data.ids,
|
|
50774
|
+
data.outbound_sync,
|
|
50775
|
+
void 0
|
|
50776
|
+
]));
|
|
51006
50777
|
}
|
|
51007
50778
|
},
|
|
51008
50779
|
{
|
|
51009
|
-
id: "focus.time-blocks.bulk-
|
|
50780
|
+
id: "focus.time-blocks.bulk-partial-update",
|
|
51010
50781
|
family: "focus",
|
|
51011
50782
|
resource: "time-blocks",
|
|
51012
|
-
action: "bulk-
|
|
51013
|
-
title: "Bulk
|
|
51014
|
-
description: "Bulk
|
|
50783
|
+
action: "bulk-partial-update",
|
|
50784
|
+
title: "Bulk Partial Update Time Blocks",
|
|
50785
|
+
description: "Bulk Partial Update Time Blocks.",
|
|
51015
50786
|
safety: "update",
|
|
51016
50787
|
destructive: false,
|
|
51017
50788
|
cli: {
|
|
51018
50789
|
group: ["time-blocks", "bulk"],
|
|
51019
|
-
command: "
|
|
51020
|
-
interactive: "
|
|
50790
|
+
command: "partial-update",
|
|
50791
|
+
interactive: "hidden"
|
|
51021
50792
|
},
|
|
51022
50793
|
mcp: { entityTool: "time-blocks" },
|
|
51023
|
-
inputSchema:
|
|
50794
|
+
inputSchema: /* @__PURE__ */ looseObject({ payload: /* @__PURE__ */ unknown$1() }),
|
|
51024
50795
|
execute: (input, { client }) => {
|
|
51025
50796
|
const data = input;
|
|
51026
|
-
return client.
|
|
50797
|
+
return client.runGeneratedRequest("bulkPartialUpdateTimeBlockWithOrg", () => callGeneratedRequest(bulkPartialUpdateTimeBlockWithOrg, [
|
|
50798
|
+
client.httpClient,
|
|
50799
|
+
client.organizationId,
|
|
50800
|
+
client.workspaceIdNumber,
|
|
50801
|
+
data.payload ?? data.data ?? data,
|
|
50802
|
+
void 0
|
|
50803
|
+
]));
|
|
51027
50804
|
}
|
|
51028
50805
|
},
|
|
51029
50806
|
{
|
|
@@ -51041,10 +50818,25 @@ const generatedFocusOperations = [
|
|
|
51041
50818
|
interactive: "default"
|
|
51042
50819
|
},
|
|
51043
50820
|
mcp: { entityTool: "time-blocks" },
|
|
51044
|
-
inputSchema:
|
|
50821
|
+
inputSchema: /* @__PURE__ */ looseObject({
|
|
50822
|
+
payload: /* @__PURE__ */ looseObject({
|
|
50823
|
+
start: apiDateTimeString,
|
|
50824
|
+
completed: /* @__PURE__ */ optional$1(/* @__PURE__ */ boolean$1()),
|
|
50825
|
+
duration: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
|
|
50826
|
+
outbound_sync: /* @__PURE__ */ optional$1(/* @__PURE__ */ boolean$1())
|
|
50827
|
+
}),
|
|
50828
|
+
task_id: /* @__PURE__ */ number$2()
|
|
50829
|
+
}),
|
|
51045
50830
|
execute: (input, { client }) => {
|
|
51046
50831
|
const data = input;
|
|
51047
|
-
return client.
|
|
50832
|
+
return client.runGeneratedRequest("createTimeBlockWithOrg", () => callGeneratedRequest(createTimeBlockWithOrg, [
|
|
50833
|
+
client.httpClient,
|
|
50834
|
+
client.organizationId,
|
|
50835
|
+
client.workspaceIdNumber,
|
|
50836
|
+
data.task_id,
|
|
50837
|
+
data.payload ?? data.data ?? data,
|
|
50838
|
+
void 0
|
|
50839
|
+
]));
|
|
51048
50840
|
}
|
|
51049
50841
|
},
|
|
51050
50842
|
{
|
|
@@ -51062,10 +50854,22 @@ const generatedFocusOperations = [
|
|
|
51062
50854
|
interactive: "default"
|
|
51063
50855
|
},
|
|
51064
50856
|
mcp: { entityTool: "time-blocks" },
|
|
51065
|
-
inputSchema:
|
|
50857
|
+
inputSchema: /* @__PURE__ */ looseObject({
|
|
50858
|
+
outbound_sync: /* @__PURE__ */ optional$1(/* @__PURE__ */ boolean$1()),
|
|
50859
|
+
task_id: /* @__PURE__ */ number$2(),
|
|
50860
|
+
time_block_id: /* @__PURE__ */ number$2()
|
|
50861
|
+
}),
|
|
51066
50862
|
execute: (input, { client }) => {
|
|
51067
50863
|
const data = input;
|
|
51068
|
-
return client.
|
|
50864
|
+
return client.runGeneratedRequest("deleteTimeBlockWithOrg", () => callGeneratedRequest(deleteTimeBlockWithOrg, [
|
|
50865
|
+
client.httpClient,
|
|
50866
|
+
client.organizationId,
|
|
50867
|
+
client.workspaceIdNumber,
|
|
50868
|
+
data.task_id,
|
|
50869
|
+
data.time_block_id,
|
|
50870
|
+
data.outbound_sync,
|
|
50871
|
+
void 0
|
|
50872
|
+
]));
|
|
51069
50873
|
}
|
|
51070
50874
|
},
|
|
51071
50875
|
{
|
|
@@ -51083,10 +50887,56 @@ const generatedFocusOperations = [
|
|
|
51083
50887
|
interactive: "available"
|
|
51084
50888
|
},
|
|
51085
50889
|
mcp: { entityTool: "time-blocks" },
|
|
51086
|
-
inputSchema:
|
|
50890
|
+
inputSchema: /* @__PURE__ */ looseObject({
|
|
50891
|
+
task_id: /* @__PURE__ */ number$2(),
|
|
50892
|
+
time_block_id: /* @__PURE__ */ number$2()
|
|
50893
|
+
}),
|
|
50894
|
+
execute: (input, { client }) => {
|
|
50895
|
+
const data = input;
|
|
50896
|
+
return client.runGeneratedRequest("getTimeBlockWithOrg", () => callGeneratedRequest(getTimeBlockWithOrg, [
|
|
50897
|
+
client.httpClient,
|
|
50898
|
+
client.organizationId,
|
|
50899
|
+
client.workspaceIdNumber,
|
|
50900
|
+
data.task_id,
|
|
50901
|
+
data.time_block_id,
|
|
50902
|
+
void 0
|
|
50903
|
+
]));
|
|
50904
|
+
}
|
|
50905
|
+
},
|
|
50906
|
+
{
|
|
50907
|
+
id: "focus.time-blocks.get-range",
|
|
50908
|
+
family: "focus",
|
|
50909
|
+
resource: "time-blocks",
|
|
50910
|
+
action: "get-range",
|
|
50911
|
+
title: "Get Range Time Blocks",
|
|
50912
|
+
description: "Get Range Time Blocks.",
|
|
50913
|
+
safety: "read",
|
|
50914
|
+
destructive: false,
|
|
50915
|
+
cli: {
|
|
50916
|
+
group: ["time-blocks"],
|
|
50917
|
+
command: "get-range",
|
|
50918
|
+
interactive: "hidden"
|
|
50919
|
+
},
|
|
50920
|
+
mcp: { entityTool: "time-blocks" },
|
|
50921
|
+
inputSchema: /* @__PURE__ */ looseObject({
|
|
50922
|
+
archived: /* @__PURE__ */ unknown$1(),
|
|
50923
|
+
date_from: /* @__PURE__ */ unknown$1(),
|
|
50924
|
+
date_to: /* @__PURE__ */ unknown$1(),
|
|
50925
|
+
order_by: /* @__PURE__ */ unknown$1(),
|
|
50926
|
+
page: /* @__PURE__ */ number$2(),
|
|
50927
|
+
per_page: /* @__PURE__ */ unknown$1(),
|
|
50928
|
+
status_id: /* @__PURE__ */ number$2(),
|
|
50929
|
+
task_id: /* @__PURE__ */ number$2()
|
|
50930
|
+
}),
|
|
51087
50931
|
execute: (input, { client }) => {
|
|
51088
50932
|
const data = input;
|
|
51089
|
-
return client.
|
|
50933
|
+
return client.runGeneratedRequest("getTimeBlocksRangeWithOrgClassic", () => callGeneratedRequest(getTimeBlocksRangeWithOrgClassic, [
|
|
50934
|
+
client.httpClient,
|
|
50935
|
+
client.organizationId,
|
|
50936
|
+
client.workspaceIdNumber,
|
|
50937
|
+
data,
|
|
50938
|
+
void 0
|
|
50939
|
+
]));
|
|
51090
50940
|
}
|
|
51091
50941
|
},
|
|
51092
50942
|
{
|
|
@@ -51158,24 +51008,42 @@ const generatedFocusOperations = [
|
|
|
51158
51008
|
}
|
|
51159
51009
|
},
|
|
51160
51010
|
{
|
|
51161
|
-
id: "focus.time-blocks.
|
|
51011
|
+
id: "focus.time-blocks.partial-update",
|
|
51162
51012
|
family: "focus",
|
|
51163
51013
|
resource: "time-blocks",
|
|
51164
|
-
action: "
|
|
51165
|
-
title: "
|
|
51166
|
-
description: "
|
|
51167
|
-
safety: "
|
|
51014
|
+
action: "partial-update",
|
|
51015
|
+
title: "Partial Update Time Blocks",
|
|
51016
|
+
description: "Partial Update Time Blocks.",
|
|
51017
|
+
safety: "update",
|
|
51168
51018
|
destructive: false,
|
|
51169
51019
|
cli: {
|
|
51170
51020
|
group: ["time-blocks"],
|
|
51171
|
-
command: "
|
|
51172
|
-
interactive: "
|
|
51021
|
+
command: "partial-update",
|
|
51022
|
+
interactive: "default"
|
|
51173
51023
|
},
|
|
51174
51024
|
mcp: { entityTool: "time-blocks" },
|
|
51175
|
-
inputSchema:
|
|
51025
|
+
inputSchema: /* @__PURE__ */ looseObject({
|
|
51026
|
+
payload: /* @__PURE__ */ looseObject({
|
|
51027
|
+
completed: /* @__PURE__ */ optional$1(/* @__PURE__ */ boolean$1()),
|
|
51028
|
+
duration: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2()),
|
|
51029
|
+
outbound_sync: /* @__PURE__ */ optional$1(/* @__PURE__ */ boolean$1()),
|
|
51030
|
+
start: /* @__PURE__ */ optional$1(apiDateTimeString),
|
|
51031
|
+
task_id: /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2())
|
|
51032
|
+
}),
|
|
51033
|
+
task_id: /* @__PURE__ */ number$2(),
|
|
51034
|
+
time_block_id: /* @__PURE__ */ number$2()
|
|
51035
|
+
}),
|
|
51176
51036
|
execute: (input, { client }) => {
|
|
51177
51037
|
const data = input;
|
|
51178
|
-
return client.
|
|
51038
|
+
return client.runGeneratedRequest("partialUpdateTimeBlockWithOrg", () => callGeneratedRequest(partialUpdateTimeBlockWithOrg, [
|
|
51039
|
+
client.httpClient,
|
|
51040
|
+
client.organizationId,
|
|
51041
|
+
client.workspaceIdNumber,
|
|
51042
|
+
data.task_id,
|
|
51043
|
+
data.time_block_id,
|
|
51044
|
+
data.payload ?? data.data ?? data,
|
|
51045
|
+
void 0
|
|
51046
|
+
]));
|
|
51179
51047
|
}
|
|
51180
51048
|
},
|
|
51181
51049
|
{
|
|
@@ -51255,27 +51123,6 @@ const generatedFocusOperations = [
|
|
|
51255
51123
|
interactive: "default"
|
|
51256
51124
|
},
|
|
51257
51125
|
mcp: { entityTool: "time-blocks" },
|
|
51258
|
-
inputSchema: timeBlockUpdateSchema,
|
|
51259
|
-
execute: (input, { client }) => {
|
|
51260
|
-
const data = input;
|
|
51261
|
-
return client.updateTimeBlock(data.task_id, data.time_block_id, data.payload);
|
|
51262
|
-
}
|
|
51263
|
-
},
|
|
51264
|
-
{
|
|
51265
|
-
id: "focus.time-blocks.update-with-org",
|
|
51266
|
-
family: "focus",
|
|
51267
|
-
resource: "time-blocks",
|
|
51268
|
-
action: "update-with-org",
|
|
51269
|
-
title: "Update With Org Time Blocks",
|
|
51270
|
-
description: "Update With Org Time Blocks.",
|
|
51271
|
-
safety: "update",
|
|
51272
|
-
destructive: false,
|
|
51273
|
-
cli: {
|
|
51274
|
-
group: ["time-blocks"],
|
|
51275
|
-
command: "update-with-org",
|
|
51276
|
-
interactive: "default"
|
|
51277
|
-
},
|
|
51278
|
-
mcp: { entityTool: "time-blocks" },
|
|
51279
51126
|
inputSchema: /* @__PURE__ */ looseObject({
|
|
51280
51127
|
payload: /* @__PURE__ */ looseObject({
|
|
51281
51128
|
start: apiDateTimeString,
|
|
@@ -53785,7 +53632,6 @@ const focusOperationOverrides = {
|
|
|
53785
53632
|
...projectAttachmentOverrides,
|
|
53786
53633
|
...rateOverrides,
|
|
53787
53634
|
...readOnlyPostOverrides,
|
|
53788
|
-
...timeBlockOverrides,
|
|
53789
53635
|
...timeEntryOverrides,
|
|
53790
53636
|
...versionOverrides,
|
|
53791
53637
|
...statusOverrides,
|
|
@@ -53860,7 +53706,7 @@ Entity mutations and \`profile-remove\` issue a \`confirm_token\` on the first c
|
|
|
53860
53706
|
|
|
53861
53707
|
- Tasks are work items; projects group tasks.
|
|
53862
53708
|
- Task priority levels when setting priority: \`none\`, \`low\`, \`medium\`, \`high\`.
|
|
53863
|
-
- Time
|
|
53709
|
+
- Time entries are tracked time.
|
|
53864
53710
|
`;
|
|
53865
53711
|
if (options.authenticated) return `You are connected to the Toggl 2.0 workspace ${options.workspaceLabel ?? "your workspace"}.
|
|
53866
53712
|
|
|
@@ -54877,7 +54723,7 @@ function registerWorkspaceTools(server) {
|
|
|
54877
54723
|
//#region src/package-version.ts
|
|
54878
54724
|
function mcpPackageVersion() {
|
|
54879
54725
|
try {
|
|
54880
|
-
return "1.11.
|
|
54726
|
+
return "1.11.67";
|
|
54881
54727
|
} catch {
|
|
54882
54728
|
return "unknown";
|
|
54883
54729
|
}
|
|
@@ -55052,7 +54898,7 @@ import_main.default.config({
|
|
|
55052
54898
|
quiet: true,
|
|
55053
54899
|
ignore: ["MISSING_ENV_FILE"]
|
|
55054
54900
|
});
|
|
55055
|
-
const packageVersion = "1.11.
|
|
54901
|
+
const packageVersion = "1.11.67";
|
|
55056
54902
|
function resolvePublicUrls() {
|
|
55057
54903
|
return {
|
|
55058
54904
|
focusApiUrl: process.env.TOGGL_FOCUS_API_URL ?? "https://focus.toggl.com",
|
|
@@ -55117,4 +54963,4 @@ function bootstrapServer(options = {}) {
|
|
|
55117
54963
|
//#endregion
|
|
55118
54964
|
export { initProductAnalytics as a, shutdownProductAnalytics as c, getProductAnalyticsDistinctId as i, runMcpCli as n, redactUnsafeSentryMessages as o, captureToolInvocation as r, resolveProductAnalyticsDistinctId as s, bootstrapServer as t };
|
|
55119
54965
|
|
|
55120
|
-
//# sourceMappingURL=src-
|
|
54966
|
+
//# sourceMappingURL=src-C45SLn6O.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: toggl-mcp
|
|
3
|
-
description: Use the Toggl 2.0 MCP server to read and mutate Toggl 2.0 data (tasks, projects, time
|
|
3
|
+
description: Use the Toggl 2.0 MCP server to read and mutate Toggl 2.0 data (tasks, projects, time entries, saved views, custom fields, attachments, organization and org-* domains, org-time-off-me, shared-status/holidays/working-hours tools), manage workspaces and saved profiles, authenticate, and mirror CLI-style workflows from an MCP client. Trigger when the user connects through Model Context Protocol tools rather than the terminal, or asks how to use toggl-focus MCP tools, confirm_token, dry_run, file uploads/downloads, workspace refresh, or profile switching.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Toggl 2.0 MCP
|