tabstax-cli 0.1.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.
Files changed (59) hide show
  1. package/README.md +110 -0
  2. package/bin/hey.js +2 -0
  3. package/dist/__tests__/api.test.d.ts +6 -0
  4. package/dist/__tests__/api.test.d.ts.map +1 -0
  5. package/dist/__tests__/api.test.js +146 -0
  6. package/dist/__tests__/api.test.js.map +1 -0
  7. package/dist/__tests__/config.test.d.ts +6 -0
  8. package/dist/__tests__/config.test.d.ts.map +1 -0
  9. package/dist/__tests__/config.test.js +78 -0
  10. package/dist/__tests__/config.test.js.map +1 -0
  11. package/dist/__tests__/output.test.d.ts +6 -0
  12. package/dist/__tests__/output.test.d.ts.map +1 -0
  13. package/dist/__tests__/output.test.js +104 -0
  14. package/dist/__tests__/output.test.js.map +1 -0
  15. package/dist/commands/add.d.ts +12 -0
  16. package/dist/commands/add.d.ts.map +1 -0
  17. package/dist/commands/add.js +76 -0
  18. package/dist/commands/add.js.map +1 -0
  19. package/dist/commands/auth.d.ts +11 -0
  20. package/dist/commands/auth.d.ts.map +1 -0
  21. package/dist/commands/auth.js +135 -0
  22. package/dist/commands/auth.js.map +1 -0
  23. package/dist/commands/context.d.ts +15 -0
  24. package/dist/commands/context.d.ts.map +1 -0
  25. package/dist/commands/context.js +75 -0
  26. package/dist/commands/context.js.map +1 -0
  27. package/dist/commands/done.d.ts +13 -0
  28. package/dist/commands/done.d.ts.map +1 -0
  29. package/dist/commands/done.js +76 -0
  30. package/dist/commands/done.js.map +1 -0
  31. package/dist/commands/edit.d.ts +27 -0
  32. package/dist/commands/edit.d.ts.map +1 -0
  33. package/dist/commands/edit.js +170 -0
  34. package/dist/commands/edit.js.map +1 -0
  35. package/dist/commands/list.d.ts +11 -0
  36. package/dist/commands/list.d.ts.map +1 -0
  37. package/dist/commands/list.js +112 -0
  38. package/dist/commands/list.js.map +1 -0
  39. package/dist/commands/remove.d.ts +9 -0
  40. package/dist/commands/remove.d.ts.map +1 -0
  41. package/dist/commands/remove.js +69 -0
  42. package/dist/commands/remove.js.map +1 -0
  43. package/dist/index.d.ts +7 -0
  44. package/dist/index.d.ts.map +1 -0
  45. package/dist/index.js +113 -0
  46. package/dist/index.js.map +1 -0
  47. package/dist/lib/api.d.ts +69 -0
  48. package/dist/lib/api.d.ts.map +1 -0
  49. package/dist/lib/api.js +303 -0
  50. package/dist/lib/api.js.map +1 -0
  51. package/dist/lib/config.d.ts +51 -0
  52. package/dist/lib/config.d.ts.map +1 -0
  53. package/dist/lib/config.js +131 -0
  54. package/dist/lib/config.js.map +1 -0
  55. package/dist/lib/output.d.ts +37 -0
  56. package/dist/lib/output.d.ts.map +1 -0
  57. package/dist/lib/output.js +209 -0
  58. package/dist/lib/output.js.map +1 -0
  59. package/package.json +64 -0
@@ -0,0 +1,209 @@
1
+ /**
2
+ * Output formatting for Hey CLI
3
+ * Handles terminal colors and consistent formatting
4
+ */
5
+ import chalk from 'chalk';
6
+ import { config } from './config.js';
7
+ export const PRIORITY_ICONS = {
8
+ must: '★',
9
+ should: '◆',
10
+ good: '○',
11
+ meh: '·',
12
+ unset: '·',
13
+ };
14
+ export const PRIORITY_COLORS = {
15
+ must: chalk.red,
16
+ should: chalk.yellow,
17
+ good: chalk.green,
18
+ meh: chalk.gray,
19
+ unset: chalk.gray,
20
+ };
21
+ export function formatPriority(priority) {
22
+ const p = (priority ?? 'unset');
23
+ const icon = PRIORITY_ICONS[p] ?? PRIORITY_ICONS.unset;
24
+ const color = PRIORITY_COLORS[p] ?? PRIORITY_COLORS.unset;
25
+ return color(icon);
26
+ }
27
+ export function formatPriorityWithLabel(priority) {
28
+ const p = (priority ?? 'unset');
29
+ const icon = PRIORITY_ICONS[p] ?? PRIORITY_ICONS.unset;
30
+ const color = PRIORITY_COLORS[p] ?? PRIORITY_COLORS.unset;
31
+ const label = p.charAt(0).toUpperCase() + p.slice(1);
32
+ return color(`${icon} ${label}`);
33
+ }
34
+ export function formatRelativeTime(date) {
35
+ const now = Date.now();
36
+ const then = new Date(date).getTime();
37
+ const diff = now - then;
38
+ const minutes = Math.floor(diff / 60000);
39
+ const hours = Math.floor(diff / 3600000);
40
+ const days = Math.floor(diff / 86400000);
41
+ const weeks = Math.floor(diff / 604800000);
42
+ if (minutes < 1)
43
+ return 'just now';
44
+ if (minutes < 60)
45
+ return `${minutes}m ago`;
46
+ if (hours < 24)
47
+ return `${hours}h ago`;
48
+ if (days < 7)
49
+ return `${days}d ago`;
50
+ if (weeks < 4)
51
+ return `${weeks}w ago`;
52
+ return new Date(date).toLocaleDateString();
53
+ }
54
+ export function formatActionAge(date) {
55
+ const now = Date.now();
56
+ const then = new Date(date).getTime();
57
+ const diff = now - then;
58
+ const hours = Math.floor(diff / 3600000);
59
+ const days = Math.floor(diff / 86400000);
60
+ const weeks = Math.floor(diff / 604800000);
61
+ if (hours < 1)
62
+ return 'now';
63
+ if (hours < 24)
64
+ return `${hours}h`;
65
+ if (days < 7)
66
+ return `${days}d`;
67
+ return `${weeks}w`;
68
+ }
69
+ export function formatLimitStatus(count, max = 7) {
70
+ const ratio = count / max;
71
+ let color = chalk.green;
72
+ if (ratio >= 1)
73
+ color = chalk.red;
74
+ else if (ratio >= 0.7)
75
+ color = chalk.yellow;
76
+ return color(`${count}/${max}`);
77
+ }
78
+ export function formatAction(action, index) {
79
+ const num = chalk.gray(`${index + 1}.`);
80
+ const content = action.content;
81
+ const age = chalk.gray(formatActionAge(action.created_at));
82
+ return ` ${num} ${content.padEnd(45)} ${age}`;
83
+ }
84
+ export function formatBreadcrumb(action) {
85
+ const check = chalk.green('✓');
86
+ const content = chalk.gray(action.content);
87
+ const age = chalk.gray(formatRelativeTime(action.completed_at ?? action.created_at));
88
+ return ` ${check} ${content.padEnd(45)} ${age}`;
89
+ }
90
+ export function formatStaxHeader(stax, priority, actionCount, maxActions = 7) {
91
+ const name = chalk.bold(stax.name);
92
+ const pri = formatPriority(priority);
93
+ const limit = actionCount !== undefined
94
+ ? formatLimitStatus(actionCount, maxActions)
95
+ : '';
96
+ return `${name} ${pri}${limit ? ` ${limit} actions` : ''}`;
97
+ }
98
+ export function formatStaxListItem(stax, maxActions = 7) {
99
+ const name = stax.name.padEnd(20);
100
+ const count = formatLimitStatus(stax.actionCount, maxActions);
101
+ const lastActivity = stax.last_activity_at
102
+ ? chalk.gray(`last: ${formatRelativeTime(stax.last_activity_at)}`)
103
+ : chalk.gray('no activity');
104
+ return ` ${name} ${count} actions ${lastActivity}`;
105
+ }
106
+ export function printSuccess(message) {
107
+ console.log(chalk.green('✓') + ' ' + message);
108
+ }
109
+ export function printError(message) {
110
+ console.log(chalk.red('✗') + ' ' + message);
111
+ }
112
+ export function printWarning(message) {
113
+ console.log(chalk.yellow('⚠') + ' ' + message);
114
+ }
115
+ export function printInfo(message) {
116
+ console.log(chalk.blue('ℹ') + ' ' + message);
117
+ }
118
+ export function printActions(stax, actions, breadcrumbs = [], priority) {
119
+ const limits = config.getLimits();
120
+ // Header
121
+ console.log(formatStaxHeader(stax, priority, actions.length, limits.maxActionsPerStax));
122
+ console.log();
123
+ // Next Actions
124
+ if (actions.length > 0) {
125
+ console.log(chalk.bold('Next Actions'));
126
+ actions.forEach((action, i) => {
127
+ console.log(formatAction(action, i));
128
+ });
129
+ }
130
+ else {
131
+ console.log(chalk.gray(' No pending actions'));
132
+ }
133
+ // Breadcrumbs
134
+ if (breadcrumbs.length > 0) {
135
+ console.log();
136
+ console.log(chalk.bold('Breadcrumbs (recent)'));
137
+ breadcrumbs.slice(0, 5).forEach(bc => {
138
+ console.log(formatBreadcrumb(bc));
139
+ });
140
+ }
141
+ }
142
+ export function printStaxList(staxList) {
143
+ const limits = config.getLimits();
144
+ // Group by priority
145
+ const byPriority = {
146
+ must: [],
147
+ should: [],
148
+ good: [],
149
+ meh: [],
150
+ unset: [],
151
+ };
152
+ staxList.forEach(s => {
153
+ const p = s.priority ?? 'unset';
154
+ if (byPriority[p]) {
155
+ byPriority[p].push(s);
156
+ }
157
+ else {
158
+ byPriority.unset.push(s);
159
+ }
160
+ });
161
+ // Print each group
162
+ const priorities = ['must', 'should', 'good', 'meh', 'unset'];
163
+ priorities.forEach(p => {
164
+ const group = byPriority[p];
165
+ if (group.length === 0)
166
+ return;
167
+ console.log(formatPriorityWithLabel(p === 'unset' ? null : p));
168
+ group.forEach(s => {
169
+ console.log(formatStaxListItem(s, limits.maxActionsPerStax));
170
+ });
171
+ console.log();
172
+ });
173
+ }
174
+ export function printStaxExpanded(staxList, actionsPerStax = 3) {
175
+ const limits = config.getLimits();
176
+ // Sort by last activity
177
+ const sorted = [...staxList].sort((a, b) => {
178
+ const aTime = a.last_activity_at ? new Date(a.last_activity_at).getTime() : 0;
179
+ const bTime = b.last_activity_at ? new Date(b.last_activity_at).getTime() : 0;
180
+ return bTime - aTime;
181
+ });
182
+ sorted.forEach(stax => {
183
+ const pri = formatPriority(stax.priority);
184
+ const count = formatLimitStatus(stax.actionCount, limits.maxActionsPerStax);
185
+ const lastActivity = stax.last_activity_at
186
+ ? chalk.gray(`last: ${formatRelativeTime(stax.last_activity_at)}`)
187
+ : '';
188
+ console.log(`${chalk.bold(stax.name)} ${pri} ${count} ${lastActivity}`);
189
+ const actions = stax.actions.slice(0, actionsPerStax);
190
+ actions.forEach((action, i) => {
191
+ console.log(` ${chalk.gray(`${i + 1}.`)} ${action.content}`);
192
+ });
193
+ const remaining = stax.actionCount - actionsPerStax;
194
+ if (remaining > 0) {
195
+ console.log(chalk.gray(` (+${remaining} more)`));
196
+ }
197
+ console.log();
198
+ });
199
+ }
200
+ export function printLimitWarning(stax, currentCount, maxCount) {
201
+ console.log();
202
+ printWarning(`${stax.name} has ${currentCount}/${maxCount} active actions (limit reached)`);
203
+ console.log();
204
+ console.log('Options:');
205
+ console.log(' • Complete one: ' + chalk.cyan('hey done <n>'));
206
+ console.log(' • Remove one: ' + chalk.cyan('hey rm <n>'));
207
+ console.log(' • Force add: ' + chalk.cyan('hey "task" --force'));
208
+ }
209
+ //# sourceMappingURL=output.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"output.js","sourceRoot":"","sources":["../../src/lib/output.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,64 @@
1
+ {
2
+ "name": "tabstax-cli",
3
+ "version": "0.1.0",
4
+ "description": "Hey CLI - Manage your Next Actions from the terminal. The CLI companion for TabStax browser extension.",
5
+ "type": "module",
6
+ "main": "dist/index.js",
7
+ "bin": {
8
+ "hey": "./bin/hey.js"
9
+ },
10
+ "scripts": {
11
+ "build": "tsc",
12
+ "dev": "tsc --watch",
13
+ "test": "NODE_OPTIONS='--experimental-vm-modules' jest --config jest.config.cjs",
14
+ "test:watch": "jest --watch",
15
+ "test:coverage": "jest --coverage",
16
+ "lint": "eslint src --ext .ts",
17
+ "clean": "rm -rf dist",
18
+ "prepublishOnly": "npm run build"
19
+ },
20
+ "keywords": [
21
+ "tabstax",
22
+ "cli",
23
+ "next-actions",
24
+ "breadcrumbs",
25
+ "productivity",
26
+ "todo",
27
+ "tasks",
28
+ "gtd",
29
+ "getting-things-done"
30
+ ],
31
+ "author": "TabStax <hello@tabstax.app>",
32
+ "license": "MIT",
33
+ "homepage": "https://tabstax.app",
34
+ "repository": {
35
+ "type": "git",
36
+ "url": "git+https://github.com/Hulupeep/tabstax.git",
37
+ "directory": "tabstax_Ext/cli"
38
+ },
39
+ "bugs": {
40
+ "url": "https://github.com/Hulupeep/tabstax/issues"
41
+ },
42
+ "dependencies": {
43
+ "@supabase/supabase-js": "^2.47.0",
44
+ "chalk": "^5.3.0",
45
+ "commander": "^12.1.0",
46
+ "conf": "^13.0.1",
47
+ "fuse.js": "^7.0.0",
48
+ "ora": "^8.1.0"
49
+ },
50
+ "devDependencies": {
51
+ "@types/jest": "^29.5.14",
52
+ "@types/node": "^22.10.0",
53
+ "jest": "^29.7.0",
54
+ "ts-jest": "^29.2.5",
55
+ "typescript": "^5.7.0"
56
+ },
57
+ "engines": {
58
+ "node": ">=18.0.0"
59
+ },
60
+ "files": [
61
+ "dist",
62
+ "bin"
63
+ ]
64
+ }