@xdevops/issue-auto-finish 1.0.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 (161) hide show
  1. package/bin/issue-auto-finish.js +2 -0
  2. package/dist/ai-runner/AIRunner.d.ts +27 -0
  3. package/dist/ai-runner/AIRunner.d.ts.map +1 -0
  4. package/dist/ai-runner/BaseAIRunner.d.ts +19 -0
  5. package/dist/ai-runner/BaseAIRunner.d.ts.map +1 -0
  6. package/dist/ai-runner/ClaudeInternalRunner.d.ts +13 -0
  7. package/dist/ai-runner/ClaudeInternalRunner.d.ts.map +1 -0
  8. package/dist/ai-runner/CodebuddyRunner.d.ts +13 -0
  9. package/dist/ai-runner/CodebuddyRunner.d.ts.map +1 -0
  10. package/dist/ai-runner/CursorAgentRunner.d.ts +13 -0
  11. package/dist/ai-runner/CursorAgentRunner.d.ts.map +1 -0
  12. package/dist/ai-runner/index.d.ts +15 -0
  13. package/dist/ai-runner/index.d.ts.map +1 -0
  14. package/dist/chunk-HCHEFK4Z.js +80 -0
  15. package/dist/chunk-HCHEFK4Z.js.map +1 -0
  16. package/dist/chunk-I3T573SU.js +153 -0
  17. package/dist/chunk-I3T573SU.js.map +1 -0
  18. package/dist/chunk-IDUKWCC2.js +1995 -0
  19. package/dist/chunk-IDUKWCC2.js.map +1 -0
  20. package/dist/chunk-OWVT3Z34.js +770 -0
  21. package/dist/chunk-OWVT3Z34.js.map +1 -0
  22. package/dist/chunk-RIUI4ROA.js +180 -0
  23. package/dist/chunk-RIUI4ROA.js.map +1 -0
  24. package/dist/chunk-TBIEB3JY.js +3295 -0
  25. package/dist/chunk-TBIEB3JY.js.map +1 -0
  26. package/dist/cli/commands/doctor.d.ts +2 -0
  27. package/dist/cli/commands/doctor.d.ts.map +1 -0
  28. package/dist/cli/commands/init.d.ts +6 -0
  29. package/dist/cli/commands/init.d.ts.map +1 -0
  30. package/dist/cli/commands/start.d.ts +5 -0
  31. package/dist/cli/commands/start.d.ts.map +1 -0
  32. package/dist/cli/index.d.ts +3 -0
  33. package/dist/cli/index.d.ts.map +1 -0
  34. package/dist/cli/setup/ConfigGenerator.d.ts +44 -0
  35. package/dist/cli/setup/ConfigGenerator.d.ts.map +1 -0
  36. package/dist/cli/setup/DependencyChecker.d.ts +21 -0
  37. package/dist/cli/setup/DependencyChecker.d.ts.map +1 -0
  38. package/dist/cli.js +73 -0
  39. package/dist/cli.js.map +1 -0
  40. package/dist/clients/GongfengClient.d.ts +86 -0
  41. package/dist/clients/GongfengClient.d.ts.map +1 -0
  42. package/dist/config.d.ts +92 -0
  43. package/dist/config.d.ts.map +1 -0
  44. package/dist/deploy/DevServerManager.d.ts +21 -0
  45. package/dist/deploy/DevServerManager.d.ts.map +1 -0
  46. package/dist/deploy/PortAllocator.d.ts +20 -0
  47. package/dist/deploy/PortAllocator.d.ts.map +1 -0
  48. package/dist/deploy/index.d.ts +3 -0
  49. package/dist/deploy/index.d.ts.map +1 -0
  50. package/dist/doctor-B26Q6JWI.js +33 -0
  51. package/dist/doctor-B26Q6JWI.js.map +1 -0
  52. package/dist/e2e/E2eSettings.d.ts +6 -0
  53. package/dist/e2e/E2eSettings.d.ts.map +1 -0
  54. package/dist/e2e/ScreenshotCollector.d.ts +11 -0
  55. package/dist/e2e/ScreenshotCollector.d.ts.map +1 -0
  56. package/dist/e2e/ScreenshotPublisher.d.ts +16 -0
  57. package/dist/e2e/ScreenshotPublisher.d.ts.map +1 -0
  58. package/dist/events/EventBus.d.ts +14 -0
  59. package/dist/events/EventBus.d.ts.map +1 -0
  60. package/dist/git/GitOperations.d.ts +30 -0
  61. package/dist/git/GitOperations.d.ts.map +1 -0
  62. package/dist/git/WorktreeContext.d.ts +9 -0
  63. package/dist/git/WorktreeContext.d.ts.map +1 -0
  64. package/dist/i18n/index.d.ts +8 -0
  65. package/dist/i18n/index.d.ts.map +1 -0
  66. package/dist/i18n/locales/en.d.ts +2 -0
  67. package/dist/i18n/locales/en.d.ts.map +1 -0
  68. package/dist/i18n/locales/zh-CN.d.ts +2 -0
  69. package/dist/i18n/locales/zh-CN.d.ts.map +1 -0
  70. package/dist/index.d.ts +2 -0
  71. package/dist/index.d.ts.map +1 -0
  72. package/dist/index.js +12 -0
  73. package/dist/index.js.map +1 -0
  74. package/dist/init-L3VIWCOV.js +65 -0
  75. package/dist/init-L3VIWCOV.js.map +1 -0
  76. package/dist/lib.d.ts +26 -0
  77. package/dist/lib.d.ts.map +1 -0
  78. package/dist/lib.js +50 -0
  79. package/dist/lib.js.map +1 -0
  80. package/dist/logger.d.ts +15 -0
  81. package/dist/logger.d.ts.map +1 -0
  82. package/dist/notesync/NoteSyncSettings.d.ts +12 -0
  83. package/dist/notesync/NoteSyncSettings.d.ts.map +1 -0
  84. package/dist/orchestrator/PipelineOrchestrator.d.ts +53 -0
  85. package/dist/orchestrator/PipelineOrchestrator.d.ts.map +1 -0
  86. package/dist/persistence/PlanPersistence.d.ts +37 -0
  87. package/dist/persistence/PlanPersistence.d.ts.map +1 -0
  88. package/dist/phases/AnalysisPhase.d.ts +13 -0
  89. package/dist/phases/AnalysisPhase.d.ts.map +1 -0
  90. package/dist/phases/BasePhase.d.ts +44 -0
  91. package/dist/phases/BasePhase.d.ts.map +1 -0
  92. package/dist/phases/BuildPhase.d.ts +9 -0
  93. package/dist/phases/BuildPhase.d.ts.map +1 -0
  94. package/dist/phases/DesignPhase.d.ts +13 -0
  95. package/dist/phases/DesignPhase.d.ts.map +1 -0
  96. package/dist/phases/ImplementPhase.d.ts +9 -0
  97. package/dist/phases/ImplementPhase.d.ts.map +1 -0
  98. package/dist/phases/PhaseFactory.d.ts +13 -0
  99. package/dist/phases/PhaseFactory.d.ts.map +1 -0
  100. package/dist/phases/PlanPhase.d.ts +14 -0
  101. package/dist/phases/PlanPhase.d.ts.map +1 -0
  102. package/dist/phases/VerifyPhase.d.ts +13 -0
  103. package/dist/phases/VerifyPhase.d.ts.map +1 -0
  104. package/dist/pipeline/PipelineDefinition.d.ts +40 -0
  105. package/dist/pipeline/PipelineDefinition.d.ts.map +1 -0
  106. package/dist/poller/IssuePoller.d.ts +26 -0
  107. package/dist/poller/IssuePoller.d.ts.map +1 -0
  108. package/dist/prompts/brainstorm-templates.d.ts +4 -0
  109. package/dist/prompts/brainstorm-templates.d.ts.map +1 -0
  110. package/dist/prompts/templates.d.ts +27 -0
  111. package/dist/prompts/templates.d.ts.map +1 -0
  112. package/dist/rules/RuleResolver.d.ts +13 -0
  113. package/dist/rules/RuleResolver.d.ts.map +1 -0
  114. package/dist/rules/index.d.ts +3 -0
  115. package/dist/rules/index.d.ts.map +1 -0
  116. package/dist/run.d.ts +2 -0
  117. package/dist/run.d.ts.map +1 -0
  118. package/dist/run.js +15 -0
  119. package/dist/run.js.map +1 -0
  120. package/dist/services/BrainstormService.d.ts +39 -0
  121. package/dist/services/BrainstormService.d.ts.map +1 -0
  122. package/dist/start-TVN4SS6E.js +25 -0
  123. package/dist/start-TVN4SS6E.js.map +1 -0
  124. package/dist/supplement/SupplementStore.d.ts +21 -0
  125. package/dist/supplement/SupplementStore.d.ts.map +1 -0
  126. package/dist/tracker/IssueState.d.ts +63 -0
  127. package/dist/tracker/IssueState.d.ts.map +1 -0
  128. package/dist/tracker/IssueTracker.d.ts +29 -0
  129. package/dist/tracker/IssueTracker.d.ts.map +1 -0
  130. package/dist/utils/AsyncMutex.d.ts +14 -0
  131. package/dist/utils/AsyncMutex.d.ts.map +1 -0
  132. package/dist/utils/MergeRequestHelper.d.ts +10 -0
  133. package/dist/utils/MergeRequestHelper.d.ts.map +1 -0
  134. package/dist/web/AgentLogStore.d.ts +22 -0
  135. package/dist/web/AgentLogStore.d.ts.map +1 -0
  136. package/dist/web/WebServer.d.ts +26 -0
  137. package/dist/web/WebServer.d.ts.map +1 -0
  138. package/dist/web/routes/api.d.ts +20 -0
  139. package/dist/web/routes/api.d.ts.map +1 -0
  140. package/dist/web/routes/brainstorm.d.ts +9 -0
  141. package/dist/web/routes/brainstorm.d.ts.map +1 -0
  142. package/dist/web/routes/setup.d.ts +8 -0
  143. package/dist/web/routes/setup.d.ts.map +1 -0
  144. package/dist/webhook/CommandExecutor.d.ts +45 -0
  145. package/dist/webhook/CommandExecutor.d.ts.map +1 -0
  146. package/dist/webhook/CommandParser.d.ts +24 -0
  147. package/dist/webhook/CommandParser.d.ts.map +1 -0
  148. package/dist/webhook/IntentRecognizer.d.ts +35 -0
  149. package/dist/webhook/IntentRecognizer.d.ts.map +1 -0
  150. package/dist/webhook/NoteDeduplicator.d.ts +18 -0
  151. package/dist/webhook/NoteDeduplicator.d.ts.map +1 -0
  152. package/dist/webhook/WebhookHandler.d.ts +30 -0
  153. package/dist/webhook/WebhookHandler.d.ts.map +1 -0
  154. package/dist/webhook/WebhookServer.d.ts +21 -0
  155. package/dist/webhook/WebhookServer.d.ts.map +1 -0
  156. package/dist/webhook/index.d.ts +12 -0
  157. package/dist/webhook/index.d.ts.map +1 -0
  158. package/package.json +82 -0
  159. package/src/web/frontend/dist/assets/index-CQdlU9PE.js +65 -0
  160. package/src/web/frontend/dist/assets/index-CgMEkyZJ.css +1 -0
  161. package/src/web/frontend/dist/index.html +13 -0
@@ -0,0 +1,65 @@
1
+ import {
2
+ createSetupRouter
3
+ } from "./chunk-I3T573SU.js";
4
+ import "./chunk-HCHEFK4Z.js";
5
+ import "./chunk-RIUI4ROA.js";
6
+ import "./chunk-OWVT3Z34.js";
7
+
8
+ // src/cli/commands/init.ts
9
+ import express from "express";
10
+ import fs from "fs";
11
+ import path from "path";
12
+ import { fileURLToPath } from "url";
13
+ var __dirname = path.dirname(fileURLToPath(import.meta.url));
14
+ async function initCommand(options) {
15
+ const app = express();
16
+ app.use(express.json());
17
+ let serverRef = null;
18
+ const setupRouter = createSetupRouter({
19
+ configPath: options.config,
20
+ onComplete: (configPath) => {
21
+ console.log(`
22
+ Configuration saved to: ${configPath}`);
23
+ console.log(' Run "issue-auto-finish start" to start the service.\n');
24
+ setTimeout(() => {
25
+ serverRef?.close();
26
+ process.exit(0);
27
+ }, 1e3);
28
+ }
29
+ });
30
+ app.use(setupRouter);
31
+ const publicDir = path.resolve(process.cwd(), "src/web/frontend/dist");
32
+ if (fs.existsSync(publicDir)) {
33
+ app.use(express.static(publicDir));
34
+ app.get("{*path}", (_req, res) => {
35
+ res.sendFile(path.join(publicDir, "index.html"));
36
+ });
37
+ } else {
38
+ app.get("/", (_req, res) => {
39
+ res.type("html").send(`<!DOCTYPE html>
40
+ <html><head><title>Issue Auto-Finish Setup</title></head>
41
+ <body style="font-family:system-ui;max-width:600px;margin:60px auto;padding:20px">
42
+ <h1>Issue Auto-Finish Setup</h1>
43
+ <p>Frontend assets not found. Please build the frontend first:</p>
44
+ <pre>cd issue-auto-finish && pnpm web:build</pre>
45
+ <p>Or use the API directly at <code>/api/setup/*</code></p>
46
+ </body></html>`);
47
+ });
48
+ }
49
+ serverRef = app.listen(options.port, async () => {
50
+ const url = `http://localhost:${options.port}`;
51
+ console.log(`
52
+ Issue Auto-Finish Setup Wizard`);
53
+ console.log(` Open: ${url}
54
+ `);
55
+ try {
56
+ const open = (await import("open")).default;
57
+ await open(url);
58
+ } catch {
59
+ }
60
+ });
61
+ }
62
+ export {
63
+ initCommand
64
+ };
65
+ //# sourceMappingURL=init-L3VIWCOV.js.map
@@ -0,0 +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":[]}
package/dist/lib.d.ts ADDED
@@ -0,0 +1,26 @@
1
+ export { loadConfig } from './config.js';
2
+ export type { Config, AIRunnerMode, BrainstormAgentConfig } from './config.js';
3
+ export { createAIRunner, BaseAIRunner } from './ai-runner/index.js';
4
+ export type { AIRunner, RunOptions, RunResult, StreamEvent, AIConfig } from './ai-runner/index.js';
5
+ export { ClaudeInternalRunner } from './ai-runner/ClaudeInternalRunner.js';
6
+ export { CursorAgentRunner } from './ai-runner/CursorAgentRunner.js';
7
+ export { CodebuddyRunner } from './ai-runner/CodebuddyRunner.js';
8
+ export { GongfengClient, AGENT_NOTE_MARKER } from './clients/GongfengClient.js';
9
+ export type { GongfengIssue, GongfengConfig, CreateMergeRequestOptions, GongfengMergeRequest, UploadResult, GongfengNote } from './clients/GongfengClient.js';
10
+ export { GitOperations } from './git/GitOperations.js';
11
+ export { IssueTracker } from './tracker/IssueTracker.js';
12
+ export { PipelineOrchestrator } from './orchestrator/PipelineOrchestrator.js';
13
+ export type { MergeRequestResult } from './orchestrator/PipelineOrchestrator.js';
14
+ export { CLASSIC_PIPELINE, PLAN_MODE_PIPELINE, resolvePipelineMode, getPipelineDef } from './pipeline/PipelineDefinition.js';
15
+ export type { PipelineMode, PhaseSpec, PlanFileSpec, PipelineDef } from './pipeline/PipelineDefinition.js';
16
+ export { BasePhase } from './phases/BasePhase.js';
17
+ export type { PhaseContext } from './phases/BasePhase.js';
18
+ export { PlanPersistence } from './persistence/PlanPersistence.js';
19
+ export type { ReviewRound } from './persistence/PlanPersistence.js';
20
+ export { BrainstormService } from './services/BrainstormService.js';
21
+ export type { BrainstormRound, BrainstormSession, BrainstormStreamEvent, BrainstormStatus } from './services/BrainstormService.js';
22
+ export { eventBus } from './events/EventBus.js';
23
+ export type { EventType, EventPayload } from './events/EventBus.js';
24
+ export { AsyncMutex } from './utils/AsyncMutex.js';
25
+ export { logger, Logger } from './logger.js';
26
+ //# sourceMappingURL=lib.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../src/lib.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAG/E,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpE,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACnG,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAGjE,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChF,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,yBAAyB,EAAE,oBAAoB,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAG9J,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAGvD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAGzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAC;AAC9E,YAAY,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AAGjF,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAC7H,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAG3G,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,YAAY,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAG1D,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,YAAY,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAGpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,YAAY,EAAE,eAAe,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAGnI,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAGpE,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAGnD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC"}
package/dist/lib.js ADDED
@@ -0,0 +1,50 @@
1
+ import {
2
+ AGENT_NOTE_MARKER,
3
+ AsyncMutex,
4
+ BaseAIRunner,
5
+ BasePhase,
6
+ BrainstormService,
7
+ CLASSIC_PIPELINE,
8
+ ClaudeInternalRunner,
9
+ CodebuddyRunner,
10
+ CursorAgentRunner,
11
+ GitOperations,
12
+ GongfengClient,
13
+ IssueTracker,
14
+ Logger,
15
+ PLAN_MODE_PIPELINE,
16
+ PipelineOrchestrator,
17
+ PlanPersistence,
18
+ createAIRunner,
19
+ eventBus,
20
+ getPipelineDef,
21
+ loadConfig,
22
+ logger,
23
+ resolvePipelineMode
24
+ } from "./chunk-TBIEB3JY.js";
25
+ import "./chunk-OWVT3Z34.js";
26
+ export {
27
+ AGENT_NOTE_MARKER,
28
+ AsyncMutex,
29
+ BaseAIRunner,
30
+ BasePhase,
31
+ BrainstormService,
32
+ CLASSIC_PIPELINE,
33
+ ClaudeInternalRunner,
34
+ CodebuddyRunner,
35
+ CursorAgentRunner,
36
+ GitOperations,
37
+ GongfengClient,
38
+ IssueTracker,
39
+ Logger,
40
+ PLAN_MODE_PIPELINE,
41
+ PipelineOrchestrator,
42
+ PlanPersistence,
43
+ createAIRunner,
44
+ eventBus,
45
+ getPipelineDef,
46
+ loadConfig,
47
+ logger,
48
+ resolvePipelineMode
49
+ };
50
+ //# sourceMappingURL=lib.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,15 @@
1
+ declare class Logger {
2
+ private level;
3
+ private context?;
4
+ constructor(context?: string);
5
+ child(context: string): Logger;
6
+ private format;
7
+ private log;
8
+ debug(message: string, meta?: Record<string, unknown>): void;
9
+ info(message: string, meta?: Record<string, unknown>): void;
10
+ warn(message: string, meta?: Record<string, unknown>): void;
11
+ error(message: string, meta?: Record<string, unknown>): void;
12
+ }
13
+ export declare const logger: Logger;
14
+ export { Logger };
15
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AASA,cAAM,MAAM;IACV,OAAO,CAAC,KAAK,CAAoB;IACjC,OAAO,CAAC,OAAO,CAAC,CAAS;gBAEb,OAAO,CAAC,EAAE,MAAM;IAQ5B,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAM9B,OAAO,CAAC,MAAM;IAOd,OAAO,CAAC,GAAG;IAYX,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAI5D,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAI3D,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAI3D,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;CAG7D;AAED,eAAO,MAAM,MAAM,QAAe,CAAC;AACnC,OAAO,EAAE,MAAM,EAAE,CAAC"}
@@ -0,0 +1,12 @@
1
+ import type { Config } from '../config.js';
2
+ import type { IssueTracker } from '../tracker/IssueTracker.js';
3
+ export declare function getNoteSyncEnabled(cfg: Config): boolean;
4
+ export declare function setNoteSyncOverride(value: boolean | undefined): void;
5
+ export declare function isNoteSyncEnabledForIssue(issueIid: number, tracker: IssueTracker, cfg: Config): boolean;
6
+ export declare function truncateToSummary(content: string): string;
7
+ export interface ResultFileSpec {
8
+ filename: string;
9
+ label: string;
10
+ }
11
+ export declare function buildNoteSyncComment(phaseName: string, phaseLabel: string, docUrl: string, dashboardUrl: string, summary: string): string;
12
+ //# sourceMappingURL=NoteSyncSettings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NoteSyncSettings.d.ts","sourceRoot":"","sources":["../../src/notesync/NoteSyncSettings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAK/D,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAEvD;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS,GAAG,IAAI,CAEpE;AAED,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,YAAY,EACrB,GAAG,EAAE,MAAM,GACV,OAAO,CAIT;AAID,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAOzD;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,MAAM,GACd,MAAM,CAeR"}
@@ -0,0 +1,53 @@
1
+ import { Config } from '../config.js';
2
+ import { GongfengClient, GongfengIssue } from '../clients/GongfengClient.js';
3
+ import { GitOperations } from '../git/GitOperations.js';
4
+ import type { AIRunner } from '../ai-runner/index.js';
5
+ import { IssueTracker } from '../tracker/IssueTracker.js';
6
+ import { PipelineDef } from '../pipeline/PipelineDefinition.js';
7
+ import { SupplementStore } from '../supplement/SupplementStore.js';
8
+ import { PortAllocator } from '../deploy/PortAllocator.js';
9
+ import { DevServerManager } from '../deploy/DevServerManager.js';
10
+ export interface MergeRequestResult {
11
+ url: string;
12
+ iid: number;
13
+ }
14
+ export declare class PipelineOrchestrator {
15
+ private config;
16
+ private gongfeng;
17
+ private mainGit;
18
+ private aiRunner;
19
+ private tracker;
20
+ private supplementStore?;
21
+ private mainGitMutex;
22
+ private pipelineDef;
23
+ private portAllocator;
24
+ private devServerManager;
25
+ private screenshotPublisher;
26
+ constructor(config: Config, gongfeng: GongfengClient, git: GitOperations, aiRunner: AIRunner, tracker: IssueTracker, supplementStore?: SupplementStore);
27
+ getPortAllocator(): PortAllocator;
28
+ getDevServerManager(): DevServerManager;
29
+ private restorePortAllocations;
30
+ getPipelineDef(): PipelineDef;
31
+ private emitProgress;
32
+ private computeWorktreeContext;
33
+ private ensureWorktree;
34
+ private cleanupWorktree;
35
+ private installDependencies;
36
+ private seedNodeModulesFromMain;
37
+ restartIssue(issueIid: number): Promise<void>;
38
+ retryFromPhase(issueIid: number, phase: string): void;
39
+ private getIssueSpecificPipelineDef;
40
+ processIssue(issue: GongfengIssue): Promise<void>;
41
+ private tryCreateMergeRequest;
42
+ private tryFindExistingMergeRequest;
43
+ private determineStartIndex;
44
+ private shouldDeployServers;
45
+ private shouldAutoApprove;
46
+ private isImplementDonePhase;
47
+ private startPreviewServers;
48
+ stopPreviewServers(issueIid: number): void;
49
+ getPreviewHost(): string;
50
+ buildPreviewUrl(issueIid: number): string | null;
51
+ private buildPreviewComment;
52
+ }
53
+ //# sourceMappingURL=PipelineOrchestrator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PipelineOrchestrator.d.ts","sourceRoot":"","sources":["../../src/orchestrator/PipelineOrchestrator.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAM1D,OAAO,EAAuC,WAAW,EAAE,MAAM,mCAAmC,CAAC;AACrG,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAInE,OAAO,EAAE,aAAa,EAAiB,MAAM,4BAA4B,CAAC;AAC1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAMjE,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;CACb;AAKD,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,OAAO,CAAe;IAC9B,OAAO,CAAC,eAAe,CAAC,CAAkB;IAC1C,OAAO,CAAC,YAAY,CAAoB;IACxC,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,gBAAgB,CAAmB;IAC3C,OAAO,CAAC,mBAAmB,CAAsB;gBAG/C,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,cAAc,EACxB,GAAG,EAAE,aAAa,EAClB,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,YAAY,EACrB,eAAe,CAAC,EAAE,eAAe;IAuBnC,gBAAgB,IAAI,aAAa;IACjC,mBAAmB,IAAI,gBAAgB;IAEvC,OAAO,CAAC,sBAAsB;IAQ9B,cAAc,IAAI,WAAW;IAI7B,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,sBAAsB;YAMhB,cAAc;YA0Bd,eAAe;YASf,mBAAmB;YAmCnB,uBAAuB;IAoC/B,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA0BnD,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAcrD,OAAO,CAAC,2BAA2B;IAO7B,YAAY,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;YAqOzC,qBAAqB;YAgDrB,2BAA2B;IAuBzC,OAAO,CAAC,mBAAmB;IAqB3B,OAAO,CAAC,mBAAmB;IAK3B,OAAO,CAAC,iBAAiB;IAMzB,OAAO,CAAC,oBAAoB;YAKd,mBAAmB;IA6CjC,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAY1C,cAAc,IAAI,MAAM;IAaxB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAOhD,OAAO,CAAC,mBAAmB;CAe5B"}
@@ -0,0 +1,37 @@
1
+ import { ProgressData } from '../tracker/IssueState.js';
2
+ import type { PipelineDef } from '../pipeline/PipelineDefinition.js';
3
+ export interface ReviewRound {
4
+ round: number;
5
+ feedback: string;
6
+ timestamp: string;
7
+ }
8
+ export declare class PlanPersistence {
9
+ private workDir;
10
+ private issueIid;
11
+ constructor(workDir: string, issueIid: number);
12
+ get baseDir(): string;
13
+ private get planDir();
14
+ ensureDir(): void;
15
+ writeIssueMeta(meta: {
16
+ id: number;
17
+ iid: number;
18
+ title: string;
19
+ labels: string[];
20
+ state: string;
21
+ }): void;
22
+ writeProgress(data: ProgressData): void;
23
+ readProgress(): ProgressData | null;
24
+ writeAnalysis(content: string): void;
25
+ writeDesign(content: string): void;
26
+ writeTodolist(content: string): void;
27
+ writeVerifyReport(content: string, filename?: string): void;
28
+ getAllPlanFiles(): string[];
29
+ createInitialProgress(issueId: number, issueTitle: string, branchName: string, def?: PipelineDef): ProgressData;
30
+ writePlan(content: string): void;
31
+ writeReviewFeedback(content: string): void;
32
+ readReviewFeedback(): string | null;
33
+ readReviewHistory(): ReviewRound[];
34
+ static renderReviewHistoryMarkdown(history: ReviewRound[]): string;
35
+ updatePhaseProgress(phaseName: string, status: 'in_progress' | 'completed' | 'failed', error?: string): void;
36
+ }
37
+ //# sourceMappingURL=PlanPersistence.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PlanPersistence.d.ts","sourceRoot":"","sources":["../../src/persistence/PlanPersistence.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAiB,MAAM,0BAA0B,CAAC;AACvE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAOrE,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAS;gBAEb,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;IAK7C,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED,OAAO,KAAK,OAAO,GAElB;IAED,SAAS,IAAI,IAAI;IAMjB,cAAc,CAAC,IAAI,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAOvG,aAAa,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI;IAOvC,YAAY,IAAI,YAAY,GAAG,IAAI;IAUnC,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAMpC,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAMlC,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAMpC,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,SAAwB,GAAG,IAAI;IAM1E,eAAe,IAAI,MAAM,EAAE;IAK3B,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,WAAW,GAAG,YAAY;IA8B/G,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAMhC,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAsB1C,kBAAkB,IAAI,MAAM,GAAG,IAAI;IAUnC,iBAAiB,IAAI,WAAW,EAAE;IAWlC,MAAM,CAAC,2BAA2B,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,MAAM;IAalE,mBAAmB,CACjB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,aAAa,GAAG,WAAW,GAAG,QAAQ,EAC9C,KAAK,CAAC,EAAE,MAAM,GACb,IAAI;CAsBR"}
@@ -0,0 +1,13 @@
1
+ import { BasePhase, PhaseContext } from './BasePhase.js';
2
+ import { IssueState } from '../tracker/IssueState.js';
3
+ export declare class AnalysisPhase extends BasePhase {
4
+ readonly phaseName: "analysis";
5
+ readonly startState = IssueState.Analyzing;
6
+ readonly doneState = IssueState.AnalysisDone;
7
+ protected getResultFiles(): {
8
+ filename: string;
9
+ label: string;
10
+ }[];
11
+ protected buildPrompt(ctx: PhaseContext): string;
12
+ }
13
+ //# sourceMappingURL=AnalysisPhase.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AnalysisPhase.d.ts","sourceRoot":"","sources":["../../src/phases/AnalysisPhase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAGtD,qBAAa,aAAc,SAAQ,SAAS;IAC1C,QAAQ,CAAC,SAAS,EAAG,UAAU,CAAU;IACzC,QAAQ,CAAC,UAAU,wBAAwB;IAC3C,QAAQ,CAAC,SAAS,2BAA2B;IAE7C,SAAS,CAAC,cAAc;;;;IAIxB,SAAS,CAAC,WAAW,CAAC,GAAG,EAAE,YAAY,GAAG,MAAM;CAQjD"}
@@ -0,0 +1,44 @@
1
+ import type { AIRunner, RunResult } from '../ai-runner/index.js';
2
+ import { GitOperations } from '../git/GitOperations.js';
3
+ import { PlanPersistence } from '../persistence/PlanPersistence.js';
4
+ import { GongfengClient } from '../clients/GongfengClient.js';
5
+ import { IssueTracker } from '../tracker/IssueTracker.js';
6
+ import { IssueState } from '../tracker/IssueState.js';
7
+ import { Config } from '../config.js';
8
+ import type { PortPair } from '../deploy/PortAllocator.js';
9
+ import { Logger } from '../logger.js';
10
+ export interface PhaseContext {
11
+ issueIid: number;
12
+ issueId: number;
13
+ issueTitle: string;
14
+ issueDescription: string;
15
+ branchName: string;
16
+ supplementText?: string;
17
+ pipelineMode?: 'classic' | 'plan-mode';
18
+ ports?: PortPair;
19
+ }
20
+ export declare abstract class BasePhase {
21
+ protected aiRunner: AIRunner;
22
+ protected git: GitOperations;
23
+ protected plan: PlanPersistence;
24
+ protected gongfeng: GongfengClient;
25
+ protected tracker: IssueTracker;
26
+ protected config: Config;
27
+ protected logger: Logger;
28
+ abstract readonly phaseName: string;
29
+ abstract readonly startState: IssueState;
30
+ abstract readonly doneState: IssueState;
31
+ constructor(aiRunner: AIRunner, git: GitOperations, plan: PlanPersistence, gongfeng: GongfengClient, tracker: IssueTracker, config: Config);
32
+ protected abstract buildPrompt(ctx: PhaseContext): string;
33
+ protected getRunMode(): 'plan' | 'agent' | undefined;
34
+ protected getResultFiles(_ctx?: PhaseContext): Array<{
35
+ filename: string;
36
+ label: string;
37
+ }>;
38
+ execute(ctx: PhaseContext): Promise<RunResult>;
39
+ protected resolveRules(ctx: PhaseContext): Promise<string | null>;
40
+ private syncResultToIssue;
41
+ private readResultFile;
42
+ private commitPlanFiles;
43
+ }
44
+ //# sourceMappingURL=BasePhase.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BasePhase.d.ts","sourceRoot":"","sources":["../../src/phases/BasePhase.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAItD,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAMtC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAwB,MAAM,EAAE,MAAM,cAAc,CAAC;AAG5D,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,SAAS,GAAG,WAAW,CAAC;IACvC,KAAK,CAAC,EAAE,QAAQ,CAAC;CAClB;AAED,8BAAsB,SAAS;IAC7B,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC7B,SAAS,CAAC,GAAG,EAAE,aAAa,CAAC;IAC7B,SAAS,CAAC,IAAI,EAAE,eAAe,CAAC;IAChC,SAAS,CAAC,QAAQ,EAAE,cAAc,CAAC;IACnC,SAAS,CAAC,OAAO,EAAE,YAAY,CAAC;IAChC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC;IAEzB,QAAQ,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IACzC,QAAQ,CAAC,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC;gBAGtC,QAAQ,EAAE,QAAQ,EAClB,GAAG,EAAE,aAAa,EAClB,IAAI,EAAE,eAAe,EACrB,QAAQ,EAAE,cAAc,EACxB,OAAO,EAAE,YAAY,EACrB,MAAM,EAAE,MAAM;IAWhB,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,EAAE,YAAY,GAAG,MAAM;IAEzD,SAAS,CAAC,UAAU,IAAI,MAAM,GAAG,OAAO,GAAG,SAAS;IAIpD,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,YAAY,GAAG,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAInF,OAAO,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,SAAS,CAAC;cAmFpC,YAAY,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;YAmBzD,iBAAiB;IA2C/B,OAAO,CAAC,cAAc;YAWR,eAAe;CAO9B"}
@@ -0,0 +1,9 @@
1
+ import { BasePhase, PhaseContext } from './BasePhase.js';
2
+ import { IssueState } from '../tracker/IssueState.js';
3
+ export declare class BuildPhase extends BasePhase {
4
+ readonly phaseName: "build";
5
+ readonly startState = IssueState.Building;
6
+ readonly doneState = IssueState.BuildDone;
7
+ protected buildPrompt(ctx: PhaseContext): string;
8
+ }
9
+ //# sourceMappingURL=BuildPhase.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BuildPhase.d.ts","sourceRoot":"","sources":["../../src/phases/BuildPhase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAGtD,qBAAa,UAAW,SAAQ,SAAS;IACvC,QAAQ,CAAC,SAAS,EAAG,OAAO,CAAU;IACtC,QAAQ,CAAC,UAAU,uBAAuB;IAC1C,QAAQ,CAAC,SAAS,wBAAwB;IAE1C,SAAS,CAAC,WAAW,CAAC,GAAG,EAAE,YAAY,GAAG,MAAM;CAOjD"}
@@ -0,0 +1,13 @@
1
+ import { BasePhase, PhaseContext } from './BasePhase.js';
2
+ import { IssueState } from '../tracker/IssueState.js';
3
+ export declare class DesignPhase extends BasePhase {
4
+ readonly phaseName: "design";
5
+ readonly startState = IssueState.Designing;
6
+ readonly doneState = IssueState.DesignDone;
7
+ protected getResultFiles(): {
8
+ filename: string;
9
+ label: string;
10
+ }[];
11
+ protected buildPrompt(ctx: PhaseContext): string;
12
+ }
13
+ //# sourceMappingURL=DesignPhase.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DesignPhase.d.ts","sourceRoot":"","sources":["../../src/phases/DesignPhase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAGtD,qBAAa,WAAY,SAAQ,SAAS;IACxC,QAAQ,CAAC,SAAS,EAAG,QAAQ,CAAU;IACvC,QAAQ,CAAC,UAAU,wBAAwB;IAC3C,QAAQ,CAAC,SAAS,yBAAyB;IAE3C,SAAS,CAAC,cAAc;;;;IAIxB,SAAS,CAAC,WAAW,CAAC,GAAG,EAAE,YAAY,GAAG,MAAM;CAQjD"}
@@ -0,0 +1,9 @@
1
+ import { BasePhase, PhaseContext } from './BasePhase.js';
2
+ import { IssueState } from '../tracker/IssueState.js';
3
+ export declare class ImplementPhase extends BasePhase {
4
+ readonly phaseName: "implement";
5
+ readonly startState = IssueState.Implementing;
6
+ readonly doneState = IssueState.ImplementDone;
7
+ protected buildPrompt(ctx: PhaseContext): string;
8
+ }
9
+ //# sourceMappingURL=ImplementPhase.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ImplementPhase.d.ts","sourceRoot":"","sources":["../../src/phases/ImplementPhase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAGtD,qBAAa,cAAe,SAAQ,SAAS;IAC3C,QAAQ,CAAC,SAAS,EAAG,WAAW,CAAU;IAC1C,QAAQ,CAAC,UAAU,2BAA2B;IAC9C,QAAQ,CAAC,SAAS,4BAA4B;IAE9C,SAAS,CAAC,WAAW,CAAC,GAAG,EAAE,YAAY,GAAG,MAAM;CAOjD"}
@@ -0,0 +1,13 @@
1
+ import type { AIRunner } from '../ai-runner/index.js';
2
+ import { GitOperations } from '../git/GitOperations.js';
3
+ import { PlanPersistence } from '../persistence/PlanPersistence.js';
4
+ import { GongfengClient } from '../clients/GongfengClient.js';
5
+ import { IssueTracker } from '../tracker/IssueTracker.js';
6
+ import { Config } from '../config.js';
7
+ import { BasePhase } from './BasePhase.js';
8
+ type PhaseArgs = [AIRunner, GitOperations, PlanPersistence, GongfengClient, IssueTracker, Config];
9
+ export declare function createPhase(name: string, ...args: PhaseArgs): BasePhase;
10
+ /** 校验 PipelineDef 中的所有 AI phase 都已注册,应在启动时调用 */
11
+ export declare function validatePhaseRegistry(phaseNames: string[]): void;
12
+ export {};
13
+ //# sourceMappingURL=PhaseFactory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PhaseFactory.d.ts","sourceRoot":"","sources":["../../src/phases/PhaseFactory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAQ3C,KAAK,SAAS,GAAG,CAAC,QAAQ,EAAE,aAAa,EAAE,eAAe,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC;AAYlG,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,SAAS,GAAG,SAAS,CAQvE;AAED,gDAAgD;AAChD,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,IAAI,CAQhE"}
@@ -0,0 +1,14 @@
1
+ import { BasePhase, PhaseContext } from './BasePhase.js';
2
+ import { IssueState } from '../tracker/IssueState.js';
3
+ export declare class PlanPhase extends BasePhase {
4
+ readonly phaseName: "plan";
5
+ readonly startState = IssueState.Planning;
6
+ readonly doneState = IssueState.PlanDone;
7
+ protected getResultFiles(): {
8
+ filename: string;
9
+ label: string;
10
+ }[];
11
+ protected getRunMode(): 'plan' | 'agent' | undefined;
12
+ protected buildPrompt(ctx: PhaseContext): string;
13
+ }
14
+ //# sourceMappingURL=PlanPhase.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PlanPhase.d.ts","sourceRoot":"","sources":["../../src/phases/PlanPhase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAGtD,qBAAa,SAAU,SAAQ,SAAS;IACtC,QAAQ,CAAC,SAAS,EAAG,MAAM,CAAU;IACrC,QAAQ,CAAC,UAAU,uBAAuB;IAC1C,QAAQ,CAAC,SAAS,uBAAuB;IAEzC,SAAS,CAAC,cAAc;;;;IAIxB,SAAS,CAAC,UAAU,IAAI,MAAM,GAAG,OAAO,GAAG,SAAS;IAIpD,SAAS,CAAC,WAAW,CAAC,GAAG,EAAE,YAAY,GAAG,MAAM;CAajD"}
@@ -0,0 +1,13 @@
1
+ import { BasePhase, PhaseContext } from './BasePhase.js';
2
+ import { IssueState } from '../tracker/IssueState.js';
3
+ export declare class VerifyPhase extends BasePhase {
4
+ readonly phaseName: "verify";
5
+ readonly startState = IssueState.Verifying;
6
+ readonly doneState = IssueState.Completed;
7
+ protected getResultFiles(ctx?: PhaseContext): {
8
+ filename: string;
9
+ label: string;
10
+ }[];
11
+ protected buildPrompt(ctx: PhaseContext): string;
12
+ }
13
+ //# sourceMappingURL=VerifyPhase.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VerifyPhase.d.ts","sourceRoot":"","sources":["../../src/phases/VerifyPhase.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AActD,qBAAa,WAAY,SAAQ,SAAS;IACxC,QAAQ,CAAC,SAAS,EAAG,QAAQ,CAAU;IACvC,QAAQ,CAAC,UAAU,wBAAwB;IAC3C,QAAQ,CAAC,SAAS,wBAAwB;IAE1C,SAAS,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,YAAY;;;;IAK3C,SAAS,CAAC,WAAW,CAAC,GAAG,EAAE,YAAY,GAAG,MAAM;CAwBjD"}
@@ -0,0 +1,40 @@
1
+ import { IssueState } from '../tracker/IssueState.js';
2
+ export type PipelineMode = 'classic' | 'plan-mode';
3
+ export interface PhaseSpec {
4
+ name: string;
5
+ label: string;
6
+ startState: IssueState;
7
+ doneState: IssueState;
8
+ kind: 'ai' | 'gate';
9
+ approvedState?: IssueState;
10
+ }
11
+ export interface PlanFileSpec {
12
+ filename: string;
13
+ label: string;
14
+ editable: boolean;
15
+ }
16
+ export interface PipelineDef {
17
+ mode: PipelineMode;
18
+ phases: PhaseSpec[];
19
+ planFiles: PlanFileSpec[];
20
+ }
21
+ export declare const CLASSIC_PIPELINE: PipelineDef;
22
+ export declare const PLAN_MODE_PIPELINE: PipelineDef;
23
+ export declare function resolvePipelineMode(aiMode: string, explicit?: string): PipelineMode;
24
+ export declare function getPipelineDef(mode: PipelineMode): PipelineDef;
25
+ /**
26
+ * 获取某个 phase 的前驱状态(即重置到该 phase 需要设置的状态)。
27
+ * 第一个 phase 的前驱是 BranchCreated;后续 phase 的前驱是上一个 phase 的 approvedState 或 doneState。
28
+ */
29
+ export declare function getPhasePreState(def: PipelineDef, phaseName: string): IssueState | undefined;
30
+ /**
31
+ * 从 PipelineDef 收集所有状态及其展示标签,用于前端展示,避免手动维护 STATE_MAP。
32
+ */
33
+ export declare function collectStateLabels(def: PipelineDef): Map<string, string>;
34
+ export declare function getPhaseLabel(phaseName: string): string;
35
+ export declare function getPlanFileLabel(filename: string): string;
36
+ /**
37
+ * 根据当前 state 和 PipelineDef,推导每个 phase 的进度状态。
38
+ */
39
+ export declare function derivePhaseStatuses(def: PipelineDef, currentState: string): Record<string, 'pending' | 'in_progress' | 'completed'>;
40
+ //# sourceMappingURL=PipelineDefinition.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PipelineDefinition.d.ts","sourceRoot":"","sources":["../../src/pipeline/PipelineDefinition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAGtD,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,WAAW,CAAC;AAEnD,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,UAAU,CAAC;IACvB,SAAS,EAAE,UAAU,CAAC;IACtB,IAAI,EAAE,IAAI,GAAG,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,UAAU,CAAC;CAC5B;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,YAAY,CAAC;IACnB,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,SAAS,EAAE,YAAY,EAAE,CAAC;CAC3B;AAED,eAAO,MAAM,gBAAgB,EAAE,WAkB9B,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,WAmBhC,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,YAAY,CAGnF;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,YAAY,GAAG,WAAW,CAE9D;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAM5F;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,WAAW,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAcxE;AAED,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEzD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,WAAW,EAChB,YAAY,EAAE,MAAM,GACnB,MAAM,CAAC,MAAM,EAAE,SAAS,GAAG,aAAa,GAAG,WAAW,CAAC,CAmBzD"}
@@ -0,0 +1,26 @@
1
+ import { Config } from '../config.js';
2
+ import { GongfengClient } from '../clients/GongfengClient.js';
3
+ import { IssueTracker } from '../tracker/IssueTracker.js';
4
+ import { PipelineOrchestrator } from '../orchestrator/PipelineOrchestrator.js';
5
+ export declare class IssuePoller {
6
+ private config;
7
+ private gongfeng;
8
+ private tracker;
9
+ private orchestrator;
10
+ private discoveryTimer;
11
+ private driveTimer;
12
+ private activeIssues;
13
+ private lastAutoApproveCheckMs;
14
+ constructor(config: Config, gongfeng: GongfengClient, tracker: IssueTracker, orchestrator: PipelineOrchestrator);
15
+ start(): void;
16
+ stop(): void;
17
+ getActiveIssueIids(): number[];
18
+ private discover;
19
+ private drive;
20
+ private maybeAutoApproveWaiting;
21
+ private autoApproveByLabels;
22
+ private processInBackground;
23
+ private resolveIssue;
24
+ private filterNewIssues;
25
+ }
26
+ //# sourceMappingURL=IssuePoller.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IssuePoller.d.ts","sourceRoot":"","sources":["../../src/poller/IssuePoller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,cAAc,EAAiB,MAAM,8BAA8B,CAAC;AAC7E,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAC;AAU/E,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,OAAO,CAAe;IAC9B,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,cAAc,CAA+C;IACrE,OAAO,CAAC,UAAU,CAA+C;IACjE,OAAO,CAAC,YAAY,CAAqB;IACzC,OAAO,CAAC,sBAAsB,CAAK;gBAGjC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,cAAc,EACxB,OAAO,EAAE,YAAY,EACrB,YAAY,EAAE,oBAAoB;IAQpC,KAAK,IAAI,IAAI;IAWb,IAAI,IAAI,IAAI;IAYZ,kBAAkB,IAAI,MAAM,EAAE;YAIhB,QAAQ;IA0BtB,OAAO,CAAC,KAAK;IAkCb,OAAO,CAAC,uBAAuB;YAkBjB,mBAAmB;YAgCnB,mBAAmB;YAkBnB,YAAY;IAQ1B,OAAO,CAAC,eAAe;CAWxB"}
@@ -0,0 +1,4 @@
1
+ export declare function buildGeneratePrompt(transcript: string): string;
2
+ export declare function buildReviewPrompt(sdd: string, round: number): string;
3
+ export declare function buildRefinePrompt(questions: string): string;
4
+ //# sourceMappingURL=brainstorm-templates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brainstorm-templates.d.ts","sourceRoot":"","sources":["../../src/prompts/brainstorm-templates.ts"],"names":[],"mappings":"AAAA,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CA4B9D;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAuBpE;AAED,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAW3D"}
@@ -0,0 +1,27 @@
1
+ export interface PromptContext {
2
+ issueTitle: string;
3
+ issueDescription: string;
4
+ issueIid: number;
5
+ supplementText?: string;
6
+ }
7
+ export declare function analysisPrompt(ctx: PromptContext): string;
8
+ export declare function designPrompt(ctx: PromptContext): string;
9
+ export declare function implementPrompt(ctx: PromptContext): string;
10
+ export declare function verifyPrompt(ctx: PromptContext): string;
11
+ export declare function planModeVerifyPrompt(ctx: PromptContext): string;
12
+ export declare function planPrompt(ctx: PromptContext): string;
13
+ export declare function buildPrompt(ctx: PromptContext): string;
14
+ export interface ReviewRoundForPrompt {
15
+ round: number;
16
+ feedback: string;
17
+ timestamp: string;
18
+ }
19
+ export declare function rePlanPrompt(ctx: PromptContext, history: ReviewRoundForPrompt[]): string;
20
+ export interface E2ePromptPorts {
21
+ backendPort: number;
22
+ frontendPort: number;
23
+ host: string;
24
+ }
25
+ export declare function e2eVerifyPromptSuffix(ctx: PromptContext, ports?: E2ePromptPorts): string;
26
+ export declare function issueProgressComment(phase: string, status: string, detail?: string): string;
27
+ //# sourceMappingURL=templates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../src/prompts/templates.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAMD,wBAAgB,cAAc,CAAC,GAAG,EAAE,aAAa,GAAG,MAAM,CAUzD;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,aAAa,GAAG,MAAM,CASvD;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,aAAa,GAAG,MAAM,CAO1D;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,aAAa,GAAG,MAAM,CAOvD;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,aAAa,GAAG,MAAM,CAO/D;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,aAAa,GAAG,MAAM,CAUrD;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,aAAa,GAAG,MAAM,CAOtD;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,aAAa,EAAE,OAAO,EAAE,oBAAoB,EAAE,GAAG,MAAM,CAexF;AAED,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,aAAa,EAAE,KAAK,CAAC,EAAE,cAAc,GAAG,MAAM,CAkCxF;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAa3F"}
@@ -0,0 +1,13 @@
1
+ export interface MdcRule {
2
+ filename: string;
3
+ description: string;
4
+ content: string;
5
+ }
6
+ export declare class RuleResolver {
7
+ private rules;
8
+ loadRules(rulesDir: string): Promise<void>;
9
+ getRules(): MdcRule[];
10
+ matchRules(text: string): MdcRule[];
11
+ formatForPrompt(rules: MdcRule[]): string;
12
+ }
13
+ //# sourceMappingURL=RuleResolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RuleResolver.d.ts","sourceRoot":"","sources":["../../src/rules/RuleResolver.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,OAAO;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB;AAyDD,qBAAa,YAAY;IACvB,OAAO,CAAC,KAAK,CAAiB;IAEjB,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA0BhD,QAAQ,IAAI,OAAO,EAAE;IAIrB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,EAAE;IAiBnC,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,MAAM;CAUjD"}
@@ -0,0 +1,3 @@
1
+ export { RuleResolver } from './RuleResolver.js';
2
+ export type { MdcRule } from './RuleResolver.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/rules/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,YAAY,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC"}