@dxos/plugin-github 0.7.4 → 0.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (642) hide show
  1. package/LICENSE +102 -5
  2. package/PLUGIN.mdl +784 -0
  3. package/dist/lib/GitHubCapabilities.mjs +10 -0
  4. package/dist/lib/GitHubCapabilities.mjs.map +1 -0
  5. package/dist/lib/GitHubEvents.mjs +15 -0
  6. package/dist/lib/GitHubEvents.mjs.map +1 -0
  7. package/dist/lib/GitHubOperation.mjs +384 -0
  8. package/dist/lib/GitHubOperation.mjs.map +1 -0
  9. package/dist/lib/GitHubPlugin.mjs +16 -0
  10. package/dist/lib/GitHubPlugin.mjs.map +1 -0
  11. package/dist/lib/Walkthrough.mjs +59 -0
  12. package/dist/lib/Walkthrough.mjs.map +1 -0
  13. package/dist/lib/capabilities.browser.mjs +54 -0
  14. package/dist/lib/capabilities.browser.mjs.map +1 -0
  15. package/dist/lib/capabilities.mjs +54 -0
  16. package/dist/lib/capabilities.mjs.map +1 -0
  17. package/dist/lib/capabilities.node.mjs +30 -0
  18. package/dist/lib/capabilities.node.mjs.map +1 -0
  19. package/dist/lib/capabilities.tauri.mjs +54 -0
  20. package/dist/lib/capabilities.tauri.mjs.map +1 -0
  21. package/dist/lib/capabilities.workerd.mjs +30 -0
  22. package/dist/lib/capabilities.workerd.mjs.map +1 -0
  23. package/dist/lib/chunk-ImportPullRequestDialog.mjs +116 -0
  24. package/dist/lib/chunk-ImportPullRequestDialog.mjs.map +1 -0
  25. package/dist/lib/chunk-PLUGIN.mjs +6 -0
  26. package/dist/lib/chunk-PLUGIN.mjs.map +1 -0
  27. package/dist/lib/chunk-PullRequestArticle.mjs +1506 -0
  28. package/dist/lib/chunk-PullRequestArticle.mjs.map +1 -0
  29. package/dist/lib/chunk-PullRequestArticle2.mjs +2 -0
  30. package/dist/lib/chunk-PullRequestCardMenu.mjs +123 -0
  31. package/dist/lib/chunk-PullRequestCardMenu.mjs.map +1 -0
  32. package/dist/lib/chunk-PullRequestsArticle.mjs +594 -0
  33. package/dist/lib/chunk-PullRequestsArticle.mjs.map +1 -0
  34. package/dist/lib/chunk-WalkthroughArticle.mjs +26 -0
  35. package/dist/lib/chunk-WalkthroughArticle.mjs.map +1 -0
  36. package/dist/lib/chunk-add-pull-request-comment.mjs +19 -0
  37. package/dist/lib/chunk-add-pull-request-comment.mjs.map +1 -0
  38. package/dist/lib/chunk-add-pull-request-review-comment.mjs +25 -0
  39. package/dist/lib/chunk-add-pull-request-review-comment.mjs.map +1 -0
  40. package/dist/lib/chunk-app-graph-builder.mjs +39 -0
  41. package/dist/lib/chunk-app-graph-builder.mjs.map +1 -0
  42. package/dist/lib/chunk-connector.mjs +70 -0
  43. package/dist/lib/chunk-connector.mjs.map +1 -0
  44. package/dist/lib/chunk-constants.mjs +11 -0
  45. package/dist/lib/chunk-constants.mjs.map +1 -0
  46. package/dist/lib/chunk-errors.mjs +29 -0
  47. package/dist/lib/chunk-errors.mjs.map +1 -0
  48. package/dist/lib/chunk-generate-walkthrough.mjs +86 -0
  49. package/dist/lib/chunk-generate-walkthrough.mjs.map +1 -0
  50. package/dist/lib/chunk-generate.mjs +719 -0
  51. package/dist/lib/chunk-generate.mjs.map +1 -0
  52. package/dist/lib/chunk-get-pull-request-diff.mjs +25 -0
  53. package/dist/lib/chunk-get-pull-request-diff.mjs.map +1 -0
  54. package/dist/lib/chunk-get-pull-request-status.mjs +29 -0
  55. package/dist/lib/chunk-get-pull-request-status.mjs.map +1 -0
  56. package/dist/lib/chunk-get-repositories.mjs +32 -0
  57. package/dist/lib/chunk-get-repositories.mjs.map +1 -0
  58. package/dist/lib/chunk-github-api.mjs +375 -0
  59. package/dist/lib/chunk-github-api.mjs.map +1 -0
  60. package/dist/lib/chunk-github-link.mjs +59 -0
  61. package/dist/lib/chunk-github-link.mjs.map +1 -0
  62. package/dist/lib/chunk-import-pull-request-from-snapshot.mjs +25 -0
  63. package/dist/lib/chunk-import-pull-request-from-snapshot.mjs.map +1 -0
  64. package/dist/lib/chunk-import-pull-request.mjs +171 -0
  65. package/dist/lib/chunk-import-pull-request.mjs.map +1 -0
  66. package/dist/lib/chunk-link-resolver.mjs +109 -0
  67. package/dist/lib/chunk-link-resolver.mjs.map +1 -0
  68. package/dist/lib/chunk-markdown-extension.mjs +92 -0
  69. package/dist/lib/chunk-markdown-extension.mjs.map +1 -0
  70. package/dist/lib/chunk-materialize-target.mjs +36 -0
  71. package/dist/lib/chunk-materialize-target.mjs.map +1 -0
  72. package/dist/lib/chunk-operation-handler.mjs +12 -0
  73. package/dist/lib/chunk-operation-handler.mjs.map +1 -0
  74. package/dist/lib/chunk-page-action.mjs +22 -0
  75. package/dist/lib/chunk-page-action.mjs.map +1 -0
  76. package/dist/lib/chunk-pull-request.mjs +58 -0
  77. package/dist/lib/chunk-pull-request.mjs.map +1 -0
  78. package/dist/lib/chunk-pull-request2.mjs +110 -0
  79. package/dist/lib/chunk-pull-request2.mjs.map +1 -0
  80. package/dist/lib/chunk-react-surface.mjs +233 -0
  81. package/dist/lib/chunk-react-surface.mjs.map +1 -0
  82. package/dist/lib/chunk-refresh-pull-requests.mjs +49 -0
  83. package/dist/lib/chunk-refresh-pull-requests.mjs.map +1 -0
  84. package/dist/lib/chunk-rolldown-runtime.mjs +13 -0
  85. package/dist/lib/chunk-schema.mjs +15 -0
  86. package/dist/lib/chunk-schema.mjs.map +1 -0
  87. package/dist/lib/chunk-skill-definition.mjs +10 -0
  88. package/dist/lib/chunk-skill-definition.mjs.map +1 -0
  89. package/dist/lib/chunk-submit-pull-request-approval.mjs +56 -0
  90. package/dist/lib/chunk-submit-pull-request-approval.mjs.map +1 -0
  91. package/dist/lib/chunk-sync-pull-request.mjs +26 -0
  92. package/dist/lib/chunk-sync-pull-request.mjs.map +1 -0
  93. package/dist/lib/chunk-sync.mjs +481 -0
  94. package/dist/lib/chunk-sync.mjs.map +1 -0
  95. package/dist/lib/chunk-useOpenObject.mjs +43 -0
  96. package/dist/lib/chunk-useOpenObject.mjs.map +1 -0
  97. package/dist/lib/extensions.mjs +132 -0
  98. package/dist/lib/extensions.mjs.map +1 -0
  99. package/dist/lib/index.mjs +4 -0
  100. package/dist/lib/meta.mjs +47 -0
  101. package/dist/lib/meta.mjs.map +1 -0
  102. package/dist/lib/ns/Extensions.mjs +18 -0
  103. package/dist/lib/ns/Extensions.mjs.map +1 -0
  104. package/dist/lib/operations.mjs +23 -0
  105. package/dist/lib/operations.mjs.map +1 -0
  106. package/dist/lib/plugin.mjs +9 -0
  107. package/dist/lib/plugin.mjs.map +1 -0
  108. package/dist/lib/skills.mjs +44 -0
  109. package/dist/lib/skills.mjs.map +1 -0
  110. package/dist/lib/testing.mjs +189 -0
  111. package/dist/lib/testing.mjs.map +1 -0
  112. package/dist/lib/translations.mjs +136 -0
  113. package/dist/lib/translations.mjs.map +1 -0
  114. package/dist/lib/types.mjs +5 -0
  115. package/dist/types/dx.config.d.ts +28 -0
  116. package/dist/types/dx.config.d.ts.map +1 -0
  117. package/dist/types/src/Extensions.d.ts +2 -0
  118. package/dist/types/src/Extensions.d.ts.map +1 -0
  119. package/dist/types/src/GitHubPlugin.d.ts +37 -0
  120. package/dist/types/src/GitHubPlugin.d.ts.map +1 -0
  121. package/dist/types/src/GitHubPlugin.workerd.test.d.ts +2 -0
  122. package/dist/types/src/GitHubPlugin.workerd.test.d.ts.map +1 -0
  123. package/dist/types/src/approval.d.ts +21 -0
  124. package/dist/types/src/approval.d.ts.map +1 -0
  125. package/dist/types/src/approval.test.d.ts +2 -0
  126. package/dist/types/src/approval.test.d.ts.map +1 -0
  127. package/dist/types/src/capabilities/app-graph-builder.d.ts +9 -0
  128. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -0
  129. package/dist/types/src/capabilities/connector.d.ts +17 -0
  130. package/dist/types/src/capabilities/connector.d.ts.map +1 -0
  131. package/dist/types/src/capabilities/gen/browser.d.ts +13 -0
  132. package/dist/types/src/capabilities/gen/browser.d.ts.map +1 -0
  133. package/dist/types/src/capabilities/gen/node.d.ts +13 -0
  134. package/dist/types/src/capabilities/gen/node.d.ts.map +1 -0
  135. package/dist/types/src/capabilities/gen/tauri.d.ts +13 -0
  136. package/dist/types/src/capabilities/gen/tauri.d.ts.map +1 -0
  137. package/dist/types/src/capabilities/gen/workerd.d.ts +13 -0
  138. package/dist/types/src/capabilities/gen/workerd.d.ts.map +1 -0
  139. package/dist/types/src/capabilities/index.d.ts +13 -0
  140. package/dist/types/src/capabilities/index.d.ts.map +1 -0
  141. package/dist/types/src/capabilities/link-resolver.d.ts +10 -0
  142. package/dist/types/src/capabilities/link-resolver.d.ts.map +1 -0
  143. package/dist/types/src/capabilities/markdown-extension.d.ts +14 -0
  144. package/dist/types/src/capabilities/markdown-extension.d.ts.map +1 -0
  145. package/dist/types/src/capabilities/operation-handler.d.ts +5 -0
  146. package/dist/types/src/capabilities/operation-handler.d.ts.map +1 -0
  147. package/dist/types/src/capabilities/page-action.d.ts +5 -0
  148. package/dist/types/src/capabilities/page-action.d.ts.map +1 -0
  149. package/dist/types/src/capabilities/react-surface.d.ts +5 -0
  150. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -0
  151. package/dist/types/src/capabilities/schema.d.ts +12 -0
  152. package/dist/types/src/capabilities/schema.d.ts.map +1 -0
  153. package/dist/types/src/capabilities/skill-definition.d.ts +5 -0
  154. package/dist/types/src/capabilities/skill-definition.d.ts.map +1 -0
  155. package/dist/types/src/cards/GitHubCard.d.ts +11 -0
  156. package/dist/types/src/cards/GitHubCard.d.ts.map +1 -0
  157. package/dist/types/src/cards/GitHubCard.stories.d.ts +45 -0
  158. package/dist/types/src/cards/GitHubCard.stories.d.ts.map +1 -0
  159. package/dist/types/src/cards/PullRequestCard.d.ts +9 -0
  160. package/dist/types/src/cards/PullRequestCard.d.ts.map +1 -0
  161. package/dist/types/src/cards/index.d.ts +3 -0
  162. package/dist/types/src/cards/index.d.ts.map +1 -0
  163. package/dist/types/src/components/CommentComposer/CommentComposer.d.ts +30 -0
  164. package/dist/types/src/components/CommentComposer/CommentComposer.d.ts.map +1 -0
  165. package/dist/types/src/components/CommentComposer/index.d.ts +2 -0
  166. package/dist/types/src/components/CommentComposer/index.d.ts.map +1 -0
  167. package/dist/types/src/components/PullRequestFiles/DiffStat.d.ts +8 -0
  168. package/dist/types/src/components/PullRequestFiles/DiffStat.d.ts.map +1 -0
  169. package/dist/types/src/components/PullRequestFiles/FileTree.d.ts +17 -0
  170. package/dist/types/src/components/PullRequestFiles/FileTree.d.ts.map +1 -0
  171. package/dist/types/src/components/PullRequestFiles/PullRequestFiles.d.ts +23 -0
  172. package/dist/types/src/components/PullRequestFiles/PullRequestFiles.d.ts.map +1 -0
  173. package/dist/types/src/components/PullRequestFiles/files.d.ts +39 -0
  174. package/dist/types/src/components/PullRequestFiles/files.d.ts.map +1 -0
  175. package/dist/types/src/components/PullRequestFiles/files.test.d.ts +2 -0
  176. package/dist/types/src/components/PullRequestFiles/files.test.d.ts.map +1 -0
  177. package/dist/types/src/components/PullRequestFiles/index.d.ts +5 -0
  178. package/dist/types/src/components/PullRequestFiles/index.d.ts.map +1 -0
  179. package/dist/types/src/components/PullRequestOverview/ArtifactPill.d.ts +21 -0
  180. package/dist/types/src/components/PullRequestOverview/ArtifactPill.d.ts.map +1 -0
  181. package/dist/types/src/components/PullRequestOverview/CheckRunList.d.ts +18 -0
  182. package/dist/types/src/components/PullRequestOverview/CheckRunList.d.ts.map +1 -0
  183. package/dist/types/src/components/PullRequestOverview/CheckRunList.test.d.ts +2 -0
  184. package/dist/types/src/components/PullRequestOverview/CheckRunList.test.d.ts.map +1 -0
  185. package/dist/types/src/components/PullRequestOverview/PullRequestDetails.d.ts +10 -0
  186. package/dist/types/src/components/PullRequestOverview/PullRequestDetails.d.ts.map +1 -0
  187. package/dist/types/src/components/PullRequestOverview/PullRequestOverview.d.ts +16 -0
  188. package/dist/types/src/components/PullRequestOverview/PullRequestOverview.d.ts.map +1 -0
  189. package/dist/types/src/components/PullRequestOverview/RelatedCards.d.ts +28 -0
  190. package/dist/types/src/components/PullRequestOverview/RelatedCards.d.ts.map +1 -0
  191. package/dist/types/src/components/PullRequestOverview/index.d.ts +6 -0
  192. package/dist/types/src/components/PullRequestOverview/index.d.ts.map +1 -0
  193. package/dist/types/src/components/PullRequestStatus/PullRequestStatus.d.ts +20 -0
  194. package/dist/types/src/components/PullRequestStatus/PullRequestStatus.d.ts.map +1 -0
  195. package/dist/types/src/components/PullRequestStatus/index.d.ts +2 -0
  196. package/dist/types/src/components/PullRequestStatus/index.d.ts.map +1 -0
  197. package/dist/types/src/components/WalkthroughView/WalkthroughView.d.ts +18 -0
  198. package/dist/types/src/components/WalkthroughView/WalkthroughView.d.ts.map +1 -0
  199. package/dist/types/src/components/WalkthroughView/extensions.d.ts +16 -0
  200. package/dist/types/src/components/WalkthroughView/extensions.d.ts.map +1 -0
  201. package/dist/types/src/components/WalkthroughView/index.d.ts +3 -0
  202. package/dist/types/src/components/WalkthroughView/index.d.ts.map +1 -0
  203. package/dist/types/src/components/index.d.ts +5 -8
  204. package/dist/types/src/components/index.d.ts.map +1 -1
  205. package/dist/types/src/constants.d.ts +7 -0
  206. package/dist/types/src/constants.d.ts.map +1 -0
  207. package/dist/types/src/containers/ImportPullRequestDialog/ImportPullRequestDialog.d.ts +6 -0
  208. package/dist/types/src/containers/ImportPullRequestDialog/ImportPullRequestDialog.d.ts.map +1 -0
  209. package/dist/types/src/containers/ImportPullRequestDialog/index.d.ts +3 -0
  210. package/dist/types/src/containers/ImportPullRequestDialog/index.d.ts.map +1 -0
  211. package/dist/types/src/containers/PullRequestArticle/PullRequestArticle.d.ts +15 -0
  212. package/dist/types/src/containers/PullRequestArticle/PullRequestArticle.d.ts.map +1 -0
  213. package/dist/types/src/containers/PullRequestArticle/failure.d.ts +10 -0
  214. package/dist/types/src/containers/PullRequestArticle/failure.d.ts.map +1 -0
  215. package/dist/types/src/containers/PullRequestArticle/failure.test.d.ts +2 -0
  216. package/dist/types/src/containers/PullRequestArticle/failure.test.d.ts.map +1 -0
  217. package/dist/types/src/containers/PullRequestArticle/index.d.ts +2 -0
  218. package/dist/types/src/containers/PullRequestArticle/index.d.ts.map +1 -0
  219. package/dist/types/src/containers/PullRequestCardMenu/PullRequestCardMenu.d.ts +14 -0
  220. package/dist/types/src/containers/PullRequestCardMenu/PullRequestCardMenu.d.ts.map +1 -0
  221. package/dist/types/src/containers/PullRequestCardMenu/index.d.ts +2 -0
  222. package/dist/types/src/containers/PullRequestCardMenu/index.d.ts.map +1 -0
  223. package/dist/types/src/containers/PullRequestsArticle/PullRequestsArticle.d.ts +13 -0
  224. package/dist/types/src/containers/PullRequestsArticle/PullRequestsArticle.d.ts.map +1 -0
  225. package/dist/types/src/containers/PullRequestsArticle/arrange.d.ts +44 -0
  226. package/dist/types/src/containers/PullRequestsArticle/arrange.d.ts.map +1 -0
  227. package/dist/types/src/containers/PullRequestsArticle/arrange.test.d.ts +2 -0
  228. package/dist/types/src/containers/PullRequestsArticle/arrange.test.d.ts.map +1 -0
  229. package/dist/types/src/containers/PullRequestsArticle/format.d.ts +3 -0
  230. package/dist/types/src/containers/PullRequestsArticle/format.d.ts.map +1 -0
  231. package/dist/types/src/containers/PullRequestsArticle/index.d.ts +2 -0
  232. package/dist/types/src/containers/PullRequestsArticle/index.d.ts.map +1 -0
  233. package/dist/types/src/containers/WalkthroughArticle/WalkthroughArticle.d.ts +13 -0
  234. package/dist/types/src/containers/WalkthroughArticle/WalkthroughArticle.d.ts.map +1 -0
  235. package/dist/types/src/containers/WalkthroughArticle/index.d.ts +2 -0
  236. package/dist/types/src/containers/WalkthroughArticle/index.d.ts.map +1 -0
  237. package/dist/types/src/containers/index.d.ts +7 -0
  238. package/dist/types/src/containers/index.d.ts.map +1 -0
  239. package/dist/types/src/errors.d.ts +157 -0
  240. package/dist/types/src/errors.d.ts.map +1 -0
  241. package/dist/types/src/extensions/index.d.ts +3 -0
  242. package/dist/types/src/extensions/index.d.ts.map +1 -0
  243. package/dist/types/src/extensions/links.d.ts +21 -0
  244. package/dist/types/src/extensions/links.d.ts.map +1 -0
  245. package/dist/types/src/extensions/links.test.d.ts +2 -0
  246. package/dist/types/src/extensions/links.test.d.ts.map +1 -0
  247. package/dist/types/src/extensions/references.d.ts +23 -0
  248. package/dist/types/src/extensions/references.d.ts.map +1 -0
  249. package/dist/types/src/extensions/references.test.d.ts +2 -0
  250. package/dist/types/src/extensions/references.test.d.ts.map +1 -0
  251. package/dist/types/src/github-link.d.ts +29 -0
  252. package/dist/types/src/github-link.d.ts.map +1 -0
  253. package/dist/types/src/hooks/index.d.ts +5 -2
  254. package/dist/types/src/hooks/index.d.ts.map +1 -1
  255. package/dist/types/src/hooks/useOpenObject.d.ts +9 -0
  256. package/dist/types/src/hooks/useOpenObject.d.ts.map +1 -0
  257. package/dist/types/src/hooks/usePullRequestChecks.d.ts +10 -0
  258. package/dist/types/src/hooks/usePullRequestChecks.d.ts.map +1 -0
  259. package/dist/types/src/hooks/usePullRequestDiff.d.ts +12 -0
  260. package/dist/types/src/hooks/usePullRequestDiff.d.ts.map +1 -0
  261. package/dist/types/src/hooks/usePullRequestFiles.d.ts +22 -0
  262. package/dist/types/src/hooks/usePullRequestFiles.d.ts.map +1 -0
  263. package/dist/types/src/hooks/useSyncPullRequest.d.ts +10 -0
  264. package/dist/types/src/hooks/useSyncPullRequest.d.ts.map +1 -0
  265. package/dist/types/src/index.d.ts +3 -3
  266. package/dist/types/src/index.d.ts.map +1 -1
  267. package/dist/types/src/meta.d.ts +34 -11
  268. package/dist/types/src/meta.d.ts.map +1 -1
  269. package/dist/types/src/operations/add-pull-request-comment.d.ts +5 -0
  270. package/dist/types/src/operations/add-pull-request-comment.d.ts.map +1 -0
  271. package/dist/types/src/operations/add-pull-request-review-comment.d.ts +5 -0
  272. package/dist/types/src/operations/add-pull-request-review-comment.d.ts.map +1 -0
  273. package/dist/types/src/operations/generate-walkthrough.d.ts +11 -0
  274. package/dist/types/src/operations/generate-walkthrough.d.ts.map +1 -0
  275. package/dist/types/src/operations/get-pull-request-diff.d.ts +5 -0
  276. package/dist/types/src/operations/get-pull-request-diff.d.ts.map +1 -0
  277. package/dist/types/src/operations/get-pull-request-status.d.ts +5 -0
  278. package/dist/types/src/operations/get-pull-request-status.d.ts.map +1 -0
  279. package/dist/types/src/operations/get-repositories.d.ts +13 -0
  280. package/dist/types/src/operations/get-repositories.d.ts.map +1 -0
  281. package/dist/types/src/operations/import-pull-request-from-snapshot.d.ts +12 -0
  282. package/dist/types/src/operations/import-pull-request-from-snapshot.d.ts.map +1 -0
  283. package/dist/types/src/operations/import-pull-request.d.ts +63 -0
  284. package/dist/types/src/operations/import-pull-request.d.ts.map +1 -0
  285. package/dist/types/src/operations/import-pull-request.test.d.ts +2 -0
  286. package/dist/types/src/operations/import-pull-request.test.d.ts.map +1 -0
  287. package/dist/types/src/operations/index.d.ts +3 -0
  288. package/dist/types/src/operations/index.d.ts.map +1 -0
  289. package/dist/types/src/operations/materialize-target.d.ts +12 -0
  290. package/dist/types/src/operations/materialize-target.d.ts.map +1 -0
  291. package/dist/types/src/operations/pull-request.d.ts +48 -0
  292. package/dist/types/src/operations/pull-request.d.ts.map +1 -0
  293. package/dist/types/src/operations/pull-request.test.d.ts +2 -0
  294. package/dist/types/src/operations/pull-request.test.d.ts.map +1 -0
  295. package/dist/types/src/operations/refresh-pull-requests.d.ts +5 -0
  296. package/dist/types/src/operations/refresh-pull-requests.d.ts.map +1 -0
  297. package/dist/types/src/operations/refresh.d.ts +37 -0
  298. package/dist/types/src/operations/refresh.d.ts.map +1 -0
  299. package/dist/types/src/operations/refresh.test.d.ts +2 -0
  300. package/dist/types/src/operations/refresh.test.d.ts.map +1 -0
  301. package/dist/types/src/operations/submit-pull-request-approval.d.ts +5 -0
  302. package/dist/types/src/operations/submit-pull-request-approval.d.ts.map +1 -0
  303. package/dist/types/src/operations/sync-pull-request.d.ts +5 -0
  304. package/dist/types/src/operations/sync-pull-request.d.ts.map +1 -0
  305. package/dist/types/src/operations/sync.d.ts +123 -0
  306. package/dist/types/src/operations/sync.d.ts.map +1 -0
  307. package/dist/types/src/operations/sync.test.d.ts +2 -0
  308. package/dist/types/src/operations/sync.test.d.ts.map +1 -0
  309. package/dist/types/src/plugin.d.ts +4 -0
  310. package/dist/types/src/plugin.d.ts.map +1 -0
  311. package/dist/types/src/plugin.test.d.ts +2 -0
  312. package/dist/types/src/plugin.test.d.ts.map +1 -0
  313. package/dist/types/src/pull-request-body.d.ts +37 -0
  314. package/dist/types/src/pull-request-body.d.ts.map +1 -0
  315. package/dist/types/src/pull-request-body.test.d.ts +2 -0
  316. package/dist/types/src/pull-request-body.test.d.ts.map +1 -0
  317. package/dist/types/src/pull-request.d.ts +28 -0
  318. package/dist/types/src/pull-request.d.ts.map +1 -0
  319. package/dist/types/src/pull-request.test.d.ts +2 -0
  320. package/dist/types/src/pull-request.test.d.ts.map +1 -0
  321. package/dist/types/src/services/github-api.d.ts +332 -0
  322. package/dist/types/src/services/github-api.d.ts.map +1 -0
  323. package/dist/types/src/services/index.d.ts +2 -0
  324. package/dist/types/src/services/index.d.ts.map +1 -0
  325. package/dist/types/src/skills/GitHubSkill.d.ts +12 -0
  326. package/dist/types/src/skills/GitHubSkill.d.ts.map +1 -0
  327. package/dist/types/src/skills/index.d.ts +2 -0
  328. package/dist/types/src/skills/index.d.ts.map +1 -0
  329. package/dist/types/src/stories/Generate.stories.d.ts +27 -0
  330. package/dist/types/src/stories/Generate.stories.d.ts.map +1 -0
  331. package/dist/types/src/stories/Links.stories.d.ts +23 -0
  332. package/dist/types/src/stories/Links.stories.d.ts.map +1 -0
  333. package/dist/types/src/stories/PullRequestArticle.stories.d.ts +359 -0
  334. package/dist/types/src/stories/PullRequestArticle.stories.d.ts.map +1 -0
  335. package/dist/types/src/stories/PullRequestFiles.stories.d.ts +365 -0
  336. package/dist/types/src/stories/PullRequestFiles.stories.d.ts.map +1 -0
  337. package/dist/types/src/stories/PullRequestOverview.stories.d.ts +367 -0
  338. package/dist/types/src/stories/PullRequestOverview.stories.d.ts.map +1 -0
  339. package/dist/types/src/stories/PullRequestsArticle.stories.d.ts +357 -0
  340. package/dist/types/src/stories/PullRequestsArticle.stories.d.ts.map +1 -0
  341. package/dist/types/src/stories/Walkthrough.stories.d.ts +380 -0
  342. package/dist/types/src/stories/Walkthrough.stories.d.ts.map +1 -0
  343. package/dist/types/src/stories/github.d.ts +23 -0
  344. package/dist/types/src/stories/github.d.ts.map +1 -0
  345. package/dist/types/src/stories/github.test.d.ts +2 -0
  346. package/dist/types/src/stories/github.test.d.ts.map +1 -0
  347. package/dist/types/src/stories/walkthrough-fixture.d.ts +8 -0
  348. package/dist/types/src/stories/walkthrough-fixture.d.ts.map +1 -0
  349. package/dist/types/src/testing/fixtures.d.ts +14 -0
  350. package/dist/types/src/testing/fixtures.d.ts.map +1 -0
  351. package/dist/types/src/testing/index.d.ts +4 -0
  352. package/dist/types/src/testing/index.d.ts.map +1 -0
  353. package/dist/types/src/testing/plugin.d.ts +4 -0
  354. package/dist/types/src/testing/plugin.d.ts.map +1 -0
  355. package/dist/types/src/testing/pull-request-13348.d.ts +6 -0
  356. package/dist/types/src/testing/pull-request-13348.d.ts.map +1 -0
  357. package/dist/types/src/translations.d.ts +339 -53
  358. package/dist/types/src/translations.d.ts.map +1 -1
  359. package/dist/types/src/types/GitHubCapabilities.d.ts +13 -0
  360. package/dist/types/src/types/GitHubCapabilities.d.ts.map +1 -0
  361. package/dist/types/src/types/GitHubEvents.d.ts +8 -0
  362. package/dist/types/src/types/GitHubEvents.d.ts.map +1 -0
  363. package/dist/types/src/types/GitHubOperation.d.ts +281 -0
  364. package/dist/types/src/types/GitHubOperation.d.ts.map +1 -0
  365. package/dist/types/src/types/PullRequestsView.d.ts +35 -0
  366. package/dist/types/src/types/PullRequestsView.d.ts.map +1 -0
  367. package/dist/types/src/types/Walkthrough.d.ts +31 -0
  368. package/dist/types/src/types/Walkthrough.d.ts.map +1 -0
  369. package/dist/types/src/types/Walkthrough.test.d.ts +2 -0
  370. package/dist/types/src/types/Walkthrough.test.d.ts.map +1 -0
  371. package/dist/types/src/types/index.d.ts +5 -0
  372. package/dist/types/src/types/index.d.ts.map +1 -0
  373. package/dist/types/src/walkthrough/fill.d.ts +28 -0
  374. package/dist/types/src/walkthrough/fill.d.ts.map +1 -0
  375. package/dist/types/src/walkthrough/fill.test.d.ts +2 -0
  376. package/dist/types/src/walkthrough/fill.test.d.ts.map +1 -0
  377. package/dist/types/src/walkthrough/generate.d.ts +67 -0
  378. package/dist/types/src/walkthrough/generate.d.ts.map +1 -0
  379. package/dist/types/src/walkthrough/generate.test.d.ts +2 -0
  380. package/dist/types/src/walkthrough/generate.test.d.ts.map +1 -0
  381. package/dist/types/src/walkthrough/generated.d.ts +20 -0
  382. package/dist/types/src/walkthrough/generated.d.ts.map +1 -0
  383. package/dist/types/src/walkthrough/generated.test.d.ts +2 -0
  384. package/dist/types/src/walkthrough/generated.test.d.ts.map +1 -0
  385. package/dist/types/src/walkthrough/headings.d.ts +8 -0
  386. package/dist/types/src/walkthrough/headings.d.ts.map +1 -0
  387. package/dist/types/src/walkthrough/headings.test.d.ts +2 -0
  388. package/dist/types/src/walkthrough/headings.test.d.ts.map +1 -0
  389. package/dist/types/src/walkthrough/index.d.ts +9 -0
  390. package/dist/types/src/walkthrough/index.d.ts.map +1 -0
  391. package/dist/types/src/walkthrough/patch.d.ts +48 -0
  392. package/dist/types/src/walkthrough/patch.d.ts.map +1 -0
  393. package/dist/types/src/walkthrough/plan.d.ts +55 -0
  394. package/dist/types/src/walkthrough/plan.d.ts.map +1 -0
  395. package/dist/types/src/walkthrough/plan.test.d.ts +2 -0
  396. package/dist/types/src/walkthrough/plan.test.d.ts.map +1 -0
  397. package/dist/types/src/walkthrough/prompt.d.ts +33 -0
  398. package/dist/types/src/walkthrough/prompt.d.ts.map +1 -0
  399. package/dist/types/src/walkthrough/prompt.test.d.ts +2 -0
  400. package/dist/types/src/walkthrough/prompt.test.d.ts.map +1 -0
  401. package/dist/types/src/walkthrough/score.d.ts +43 -0
  402. package/dist/types/src/walkthrough/score.d.ts.map +1 -0
  403. package/dist/types/src/walkthrough/score.test.d.ts +2 -0
  404. package/dist/types/src/walkthrough/score.test.d.ts.map +1 -0
  405. package/dist/types/tsconfig.tsbuildinfo +1 -0
  406. package/dx.config.ts +39 -0
  407. package/package.json +167 -48
  408. package/src/Extensions.ts +7 -0
  409. package/src/GitHubPlugin.ts +15 -0
  410. package/src/GitHubPlugin.workerd.test.ts +23 -0
  411. package/src/approval.test.ts +40 -0
  412. package/src/approval.ts +39 -0
  413. package/src/capabilities/app-graph-builder.ts +47 -0
  414. package/src/capabilities/connector.ts +95 -0
  415. package/src/capabilities/gen/browser.ts +82 -0
  416. package/src/capabilities/gen/node.ts +43 -0
  417. package/src/capabilities/gen/tauri.ts +82 -0
  418. package/src/capabilities/gen/workerd.ts +43 -0
  419. package/src/capabilities/index.ts +71 -0
  420. package/src/capabilities/link-resolver.ts +137 -0
  421. package/src/capabilities/markdown-extension.ts +146 -0
  422. package/src/capabilities/operation-handler.ts +16 -0
  423. package/src/capabilities/page-action.ts +32 -0
  424. package/src/capabilities/react-surface.ts +98 -0
  425. package/src/capabilities/schema.ts +16 -0
  426. package/src/capabilities/skill-definition.ts +14 -0
  427. package/src/cards/GitHubCard.stories.tsx +165 -0
  428. package/src/cards/GitHubCard.tsx +93 -0
  429. package/src/cards/PullRequestCard.tsx +23 -0
  430. package/src/cards/index.ts +6 -0
  431. package/src/components/CommentComposer/CommentComposer.tsx +109 -0
  432. package/src/components/CommentComposer/index.ts +5 -0
  433. package/src/components/PullRequestFiles/DiffStat.tsx +15 -0
  434. package/src/components/PullRequestFiles/FileTree.tsx +102 -0
  435. package/src/components/PullRequestFiles/PullRequestFiles.tsx +87 -0
  436. package/src/components/PullRequestFiles/files.test.ts +59 -0
  437. package/src/components/PullRequestFiles/files.ts +115 -0
  438. package/src/components/PullRequestFiles/index.ts +8 -0
  439. package/src/components/PullRequestOverview/ArtifactPill.tsx +82 -0
  440. package/src/components/PullRequestOverview/CheckRunList.test.ts +29 -0
  441. package/src/components/PullRequestOverview/CheckRunList.tsx +141 -0
  442. package/src/components/PullRequestOverview/PullRequestDetails.tsx +15 -0
  443. package/src/components/PullRequestOverview/PullRequestOverview.tsx +110 -0
  444. package/src/components/PullRequestOverview/RelatedCards.tsx +147 -0
  445. package/src/components/PullRequestOverview/index.ts +9 -0
  446. package/src/components/PullRequestStatus/PullRequestStatus.tsx +84 -0
  447. package/src/components/PullRequestStatus/index.ts +5 -0
  448. package/src/components/WalkthroughView/WalkthroughView.tsx +62 -0
  449. package/src/components/WalkthroughView/extensions.ts +53 -0
  450. package/src/components/WalkthroughView/index.ts +6 -0
  451. package/src/components/index.ts +6 -9
  452. package/src/constants.ts +12 -0
  453. package/src/containers/ImportPullRequestDialog/ImportPullRequestDialog.tsx +160 -0
  454. package/src/containers/ImportPullRequestDialog/index.ts +7 -0
  455. package/src/containers/PullRequestArticle/PullRequestArticle.tsx +573 -0
  456. package/src/containers/PullRequestArticle/failure.test.ts +42 -0
  457. package/src/containers/PullRequestArticle/failure.ts +16 -0
  458. package/src/containers/PullRequestArticle/index.ts +5 -0
  459. package/src/containers/PullRequestCardMenu/PullRequestCardMenu.tsx +134 -0
  460. package/src/containers/PullRequestCardMenu/index.ts +5 -0
  461. package/src/containers/PullRequestsArticle/PullRequestsArticle.tsx +361 -0
  462. package/src/containers/PullRequestsArticle/arrange.test.ts +122 -0
  463. package/src/containers/PullRequestsArticle/arrange.ts +245 -0
  464. package/src/containers/PullRequestsArticle/format.ts +31 -0
  465. package/src/containers/PullRequestsArticle/index.ts +5 -0
  466. package/src/containers/WalkthroughArticle/WalkthroughArticle.tsx +31 -0
  467. package/src/containers/WalkthroughArticle/index.ts +5 -0
  468. package/src/containers/index.ts +11 -0
  469. package/src/errors.ts +61 -0
  470. package/src/extensions/index.ts +6 -0
  471. package/src/extensions/links.test.ts +133 -0
  472. package/src/extensions/links.ts +91 -0
  473. package/src/extensions/references.test.ts +83 -0
  474. package/src/extensions/references.ts +100 -0
  475. package/src/github-link.ts +70 -0
  476. package/src/hooks/index.ts +6 -3
  477. package/src/hooks/useOpenObject.ts +48 -0
  478. package/src/hooks/usePullRequestChecks.ts +81 -0
  479. package/src/hooks/usePullRequestDiff.ts +57 -0
  480. package/src/hooks/usePullRequestFiles.ts +98 -0
  481. package/src/hooks/useSyncPullRequest.ts +51 -0
  482. package/src/index.ts +4 -6
  483. package/src/meta.ts +8 -13
  484. package/src/operations/add-pull-request-comment.ts +31 -0
  485. package/src/operations/add-pull-request-review-comment.ts +32 -0
  486. package/src/operations/generate-walkthrough.ts +124 -0
  487. package/src/operations/get-pull-request-diff.ts +37 -0
  488. package/src/operations/get-pull-request-status.ts +44 -0
  489. package/src/operations/get-repositories.ts +53 -0
  490. package/src/operations/import-pull-request-from-snapshot.ts +48 -0
  491. package/src/operations/import-pull-request.test.ts +151 -0
  492. package/src/operations/import-pull-request.ts +149 -0
  493. package/src/operations/index.ts +30 -0
  494. package/src/operations/materialize-target.ts +60 -0
  495. package/src/operations/pull-request.test.ts +120 -0
  496. package/src/operations/pull-request.ts +141 -0
  497. package/src/operations/refresh-pull-requests.ts +69 -0
  498. package/src/operations/refresh.test.ts +112 -0
  499. package/src/operations/refresh.ts +111 -0
  500. package/src/operations/submit-pull-request-approval.ts +41 -0
  501. package/src/operations/sync-pull-request.ts +34 -0
  502. package/src/operations/sync.test.ts +453 -0
  503. package/src/operations/sync.ts +807 -0
  504. package/src/plugin.test.ts +40 -0
  505. package/src/plugin.ts +37 -0
  506. package/src/pull-request-body.test.ts +61 -0
  507. package/src/pull-request-body.ts +144 -0
  508. package/src/pull-request.test.ts +67 -0
  509. package/src/pull-request.ts +80 -0
  510. package/src/services/github-api.ts +735 -0
  511. package/src/services/index.ts +5 -0
  512. package/src/skills/GitHubSkill.ts +46 -0
  513. package/src/skills/index.ts +5 -0
  514. package/src/stories/Generate.stories.tsx +152 -0
  515. package/src/stories/Links.stories.tsx +153 -0
  516. package/src/stories/PullRequestArticle.stories.tsx +107 -0
  517. package/src/stories/PullRequestFiles.stories.tsx +69 -0
  518. package/src/stories/PullRequestOverview.stories.tsx +114 -0
  519. package/src/stories/PullRequestsArticle.stories.tsx +170 -0
  520. package/src/stories/Walkthrough.stories.tsx +110 -0
  521. package/src/stories/github.test.ts +65 -0
  522. package/src/stories/github.ts +70 -0
  523. package/src/stories/walkthrough-fixture.ts +115 -0
  524. package/src/testing/fixtures.ts +99 -0
  525. package/src/testing/index.ts +7 -0
  526. package/src/testing/plugin.ts +25 -0
  527. package/src/testing/pull-request-13348.ts +104 -0
  528. package/src/testing/pull-request-13363.patch +2981 -0
  529. package/src/translations.ts +135 -63
  530. package/src/types/GitHubCapabilities.ts +27 -0
  531. package/src/types/GitHubEvents.ts +16 -0
  532. package/src/types/GitHubOperation.ts +397 -0
  533. package/src/types/PullRequestsView.ts +45 -0
  534. package/src/types/Walkthrough.test.ts +75 -0
  535. package/src/types/Walkthrough.ts +66 -0
  536. package/src/types/index.ts +8 -0
  537. package/src/vite-env.d.ts +15 -0
  538. package/src/walkthrough/fill.test.ts +337 -0
  539. package/src/walkthrough/fill.ts +246 -0
  540. package/src/walkthrough/generate.test.ts +219 -0
  541. package/src/walkthrough/generate.ts +248 -0
  542. package/src/walkthrough/generated.test.ts +70 -0
  543. package/src/walkthrough/generated.ts +70 -0
  544. package/src/walkthrough/headings.test.ts +40 -0
  545. package/src/walkthrough/headings.ts +39 -0
  546. package/src/walkthrough/index.ts +12 -0
  547. package/src/walkthrough/patch.ts +154 -0
  548. package/src/walkthrough/plan.test.ts +178 -0
  549. package/src/walkthrough/plan.ts +251 -0
  550. package/src/walkthrough/prompt.test.ts +100 -0
  551. package/src/walkthrough/prompt.ts +147 -0
  552. package/src/walkthrough/score.test.ts +272 -0
  553. package/src/walkthrough/score.ts +430 -0
  554. package/README.md +0 -15
  555. package/dist/lib/browser/chunk-S4MPSBA5.mjs +0 -21
  556. package/dist/lib/browser/chunk-S4MPSBA5.mjs.map +0 -7
  557. package/dist/lib/browser/index.css +0 -7
  558. package/dist/lib/browser/index.css.map +0 -7
  559. package/dist/lib/browser/index.mjs +0 -1535
  560. package/dist/lib/browser/index.mjs.map +0 -7
  561. package/dist/lib/browser/meta.json +0 -1
  562. package/dist/lib/browser/meta.mjs +0 -11
  563. package/dist/lib/browser/meta.mjs.map +0 -7
  564. package/dist/types/src/GithubPlugin.d.ts +0 -4
  565. package/dist/types/src/GithubPlugin.d.ts.map +0 -1
  566. package/dist/types/src/components/EmbeddedMain/EmbeddedMain.d.ts +0 -4
  567. package/dist/types/src/components/EmbeddedMain/EmbeddedMain.d.ts.map +0 -1
  568. package/dist/types/src/components/EmbeddedMain/GfmPreview.d.ts +0 -9
  569. package/dist/types/src/components/EmbeddedMain/GfmPreview.d.ts.map +0 -1
  570. package/dist/types/src/components/EmbeddedMain/index.d.ts +0 -2
  571. package/dist/types/src/components/EmbeddedMain/index.d.ts.map +0 -1
  572. package/dist/types/src/components/ExportDialog.d.ts +0 -8
  573. package/dist/types/src/components/ExportDialog.d.ts.map +0 -1
  574. package/dist/types/src/components/GithubApiProviders/GitHubSettings.d.ts +0 -3
  575. package/dist/types/src/components/GithubApiProviders/GitHubSettings.d.ts.map +0 -1
  576. package/dist/types/src/components/GithubApiProviders/OctokitProvider.d.ts +0 -15
  577. package/dist/types/src/components/GithubApiProviders/OctokitProvider.d.ts.map +0 -1
  578. package/dist/types/src/components/GithubApiProviders/index.d.ts +0 -3
  579. package/dist/types/src/components/GithubApiProviders/index.d.ts.map +0 -1
  580. package/dist/types/src/components/GithubEchoResolverProviders/DocumentTreeItem.d.ts +0 -6
  581. package/dist/types/src/components/GithubEchoResolverProviders/DocumentTreeItem.d.ts.map +0 -1
  582. package/dist/types/src/components/GithubEchoResolverProviders/ResolverContext.d.ts +0 -7
  583. package/dist/types/src/components/GithubEchoResolverProviders/ResolverContext.d.ts.map +0 -1
  584. package/dist/types/src/components/GithubEchoResolverProviders/ResolverDialog.d.ts +0 -6
  585. package/dist/types/src/components/GithubEchoResolverProviders/ResolverDialog.d.ts.map +0 -1
  586. package/dist/types/src/components/GithubEchoResolverProviders/ResolverProps.d.ts +0 -16
  587. package/dist/types/src/components/GithubEchoResolverProviders/ResolverProps.d.ts.map +0 -1
  588. package/dist/types/src/components/GithubEchoResolverProviders/ResolverTree.d.ts +0 -3
  589. package/dist/types/src/components/GithubEchoResolverProviders/ResolverTree.d.ts.map +0 -1
  590. package/dist/types/src/components/GithubEchoResolverProviders/SpacePickerTreeItem.d.ts +0 -11
  591. package/dist/types/src/components/GithubEchoResolverProviders/SpacePickerTreeItem.d.ts.map +0 -1
  592. package/dist/types/src/components/GithubEchoResolverProviders/index.d.ts +0 -3
  593. package/dist/types/src/components/GithubEchoResolverProviders/index.d.ts.map +0 -1
  594. package/dist/types/src/components/GithubEchoResolverProviders/spaceResolvers.d.ts +0 -6
  595. package/dist/types/src/components/GithubEchoResolverProviders/spaceResolvers.d.ts.map +0 -1
  596. package/dist/types/src/components/ImportDialog.d.ts +0 -7
  597. package/dist/types/src/components/ImportDialog.d.ts.map +0 -1
  598. package/dist/types/src/components/Issue.d.ts +0 -5
  599. package/dist/types/src/components/Issue.d.ts.map +0 -1
  600. package/dist/types/src/components/Loading/Loading.d.ts +0 -15
  601. package/dist/types/src/components/Loading/Loading.d.ts.map +0 -1
  602. package/dist/types/src/components/Loading/Loading.stories.d.ts +0 -40
  603. package/dist/types/src/components/Loading/Loading.stories.d.ts.map +0 -1
  604. package/dist/types/src/components/Loading/index.d.ts +0 -2
  605. package/dist/types/src/components/Loading/index.d.ts.map +0 -1
  606. package/dist/types/src/components/MarkdownActions.d.ts +0 -7
  607. package/dist/types/src/components/MarkdownActions.d.ts.map +0 -1
  608. package/dist/types/src/components/UrlDialog.d.ts +0 -6
  609. package/dist/types/src/components/UrlDialog.d.ts.map +0 -1
  610. package/dist/types/src/hooks/useDocGhId.d.ts +0 -6
  611. package/dist/types/src/hooks/useDocGhId.d.ts.map +0 -1
  612. package/dist/types/src/hooks/useGhIdFromUrl.d.ts +0 -2
  613. package/dist/types/src/hooks/useGhIdFromUrl.d.ts.map +0 -1
  614. package/dist/types/src/types.d.ts +0 -30
  615. package/dist/types/src/types.d.ts.map +0 -1
  616. package/src/GithubPlugin.tsx +0 -127
  617. package/src/components/EmbeddedMain/EmbeddedMain.tsx +0 -294
  618. package/src/components/EmbeddedMain/GfmPreview.tsx +0 -110
  619. package/src/components/EmbeddedMain/embedded.css +0 -3
  620. package/src/components/EmbeddedMain/index.ts +0 -5
  621. package/src/components/ExportDialog.tsx +0 -157
  622. package/src/components/GithubApiProviders/GitHubSettings.tsx +0 -72
  623. package/src/components/GithubApiProviders/OctokitProvider.tsx +0 -60
  624. package/src/components/GithubApiProviders/index.ts +0 -6
  625. package/src/components/GithubEchoResolverProviders/DocumentTreeItem.tsx +0 -26
  626. package/src/components/GithubEchoResolverProviders/ResolverContext.tsx +0 -137
  627. package/src/components/GithubEchoResolverProviders/ResolverDialog.tsx +0 -34
  628. package/src/components/GithubEchoResolverProviders/ResolverProps.ts +0 -23
  629. package/src/components/GithubEchoResolverProviders/ResolverTree.tsx +0 -86
  630. package/src/components/GithubEchoResolverProviders/SpacePickerTreeItem.tsx +0 -105
  631. package/src/components/GithubEchoResolverProviders/index.ts +0 -6
  632. package/src/components/GithubEchoResolverProviders/spaceResolvers.ts +0 -86
  633. package/src/components/ImportDialog.tsx +0 -72
  634. package/src/components/Issue.tsx +0 -62
  635. package/src/components/Loading/Loading.stories.tsx +0 -32
  636. package/src/components/Loading/Loading.tsx +0 -70
  637. package/src/components/Loading/index.ts +0 -5
  638. package/src/components/MarkdownActions.tsx +0 -136
  639. package/src/components/UrlDialog.tsx +0 -52
  640. package/src/hooks/useDocGhId.ts +0 -38
  641. package/src/hooks/useGhIdFromUrl.ts +0 -26
  642. package/src/types.ts +0 -51
@@ -0,0 +1,54 @@
1
+ import { t as PLUGIN_default } from "./chunk-PLUGIN.mjs";
2
+ import * as ActivationEvents from "@dxos/app-framework/ActivationEvents";
3
+ import * as Capability from "@dxos/app-framework/Capability";
4
+ import * as AppCapability from "@dxos/app-toolkit/AppCapability";
5
+ import * as ConnectorEvents from "@dxos/plugin-connector/ConnectorEvents";
6
+ import * as ConnectorSpec from "@dxos/plugin-connector/ConnectorSpec";
7
+ import * as CrxCapabilities from "@dxos/plugin-crx/CrxCapabilities";
8
+ import * as CrxEvents from "@dxos/plugin-crx/CrxEvents";
9
+ import { translations } from "#translations";
10
+ import * as MarkdownCapabilities from "@dxos/plugin-markdown/MarkdownCapabilities";
11
+ import * as MarkdownEvents from "@dxos/plugin-markdown/MarkdownEvents";
12
+ import * as PreviewCapabilities from "@dxos/plugin-preview/PreviewCapabilities";
13
+ import * as PreviewEvents from "@dxos/plugin-preview/PreviewEvents";
14
+ import { meta } from "#meta";
15
+ //#region src/capabilities/index.ts
16
+ var Connector = Capability.lazyModule("GitHubConnector", {
17
+ provides: [ConnectorSpec.Connector],
18
+ activatesOn: ConnectorEvents.Start
19
+ }, () => import("./chunk-connector.mjs"));
20
+ var MarkdownExtension = Capability.lazyModule("MarkdownExtension", {
21
+ provides: [MarkdownCapabilities.ExtensionProvider],
22
+ activatesOn: MarkdownEvents.Start,
23
+ environments: ["browser", "tauri"]
24
+ }, () => import("./chunk-markdown-extension.mjs"));
25
+ var LinkResolver = Capability.lazyModule("LinkResolver", {
26
+ provides: [PreviewCapabilities.LinkResolver],
27
+ activatesOn: PreviewEvents.Start,
28
+ environments: ["browser", "tauri"]
29
+ }, () => import("./chunk-link-resolver.mjs"));
30
+ var AppGraphBuilder = AppCapability.appGraphBuilder(() => import("./chunk-app-graph-builder.mjs"), { environments: ["browser", "tauri"] });
31
+ var PageActionProvider = Capability.lazyModule("PageActionProvider", {
32
+ provides: [CrxCapabilities.PageAction],
33
+ activatesOn: CrxEvents.Start
34
+ }, () => import("./chunk-page-action.mjs"));
35
+ var OperationHandler = AppCapability.operationHandler(() => import("./chunk-operation-handler.mjs"), { activatesOn: ActivationEvents.Idle });
36
+ var Schema = AppCapability.schema(() => import("./chunk-schema.mjs"));
37
+ var SkillDefinition = AppCapability.skillDefinition(() => import("./chunk-skill-definition.mjs"));
38
+ var ReactSurface = AppCapability.surface(() => import("./chunk-react-surface.mjs").then((n) => n.t), { roles: [
39
+ "org.dxos.role.cardContent",
40
+ "org.dxos.role.cardMenu",
41
+ "org.dxos.role.article",
42
+ "org.dxos.role.dialog"
43
+ ] });
44
+ var PluginAsset = AppCapability.pluginAsset({
45
+ pluginId: meta.profile.key,
46
+ path: "PLUGIN.mdl",
47
+ content: PLUGIN_default,
48
+ mimeType: "application/x-mdl"
49
+ });
50
+ var Translations = AppCapability.translations(translations);
51
+ //#endregion
52
+ export { AppGraphBuilder, Connector, LinkResolver, MarkdownExtension, OperationHandler, PageActionProvider, PluginAsset, ReactSurface, Schema, SkillDefinition, Translations };
53
+
54
+ //# sourceMappingURL=capabilities.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capabilities.mjs","names":[],"sources":["../../src/capabilities/index.ts"],"sourcesContent":["//\n// Copyright 2026 DXOS.org\n//\n\nimport * as ActivationEvents from '@dxos/app-framework/ActivationEvents';\nimport * as Capability from '@dxos/app-framework/Capability';\nimport * as AppCapability from '@dxos/app-toolkit/AppCapability';\nimport * as ConnectorEvents from '@dxos/plugin-connector/ConnectorEvents';\nimport * as ConnectorSpec from '@dxos/plugin-connector/ConnectorSpec';\nimport * as CrxCapabilities from '@dxos/plugin-crx/CrxCapabilities';\nimport * as CrxEvents from '@dxos/plugin-crx/CrxEvents';\nimport * as MarkdownCapabilities from '@dxos/plugin-markdown/MarkdownCapabilities';\nimport * as MarkdownEvents from '@dxos/plugin-markdown/MarkdownEvents';\nimport * as PreviewCapabilities from '@dxos/plugin-preview/PreviewCapabilities';\nimport * as PreviewEvents from '@dxos/plugin-preview/PreviewEvents';\n\nimport { meta } from '#meta';\nimport { translations } from '#translations';\n\n// eslint-disable-next-line import/no-relative-packages\nimport pluginSpec from '../../PLUGIN.mdl?raw';\n\nexport const Connector = Capability.lazyModule(\n 'GitHubConnector',\n { provides: [ConnectorSpec.Connector], activatesOn: ConnectorEvents.Start },\n () => import('./connector.ts'),\n);\n// Browser-only: the editor it decorates and the popover it answers render nowhere else.\nexport const MarkdownExtension = Capability.lazyModule(\n 'MarkdownExtension',\n {\n provides: [MarkdownCapabilities.ExtensionProvider],\n activatesOn: MarkdownEvents.Start,\n environments: ['browser', 'tauri'],\n },\n () => import('./markdown-extension.ts'),\n);\nexport const LinkResolver = Capability.lazyModule(\n 'LinkResolver',\n {\n provides: [PreviewCapabilities.LinkResolver],\n activatesOn: PreviewEvents.Start,\n environments: ['browser', 'tauri'],\n },\n () => import('./link-resolver.ts'),\n);\n// Narrower than the `appGraphBuilder` family default: the action opens a dialog, which means\n// nothing without an app shell.\nexport const AppGraphBuilder = AppCapability.appGraphBuilder(() => import('./app-graph-builder.ts'), {\n environments: ['browser', 'tauri'],\n});\nexport const PageActionProvider = Capability.lazyModule(\n 'PageActionProvider',\n { provides: [CrxCapabilities.PageAction], activatesOn: CrxEvents.Start },\n () => import('./page-action.ts'),\n);\nexport const OperationHandler = AppCapability.operationHandler(() => import('./operation-handler.ts'), {\n activatesOn: ActivationEvents.Idle,\n});\nexport const Schema = AppCapability.schema(() => import('./schema.ts'));\nexport const SkillDefinition = AppCapability.skillDefinition(() => import('./skill-definition.ts'));\nexport const ReactSurface = AppCapability.surface(() => import('./react-surface.ts'), {\n roles: ['org.dxos.role.cardContent', 'org.dxos.role.cardMenu', 'org.dxos.role.article', 'org.dxos.role.dialog'],\n});\nexport const PluginAsset = AppCapability.pluginAsset({\n pluginId: meta.profile.key,\n path: 'PLUGIN.mdl',\n content: pluginSpec,\n mimeType: 'application/x-mdl',\n});\nexport const Translations = AppCapability.translations(translations);\n"],"mappings":";;;;;;;;;;;;;;;AAsBA,IAAa,YAAY,WAAW,WAClC,mBACA;CAAE,UAAU,CAAC,cAAc,SAAS;CAAG,aAAa,gBAAgB;AAAM,SACpE,OAAO,wBACf;AAEA,IAAa,oBAAoB,WAAW,WAC1C,qBACA;CACE,UAAU,CAAC,qBAAqB,iBAAiB;CACjD,aAAa,eAAe;CAC5B,cAAc,CAAC,WAAW,OAAO;AACnC,SACM,OAAO,iCACf;AACA,IAAa,eAAe,WAAW,WACrC,gBACA;CACE,UAAU,CAAC,oBAAoB,YAAY;CAC3C,aAAa,cAAc;CAC3B,cAAc,CAAC,WAAW,OAAO;AACnC,SACM,OAAO,4BACf;AAGA,IAAa,kBAAkB,cAAc,sBAAsB,OAAO,kCAA2B,EACnG,cAAc,CAAC,WAAW,OAAO,EACnC,CAAC;AACD,IAAa,qBAAqB,WAAW,WAC3C,sBACA;CAAE,UAAU,CAAC,gBAAgB,UAAU;CAAG,aAAa,UAAU;AAAM,SACjE,OAAO,0BACf;AACA,IAAa,mBAAmB,cAAc,uBAAuB,OAAO,kCAA2B,EACrG,aAAa,iBAAiB,KAChC,CAAC;AACD,IAAa,SAAS,cAAc,aAAa,OAAO,qBAAc;AACtE,IAAa,kBAAkB,cAAc,sBAAsB,OAAO,+BAAwB;AAClG,IAAa,eAAe,cAAc,cAAc,OAAO,4BAAA,CAAA,MAAA,MAAA,EAAA,CAAA,GAAuB,EACpF,OAAO;CAAC;CAA6B;CAA0B;CAAyB;AAAsB,EAChH,CAAC;AACD,IAAa,cAAc,cAAc,YAAY;CACnD,UAAU,KAAK,QAAQ;CACvB,MAAM;CACN,SAAS;CACT,UAAU;AACZ,CAAC;AACD,IAAa,eAAe,cAAc,aAAa,YAAY"}
@@ -0,0 +1,30 @@
1
+ import * as ActivationEvents from "@dxos/app-framework/ActivationEvents";
2
+ import * as Capability from "@dxos/app-framework/Capability";
3
+ import * as AppCapability from "@dxos/app-toolkit/AppCapability";
4
+ import * as ConnectorEvents from "@dxos/plugin-connector/ConnectorEvents";
5
+ import * as ConnectorSpec from "@dxos/plugin-connector/ConnectorSpec";
6
+ import * as CrxCapabilities from "@dxos/plugin-crx/CrxCapabilities";
7
+ import * as CrxEvents from "@dxos/plugin-crx/CrxEvents";
8
+ import { translations } from "#translations";
9
+ //#region src/capabilities/gen/node.ts
10
+ var Connector = Capability.lazyModule("GitHubConnector", {
11
+ provides: [ConnectorSpec.Connector],
12
+ activatesOn: ConnectorEvents.Start
13
+ }, () => import("./chunk-connector.mjs"));
14
+ var PageActionProvider = Capability.lazyModule("PageActionProvider", {
15
+ provides: [CrxCapabilities.PageAction],
16
+ activatesOn: CrxEvents.Start
17
+ }, () => import("./chunk-page-action.mjs"));
18
+ var OperationHandler = AppCapability.operationHandler(() => import("./chunk-operation-handler.mjs"), { activatesOn: ActivationEvents.Idle });
19
+ var Schema = AppCapability.schema(() => import("./chunk-schema.mjs"));
20
+ var SkillDefinition = AppCapability.skillDefinition(() => import("./chunk-skill-definition.mjs"));
21
+ var Translations = AppCapability.translations(translations);
22
+ var AppGraphBuilder = void 0;
23
+ var LinkResolver = void 0;
24
+ var MarkdownExtension = void 0;
25
+ var PluginAsset = void 0;
26
+ var ReactSurface = void 0;
27
+ //#endregion
28
+ export { AppGraphBuilder, Connector, LinkResolver, MarkdownExtension, OperationHandler, PageActionProvider, PluginAsset, ReactSurface, Schema, SkillDefinition, Translations };
29
+
30
+ //# sourceMappingURL=capabilities.node.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capabilities.node.mjs","names":[],"sources":["../../src/capabilities/gen/node.ts"],"sourcesContent":["//\n// Copyright 2026 DXOS.org\n//\n\n// GENERATED by dx-plugin — do not edit. Sliced from ../index.ts for the 'node' condition.\n\nimport * as ActivationEvents from '@dxos/app-framework/ActivationEvents';\nimport * as Capability from '@dxos/app-framework/Capability';\nimport * as AppCapability from '@dxos/app-toolkit/AppCapability';\nimport * as ConnectorEvents from '@dxos/plugin-connector/ConnectorEvents';\nimport * as ConnectorSpec from '@dxos/plugin-connector/ConnectorSpec';\nimport * as CrxCapabilities from '@dxos/plugin-crx/CrxCapabilities';\nimport * as CrxEvents from '@dxos/plugin-crx/CrxEvents';\n\nimport { translations } from '#translations';\n\nexport const Connector = Capability.lazyModule(\n 'GitHubConnector',\n { provides: [ConnectorSpec.Connector], activatesOn: ConnectorEvents.Start },\n () => import('../connector.ts'),\n);\n\nexport const PageActionProvider = Capability.lazyModule(\n 'PageActionProvider',\n { provides: [CrxCapabilities.PageAction], activatesOn: CrxEvents.Start },\n () => import('../page-action.ts'),\n);\n\nexport const OperationHandler = AppCapability.operationHandler(() => import('../operation-handler.ts'), {\n activatesOn: ActivationEvents.Idle,\n});\n\nexport const Schema = AppCapability.schema(() => import('../schema.ts'));\n\nexport const SkillDefinition = AppCapability.skillDefinition(() => import('../skill-definition.ts'));\n\nexport const Translations = AppCapability.translations(translations);\n\nexport const AppGraphBuilder = undefined;\nexport const LinkResolver = undefined;\nexport const MarkdownExtension = undefined;\nexport const PluginAsset = undefined;\nexport const ReactSurface = undefined;\n"],"mappings":";;;;;;;;;AAgBA,IAAa,YAAY,WAAW,WAClC,mBACA;CAAE,UAAU,CAAC,cAAc,SAAS;CAAG,aAAa,gBAAgB;AAAM,SACpE,OAAO,wBACf;AAEA,IAAa,qBAAqB,WAAW,WAC3C,sBACA;CAAE,UAAU,CAAC,gBAAgB,UAAU;CAAG,aAAa,UAAU;AAAM,SACjE,OAAO,0BACf;AAEA,IAAa,mBAAmB,cAAc,uBAAuB,OAAO,kCAA4B,EACtG,aAAa,iBAAiB,KAChC,CAAC;AAED,IAAa,SAAS,cAAc,aAAa,OAAO,qBAAe;AAEvE,IAAa,kBAAkB,cAAc,sBAAsB,OAAO,+BAAyB;AAEnG,IAAa,eAAe,cAAc,aAAa,YAAY;AAEnE,IAAa,kBAAkB,KAAA;AAC/B,IAAa,eAAe,KAAA;AAC5B,IAAa,oBAAoB,KAAA;AACjC,IAAa,cAAc,KAAA;AAC3B,IAAa,eAAe,KAAA"}
@@ -0,0 +1,54 @@
1
+ import { t as PLUGIN_default } from "./chunk-PLUGIN.mjs";
2
+ import * as ActivationEvents from "@dxos/app-framework/ActivationEvents";
3
+ import * as Capability from "@dxos/app-framework/Capability";
4
+ import * as AppCapability from "@dxos/app-toolkit/AppCapability";
5
+ import * as ConnectorEvents from "@dxos/plugin-connector/ConnectorEvents";
6
+ import * as ConnectorSpec from "@dxos/plugin-connector/ConnectorSpec";
7
+ import * as CrxCapabilities from "@dxos/plugin-crx/CrxCapabilities";
8
+ import * as CrxEvents from "@dxos/plugin-crx/CrxEvents";
9
+ import { translations } from "#translations";
10
+ import * as MarkdownCapabilities from "@dxos/plugin-markdown/MarkdownCapabilities";
11
+ import * as MarkdownEvents from "@dxos/plugin-markdown/MarkdownEvents";
12
+ import * as PreviewCapabilities from "@dxos/plugin-preview/PreviewCapabilities";
13
+ import * as PreviewEvents from "@dxos/plugin-preview/PreviewEvents";
14
+ import { meta } from "#meta";
15
+ //#region src/capabilities/gen/tauri.ts
16
+ var Connector = Capability.lazyModule("GitHubConnector", {
17
+ provides: [ConnectorSpec.Connector],
18
+ activatesOn: ConnectorEvents.Start
19
+ }, () => import("./chunk-connector.mjs"));
20
+ var MarkdownExtension = Capability.lazyModule("MarkdownExtension", {
21
+ provides: [MarkdownCapabilities.ExtensionProvider],
22
+ activatesOn: MarkdownEvents.Start,
23
+ environments: ["browser", "tauri"]
24
+ }, () => import("./chunk-markdown-extension.mjs"));
25
+ var LinkResolver = Capability.lazyModule("LinkResolver", {
26
+ provides: [PreviewCapabilities.LinkResolver],
27
+ activatesOn: PreviewEvents.Start,
28
+ environments: ["browser", "tauri"]
29
+ }, () => import("./chunk-link-resolver.mjs"));
30
+ var AppGraphBuilder = AppCapability.appGraphBuilder(() => import("./chunk-app-graph-builder.mjs"), { environments: ["browser", "tauri"] });
31
+ var PageActionProvider = Capability.lazyModule("PageActionProvider", {
32
+ provides: [CrxCapabilities.PageAction],
33
+ activatesOn: CrxEvents.Start
34
+ }, () => import("./chunk-page-action.mjs"));
35
+ var OperationHandler = AppCapability.operationHandler(() => import("./chunk-operation-handler.mjs"), { activatesOn: ActivationEvents.Idle });
36
+ var Schema = AppCapability.schema(() => import("./chunk-schema.mjs"));
37
+ var SkillDefinition = AppCapability.skillDefinition(() => import("./chunk-skill-definition.mjs"));
38
+ var ReactSurface = AppCapability.surface(() => import("./chunk-react-surface.mjs").then((n) => n.t), { roles: [
39
+ "org.dxos.role.cardContent",
40
+ "org.dxos.role.cardMenu",
41
+ "org.dxos.role.article",
42
+ "org.dxos.role.dialog"
43
+ ] });
44
+ var PluginAsset = AppCapability.pluginAsset({
45
+ pluginId: meta.profile.key,
46
+ path: "PLUGIN.mdl",
47
+ content: PLUGIN_default,
48
+ mimeType: "application/x-mdl"
49
+ });
50
+ var Translations = AppCapability.translations(translations);
51
+ //#endregion
52
+ export { AppGraphBuilder, Connector, LinkResolver, MarkdownExtension, OperationHandler, PageActionProvider, PluginAsset, ReactSurface, Schema, SkillDefinition, Translations };
53
+
54
+ //# sourceMappingURL=capabilities.tauri.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capabilities.tauri.mjs","names":[],"sources":["../../src/capabilities/gen/tauri.ts"],"sourcesContent":["//\n// Copyright 2026 DXOS.org\n//\n\n// GENERATED by dx-plugin — do not edit. Sliced from ../index.ts for the 'tauri' condition.\n\nimport * as ActivationEvents from '@dxos/app-framework/ActivationEvents';\nimport * as Capability from '@dxos/app-framework/Capability';\nimport * as AppCapability from '@dxos/app-toolkit/AppCapability';\nimport * as ConnectorEvents from '@dxos/plugin-connector/ConnectorEvents';\nimport * as ConnectorSpec from '@dxos/plugin-connector/ConnectorSpec';\nimport * as CrxCapabilities from '@dxos/plugin-crx/CrxCapabilities';\nimport * as CrxEvents from '@dxos/plugin-crx/CrxEvents';\nimport * as MarkdownCapabilities from '@dxos/plugin-markdown/MarkdownCapabilities';\nimport * as MarkdownEvents from '@dxos/plugin-markdown/MarkdownEvents';\nimport * as PreviewCapabilities from '@dxos/plugin-preview/PreviewCapabilities';\nimport * as PreviewEvents from '@dxos/plugin-preview/PreviewEvents';\n\nimport { meta } from '#meta';\nimport { translations } from '#translations';\n\nimport pluginSpec from '../../../PLUGIN.mdl?raw';\n\nexport const Connector = Capability.lazyModule(\n 'GitHubConnector',\n { provides: [ConnectorSpec.Connector], activatesOn: ConnectorEvents.Start },\n () => import('../connector.ts'),\n);\n\n// Browser-only: the editor it decorates and the popover it answers render nowhere else.\nexport const MarkdownExtension = Capability.lazyModule(\n 'MarkdownExtension',\n {\n provides: [MarkdownCapabilities.ExtensionProvider],\n activatesOn: MarkdownEvents.Start,\n environments: ['browser', 'tauri'],\n },\n () => import('../markdown-extension.ts'),\n);\n\nexport const LinkResolver = Capability.lazyModule(\n 'LinkResolver',\n {\n provides: [PreviewCapabilities.LinkResolver],\n activatesOn: PreviewEvents.Start,\n environments: ['browser', 'tauri'],\n },\n () => import('../link-resolver.ts'),\n);\n\n// Narrower than the `appGraphBuilder` family default: the action opens a dialog, which means\n// nothing without an app shell.\nexport const AppGraphBuilder = AppCapability.appGraphBuilder(() => import('../app-graph-builder.ts'), {\n environments: ['browser', 'tauri'],\n});\n\nexport const PageActionProvider = Capability.lazyModule(\n 'PageActionProvider',\n { provides: [CrxCapabilities.PageAction], activatesOn: CrxEvents.Start },\n () => import('../page-action.ts'),\n);\n\nexport const OperationHandler = AppCapability.operationHandler(() => import('../operation-handler.ts'), {\n activatesOn: ActivationEvents.Idle,\n});\n\nexport const Schema = AppCapability.schema(() => import('../schema.ts'));\n\nexport const SkillDefinition = AppCapability.skillDefinition(() => import('../skill-definition.ts'));\n\nexport const ReactSurface = AppCapability.surface(() => import('../react-surface.ts'), {\n roles: ['org.dxos.role.cardContent', 'org.dxos.role.cardMenu', 'org.dxos.role.article', 'org.dxos.role.dialog'],\n});\n\nexport const PluginAsset = AppCapability.pluginAsset({\n pluginId: meta.profile.key,\n path: 'PLUGIN.mdl',\n content: pluginSpec,\n mimeType: 'application/x-mdl',\n});\n\nexport const Translations = AppCapability.translations(translations);\n"],"mappings":";;;;;;;;;;;;;;;AAuBA,IAAa,YAAY,WAAW,WAClC,mBACA;CAAE,UAAU,CAAC,cAAc,SAAS;CAAG,aAAa,gBAAgB;AAAM,SACpE,OAAO,wBACf;AAGA,IAAa,oBAAoB,WAAW,WAC1C,qBACA;CACE,UAAU,CAAC,qBAAqB,iBAAiB;CACjD,aAAa,eAAe;CAC5B,cAAc,CAAC,WAAW,OAAO;AACnC,SACM,OAAO,iCACf;AAEA,IAAa,eAAe,WAAW,WACrC,gBACA;CACE,UAAU,CAAC,oBAAoB,YAAY;CAC3C,aAAa,cAAc;CAC3B,cAAc,CAAC,WAAW,OAAO;AACnC,SACM,OAAO,4BACf;AAIA,IAAa,kBAAkB,cAAc,sBAAsB,OAAO,kCAA4B,EACpG,cAAc,CAAC,WAAW,OAAO,EACnC,CAAC;AAED,IAAa,qBAAqB,WAAW,WAC3C,sBACA;CAAE,UAAU,CAAC,gBAAgB,UAAU;CAAG,aAAa,UAAU;AAAM,SACjE,OAAO,0BACf;AAEA,IAAa,mBAAmB,cAAc,uBAAuB,OAAO,kCAA4B,EACtG,aAAa,iBAAiB,KAChC,CAAC;AAED,IAAa,SAAS,cAAc,aAAa,OAAO,qBAAe;AAEvE,IAAa,kBAAkB,cAAc,sBAAsB,OAAO,+BAAyB;AAEnG,IAAa,eAAe,cAAc,cAAc,OAAO,4BAAA,CAAA,MAAA,MAAA,EAAA,CAAA,GAAwB,EACrF,OAAO;CAAC;CAA6B;CAA0B;CAAyB;AAAsB,EAChH,CAAC;AAED,IAAa,cAAc,cAAc,YAAY;CACnD,UAAU,KAAK,QAAQ;CACvB,MAAM;CACN,SAAS;CACT,UAAU;AACZ,CAAC;AAED,IAAa,eAAe,cAAc,aAAa,YAAY"}
@@ -0,0 +1,30 @@
1
+ import * as ActivationEvents from "@dxos/app-framework/ActivationEvents";
2
+ import * as Capability from "@dxos/app-framework/Capability";
3
+ import * as AppCapability from "@dxos/app-toolkit/AppCapability";
4
+ import * as ConnectorEvents from "@dxos/plugin-connector/ConnectorEvents";
5
+ import * as ConnectorSpec from "@dxos/plugin-connector/ConnectorSpec";
6
+ import * as CrxCapabilities from "@dxos/plugin-crx/CrxCapabilities";
7
+ import * as CrxEvents from "@dxos/plugin-crx/CrxEvents";
8
+ import { translations } from "#translations";
9
+ //#region src/capabilities/gen/workerd.ts
10
+ var Connector = Capability.lazyModule("GitHubConnector", {
11
+ provides: [ConnectorSpec.Connector],
12
+ activatesOn: ConnectorEvents.Start
13
+ }, () => import("./chunk-connector.mjs"));
14
+ var PageActionProvider = Capability.lazyModule("PageActionProvider", {
15
+ provides: [CrxCapabilities.PageAction],
16
+ activatesOn: CrxEvents.Start
17
+ }, () => import("./chunk-page-action.mjs"));
18
+ var OperationHandler = AppCapability.operationHandler(() => import("./chunk-operation-handler.mjs"), { activatesOn: ActivationEvents.Idle });
19
+ var Schema = AppCapability.schema(() => import("./chunk-schema.mjs"));
20
+ var SkillDefinition = AppCapability.skillDefinition(() => import("./chunk-skill-definition.mjs"));
21
+ var Translations = AppCapability.translations(translations);
22
+ var AppGraphBuilder = void 0;
23
+ var LinkResolver = void 0;
24
+ var MarkdownExtension = void 0;
25
+ var PluginAsset = void 0;
26
+ var ReactSurface = void 0;
27
+ //#endregion
28
+ export { AppGraphBuilder, Connector, LinkResolver, MarkdownExtension, OperationHandler, PageActionProvider, PluginAsset, ReactSurface, Schema, SkillDefinition, Translations };
29
+
30
+ //# sourceMappingURL=capabilities.workerd.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capabilities.workerd.mjs","names":[],"sources":["../../src/capabilities/gen/workerd.ts"],"sourcesContent":["//\n// Copyright 2026 DXOS.org\n//\n\n// GENERATED by dx-plugin — do not edit. Sliced from ../index.ts for the 'workerd' condition.\n\nimport * as ActivationEvents from '@dxos/app-framework/ActivationEvents';\nimport * as Capability from '@dxos/app-framework/Capability';\nimport * as AppCapability from '@dxos/app-toolkit/AppCapability';\nimport * as ConnectorEvents from '@dxos/plugin-connector/ConnectorEvents';\nimport * as ConnectorSpec from '@dxos/plugin-connector/ConnectorSpec';\nimport * as CrxCapabilities from '@dxos/plugin-crx/CrxCapabilities';\nimport * as CrxEvents from '@dxos/plugin-crx/CrxEvents';\n\nimport { translations } from '#translations';\n\nexport const Connector = Capability.lazyModule(\n 'GitHubConnector',\n { provides: [ConnectorSpec.Connector], activatesOn: ConnectorEvents.Start },\n () => import('../connector.ts'),\n);\n\nexport const PageActionProvider = Capability.lazyModule(\n 'PageActionProvider',\n { provides: [CrxCapabilities.PageAction], activatesOn: CrxEvents.Start },\n () => import('../page-action.ts'),\n);\n\nexport const OperationHandler = AppCapability.operationHandler(() => import('../operation-handler.ts'), {\n activatesOn: ActivationEvents.Idle,\n});\n\nexport const Schema = AppCapability.schema(() => import('../schema.ts'));\n\nexport const SkillDefinition = AppCapability.skillDefinition(() => import('../skill-definition.ts'));\n\nexport const Translations = AppCapability.translations(translations);\n\nexport const AppGraphBuilder = undefined;\nexport const LinkResolver = undefined;\nexport const MarkdownExtension = undefined;\nexport const PluginAsset = undefined;\nexport const ReactSurface = undefined;\n"],"mappings":";;;;;;;;;AAgBA,IAAa,YAAY,WAAW,WAClC,mBACA;CAAE,UAAU,CAAC,cAAc,SAAS;CAAG,aAAa,gBAAgB;AAAM,SACpE,OAAO,wBACf;AAEA,IAAa,qBAAqB,WAAW,WAC3C,sBACA;CAAE,UAAU,CAAC,gBAAgB,UAAU;CAAG,aAAa,UAAU;AAAM,SACjE,OAAO,0BACf;AAEA,IAAa,mBAAmB,cAAc,uBAAuB,OAAO,kCAA4B,EACtG,aAAa,iBAAiB,KAChC,CAAC;AAED,IAAa,SAAS,cAAc,aAAa,OAAO,qBAAe;AAEvE,IAAa,kBAAkB,cAAc,sBAAsB,OAAO,+BAAyB;AAEnG,IAAa,eAAe,cAAc,aAAa,YAAY;AAEnE,IAAa,kBAAkB,KAAA;AAC/B,IAAa,eAAe,KAAA;AAC5B,IAAa,oBAAoB,KAAA;AACjC,IAAa,cAAc,KAAA;AAC3B,IAAa,eAAe,KAAA"}
@@ -0,0 +1,116 @@
1
+ import { r as parsePullRequestReference } from "./chunk-github-link.mjs";
2
+ import { y as responseStatus } from "./chunk-github-api.mjs";
3
+ import { t as useOpenObject } from "./chunk-useOpenObject.mjs";
4
+ import { i as GitHubRepoInaccessibleError } from "./chunk-errors.mjs";
5
+ import { meta } from "#meta";
6
+ import { useCallback } from "react";
7
+ import { GitHubOperation } from "#types";
8
+ import * as Schema from "effect/Schema";
9
+ import * as LayoutOperation from "@dxos/app-toolkit/LayoutOperation";
10
+ import { log } from "@dxos/log";
11
+ import * as UiHooks from "@dxos/react-ui/Hooks";
12
+ import { jsx, jsxs } from "react/jsx-runtime";
13
+ import * as Hooks from "@dxos/app-framework/Hooks";
14
+ import * as ToolkitHooks from "@dxos/app-toolkit/Hooks";
15
+ import { Form } from "@dxos/react-ui-form";
16
+ import * as Dialog from "@dxos/react-ui/Dialog";
17
+ import * as SystemButton from "@dxos/react-ui/SystemButton";
18
+ //#region src/containers/ImportPullRequestDialog/ImportPullRequestDialog.tsx
19
+ var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-github/src/containers/ImportPullRequestDialog/ImportPullRequestDialog.tsx";
20
+ var ImportPullRequestForm = Schema.Struct({ reference: Schema.String.pipe(Schema.check(Schema.makeFilter((value) => parsePullRequestReference(value) !== void 0 || "Paste a pull request link or owner/repo#number.")), Schema.annotate({
21
+ title: "Pull request",
22
+ description: "https://github.com/owner/repo/pull/123 or owner/repo#123"
23
+ })) });
24
+ /**
25
+ * The status `GitHubRepoInaccessibleError` recorded, for the case the HTTP failure has already been
26
+ * folded into it and `GitHubApi.responseStatus` no longer sees a response.
27
+ */
28
+ var readStatus = (error) => {
29
+ if (!GitHubRepoInaccessibleError.is(error)) return;
30
+ const status = error.context.status;
31
+ return typeof status === "number" ? status : void 0;
32
+ };
33
+ /**
34
+ * Names the failure the user can act on. A rejected credential and a repository the connection
35
+ * cannot see both read as "not found" from the API, but only the first is fixed by reconnecting —
36
+ * and a space with no connection at all is fixed by making one.
37
+ */
38
+ var importFailureKey = (error) => {
39
+ if (!GitHubRepoInaccessibleError.is(error)) return "import-pull-request-failed.title";
40
+ if (error.context.tokenStatus === 401) return "import-pull-request-token-rejected.title";
41
+ return error.context.connected === true ? "import-pull-request-inaccessible.title" : "import-pull-request-not-connected.title";
42
+ };
43
+ /**
44
+ * Imports a pull request the user names, into the space they are working in, and opens it.
45
+ *
46
+ * The space is the active one rather than a chosen one: the command is reached from wherever the
47
+ * user already is, and a picker would ask a question they have already answered.
48
+ */
49
+ var ImportPullRequestDialog = () => {
50
+ const { t } = UiHooks.useTranslation(meta.profile.key);
51
+ const { invokePromise } = Hooks.useOperationInvoker();
52
+ const openObject = useOpenObject();
53
+ const space = ToolkitHooks.useActiveSpace();
54
+ const handleCancel = useCallback(async () => {
55
+ await invokePromise(LayoutOperation.UpdateDialog, { state: false });
56
+ }, [invokePromise]);
57
+ const handleSave = useCallback(async ({ reference }) => {
58
+ if (!space) {
59
+ await invokePromise(LayoutOperation.AddToast, {
60
+ id: `${meta.profile.key}.import-pull-request`,
61
+ icon: "ph--warning--regular",
62
+ title: ["import-pull-request-no-space.title", { ns: meta.profile.key }]
63
+ });
64
+ return;
65
+ }
66
+ const { data, error } = await invokePromise(GitHubOperation.ImportPullRequest, { reference: reference.trim() }, { spaceId: space.db.spaceId });
67
+ const pullRequest = data?.pullRequest.target;
68
+ if (error || !pullRequest) {
69
+ const status = responseStatus(error) ?? readStatus(error);
70
+ log.warn("pull request import failed", {
71
+ reference,
72
+ errorName: error?.name,
73
+ status,
74
+ err: error
75
+ }, {
76
+ "~LogMeta": "~LogMeta",
77
+ F: __dxlog_file,
78
+ L: 111,
79
+ S: void 0
80
+ });
81
+ await invokePromise(LayoutOperation.AddToast, {
82
+ id: `${meta.profile.key}.import-pull-request`,
83
+ icon: "ph--warning--regular",
84
+ title: [importFailureKey(error), { ns: meta.profile.key }],
85
+ description: status ? `${reference} — HTTP ${status}` : reference
86
+ });
87
+ return;
88
+ }
89
+ await invokePromise(LayoutOperation.UpdateDialog, { state: false });
90
+ await openObject(pullRequest);
91
+ }, [
92
+ invokePromise,
93
+ openObject,
94
+ space
95
+ ]);
96
+ return /* @__PURE__ */ jsx(Dialog.Content, { children: /* @__PURE__ */ jsxs(Form.Root, {
97
+ autoFocus: true,
98
+ schema: ImportPullRequestForm,
99
+ defaultValues: { reference: "" },
100
+ onSave: handleSave,
101
+ onCancel: handleCancel,
102
+ children: [
103
+ /* @__PURE__ */ jsxs(Dialog.Header, { children: [/* @__PURE__ */ jsx(Dialog.Title, { children: t("import-pull-request-dialog.title") }), /* @__PURE__ */ jsx(Dialog.CloseTrigger, {
104
+ asChild: true,
105
+ children: /* @__PURE__ */ jsx(SystemButton.Close, {})
106
+ })] }),
107
+ /* @__PURE__ */ jsx(Dialog.Body, { children: /* @__PURE__ */ jsx(Form.Content, { children: /* @__PURE__ */ jsx(Form.Fields, {}) }) }),
108
+ /* @__PURE__ */ jsx(Dialog.Footer, { children: /* @__PURE__ */ jsx(Form.Actions, { submitLabel: t("import-pull-request-submit.label") }) })
109
+ ]
110
+ }) });
111
+ };
112
+ ImportPullRequestDialog.displayName = "ImportPullRequestDialog";
113
+ //#endregion
114
+ export { ImportPullRequestDialog, ImportPullRequestDialog as default };
115
+
116
+ //# sourceMappingURL=chunk-ImportPullRequestDialog.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chunk-ImportPullRequestDialog.mjs","names":[],"sources":["../../src/containers/ImportPullRequestDialog/ImportPullRequestDialog.tsx"],"sourcesContent":["//\n// Copyright 2026 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\nimport React, { useCallback } from 'react';\n\nimport * as Hooks from '@dxos/app-framework/Hooks';\nimport * as ToolkitHooks from '@dxos/app-toolkit/Hooks';\nimport * as LayoutOperation from '@dxos/app-toolkit/LayoutOperation';\nimport { log } from '@dxos/log';\nimport { Form } from '@dxos/react-ui-form';\nimport * as Dialog from '@dxos/react-ui/Dialog';\nimport * as UiHooks from '@dxos/react-ui/Hooks';\nimport * as SystemButton from '@dxos/react-ui/SystemButton';\n\nimport { meta } from '#meta';\nimport { GitHubOperation } from '#types';\n\nimport { GitHubRepoInaccessibleError } from '../../errors.ts';\nimport { parsePullRequestReference } from '../../extensions/index.ts';\nimport { useOpenObject } from '../../hooks/index.ts';\nimport { GitHubApi } from '../../services/index.ts';\n\nconst ImportPullRequestForm = Schema.Struct({\n reference: Schema.String.pipe(\n // Validated here as well as in the operation: a typo should be answered by the field the user is\n // looking at, not by a toast after a round trip to GitHub.\n Schema.check(\n Schema.makeFilter(\n (value: string) =>\n parsePullRequestReference(value) !== undefined || 'Paste a pull request link or owner/repo#number.',\n ),\n ),\n Schema.annotate({ title: 'Pull request', description: 'https://github.com/owner/repo/pull/123 or owner/repo#123' }),\n ),\n});\n\ntype ImportPullRequestForm = Schema.Schema.Type<typeof ImportPullRequestForm>;\n\n/**\n * The status `GitHubRepoInaccessibleError` recorded, for the case the HTTP failure has already been\n * folded into it and `GitHubApi.responseStatus` no longer sees a response.\n */\nconst readStatus = (error: unknown): number | undefined => {\n if (!GitHubRepoInaccessibleError.is(error)) {\n return undefined;\n }\n const status = error.context.status;\n return typeof status === 'number' ? status : undefined;\n};\n\n/**\n * Names the failure the user can act on. A rejected credential and a repository the connection\n * cannot see both read as \"not found\" from the API, but only the first is fixed by reconnecting —\n * and a space with no connection at all is fixed by making one.\n */\nconst importFailureKey = (error: unknown): string => {\n if (!GitHubRepoInaccessibleError.is(error)) {\n return 'import-pull-request-failed.title';\n }\n if (error.context.tokenStatus === 401) {\n return 'import-pull-request-token-rejected.title';\n }\n return error.context.connected === true\n ? 'import-pull-request-inaccessible.title'\n : 'import-pull-request-not-connected.title';\n};\n\n/**\n * Imports a pull request the user names, into the space they are working in, and opens it.\n *\n * The space is the active one rather than a chosen one: the command is reached from wherever the\n * user already is, and a picker would ask a question they have already answered.\n */\nexport const ImportPullRequestDialog = () => {\n const { t } = UiHooks.useTranslation(meta.profile.key);\n const { invokePromise } = Hooks.useOperationInvoker();\n const openObject = useOpenObject();\n const space = ToolkitHooks.useActiveSpace();\n\n const handleCancel = useCallback(async () => {\n await invokePromise(LayoutOperation.UpdateDialog, { state: false });\n }, [invokePromise]);\n\n const handleSave = useCallback(\n async ({ reference }: ImportPullRequestForm) => {\n if (!space) {\n // The command is reachable from the root, which has no space of its own; saying so beats a\n // button that appears to do nothing.\n await invokePromise(LayoutOperation.AddToast, {\n id: `${meta.profile.key}.import-pull-request`,\n icon: 'ph--warning--regular',\n title: ['import-pull-request-no-space.title', { ns: meta.profile.key }],\n });\n return;\n }\n\n const { data, error } = await invokePromise(\n GitHubOperation.ImportPullRequest,\n { reference: reference.trim() },\n { spaceId: space.db.spaceId },\n );\n\n const pullRequest = data?.pullRequest.target;\n if (error || !pullRequest) {\n const status = GitHubApi.responseStatus(error) ?? readStatus(error);\n // A minified build serialises the invoker's error as a bare, headerless stack, so the name and\n // the HTTP status it carries are logged explicitly — without them a feedback bundle names the\n // failure without saying what it was.\n log.warn('pull request import failed', { reference, errorName: error?.name, status, err: error });\n await invokePromise(LayoutOperation.AddToast, {\n id: `${meta.profile.key}.import-pull-request`,\n icon: 'ph--warning--regular',\n title: [importFailureKey(error), { ns: meta.profile.key }],\n // The status is what separates a reference the user should re-check from a connection they\n // should repair, and it is otherwise visible only in the logs.\n description: status ? `${reference} — HTTP ${status}` : reference,\n });\n return;\n }\n\n // Closed only on success: a failed import keeps the reference the user typed, which is the\n // thing they would otherwise have to find again.\n await invokePromise(LayoutOperation.UpdateDialog, { state: false });\n await openObject(pullRequest);\n },\n [invokePromise, openObject, space],\n );\n\n return (\n <Dialog.Content>\n {/* The form spans the dialog, so its actions sit in the footer while reading the form's context. */}\n <Form.Root\n autoFocus\n schema={ImportPullRequestForm}\n defaultValues={{ reference: '' }}\n onSave={handleSave}\n onCancel={handleCancel}\n >\n <Dialog.Header>\n <Dialog.Title>{t('import-pull-request-dialog.title')}</Dialog.Title>\n <Dialog.CloseTrigger asChild>\n <SystemButton.Close />\n </Dialog.CloseTrigger>\n </Dialog.Header>\n <Dialog.Body>\n <Form.Content>\n <Form.Fields />\n </Form.Content>\n </Dialog.Body>\n <Dialog.Footer>\n <Form.Actions submitLabel={t('import-pull-request-submit.label')} />\n </Dialog.Footer>\n </Form.Root>\n </Dialog.Content>\n );\n};\n\nImportPullRequestDialog.displayName = 'ImportPullRequestDialog';\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAwBA,IAAM,wBAAwB,OAAO,OAAO,EAC1C,WAAW,OAAO,OAAO,KAGvB,OAAO,MACL,OAAO,YACJ,UACC,0BAA0B,KAAK,MAAM,KAAA,KAAa,iDACtD,CACF,GACA,OAAO,SAAS;CAAE,OAAO;CAAgB,aAAa;AAA2D,CAAC,CACpH,EACF,CAAC;;;;;AAQD,IAAM,cAAc,UAAuC;CACzD,IAAI,CAAC,4BAA4B,GAAG,KAAK,GACvC;CAEF,MAAM,SAAS,MAAM,QAAQ;CAC7B,OAAO,OAAO,WAAW,WAAW,SAAS,KAAA;AAC/C;;;;;;AAOA,IAAM,oBAAoB,UAA2B;CACnD,IAAI,CAAC,4BAA4B,GAAG,KAAK,GACvC,OAAO;CAET,IAAI,MAAM,QAAQ,gBAAgB,KAChC,OAAO;CAET,OAAO,MAAM,QAAQ,cAAc,OAC/B,2CACA;AACN;;;;;;;AAQA,IAAa,gCAAgC;CAC3C,MAAM,EAAE,MAAM,QAAQ,eAAe,KAAK,QAAQ,GAAG;CACrD,MAAM,EAAE,kBAAkB,MAAM,oBAAoB;CACpD,MAAM,aAAa,cAAc;CACjC,MAAM,QAAQ,aAAa,eAAe;CAE1C,MAAM,eAAe,YAAY,YAAY;EAC3C,MAAM,cAAc,gBAAgB,cAAc,EAAE,OAAO,MAAM,CAAC;CACpE,GAAG,CAAC,aAAa,CAAC;CAElB,MAAM,aAAa,YACjB,OAAO,EAAE,gBAAuC;EAC9C,IAAI,CAAC,OAAO;GAGV,MAAM,cAAc,gBAAgB,UAAU;IAC5C,IAAI,GAAG,KAAK,QAAQ,IAAI;IACxB,MAAM;IACN,OAAO,CAAC,sCAAsC,EAAE,IAAI,KAAK,QAAQ,IAAI,CAAC;GACxE,CAAC;GACD;EACF;EAEA,MAAM,EAAE,MAAM,UAAU,MAAM,cAC5B,gBAAgB,mBAChB,EAAE,WAAW,UAAU,KAAK,EAAE,GAC9B,EAAE,SAAS,MAAM,GAAG,QAAQ,CAC9B;EAEA,MAAM,cAAc,MAAM,YAAY;EACtC,IAAI,SAAS,CAAC,aAAa;GACzB,MAAM,SAAS,eAAyB,KAAK,KAAK,WAAW,KAAK;GAIlE,IAAI,KAAK,8BAA8B;IAAE;IAAW,WAAW,OAAO;IAAM;IAAQ,KAAK;GAAM,GAAA;IAAA,YAAA;IAAA,GAAA;IAAA,GAAA;IAAA,GAAA,KAAA;GAAA,CAAC;GAChG,MAAM,cAAc,gBAAgB,UAAU;IAC5C,IAAI,GAAG,KAAK,QAAQ,IAAI;IACxB,MAAM;IACN,OAAO,CAAC,iBAAiB,KAAK,GAAG,EAAE,IAAI,KAAK,QAAQ,IAAI,CAAC;IAGzD,aAAa,SAAS,GAAG,UAAU,UAAU,WAAW;GAC1D,CAAC;GACD;EACF;EAIA,MAAM,cAAc,gBAAgB,cAAc,EAAE,OAAO,MAAM,CAAC;EAClE,MAAM,WAAW,WAAW;CAC9B,GACA;EAAC;EAAe;EAAY;CAAK,CACnC;CAEA,OACE,oBAAC,OAAO,SAAR,EAAA,UAEE,qBAAC,KAAK,MAAN;EACE,WAAA;EACA,QAAQ;EACR,eAAe,EAAE,WAAW,GAAG;EAC/B,QAAQ;EACR,UAAU;EALZ,UAAA;GAOE,qBAAC,OAAO,QAAR,EAAA,UAAA,CACE,oBAAC,OAAO,OAAR,EAAA,UAAe,EAAE,kCAAkC,EAAgB,CAAA,GACnE,oBAAC,OAAO,cAAR;IAAqB,SAAA;IACnB,UAAA,oBAAC,aAAa,OAAd,CAAqB,CAAA;GACF,CAAA,CACR,EAAA,CAAA;GACf,oBAAC,OAAO,MAAR,EAAA,UACE,oBAAC,KAAK,SAAN,EAAA,UACE,oBAAC,KAAK,QAAN,CAAc,CAAA,EACF,CAAA,EACH,CAAA;GACb,oBAAC,OAAO,QAAR,EAAA,UACE,oBAAC,KAAK,SAAN,EAAc,aAAa,EAAE,kCAAkC,EAAI,CAAA,EACtD,CAAA;EACN;CACG,CAAA,EAAA,CAAA;AAEpB;AAEA,wBAAwB,cAAc"}
@@ -0,0 +1,6 @@
1
+ //#region PLUGIN.mdl?raw
2
+ var PLUGIN_default = "---\nid: org.dxos.plugin.github\nname: GitHubPlugin\nversion: 0.1.0\n---\n\nBidirectional GitHub integration for DXOS Composer.\n\nConnects one or more GitHub OAuth integrations to a space and keeps\norganizations, people, repositories, issues, and pull requests\nsynchronized with ECHO. Users select repositories as sync targets; owning\norganizations and their members are pulled automatically. Local edits to\nissue title, description, and open/closed status are pushed back to GitHub\nvia snapshot-diff reconciliation.\n\n## Extensions\n\nThe following extension dialects are used in this document.\nEach extension is defined in the Appendix or resolved via its URI.\n\n| Term | URI |\n|-------------|--------------------------------|\n| `type` | `org.dxos.mdl.type@1.0` |\n| `feat` | `org.dxos.mdl.feat@1.0` |\n| `scenario` | `org.dxos.mdl.scenario@1.0` |\n| `component` | `org.dxos.mdl.component@1.0` |\n| `op` | `org.dxos.mdl.op@1.1` |\n| `test` | `org.dxos.mdl.test@1.0` |\n\n## Types\n\n```mdl\ntype SyncTargetDescriptor\n desc: Lightweight descriptor returned by GetGitHubRepositories; never stored in ECHO directly.\n fields:\n id: string # stringified GitHub numeric repo id\n name: string # full_name e.g. \"acme/anvil\"\n description?: string\n```\n\n```mdl\ntype SyncOptions\n desc: Per-target sync tuning knobs stored on Integration.targets[i].options.\n fields:\n maxDaysBack?: number # pull issues/PRs updated within this many days; omit for full history\n```\n\n```mdl\ntype GitHubUser\n desc: Subset of the GitHub REST user object consumed by the sync service.\n fields:\n id: number\n login: string\n name?: string\n email?: string\n avatar_url?: string\n html_url?: string\n```\n\n```mdl\ntype GitHubOrg\n desc: Subset of the GitHub REST org object.\n fields:\n id: number\n login: string\n name?: string\n description?: string\n blog?: string\n avatar_url?: string\n html_url?: string\n```\n\n```mdl\ntype GitHubRepo\n desc: Subset of the GitHub REST repo object.\n fields:\n id: number\n name: string\n full_name: string\n description?: string\n html_url?: string\n archived?: boolean\n owner: GitHubUser # owner.login used to derive org lookup\n```\n\n```mdl\ntype GitHubIssue\n desc: Subset of the GitHub REST issue object; PRs appear here with a non-null pull_request field.\n fields:\n id: number\n number: number\n title: string\n body?: string\n state: open | closed\n assignees?: GitHubUser[]\n labels?: GitHubLabel[]\n pull_request?: GitHubPullRef # non-null → this item is a PR\n created_at?: string\n updated_at?: string\n closed_at?: string\n```\n\n```mdl\ntype GitHubLabel\n fields:\n name: string\n```\n\n```mdl\ntype GitHubPullRef\n desc: Minimal PR marker stored inline on a GitHubIssue.\n fields:\n url: string\n merged_at?: string\n```\n\n```mdl\ntype GitHubComment\n fields:\n id: number\n body?: string\n user?: GitHubUser\n created_at?: string\n updated_at?: string\n html_url?: string\n```\n\n```mdl\ntype ProjectSnapshot\n desc: Fields recorded on Integration.snapshots after each pull; used to detect local divergence on push.\n fields:\n name: string # recorded but push is intentionally disabled\n description: string\n```\n\n```mdl\ntype TaskSnapshot\n desc: Fields recorded on Integration.snapshots after each pull; used to detect local divergence on push.\n fields:\n title: string\n description: string\n status: todo | done # collapsed from GitHub open/closed\n```\n\n```mdl\ntype SyncResult\n desc: Counters returned by SyncGitHubRepositories.\n fields:\n pulled:\n organizations: number\n people: number\n projects: number\n tasks: number\n comments: number\n```\n\n## Operations\n\nDiscovery operations — read-only, no local writes.\n\n```mdl\nop GetGitHubRepositories\n key: org.dxos.operation.github.getRepositories\n desc: |\n List GitHub repositories reachable from an integration token.\n Read-only: no local objects are created. Orgs are NOT listed here;\n they are auto-pulled during SyncGitHubRepositories.\n input:\n connection: Ref<Connection> # renamed from `integration`; see plugin-connector's ConnectorSpec\n output: GetSyncTargetsOutput\n effects: [http]\n errors:\n Unauthorized: token missing or revoked\n NetworkError: transient HTTP failure after retries\n```\n\n```mdl\nop MaterializeGitHubTarget\n key: org.dxos.operation.github.materializeTarget\n desc: |\n Find-or-create the empty local root Project bound to a selected GitHub repo, keyed by the\n repo's foreign id, so a Cursor can reference it as its `spec.target`.\n input:\n connection: Ref<Connection>\n remoteTarget?: RemoteTarget\n output: { target: Ref<Obj> }\n effects: [echo:write]\n```\n\nEffectful sync operations — pull from GitHub, push diverged fields back.\n\n```mdl\nop SyncGitHubRepositories\n key: org.dxos.operation.github.syncRepositories\n desc: |\n Reconcile selected GitHub repositories plus their owning organizations,\n members, issues, PRs, and (future) comments with ECHO.\n Pull direction: upserts Organization, Person, Project, Task via foreign-key.\n Push direction: snapshot-diffs Project.description and Task title /\n description / status and PATCHes diverged fields back to GitHub.\n PR status is pull-only (push is intentionally disabled).\n Updates Integration.targets[i].lastSyncAt / lastError per target.\n input:\n connection: Ref<Connection> # renamed from `integration`; every binding of the connection is synced\n priority?: string # cursor id to sync first\n output: SyncResult\n effects: [echo:read, echo:write, http]\n errors:\n Unauthorized: token missing or revoked\n NetworkError: transient HTTP failure after retries\n RepositoryNotAccessible: token cannot see one or more selected repos\n note: |\n Parallelism: up to 4 repos concurrently (REPO_CONCURRENCY); up to 4\n issues per repo (ISSUE_CONCURRENCY). Person upserts are serialized via\n a semaphore + login-keyed cache to prevent duplicates across fibers.\n Pagination: up to 10 pages per paginated endpoint (1 000 items max).\n```\n\n```mdl\nop ImportPullRequest\n key: org.dxos.operation.github.importPullRequest\n desc: |\n Add one pull request to the space, named by a github.com URL or `owner/repo#number`,\n so a reviewer with a link in hand need not sync the whole repository first.\n Idempotent by owner/repo/number: a pull request the space already holds is returned\n as it stands. The object is filed via SpaceOperation.AddObject, not merely added.\n input:\n reference: string # https://github.com/owner/repo/pull/123, or owner/repo#123\n output: { pullRequest: Ref<PullRequest>, imported: boolean }\n effects: [echo:read, echo:write, http]\n errors:\n GitHubPullRequestReferenceError: the text names no pull request\n NetworkError: transient HTTP failure after retries\n\n```\n\n```mdl\nop ImportPullRequestFromSnapshot\n key: org.dxos.operation.github.importPullRequestFromSnapshot\n desc: |\n The browser extension's page action: import the pull request the open page shows.\n Nothing is extracted from the DOM — the snapshot's `source.url` names the pull request\n and ImportPullRequest does the rest, so the anonymous-read fallback and the\n already-held check are shared. Answers with the object's id, which is the shape the\n extension bridge acks and the Composer side opens.\n input:\n snapshot: PageAction.Snapshot # the extension's generic page snapshot; only source.url is read\n target: Database # the active space's database\n output: { id: string }\n effects: [echo:read, echo:write, http]\n errors:\n GitHubPullRequestReferenceError: the page's URL names no pull request\n```\n\n```mdl\nop SubmitPullRequestApproval\n key: org.dxos.operation.github.submitPullRequestApproval\n desc: |\n Approve a pull request as the space's GitHub connection. Where GitHub refuses the\n review -- 422 on the author's own pull request, 403 on a token without review\n permission -- the approval is posted as a conversation comment carrying the\n `<!-- dxos:approval state=approved -->` marker instead, so the verdict is recorded\n and an agent polling the conversation can still read \"good to land\". Any other\n failure (401, network) surfaces rather than becoming a comment.\n input:\n pullRequest: Ref<PullRequest>\n body?: string # review summary, kept above the marker in the comment\n output: { reviewId?: number, commentId?: number, url?: string, commented: boolean }\n effects: [echo:read, http]\n errors:\n Unauthorized: token missing or revoked\n```\n\n## Features\n\n```mdl\nfeat F-1: OAuth Integration\n\n req F-1.1:\n when: user connects a GitHub integration\n then: plugin-connector OAuth flow redirects to GitHub for authorization\n\n req F-1.2:\n when: OAuth callback completes\n then: accessToken stored in ECHO; fetchUser called to set accessToken.account to user login\n\n req F-1.3: Integration source is \"github.com\"; provider id is \"github\".\n```\n\n```mdl\nfeat F-2: Repository Discovery\n\n req F-2.1:\n when: user opens the integration target picker\n then: GetGitHubRepositories returns all repos visible to the token sorted by full_name (case-insensitive)\n\n req F-2.2: No local ECHO objects are created during discovery.\n\n req F-2.3: Owner, collaborator, and org-member repo affiliations are included.\n```\n\n```mdl\nfeat F-3: Pull — Organizations and People\n\n req F-3.1:\n when: a selected repo is owned by a GitHub organization\n then: that org is upserted as an Organization in ECHO (name, description, website, image)\n\n req F-3.2:\n when: org is synced\n then: org members are upserted as Person objects linked to the Organization\n\n req F-3.3: Personal-account repos (owner is not an org) skip org/member pull without error.\n\n req F-3.4: A single org is pulled at most once per sync pass regardless of how many repos it owns.\n```\n\n```mdl\nfeat F-4: Pull — Repositories as Projects\n\n req F-4.1:\n when: a selected repo does not yet have a local mirror\n then: Project created in ECHO with foreign key [source: \"github.com\", id: String(repo.id)]\n\n req F-4.2:\n when: a selected repo already has a local mirror\n then: Project fields updated via three-way merge against the stored snapshot\n\n req F-4.3:\n when: Integration.targets[i].object is missing or points at a different Project\n then: target.object is rewired to the upserted Project\n```\n\n```mdl\nfeat F-5: Pull — Issues and PRs as Tasks\n\n req F-5.1:\n when: issue/PR does not yet have a local mirror\n then: Task created with fields title, description, status (open→todo, closed→done), assignee, project ref\n\n req F-5.2:\n when: issue/PR already has a local mirror\n then: Task fields updated via three-way merge against stored snapshot\n\n req F-5.3: PRs are treated identically to issues on pull; pull_request field marks them as PRs.\n\n req F-5.4:\n when: maxDaysBack is set on a target\n then: only issues/PRs updated within that window are fetched from GitHub\n```\n\n```mdl\nfeat F-6: Push — Local Edits Back to GitHub\n\n req F-6.1:\n when: Project.description diverges from the last pulled snapshot\n then: PATCH /repos/{owner}/{repo} sends the new description\n\n req F-6.2:\n when: Task.title or Task.description diverges from snapshot\n then: PATCH /repos/{owner}/{repo}/issues/{number} sends the updated fields\n\n req F-6.3:\n when: Task.status diverges from snapshot and the issue is not a PR\n then: PATCH sends state: open or closed accordingly\n\n req F-6.4:\n when: PR status diverges locally\n then: divergence is logged; push is skipped (PRs are pull-only for status)\n\n req F-6.5: Project.name (repo rename) divergence is logged but never pushed.\n```\n\n```mdl\nfeat F-7: Error Handling and Resilience\n\n req F-7.1:\n when: a per-target sync fails\n then: lastError is set on that target; other targets continue\n\n req F-7.2:\n when: a repo is inaccessible to the integration token\n then: lastError is set to \"Repository not accessible to integration token\"\n\n req F-7.3:\n when: an HTTP request returns 429 or 5xx\n then: request is retried with exponential backoff + jitter (max 3 retries, 500 ms base)\n\n req F-7.4:\n when: sync succeeds\n then: LayoutOperation.AddToast fires a success notification\n\n req F-7.5:\n when: sync fails\n then: LayoutOperation.AddToast fires an error notification with a human-readable message\n```\n\n```mdl\nfeat F-8: Link Previews\n\n req F-8.1:\n when: a document contains a repository, pull-request or issue URL\n then: githubLinks (contributed via MarkdownCapabilities.ExtensionProvider) renders it as an anchor chip\n\n req F-8.2:\n when: the chip is activated\n then: the plugin's PreviewCapabilities.LinkResolver answers with an in-memory Repo, PullRequest or Issue (@dxos/types), never stored\n\n req F-8.3: The object comes from a contributed GitHubCapabilities.LinkSource when a host provides one; otherwise it is fetched from the GitHub API with the space's connection token, or anonymously when the space has none.\n\n req F-8.4: GitHubCard is the CardContent surface for Repo, Issue and PullRequest, so the popover shows reference, state, author, diff size (or default branch) and a link out.\n```\n\n```mdl\nfeat F-9: Pull Request Review\n\n req F-9.1:\n when: the user runs the \"Import pull request\" command and names a pull request\n then: ImportPullRequest files it in the active space and the deck opens it\n\n req F-9.2: The article's subject is the PullRequest, not its walkthrough — so a pull request with no narration yet opens, showing its state, CI outcome and a \"Generate walkthrough\" action.\n\n req F-9.3:\n when: the space holds a walkthrough of the open pull request\n then: the article's Walkthrough tab renders its prose and diff chunks, and the toolbar action regenerates rather than generates\n\n req F-9.4: A Walkthrough opened by id resolves to the same article, through the pull request it narrates.\n\n req F-9.5:\n when: the user clicks \"Open PR in Composer\" in the browser extension on a github.com pull\n request page\n then: ImportPullRequestFromSnapshot files that pull request in the active space, and the\n extension's auto-open setting opens it in the deck\n\n req F-9.6: The article opens on an Overview tab showing the pull request's live description as markdown, with the harness's Claude Code footer and CI's Composer preview block taken out of the prose.\n\n req F-9.7: A link into the agent-artifacts R2 bucket renders as a pill that previews its image or video in place, and each such artifact, the Composer preview and the Claude Code session are listed as related cards in a masonry grid.\n\n req F-9.8: The Overview lists every check run on the head commit, failures first, with its outcome, duration and a link to the provider's logs.\n\n req F-9.9: The Overview shows the pull request's reference, state, CI outcome and branches as a read-only form in a details card.\n\n req F-9.10: A Files tab shows one changed file at a time as the walkthrough's own diff chunk, beside a tree of every changed file with its change counts; the toolbar steps to the previous or next file.\n\n req F-9.11:\n when: the reader checks a file off, in the tree or with the toolbar's Reviewed action\n then: the file counts as reviewed in that browser until a push changes it, and the toolbar action moves on to the next file\n```\n\n## Acceptance\n\n```mdl\nscenario T-1: Token account populated on connect\n given: user completes GitHub OAuth\n when: onTokenCreated fires\n then:\n - GET /user is called with the new token\n - accessToken.account === user.login\n```\n\n```mdl\nscenario T-2: Repository discovery is read-only\n given: valid GitHub integration\n when: GetGitHubRepositories is invoked\n then:\n - list of SyncTargetDescriptor returned sorted by full_name\n - no Organization, Person, Project, or Task objects are created in ECHO\n```\n\n```mdl\nscenario T-3: First sync — create Project and Tasks\n given: integration with one selected repo (no prior local mirror)\n when: SyncGitHubRepositories runs\n then:\n - Project created with foreign key for the repo\n - one Task created per issue/PR\n - open issues map to status todo; closed issues map to status done\n - ProjectSnapshot and TaskSnapshot written for each object\n```\n\n```mdl\nscenario T-4: Incremental pull — remote-wins merge\n given: integration with a previously synced repo; remote title changed\n when: SyncGitHubRepositories runs\n then:\n - Task.title updated to remote value\n - TaskSnapshot.title updated to match\n```\n\n```mdl\nscenario T-5: Push issue edit\n given: Task.description differs from TaskSnapshot.description; issue is not a PR\n when: SyncGitHubRepositories runs\n then:\n - PATCH /repos/{owner}/{repo}/issues/{number} called with new body\n - TaskSnapshot.description updated to sent value\n```\n\n```mdl\nscenario T-6: PR status not pushed\n given: Task (backed by a PR) status differs from snapshot\n when: SyncGitHubRepositories runs\n then:\n - no PATCH issued for that task's status\n - divergence logged at warn level\n```\n\n```mdl\nscenario T-7: Inaccessible repo error surfaced\n given: integration target whose repo id is not in fetchUserRepos response\n when: SyncGitHubRepositories runs\n then:\n - target.lastError === \"Repository not accessible to integration token\"\n - other targets continue and complete normally\n```\n\n```mdl\nscenario T-8: Org deduplication\n given: two selected repos with the same owner org\n when: SyncGitHubRepositories runs\n then:\n - fetchOrg called once for that owner\n - exactly one Organization upserted\n```\n\n```mdl\nscenario T-9: Personal-account owner skips org pull\n given: selected repo owned by a GitHub user (not an org)\n when: SyncGitHubRepositories runs\n then:\n - org lookup returns 404\n - no Organization created; sync continues without error\n```\n\n```mdl\nscenario T-10: maxDaysBack filters issue window\n given: target with maxDaysBack = 7\n when: SyncGitHubRepositories runs\n then:\n - fetchRepoIssues called with since = (now − 7 days).toISOString()\n - issues older than the window are not fetched\n```\n\n---\n\n## QA\n\nExecutable tests. Each step carries a human instruction (`do`) and, where the step maps to an\ninvocable operation, an agent binding (`invoke`). Report failures by test and step number.\n\n```mdl\ntest QA-1: Connect, select a repository, and sync\n desc: The core round-trip — authorize a GitHub connection, discover repos, materialize and sync one as a Project with its issues as Tasks.\n actors: both\n covers: [F-1.1, F-1.2, F-2.1, F-2.2, F-4.1, F-5.1, T-2, T-3]\n status: unverified\n given:\n - an identity exists\n - space: a space is open\n - a GitHub account reachable for OAuth, owning at least one repo with at least one open issue\n - no Project with foreign key [source: \"github.com\", id: <that repo's numeric id>] exists —\n ABORT rather than reusing a Project this test did not create\n steps:\n - name: Connect a GitHub account\n id: connect\n do: Open the GitHub connector panel (Settings -> Connectors -> GitHub) and complete the OAuth authorization test.\n capture: connection\n expect: a Connection object exists with accessToken.account set to the authorized user's GitHub login\n note: |\n NO `invoke` — the OAuth redirect and callback are real browser navigation through GitHub's\n consent screen; the debug port cannot drive it. This step is human-only for any account\n that has not already authorized the app.\n - name: Discover repositories\n do: Open the target picker for the new connection.\n invoke: [op:GetGitHubRepositories] { connection: $connection.connection }\n capture: targets\n expect: the picker lists repos visible to the token, sorted by full_name, and no Organization/Person/Project/Task objects are created yet\n assert: return $result.targets.length > 0 && !$result.targets.some((t) => /^\\d+$/.test(t.id) === false)\n - name: Select the repository as a sync target\n do: Pick the target repo from the list and confirm.\n invoke: [op:MaterializeGitHubTarget] { connection: $connection.connection, remoteTarget: $targets.targets[0] }\n capture: materialized\n expect: an empty local root Project now exists, bound to the selected repo\n assert: return !!$materialized.target\n - name: Sync the connection\n do: Click \"Sync now\" on the connection (or wait for the scheduled sync).\n invoke: [op:SyncGitHubRepositories] { connection: $connection.connection }\n capture: synced\n expect: the Project's fields are populated from the repo, and one Task exists per open/closed issue and PR in that repo\n assert: return $synced.pulled.projects >= 1 && $synced.pulled.tasks >= 1\n after:\n - name: Remove the synced Project and its Tasks\n do: Right-click the Project in the navtree and choose Delete, then repeat for each Task it produced (or delete the containing collection).\n invoke: org.dxos.operation.space.removeObjects { objects: [$materialized.target] }\n expect: the Project and its Tasks leave the navtree; the underlying GitHub repo and issues are untouched\n - name: Disconnect the GitHub account\n do: In Settings -> Connectors -> GitHub, remove the connection.\n expect: the Connection object and its stored access token are removed\n```\n\n```mdl\ntest QA-2: Local edit pushes back to GitHub\n desc: A push-direction check — editing a synced Task's title round-trips to the GitHub issue via PATCH.\n actors: human\n covers: [F-6.2, T-5]\n status: unverified\n given:\n - an identity exists\n - space: a space is open\n - a GitHub account reachable for OAuth, with write access to a repo owning at least one open\n (non-PR) issue\n - no Project with foreign key [source: \"github.com\", id: <that repo's numeric id>] exists —\n ABORT rather than reusing a Project this test did not create\n - connection: a fresh GitHub Connection, authorized against that account (same human-only\n OAuth step as QA-1's \"Connect a GitHub account\")\n - materialized: the target repo materialized and synced as a Project via\n op:MaterializeGitHubTarget then op:SyncGitHubRepositories (same steps as QA-1), leaving at\n least one open (non-PR) Task\n steps:\n - name: Edit the task title\n do: Open the synced Task and change its title.\n expect: the edit is saved locally\n note: NO `invoke` — this is an ordinary field edit through the Task surface, not a github operation.\n - name: Re-sync\n do: Click \"Sync now\" on the connection again.\n invoke: [op:SyncGitHubRepositories] { connection: $given.connection }\n expect: GitHub shows the issue's title updated to match, and the local TaskSnapshot.title now matches the new value\n note: |\n Verify by opening the issue on github.com — SyncGitHubRepositories's snapshot-diff push has\n no separate read-back operation in this document, so the effect is checked against GitHub\n itself (Execution Rule 3).\n after:\n - name: Revert the title on GitHub\n do: Edit the issue's title back to its original value directly on github.com, then re-sync.\n invoke: [op:SyncGitHubRepositories] { connection: $given.connection }\n expect: the local Task.title reflects the reverted value\n - name: Remove the synced Project and its Tasks\n do: Right-click the Project in the navtree and choose Delete, then repeat for each Task it\n produced (or delete the containing collection).\n invoke: |\n org.dxos.operation.space.removeObjects {\n refs: [$given.materialized.target,\n ...(await space.db.query(dxos.Filter.type(dxos.DXN.make('org.dxos.type.task'))).run()).objects\n .filter((task) => task.project?.target?.id === $given.materialized.target.target?.id)\n .map((task) => window.__echo.Ref.make(task))]\n }\n note: |\n `materialized.target` is a Ref, so it travels in `refs`, not `objects`; the synced Tasks\n are resolved separately because removing the Project does not cascade to them.\n expect: the Project and its Tasks leave the navtree; the underlying GitHub repo and issues are untouched\n - name: Disconnect the GitHub account\n do: In Settings -> Connectors -> GitHub, remove the connection.\n expect: the Connection object and its stored access token are removed\n```\n\n```mdl\ntest QA-3: Open a pull request from the browser extension\n desc: |\n The plugin-crx page action, end to end through the operation it names. Uses a public pull\n request so no GitHub connection is needed — the import falls back to an anonymous read.\n actors: both\n covers: [F-9.5, F-9.3]\n status: unverified\n automated:\n - composer-e2e:crx.spec.ts#Extension page actions › contributes the pull request action to the extension registry\n - composer-e2e:crx.spec.ts#Extension page actions › imports the pull request the page names\n - composer-e2e:crx-extension.spec.ts#Extension › opens the pull request the toolbar action is clicked on\n given:\n - an identity exists\n - space: a space is open\n - no PullRequest with owner \"dxos\", repo \"dxos\", number 1 exists — ABORT rather than\n deleting one this test did not create\n steps:\n - name: Open the pull request from the extension\n do: |\n On https://github.com/dxos/dxos/pull/1, open the Composer extension side panel and click\n \"Open PR in Composer\". The extension captures the page snapshot and invokes the operation\n against the active space.\n invoke: |\n org.dxos.operation.github.importPullRequestFromSnapshot {\n snapshot: { source: { url: \"https://github.com/dxos/dxos/pull/1\", title: \"chore: release 1.0.0 by github-actions[bot] - Pull Request #1 - dxos/dxos\", clippedAt: \"2026-09-22T00:00:00Z\" } },\n target: $given.space.db\n }\n capture: imported\n expect: a PullRequest titled \"chore: release 1.0.0\" now exists in the space\n assert: return !!$imported.id\n note: |\n Only `source.url` is read — the page title above is ignored, which is the point of the\n operation taking a snapshot rather than an extraction.\n - name: Re-invoke on the same pull request\n do: Click \"Open PR in Composer\" again on the same page.\n invoke: |\n org.dxos.operation.github.importPullRequestFromSnapshot {\n snapshot: { source: { url: \"https://github.com/dxos/dxos/pull/1\", title: \"chore: release 1.0.0\", clippedAt: \"2026-09-22T00:00:00Z\" } },\n target: $given.space.db\n }\n expect: the same object is returned and the space still holds exactly one copy\n assert: return $result.id === $imported.id\n - name: Generate its walkthrough\n do: Open the imported pull request and click \"Generate walkthrough\" in the article toolbar.\n invoke: |\n org.dxos.operation.github.generateWalkthrough { pullRequest: { \"/\": \"echo://$given.space.id/$imported.id\" } }\n expect: the article renders narrated prose with the change's diff chunks spliced in\n assert: return !!$result.walkthrough\n note: |\n Needs an AI provider configured — the only step here that does. GitHub itself is still read\n anonymously, so no GitHub connection is required.\n after:\n - name: Delete the imported pull request\n do: Right-click the pull request in the navtree and choose Delete.\n invoke: |\n org.dxos.operation.space.removeObjects { objects: [{ \"/\": \"echo://$given.space.id/$imported.id\" }], target: $given.space.db }\n expect: the pull request no longer appears in the space\n```\n\n---\n\n## Appendix: Extension Definitions\n\nExtension block types used in this document are defined below using\nthe core `ext` primitive — the only construct the base language provides.\n\n```mdl\next type\n uri: org.dxos.mdl.type@1.0\n desc: A named data structure with typed fields and optional literals.\n fields:\n desc?: Prose\n fields?: FieldMap # name[?]: TypeExpr (# inline comment)\n literals?: UnionList # a | b | c\n extends?: TypeRef[]\n```\n\n```mdl\next feat\n uri: org.dxos.mdl.feat@1.0\n desc: A named feature grouping one or more requirements.\n fields:\n desc?: Prose\n req: RequirementList\n nesting: self # feat blocks may contain feat blocks\n```\n\n```mdl\next scenario\n uri: org.dxos.mdl.scenario@1.0\n desc: An acceptance scenario expressed as given / when / then steps.\n fields:\n given?: Step | Step[]\n when?: Step | Step[]\n then: Step | Step[]\n tags?: TagList\n```\n\n```mdl\next component\n uri: org.dxos.mdl.component@1.0\n desc: A UI component with props, internal state, slots, actions, and events.\n fields:\n desc?: Prose\n props?: FieldMap # external inputs (immutable inside component)\n state?: FieldMap # internal reactive state\n slots?: FieldMap # named ReactNode injection points\n actions?: ActionMap # methods the component exposes or handles\n emits?: EventMap # events the component raises to its parent\n layout?: CodeBlock # ASCII sketch of visual structure (non-normative)\n```\n\n```mdl\next op\n uri: org.dxos.mdl.op@1.1\n desc: |\n A named operation with typed inputs, outputs, and declared errors.\n Pure ops have no effects or requires. Effectful ops declare both.\n fields:\n key?: NSID # runtime operation key — what the invoker receives\n desc?: Prose\n input?: FieldMap # named input parameters\n output?: TypeExpr # return type\n errors?: ErrorMap # name: Prose (when this error occurs)\n effects?: EffectList # echo:read | echo:write | http | fs | ...\n requires?: ServiceList # injected service dependencies\n note?: Prose # implementation guidance (non-normative)\n```\n";
3
+ //#endregion
4
+ export { PLUGIN_default as t };
5
+
6
+ //# sourceMappingURL=chunk-PLUGIN.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chunk-PLUGIN.mjs","names":[],"sources":[],"mappings":""}