@sanity/context 0.0.3 → 0.0.4
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/dist/studio.js
CHANGED
|
@@ -22,21 +22,6 @@ const AGENT_CONTEXT_SCHEMA_TYPE_NAME = "sanity.agentContext", AGENT_CONTEXT_SCHE
|
|
|
22
22
|
source: "name"
|
|
23
23
|
}
|
|
24
24
|
}),
|
|
25
|
-
defineField({
|
|
26
|
-
name: "organizationId",
|
|
27
|
-
title: "Organization ID",
|
|
28
|
-
type: "string"
|
|
29
|
-
}),
|
|
30
|
-
defineField({
|
|
31
|
-
name: "projectId",
|
|
32
|
-
title: "Project ID",
|
|
33
|
-
type: "string"
|
|
34
|
-
}),
|
|
35
|
-
defineField({
|
|
36
|
-
name: "dataset",
|
|
37
|
-
title: "Dataset",
|
|
38
|
-
type: "string"
|
|
39
|
-
}),
|
|
40
25
|
defineField({
|
|
41
26
|
name: "groqFilter",
|
|
42
27
|
title: "GROQ filter",
|
|
@@ -45,7 +30,7 @@ const AGENT_CONTEXT_SCHEMA_TYPE_NAME = "sanity.agentContext", AGENT_CONTEXT_SCHE
|
|
|
45
30
|
]
|
|
46
31
|
});
|
|
47
32
|
function AgentDocumentInput(props) {
|
|
48
|
-
const dataset = useDataset(), projectId = useProjectId(), toast = useToast(), slug = getValueAtPath(props.value, ["slug"]), currentSlug = slug && typeof slug == "object" && "current" in slug ? slug.current : "", MCP_URL = `https://context-mcp.sanity.io/${projectId}/${dataset}/${currentSlug}`;
|
|
33
|
+
const dataset = useDataset(), projectId = useProjectId(), toast = useToast(), slug = getValueAtPath(props.value, ["slug"]), currentSlug = slug && typeof slug == "object" && "current" in slug ? slug.current : "", MCP_URL = `https://context-mcp.sanity.io/mcp/${projectId}/${dataset}/${currentSlug}`;
|
|
49
34
|
return /* @__PURE__ */ jsxs(Stack, { space: 4, children: [
|
|
50
35
|
/* @__PURE__ */ jsx(Card, { shadow: 1, padding: 4, paddingLeft: 4, radius: 2, tone: "primary", children: /* @__PURE__ */ jsxs(Stack, { space: 4, children: [
|
|
51
36
|
/* @__PURE__ */ jsx(Text, { size: 1, muted: !0, weight: "medium", children: "Context MCP URL" }),
|
package/dist/studio.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"studio.js","sources":["../src/studio/context-plugin/agentContextSchema.ts","../src/studio/context-plugin/AgentDocumentInput.tsx","../src/studio/context-plugin/plugin.tsx"],"sourcesContent":["import {DatabaseIcon} from '@sanity/icons'\nimport {defineField, defineType} from 'sanity'\n\n/**\n * The name of the agent context schema type.\n */\nexport const AGENT_CONTEXT_SCHEMA_TYPE_NAME = 'sanity.agentContext'\n\n/**\n * The title of the agent context schema type.\n */\nexport const AGENT_CONTEXT_SCHEMA_TITLE = 'Agent Context'\n\n/**\n * The schema for the agent context document.\n * @beta\n */\nexport const agentContextSchema = defineType({\n name: AGENT_CONTEXT_SCHEMA_TYPE_NAME,\n title: AGENT_CONTEXT_SCHEMA_TITLE,\n type: 'document',\n icon: DatabaseIcon,\n fields: [\n defineField({\n name: 'name',\n title: 'Name',\n type: 'string',\n }),\n defineField({\n name: 'slug',\n title: 'Slug',\n type: 'slug',\n options: {\n source: 'name',\n },\n }),\n defineField({\n name: '
|
|
1
|
+
{"version":3,"file":"studio.js","sources":["../src/studio/context-plugin/agentContextSchema.ts","../src/studio/context-plugin/AgentDocumentInput.tsx","../src/studio/context-plugin/plugin.tsx"],"sourcesContent":["import {DatabaseIcon} from '@sanity/icons'\nimport {defineField, defineType} from 'sanity'\n\n/**\n * The name of the agent context schema type.\n */\nexport const AGENT_CONTEXT_SCHEMA_TYPE_NAME = 'sanity.agentContext'\n\n/**\n * The title of the agent context schema type.\n */\nexport const AGENT_CONTEXT_SCHEMA_TITLE = 'Agent Context'\n\n/**\n * The schema for the agent context document.\n * @beta\n */\nexport const agentContextSchema = defineType({\n name: AGENT_CONTEXT_SCHEMA_TYPE_NAME,\n title: AGENT_CONTEXT_SCHEMA_TITLE,\n type: 'document',\n icon: DatabaseIcon,\n fields: [\n defineField({\n name: 'name',\n title: 'Name',\n type: 'string',\n }),\n defineField({\n name: 'slug',\n title: 'Slug',\n type: 'slug',\n options: {\n source: 'name',\n },\n }),\n defineField({\n name: 'groqFilter',\n title: 'GROQ filter',\n type: 'text',\n }),\n ],\n})\n","import {CopyIcon} from '@sanity/icons'\nimport {Box, Button, Card, Flex, Stack, Text, useToast} from '@sanity/ui'\nimport {getValueAtPath, type InputProps, useDataset, useProjectId} from 'sanity'\n\nexport function AgentDocumentInput(props: InputProps) {\n const dataset = useDataset()\n const projectId = useProjectId()\n const toast = useToast()\n\n const slug = getValueAtPath(props.value, ['slug'])\n const currentSlug = slug && typeof slug === 'object' && 'current' in slug ? slug.current : ''\n const MCP_URL = `https://context-mcp.sanity.io/mcp/${projectId}/${dataset}/${currentSlug}`\n\n const handleCopy = () => {\n try {\n navigator.clipboard.writeText(MCP_URL)\n toast.push({\n title: 'Copied to clipboard',\n description: 'The MCP URL has been copied to your clipboard',\n status: 'success',\n closable: true,\n })\n } catch {\n toast.push({\n title: 'Error copying to clipboard',\n description: 'Please copy the MCP URL manually',\n status: 'error',\n closable: true,\n })\n }\n }\n\n return (\n <Stack space={4}>\n <Card shadow={1} padding={4} paddingLeft={4} radius={2} tone=\"primary\">\n <Stack space={4}>\n <Text size={1} muted weight=\"medium\">\n Context MCP URL\n </Text>\n\n {slug ? (\n <Flex align=\"center\" gap={2}>\n <Button icon={CopyIcon} mode=\"bleed\" fontSize={1} padding={2} onClick={handleCopy} />\n\n <Box flex={1}>\n <Text size={1} muted>\n {MCP_URL}\n </Text>\n </Box>\n </Flex>\n ) : (\n <Box paddingY={2}>\n <Text size={1} muted>\n No slug found. Please generate a slug to see the Context MCP URL.\n </Text>\n </Box>\n )}\n </Stack>\n </Card>\n\n {props.renderDefault(props)}\n </Stack>\n )\n}\n","import {definePlugin} from 'sanity'\nimport {type StructureBuilder, structureTool} from 'sanity/structure'\n\nimport {\n AGENT_CONTEXT_SCHEMA_TITLE,\n AGENT_CONTEXT_SCHEMA_TYPE_NAME,\n agentContextSchema,\n} from './agentContextSchema'\nimport {AgentDocumentInput} from './AgentDocumentInput'\n\n/**\n * The plugin for the agent context.\n * @beta\n */\nexport const contextPlugin = definePlugin({\n name: 'sanity/context/plugin',\n\n schema: {\n types: [agentContextSchema],\n\n // Add template configuration for the `sanity.agentContext` type\n // as the sanity.* namespace is filtered by default.\n templates: (prev) => [\n ...prev,\n {\n id: AGENT_CONTEXT_SCHEMA_TYPE_NAME,\n title: AGENT_CONTEXT_SCHEMA_TITLE,\n schemaType: AGENT_CONTEXT_SCHEMA_TYPE_NAME,\n value: {},\n },\n ],\n },\n\n form: {\n components: {\n input: (props) => {\n if (props.schemaType.name === AGENT_CONTEXT_SCHEMA_TYPE_NAME) {\n return <AgentDocumentInput {...props} />\n }\n\n return props.renderDefault(props)\n },\n },\n },\n\n plugins: [\n structureTool({\n title: AGENT_CONTEXT_SCHEMA_TITLE,\n name: 'agent-context-structure',\n structure: (S: StructureBuilder) => {\n return S.list()\n .title('Content')\n .items([\n S.listItem()\n .title(AGENT_CONTEXT_SCHEMA_TITLE)\n .child(\n S.documentTypeList(AGENT_CONTEXT_SCHEMA_TYPE_NAME).title(\n AGENT_CONTEXT_SCHEMA_TITLE,\n ),\n ),\n ])\n },\n }),\n ],\n})\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -9,7 +9,7 @@ export function AgentDocumentInput(props: InputProps) {
|
|
|
9
9
|
|
|
10
10
|
const slug = getValueAtPath(props.value, ['slug'])
|
|
11
11
|
const currentSlug = slug && typeof slug === 'object' && 'current' in slug ? slug.current : ''
|
|
12
|
-
const MCP_URL = `https://context-mcp.sanity.io/${projectId}/${dataset}/${currentSlug}`
|
|
12
|
+
const MCP_URL = `https://context-mcp.sanity.io/mcp/${projectId}/${dataset}/${currentSlug}`
|
|
13
13
|
|
|
14
14
|
const handleCopy = () => {
|
|
15
15
|
try {
|
|
@@ -34,21 +34,6 @@ export const agentContextSchema = defineType({
|
|
|
34
34
|
source: 'name',
|
|
35
35
|
},
|
|
36
36
|
}),
|
|
37
|
-
defineField({
|
|
38
|
-
name: 'organizationId',
|
|
39
|
-
title: 'Organization ID',
|
|
40
|
-
type: 'string',
|
|
41
|
-
}),
|
|
42
|
-
defineField({
|
|
43
|
-
name: 'projectId',
|
|
44
|
-
title: 'Project ID',
|
|
45
|
-
type: 'string',
|
|
46
|
-
}),
|
|
47
|
-
defineField({
|
|
48
|
-
name: 'dataset',
|
|
49
|
-
title: 'Dataset',
|
|
50
|
-
type: 'string',
|
|
51
|
-
}),
|
|
52
37
|
defineField({
|
|
53
38
|
name: 'groqFilter',
|
|
54
39
|
title: 'GROQ filter',
|