matimo 0.1.0-alpha.13 → 0.1.0-alpha.14

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.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "matimo",
3
- "version": "0.1.0-alpha.13",
4
- "description": "Universal tool provider SDK: Framework-agnostic YAML-driven tool ecosystem for AI agents. Execute a library of pre-built tools (Slack, Gmail, GitHub, AWS, etc.) or define your own in YAML.",
3
+ "version": "0.1.0-alpha.14",
4
+ "description": "A framework-agnostic SDK with pre-built providers, a skills knowledge layer, MCP out of the box, and agents that autonomously build new capabilities governed by a policy engine you control.",
5
5
  "main": "packages/core/dist/index.js",
6
6
  "types": "packages/core/dist/index.d.ts",
7
7
  "bin": {
@@ -57,8 +57,8 @@
57
57
  "access": "public"
58
58
  },
59
59
  "dependencies": {
60
- "@matimo/cli": "0.1.0-alpha.13",
61
- "@matimo/core": "0.1.0-alpha.13"
60
+ "@matimo/cli": "0.1.0-alpha.14",
61
+ "@matimo/core": "0.1.0-alpha.14"
62
62
  },
63
63
  "devDependencies": {
64
64
  "@commitlint/cli": "^20.3.1",
@@ -67,14 +67,14 @@
67
67
  "@types/jest": "^30.0.0",
68
68
  "@types/js-yaml": "^4.0.9",
69
69
  "@types/node": "^25.1.0",
70
- "@typescript-eslint/eslint-plugin": "^8.54.0",
71
- "@typescript-eslint/parser": "^8.54.0",
70
+ "@typescript-eslint/eslint-plugin": "^8.58.0",
71
+ "@typescript-eslint/parser": "^8.58.0",
72
72
  "eslint": "^9.39.2",
73
73
  "husky": "^9.1.7",
74
74
  "jest": "^30.2.0",
75
75
  "langchain": "^1.2.18",
76
76
  "prettier": "^3.8.1",
77
- "ts-jest": "^29.4.6",
77
+ "ts-jest": "^29.4.9",
78
78
  "ts-node": "^10.9.2",
79
79
  "tsx": "^4.21.0",
80
80
  "typescript": "^5.9.3"
@@ -1 +1 @@
1
- {"version":3,"file":"command-executor.d.ts","sourceRoot":"","sources":["../../src/executors/command-executor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGhD;;;GAGG;AAEH,qBAAa,eAAe;IAC1B,OAAO,CAAC,GAAG,CAAC,CAAS;gBAET,GAAG,CAAC,EAAE,MAAM;IAIxB;;;;;;;;;OASG;IACG,OAAO,CACX,IAAI,EAAE,cAAc,EACpB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACnC,OAAO,CAAC,OAAO,CAAC;IA0FnB;;OAEG;IACH,OAAO,CAAC,cAAc;CAQvB;AAED,eAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"command-executor.d.ts","sourceRoot":"","sources":["../../src/executors/command-executor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGhD;;;GAGG;AAEH,qBAAa,eAAe;IAC1B,OAAO,CAAC,GAAG,CAAC,CAAS;gBAET,GAAG,CAAC,EAAE,MAAM;IAIxB;;;;;;;;;OASG;IACG,OAAO,CACX,IAAI,EAAE,cAAc,EACpB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACnC,OAAO,CAAC,OAAO,CAAC;IA4GnB;;OAEG;IACH,OAAO,CAAC,cAAc;CAQvB;AAED,eAAe,eAAe,CAAC"}
@@ -27,8 +27,19 @@ export class CommandExecutor {
27
27
  }
28
28
  const { command, args = [], timeout = 30000 } = tool.execution;
29
29
  const startTime = Date.now();
30
- // Implement parameter templating
31
- const templatedCommand = this.templateString(command, params);
30
+ // SECURITY: command must be a fixed executable — never a templated value.
31
+ // Only 'args' may contain {placeholder} tokens.
32
+ // ReDoS protection: commands are typically <256 chars; limit regex testing to 1024 chars
33
+ // to prevent polynomial backtracking on malicious inputs (e.g. repeated opening braces).
34
+ if (command.length <= 1024 && /\{[^}]+\}/u.test(command)) {
35
+ throw new MatimoError(`execution.command must not contain parameter placeholders — only 'args' may be templated. ` +
36
+ `Found: '${command}'. Move the dynamic part into 'args'.`, ErrorCode.EXECUTION_FAILED, { toolName: tool.name });
37
+ }
38
+ else if (command.length > 1024) {
39
+ throw new MatimoError(`execution.command exceeds maximum length (1024 chars): ${command.length} chars. ` +
40
+ 'Command must be a simple executable path.', ErrorCode.EXECUTION_FAILED, { toolName: tool.name, length: command.length });
41
+ }
42
+ const templatedCommand = command; // Never template the executable
32
43
  const templatedArgs = args.map((arg) => this.templateString(arg, params));
33
44
  return new Promise((resolve) => {
34
45
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
@@ -1 +1 @@
1
- {"version":3,"file":"command-executor.js","sourceRoot":"","sources":["../../src/executors/command-executor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"command-executor.js","sourceRoot":"","sources":["../../src/executors/command-executor.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"function-executor.d.ts","sourceRoot":"","sources":["../../src/executors/function-executor.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAIhD;;;;;;;;;;GAUG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,SAAS,CAAS;gBAEd,SAAS,CAAC,EAAE,MAAM;IAI9B;;;;;;;;;;OAUG;IACG,OAAO,CACX,IAAI,EAAE,cAAc,EACpB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACnC,OAAO,CAAC,OAAO,CAAC;CAmLpB;AAED,eAAe,gBAAgB,CAAC"}
1
+ {"version":3,"file":"function-executor.d.ts","sourceRoot":"","sources":["../../src/executors/function-executor.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAIhD;;;;;;;;;;GAUG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,SAAS,CAAS;gBAEd,SAAS,CAAC,EAAE,MAAM;IAI9B;;;;;;;;;;OAUG;IACG,OAAO,CACX,IAAI,EAAE,cAAc,EACpB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACnC,OAAO,CAAC,OAAO,CAAC;CAkMpB;AAED,eAAe,gBAAgB,CAAC"}
@@ -1,7 +1,5 @@
1
- import fs from 'fs';
2
1
  import path from 'path';
3
2
  import { pathToFileURL } from 'node:url';
4
- import axios from 'axios';
5
3
  import { MatimoError, ErrorCode } from '../errors/matimo-error';
6
4
  import { getGlobalMatimoLogger } from '../logging/logger';
7
5
  /**
@@ -148,28 +146,43 @@ export class FunctionExecutor {
148
146
  .catch(handleError);
149
147
  }
150
148
  else {
151
- // Execute embedded code (legacy) - create function from string
152
- // SECURITY WARNING: Embedded code execution runs arbitrary JS with fs/path/axios access.
153
- // This is a potential RCE vector if tool YAML files come from untrusted sources.
154
- // Embedded code is DISABLED by default. Must explicitly opt-in via MATIMO_ALLOW_EMBEDDED_CODE=true
155
- const embeddedCodeDisabled = process.env.MATIMO_ALLOW_EMBEDDED_CODE !== 'true';
156
- if (embeddedCodeDisabled) {
157
- throw new MatimoError('Embedded code execution is disabled by default for security. Use external .ts/.js files instead.', ErrorCode.EXECUTION_FAILED, {
149
+ // ── Embedded code execution ──────────────────────────────────────
150
+ // Requires explicit admin opt-in: MATIMO_ALLOW_EMBEDDED_CODE=true
151
+ // Even when enabled, a static security scan runs before evaluation
152
+ // to block known exploit patterns. No dangerous globals are passed
153
+ // into the sandbox only `params` is accessible.
154
+ if (process.env.MATIMO_ALLOW_EMBEDDED_CODE !== 'true') {
155
+ throw new MatimoError(`Tool '${tool.name}': embedded code execution is disabled by default. ` +
156
+ 'Set MATIMO_ALLOW_EMBEDDED_CODE=true to enable, or use a colocated .ts/.js file instead ' +
157
+ "(set execution.code to its relative path, e.g. './my-tool.ts').", ErrorCode.EXECUTION_FAILED, {
158
158
  toolName: tool.name,
159
- recommendation: 'Create a separate .ts file in the tool directory instead of using embedded code',
160
- enableFeatureFlag: 'Set MATIMO_ALLOW_EMBEDDED_CODE=true to enable (not recommended)',
159
+ recommendation: 'Create a separate .ts file in the tool directory and set execution.code to its relative path',
161
160
  });
162
161
  }
163
- // Log warning when embedded code is executed
162
+ // Static security scan reject code containing dangerous constructs
163
+ // BEFORE new Function() is ever called.
164
+ const BLOCKED_PATTERNS = [
165
+ { re: /\brequire\s*\(/u, label: 'require()' },
166
+ { re: /\bimport\s*\(/u, label: 'dynamic import()' },
167
+ { re: /\bprocess\b/u, label: 'process object' },
168
+ { re: /\b__dirname\b|\b__filename\b/u, label: '__dirname / __filename' },
169
+ { re: /\beval\s*\(/u, label: 'eval()' },
170
+ { re: /\bnew\s+Function\b/u, label: 'new Function()' },
171
+ { re: /\bglobalThis\b|\bglobal\b/u, label: 'global / globalThis' },
172
+ ];
173
+ for (const { re, label } of BLOCKED_PATTERNS) {
174
+ if (re.test(code)) {
175
+ throw new MatimoError(`Embedded code in tool '${tool.name}' contains a blocked construct: '${label}'. ` +
176
+ 'Embedded code may only access the provided params argument.', ErrorCode.EXECUTION_FAILED, { toolName: tool.name, blockedConstruct: label });
177
+ }
178
+ }
164
179
  const logger = getGlobalMatimoLogger();
165
- logger.warn(`⚠️ Warning: Executing embedded code from tool '${tool.name}'. This carries security risks if tool YAML is from untrusted sources.`, { toolName: tool.name });
166
- // In ESM modules, require is not available by default
167
- // We pass a safe require function that embedded code can use
168
- const functionBody = `return (${code})`;
169
- const fn = new Function(functionBody)();
170
- // Pass undefined for require in ESM - embedded code should use import syntax
171
- const result = fn(params, {}, fs, path, axios, undefined);
172
- // Handle both Promise and non-Promise returns
180
+ logger.warn(`Executing embedded code for tool '${tool.name}'. Ensure this tool YAML is from a trusted source.`, { toolName: tool.name });
181
+ // Execute with strict mode and only params in scope.
182
+ // No fs, path, axios, or require are passed embedded code is
183
+ // intentionally limited to pure data transformation of params.
184
+ const fn = new Function('params', '"use strict";\nreturn (' + code + ')(params);');
185
+ const result = fn(params);
173
186
  if (result instanceof Promise) {
174
187
  result.then(handleSuccess).catch(handleError);
175
188
  }
@@ -1 +1 @@
1
- {"version":3,"file":"function-executor.js","sourceRoot":"","sources":["../../src/executors/function-executor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"function-executor.js","sourceRoot":"","sources":["../../src/executors/function-executor.ts"],"names":[],"mappings":"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"}
@@ -59,6 +59,8 @@ export declare class MCPServer {
59
59
  private activeToken;
60
60
  /** Registered skill resources, keyed by skill name, for lifecycle management */
61
61
  private registeredSkillResources;
62
+ /** Resolved auth secrets held in memory — never written to process.env */
63
+ private resolvedSecrets;
62
64
  constructor(options?: MCPServerOptions);
63
65
  /** Get the active bearer token (available after start()) */
64
66
  getActiveToken(): string | null;
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-server.d.ts","sourceRoot":"","sources":["../../src/mcp/mcp-server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAOH,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAMpD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAejE,MAAM,WAAW,gBAAgB;IAC/B,uCAAuC;IACvC,SAAS,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC7B,wDAAwD;IACxD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,qEAAqE;IACrE,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,sDAAsD;IACtD,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,uDAAuD;IACvD,cAAc,CAAC,EAAE,yBAAyB,CAAC;IAC3C,gHAAgH;IAChH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,2DAA2D;IAC3D,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,0IAA0I;IAC1I,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,sDAAsD;IACtD,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,wEAAwE;IACxE,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,uFAAuF;IACvF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uFAAuF;IACvF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,4FAA4F;IAC5F,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,8EAA8E;IAC9E,YAAY,CAAC,EAAE,OAAO,iBAAiB,EAAE,YAAY,CAAC;IACtD,gGAAgG;IAChG,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,yCAAyC;IACzC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,4CAA4C;IAC5C,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAqED,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAGL;IACnB,OAAO,CAAC,MAAM,CAA+B;IAC7C,OAAO,CAAC,aAAa,CAAoC;IACzD,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,UAAU,CAAiB;IACnC,oDAAoD;IACpD,OAAO,CAAC,aAAa,CAAwB;IAC7C,iEAAiE;IACjE,OAAO,CAAC,WAAW,CAAuB;IAC1C,gFAAgF;IAChF,OAAO,CAAC,wBAAwB,CAAyC;gBAE7D,OAAO,GAAE,gBAAqB;IAW1C,4DAA4D;IAC5D,cAAc,IAAI,MAAM,GAAG,IAAI;IAI/B;;;OAGG;IACG,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IA6ClC;;;;;;;;OAQG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAyE5B;;;OAGG;YACW,sBAAsB;IA2CpC;;;;OAIG;IAEH,OAAO,CAAC,sBAAsB;IAuD9B;;;OAGG;YAEW,wBAAwB;IA+FtC;;OAEG;YACW,YAAY;IAmB1B;;;;OAIG;YACW,WAAW;IAoMzB;;;OAGG;YACW,aAAa;IAyB3B;;;OAGG;YACW,sBAAsB;IAyCpC;;;OAGG;YAEW,0BAA0B;IAqDxC;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAiD3B,2CAA2C;IAC3C,iBAAiB,IAAI,cAAc,GAAG,IAAI;CAG3C;AAED;;;GAGG;AACH,wBAAsB,eAAe,CAAC,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,SAAS,CAAC,CAIpF"}
1
+ {"version":3,"file":"mcp-server.d.ts","sourceRoot":"","sources":["../../src/mcp/mcp-server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAOH,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAMpD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAejE,MAAM,WAAW,gBAAgB;IAC/B,uCAAuC;IACvC,SAAS,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC7B,wDAAwD;IACxD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,qEAAqE;IACrE,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,sDAAsD;IACtD,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,uDAAuD;IACvD,cAAc,CAAC,EAAE,yBAAyB,CAAC;IAC3C,gHAAgH;IAChH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,2DAA2D;IAC3D,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,0IAA0I;IAC1I,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,sDAAsD;IACtD,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,wEAAwE;IACxE,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,uFAAuF;IACvF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uFAAuF;IACvF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,4FAA4F;IAC5F,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,8EAA8E;IAC9E,YAAY,CAAC,EAAE,OAAO,iBAAiB,EAAE,YAAY,CAAC;IACtD,gGAAgG;IAChG,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,yCAAyC;IACzC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,4CAA4C;IAC5C,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAqED,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAGL;IACnB,OAAO,CAAC,MAAM,CAA+B;IAC7C,OAAO,CAAC,aAAa,CAAoC;IACzD,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,UAAU,CAAiB;IACnC,oDAAoD;IACpD,OAAO,CAAC,aAAa,CAAwB;IAC7C,iEAAiE;IACjE,OAAO,CAAC,WAAW,CAAuB;IAC1C,gFAAgF;IAChF,OAAO,CAAC,wBAAwB,CAAyC;IACzE,0EAA0E;IAC1E,OAAO,CAAC,eAAe,CAA8B;gBAEzC,OAAO,GAAE,gBAAqB;IAW1C,4DAA4D;IAC5D,cAAc,IAAI,MAAM,GAAG,IAAI;IAI/B;;;OAGG;IACG,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IA6ClC;;;;;;;;OAQG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAyE5B;;;OAGG;YACW,sBAAsB;IAoCpC;;;;OAIG;IAEH,OAAO,CAAC,sBAAsB;IAuD9B;;;OAGG;YAEW,wBAAwB;IAgGtC;;OAEG;YACW,YAAY;IAmB1B;;;;OAIG;YACW,WAAW;IAoMzB;;;OAGG;YACW,aAAa;IAyB3B;;;OAGG;YACW,sBAAsB;IAyCpC;;;OAGG;YAEW,0BAA0B;IAqDxC;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAiD3B,2CAA2C;IAC3C,iBAAiB,IAAI,cAAc,GAAG,IAAI;CAG3C;AAED;;;GAGG;AACH,wBAAsB,eAAe,CAAC,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,SAAS,CAAC,CAIpF"}
@@ -99,6 +99,8 @@ export class MCPServer {
99
99
  this.activeToken = null;
100
100
  /** Registered skill resources, keyed by skill name, for lifecycle management */
101
101
  this.registeredSkillResources = new Map();
102
+ /** Resolved auth secrets held in memory — never written to process.env */
103
+ this.resolvedSecrets = {};
102
104
  this.options = {
103
105
  transport: options.transport ?? 'stdio',
104
106
  port: options.port ?? 3000,
@@ -245,22 +247,15 @@ export class MCPServer {
245
247
  });
246
248
  // Resolve all at once (efficient for batch-capable resolvers)
247
249
  const resolved = await this.resolverChain.resolveAll([...allPlaceholders]);
248
- // Seed into process.env (only if not already set)
249
- let seeded = 0;
250
+ // Store resolved secrets in memory only never write to process.env.
251
+ // Secrets are injected as per-call credentials to matimo.execute() instead,
252
+ // preventing accidental leakage into child processes spawned by other code.
250
253
  for (const [key, value] of Object.entries(resolved)) {
251
- if (!process.env[key]) {
252
- process.env[key] = value;
253
- seeded++;
254
- }
255
- // Also set MATIMO_ prefixed if not present
256
- if (!process.env[`MATIMO_${key}`]) {
257
- process.env[`MATIMO_${key}`] = value;
258
- seeded++;
259
- }
254
+ this.resolvedSecrets[key] = value;
255
+ this.resolvedSecrets[`MATIMO_${key}`] = value;
260
256
  }
261
- logger.debug('Auth secrets seeded into environment', {
257
+ logger.debug('Auth secrets resolved and stored in memory (not in process.env)', {
262
258
  resolved: Object.keys(resolved).length,
263
- seeded,
264
259
  });
265
260
  }
266
261
  /**
@@ -354,6 +349,7 @@ export class MCPServer {
354
349
  const { _matimo_approved, ...cleanArgs } = args;
355
350
  const result = await matimo.execute(tool.name, cleanArgs, {
356
351
  approved: _matimo_approved === true,
352
+ credentials: this.resolvedSecrets,
357
353
  });
358
354
  return {
359
355
  content: [
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../../src/mcp/mcp-server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../../src/mcp/mcp-server.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"approval-manifest.d.ts","sourceRoot":"","sources":["../../src/policy/approval-manifest.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAQD,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,KAAK,CAA0C;IACvD,OAAO,CAAC,UAAU,CAA0B;IAE5C;;;;OAIG;gBACS,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;IA0BhD;;OAEG;IACH,OAAO,CAAC,IAAI;IAIZ;;OAEG;IACH,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAIpC;;;OAGG;IACH,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,OAAO;IAY9D;;OAEG;IACH,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI;IAatE;;;OAGG;IACH,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IASjC;;OAEG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IAIzD;;OAEG;IACH,YAAY,IAAI,MAAM,EAAE;IAIxB;;OAEG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAKnC;;OAEG;IACH,eAAe,IAAI,MAAM,EAAE;IAI3B;;OAEG;IACH,OAAO,CAAC,YAAY;IA+BpB;;;;OAIG;IACH,OAAO,CAAC,UAAU;CAoBnB"}
1
+ {"version":3,"file":"approval-manifest.d.ts","sourceRoot":"","sources":["../../src/policy/approval-manifest.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAQH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAQD,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,KAAK,CAA0C;IACvD,OAAO,CAAC,UAAU,CAA0B;IAE5C;;;;OAIG;gBACS,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;IAiChD;;OAEG;IACH,OAAO,CAAC,IAAI;IAIZ;;OAEG;IACH,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAIpC;;;OAGG;IACH,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,OAAO;IAY9D;;OAEG;IACH,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI;IAatE;;;OAGG;IACH,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IASjC;;OAEG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IAIzD;;OAEG;IACH,YAAY,IAAI,MAAM,EAAE;IAIxB;;OAEG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAKnC;;OAEG;IACH,eAAe,IAAI,MAAM,EAAE;IAI3B;;OAEG;IACH,OAAO,CAAC,YAAY;IA+BpB;;;;OAIG;IACH,OAAO,CAAC,UAAU;CAoBnB"}
@@ -7,6 +7,7 @@
7
7
  import { createHmac, randomUUID, createHash } from 'crypto';
8
8
  import fs from 'fs';
9
9
  import path from 'path';
10
+ import { MatimoError, ErrorCode } from '../errors/matimo-error';
10
11
  import { getGlobalMatimoLogger } from '../logging';
11
12
  export class ApprovalManifest {
12
13
  /**
@@ -25,6 +26,10 @@ export class ApprovalManifest {
25
26
  this.secret = process.env.MATIMO_APPROVAL_SECRET;
26
27
  }
27
28
  else {
29
+ if (process.env.NODE_ENV === 'production' || process.env.MATIMO_ENV === 'production') {
30
+ throw new MatimoError('MATIMO_APPROVAL_SECRET is required in production environments. ' +
31
+ 'Set it to a stable, securely generated value (e.g. from a secrets manager).', ErrorCode.AUTH_FAILED);
32
+ }
28
33
  this.secret = randomUUID();
29
34
  const logger = getGlobalMatimoLogger();
30
35
  // Create a non-sensitive fingerprint for debugging (first 4 chars only)
@@ -1 +1 @@
1
- {"version":3,"file":"approval-manifest.js","sourceRoot":"","sources":["../../src/policy/approval-manifest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"approval-manifest.js","sourceRoot":"","sources":["../../src/policy/approval-manifest.ts"],"names":[],"mappings":"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"}
package/LICENSE DELETED
@@ -1,21 +0,0 @@
1
- MIT License
2
-
3
- Copyright (c) 2026 tallclub
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
package/README.md DELETED
@@ -1,324 +0,0 @@
1
- # Matimo — Toolbox For AI Agents
2
-
3
- <p align="center">
4
- <img src="./docs/assets/logo.png" alt="Matimo Logo" width="300" />
5
- </p>
6
- <p align="center">
7
- <strong>Matimo - "to be powerful"</strong>
8
- </p>
9
-
10
- <p align="center">
11
- <a href="https://github.com/tallclub/matimo/actions/workflows/ci.yml?branch=main"><img src="https://img.shields.io/github/actions/workflow/status/tallclub/matimo/ci.yml?branch=main&style=for-the-badge" alt="CI status"></a>
12
- <a href="https://www.npmjs.com/package/matimo"><img src="https://img.shields.io/npm/v/matimo.svg?style=for-the-badge" alt="npm version"></a>
13
- <a href="https://opensource.org/licenses/MIT"><img src="https://img.shields.io/badge/License-MIT-yellow.svg?style=for-the-badge" alt="MIT License"></a>
14
- <a href="https://www.typescriptlang.org/"><img src="https://img.shields.io/badge/TypeScript-5.9+-blue?style=for-the-badge" alt="TypeScript"></a>
15
- <a href="https://nodejs.org/"><img src="https://img.shields.io/badge/Node.js-18+-green?style=for-the-badge" alt="Node.js"></a>
16
- </p>
17
-
18
- <p align="center">
19
- <a href="https://discord.gg/3JPt4mxWDV"><img src="https://img.shields.io/badge/Discord-Join%20Chat-5865F2?style=for-the-badge&logo=discord&logoColor=white" alt="Discord"></a>
20
- </p>
21
-
22
- **Matimo** is a universal, configuration‑driven AI tools ecosystem. Define tools **once in YAML** and reuse them across the SDK, LangChain, custom agents, and a single MCP server, without re‑implementing schemas or fragmenting integration logic.
23
-
24
- **Define once → Plug into any agent ecosystem.**
25
-
26
- [📖 Documentation](./docs) · [🚀 Quick Start](./docs/getting-started/QUICK_START.md) · [📚 API Reference](./docs/api-reference/SDK.md) · [🛠️ Add Tools](./docs/tool-development/ADDING_TOOLS.md) · [🤖 Examples](./examples)
27
-
28
- ---
29
-
30
- ## Quick Start
31
-
32
- ### Installation
33
-
34
- ```bash
35
- npm install matimo
36
- # OR auto-discover tools from node_modules/@matimo/*
37
- npm install matimo @matimo/slack @matimo/gmail
38
- ```
39
-
40
- ### Minimal Example (TypeScript)
41
-
42
- ```typescript
43
- import { MatimoInstance } from '@matimo/core';
44
-
45
- const matimo = await MatimoInstance.init({
46
- autoDiscover: true,
47
- });
48
-
49
- const result = await matimo.execute('slack_send_channel_message', {
50
- channel: '#general',
51
- text: 'Hello from Matimo!',
52
- });
53
- ```
54
-
55
- See [Three Integration Patterns](#three-integration-patterns) and [examples/](./examples) for more.
56
-
57
- ## What's Included
58
-
59
- Matimo ships with built-in support for:
60
-
61
- - **Core Tools**: File I/O, Web fetch, Command execution, Code search
62
- - **MCP Server**: Expose all tools via stdio or Streamable HTTP to Claude Desktop, Cursor, Windsurf, and any MCP client (`npx matimo mcp`)
63
- - **Slack Integration**: Send messages, manage channels, reactions, threads, DMs
64
- - **Gmail Integration**: Send/read email, manage threads, drafts
65
- - **GitHub Integration**: Issues, pull requests, releases, code search
66
- - **Notion Integration**: Pages, databases, blocks, search
67
- - **HubSpot Tools**: Contacts, companies, deals, tickets
68
- - **Postgres Tools**: Query/modify data with safety checks
69
- - **Twilio Tools**: Send SMS/MMS, manage messages
70
- - **Mailchimp Tools**: Audiences, subscribers, email campaigns
71
- - **Auto-Discovery**: Automatic detection of `@matimo/*` providers from npm
72
- - **Matimo CLI**: Tool discovery, setup wizard, MCP config generation
73
- - **OAuth2 Support**: Provider-agnostic authorization for Slack, Gmail, GitHub, etc.
74
- - **Framework Support**: Factory pattern, Decorator pattern, LangChain, CrewAI
75
- - **TypeScript SDK**: Full type safety and IDE support
76
- - **Agent Skills System**: [SKILL.md](https://agentskills.io) knowledge files with semantic search, content chunking, and progressive disclosure
77
- - **Policy Engine**: 9 security rules, HITL quarantine, hot-reload, SHA-256 integrity tracking, HMAC approvals, audit events
78
-
79
- ## Why Matimo?
80
-
81
- **The Problem:** Every AI framework (LangChain, CrewAI, custom agents, etc.) defines tools differently. You duplicate tool logic across frameworks.
82
-
83
- **The Solution:** Define tools **once** in clean YAML, use them **everywhere** — with built-in:
84
-
85
- - TypeScript SDK (factory & decorator patterns)
86
- - LangChain integration (with examples)
87
- - Matimo CLI (tool discovery & management)
88
- - Auto-discovery from npm packages
89
- - OAuth2 support + parameter validation
90
-
91
- See [Contributing](./CONTRIBUTING.md) for details.
92
-
93
- ---
94
-
95
- ## Three Integration Patterns
96
-
97
- ### 1️⃣ Factory Pattern (Simplest)
98
-
99
- ```typescript
100
- const matimo = await MatimoInstance.init({ autoDiscover: true });
101
- const result = await matimo.execute('calculator', { operation: 'add', a: 5, b: 3 });
102
- ```
103
-
104
- ### 2️⃣ Decorator Pattern (Class-Based)
105
-
106
- ```typescript
107
- @tool('slack_send_channel_message')
108
- async sendMessage(channel: string, text: string) { /* Auto-executed */ }
109
- ```
110
-
111
- ### 3️⃣ LangChain Integration
112
-
113
- ```typescript
114
- const tools = matimo.listTools().map(tool => ({
115
- type: 'function',
116
- function: { name: tool.name, description: tool.description, ... }
117
- }));
118
- ```
119
-
120
- ### 4️⃣ MCP Server (Claude Desktop, Cursor, Windsurf, any MCP client)
121
-
122
- ```bash
123
- # Expose all installed @matimo/* tools via MCP in one command
124
- npx matimo mcp
125
-
126
- # Run the setup wizard to get a ready-to-paste client config
127
- npx matimo mcp setup
128
-
129
- # HTTP mode for remote access / Docker
130
- npx matimo mcp --transport http --port 3000 --self-signed
131
- ```
132
-
133
- See [MCP Docs](./docs/MCP.md) for the full reference.
134
-
135
- See [SDK Usage Patterns](./docs/user-guide/SDK_PATTERNS.md), [LangChain Integration](./docs/framework-integrations/LANGCHAIN.md), and [MCP Server](./docs/MCP.md) for details.
136
-
137
- ---
138
-
139
- ## Installation
140
-
141
- ### From npm (Recommended)
142
-
143
- ```bash
144
- npm install matimo
145
-
146
- # Install tool providers
147
- npm install @matimo/slack @matimo/gmail
148
- ```
149
-
150
- Then use with auto-discovery:
151
-
152
- ```typescript
153
- const matimo = await MatimoInstance.init({ autoDiscover: true });
154
- ```
155
-
156
- ### Matimo CLI (Tool Management)
157
-
158
- ```bash
159
- npm install -g @matimo/cli
160
-
161
- matimo list # Show installed packages
162
- matimo search email # Find tools
163
- matimo install slack # Install tools
164
- ```
165
-
166
- See [CLI Docs](./packages/cli/README.md) for full reference.
167
-
168
- ### From Source (Contributors)
169
-
170
- ```bash
171
- git clone https://github.com/tallclub/matimo
172
- cd matimo && pnpm install && pnpm build
173
- pnpm test
174
- cd examples/tools && pnpm install && pnpm agent:factory
175
- ```
176
-
177
- ---
178
-
179
- ## Skills System
180
-
181
- Matimo supports the [Agent Skills specification](https://agentskills.io) — structured knowledge files (`SKILL.md`) that teach agents domain expertise at runtime.
182
-
183
- ```typescript
184
- // Discover available skills (Level 1 — metadata only)
185
- const skills = matimo.listSkills();
186
-
187
- // Load a specific skill (Level 2 — full content)
188
- const skill = matimo.getSkill('slack');
189
-
190
- // Load only the sections you need (smart context management)
191
- const content = matimo.getSkillContent('postgres', {
192
- sections: ['Error Handling', 'Parameterized Queries'],
193
- maxTokens: 500,
194
- });
195
-
196
- // Semantic search across all skills
197
- const results = await matimo.semanticSearchSkills('How do I handle rate limiting?');
198
- ```
199
-
200
- **Each provider ships one skill** with domain knowledge for all its tools. Agents load skills on demand — no context bloat.
201
-
202
- See [Skills Documentation](./docs/skills/SKILLS.md) for the full guide.
203
-
204
- ## Policy Engine & HITL
205
-
206
- Matimo includes a defense-in-depth policy engine for agent tool usage:
207
-
208
- ```typescript
209
- const matimo = await MatimoInstance.init({
210
- toolPaths: ['./tools', './agent-tools'],
211
- policyFile: './policy.yaml', // 9 security rules, domain allowlists
212
- untrustedPaths: ['./agent-tools'], // Agent-created tools validated here
213
- onHITL: async (request) => {
214
- // Human-in-the-loop quarantine
215
- console.log(`Approve ${request.toolName}? Risk: ${request.riskLevel}`);
216
- return promptUser();
217
- },
218
- onEvent: (event) => auditLog.push(event),
219
- });
220
-
221
- // Hot-reload policy at runtime (no restart needed)
222
- await matimo.reloadPolicy('./policy-prod.yaml');
223
- ```
224
-
225
- **Key features:**
226
-
227
- - 9 deterministic security rules (SSRF detection, namespace protection, credential allowlists)
228
- - HITL quarantine — medium-risk tools pause for human approval instead of auto-rejecting
229
- - Policy hot-reload — swap policies at runtime with automatic tool re-validation
230
- - SHA-256 integrity tracking + HMAC approval manifest
231
- - Full audit trail via structured events
232
-
233
- See [Policy & Lifecycle Docs](./docs/api-reference/POLICY_AND_LIFECYCLE.md) for the complete reference.
234
-
235
- ---
236
-
237
- ## Features **Coming Soon:**
238
-
239
- - More tool providers (Stripe, Jira, Linear, etc.)
240
- - Python SDK
241
- - Custom Tool Marketplace
242
-
243
- ---
244
-
245
- ## Adding Tools to Matimo
246
-
247
- If you build @matimo/<provider> following this pattern, we’ll list it in the official docs and README with you as maintainer.
248
-
249
- Create tool providers as independent npm packages:
250
-
251
- ```bash
252
- mkdir packages/github
253
- cd packages/github && cat > package.json << 'EOF'
254
- { "name": "@matimo/github", "type": "module", ... }
255
- EOF
256
-
257
- mkdir tools/github-create-issue
258
- cat > tools/github-create-issue/definition.yaml << 'EOF'
259
- name: github-create-issue
260
- parameters:
261
- owner: { type: string, required: true }
262
- repo: { type: string, required: true }
263
- title: { type: string, required: true }
264
- execution:
265
- type: http
266
- method: POST
267
- url: https://api.github.com/repos/{owner}/{repo}/issues
268
- headers:
269
- Authorization: "Bearer {GITHUB_TOKEN}"
270
- EOF
271
- ```
272
-
273
- Then publish to npm as `@matimo/github`. Users install and auto-discover:
274
-
275
- ```bash
276
- npm install @matimo/github
277
- # New tools automatically available!
278
- const matimo = await MatimoInstance.init({ autoDiscover: true });
279
- ```
280
-
281
- See [Adding Tools to Matimo](./docs/tool-development/ADDING_TOOLS.md) for the complete 6-step guide.
282
-
283
- ---
284
-
285
- ## Documentation
286
-
287
- - [Getting Started](./docs/getting-started/)
288
- - [API Reference](./docs/api-reference/SDK.md)
289
- - [Skills System](./docs/skills/SKILLS.md)
290
- - [Policy Engine & Tool Lifecycle](./docs/api-reference/POLICY_AND_LIFECYCLE.md)
291
- - [LangChain Integration](./docs/framework-integrations/LANGCHAIN.md)
292
- - [Tool Development](./docs/tool-development/ADDING_TOOLS.md)
293
- - [Architecture Overview](./docs/architecture/OVERVIEW.md)
294
- - [Contributing](./CONTRIBUTING.md)
295
-
296
- ---
297
-
298
- ## License
299
-
300
- MIT © 2026 Matimo Contributors
301
-
302
- ---
303
-
304
- ## Support the Project
305
-
306
- - ⭐ Star the repo
307
- - 🐛 Open issues for bugs or features
308
- - 🔀 Submit PRs (see [Contributing](./CONTRIBUTING.md))
309
- Best way to help: add a new provider (Notion, Jira, Stripe, Twilio…) or expand existing toolsets.
310
- - 📢 Share on Twitter, Reddit, Discord
311
-
312
- ---
313
-
314
- ## Contributors
315
-
316
- <a href="https://github.com/tallclub/matimo/graphs/contributors">
317
- <img src="https://contrib.rocks/image?repo=tallclub/matimo" />
318
- </a>
319
-
320
- ---
321
-
322
- ## Star History
323
-
324
- [![Star History Chart](https://api.star-history.com/svg?repos=tallclub/matimo&type=Date)](https://star-history.com/#tallclub/matimo&Date)