@zentodo/cli 0.1.5 → 0.1.7

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.
@@ -927,7 +927,7 @@
927
927
  "name": "zentodo.task.completed-today",
928
928
  "domain": "task",
929
929
  "action": "completed-today",
930
- "description": "调用 /taskController/getCompletedTasks。过滤条件:syncFlag != D、taskState = 0、taskCompletedTime = today。",
930
+ "description": "调用 /taskController/getCompletedTasks。服务端根据 usrKey + date 直接过滤,不用在客户端再做一次。",
931
931
  "http": {
932
932
  "method": "POST",
933
933
  "path": "/taskController/getCompletedTasks"
@@ -942,41 +942,11 @@
942
942
  },
943
943
  "params": [
944
944
  {
945
- "name": "is_templete",
946
- "backendName": "isTemplete",
947
- "type": "boolean",
948
- "default": false,
949
- "transform": "booleanToString",
950
- "description": "排除模板。"
951
- },
952
- {
953
- "name": "sync_flag",
954
- "backendName": "syncFlag",
955
- "type": "string",
956
- "default": "!=D",
957
- "description": "同步标记过滤。"
958
- },
959
- {
960
- "name": "task_state",
961
- "backendName": "taskState",
962
- "type": "string",
963
- "default": "=0",
964
- "description": "已完成。"
965
- },
966
- {
967
- "name": "task_completed_time",
968
- "backendName": "taskCompletedTime",
969
- "type": "string",
970
- "default": "=today",
971
- "description": "完成时间=今日。"
972
- },
973
- {
974
- "name": "task_create_time_not_null",
975
- "backendName": "taskCreateTimeNotNull",
976
- "type": "boolean",
977
- "default": true,
978
- "transform": "booleanToString",
979
- "description": "要求 createTime 非空。"
945
+ "name": "date",
946
+ "backendName": "date",
947
+ "type": "date",
948
+ "transform": "isoToBackendDate",
949
+ "description": "指定日期(ISO,可选)。不传则使用服务器今天。"
980
950
  }
981
951
  ],
982
952
  "output": {
@@ -987,7 +957,7 @@
987
957
  "name": "zentodo.task.mit-list",
988
958
  "domain": "task",
989
959
  "action": "mit-list",
990
- "description": "调用 /taskController/getMitTasks。过滤条件与 PC loadMitHeaderDatas() 一致。",
960
+ "description": "调用 /taskController/getMitTasks。服务端按 usrKey 过滤 isMIT=true + 未完成 + taskCreateTime<=今天。",
991
961
  "http": {
992
962
  "method": "POST",
993
963
  "path": "/taskController/getMitTasks"
@@ -1000,53 +970,7 @@
1000
970
  "idempotent": true,
1001
971
  "destructive": false
1002
972
  },
1003
- "params": [
1004
- {
1005
- "name": "sync_flag",
1006
- "backendName": "syncFlag",
1007
- "type": "string",
1008
- "default": "!=D",
1009
- "description": "同步标记过滤。"
1010
- },
1011
- {
1012
- "name": "is_templete",
1013
- "backendName": "isTemplete",
1014
- "type": "boolean",
1015
- "default": false,
1016
- "transform": "booleanToString",
1017
- "description": "排除模板。"
1018
- },
1019
- {
1020
- "name": "task_state",
1021
- "backendName": "taskState",
1022
- "type": "string",
1023
- "default": "!=0",
1024
- "description": "未完成。"
1025
- },
1026
- {
1027
- "name": "task_create_time_not_null",
1028
- "backendName": "taskCreateTimeNotNull",
1029
- "type": "boolean",
1030
- "default": true,
1031
- "transform": "booleanToString",
1032
- "description": "要求 createTime 非空。"
1033
- },
1034
- {
1035
- "name": "task_create_time",
1036
- "backendName": "taskCreateTime",
1037
- "type": "string",
1038
- "default": "<=today",
1039
- "description": "到今日为止。"
1040
- },
1041
- {
1042
- "name": "is_mit",
1043
- "backendName": "isMIT",
1044
- "type": "boolean",
1045
- "default": true,
1046
- "transform": "booleanToString",
1047
- "description": "MIT 过滤。"
1048
- }
1049
- ],
973
+ "params": [],
1050
974
  "output": {
1051
975
  "shape": "array"
1052
976
  }
@@ -1055,7 +979,7 @@
1055
979
  "name": "zentodo.task.calendar",
1056
980
  "domain": "task",
1057
981
  "action": "calendar",
1058
- "description": "调用 /taskController/getCalendarTaskByDate。过滤与安卓端一致(syncFlag!=D、taskState!=0、isTemplete=false、taskStartItem!=FT、taskStartItem!=垃圾箱)。",
982
+ "description": "调用 /taskController/getCalendarTaskByDate。服务端已内置过滤(未完成 + 非模板 + 非垃圾箱)。",
1059
983
  "http": {
1060
984
  "method": "POST",
1061
985
  "path": "/taskController/getCalendarTaskByDate"
@@ -1084,46 +1008,128 @@
1084
1008
  "transform": "isoToBackendDate",
1085
1009
  "required": true,
1086
1010
  "description": "范围截止(ISO 日期)。"
1087
- },
1088
- {
1089
- "name": "sync_flag",
1090
- "backendName": "syncFlag",
1091
- "type": "string",
1092
- "default": "!=D",
1093
- "description": "同步标记过滤。"
1094
- },
1011
+ }
1012
+ ],
1013
+ "output": {
1014
+ "shape": "array"
1015
+ }
1016
+ },
1017
+ {
1018
+ "name": "zentodo.task.overdue",
1019
+ "domain": "task",
1020
+ "action": "overdue",
1021
+ "description": "调用 /taskController/getOverdueTasks。",
1022
+ "http": {
1023
+ "method": "POST",
1024
+ "path": "/taskController/getOverdueTasks"
1025
+ },
1026
+ "scopes": [
1027
+ "read"
1028
+ ],
1029
+ "annotations": {
1030
+ "readOnly": true,
1031
+ "idempotent": true,
1032
+ "destructive": false
1033
+ },
1034
+ "params": [],
1035
+ "output": {
1036
+ "shape": "array"
1037
+ }
1038
+ },
1039
+ {
1040
+ "name": "zentodo.task.inbox",
1041
+ "domain": "task",
1042
+ "action": "inbox",
1043
+ "description": "调用 /taskController/getInboxTasks。",
1044
+ "http": {
1045
+ "method": "POST",
1046
+ "path": "/taskController/getInboxTasks"
1047
+ },
1048
+ "scopes": [
1049
+ "read"
1050
+ ],
1051
+ "annotations": {
1052
+ "readOnly": true,
1053
+ "idempotent": true,
1054
+ "destructive": false
1055
+ },
1056
+ "params": [],
1057
+ "output": {
1058
+ "shape": "array"
1059
+ }
1060
+ },
1061
+ {
1062
+ "name": "zentodo.task.search",
1063
+ "domain": "task",
1064
+ "action": "search",
1065
+ "description": "调用 /taskController/searchTasks。服务端按 LIKE 匹配并按 latestVersion 倒序返回。",
1066
+ "http": {
1067
+ "method": "POST",
1068
+ "path": "/taskController/searchTasks"
1069
+ },
1070
+ "scopes": [
1071
+ "read"
1072
+ ],
1073
+ "annotations": {
1074
+ "readOnly": true,
1075
+ "idempotent": true,
1076
+ "destructive": false
1077
+ },
1078
+ "params": [
1095
1079
  {
1096
- "name": "task_state",
1097
- "backendName": "taskState",
1080
+ "name": "keyword",
1081
+ "backendName": "keyword",
1098
1082
  "type": "string",
1099
- "default": "!=0",
1100
- "description": "未完成。"
1083
+ "required": true,
1084
+ "description": "关键字。"
1101
1085
  },
1102
1086
  {
1103
- "name": "is_templete",
1104
- "backendName": "isTemplete",
1105
- "type": "boolean",
1106
- "default": false,
1107
- "transform": "booleanToString",
1108
- "description": "排除模板。"
1109
- },
1087
+ "name": "limit",
1088
+ "backendName": "limit",
1089
+ "type": "integer",
1090
+ "default": 50,
1091
+ "description": "最多返回多少条(默认 50,最大 500)。"
1092
+ }
1093
+ ],
1094
+ "output": {
1095
+ "shape": "array"
1096
+ }
1097
+ },
1098
+ {
1099
+ "name": "zentodo.task.stats",
1100
+ "domain": "task",
1101
+ "action": "stats",
1102
+ "description": "调用 /taskController/getTaskStats。返回 { created, completed, completion_rate, by_project }。",
1103
+ "http": {
1104
+ "method": "POST",
1105
+ "path": "/taskController/getTaskStats"
1106
+ },
1107
+ "scopes": [
1108
+ "read"
1109
+ ],
1110
+ "annotations": {
1111
+ "readOnly": true,
1112
+ "idempotent": true,
1113
+ "destructive": false
1114
+ },
1115
+ "params": [
1110
1116
  {
1111
- "name": "task_start_item_not_1",
1112
- "backendName": "taskStartItemNot1",
1113
- "type": "string",
1114
- "default": "FT",
1115
- "description": "排除 FT 项。"
1117
+ "name": "start_date",
1118
+ "backendName": "startDate",
1119
+ "type": "date",
1120
+ "transform": "isoToBackendDate",
1121
+ "description": "起始日期(ISO,可选)。不传则今天。"
1116
1122
  },
1117
1123
  {
1118
- "name": "task_start_item_not_2",
1119
- "backendName": "taskStartItemNot2",
1120
- "type": "string",
1121
- "default": "垃圾箱",
1122
- "description": "排除垃圾箱。"
1124
+ "name": "end_date",
1125
+ "backendName": "endDate",
1126
+ "type": "date",
1127
+ "transform": "isoToBackendDate",
1128
+ "description": "截止日期(ISO,可选)。不传则今天。"
1123
1129
  }
1124
1130
  ],
1125
1131
  "output": {
1126
- "shape": "array"
1132
+ "shape": "object"
1127
1133
  }
1128
1134
  },
1129
1135
  {
@@ -1467,6 +1473,117 @@
1467
1473
  "shape": "array"
1468
1474
  }
1469
1475
  },
1476
+ {
1477
+ "name": "zentodo.project.list-active",
1478
+ "domain": "project",
1479
+ "action": "list-active",
1480
+ "description": "调用 /projectController/getActiveProjects。",
1481
+ "http": {
1482
+ "method": "POST",
1483
+ "path": "/projectController/getActiveProjects"
1484
+ },
1485
+ "scopes": [
1486
+ "read"
1487
+ ],
1488
+ "annotations": {
1489
+ "readOnly": true,
1490
+ "idempotent": true,
1491
+ "destructive": false
1492
+ },
1493
+ "params": [],
1494
+ "output": {
1495
+ "shape": "array"
1496
+ }
1497
+ },
1498
+ {
1499
+ "name": "zentodo.project.list-archived",
1500
+ "domain": "project",
1501
+ "action": "list-archived",
1502
+ "description": "调用 /projectController/getArchivedProjects。projectState in (2,3,4)。",
1503
+ "http": {
1504
+ "method": "POST",
1505
+ "path": "/projectController/getArchivedProjects"
1506
+ },
1507
+ "scopes": [
1508
+ "read"
1509
+ ],
1510
+ "annotations": {
1511
+ "readOnly": true,
1512
+ "idempotent": true,
1513
+ "destructive": false
1514
+ },
1515
+ "params": [],
1516
+ "output": {
1517
+ "shape": "array"
1518
+ }
1519
+ },
1520
+ {
1521
+ "name": "zentodo.project.search",
1522
+ "domain": "project",
1523
+ "action": "search",
1524
+ "description": "调用 /projectController/searchProjects。",
1525
+ "http": {
1526
+ "method": "POST",
1527
+ "path": "/projectController/searchProjects"
1528
+ },
1529
+ "scopes": [
1530
+ "read"
1531
+ ],
1532
+ "annotations": {
1533
+ "readOnly": true,
1534
+ "idempotent": true,
1535
+ "destructive": false
1536
+ },
1537
+ "params": [
1538
+ {
1539
+ "name": "keyword",
1540
+ "backendName": "keyword",
1541
+ "type": "string",
1542
+ "required": true,
1543
+ "description": "关键字。"
1544
+ },
1545
+ {
1546
+ "name": "limit",
1547
+ "backendName": "limit",
1548
+ "type": "integer",
1549
+ "default": 50,
1550
+ "description": "最多返回多少条(默认 50,最大 500)。"
1551
+ }
1552
+ ],
1553
+ "output": {
1554
+ "shape": "array"
1555
+ }
1556
+ },
1557
+ {
1558
+ "name": "zentodo.project.stats",
1559
+ "domain": "project",
1560
+ "action": "stats",
1561
+ "description": "调用 /projectController/getProjectStats。返回 { task_count, done_task_count, progress, exec_time_ms, state }。",
1562
+ "http": {
1563
+ "method": "POST",
1564
+ "path": "/projectController/getProjectStats"
1565
+ },
1566
+ "scopes": [
1567
+ "read"
1568
+ ],
1569
+ "annotations": {
1570
+ "readOnly": true,
1571
+ "idempotent": true,
1572
+ "destructive": false
1573
+ },
1574
+ "params": [
1575
+ {
1576
+ "name": "project_key",
1577
+ "backendName": "projectKey",
1578
+ "type": "integer",
1579
+ "required": true,
1580
+ "description": "项目 projectKey。"
1581
+ }
1582
+ ],
1583
+ "output": {
1584
+ "shape": "object"
1585
+ }
1586
+ },
1470
1587
  {
1471
1588
  "name": "zentodo.project.sync-pull",
1472
1589
  "domain": "project",
@@ -2561,6 +2678,43 @@
2561
2678
  "shape": "array"
2562
2679
  }
2563
2680
  },
2681
+ {
2682
+ "name": "zentodo.pomo.focus-stats",
2683
+ "domain": "pomo",
2684
+ "action": "focus-stats",
2685
+ "description": "调用 /tomatoWorkerController/getFocusStats。返回 { sessions, total_sec, total_hours, by_task }。",
2686
+ "http": {
2687
+ "method": "POST",
2688
+ "path": "/tomatoWorkerController/getFocusStats"
2689
+ },
2690
+ "scopes": [
2691
+ "read"
2692
+ ],
2693
+ "annotations": {
2694
+ "readOnly": true,
2695
+ "idempotent": true,
2696
+ "destructive": false
2697
+ },
2698
+ "params": [
2699
+ {
2700
+ "name": "start_time",
2701
+ "backendName": "startTime",
2702
+ "type": "datetime",
2703
+ "transform": "isoToBackendDateTime",
2704
+ "description": "起始时间(ISO,可选)。不传则今天 00:00:00。"
2705
+ },
2706
+ {
2707
+ "name": "end_time",
2708
+ "backendName": "endTime",
2709
+ "type": "datetime",
2710
+ "transform": "isoToBackendDateTime",
2711
+ "description": "截止时间(ISO,可选)。不传则今天 23:59:59。"
2712
+ }
2713
+ ],
2714
+ "output": {
2715
+ "shape": "object"
2716
+ }
2717
+ },
2564
2718
  {
2565
2719
  "name": "zentodo.pomo.sync-pull-worker",
2566
2720
  "domain": "pomo",
@@ -317,7 +317,7 @@
317
317
 
318
318
  ## `zentodo.task.completed-today`
319
319
 
320
- 调用 /taskController/getCompletedTasks。过滤条件:syncFlag != D、taskState = 0、taskCompletedTime = today。
320
+ 调用 /taskController/getCompletedTasks。服务端根据 usrKey + date 直接过滤,不用在客户端再做一次。
321
321
 
322
322
  - **后端端点**:`POST /taskController/getCompletedTasks`
323
323
  - **所需 scope**:`read`
@@ -325,32 +325,19 @@
325
325
 
326
326
  | 参数 | 类型 | 必填 | 说明 |
327
327
  | --- | --- | --- | --- |
328
- | `is_templete` | boolean | 否 | 排除模板。 |
329
- | `sync_flag` | string | 否 | 同步标记过滤。 |
330
- | `task_state` | string | 否 | 已完成。 |
331
- | `task_completed_time` | string | 否 | 完成时间=今日。 |
332
- | `task_create_time_not_null` | boolean | 否 | 要求 createTime 非空。 |
328
+ | `date` | date | 否 | 指定日期(ISO,可选)。不传则使用服务器今天。 |
333
329
 
334
330
  ## `zentodo.task.mit-list`
335
331
 
336
- 调用 /taskController/getMitTasks。过滤条件与 PC loadMitHeaderDatas() 一致。
332
+ 调用 /taskController/getMitTasks。服务端按 usrKey 过滤 isMIT=true + 未完成 + taskCreateTime<=今天。
337
333
 
338
334
  - **后端端点**:`POST /taskController/getMitTasks`
339
335
  - **所需 scope**:`read`
340
336
  - **标注**:只读=true,幂等=true,破坏性=false
341
337
 
342
- | 参数 | 类型 | 必填 | 说明 |
343
- | --- | --- | --- | --- |
344
- | `sync_flag` | string | 否 | 同步标记过滤。 |
345
- | `is_templete` | boolean | 否 | 排除模板。 |
346
- | `task_state` | string | 否 | 未完成。 |
347
- | `task_create_time_not_null` | boolean | 否 | 要求 createTime 非空。 |
348
- | `task_create_time` | string | 否 | 到今日为止。 |
349
- | `is_mit` | boolean | 否 | MIT 过滤。 |
350
-
351
338
  ## `zentodo.task.calendar`
352
339
 
353
- 调用 /taskController/getCalendarTaskByDate。过滤与安卓端一致(syncFlag!=D、taskState!=0、isTemplete=false、taskStartItem!=FT、taskStartItem!=垃圾箱)。
340
+ 调用 /taskController/getCalendarTaskByDate。服务端已内置过滤(未完成 + 非模板 + 非垃圾箱)。
354
341
 
355
342
  - **后端端点**:`POST /taskController/getCalendarTaskByDate`
356
343
  - **所需 scope**:`read`
@@ -360,11 +347,48 @@
360
347
  | --- | --- | --- | --- |
361
348
  | `start_date` | date | 是 | 范围起始(ISO 日期)。 |
362
349
  | `end_date` | date | 是 | 范围截止(ISO 日期)。 |
363
- | `sync_flag` | string | 否 | 同步标记过滤。 |
364
- | `task_state` | string | 否 | 未完成。 |
365
- | `is_templete` | boolean | 否 | 排除模板。 |
366
- | `task_start_item_not_1` | string | 否 | 排除 FT 项。 |
367
- | `task_start_item_not_2` | string | 否 | 排除垃圾箱。 |
350
+
351
+ ## `zentodo.task.overdue`
352
+
353
+ 调用 /taskController/getOverdueTasks。
354
+
355
+ - **后端端点**:`POST /taskController/getOverdueTasks`
356
+ - **所需 scope**:`read`
357
+ - **标注**:只读=true,幂等=true,破坏性=false
358
+
359
+ ## `zentodo.task.inbox`
360
+
361
+ 调用 /taskController/getInboxTasks。
362
+
363
+ - **后端端点**:`POST /taskController/getInboxTasks`
364
+ - **所需 scope**:`read`
365
+ - **标注**:只读=true,幂等=true,破坏性=false
366
+
367
+ ## `zentodo.task.search`
368
+
369
+ 调用 /taskController/searchTasks。服务端按 LIKE 匹配并按 latestVersion 倒序返回。
370
+
371
+ - **后端端点**:`POST /taskController/searchTasks`
372
+ - **所需 scope**:`read`
373
+ - **标注**:只读=true,幂等=true,破坏性=false
374
+
375
+ | 参数 | 类型 | 必填 | 说明 |
376
+ | --- | --- | --- | --- |
377
+ | `keyword` | string | 是 | 关键字。 |
378
+ | `limit` | integer | 否 | 最多返回多少条(默认 50,最大 500)。 |
379
+
380
+ ## `zentodo.task.stats`
381
+
382
+ 调用 /taskController/getTaskStats。返回 { created, completed, completion_rate, by_project }。
383
+
384
+ - **后端端点**:`POST /taskController/getTaskStats`
385
+ - **所需 scope**:`read`
386
+ - **标注**:只读=true,幂等=true,破坏性=false
387
+
388
+ | 参数 | 类型 | 必填 | 说明 |
389
+ | --- | --- | --- | --- |
390
+ | `start_date` | date | 否 | 起始日期(ISO,可选)。不传则今天。 |
391
+ | `end_date` | date | 否 | 截止日期(ISO,可选)。不传则今天。 |
368
392
 
369
393
  ## `zentodo.task.move`
370
394
 
@@ -475,6 +499,47 @@
475
499
  - **所需 scope**:`read`
476
500
  - **标注**:只读=true,幂等=true,破坏性=false
477
501
 
502
+ ## `zentodo.project.list-active`
503
+
504
+ 调用 /projectController/getActiveProjects。
505
+
506
+ - **后端端点**:`POST /projectController/getActiveProjects`
507
+ - **所需 scope**:`read`
508
+ - **标注**:只读=true,幂等=true,破坏性=false
509
+
510
+ ## `zentodo.project.list-archived`
511
+
512
+ 调用 /projectController/getArchivedProjects。projectState in (2,3,4)。
513
+
514
+ - **后端端点**:`POST /projectController/getArchivedProjects`
515
+ - **所需 scope**:`read`
516
+ - **标注**:只读=true,幂等=true,破坏性=false
517
+
518
+ ## `zentodo.project.search`
519
+
520
+ 调用 /projectController/searchProjects。
521
+
522
+ - **后端端点**:`POST /projectController/searchProjects`
523
+ - **所需 scope**:`read`
524
+ - **标注**:只读=true,幂等=true,破坏性=false
525
+
526
+ | 参数 | 类型 | 必填 | 说明 |
527
+ | --- | --- | --- | --- |
528
+ | `keyword` | string | 是 | 关键字。 |
529
+ | `limit` | integer | 否 | 最多返回多少条(默认 50,最大 500)。 |
530
+
531
+ ## `zentodo.project.stats`
532
+
533
+ 调用 /projectController/getProjectStats。返回 { task_count, done_task_count, progress, exec_time_ms, state }。
534
+
535
+ - **后端端点**:`POST /projectController/getProjectStats`
536
+ - **所需 scope**:`read`
537
+ - **标注**:只读=true,幂等=true,破坏性=false
538
+
539
+ | 参数 | 类型 | 必填 | 说明 |
540
+ | --- | --- | --- | --- |
541
+ | `project_key` | integer | 是 | 项目 projectKey。 |
542
+
478
543
  ## `zentodo.project.sync-pull`
479
544
 
480
545
  调用 /projectController/getSyncProjectList。
@@ -842,6 +907,19 @@
842
907
  - **所需 scope**:`read`
843
908
  - **标注**:只读=true,幂等=true,破坏性=false
844
909
 
910
+ ## `zentodo.pomo.focus-stats`
911
+
912
+ 调用 /tomatoWorkerController/getFocusStats。返回 { sessions, total_sec, total_hours, by_task }。
913
+
914
+ - **后端端点**:`POST /tomatoWorkerController/getFocusStats`
915
+ - **所需 scope**:`read`
916
+ - **标注**:只读=true,幂等=true,破坏性=false
917
+
918
+ | 参数 | 类型 | 必填 | 说明 |
919
+ | --- | --- | --- | --- |
920
+ | `start_time` | datetime | 否 | 起始时间(ISO,可选)。不传则今天 00:00:00。 |
921
+ | `end_time` | datetime | 否 | 截止时间(ISO,可选)。不传则今天 23:59:59。 |
922
+
845
923
  ## `zentodo.pomo.sync-pull-worker`
846
924
 
847
925
  调用 /tomatoWorkerController/getSyncTomatoWorkerList。
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zentodo/cli",
3
- "version": "0.1.5",
3
+ "version": "0.1.7",
4
4
  "description": "ZenTodo 命令行工具 — 为 AI Agent 和开发者设计,覆盖任务、项目、番茄钟、日记、同步等全部能力。安装后自动配置 Claude Agent Skill。",
5
5
  "type": "module",
6
6
  "bin": {