@xdevops/issue-auto-finish 1.0.2 → 1.0.3

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 (133) hide show
  1. package/dist/KnowledgeAnalyzer-EZSJT2MJ.js +13 -0
  2. package/dist/KnowledgeAnalyzer-EZSJT2MJ.js.map +1 -0
  3. package/dist/KnowledgeStore-4ROC6F56.js +10 -0
  4. package/dist/KnowledgeStore-4ROC6F56.js.map +1 -0
  5. package/dist/ai-runner/AIRunner.d.ts +2 -0
  6. package/dist/ai-runner/AIRunner.d.ts.map +1 -1
  7. package/dist/ai-runner/BaseAIRunner.d.ts +9 -0
  8. package/dist/ai-runner/BaseAIRunner.d.ts.map +1 -1
  9. package/dist/ai-runner-RGAJPOOW.js +16 -0
  10. package/dist/ai-runner-RGAJPOOW.js.map +1 -0
  11. package/dist/analyze-I7UOJB4F.js +72 -0
  12. package/dist/analyze-I7UOJB4F.js.map +1 -0
  13. package/dist/chunk-3JUHZGX5.js +171 -0
  14. package/dist/chunk-3JUHZGX5.js.map +1 -0
  15. package/dist/chunk-5JYCGAU3.js +318 -0
  16. package/dist/chunk-5JYCGAU3.js.map +1 -0
  17. package/dist/chunk-5VUB3UUK.js +643 -0
  18. package/dist/chunk-5VUB3UUK.js.map +1 -0
  19. package/dist/{chunk-IDUKWCC2.js → chunk-C6ZJVIPZ.js} +1151 -80
  20. package/dist/chunk-C6ZJVIPZ.js.map +1 -0
  21. package/dist/{chunk-OWVT3Z34.js → chunk-JFYAXNNS.js} +121 -31
  22. package/dist/chunk-JFYAXNNS.js.map +1 -0
  23. package/dist/chunk-KISVPNSV.js +188 -0
  24. package/dist/chunk-KISVPNSV.js.map +1 -0
  25. package/dist/{chunk-I3T573SU.js → chunk-LEQYGOMJ.js} +65 -2
  26. package/dist/chunk-LEQYGOMJ.js.map +1 -0
  27. package/dist/{chunk-TBIEB3JY.js → chunk-N5YK6YVI.js} +592 -767
  28. package/dist/chunk-N5YK6YVI.js.map +1 -0
  29. package/dist/{chunk-RIUI4ROA.js → chunk-PECYMYAK.js} +2 -2
  30. package/dist/chunk-SWG2Y7YX.js +410 -0
  31. package/dist/chunk-SWG2Y7YX.js.map +1 -0
  32. package/dist/chunk-TZ6C7HL5.js +59 -0
  33. package/dist/chunk-TZ6C7HL5.js.map +1 -0
  34. package/dist/cli/commands/analyze.d.ts +8 -0
  35. package/dist/cli/commands/analyze.d.ts.map +1 -0
  36. package/dist/cli.js +67 -3
  37. package/dist/cli.js.map +1 -1
  38. package/dist/clients/GongfengClient.d.ts +5 -0
  39. package/dist/clients/GongfengClient.d.ts.map +1 -1
  40. package/dist/config-RI7NLDXI.js +7 -0
  41. package/dist/config-RI7NLDXI.js.map +1 -0
  42. package/dist/config.d.ts +19 -0
  43. package/dist/config.d.ts.map +1 -1
  44. package/dist/{doctor-B26Q6JWI.js → doctor-ZPGIBA5N.js} +3 -3
  45. package/dist/events/EventBus.d.ts +1 -1
  46. package/dist/events/EventBus.d.ts.map +1 -1
  47. package/dist/git/GitOperations.d.ts +12 -0
  48. package/dist/git/GitOperations.d.ts.map +1 -1
  49. package/dist/i18n/locales/en.d.ts.map +1 -1
  50. package/dist/i18n/locales/zh-CN.d.ts.map +1 -1
  51. package/dist/index.d.ts.map +1 -1
  52. package/dist/index.js +11 -5
  53. package/dist/{init-L3VIWCOV.js → init-LZGCIHE7.js} +8 -4
  54. package/dist/{init-L3VIWCOV.js.map → init-LZGCIHE7.js.map} +1 -1
  55. package/dist/knowledge/KnowledgeAnalyzer.d.ts +31 -0
  56. package/dist/knowledge/KnowledgeAnalyzer.d.ts.map +1 -0
  57. package/dist/knowledge/KnowledgeDefaults.d.ts +7 -0
  58. package/dist/knowledge/KnowledgeDefaults.d.ts.map +1 -0
  59. package/dist/knowledge/KnowledgeEntry.d.ts +30 -0
  60. package/dist/knowledge/KnowledgeEntry.d.ts.map +1 -0
  61. package/dist/knowledge/KnowledgeLoader.d.ts +18 -0
  62. package/dist/knowledge/KnowledgeLoader.d.ts.map +1 -0
  63. package/dist/knowledge/KnowledgeStore.d.ts +35 -0
  64. package/dist/knowledge/KnowledgeStore.d.ts.map +1 -0
  65. package/dist/knowledge/ProjectKnowledge.d.ts +79 -0
  66. package/dist/knowledge/ProjectKnowledge.d.ts.map +1 -0
  67. package/dist/knowledge/analyze-prompt.d.ts +2 -0
  68. package/dist/knowledge/analyze-prompt.d.ts.map +1 -0
  69. package/dist/knowledge/importers/GongfengExtractor.d.ts +27 -0
  70. package/dist/knowledge/importers/GongfengExtractor.d.ts.map +1 -0
  71. package/dist/knowledge/importers/IwikiImporter.d.ts +21 -0
  72. package/dist/knowledge/importers/IwikiImporter.d.ts.map +1 -0
  73. package/dist/knowledge/index.d.ts +12 -0
  74. package/dist/knowledge/index.d.ts.map +1 -0
  75. package/dist/lib.js +19 -10
  76. package/dist/orchestrator/PipelineOrchestrator.d.ts +5 -1
  77. package/dist/orchestrator/PipelineOrchestrator.d.ts.map +1 -1
  78. package/dist/phases/BasePhase.d.ts.map +1 -1
  79. package/dist/poller/IssuePoller.d.ts +5 -0
  80. package/dist/poller/IssuePoller.d.ts.map +1 -1
  81. package/dist/prompts/chat-templates.d.ts +4 -0
  82. package/dist/prompts/chat-templates.d.ts.map +1 -0
  83. package/dist/prompts/templates.d.ts +11 -0
  84. package/dist/prompts/templates.d.ts.map +1 -1
  85. package/dist/rules/RuleResolver.d.ts +4 -0
  86. package/dist/rules/RuleResolver.d.ts.map +1 -1
  87. package/dist/run.js +11 -5
  88. package/dist/run.js.map +1 -1
  89. package/dist/services/ChatService.d.ts +39 -0
  90. package/dist/services/ChatService.d.ts.map +1 -0
  91. package/dist/shutdown/ShutdownSignal.d.ts +3 -0
  92. package/dist/shutdown/ShutdownSignal.d.ts.map +1 -0
  93. package/dist/{start-TVN4SS6E.js → start-NMQHUKGF.js} +1 -1
  94. package/dist/tracker/IssueState.d.ts +1 -0
  95. package/dist/tracker/IssueState.d.ts.map +1 -1
  96. package/dist/tracker/IssueTracker.d.ts +2 -0
  97. package/dist/tracker/IssueTracker.d.ts.map +1 -1
  98. package/dist/updater/AutoUpdater.d.ts +33 -0
  99. package/dist/updater/AutoUpdater.d.ts.map +1 -0
  100. package/dist/updater/UpdateExecutor.d.ts +7 -0
  101. package/dist/updater/UpdateExecutor.d.ts.map +1 -0
  102. package/dist/updater/VersionChecker.d.ts +22 -0
  103. package/dist/updater/VersionChecker.d.ts.map +1 -0
  104. package/dist/web/WebServer.d.ts +4 -0
  105. package/dist/web/WebServer.d.ts.map +1 -1
  106. package/dist/web/routes/api.d.ts +4 -0
  107. package/dist/web/routes/api.d.ts.map +1 -1
  108. package/dist/web/routes/chat.d.ts +7 -0
  109. package/dist/web/routes/chat.d.ts.map +1 -0
  110. package/dist/web/routes/knowledge.d.ts +13 -0
  111. package/dist/web/routes/knowledge.d.ts.map +1 -0
  112. package/dist/web/routes/setup.d.ts.map +1 -1
  113. package/dist/webhook/CommandExecutor.d.ts +4 -0
  114. package/dist/webhook/CommandExecutor.d.ts.map +1 -1
  115. package/dist/webhook/CommandParser.d.ts +2 -2
  116. package/dist/webhook/CommandParser.d.ts.map +1 -1
  117. package/dist/webhook/WebhookHandler.d.ts +8 -0
  118. package/dist/webhook/WebhookHandler.d.ts.map +1 -1
  119. package/dist/webhook/WebhookServer.d.ts +2 -0
  120. package/dist/webhook/WebhookServer.d.ts.map +1 -1
  121. package/package.json +4 -2
  122. package/src/web/frontend/dist/assets/index-AcJ0lPIv.js +67 -0
  123. package/src/web/frontend/dist/assets/index-BbRt5BAr.css +1 -0
  124. package/src/web/frontend/dist/index.html +2 -2
  125. package/dist/chunk-I3T573SU.js.map +0 -1
  126. package/dist/chunk-IDUKWCC2.js.map +0 -1
  127. package/dist/chunk-OWVT3Z34.js.map +0 -1
  128. package/dist/chunk-TBIEB3JY.js.map +0 -1
  129. package/src/web/frontend/dist/assets/index-CQdlU9PE.js +0 -65
  130. package/src/web/frontend/dist/assets/index-CgMEkyZJ.css +0 -1
  131. /package/dist/{chunk-RIUI4ROA.js.map → chunk-PECYMYAK.js.map} +0 -0
  132. /package/dist/{doctor-B26Q6JWI.js.map → doctor-ZPGIBA5N.js.map} +0 -0
  133. /package/dist/{start-TVN4SS6E.js.map → start-NMQHUKGF.js.map} +0 -0
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/cli/index.ts"],"sourcesContent":["#!/usr/bin/env node\n\nimport { Command } from 'commander';\nimport { readFileSync, existsSync } from 'node:fs';\nimport { fileURLToPath } from 'node:url';\nimport path from 'node:path';\n\nconst __dirname = path.dirname(fileURLToPath(import.meta.url));\n\nfunction findPackageJson(): string {\n for (let dir = __dirname; dir !== path.dirname(dir); dir = path.dirname(dir)) {\n const candidate = path.join(dir, 'package.json');\n if (existsSync(candidate)) {\n try {\n const content = JSON.parse(readFileSync(candidate, 'utf-8'));\n if (content.name === 'issue-auto-finish') return candidate;\n } catch { /* skip */ }\n }\n }\n return path.resolve(__dirname, '../package.json');\n}\n\nconst pkg = JSON.parse(readFileSync(findPackageJson(), 'utf-8'));\n\nconst program = new Command();\n\nprogram\n .name('issue-auto-finish')\n .description('Issue Auto-Finish: AI-powered issue resolution daemon')\n .version(pkg.version);\n\nprogram\n .command('init')\n .description('Launch the interactive web setup wizard')\n .option('-p, --port <port>', 'Port for the setup wizard', '3456')\n .option('-c, --config <path>', 'Config file path to generate')\n .action(async (opts) => {\n const { initCommand } = await import('./commands/init.js');\n await initCommand({ port: parseInt(opts.port, 10), config: opts.config });\n });\n\nprogram\n .command('start')\n .description('Start the issue-auto-finish daemon service')\n .option('-c, --config <path>', 'Path to .env config file')\n .action(async (opts) => {\n const { startCommand } = await import('./commands/start.js');\n await startCommand({ config: opts.config });\n });\n\nprogram\n .command('doctor')\n .description('Check environment dependencies')\n .action(async () => {\n const { doctorCommand } = await import('./commands/doctor.js');\n await doctorCommand();\n });\n\nprogram\n .command('status')\n .description('Show service status')\n .option('-p, --port <port>', 'Web UI port to query', '3000')\n .action(async (opts) => {\n const port = parseInt(opts.port, 10);\n try {\n const resp = await fetch(`http://localhost:${port}/api/system/status`, {\n signal: AbortSignal.timeout(5000),\n });\n if (!resp.ok) {\n console.error(` Service returned HTTP ${resp.status}`);\n process.exitCode = 1;\n return;\n }\n const status = await resp.json() as Record<string, unknown>;\n console.log('\\n Issue Auto-Finish Status\\n');\n const cfg = status.config as Record<string, unknown> | undefined;\n const issues = status.issues as Record<string, unknown> | undefined;\n console.log(` Uptime: ${formatUptime(status.uptime as number)}`);\n console.log(` AI Mode: ${cfg?.aiMode ?? 'unknown'}`);\n console.log(` Pipeline: ${cfg?.pipelineMode ?? 'unknown'}`);\n console.log(` Issues: ${issues?.total ?? 0} total, ${issues?.active ?? 0} active`);\n console.log('');\n } catch {\n console.error(`\\n Cannot connect to service at localhost:${port}.`);\n console.error(' Is the service running? Start with: issue-auto-finish start\\n');\n process.exitCode = 1;\n }\n });\n\nfunction formatUptime(ms: number): string {\n const s = Math.floor(ms / 1000);\n const h = Math.floor(s / 3600);\n const m = Math.floor((s % 3600) / 60);\n if (h > 0) return `${h}h ${m}m`;\n if (m > 0) return `${m}m ${s % 60}s`;\n return `${s}s`;\n}\n\nprogram.parse();\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../src/cli/index.ts"],"sourcesContent":["#!/usr/bin/env node\n\nimport { Command } from 'commander';\nimport { readFileSync, existsSync } from 'node:fs';\nimport { fileURLToPath } from 'node:url';\nimport path from 'node:path';\n\nconst __dirname = path.dirname(fileURLToPath(import.meta.url));\n\nfunction findPackageJson(): string {\n for (let dir = __dirname; dir !== path.dirname(dir); dir = path.dirname(dir)) {\n const candidate = path.join(dir, 'package.json');\n if (existsSync(candidate)) {\n try {\n const content = JSON.parse(readFileSync(candidate, 'utf-8'));\n if (content.name === 'issue-auto-finish') return candidate;\n } catch { /* skip */ }\n }\n }\n return path.resolve(__dirname, '../package.json');\n}\n\nconst pkg = JSON.parse(readFileSync(findPackageJson(), 'utf-8'));\n\nconst program = new Command();\n\nprogram\n .name('issue-auto-finish')\n .description('Issue Auto-Finish: AI-powered issue resolution daemon')\n .version(pkg.version);\n\nprogram\n .command('init')\n .description('Launch the interactive web setup wizard')\n .option('-p, --port <port>', 'Port for the setup wizard', '3456')\n .option('-c, --config <path>', 'Config file path to generate')\n .action(async (opts) => {\n const { initCommand } = await import('./commands/init.js');\n await initCommand({ port: parseInt(opts.port, 10), config: opts.config });\n });\n\nprogram\n .command('start')\n .description('Start the issue-auto-finish daemon service')\n .option('-c, --config <path>', 'Path to .env config file')\n .action(async (opts) => {\n const { startCommand } = await import('./commands/start.js');\n await startCommand({ config: opts.config });\n });\n\nprogram\n .command('doctor')\n .description('Check environment dependencies')\n .action(async () => {\n const { doctorCommand } = await import('./commands/doctor.js');\n await doctorCommand();\n });\n\nprogram\n .command('analyze')\n .description('Analyze target repository and generate knowledge.json')\n .option('-d, --dir <path>', 'Project directory to analyze (defaults to PROJECT_WORK_DIR)')\n .option('-o, --output <path>', 'Output path for knowledge.json')\n .option('-f, --force', 'Overwrite existing knowledge.json')\n .action(async (opts) => {\n const { analyzeCommand } = await import('./commands/analyze.js');\n await analyzeCommand({ dir: opts.dir, output: opts.output, force: opts.force });\n });\n\nprogram\n .command('status')\n .description('Show service status')\n .option('-p, --port <port>', 'Web UI port to query', '3000')\n .action(async (opts) => {\n const port = parseInt(opts.port, 10);\n try {\n const resp = await fetch(`http://localhost:${port}/api/system/status`, {\n signal: AbortSignal.timeout(5000),\n });\n if (!resp.ok) {\n console.error(` Service returned HTTP ${resp.status}`);\n process.exitCode = 1;\n return;\n }\n const status = await resp.json() as Record<string, unknown>;\n console.log('\\n Issue Auto-Finish Status\\n');\n const cfg = status.config as Record<string, unknown> | undefined;\n const issues = status.issues as Record<string, unknown> | undefined;\n console.log(` Uptime: ${formatUptime(status.uptime as number)}`);\n console.log(` AI Mode: ${cfg?.aiMode ?? 'unknown'}`);\n console.log(` Pipeline: ${cfg?.pipelineMode ?? 'unknown'}`);\n console.log(` Issues: ${issues?.total ?? 0} total, ${issues?.active ?? 0} active`);\n console.log('');\n } catch {\n console.error(`\\n Cannot connect to service at localhost:${port}.`);\n console.error(' Is the service running? Start with: issue-auto-finish start\\n');\n process.exitCode = 1;\n }\n });\n\nfunction formatUptime(ms: number): string {\n const s = Math.floor(ms / 1000);\n const h = Math.floor(s / 3600);\n const m = Math.floor((s % 3600) / 60);\n if (h > 0) return `${h}h ${m}m`;\n if (m > 0) return `${m}m ${s % 60}s`;\n return `${s}s`;\n}\n\nprogram\n .command('update')\n .description('Check for updates or trigger an update')\n .option('--check', 'Only check for a new version without updating')\n .option('-p, --port <port>', 'Web UI port to query', '3000')\n .action(async (opts) => {\n const port = parseInt(opts.port, 10);\n const checkOnly = !!opts.check;\n\n try {\n if (checkOnly) {\n const resp = await fetch(`http://localhost:${port}/api/system/update-check`, {\n method: 'POST',\n signal: AbortSignal.timeout(20_000),\n });\n if (!resp.ok) {\n const body = await resp.json() as { error?: string };\n console.error(` Check failed: ${body.error ?? resp.statusText}`);\n process.exitCode = 1;\n return;\n }\n const result = await resp.json() as { currentVersion: string; latestVersion: string; hasUpdate: boolean };\n console.log(`\\n Current version: ${result.currentVersion}`);\n console.log(` Latest version: ${result.latestVersion}`);\n console.log(` Update available: ${result.hasUpdate ? 'Yes' : 'No'}\\n`);\n } else {\n // First check\n const checkResp = await fetch(`http://localhost:${port}/api/system/update-check`, {\n method: 'POST',\n signal: AbortSignal.timeout(20_000),\n });\n if (!checkResp.ok) {\n const body = await checkResp.json() as { error?: string };\n console.error(` Check failed: ${body.error ?? checkResp.statusText}`);\n process.exitCode = 1;\n return;\n }\n const result = await checkResp.json() as { currentVersion: string; latestVersion: string; hasUpdate: boolean };\n if (!result.hasUpdate) {\n console.log(`\\n Already up to date (v${result.currentVersion})\\n`);\n return;\n }\n\n console.log(`\\n Updating from v${result.currentVersion} to v${result.latestVersion}...`);\n const updateResp = await fetch(`http://localhost:${port}/api/system/update`, {\n method: 'POST',\n signal: AbortSignal.timeout(10_000),\n });\n if (!updateResp.ok) {\n const body = await updateResp.json() as { error?: string };\n console.error(` Update trigger failed: ${body.error ?? updateResp.statusText}`);\n process.exitCode = 1;\n return;\n }\n console.log(' Update triggered. The service will restart automatically via PM2.\\n');\n }\n } catch {\n console.error(`\\n Cannot connect to service at localhost:${port}.`);\n console.error(' Is the service running? Start with: issue-auto-finish start\\n');\n process.exitCode = 1;\n }\n });\n\nprogram.parse();\n"],"mappings":"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","names":[]}
@@ -32,6 +32,10 @@ export interface GongfengMergeRequest {
32
32
  source_branch?: string;
33
33
  target_branch?: string;
34
34
  }
35
+ export interface GongfengMergeRequestDetail extends GongfengMergeRequest {
36
+ has_conflicts: boolean;
37
+ merge_status: string;
38
+ }
35
39
  export interface UploadResult {
36
40
  alt: string;
37
41
  url: string;
@@ -81,6 +85,7 @@ export declare class GongfengClient {
81
85
  listIssueNotes(issueId: number): Promise<GongfengNote[]>;
82
86
  deleteIssueNote(issueId: number, noteId: number): Promise<void>;
83
87
  cleanupAgentNotes(issueId: number): Promise<number>;
88
+ getMergeRequestDetail(mrIid: number): Promise<GongfengMergeRequestDetail>;
84
89
  addLabel(issueId: number, label: string): Promise<void>;
85
90
  }
86
91
  //# sourceMappingURL=GongfengClient.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"GongfengClient.d.ts","sourceRoot":"","sources":["../../src/clients/GongfengClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GongfengClient.d.ts","sourceRoot":"","sources":["../../src/clients/GongfengClient.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import {
2
+ loadConfig
3
+ } from "./chunk-KISVPNSV.js";
4
+ export {
5
+ loadConfig
6
+ };
7
+ //# sourceMappingURL=config-RI7NLDXI.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
package/dist/config.d.ts CHANGED
@@ -79,7 +79,25 @@ export interface Config {
79
79
  generator: BrainstormAgentConfig;
80
80
  reviewer: BrainstormAgentConfig;
81
81
  };
82
+ chat: {
83
+ enabled: boolean;
84
+ timeoutMs: number;
85
+ maxSessionMessages: number;
86
+ agent: ChatAgentConfig;
87
+ };
88
+ autoUpdate: {
89
+ enabled: boolean;
90
+ intervalMs: number;
91
+ registry: string;
92
+ drainTimeoutMs: number;
93
+ };
94
+ iwiki?: {
95
+ authCookie?: string;
96
+ authToken?: string;
97
+ baseUrl?: string;
98
+ };
82
99
  locale: 'zh-CN' | 'en';
100
+ knowledgePath?: string;
83
101
  }
84
102
  export type AIRunnerMode = 'claude-internal' | 'cursor-agent' | 'codebuddy';
85
103
  export interface BrainstormAgentConfig {
@@ -88,5 +106,6 @@ export interface BrainstormAgentConfig {
88
106
  nvmNodeVersion: string;
89
107
  model?: string;
90
108
  }
109
+ export type ChatAgentConfig = BrainstormAgentConfig;
91
110
  export declare function loadConfig(): Config;
92
111
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  DependencyChecker
3
- } from "./chunk-RIUI4ROA.js";
4
- import "./chunk-OWVT3Z34.js";
3
+ } from "./chunk-PECYMYAK.js";
4
+ import "./chunk-JFYAXNNS.js";
5
5
 
6
6
  // src/cli/commands/doctor.ts
7
7
  async function doctorCommand() {
@@ -30,4 +30,4 @@ async function doctorCommand() {
30
30
  export {
31
31
  doctorCommand
32
32
  };
33
- //# sourceMappingURL=doctor-B26Q6JWI.js.map
33
+ //# sourceMappingURL=doctor-ZPGIBA5N.js.map
@@ -1,5 +1,5 @@
1
1
  import { EventEmitter } from 'node:events';
2
- export type EventType = 'issue:created' | 'issue:stateChanged' | 'issue:failed' | 'issue:deleted' | 'issue:resetForRetry' | 'issue:restarted' | 'issue:retryFromPhase' | 'poll:tick' | 'heartbeat' | 'agent:output' | 'pipeline:progress' | 'review:requested' | 'review:approved' | 'review:rejected';
2
+ export type EventType = 'issue:created' | 'issue:stateChanged' | 'issue:failed' | 'issue:deleted' | 'issue:resetForRetry' | 'issue:restarted' | 'issue:retryFromPhase' | 'poll:tick' | 'heartbeat' | 'agent:output' | 'pipeline:progress' | 'review:requested' | 'review:approved' | 'review:rejected' | 'conflict:started' | 'conflict:resolved' | 'conflict:failed' | 'update:checking' | 'update:available' | 'update:downloading' | 'update:completed' | 'update:failed';
3
3
  export interface EventPayload {
4
4
  type: EventType;
5
5
  data: unknown;
@@ -1 +1 @@
1
- {"version":3,"file":"EventBus.d.ts","sourceRoot":"","sources":["../../src/events/EventBus.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,MAAM,MAAM,SAAS,GACjB,eAAe,GACf,oBAAoB,GACpB,cAAc,GACd,eAAe,GACf,qBAAqB,GACrB,iBAAiB,GACjB,sBAAsB,GACtB,WAAW,GACX,WAAW,GACX,cAAc,GACd,mBAAmB,GACnB,kBAAkB,GAClB,iBAAiB,GACjB,iBAAiB,CAAC;AAEtB,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,EAAE,OAAO,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,cAAM,YAAa,SAAQ,YAAY;IACrC,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO;IAKzD,SAAS,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI;CAQhD;AAED,eAAO,MAAM,QAAQ,cAAqB,CAAC"}
1
+ {"version":3,"file":"EventBus.d.ts","sourceRoot":"","sources":["../../src/events/EventBus.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,MAAM,MAAM,SAAS,GACjB,eAAe,GACf,oBAAoB,GACpB,cAAc,GACd,eAAe,GACf,qBAAqB,GACrB,iBAAiB,GACjB,sBAAsB,GACtB,WAAW,GACX,WAAW,GACX,cAAc,GACd,mBAAmB,GACnB,kBAAkB,GAClB,iBAAiB,GACjB,iBAAiB,GACjB,kBAAkB,GAClB,mBAAmB,GACnB,iBAAiB,GACjB,iBAAiB,GACjB,kBAAkB,GAClB,oBAAoB,GACpB,kBAAkB,GAClB,eAAe,CAAC;AAEpB,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,EAAE,OAAO,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,cAAM,YAAa,SAAQ,YAAY;IACrC,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO;IAKzD,SAAS,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI;CAQhD;AAED,eAAO,MAAM,QAAQ,cAAqB,CAAC"}
@@ -26,5 +26,17 @@ export declare class GitOperations {
26
26
  worktreeRemove(dir: string, force?: boolean): Promise<void>;
27
27
  worktreeList(): Promise<string[]>;
28
28
  showFile(ref: string, filePath: string): Promise<string | null>;
29
+ getConflictFiles(): Promise<string[]>;
30
+ rebase(targetRef: string): Promise<{
31
+ success: boolean;
32
+ conflictFiles: string[];
33
+ }>;
34
+ rebaseContinue(): Promise<{
35
+ done: boolean;
36
+ conflictFiles: string[];
37
+ }>;
38
+ rebaseAbort(): Promise<void>;
39
+ isRebaseInProgress(): Promise<boolean>;
40
+ forcePush(branch: string): Promise<void>;
29
41
  }
30
42
  //# sourceMappingURL=GitOperations.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"GitOperations.d.ts","sourceRoot":"","sources":["../../src/git/GitOperations.ts"],"names":[],"mappings":"AAOA,qBAAa,aAAa;IACxB,OAAO,CAAC,OAAO,CAAS;gBAEZ,OAAO,EAAE,MAAM;YAIb,IAAI;IAUZ,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAO3C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAKtB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOvD,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKvC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAInC,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKtC,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKnC,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAS5C,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IASlD,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC;IAInC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAItB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAIzB,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC;IAK9B,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAK7D,aAAa,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKlD,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMjF,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKzC,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAK/C,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAK9E,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAK/D,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKrE,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,UAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAOzD,YAAY,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAQjC,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;CAOtE"}
1
+ {"version":3,"file":"GitOperations.d.ts","sourceRoot":"","sources":["../../src/git/GitOperations.ts"],"names":[],"mappings":"AAOA,qBAAa,aAAa;IACxB,OAAO,CAAC,OAAO,CAAS;gBAEZ,OAAO,EAAE,MAAM;YAIb,IAAI;IAUZ,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAO3C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAKtB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOvD,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKvC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAInC,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKtC,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKnC,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAS5C,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IASlD,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC;IAInC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAItB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAIzB,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC;IAK9B,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAK7D,aAAa,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKlD,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMjF,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKzC,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAK/C,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAK9E,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAK/D,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKrE,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,UAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAOzD,YAAY,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAQjC,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAQ/D,gBAAgB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAMrC,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,aAAa,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAcjF,cAAc,IAAI,OAAO,CAAC;QAAE,IAAI,EAAE,OAAO,CAAC;QAAC,aAAa,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAcrE,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAK5B,kBAAkB,IAAI,OAAO,CAAC,OAAO,CAAC;IAKtC,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAI/C"}
@@ -1 +1 @@
1
- {"version":3,"file":"en.d.ts","sourceRoot":"","sources":["../../../src/i18n/locales/en.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAwYrC,CAAC"}
1
+ {"version":3,"file":"en.d.ts","sourceRoot":"","sources":["../../../src/i18n/locales/en.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAwbrC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"zh-CN.d.ts","sourceRoot":"","sources":["../../../src/i18n/locales/zh-CN.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAwYvC,CAAC"}
1
+ {"version":3,"file":"zh-CN.d.ts","sourceRoot":"","sources":["../../../src/i18n/locales/zh-CN.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAwbvC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAoBA,wBAAsB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CA6D1C"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAuBA,wBAAsB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CA0G1C"}
package/dist/index.js CHANGED
@@ -1,11 +1,17 @@
1
1
  import {
2
2
  main
3
- } from "./chunk-IDUKWCC2.js";
4
- import "./chunk-TBIEB3JY.js";
5
- import "./chunk-I3T573SU.js";
3
+ } from "./chunk-C6ZJVIPZ.js";
4
+ import "./chunk-LEQYGOMJ.js";
6
5
  import "./chunk-HCHEFK4Z.js";
7
- import "./chunk-RIUI4ROA.js";
8
- import "./chunk-OWVT3Z34.js";
6
+ import "./chunk-PECYMYAK.js";
7
+ import "./chunk-N5YK6YVI.js";
8
+ import "./chunk-3JUHZGX5.js";
9
+ import "./chunk-JFYAXNNS.js";
10
+ import "./chunk-5VUB3UUK.js";
11
+ import "./chunk-5JYCGAU3.js";
12
+ import "./chunk-KISVPNSV.js";
13
+ import "./chunk-SWG2Y7YX.js";
14
+ import "./chunk-TZ6C7HL5.js";
9
15
  export {
10
16
  main
11
17
  };
@@ -1,9 +1,13 @@
1
1
  import {
2
2
  createSetupRouter
3
- } from "./chunk-I3T573SU.js";
3
+ } from "./chunk-LEQYGOMJ.js";
4
4
  import "./chunk-HCHEFK4Z.js";
5
- import "./chunk-RIUI4ROA.js";
6
- import "./chunk-OWVT3Z34.js";
5
+ import "./chunk-PECYMYAK.js";
6
+ import "./chunk-3JUHZGX5.js";
7
+ import "./chunk-JFYAXNNS.js";
8
+ import "./chunk-5VUB3UUK.js";
9
+ import "./chunk-5JYCGAU3.js";
10
+ import "./chunk-TZ6C7HL5.js";
7
11
 
8
12
  // src/cli/commands/init.ts
9
13
  import express from "express";
@@ -62,4 +66,4 @@ async function initCommand(options) {
62
66
  export {
63
67
  initCommand
64
68
  };
65
- //# sourceMappingURL=init-L3VIWCOV.js.map
69
+ //# sourceMappingURL=init-LZGCIHE7.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/cli/commands/init.ts"],"sourcesContent":["import express from 'express';\nimport fs from 'node:fs';\nimport path from 'node:path';\nimport { fileURLToPath } from 'node:url';\nimport { createSetupRouter } from '../../web/routes/setup.js';\n\nconst __dirname = path.dirname(fileURLToPath(import.meta.url));\n\nexport interface InitOptions {\n port: number;\n config?: string;\n}\n\nexport async function initCommand(options: InitOptions): Promise<void> {\n const app = express();\n app.use(express.json());\n\n let serverRef: ReturnType<typeof app.listen> | null = null;\n\n const setupRouter = createSetupRouter({\n configPath: options.config,\n onComplete: (configPath) => {\n console.log(`\\n Configuration saved to: ${configPath}`);\n console.log(' Run \"issue-auto-finish start\" to start the service.\\n');\n setTimeout(() => {\n serverRef?.close();\n process.exit(0);\n }, 1000);\n },\n });\n\n app.use(setupRouter);\n\n const publicDir = path.resolve(process.cwd(), 'src/web/frontend/dist');\n\n if (fs.existsSync(publicDir)) {\n app.use(express.static(publicDir));\n app.get('{*path}', (_req, res) => {\n res.sendFile(path.join(publicDir, 'index.html'));\n });\n } else {\n app.get('/', (_req, res) => {\n res.type('html').send(`<!DOCTYPE html>\n<html><head><title>Issue Auto-Finish Setup</title></head>\n<body style=\"font-family:system-ui;max-width:600px;margin:60px auto;padding:20px\">\n<h1>Issue Auto-Finish Setup</h1>\n<p>Frontend assets not found. Please build the frontend first:</p>\n<pre>cd issue-auto-finish && pnpm web:build</pre>\n<p>Or use the API directly at <code>/api/setup/*</code></p>\n</body></html>`);\n });\n }\n\n serverRef = app.listen(options.port, async () => {\n const url = `http://localhost:${options.port}`;\n console.log(`\\n Issue Auto-Finish Setup Wizard`);\n console.log(` Open: ${url}\\n`);\n\n try {\n const open = (await import('open')).default;\n await open(url);\n } catch {\n // Browser open failed, user can manually navigate\n }\n });\n}\n"],"mappings":";;;;;;;;AAAA,OAAO,aAAa;AACpB,OAAO,QAAQ;AACf,OAAO,UAAU;AACjB,SAAS,qBAAqB;AAG9B,IAAM,YAAY,KAAK,QAAQ,cAAc,YAAY,GAAG,CAAC;AAO7D,eAAsB,YAAY,SAAqC;AACrE,QAAM,MAAM,QAAQ;AACpB,MAAI,IAAI,QAAQ,KAAK,CAAC;AAEtB,MAAI,YAAkD;AAEtD,QAAM,cAAc,kBAAkB;AAAA,IACpC,YAAY,QAAQ;AAAA,IACpB,YAAY,CAAC,eAAe;AAC1B,cAAQ,IAAI;AAAA,4BAA+B,UAAU,EAAE;AACvD,cAAQ,IAAI,yDAAyD;AACrE,iBAAW,MAAM;AACf,mBAAW,MAAM;AACjB,gBAAQ,KAAK,CAAC;AAAA,MAChB,GAAG,GAAI;AAAA,IACT;AAAA,EACF,CAAC;AAED,MAAI,IAAI,WAAW;AAEnB,QAAM,YAAY,KAAK,QAAQ,QAAQ,IAAI,GAAG,uBAAuB;AAErE,MAAI,GAAG,WAAW,SAAS,GAAG;AAC5B,QAAI,IAAI,QAAQ,OAAO,SAAS,CAAC;AACjC,QAAI,IAAI,WAAW,CAAC,MAAM,QAAQ;AAChC,UAAI,SAAS,KAAK,KAAK,WAAW,YAAY,CAAC;AAAA,IACjD,CAAC;AAAA,EACH,OAAO;AACL,QAAI,IAAI,KAAK,CAAC,MAAM,QAAQ;AAC1B,UAAI,KAAK,MAAM,EAAE,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,eAOb;AAAA,IACX,CAAC;AAAA,EACH;AAEA,cAAY,IAAI,OAAO,QAAQ,MAAM,YAAY;AAC/C,UAAM,MAAM,oBAAoB,QAAQ,IAAI;AAC5C,YAAQ,IAAI;AAAA,iCAAoC;AAChD,YAAQ,IAAI,WAAW,GAAG;AAAA,CAAI;AAE9B,QAAI;AACF,YAAM,QAAQ,MAAM,OAAO,MAAM,GAAG;AACpC,YAAM,KAAK,GAAG;AAAA,IAChB,QAAQ;AAAA,IAER;AAAA,EACF,CAAC;AACH;","names":[]}
1
+ {"version":3,"sources":["../src/cli/commands/init.ts"],"sourcesContent":["import express from 'express';\nimport fs from 'node:fs';\nimport path from 'node:path';\nimport { fileURLToPath } from 'node:url';\nimport { createSetupRouter } from '../../web/routes/setup.js';\n\nconst __dirname = path.dirname(fileURLToPath(import.meta.url));\n\nexport interface InitOptions {\n port: number;\n config?: string;\n}\n\nexport async function initCommand(options: InitOptions): Promise<void> {\n const app = express();\n app.use(express.json());\n\n let serverRef: ReturnType<typeof app.listen> | null = null;\n\n const setupRouter = createSetupRouter({\n configPath: options.config,\n onComplete: (configPath) => {\n console.log(`\\n Configuration saved to: ${configPath}`);\n console.log(' Run \"issue-auto-finish start\" to start the service.\\n');\n setTimeout(() => {\n serverRef?.close();\n process.exit(0);\n }, 1000);\n },\n });\n\n app.use(setupRouter);\n\n const publicDir = path.resolve(process.cwd(), 'src/web/frontend/dist');\n\n if (fs.existsSync(publicDir)) {\n app.use(express.static(publicDir));\n app.get('{*path}', (_req, res) => {\n res.sendFile(path.join(publicDir, 'index.html'));\n });\n } else {\n app.get('/', (_req, res) => {\n res.type('html').send(`<!DOCTYPE html>\n<html><head><title>Issue Auto-Finish Setup</title></head>\n<body style=\"font-family:system-ui;max-width:600px;margin:60px auto;padding:20px\">\n<h1>Issue Auto-Finish Setup</h1>\n<p>Frontend assets not found. Please build the frontend first:</p>\n<pre>cd issue-auto-finish && pnpm web:build</pre>\n<p>Or use the API directly at <code>/api/setup/*</code></p>\n</body></html>`);\n });\n }\n\n serverRef = app.listen(options.port, async () => {\n const url = `http://localhost:${options.port}`;\n console.log(`\\n Issue Auto-Finish Setup Wizard`);\n console.log(` Open: ${url}\\n`);\n\n try {\n const open = (await import('open')).default;\n await open(url);\n } catch {\n // Browser open failed, user can manually navigate\n }\n });\n}\n"],"mappings":";;;;;;;;;;;;AAAA,OAAO,aAAa;AACpB,OAAO,QAAQ;AACf,OAAO,UAAU;AACjB,SAAS,qBAAqB;AAG9B,IAAM,YAAY,KAAK,QAAQ,cAAc,YAAY,GAAG,CAAC;AAO7D,eAAsB,YAAY,SAAqC;AACrE,QAAM,MAAM,QAAQ;AACpB,MAAI,IAAI,QAAQ,KAAK,CAAC;AAEtB,MAAI,YAAkD;AAEtD,QAAM,cAAc,kBAAkB;AAAA,IACpC,YAAY,QAAQ;AAAA,IACpB,YAAY,CAAC,eAAe;AAC1B,cAAQ,IAAI;AAAA,4BAA+B,UAAU,EAAE;AACvD,cAAQ,IAAI,yDAAyD;AACrE,iBAAW,MAAM;AACf,mBAAW,MAAM;AACjB,gBAAQ,KAAK,CAAC;AAAA,MAChB,GAAG,GAAI;AAAA,IACT;AAAA,EACF,CAAC;AAED,MAAI,IAAI,WAAW;AAEnB,QAAM,YAAY,KAAK,QAAQ,QAAQ,IAAI,GAAG,uBAAuB;AAErE,MAAI,GAAG,WAAW,SAAS,GAAG;AAC5B,QAAI,IAAI,QAAQ,OAAO,SAAS,CAAC;AACjC,QAAI,IAAI,WAAW,CAAC,MAAM,QAAQ;AAChC,UAAI,SAAS,KAAK,KAAK,WAAW,YAAY,CAAC;AAAA,IACjD,CAAC;AAAA,EACH,OAAO;AACL,QAAI,IAAI,KAAK,CAAC,MAAM,QAAQ;AAC1B,UAAI,KAAK,MAAM,EAAE,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,eAOb;AAAA,IACX,CAAC;AAAA,EACH;AAEA,cAAY,IAAI,OAAO,QAAQ,MAAM,YAAY;AAC/C,UAAM,MAAM,oBAAoB,QAAQ,IAAI;AAC5C,YAAQ,IAAI;AAAA,iCAAoC;AAChD,YAAQ,IAAI,WAAW,GAAG;AAAA,CAAI;AAE9B,QAAI;AACF,YAAM,QAAQ,MAAM,OAAO,MAAM,GAAG;AACpC,YAAM,KAAK,GAAG;AAAA,IAChB,QAAQ;AAAA,IAER;AAAA,EACF,CAAC;AACH;","names":[]}
@@ -0,0 +1,31 @@
1
+ import type { AIRunner } from '../ai-runner/index.js';
2
+ import type { ProjectKnowledge } from './ProjectKnowledge.js';
3
+ import type { KnowledgeStore } from './KnowledgeStore.js';
4
+ export interface AnalyzeOptions {
5
+ workDir: string;
6
+ aiRunner: AIRunner;
7
+ timeoutMs?: number;
8
+ outputPath?: string;
9
+ }
10
+ export interface IncrementalAnalyzeOptions {
11
+ workDir: string;
12
+ aiRunner: AIRunner;
13
+ store: KnowledgeStore;
14
+ timeoutMs?: number;
15
+ }
16
+ /**
17
+ * Collect static project info (no AI needed).
18
+ */
19
+ export declare function collectStaticInfo(workDir: string): Promise<string>;
20
+ /**
21
+ * Analyze a project with AI and generate knowledge.json.
22
+ */
23
+ export declare function analyze(options: AnalyzeOptions): Promise<ProjectKnowledge>;
24
+ /**
25
+ * Incremental analysis: detect changes since last analysis and update project-meta.
26
+ */
27
+ export declare function analyzeIncremental(options: IncrementalAnalyzeOptions): Promise<{
28
+ knowledge: ProjectKnowledge;
29
+ changedFiles: string[];
30
+ } | null>;
31
+ //# sourceMappingURL=KnowledgeAnalyzer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"KnowledgeAnalyzer.d.ts","sourceRoot":"","sources":["../../src/knowledge/KnowledgeAnalyzer.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAG9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAM1D,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,QAAQ,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,QAAQ,CAAC;IACnB,KAAK,EAAE,cAAc,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAuBD;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAqPxE;AAqCD;;GAEG;AACH,wBAAsB,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAuChF;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,yBAAyB,GACjC,OAAO,CAAC;IAAE,SAAS,EAAE,gBAAgB,CAAC;IAAC,YAAY,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG,IAAI,CAAC,CAmEzE"}
@@ -0,0 +1,7 @@
1
+ import type { ProjectKnowledge } from './ProjectKnowledge.js';
2
+ /**
3
+ * Default knowledge matching current hardcoded behavior.
4
+ * Used as fallback when knowledge.json does not exist.
5
+ */
6
+ export declare const KNOWLEDGE_DEFAULTS: ProjectKnowledge;
7
+ //# sourceMappingURL=KnowledgeDefaults.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"KnowledgeDefaults.d.ts","sourceRoot":"","sources":["../../src/knowledge/KnowledgeDefaults.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D;;;GAGG;AACH,eAAO,MAAM,kBAAkB,EAAE,gBAoFhC,CAAC"}
@@ -0,0 +1,30 @@
1
+ export type KnowledgeEntryType = 'project-meta' | 'custom' | 'iwiki' | 'gongfeng';
2
+ export interface KnowledgeEntrySource {
3
+ url?: string;
4
+ kind?: 'iwiki-page' | 'gongfeng-issue' | 'gongfeng-mr';
5
+ syncEnabled?: boolean;
6
+ lastSyncAt?: string;
7
+ }
8
+ export interface KnowledgeEntryMeta {
9
+ id: string;
10
+ type: KnowledgeEntryType;
11
+ title: string;
12
+ tags: string[];
13
+ source?: KnowledgeEntrySource;
14
+ createdAt: string;
15
+ updatedAt: string;
16
+ }
17
+ export interface KnowledgeEntry extends KnowledgeEntryMeta {
18
+ content: string;
19
+ }
20
+ export interface KnowledgeIndex {
21
+ version: 1;
22
+ lastAnalyzedAt?: string;
23
+ entries: KnowledgeEntryMeta[];
24
+ }
25
+ export interface KnowledgeStats {
26
+ total: number;
27
+ byType: Record<KnowledgeEntryType, number>;
28
+ lastAnalyzedAt?: string;
29
+ }
30
+ //# sourceMappingURL=KnowledgeEntry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"KnowledgeEntry.d.ts","sourceRoot":"","sources":["../../src/knowledge/KnowledgeEntry.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,kBAAkB,GAAG,cAAc,GAAG,QAAQ,GAAG,OAAO,GAAG,UAAU,CAAC;AAElF,MAAM,WAAW,oBAAoB;IACnC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,YAAY,GAAG,gBAAgB,GAAG,aAAa,CAAC;IACvD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,kBAAkB,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,MAAM,CAAC,EAAE,oBAAoB,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,cAAe,SAAQ,kBAAkB;IACxD,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,CAAC,CAAC;IACX,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,kBAAkB,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC;IAC3C,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB"}
@@ -0,0 +1,18 @@
1
+ import type { ProjectKnowledge } from './ProjectKnowledge.js';
2
+ /**
3
+ * Load knowledge from knowledge.json, merging with defaults for any missing fields.
4
+ */
5
+ export declare function loadKnowledge(explicitPath?: string): ProjectKnowledge | null;
6
+ /**
7
+ * Get cached knowledge (or null if not loaded or file not found).
8
+ */
9
+ export declare function getProjectKnowledge(): ProjectKnowledge | null;
10
+ /**
11
+ * Clear cache and reload.
12
+ */
13
+ export declare function reloadKnowledge(explicitPath?: string): ProjectKnowledge | null;
14
+ /**
15
+ * Reset the cache (for testing).
16
+ */
17
+ export declare function resetKnowledgeCache(): void;
18
+ //# sourceMappingURL=KnowledgeLoader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"KnowledgeLoader.d.ts","sourceRoot":"","sources":["../../src/knowledge/KnowledgeLoader.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAkD9D;;GAEG;AACH,wBAAgB,aAAa,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI,CA0B5E;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,gBAAgB,GAAG,IAAI,CAK7D;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI,CAG9E;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,IAAI,CAE1C"}
@@ -0,0 +1,35 @@
1
+ import type { KnowledgeEntry, KnowledgeEntryMeta, KnowledgeEntryType, KnowledgeStats } from './KnowledgeEntry.js';
2
+ import type { ProjectKnowledge } from './ProjectKnowledge.js';
3
+ export declare class KnowledgeStore {
4
+ private dataDir;
5
+ private indexPath;
6
+ private entriesDir;
7
+ private index;
8
+ constructor(dataDir: string);
9
+ list(type?: KnowledgeEntryType): KnowledgeEntryMeta[];
10
+ get(id: string): KnowledgeEntry | null;
11
+ create(input: {
12
+ type: KnowledgeEntryType;
13
+ title: string;
14
+ content: string;
15
+ tags?: string[];
16
+ source?: KnowledgeEntry['source'];
17
+ }): KnowledgeEntry;
18
+ update(id: string, patch: Partial<Pick<KnowledgeEntry, 'title' | 'content' | 'tags' | 'source'>>): KnowledgeEntry | null;
19
+ delete(id: string): boolean;
20
+ search(query: string): KnowledgeEntryMeta[];
21
+ getProjectMeta(): KnowledgeEntry | null;
22
+ upsertProjectMeta(content: string, knowledge?: ProjectKnowledge): KnowledgeEntry;
23
+ setLastAnalyzedAt(time: string): void;
24
+ getStats(): KnowledgeStats;
25
+ getAllEntries(): KnowledgeEntry[];
26
+ migrateFromLegacy(legacyPath: string): void;
27
+ private ensureDirs;
28
+ private loadIndex;
29
+ private saveIndex;
30
+ private readContent;
31
+ private writeContent;
32
+ private toMeta;
33
+ }
34
+ export declare function projectKnowledgeToMarkdown(k: ProjectKnowledge): string;
35
+ //# sourceMappingURL=KnowledgeStore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"KnowledgeStore.d.ts","sourceRoot":"","sources":["../../src/knowledge/KnowledgeStore.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,cAAc,EACd,kBAAkB,EAClB,kBAAkB,EAElB,cAAc,EACf,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAI9D,qBAAa,cAAc;IACzB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,KAAK,CAA+B;gBAEhC,OAAO,EAAE,MAAM;IAM3B,IAAI,CAAC,IAAI,CAAC,EAAE,kBAAkB,GAAG,kBAAkB,EAAE;IAMrD,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI;IAOtC,MAAM,CAAC,KAAK,EAAE;QACZ,IAAI,EAAE,kBAAkB,CAAC;QACzB,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;QAChB,MAAM,CAAC,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC;KACnC,GAAG,cAAc;IAuBlB,MAAM,CACJ,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,QAAQ,CAAC,CAAC,GAC5E,cAAc,GAAG,IAAI;IAuBxB,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAc3B,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,kBAAkB,EAAE;IAS3C,cAAc,IAAI,cAAc,GAAG,IAAI;IAOvC,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,gBAAgB,GAAG,cAAc;IAehF,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAMrC,QAAQ,IAAI,cAAc;IAkB1B,aAAa,IAAI,cAAc,EAAE;IAQjC,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAiB3C,OAAO,CAAC,UAAU;IASlB,OAAO,CAAC,SAAS;IAkBjB,OAAO,CAAC,SAAS;IAMjB,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,YAAY;IAKpB,OAAO,CAAC,MAAM;CAIf;AAED,wBAAgB,0BAA0B,CAAC,CAAC,EAAE,gBAAgB,GAAG,MAAM,CA8ItE"}
@@ -0,0 +1,79 @@
1
+ export interface RuleTriggerConfig {
2
+ filename: string;
3
+ keywords: string[];
4
+ description?: string;
5
+ }
6
+ export interface KnownIssueConfig {
7
+ description: string;
8
+ pattern?: string;
9
+ advice: string;
10
+ }
11
+ export interface KeyModuleConfig {
12
+ name: string;
13
+ path: string;
14
+ responsibility: string;
15
+ }
16
+ export interface DomainConceptConfig {
17
+ term: string;
18
+ definition: string;
19
+ }
20
+ export interface CursorRuleKnowledge {
21
+ filename: string;
22
+ purpose: string;
23
+ keyPoints: string[];
24
+ }
25
+ export interface ProjectKnowledge {
26
+ version: 1;
27
+ generatedAt: string;
28
+ repoPath: string;
29
+ structure: {
30
+ primaryLanguage: string;
31
+ frameworks: string[];
32
+ isMonorepo: boolean;
33
+ hasFrontendBackendSplit: boolean;
34
+ frontendDir?: string;
35
+ e2eDir?: string;
36
+ e2eTool?: string;
37
+ description?: string;
38
+ };
39
+ toolchain: {
40
+ packageManager: string;
41
+ installCommand: string;
42
+ installFallbackCommand?: string;
43
+ lintCommand?: string;
44
+ buildCommand?: string;
45
+ testCommand?: string;
46
+ testFilesCommand?: string;
47
+ dependencyCheckPath?: string;
48
+ };
49
+ codeStyle: {
50
+ indentStyle: 'spaces' | 'tabs';
51
+ indentSize: number;
52
+ lineWidth: number;
53
+ additionalRules?: string[];
54
+ };
55
+ businessContext: {
56
+ purpose: string;
57
+ targetUsers: string;
58
+ domain: string;
59
+ coreFeatures: string[];
60
+ };
61
+ architecture: {
62
+ overview: string;
63
+ keyModules: KeyModuleConfig[];
64
+ dataFlow: string;
65
+ designPatterns: string[];
66
+ externalDependencies: string[];
67
+ };
68
+ domainConcepts: DomainConceptConfig[];
69
+ agentKnowledge: {
70
+ summary: string;
71
+ cursorRules: CursorRuleKnowledge[];
72
+ claudeMdSummary?: string;
73
+ conventions: string[];
74
+ };
75
+ ruleTriggers: RuleTriggerConfig[];
76
+ knownIssues: KnownIssueConfig[];
77
+ custom?: Record<string, unknown>;
78
+ }
79
+ //# sourceMappingURL=ProjectKnowledge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProjectKnowledge.d.ts","sourceRoot":"","sources":["../../src/knowledge/ProjectKnowledge.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,CAAC,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE;QACT,eAAe,EAAE,MAAM,CAAC;QACxB,UAAU,EAAE,MAAM,EAAE,CAAC;QACrB,UAAU,EAAE,OAAO,CAAC;QACpB,uBAAuB,EAAE,OAAO,CAAC;QACjC,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,SAAS,EAAE;QACT,cAAc,EAAE,MAAM,CAAC;QACvB,cAAc,EAAE,MAAM,CAAC;QACvB,sBAAsB,CAAC,EAAE,MAAM,CAAC;QAChC,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,mBAAmB,CAAC,EAAE,MAAM,CAAC;KAC9B,CAAC;IACF,SAAS,EAAE;QACT,WAAW,EAAE,QAAQ,GAAG,MAAM,CAAC;QAC/B,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;QAClB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;KAC5B,CAAC;IACF,eAAe,EAAE;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,EAAE,MAAM,CAAC;QACpB,MAAM,EAAE,MAAM,CAAC;QACf,YAAY,EAAE,MAAM,EAAE,CAAC;KACxB,CAAC;IACF,YAAY,EAAE;QACZ,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,eAAe,EAAE,CAAC;QAC9B,QAAQ,EAAE,MAAM,CAAC;QACjB,cAAc,EAAE,MAAM,EAAE,CAAC;QACzB,oBAAoB,EAAE,MAAM,EAAE,CAAC;KAChC,CAAC;IACF,cAAc,EAAE,mBAAmB,EAAE,CAAC;IACtC,cAAc,EAAE;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,EAAE,mBAAmB,EAAE,CAAC;QACnC,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,WAAW,EAAE,MAAM,EAAE,CAAC;KACvB,CAAC;IACF,YAAY,EAAE,iBAAiB,EAAE,CAAC;IAClC,WAAW,EAAE,gBAAgB,EAAE,CAAC;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC"}
@@ -0,0 +1,2 @@
1
+ export declare function buildAnalyzePrompt(staticInfo: string): string;
2
+ //# sourceMappingURL=analyze-prompt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analyze-prompt.d.ts","sourceRoot":"","sources":["../../src/knowledge/analyze-prompt.ts"],"names":[],"mappings":"AAAA,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAwH7D"}
@@ -0,0 +1,27 @@
1
+ import type { GongfengClient } from '../../clients/GongfengClient.js';
2
+ import type { AIRunner } from '../../ai-runner/AIRunner.js';
3
+ import type { KnowledgeStore } from '../KnowledgeStore.js';
4
+ import type { KnowledgeEntry } from '../KnowledgeEntry.js';
5
+ export interface GongfengExtractorDeps {
6
+ store: KnowledgeStore;
7
+ gongfeng: GongfengClient;
8
+ aiRunner: AIRunner;
9
+ gongfengApiUrl: string;
10
+ gongfengProjectPath: string;
11
+ timeoutMs?: number;
12
+ }
13
+ export declare class GongfengExtractor {
14
+ private store;
15
+ private gongfeng;
16
+ private aiRunner;
17
+ private gongfengApiUrl;
18
+ private gongfengProjectPath;
19
+ private timeoutMs;
20
+ constructor(deps: GongfengExtractorDeps);
21
+ extractFromIssue(issueIid: number, workDir: string): Promise<KnowledgeEntry>;
22
+ extractFromMR(mrIid: number, workDir: string): Promise<KnowledgeEntry>;
23
+ private buildExtractionPrompt;
24
+ private buildIssueUrl;
25
+ private buildMRUrl;
26
+ }
27
+ //# sourceMappingURL=GongfengExtractor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GongfengExtractor.d.ts","sourceRoot":"","sources":["../../../src/knowledge/importers/GongfengExtractor.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAgB,MAAM,iCAAiC,CAAC;AACpF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAI3D,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,cAAc,CAAC;IACtB,QAAQ,EAAE,cAAc,CAAC;IACzB,QAAQ,EAAE,QAAQ,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,KAAK,CAAiB;IAC9B,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,mBAAmB,CAAS;IACpC,OAAO,CAAC,SAAS,CAAS;gBAEd,IAAI,EAAE,qBAAqB;IASjC,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IA8B5E,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IA6B5E,OAAO,CAAC,qBAAqB;IA4B7B,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,UAAU;CAInB"}
@@ -0,0 +1,21 @@
1
+ import type { KnowledgeStore } from '../KnowledgeStore.js';
2
+ import type { KnowledgeEntry } from '../KnowledgeEntry.js';
3
+ export interface IwikiImporterConfig {
4
+ authCookie?: string;
5
+ authToken?: string;
6
+ }
7
+ export declare class IwikiImporter {
8
+ private store;
9
+ private config;
10
+ private turndown;
11
+ constructor(store: KnowledgeStore, config?: IwikiImporterConfig);
12
+ importFromUrl(url: string): Promise<KnowledgeEntry>;
13
+ sync(entryId: string): Promise<KnowledgeEntry>;
14
+ extractContent(html: string): {
15
+ title: string;
16
+ markdown: string;
17
+ };
18
+ private fetchPage;
19
+ private titleFromUrl;
20
+ }
21
+ //# sourceMappingURL=IwikiImporter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IwikiImporter.d.ts","sourceRoot":"","sources":["../../../src/knowledge/importers/IwikiImporter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAI3D,MAAM,WAAW,mBAAmB;IAClC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,KAAK,CAAiB;IAC9B,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,QAAQ,CAAkB;gBAEtB,KAAK,EAAE,cAAc,EAAE,MAAM,GAAE,mBAAwB;IAS7D,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAenD,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAgBpD,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE;YA0BnD,SAAS;IASvB,OAAO,CAAC,YAAY;CASrB"}
@@ -0,0 +1,12 @@
1
+ export type { ProjectKnowledge, RuleTriggerConfig, KnownIssueConfig } from './ProjectKnowledge.js';
2
+ export type { KnowledgeEntry, KnowledgeEntryMeta, KnowledgeEntryType, KnowledgeIndex, KnowledgeStats, KnowledgeEntrySource, } from './KnowledgeEntry.js';
3
+ export { KNOWLEDGE_DEFAULTS } from './KnowledgeDefaults.js';
4
+ export { loadKnowledge, getProjectKnowledge, reloadKnowledge, resetKnowledgeCache, } from './KnowledgeLoader.js';
5
+ export { collectStaticInfo, analyze, analyzeIncremental } from './KnowledgeAnalyzer.js';
6
+ export type { AnalyzeOptions, IncrementalAnalyzeOptions } from './KnowledgeAnalyzer.js';
7
+ export { KnowledgeStore, projectKnowledgeToMarkdown } from './KnowledgeStore.js';
8
+ export { IwikiImporter } from './importers/IwikiImporter.js';
9
+ export type { IwikiImporterConfig } from './importers/IwikiImporter.js';
10
+ export { GongfengExtractor } from './importers/GongfengExtractor.js';
11
+ export type { GongfengExtractorDeps } from './importers/GongfengExtractor.js';
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/knowledge/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACnG,YAAY,EACV,cAAc,EACd,kBAAkB,EAClB,kBAAkB,EAClB,cAAc,EACd,cAAc,EACd,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,eAAe,EACf,mBAAmB,GACpB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,iBAAiB,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACxF,YAAY,EAAE,cAAc,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AACxF,OAAO,EAAE,cAAc,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AACjF,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,YAAY,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,YAAY,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC"}