@eldrforge/kodrdriv 1.2.20 → 1.2.22
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/WORKFLOW-PRECHECK-IMPLEMENTATION.md +239 -0
- package/WORKFLOW-SKIP-SUMMARY.md +121 -0
- package/dist/application.js +6 -2
- package/dist/application.js.map +1 -1
- package/dist/arguments.js +2 -2
- package/dist/arguments.js.map +1 -1
- package/dist/commands/audio-commit.js +15 -6
- package/dist/commands/audio-commit.js.map +1 -1
- package/dist/commands/audio-review.js +31 -15
- package/dist/commands/audio-review.js.map +1 -1
- package/dist/commands/commit.js +31 -20
- package/dist/commands/commit.js.map +1 -1
- package/dist/commands/link.js +27 -27
- package/dist/commands/link.js.map +1 -1
- package/dist/commands/publish.js +87 -34
- package/dist/commands/publish.js.map +1 -1
- package/dist/commands/release.js +32 -19
- package/dist/commands/release.js.map +1 -1
- package/dist/commands/review.js +36 -30
- package/dist/commands/review.js.map +1 -1
- package/dist/commands/select-audio.js +4 -4
- package/dist/commands/select-audio.js.map +1 -1
- package/dist/commands/tree.js +154 -38
- package/dist/commands/tree.js.map +1 -1
- package/dist/commands/unlink.js +13 -13
- package/dist/commands/unlink.js.map +1 -1
- package/dist/commands/updates.js +21 -0
- package/dist/commands/updates.js.map +1 -1
- package/dist/commands/versions.js +5 -5
- package/dist/commands/versions.js.map +1 -1
- package/dist/constants.js +4 -4
- package/dist/constants.js.map +1 -1
- package/dist/content/files.js +4 -4
- package/dist/content/files.js.map +1 -1
- package/dist/error/CommandErrors.js +1 -65
- package/dist/error/CommandErrors.js.map +1 -1
- package/dist/logging.js +3 -3
- package/dist/logging.js.map +1 -1
- package/dist/util/aiAdapter.js +28 -0
- package/dist/util/aiAdapter.js.map +1 -0
- package/dist/util/general.js +5 -5
- package/dist/util/general.js.map +1 -1
- package/dist/util/interactive.js +6 -437
- package/dist/util/interactive.js.map +1 -1
- package/dist/util/loggerAdapter.js +24 -0
- package/dist/util/loggerAdapter.js.map +1 -0
- package/dist/util/performance.js +4 -4
- package/dist/util/performance.js.map +1 -1
- package/dist/util/safety.js +4 -4
- package/dist/util/safety.js.map +1 -1
- package/dist/util/storage.js +2 -2
- package/dist/util/storage.js.map +1 -1
- package/dist/util/storageAdapter.js +25 -0
- package/dist/util/storageAdapter.js.map +1 -0
- package/package.json +6 -4
- package/test_output.txt +3 -3
- package/INTEGRATION-SUMMARY.md +0 -232
- package/TEST-STATUS.md +0 -168
- package/dist/content/issues.js +0 -331
- package/dist/content/issues.js.map +0 -1
- package/dist/content/releaseNotes.js +0 -90
- package/dist/content/releaseNotes.js.map +0 -1
- package/dist/prompt/commit.js +0 -76
- package/dist/prompt/commit.js.map +0 -1
- package/dist/prompt/instructions/commit.md +0 -133
- package/dist/prompt/instructions/release.md +0 -188
- package/dist/prompt/instructions/review.md +0 -169
- package/dist/prompt/personas/releaser.md +0 -24
- package/dist/prompt/personas/you.md +0 -55
- package/dist/prompt/release.js +0 -100
- package/dist/prompt/release.js.map +0 -1
- package/dist/prompt/review.js +0 -64
- package/dist/prompt/review.js.map +0 -1
- package/dist/util/github.js +0 -1071
- package/dist/util/github.js.map +0 -1
- package/dist/util/openai.js +0 -365
- package/dist/util/openai.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"release.js","sources":["../../src/prompt/release.ts"],"sourcesContent":["import { ContentItem, Prompt, recipe } from '@riotprompt/riotprompt';\nimport path from 'path';\nimport { fileURLToPath } from 'url';\n\nconst __filename = fileURLToPath(import.meta.url);\nconst __dirname = path.dirname(__filename);\n\n// Types for the release prompt\nexport type Config = {\n overridePaths?: string[];\n overrides?: boolean;\n}\n\nexport type Content = {\n releaseFocus?: string;\n logContent: string;\n diffContent: string;\n milestoneIssues?: string;\n};\n\nexport type Context = {\n context?: string;\n directories?: string[];\n};\n\nexport type ReleasePromptResult = {\n prompt: Prompt;\n maxTokens: number;\n isLargeRelease: boolean;\n};\n\n/**\n * Analyzes release content to determine if it's a large release\n * and calculates appropriate token limits\n */\nconst analyzeReleaseSize = (logContent: string, diffContent?: string, milestoneIssues?: string): { isLarge: boolean; maxTokens: number } => {\n const logLines = logContent.split('\\n').length;\n const diffLines = diffContent ? diffContent.split('\\n').length : 0;\n const milestoneLines = milestoneIssues ? milestoneIssues.split('\\n').length : 0;\n const totalContentLength = logContent.length + (diffContent?.length || 0) + (milestoneIssues?.length || 0);\n\n // Consider it a large release if:\n // - More than 20 commits (log lines typically ~3-5 per commit)\n // - More than 500 diff lines\n // - Milestone issues present (indicates significant work)\n // - Total content length > 50KB\n const isLarge = logLines > 60 || diffLines > 500 || milestoneLines > 50 || totalContentLength > 50000;\n\n if (isLarge) {\n // For large releases, significantly increase token limit\n return { isLarge: true, maxTokens: 25000 };\n } else {\n // Standard token limit for normal releases\n return { isLarge: false, maxTokens: 10000 };\n }\n};\n\n/**\n * Build a release prompt using RiotPrompt Recipes.\n */\nexport const createPrompt = async (\n { overrides: _overrides, overridePaths: _overridePaths }: Config,\n { releaseFocus, logContent, diffContent, milestoneIssues }: Content,\n { context, directories }: Context = {}\n): Promise<ReleasePromptResult> => {\n const basePath = __dirname;\n\n // Analyze release size to determine token requirements\n const { isLarge: isLargeRelease, maxTokens } = analyzeReleaseSize(logContent, diffContent, milestoneIssues);\n\n // Build content items for the prompt\n const contentItems: ContentItem[] = [];\n const contextItems: ContentItem[] = [];\n\n if (diffContent) {\n contentItems.push({ content: diffContent, title: 'Diff' });\n }\n if (logContent) {\n contentItems.push({ content: logContent, title: 'Log Context' });\n }\n if (milestoneIssues) {\n contentItems.push({ content: milestoneIssues, title: 'Resolved Issues from Milestone' });\n }\n if (releaseFocus) {\n contentItems.push({ content: releaseFocus, title: 'Release Focus' });\n }\n\n // Add release size context to help guide the AI\n if (isLargeRelease) {\n contextItems.push({\n content: `This appears to be a LARGE RELEASE with significant changes. Please provide comprehensive, detailed release notes that thoroughly document all major changes, improvements, and fixes. Don't summarize - dive deep into the details.`,\n title: 'Release Size Context'\n });\n }\n\n if (context) {\n contextItems.push({ content: context, title: 'User Context' });\n }\n if (directories && directories.length > 0) {\n contextItems.push({ directories, title: 'Directories' });\n }\n\n const prompt = await recipe(basePath)\n .persona({ path: 'personas/releaser.md' })\n .instructions({ path: 'instructions/release.md' })\n .overridePaths(_overridePaths ?? [])\n .overrides(_overrides ?? true)\n .content(...contentItems)\n .context(...contextItems)\n .cook();\n\n return {\n prompt,\n maxTokens,\n isLargeRelease\n };\n};\n"],"names":["__filename","fileURLToPath","url","__dirname","path","dirname","analyzeReleaseSize","logContent","diffContent","milestoneIssues","logLines","split","length","diffLines","milestoneLines","totalContentLength","isLarge","maxTokens","createPrompt","overrides","_overrides","overridePaths","_overridePaths","releaseFocus","context","directories","basePath","isLargeRelease","contentItems","contextItems","push","content","title","prompt","recipe","persona","instructions","cook"],"mappings":"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"}
|
package/dist/prompt/review.js
DELETED
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
import { recipe } from '@riotprompt/riotprompt';
|
|
2
|
-
import path__default from 'path';
|
|
3
|
-
import { fileURLToPath } from 'url';
|
|
4
|
-
|
|
5
|
-
const __filename = fileURLToPath(import.meta.url);
|
|
6
|
-
const __dirname = path__default.dirname(__filename);
|
|
7
|
-
/**
|
|
8
|
-
* Build a review prompt using RiotPrompt Recipes.
|
|
9
|
-
*/ const createPrompt = async ({ overridePaths: _overridePaths, overrides: _overrides }, { notes }, { logContext, diffContext, releaseNotesContext, issuesContext, context, directories } = {})=>{
|
|
10
|
-
const basePath = __dirname;
|
|
11
|
-
// Build content items for the prompt
|
|
12
|
-
const contentItems = [];
|
|
13
|
-
const contextItems = [];
|
|
14
|
-
if (notes) {
|
|
15
|
-
contentItems.push({
|
|
16
|
-
content: notes,
|
|
17
|
-
title: 'Review Notes'
|
|
18
|
-
});
|
|
19
|
-
}
|
|
20
|
-
if (logContext) {
|
|
21
|
-
contextItems.push({
|
|
22
|
-
content: logContext,
|
|
23
|
-
title: 'Log Context'
|
|
24
|
-
});
|
|
25
|
-
}
|
|
26
|
-
if (diffContext) {
|
|
27
|
-
contextItems.push({
|
|
28
|
-
content: diffContext,
|
|
29
|
-
title: 'Diff Context'
|
|
30
|
-
});
|
|
31
|
-
}
|
|
32
|
-
if (releaseNotesContext) {
|
|
33
|
-
contextItems.push({
|
|
34
|
-
content: releaseNotesContext,
|
|
35
|
-
title: 'Release Notes Context'
|
|
36
|
-
});
|
|
37
|
-
}
|
|
38
|
-
if (issuesContext) {
|
|
39
|
-
contextItems.push({
|
|
40
|
-
content: issuesContext,
|
|
41
|
-
title: 'Issues Context'
|
|
42
|
-
});
|
|
43
|
-
}
|
|
44
|
-
if (context) {
|
|
45
|
-
contextItems.push({
|
|
46
|
-
content: context,
|
|
47
|
-
title: 'User Context'
|
|
48
|
-
});
|
|
49
|
-
}
|
|
50
|
-
if (directories && directories.length > 0) {
|
|
51
|
-
contextItems.push({
|
|
52
|
-
directories,
|
|
53
|
-
title: 'Directories'
|
|
54
|
-
});
|
|
55
|
-
}
|
|
56
|
-
return recipe(basePath).persona({
|
|
57
|
-
path: 'personas/you.md'
|
|
58
|
-
}).instructions({
|
|
59
|
-
path: 'instructions/review.md'
|
|
60
|
-
}).overridePaths(_overridePaths !== null && _overridePaths !== void 0 ? _overridePaths : []).overrides(_overrides !== null && _overrides !== void 0 ? _overrides : true).content(...contentItems).context(...contextItems).cook();
|
|
61
|
-
};
|
|
62
|
-
|
|
63
|
-
export { createPrompt };
|
|
64
|
-
//# sourceMappingURL=review.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"review.js","sources":["../../src/prompt/review.ts"],"sourcesContent":["import { ContentItem, Prompt, recipe } from '@riotprompt/riotprompt';\nimport path from 'path';\nimport { fileURLToPath } from 'url';\n\nconst __filename = fileURLToPath(import.meta.url);\nconst __dirname = path.dirname(__filename);\n\nexport type Config = {\n overridePaths?: string[];\n overrides?: boolean;\n}\n\nexport type Content = {\n notes: string;\n};\n\nexport type Context = {\n logContext?: string;\n diffContext?: string;\n releaseNotesContext?: string;\n issuesContext?: string;\n context?: string;\n directories?: string[];\n};\n\n/**\n * Build a review prompt using RiotPrompt Recipes.\n */\nexport const createPrompt = async (\n { overridePaths: _overridePaths, overrides: _overrides }: Config,\n { notes }: Content,\n { logContext, diffContext, releaseNotesContext, issuesContext, context, directories }: Context = {}\n): Promise<Prompt> => {\n const basePath = __dirname;\n\n // Build content items for the prompt\n const contentItems: ContentItem[] = [];\n const contextItems: ContentItem[] = [];\n\n if (notes) {\n contentItems.push({ content: notes, title: 'Review Notes' });\n }\n\n if (logContext) {\n contextItems.push({ content: logContext, title: 'Log Context' });\n }\n if (diffContext) {\n contextItems.push({ content: diffContext, title: 'Diff Context' });\n }\n if (releaseNotesContext) {\n contextItems.push({ content: releaseNotesContext, title: 'Release Notes Context' });\n }\n if (issuesContext) {\n contextItems.push({ content: issuesContext, title: 'Issues Context' });\n }\n if (context) {\n contextItems.push({ content: context, title: 'User Context' });\n }\n if (directories && directories.length > 0) {\n contextItems.push({ directories, title: 'Directories' });\n }\n\n return recipe(basePath)\n .persona({ path: 'personas/you.md' })\n .instructions({ path: 'instructions/review.md' })\n .overridePaths(_overridePaths ?? [])\n .overrides(_overrides ?? true)\n .content(...contentItems)\n .context(...contextItems)\n .cook();\n}; "],"names":["__filename","fileURLToPath","url","__dirname","path","dirname","createPrompt","overridePaths","_overridePaths","overrides","_overrides","notes","logContext","diffContext","releaseNotesContext","issuesContext","context","directories","basePath","contentItems","contextItems","push","content","title","length","recipe","persona","instructions","cook"],"mappings":";;;;AAIA,MAAMA,UAAAA,GAAaC,aAAAA,CAAc,MAAA,CAAA,IAAA,CAAYC,GAAG,CAAA;AAChD,MAAMC,SAAAA,GAAYC,aAAAA,CAAKC,OAAO,CAACL,UAAAA,CAAAA;AAoB/B;;AAEC,IACM,MAAMM,YAAAA,GAAe,OACxB,EAAEC,aAAAA,EAAeC,cAAc,EAAEC,SAAAA,EAAWC,UAAU,EAAU,EAChE,EAAEC,KAAK,EAAW,EAClB,EAAEC,UAAU,EAAEC,WAAW,EAAEC,mBAAmB,EAAEC,aAAa,EAAEC,OAAO,EAAEC,WAAW,EAAW,GAAG,EAAE,GAAA;AAEnG,IAAA,MAAMC,QAAAA,GAAWf,SAAAA;;AAGjB,IAAA,MAAMgB,eAA8B,EAAE;AACtC,IAAA,MAAMC,eAA8B,EAAE;AAEtC,IAAA,IAAIT,KAAAA,EAAO;AACPQ,QAAAA,YAAAA,CAAaE,IAAI,CAAC;YAAEC,OAAAA,EAASX,KAAAA;YAAOY,KAAAA,EAAO;AAAe,SAAA,CAAA;AAC9D,IAAA;AAEA,IAAA,IAAIX,UAAAA,EAAY;AACZQ,QAAAA,YAAAA,CAAaC,IAAI,CAAC;YAAEC,OAAAA,EAASV,UAAAA;YAAYW,KAAAA,EAAO;AAAc,SAAA,CAAA;AAClE,IAAA;AACA,IAAA,IAAIV,WAAAA,EAAa;AACbO,QAAAA,YAAAA,CAAaC,IAAI,CAAC;YAAEC,OAAAA,EAAST,WAAAA;YAAaU,KAAAA,EAAO;AAAe,SAAA,CAAA;AACpE,IAAA;AACA,IAAA,IAAIT,mBAAAA,EAAqB;AACrBM,QAAAA,YAAAA,CAAaC,IAAI,CAAC;YAAEC,OAAAA,EAASR,mBAAAA;YAAqBS,KAAAA,EAAO;AAAwB,SAAA,CAAA;AACrF,IAAA;AACA,IAAA,IAAIR,aAAAA,EAAe;AACfK,QAAAA,YAAAA,CAAaC,IAAI,CAAC;YAAEC,OAAAA,EAASP,aAAAA;YAAeQ,KAAAA,EAAO;AAAiB,SAAA,CAAA;AACxE,IAAA;AACA,IAAA,IAAIP,OAAAA,EAAS;AACTI,QAAAA,YAAAA,CAAaC,IAAI,CAAC;YAAEC,OAAAA,EAASN,OAAAA;YAASO,KAAAA,EAAO;AAAe,SAAA,CAAA;AAChE,IAAA;AACA,IAAA,IAAIN,WAAAA,IAAeA,WAAAA,CAAYO,MAAM,GAAG,CAAA,EAAG;AACvCJ,QAAAA,YAAAA,CAAaC,IAAI,CAAC;AAAEJ,YAAAA,WAAAA;YAAaM,KAAAA,EAAO;AAAc,SAAA,CAAA;AAC1D,IAAA;IAEA,OAAOE,MAAAA,CAAOP,QAAAA,CAAAA,CACTQ,OAAO,CAAC;QAAEtB,IAAAA,EAAM;AAAkB,KAAA,CAAA,CAClCuB,YAAY,CAAC;QAAEvB,IAAAA,EAAM;AAAyB,KAAA,CAAA,CAC9CG,aAAa,CAACC,cAAAA,KAAAA,IAAAA,IAAAA,4BAAAA,cAAAA,GAAkB,EAAE,EAClCC,SAAS,CAACC,uBAAAA,UAAAA,KAAAA,MAAAA,GAAAA,UAAAA,GAAc,MACxBY,OAAO,CAAA,GAAIH,cACXH,OAAO,CAAA,GAAII,cACXQ,IAAI,EAAA;AACb;;;;"}
|