You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -8,73 +9,6 @@ import type { $ToolParams } from '../../constants'
8
9
consttoolName='gravity_index'
9
10
constendsAgentStep=true
10
11
11
-
constinputSchema=z
12
-
.discriminatedUnion('action',[
13
-
z.object({
14
-
action: z.literal('search').describe('Search for the best service.'),
15
-
query: z
16
-
.string()
17
-
.min(1,'Query cannot be empty')
18
-
.max(1000,'Query cannot exceed 1000 characters')
19
-
.describe(
20
-
`What the user needs, including stack, constraints, and required capabilities when known. Example: "serverless database with branching for a Next.js app".`,
21
-
),
22
-
search_id: z
23
-
.string()
24
-
.optional()
25
-
.describe('Continue a previous Gravity Index search as a follow-up.'),
26
-
context: z
27
-
.record(z.string(),z.unknown())
28
-
.optional()
29
-
.describe(
30
-
'Optional structured context about the project, stack, or constraints.',
31
-
),
32
-
}),
33
-
z.object({
34
-
action: z
35
-
.literal('browse')
36
-
.describe('Browse catalog services by category and/or keyword.'),
.describe('Optional keyword filter, e.g. sendgrid or postgres.'),
47
-
}),
48
-
z.object({
49
-
action: z
50
-
.literal('list_categories')
51
-
.describe('List every category with service counts.'),
52
-
}),
53
-
z.object({
54
-
action: z
55
-
.literal('get_service')
56
-
.describe('Fetch full detail for a single service by slug.'),
57
-
slug: z
58
-
.string()
59
-
.min(1,'Slug cannot be empty')
60
-
.describe('Service slug, e.g. supabase, stripe, sendgrid.'),
61
-
}),
62
-
z.object({
63
-
action: z
64
-
.literal('report_integration')
65
-
.describe('Report that an integration from a prior search was done.'),
66
-
search_id: z
67
-
.string()
68
-
.min(1,'search_id cannot be empty')
69
-
.describe('search_id from the earlier search result.'),
70
-
integrated_slug: z
71
-
.string()
72
-
.min(1,'integrated_slug cannot be empty')
73
-
.describe('Slug of the service that was actually integrated.'),
74
-
}),
75
-
])
76
-
.describe(`Use the Gravity Index catalog and conversion API.`)
77
-
78
12
constdescription=`
79
13
Purpose: Use the Gravity Index to discover, inspect, and report integrations for third-party developer services such as databases, auth, payments, hosting, email, cache, monitoring, analytics, AI, storage, CMS, search, realtime, background jobs, infrastructure, CRM, support, productivity, commerce, video, webhooks, and SMS.
action: z.literal('search').describe('Search for the best service.'),
9
+
query: z
10
+
.string()
11
+
.min(1,'Query cannot be empty')
12
+
.max(1000,'Query cannot exceed 1000 characters')
13
+
.describe(
14
+
`What the user needs, including stack, constraints, and required capabilities when known. Example: "serverless database with branching for a Next.js app".`,
15
+
),
16
+
search_id: z
17
+
.string()
18
+
.optional()
19
+
.describe('Continue a previous Gravity Index search as a follow-up.'),
20
+
context: jsonObjectSchema
21
+
.optional()
22
+
.describe(
23
+
'Optional structured JSON context about the project, stack, or constraints.',
24
+
),
25
+
}),
26
+
z.object({
27
+
action: z
28
+
.literal('browse')
29
+
.describe('Browse catalog services by category and/or keyword.'),
0 commit comments