@nordsym/apiclaw 1.7.3 → 1.7.5

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 (219) hide show
  1. package/convex/_generated/api.d.ts +115 -0
  2. package/convex/_generated/api.js +23 -0
  3. package/convex/_generated/dataModel.d.ts +60 -0
  4. package/convex/_generated/server.d.ts +143 -0
  5. package/convex/_generated/server.js +93 -0
  6. package/convex/adminActivate.d.ts +3 -0
  7. package/convex/adminActivate.d.ts.map +1 -0
  8. package/convex/adminActivate.js +47 -0
  9. package/convex/adminActivate.js.map +1 -0
  10. package/convex/adminActivate.ts +54 -0
  11. package/convex/adminStats.d.ts +3 -0
  12. package/convex/adminStats.d.ts.map +1 -0
  13. package/convex/adminStats.js +42 -0
  14. package/convex/adminStats.js.map +1 -0
  15. package/convex/adminStats.ts +44 -0
  16. package/convex/agents.d.ts +76 -0
  17. package/convex/agents.d.ts.map +1 -0
  18. package/convex/agents.js +699 -0
  19. package/convex/agents.js.map +1 -0
  20. package/convex/agents.ts +814 -0
  21. package/convex/analytics.d.ts +5 -0
  22. package/convex/analytics.d.ts.map +1 -0
  23. package/convex/analytics.js +166 -0
  24. package/convex/analytics.js.map +1 -0
  25. package/convex/analytics.ts +186 -0
  26. package/convex/billing.d.ts +88 -0
  27. package/convex/billing.d.ts.map +1 -0
  28. package/convex/billing.js +655 -0
  29. package/convex/billing.js.map +1 -0
  30. package/convex/billing.ts +791 -0
  31. package/convex/capabilities.d.ts +9 -0
  32. package/convex/capabilities.d.ts.map +1 -0
  33. package/convex/capabilities.js +145 -0
  34. package/convex/capabilities.js.map +1 -0
  35. package/convex/capabilities.ts +157 -0
  36. package/convex/chains.d.ts +68 -0
  37. package/convex/chains.d.ts.map +1 -0
  38. package/convex/chains.js +1105 -0
  39. package/convex/chains.js.map +1 -0
  40. package/convex/chains.ts +1318 -0
  41. package/convex/credits.d.ts +25 -0
  42. package/convex/credits.d.ts.map +1 -0
  43. package/convex/credits.js +186 -0
  44. package/convex/credits.js.map +1 -0
  45. package/convex/credits.ts +211 -0
  46. package/convex/crons.d.ts +3 -0
  47. package/convex/crons.d.ts.map +1 -0
  48. package/convex/crons.js +17 -0
  49. package/convex/crons.js.map +1 -0
  50. package/convex/crons.ts +28 -0
  51. package/convex/directCall.d.ts +72 -0
  52. package/convex/directCall.d.ts.map +1 -0
  53. package/convex/directCall.js +627 -0
  54. package/convex/directCall.js.map +1 -0
  55. package/convex/directCall.ts +678 -0
  56. package/convex/earnProgress.d.ts +58 -0
  57. package/convex/earnProgress.d.ts.map +1 -0
  58. package/convex/earnProgress.js +649 -0
  59. package/convex/earnProgress.js.map +1 -0
  60. package/convex/earnProgress.ts +753 -0
  61. package/convex/email.d.ts +14 -0
  62. package/convex/email.d.ts.map +1 -0
  63. package/convex/email.js +300 -0
  64. package/convex/email.js.map +1 -0
  65. package/convex/email.ts +329 -0
  66. package/convex/feedback.d.ts +7 -0
  67. package/convex/feedback.d.ts.map +1 -0
  68. package/convex/feedback.js +227 -0
  69. package/convex/feedback.js.map +1 -0
  70. package/convex/feedback.ts +265 -0
  71. package/convex/http.d.ts +3 -0
  72. package/convex/http.d.ts.map +1 -0
  73. package/convex/http.js +1405 -0
  74. package/convex/http.js.map +1 -0
  75. package/convex/http.ts +1577 -0
  76. package/convex/inbound.d.ts +2 -0
  77. package/convex/inbound.d.ts.map +1 -0
  78. package/convex/inbound.js +32 -0
  79. package/convex/inbound.js.map +1 -0
  80. package/convex/inbound.ts +32 -0
  81. package/convex/logs.d.ts +48 -0
  82. package/convex/logs.d.ts.map +1 -0
  83. package/convex/logs.js +592 -0
  84. package/convex/logs.js.map +1 -0
  85. package/convex/logs.ts +662 -0
  86. package/convex/mou.d.ts +6 -0
  87. package/convex/mou.d.ts.map +1 -0
  88. package/convex/mou.js +82 -0
  89. package/convex/mou.js.map +1 -0
  90. package/convex/mou.ts +91 -0
  91. package/convex/providerKeys.d.ts +31 -0
  92. package/convex/providerKeys.d.ts.map +1 -0
  93. package/convex/providerKeys.js +257 -0
  94. package/convex/providerKeys.js.map +1 -0
  95. package/convex/providerKeys.ts +289 -0
  96. package/convex/providers.d.ts +32 -0
  97. package/convex/providers.d.ts.map +1 -0
  98. package/convex/providers.js +814 -0
  99. package/convex/providers.js.map +1 -0
  100. package/convex/providers.ts +909 -0
  101. package/convex/purchases.d.ts +7 -0
  102. package/convex/purchases.d.ts.map +1 -0
  103. package/convex/purchases.js +157 -0
  104. package/convex/purchases.js.map +1 -0
  105. package/convex/purchases.ts +183 -0
  106. package/convex/ratelimit.d.ts +4 -0
  107. package/convex/ratelimit.d.ts.map +1 -0
  108. package/convex/ratelimit.js +91 -0
  109. package/convex/ratelimit.js.map +1 -0
  110. package/convex/ratelimit.ts +104 -0
  111. package/convex/schema.ts +805 -0
  112. package/convex/searchLogs.d.ts +4 -0
  113. package/convex/searchLogs.d.ts.map +1 -0
  114. package/convex/searchLogs.js +129 -0
  115. package/convex/searchLogs.js.map +1 -0
  116. package/convex/searchLogs.ts +146 -0
  117. package/convex/seedAPILayerAPIs.d.ts +7 -0
  118. package/convex/seedAPILayerAPIs.d.ts.map +1 -0
  119. package/convex/seedAPILayerAPIs.js +177 -0
  120. package/convex/seedAPILayerAPIs.js.map +1 -0
  121. package/convex/seedAPILayerAPIs.ts +191 -0
  122. package/convex/seedDirectCallConfigs.d.ts +2 -0
  123. package/convex/seedDirectCallConfigs.d.ts.map +1 -0
  124. package/convex/seedDirectCallConfigs.js +324 -0
  125. package/convex/seedDirectCallConfigs.js.map +1 -0
  126. package/convex/seedDirectCallConfigs.ts +336 -0
  127. package/convex/seedPratham.d.ts +6 -0
  128. package/convex/seedPratham.d.ts.map +1 -0
  129. package/convex/seedPratham.js +150 -0
  130. package/convex/seedPratham.js.map +1 -0
  131. package/convex/seedPratham.ts +161 -0
  132. package/convex/spendAlerts.d.ts +36 -0
  133. package/convex/spendAlerts.d.ts.map +1 -0
  134. package/convex/spendAlerts.js +380 -0
  135. package/convex/spendAlerts.js.map +1 -0
  136. package/convex/spendAlerts.ts +442 -0
  137. package/convex/stripeActions.d.ts +19 -0
  138. package/convex/stripeActions.d.ts.map +1 -0
  139. package/convex/stripeActions.js +411 -0
  140. package/convex/stripeActions.js.map +1 -0
  141. package/convex/stripeActions.ts +512 -0
  142. package/convex/teams.d.ts +21 -0
  143. package/convex/teams.d.ts.map +1 -0
  144. package/convex/teams.js +215 -0
  145. package/convex/teams.js.map +1 -0
  146. package/convex/teams.ts +243 -0
  147. package/convex/telemetry.d.ts +4 -0
  148. package/convex/telemetry.d.ts.map +1 -0
  149. package/convex/telemetry.js +74 -0
  150. package/convex/telemetry.js.map +1 -0
  151. package/convex/telemetry.ts +81 -0
  152. package/convex/tsconfig.json +25 -0
  153. package/convex/updateAPIStatus.d.ts +6 -0
  154. package/convex/updateAPIStatus.d.ts.map +1 -0
  155. package/convex/updateAPIStatus.js +40 -0
  156. package/convex/updateAPIStatus.js.map +1 -0
  157. package/convex/updateAPIStatus.ts +45 -0
  158. package/convex/usage.d.ts +27 -0
  159. package/convex/usage.d.ts.map +1 -0
  160. package/convex/usage.js +229 -0
  161. package/convex/usage.js.map +1 -0
  162. package/convex/usage.ts +260 -0
  163. package/convex/waitlist.d.ts +4 -0
  164. package/convex/waitlist.d.ts.map +1 -0
  165. package/convex/waitlist.js +49 -0
  166. package/convex/waitlist.js.map +1 -0
  167. package/convex/waitlist.ts +55 -0
  168. package/convex/webhooks.d.ts +12 -0
  169. package/convex/webhooks.d.ts.map +1 -0
  170. package/convex/webhooks.js +410 -0
  171. package/convex/webhooks.js.map +1 -0
  172. package/convex/webhooks.ts +494 -0
  173. package/convex/workspaces.d.ts +31 -0
  174. package/convex/workspaces.d.ts.map +1 -0
  175. package/convex/workspaces.js +975 -0
  176. package/convex/workspaces.js.map +1 -0
  177. package/convex/workspaces.ts +1130 -0
  178. package/dist/bin.js +0 -0
  179. package/dist/index.js +9 -0
  180. package/dist/index.js.map +1 -1
  181. package/package.json +1 -1
  182. package/src/index.ts +10 -0
  183. package/dist/chain-types.d.ts +0 -187
  184. package/dist/chain-types.d.ts.map +0 -1
  185. package/dist/chain-types.js +0 -33
  186. package/dist/chain-types.js.map +0 -1
  187. package/dist/registry/apis.json.bak +0 -248811
  188. package/dist/src/bin.js +0 -17
  189. package/dist/src/capability-router.js +0 -240
  190. package/dist/src/chainExecutor.js +0 -451
  191. package/dist/src/chainResolver.js +0 -518
  192. package/dist/src/cli/commands/doctor.js +0 -324
  193. package/dist/src/cli/commands/mcp-install.js +0 -255
  194. package/dist/src/cli/commands/restore.js +0 -259
  195. package/dist/src/cli/commands/setup.js +0 -205
  196. package/dist/src/cli/commands/uninstall.js +0 -188
  197. package/dist/src/cli/index.js +0 -111
  198. package/dist/src/cli.js +0 -302
  199. package/dist/src/confirmation.js +0 -240
  200. package/dist/src/credentials.js +0 -357
  201. package/dist/src/credits.js +0 -260
  202. package/dist/src/crypto.js +0 -66
  203. package/dist/src/discovery.js +0 -504
  204. package/dist/src/enterprise/env.js +0 -123
  205. package/dist/src/enterprise/script-generator.js +0 -460
  206. package/dist/src/execute-dynamic.js +0 -473
  207. package/dist/src/execute.js +0 -1727
  208. package/dist/src/index.js +0 -2062
  209. package/dist/src/metered.js +0 -80
  210. package/dist/src/open-apis.js +0 -276
  211. package/dist/src/proxy.js +0 -28
  212. package/dist/src/session.js +0 -86
  213. package/dist/src/stripe.js +0 -407
  214. package/dist/src/telemetry.js +0 -49
  215. package/dist/src/types.js +0 -2
  216. package/dist/src/utils/backup.js +0 -181
  217. package/dist/src/utils/config.js +0 -220
  218. package/dist/src/utils/os.js +0 -105
  219. package/dist/src/utils/paths.js +0 -159
@@ -0,0 +1,9 @@
1
+ export declare const getById: any;
2
+ export declare const list: any;
3
+ export declare const listByCategory: any;
4
+ export declare const getProviders: any;
5
+ export declare const create: any;
6
+ export declare const addProvider: any;
7
+ export declare const updateHealth: any;
8
+ export declare const logUsage: any;
9
+ //# sourceMappingURL=capabilities.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capabilities.d.ts","sourceRoot":"","sources":["capabilities.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,OAAO,KAQlB,CAAC;AAGH,eAAO,MAAM,IAAI,KAKf,CAAC;AAGH,eAAO,MAAM,cAAc,KAQzB,CAAC;AAGH,eAAO,MAAM,YAAY,KA2BvB,CAAC;AAGH,eAAO,MAAM,MAAM,KAsBjB,CAAC;AAGH,eAAO,MAAM,WAAW,KAqBtB,CAAC;AAGH,eAAO,MAAM,YAAY,KAqBvB,CAAC;AAGH,eAAO,MAAM,QAAQ,KAmBnB,CAAC"}
@@ -0,0 +1,145 @@
1
+ import { v } from "convex/values";
2
+ import { query, mutation } from "./_generated/server";
3
+ // Get a capability by ID
4
+ export const getById = query({
5
+ args: { id: v.string() },
6
+ handler: async (ctx, args) => {
7
+ return await ctx.db
8
+ .query("capabilities")
9
+ .withIndex("by_capability_id", (q) => q.eq("id", args.id))
10
+ .first();
11
+ },
12
+ });
13
+ // List all capabilities
14
+ export const list = query({
15
+ args: {},
16
+ handler: async (ctx) => {
17
+ return await ctx.db.query("capabilities").collect();
18
+ },
19
+ });
20
+ // List capabilities by category
21
+ export const listByCategory = query({
22
+ args: { category: v.string() },
23
+ handler: async (ctx, args) => {
24
+ return await ctx.db
25
+ .query("capabilities")
26
+ .withIndex("by_category", (q) => q.eq("category", args.category))
27
+ .collect();
28
+ },
29
+ });
30
+ // Get providers for a capability (sorted by priority, filtered by enabled + healthy)
31
+ export const getProviders = query({
32
+ args: { capabilityId: v.string(), region: v.optional(v.string()) },
33
+ handler: async (ctx, args) => {
34
+ let providers = await ctx.db
35
+ .query("providerCapabilities")
36
+ .withIndex("by_capabilityId_enabled", (q) => q.eq("capabilityId", args.capabilityId).eq("enabled", true))
37
+ .collect();
38
+ // Filter by region if specified
39
+ if (args.region) {
40
+ providers = providers.filter(p => p.regions.includes(args.region));
41
+ }
42
+ // Filter out unhealthy providers
43
+ providers = providers.filter(p => p.healthStatus !== "down");
44
+ // Sort by priority, then price, then latency
45
+ providers.sort((a, b) => {
46
+ if (a.priority !== b.priority)
47
+ return a.priority - b.priority;
48
+ if (a.pricePerUnit !== b.pricePerUnit)
49
+ return a.pricePerUnit - b.pricePerUnit;
50
+ return a.avgLatencyMs - b.avgLatencyMs;
51
+ });
52
+ return providers;
53
+ },
54
+ });
55
+ // Create a capability
56
+ export const create = mutation({
57
+ args: {
58
+ id: v.string(),
59
+ name: v.string(),
60
+ description: v.string(),
61
+ category: v.string(),
62
+ standardParams: v.array(v.object({
63
+ name: v.string(),
64
+ type: v.string(),
65
+ required: v.boolean(),
66
+ description: v.string(),
67
+ default: v.optional(v.any()),
68
+ })),
69
+ },
70
+ handler: async (ctx, args) => {
71
+ const now = Date.now();
72
+ return await ctx.db.insert("capabilities", {
73
+ ...args,
74
+ createdAt: now,
75
+ updatedAt: now,
76
+ });
77
+ },
78
+ });
79
+ // Add provider to capability
80
+ export const addProvider = mutation({
81
+ args: {
82
+ providerId: v.string(),
83
+ capabilityId: v.string(),
84
+ priority: v.number(),
85
+ regions: v.array(v.string()),
86
+ pricePerUnit: v.number(),
87
+ currency: v.string(),
88
+ avgLatencyMs: v.number(),
89
+ paramMapping: v.any(),
90
+ },
91
+ handler: async (ctx, args) => {
92
+ const now = Date.now();
93
+ return await ctx.db.insert("providerCapabilities", {
94
+ ...args,
95
+ enabled: true,
96
+ healthStatus: "healthy",
97
+ createdAt: now,
98
+ updatedAt: now,
99
+ });
100
+ },
101
+ });
102
+ // Update provider health status
103
+ export const updateHealth = mutation({
104
+ args: {
105
+ providerId: v.string(),
106
+ capabilityId: v.string(),
107
+ healthStatus: v.string(),
108
+ },
109
+ handler: async (ctx, args) => {
110
+ const mapping = await ctx.db
111
+ .query("providerCapabilities")
112
+ .withIndex("by_providerId", (q) => q.eq("providerId", args.providerId))
113
+ .filter((q) => q.eq(q.field("capabilityId"), args.capabilityId))
114
+ .first();
115
+ if (mapping) {
116
+ await ctx.db.patch(mapping._id, {
117
+ healthStatus: args.healthStatus,
118
+ lastHealthCheck: Date.now(),
119
+ updatedAt: Date.now(),
120
+ });
121
+ }
122
+ },
123
+ });
124
+ // Log capability usage
125
+ export const logUsage = mutation({
126
+ args: {
127
+ capabilityId: v.string(),
128
+ providerId: v.string(),
129
+ userId: v.string(),
130
+ action: v.string(),
131
+ success: v.boolean(),
132
+ fallbackUsed: v.boolean(),
133
+ fallbackReason: v.optional(v.string()),
134
+ latencyMs: v.number(),
135
+ cost: v.number(),
136
+ currency: v.string(),
137
+ },
138
+ handler: async (ctx, args) => {
139
+ return await ctx.db.insert("capabilityLogs", {
140
+ ...args,
141
+ timestamp: Date.now(),
142
+ });
143
+ },
144
+ });
145
+ //# sourceMappingURL=capabilities.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capabilities.js","sourceRoot":"","sources":["capabilities.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,157 @@
1
+ import { v } from "convex/values";
2
+ import { query, mutation } from "./_generated/server";
3
+
4
+ // Get a capability by ID
5
+ export const getById = query({
6
+ args: { id: v.string() },
7
+ handler: async (ctx, args) => {
8
+ return await ctx.db
9
+ .query("capabilities")
10
+ .withIndex("by_capability_id", (q) => q.eq("id", args.id))
11
+ .first();
12
+ },
13
+ });
14
+
15
+ // List all capabilities
16
+ export const list = query({
17
+ args: {},
18
+ handler: async (ctx) => {
19
+ return await ctx.db.query("capabilities").collect();
20
+ },
21
+ });
22
+
23
+ // List capabilities by category
24
+ export const listByCategory = query({
25
+ args: { category: v.string() },
26
+ handler: async (ctx, args) => {
27
+ return await ctx.db
28
+ .query("capabilities")
29
+ .withIndex("by_category", (q) => q.eq("category", args.category))
30
+ .collect();
31
+ },
32
+ });
33
+
34
+ // Get providers for a capability (sorted by priority, filtered by enabled + healthy)
35
+ export const getProviders = query({
36
+ args: { capabilityId: v.string(), region: v.optional(v.string()) },
37
+ handler: async (ctx, args) => {
38
+ let providers = await ctx.db
39
+ .query("providerCapabilities")
40
+ .withIndex("by_capabilityId_enabled", (q) =>
41
+ q.eq("capabilityId", args.capabilityId).eq("enabled", true)
42
+ )
43
+ .collect();
44
+
45
+ // Filter by region if specified
46
+ if (args.region) {
47
+ providers = providers.filter(p => p.regions.includes(args.region!));
48
+ }
49
+
50
+ // Filter out unhealthy providers
51
+ providers = providers.filter(p => p.healthStatus !== "down");
52
+
53
+ // Sort by priority, then price, then latency
54
+ providers.sort((a, b) => {
55
+ if (a.priority !== b.priority) return a.priority - b.priority;
56
+ if (a.pricePerUnit !== b.pricePerUnit) return a.pricePerUnit - b.pricePerUnit;
57
+ return a.avgLatencyMs - b.avgLatencyMs;
58
+ });
59
+
60
+ return providers;
61
+ },
62
+ });
63
+
64
+ // Create a capability
65
+ export const create = mutation({
66
+ args: {
67
+ id: v.string(),
68
+ name: v.string(),
69
+ description: v.string(),
70
+ category: v.string(),
71
+ standardParams: v.array(v.object({
72
+ name: v.string(),
73
+ type: v.string(),
74
+ required: v.boolean(),
75
+ description: v.string(),
76
+ default: v.optional(v.any()),
77
+ })),
78
+ },
79
+ handler: async (ctx, args) => {
80
+ const now = Date.now();
81
+ return await ctx.db.insert("capabilities", {
82
+ ...args,
83
+ createdAt: now,
84
+ updatedAt: now,
85
+ });
86
+ },
87
+ });
88
+
89
+ // Add provider to capability
90
+ export const addProvider = mutation({
91
+ args: {
92
+ providerId: v.string(),
93
+ capabilityId: v.string(),
94
+ priority: v.number(),
95
+ regions: v.array(v.string()),
96
+ pricePerUnit: v.number(),
97
+ currency: v.string(),
98
+ avgLatencyMs: v.number(),
99
+ paramMapping: v.any(),
100
+ },
101
+ handler: async (ctx, args) => {
102
+ const now = Date.now();
103
+ return await ctx.db.insert("providerCapabilities", {
104
+ ...args,
105
+ enabled: true,
106
+ healthStatus: "healthy",
107
+ createdAt: now,
108
+ updatedAt: now,
109
+ });
110
+ },
111
+ });
112
+
113
+ // Update provider health status
114
+ export const updateHealth = mutation({
115
+ args: {
116
+ providerId: v.string(),
117
+ capabilityId: v.string(),
118
+ healthStatus: v.string(),
119
+ },
120
+ handler: async (ctx, args) => {
121
+ const mapping = await ctx.db
122
+ .query("providerCapabilities")
123
+ .withIndex("by_providerId", (q) => q.eq("providerId", args.providerId))
124
+ .filter((q) => q.eq(q.field("capabilityId"), args.capabilityId))
125
+ .first();
126
+
127
+ if (mapping) {
128
+ await ctx.db.patch(mapping._id, {
129
+ healthStatus: args.healthStatus,
130
+ lastHealthCheck: Date.now(),
131
+ updatedAt: Date.now(),
132
+ });
133
+ }
134
+ },
135
+ });
136
+
137
+ // Log capability usage
138
+ export const logUsage = mutation({
139
+ args: {
140
+ capabilityId: v.string(),
141
+ providerId: v.string(),
142
+ userId: v.string(),
143
+ action: v.string(),
144
+ success: v.boolean(),
145
+ fallbackUsed: v.boolean(),
146
+ fallbackReason: v.optional(v.string()),
147
+ latencyMs: v.number(),
148
+ cost: v.number(),
149
+ currency: v.string(),
150
+ },
151
+ handler: async (ctx, args) => {
152
+ return await ctx.db.insert("capabilityLogs", {
153
+ ...args,
154
+ timestamp: Date.now(),
155
+ });
156
+ },
157
+ });
@@ -0,0 +1,68 @@
1
+ /**
2
+ * Get chain executions for a workspace (authenticated via session token)
3
+ */
4
+ export declare const getChainExecutions: any;
5
+ /**
6
+ * Get full trace for a single chain (authenticated via session token)
7
+ */
8
+ export declare const getChainTraceAuth: any;
9
+ /**
10
+ * Resume a failed/paused chain (authenticated via session token)
11
+ */
12
+ export declare const resumeChainAuth: any;
13
+ /**
14
+ * Get chain statistics for workspace (authenticated via session token)
15
+ */
16
+ export declare const getChainStatsAuth: any;
17
+ /**
18
+ * Create a new chain execution record (internal)
19
+ */
20
+ export declare const createChainInternal: any;
21
+ /**
22
+ * Create a new chain execution record (public API)
23
+ */
24
+ export declare const createChain: any;
25
+ /**
26
+ * Create chain from template
27
+ */
28
+ export declare const createChainFromTemplate: any;
29
+ /**
30
+ * Execute a single step and store the result
31
+ */
32
+ export declare const executeStep: any;
33
+ /**
34
+ * Record step completion with result
35
+ */
36
+ export declare const completeStep: any;
37
+ /**
38
+ * Advance chain to next step
39
+ */
40
+ export declare const advanceChain: any;
41
+ /**
42
+ * Handle chain failure
43
+ */
44
+ export declare const failChain: any;
45
+ /**
46
+ * Resume chain from failed step (public mutation)
47
+ */
48
+ export declare const resumeChain: any;
49
+ /**
50
+ * Mark chain as completed
51
+ */
52
+ export declare const completeChain: any;
53
+ /**
54
+ * Pause chain execution
55
+ */
56
+ export declare const pauseChain: any;
57
+ export declare const saveChainTemplate: any;
58
+ export declare const deleteChainTemplate: any;
59
+ export declare const getChain: any;
60
+ export declare const getChainTrace: any;
61
+ export declare const listChains: any;
62
+ export declare const listChainTemplates: any;
63
+ export declare const getChainTemplate: any;
64
+ export declare const getChainStats: any;
65
+ export declare const runChain: any;
66
+ export declare const runParallelSteps: any;
67
+ export declare const getInboundAPIActivity: any;
68
+ //# sourceMappingURL=chains.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chains.d.ts","sourceRoot":"","sources":["chains.ts"],"names":[],"mappings":"AA6CA;;GAEG;AACH,eAAO,MAAM,kBAAkB,KA6D7B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,iBAAiB,KAuE5B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,eAAe,KAmC1B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,iBAAiB,KAoD5B,CAAC;AAMH;;GAEG;AACH,eAAO,MAAM,mBAAmB,KAoE9B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,WAAW,KAmEtB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,uBAAuB,KAgElC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,WAAW,KAqCtB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,YAAY,KA6CvB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,YAAY,KAgCvB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,SAAS,KAsDpB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,WAAW,KAoDtB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,aAAa,KA0BxB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,UAAU,KAwBrB,CAAC;AAMH,eAAO,MAAM,iBAAiB,KAkC5B,CAAC;AAEH,eAAO,MAAM,mBAAmB,KAQ9B,CAAC;AAMH,eAAO,MAAM,QAAQ,KA0BnB,CAAC;AAEH,eAAO,MAAM,aAAa,KAqDxB,CAAC;AAEH,eAAO,MAAM,UAAU,KAiCrB,CAAC;AAEH,eAAO,MAAM,kBAAkB,KAU7B,CAAC;AAEH,eAAO,MAAM,gBAAgB,KAa3B,CAAC;AAEH,eAAO,MAAM,aAAa,KAyCxB,CAAC;AAMH,eAAO,MAAM,QAAQ,KAwHnB,CAAC;AAEH,eAAO,MAAM,gBAAgB,KA+C3B,CAAC;AA+BH,eAAO,MAAM,qBAAqB,KAgEhC,CAAC"}