matimo 0.1.0-alpha.2 → 0.1.0-alpha.4

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 (149) hide show
  1. package/README.md +128 -548
  2. package/package.json +24 -28
  3. package/packages/cli/bin/matimo.cjs +26 -0
  4. package/packages/cli/dist/cli.d.ts +6 -0
  5. package/packages/cli/dist/cli.d.ts.map +1 -0
  6. package/packages/cli/dist/cli.js +95 -0
  7. package/packages/cli/dist/cli.js.map +1 -0
  8. package/packages/cli/dist/commands/install.d.ts +6 -0
  9. package/packages/cli/dist/commands/install.d.ts.map +1 -0
  10. package/packages/cli/dist/commands/install.js +48 -0
  11. package/packages/cli/dist/commands/install.js.map +1 -0
  12. package/packages/cli/dist/commands/list.d.ts +9 -0
  13. package/packages/cli/dist/commands/list.d.ts.map +1 -0
  14. package/packages/cli/dist/commands/list.js +70 -0
  15. package/packages/cli/dist/commands/list.js.map +1 -0
  16. package/packages/cli/dist/commands/search.d.ts +2 -0
  17. package/packages/cli/dist/commands/search.d.ts.map +1 -0
  18. package/packages/cli/dist/commands/search.js +148 -0
  19. package/packages/cli/dist/commands/search.js.map +1 -0
  20. package/packages/core/dist/src/auth/oauth2-config.d.ts.map +1 -0
  21. package/packages/core/dist/src/auth/oauth2-config.js.map +1 -0
  22. package/packages/core/dist/src/auth/oauth2-handler.d.ts.map +1 -0
  23. package/packages/core/dist/src/auth/oauth2-handler.js.map +1 -0
  24. package/packages/core/dist/src/auth/oauth2-provider-loader.d.ts.map +1 -0
  25. package/packages/core/dist/src/auth/oauth2-provider-loader.js.map +1 -0
  26. package/{dist → packages/core/dist/src}/core/schema.d.ts +12 -2
  27. package/packages/core/dist/src/core/schema.d.ts.map +1 -0
  28. package/{dist → packages/core/dist/src}/core/schema.js +20 -6
  29. package/packages/core/dist/src/core/schema.js.map +1 -0
  30. package/{dist → packages/core/dist/src}/core/tool-loader.d.ts +16 -0
  31. package/packages/core/dist/src/core/tool-loader.d.ts.map +1 -0
  32. package/packages/core/dist/src/core/tool-loader.js +205 -0
  33. package/packages/core/dist/src/core/tool-loader.js.map +1 -0
  34. package/packages/core/dist/src/core/tool-registry.d.ts.map +1 -0
  35. package/{dist → packages/core/dist/src}/core/tool-registry.js +5 -1
  36. package/packages/core/dist/src/core/tool-registry.js.map +1 -0
  37. package/{dist → packages/core/dist/src}/core/types.d.ts +15 -1
  38. package/packages/core/dist/src/core/types.d.ts.map +1 -0
  39. package/{dist → packages/core/dist/src}/core/types.js.map +1 -1
  40. package/packages/core/dist/src/decorators/index.d.ts.map +1 -0
  41. package/packages/core/dist/src/decorators/index.js.map +1 -0
  42. package/packages/core/dist/src/decorators/tool-decorator.d.ts.map +1 -0
  43. package/{dist → packages/core/dist/src}/decorators/tool-decorator.js +7 -4
  44. package/packages/core/dist/src/decorators/tool-decorator.js.map +1 -0
  45. package/packages/core/dist/src/encodings/parameter-encoding.d.ts.map +1 -0
  46. package/{dist → packages/core/dist/src}/encodings/parameter-encoding.js +9 -2
  47. package/packages/core/dist/src/encodings/parameter-encoding.js.map +1 -0
  48. package/packages/core/dist/src/errors/matimo-error.d.ts.map +1 -0
  49. package/packages/core/dist/src/errors/matimo-error.js.map +1 -0
  50. package/packages/core/dist/src/executors/command-executor.d.ts.map +1 -0
  51. package/{dist → packages/core/dist/src}/executors/command-executor.js +5 -1
  52. package/packages/core/dist/src/executors/command-executor.js.map +1 -0
  53. package/packages/core/dist/src/executors/function-executor.d.ts +23 -0
  54. package/packages/core/dist/src/executors/function-executor.d.ts.map +1 -0
  55. package/packages/core/dist/src/executors/function-executor.js +164 -0
  56. package/packages/core/dist/src/executors/function-executor.js.map +1 -0
  57. package/packages/core/dist/src/executors/http-executor.d.ts.map +1 -0
  58. package/{dist → packages/core/dist/src}/executors/http-executor.js +5 -1
  59. package/packages/core/dist/src/executors/http-executor.js.map +1 -0
  60. package/{dist → packages/core/dist/src}/index.d.ts +5 -1
  61. package/packages/core/dist/src/index.d.ts.map +1 -0
  62. package/{dist → packages/core/dist/src}/index.js +3 -0
  63. package/packages/core/dist/src/index.js.map +1 -0
  64. package/packages/core/dist/src/integrations/langchain.d.ts +46 -0
  65. package/packages/core/dist/src/integrations/langchain.d.ts.map +1 -0
  66. package/packages/core/dist/src/integrations/langchain.js +197 -0
  67. package/packages/core/dist/src/integrations/langchain.js.map +1 -0
  68. package/{dist → packages/core/dist/src}/matimo-instance.d.ts +30 -4
  69. package/packages/core/dist/src/matimo-instance.d.ts.map +1 -0
  70. package/{dist → packages/core/dist/src}/matimo-instance.js +63 -10
  71. package/packages/core/dist/src/matimo-instance.js.map +1 -0
  72. package/packages/core/dist/tools/calculator/calculator.d.ts +26 -0
  73. package/packages/core/dist/tools/calculator/calculator.d.ts.map +1 -0
  74. package/packages/core/dist/tools/calculator/calculator.js +104 -0
  75. package/packages/core/dist/tools/calculator/calculator.js.map +1 -0
  76. package/packages/core/dist/tsconfig.tsbuildinfo +1 -0
  77. package/dist/auth/oauth2-config.d.ts.map +0 -1
  78. package/dist/auth/oauth2-config.js.map +0 -1
  79. package/dist/auth/oauth2-handler.d.ts.map +0 -1
  80. package/dist/auth/oauth2-handler.js.map +0 -1
  81. package/dist/auth/oauth2-provider-loader.d.ts.map +0 -1
  82. package/dist/auth/oauth2-provider-loader.js.map +0 -1
  83. package/dist/core/schema.d.ts.map +0 -1
  84. package/dist/core/schema.js.map +0 -1
  85. package/dist/core/tool-loader.d.ts.map +0 -1
  86. package/dist/core/tool-loader.js +0 -98
  87. package/dist/core/tool-loader.js.map +0 -1
  88. package/dist/core/tool-registry.d.ts.map +0 -1
  89. package/dist/core/tool-registry.js.map +0 -1
  90. package/dist/core/types.d.ts.map +0 -1
  91. package/dist/decorators/index.d.ts.map +0 -1
  92. package/dist/decorators/index.js.map +0 -1
  93. package/dist/decorators/tool-decorator.d.ts.map +0 -1
  94. package/dist/decorators/tool-decorator.js.map +0 -1
  95. package/dist/encodings/parameter-encoding.d.ts.map +0 -1
  96. package/dist/encodings/parameter-encoding.js.map +0 -1
  97. package/dist/errors/matimo-error.d.ts.map +0 -1
  98. package/dist/errors/matimo-error.js.map +0 -1
  99. package/dist/executors/command-executor.d.ts.map +0 -1
  100. package/dist/executors/command-executor.js.map +0 -1
  101. package/dist/executors/http-executor.d.ts.map +0 -1
  102. package/dist/executors/http-executor.js.map +0 -1
  103. package/dist/index.d.ts.map +0 -1
  104. package/dist/index.js.map +0 -1
  105. package/dist/matimo-instance.d.ts.map +0 -1
  106. package/dist/matimo-instance.js.map +0 -1
  107. package/docs/Gemfile +0 -5
  108. package/docs/RELEASES.md +0 -90
  109. package/docs/ROADMAP.md +0 -138
  110. package/docs/_config.yml +0 -27
  111. package/docs/api-reference/ERRORS.md +0 -445
  112. package/docs/api-reference/SDK.md +0 -582
  113. package/docs/api-reference/TYPES.md +0 -415
  114. package/docs/architecture/OAUTH.md +0 -1366
  115. package/docs/architecture/OVERVIEW.md +0 -564
  116. package/docs/assets/logo.png +0 -0
  117. package/docs/community/COMMIT_GUIDELINES.md +0 -552
  118. package/docs/framework-integrations/LANGCHAIN.md +0 -286
  119. package/docs/getting-started/QUICK_START.md +0 -212
  120. package/docs/getting-started/YOUR_FIRST_TOOL.md +0 -217
  121. package/docs/getting-started/installation.md +0 -124
  122. package/docs/index.md +0 -289
  123. package/docs/tool-development/DECORATOR_GUIDE.md +0 -633
  124. package/docs/tool-development/OAUTH_LINK.md +0 -5
  125. package/docs/tool-development/PROVIDER_CONFIGURATION.md +0 -458
  126. package/docs/tool-development/TESTING.md +0 -412
  127. package/docs/tool-development/TOOL_SPECIFICATION.md +0 -793
  128. package/docs/tool-development/YAML_TOOLS.md +0 -65
  129. package/docs/troubleshooting/FAQ.md +0 -391
  130. package/docs/user-guide/AUTHENTICATION.md +0 -255
  131. package/docs/user-guide/DEVELOPMENT_STANDARDS.md +0 -698
  132. package/docs/user-guide/SDK_PATTERNS.md +0 -316
  133. package/docs/user-guide/TOOL_DISCOVERY.md +0 -209
  134. /package/{dist → packages/core/dist/src}/auth/oauth2-config.d.ts +0 -0
  135. /package/{dist → packages/core/dist/src}/auth/oauth2-config.js +0 -0
  136. /package/{dist → packages/core/dist/src}/auth/oauth2-handler.d.ts +0 -0
  137. /package/{dist → packages/core/dist/src}/auth/oauth2-handler.js +0 -0
  138. /package/{dist → packages/core/dist/src}/auth/oauth2-provider-loader.d.ts +0 -0
  139. /package/{dist → packages/core/dist/src}/auth/oauth2-provider-loader.js +0 -0
  140. /package/{dist → packages/core/dist/src}/core/tool-registry.d.ts +0 -0
  141. /package/{dist → packages/core/dist/src}/core/types.js +0 -0
  142. /package/{dist → packages/core/dist/src}/decorators/index.d.ts +0 -0
  143. /package/{dist → packages/core/dist/src}/decorators/index.js +0 -0
  144. /package/{dist → packages/core/dist/src}/decorators/tool-decorator.d.ts +0 -0
  145. /package/{dist → packages/core/dist/src}/encodings/parameter-encoding.d.ts +0 -0
  146. /package/{dist → packages/core/dist/src}/errors/matimo-error.d.ts +0 -0
  147. /package/{dist → packages/core/dist/src}/errors/matimo-error.js +0 -0
  148. /package/{dist → packages/core/dist/src}/executors/command-executor.d.ts +0 -0
  149. /package/{dist → packages/core/dist/src}/executors/http-executor.d.ts +0 -0
@@ -3,32 +3,83 @@ import { ToolLoader } from './core/tool-loader';
3
3
  import { ToolRegistry } from './core/tool-registry';
4
4
  import { CommandExecutor } from './executors/command-executor';
5
5
  import { HttpExecutor } from './executors/http-executor';
6
+ import { FunctionExecutor } from './executors/function-executor';
6
7
  import { MatimoError, ErrorCode } from './errors/matimo-error';
7
8
  /**
8
9
  * Matimo Instance - Single initialization point for tool execution
9
10
  * Combines loader, registry, and executors into one interface
10
11
  */
11
12
  export class MatimoInstance {
12
- constructor(toolsPath) {
13
- this.toolsPath = toolsPath;
13
+ constructor(toolPaths) {
14
+ this.toolPaths = toolPaths;
14
15
  this.loader = new ToolLoader();
15
16
  this.registry = new ToolRegistry();
16
- // Use dirname to get parent directory reliably - works regardless of directory name
17
- const workingDir = path.dirname(toolsPath);
17
+ // Use the first path (primary) as working directory for command executor
18
+ const workingDir = toolPaths.length > 0 ? path.dirname(toolPaths[0]) : process.cwd();
18
19
  this.commandExecutor = new CommandExecutor(workingDir);
19
20
  this.httpExecutor = new HttpExecutor();
21
+ this.functionExecutor = new FunctionExecutor(toolPaths[0] || '');
20
22
  }
21
23
  /**
22
- * Initialize Matimo with tools from a directory
23
- * @param toolsPath - Path to tools directory
24
+ * Initialize Matimo with tools from directory or auto-discovery
25
+ * @param options - Initialization options (string for backward compatibility)
24
26
  * @returns MatimoInstance ready to execute tools
27
+ *
28
+ * @example
29
+ * // Backward compatible - single path
30
+ * const matimo = await MatimoInstance.init('./tools');
31
+ *
32
+ * // New - auto-discovery
33
+ * const matimo = await MatimoInstance.init({ autoDiscover: true });
34
+ *
35
+ * // Explicit paths
36
+ * const matimo = await MatimoInstance.init({
37
+ * toolPaths: ['./tools', require.resolve('@matimo/slack/tools')]
38
+ * });
25
39
  */
26
- static async init(toolsPath) {
27
- const instance = new MatimoInstance(toolsPath);
28
- const tools = await instance.loader.loadToolsFromDirectory(toolsPath);
29
- instance.registry.registerAll(Array.from(tools.values()));
40
+ static async init(options) {
41
+ let finalOptions;
42
+ // Backward compatibility: if string is passed, treat as toolPath
43
+ if (typeof options === 'string') {
44
+ finalOptions = {
45
+ toolPaths: [options],
46
+ autoDiscover: false,
47
+ includeCore: false,
48
+ };
49
+ }
50
+ else {
51
+ finalOptions = {
52
+ autoDiscover: false,
53
+ includeCore: true,
54
+ ...options,
55
+ };
56
+ }
57
+ const toolPaths = [];
58
+ // Include core tools (calculator, etc.) - currently not used in monorepo
59
+ // Use explicit toolPaths or autoDiscover instead
60
+ // if (finalOptions.includeCore) { ... }
61
+ // Add explicit paths
62
+ if (finalOptions.toolPaths) {
63
+ toolPaths.push(...finalOptions.toolPaths);
64
+ }
65
+ // Auto-discover @matimo/* packages
66
+ if (finalOptions.autoDiscover) {
67
+ const discoveredPaths = new ToolLoader().autoDiscoverPackages();
68
+ toolPaths.push(...discoveredPaths);
69
+ }
70
+ const instance = new MatimoInstance(toolPaths);
71
+ // Load tools from all paths
72
+ const allTools = instance.loader.loadToolsFromMultiplePaths(toolPaths);
73
+ instance.registry.registerAll(Array.from(allTools.values()));
30
74
  return instance;
31
75
  }
76
+ /**
77
+ * Get tool paths
78
+ * @returns Array of tool paths
79
+ */
80
+ getToolPaths() {
81
+ return [...this.toolPaths];
82
+ }
32
83
  /**
33
84
  * Execute a tool by name with parameters
34
85
  * @param toolName - Name of the tool to execute
@@ -239,6 +290,8 @@ export class MatimoInstance {
239
290
  return this.commandExecutor;
240
291
  case 'http':
241
292
  return this.httpExecutor;
293
+ case 'function':
294
+ return this.functionExecutor;
242
295
  default:
243
296
  throw new MatimoError(`Unsupported execution type: ${executionType}`, ErrorCode.EXECUTION_FAILED, { executionType });
244
297
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"matimo-instance.js","sourceRoot":"","sources":["../../src/matimo-instance.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Calculator utility functions
3
+ */
4
+ declare const Calculator: {
5
+ /**
6
+ * Normalize operation name to handle variations
7
+ */
8
+ normalizeOperation(op: string): string;
9
+ /**
10
+ * Perform arithmetic calculation
11
+ */
12
+ calculate(operation: string, a: number, b: number): {
13
+ result: number;
14
+ operation: string;
15
+ original_operation: string;
16
+ operands: {
17
+ a: number;
18
+ b: number;
19
+ };
20
+ };
21
+ };
22
+ /**
23
+ * CLI entry point
24
+ */
25
+ declare function main(): void;
26
+ //# sourceMappingURL=calculator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calculator.d.ts","sourceRoot":"","sources":["../../../tools/calculator/calculator.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,QAAA,MAAM,UAAU;IACd;;OAEG;2BACoB,MAAM,GAAG,MAAM;IAsCtC;;OAEG;yBAEU,MAAM,KACd,MAAM,KACN,MAAM,GACR;QACD,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;QAClB,kBAAkB,EAAE,MAAM,CAAC;QAC3B,QAAQ,EAAE;YAAE,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;KACpC;CA+BF,CAAC;AAEF;;GAEG;AACH,iBAAS,IAAI,IAAI,IAAI,CAyBpB"}
@@ -0,0 +1,104 @@
1
+ "use strict";
2
+ // Calculator implementation
3
+ // This script is executed by the calculator tool
4
+ /**
5
+ * Calculator utility functions
6
+ */
7
+ const Calculator = {
8
+ /**
9
+ * Normalize operation name to handle variations
10
+ */
11
+ normalizeOperation(op) {
12
+ const normalized = op.toLowerCase().trim();
13
+ // Map variations to canonical operation names
14
+ const operationMap = {
15
+ // Addition variants
16
+ add: 'add',
17
+ addition: 'add',
18
+ sum: 'add',
19
+ plus: 'add',
20
+ '+': 'add',
21
+ // Subtraction variants
22
+ subtract: 'subtract',
23
+ subtraction: 'subtract',
24
+ minus: 'subtract',
25
+ sub: 'subtract',
26
+ '-': 'subtract',
27
+ // Multiplication variants
28
+ multiply: 'multiply',
29
+ multiplication: 'multiply',
30
+ times: 'multiply',
31
+ product: 'multiply',
32
+ mul: 'multiply',
33
+ '*': 'multiply',
34
+ x: 'multiply',
35
+ // Division variants
36
+ divide: 'divide',
37
+ division: 'divide',
38
+ div: 'divide',
39
+ '/': 'divide',
40
+ };
41
+ return operationMap[normalized] || normalized;
42
+ },
43
+ /**
44
+ * Perform arithmetic calculation
45
+ */
46
+ calculate(operation, a, b) {
47
+ const normalizedOp = this.normalizeOperation(operation);
48
+ let result;
49
+ switch (normalizedOp) {
50
+ case 'add':
51
+ result = a + b;
52
+ break;
53
+ case 'subtract':
54
+ result = a - b;
55
+ break;
56
+ case 'multiply':
57
+ result = a * b;
58
+ break;
59
+ case 'divide':
60
+ if (b === 0) {
61
+ throw new Error('Division by zero');
62
+ }
63
+ result = a / b;
64
+ break;
65
+ default:
66
+ throw new Error(`Unknown operation: ${operation}`);
67
+ }
68
+ return {
69
+ result,
70
+ operation: normalizedOp,
71
+ original_operation: operation,
72
+ operands: { a, b },
73
+ };
74
+ },
75
+ };
76
+ /**
77
+ * CLI entry point
78
+ */
79
+ function main() {
80
+ try {
81
+ const [operation, aStr, bStr] = process.argv.slice(2);
82
+ if (!operation || !aStr || !bStr) {
83
+ console.error('Usage: calculator.ts <operation> <a> <b>');
84
+ console.error('Operations: add, subtract, multiply, divide');
85
+ process.exit(1);
86
+ }
87
+ const a = parseFloat(aStr);
88
+ const b = parseFloat(bStr);
89
+ if (isNaN(a) || isNaN(b)) {
90
+ console.error('Error: Arguments must be valid numbers');
91
+ process.exit(1);
92
+ }
93
+ const result = Calculator.calculate(operation, a, b);
94
+ console.log(JSON.stringify(result));
95
+ }
96
+ catch (error) {
97
+ const message = error instanceof Error ? error.message : String(error);
98
+ console.error(message);
99
+ process.exit(1);
100
+ }
101
+ }
102
+ // Execute CLI entry point
103
+ main();
104
+ //# sourceMappingURL=calculator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calculator.js","sourceRoot":"","sources":["../../../tools/calculator/calculator.ts"],"names":[],"mappings":"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"}