@marktoflow/core 2.0.0-alpha.9 → 2.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (149) hide show
  1. package/README.md +24 -222
  2. package/dist/built-in-operations.d.ts +150 -0
  3. package/dist/built-in-operations.d.ts.map +1 -0
  4. package/dist/built-in-operations.js +799 -0
  5. package/dist/built-in-operations.js.map +1 -0
  6. package/dist/core-tools.d.ts +39 -0
  7. package/dist/core-tools.d.ts.map +1 -0
  8. package/dist/core-tools.js +58 -0
  9. package/dist/core-tools.js.map +1 -0
  10. package/dist/credentials.d.ts +60 -1
  11. package/dist/credentials.d.ts.map +1 -1
  12. package/dist/credentials.js +229 -4
  13. package/dist/credentials.js.map +1 -1
  14. package/dist/engine.d.ts +92 -3
  15. package/dist/engine.d.ts.map +1 -1
  16. package/dist/engine.js +937 -59
  17. package/dist/engine.js.map +1 -1
  18. package/dist/file-operations.d.ts +86 -0
  19. package/dist/file-operations.d.ts.map +1 -0
  20. package/dist/file-operations.js +382 -0
  21. package/dist/file-operations.js.map +1 -0
  22. package/dist/index.d.ts +16 -5
  23. package/dist/index.d.ts.map +1 -1
  24. package/dist/index.js +46 -4
  25. package/dist/index.js.map +1 -1
  26. package/dist/logging.d.ts +40 -2
  27. package/dist/logging.d.ts.map +1 -1
  28. package/dist/logging.js +166 -13
  29. package/dist/logging.js.map +1 -1
  30. package/dist/models.d.ts +1441 -54
  31. package/dist/models.d.ts.map +1 -1
  32. package/dist/models.js +124 -2
  33. package/dist/models.js.map +1 -1
  34. package/dist/nunjucks-filters.d.ts +271 -0
  35. package/dist/nunjucks-filters.d.ts.map +1 -0
  36. package/dist/nunjucks-filters.js +648 -0
  37. package/dist/nunjucks-filters.js.map +1 -0
  38. package/dist/oauth-manager.d.ts +128 -0
  39. package/dist/oauth-manager.d.ts.map +1 -0
  40. package/dist/oauth-manager.js +291 -0
  41. package/dist/oauth-manager.js.map +1 -0
  42. package/dist/oauth-refresh.d.ts +37 -0
  43. package/dist/oauth-refresh.d.ts.map +1 -0
  44. package/dist/oauth-refresh.js +76 -0
  45. package/dist/oauth-refresh.js.map +1 -0
  46. package/dist/parser.d.ts.map +1 -1
  47. package/dist/parser.js +113 -3
  48. package/dist/parser.js.map +1 -1
  49. package/dist/permissions.d.ts +49 -0
  50. package/dist/permissions.d.ts.map +1 -0
  51. package/dist/permissions.js +286 -0
  52. package/dist/permissions.js.map +1 -0
  53. package/dist/prompt-loader.d.ts +53 -0
  54. package/dist/prompt-loader.d.ts.map +1 -0
  55. package/dist/prompt-loader.js +205 -0
  56. package/dist/prompt-loader.js.map +1 -0
  57. package/dist/scheduler.d.ts +22 -3
  58. package/dist/scheduler.d.ts.map +1 -1
  59. package/dist/scheduler.js +72 -73
  60. package/dist/scheduler.js.map +1 -1
  61. package/dist/script-executor.d.ts +65 -0
  62. package/dist/script-executor.d.ts.map +1 -0
  63. package/dist/script-executor.js +261 -0
  64. package/dist/script-executor.js.map +1 -0
  65. package/dist/sdk-registry.d.ts +20 -2
  66. package/dist/sdk-registry.d.ts.map +1 -1
  67. package/dist/sdk-registry.js +100 -15
  68. package/dist/sdk-registry.js.map +1 -1
  69. package/dist/secret-providers/index.d.ts +12 -0
  70. package/dist/secret-providers/index.d.ts.map +1 -0
  71. package/dist/secret-providers/index.js +11 -0
  72. package/dist/secret-providers/index.js.map +1 -0
  73. package/dist/secret-providers/providers/aws.d.ts +32 -0
  74. package/dist/secret-providers/providers/aws.d.ts.map +1 -0
  75. package/dist/secret-providers/providers/aws.js +118 -0
  76. package/dist/secret-providers/providers/aws.js.map +1 -0
  77. package/dist/secret-providers/providers/azure.d.ts +40 -0
  78. package/dist/secret-providers/providers/azure.d.ts.map +1 -0
  79. package/dist/secret-providers/providers/azure.js +170 -0
  80. package/dist/secret-providers/providers/azure.js.map +1 -0
  81. package/dist/secret-providers/providers/env.d.ts +26 -0
  82. package/dist/secret-providers/providers/env.d.ts.map +1 -0
  83. package/dist/secret-providers/providers/env.js +59 -0
  84. package/dist/secret-providers/providers/env.js.map +1 -0
  85. package/dist/secret-providers/providers/vault.d.ts +39 -0
  86. package/dist/secret-providers/providers/vault.d.ts.map +1 -0
  87. package/dist/secret-providers/providers/vault.js +180 -0
  88. package/dist/secret-providers/providers/vault.js.map +1 -0
  89. package/dist/secret-providers/secret-manager.d.ts +72 -0
  90. package/dist/secret-providers/secret-manager.d.ts.map +1 -0
  91. package/dist/secret-providers/secret-manager.js +226 -0
  92. package/dist/secret-providers/secret-manager.js.map +1 -0
  93. package/dist/secret-providers/types.d.ts +105 -0
  94. package/dist/secret-providers/types.d.ts.map +1 -0
  95. package/dist/secret-providers/types.js +8 -0
  96. package/dist/secret-providers/types.js.map +1 -0
  97. package/dist/secrets/index.d.ts +12 -0
  98. package/dist/secrets/index.d.ts.map +1 -0
  99. package/dist/secrets/index.js +11 -0
  100. package/dist/secrets/index.js.map +1 -0
  101. package/dist/secrets/providers/aws.d.ts +32 -0
  102. package/dist/secrets/providers/aws.d.ts.map +1 -0
  103. package/dist/secrets/providers/aws.js +118 -0
  104. package/dist/secrets/providers/aws.js.map +1 -0
  105. package/dist/secrets/providers/azure.d.ts +40 -0
  106. package/dist/secrets/providers/azure.d.ts.map +1 -0
  107. package/dist/secrets/providers/azure.js +170 -0
  108. package/dist/secrets/providers/azure.js.map +1 -0
  109. package/dist/secrets/providers/env.d.ts +26 -0
  110. package/dist/secrets/providers/env.d.ts.map +1 -0
  111. package/dist/secrets/providers/env.js +59 -0
  112. package/dist/secrets/providers/env.js.map +1 -0
  113. package/dist/secrets/providers/vault.d.ts +39 -0
  114. package/dist/secrets/providers/vault.d.ts.map +1 -0
  115. package/dist/secrets/providers/vault.js +180 -0
  116. package/dist/secrets/providers/vault.js.map +1 -0
  117. package/dist/secrets/secret-manager.d.ts +72 -0
  118. package/dist/secrets/secret-manager.d.ts.map +1 -0
  119. package/dist/secrets/secret-manager.js +226 -0
  120. package/dist/secrets/secret-manager.js.map +1 -0
  121. package/dist/secrets/types.d.ts +105 -0
  122. package/dist/secrets/types.d.ts.map +1 -0
  123. package/dist/secrets/types.js +8 -0
  124. package/dist/secrets/types.js.map +1 -0
  125. package/dist/security.d.ts +1 -0
  126. package/dist/security.d.ts.map +1 -1
  127. package/dist/security.js +4 -0
  128. package/dist/security.js.map +1 -1
  129. package/dist/state.d.ts.map +1 -1
  130. package/dist/state.js +16 -9
  131. package/dist/state.js.map +1 -1
  132. package/dist/template-engine.d.ts +51 -0
  133. package/dist/template-engine.d.ts.map +1 -0
  134. package/dist/template-engine.js +227 -0
  135. package/dist/template-engine.js.map +1 -0
  136. package/dist/templates.d.ts +10 -0
  137. package/dist/templates.d.ts.map +1 -1
  138. package/dist/templates.js +21 -17
  139. package/dist/templates.js.map +1 -1
  140. package/dist/tools/mcp-tool.js +9 -9
  141. package/dist/tools/mcp-tool.js.map +1 -1
  142. package/dist/trigger-manager.js +1 -1
  143. package/dist/trigger-manager.js.map +1 -1
  144. package/dist/workflow-tools.d.ts +102 -0
  145. package/dist/workflow-tools.d.ts.map +1 -0
  146. package/dist/workflow-tools.js +130 -0
  147. package/dist/workflow-tools.js.map +1 -0
  148. package/package.json +31 -13
  149. package/LICENSE +0 -201
package/dist/parser.js CHANGED
@@ -112,6 +112,12 @@ function buildWorkflow(frontmatter, markdownBody, warnings) {
112
112
  // Steps defined in markdown code blocks
113
113
  steps = parseStepsFromMarkdown(markdownBody, warnings);
114
114
  }
115
+ // Extract workflow-level permissions
116
+ const permissionsRaw = frontmatter.permissions;
117
+ const permissions = permissionsRaw ? normalizePermissions(permissionsRaw) : undefined;
118
+ // Extract default agent/model
119
+ const defaultAgent = (frontmatter.default_agent || frontmatter.defaultAgent);
120
+ const defaultModel = (frontmatter.default_model || frontmatter.defaultModel);
115
121
  return {
116
122
  metadata,
117
123
  tools,
@@ -119,6 +125,9 @@ function buildWorkflow(frontmatter, markdownBody, warnings) {
119
125
  triggers,
120
126
  steps,
121
127
  rawContent: markdownBody,
128
+ permissions,
129
+ defaultAgent,
130
+ defaultModel,
122
131
  };
123
132
  }
124
133
  /**
@@ -151,8 +160,28 @@ function parseStepsFromMarkdown(markdown, warnings) {
151
160
  const yamlContent = match[1];
152
161
  try {
153
162
  const stepRaw = parseYaml(yamlContent);
154
- // Skip non-step code blocks (check for action or workflow field)
155
- if (!stepRaw.action && !stepRaw.workflow) {
163
+ // Skip non-step code blocks
164
+ // Check for action, workflow, control flow, or script fields
165
+ const isActionStep = !!stepRaw.action;
166
+ const isWorkflowStep = !!stepRaw.workflow;
167
+ const isScriptStep = stepRaw.type === 'script';
168
+ const isControlFlowStep = stepRaw.type === 'for_each' ||
169
+ stepRaw.type === 'if' ||
170
+ stepRaw.type === 'while' ||
171
+ stepRaw.type === 'switch' ||
172
+ stepRaw.type === 'parallel' ||
173
+ stepRaw.type === 'try' ||
174
+ stepRaw.type === 'map' ||
175
+ stepRaw.type === 'filter' ||
176
+ stepRaw.type === 'reduce' ||
177
+ stepRaw.type === 'wait' ||
178
+ stepRaw.type === 'merge' ||
179
+ // Also detect by structure (for implicit type detection)
180
+ (stepRaw.items && stepRaw.steps) || // for_each/while
181
+ (stepRaw.condition && (stepRaw.then || stepRaw.else)) || // if
182
+ (stepRaw.expression && stepRaw.cases) || // switch
183
+ stepRaw.branches; // parallel
184
+ if (!isActionStep && !isWorkflowStep && !isScriptStep && !isControlFlowStep) {
156
185
  continue;
157
186
  }
158
187
  const step = normalizeStep(stepRaw, stepIndex);
@@ -171,6 +200,42 @@ function parseStepsFromMarkdown(markdown, warnings) {
171
200
  }
172
201
  return steps;
173
202
  }
203
+ /**
204
+ * Normalize permissions object, converting snake_case to camelCase.
205
+ */
206
+ function normalizePermissions(raw) {
207
+ if (!raw || typeof raw !== 'object') {
208
+ return undefined;
209
+ }
210
+ const obj = raw;
211
+ return {
212
+ read: obj.read,
213
+ write: obj.write,
214
+ execute: obj.execute,
215
+ allowedCommands: obj.allowed_commands ?? obj.allowedCommands,
216
+ blockedCommands: obj.blocked_commands ?? obj.blockedCommands,
217
+ allowedDirectories: obj.allowed_directories ?? obj.allowedDirectories,
218
+ blockedPaths: obj.blocked_paths ?? obj.blockedPaths,
219
+ network: obj.network,
220
+ allowedHosts: obj.allowed_hosts ?? obj.allowedHosts,
221
+ maxFileSize: obj.max_file_size ?? obj.maxFileSize,
222
+ };
223
+ }
224
+ /**
225
+ * Normalize subagent config, converting snake_case to camelCase.
226
+ */
227
+ function normalizeSubagentConfig(raw) {
228
+ if (!raw || typeof raw !== 'object') {
229
+ return undefined;
230
+ }
231
+ const obj = raw;
232
+ return {
233
+ model: obj.model,
234
+ maxTurns: obj.max_turns ?? obj.maxTurns,
235
+ systemPrompt: obj.system_prompt ?? obj.systemPrompt,
236
+ tools: obj.tools,
237
+ };
238
+ }
174
239
  /**
175
240
  * Normalize a step object, converting snake_case to camelCase and detecting step type.
176
241
  */
@@ -181,6 +246,11 @@ function normalizeStep(raw, index) {
181
246
  conditions: raw.conditions,
182
247
  timeout: raw.timeout,
183
248
  outputVariable: raw.output_variable || raw.outputVariable,
249
+ // Per-step model/agent configuration
250
+ model: raw.model,
251
+ agent: raw.agent,
252
+ // Permission restrictions
253
+ permissions: normalizePermissions(raw.permissions),
184
254
  };
185
255
  // Detect or use explicit type
186
256
  let type = raw.type;
@@ -226,6 +296,9 @@ function normalizeStep(raw, index) {
226
296
  action: raw.action,
227
297
  inputs: raw.inputs || {},
228
298
  errorHandling: normalizeErrorHandling(raw.error_handling || raw.errorHandling || raw.on_error),
299
+ // External prompt file support
300
+ prompt: raw.prompt,
301
+ promptInputs: raw.prompt_inputs || raw.promptInputs,
229
302
  };
230
303
  case 'workflow':
231
304
  return {
@@ -234,6 +307,9 @@ function normalizeStep(raw, index) {
234
307
  workflow: raw.workflow,
235
308
  inputs: raw.inputs || {},
236
309
  errorHandling: normalizeErrorHandling(raw.error_handling || raw.errorHandling || raw.on_error),
310
+ // Sub-agent execution support
311
+ useSubagent: raw.use_subagent ?? raw.useSubagent ?? false,
312
+ subagentConfig: normalizeSubagentConfig(raw.subagent_config || raw.subagentConfig),
237
313
  };
238
314
  case 'if':
239
315
  return {
@@ -319,6 +395,30 @@ function normalizeStep(raw, index) {
319
395
  ? normalizeSteps(raw.finally)
320
396
  : undefined,
321
397
  };
398
+ case 'script':
399
+ return {
400
+ ...base,
401
+ type: 'script',
402
+ inputs: raw.inputs || {},
403
+ errorHandling: normalizeErrorHandling(raw.error_handling || raw.errorHandling || raw.on_error),
404
+ };
405
+ case 'wait':
406
+ return {
407
+ ...base,
408
+ type: 'wait',
409
+ mode: raw.mode,
410
+ duration: raw.duration,
411
+ fields: raw.fields,
412
+ webhookPath: raw.webhook_path || raw.webhookPath,
413
+ };
414
+ case 'merge':
415
+ return {
416
+ ...base,
417
+ type: 'merge',
418
+ mode: raw.mode,
419
+ sources: raw.sources,
420
+ keyField: raw.key_field || raw.keyField,
421
+ };
322
422
  default:
323
423
  // Fallback for backward compatibility
324
424
  return {
@@ -334,6 +434,9 @@ function normalizeStep(raw, index) {
334
434
  * Normalize an array of steps recursively.
335
435
  */
336
436
  function normalizeSteps(steps) {
437
+ if (!steps || !Array.isArray(steps)) {
438
+ return [];
439
+ }
337
440
  return steps.map((step, index) => normalizeStep(step, index));
338
441
  }
339
442
  /**
@@ -352,6 +455,9 @@ function normalizeCases(cases) {
352
455
  * Normalize parallel branches.
353
456
  */
354
457
  function normalizeBranches(branches) {
458
+ if (!branches || !Array.isArray(branches)) {
459
+ return [];
460
+ }
355
461
  return branches.map((branch, index) => ({
356
462
  id: branch.id || `branch-${index + 1}`,
357
463
  name: branch.name,
@@ -381,7 +487,11 @@ function resolveEnvironmentVariables(workflow) {
381
487
  const resolve = (value) => {
382
488
  if (typeof value === 'string') {
383
489
  return value.replace(/\$\{([^}]+)\}/g, (_, varName) => {
384
- return process.env[varName] || '';
490
+ const envValue = process.env[varName];
491
+ if (envValue === undefined) {
492
+ console.warn(`[marktoflow] Environment variable \${${varName}} is not set`);
493
+ }
494
+ return envValue || '';
385
495
  });
386
496
  }
387
497
  if (Array.isArray(value)) {
@@ -1 +1 @@
1
- {"version":3,"file":"parser.js","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parser.js","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Permissions module for marktoflow v2.0
3
+ *
4
+ * Provides permission merging and enforcement utilities for step-level
5
+ * and workflow-level permission restrictions.
6
+ */
7
+ import { Permissions } from './models.js';
8
+ export interface EffectivePermissions {
9
+ read: string[] | boolean;
10
+ write: string[] | boolean;
11
+ execute: string[] | boolean;
12
+ allowedCommands: string[];
13
+ blockedCommands: string[];
14
+ allowedDirectories: string[];
15
+ blockedPaths: string[];
16
+ network: boolean;
17
+ allowedHosts: string[];
18
+ maxFileSize: number | undefined;
19
+ }
20
+ export interface PermissionCheckResult {
21
+ allowed: boolean;
22
+ reason?: string;
23
+ }
24
+ export type OperationType = 'read' | 'write' | 'execute' | 'network';
25
+ /**
26
+ * Merge workflow-level and step-level permissions.
27
+ * Step permissions override workflow permissions, with most restrictive winning.
28
+ */
29
+ export declare function mergePermissions(workflow?: Permissions, step?: Permissions): EffectivePermissions;
30
+ /**
31
+ * Check if an operation is permitted.
32
+ */
33
+ export declare function checkPermission(perms: EffectivePermissions, operation: OperationType, target?: string): PermissionCheckResult;
34
+ export interface SecurityPolicy {
35
+ allowFileRead: (path: string) => PermissionCheckResult;
36
+ allowFileWrite: (path: string) => PermissionCheckResult;
37
+ allowCommand: (command: string) => PermissionCheckResult;
38
+ allowNetwork: (host: string) => PermissionCheckResult;
39
+ maxFileSize: number | undefined;
40
+ }
41
+ /**
42
+ * Convert EffectivePermissions to a SecurityPolicy for use with hooks.
43
+ */
44
+ export declare function toSecurityPolicy(perms: EffectivePermissions): SecurityPolicy;
45
+ /**
46
+ * Create default (permissive) permissions.
47
+ */
48
+ export declare function createDefaultPermissions(): EffectivePermissions;
49
+ //# sourceMappingURL=permissions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../src/permissions.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAO1C,MAAM,WAAW,oBAAoB;IAEnC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IACzB,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAG1B,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAC5B,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,eAAe,EAAE,MAAM,EAAE,CAAC;IAG1B,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,YAAY,EAAE,MAAM,EAAE,CAAC;IAGvB,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,MAAM,EAAE,CAAC;IAGvB,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;CACjC;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,CAAC;AAMrE;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,CAAC,EAAE,WAAW,EACtB,IAAI,CAAC,EAAE,WAAW,GACjB,oBAAoB,CA0BtB;AAqED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,oBAAoB,EAC3B,SAAS,EAAE,aAAa,EACxB,MAAM,CAAC,EAAE,MAAM,GACd,qBAAqB,CAiBvB;AAwLD,MAAM,WAAW,cAAc;IAC7B,aAAa,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,qBAAqB,CAAC;IACvD,cAAc,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,qBAAqB,CAAC;IACxD,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,qBAAqB,CAAC;IACzD,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,qBAAqB,CAAC;IACtD,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;CACjC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,oBAAoB,GAAG,cAAc,CAQ5E;AAED;;GAEG;AACH,wBAAgB,wBAAwB,IAAI,oBAAoB,CAa/D"}
@@ -0,0 +1,286 @@
1
+ /**
2
+ * Permissions module for marktoflow v2.0
3
+ *
4
+ * Provides permission merging and enforcement utilities for step-level
5
+ * and workflow-level permission restrictions.
6
+ */
7
+ import { minimatch } from 'minimatch';
8
+ // ============================================================================
9
+ // Permission Merging
10
+ // ============================================================================
11
+ /**
12
+ * Merge workflow-level and step-level permissions.
13
+ * Step permissions override workflow permissions, with most restrictive winning.
14
+ */
15
+ export function mergePermissions(workflow, step) {
16
+ // Start with defaults (most permissive)
17
+ const effective = {
18
+ read: true,
19
+ write: true,
20
+ execute: true,
21
+ allowedCommands: [],
22
+ blockedCommands: [],
23
+ allowedDirectories: [],
24
+ blockedPaths: [],
25
+ network: true,
26
+ allowedHosts: [],
27
+ maxFileSize: undefined,
28
+ };
29
+ // Apply workflow-level permissions first
30
+ if (workflow) {
31
+ applyPermissions(effective, workflow);
32
+ }
33
+ // Apply step-level permissions (overrides workflow)
34
+ if (step) {
35
+ applyPermissions(effective, step);
36
+ }
37
+ return effective;
38
+ }
39
+ /**
40
+ * Apply a permission configuration to effective permissions.
41
+ */
42
+ function applyPermissions(effective, perms) {
43
+ if (!perms)
44
+ return;
45
+ // File operations
46
+ if (perms.read !== undefined) {
47
+ effective.read = perms.read;
48
+ }
49
+ if (perms.write !== undefined) {
50
+ effective.write = perms.write;
51
+ }
52
+ // Command execution
53
+ if (perms.execute !== undefined) {
54
+ effective.execute = perms.execute;
55
+ }
56
+ if (perms.allowedCommands) {
57
+ // Merge allowed commands (union)
58
+ effective.allowedCommands = [
59
+ ...new Set([...effective.allowedCommands, ...perms.allowedCommands]),
60
+ ];
61
+ }
62
+ if (perms.blockedCommands) {
63
+ // Merge blocked commands (union)
64
+ effective.blockedCommands = [
65
+ ...new Set([...effective.blockedCommands, ...perms.blockedCommands]),
66
+ ];
67
+ }
68
+ // Directory restrictions
69
+ if (perms.allowedDirectories) {
70
+ effective.allowedDirectories = [
71
+ ...new Set([...effective.allowedDirectories, ...perms.allowedDirectories]),
72
+ ];
73
+ }
74
+ if (perms.blockedPaths) {
75
+ effective.blockedPaths = [
76
+ ...new Set([...effective.blockedPaths, ...perms.blockedPaths]),
77
+ ];
78
+ }
79
+ // Network
80
+ if (perms.network !== undefined) {
81
+ effective.network = perms.network;
82
+ }
83
+ if (perms.allowedHosts) {
84
+ effective.allowedHosts = [
85
+ ...new Set([...effective.allowedHosts, ...perms.allowedHosts]),
86
+ ];
87
+ }
88
+ // Limits (most restrictive wins)
89
+ if (perms.maxFileSize !== undefined) {
90
+ if (effective.maxFileSize === undefined) {
91
+ effective.maxFileSize = perms.maxFileSize;
92
+ }
93
+ else {
94
+ effective.maxFileSize = Math.min(effective.maxFileSize, perms.maxFileSize);
95
+ }
96
+ }
97
+ }
98
+ // ============================================================================
99
+ // Permission Checking
100
+ // ============================================================================
101
+ /**
102
+ * Check if an operation is permitted.
103
+ */
104
+ export function checkPermission(perms, operation, target) {
105
+ switch (operation) {
106
+ case 'read':
107
+ return checkFilePermission(perms.read, target, 'read', perms);
108
+ case 'write':
109
+ return checkFilePermission(perms.write, target, 'write', perms);
110
+ case 'execute':
111
+ return checkExecutePermission(perms, target);
112
+ case 'network':
113
+ return checkNetworkPermission(perms, target);
114
+ default:
115
+ return { allowed: false, reason: `Unknown operation: ${operation}` };
116
+ }
117
+ }
118
+ /**
119
+ * Check file operation permission (read/write).
120
+ */
121
+ function checkFilePermission(permission, target, operation, perms) {
122
+ // If permission is false, deny all
123
+ if (!permission) {
124
+ return { allowed: false, reason: `${operation} operations are disabled` };
125
+ }
126
+ // If permission is true and no target, allow
127
+ if (permission === true && !target) {
128
+ return { allowed: true };
129
+ }
130
+ // Check blocked paths first
131
+ if (target && perms.blockedPaths.length > 0) {
132
+ for (const blocked of perms.blockedPaths) {
133
+ if (matchPath(target, blocked)) {
134
+ return { allowed: false, reason: `Path is blocked: ${blocked}` };
135
+ }
136
+ }
137
+ }
138
+ // Check allowed directories if specified
139
+ if (target && perms.allowedDirectories.length > 0) {
140
+ const inAllowedDir = perms.allowedDirectories.some((dir) => target.startsWith(dir) || matchPath(target, dir + '/**'));
141
+ if (!inAllowedDir) {
142
+ return { allowed: false, reason: `Path not in allowed directories` };
143
+ }
144
+ }
145
+ // If permission is an array, check if target matches any pattern
146
+ if (Array.isArray(permission)) {
147
+ if (!target) {
148
+ return { allowed: true }; // No specific target, allow
149
+ }
150
+ const matches = permission.some((pattern) => matchPath(target, pattern));
151
+ if (!matches) {
152
+ return { allowed: false, reason: `Path does not match allowed patterns for ${operation}` };
153
+ }
154
+ }
155
+ return { allowed: true };
156
+ }
157
+ /**
158
+ * Check execute permission for a command.
159
+ */
160
+ function checkExecutePermission(perms, command) {
161
+ // If execute is false, deny all
162
+ if (perms.execute === false) {
163
+ return { allowed: false, reason: 'Command execution is disabled' };
164
+ }
165
+ if (!command) {
166
+ return { allowed: true };
167
+ }
168
+ // Check blocked commands first
169
+ if (perms.blockedCommands.length > 0) {
170
+ for (const blocked of perms.blockedCommands) {
171
+ if (commandMatches(command, blocked)) {
172
+ return { allowed: false, reason: `Command is blocked: ${blocked}` };
173
+ }
174
+ }
175
+ }
176
+ // If execute is an array of allowed commands
177
+ if (Array.isArray(perms.execute)) {
178
+ const matches = perms.execute.some((allowed) => commandMatches(command, allowed));
179
+ if (!matches) {
180
+ return { allowed: false, reason: 'Command not in allowed list' };
181
+ }
182
+ }
183
+ // Check allowed commands if specified
184
+ if (perms.allowedCommands.length > 0) {
185
+ const matches = perms.allowedCommands.some((allowed) => commandMatches(command, allowed));
186
+ if (!matches) {
187
+ return { allowed: false, reason: 'Command not in allowed list' };
188
+ }
189
+ }
190
+ return { allowed: true };
191
+ }
192
+ /**
193
+ * Check network permission for a host.
194
+ */
195
+ function checkNetworkPermission(perms, host) {
196
+ // If network is false, deny all
197
+ if (!perms.network) {
198
+ return { allowed: false, reason: 'Network access is disabled' };
199
+ }
200
+ if (!host) {
201
+ return { allowed: true };
202
+ }
203
+ // Check allowed hosts if specified
204
+ if (perms.allowedHosts.length > 0) {
205
+ const matches = perms.allowedHosts.some((allowed) => hostMatches(host, allowed));
206
+ if (!matches) {
207
+ return { allowed: false, reason: `Host not in allowed list: ${host}` };
208
+ }
209
+ }
210
+ return { allowed: true };
211
+ }
212
+ // ============================================================================
213
+ // Pattern Matching Helpers
214
+ // ============================================================================
215
+ /**
216
+ * Match a path against a glob pattern.
217
+ */
218
+ function matchPath(path, pattern) {
219
+ return minimatch(path, pattern, { dot: true });
220
+ }
221
+ /**
222
+ * Check if a command matches a pattern.
223
+ * Patterns can be exact matches or wildcards.
224
+ */
225
+ function commandMatches(command, pattern) {
226
+ // Exact match
227
+ if (command === pattern) {
228
+ return true;
229
+ }
230
+ // Check if command starts with pattern (for matching command prefixes like "rm -rf")
231
+ if (command.startsWith(pattern + ' ') || command.startsWith(pattern)) {
232
+ return true;
233
+ }
234
+ // Wildcard pattern matching
235
+ if (pattern.includes('*')) {
236
+ const regex = new RegExp('^' + pattern.replace(/\*/g, '.*') + '$');
237
+ return regex.test(command);
238
+ }
239
+ return false;
240
+ }
241
+ /**
242
+ * Check if a host matches a pattern.
243
+ * Supports wildcard domains like *.example.com
244
+ */
245
+ function hostMatches(host, pattern) {
246
+ // Exact match
247
+ if (host === pattern) {
248
+ return true;
249
+ }
250
+ // Wildcard domain matching (e.g., *.example.com)
251
+ if (pattern.startsWith('*.')) {
252
+ const suffix = pattern.slice(1); // .example.com
253
+ return host.endsWith(suffix);
254
+ }
255
+ return false;
256
+ }
257
+ /**
258
+ * Convert EffectivePermissions to a SecurityPolicy for use with hooks.
259
+ */
260
+ export function toSecurityPolicy(perms) {
261
+ return {
262
+ allowFileRead: (path) => checkPermission(perms, 'read', path),
263
+ allowFileWrite: (path) => checkPermission(perms, 'write', path),
264
+ allowCommand: (command) => checkPermission(perms, 'execute', command),
265
+ allowNetwork: (host) => checkPermission(perms, 'network', host),
266
+ maxFileSize: perms.maxFileSize,
267
+ };
268
+ }
269
+ /**
270
+ * Create default (permissive) permissions.
271
+ */
272
+ export function createDefaultPermissions() {
273
+ return {
274
+ read: true,
275
+ write: true,
276
+ execute: true,
277
+ allowedCommands: [],
278
+ blockedCommands: [],
279
+ allowedDirectories: [],
280
+ blockedPaths: [],
281
+ network: true,
282
+ allowedHosts: [],
283
+ maxFileSize: undefined,
284
+ };
285
+ }
286
+ //# sourceMappingURL=permissions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permissions.js","sourceRoot":"","sources":["../src/permissions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Prompt Loader for marktoflow v2.0
3
+ *
4
+ * Loads external prompt files with optional YAML frontmatter for variable definitions.
5
+ * Supports template variable resolution using Nunjucks ({{ prompt.variable }} syntax).
6
+ */
7
+ import { ExecutionContext } from './models.js';
8
+ export interface PromptVariable {
9
+ type: 'string' | 'number' | 'boolean' | 'array' | 'object';
10
+ required: boolean | undefined;
11
+ default: unknown;
12
+ description: string | undefined;
13
+ }
14
+ export interface LoadedPrompt {
15
+ name: string | undefined;
16
+ description: string | undefined;
17
+ variables: Record<string, PromptVariable>;
18
+ content: string;
19
+ rawContent: string;
20
+ filePath: string;
21
+ }
22
+ export interface ValidationResult {
23
+ valid: boolean;
24
+ errors: string[];
25
+ warnings: string[];
26
+ }
27
+ export interface ResolvedPrompt {
28
+ content: string;
29
+ variables: Record<string, unknown>;
30
+ }
31
+ /**
32
+ * Load a prompt file with optional YAML frontmatter.
33
+ */
34
+ export declare function loadPromptFile(promptPath: string, basePath?: string): Promise<LoadedPrompt>;
35
+ /**
36
+ * Resolve {{ prompt.variable }} templates in a prompt using Nunjucks.
37
+ *
38
+ * Features enabled by using Nunjucks:
39
+ * - Filters: {{ prompt.name | upper }}, {{ value | split('/') | first }}
40
+ * - Conditionals: {% if prompt.enabled %}...{% endif %}
41
+ * - Loops: {% for item in items %}...{% endfor %}
42
+ * - All custom filters from nunjucks-filters.ts
43
+ */
44
+ export declare function resolvePromptTemplate(prompt: LoadedPrompt, inputs: Record<string, unknown>, context?: ExecutionContext): ResolvedPrompt;
45
+ /**
46
+ * Validate that all required prompt inputs are provided.
47
+ */
48
+ export declare function validatePromptInputs(prompt: LoadedPrompt, inputs: Record<string, unknown>): ValidationResult;
49
+ /**
50
+ * Extract all variable references from a prompt template.
51
+ */
52
+ export declare function extractPromptVariables(content: string): string[];
53
+ //# sourceMappingURL=prompt-loader.d.ts.map