@questionbase/deskfree 0.3.0-alpha.4 → 0.3.0-alpha.41

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 +39 -20
  2. package/dist/index.d.ts +785 -6
  3. package/dist/index.js +9880 -25
  4. package/dist/index.js.map +1 -1
  5. package/package.json +10 -11
  6. package/skills/deskfree/SKILL.md +118 -165
  7. package/skills/deskfree/references/tools.md +85 -42
  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 -156
  13. package/dist/client.d.ts.map +0 -1
  14. package/dist/client.js +0 -252
  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 -379
  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 -484
  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 or blocked, manage goals, 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
 
@@ -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 Goals Messages WebSocket Gateway
30
- │ ────── ───── ──────── ─────────────────│
31
- │ State machine Hierarchical 1:1 bot↔user DynamoDB-backed │
32
- │ RLS-scoped organization Threaded by Thin notifs │
33
- │ 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│
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** — 8 task and goal management tools the agent can call
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
- ready_for_bot ──[start_task]──> working_on_it ──[complete_task(done)]──> waiting_for_human
120
- │ │
121
- └──[complete_task(blocked)]──>
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 [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
+ ```
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