@questionbase/deskfree 0.2.0-alpha.7 → 0.3.0-alpha.2
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/dist/client.d.ts +22 -29
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +23 -32
- package/dist/client.js.map +1 -1
- package/dist/gateway.js +59 -0
- package/dist/gateway.js.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/llm-definitions.d.ts +54 -48
- package/dist/llm-definitions.d.ts.map +1 -1
- package/dist/llm-definitions.js +56 -78
- package/dist/llm-definitions.js.map +1 -1
- package/dist/tools.d.ts +9 -21
- package/dist/tools.d.ts.map +1 -1
- package/dist/tools.js +152 -238
- package/dist/tools.js.map +1 -1
- package/dist/types.d.ts +47 -2
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/skills/deskfree/SKILL.md +133 -89
package/dist/tools.js
CHANGED
|
@@ -5,10 +5,9 @@
|
|
|
5
5
|
* providing tools for task management, message sending, and bot collaboration.
|
|
6
6
|
*
|
|
7
7
|
* Architecture:
|
|
8
|
-
* -
|
|
9
|
-
* -
|
|
10
|
-
* -
|
|
11
|
-
* - All responses follow a consistent JSON structure for agent consumption
|
|
8
|
+
* - createOrchestratorTools() — full 8-tool set for orchestrator agents
|
|
9
|
+
* - createWorkerTools() — 3-tool subset for worker sub-agents
|
|
10
|
+
* - createDeskFreeTools() — backward-compat alias for createOrchestratorTools()
|
|
12
11
|
*
|
|
13
12
|
* Configuration:
|
|
14
13
|
* Tools are only available when DeskFree is properly configured in channels.deskfree
|
|
@@ -16,26 +15,10 @@
|
|
|
16
15
|
*/
|
|
17
16
|
import { DeskFreeClient, DeskFreeError } from './client';
|
|
18
17
|
import { setActiveTaskId } from './gateway';
|
|
19
|
-
import {
|
|
20
|
-
/**
|
|
21
|
-
* Valid task status values for filtering in the DeskFree state machine.
|
|
22
|
-
* These match the task lifecycle defined in the DeskFree backend:
|
|
23
|
-
* - ready_for_bot: Available for any bot to claim
|
|
24
|
-
* - working_on_it: Currently being worked on by a bot
|
|
25
|
-
* - waiting_for_human: Submitted for human review/approval
|
|
26
|
-
* - done: Completed and approved by human
|
|
27
|
-
*/
|
|
28
|
-
const VALID_TASK_STATUSES = [
|
|
29
|
-
'ready_for_bot',
|
|
30
|
-
'working_on_it',
|
|
31
|
-
'waiting_for_human',
|
|
32
|
-
'done',
|
|
33
|
-
];
|
|
18
|
+
import { ORCHESTRATOR_TOOLS, WORKER_TOOLS } from './llm-definitions';
|
|
34
19
|
/**
|
|
35
20
|
* Resolve the DeskFree account from the plugin config.
|
|
36
21
|
* Supports both single account mode (direct config) and multi-account mode (accounts object).
|
|
37
|
-
* Multi-account mode allows connecting to multiple DeskFree instances with different credentials.
|
|
38
|
-
* Shared logic with channel.ts — reads channels.deskfree from config.
|
|
39
22
|
*/
|
|
40
23
|
function resolveAccountFromConfig(api) {
|
|
41
24
|
const cfg = api.runtime.config.loadConfig();
|
|
@@ -67,9 +50,6 @@ function resolveAccountFromConfig(api) {
|
|
|
67
50
|
enabled: ch.enabled !== false,
|
|
68
51
|
};
|
|
69
52
|
}
|
|
70
|
-
function _textResult(data) {
|
|
71
|
-
return { content: [{ type: 'text', text: JSON.stringify(data, null, 2) }] };
|
|
72
|
-
}
|
|
73
53
|
function formatTaskResponse(task, summary, nextActions) {
|
|
74
54
|
return {
|
|
75
55
|
content: [
|
|
@@ -84,20 +64,6 @@ function formatTaskResponse(task, summary, nextActions) {
|
|
|
84
64
|
],
|
|
85
65
|
};
|
|
86
66
|
}
|
|
87
|
-
function formatListResponse(tasks, summary, nextActions) {
|
|
88
|
-
return {
|
|
89
|
-
content: [
|
|
90
|
-
{
|
|
91
|
-
type: 'text',
|
|
92
|
-
text: JSON.stringify({
|
|
93
|
-
summary,
|
|
94
|
-
nextActions,
|
|
95
|
-
tasks,
|
|
96
|
-
}, null, 2),
|
|
97
|
-
},
|
|
98
|
-
],
|
|
99
|
-
};
|
|
100
|
-
}
|
|
101
67
|
function formatConfirmation(summary, nextActions, data) {
|
|
102
68
|
return {
|
|
103
69
|
content: [
|
|
@@ -131,17 +97,15 @@ function suggestionForErrorType(type, statusCode) {
|
|
|
131
97
|
if (statusCode === 429)
|
|
132
98
|
return 'Too many requests. Wait a moment before trying again.';
|
|
133
99
|
if (statusCode === 409)
|
|
134
|
-
return 'Try
|
|
100
|
+
return 'Try calling deskfree_state to see available tasks.';
|
|
135
101
|
if (statusCode === 404)
|
|
136
|
-
return 'Use
|
|
102
|
+
return 'Use deskfree_state to see all available tasks and verify the taskId.';
|
|
137
103
|
return 'Check your input parameters and try again.';
|
|
138
104
|
default:
|
|
139
105
|
return '';
|
|
140
106
|
}
|
|
141
107
|
}
|
|
142
108
|
function errorResult(err) {
|
|
143
|
-
// Use DeskFreeError's structured fields when available — they provide
|
|
144
|
-
// pre-formatted user-friendly messages and error classification.
|
|
145
109
|
if (err instanceof DeskFreeError) {
|
|
146
110
|
const suggestion = suggestionForErrorType(err.type, err.statusCode);
|
|
147
111
|
return {
|
|
@@ -161,7 +125,6 @@ function errorResult(err) {
|
|
|
161
125
|
isError: true,
|
|
162
126
|
};
|
|
163
127
|
}
|
|
164
|
-
// Fallback for non-DeskFreeError exceptions (validation errors, etc.)
|
|
165
128
|
const rawMessage = err instanceof Error ? err.message : String(err);
|
|
166
129
|
return {
|
|
167
130
|
content: [
|
|
@@ -177,6 +140,12 @@ function errorResult(err) {
|
|
|
177
140
|
};
|
|
178
141
|
}
|
|
179
142
|
export function validateStringParam(params, key, required) {
|
|
143
|
+
if (!params) {
|
|
144
|
+
if (required) {
|
|
145
|
+
throw new Error(`Required parameter '${key}' is missing (no params provided)`);
|
|
146
|
+
}
|
|
147
|
+
return undefined;
|
|
148
|
+
}
|
|
180
149
|
const value = params[key];
|
|
181
150
|
if (value == null) {
|
|
182
151
|
if (required) {
|
|
@@ -193,6 +162,12 @@ export function validateStringParam(params, key, required) {
|
|
|
193
162
|
return value;
|
|
194
163
|
}
|
|
195
164
|
export function validateEnumParam(params, key, allowedValues, required) {
|
|
165
|
+
if (!params) {
|
|
166
|
+
if (required) {
|
|
167
|
+
throw new Error(`Required parameter '${key}' is missing (no params provided)`);
|
|
168
|
+
}
|
|
169
|
+
return undefined;
|
|
170
|
+
}
|
|
196
171
|
const value = params[key];
|
|
197
172
|
if (value == null) {
|
|
198
173
|
if (required) {
|
|
@@ -212,52 +187,42 @@ export function validateEnumParam(params, key, allowedValues, required) {
|
|
|
212
187
|
return value;
|
|
213
188
|
}
|
|
214
189
|
/**
|
|
215
|
-
* Creates all
|
|
190
|
+
* Creates all 8 orchestrator tools for the main orchestrator agent.
|
|
216
191
|
*
|
|
217
|
-
*
|
|
218
|
-
* in the OpenClaw config file. Tools enable agents to:
|
|
219
|
-
* - Claim and release tasks
|
|
220
|
-
* - Update task deliverables and request reviews
|
|
221
|
-
* - Send messages to humans
|
|
222
|
-
* - List and retrieve task information
|
|
223
|
-
*
|
|
224
|
-
* @param api - OpenClaw plugin API for accessing configuration and runtime
|
|
192
|
+
* @param api - OpenClaw plugin API for accessing configuration
|
|
225
193
|
* @returns Array of agent tools, or null if DeskFree is not configured
|
|
226
|
-
*
|
|
227
|
-
* @example
|
|
228
|
-
* // In config.yaml:
|
|
229
|
-
* channels:
|
|
230
|
-
* deskfree:
|
|
231
|
-
* botToken: "your-bot-token"
|
|
232
|
-
* apiUrl: "https://api.deskfree.ai"
|
|
233
|
-
* enabled: true
|
|
234
194
|
*/
|
|
235
|
-
export function
|
|
195
|
+
export function createOrchestratorTools(api) {
|
|
236
196
|
const account = resolveAccountFromConfig(api);
|
|
237
197
|
if (!account)
|
|
238
198
|
return null;
|
|
239
|
-
// Initialize the DeskFree HTTP client with bot credentials
|
|
240
|
-
// This client handles authentication, error parsing, and request formatting
|
|
241
199
|
const client = new DeskFreeClient(account.botToken, account.apiUrl);
|
|
242
200
|
return [
|
|
243
201
|
{
|
|
244
|
-
...
|
|
202
|
+
...ORCHESTRATOR_TOOLS.STATE,
|
|
203
|
+
async execute(_id, _params) {
|
|
204
|
+
try {
|
|
205
|
+
const state = await client.getState();
|
|
206
|
+
return {
|
|
207
|
+
content: [{ type: 'text', text: JSON.stringify(state, null, 2) }],
|
|
208
|
+
};
|
|
209
|
+
}
|
|
210
|
+
catch (err) {
|
|
211
|
+
return errorResult(err);
|
|
212
|
+
}
|
|
213
|
+
},
|
|
214
|
+
},
|
|
215
|
+
{
|
|
216
|
+
...ORCHESTRATOR_TOOLS.CREATE_GOAL,
|
|
245
217
|
async execute(_id, params) {
|
|
246
218
|
try {
|
|
247
|
-
const
|
|
248
|
-
const
|
|
249
|
-
const
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
nextActions.push('Update deliverable with deskfree_update_deliverable');
|
|
255
|
-
nextActions.push('Request review when ready with deskfree_request_review');
|
|
256
|
-
}
|
|
257
|
-
else if (result.status === 'waiting_for_human') {
|
|
258
|
-
nextActions.push('Wait for human review or send a message with deskfree_send_message');
|
|
259
|
-
}
|
|
260
|
-
return formatTaskResponse(result, `Task "${result.title}" is ${result.status}`, nextActions);
|
|
219
|
+
const title = validateStringParam(params, 'title', true);
|
|
220
|
+
const description = validateStringParam(params, 'description', false);
|
|
221
|
+
const result = await client.createGoal({ title, description });
|
|
222
|
+
return formatConfirmation(`Created goal "${result.goal.title}" (${result.goal.goalId})`, [
|
|
223
|
+
'Now create 3-5 tasks linked to this goal using deskfree_create_task with goalId',
|
|
224
|
+
'Claim the first task with deskfree_start_task and start working immediately',
|
|
225
|
+
], result.goal);
|
|
261
226
|
}
|
|
262
227
|
catch (err) {
|
|
263
228
|
return errorResult(err);
|
|
@@ -265,17 +230,24 @@ export function createDeskFreeTools(api) {
|
|
|
265
230
|
},
|
|
266
231
|
},
|
|
267
232
|
{
|
|
268
|
-
...
|
|
233
|
+
...ORCHESTRATOR_TOOLS.UPDATE_GOAL,
|
|
269
234
|
async execute(_id, params) {
|
|
270
235
|
try {
|
|
271
|
-
const
|
|
272
|
-
const
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
236
|
+
const goalId = validateStringParam(params, 'goalId', true);
|
|
237
|
+
const title = validateStringParam(params, 'title', false);
|
|
238
|
+
const description = validateStringParam(params, 'description', false);
|
|
239
|
+
const status = validateStringParam(params, 'status', false);
|
|
240
|
+
const result = await client.updateGoal({
|
|
241
|
+
goalId,
|
|
242
|
+
title,
|
|
243
|
+
description,
|
|
244
|
+
status,
|
|
245
|
+
});
|
|
246
|
+
return formatConfirmation(`Updated goal "${result.title}"`, [
|
|
247
|
+
result.status === 'active'
|
|
248
|
+
? 'Continue working on tasks for this goal'
|
|
249
|
+
: `Goal is now ${result.status}`,
|
|
250
|
+
], result);
|
|
279
251
|
}
|
|
280
252
|
catch (err) {
|
|
281
253
|
return errorResult(err);
|
|
@@ -283,15 +255,20 @@ export function createDeskFreeTools(api) {
|
|
|
283
255
|
},
|
|
284
256
|
},
|
|
285
257
|
{
|
|
286
|
-
...
|
|
258
|
+
...ORCHESTRATOR_TOOLS.CREATE_TASK,
|
|
287
259
|
async execute(_id, params) {
|
|
288
260
|
try {
|
|
289
|
-
const
|
|
290
|
-
const
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
261
|
+
const title = validateStringParam(params, 'title', true);
|
|
262
|
+
const instructions = validateStringParam(params, 'instructions', false);
|
|
263
|
+
const goalId = validateStringParam(params, 'goalId', false);
|
|
264
|
+
const result = await client.createTask({
|
|
265
|
+
title,
|
|
266
|
+
instructions,
|
|
267
|
+
goalId,
|
|
268
|
+
});
|
|
269
|
+
return formatTaskResponse(result.task, `Created task "${result.task.title}" with ID ${result.task.taskId}`, [
|
|
270
|
+
'Claim and start this task with deskfree_start_task',
|
|
271
|
+
'Or check workspace state with deskfree_state',
|
|
295
272
|
]);
|
|
296
273
|
}
|
|
297
274
|
catch (err) {
|
|
@@ -300,18 +277,28 @@ export function createDeskFreeTools(api) {
|
|
|
300
277
|
},
|
|
301
278
|
},
|
|
302
279
|
{
|
|
303
|
-
...
|
|
280
|
+
...ORCHESTRATOR_TOOLS.START_TASK,
|
|
304
281
|
async execute(_id, params) {
|
|
305
282
|
try {
|
|
306
|
-
const
|
|
307
|
-
const
|
|
308
|
-
|
|
309
|
-
return
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
283
|
+
const taskId = validateStringParam(params, 'taskId', true);
|
|
284
|
+
const result = await client.claimTask({ taskId });
|
|
285
|
+
setActiveTaskId(taskId);
|
|
286
|
+
return {
|
|
287
|
+
content: [
|
|
288
|
+
{
|
|
289
|
+
type: 'text',
|
|
290
|
+
text: JSON.stringify({
|
|
291
|
+
summary: `Claimed task "${result.title}" — full context loaded`,
|
|
292
|
+
nextActions: [
|
|
293
|
+
'Read the instructions and message history carefully',
|
|
294
|
+
'Update deliverable incrementally with deskfree_update_deliverable',
|
|
295
|
+
'Complete with deskfree_complete_task when done',
|
|
296
|
+
],
|
|
297
|
+
task: result,
|
|
298
|
+
}, null, 2),
|
|
299
|
+
},
|
|
300
|
+
],
|
|
301
|
+
};
|
|
315
302
|
}
|
|
316
303
|
catch (err) {
|
|
317
304
|
return errorResult(err);
|
|
@@ -319,7 +306,7 @@ export function createDeskFreeTools(api) {
|
|
|
319
306
|
},
|
|
320
307
|
},
|
|
321
308
|
{
|
|
322
|
-
...
|
|
309
|
+
...ORCHESTRATOR_TOOLS.UPDATE_DELIVERABLE,
|
|
323
310
|
async execute(_id, params) {
|
|
324
311
|
try {
|
|
325
312
|
const taskId = validateStringParam(params, 'taskId', true);
|
|
@@ -327,7 +314,7 @@ export function createDeskFreeTools(api) {
|
|
|
327
314
|
await client.updateDeliverable({ taskId, deliverable });
|
|
328
315
|
return formatConfirmation(`Updated deliverable for task ${taskId}`, [
|
|
329
316
|
'Deliverable has been saved',
|
|
330
|
-
'
|
|
317
|
+
'Complete with deskfree_complete_task when ready',
|
|
331
318
|
]);
|
|
332
319
|
}
|
|
333
320
|
catch (err) {
|
|
@@ -336,17 +323,19 @@ export function createDeskFreeTools(api) {
|
|
|
336
323
|
},
|
|
337
324
|
},
|
|
338
325
|
{
|
|
339
|
-
...
|
|
326
|
+
...ORCHESTRATOR_TOOLS.COMPLETE_TASK,
|
|
340
327
|
async execute(_id, params) {
|
|
341
328
|
try {
|
|
342
329
|
const taskId = validateStringParam(params, 'taskId', true);
|
|
343
|
-
const
|
|
344
|
-
const result = await client.
|
|
330
|
+
const outcome = validateEnumParam(params, 'outcome', ['done', 'blocked'], true);
|
|
331
|
+
const result = await client.completeTask({ taskId, outcome });
|
|
345
332
|
setActiveTaskId(null);
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
333
|
+
const summaryVerb = outcome === 'done' ? 'completed' : 'blocked';
|
|
334
|
+
return formatTaskResponse(result, `Task "${result.title}" marked as ${summaryVerb} — waiting for human`, [
|
|
335
|
+
outcome === 'done'
|
|
336
|
+
? 'Human will review the deliverable'
|
|
337
|
+
: 'Human will review the blocker and provide guidance',
|
|
338
|
+
'Use deskfree_state to check for other tasks',
|
|
350
339
|
]);
|
|
351
340
|
}
|
|
352
341
|
catch (err) {
|
|
@@ -355,120 +344,49 @@ export function createDeskFreeTools(api) {
|
|
|
355
344
|
},
|
|
356
345
|
},
|
|
357
346
|
{
|
|
358
|
-
...
|
|
347
|
+
...ORCHESTRATOR_TOOLS.SEND_MESSAGE,
|
|
359
348
|
async execute(_id, params) {
|
|
360
349
|
try {
|
|
361
|
-
const
|
|
362
|
-
const
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
}
|
|
371
|
-
return formatListResponse(result.tasks, `Found ${result.tasks.length} task(s)${status ? ` with status "${status}"` : ''} (${readyForBot.length} ready for bot)`, nextActions);
|
|
350
|
+
const content = validateStringParam(params, 'content', true);
|
|
351
|
+
const taskId = validateStringParam(params, 'taskId', false);
|
|
352
|
+
await client.sendMessage({ content, taskId });
|
|
353
|
+
return formatConfirmation(`Message sent${taskId ? ` to task ${taskId}` : ''}`, [
|
|
354
|
+
'Message delivered to the human',
|
|
355
|
+
taskId
|
|
356
|
+
? 'Continue working on the task or wait for response'
|
|
357
|
+
: 'Check for response with task messages',
|
|
358
|
+
]);
|
|
372
359
|
}
|
|
373
360
|
catch (err) {
|
|
374
361
|
return errorResult(err);
|
|
375
362
|
}
|
|
376
363
|
},
|
|
377
364
|
},
|
|
365
|
+
];
|
|
366
|
+
}
|
|
367
|
+
/**
|
|
368
|
+
* Creates the 3-tool subset for worker sub-agents.
|
|
369
|
+
*
|
|
370
|
+
* @param api - OpenClaw plugin API for accessing configuration
|
|
371
|
+
* @returns Array of worker tools, or null if DeskFree is not configured
|
|
372
|
+
*/
|
|
373
|
+
export function createWorkerTools(api) {
|
|
374
|
+
const account = resolveAccountFromConfig(api);
|
|
375
|
+
if (!account)
|
|
376
|
+
return null;
|
|
377
|
+
const client = new DeskFreeClient(account.botToken, account.apiUrl);
|
|
378
|
+
return [
|
|
378
379
|
{
|
|
379
|
-
...
|
|
380
|
+
...WORKER_TOOLS.UPDATE_DELIVERABLE,
|
|
380
381
|
async execute(_id, params) {
|
|
381
382
|
try {
|
|
382
|
-
const
|
|
383
|
-
const
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
throw new Error(`Parameter 'isRecurring' must be a boolean, got ${typeof rawIsRecurring}`);
|
|
390
|
-
}
|
|
391
|
-
isRecurring = rawIsRecurring;
|
|
392
|
-
}
|
|
393
|
-
// Validate recurringSchedule
|
|
394
|
-
const VALID_FREQUENCIES = [
|
|
395
|
-
'daily',
|
|
396
|
-
'weekly',
|
|
397
|
-
'biweekly',
|
|
398
|
-
'monthly',
|
|
399
|
-
];
|
|
400
|
-
let recurringSchedule;
|
|
401
|
-
const rawSchedule = params.recurringSchedule;
|
|
402
|
-
if (rawSchedule != null) {
|
|
403
|
-
if (typeof rawSchedule !== 'object' || Array.isArray(rawSchedule)) {
|
|
404
|
-
throw new Error("Parameter 'recurringSchedule' must be an object");
|
|
405
|
-
}
|
|
406
|
-
const sched = rawSchedule;
|
|
407
|
-
// frequency (required)
|
|
408
|
-
if (!sched.frequency || typeof sched.frequency !== 'string') {
|
|
409
|
-
throw new Error('recurringSchedule.frequency is required and must be a string');
|
|
410
|
-
}
|
|
411
|
-
if (!VALID_FREQUENCIES.includes(sched.frequency)) {
|
|
412
|
-
throw new Error(`recurringSchedule.frequency must be one of: ${VALID_FREQUENCIES.join(', ')}`);
|
|
413
|
-
}
|
|
414
|
-
// time (required)
|
|
415
|
-
if (!sched.time || typeof sched.time !== 'string') {
|
|
416
|
-
throw new Error("recurringSchedule.time is required (e.g., '09:00')");
|
|
417
|
-
}
|
|
418
|
-
if (!/^\d{2}:\d{2}$/.test(sched.time)) {
|
|
419
|
-
throw new Error("recurringSchedule.time must be in HH:mm format (e.g., '09:00')");
|
|
420
|
-
}
|
|
421
|
-
// dayOfWeek (optional, 0-6)
|
|
422
|
-
if (sched.dayOfWeek != null) {
|
|
423
|
-
if (typeof sched.dayOfWeek !== 'number' ||
|
|
424
|
-
!Number.isInteger(sched.dayOfWeek) ||
|
|
425
|
-
sched.dayOfWeek < 0 ||
|
|
426
|
-
sched.dayOfWeek > 6) {
|
|
427
|
-
throw new Error('recurringSchedule.dayOfWeek must be an integer 0-6 (0=Sun, 6=Sat)');
|
|
428
|
-
}
|
|
429
|
-
}
|
|
430
|
-
// dayOfMonth (optional, 1-31)
|
|
431
|
-
if (sched.dayOfMonth != null) {
|
|
432
|
-
if (typeof sched.dayOfMonth !== 'number' ||
|
|
433
|
-
!Number.isInteger(sched.dayOfMonth) ||
|
|
434
|
-
sched.dayOfMonth < 1 ||
|
|
435
|
-
sched.dayOfMonth > 31) {
|
|
436
|
-
throw new Error('recurringSchedule.dayOfMonth must be an integer 1-31');
|
|
437
|
-
}
|
|
438
|
-
}
|
|
439
|
-
// timezone (optional string)
|
|
440
|
-
if (sched.timezone != null && typeof sched.timezone !== 'string') {
|
|
441
|
-
throw new Error('recurringSchedule.timezone must be a string');
|
|
442
|
-
}
|
|
443
|
-
recurringSchedule = {
|
|
444
|
-
frequency: sched.frequency,
|
|
445
|
-
time: sched.time,
|
|
446
|
-
...(sched.dayOfWeek != null
|
|
447
|
-
? { dayOfWeek: sched.dayOfWeek }
|
|
448
|
-
: {}),
|
|
449
|
-
...(sched.dayOfMonth != null
|
|
450
|
-
? { dayOfMonth: sched.dayOfMonth }
|
|
451
|
-
: {}),
|
|
452
|
-
...(sched.timezone ? { timezone: sched.timezone } : {}),
|
|
453
|
-
};
|
|
454
|
-
}
|
|
455
|
-
if (isRecurring && !recurringSchedule) {
|
|
456
|
-
throw new Error('recurringSchedule is required when isRecurring is true');
|
|
457
|
-
}
|
|
458
|
-
const result = await client.createTask({
|
|
459
|
-
title,
|
|
460
|
-
instructions,
|
|
461
|
-
isRecurring,
|
|
462
|
-
recurringSchedule,
|
|
463
|
-
});
|
|
464
|
-
const nextActions = [
|
|
465
|
-
'Claim this task with deskfree_claim_task to start working on it',
|
|
466
|
-
'Or list all tasks with deskfree_list_tasks',
|
|
467
|
-
];
|
|
468
|
-
if (isRecurring) {
|
|
469
|
-
nextActions.push('This is a recurring task — it will auto-clone when approved');
|
|
470
|
-
}
|
|
471
|
-
return formatTaskResponse(result.task, `Created ${isRecurring ? 'recurring ' : ''}task "${result.task.title}" with ID ${result.task.taskId}`, nextActions);
|
|
383
|
+
const taskId = validateStringParam(params, 'taskId', true);
|
|
384
|
+
const deliverable = validateStringParam(params, 'deliverable', true);
|
|
385
|
+
await client.updateDeliverable({ taskId, deliverable });
|
|
386
|
+
return formatConfirmation(`Updated deliverable for task ${taskId}`, [
|
|
387
|
+
'Deliverable has been saved',
|
|
388
|
+
'Complete with deskfree_complete_task when ready',
|
|
389
|
+
]);
|
|
472
390
|
}
|
|
473
391
|
catch (err) {
|
|
474
392
|
return errorResult(err);
|
|
@@ -476,23 +394,18 @@ export function createDeskFreeTools(api) {
|
|
|
476
394
|
},
|
|
477
395
|
},
|
|
478
396
|
{
|
|
479
|
-
...
|
|
397
|
+
...WORKER_TOOLS.COMPLETE_TASK,
|
|
480
398
|
async execute(_id, params) {
|
|
481
399
|
try {
|
|
482
400
|
const taskId = validateStringParam(params, 'taskId', true);
|
|
483
|
-
const
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
}
|
|
492
|
-
const result = await client.snoozeTask({ taskId, snoozedUntil });
|
|
493
|
-
return formatTaskResponse(result, `Task "${result.title}" snoozed until ${snoozeDate.toLocaleString()}`, [
|
|
494
|
-
'Task is hidden from active views until the snooze expires',
|
|
495
|
-
'Use deskfree_unsnooze_task to make it visible immediately',
|
|
401
|
+
const outcome = validateEnumParam(params, 'outcome', ['done', 'blocked'], true);
|
|
402
|
+
const result = await client.completeTask({ taskId, outcome });
|
|
403
|
+
setActiveTaskId(null);
|
|
404
|
+
const summaryVerb = outcome === 'done' ? 'completed' : 'blocked';
|
|
405
|
+
return formatTaskResponse(result, `Task "${result.title}" marked as ${summaryVerb} — waiting for human`, [
|
|
406
|
+
outcome === 'done'
|
|
407
|
+
? 'Human will review the deliverable'
|
|
408
|
+
: 'Human will review the blocker and provide guidance',
|
|
496
409
|
]);
|
|
497
410
|
}
|
|
498
411
|
catch (err) {
|
|
@@ -501,16 +414,17 @@ export function createDeskFreeTools(api) {
|
|
|
501
414
|
},
|
|
502
415
|
},
|
|
503
416
|
{
|
|
504
|
-
...
|
|
417
|
+
...WORKER_TOOLS.SEND_MESSAGE,
|
|
505
418
|
async execute(_id, params) {
|
|
506
419
|
try {
|
|
507
|
-
const
|
|
508
|
-
const
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
420
|
+
const content = validateStringParam(params, 'content', true);
|
|
421
|
+
const taskId = validateStringParam(params, 'taskId', false);
|
|
422
|
+
await client.sendMessage({ content, taskId });
|
|
423
|
+
return formatConfirmation(`Message sent${taskId ? ` to task ${taskId}` : ''}`, [
|
|
424
|
+
'Message delivered to the human',
|
|
425
|
+
taskId
|
|
426
|
+
? 'Continue working on the task or wait for response'
|
|
427
|
+
: 'Check for response with task messages',
|
|
514
428
|
]);
|
|
515
429
|
}
|
|
516
430
|
catch (err) {
|
package/dist/tools.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
|