@taskcast/cli 0.1.1 → 0.2.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.
package/README.md ADDED
@@ -0,0 +1,86 @@
1
+ # @taskcast/cli
2
+
3
+ Standalone [Taskcast](https://github.com/weightwave/taskcast) server. Run a fully configured task tracking service with a single command.
4
+
5
+ ## Quick Start
6
+
7
+ ```bash
8
+ npx taskcast
9
+ ```
10
+
11
+ The server starts on port `3721` by default.
12
+
13
+ ## Commands
14
+
15
+ ```
16
+ Usage: taskcast [command] [options]
17
+
18
+ Commands:
19
+ start Start the Taskcast server in foreground (default)
20
+ daemon Start as a background service (not yet implemented)
21
+ stop Stop the background service (not yet implemented)
22
+ status Show server status (not yet implemented)
23
+
24
+ Options:
25
+ -V, --version Show version
26
+ -h, --help Show help
27
+ ```
28
+
29
+ ### `taskcast start`
30
+
31
+ Start the server in foreground mode. This is the default command — `taskcast` is equivalent to `taskcast start`.
32
+
33
+ ```
34
+ Options:
35
+ -c, --config <path> Path to config file
36
+ -p, --port <port> Server port (default: 3721)
37
+ -s, --storage <type> Storage backend: memory | redis | sqlite (default: memory)
38
+ --db-path <path> SQLite database file path (default: ./taskcast.db)
39
+ ```
40
+
41
+ ## Configuration
42
+
43
+ ### Config File
44
+
45
+ ```bash
46
+ npx taskcast start -p 8080 -c taskcast.config.yaml
47
+ ```
48
+
49
+ Taskcast searches for config files in the current directory:
50
+
51
+ `taskcast.config.ts` > `.js` > `.mjs` > `.yaml` / `.yml` > `.json`
52
+
53
+ ### Environment Variables
54
+
55
+ | Variable | Description | Default |
56
+ |----------|-------------|---------|
57
+ | `TASKCAST_PORT` | Server port | `3721` |
58
+ | `TASKCAST_AUTH_MODE` | `none` \| `jwt` \| `custom` | `none` |
59
+ | `TASKCAST_JWT_SECRET` | JWT HMAC secret | -- |
60
+ | `TASKCAST_REDIS_URL` | Redis connection URL | -- |
61
+ | `TASKCAST_POSTGRES_URL` | PostgreSQL connection URL | -- |
62
+ | `TASKCAST_STORAGE` | `memory` \| `redis` \| `sqlite` | `memory` |
63
+ | `TASKCAST_SQLITE_PATH` | SQLite database file path | `./taskcast.db` |
64
+ | `TASKCAST_LOG_LEVEL` | `debug` \| `info` \| `warn` \| `error` | `info` |
65
+
66
+ ### SQLite Storage
67
+
68
+ For zero-dependency local development with persistent storage:
69
+
70
+ ```bash
71
+ npx taskcast start --storage sqlite
72
+ ```
73
+
74
+ Data is stored in `./taskcast.db` by default. Customize with `--db-path`:
75
+
76
+ ```bash
77
+ npx taskcast start --storage sqlite --db-path /tmp/my-taskcast.db
78
+ ```
79
+
80
+ ## Part of Taskcast
81
+
82
+ This is the CLI package. See the [Taskcast monorepo](https://github.com/weightwave/taskcast) for the full project.
83
+
84
+ ## License
85
+
86
+ [MIT](https://github.com/weightwave/taskcast/blob/main/LICENSE)
package/dist/index.js CHANGED
@@ -2,10 +2,62 @@
2
2
  import { Command } from 'commander';
3
3
  import { Redis } from 'ioredis';
4
4
  import postgres from 'postgres';
5
+ import { createInterface } from 'readline';
6
+ import { mkdirSync, writeFileSync } from 'fs';
7
+ import { join } from 'path';
8
+ import { homedir } from 'os';
5
9
  import { TaskEngine, loadConfigFile, MemoryBroadcastProvider, MemoryShortTermStore, } from '@taskcast/core';
6
10
  import { createTaskcastApp } from '@taskcast/server';
7
11
  import { createRedisAdapters } from '@taskcast/redis';
8
12
  import { PostgresLongTermStore } from '@taskcast/postgres';
13
+ import { createSqliteAdapters } from '@taskcast/sqlite';
14
+ const DEFAULT_CONFIG_YAML = `# Taskcast configuration
15
+ # Docs: https://github.com/weightwave/taskcast
16
+
17
+ port: 3721
18
+
19
+ # auth:
20
+ # mode: none # none | jwt
21
+
22
+ # adapters:
23
+ # broadcast:
24
+ # provider: memory # memory | redis
25
+ # # url: redis://localhost:6379
26
+ # shortTerm:
27
+ # provider: memory # memory | redis
28
+ # # url: redis://localhost:6379
29
+ # longTerm:
30
+ # provider: postgres
31
+ # # url: postgresql://localhost:5432/taskcast
32
+ `;
33
+ async function promptCreateGlobalConfig() {
34
+ if (!process.stdin.isTTY)
35
+ return false;
36
+ const globalConfigPath = join(homedir(), '.taskcast', 'taskcast.config.yaml');
37
+ return new Promise((resolve) => {
38
+ const rl = createInterface({ input: process.stdin, output: process.stdout });
39
+ rl.on('close', () => resolve(false));
40
+ rl.question(`[taskcast] No config file found.\n? Create a default config at ${globalConfigPath}? (Y/n) `, (answer) => {
41
+ rl.close();
42
+ const trimmed = answer.trim().toLowerCase();
43
+ resolve(trimmed === '' || trimmed === 'y' || trimmed === 'yes');
44
+ });
45
+ });
46
+ }
47
+ function createDefaultGlobalConfig() {
48
+ const globalDir = join(homedir(), '.taskcast');
49
+ const globalConfigPath = join(globalDir, 'taskcast.config.yaml');
50
+ try {
51
+ mkdirSync(globalDir, { recursive: true });
52
+ writeFileSync(globalConfigPath, DEFAULT_CONFIG_YAML);
53
+ console.log(`[taskcast] Created default config at ${globalConfigPath}`);
54
+ return globalConfigPath;
55
+ }
56
+ catch (err) {
57
+ console.warn(`[taskcast] Could not create config at ${globalConfigPath}: ${err.message}`);
58
+ return null;
59
+ }
60
+ }
9
61
  const program = new Command();
10
62
  program
11
63
  .name('taskcast')
@@ -13,37 +65,58 @@ program
13
65
  .version('0.1.0');
14
66
  program
15
67
  .command('start', { isDefault: true })
16
- .description('Start the taskcast server')
68
+ .description('Start the taskcast server in foreground (default)')
17
69
  .option('-c, --config <path>', 'config file path')
18
70
  .option('-p, --port <port>', 'port to listen on', '3721')
71
+ .option('-s, --storage <type>', 'storage backend: memory | redis | sqlite', 'memory')
72
+ .option('--db-path <path>', 'SQLite database file path (default: ./taskcast.db)')
19
73
  .action(async (options) => {
20
- const fileConfig = await loadConfigFile(options.config);
74
+ let { config: fileConfig, source } = await loadConfigFile(options.config);
75
+ if (source === 'none') {
76
+ const shouldCreate = await promptCreateGlobalConfig();
77
+ if (shouldCreate) {
78
+ const createdPath = createDefaultGlobalConfig();
79
+ if (createdPath) {
80
+ const created = await loadConfigFile(createdPath);
81
+ fileConfig = created.config;
82
+ }
83
+ }
84
+ }
21
85
  const port = Number(options.port ?? fileConfig.port ?? 3721);
22
86
  const redisUrl = process.env['TASKCAST_REDIS_URL'] ?? fileConfig.adapters?.broadcast?.url;
23
87
  const postgresUrl = process.env['TASKCAST_POSTGRES_URL'] ?? fileConfig.adapters?.longTerm?.url;
24
- let shortTerm;
88
+ let shortTermStore;
25
89
  let broadcast;
26
- let longTerm;
27
- if (redisUrl) {
90
+ let longTermStore;
91
+ const storage = options.storage ?? process.env['TASKCAST_STORAGE'] ?? (redisUrl ? 'redis' : 'memory');
92
+ if (storage === 'sqlite') {
93
+ const sqliteOpts = options.dbPath ? { path: options.dbPath } : {};
94
+ const adapters = createSqliteAdapters(sqliteOpts);
95
+ broadcast = new MemoryBroadcastProvider();
96
+ shortTermStore = adapters.shortTerm;
97
+ longTermStore = adapters.longTerm;
98
+ console.log(`[taskcast] Using SQLite storage at ${options.dbPath ?? './taskcast.db'}`);
99
+ }
100
+ else if (storage === 'redis' || redisUrl) {
28
101
  const pubClient = new Redis(redisUrl);
29
102
  const subClient = new Redis(redisUrl);
30
103
  const storeClient = new Redis(redisUrl);
31
104
  const adapters = createRedisAdapters(pubClient, subClient, storeClient);
32
105
  broadcast = adapters.broadcast;
33
- shortTerm = adapters.shortTerm;
106
+ shortTermStore = adapters.shortTermStore;
34
107
  }
35
108
  else {
36
109
  console.warn('[taskcast] No TASKCAST_REDIS_URL configured — using in-memory adapters');
37
110
  broadcast = new MemoryBroadcastProvider();
38
- shortTerm = new MemoryShortTermStore();
111
+ shortTermStore = new MemoryShortTermStore();
39
112
  }
40
- if (postgresUrl) {
113
+ if (storage !== 'sqlite' && postgresUrl) {
41
114
  const sql = postgres(postgresUrl);
42
- longTerm = new PostgresLongTermStore(sql);
115
+ longTermStore = new PostgresLongTermStore(sql);
43
116
  }
44
- const engineOpts = { shortTerm, broadcast };
45
- if (longTerm !== undefined)
46
- engineOpts.longTerm = longTerm;
117
+ const engineOpts = { shortTermStore, broadcast };
118
+ if (longTermStore !== undefined)
119
+ engineOpts.longTermStore = longTermStore;
47
120
  const engine = new TaskEngine(engineOpts);
48
121
  const authMode = (process.env['TASKCAST_AUTH_MODE'] ?? fileConfig.auth?.mode ?? 'none');
49
122
  const app = createTaskcastApp({
@@ -55,5 +128,26 @@ program
55
128
  console.log(`[taskcast] Server started on http://localhost:${port}`);
56
129
  });
57
130
  });
131
+ program
132
+ .command('daemon')
133
+ .description('Start the server as a background service (not yet implemented)')
134
+ .action(() => {
135
+ console.error('[taskcast] daemon mode is not yet implemented, use `taskcast start` for foreground mode');
136
+ process.exit(1);
137
+ });
138
+ program
139
+ .command('stop')
140
+ .description('Stop the background service (not yet implemented)')
141
+ .action(() => {
142
+ console.error('[taskcast] stop is not yet implemented');
143
+ process.exit(1);
144
+ });
145
+ program
146
+ .command('status')
147
+ .description('Show server status (not yet implemented)')
148
+ .action(() => {
149
+ console.error('[taskcast] status is not yet implemented');
150
+ process.exit(1);
151
+ });
58
152
  program.parse();
59
153
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@taskcast/cli",
3
- "version": "0.1.1",
3
+ "version": "0.2.0",
4
4
  "description": "Standalone Taskcast server CLI — run with npx taskcast.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -35,10 +35,11 @@
35
35
  "commander": "^12.1.0",
36
36
  "ioredis": "^5.4.0",
37
37
  "postgres": "^3.4.5",
38
- "@taskcast/core": "0.1.1",
39
- "@taskcast/postgres": "0.1.1",
40
- "@taskcast/redis": "0.1.1",
41
- "@taskcast/server": "0.1.1"
38
+ "@taskcast/redis": "0.2.0",
39
+ "@taskcast/postgres": "0.2.0",
40
+ "@taskcast/server": "0.2.0",
41
+ "@taskcast/core": "0.2.0",
42
+ "@taskcast/sqlite": "0.2.0"
42
43
  },
43
44
  "devDependencies": {
44
45
  "typescript": "^5.7.0"