@knpkv/jira-clockify 1.5.0 → 1.6.1

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 (102) hide show
  1. package/README.md +36 -5
  2. package/dist/package.json +15 -5
  3. package/dist/src/bin.js +16 -5
  4. package/dist/src/bin.js.map +1 -1
  5. package/dist/src/cli/CommandFailed.d.ts +27 -0
  6. package/dist/src/cli/CommandFailed.d.ts.map +1 -0
  7. package/dist/src/cli/CommandFailed.js +25 -0
  8. package/dist/src/cli/CommandFailed.js.map +1 -0
  9. package/dist/src/cli/auth.d.ts +23 -3
  10. package/dist/src/cli/auth.d.ts.map +1 -1
  11. package/dist/src/cli/auth.js +123 -102
  12. package/dist/src/cli/auth.js.map +1 -1
  13. package/dist/src/cli/config.d.ts +2 -1
  14. package/dist/src/cli/config.d.ts.map +1 -1
  15. package/dist/src/cli/config.js +43 -29
  16. package/dist/src/cli/config.js.map +1 -1
  17. package/dist/src/cli/fetchTicket.d.ts +3 -3
  18. package/dist/src/cli/fetchTicket.d.ts.map +1 -1
  19. package/dist/src/cli/fetchTicket.js +7 -7
  20. package/dist/src/cli/fetchTicket.js.map +1 -1
  21. package/dist/src/cli/layers.d.ts +6 -5
  22. package/dist/src/cli/layers.d.ts.map +1 -1
  23. package/dist/src/cli/layers.js +16 -15
  24. package/dist/src/cli/layers.js.map +1 -1
  25. package/dist/src/cli/list.d.ts +3 -2
  26. package/dist/src/cli/list.d.ts.map +1 -1
  27. package/dist/src/cli/list.js +11 -5
  28. package/dist/src/cli/list.js.map +1 -1
  29. package/dist/src/cli/reconcile.d.ts +12 -3
  30. package/dist/src/cli/reconcile.d.ts.map +1 -1
  31. package/dist/src/cli/reconcile.js +71 -23
  32. package/dist/src/cli/reconcile.js.map +1 -1
  33. package/dist/src/cli/root.d.ts.map +1 -1
  34. package/dist/src/cli/root.js +3 -3
  35. package/dist/src/cli/root.js.map +1 -1
  36. package/dist/src/cli/setup.d.ts +14 -4
  37. package/dist/src/cli/setup.d.ts.map +1 -1
  38. package/dist/src/cli/setup.js +45 -94
  39. package/dist/src/cli/setup.js.map +1 -1
  40. package/dist/src/cli/timer/discard.d.ts +1 -1
  41. package/dist/src/cli/timer/discard.d.ts.map +1 -1
  42. package/dist/src/cli/timer/discard.js +2 -1
  43. package/dist/src/cli/timer/discard.js.map +1 -1
  44. package/dist/src/cli/timer/log.d.ts +1 -1
  45. package/dist/src/cli/timer/log.d.ts.map +1 -1
  46. package/dist/src/cli/timer/log.js +2 -1
  47. package/dist/src/cli/timer/log.js.map +1 -1
  48. package/dist/src/cli/timer/start.d.ts +2 -1
  49. package/dist/src/cli/timer/start.d.ts.map +1 -1
  50. package/dist/src/cli/timer/start.js +6 -8
  51. package/dist/src/cli/timer/start.js.map +1 -1
  52. package/dist/src/cli/timer/stop.d.ts +1 -1
  53. package/dist/src/cli/timer/stop.d.ts.map +1 -1
  54. package/dist/src/cli/timer.d.ts.map +1 -1
  55. package/dist/src/cli/timer.js +8 -1
  56. package/dist/src/cli/timer.js.map +1 -1
  57. package/dist/src/cli/unknownCommand.d.ts +24 -0
  58. package/dist/src/cli/unknownCommand.d.ts.map +1 -0
  59. package/dist/src/cli/unknownCommand.js +84 -0
  60. package/dist/src/cli/unknownCommand.js.map +1 -0
  61. package/dist/src/cli/watch.d.ts +2 -2
  62. package/dist/src/cli/watch.d.ts.map +1 -1
  63. package/dist/src/services/ConfigService.d.ts +2 -0
  64. package/dist/src/services/ConfigService.d.ts.map +1 -1
  65. package/dist/src/services/ConfigService.js +2 -1
  66. package/dist/src/services/ConfigService.js.map +1 -1
  67. package/dist/src/services/IssueFacts.d.ts +2 -2
  68. package/dist/src/services/IssueFacts.d.ts.map +1 -1
  69. package/dist/src/services/IssueFacts.js +5 -5
  70. package/dist/src/services/IssueFacts.js.map +1 -1
  71. package/dist/src/services/JiraAccess.d.ts +140 -0
  72. package/dist/src/services/JiraAccess.d.ts.map +1 -0
  73. package/dist/src/services/JiraAccess.js +204 -0
  74. package/dist/src/services/JiraAccess.js.map +1 -0
  75. package/dist/src/services/ProviderSnapshots.d.ts +2 -2
  76. package/dist/src/services/ProviderSnapshots.d.ts.map +1 -1
  77. package/dist/src/services/ProviderSnapshots.js +14 -24
  78. package/dist/src/services/ProviderSnapshots.js.map +1 -1
  79. package/dist/src/services/ReconcileService.d.ts +2 -2
  80. package/dist/src/services/ReconcileService.d.ts.map +1 -1
  81. package/dist/src/services/ReconcileService.js +11 -4
  82. package/dist/src/services/ReconcileService.js.map +1 -1
  83. package/dist/src/services/SavedEntries.d.ts +1 -1
  84. package/dist/src/services/SavedEntries.d.ts.map +1 -1
  85. package/dist/src/services/TimerService.d.ts +3 -3
  86. package/dist/src/services/TimerService.d.ts.map +1 -1
  87. package/dist/src/services/TimerService.js +6 -17
  88. package/dist/src/services/TimerService.js.map +1 -1
  89. package/dist/src/testing/fakeHeadless.d.ts +1 -1
  90. package/dist/src/testing/fakeHeadless.d.ts.map +1 -1
  91. package/dist/src/testing/fakeHeadless.js +17 -7
  92. package/dist/src/testing/fakeHeadless.js.map +1 -1
  93. package/dist/src/tui/App.js +1 -1
  94. package/dist/src/tui/atoms/runtime.d.ts +1 -1
  95. package/dist/src/tui/atoms/runtime.d.ts.map +1 -1
  96. package/dist/src/utils/hints.d.ts +4 -2
  97. package/dist/src/utils/hints.d.ts.map +1 -1
  98. package/dist/src/utils/hints.js +4 -2
  99. package/dist/src/utils/hints.js.map +1 -1
  100. package/dist/tsconfig.tsbuildinfo +1 -1
  101. package/package.json +7 -7
  102. package/skills/jcf/SKILL.md +9 -6
package/package.json CHANGED
@@ -1,11 +1,12 @@
1
1
  {
2
2
  "name": "@knpkv/jira-clockify",
3
- "version": "1.5.0",
3
+ "version": "1.6.1",
4
4
  "description": "TUI for Jira-Clockify time tracking, attachable to neovim",
5
5
  "license": "MIT",
6
6
  "author": "knpkv",
7
7
  "type": "module",
8
8
  "main": "dist/src/index.js",
9
+ "types": "dist/src/index.d.ts",
9
10
  "exports": {
10
11
  ".": {
11
12
  "types": "./dist/src/index.d.ts",
@@ -39,13 +40,13 @@
39
40
  "@opentui/react": "0.5.14",
40
41
  "effect": "4.0.0",
41
42
  "react": "^19.3.0",
42
- "@knpkv/agent-skills": "^0.3.3",
43
+ "@knpkv/agent-skills": "^0.3.4",
43
44
  "@knpkv/ai-claude": "^0.4.1",
44
45
  "@knpkv/ai-codex": "^0.5.1",
45
- "@knpkv/atlassian-common": "^1.9.0",
46
+ "@knpkv/atlassian-common": "^1.9.1",
46
47
  "@knpkv/clockify-api-client": "^3.0.0",
47
- "@knpkv/jira-api-client": "^2.0.0",
48
- "@knpkv/jira-cli": "^1.6.0"
48
+ "@knpkv/jira-api-client": "^2.1.0",
49
+ "@knpkv/jira-cli": "^1.6.2"
49
50
  },
50
51
  "devDependencies": {
51
52
  "@effect/vitest": "4.0.0",
@@ -60,6 +61,5 @@
60
61
  "check": "tsc -b tsconfig.json && tsc --noEmit -p test/tsconfig.json",
61
62
  "test": "vitest",
62
63
  "lint": "eslint \"{src,test}/**/*.{ts,tsx}\""
63
- },
64
- "types": "dist/src/index.d.ts"
64
+ }
65
65
  }
@@ -9,7 +9,7 @@ Use the `jcf` binary to manage Jira-backed Clockify timers.
9
9
 
10
10
  ## Preconditions
11
11
 
12
- - Configure both services before timer operations: Jira OAuth and Clockify API key.
12
+ - Connect the services a command needs: Jira with `jcf auth jira token` (an API token; OAuth is the advanced alternative) and Clockify with `jcf auth clockify setup`. A command that needs a missing one fails with that command and a non-zero exit.
13
13
  - Use `jcf auth status` to check readiness.
14
14
  - `jcf` uses the shared Jira CLI auth profile store; for multi-site Jira accounts, use `jira auth profiles` and `jira auth use <profile>` before timer operations when the `jira` binary is available. When the `atlassian` binary is available, prefer `atlassian profiles doctor` to confirm that Jira Clockify is using the intended `jira-cli` auth store and `atlassian auth refresh` for expired Jira tokens.
15
15
  - Timer operations write to Clockify and may write Jira worklogs; confirm ambiguous ticket keys, durations, dates, and comments before running them.
@@ -19,9 +19,7 @@ Use the `jcf` binary to manage Jira-backed Clockify timers.
19
19
 
20
20
  ```bash
21
21
  jcf auth status
22
- jcf auth jira create
23
- jcf auth jira configure
24
- jcf auth jira login
22
+ jcf auth jira token
25
23
  jcf auth clockify setup
26
24
 
27
25
  atlassian profiles doctor
@@ -137,7 +135,12 @@ jcf sync reconcile --agent claude --day --calendar
137
135
  plus the issue `summary`. Sum `seconds`, not wall-clock bounds, for shared work.
138
136
  - In `--json`, `ownershipWithheld` keeps rows assigned to someone else or unassigned, with a
139
137
  `reason`; `withheld` remains the separate confidence-floor list. Neither list is offered to write.
140
- - `--json` and `--calendar` are agent-mode flags; passing either without `--agent` is a usage error.
138
+ - `--only clockify` or `--only jira` reads and writes one system, for when the other is not
139
+ connected. `--json` names what was read in `sides` (`{ "clockify": true, "jira": false }`); a side
140
+ that was not read reports zero deltas, which does not mean it holds the time. Without `--only`, a
141
+ system that is not connected stops the run before anything is proposed.
142
+ - `--json`, `--calendar` and `--only` are agent-mode flags; passing any without `--agent` is a usage
143
+ error.
141
144
  - Only messages the user typed count towards time; the agent's own output, its tool results, and
142
145
  prompts it sends its own subagents do not, so an unattended agent run credits at most the idle cap
143
146
  rather than the hour it ran for.
@@ -173,7 +176,7 @@ jcf watch claude --interval 60
173
176
  - Only one watch writes at a time, per machine. Starting a second one prints who holds the lease and
174
177
  exits; do not start one to "check" on a running watch. After an ungraceful process death, verify no
175
178
  watch remains before manually removing `~/.jcf/watch.lease`; the file is never auto-taken-over.
176
- - It stops itself if Jira rejects the login. Re-authenticate with `jcf auth jira login` and restart.
179
+ - It stops itself if Jira rejects the login. Reconnect with `jcf auth jira token` and restart.
177
180
 
178
181
  ## Agent Workflow
179
182