@magic-ingredients/tiny-brain-local 0.5.1 → 0.6.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 (88) hide show
  1. package/README.md +202 -23
  2. package/dist/cli/cli-factory.d.ts +3 -0
  3. package/dist/cli/cli-factory.d.ts.map +1 -0
  4. package/dist/cli/cli-factory.js +113 -0
  5. package/dist/cli/cli-factory.js.map +1 -0
  6. package/dist/cli/commands/install.command.d.ts +23 -0
  7. package/dist/cli/commands/install.command.d.ts.map +1 -0
  8. package/dist/cli/commands/install.command.js +189 -0
  9. package/dist/cli/commands/install.command.js.map +1 -0
  10. package/dist/cli/commands/list.command.d.ts +15 -0
  11. package/dist/cli/commands/list.command.d.ts.map +1 -0
  12. package/dist/cli/commands/list.command.js +90 -0
  13. package/dist/cli/commands/list.command.js.map +1 -0
  14. package/dist/cli/commands/status.command.d.ts +19 -0
  15. package/dist/cli/commands/status.command.d.ts.map +1 -0
  16. package/dist/cli/commands/status.command.js +104 -0
  17. package/dist/cli/commands/status.command.js.map +1 -0
  18. package/dist/cli/commands/uninstall.command.d.ts +23 -0
  19. package/dist/cli/commands/uninstall.command.d.ts.map +1 -0
  20. package/dist/cli/commands/uninstall.command.js +176 -0
  21. package/dist/cli/commands/uninstall.command.js.map +1 -0
  22. package/dist/cli/installers/base-installer.d.ts +20 -0
  23. package/dist/cli/installers/base-installer.d.ts.map +1 -0
  24. package/dist/cli/installers/base-installer.js +3 -0
  25. package/dist/cli/installers/base-installer.js.map +1 -0
  26. package/dist/cli/installers/chatgpt-installer.d.ts +18 -0
  27. package/dist/cli/installers/chatgpt-installer.d.ts.map +1 -0
  28. package/dist/cli/installers/chatgpt-installer.js +45 -0
  29. package/dist/cli/installers/chatgpt-installer.js.map +1 -0
  30. package/dist/cli/installers/claude-code-installer.d.ts +23 -0
  31. package/dist/cli/installers/claude-code-installer.d.ts.map +1 -0
  32. package/dist/cli/installers/claude-code-installer.js +106 -0
  33. package/dist/cli/installers/claude-code-installer.js.map +1 -0
  34. package/dist/cli/installers/claude-desktop-installer.d.ts +18 -0
  35. package/dist/cli/installers/claude-desktop-installer.d.ts.map +1 -0
  36. package/dist/cli/installers/claude-desktop-installer.js +48 -0
  37. package/dist/cli/installers/claude-desktop-installer.js.map +1 -0
  38. package/dist/cli/installers/cursor-installer.d.ts +18 -0
  39. package/dist/cli/installers/cursor-installer.d.ts.map +1 -0
  40. package/dist/cli/installers/cursor-installer.js +45 -0
  41. package/dist/cli/installers/cursor-installer.js.map +1 -0
  42. package/dist/cli/installers/installer-factory.d.ts +30 -0
  43. package/dist/cli/installers/installer-factory.d.ts.map +1 -0
  44. package/dist/cli/installers/installer-factory.js +89 -0
  45. package/dist/cli/installers/installer-factory.js.map +1 -0
  46. package/dist/cli/utils/node-resolver.d.ts +53 -0
  47. package/dist/cli/utils/node-resolver.d.ts.map +1 -0
  48. package/dist/cli/utils/node-resolver.js +200 -0
  49. package/dist/cli/utils/node-resolver.js.map +1 -0
  50. package/dist/cli/utils/package-locator.d.ts +9 -0
  51. package/dist/cli/utils/package-locator.d.ts.map +1 -0
  52. package/dist/cli/utils/package-locator.js +81 -0
  53. package/dist/cli/utils/package-locator.js.map +1 -0
  54. package/dist/cli.d.ts +3 -0
  55. package/dist/cli.d.ts.map +1 -0
  56. package/dist/cli.js +27 -0
  57. package/dist/cli.js.map +1 -0
  58. package/dist/prompts/prompt-registry.js +6 -6
  59. package/dist/prompts/prompt-registry.js.map +1 -1
  60. package/dist/prompts/rules/rules.prompt.d.ts +32 -0
  61. package/dist/prompts/rules/rules.prompt.d.ts.map +1 -0
  62. package/dist/prompts/{memory/memory.prompt.js → rules/rules.prompt.js} +64 -58
  63. package/dist/prompts/rules/rules.prompt.js.map +1 -0
  64. package/dist/storage/platform-config-adapter.d.ts +42 -0
  65. package/dist/storage/platform-config-adapter.d.ts.map +1 -0
  66. package/dist/storage/platform-config-adapter.js +128 -0
  67. package/dist/storage/platform-config-adapter.js.map +1 -0
  68. package/dist/storage/platform-path-builder.d.ts +32 -0
  69. package/dist/storage/platform-path-builder.d.ts.map +1 -0
  70. package/dist/storage/platform-path-builder.js +93 -0
  71. package/dist/storage/platform-path-builder.js.map +1 -0
  72. package/dist/tools/persona/as.tool.d.ts +4 -4
  73. package/dist/tools/persona/as.tool.d.ts.map +1 -1
  74. package/dist/tools/persona/as.tool.js +150 -117
  75. package/dist/tools/persona/as.tool.js.map +1 -1
  76. package/dist/tools/{memory/memory.tool.d.ts → rules/rules.tool.d.ts} +5 -5
  77. package/dist/tools/rules/rules.tool.d.ts.map +1 -0
  78. package/dist/tools/rules/rules.tool.js +133 -0
  79. package/dist/tools/rules/rules.tool.js.map +1 -0
  80. package/dist/tools/tool-registry.js +4 -4
  81. package/dist/tools/tool-registry.js.map +1 -1
  82. package/package.json +12 -2
  83. package/dist/prompts/memory/memory.prompt.d.ts +0 -32
  84. package/dist/prompts/memory/memory.prompt.d.ts.map +0 -1
  85. package/dist/prompts/memory/memory.prompt.js.map +0 -1
  86. package/dist/tools/memory/memory.tool.d.ts.map +0 -1
  87. package/dist/tools/memory/memory.tool.js +0 -110
  88. package/dist/tools/memory/memory.tool.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-resolver.js","sourceRoot":"","sources":["../../../src/cli/utils/node-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,IAAI,CAAC;AACpC,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAE7B,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;AAmBlC,MAAM,OAAO,YAAY;IACvB;;OAEG;IACH,KAAK,CAAC,eAAe,CAAC,QAAgB;QACpC,QAAQ,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC;YAC/B,KAAK,gBAAgB;gBACnB,OAAO,MAAM,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC5C,KAAK,aAAa;gBAChB,OAAO,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACzC,KAAK,QAAQ;gBACX,OAAO,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;YACrC;gBACE,OAAO,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QACvC,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,qBAAqB;QACjC,MAAM,SAAS,GAAG,IAAI,CAAC,yBAAyB,EAAE,CAAC;QAEnD,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,IAAI,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACpC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;gBAC5D,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;oBACrB,OAAO;wBACL,OAAO,EAAE,QAAQ;wBACjB,OAAO,EAAE,UAAU,CAAC,OAAO,IAAI,SAAS;wBACxC,OAAO,EAAE,IAAI;qBACd,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QAED,0BAA0B;QAC1B,OAAO,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IACrC,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,kBAAkB;QAC9B,mDAAmD;QACnD,IAAI,CAAC;YACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,oBAAoB,CAAC,CAAC;YACzD,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;YAE/B,IAAI,QAAQ,IAAI,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAChD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;gBAC5D,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;oBACrB,OAAO;wBACL,OAAO,EAAE,QAAQ;wBACjB,OAAO,EAAE,UAAU,CAAC,OAAO,IAAI,SAAS;wBACxC,OAAO,EAAE,IAAI;qBACd,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,0DAA0D;QAC5D,CAAC;QAED,0BAA0B;QAC1B,OAAO,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IACrC,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,cAAc;QAC1B,oCAAoC;QACpC,kEAAkE;QAClE,OAAO,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IACrC,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,cAAc;QAC1B,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;QAE1D,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;YACrB,OAAO;gBACL,OAAO,EAAE,MAAM;gBACf,OAAO,EAAE,UAAU,CAAC,OAAO,IAAI,SAAS;gBACxC,OAAO,EAAE,KAAK;aACf,CAAC;QACJ,CAAC;QAED,yBAAyB;QACzB,OAAO;YACL,OAAO,EAAE,MAAM;YACf,OAAO,EAAE,SAAS;YAClB,OAAO,EAAE,KAAK;SACf,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,yBAAyB;QAC/B,MAAM,QAAQ,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC;QAE/B,QAAQ,QAAQ,EAAE,CAAC;YACjB,KAAK,QAAQ;gBACX,OAAO;oBACL,8CAA8C;oBAC9C,2GAA2G;oBAC3G,sDAAsD;oBACtD,oEAAoE;iBACrE,CAAC;YAEJ,KAAK,OAAO,CAAC,CAAC,CAAC;gBACb,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,mBAAmB,CAAC;gBACrE,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;gBAE7F,OAAO;oBACL,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU,CAAC;oBACjE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,CAAC;oBAC1D,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU,CAAC;oBACjE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,CAAC;iBAC3D,CAAC;YACJ,CAAC;YAED,KAAK,OAAO;gBACV,OAAO;oBACL,gCAAgC;oBAChC,4BAA4B;oBAC5B,sBAAsB;oBACtB,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,CAAC;oBAChF,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,CAAC;iBAC1E,CAAC;YAEJ;gBACE,OAAO,EAAE,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,mBAAmB,CAAC,QAAgB;QACxC,IAAI,CAAC;YACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,IAAI,QAAQ,aAAa,CAAC,CAAC;YAC9D,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;YAE9B,wBAAwB;YACxB,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAC3C,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,OAAO;oBACL,KAAK,EAAE,KAAK;oBACZ,MAAM,EAAE,iCAAiC;iBAC1C,CAAC;YACJ,CAAC;YAED,MAAM,KAAK,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;YAEtC,IAAI,KAAK,IAAI,EAAE,EAAE,CAAC;gBAChB,OAAO;oBACL,KAAK,EAAE,IAAI;oBACX,OAAO;iBACR,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,OAAO;oBACL,KAAK,EAAE,KAAK;oBACZ,OAAO;oBACP,MAAM,EAAE,oDAAoD,OAAO,GAAG;iBACvE,CAAC;YACJ,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,KAAK,EAAE,KAAK;gBACZ,MAAM,EAAE,wCAAwC,KAAK,EAAE;aACxD,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,iBAAiB,CAAC,QAAgB,EAAE,UAAkB;QAC1D,IAAI,CAAC;YACH,yCAAyC;YACzC,mEAAmE;YACnE,MAAM,SAAS,CACb,IAAI,QAAQ,MAAM,UAAU,UAAU,EACtC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,mBAAmB;aACtC,CAAC;YAEF,OAAO;gBACL,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;aAChE,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,UAAU,CAAC,QAAgB;QACvC,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC1B,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,9 @@
1
+ export declare class PackageLocator {
2
+ private static readonly PACKAGE_NAME;
3
+ static findPackage(): Promise<string>;
4
+ static isGloballyInstalled(): Promise<boolean>;
5
+ private static getGlobalPackagePath;
6
+ private static getLocalPackagePath;
7
+ private static getSourcePath;
8
+ }
9
+ //# sourceMappingURL=package-locator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package-locator.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/package-locator.ts"],"names":[],"mappings":"AAQA,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAyC;WAEhE,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC;WAsB9B,mBAAmB,IAAI,OAAO,CAAC,OAAO,CAAC;mBAK/B,oBAAoB;mBAoBpB,mBAAmB;mBAkBnB,aAAa;CAkBnC"}
@@ -0,0 +1,81 @@
1
+ import { existsSync } from 'fs';
2
+ import { exec } from 'child_process';
3
+ import { promisify } from 'util';
4
+ import { join, dirname } from 'path';
5
+ import { fileURLToPath } from 'url';
6
+ const execAsync = promisify(exec);
7
+ export class PackageLocator {
8
+ static PACKAGE_NAME = '@magic-ingredients/tiny-brain-local';
9
+ static async findPackage() {
10
+ // Try to find globally installed package
11
+ const globalPath = await this.getGlobalPackagePath();
12
+ if (globalPath) {
13
+ return join(globalPath, 'dist', 'index.js');
14
+ }
15
+ // Try to find in local node_modules
16
+ const localPath = await this.getLocalPackagePath();
17
+ if (localPath) {
18
+ return join(localPath, 'dist', 'index.js');
19
+ }
20
+ // Check if running from source
21
+ const sourcePath = await this.getSourcePath();
22
+ if (sourcePath) {
23
+ return join(sourcePath, 'dist', 'index.js');
24
+ }
25
+ throw new Error('Could not locate tiny-brain-local package');
26
+ }
27
+ static async isGloballyInstalled() {
28
+ const globalPath = await this.getGlobalPackagePath();
29
+ return !!globalPath;
30
+ }
31
+ static async getGlobalPackagePath() {
32
+ try {
33
+ const { stdout } = await execAsync(`npm list -g ${this.PACKAGE_NAME} --depth=0 --json`);
34
+ const result = JSON.parse(stdout);
35
+ if (result.dependencies && result.dependencies[this.PACKAGE_NAME]) {
36
+ // Get the global npm prefix
37
+ const { stdout: prefix } = await execAsync('npm config get prefix');
38
+ const globalModulesPath = join(prefix.trim(), 'lib', 'node_modules', this.PACKAGE_NAME);
39
+ if (existsSync(globalModulesPath)) {
40
+ return globalModulesPath;
41
+ }
42
+ }
43
+ }
44
+ catch {
45
+ // Package not found globally
46
+ }
47
+ return null;
48
+ }
49
+ static async getLocalPackagePath() {
50
+ // Start from current directory and walk up looking for node_modules
51
+ let currentDir = process.cwd();
52
+ while (currentDir !== '/') {
53
+ const packagePath = join(currentDir, 'node_modules', this.PACKAGE_NAME);
54
+ if (existsSync(packagePath)) {
55
+ return packagePath;
56
+ }
57
+ const parentDir = dirname(currentDir);
58
+ if (parentDir === currentDir)
59
+ break;
60
+ currentDir = parentDir;
61
+ }
62
+ return null;
63
+ }
64
+ static async getSourcePath() {
65
+ try {
66
+ const __filename = fileURLToPath(import.meta.url);
67
+ const __dirname = dirname(__filename);
68
+ // Go up from utils directory to package root
69
+ const packageRoot = join(__dirname, '..', '..', '..');
70
+ const indexPath = join(packageRoot, 'src', 'index.ts');
71
+ if (existsSync(indexPath)) {
72
+ return packageRoot;
73
+ }
74
+ }
75
+ catch {
76
+ // Not running from source
77
+ }
78
+ return null;
79
+ }
80
+ }
81
+ //# sourceMappingURL=package-locator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package-locator.js","sourceRoot":"","sources":["../../../src/cli/utils/package-locator.ts"],"names":[],"mappings":"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"}
package/dist/cli.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":""}
package/dist/cli.js ADDED
@@ -0,0 +1,27 @@
1
+ #!/usr/bin/env node
2
+ import chalk from 'chalk';
3
+ import { fileURLToPath } from 'url';
4
+ import { dirname, join } from 'path';
5
+ import { readFileSync } from 'fs';
6
+ import { createCLI } from './cli/cli-factory.js';
7
+ // Get package.json for version info
8
+ const __filename = fileURLToPath(import.meta.url);
9
+ const __dirname = dirname(__filename);
10
+ const packageJson = JSON.parse(readFileSync(join(__dirname, '..', 'package.json'), 'utf-8'));
11
+ // Create the CLI program
12
+ const program = createCLI();
13
+ program.version(packageJson.version);
14
+ // Default action: If no command is provided, run as MCP server
15
+ if (process.argv.length === 2) {
16
+ // No command provided, run as MCP server
17
+ console.log(chalk.gray('No command provided, starting MCP server...'));
18
+ import('./index.js').catch((error) => {
19
+ console.error(chalk.red('Failed to start MCP server:'), error);
20
+ process.exit(1);
21
+ });
22
+ }
23
+ else {
24
+ // Parse the command line arguments
25
+ program.parse(process.argv);
26
+ }
27
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD,oCAAoC;AACpC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AACtC,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAC5B,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,CAC7D,CAAC;AAEF,yBAAyB;AACzB,MAAM,OAAO,GAAG,SAAS,EAAE,CAAC;AAC5B,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;AAErC,+DAA+D;AAC/D,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;IAC9B,yCAAyC;IACzC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC,CAAC;IACvE,MAAM,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;QACnC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,6BAA6B,CAAC,EAAE,KAAK,CAAC,CAAC;QAC/D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC;KAAM,CAAC;IACN,mCAAmC;IACnC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC9B,CAAC"}
@@ -4,7 +4,7 @@
4
4
  * Central registry that collects prompt definitions from all prompts
5
5
  */
6
6
  import { PersonaPrompt } from './persona/persona.prompt.js';
7
- import { MemoryPrompt } from './memory/memory.prompt.js';
7
+ import { RulesPrompt } from './rules/rules.prompt.js';
8
8
  import { ThinkingPrompt } from './thinking/thinking.prompt.js';
9
9
  import { PlanningPrompt } from './planning/planning.prompt.js';
10
10
  export class PromptRegistry {
@@ -14,7 +14,7 @@ export class PromptRegistry {
14
14
  static getPrompts() {
15
15
  return [
16
16
  ...PersonaPrompt.getPromptDefinitions(),
17
- ...MemoryPrompt.getPromptDefinitions(),
17
+ ...RulesPrompt.getPromptDefinitions(),
18
18
  ...ThinkingPrompt.getPromptDefinitions(),
19
19
  ...PlanningPrompt.getPromptDefinitions(),
20
20
  ];
@@ -43,10 +43,10 @@ export class PromptRegistry {
43
43
  archive_persona: PersonaPrompt,
44
44
  show_persona: PersonaPrompt,
45
45
  current_persona: PersonaPrompt,
46
- // Memory prompts
47
- remember: MemoryPrompt,
48
- recall: MemoryPrompt,
49
- forget: MemoryPrompt,
46
+ // Rules prompts
47
+ 'add-rule': RulesPrompt,
48
+ 'list-rules': RulesPrompt,
49
+ 'remove-rule': RulesPrompt,
50
50
  // Planning prompts
51
51
  'create-plan': PlanningPrompt,
52
52
  'update-plan': PlanningPrompt,
@@ -1 +1 @@
1
- {"version":3,"file":"prompt-registry.js","sourceRoot":"","sources":["../../src/prompts/prompt-registry.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAE/D,MAAM,OAAO,cAAc;IACzB;;OAEG;IACH,MAAM,CAAC,UAAU;QACf,OAAO;YACL,GAAG,aAAa,CAAC,oBAAoB,EAAE;YACvC,GAAG,YAAY,CAAC,oBAAoB,EAAE;YACtC,GAAG,cAAc,CAAC,oBAAoB,EAAE;YACxC,GAAG,cAAc,CAAC,oBAAoB,EAAE;SACzC,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,MAAM,CACjB,IAAY,EACZ,IAA6B,EAC7B,OAAuB;QAEvB,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAC/C,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,mBAAmB,IAAI,EAAE,CAAC,CAAC;QAC7C,CAAC;QAED,OAAO,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACjD,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,IAAY;QACjC,oDAAoD;QACpD,MAAM,SAAS,GAAgC;YAC7C,kBAAkB;YAClB,aAAa,EAAE,aAAa;YAC5B,EAAE,EAAE,aAAa;YACjB,cAAc,EAAE,aAAa;YAC7B,cAAc,EAAE,aAAa;YAC7B,eAAe,EAAE,aAAa;YAC9B,YAAY,EAAE,aAAa;YAC3B,eAAe,EAAE,aAAa;YAE9B,iBAAiB;YACjB,QAAQ,EAAE,YAAY;YACtB,MAAM,EAAE,YAAY;YACpB,MAAM,EAAE,YAAY;YAEpB,mBAAmB;YACnB,aAAa,EAAE,cAAc;YAC7B,aAAa,EAAE,cAAc;YAC7B,aAAa,EAAE,cAAc;YAC7B,YAAY,EAAE,cAAc;YAC5B,aAAa,EAAE,cAAc;YAC7B,cAAc,EAAE,cAAc;YAC9B,aAAa,EAAE,cAAc;YAE7B,mBAAmB;YACnB,aAAa,EAAE,cAAc;YAC7B,iBAAiB,EAAE,cAAc;SAClC,CAAC;QAEF,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;CACF;AAED,+BAA+B;AAC/B,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,cAAc,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;AACtF,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,EAAE,CAAC,cAAc,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC"}
1
+ {"version":3,"file":"prompt-registry.js","sourceRoot":"","sources":["../../src/prompts/prompt-registry.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAE/D,MAAM,OAAO,cAAc;IACzB;;OAEG;IACH,MAAM,CAAC,UAAU;QACf,OAAO;YACL,GAAG,aAAa,CAAC,oBAAoB,EAAE;YACvC,GAAG,WAAW,CAAC,oBAAoB,EAAE;YACrC,GAAG,cAAc,CAAC,oBAAoB,EAAE;YACxC,GAAG,cAAc,CAAC,oBAAoB,EAAE;SACzC,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,MAAM,CACjB,IAAY,EACZ,IAA6B,EAC7B,OAAuB;QAEvB,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAC/C,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,mBAAmB,IAAI,EAAE,CAAC,CAAC;QAC7C,CAAC;QAED,OAAO,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACjD,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,IAAY;QACjC,oDAAoD;QACpD,MAAM,SAAS,GAAgC;YAC7C,kBAAkB;YAClB,aAAa,EAAE,aAAa;YAC5B,EAAE,EAAE,aAAa;YACjB,cAAc,EAAE,aAAa;YAC7B,cAAc,EAAE,aAAa;YAC7B,eAAe,EAAE,aAAa;YAC9B,YAAY,EAAE,aAAa;YAC3B,eAAe,EAAE,aAAa;YAE9B,gBAAgB;YAChB,UAAU,EAAE,WAAW;YACvB,YAAY,EAAE,WAAW;YACzB,aAAa,EAAE,WAAW;YAE1B,mBAAmB;YACnB,aAAa,EAAE,cAAc;YAC7B,aAAa,EAAE,cAAc;YAC7B,aAAa,EAAE,cAAc;YAC7B,YAAY,EAAE,cAAc;YAC5B,aAAa,EAAE,cAAc;YAC7B,cAAc,EAAE,cAAc;YAC9B,aAAa,EAAE,cAAc;YAE7B,mBAAmB;YACnB,aAAa,EAAE,cAAc;YAC7B,iBAAiB,EAAE,cAAc;SAClC,CAAC;QAEF,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;CACF;AAED,+BAA+B;AAC/B,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,cAAc,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;AACtF,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,EAAE,CAAC,cAAc,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Rules Prompt Handler
3
+ *
4
+ * Thin dispatcher for rules-related prompt executions
5
+ * Validates args with Zod, dispatches to RulesService, formats responses
6
+ */
7
+ import type { RequestContext } from '../../types/request-context.js';
8
+ import type { Prompt } from '@modelcontextprotocol/sdk/types.js';
9
+ import type { PromptResponse } from '../index.js';
10
+ export declare class RulesPrompt {
11
+ /**
12
+ * Get all rules-related prompt definitions
13
+ */
14
+ static getPromptDefinitions(): Prompt[];
15
+ /**
16
+ * Main handler that routes to specific prompt handlers
17
+ */
18
+ static handle(name: string, args: Record<string, unknown>, context: RequestContext): Promise<PromptResponse>;
19
+ /**
20
+ * Handle add-rule prompt - adds a new universal rule
21
+ */
22
+ static handleAddRule(args: Record<string, unknown>, context: RequestContext): Promise<PromptResponse>;
23
+ /**
24
+ * Handle list-rules prompt - lists all rules or filtered by query
25
+ */
26
+ static handleListRules(args: Record<string, unknown>, context: RequestContext): Promise<PromptResponse>;
27
+ /**
28
+ * Handle remove-rule prompt - removes a rule from the list
29
+ */
30
+ static handleRemoveRule(args: Record<string, unknown>, context: RequestContext): Promise<PromptResponse>;
31
+ }
32
+ //# sourceMappingURL=rules.prompt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rules.prompt.d.ts","sourceRoot":"","sources":["../../../src/prompts/rules/rules.prompt.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AACjE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAiBlD,qBAAa,WAAW;IACtB;;OAEG;IACH,MAAM,CAAC,oBAAoB,IAAI,MAAM,EAAE;IA4CvC;;OAEG;WACU,MAAM,CACjB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,cAAc,CAAC;IAa1B;;OAEG;WACU,aAAa,CACxB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,cAAc,CAAC;IA8C1B;;OAEG;WACU,eAAe,CAC1B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,cAAc,CAAC;IAiD1B;;OAEG;WACU,gBAAgB,CAC3B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,cAAc,CAAC;CA6C3B"}
@@ -1,62 +1,62 @@
1
1
  /**
2
- * Memory Prompt Handler
2
+ * Rules Prompt Handler
3
3
  *
4
- * Thin dispatcher for memory-related prompt executions
5
- * Validates args with Zod, dispatches to MemoryService, formats responses
4
+ * Thin dispatcher for rules-related prompt executions
5
+ * Validates args with Zod, dispatches to RulesService, formats responses
6
6
  */
7
7
  import { z } from 'zod';
8
- import { MemoryService } from '@magic-ingredients/tiny-brain-core';
8
+ import { RulesService } from '@magic-ingredients/tiny-brain-core';
9
9
  // Zod schemas for each prompt handler
10
- const RememberArgsSchema = z.object({
11
- fact: z.string(),
10
+ const AddRuleArgsSchema = z.object({
11
+ rule: z.string(),
12
12
  category: z.string().optional(),
13
13
  });
14
- const RecallArgsSchema = z.object({
15
- query: z.string(),
14
+ const ListRulesArgsSchema = z.object({
15
+ query: z.string().optional(),
16
16
  });
17
- const ForgetArgsSchema = z.object({
18
- query: z.string(),
17
+ const RemoveRuleArgsSchema = z.object({
18
+ rule: z.string(),
19
19
  });
20
- export class MemoryPrompt {
20
+ export class RulesPrompt {
21
21
  /**
22
- * Get all memory-related prompt definitions
22
+ * Get all rules-related prompt definitions
23
23
  */
24
24
  static getPromptDefinitions() {
25
25
  return [
26
26
  {
27
- name: 'remember',
28
- description: '💾 Store information in personal or conversation memory with smart classification',
27
+ name: 'add-rule',
28
+ description: '📋 Add a universal rule or directive that applies across all personas',
29
29
  arguments: [
30
30
  {
31
- name: 'fact',
32
- description: 'The information you want to remember',
31
+ name: 'rule',
32
+ description: 'The rule or directive to add (e.g., "ALWAYS use TDD")',
33
33
  required: true,
34
34
  },
35
35
  {
36
36
  name: 'category',
37
- description: 'Category to store this in (e.g., preferences, project_details)',
37
+ description: 'Category for this rule (e.g., coding, communication)',
38
38
  required: false,
39
39
  },
40
40
  ],
41
41
  },
42
42
  {
43
- name: 'recall',
44
- description: '🔍 Search through personal and conversation memory',
43
+ name: 'list-rules',
44
+ description: '📋 List all rules or search for specific ones',
45
45
  arguments: [
46
46
  {
47
47
  name: 'query',
48
- description: 'What you want to search for',
49
- required: true,
48
+ description: 'Optional search query to filter rules. Leave empty to list all rules.',
49
+ required: false,
50
50
  },
51
51
  ],
52
52
  },
53
53
  {
54
- name: 'forget',
55
- description: '🗑️ Remove information from memory',
54
+ name: 'remove-rule',
55
+ description: '🗑️ Remove a specific rule from the system',
56
56
  arguments: [
57
57
  {
58
- name: 'query',
59
- description: 'What information to forget',
58
+ name: 'rule',
59
+ description: 'The rule to remove',
60
60
  required: true,
61
61
  },
62
62
  ],
@@ -68,29 +68,31 @@ export class MemoryPrompt {
68
68
  */
69
69
  static async handle(name, args, context) {
70
70
  switch (name) {
71
- case 'remember':
72
- return await MemoryPrompt.handleRemember(args, context);
73
- case 'recall':
74
- return await MemoryPrompt.handleRecall(args, context);
75
- case 'forget':
76
- return await MemoryPrompt.handleForget(args, context);
71
+ case 'add-rule':
72
+ return await RulesPrompt.handleAddRule(args, context);
73
+ case 'list-rules':
74
+ return await RulesPrompt.handleListRules(args, context);
75
+ case 'remove-rule':
76
+ return await RulesPrompt.handleRemoveRule(args, context);
77
77
  default:
78
- throw new Error(`Unknown memory prompt: ${name}`);
78
+ throw new Error(`Unknown rules prompt: ${name}`);
79
79
  }
80
80
  }
81
81
  /**
82
- * Handle remember prompt - stores information in appropriate memory tier
82
+ * Handle add-rule prompt - adds a new universal rule
83
83
  */
84
- static async handleRemember(args, context) {
84
+ static async handleAddRule(args, context) {
85
85
  try {
86
86
  // Validate args with Zod
87
- const validatedArgs = RememberArgsSchema.parse(args);
87
+ const validatedArgs = AddRuleArgsSchema.parse(args);
88
88
  // Create memory service with context
89
- const memoryService = new MemoryService(context);
89
+ const rulesService = new RulesService(context);
90
90
  // Call service method with validated args
91
- const result = await memoryService.rememberFact(validatedArgs.fact, validatedArgs.category);
91
+ const result = await rulesService.addRule(validatedArgs.rule, context.userId);
92
92
  // Format response
93
- const resultText = `${result.message}\n\nExtracted:\n- Entities: ${result.entities.map((e) => `${e.name} (${e.entityType})`).join(', ')}\n- Relations: ${result.relations.map((r) => `${r.from} ${r.relationType} ${r.to}`).join(', ')}\n- Context: ${result.context || 'general'}`;
93
+ const resultText = result.success
94
+ ? `${result.message}\nRule: "${result.rule}"\nTotal rules: ${result.totalRules}`
95
+ : result.message;
94
96
  return {
95
97
  description: 'Remember information with smart classification',
96
98
  messages: [
@@ -98,7 +100,7 @@ export class MemoryPrompt {
98
100
  role: 'user',
99
101
  content: {
100
102
  type: 'text',
101
- text: `Remember: ${validatedArgs.fact}${validatedArgs.category ? ` (category: ${validatedArgs.category})` : ''}`,
103
+ text: `Add rule: ${validatedArgs.rule}${validatedArgs.category ? ` (category: ${validatedArgs.category})` : ''}`,
102
104
  },
103
105
  },
104
106
  {
@@ -119,28 +121,30 @@ export class MemoryPrompt {
119
121
  }
120
122
  }
121
123
  /**
122
- * Handle recall prompt - searches memory across tiers
124
+ * Handle list-rules prompt - lists all rules or filtered by query
123
125
  */
124
- static async handleRecall(args, context) {
126
+ static async handleListRules(args, context) {
125
127
  try {
126
- // Validate args with Zod
127
- const validatedArgs = RecallArgsSchema.parse(args);
128
+ // Validate args with Zod - handle empty args object
129
+ const validatedArgs = ListRulesArgsSchema.parse(args || {});
128
130
  // Create memory service with context
129
- const memoryService = new MemoryService(context);
131
+ const rulesService = new RulesService(context);
130
132
  // Call service method with validated args
131
- const result = await memoryService.recallMemories(validatedArgs.query);
133
+ const result = await rulesService.listRules(validatedArgs.query, context.userId);
132
134
  // Format response
133
- const resultText = result.results.length > 0
134
- ? `Found ${result.totalMatches} relevant memories:\n\n${JSON.stringify(result.results, null, 2)}`
135
- : `No memories found for query: ${validatedArgs.query}`;
135
+ const resultText = result.rules.length > 0
136
+ ? `Found ${result.totalRules} rule(s):\n\n${result.rules.map((rule, index) => `${index + 1}. ${rule}`).join('\n')}`
137
+ : `No rules found${validatedArgs.query ? ` matching "${validatedArgs.query}"` : ''}`;
136
138
  return {
137
- description: 'Search both personal and conversation memory',
139
+ description: 'List all rules or search for specific ones',
138
140
  messages: [
139
141
  {
140
142
  role: 'user',
141
143
  content: {
142
144
  type: 'text',
143
- text: `What do you know about: ${validatedArgs.query}`,
145
+ text: validatedArgs.query
146
+ ? `List rules matching: ${validatedArgs.query}`
147
+ : 'List all rules',
144
148
  },
145
149
  },
146
150
  {
@@ -161,18 +165,20 @@ export class MemoryPrompt {
161
165
  }
162
166
  }
163
167
  /**
164
- * Handle forget prompt - removes information from memory
168
+ * Handle remove-rule prompt - removes a rule from the list
165
169
  */
166
- static async handleForget(args, context) {
170
+ static async handleRemoveRule(args, context) {
167
171
  try {
168
172
  // Validate args with Zod
169
- const validatedArgs = ForgetArgsSchema.parse(args);
173
+ const validatedArgs = RemoveRuleArgsSchema.parse(args);
170
174
  // Create memory service with context
171
- const memoryService = new MemoryService(context);
175
+ const rulesService = new RulesService(context);
172
176
  // Call service method with validated args
173
- const result = await memoryService.forgetMemories(validatedArgs.query);
177
+ const result = await rulesService.removeRule(validatedArgs.rule, context.userId);
174
178
  // Format response
175
- const resultText = result.message;
179
+ const resultText = result.success
180
+ ? `${result.message}\nRemoved: "${result.removedRule}"\nRemaining rules: ${result.remainingRules}`
181
+ : result.message;
176
182
  return {
177
183
  description: 'Remove information from memory',
178
184
  messages: [
@@ -180,7 +186,7 @@ export class MemoryPrompt {
180
186
  role: 'user',
181
187
  content: {
182
188
  type: 'text',
183
- text: `Forget: ${validatedArgs.query}`,
189
+ text: `Remove rule: ${validatedArgs.rule}`,
184
190
  },
185
191
  },
186
192
  {
@@ -201,4 +207,4 @@ export class MemoryPrompt {
201
207
  }
202
208
  }
203
209
  }
204
- //# sourceMappingURL=memory.prompt.js.map
210
+ //# sourceMappingURL=rules.prompt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rules.prompt.js","sourceRoot":"","sources":["../../../src/prompts/rules/rules.prompt.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ import { LocalFilesystemStorageAdapter } from './local-filesystem-adapter.js';
2
+ import { ConfigScope } from './platform-path-builder.js';
3
+ export declare class PlatformConfigAdapter extends LocalFilesystemStorageAdapter {
4
+ private platformPathBuilder;
5
+ constructor(config: {
6
+ baseDir: string;
7
+ autoCreate?: boolean;
8
+ });
9
+ /**
10
+ * Read platform-specific configuration file
11
+ */
12
+ readPlatformConfig(platform: string, scope?: ConfigScope): Promise<any>;
13
+ /**
14
+ * Write platform-specific configuration file
15
+ */
16
+ writePlatformConfig(platform: string, config: any, scope?: ConfigScope): Promise<void>;
17
+ /**
18
+ * Backup platform configuration
19
+ */
20
+ backupPlatformConfig(platform: string, scope?: ConfigScope): Promise<string | null>;
21
+ /**
22
+ * Restore platform configuration from backup
23
+ */
24
+ restorePlatformConfig(platform: string, backupId: string, scope?: ConfigScope): Promise<void>;
25
+ /**
26
+ * Add or update an MCP server in platform configuration
27
+ */
28
+ addMCPServer(platform: string, serverName: string, serverConfig: {
29
+ command: string;
30
+ args?: string[];
31
+ env?: Record<string, string>;
32
+ }, scope?: ConfigScope): Promise<void>;
33
+ /**
34
+ * Remove an MCP server from platform configuration
35
+ */
36
+ removeMCPServer(platform: string, serverName: string, scope?: ConfigScope): Promise<void>;
37
+ /**
38
+ * Check if an MCP server is configured
39
+ */
40
+ isMCPServerConfigured(platform: string, serverName: string, scope?: ConfigScope): Promise<boolean>;
41
+ }
42
+ //# sourceMappingURL=platform-config-adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform-config-adapter.d.ts","sourceRoot":"","sources":["../../src/storage/platform-config-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,+BAA+B,CAAC;AAC9E,OAAO,EAAuB,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAQ9E,qBAAa,qBAAsB,SAAQ,6BAA6B;IACtE,OAAO,CAAC,mBAAmB,CAAsB;gBAErC,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,OAAO,CAAA;KAAE;IAK7D;;OAEG;IACG,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC;IAe7E;;OAEG;IACG,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAW5F;;OAEG;IACG,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IA+BzF;;OAEG;IACG,qBAAqB,CACzB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,KAAK,CAAC,EAAE,WAAW,GAClB,OAAO,CAAC,IAAI,CAAC;IAahB;;OAEG;IACG,YAAY,CAChB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE;QACZ,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;QAChB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KAC9B,EACD,KAAK,CAAC,EAAE,WAAW,GAClB,OAAO,CAAC,IAAI,CAAC;IAmBhB;;OAEG;IACG,eAAe,CACnB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,KAAK,CAAC,EAAE,WAAW,GAClB,OAAO,CAAC,IAAI,CAAC;IAahB;;OAEG;IACG,qBAAqB,CACzB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,KAAK,CAAC,EAAE,WAAW,GAClB,OAAO,CAAC,OAAO,CAAC;CASpB"}