@marktoflow/core 2.0.0-alpha.14 → 2.0.0-alpha.15

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.
@@ -0,0 +1,383 @@
1
+ /**
2
+ * Regex Operator Support for marktoflow Templates
3
+ *
4
+ * Provides inline regex operators for templates:
5
+ * - =~ : Match and extract (returns capture groups or boolean)
6
+ * - !~ : Negative match (returns boolean)
7
+ * - // : Replace (regex substitution)
8
+ *
9
+ * Examples:
10
+ * {{ inputs.repo =~ /^([^\/]+)\// }} // Extract owner from "owner/repo"
11
+ * {{ inputs.email !~ /@example\.com$/ }} // Check if NOT example.com
12
+ * {{ inputs.service // /[^a-z0-9]+/-/g }} // Slugify (replace non-alphanumeric)
13
+ */
14
+ // ============================================================================
15
+ // Regex Operator Detection
16
+ // ============================================================================
17
+ /**
18
+ * Check if a template expression contains regex operators.
19
+ */
20
+ export function hasRegexOperators(expression) {
21
+ // Match operator symbols that are not within regex patterns
22
+ return /=~|!~|\/\//.test(expression);
23
+ }
24
+ /**
25
+ * Parse a template expression to detect and extract regex operations.
26
+ * Returns null if no regex operators found.
27
+ */
28
+ export function parseRegexExpression(expression) {
29
+ const trimmed = expression.trim();
30
+ // Try to match =~ operator (match/extract)
31
+ const matchOp = parseMatchOperator(trimmed);
32
+ if (matchOp)
33
+ return matchOp;
34
+ // Try to match !~ operator (negative match)
35
+ const negMatchOp = parseNegativeMatchOperator(trimmed);
36
+ if (negMatchOp)
37
+ return negMatchOp;
38
+ // Try to match // operator (replace)
39
+ const replaceOp = parseReplaceOperator(trimmed);
40
+ if (replaceOp)
41
+ return replaceOp;
42
+ return null;
43
+ }
44
+ // ============================================================================
45
+ // Operator Parsers
46
+ // ============================================================================
47
+ /**
48
+ * Parse =~ match operator
49
+ * Syntax: value =~ /pattern/ or value =~ /pattern/flags or value =~ /pattern/1
50
+ */
51
+ function parseMatchOperator(expr) {
52
+ // Pattern: <value> =~ /<pattern>/<flags|groupSelector>?
53
+ const match = expr.match(/^(.+?)\s*=~\s*\/(.+?)\/([gimsu\d]*|:[a-zA-Z_]\w*)?$/);
54
+ if (!match)
55
+ return null;
56
+ const [, value, pattern, flagsOrSelector] = match;
57
+ // Parse flags and group selector
58
+ let flags = '';
59
+ let groupIndex;
60
+ let groupName;
61
+ if (flagsOrSelector) {
62
+ // Check if it's a group selector
63
+ if (/^\d+$/.test(flagsOrSelector)) {
64
+ // Numeric group index
65
+ groupIndex = parseInt(flagsOrSelector, 10);
66
+ }
67
+ else if (flagsOrSelector.startsWith(':')) {
68
+ // Named group selector
69
+ groupName = flagsOrSelector.slice(1);
70
+ }
71
+ else {
72
+ // Regex flags
73
+ flags = flagsOrSelector;
74
+ }
75
+ }
76
+ return {
77
+ type: 'match',
78
+ value: value.trim(),
79
+ pattern,
80
+ flags,
81
+ groupIndex,
82
+ groupName,
83
+ };
84
+ }
85
+ /**
86
+ * Parse !~ negative match operator
87
+ * Syntax: value !~ /pattern/flags?
88
+ */
89
+ function parseNegativeMatchOperator(expr) {
90
+ const match = expr.match(/^(.+?)\s*!~\s*\/(.+?)\/([gimsu]*)?$/);
91
+ if (!match)
92
+ return null;
93
+ const [, value, pattern, flags = ''] = match;
94
+ return {
95
+ type: 'negative_match',
96
+ value: value.trim(),
97
+ pattern,
98
+ flags,
99
+ };
100
+ }
101
+ /**
102
+ * Parse // replace operator
103
+ * Syntax: value // /pattern/replacement/flags?
104
+ */
105
+ function parseReplaceOperator(expr) {
106
+ // Pattern: <value> // /<pattern>/<replacement>/<flags>?
107
+ // Need to handle escaped slashes within pattern and replacement
108
+ // Try to extract the operator parts
109
+ const opMatch = expr.match(/^(.+?)\s*\/\/\s*\/(.+)$/);
110
+ if (!opMatch)
111
+ return null;
112
+ const [, value, rest] = opMatch;
113
+ // Now parse /pattern/replacement/flags from rest
114
+ // This is tricky because pattern and replacement can contain escaped /
115
+ const parts = parseRegexReplaceParts(rest);
116
+ if (!parts)
117
+ return null;
118
+ return {
119
+ type: 'replace',
120
+ value: value.trim(),
121
+ pattern: parts.pattern,
122
+ replacement: parts.replacement,
123
+ flags: parts.flags,
124
+ };
125
+ }
126
+ /**
127
+ * Parse the pattern/replacement/flags portion of a replace operation.
128
+ * Handles escaped slashes within pattern and replacement.
129
+ */
130
+ function parseRegexReplaceParts(input) {
131
+ let i = 0;
132
+ let part = 0;
133
+ let current = '';
134
+ const parts = [];
135
+ let escaped = false;
136
+ while (i < input.length) {
137
+ const char = input[i];
138
+ if (escaped) {
139
+ current += char;
140
+ escaped = false;
141
+ i++;
142
+ continue;
143
+ }
144
+ if (char === '\\') {
145
+ current += char;
146
+ escaped = true;
147
+ i++;
148
+ continue;
149
+ }
150
+ if (char === '/') {
151
+ parts.push(current);
152
+ current = '';
153
+ part++;
154
+ i++;
155
+ if (part >= 2)
156
+ break; // Found pattern and replacement
157
+ continue;
158
+ }
159
+ current += char;
160
+ i++;
161
+ }
162
+ // Remaining characters are flags
163
+ const flags = input.slice(i).trim();
164
+ if (parts.length < 2)
165
+ return null;
166
+ return {
167
+ pattern: parts[0],
168
+ replacement: parts[1],
169
+ flags,
170
+ };
171
+ }
172
+ // ============================================================================
173
+ // Regex Execution
174
+ // ============================================================================
175
+ /**
176
+ * Execute a regex operation and return the result.
177
+ */
178
+ export function executeRegexOperation(operation, context) {
179
+ switch (operation.type) {
180
+ case 'match':
181
+ return executeMatchOperation(operation, context);
182
+ case 'negative_match':
183
+ return executeNegativeMatchOperation(operation, context);
184
+ case 'replace':
185
+ return executeReplaceOperation(operation, context);
186
+ }
187
+ }
188
+ /**
189
+ * Execute a match operation (=~)
190
+ */
191
+ function executeMatchOperation(operation, context) {
192
+ // Resolve the value expression first
193
+ const value = resolveValue(operation.value, context);
194
+ const str = String(value ?? '');
195
+ // Create regex
196
+ const regex = new RegExp(operation.pattern, operation.flags);
197
+ const match = str.match(regex);
198
+ if (!match) {
199
+ // No match - return null or false depending on context
200
+ return null;
201
+ }
202
+ // If a specific group is requested, return just that group
203
+ if (operation.groupIndex !== undefined) {
204
+ return match[operation.groupIndex] ?? null;
205
+ }
206
+ if (operation.groupName) {
207
+ return match.groups?.[operation.groupName] ?? null;
208
+ }
209
+ // If pattern has named groups, return groups object
210
+ if (match.groups && Object.keys(match.groups).length > 0) {
211
+ return match.groups;
212
+ }
213
+ // If pattern has capture groups (but not named), return array or first group
214
+ if (match.length > 1) {
215
+ // Return first capture group by default (common use case)
216
+ return match[1];
217
+ }
218
+ // No capture groups - return true for boolean context
219
+ return true;
220
+ }
221
+ /**
222
+ * Execute a negative match operation (!~)
223
+ */
224
+ function executeNegativeMatchOperation(operation, context) {
225
+ const value = resolveValue(operation.value, context);
226
+ const str = String(value ?? '');
227
+ const regex = new RegExp(operation.pattern, operation.flags);
228
+ return !regex.test(str);
229
+ }
230
+ /**
231
+ * Execute a replace operation (//)
232
+ */
233
+ function executeReplaceOperation(operation, context) {
234
+ const value = resolveValue(operation.value, context);
235
+ const str = String(value ?? '');
236
+ const regex = new RegExp(operation.pattern, operation.flags);
237
+ return str.replace(regex, operation.replacement);
238
+ }
239
+ /**
240
+ * Resolve a value expression from context.
241
+ * This is a simplified version - in practice, would use the full template resolver.
242
+ */
243
+ function resolveValue(expression, context) {
244
+ // Strip any surrounding whitespace
245
+ const trimmed = expression.trim();
246
+ // Check if it's a direct variable reference
247
+ if (trimmed.startsWith('inputs.')) {
248
+ const path = trimmed.slice(7);
249
+ return getNestedValue(context.inputs, path);
250
+ }
251
+ // Check variables
252
+ const fromVars = getNestedValue(context.variables, trimmed);
253
+ if (fromVars !== undefined) {
254
+ return fromVars;
255
+ }
256
+ // Return as-is (might be a literal)
257
+ return trimmed;
258
+ }
259
+ /**
260
+ * Get nested value from object using dot notation.
261
+ */
262
+ function getNestedValue(obj, path) {
263
+ if (obj === null || obj === undefined) {
264
+ return undefined;
265
+ }
266
+ const parts = path.split('.');
267
+ let result = obj;
268
+ for (const part of parts) {
269
+ if (result === null || result === undefined) {
270
+ return undefined;
271
+ }
272
+ if (typeof result === 'object') {
273
+ result = result[part];
274
+ }
275
+ else {
276
+ return undefined;
277
+ }
278
+ }
279
+ return result;
280
+ }
281
+ // ============================================================================
282
+ // Template Integration Helper
283
+ // ============================================================================
284
+ /**
285
+ * Process a template expression that may contain regex operators.
286
+ * Returns the processed value, or null if no regex operators found.
287
+ */
288
+ export function processRegexTemplate(expression, context) {
289
+ const operation = parseRegexExpression(expression);
290
+ if (!operation) {
291
+ return null; // No regex operators found
292
+ }
293
+ return executeRegexOperation(operation, context);
294
+ }
295
+ // ============================================================================
296
+ // Destructuring Support
297
+ // ============================================================================
298
+ /**
299
+ * Check if YAML value represents a destructuring pattern.
300
+ * Examples: [owner, repo], {owner, repo}
301
+ */
302
+ export function isDestructuringPattern(value) {
303
+ return Array.isArray(value) || (typeof value === 'object' && value !== null);
304
+ }
305
+ /**
306
+ * Apply destructuring to a regex match result.
307
+ *
308
+ * Examples:
309
+ * [owner, repo]: "{{ repo =~ /^([^\/]+)\/(.+)$/ }}"
310
+ * {owner, name}: "{{ repo =~ /(?<owner>[^\/]+)\/(?<name>.+)/ }}"
311
+ */
312
+ export function applyDestructuring(pattern, result, context) {
313
+ if (Array.isArray(pattern)) {
314
+ // Array destructuring - expect result to be array or regex match
315
+ if (Array.isArray(result)) {
316
+ for (let i = 0; i < pattern.length && i < result.length; i++) {
317
+ const varName = pattern[i];
318
+ if (typeof varName === 'string') {
319
+ context.variables[varName] = result[i];
320
+ }
321
+ }
322
+ }
323
+ else if (typeof result === 'object' && result !== null) {
324
+ // Result might be a regex match with groups
325
+ const match = result;
326
+ // Try numbered groups first
327
+ for (let i = 0; i < pattern.length; i++) {
328
+ const varName = pattern[i];
329
+ if (typeof varName === 'string') {
330
+ const value = match[i + 1]; // Capture groups start at index 1
331
+ if (value !== undefined) {
332
+ context.variables[varName] = value;
333
+ }
334
+ }
335
+ }
336
+ }
337
+ }
338
+ else {
339
+ // Object destructuring - expect result to be object with named properties
340
+ if (typeof result === 'object' && result !== null) {
341
+ for (const [key, targetVar] of Object.entries(pattern)) {
342
+ const value = result[key];
343
+ if (value !== undefined && typeof targetVar === 'string') {
344
+ context.variables[targetVar] = value;
345
+ }
346
+ }
347
+ }
348
+ }
349
+ }
350
+ // ============================================================================
351
+ // Built-in Regex Patterns Library
352
+ // ============================================================================
353
+ export const BUILTIN_PATTERNS = {
354
+ // Common patterns
355
+ github_repo: String.raw `(?<owner>[^\/]+)\/(?<repo>[^\/]+)`,
356
+ email: String.raw `(?<user>[^@]+)@(?<domain>[^.]+\..+)`,
357
+ semver: String.raw `v?(?<major>\d+)\.(?<minor>\d+)\.(?<patch>\d+)(-(?<pre>[^+]+))?(\+(?<build>.+))?`,
358
+ url: String.raw `(?<protocol>https?):\/\/(?<domain>[^\/]+)(?<path>\/.*)?`,
359
+ // Code extraction patterns
360
+ json_block: String.raw `\`\`\`json\s*(?<json>[\s\S]*?)\s*\`\`\``,
361
+ code_block: String.raw `\`\`\`(?<lang>\w+)?\s*(?<code>[\s\S]*?)\s*\`\`\``,
362
+ // Issue/ticket patterns
363
+ issue_ref: String.raw `(?<prefix>[A-Z]+)-(?<number>\d+)`,
364
+ jira_issue: String.raw `(?<project>[A-Z]+)-(?<number>\d+)`,
365
+ github_issue: String.raw `#(?<number>\d+)`,
366
+ // Communication patterns
367
+ slack_channel: String.raw `#(?<channel>[a-z0-9-_]+)`,
368
+ slack_user: String.raw `@(?<username>[a-z0-9._-]+)`,
369
+ // File/path patterns
370
+ file_extension: String.raw `\.(?<ext>[a-zA-Z0-9]+)$`,
371
+ file_basename: String.raw `(?<basename>[^\/]+)\.(?<ext>[a-zA-Z0-9]+)$`,
372
+ };
373
+ /**
374
+ * Resolve a pattern reference (e.g., $github_repo) to actual regex.
375
+ */
376
+ export function resolvePatternReference(pattern) {
377
+ if (pattern.startsWith('$')) {
378
+ const patternName = pattern.slice(1);
379
+ return BUILTIN_PATTERNS[patternName] ?? pattern;
380
+ }
381
+ return pattern;
382
+ }
383
+ //# sourceMappingURL=regex-operators.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"regex-operators.js","sourceRoot":"","sources":["../src/regex-operators.ts"],"names":[],"mappings":"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"}
@@ -18,15 +18,15 @@ export class MCPTool extends Tool {
18
18
  if (this.implementation.packageName) {
19
19
  const config = this.buildConfig();
20
20
  const client = await this.loader.loadNative(this.implementation.packageName, config);
21
- const tools = await client.listTools?.();
22
- if (Array.isArray(tools)) {
23
- for (const tool of tools) {
24
- this.operations[tool.name] = {
25
- name: tool.name,
26
- description: tool.description,
27
- input_schema: tool.inputSchema ?? tool.input_schema ?? {},
28
- };
29
- }
21
+ const toolsResponse = await client.listTools?.();
22
+ // The MCP SDK returns { tools: [...] } not just an array
23
+ const toolsArray = Array.isArray(toolsResponse) ? toolsResponse : toolsResponse?.tools ?? [];
24
+ for (const tool of toolsArray) {
25
+ this.operations[tool.name] = {
26
+ name: tool.name,
27
+ description: tool.description,
28
+ input_schema: tool.inputSchema ?? tool.input_schema ?? {},
29
+ };
30
30
  }
31
31
  this.client = client;
32
32
  }
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-tool.js","sourceRoot":"","sources":["../../src/tools/mcp-tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp-tool.js","sourceRoot":"","sources":["../../src/tools/mcp-tool.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Central version constant for marktoflow
3
+ *
4
+ * This version is exported from @marktoflow/core and should be used
5
+ * by all packages to ensure consistency.
6
+ */
7
+ export declare const VERSION = "2.0.0-alpha.12";
8
+ //# sourceMappingURL=version.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,eAAO,MAAM,OAAO,mBAAmB,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Central version constant for marktoflow
3
+ *
4
+ * This version is exported from @marktoflow/core and should be used
5
+ * by all packages to ensure consistency.
6
+ */
7
+ export const VERSION = '2.0.0-alpha.12';
8
+ //# sourceMappingURL=version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,gBAAgB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@marktoflow/core",
3
- "version": "2.0.0-alpha.14",
3
+ "version": "2.0.0-alpha.15",
4
4
  "description": "Core engine for marktoflow - parser, executor, state management",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -72,5 +72,8 @@
72
72
  "mcp"
73
73
  ],
74
74
  "author": "Scott Glover",
75
- "license": "Apache-2.0"
75
+ "license": "Apache-2.0",
76
+ "publishConfig": {
77
+ "registry": "https://registry.npmjs.org/"
78
+ }
76
79
  }