@lnai/core 0.6.9 → 0.6.92

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/index.d.ts CHANGED
@@ -290,6 +290,42 @@ declare const claudeCodePlugin: Plugin;
290
290
  */
291
291
  declare const codexPlugin: Plugin;
292
292
 
293
+ /**
294
+ * GitHub Copilot plugin for exporting to .github/ and .vscode/ formats
295
+ *
296
+ * Output structure:
297
+ * - AGENTS.md (symlink -> .ai/AGENTS.md) [at project root]
298
+ * - .github/instructions/<name>.instructions.md (generated from .ai/rules/*.md)
299
+ * - .github/skills/<name>/ (symlink -> ../../.ai/skills/<name>)
300
+ * - .vscode/mcp.json (generated from settings.mcpServers)
301
+ * - .github/<path> (symlink -> ../.ai/.copilot/<path>) for override files
302
+ */
303
+ declare const copilotPlugin: Plugin;
304
+
305
+ /**
306
+ * Cursor IDE plugin for exporting to .cursor/ format
307
+ *
308
+ * Output structure:
309
+ * - AGENTS.md (symlink -> .ai/AGENTS.md) [at project root]
310
+ * - .cursor/rules/<name>.mdc (generated, transformed from .ai/rules/*.md)
311
+ * - .cursor/skills/<name>/ (symlink -> ../../.ai/skills/<name>)
312
+ * - .cursor/mcp.json (generated from settings.mcpServers)
313
+ * - .cursor/<path> (symlink -> ../.ai/.cursor/<path>) for override files
314
+ */
315
+ declare const cursorPlugin: Plugin;
316
+
317
+ /**
318
+ * Gemini CLI / Antigravity plugin for exporting to .gemini/ format
319
+ *
320
+ * Output structure:
321
+ * - AGENTS.md (symlink -> .ai/AGENTS.md) [at project root]
322
+ * - .gemini/settings.json (generated - MCP servers + context.fileName)
323
+ * - .gemini/skills/<name>/ (symlink -> ../../.ai/skills/<name>)
324
+ * - .gemini/<overrides> (symlinks from .ai/.gemini/)
325
+ * - <dir>/GEMINI.md (generated from rules per directory)
326
+ */
327
+ declare const geminiPlugin: Plugin;
328
+
293
329
  /**
294
330
  * OpenCode plugin for exporting to opencode.json format
295
331
  *
@@ -312,6 +348,21 @@ declare class PluginRegistry {
312
348
  }
313
349
  declare const pluginRegistry: PluginRegistry;
314
350
 
351
+ /**
352
+ * Windsurf IDE plugin for exporting to .windsurf/ format
353
+ *
354
+ * Output structure:
355
+ * - AGENTS.md (symlink -> .ai/AGENTS.md) [at project root]
356
+ * - .windsurf/rules/<name>.md (generated, transformed from .ai/rules/*.md)
357
+ * - .windsurf/skills/<name>/ (symlink -> ../../.ai/skills/<name>)
358
+ * - .windsurf/<path> (symlink -> ../.ai/.windsurf/<path>) for override files
359
+ *
360
+ * Not supported (skipped with warning):
361
+ * - MCP servers (Windsurf uses global config at ~/.codeium/windsurf/mcp_config.json)
362
+ * - Permissions (not supported by Windsurf)
363
+ */
364
+ declare const windsurfPlugin: Plugin;
365
+
315
366
  /**
316
367
  * Options for the sync pipeline
317
368
  */
@@ -402,4 +453,4 @@ declare function initUnifiedConfig(options: InitOptions): Promise<InitResult>;
402
453
  declare function hasUnifiedConfig(rootDir: string): Promise<boolean>;
403
454
  declare function generateDefaultConfig(tools?: ToolId[], versionControl?: Record<ToolId, boolean>): Config;
404
455
 
405
- export { CONFIG_DIRS, CONFIG_FILES, type ChangeResult, type Config, FileNotFoundError, type InitOptions, type InitResult, InvalidToolError, LnaiError, type LnaiManifest, MANIFEST_FILENAME, type ManifestEntry, type MarkdownFile, type MarkdownFrontmatter, type McpServer, type OutputFile, ParseError, type PermissionLevel, type Permissions, type Plugin, PluginError, type RuleFrontmatter, type Settings, type SkillFrontmatter, type SkippedFeatureDetail, type SyncOptions, type SyncResult, TOOL_IDS, TOOL_OUTPUT_DIRS, type ToolConfig, type ToolId, type ToolManifest, UNIFIED_DIR, type UnifiedState, ValidationError, type ValidationErrorDetail, type ValidationResult, type ValidationWarningDetail, WriteError, type WriterOptions, buildToolManifest, claudeCodePlugin, cleanupEmptyParentDirs, codexPlugin, computeFilesToDelete, computeHash, configSchema, createEmptyManifest, deleteFiles, generateDefaultConfig, hasUnifiedConfig, initUnifiedConfig, mcpServerSchema, opencodePlugin, parseFrontmatter, parseUnifiedConfig, permissionsSchema, pluginRegistry, readManifest, ruleFrontmatterSchema, runSyncPipeline, settingsSchema, skillFrontmatterSchema, toolConfigSchema, toolIdSchema, updateGitignore, updateToolManifest, validateConfig, validateSettings, validateUnifiedState, writeFiles, writeManifest };
456
+ export { CONFIG_DIRS, CONFIG_FILES, type ChangeResult, type Config, FileNotFoundError, type InitOptions, type InitResult, InvalidToolError, LnaiError, type LnaiManifest, MANIFEST_FILENAME, type ManifestEntry, type MarkdownFile, type MarkdownFrontmatter, type McpServer, type OutputFile, ParseError, type PermissionLevel, type Permissions, type Plugin, PluginError, type RuleFrontmatter, type Settings, type SkillFrontmatter, type SkippedFeatureDetail, type SyncOptions, type SyncResult, TOOL_IDS, TOOL_OUTPUT_DIRS, type ToolConfig, type ToolId, type ToolManifest, UNIFIED_DIR, type UnifiedState, ValidationError, type ValidationErrorDetail, type ValidationResult, type ValidationWarningDetail, WriteError, type WriterOptions, buildToolManifest, claudeCodePlugin, cleanupEmptyParentDirs, codexPlugin, computeFilesToDelete, computeHash, configSchema, copilotPlugin, createEmptyManifest, cursorPlugin, deleteFiles, geminiPlugin, generateDefaultConfig, hasUnifiedConfig, initUnifiedConfig, mcpServerSchema, opencodePlugin, parseFrontmatter, parseUnifiedConfig, permissionsSchema, pluginRegistry, readManifest, ruleFrontmatterSchema, runSyncPipeline, settingsSchema, skillFrontmatterSchema, toolConfigSchema, toolIdSchema, updateGitignore, updateToolManifest, validateConfig, validateSettings, validateUnifiedState, windsurfPlugin, writeFiles, writeManifest };
package/dist/index.js CHANGED
@@ -1611,7 +1611,11 @@ async function updateGitignore(rootDir, paths) {
1611
1611
  );
1612
1612
  content = content.replace(markerRegex, "");
1613
1613
  const baseContent = content.trimEnd();
1614
- const uniquePaths = [...new Set(paths)].sort();
1614
+ const uniquePaths = [
1615
+ ...new Set(
1616
+ paths.map((p) => p.replace(/\\/g, "/")).map((p) => p.includes("/") || p.startsWith(".") ? p : `/${p}`)
1617
+ )
1618
+ ].sort();
1615
1619
  if (uniquePaths.length === 0) {
1616
1620
  if (!hasManagedSection && !hasExistingFile) {
1617
1621
  return;
@@ -1881,4 +1885,4 @@ function generateDefaultConfig(tools, versionControl) {
1881
1885
  return { tools: toolsConfig };
1882
1886
  }
1883
1887
 
1884
- export { CONFIG_DIRS, CONFIG_FILES, FileNotFoundError, InvalidToolError, LnaiError, MANIFEST_FILENAME, ParseError, PluginError, TOOL_IDS, TOOL_OUTPUT_DIRS, UNIFIED_DIR, ValidationError, WriteError, buildToolManifest, claudeCodePlugin, cleanupEmptyParentDirs, codexPlugin, computeFilesToDelete, computeHash, configSchema, createEmptyManifest, deleteFiles, generateDefaultConfig, hasUnifiedConfig, initUnifiedConfig, mcpServerSchema, opencodePlugin, parseFrontmatter, parseUnifiedConfig, permissionsSchema, pluginRegistry, readManifest, ruleFrontmatterSchema, runSyncPipeline, settingsSchema, skillFrontmatterSchema, toolConfigSchema, toolIdSchema, updateGitignore, updateToolManifest, validateConfig, validateSettings, validateUnifiedState, writeFiles, writeManifest };
1888
+ export { CONFIG_DIRS, CONFIG_FILES, FileNotFoundError, InvalidToolError, LnaiError, MANIFEST_FILENAME, ParseError, PluginError, TOOL_IDS, TOOL_OUTPUT_DIRS, UNIFIED_DIR, ValidationError, WriteError, buildToolManifest, claudeCodePlugin, cleanupEmptyParentDirs, codexPlugin, computeFilesToDelete, computeHash, configSchema, copilotPlugin, createEmptyManifest, cursorPlugin, deleteFiles, geminiPlugin, generateDefaultConfig, hasUnifiedConfig, initUnifiedConfig, mcpServerSchema, opencodePlugin, parseFrontmatter, parseUnifiedConfig, permissionsSchema, pluginRegistry, readManifest, ruleFrontmatterSchema, runSyncPipeline, settingsSchema, skillFrontmatterSchema, toolConfigSchema, toolIdSchema, updateGitignore, updateToolManifest, validateConfig, validateSettings, validateUnifiedState, windsurfPlugin, writeFiles, writeManifest };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lnai/core",
3
- "version": "0.6.9",
3
+ "version": "0.6.92",
4
4
  "description": "Core library for LNAI - unified AI config management",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -40,14 +40,14 @@
40
40
  ],
41
41
  "dependencies": {
42
42
  "gray-matter": "^4.0.3",
43
- "zod": "^4.3.6"
43
+ "zod": "^4.4.3"
44
44
  },
45
45
  "devDependencies": {
46
- "@types/node": "^25.0.10",
47
- "eslint": "^9.39.2",
46
+ "@types/node": "^25.9.3",
47
+ "eslint": "^10.4.1",
48
48
  "tsup": "^8.5.1",
49
- "typescript": "^5.9.3",
50
- "vitest": "^4.0.18",
49
+ "typescript": "^6.0.3",
50
+ "vitest": "^4.1.8",
51
51
  "@lnai/typescript-config": "0.1.0"
52
52
  },
53
53
  "scripts": {