@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/README.md CHANGED
@@ -1,70 +1,51 @@
1
1
  # @marktoflow/core
2
2
 
3
- > **Author:** Scott Glover <scottgl@gmail.com>
3
+ > Workflow engine for parsing, executing, and managing markdown-based automations.
4
4
 
5
- Core engine for marktoflow - parser, executor, and state management.
5
+ [![npm](https://img.shields.io/npm/v/@marktoflow/core)](https://www.npmjs.com/package/@marktoflow/core)
6
6
 
7
- ## Overview
7
+ Part of [marktoflow](../../README.md) — open-source markdown workflow automation.
8
8
 
9
- `@marktoflow/core` is the foundation of the marktoflow automation framework. It provides the core workflow engine, state management, scheduling, and execution infrastructure.
10
-
11
- ## Features
12
-
13
- - **Workflow Parser** - Parse markdown + YAML workflow definitions
14
- - **Execution Engine** - Step-by-step workflow execution with retry and error handling
15
- - **State Management** - SQLite-based persistent state tracking
16
- - **Scheduling** - Cron-based workflow scheduling
17
- - **Queue System** - Support for Redis, RabbitMQ, and in-memory queues
18
- - **Webhooks** - HTTP webhook trigger support
19
- - **File Watching** - Monitor files for changes and trigger workflows
20
- - **Security** - RBAC, approval workflows, and audit logging
21
- - **Cost Tracking** - Track and manage API usage costs
22
- - **Plugin System** - Extensible plugin architecture with 17 hook types
23
- - **Templates** - Reusable workflow templates with variables
24
- - **Tool Registry** - Support for MCP, OpenAPI, and custom tools
25
- - **Agent Routing** - Multi-agent workflow support with routing strategies
26
-
27
- ## Installation
9
+ ## Quick Start
28
10
 
29
11
  ```bash
30
12
  npm install @marktoflow/core
31
13
  ```
32
14
 
33
- ## Usage
34
-
35
- ### Basic Workflow Execution
36
-
37
15
  ```typescript
38
16
  import { WorkflowParser, WorkflowEngine } from '@marktoflow/core';
39
17
 
40
- // Parse workflow
41
18
  const parser = new WorkflowParser();
42
19
  const workflow = await parser.parseWorkflow('workflow.md');
43
20
 
44
- // Execute workflow
45
21
  const engine = new WorkflowEngine();
46
22
  const result = await engine.execute(workflow, {
47
23
  inputs: { message: 'Hello World' },
48
24
  });
49
-
50
- console.log(result);
51
25
  ```
52
26
 
53
- ### With State Management
27
+ ## Features
28
+
29
+ - **Workflow Parser** — Parse markdown + YAML workflow definitions
30
+ - **Execution Engine** — Step-by-step execution with retry, circuit breakers, and error handling
31
+ - **State Management** — SQLite-based persistent state tracking
32
+ - **Plugin System** — Extensible architecture with 17 hook types
33
+ - **Cost Tracking** — Monitor and budget API usage per workflow
34
+ - **Scheduling** — Cron-based workflow scheduling
35
+ - **Security** — RBAC, approval workflows, and audit logging
36
+ - **Queue System** — Distributed execution via Redis, RabbitMQ, or in-memory
37
+
38
+ ## Usage
39
+
40
+ ### State Management
54
41
 
55
42
  ```typescript
56
43
  import { WorkflowEngine, StateManager } from '@marktoflow/core';
57
44
 
58
- // Initialize state manager
59
- const stateManager = new StateManager({
60
- dbPath: '.marktoflow/state.db',
61
- });
62
-
63
- // Execute workflow with state
45
+ const stateManager = new StateManager({ dbPath: '.marktoflow/state.db' });
64
46
  const engine = new WorkflowEngine({ stateManager });
65
47
  const result = await engine.execute(workflow);
66
48
 
67
- // Query state
68
49
  const history = await stateManager.getWorkflowHistory(workflow.id);
69
50
  ```
70
51
 
@@ -73,234 +54,55 @@ const history = await stateManager.getWorkflowHistory(workflow.id);
73
54
  ```typescript
74
55
  import { Scheduler } from '@marktoflow/core';
75
56
 
76
- // Create scheduler
77
57
  const scheduler = new Scheduler();
78
-
79
- // Schedule workflow (cron format)
80
58
  await scheduler.schedule({
81
59
  workflowId: 'daily-report',
82
- cron: '0 9 * * 1-5', // 9 AM weekdays
60
+ cron: '0 9 * * 1-5',
83
61
  workflowPath: './workflows/daily-report.md',
84
62
  });
85
-
86
- // Start scheduler
87
63
  await scheduler.start();
88
64
  ```
89
65
 
90
- ### Webhooks
91
-
92
- ```typescript
93
- import { WebhookServer } from '@marktoflow/core';
94
-
95
- // Create webhook server
96
- const webhookServer = new WebhookServer({ port: 3000 });
97
-
98
- // Register webhook
99
- await webhookServer.registerWebhook({
100
- path: '/github',
101
- workflowPath: './workflows/github-pr.md',
102
- secret: process.env.GITHUB_WEBHOOK_SECRET,
103
- });
104
-
105
- // Start server
106
- await webhookServer.start();
107
- ```
108
-
109
66
  ### Plugin System
110
67
 
111
68
  ```typescript
112
69
  import { PluginRegistry } from '@marktoflow/core';
113
70
 
114
- // Register plugin
115
71
  const registry = new PluginRegistry();
116
72
  await registry.register({
117
73
  name: 'my-plugin',
118
74
  hooks: {
119
- beforeWorkflowStart: async (context) => {
120
- console.log('Starting workflow:', context.workflow.id);
121
- },
122
- afterStepComplete: async (context) => {
123
- console.log('Completed step:', context.step.action);
124
- },
75
+ beforeWorkflowStart: async (ctx) => console.log('Starting:', ctx.workflow.id),
76
+ afterStepComplete: async (ctx) => console.log('Done:', ctx.step.action),
125
77
  },
126
78
  });
127
79
  ```
128
80
 
129
- ## Workflow Format
130
-
131
- Workflows are written in markdown with YAML frontmatter:
132
-
133
- ```markdown
134
- ---
135
- workflow:
136
- id: example
137
- name: Example Workflow
138
-
139
- tools:
140
- slack:
141
- sdk: '@slack/web-api'
142
- auth:
143
- token: '${SLACK_BOT_TOKEN}'
144
-
145
- triggers:
146
- - type: schedule
147
- cron: '0 9 * * *'
148
-
149
- inputs:
150
- message:
151
- type: string
152
- required: true
153
-
154
- outputs:
155
- result:
156
- type: string
157
- ---
158
-
159
- # Example Workflow
160
-
161
- This workflow posts a message to Slack.
162
-
163
- ## Step 1: Post Message
164
-
165
- \`\`\`yaml
166
- action: slack.chat.postMessage
167
- inputs:
168
- channel: '#general'
169
- text: '{{ inputs.message }}'
170
- output_variable: result
171
- \`\`\`
172
- ```
173
-
174
- ## Architecture
175
-
176
- ### Core Components
177
-
178
- 1. **Parser** (`parser.ts`) - Parse markdown + YAML workflow definitions
179
- 2. **Engine** (`engine.ts`) - Execute workflows with retry/circuit breaker
180
- 3. **State Manager** (`state.ts`) - SQLite-based state persistence
181
- 4. **Scheduler** (`scheduler.ts`) - Cron-based workflow scheduling
182
- 5. **Queue** (`queue.ts`) - Redis/RabbitMQ/InMemory queue support
183
- 6. **Webhook** (`webhook.ts`) - HTTP webhook triggers
184
- 7. **File Watcher** (`filewatcher.ts`) - File change monitoring
185
- 8. **Security** (`security.ts`) - RBAC and audit logging
186
- 9. **Cost Tracker** (`costs.ts`) - API usage cost management
187
- 10. **Plugin System** (`plugins.ts`) - Extensible hooks
188
- 11. **Templates** (`templates.ts`) - Reusable workflow patterns
189
- 12. **Tool Registry** (`tool-registry.ts`) - MCP/OpenAPI/Custom tools
190
- 13. **Agent Routing** (`routing.ts`) - Multi-agent coordination
191
-
192
- ### Execution Flow
193
-
194
- ```
195
- Parser → Validate → Security Check → Execute Steps → Save State → Output
196
- ↓ ↓ ↓ ↓
197
- Schema RBAC Retry/Failover Audit Log
198
- ```
199
-
200
- ## Configuration
201
-
202
- ### Environment Variables
203
-
204
- ```bash
205
- # Database
206
- MARKTOFLOW_DB_PATH=.marktoflow/state.db
207
-
208
- # Queue (Redis)
209
- REDIS_HOST=localhost
210
- REDIS_PORT=6379
211
-
212
- # Queue (RabbitMQ)
213
- RABBITMQ_URL=amqp://localhost
214
-
215
- # Security
216
- MARKTOFLOW_SECRET_KEY=your-secret-key
217
- ```
218
-
219
- ### Configuration File
220
-
221
- Create `.marktoflow/config.yaml`:
222
-
223
- ```yaml
224
- state:
225
- dbPath: .marktoflow/state.db
226
-
227
- queue:
228
- type: redis # redis, rabbitmq, or memory
229
- redis:
230
- host: localhost
231
- port: 6379
232
-
233
- security:
234
- rbac:
235
- enabled: true
236
- auditLog:
237
- enabled: true
238
-
239
- costs:
240
- budget:
241
- daily: 100
242
- monthly: 3000
243
- alerts:
244
- - threshold: 50
245
- emails: [admin@example.com]
246
- ```
247
-
248
81
  ## API Reference
249
82
 
250
- ### WorkflowParser
251
-
252
83
  ```typescript
253
84
  class WorkflowParser {
254
85
  parseWorkflow(filePath: string): Promise<Workflow>;
255
86
  parseYAML(content: string): Workflow;
256
87
  validate(workflow: Workflow): ValidationResult;
257
88
  }
258
- ```
259
-
260
- ### WorkflowEngine
261
89
 
262
- ```typescript
263
90
  class WorkflowEngine {
264
91
  constructor(options?: EngineOptions);
265
92
  execute(workflow: Workflow, context?: ExecutionContext): Promise<WorkflowResult>;
266
93
  stop(): Promise<void>;
267
94
  }
268
- ```
269
-
270
- ### StateManager
271
95
 
272
- ```typescript
273
96
  class StateManager {
274
97
  constructor(options: StateOptions);
275
98
  getWorkflowHistory(workflowId: string): Promise<WorkflowRun[]>;
276
- getWorkflowState(runId: string): Promise<WorkflowState>;
277
99
  saveWorkflowState(state: WorkflowState): Promise<void>;
278
100
  }
279
101
  ```
280
102
 
281
- ### Scheduler
282
-
283
- ```typescript
284
- class Scheduler {
285
- schedule(config: ScheduleConfig): Promise<void>;
286
- unschedule(workflowId: string): Promise<void>;
287
- start(): Promise<void>;
288
- stop(): Promise<void>;
289
- }
290
- ```
291
-
292
- ## Testing
293
-
294
- ```bash
295
- npm test
296
- ```
297
-
298
- ## Links
103
+ ## Contributing
299
104
 
300
- - [Main Repository](https://github.com/scottgl9/marktoflow)
301
- - [Documentation](https://github.com/scottgl9/marktoflow#readme)
302
- - [CLI Package](@marktoflow/cli)
303
- - [Integrations Package](@marktoflow/integrations)
105
+ See the [contributing guide](https://github.com/marktoflow/marktoflow/blob/main/CONTRIBUTING.md).
304
106
 
305
107
  ## License
306
108
 
@@ -0,0 +1,150 @@
1
+ /**
2
+ * Built-in Operations for marktoflow
3
+ *
4
+ * Provides common operations that eliminate the need for verbose script blocks:
5
+ * - core.set: Simple variable assignment
6
+ * - core.transform: Map/filter/reduce transformations
7
+ * - core.extract: Nested path access
8
+ * - core.format: Date/number/string formatting
9
+ * - file.read: Read files with format conversion (docx, pdf, xlsx)
10
+ * - file.write: Write files (text or binary)
11
+ */
12
+ import { ExecutionContext } from './models.js';
13
+ export interface SetOperationInputs {
14
+ [key: string]: unknown;
15
+ }
16
+ export interface TransformOperationInputs {
17
+ input: unknown[];
18
+ operation: 'map' | 'filter' | 'reduce' | 'find' | 'group_by' | 'unique' | 'sort';
19
+ expression?: string;
20
+ condition?: string;
21
+ initialValue?: unknown;
22
+ key?: string;
23
+ reverse?: boolean;
24
+ }
25
+ export interface ExtractOperationInputs {
26
+ input: unknown;
27
+ path: string;
28
+ default?: unknown;
29
+ }
30
+ export interface FormatOperationInputs {
31
+ value: unknown;
32
+ type: 'date' | 'number' | 'string' | 'currency' | 'json';
33
+ format?: string;
34
+ locale?: string;
35
+ currency?: string;
36
+ precision?: number;
37
+ }
38
+ /**
39
+ * Set multiple variables at once with expression resolution.
40
+ *
41
+ * Example:
42
+ * ```yaml
43
+ * action: core.set
44
+ * inputs:
45
+ * owner: "{{ inputs.repo =~ /^([^\/]+)\// }}"
46
+ * repo_name: "{{ inputs.repo =~ /\/(.+)$/ }}"
47
+ * timestamp: "{{ now() }}"
48
+ * ```
49
+ */
50
+ export declare function executeSet(inputs: SetOperationInputs, context: ExecutionContext): Record<string, unknown>;
51
+ /**
52
+ * Transform arrays using common operations like map, filter, reduce.
53
+ *
54
+ * Examples:
55
+ *
56
+ * Map:
57
+ * ```yaml
58
+ * action: core.transform
59
+ * inputs:
60
+ * input: "{{ oncall_response.data.oncalls }}"
61
+ * operation: map
62
+ * expression: "@{{ item.user.name }}"
63
+ * ```
64
+ *
65
+ * Filter:
66
+ * ```yaml
67
+ * action: core.transform
68
+ * inputs:
69
+ * input: "{{ issues }}"
70
+ * operation: filter
71
+ * condition: "item.priority == 'high'"
72
+ * ```
73
+ *
74
+ * Reduce:
75
+ * ```yaml
76
+ * action: core.transform
77
+ * inputs:
78
+ * input: "{{ numbers }}"
79
+ * operation: reduce
80
+ * expression: "{{ accumulator + item }}"
81
+ * initialValue: 0
82
+ * ```
83
+ */
84
+ export declare function executeTransform(rawInputs: TransformOperationInputs, resolvedInputs: Record<string, unknown>, context: ExecutionContext): unknown;
85
+ /**
86
+ * Extract values from nested objects safely.
87
+ *
88
+ * Example:
89
+ * ```yaml
90
+ * action: core.extract
91
+ * inputs:
92
+ * input: "{{ api_response }}"
93
+ * path: "data.users[0].email"
94
+ * default: "unknown@example.com"
95
+ * ```
96
+ */
97
+ export declare function executeExtract(inputs: ExtractOperationInputs, context: ExecutionContext): unknown;
98
+ /**
99
+ * Format values for display (dates, numbers, strings, currency).
100
+ *
101
+ * Examples:
102
+ *
103
+ * Date:
104
+ * ```yaml
105
+ * action: core.format
106
+ * inputs:
107
+ * value: "{{ now() }}"
108
+ * type: date
109
+ * format: "YYYY-MM-DD HH:mm:ss"
110
+ * ```
111
+ *
112
+ * Number:
113
+ * ```yaml
114
+ * action: core.format
115
+ * inputs:
116
+ * value: 1234.56
117
+ * type: number
118
+ * precision: 2
119
+ * ```
120
+ *
121
+ * Currency:
122
+ * ```yaml
123
+ * action: core.format
124
+ * inputs:
125
+ * value: 1234.56
126
+ * type: currency
127
+ * currency: USD
128
+ * locale: en-US
129
+ * ```
130
+ */
131
+ export declare function executeFormat(inputs: FormatOperationInputs, context: ExecutionContext): string;
132
+ /**
133
+ * Execute a built-in operation based on action name
134
+ */
135
+ export declare function executeBuiltInOperation(action: string, rawInputs: Record<string, unknown>, resolvedInputs: Record<string, unknown>, context: ExecutionContext): unknown | Promise<unknown>;
136
+ /**
137
+ * Check if an action is a built-in operation
138
+ */
139
+ export declare function isBuiltInOperation(action: string): boolean;
140
+ export declare function executeAggregate(inputs: Record<string, unknown>, _context: ExecutionContext): unknown;
141
+ export declare function executeCompare(inputs: Record<string, unknown>, _context: ExecutionContext): unknown;
142
+ export declare function executeRenameKeys(inputs: Record<string, unknown>): unknown;
143
+ export declare function executeLimit(inputs: Record<string, unknown>): unknown;
144
+ export declare function executeSortOperation(inputs: Record<string, unknown>): unknown;
145
+ export declare function executeCrypto(inputs: Record<string, unknown>): unknown;
146
+ export declare function executeDatetime(inputs: Record<string, unknown>): unknown;
147
+ export declare function executeParse(inputs: Record<string, unknown>): unknown;
148
+ export declare function executeCompress(inputs: Record<string, unknown>): unknown;
149
+ export declare function executeDecompress(inputs: Record<string, unknown>): unknown;
150
+ //# sourceMappingURL=built-in-operations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"built-in-operations.d.ts","sourceRoot":"","sources":["../src/built-in-operations.ts"],"names":[],"mappings":"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"}