@mind-your-now/myn 0.7.15 → 0.7.17
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 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -1
- package/dist/src/client.d.ts +21 -0
- package/dist/src/client.d.ts.map +1 -1
- package/dist/src/client.js +105 -0
- package/dist/src/client.js.map +1 -1
- package/dist/src/tools/calendar.d.ts.map +1 -1
- package/dist/src/tools/calendar.js +11 -3
- package/dist/src/tools/calendar.js.map +1 -1
- package/dist/src/tools/debrief.d.ts.map +1 -1
- package/dist/src/tools/debrief.js +5 -3
- package/dist/src/tools/debrief.js.map +1 -1
- package/dist/src/tools/household.d.ts.map +1 -1
- package/dist/src/tools/household.js +6 -3
- package/dist/src/tools/household.js.map +1 -1
- package/dist/src/tools/memory.d.ts.map +1 -1
- package/dist/src/tools/memory.js +9 -3
- package/dist/src/tools/memory.js.map +1 -1
- package/dist/src/tools/myn_a2a_pairing.d.ts.map +1 -1
- package/dist/src/tools/myn_a2a_pairing.js +19 -3
- package/dist/src/tools/myn_a2a_pairing.js.map +1 -1
- package/dist/src/tools/planning.js +4 -4
- package/dist/src/tools/planning.js.map +1 -1
- package/dist/src/tools/profile.d.ts.map +1 -1
- package/dist/src/tools/profile.js +11 -8
- package/dist/src/tools/profile.js.map +1 -1
- package/dist/src/tools/syncOnMismatch.d.ts +7 -2
- package/dist/src/tools/syncOnMismatch.d.ts.map +1 -1
- package/dist/src/tools/syncOnMismatch.js +19 -4
- package/dist/src/tools/syncOnMismatch.js.map +1 -1
- package/dist/src/tools/tasks.d.ts.map +1 -1
- package/dist/src/tools/tasks.js +49 -9
- package/dist/src/tools/tasks.js.map +1 -1
- package/dist/src/tools/timers.d.ts.map +1 -1
- package/dist/src/tools/timers.js +5 -3
- package/dist/src/tools/timers.js.map +1 -1
- package/dist/src/tools/ynab.d.ts +1 -1
- package/dist/src/tools/ynab.d.ts.map +1 -1
- package/dist/src/tools/ynab.js +36 -13
- package/dist/src/tools/ynab.js.map +1 -1
- package/dist/src/validation.d.ts +22 -0
- package/dist/src/validation.d.ts.map +1 -0
- package/dist/src/validation.js +44 -0
- package/dist/src/validation.js.map +1 -0
- package/package.json +13 -14
- package/skills/myn/SKILL.md +1 -1
|
@@ -63,12 +63,21 @@ async function a2aFetch(url, options) {
|
|
|
63
63
|
}
|
|
64
64
|
return response.status === 204 ? null : response.json();
|
|
65
65
|
}
|
|
66
|
+
/** Invite code pattern: 3 uppercase letters, dash, 5 digits (e.g. ABC-12345) */
|
|
67
|
+
const INVITE_CODE_REGEX = /^[A-Z]{3}-\d{5}$/;
|
|
68
|
+
/** Agent name pattern: lowercase alphanumeric and hyphens only */
|
|
69
|
+
const AGENT_NAME_REGEX = /^[a-z0-9][a-z0-9-]{0,48}[a-z0-9]$|^[a-z0-9]$/;
|
|
66
70
|
/**
|
|
67
71
|
* Execute a MYN A2A pairing action.
|
|
68
72
|
*/
|
|
69
73
|
export async function myn_a2a_pairing(input, configuredBaseUrl) {
|
|
70
|
-
const
|
|
74
|
+
const rawBase = (configuredBaseUrl ?? 'https://api.mindyournow.com').replace(/\/$/, '');
|
|
71
75
|
const caps = input.capabilities ?? [];
|
|
76
|
+
// W5: Reject non-HTTPS base URLs (allow http://localhost for development)
|
|
77
|
+
if (!rawBase.startsWith('https://') && !rawBase.startsWith('http://localhost')) {
|
|
78
|
+
return errorResult(`STOP: baseUrl must use HTTPS (got: ${rawBase}). The API URL is pre-configured — contact support if you believe this is an error.`);
|
|
79
|
+
}
|
|
80
|
+
const base = rawBase;
|
|
72
81
|
try {
|
|
73
82
|
switch (input.action) {
|
|
74
83
|
case 'get_agent_card': {
|
|
@@ -79,6 +88,13 @@ export async function myn_a2a_pairing(input, configuredBaseUrl) {
|
|
|
79
88
|
if (!input.inviteCode || !input.agentName) {
|
|
80
89
|
return errorResult('STOP: inviteCode and agentName are required. Do not retry — ask the user for the missing values.');
|
|
81
90
|
}
|
|
91
|
+
// BP5: Validate invite code and agent name formats
|
|
92
|
+
if (!INVITE_CODE_REGEX.test(input.inviteCode)) {
|
|
93
|
+
return errorResult('STOP: inviteCode must be in the format ABC-12345 (3 uppercase letters, dash, 5 digits). Ask the user for the correct invite code from MYN Settings.');
|
|
94
|
+
}
|
|
95
|
+
if (!AGENT_NAME_REGEX.test(input.agentName)) {
|
|
96
|
+
return errorResult('STOP: agentName must be lowercase alphanumeric with optional hyphens (e.g. "openclaw"). Do not retry with a different format.');
|
|
97
|
+
}
|
|
82
98
|
const manifest = {
|
|
83
99
|
schemaVersion: '1.0',
|
|
84
100
|
agentInfo: { name: input.agentName, version: '1.0.0' },
|
|
@@ -119,7 +135,7 @@ export async function myn_a2a_pairing(input, configuredBaseUrl) {
|
|
|
119
135
|
agentInfo: { name: input.agentName ?? 'openclaw', version: '1.0.0' },
|
|
120
136
|
capabilities: caps,
|
|
121
137
|
};
|
|
122
|
-
checkAndSync(pingData, base, input.agentKey, pingManifest);
|
|
138
|
+
checkAndSync(pingData, base, input.agentKey, pingManifest, (msg) => console.warn(msg));
|
|
123
139
|
}
|
|
124
140
|
return jsonResult(pingData);
|
|
125
141
|
}
|
|
@@ -150,7 +166,7 @@ export async function myn_a2a_pairing(input, configuredBaseUrl) {
|
|
|
150
166
|
});
|
|
151
167
|
// Auto-sync capabilities when server signals a hash mismatch — MIN-734
|
|
152
168
|
if (manifest) {
|
|
153
|
-
checkAndSync(data, base, input.agentKey, manifest);
|
|
169
|
+
checkAndSync(data, base, input.agentKey, manifest, (msg) => console.warn(msg));
|
|
154
170
|
}
|
|
155
171
|
return jsonResult(data);
|
|
156
172
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"myn_a2a_pairing.js","sourceRoot":"","sources":["../../../src/tools/myn_a2a_pairing.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"myn_a2a_pairing.js","sourceRoot":"","sources":["../../../src/tools/myn_a2a_pairing.ts"],"names":[],"mappings":"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"}
|
|
@@ -68,16 +68,16 @@ async function createPlan(client, _input) {
|
|
|
68
68
|
async function scheduleAll(client, _input) {
|
|
69
69
|
// Auto-schedules all eligible tasks (today or past start date, not completed,
|
|
70
70
|
// not OVER_THE_HORIZON/PARKING_LOT) for the authenticated user, then triggers planning.
|
|
71
|
-
//
|
|
72
|
-
const data = await client.
|
|
71
|
+
// MIN-740: Changed from GET to POST (read-before-write refactor).
|
|
72
|
+
const data = await client.post('/planning/scheduleAll', {});
|
|
73
73
|
return jsonResult({ result: data });
|
|
74
74
|
}
|
|
75
75
|
async function reschedule(client, input) {
|
|
76
76
|
// "Kick the can" — reschedules overdue/today tasks into the future based on priority.
|
|
77
77
|
// Optionally pass rebalance=true to redistribute all uncompleted tasks evenly.
|
|
78
|
-
//
|
|
78
|
+
// MIN-740: Changed from GET to POST (read-before-write refactor).
|
|
79
79
|
const rebalance = input.spreadOverDays && input.spreadOverDays > 1 ? 'true' : 'false';
|
|
80
|
-
const data = await client.
|
|
80
|
+
const data = await client.post(`/planning/kickTheCan?rebalance=${rebalance}`, {});
|
|
81
81
|
return jsonResult(data);
|
|
82
82
|
}
|
|
83
83
|
export function registerPlanningTool(api, client) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"planning.js","sourceRoot":"","sources":["../../../src/tools/planning.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"planning.js","sourceRoot":"","sources":["../../../src/tools/planning.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profile.d.ts","sourceRoot":"","sources":["../../../src/tools/profile.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"profile.d.ts","sourceRoot":"","sources":["../../../src/tools/profile.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAIjD,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;EAoC7B,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,OAAO,kBAAkB,CAAC,MAAM,CAAC;AAE5D,wBAAsB,cAAc,CAClC,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,YAAY,GAClB,OAAO,CAAC;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,GAAG;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,CAoBlG;AAmHD,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,iBAAiB,EAAE,MAAM,EAAE,YAAY,GAAG,IAAI,CAUtF;AAGD,UAAU,iBAAiB;IACzB,YAAY,CAAC,IAAI,EAAE;QACjB,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,OAAO,CAAC;QACrB,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;KAC/C,GAAG,IAAI,CAAC;IACT,MAAM,EAAE;QACN,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;QAC7B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;QAC5B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;QAC5B,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;KAC9B,CAAC;IACF,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACxC"}
|
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
* myn_profile tool - User info, goals, and preferences
|
|
3
3
|
*/
|
|
4
4
|
import { Type } from '@sinclair/typebox';
|
|
5
|
-
import { jsonResult, errorResult } from '../client.js';
|
|
5
|
+
import { jsonResult, errorResult, guardedPut } from '../client.js';
|
|
6
|
+
import { escapeMarkdown } from '../validation.js';
|
|
6
7
|
export const ProfileInputSchema = Type.Object({
|
|
7
8
|
action: Type.Union([
|
|
8
9
|
Type.Literal('get_info'),
|
|
@@ -74,20 +75,22 @@ async function updateGoals(client, input) {
|
|
|
74
75
|
if (!input.goals || input.goals.length === 0) {
|
|
75
76
|
return errorResult('goals array is required for update_goals action');
|
|
76
77
|
}
|
|
77
|
-
// Format goals as markdown — the backend stores goals as a single text field
|
|
78
|
+
// Format goals as markdown — the backend stores goals as a single text field.
|
|
79
|
+
// BP4: Escape user-controlled values to prevent markdown injection.
|
|
78
80
|
const markdown = input.goals.map(g => {
|
|
79
|
-
let line = `- **${g.title}**`;
|
|
81
|
+
let line = `- **${escapeMarkdown(g.title)}**`;
|
|
80
82
|
if (g.status)
|
|
81
|
-
line += ` [${g.status}]`;
|
|
83
|
+
line += ` [${escapeMarkdown(String(g.status))}]`;
|
|
82
84
|
if (g.priority)
|
|
83
|
-
line += ` (${g.priority} priority)`;
|
|
85
|
+
line += ` (${escapeMarkdown(String(g.priority))} priority)`;
|
|
84
86
|
if (g.description)
|
|
85
|
-
line += `\n ${g.description}`;
|
|
87
|
+
line += `\n ${escapeMarkdown(g.description)}`;
|
|
86
88
|
if (g.targetDate)
|
|
87
|
-
line += `\n Target: ${g.targetDate}`;
|
|
89
|
+
line += `\n Target: ${escapeMarkdown(String(g.targetDate))}`;
|
|
88
90
|
return line;
|
|
89
91
|
}).join('\n');
|
|
90
|
-
|
|
92
|
+
// MIN-740: read-before-write — reads goals first to get stateHash, retries on 409
|
|
93
|
+
const data = await guardedPut(client, '/api/v1/customers/goals', { goalsAndAmbitions: markdown }, '/api/v1/customers/goals');
|
|
91
94
|
return jsonResult(data);
|
|
92
95
|
}
|
|
93
96
|
// Maps preferenceKey to the actual API endpoint path
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profile.js","sourceRoot":"","sources":["../../../src/tools/profile.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAEzC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"profile.js","sourceRoot":"","sources":["../../../src/tools/profile.ts"],"names":[],"mappings":"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"}
|
|
@@ -25,6 +25,8 @@ interface CapabilityManifest {
|
|
|
25
25
|
};
|
|
26
26
|
capabilities: unknown[];
|
|
27
27
|
}
|
|
28
|
+
/** Optional logger callback for error reporting */
|
|
29
|
+
type LoggerFn = (message: string) => void;
|
|
28
30
|
/**
|
|
29
31
|
* withSyncOnMismatch — wraps an A2A fetch call with automatic capability re-sync.
|
|
30
32
|
*
|
|
@@ -32,16 +34,19 @@ interface CapabilityManifest {
|
|
|
32
34
|
* @param mynBaseUrl MYN API base URL (e.g. https://api.mindyournow.com).
|
|
33
35
|
* @param agentKey Current X-Agent-Key for authenticated requests.
|
|
34
36
|
* @param manifest Current capability manifest to send if a mismatch is detected.
|
|
37
|
+
* @param onError Optional callback for sync errors (W6: avoid silent suppression).
|
|
35
38
|
* @returns The original response from fetchFn (the sync is a side-effect).
|
|
36
39
|
*/
|
|
37
|
-
export declare function withSyncOnMismatch<T extends A2AResponseWithPending>(fetchFn: () => Promise<T>, mynBaseUrl: string, agentKey: string, manifest: CapabilityManifest): Promise<T>;
|
|
40
|
+
export declare function withSyncOnMismatch<T extends A2AResponseWithPending>(fetchFn: () => Promise<T>, mynBaseUrl: string, agentKey: string, manifest: CapabilityManifest, onError?: LoggerFn): Promise<T>;
|
|
38
41
|
/**
|
|
39
42
|
* checkAndSync — standalone helper to check a response and trigger a sync
|
|
40
43
|
* if capabilityUpdatePending is true. Use this when you already have the
|
|
41
44
|
* response object and want to retrofit sync behaviour without restructuring
|
|
42
45
|
* the call site.
|
|
46
|
+
*
|
|
47
|
+
* @param onError Optional callback for sync errors (W6: avoid silent suppression).
|
|
43
48
|
*/
|
|
44
|
-
export declare function checkAndSync(response: A2AResponseWithPending | null | undefined, mynBaseUrl: string, agentKey: string, manifest: CapabilityManifest): void;
|
|
49
|
+
export declare function checkAndSync(response: A2AResponseWithPending | null | undefined, mynBaseUrl: string, agentKey: string, manifest: CapabilityManifest, onError?: LoggerFn): void;
|
|
45
50
|
/** Exposed for testing only — clears the dedup set between tests */
|
|
46
51
|
export declare function _clearInFlightSyncsForTest(): void;
|
|
47
52
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"syncOnMismatch.d.ts","sourceRoot":"","sources":["../../../src/tools/syncOnMismatch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,oEAAoE;AACpE,UAAU,sBAAsB;IAC9B,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,oEAAoE;AACpE,UAAU,kBAAkB;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7C,YAAY,EAAE,OAAO,EAAE,CAAC;CACzB;AAuDD
|
|
1
|
+
{"version":3,"file":"syncOnMismatch.d.ts","sourceRoot":"","sources":["../../../src/tools/syncOnMismatch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,oEAAoE;AACpE,UAAU,sBAAsB;IAC9B,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,oEAAoE;AACpE,UAAU,kBAAkB;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7C,YAAY,EAAE,OAAO,EAAE,CAAC;CACzB;AAuDD,mDAAmD;AACnD,KAAK,QAAQ,GAAG,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;AAE1C;;;;;;;;;GASG;AACH,wBAAsB,kBAAkB,CAAC,CAAC,SAAS,sBAAsB,EACvE,OAAO,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACzB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,kBAAkB,EAC5B,OAAO,CAAC,EAAE,QAAQ,GACjB,OAAO,CAAC,CAAC,CAAC,CAgBZ;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,sBAAsB,GAAG,IAAI,GAAG,SAAS,EACnD,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,kBAAkB,EAC5B,OAAO,CAAC,EAAE,QAAQ,GACjB,IAAI,CAWN;AAED,oEAAoE;AACpE,wBAAgB,0BAA0B,IAAI,IAAI,CAEjD"}
|
|
@@ -62,14 +62,21 @@ async function sendCapabilityUpdate(mynBaseUrl, agentKey, manifest) {
|
|
|
62
62
|
* @param mynBaseUrl MYN API base URL (e.g. https://api.mindyournow.com).
|
|
63
63
|
* @param agentKey Current X-Agent-Key for authenticated requests.
|
|
64
64
|
* @param manifest Current capability manifest to send if a mismatch is detected.
|
|
65
|
+
* @param onError Optional callback for sync errors (W6: avoid silent suppression).
|
|
65
66
|
* @returns The original response from fetchFn (the sync is a side-effect).
|
|
66
67
|
*/
|
|
67
|
-
export async function withSyncOnMismatch(fetchFn, mynBaseUrl, agentKey, manifest) {
|
|
68
|
+
export async function withSyncOnMismatch(fetchFn, mynBaseUrl, agentKey, manifest, onError) {
|
|
68
69
|
const result = await fetchFn();
|
|
69
70
|
if (result?.capabilityUpdatePending === true) {
|
|
70
71
|
// Fire-and-forget: don't block the caller on the sync
|
|
71
72
|
sendCapabilityUpdate(mynBaseUrl, agentKey, manifest).catch((err) => {
|
|
72
|
-
|
|
73
|
+
const errMsg = err?.message ?? err;
|
|
74
|
+
if (onError) {
|
|
75
|
+
onError(`[syncOnMismatch] Capability sync failed: ${errMsg}`);
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
console.warn('[syncOnMismatch] Capability sync failed:', errMsg);
|
|
79
|
+
}
|
|
73
80
|
});
|
|
74
81
|
}
|
|
75
82
|
return result;
|
|
@@ -79,11 +86,19 @@ export async function withSyncOnMismatch(fetchFn, mynBaseUrl, agentKey, manifest
|
|
|
79
86
|
* if capabilityUpdatePending is true. Use this when you already have the
|
|
80
87
|
* response object and want to retrofit sync behaviour without restructuring
|
|
81
88
|
* the call site.
|
|
89
|
+
*
|
|
90
|
+
* @param onError Optional callback for sync errors (W6: avoid silent suppression).
|
|
82
91
|
*/
|
|
83
|
-
export function checkAndSync(response, mynBaseUrl, agentKey, manifest) {
|
|
92
|
+
export function checkAndSync(response, mynBaseUrl, agentKey, manifest, onError) {
|
|
84
93
|
if (response?.capabilityUpdatePending === true) {
|
|
85
94
|
sendCapabilityUpdate(mynBaseUrl, agentKey, manifest).catch((err) => {
|
|
86
|
-
|
|
95
|
+
const errMsg = err?.message ?? err;
|
|
96
|
+
if (onError) {
|
|
97
|
+
onError(`[syncOnMismatch] Capability sync failed: ${errMsg}`);
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
console.warn('[syncOnMismatch] Capability sync failed:', errMsg);
|
|
101
|
+
}
|
|
87
102
|
});
|
|
88
103
|
}
|
|
89
104
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"syncOnMismatch.js","sourceRoot":"","sources":["../../../src/tools/syncOnMismatch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAe5D;;;;GAIG;AACH,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;AAExC;;;GAGG;AACH,KAAK,UAAU,oBAAoB,CACjC,UAAkB,EAClB,QAAgB,EAChB,QAA4B;IAE5B,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC3C,MAAM,QAAQ,GAAG,GAAG,QAAQ,IAAI,IAAI,EAAE,CAAC;IAEvC,IAAI,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QAChC,OAAO,CAAC,mCAAmC;IAC7C,CAAC;IAED,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC5B,IAAI,CAAC;QACH,MAAM,cAAc,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC;QAEvD,MAAM,IAAI,GAAG;YACX,IAAI,EAAE,QAAQ,CAAC,SAAS,CAAC,IAAI;YAC7B,MAAM,EAAE,UAAU;YAClB,IAAI,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE;YACnC,cAAc;YACd,kBAAkB,EAAE,QAAQ;SAC7B,CAAC;QAEF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,cAAc,EAAE;YAClD,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,aAAa,EAAE,QAAQ;aACxB;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;SAC3B,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;YACpE,MAAM,IAAI,KAAK,CAAC,gCAAgC,QAAQ,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC,CAAC;QAC9E,CAAC;IACH,CAAC;YAAS,CAAC;QACT,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACjC,CAAC;AACH,CAAC;
|
|
1
|
+
{"version":3,"file":"syncOnMismatch.js","sourceRoot":"","sources":["../../../src/tools/syncOnMismatch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAe5D;;;;GAIG;AACH,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;AAExC;;;GAGG;AACH,KAAK,UAAU,oBAAoB,CACjC,UAAkB,EAClB,QAAgB,EAChB,QAA4B;IAE5B,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC3C,MAAM,QAAQ,GAAG,GAAG,QAAQ,IAAI,IAAI,EAAE,CAAC;IAEvC,IAAI,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QAChC,OAAO,CAAC,mCAAmC;IAC7C,CAAC;IAED,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC5B,IAAI,CAAC;QACH,MAAM,cAAc,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC;QAEvD,MAAM,IAAI,GAAG;YACX,IAAI,EAAE,QAAQ,CAAC,SAAS,CAAC,IAAI;YAC7B,MAAM,EAAE,UAAU;YAClB,IAAI,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE;YACnC,cAAc;YACd,kBAAkB,EAAE,QAAQ;SAC7B,CAAC;QAEF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,cAAc,EAAE;YAClD,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,aAAa,EAAE,QAAQ;aACxB;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;SAC3B,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;YACpE,MAAM,IAAI,KAAK,CAAC,gCAAgC,QAAQ,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC,CAAC;QAC9E,CAAC;IACH,CAAC;YAAS,CAAC;QACT,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACjC,CAAC;AACH,CAAC;AAKD;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,OAAyB,EACzB,UAAkB,EAClB,QAAgB,EAChB,QAA4B,EAC5B,OAAkB;IAElB,MAAM,MAAM,GAAG,MAAM,OAAO,EAAE,CAAC;IAE/B,IAAI,MAAM,EAAE,uBAAuB,KAAK,IAAI,EAAE,CAAC;QAC7C,sDAAsD;QACtD,oBAAoB,CAAC,UAAU,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACjE,MAAM,MAAM,GAAG,GAAG,EAAE,OAAO,IAAI,GAAG,CAAC;YACnC,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,CAAC,4CAA4C,MAAM,EAAE,CAAC,CAAC;YAChE,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,IAAI,CAAC,0CAA0C,EAAE,MAAM,CAAC,CAAC;YACnE,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,YAAY,CAC1B,QAAmD,EACnD,UAAkB,EAClB,QAAgB,EAChB,QAA4B,EAC5B,OAAkB;IAElB,IAAI,QAAQ,EAAE,uBAAuB,KAAK,IAAI,EAAE,CAAC;QAC/C,oBAAoB,CAAC,UAAU,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACjE,MAAM,MAAM,GAAG,GAAG,EAAE,OAAO,IAAI,GAAG,CAAC;YACnC,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,CAAC,4CAA4C,MAAM,EAAE,CAAC,CAAC;YAChE,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,IAAI,CAAC,0CAA0C,EAAE,MAAM,CAAC,CAAC;YACnE,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,oEAAoE;AACpE,MAAM,UAAU,0BAA0B;IACxC,aAAa,CAAC,KAAK,EAAE,CAAC;AACxB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tasks.d.ts","sourceRoot":"","sources":["../../../src/tools/tasks.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"tasks.d.ts","sourceRoot":"","sources":["../../../src/tools/tasks.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAyBjD,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;EAoC3B,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,OAAO,gBAAgB,CAAC,MAAM,CAAC;AAExD,wBAAsB,YAAY,CAChC,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,UAAU,GAChB,OAAO,CAAC;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,GAAG;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,CA0BlG;AAsKD,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,iBAAiB,EAAE,MAAM,EAAE,YAAY,GAAG,IAAI,CAUpF;AAGD,UAAU,iBAAiB;IACzB,YAAY,CAAC,IAAI,EAAE;QACjB,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,OAAO,CAAC;QACrB,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;KAC/C,GAAG,IAAI,CAAC;IACT,MAAM,EAAE;QACN,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;QAC7B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;QAC5B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;QAC5B,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;KAC9B,CAAC;IACF,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACxC"}
|
package/dist/src/tools/tasks.js
CHANGED
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
* myn_tasks tool - Task CRUD, lifecycle, and search
|
|
3
3
|
*/
|
|
4
4
|
import { Type } from '@sinclair/typebox';
|
|
5
|
-
import { jsonResult, errorResult } from '../client.js';
|
|
5
|
+
import { jsonResult, errorResult, guardedPatch, guardedPost } from '../client.js';
|
|
6
|
+
import { validateUuid } from '../validation.js';
|
|
6
7
|
// Schema definitions
|
|
7
8
|
const PrioritySchema = Type.Union([
|
|
8
9
|
Type.Literal('CRITICAL'),
|
|
@@ -47,7 +48,7 @@ export const TasksInputSchema = Type.Object({
|
|
|
47
48
|
taskType: Type.Optional(TaskTypeSchema),
|
|
48
49
|
duration: Type.Optional(Type.String()), // "30m", "1h", "1h30m"
|
|
49
50
|
// Create specific
|
|
50
|
-
id: Type.Optional(Type.String({ format: 'uuid' })), //
|
|
51
|
+
id: Type.Optional(Type.String({ format: 'uuid' })), // Auto-generated if omitted — do NOT hallucinate UUIDs
|
|
51
52
|
recurrenceRule: Type.Optional(Type.String()), // For HABIT/CHORE types
|
|
52
53
|
isAutoScheduled: Type.Optional(Type.Boolean({ description: 'Enable auto-scheduling by the planning system. Use this field name, NOT autoScheduleEnabled.' })),
|
|
53
54
|
autoScheduleEnabled: Type.Optional(Type.Boolean({ description: 'DEPRECATED alias for isAutoScheduled. Prefer isAutoScheduled.' })),
|
|
@@ -110,6 +111,9 @@ async function getTask(client, input) {
|
|
|
110
111
|
if (!input.taskId) {
|
|
111
112
|
return errorResult('taskId is required for get action');
|
|
112
113
|
}
|
|
114
|
+
const uuidErr = validateUuid(input.taskId, 'taskId');
|
|
115
|
+
if (uuidErr)
|
|
116
|
+
return errorResult(uuidErr);
|
|
113
117
|
const data = await client.get(`/api/v2/unified-tasks/${input.taskId}`);
|
|
114
118
|
return jsonResult(data);
|
|
115
119
|
}
|
|
@@ -126,11 +130,10 @@ async function createTask(client, input) {
|
|
|
126
130
|
if (!input.startDate) {
|
|
127
131
|
return errorResult('startDate is required for create action');
|
|
128
132
|
}
|
|
129
|
-
if (
|
|
130
|
-
|
|
131
|
-
}
|
|
133
|
+
// Auto-generate UUID if the caller didn't provide one (LLMs hallucinate bad UUIDs)
|
|
134
|
+
const taskId = input.id || crypto.randomUUID();
|
|
132
135
|
const body = {
|
|
133
|
-
id:
|
|
136
|
+
id: taskId,
|
|
134
137
|
title: input.title,
|
|
135
138
|
taskType: input.taskType,
|
|
136
139
|
priority: input.priority,
|
|
@@ -157,28 +160,65 @@ async function createTask(client, input) {
|
|
|
157
160
|
const data = await client.post('/api/v2/unified-tasks', body);
|
|
158
161
|
return jsonResult(data);
|
|
159
162
|
}
|
|
163
|
+
/**
|
|
164
|
+
* W2: Allowlist of safe fields for task updates.
|
|
165
|
+
* Blocks sensitive fields like ownerId, householdId, createdBy, isLocked.
|
|
166
|
+
*/
|
|
167
|
+
const ALLOWED_UPDATE_FIELDS = new Set([
|
|
168
|
+
'title', 'description', 'priority', 'status', 'startDate', 'endDate',
|
|
169
|
+
'duration', 'projectId', 'recurrenceRule', 'isAutoScheduled', 'autoScheduleEnabled',
|
|
170
|
+
'calendarId', 'location', 'notes', 'tags', 'estimatedMinutes', 'actualMinutes',
|
|
171
|
+
'completedAt', 'archivedAt', 'taskType', 'assignedTo', 'scheduledAt', 'dueDate'
|
|
172
|
+
]);
|
|
160
173
|
async function updateTask(client, input) {
|
|
161
174
|
if (!input.taskId) {
|
|
162
175
|
return errorResult('taskId is required for update action');
|
|
163
176
|
}
|
|
177
|
+
const uuidErr = validateUuid(input.taskId, 'taskId');
|
|
178
|
+
if (uuidErr)
|
|
179
|
+
return errorResult(uuidErr);
|
|
164
180
|
if (!input.updates || Object.keys(input.updates).length === 0) {
|
|
165
181
|
return errorResult('updates object is required for update action');
|
|
166
182
|
}
|
|
167
|
-
|
|
183
|
+
// W2: Filter updates to only allowed fields (mass assignment prevention)
|
|
184
|
+
const filteredUpdates = {};
|
|
185
|
+
const rejectedFields = [];
|
|
186
|
+
for (const [key, value] of Object.entries(input.updates)) {
|
|
187
|
+
if (ALLOWED_UPDATE_FIELDS.has(key)) {
|
|
188
|
+
filteredUpdates[key] = value;
|
|
189
|
+
}
|
|
190
|
+
else {
|
|
191
|
+
rejectedFields.push(key);
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
if (Object.keys(filteredUpdates).length === 0) {
|
|
195
|
+
return errorResult(`No valid update fields provided. Rejected fields: ${rejectedFields.join(', ')}. ` +
|
|
196
|
+
`Allowed fields: ${Array.from(ALLOWED_UPDATE_FIELDS).join(', ')}`);
|
|
197
|
+
}
|
|
198
|
+
// MIN-740: read-before-write — automatically reads current stateHash, retries on 409
|
|
199
|
+
const data = await guardedPatch(client, `/api/v2/unified-tasks/${input.taskId}`, filteredUpdates, `/api/v2/unified-tasks/${input.taskId}`);
|
|
168
200
|
return jsonResult(data);
|
|
169
201
|
}
|
|
170
202
|
async function completeTask(client, input) {
|
|
171
203
|
if (!input.taskId) {
|
|
172
204
|
return errorResult('taskId is required for complete action');
|
|
173
205
|
}
|
|
174
|
-
const
|
|
206
|
+
const uuidErr = validateUuid(input.taskId, 'taskId');
|
|
207
|
+
if (uuidErr)
|
|
208
|
+
return errorResult(uuidErr);
|
|
209
|
+
// MIN-740: read-before-write — reads task first to get stateHash
|
|
210
|
+
const data = await guardedPost(client, `/api/v2/unified-tasks/${input.taskId}/complete`, {}, `/api/v2/unified-tasks/${input.taskId}`);
|
|
175
211
|
return jsonResult(data);
|
|
176
212
|
}
|
|
177
213
|
async function archiveTask(client, input) {
|
|
178
214
|
if (!input.taskId) {
|
|
179
215
|
return errorResult('taskId is required for archive action');
|
|
180
216
|
}
|
|
181
|
-
const
|
|
217
|
+
const uuidErr = validateUuid(input.taskId, 'taskId');
|
|
218
|
+
if (uuidErr)
|
|
219
|
+
return errorResult(uuidErr);
|
|
220
|
+
// MIN-740: read-before-write — reads task first to get stateHash
|
|
221
|
+
const data = await guardedPost(client, `/api/v2/unified-tasks/${input.taskId}/archive`, {}, `/api/v2/unified-tasks/${input.taskId}`);
|
|
182
222
|
return jsonResult(data);
|
|
183
223
|
}
|
|
184
224
|
async function searchTasks(client, input) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tasks.js","sourceRoot":"","sources":["../../../src/tools/tasks.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAEzC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"tasks.js","sourceRoot":"","sources":["../../../src/tools/tasks.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timers.d.ts","sourceRoot":"","sources":["../../../src/tools/timers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAGjD,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;EA2B5B,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,OAAO,iBAAiB,CAAC,MAAM,CAAC;AAE1D,wBAAsB,aAAa,CACjC,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,WAAW,GACjB,OAAO,CAAC;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,GAAG;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,CAwBlG;
|
|
1
|
+
{"version":3,"file":"timers.d.ts","sourceRoot":"","sources":["../../../src/tools/timers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAGjD,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;EA2B5B,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,OAAO,iBAAiB,CAAC,MAAM,CAAC;AAE1D,wBAAsB,aAAa,CACjC,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,WAAW,GACjB,OAAO,CAAC;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,GAAG;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,CAwBlG;AAgJD,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,iBAAiB,EAAE,MAAM,EAAE,YAAY,GAAG,IAAI,CAUrF;AAGD,UAAU,iBAAiB;IACzB,YAAY,CAAC,IAAI,EAAE;QACjB,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,OAAO,CAAC;QACrB,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;KAC/C,GAAG,IAAI,CAAC;IACT,MAAM,EAAE;QACN,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;QAC7B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;QAC5B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;QAC5B,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;KAC9B,CAAC;IACF,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACxC"}
|
package/dist/src/tools/timers.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* myn_timers tool - Countdown, alarm, and pomodoro timers
|
|
3
3
|
*/
|
|
4
4
|
import { Type } from '@sinclair/typebox';
|
|
5
|
-
import { jsonResult, errorResult } from '../client.js';
|
|
5
|
+
import { jsonResult, errorResult, guardedPost } from '../client.js';
|
|
6
6
|
export const TimersInputSchema = Type.Object({
|
|
7
7
|
action: Type.Union([
|
|
8
8
|
Type.Literal('create_countdown'),
|
|
@@ -97,7 +97,8 @@ async function cancelTimer(client, input) {
|
|
|
97
97
|
if (!input.timerId) {
|
|
98
98
|
return errorResult('timerId is required for cancel action');
|
|
99
99
|
}
|
|
100
|
-
|
|
100
|
+
// MIN-740: guardedPost reads state hash from timer before cancelling
|
|
101
|
+
const data = await guardedPost(client, `/api/v2/timers/${input.timerId}/cancel`, undefined, `/api/v2/timers/${input.timerId}`);
|
|
101
102
|
return jsonResult(data);
|
|
102
103
|
}
|
|
103
104
|
async function snoozeTimer(client, input) {
|
|
@@ -107,7 +108,8 @@ async function snoozeTimer(client, input) {
|
|
|
107
108
|
const body = {
|
|
108
109
|
snoozeMinutes: input.snoozeMinutes ?? 5
|
|
109
110
|
};
|
|
110
|
-
|
|
111
|
+
// MIN-740: guardedPost reads state hash from timer before snoozing
|
|
112
|
+
const data = await guardedPost(client, `/api/v2/timers/${input.timerId}/snooze`, body, `/api/v2/timers/${input.timerId}`);
|
|
111
113
|
return jsonResult(data);
|
|
112
114
|
}
|
|
113
115
|
async function createPomodoro(client, input) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timers.js","sourceRoot":"","sources":["../../../src/tools/timers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAEzC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"timers.js","sourceRoot":"","sources":["../../../src/tools/timers.ts"],"names":[],"mappings":"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"}
|
package/dist/src/tools/ynab.d.ts
CHANGED
|
@@ -44,7 +44,7 @@ export declare const YnabInputSchema: import("@sinclair/typebox").TObject<{
|
|
|
44
44
|
accountId: import("@sinclair/typebox").TString;
|
|
45
45
|
payeeName: import("@sinclair/typebox").TString;
|
|
46
46
|
amount: import("@sinclair/typebox").TNumber;
|
|
47
|
-
categoryName: import("@sinclair/typebox").
|
|
47
|
+
categoryName: import("@sinclair/typebox").TString;
|
|
48
48
|
date: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
49
49
|
memo: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
50
50
|
}>>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ynab.d.ts","sourceRoot":"","sources":["../../../src/tools/ynab.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAGjD,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkG1B,CAAC;AAEH,MAAM,MAAM,SAAS,GAAG,OAAO,eAAe,CAAC,MAAM,CAAC;AAuDtD,wBAAsB,WAAW,CAC/B,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,SAAS,GACf,OAAO,CAAC;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,GAAG;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,CAiGlG;
|
|
1
|
+
{"version":3,"file":"ynab.d.ts","sourceRoot":"","sources":["../../../src/tools/ynab.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAGjD,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkG1B,CAAC;AAEH,MAAM,MAAM,SAAS,GAAG,OAAO,eAAe,CAAC,MAAM,CAAC;AAuDtD,wBAAsB,WAAW,CAC/B,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,SAAS,GACf,OAAO,CAAC;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,GAAG;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,CAiGlG;AAggBD,UAAU,iBAAiB;IACzB,YAAY,CAAC,IAAI,EAAE;QACjB,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,OAAO,CAAC;QACrB,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;KAC/C,GAAG,IAAI,CAAC;CACV;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,iBAAiB,EAAE,MAAM,EAAE,YAAY,GAAG,IAAI,CAuBnF"}
|