@questionbase/deskfree 0.3.0-alpha.4 → 0.3.0-alpha.40
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 +39 -20
- package/dist/index.d.ts +784 -6
- package/dist/index.js +9870 -25
- package/dist/index.js.map +1 -1
- package/package.json +10 -11
- package/skills/deskfree/SKILL.md +118 -165
- package/skills/deskfree/references/tools.md +85 -42
- 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 -156
- package/dist/client.d.ts.map +0 -1
- package/dist/client.js +0 -252
- package/dist/client.js.map +0 -1
- package/dist/context.d.ts +0 -15
- package/dist/context.d.ts.map +0 -1
- package/dist/context.js +0 -31
- package/dist/context.js.map +0 -1
- package/dist/deliver.d.ts +0 -22
- package/dist/deliver.d.ts.map +0 -1
- package/dist/deliver.js +0 -379
- 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 -727
- 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 -484
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -2
- package/dist/types.js.map +0 -1
- package/dist/version.d.ts +0 -2
- package/dist/version.d.ts.map +0 -1
- package/dist/version.js +0 -4
- package/dist/version.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/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
OpenClaw plugin that connects AI agents to [DeskFree](https://github.com/deskfree) — a task management platform built for human-AI collaboration.
|
|
4
4
|
|
|
5
|
-
Agents can pick up tasks, post progress updates, mark work as done or blocked, manage
|
|
5
|
+
Agents can pick up tasks, post progress updates, mark work as done or blocked, manage activities (knowledge containers), and exchange messages with humans — all through a structured workflow with human oversight gates.
|
|
6
6
|
|
|
7
7
|
## How it works
|
|
8
8
|
|
|
@@ -15,29 +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
|
-
│ deskfree_create_task │
|
|
19
|
-
│ deskfree_create_goal │
|
|
20
|
-
│ deskfree_update_goal │
|
|
21
|
-
│ deskfree_update_deliverable │
|
|
22
18
|
│ deskfree_send_message │
|
|
19
|
+
│ deskfree_propose │
|
|
20
|
+
│ deskfree_update_file │
|
|
21
|
+
│ deskfree_create_file │
|
|
22
|
+
│ deskfree_claim_evaluation │
|
|
23
|
+
│ deskfree_submit_evaluation │
|
|
23
24
|
└──────────┬───────────────────────────┬───────────────────────────┘
|
|
24
25
|
│ │
|
|
25
26
|
▼ ▼
|
|
26
27
|
┌──────────────────────────────────────────────────────────────────┐
|
|
27
28
|
│ DeskFree Backend │
|
|
28
29
|
│ │
|
|
29
|
-
│ Tasks
|
|
30
|
-
│ ────── ─────
|
|
31
|
-
│ State machine
|
|
32
|
-
│ RLS-scoped
|
|
33
|
-
│ 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│
|
|
34
35
|
└──────────────────────────────────────────────────────────────────┘
|
|
35
36
|
```
|
|
36
37
|
|
|
37
38
|
The plugin registers three things with OpenClaw:
|
|
38
39
|
|
|
39
40
|
1. **Channel** — bidirectional messaging between DeskFree users and the agent
|
|
40
|
-
2. **Tools** —
|
|
41
|
+
2. **Tools** — 9 task, file, and messaging tools the agent can call
|
|
41
42
|
3. **Skill** — workflow knowledge that teaches the agent how to use the tools correctly
|
|
42
43
|
|
|
43
44
|
## Install
|
|
@@ -116,20 +117,38 @@ Edit your OpenClaw config file (`~/.openclaw/config.json5`):
|
|
|
116
117
|
Tasks follow a strict state machine. The agent claims a task, works on it, and completes it (done or blocked) — always returning control to a human.
|
|
117
118
|
|
|
118
119
|
```
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
human approves/declines
|
|
123
|
-
│
|
|
124
|
-
[approve] → done
|
|
120
|
+
pending ──[start_task]──> active ──[complete_task(review)]──> review ──[bot completes]──> done
|
|
121
|
+
└──[complete_task(done)]──> done
|
|
122
|
+
└──[complete_task(blocked)]──> review
|
|
125
123
|
```
|
|
126
124
|
|
|
127
|
-
See
|
|
125
|
+
See `skills/deskfree/references/tools.md` for the full tool reference.
|
|
126
|
+
|
|
127
|
+
### Message Flow
|
|
128
|
+
|
|
129
|
+
**Inbound (human → agent):** WebSocket sends thin notification (`hint: "message.new"`) → plugin fetches full message via HTTP. Fallback: polls every 30s if WebSocket is unavailable.
|
|
130
|
+
|
|
131
|
+
**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.
|
|
132
|
+
|
|
133
|
+
### WebSocket Gateway
|
|
134
|
+
|
|
135
|
+
1. Request ticket: `POST messages.wsTicket` → one-time ticket (30s expiry)
|
|
136
|
+
2. Connect: `wss://...?ticket=<ticket>`
|
|
137
|
+
3. Keep alive: ping every 5 min (API Gateway idle timeout = 10 min)
|
|
138
|
+
4. Reconnect: exponential backoff (2s → 30s) on disconnect
|
|
139
|
+
5. Cursor persisted to `deskfree/{accountId}/cursor` for resume after restart
|
|
140
|
+
|
|
141
|
+
### Plugin Registration
|
|
142
|
+
|
|
143
|
+
```
|
|
144
|
+
register(api)
|
|
145
|
+
├─ setDeskFreeRuntime(api.runtime) // runtime singleton
|
|
146
|
+
├─ api.registerChannel(deskFreePlugin) // messaging channel
|
|
147
|
+
└─ api.registerTool(factory) // task management tools
|
|
148
|
+
```
|
|
128
149
|
|
|
129
150
|
## Documentation
|
|
130
151
|
|
|
131
|
-
- **[Architecture](docs/architecture.md)** — system design, message flow, WebSocket gateway
|
|
132
|
-
- **[Tools reference](docs/tools.md)** — all 8 agent tools with parameters and behavior
|
|
133
152
|
- **[Publishing](PUBLISH.md)** — how to release new versions
|
|
134
153
|
|
|
135
154
|
## License
|