@marktoflow/core 2.0.0-alpha.3

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 (125) hide show
  1. package/dist/bundle.d.ts +43 -0
  2. package/dist/bundle.d.ts.map +1 -0
  3. package/dist/bundle.js +202 -0
  4. package/dist/bundle.js.map +1 -0
  5. package/dist/config.d.ts +33 -0
  6. package/dist/config.d.ts.map +1 -0
  7. package/dist/config.js +27 -0
  8. package/dist/config.js.map +1 -0
  9. package/dist/costs.d.ts +182 -0
  10. package/dist/costs.d.ts.map +1 -0
  11. package/dist/costs.js +464 -0
  12. package/dist/costs.js.map +1 -0
  13. package/dist/credentials.d.ts +162 -0
  14. package/dist/credentials.d.ts.map +1 -0
  15. package/dist/credentials.js +646 -0
  16. package/dist/credentials.js.map +1 -0
  17. package/dist/engine.d.ts +137 -0
  18. package/dist/engine.d.ts.map +1 -0
  19. package/dist/engine.js +514 -0
  20. package/dist/engine.js.map +1 -0
  21. package/dist/env.d.ts +59 -0
  22. package/dist/env.d.ts.map +1 -0
  23. package/dist/env.js +256 -0
  24. package/dist/env.js.map +1 -0
  25. package/dist/failover.d.ts +43 -0
  26. package/dist/failover.d.ts.map +1 -0
  27. package/dist/failover.js +53 -0
  28. package/dist/failover.js.map +1 -0
  29. package/dist/filewatcher.d.ts +32 -0
  30. package/dist/filewatcher.d.ts.map +1 -0
  31. package/dist/filewatcher.js +92 -0
  32. package/dist/filewatcher.js.map +1 -0
  33. package/dist/index.d.ts +36 -0
  34. package/dist/index.d.ts.map +1 -0
  35. package/dist/index.js +69 -0
  36. package/dist/index.js.map +1 -0
  37. package/dist/logging.d.ts +62 -0
  38. package/dist/logging.d.ts.map +1 -0
  39. package/dist/logging.js +211 -0
  40. package/dist/logging.js.map +1 -0
  41. package/dist/mcp-loader.d.ts +29 -0
  42. package/dist/mcp-loader.d.ts.map +1 -0
  43. package/dist/mcp-loader.js +60 -0
  44. package/dist/mcp-loader.js.map +1 -0
  45. package/dist/metrics.d.ts +19 -0
  46. package/dist/metrics.d.ts.map +1 -0
  47. package/dist/metrics.js +65 -0
  48. package/dist/metrics.js.map +1 -0
  49. package/dist/models.d.ts +419 -0
  50. package/dist/models.d.ts.map +1 -0
  51. package/dist/models.js +111 -0
  52. package/dist/models.js.map +1 -0
  53. package/dist/parser.d.ts +40 -0
  54. package/dist/parser.d.ts.map +1 -0
  55. package/dist/parser.js +287 -0
  56. package/dist/parser.js.map +1 -0
  57. package/dist/plugins.d.ts +105 -0
  58. package/dist/plugins.d.ts.map +1 -0
  59. package/dist/plugins.js +182 -0
  60. package/dist/plugins.js.map +1 -0
  61. package/dist/queue.d.ts +114 -0
  62. package/dist/queue.d.ts.map +1 -0
  63. package/dist/queue.js +385 -0
  64. package/dist/queue.js.map +1 -0
  65. package/dist/rollback.d.ts +117 -0
  66. package/dist/rollback.d.ts.map +1 -0
  67. package/dist/rollback.js +374 -0
  68. package/dist/rollback.js.map +1 -0
  69. package/dist/routing.d.ts +144 -0
  70. package/dist/routing.d.ts.map +1 -0
  71. package/dist/routing.js +457 -0
  72. package/dist/routing.js.map +1 -0
  73. package/dist/scheduler.d.ts +91 -0
  74. package/dist/scheduler.d.ts.map +1 -0
  75. package/dist/scheduler.js +259 -0
  76. package/dist/scheduler.js.map +1 -0
  77. package/dist/script-tool.d.ts +22 -0
  78. package/dist/script-tool.d.ts.map +1 -0
  79. package/dist/script-tool.js +90 -0
  80. package/dist/script-tool.js.map +1 -0
  81. package/dist/sdk-registry.d.ts +81 -0
  82. package/dist/sdk-registry.d.ts.map +1 -0
  83. package/dist/sdk-registry.js +264 -0
  84. package/dist/sdk-registry.js.map +1 -0
  85. package/dist/security.d.ts +155 -0
  86. package/dist/security.d.ts.map +1 -0
  87. package/dist/security.js +362 -0
  88. package/dist/security.js.map +1 -0
  89. package/dist/state.d.ts +67 -0
  90. package/dist/state.d.ts.map +1 -0
  91. package/dist/state.js +276 -0
  92. package/dist/state.js.map +1 -0
  93. package/dist/templates.d.ts +70 -0
  94. package/dist/templates.d.ts.map +1 -0
  95. package/dist/templates.js +244 -0
  96. package/dist/templates.js.map +1 -0
  97. package/dist/tool-base.d.ts +54 -0
  98. package/dist/tool-base.d.ts.map +1 -0
  99. package/dist/tool-base.js +43 -0
  100. package/dist/tool-base.js.map +1 -0
  101. package/dist/tool-registry.d.ts +24 -0
  102. package/dist/tool-registry.d.ts.map +1 -0
  103. package/dist/tool-registry.js +164 -0
  104. package/dist/tool-registry.js.map +1 -0
  105. package/dist/tools/custom-tool.d.ts +16 -0
  106. package/dist/tools/custom-tool.d.ts.map +1 -0
  107. package/dist/tools/custom-tool.js +85 -0
  108. package/dist/tools/custom-tool.js.map +1 -0
  109. package/dist/tools/mcp-tool.d.ts +16 -0
  110. package/dist/tools/mcp-tool.d.ts.map +1 -0
  111. package/dist/tools/mcp-tool.js +98 -0
  112. package/dist/tools/mcp-tool.js.map +1 -0
  113. package/dist/tools/openapi-tool.d.ts +17 -0
  114. package/dist/tools/openapi-tool.d.ts.map +1 -0
  115. package/dist/tools/openapi-tool.js +165 -0
  116. package/dist/tools/openapi-tool.js.map +1 -0
  117. package/dist/trigger-manager.d.ts +26 -0
  118. package/dist/trigger-manager.d.ts.map +1 -0
  119. package/dist/trigger-manager.js +107 -0
  120. package/dist/trigger-manager.js.map +1 -0
  121. package/dist/webhook.d.ts +95 -0
  122. package/dist/webhook.d.ts.map +1 -0
  123. package/dist/webhook.js +261 -0
  124. package/dist/webhook.js.map +1 -0
  125. package/package.json +60 -0
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Workflow bundle support for marktoflow.
3
+ */
4
+ import { Workflow, ToolConfig } from './models.js';
5
+ import { ToolRegistry } from './tool-registry.js';
6
+ import { Tool } from './tool-base.js';
7
+ export interface BundleConfig {
8
+ agent: string;
9
+ fallbackAgent?: string | undefined;
10
+ timeout: number;
11
+ maxRetries: number;
12
+ toolsDir: string;
13
+ inheritGlobalTools: boolean;
14
+ env: Record<string, string>;
15
+ }
16
+ export declare function loadBundleConfig(path: string): BundleConfig;
17
+ export declare class BundleToolRegistry extends ToolRegistry {
18
+ private scriptTools;
19
+ private bundleDir;
20
+ private toolsDir;
21
+ constructor(bundleDir: string, toolsDir?: string, inheritGlobal?: boolean, globalRegistryPath?: string);
22
+ private loadScriptTools;
23
+ getTool(name: string, agent: string): Tool | null;
24
+ listTools(): string[];
25
+ listScriptTools(): string[];
26
+ getScriptToolPaths(): Record<string, string>;
27
+ }
28
+ export declare class WorkflowBundle {
29
+ private globalRegistryPath?;
30
+ readonly path: string;
31
+ private configCache?;
32
+ private workflowCache?;
33
+ private toolRegistryCache?;
34
+ constructor(path: string, globalRegistryPath?: string | undefined);
35
+ get name(): string;
36
+ get config(): BundleConfig;
37
+ get workflowFile(): string | null;
38
+ loadWorkflow(): Promise<Workflow>;
39
+ loadTools(): BundleToolRegistry;
40
+ buildToolConfigs(): Record<string, ToolConfig>;
41
+ loadWorkflowWithBundleTools(): Promise<Workflow>;
42
+ }
43
+ //# sourceMappingURL=bundle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bundle.d.ts","sourceRoot":"","sources":["../src/bundle.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEnD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,IAAI,EAAgD,MAAM,gBAAgB,CAAC;AAEpF,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC7B;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,CAsB3D;AAyCD,qBAAa,kBAAmB,SAAQ,YAAY;IAClD,OAAO,CAAC,WAAW,CAA2B;IAC9C,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,QAAQ,CAAS;gBAEb,SAAS,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAgB,EAAE,aAAa,GAAE,OAAc,EAAE,kBAAkB,CAAC,EAAE,MAAM;IAOrH,OAAO,CAAC,eAAe;IAuBvB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAOjD,SAAS,IAAI,MAAM,EAAE;IAMrB,eAAe,IAAI,MAAM,EAAE;IAI3B,kBAAkB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;CAO7C;AAED,qBAAa,cAAc;IAMC,OAAO,CAAC,kBAAkB,CAAC;IALrD,SAAgB,IAAI,EAAE,MAAM,CAAC;IAC7B,OAAO,CAAC,WAAW,CAAC,CAAe;IACnC,OAAO,CAAC,aAAa,CAAC,CAAW;IACjC,OAAO,CAAC,iBAAiB,CAAC,CAAqB;gBAEnC,IAAI,EAAE,MAAM,EAAU,kBAAkB,CAAC,EAAE,MAAM,YAAA;IAM7D,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,MAAM,IAAI,YAAY,CAKzB;IAED,IAAI,YAAY,IAAI,MAAM,GAAG,IAAI,CAShC;IAEK,YAAY,IAAI,OAAO,CAAC,QAAQ,CAAC;IASvC,SAAS,IAAI,kBAAkB;IAW/B,gBAAgB,IAAI,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC;IAmBxC,2BAA2B,IAAI,OAAO,CAAC,QAAQ,CAAC;CAYvD"}
package/dist/bundle.js ADDED
@@ -0,0 +1,202 @@
1
+ /**
2
+ * Workflow bundle support for marktoflow.
3
+ */
4
+ import { existsSync, readdirSync, readFileSync } from 'node:fs';
5
+ import { join, resolve, extname, basename } from 'node:path';
6
+ import { parse } from 'yaml';
7
+ import { parseFile } from './parser.js';
8
+ import { ScriptTool } from './script-tool.js';
9
+ import { ToolRegistry } from './tool-registry.js';
10
+ import { Tool, ToolType } from './tool-base.js';
11
+ export function loadBundleConfig(path) {
12
+ if (!existsSync(path)) {
13
+ return {
14
+ agent: 'opencode',
15
+ timeout: 300,
16
+ maxRetries: 3,
17
+ toolsDir: 'tools',
18
+ inheritGlobalTools: true,
19
+ env: {},
20
+ };
21
+ }
22
+ const content = readFileSync(path, 'utf8');
23
+ const data = parse(content) ?? {};
24
+ return {
25
+ agent: data.agent ?? 'opencode',
26
+ fallbackAgent: data.fallback_agent ?? undefined,
27
+ timeout: data.timeout ?? 300,
28
+ maxRetries: data.max_retries ?? 3,
29
+ toolsDir: data.tools_dir ?? 'tools',
30
+ inheritGlobalTools: data.inherit_global_tools ?? true,
31
+ env: data.env ?? {},
32
+ };
33
+ }
34
+ class ScriptToolWrapper extends Tool {
35
+ scriptTool;
36
+ operations = [];
37
+ constructor(definition, implementation, toolsDir) {
38
+ super(definition, implementation);
39
+ this.scriptTool = new ScriptTool(implementation.adapterPath ?? '', toolsDir);
40
+ this.operations = this.loadOperations(implementation.adapterPath ?? '', toolsDir);
41
+ }
42
+ async initialize() {
43
+ this.initialized = true;
44
+ }
45
+ loadOperations(scriptPath, toolsDir) {
46
+ const fullPath = resolve(toolsDir, scriptPath);
47
+ const yamlPath = fullPath.replace(/\.[^/.]+$/, '') + '.yaml';
48
+ if (existsSync(yamlPath)) {
49
+ const content = readFileSync(yamlPath, 'utf8');
50
+ const data = parse(content);
51
+ const ops = data?.operations ? Object.keys(data.operations) : [];
52
+ return ops.length > 0 ? ops : ['run'];
53
+ }
54
+ return ['run'];
55
+ }
56
+ async execute(operation, params) {
57
+ return this.scriptTool.execute(operation, params);
58
+ }
59
+ listOperations() {
60
+ return this.operations;
61
+ }
62
+ getOperationSchema(_operation) {
63
+ return { description: '', parameters: { type: 'object', properties: {}, required: [] } };
64
+ }
65
+ }
66
+ export class BundleToolRegistry extends ToolRegistry {
67
+ scriptTools = new Map();
68
+ bundleDir;
69
+ toolsDir;
70
+ constructor(bundleDir, toolsDir = 'tools', inheritGlobal = true, globalRegistryPath) {
71
+ super(inheritGlobal ? globalRegistryPath : undefined);
72
+ this.bundleDir = resolve(bundleDir);
73
+ this.toolsDir = resolve(this.bundleDir, toolsDir);
74
+ this.loadScriptTools();
75
+ }
76
+ loadScriptTools() {
77
+ if (!existsSync(this.toolsDir))
78
+ return;
79
+ const entries = readdirSync(this.toolsDir);
80
+ for (const entry of entries) {
81
+ const ext = extname(entry);
82
+ if (ext === '.yaml' || ext === '.yml')
83
+ continue;
84
+ const toolName = basename(entry, ext);
85
+ const implementation = {
86
+ type: ToolType.CUSTOM,
87
+ priority: 0,
88
+ adapterPath: join(this.toolsDir, entry),
89
+ };
90
+ const definition = {
91
+ name: toolName,
92
+ description: `Script tool ${toolName}`,
93
+ implementations: [implementation],
94
+ };
95
+ const tool = new ScriptToolWrapper(definition, implementation, this.toolsDir);
96
+ this.scriptTools.set(toolName, tool);
97
+ this.register(definition);
98
+ }
99
+ }
100
+ getTool(name, agent) {
101
+ if (this.scriptTools.has(name)) {
102
+ return this.scriptTools.get(name) ?? null;
103
+ }
104
+ return super.getTool(name, agent);
105
+ }
106
+ listTools() {
107
+ const tools = new Set(super.listTools());
108
+ for (const name of this.scriptTools.keys())
109
+ tools.add(name);
110
+ return Array.from(tools).sort();
111
+ }
112
+ listScriptTools() {
113
+ return Array.from(this.scriptTools.keys());
114
+ }
115
+ getScriptToolPaths() {
116
+ const result = {};
117
+ for (const [name, tool] of this.scriptTools.entries()) {
118
+ result[name] = tool.implementation.adapterPath ?? '';
119
+ }
120
+ return result;
121
+ }
122
+ }
123
+ export class WorkflowBundle {
124
+ globalRegistryPath;
125
+ path;
126
+ configCache;
127
+ workflowCache;
128
+ toolRegistryCache;
129
+ constructor(path, globalRegistryPath) {
130
+ this.globalRegistryPath = globalRegistryPath;
131
+ const resolved = resolve(path);
132
+ if (!existsSync(resolved))
133
+ throw new Error(`Bundle directory not found: ${resolved}`);
134
+ this.path = resolved;
135
+ }
136
+ get name() {
137
+ return basename(this.path);
138
+ }
139
+ get config() {
140
+ if (!this.configCache) {
141
+ this.configCache = loadBundleConfig(join(this.path, 'config.yaml'));
142
+ }
143
+ return this.configCache;
144
+ }
145
+ get workflowFile() {
146
+ const candidates = ['workflow.md', 'main.md'];
147
+ for (const candidate of candidates) {
148
+ const full = join(this.path, candidate);
149
+ if (existsSync(full))
150
+ return full;
151
+ }
152
+ const entries = readdirSync(this.path).filter((name) => name.endsWith('.md') && name !== 'README.md');
153
+ if (entries.length === 1)
154
+ return join(this.path, entries[0]);
155
+ return null;
156
+ }
157
+ async loadWorkflow() {
158
+ if (this.workflowCache)
159
+ return this.workflowCache;
160
+ const wfPath = this.workflowFile;
161
+ if (!wfPath)
162
+ throw new Error('No workflow markdown found in bundle');
163
+ const { workflow } = await parseFile(wfPath);
164
+ this.workflowCache = workflow;
165
+ return workflow;
166
+ }
167
+ loadTools() {
168
+ if (this.toolRegistryCache)
169
+ return this.toolRegistryCache;
170
+ this.toolRegistryCache = new BundleToolRegistry(this.path, this.config.toolsDir, this.config.inheritGlobalTools, this.globalRegistryPath);
171
+ return this.toolRegistryCache;
172
+ }
173
+ buildToolConfigs() {
174
+ const registry = this.loadTools();
175
+ const scriptToolPaths = registry.getScriptToolPaths();
176
+ const configs = {};
177
+ for (const [toolName, scriptPath] of Object.entries(scriptToolPaths)) {
178
+ if (!scriptPath)
179
+ continue;
180
+ configs[toolName] = {
181
+ sdk: 'script',
182
+ options: {
183
+ path: scriptPath,
184
+ toolsDir: join(this.path, this.config.toolsDir),
185
+ },
186
+ };
187
+ }
188
+ return configs;
189
+ }
190
+ async loadWorkflowWithBundleTools() {
191
+ const workflow = await this.loadWorkflow();
192
+ const bundleTools = this.buildToolConfigs();
193
+ return {
194
+ ...workflow,
195
+ tools: {
196
+ ...(workflow.tools ?? {}),
197
+ ...bundleTools,
198
+ },
199
+ };
200
+ }
201
+ }
202
+ //# sourceMappingURL=bundle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bundle.js","sourceRoot":"","sources":["../src/bundle.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * marktoflow configuration loader.
3
+ */
4
+ export interface MarktoflowConfig {
5
+ agent?: {
6
+ primary?: string;
7
+ fallback?: string | null;
8
+ selectionStrategy?: string;
9
+ };
10
+ runtime?: {
11
+ mode?: string;
12
+ nodeVersion?: string;
13
+ };
14
+ logging?: {
15
+ level?: string;
16
+ destination?: string;
17
+ format?: string;
18
+ logPath?: string;
19
+ };
20
+ tools?: {
21
+ discovery?: string;
22
+ timeout?: string;
23
+ registryPath?: string;
24
+ };
25
+ workflows?: {
26
+ path?: string;
27
+ maxConcurrent?: number;
28
+ defaultTimeout?: string;
29
+ };
30
+ features?: Record<string, string>;
31
+ }
32
+ export declare function loadConfig(cwd?: string): MarktoflowConfig;
33
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,EAAE;QACN,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACzB,iBAAiB,CAAC,EAAE,MAAM,CAAC;KAC5B,CAAC;IACF,OAAO,CAAC,EAAE;QACR,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,OAAO,CAAC,EAAE;QACR,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,KAAK,CAAC,EAAE;QACN,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;IACF,SAAS,CAAC,EAAE;QACV,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,CAAC;IACF,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACnC;AAOD,wBAAgB,UAAU,CAAC,GAAG,GAAE,MAAsB,GAAG,gBAAgB,CAcxE"}
package/dist/config.js ADDED
@@ -0,0 +1,27 @@
1
+ /**
2
+ * marktoflow configuration loader.
3
+ */
4
+ import { readFileSync, existsSync } from 'node:fs';
5
+ import { join } from 'node:path';
6
+ import { parse } from 'yaml';
7
+ import { findProjectRoot } from './env.js';
8
+ const DEFAULT_CONFIG = {
9
+ workflows: { path: '.marktoflow/workflows' },
10
+ tools: { registryPath: '.marktoflow/tools/registry.yaml' },
11
+ };
12
+ export function loadConfig(cwd = process.cwd()) {
13
+ const root = findProjectRoot(cwd);
14
+ const configPath = root ? join(root, 'marktoflow.yaml') : join(cwd, 'marktoflow.yaml');
15
+ if (!existsSync(configPath)) {
16
+ return DEFAULT_CONFIG;
17
+ }
18
+ const contents = readFileSync(configPath, 'utf8');
19
+ const data = parse(contents);
20
+ return {
21
+ ...DEFAULT_CONFIG,
22
+ ...data,
23
+ workflows: { ...DEFAULT_CONFIG.workflows, ...data?.workflows },
24
+ tools: { ...DEFAULT_CONFIG.tools, ...data?.tools },
25
+ };
26
+ }
27
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AA+B3C,MAAM,cAAc,GAAqB;IACvC,SAAS,EAAE,EAAE,IAAI,EAAE,uBAAuB,EAAE;IAC5C,KAAK,EAAE,EAAE,YAAY,EAAE,iCAAiC,EAAE;CAC3D,CAAC;AAEF,MAAM,UAAU,UAAU,CAAC,MAAc,OAAO,CAAC,GAAG,EAAE;IACpD,MAAM,IAAI,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;IAClC,MAAM,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC;IACvF,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,OAAO,cAAc,CAAC;IACxB,CAAC;IACD,MAAM,QAAQ,GAAG,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAClD,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAqB,CAAC;IACjD,OAAO;QACL,GAAG,cAAc;QACjB,GAAG,IAAI;QACP,SAAS,EAAE,EAAE,GAAG,cAAc,CAAC,SAAS,EAAE,GAAG,IAAI,EAAE,SAAS,EAAE;QAC9D,KAAK,EAAE,EAAE,GAAG,cAAc,CAAC,KAAK,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE;KACnD,CAAC;AACJ,CAAC"}
@@ -0,0 +1,182 @@
1
+ /**
2
+ * Cost tracking module for marktoflow.
3
+ *
4
+ * Provides token usage monitoring, API cost estimation, and cost limits.
5
+ */
6
+ export declare enum CostUnit {
7
+ TOKENS = "tokens",
8
+ REQUESTS = "requests",
9
+ MINUTES = "minutes",
10
+ CREDITS = "credits"
11
+ }
12
+ export declare enum CostAlertLevel {
13
+ INFO = "info",
14
+ WARNING = "warning",
15
+ CRITICAL = "critical"
16
+ }
17
+ export interface ModelPricing {
18
+ modelName: string;
19
+ provider: string;
20
+ inputPricePerMillion: number;
21
+ outputPricePerMillion: number;
22
+ currency: string;
23
+ effectiveDate?: Date | undefined;
24
+ notes?: string | undefined;
25
+ }
26
+ export declare const DEFAULT_PRICING: Record<string, ModelPricing>;
27
+ export interface TokenUsage {
28
+ inputTokens: number;
29
+ outputTokens: number;
30
+ cachedTokens?: number;
31
+ reasoningTokens?: number;
32
+ }
33
+ export interface CostRecord {
34
+ id: string;
35
+ timestamp: Date;
36
+ workflowId: string;
37
+ runId: string;
38
+ stepName?: string | undefined;
39
+ agentName: string;
40
+ modelName: string;
41
+ tokenUsage: TokenUsage;
42
+ estimatedCost: number;
43
+ currency: string;
44
+ metadata?: Record<string, unknown> | undefined;
45
+ }
46
+ export interface CostSummary {
47
+ startTime: Date;
48
+ endTime: Date;
49
+ totalCost: number;
50
+ totalInputTokens: number;
51
+ totalOutputTokens: number;
52
+ totalRequests: number;
53
+ byWorkflow: Record<string, number>;
54
+ byAgent: Record<string, number>;
55
+ byModel: Record<string, number>;
56
+ currency: string;
57
+ }
58
+ export interface CostLimit {
59
+ name: string;
60
+ maxCost: number;
61
+ periodMs?: number | undefined;
62
+ scope?: 'global' | 'workflow' | 'agent' | 'model';
63
+ scopeId?: string | undefined;
64
+ alertThreshold?: number | undefined;
65
+ actionOnLimit?: 'warn' | 'block' | 'notify';
66
+ }
67
+ export interface CostAlert {
68
+ timestamp: Date;
69
+ level: CostAlertLevel;
70
+ limitName: string;
71
+ currentCost: number;
72
+ limitCost: number;
73
+ percentage: number;
74
+ message: string;
75
+ }
76
+ export interface CostAlertHandler {
77
+ handleAlert(alert: CostAlert): void;
78
+ }
79
+ export declare class LoggingAlertHandler implements CostAlertHandler {
80
+ private logFunc;
81
+ constructor(logFunc?: (message: string) => void);
82
+ handleAlert(alert: CostAlert): void;
83
+ }
84
+ export declare class CallbackAlertHandler implements CostAlertHandler {
85
+ private callback;
86
+ constructor(callback: (alert: CostAlert) => void);
87
+ handleAlert(alert: CostAlert): void;
88
+ }
89
+ export declare class PricingRegistry {
90
+ private pricing;
91
+ constructor();
92
+ register(pricing: ModelPricing): void;
93
+ get(modelName: string): ModelPricing | undefined;
94
+ listModels(): string[];
95
+ calculateCost(modelName: string, inputTokens: number, outputTokens: number): number | null;
96
+ }
97
+ export declare class CostTracker {
98
+ pricingRegistry: PricingRegistry;
99
+ alertHandlers: CostAlertHandler[];
100
+ private records;
101
+ private limits;
102
+ constructor(pricingRegistry?: PricingRegistry, alertHandlers?: CostAlertHandler[]);
103
+ addAlertHandler(handler: CostAlertHandler): void;
104
+ addLimit(limit: CostLimit): void;
105
+ removeLimit(name: string): boolean;
106
+ recordUsage(params: {
107
+ recordId?: string;
108
+ workflowId: string;
109
+ runId: string;
110
+ agentName: string;
111
+ modelName: string;
112
+ tokenUsage: TokenUsage;
113
+ stepName?: string | undefined;
114
+ metadata?: Record<string, unknown> | undefined;
115
+ }): CostRecord;
116
+ private checkLimits;
117
+ private calculateLimitUsage;
118
+ getRecords(filters?: {
119
+ workflowId?: string | undefined;
120
+ runId?: string | undefined;
121
+ agentName?: string | undefined;
122
+ startTime?: Date | undefined;
123
+ endTime?: Date | undefined;
124
+ }): CostRecord[];
125
+ getSummary(startTime?: Date, endTime?: Date): CostSummary;
126
+ getWorkflowCost(workflowId: string, runId?: string): number;
127
+ clear(): void;
128
+ }
129
+ export declare class CostStore {
130
+ private db;
131
+ private pricing;
132
+ constructor(dbPath?: string);
133
+ getPricingRegistry(): PricingRegistry;
134
+ calculateCost(modelName: string, inputTokens: number, outputTokens: number): number;
135
+ record(params: {
136
+ workflowId: string;
137
+ runId: string;
138
+ agentName: string;
139
+ modelName: string;
140
+ tokenUsage: TokenUsage;
141
+ stepName?: string | undefined;
142
+ metadata?: Record<string, unknown> | undefined;
143
+ }): CostRecord;
144
+ private init;
145
+ save(record: CostRecord): void;
146
+ get(recordId: string): CostRecord | null;
147
+ query(filters?: {
148
+ workflowId?: string | undefined;
149
+ runId?: string | undefined;
150
+ agentName?: string | undefined;
151
+ modelName?: string | undefined;
152
+ startTime?: Date | undefined;
153
+ endTime?: Date | undefined;
154
+ limit?: number | undefined;
155
+ }): CostRecord[];
156
+ getSummary(startTime?: Date, endTime?: Date): CostSummary;
157
+ deleteBefore(before: Date): number;
158
+ private rowToRecord;
159
+ }
160
+ export declare class PersistentCostTracker extends CostTracker {
161
+ store: CostStore;
162
+ constructor(store: CostStore, pricingRegistry?: PricingRegistry, alertHandlers?: CostAlertHandler[]);
163
+ recordUsage(params: {
164
+ recordId?: string;
165
+ workflowId: string;
166
+ runId: string;
167
+ agentName: string;
168
+ modelName: string;
169
+ tokenUsage: TokenUsage;
170
+ stepName?: string | undefined;
171
+ metadata?: Record<string, unknown> | undefined;
172
+ }): CostRecord;
173
+ getSummary(startTime?: Date, endTime?: Date): CostSummary;
174
+ }
175
+ export declare class WorkflowCostEstimator {
176
+ pricingRegistry: PricingRegistry;
177
+ constructor(pricingRegistry?: PricingRegistry);
178
+ estimateStepCost(modelName: string, inputTokens: number, outputTokens: number): number | null;
179
+ estimateWorkflowCost(modelName: string, stepCount: number, avgInputTokensPerStep?: number, avgOutputTokensPerStep?: number): number | null;
180
+ compareModels(models: string[], inputTokens: number, outputTokens: number): Record<string, number | null>;
181
+ }
182
+ //# sourceMappingURL=costs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"costs.d.ts","sourceRoot":"","sources":["../src/costs.ts"],"names":[],"mappings":"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"}