@togglhq/cli 1.5.26 → 1.5.28

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/build/program.js CHANGED
@@ -1,2 +1,2 @@
1
- import { t as createProgram } from "./program-B03iyxXV.js";
1
+ import { t as createProgram } from "./program-CwW_34U6.js";
2
2
  export { createProgram };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@togglhq/cli",
3
- "version": "1.5.26",
3
+ "version": "1.5.28",
4
4
  "description": "Toggl CLI for Toggl 2.0 API operations.",
5
5
  "license": "UNLICENSED",
6
6
  "type": "module",
@@ -26,7 +26,9 @@
26
26
  "files": [
27
27
  "build/**/*.js",
28
28
  "build/**/*.d.ts",
29
- "skills/**",
29
+ "skills/*/SKILL.md",
30
+ "skills/*/reference/**",
31
+ "skills/*/workflows/**",
30
32
  "README.md",
31
33
  "LICENSE"
32
34
  ],
@@ -57,6 +59,6 @@
57
59
  "@types/node": "22.19.11",
58
60
  "tsdown": "0.21.8",
59
61
  "typescript": "5.9.3",
60
- "vitest": "3.2.4"
62
+ "vitest": "3.2.7"
61
63
  }
62
64
  }
@@ -31,7 +31,7 @@ If the account has multiple workspaces, pass the workspace explicitly:
31
31
  toggl auth --workspace-id <workspace-id>
32
32
  ```
33
33
 
34
- When `--profile` is omitted, the CLI saves the account under an account-based profile name such as `hazem-12345` and makes it active. Use an explicit profile name only when the user asks for a specific name:
34
+ When `--profile` is omitted, the CLI saves the account under an account-based profile name such as `user-12345` and makes it active. Use an explicit profile name only when the user asks for a specific name:
35
35
 
36
36
  ```bash
37
37
  toggl auth --profile <name>
@@ -11,9 +11,9 @@ toggl [global flags] <group> … <subcommand> [flags]
11
11
  Put global flags before the first group:
12
12
 
13
13
  ```bash
14
- toggl --json tasks list --project-id 436195
15
- toggl --profile hazem-12345 projects list
16
- toggl --workspace-id 356965 tasks list --project-id 436195
14
+ toggl --json tasks list --project-id 123456
15
+ toggl --profile user-12345 projects list
16
+ toggl --workspace-id 789012 tasks list --project-id 123456
17
17
  ```
18
18
 
19
19
  **Organization and shared data** use multi-segment paths (no top-level `org` command):
@@ -36,7 +36,7 @@ Core resources and actions:
36
36
  | `statuses` | `list` |
37
37
  | `users` | `list` |
38
38
 
39
- Operations marked **`hidden: true`** in `@toggl/operations` (notably generated **calendar** and **scheduler** endpoints today) are skipped by `visibleOperations()` and do not register CLI/MCP commands.
39
+ Some low-level endpoints are omitted from the CLI and MCP.
40
40
 
41
41
  Bulk mutations use a nested command: **`toggl <resource> bulk <verb>`** (for example `toggl tasks bulk patch`). MCP entity tools still use hyphenated `action` values such as `bulk-patch` — only the CLI path uses the nested form.
42
42
 
@@ -54,7 +54,7 @@ Bulk mutations use a nested command: **`toggl <resource> bulk <verb>`** (for exa
54
54
  Successful responses go to stdout as JSON. Use `--json` for compact single-line JSON that is easy to parse:
55
55
 
56
56
  ```bash
57
- toggl --json tasks list --project-id 436195
57
+ toggl --json tasks list --project-id 123456
58
58
  ```
59
59
 
60
60
  Without `--json`, successful output is still JSON, but pretty-printed.
@@ -67,7 +67,7 @@ Prefer scalar flags for simple calls. Input field names map to kebab-case flags:
67
67
 
68
68
  ```bash
69
69
  toggl --json tasks get --task-id 12345
70
- toggl --json tasks list --project-id 436195 --status-id 243956
70
+ toggl --json tasks list --project-id 123456 --status-id 111222
71
71
  toggl --json time-entries list --date-from 2026-04-01 --date-to 2026-04-07
72
72
  ```
73
73
 
@@ -75,15 +75,15 @@ For `update` commands, payload fields use `--payload-<field>`:
75
75
 
76
76
  ```bash
77
77
  toggl --json tasks update --task-id 12345 --payload-name "New task name"
78
- toggl --json tasks update --task-id 12345 --payload-status-id 270002
79
- toggl --json projects update --project-id 436195 --payload-name "Renamed project"
78
+ toggl --json tasks update --task-id 12345 --payload-status-id 456789
79
+ toggl --json projects update --project-id 123456 --payload-name "Renamed project"
80
80
  ```
81
81
 
82
82
  Use `--data` for a full JSON body:
83
83
 
84
84
  ```bash
85
- toggl --json tasks create --data '{"name":"Write release notes","project_id":436195}'
86
- toggl --json tasks update --data '{"task_id":12345,"payload":{"status_id":270002}}'
85
+ toggl --json tasks create --data '{"name":"Write release notes","project_id":123456}'
86
+ toggl --json tasks update --data '{"task_id":12345,"payload":{"status_id":456789}}'
87
87
  ```
88
88
 
89
89
  Use `--data -` when shell quoting is fragile:
@@ -101,7 +101,7 @@ toggl --json tasks create --data-file ./new-task.json
101
101
  Bulk endpoints expect JSON via `--data` or `--data-file` (arrays for patch-style bulk; objects with `ids` or `task_ids` for deletes/archives). Examples:
102
102
 
103
103
  ```bash
104
- toggl --json tasks bulk patch --dry-run --data '[{"id":111,"status_id":270002},{"id":222,"status_id":270002}]'
104
+ toggl --json tasks bulk patch --dry-run --data '[{"id":111,"status_id":456789},{"id":222,"status_id":456789}]'
105
105
  toggl --json projects bulk patch --data-file ./project-updates.json
106
106
  toggl --json time-blocks bulk create --data '{"time_blocks":[{"task_id":12345,"start":"2026-04-01T09:00:00Z","duration":60}]}'
107
107
  toggl --json time-entries bulk patch --data '[{"id":9001,"description":"Updated"}]'
@@ -117,17 +117,17 @@ toggl --json tasks bulk delete --data '{"ids":[111,222]}' --yes
117
117
  Use `--dry-run` to validate resolved input without making an API call:
118
118
 
119
119
  ```bash
120
- toggl tasks update --task-id 12345 --payload-status-id 270002 --dry-run
120
+ toggl tasks update --task-id 12345 --payload-status-id 456789 --dry-run
121
121
  ```
122
122
 
123
123
  Delete commands require `--yes`. Never add `--yes` unless the user clearly requested the destructive delete:
124
124
 
125
125
  ```bash
126
126
  toggl --json tasks delete --task-id 12345 --yes
127
- toggl --json projects delete --project-id 436195 --yes
127
+ toggl --json projects delete --project-id 123456 --yes
128
128
  toggl --json time-blocks delete --task-id 12345 --time-block-id 67890 --yes
129
129
  toggl --json tasks bulk delete --data '{"ids":[111,222]}' --yes
130
- toggl --json projects bulk delete --data '{"ids":[436195,436196]}' --yes
130
+ toggl --json projects bulk delete --data '{"ids":[123456,123457]}' --yes
131
131
  toggl --json time-blocks bulk delete --data '{"ids":[101,102]}' --yes
132
132
  ```
133
133
 
@@ -19,7 +19,7 @@ toggl --json projects get --project-id <project-id>
19
19
  Create a project:
20
20
 
21
21
  ```bash
22
- toggl --json projects create --data '{"name":"Q3 Planning","workspace_id":356965}'
22
+ toggl --json projects create --data '{"name":"Q3 Planning","workspace_id":789012}'
23
23
  ```
24
24
 
25
25
  Rename a project:
@@ -45,7 +45,7 @@ toggl --json projects list
45
45
  When creating tasks, pass the resolved project ID to `tasks create`:
46
46
 
47
47
  ```bash
48
- toggl --json tasks create --data '{"name":"Task name","project_id":436195}'
48
+ toggl --json tasks create --data '{"name":"Task name","project_id":123456}'
49
49
  ```
50
50
 
51
51
  Project deletion is destructive. Confirm the exact project ID and name before using `--yes`.
@@ -20,7 +20,7 @@ toggl --json tasks get --task-id <task-id>
20
20
  Create a task:
21
21
 
22
22
  ```bash
23
- toggl --json tasks create --data '{"name":"Follow up with design","project_id":436195}'
23
+ toggl --json tasks create --data '{"name":"Follow up with design","project_id":123456}'
24
24
  ```
25
25
 
26
26
  Update a task with scalar payload flags:
@@ -33,7 +33,7 @@ toggl --json tasks update --task-id <task-id> --payload-status-id <status-id>
33
33
  Update a task with a JSON payload:
34
34
 
35
35
  ```bash
36
- toggl --json tasks update --data '{"task_id":12345,"payload":{"name":"Updated name","status_id":270002}}'
36
+ toggl --json tasks update --data '{"task_id":12345,"payload":{"name":"Updated name","status_id":456789}}'
37
37
  ```
38
38
 
39
39
  Delete a task only after explicit user confirmation:
@@ -86,7 +86,7 @@ toggl --json tasks delete --task-id <task-id> --yes
86
86
  For API response schema warnings, rerun with debug enabled:
87
87
 
88
88
  ```bash
89
- TOGGL_DEBUG=1 toggl --json tasks list --project-id 436195
89
+ TOGGL_DEBUG=1 toggl --json tasks list --project-id 123456
90
90
  ```
91
91
 
92
92
  ## Unknown Command Shape
@@ -36,7 +36,7 @@ If multiple resources match a user-provided name, ask before mutating.
36
36
 
37
37
  ```bash
38
38
  toggl --json projects list
39
- toggl --json tasks create --data '{"name":"Write release notes","project_id":436195}'
39
+ toggl --json tasks create --data '{"name":"Write release notes","project_id":123456}'
40
40
  ```
41
41
 
42
42
  ## Move a Task to a Status
@@ -1,62 +0,0 @@
1
- # Internal Toggl CLI Workflows
2
-
3
- Install `@toggl/cli-internal` from **GitHub Packages** for internal builds that include staging and MS environment helpers (`toggl-internal` bin).
4
-
5
- Configure `~/.npmrc` with a GitHub Packages token (`read:packages`) and Toggl org access:
6
-
7
- ```
8
- @toggl:registry=https://npm.pkg.github.com/
9
- //npm.pkg.github.com/:_authToken=<GH_NPM_TOKEN>
10
- ```
11
-
12
- ```bash
13
- npm install -g @toggl/cli-internal
14
- ```
15
-
16
- ## Environments
17
-
18
- Use production by default. Use these flags only when a Toggl engineer asks for staging or a named MS environment.
19
-
20
- Authenticate against staging:
21
-
22
- ```bash
23
- toggl-internal auth --staging
24
- toggl-internal --json profile list
25
- toggl-internal --json workspace list
26
- ```
27
-
28
- Authenticate against a named MS environment:
29
-
30
- ```bash
31
- toggl-internal auth --ms <name>
32
- toggl-internal --json profile list
33
- toggl-internal --json workspace list
34
- ```
35
-
36
- Generated non-production profiles keep the environment prefix, for example `staging-hazem-12345` or `ms-foo-hazem-12345`.
37
-
38
- ## Environment Variables
39
-
40
- The internal build also recognizes shorthand environment variables:
41
-
42
- ```bash
43
- ENV=staging toggl-internal auth
44
- MS=<name> toggl-internal auth
45
- ```
46
-
47
- Explicit URL overrides still take precedence:
48
-
49
- ```bash
50
- TOGGL_FOCUS_API_URL=<url> TOGGL_ACCOUNTS_API_URL=<url> toggl-internal auth
51
- ```
52
-
53
- ## Troubleshooting
54
-
55
- When data appears missing in an internal environment, verify profile and workspace before assuming the resource does not exist:
56
-
57
- ```bash
58
- toggl-internal --json profile list
59
- toggl-internal --json profile current
60
- toggl-internal --json workspace list --refresh
61
- toggl-internal --json workspace switch <workspace-id>
62
- ```