@mulmoclaude/core 1.3.0 → 1.5.0

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.
@@ -26,10 +26,46 @@ export interface CompleteTaskInput {
26
26
  taskId: string;
27
27
  taskListId?: string;
28
28
  }
29
+ export interface UpdateTaskInput {
30
+ taskId: string;
31
+ title?: string;
32
+ /** `""` clears the notes; omit to leave them untouched. */
33
+ notes?: string;
34
+ /** RFC3339. Same DATE-only caveat as `CreateTaskInput.due`. Google rejects
35
+ * `""`, so a due date can be changed but not removed through this call. */
36
+ due?: string;
37
+ taskListId?: string;
38
+ }
29
39
  export declare const toTaskListSummary: (value: unknown) => TaskListSummary;
30
40
  export declare const toTaskSummary: (value: unknown) => TaskSummary;
41
+ /** Resolve a declared taskListId to the one the API addresses. `||` (not `??`)
42
+ * so a blank string also falls back instead of building a malformed
43
+ * `/lists//tasks` URL — the same rule, and the same reason, as
44
+ * `canonicalCalendarId`. */
45
+ export declare const canonicalTaskListId: (taskListId: string | undefined) => string;
31
46
  export declare function listTaskLists(accessToken: string): Promise<TaskListSummary[]>;
32
47
  export declare function listTasks(accessToken: string, input?: ListTasksInput): Promise<TaskSummary[]>;
33
48
  export declare function createTask(accessToken: string, input: CreateTaskInput): Promise<TaskSummary>;
49
+ /** PATCH body for a task edit — only the fields the caller supplied. As with
50
+ * events, `undefined` means "leave as is" and `""` means "clear it", so the
51
+ * two must stay distinct. `status` is deliberately absent: `completeTask` /
52
+ * `uncompleteTask` own that transition, and two ways to set it would drift
53
+ * apart. */
54
+ export declare const buildTaskPatch: (input: UpdateTaskInput) => Record<string, unknown>;
55
+ export declare function updateTask(accessToken: string, input: UpdateTaskInput): Promise<TaskSummary>;
34
56
  export declare function completeTask(accessToken: string, input: CompleteTaskInput): Promise<TaskSummary>;
57
+ /** Send a completed task back to the to-do list.
58
+ *
59
+ * Its own function rather than a flag on `completeTask`, and deliberately not
60
+ * a `status` field on `updateTask`: one kind per target state keeps the name
61
+ * honest and leaves exactly one code path setting each value.
62
+ *
63
+ * The patch carries `status` alone — mirroring `completeTask`, which also
64
+ * sets only `status` and lets Google fill in the `completed` timestamp. Note
65
+ * that whether Google *clears* that timestamp on the way back is its
66
+ * behaviour, not ours, and is unverified here: `TaskSummary` doesn't carry
67
+ * `completed`, so nothing in this codebase would show a stale one. If a
68
+ * reopened task ever displays a completion date in Google's own UI, this is
69
+ * the place to add `completed: null` to the patch. */
70
+ export declare function uncompleteTask(accessToken: string, input: CompleteTaskInput): Promise<TaskSummary>;
35
71
  export declare function deleteTask(accessToken: string, input: CompleteTaskInput): Promise<void>;
package/package.json CHANGED
@@ -1,7 +1,16 @@
1
1
  {
2
2
  "name": "@mulmoclaude/core",
3
- "version": "1.3.0",
3
+ "version": "1.5.0",
4
4
  "description": "Shared server-side core for MulmoClaude and MulmoTerminal — the always-shipped-together subsystems consolidated behind subpath exports so the two hosts can't drift. Server-only except the browser-safe ./artifacts, ./whisper/client, ./workspace-setup/slug, ./translation/client, ./remote-view, ./remote-host and ./plugin-vue entries. All host specifics are injected.",
5
+ "repository": {
6
+ "type": "git",
7
+ "url": "git+https://github.com/receptron/mulmoclaude.git",
8
+ "directory": "packages/core"
9
+ },
10
+ "homepage": "https://receptron.github.io/mulmoterminal/",
11
+ "bugs": {
12
+ "url": "https://github.com/receptron/mulmoclaude/issues"
13
+ },
5
14
  "type": "module",
6
15
  "exports": {
7
16
  "./utils": {
@@ -204,8 +213,8 @@
204
213
  },
205
214
  "dependencies": {
206
215
  "@duckdb/node-api": "^1.5.5-r.1",
207
- "@mulmoclaude/common": "^1.1.0",
208
- "@mulmoclaude/markdown-utils": "^1.3.0",
216
+ "@mulmoclaude/common": "^1.1.1",
217
+ "@mulmoclaude/markdown-utils": "^1.3.1",
209
218
  "fast-xml-parser": "^5.10.1",
210
219
  "google-auth-library": "^10.9.1",
211
220
  "iconv-lite": "^0.7.3",
@@ -213,7 +222,7 @@
213
222
  "zod": "^4.4.3"
214
223
  },
215
224
  "peerDependencies": {
216
- "@receptron/task-scheduler": "^1.0.0",
225
+ "@receptron/task-scheduler": "^1.0.1",
217
226
  "firebase": "^12.0.0",
218
227
  "gui-chat-protocol": "^1.2.0",
219
228
  "vue": "^3.5.0",
@@ -231,7 +240,7 @@
231
240
  }
232
241
  },
233
242
  "devDependencies": {
234
- "@receptron/task-scheduler": "^1.0.0",
243
+ "@receptron/task-scheduler": "^1.0.1",
235
244
  "@types/node": "^26.1.1",
236
245
  "gui-chat-protocol": "^1.2.0",
237
246
  "tsx": "^4.23.1",
@@ -241,5 +250,13 @@
241
250
  "vue": "^3.5.40",
242
251
  "vue-i18n": "^11.4.7"
243
252
  },
244
- "license": "MIT"
253
+ "license": "MIT",
254
+ "keywords": [
255
+ "mulmoclaude",
256
+ "mulmoterminal",
257
+ "claude-code",
258
+ "ai-agent",
259
+ "collections",
260
+ "scheduler"
261
+ ]
245
262
  }