@qotaq/lalphgram 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Events/package.json +6 -0
- package/LICENSE +21 -0
- package/Main/package.json +6 -0
- package/README.md +1 -0
- package/dist/cjs/Events.js +55 -0
- package/dist/cjs/Events.js.map +1 -0
- package/dist/cjs/LalphMain.js +59 -0
- package/dist/cjs/LalphMain.js.map +1 -0
- package/dist/cjs/Main.js +115 -0
- package/dist/cjs/Main.js.map +1 -0
- package/dist/cjs/index.js +281 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/lib/AnalysisPrompts.js +61 -0
- package/dist/cjs/lib/AnalysisPrompts.js.map +1 -0
- package/dist/cjs/lib/BranchParser.js +45 -0
- package/dist/cjs/lib/BranchParser.js.map +1 -0
- package/dist/cjs/lib/MermaidToPlantUml.js +96 -0
- package/dist/cjs/lib/MermaidToPlantUml.js.map +1 -0
- package/dist/cjs/lib/SpecHtmlGenerator.js +160 -0
- package/dist/cjs/lib/SpecHtmlGenerator.js.map +1 -0
- package/dist/cjs/lib/StreamJsonParser.js +88 -0
- package/dist/cjs/lib/StreamJsonParser.js.map +1 -0
- package/dist/cjs/lib/TelegramFormatter.js +122 -0
- package/dist/cjs/lib/TelegramFormatter.js.map +1 -0
- package/dist/cjs/lib/TelegraphHtml.js +65 -0
- package/dist/cjs/lib/TelegraphHtml.js.map +1 -0
- package/dist/cjs/lib/TelegraphMarkdown.js +346 -0
- package/dist/cjs/lib/TelegraphMarkdown.js.map +1 -0
- package/dist/cjs/schemas/CredentialSchemas.js +31 -0
- package/dist/cjs/schemas/CredentialSchemas.js.map +1 -0
- package/dist/cjs/schemas/GitHubSchemas.js +60 -0
- package/dist/cjs/schemas/GitHubSchemas.js.map +1 -0
- package/dist/cjs/schemas/LinearSchemas.js +63 -0
- package/dist/cjs/schemas/LinearSchemas.js.map +1 -0
- package/dist/cjs/schemas/ProjectSchemas.js +26 -0
- package/dist/cjs/schemas/ProjectSchemas.js.map +1 -0
- package/dist/cjs/schemas/TrackerSchemas.js +35 -0
- package/dist/cjs/schemas/TrackerSchemas.js.map +1 -0
- package/dist/cjs/services/AppContext.js +57 -0
- package/dist/cjs/services/AppContext.js.map +1 -0
- package/dist/cjs/services/AppRuntimeConfig.js +35 -0
- package/dist/cjs/services/AppRuntimeConfig.js.map +1 -0
- package/dist/cjs/services/AutoMerge.js +140 -0
- package/dist/cjs/services/AutoMerge.js.map +1 -0
- package/dist/cjs/services/ChatMachine.js +873 -0
- package/dist/cjs/services/ChatMachine.js.map +1 -0
- package/dist/cjs/services/CommentTimer.js +81 -0
- package/dist/cjs/services/CommentTimer.js.map +1 -0
- package/dist/cjs/services/CredentialStore.js +68 -0
- package/dist/cjs/services/CredentialStore.js.map +1 -0
- package/dist/cjs/services/CredentialWatcher.js +76 -0
- package/dist/cjs/services/CredentialWatcher.js.map +1 -0
- package/dist/cjs/services/Credentials.js +130 -0
- package/dist/cjs/services/Credentials.js.map +1 -0
- package/dist/cjs/services/EventLoop.js +203 -0
- package/dist/cjs/services/EventLoop.js.map +1 -0
- package/dist/cjs/services/GitHubClient/GitHubClient.js +236 -0
- package/dist/cjs/services/GitHubClient/GitHubClient.js.map +1 -0
- package/dist/cjs/services/GitHubClient/OctokitClient.js +329 -0
- package/dist/cjs/services/GitHubClient/OctokitClient.js.map +1 -0
- package/dist/cjs/services/GitHubClient.js +236 -0
- package/dist/cjs/services/GitHubClient.js.map +1 -0
- package/dist/cjs/services/GitHubEventSource.js +145 -0
- package/dist/cjs/services/GitHubEventSource.js.map +1 -0
- package/dist/cjs/services/GitHubIssueTracker.js +118 -0
- package/dist/cjs/services/GitHubIssueTracker.js.map +1 -0
- package/dist/cjs/services/LalphConfig.js +139 -0
- package/dist/cjs/services/LalphConfig.js.map +1 -0
- package/dist/cjs/services/LalphConfigReader.js +82 -0
- package/dist/cjs/services/LalphConfigReader.js.map +1 -0
- package/dist/cjs/services/LalphDirectory.js +45 -0
- package/dist/cjs/services/LalphDirectory.js.map +1 -0
- package/dist/cjs/services/LinearSdkClient.js +149 -0
- package/dist/cjs/services/LinearSdkClient.js.map +1 -0
- package/dist/cjs/services/LinearTracker.js +89 -0
- package/dist/cjs/services/LinearTracker.js.map +1 -0
- package/dist/cjs/services/MessengerAdapter/MessengerAdapter.js +30 -0
- package/dist/cjs/services/MessengerAdapter/MessengerAdapter.js.map +1 -0
- package/dist/cjs/services/MessengerAdapter/TelegramAdapter.js +131 -0
- package/dist/cjs/services/MessengerAdapter/TelegramAdapter.js.map +1 -0
- package/dist/cjs/services/MessengerAdapter/TelegramConfig.js +81 -0
- package/dist/cjs/services/MessengerAdapter/TelegramConfig.js.map +1 -0
- package/dist/cjs/services/MessengerAdapter.js +30 -0
- package/dist/cjs/services/MessengerAdapter.js.map +1 -0
- package/dist/cjs/services/OctokitClient.js +350 -0
- package/dist/cjs/services/OctokitClient.js.map +1 -0
- package/dist/cjs/services/PlanOverviewUploader.js +119 -0
- package/dist/cjs/services/PlanOverviewUploader.js.map +1 -0
- package/dist/cjs/services/PlanOverviewUploaderMap.js +25 -0
- package/dist/cjs/services/PlanOverviewUploaderMap.js.map +1 -0
- package/dist/cjs/services/PlanSession.js +489 -0
- package/dist/cjs/services/PlanSession.js.map +1 -0
- package/dist/cjs/services/ProjectStore.js +107 -0
- package/dist/cjs/services/ProjectStore.js.map +1 -0
- package/dist/cjs/services/PullRequestTracker.js +186 -0
- package/dist/cjs/services/PullRequestTracker.js.map +1 -0
- package/dist/cjs/services/SpecUploader.js +111 -0
- package/dist/cjs/services/SpecUploader.js.map +1 -0
- package/dist/cjs/services/SpecUploaderMap.js +25 -0
- package/dist/cjs/services/SpecUploaderMap.js.map +1 -0
- package/dist/cjs/services/TaskEventSource.js +58 -0
- package/dist/cjs/services/TaskEventSource.js.map +1 -0
- package/dist/cjs/services/TaskTracker/GitHubIssueTracker.js +155 -0
- package/dist/cjs/services/TaskTracker/GitHubIssueTracker.js.map +1 -0
- package/dist/cjs/services/TaskTracker/LinearSdkClient.js +149 -0
- package/dist/cjs/services/TaskTracker/LinearSdkClient.js.map +1 -0
- package/dist/cjs/services/TaskTracker/LinearTracker.js +126 -0
- package/dist/cjs/services/TaskTracker/LinearTracker.js.map +1 -0
- package/dist/cjs/services/TaskTracker/TaskTracker.js +20 -0
- package/dist/cjs/services/TaskTracker/TaskTracker.js.map +1 -0
- package/dist/cjs/services/TaskTracker/TrackerLayerMap.js +27 -0
- package/dist/cjs/services/TaskTracker/TrackerLayerMap.js.map +1 -0
- package/dist/cjs/services/TaskTracker/buildEventStream.js +55 -0
- package/dist/cjs/services/TaskTracker/buildEventStream.js.map +1 -0
- package/dist/cjs/services/TaskTracker.js +20 -0
- package/dist/cjs/services/TaskTracker.js.map +1 -0
- package/dist/cjs/services/TelegramAdapter.js +125 -0
- package/dist/cjs/services/TelegramAdapter.js.map +1 -0
- package/dist/cjs/services/TelegramConfig.js +81 -0
- package/dist/cjs/services/TelegramConfig.js.map +1 -0
- package/dist/cjs/services/TelegramConfigStore.js +81 -0
- package/dist/cjs/services/TelegramConfigStore.js.map +1 -0
- package/dist/cjs/services/TelegramNotifier.js +50 -0
- package/dist/cjs/services/TelegramNotifier.js.map +1 -0
- package/dist/cjs/services/TrackerLayerMap.js +27 -0
- package/dist/cjs/services/TrackerLayerMap.js.map +1 -0
- package/dist/cjs/services/TrackerResolver.js +45 -0
- package/dist/cjs/services/TrackerResolver.js.map +1 -0
- package/dist/cjs/services/messenger/MessengerAdapter.js +30 -0
- package/dist/cjs/services/messenger/MessengerAdapter.js.map +1 -0
- package/dist/cjs/services/messenger/TelegramAdapter.js +125 -0
- package/dist/cjs/services/messenger/TelegramAdapter.js.map +1 -0
- package/dist/cjs/services/task-tracker/GitHubIssueTracker.js +157 -0
- package/dist/cjs/services/task-tracker/GitHubIssueTracker.js.map +1 -0
- package/dist/cjs/services/task-tracker/LinearTracker.js +127 -0
- package/dist/cjs/services/task-tracker/LinearTracker.js.map +1 -0
- package/dist/cjs/services/task-tracker/TaskTracker.js +20 -0
- package/dist/cjs/services/task-tracker/TaskTracker.js.map +1 -0
- package/dist/cjs/services/task-tracker/TrackerLayerMap.js +27 -0
- package/dist/cjs/services/task-tracker/TrackerLayerMap.js.map +1 -0
- package/dist/cjs/shim/bin.js +31 -0
- package/dist/cjs/shim/bin.js.map +1 -0
- package/dist/cjs/shim/main.js +217 -0
- package/dist/cjs/shim/main.js.map +1 -0
- package/dist/cjs/shim/parseArgs.js +45 -0
- package/dist/cjs/shim/parseArgs.js.map +1 -0
- package/dist/cjs/shim/schemas.js +35 -0
- package/dist/cjs/shim/schemas.js.map +1 -0
- package/dist/dts/Events.d.ts +108 -0
- package/dist/dts/Events.d.ts.map +1 -0
- package/dist/dts/LalphMain.d.ts +2 -0
- package/dist/dts/LalphMain.d.ts.map +1 -0
- package/dist/dts/Main.d.ts +2 -0
- package/dist/dts/Main.d.ts.map +1 -0
- package/dist/dts/index.d.ts +101 -0
- package/dist/dts/index.d.ts.map +1 -0
- package/dist/dts/lib/AnalysisPrompts.d.ts +12 -0
- package/dist/dts/lib/AnalysisPrompts.d.ts.map +1 -0
- package/dist/dts/lib/BranchParser.d.ts +40 -0
- package/dist/dts/lib/BranchParser.d.ts.map +1 -0
- package/dist/dts/lib/MermaidToPlantUml.d.ts +19 -0
- package/dist/dts/lib/MermaidToPlantUml.d.ts.map +1 -0
- package/dist/dts/lib/SpecHtmlGenerator.d.ts +18 -0
- package/dist/dts/lib/SpecHtmlGenerator.d.ts.map +1 -0
- package/dist/dts/lib/StreamJsonParser.d.ts +147 -0
- package/dist/dts/lib/StreamJsonParser.d.ts.map +1 -0
- package/dist/dts/lib/TelegramFormatter.d.ts +35 -0
- package/dist/dts/lib/TelegramFormatter.d.ts.map +1 -0
- package/dist/dts/lib/TelegraphHtml.d.ts +11 -0
- package/dist/dts/lib/TelegraphHtml.d.ts.map +1 -0
- package/dist/dts/lib/TelegraphMarkdown.d.ts +21 -0
- package/dist/dts/lib/TelegraphMarkdown.d.ts.map +1 -0
- package/dist/dts/schemas/CredentialSchemas.d.ts +41 -0
- package/dist/dts/schemas/CredentialSchemas.d.ts.map +1 -0
- package/dist/dts/schemas/GitHubSchemas.d.ts +130 -0
- package/dist/dts/schemas/GitHubSchemas.d.ts.map +1 -0
- package/dist/dts/schemas/LinearSchemas.d.ts +121 -0
- package/dist/dts/schemas/LinearSchemas.d.ts.map +1 -0
- package/dist/dts/schemas/ProjectSchemas.d.ts +40 -0
- package/dist/dts/schemas/ProjectSchemas.d.ts.map +1 -0
- package/dist/dts/schemas/TrackerSchemas.d.ts +57 -0
- package/dist/dts/schemas/TrackerSchemas.d.ts.map +1 -0
- package/dist/dts/services/AppContext.d.ts +40 -0
- package/dist/dts/services/AppContext.d.ts.map +1 -0
- package/dist/dts/services/AppRuntimeConfig.d.ts +51 -0
- package/dist/dts/services/AppRuntimeConfig.d.ts.map +1 -0
- package/dist/dts/services/AutoMerge.d.ts +42 -0
- package/dist/dts/services/AutoMerge.d.ts.map +1 -0
- package/dist/dts/services/ChatMachine.d.ts +478 -0
- package/dist/dts/services/ChatMachine.d.ts.map +1 -0
- package/dist/dts/services/CommentTimer.d.ts +44 -0
- package/dist/dts/services/CommentTimer.d.ts.map +1 -0
- package/dist/dts/services/CredentialStore.d.ts +43 -0
- package/dist/dts/services/CredentialStore.d.ts.map +1 -0
- package/dist/dts/services/CredentialWatcher.d.ts +41 -0
- package/dist/dts/services/CredentialWatcher.d.ts.map +1 -0
- package/dist/dts/services/Credentials.d.ts +44 -0
- package/dist/dts/services/Credentials.d.ts.map +1 -0
- package/dist/dts/services/EventLoop.d.ts +26 -0
- package/dist/dts/services/EventLoop.d.ts.map +1 -0
- package/dist/dts/services/GitHubClient/GitHubClient.d.ts +69 -0
- package/dist/dts/services/GitHubClient/GitHubClient.d.ts.map +1 -0
- package/dist/dts/services/GitHubClient/OctokitClient.d.ts +214 -0
- package/dist/dts/services/GitHubClient/OctokitClient.d.ts.map +1 -0
- package/dist/dts/services/GitHubClient.d.ts +69 -0
- package/dist/dts/services/GitHubClient.d.ts.map +1 -0
- package/dist/dts/services/GitHubEventSource.d.ts +43 -0
- package/dist/dts/services/GitHubEventSource.d.ts.map +1 -0
- package/dist/dts/services/GitHubIssueTracker.d.ts +9 -0
- package/dist/dts/services/GitHubIssueTracker.d.ts.map +1 -0
- package/dist/dts/services/LalphConfig.d.ts +44 -0
- package/dist/dts/services/LalphConfig.d.ts.map +1 -0
- package/dist/dts/services/LalphConfigReader.d.ts +66 -0
- package/dist/dts/services/LalphConfigReader.d.ts.map +1 -0
- package/dist/dts/services/LalphDirectory.d.ts +39 -0
- package/dist/dts/services/LalphDirectory.d.ts.map +1 -0
- package/dist/dts/services/LinearSdkClient.d.ts +71 -0
- package/dist/dts/services/LinearSdkClient.d.ts.map +1 -0
- package/dist/dts/services/LinearTracker.d.ts +9 -0
- package/dist/dts/services/LinearTracker.d.ts.map +1 -0
- package/dist/dts/services/MessengerAdapter/MessengerAdapter.d.ts +69 -0
- package/dist/dts/services/MessengerAdapter/MessengerAdapter.d.ts.map +1 -0
- package/dist/dts/services/MessengerAdapter/TelegramAdapter.d.ts +13 -0
- package/dist/dts/services/MessengerAdapter/TelegramAdapter.d.ts.map +1 -0
- package/dist/dts/services/MessengerAdapter/TelegramConfig.d.ts +58 -0
- package/dist/dts/services/MessengerAdapter/TelegramConfig.d.ts.map +1 -0
- package/dist/dts/services/MessengerAdapter.d.ts +69 -0
- package/dist/dts/services/MessengerAdapter.d.ts.map +1 -0
- package/dist/dts/services/OctokitClient.d.ts +232 -0
- package/dist/dts/services/OctokitClient.d.ts.map +1 -0
- package/dist/dts/services/PlanOverviewUploader.d.ts +55 -0
- package/dist/dts/services/PlanOverviewUploader.d.ts.map +1 -0
- package/dist/dts/services/PlanOverviewUploaderMap.d.ts +14 -0
- package/dist/dts/services/PlanOverviewUploaderMap.d.ts.map +1 -0
- package/dist/dts/services/PlanSession.d.ts +169 -0
- package/dist/dts/services/PlanSession.d.ts.map +1 -0
- package/dist/dts/services/ProjectStore.d.ts +50 -0
- package/dist/dts/services/ProjectStore.d.ts.map +1 -0
- package/dist/dts/services/PullRequestTracker.d.ts +42 -0
- package/dist/dts/services/PullRequestTracker.d.ts.map +1 -0
- package/dist/dts/services/SpecUploader.d.ts +51 -0
- package/dist/dts/services/SpecUploader.d.ts.map +1 -0
- package/dist/dts/services/SpecUploaderMap.d.ts +14 -0
- package/dist/dts/services/SpecUploaderMap.d.ts.map +1 -0
- package/dist/dts/services/TaskEventSource.d.ts +21 -0
- package/dist/dts/services/TaskEventSource.d.ts.map +1 -0
- package/dist/dts/services/TaskTracker/GitHubIssueTracker.d.ts +10 -0
- package/dist/dts/services/TaskTracker/GitHubIssueTracker.d.ts.map +1 -0
- package/dist/dts/services/TaskTracker/LinearSdkClient.d.ts +71 -0
- package/dist/dts/services/TaskTracker/LinearSdkClient.d.ts.map +1 -0
- package/dist/dts/services/TaskTracker/LinearTracker.d.ts +10 -0
- package/dist/dts/services/TaskTracker/LinearTracker.d.ts.map +1 -0
- package/dist/dts/services/TaskTracker/TaskTracker.d.ts +39 -0
- package/dist/dts/services/TaskTracker/TaskTracker.d.ts.map +1 -0
- package/dist/dts/services/TaskTracker/TrackerLayerMap.d.ts +14 -0
- package/dist/dts/services/TaskTracker/TrackerLayerMap.d.ts.map +1 -0
- package/dist/dts/services/TaskTracker/buildEventStream.d.ts +16 -0
- package/dist/dts/services/TaskTracker/buildEventStream.d.ts.map +1 -0
- package/dist/dts/services/TaskTracker.d.ts +38 -0
- package/dist/dts/services/TaskTracker.d.ts.map +1 -0
- package/dist/dts/services/TelegramAdapter.d.ts +13 -0
- package/dist/dts/services/TelegramAdapter.d.ts.map +1 -0
- package/dist/dts/services/TelegramConfig.d.ts +58 -0
- package/dist/dts/services/TelegramConfig.d.ts.map +1 -0
- package/dist/dts/services/TelegramConfigStore.d.ts +57 -0
- package/dist/dts/services/TelegramConfigStore.d.ts.map +1 -0
- package/dist/dts/services/TelegramNotifier.d.ts +40 -0
- package/dist/dts/services/TelegramNotifier.d.ts.map +1 -0
- package/dist/dts/services/TrackerLayerMap.d.ts +14 -0
- package/dist/dts/services/TrackerLayerMap.d.ts.map +1 -0
- package/dist/dts/services/TrackerResolver.d.ts +43 -0
- package/dist/dts/services/TrackerResolver.d.ts.map +1 -0
- package/dist/dts/services/messenger/MessengerAdapter.d.ts +69 -0
- package/dist/dts/services/messenger/MessengerAdapter.d.ts.map +1 -0
- package/dist/dts/services/messenger/TelegramAdapter.d.ts +13 -0
- package/dist/dts/services/messenger/TelegramAdapter.d.ts.map +1 -0
- package/dist/dts/services/task-tracker/GitHubIssueTracker.d.ts +10 -0
- package/dist/dts/services/task-tracker/GitHubIssueTracker.d.ts.map +1 -0
- package/dist/dts/services/task-tracker/LinearTracker.d.ts +10 -0
- package/dist/dts/services/task-tracker/LinearTracker.d.ts.map +1 -0
- package/dist/dts/services/task-tracker/TaskTracker.d.ts +38 -0
- package/dist/dts/services/task-tracker/TaskTracker.d.ts.map +1 -0
- package/dist/dts/services/task-tracker/TrackerLayerMap.d.ts +14 -0
- package/dist/dts/services/task-tracker/TrackerLayerMap.d.ts.map +1 -0
- package/dist/dts/shim/bin.d.ts +3 -0
- package/dist/dts/shim/bin.d.ts.map +1 -0
- package/dist/dts/shim/main.d.ts +36 -0
- package/dist/dts/shim/main.d.ts.map +1 -0
- package/dist/dts/shim/parseArgs.d.ts +11 -0
- package/dist/dts/shim/parseArgs.d.ts.map +1 -0
- package/dist/dts/shim/schemas.d.ts +55 -0
- package/dist/dts/shim/schemas.d.ts.map +1 -0
- package/dist/esm/Events.js +41 -0
- package/dist/esm/Events.js.map +1 -0
- package/dist/esm/LalphMain.js +56 -0
- package/dist/esm/LalphMain.js.map +1 -0
- package/dist/esm/Main.js +112 -0
- package/dist/esm/Main.js.map +1 -0
- package/dist/esm/index.js +101 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/lib/AnalysisPrompts.js +54 -0
- package/dist/esm/lib/AnalysisPrompts.js.map +1 -0
- package/dist/esm/lib/BranchParser.js +36 -0
- package/dist/esm/lib/BranchParser.js.map +1 -0
- package/dist/esm/lib/MermaidToPlantUml.js +89 -0
- package/dist/esm/lib/MermaidToPlantUml.js.map +1 -0
- package/dist/esm/lib/SpecHtmlGenerator.js +153 -0
- package/dist/esm/lib/SpecHtmlGenerator.js.map +1 -0
- package/dist/esm/lib/StreamJsonParser.js +79 -0
- package/dist/esm/lib/StreamJsonParser.js.map +1 -0
- package/dist/esm/lib/TelegramFormatter.js +114 -0
- package/dist/esm/lib/TelegramFormatter.js.map +1 -0
- package/dist/esm/lib/TelegraphHtml.js +57 -0
- package/dist/esm/lib/TelegraphHtml.js.map +1 -0
- package/dist/esm/lib/TelegraphMarkdown.js +338 -0
- package/dist/esm/lib/TelegraphMarkdown.js.map +1 -0
- package/dist/esm/package.json +4 -0
- package/dist/esm/schemas/CredentialSchemas.js +22 -0
- package/dist/esm/schemas/CredentialSchemas.js.map +1 -0
- package/dist/esm/schemas/GitHubSchemas.js +50 -0
- package/dist/esm/schemas/GitHubSchemas.js.map +1 -0
- package/dist/esm/schemas/LinearSchemas.js +52 -0
- package/dist/esm/schemas/LinearSchemas.js.map +1 -0
- package/dist/esm/schemas/ProjectSchemas.js +18 -0
- package/dist/esm/schemas/ProjectSchemas.js.map +1 -0
- package/dist/esm/schemas/TrackerSchemas.js +26 -0
- package/dist/esm/schemas/TrackerSchemas.js.map +1 -0
- package/dist/esm/services/AppContext.js +48 -0
- package/dist/esm/services/AppContext.js.map +1 -0
- package/dist/esm/services/AppRuntimeConfig.js +26 -0
- package/dist/esm/services/AppRuntimeConfig.js.map +1 -0
- package/dist/esm/services/AutoMerge.js +131 -0
- package/dist/esm/services/AutoMerge.js.map +1 -0
- package/dist/esm/services/ChatMachine.js +855 -0
- package/dist/esm/services/ChatMachine.js.map +1 -0
- package/dist/esm/services/CommentTimer.js +72 -0
- package/dist/esm/services/CommentTimer.js.map +1 -0
- package/dist/esm/services/CredentialStore.js +59 -0
- package/dist/esm/services/CredentialStore.js.map +1 -0
- package/dist/esm/services/CredentialWatcher.js +67 -0
- package/dist/esm/services/CredentialWatcher.js.map +1 -0
- package/dist/esm/services/Credentials.js +121 -0
- package/dist/esm/services/Credentials.js.map +1 -0
- package/dist/esm/services/EventLoop.js +128 -0
- package/dist/esm/services/EventLoop.js.map +1 -0
- package/dist/esm/services/GitHubClient/GitHubClient.js +227 -0
- package/dist/esm/services/GitHubClient/GitHubClient.js.map +1 -0
- package/dist/esm/services/GitHubClient/OctokitClient.js +320 -0
- package/dist/esm/services/GitHubClient/OctokitClient.js.map +1 -0
- package/dist/esm/services/GitHubClient.js +227 -0
- package/dist/esm/services/GitHubClient.js.map +1 -0
- package/dist/esm/services/GitHubEventSource.js +136 -0
- package/dist/esm/services/GitHubEventSource.js.map +1 -0
- package/dist/esm/services/GitHubIssueTracker.js +111 -0
- package/dist/esm/services/GitHubIssueTracker.js.map +1 -0
- package/dist/esm/services/LalphConfig.js +130 -0
- package/dist/esm/services/LalphConfig.js.map +1 -0
- package/dist/esm/services/LalphConfigReader.js +71 -0
- package/dist/esm/services/LalphConfigReader.js.map +1 -0
- package/dist/esm/services/LalphDirectory.js +36 -0
- package/dist/esm/services/LalphDirectory.js.map +1 -0
- package/dist/esm/services/LinearSdkClient.js +140 -0
- package/dist/esm/services/LinearSdkClient.js.map +1 -0
- package/dist/esm/services/LinearTracker.js +82 -0
- package/dist/esm/services/LinearTracker.js.map +1 -0
- package/dist/esm/services/MessengerAdapter/MessengerAdapter.js +21 -0
- package/dist/esm/services/MessengerAdapter/MessengerAdapter.js.map +1 -0
- package/dist/esm/services/MessengerAdapter/TelegramAdapter.js +124 -0
- package/dist/esm/services/MessengerAdapter/TelegramAdapter.js.map +1 -0
- package/dist/esm/services/MessengerAdapter/TelegramConfig.js +71 -0
- package/dist/esm/services/MessengerAdapter/TelegramConfig.js.map +1 -0
- package/dist/esm/services/MessengerAdapter.js +21 -0
- package/dist/esm/services/MessengerAdapter.js.map +1 -0
- package/dist/esm/services/OctokitClient.js +341 -0
- package/dist/esm/services/OctokitClient.js.map +1 -0
- package/dist/esm/services/PlanOverviewUploader.js +109 -0
- package/dist/esm/services/PlanOverviewUploader.js.map +1 -0
- package/dist/esm/services/PlanOverviewUploaderMap.js +17 -0
- package/dist/esm/services/PlanOverviewUploaderMap.js.map +1 -0
- package/dist/esm/services/PlanSession.js +471 -0
- package/dist/esm/services/PlanSession.js.map +1 -0
- package/dist/esm/services/ProjectStore.js +98 -0
- package/dist/esm/services/ProjectStore.js.map +1 -0
- package/dist/esm/services/PullRequestTracker.js +177 -0
- package/dist/esm/services/PullRequestTracker.js.map +1 -0
- package/dist/esm/services/SpecUploader.js +101 -0
- package/dist/esm/services/SpecUploader.js.map +1 -0
- package/dist/esm/services/SpecUploaderMap.js +17 -0
- package/dist/esm/services/SpecUploaderMap.js.map +1 -0
- package/dist/esm/services/TaskEventSource.js +50 -0
- package/dist/esm/services/TaskEventSource.js.map +1 -0
- package/dist/esm/services/TaskTracker/GitHubIssueTracker.js +148 -0
- package/dist/esm/services/TaskTracker/GitHubIssueTracker.js.map +1 -0
- package/dist/esm/services/TaskTracker/LinearSdkClient.js +140 -0
- package/dist/esm/services/TaskTracker/LinearSdkClient.js.map +1 -0
- package/dist/esm/services/TaskTracker/LinearTracker.js +119 -0
- package/dist/esm/services/TaskTracker/LinearTracker.js.map +1 -0
- package/dist/esm/services/TaskTracker/TaskTracker.js +12 -0
- package/dist/esm/services/TaskTracker/TaskTracker.js.map +1 -0
- package/dist/esm/services/TaskTracker/TrackerLayerMap.js +19 -0
- package/dist/esm/services/TaskTracker/TrackerLayerMap.js.map +1 -0
- package/dist/esm/services/TaskTracker/buildEventStream.js +47 -0
- package/dist/esm/services/TaskTracker/buildEventStream.js.map +1 -0
- package/dist/esm/services/TaskTracker.js +12 -0
- package/dist/esm/services/TaskTracker.js.map +1 -0
- package/dist/esm/services/TelegramAdapter.js +118 -0
- package/dist/esm/services/TelegramAdapter.js.map +1 -0
- package/dist/esm/services/TelegramConfig.js +71 -0
- package/dist/esm/services/TelegramConfig.js.map +1 -0
- package/dist/esm/services/TelegramConfigStore.js +71 -0
- package/dist/esm/services/TelegramConfigStore.js.map +1 -0
- package/dist/esm/services/TelegramNotifier.js +41 -0
- package/dist/esm/services/TelegramNotifier.js.map +1 -0
- package/dist/esm/services/TrackerLayerMap.js +19 -0
- package/dist/esm/services/TrackerLayerMap.js.map +1 -0
- package/dist/esm/services/TrackerResolver.js +36 -0
- package/dist/esm/services/TrackerResolver.js.map +1 -0
- package/dist/esm/services/messenger/MessengerAdapter.js +21 -0
- package/dist/esm/services/messenger/MessengerAdapter.js.map +1 -0
- package/dist/esm/services/messenger/TelegramAdapter.js +118 -0
- package/dist/esm/services/messenger/TelegramAdapter.js.map +1 -0
- package/dist/esm/services/task-tracker/GitHubIssueTracker.js +150 -0
- package/dist/esm/services/task-tracker/GitHubIssueTracker.js.map +1 -0
- package/dist/esm/services/task-tracker/LinearTracker.js +120 -0
- package/dist/esm/services/task-tracker/LinearTracker.js.map +1 -0
- package/dist/esm/services/task-tracker/TaskTracker.js +12 -0
- package/dist/esm/services/task-tracker/TaskTracker.js.map +1 -0
- package/dist/esm/services/task-tracker/TrackerLayerMap.js +19 -0
- package/dist/esm/services/task-tracker/TrackerLayerMap.js.map +1 -0
- package/dist/esm/shim/bin.js +28 -0
- package/dist/esm/shim/bin.js.map +1 -0
- package/dist/esm/shim/main.js +196 -0
- package/dist/esm/shim/main.js.map +1 -0
- package/dist/esm/shim/parseArgs.js +39 -0
- package/dist/esm/shim/parseArgs.js.map +1 -0
- package/dist/esm/shim/schemas.js +28 -0
- package/dist/esm/shim/schemas.js.map +1 -0
- package/lib/AnalysisPrompts/package.json +6 -0
- package/lib/BranchParser/package.json +6 -0
- package/lib/MermaidToPlantUml/package.json +6 -0
- package/lib/SpecHtmlGenerator/package.json +6 -0
- package/lib/StreamJsonParser/package.json +6 -0
- package/lib/TelegramFormatter/package.json +6 -0
- package/lib/TelegraphMarkdown/package.json +6 -0
- package/package.json +360 -0
- package/schemas/CredentialSchemas/package.json +6 -0
- package/schemas/GitHubSchemas/package.json +6 -0
- package/schemas/LinearSchemas/package.json +6 -0
- package/schemas/ProjectSchemas/package.json +6 -0
- package/schemas/TrackerSchemas/package.json +6 -0
- package/services/AppContext/package.json +6 -0
- package/services/AppRuntimeConfig/package.json +6 -0
- package/services/AutoMerge/package.json +6 -0
- package/services/ChatMachine/package.json +6 -0
- package/services/CommentTimer/package.json +6 -0
- package/services/EventLoop/package.json +6 -0
- package/services/GitHubClient/package.json +6 -0
- package/services/LalphConfig/package.json +6 -0
- package/services/LinearSdkClient/package.json +6 -0
- package/services/MessengerAdapter/MessengerAdapter/package.json +6 -0
- package/services/MessengerAdapter/TelegramAdapter/package.json +6 -0
- package/services/OctokitClient/package.json +6 -0
- package/services/PlanOverviewUploader/package.json +6 -0
- package/services/PlanOverviewUploaderMap/package.json +6 -0
- package/services/PlanSession/package.json +6 -0
- package/services/ProjectStore/package.json +6 -0
- package/services/PullRequestTracker/package.json +6 -0
- package/services/TaskTracker/GitHubIssueTracker/package.json +6 -0
- package/services/TaskTracker/LinearTracker/package.json +6 -0
- package/services/TaskTracker/TaskTracker/package.json +6 -0
- package/services/TelegramConfig/package.json +6 -0
- package/services/TrackerLayerMap/package.json +6 -0
- package/shim/bin/package.json +6 -0
- package/shim/main/package.json +6 -0
- package/shim/parseArgs/package.json +6 -0
- package/shim/schemas/package.json +6 -0
- package/src/Events.ts +98 -0
- package/src/Main.ts +177 -0
- package/src/index.ts +124 -0
- package/src/lib/AnalysisPrompts.ts +54 -0
- package/src/lib/BranchParser.ts +58 -0
- package/src/lib/MermaidToPlantUml.ts +103 -0
- package/src/lib/SpecHtmlGenerator.ts +199 -0
- package/src/lib/StreamJsonParser.ts +99 -0
- package/src/lib/TelegramFormatter.ts +151 -0
- package/src/lib/TelegraphMarkdown.ts +305 -0
- package/src/schemas/CredentialSchemas.ts +23 -0
- package/src/schemas/GitHubSchemas.ts +50 -0
- package/src/schemas/LinearSchemas.ts +57 -0
- package/src/schemas/ProjectSchemas.ts +18 -0
- package/src/schemas/TrackerSchemas.ts +27 -0
- package/src/services/AppContext.ts +72 -0
- package/src/services/AppRuntimeConfig.ts +23 -0
- package/src/services/AutoMerge.ts +198 -0
- package/src/services/ChatMachine.ts +911 -0
- package/src/services/CommentTimer.ts +133 -0
- package/src/services/EventLoop.ts +321 -0
- package/src/services/GitHubClient.ts +282 -0
- package/src/services/LalphConfig.ts +218 -0
- package/src/services/LinearSdkClient.ts +181 -0
- package/src/services/MessengerAdapter/MessengerAdapter.ts +53 -0
- package/src/services/MessengerAdapter/TelegramAdapter.ts +145 -0
- package/src/services/OctokitClient.ts +628 -0
- package/src/services/PlanOverviewUploader.ts +160 -0
- package/src/services/PlanOverviewUploaderMap.ts +17 -0
- package/src/services/PlanSession.ts +589 -0
- package/src/services/ProjectStore.ts +140 -0
- package/src/services/PullRequestTracker.ts +253 -0
- package/src/services/TaskTracker/GitHubIssueTracker.ts +162 -0
- package/src/services/TaskTracker/LinearTracker.ts +141 -0
- package/src/services/TaskTracker/TaskTracker.ts +34 -0
- package/src/services/TelegramConfig.ts +120 -0
- package/src/services/TrackerLayerMap.ts +19 -0
- package/src/shim/bin.ts +36 -0
- package/src/shim/main.ts +255 -0
- package/src/shim/parseArgs.ts +43 -0
- package/src/shim/schemas.ts +38 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChatMachine.js","names":["Machine","Data","Effect","Option","Schema","getAnalysisPrompt","markdownToTelegramHtml","splitMessage","MessengerAdapter","PlanOverviewUploader","PlanSession","ProjectStore","PLAN_BUTTON_LABEL","DONE_BUTTON_LABEL","FEATURE_BUTTON_LABEL","BUG_BUTTON_LABEL","REFACTOR_BUTTON_LABEL","OTHER_BUTTON_LABEL","APPROVE_BUTTON_LABEL","BUFFER_BUTTON_LABEL","INTERRUPT_BUTTON_LABEL","DISCARD_BUTTON_LABEL","ABORT_BUTTON_LABEL","NEW_PROJECT_BUTTON_LABEL","MY_ANSWER_BUTTON_LABEL","BACK_BUTTON_LABEL","PLAN_TYPE_LABELS","IDLE_KEYBOARD","label","COLLECTING_KEYBOARD","SESSION_KEYBOARD","SPEC_READY_KEYBOARD","ReadyFlags","Class","ChatState","taggedEnum","initialSessionRunning","projectId","planType","SessionRunning","pendingAnswerCount","pendingOptionLabels","Set","answersBuffer","awaitingFreeTextAnswer","lastQuestionMessage","none","readyFlags","spec","analysis","idle","analysisFollowUpSent","UserMessage","TaggedRequest","failure","Never","success","Void","payload","text","String","PlanTextOutput","PlanQuestionReceived","questions","Array","Struct","question","header","optional","options","PlanSpecCreatedReq","PlanSpecUpdatedReq","PlanAnalysisReadyReq","PlanAwaitingInputReq","PlanCompletedReq","PlanFailedReq","message","reply","state","undefined","chatMachine","make","gen","notifier","planSession","projectStore","planOverviewUploader","readSpecFiles","readFeatureAnalysis","pipe","map","files","name","content","mermaid","services","test","readBugAnalysis","readRefactorAnalysis","readDefaultAnalysis","sendSpecFilesRaw","forEach","file","formatted","chunk","sendMessage","sendSpecFiles","upload","description","tap","result","url","catchTag","err","logError","rejectSession","reject","tapError","orElseSucceed","abortToIdle","hasSession","log","replyKeyboard","submitAnswers","answers","combined","join","answer","showFollowUpChoice","AwaitingFollowUpDecision","checkAllReady","flags","catchAll","SpecReady","maybeAnalysisFollowUp","alreadySent","succeed","sendFollowUp","as","extractActiveState","_tag","some","procedures","Idle","add","ctx","request","projects","listProjects","length","annotateLogs","id","SelectingPlanType","p","SelectingProject","CreatingProject","step","data","continueWithPlan","includes","CollectingPlan","buffer","joinedText","trim","totalProjects","ps","start","has","isSome","value","newBuffer","newPending","isIdle","newState","interrupt","approve","idleSpec","followUpState","n","Number","isNaN","concurrency","targetBranch","gitFlow","reviewAgent","createProject","labels","flatMap","q","o","newPendingLabels","lastQ","baseOptions","msg","active","isNone","sent","newFlags"],"sources":["../../../src/services/ChatMachine.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Comment timer debounce service for per-PR timer management
|
|
3
|
+
* @since 1.0.0
|
|
4
|
+
*/
|
|
5
|
+
import { Context, Data, Duration, Effect, Fiber, HashMap, Layer, Option, Ref } from "effect";
|
|
6
|
+
import { BranchParser } from "../lib/BranchParser.js";
|
|
7
|
+
import { AppRuntimeConfig } from "./AppRuntimeConfig.js";
|
|
8
|
+
import { MessengerAdapter } from "./MessengerAdapter/MessengerAdapter.js";
|
|
9
|
+
import { TaskTracker } from "./TaskTracker/TaskTracker.js";
|
|
10
|
+
/**
|
|
11
|
+
* @since 1.0.0
|
|
12
|
+
* @category errors
|
|
13
|
+
*/
|
|
14
|
+
export class CommentTimerError extends /*#__PURE__*/Data.TaggedError("CommentTimerError") {}
|
|
15
|
+
/**
|
|
16
|
+
* @since 1.0.0
|
|
17
|
+
* @category context
|
|
18
|
+
*/
|
|
19
|
+
export class CommentTimer extends /*#__PURE__*/Context.Tag("CommentTimer")() {}
|
|
20
|
+
/**
|
|
21
|
+
* @since 1.0.0
|
|
22
|
+
* @category layers
|
|
23
|
+
*/
|
|
24
|
+
export const CommentTimerLive = /*#__PURE__*/Layer.effect(CommentTimer, /*#__PURE__*/Effect.gen(function* () {
|
|
25
|
+
const config = yield* AppRuntimeConfig;
|
|
26
|
+
const tracker = yield* TaskTracker;
|
|
27
|
+
const notifier = yield* MessengerAdapter;
|
|
28
|
+
const branchParser = yield* BranchParser;
|
|
29
|
+
const timersRef = yield* Ref.make(HashMap.empty());
|
|
30
|
+
const prKey = pr => `${pr.repo}#${pr.number}`;
|
|
31
|
+
const handleComment = (pr, comment) => Effect.gen(function* () {
|
|
32
|
+
const issueIdOption = branchParser.resolveIssueId(pr);
|
|
33
|
+
if (Option.isNone(issueIdOption)) {
|
|
34
|
+
yield* Effect.logWarning("No issue ID found in branch name").pipe(Effect.annotateLogs("service", "CommentTimer"), Effect.annotateLogs("branch", pr.headRef));
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
const issueId = issueIdOption.value;
|
|
38
|
+
const key = prKey(pr);
|
|
39
|
+
const keyword = config.triggerKeyword;
|
|
40
|
+
if (comment.body.toLowerCase().includes(keyword.toLowerCase())) {
|
|
41
|
+
yield* tracker.moveToTodo(issueId).pipe(Effect.tapError(err => Effect.logError(`Failed to move issue to todo: ${err.message}`)), Effect.orElseSucceed(() => undefined));
|
|
42
|
+
yield* notifier.sendMessage(`🚨 <b>Keyword "${keyword}" detected</b>\nComment on <a href="${pr.html_url}">${pr.title}</a> — moved <code>${issueId}</code> to Todo`).pipe(Effect.tapError(err => Effect.logError(`Failed to send Telegram notification: ${err.message}`)), Effect.orElseSucceed(() => undefined));
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
const existingTimers = yield* Ref.get(timersRef);
|
|
46
|
+
const existingFiber = HashMap.get(existingTimers, key);
|
|
47
|
+
if (Option.isSome(existingFiber)) {
|
|
48
|
+
yield* Fiber.interrupt(existingFiber.value);
|
|
49
|
+
}
|
|
50
|
+
const timerFiber = yield* Effect.sleep(Duration.seconds(config.timerDelaySeconds)).pipe(Effect.flatMap(() => Effect.gen(function* () {
|
|
51
|
+
yield* tracker.moveToTodo(issueId);
|
|
52
|
+
yield* notifier.sendMessage(`⏰ <b>Timer expired</b>\n<a href="${pr.html_url}">${pr.title}</a> — moved <code>${issueId}</code> to Todo`);
|
|
53
|
+
})), Effect.tapError(err => Effect.logError(`Timer fiber error: ${String(err)}`)), Effect.orElseSucceed(() => undefined), Effect.ensuring(Ref.update(timersRef, m => HashMap.remove(m, key))), Effect.fork);
|
|
54
|
+
yield* Ref.update(timersRef, m => HashMap.set(m, key, timerFiber));
|
|
55
|
+
}).pipe(Effect.mapError(err => new CommentTimerError({
|
|
56
|
+
message: `Failed to handle comment: ${String(err)}`,
|
|
57
|
+
cause: err
|
|
58
|
+
})));
|
|
59
|
+
const shutdown = Effect.gen(function* () {
|
|
60
|
+
const timers = yield* Ref.get(timersRef);
|
|
61
|
+
yield* Fiber.interruptAll(HashMap.values(timers));
|
|
62
|
+
yield* Ref.set(timersRef, HashMap.empty());
|
|
63
|
+
}).pipe(Effect.mapError(err => new CommentTimerError({
|
|
64
|
+
message: `Failed to shutdown: ${String(err)}`,
|
|
65
|
+
cause: err
|
|
66
|
+
})));
|
|
67
|
+
return CommentTimer.of({
|
|
68
|
+
handleComment,
|
|
69
|
+
shutdown
|
|
70
|
+
});
|
|
71
|
+
}));
|
|
72
|
+
//# sourceMappingURL=CommentTimer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CommentTimer.js","names":["Context","Data","Duration","Effect","Fiber","HashMap","Layer","Option","Ref","BranchParser","AppRuntimeConfig","MessengerAdapter","TaskTracker","CommentTimerError","TaggedError","CommentTimer","Tag","CommentTimerLive","effect","gen","config","tracker","notifier","branchParser","timersRef","make","empty","prKey","pr","repo","number","handleComment","comment","issueIdOption","resolveIssueId","isNone","logWarning","pipe","annotateLogs","headRef","issueId","value","key","keyword","triggerKeyword","body","toLowerCase","includes","moveToTodo","tapError","err","logError","message","orElseSucceed","undefined","sendMessage","html_url","title","existingTimers","get","existingFiber","isSome","interrupt","timerFiber","sleep","seconds","timerDelaySeconds","flatMap","String","ensuring","update","m","remove","fork","set","mapError","cause","shutdown","timers","interruptAll","values","of"],"sources":["../../../src/services/CommentTimer.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CredentialStore service backed by KeyValueStore
|
|
3
|
+
* @since 1.0.0
|
|
4
|
+
*/
|
|
5
|
+
import { KeyValueStore } from "@effect/platform";
|
|
6
|
+
import { Context, Data, Effect, Layer, Option, Schema } from "effect";
|
|
7
|
+
import { Credentials } from "../schemas/CredentialSchemas.js";
|
|
8
|
+
const CREDENTIALS_KEY = "credentials";
|
|
9
|
+
/**
|
|
10
|
+
* @since 1.0.0
|
|
11
|
+
* @category errors
|
|
12
|
+
*/
|
|
13
|
+
export class CredentialStoreError extends /*#__PURE__*/Data.TaggedError("CredentialStoreError") {}
|
|
14
|
+
/**
|
|
15
|
+
* @since 1.0.0
|
|
16
|
+
* @category context
|
|
17
|
+
*/
|
|
18
|
+
export class CredentialStore extends /*#__PURE__*/Context.Tag("CredentialStore")() {}
|
|
19
|
+
/**
|
|
20
|
+
* @since 1.0.0
|
|
21
|
+
* @category layers
|
|
22
|
+
*/
|
|
23
|
+
export const CredentialStoreLive = /*#__PURE__*/Layer.effect(CredentialStore, /*#__PURE__*/Effect.gen(function* () {
|
|
24
|
+
const kv = yield* KeyValueStore.KeyValueStore;
|
|
25
|
+
const encode = Schema.encode(Schema.parseJson(Credentials));
|
|
26
|
+
const decode = Schema.decode(Schema.parseJson(Credentials));
|
|
27
|
+
const get = Effect.gen(function* () {
|
|
28
|
+
const raw = yield* kv.get(CREDENTIALS_KEY);
|
|
29
|
+
if (Option.isNone(raw)) {
|
|
30
|
+
return yield* new CredentialStoreError({
|
|
31
|
+
message: "No credentials stored",
|
|
32
|
+
cause: null
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
return yield* decode(raw.value);
|
|
36
|
+
}).pipe(Effect.mapError(err => err instanceof CredentialStoreError ? err : new CredentialStoreError({
|
|
37
|
+
message: `Failed to get credentials: ${String(err)}`,
|
|
38
|
+
cause: err
|
|
39
|
+
})));
|
|
40
|
+
const set = credentials => encode(credentials).pipe(Effect.flatMap(json => kv.set(CREDENTIALS_KEY, json)), Effect.mapError(err => new CredentialStoreError({
|
|
41
|
+
message: `Failed to set credentials: ${String(err)}`,
|
|
42
|
+
cause: err
|
|
43
|
+
})));
|
|
44
|
+
const has = kv.has(CREDENTIALS_KEY).pipe(Effect.mapError(err => new CredentialStoreError({
|
|
45
|
+
message: `Failed to check credentials: ${String(err)}`,
|
|
46
|
+
cause: err
|
|
47
|
+
})));
|
|
48
|
+
const clear = kv.remove(CREDENTIALS_KEY).pipe(Effect.mapError(err => new CredentialStoreError({
|
|
49
|
+
message: `Failed to clear credentials: ${String(err)}`,
|
|
50
|
+
cause: err
|
|
51
|
+
})));
|
|
52
|
+
return CredentialStore.of({
|
|
53
|
+
get,
|
|
54
|
+
set,
|
|
55
|
+
has,
|
|
56
|
+
clear
|
|
57
|
+
});
|
|
58
|
+
}));
|
|
59
|
+
//# sourceMappingURL=CredentialStore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CredentialStore.js","names":["KeyValueStore","Context","Data","Effect","Layer","Option","Schema","Credentials","CREDENTIALS_KEY","CredentialStoreError","TaggedError","CredentialStore","Tag","CredentialStoreLive","effect","gen","kv","encode","parseJson","decode","get","raw","isNone","message","cause","value","pipe","mapError","err","String","set","credentials","flatMap","json","has","clear","remove","of"],"sources":["../../../src/services/CredentialStore.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Watches .lalph/config/ files for token changes and maintains current tokens in Refs
|
|
3
|
+
* @since 1.0.0
|
|
4
|
+
*/
|
|
5
|
+
import { FileSystem, Path } from "@effect/platform";
|
|
6
|
+
import { Context, Data, Effect, Layer, Ref, Schema, Stream } from "effect";
|
|
7
|
+
import { AppCredentials } from "../schemas/CredentialSchemas.js";
|
|
8
|
+
import { findLalphDirectory, LalphGithubToken, LalphLinearToken } from "./LalphConfigReader.js";
|
|
9
|
+
/**
|
|
10
|
+
* @since 1.0.0
|
|
11
|
+
* @category errors
|
|
12
|
+
*/
|
|
13
|
+
export class CredentialWatcherError extends /*#__PURE__*/Data.TaggedError("CredentialWatcherError") {}
|
|
14
|
+
/**
|
|
15
|
+
* @since 1.0.0
|
|
16
|
+
* @category context
|
|
17
|
+
*/
|
|
18
|
+
export class CredentialWatcher extends /*#__PURE__*/Context.Tag("CredentialWatcher")() {}
|
|
19
|
+
const githubTokenFileName = /*#__PURE__*/encodeURIComponent("github.accessToken");
|
|
20
|
+
const linearTokenFileName = /*#__PURE__*/encodeURIComponent("linear.accessToken");
|
|
21
|
+
/**
|
|
22
|
+
* @since 1.0.0
|
|
23
|
+
* @category layers
|
|
24
|
+
*/
|
|
25
|
+
export const CredentialWatcherLive = /*#__PURE__*/Layer.scoped(CredentialWatcher, /*#__PURE__*/Effect.gen(function* () {
|
|
26
|
+
const fs = yield* FileSystem.FileSystem;
|
|
27
|
+
const pathService = yield* Path.Path;
|
|
28
|
+
const creds = yield* AppCredentials;
|
|
29
|
+
const githubTokenRef = yield* Ref.make(creds.githubToken);
|
|
30
|
+
const initialLinearToken = creds.monitors.length > 0 ? creds.monitors[0].linearAccessToken : "";
|
|
31
|
+
const linearTokenRef = yield* Ref.make(initialLinearToken);
|
|
32
|
+
const lalphDir = yield* findLalphDirectory.pipe(Effect.mapError(err => new CredentialWatcherError({
|
|
33
|
+
message: `Failed to find lalph directory: ${err.message}`,
|
|
34
|
+
cause: err
|
|
35
|
+
})));
|
|
36
|
+
const configDir = pathService.join(lalphDir, ".lalph", "config");
|
|
37
|
+
const readAndDecodeToken = (fileName, schema) => Effect.gen(function* () {
|
|
38
|
+
const filePath = pathService.join(configDir, fileName);
|
|
39
|
+
const content = yield* fs.readFileString(filePath);
|
|
40
|
+
const json = yield* Effect.try({
|
|
41
|
+
try: () => JSON.parse(content),
|
|
42
|
+
catch: err => err
|
|
43
|
+
});
|
|
44
|
+
return yield* Schema.decodeUnknown(schema)(json);
|
|
45
|
+
});
|
|
46
|
+
yield* fs.watch(configDir).pipe(Stream.filter(event => event._tag === "Update"), Stream.mapEffect(event => {
|
|
47
|
+
const fileName = pathService.basename(event.path);
|
|
48
|
+
if (fileName === githubTokenFileName) {
|
|
49
|
+
return readAndDecodeToken(githubTokenFileName, LalphGithubToken).pipe(Effect.flatMap(decoded => Ref.set(githubTokenRef, decoded.token)), Effect.tapError(err => Effect.logWarning(`Failed to refresh GitHub token from file: ${String(err)}`)), Effect.orElseSucceed(() => undefined));
|
|
50
|
+
}
|
|
51
|
+
if (fileName === linearTokenFileName) {
|
|
52
|
+
return readAndDecodeToken(linearTokenFileName, LalphLinearToken).pipe(Effect.flatMap(decoded => Ref.set(linearTokenRef, decoded.token)), Effect.tapError(err => Effect.logWarning(`Failed to refresh Linear token from file: ${String(err)}`)), Effect.orElseSucceed(() => undefined));
|
|
53
|
+
}
|
|
54
|
+
return Effect.void;
|
|
55
|
+
}), Stream.runDrain, Effect.annotateLogs("service", "CredentialWatcher"), Effect.catchAll(err => Effect.logError(`Credential watcher stream ended: ${String(err)}`)), Effect.forkScoped);
|
|
56
|
+
return CredentialWatcher.of({
|
|
57
|
+
currentGithubToken: Ref.get(githubTokenRef).pipe(Effect.mapError(cause => new CredentialWatcherError({
|
|
58
|
+
message: "Failed to get GitHub token",
|
|
59
|
+
cause
|
|
60
|
+
}))),
|
|
61
|
+
currentLinearToken: Ref.get(linearTokenRef).pipe(Effect.mapError(cause => new CredentialWatcherError({
|
|
62
|
+
message: "Failed to get Linear token",
|
|
63
|
+
cause
|
|
64
|
+
})))
|
|
65
|
+
});
|
|
66
|
+
}));
|
|
67
|
+
//# sourceMappingURL=CredentialWatcher.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CredentialWatcher.js","names":["FileSystem","Path","Context","Data","Effect","Layer","Ref","Schema","Stream","AppCredentials","findLalphDirectory","LalphGithubToken","LalphLinearToken","CredentialWatcherError","TaggedError","CredentialWatcher","Tag","githubTokenFileName","encodeURIComponent","linearTokenFileName","CredentialWatcherLive","scoped","gen","fs","pathService","creds","githubTokenRef","make","githubToken","initialLinearToken","monitors","length","linearAccessToken","linearTokenRef","lalphDir","pipe","mapError","err","message","cause","configDir","join","readAndDecodeToken","fileName","schema","filePath","content","readFileString","json","try","JSON","parse","catch","decodeUnknown","watch","filter","event","_tag","mapEffect","basename","path","flatMap","decoded","set","token","tapError","logWarning","String","orElseSucceed","undefined","void","runDrain","annotateLogs","catchAll","logError","forkScoped","of","currentGithubToken","get","currentLinearToken"],"sources":["../../../src/services/CredentialWatcher.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Provides current GitHub and Linear tokens, refreshing from .lalph/config/ file changes
|
|
3
|
+
* @since 1.0.0
|
|
4
|
+
*/
|
|
5
|
+
import { Command, FileSystem, Path } from "@effect/platform";
|
|
6
|
+
import { Context, Data, Effect, Layer, Ref, Schema, Stream } from "effect";
|
|
7
|
+
import { Monitor } from "../schemas/CredentialSchemas.js";
|
|
8
|
+
import { findLalphDirectory, LalphGithubToken, LalphLinearToken, parseRepoFullName } from "./LalphConfigReader.js";
|
|
9
|
+
/**
|
|
10
|
+
* @since 1.0.0
|
|
11
|
+
* @category errors
|
|
12
|
+
*/
|
|
13
|
+
export class CredentialsError extends /*#__PURE__*/Data.TaggedError("CredentialsError") {}
|
|
14
|
+
/**
|
|
15
|
+
* @since 1.0.0
|
|
16
|
+
* @category context
|
|
17
|
+
*/
|
|
18
|
+
export class Credentials extends /*#__PURE__*/Context.Tag("lalph-notifier/services/Credentials")() {}
|
|
19
|
+
const githubTokenFileName = /*#__PURE__*/encodeURIComponent("github.accessToken");
|
|
20
|
+
const linearTokenFileName = /*#__PURE__*/encodeURIComponent("linear.accessToken");
|
|
21
|
+
/**
|
|
22
|
+
* @since 1.0.0
|
|
23
|
+
* @category layers
|
|
24
|
+
*/
|
|
25
|
+
export const CredentialsLive = /*#__PURE__*/Layer.scoped(Credentials, /*#__PURE__*/Effect.gen(function* () {
|
|
26
|
+
const fs = yield* FileSystem.FileSystem;
|
|
27
|
+
const pathService = yield* Path.Path;
|
|
28
|
+
const lalphDir = yield* findLalphDirectory.pipe(Effect.mapError(err => new CredentialsError({
|
|
29
|
+
message: `Failed to find lalph directory: ${err.message}`,
|
|
30
|
+
cause: err
|
|
31
|
+
})));
|
|
32
|
+
const configDir = pathService.join(lalphDir, ".lalph", "config");
|
|
33
|
+
const readFile = (key, schema) => Effect.gen(function* () {
|
|
34
|
+
const filePath = pathService.join(configDir, encodeURIComponent(key));
|
|
35
|
+
const content = yield* fs.readFileString(filePath).pipe(Effect.mapError(err => new CredentialsError({
|
|
36
|
+
message: `Failed to read config file: ${key}`,
|
|
37
|
+
cause: err
|
|
38
|
+
})));
|
|
39
|
+
const json = yield* Effect.try({
|
|
40
|
+
try: () => JSON.parse(content),
|
|
41
|
+
catch: err => new CredentialsError({
|
|
42
|
+
message: `Failed to parse JSON in config file: ${key}`,
|
|
43
|
+
cause: err
|
|
44
|
+
})
|
|
45
|
+
});
|
|
46
|
+
return yield* Schema.decodeUnknown(schema)(json).pipe(Effect.mapError(err => new CredentialsError({
|
|
47
|
+
message: `Failed to decode config file: ${key}`,
|
|
48
|
+
cause: err
|
|
49
|
+
})));
|
|
50
|
+
});
|
|
51
|
+
const readStringFile = key => Effect.gen(function* () {
|
|
52
|
+
const filePath = pathService.join(configDir, encodeURIComponent(key));
|
|
53
|
+
const content = yield* fs.readFileString(filePath).pipe(Effect.mapError(err => new CredentialsError({
|
|
54
|
+
message: `Failed to read config file: ${key}`,
|
|
55
|
+
cause: err
|
|
56
|
+
})));
|
|
57
|
+
return yield* Effect.try({
|
|
58
|
+
try: () => JSON.parse(content),
|
|
59
|
+
catch: err => new CredentialsError({
|
|
60
|
+
message: `Failed to parse JSON in config file: ${key}`,
|
|
61
|
+
cause: err
|
|
62
|
+
})
|
|
63
|
+
});
|
|
64
|
+
}).pipe(Effect.flatMap(Schema.decodeUnknown(Schema.String)), Effect.mapError(err => new CredentialsError({
|
|
65
|
+
message: `Failed to decode config file: ${key}`,
|
|
66
|
+
cause: err
|
|
67
|
+
})));
|
|
68
|
+
const githubTokenData = yield* readFile("github.accessToken", LalphGithubToken);
|
|
69
|
+
const issueSourceRaw = yield* readStringFile("settings.issueSource");
|
|
70
|
+
const issueSource = issueSourceRaw === "linear" ? "linear" : "github";
|
|
71
|
+
const linearAccessToken = issueSource === "linear" ? yield* readFile("linear.accessToken", LalphLinearToken).pipe(Effect.map(t => t.token)) : "";
|
|
72
|
+
const repoFullName = yield* Effect.gen(function* () {
|
|
73
|
+
const cmd = Command.make("git", "remote", "get-url", "origin").pipe(Command.workingDirectory(lalphDir));
|
|
74
|
+
const output = yield* Command.string(cmd).pipe(Effect.mapError(err => new CredentialsError({
|
|
75
|
+
message: "Failed to detect git remote origin URL",
|
|
76
|
+
cause: err
|
|
77
|
+
})));
|
|
78
|
+
return parseRepoFullName(output.trim());
|
|
79
|
+
});
|
|
80
|
+
const githubTokenRef = yield* Ref.make(githubTokenData.token);
|
|
81
|
+
const linearTokenRef = yield* Ref.make(linearAccessToken);
|
|
82
|
+
const monitors = [new Monitor({
|
|
83
|
+
id: repoFullName,
|
|
84
|
+
backend: issueSource,
|
|
85
|
+
linearAccessToken,
|
|
86
|
+
repos: [repoFullName]
|
|
87
|
+
})];
|
|
88
|
+
const readAndDecodeToken = (fileName, schema) => Effect.gen(function* () {
|
|
89
|
+
const filePath = pathService.join(configDir, fileName);
|
|
90
|
+
const content = yield* fs.readFileString(filePath);
|
|
91
|
+
const json = yield* Effect.try({
|
|
92
|
+
try: () => JSON.parse(content),
|
|
93
|
+
catch: err => err
|
|
94
|
+
});
|
|
95
|
+
return yield* Schema.decodeUnknown(schema)(json);
|
|
96
|
+
});
|
|
97
|
+
yield* fs.watch(configDir).pipe(Stream.filter(event => event._tag === "Update"), Stream.mapEffect(event => {
|
|
98
|
+
const fileName = pathService.basename(event.path);
|
|
99
|
+
if (fileName === githubTokenFileName) {
|
|
100
|
+
return readAndDecodeToken(githubTokenFileName, LalphGithubToken).pipe(Effect.flatMap(decoded => Ref.set(githubTokenRef, decoded.token)), Effect.tapError(err => Effect.logWarning(`Failed to refresh GitHub token from file: ${String(err)}`)), Effect.orElseSucceed(() => undefined));
|
|
101
|
+
}
|
|
102
|
+
if (fileName === linearTokenFileName) {
|
|
103
|
+
return readAndDecodeToken(linearTokenFileName, LalphLinearToken).pipe(Effect.flatMap(decoded => Ref.set(linearTokenRef, decoded.token)), Effect.tapError(err => Effect.logWarning(`Failed to refresh Linear token from file: ${String(err)}`)), Effect.orElseSucceed(() => undefined));
|
|
104
|
+
}
|
|
105
|
+
return Effect.void;
|
|
106
|
+
}), Stream.runDrain, Effect.annotateLogs("service", "Credentials"), Effect.catchAll(err => Effect.logError(`Credential watcher stream ended: ${String(err)}`)), Effect.forkScoped);
|
|
107
|
+
return Credentials.of({
|
|
108
|
+
githubToken: Ref.get(githubTokenRef).pipe(Effect.mapError(cause => new CredentialsError({
|
|
109
|
+
message: "Failed to get GitHub token",
|
|
110
|
+
cause
|
|
111
|
+
}))),
|
|
112
|
+
linearToken: Ref.get(linearTokenRef).pipe(Effect.mapError(cause => new CredentialsError({
|
|
113
|
+
message: "Failed to get Linear token",
|
|
114
|
+
cause
|
|
115
|
+
}))),
|
|
116
|
+
monitors,
|
|
117
|
+
issueSource,
|
|
118
|
+
repoFullName
|
|
119
|
+
});
|
|
120
|
+
}));
|
|
121
|
+
//# sourceMappingURL=Credentials.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Credentials.js","names":["Command","FileSystem","Path","Context","Data","Effect","Layer","Ref","Schema","Stream","Monitor","findLalphDirectory","LalphGithubToken","LalphLinearToken","parseRepoFullName","CredentialsError","TaggedError","Credentials","Tag","githubTokenFileName","encodeURIComponent","linearTokenFileName","CredentialsLive","scoped","gen","fs","pathService","lalphDir","pipe","mapError","err","message","cause","configDir","join","readFile","key","schema","filePath","content","readFileString","json","try","JSON","parse","catch","decodeUnknown","readStringFile","flatMap","String","githubTokenData","issueSourceRaw","issueSource","linearAccessToken","map","t","token","repoFullName","cmd","make","workingDirectory","output","string","trim","githubTokenRef","linearTokenRef","monitors","id","backend","repos","readAndDecodeToken","fileName","watch","filter","event","_tag","mapEffect","basename","path","decoded","set","tapError","logWarning","orElseSucceed","undefined","void","runDrain","annotateLogs","catchAll","logError","forkScoped","of","githubToken","get","linearToken"],"sources":["../../../src/services/Credentials.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Event loop and layer construction for the notification service
|
|
3
|
+
* @since 1.0.0
|
|
4
|
+
*/
|
|
5
|
+
import * as Machine from "@effect/experimental/Machine";
|
|
6
|
+
import { Console, Effect, Layer, Match, Option, Stream } from "effect";
|
|
7
|
+
import { BranchParser, BranchParserLive } from "../lib/BranchParser.js";
|
|
8
|
+
import { GitHubRepo } from "../schemas/GitHubSchemas.js";
|
|
9
|
+
import { AutoMerge, AutoMergeLive } from "./AutoMerge.js";
|
|
10
|
+
import { chatMachine, IDLE_KEYBOARD, PlanAnalysisReadyReq, PlanAwaitingInputReq, PlanCompletedReq, PlanFailedReq, PlanQuestionReceived, PlanSpecCreatedReq, PlanSpecUpdatedReq, PlanTextOutput, UserMessage } from "./ChatMachine.js";
|
|
11
|
+
import { CommentTimer, CommentTimerLive } from "./CommentTimer.js";
|
|
12
|
+
import { GitHubClient, GitHubClientLive } from "./GitHubClient.js";
|
|
13
|
+
import { LalphConfig, LalphConfigLive } from "./LalphConfig.js";
|
|
14
|
+
import { MessengerAdapter } from "./MessengerAdapter/MessengerAdapter.js";
|
|
15
|
+
import { TelegramAdapterLive } from "./MessengerAdapter/TelegramAdapter.js";
|
|
16
|
+
import { OctokitClientLive } from "./OctokitClient.js";
|
|
17
|
+
import { PlanOverviewUploaderMap } from "./PlanOverviewUploaderMap.js";
|
|
18
|
+
import { PlanSession, PlanSessionLive } from "./PlanSession.js";
|
|
19
|
+
import { ProjectStoreLive } from "./ProjectStore.js";
|
|
20
|
+
import { PullRequestTracker, PullRequestTrackerLive } from "./PullRequestTracker.js";
|
|
21
|
+
import { TaskTracker } from "./TaskTracker/TaskTracker.js";
|
|
22
|
+
import { TrackerLayerMap } from "./TrackerLayerMap.js";
|
|
23
|
+
// Re-export button labels from ChatMachine for backwards compatibility
|
|
24
|
+
export { ABORT_BUTTON_LABEL, APPROVE_BUTTON_LABEL, BUFFER_BUTTON_LABEL, BUG_BUTTON_LABEL, DISCARD_BUTTON_LABEL, FEATURE_BUTTON_LABEL, INTERRUPT_BUTTON_LABEL, NEW_PROJECT_BUTTON_LABEL, OTHER_BUTTON_LABEL, PLAN_BUTTON_LABEL, REFACTOR_BUTTON_LABEL } from "./ChatMachine.js";
|
|
25
|
+
// ── Layer composition (unchanged) ────────────────────────────────
|
|
26
|
+
const lalphConfigLayer = LalphConfigLive;
|
|
27
|
+
const octokitLayer = /*#__PURE__*/OctokitClientLive.pipe(/*#__PURE__*/Layer.provide(lalphConfigLayer));
|
|
28
|
+
const telegramAdapterLayer = TelegramAdapterLive;
|
|
29
|
+
const trackerLayerMapLayer = /*#__PURE__*/TrackerLayerMap.Default.pipe(/*#__PURE__*/Layer.provide(octokitLayer), /*#__PURE__*/Layer.provide(lalphConfigLayer));
|
|
30
|
+
const taskTrackerLayer = /*#__PURE__*/Layer.unwrapEffect(Effect.gen(function* () {
|
|
31
|
+
const config = yield* LalphConfig;
|
|
32
|
+
return TrackerLayerMap.get(config.issueSource);
|
|
33
|
+
})).pipe(/*#__PURE__*/Layer.provide(trackerLayerMapLayer), /*#__PURE__*/Layer.provide(lalphConfigLayer));
|
|
34
|
+
const servicesLayer = /*#__PURE__*/Layer.mergeAll(GitHubClientLive, telegramAdapterLayer, taskTrackerLayer).pipe(/*#__PURE__*/Layer.provide(octokitLayer));
|
|
35
|
+
const autoMergeLayer = /*#__PURE__*/AutoMergeLive.pipe(/*#__PURE__*/Layer.provide(servicesLayer), /*#__PURE__*/Layer.provide(lalphConfigLayer));
|
|
36
|
+
const eventSourcesLayer = /*#__PURE__*/PullRequestTrackerLive.pipe(/*#__PURE__*/Layer.provide(servicesLayer), /*#__PURE__*/Layer.provide(lalphConfigLayer));
|
|
37
|
+
const branchParserLayer = BranchParserLive;
|
|
38
|
+
const commentTimerLayer = /*#__PURE__*/CommentTimerLive.pipe(/*#__PURE__*/Layer.provide(servicesLayer), /*#__PURE__*/Layer.provide(branchParserLayer));
|
|
39
|
+
const planSessionLayer = /*#__PURE__*/PlanSessionLive.pipe(/*#__PURE__*/Layer.provide(lalphConfigLayer));
|
|
40
|
+
const projectStoreLayer = ProjectStoreLive;
|
|
41
|
+
const planOverviewUploaderMapLayer = /*#__PURE__*/PlanOverviewUploaderMap.Default.pipe(/*#__PURE__*/Layer.provide(octokitLayer));
|
|
42
|
+
const planOverviewUploaderLayer = /*#__PURE__*/Layer.unwrapEffect(Effect.gen(function* () {
|
|
43
|
+
const config = yield* LalphConfig;
|
|
44
|
+
return PlanOverviewUploaderMap.get(config.specUploader);
|
|
45
|
+
})).pipe(/*#__PURE__*/Layer.provide(planOverviewUploaderMapLayer), /*#__PURE__*/Layer.provide(lalphConfigLayer));
|
|
46
|
+
/**
|
|
47
|
+
* The main layer providing all services for the event loop.
|
|
48
|
+
* Requires AppRuntimeConfig, TelegramConfigStore, and PlanCommandBuilder to be provided externally.
|
|
49
|
+
* @since 1.0.0
|
|
50
|
+
* @category layers
|
|
51
|
+
*/
|
|
52
|
+
export const MainLayer = /*#__PURE__*/Layer.mergeAll(lalphConfigLayer, servicesLayer, eventSourcesLayer, autoMergeLayer, commentTimerLayer, branchParserLayer, planSessionLayer, octokitLayer, projectStoreLayer, planOverviewUploaderLayer);
|
|
53
|
+
// ── Event loop ───────────────────────────────────────────────────
|
|
54
|
+
/**
|
|
55
|
+
* The main event loop that boots the chat state machine, bridges streams,
|
|
56
|
+
* and dispatches external events (PR/task notifications).
|
|
57
|
+
* @since 1.0.0
|
|
58
|
+
* @category event-loop
|
|
59
|
+
*/
|
|
60
|
+
export const runEventLoop = /*#__PURE__*/Effect.gen(function* () {
|
|
61
|
+
const pullRequestTracker = yield* PullRequestTracker;
|
|
62
|
+
const autoMerge = yield* AutoMerge;
|
|
63
|
+
const notifier = yield* MessengerAdapter;
|
|
64
|
+
const github = yield* GitHubClient;
|
|
65
|
+
const timer = yield* CommentTimer;
|
|
66
|
+
const taskTracker = yield* TaskTracker;
|
|
67
|
+
const branchParser = yield* BranchParser;
|
|
68
|
+
const planSession = yield* PlanSession;
|
|
69
|
+
// Boot the chat state machine
|
|
70
|
+
const actor = yield* Machine.boot(chatMachine);
|
|
71
|
+
// ── External event dispatch (unchanged) ──────────────────────
|
|
72
|
+
const dispatchEvent = event => Match.value(event).pipe(Match.tag("TaskCreated", e => notifier.sendMessage(`📋 <b>New task created</b>\n<a href="${e.issue.url}">${e.issue.title}</a>`)), Match.tag("TaskUpdated", e => notifier.sendMessage(`✏️ <b>Task moved to ${e.issue.state}</b>\n<a href="${e.issue.url}">${e.issue.title}</a>\n${e.previousState} → ${e.issue.state}`)), Match.tag("PROpened", e => notifier.sendMessage(`🔀 <b>New PR opened</b>\n<a href="${e.pr.html_url}">${e.pr.title}</a>`)), Match.tag("PRConflictDetected", e => Effect.gen(function* () {
|
|
73
|
+
yield* github.postComment(new GitHubRepo({
|
|
74
|
+
id: 0,
|
|
75
|
+
name: "",
|
|
76
|
+
full_name: e.pr.repo,
|
|
77
|
+
owner: {
|
|
78
|
+
login: ""
|
|
79
|
+
},
|
|
80
|
+
html_url: ""
|
|
81
|
+
}), e.pr.number, "This PR has merge conflicts that need to be resolved.");
|
|
82
|
+
const issueIdOption = branchParser.resolveIssueId(e.pr);
|
|
83
|
+
if (Option.isSome(issueIdOption)) {
|
|
84
|
+
const issueId = issueIdOption.value;
|
|
85
|
+
yield* taskTracker.moveToTodo(issueId).pipe(Effect.tapError(err => Effect.logError(`Failed to move to todo: ${err.message}`)), Effect.orElseSucceed(() => undefined));
|
|
86
|
+
yield* taskTracker.setPriorityUrgent(issueId).pipe(Effect.tapError(err => Effect.logError(`Failed to set priority: ${err.message}`)), Effect.orElseSucceed(() => undefined));
|
|
87
|
+
} else {
|
|
88
|
+
yield* Effect.logWarning("No issue ID found in branch name").pipe(Effect.annotateLogs("branch", e.pr.headRef));
|
|
89
|
+
}
|
|
90
|
+
yield* notifier.sendMessage(`⚠️ <b>Conflict detected</b>\n<a href="${e.pr.html_url}">${e.pr.title}</a>`);
|
|
91
|
+
})), Match.tag("PRCommentAdded", e => timer.handleComment(e.pr, e.comment).pipe(Effect.tapError(err => Effect.logError(`Comment timer error: ${err.message}`)), Effect.orElseSucceed(() => undefined))), Match.tag("PRAutoMerged", e => notifier.sendMessage(`✅ <b>PR auto-merged</b>\n<a href="${e.pr.html_url}">${e.pr.title}</a>`)), Match.tag("PRCIFailed", e => Effect.gen(function* () {
|
|
92
|
+
const issueIdOption = branchParser.resolveIssueId(e.pr);
|
|
93
|
+
if (Option.isSome(issueIdOption)) {
|
|
94
|
+
const issueId = issueIdOption.value;
|
|
95
|
+
yield* taskTracker.moveToTodo(issueId).pipe(Effect.tapError(err => Effect.logError(`Failed to move to todo: ${err.message}`)), Effect.orElseSucceed(() => undefined));
|
|
96
|
+
yield* taskTracker.setPriorityUrgent(issueId).pipe(Effect.tapError(err => Effect.logError(`Failed to set priority: ${err.message}`)), Effect.orElseSucceed(() => undefined));
|
|
97
|
+
} else {
|
|
98
|
+
yield* Effect.logWarning("No issue ID found in branch name").pipe(Effect.annotateLogs("branch", e.pr.headRef));
|
|
99
|
+
}
|
|
100
|
+
const failedCheckNames = e.failedChecks.map(c => c.name).join(", ");
|
|
101
|
+
yield* notifier.sendMessage(`❌ <b>CI failed</b>\n<a href="${e.pr.html_url}">${e.pr.title}</a>\nFailed checks: ${failedCheckNames}`);
|
|
102
|
+
})), Match.exhaustive);
|
|
103
|
+
// ── Stream bridges ───────────────────────────────────────────
|
|
104
|
+
// Telegram messages → UserMessage requests
|
|
105
|
+
const incomingMessageStream = notifier.incomingMessages.pipe(Stream.mapEffect(msg => actor.send(new UserMessage({
|
|
106
|
+
text: msg.text
|
|
107
|
+
})).pipe(Effect.catchAll(err => Effect.logError(`Incoming message error: ${String(err)}`)))));
|
|
108
|
+
// PlanSession events → Machine requests
|
|
109
|
+
const planEventStream = planSession.events.pipe(Stream.mapEffect(event => Match.value(event).pipe(Match.tag("PlanTextOutput", e => actor.send(new PlanTextOutput({
|
|
110
|
+
text: e.text
|
|
111
|
+
}))), Match.tag("PlanQuestion", e => actor.send(new PlanQuestionReceived({
|
|
112
|
+
questions: e.questions
|
|
113
|
+
}))), Match.tag("PlanSpecCreated", () => actor.send(new PlanSpecCreatedReq())), Match.tag("PlanSpecUpdated", () => actor.send(new PlanSpecUpdatedReq())), Match.tag("PlanAnalysisReady", () => actor.send(new PlanAnalysisReadyReq())), Match.tag("PlanAwaitingInput", () => actor.send(new PlanAwaitingInputReq())), Match.tag("PlanCompleted", () => actor.send(new PlanCompletedReq())), Match.tag("PlanFailed", e => actor.send(new PlanFailedReq({
|
|
114
|
+
message: e.message
|
|
115
|
+
}))), Match.exhaustive).pipe(Effect.catchAll(err => Effect.logError(`Plan event relay error: ${String(err)}`)))));
|
|
116
|
+
// ── External event streams ───────────────────────────────────
|
|
117
|
+
const mergedStream = Stream.merge(Stream.merge(pullRequestTracker.eventStream.pipe(Stream.map(e => e)), autoMerge.eventStream.pipe(Stream.map(e => e))), taskTracker.eventStream.pipe(Stream.map(e => e)));
|
|
118
|
+
yield* notifier.sendMessage({
|
|
119
|
+
text: "🚀 Notification service started.",
|
|
120
|
+
replyKeyboard: IDLE_KEYBOARD
|
|
121
|
+
});
|
|
122
|
+
yield* Console.log("🚀 Notification service started. Press Ctrl+C to stop.");
|
|
123
|
+
yield* Stream.merge(incomingMessageStream, planEventStream).pipe(Stream.runDrain, Effect.annotateLogs("service", "PlanSession"), Effect.catchAll(err => Effect.logError(`Plan stream error: ${String(err)}`)), Effect.forkDaemon);
|
|
124
|
+
yield* mergedStream.pipe(Stream.runForEach(event => dispatchEvent(event).pipe(Effect.catchAll(err => Effect.logError(`Event dispatch error: ${String(err)}`)))), Effect.ensuring(timer.shutdown.pipe(Effect.tapError(err => Effect.logError(`Shutdown error: ${err.message}`)), Effect.orElseSucceed(() => undefined))), Effect.annotateLogs("service", "EventLoop"), Effect.catchAll(err => Effect.logError(`Event loop error: ${String(err)}`)), Effect.forkDaemon);
|
|
125
|
+
// Block until interrupted — keeps the Machine scope alive for daemon fibers
|
|
126
|
+
yield* Effect.never;
|
|
127
|
+
}).pipe(Effect.scoped);
|
|
128
|
+
//# sourceMappingURL=EventLoop.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EventLoop.js","names":["Machine","Console","Effect","Layer","Match","Option","Stream","BranchParser","BranchParserLive","GitHubRepo","AutoMerge","AutoMergeLive","chatMachine","IDLE_KEYBOARD","PlanAnalysisReadyReq","PlanAwaitingInputReq","PlanCompletedReq","PlanFailedReq","PlanQuestionReceived","PlanSpecCreatedReq","PlanSpecUpdatedReq","PlanTextOutput","UserMessage","CommentTimer","CommentTimerLive","GitHubClient","GitHubClientLive","LalphConfig","LalphConfigLive","MessengerAdapter","TelegramAdapterLive","OctokitClientLive","PlanOverviewUploaderMap","PlanSession","PlanSessionLive","ProjectStoreLive","PullRequestTracker","PullRequestTrackerLive","TaskTracker","TrackerLayerMap","ABORT_BUTTON_LABEL","APPROVE_BUTTON_LABEL","BUFFER_BUTTON_LABEL","BUG_BUTTON_LABEL","DISCARD_BUTTON_LABEL","FEATURE_BUTTON_LABEL","INTERRUPT_BUTTON_LABEL","NEW_PROJECT_BUTTON_LABEL","OTHER_BUTTON_LABEL","PLAN_BUTTON_LABEL","REFACTOR_BUTTON_LABEL","lalphConfigLayer","octokitLayer","pipe","provide","telegramAdapterLayer","trackerLayerMapLayer","Default","taskTrackerLayer","unwrapEffect","gen","config","get","issueSource","servicesLayer","mergeAll","autoMergeLayer","eventSourcesLayer","branchParserLayer","commentTimerLayer","planSessionLayer","projectStoreLayer","planOverviewUploaderMapLayer","planOverviewUploaderLayer","specUploader","MainLayer","runEventLoop","pullRequestTracker","autoMerge","notifier","github","timer","taskTracker","branchParser","planSession","actor","boot","dispatchEvent","event","value","tag","e","sendMessage","issue","url","title","state","previousState","pr","html_url","postComment","id","name","full_name","repo","owner","login","number","issueIdOption","resolveIssueId","isSome","issueId","moveToTodo","tapError","err","logError","message","orElseSucceed","undefined","setPriorityUrgent","logWarning","annotateLogs","headRef","handleComment","comment","failedCheckNames","failedChecks","map","c","join","exhaustive","incomingMessageStream","incomingMessages","mapEffect","msg","send","text","catchAll","String","planEventStream","events","questions","mergedStream","merge","eventStream","replyKeyboard","log","runDrain","forkDaemon","runForEach","ensuring","shutdown","never","scoped"],"sources":["../../../src/services/EventLoop.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|