@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.
- package/convex/_generated/api.d.ts +115 -0
- package/convex/_generated/api.js +23 -0
- package/convex/_generated/dataModel.d.ts +60 -0
- package/convex/_generated/server.d.ts +143 -0
- package/convex/_generated/server.js +93 -0
- package/convex/adminActivate.d.ts +3 -0
- package/convex/adminActivate.d.ts.map +1 -0
- package/convex/adminActivate.js +47 -0
- package/convex/adminActivate.js.map +1 -0
- package/convex/adminActivate.ts +54 -0
- package/convex/adminStats.d.ts +3 -0
- package/convex/adminStats.d.ts.map +1 -0
- package/convex/adminStats.js +42 -0
- package/convex/adminStats.js.map +1 -0
- package/convex/adminStats.ts +44 -0
- package/convex/agents.d.ts +76 -0
- package/convex/agents.d.ts.map +1 -0
- package/convex/agents.js +699 -0
- package/convex/agents.js.map +1 -0
- package/convex/agents.ts +814 -0
- package/convex/analytics.d.ts +5 -0
- package/convex/analytics.d.ts.map +1 -0
- package/convex/analytics.js +166 -0
- package/convex/analytics.js.map +1 -0
- package/convex/analytics.ts +186 -0
- package/convex/billing.d.ts +88 -0
- package/convex/billing.d.ts.map +1 -0
- package/convex/billing.js +655 -0
- package/convex/billing.js.map +1 -0
- package/convex/billing.ts +791 -0
- package/convex/capabilities.d.ts +9 -0
- package/convex/capabilities.d.ts.map +1 -0
- package/convex/capabilities.js +145 -0
- package/convex/capabilities.js.map +1 -0
- package/convex/capabilities.ts +157 -0
- package/convex/chains.d.ts +68 -0
- package/convex/chains.d.ts.map +1 -0
- package/convex/chains.js +1105 -0
- package/convex/chains.js.map +1 -0
- package/convex/chains.ts +1318 -0
- package/convex/credits.d.ts +25 -0
- package/convex/credits.d.ts.map +1 -0
- package/convex/credits.js +186 -0
- package/convex/credits.js.map +1 -0
- package/convex/credits.ts +211 -0
- package/convex/crons.d.ts +3 -0
- package/convex/crons.d.ts.map +1 -0
- package/convex/crons.js +17 -0
- package/convex/crons.js.map +1 -0
- package/convex/crons.ts +28 -0
- package/convex/directCall.d.ts +72 -0
- package/convex/directCall.d.ts.map +1 -0
- package/convex/directCall.js +627 -0
- package/convex/directCall.js.map +1 -0
- package/convex/directCall.ts +678 -0
- package/convex/earnProgress.d.ts +58 -0
- package/convex/earnProgress.d.ts.map +1 -0
- package/convex/earnProgress.js +649 -0
- package/convex/earnProgress.js.map +1 -0
- package/convex/earnProgress.ts +753 -0
- package/convex/email.d.ts +14 -0
- package/convex/email.d.ts.map +1 -0
- package/convex/email.js +300 -0
- package/convex/email.js.map +1 -0
- package/convex/email.ts +329 -0
- package/convex/feedback.d.ts +7 -0
- package/convex/feedback.d.ts.map +1 -0
- package/convex/feedback.js +227 -0
- package/convex/feedback.js.map +1 -0
- package/convex/feedback.ts +265 -0
- package/convex/http.d.ts +3 -0
- package/convex/http.d.ts.map +1 -0
- package/convex/http.js +1405 -0
- package/convex/http.js.map +1 -0
- package/convex/http.ts +1577 -0
- package/convex/inbound.d.ts +2 -0
- package/convex/inbound.d.ts.map +1 -0
- package/convex/inbound.js +32 -0
- package/convex/inbound.js.map +1 -0
- package/convex/inbound.ts +32 -0
- package/convex/logs.d.ts +48 -0
- package/convex/logs.d.ts.map +1 -0
- package/convex/logs.js +592 -0
- package/convex/logs.js.map +1 -0
- package/convex/logs.ts +662 -0
- package/convex/mou.d.ts +6 -0
- package/convex/mou.d.ts.map +1 -0
- package/convex/mou.js +82 -0
- package/convex/mou.js.map +1 -0
- package/convex/mou.ts +91 -0
- package/convex/providerKeys.d.ts +31 -0
- package/convex/providerKeys.d.ts.map +1 -0
- package/convex/providerKeys.js +257 -0
- package/convex/providerKeys.js.map +1 -0
- package/convex/providerKeys.ts +289 -0
- package/convex/providers.d.ts +32 -0
- package/convex/providers.d.ts.map +1 -0
- package/convex/providers.js +814 -0
- package/convex/providers.js.map +1 -0
- package/convex/providers.ts +909 -0
- package/convex/purchases.d.ts +7 -0
- package/convex/purchases.d.ts.map +1 -0
- package/convex/purchases.js +157 -0
- package/convex/purchases.js.map +1 -0
- package/convex/purchases.ts +183 -0
- package/convex/ratelimit.d.ts +4 -0
- package/convex/ratelimit.d.ts.map +1 -0
- package/convex/ratelimit.js +91 -0
- package/convex/ratelimit.js.map +1 -0
- package/convex/ratelimit.ts +104 -0
- package/convex/schema.ts +805 -0
- package/convex/searchLogs.d.ts +4 -0
- package/convex/searchLogs.d.ts.map +1 -0
- package/convex/searchLogs.js +129 -0
- package/convex/searchLogs.js.map +1 -0
- package/convex/searchLogs.ts +146 -0
- package/convex/seedAPILayerAPIs.d.ts +7 -0
- package/convex/seedAPILayerAPIs.d.ts.map +1 -0
- package/convex/seedAPILayerAPIs.js +177 -0
- package/convex/seedAPILayerAPIs.js.map +1 -0
- package/convex/seedAPILayerAPIs.ts +191 -0
- package/convex/seedDirectCallConfigs.d.ts +2 -0
- package/convex/seedDirectCallConfigs.d.ts.map +1 -0
- package/convex/seedDirectCallConfigs.js +324 -0
- package/convex/seedDirectCallConfigs.js.map +1 -0
- package/convex/seedDirectCallConfigs.ts +336 -0
- package/convex/seedPratham.d.ts +6 -0
- package/convex/seedPratham.d.ts.map +1 -0
- package/convex/seedPratham.js +150 -0
- package/convex/seedPratham.js.map +1 -0
- package/convex/seedPratham.ts +161 -0
- package/convex/spendAlerts.d.ts +36 -0
- package/convex/spendAlerts.d.ts.map +1 -0
- package/convex/spendAlerts.js +380 -0
- package/convex/spendAlerts.js.map +1 -0
- package/convex/spendAlerts.ts +442 -0
- package/convex/stripeActions.d.ts +19 -0
- package/convex/stripeActions.d.ts.map +1 -0
- package/convex/stripeActions.js +411 -0
- package/convex/stripeActions.js.map +1 -0
- package/convex/stripeActions.ts +512 -0
- package/convex/teams.d.ts +21 -0
- package/convex/teams.d.ts.map +1 -0
- package/convex/teams.js +215 -0
- package/convex/teams.js.map +1 -0
- package/convex/teams.ts +243 -0
- package/convex/telemetry.d.ts +4 -0
- package/convex/telemetry.d.ts.map +1 -0
- package/convex/telemetry.js +74 -0
- package/convex/telemetry.js.map +1 -0
- package/convex/telemetry.ts +81 -0
- package/convex/tsconfig.json +25 -0
- package/convex/updateAPIStatus.d.ts +6 -0
- package/convex/updateAPIStatus.d.ts.map +1 -0
- package/convex/updateAPIStatus.js +40 -0
- package/convex/updateAPIStatus.js.map +1 -0
- package/convex/updateAPIStatus.ts +45 -0
- package/convex/usage.d.ts +27 -0
- package/convex/usage.d.ts.map +1 -0
- package/convex/usage.js +229 -0
- package/convex/usage.js.map +1 -0
- package/convex/usage.ts +260 -0
- package/convex/waitlist.d.ts +4 -0
- package/convex/waitlist.d.ts.map +1 -0
- package/convex/waitlist.js +49 -0
- package/convex/waitlist.js.map +1 -0
- package/convex/waitlist.ts +55 -0
- package/convex/webhooks.d.ts +12 -0
- package/convex/webhooks.d.ts.map +1 -0
- package/convex/webhooks.js +410 -0
- package/convex/webhooks.js.map +1 -0
- package/convex/webhooks.ts +494 -0
- package/convex/workspaces.d.ts +31 -0
- package/convex/workspaces.d.ts.map +1 -0
- package/convex/workspaces.js +975 -0
- package/convex/workspaces.js.map +1 -0
- package/convex/workspaces.ts +1130 -0
- package/dist/bin.js +0 -0
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/index.ts +10 -0
- package/dist/chain-types.d.ts +0 -187
- package/dist/chain-types.d.ts.map +0 -1
- package/dist/chain-types.js +0 -33
- package/dist/chain-types.js.map +0 -1
- package/dist/registry/apis.json.bak +0 -248811
- package/dist/src/bin.js +0 -17
- package/dist/src/capability-router.js +0 -240
- package/dist/src/chainExecutor.js +0 -451
- package/dist/src/chainResolver.js +0 -518
- package/dist/src/cli/commands/doctor.js +0 -324
- package/dist/src/cli/commands/mcp-install.js +0 -255
- package/dist/src/cli/commands/restore.js +0 -259
- package/dist/src/cli/commands/setup.js +0 -205
- package/dist/src/cli/commands/uninstall.js +0 -188
- package/dist/src/cli/index.js +0 -111
- package/dist/src/cli.js +0 -302
- package/dist/src/confirmation.js +0 -240
- package/dist/src/credentials.js +0 -357
- package/dist/src/credits.js +0 -260
- package/dist/src/crypto.js +0 -66
- package/dist/src/discovery.js +0 -504
- package/dist/src/enterprise/env.js +0 -123
- package/dist/src/enterprise/script-generator.js +0 -460
- package/dist/src/execute-dynamic.js +0 -473
- package/dist/src/execute.js +0 -1727
- package/dist/src/index.js +0 -2062
- package/dist/src/metered.js +0 -80
- package/dist/src/open-apis.js +0 -276
- package/dist/src/proxy.js +0 -28
- package/dist/src/session.js +0 -86
- package/dist/src/stripe.js +0 -407
- package/dist/src/telemetry.js +0 -49
- package/dist/src/types.js +0 -2
- package/dist/src/utils/backup.js +0 -181
- package/dist/src/utils/config.js +0 -220
- package/dist/src/utils/os.js +0 -105
- 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"}
|