@matimo/core 0.1.0-alpha.5 → 0.1.0-alpha.7

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 (127) hide show
  1. package/dist/approval/path-approval.d.ts +80 -0
  2. package/dist/approval/path-approval.d.ts.map +1 -0
  3. package/dist/approval/path-approval.js +170 -0
  4. package/dist/approval/path-approval.js.map +1 -0
  5. package/dist/approval/sql-approval.d.ts +23 -0
  6. package/dist/approval/sql-approval.d.ts.map +1 -0
  7. package/dist/approval/sql-approval.js +85 -0
  8. package/dist/approval/sql-approval.js.map +1 -0
  9. package/dist/auth/oauth2-config.d.ts.map +1 -0
  10. package/dist/auth/oauth2-config.js.map +1 -0
  11. package/dist/auth/oauth2-handler.d.ts.map +1 -0
  12. package/dist/auth/oauth2-handler.js.map +1 -0
  13. package/dist/auth/oauth2-provider-loader.d.ts.map +1 -0
  14. package/dist/auth/oauth2-provider-loader.js.map +1 -0
  15. package/dist/{src/core → core}/schema.d.ts +8 -3
  16. package/dist/core/schema.d.ts.map +1 -0
  17. package/dist/{src/core → core}/schema.js +4 -5
  18. package/dist/core/schema.js.map +1 -0
  19. package/dist/{src/core → core}/tool-loader.d.ts +16 -4
  20. package/dist/core/tool-loader.d.ts.map +1 -0
  21. package/dist/{src/core → core}/tool-loader.js +95 -50
  22. package/dist/core/tool-loader.js.map +1 -0
  23. package/dist/core/tool-registry.d.ts.map +1 -0
  24. package/dist/core/tool-registry.js.map +1 -0
  25. package/dist/core/types.d.ts.map +1 -0
  26. package/dist/{src/core → core}/types.js.map +1 -1
  27. package/dist/decorators/index.d.ts.map +1 -0
  28. package/dist/decorators/index.js.map +1 -0
  29. package/dist/decorators/tool-decorator.d.ts.map +1 -0
  30. package/dist/decorators/tool-decorator.js.map +1 -0
  31. package/dist/encodings/parameter-encoding.d.ts.map +1 -0
  32. package/dist/encodings/parameter-encoding.js.map +1 -0
  33. package/dist/errors/matimo-error.d.ts.map +1 -0
  34. package/dist/errors/matimo-error.js.map +1 -0
  35. package/dist/executors/command-executor.d.ts.map +1 -0
  36. package/dist/executors/command-executor.js.map +1 -0
  37. package/dist/executors/function-executor.d.ts.map +1 -0
  38. package/dist/executors/function-executor.js.map +1 -0
  39. package/dist/executors/http-executor.d.ts.map +1 -0
  40. package/dist/executors/http-executor.js.map +1 -0
  41. package/dist/{src/index.d.ts → index.d.ts} +4 -0
  42. package/dist/index.d.ts.map +1 -0
  43. package/dist/{src/index.js → index.js} +4 -0
  44. package/dist/index.js.map +1 -0
  45. package/dist/integrations/langchain.d.ts.map +1 -0
  46. package/dist/integrations/langchain.js.map +1 -0
  47. package/dist/matimo-instance.d.ts.map +1 -0
  48. package/dist/matimo-instance.js.map +1 -0
  49. package/package.json +1 -1
  50. package/tools/calculator/calculator.ts +100 -107
  51. package/tools/calculator/definition.yaml +2 -3
  52. package/tools/edit/definition.yaml +114 -0
  53. package/tools/edit/edit.ts +195 -0
  54. package/tools/execute/definition.yaml +89 -0
  55. package/tools/execute/execute.ts +155 -0
  56. package/tools/read/definition.yaml +105 -0
  57. package/tools/read/read.ts +128 -0
  58. package/tools/search/definition.yaml +147 -0
  59. package/tools/search/search.ts +184 -0
  60. package/tools/web/definition.yaml +132 -0
  61. package/tools/web/web.ts +134 -0
  62. package/dist/src/auth/oauth2-config.d.ts.map +0 -1
  63. package/dist/src/auth/oauth2-config.js.map +0 -1
  64. package/dist/src/auth/oauth2-handler.d.ts.map +0 -1
  65. package/dist/src/auth/oauth2-handler.js.map +0 -1
  66. package/dist/src/auth/oauth2-provider-loader.d.ts.map +0 -1
  67. package/dist/src/auth/oauth2-provider-loader.js.map +0 -1
  68. package/dist/src/core/schema.d.ts.map +0 -1
  69. package/dist/src/core/schema.js.map +0 -1
  70. package/dist/src/core/tool-loader.d.ts.map +0 -1
  71. package/dist/src/core/tool-loader.js.map +0 -1
  72. package/dist/src/core/tool-registry.d.ts.map +0 -1
  73. package/dist/src/core/tool-registry.js.map +0 -1
  74. package/dist/src/core/types.d.ts.map +0 -1
  75. package/dist/src/decorators/index.d.ts.map +0 -1
  76. package/dist/src/decorators/index.js.map +0 -1
  77. package/dist/src/decorators/tool-decorator.d.ts.map +0 -1
  78. package/dist/src/decorators/tool-decorator.js.map +0 -1
  79. package/dist/src/encodings/parameter-encoding.d.ts.map +0 -1
  80. package/dist/src/encodings/parameter-encoding.js.map +0 -1
  81. package/dist/src/errors/matimo-error.d.ts.map +0 -1
  82. package/dist/src/errors/matimo-error.js.map +0 -1
  83. package/dist/src/executors/command-executor.d.ts.map +0 -1
  84. package/dist/src/executors/command-executor.js.map +0 -1
  85. package/dist/src/executors/function-executor.d.ts.map +0 -1
  86. package/dist/src/executors/function-executor.js.map +0 -1
  87. package/dist/src/executors/http-executor.d.ts.map +0 -1
  88. package/dist/src/executors/http-executor.js.map +0 -1
  89. package/dist/src/index.d.ts.map +0 -1
  90. package/dist/src/index.js.map +0 -1
  91. package/dist/src/integrations/langchain.d.ts.map +0 -1
  92. package/dist/src/integrations/langchain.js.map +0 -1
  93. package/dist/src/matimo-instance.d.ts.map +0 -1
  94. package/dist/src/matimo-instance.js.map +0 -1
  95. package/dist/tools/calculator/calculator.d.ts +0 -26
  96. package/dist/tools/calculator/calculator.d.ts.map +0 -1
  97. package/dist/tools/calculator/calculator.js +0 -104
  98. package/dist/tools/calculator/calculator.js.map +0 -1
  99. package/dist/tsconfig.tsbuildinfo +0 -1
  100. /package/dist/{src/auth → auth}/oauth2-config.d.ts +0 -0
  101. /package/dist/{src/auth → auth}/oauth2-config.js +0 -0
  102. /package/dist/{src/auth → auth}/oauth2-handler.d.ts +0 -0
  103. /package/dist/{src/auth → auth}/oauth2-handler.js +0 -0
  104. /package/dist/{src/auth → auth}/oauth2-provider-loader.d.ts +0 -0
  105. /package/dist/{src/auth → auth}/oauth2-provider-loader.js +0 -0
  106. /package/dist/{src/core → core}/tool-registry.d.ts +0 -0
  107. /package/dist/{src/core → core}/tool-registry.js +0 -0
  108. /package/dist/{src/core → core}/types.d.ts +0 -0
  109. /package/dist/{src/core → core}/types.js +0 -0
  110. /package/dist/{src/decorators → decorators}/index.d.ts +0 -0
  111. /package/dist/{src/decorators → decorators}/index.js +0 -0
  112. /package/dist/{src/decorators → decorators}/tool-decorator.d.ts +0 -0
  113. /package/dist/{src/decorators → decorators}/tool-decorator.js +0 -0
  114. /package/dist/{src/encodings → encodings}/parameter-encoding.d.ts +0 -0
  115. /package/dist/{src/encodings → encodings}/parameter-encoding.js +0 -0
  116. /package/dist/{src/errors → errors}/matimo-error.d.ts +0 -0
  117. /package/dist/{src/errors → errors}/matimo-error.js +0 -0
  118. /package/dist/{src/executors → executors}/command-executor.d.ts +0 -0
  119. /package/dist/{src/executors → executors}/command-executor.js +0 -0
  120. /package/dist/{src/executors → executors}/function-executor.d.ts +0 -0
  121. /package/dist/{src/executors → executors}/function-executor.js +0 -0
  122. /package/dist/{src/executors → executors}/http-executor.d.ts +0 -0
  123. /package/dist/{src/executors → executors}/http-executor.js +0 -0
  124. /package/dist/{src/integrations → integrations}/langchain.d.ts +0 -0
  125. /package/dist/{src/integrations → integrations}/langchain.js +0 -0
  126. /package/dist/{src/matimo-instance.d.ts → matimo-instance.d.ts} +0 -0
  127. /package/dist/{src/matimo-instance.js → matimo-instance.js} +0 -0
@@ -0,0 +1,80 @@
1
+ /**
2
+ * Path Approval Manager
3
+ * Interactive approval system for file system operations (read, edit, search)
4
+ *
5
+ * Users implement approval storage (file, DB, etc.) via callback.
6
+ * Matimo handles the approval flow and validation.
7
+ */
8
+ /**
9
+ * Approval callback — user implements this to handle interactive approval
10
+ * Can store approvals in file, DB, memory, etc.
11
+ */
12
+ export interface ApprovalCallback {
13
+ (requestPath: string, mode: 'read' | 'write' | 'search'): Promise<boolean>;
14
+ }
15
+ /**
16
+ * Path Approval Manager
17
+ * Validates file paths against permanent and temporary approvals
18
+ */
19
+ export declare class PathApprovalManager {
20
+ private permanentApprovals;
21
+ private approvalCallback;
22
+ private runtimeCache;
23
+ constructor();
24
+ /**
25
+ * Set the approval callback for interactive approvals
26
+ * Users implement this to prompt and store approvals
27
+ *
28
+ * @example
29
+ * ```typescript
30
+ * manager.setApprovalCallback(async (filePath, mode) => {
31
+ * const approved = await promptUser(`Allow ${mode} of ${filePath}?`);
32
+ * if (approved) {
33
+ * await fs.appendFile('.matimo-approvals', `${filePath}\n`);
34
+ * }
35
+ * return approved;
36
+ * });
37
+ * ```
38
+ */
39
+ setApprovalCallback(callback: ApprovalCallback): void;
40
+ /**
41
+ * Pre-approve a path for the current runtime session
42
+ * Useful for programmatic approval (e.g., called from tests or API)
43
+ */
44
+ approvePathForSession(filePath: string): void;
45
+ /**
46
+ * Check if a path is approved for the given operation
47
+ * - Returns true if path matches permanent approvals
48
+ * - Returns true if path was approved in current runtime session
49
+ * - Calls approval callback if interactive mode enabled
50
+ * - Returns false if user denies approval
51
+ *
52
+ * @throws {MatimoError} If approval callback not set and interactive approval needed
53
+ */
54
+ isApproved(filePath: string, mode?: 'read' | 'write' | 'search'): Promise<boolean>;
55
+ /**
56
+ * Check if a path matches any permanent approvals
57
+ * Supports glob patterns (*, **, ?)
58
+ */
59
+ private isPermanentlyApproved;
60
+ /**
61
+ * Clear runtime cache (e.g., at start of new session)
62
+ */
63
+ clearRuntimeCache(): void;
64
+ /**
65
+ * Get approval statistics for logging/audit
66
+ */
67
+ getStats(): {
68
+ permanentApprovalsCount: number;
69
+ runtimeApprovalsCount: number;
70
+ };
71
+ }
72
+ /**
73
+ * Get or create global path approval manager
74
+ */
75
+ export declare function getPathApprovalManager(): PathApprovalManager;
76
+ /**
77
+ * Set global path approval manager (for testing or custom initialization)
78
+ */
79
+ export declare function setPathApprovalManager(manager: PathApprovalManager): void;
80
+ //# sourceMappingURL=path-approval.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"path-approval.d.ts","sourceRoot":"","sources":["../../src/approval/path-approval.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AA2CH;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC5E;AAED;;;GAGG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,kBAAkB,CAAgB;IAC1C,OAAO,CAAC,gBAAgB,CAAiC;IACzD,OAAO,CAAC,YAAY,CAAmC;;IAUvD;;;;;;;;;;;;;;OAcG;IACH,mBAAmB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,IAAI;IAIrD;;;OAGG;IACH,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAK7C;;;;;;;;OAQG;IACG,UAAU,CACd,QAAQ,EAAE,MAAM,EAChB,IAAI,GAAE,MAAM,GAAG,OAAO,GAAG,QAAkB,GAC1C,OAAO,CAAC,OAAO,CAAC;IAuCnB;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IAe7B;;OAEG;IACH,iBAAiB,IAAI,IAAI;IAIzB;;OAEG;IACH,QAAQ,IAAI;QACV,uBAAuB,EAAE,MAAM,CAAC;QAChC,qBAAqB,EAAE,MAAM,CAAC;KAC/B;CAMF;AAKD;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,mBAAmB,CAK5D;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,mBAAmB,GAAG,IAAI,CAEzE"}
@@ -0,0 +1,170 @@
1
+ /**
2
+ * Path Approval Manager
3
+ * Interactive approval system for file system operations (read, edit, search)
4
+ *
5
+ * Users implement approval storage (file, DB, etc.) via callback.
6
+ * Matimo handles the approval flow and validation.
7
+ */
8
+ import path from 'path';
9
+ import { MatimoError, ErrorCode } from '../errors/matimo-error';
10
+ /**
11
+ * Simple glob pattern matcher (native implementation)
12
+ * Supports: * (any chars in path segment), ** (any number of segments), ? (single char)
13
+ */
14
+ function matchesGlobPattern(filePath, pattern) {
15
+ // Resolve file path to absolute for comparison
16
+ const resolvedPath = path.resolve(filePath);
17
+ // For patterns: if it's absolute, use as is; if relative, resolve from cwd
18
+ const patternToCheck = pattern.startsWith('/') || pattern.match(/^[A-Z]:/i)
19
+ ? pattern // Already absolute
20
+ : path.resolve(pattern); // Relative pattern, resolve from cwd
21
+ // Normalize both to forward slashes for consistent regex
22
+ const normalizedPath = resolvedPath.split(path.sep).join('/');
23
+ const normalizedPattern = patternToCheck.split(path.sep).join('/');
24
+ // Convert glob pattern to regex using placeholders to avoid interference
25
+ const regexPattern = normalizedPattern
26
+ .replace(/\./g, '___DOT___') // Placeholder for .
27
+ .replace(/\*\*\//g, '___DBL_STAR_SLASH___') // Placeholder for **/
28
+ .replace(/\/\*\*/g, '___SLASH_DBL_STAR___') // Placeholder for /**
29
+ .replace(/\*\*/g, '___DBL_STAR___') // Placeholder for **
30
+ .replace(/\*/g, '___STAR___') // Placeholder for *
31
+ .replace(/\?/g, '___QUESTION___') // Placeholder for ?
32
+ // Now replace placeholders with regex patterns
33
+ .replace(/___DBL_STAR_SLASH___/g, '(?:.+/)?') // **/ matches zero or more path segments
34
+ .replace(/___SLASH_DBL_STAR___/g, '(?:/.+)?') // /** matches zero or more path segments
35
+ .replace(/___DBL_STAR___/g, '.*') // ** matches anything
36
+ .replace(/___STAR___/g, '[^/]*') // * matches any chars except /
37
+ .replace(/___QUESTION___/g, '[^/]') // ? matches single char except /
38
+ .replace(/___DOT___/g, '\\.'); // . becomes literal dot
39
+ const regex = new RegExp(`^${regexPattern}$`);
40
+ return regex.test(normalizedPath);
41
+ }
42
+ /**
43
+ * Path Approval Manager
44
+ * Validates file paths against permanent and temporary approvals
45
+ */
46
+ export class PathApprovalManager {
47
+ constructor() {
48
+ this.permanentApprovals = [];
49
+ this.approvalCallback = null;
50
+ this.runtimeCache = new Map();
51
+ // Load permanent approvals from environment variable
52
+ const allowedPathsEnv = process.env.MATIMO_EDIT_ALLOWED_PATHS;
53
+ if (allowedPathsEnv) {
54
+ this.permanentApprovals = allowedPathsEnv.split(',').map((p) => p.trim());
55
+ }
56
+ }
57
+ /**
58
+ * Set the approval callback for interactive approvals
59
+ * Users implement this to prompt and store approvals
60
+ *
61
+ * @example
62
+ * ```typescript
63
+ * manager.setApprovalCallback(async (filePath, mode) => {
64
+ * const approved = await promptUser(`Allow ${mode} of ${filePath}?`);
65
+ * if (approved) {
66
+ * await fs.appendFile('.matimo-approvals', `${filePath}\n`);
67
+ * }
68
+ * return approved;
69
+ * });
70
+ * ```
71
+ */
72
+ setApprovalCallback(callback) {
73
+ this.approvalCallback = callback;
74
+ }
75
+ /**
76
+ * Pre-approve a path for the current runtime session
77
+ * Useful for programmatic approval (e.g., called from tests or API)
78
+ */
79
+ approvePathForSession(filePath) {
80
+ const normalized = path.resolve(filePath);
81
+ this.runtimeCache.set(normalized, true);
82
+ }
83
+ /**
84
+ * Check if a path is approved for the given operation
85
+ * - Returns true if path matches permanent approvals
86
+ * - Returns true if path was approved in current runtime session
87
+ * - Calls approval callback if interactive mode enabled
88
+ * - Returns false if user denies approval
89
+ *
90
+ * @throws {MatimoError} If approval callback not set and interactive approval needed
91
+ */
92
+ async isApproved(filePath, mode = 'write') {
93
+ const normalized = path.resolve(filePath);
94
+ // Check runtime cache first
95
+ const cached = this.runtimeCache.get(normalized);
96
+ if (cached === true) {
97
+ return true;
98
+ }
99
+ if (cached === false) {
100
+ return false;
101
+ }
102
+ // Check permanent approvals
103
+ if (this.isPermanentlyApproved(normalized)) {
104
+ return true;
105
+ }
106
+ // If no callback set, deny access
107
+ if (!this.approvalCallback) {
108
+ throw new MatimoError('Path approval required but no approval callback set', ErrorCode.EXECUTION_FAILED, {
109
+ filePath: normalized,
110
+ mode,
111
+ hint: 'Set approval callback with manager.setApprovalCallback() or add path to MATIMO_EDIT_ALLOWED_PATHS',
112
+ });
113
+ }
114
+ // Ask for interactive approval
115
+ const approved = await this.approvalCallback(normalized, mode);
116
+ // Cache the decision for this session
117
+ this.runtimeCache.set(normalized, approved);
118
+ return approved;
119
+ }
120
+ /**
121
+ * Check if a path matches any permanent approvals
122
+ * Supports glob patterns (*, **, ?)
123
+ */
124
+ isPermanentlyApproved(filePath) {
125
+ const normalized = path.resolve(filePath);
126
+ return this.permanentApprovals.some((pattern) => {
127
+ // Handle both absolute paths and glob patterns
128
+ if (pattern.includes('*') || pattern.includes('?')) {
129
+ // Pattern contains wildcards, use glob matching
130
+ return matchesGlobPattern(normalized, pattern);
131
+ }
132
+ // Exact match or directory match (no wildcards)
133
+ const approvedPath = path.resolve(pattern);
134
+ return normalized === approvedPath || normalized.startsWith(approvedPath + path.sep);
135
+ });
136
+ }
137
+ /**
138
+ * Clear runtime cache (e.g., at start of new session)
139
+ */
140
+ clearRuntimeCache() {
141
+ this.runtimeCache.clear();
142
+ }
143
+ /**
144
+ * Get approval statistics for logging/audit
145
+ */
146
+ getStats() {
147
+ return {
148
+ permanentApprovalsCount: this.permanentApprovals.length,
149
+ runtimeApprovalsCount: this.runtimeCache.size,
150
+ };
151
+ }
152
+ }
153
+ // Singleton instance
154
+ let globalManager = null;
155
+ /**
156
+ * Get or create global path approval manager
157
+ */
158
+ export function getPathApprovalManager() {
159
+ if (!globalManager) {
160
+ globalManager = new PathApprovalManager();
161
+ }
162
+ return globalManager;
163
+ }
164
+ /**
165
+ * Set global path approval manager (for testing or custom initialization)
166
+ */
167
+ export function setPathApprovalManager(manager) {
168
+ globalManager = manager;
169
+ }
170
+ //# sourceMappingURL=path-approval.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"path-approval.js","sourceRoot":"","sources":["../../src/approval/path-approval.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ export type SQLMode = 'read' | 'write';
2
+ export interface SQLApprovalCallback {
3
+ (sql: string, mode: SQLMode): Promise<boolean>;
4
+ }
5
+ export declare class SQLApprovalManager {
6
+ private permanentApprovals;
7
+ private approvalCallback;
8
+ private runtimeCache;
9
+ constructor();
10
+ setApprovalCallback(cb: SQLApprovalCallback): void;
11
+ approveForSession(sqlSignature: string): void;
12
+ clearRuntimeCache(): void;
13
+ getStats(): {
14
+ permanentApprovalsCount: number;
15
+ runtimeApprovalsCount: number;
16
+ };
17
+ private sqlMatchesPattern;
18
+ isApproved(sql: string, mode?: SQLMode): Promise<boolean>;
19
+ }
20
+ export declare function getSQLApprovalManager(): SQLApprovalManager;
21
+ export declare function setSQLApprovalManager(m: SQLApprovalManager): void;
22
+ export default SQLApprovalManager;
23
+ //# sourceMappingURL=sql-approval.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sql-approval.d.ts","sourceRoot":"","sources":["../../src/approval/sql-approval.ts"],"names":[],"mappings":"AASA,MAAM,MAAM,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC;AAEvC,MAAM,WAAW,mBAAmB;IAClC,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAChD;AAED,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,kBAAkB,CAAgB;IAC1C,OAAO,CAAC,gBAAgB,CAAoC;IAC5D,OAAO,CAAC,YAAY,CAAmC;;IAYvD,mBAAmB,CAAC,EAAE,EAAE,mBAAmB,GAAG,IAAI;IAIlD,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IAK7C,iBAAiB,IAAI,IAAI;IAIzB,QAAQ;;;;IAOR,OAAO,CAAC,iBAAiB;IAWnB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,GAAE,OAAiB,GAAG,OAAO,CAAC,OAAO,CAAC;CAgCzE;AAID,wBAAgB,qBAAqB,IAAI,kBAAkB,CAG1D;AAED,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAEjE;AAED,eAAe,kBAAkB,CAAC"}
@@ -0,0 +1,85 @@
1
+ /**
2
+ * SQL Approval Manager
3
+ *
4
+ * Similar API to PathApprovalManager but focused on SQL approval decisions.
5
+ * Supports permanent approvals via `MATIMO_SQL_APPROVED_PATTERNS` (comma-separated)
6
+ * and an interactive `ApprovalCallback` for runtime approval.
7
+ */
8
+ import { MatimoError, ErrorCode } from '../errors/matimo-error';
9
+ export class SQLApprovalManager {
10
+ constructor() {
11
+ this.permanentApprovals = [];
12
+ this.approvalCallback = null;
13
+ this.runtimeCache = new Map();
14
+ const env = process.env.MATIMO_SQL_APPROVED_PATTERNS;
15
+ if (env) {
16
+ this.permanentApprovals = env
17
+ .split(',')
18
+ .map((s) => s.trim())
19
+ .filter(Boolean);
20
+ }
21
+ }
22
+ setApprovalCallback(cb) {
23
+ this.approvalCallback = cb;
24
+ }
25
+ approveForSession(sqlSignature) {
26
+ const key = sqlSignature.trim();
27
+ this.runtimeCache.set(key, true);
28
+ }
29
+ clearRuntimeCache() {
30
+ this.runtimeCache.clear();
31
+ }
32
+ getStats() {
33
+ return {
34
+ permanentApprovalsCount: this.permanentApprovals.length,
35
+ runtimeApprovalsCount: this.runtimeCache.size,
36
+ };
37
+ }
38
+ sqlMatchesPattern(sql, pattern) {
39
+ try {
40
+ const re = new RegExp(pattern, 'i');
41
+ return re.test(sql);
42
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
43
+ }
44
+ catch (_e) {
45
+ // treat pattern as literal substring if invalid regex
46
+ return sql.toLowerCase().includes(pattern.toLowerCase());
47
+ }
48
+ }
49
+ async isApproved(sql, mode = 'write') {
50
+ const key = sql.trim();
51
+ const cached = this.runtimeCache.get(key);
52
+ if (cached === true)
53
+ return true;
54
+ if (cached === false)
55
+ return false;
56
+ // permanent approvals
57
+ if (this.permanentApprovals.some((p) => this.sqlMatchesPattern(sql, p))) {
58
+ return true;
59
+ }
60
+ // auto-approve env var (useful in CI)
61
+ if (process.env.MATIMO_SQL_AUTO_APPROVE === 'true') {
62
+ this.runtimeCache.set(key, true);
63
+ return true;
64
+ }
65
+ if (!this.approvalCallback) {
66
+ throw new MatimoError('SQL approval required but no approval callback set', ErrorCode.EXECUTION_FAILED, {
67
+ hint: 'Set SQL approval callback with getSQLApprovalManager().setApprovalCallback() or set MATIMO_SQL_APPROVED_PATTERNS / MATIMO_SQL_AUTO_APPROVE',
68
+ });
69
+ }
70
+ const approved = await this.approvalCallback(sql, mode);
71
+ this.runtimeCache.set(key, approved);
72
+ return approved;
73
+ }
74
+ }
75
+ let globalManager = null;
76
+ export function getSQLApprovalManager() {
77
+ if (!globalManager)
78
+ globalManager = new SQLApprovalManager();
79
+ return globalManager;
80
+ }
81
+ export function setSQLApprovalManager(m) {
82
+ globalManager = m;
83
+ }
84
+ export default SQLApprovalManager;
85
+ //# sourceMappingURL=sql-approval.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sql-approval.js","sourceRoot":"","sources":["../../src/approval/sql-approval.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oauth2-config.d.ts","sourceRoot":"","sources":["../../src/auth/oauth2-config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH;;;;;GAKG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC;AAEpC;;;;;;GAMG;AACH,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,cAAc,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,cAAc,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,eAAe,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,gBAAgB,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;GASG"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oauth2-config.js","sourceRoot":"","sources":["../../src/auth/oauth2-config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;;AA2EH;;;;;;;;;GASG"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oauth2-handler.d.ts","sourceRoot":"","sources":["../../src/auth/oauth2-handler.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EACL,YAAY,EACZ,WAAW,EACX,eAAe,EAEf,oBAAoB,EACrB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAGhE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,kBAAkB,CAAS;IACnC,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,cAAc,CAAuB;IAE7C;;;;OAIG;gBACS,MAAM,EAAE,YAAY,EAAE,cAAc,CAAC,EAAE,oBAAoB;IAoBvE;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,gBAAgB;IA2CxB;;OAEG;IACH,YAAY,IAAI,eAAe;IAI/B;;;;OAIG;IACH,mBAAmB,CAAC,OAAO,EAAE,oBAAoB,GAAG,MAAM;IAmB1D;;;;;OAKG;IACG,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IA2B9E;;;;;OAKG;IACG,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IAuC3F;;;OAGG;IACG,WAAW,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBpD;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAM3B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAe1B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAM3B;;OAEG;IACH,YAAY,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO;IAKzC;;OAEG;IACH,qBAAqB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;CAGlD;AAED,eAAe,aAAa,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oauth2-handler.js","sourceRoot":"","sources":["../../src/auth/oauth2-handler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oauth2-provider-loader.d.ts","sourceRoot":"","sources":["../../src/auth/oauth2-provider-loader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAKH,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD,OAAO,EAA8B,KAAK,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAErF;;;;;;;;GAQG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,SAAS,CAA2C;IAC5D,OAAO,CAAC,WAAW,CAA8C;gBAErD,SAAS,EAAE,MAAM;IAI7B;;;;;;;;OAQG;IACG,aAAa,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAqC5D;;;;OAIG;IACH,WAAW,CAAC,YAAY,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS;IAI9D;;;;OAIG;IACH,aAAa,CAAC,YAAY,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS;IAInE;;OAEG;IACH,aAAa,IAAI,MAAM,EAAE;IAIzB;;OAEG;IACH,SAAS,CAAC,0BAA0B,CAAC,UAAU,EAAE,kBAAkB,GAAG,IAAI;IAU1E;;OAEG;IACH,OAAO,CAAC,gBAAgB;CAMzB"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oauth2-provider-loader.js","sourceRoot":"","sources":["../../src/auth/oauth2-provider-loader.ts"],"names":[],"mappings":"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"}
@@ -189,9 +189,14 @@ export declare const ToolDefinitionSchema: z.ZodObject<{
189
189
  deprecated: z.ZodOptional<z.ZodBoolean>;
190
190
  tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
191
191
  deprecation_message: z.ZodOptional<z.ZodString>;
192
- _definitionPath: z.ZodOptional<z.ZodString>;
193
- }, z.core.$loose>;
194
- export type ToolDefinition = z.infer<typeof ToolDefinitionSchema>;
192
+ }, z.core.$strip>;
193
+ export type ToolDefinition = z.infer<typeof ToolDefinitionSchema> & {
194
+ /**
195
+ * Internal metadata indicating where this tool definition was loaded from.
196
+ * Not part of the external schema; added programmatically after validation.
197
+ */
198
+ _definitionPath?: string;
199
+ };
195
200
  export declare const OAuth2EndpointsSchema: z.ZodObject<{
196
201
  authorizationUrl: z.ZodString;
197
202
  tokenUrl: z.ZodString;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/core/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB;;;GAGG;AAGH,eAAO,MAAM,eAAe;;;;;;;;;;;;;iBAO1B,CAAC;AAEH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAGxD,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;iBAM3B,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAG1D,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAiChC,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAGpE,eAAO,MAAM,kBAAkB;;;;;iBAK7B,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAG9D,eAAO,MAAM,mBAAmB;;;;;;;;iBAK9B,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAGhE,eAAO,MAAM,kBAAkB;;;;;iBAK7B,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAG9D,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAuB/B,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,GAAG;IAClE;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAKF,eAAO,MAAM,qBAAqB;;;;iBAIhC,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAGpE,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;iBAanC,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,OAAO,GAAG,cAAc,CAkBpE;AAED;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,OAAO,GAAG,kBAAkB,CAsBhF"}
@@ -76,8 +76,7 @@ export const RateLimitingSchema = z.object({
76
76
  quota_per_hour: z.number().optional(),
77
77
  });
78
78
  // Complete tool definition
79
- export const ToolDefinitionSchema = z
80
- .object({
79
+ export const ToolDefinitionSchema = z.object({
81
80
  name: z.string(),
82
81
  description: z.string(),
83
82
  version: z.string(),
@@ -97,9 +96,9 @@ export const ToolDefinitionSchema = z
97
96
  deprecated: z.boolean().optional(),
98
97
  tags: z.array(z.string()).optional(),
99
98
  deprecation_message: z.string().optional(),
100
- _definitionPath: z.string().optional(),
101
- })
102
- .passthrough(); // Allow additional properties like _definitionPath
99
+ // _definitionPath: z.string().optional(), // Internal use for tracking source file path
100
+ });
101
+ // export type ToolDefinition = z.infer<typeof ToolDefinitionSchema>;
103
102
  // OAuth2 provider endpoints schema
104
103
  export const OAuth2EndpointsSchema = z.object({
105
104
  authorizationUrl: z.string().url(),
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/core/schema.ts"],"names":[],"mappings":"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"}
@@ -2,8 +2,19 @@ import { ToolDefinition } from './schema';
2
2
  /**
3
3
  * Tool Loader - Loads and validates YAML/JSON tool definitions
4
4
  * Implements TDD pattern: test failures guide implementation
5
+ * Features caching for efficient discovery with thousands of tools
5
6
  */
6
7
  export declare class ToolLoader {
8
+ /**
9
+ * Static cache for discovered paths - populated on first autoDiscover call
10
+ * Subsequent calls return cached result (O(1) instead of O(n))
11
+ */
12
+ private static discoveredPathsCache;
13
+ /**
14
+ * Discover packages using only fs and path (no createRequire needed)
15
+ * Searches for tools in node_modules/@matimo/* and workspace packages
16
+ */
17
+ private getNodeModulesPath;
7
18
  /**
8
19
  * Load a single tool from a YAML or JSON file
9
20
  * @param filePath - Path to tool definition file
@@ -25,15 +36,16 @@ export declare class ToolLoader {
25
36
  */
26
37
  loadToolFromObject(data: unknown): ToolDefinition;
27
38
  /**
28
- * Auto-discover tool packages in node_modules/@matimo/*
39
+ * Auto-discover tool packages in node_modules/@matimo/* and core tools
40
+ * Features efficient caching: first call discovers, subsequent calls return cached result
29
41
  * @returns Array of paths to tool directories
30
42
  */
31
43
  autoDiscoverPackages(): string[];
32
44
  /**
33
- * Get node_modules path intelligently
34
- * Works in both normal and monorepo installations
45
+ * Clear the discovery cache (useful for testing or dynamic tool loading scenarios)
46
+ * @internal Used for testing only
35
47
  */
36
- private getNodeModulesPath;
48
+ static clearDiscoveryCache(): void;
37
49
  /**
38
50
  * Load tools from multiple directories
39
51
  * @param dirPaths - Array of directory paths
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-loader.d.ts","sourceRoot":"","sources":["../../src/core/tool-loader.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAA0B,MAAM,UAAU,CAAC;AAGlE;;;;GAIG;AAEH,qBAAa,UAAU;IACrB;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,oBAAoB,CAAyB;IAC5D;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAsB1B;;;;;OAKG;IACH,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc;IAgDlD;;;;;OAKG;IACH,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC;IAkDpE;;;;OAIG;IACH,kBAAkB,CAAC,IAAI,EAAE,OAAO,GAAG,cAAc;IAIjD;;;;OAIG;IACH,oBAAoB,IAAI,MAAM,EAAE;IAkFhC;;;OAGG;IACH,MAAM,CAAC,mBAAmB,IAAI,IAAI;IAIlC;;;;OAIG;IACH,0BAA0B,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC;CAkB5E;AAED,eAAe,UAAU,CAAC"}