remnote-mcp-server 0.13.1 → 0.14.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 (51) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/README.md +30 -21
  3. package/dist/remnote-cli/cli.d.ts +3 -0
  4. package/dist/remnote-cli/cli.js +37 -0
  5. package/dist/remnote-cli/cli.js.map +1 -0
  6. package/dist/remnote-cli/client/command-client.d.ts +3 -0
  7. package/dist/remnote-cli/client/command-client.js +9 -0
  8. package/dist/remnote-cli/client/command-client.js.map +1 -0
  9. package/dist/remnote-cli/client/mcp-server-client.d.ts +18 -0
  10. package/dist/remnote-cli/client/mcp-server-client.js +116 -0
  11. package/dist/remnote-cli/client/mcp-server-client.js.map +1 -0
  12. package/dist/remnote-cli/commands/arg-utils.d.ts +33 -0
  13. package/dist/remnote-cli/commands/arg-utils.js +89 -0
  14. package/dist/remnote-cli/commands/arg-utils.js.map +1 -0
  15. package/dist/remnote-cli/commands/content-input.d.ts +31 -0
  16. package/dist/remnote-cli/commands/content-input.js +81 -0
  17. package/dist/remnote-cli/commands/content-input.js.map +1 -0
  18. package/dist/remnote-cli/commands/create.d.ts +2 -0
  19. package/dist/remnote-cli/commands/create.js +61 -0
  20. package/dist/remnote-cli/commands/create.js.map +1 -0
  21. package/dist/remnote-cli/commands/journal.d.ts +2 -0
  22. package/dist/remnote-cli/commands/journal.js +52 -0
  23. package/dist/remnote-cli/commands/journal.js.map +1 -0
  24. package/dist/remnote-cli/commands/read.d.ts +2 -0
  25. package/dist/remnote-cli/commands/read.js +74 -0
  26. package/dist/remnote-cli/commands/read.js.map +1 -0
  27. package/dist/remnote-cli/commands/search.d.ts +3 -0
  28. package/dist/remnote-cli/commands/search.js +107 -0
  29. package/dist/remnote-cli/commands/search.js.map +1 -0
  30. package/dist/remnote-cli/commands/status.d.ts +2 -0
  31. package/dist/remnote-cli/commands/status.js +41 -0
  32. package/dist/remnote-cli/commands/status.js.map +1 -0
  33. package/dist/remnote-cli/commands/table.d.ts +2 -0
  34. package/dist/remnote-cli/commands/table.js +79 -0
  35. package/dist/remnote-cli/commands/table.js.map +1 -0
  36. package/dist/remnote-cli/commands/update.d.ts +2 -0
  37. package/dist/remnote-cli/commands/update.js +62 -0
  38. package/dist/remnote-cli/commands/update.js.map +1 -0
  39. package/dist/remnote-cli/config.d.ts +9 -0
  40. package/dist/remnote-cli/config.js +10 -0
  41. package/dist/remnote-cli/config.js.map +1 -0
  42. package/dist/remnote-cli/index.d.ts +2 -0
  43. package/dist/remnote-cli/index.js +4 -0
  44. package/dist/remnote-cli/index.js.map +1 -0
  45. package/dist/remnote-cli/output/formatter.d.ts +9 -0
  46. package/dist/remnote-cli/output/formatter.js +28 -0
  47. package/dist/remnote-cli/output/formatter.js.map +1 -0
  48. package/dist/remnote-cli/version-compat.d.ts +7 -0
  49. package/dist/remnote-cli/version-compat.js +28 -0
  50. package/dist/remnote-cli/version-compat.js.map +1 -0
  51. package/package.json +7 -4
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Format a successful result for stdout.
3
+ */
4
+ export function formatResult(data, format, textFormatter) {
5
+ if (format === 'json') {
6
+ return JSON.stringify(data, null, 2);
7
+ }
8
+ if (textFormatter) {
9
+ return textFormatter(data);
10
+ }
11
+ // Fallback: simple key-value display
12
+ if (data && typeof data === 'object') {
13
+ return Object.entries(data)
14
+ .map(([k, v]) => `${k}: ${typeof v === 'object' ? JSON.stringify(v) : String(v)}`)
15
+ .join('\n');
16
+ }
17
+ return String(data);
18
+ }
19
+ /**
20
+ * Format an error for stderr/stdout.
21
+ */
22
+ export function formatError(message, format, code) {
23
+ if (format === 'json') {
24
+ return JSON.stringify({ error: message, ...(code !== undefined && { code }) }, null, 2);
25
+ }
26
+ return `Error: ${message}`;
27
+ }
28
+ //# sourceMappingURL=formatter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formatter.js","sourceRoot":"","sources":["../../../src/remnote-cli/output/formatter.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,UAAU,YAAY,CAC1B,IAAa,EACb,MAAoB,EACpB,aAAyC;IAEzC,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QACtB,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACvC,CAAC;IACD,IAAI,aAAa,EAAE,CAAC;QAClB,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IACD,qCAAqC;IACrC,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QACrC,OAAO,MAAM,CAAC,OAAO,CAAC,IAA+B,CAAC;aACnD,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;aACjF,IAAI,CAAC,IAAI,CAAC,CAAC;IAChB,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;AACtB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,OAAe,EAAE,MAAoB,EAAE,IAAa;IAC9E,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QACtB,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,CAAC,IAAI,KAAK,SAAS,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAC1F,CAAC;IACD,OAAO,UAAU,OAAO,EAAE,CAAC;AAC7B,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Version compatibility check for 0.x semver.
3
+ *
4
+ * During 0.x development, minor version bumps may contain breaking changes.
5
+ * Compatible iff major.minor match (patch differences are OK).
6
+ */
7
+ export declare function checkVersionCompatibility(localVersion: string, bridgeVersion: string, localLabel?: string, bridgeLabel?: string): string | null;
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Version compatibility check for 0.x semver.
3
+ *
4
+ * During 0.x development, minor version bumps may contain breaking changes.
5
+ * Compatible iff major.minor match (patch differences are OK).
6
+ */
7
+ export function checkVersionCompatibility(localVersion, bridgeVersion, localLabel = 'CLI', bridgeLabel = 'bridge') {
8
+ const local = parseVersion(localVersion);
9
+ const bridge = parseVersion(bridgeVersion);
10
+ if (!local || !bridge) {
11
+ return `Cannot parse versions: local=${localVersion}, bridge=${bridgeVersion}`;
12
+ }
13
+ if (local.major !== bridge.major || local.minor !== bridge.minor) {
14
+ return `Version mismatch: ${localLabel} v${localVersion} ↔ ${bridgeLabel} v${bridgeVersion}. Minor version must match during 0.x development. See compatibility guide.`;
15
+ }
16
+ return null;
17
+ }
18
+ function parseVersion(version) {
19
+ const match = version.match(/^(\d+)\.(\d+)\.(\d+)/);
20
+ if (!match)
21
+ return null;
22
+ return {
23
+ major: parseInt(match[1], 10),
24
+ minor: parseInt(match[2], 10),
25
+ patch: parseInt(match[3], 10),
26
+ };
27
+ }
28
+ //# sourceMappingURL=version-compat.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version-compat.js","sourceRoot":"","sources":["../../src/remnote-cli/version-compat.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,UAAU,yBAAyB,CACvC,YAAoB,EACpB,aAAqB,EACrB,UAAU,GAAG,KAAK,EAClB,WAAW,GAAG,QAAQ;IAEtB,MAAM,KAAK,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC;IACzC,MAAM,MAAM,GAAG,YAAY,CAAC,aAAa,CAAC,CAAC;IAE3C,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;QACtB,OAAO,gCAAgC,YAAY,YAAY,aAAa,EAAE,CAAC;IACjF,CAAC;IAED,IAAI,KAAK,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,EAAE,CAAC;QACjE,OAAO,qBAAqB,UAAU,KAAK,YAAY,MAAM,WAAW,KAAK,aAAa,6EAA6E,CAAC;IAC1K,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,YAAY,CAAC,OAAe;IACnC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;IACpD,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,OAAO;QACL,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAC7B,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAC7B,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;KAC9B,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,14 +1,15 @@
1
1
  {
2
2
  "name": "remnote-mcp-server",
3
- "version": "0.13.1",
3
+ "version": "0.14.0",
4
4
  "description": "MCP server bridge for RemNote knowledge base",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
7
7
  "bin": {
8
- "remnote-mcp-server": "dist/index.js"
8
+ "remnote-mcp-server": "dist/index.js",
9
+ "remnote-cli": "dist/remnote-cli/index.js"
9
10
  },
10
11
  "scripts": {
11
- "build": "tsc",
12
+ "build": "tsc && node scripts/chmod-bins.mjs",
12
13
  "dev": "tsx watch src/index.ts",
13
14
  "start": "node dist/index.js",
14
15
  "typecheck": "tsc --noEmit",
@@ -16,7 +17,9 @@
16
17
  "test": "vitest run",
17
18
  "test:watch": "vitest",
18
19
  "test:coverage": "vitest run --coverage",
19
- "test:integration": "tsx test/integration/run-integration.ts",
20
+ "test:integration": "./run-integration-test.sh",
21
+ "test:integration:mcp": "tsx test/integration/run-integration.ts",
22
+ "test:integration:cli": "tsx test/integration/cli/run-integration.ts",
20
23
  "test:ui": "vitest --ui",
21
24
  "lint": "eslint \"src/**/*.ts\" \"test/**/*.ts\"",
22
25
  "lint:fix": "eslint \"src/**/*.ts\" \"test/**/*.ts\" --fix",