@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.
Files changed (60) hide show
  1. package/README.md +44 -17
  2. package/dist/index.d.ts +779 -6
  3. package/dist/index.js +9605 -25
  4. package/dist/index.js.map +1 -1
  5. package/package.json +8 -9
  6. package/skills/deskfree/SKILL.md +168 -247
  7. package/skills/deskfree/references/tools.md +136 -0
  8. package/dist/channel.d.ts +0 -3
  9. package/dist/channel.d.ts.map +0 -1
  10. package/dist/channel.js +0 -505
  11. package/dist/channel.js.map +0 -1
  12. package/dist/client.d.ts +0 -143
  13. package/dist/client.d.ts.map +0 -1
  14. package/dist/client.js +0 -246
  15. package/dist/client.js.map +0 -1
  16. package/dist/context.d.ts +0 -15
  17. package/dist/context.d.ts.map +0 -1
  18. package/dist/context.js +0 -31
  19. package/dist/context.js.map +0 -1
  20. package/dist/deliver.d.ts +0 -22
  21. package/dist/deliver.d.ts.map +0 -1
  22. package/dist/deliver.js +0 -350
  23. package/dist/deliver.js.map +0 -1
  24. package/dist/gateway.d.ts +0 -13
  25. package/dist/gateway.d.ts.map +0 -1
  26. package/dist/gateway.js +0 -727
  27. package/dist/gateway.js.map +0 -1
  28. package/dist/index.d.ts.map +0 -1
  29. package/dist/llm-definitions.d.ts +0 -117
  30. package/dist/llm-definitions.d.ts.map +0 -1
  31. package/dist/llm-definitions.js +0 -121
  32. package/dist/llm-definitions.js.map +0 -1
  33. package/dist/offline-queue.d.ts +0 -45
  34. package/dist/offline-queue.d.ts.map +0 -1
  35. package/dist/offline-queue.js +0 -109
  36. package/dist/offline-queue.js.map +0 -1
  37. package/dist/paths.d.ts +0 -10
  38. package/dist/paths.d.ts.map +0 -1
  39. package/dist/paths.js +0 -29
  40. package/dist/paths.js.map +0 -1
  41. package/dist/runtime.d.ts +0 -17
  42. package/dist/runtime.d.ts.map +0 -1
  43. package/dist/runtime.js +0 -24
  44. package/dist/runtime.js.map +0 -1
  45. package/dist/tools.d.ts +0 -23
  46. package/dist/tools.d.ts.map +0 -1
  47. package/dist/tools.js +0 -437
  48. package/dist/tools.js.map +0 -1
  49. package/dist/types.d.ts +0 -479
  50. package/dist/types.d.ts.map +0 -1
  51. package/dist/types.js +0 -2
  52. package/dist/types.js.map +0 -1
  53. package/dist/version.d.ts +0 -2
  54. package/dist/version.d.ts.map +0 -1
  55. package/dist/version.js +0 -4
  56. package/dist/version.js.map +0 -1
  57. package/dist/workspace.d.ts +0 -18
  58. package/dist/workspace.d.ts.map +0 -1
  59. package/dist/workspace.js +0 -83
  60. 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
- get_next_task Inbound messages from humans │
16
- comment / done / giveup Outbound replies from agent │
17
- list_tasks / create_task Real-time notifications │
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 notifications
28
- │ Atomic claims task + polling fallback
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** — 8 task management tools the agent can call
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 either completes or gives it up — always returning control to a human.
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
- ready_for_bot ──[get_next_task]──> working_on_it ──[done]──> waiting_for_human
115
-
116
- └───[giveup]──> waiting_for_human
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 [docs/tools.md](docs/tools.md) for the full tool reference and [docs/architecture.md](docs/architecture.md) for how the system works under the hood.
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