@questionbase/deskfree 0.3.0-alpha.2 → 0.3.0-alpha.21
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 +24 -14
- package/dist/index.d.ts +745 -6
- package/dist/index.js +9192 -18
- package/dist/index.js.map +1 -1
- package/package.json +8 -9
- package/skills/deskfree/SKILL.md +510 -221
- package/skills/deskfree/references/tools.md +144 -0
- package/dist/channel.d.ts +0 -3
- package/dist/channel.d.ts.map +0 -1
- package/dist/channel.js +0 -505
- package/dist/channel.js.map +0 -1
- package/dist/client.d.ts +0 -143
- package/dist/client.d.ts.map +0 -1
- package/dist/client.js +0 -246
- package/dist/client.js.map +0 -1
- package/dist/deliver.d.ts +0 -22
- package/dist/deliver.d.ts.map +0 -1
- package/dist/deliver.js +0 -350
- package/dist/deliver.js.map +0 -1
- package/dist/gateway.d.ts +0 -13
- package/dist/gateway.d.ts.map +0 -1
- package/dist/gateway.js +0 -836
- package/dist/gateway.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/llm-definitions.d.ts +0 -117
- package/dist/llm-definitions.d.ts.map +0 -1
- package/dist/llm-definitions.js +0 -121
- package/dist/llm-definitions.js.map +0 -1
- package/dist/offline-queue.d.ts +0 -45
- package/dist/offline-queue.d.ts.map +0 -1
- package/dist/offline-queue.js +0 -109
- package/dist/offline-queue.js.map +0 -1
- package/dist/paths.d.ts +0 -10
- package/dist/paths.d.ts.map +0 -1
- package/dist/paths.js +0 -29
- package/dist/paths.js.map +0 -1
- package/dist/runtime.d.ts +0 -17
- package/dist/runtime.d.ts.map +0 -1
- package/dist/runtime.js +0 -24
- package/dist/runtime.js.map +0 -1
- package/dist/tools.d.ts +0 -23
- package/dist/tools.d.ts.map +0 -1
- package/dist/tools.js +0 -437
- package/dist/tools.js.map +0 -1
- package/dist/types.d.ts +0 -438
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -2
- package/dist/types.js.map +0 -1
- package/dist/workspace.d.ts +0 -18
- package/dist/workspace.d.ts.map +0 -1
- package/dist/workspace.js +0 -83
- package/dist/workspace.js.map +0 -1
package/dist/tools.js
DELETED
|
@@ -1,437 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* DeskFree Agent Tools Implementation
|
|
3
|
-
*
|
|
4
|
-
* This module implements the DeskFree integration for OpenClaw agents,
|
|
5
|
-
* providing tools for task management, message sending, and bot collaboration.
|
|
6
|
-
*
|
|
7
|
-
* Architecture:
|
|
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()
|
|
11
|
-
*
|
|
12
|
-
* Configuration:
|
|
13
|
-
* Tools are only available when DeskFree is properly configured in channels.deskfree
|
|
14
|
-
* with botToken and apiUrl. Supports both single account and multi-account setups.
|
|
15
|
-
*/
|
|
16
|
-
import { DeskFreeClient, DeskFreeError } from './client';
|
|
17
|
-
import { setActiveTaskId } from './gateway';
|
|
18
|
-
import { ORCHESTRATOR_TOOLS, WORKER_TOOLS } from './llm-definitions';
|
|
19
|
-
/**
|
|
20
|
-
* Resolve the DeskFree account from the plugin config.
|
|
21
|
-
* Supports both single account mode (direct config) and multi-account mode (accounts object).
|
|
22
|
-
*/
|
|
23
|
-
function resolveAccountFromConfig(api) {
|
|
24
|
-
const cfg = api.runtime.config.loadConfig();
|
|
25
|
-
const ch = cfg?.channels?.deskfree;
|
|
26
|
-
if (!ch)
|
|
27
|
-
return null;
|
|
28
|
-
// Use first explicit account, or fall back to top-level config
|
|
29
|
-
if (ch.accounts && Object.keys(ch.accounts).length > 0) {
|
|
30
|
-
const [accountId, acct] = Object.entries(ch.accounts)[0];
|
|
31
|
-
if (!acct.botToken || !acct.apiUrl)
|
|
32
|
-
return null;
|
|
33
|
-
return {
|
|
34
|
-
accountId,
|
|
35
|
-
botToken: acct.botToken,
|
|
36
|
-
apiUrl: acct.apiUrl,
|
|
37
|
-
wsUrl: acct.wsUrl ?? '',
|
|
38
|
-
userId: acct.userId ?? '',
|
|
39
|
-
enabled: acct.enabled !== false,
|
|
40
|
-
};
|
|
41
|
-
}
|
|
42
|
-
if (!ch.botToken || !ch.apiUrl)
|
|
43
|
-
return null;
|
|
44
|
-
return {
|
|
45
|
-
accountId: 'default',
|
|
46
|
-
botToken: ch.botToken,
|
|
47
|
-
apiUrl: ch.apiUrl,
|
|
48
|
-
wsUrl: ch.wsUrl ?? '',
|
|
49
|
-
userId: ch.userId ?? '',
|
|
50
|
-
enabled: ch.enabled !== false,
|
|
51
|
-
};
|
|
52
|
-
}
|
|
53
|
-
function formatTaskResponse(task, summary, nextActions) {
|
|
54
|
-
return {
|
|
55
|
-
content: [
|
|
56
|
-
{
|
|
57
|
-
type: 'text',
|
|
58
|
-
text: JSON.stringify({
|
|
59
|
-
summary,
|
|
60
|
-
nextActions,
|
|
61
|
-
task,
|
|
62
|
-
}, null, 2),
|
|
63
|
-
},
|
|
64
|
-
],
|
|
65
|
-
};
|
|
66
|
-
}
|
|
67
|
-
function formatConfirmation(summary, nextActions, data) {
|
|
68
|
-
return {
|
|
69
|
-
content: [
|
|
70
|
-
{
|
|
71
|
-
type: 'text',
|
|
72
|
-
text: JSON.stringify({
|
|
73
|
-
summary,
|
|
74
|
-
nextActions,
|
|
75
|
-
...(data ? { data } : {}),
|
|
76
|
-
}, null, 2),
|
|
77
|
-
},
|
|
78
|
-
],
|
|
79
|
-
};
|
|
80
|
-
}
|
|
81
|
-
/**
|
|
82
|
-
* Map a DeskFreeError type to an actionable suggestion for the agent.
|
|
83
|
-
*/
|
|
84
|
-
function suggestionForErrorType(type, statusCode) {
|
|
85
|
-
switch (type) {
|
|
86
|
-
case 'auth':
|
|
87
|
-
return 'Verify the bot token in your OpenClaw configuration is correct and has not expired.';
|
|
88
|
-
case 'timeout':
|
|
89
|
-
return 'Wait a moment and try again. If the problem persists, check your network connection.';
|
|
90
|
-
case 'network':
|
|
91
|
-
return 'Check your internet connection and try again.';
|
|
92
|
-
case 'server':
|
|
93
|
-
return 'The server encountered an error. Wait a few moments and retry your request.';
|
|
94
|
-
case 'invalid_response':
|
|
95
|
-
return 'The server returned an unexpected response. Please try again or contact support.';
|
|
96
|
-
case 'client':
|
|
97
|
-
if (statusCode === 429)
|
|
98
|
-
return 'Too many requests. Wait a moment before trying again.';
|
|
99
|
-
if (statusCode === 409)
|
|
100
|
-
return 'Try calling deskfree_state to see available tasks.';
|
|
101
|
-
if (statusCode === 404)
|
|
102
|
-
return 'Use deskfree_state to see all available tasks and verify the taskId.';
|
|
103
|
-
return 'Check your input parameters and try again.';
|
|
104
|
-
default:
|
|
105
|
-
return '';
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
function errorResult(err) {
|
|
109
|
-
if (err instanceof DeskFreeError) {
|
|
110
|
-
const suggestion = suggestionForErrorType(err.type, err.statusCode);
|
|
111
|
-
return {
|
|
112
|
-
content: [
|
|
113
|
-
{
|
|
114
|
-
type: 'text',
|
|
115
|
-
text: JSON.stringify({
|
|
116
|
-
error: true,
|
|
117
|
-
errorType: err.type,
|
|
118
|
-
message: err.userMessage,
|
|
119
|
-
...(suggestion ? { suggestion } : {}),
|
|
120
|
-
procedure: err.procedure,
|
|
121
|
-
...(err.statusCode ? { statusCode: err.statusCode } : {}),
|
|
122
|
-
}, null, 2),
|
|
123
|
-
},
|
|
124
|
-
],
|
|
125
|
-
isError: true,
|
|
126
|
-
};
|
|
127
|
-
}
|
|
128
|
-
const rawMessage = err instanceof Error ? err.message : String(err);
|
|
129
|
-
return {
|
|
130
|
-
content: [
|
|
131
|
-
{
|
|
132
|
-
type: 'text',
|
|
133
|
-
text: JSON.stringify({
|
|
134
|
-
error: true,
|
|
135
|
-
message: rawMessage,
|
|
136
|
-
}, null, 2),
|
|
137
|
-
},
|
|
138
|
-
],
|
|
139
|
-
isError: true,
|
|
140
|
-
};
|
|
141
|
-
}
|
|
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
|
-
}
|
|
149
|
-
const value = params[key];
|
|
150
|
-
if (value == null) {
|
|
151
|
-
if (required) {
|
|
152
|
-
throw new Error(`Required parameter '${key}' is missing`);
|
|
153
|
-
}
|
|
154
|
-
return undefined;
|
|
155
|
-
}
|
|
156
|
-
if (typeof value !== 'string') {
|
|
157
|
-
throw new Error(`Parameter '${key}' must be a string, got ${typeof value}`);
|
|
158
|
-
}
|
|
159
|
-
if (required && value.trim() === '') {
|
|
160
|
-
throw new Error(`Required parameter '${key}' cannot be empty`);
|
|
161
|
-
}
|
|
162
|
-
return value;
|
|
163
|
-
}
|
|
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
|
-
}
|
|
171
|
-
const value = params[key];
|
|
172
|
-
if (value == null) {
|
|
173
|
-
if (required) {
|
|
174
|
-
throw new Error(`Required parameter '${key}' is missing`);
|
|
175
|
-
}
|
|
176
|
-
return undefined;
|
|
177
|
-
}
|
|
178
|
-
if (typeof value !== 'string') {
|
|
179
|
-
throw new Error(`Parameter '${key}' must be a string, got ${typeof value}`);
|
|
180
|
-
}
|
|
181
|
-
if (required && value.trim() === '') {
|
|
182
|
-
throw new Error(`Required parameter '${key}' cannot be empty`);
|
|
183
|
-
}
|
|
184
|
-
if (!allowedValues.includes(value)) {
|
|
185
|
-
throw new Error(`Parameter '${key}' must be one of: ${allowedValues.join(', ')}, got: ${value}`);
|
|
186
|
-
}
|
|
187
|
-
return value;
|
|
188
|
-
}
|
|
189
|
-
/**
|
|
190
|
-
* Creates all 8 orchestrator tools for the main orchestrator agent.
|
|
191
|
-
*
|
|
192
|
-
* @param api - OpenClaw plugin API for accessing configuration
|
|
193
|
-
* @returns Array of agent tools, or null if DeskFree is not configured
|
|
194
|
-
*/
|
|
195
|
-
export function createOrchestratorTools(api) {
|
|
196
|
-
const account = resolveAccountFromConfig(api);
|
|
197
|
-
if (!account)
|
|
198
|
-
return null;
|
|
199
|
-
const client = new DeskFreeClient(account.botToken, account.apiUrl);
|
|
200
|
-
return [
|
|
201
|
-
{
|
|
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,
|
|
217
|
-
async execute(_id, params) {
|
|
218
|
-
try {
|
|
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);
|
|
226
|
-
}
|
|
227
|
-
catch (err) {
|
|
228
|
-
return errorResult(err);
|
|
229
|
-
}
|
|
230
|
-
},
|
|
231
|
-
},
|
|
232
|
-
{
|
|
233
|
-
...ORCHESTRATOR_TOOLS.UPDATE_GOAL,
|
|
234
|
-
async execute(_id, params) {
|
|
235
|
-
try {
|
|
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);
|
|
251
|
-
}
|
|
252
|
-
catch (err) {
|
|
253
|
-
return errorResult(err);
|
|
254
|
-
}
|
|
255
|
-
},
|
|
256
|
-
},
|
|
257
|
-
{
|
|
258
|
-
...ORCHESTRATOR_TOOLS.CREATE_TASK,
|
|
259
|
-
async execute(_id, params) {
|
|
260
|
-
try {
|
|
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',
|
|
272
|
-
]);
|
|
273
|
-
}
|
|
274
|
-
catch (err) {
|
|
275
|
-
return errorResult(err);
|
|
276
|
-
}
|
|
277
|
-
},
|
|
278
|
-
},
|
|
279
|
-
{
|
|
280
|
-
...ORCHESTRATOR_TOOLS.START_TASK,
|
|
281
|
-
async execute(_id, params) {
|
|
282
|
-
try {
|
|
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
|
-
};
|
|
302
|
-
}
|
|
303
|
-
catch (err) {
|
|
304
|
-
return errorResult(err);
|
|
305
|
-
}
|
|
306
|
-
},
|
|
307
|
-
},
|
|
308
|
-
{
|
|
309
|
-
...ORCHESTRATOR_TOOLS.UPDATE_DELIVERABLE,
|
|
310
|
-
async execute(_id, params) {
|
|
311
|
-
try {
|
|
312
|
-
const taskId = validateStringParam(params, 'taskId', true);
|
|
313
|
-
const deliverable = validateStringParam(params, 'deliverable', true);
|
|
314
|
-
await client.updateDeliverable({ taskId, deliverable });
|
|
315
|
-
return formatConfirmation(`Updated deliverable for task ${taskId}`, [
|
|
316
|
-
'Deliverable has been saved',
|
|
317
|
-
'Complete with deskfree_complete_task when ready',
|
|
318
|
-
]);
|
|
319
|
-
}
|
|
320
|
-
catch (err) {
|
|
321
|
-
return errorResult(err);
|
|
322
|
-
}
|
|
323
|
-
},
|
|
324
|
-
},
|
|
325
|
-
{
|
|
326
|
-
...ORCHESTRATOR_TOOLS.COMPLETE_TASK,
|
|
327
|
-
async execute(_id, params) {
|
|
328
|
-
try {
|
|
329
|
-
const taskId = validateStringParam(params, 'taskId', true);
|
|
330
|
-
const outcome = validateEnumParam(params, 'outcome', ['done', 'blocked'], true);
|
|
331
|
-
const result = await client.completeTask({ taskId, outcome });
|
|
332
|
-
setActiveTaskId(null);
|
|
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',
|
|
339
|
-
]);
|
|
340
|
-
}
|
|
341
|
-
catch (err) {
|
|
342
|
-
return errorResult(err);
|
|
343
|
-
}
|
|
344
|
-
},
|
|
345
|
-
},
|
|
346
|
-
{
|
|
347
|
-
...ORCHESTRATOR_TOOLS.SEND_MESSAGE,
|
|
348
|
-
async execute(_id, params) {
|
|
349
|
-
try {
|
|
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
|
-
]);
|
|
359
|
-
}
|
|
360
|
-
catch (err) {
|
|
361
|
-
return errorResult(err);
|
|
362
|
-
}
|
|
363
|
-
},
|
|
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 [
|
|
379
|
-
{
|
|
380
|
-
...WORKER_TOOLS.UPDATE_DELIVERABLE,
|
|
381
|
-
async execute(_id, params) {
|
|
382
|
-
try {
|
|
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
|
-
]);
|
|
390
|
-
}
|
|
391
|
-
catch (err) {
|
|
392
|
-
return errorResult(err);
|
|
393
|
-
}
|
|
394
|
-
},
|
|
395
|
-
},
|
|
396
|
-
{
|
|
397
|
-
...WORKER_TOOLS.COMPLETE_TASK,
|
|
398
|
-
async execute(_id, params) {
|
|
399
|
-
try {
|
|
400
|
-
const taskId = validateStringParam(params, 'taskId', true);
|
|
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',
|
|
409
|
-
]);
|
|
410
|
-
}
|
|
411
|
-
catch (err) {
|
|
412
|
-
return errorResult(err);
|
|
413
|
-
}
|
|
414
|
-
},
|
|
415
|
-
},
|
|
416
|
-
{
|
|
417
|
-
...WORKER_TOOLS.SEND_MESSAGE,
|
|
418
|
-
async execute(_id, params) {
|
|
419
|
-
try {
|
|
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',
|
|
428
|
-
]);
|
|
429
|
-
}
|
|
430
|
-
catch (err) {
|
|
431
|
-
return errorResult(err);
|
|
432
|
-
}
|
|
433
|
-
},
|
|
434
|
-
},
|
|
435
|
-
];
|
|
436
|
-
}
|
|
437
|
-
//# sourceMappingURL=tools.js.map
|
package/dist/tools.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
|