@questionbase/deskfree 0.3.0-alpha.3 → 0.3.0-alpha.31
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 +44 -17
- package/dist/index.d.ts +779 -6
- package/dist/index.js +9605 -25
- package/dist/index.js.map +1 -1
- package/package.json +8 -9
- package/skills/deskfree/SKILL.md +168 -247
- package/skills/deskfree/references/tools.md +136 -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/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 -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 -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 -479
- 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, and exchange messages with humans — all through a structured workflow with human oversight gates.
|
|
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
|
|
|
@@ -12,27 +12,33 @@ Agents can pick up tasks, post progress updates, mark work as done, and exchange
|
|
|
12
12
|
│ │
|
|
13
13
|
│ Tools (HTTP) Channel (WebSocket + polling) │
|
|
14
14
|
│ ───────────── ────────────────────────────── │
|
|
15
|
-
│
|
|
16
|
-
│
|
|
17
|
-
│
|
|
15
|
+
│ deskfree_state Inbound messages from humans │
|
|
16
|
+
│ deskfree_start_task Outbound replies from agent │
|
|
17
|
+
│ deskfree_complete_task Real-time notifications │
|
|
18
|
+
│ deskfree_send_message │
|
|
19
|
+
│ deskfree_propose │
|
|
20
|
+
│ deskfree_update_file │
|
|
21
|
+
│ deskfree_create_file │
|
|
22
|
+
│ deskfree_claim_evaluation │
|
|
23
|
+
│ deskfree_submit_evaluation │
|
|
18
24
|
└──────────┬───────────────────────────┬───────────────────────────┘
|
|
19
25
|
│ │
|
|
20
26
|
▼ ▼
|
|
21
27
|
┌──────────────────────────────────────────────────────────────────┐
|
|
22
28
|
│ DeskFree Backend │
|
|
23
29
|
│ │
|
|
24
|
-
│ Tasks Messages WebSocket Gateway
|
|
25
|
-
│ ────── ────────
|
|
26
|
-
│ State machine 1:1 bot↔user DynamoDB-backed
|
|
27
|
-
│ RLS-scoped Threaded by Thin
|
|
28
|
-
│ Atomic claims task
|
|
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│
|
|
29
35
|
└──────────────────────────────────────────────────────────────────┘
|
|
30
36
|
```
|
|
31
37
|
|
|
32
38
|
The plugin registers three things with OpenClaw:
|
|
33
39
|
|
|
34
40
|
1. **Channel** — bidirectional messaging between DeskFree users and the agent
|
|
35
|
-
2. **Tools** —
|
|
41
|
+
2. **Tools** — 9 task, file, and messaging tools the agent can call
|
|
36
42
|
3. **Skill** — workflow knowledge that teaches the agent how to use the tools correctly
|
|
37
43
|
|
|
38
44
|
## Install
|
|
@@ -108,20 +114,41 @@ Edit your OpenClaw config file (`~/.openclaw/config.json5`):
|
|
|
108
114
|
|
|
109
115
|
## Task workflow
|
|
110
116
|
|
|
111
|
-
Tasks follow a strict state machine. The agent claims a task, works on it, and
|
|
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.
|
|
112
118
|
|
|
113
119
|
```
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
120
|
+
pending ──[start_task]──> active ──[complete_task(review)]──> review ──[bot completes]──> done
|
|
121
|
+
└──[complete_task(done)]──> done
|
|
122
|
+
└──[complete_task(blocked)]──> review
|
|
117
123
|
```
|
|
118
124
|
|
|
119
|
-
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
|
+
```
|
|
120
149
|
|
|
121
150
|
## Documentation
|
|
122
151
|
|
|
123
|
-
- **[Architecture](docs/architecture.md)** — system design, message flow, WebSocket gateway
|
|
124
|
-
- **[Tools reference](docs/tools.md)** — all 8 agent tools with parameters and behavior
|
|
125
152
|
- **[Publishing](PUBLISH.md)** — how to release new versions
|
|
126
153
|
|
|
127
154
|
## License
|