@nbtca/prompt 1.0.8 → 1.0.13

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 (71) hide show
  1. package/README.md +16 -289
  2. package/dist/config/data.d.ts +1 -1
  3. package/dist/config/data.js +1 -1
  4. package/dist/config/data.js.map +1 -1
  5. package/dist/core/logo.d.ts.map +1 -1
  6. package/dist/core/logo.js +13 -2
  7. package/dist/core/logo.js.map +1 -1
  8. package/dist/core/menu.d.ts +5 -0
  9. package/dist/core/menu.d.ts.map +1 -1
  10. package/dist/core/menu.js +12 -5
  11. package/dist/core/menu.js.map +1 -1
  12. package/dist/core/ui.d.ts.map +1 -1
  13. package/dist/core/ui.js +5 -3
  14. package/dist/core/ui.js.map +1 -1
  15. package/dist/features/calendar.d.ts +13 -14
  16. package/dist/features/calendar.d.ts.map +1 -1
  17. package/dist/features/calendar.js +57 -59
  18. package/dist/features/calendar.js.map +1 -1
  19. package/dist/features/docs.d.ts.map +1 -1
  20. package/dist/features/docs.js +50 -47
  21. package/dist/features/docs.js.map +1 -1
  22. package/dist/features/repair.d.ts +4 -0
  23. package/dist/features/repair.d.ts.map +1 -1
  24. package/dist/features/repair.js +1 -1
  25. package/dist/features/repair.js.map +1 -1
  26. package/dist/features/website.d.ts +10 -0
  27. package/dist/features/website.d.ts.map +1 -1
  28. package/dist/features/website.js +14 -2
  29. package/dist/features/website.js.map +1 -1
  30. package/dist/i18n/index.d.ts +9 -0
  31. package/dist/i18n/index.d.ts.map +1 -1
  32. package/dist/i18n/index.js.map +1 -1
  33. package/dist/i18n/locales/en.json +10 -1
  34. package/dist/i18n/locales/zh.json +10 -1
  35. package/dist/index.d.ts +1 -2
  36. package/dist/index.d.ts.map +1 -1
  37. package/dist/index.js +133 -4
  38. package/dist/index.js.map +1 -1
  39. package/dist/main.d.ts +4 -1
  40. package/dist/main.d.ts.map +1 -1
  41. package/dist/main.js +7 -3
  42. package/dist/main.js.map +1 -1
  43. package/package.json +8 -2
  44. package/.github/workflows/ci.yml +0 -40
  45. package/.github/workflows/publish.yml +0 -59
  46. package/CHANGELOG.md +0 -125
  47. package/DEVELOPMENT.md +0 -258
  48. package/TERMINAL_UX.md +0 -184
  49. package/assets/Prompt_demo.gif +0 -0
  50. package/src/config/data.js +0 -484
  51. package/src/config/data.ts +0 -28
  52. package/src/config/theme.js +0 -138
  53. package/src/config/theme.ts +0 -26
  54. package/src/core/logo.ts +0 -189
  55. package/src/core/menu.ts +0 -213
  56. package/src/core/ui.ts +0 -89
  57. package/src/core/vim-keys.ts +0 -70
  58. package/src/features/calendar.ts +0 -161
  59. package/src/features/docs.ts +0 -588
  60. package/src/features/repair.ts +0 -36
  61. package/src/features/website.ts +0 -45
  62. package/src/i18n/index.ts +0 -236
  63. package/src/i18n/locales/en.json +0 -107
  64. package/src/i18n/locales/zh.json +0 -107
  65. package/src/index.ts +0 -9
  66. package/src/logo/ascii-logo.txt +0 -6
  67. package/src/logo/logo.txt +0 -2
  68. package/src/logo/printLogo.js +0 -26
  69. package/src/main.ts +0 -45
  70. package/src/types.ts +0 -51
  71. package/tsconfig.json +0 -53
package/dist/index.d.ts CHANGED
@@ -1,6 +1,5 @@
1
1
  /**
2
- * NBTCA Welcome Tool - Entry Point
3
- * 程序启动入口
2
+ * NBTCA Prompt entry point
4
3
  */
5
4
  export {};
6
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG"}
package/dist/index.js CHANGED
@@ -1,8 +1,137 @@
1
1
  /**
2
- * NBTCA Welcome Tool - Entry Point
3
- * 程序启动入口
2
+ * NBTCA Prompt entry point
4
3
  */
4
+ import chalk from 'chalk';
5
5
  import { main } from './main.js';
6
- // 启动主程序
7
- main();
6
+ import { runMenuAction } from './core/menu.js';
7
+ import { fetchEvents, renderEventsTable, serializeEvents } from './features/calendar.js';
8
+ import { REPAIR_URL } from './features/repair.js';
9
+ import { WEBSITE_URLS } from './features/website.js';
10
+ import { setLanguage, t } from './i18n/index.js';
11
+ const ACTION_ALIASES = {
12
+ events: 'events',
13
+ event: 'events',
14
+ repair: 'repair',
15
+ docs: 'docs',
16
+ doc: 'docs',
17
+ website: 'website',
18
+ web: 'website',
19
+ github: 'github',
20
+ gh: 'github',
21
+ roadmap: 'roadmap',
22
+ board: 'roadmap',
23
+ about: 'about'
24
+ };
25
+ const URL_ACTIONS = {
26
+ repair: REPAIR_URL,
27
+ website: WEBSITE_URLS.homepage,
28
+ github: WEBSITE_URLS.github,
29
+ roadmap: WEBSITE_URLS.roadmap
30
+ };
31
+ function parseArgs(argv) {
32
+ const flags = new Set();
33
+ const positionals = [];
34
+ for (const token of argv) {
35
+ if (token.startsWith('--')) {
36
+ flags.add(token);
37
+ }
38
+ else {
39
+ positionals.push(token);
40
+ }
41
+ }
42
+ return {
43
+ command: positionals[0]?.toLowerCase(),
44
+ arg: positionals[1],
45
+ flags
46
+ };
47
+ }
48
+ function printHelp() {
49
+ console.log(chalk.bold('NBTCA Prompt'));
50
+ console.log();
51
+ console.log('Usage:');
52
+ console.log(' nbtca Start interactive menu');
53
+ console.log(' nbtca <command> [flags] Run one command directly');
54
+ console.log(' nbtca lang <zh|en> Set language preference');
55
+ console.log();
56
+ console.log('Commands:');
57
+ console.log(' events | repair | docs | website | github | roadmap | about');
58
+ console.log();
59
+ console.log('Flags:');
60
+ console.log(' --help Show help');
61
+ console.log(' --open Open browser for URL commands');
62
+ console.log(' --json JSON output (supported by `events`)');
63
+ console.log(' --plain Disable color output');
64
+ console.log(' --no-logo Skip startup logo in menu mode');
65
+ console.log();
66
+ console.log('Examples:');
67
+ console.log(' nbtca events --json');
68
+ console.log(' nbtca roadmap');
69
+ console.log(' nbtca roadmap --open');
70
+ }
71
+ async function runEventsCommand(flags) {
72
+ const events = await fetchEvents();
73
+ if (flags.has('--json')) {
74
+ process.stdout.write(JSON.stringify(serializeEvents(events), null, 2) + '\n');
75
+ return;
76
+ }
77
+ const useColor = !flags.has('--plain') && !!process.stdout.isTTY;
78
+ console.log(renderEventsTable(events, { color: useColor }));
79
+ }
80
+ function maybeDisableColor(flags) {
81
+ if (flags.has('--plain')) {
82
+ process.env['NO_COLOR'] = '1';
83
+ }
84
+ }
85
+ async function runCommandMode(argv) {
86
+ const { command, arg, flags } = parseArgs(argv);
87
+ maybeDisableColor(flags);
88
+ if (flags.has('--help') || command === '--help' || command === '-h' || command === 'help') {
89
+ printHelp();
90
+ return;
91
+ }
92
+ if (!command) {
93
+ await main({ skipLogo: flags.has('--no-logo') });
94
+ return;
95
+ }
96
+ if (command === 'lang' || command === 'language') {
97
+ const language = (arg || '').toLowerCase();
98
+ if (language !== 'zh' && language !== 'en') {
99
+ console.error(chalk.red('Invalid language. Use `zh` or `en`.'));
100
+ process.exit(1);
101
+ }
102
+ setLanguage(language);
103
+ console.log(chalk.green(`✓ ${t().language.changed}`));
104
+ return;
105
+ }
106
+ const action = ACTION_ALIASES[command];
107
+ if (!action) {
108
+ console.error(chalk.red(`Unknown command: ${command}`));
109
+ console.error(chalk.dim('Run `nbtca --help` to see available commands.'));
110
+ process.exit(1);
111
+ }
112
+ if (action === 'events') {
113
+ await runEventsCommand(flags);
114
+ return;
115
+ }
116
+ const mappedUrl = URL_ACTIONS[action];
117
+ if (mappedUrl && !flags.has('--open')) {
118
+ process.stdout.write(mappedUrl + '\n');
119
+ return;
120
+ }
121
+ await runMenuAction(action);
122
+ }
123
+ runCommandMode(process.argv.slice(2)).catch((err) => {
124
+ if (err?.message?.includes('SIGINT') || err?.message?.includes('User force closed')) {
125
+ console.log();
126
+ console.log(chalk.dim(t().common.goodbye));
127
+ process.exit(0);
128
+ }
129
+ if (err?.message) {
130
+ console.error(err.message);
131
+ }
132
+ else {
133
+ console.error('Error occurred:', err);
134
+ }
135
+ process.exit(1);
136
+ });
8
137
  //# 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":"AAAA;;;GAGG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,QAAQ;AACR,IAAI,EAAE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/main.d.ts CHANGED
@@ -2,8 +2,11 @@
2
2
  * NBTCA Welcome Tool
3
3
  * Minimalist startup flow
4
4
  */
5
+ export interface MainOptions {
6
+ skipLogo?: boolean;
7
+ }
5
8
  /**
6
9
  * Main program entry point
7
10
  */
8
- export declare function main(): Promise<void>;
11
+ export declare function main(options?: MainOptions): Promise<void>;
9
12
  //# sourceMappingURL=main.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAUH;;GAEG;AACH,wBAAsB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CA4B1C"}
1
+ {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAUH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,wBAAsB,IAAI,CAAC,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAgCnE"}
package/dist/main.js CHANGED
@@ -12,14 +12,18 @@ import { t } from './i18n/index.js';
12
12
  /**
13
13
  * Main program entry point
14
14
  */
15
- export async function main() {
15
+ export async function main(options = {}) {
16
16
  try {
17
17
  // Enable Vim key bindings
18
18
  enableVimKeys();
19
19
  // Clear screen
20
- clearScreen();
20
+ if (process.stdout.isTTY) {
21
+ clearScreen();
22
+ }
21
23
  // Display logo (smart fallback)
22
- await printLogo();
24
+ if (!options.skipLogo) {
25
+ await printLogo();
26
+ }
23
27
  // Display version info
24
28
  printHeader(`v${APP_INFO.version}`);
25
29
  // Show main menu (loop)
package/dist/main.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,CAAC,EAAE,MAAM,iBAAiB,CAAC;AAEpC;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,IAAI;IACxB,IAAI,CAAC;QACH,0BAA0B;QAC1B,aAAa,EAAE,CAAC;QAEhB,eAAe;QACf,WAAW,EAAE,CAAC;QAEd,gCAAgC;QAChC,MAAM,SAAS,EAAE,CAAC;QAElB,uBAAuB;QACvB,WAAW,CAAC,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;QAEpC,wBAAwB;QACxB,MAAM,YAAY,EAAE,CAAC;IAEvB,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,qBAAqB;QACrB,IAAI,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;YAClF,OAAO,CAAC,GAAG,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;YAC3C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC;YACtC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,CAAC,EAAE,MAAM,iBAAiB,CAAC;AAMpC;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,UAAuB,EAAE;IAClD,IAAI,CAAC;QACH,0BAA0B;QAC1B,aAAa,EAAE,CAAC;QAEhB,eAAe;QACf,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YACzB,WAAW,EAAE,CAAC;QAChB,CAAC;QAED,gCAAgC;QAChC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;YACtB,MAAM,SAAS,EAAE,CAAC;QACpB,CAAC;QAED,uBAAuB;QACvB,WAAW,CAAC,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;QAEpC,wBAAwB;QACxB,MAAM,YAAY,EAAE,CAAC;IAEvB,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,qBAAqB;QACrB,IAAI,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;YAClF,OAAO,CAAC,GAAG,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;YAC3C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC;YACtC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,12 +1,18 @@
1
1
  {
2
2
  "name": "@nbtca/prompt",
3
- "version": "1.0.8",
3
+ "version": "1.0.13",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "bin": {
7
7
  "nbtca": "bin/nbtca-welcome.js",
8
8
  "nbtca-welcome": "bin/nbtca-welcome.js"
9
9
  },
10
+ "files": [
11
+ "dist",
12
+ "bin/nbtca-welcome.js",
13
+ "README.md",
14
+ "LICENSE"
15
+ ],
10
16
  "scripts": {
11
17
  "start": "node dist/index.js",
12
18
  "dev": "tsx src/index.ts",
@@ -49,7 +55,7 @@
49
55
  "typescript": "^5.3.3"
50
56
  },
51
57
  "engines": {
52
- "node": ">=16.0.0"
58
+ "node": ">=20.12.0"
53
59
  },
54
60
  "author": "m1ngsama <contact@m1ng.space>",
55
61
  "license": "MIT",
@@ -1,40 +0,0 @@
1
- name: CI for @nbtca/prompt
2
-
3
- on:
4
- push:
5
- branches: [main, feature/*]
6
- pull_request:
7
- branches: [main]
8
-
9
- jobs:
10
- build:
11
- runs-on: ubuntu-latest
12
-
13
- strategy:
14
- matrix:
15
- node-version: [18, 20]
16
-
17
- steps:
18
- - name: 🛎️ Checkout code
19
- uses: actions/checkout@v4
20
-
21
- - name: 🟢 Set up Node.js ${{ matrix.node-version }}
22
- uses: actions/setup-node@v4
23
- with:
24
- node-version: ${{ matrix.node-version }}
25
- cache: "npm"
26
-
27
- - name: 📦 Install dependencies
28
- run: npm ci
29
-
30
- - name: 🔨 Build TypeScript
31
- run: npm run build
32
-
33
- - name: ✅ Type check
34
- run: npx tsc --noEmit
35
-
36
- - name: 📋 Verify build artifacts
37
- run: |
38
- test -d dist || (echo "dist directory not found" && exit 1)
39
- test -f dist/index.js || (echo "dist/index.js not found" && exit 1)
40
- echo "Build artifacts verified successfully"
@@ -1,59 +0,0 @@
1
- name: Publish to npm
2
-
3
- on:
4
- push:
5
- tags:
6
- - "v*"
7
-
8
- jobs:
9
- publish:
10
- runs-on: ubuntu-latest
11
- permissions:
12
- contents: read
13
- id-token: write
14
-
15
- steps:
16
- - name: 🛎️ Checkout code
17
- uses: actions/checkout@v4
18
-
19
- - name: 🟢 Set up Node.js
20
- uses: actions/setup-node@v4
21
- with:
22
- node-version: "20"
23
- registry-url: "https://registry.npmjs.org/"
24
- cache: "npm"
25
-
26
- - name: 📦 Install dependencies
27
- run: npm ci
28
-
29
- - name: 🔨 Build TypeScript
30
- run: npm run build
31
-
32
- - name: ✅ Verify build
33
- run: |
34
- test -d dist || (echo "dist directory not found" && exit 1)
35
- test -f dist/index.js || (echo "dist/index.js not found" && exit 1)
36
- echo "Build artifacts verified"
37
-
38
- - name: 📋 Check package version
39
- id: version
40
- run: |
41
- TAG_VERSION=${GITHUB_REF#refs/tags/v}
42
- PKG_VERSION=$(node -p "require('./package.json').version")
43
- echo "Tag version: $TAG_VERSION"
44
- echo "Package version: $PKG_VERSION"
45
- if [ "$TAG_VERSION" != "$PKG_VERSION" ]; then
46
- echo "Version mismatch! Tag: v$TAG_VERSION, package.json: v$PKG_VERSION"
47
- exit 1
48
- fi
49
- echo "version=$PKG_VERSION" >> $GITHUB_OUTPUT
50
-
51
- - name: 🚀 Publish to npm
52
- run: npm publish --access public --provenance
53
- env:
54
- NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
55
-
56
- - name: ✅ Success notification
57
- run: |
58
- echo "🎉 Successfully published @nbtca/prompt@${{ steps.version.outputs.version }} to npm"
59
-
package/CHANGELOG.md DELETED
@@ -1,125 +0,0 @@
1
- # CHANGELOG
2
-
3
- ## [1.0.5] - 2025-12-10
4
-
5
- ### Fixed
6
- - **Knowledge Base 403 Error**: Resolved GitHub API rate limiting issue that caused 403 errors when browsing documentation
7
- - Added GitHub token authentication support via `GITHUB_TOKEN` or `GH_TOKEN` environment variables
8
- - Improved error messages with rate limit information and reset time
9
- - Increased rate limit from 60 to 5000 requests per hour when using a token
10
-
11
- ### Added
12
- - **Pager-Style Document Viewer**: Documents now open in a pager (similar to vim/journalctl/less)
13
- - Natural scrolling navigation with arrow keys, Space, j/k (vim-style), and q to quit
14
- - Content doesn't flood the terminal anymore
15
- - Better reading experience for long documents
16
- - Automatic fallback to direct output if pager is unavailable
17
- - **Re-read Document Option**: Added ability to re-read a document after viewing without going back to the list
18
- - **Environment Variable Support**:
19
- - `GITHUB_TOKEN` or `GH_TOKEN` for GitHub API authentication
20
- - `PAGER` for custom pager selection (defaults to `less`)
21
-
22
- ### Improved
23
- - Enhanced error handling with detailed rate limit diagnostics
24
- - Better user feedback when rate limits are reached
25
- - Clearer instructions for resolving authentication issues
26
-
27
- ### Technical Details
28
- - Added `displayInPager()` function for spawning system pager processes
29
- - Enhanced `fetchGitHubDirectory()` with conditional token authentication
30
- - Updated documentation viewer workflow for better UX
31
-
32
- ## [1.0.4] - 2025-12-10
33
-
34
- ### Enhanced
35
- - **Smooth Slogan Animation**: Implemented true color interpolation for buttery smooth gradient animation
36
- - Increased frame rate from 24 to 60 FPS for ultra-smooth motion
37
- - Changed easing from cubic to sine wave for more natural transitions
38
- - Dynamically generate gradients per frame instead of using pre-defined set
39
- - Eliminates staggered/jumping effect in the slogan text animation
40
-
41
- ### Technical Details
42
- - Added `hexToRgb()`, `rgbToHex()`, and `interpolateColor()` functions for mathematical color blending
43
- - Implemented `easeInOutSine()` easing function for smooth acceleration/deceleration
44
- - Each frame now uses unique, mathematically interpolated colors
45
-
46
- ## [1.0.3] - 2025-11-27
47
-
48
- ### Changed
49
- - Version alignment and bug fixes
50
-
51
- ## [1.0.2] - 2025-11-27
52
-
53
- ### Added
54
- - **Terminal Documentation Viewer**: Browse and read Markdown documentation from nbtca/documents repository directly in terminal
55
- - GitHub API integration for fetching directory structure and file contents
56
- - Recursive directory navigation with [DIR] and [MD] indicators
57
- - VitePress syntax cleaning (frontmatter, containers, [[toc]], HTML comments)
58
- - Terminal Markdown rendering using marked-terminal
59
- - Browser fallback on network errors or user preference
60
- - Retry mechanism for failed network requests
61
-
62
- ### Changed
63
- - **ASCII-Only Interface**: Removed all emoji icons for maximum terminal compatibility
64
- - Replaced emoji with ASCII symbols: [*], [?], [x], [..], [DIR], [MD], [ <], [ ^], [ *]
65
- - Works on all terminal emulators, SSH sessions, tmux, and legacy systems
66
- - Follows Unix/Linux terminal conventions
67
- - Professional, minimalist design
68
-
69
- ### Improved
70
- - **Terminal UX Enhancements**:
71
- - Added keybinding hints to main menu: "Navigation: j/k or ↑/↓ | Jump: g/G | Quit: q or Ctrl+C"
72
- - Added ESC key infrastructure for future back navigation and operation cancellation
73
- - Standardized navigation symbols across all menus
74
- - Better vim-keys.ts documentation with clearer comments
75
-
76
- ### Fixed
77
- - **Development Workflow**: Fixed `pnpm run dev` auto-restart issue
78
- - Split dev command: `dev` (no watch, for interactive CLI) and `dev:watch` (with watch mode)
79
- - Proper exit behavior for interactive CLI testing
80
-
81
- ### Documentation
82
- - Added DEVELOPMENT.md: Comprehensive development guide with workflows, testing methods, and common issues
83
- - Added TERMINAL_UX.md: Terminal UX improvements and compatibility documentation
84
- - Updated README.md: Professional, concise documentation without decorative elements
85
-
86
- ### Technical Details
87
- - Enhanced docs.ts with GitHub repository integration
88
- - Improved menu.ts with ASCII symbols and keybinding hints
89
- - Enhanced vim-keys.ts with ESC support and better documentation
90
- - Better package.json scripts for development workflow
91
-
92
- ## [1.0.1] - 2025-11-21
93
-
94
- ### Added
95
- - New English tagline with smooth blue gradient animation
96
- - Full Vim keybindings support (j/k/g/G/q)
97
- - Minimalist UI design inspired by Claude Code CLI
98
-
99
- ### Improved
100
- - Smoother gradient animation (24 frames, 1.2s duration)
101
- - Removed keyboard instruction text for cleaner interface
102
- - Blue color scheme throughout (deep blue → sky blue → cyan)
103
-
104
- ### Changed
105
- - q key now exits the application
106
- - Removed Chinese tagline
107
- - Simplified menu layout
108
-
109
- ### Removed
110
- - Unused DATA_MANAGEMENT.md documentation
111
-
112
- ### Dependencies
113
- - Updated gradient-string to ^3.0.0
114
- - Updated @inquirer/prompts to ^8.0.3
115
-
116
- ## [1.0.0] - 2025-11-21
117
-
118
- ### Added
119
- - Initial release of NBTCA Prompt CLI tool
120
- - Interactive terminal menu system
121
- - Event calendar integration
122
- - Repair service information
123
- - Knowledge base access
124
- - Quick links to official website and GitHub
125
- - About section with project information