@questionbase/deskfree 0.3.0-alpha.22 → 0.3.0-alpha.23
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 +13 -14
- package/dist/index.d.ts +42 -11
- package/dist/index.js +504 -520
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/skills/deskfree/SKILL.md +206 -448
package/README.md
CHANGED
|
@@ -15,31 +15,30 @@ Agents can pick up tasks, post progress updates, mark work as done or blocked, m
|
|
|
15
15
|
│ deskfree_state Inbound messages from humans │
|
|
16
16
|
│ deskfree_start_task Outbound replies from agent │
|
|
17
17
|
│ deskfree_complete_task Real-time notifications │
|
|
18
|
-
│
|
|
19
|
-
│
|
|
20
|
-
│
|
|
21
|
-
│
|
|
22
|
-
│
|
|
23
|
-
│
|
|
24
|
-
│ deskfree_send_message (+ task suggestions) │
|
|
18
|
+
│ deskfree_send_message │
|
|
19
|
+
│ deskfree_propose │
|
|
20
|
+
│ deskfree_update_file │
|
|
21
|
+
│ deskfree_create_file │
|
|
22
|
+
│ deskfree_claim_evaluation │
|
|
23
|
+
│ deskfree_submit_evaluation │
|
|
25
24
|
└──────────┬───────────────────────────┬───────────────────────────┘
|
|
26
25
|
│ │
|
|
27
26
|
▼ ▼
|
|
28
27
|
┌──────────────────────────────────────────────────────────────────┐
|
|
29
28
|
│ DeskFree Backend │
|
|
30
29
|
│ │
|
|
31
|
-
│ Tasks
|
|
32
|
-
│ ──────
|
|
33
|
-
│ State machine
|
|
34
|
-
│ RLS-scoped
|
|
35
|
-
│ Atomic claims
|
|
30
|
+
│ Tasks Files Messages WebSocket Gateway│
|
|
31
|
+
│ ────── ───── ──────── ─────────────── │
|
|
32
|
+
│ State machine Persistent 1:1 bot↔user DynamoDB-backed │
|
|
33
|
+
│ RLS-scoped documents Threaded by Thin notifs │
|
|
34
|
+
│ Atomic claims Versioned task + polling fallback│
|
|
36
35
|
└──────────────────────────────────────────────────────────────────┘
|
|
37
36
|
```
|
|
38
37
|
|
|
39
38
|
The plugin registers three things with OpenClaw:
|
|
40
39
|
|
|
41
40
|
1. **Channel** — bidirectional messaging between DeskFree users and the agent
|
|
42
|
-
2. **Tools** —
|
|
41
|
+
2. **Tools** — 9 task, file, and messaging tools the agent can call
|
|
43
42
|
3. **Skill** — workflow knowledge that teaches the agent how to use the tools correctly
|
|
44
43
|
|
|
45
44
|
## Install
|
|
@@ -132,7 +131,7 @@ See `skills/deskfree/references/tools.md` for the full tool reference.
|
|
|
132
131
|
|
|
133
132
|
**Inbound (human → agent):** WebSocket sends thin notification (`hint: "message.new"`) → plugin fetches full message via HTTP. Fallback: polls every 30s if WebSocket is unavailable.
|
|
134
133
|
|
|
135
|
-
**Outbound (agent → human):**
|
|
134
|
+
**Outbound (agent → human):** Supports streaming (progressive deltas via `streamChunk`, finalized via `updateMessage`) and non-streaming (direct `POST messages.send`). Text chunked at 2000 chars when streaming is not active.
|
|
136
135
|
|
|
137
136
|
### WebSocket Gateway
|
|
138
137
|
|
package/dist/index.d.ts
CHANGED
|
@@ -460,6 +460,13 @@ interface TaskWithContext extends Task {
|
|
|
460
460
|
instructions: string;
|
|
461
461
|
messages: TaskMessage[];
|
|
462
462
|
fileContext: FileContext | null;
|
|
463
|
+
skillContext?: Array<{
|
|
464
|
+
skillId: string;
|
|
465
|
+
name: string;
|
|
466
|
+
displayName: string;
|
|
467
|
+
instructions: string;
|
|
468
|
+
criticalSection: string;
|
|
469
|
+
}>;
|
|
463
470
|
}
|
|
464
471
|
interface CompleteTaskInput {
|
|
465
472
|
taskId: string;
|
|
@@ -566,6 +573,17 @@ declare class DeskFreeClient {
|
|
|
566
573
|
messageId: string;
|
|
567
574
|
content: string;
|
|
568
575
|
}>;
|
|
576
|
+
/**
|
|
577
|
+
* Send a streaming chunk (delta only) for an in-progress message.
|
|
578
|
+
* Broadcasts delta over WS and stores full content in DynamoDB for crash recovery.
|
|
579
|
+
*/
|
|
580
|
+
streamChunk(input: {
|
|
581
|
+
messageId: string;
|
|
582
|
+
delta: string;
|
|
583
|
+
fullContent: string;
|
|
584
|
+
}): Promise<{
|
|
585
|
+
messageId: string;
|
|
586
|
+
}>;
|
|
569
587
|
/**
|
|
570
588
|
* Send a text message to a DeskFree conversation.
|
|
571
589
|
*
|
|
@@ -588,6 +606,7 @@ declare class DeskFreeClient {
|
|
|
588
606
|
/** Fetch paginated message history for a conversation. */
|
|
589
607
|
listMessages(input: {
|
|
590
608
|
userId?: string;
|
|
609
|
+
taskId?: string;
|
|
591
610
|
cursor?: string | null;
|
|
592
611
|
limit?: number;
|
|
593
612
|
}): Promise<MessagesResponse>;
|
|
@@ -596,6 +615,7 @@ declare class DeskFreeClient {
|
|
|
596
615
|
/** Claim a task so the bot can begin working on it. Returns enriched context. */
|
|
597
616
|
claimTask(input: {
|
|
598
617
|
taskId: string;
|
|
618
|
+
runnerId?: string;
|
|
599
619
|
}): Promise<TaskWithContext>;
|
|
600
620
|
/** Fetch a lightweight task summary by ID. Read-only, no side effects. */
|
|
601
621
|
getTask(input: {
|
|
@@ -672,24 +692,35 @@ declare class DeskFreeClient {
|
|
|
672
692
|
completeTask(input: CompleteTaskInput): Promise<Task & {
|
|
673
693
|
outcome: 'done' | 'blocked';
|
|
674
694
|
}>;
|
|
675
|
-
/**
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
695
|
+
/** Reopen a completed/human task back to bot status for further work. */
|
|
696
|
+
reopenTask(input: {
|
|
697
|
+
taskId: string;
|
|
698
|
+
reason?: string;
|
|
699
|
+
}): Promise<Task>;
|
|
700
|
+
/** Propose a plan — creates a proposal message with plan metadata. No DB rows until human approves. */
|
|
701
|
+
proposePlan(input: {
|
|
702
|
+
tasks: Array<{
|
|
703
|
+
title?: string;
|
|
679
704
|
instructions?: string;
|
|
705
|
+
substeps?: string[];
|
|
706
|
+
file?: {
|
|
707
|
+
type: 'existing';
|
|
708
|
+
existingId: string;
|
|
709
|
+
} | {
|
|
710
|
+
type: 'new';
|
|
711
|
+
name: string;
|
|
712
|
+
description?: string;
|
|
713
|
+
};
|
|
680
714
|
estimatedTokens?: number;
|
|
681
|
-
initiativeId?: string;
|
|
682
715
|
scheduledFor?: string;
|
|
683
716
|
}>;
|
|
684
|
-
|
|
685
|
-
initiativeSuggestions?: Array<{
|
|
717
|
+
initiative?: string | {
|
|
686
718
|
title: string;
|
|
687
719
|
content: string;
|
|
688
|
-
|
|
689
|
-
|
|
720
|
+
};
|
|
721
|
+
context?: string;
|
|
690
722
|
}): Promise<{
|
|
691
|
-
|
|
692
|
-
initiativeSuggestionIds?: string[];
|
|
723
|
+
messageId: string;
|
|
693
724
|
}>;
|
|
694
725
|
/**
|
|
695
726
|
* Claim a pending evaluation for a task. Atomically sets isWorking=true where
|