@togglhq/mcp 1.6.16 → 1.7.1
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/build/cli.js +1 -1
- package/build/index.js +1 -1
- package/build/{src-DO6utvuq.js → src-uEpTijXT.js} +460 -227
- package/package.json +1 -1
|
@@ -11521,7 +11521,7 @@ const _safeParse = (_Err) => (schema, value, _ctx) => {
|
|
|
11521
11521
|
data: result.value
|
|
11522
11522
|
};
|
|
11523
11523
|
};
|
|
11524
|
-
const safeParse$
|
|
11524
|
+
const safeParse$3 = /* @__PURE__ */ _safeParse($ZodRealError);
|
|
11525
11525
|
const _safeParseAsync = (_Err) => async (schema, value, _ctx) => {
|
|
11526
11526
|
const ctx = _ctx ? Object.assign(_ctx, { async: true }) : { async: true };
|
|
11527
11527
|
let result = schema._zod.run({
|
|
@@ -12101,7 +12101,7 @@ const $ZodType = /* @__PURE__ */ $constructor("$ZodType", (inst, def) => {
|
|
|
12101
12101
|
defineLazy(inst, "~standard", () => ({
|
|
12102
12102
|
validate: (value) => {
|
|
12103
12103
|
try {
|
|
12104
|
-
const r = safeParse$
|
|
12104
|
+
const r = safeParse$3(inst, value);
|
|
12105
12105
|
return r.success ? { value: r.data } : { issues: r.error?.issues };
|
|
12106
12106
|
} catch (_) {
|
|
12107
12107
|
return safeParseAsync$1(inst, value).then((r) => r.success ? { value: r.data } : { issues: r.error?.issues });
|
|
@@ -14440,9 +14440,9 @@ $constructor("ZodError", initializer);
|
|
|
14440
14440
|
const ZodRealError = $constructor("ZodError", initializer, { Parent: Error });
|
|
14441
14441
|
//#endregion
|
|
14442
14442
|
//#region ../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/classic/parse.js
|
|
14443
|
-
const parse
|
|
14443
|
+
const parse = /* @__PURE__ */ _parse(ZodRealError);
|
|
14444
14444
|
const parseAsync = /* @__PURE__ */ _parseAsync(ZodRealError);
|
|
14445
|
-
const safeParse$
|
|
14445
|
+
const safeParse$2 = /* @__PURE__ */ _safeParse(ZodRealError);
|
|
14446
14446
|
const safeParseAsync = /* @__PURE__ */ _safeParseAsync(ZodRealError);
|
|
14447
14447
|
const encode = /* @__PURE__ */ _encode(ZodRealError);
|
|
14448
14448
|
const decode = /* @__PURE__ */ _decode(ZodRealError);
|
|
@@ -14478,8 +14478,8 @@ const ZodType = /* @__PURE__ */ $constructor("ZodType", (inst, def) => {
|
|
|
14478
14478
|
reg.add(inst, meta);
|
|
14479
14479
|
return inst;
|
|
14480
14480
|
});
|
|
14481
|
-
inst.parse = (data, params) => parse
|
|
14482
|
-
inst.safeParse = (data, params) => safeParse$
|
|
14481
|
+
inst.parse = (data, params) => parse(inst, data, params, { callee: inst.parse });
|
|
14482
|
+
inst.safeParse = (data, params) => safeParse$2(inst, data, params);
|
|
14483
14483
|
inst.parseAsync = async (data, params) => parseAsync(inst, data, params, { callee: inst.parseAsync });
|
|
14484
14484
|
inst.safeParseAsync = async (data, params) => safeParseAsync(inst, data, params);
|
|
14485
14485
|
inst.spa = inst.safeParseAsync;
|
|
@@ -16640,7 +16640,7 @@ function assertCompleteRequestResourceTemplate(request) {
|
|
|
16640
16640
|
* Returns a discriminated union with success/error.
|
|
16641
16641
|
*/
|
|
16642
16642
|
function parseSchema(schema, data) {
|
|
16643
|
-
return safeParse$
|
|
16643
|
+
return safeParse$2(schema, data);
|
|
16644
16644
|
}
|
|
16645
16645
|
/**
|
|
16646
16646
|
* Checks if a task status represents a terminal state.
|
|
@@ -25636,6 +25636,46 @@ function minValue$1(requirement, message$1) {
|
|
|
25636
25636
|
}
|
|
25637
25637
|
};
|
|
25638
25638
|
}
|
|
25639
|
+
/**
|
|
25640
|
+
* Checks if a dataset is partially typed.
|
|
25641
|
+
*
|
|
25642
|
+
* @param dataset The dataset to check.
|
|
25643
|
+
* @param paths The paths to check.
|
|
25644
|
+
*
|
|
25645
|
+
* @returns Whether it is partially typed.
|
|
25646
|
+
*
|
|
25647
|
+
* @internal
|
|
25648
|
+
*/
|
|
25649
|
+
/* @__NO_SIDE_EFFECTS__ */
|
|
25650
|
+
function _isPartiallyTyped(dataset, paths) {
|
|
25651
|
+
if (dataset.issues) for (const path of paths) for (const issue of dataset.issues) {
|
|
25652
|
+
let typed = false;
|
|
25653
|
+
const bound = Math.min(path.length, issue.path?.length ?? 0);
|
|
25654
|
+
for (let index = 0; index < bound; index++) if (path[index] !== issue.path[index].key && (path[index] !== "$" || issue.path[index].type !== "array")) {
|
|
25655
|
+
typed = true;
|
|
25656
|
+
break;
|
|
25657
|
+
}
|
|
25658
|
+
if (!typed) return false;
|
|
25659
|
+
}
|
|
25660
|
+
return true;
|
|
25661
|
+
}
|
|
25662
|
+
/* @__NO_SIDE_EFFECTS__ */
|
|
25663
|
+
function partialCheck(paths, requirement, message$1) {
|
|
25664
|
+
return {
|
|
25665
|
+
kind: "validation",
|
|
25666
|
+
type: "partial_check",
|
|
25667
|
+
reference: partialCheck,
|
|
25668
|
+
async: false,
|
|
25669
|
+
expects: null,
|
|
25670
|
+
paths,
|
|
25671
|
+
requirement,
|
|
25672
|
+
message: message$1,
|
|
25673
|
+
"~run"(dataset, config$1) {
|
|
25674
|
+
if ((dataset.typed || /* @__PURE__ */ _isPartiallyTyped(dataset, paths)) && !this.requirement(dataset.value)) _addIssue$1(this, "input", dataset, config$1);
|
|
25675
|
+
return dataset;
|
|
25676
|
+
}
|
|
25677
|
+
};
|
|
25678
|
+
}
|
|
25639
25679
|
/* @__NO_SIDE_EFFECTS__ */
|
|
25640
25680
|
function regex(requirement, message$1) {
|
|
25641
25681
|
return {
|
|
@@ -25653,6 +25693,24 @@ function regex(requirement, message$1) {
|
|
|
25653
25693
|
};
|
|
25654
25694
|
}
|
|
25655
25695
|
/**
|
|
25696
|
+
* Creates a to upper case transformation action.
|
|
25697
|
+
*
|
|
25698
|
+
* @returns A to upper case action.
|
|
25699
|
+
*/
|
|
25700
|
+
/* @__NO_SIDE_EFFECTS__ */
|
|
25701
|
+
function toUpperCase() {
|
|
25702
|
+
return {
|
|
25703
|
+
kind: "transformation",
|
|
25704
|
+
type: "to_upper_case",
|
|
25705
|
+
reference: toUpperCase,
|
|
25706
|
+
async: false,
|
|
25707
|
+
"~run"(dataset) {
|
|
25708
|
+
dataset.value = dataset.value.toUpperCase();
|
|
25709
|
+
return dataset;
|
|
25710
|
+
}
|
|
25711
|
+
};
|
|
25712
|
+
}
|
|
25713
|
+
/**
|
|
25656
25714
|
* Creates a custom transformation action.
|
|
25657
25715
|
*
|
|
25658
25716
|
* @param operation The transformation operation.
|
|
@@ -25674,6 +25732,24 @@ function transform$1(operation) {
|
|
|
25674
25732
|
};
|
|
25675
25733
|
}
|
|
25676
25734
|
/**
|
|
25735
|
+
* Creates a trim transformation action.
|
|
25736
|
+
*
|
|
25737
|
+
* @returns A trim action.
|
|
25738
|
+
*/
|
|
25739
|
+
/* @__NO_SIDE_EFFECTS__ */
|
|
25740
|
+
function trim() {
|
|
25741
|
+
return {
|
|
25742
|
+
kind: "transformation",
|
|
25743
|
+
type: "trim",
|
|
25744
|
+
reference: trim,
|
|
25745
|
+
async: false,
|
|
25746
|
+
"~run"(dataset) {
|
|
25747
|
+
dataset.value = dataset.value.trim();
|
|
25748
|
+
return dataset;
|
|
25749
|
+
}
|
|
25750
|
+
};
|
|
25751
|
+
}
|
|
25752
|
+
/**
|
|
25677
25753
|
* Returns the fallback value of the schema.
|
|
25678
25754
|
*
|
|
25679
25755
|
* @param schema The schema to get it from.
|
|
@@ -25687,6 +25763,44 @@ function getFallback$1(schema, dataset, config$1) {
|
|
|
25687
25763
|
return typeof schema.fallback === "function" ? schema.fallback(dataset, config$1) : schema.fallback;
|
|
25688
25764
|
}
|
|
25689
25765
|
/**
|
|
25766
|
+
* Forwards the issues of the passed validation action.
|
|
25767
|
+
*
|
|
25768
|
+
* @param action The validation action.
|
|
25769
|
+
* @param path The path to forward the issues to.
|
|
25770
|
+
*
|
|
25771
|
+
* @returns The modified action.
|
|
25772
|
+
*/
|
|
25773
|
+
/* @__NO_SIDE_EFFECTS__ */
|
|
25774
|
+
function forward(action, path) {
|
|
25775
|
+
return {
|
|
25776
|
+
...action,
|
|
25777
|
+
"~run"(dataset, config$1) {
|
|
25778
|
+
const prevIssues = dataset.issues && [...dataset.issues];
|
|
25779
|
+
dataset = action["~run"](dataset, config$1);
|
|
25780
|
+
if (dataset.issues) {
|
|
25781
|
+
for (const issue of dataset.issues) if (!prevIssues?.includes(issue)) {
|
|
25782
|
+
let pathInput = dataset.value;
|
|
25783
|
+
for (const key of path) {
|
|
25784
|
+
const pathValue = pathInput[key];
|
|
25785
|
+
const pathItem = {
|
|
25786
|
+
type: "unknown",
|
|
25787
|
+
origin: "value",
|
|
25788
|
+
input: pathInput,
|
|
25789
|
+
key,
|
|
25790
|
+
value: pathValue
|
|
25791
|
+
};
|
|
25792
|
+
if (issue.path) issue.path.push(pathItem);
|
|
25793
|
+
else issue.path = [pathItem];
|
|
25794
|
+
if (!pathValue) break;
|
|
25795
|
+
pathInput = pathValue;
|
|
25796
|
+
}
|
|
25797
|
+
}
|
|
25798
|
+
}
|
|
25799
|
+
return dataset;
|
|
25800
|
+
}
|
|
25801
|
+
};
|
|
25802
|
+
}
|
|
25803
|
+
/**
|
|
25690
25804
|
* Returns the default value of the schema.
|
|
25691
25805
|
*
|
|
25692
25806
|
* @param schema The schema to get it from.
|
|
@@ -26140,6 +26254,87 @@ function record$1(key, value$1, message$1) {
|
|
|
26140
26254
|
};
|
|
26141
26255
|
}
|
|
26142
26256
|
/* @__NO_SIDE_EFFECTS__ */
|
|
26257
|
+
function strictObject(entries$1, message$1) {
|
|
26258
|
+
return {
|
|
26259
|
+
kind: "schema",
|
|
26260
|
+
type: "strict_object",
|
|
26261
|
+
reference: strictObject,
|
|
26262
|
+
expects: "Object",
|
|
26263
|
+
async: false,
|
|
26264
|
+
entries: entries$1,
|
|
26265
|
+
message: message$1,
|
|
26266
|
+
get "~standard"() {
|
|
26267
|
+
return /* @__PURE__ */ _getStandardProps$1(this);
|
|
26268
|
+
},
|
|
26269
|
+
"~run"(dataset, config$1) {
|
|
26270
|
+
const input = dataset.value;
|
|
26271
|
+
if (input && typeof input === "object") {
|
|
26272
|
+
dataset.typed = true;
|
|
26273
|
+
dataset.value = {};
|
|
26274
|
+
for (const key in this.entries) {
|
|
26275
|
+
const valueSchema = this.entries[key];
|
|
26276
|
+
if (key in input || (valueSchema.type === "exact_optional" || valueSchema.type === "optional" || valueSchema.type === "nullish") && valueSchema.default !== void 0) {
|
|
26277
|
+
const value$1 = key in input ? input[key] : /* @__PURE__ */ getDefault$1(valueSchema);
|
|
26278
|
+
const valueDataset = valueSchema["~run"]({ value: value$1 }, config$1);
|
|
26279
|
+
if (valueDataset.issues) {
|
|
26280
|
+
const pathItem = {
|
|
26281
|
+
type: "object",
|
|
26282
|
+
origin: "value",
|
|
26283
|
+
input,
|
|
26284
|
+
key,
|
|
26285
|
+
value: value$1
|
|
26286
|
+
};
|
|
26287
|
+
for (const issue of valueDataset.issues) {
|
|
26288
|
+
if (issue.path) issue.path.unshift(pathItem);
|
|
26289
|
+
else issue.path = [pathItem];
|
|
26290
|
+
dataset.issues?.push(issue);
|
|
26291
|
+
}
|
|
26292
|
+
if (!dataset.issues) dataset.issues = valueDataset.issues;
|
|
26293
|
+
if (config$1.abortEarly) {
|
|
26294
|
+
dataset.typed = false;
|
|
26295
|
+
break;
|
|
26296
|
+
}
|
|
26297
|
+
}
|
|
26298
|
+
if (!valueDataset.typed) dataset.typed = false;
|
|
26299
|
+
dataset.value[key] = valueDataset.value;
|
|
26300
|
+
} else if (valueSchema.fallback !== void 0) dataset.value[key] = /* @__PURE__ */ getFallback$1(valueSchema);
|
|
26301
|
+
else if (valueSchema.type !== "exact_optional" && valueSchema.type !== "optional" && valueSchema.type !== "nullish") {
|
|
26302
|
+
_addIssue$1(this, "key", dataset, config$1, {
|
|
26303
|
+
input: void 0,
|
|
26304
|
+
expected: `"${key}"`,
|
|
26305
|
+
path: [{
|
|
26306
|
+
type: "object",
|
|
26307
|
+
origin: "key",
|
|
26308
|
+
input,
|
|
26309
|
+
key,
|
|
26310
|
+
value: input[key]
|
|
26311
|
+
}]
|
|
26312
|
+
});
|
|
26313
|
+
if (config$1.abortEarly) break;
|
|
26314
|
+
}
|
|
26315
|
+
}
|
|
26316
|
+
if (!dataset.issues || !config$1.abortEarly) {
|
|
26317
|
+
for (const key in input) if (!(key in this.entries)) {
|
|
26318
|
+
_addIssue$1(this, "key", dataset, config$1, {
|
|
26319
|
+
input: key,
|
|
26320
|
+
expected: "never",
|
|
26321
|
+
path: [{
|
|
26322
|
+
type: "object",
|
|
26323
|
+
origin: "key",
|
|
26324
|
+
input,
|
|
26325
|
+
key,
|
|
26326
|
+
value: input[key]
|
|
26327
|
+
}]
|
|
26328
|
+
});
|
|
26329
|
+
break;
|
|
26330
|
+
}
|
|
26331
|
+
}
|
|
26332
|
+
} else _addIssue$1(this, "type", dataset, config$1);
|
|
26333
|
+
return dataset;
|
|
26334
|
+
}
|
|
26335
|
+
};
|
|
26336
|
+
}
|
|
26337
|
+
/* @__NO_SIDE_EFFECTS__ */
|
|
26143
26338
|
function string$1(message$1) {
|
|
26144
26339
|
return {
|
|
26145
26340
|
kind: "schema",
|
|
@@ -26277,7 +26472,7 @@ function pipe$2(...pipe$1) {
|
|
|
26277
26472
|
* @returns The parse result.
|
|
26278
26473
|
*/
|
|
26279
26474
|
/* @__NO_SIDE_EFFECTS__ */
|
|
26280
|
-
function safeParse(schema, input, config$1) {
|
|
26475
|
+
function safeParse$1(schema, input, config$1) {
|
|
26281
26476
|
const dataset = schema["~run"]({ value: input }, /* @__PURE__ */ getGlobalConfig$1(config$1));
|
|
26282
26477
|
return {
|
|
26283
26478
|
typed: dataset.typed,
|
|
@@ -28227,21 +28422,6 @@ function _joinExpects(values$1, separator) {
|
|
|
28227
28422
|
return list[0] ?? "never";
|
|
28228
28423
|
}
|
|
28229
28424
|
/**
|
|
28230
|
-
* A Valibot error with useful information.
|
|
28231
|
-
*/
|
|
28232
|
-
var ValiError = class extends Error {
|
|
28233
|
-
/**
|
|
28234
|
-
* Creates a Valibot error with useful information.
|
|
28235
|
-
*
|
|
28236
|
-
* @param issues The error issues.
|
|
28237
|
-
*/
|
|
28238
|
-
constructor(issues) {
|
|
28239
|
-
super(issues[0].message);
|
|
28240
|
-
this.name = "ValiError";
|
|
28241
|
-
this.issues = issues;
|
|
28242
|
-
}
|
|
28243
|
-
};
|
|
28244
|
-
/**
|
|
28245
28425
|
* [Email address](https://en.wikipedia.org/wiki/Email_address) regex.
|
|
28246
28426
|
*/
|
|
28247
28427
|
const EMAIL_REGEX = /^[\w+-]+(?:\.[\w+-]+)*@[\da-z]+(?:[.-][\da-z]+)*\.[a-z]{2,}$/iu;
|
|
@@ -28893,20 +29073,6 @@ function unknown() {
|
|
|
28893
29073
|
}
|
|
28894
29074
|
};
|
|
28895
29075
|
}
|
|
28896
|
-
/**
|
|
28897
|
-
* Parses an unknown input based on a schema.
|
|
28898
|
-
*
|
|
28899
|
-
* @param schema The schema to be used.
|
|
28900
|
-
* @param input The input to be parsed.
|
|
28901
|
-
* @param config The parse configuration.
|
|
28902
|
-
*
|
|
28903
|
-
* @returns The parsed input.
|
|
28904
|
-
*/
|
|
28905
|
-
function parse(schema, input, config$1) {
|
|
28906
|
-
const dataset = schema["~run"]({ value: input }, /* @__PURE__ */ getGlobalConfig(config$1));
|
|
28907
|
-
if (dataset.issues) throw new ValiError(dataset.issues);
|
|
28908
|
-
return dataset.value;
|
|
28909
|
-
}
|
|
28910
29076
|
/* @__NO_SIDE_EFFECTS__ */
|
|
28911
29077
|
function pipe(...pipe$1) {
|
|
28912
29078
|
return {
|
|
@@ -28927,6 +29093,25 @@ function pipe(...pipe$1) {
|
|
|
28927
29093
|
}
|
|
28928
29094
|
};
|
|
28929
29095
|
}
|
|
29096
|
+
/**
|
|
29097
|
+
* Parses an unknown input based on a schema.
|
|
29098
|
+
*
|
|
29099
|
+
* @param schema The schema to be used.
|
|
29100
|
+
* @param input The input to be parsed.
|
|
29101
|
+
* @param config The parse configuration.
|
|
29102
|
+
*
|
|
29103
|
+
* @returns The parse result.
|
|
29104
|
+
*/
|
|
29105
|
+
/* @__NO_SIDE_EFFECTS__ */
|
|
29106
|
+
function safeParse(schema, input, config$1) {
|
|
29107
|
+
const dataset = schema["~run"]({ value: input }, /* @__PURE__ */ getGlobalConfig(config$1));
|
|
29108
|
+
return {
|
|
29109
|
+
typed: dataset.typed,
|
|
29110
|
+
success: !dataset.issues,
|
|
29111
|
+
output: dataset.value,
|
|
29112
|
+
issues: dataset.issues
|
|
29113
|
+
};
|
|
29114
|
+
}
|
|
28930
29115
|
//#endregion
|
|
28931
29116
|
//#region ../focus-queries/dist/schemas/index.ts
|
|
28932
29117
|
const ClientLiteSchema = /* @__PURE__ */ object({
|
|
@@ -30767,7 +30952,7 @@ const PublicMeEntryRequestSchema = /* @__PURE__ */ object$2({
|
|
|
30767
30952
|
]))
|
|
30768
30953
|
});
|
|
30769
30954
|
//#endregion
|
|
30770
|
-
//#region ../../node_modules/.pnpm/@toggl+queries@2.1.
|
|
30955
|
+
//#region ../../node_modules/.pnpm/@toggl+queries@2.1.212_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_rea_d4c0aa64421be7eab39751554cfd6b93/node_modules/@toggl/queries/dist/org/invitation/requests.mjs
|
|
30771
30956
|
async function getInvitations(httpClient, signal) {
|
|
30772
30957
|
return (await httpClient.get(`invitations`, { signal })).json();
|
|
30773
30958
|
}
|
|
@@ -30784,7 +30969,7 @@ async function resendInvitation(httpClient, organization_id, organization_user_i
|
|
|
30784
30969
|
return (await httpClient.post(`organizations/${organization_id}/invitations/${organization_user_id}/resend`, { signal })).json();
|
|
30785
30970
|
}
|
|
30786
30971
|
//#endregion
|
|
30787
|
-
//#region ../../node_modules/.pnpm/@toggl+queries@2.1.
|
|
30972
|
+
//#region ../../node_modules/.pnpm/@toggl+queries@2.1.212_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_rea_d4c0aa64421be7eab39751554cfd6b93/node_modules/@toggl/queries/dist/org/utils/requests.mjs
|
|
30788
30973
|
function buildSearchParams$1(params, flattenArrays = false) {
|
|
30789
30974
|
const searchParams = new URLSearchParams();
|
|
30790
30975
|
Object.entries(params).forEach(([key, value]) => {
|
|
@@ -30796,7 +30981,7 @@ function buildSearchParams$1(params, flattenArrays = false) {
|
|
|
30796
30981
|
return searchParams;
|
|
30797
30982
|
}
|
|
30798
30983
|
//#endregion
|
|
30799
|
-
//#region ../../node_modules/.pnpm/@toggl+queries@2.1.
|
|
30984
|
+
//#region ../../node_modules/.pnpm/@toggl+queries@2.1.212_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_rea_d4c0aa64421be7eab39751554cfd6b93/node_modules/@toggl/queries/dist/org/organization-user/requests.mjs
|
|
30800
30985
|
async function getOrganizationUser(httpClient, organization_id, organization_user_id, signal) {
|
|
30801
30986
|
return (await httpClient.get(`organizations/${organization_id}/users/${organization_user_id}`, { signal })).json();
|
|
30802
30987
|
}
|
|
@@ -30810,7 +30995,7 @@ async function patchOrganizationUserActive(httpClient, organization_id, organiza
|
|
|
30810
30995
|
return (await httpClient.patch(`organizations/${organization_id}/users/${organization_user_id}/active_status/${status}`, { signal })).json();
|
|
30811
30996
|
}
|
|
30812
30997
|
//#endregion
|
|
30813
|
-
//#region ../../node_modules/.pnpm/@toggl+queries@2.1.
|
|
30998
|
+
//#region ../../node_modules/.pnpm/@toggl+queries@2.1.212_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_rea_d4c0aa64421be7eab39751554cfd6b93/node_modules/@toggl/queries/dist/org/workspace/requests.mjs
|
|
30814
30999
|
async function getWorkspaces(httpClient, organization_id, signal) {
|
|
30815
31000
|
return (await httpClient.get(`organizations/${organization_id}/workspaces`, { signal })).json();
|
|
30816
31001
|
}
|
|
@@ -30830,7 +31015,7 @@ const WorkingHoursUpdateInputSchema = /* @__PURE__ */ object$2({
|
|
|
30830
31015
|
});
|
|
30831
31016
|
const StatusOKSchema = /* @__PURE__ */ object$2({ status: /* @__PURE__ */ string$1() });
|
|
30832
31017
|
//#endregion
|
|
30833
|
-
//#region ../../node_modules/.pnpm/@toggl+queries@2.1.
|
|
31018
|
+
//#region ../../node_modules/.pnpm/@toggl+queries@2.1.212_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_rea_d4c0aa64421be7eab39751554cfd6b93/node_modules/@toggl/queries/dist/shared-data/utils/requests.mjs
|
|
30834
31019
|
const META_SYMBOL = Symbol.for("querygen:response:meta");
|
|
30835
31020
|
function withResponseMeta(data, headers, status) {
|
|
30836
31021
|
if (!data) return data;
|
|
@@ -30857,7 +31042,7 @@ function buildSearchParams(params, flattenArrays = false) {
|
|
|
30857
31042
|
return searchParams;
|
|
30858
31043
|
}
|
|
30859
31044
|
//#endregion
|
|
30860
|
-
//#region ../../node_modules/.pnpm/@toggl+queries@2.1.
|
|
31045
|
+
//#region ../../node_modules/.pnpm/@toggl+queries@2.1.212_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_rea_d4c0aa64421be7eab39751554cfd6b93/node_modules/@toggl/queries/dist/shared-data/public-holidays/requests.mjs
|
|
30861
31046
|
async function getPublicHolidays(httpClient, year, { country, organization_id } = {}, signal) {
|
|
30862
31047
|
const response = await httpClient.get(`shared_data/api/publicholidays/${year}`, {
|
|
30863
31048
|
signal,
|
|
@@ -30869,12 +31054,12 @@ async function getPublicHolidays(httpClient, year, { country, organization_id }
|
|
|
30869
31054
|
return withResponseMeta(await response.json(), response.headers, response.status);
|
|
30870
31055
|
}
|
|
30871
31056
|
//#endregion
|
|
30872
|
-
//#region ../../node_modules/.pnpm/@toggl+queries@2.1.
|
|
31057
|
+
//#region ../../node_modules/.pnpm/@toggl+queries@2.1.212_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_rea_d4c0aa64421be7eab39751554cfd6b93/node_modules/@toggl/queries/dist/shared-data/status/requests.mjs
|
|
30873
31058
|
async function getStatus(httpClient, signal) {
|
|
30874
31059
|
return (await httpClient.get(`shared_data/api/status`, { signal })).json();
|
|
30875
31060
|
}
|
|
30876
31061
|
//#endregion
|
|
30877
|
-
//#region ../../node_modules/.pnpm/@toggl+queries@2.1.
|
|
31062
|
+
//#region ../../node_modules/.pnpm/@toggl+queries@2.1.212_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_rea_d4c0aa64421be7eab39751554cfd6b93/node_modules/@toggl/queries/dist/org/timeoff/requests.mjs
|
|
30878
31063
|
async function timeoffListMyEntries(httpClient, organization_id, { from, to }, signal) {
|
|
30879
31064
|
return (await httpClient.get(`timeoff/organizations/${organization_id}/me`, {
|
|
30880
31065
|
signal,
|
|
@@ -30902,7 +31087,7 @@ async function timeoffDeleteMyEntry(httpClient, organization_id, id, signal) {
|
|
|
30902
31087
|
return response.json();
|
|
30903
31088
|
}
|
|
30904
31089
|
//#endregion
|
|
30905
|
-
//#region ../../node_modules/.pnpm/@toggl+queries@2.1.
|
|
31090
|
+
//#region ../../node_modules/.pnpm/@toggl+queries@2.1.212_@tanstack+react-query@5.99.0_react@19.2.5__@toggl+sync@0.2.4_rea_d4c0aa64421be7eab39751554cfd6b93/node_modules/@toggl/queries/dist/shared-data/working-hours/requests.mjs
|
|
30906
31091
|
async function getMyWorkingHours(httpClient, organization_id, signal) {
|
|
30907
31092
|
return (await httpClient.get(`shared_data/api/workinghours/${organization_id}/me`, { signal })).json();
|
|
30908
31093
|
}
|
|
@@ -31063,7 +31248,7 @@ function validationErrorMessage(issues) {
|
|
|
31063
31248
|
return issues.map((issue) => issue.message ?? "invalid").join("; ");
|
|
31064
31249
|
}
|
|
31065
31250
|
function validateOutput(schema, data, label) {
|
|
31066
|
-
const result = /* @__PURE__ */ safeParse(schema, data);
|
|
31251
|
+
const result = /* @__PURE__ */ safeParse$1(schema, data);
|
|
31067
31252
|
if (!result.success) return {
|
|
31068
31253
|
ok: false,
|
|
31069
31254
|
status: 422,
|
|
@@ -32668,7 +32853,7 @@ function createAuthenticatedClientProxy() {
|
|
|
32668
32853
|
} });
|
|
32669
32854
|
}
|
|
32670
32855
|
//#endregion
|
|
32671
|
-
//#region ../operations/build/
|
|
32856
|
+
//#region ../operations/build/validation-v3-RQf0k.js
|
|
32672
32857
|
const optionalNumber = /* @__PURE__ */ optional$1(/* @__PURE__ */ number$2());
|
|
32673
32858
|
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})`)));
|
|
32674
32859
|
const perPageSchema = perPageField(100);
|
|
@@ -32676,6 +32861,13 @@ const orgUserPerPageSchema = perPageField(200);
|
|
|
32676
32861
|
const DATE_FIELD_RE = /^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d+)?(Z|[+-]\d{2}:\d{2}))?$/;
|
|
32677
32862
|
const dateField = (description) => /* @__PURE__ */ pipe$2(/* @__PURE__ */ string$1(), /* @__PURE__ */ regex(DATE_FIELD_RE, "must be YYYY-MM-DD or RFC3339 datetime (e.g. '2025-01-01' or '2025-01-01T00:00:00Z')"), /* @__PURE__ */ description$1(description));
|
|
32678
32863
|
const apiDateTimeString = /* @__PURE__ */ pipe$2(/* @__PURE__ */ string$1(), /* @__PURE__ */ isoTimestamp());
|
|
32864
|
+
const rateDateSchema = /* @__PURE__ */ pipe$2(/* @__PURE__ */ string$1(), /* @__PURE__ */ isoDate$1());
|
|
32865
|
+
const rateSchedulePayloadSchema = /* @__PURE__ */ pipe$2(/* @__PURE__ */ strictObject({
|
|
32866
|
+
currency: /* @__PURE__ */ pipe$2(/* @__PURE__ */ string$1(), /* @__PURE__ */ trim(), /* @__PURE__ */ toUpperCase(), /* @__PURE__ */ regex(/^[A-Z]{3}$/, "must be exactly three A-Z letters")),
|
|
32867
|
+
hourly_rate: /* @__PURE__ */ pipe$2(/* @__PURE__ */ number$2(), /* @__PURE__ */ minValue$1(0)),
|
|
32868
|
+
start_date: rateDateSchema,
|
|
32869
|
+
end_date: /* @__PURE__ */ optional$1(rateDateSchema)
|
|
32870
|
+
}), /* @__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"]));
|
|
32679
32871
|
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))]);
|
|
32680
32872
|
const timeBlockListSchema = /* @__PURE__ */ object$2({
|
|
32681
32873
|
date_from: dateField("Range start — date-only (e.g. '2025-01-01') or RFC3339 datetime. Date-only is expanded to T00:00:00Z."),
|
|
@@ -32912,10 +33104,58 @@ const clientOverrides = { "focus.clients.list": {
|
|
|
32912
33104
|
}],
|
|
32913
33105
|
aliases: ["ls"]
|
|
32914
33106
|
} };
|
|
33107
|
+
const RATE_CONFLICT_CHECK = {
|
|
33108
|
+
safety: "read",
|
|
33109
|
+
destructive: false
|
|
33110
|
+
};
|
|
33111
|
+
const RATE_SCHEDULE_GUIDANCE = "hourly_rate is in the currency's smallest unit, so it depends on the currency: two-decimal currencies like USD/EUR use cents (5000 = 50.00), zero-decimal ones like JPY/KRW use whole units (5000 = 5000), three-decimal ones like KWD/BHD use thousandths. Reads return the same unit. Omit end_date for an open-ended schedule; when set it must be on or after start_date.";
|
|
33112
|
+
const rateOverrides = {
|
|
33113
|
+
"focus.rates.create-project": { mcp: { entityTool: void 0 } },
|
|
33114
|
+
"focus.rates.billable-check-project-billable-rate-conflicts": {
|
|
33115
|
+
...RATE_CONFLICT_CHECK,
|
|
33116
|
+
agentGuidance: RATE_SCHEDULE_GUIDANCE
|
|
33117
|
+
},
|
|
33118
|
+
"focus.rates.billable-check-project-user-billable-rate-conflicts": {
|
|
33119
|
+
...RATE_CONFLICT_CHECK,
|
|
33120
|
+
agentGuidance: RATE_SCHEDULE_GUIDANCE
|
|
33121
|
+
},
|
|
33122
|
+
"focus.rates.billable-check-workspace-billable-rate-conflicts": {
|
|
33123
|
+
...RATE_CONFLICT_CHECK,
|
|
33124
|
+
agentGuidance: RATE_SCHEDULE_GUIDANCE
|
|
33125
|
+
},
|
|
33126
|
+
"focus.rates.billable-check-workspace-user-billable-rate-conflicts": {
|
|
33127
|
+
...RATE_CONFLICT_CHECK,
|
|
33128
|
+
agentGuidance: RATE_SCHEDULE_GUIDANCE
|
|
33129
|
+
},
|
|
33130
|
+
"focus.rates.billable-upsert-project": { agentGuidance: RATE_SCHEDULE_GUIDANCE },
|
|
33131
|
+
"focus.rates.billable-upsert-project-user": { agentGuidance: RATE_SCHEDULE_GUIDANCE },
|
|
33132
|
+
"focus.rates.billable-upsert-workspace": { agentGuidance: RATE_SCHEDULE_GUIDANCE },
|
|
33133
|
+
"focus.rates.billable-upsert-workspace-user": { agentGuidance: RATE_SCHEDULE_GUIDANCE },
|
|
33134
|
+
"focus.rates.labor-check-project-labor-cost-conflicts": {
|
|
33135
|
+
...RATE_CONFLICT_CHECK,
|
|
33136
|
+
agentGuidance: RATE_SCHEDULE_GUIDANCE
|
|
33137
|
+
},
|
|
33138
|
+
"focus.rates.labor-check-project-user-labor-cost-conflicts": {
|
|
33139
|
+
...RATE_CONFLICT_CHECK,
|
|
33140
|
+
agentGuidance: RATE_SCHEDULE_GUIDANCE
|
|
33141
|
+
},
|
|
33142
|
+
"focus.rates.labor-check-workspace-labor-cost-conflicts": {
|
|
33143
|
+
...RATE_CONFLICT_CHECK,
|
|
33144
|
+
agentGuidance: RATE_SCHEDULE_GUIDANCE
|
|
33145
|
+
},
|
|
33146
|
+
"focus.rates.labor-check-workspace-user-labor-cost-conflicts": {
|
|
33147
|
+
...RATE_CONFLICT_CHECK,
|
|
33148
|
+
agentGuidance: RATE_SCHEDULE_GUIDANCE
|
|
33149
|
+
},
|
|
33150
|
+
"focus.rates.labor-upsert-project-labor-cost-rate": { agentGuidance: RATE_SCHEDULE_GUIDANCE },
|
|
33151
|
+
"focus.rates.labor-upsert-project-user-labor-cost-rate": { agentGuidance: RATE_SCHEDULE_GUIDANCE },
|
|
33152
|
+
"focus.rates.labor-upsert-workspace-labor-cost-rate": { agentGuidance: RATE_SCHEDULE_GUIDANCE },
|
|
33153
|
+
"focus.rates.labor-upsert-workspace-user-labor-cost-rate": { agentGuidance: RATE_SCHEDULE_GUIDANCE }
|
|
33154
|
+
};
|
|
32915
33155
|
const compositeOverrides = {
|
|
32916
33156
|
"focus.composite.create-project": {
|
|
32917
33157
|
description: "Create a project with related data such as members, milestones, rates, and billable rates.",
|
|
32918
|
-
agentGuidance:
|
|
33158
|
+
agentGuidance: `Follow the create action's privacy and billable guidance. Project fields go under payload.project. Set rates through payload.billable_rates, not the legacy payload.rates (start_at/end_at). For payload.billable_rates: ${RATE_SCHEDULE_GUIDANCE}`,
|
|
32919
33159
|
cli: {
|
|
32920
33160
|
group: ["projects"],
|
|
32921
33161
|
command: "create-advanced",
|
|
@@ -33282,6 +33522,18 @@ const projectOverrides = {
|
|
|
33282
33522
|
}
|
|
33283
33523
|
};
|
|
33284
33524
|
const publicHolidayOverrides = { "focus.public-holidays.get-by-user-ids": { cli: { interactive: "hidden" } } };
|
|
33525
|
+
const readOnlyPostOverrides = Object.fromEntries([
|
|
33526
|
+
"focus.reports.get-flexq-data",
|
|
33527
|
+
"focus.reports.get-flexq-dictionary",
|
|
33528
|
+
"focus.reports.get-workload",
|
|
33529
|
+
"focus.tasks.suggestions-get-project-suggestion-for-atask",
|
|
33530
|
+
"focus.tasks.suggestions-get-project-suggestions-for-multiple-tasks",
|
|
33531
|
+
"focus.time-log-suggestions.get-for-acalendar-event-title",
|
|
33532
|
+
"focus.time-log-suggestions.get-for-multiple-calendar-event-titles"
|
|
33533
|
+
].map((id) => [id, {
|
|
33534
|
+
safety: "read",
|
|
33535
|
+
destructive: false
|
|
33536
|
+
}]));
|
|
33285
33537
|
const savedViewOverrides = {
|
|
33286
33538
|
"focus.saved-views.list": {
|
|
33287
33539
|
agentGuidance: "Saved views are per-user, so results belong to the authenticated user. Filter by type (inbox, archive, board, timeline, project, project.tasks, project.board, project.timeline, projects) or by partial name match. pinned=true entries are the user's starred views.",
|
|
@@ -34055,6 +34307,41 @@ const orgSharedOperations = [
|
|
|
34055
34307
|
function operationRequiresConfirmation(operation) {
|
|
34056
34308
|
return operation.destructive || operation.safety !== "read";
|
|
34057
34309
|
}
|
|
34310
|
+
const MAX_ERROR_LENGTH = 200;
|
|
34311
|
+
const MAX_RECEIVED_LENGTH = 40;
|
|
34312
|
+
function formatIssueMessage(issue) {
|
|
34313
|
+
if (issue.message.includes("but received undefined")) return "required";
|
|
34314
|
+
if (issue.received.length <= MAX_RECEIVED_LENGTH) return issue.message;
|
|
34315
|
+
const index = issue.message.lastIndexOf(issue.received);
|
|
34316
|
+
if (index === -1) return issue.message;
|
|
34317
|
+
const closer = issue.received.startsWith("\"") && issue.received.endsWith("\"") ? "\"" : "";
|
|
34318
|
+
const received = `${issue.received.slice(0, MAX_RECEIVED_LENGTH - 3 - closer.length)}...${closer}`;
|
|
34319
|
+
return issue.message.slice(0, index) + received + issue.message.slice(index + issue.received.length);
|
|
34320
|
+
}
|
|
34321
|
+
function formatValibotError(issues, maxLength = MAX_ERROR_LENGTH) {
|
|
34322
|
+
const messages = issues.map((issue) => {
|
|
34323
|
+
const path = issue.path?.map((segment) => String(segment.key)).join(".") ?? "";
|
|
34324
|
+
const message = formatIssueMessage(issue);
|
|
34325
|
+
return path ? `${path}: ${message}` : message;
|
|
34326
|
+
});
|
|
34327
|
+
if (messages.length === 0) return "";
|
|
34328
|
+
const separators = (messages.length - 1) * 2;
|
|
34329
|
+
if (messages.reduce((sum, message) => sum + message.length, separators) <= maxLength) return messages.join("; ");
|
|
34330
|
+
let included = 0;
|
|
34331
|
+
let length = 0;
|
|
34332
|
+
for (const message of messages) {
|
|
34333
|
+
const next = length + (included === 0 ? 0 : 2) + message.length;
|
|
34334
|
+
if (next + `; (+${messages.length - included - 1} more)`.length > maxLength) break;
|
|
34335
|
+
length = next;
|
|
34336
|
+
included += 1;
|
|
34337
|
+
}
|
|
34338
|
+
if (included === 0) {
|
|
34339
|
+
const suffix = messages.length > 1 ? `; (+${messages.length - 1} more)` : "";
|
|
34340
|
+
if (suffix.length >= maxLength) return messages[0].slice(0, Math.max(maxLength, 1));
|
|
34341
|
+
return messages[0].slice(0, maxLength - suffix.length) + suffix;
|
|
34342
|
+
}
|
|
34343
|
+
return [...messages.slice(0, included), `(+${messages.length - included} more)`].join("; ");
|
|
34344
|
+
}
|
|
34058
34345
|
//#endregion
|
|
34059
34346
|
//#region ../focus-queries/dist/audit-log/requests.ts
|
|
34060
34347
|
async function getAuditLog(httpClient, organization_id, workspace_id, from, to, { entity_type, entity_id, action, user_id, page_size, page_number, export: export_ } = {}, signal) {
|
|
@@ -34674,14 +34961,17 @@ async function updateASavedView(httpClient, workspace_id, id, data, signal) {
|
|
|
34674
34961
|
}
|
|
34675
34962
|
//#endregion
|
|
34676
34963
|
//#region ../focus-queries/dist/search/requests.ts
|
|
34677
|
-
async function search(httpClient, organization_id, workspace_id, { keyword, per_group, assignee_user_id, include_drafts }, signal) {
|
|
34964
|
+
async function search(httpClient, organization_id, workspace_id, { keyword, per_group, assignee_user_id, project_id, task_id, include_drafts, exclude_calendar_events }, signal) {
|
|
34678
34965
|
return await httpClient.get(`organizations/${organization_id}/workspaces/${workspace_id}/search`, {
|
|
34679
34966
|
signal,
|
|
34680
34967
|
searchParams: buildSearchParams$3({
|
|
34681
34968
|
keyword,
|
|
34682
34969
|
per_group,
|
|
34683
34970
|
assignee_user_id,
|
|
34684
|
-
|
|
34971
|
+
project_id,
|
|
34972
|
+
task_id,
|
|
34973
|
+
include_drafts,
|
|
34974
|
+
exclude_calendar_events
|
|
34685
34975
|
})
|
|
34686
34976
|
}).json();
|
|
34687
34977
|
}
|
|
@@ -35231,7 +35521,7 @@ const generatedFocusOperations = [
|
|
|
35231
35521
|
action: "get-computations",
|
|
35232
35522
|
title: "Get Computations Capacities",
|
|
35233
35523
|
description: "Get Computations Capacities.",
|
|
35234
|
-
safety: "
|
|
35524
|
+
safety: "read",
|
|
35235
35525
|
destructive: false,
|
|
35236
35526
|
cli: {
|
|
35237
35527
|
group: ["capacities"],
|
|
@@ -35437,12 +35727,7 @@ const generatedFocusOperations = [
|
|
|
35437
35727
|
rrule: /* @__PURE__ */ optional$1(/* @__PURE__ */ string$1()),
|
|
35438
35728
|
start_date: /* @__PURE__ */ optional$1(/* @__PURE__ */ pipe$2(/* @__PURE__ */ string$1(), /* @__PURE__ */ isoDate$1()))
|
|
35439
35729
|
}),
|
|
35440
|
-
billable_rates: /* @__PURE__ */ optional$1(/* @__PURE__ */ array$1(
|
|
35441
|
-
currency: /* @__PURE__ */ string$1(),
|
|
35442
|
-
hourly_rate: /* @__PURE__ */ number$2(),
|
|
35443
|
-
start_date: /* @__PURE__ */ pipe$2(/* @__PURE__ */ string$1(), /* @__PURE__ */ isoDate$1()),
|
|
35444
|
-
end_date: /* @__PURE__ */ optional$1(/* @__PURE__ */ pipe$2(/* @__PURE__ */ string$1(), /* @__PURE__ */ isoDate$1()))
|
|
35445
|
-
}))),
|
|
35730
|
+
billable_rates: /* @__PURE__ */ optional$1(/* @__PURE__ */ array$1(rateSchedulePayloadSchema)),
|
|
35446
35731
|
members: /* @__PURE__ */ optional$1(/* @__PURE__ */ looseObject({
|
|
35447
35732
|
role_id: /* @__PURE__ */ number$2(),
|
|
35448
35733
|
group_ids: /* @__PURE__ */ optional$1(/* @__PURE__ */ array$1(/* @__PURE__ */ number$2())),
|
|
@@ -36865,12 +37150,12 @@ const generatedFocusOperations = [
|
|
|
36865
37150
|
action: "complete",
|
|
36866
37151
|
title: "Complete Projects",
|
|
36867
37152
|
description: "Complete Projects.",
|
|
36868
|
-
safety: "
|
|
37153
|
+
safety: "update",
|
|
36869
37154
|
destructive: false,
|
|
36870
37155
|
cli: {
|
|
36871
37156
|
group: ["projects"],
|
|
36872
37157
|
command: "complete",
|
|
36873
|
-
interactive: "
|
|
37158
|
+
interactive: "default"
|
|
36874
37159
|
},
|
|
36875
37160
|
mcp: { entityTool: "projects" },
|
|
36876
37161
|
inputSchema: /* @__PURE__ */ looseObject({ project_id: /* @__PURE__ */ number$2() }),
|
|
@@ -37529,12 +37814,12 @@ const generatedFocusOperations = [
|
|
|
37529
37814
|
action: "pin",
|
|
37530
37815
|
title: "Pin Projects",
|
|
37531
37816
|
description: "Pin Projects.",
|
|
37532
|
-
safety: "
|
|
37817
|
+
safety: "update",
|
|
37533
37818
|
destructive: false,
|
|
37534
37819
|
cli: {
|
|
37535
37820
|
group: ["projects"],
|
|
37536
37821
|
command: "pin",
|
|
37537
|
-
interactive: "
|
|
37822
|
+
interactive: "default"
|
|
37538
37823
|
},
|
|
37539
37824
|
mcp: { entityTool: "projects" },
|
|
37540
37825
|
inputSchema: /* @__PURE__ */ looseObject({ project_id: /* @__PURE__ */ number$2() }),
|
|
@@ -37556,12 +37841,12 @@ const generatedFocusOperations = [
|
|
|
37556
37841
|
action: "remove-project-member",
|
|
37557
37842
|
title: "Remove Project Member Projects",
|
|
37558
37843
|
description: "Remove Project Member Projects.",
|
|
37559
|
-
safety: "
|
|
37560
|
-
destructive:
|
|
37844
|
+
safety: "delete",
|
|
37845
|
+
destructive: true,
|
|
37561
37846
|
cli: {
|
|
37562
37847
|
group: ["projects"],
|
|
37563
37848
|
command: "remove-project-member",
|
|
37564
|
-
interactive: "
|
|
37849
|
+
interactive: "default"
|
|
37565
37850
|
},
|
|
37566
37851
|
mcp: { entityTool: "projects" },
|
|
37567
37852
|
inputSchema: /* @__PURE__ */ looseObject({
|
|
@@ -37644,12 +37929,12 @@ const generatedFocusOperations = [
|
|
|
37644
37929
|
action: "uncomplete",
|
|
37645
37930
|
title: "Uncomplete Projects",
|
|
37646
37931
|
description: "Uncomplete Projects.",
|
|
37647
|
-
safety: "
|
|
37932
|
+
safety: "update",
|
|
37648
37933
|
destructive: false,
|
|
37649
37934
|
cli: {
|
|
37650
37935
|
group: ["projects"],
|
|
37651
37936
|
command: "uncomplete",
|
|
37652
|
-
interactive: "
|
|
37937
|
+
interactive: "default"
|
|
37653
37938
|
},
|
|
37654
37939
|
mcp: { entityTool: "projects" },
|
|
37655
37940
|
inputSchema: /* @__PURE__ */ looseObject({ project_id: /* @__PURE__ */ number$2() }),
|
|
@@ -37671,12 +37956,12 @@ const generatedFocusOperations = [
|
|
|
37671
37956
|
action: "unpin",
|
|
37672
37957
|
title: "Unpin Projects",
|
|
37673
37958
|
description: "Unpin Projects.",
|
|
37674
|
-
safety: "
|
|
37675
|
-
destructive:
|
|
37959
|
+
safety: "delete",
|
|
37960
|
+
destructive: true,
|
|
37676
37961
|
cli: {
|
|
37677
37962
|
group: ["projects"],
|
|
37678
37963
|
command: "unpin",
|
|
37679
|
-
interactive: "
|
|
37964
|
+
interactive: "default"
|
|
37680
37965
|
},
|
|
37681
37966
|
mcp: { entityTool: "projects" },
|
|
37682
37967
|
inputSchema: /* @__PURE__ */ looseObject({ project_id: /* @__PURE__ */ number$2() }),
|
|
@@ -37842,21 +38127,16 @@ const generatedFocusOperations = [
|
|
|
37842
38127
|
action: "billable-check-project-billable-rate-conflicts",
|
|
37843
38128
|
title: "Billable Check Project Billable Rate Conflicts Rates",
|
|
37844
38129
|
description: "Billable Check Project Billable Rate Conflicts Rates.",
|
|
37845
|
-
safety: "
|
|
38130
|
+
safety: "update",
|
|
37846
38131
|
destructive: false,
|
|
37847
38132
|
cli: {
|
|
37848
38133
|
group: ["rates", "billable"],
|
|
37849
38134
|
command: "check-project-billable-rate-conflicts",
|
|
37850
|
-
interactive: "
|
|
38135
|
+
interactive: "default"
|
|
37851
38136
|
},
|
|
37852
38137
|
mcp: { entityTool: "rates" },
|
|
37853
38138
|
inputSchema: /* @__PURE__ */ looseObject({
|
|
37854
|
-
payload:
|
|
37855
|
-
currency: /* @__PURE__ */ string$1(),
|
|
37856
|
-
hourly_rate: /* @__PURE__ */ number$2(),
|
|
37857
|
-
start_date: /* @__PURE__ */ pipe$2(/* @__PURE__ */ string$1(), /* @__PURE__ */ isoDate$1()),
|
|
37858
|
-
end_date: /* @__PURE__ */ optional$1(/* @__PURE__ */ pipe$2(/* @__PURE__ */ string$1(), /* @__PURE__ */ isoDate$1()))
|
|
37859
|
-
}),
|
|
38139
|
+
payload: rateSchedulePayloadSchema,
|
|
37860
38140
|
project_id: /* @__PURE__ */ number$2()
|
|
37861
38141
|
}),
|
|
37862
38142
|
execute: (input, { client }) => {
|
|
@@ -37878,21 +38158,16 @@ const generatedFocusOperations = [
|
|
|
37878
38158
|
action: "billable-check-project-user-billable-rate-conflicts",
|
|
37879
38159
|
title: "Billable Check Project User Billable Rate Conflicts Rates",
|
|
37880
38160
|
description: "Billable Check Project User Billable Rate Conflicts Rates.",
|
|
37881
|
-
safety: "
|
|
38161
|
+
safety: "update",
|
|
37882
38162
|
destructive: false,
|
|
37883
38163
|
cli: {
|
|
37884
38164
|
group: ["rates", "billable"],
|
|
37885
38165
|
command: "check-project-user-billable-rate-conflicts",
|
|
37886
|
-
interactive: "
|
|
38166
|
+
interactive: "default"
|
|
37887
38167
|
},
|
|
37888
38168
|
mcp: { entityTool: "rates" },
|
|
37889
38169
|
inputSchema: /* @__PURE__ */ looseObject({
|
|
37890
|
-
payload:
|
|
37891
|
-
currency: /* @__PURE__ */ string$1(),
|
|
37892
|
-
hourly_rate: /* @__PURE__ */ number$2(),
|
|
37893
|
-
start_date: /* @__PURE__ */ pipe$2(/* @__PURE__ */ string$1(), /* @__PURE__ */ isoDate$1()),
|
|
37894
|
-
end_date: /* @__PURE__ */ optional$1(/* @__PURE__ */ pipe$2(/* @__PURE__ */ string$1(), /* @__PURE__ */ isoDate$1()))
|
|
37895
|
-
}),
|
|
38170
|
+
payload: rateSchedulePayloadSchema,
|
|
37896
38171
|
project_id: /* @__PURE__ */ number$2(),
|
|
37897
38172
|
user_id: /* @__PURE__ */ number$2()
|
|
37898
38173
|
}),
|
|
@@ -37916,20 +38191,15 @@ const generatedFocusOperations = [
|
|
|
37916
38191
|
action: "billable-check-workspace-billable-rate-conflicts",
|
|
37917
38192
|
title: "Billable Check Workspace Billable Rate Conflicts Rates",
|
|
37918
38193
|
description: "Billable Check Workspace Billable Rate Conflicts Rates.",
|
|
37919
|
-
safety: "
|
|
38194
|
+
safety: "update",
|
|
37920
38195
|
destructive: false,
|
|
37921
38196
|
cli: {
|
|
37922
38197
|
group: ["rates", "billable"],
|
|
37923
38198
|
command: "check-workspace-billable-rate-conflicts",
|
|
37924
|
-
interactive: "
|
|
38199
|
+
interactive: "default"
|
|
37925
38200
|
},
|
|
37926
38201
|
mcp: { entityTool: "rates" },
|
|
37927
|
-
inputSchema: /* @__PURE__ */ looseObject({ payload:
|
|
37928
|
-
currency: /* @__PURE__ */ string$1(),
|
|
37929
|
-
hourly_rate: /* @__PURE__ */ number$2(),
|
|
37930
|
-
start_date: /* @__PURE__ */ pipe$2(/* @__PURE__ */ string$1(), /* @__PURE__ */ isoDate$1()),
|
|
37931
|
-
end_date: /* @__PURE__ */ optional$1(/* @__PURE__ */ pipe$2(/* @__PURE__ */ string$1(), /* @__PURE__ */ isoDate$1()))
|
|
37932
|
-
}) }),
|
|
38202
|
+
inputSchema: /* @__PURE__ */ looseObject({ payload: rateSchedulePayloadSchema }),
|
|
37933
38203
|
execute: (input, { client }) => {
|
|
37934
38204
|
const data = input;
|
|
37935
38205
|
return client.runGeneratedRequest("checkWorkspaceBillableRateConflicts", () => callGeneratedRequest(checkWorkspaceBillableRateConflicts, [
|
|
@@ -37948,21 +38218,16 @@ const generatedFocusOperations = [
|
|
|
37948
38218
|
action: "billable-check-workspace-user-billable-rate-conflicts",
|
|
37949
38219
|
title: "Billable Check Workspace User Billable Rate Conflicts Rates",
|
|
37950
38220
|
description: "Billable Check Workspace User Billable Rate Conflicts Rates.",
|
|
37951
|
-
safety: "
|
|
38221
|
+
safety: "update",
|
|
37952
38222
|
destructive: false,
|
|
37953
38223
|
cli: {
|
|
37954
38224
|
group: ["rates", "billable"],
|
|
37955
38225
|
command: "check-workspace-user-billable-rate-conflicts",
|
|
37956
|
-
interactive: "
|
|
38226
|
+
interactive: "default"
|
|
37957
38227
|
},
|
|
37958
38228
|
mcp: { entityTool: "rates" },
|
|
37959
38229
|
inputSchema: /* @__PURE__ */ looseObject({
|
|
37960
|
-
payload:
|
|
37961
|
-
currency: /* @__PURE__ */ string$1(),
|
|
37962
|
-
hourly_rate: /* @__PURE__ */ number$2(),
|
|
37963
|
-
start_date: /* @__PURE__ */ pipe$2(/* @__PURE__ */ string$1(), /* @__PURE__ */ isoDate$1()),
|
|
37964
|
-
end_date: /* @__PURE__ */ optional$1(/* @__PURE__ */ pipe$2(/* @__PURE__ */ string$1(), /* @__PURE__ */ isoDate$1()))
|
|
37965
|
-
}),
|
|
38230
|
+
payload: rateSchedulePayloadSchema,
|
|
37966
38231
|
user_id: /* @__PURE__ */ number$2()
|
|
37967
38232
|
}),
|
|
37968
38233
|
execute: (input, { client }) => {
|
|
@@ -38366,12 +38631,7 @@ const generatedFocusOperations = [
|
|
|
38366
38631
|
},
|
|
38367
38632
|
mcp: { entityTool: "rates" },
|
|
38368
38633
|
inputSchema: /* @__PURE__ */ looseObject({
|
|
38369
|
-
payload:
|
|
38370
|
-
currency: /* @__PURE__ */ string$1(),
|
|
38371
|
-
hourly_rate: /* @__PURE__ */ number$2(),
|
|
38372
|
-
start_date: /* @__PURE__ */ pipe$2(/* @__PURE__ */ string$1(), /* @__PURE__ */ isoDate$1()),
|
|
38373
|
-
end_date: /* @__PURE__ */ optional$1(/* @__PURE__ */ pipe$2(/* @__PURE__ */ string$1(), /* @__PURE__ */ isoDate$1()))
|
|
38374
|
-
}),
|
|
38634
|
+
payload: rateSchedulePayloadSchema,
|
|
38375
38635
|
project_id: /* @__PURE__ */ number$2()
|
|
38376
38636
|
}),
|
|
38377
38637
|
execute: (input, { client }) => {
|
|
@@ -38402,12 +38662,7 @@ const generatedFocusOperations = [
|
|
|
38402
38662
|
},
|
|
38403
38663
|
mcp: { entityTool: "rates" },
|
|
38404
38664
|
inputSchema: /* @__PURE__ */ looseObject({
|
|
38405
|
-
payload:
|
|
38406
|
-
currency: /* @__PURE__ */ string$1(),
|
|
38407
|
-
hourly_rate: /* @__PURE__ */ number$2(),
|
|
38408
|
-
start_date: /* @__PURE__ */ pipe$2(/* @__PURE__ */ string$1(), /* @__PURE__ */ isoDate$1()),
|
|
38409
|
-
end_date: /* @__PURE__ */ optional$1(/* @__PURE__ */ pipe$2(/* @__PURE__ */ string$1(), /* @__PURE__ */ isoDate$1()))
|
|
38410
|
-
}),
|
|
38665
|
+
payload: rateSchedulePayloadSchema,
|
|
38411
38666
|
project_id: /* @__PURE__ */ number$2(),
|
|
38412
38667
|
user_id: /* @__PURE__ */ number$2()
|
|
38413
38668
|
}),
|
|
@@ -38439,12 +38694,7 @@ const generatedFocusOperations = [
|
|
|
38439
38694
|
interactive: "default"
|
|
38440
38695
|
},
|
|
38441
38696
|
mcp: { entityTool: "rates" },
|
|
38442
|
-
inputSchema: /* @__PURE__ */ looseObject({ payload:
|
|
38443
|
-
currency: /* @__PURE__ */ string$1(),
|
|
38444
|
-
hourly_rate: /* @__PURE__ */ number$2(),
|
|
38445
|
-
start_date: /* @__PURE__ */ pipe$2(/* @__PURE__ */ string$1(), /* @__PURE__ */ isoDate$1()),
|
|
38446
|
-
end_date: /* @__PURE__ */ optional$1(/* @__PURE__ */ pipe$2(/* @__PURE__ */ string$1(), /* @__PURE__ */ isoDate$1()))
|
|
38447
|
-
}) }),
|
|
38697
|
+
inputSchema: /* @__PURE__ */ looseObject({ payload: rateSchedulePayloadSchema }),
|
|
38448
38698
|
execute: (input, { client }) => {
|
|
38449
38699
|
const data = input;
|
|
38450
38700
|
return client.runGeneratedRequest("upsertWorkspaceBillableRate", () => callGeneratedRequest(upsertWorkspaceBillableRate, [
|
|
@@ -38472,12 +38722,7 @@ const generatedFocusOperations = [
|
|
|
38472
38722
|
},
|
|
38473
38723
|
mcp: { entityTool: "rates" },
|
|
38474
38724
|
inputSchema: /* @__PURE__ */ looseObject({
|
|
38475
|
-
payload:
|
|
38476
|
-
currency: /* @__PURE__ */ string$1(),
|
|
38477
|
-
hourly_rate: /* @__PURE__ */ number$2(),
|
|
38478
|
-
start_date: /* @__PURE__ */ pipe$2(/* @__PURE__ */ string$1(), /* @__PURE__ */ isoDate$1()),
|
|
38479
|
-
end_date: /* @__PURE__ */ optional$1(/* @__PURE__ */ pipe$2(/* @__PURE__ */ string$1(), /* @__PURE__ */ isoDate$1()))
|
|
38480
|
-
}),
|
|
38725
|
+
payload: rateSchedulePayloadSchema,
|
|
38481
38726
|
user_id: /* @__PURE__ */ number$2()
|
|
38482
38727
|
}),
|
|
38483
38728
|
execute: (input, { client }) => {
|
|
@@ -38689,21 +38934,16 @@ const generatedFocusOperations = [
|
|
|
38689
38934
|
action: "labor-check-project-labor-cost-conflicts",
|
|
38690
38935
|
title: "Labor Check Project Labor Cost Conflicts Rates",
|
|
38691
38936
|
description: "Labor Check Project Labor Cost Conflicts Rates.",
|
|
38692
|
-
safety: "
|
|
38937
|
+
safety: "update",
|
|
38693
38938
|
destructive: false,
|
|
38694
38939
|
cli: {
|
|
38695
38940
|
group: ["rates", "labor"],
|
|
38696
38941
|
command: "check-project-labor-cost-conflicts",
|
|
38697
|
-
interactive: "
|
|
38942
|
+
interactive: "default"
|
|
38698
38943
|
},
|
|
38699
38944
|
mcp: { entityTool: "rates" },
|
|
38700
38945
|
inputSchema: /* @__PURE__ */ looseObject({
|
|
38701
|
-
payload:
|
|
38702
|
-
currency: /* @__PURE__ */ string$1(),
|
|
38703
|
-
hourly_rate: /* @__PURE__ */ number$2(),
|
|
38704
|
-
start_date: /* @__PURE__ */ pipe$2(/* @__PURE__ */ string$1(), /* @__PURE__ */ isoDate$1()),
|
|
38705
|
-
end_date: /* @__PURE__ */ optional$1(/* @__PURE__ */ pipe$2(/* @__PURE__ */ string$1(), /* @__PURE__ */ isoDate$1()))
|
|
38706
|
-
}),
|
|
38946
|
+
payload: rateSchedulePayloadSchema,
|
|
38707
38947
|
project_id: /* @__PURE__ */ number$2()
|
|
38708
38948
|
}),
|
|
38709
38949
|
execute: (input, { client }) => {
|
|
@@ -38725,21 +38965,16 @@ const generatedFocusOperations = [
|
|
|
38725
38965
|
action: "labor-check-project-user-labor-cost-conflicts",
|
|
38726
38966
|
title: "Labor Check Project User Labor Cost Conflicts Rates",
|
|
38727
38967
|
description: "Labor Check Project User Labor Cost Conflicts Rates.",
|
|
38728
|
-
safety: "
|
|
38968
|
+
safety: "update",
|
|
38729
38969
|
destructive: false,
|
|
38730
38970
|
cli: {
|
|
38731
38971
|
group: ["rates", "labor"],
|
|
38732
38972
|
command: "check-project-user-labor-cost-conflicts",
|
|
38733
|
-
interactive: "
|
|
38973
|
+
interactive: "default"
|
|
38734
38974
|
},
|
|
38735
38975
|
mcp: { entityTool: "rates" },
|
|
38736
38976
|
inputSchema: /* @__PURE__ */ looseObject({
|
|
38737
|
-
payload:
|
|
38738
|
-
currency: /* @__PURE__ */ string$1(),
|
|
38739
|
-
hourly_rate: /* @__PURE__ */ number$2(),
|
|
38740
|
-
start_date: /* @__PURE__ */ pipe$2(/* @__PURE__ */ string$1(), /* @__PURE__ */ isoDate$1()),
|
|
38741
|
-
end_date: /* @__PURE__ */ optional$1(/* @__PURE__ */ pipe$2(/* @__PURE__ */ string$1(), /* @__PURE__ */ isoDate$1()))
|
|
38742
|
-
}),
|
|
38977
|
+
payload: rateSchedulePayloadSchema,
|
|
38743
38978
|
project_id: /* @__PURE__ */ number$2(),
|
|
38744
38979
|
user_id: /* @__PURE__ */ number$2()
|
|
38745
38980
|
}),
|
|
@@ -38763,20 +38998,15 @@ const generatedFocusOperations = [
|
|
|
38763
38998
|
action: "labor-check-workspace-labor-cost-conflicts",
|
|
38764
38999
|
title: "Labor Check Workspace Labor Cost Conflicts Rates",
|
|
38765
39000
|
description: "Labor Check Workspace Labor Cost Conflicts Rates.",
|
|
38766
|
-
safety: "
|
|
39001
|
+
safety: "update",
|
|
38767
39002
|
destructive: false,
|
|
38768
39003
|
cli: {
|
|
38769
39004
|
group: ["rates", "labor"],
|
|
38770
39005
|
command: "check-workspace-labor-cost-conflicts",
|
|
38771
|
-
interactive: "
|
|
39006
|
+
interactive: "default"
|
|
38772
39007
|
},
|
|
38773
39008
|
mcp: { entityTool: "rates" },
|
|
38774
|
-
inputSchema: /* @__PURE__ */ looseObject({ payload:
|
|
38775
|
-
currency: /* @__PURE__ */ string$1(),
|
|
38776
|
-
hourly_rate: /* @__PURE__ */ number$2(),
|
|
38777
|
-
start_date: /* @__PURE__ */ pipe$2(/* @__PURE__ */ string$1(), /* @__PURE__ */ isoDate$1()),
|
|
38778
|
-
end_date: /* @__PURE__ */ optional$1(/* @__PURE__ */ pipe$2(/* @__PURE__ */ string$1(), /* @__PURE__ */ isoDate$1()))
|
|
38779
|
-
}) }),
|
|
39009
|
+
inputSchema: /* @__PURE__ */ looseObject({ payload: rateSchedulePayloadSchema }),
|
|
38780
39010
|
execute: (input, { client }) => {
|
|
38781
39011
|
const data = input;
|
|
38782
39012
|
return client.runGeneratedRequest("checkWorkspaceLaborCostConflicts", () => callGeneratedRequest(checkWorkspaceLaborCostConflicts, [
|
|
@@ -38795,21 +39025,16 @@ const generatedFocusOperations = [
|
|
|
38795
39025
|
action: "labor-check-workspace-user-labor-cost-conflicts",
|
|
38796
39026
|
title: "Labor Check Workspace User Labor Cost Conflicts Rates",
|
|
38797
39027
|
description: "Labor Check Workspace User Labor Cost Conflicts Rates.",
|
|
38798
|
-
safety: "
|
|
39028
|
+
safety: "update",
|
|
38799
39029
|
destructive: false,
|
|
38800
39030
|
cli: {
|
|
38801
39031
|
group: ["rates", "labor"],
|
|
38802
39032
|
command: "check-workspace-user-labor-cost-conflicts",
|
|
38803
|
-
interactive: "
|
|
39033
|
+
interactive: "default"
|
|
38804
39034
|
},
|
|
38805
39035
|
mcp: { entityTool: "rates" },
|
|
38806
39036
|
inputSchema: /* @__PURE__ */ looseObject({
|
|
38807
|
-
payload:
|
|
38808
|
-
currency: /* @__PURE__ */ string$1(),
|
|
38809
|
-
hourly_rate: /* @__PURE__ */ number$2(),
|
|
38810
|
-
start_date: /* @__PURE__ */ pipe$2(/* @__PURE__ */ string$1(), /* @__PURE__ */ isoDate$1()),
|
|
38811
|
-
end_date: /* @__PURE__ */ optional$1(/* @__PURE__ */ pipe$2(/* @__PURE__ */ string$1(), /* @__PURE__ */ isoDate$1()))
|
|
38812
|
-
}),
|
|
39037
|
+
payload: rateSchedulePayloadSchema,
|
|
38813
39038
|
user_id: /* @__PURE__ */ number$2()
|
|
38814
39039
|
}),
|
|
38815
39040
|
execute: (input, { client }) => {
|
|
@@ -39183,12 +39408,7 @@ const generatedFocusOperations = [
|
|
|
39183
39408
|
},
|
|
39184
39409
|
mcp: { entityTool: "rates" },
|
|
39185
39410
|
inputSchema: /* @__PURE__ */ looseObject({
|
|
39186
|
-
payload:
|
|
39187
|
-
currency: /* @__PURE__ */ string$1(),
|
|
39188
|
-
hourly_rate: /* @__PURE__ */ number$2(),
|
|
39189
|
-
start_date: /* @__PURE__ */ pipe$2(/* @__PURE__ */ string$1(), /* @__PURE__ */ isoDate$1()),
|
|
39190
|
-
end_date: /* @__PURE__ */ optional$1(/* @__PURE__ */ pipe$2(/* @__PURE__ */ string$1(), /* @__PURE__ */ isoDate$1()))
|
|
39191
|
-
}),
|
|
39411
|
+
payload: rateSchedulePayloadSchema,
|
|
39192
39412
|
project_id: /* @__PURE__ */ number$2()
|
|
39193
39413
|
}),
|
|
39194
39414
|
execute: (input, { client }) => {
|
|
@@ -39219,12 +39439,7 @@ const generatedFocusOperations = [
|
|
|
39219
39439
|
},
|
|
39220
39440
|
mcp: { entityTool: "rates" },
|
|
39221
39441
|
inputSchema: /* @__PURE__ */ looseObject({
|
|
39222
|
-
payload:
|
|
39223
|
-
currency: /* @__PURE__ */ string$1(),
|
|
39224
|
-
hourly_rate: /* @__PURE__ */ number$2(),
|
|
39225
|
-
start_date: /* @__PURE__ */ pipe$2(/* @__PURE__ */ string$1(), /* @__PURE__ */ isoDate$1()),
|
|
39226
|
-
end_date: /* @__PURE__ */ optional$1(/* @__PURE__ */ pipe$2(/* @__PURE__ */ string$1(), /* @__PURE__ */ isoDate$1()))
|
|
39227
|
-
}),
|
|
39442
|
+
payload: rateSchedulePayloadSchema,
|
|
39228
39443
|
project_id: /* @__PURE__ */ number$2(),
|
|
39229
39444
|
user_id: /* @__PURE__ */ number$2()
|
|
39230
39445
|
}),
|
|
@@ -39256,12 +39471,7 @@ const generatedFocusOperations = [
|
|
|
39256
39471
|
interactive: "default"
|
|
39257
39472
|
},
|
|
39258
39473
|
mcp: { entityTool: "rates" },
|
|
39259
|
-
inputSchema: /* @__PURE__ */ looseObject({ payload:
|
|
39260
|
-
currency: /* @__PURE__ */ string$1(),
|
|
39261
|
-
hourly_rate: /* @__PURE__ */ number$2(),
|
|
39262
|
-
start_date: /* @__PURE__ */ pipe$2(/* @__PURE__ */ string$1(), /* @__PURE__ */ isoDate$1()),
|
|
39263
|
-
end_date: /* @__PURE__ */ optional$1(/* @__PURE__ */ pipe$2(/* @__PURE__ */ string$1(), /* @__PURE__ */ isoDate$1()))
|
|
39264
|
-
}) }),
|
|
39474
|
+
inputSchema: /* @__PURE__ */ looseObject({ payload: rateSchedulePayloadSchema }),
|
|
39265
39475
|
execute: (input, { client }) => {
|
|
39266
39476
|
const data = input;
|
|
39267
39477
|
return client.runGeneratedRequest("upsertWorkspaceLaborCostRate", () => callGeneratedRequest(upsertWorkspaceLaborCostRate, [
|
|
@@ -39289,12 +39499,7 @@ const generatedFocusOperations = [
|
|
|
39289
39499
|
},
|
|
39290
39500
|
mcp: { entityTool: "rates" },
|
|
39291
39501
|
inputSchema: /* @__PURE__ */ looseObject({
|
|
39292
|
-
payload:
|
|
39293
|
-
currency: /* @__PURE__ */ string$1(),
|
|
39294
|
-
hourly_rate: /* @__PURE__ */ number$2(),
|
|
39295
|
-
start_date: /* @__PURE__ */ pipe$2(/* @__PURE__ */ string$1(), /* @__PURE__ */ isoDate$1()),
|
|
39296
|
-
end_date: /* @__PURE__ */ optional$1(/* @__PURE__ */ pipe$2(/* @__PURE__ */ string$1(), /* @__PURE__ */ isoDate$1()))
|
|
39297
|
-
}),
|
|
39502
|
+
payload: rateSchedulePayloadSchema,
|
|
39298
39503
|
user_id: /* @__PURE__ */ number$2()
|
|
39299
39504
|
}),
|
|
39300
39505
|
execute: (input, { client }) => {
|
|
@@ -39316,7 +39521,7 @@ const generatedFocusOperations = [
|
|
|
39316
39521
|
action: "get-flexq-data",
|
|
39317
39522
|
title: "Get Flexq Data Reports",
|
|
39318
39523
|
description: "Get Flexq Data Reports.",
|
|
39319
|
-
safety: "
|
|
39524
|
+
safety: "update",
|
|
39320
39525
|
destructive: false,
|
|
39321
39526
|
cli: {
|
|
39322
39527
|
group: ["reports"],
|
|
@@ -39385,7 +39590,7 @@ const generatedFocusOperations = [
|
|
|
39385
39590
|
action: "get-flexq-dictionary",
|
|
39386
39591
|
title: "Get Flexq Dictionary Reports",
|
|
39387
39592
|
description: "Get Flexq Dictionary Reports.",
|
|
39388
|
-
safety: "
|
|
39593
|
+
safety: "update",
|
|
39389
39594
|
destructive: false,
|
|
39390
39595
|
cli: {
|
|
39391
39596
|
group: ["reports"],
|
|
@@ -39411,7 +39616,7 @@ const generatedFocusOperations = [
|
|
|
39411
39616
|
action: "get-workload",
|
|
39412
39617
|
title: "Get Workload Reports",
|
|
39413
39618
|
description: "Get Workload Reports.",
|
|
39414
|
-
safety: "
|
|
39619
|
+
safety: "update",
|
|
39415
39620
|
destructive: false,
|
|
39416
39621
|
cli: {
|
|
39417
39622
|
group: ["reports"],
|
|
@@ -40893,12 +41098,12 @@ const generatedFocusOperations = [
|
|
|
40893
41098
|
action: "suggestions-get-project-suggestion-for-atask",
|
|
40894
41099
|
title: "Suggestions Get Project Suggestion For Atask Tasks",
|
|
40895
41100
|
description: "Suggestions Get Project Suggestion For Atask Tasks.",
|
|
40896
|
-
safety: "
|
|
41101
|
+
safety: "update",
|
|
40897
41102
|
destructive: false,
|
|
40898
41103
|
cli: {
|
|
40899
41104
|
group: ["tasks", "suggestions"],
|
|
40900
41105
|
command: "get-project-suggestion-for-atask",
|
|
40901
|
-
interactive: "
|
|
41106
|
+
interactive: "default"
|
|
40902
41107
|
},
|
|
40903
41108
|
mcp: { entityTool: "tasks" },
|
|
40904
41109
|
inputSchema: /* @__PURE__ */ looseObject({ payload: /* @__PURE__ */ looseObject({ task_id: /* @__PURE__ */ number$2() }) }),
|
|
@@ -40920,12 +41125,12 @@ const generatedFocusOperations = [
|
|
|
40920
41125
|
action: "suggestions-get-project-suggestions-for-multiple-tasks",
|
|
40921
41126
|
title: "Suggestions Get Project Suggestions For Multiple Tasks Tasks",
|
|
40922
41127
|
description: "Suggestions Get Project Suggestions For Multiple Tasks Tasks.",
|
|
40923
|
-
safety: "
|
|
41128
|
+
safety: "update",
|
|
40924
41129
|
destructive: false,
|
|
40925
41130
|
cli: {
|
|
40926
41131
|
group: ["tasks", "suggestions"],
|
|
40927
41132
|
command: "get-project-suggestions-for-multiple-tasks",
|
|
40928
|
-
interactive: "
|
|
41133
|
+
interactive: "default"
|
|
40929
41134
|
},
|
|
40930
41135
|
mcp: { entityTool: "tasks" },
|
|
40931
41136
|
inputSchema: /* @__PURE__ */ looseObject({ payload: /* @__PURE__ */ looseObject({ task_ids: /* @__PURE__ */ array$1(/* @__PURE__ */ number$2()) }) }),
|
|
@@ -41561,7 +41766,7 @@ const generatedFocusOperations = [
|
|
|
41561
41766
|
action: "bulk-set-day-duration",
|
|
41562
41767
|
title: "Bulk Set Day Duration Time Entries",
|
|
41563
41768
|
description: "Bulk Set Day Duration Time Entries.",
|
|
41564
|
-
safety: "
|
|
41769
|
+
safety: "update",
|
|
41565
41770
|
destructive: false,
|
|
41566
41771
|
cli: {
|
|
41567
41772
|
group: ["time-entries", "bulk"],
|
|
@@ -42057,12 +42262,12 @@ const generatedFocusOperations = [
|
|
|
42057
42262
|
action: "tracking-start-tracking-from-description",
|
|
42058
42263
|
title: "Tracking Start Tracking From Description Time Entries",
|
|
42059
42264
|
description: "Tracking Start Tracking From Description Time Entries.",
|
|
42060
|
-
safety: "
|
|
42265
|
+
safety: "update",
|
|
42061
42266
|
destructive: false,
|
|
42062
42267
|
cli: {
|
|
42063
42268
|
group: ["time-entries", "tracking"],
|
|
42064
42269
|
command: "start-tracking-from-description",
|
|
42065
|
-
interactive: "
|
|
42270
|
+
interactive: "default"
|
|
42066
42271
|
},
|
|
42067
42272
|
mcp: { entityTool: "time-entries" },
|
|
42068
42273
|
inputSchema: /* @__PURE__ */ looseObject({ payload: /* @__PURE__ */ looseObject({
|
|
@@ -42163,12 +42368,12 @@ const generatedFocusOperations = [
|
|
|
42163
42368
|
action: "get-for-acalendar-event-title",
|
|
42164
42369
|
title: "Get For Acalendar Event Title Time Log Suggestions",
|
|
42165
42370
|
description: "Get For Acalendar Event Title Time Log Suggestions.",
|
|
42166
|
-
safety: "
|
|
42371
|
+
safety: "update",
|
|
42167
42372
|
destructive: false,
|
|
42168
42373
|
cli: {
|
|
42169
42374
|
group: ["time-log-suggestions"],
|
|
42170
42375
|
command: "get-for-acalendar-event-title",
|
|
42171
|
-
interactive: "
|
|
42376
|
+
interactive: "default"
|
|
42172
42377
|
},
|
|
42173
42378
|
mcp: { entityTool: "time-log-suggestions" },
|
|
42174
42379
|
inputSchema: /* @__PURE__ */ looseObject({ payload: /* @__PURE__ */ looseObject({ title: /* @__PURE__ */ string$1() }) }),
|
|
@@ -42190,12 +42395,12 @@ const generatedFocusOperations = [
|
|
|
42190
42395
|
action: "get-for-multiple-calendar-event-titles",
|
|
42191
42396
|
title: "Get For Multiple Calendar Event Titles Time Log Suggestions",
|
|
42192
42397
|
description: "Get For Multiple Calendar Event Titles Time Log Suggestions.",
|
|
42193
|
-
safety: "
|
|
42398
|
+
safety: "update",
|
|
42194
42399
|
destructive: false,
|
|
42195
42400
|
cli: {
|
|
42196
42401
|
group: ["time-log-suggestions"],
|
|
42197
42402
|
command: "get-for-multiple-calendar-event-titles",
|
|
42198
|
-
interactive: "
|
|
42403
|
+
interactive: "default"
|
|
42199
42404
|
},
|
|
42200
42405
|
mcp: { entityTool: "time-log-suggestions" },
|
|
42201
42406
|
inputSchema: /* @__PURE__ */ looseObject({ payload: /* @__PURE__ */ looseObject({ items: /* @__PURE__ */ array$1(/* @__PURE__ */ looseObject({
|
|
@@ -42565,12 +42770,12 @@ const generatedFocusOperations = [
|
|
|
42565
42770
|
action: "approve",
|
|
42566
42771
|
title: "Approve Timesheets",
|
|
42567
42772
|
description: "Approve Timesheets.",
|
|
42568
|
-
safety: "
|
|
42773
|
+
safety: "update",
|
|
42569
42774
|
destructive: false,
|
|
42570
42775
|
cli: {
|
|
42571
42776
|
group: ["timesheets"],
|
|
42572
42777
|
command: "approve",
|
|
42573
|
-
interactive: "
|
|
42778
|
+
interactive: "default"
|
|
42574
42779
|
},
|
|
42575
42780
|
mcp: { entityTool: "timesheets" },
|
|
42576
42781
|
inputSchema: /* @__PURE__ */ looseObject({
|
|
@@ -42598,12 +42803,12 @@ const generatedFocusOperations = [
|
|
|
42598
42803
|
action: "bulk-approve",
|
|
42599
42804
|
title: "Bulk Approve Timesheets",
|
|
42600
42805
|
description: "Bulk Approve Timesheets.",
|
|
42601
|
-
safety: "
|
|
42806
|
+
safety: "update",
|
|
42602
42807
|
destructive: false,
|
|
42603
42808
|
cli: {
|
|
42604
42809
|
group: ["timesheets", "bulk"],
|
|
42605
42810
|
command: "approve",
|
|
42606
|
-
interactive: "
|
|
42811
|
+
interactive: "default"
|
|
42607
42812
|
},
|
|
42608
42813
|
mcp: { entityTool: "timesheets" },
|
|
42609
42814
|
inputSchema: /* @__PURE__ */ looseObject({ payload: /* @__PURE__ */ looseObject({ keys: /* @__PURE__ */ array$1(/* @__PURE__ */ looseObject({
|
|
@@ -42629,12 +42834,12 @@ const generatedFocusOperations = [
|
|
|
42629
42834
|
action: "bulk-request-changes",
|
|
42630
42835
|
title: "Bulk Request Changes Timesheets",
|
|
42631
42836
|
description: "Bulk Request Changes Timesheets.",
|
|
42632
|
-
safety: "
|
|
42837
|
+
safety: "update",
|
|
42633
42838
|
destructive: false,
|
|
42634
42839
|
cli: {
|
|
42635
42840
|
group: ["timesheets", "bulk"],
|
|
42636
42841
|
command: "request-changes",
|
|
42637
|
-
interactive: "
|
|
42842
|
+
interactive: "default"
|
|
42638
42843
|
},
|
|
42639
42844
|
mcp: { entityTool: "timesheets" },
|
|
42640
42845
|
inputSchema: /* @__PURE__ */ looseObject({ payload: /* @__PURE__ */ looseObject({
|
|
@@ -42855,12 +43060,12 @@ const generatedFocusOperations = [
|
|
|
42855
43060
|
action: "remove-timesheet-flag",
|
|
42856
43061
|
title: "Remove Timesheet Flag Timesheets",
|
|
42857
43062
|
description: "Remove Timesheet Flag Timesheets.",
|
|
42858
|
-
safety: "
|
|
42859
|
-
destructive:
|
|
43063
|
+
safety: "delete",
|
|
43064
|
+
destructive: true,
|
|
42860
43065
|
cli: {
|
|
42861
43066
|
group: ["timesheets"],
|
|
42862
43067
|
command: "remove-timesheet-flag",
|
|
42863
|
-
interactive: "
|
|
43068
|
+
interactive: "default"
|
|
42864
43069
|
},
|
|
42865
43070
|
mcp: { entityTool: "timesheets" },
|
|
42866
43071
|
inputSchema: /* @__PURE__ */ looseObject({ flag_id: /* @__PURE__ */ number$2() }),
|
|
@@ -42882,12 +43087,12 @@ const generatedFocusOperations = [
|
|
|
42882
43087
|
action: "request-changes",
|
|
42883
43088
|
title: "Request Changes Timesheets",
|
|
42884
43089
|
description: "Request Changes Timesheets.",
|
|
42885
|
-
safety: "
|
|
43090
|
+
safety: "update",
|
|
42886
43091
|
destructive: false,
|
|
42887
43092
|
cli: {
|
|
42888
43093
|
group: ["timesheets"],
|
|
42889
43094
|
command: "request-changes",
|
|
42890
|
-
interactive: "
|
|
43095
|
+
interactive: "default"
|
|
42891
43096
|
},
|
|
42892
43097
|
mcp: { entityTool: "timesheets" },
|
|
42893
43098
|
inputSchema: /* @__PURE__ */ looseObject({
|
|
@@ -42917,12 +43122,12 @@ const generatedFocusOperations = [
|
|
|
42917
43122
|
action: "resubmit",
|
|
42918
43123
|
title: "Resubmit Timesheets",
|
|
42919
43124
|
description: "Resubmit Timesheets.",
|
|
42920
|
-
safety: "
|
|
43125
|
+
safety: "update",
|
|
42921
43126
|
destructive: false,
|
|
42922
43127
|
cli: {
|
|
42923
43128
|
group: ["timesheets"],
|
|
42924
43129
|
command: "resubmit",
|
|
42925
|
-
interactive: "
|
|
43130
|
+
interactive: "default"
|
|
42926
43131
|
},
|
|
42927
43132
|
mcp: { entityTool: "timesheets" },
|
|
42928
43133
|
inputSchema: /* @__PURE__ */ looseObject({
|
|
@@ -43017,12 +43222,12 @@ const generatedFocusOperations = [
|
|
|
43017
43222
|
action: "setups-discontinue",
|
|
43018
43223
|
title: "Setups Discontinue Timesheets",
|
|
43019
43224
|
description: "Setups Discontinue Timesheets.",
|
|
43020
|
-
safety: "
|
|
43225
|
+
safety: "update",
|
|
43021
43226
|
destructive: false,
|
|
43022
43227
|
cli: {
|
|
43023
43228
|
group: ["timesheets", "setups"],
|
|
43024
43229
|
command: "discontinue",
|
|
43025
|
-
interactive: "
|
|
43230
|
+
interactive: "default"
|
|
43026
43231
|
},
|
|
43027
43232
|
mcp: { entityTool: "timesheets" },
|
|
43028
43233
|
inputSchema: /* @__PURE__ */ looseObject({
|
|
@@ -43203,12 +43408,12 @@ const generatedFocusOperations = [
|
|
|
43203
43408
|
action: "submit",
|
|
43204
43409
|
title: "Submit Timesheets",
|
|
43205
43410
|
description: "Submit Timesheets.",
|
|
43206
|
-
safety: "
|
|
43411
|
+
safety: "update",
|
|
43207
43412
|
destructive: false,
|
|
43208
43413
|
cli: {
|
|
43209
43414
|
group: ["timesheets"],
|
|
43210
43415
|
command: "submit",
|
|
43211
|
-
interactive: "
|
|
43416
|
+
interactive: "default"
|
|
43212
43417
|
},
|
|
43213
43418
|
mcp: { entityTool: "timesheets" },
|
|
43214
43419
|
inputSchema: /* @__PURE__ */ looseObject({
|
|
@@ -43236,12 +43441,12 @@ const generatedFocusOperations = [
|
|
|
43236
43441
|
action: "withdraw",
|
|
43237
43442
|
title: "Withdraw Timesheets",
|
|
43238
43443
|
description: "Withdraw Timesheets.",
|
|
43239
|
-
safety: "
|
|
43444
|
+
safety: "update",
|
|
43240
43445
|
destructive: false,
|
|
43241
43446
|
cli: {
|
|
43242
43447
|
group: ["timesheets"],
|
|
43243
43448
|
command: "withdraw",
|
|
43244
|
-
interactive: "
|
|
43449
|
+
interactive: "default"
|
|
43245
43450
|
},
|
|
43246
43451
|
mcp: { entityTool: "timesheets" },
|
|
43247
43452
|
inputSchema: /* @__PURE__ */ looseObject({
|
|
@@ -43769,6 +43974,8 @@ const focusOperationOverrides = {
|
|
|
43769
43974
|
...taskAttachmentOverrides,
|
|
43770
43975
|
...projectOverrides,
|
|
43771
43976
|
...projectAttachmentOverrides,
|
|
43977
|
+
...rateOverrides,
|
|
43978
|
+
...readOnlyPostOverrides,
|
|
43772
43979
|
...timeBlockOverrides,
|
|
43773
43980
|
...timeEntryOverrides,
|
|
43774
43981
|
...statusOverrides,
|
|
@@ -44461,6 +44668,15 @@ function mcpText(text) {
|
|
|
44461
44668
|
text
|
|
44462
44669
|
}] };
|
|
44463
44670
|
}
|
|
44671
|
+
function mcpFailure(text) {
|
|
44672
|
+
return {
|
|
44673
|
+
content: [{
|
|
44674
|
+
type: "text",
|
|
44675
|
+
text
|
|
44676
|
+
}],
|
|
44677
|
+
isError: true
|
|
44678
|
+
};
|
|
44679
|
+
}
|
|
44464
44680
|
//#endregion
|
|
44465
44681
|
//#region src/runtime/safety/mutation-gate.ts
|
|
44466
44682
|
var MutationConfirmationRequired = class extends Error {
|
|
@@ -44883,29 +45099,44 @@ function inputFor(operations) {
|
|
|
44883
45099
|
if (!first) throw new Error("Entity tool has no operations");
|
|
44884
45100
|
return rest.length === 0 ? buildSingleActionInput(first) : buildMultiActionInput(operations);
|
|
44885
45101
|
}
|
|
44886
|
-
|
|
44887
|
-
* Render an operation's parameters as a compact, human-readable summary for the
|
|
44888
|
-
* tool description. Required fields are suffixed with `*`. Falls back gracefully
|
|
44889
|
-
* for array payloads or schemas that cannot be converted to JSON Schema.
|
|
44890
|
-
*/
|
|
45102
|
+
const MAX_INLINE_OBJECT_KEYS = 12;
|
|
44891
45103
|
function summarizeParams(operation) {
|
|
44892
45104
|
try {
|
|
44893
45105
|
const schema = toJsonSchema(operation.inputSchema, { errorMode: "ignore" });
|
|
44894
45106
|
if (schema.type === "array") return "array payload";
|
|
44895
|
-
const
|
|
45107
|
+
const properties = schema.properties ?? {};
|
|
45108
|
+
const keys = Object.keys(properties);
|
|
44896
45109
|
if (keys.length === 0) return "none";
|
|
44897
45110
|
const required = new Set(schema.required ?? []);
|
|
44898
|
-
return keys.map((key) =>
|
|
45111
|
+
return keys.map((key) => {
|
|
45112
|
+
const label = required.has(key) ? `${key}*` : key;
|
|
45113
|
+
const property = properties[key];
|
|
45114
|
+
if (property?.type !== "object") return label;
|
|
45115
|
+
const nestedKeys = Object.keys(property.properties ?? {});
|
|
45116
|
+
if (nestedKeys.length === 0) return label;
|
|
45117
|
+
if (nestedKeys.length > MAX_INLINE_OBJECT_KEYS) return `${label}{...}`;
|
|
45118
|
+
const nestedRequired = new Set(property.required ?? []);
|
|
45119
|
+
return `${label}{${nestedKeys.map((nestedKey) => nestedRequired.has(nestedKey) ? `${nestedKey}*` : nestedKey).join(", ")}}`;
|
|
45120
|
+
}).join(", ");
|
|
44899
45121
|
} catch {
|
|
44900
45122
|
return "see API docs";
|
|
44901
45123
|
}
|
|
44902
45124
|
}
|
|
44903
45125
|
function buildToolDescription(entityTool, operations) {
|
|
45126
|
+
const byGuidance = /* @__PURE__ */ new Map();
|
|
45127
|
+
for (const op of operations) {
|
|
45128
|
+
if (!op.agentGuidance) continue;
|
|
45129
|
+
const actions = byGuidance.get(op.agentGuidance);
|
|
45130
|
+
if (actions) actions.push(op.action);
|
|
45131
|
+
else byGuidance.set(op.agentGuidance, [op.action]);
|
|
45132
|
+
}
|
|
45133
|
+
const shared = new Map([...byGuidance].filter(([, actions]) => actions.length > 1));
|
|
44904
45134
|
const lines = [`Manage Focus ${entityTool} with the following actions:`, ""];
|
|
44905
45135
|
for (const op of operations) {
|
|
44906
|
-
const
|
|
44907
|
-
lines.push(`- **${op.action}**: ${op.description}${
|
|
45136
|
+
const inline = op.agentGuidance && !shared.has(op.agentGuidance) ? ` ${op.agentGuidance}` : "";
|
|
45137
|
+
lines.push(`- **${op.action}**: ${op.description}${inline} (data: ${summarizeParams(op)})`);
|
|
44908
45138
|
}
|
|
45139
|
+
for (const [guidance, actions] of shared) lines.push("", `Applies to ${actions.join(", ")}: ${guidance}`);
|
|
44909
45140
|
lines.push("", "Pass the action-specific fields under `data` (required fields are marked with *).", "Mutations require a confirm_token handshake: call without confirm_token first to receive a token, then call again with the token to confirm.", "Optional dry_run: true validates input and returns { dry_run, operation, input } without calling the API.");
|
|
44910
45141
|
return lines.join("\n");
|
|
44911
45142
|
}
|
|
@@ -44933,7 +45164,9 @@ async function runOperation(operation, data, client, confirmToken, dryRun) {
|
|
|
44933
45164
|
status: 403,
|
|
44934
45165
|
message: `Operation '${operation.id}' is not available in this build.`
|
|
44935
45166
|
});
|
|
44936
|
-
const
|
|
45167
|
+
const parseResult = /* @__PURE__ */ safeParse(operation.inputSchema, coercePayload(data) ?? {});
|
|
45168
|
+
if (!parseResult.success) return mcpFailure(`Invalid input: ${formatValibotError(parseResult.issues)}`);
|
|
45169
|
+
const input = parseResult.output;
|
|
44937
45170
|
if (dryRun) return mcpText(JSON.stringify({
|
|
44938
45171
|
dry_run: true,
|
|
44939
45172
|
operation: operation.id,
|
|
@@ -44983,7 +45216,7 @@ import_main.default.config({
|
|
|
44983
45216
|
quiet: true,
|
|
44984
45217
|
ignore: ["MISSING_ENV_FILE"]
|
|
44985
45218
|
});
|
|
44986
|
-
const packageVersion = "1.
|
|
45219
|
+
const packageVersion = "1.7.1";
|
|
44987
45220
|
function resolvePublicUrls() {
|
|
44988
45221
|
return {
|
|
44989
45222
|
focusApiUrl: process.env.TOGGL_FOCUS_API_URL ?? "https://focus.toggl.com",
|
|
@@ -45047,4 +45280,4 @@ function bootstrapServer(options = {}) {
|
|
|
45047
45280
|
//#endregion
|
|
45048
45281
|
export { runMcpCli as n, bootstrapServer as t };
|
|
45049
45282
|
|
|
45050
|
-
//# sourceMappingURL=src-
|
|
45283
|
+
//# sourceMappingURL=src-uEpTijXT.js.map
|