@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.
- package/bin/issue-auto-finish.js +2 -0
- package/dist/ai-runner/AIRunner.d.ts +27 -0
- package/dist/ai-runner/AIRunner.d.ts.map +1 -0
- package/dist/ai-runner/BaseAIRunner.d.ts +19 -0
- package/dist/ai-runner/BaseAIRunner.d.ts.map +1 -0
- package/dist/ai-runner/ClaudeInternalRunner.d.ts +13 -0
- package/dist/ai-runner/ClaudeInternalRunner.d.ts.map +1 -0
- package/dist/ai-runner/CodebuddyRunner.d.ts +13 -0
- package/dist/ai-runner/CodebuddyRunner.d.ts.map +1 -0
- package/dist/ai-runner/CursorAgentRunner.d.ts +13 -0
- package/dist/ai-runner/CursorAgentRunner.d.ts.map +1 -0
- package/dist/ai-runner/index.d.ts +15 -0
- package/dist/ai-runner/index.d.ts.map +1 -0
- package/dist/chunk-HCHEFK4Z.js +80 -0
- package/dist/chunk-HCHEFK4Z.js.map +1 -0
- package/dist/chunk-I3T573SU.js +153 -0
- package/dist/chunk-I3T573SU.js.map +1 -0
- package/dist/chunk-IDUKWCC2.js +1995 -0
- package/dist/chunk-IDUKWCC2.js.map +1 -0
- package/dist/chunk-OWVT3Z34.js +770 -0
- package/dist/chunk-OWVT3Z34.js.map +1 -0
- package/dist/chunk-RIUI4ROA.js +180 -0
- package/dist/chunk-RIUI4ROA.js.map +1 -0
- package/dist/chunk-TBIEB3JY.js +3295 -0
- package/dist/chunk-TBIEB3JY.js.map +1 -0
- package/dist/cli/commands/doctor.d.ts +2 -0
- package/dist/cli/commands/doctor.d.ts.map +1 -0
- package/dist/cli/commands/init.d.ts +6 -0
- package/dist/cli/commands/init.d.ts.map +1 -0
- package/dist/cli/commands/start.d.ts +5 -0
- package/dist/cli/commands/start.d.ts.map +1 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/setup/ConfigGenerator.d.ts +44 -0
- package/dist/cli/setup/ConfigGenerator.d.ts.map +1 -0
- package/dist/cli/setup/DependencyChecker.d.ts +21 -0
- package/dist/cli/setup/DependencyChecker.d.ts.map +1 -0
- package/dist/cli.js +73 -0
- package/dist/cli.js.map +1 -0
- package/dist/clients/GongfengClient.d.ts +86 -0
- package/dist/clients/GongfengClient.d.ts.map +1 -0
- package/dist/config.d.ts +92 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/deploy/DevServerManager.d.ts +21 -0
- package/dist/deploy/DevServerManager.d.ts.map +1 -0
- package/dist/deploy/PortAllocator.d.ts +20 -0
- package/dist/deploy/PortAllocator.d.ts.map +1 -0
- package/dist/deploy/index.d.ts +3 -0
- package/dist/deploy/index.d.ts.map +1 -0
- package/dist/doctor-B26Q6JWI.js +33 -0
- package/dist/doctor-B26Q6JWI.js.map +1 -0
- package/dist/e2e/E2eSettings.d.ts +6 -0
- package/dist/e2e/E2eSettings.d.ts.map +1 -0
- package/dist/e2e/ScreenshotCollector.d.ts +11 -0
- package/dist/e2e/ScreenshotCollector.d.ts.map +1 -0
- package/dist/e2e/ScreenshotPublisher.d.ts +16 -0
- package/dist/e2e/ScreenshotPublisher.d.ts.map +1 -0
- package/dist/events/EventBus.d.ts +14 -0
- package/dist/events/EventBus.d.ts.map +1 -0
- package/dist/git/GitOperations.d.ts +30 -0
- package/dist/git/GitOperations.d.ts.map +1 -0
- package/dist/git/WorktreeContext.d.ts +9 -0
- package/dist/git/WorktreeContext.d.ts.map +1 -0
- package/dist/i18n/index.d.ts +8 -0
- package/dist/i18n/index.d.ts.map +1 -0
- package/dist/i18n/locales/en.d.ts +2 -0
- package/dist/i18n/locales/en.d.ts.map +1 -0
- package/dist/i18n/locales/zh-CN.d.ts +2 -0
- package/dist/i18n/locales/zh-CN.d.ts.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +12 -0
- package/dist/index.js.map +1 -0
- package/dist/init-L3VIWCOV.js +65 -0
- package/dist/init-L3VIWCOV.js.map +1 -0
- package/dist/lib.d.ts +26 -0
- package/dist/lib.d.ts.map +1 -0
- package/dist/lib.js +50 -0
- package/dist/lib.js.map +1 -0
- package/dist/logger.d.ts +15 -0
- package/dist/logger.d.ts.map +1 -0
- package/dist/notesync/NoteSyncSettings.d.ts +12 -0
- package/dist/notesync/NoteSyncSettings.d.ts.map +1 -0
- package/dist/orchestrator/PipelineOrchestrator.d.ts +53 -0
- package/dist/orchestrator/PipelineOrchestrator.d.ts.map +1 -0
- package/dist/persistence/PlanPersistence.d.ts +37 -0
- package/dist/persistence/PlanPersistence.d.ts.map +1 -0
- package/dist/phases/AnalysisPhase.d.ts +13 -0
- package/dist/phases/AnalysisPhase.d.ts.map +1 -0
- package/dist/phases/BasePhase.d.ts +44 -0
- package/dist/phases/BasePhase.d.ts.map +1 -0
- package/dist/phases/BuildPhase.d.ts +9 -0
- package/dist/phases/BuildPhase.d.ts.map +1 -0
- package/dist/phases/DesignPhase.d.ts +13 -0
- package/dist/phases/DesignPhase.d.ts.map +1 -0
- package/dist/phases/ImplementPhase.d.ts +9 -0
- package/dist/phases/ImplementPhase.d.ts.map +1 -0
- package/dist/phases/PhaseFactory.d.ts +13 -0
- package/dist/phases/PhaseFactory.d.ts.map +1 -0
- package/dist/phases/PlanPhase.d.ts +14 -0
- package/dist/phases/PlanPhase.d.ts.map +1 -0
- package/dist/phases/VerifyPhase.d.ts +13 -0
- package/dist/phases/VerifyPhase.d.ts.map +1 -0
- package/dist/pipeline/PipelineDefinition.d.ts +40 -0
- package/dist/pipeline/PipelineDefinition.d.ts.map +1 -0
- package/dist/poller/IssuePoller.d.ts +26 -0
- package/dist/poller/IssuePoller.d.ts.map +1 -0
- package/dist/prompts/brainstorm-templates.d.ts +4 -0
- package/dist/prompts/brainstorm-templates.d.ts.map +1 -0
- package/dist/prompts/templates.d.ts +27 -0
- package/dist/prompts/templates.d.ts.map +1 -0
- package/dist/rules/RuleResolver.d.ts +13 -0
- package/dist/rules/RuleResolver.d.ts.map +1 -0
- package/dist/rules/index.d.ts +3 -0
- package/dist/rules/index.d.ts.map +1 -0
- package/dist/run.d.ts +2 -0
- package/dist/run.d.ts.map +1 -0
- package/dist/run.js +15 -0
- package/dist/run.js.map +1 -0
- package/dist/services/BrainstormService.d.ts +39 -0
- package/dist/services/BrainstormService.d.ts.map +1 -0
- package/dist/start-TVN4SS6E.js +25 -0
- package/dist/start-TVN4SS6E.js.map +1 -0
- package/dist/supplement/SupplementStore.d.ts +21 -0
- package/dist/supplement/SupplementStore.d.ts.map +1 -0
- package/dist/tracker/IssueState.d.ts +63 -0
- package/dist/tracker/IssueState.d.ts.map +1 -0
- package/dist/tracker/IssueTracker.d.ts +29 -0
- package/dist/tracker/IssueTracker.d.ts.map +1 -0
- package/dist/utils/AsyncMutex.d.ts +14 -0
- package/dist/utils/AsyncMutex.d.ts.map +1 -0
- package/dist/utils/MergeRequestHelper.d.ts +10 -0
- package/dist/utils/MergeRequestHelper.d.ts.map +1 -0
- package/dist/web/AgentLogStore.d.ts +22 -0
- package/dist/web/AgentLogStore.d.ts.map +1 -0
- package/dist/web/WebServer.d.ts +26 -0
- package/dist/web/WebServer.d.ts.map +1 -0
- package/dist/web/routes/api.d.ts +20 -0
- package/dist/web/routes/api.d.ts.map +1 -0
- package/dist/web/routes/brainstorm.d.ts +9 -0
- package/dist/web/routes/brainstorm.d.ts.map +1 -0
- package/dist/web/routes/setup.d.ts +8 -0
- package/dist/web/routes/setup.d.ts.map +1 -0
- package/dist/webhook/CommandExecutor.d.ts +45 -0
- package/dist/webhook/CommandExecutor.d.ts.map +1 -0
- package/dist/webhook/CommandParser.d.ts +24 -0
- package/dist/webhook/CommandParser.d.ts.map +1 -0
- package/dist/webhook/IntentRecognizer.d.ts +35 -0
- package/dist/webhook/IntentRecognizer.d.ts.map +1 -0
- package/dist/webhook/NoteDeduplicator.d.ts +18 -0
- package/dist/webhook/NoteDeduplicator.d.ts.map +1 -0
- package/dist/webhook/WebhookHandler.d.ts +30 -0
- package/dist/webhook/WebhookHandler.d.ts.map +1 -0
- package/dist/webhook/WebhookServer.d.ts +21 -0
- package/dist/webhook/WebhookServer.d.ts.map +1 -0
- package/dist/webhook/index.d.ts +12 -0
- package/dist/webhook/index.d.ts.map +1 -0
- package/package.json +82 -0
- package/src/web/frontend/dist/assets/index-CQdlU9PE.js +65 -0
- package/src/web/frontend/dist/assets/index-CgMEkyZJ.css +1 -0
- package/src/web/frontend/dist/index.html +13 -0
package/dist/run.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":""}
|
package/dist/run.js
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import {
|
|
2
|
+
main
|
|
3
|
+
} from "./chunk-IDUKWCC2.js";
|
|
4
|
+
import "./chunk-TBIEB3JY.js";
|
|
5
|
+
import "./chunk-I3T573SU.js";
|
|
6
|
+
import "./chunk-HCHEFK4Z.js";
|
|
7
|
+
import "./chunk-RIUI4ROA.js";
|
|
8
|
+
import "./chunk-OWVT3Z34.js";
|
|
9
|
+
|
|
10
|
+
// src/run.ts
|
|
11
|
+
main().catch((err) => {
|
|
12
|
+
console.error("Fatal error", err.message, err.stack);
|
|
13
|
+
process.exit(1);
|
|
14
|
+
});
|
|
15
|
+
//# sourceMappingURL=run.js.map
|
package/dist/run.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/run.ts"],"sourcesContent":["import { main } from './index.js';\n\nmain().catch((err) => {\n console.error('Fatal error', (err as Error).message, (err as Error).stack);\n process.exit(1);\n});\n"],"mappings":";;;;;;;;;;AAEA,KAAK,EAAE,MAAM,CAAC,QAAQ;AACpB,UAAQ,MAAM,eAAgB,IAAc,SAAU,IAAc,KAAK;AACzE,UAAQ,KAAK,CAAC;AAChB,CAAC;","names":[]}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import type { RunResult } from '../ai-runner/AIRunner.js';
|
|
2
|
+
import type { Config } from '../config.js';
|
|
3
|
+
export interface BrainstormRound {
|
|
4
|
+
round: number;
|
|
5
|
+
questions: string;
|
|
6
|
+
refinedSdd: string;
|
|
7
|
+
}
|
|
8
|
+
export type BrainstormStatus = 'idle' | 'generating' | 'reviewing' | 'refining' | 'done' | 'error';
|
|
9
|
+
export interface BrainstormSession {
|
|
10
|
+
id: string;
|
|
11
|
+
transcript: string;
|
|
12
|
+
currentSdd: string;
|
|
13
|
+
rounds: BrainstormRound[];
|
|
14
|
+
status: BrainstormStatus;
|
|
15
|
+
error?: string;
|
|
16
|
+
generatorSessionId?: string;
|
|
17
|
+
createdAt: string;
|
|
18
|
+
}
|
|
19
|
+
export interface BrainstormStreamEvent {
|
|
20
|
+
type: 'sdd:chunk' | 'sdd:complete' | 'review:chunk' | 'review:complete' | 'round:start' | 'round:complete' | 'error';
|
|
21
|
+
data: unknown;
|
|
22
|
+
round?: number;
|
|
23
|
+
}
|
|
24
|
+
export declare class BrainstormService {
|
|
25
|
+
private sessions;
|
|
26
|
+
private generatorRunner;
|
|
27
|
+
private reviewerRunner;
|
|
28
|
+
private config;
|
|
29
|
+
private workDir;
|
|
30
|
+
constructor(config: Config);
|
|
31
|
+
createSession(transcript: string): BrainstormSession;
|
|
32
|
+
getSession(id: string): BrainstormSession | undefined;
|
|
33
|
+
generate(sessionId: string, onEvent?: (event: BrainstormStreamEvent) => void): Promise<RunResult>;
|
|
34
|
+
review(sessionId: string, onEvent?: (event: BrainstormStreamEvent) => void): Promise<RunResult>;
|
|
35
|
+
refine(sessionId: string, onEvent?: (event: BrainstormStreamEvent) => void): Promise<RunResult>;
|
|
36
|
+
autoRefine(sessionId: string, rounds?: number, onEvent?: (event: BrainstormStreamEvent) => void): Promise<void>;
|
|
37
|
+
private requireSession;
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=BrainstormService.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BrainstormService.d.ts","sourceRoot":"","sources":["../../src/services/BrainstormService.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAY,SAAS,EAAe,MAAM,0BAA0B,CAAC;AAEjF,OAAO,KAAK,EAAyB,MAAM,EAAE,MAAM,cAAc,CAAC;AASlE,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,gBAAgB,GACxB,MAAM,GACN,YAAY,GACZ,WAAW,GACX,UAAU,GACV,MAAM,GACN,OAAO,CAAC;AAEZ,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,MAAM,EAAE,gBAAgB,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,WAAW,GAAG,cAAc,GAAG,cAAc,GAAG,iBAAiB,GACnE,aAAa,GAAG,gBAAgB,GAAG,OAAO,CAAC;IAC/C,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAeD,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAwC;IACxD,OAAO,CAAC,eAAe,CAAW;IAClC,OAAO,CAAC,cAAc,CAAW;IACjC,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,OAAO,CAAS;gBAEZ,MAAM,EAAE,MAAM;IAW1B,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,iBAAiB;IAcpD,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS;IAI/C,QAAQ,CACZ,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,IAAI,GAC/C,OAAO,CAAC,SAAS,CAAC;IA6Bf,MAAM,CACV,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,IAAI,GAC/C,OAAO,CAAC,SAAS,CAAC;IAkCf,MAAM,CACV,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,IAAI,GAC/C,OAAO,CAAC,SAAS,CAAC;IAyCf,UAAU,CACd,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,IAAI,GAC/C,OAAO,CAAC,IAAI,CAAC;IAsBhB,OAAO,CAAC,cAAc;CAOvB"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import {
|
|
2
|
+
ConfigGenerator
|
|
3
|
+
} from "./chunk-HCHEFK4Z.js";
|
|
4
|
+
|
|
5
|
+
// src/cli/commands/start.ts
|
|
6
|
+
import { config as loadDotenv } from "dotenv";
|
|
7
|
+
async function startCommand(options) {
|
|
8
|
+
const configPath = ConfigGenerator.resolveConfigPath(options.config);
|
|
9
|
+
if (!ConfigGenerator.isInitialized(configPath)) {
|
|
10
|
+
console.error(
|
|
11
|
+
"\n Configuration not found.",
|
|
12
|
+
'\n Run "issue-auto-finish init" to set up, or specify --config <path>.\n'
|
|
13
|
+
);
|
|
14
|
+
process.exit(1);
|
|
15
|
+
}
|
|
16
|
+
process.env.IAF_CONFIG_PATH = configPath;
|
|
17
|
+
loadDotenv({ path: configPath, override: true });
|
|
18
|
+
console.log(` Loading config from: ${configPath}`);
|
|
19
|
+
const { main } = await import("./index.js");
|
|
20
|
+
await main();
|
|
21
|
+
}
|
|
22
|
+
export {
|
|
23
|
+
startCommand
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=start-TVN4SS6E.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/cli/commands/start.ts"],"sourcesContent":["import { config as loadDotenv } from 'dotenv';\nimport { ConfigGenerator } from '../setup/ConfigGenerator.js';\n\nexport interface StartOptions {\n config?: string;\n}\n\nexport async function startCommand(options: StartOptions): Promise<void> {\n const configPath = ConfigGenerator.resolveConfigPath(options.config);\n\n if (!ConfigGenerator.isInitialized(configPath)) {\n console.error(\n '\\n Configuration not found.',\n '\\n Run \"issue-auto-finish init\" to set up, or specify --config <path>.\\n',\n );\n process.exit(1);\n }\n\n process.env.IAF_CONFIG_PATH = configPath;\n loadDotenv({ path: configPath, override: true });\n console.log(` Loading config from: ${configPath}`);\n\n const { main } = await import('../../index.js');\n await main();\n}\n"],"mappings":";;;;;AAAA,SAAS,UAAU,kBAAkB;AAOrC,eAAsB,aAAa,SAAsC;AACvE,QAAM,aAAa,gBAAgB,kBAAkB,QAAQ,MAAM;AAEnE,MAAI,CAAC,gBAAgB,cAAc,UAAU,GAAG;AAC9C,YAAQ;AAAA,MACN;AAAA,MACA;AAAA,IACF;AACA,YAAQ,KAAK,CAAC;AAAA,EAChB;AAEA,UAAQ,IAAI,kBAAkB;AAC9B,aAAW,EAAE,MAAM,YAAY,UAAU,KAAK,CAAC;AAC/C,UAAQ,IAAI,0BAA0B,UAAU,EAAE;AAElD,QAAM,EAAE,KAAK,IAAI,MAAM,OAAO,YAAgB;AAC9C,QAAM,KAAK;AACb;","names":[]}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export interface SupplementInfo {
|
|
2
|
+
requirements: string;
|
|
3
|
+
acceptanceCriteria: string;
|
|
4
|
+
scope: string;
|
|
5
|
+
constraints: string;
|
|
6
|
+
references: string;
|
|
7
|
+
freeText: string;
|
|
8
|
+
tapdId: string;
|
|
9
|
+
updatedAt: string;
|
|
10
|
+
}
|
|
11
|
+
export declare class SupplementStore {
|
|
12
|
+
private dir;
|
|
13
|
+
constructor(dataDir: string);
|
|
14
|
+
private filePath;
|
|
15
|
+
private ensureDir;
|
|
16
|
+
get(issueIid: number): SupplementInfo | null;
|
|
17
|
+
save(issueIid: number, data: Omit<SupplementInfo, 'updatedAt'>): SupplementInfo;
|
|
18
|
+
delete(issueIid: number): boolean;
|
|
19
|
+
toPromptText(issueIid: number): string;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=SupplementStore.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SupplementStore.d.ts","sourceRoot":"","sources":["../../src/supplement/SupplementStore.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,GAAG,CAAS;gBAER,OAAO,EAAE,MAAM;IAI3B,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,SAAS;IAMjB,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI;IAY5C,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,cAAc,EAAE,WAAW,CAAC,GAAG,cAAc;IAW/E,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAYjC,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;CA4BvC"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
export declare enum IssueState {
|
|
2
|
+
Pending = "pending",
|
|
3
|
+
BranchCreated = "branch_created",
|
|
4
|
+
Analyzing = "analyzing",
|
|
5
|
+
AnalysisDone = "analysis_done",
|
|
6
|
+
Designing = "designing",
|
|
7
|
+
DesignDone = "design_done",
|
|
8
|
+
Implementing = "implementing",
|
|
9
|
+
ImplementDone = "implement_done",
|
|
10
|
+
Planning = "planning",
|
|
11
|
+
PlanDone = "plan_done",
|
|
12
|
+
WaitingForReview = "waiting_for_review",
|
|
13
|
+
ReviewApproved = "review_approved",
|
|
14
|
+
Building = "building",
|
|
15
|
+
BuildDone = "build_done",
|
|
16
|
+
Verifying = "verifying",
|
|
17
|
+
Completed = "completed",
|
|
18
|
+
Failed = "failed"
|
|
19
|
+
}
|
|
20
|
+
export type PipelineMode = 'classic' | 'plan-mode';
|
|
21
|
+
export interface PortPairRecord {
|
|
22
|
+
backendPort: number;
|
|
23
|
+
frontendPort: number;
|
|
24
|
+
}
|
|
25
|
+
export interface IssueRecord {
|
|
26
|
+
issueId: number;
|
|
27
|
+
issueIid: number;
|
|
28
|
+
issueTitle: string;
|
|
29
|
+
state: IssueState;
|
|
30
|
+
branchName: string;
|
|
31
|
+
sessionId?: string;
|
|
32
|
+
attempts: number;
|
|
33
|
+
lastError?: string;
|
|
34
|
+
failedAtState?: IssueState;
|
|
35
|
+
pipelineMode?: PipelineMode;
|
|
36
|
+
mrUrl?: string;
|
|
37
|
+
/** undefined = follow system setting */
|
|
38
|
+
issueNoteSyncEnabled?: boolean;
|
|
39
|
+
/** undefined = follow system setting */
|
|
40
|
+
e2eEnabled?: boolean;
|
|
41
|
+
/** Allocated ports for preview/E2E (persisted for recovery) */
|
|
42
|
+
ports?: PortPairRecord;
|
|
43
|
+
/** Preview servers started at */
|
|
44
|
+
previewStartedAt?: string;
|
|
45
|
+
createdAt: string;
|
|
46
|
+
updatedAt: string;
|
|
47
|
+
}
|
|
48
|
+
export type PhaseStatus = 'pending' | 'in_progress' | 'completed' | 'failed';
|
|
49
|
+
export interface PhaseProgress {
|
|
50
|
+
status: PhaseStatus;
|
|
51
|
+
startedAt?: string;
|
|
52
|
+
completedAt?: string;
|
|
53
|
+
error?: string;
|
|
54
|
+
}
|
|
55
|
+
export interface ProgressData {
|
|
56
|
+
issueId: number;
|
|
57
|
+
issueTitle: string;
|
|
58
|
+
branchName: string;
|
|
59
|
+
pipelineMode?: PipelineMode;
|
|
60
|
+
currentPhase: string;
|
|
61
|
+
phases: Record<string, PhaseProgress>;
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=IssueState.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IssueState.d.ts","sourceRoot":"","sources":["../../src/tracker/IssueState.ts"],"names":[],"mappings":"AAAA,oBAAY,UAAU;IACpB,OAAO,YAAY;IACnB,aAAa,mBAAmB;IAEhC,SAAS,cAAc;IACvB,YAAY,kBAAkB;IAC9B,SAAS,cAAc;IACvB,UAAU,gBAAgB;IAC1B,YAAY,iBAAiB;IAC7B,aAAa,mBAAmB;IAEhC,QAAQ,aAAa;IACrB,QAAQ,cAAc;IACtB,gBAAgB,uBAAuB;IACvC,cAAc,oBAAoB;IAClC,QAAQ,aAAa;IACrB,SAAS,eAAe;IAExB,SAAS,cAAc;IACvB,SAAS,cAAc;IACvB,MAAM,WAAW;CAClB;AAED,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,WAAW,CAAC;AAEnD,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,UAAU,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,UAAU,CAAC;IAC3B,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,wCAAwC;IACxC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,wCAAwC;IACxC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,+DAA+D;IAC/D,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB,iCAAiC;IACjC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,aAAa,GAAG,WAAW,GAAG,QAAQ,CAAC;AAE7E,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,WAAW,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;CACvC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { IssueRecord, IssueState } from './IssueState.js';
|
|
2
|
+
import { type PipelineDef } from '../pipeline/PipelineDefinition.js';
|
|
3
|
+
export declare class IssueTracker {
|
|
4
|
+
private filePath;
|
|
5
|
+
private data;
|
|
6
|
+
constructor(dataDir: string);
|
|
7
|
+
private load;
|
|
8
|
+
private save;
|
|
9
|
+
private key;
|
|
10
|
+
get(issueIid: number): IssueRecord | undefined;
|
|
11
|
+
create(record: Omit<IssueRecord, 'createdAt' | 'updatedAt' | 'attempts'>): IssueRecord;
|
|
12
|
+
updateState(issueIid: number, state: IssueState, extra?: Partial<IssueRecord>): void;
|
|
13
|
+
markFailed(issueIid: number, error: string, failedAtState: IssueState): void;
|
|
14
|
+
private static readonly TERMINAL_STATES;
|
|
15
|
+
private static readonly PHASE_DONE_STATES;
|
|
16
|
+
isProcessing(issueIid: number): boolean;
|
|
17
|
+
isCompleted(issueIid: number): boolean;
|
|
18
|
+
canRetry(issueIid: number, maxRetries: number): boolean;
|
|
19
|
+
getRetryState(issueIid: number): IssueState | undefined;
|
|
20
|
+
isStalled(issueIid: number, thresholdMs?: number): boolean;
|
|
21
|
+
getDrivableIssues(maxRetries: number, stalledThresholdMs?: number): IssueRecord[];
|
|
22
|
+
getAllActive(): IssueRecord[];
|
|
23
|
+
getAll(): IssueRecord[];
|
|
24
|
+
resetFull(issueIid: number): boolean;
|
|
25
|
+
resetToPhase(issueIid: number, phase: string, def: PipelineDef): boolean;
|
|
26
|
+
resetForRetry(issueIid: number): boolean;
|
|
27
|
+
delete(issueIid: number): boolean;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=IssueTracker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IssueTracker.d.ts","sourceRoot":"","sources":["../../src/tracker/IssueTracker.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAoB,KAAK,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAUvF,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,IAAI,CAAc;gBAEd,OAAO,EAAE,MAAM;IAK3B,OAAO,CAAC,IAAI;IAYZ,OAAO,CAAC,IAAI;IAWZ,OAAO,CAAC,GAAG;IAIX,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS;IAI9C,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,WAAW,GAAG,WAAW,GAAG,UAAU,CAAC,GAAG,WAAW;IAetF,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,IAAI;IAmBpF,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,UAAU,GAAG,IAAI;IAa5E,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAsD;IAE7F,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAMtC;IAEH,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAMvC,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAKtC,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO;IAMvD,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IAKvD,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,GAAE,MAAsB,GAAG,OAAO;IASzE,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,kBAAkB,CAAC,EAAE,MAAM,GAAG,WAAW,EAAE;IAajF,YAAY,IAAI,WAAW,EAAE;IAM7B,MAAM,IAAI,WAAW,EAAE;IAIvB,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAepC,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,GAAG,OAAO;IAgBxE,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAcxC,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;CAUlC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Promise-based async mutex for serializing access to shared resources
|
|
3
|
+
* in a single Node.js process (e.g. mainGit operations, tracker file writes).
|
|
4
|
+
*/
|
|
5
|
+
export declare class AsyncMutex {
|
|
6
|
+
private queue;
|
|
7
|
+
private locked;
|
|
8
|
+
runExclusive<T>(fn: () => Promise<T>): Promise<T>;
|
|
9
|
+
private acquire;
|
|
10
|
+
private release;
|
|
11
|
+
get isLocked(): boolean;
|
|
12
|
+
get queueLength(): number;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=AsyncMutex.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AsyncMutex.d.ts","sourceRoot":"","sources":["../../src/utils/AsyncMutex.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,KAAK,CAAyB;IACtC,OAAO,CAAC,MAAM,CAAS;IAEjB,YAAY,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IASvD,OAAO,CAAC,OAAO;IAUf,OAAO,CAAC,OAAO;IASf,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED,IAAI,WAAW,IAAI,MAAM,CAExB;CACF"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export declare function extractTapdId(text: string): string | null;
|
|
2
|
+
export declare function generateMRTitle(issueIid: number, issueTitle: string, tapdId?: string | null): string;
|
|
3
|
+
export declare function generateMRDescription(options: {
|
|
4
|
+
issueIid: number;
|
|
5
|
+
issueTitle: string;
|
|
6
|
+
issueDescription: string;
|
|
7
|
+
branchName: string;
|
|
8
|
+
planDir?: string;
|
|
9
|
+
}): string;
|
|
10
|
+
//# sourceMappingURL=MergeRequestHelper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MergeRequestHelper.d.ts","sourceRoot":"","sources":["../../src/utils/MergeRequestHelper.ts"],"names":[],"mappings":"AAWA,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAMzD;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAMpG;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE;IAC7C,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GAAG,MAAM,CA2CT"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export interface AgentLogEntry {
|
|
2
|
+
type: string;
|
|
3
|
+
phase?: string;
|
|
4
|
+
timestamp: string;
|
|
5
|
+
summary: string;
|
|
6
|
+
}
|
|
7
|
+
export declare class AgentLogStore {
|
|
8
|
+
private logDir;
|
|
9
|
+
constructor(dataDir: string);
|
|
10
|
+
startListening(): void;
|
|
11
|
+
getLogs(issueIid: number): AgentLogEntry[];
|
|
12
|
+
clearLogs(issueIid: number): void;
|
|
13
|
+
private logFilePath;
|
|
14
|
+
private appendLog;
|
|
15
|
+
private trimIfNeeded;
|
|
16
|
+
private handleAgentOutput;
|
|
17
|
+
private handlePipelineProgress;
|
|
18
|
+
private summarizeContent;
|
|
19
|
+
private extractAssistantText;
|
|
20
|
+
private extractToolUseText;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=AgentLogStore.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AgentLogStore.d.ts","sourceRoot":"","sources":["../../src/web/AgentLogStore.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAUD,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAS;gBAEX,OAAO,EAAE,MAAM;IAOpB,cAAc,IAAI,IAAI;IAYtB,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,aAAa,EAAE;IAc1C,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAOxC,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,SAAS;IAUjB,OAAO,CAAC,YAAY;IAepB,OAAO,CAAC,iBAAiB;IAgBzB,OAAO,CAAC,sBAAsB;IAa9B,OAAO,CAAC,gBAAgB;IAwBxB,OAAO,CAAC,oBAAoB;IAgB5B,OAAO,CAAC,kBAAkB;CAQ3B"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { IssueTracker } from '../tracker/IssueTracker.js';
|
|
2
|
+
import { Config } from '../config.js';
|
|
3
|
+
import { AgentLogStore } from './AgentLogStore.js';
|
|
4
|
+
import { PipelineOrchestrator } from '../orchestrator/PipelineOrchestrator.js';
|
|
5
|
+
import { GitOperations } from '../git/GitOperations.js';
|
|
6
|
+
import { GongfengClient } from '../clients/GongfengClient.js';
|
|
7
|
+
import { SupplementStore } from '../supplement/SupplementStore.js';
|
|
8
|
+
export interface WebServerDeps {
|
|
9
|
+
tracker: IssueTracker;
|
|
10
|
+
config: Config;
|
|
11
|
+
agentLogStore: AgentLogStore;
|
|
12
|
+
orchestrator: PipelineOrchestrator;
|
|
13
|
+
gongfeng: GongfengClient;
|
|
14
|
+
supplementStore: SupplementStore;
|
|
15
|
+
mainGit?: GitOperations;
|
|
16
|
+
}
|
|
17
|
+
export declare class WebServer {
|
|
18
|
+
private app;
|
|
19
|
+
private server;
|
|
20
|
+
private port;
|
|
21
|
+
constructor(deps: WebServerDeps);
|
|
22
|
+
constructor(tracker: IssueTracker, config: Config, agentLogStore: AgentLogStore, orchestrator: PipelineOrchestrator, mainGit?: GitOperations);
|
|
23
|
+
start(): Promise<void>;
|
|
24
|
+
stop(): void;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=WebServer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WebServer.d.ts","sourceRoot":"","sources":["../../src/web/WebServer.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAOnE,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,YAAY,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,aAAa,CAAC;IAC7B,YAAY,EAAE,oBAAoB,CAAC;IACnC,QAAQ,EAAE,cAAc,CAAC;IACzB,eAAe,EAAE,eAAe,CAAC;IACjC,OAAO,CAAC,EAAE,aAAa,CAAC;CACzB;AAED,qBAAa,SAAS;IACpB,OAAO,CAAC,GAAG,CAAsB;IACjC,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,IAAI,CAAS;gBAET,IAAI,EAAE,aAAa;gBACnB,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,oBAAoB,EAAE,OAAO,CAAC,EAAE,aAAa;IA6D5I,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAStB,IAAI,IAAI,IAAI;CAOb"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Router } from 'express';
|
|
2
|
+
import { IssueTracker } from '../../tracker/IssueTracker.js';
|
|
3
|
+
import { Config } from '../../config.js';
|
|
4
|
+
import { AgentLogStore } from '../AgentLogStore.js';
|
|
5
|
+
import { PipelineOrchestrator } from '../../orchestrator/PipelineOrchestrator.js';
|
|
6
|
+
import { GitOperations } from '../../git/GitOperations.js';
|
|
7
|
+
import { GongfengClient } from '../../clients/GongfengClient.js';
|
|
8
|
+
import { SupplementStore } from '../../supplement/SupplementStore.js';
|
|
9
|
+
export interface ApiRouterDeps {
|
|
10
|
+
tracker: IssueTracker;
|
|
11
|
+
config: Config;
|
|
12
|
+
agentLogStore: AgentLogStore;
|
|
13
|
+
orchestrator: PipelineOrchestrator;
|
|
14
|
+
gongfeng: GongfengClient;
|
|
15
|
+
supplementStore: SupplementStore;
|
|
16
|
+
mainGit?: GitOperations;
|
|
17
|
+
}
|
|
18
|
+
export declare function createApiRouter(deps: ApiRouterDeps): Router;
|
|
19
|
+
export declare function createApiRouter(tracker: IssueTracker, config: Config, agentLogStore: AgentLogStore, orchestrator: PipelineOrchestrator, mainGit?: GitOperations): Router;
|
|
20
|
+
//# sourceMappingURL=api.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/web/routes/api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAqB,MAAM,SAAS,CAAC;AAIpD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAE7D,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;AAClF,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AAgBtE,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,YAAY,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,aAAa,CAAC;IAC7B,YAAY,EAAE,oBAAoB,CAAC;IACnC,QAAQ,EAAE,cAAc,CAAC;IACzB,eAAe,EAAE,eAAe,CAAC;IACjC,OAAO,CAAC,EAAE,aAAa,CAAC;CACzB;AAeD,wBAAgB,eAAe,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,CAAC;AAC7D,wBAAgB,eAAe,CAAC,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,oBAAoB,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,MAAM,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Router } from 'express';
|
|
2
|
+
import { BrainstormService } from '../../services/BrainstormService.js';
|
|
3
|
+
import { GongfengClient } from '../../clients/GongfengClient.js';
|
|
4
|
+
export interface BrainstormRouterDeps {
|
|
5
|
+
brainstormService: BrainstormService;
|
|
6
|
+
gongfeng: GongfengClient;
|
|
7
|
+
}
|
|
8
|
+
export declare function createBrainstormRouter(deps: BrainstormRouterDeps): Router;
|
|
9
|
+
//# sourceMappingURL=brainstorm.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"brainstorm.d.ts","sourceRoot":"","sources":["../../../src/web/routes/brainstorm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAqB,MAAM,SAAS,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAA8B,MAAM,qCAAqC,CAAC;AACpG,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAKjE,MAAM,WAAW,oBAAoB;IACnC,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,QAAQ,EAAE,cAAc,CAAC;CAC1B;AAkBD,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,oBAAoB,GAAG,MAAM,CAiIzE"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Router } from 'express';
|
|
2
|
+
export interface SetupRouterDeps {
|
|
3
|
+
configPath?: string;
|
|
4
|
+
onComplete?: (configPath: string) => void;
|
|
5
|
+
serviceMode?: boolean;
|
|
6
|
+
}
|
|
7
|
+
export declare function createSetupRouter(deps?: SetupRouterDeps): Router;
|
|
8
|
+
//# sourceMappingURL=setup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../../src/web/routes/setup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAqB,MAAM,SAAS,CAAC;AAKpD,MAAM,WAAW,eAAe;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,wBAAgB,iBAAiB,CAAC,IAAI,GAAE,eAAoB,GAAG,MAAM,CAsJpE"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import type { ParsedCommand } from './CommandParser.js';
|
|
2
|
+
import type { IssueTracker } from '../tracker/IssueTracker.js';
|
|
3
|
+
import type { PipelineOrchestrator } from '../orchestrator/PipelineOrchestrator.js';
|
|
4
|
+
import type { SupplementStore } from '../supplement/SupplementStore.js';
|
|
5
|
+
import type { GongfengClient } from '../clients/GongfengClient.js';
|
|
6
|
+
import type { Config } from '../config.js';
|
|
7
|
+
export interface CommandExecutorDeps {
|
|
8
|
+
tracker: IssueTracker;
|
|
9
|
+
orchestrator: PipelineOrchestrator;
|
|
10
|
+
supplementStore: SupplementStore;
|
|
11
|
+
gongfeng: GongfengClient;
|
|
12
|
+
config: Config;
|
|
13
|
+
}
|
|
14
|
+
export interface ExecutionResult {
|
|
15
|
+
success: boolean;
|
|
16
|
+
message: string;
|
|
17
|
+
}
|
|
18
|
+
export declare class CommandExecutor {
|
|
19
|
+
private tracker;
|
|
20
|
+
private orchestrator;
|
|
21
|
+
private supplementStore;
|
|
22
|
+
private gongfeng;
|
|
23
|
+
private config;
|
|
24
|
+
constructor(deps: CommandExecutorDeps);
|
|
25
|
+
execute(issueIid: number, issueId: number, command: ParsedCommand): Promise<ExecutionResult>;
|
|
26
|
+
private dispatch;
|
|
27
|
+
private handleRetry;
|
|
28
|
+
private handleRetryFrom;
|
|
29
|
+
private handleSupplement;
|
|
30
|
+
private handleApprove;
|
|
31
|
+
private handleReject;
|
|
32
|
+
private handleStatus;
|
|
33
|
+
private handleRestart;
|
|
34
|
+
private handlePreview;
|
|
35
|
+
private handleStopPreview;
|
|
36
|
+
private handleCleanNotes;
|
|
37
|
+
private saveSupplement;
|
|
38
|
+
private replyToIssue;
|
|
39
|
+
private ok;
|
|
40
|
+
private fail;
|
|
41
|
+
private notTracked;
|
|
42
|
+
private getIssuePipelineDef;
|
|
43
|
+
private getWorktreeWorkDir;
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=CommandExecutor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CommandExecutor.d.ts","sourceRoot":"","sources":["../../src/webhook/CommandExecutor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAC;AACpF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAY3C,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,YAAY,CAAC;IACtB,YAAY,EAAE,oBAAoB,CAAC;IACnC,eAAe,EAAE,eAAe,CAAC;IACjC,QAAQ,EAAE,cAAc,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,OAAO,CAAe;IAC9B,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,MAAM,CAAS;gBAEX,IAAI,EAAE,mBAAmB;IAQ/B,OAAO,CACX,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,eAAe,CAAC;YAgBb,QAAQ;IAgBtB,OAAO,CAAC,WAAW;IAWnB,OAAO,CAAC,eAAe;IAcvB,OAAO,CAAC,gBAAgB;IAMxB,OAAO,CAAC,aAAa;IAoBrB,OAAO,CAAC,YAAY;IAiBpB,OAAO,CAAC,YAAY;YA+BN,aAAa;IAS3B,OAAO,CAAC,aAAa;IA+BrB,OAAO,CAAC,iBAAiB;YAcX,gBAAgB;IAY9B,OAAO,CAAC,cAAc;YAeR,YAAY;IAS1B,OAAO,CAAC,EAAE;IAIV,OAAO,CAAC,IAAI;IAIZ,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,mBAAmB;IAK3B,OAAO,CAAC,kBAAkB;CAO3B"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export type CommandIntent = 'retry' | 'retry-from' | 'supplement' | 'approve' | 'reject' | 'status' | 'restart' | 'preview' | 'stop-preview' | 'clean-notes';
|
|
2
|
+
export interface ParsedCommand {
|
|
3
|
+
intent: CommandIntent;
|
|
4
|
+
phase?: string;
|
|
5
|
+
context?: string;
|
|
6
|
+
feedback?: string;
|
|
7
|
+
}
|
|
8
|
+
export declare function containsTrigger(text: string): boolean;
|
|
9
|
+
/**
|
|
10
|
+
* Extract the portion of text after the @issue-auto trigger.
|
|
11
|
+
* Returns null if trigger is not found.
|
|
12
|
+
*/
|
|
13
|
+
export declare function extractCommandText(text: string): string | null;
|
|
14
|
+
/**
|
|
15
|
+
* Try to parse an exact command from the text after the trigger.
|
|
16
|
+
* Returns null if no pattern matches (caller should fall back to LLM).
|
|
17
|
+
*/
|
|
18
|
+
export declare function parseExact(commandText: string): ParsedCommand | null;
|
|
19
|
+
/**
|
|
20
|
+
* Full parse pipeline: extract trigger text, then try exact match.
|
|
21
|
+
* Returns null if trigger not found or no exact match.
|
|
22
|
+
*/
|
|
23
|
+
export declare function parseCommand(fullText: string): ParsedCommand | null;
|
|
24
|
+
//# sourceMappingURL=CommandParser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CommandParser.d.ts","sourceRoot":"","sources":["../../src/webhook/CommandParser.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GACrB,OAAO,GACP,YAAY,GACZ,YAAY,GACZ,SAAS,GACT,QAAQ,GACR,QAAQ,GACR,SAAS,GACT,SAAS,GACT,cAAc,GACd,aAAa,CAAC;AAElB,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,aAAa,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAuGD,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAErD;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAI9D;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAMpE;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAInE"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { ParsedCommand } from './CommandParser.js';
|
|
2
|
+
export interface IntentRecognizerConfig {
|
|
3
|
+
binary: string;
|
|
4
|
+
nvmNodeVersion: string;
|
|
5
|
+
model?: string;
|
|
6
|
+
timeoutMs?: number;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* 通过 LLM 将自然语言评论解析为结构化指令。
|
|
10
|
+
*
|
|
11
|
+
* **为什么默认使用 claude-internal / codebuddy 而非跟随 AI_RUNNER_MODE?**
|
|
12
|
+
*
|
|
13
|
+
* - `cursor` CLI 不支持 `-p`(stdin prompt)、`--output-format`、`--model` 等参数,
|
|
14
|
+
* 且需要连接 VS Code Server,无法在 PM2 无头进程中运行。
|
|
15
|
+
* - `cursor-agent` 是面向多步骤编码任务的完整 IDE agent,对简单的意图分类来说过重。
|
|
16
|
+
* - `claude-internal` 和 `codebuddy` 都提供轻量级 CLI 接口,支持 stdin 传入 prompt
|
|
17
|
+
* 并返回纯文本,适合在后台服务中做短文本意图识别。
|
|
18
|
+
*
|
|
19
|
+
* 因此 `WEBHOOK_LLM_BINARY` 配置独立于 `AI_RUNNER_MODE`,默认值为 `claude-internal`。
|
|
20
|
+
*
|
|
21
|
+
* @see WebhookServer.ts — 构造 IntentRecognizer 时使用 config.webhook.llmBinary
|
|
22
|
+
* @see config.ts — WEBHOOK_LLM_BINARY 环境变量定义
|
|
23
|
+
*/
|
|
24
|
+
export declare class IntentRecognizer {
|
|
25
|
+
private binary;
|
|
26
|
+
private nvmNodeVersion;
|
|
27
|
+
private model?;
|
|
28
|
+
private timeoutMs;
|
|
29
|
+
constructor(config: IntentRecognizerConfig);
|
|
30
|
+
recognize(userComment: string, issueState?: string): Promise<ParsedCommand | null>;
|
|
31
|
+
/** Visible for testing */
|
|
32
|
+
parseResponse(raw: string): ParsedCommand | null;
|
|
33
|
+
private runLLM;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=IntentRecognizer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IntentRecognizer.d.ts","sourceRoot":"","sources":["../../src/webhook/IntentRecognizer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAiB,MAAM,oBAAoB,CAAC;AAgBvE,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,KAAK,CAAC,CAAS;IACvB,OAAO,CAAC,SAAS,CAAS;gBAEd,MAAM,EAAE,sBAAsB;IAOpC,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IAaxF,0BAA0B;IAC1B,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI;IA2ChD,OAAO,CAAC,MAAM;CAuCf"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LRU-based deduplication for webhook note IDs.
|
|
3
|
+
* Prevents the same note from being processed twice
|
|
4
|
+
* (e.g. due to webhook retries or duplicate deliveries).
|
|
5
|
+
*/
|
|
6
|
+
export declare class NoteDeduplicator {
|
|
7
|
+
private seen;
|
|
8
|
+
private maxSize;
|
|
9
|
+
constructor(maxSize?: number);
|
|
10
|
+
/**
|
|
11
|
+
* Returns true if this noteId has already been processed.
|
|
12
|
+
* If not, marks it as processed and returns false.
|
|
13
|
+
*/
|
|
14
|
+
isDuplicate(noteId: number): boolean;
|
|
15
|
+
get size(): number;
|
|
16
|
+
private evictIfNeeded;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=NoteDeduplicator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NoteDeduplicator.d.ts","sourceRoot":"","sources":["../../src/webhook/NoteDeduplicator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,IAAI,CAAsB;IAClC,OAAO,CAAC,OAAO,CAAS;gBAEZ,OAAO,GAAE,MAAa;IAKlC;;;OAGG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAOpC,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,OAAO,CAAC,aAAa;CAOtB"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { Router } from 'express';
|
|
2
|
+
import { IntentRecognizer } from './IntentRecognizer.js';
|
|
3
|
+
import { CommandExecutorDeps } from './CommandExecutor.js';
|
|
4
|
+
import type { Config } from '../config.js';
|
|
5
|
+
export interface NoteEvent {
|
|
6
|
+
object_kind: string;
|
|
7
|
+
event_type?: string;
|
|
8
|
+
user: {
|
|
9
|
+
username: string;
|
|
10
|
+
name: string;
|
|
11
|
+
user_id?: number;
|
|
12
|
+
};
|
|
13
|
+
object_attributes: {
|
|
14
|
+
id: number;
|
|
15
|
+
note: string;
|
|
16
|
+
noteable_type: string;
|
|
17
|
+
noteable_id: number | string;
|
|
18
|
+
};
|
|
19
|
+
issue?: {
|
|
20
|
+
id: number | null;
|
|
21
|
+
iid: number;
|
|
22
|
+
title: string;
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
export interface WebhookHandlerDeps extends CommandExecutorDeps {
|
|
26
|
+
config: Config;
|
|
27
|
+
intentRecognizer?: IntentRecognizer;
|
|
28
|
+
}
|
|
29
|
+
export declare function createWebhookRouter(deps: WebhookHandlerDeps): Router;
|
|
30
|
+
//# sourceMappingURL=WebhookHandler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WebhookHandler.d.ts","sourceRoot":"","sources":["../../src/webhook/WebhookHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAqB,MAAM,SAAS,CAAC;AAEpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAmB,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAE5E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAM3C,MAAM,WAAW,SAAS;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3D,iBAAiB,EAAE;QACjB,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,aAAa,EAAE,MAAM,CAAC;QACtB,WAAW,EAAE,MAAM,GAAG,MAAM,CAAC;KAC9B,CAAC;IACF,KAAK,CAAC,EAAE;QACN,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;QAClB,GAAG,EAAE,MAAM,CAAC;QACZ,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;CACH;AAED,MAAM,WAAW,kBAAmB,SAAQ,mBAAmB;IAC7D,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;CACrC;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,kBAAkB,GAAG,MAAM,CAqEpE"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { IssueTracker } from '../tracker/IssueTracker.js';
|
|
2
|
+
import type { PipelineOrchestrator } from '../orchestrator/PipelineOrchestrator.js';
|
|
3
|
+
import type { SupplementStore } from '../supplement/SupplementStore.js';
|
|
4
|
+
import type { GongfengClient } from '../clients/GongfengClient.js';
|
|
5
|
+
import type { Config } from '../config.js';
|
|
6
|
+
export interface WebhookServerDeps {
|
|
7
|
+
tracker: IssueTracker;
|
|
8
|
+
orchestrator: PipelineOrchestrator;
|
|
9
|
+
supplementStore: SupplementStore;
|
|
10
|
+
gongfeng: GongfengClient;
|
|
11
|
+
config: Config;
|
|
12
|
+
}
|
|
13
|
+
export declare class WebhookServer {
|
|
14
|
+
private app;
|
|
15
|
+
private server;
|
|
16
|
+
private port;
|
|
17
|
+
constructor(deps: WebhookServerDeps);
|
|
18
|
+
start(): Promise<void>;
|
|
19
|
+
stop(): void;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=WebhookServer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WebhookServer.d.ts","sourceRoot":"","sources":["../../src/webhook/WebhookServer.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAC;AACpF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAM3C,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,YAAY,CAAC;IACtB,YAAY,EAAE,oBAAoB,CAAC;IACnC,eAAe,EAAE,eAAe,CAAC;IACjC,QAAQ,EAAE,cAAc,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,GAAG,CAAsB;IACjC,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,IAAI,CAAS;gBAET,IAAI,EAAE,iBAAiB;IAgCnC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAStB,IAAI,IAAI,IAAI;CAOb"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export { containsTrigger, extractCommandText, parseExact, parseCommand } from './CommandParser.js';
|
|
2
|
+
export type { ParsedCommand, CommandIntent } from './CommandParser.js';
|
|
3
|
+
export { IntentRecognizer } from './IntentRecognizer.js';
|
|
4
|
+
export type { IntentRecognizerConfig } from './IntentRecognizer.js';
|
|
5
|
+
export { CommandExecutor } from './CommandExecutor.js';
|
|
6
|
+
export type { CommandExecutorDeps, ExecutionResult } from './CommandExecutor.js';
|
|
7
|
+
export { NoteDeduplicator } from './NoteDeduplicator.js';
|
|
8
|
+
export { createWebhookRouter } from './WebhookHandler.js';
|
|
9
|
+
export type { NoteEvent, WebhookHandlerDeps } from './WebhookHandler.js';
|
|
10
|
+
export { WebhookServer } from './WebhookServer.js';
|
|
11
|
+
export type { WebhookServerDeps } from './WebhookServer.js';
|
|
12
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/webhook/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACnG,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,YAAY,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,YAAY,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,YAAY,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,YAAY,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC"}
|