@questionbase/deskfree 0.3.0-alpha.31 → 0.3.0-alpha.32

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@questionbase/deskfree",
3
- "version": "0.3.0-alpha.31",
3
+ "version": "0.3.0-alpha.32",
4
4
  "description": "OpenClaw channel plugin for DeskFree — turns DeskFree into a messaging platform for OpenClaw AI agents",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -78,20 +78,15 @@ Proposals are stored as message metadata — **no tasks, files, or initiatives a
78
78
 
79
79
  Each `deskfree_propose` call handles one initiative (existing or new) or no initiative. Separate calls for separate initiatives.
80
80
 
81
- ### Substeps
81
+ ### Task Instructions
82
82
 
83
- Substeps are human-reviewable checklist items. The human can toggle each on/off before approving:
83
+ Write instructions as rich markdown — use **bold**, lists, and `inline code`. Do NOT use markdown headers (#); use **bold text** for section labels instead. The human sees these in a rich-text editor and can edit before approving.
84
84
 
85
85
  ```javascript
86
86
  deskfree_propose({
87
87
  tasks: [{
88
88
  title: "Audit auth endpoints",
89
- instructions: "Review all authentication endpoints for security issues...",
90
- substeps: [
91
- "Review session management",
92
- "Check CSRF protection",
93
- "Verify rate limiting"
94
- ]
89
+ instructions: "**What to do**\n- Review session management\n- Check CSRF protection\n- Verify rate limiting\n\n**Done when**\nAll endpoints pass security checklist."
95
90
  }]
96
91
  })
97
92
  ```
@@ -212,7 +207,7 @@ Sub-agent: deskfree_start_task → deskfree_update_file → deskfree_complete
212
207
 
213
208
  ### Human Gives You Work
214
209
  1. `deskfree_state` → check existing tasks + initiatives + files
215
- 2. `deskfree_propose` → with context, substeps, file links, initiative
210
+ 2. `deskfree_propose` → with context, instructions (markdown), file links, initiative
216
211
  3. Human approves → spawn sub-agent → `deskfree_start_task`
217
212
  4. Work → `deskfree_update_file` incrementally
218
213
  5. `deskfree_complete_task`
@@ -32,27 +32,22 @@ Get full workspace snapshot — all tasks, recently done tasks, active initiativ
32
32
  ---
33
33
 
34
34
  ### `deskfree_propose`
35
- Suggest tasks for human approval. Creates tasks with `suggested` status. Can also propose new initiatives and pre-create linked files.
35
+ Propose a plan for human approval. Nothing is created until the human reviews and approves in a modal. One initiative per call make multiple calls for multiple initiatives.
36
36
 
37
37
  | Parameter | Type | Required | Description |
38
38
  |-----------|------|----------|-------------|
39
- | `suggestions` | array | Yes | Array of task suggestions (1-20) |
40
- | `suggestions[].title` | string | Yes | Task titleshort, action-oriented (max 200 chars) |
41
- | `suggestions[].instructions` | string | No | Detailed instructions: what to do, why, what done looks like, constraints |
42
- | `suggestions[].estimatedTokens` | number | No | Estimated token cost for completing this task |
43
- | `suggestions[].initiativeId` | string | No | Link task to an existing active initiative |
44
- | `suggestions[].scheduledFor` | string | No | ISO-8601 date for when this task should become available |
45
- | `suggestions[].fileId` | string | No | Link task to an existing file bot receives file content when claiming |
46
- | `suggestions[].newFile` | object | No | Pre-create a new file and link it to this task |
47
- | `suggestions[].newFile.name` | string | Yes (if newFile) | File name (max 200 chars) |
48
- | `suggestions[].newFile.description` | string | No | File description |
49
- | `initiativeSuggestions` | array | No | Propose new initiatives (0-5) |
50
- | `initiativeSuggestions[].title` | string | Yes | Initiative title (max 200 chars) |
51
- | `initiativeSuggestions[].content` | string | Yes | Initial initiative content (markdown) |
52
- | `initiativeSuggestions[].taskRefs` | number[] | No | Indexes into `suggestions[]` to auto-link when approved |
53
- | `parentTaskId` | string | No | Parent task ID — set when suggesting follow-ups from within a task |
54
-
55
- **Returns:** `{ suggestionIds: string[], initiativeSuggestionIds?: string[] }`
39
+ | `initiative` | string \| object | No | Existing initiative ID (e.g. `"INI_123"`) or `{title, content}` to create new |
40
+ | `context` | string | No | Why this plan is being proposed helps the human understand the reasoning |
41
+ | `tasks` | array | Yes | Array of tasks to propose (1-20) |
42
+ | `tasks[].title` | string | Yes | Task title short, action-oriented (max 200 chars) |
43
+ | `tasks[].instructions` | string | No | Rich markdown instructions (bold, lists, inline code — no # headers). Include: what to do, steps, what done looks like, constraints. |
44
+ | `tasks[].estimatedTokens` | number | No | Estimated token cost for completing this task |
45
+ | `tasks[].scheduledFor` | string | No | ISO-8601 date for when this task should become available |
46
+ | `tasks[].file` | object | No | `{existingId}` to link existing file, or `{name, description}` to create new on approval |
47
+
48
+ **Note:** The `substeps` field is deprecated and ignored. Put all steps in the `instructions` field as markdown instead.
49
+
50
+ **Returns:** Confirmation that proposal was attached to the message.
56
51
 
57
52
  ---
58
53