@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,628 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Octokit SDK client service
|
|
3
|
+
* @since 1.0.0
|
|
4
|
+
*/
|
|
5
|
+
import { Context, Data, Effect, Layer } from "effect"
|
|
6
|
+
import { Octokit } from "octokit"
|
|
7
|
+
import { LalphConfig } from "./LalphConfig.js"
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* @since 1.0.0
|
|
11
|
+
* @category errors
|
|
12
|
+
*/
|
|
13
|
+
export class OctokitClientError extends Data.TaggedError("OctokitClientError")<{
|
|
14
|
+
message: string
|
|
15
|
+
cause: unknown
|
|
16
|
+
}> {}
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* @since 1.0.0
|
|
20
|
+
* @category models
|
|
21
|
+
*/
|
|
22
|
+
export interface OctokitUser {
|
|
23
|
+
readonly login: string
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* @since 1.0.0
|
|
28
|
+
* @category models
|
|
29
|
+
*/
|
|
30
|
+
export interface OctokitRepo {
|
|
31
|
+
readonly id: number
|
|
32
|
+
readonly name: string
|
|
33
|
+
readonly fullName: string
|
|
34
|
+
readonly owner: { readonly login: string }
|
|
35
|
+
readonly htmlUrl: string
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* @since 1.0.0
|
|
40
|
+
* @category models
|
|
41
|
+
*/
|
|
42
|
+
export interface OctokitPullRequest {
|
|
43
|
+
readonly id: number
|
|
44
|
+
readonly number: number
|
|
45
|
+
readonly title: string
|
|
46
|
+
readonly state: string
|
|
47
|
+
readonly htmlUrl: string
|
|
48
|
+
readonly head: { readonly ref: string; readonly sha: string }
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* @since 1.0.0
|
|
53
|
+
* @category models
|
|
54
|
+
*/
|
|
55
|
+
export interface OctokitPullRequestDetail extends OctokitPullRequest {
|
|
56
|
+
readonly mergeable: boolean | null
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* @since 1.0.0
|
|
61
|
+
* @category models
|
|
62
|
+
*/
|
|
63
|
+
export interface OctokitComment {
|
|
64
|
+
readonly id: number
|
|
65
|
+
readonly body?: string | null
|
|
66
|
+
readonly user: { readonly login: string } | null
|
|
67
|
+
readonly createdAt: string
|
|
68
|
+
readonly htmlUrl: string
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* @since 1.0.0
|
|
73
|
+
* @category models
|
|
74
|
+
*/
|
|
75
|
+
export interface OctokitIssue {
|
|
76
|
+
readonly number: number
|
|
77
|
+
readonly title: string
|
|
78
|
+
readonly state: string
|
|
79
|
+
readonly htmlUrl: string
|
|
80
|
+
readonly createdAt: string
|
|
81
|
+
readonly updatedAt: string
|
|
82
|
+
readonly repositoryUrl: string
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* @since 1.0.0
|
|
87
|
+
* @category models
|
|
88
|
+
*/
|
|
89
|
+
export interface OctokitIssueDetail {
|
|
90
|
+
readonly number: number
|
|
91
|
+
readonly title: string
|
|
92
|
+
readonly state: string
|
|
93
|
+
readonly htmlUrl: string
|
|
94
|
+
readonly createdAt: string
|
|
95
|
+
readonly updatedAt: string
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* @since 1.0.0
|
|
100
|
+
* @category models
|
|
101
|
+
*/
|
|
102
|
+
export interface OctokitCheckRun {
|
|
103
|
+
readonly id: number
|
|
104
|
+
readonly name: string
|
|
105
|
+
readonly status: string
|
|
106
|
+
readonly conclusion: string | null
|
|
107
|
+
readonly htmlUrl: string
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
/**
|
|
111
|
+
* @since 1.0.0
|
|
112
|
+
* @category models
|
|
113
|
+
*/
|
|
114
|
+
export interface OctokitCombinedStatus {
|
|
115
|
+
readonly state: string
|
|
116
|
+
readonly statuses: ReadonlyArray<{
|
|
117
|
+
readonly state: string
|
|
118
|
+
readonly context: string
|
|
119
|
+
}>
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* @since 1.0.0
|
|
124
|
+
* @category models
|
|
125
|
+
*/
|
|
126
|
+
export interface OctokitMergeResult {
|
|
127
|
+
readonly sha: string
|
|
128
|
+
readonly merged: boolean
|
|
129
|
+
readonly message: string
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
/**
|
|
133
|
+
* @since 1.0.0
|
|
134
|
+
* @category models
|
|
135
|
+
*/
|
|
136
|
+
export interface OctokitGist {
|
|
137
|
+
readonly id: string
|
|
138
|
+
readonly htmlUrl: string
|
|
139
|
+
readonly files: Record<string, { readonly rawUrl: string }>
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
/**
|
|
143
|
+
* @since 1.0.0
|
|
144
|
+
* @category services
|
|
145
|
+
*/
|
|
146
|
+
export interface OctokitClientService {
|
|
147
|
+
readonly getAuthenticatedUser: () => Effect.Effect<OctokitUser, OctokitClientError>
|
|
148
|
+
readonly listUserRepos: (params: {
|
|
149
|
+
readonly perPage: number
|
|
150
|
+
readonly type: "all" | "owner" | "public" | "private" | "member"
|
|
151
|
+
}) => Effect.Effect<ReadonlyArray<OctokitRepo>, OctokitClientError>
|
|
152
|
+
readonly listPulls: (params: {
|
|
153
|
+
readonly owner: string
|
|
154
|
+
readonly repo: string
|
|
155
|
+
readonly state: "open" | "closed" | "all"
|
|
156
|
+
readonly perPage: number
|
|
157
|
+
}) => Effect.Effect<ReadonlyArray<OctokitPullRequest>, OctokitClientError>
|
|
158
|
+
readonly getPull: (params: {
|
|
159
|
+
readonly owner: string
|
|
160
|
+
readonly repo: string
|
|
161
|
+
readonly pullNumber: number
|
|
162
|
+
}) => Effect.Effect<OctokitPullRequestDetail, OctokitClientError>
|
|
163
|
+
readonly createIssueComment: (params: {
|
|
164
|
+
readonly owner: string
|
|
165
|
+
readonly repo: string
|
|
166
|
+
readonly issueNumber: number
|
|
167
|
+
readonly body: string
|
|
168
|
+
}) => Effect.Effect<void, OctokitClientError>
|
|
169
|
+
readonly listIssueComments: (params: {
|
|
170
|
+
readonly owner: string
|
|
171
|
+
readonly repo: string
|
|
172
|
+
readonly issueNumber: number
|
|
173
|
+
readonly perPage: number
|
|
174
|
+
}) => Effect.Effect<ReadonlyArray<OctokitComment>, OctokitClientError>
|
|
175
|
+
readonly listUserIssues: (params: {
|
|
176
|
+
readonly state: "open" | "closed" | "all"
|
|
177
|
+
readonly sort: "created" | "updated" | "comments"
|
|
178
|
+
readonly since?: string
|
|
179
|
+
}) => Effect.Effect<ReadonlyArray<OctokitIssue>, OctokitClientError>
|
|
180
|
+
readonly getIssue: (params: {
|
|
181
|
+
readonly owner: string
|
|
182
|
+
readonly repo: string
|
|
183
|
+
readonly issueNumber: number
|
|
184
|
+
}) => Effect.Effect<OctokitIssueDetail, OctokitClientError>
|
|
185
|
+
readonly addIssueLabels: (params: {
|
|
186
|
+
readonly owner: string
|
|
187
|
+
readonly repo: string
|
|
188
|
+
readonly issueNumber: number
|
|
189
|
+
readonly labels: ReadonlyArray<string>
|
|
190
|
+
}) => Effect.Effect<void, OctokitClientError>
|
|
191
|
+
readonly listPullReviewComments: (params: {
|
|
192
|
+
readonly owner: string
|
|
193
|
+
readonly repo: string
|
|
194
|
+
readonly pullNumber: number
|
|
195
|
+
readonly perPage: number
|
|
196
|
+
}) => Effect.Effect<ReadonlyArray<OctokitComment>, OctokitClientError>
|
|
197
|
+
readonly getCombinedStatusForRef: (params: {
|
|
198
|
+
readonly owner: string
|
|
199
|
+
readonly repo: string
|
|
200
|
+
readonly ref: string
|
|
201
|
+
}) => Effect.Effect<OctokitCombinedStatus, OctokitClientError>
|
|
202
|
+
readonly listCheckRunsForRef: (params: {
|
|
203
|
+
readonly owner: string
|
|
204
|
+
readonly repo: string
|
|
205
|
+
readonly ref: string
|
|
206
|
+
}) => Effect.Effect<ReadonlyArray<OctokitCheckRun>, OctokitClientError>
|
|
207
|
+
readonly mergePull: (params: {
|
|
208
|
+
readonly owner: string
|
|
209
|
+
readonly repo: string
|
|
210
|
+
readonly pullNumber: number
|
|
211
|
+
}) => Effect.Effect<OctokitMergeResult, OctokitClientError>
|
|
212
|
+
readonly createGist: (params: {
|
|
213
|
+
readonly description: string
|
|
214
|
+
readonly files: Record<string, { readonly content: string }>
|
|
215
|
+
readonly isPublic: boolean
|
|
216
|
+
}) => Effect.Effect<OctokitGist, OctokitClientError>
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
/**
|
|
220
|
+
* @since 1.0.0
|
|
221
|
+
* @category context
|
|
222
|
+
*/
|
|
223
|
+
export class OctokitClient extends Context.Tag("OctokitClient")<OctokitClient, OctokitClientService>() {}
|
|
224
|
+
|
|
225
|
+
/**
|
|
226
|
+
* @since 1.0.0
|
|
227
|
+
* @category layers
|
|
228
|
+
*/
|
|
229
|
+
export const OctokitClientLive = Layer.effect(
|
|
230
|
+
OctokitClient,
|
|
231
|
+
Effect.gen(function*() {
|
|
232
|
+
const watcher = yield* LalphConfig
|
|
233
|
+
const initialToken = yield* watcher.githubToken.pipe(
|
|
234
|
+
Effect.mapError((err) => new OctokitClientError({ message: err.message, cause: err }))
|
|
235
|
+
)
|
|
236
|
+
|
|
237
|
+
let currentToken = initialToken
|
|
238
|
+
let octokit = new Octokit({ auth: currentToken })
|
|
239
|
+
|
|
240
|
+
const getClient = Effect.gen(function*() {
|
|
241
|
+
const latestToken = yield* watcher.githubToken.pipe(
|
|
242
|
+
Effect.mapError((err) => new OctokitClientError({ message: err.message, cause: err }))
|
|
243
|
+
)
|
|
244
|
+
if (latestToken !== currentToken) {
|
|
245
|
+
currentToken = latestToken
|
|
246
|
+
octokit = new Octokit({ auth: latestToken })
|
|
247
|
+
}
|
|
248
|
+
return octokit
|
|
249
|
+
})
|
|
250
|
+
|
|
251
|
+
const getAuthenticatedUser = () =>
|
|
252
|
+
Effect.gen(function*() {
|
|
253
|
+
const client = yield* getClient
|
|
254
|
+
return yield* Effect.tryPromise({
|
|
255
|
+
try: () => client.rest.users.getAuthenticated(),
|
|
256
|
+
catch: (err) =>
|
|
257
|
+
new OctokitClientError({ message: `Failed to get authenticated user: ${String(err)}`, cause: err })
|
|
258
|
+
}).pipe(Effect.map((response) => response.data))
|
|
259
|
+
})
|
|
260
|
+
|
|
261
|
+
const listUserRepos = (params: {
|
|
262
|
+
readonly perPage: number
|
|
263
|
+
readonly type: "all" | "owner" | "public" | "private" | "member"
|
|
264
|
+
}) =>
|
|
265
|
+
Effect.gen(function*() {
|
|
266
|
+
const client = yield* getClient
|
|
267
|
+
return yield* Effect.tryPromise({
|
|
268
|
+
try: () => client.rest.repos.listForAuthenticatedUser({ per_page: params.perPage, type: params.type }),
|
|
269
|
+
catch: (err) => new OctokitClientError({ message: `Failed to list user repos: ${String(err)}`, cause: err })
|
|
270
|
+
}).pipe(
|
|
271
|
+
Effect.map((response) =>
|
|
272
|
+
response.data.map((r) => ({
|
|
273
|
+
id: r.id,
|
|
274
|
+
name: r.name,
|
|
275
|
+
fullName: r.full_name,
|
|
276
|
+
owner: { login: r.owner.login },
|
|
277
|
+
htmlUrl: r.html_url
|
|
278
|
+
}))
|
|
279
|
+
)
|
|
280
|
+
)
|
|
281
|
+
})
|
|
282
|
+
|
|
283
|
+
const listPulls = (params: {
|
|
284
|
+
readonly owner: string
|
|
285
|
+
readonly repo: string
|
|
286
|
+
readonly state: "open" | "closed" | "all"
|
|
287
|
+
readonly perPage: number
|
|
288
|
+
}) =>
|
|
289
|
+
Effect.gen(function*() {
|
|
290
|
+
const client = yield* getClient
|
|
291
|
+
return yield* Effect.tryPromise({
|
|
292
|
+
try: () =>
|
|
293
|
+
client.rest.pulls.list({
|
|
294
|
+
owner: params.owner,
|
|
295
|
+
repo: params.repo,
|
|
296
|
+
state: params.state,
|
|
297
|
+
per_page: params.perPage
|
|
298
|
+
}),
|
|
299
|
+
catch: (err) => new OctokitClientError({ message: `Failed to list pulls: ${String(err)}`, cause: err })
|
|
300
|
+
}).pipe(
|
|
301
|
+
Effect.map((response) =>
|
|
302
|
+
response.data.map((p) => ({
|
|
303
|
+
id: p.id,
|
|
304
|
+
number: p.number,
|
|
305
|
+
title: p.title,
|
|
306
|
+
state: p.state,
|
|
307
|
+
htmlUrl: p.html_url,
|
|
308
|
+
head: { ref: p.head.ref, sha: p.head.sha }
|
|
309
|
+
}))
|
|
310
|
+
)
|
|
311
|
+
)
|
|
312
|
+
})
|
|
313
|
+
|
|
314
|
+
const getPull = (params: {
|
|
315
|
+
readonly owner: string
|
|
316
|
+
readonly repo: string
|
|
317
|
+
readonly pullNumber: number
|
|
318
|
+
}) =>
|
|
319
|
+
Effect.gen(function*() {
|
|
320
|
+
const client = yield* getClient
|
|
321
|
+
return yield* Effect.tryPromise({
|
|
322
|
+
try: () =>
|
|
323
|
+
client.rest.pulls.get({
|
|
324
|
+
owner: params.owner,
|
|
325
|
+
repo: params.repo,
|
|
326
|
+
pull_number: params.pullNumber
|
|
327
|
+
}),
|
|
328
|
+
catch: (err) => new OctokitClientError({ message: `Failed to get pull: ${String(err)}`, cause: err })
|
|
329
|
+
}).pipe(
|
|
330
|
+
Effect.map((response) => ({
|
|
331
|
+
id: response.data.id,
|
|
332
|
+
number: response.data.number,
|
|
333
|
+
title: response.data.title,
|
|
334
|
+
state: response.data.state,
|
|
335
|
+
htmlUrl: response.data.html_url,
|
|
336
|
+
head: { ref: response.data.head.ref, sha: response.data.head.sha },
|
|
337
|
+
mergeable: response.data.mergeable
|
|
338
|
+
}))
|
|
339
|
+
)
|
|
340
|
+
})
|
|
341
|
+
|
|
342
|
+
const createIssueComment = (params: {
|
|
343
|
+
readonly owner: string
|
|
344
|
+
readonly repo: string
|
|
345
|
+
readonly issueNumber: number
|
|
346
|
+
readonly body: string
|
|
347
|
+
}) =>
|
|
348
|
+
Effect.gen(function*() {
|
|
349
|
+
const client = yield* getClient
|
|
350
|
+
return yield* Effect.tryPromise({
|
|
351
|
+
try: () =>
|
|
352
|
+
client.rest.issues.createComment({
|
|
353
|
+
owner: params.owner,
|
|
354
|
+
repo: params.repo,
|
|
355
|
+
issue_number: params.issueNumber,
|
|
356
|
+
body: params.body
|
|
357
|
+
}),
|
|
358
|
+
catch: (err) => new OctokitClientError({ message: `Failed to create comment: ${String(err)}`, cause: err })
|
|
359
|
+
}).pipe(Effect.asVoid)
|
|
360
|
+
})
|
|
361
|
+
|
|
362
|
+
const listIssueComments = (params: {
|
|
363
|
+
readonly owner: string
|
|
364
|
+
readonly repo: string
|
|
365
|
+
readonly issueNumber: number
|
|
366
|
+
readonly perPage: number
|
|
367
|
+
}) =>
|
|
368
|
+
Effect.gen(function*() {
|
|
369
|
+
const client = yield* getClient
|
|
370
|
+
return yield* Effect.tryPromise({
|
|
371
|
+
try: () =>
|
|
372
|
+
client.rest.issues.listComments({
|
|
373
|
+
owner: params.owner,
|
|
374
|
+
repo: params.repo,
|
|
375
|
+
issue_number: params.issueNumber,
|
|
376
|
+
per_page: params.perPage
|
|
377
|
+
}),
|
|
378
|
+
catch: (err) => new OctokitClientError({ message: `Failed to list comments: ${String(err)}`, cause: err })
|
|
379
|
+
}).pipe(
|
|
380
|
+
Effect.map((response) =>
|
|
381
|
+
response.data.map((c): OctokitComment => ({
|
|
382
|
+
id: c.id,
|
|
383
|
+
body: c.body ?? null,
|
|
384
|
+
user: c.user ? { login: c.user.login } : null,
|
|
385
|
+
createdAt: c.created_at,
|
|
386
|
+
htmlUrl: c.html_url
|
|
387
|
+
}))
|
|
388
|
+
)
|
|
389
|
+
)
|
|
390
|
+
})
|
|
391
|
+
|
|
392
|
+
const listUserIssues = (params: {
|
|
393
|
+
readonly state: "open" | "closed" | "all"
|
|
394
|
+
readonly sort: "created" | "updated" | "comments"
|
|
395
|
+
readonly since?: string
|
|
396
|
+
}) =>
|
|
397
|
+
Effect.gen(function*() {
|
|
398
|
+
const client = yield* getClient
|
|
399
|
+
return yield* Effect.tryPromise({
|
|
400
|
+
try: () =>
|
|
401
|
+
client.rest.issues.listForAuthenticatedUser({
|
|
402
|
+
filter: "all",
|
|
403
|
+
state: params.state,
|
|
404
|
+
sort: params.sort,
|
|
405
|
+
since: params.since
|
|
406
|
+
}),
|
|
407
|
+
catch: (err) => new OctokitClientError({ message: `Failed to list user issues: ${String(err)}`, cause: err })
|
|
408
|
+
}).pipe(
|
|
409
|
+
Effect.map((response) =>
|
|
410
|
+
response.data.filter((i) => !i.pull_request).map((i): OctokitIssue => ({
|
|
411
|
+
number: i.number,
|
|
412
|
+
title: i.title,
|
|
413
|
+
state: i.state,
|
|
414
|
+
htmlUrl: i.html_url,
|
|
415
|
+
createdAt: i.created_at,
|
|
416
|
+
updatedAt: i.updated_at,
|
|
417
|
+
repositoryUrl: i.repository_url
|
|
418
|
+
}))
|
|
419
|
+
)
|
|
420
|
+
)
|
|
421
|
+
})
|
|
422
|
+
|
|
423
|
+
const getIssue = (params: {
|
|
424
|
+
readonly owner: string
|
|
425
|
+
readonly repo: string
|
|
426
|
+
readonly issueNumber: number
|
|
427
|
+
}) =>
|
|
428
|
+
Effect.gen(function*() {
|
|
429
|
+
const client = yield* getClient
|
|
430
|
+
return yield* Effect.tryPromise({
|
|
431
|
+
try: () =>
|
|
432
|
+
client.rest.issues.get({
|
|
433
|
+
owner: params.owner,
|
|
434
|
+
repo: params.repo,
|
|
435
|
+
issue_number: params.issueNumber
|
|
436
|
+
}),
|
|
437
|
+
catch: (err) => new OctokitClientError({ message: `Failed to get issue: ${String(err)}`, cause: err })
|
|
438
|
+
}).pipe(
|
|
439
|
+
Effect.map((response): OctokitIssueDetail => ({
|
|
440
|
+
number: response.data.number,
|
|
441
|
+
title: response.data.title,
|
|
442
|
+
state: response.data.state,
|
|
443
|
+
htmlUrl: response.data.html_url,
|
|
444
|
+
createdAt: response.data.created_at,
|
|
445
|
+
updatedAt: response.data.updated_at
|
|
446
|
+
}))
|
|
447
|
+
)
|
|
448
|
+
})
|
|
449
|
+
|
|
450
|
+
const addIssueLabels = (params: {
|
|
451
|
+
readonly owner: string
|
|
452
|
+
readonly repo: string
|
|
453
|
+
readonly issueNumber: number
|
|
454
|
+
readonly labels: ReadonlyArray<string>
|
|
455
|
+
}) =>
|
|
456
|
+
Effect.gen(function*() {
|
|
457
|
+
const client = yield* getClient
|
|
458
|
+
return yield* Effect.tryPromise({
|
|
459
|
+
try: () =>
|
|
460
|
+
client.rest.issues.addLabels({
|
|
461
|
+
owner: params.owner,
|
|
462
|
+
repo: params.repo,
|
|
463
|
+
issue_number: params.issueNumber,
|
|
464
|
+
labels: [...params.labels]
|
|
465
|
+
}),
|
|
466
|
+
catch: (err) => new OctokitClientError({ message: `Failed to add issue labels: ${String(err)}`, cause: err })
|
|
467
|
+
}).pipe(Effect.asVoid)
|
|
468
|
+
})
|
|
469
|
+
|
|
470
|
+
const listPullReviewComments = (params: {
|
|
471
|
+
readonly owner: string
|
|
472
|
+
readonly repo: string
|
|
473
|
+
readonly pullNumber: number
|
|
474
|
+
readonly perPage: number
|
|
475
|
+
}) =>
|
|
476
|
+
Effect.gen(function*() {
|
|
477
|
+
const client = yield* getClient
|
|
478
|
+
return yield* Effect.tryPromise({
|
|
479
|
+
try: () =>
|
|
480
|
+
client.rest.pulls.listReviewComments({
|
|
481
|
+
owner: params.owner,
|
|
482
|
+
repo: params.repo,
|
|
483
|
+
pull_number: params.pullNumber,
|
|
484
|
+
per_page: params.perPage
|
|
485
|
+
}),
|
|
486
|
+
catch: (err) =>
|
|
487
|
+
new OctokitClientError({ message: `Failed to list pull review comments: ${String(err)}`, cause: err })
|
|
488
|
+
}).pipe(
|
|
489
|
+
Effect.map((response) =>
|
|
490
|
+
response.data.map((c): OctokitComment => ({
|
|
491
|
+
id: c.id,
|
|
492
|
+
body: c.body ?? null,
|
|
493
|
+
user: c.user ? { login: c.user.login } : null,
|
|
494
|
+
createdAt: c.created_at,
|
|
495
|
+
htmlUrl: c.html_url
|
|
496
|
+
}))
|
|
497
|
+
)
|
|
498
|
+
)
|
|
499
|
+
})
|
|
500
|
+
|
|
501
|
+
const getCombinedStatusForRef = (params: {
|
|
502
|
+
readonly owner: string
|
|
503
|
+
readonly repo: string
|
|
504
|
+
readonly ref: string
|
|
505
|
+
}) =>
|
|
506
|
+
Effect.gen(function*() {
|
|
507
|
+
const client = yield* getClient
|
|
508
|
+
return yield* Effect.tryPromise({
|
|
509
|
+
try: () =>
|
|
510
|
+
client.rest.repos.getCombinedStatusForRef({
|
|
511
|
+
owner: params.owner,
|
|
512
|
+
repo: params.repo,
|
|
513
|
+
ref: params.ref
|
|
514
|
+
}),
|
|
515
|
+
catch: (err) =>
|
|
516
|
+
new OctokitClientError({ message: `Failed to get combined status for ref: ${String(err)}`, cause: err })
|
|
517
|
+
}).pipe(
|
|
518
|
+
Effect.map((response): OctokitCombinedStatus => ({
|
|
519
|
+
state: response.data.state,
|
|
520
|
+
statuses: response.data.statuses.map((s) => ({
|
|
521
|
+
state: s.state,
|
|
522
|
+
context: s.context
|
|
523
|
+
}))
|
|
524
|
+
}))
|
|
525
|
+
)
|
|
526
|
+
})
|
|
527
|
+
|
|
528
|
+
const listCheckRunsForRef = (params: {
|
|
529
|
+
readonly owner: string
|
|
530
|
+
readonly repo: string
|
|
531
|
+
readonly ref: string
|
|
532
|
+
}) =>
|
|
533
|
+
Effect.gen(function*() {
|
|
534
|
+
const client = yield* getClient
|
|
535
|
+
return yield* Effect.tryPromise({
|
|
536
|
+
try: () =>
|
|
537
|
+
client.rest.checks.listForRef({
|
|
538
|
+
owner: params.owner,
|
|
539
|
+
repo: params.repo,
|
|
540
|
+
ref: params.ref
|
|
541
|
+
}),
|
|
542
|
+
catch: (err) =>
|
|
543
|
+
new OctokitClientError({ message: `Failed to list check runs for ref: ${String(err)}`, cause: err })
|
|
544
|
+
}).pipe(
|
|
545
|
+
Effect.map((response) =>
|
|
546
|
+
response.data.check_runs.map((cr): OctokitCheckRun => ({
|
|
547
|
+
id: cr.id,
|
|
548
|
+
name: cr.name,
|
|
549
|
+
status: cr.status,
|
|
550
|
+
conclusion: cr.conclusion ?? null,
|
|
551
|
+
htmlUrl: cr.html_url ?? ""
|
|
552
|
+
}))
|
|
553
|
+
)
|
|
554
|
+
)
|
|
555
|
+
})
|
|
556
|
+
|
|
557
|
+
const mergePull = (params: {
|
|
558
|
+
readonly owner: string
|
|
559
|
+
readonly repo: string
|
|
560
|
+
readonly pullNumber: number
|
|
561
|
+
}) =>
|
|
562
|
+
Effect.gen(function*() {
|
|
563
|
+
const client = yield* getClient
|
|
564
|
+
return yield* Effect.tryPromise({
|
|
565
|
+
try: () =>
|
|
566
|
+
client.rest.pulls.merge({
|
|
567
|
+
owner: params.owner,
|
|
568
|
+
repo: params.repo,
|
|
569
|
+
pull_number: params.pullNumber
|
|
570
|
+
}),
|
|
571
|
+
catch: (err) =>
|
|
572
|
+
new OctokitClientError({ message: `Failed to merge pull request: ${String(err)}`, cause: err })
|
|
573
|
+
}).pipe(
|
|
574
|
+
Effect.map((response): OctokitMergeResult => ({
|
|
575
|
+
sha: response.data.sha,
|
|
576
|
+
merged: response.data.merged,
|
|
577
|
+
message: response.data.message
|
|
578
|
+
}))
|
|
579
|
+
)
|
|
580
|
+
})
|
|
581
|
+
|
|
582
|
+
const createGist = (params: {
|
|
583
|
+
readonly description: string
|
|
584
|
+
readonly files: Record<string, { readonly content: string }>
|
|
585
|
+
readonly isPublic: boolean
|
|
586
|
+
}) =>
|
|
587
|
+
Effect.gen(function*() {
|
|
588
|
+
const client = yield* getClient
|
|
589
|
+
return yield* Effect.tryPromise({
|
|
590
|
+
try: () =>
|
|
591
|
+
client.rest.gists.create({
|
|
592
|
+
description: params.description,
|
|
593
|
+
public: params.isPublic,
|
|
594
|
+
files: params.files
|
|
595
|
+
}),
|
|
596
|
+
catch: (err) => new OctokitClientError({ message: `Failed to create gist: ${String(err)}`, cause: err })
|
|
597
|
+
}).pipe(
|
|
598
|
+
Effect.map((response): OctokitGist => ({
|
|
599
|
+
id: response.data.id ?? "",
|
|
600
|
+
htmlUrl: response.data.html_url ?? "",
|
|
601
|
+
files: Object.fromEntries(
|
|
602
|
+
Object.entries(response.data.files ?? {}).map(([name, file]) => [
|
|
603
|
+
name,
|
|
604
|
+
{ rawUrl: file?.raw_url ?? "" }
|
|
605
|
+
])
|
|
606
|
+
)
|
|
607
|
+
}))
|
|
608
|
+
)
|
|
609
|
+
})
|
|
610
|
+
|
|
611
|
+
return OctokitClient.of({
|
|
612
|
+
getAuthenticatedUser,
|
|
613
|
+
listUserRepos,
|
|
614
|
+
listPulls,
|
|
615
|
+
getPull,
|
|
616
|
+
createIssueComment,
|
|
617
|
+
listIssueComments,
|
|
618
|
+
listUserIssues,
|
|
619
|
+
getIssue,
|
|
620
|
+
addIssueLabels,
|
|
621
|
+
listPullReviewComments,
|
|
622
|
+
getCombinedStatusForRef,
|
|
623
|
+
listCheckRunsForRef,
|
|
624
|
+
mergePull,
|
|
625
|
+
createGist
|
|
626
|
+
})
|
|
627
|
+
})
|
|
628
|
+
)
|