@eldrforge/core 0.1.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.
Files changed (41) hide show
  1. package/LICENSE +190 -0
  2. package/README.md +59 -0
  3. package/dist/index.d.ts +2 -0
  4. package/dist/index.js +2748 -0
  5. package/dist/index.js.map +1 -0
  6. package/dist/src/constants.d.ts +235 -0
  7. package/dist/src/constants.d.ts.map +1 -0
  8. package/dist/src/content/diff.d.ts +25 -0
  9. package/dist/src/content/diff.d.ts.map +1 -0
  10. package/dist/src/content/files.d.ts +10 -0
  11. package/dist/src/content/files.d.ts.map +1 -0
  12. package/dist/src/content/log.d.ts +11 -0
  13. package/dist/src/content/log.d.ts.map +1 -0
  14. package/dist/src/index.d.ts +17 -0
  15. package/dist/src/index.d.ts.map +1 -0
  16. package/dist/src/logging.d.ts +18 -0
  17. package/dist/src/logging.d.ts.map +1 -0
  18. package/dist/src/types.d.ts +1343 -0
  19. package/dist/src/types.d.ts.map +1 -0
  20. package/dist/src/util/aiAdapter.d.ts +7 -0
  21. package/dist/src/util/aiAdapter.d.ts.map +1 -0
  22. package/dist/src/util/errorHandler.d.ts +34 -0
  23. package/dist/src/util/errorHandler.d.ts.map +1 -0
  24. package/dist/src/util/fileLock.d.ts +63 -0
  25. package/dist/src/util/fileLock.d.ts.map +1 -0
  26. package/dist/src/util/general.d.ts +83 -0
  27. package/dist/src/util/general.d.ts.map +1 -0
  28. package/dist/src/util/gitMutex.d.ts +66 -0
  29. package/dist/src/util/gitMutex.d.ts.map +1 -0
  30. package/dist/src/util/interactive.d.ts +36 -0
  31. package/dist/src/util/interactive.d.ts.map +1 -0
  32. package/dist/src/util/loggerAdapter.d.ts +6 -0
  33. package/dist/src/util/loggerAdapter.d.ts.map +1 -0
  34. package/dist/src/util/stopContext.d.ts +27 -0
  35. package/dist/src/util/stopContext.d.ts.map +1 -0
  36. package/dist/src/util/storageAdapter.d.ts +8 -0
  37. package/dist/src/util/storageAdapter.d.ts.map +1 -0
  38. package/dist/src/util/validation.d.ts +21 -0
  39. package/dist/src/util/validation.d.ts.map +1 -0
  40. package/guide/index.md +64 -0
  41. package/package.json +74 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { Config } from '../types';
2
+ import { AIConfig } from '@eldrforge/ai-service';
3
+ /**
4
+ * Convert kodrdriv Config to AIConfig
5
+ */
6
+ export declare function toAIConfig(config: Config): AIConfig;
7
+ //# sourceMappingURL=aiAdapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aiAdapter.d.ts","sourceRoot":"","sources":["../../../src/util/aiAdapter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEtD;;GAEG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,CAoBnD"}
@@ -0,0 +1,34 @@
1
+ import { Logger } from 'winston';
2
+ import { CommandError } from '@eldrforge/shared';
3
+ export interface ErrorHandlerOptions {
4
+ logger: Logger;
5
+ command: string;
6
+ exitOnError?: boolean;
7
+ }
8
+ export interface CommandResult<T = string> {
9
+ success: boolean;
10
+ data?: T;
11
+ error?: CommandError;
12
+ warnings?: string[];
13
+ }
14
+ export interface Command<TConfig = any, TResult = string> {
15
+ execute(config: TConfig): Promise<CommandResult<TResult>>;
16
+ validate?(config: TConfig): Promise<void>;
17
+ }
18
+ /**
19
+ * Standardized error handler for all commands
20
+ */
21
+ export declare const handleCommandError: (error: Error, options: ErrorHandlerOptions) => Promise<never | void>;
22
+ /**
23
+ * Wrapper for command execution with standardized error handling
24
+ */
25
+ export declare const executeWithErrorHandling: <T>(command: string, logger: Logger, execution: () => Promise<T>, exitOnError?: boolean) => Promise<T>;
26
+ /**
27
+ * Creates a command result for successful operations
28
+ */
29
+ export declare const createSuccessResult: <T>(data: T, warnings?: string[]) => CommandResult<T>;
30
+ /**
31
+ * Creates a command result for failed operations
32
+ */
33
+ export declare const createErrorResult: <T>(error: CommandError, warnings?: string[]) => CommandResult<T>;
34
+ //# sourceMappingURL=errorHandler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errorHandler.d.ts","sourceRoot":"","sources":["../../../src/util/errorHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,YAAY,EAAyB,MAAM,mBAAmB,CAAC;AAExE,MAAM,WAAW,mBAAmB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,aAAa,CAAC,CAAC,GAAG,MAAM;IACrC,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,OAAO,CAAC,OAAO,GAAG,GAAG,EAAE,OAAO,GAAG,MAAM;IACpD,OAAO,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;IAC1D,QAAQ,CAAC,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7C;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB,GAC3B,OAAO,KAAK,EACZ,SAAS,mBAAmB,KAC7B,OAAO,CAAC,KAAK,GAAG,IAAI,CA+CtB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,wBAAwB,GAAU,CAAC,EAC5C,SAAS,MAAM,EACf,QAAQ,MAAM,EACd,WAAW,MAAM,OAAO,CAAC,CAAC,CAAC,EAC3B,cAAa,OAAc,KAC5B,OAAO,CAAC,CAAC,CAYX,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,mBAAmB,GAAI,CAAC,EAAE,MAAM,CAAC,EAAE,WAAW,MAAM,EAAE,KAAG,aAAa,CAAC,CAAC,CAInF,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAAI,CAAC,EAAE,OAAO,YAAY,EAAE,WAAW,MAAM,EAAE,KAAG,aAAa,CAAC,CAAC,CAI7F,CAAC"}
@@ -0,0 +1,63 @@
1
+ /**
2
+ * File-based lock for cross-process synchronization
3
+ * Uses atomic file operations to coordinate across multiple Node processes
4
+ */
5
+ export declare class FileLock {
6
+ private lockPath;
7
+ private lockAcquired;
8
+ private maxRetries;
9
+ private retryDelay;
10
+ private maxRetryDelay;
11
+ private lockTimeout;
12
+ private logger;
13
+ constructor(lockPath: string);
14
+ /**
15
+ * Acquire the file lock with exponential backoff retry
16
+ */
17
+ lock(): Promise<void>;
18
+ /**
19
+ * Release the file lock
20
+ */
21
+ unlock(): void;
22
+ /**
23
+ * Check if this instance currently holds the lock
24
+ */
25
+ isLocked(): boolean;
26
+ }
27
+ /**
28
+ * Manages file-based locks for git repositories (cross-process safe)
29
+ */
30
+ export declare class RepositoryFileLockManager {
31
+ private locks;
32
+ private logger;
33
+ private cleanupRegistered;
34
+ /**
35
+ * Get or create a file lock for a specific git repository
36
+ * @param repoPath Path to the git repository root
37
+ * @returns FileLock for this repository
38
+ */
39
+ getRepositoryLock(repoPath: string): FileLock;
40
+ /**
41
+ * Resolve the actual .git directory path, handling both regular repos and submodules
42
+ * @param repoPath Path to the repository root
43
+ * @returns Path to the actual .git directory
44
+ */
45
+ private resolveGitDirectory;
46
+ /**
47
+ * Register cleanup handlers to release locks on process exit
48
+ */
49
+ private registerCleanupHandlers;
50
+ /**
51
+ * Execute a git operation with repository-level file locking
52
+ * @param repoPath Path to the git repository root
53
+ * @param operation The async operation to execute under lock
54
+ * @param operationName Optional name for logging
55
+ * @returns Result of the operation
56
+ */
57
+ withGitLock<T>(repoPath: string, operation: () => Promise<T>, operationName?: string): Promise<T>;
58
+ /**
59
+ * Clean up all locks
60
+ */
61
+ destroy(): void;
62
+ }
63
+ //# sourceMappingURL=fileLock.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fileLock.d.ts","sourceRoot":"","sources":["../../../src/util/fileLock.ts"],"names":[],"mappings":"AAMA;;;GAGG;AACH,qBAAa,QAAQ;IACjB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,UAAU,CAAO;IACzB,OAAO,CAAC,UAAU,CAAO;IACzB,OAAO,CAAC,aAAa,CAAQ;IAC7B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,MAAM,CAAe;gBAEjB,QAAQ,EAAE,MAAM;IAI5B;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAuE3B;;OAEG;IACH,MAAM,IAAI,IAAI;IAkBd;;OAEG;IACH,QAAQ,IAAI,OAAO;CAGtB;AAED;;GAEG;AACH,qBAAa,yBAAyB;IAClC,OAAO,CAAC,KAAK,CAAoC;IACjD,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,iBAAiB,CAAS;IAElC;;;;OAIG;IACH,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ;IAoB7C;;;;OAIG;IACH,OAAO,CAAC,mBAAmB;IAwC3B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAsB/B;;;;;;OAMG;IACG,WAAW,CAAC,CAAC,EACf,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAC3B,aAAa,CAAC,EAAE,MAAM,GACvB,OAAO,CAAC,CAAC,CAAC;IAwBb;;OAEG;IACH,OAAO,IAAI,IAAI;CAOlB"}
@@ -0,0 +1,83 @@
1
+ import { deepMerge, stringifyJSON, incrementPatchVersion, incrementMinorVersion, incrementMajorVersion, validateVersionString, calculateTargetVersion, incrementPrereleaseVersion, convertToReleaseVersion } from '@eldrforge/shared';
2
+ /**
3
+ * Get version from a specific branch's package.json
4
+ */
5
+ export declare const getVersionFromBranch: (branchName: string) => Promise<string | null>;
6
+ /**
7
+ * Calculate target version based on branch configuration
8
+ * SEMANTICS: The version config specifies what version should be ON the target branch
9
+ */
10
+ export declare const calculateBranchDependentVersion: (currentVersion: string, currentBranch: string, branchesConfig: any, targetBranch?: string) => Promise<{
11
+ version: string;
12
+ targetBranch: string;
13
+ }>;
14
+ /**
15
+ * Find the development branch from branches configuration
16
+ * Returns the branch marked with developmentBranch: true
17
+ */
18
+ export declare const findDevelopmentBranch: (branchesConfig: any) => string | null;
19
+ /**
20
+ * Check if two prerelease versions have the same tag
21
+ * Examples:
22
+ * - haveSamePrereleaseTag("1.2.3-dev.0", "1.2.3-dev.5") => true
23
+ * - haveSamePrereleaseTag("1.2.3-dev.0", "1.2.3-test.0") => false
24
+ * - haveSamePrereleaseTag("1.2.3", "1.2.3-dev.0") => false
25
+ */
26
+ export declare const haveSamePrereleaseTag: (version1: string, version2: string) => boolean;
27
+ export declare const checkIfTagExists: (tagName: string) => Promise<boolean>;
28
+ export declare const confirmVersionInteractively: (currentVersion: string, proposedVersion: string, targetVersionInput?: string) => Promise<string>;
29
+ export declare const getOutputPath: (outputDirectory: string, filename: string) => string;
30
+ export declare const getTimestampedFilename: (baseName: string, extension?: string) => string;
31
+ export declare const getTimestampedRequestFilename: (baseName: string) => string;
32
+ export declare const getTimestampedResponseFilename: (baseName: string) => string;
33
+ export declare const getTimestampedCommitFilename: () => string;
34
+ export declare const getTimestampedReleaseNotesFilename: () => string;
35
+ export declare const getTimestampedAudioFilename: () => string;
36
+ export declare const getTimestampedTranscriptFilename: () => string;
37
+ export declare const getTimestampedReviewFilename: () => string;
38
+ export declare const getTimestampedReviewNotesFilename: () => string;
39
+ export declare const getTimestampedArchivedAudioFilename: (originalExtension?: string) => string;
40
+ export declare const getTimestampedArchivedTranscriptFilename: () => string;
41
+ /**
42
+ * Query npm registry for published version of a package
43
+ * Returns null if package is not published or on error
44
+ */
45
+ export declare const getNpmPublishedVersion: (packageName: string) => Promise<string | null>;
46
+ /**
47
+ * Check if a package version already exists on npm registry
48
+ */
49
+ export declare const isVersionPublishedOnNpm: (packageName: string, version: string) => Promise<boolean>;
50
+ /**
51
+ * Get detailed info about a tag including the version it points to
52
+ */
53
+ export declare const getTagInfo: (tagName: string) => Promise<{
54
+ exists: boolean;
55
+ commit?: string;
56
+ version?: string;
57
+ } | null>;
58
+ /**
59
+ * Check if a version is a development/prerelease version (has prerelease tag)
60
+ */
61
+ export declare const isDevelopmentVersion: (version: string) => boolean;
62
+ /**
63
+ * Check if a version is a release version (no prerelease tag)
64
+ */
65
+ export declare const isReleaseVersion: (version: string) => boolean;
66
+ /**
67
+ * Get expected version pattern for a branch
68
+ */
69
+ export declare const getExpectedVersionPattern: (branchName: string) => {
70
+ pattern: RegExp;
71
+ description: string;
72
+ isDevelopment: boolean;
73
+ };
74
+ /**
75
+ * Validate version against branch expectations
76
+ */
77
+ export declare const validateVersionForBranch: (version: string, branchName: string) => {
78
+ valid: boolean;
79
+ issue?: string;
80
+ fix?: string;
81
+ };
82
+ export { deepMerge, stringifyJSON, incrementPatchVersion, incrementMinorVersion, incrementMajorVersion, validateVersionString, calculateTargetVersion, incrementPrereleaseVersion, convertToReleaseVersion };
83
+ //# sourceMappingURL=general.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"general.d.ts","sourceRoot":"","sources":["../../../src/util/general.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,66 @@
1
+ /**
2
+ * Manages per-repository locks for git operations (cross-process safe)
3
+ * Prevents concurrent git operations in the same repository (which cause .git/index.lock conflicts)
4
+ * while still allowing parallel operations across different repositories
5
+ *
6
+ * Uses file-based locks to coordinate across multiple processes (e.g., parallel tree execution)
7
+ */
8
+ export declare class RepositoryMutexManager {
9
+ private lockManager;
10
+ private logger;
11
+ constructor();
12
+ /**
13
+ * Execute a git operation with repository-level locking
14
+ * @param packagePath Path to the package (will find its git repo root)
15
+ * @param operation The async operation to execute under lock
16
+ * @param operationName Optional name for logging
17
+ * @returns Result of the operation
18
+ */
19
+ withGitLock<T>(packagePath: string, operation: () => Promise<T>, operationName?: string): Promise<T>;
20
+ /**
21
+ * Destroy all locks and clean up resources
22
+ */
23
+ destroy(): void;
24
+ }
25
+ /**
26
+ * Find the git repository root for a given path
27
+ * Walks up the directory tree until it finds a .git directory
28
+ * @param startPath Starting path (can be a file or directory)
29
+ * @returns Absolute path to git repository root, or null if not in a git repo
30
+ */
31
+ export declare function getGitRepositoryRoot(startPath: string): string | null;
32
+ /**
33
+ * Check if a path is within a git repository
34
+ * @param checkPath Path to check
35
+ * @returns true if path is in a git repository
36
+ */
37
+ export declare function isInGitRepository(checkPath: string): boolean;
38
+ /**
39
+ * Check if two paths are in the same git repository
40
+ * @param path1 First path
41
+ * @param path2 Second path
42
+ * @returns true if both paths are in the same git repository
43
+ */
44
+ export declare function areInSameRepository(path1: string, path2: string): boolean;
45
+ /**
46
+ * Get the global git mutex manager instance
47
+ * Creates one if it doesn't exist
48
+ */
49
+ export declare function getGitMutexManager(): RepositoryMutexManager;
50
+ /**
51
+ * Destroy the global git mutex manager
52
+ * Should be called when shutting down or during cleanup
53
+ */
54
+ export declare function destroyGitMutexManager(): void;
55
+ /**
56
+ * Helper function to wrap git operations with automatic locking
57
+ * Uses the global git mutex manager
58
+ *
59
+ * @example
60
+ * await runGitWithLock(packagePath, async () => {
61
+ * await run('git add package.json');
62
+ * await run('git commit -m "Update version"');
63
+ * }, 'version bump commit');
64
+ */
65
+ export declare function runGitWithLock<T>(packagePath: string, operation: () => Promise<T>, operationName?: string): Promise<T>;
66
+ //# sourceMappingURL=gitMutex.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gitMutex.d.ts","sourceRoot":"","sources":["../../../src/util/gitMutex.ts"],"names":[],"mappings":"AAOA;;;;;;GAMG;AACH,qBAAa,sBAAsB;IAC/B,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,MAAM,CAAe;;IAM7B;;;;;;OAMG;IACG,WAAW,CAAC,CAAC,EACf,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAC3B,aAAa,CAAC,EAAE,MAAM,GACvB,OAAO,CAAC,CAAC,CAAC;IAYb;;OAEG;IACH,OAAO,IAAI,IAAI;CAGlB;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAiDrE;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAsB5D;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CASzE;AAKD;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,sBAAsB,CAK3D;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,IAAI,IAAI,CAK7C;AAED;;;;;;;;;GASG;AACH,wBAAsB,cAAc,CAAC,CAAC,EAClC,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAC3B,aAAa,CAAC,EAAE,MAAM,GACvB,OAAO,CAAC,CAAC,CAAC,CAGZ"}
@@ -0,0 +1,36 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Kodrdriv-specific interactive utilities
4
+ *
5
+ * This module contains application-specific interactive workflows that build on
6
+ * top of the generic interactive functions from @eldrforge/ai-service.
7
+ *
8
+ * Re-exports from ai-service for convenience, plus kodrdriv-specific functions.
9
+ */
10
+ export { getUserChoice, getUserTextInput, editContentInEditor, getLLMFeedbackInEditor, requireTTY, SecureTempFile, createSecureTempFile, cleanupTempFile, STANDARD_CHOICES, type Choice, type InteractiveOptions, type EditorResult, } from '@eldrforge/ai-service';
11
+ export interface LLMImprovementConfig {
12
+ /** The type of content being improved (for filenames and logging) */
13
+ contentType: string;
14
+ /** Function that creates a prompt for improvement */
15
+ createImprovedPrompt: (promptConfig: any, improvementContent: any, promptContext: any) => Promise<any>;
16
+ /** Function that calls LLM with the improved prompt */
17
+ callLLM: (request: any, runConfig: any, outputDirectory: string) => Promise<any>;
18
+ /** Function that validates/processes the LLM response */
19
+ processResponse?: (response: any) => any;
20
+ }
21
+ /**
22
+ * Generic LLM improvement function that can be configured for different content types
23
+ *
24
+ * This is kodrdriv-specific orchestration logic that combines multiple ai-service
25
+ * primitives into a higher-level workflow.
26
+ *
27
+ * @param currentContent The current content to improve
28
+ * @param runConfig Runtime configuration
29
+ * @param promptConfig Prompt configuration
30
+ * @param promptContext Prompt context
31
+ * @param outputDirectory Output directory for debug files
32
+ * @param improvementConfig Configuration for this specific improvement type
33
+ * @returns Promise resolving to the improved content
34
+ */
35
+ export declare function improveContentWithLLM<T>(currentContent: T, runConfig: any, promptConfig: any, promptContext: any, outputDirectory: string, improvementConfig: LLMImprovementConfig): Promise<T>;
36
+ //# sourceMappingURL=interactive.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interactive.d.ts","sourceRoot":"","sources":["../../../src/util/interactive.ts"],"names":[],"mappings":";AACA;;;;;;;GAOG;AAKH,OAAO,EACH,aAAa,EACb,gBAAgB,EAChB,mBAAmB,EACnB,sBAAsB,EACtB,UAAU,EACV,cAAc,EACd,oBAAoB,EACpB,eAAe,EACf,gBAAgB,EAChB,KAAK,MAAM,EACX,KAAK,kBAAkB,EACvB,KAAK,YAAY,GACpB,MAAM,uBAAuB,CAAC;AAI/B,MAAM,WAAW,oBAAoB;IACjC,qEAAqE;IACrE,WAAW,EAAE,MAAM,CAAC;IACpB,qDAAqD;IACrD,oBAAoB,EAAE,CAClB,YAAY,EAAE,GAAG,EACjB,kBAAkB,EAAE,GAAG,EACvB,aAAa,EAAE,GAAG,KACjB,OAAO,CAAC,GAAG,CAAC,CAAC;IAClB,uDAAuD;IACvD,OAAO,EAAE,CACL,OAAO,EAAE,GAAG,EACZ,SAAS,EAAE,GAAG,EACd,eAAe,EAAE,MAAM,KACtB,OAAO,CAAC,GAAG,CAAC,CAAC;IAClB,yDAAyD;IACzD,eAAe,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,KAAK,GAAG,CAAC;CAC5C;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,qBAAqB,CAAC,CAAC,EACzC,cAAc,EAAE,CAAC,EACjB,SAAS,EAAE,GAAG,EACd,YAAY,EAAE,GAAG,EACjB,aAAa,EAAE,GAAG,EAClB,eAAe,EAAE,MAAM,EACvB,iBAAiB,EAAE,oBAAoB,GACxC,OAAO,CAAC,CAAC,CAAC,CAsBZ"}
@@ -0,0 +1,6 @@
1
+ import { Logger } from '@eldrforge/ai-service';
2
+ /**
3
+ * Create a Logger implementation using kodrdriv logging
4
+ */
5
+ export declare function createLoggerAdapter(dryRun: boolean): Logger;
6
+ //# sourceMappingURL=loggerAdapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loggerAdapter.d.ts","sourceRoot":"","sources":["../../../src/util/loggerAdapter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAGpD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAuC3D"}
@@ -0,0 +1,27 @@
1
+ import { StopContextConfig } from '../types';
2
+ export interface FilterResult {
3
+ filtered: string;
4
+ originalLength: number;
5
+ filteredLength: number;
6
+ matchCount: number;
7
+ matches: FilterMatch[];
8
+ }
9
+ export interface FilterMatch {
10
+ type: 'string' | 'pattern';
11
+ matched: string;
12
+ position: number;
13
+ replacement: string;
14
+ }
15
+ /**
16
+ * Filter content based on stop-context configuration
17
+ *
18
+ * @param text - The text to filter
19
+ * @param config - The stop-context configuration
20
+ * @returns FilterResult with filtered text and metadata
21
+ */
22
+ export declare function filterContent(text: string, config: StopContextConfig | undefined): FilterResult;
23
+ /**
24
+ * Check if stop-context filtering is enabled in config
25
+ */
26
+ export declare function isStopContextEnabled(config: StopContextConfig | undefined): boolean;
27
+ //# sourceMappingURL=stopContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stopContext.d.ts","sourceRoot":"","sources":["../../../src/util/stopContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAG7C,MAAM,WAAW,YAAY;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,WAAW,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,WAAW;IACxB,IAAI,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACvB;AAyGD;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,GAAG,SAAS,GAAG,YAAY,CAiE/F;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,iBAAiB,GAAG,SAAS,GAAG,OAAO,CASnF"}
@@ -0,0 +1,8 @@
1
+ import { StorageAdapter } from '@eldrforge/ai-service';
2
+ /**
3
+ * Create a StorageAdapter implementation using kodrdriv Storage
4
+ *
5
+ * @param outputDirectory - Directory where output files should be written (default: 'output')
6
+ */
7
+ export declare function createStorageAdapter(outputDirectory?: string): StorageAdapter;
8
+ //# sourceMappingURL=storageAdapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storageAdapter.d.ts","sourceRoot":"","sources":["../../../src/util/storageAdapter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAI5D;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,eAAe,GAAE,MAAiB,GAAG,cAAc,CAyBvF"}
@@ -0,0 +1,21 @@
1
+ import { ReleaseSummary } from '../types';
2
+ export interface TranscriptionResult {
3
+ text: string;
4
+ [key: string]: any;
5
+ }
6
+ /**
7
+ * Validates and safely casts data to ReleaseSummary type
8
+ */
9
+ export declare const validateReleaseSummary: (data: any) => ReleaseSummary;
10
+ /**
11
+ * Validates transcription result has required text property
12
+ */
13
+ export declare const validateTranscriptionResult: (data: any) => TranscriptionResult;
14
+ /**
15
+ * Sanitizes and truncates direction parameter for safe use in prompts
16
+ * @param direction The direction string to sanitize
17
+ * @param maxLength Maximum length before truncation (default: 2000)
18
+ * @returns Sanitized and truncated direction string
19
+ */
20
+ export declare const sanitizeDirection: (direction: string | undefined, maxLength?: number) => string | undefined;
21
+ //# sourceMappingURL=validation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../src/util/validation.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE/C,MAAM,WAAW,mBAAmB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACtB;AAED;;GAEG;AACH,eAAO,MAAM,sBAAsB,GAAI,MAAM,GAAG,KAAG,cAWlD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,2BAA2B,GAAI,MAAM,GAAG,KAAG,mBAQvD,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,GAAI,WAAW,MAAM,GAAG,SAAS,EAAE,YAAW,MAAa,KAAG,MAAM,GAAG,SAqBpG,CAAC"}
package/guide/index.md ADDED
@@ -0,0 +1,64 @@
1
+ # @eldrforge/core - Agentic Guide
2
+
3
+ ## Purpose
4
+
5
+ Core utilities for kodrdriv command packages. Provides shared infrastructure including:
6
+ - Content generation (diff, log, files)
7
+ - Utility functions (general, interactive, adapters)
8
+ - Foundation (types, constants, logging)
9
+
10
+ ## Quick Reference
11
+
12
+ For AI agents working with this package:
13
+ - [Architecture](./architecture.md) - Package structure and design
14
+ - [Usage](./usage.md) - How to use core utilities
15
+ - [Development](./development.md) - Contributing guidelines
16
+ - [Configuration](./configuration.md) - Setup and configuration
17
+
18
+ ## Key Exports
19
+
20
+ ```typescript
21
+ // Content utilities
22
+ import { create as createDiff } from '@eldrforge/core';
23
+ import { create as createLog } from '@eldrforge/core';
24
+ import { create as createFiles } from '@eldrforge/core';
25
+
26
+ // Utilities
27
+ import { getOutputPath, improveContentWithLLM } from '@eldrforge/core';
28
+
29
+ // Foundation
30
+ import { Config, getLogger } from '@eldrforge/core';
31
+ ```
32
+
33
+ ## Dependencies
34
+
35
+ - @eldrforge/git-tools
36
+ - @eldrforge/github-tools
37
+ - @eldrforge/ai-service
38
+ - @eldrforge/shared
39
+
40
+ ## Package Structure
41
+
42
+ ```
43
+ src/
44
+ ├── content/ # Git content utilities
45
+ │ ├── diff.ts # Git diff operations
46
+ │ ├── log.ts # Git log operations
47
+ │ └── files.ts # File content collection
48
+ ├── util/ # Utility functions
49
+ │ ├── general.ts # General utilities
50
+ │ ├── interactive.ts # Interactive prompts
51
+ │ ├── aiAdapter.ts # AI service adapter
52
+ │ ├── storageAdapter.ts # Storage adapter
53
+ │ ├── loggerAdapter.ts # Logger adapter
54
+ │ ├── stopContext.ts # Content filtering
55
+ │ ├── gitMutex.ts # Git repository locking
56
+ │ ├── fileLock.ts # File-based locking
57
+ │ ├── validation.ts # Data validation
58
+ │ └── errorHandler.ts # Error handling
59
+ ├── types.ts # TypeScript types
60
+ ├── constants.ts # Package constants
61
+ ├── logging.ts # Winston logging setup
62
+ └── index.ts # Main exports
63
+ ```
64
+
package/package.json ADDED
@@ -0,0 +1,74 @@
1
+ {
2
+ "name": "@eldrforge/core",
3
+ "version": "0.1.0",
4
+ "description": "Core utilities for kodrdriv command packages",
5
+ "main": "dist/index.js",
6
+ "type": "module",
7
+ "exports": {
8
+ ".": {
9
+ "import": "./dist/index.js",
10
+ "types": "./dist/index.d.ts"
11
+ }
12
+ },
13
+ "files": [
14
+ "dist",
15
+ "guide"
16
+ ],
17
+ "repository": {
18
+ "type": "git",
19
+ "url": "git+https://github.com/grunnverk/core.git"
20
+ },
21
+ "scripts": {
22
+ "build": "npm run lint && tsc --noEmit && vite build",
23
+ "dev": "vite",
24
+ "watch": "vite build --watch",
25
+ "test": "vitest run --coverage",
26
+ "lint": "eslint . --ext .ts",
27
+ "lint:fix": "eslint . --ext .ts --fix",
28
+ "clean": "rm -rf dist",
29
+ "precommit": "npm run clean && npm run build && npm run lint && npm run test",
30
+ "prepublishOnly": "npm run clean && npm run lint && npm run build && npm run test"
31
+ },
32
+ "keywords": [
33
+ "kodrdriv",
34
+ "core",
35
+ "utilities",
36
+ "git",
37
+ "automation"
38
+ ],
39
+ "author": "Tim O'Brien <tobrien@discursive.com>",
40
+ "license": "Apache-2.0",
41
+ "dependencies": {
42
+ "@eldrforge/git-tools": "^0.1.16",
43
+ "@eldrforge/github-tools": "^0.1.18",
44
+ "@eldrforge/ai-service": "^0.1.17",
45
+ "@eldrforge/shared": "^0.1.6",
46
+ "@riotprompt/riotprompt": "^0.0.10",
47
+ "@theunwalked/cardigantime": "^0.0.10",
48
+ "dotenv": "^16.4.7",
49
+ "glob": "^11.0.2",
50
+ "openai": "^4.87.3",
51
+ "winston": "^3.17.0",
52
+ "zod": "^3.24.2"
53
+ },
54
+ "devDependencies": {
55
+ "@eslint/eslintrc": "^3.3.1",
56
+ "@eslint/js": "^9.33.0",
57
+ "@swc/core": "^1.13.3",
58
+ "@types/node": "^25.0.3",
59
+ "@typescript-eslint/eslint-plugin": "^8.39.1",
60
+ "@typescript-eslint/parser": "^8.39.1",
61
+ "@vitest/coverage-v8": "^4.0.13",
62
+ "esbuild": "0.25.10",
63
+ "eslint": "^9.33.0",
64
+ "eslint-plugin-import": "^2.32.0",
65
+ "globals": "^16.3.0",
66
+ "mockdate": "^3.0.5",
67
+ "typescript": "^5.9.2",
68
+ "vite": "^7.1.2",
69
+ "vite-plugin-dts": "^4.3.0",
70
+ "vite-plugin-node": "^7.0.0",
71
+ "vitest": "^4.0.13"
72
+ }
73
+ }
74
+