@dizzlkheinz/ynab-mcpb 0.12.2 → 0.13.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 (63) hide show
  1. package/.github/workflows/ci-tests.yml +6 -2
  2. package/CHANGELOG.md +14 -1
  3. package/NUL +0 -1
  4. package/README.md +36 -10
  5. package/dist/bundle/index.cjs +30 -30
  6. package/dist/index.js +9 -20
  7. package/dist/server/YNABMCPServer.d.ts +2 -1
  8. package/dist/server/YNABMCPServer.js +61 -27
  9. package/dist/server/cacheKeys.d.ts +8 -0
  10. package/dist/server/cacheKeys.js +8 -0
  11. package/dist/server/config.d.ts +22 -3
  12. package/dist/server/config.js +16 -17
  13. package/dist/server/securityMiddleware.js +3 -6
  14. package/dist/server/toolRegistry.js +8 -10
  15. package/dist/tools/accountTools.js +4 -3
  16. package/dist/tools/categoryTools.js +8 -7
  17. package/dist/tools/monthTools.js +2 -1
  18. package/dist/tools/payeeTools.js +2 -1
  19. package/dist/tools/reconciliation/executor.js +85 -4
  20. package/dist/tools/transactionTools.d.ts +3 -17
  21. package/dist/tools/transactionTools.js +5 -17
  22. package/dist/utils/baseError.d.ts +3 -0
  23. package/dist/utils/baseError.js +7 -0
  24. package/dist/utils/errors.d.ts +13 -0
  25. package/dist/utils/errors.js +15 -0
  26. package/dist/utils/validationError.d.ts +3 -0
  27. package/dist/utils/validationError.js +3 -0
  28. package/docs/plans/2025-11-20-reloadable-config-token-validation.md +93 -0
  29. package/docs/plans/2025-11-21-fix-transaction-cached-property.md +362 -0
  30. package/docs/plans/2025-11-21-reconciliation-error-handling.md +90 -0
  31. package/package.json +3 -2
  32. package/scripts/run-throttled-integration-tests.js +9 -3
  33. package/src/__tests__/performance.test.ts +12 -5
  34. package/src/__tests__/testUtils.ts +62 -5
  35. package/src/__tests__/workflows.e2e.test.ts +33 -0
  36. package/src/index.ts +8 -31
  37. package/src/server/YNABMCPServer.ts +81 -42
  38. package/src/server/__tests__/YNABMCPServer.integration.test.ts +10 -12
  39. package/src/server/__tests__/YNABMCPServer.test.ts +27 -15
  40. package/src/server/__tests__/config.test.ts +76 -152
  41. package/src/server/__tests__/server-startup.integration.test.ts +42 -14
  42. package/src/server/__tests__/toolRegistry.test.ts +1 -1
  43. package/src/server/cacheKeys.ts +8 -0
  44. package/src/server/config.ts +20 -38
  45. package/src/server/securityMiddleware.ts +3 -7
  46. package/src/server/toolRegistry.ts +14 -10
  47. package/src/tools/__tests__/categoryTools.test.ts +37 -19
  48. package/src/tools/__tests__/transactionTools.test.ts +58 -2
  49. package/src/tools/accountTools.ts +8 -3
  50. package/src/tools/categoryTools.ts +12 -7
  51. package/src/tools/monthTools.ts +7 -1
  52. package/src/tools/payeeTools.ts +7 -1
  53. package/src/tools/reconciliation/__tests__/executor.integration.test.ts +25 -5
  54. package/src/tools/reconciliation/__tests__/executor.test.ts +46 -0
  55. package/src/tools/reconciliation/executor.ts +109 -6
  56. package/src/tools/schemas/outputs/utilityOutputs.ts +1 -1
  57. package/src/tools/transactionTools.ts +7 -18
  58. package/src/utils/baseError.ts +7 -0
  59. package/src/utils/errors.ts +21 -0
  60. package/src/utils/validationError.ts +3 -0
  61. package/temp-recon.ts +126 -0
  62. package/test_mcp_tools.mjs +75 -0
  63. package/ADOS-2-Module-1-Complete-Manual.md +0 -757
@@ -37,5 +37,9 @@ jobs:
37
37
  cache: npm
38
38
  - name: Install dependencies
39
39
  run: npm ci
40
- - name: Run core integration tests
41
- run: npm run test:integration:core
40
+ - name: Run core integration tests (throttled)
41
+ # Integration tests with real YNAB API may hit rate limits (200/hour)
42
+ # causing 60-minute waits. Tests provide visibility but don't block merges.
43
+ continue-on-error: true
44
+ run: npm run test:integration:full
45
+ timeout-minutes: 90
package/CHANGELOG.md CHANGED
@@ -7,12 +7,25 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.13.1] - 2025-11-21
11
+
12
+ ### Fixed
13
+
14
+ - Fixed missing `cached` property in large transaction list responses (>90KB)
15
+ - Large response path now includes `cached` and `cache_info` properties
16
+ - Maintains consistency with normal response path
17
+ - Resolves integration test failures when accounts have many transactions
18
+ - Fixed TypeScript strict mode error in testUtils (TS4111)
19
+ - Properties from index signatures now use bracket notation
20
+
21
+ ## [0.13.0] - 2025-11-20
22
+
10
23
  ### Changed
11
24
 
12
25
  - **Default Build to Production** - All builds now use minified production bundle
13
26
  - `npm run build` now aliases `build:prod` (was dev build)
14
27
  - `prepare` hook uses production build for consistent npm distribution
15
- - Bundle size reduced from 2.35 MB 1.28 MB (~45% smaller)
28
+ - Bundle size reduced from 2.35 MB to 1.28 MB (~45% smaller)
16
29
  - Use `npm run build:dev` if you need sourcemaps for debugging
17
30
  - **Integrated Linting and Formatting** - Code quality checks now run automatically
18
31
  - `npm run lint` now runs both ESLint and Prettier checks
package/NUL CHANGED
@@ -1 +0,0 @@
1
- ls: cannot access 'dist/*.dxt': No such file or directory
package/README.md CHANGED
@@ -180,20 +180,46 @@ For the complete list with technical details, see the [API Reference](docs/refer
180
180
 
181
181
  Want to contribute or build from source?
182
182
 
183
+ ### Development Setup
184
+
185
+ 1. **Clone the repository:**
186
+
187
+ ```bash
188
+ git clone https://github.com/dizzlkheinz/ynab-mcpb.git
189
+ cd ynab-mcpb
190
+ ```
191
+
192
+ 2. **Install dependencies:**
193
+
194
+ ```bash
195
+ npm install
196
+ ```
197
+
198
+ 3. **Create your environment file:**
199
+ Copy the example environment file to a new `.env` file:
200
+
201
+ ```bash
202
+ cp .env.example .env
203
+ ```
204
+
205
+ Open the `.env` file and add your YNAB Personal Access Token:
206
+
207
+ ```
208
+ YNAB_ACCESS_TOKEN="your-token-here"
209
+ ```
210
+
211
+ 4. **Build and test the project:**
212
+ ```bash
213
+ npm run build
214
+ npm test
215
+ ```
216
+
217
+ ### Additional Resources
218
+
183
219
  - **[Development Guide](docs/guides/DEVELOPMENT.md)** - Setup and best practices
184
220
  - **[Architecture Overview](docs/guides/ARCHITECTURE.md)** - How the code is organized
185
221
  - **[Testing Guide](docs/guides/TESTING.md)** - Running and writing tests
186
222
 
187
- Quick start for development:
188
-
189
- ```bash
190
- git clone https://github.com/dizzlkheinz/ynab-mcpb.git
191
- cd ynab-mcpb
192
- npm install
193
- npm run build
194
- npm test
195
- ```
196
-
197
223
  ## Security & Privacy
198
224
 
199
225
  Your YNAB access token is stored securely and never logged. All communication with YNAB's API uses HTTPS, and the server validates all inputs to prevent errors and security issues.