@canhta/dsh-autopilot 0.1.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (448) hide show
  1. package/AGENTS.md +41 -0
  2. package/CONTEXT.md +39 -0
  3. package/LICENSE +21 -0
  4. package/README.md +95 -0
  5. package/cordis.patch.yml +13 -0
  6. package/deploy/dsh-autopilot.service +26 -0
  7. package/docs/CONTRIBUTING.md +60 -0
  8. package/docs/README.md +34 -0
  9. package/docs/agents/domain.md +7 -0
  10. package/docs/agents/issue-tracker.md +21 -0
  11. package/docs/agents/triage-labels.md +13 -0
  12. package/docs/assets/banner.png +0 -0
  13. package/docs/deployment.md +138 -0
  14. package/docs/engineering.md +43 -0
  15. package/docs/specs/execution.md +65 -0
  16. package/docs/specs/integrations.md +89 -0
  17. package/docs/specs/lifecycle.md +81 -0
  18. package/docs/specs/operations.md +89 -0
  19. package/docs/specs/plugin.md +49 -0
  20. package/docs/specs/providers.md +62 -0
  21. package/docs/specs/scope.md +35 -0
  22. package/docs/specs/ui-components.md +96 -0
  23. package/docs/specs/web-ui.md +64 -0
  24. package/lib/admission/cancellation-control.d.ts +11 -0
  25. package/lib/admission/cancellation-control.js +72 -0
  26. package/lib/admission/cancellation-control.js.map +1 -0
  27. package/lib/admission/candidates.d.ts +2 -0
  28. package/lib/admission/candidates.js +23 -0
  29. package/lib/admission/candidates.js.map +1 -0
  30. package/lib/admission/composition-claim.d.ts +10 -0
  31. package/lib/admission/composition-claim.js +13 -0
  32. package/lib/admission/composition-claim.js.map +1 -0
  33. package/lib/admission/constants.d.ts +12 -0
  34. package/lib/admission/constants.js +13 -0
  35. package/lib/admission/constants.js.map +1 -0
  36. package/lib/admission/deliveries.d.ts +6 -0
  37. package/lib/admission/deliveries.js +175 -0
  38. package/lib/admission/deliveries.js.map +1 -0
  39. package/lib/admission/delivery-control.d.ts +28 -0
  40. package/lib/admission/delivery-control.js +294 -0
  41. package/lib/admission/delivery-control.js.map +1 -0
  42. package/lib/admission/execution-control.d.ts +29 -0
  43. package/lib/admission/execution-control.js +177 -0
  44. package/lib/admission/execution-control.js.map +1 -0
  45. package/lib/admission/index.d.ts +4 -0
  46. package/lib/admission/index.js +4 -0
  47. package/lib/admission/index.js.map +1 -0
  48. package/lib/admission/model.d.ts +296 -0
  49. package/lib/admission/model.js +13 -0
  50. package/lib/admission/model.js.map +1 -0
  51. package/lib/admission/pause-control.d.ts +44 -0
  52. package/lib/admission/pause-control.js +220 -0
  53. package/lib/admission/pause-control.js.map +1 -0
  54. package/lib/admission/policy.d.ts +39 -0
  55. package/lib/admission/policy.js +238 -0
  56. package/lib/admission/policy.js.map +1 -0
  57. package/lib/admission/ports.d.ts +13 -0
  58. package/lib/admission/ports.js +2 -0
  59. package/lib/admission/ports.js.map +1 -0
  60. package/lib/admission/publication-control.d.ts +16 -0
  61. package/lib/admission/publication-control.js +153 -0
  62. package/lib/admission/publication-control.js.map +1 -0
  63. package/lib/admission/reconciler.d.ts +7 -0
  64. package/lib/admission/reconciler.js +121 -0
  65. package/lib/admission/reconciler.js.map +1 -0
  66. package/lib/admission/resume-control.d.ts +27 -0
  67. package/lib/admission/resume-control.js +213 -0
  68. package/lib/admission/resume-control.js.map +1 -0
  69. package/lib/admission/run-fence.d.ts +11 -0
  70. package/lib/admission/run-fence.js +49 -0
  71. package/lib/admission/run-fence.js.map +1 -0
  72. package/lib/admission/service.d.ts +130 -0
  73. package/lib/admission/service.js +415 -0
  74. package/lib/admission/service.js.map +1 -0
  75. package/lib/admission/state-domain.d.ts +11 -0
  76. package/lib/admission/state-domain.js +33 -0
  77. package/lib/admission/state-domain.js.map +1 -0
  78. package/lib/admission/state-integrity.d.ts +19 -0
  79. package/lib/admission/state-integrity.js +102 -0
  80. package/lib/admission/state-integrity.js.map +1 -0
  81. package/lib/admission/state-migration.d.ts +4 -0
  82. package/lib/admission/state-migration.js +46 -0
  83. package/lib/admission/state-migration.js.map +1 -0
  84. package/lib/admission/state.d.ts +4524 -0
  85. package/lib/admission/state.js +394 -0
  86. package/lib/admission/state.js.map +1 -0
  87. package/lib/admission.d.ts +1 -0
  88. package/lib/admission.js +2 -0
  89. package/lib/admission.js.map +1 -0
  90. package/lib/client-types/client/OperationsAtoms.d.ts +30 -0
  91. package/lib/client-types/client/OperationsPanel.d.ts +34 -0
  92. package/lib/client-types/client/RunsView.d.ts +14 -0
  93. package/lib/client-types/client/SettingsCapabilitySections.d.ts +16 -0
  94. package/lib/client-types/client/SettingsPanel.d.ts +40 -0
  95. package/lib/client-types/client/SettingsPolicySections.d.ts +13 -0
  96. package/lib/client-types/client/SettingsProviderSection.d.ts +21 -0
  97. package/lib/client-types/client/SummaryView.d.ts +10 -0
  98. package/lib/client-types/client/WorktreesView.d.ts +9 -0
  99. package/lib/client-types/client/index.d.ts +9 -0
  100. package/lib/client-types/client/locales/en.d.ts +154 -0
  101. package/lib/client-types/client/locales/index.d.ts +9 -0
  102. package/lib/client-types/client/locales/zh.d.ts +155 -0
  103. package/lib/client-types/client/settings-draft.d.ts +29 -0
  104. package/lib/client-types/client/state.d.ts +63 -0
  105. package/lib/client-types/code-host/index.d.ts +2 -0
  106. package/lib/client-types/code-host/model.d.ts +118 -0
  107. package/lib/client-types/code-host/registry.d.ts +23 -0
  108. package/lib/client-types/code-host/validation.d.ts +51 -0
  109. package/lib/client-types/code-host.d.ts +2 -0
  110. package/lib/client-types/config/index.d.ts +2 -0
  111. package/lib/client-types/config/settings.d.ts +51 -0
  112. package/lib/client-types/config.d.ts +2 -0
  113. package/lib/client-types/notification/index.d.ts +2 -0
  114. package/lib/client-types/notification/model.d.ts +57 -0
  115. package/lib/client-types/notification/registry.d.ts +16 -0
  116. package/lib/client-types/notification.d.ts +2 -0
  117. package/lib/client-types/providers/generation-registry.d.ts +20 -0
  118. package/lib/client-types/remote.d.ts +65 -0
  119. package/lib/client-types/tracker/index.d.ts +2 -0
  120. package/lib/client-types/tracker/model.d.ts +222 -0
  121. package/lib/client-types/tracker/registry.d.ts +49 -0
  122. package/lib/client-types/tracker/validation.d.ts +60 -0
  123. package/lib/client-types/tracker.d.ts +2 -0
  124. package/lib/client-types/web/contract.d.ts +958 -0
  125. package/lib/client.js +7961 -0
  126. package/lib/client.js.map +1 -0
  127. package/lib/code-host/index.d.ts +2 -0
  128. package/lib/code-host/index.js +3 -0
  129. package/lib/code-host/index.js.map +1 -0
  130. package/lib/code-host/model.d.ts +118 -0
  131. package/lib/code-host/model.js +23 -0
  132. package/lib/code-host/model.js.map +1 -0
  133. package/lib/code-host/registry.d.ts +23 -0
  134. package/lib/code-host/registry.js +90 -0
  135. package/lib/code-host/registry.js.map +1 -0
  136. package/lib/code-host/validation.d.ts +51 -0
  137. package/lib/code-host/validation.js +30 -0
  138. package/lib/code-host/validation.js.map +1 -0
  139. package/lib/code-host.d.ts +2 -0
  140. package/lib/code-host.js +3 -0
  141. package/lib/code-host.js.map +1 -0
  142. package/lib/config/index.d.ts +2 -0
  143. package/lib/config/index.js +3 -0
  144. package/lib/config/index.js.map +1 -0
  145. package/lib/config/settings.d.ts +51 -0
  146. package/lib/config/settings.js +195 -0
  147. package/lib/config/settings.js.map +1 -0
  148. package/lib/config.d.ts +2 -0
  149. package/lib/config.js +3 -0
  150. package/lib/config.js.map +1 -0
  151. package/lib/delivery/index.d.ts +1 -0
  152. package/lib/delivery/index.js +2 -0
  153. package/lib/delivery/index.js.map +1 -0
  154. package/lib/delivery/service.d.ts +29 -0
  155. package/lib/delivery/service.js +140 -0
  156. package/lib/delivery/service.js.map +1 -0
  157. package/lib/delivery.d.ts +2 -0
  158. package/lib/delivery.js +3 -0
  159. package/lib/delivery.js.map +1 -0
  160. package/lib/dispatch/composition.d.ts +18 -0
  161. package/lib/dispatch/composition.js +109 -0
  162. package/lib/dispatch/composition.js.map +1 -0
  163. package/lib/dispatch/contract.d.ts +2 -0
  164. package/lib/dispatch/contract.js +2 -0
  165. package/lib/dispatch/contract.js.map +1 -0
  166. package/lib/dispatch/execute.d.ts +10 -0
  167. package/lib/dispatch/execute.js +138 -0
  168. package/lib/dispatch/execute.js.map +1 -0
  169. package/lib/dispatch/execution-state.d.ts +12 -0
  170. package/lib/dispatch/execution-state.js +24 -0
  171. package/lib/dispatch/execution-state.js.map +1 -0
  172. package/lib/dispatch/git.d.ts +5 -0
  173. package/lib/dispatch/git.js +95 -0
  174. package/lib/dispatch/git.js.map +1 -0
  175. package/lib/dispatch/index.d.ts +2 -0
  176. package/lib/dispatch/index.js +2 -0
  177. package/lib/dispatch/index.js.map +1 -0
  178. package/lib/dispatch/report.d.ts +11 -0
  179. package/lib/dispatch/report.js +141 -0
  180. package/lib/dispatch/report.js.map +1 -0
  181. package/lib/dispatch/resume.d.ts +17 -0
  182. package/lib/dispatch/resume.js +89 -0
  183. package/lib/dispatch/resume.js.map +1 -0
  184. package/lib/dispatch/service.d.ts +56 -0
  185. package/lib/dispatch/service.js +231 -0
  186. package/lib/dispatch/service.js.map +1 -0
  187. package/lib/dispatch/usage.d.ts +10 -0
  188. package/lib/dispatch/usage.js +47 -0
  189. package/lib/dispatch/usage.js.map +1 -0
  190. package/lib/dispatch.d.ts +2 -0
  191. package/lib/dispatch.js +3 -0
  192. package/lib/dispatch.js.map +1 -0
  193. package/lib/github-code-host.d.ts +1 -0
  194. package/lib/github-code-host.js +2 -0
  195. package/lib/github-code-host.js.map +1 -0
  196. package/lib/github-issues.d.ts +1 -0
  197. package/lib/github-issues.js +2 -0
  198. package/lib/github-issues.js.map +1 -0
  199. package/lib/index.d.ts +21 -0
  200. package/lib/index.js +48 -0
  201. package/lib/index.js.map +1 -0
  202. package/lib/ingress.d.ts +2 -0
  203. package/lib/ingress.js +3 -0
  204. package/lib/ingress.js.map +1 -0
  205. package/lib/jira.d.ts +1 -0
  206. package/lib/jira.js +2 -0
  207. package/lib/jira.js.map +1 -0
  208. package/lib/mcp/contracts.d.ts +21 -0
  209. package/lib/mcp/contracts.js +33 -0
  210. package/lib/mcp/contracts.js.map +1 -0
  211. package/lib/mcp/cursor.d.ts +10 -0
  212. package/lib/mcp/cursor.js +68 -0
  213. package/lib/mcp/cursor.js.map +1 -0
  214. package/lib/mcp/definition.d.ts +8 -0
  215. package/lib/mcp/definition.js +43 -0
  216. package/lib/mcp/definition.js.map +1 -0
  217. package/lib/mcp/index.d.ts +6 -0
  218. package/lib/mcp/index.js +7 -0
  219. package/lib/mcp/index.js.map +1 -0
  220. package/lib/mcp/json.d.ts +4 -0
  221. package/lib/mcp/json.js +20 -0
  222. package/lib/mcp/json.js.map +1 -0
  223. package/lib/mcp/mount.d.ts +17 -0
  224. package/lib/mcp/mount.js +79 -0
  225. package/lib/mcp/mount.js.map +1 -0
  226. package/lib/mcp/read-tools.d.ts +27 -0
  227. package/lib/mcp/read-tools.js +149 -0
  228. package/lib/mcp/read-tools.js.map +1 -0
  229. package/lib/notification/index.d.ts +2 -0
  230. package/lib/notification/index.js +3 -0
  231. package/lib/notification/index.js.map +1 -0
  232. package/lib/notification/model.d.ts +57 -0
  233. package/lib/notification/model.js +20 -0
  234. package/lib/notification/model.js.map +1 -0
  235. package/lib/notification/registry.d.ts +16 -0
  236. package/lib/notification/registry.js +67 -0
  237. package/lib/notification/registry.js.map +1 -0
  238. package/lib/notification.d.ts +2 -0
  239. package/lib/notification.js +3 -0
  240. package/lib/notification.js.map +1 -0
  241. package/lib/ntfy-notification.d.ts +1 -0
  242. package/lib/ntfy-notification.js +2 -0
  243. package/lib/ntfy-notification.js.map +1 -0
  244. package/lib/operations/cleanup-inspector.d.ts +16 -0
  245. package/lib/operations/cleanup-inspector.js +132 -0
  246. package/lib/operations/cleanup-inspector.js.map +1 -0
  247. package/lib/operations/cleanup.d.ts +25 -0
  248. package/lib/operations/cleanup.js +151 -0
  249. package/lib/operations/cleanup.js.map +1 -0
  250. package/lib/operations/disposition.d.ts +46 -0
  251. package/lib/operations/disposition.js +89 -0
  252. package/lib/operations/disposition.js.map +1 -0
  253. package/lib/operations/health.d.ts +6 -0
  254. package/lib/operations/health.js +41 -0
  255. package/lib/operations/health.js.map +1 -0
  256. package/lib/operations/index.d.ts +6 -0
  257. package/lib/operations/index.js +7 -0
  258. package/lib/operations/index.js.map +1 -0
  259. package/lib/operations/inspection.d.ts +35 -0
  260. package/lib/operations/inspection.js +183 -0
  261. package/lib/operations/inspection.js.map +1 -0
  262. package/lib/operations/model.d.ts +77 -0
  263. package/lib/operations/model.js +2 -0
  264. package/lib/operations/model.js.map +1 -0
  265. package/lib/operations/recovery.d.ts +11 -0
  266. package/lib/operations/recovery.js +101 -0
  267. package/lib/operations/recovery.js.map +1 -0
  268. package/lib/operations/retention.d.ts +28 -0
  269. package/lib/operations/retention.js +105 -0
  270. package/lib/operations/retention.js.map +1 -0
  271. package/lib/operations/runtime-owner.d.ts +54 -0
  272. package/lib/operations/runtime-owner.js +281 -0
  273. package/lib/operations/runtime-owner.js.map +1 -0
  274. package/lib/operations/service.d.ts +55 -0
  275. package/lib/operations/service.js +154 -0
  276. package/lib/operations/service.js.map +1 -0
  277. package/lib/operations/state.d.ts +79 -0
  278. package/lib/operations/state.js +51 -0
  279. package/lib/operations/state.js.map +1 -0
  280. package/lib/operations/storage-composition.d.ts +16 -0
  281. package/lib/operations/storage-composition.js +61 -0
  282. package/lib/operations/storage-composition.js.map +1 -0
  283. package/lib/operations/store.d.ts +16 -0
  284. package/lib/operations/store.js +84 -0
  285. package/lib/operations/store.js.map +1 -0
  286. package/lib/operations.d.ts +2 -0
  287. package/lib/operations.js +3 -0
  288. package/lib/operations.js.map +1 -0
  289. package/lib/providers/generation-registry.d.ts +20 -0
  290. package/lib/providers/generation-registry.js +72 -0
  291. package/lib/providers/generation-registry.js.map +1 -0
  292. package/lib/providers/github-code-host/contracts.d.ts +224 -0
  293. package/lib/providers/github-code-host/contracts.js +144 -0
  294. package/lib/providers/github-code-host/contracts.js.map +1 -0
  295. package/lib/providers/github-code-host/index.d.ts +2 -0
  296. package/lib/providers/github-code-host/index.js +2 -0
  297. package/lib/providers/github-code-host/index.js.map +1 -0
  298. package/lib/providers/github-code-host/provider.d.ts +5 -0
  299. package/lib/providers/github-code-host/provider.js +289 -0
  300. package/lib/providers/github-code-host/provider.js.map +1 -0
  301. package/lib/providers/github-code-host/schemas.d.ts +81 -0
  302. package/lib/providers/github-code-host/schemas.js +39 -0
  303. package/lib/providers/github-code-host/schemas.js.map +1 -0
  304. package/lib/providers/github-code-host/settings.d.ts +16 -0
  305. package/lib/providers/github-code-host/settings.js +65 -0
  306. package/lib/providers/github-code-host/settings.js.map +1 -0
  307. package/lib/providers/github-issues/contracts.d.ts +151 -0
  308. package/lib/providers/github-issues/contracts.js +141 -0
  309. package/lib/providers/github-issues/contracts.js.map +1 -0
  310. package/lib/providers/github-issues/index.d.ts +1 -0
  311. package/lib/providers/github-issues/index.js +2 -0
  312. package/lib/providers/github-issues/index.js.map +1 -0
  313. package/lib/providers/github-issues/ingress.d.ts +8 -0
  314. package/lib/providers/github-issues/ingress.js +80 -0
  315. package/lib/providers/github-issues/ingress.js.map +1 -0
  316. package/lib/providers/github-issues/normalization.d.ts +11 -0
  317. package/lib/providers/github-issues/normalization.js +115 -0
  318. package/lib/providers/github-issues/normalization.js.map +1 -0
  319. package/lib/providers/github-issues/provider.d.ts +6 -0
  320. package/lib/providers/github-issues/provider.js +235 -0
  321. package/lib/providers/github-issues/provider.js.map +1 -0
  322. package/lib/providers/github-issues/schemas.d.ts +123 -0
  323. package/lib/providers/github-issues/schemas.js +58 -0
  324. package/lib/providers/github-issues/schemas.js.map +1 -0
  325. package/lib/providers/github-issues/settings.d.ts +27 -0
  326. package/lib/providers/github-issues/settings.js +154 -0
  327. package/lib/providers/github-issues/settings.js.map +1 -0
  328. package/lib/providers/jira/contracts.d.ts +193 -0
  329. package/lib/providers/jira/contracts.js +133 -0
  330. package/lib/providers/jira/contracts.js.map +1 -0
  331. package/lib/providers/jira/index.d.ts +1 -0
  332. package/lib/providers/jira/index.js +2 -0
  333. package/lib/providers/jira/index.js.map +1 -0
  334. package/lib/providers/jira/ingress.d.ts +4 -0
  335. package/lib/providers/jira/ingress.js +60 -0
  336. package/lib/providers/jira/ingress.js.map +1 -0
  337. package/lib/providers/jira/normalization.d.ts +8 -0
  338. package/lib/providers/jira/normalization.js +121 -0
  339. package/lib/providers/jira/normalization.js.map +1 -0
  340. package/lib/providers/jira/provider.d.ts +6 -0
  341. package/lib/providers/jira/provider.js +317 -0
  342. package/lib/providers/jira/provider.js.map +1 -0
  343. package/lib/providers/jira/schemas.d.ts +134 -0
  344. package/lib/providers/jira/schemas.js +76 -0
  345. package/lib/providers/jira/schemas.js.map +1 -0
  346. package/lib/providers/jira/settings.d.ts +32 -0
  347. package/lib/providers/jira/settings.js +163 -0
  348. package/lib/providers/jira/settings.js.map +1 -0
  349. package/lib/providers/notification-http.d.ts +13 -0
  350. package/lib/providers/notification-http.js +136 -0
  351. package/lib/providers/notification-http.js.map +1 -0
  352. package/lib/providers/ntfy-notification/index.d.ts +2 -0
  353. package/lib/providers/ntfy-notification/index.js +2 -0
  354. package/lib/providers/ntfy-notification/index.js.map +1 -0
  355. package/lib/providers/ntfy-notification/provider.d.ts +4 -0
  356. package/lib/providers/ntfy-notification/provider.js +89 -0
  357. package/lib/providers/ntfy-notification/provider.js.map +1 -0
  358. package/lib/providers/ntfy-notification/settings.d.ts +12 -0
  359. package/lib/providers/ntfy-notification/settings.js +34 -0
  360. package/lib/providers/ntfy-notification/settings.js.map +1 -0
  361. package/lib/providers/webhook-notification/index.d.ts +2 -0
  362. package/lib/providers/webhook-notification/index.js +2 -0
  363. package/lib/providers/webhook-notification/index.js.map +1 -0
  364. package/lib/providers/webhook-notification/provider.d.ts +4 -0
  365. package/lib/providers/webhook-notification/provider.js +57 -0
  366. package/lib/providers/webhook-notification/provider.js.map +1 -0
  367. package/lib/providers/webhook-notification/settings.d.ts +11 -0
  368. package/lib/providers/webhook-notification/settings.js +31 -0
  369. package/lib/providers/webhook-notification/settings.js.map +1 -0
  370. package/lib/publication/git.d.ts +7 -0
  371. package/lib/publication/git.js +154 -0
  372. package/lib/publication/git.js.map +1 -0
  373. package/lib/publication/index.d.ts +1 -0
  374. package/lib/publication/index.js +2 -0
  375. package/lib/publication/index.js.map +1 -0
  376. package/lib/publication/service.d.ts +27 -0
  377. package/lib/publication/service.js +166 -0
  378. package/lib/publication/service.js.map +1 -0
  379. package/lib/publication.d.ts +2 -0
  380. package/lib/publication.js +3 -0
  381. package/lib/publication.js.map +1 -0
  382. package/lib/reconciliation/index.d.ts +3 -0
  383. package/lib/reconciliation/index.js +4 -0
  384. package/lib/reconciliation/index.js.map +1 -0
  385. package/lib/reconciliation/ingress.d.ts +21 -0
  386. package/lib/reconciliation/ingress.js +168 -0
  387. package/lib/reconciliation/ingress.js.map +1 -0
  388. package/lib/reconciliation/service.d.ts +75 -0
  389. package/lib/reconciliation/service.js +228 -0
  390. package/lib/reconciliation/service.js.map +1 -0
  391. package/lib/reconciliation.d.ts +2 -0
  392. package/lib/reconciliation.js +3 -0
  393. package/lib/reconciliation.js.map +1 -0
  394. package/lib/remote.d.ts +65 -0
  395. package/lib/remote.js +135 -0
  396. package/lib/remote.js.map +1 -0
  397. package/lib/tracker/index.d.ts +2 -0
  398. package/lib/tracker/index.js +3 -0
  399. package/lib/tracker/index.js.map +1 -0
  400. package/lib/tracker/model.d.ts +222 -0
  401. package/lib/tracker/model.js +66 -0
  402. package/lib/tracker/model.js.map +1 -0
  403. package/lib/tracker/registry.d.ts +49 -0
  404. package/lib/tracker/registry.js +213 -0
  405. package/lib/tracker/registry.js.map +1 -0
  406. package/lib/tracker/validation.d.ts +60 -0
  407. package/lib/tracker/validation.js +52 -0
  408. package/lib/tracker/validation.js.map +1 -0
  409. package/lib/tracker.d.ts +2 -0
  410. package/lib/tracker.js +3 -0
  411. package/lib/tracker.js.map +1 -0
  412. package/lib/typert.d.ts +1 -0
  413. package/lib/typert.js +2 -0
  414. package/lib/typert.js.map +1 -0
  415. package/lib/web/commands.d.ts +18 -0
  416. package/lib/web/commands.js +231 -0
  417. package/lib/web/commands.js.map +1 -0
  418. package/lib/web/contract.d.ts +958 -0
  419. package/lib/web/contract.js +230 -0
  420. package/lib/web/contract.js.map +1 -0
  421. package/lib/web/contributions.d.ts +41 -0
  422. package/lib/web/contributions.js +61 -0
  423. package/lib/web/contributions.js.map +1 -0
  424. package/lib/web/integrations.d.ts +13 -0
  425. package/lib/web/integrations.js +95 -0
  426. package/lib/web/integrations.js.map +1 -0
  427. package/lib/web/projection.d.ts +10 -0
  428. package/lib/web/projection.js +192 -0
  429. package/lib/web/projection.js.map +1 -0
  430. package/lib/web/service.d.ts +31 -0
  431. package/lib/web/service.js +141 -0
  432. package/lib/web/service.js.map +1 -0
  433. package/lib/web.d.ts +5 -0
  434. package/lib/web.js +6 -0
  435. package/lib/web.js.map +1 -0
  436. package/lib/webhook-notification.d.ts +1 -0
  437. package/lib/webhook-notification.js +2 -0
  438. package/lib/webhook-notification.js.map +1 -0
  439. package/lib/workflow/index.d.ts +1 -0
  440. package/lib/workflow/index.js +2 -0
  441. package/lib/workflow/index.js.map +1 -0
  442. package/lib/workflow/service.d.ts +31 -0
  443. package/lib/workflow/service.js +220 -0
  444. package/lib/workflow/service.js.map +1 -0
  445. package/lib/workflow.d.ts +2 -0
  446. package/lib/workflow.js +3 -0
  447. package/lib/workflow.js.map +1 -0
  448. package/package.json +276 -0
@@ -0,0 +1,235 @@
1
+ import { createMcpTraversalCursorCodec, mountMcpTracker } from '../../mcp/index.js';
2
+ import { TRACKER_INTERFACE_VERSION, TrackerProviderError, trackerProviderId, } from '../../tracker.js';
3
+ import { githubMcpContracts } from './contracts.js';
4
+ import { verifyGitHubIssuesIngress } from './ingress.js';
5
+ import { normalizeIssue } from './normalization.js';
6
+ import { changesGitHubIssuesBinding, githubIssuesSettingsSchema, requireConfiguredSettings, validateStoredSettings, } from './settings.js';
7
+ const githubIssuesProviderId = trackerProviderId('github-issues');
8
+ export const name = 'dsh-autopilot-github-issues';
9
+ export const inject = ['tracker', 'settings', 'credentials', 'tools'];
10
+ /** Register GitHub Settings and mount a provider only while its exact MCP capabilities are available. */
11
+ export async function registerGitHubIssuesProvider(ctx) {
12
+ let settings;
13
+ settings = ctx.settings.register('dsh-autopilot-github-issues', githubIssuesSettingsSchema, {
14
+ validate: (value) => {
15
+ validateStoredSettings(value);
16
+ const current = settings?.get();
17
+ if (!current || !changesGitHubIssuesBinding(current, value))
18
+ return;
19
+ const admission = ctx.get('admission');
20
+ if (admission === undefined) {
21
+ throw new Error('Admission is unavailable; GitHub Issues binding changes are disabled');
22
+ }
23
+ const blocker = admission.trackerSwitchBlocker(String(githubIssuesProviderId));
24
+ if (blocker !== undefined)
25
+ throw new Error(blocker);
26
+ },
27
+ });
28
+ const registeredSettings = settings;
29
+ const setup = ctx.get('autopilotWebContributions')?.registerProvider(githubSetup(registeredSettings));
30
+ try {
31
+ const unmount = await mountMcpTracker(ctx, {
32
+ settings: registeredSettings,
33
+ requiredToolset(current) {
34
+ return { serverName: current.mcpServerName, contracts: githubMcpContracts };
35
+ },
36
+ createProvider: (current, tools) => createGitHubIssuesProvider(ctx, current, tools),
37
+ });
38
+ return async () => {
39
+ await unmount();
40
+ setup?.();
41
+ };
42
+ }
43
+ catch (error) {
44
+ setup?.();
45
+ throw error;
46
+ }
47
+ }
48
+ function githubSetup(settings) {
49
+ return {
50
+ providerId: 'github-issues',
51
+ displayName: 'GitHub Issues via official MCP',
52
+ configurationNamespace: 'dsh-autopilot-github-issues',
53
+ view() {
54
+ const value = settings.get();
55
+ return {
56
+ status: 'available',
57
+ mcpServerName: value.mcpServerName,
58
+ resources: [
59
+ { label: 'Repository', value: [value.repositoryOwner, value.repositoryName].filter(Boolean).join('/') },
60
+ { label: 'Repository id', value: value.repositoryId },
61
+ { label: 'Ready label', value: value.readyLabel },
62
+ ],
63
+ credentialRefs: value.webhookSecretRef === '' ? [] : [{ label: 'Inbound webhook secret', ref: value.webhookSecretRef }],
64
+ lookup: {
65
+ status: 'unavailable',
66
+ reason: 'DSH does not expose GitHub MCP repository or label lookup to Client plugins at this version.',
67
+ },
68
+ };
69
+ },
70
+ };
71
+ }
72
+ export async function apply(ctx) {
73
+ await ctx.effect(() => registerGitHubIssuesProvider(ctx), 'dsh-autopilot-github-issues.mcp');
74
+ }
75
+ function createGitHubIssuesProvider(ctx, snapshot, tools) {
76
+ const config = requireConfiguredSettings(snapshot);
77
+ const cursorCodec = createMcpTraversalCursorCodec();
78
+ return {
79
+ id: githubIssuesProviderId,
80
+ interfaceVersion: TRACKER_INTERFACE_VERSION,
81
+ displayName: 'GitHub Issues via official MCP',
82
+ configurationNamespace: 'dsh-autopilot-github-issues',
83
+ capabilities: ['candidates', 'comments', 'dependencies', 'readiness', 'ingress'],
84
+ async readCandidates({ cursor, signal }) {
85
+ const identity = await tools.call('readIdentity', {}, signal);
86
+ if (String(identity.id) !== config.integrationActorId) {
87
+ throw new TrackerProviderError('provider-unavailable', 'GitHub MCP identity does not match the configured integration actor');
88
+ }
89
+ const state = cursor === undefined ? { pagesRead: 0, itemsRead: 0 } : cursorCodec.decode(cursor);
90
+ const page = await tools.call('listCandidates', {
91
+ owner: config.repositoryOwner,
92
+ repo: config.repositoryName,
93
+ label: config.readyLabel,
94
+ pageSize: config.pageSize,
95
+ ...('vendorCursor' in state ? { after: state.vendorCursor } : {}),
96
+ }, signal);
97
+ const pagesRead = state.pagesRead + 1;
98
+ const itemsRead = state.itemsRead + page.issues.length;
99
+ assertTraversalBounds(pagesRead, itemsRead, config);
100
+ const issues = [];
101
+ const seen = new Set();
102
+ for (const issue of stableIssues(page.issues)) {
103
+ if (seen.has(issue.number))
104
+ continue;
105
+ seen.add(issue.number);
106
+ issues.push(await hydrateIssue(issue, config, tools, signal));
107
+ }
108
+ const after = nextCursor(page.pageInfo);
109
+ if (after !== undefined) {
110
+ if ('vendorCursor' in state && after === state.vendorCursor)
111
+ throw paginationAdvance('candidates');
112
+ if (pagesRead >= config.maxPagesPerTraversal || itemsRead >= config.maxItemsPerTraversal) {
113
+ throw paginationBound('candidates');
114
+ }
115
+ }
116
+ return {
117
+ issues,
118
+ ...(after === undefined
119
+ ? {}
120
+ : { nextCursor: cursorCodec.encode({ vendorCursor: after, pagesRead, itemsRead }) }),
121
+ };
122
+ },
123
+ verifyIngress: (request) => verifyGitHubIssuesIngress(ctx, config, request),
124
+ };
125
+ }
126
+ async function hydrateIssue(issue, config, tools, signal) {
127
+ const coordinate = {
128
+ owner: config.repositoryOwner,
129
+ repo: config.repositoryName,
130
+ issueNumber: issue.number,
131
+ };
132
+ const comments = await readComments(coordinate, config, tools, signal);
133
+ const timeline = await readTimeline(coordinate, config, tools, signal);
134
+ const dependencies = await readDependencies(coordinate, config, tools, signal);
135
+ const completeDependencies = [];
136
+ for (const dependency of dependencies) {
137
+ if (dependency.state === 'OPEN') {
138
+ completeDependencies.push(dependency);
139
+ continue;
140
+ }
141
+ const { owner, repo } = dependencyRepository(dependency.repository);
142
+ const detail = await tools.call('readIssue', { owner, repo, issueNumber: dependency.number }, signal);
143
+ if (detail.number !== dependency.number || detail.state !== 'closed') {
144
+ throw new TrackerProviderError('invalid-response', 'GitHub Issues dependency detail did not match');
145
+ }
146
+ completeDependencies.push({
147
+ ...dependency,
148
+ ...(detail.state_reason === undefined ? {} : { stateReason: detail.state_reason }),
149
+ });
150
+ }
151
+ return normalizeIssue(issue, { comments, dependencies: completeDependencies, timeline }, config);
152
+ }
153
+ async function readComments(coordinate, config, tools, signal) {
154
+ const comments = [];
155
+ for (let page = 1; page <= config.maxPagesPerTraversal; page += 1) {
156
+ const next = await tools.call('readComments', { ...coordinate, page, pageSize: config.pageSize }, signal);
157
+ comments.push(...next);
158
+ assertItemBound(comments.length, config);
159
+ if (next.length < config.pageSize)
160
+ return comments;
161
+ }
162
+ throw paginationBound('comments');
163
+ }
164
+ async function readTimeline(coordinate, config, tools, signal) {
165
+ const events = [];
166
+ let page = 1;
167
+ for (let count = 0; count < config.maxPagesPerTraversal; count += 1) {
168
+ const next = await tools.call('readReadinessHistory', { ...coordinate, page, pageSize: config.pageSize }, signal);
169
+ events.push(...next.events);
170
+ assertItemBound(events.length, config);
171
+ if (!next.pageInfo.hasNextPage)
172
+ return events;
173
+ if (next.pageInfo.nextPage === undefined || next.pageInfo.nextPage <= page)
174
+ throw paginationAdvance('timeline');
175
+ page = next.pageInfo.nextPage;
176
+ }
177
+ throw paginationBound('timeline');
178
+ }
179
+ async function readDependencies(coordinate, config, tools, signal) {
180
+ const dependencies = [];
181
+ let page = 1;
182
+ for (let count = 0; count < config.maxPagesPerTraversal; count += 1) {
183
+ const next = await tools.call('readDependencies', { ...coordinate, page, pageSize: config.pageSize }, signal);
184
+ dependencies.push(...next.issues);
185
+ assertItemBound(dependencies.length, config);
186
+ if (!next.pageInfo.hasNextPage)
187
+ return dependencies;
188
+ if (next.pageInfo.nextPage === undefined || next.pageInfo.nextPage <= page)
189
+ throw paginationAdvance('dependencies');
190
+ page = next.pageInfo.nextPage;
191
+ }
192
+ throw paginationBound('dependencies');
193
+ }
194
+ function nextCursor(pageInfo) {
195
+ if (!pageInfo.hasNextPage)
196
+ return undefined;
197
+ if (pageInfo.endCursor === undefined)
198
+ throw paginationAdvance('candidates');
199
+ return pageInfo.endCursor;
200
+ }
201
+ function assertTraversalBounds(pages, items, config) {
202
+ if (pages > config.maxPagesPerTraversal || items > config.maxItemsPerTraversal)
203
+ throw paginationBound('candidates');
204
+ }
205
+ function assertItemBound(items, config) {
206
+ if (items > config.maxItemsPerTraversal)
207
+ throw paginationBound('nested evidence');
208
+ }
209
+ function paginationAdvance(subject) {
210
+ return new TrackerProviderError('invalid-response', `GitHub Issues ${subject} pagination did not advance`);
211
+ }
212
+ function paginationBound(subject) {
213
+ return new TrackerProviderError('invalid-response', `GitHub Issues ${subject} exceeded its safety bound`);
214
+ }
215
+ function dependencyRepository(value) {
216
+ const [owner, repo, ...rest] = value.split('/');
217
+ if (rest.length > 0 || owner === undefined || repo === undefined || owner === '' || repo === '') {
218
+ throw new TrackerProviderError('invalid-response', 'GitHub Issues dependency repository was malformed');
219
+ }
220
+ return { owner, repo };
221
+ }
222
+ function stableIssues(issues) {
223
+ return [...issues].sort((left, right) => {
224
+ const leftTime = timestamp(left.created_at);
225
+ const rightTime = timestamp(right.created_at);
226
+ return leftTime === rightTime ? left.number - right.number : leftTime - rightTime;
227
+ });
228
+ }
229
+ function timestamp(value) {
230
+ const time = Date.parse(value);
231
+ if (Number.isNaN(time))
232
+ throw new TrackerProviderError('invalid-response', 'GitHub Issues returned an invalid timestamp');
233
+ return time;
234
+ }
235
+ //# sourceMappingURL=provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["../../../src/providers/github-issues/provider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,123 @@
1
+ import { z } from 'zod';
2
+ export declare const issueSchema: z.ZodObject<{
3
+ number: z.ZodNumber;
4
+ title: z.ZodString;
5
+ state: z.ZodEnum<{
6
+ CLOSED: "CLOSED";
7
+ OPEN: "OPEN";
8
+ }>;
9
+ labels: z.ZodArray<z.ZodString>;
10
+ created_at: z.ZodString;
11
+ }, z.core.$strip>;
12
+ export declare const issuesPageSchema: z.ZodObject<{
13
+ issues: z.ZodArray<z.ZodObject<{
14
+ number: z.ZodNumber;
15
+ title: z.ZodString;
16
+ state: z.ZodEnum<{
17
+ CLOSED: "CLOSED";
18
+ OPEN: "OPEN";
19
+ }>;
20
+ labels: z.ZodArray<z.ZodString>;
21
+ created_at: z.ZodString;
22
+ }, z.core.$strip>>;
23
+ totalCount: z.ZodNumber;
24
+ pageInfo: z.ZodObject<{
25
+ hasNextPage: z.ZodBoolean;
26
+ endCursor: z.ZodOptional<z.ZodString>;
27
+ }, z.core.$strip>;
28
+ }, z.core.$strip>;
29
+ export declare const commentSchema: z.ZodObject<{
30
+ id: z.ZodNumber;
31
+ user: z.ZodOptional<z.ZodNullable<z.ZodObject<{
32
+ id: z.ZodNumber;
33
+ }, z.core.$strip>>>;
34
+ body: z.ZodOptional<z.ZodString>;
35
+ updated_at: z.ZodString;
36
+ }, z.core.$strip>;
37
+ export declare const commentsPageSchema: z.ZodArray<z.ZodObject<{
38
+ id: z.ZodNumber;
39
+ user: z.ZodOptional<z.ZodNullable<z.ZodObject<{
40
+ id: z.ZodNumber;
41
+ }, z.core.$strip>>>;
42
+ body: z.ZodOptional<z.ZodString>;
43
+ updated_at: z.ZodString;
44
+ }, z.core.$strip>>;
45
+ export declare const timelineEventSchema: z.ZodObject<{
46
+ id: z.ZodNumber;
47
+ event: z.ZodEnum<{
48
+ labeled: "labeled";
49
+ unlabeled: "unlabeled";
50
+ }>;
51
+ created_at: z.ZodString;
52
+ actor: z.ZodNullable<z.ZodObject<{
53
+ id: z.ZodNumber;
54
+ type: z.ZodString;
55
+ }, z.core.$strip>>;
56
+ label: z.ZodObject<{
57
+ name: z.ZodString;
58
+ }, z.core.$strip>;
59
+ performed_via_github_app: z.ZodOptional<z.ZodNullable<z.ZodObject<{
60
+ id: z.ZodNumber;
61
+ }, z.core.$strip>>>;
62
+ repository_id: z.ZodNumber;
63
+ }, z.core.$strip>;
64
+ export declare const timelinePageSchema: z.ZodObject<{
65
+ events: z.ZodArray<z.ZodObject<{
66
+ id: z.ZodNumber;
67
+ event: z.ZodEnum<{
68
+ labeled: "labeled";
69
+ unlabeled: "unlabeled";
70
+ }>;
71
+ created_at: z.ZodString;
72
+ actor: z.ZodNullable<z.ZodObject<{
73
+ id: z.ZodNumber;
74
+ type: z.ZodString;
75
+ }, z.core.$strip>>;
76
+ label: z.ZodObject<{
77
+ name: z.ZodString;
78
+ }, z.core.$strip>;
79
+ performed_via_github_app: z.ZodOptional<z.ZodNullable<z.ZodObject<{
80
+ id: z.ZodNumber;
81
+ }, z.core.$strip>>>;
82
+ repository_id: z.ZodNumber;
83
+ }, z.core.$strip>>;
84
+ pageInfo: z.ZodObject<{
85
+ hasNextPage: z.ZodBoolean;
86
+ nextPage: z.ZodOptional<z.ZodNumber>;
87
+ }, z.core.$strip>;
88
+ }, z.core.$strip>;
89
+ export declare const dependencySchema: z.ZodObject<{
90
+ number: z.ZodNumber;
91
+ state: z.ZodEnum<{
92
+ CLOSED: "CLOSED";
93
+ OPEN: "OPEN";
94
+ }>;
95
+ repository: z.ZodString;
96
+ }, z.core.$strip>;
97
+ export declare const dependenciesPageSchema: z.ZodObject<{
98
+ issues: z.ZodArray<z.ZodObject<{
99
+ number: z.ZodNumber;
100
+ state: z.ZodEnum<{
101
+ CLOSED: "CLOSED";
102
+ OPEN: "OPEN";
103
+ }>;
104
+ repository: z.ZodString;
105
+ }, z.core.$strip>>;
106
+ pageInfo: z.ZodUnion<readonly [z.ZodObject<{
107
+ hasNextPage: z.ZodLiteral<true>;
108
+ nextPage: z.ZodNumber;
109
+ }, z.core.$strip>, z.ZodObject<{
110
+ hasNextPage: z.ZodLiteral<false>;
111
+ nextPage: z.ZodOptional<z.ZodLiteral<0>>;
112
+ }, z.core.$strip>]>;
113
+ }, z.core.$strip>;
114
+ export declare const webhookBodySchema: z.ZodObject<{
115
+ repository: z.ZodObject<{
116
+ id: z.ZodNumber;
117
+ }, z.core.$strip>;
118
+ action: z.ZodOptional<z.ZodString>;
119
+ }, z.core.$strip>;
120
+ export type GitHubIssue = z.infer<typeof issueSchema>;
121
+ export type GitHubComment = z.infer<typeof commentSchema>;
122
+ export type GitHubTimelineEvent = z.infer<typeof timelineEventSchema>;
123
+ export type GitHubDependency = z.infer<typeof dependencySchema>;
@@ -0,0 +1,58 @@
1
+ import { z } from 'zod';
2
+ const githubId = z.number().int().positive().safe();
3
+ const pageInfoSchema = z.object({
4
+ hasNextPage: z.boolean(),
5
+ endCursor: z.string().min(1).max(4096).optional(),
6
+ });
7
+ export const issueSchema = z.object({
8
+ number: z.number().int().positive().safe(),
9
+ title: z.string().max(65_536),
10
+ state: z.enum(['OPEN', 'CLOSED']),
11
+ labels: z.array(z.string().max(255)).max(256),
12
+ created_at: z.string().min(1).max(128),
13
+ });
14
+ export const issuesPageSchema = z.object({
15
+ issues: z.array(issueSchema).max(100),
16
+ totalCount: z.number().int().nonnegative(),
17
+ pageInfo: pageInfoSchema,
18
+ });
19
+ export const commentSchema = z.object({
20
+ id: githubId,
21
+ user: z.object({ id: githubId }).nullable().optional(),
22
+ body: z.string().max(1_048_576).optional(),
23
+ updated_at: z.string().min(1).max(128),
24
+ });
25
+ export const commentsPageSchema = z.array(commentSchema).max(100);
26
+ export const timelineEventSchema = z.object({
27
+ id: githubId,
28
+ event: z.enum(['labeled', 'unlabeled']),
29
+ created_at: z.string().min(1).max(128),
30
+ actor: z.object({ id: githubId, type: z.string().min(1).max(64) }).nullable(),
31
+ label: z.object({ name: z.string().max(255) }),
32
+ performed_via_github_app: z.object({ id: githubId }).nullable().optional(),
33
+ repository_id: githubId,
34
+ });
35
+ export const timelinePageSchema = z.object({
36
+ events: z.array(timelineEventSchema).max(100),
37
+ pageInfo: z.object({
38
+ hasNextPage: z.boolean(),
39
+ nextPage: z.number().int().positive().safe().optional(),
40
+ }),
41
+ });
42
+ export const dependencySchema = z.object({
43
+ number: z.number().int().positive().safe(),
44
+ state: z.enum(['OPEN', 'CLOSED']),
45
+ repository: z.string().min(3).max(202),
46
+ });
47
+ export const dependenciesPageSchema = z.object({
48
+ issues: z.array(dependencySchema).max(100),
49
+ pageInfo: z.union([
50
+ z.object({ hasNextPage: z.literal(true), nextPage: z.number().int().positive().safe() }),
51
+ z.object({ hasNextPage: z.literal(false), nextPage: z.literal(0).optional() }),
52
+ ]),
53
+ });
54
+ export const webhookBodySchema = z.object({
55
+ repository: z.object({ id: githubId }),
56
+ action: z.string().min(1).max(128).optional(),
57
+ });
58
+ //# sourceMappingURL=schemas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../../src/providers/github-issues/schemas.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import s from '@deepseek-ai/schemastery';
2
+ export interface GitHubIssuesSettings {
3
+ mcpServerName: string;
4
+ repositoryOwner: string;
5
+ repositoryName: string;
6
+ repositoryId: string;
7
+ integrationActorId: string;
8
+ webhookSecretRef: string;
9
+ readyLabel: string;
10
+ pageSize: number;
11
+ maxPagesPerTraversal: number;
12
+ maxItemsPerTraversal: number;
13
+ priorityLabelRanks: Record<string, number>;
14
+ defaultPriorityRank: number;
15
+ completedStateReasons: string[];
16
+ automationActorIds: string[];
17
+ trustedHumanActorIds: string[];
18
+ }
19
+ /** Whether a Settings edit would reinterpret an existing GitHub Issues run. */
20
+ export declare function changesGitHubIssuesBinding(current: GitHubIssuesSettings, next: GitHubIssuesSettings): boolean;
21
+ export declare const githubIssuesSettingsSchema: s<GitHubIssuesSettings>;
22
+ /** Validate persisted GitHub Issues settings; throws `TypeError` and has no side effects or cancellation point. */
23
+ export declare function validateStoredSettings(config: GitHubIssuesSettings): void;
24
+ /** Require the settings needed to authenticate ingress; rejects sanitized with `TrackerProviderError`. */
25
+ export declare function requireIngressConfiguredSettings(config: GitHubIssuesSettings): GitHubIssuesSettings;
26
+ /** Require the complete read configuration; rejects sanitized with `TrackerProviderError`. */
27
+ export declare function requireConfiguredSettings(config: GitHubIssuesSettings): GitHubIssuesSettings;
@@ -0,0 +1,154 @@
1
+ import { isDeepStrictEqual } from 'node:util';
2
+ import { credentialRef } from '@deepseek-ai/dsh-credentials';
3
+ import s from '@deepseek-ai/schemastery';
4
+ import { TrackerProviderError } from '../../tracker.js';
5
+ const protectedSettingKeys = [
6
+ 'mcpServerName',
7
+ 'repositoryOwner',
8
+ 'repositoryName',
9
+ 'repositoryId',
10
+ 'integrationActorId',
11
+ 'readyLabel',
12
+ 'priorityLabelRanks',
13
+ 'defaultPriorityRank',
14
+ 'completedStateReasons',
15
+ 'automationActorIds',
16
+ 'trustedHumanActorIds',
17
+ ];
18
+ /** Whether a Settings edit would reinterpret an existing GitHub Issues run. */
19
+ export function changesGitHubIssuesBinding(current, next) {
20
+ return protectedSettingKeys.some((key) => !isDeepStrictEqual(current[key], next[key]));
21
+ }
22
+ export const githubIssuesSettingsSchema = s.object({
23
+ mcpServerName: s.string().default('github'),
24
+ repositoryOwner: s.string().default(''),
25
+ repositoryName: s.string().default(''),
26
+ repositoryId: s.string().default(''),
27
+ integrationActorId: s.string().default(''),
28
+ webhookSecretRef: s.string().default('DSH_AUTOPILOT_GITHUB_ISSUES_WEBHOOK_SECRET'),
29
+ readyLabel: s.string().default('ready-for-agent'),
30
+ pageSize: s.number().min(1).max(100).default(50),
31
+ maxPagesPerTraversal: s.number().min(1).max(1_000).default(100),
32
+ maxItemsPerTraversal: s.number().min(1).max(10_000).default(10_000),
33
+ priorityLabelRanks: s.dict(s.number().min(0)).default({}),
34
+ defaultPriorityRank: s.number().min(0).default(100),
35
+ completedStateReasons: s.array(s.string()).default(['completed']),
36
+ automationActorIds: s.array(s.string()).default([]),
37
+ trustedHumanActorIds: s.array(s.string()).default([]),
38
+ });
39
+ /** Validate persisted GitHub Issues settings; throws `TypeError` and has no side effects or cancellation point. */
40
+ export function validateStoredSettings(config) {
41
+ if (!Number.isInteger(config.pageSize) || config.pageSize < 1 || config.pageSize > 100) {
42
+ throw new TypeError('GitHub Issues page size must be an integer from 1 through 100');
43
+ }
44
+ if (!Number.isInteger(config.maxPagesPerTraversal) ||
45
+ config.maxPagesPerTraversal < 1 ||
46
+ config.maxPagesPerTraversal > 1_000) {
47
+ throw new TypeError('GitHub Issues maximum pages per traversal must be an integer from 1 through 1000');
48
+ }
49
+ if (!Number.isInteger(config.maxItemsPerTraversal) ||
50
+ config.maxItemsPerTraversal < 1 ||
51
+ config.maxItemsPerTraversal > 10_000) {
52
+ throw new TypeError('GitHub Issues maximum items per traversal must be an integer from 1 through 10000');
53
+ }
54
+ if (!/^[A-Za-z0-9_-]{1,32}$/.test(config.mcpServerName)) {
55
+ throw new TypeError('GitHub Issues MCP server name is invalid');
56
+ }
57
+ if (!Number.isInteger(config.defaultPriorityRank) || config.defaultPriorityRank < 0) {
58
+ throw new TypeError('GitHub Issues default priority rank must be a non-negative integer');
59
+ }
60
+ validateRepositoryPart(config.repositoryOwner, 'owner');
61
+ validateRepositoryPart(config.repositoryName, 'name');
62
+ validateOptionalNumericId(config.repositoryId, 'repository id');
63
+ validateOptionalNumericId(config.integrationActorId, 'integration actor id');
64
+ if (config.readyLabel !== '' && (config.readyLabel.length > 255 || /[\r\n]/.test(config.readyLabel))) {
65
+ throw new TypeError('GitHub Issues ready label is invalid');
66
+ }
67
+ if (Object.keys(config.priorityLabelRanks).length > 256) {
68
+ throw new TypeError('GitHub Issues priority label mapping is too large');
69
+ }
70
+ for (const [label, rank] of Object.entries(config.priorityLabelRanks)) {
71
+ if (label.length === 0 || label.length > 255 || /[\r\n]/.test(label)) {
72
+ throw new TypeError('GitHub Issues priority label mapping contains an invalid label');
73
+ }
74
+ if (!Number.isInteger(rank) || rank < 0) {
75
+ throw new TypeError('GitHub Issues priority ranks must be non-negative integers');
76
+ }
77
+ }
78
+ validateStringList(config.completedStateReasons, 'completed state reason', 64);
79
+ validateIdList(config.automationActorIds, 'automation actor');
80
+ validateIdList(config.trustedHumanActorIds, 'trusted human actor');
81
+ validateDisjointActors(config);
82
+ if (config.webhookSecretRef !== '')
83
+ credentialRef(config.webhookSecretRef);
84
+ }
85
+ /** Require the settings needed to authenticate ingress; rejects sanitized with `TrackerProviderError`. */
86
+ export function requireIngressConfiguredSettings(config) {
87
+ if (config.repositoryId === '' || config.webhookSecretRef === '') {
88
+ throw new TrackerProviderError('invalid-configuration', 'GitHub Issues webhook settings are incomplete');
89
+ }
90
+ validateProviderSettings(config, 'webhook');
91
+ return config;
92
+ }
93
+ /** Require the complete read configuration; rejects sanitized with `TrackerProviderError`. */
94
+ export function requireConfiguredSettings(config) {
95
+ const missing = [
96
+ 'repositoryOwner',
97
+ 'repositoryName',
98
+ 'repositoryId',
99
+ 'integrationActorId',
100
+ 'mcpServerName',
101
+ 'readyLabel',
102
+ ].filter((field) => config[field] === '');
103
+ if (missing.length > 0) {
104
+ throw new TrackerProviderError('invalid-configuration', `GitHub Issues settings are incomplete: ${missing.join(', ')}`);
105
+ }
106
+ if (config.completedStateReasons.length === 0) {
107
+ throw new TrackerProviderError('invalid-configuration', 'GitHub Issues completed-state mapping is required');
108
+ }
109
+ if (config.trustedHumanActorIds.length === 0) {
110
+ throw new TrackerProviderError('invalid-configuration', 'GitHub Issues trusted-human mapping is required');
111
+ }
112
+ validateProviderSettings(config, 'read');
113
+ return config;
114
+ }
115
+ function validateProviderSettings(config, operation) {
116
+ try {
117
+ validateStoredSettings(config);
118
+ }
119
+ catch {
120
+ throw new TrackerProviderError('invalid-configuration', `GitHub Issues ${operation} settings are invalid`);
121
+ }
122
+ }
123
+ function validateRepositoryPart(value, part) {
124
+ if (value !== '' && (value.length > 100 || value === '.' || value === '..' || !/^[A-Za-z0-9_.-]+$/.test(value))) {
125
+ throw new TypeError(`GitHub Issues repository ${part} is invalid`);
126
+ }
127
+ }
128
+ function validateOptionalNumericId(value, subject) {
129
+ if (value !== '' && (!/^[1-9][0-9]{0,19}$/.test(value) || BigInt(value) > BigInt(Number.MAX_SAFE_INTEGER))) {
130
+ throw new TypeError(`GitHub Issues ${subject} must be a positive numeric string`);
131
+ }
132
+ }
133
+ function validateStringList(values, subject, maxLength) {
134
+ if (values.length > 256 || values.some((value) => value.length === 0 || value.length > maxLength)) {
135
+ throw new TypeError(`GitHub Issues ${subject} mapping is invalid`);
136
+ }
137
+ if (new Set(values).size !== values.length)
138
+ throw new TypeError(`GitHub Issues ${subject} mapping contains duplicates`);
139
+ }
140
+ function validateIdList(values, subject) {
141
+ if (values.length > 256)
142
+ throw new TypeError(`GitHub Issues ${subject} mapping is too large`);
143
+ for (const value of values)
144
+ validateOptionalNumericId(value, subject);
145
+ if (new Set(values).size !== values.length)
146
+ throw new TypeError(`GitHub Issues ${subject} mapping contains duplicates`);
147
+ }
148
+ function validateDisjointActors(config) {
149
+ const automation = new Set([config.integrationActorId, ...config.automationActorIds].filter(Boolean));
150
+ if (config.trustedHumanActorIds.some((actorId) => automation.has(actorId))) {
151
+ throw new TypeError('GitHub Issues automation and trusted-human actor mappings must be disjoint');
152
+ }
153
+ }
154
+ //# sourceMappingURL=settings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settings.js","sourceRoot":"","sources":["../../../src/providers/github-issues/settings.ts"],"names":[],"mappings":"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"}