@marktoflow/core 2.0.0-alpha.7 → 2.0.1

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 (120) hide show
  1. package/README.md +24 -220
  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 +144 -3
  15. package/dist/engine.d.ts.map +1 -1
  16. package/dist/engine.js +1385 -49
  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 +363 -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 +1931 -203
  31. package/dist/models.d.ts.map +1 -1
  32. package/dist/models.js +303 -13
  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 +291 -10
  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/security.d.ts +1 -0
  98. package/dist/security.d.ts.map +1 -1
  99. package/dist/security.js +4 -0
  100. package/dist/security.js.map +1 -1
  101. package/dist/state.d.ts.map +1 -1
  102. package/dist/state.js +16 -9
  103. package/dist/state.js.map +1 -1
  104. package/dist/template-engine.d.ts +51 -0
  105. package/dist/template-engine.d.ts.map +1 -0
  106. package/dist/template-engine.js +227 -0
  107. package/dist/template-engine.js.map +1 -0
  108. package/dist/templates.d.ts +10 -0
  109. package/dist/templates.d.ts.map +1 -1
  110. package/dist/templates.js +21 -17
  111. package/dist/templates.js.map +1 -1
  112. package/dist/tools/mcp-tool.js +9 -9
  113. package/dist/tools/mcp-tool.js.map +1 -1
  114. package/dist/trigger-manager.js +1 -1
  115. package/dist/trigger-manager.js.map +1 -1
  116. package/dist/workflow-tools.d.ts +102 -0
  117. package/dist/workflow-tools.d.ts.map +1 -0
  118. package/dist/workflow-tools.js +130 -0
  119. package/dist/workflow-tools.js.map +1 -0
  120. package/package.json +24 -6
@@ -0,0 +1,130 @@
1
+ /**
2
+ * Built-in workflow tools for controlling workflow execution
3
+ *
4
+ * These actions are always available in workflows without needing to be declared.
5
+ */
6
+ /**
7
+ * Workflow tools client that provides workflow control actions
8
+ */
9
+ export class WorkflowToolsClient {
10
+ /**
11
+ * Set workflow output variables
12
+ *
13
+ * This action sets the final output values of the workflow that can be accessed
14
+ * by the caller or displayed at the end of execution.
15
+ *
16
+ * @example
17
+ * ```yaml
18
+ * action: workflow.set_outputs
19
+ * inputs:
20
+ * result: '{{ calculation_result }}'
21
+ * status: 'success'
22
+ * message: 'Workflow completed'
23
+ * ```
24
+ */
25
+ async set_outputs(inputs) {
26
+ // The engine will capture this special return value and set it as workflow outputs
27
+ // This is a marker that tells the engine to update the workflow's output variables
28
+ return {
29
+ __workflow_outputs__: inputs,
30
+ ...inputs,
31
+ };
32
+ }
33
+ /**
34
+ * Sleep for a specified duration
35
+ *
36
+ * @example
37
+ * ```yaml
38
+ * action: workflow.sleep
39
+ * inputs:
40
+ * duration: 5000 # milliseconds
41
+ * ```
42
+ */
43
+ async sleep(inputs) {
44
+ const duration = inputs.duration || 0;
45
+ await new Promise(resolve => setTimeout(resolve, duration));
46
+ return { slept: duration };
47
+ }
48
+ /**
49
+ * Fail the workflow with an error message
50
+ *
51
+ * @example
52
+ * ```yaml
53
+ * action: workflow.fail
54
+ * inputs:
55
+ * message: 'Validation failed'
56
+ * code: 'VALIDATION_ERROR'
57
+ * ```
58
+ */
59
+ async fail(inputs) {
60
+ const error = new Error(inputs.message);
61
+ if (inputs.code) {
62
+ error.code = inputs.code;
63
+ }
64
+ throw error;
65
+ }
66
+ /**
67
+ * Log a message (alias for core.log)
68
+ *
69
+ * @example
70
+ * ```yaml
71
+ * action: workflow.log
72
+ * inputs:
73
+ * message: 'Processing item {{ item_id }}'
74
+ * level: 'info'
75
+ * ```
76
+ */
77
+ async log(inputs) {
78
+ const level = inputs.level || 'info';
79
+ const message = inputs.message;
80
+ const metadata = inputs.metadata;
81
+ const logFn = level === 'error' || level === 'critical' ? console.error :
82
+ level === 'warning' ? console.warn : console.log;
83
+ if (metadata && Object.keys(metadata).length > 0) {
84
+ logFn(`[${level.toUpperCase()}] ${message}`, metadata);
85
+ }
86
+ else {
87
+ logFn(`[${level.toUpperCase()}] ${message}`);
88
+ }
89
+ return { logged: true };
90
+ }
91
+ /**
92
+ * Create a timestamp
93
+ *
94
+ * @example
95
+ * ```yaml
96
+ * action: workflow.timestamp
97
+ * inputs:
98
+ * format: 'iso' # 'iso', 'unix', or 'ms'
99
+ * output_variable: timestamp
100
+ * ```
101
+ */
102
+ async timestamp(inputs = {}) {
103
+ const format = inputs.format || 'iso';
104
+ switch (format) {
105
+ case 'iso':
106
+ return { timestamp: new Date().toISOString() };
107
+ case 'unix':
108
+ return { timestamp: Math.floor(Date.now() / 1000) };
109
+ case 'ms':
110
+ return { timestamp: Date.now() };
111
+ default:
112
+ return { timestamp: new Date().toISOString() };
113
+ }
114
+ }
115
+ /**
116
+ * No-op action (useful for testing or placeholders)
117
+ */
118
+ async noop() {
119
+ return { success: true };
120
+ }
121
+ }
122
+ /**
123
+ * Workflow SDK initializer
124
+ */
125
+ export const WorkflowInitializer = {
126
+ async initialize(_module, _config) {
127
+ return new WorkflowToolsClient();
128
+ },
129
+ };
130
+ //# sourceMappingURL=workflow-tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-tools.js","sourceRoot":"","sources":["../src/workflow-tools.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH;;GAEG;AACH,MAAM,OAAO,mBAAmB;IAC9B;;;;;;;;;;;;;;OAcG;IACH,KAAK,CAAC,WAAW,CAAC,MAA+B;QAC/C,mFAAmF;QACnF,mFAAmF;QACnF,OAAO;YACL,oBAAoB,EAAE,MAAM;YAC5B,GAAG,MAAM;SACV,CAAC;IACJ,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,KAAK,CAAC,MAA4B;QACtC,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC;QACtC,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC5D,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;IAC7B,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAC,IAAI,CAAC,MAA0C;QACnD,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO,CAA8B,CAAC;QACrE,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;YAChB,KAAK,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QAC3B,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAC,GAAG,CAAC,MAIT;QACC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC;QACrC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QAC/B,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAEjC,MAAM,KAAK,GAAG,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC3D,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC;QAE/D,IAAI,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjD,KAAK,CAAC,IAAI,KAAK,CAAC,WAAW,EAAE,KAAK,OAAO,EAAE,EAAE,QAAQ,CAAC,CAAC;QACzD,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,KAAK,CAAC,WAAW,EAAE,KAAK,OAAO,EAAE,CAAC,CAAC;QAC/C,CAAC;QAED,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IAC1B,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAC,SAAS,CAAC,SAA8B,EAAE;QAC9C,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,KAAK,CAAC;QAEtC,QAAQ,MAAM,EAAE,CAAC;YACf,KAAK,KAAK;gBACR,OAAO,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC;YACjD,KAAK,MAAM;gBACT,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;YACtD,KAAK,IAAI;gBACP,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;YACnC;gBACE,OAAO,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC;QACnD,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI;QACR,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;CACF;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAmB;IACjD,KAAK,CAAC,UAAU,CAAC,OAAgB,EAAE,OAAgB;QACjD,OAAO,IAAI,mBAAmB,EAAE,CAAC;IACnC,CAAC;CACF,CAAC"}
package/package.json CHANGED
@@ -1,18 +1,18 @@
1
1
  {
2
2
  "name": "@marktoflow/core",
3
- "version": "2.0.0-alpha.7",
3
+ "version": "2.0.1",
4
4
  "description": "Core engine for marktoflow - parser, executor, state management",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
7
7
  "types": "./dist/index.d.ts",
8
8
  "repository": {
9
9
  "type": "git",
10
- "url": "git+https://github.com/scottgl9/marktoflow.git",
10
+ "url": "git+https://github.com/marktoflow/marktoflow.git",
11
11
  "directory": "packages/core"
12
12
  },
13
- "homepage": "https://github.com/scottgl9/marktoflow#readme",
13
+ "homepage": "https://github.com/marktoflow/marktoflow#readme",
14
14
  "bugs": {
15
- "url": "https://github.com/scottgl9/marktoflow/issues"
15
+ "url": "https://github.com/marktoflow/marktoflow/issues"
16
16
  },
17
17
  "exports": {
18
18
  ".": {
@@ -24,6 +24,9 @@
24
24
  "build": "tsc",
25
25
  "test": "vitest run",
26
26
  "test:watch": "vitest",
27
+ "test:integration": "vitest run --config integration-tests/vitest.integration.config.ts",
28
+ "test:integration:watch": "vitest --config integration-tests/vitest.integration.config.ts",
29
+ "test:all": "vitest run && vitest run --config integration-tests/vitest.integration.config.ts",
27
30
  "lint": "tsc --noEmit",
28
31
  "clean": "rm -rf dist"
29
32
  },
@@ -32,15 +35,27 @@
32
35
  "amqplib": "^0.10.9",
33
36
  "better-sqlite3": "11.10.0",
34
37
  "chokidar": "^5.0.0",
38
+ "cron-parser": "^5.5.0",
35
39
  "dotenv": "^16.4.5",
36
40
  "ioredis": "^5.9.2",
41
+ "minimatch": "^10.1.1",
42
+ "nunjucks": "^3.2.4",
43
+ "pino": "^10.3.0",
37
44
  "prom-client": "^15.1.3",
38
45
  "yaml": "^2.6.0",
39
46
  "zod": "^3.24.0"
40
47
  },
48
+ "optionalDependencies": {
49
+ "mammoth": "^1.9.0",
50
+ "pdf-parse": "^1.1.1",
51
+ "xlsx": "^0.18.5"
52
+ },
41
53
  "devDependencies": {
42
54
  "@types/amqplib": "^0.10.8",
43
- "@types/better-sqlite3": "^7.6.0"
55
+ "@types/better-sqlite3": "^7.6.0",
56
+ "@types/nunjucks": "^3.2.6",
57
+ "@types/pino": "^7.0.5",
58
+ "pino-pretty": "^13.1.3"
44
59
  },
45
60
  "peerDependencies": {
46
61
  "typescript": "^5.0.0"
@@ -57,5 +72,8 @@
57
72
  "mcp"
58
73
  ],
59
74
  "author": "Scott Glover",
60
- "license": "Apache-2.0"
75
+ "license": "Apache-2.0",
76
+ "publishConfig": {
77
+ "registry": "https://registry.npmjs.org/"
78
+ }
61
79
  }