@eldrforge/kodrdriv 1.2.138 → 1.3.0

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/types.js CHANGED
@@ -81,6 +81,9 @@ const ConfigSchema = z.object({
81
81
  maxAgenticIterations: z.number().optional(),
82
82
  selfReflection: z.boolean().optional()
83
83
  }).optional(),
84
+ precommit: z.object({
85
+ fix: z.boolean().optional()
86
+ }).optional(),
84
87
  review: z.object({
85
88
  includeCommitHistory: z.boolean().optional(),
86
89
  includeRecentDiffs: z.boolean().optional(),
@@ -158,7 +161,8 @@ const ConfigSchema = z.object({
158
161
  skipPrePublishMerge: z.boolean().optional(),
159
162
  updateDeps: z.string().optional(),
160
163
  agenticPublish: z.boolean().optional(),
161
- agenticPublishMaxIterations: z.number().optional()
164
+ agenticPublishMaxIterations: z.number().optional(),
165
+ skipLinkCleanup: z.boolean().optional()
162
166
  }).optional(),
163
167
  branches: z.record(z.string(), z.object({
164
168
  targetBranch: z.string().optional(),
@@ -204,6 +208,7 @@ const ConfigSchema = z.object({
204
208
  packageArgument: z.string().optional(),
205
209
  cleanNodeModules: z.boolean().optional(),
206
210
  externals: z.array(z.string()).optional(),
211
+ fix: z.boolean().optional(),
207
212
  // Parallel execution options
208
213
  parallel: z.boolean().optional(),
209
214
  maxConcurrency: z.number().optional(),
@@ -239,7 +244,8 @@ const ConfigSchema = z.object({
239
244
  resetPackage: z.string().optional(),
240
245
  statusParallel: z.boolean().optional(),
241
246
  auditBranches: z.boolean().optional(),
242
- validateState: z.boolean().optional()
247
+ validateState: z.boolean().optional(),
248
+ order: z.boolean().optional()
243
249
  }).optional(),
244
250
  development: z.object({
245
251
  targetVersion: z.string().optional(),
@@ -254,8 +260,22 @@ const ConfigSchema = z.object({
254
260
  }).optional(),
255
261
  updates: z.object({
256
262
  scope: z.string().optional(),
263
+ scopes: z.array(z.string()).optional(),
257
264
  directories: z.array(z.string()).optional(),
258
- interProject: z.boolean().optional()
265
+ interProject: z.boolean().optional(),
266
+ report: z.boolean().optional(),
267
+ analyze: z.boolean().optional(),
268
+ strategy: z.enum([
269
+ 'latest',
270
+ 'conservative',
271
+ 'compatible'
272
+ ]).optional()
273
+ }).optional(),
274
+ pull: z.object({
275
+ remote: z.string().optional(),
276
+ branch: z.string().optional(),
277
+ autoStash: z.boolean().optional(),
278
+ autoResolve: z.boolean().optional()
259
279
  }).optional(),
260
280
  excludedPatterns: z.array(z.string()).optional(),
261
281
  traits: z.any().optional(),
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sources":["../src/types.ts"],"sourcesContent":["import * as Cardigantime from '@theunwalked/cardigantime';\nimport { z } from \"zod\";\n\nexport const ConfigSchema = z.object({\n dryRun: z.boolean().optional(),\n verbose: z.boolean().optional(),\n debug: z.boolean().optional(),\n overrides: z.boolean().optional(),\n model: z.string().optional(),\n openaiReasoning: z.enum(['low', 'medium', 'high']).optional(),\n openaiMaxOutputTokens: z.number().optional(),\n contextDirectories: z.array(z.string()).optional(),\n outputDirectory: z.string().optional(),\n preferencesDirectory: z.string().optional(),\n commit: z.object({\n add: z.boolean().optional(),\n cached: z.boolean().optional(),\n sendit: z.boolean().optional(),\n interactive: z.boolean().optional(),\n amend: z.boolean().optional(),\n push: z.union([z.boolean(), z.string()]).optional(),\n messageLimit: z.number().optional(),\n context: z.string().optional(),\n contextFiles: z.array(z.string()).optional(),\n direction: z.string().optional(),\n skipFileCheck: z.boolean().optional(),\n maxDiffBytes: z.number().optional(),\n model: z.string().optional(),\n openaiReasoning: z.enum(['low', 'medium', 'high']).optional(),\n openaiMaxOutputTokens: z.number().optional(),\n // Agentic options (always enabled)\n maxAgenticIterations: z.number().optional(),\n allowCommitSplitting: z.boolean().optional(),\n autoSplit: z.boolean().optional(), // Defaults to true if not specified (see commit.ts)\n toolTimeout: z.number().optional(),\n selfReflection: z.boolean().optional(),\n }).optional(),\n audioCommit: z.object({\n maxRecordingTime: z.number().optional(),\n audioDevice: z.string().optional(),\n file: z.string().optional(),\n keepTemp: z.boolean().optional(),\n model: z.string().optional(),\n openaiReasoning: z.enum(['low', 'medium', 'high']).optional(),\n openaiMaxOutputTokens: z.number().optional(),\n }).optional(),\n release: z.object({\n from: z.string().optional(),\n to: z.string().optional(),\n messageLimit: z.number().optional(),\n context: z.string().optional(),\n contextFiles: z.array(z.string()).optional(),\n interactive: z.boolean().optional(),\n focus: z.string().optional(),\n maxDiffBytes: z.number().optional(),\n model: z.string().optional(),\n openaiReasoning: z.enum(['low', 'medium', 'high']).optional(),\n openaiMaxOutputTokens: z.number().optional(),\n noMilestones: z.boolean().optional(),\n fromMain: z.boolean().optional(),\n currentBranch: z.string().optional(),\n // Agentic options (always enabled)\n maxAgenticIterations: z.number().optional(),\n selfReflection: z.boolean().optional(),\n }).optional(),\n review: z.object({\n includeCommitHistory: z.boolean().optional(),\n includeRecentDiffs: z.boolean().optional(),\n includeReleaseNotes: z.boolean().optional(),\n includeGithubIssues: z.boolean().optional(),\n commitHistoryLimit: z.number().optional(),\n diffHistoryLimit: z.number().optional(),\n releaseNotesLimit: z.number().optional(),\n githubIssuesLimit: z.number().optional(),\n context: z.string().optional(),\n sendit: z.boolean().optional(),\n note: z.string().optional(),\n editorTimeout: z.number().optional(),\n maxContextErrors: z.number().optional(),\n model: z.string().optional(),\n openaiReasoning: z.enum(['low', 'medium', 'high']).optional(),\n openaiMaxOutputTokens: z.number().optional(),\n file: z.string().optional(), // File path to read review note from\n directory: z.string().optional(), // Directory to process multiple review files\n }).optional(),\n audioReview: z.object({\n includeCommitHistory: z.boolean().optional(),\n includeRecentDiffs: z.boolean().optional(),\n includeReleaseNotes: z.boolean().optional(),\n includeGithubIssues: z.boolean().optional(),\n commitHistoryLimit: z.number().optional(),\n diffHistoryLimit: z.number().optional(),\n releaseNotesLimit: z.number().optional(),\n githubIssuesLimit: z.number().optional(),\n context: z.string().optional(),\n sendit: z.boolean().optional(),\n maxRecordingTime: z.number().optional(),\n audioDevice: z.string().optional(),\n file: z.string().optional(),\n directory: z.string().optional(),\n keepTemp: z.boolean().optional(),\n model: z.string().optional(),\n openaiReasoning: z.enum(['low', 'medium', 'high']).optional(),\n openaiMaxOutputTokens: z.number().optional(),\n }).optional(),\n publish: z.object({\n mergeMethod: z.enum(['merge', 'squash', 'rebase']).optional(),\n from: z.string().optional(),\n targetVersion: z.string().optional(),\n interactive: z.boolean().optional(),\n skipAlreadyPublished: z.boolean().optional(),\n forceRepublish: z.boolean().optional(),\n dependencyUpdatePatterns: z.array(z.string()).optional(),\n scopedDependencyUpdates: z.array(z.string()).optional(),\n requiredEnvVars: z.array(z.string()).optional(),\n linkWorkspacePackages: z.boolean().optional(),\n unlinkWorkspacePackages: z.boolean().optional(),\n checksTimeout: z.number().optional(),\n skipUserConfirmation: z.boolean().optional(),\n syncTarget: z.boolean().optional(),\n sendit: z.boolean().optional(),\n waitForReleaseWorkflows: z.boolean().optional(),\n releaseWorkflowsTimeout: z.number().optional(),\n releaseWorkflowNames: z.array(z.string()).optional(),\n targetBranch: z.string().optional(),\n noMilestones: z.boolean().optional(),\n fromMain: z.boolean().optional(),\n skipPrePublishMerge: z.boolean().optional(),\n updateDeps: z.string().optional(),\n agenticPublish: z.boolean().optional(),\n agenticPublishMaxIterations: z.number().optional(),\n }).optional(),\n branches: z.record(z.string(), z.object({\n targetBranch: z.string().optional(),\n developmentBranch: z.boolean().optional(),\n version: z.object({\n type: z.enum(['release', 'prerelease']),\n increment: z.boolean().optional(),\n incrementLevel: z.enum(['patch', 'minor', 'major']).optional(),\n tag: z.string().optional(),\n }).optional(),\n })).optional(),\n link: z.object({\n scopeRoots: z.record(z.string(), z.string()).optional(),\n dryRun: z.boolean().optional(),\n packageArgument: z.string().optional(),\n externals: z.array(z.string()).optional(),\n }).optional(),\n unlink: z.object({\n scopeRoots: z.record(z.string(), z.string()).optional(),\n workspaceFile: z.string().optional(),\n dryRun: z.boolean().optional(),\n cleanNodeModules: z.boolean().optional(),\n packageArgument: z.string().optional(),\n externals: z.array(z.string()).optional(),\n }).optional(),\n tree: z.object({\n directories: z.array(z.string()).optional(),\n exclude: z.array(z.string()).optional(),\n startFrom: z.string().optional(),\n stopAt: z.string().optional(),\n cmd: z.string().optional(),\n builtInCommand: z.string().optional(),\n continue: z.boolean().optional(),\n status: z.boolean().optional(),\n promote: z.string().optional(),\n packageArgument: z.string().optional(),\n cleanNodeModules: z.boolean().optional(),\n externals: z.array(z.string()).optional(),\n // Parallel execution options\n parallel: z.boolean().optional(),\n maxConcurrency: z.number().optional(),\n retry: z.object({\n maxAttempts: z.number().optional(),\n initialDelayMs: z.number().optional(),\n maxDelayMs: z.number().optional(),\n backoffMultiplier: z.number().optional(),\n retriableErrors: z.array(z.string()).optional(),\n }).optional(),\n recovery: z.object({\n checkpointInterval: z.enum(['package', 'batch']).optional(),\n autoRetry: z.boolean().optional(),\n continueOnError: z.boolean().optional(),\n }).optional(),\n monitoring: z.object({\n showProgress: z.boolean().optional(),\n showMetrics: z.boolean().optional(),\n logLevel: z.enum(['minimal', 'normal', 'verbose']).optional(),\n }).optional(),\n // Recovery options\n markCompleted: z.array(z.string()).optional(),\n skipPackages: z.array(z.string()).optional(),\n retryFailed: z.boolean().optional(),\n skipFailed: z.boolean().optional(),\n resetPackage: z.string().optional(),\n statusParallel: z.boolean().optional(),\n auditBranches: z.boolean().optional(),\n validateState: z.boolean().optional(),\n }).optional(),\n development: z.object({\n targetVersion: z.string().optional(),\n noMilestones: z.boolean().optional(),\n tagWorkingBranch: z.boolean().optional(),\n createRetroactiveTags: z.boolean().optional(),\n workingTagPrefix: z.string().optional(),\n }).optional(),\n versions: z.object({\n subcommand: z.string().optional(),\n directories: z.array(z.string()).optional(),\n }).optional(),\n updates: z.object({\n scope: z.string().optional(),\n directories: z.array(z.string()).optional(),\n interProject: z.boolean().optional(),\n }).optional(),\n excludedPatterns: z.array(z.string()).optional(),\n traits: z.any().optional(), // Add traits property for cardigantime compatibility\n stopContext: z.object({\n enabled: z.boolean().optional(),\n strings: z.array(z.string()).optional(),\n patterns: z.array(z.object({\n regex: z.string(),\n flags: z.string().optional(),\n description: z.string().optional(),\n })).optional(),\n caseSensitive: z.boolean().optional(),\n replacement: z.string().optional(),\n warnOnFilter: z.boolean().optional(),\n }).optional(),\n});\n\nexport const SecureConfigSchema = z.object({\n openaiApiKey: z.string().optional(),\n});\n\nexport const CommandConfigSchema = z.object({\n commandName: z.string().optional(),\n});\n\nexport type Config = z.infer<typeof ConfigSchema> & Cardigantime.Config;\nexport type SecureConfig = z.infer<typeof SecureConfigSchema>;\nexport type CommandConfig = z.infer<typeof CommandConfigSchema>;\n\nexport type MergeMethod = 'merge' | 'squash' | 'rebase';\n\nexport interface PullRequest {\n html_url: string;\n number: number;\n labels?: {\n name: string;\n }[];\n}\n\nexport type ReleaseSummary = {\n title: string;\n body: string;\n}\n\nexport type ReleaseConfig = {\n from?: string;\n to?: string;\n context?: string;\n contextFiles?: string[]; // Additional context from files\n interactive?: boolean;\n focus?: string;\n messageLimit?: number;\n maxDiffBytes?: number;\n model?: string;\n openaiReasoning?: 'low' | 'medium' | 'high';\n openaiMaxOutputTokens?: number;\n currentBranch?: string;\n // Agentic options (always enabled)\n maxAgenticIterations?: number;\n selfReflection?: boolean;\n}\n\nexport type ReviewConfig = {\n includeCommitHistory?: boolean;\n includeRecentDiffs?: boolean;\n includeReleaseNotes?: boolean;\n includeGithubIssues?: boolean;\n commitHistoryLimit?: number;\n diffHistoryLimit?: number;\n releaseNotesLimit?: number;\n githubIssuesLimit?: number;\n context?: string;\n sendit?: boolean;\n note?: string;\n editorTimeout?: number;\n maxContextErrors?: number;\n model?: string;\n openaiReasoning?: 'low' | 'medium' | 'high';\n openaiMaxOutputTokens?: number;\n}\n\nexport type AudioReviewConfig = {\n includeCommitHistory?: boolean;\n includeRecentDiffs?: boolean;\n includeReleaseNotes?: boolean;\n includeGithubIssues?: boolean;\n commitHistoryLimit?: number;\n diffHistoryLimit?: number;\n releaseNotesLimit?: number;\n githubIssuesLimit?: number;\n context?: string;\n sendit?: boolean;\n maxRecordingTime?: number;\n audioDevice?: string;\n file?: string;\n directory?: string;\n keepTemp?: boolean;\n model?: string;\n openaiReasoning?: 'low' | 'medium' | 'high';\n openaiMaxOutputTokens?: number;\n}\n\nexport type CommitConfig = {\n add?: boolean;\n cached?: boolean;\n sendit?: boolean;\n interactive?: boolean;\n amend?: boolean;\n push?: string | boolean;\n messageLimit?: number;\n context?: string;\n contextFiles?: string[]; // Additional context from files\n direction?: string;\n skipFileCheck?: boolean;\n maxDiffBytes?: number;\n model?: string;\n openaiReasoning?: 'low' | 'medium' | 'high';\n openaiMaxOutputTokens?: number;\n // Agentic options (always enabled)\n maxAgenticIterations?: number;\n allowCommitSplitting?: boolean;\n autoSplit?: boolean;\n toolTimeout?: number;\n selfReflection?: boolean;\n}\n\nexport type AudioCommitConfig = {\n maxRecordingTime?: number;\n audioDevice?: string;\n file?: string;\n keepTemp?: boolean;\n model?: string;\n openaiReasoning?: 'low' | 'medium' | 'high';\n openaiMaxOutputTokens?: number;\n}\n\nexport type LinkConfig = {\n scopeRoots?: Record<string, string>;\n dryRun?: boolean;\n packageArgument?: string;\n externalLinkPatterns?: string[];\n}\n\nexport type UnlinkConfig = {\n scopeRoots?: Record<string, string>;\n workspaceFile?: string;\n dryRun?: boolean;\n cleanNodeModules?: boolean;\n packageArgument?: string;\n}\n\nexport type PublishConfig = {\n mergeMethod?: 'merge' | 'squash' | 'rebase';\n from?: string;\n targetVersion?: string;\n interactive?: boolean;\n skipAlreadyPublished?: boolean;\n forceRepublish?: boolean;\n syncTarget?: boolean;\n dependencyUpdatePatterns?: string[];\n scopedDependencyUpdates?: string[];\n requiredEnvVars?: string[];\n linkWorkspacePackages?: boolean;\n unlinkWorkspacePackages?: boolean;\n checksTimeout?: number;\n skipUserConfirmation?: boolean;\n sendit?: boolean;\n waitForReleaseWorkflows?: boolean;\n releaseWorkflowsTimeout?: number;\n releaseWorkflowNames?: string[];\n targetBranch?: string;\n noMilestones?: boolean;\n updateDeps?: string; // scope for inter-project dependency updates (e.g., '@fjell')\n agenticPublish?: boolean; // use AI agent to automatically diagnose and fix publish issues\n agenticPublishMaxIterations?: number; // maximum iterations for agentic publish (default: 10)\n}\n\nexport type VersionTargetConfig = {\n type: 'release' | 'prerelease';\n increment?: boolean;\n tag?: string;\n}\n\nexport type BranchTargetConfig = {\n targetBranch: string;\n developmentBranch?: boolean;\n version?: VersionTargetConfig;\n}\n\nexport type TargetsConfig = Record<string, BranchTargetConfig>;\n\nexport type TreeConfig = {\n directories?: string[];\n excludedPatterns?: string[];\n exclude?: string[]; // Alias for excludedPatterns\n startFrom?: string;\n stopAt?: string;\n cmd?: string;\n\n builtInCommand?: string;\n continue?: boolean; // Continue from previous tree publish execution\n status?: boolean; // Check status of running tree publish processes\n promote?: string; // Mark a package as completed in the execution context\n packageArgument?: string; // Package argument for link/unlink commands (e.g., \"@fjell\" or \"@fjell/core\")\n cleanNodeModules?: boolean; // For unlink command: remove node_modules and package-lock.json, then reinstall dependencies\n externalLinkPatterns?: string[];\n externals?: string[]; // Alias for externalLinkPatterns\n\n // Parallel execution options\n parallel?: boolean;\n maxConcurrency?: number;\n retry?: {\n maxAttempts: number;\n initialDelayMs: number;\n maxDelayMs: number;\n backoffMultiplier: number;\n retriableErrors?: string[];\n };\n recovery?: {\n checkpointInterval: 'package' | 'batch';\n autoRetry: boolean;\n continueOnError: boolean;\n };\n monitoring?: {\n showProgress: boolean;\n showMetrics: boolean;\n logLevel: 'minimal' | 'normal' | 'verbose';\n };\n\n // Recovery options\n markCompleted?: string[];\n skipPackages?: string[];\n retryFailed?: boolean;\n skipFailed?: boolean;\n resetPackage?: string;\n statusParallel?: boolean;\n auditBranches?: boolean;\n validateState?: boolean;\n}\n\nexport type DevelopmentConfig = {\n targetVersion?: string; // 'patch', 'minor', 'major', or explicit version like '2.1.0' (default: 'patch')\n noMilestones?: boolean; // Disable GitHub milestone integration\n tagWorkingBranch?: boolean; // Tag working branch with release version before bumping to dev (default: true)\n createRetroactiveTags?: boolean; // Create tags for past releases found in git history (default: false)\n workingTagPrefix?: string; // Tag prefix for working branch tags (default: 'working/')\n}\n\nexport type VersionsConfig = {\n subcommand?: string; // 'minor' or other versioning strategies\n directories?: string[]; // directories to scan for packages\n}\n\nexport type UpdatesConfig = {\n scope?: string; // npm scope to update (e.g., '@fjell', '@getdidthey')\n directories?: string[]; // directories to scan for packages (tree mode)\n interProject?: boolean; // update inter-project dependencies based on tree state\n}\n\nexport type StopContextPattern = {\n regex: string;\n flags?: string;\n description?: string;\n}\n\nexport type StopContextConfig = {\n enabled?: boolean;\n strings?: string[];\n patterns?: StopContextPattern[];\n caseSensitive?: boolean;\n replacement?: string;\n warnOnFilter?: boolean;\n}\n"],"names":["ConfigSchema","z","object","dryRun","boolean","optional","verbose","debug","overrides","model","string","openaiReasoning","enum","openaiMaxOutputTokens","number","contextDirectories","array","outputDirectory","preferencesDirectory","commit","add","cached","sendit","interactive","amend","push","union","messageLimit","context","contextFiles","direction","skipFileCheck","maxDiffBytes","maxAgenticIterations","allowCommitSplitting","autoSplit","toolTimeout","selfReflection","audioCommit","maxRecordingTime","audioDevice","file","keepTemp","release","from","to","focus","noMilestones","fromMain","currentBranch","review","includeCommitHistory","includeRecentDiffs","includeReleaseNotes","includeGithubIssues","commitHistoryLimit","diffHistoryLimit","releaseNotesLimit","githubIssuesLimit","note","editorTimeout","maxContextErrors","directory","audioReview","publish","mergeMethod","targetVersion","skipAlreadyPublished","forceRepublish","dependencyUpdatePatterns","scopedDependencyUpdates","requiredEnvVars","linkWorkspacePackages","unlinkWorkspacePackages","checksTimeout","skipUserConfirmation","syncTarget","waitForReleaseWorkflows","releaseWorkflowsTimeout","releaseWorkflowNames","targetBranch","skipPrePublishMerge","updateDeps","agenticPublish","agenticPublishMaxIterations","branches","record","developmentBranch","version","type","increment","incrementLevel","tag","link","scopeRoots","packageArgument","externals","unlink","workspaceFile","cleanNodeModules","tree","directories","exclude","startFrom","stopAt","cmd","builtInCommand","continue","status","promote","parallel","maxConcurrency","retry","maxAttempts","initialDelayMs","maxDelayMs","backoffMultiplier","retriableErrors","recovery","checkpointInterval","autoRetry","continueOnError","monitoring","showProgress","showMetrics","logLevel","markCompleted","skipPackages","retryFailed","skipFailed","resetPackage","statusParallel","auditBranches","validateState","development","tagWorkingBranch","createRetroactiveTags","workingTagPrefix","versions","subcommand","updates","scope","interProject","excludedPatterns","traits","any","stopContext","enabled","strings","patterns","regex","flags","description","caseSensitive","replacement","warnOnFilter","openaiApiKey","commandName"],"mappings":"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"}
1
+ {"version":3,"file":"types.js","sources":["../src/types.ts"],"sourcesContent":["import * as Cardigantime from '@theunwalked/cardigantime';\nimport { z } from \"zod\";\n\nexport const ConfigSchema = z.object({\n dryRun: z.boolean().optional(),\n verbose: z.boolean().optional(),\n debug: z.boolean().optional(),\n overrides: z.boolean().optional(),\n model: z.string().optional(),\n openaiReasoning: z.enum(['low', 'medium', 'high']).optional(),\n openaiMaxOutputTokens: z.number().optional(),\n contextDirectories: z.array(z.string()).optional(),\n outputDirectory: z.string().optional(),\n preferencesDirectory: z.string().optional(),\n commit: z.object({\n add: z.boolean().optional(),\n cached: z.boolean().optional(),\n sendit: z.boolean().optional(),\n interactive: z.boolean().optional(),\n amend: z.boolean().optional(),\n push: z.union([z.boolean(), z.string()]).optional(),\n messageLimit: z.number().optional(),\n context: z.string().optional(),\n contextFiles: z.array(z.string()).optional(),\n direction: z.string().optional(),\n skipFileCheck: z.boolean().optional(),\n maxDiffBytes: z.number().optional(),\n model: z.string().optional(),\n openaiReasoning: z.enum(['low', 'medium', 'high']).optional(),\n openaiMaxOutputTokens: z.number().optional(),\n // Agentic options (always enabled)\n maxAgenticIterations: z.number().optional(),\n allowCommitSplitting: z.boolean().optional(),\n autoSplit: z.boolean().optional(), // Defaults to true if not specified (see commit.ts)\n toolTimeout: z.number().optional(),\n selfReflection: z.boolean().optional(),\n }).optional(),\n audioCommit: z.object({\n maxRecordingTime: z.number().optional(),\n audioDevice: z.string().optional(),\n file: z.string().optional(),\n keepTemp: z.boolean().optional(),\n model: z.string().optional(),\n openaiReasoning: z.enum(['low', 'medium', 'high']).optional(),\n openaiMaxOutputTokens: z.number().optional(),\n }).optional(),\n release: z.object({\n from: z.string().optional(),\n to: z.string().optional(),\n messageLimit: z.number().optional(),\n context: z.string().optional(),\n contextFiles: z.array(z.string()).optional(),\n interactive: z.boolean().optional(),\n focus: z.string().optional(),\n maxDiffBytes: z.number().optional(),\n model: z.string().optional(),\n openaiReasoning: z.enum(['low', 'medium', 'high']).optional(),\n openaiMaxOutputTokens: z.number().optional(),\n noMilestones: z.boolean().optional(),\n fromMain: z.boolean().optional(),\n currentBranch: z.string().optional(),\n // Agentic options (always enabled)\n maxAgenticIterations: z.number().optional(),\n selfReflection: z.boolean().optional(),\n }).optional(),\n precommit: z.object({\n fix: z.boolean().optional(),\n }).optional(),\n review: z.object({\n includeCommitHistory: z.boolean().optional(),\n includeRecentDiffs: z.boolean().optional(),\n includeReleaseNotes: z.boolean().optional(),\n includeGithubIssues: z.boolean().optional(),\n commitHistoryLimit: z.number().optional(),\n diffHistoryLimit: z.number().optional(),\n releaseNotesLimit: z.number().optional(),\n githubIssuesLimit: z.number().optional(),\n context: z.string().optional(),\n sendit: z.boolean().optional(),\n note: z.string().optional(),\n editorTimeout: z.number().optional(),\n maxContextErrors: z.number().optional(),\n model: z.string().optional(),\n openaiReasoning: z.enum(['low', 'medium', 'high']).optional(),\n openaiMaxOutputTokens: z.number().optional(),\n file: z.string().optional(), // File path to read review note from\n directory: z.string().optional(), // Directory to process multiple review files\n }).optional(),\n audioReview: z.object({\n includeCommitHistory: z.boolean().optional(),\n includeRecentDiffs: z.boolean().optional(),\n includeReleaseNotes: z.boolean().optional(),\n includeGithubIssues: z.boolean().optional(),\n commitHistoryLimit: z.number().optional(),\n diffHistoryLimit: z.number().optional(),\n releaseNotesLimit: z.number().optional(),\n githubIssuesLimit: z.number().optional(),\n context: z.string().optional(),\n sendit: z.boolean().optional(),\n maxRecordingTime: z.number().optional(),\n audioDevice: z.string().optional(),\n file: z.string().optional(),\n directory: z.string().optional(),\n keepTemp: z.boolean().optional(),\n model: z.string().optional(),\n openaiReasoning: z.enum(['low', 'medium', 'high']).optional(),\n openaiMaxOutputTokens: z.number().optional(),\n }).optional(),\n publish: z.object({\n mergeMethod: z.enum(['merge', 'squash', 'rebase']).optional(),\n from: z.string().optional(),\n targetVersion: z.string().optional(),\n interactive: z.boolean().optional(),\n skipAlreadyPublished: z.boolean().optional(),\n forceRepublish: z.boolean().optional(),\n dependencyUpdatePatterns: z.array(z.string()).optional(),\n scopedDependencyUpdates: z.array(z.string()).optional(),\n requiredEnvVars: z.array(z.string()).optional(),\n linkWorkspacePackages: z.boolean().optional(),\n unlinkWorkspacePackages: z.boolean().optional(),\n checksTimeout: z.number().optional(),\n skipUserConfirmation: z.boolean().optional(),\n syncTarget: z.boolean().optional(),\n sendit: z.boolean().optional(),\n waitForReleaseWorkflows: z.boolean().optional(),\n releaseWorkflowsTimeout: z.number().optional(),\n releaseWorkflowNames: z.array(z.string()).optional(),\n targetBranch: z.string().optional(),\n noMilestones: z.boolean().optional(),\n fromMain: z.boolean().optional(),\n skipPrePublishMerge: z.boolean().optional(),\n updateDeps: z.string().optional(),\n agenticPublish: z.boolean().optional(),\n agenticPublishMaxIterations: z.number().optional(),\n skipLinkCleanup: z.boolean().optional(),\n }).optional(),\n branches: z.record(z.string(), z.object({\n targetBranch: z.string().optional(),\n developmentBranch: z.boolean().optional(),\n version: z.object({\n type: z.enum(['release', 'prerelease']),\n increment: z.boolean().optional(),\n incrementLevel: z.enum(['patch', 'minor', 'major']).optional(),\n tag: z.string().optional(),\n }).optional(),\n })).optional(),\n link: z.object({\n scopeRoots: z.record(z.string(), z.string()).optional(),\n dryRun: z.boolean().optional(),\n packageArgument: z.string().optional(),\n externals: z.array(z.string()).optional(),\n }).optional(),\n unlink: z.object({\n scopeRoots: z.record(z.string(), z.string()).optional(),\n workspaceFile: z.string().optional(),\n dryRun: z.boolean().optional(),\n cleanNodeModules: z.boolean().optional(),\n packageArgument: z.string().optional(),\n externals: z.array(z.string()).optional(),\n }).optional(),\n tree: z.object({\n directories: z.array(z.string()).optional(),\n exclude: z.array(z.string()).optional(),\n startFrom: z.string().optional(),\n stopAt: z.string().optional(),\n cmd: z.string().optional(),\n builtInCommand: z.string().optional(),\n continue: z.boolean().optional(),\n status: z.boolean().optional(),\n promote: z.string().optional(),\n packageArgument: z.string().optional(),\n cleanNodeModules: z.boolean().optional(),\n externals: z.array(z.string()).optional(),\n fix: z.boolean().optional(),\n // Parallel execution options\n parallel: z.boolean().optional(),\n maxConcurrency: z.number().optional(),\n retry: z.object({\n maxAttempts: z.number().optional(),\n initialDelayMs: z.number().optional(),\n maxDelayMs: z.number().optional(),\n backoffMultiplier: z.number().optional(),\n retriableErrors: z.array(z.string()).optional(),\n }).optional(),\n recovery: z.object({\n checkpointInterval: z.enum(['package', 'batch']).optional(),\n autoRetry: z.boolean().optional(),\n continueOnError: z.boolean().optional(),\n }).optional(),\n monitoring: z.object({\n showProgress: z.boolean().optional(),\n showMetrics: z.boolean().optional(),\n logLevel: z.enum(['minimal', 'normal', 'verbose']).optional(),\n }).optional(),\n // Recovery options\n markCompleted: z.array(z.string()).optional(),\n skipPackages: z.array(z.string()).optional(),\n retryFailed: z.boolean().optional(),\n skipFailed: z.boolean().optional(),\n resetPackage: z.string().optional(),\n statusParallel: z.boolean().optional(),\n auditBranches: z.boolean().optional(),\n validateState: z.boolean().optional(),\n order: z.boolean().optional(),\n }).optional(),\n development: z.object({\n targetVersion: z.string().optional(),\n noMilestones: z.boolean().optional(),\n tagWorkingBranch: z.boolean().optional(),\n createRetroactiveTags: z.boolean().optional(),\n workingTagPrefix: z.string().optional(),\n }).optional(),\n versions: z.object({\n subcommand: z.string().optional(),\n directories: z.array(z.string()).optional(),\n }).optional(),\n updates: z.object({\n scope: z.string().optional(),\n scopes: z.array(z.string()).optional(), // Default scopes to check when no scope provided\n directories: z.array(z.string()).optional(),\n interProject: z.boolean().optional(),\n report: z.boolean().optional(), // Generate dependency analysis report\n analyze: z.boolean().optional(), // Run AI-powered dependency analysis\n strategy: z.enum(['latest', 'conservative', 'compatible']).optional(), // Strategy for analyze\n }).optional(),\n pull: z.object({\n remote: z.string().optional(), // Remote to pull from (default: 'origin')\n branch: z.string().optional(), // Branch to pull (default: current branch)\n autoStash: z.boolean().optional(), // Auto-stash local changes\n autoResolve: z.boolean().optional(), // Auto-resolve common conflicts\n }).optional(),\n excludedPatterns: z.array(z.string()).optional(),\n traits: z.any().optional(), // Add traits property for cardigantime compatibility\n stopContext: z.object({\n enabled: z.boolean().optional(),\n strings: z.array(z.string()).optional(),\n patterns: z.array(z.object({\n regex: z.string(),\n flags: z.string().optional(),\n description: z.string().optional(),\n })).optional(),\n caseSensitive: z.boolean().optional(),\n replacement: z.string().optional(),\n warnOnFilter: z.boolean().optional(),\n }).optional(),\n});\n\nexport const SecureConfigSchema = z.object({\n openaiApiKey: z.string().optional(),\n});\n\nexport const CommandConfigSchema = z.object({\n commandName: z.string().optional(),\n});\n\nexport type Config = z.infer<typeof ConfigSchema> & Cardigantime.Config;\nexport type SecureConfig = z.infer<typeof SecureConfigSchema>;\nexport type CommandConfig = z.infer<typeof CommandConfigSchema>;\n\nexport type MergeMethod = 'merge' | 'squash' | 'rebase';\n\nexport interface PullRequest {\n html_url: string;\n number: number;\n labels?: {\n name: string;\n }[];\n}\n\nexport type ReleaseSummary = {\n title: string;\n body: string;\n}\n\nexport type ReleaseConfig = {\n from?: string;\n to?: string;\n context?: string;\n contextFiles?: string[]; // Additional context from files\n interactive?: boolean;\n focus?: string;\n messageLimit?: number;\n maxDiffBytes?: number;\n model?: string;\n openaiReasoning?: 'low' | 'medium' | 'high';\n openaiMaxOutputTokens?: number;\n currentBranch?: string;\n // Agentic options (always enabled)\n maxAgenticIterations?: number;\n selfReflection?: boolean;\n}\n\nexport type ReviewConfig = {\n includeCommitHistory?: boolean;\n includeRecentDiffs?: boolean;\n includeReleaseNotes?: boolean;\n includeGithubIssues?: boolean;\n commitHistoryLimit?: number;\n diffHistoryLimit?: number;\n releaseNotesLimit?: number;\n githubIssuesLimit?: number;\n context?: string;\n sendit?: boolean;\n note?: string;\n editorTimeout?: number;\n maxContextErrors?: number;\n model?: string;\n openaiReasoning?: 'low' | 'medium' | 'high';\n openaiMaxOutputTokens?: number;\n}\n\nexport type AudioReviewConfig = {\n includeCommitHistory?: boolean;\n includeRecentDiffs?: boolean;\n includeReleaseNotes?: boolean;\n includeGithubIssues?: boolean;\n commitHistoryLimit?: number;\n diffHistoryLimit?: number;\n releaseNotesLimit?: number;\n githubIssuesLimit?: number;\n context?: string;\n sendit?: boolean;\n maxRecordingTime?: number;\n audioDevice?: string;\n file?: string;\n directory?: string;\n keepTemp?: boolean;\n model?: string;\n openaiReasoning?: 'low' | 'medium' | 'high';\n openaiMaxOutputTokens?: number;\n}\n\nexport type CommitConfig = {\n add?: boolean;\n cached?: boolean;\n sendit?: boolean;\n interactive?: boolean;\n amend?: boolean;\n push?: string | boolean;\n messageLimit?: number;\n context?: string;\n contextFiles?: string[]; // Additional context from files\n direction?: string;\n skipFileCheck?: boolean;\n maxDiffBytes?: number;\n model?: string;\n openaiReasoning?: 'low' | 'medium' | 'high';\n openaiMaxOutputTokens?: number;\n // Agentic options (always enabled)\n maxAgenticIterations?: number;\n allowCommitSplitting?: boolean;\n autoSplit?: boolean;\n toolTimeout?: number;\n selfReflection?: boolean;\n}\n\nexport type AudioCommitConfig = {\n maxRecordingTime?: number;\n audioDevice?: string;\n file?: string;\n keepTemp?: boolean;\n model?: string;\n openaiReasoning?: 'low' | 'medium' | 'high';\n openaiMaxOutputTokens?: number;\n}\n\nexport type LinkConfig = {\n scopeRoots?: Record<string, string>;\n dryRun?: boolean;\n packageArgument?: string;\n externalLinkPatterns?: string[];\n}\n\nexport type UnlinkConfig = {\n scopeRoots?: Record<string, string>;\n workspaceFile?: string;\n dryRun?: boolean;\n cleanNodeModules?: boolean;\n packageArgument?: string;\n}\n\nexport type PublishConfig = {\n mergeMethod?: 'merge' | 'squash' | 'rebase';\n from?: string;\n targetVersion?: string;\n interactive?: boolean;\n skipAlreadyPublished?: boolean;\n forceRepublish?: boolean;\n syncTarget?: boolean;\n dependencyUpdatePatterns?: string[];\n scopedDependencyUpdates?: string[];\n requiredEnvVars?: string[];\n linkWorkspacePackages?: boolean;\n unlinkWorkspacePackages?: boolean;\n checksTimeout?: number;\n skipUserConfirmation?: boolean;\n sendit?: boolean;\n waitForReleaseWorkflows?: boolean;\n releaseWorkflowsTimeout?: number;\n releaseWorkflowNames?: string[];\n targetBranch?: string;\n noMilestones?: boolean;\n updateDeps?: string; // scope for inter-project dependency updates (e.g., '@fjell')\n agenticPublish?: boolean; // use AI agent to automatically diagnose and fix publish issues\n agenticPublishMaxIterations?: number; // maximum iterations for agentic publish (default: 10)\n}\n\nexport type VersionTargetConfig = {\n type: 'release' | 'prerelease';\n increment?: boolean;\n tag?: string;\n}\n\nexport type BranchTargetConfig = {\n targetBranch: string;\n developmentBranch?: boolean;\n version?: VersionTargetConfig;\n}\n\nexport type TargetsConfig = Record<string, BranchTargetConfig>;\n\nexport type TreeConfig = {\n directories?: string[];\n excludedPatterns?: string[];\n exclude?: string[]; // Alias for excludedPatterns\n startFrom?: string;\n stopAt?: string;\n cmd?: string;\n\n builtInCommand?: string;\n continue?: boolean; // Continue from previous tree publish execution\n status?: boolean; // Check status of running tree publish processes\n promote?: string; // Mark a package as completed in the execution context\n packageArgument?: string; // Package argument for link/unlink commands (e.g., \"@fjell\" or \"@fjell/core\")\n cleanNodeModules?: boolean; // For unlink command: remove node_modules and package-lock.json, then reinstall dependencies\n externalLinkPatterns?: string[];\n externals?: string[]; // Alias for externalLinkPatterns\n\n // Parallel execution options\n parallel?: boolean;\n maxConcurrency?: number;\n retry?: {\n maxAttempts: number;\n initialDelayMs: number;\n maxDelayMs: number;\n backoffMultiplier: number;\n retriableErrors?: string[];\n };\n recovery?: {\n checkpointInterval: 'package' | 'batch';\n autoRetry: boolean;\n continueOnError: boolean;\n };\n monitoring?: {\n showProgress: boolean;\n showMetrics: boolean;\n logLevel: 'minimal' | 'normal' | 'verbose';\n };\n\n // Recovery options\n markCompleted?: string[];\n skipPackages?: string[];\n retryFailed?: boolean;\n skipFailed?: boolean;\n resetPackage?: string;\n statusParallel?: boolean;\n auditBranches?: boolean;\n validateState?: boolean;\n order?: boolean;\n}\n\nexport type DevelopmentConfig = {\n targetVersion?: string; // 'patch', 'minor', 'major', or explicit version like '2.1.0' (default: 'patch')\n noMilestones?: boolean; // Disable GitHub milestone integration\n tagWorkingBranch?: boolean; // Tag working branch with release version before bumping to dev (default: true)\n createRetroactiveTags?: boolean; // Create tags for past releases found in git history (default: false)\n workingTagPrefix?: string; // Tag prefix for working branch tags (default: 'working/')\n}\n\nexport type VersionsConfig = {\n subcommand?: string; // 'minor' or other versioning strategies\n directories?: string[]; // directories to scan for packages\n}\n\nexport type UpdatesConfig = {\n scope?: string; // npm scope to update (e.g., '@fjell', '@getdidthey')\n scopes?: string[]; // Default scopes to check when no scope is provided\n directories?: string[]; // directories to scan for packages (tree mode)\n interProject?: boolean; // update inter-project dependencies based on tree state\n report?: boolean; // Generate dependency analysis report instead of updating\n analyze?: boolean; // Run AI-powered dependency analysis\n strategy?: 'latest' | 'conservative' | 'compatible'; // Strategy for analyze mode\n}\n\nexport type PullConfig = {\n remote?: string; // Remote to pull from (default: 'origin')\n branch?: string; // Branch to pull (default: current branch)\n autoStash?: boolean; // Auto-stash local changes (default: true)\n autoResolve?: boolean; // Auto-resolve common conflicts (default: true)\n}\n\nexport type StopContextPattern = {\n regex: string;\n flags?: string;\n description?: string;\n}\n\nexport type StopContextConfig = {\n enabled?: boolean;\n strings?: string[];\n patterns?: StopContextPattern[];\n caseSensitive?: boolean;\n replacement?: string;\n warnOnFilter?: boolean;\n}\n"],"names":["ConfigSchema","z","object","dryRun","boolean","optional","verbose","debug","overrides","model","string","openaiReasoning","enum","openaiMaxOutputTokens","number","contextDirectories","array","outputDirectory","preferencesDirectory","commit","add","cached","sendit","interactive","amend","push","union","messageLimit","context","contextFiles","direction","skipFileCheck","maxDiffBytes","maxAgenticIterations","allowCommitSplitting","autoSplit","toolTimeout","selfReflection","audioCommit","maxRecordingTime","audioDevice","file","keepTemp","release","from","to","focus","noMilestones","fromMain","currentBranch","precommit","fix","review","includeCommitHistory","includeRecentDiffs","includeReleaseNotes","includeGithubIssues","commitHistoryLimit","diffHistoryLimit","releaseNotesLimit","githubIssuesLimit","note","editorTimeout","maxContextErrors","directory","audioReview","publish","mergeMethod","targetVersion","skipAlreadyPublished","forceRepublish","dependencyUpdatePatterns","scopedDependencyUpdates","requiredEnvVars","linkWorkspacePackages","unlinkWorkspacePackages","checksTimeout","skipUserConfirmation","syncTarget","waitForReleaseWorkflows","releaseWorkflowsTimeout","releaseWorkflowNames","targetBranch","skipPrePublishMerge","updateDeps","agenticPublish","agenticPublishMaxIterations","skipLinkCleanup","branches","record","developmentBranch","version","type","increment","incrementLevel","tag","link","scopeRoots","packageArgument","externals","unlink","workspaceFile","cleanNodeModules","tree","directories","exclude","startFrom","stopAt","cmd","builtInCommand","continue","status","promote","parallel","maxConcurrency","retry","maxAttempts","initialDelayMs","maxDelayMs","backoffMultiplier","retriableErrors","recovery","checkpointInterval","autoRetry","continueOnError","monitoring","showProgress","showMetrics","logLevel","markCompleted","skipPackages","retryFailed","skipFailed","resetPackage","statusParallel","auditBranches","validateState","order","development","tagWorkingBranch","createRetroactiveTags","workingTagPrefix","versions","subcommand","updates","scope","scopes","interProject","report","analyze","strategy","pull","remote","branch","autoStash","autoResolve","excludedPatterns","traits","any","stopContext","enabled","strings","patterns","regex","flags","description","caseSensitive","replacement","warnOnFilter","openaiApiKey","commandName"],"mappings":"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"}
package/guide/index.md CHANGED
@@ -8,6 +8,15 @@ KodrDriv automates Git workflows by using AI to generate intelligent commit mess
8
8
 
9
9
  **Core Value**: Solves the "context switch" problem - when you're deep in code and Git asks you to summarize what you've done, kodrdriv analyzes your changes and writes documentation that reflects your actual work.
10
10
 
11
+ ### MCP Integration
12
+
13
+ KodrDriv supports the **Model Context Protocol (MCP)**, allowing AI assistants like Cursor to directly invoke all kodrdriv commands:
14
+ - **14 Tools**: commit, release, publish, development, precommit, tree operations, and more
15
+ - **8 Resources**: Access config, status, and workspace data via `kodrdriv://` URIs
16
+ - **6 Prompts**: Guided workflows for common operations
17
+
18
+ See [`MCP_INTEGRATION.md`](../MCP_INTEGRATION.md) for details.
19
+
11
20
  ## Guide Contents
12
21
 
13
22
  ### Getting Started
package/package.json CHANGED
@@ -1,18 +1,19 @@
1
1
  {
2
2
  "name": "@eldrforge/kodrdriv",
3
- "version": "1.2.138",
3
+ "version": "1.3.0",
4
4
  "description": "Create Intelligent Release Notes or Change Logs from Git",
5
5
  "main": "dist/main.js",
6
6
  "type": "module",
7
7
  "bin": {
8
- "kodrdriv": "./dist/main.js"
8
+ "kodrdriv": "./dist/main.js",
9
+ "kodrdriv-mcp": "./dist/mcp-server.js"
9
10
  },
10
11
  "repository": {
11
12
  "type": "git",
12
13
  "url": "git+https://github.com/grunnverk/kodrdriv.git"
13
14
  },
14
15
  "scripts": {
15
- "build": "npm run lint && tsc --noEmit && vite build && copyfiles -u 1 \"src/**/*.md\" dist && chmod 755 ./dist/main.js 2>/dev/null || chmod 755 ./dist/kodrdriv/src/main.js",
16
+ "build": "npm run lint && tsc --noEmit && vite build && node scripts/build-mcp.js && copyfiles -u 1 \"src/**/*.md\" dist && chmod 755 ./dist/main.js 2>/dev/null || chmod 755 ./dist/kodrdriv/src/main.js",
16
17
  "start": "dist/main.js",
17
18
  "dev": "vite",
18
19
  "watch": "vite build --watch",
@@ -20,8 +21,12 @@
20
21
  "lint": "eslint . --ext .ts",
21
22
  "lint:fix": "eslint . --ext .ts --fix",
22
23
  "clean": "rm -rf dist",
23
- "precommit": "npm run build && npm run lint && npm run test",
24
+ "precommit": "npm run build && npm run lint && npm run test && npm run mcp:test",
24
25
  "prepublishOnly": "npm run lint && npm run build && npm run test",
26
+ "mcp:build": "vite build && chmod 755 ./dist/mcp-server.js 2>/dev/null || true",
27
+ "mcp:inspect": "mcp-inspector npx -y @modelcontextprotocol/server-kodrdriv",
28
+ "mcp:test": "node scripts/test-mcp-compliance.js",
29
+ "mcp:dev": "vite build --watch",
25
30
  "docs:dev": "cd docs && cp ../README.md public/ && npm install && npm run dev",
26
31
  "docs:build": "cd docs && cp ../README.md public/ && npm install && npm run build",
27
32
  "docs:preview": "cd docs && npm run preview",
@@ -41,22 +46,23 @@
41
46
  "node": ">=24.0.0"
42
47
  },
43
48
  "dependencies": {
44
- "@eldrforge/core": "^0.1.3",
45
- "@eldrforge/commands-git": "^0.1.4",
46
- "@eldrforge/commands-tree": "^0.1.3",
47
- "@eldrforge/commands-publish": "^0.1.4",
48
- "@eldrforge/commands-audio": "^0.1.3",
49
- "@eldrforge/ai-service": "^0.1.21",
50
- "@eldrforge/audio-tools": "^0.1.15",
51
- "@eldrforge/git-tools": "^0.1.22",
52
- "@eldrforge/github-tools": "^0.1.21",
53
- "@eldrforge/shared": "^0.1.10",
54
- "@eldrforge/tree-core": "^0.1.8",
55
- "@eldrforge/tree-execution": "^0.1.8",
49
+ "@eldrforge/ai-service": "^1.0.1",
50
+ "@eldrforge/audio-tools": "^1.0.0",
51
+ "@eldrforge/commands-audio": "^1.0.0",
52
+ "@eldrforge/commands-git": "^1.0.0",
53
+ "@eldrforge/commands-publish": "^1.0.0",
54
+ "@eldrforge/commands-tree": "^1.0.0",
55
+ "@eldrforge/core": "^1.0.0",
56
+ "@eldrforge/git-tools": "^1.0.1",
57
+ "@eldrforge/github-tools": "^1.0.0",
58
+ "@eldrforge/shared": "^0.1.11",
59
+ "@eldrforge/tree-core": "^1.0.0",
60
+ "@eldrforge/tree-execution": "^1.0.0",
61
+ "@modelcontextprotocol/sdk": "^1.25.3",
56
62
  "@octokit/rest": "^22.0.0",
57
- "@riotprompt/riotprompt": "^0.0.10",
58
- "@theunwalked/cardigantime": "^0.0.16",
59
- "@theunwalked/unplayable": "^0.0.21",
63
+ "@riotprompt/riotprompt": "^0.0.21",
64
+ "@theunwalked/cardigantime": "^0.0.22",
65
+ "@theunwalked/unplayable": "^0.0.28",
60
66
  "@types/semver": "^7.7.0",
61
67
  "commander": "^14.0.0",
62
68
  "dayjs": "^1.11.13",
@@ -73,6 +79,7 @@
73
79
  "devDependencies": {
74
80
  "@eslint/eslintrc": "^3.3.1",
75
81
  "@eslint/js": "^9.33.0",
82
+ "@modelcontextprotocol/inspector": "^0.18.0",
76
83
  "@rollup/plugin-replace": "^6.0.2",
77
84
  "@swc/core": "^1.13.3",
78
85
  "@types/js-yaml": "^4.0.9",
@@ -1,4 +1,7 @@
1
1
  {
2
2
  "name": "@myorg/components",
3
- "version": "3.0.1"
3
+ "version": "3.0.1",
4
+ "scripts": {
5
+ "precommit": "echo 'No precommit checks for this package'"
6
+ }
4
7
  }
@@ -1,4 +1,7 @@
1
1
  {
2
2
  "name": "@myorg/tools",
3
- "version": "2.1.0"
3
+ "version": "2.1.0",
4
+ "scripts": {
5
+ "precommit": "echo 'No precommit checks for this package'"
6
+ }
4
7
  }
@@ -1,4 +1,7 @@
1
1
  {
2
2
  "name": "@myorg/utils",
3
- "version": "1.2.3"
3
+ "version": "1.2.3",
4
+ "scripts": {
5
+ "precommit": "echo 'No precommit checks for this package'"
6
+ }
4
7
  }
@@ -0,0 +1,111 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Build MCP Server
4
+ * Simple build script to compile the MCP server separately from main build
5
+ */
6
+
7
+ import { build } from 'esbuild';
8
+ import { resolve, dirname } from 'path';
9
+ import { fileURLToPath } from 'url';
10
+ import { readFileSync, writeFileSync, chmodSync } from 'fs';
11
+ import { execSync } from 'child_process';
12
+ import os from 'os';
13
+
14
+ const __filename = fileURLToPath(import.meta.url);
15
+ const __dirname = dirname(__filename);
16
+ const root = resolve(__dirname, '..');
17
+
18
+ // Capture git info
19
+ let gitInfo = {
20
+ branch: '',
21
+ commit: '',
22
+ tags: '',
23
+ commitDate: '',
24
+ };
25
+
26
+ try {
27
+ gitInfo = {
28
+ branch: execSync('git rev-parse --abbrev-ref HEAD').toString().trim(),
29
+ commit: execSync('git rev-parse --short HEAD').toString().trim(),
30
+ tags: '',
31
+ commitDate: execSync('git log -1 --format=%cd --date=iso').toString().trim(),
32
+ };
33
+
34
+ try {
35
+ gitInfo.tags = execSync('git tag --points-at HEAD | paste -sd "," -').toString().trim();
36
+ } catch {
37
+ gitInfo.tags = '';
38
+ }
39
+ } catch {
40
+ console.log('No git repository, using placeholder values');
41
+ }
42
+
43
+ // Capture build metadata
44
+ const buildInfo = {
45
+ hostname: os.hostname(),
46
+ timestamp: new Date().toISOString(),
47
+ };
48
+
49
+ // Get package version
50
+ const packageJson = JSON.parse(readFileSync(resolve(root, 'package.json'), 'utf-8'));
51
+ const version = packageJson.version;
52
+
53
+ async function buildMCPServer() {
54
+ try {
55
+ console.log('Building MCP server...');
56
+
57
+ await build({
58
+ entryPoints: [resolve(root, 'src/mcp/server.ts')],
59
+ bundle: true,
60
+ platform: 'node',
61
+ target: 'esnext',
62
+ format: 'esm',
63
+ outfile: resolve(root, 'dist/mcp-server.js'),
64
+ external: [
65
+ '@modelcontextprotocol/*',
66
+ '@eldrforge/*',
67
+ '@theunwalked/*',
68
+ '@riotprompt/*',
69
+ // Winston and its dependencies use dynamic requires that don't work when bundled
70
+ // These must be external dependencies, not bundled
71
+ 'winston',
72
+ 'winston/*',
73
+ 'logform',
74
+ 'logform/*',
75
+ '@colors/colors',
76
+ '@colors/safe',
77
+ ],
78
+ sourcemap: true,
79
+ });
80
+
81
+ // Add shebang and replace placeholders
82
+ const outputPath = resolve(root, 'dist/mcp-server.js');
83
+ let content = readFileSync(outputPath, 'utf-8');
84
+
85
+ // Replace placeholders
86
+ content = content.replace(/__VERSION__/g, version);
87
+ content = content.replace(/__GIT_BRANCH__/g, gitInfo.branch);
88
+ content = content.replace(/__GIT_COMMIT__/g, gitInfo.commit);
89
+ content = content.replace(/__GIT_TAGS__/g, gitInfo.tags === '' ? '' : `T:${gitInfo.tags}`);
90
+ content = content.replace(/__GIT_COMMIT_DATE__/g, gitInfo.commitDate);
91
+ content = content.replace(/__SYSTEM_INFO__/g, `${process.platform} ${process.arch} ${process.version}`);
92
+ content = content.replace(/__BUILD_HOSTNAME__/g, buildInfo.hostname);
93
+ content = content.replace(/__BUILD_TIMESTAMP__/g, buildInfo.timestamp);
94
+
95
+ if (!content.startsWith('#!')) {
96
+ content = `#!/usr/bin/env node\n${content}`;
97
+ }
98
+
99
+ writeFileSync(outputPath, content);
100
+
101
+ // Make executable
102
+ chmodSync(outputPath, 0o755);
103
+
104
+ console.log('✓ MCP server built successfully');
105
+ } catch (error) {
106
+ console.error('✗ MCP server build failed:', error);
107
+ process.exit(1);
108
+ }
109
+ }
110
+
111
+ buildMCPServer();
@@ -0,0 +1,102 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Test get_version MCP tool
4
+ */
5
+
6
+ import { spawn } from 'child_process';
7
+ import { resolve } from 'path';
8
+ import { fileURLToPath } from 'url';
9
+ import { dirname } from 'path';
10
+
11
+ const __filename = fileURLToPath(import.meta.url);
12
+ const __dirname = dirname(__filename);
13
+
14
+ const SERVER_PATH = resolve(__dirname, '../dist/mcp-server.js');
15
+ const TIMEOUT_MS = 5000;
16
+
17
+ console.log('🔍 Testing get_version tool...\n');
18
+
19
+ function sendMCPRequest(server, method, params = {}) {
20
+ return new Promise((resolve, reject) => {
21
+ const id = Math.floor(Math.random() * 1000000);
22
+ const request = {
23
+ jsonrpc: '2.0',
24
+ id,
25
+ method,
26
+ params,
27
+ };
28
+
29
+ let response = '';
30
+ const timeout = setTimeout(() => {
31
+ reject(new Error('Request timeout'));
32
+ }, TIMEOUT_MS);
33
+
34
+ server.stdout.on('data', (data) => {
35
+ response += data.toString();
36
+ try {
37
+ const parsed = JSON.parse(response);
38
+ if (parsed.id === id) {
39
+ clearTimeout(timeout);
40
+ resolve(parsed);
41
+ }
42
+ } catch (e) {
43
+ // Still accumulating response
44
+ }
45
+ });
46
+
47
+ server.stdin.write(JSON.stringify(request) + '\n');
48
+ });
49
+ }
50
+
51
+ async function testGetVersionTool() {
52
+ const server = spawn('node', [SERVER_PATH], {
53
+ stdio: ['pipe', 'pipe', 'pipe'],
54
+ });
55
+
56
+ try {
57
+ // Initialize
58
+ await sendMCPRequest(server, 'initialize', {
59
+ protocolVersion: '2024-11-05',
60
+ capabilities: {},
61
+ clientInfo: { name: 'test', version: '1.0.0' },
62
+ });
63
+
64
+ // Call get_version tool
65
+ const response = await sendMCPRequest(server, 'tools/call', {
66
+ name: 'kodrdriv_get_version',
67
+ arguments: {},
68
+ });
69
+
70
+ if (response.result && response.result.content) {
71
+ const content = response.result.content[0];
72
+ console.log('✅ get_version tool executed successfully\n');
73
+ console.log('Response:');
74
+ console.log(content.text);
75
+ console.log('\n');
76
+
77
+ // Parse and display structured data
78
+ try {
79
+ const data = JSON.parse(content.text);
80
+ console.log('Parsed data:');
81
+ console.log(' Version:', data.version);
82
+ console.log(' Build Hostname:', data.buildHostname);
83
+ console.log(' Build Timestamp:', data.buildTimestamp);
84
+ } catch (e) {
85
+ // Response might be text format
86
+ }
87
+ } else {
88
+ throw new Error('Invalid response from get_version tool');
89
+ }
90
+
91
+ server.kill();
92
+ return true;
93
+ } catch (error) {
94
+ server.kill();
95
+ console.log(`❌ Test failed: ${error.message}\n`);
96
+ return false;
97
+ }
98
+ }
99
+
100
+ testGetVersionTool().then(success => {
101
+ process.exit(success ? 0 : 1);
102
+ });