matimo 0.1.0-alpha.12 → 0.1.0-alpha.13
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/README.md +63 -0
- package/package.json +3 -3
- package/packages/cli/dist/cli.d.ts.map +1 -1
- package/packages/cli/dist/cli.js +16 -0
- package/packages/cli/dist/cli.js.map +1 -1
- package/packages/cli/dist/commands/doctor.d.ts +2 -0
- package/packages/cli/dist/commands/doctor.d.ts.map +1 -0
- package/packages/cli/dist/commands/doctor.js +174 -0
- package/packages/cli/dist/commands/doctor.js.map +1 -0
- package/packages/cli/dist/commands/mcp.d.ts +2 -1
- package/packages/cli/dist/commands/mcp.d.ts.map +1 -1
- package/packages/cli/dist/commands/mcp.js +9 -1
- package/packages/cli/dist/commands/mcp.js.map +1 -1
- package/packages/cli/dist/commands/review.d.ts +10 -0
- package/packages/cli/dist/commands/review.d.ts.map +1 -0
- package/packages/cli/dist/commands/review.js +176 -0
- package/packages/cli/dist/commands/review.js.map +1 -0
- package/packages/core/dist/approval/approval-handler.d.ts +5 -1
- package/packages/core/dist/approval/approval-handler.d.ts.map +1 -1
- package/packages/core/dist/approval/approval-handler.js +6 -0
- package/packages/core/dist/approval/approval-handler.js.map +1 -1
- package/packages/core/dist/core/schema.d.ts +29 -8
- package/packages/core/dist/core/schema.d.ts.map +1 -1
- package/packages/core/dist/core/schema.js +10 -3
- package/packages/core/dist/core/schema.js.map +1 -1
- package/packages/core/dist/core/skill-content-parser.d.ts +91 -0
- package/packages/core/dist/core/skill-content-parser.d.ts.map +1 -0
- package/packages/core/dist/core/skill-content-parser.js +248 -0
- package/packages/core/dist/core/skill-content-parser.js.map +1 -0
- package/packages/core/dist/core/skill-loader.d.ts +46 -0
- package/packages/core/dist/core/skill-loader.d.ts.map +1 -0
- package/packages/core/dist/core/skill-loader.js +310 -0
- package/packages/core/dist/core/skill-loader.js.map +1 -0
- package/packages/core/dist/core/skill-registry.d.ts +131 -0
- package/packages/core/dist/core/skill-registry.d.ts.map +1 -0
- package/packages/core/dist/core/skill-registry.js +316 -0
- package/packages/core/dist/core/skill-registry.js.map +1 -0
- package/packages/core/dist/core/tfidf-embedding.d.ts +45 -0
- package/packages/core/dist/core/tfidf-embedding.d.ts.map +1 -0
- package/packages/core/dist/core/tfidf-embedding.js +199 -0
- package/packages/core/dist/core/tfidf-embedding.js.map +1 -0
- package/packages/core/dist/core/types.d.ts +192 -6
- package/packages/core/dist/core/types.d.ts.map +1 -1
- package/packages/core/dist/encodings/parameter-encoding.d.ts.map +1 -1
- package/packages/core/dist/encodings/parameter-encoding.js +6 -2
- package/packages/core/dist/encodings/parameter-encoding.js.map +1 -1
- package/packages/core/dist/errors/matimo-error.d.ts +3 -1
- package/packages/core/dist/errors/matimo-error.d.ts.map +1 -1
- package/packages/core/dist/errors/matimo-error.js +2 -0
- package/packages/core/dist/errors/matimo-error.js.map +1 -1
- package/packages/core/dist/executors/command-executor.d.ts +9 -2
- package/packages/core/dist/executors/command-executor.d.ts.map +1 -1
- package/packages/core/dist/executors/command-executor.js +14 -2
- package/packages/core/dist/executors/command-executor.js.map +1 -1
- package/packages/core/dist/executors/function-executor.d.ts +10 -3
- package/packages/core/dist/executors/function-executor.d.ts.map +1 -1
- package/packages/core/dist/executors/function-executor.js +11 -4
- package/packages/core/dist/executors/function-executor.js.map +1 -1
- package/packages/core/dist/executors/http-executor.d.ts +16 -2
- package/packages/core/dist/executors/http-executor.d.ts.map +1 -1
- package/packages/core/dist/executors/http-executor.js +22 -6
- package/packages/core/dist/executors/http-executor.js.map +1 -1
- package/packages/core/dist/index.d.ts +20 -3
- package/packages/core/dist/index.d.ts.map +1 -1
- package/packages/core/dist/index.js +14 -1
- package/packages/core/dist/index.js.map +1 -1
- package/packages/core/dist/integrations/langchain.d.ts +55 -0
- package/packages/core/dist/integrations/langchain.d.ts.map +1 -1
- package/packages/core/dist/integrations/langchain.js +66 -0
- package/packages/core/dist/integrations/langchain.js.map +1 -1
- package/packages/core/dist/logging/winston-logger.d.ts.map +1 -1
- package/packages/core/dist/logging/winston-logger.js +9 -1
- package/packages/core/dist/logging/winston-logger.js.map +1 -1
- package/packages/core/dist/matimo-instance.d.ts +210 -18
- package/packages/core/dist/matimo-instance.d.ts.map +1 -1
- package/packages/core/dist/matimo-instance.js +704 -40
- package/packages/core/dist/matimo-instance.js.map +1 -1
- package/packages/core/dist/mcp/mcp-server.d.ts +23 -0
- package/packages/core/dist/mcp/mcp-server.d.ts.map +1 -1
- package/packages/core/dist/mcp/mcp-server.js +119 -8
- package/packages/core/dist/mcp/mcp-server.js.map +1 -1
- package/packages/core/dist/mcp/tool-converter.d.ts.map +1 -1
- package/packages/core/dist/mcp/tool-converter.js +10 -1
- package/packages/core/dist/mcp/tool-converter.js.map +1 -1
- package/packages/core/dist/policy/approval-manifest.d.ts +74 -0
- package/packages/core/dist/policy/approval-manifest.d.ts.map +1 -0
- package/packages/core/dist/policy/approval-manifest.js +178 -0
- package/packages/core/dist/policy/approval-manifest.js.map +1 -0
- package/packages/core/dist/policy/content-validator.d.ts +19 -0
- package/packages/core/dist/policy/content-validator.d.ts.map +1 -0
- package/packages/core/dist/policy/content-validator.js +196 -0
- package/packages/core/dist/policy/content-validator.js.map +1 -0
- package/packages/core/dist/policy/default-policy.d.ts +46 -0
- package/packages/core/dist/policy/default-policy.d.ts.map +1 -0
- package/packages/core/dist/policy/default-policy.js +241 -0
- package/packages/core/dist/policy/default-policy.js.map +1 -0
- package/packages/core/dist/policy/events.d.ts +71 -0
- package/packages/core/dist/policy/events.d.ts.map +1 -0
- package/packages/core/dist/policy/events.js +8 -0
- package/packages/core/dist/policy/events.js.map +1 -0
- package/packages/core/dist/policy/index.d.ts +13 -0
- package/packages/core/dist/policy/index.d.ts.map +1 -0
- package/packages/core/dist/policy/index.js +9 -0
- package/packages/core/dist/policy/index.js.map +1 -0
- package/packages/core/dist/policy/integrity-tracker.d.ts +62 -0
- package/packages/core/dist/policy/integrity-tracker.d.ts.map +1 -0
- package/packages/core/dist/policy/integrity-tracker.js +79 -0
- package/packages/core/dist/policy/integrity-tracker.js.map +1 -0
- package/packages/core/dist/policy/policy-loader.d.ts +58 -0
- package/packages/core/dist/policy/policy-loader.d.ts.map +1 -0
- package/packages/core/dist/policy/policy-loader.js +153 -0
- package/packages/core/dist/policy/policy-loader.js.map +1 -0
- package/packages/core/dist/policy/risk-classifier.d.ts +18 -0
- package/packages/core/dist/policy/risk-classifier.d.ts.map +1 -0
- package/packages/core/dist/policy/risk-classifier.js +43 -0
- package/packages/core/dist/policy/risk-classifier.js.map +1 -0
- package/packages/core/dist/policy/types.d.ts +126 -0
- package/packages/core/dist/policy/types.d.ts.map +1 -0
- package/packages/core/dist/policy/types.js +8 -0
- package/packages/core/dist/policy/types.js.map +1 -0
|
@@ -18,7 +18,7 @@ export interface Parameter {
|
|
|
18
18
|
* Authentication configuration for a tool
|
|
19
19
|
*/
|
|
20
20
|
export interface AuthConfig {
|
|
21
|
-
type
|
|
21
|
+
type?: 'none' | 'api_key' | 'oauth2' | 'basic' | 'bearer' | 'custom';
|
|
22
22
|
location?: 'header' | 'query' | 'body';
|
|
23
23
|
name?: string;
|
|
24
24
|
scheme?: string;
|
|
@@ -42,7 +42,7 @@ export interface HttpExecution {
|
|
|
42
42
|
method: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH';
|
|
43
43
|
url: string;
|
|
44
44
|
headers?: Record<string, string>;
|
|
45
|
-
body?:
|
|
45
|
+
body?: unknown;
|
|
46
46
|
params?: Record<string, string>;
|
|
47
47
|
query_params?: Record<string, string>;
|
|
48
48
|
parameter_encoding?: ParameterEncodingConfig[];
|
|
@@ -70,12 +70,15 @@ export interface FunctionExecution {
|
|
|
70
70
|
timeout?: number;
|
|
71
71
|
}
|
|
72
72
|
/**
|
|
73
|
-
* Output schema for tool response validation
|
|
73
|
+
* Output schema for tool response validation.
|
|
74
|
+
* TypeScript interface inferred from Zod schema in schema.ts.
|
|
75
|
+
* Properties allows nested output schemas or any unknown structure for flexibility.
|
|
74
76
|
*/
|
|
75
77
|
export interface OutputSchema {
|
|
76
|
-
type
|
|
77
|
-
properties?: Record<string,
|
|
78
|
+
type?: string;
|
|
79
|
+
properties?: Record<string, unknown>;
|
|
78
80
|
items?: OutputSchema;
|
|
81
|
+
required?: string[];
|
|
79
82
|
description?: string;
|
|
80
83
|
}
|
|
81
84
|
/**
|
|
@@ -111,7 +114,7 @@ export interface ToolDefinition {
|
|
|
111
114
|
name: string;
|
|
112
115
|
version: string;
|
|
113
116
|
description: string;
|
|
114
|
-
parameters
|
|
117
|
+
parameters?: Record<string, Parameter>;
|
|
115
118
|
execution: HttpExecution | CommandExecution | FunctionExecution;
|
|
116
119
|
authentication?: AuthConfig;
|
|
117
120
|
output_schema?: OutputSchema;
|
|
@@ -126,6 +129,13 @@ export interface ToolDefinition {
|
|
|
126
129
|
* Set to true for destructive operations (CREATE, DELETE, DROP, etc.)
|
|
127
130
|
*/
|
|
128
131
|
requires_approval?: boolean;
|
|
132
|
+
/**
|
|
133
|
+
* Tool lifecycle status. Tools without a status are treated as 'approved'.
|
|
134
|
+
* - draft: Agent-created, not yet human-reviewed
|
|
135
|
+
* - approved: Human-reviewed and ready for use
|
|
136
|
+
* - deprecated: Scheduled for removal
|
|
137
|
+
*/
|
|
138
|
+
status?: 'draft' | 'approved' | 'deprecated';
|
|
129
139
|
/**
|
|
130
140
|
* Internal: Path to the tool definition file (set by ToolLoader)
|
|
131
141
|
* Used to resolve relative paths for function executors
|
|
@@ -170,4 +180,180 @@ export interface ValidationResult {
|
|
|
170
180
|
valid: boolean;
|
|
171
181
|
errors: ValidationError[];
|
|
172
182
|
}
|
|
183
|
+
/**
|
|
184
|
+
* Options for MatimoInstance.execute()
|
|
185
|
+
*
|
|
186
|
+
* @example
|
|
187
|
+
* // Single-tenant (reads from process.env)
|
|
188
|
+
* await matimo.execute('slack-send-message', { channel: '#general', text: 'Hello' });
|
|
189
|
+
*
|
|
190
|
+
* // Multi-tenant (credentials supplied per call — never touches process.env)
|
|
191
|
+
* await matimo.execute('slack-send-message', { channel: '#general', text: 'Hello' }, {
|
|
192
|
+
* credentials: { SLACK_BOT_TOKEN: 'xoxb-tenant-a-token' },
|
|
193
|
+
* });
|
|
194
|
+
*/
|
|
195
|
+
export interface ExecuteOptions {
|
|
196
|
+
/**
|
|
197
|
+
* Maximum time (ms) to wait for the tool to complete.
|
|
198
|
+
* Overrides the timeout defined in the tool's YAML definition.
|
|
199
|
+
*/
|
|
200
|
+
timeout?: number;
|
|
201
|
+
/**
|
|
202
|
+
* Per-call credential overrides. Keys must match the env-var names that the
|
|
203
|
+
* tool's YAML references (e.g. `SLACK_BOT_TOKEN`, `GITHUB_ACCESS_TOKEN`).
|
|
204
|
+
*
|
|
205
|
+
* When provided:
|
|
206
|
+
* - **HttpExecutor**: used for Authorization headers / query params / Basic Auth
|
|
207
|
+
* instead of `process.env`.
|
|
208
|
+
* - **CommandExecutor**: injected as environment variables into the child process
|
|
209
|
+
* (`{ ...process.env, ...credentials }`), so spawned scripts see them normally.
|
|
210
|
+
* - **FunctionExecutor**: passed as `context.credentials` to the tool function.
|
|
211
|
+
*
|
|
212
|
+
* When NOT provided the current behaviour is unchanged — credentials are read
|
|
213
|
+
* from `process.env` as before (fully backward-compatible).
|
|
214
|
+
*
|
|
215
|
+
* SECURITY: values are never logged, never persisted, and held only for the
|
|
216
|
+
* duration of the execute() call.
|
|
217
|
+
*/
|
|
218
|
+
credentials?: Record<string, string>;
|
|
219
|
+
/**
|
|
220
|
+
* Policy context for the current execution. When a PolicyEngine is active,
|
|
221
|
+
* this context is checked against the tool's requirements before execution.
|
|
222
|
+
*/
|
|
223
|
+
context?: import('../policy/types').PolicyContext;
|
|
224
|
+
/**
|
|
225
|
+
* Skip approval check for this execution. Use when the caller (e.g., MCP layer)
|
|
226
|
+
* has already confirmed approval out-of-band, to avoid re-prompting the user.
|
|
227
|
+
* Does not override policy-level quarantine checks (pending_approval state).
|
|
228
|
+
* Default: false
|
|
229
|
+
*/
|
|
230
|
+
approved?: boolean;
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* Bundled resources within a skill directory (scripts, references, assets)
|
|
234
|
+
*/
|
|
235
|
+
export interface BundledResources {
|
|
236
|
+
scripts: string[];
|
|
237
|
+
references: string[];
|
|
238
|
+
assets: string[];
|
|
239
|
+
other: string[];
|
|
240
|
+
}
|
|
241
|
+
/**
|
|
242
|
+
* YAML frontmatter for a SKILL.md file
|
|
243
|
+
* Follows agentskills.io/specification
|
|
244
|
+
*/
|
|
245
|
+
export interface SkillFrontmatter {
|
|
246
|
+
name: string;
|
|
247
|
+
description: string;
|
|
248
|
+
version?: string;
|
|
249
|
+
license?: string;
|
|
250
|
+
compatibility?: string;
|
|
251
|
+
'allowed-tools'?: string | string[];
|
|
252
|
+
metadata?: Record<string, string>;
|
|
253
|
+
}
|
|
254
|
+
/**
|
|
255
|
+
* A single section of a skill body, parsed from Markdown headings.
|
|
256
|
+
*/
|
|
257
|
+
export interface SkillSection {
|
|
258
|
+
heading: string;
|
|
259
|
+
level: number;
|
|
260
|
+
content: string;
|
|
261
|
+
tokenEstimate: number;
|
|
262
|
+
children: SkillSection[];
|
|
263
|
+
path: string;
|
|
264
|
+
}
|
|
265
|
+
/**
|
|
266
|
+
* Parsed skill content (frontmatter + body + structured sections)
|
|
267
|
+
*/
|
|
268
|
+
export interface ParsedSkill {
|
|
269
|
+
frontmatter: SkillFrontmatter;
|
|
270
|
+
body: string;
|
|
271
|
+
raw: string;
|
|
272
|
+
sections?: SkillSection[];
|
|
273
|
+
totalTokens?: number;
|
|
274
|
+
}
|
|
275
|
+
/**
|
|
276
|
+
* Catalog metadata for a skill (download count, rating, etc.)
|
|
277
|
+
*/
|
|
278
|
+
export interface SkillCatalogInfo {
|
|
279
|
+
author: string;
|
|
280
|
+
downloads: number;
|
|
281
|
+
rating: number;
|
|
282
|
+
tags: string[];
|
|
283
|
+
publishedAt: string;
|
|
284
|
+
updatedAt: string;
|
|
285
|
+
repository?: string;
|
|
286
|
+
checksum?: string;
|
|
287
|
+
}
|
|
288
|
+
/**
|
|
289
|
+
* Complete skill definition
|
|
290
|
+
* Implements agentskills.io specification with Matimo extensions
|
|
291
|
+
*/
|
|
292
|
+
export interface SkillDefinition {
|
|
293
|
+
name: string;
|
|
294
|
+
description: string;
|
|
295
|
+
version?: string;
|
|
296
|
+
license?: string;
|
|
297
|
+
compatibility?: string;
|
|
298
|
+
allowedTools?: string[];
|
|
299
|
+
metadata?: Record<string, string>;
|
|
300
|
+
body: string;
|
|
301
|
+
/** Structured sections parsed from Markdown headings */
|
|
302
|
+
sections?: SkillSection[];
|
|
303
|
+
/** Approximate total token count for the skill body */
|
|
304
|
+
totalTokens?: number;
|
|
305
|
+
resources: BundledResources;
|
|
306
|
+
source: 'builtin' | 'user' | 'catalog';
|
|
307
|
+
_path?: string;
|
|
308
|
+
catalogInfo?: SkillCatalogInfo;
|
|
309
|
+
dependsOn?: string[];
|
|
310
|
+
}
|
|
311
|
+
/**
|
|
312
|
+
* Skill summary for discovery (Level 1 - minimal context)
|
|
313
|
+
*/
|
|
314
|
+
export interface SkillSummary {
|
|
315
|
+
name: string;
|
|
316
|
+
description: string;
|
|
317
|
+
version?: string;
|
|
318
|
+
license?: string;
|
|
319
|
+
metadata?: Record<string, string>;
|
|
320
|
+
source: 'builtin' | 'user' | 'catalog';
|
|
321
|
+
}
|
|
322
|
+
/**
|
|
323
|
+
* Options for searching skills
|
|
324
|
+
*/
|
|
325
|
+
export interface SearchSkillsOptions {
|
|
326
|
+
query?: string;
|
|
327
|
+
category?: string;
|
|
328
|
+
difficulty?: string;
|
|
329
|
+
tags?: string[];
|
|
330
|
+
author?: string;
|
|
331
|
+
limit?: number;
|
|
332
|
+
offset?: number;
|
|
333
|
+
/** Use semantic search via embeddings (requires an EmbeddingProvider) */
|
|
334
|
+
semantic?: boolean;
|
|
335
|
+
}
|
|
336
|
+
/**
|
|
337
|
+
* Options for selective skill content loading
|
|
338
|
+
*/
|
|
339
|
+
export interface SkillContentOptions {
|
|
340
|
+
/** Only return sections matching these headings (case-insensitive partial match) */
|
|
341
|
+
sections?: string[];
|
|
342
|
+
/** Maximum total tokens to return */
|
|
343
|
+
maxTokens?: number;
|
|
344
|
+
/** Include the preamble (default: true) */
|
|
345
|
+
includePreamble?: boolean;
|
|
346
|
+
/** Depth limit for section inclusion (1 = top-level only) */
|
|
347
|
+
maxDepth?: number;
|
|
348
|
+
}
|
|
349
|
+
/**
|
|
350
|
+
* Pluggable embedding provider for semantic skill search.
|
|
351
|
+
* Implement this interface to connect to OpenAI, Cohere, local models, etc.
|
|
352
|
+
*/
|
|
353
|
+
export interface EmbeddingProvider {
|
|
354
|
+
embed(text: string): Promise<number[]>;
|
|
355
|
+
embedBatch(texts: string[]): Promise<number[][]>;
|
|
356
|
+
/** Embedding dimensionality */
|
|
357
|
+
dimensions: number;
|
|
358
|
+
}
|
|
173
359
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAE1E;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,CAAC;IAC3D,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,EAAE,CAAC;IACrC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;CACxC;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parameter-encoding.d.ts","sourceRoot":"","sources":["../../src/encodings/parameter-encoding.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,SAAS,EAAE,uBAAuB,EAAE,GACnC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAoBzB;
|
|
1
|
+
{"version":3,"file":"parameter-encoding.d.ts","sourceRoot":"","sources":["../../src/encodings/parameter-encoding.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,SAAS,EAAE,uBAAuB,EAAE,GACnC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAoBzB;AAsFD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG"}
|
|
@@ -79,8 +79,12 @@ function encodeMimeRfc2822(sourceValues) {
|
|
|
79
79
|
message += body;
|
|
80
80
|
// Convert to base64url
|
|
81
81
|
const base64 = Buffer.from(message).toString('base64');
|
|
82
|
-
// Replace standard base64 characters with URL-safe variants
|
|
83
|
-
|
|
82
|
+
// Replace standard base64 characters with URL-safe variants, then strip
|
|
83
|
+
// trailing padding. Use while+endsWith instead of a regex to avoid ReDoS.
|
|
84
|
+
let result = base64.replace(/\+/g, '-').replace(/\//g, '_');
|
|
85
|
+
while (result.endsWith('='))
|
|
86
|
+
result = result.slice(0, -1);
|
|
87
|
+
return result;
|
|
84
88
|
}
|
|
85
89
|
/**
|
|
86
90
|
* Encode parameters as URL-encoded form data
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parameter-encoding.js","sourceRoot":"","sources":["../../src/encodings/parameter-encoding.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"parameter-encoding.js","sourceRoot":"","sources":["../../src/encodings/parameter-encoding.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,7 +12,9 @@ export declare enum ErrorCode {
|
|
|
12
12
|
TIMEOUT = "TIMEOUT",
|
|
13
13
|
NETWORK_ERROR = "NETWORK_ERROR",
|
|
14
14
|
INVALID_PARAMETER = "INVALID_PARAMETER",
|
|
15
|
-
UNKNOWN_ERROR = "UNKNOWN_ERROR"
|
|
15
|
+
UNKNOWN_ERROR = "UNKNOWN_ERROR",
|
|
16
|
+
POLICY_DENIED = "POLICY_DENIED",
|
|
17
|
+
POLICY_TIER_BLOCKED = "POLICY_TIER_BLOCKED"
|
|
16
18
|
}
|
|
17
19
|
/**
|
|
18
20
|
* Custom error class for Matimo
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"matimo-error.d.ts","sourceRoot":"","sources":["../../src/errors/matimo-error.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,oBAAY,SAAS;IACnB,cAAc,mBAAmB;IACjC,gBAAgB,qBAAqB;IACrC,WAAW,gBAAgB;IAC3B,cAAc,mBAAmB;IACjC,cAAc,mBAAmB;IACjC,iBAAiB,sBAAsB;IACvC,mBAAmB,wBAAwB;IAC3C,OAAO,YAAY;IACnB,aAAa,kBAAkB;IAC/B,iBAAiB,sBAAsB;IACvC,aAAa,kBAAkB;
|
|
1
|
+
{"version":3,"file":"matimo-error.d.ts","sourceRoot":"","sources":["../../src/errors/matimo-error.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,oBAAY,SAAS;IACnB,cAAc,mBAAmB;IACjC,gBAAgB,qBAAqB;IACrC,WAAW,gBAAgB;IAC3B,cAAc,mBAAmB;IACjC,cAAc,mBAAmB;IACjC,iBAAiB,sBAAsB;IACvC,mBAAmB,wBAAwB;IAC3C,OAAO,YAAY;IACnB,aAAa,kBAAkB;IAC/B,iBAAiB,sBAAsB;IACvC,aAAa,kBAAkB;IAC/B,aAAa,kBAAkB;IAC/B,mBAAmB,wBAAwB;CAC5C;AAED;;GAEG;AACH,qBAAa,WAAY,SAAQ,KAAK;IAK3B,IAAI,EAAE,SAAS;IACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IALnC,KAAK,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC;gBAG7B,OAAO,EAAE,MAAM,EACR,IAAI,EAAE,SAAS,EACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,YAAA,EACxC,KAAK,CAAC,EAAE,KAAK,GAAG,OAAO;IAOzB,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAYlC;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,SAAwB,eAW5E;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,WAAW,CAEb;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,WAAW,CAEb"}
|
|
@@ -14,6 +14,8 @@ export var ErrorCode;
|
|
|
14
14
|
ErrorCode["NETWORK_ERROR"] = "NETWORK_ERROR";
|
|
15
15
|
ErrorCode["INVALID_PARAMETER"] = "INVALID_PARAMETER";
|
|
16
16
|
ErrorCode["UNKNOWN_ERROR"] = "UNKNOWN_ERROR";
|
|
17
|
+
ErrorCode["POLICY_DENIED"] = "POLICY_DENIED";
|
|
18
|
+
ErrorCode["POLICY_TIER_BLOCKED"] = "POLICY_TIER_BLOCKED";
|
|
17
19
|
})(ErrorCode || (ErrorCode = {}));
|
|
18
20
|
/**
|
|
19
21
|
* Custom error class for Matimo
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"matimo-error.js","sourceRoot":"","sources":["../../src/errors/matimo-error.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,CAAN,IAAY,
|
|
1
|
+
{"version":3,"file":"matimo-error.js","sourceRoot":"","sources":["../../src/errors/matimo-error.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,CAAN,IAAY,SAcX;AAdD,WAAY,SAAS;IACnB,8CAAiC,CAAA;IACjC,kDAAqC,CAAA;IACrC,wCAA2B,CAAA;IAC3B,8CAAiC,CAAA;IACjC,8CAAiC,CAAA;IACjC,oDAAuC,CAAA;IACvC,wDAA2C,CAAA;IAC3C,gCAAmB,CAAA;IACnB,4CAA+B,CAAA;IAC/B,oDAAuC,CAAA;IACvC,4CAA+B,CAAA;IAC/B,4CAA+B,CAAA;IAC/B,wDAA2C,CAAA;AAC7C,CAAC,EAdW,SAAS,KAAT,SAAS,QAcpB;AAED;;GAEG;AACH,MAAM,OAAO,WAAY,SAAQ,KAAK;IAGpC,YACE,OAAe,EACR,IAAe,EACf,OAAiC,EACxC,KAAuB;QAEvB,KAAK,CAAC,OAAO,CAAC,CAAC;QAJR,SAAI,GAAJ,IAAI,CAAW;QACf,YAAO,GAAP,OAAO,CAA0B;QAIxC,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;QAC1B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,MAAM;QACJ,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,KAAK,EACH,IAAI,CAAC,KAAK,YAAY,KAAK;gBACzB,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;gBACxD,CAAC,CAAC,IAAI,CAAC,KAAK;SACjB,CAAC;IACJ,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,KAAc,EAAE,OAAO,GAAG,qBAAqB;IAC3E,8CAA8C;IAC9C,MAAM,KAAK,GAAG,KAA4C,CAAC;IAC3D,MAAM,QAAQ,GAAG,KAAK,EAAE,QAA+C,CAAC;IACxE,MAAM,UAAU,GAAI,QAAQ,EAAE,MAA6B,IAAI,GAAG,CAAC;IACnE,MAAM,OAAO,GAAG,QAAQ,EAAE,IAA2C,CAAC;IACtE,MAAM,IAAI,GAA4B,EAAE,UAAU,EAAE,CAAC;IACrD,IAAI,OAAO,KAAK,SAAS;QAAE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAClD,oFAAoF;IACpF,IAAI,CAAC,aAAa,GAAG,KAAK,EAAE,OAAO,IAAI,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;IAC3D,OAAO,IAAI,WAAW,CAAC,OAAO,EAAE,SAAS,CAAC,gBAAgB,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;AAC3E,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CACnC,OAAe,EACf,OAAiC;IAEjC,OAAO,IAAI,WAAW,CAAC,OAAO,EAAE,SAAS,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;AACxE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAClC,OAAe,EACf,OAAiC;IAEjC,OAAO,IAAI,WAAW,CAAC,OAAO,EAAE,SAAS,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;AACvE,CAAC"}
|
|
@@ -7,9 +7,16 @@ export declare class CommandExecutor {
|
|
|
7
7
|
private cwd?;
|
|
8
8
|
constructor(cwd?: string);
|
|
9
9
|
/**
|
|
10
|
-
* Execute a tool that runs a shell command
|
|
10
|
+
* Execute a tool that runs a shell command.
|
|
11
|
+
*
|
|
12
|
+
* @param tool - Tool definition
|
|
13
|
+
* @param params - Tool parameters
|
|
14
|
+
* @param credentials - Optional per-call credential overrides. Keys must match the env-var
|
|
15
|
+
* names used by the tool (e.g. `SLACK_BOT_TOKEN`). When provided they are merged on top of
|
|
16
|
+
* `process.env` inside the child process so the spawned script sees them as normal env vars.
|
|
17
|
+
* Values are never logged. Falls back to the current environment when not provided.
|
|
11
18
|
*/
|
|
12
|
-
execute(tool: ToolDefinition, params: Record<string, unknown>): Promise<unknown>;
|
|
19
|
+
execute(tool: ToolDefinition, params: Record<string, unknown>, credentials?: Record<string, string>): Promise<unknown>;
|
|
13
20
|
/**
|
|
14
21
|
* Replace parameter placeholders in a string
|
|
15
22
|
*/
|
|
@@ -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
|
|
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"}
|
|
@@ -9,9 +9,16 @@ export class CommandExecutor {
|
|
|
9
9
|
this.cwd = cwd;
|
|
10
10
|
}
|
|
11
11
|
/**
|
|
12
|
-
* Execute a tool that runs a shell command
|
|
12
|
+
* Execute a tool that runs a shell command.
|
|
13
|
+
*
|
|
14
|
+
* @param tool - Tool definition
|
|
15
|
+
* @param params - Tool parameters
|
|
16
|
+
* @param credentials - Optional per-call credential overrides. Keys must match the env-var
|
|
17
|
+
* names used by the tool (e.g. `SLACK_BOT_TOKEN`). When provided they are merged on top of
|
|
18
|
+
* `process.env` inside the child process so the spawned script sees them as normal env vars.
|
|
19
|
+
* Values are never logged. Falls back to the current environment when not provided.
|
|
13
20
|
*/
|
|
14
|
-
async execute(tool, params) {
|
|
21
|
+
async execute(tool, params, credentials) {
|
|
15
22
|
if (tool.execution.type !== 'command') {
|
|
16
23
|
throw new MatimoError('Tool execution type is not command', ErrorCode.EXECUTION_FAILED, {
|
|
17
24
|
expectedType: 'command',
|
|
@@ -27,6 +34,11 @@ export class CommandExecutor {
|
|
|
27
34
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
28
35
|
const spawnOptions = {
|
|
29
36
|
stdio: ['pipe', 'pipe', 'pipe'],
|
|
37
|
+
// Merge per-call credentials on top of the current environment so that
|
|
38
|
+
// the spawned process sees them as ordinary env vars. This is safe:
|
|
39
|
+
// values are held only in memory for the duration of the spawn setup
|
|
40
|
+
// and are never written to disk or logged.
|
|
41
|
+
env: credentials ? { ...process.env, ...credentials } : process.env,
|
|
30
42
|
};
|
|
31
43
|
// Set working directory if provided
|
|
32
44
|
if (this.cwd) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command-executor.js","sourceRoot":"","sources":["../../src/executors/command-executor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAEtC,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAEhE;;;GAGG;AAEH,MAAM,OAAO,eAAe;IAG1B,YAAY,GAAY;QACtB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAED
|
|
1
|
+
{"version":3,"file":"command-executor.js","sourceRoot":"","sources":["../../src/executors/command-executor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAEtC,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAEhE;;;GAGG;AAEH,MAAM,OAAO,eAAe;IAG1B,YAAY,GAAY;QACtB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,OAAO,CACX,IAAoB,EACpB,MAA+B,EAC/B,WAAoC;QAEpC,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YACtC,MAAM,IAAI,WAAW,CAAC,oCAAoC,EAAE,SAAS,CAAC,gBAAgB,EAAE;gBACtF,YAAY,EAAE,SAAS;gBACvB,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI;aAChC,CAAC,CAAC;QACL,CAAC;QAED,MAAM,EAAE,OAAO,EAAE,IAAI,GAAG,EAAE,EAAE,OAAO,GAAG,KAAK,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC;QAC/D,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE7B,iCAAiC;QACjC,MAAM,gBAAgB,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC9D,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;QAE1E,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,8DAA8D;YAC9D,MAAM,YAAY,GAAQ;gBACxB,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;gBAC/B,uEAAuE;gBACvE,oEAAoE;gBACpE,qEAAqE;gBACrE,2CAA2C;gBAC3C,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,WAAW,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG;aACpE,CAAC;YAEF,oCAAoC;YACpC,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;gBACb,YAAY,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;YAC9B,CAAC;YAED,MAAM,KAAK,GAAG,KAAK,CAAC,gBAAgB,EAAE,aAAa,EAAE,YAAY,CAAC,CAAC;YAEnE,IAAI,MAAM,GAAG,EAAE,CAAC;YAChB,IAAI,MAAM,GAAG,EAAE,CAAC;YAChB,IAAI,QAAQ,GAAG,KAAK,CAAC;YAErB,iBAAiB;YACjB,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC5B,QAAQ,GAAG,IAAI,CAAC;gBAChB,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACxB,CAAC,EAAE,OAAO,CAAC,CAAC;YAEZ,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;gBAChC,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC5B,CAAC,CAAC,CAAC;YAEH,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;gBAChC,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC5B,CAAC,CAAC,CAAC;YAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;gBACzB,YAAY,CAAC,KAAK,CAAC,CAAC;gBACpB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;gBAExC,IAAI,QAAQ,EAAE,CAAC;oBACb,OAAO,CAAC;wBACN,OAAO,EAAE,KAAK;wBACd,KAAK,EAAE,SAAS;wBAChB,QAAQ,EAAE,CAAC,CAAC;wBACZ,QAAQ;qBACT,CAAC,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACN,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,CAAC;oBAC3B,MAAM,OAAO,GAAG,QAAQ,KAAK,CAAC,CAAC;oBAE/B,OAAO,CAAC;wBACN,OAAO;wBACP,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE;wBACrB,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE;wBACrB,QAAQ;wBACR,QAAQ;qBACT,CAAC,CAAC;gBACL,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;gBAC1B,YAAY,CAAC,KAAK,CAAC,CAAC;gBACpB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;gBAExC,OAAO,CAAC;oBACN,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,KAAK,CAAC,OAAO;oBACpB,QAAQ,EAAE,CAAC,CAAC;oBACZ,QAAQ;iBACT,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACK,cAAc,CAAC,GAAW,EAAE,MAA+B;QACjE,IAAI,MAAM,GAAG,GAAG,CAAC;QACjB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAClD,MAAM,WAAW,GAAG,IAAI,GAAG,GAAG,CAAC;YAC/B,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,WAAW,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACvE,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AAED,eAAe,eAAe,CAAC"}
|
|
@@ -14,10 +14,17 @@ export declare class FunctionExecutor {
|
|
|
14
14
|
private toolsPath;
|
|
15
15
|
constructor(toolsPath?: string);
|
|
16
16
|
/**
|
|
17
|
-
* Execute a tool that runs an async function
|
|
18
|
-
* Supports both embedded code and external .ts/.js files
|
|
17
|
+
* Execute a tool that runs an async function.
|
|
18
|
+
* Supports both embedded code and external .ts/.js files.
|
|
19
|
+
*
|
|
20
|
+
* @param tool - Tool definition
|
|
21
|
+
* @param params - Tool parameters
|
|
22
|
+
* @param credentials - Optional per-call credential overrides passed as `context.credentials`
|
|
23
|
+
* to the tool function. The function can use them with:
|
|
24
|
+
* `const token = context?.credentials?.MY_TOKEN ?? process.env.MY_TOKEN;`
|
|
25
|
+
* Values are never logged. Falls back to undefined when not provided.
|
|
19
26
|
*/
|
|
20
|
-
execute(tool: ToolDefinition, params: Record<string, unknown>): Promise<unknown>;
|
|
27
|
+
execute(tool: ToolDefinition, params: Record<string, unknown>, credentials?: Record<string, string>): Promise<unknown>;
|
|
21
28
|
}
|
|
22
29
|
export default FunctionExecutor;
|
|
23
30
|
//# sourceMappingURL=function-executor.d.ts.map
|
|
@@ -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
|
|
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"}
|
|
@@ -20,10 +20,17 @@ export class FunctionExecutor {
|
|
|
20
20
|
this.toolsPath = toolsPath || process.cwd();
|
|
21
21
|
}
|
|
22
22
|
/**
|
|
23
|
-
* Execute a tool that runs an async function
|
|
24
|
-
* Supports both embedded code and external .ts/.js files
|
|
23
|
+
* Execute a tool that runs an async function.
|
|
24
|
+
* Supports both embedded code and external .ts/.js files.
|
|
25
|
+
*
|
|
26
|
+
* @param tool - Tool definition
|
|
27
|
+
* @param params - Tool parameters
|
|
28
|
+
* @param credentials - Optional per-call credential overrides passed as `context.credentials`
|
|
29
|
+
* to the tool function. The function can use them with:
|
|
30
|
+
* `const token = context?.credentials?.MY_TOKEN ?? process.env.MY_TOKEN;`
|
|
31
|
+
* Values are never logged. Falls back to undefined when not provided.
|
|
25
32
|
*/
|
|
26
|
-
async execute(tool, params) {
|
|
33
|
+
async execute(tool, params, credentials) {
|
|
27
34
|
if (tool.execution.type !== 'function') {
|
|
28
35
|
throw new MatimoError('Tool execution type is not function', ErrorCode.EXECUTION_FAILED, {
|
|
29
36
|
expectedType: 'function',
|
|
@@ -129,7 +136,7 @@ export class FunctionExecutor {
|
|
|
129
136
|
import(fileUrl)
|
|
130
137
|
.then((module) => {
|
|
131
138
|
const fn = (module.default || module);
|
|
132
|
-
const result = fn(params);
|
|
139
|
+
const result = fn(params, credentials ? { credentials } : undefined);
|
|
133
140
|
// Handle both Promise and non-Promise returns
|
|
134
141
|
if (result instanceof Promise) {
|
|
135
142
|
result.then(handleSuccess).catch(handleError);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"function-executor.js","sourceRoot":"","sources":["../../src/executors/function-executor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAE1D;;;;;;;;;;GAUG;AACH,MAAM,OAAO,gBAAgB;IAG3B,YAAY,SAAkB;QAC5B,IAAI,CAAC,SAAS,GAAG,SAAS,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAC9C,CAAC;IAED
|
|
1
|
+
{"version":3,"file":"function-executor.js","sourceRoot":"","sources":["../../src/executors/function-executor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAE1D;;;;;;;;;;GAUG;AACH,MAAM,OAAO,gBAAgB;IAG3B,YAAY,SAAkB;QAC5B,IAAI,CAAC,SAAS,GAAG,SAAS,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAC9C,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAC,OAAO,CACX,IAAoB,EACpB,MAA+B,EAC/B,WAAoC;QAEpC,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YACvC,MAAM,IAAI,WAAW,CAAC,qCAAqC,EAAE,SAAS,CAAC,gBAAgB,EAAE;gBACvF,YAAY,EAAE,UAAU;gBACxB,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI;aAChC,CAAC,CAAC;QACL,CAAC;QAED,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,KAAK,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC;QAEjD,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtC,MAAM,IAAI,WAAW,CAAC,wBAAwB,EAAE,SAAS,CAAC,gBAAgB,EAAE;gBAC1E,QAAQ,EAAE,IAAI,CAAC,IAAI;aACpB,CAAC,CAAC;QACL,CAAC;QAED,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,IAAI,QAAQ,GAAG,KAAK,CAAC;YACrB,IAAI,OAAO,GAAG,KAAK,CAAC;YAEpB,0CAA0C;YAC1C,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC5B,QAAQ,GAAG,IAAI,CAAC;gBAChB,IAAI,CAAC,OAAO,EAAE,CAAC;oBACb,OAAO,GAAG,IAAI,CAAC;oBACf,OAAO,CAAC;wBACN,OAAO,EAAE,KAAK;wBACd,KAAK,EAAE,4BAA4B;wBACnC,IAAI,EAAE,SAAS,CAAC,gBAAgB;qBACjC,CAAC,CAAC;gBACL,CAAC;YACH,CAAC,EAAE,OAAO,CAAC,CAAC;YAEZ,MAAM,OAAO,GAAG,GAAG,EAAE;gBACnB,YAAY,CAAC,KAAK,CAAC,CAAC;YACtB,CAAC,CAAC;YAEF,MAAM,WAAW,GAAG,CAAC,KAAc,EAAE,EAAE;gBACrC,OAAO,EAAE,CAAC;gBACV,IAAI,CAAC,OAAO,EAAE,CAAC;oBACb,OAAO,GAAG,IAAI,CAAC;oBACf,gDAAgD;oBAChD,IAAI,KAAK,YAAY,WAAW,EAAE,CAAC;wBACjC,OAAO,CAAC;4BACN,OAAO,EAAE,KAAK;4BACd,KAAK,EAAE,KAAK,CAAC,OAAO;4BACpB,IAAI,EAAE,KAAK,CAAC,IAAI;4BAChB,OAAO,EAAE,KAAK,CAAC,OAAO;yBACvB,CAAC,CAAC;oBACL,CAAC;yBAAM,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;wBAClC,OAAO,CAAC;4BACN,OAAO,EAAE,KAAK;4BACd,KAAK,EAAE,KAAK,CAAC,OAAO;yBACrB,CAAC,CAAC;oBACL,CAAC;yBAAM,CAAC;wBACN,OAAO,CAAC;4BACN,OAAO,EAAE,KAAK;4BACd,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC;yBACrB,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;YACH,CAAC,CAAC;YAEF,MAAM,aAAa,GAAG,CAAC,IAAa,EAAE,EAAE;gBACtC,OAAO,EAAE,CAAC;gBACV,IAAI,CAAC,OAAO,EAAE,CAAC;oBACb,OAAO,GAAG,IAAI,CAAC;oBACf,IAAI,QAAQ,EAAE,CAAC;wBACb,OAAO,CAAC;4BACN,OAAO,EAAE,KAAK;4BACd,KAAK,EAAE,4BAA4B;4BACnC,IAAI,EAAE,SAAS,CAAC,gBAAgB;yBACjC,CAAC,CAAC;oBACL,CAAC;yBAAM,CAAC;wBACN,OAAO,CAAC,IAAI,CAAC,CAAC;oBAChB,CAAC;gBACH,CAAC;YACH,CAAC,CAAC;YAEF,IAAI,CAAC;gBACH,uEAAuE;gBACvE,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC1E,iDAAiD;oBACjD,4CAA4C;oBAE5C,wDAAwD;oBACxD,IAAI,YAAoB,CAAC;oBACzB,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;wBACzB,mEAAmE;wBACnE,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;wBACzD,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;oBACnD,CAAC;yBAAM,CAAC;wBACN,2DAA2D;wBAC3D,wDAAwD;wBACxD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;wBAC3B,IAAI,OAAe,CAAC;wBACpB,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;4BAC3B,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;4BAClC,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;4BAC1B,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;wBAC1D,CAAC;6BAAM,CAAC;4BACN,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;wBAChD,CAAC;wBACD,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;oBAC7C,CAAC;oBAED,MAAM,OAAO,GAAG,aAAa,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC;oBAEjD,iFAAiF;oBACjF,MAAM,CAAC,OAAO,CAAC;yBACZ,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;wBACf,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAGf,CAAC;wBACtB,MAAM,MAAM,GAAG,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;wBAErE,8CAA8C;wBAC9C,IAAI,MAAM,YAAY,OAAO,EAAE,CAAC;4BAC9B,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;wBAChD,CAAC;6BAAM,CAAC;4BACN,aAAa,CAAC,MAAM,CAAC,CAAC;wBACxB,CAAC;oBACH,CAAC,CAAC;yBACD,KAAK,CAAC,WAAW,CAAC,CAAC;gBACxB,CAAC;qBAAM,CAAC;oBACN,+DAA+D;oBAC/D,yFAAyF;oBACzF,iFAAiF;oBACjF,mGAAmG;oBAEnG,MAAM,oBAAoB,GAAG,OAAO,CAAC,GAAG,CAAC,0BAA0B,KAAK,MAAM,CAAC;oBAC/E,IAAI,oBAAoB,EAAE,CAAC;wBACzB,MAAM,IAAI,WAAW,CACnB,kGAAkG,EAClG,SAAS,CAAC,gBAAgB,EAC1B;4BACE,QAAQ,EAAE,IAAI,CAAC,IAAI;4BACnB,cAAc,EACZ,iFAAiF;4BACnF,iBAAiB,EACf,iEAAiE;yBACpE,CACF,CAAC;oBACJ,CAAC;oBAED,6CAA6C;oBAC7C,MAAM,MAAM,GAAG,qBAAqB,EAAE,CAAC;oBACvC,MAAM,CAAC,IAAI,CACT,mDAAmD,IAAI,CAAC,IAAI,wEAAwE,EACpI,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,CACxB,CAAC;oBAEF,sDAAsD;oBACtD,6DAA6D;oBAC7D,MAAM,YAAY,GAAG,WAAW,IAAI,GAAG,CAAC;oBACxC,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,YAAY,CAAC,EAOhB,CAAC;oBACtB,6EAA6E;oBAC7E,MAAM,MAAM,GAAG,EAAE,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;oBAE1D,8CAA8C;oBAC9C,IAAI,MAAM,YAAY,OAAO,EAAE,CAAC;wBAC9B,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;oBAChD,CAAC;yBAAM,CAAC;wBACN,aAAa,CAAC,MAAM,CAAC,CAAC;oBACxB,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,WAAW,CAAC,KAAK,CAAC,CAAC;YACrB,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AAED,eAAe,gBAAgB,CAAC"}
|
|
@@ -5,9 +5,17 @@ import { ToolDefinition } from '../core/schema';
|
|
|
5
5
|
*/
|
|
6
6
|
export declare class HttpExecutor {
|
|
7
7
|
/**
|
|
8
|
-
* Execute a tool that makes an HTTP request
|
|
8
|
+
* Execute a tool that makes an HTTP request.
|
|
9
|
+
*
|
|
10
|
+
* @param tool - Tool definition
|
|
11
|
+
* @param params - Tool parameters (already env-injected by MatimoInstance)
|
|
12
|
+
* @param credentials - Optional per-call credential overrides. Used for
|
|
13
|
+
* `authentication.type: basic` (username_env / password_env keys) instead of
|
|
14
|
+
* reading from `process.env`. Other auth schemes (bearer, api_key) are handled
|
|
15
|
+
* upstream via parameter templating in MatimoInstance.injectAuthParameters().
|
|
16
|
+
* Values are never logged.
|
|
9
17
|
*/
|
|
10
|
-
execute(tool: ToolDefinition, params: Record<string, unknown>): Promise<unknown>;
|
|
18
|
+
execute(tool: ToolDefinition, params: Record<string, unknown>, credentials?: Record<string, string>): Promise<unknown>;
|
|
11
19
|
/**
|
|
12
20
|
* Automatically inject `Authorization: Basic <base64(username:password)>` when
|
|
13
21
|
* the tool declares `authentication.type: basic` with `username_env` and `password_env`.
|
|
@@ -15,6 +23,12 @@ export declare class HttpExecutor {
|
|
|
15
23
|
* This is a zero-friction pattern: developers only set two natural env vars
|
|
16
24
|
* (e.g. TWILIO_ACCOUNT_SID + TWILIO_AUTH_TOKEN) and Matimo handles encoding.
|
|
17
25
|
* No pre-computed base64 credential string required.
|
|
26
|
+
*
|
|
27
|
+
* When `credentials` is provided the lookup order is:
|
|
28
|
+
* 1. `credentials[envVarName]` (per-call override — multi-tenant use)
|
|
29
|
+
* 2. `process.env[envVarName]` (singleton / single-tenant fallback)
|
|
30
|
+
*
|
|
31
|
+
* Credential values are never logged or included in error details.
|
|
18
32
|
*/
|
|
19
33
|
private applyBasicAuth;
|
|
20
34
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-executor.d.ts","sourceRoot":"","sources":["../../src/executors/http-executor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAIhD;;;GAGG;AAEH,qBAAa,YAAY;IACvB
|
|
1
|
+
{"version":3,"file":"http-executor.d.ts","sourceRoot":"","sources":["../../src/executors/http-executor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAIhD;;;GAGG;AAEH,qBAAa,YAAY;IACvB;;;;;;;;;;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;IAmHnB;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,cAAc;IA4BtB;;OAEG;IACH,OAAO,CAAC,cAAc;IAYtB;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IAK7B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAyB7B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAexB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8CG;IACH,OAAO,CAAC,cAAc;CA+GvB;AAED,eAAe,YAAY,CAAC"}
|
|
@@ -7,9 +7,17 @@ import { MatimoError, ErrorCode, fromHttpError } from '../errors/matimo-error';
|
|
|
7
7
|
*/
|
|
8
8
|
export class HttpExecutor {
|
|
9
9
|
/**
|
|
10
|
-
* Execute a tool that makes an HTTP request
|
|
10
|
+
* Execute a tool that makes an HTTP request.
|
|
11
|
+
*
|
|
12
|
+
* @param tool - Tool definition
|
|
13
|
+
* @param params - Tool parameters (already env-injected by MatimoInstance)
|
|
14
|
+
* @param credentials - Optional per-call credential overrides. Used for
|
|
15
|
+
* `authentication.type: basic` (username_env / password_env keys) instead of
|
|
16
|
+
* reading from `process.env`. Other auth schemes (bearer, api_key) are handled
|
|
17
|
+
* upstream via parameter templating in MatimoInstance.injectAuthParameters().
|
|
18
|
+
* Values are never logged.
|
|
11
19
|
*/
|
|
12
|
-
async execute(tool, params) {
|
|
20
|
+
async execute(tool, params, credentials) {
|
|
13
21
|
if (tool.execution.type !== 'http') {
|
|
14
22
|
throw new MatimoError('Tool execution type is not http', ErrorCode.EXECUTION_FAILED, {
|
|
15
23
|
expectedType: 'http',
|
|
@@ -39,7 +47,8 @@ export class HttpExecutor {
|
|
|
39
47
|
// Natively handle HTTP Basic Auth when authentication.type === 'basic' and
|
|
40
48
|
// username_env/password_env are declared. This eliminates the need for
|
|
41
49
|
// developers to pre-compute base64 credentials as a separate env var step.
|
|
42
|
-
|
|
50
|
+
// Credentials override takes precedence over process.env when provided.
|
|
51
|
+
this.applyBasicAuth(tool, templatedHeaders, credentials);
|
|
43
52
|
const templatedBody = body && typeof body === 'object'
|
|
44
53
|
? this.templateObject(body, finalParams, tool.parameters)
|
|
45
54
|
: typeof body === 'string'
|
|
@@ -104,14 +113,21 @@ export class HttpExecutor {
|
|
|
104
113
|
* This is a zero-friction pattern: developers only set two natural env vars
|
|
105
114
|
* (e.g. TWILIO_ACCOUNT_SID + TWILIO_AUTH_TOKEN) and Matimo handles encoding.
|
|
106
115
|
* No pre-computed base64 credential string required.
|
|
116
|
+
*
|
|
117
|
+
* When `credentials` is provided the lookup order is:
|
|
118
|
+
* 1. `credentials[envVarName]` (per-call override — multi-tenant use)
|
|
119
|
+
* 2. `process.env[envVarName]` (singleton / single-tenant fallback)
|
|
120
|
+
*
|
|
121
|
+
* Credential values are never logged or included in error details.
|
|
107
122
|
*/
|
|
108
|
-
applyBasicAuth(tool, headers) {
|
|
123
|
+
applyBasicAuth(tool, headers, credentials) {
|
|
109
124
|
const auth = tool.authentication;
|
|
110
125
|
if (auth?.type !== 'basic' || !auth.username_env || !auth.password_env) {
|
|
111
126
|
return;
|
|
112
127
|
}
|
|
113
|
-
|
|
114
|
-
const
|
|
128
|
+
// Prefer per-call credentials, fall back to process.env
|
|
129
|
+
const username = (credentials && credentials[auth.username_env]) ?? process.env[auth.username_env];
|
|
130
|
+
const password = (credentials && credentials[auth.password_env]) ?? process.env[auth.password_env];
|
|
115
131
|
if (!username || !password) {
|
|
116
132
|
throw new MatimoError(`Basic Auth requires env vars '${auth.username_env}' and '${auth.password_env}' to be set`, ErrorCode.AUTH_FAILED, { toolName: tool.name, username_env: auth.username_env, password_env: auth.password_env });
|
|
117
133
|
}
|