@questionbase/deskfree 0.2.0-alpha.6 → 0.3.0-alpha.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/dist/channel.d.ts.map +1 -1
- package/dist/channel.js +2 -0
- package/dist/channel.js.map +1 -1
- 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.d.ts.map +1 -1
- package/dist/gateway.js +141 -7
- 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 -53
- package/dist/llm-definitions.d.ts.map +1 -1
- package/dist/llm-definitions.js +56 -83
- 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 +140 -250
- package/dist/tools.js.map +1 -1
- package/dist/types.d.ts +51 -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: [
|
|
@@ -212,52 +175,42 @@ export function validateEnumParam(params, key, allowedValues, required) {
|
|
|
212
175
|
return value;
|
|
213
176
|
}
|
|
214
177
|
/**
|
|
215
|
-
* Creates all
|
|
216
|
-
*
|
|
217
|
-
* This function dynamically creates agent tools based on the DeskFree configuration
|
|
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
|
|
178
|
+
* Creates all 8 orchestrator tools for the main orchestrator agent.
|
|
223
179
|
*
|
|
224
|
-
* @param api - OpenClaw plugin API for accessing configuration
|
|
180
|
+
* @param api - OpenClaw plugin API for accessing configuration
|
|
225
181
|
* @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
182
|
*/
|
|
235
|
-
export function
|
|
183
|
+
export function createOrchestratorTools(api) {
|
|
236
184
|
const account = resolveAccountFromConfig(api);
|
|
237
185
|
if (!account)
|
|
238
186
|
return null;
|
|
239
|
-
// Initialize the DeskFree HTTP client with bot credentials
|
|
240
|
-
// This client handles authentication, error parsing, and request formatting
|
|
241
187
|
const client = new DeskFreeClient(account.botToken, account.apiUrl);
|
|
242
188
|
return [
|
|
243
189
|
{
|
|
244
|
-
...
|
|
190
|
+
...ORCHESTRATOR_TOOLS.STATE,
|
|
191
|
+
async execute(_id, _params) {
|
|
192
|
+
try {
|
|
193
|
+
const state = await client.getState();
|
|
194
|
+
return {
|
|
195
|
+
content: [{ type: 'text', text: JSON.stringify(state, null, 2) }],
|
|
196
|
+
};
|
|
197
|
+
}
|
|
198
|
+
catch (err) {
|
|
199
|
+
return errorResult(err);
|
|
200
|
+
}
|
|
201
|
+
},
|
|
202
|
+
},
|
|
203
|
+
{
|
|
204
|
+
...ORCHESTRATOR_TOOLS.CREATE_GOAL,
|
|
245
205
|
async execute(_id, params) {
|
|
246
206
|
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);
|
|
207
|
+
const title = validateStringParam(params, 'title', true);
|
|
208
|
+
const description = validateStringParam(params, 'description', false);
|
|
209
|
+
const result = await client.createGoal({ title, description });
|
|
210
|
+
return formatConfirmation(`Created goal "${result.goal.title}" (${result.goal.goalId})`, [
|
|
211
|
+
'Now create 3-5 tasks linked to this goal using deskfree_create_task with goalId',
|
|
212
|
+
'Claim the first task with deskfree_start_task and start working immediately',
|
|
213
|
+
], result.goal);
|
|
261
214
|
}
|
|
262
215
|
catch (err) {
|
|
263
216
|
return errorResult(err);
|
|
@@ -265,17 +218,24 @@ export function createDeskFreeTools(api) {
|
|
|
265
218
|
},
|
|
266
219
|
},
|
|
267
220
|
{
|
|
268
|
-
...
|
|
221
|
+
...ORCHESTRATOR_TOOLS.UPDATE_GOAL,
|
|
269
222
|
async execute(_id, params) {
|
|
270
223
|
try {
|
|
271
|
-
const
|
|
272
|
-
const
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
224
|
+
const goalId = validateStringParam(params, 'goalId', true);
|
|
225
|
+
const title = validateStringParam(params, 'title', false);
|
|
226
|
+
const description = validateStringParam(params, 'description', false);
|
|
227
|
+
const status = validateStringParam(params, 'status', false);
|
|
228
|
+
const result = await client.updateGoal({
|
|
229
|
+
goalId,
|
|
230
|
+
title,
|
|
231
|
+
description,
|
|
232
|
+
status,
|
|
233
|
+
});
|
|
234
|
+
return formatConfirmation(`Updated goal "${result.title}"`, [
|
|
235
|
+
result.status === 'active'
|
|
236
|
+
? 'Continue working on tasks for this goal'
|
|
237
|
+
: `Goal is now ${result.status}`,
|
|
238
|
+
], result);
|
|
279
239
|
}
|
|
280
240
|
catch (err) {
|
|
281
241
|
return errorResult(err);
|
|
@@ -283,15 +243,20 @@ export function createDeskFreeTools(api) {
|
|
|
283
243
|
},
|
|
284
244
|
},
|
|
285
245
|
{
|
|
286
|
-
...
|
|
246
|
+
...ORCHESTRATOR_TOOLS.CREATE_TASK,
|
|
287
247
|
async execute(_id, params) {
|
|
288
248
|
try {
|
|
289
|
-
const
|
|
290
|
-
const
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
249
|
+
const title = validateStringParam(params, 'title', true);
|
|
250
|
+
const instructions = validateStringParam(params, 'instructions', false);
|
|
251
|
+
const goalId = validateStringParam(params, 'goalId', false);
|
|
252
|
+
const result = await client.createTask({
|
|
253
|
+
title,
|
|
254
|
+
instructions,
|
|
255
|
+
goalId,
|
|
256
|
+
});
|
|
257
|
+
return formatTaskResponse(result.task, `Created task "${result.task.title}" with ID ${result.task.taskId}`, [
|
|
258
|
+
'Claim and start this task with deskfree_start_task',
|
|
259
|
+
'Or check workspace state with deskfree_state',
|
|
295
260
|
]);
|
|
296
261
|
}
|
|
297
262
|
catch (err) {
|
|
@@ -300,18 +265,28 @@ export function createDeskFreeTools(api) {
|
|
|
300
265
|
},
|
|
301
266
|
},
|
|
302
267
|
{
|
|
303
|
-
...
|
|
268
|
+
...ORCHESTRATOR_TOOLS.START_TASK,
|
|
304
269
|
async execute(_id, params) {
|
|
305
270
|
try {
|
|
306
|
-
const
|
|
307
|
-
const
|
|
308
|
-
|
|
309
|
-
return
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
271
|
+
const taskId = validateStringParam(params, 'taskId', true);
|
|
272
|
+
const result = await client.claimTask({ taskId });
|
|
273
|
+
setActiveTaskId(taskId);
|
|
274
|
+
return {
|
|
275
|
+
content: [
|
|
276
|
+
{
|
|
277
|
+
type: 'text',
|
|
278
|
+
text: JSON.stringify({
|
|
279
|
+
summary: `Claimed task "${result.title}" — full context loaded`,
|
|
280
|
+
nextActions: [
|
|
281
|
+
'Read the instructions and message history carefully',
|
|
282
|
+
'Update deliverable incrementally with deskfree_update_deliverable',
|
|
283
|
+
'Complete with deskfree_complete_task when done',
|
|
284
|
+
],
|
|
285
|
+
task: result,
|
|
286
|
+
}, null, 2),
|
|
287
|
+
},
|
|
288
|
+
],
|
|
289
|
+
};
|
|
315
290
|
}
|
|
316
291
|
catch (err) {
|
|
317
292
|
return errorResult(err);
|
|
@@ -319,7 +294,7 @@ export function createDeskFreeTools(api) {
|
|
|
319
294
|
},
|
|
320
295
|
},
|
|
321
296
|
{
|
|
322
|
-
...
|
|
297
|
+
...ORCHESTRATOR_TOOLS.UPDATE_DELIVERABLE,
|
|
323
298
|
async execute(_id, params) {
|
|
324
299
|
try {
|
|
325
300
|
const taskId = validateStringParam(params, 'taskId', true);
|
|
@@ -327,7 +302,7 @@ export function createDeskFreeTools(api) {
|
|
|
327
302
|
await client.updateDeliverable({ taskId, deliverable });
|
|
328
303
|
return formatConfirmation(`Updated deliverable for task ${taskId}`, [
|
|
329
304
|
'Deliverable has been saved',
|
|
330
|
-
'
|
|
305
|
+
'Complete with deskfree_complete_task when ready',
|
|
331
306
|
]);
|
|
332
307
|
}
|
|
333
308
|
catch (err) {
|
|
@@ -336,17 +311,19 @@ export function createDeskFreeTools(api) {
|
|
|
336
311
|
},
|
|
337
312
|
},
|
|
338
313
|
{
|
|
339
|
-
...
|
|
314
|
+
...ORCHESTRATOR_TOOLS.COMPLETE_TASK,
|
|
340
315
|
async execute(_id, params) {
|
|
341
316
|
try {
|
|
342
317
|
const taskId = validateStringParam(params, 'taskId', true);
|
|
343
|
-
const
|
|
344
|
-
const result = await client.
|
|
318
|
+
const outcome = validateEnumParam(params, 'outcome', ['done', 'blocked'], true);
|
|
319
|
+
const result = await client.completeTask({ taskId, outcome });
|
|
345
320
|
setActiveTaskId(null);
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
321
|
+
const summaryVerb = outcome === 'done' ? 'completed' : 'blocked';
|
|
322
|
+
return formatTaskResponse(result, `Task "${result.title}" marked as ${summaryVerb} — waiting for human`, [
|
|
323
|
+
outcome === 'done'
|
|
324
|
+
? 'Human will review the deliverable'
|
|
325
|
+
: 'Human will review the blocker and provide guidance',
|
|
326
|
+
'Use deskfree_state to check for other tasks',
|
|
350
327
|
]);
|
|
351
328
|
}
|
|
352
329
|
catch (err) {
|
|
@@ -355,120 +332,49 @@ export function createDeskFreeTools(api) {
|
|
|
355
332
|
},
|
|
356
333
|
},
|
|
357
334
|
{
|
|
358
|
-
...
|
|
335
|
+
...ORCHESTRATOR_TOOLS.SEND_MESSAGE,
|
|
359
336
|
async execute(_id, params) {
|
|
360
337
|
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);
|
|
338
|
+
const content = validateStringParam(params, 'content', true);
|
|
339
|
+
const taskId = validateStringParam(params, 'taskId', false);
|
|
340
|
+
await client.sendMessage({ content, taskId });
|
|
341
|
+
return formatConfirmation(`Message sent${taskId ? ` to task ${taskId}` : ''}`, [
|
|
342
|
+
'Message delivered to the human',
|
|
343
|
+
taskId
|
|
344
|
+
? 'Continue working on the task or wait for response'
|
|
345
|
+
: 'Check for response with task messages',
|
|
346
|
+
]);
|
|
372
347
|
}
|
|
373
348
|
catch (err) {
|
|
374
349
|
return errorResult(err);
|
|
375
350
|
}
|
|
376
351
|
},
|
|
377
352
|
},
|
|
353
|
+
];
|
|
354
|
+
}
|
|
355
|
+
/**
|
|
356
|
+
* Creates the 3-tool subset for worker sub-agents.
|
|
357
|
+
*
|
|
358
|
+
* @param api - OpenClaw plugin API for accessing configuration
|
|
359
|
+
* @returns Array of worker tools, or null if DeskFree is not configured
|
|
360
|
+
*/
|
|
361
|
+
export function createWorkerTools(api) {
|
|
362
|
+
const account = resolveAccountFromConfig(api);
|
|
363
|
+
if (!account)
|
|
364
|
+
return null;
|
|
365
|
+
const client = new DeskFreeClient(account.botToken, account.apiUrl);
|
|
366
|
+
return [
|
|
378
367
|
{
|
|
379
|
-
...
|
|
368
|
+
...WORKER_TOOLS.UPDATE_DELIVERABLE,
|
|
380
369
|
async execute(_id, params) {
|
|
381
370
|
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);
|
|
371
|
+
const taskId = validateStringParam(params, 'taskId', true);
|
|
372
|
+
const deliverable = validateStringParam(params, 'deliverable', true);
|
|
373
|
+
await client.updateDeliverable({ taskId, deliverable });
|
|
374
|
+
return formatConfirmation(`Updated deliverable for task ${taskId}`, [
|
|
375
|
+
'Deliverable has been saved',
|
|
376
|
+
'Complete with deskfree_complete_task when ready',
|
|
377
|
+
]);
|
|
472
378
|
}
|
|
473
379
|
catch (err) {
|
|
474
380
|
return errorResult(err);
|
|
@@ -476,23 +382,18 @@ export function createDeskFreeTools(api) {
|
|
|
476
382
|
},
|
|
477
383
|
},
|
|
478
384
|
{
|
|
479
|
-
...
|
|
385
|
+
...WORKER_TOOLS.COMPLETE_TASK,
|
|
480
386
|
async execute(_id, params) {
|
|
481
387
|
try {
|
|
482
388
|
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',
|
|
389
|
+
const outcome = validateEnumParam(params, 'outcome', ['done', 'blocked'], true);
|
|
390
|
+
const result = await client.completeTask({ taskId, outcome });
|
|
391
|
+
setActiveTaskId(null);
|
|
392
|
+
const summaryVerb = outcome === 'done' ? 'completed' : 'blocked';
|
|
393
|
+
return formatTaskResponse(result, `Task "${result.title}" marked as ${summaryVerb} — waiting for human`, [
|
|
394
|
+
outcome === 'done'
|
|
395
|
+
? 'Human will review the deliverable'
|
|
396
|
+
: 'Human will review the blocker and provide guidance',
|
|
496
397
|
]);
|
|
497
398
|
}
|
|
498
399
|
catch (err) {
|
|
@@ -501,16 +402,17 @@ export function createDeskFreeTools(api) {
|
|
|
501
402
|
},
|
|
502
403
|
},
|
|
503
404
|
{
|
|
504
|
-
...
|
|
405
|
+
...WORKER_TOOLS.SEND_MESSAGE,
|
|
505
406
|
async execute(_id, params) {
|
|
506
407
|
try {
|
|
507
|
-
const
|
|
508
|
-
const
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
408
|
+
const content = validateStringParam(params, 'content', true);
|
|
409
|
+
const taskId = validateStringParam(params, 'taskId', false);
|
|
410
|
+
await client.sendMessage({ content, taskId });
|
|
411
|
+
return formatConfirmation(`Message sent${taskId ? ` to task ${taskId}` : ''}`, [
|
|
412
|
+
'Message delivered to the human',
|
|
413
|
+
taskId
|
|
414
|
+
? 'Continue working on the task or wait for response'
|
|
415
|
+
: 'Check for response with task messages',
|
|
514
416
|
]);
|
|
515
417
|
}
|
|
516
418
|
catch (err) {
|
|
@@ -518,18 +420,6 @@ export function createDeskFreeTools(api) {
|
|
|
518
420
|
}
|
|
519
421
|
},
|
|
520
422
|
},
|
|
521
|
-
{
|
|
522
|
-
...TOOLS.SETUP,
|
|
523
|
-
async execute() {
|
|
524
|
-
const directive = `## DeskFree
|
|
525
|
-
<!-- deskfree-directive -->
|
|
526
|
-
Always read the deskfree skill (SKILL.md) at startup. Follow its workflow for task tracking and messaging.`;
|
|
527
|
-
return textResult({
|
|
528
|
-
directive,
|
|
529
|
-
instructions: 'Read your AGENTS.md file. If it does not contain the marker <!-- deskfree-directive -->, append the directive block above to the end of the file. If the marker already exists, no changes are needed.',
|
|
530
|
-
});
|
|
531
|
-
},
|
|
532
|
-
},
|
|
533
423
|
];
|
|
534
424
|
}
|
|
535
425
|
//# sourceMappingURL=tools.js.map
|
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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"}
|