@vibesdotdev/integrations-cursor 0.0.0-stage → 1.0.0-rc.1

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 (63) hide show
  1. package/LICENSE +126 -0
  2. package/README.md +19 -2
  3. package/dist/adapters/cursor-adapter.descriptor.d.ts +4 -0
  4. package/dist/adapters/cursor-adapter.descriptor.d.ts.map +1 -0
  5. package/dist/adapters/cursor-adapter.descriptor.js +12 -0
  6. package/dist/adapters/cursor-adapter.descriptor.js.map +1 -0
  7. package/dist/adapters/cursor-adapter.impl.consumer.d.ts +16 -0
  8. package/dist/adapters/cursor-adapter.impl.consumer.d.ts.map +1 -0
  9. package/dist/adapters/cursor-adapter.impl.consumer.js +66 -0
  10. package/dist/adapters/cursor-adapter.impl.consumer.js.map +1 -0
  11. package/dist/adapters/cursor-adapter.plugin.d.ts +2 -0
  12. package/dist/adapters/cursor-adapter.plugin.d.ts.map +1 -0
  13. package/dist/adapters/cursor-adapter.plugin.js +2 -0
  14. package/dist/adapters/cursor-adapter.plugin.js.map +1 -0
  15. package/dist/adapters/cursor.consumer.plugin.d.ts +3 -0
  16. package/dist/adapters/cursor.consumer.plugin.d.ts.map +1 -0
  17. package/dist/adapters/cursor.consumer.plugin.js +19 -0
  18. package/dist/adapters/cursor.consumer.plugin.js.map +1 -0
  19. package/dist/adapters/index.d.ts +7 -0
  20. package/dist/adapters/index.d.ts.map +1 -0
  21. package/dist/adapters/index.js +14 -0
  22. package/dist/adapters/index.js.map +1 -0
  23. package/dist/external/cursor/index.d.ts +162 -0
  24. package/dist/external/cursor/index.d.ts.map +1 -0
  25. package/dist/external/cursor/index.js +5 -0
  26. package/dist/external/cursor/index.js.map +1 -0
  27. package/dist/external/cursor/manifest.d.ts +9 -0
  28. package/dist/external/cursor/manifest.d.ts.map +1 -0
  29. package/dist/external/cursor/manifest.js +83 -0
  30. package/dist/external/cursor/manifest.js.map +1 -0
  31. package/dist/external/cursor-presets.d.ts +818 -0
  32. package/dist/external/cursor-presets.d.ts.map +1 -0
  33. package/dist/external/cursor-presets.js +113 -0
  34. package/dist/external/cursor-presets.js.map +1 -0
  35. package/dist/external/external.consumer.plugin.d.ts +3 -0
  36. package/dist/external/external.consumer.plugin.d.ts.map +1 -0
  37. package/dist/external/external.consumer.plugin.js +20 -0
  38. package/dist/external/external.consumer.plugin.js.map +1 -0
  39. package/dist/external/external.plugin.d.ts +2 -0
  40. package/dist/external/external.plugin.d.ts.map +1 -0
  41. package/dist/external/external.plugin.js +2 -0
  42. package/dist/external/external.plugin.js.map +1 -0
  43. package/dist/external/index.d.ts +3 -0
  44. package/dist/external/index.d.ts.map +1 -0
  45. package/dist/external/index.js +3 -0
  46. package/dist/external/index.js.map +1 -0
  47. package/dist/external/metadata.plugin.d.ts +3 -0
  48. package/dist/external/metadata.plugin.d.ts.map +1 -0
  49. package/dist/external/metadata.plugin.js +11 -0
  50. package/dist/external/metadata.plugin.js.map +1 -0
  51. package/dist/index.d.ts +5 -0
  52. package/dist/index.d.ts.map +1 -0
  53. package/dist/index.js +4 -0
  54. package/dist/index.js.map +1 -0
  55. package/dist/schemas/adapter.d.ts +32 -0
  56. package/dist/schemas/adapter.d.ts.map +1 -0
  57. package/dist/schemas/adapter.js +27 -0
  58. package/dist/schemas/adapter.js.map +1 -0
  59. package/dist/schemas/mcp.d.ts +12 -0
  60. package/dist/schemas/mcp.d.ts.map +1 -0
  61. package/dist/schemas/mcp.js +11 -0
  62. package/dist/schemas/mcp.js.map +1 -0
  63. package/package.json +86 -4
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cursor-presets.d.ts","sourceRoot":"","sources":["../../src/external/cursor-presets.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAmGH,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAGvC,CAAC;AAEH,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAG3C,CAAC;AAEH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAG1B,CAAC"}
@@ -0,0 +1,113 @@
1
+ /**
2
+ * Cursor-owned `external/preset` descriptors.
3
+ *
4
+ * Profiles: `mcp` (agent-pack minimal MCP) and `plugin` (MCP plus the
5
+ * `tool-adapter.cursor` rules/skills codegen this package registers).
6
+ */
7
+ import { externalPresetDescriptor } from '@vibesdotdev/external';
8
+ // Cursor previously had ONLY the MCP-minimal preset, so its capability coverage
9
+ // stopped at MCP — even though the `tool-adapter.cursor` adapter already emits
10
+ // `.cursor/rules/*.mdc` + `.cursor/skills/`. This preset wires that adapter
11
+ // through the same declarative recipe the opencode plugin uses, so Cursor
12
+ // inherits MCP + native rules/skills the same way every other target does
13
+ // (see #813 / #817 and docs/architecture/EXTERNAL-AS-RUNTIME-PROJECTION.md).
14
+ const cursorVibesPlugin = {
15
+ id: 'cursor-vibes-plugin',
16
+ name: 'Vibes MCP + Cursor rules/skills',
17
+ description: 'Agent-pack MCP install plus Cursor rules + Agent Skills generated from the vibes catalog',
18
+ target: 'cursor',
19
+ category: 'integration',
20
+ tags: ['plugin', 'recommended', 'agent-pack', 'mcp'],
21
+ features: {
22
+ mcpServer: true,
23
+ hooks: [],
24
+ aliases: ['vibes cursor'],
25
+ modelConfig: false,
26
+ workflowConfig: false,
27
+ disableInternalTools: false
28
+ },
29
+ recipe: {
30
+ id: 'cursor-vibes-plugin',
31
+ name: 'Vibes Cursor integration',
32
+ description: 'MCP + tool-adapter.cursor codegen (.cursor/rules + .cursor/skills)',
33
+ variables: {
34
+ vibesPath: 'vibes'
35
+ },
36
+ steps: [
37
+ {
38
+ // Non-fatal: Cursor is a GUI IDE that may be installed after this
39
+ // runs; the rules/skills are still valid to lay down for its next
40
+ // launch, so a missing detection must not block the install.
41
+ type: 'validate',
42
+ check: 'tool-installed',
43
+ target: 'cursor',
44
+ message: 'Cursor not detected. Rules/skills will still be written to .cursor/ for next launch. Install from: https://cursor.com',
45
+ fatal: false
46
+ },
47
+ {
48
+ type: 'mcp-configure',
49
+ target: 'cursor',
50
+ serverName: 'vibes',
51
+ command: 'vibes',
52
+ args: ['dev', 'mcp', 'serve', '--client', 'cursor'],
53
+ global: true,
54
+ tier: 'recommended'
55
+ },
56
+ {
57
+ // Emits .cursor/rules/vibes-integration.mdc + .cursor/skills/ — the
58
+ // adapter owns its output paths, so no outputDir is threaded here.
59
+ type: 'adapter-codegen',
60
+ adapterId: 'tool-adapter.cursor',
61
+ tier: 'recommended'
62
+ }
63
+ ]
64
+ },
65
+ version: '1.0.0'
66
+ };
67
+ const cursorVibesMcpMinimal = {
68
+ id: 'cursor-vibes-mcp-minimal',
69
+ name: 'Vibes MCP Minimal',
70
+ description: 'MCP-only vibes integration for Cursor (agent-pack minimal tier)',
71
+ target: 'cursor',
72
+ category: 'integration',
73
+ tags: ['mcp', 'minimal', 'agent-pack'],
74
+ features: {
75
+ mcpServer: true,
76
+ hooks: [],
77
+ aliases: [],
78
+ modelConfig: false,
79
+ workflowConfig: false,
80
+ disableInternalTools: false
81
+ },
82
+ recipe: {
83
+ id: 'cursor-vibes-mcp-minimal',
84
+ name: 'Vibes MCP Minimal',
85
+ description: 'Install MCP server via agent pack',
86
+ variables: {},
87
+ steps: [
88
+ {
89
+ type: 'mcp-configure',
90
+ target: 'cursor',
91
+ serverName: 'vibes',
92
+ command: 'vibes',
93
+ args: ['dev', 'mcp', 'serve', '--preset', 'minimal', '--harness', 'cursor', '--agent', 'cursor'],
94
+ global: false,
95
+ tier: 'minimal'
96
+ }
97
+ ]
98
+ },
99
+ version: '1.0.0'
100
+ };
101
+ export const cursorPluginPresetDescriptor = externalPresetDescriptor({
102
+ preset: cursorVibesPlugin,
103
+ profiles: [{ id: 'plugin', presetId: cursorVibesPlugin.id }]
104
+ });
105
+ export const cursorMcpMinimalPresetDescriptor = externalPresetDescriptor({
106
+ preset: cursorVibesMcpMinimal,
107
+ profiles: [{ id: 'mcp', presetId: cursorVibesMcpMinimal.id }]
108
+ });
109
+ export const cursorPresetDescriptors = [
110
+ cursorPluginPresetDescriptor,
111
+ cursorMcpMinimalPresetDescriptor
112
+ ];
113
+ //# sourceMappingURL=cursor-presets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cursor-presets.js","sourceRoot":"","sources":["../../src/external/cursor-presets.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export declare const cursorExternalPlugin: import("@vibesdotdev/kernel").RuntimePlugin;
2
+ export default cursorExternalPlugin;
3
+ //# sourceMappingURL=external.consumer.plugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"external.consumer.plugin.d.ts","sourceRoot":"","sources":["../../src/external/external.consumer.plugin.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,oBAAoB,6CAU/B,CAAC;AACH,eAAe,oBAAoB,CAAC"}
@@ -0,0 +1,20 @@
1
+ import { createRuntimePlugin } from '@vibesdotdev/kernel';
2
+ import { createExternalHostLoader, registerExternalHost, registerExternalPreset } from '@vibesdotdev/external';
3
+ import descriptor from "./cursor/index.js";
4
+ import { cursorPresetDescriptors } from "./cursor-presets.js";
5
+ import cursorAdapterPlugin from "../adapters/cursor.consumer.plugin.js";
6
+ export const cursorExternalPlugin = createRuntimePlugin({
7
+ id: 'integrations-cursor/external',
8
+ name: 'Cursor consumer integration',
9
+ description: 'Cursor host, presets and rules/skills generation',
10
+ dependencies: ['external', 'tools'],
11
+ async onRegister(runtime) {
12
+ await registerExternalHost(runtime, descriptor, createExternalHostLoader(descriptor));
13
+ for (const preset of cursorPresetDescriptors)
14
+ registerExternalPreset(runtime, preset);
15
+ if (!runtime.hasPlugin(cursorAdapterPlugin.id))
16
+ await runtime.registerPlugin(cursorAdapterPlugin);
17
+ }
18
+ });
19
+ export default cursorExternalPlugin;
20
+ //# sourceMappingURL=external.consumer.plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"external.consumer.plugin.js","sourceRoot":"","sources":["../../src/external/external.consumer.plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/G,OAAO,UAAU,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,mBAAmB,MAAM,uCAAuC,CAAC;AAExE,MAAM,CAAC,MAAM,oBAAoB,GAAG,mBAAmB,CAAC;IACvD,EAAE,EAAE,8BAA8B;IAClC,IAAI,EAAE,6BAA6B;IACnC,WAAW,EAAE,kDAAkD;IAC/D,YAAY,EAAE,CAAC,UAAU,EAAE,OAAO,CAAC;IACnC,KAAK,CAAC,UAAU,CAAC,OAAO;QACvB,MAAM,oBAAoB,CAAC,OAAO,EAAE,UAAU,EAAE,wBAAwB,CAAC,UAAU,CAAC,CAAC,CAAC;QACtF,KAAK,MAAM,MAAM,IAAI,uBAAuB;YAAE,sBAAsB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACtF,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,mBAAmB,CAAC,EAAE,CAAC;YAAE,MAAM,OAAO,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAC;IACnG,CAAC;CACD,CAAC,CAAC;AACH,eAAe,oBAAoB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { default, cursorExternalPlugin } from './external.consumer.plugin.ts';
2
+ //# sourceMappingURL=external.plugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"external.plugin.d.ts","sourceRoot":"","sources":["../../src/external/external.plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { default, cursorExternalPlugin } from "./external.consumer.plugin.js";
2
+ //# sourceMappingURL=external.plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"external.plugin.js","sourceRoot":"","sources":["../../src/external/external.plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { default, cursorManifest } from './cursor/index.ts';
2
+ export { cursorMcpMinimalPresetDescriptor, cursorPluginPresetDescriptor, cursorPresetDescriptors } from './cursor-presets.ts';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/external/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EACN,gCAAgC,EAChC,4BAA4B,EAC5B,uBAAuB,EACvB,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { default, cursorManifest } from "./cursor/index.js";
2
+ export { cursorMcpMinimalPresetDescriptor, cursorPluginPresetDescriptor, cursorPresetDescriptors } from "./cursor-presets.js";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/external/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EACN,gCAAgC,EAChC,4BAA4B,EAC5B,uBAAuB,EACvB,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,3 @@
1
+ declare const cursorMetadataPlugin: import("@vibesdotdev/kernel").RuntimePlugin;
2
+ export default cursorMetadataPlugin;
3
+ //# sourceMappingURL=metadata.plugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata.plugin.d.ts","sourceRoot":"","sources":["../../src/external/metadata.plugin.ts"],"names":[],"mappings":"AAKA,QAAA,MAAM,oBAAoB,6CAIxB,CAAC;AACH,eAAe,oBAAoB,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { externalProfileDescriptors } from '@vibesdotdev/external';
2
+ import { createRuntimePlugin } from '@vibesdotdev/kernel';
3
+ import descriptor from "./cursor/index.js";
4
+ import { cursorPresetDescriptors } from "./cursor-presets.js";
5
+ const cursorMetadataPlugin = createRuntimePlugin({
6
+ id: 'integrations-cursor/metadata',
7
+ name: 'Cursor metadata',
8
+ descriptors: [descriptor, ...cursorPresetDescriptors, ...cursorPresetDescriptors.flatMap(externalProfileDescriptors)]
9
+ });
10
+ export default cursorMetadataPlugin;
11
+ //# sourceMappingURL=metadata.plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata.plugin.js","sourceRoot":"","sources":["../../src/external/metadata.plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,UAAU,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAE9D,MAAM,oBAAoB,GAAG,mBAAmB,CAAC;IAChD,EAAE,EAAE,8BAA8B;IAClC,IAAI,EAAE,iBAAiB;IACvB,WAAW,EAAE,CAAC,UAAU,EAAE,GAAG,uBAAuB,EAAE,GAAG,uBAAuB,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC;CACrH,CAAC,CAAC;AACH,eAAe,oBAAoB,CAAC"}
@@ -0,0 +1,5 @@
1
+ export { default as externalPlugin } from './external/metadata.plugin.ts';
2
+ export { cursorManifest } from './external/cursor/index.ts';
3
+ export { CursorAdapterOptionsSchema, CursorAdapterResultSchema } from './schemas/adapter.ts';
4
+ export type { CursorAdapterOptions, CursorAdapterResult } from './schemas/adapter.ts';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,0BAA0B,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAC7F,YAAY,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,4 @@
1
+ export { default as externalPlugin } from "./external/metadata.plugin.js";
2
+ export { cursorManifest } from "./external/cursor/index.js";
3
+ export { CursorAdapterOptionsSchema, CursorAdapterResultSchema } from "./schemas/adapter.js";
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,0BAA0B,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,32 @@
1
+ import * as z from 'zod/v4';
2
+ export declare const CursorAdapterOptionsSchema: z.ZodObject<{
3
+ projectDir: z.ZodOptional<z.ZodString>;
4
+ outputDir: z.ZodOptional<z.ZodString>;
5
+ filter: z.ZodOptional<z.ZodObject<{
6
+ categories: z.ZodOptional<z.ZodArray<z.ZodString>>;
7
+ tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
8
+ ids: z.ZodOptional<z.ZodArray<z.ZodString>>;
9
+ }, z.core.$strip>>;
10
+ toolFilter: z.ZodOptional<z.ZodObject<{
11
+ categories: z.ZodOptional<z.ZodArray<z.ZodString>>;
12
+ tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
13
+ ids: z.ZodOptional<z.ZodArray<z.ZodString>>;
14
+ }, z.core.$strip>>;
15
+ targetId: z.ZodOptional<z.ZodString>;
16
+ dryRun: z.ZodOptional<z.ZodBoolean>;
17
+ global: z.ZodOptional<z.ZodBoolean>;
18
+ includeTools: z.ZodOptional<z.ZodBoolean>;
19
+ }, z.core.$strip>;
20
+ export declare const CursorAdapterResultSchema: z.ZodObject<{
21
+ success: z.ZodBoolean;
22
+ message: z.ZodString;
23
+ outputPath: z.ZodString;
24
+ generatedCount: z.ZodNumber;
25
+ skippedCount: z.ZodOptional<z.ZodNumber>;
26
+ rulesPath: z.ZodString;
27
+ skillsDir: z.ZodString;
28
+ skillsGenerated: z.ZodNumber;
29
+ }, z.core.$strip>;
30
+ export type CursorAdapterOptions = z.infer<typeof CursorAdapterOptionsSchema>;
31
+ export type CursorAdapterResult = z.infer<typeof CursorAdapterResultSchema>;
32
+ //# sourceMappingURL=adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../src/schemas/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAQ5B,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;iBASrC,CAAC;AAEH,eAAO,MAAM,yBAAyB;;;;;;;;;iBASpC,CAAC;AAEH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAC9E,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC"}
@@ -0,0 +1,27 @@
1
+ import * as z from 'zod/v4';
2
+ const FilterSchema = z.object({
3
+ categories: z.array(z.string()).optional(),
4
+ tags: z.array(z.string()).optional(),
5
+ ids: z.array(z.string()).optional()
6
+ });
7
+ export const CursorAdapterOptionsSchema = z.object({
8
+ projectDir: z.string().min(1).optional(),
9
+ outputDir: z.string().min(1).optional(),
10
+ filter: FilterSchema.optional(),
11
+ toolFilter: FilterSchema.optional(),
12
+ targetId: z.string().optional(),
13
+ dryRun: z.boolean().optional(),
14
+ global: z.boolean().optional(),
15
+ includeTools: z.boolean().optional()
16
+ });
17
+ export const CursorAdapterResultSchema = z.object({
18
+ success: z.boolean(),
19
+ message: z.string(),
20
+ outputPath: z.string(),
21
+ generatedCount: z.number().int().nonnegative(),
22
+ skippedCount: z.number().int().nonnegative().optional(),
23
+ rulesPath: z.string(),
24
+ skillsDir: z.string(),
25
+ skillsGenerated: z.number().int().nonnegative()
26
+ });
27
+ //# sourceMappingURL=adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../src/schemas/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAE5B,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7B,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC1C,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACpC,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;CACnC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IAClD,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACxC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACvC,MAAM,EAAE,YAAY,CAAC,QAAQ,EAAE;IAC/B,UAAU,EAAE,YAAY,CAAC,QAAQ,EAAE;IACnC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC9B,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC9B,YAAY,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CACpC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IACjD,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;IACpB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;IAC9C,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;IACvD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;CAC/C,CAAC,CAAC"}
@@ -0,0 +1,12 @@
1
+ import * as z from 'zod/v4';
2
+ /** Cursor's JSON MCP document; the manifest declares the mcpServers map. */
3
+ export declare const CursorMcpConfigSchema: z.ZodObject<{
4
+ mcpServers: z.ZodRecord<z.ZodString, z.ZodObject<{
5
+ command: z.ZodOptional<z.ZodString>;
6
+ args: z.ZodOptional<z.ZodArray<z.ZodString>>;
7
+ url: z.ZodOptional<z.ZodString>;
8
+ env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
9
+ }, z.core.$strip>>;
10
+ }, z.core.$strip>;
11
+ export type CursorMcpConfig = z.infer<typeof CursorMcpConfigSchema>;
12
+ //# sourceMappingURL=mcp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../src/schemas/mcp.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAE5B,4EAA4E;AAC5E,eAAO,MAAM,qBAAqB;;;;;;;iBAOhC,CAAC;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC"}
@@ -0,0 +1,11 @@
1
+ import * as z from 'zod/v4';
2
+ /** Cursor's JSON MCP document; the manifest declares the mcpServers map. */
3
+ export const CursorMcpConfigSchema = z.object({
4
+ mcpServers: z.record(z.string(), z.object({
5
+ command: z.string().optional(),
6
+ args: z.array(z.string()).optional(),
7
+ url: z.string().optional(),
8
+ env: z.record(z.string(), z.string()).optional()
9
+ }))
10
+ });
11
+ //# sourceMappingURL=mcp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../src/schemas/mcp.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAE5B,4EAA4E;AAC5E,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC;QACzC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC9B,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;QACpC,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC1B,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;KAChD,CAAC,CAAC;CACH,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,88 @@
1
1
  {
2
2
  "name": "@vibesdotdev/integrations-cursor",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
6
- }
3
+ "version": "1.0.0-rc.1",
4
+ "dependencies": {
5
+ "@vibesdotdev/docs-contracts": "^1.0.0-rc.4",
6
+ "@vibesdotdev/external": "^1.0.0-rc.3",
7
+ "@vibesdotdev/kernel": "^1.0.0-rc.8",
8
+ "@vibesdotdev/filesystem": "^1.0.0-rc.3",
9
+ "@vibesdotdev/paths": "^1.0.0-rc.3",
10
+ "zod": "^4.6.7",
11
+ "@vibesdotdev/tools": "^1.0.0-rc.5"
12
+ },
13
+ "main": "./dist/index.js",
14
+ "exports": {
15
+ ".": {
16
+ "bun": "./dist/index.js",
17
+ "types": "./dist/index.d.ts",
18
+ "import": "./dist/index.js",
19
+ "default": "./dist/index.js"
20
+ },
21
+ "./external": {
22
+ "bun": "./dist/external/index.js",
23
+ "types": "./dist/external/index.d.ts",
24
+ "import": "./dist/external/index.js",
25
+ "default": "./dist/external/index.js"
26
+ },
27
+ "./external/plugin": {
28
+ "bun": "./dist/external/external.plugin.js",
29
+ "types": "./dist/external/external.plugin.d.ts",
30
+ "import": "./dist/external/external.plugin.js",
31
+ "default": "./dist/external/external.plugin.js"
32
+ },
33
+ "./consumer/plugin": {
34
+ "bun": "./dist/external/external.consumer.plugin.js",
35
+ "types": "./dist/external/external.consumer.plugin.d.ts",
36
+ "import": "./dist/external/external.consumer.plugin.js",
37
+ "default": "./dist/external/external.consumer.plugin.js"
38
+ },
39
+ "./adapters": {
40
+ "bun": "./dist/adapters/index.js",
41
+ "types": "./dist/adapters/index.d.ts",
42
+ "import": "./dist/adapters/index.js",
43
+ "default": "./dist/adapters/index.js"
44
+ },
45
+ "./adapters/plugin": {
46
+ "bun": "./dist/adapters/cursor-adapter.plugin.js",
47
+ "types": "./dist/adapters/cursor-adapter.plugin.d.ts",
48
+ "import": "./dist/adapters/cursor-adapter.plugin.js",
49
+ "default": "./dist/adapters/cursor-adapter.plugin.js"
50
+ }
51
+ },
52
+ "files": [
53
+ "dist",
54
+ "README.md",
55
+ "LICENSE"
56
+ ],
57
+ "scripts": {
58
+ "lint": "node ../../node_modules/@vibesdotdev/internal-oxlint-toolchain/ratchet.mjs .",
59
+ "check": "bun --bun tsc -p tsconfig.json --noEmit",
60
+ "test": "bun test src",
61
+ "build": "tsc -p tsconfig.build.json"
62
+ },
63
+ "repository": {
64
+ "type": "git",
65
+ "url": "ssh://git@git.vibes.dev/vibesdotdev/integrations.git",
66
+ "directory": "integrations/cursor"
67
+ },
68
+ "publishConfig": {
69
+ "registry": "https://packages.vibes.dev",
70
+ "access": "public"
71
+ },
72
+ "vibes": {
73
+ "visibility": "public",
74
+ "registry": {
75
+ "repositoryId": "70be51c9-5ab7-4d7e-9f47-801cb17720d8",
76
+ "directory": "integrations/cursor"
77
+ }
78
+ },
79
+ "type": "module",
80
+ "types": "./dist/index.d.ts",
81
+ "license": "BUSL-1.1",
82
+ "gitHead": "fd24c5c4d0c5ae2a7b0af8a7714675b55cac1368",
83
+ "_vibes_source": {
84
+ "repo": "ssh://git@git.vibes.dev/vibesdotdev/integrations.git",
85
+ "sha": "fd24c5c4d0c5ae2a7b0af8a7714675b55cac1368",
86
+ "workspaceDigest": "sha256:fc5d24f64b42237ff0dd65a3d0b4edb337d219cb52bebbffb9d64b5b52205ca0"
87
+ }
88
+ }