@agimon-ai/doompi-git 0.0.1-alpha.16 → 0.0.1-alpha.17

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 (225) hide show
  1. package/dist/{src/schemas/apiContracts.cjs → apiContracts.cjs} +9 -7
  2. package/dist/apiContracts.cjs.map +1 -0
  3. package/dist/{src/schemas/apiContracts.d.mts.map → apiContracts.d.mts.map} +1 -1
  4. package/dist/{src/schemas/apiContracts.mjs → apiContracts.mjs} +2 -2
  5. package/dist/apiContracts.mjs.map +1 -0
  6. package/dist/extensions/pi.cjs +82 -12
  7. package/dist/extensions/pi.cjs.map +1 -1
  8. package/dist/extensions/pi.d.mts +2 -3
  9. package/dist/extensions/pi.d.mts.map +1 -1
  10. package/dist/extensions/pi.mjs +76 -6
  11. package/dist/extensions/pi.mjs.map +1 -1
  12. package/dist/extensions/server.cjs +442 -22
  13. package/dist/extensions/server.cjs.map +1 -1
  14. package/dist/extensions/server.d.mts +1 -1
  15. package/dist/extensions/server.d.mts.map +1 -1
  16. package/dist/extensions/server.mjs +429 -9
  17. package/dist/extensions/server.mjs.map +1 -1
  18. package/dist/gitDependencies-C4rNqWB3.mjs +22 -0
  19. package/dist/gitDependencies-C4rNqWB3.mjs.map +1 -0
  20. package/dist/gitDependencies-aS4JV4T6.cjs +33 -0
  21. package/dist/gitDependencies-aS4JV4T6.cjs.map +1 -0
  22. package/dist/index-BQq2vblZ.d.mts +143 -0
  23. package/dist/index-BQq2vblZ.d.mts.map +1 -0
  24. package/dist/index.cjs +3 -4
  25. package/dist/index.d.mts +1 -3
  26. package/dist/index.mjs +1 -2
  27. package/dist/runWorktree-4Y-9N-xc.cjs +318 -0
  28. package/dist/runWorktree-4Y-9N-xc.cjs.map +1 -0
  29. package/dist/{src/services/runWorktree/index.mjs → runWorktree-DYMe2tpB.mjs} +150 -4
  30. package/dist/runWorktree-DYMe2tpB.mjs.map +1 -0
  31. package/dist/worktreeOperations-48AZFket.mjs +981 -0
  32. package/dist/worktreeOperations-48AZFket.mjs.map +1 -0
  33. package/dist/worktreeOperations-B870r6so.cjs +1065 -0
  34. package/dist/worktreeOperations-B870r6so.cjs.map +1 -0
  35. package/package.json +16 -16
  36. package/dist/_virtual/_rolldown/runtime.cjs +0 -23
  37. package/dist/api-contracts.cjs +0 -7
  38. package/dist/api-contracts.d.cts +0 -2
  39. package/dist/api-contracts.d.mts +0 -2
  40. package/dist/api-contracts.mjs +0 -2
  41. package/dist/extensions/pi.d.cts +0 -7
  42. package/dist/extensions/pi.d.cts.map +0 -1
  43. package/dist/extensions/server.d.cts +0 -5
  44. package/dist/extensions/server.d.cts.map +0 -1
  45. package/dist/index.d.cts +0 -4
  46. package/dist/src/constants/git.cjs +0 -8
  47. package/dist/src/constants/git.cjs.map +0 -1
  48. package/dist/src/constants/git.mjs +0 -7
  49. package/dist/src/constants/git.mjs.map +0 -1
  50. package/dist/src/extensions/(backend)/api/_lib/route.server.cjs +0 -93
  51. package/dist/src/extensions/(backend)/api/_lib/route.server.cjs.map +0 -1
  52. package/dist/src/extensions/(backend)/api/_lib/route.server.mjs +0 -92
  53. package/dist/src/extensions/(backend)/api/_lib/route.server.mjs.map +0 -1
  54. package/dist/src/extensions/(backend)/api/route.server.cjs +0 -7
  55. package/dist/src/extensions/(backend)/api/route.server.cjs.map +0 -1
  56. package/dist/src/extensions/(backend)/api/route.server.mjs +0 -8
  57. package/dist/src/extensions/(backend)/api/route.server.mjs.map +0 -1
  58. package/dist/src/extensions/(backend)/channel/_lib/git-worktrees.server.cjs +0 -226
  59. package/dist/src/extensions/(backend)/channel/_lib/git-worktrees.server.cjs.map +0 -1
  60. package/dist/src/extensions/(backend)/channel/_lib/git-worktrees.server.mjs +0 -225
  61. package/dist/src/extensions/(backend)/channel/_lib/git-worktrees.server.mjs.map +0 -1
  62. package/dist/src/extensions/(backend)/channel/git-worktrees.server.cjs +0 -7
  63. package/dist/src/extensions/(backend)/channel/git-worktrees.server.cjs.map +0 -1
  64. package/dist/src/extensions/(backend)/channel/git-worktrees.server.mjs +0 -8
  65. package/dist/src/extensions/(backend)/channel/git-worktrees.server.mjs.map +0 -1
  66. package/dist/src/extensions/workspaces/sessions/(backend)/_lib/root.cli.cjs +0 -7
  67. package/dist/src/extensions/workspaces/sessions/(backend)/_lib/root.cli.cjs.map +0 -1
  68. package/dist/src/extensions/workspaces/sessions/(backend)/_lib/root.cli.mjs +0 -8
  69. package/dist/src/extensions/workspaces/sessions/(backend)/_lib/root.cli.mjs.map +0 -1
  70. package/dist/src/extensions/workspaces/sessions/(backend)/_lib/root.server.cjs +0 -73
  71. package/dist/src/extensions/workspaces/sessions/(backend)/_lib/root.server.cjs.map +0 -1
  72. package/dist/src/extensions/workspaces/sessions/(backend)/_lib/root.server.mjs +0 -72
  73. package/dist/src/extensions/workspaces/sessions/(backend)/_lib/root.server.mjs.map +0 -1
  74. package/dist/src/extensions/workspaces/sessions/(backend)/command/_lib/git.cli.cjs +0 -17
  75. package/dist/src/extensions/workspaces/sessions/(backend)/command/_lib/git.cli.cjs.map +0 -1
  76. package/dist/src/extensions/workspaces/sessions/(backend)/command/_lib/git.cli.mjs +0 -16
  77. package/dist/src/extensions/workspaces/sessions/(backend)/command/_lib/git.cli.mjs.map +0 -1
  78. package/dist/src/extensions/workspaces/sessions/(backend)/command/git.cli.cjs +0 -7
  79. package/dist/src/extensions/workspaces/sessions/(backend)/command/git.cli.cjs.map +0 -1
  80. package/dist/src/extensions/workspaces/sessions/(backend)/command/git.cli.mjs +0 -8
  81. package/dist/src/extensions/workspaces/sessions/(backend)/command/git.cli.mjs.map +0 -1
  82. package/dist/src/extensions/workspaces/sessions/(backend)/resource/_lib/doompi-use-git.cli.cjs +0 -15
  83. package/dist/src/extensions/workspaces/sessions/(backend)/resource/_lib/doompi-use-git.cli.cjs.map +0 -1
  84. package/dist/src/extensions/workspaces/sessions/(backend)/resource/_lib/doompi-use-git.cli.mjs +0 -15
  85. package/dist/src/extensions/workspaces/sessions/(backend)/resource/_lib/doompi-use-git.cli.mjs.map +0 -1
  86. package/dist/src/extensions/workspaces/sessions/(backend)/resource/_lib/doompiGit.server.cjs +0 -6
  87. package/dist/src/extensions/workspaces/sessions/(backend)/resource/_lib/doompiGit.server.cjs.map +0 -1
  88. package/dist/src/extensions/workspaces/sessions/(backend)/resource/_lib/doompiGit.server.mjs +0 -6
  89. package/dist/src/extensions/workspaces/sessions/(backend)/resource/_lib/doompiGit.server.mjs.map +0 -1
  90. package/dist/src/extensions/workspaces/sessions/(backend)/resource/_lib/doompiGitReadme.server.cjs +0 -6
  91. package/dist/src/extensions/workspaces/sessions/(backend)/resource/_lib/doompiGitReadme.server.cjs.map +0 -1
  92. package/dist/src/extensions/workspaces/sessions/(backend)/resource/_lib/doompiGitReadme.server.mjs +0 -6
  93. package/dist/src/extensions/workspaces/sessions/(backend)/resource/_lib/doompiGitReadme.server.mjs.map +0 -1
  94. package/dist/src/extensions/workspaces/sessions/(backend)/resource/_lib/doompiUseGit.server.cjs +0 -6
  95. package/dist/src/extensions/workspaces/sessions/(backend)/resource/_lib/doompiUseGit.server.cjs.map +0 -1
  96. package/dist/src/extensions/workspaces/sessions/(backend)/resource/_lib/doompiUseGit.server.mjs +0 -6
  97. package/dist/src/extensions/workspaces/sessions/(backend)/resource/_lib/doompiUseGit.server.mjs.map +0 -1
  98. package/dist/src/extensions/workspaces/sessions/(backend)/resource/doompi-use-git.cli.cjs +0 -7
  99. package/dist/src/extensions/workspaces/sessions/(backend)/resource/doompi-use-git.cli.cjs.map +0 -1
  100. package/dist/src/extensions/workspaces/sessions/(backend)/resource/doompi-use-git.cli.mjs +0 -8
  101. package/dist/src/extensions/workspaces/sessions/(backend)/resource/doompi-use-git.cli.mjs.map +0 -1
  102. package/dist/src/extensions/workspaces/sessions/(backend)/resource/doompiGit.server.cjs +0 -7
  103. package/dist/src/extensions/workspaces/sessions/(backend)/resource/doompiGit.server.cjs.map +0 -1
  104. package/dist/src/extensions/workspaces/sessions/(backend)/resource/doompiGit.server.mjs +0 -8
  105. package/dist/src/extensions/workspaces/sessions/(backend)/resource/doompiGit.server.mjs.map +0 -1
  106. package/dist/src/extensions/workspaces/sessions/(backend)/resource/doompiGitReadme.server.cjs +0 -7
  107. package/dist/src/extensions/workspaces/sessions/(backend)/resource/doompiGitReadme.server.cjs.map +0 -1
  108. package/dist/src/extensions/workspaces/sessions/(backend)/resource/doompiGitReadme.server.mjs +0 -8
  109. package/dist/src/extensions/workspaces/sessions/(backend)/resource/doompiGitReadme.server.mjs.map +0 -1
  110. package/dist/src/extensions/workspaces/sessions/(backend)/resource/doompiUseGit.server.cjs +0 -7
  111. package/dist/src/extensions/workspaces/sessions/(backend)/resource/doompiUseGit.server.cjs.map +0 -1
  112. package/dist/src/extensions/workspaces/sessions/(backend)/resource/doompiUseGit.server.mjs +0 -8
  113. package/dist/src/extensions/workspaces/sessions/(backend)/resource/doompiUseGit.server.mjs.map +0 -1
  114. package/dist/src/extensions/workspaces/sessions/(backend)/root.cli.cjs +0 -7
  115. package/dist/src/extensions/workspaces/sessions/(backend)/root.cli.cjs.map +0 -1
  116. package/dist/src/extensions/workspaces/sessions/(backend)/root.cli.mjs +0 -8
  117. package/dist/src/extensions/workspaces/sessions/(backend)/root.cli.mjs.map +0 -1
  118. package/dist/src/extensions/workspaces/sessions/(backend)/root.server.cjs +0 -7
  119. package/dist/src/extensions/workspaces/sessions/(backend)/root.server.cjs.map +0 -1
  120. package/dist/src/extensions/workspaces/sessions/(backend)/root.server.mjs +0 -8
  121. package/dist/src/extensions/workspaces/sessions/(backend)/root.server.mjs.map +0 -1
  122. package/dist/src/extensions/workspaces/sessions/(backend)/tool/_lib/runWorktree.cli.cjs +0 -38
  123. package/dist/src/extensions/workspaces/sessions/(backend)/tool/_lib/runWorktree.cli.cjs.map +0 -1
  124. package/dist/src/extensions/workspaces/sessions/(backend)/tool/_lib/runWorktree.cli.mjs +0 -36
  125. package/dist/src/extensions/workspaces/sessions/(backend)/tool/_lib/runWorktree.cli.mjs.map +0 -1
  126. package/dist/src/extensions/workspaces/sessions/(backend)/tool/runWorktree.cli.cjs +0 -7
  127. package/dist/src/extensions/workspaces/sessions/(backend)/tool/runWorktree.cli.cjs.map +0 -1
  128. package/dist/src/extensions/workspaces/sessions/(backend)/tool/runWorktree.cli.mjs +0 -8
  129. package/dist/src/extensions/workspaces/sessions/(backend)/tool/runWorktree.cli.mjs.map +0 -1
  130. package/dist/src/extensions/workspaces/sessions/(backend)/tool/runWorktree.server.cjs +0 -6
  131. package/dist/src/extensions/workspaces/sessions/(backend)/tool/runWorktree.server.cjs.map +0 -1
  132. package/dist/src/extensions/workspaces/sessions/(backend)/tool/runWorktree.server.mjs +0 -7
  133. package/dist/src/extensions/workspaces/sessions/(backend)/tool/runWorktree.server.mjs.map +0 -1
  134. package/dist/src/schemas/apiContracts.cjs.map +0 -1
  135. package/dist/src/schemas/apiContracts.d.cts +0 -53
  136. package/dist/src/schemas/apiContracts.d.cts.map +0 -1
  137. package/dist/src/schemas/apiContracts.mjs.map +0 -1
  138. package/dist/src/schemas/runWorktreeTool.cjs +0 -152
  139. package/dist/src/schemas/runWorktreeTool.cjs.map +0 -1
  140. package/dist/src/schemas/runWorktreeTool.mjs +0 -150
  141. package/dist/src/schemas/runWorktreeTool.mjs.map +0 -1
  142. package/dist/src/services/atomicJson/index.cjs +0 -42
  143. package/dist/src/services/atomicJson/index.cjs.map +0 -1
  144. package/dist/src/services/atomicJson/index.mjs +0 -38
  145. package/dist/src/services/atomicJson/index.mjs.map +0 -1
  146. package/dist/src/services/compositionMirror/index.cjs +0 -119
  147. package/dist/src/services/compositionMirror/index.cjs.map +0 -1
  148. package/dist/src/services/compositionMirror/index.mjs +0 -116
  149. package/dist/src/services/compositionMirror/index.mjs.map +0 -1
  150. package/dist/src/services/errors/index.cjs +0 -29
  151. package/dist/src/services/errors/index.cjs.map +0 -1
  152. package/dist/src/services/errors/index.mjs +0 -27
  153. package/dist/src/services/errors/index.mjs.map +0 -1
  154. package/dist/src/services/extensionService/index.cjs +0 -13
  155. package/dist/src/services/extensionService/index.cjs.map +0 -1
  156. package/dist/src/services/extensionService/index.d.cts +0 -7
  157. package/dist/src/services/extensionService/index.d.cts.map +0 -1
  158. package/dist/src/services/extensionService/index.d.mts +0 -7
  159. package/dist/src/services/extensionService/index.d.mts.map +0 -1
  160. package/dist/src/services/extensionService/index.mjs +0 -13
  161. package/dist/src/services/extensionService/index.mjs.map +0 -1
  162. package/dist/src/services/gitCli/index.cjs +0 -144
  163. package/dist/src/services/gitCli/index.cjs.map +0 -1
  164. package/dist/src/services/gitCli/index.mjs +0 -142
  165. package/dist/src/services/gitCli/index.mjs.map +0 -1
  166. package/dist/src/services/gitDependencies/index.cjs +0 -14
  167. package/dist/src/services/gitDependencies/index.cjs.map +0 -1
  168. package/dist/src/services/gitDependencies/index.d.cts +0 -5
  169. package/dist/src/services/gitDependencies/index.d.cts.map +0 -1
  170. package/dist/src/services/gitDependencies/index.d.mts +0 -5
  171. package/dist/src/services/gitDependencies/index.d.mts.map +0 -1
  172. package/dist/src/services/gitDependencies/index.mjs +0 -14
  173. package/dist/src/services/gitDependencies/index.mjs.map +0 -1
  174. package/dist/src/services/paths/index.cjs +0 -75
  175. package/dist/src/services/paths/index.cjs.map +0 -1
  176. package/dist/src/services/paths/index.mjs +0 -69
  177. package/dist/src/services/paths/index.mjs.map +0 -1
  178. package/dist/src/services/repositoryIdentity/index.cjs +0 -71
  179. package/dist/src/services/repositoryIdentity/index.cjs.map +0 -1
  180. package/dist/src/services/repositoryIdentity/index.mjs +0 -65
  181. package/dist/src/services/repositoryIdentity/index.mjs.map +0 -1
  182. package/dist/src/services/runWorktree/index.cjs +0 -146
  183. package/dist/src/services/runWorktree/index.cjs.map +0 -1
  184. package/dist/src/services/runWorktree/index.mjs.map +0 -1
  185. package/dist/src/services/worktreeEvents/index.cjs +0 -64
  186. package/dist/src/services/worktreeEvents/index.cjs.map +0 -1
  187. package/dist/src/services/worktreeEvents/index.d.cts +0 -14
  188. package/dist/src/services/worktreeEvents/index.d.cts.map +0 -1
  189. package/dist/src/services/worktreeEvents/index.d.mts +0 -14
  190. package/dist/src/services/worktreeEvents/index.d.mts.map +0 -1
  191. package/dist/src/services/worktreeEvents/index.mjs +0 -60
  192. package/dist/src/services/worktreeEvents/index.mjs.map +0 -1
  193. package/dist/src/services/worktreeNaming/index.cjs +0 -99
  194. package/dist/src/services/worktreeNaming/index.cjs.map +0 -1
  195. package/dist/src/services/worktreeNaming/index.d.cts +0 -33
  196. package/dist/src/services/worktreeNaming/index.d.cts.map +0 -1
  197. package/dist/src/services/worktreeNaming/index.d.mts +0 -33
  198. package/dist/src/services/worktreeNaming/index.d.mts.map +0 -1
  199. package/dist/src/services/worktreeNaming/index.mjs +0 -94
  200. package/dist/src/services/worktreeNaming/index.mjs.map +0 -1
  201. package/dist/src/services/worktreeOperations/index.cjs +0 -363
  202. package/dist/src/services/worktreeOperations/index.cjs.map +0 -1
  203. package/dist/src/services/worktreeOperations/index.d.cts +0 -41
  204. package/dist/src/services/worktreeOperations/index.d.cts.map +0 -1
  205. package/dist/src/services/worktreeOperations/index.d.mts +0 -41
  206. package/dist/src/services/worktreeOperations/index.d.mts.map +0 -1
  207. package/dist/src/services/worktreeOperations/index.mjs +0 -361
  208. package/dist/src/services/worktreeOperations/index.mjs.map +0 -1
  209. package/dist/src/services/worktreeRegistry/index.cjs +0 -66
  210. package/dist/src/services/worktreeRegistry/index.cjs.map +0 -1
  211. package/dist/src/services/worktreeRegistry/index.mjs +0 -63
  212. package/dist/src/services/worktreeRegistry/index.mjs.map +0 -1
  213. package/dist/src/types/extension.d.cts +0 -16
  214. package/dist/src/types/extension.d.cts.map +0 -1
  215. package/dist/src/types/extension.d.mts +0 -16
  216. package/dist/src/types/extension.d.mts.map +0 -1
  217. package/dist/src/types/webWorktrees.cjs +0 -20
  218. package/dist/src/types/webWorktrees.cjs.map +0 -1
  219. package/dist/src/types/webWorktrees.mjs +0 -20
  220. package/dist/src/types/webWorktrees.mjs.map +0 -1
  221. package/dist/src/types/worktreeRegistry.d.cts +0 -40
  222. package/dist/src/types/worktreeRegistry.d.cts.map +0 -1
  223. package/dist/src/types/worktreeRegistry.d.mts +0 -40
  224. package/dist/src/types/worktreeRegistry.d.mts.map +0 -1
  225. /package/dist/{src/schemas/apiContracts.d.mts → apiContracts.d.mts} +0 -0
@@ -1,4 +1,8 @@
1
- let _agimon_ai_doompi_core_api_contracts = require("@agimon-ai/doompi-core/api-contracts");
1
+ Object.defineProperties(exports, {
2
+ __esModule: { value: true },
3
+ [Symbol.toStringTag]: { value: "Module" }
4
+ });
5
+ let _agimon_ai_doompi_core_apiContracts = require("@agimon-ai/doompi-core/apiContracts");
2
6
  let typebox = require("typebox");
3
7
  //#region src/schemas/apiContracts.ts
4
8
  const S = typebox.Type.String();
@@ -63,7 +67,7 @@ const query = [{
63
67
  required: true,
64
68
  schema: S
65
69
  }];
66
- const apiContracts = (0, _agimon_ai_doompi_core_api_contracts.defineApiContract)({
70
+ const apiContracts = (0, _agimon_ai_doompi_core_apiContracts.defineApiContract)({
67
71
  version: 1,
68
72
  dynamic: [],
69
73
  http: ["global", "workspace"].flatMap((scope) => [
@@ -79,7 +83,7 @@ const apiContracts = (0, _agimon_ai_doompi_core_api_contracts.defineApiContract)
79
83
  ...item,
80
84
  required: item.name === "repositoryId"
81
85
  })),
82
- responses: (0, _agimon_ai_doompi_core_api_contracts.jsonApiResponses)(typebox.Type.Object({ worktrees: typebox.Type.Array(RecordSchema) }))
86
+ responses: (0, _agimon_ai_doompi_core_apiContracts.jsonApiResponses)(typebox.Type.Object({ worktrees: typebox.Type.Array(RecordSchema) }))
83
87
  },
84
88
  {
85
89
  id: "git.create",
@@ -99,7 +103,7 @@ const apiContracts = (0, _agimon_ai_doompi_core_api_contracts.defineApiContract)
99
103
  name: O(S)
100
104
  })
101
105
  },
102
- responses: (0, _agimon_ai_doompi_core_api_contracts.jsonApiResponses)(typebox.Type.Object({ worktree: RecordSchema }), 201)
106
+ responses: (0, _agimon_ai_doompi_core_apiContracts.jsonApiResponses)(typebox.Type.Object({ worktree: RecordSchema }), 201)
103
107
  },
104
108
  {
105
109
  id: "git.close",
@@ -115,7 +119,7 @@ const apiContracts = (0, _agimon_ai_doompi_core_api_contracts.defineApiContract)
115
119
  required: false,
116
120
  schema: B
117
121
  }],
118
- responses: (0, _agimon_ai_doompi_core_api_contracts.jsonApiResponses)(typebox.Type.Object({ worktree: RecordSchema }))
122
+ responses: (0, _agimon_ai_doompi_core_apiContracts.jsonApiResponses)(typebox.Type.Object({ worktree: RecordSchema }))
119
123
  }
120
124
  ]),
121
125
  sockets: ["global", "workspace"].flatMap((scope) => [{
@@ -139,8 +143,6 @@ const apiContracts = (0, _agimon_ai_doompi_core_api_contracts.defineApiContract)
139
143
  }])
140
144
  });
141
145
  //#endregion
142
- exports.WorktreesCommandSchema = WorktreesCommandSchema;
143
- exports.WorktreesPayloadSchema = WorktreesPayloadSchema;
144
146
  exports.apiContracts = apiContracts;
145
147
  exports.default = apiContracts;
146
148
 
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apiContracts.cjs","names":["Type","defineApiContract","jsonApiResponses"],"sources":["../src/schemas/apiContracts.ts"],"sourcesContent":["import { defineApiContract, jsonApiResponses } from '@agimon-ai/doompi-core/apiContracts';\nimport { Type } from 'typebox';\n\nconst S = Type.String();\nconst B = Type.Boolean();\nconst O = Type.Optional;\nconst literals = <T extends string>(values: T[]) => Type.Union(values.map((value) => Type.Literal(value)));\nconst RecordSchema = Type.Object({\n version: Type.Literal(1),\n id: S,\n branch: S,\n baseRef: S,\n path: S,\n repositoryRoot: S,\n sessionId: S,\n parentSessionId: S,\n status: literals(['spawning', 'running', 'closing', 'orphaned']),\n createdAt: S,\n});\nconst ErrorTargetSchema = Type.Union([\n Type.Object({ action: Type.Literal('create') }),\n Type.Object({ action: Type.Literal('close'), id: S }),\n]);\nexport const WorktreesPayloadSchema = Type.Object({\n worktrees: Type.Array(\n Type.Object({ id: S, branch: S, path: S, sessionId: Type.Union([S, Type.Null()]), orphaned: B, unowned: B }),\n ),\n pending: O(S),\n error: O(S),\n errorTarget: O(ErrorTargetSchema),\n});\nexport const WorktreesCommandSchema = Type.Union([\n Type.Object({\n action: Type.Literal('create'),\n branch: S,\n baseRef: O(S),\n reservationId: O(Type.String({ minLength: 1, pattern: '^[A-Za-z0-9_-]+$' })),\n }),\n Type.Object({ action: Type.Literal('close'), id: S, force: O(B) }),\n]);\nconst query = [\n { name: 'repositoryId', in: 'query' as const, required: true, schema: S },\n { name: 'sessionId', in: 'query' as const, required: true, schema: S },\n];\nexport const apiContracts = defineApiContract({\n version: 1,\n dynamic: [],\n http: (['global', 'workspace'] as const).flatMap((scope) => [\n {\n id: 'git.list',\n scope,\n basePath: 'git',\n path: '/worktrees',\n method: 'GET',\n authentication: 'owner',\n description: 'List admitted repository worktrees.',\n parameters: query.map((item) => ({ ...item, required: item.name === 'repositoryId' })),\n responses: jsonApiResponses(Type.Object({ worktrees: Type.Array(RecordSchema) })),\n },\n {\n id: 'git.create',\n scope,\n basePath: 'git',\n path: '/worktrees',\n method: 'POST',\n authentication: 'owner',\n description: 'Create a worktree and session.',\n parameters: query,\n body: {\n required: true,\n contentType: 'application/json',\n schema: Type.Object({ branch: Type.String({ minLength: 1 }), baseRef: O(S), name: O(S) }),\n },\n responses: jsonApiResponses(Type.Object({ worktree: RecordSchema }), 201),\n },\n {\n id: 'git.close',\n scope,\n basePath: 'git',\n path: '/worktrees/{id}',\n method: 'DELETE',\n authentication: 'owner',\n description: 'Close a worktree.',\n parameters: [...query, { name: 'force', in: 'query', required: false, schema: B }],\n responses: jsonApiResponses(Type.Object({ worktree: RecordSchema })),\n },\n ]),\n sockets: (['global', 'workspace'] as const).flatMap((scope) => [\n {\n id: 'git.channel',\n scope,\n service: 'doompi.hub.v1',\n member: 'git_worktrees',\n kind: 'channel',\n direction: 'server-to-client',\n description: 'Worktree channel payload.',\n input: WorktreesPayloadSchema,\n },\n {\n id: 'git.command',\n scope,\n service: 'doompi.hub.v1',\n member: 'git_worktrees',\n kind: 'channel',\n direction: 'client-to-server',\n description: 'Worktree channel command payload.',\n input: WorktreesCommandSchema,\n },\n ]),\n});\nexport default apiContracts;\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"apiContracts.d.mts","names":[],"sources":["../../../src/schemas/apiContracts.ts"],"mappings":";;qBA4Ca"}
1
+ {"version":3,"file":"apiContracts.d.mts","names":[],"sources":["../src/schemas/apiContracts.ts"],"mappings":";;qBA4Ca"}
@@ -1,4 +1,4 @@
1
- import { defineApiContract, jsonApiResponses } from "@agimon-ai/doompi-core/api-contracts";
1
+ import { defineApiContract, jsonApiResponses } from "@agimon-ai/doompi-core/apiContracts";
2
2
  import { Type } from "typebox";
3
3
  //#region src/schemas/apiContracts.ts
4
4
  const S = Type.String();
@@ -139,6 +139,6 @@ const apiContracts = defineApiContract({
139
139
  }])
140
140
  });
141
141
  //#endregion
142
- export { WorktreesCommandSchema, WorktreesPayloadSchema, apiContracts, apiContracts as default };
142
+ export { apiContracts, apiContracts as default };
143
143
 
144
144
  //# sourceMappingURL=apiContracts.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apiContracts.mjs","names":[],"sources":["../src/schemas/apiContracts.ts"],"sourcesContent":["import { defineApiContract, jsonApiResponses } from '@agimon-ai/doompi-core/apiContracts';\nimport { Type } from 'typebox';\n\nconst S = Type.String();\nconst B = Type.Boolean();\nconst O = Type.Optional;\nconst literals = <T extends string>(values: T[]) => Type.Union(values.map((value) => Type.Literal(value)));\nconst RecordSchema = Type.Object({\n version: Type.Literal(1),\n id: S,\n branch: S,\n baseRef: S,\n path: S,\n repositoryRoot: S,\n sessionId: S,\n parentSessionId: S,\n status: literals(['spawning', 'running', 'closing', 'orphaned']),\n createdAt: S,\n});\nconst ErrorTargetSchema = Type.Union([\n Type.Object({ action: Type.Literal('create') }),\n Type.Object({ action: Type.Literal('close'), id: S }),\n]);\nexport const WorktreesPayloadSchema = Type.Object({\n worktrees: Type.Array(\n Type.Object({ id: S, branch: S, path: S, sessionId: Type.Union([S, Type.Null()]), orphaned: B, unowned: B }),\n ),\n pending: O(S),\n error: O(S),\n errorTarget: O(ErrorTargetSchema),\n});\nexport const WorktreesCommandSchema = Type.Union([\n Type.Object({\n action: Type.Literal('create'),\n branch: S,\n baseRef: O(S),\n reservationId: O(Type.String({ minLength: 1, pattern: '^[A-Za-z0-9_-]+$' })),\n }),\n Type.Object({ action: Type.Literal('close'), id: S, force: O(B) }),\n]);\nconst query = [\n { name: 'repositoryId', in: 'query' as const, required: true, schema: S },\n { name: 'sessionId', in: 'query' as const, required: true, schema: S },\n];\nexport const apiContracts = defineApiContract({\n version: 1,\n dynamic: [],\n http: (['global', 'workspace'] as const).flatMap((scope) => [\n {\n id: 'git.list',\n scope,\n basePath: 'git',\n path: '/worktrees',\n method: 'GET',\n authentication: 'owner',\n description: 'List admitted repository worktrees.',\n parameters: query.map((item) => ({ ...item, required: item.name === 'repositoryId' })),\n responses: jsonApiResponses(Type.Object({ worktrees: Type.Array(RecordSchema) })),\n },\n {\n id: 'git.create',\n scope,\n basePath: 'git',\n path: '/worktrees',\n method: 'POST',\n authentication: 'owner',\n description: 'Create a worktree and session.',\n parameters: query,\n body: {\n required: true,\n contentType: 'application/json',\n schema: Type.Object({ branch: Type.String({ minLength: 1 }), baseRef: O(S), name: O(S) }),\n },\n responses: jsonApiResponses(Type.Object({ worktree: RecordSchema }), 201),\n },\n {\n id: 'git.close',\n scope,\n basePath: 'git',\n path: '/worktrees/{id}',\n method: 'DELETE',\n authentication: 'owner',\n description: 'Close a worktree.',\n parameters: [...query, { name: 'force', in: 'query', required: false, schema: B }],\n responses: jsonApiResponses(Type.Object({ worktree: RecordSchema })),\n },\n ]),\n sockets: (['global', 'workspace'] as const).flatMap((scope) => [\n {\n id: 'git.channel',\n scope,\n service: 'doompi.hub.v1',\n member: 'git_worktrees',\n kind: 'channel',\n direction: 'server-to-client',\n description: 'Worktree channel payload.',\n input: WorktreesPayloadSchema,\n },\n {\n id: 'git.command',\n scope,\n service: 'doompi.hub.v1',\n member: 'git_worktrees',\n kind: 'channel',\n direction: 'client-to-server',\n description: 'Worktree channel command payload.',\n input: WorktreesCommandSchema,\n },\n ]),\n});\nexport default apiContracts;\n"],"mappings":"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"}
@@ -2,33 +2,103 @@ Object.defineProperties(exports, {
2
2
  __esModule: { value: true },
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
- const require_root_cli = require("../src/extensions/workspaces/sessions/(backend)/root.cli.cjs");
6
- const require_git_cli = require("../src/extensions/workspaces/sessions/(backend)/command/git.cli.cjs");
7
- const require_doompi_use_git_cli = require("../src/extensions/workspaces/sessions/(backend)/resource/doompi-use-git.cli.cjs");
8
- const require_runWorktree_cli = require("../src/extensions/workspaces/sessions/(backend)/tool/runWorktree.cli.cjs");
9
- let _agimon_ai_doompi_core_pi_extension = require("@agimon-ai/doompi-core/pi-extension");
10
- let _agimon_ai_doompi_core_extension_file = require("@agimon-ai/doompi-core/extension-file");
5
+ const require_gitDependencies = require("../gitDependencies-aS4JV4T6.cjs");
6
+ const require_runWorktree = require("../runWorktree-4Y-9N-xc.cjs");
7
+ let _agimon_ai_doompi_core_piExtension = require("@agimon-ai/doompi-core/piExtension");
8
+ let _agimon_ai_doompi_core_extensionFile = require("@agimon-ai/doompi-core/extensionFile");
9
+ //#region src/extensions/workspaces/sessions/(backend)/_lib/root.cli.ts
10
+ const root = (0, _agimon_ai_doompi_core_extensionFile.defineRoot)((context) => ({ value: require_gitDependencies.createGitDependencies(context.options) }));
11
+ //#endregion
12
+ //#region src/extensions/workspaces/sessions/(backend)/root.cli.ts
13
+ var root_cli_default = (0, _agimon_ai_doompi_core_extensionFile.defineRoot)(root);
14
+ //#endregion
15
+ //#region src/constants/git.ts
16
+ const COMMAND_NAME = "doom-git";
17
+ const COMMAND_DESCRIPTION = "Show git worktrees owned by this session";
18
+ //#endregion
19
+ //#region src/extensions/workspaces/sessions/(backend)/command/_lib/git.cli.ts
20
+ function createGitCommand(service) {
21
+ return [COMMAND_NAME, {
22
+ description: COMMAND_DESCRIPTION,
23
+ handler: async (_args, ctx) => {
24
+ const result = await service.execute();
25
+ if (ctx.hasUI) ctx.ui.notify(result.message, result.level);
26
+ }
27
+ }];
28
+ }
29
+ var git_cli_default$1 = (context) => createGitCommand(context.root.service);
30
+ //#endregion
31
+ //#region src/extensions/workspaces/sessions/(backend)/command/git.cli.ts
32
+ var git_cli_default = (0, _agimon_ai_doompi_core_extensionFile.defineCliCommand)(git_cli_default$1);
33
+ //#endregion
34
+ //#region src/extensions/workspaces/sessions/(backend)/resource/_lib/doompi-use-git.cli.ts
35
+ function createDoompiUseGitResource(moduleUrl) {
36
+ return {
37
+ source: "@agimon-ai/doompi-git",
38
+ moduleUrl,
39
+ skills: [{
40
+ name: "doompi-use-git",
41
+ description: "Use @agimon-ai/doompi-git: Git worktree sessions for DoomPi: spawn an isolated worktree with its own session and manage it from the parent"
42
+ }]
43
+ };
44
+ }
45
+ //#endregion
46
+ //#region src/extensions/workspaces/sessions/(backend)/resource/doompi-use-git.cli.ts
47
+ var doompi_use_git_cli_default = (0, _agimon_ai_doompi_core_extensionFile.defineResource)(createDoompiUseGitResource(require("url").pathToFileURL(__filename).href));
48
+ //#endregion
49
+ //#region src/extensions/workspaces/sessions/(backend)/tool/_lib/runWorktree.cli.ts
50
+ var runWorktree_cli_default$1 = (0, _agimon_ai_doompi_core_extensionFile.defineCliTool)((context) => (0, _agimon_ai_doompi_core_piExtension.definePiTool)(createRunWorktreeTool(context.root.operations)));
51
+ /** Creates the typed Pi worktree tool declaration. */
52
+ function createRunWorktreeTool(operations) {
53
+ return {
54
+ name: require_runWorktree.RUN_WORKTREE_TOOL_NAME,
55
+ label: "Worktree",
56
+ description: require_runWorktree.RUN_WORKTREE_DESCRIPTION,
57
+ parameters: require_runWorktree.RunWorktreeToolSchema,
58
+ prepareArguments: require_runWorktree.validateParams,
59
+ execute: async (_id, rawParams, signal, onUpdate, ctx) => {
60
+ const params = require_runWorktree.validateParams(rawParams);
61
+ return await require_runWorktree.executeRunWorktreeTool(params, operations, {
62
+ cwd: ctx.cwd,
63
+ sessionId: ctx.sessionManager.getSessionId()
64
+ }, {
65
+ ...signal === void 0 ? {} : { signal },
66
+ onProgress: (label) => onUpdate?.({
67
+ content: [{
68
+ type: "text",
69
+ text: label
70
+ }],
71
+ details: { action: params.action }
72
+ })
73
+ });
74
+ }
75
+ };
76
+ }
77
+ //#endregion
78
+ //#region src/extensions/workspaces/sessions/(backend)/tool/runWorktree.cli.ts
79
+ var runWorktree_cli_default = (0, _agimon_ai_doompi_core_extensionFile.defineCliTool)(runWorktree_cli_default$1);
80
+ //#endregion
11
81
  //#region generated/pi.ts
12
82
  const at = (value, context) => typeof value === "function" ? value(context) : value;
13
83
  const via = (identity, value) => ({
14
84
  ...identity,
15
85
  ...value
16
86
  });
17
- const extension = (0, _agimon_ai_doompi_core_pi_extension.definePiExtension)("@agimon-ai/doompi-git", async (context) => {
18
- const scopeSession = await require_root_cli.default(context);
87
+ const extension = (0, _agimon_ai_doompi_core_piExtension.definePiExtension)("@agimon-ai/doompi-git", async (context) => {
88
+ const scopeSession = await root_cli_default(context);
19
89
  const contextSession = {
20
90
  ...context,
21
91
  root: scopeSession.value
22
92
  };
23
93
  return {
24
- ...(0, _agimon_ai_doompi_core_extension_file.composeRootHooks)(scopeSession),
94
+ ...(0, _agimon_ai_doompi_core_extensionFile.composeRootHooks)(scopeSession),
25
95
  get commands() {
26
- return [at(require_git_cli.default, contextSession)];
96
+ return [at(git_cli_default, contextSession)];
27
97
  },
28
98
  get resources() {
29
- return [at(require_doompi_use_git_cli.default, contextSession)];
99
+ return [at(doompi_use_git_cli_default, contextSession)];
30
100
  },
31
- ...(0, _agimon_ai_doompi_core_pi_extension.piToolContributions)("@agimon-ai/doompi-git", [via({ name: "run_worktree" }, at(require_runWorktree_cli.default, contextSession))]),
101
+ ...(0, _agimon_ai_doompi_core_piExtension.piToolContributions)("@agimon-ai/doompi-git", [via({ name: "run_worktree" }, at(runWorktree_cli_default, contextSession))]),
32
102
  services: [...scopeSession.services ?? []]
33
103
  };
34
104
  });
@@ -1 +1 @@
1
- {"version":3,"file":"pi.cjs","names":["definePiExtension","rootSession","composeRootHooks","commandGit","resourceDoompiUseGit","piToolContributions","toolRunWorktree"],"sources":["../../generated/pi.ts"],"sourcesContent":["// Generated by @agimon-ai/doompi-build. Do not edit by hand.\nimport { definePiExtension, piToolContributions, type PiPluginContext, type PiPluginContributions } from '@agimon-ai/doompi-core/pi-extension';\nimport { composeRootHooks } from '@agimon-ai/doompi-core/extension-file';\n\nimport rootSession from '../src/extensions/workspaces/sessions/(backend)/root.cli';\nimport commandGit from '../src/extensions/workspaces/sessions/(backend)/command/git.cli';\nimport resourceDoompiUseGit from '../src/extensions/workspaces/sessions/(backend)/resource/doompi-use-git.cli';\nimport toolRunWorktree from '../src/extensions/workspaces/sessions/(backend)/tool/runWorktree.cli';\n\ntype OptionsOf<T> = T extends (context: PiPluginContext<infer Options>) => unknown ? Options : never;\ntype InferredOptions = Exclude<OptionsOf<typeof rootSession> | OptionsOf<typeof commandGit> | OptionsOf<typeof resourceDoompiUseGit> | OptionsOf<typeof toolRunWorktree>, undefined>;\ntype Intersect<Union> =\n (Union extends unknown ? (value: Union) => void : never) extends (value: infer Value) => void ? Value : never;\ntype ExtensionOptions = [InferredOptions] extends [never] ? undefined : Intersect<InferredOptions>;\n\ntype Factory<T, C> = (context: C) => T;\nconst at = <T, C>(value: T | Factory<T, C>, context: C): T =>\n typeof value === 'function' ? (value as Factory<T, C>)(context) : value;\nconst via = <T>(identity: Record<string, unknown>, value: unknown): T => ({ ...identity, ...(value as object) }) as T;\n\nexport const extension = definePiExtension<ExtensionOptions>('@agimon-ai/doompi-git', async (context) => {\n const scopeSession = await rootSession(context);\n const contextSession = { ...context, root: scopeSession.value };\n return {\n ...composeRootHooks(scopeSession),\n get commands(): PiPluginContributions['commands'] { return [at(commandGit, contextSession)]; },\n get resources(): PiPluginContributions['resources'] { return [at(resourceDoompiUseGit, contextSession)]; },\n ...piToolContributions('@agimon-ai/doompi-git', [via({ name: 'run_worktree' }, at(toolRunWorktree, contextSession))]),\n services: [...(scopeSession.services ?? [])],\n };\n});\n\nexport default extension;\n"],"mappings":";;;;;;;;;;;AAgBA,MAAM,MAAY,OAA0B,YAC1C,OAAO,UAAU,aAAc,MAAwB,OAAO,IAAI;AACpE,MAAM,OAAU,UAAmC,WAAuB;CAAE,GAAG;CAAU,GAAI;AAAiB;AAE9G,MAAa,aAAA,GAAYA,oCAAAA,kBAAAA,CAAoC,yBAAyB,OAAO,YAAY;CACvG,MAAM,eAAe,MAAMC,iBAAAA,QAAY,OAAO;CAC9C,MAAM,iBAAiB;EAAE,GAAG;EAAS,MAAM,aAAa;CAAM;CAC9D,OAAO;EACL,IAAA,GAAGC,sCAAAA,iBAAAA,CAAiB,YAAY;EAChC,IAAI,WAA8C;GAAE,OAAO,CAAC,GAAGC,gBAAAA,SAAY,cAAc,CAAC;EAAG;EAC7F,IAAI,YAAgD;GAAE,OAAO,CAAC,GAAGC,2BAAAA,SAAsB,cAAc,CAAC;EAAG;EACzG,IAAA,GAAGC,oCAAAA,oBAAAA,CAAoB,yBAAyB,CAAC,IAAI,EAAE,MAAM,eAAe,GAAG,GAAGC,wBAAAA,SAAiB,cAAc,CAAC,CAAC,CAAC;EACpH,UAAU,CAAC,GAAI,aAAa,YAAY,CAAC,CAAE;CAC7C;AACF,CAAC"}
1
+ {"version":3,"file":"pi.cjs","names":["defineRoot","createGitDependencies","defineRoot","contribution","defineCliCommand","contribution","defineResource","defineCliTool","definePiTool","RUN_WORKTREE_TOOL_NAME","RUN_WORKTREE_DESCRIPTION","RunWorktreeToolSchema","validateParams","executeRunWorktreeTool","defineCliTool","contribution","definePiExtension","rootSession","composeRootHooks","commandGit","resourceDoompiUseGit","piToolContributions","toolRunWorktree"],"sources":["../../src/extensions/workspaces/sessions/(backend)/_lib/root.cli.ts","../../src/extensions/workspaces/sessions/(backend)/root.cli.ts","../../src/constants/git.ts","../../src/extensions/workspaces/sessions/(backend)/command/_lib/git.cli.ts","../../src/extensions/workspaces/sessions/(backend)/command/git.cli.ts","../../src/extensions/workspaces/sessions/(backend)/resource/_lib/doompi-use-git.cli.ts","../../src/extensions/workspaces/sessions/(backend)/resource/doompi-use-git.cli.ts","../../src/extensions/workspaces/sessions/(backend)/tool/_lib/runWorktree.cli.ts","../../src/extensions/workspaces/sessions/(backend)/tool/runWorktree.cli.ts","../../generated/pi.ts"],"sourcesContent":["import { defineRoot } from '@agimon-ai/doompi-core/extensionFile';\nimport type { PiPluginContext } from '@agimon-ai/doompi-core/piExtension';\n\nimport { createGitDependencies } from '../../../../../services/gitDependencies';\nimport type { GitExtensionDependencies } from '../../../../../types/extension';\n\nconst root = defineRoot((context: PiPluginContext<Partial<GitExtensionDependencies>>) => ({\n value: createGitDependencies(context.options),\n}));\n\nexport type GitPiScope = Awaited<ReturnType<typeof root>>['value'];\nexport default root;\n","import { defineRoot } from '@agimon-ai/doompi-core/extensionFile';\n\nimport contribution from './_lib/root.cli';\n\nexport default defineRoot(contribution);\n","export const COMMAND_NAME = 'doom-git';\nexport const COMMAND_DESCRIPTION = 'Show git worktrees owned by this session';\n","import type { WithRoot } from '@agimon-ai/doompi-core/extensionFile';\nimport type { PiPluginContext } from '@agimon-ai/doompi-core/piExtension';\n// @scaffold-generated\nimport type { ExtensionAPI } from '@earendil-works/pi-coding-agent';\n\nimport { COMMAND_NAME, COMMAND_DESCRIPTION } from '../../../../../../constants/git';\nimport type { GitExtensionDependencies, GitExtensionService } from '../../../../../../types/extension';\nimport type { GitPiScope } from '../../_lib/root.cli';\n\nexport function createGitCommand(\n service: GitExtensionService,\n): readonly [string, Parameters<ExtensionAPI['registerCommand']>[1]] {\n return [\n COMMAND_NAME,\n {\n description: COMMAND_DESCRIPTION,\n handler: async (_args, ctx) => {\n const result = await service.execute();\n if (ctx.hasUI) ctx.ui.notify(result.message, result.level);\n },\n },\n ];\n}\n\nexport default (context: WithRoot<PiPluginContext<Partial<GitExtensionDependencies>>, GitPiScope>) =>\n createGitCommand(context.root.service);\n","import { defineCliCommand } from '@agimon-ai/doompi-core/extensionFile';\n\nimport contribution from './_lib/git.cli';\n\nexport default defineCliCommand(contribution);\n","export function createDoompiUseGitResource(moduleUrl: string) {\n return {\n source: '@agimon-ai/doompi-git',\n moduleUrl,\n skills: [\n {\n name: 'doompi-use-git',\n description:\n 'Use @agimon-ai/doompi-git: Git worktree sessions for DoomPi: spawn an isolated worktree with its own session and manage it from the parent',\n },\n ],\n };\n}\n","import { defineResource } from '@agimon-ai/doompi-core/extensionFile';\n\nimport { createDoompiUseGitResource } from './_lib/doompi-use-git.cli';\n\nexport default defineResource(createDoompiUseGitResource(import.meta.url));\n","import { defineCliTool, type WithRoot } from '@agimon-ai/doompi-core/extensionFile';\nimport { definePiTool, type PiPluginContext } from '@agimon-ai/doompi-core/piExtension';\nimport type { AgentToolResult } from '@earendil-works/pi-agent-core';\nimport type { ToolDefinition } from '@earendil-works/pi-coding-agent';\n\nimport { RunWorktreeToolSchema, type RunWorktreeToolParams } from '../../../../../../schemas/runWorktreeTool';\nimport {\n executeRunWorktreeTool,\n RUN_WORKTREE_DESCRIPTION,\n RUN_WORKTREE_TOOL_NAME,\n validateParams,\n type RunWorktreeToolDetails,\n} from '../../../../../../services/runWorktree';\nimport type { WorktreeOperations } from '../../../../../../services/worktreeOperations';\nimport type { GitExtensionDependencies } from '../../../../../../types/extension';\nimport type { GitPiScope } from '../../_lib/root.cli';\n\nexport default defineCliTool((context: WithRoot<PiPluginContext<Partial<GitExtensionDependencies>>, GitPiScope>) =>\n definePiTool(createRunWorktreeTool(context.root.operations)),\n);\n\nexport { RUN_WORKTREE_TOOL_NAME, validateParams };\nexport type { RunWorktreeToolDetails };\n\n/** Creates the typed Pi worktree tool declaration. */\nexport function createRunWorktreeTool(\n operations: WorktreeOperations,\n): ToolDefinition<typeof RunWorktreeToolSchema, RunWorktreeToolDetails> {\n const tool: ToolDefinition<typeof RunWorktreeToolSchema, RunWorktreeToolDetails> = {\n name: RUN_WORKTREE_TOOL_NAME,\n label: 'Worktree',\n description: RUN_WORKTREE_DESCRIPTION,\n parameters: RunWorktreeToolSchema,\n prepareArguments: validateParams,\n // The signal and the progress callback are the host's two answers to a\n // call that takes minutes. Dropping them is what let an interrupted spawn\n // run on with nobody waiting for it, and left the caller staring at\n // nothing while it did.\n execute: async (_id, rawParams, signal, onUpdate, ctx) => {\n const params = validateParams(rawParams) as RunWorktreeToolParams;\n return (await executeRunWorktreeTool(\n params,\n operations,\n {\n cwd: ctx.cwd,\n sessionId: ctx.sessionManager.getSessionId(),\n },\n {\n ...(signal === undefined ? {} : { signal }),\n onProgress: (label) =>\n onUpdate?.({ content: [{ type: 'text', text: label }], details: { action: params.action } }),\n },\n )) as AgentToolResult<RunWorktreeToolDetails>;\n },\n };\n return tool;\n}\n","import { defineCliTool } from '@agimon-ai/doompi-core/extensionFile';\n\nimport contribution from './_lib/runWorktree.cli';\n\nexport default defineCliTool(contribution);\n","// Generated by @agimon-ai/doompi-build. Do not edit by hand.\nimport { definePiExtension, piToolContributions, type PiPluginContext, type PiPluginContributions } from '@agimon-ai/doompi-core/piExtension';\nimport { composeRootHooks } from '@agimon-ai/doompi-core/extensionFile';\n\nimport rootSession from '../src/extensions/workspaces/sessions/(backend)/root.cli';\nimport commandGit from '../src/extensions/workspaces/sessions/(backend)/command/git.cli';\nimport resourceDoompiUseGit from '../src/extensions/workspaces/sessions/(backend)/resource/doompi-use-git.cli';\nimport toolRunWorktree from '../src/extensions/workspaces/sessions/(backend)/tool/runWorktree.cli';\n\ntype OptionsOf<T> = T extends (context: PiPluginContext<infer Options>) => unknown ? Options : never;\ntype InferredOptions = Exclude<OptionsOf<typeof rootSession> | OptionsOf<typeof commandGit> | OptionsOf<typeof resourceDoompiUseGit> | OptionsOf<typeof toolRunWorktree>, undefined>;\ntype Intersect<Union> =\n (Union extends unknown ? (value: Union) => void : never) extends (value: infer Value) => void ? Value : never;\ntype ExtensionOptions = [InferredOptions] extends [never] ? undefined : Intersect<InferredOptions>;\n\ntype Factory<T, C> = (context: C) => T;\nconst at = <T, C>(value: T | Factory<T, C>, context: C): T =>\n typeof value === 'function' ? (value as Factory<T, C>)(context) : value;\nconst via = <T>(identity: Record<string, unknown>, value: unknown): T => ({ ...identity, ...(value as object) }) as T;\n\nexport const extension = definePiExtension<ExtensionOptions>('@agimon-ai/doompi-git', async (context) => {\n const scopeSession = await rootSession(context);\n const contextSession = { ...context, root: scopeSession.value };\n return {\n ...composeRootHooks(scopeSession),\n get commands(): PiPluginContributions['commands'] { return [at(commandGit, contextSession)]; },\n get resources(): PiPluginContributions['resources'] { return [at(resourceDoompiUseGit, contextSession)]; },\n ...piToolContributions('@agimon-ai/doompi-git', [via({ name: 'run_worktree' }, at(toolRunWorktree, contextSession))]),\n services: [...(scopeSession.services ?? [])],\n };\n});\n\nexport default extension;\n"],"mappings":";;;;;;;;;AAMA,MAAM,QAAA,GAAOA,qCAAAA,WAAAA,EAAY,aAAiE,EACxF,OAAOC,wBAAAA,sBAAsB,QAAQ,OAAO,EAC9C,EAAE;;;ACJF,IAAA,oBAAA,GAAeC,qCAAAA,WAAAA,CAAWC,IAAY;;;ACJtC,MAAa,eAAe;AAC5B,MAAa,sBAAsB;;;ACQnC,SAAgB,iBACd,SACmE;CACnE,OAAO,CACL,cACA;EACE,aAAa;EACb,SAAS,OAAO,OAAO,QAAQ;GAC7B,MAAM,SAAS,MAAM,QAAQ,QAAQ;GACrC,IAAI,IAAI,OAAO,IAAI,GAAG,OAAO,OAAO,SAAS,OAAO,KAAK;EAC3D;CACF,CACF;AACF;AAEA,IAAA,qBAAgB,YACd,iBAAiB,QAAQ,KAAK,OAAO;;;ACrBvC,IAAA,mBAAA,GAAeC,qCAAAA,iBAAAA,CAAiBC,iBAAY;;;ACJ5C,SAAgB,2BAA2B,WAAmB;CAC5D,OAAO;EACL,QAAQ;EACR;EACA,QAAQ,CACN;GACE,MAAM;GACN,aACE;EACJ,CACF;CACF;AACF;;;ACRA,IAAA,8BAAA,GAAeC,qCAAAA,eAAAA,CAAe,2BAAA,QAAA,KAAA,CAAA,CAAA,cAAA,UAAA,CAAA,CAAA,IAA0C,CAAC;;;ACazE,IAAA,6BAAA,GAAeC,qCAAAA,cAAAA,EAAe,aAAA,GAC5BC,mCAAAA,aAAAA,CAAa,sBAAsB,QAAQ,KAAK,UAAU,CAAC,CAC7D;;AAMA,SAAgB,sBACd,YACsE;CA4BtE,OAAO;EA1BL,MAAMC,oBAAAA;EACN,OAAO;EACP,aAAaC,oBAAAA;EACb,YAAYC,oBAAAA;EACZ,kBAAkBC,oBAAAA;EAKlB,SAAS,OAAO,KAAK,WAAW,QAAQ,UAAU,QAAQ;GACxD,MAAM,SAASA,oBAAAA,eAAe,SAAS;GACvC,OAAQ,MAAMC,oBAAAA,uBACZ,QACA,YACA;IACE,KAAK,IAAI;IACT,WAAW,IAAI,eAAe,aAAa;GAC7C,GACA;IACE,GAAI,WAAW,KAAA,IAAY,CAAC,IAAI,EAAE,OAAO;IACzC,aAAa,UACX,WAAW;KAAE,SAAS,CAAC;MAAE,MAAM;MAAQ,MAAM;KAAM,CAAC;KAAG,SAAS,EAAE,QAAQ,OAAO,OAAO;IAAE,CAAC;GAC/F,CACF;EACF;CAEQ;AACZ;;;ACpDA,IAAA,2BAAA,GAAeC,qCAAAA,cAAAA,CAAcC,yBAAY;;;ACYzC,MAAM,MAAY,OAA0B,YAC1C,OAAO,UAAU,aAAc,MAAwB,OAAO,IAAI;AACpE,MAAM,OAAU,UAAmC,WAAuB;CAAE,GAAG;CAAU,GAAI;AAAiB;AAE9G,MAAa,aAAA,GAAYC,mCAAAA,kBAAAA,CAAoC,yBAAyB,OAAO,YAAY;CACvG,MAAM,eAAe,MAAMC,iBAAY,OAAO;CAC9C,MAAM,iBAAiB;EAAE,GAAG;EAAS,MAAM,aAAa;CAAM;CAC9D,OAAO;EACL,IAAA,GAAGC,qCAAAA,iBAAAA,CAAiB,YAAY;EAChC,IAAI,WAA8C;GAAE,OAAO,CAAC,GAAGC,iBAAY,cAAc,CAAC;EAAG;EAC7F,IAAI,YAAgD;GAAE,OAAO,CAAC,GAAGC,4BAAsB,cAAc,CAAC;EAAG;EACzG,IAAA,GAAGC,mCAAAA,oBAAAA,CAAoB,yBAAyB,CAAC,IAAI,EAAE,MAAM,eAAe,GAAG,GAAGC,yBAAiB,cAAc,CAAC,CAAC,CAAC;EACpH,UAAU,CAAC,GAAI,aAAa,YAAY,CAAC,CAAE;CAC7C;AACF,CAAC"}
@@ -1,7 +1,6 @@
1
- import { GitExtensionDependencies } from "../src/types/extension.mjs";
2
- import "../index.mjs";
1
+ import { r as GitExtensionDependencies } from "../index-BQq2vblZ.mjs";
3
2
  //#region generated/pi.d.ts
4
- export declare const extension: import("@agimon-ai/doompi-core/runtime-pi-extension").DefinedPiExtension<Partial<GitExtensionDependencies>>;
3
+ export declare const extension: import("@agimon-ai/doompi-core/runtimePiExtension").DefinedPiExtension<Partial<GitExtensionDependencies>>;
5
4
  //#endregion
6
5
  export { extension as default };
7
6
  //# sourceMappingURL=pi.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pi.d.mts","names":[],"sources":["../../generated/pi.ts"],"mappings":";;;qBAoBa,iEAAS,mBAAA,QAAT"}
1
+ {"version":3,"file":"pi.d.mts","names":[],"sources":["../../generated/pi.ts"],"mappings":";;qBAoBa,+DAAS,mBAAA,QAAT"}
@@ -1,9 +1,79 @@
1
- import root_cli_default from "../src/extensions/workspaces/sessions/(backend)/root.cli.mjs";
2
- import git_cli_default from "../src/extensions/workspaces/sessions/(backend)/command/git.cli.mjs";
3
- import doompi_use_git_cli_default from "../src/extensions/workspaces/sessions/(backend)/resource/doompi-use-git.cli.mjs";
4
- import runWorktree_cli_default from "../src/extensions/workspaces/sessions/(backend)/tool/runWorktree.cli.mjs";
5
- import { definePiExtension, piToolContributions } from "@agimon-ai/doompi-core/pi-extension";
6
- import { composeRootHooks } from "@agimon-ai/doompi-core/extension-file";
1
+ import { t as createGitDependencies } from "../gitDependencies-C4rNqWB3.mjs";
2
+ import { a as RunWorktreeToolSchema, i as validateParams, n as RUN_WORKTREE_TOOL_NAME, r as executeRunWorktreeTool, t as RUN_WORKTREE_DESCRIPTION } from "../runWorktree-DYMe2tpB.mjs";
3
+ import { definePiExtension, definePiTool, piToolContributions } from "@agimon-ai/doompi-core/piExtension";
4
+ import { composeRootHooks, defineCliCommand, defineCliTool, defineResource, defineRoot } from "@agimon-ai/doompi-core/extensionFile";
5
+ //#region src/extensions/workspaces/sessions/(backend)/_lib/root.cli.ts
6
+ const root = defineRoot((context) => ({ value: createGitDependencies(context.options) }));
7
+ //#endregion
8
+ //#region src/extensions/workspaces/sessions/(backend)/root.cli.ts
9
+ var root_cli_default = defineRoot(root);
10
+ //#endregion
11
+ //#region src/constants/git.ts
12
+ const COMMAND_NAME = "doom-git";
13
+ const COMMAND_DESCRIPTION = "Show git worktrees owned by this session";
14
+ //#endregion
15
+ //#region src/extensions/workspaces/sessions/(backend)/command/_lib/git.cli.ts
16
+ function createGitCommand(service) {
17
+ return [COMMAND_NAME, {
18
+ description: COMMAND_DESCRIPTION,
19
+ handler: async (_args, ctx) => {
20
+ const result = await service.execute();
21
+ if (ctx.hasUI) ctx.ui.notify(result.message, result.level);
22
+ }
23
+ }];
24
+ }
25
+ var git_cli_default$1 = (context) => createGitCommand(context.root.service);
26
+ //#endregion
27
+ //#region src/extensions/workspaces/sessions/(backend)/command/git.cli.ts
28
+ var git_cli_default = defineCliCommand(git_cli_default$1);
29
+ //#endregion
30
+ //#region src/extensions/workspaces/sessions/(backend)/resource/_lib/doompi-use-git.cli.ts
31
+ function createDoompiUseGitResource(moduleUrl) {
32
+ return {
33
+ source: "@agimon-ai/doompi-git",
34
+ moduleUrl,
35
+ skills: [{
36
+ name: "doompi-use-git",
37
+ description: "Use @agimon-ai/doompi-git: Git worktree sessions for DoomPi: spawn an isolated worktree with its own session and manage it from the parent"
38
+ }]
39
+ };
40
+ }
41
+ //#endregion
42
+ //#region src/extensions/workspaces/sessions/(backend)/resource/doompi-use-git.cli.ts
43
+ var doompi_use_git_cli_default = defineResource(createDoompiUseGitResource(import.meta.url));
44
+ //#endregion
45
+ //#region src/extensions/workspaces/sessions/(backend)/tool/_lib/runWorktree.cli.ts
46
+ var runWorktree_cli_default$1 = defineCliTool((context) => definePiTool(createRunWorktreeTool(context.root.operations)));
47
+ /** Creates the typed Pi worktree tool declaration. */
48
+ function createRunWorktreeTool(operations) {
49
+ return {
50
+ name: RUN_WORKTREE_TOOL_NAME,
51
+ label: "Worktree",
52
+ description: RUN_WORKTREE_DESCRIPTION,
53
+ parameters: RunWorktreeToolSchema,
54
+ prepareArguments: validateParams,
55
+ execute: async (_id, rawParams, signal, onUpdate, ctx) => {
56
+ const params = validateParams(rawParams);
57
+ return await executeRunWorktreeTool(params, operations, {
58
+ cwd: ctx.cwd,
59
+ sessionId: ctx.sessionManager.getSessionId()
60
+ }, {
61
+ ...signal === void 0 ? {} : { signal },
62
+ onProgress: (label) => onUpdate?.({
63
+ content: [{
64
+ type: "text",
65
+ text: label
66
+ }],
67
+ details: { action: params.action }
68
+ })
69
+ });
70
+ }
71
+ };
72
+ }
73
+ //#endregion
74
+ //#region src/extensions/workspaces/sessions/(backend)/tool/runWorktree.cli.ts
75
+ var runWorktree_cli_default = defineCliTool(runWorktree_cli_default$1);
76
+ //#endregion
7
77
  //#region generated/pi.ts
8
78
  const at = (value, context) => typeof value === "function" ? value(context) : value;
9
79
  const via = (identity, value) => ({
@@ -1 +1 @@
1
- {"version":3,"file":"pi.mjs","names":["rootSession","commandGit","resourceDoompiUseGit","toolRunWorktree"],"sources":["../../generated/pi.ts"],"sourcesContent":["// Generated by @agimon-ai/doompi-build. Do not edit by hand.\nimport { definePiExtension, piToolContributions, type PiPluginContext, type PiPluginContributions } from '@agimon-ai/doompi-core/pi-extension';\nimport { composeRootHooks } from '@agimon-ai/doompi-core/extension-file';\n\nimport rootSession from '../src/extensions/workspaces/sessions/(backend)/root.cli';\nimport commandGit from '../src/extensions/workspaces/sessions/(backend)/command/git.cli';\nimport resourceDoompiUseGit from '../src/extensions/workspaces/sessions/(backend)/resource/doompi-use-git.cli';\nimport toolRunWorktree from '../src/extensions/workspaces/sessions/(backend)/tool/runWorktree.cli';\n\ntype OptionsOf<T> = T extends (context: PiPluginContext<infer Options>) => unknown ? Options : never;\ntype InferredOptions = Exclude<OptionsOf<typeof rootSession> | OptionsOf<typeof commandGit> | OptionsOf<typeof resourceDoompiUseGit> | OptionsOf<typeof toolRunWorktree>, undefined>;\ntype Intersect<Union> =\n (Union extends unknown ? (value: Union) => void : never) extends (value: infer Value) => void ? Value : never;\ntype ExtensionOptions = [InferredOptions] extends [never] ? undefined : Intersect<InferredOptions>;\n\ntype Factory<T, C> = (context: C) => T;\nconst at = <T, C>(value: T | Factory<T, C>, context: C): T =>\n typeof value === 'function' ? (value as Factory<T, C>)(context) : value;\nconst via = <T>(identity: Record<string, unknown>, value: unknown): T => ({ ...identity, ...(value as object) }) as T;\n\nexport const extension = definePiExtension<ExtensionOptions>('@agimon-ai/doompi-git', async (context) => {\n const scopeSession = await rootSession(context);\n const contextSession = { ...context, root: scopeSession.value };\n return {\n ...composeRootHooks(scopeSession),\n get commands(): PiPluginContributions['commands'] { return [at(commandGit, contextSession)]; },\n get resources(): PiPluginContributions['resources'] { return [at(resourceDoompiUseGit, contextSession)]; },\n ...piToolContributions('@agimon-ai/doompi-git', [via({ name: 'run_worktree' }, at(toolRunWorktree, contextSession))]),\n services: [...(scopeSession.services ?? [])],\n };\n});\n\nexport default extension;\n"],"mappings":";;;;;;;AAgBA,MAAM,MAAY,OAA0B,YAC1C,OAAO,UAAU,aAAc,MAAwB,OAAO,IAAI;AACpE,MAAM,OAAU,UAAmC,WAAuB;CAAE,GAAG;CAAU,GAAI;AAAiB;AAE9G,MAAa,YAAY,kBAAoC,yBAAyB,OAAO,YAAY;CACvG,MAAM,eAAe,MAAMA,iBAAY,OAAO;CAC9C,MAAM,iBAAiB;EAAE,GAAG;EAAS,MAAM,aAAa;CAAM;CAC9D,OAAO;EACL,GAAG,iBAAiB,YAAY;EAChC,IAAI,WAA8C;GAAE,OAAO,CAAC,GAAGC,iBAAY,cAAc,CAAC;EAAG;EAC7F,IAAI,YAAgD;GAAE,OAAO,CAAC,GAAGC,4BAAsB,cAAc,CAAC;EAAG;EACzG,GAAG,oBAAoB,yBAAyB,CAAC,IAAI,EAAE,MAAM,eAAe,GAAG,GAAGC,yBAAiB,cAAc,CAAC,CAAC,CAAC;EACpH,UAAU,CAAC,GAAI,aAAa,YAAY,CAAC,CAAE;CAC7C;AACF,CAAC"}
1
+ {"version":3,"file":"pi.mjs","names":["contribution","contribution","contribution","rootSession","commandGit","resourceDoompiUseGit","toolRunWorktree"],"sources":["../../src/extensions/workspaces/sessions/(backend)/_lib/root.cli.ts","../../src/extensions/workspaces/sessions/(backend)/root.cli.ts","../../src/constants/git.ts","../../src/extensions/workspaces/sessions/(backend)/command/_lib/git.cli.ts","../../src/extensions/workspaces/sessions/(backend)/command/git.cli.ts","../../src/extensions/workspaces/sessions/(backend)/resource/_lib/doompi-use-git.cli.ts","../../src/extensions/workspaces/sessions/(backend)/resource/doompi-use-git.cli.ts","../../src/extensions/workspaces/sessions/(backend)/tool/_lib/runWorktree.cli.ts","../../src/extensions/workspaces/sessions/(backend)/tool/runWorktree.cli.ts","../../generated/pi.ts"],"sourcesContent":["import { defineRoot } from '@agimon-ai/doompi-core/extensionFile';\nimport type { PiPluginContext } from '@agimon-ai/doompi-core/piExtension';\n\nimport { createGitDependencies } from '../../../../../services/gitDependencies';\nimport type { GitExtensionDependencies } from '../../../../../types/extension';\n\nconst root = defineRoot((context: PiPluginContext<Partial<GitExtensionDependencies>>) => ({\n value: createGitDependencies(context.options),\n}));\n\nexport type GitPiScope = Awaited<ReturnType<typeof root>>['value'];\nexport default root;\n","import { defineRoot } from '@agimon-ai/doompi-core/extensionFile';\n\nimport contribution from './_lib/root.cli';\n\nexport default defineRoot(contribution);\n","export const COMMAND_NAME = 'doom-git';\nexport const COMMAND_DESCRIPTION = 'Show git worktrees owned by this session';\n","import type { WithRoot } from '@agimon-ai/doompi-core/extensionFile';\nimport type { PiPluginContext } from '@agimon-ai/doompi-core/piExtension';\n// @scaffold-generated\nimport type { ExtensionAPI } from '@earendil-works/pi-coding-agent';\n\nimport { COMMAND_NAME, COMMAND_DESCRIPTION } from '../../../../../../constants/git';\nimport type { GitExtensionDependencies, GitExtensionService } from '../../../../../../types/extension';\nimport type { GitPiScope } from '../../_lib/root.cli';\n\nexport function createGitCommand(\n service: GitExtensionService,\n): readonly [string, Parameters<ExtensionAPI['registerCommand']>[1]] {\n return [\n COMMAND_NAME,\n {\n description: COMMAND_DESCRIPTION,\n handler: async (_args, ctx) => {\n const result = await service.execute();\n if (ctx.hasUI) ctx.ui.notify(result.message, result.level);\n },\n },\n ];\n}\n\nexport default (context: WithRoot<PiPluginContext<Partial<GitExtensionDependencies>>, GitPiScope>) =>\n createGitCommand(context.root.service);\n","import { defineCliCommand } from '@agimon-ai/doompi-core/extensionFile';\n\nimport contribution from './_lib/git.cli';\n\nexport default defineCliCommand(contribution);\n","export function createDoompiUseGitResource(moduleUrl: string) {\n return {\n source: '@agimon-ai/doompi-git',\n moduleUrl,\n skills: [\n {\n name: 'doompi-use-git',\n description:\n 'Use @agimon-ai/doompi-git: Git worktree sessions for DoomPi: spawn an isolated worktree with its own session and manage it from the parent',\n },\n ],\n };\n}\n","import { defineResource } from '@agimon-ai/doompi-core/extensionFile';\n\nimport { createDoompiUseGitResource } from './_lib/doompi-use-git.cli';\n\nexport default defineResource(createDoompiUseGitResource(import.meta.url));\n","import { defineCliTool, type WithRoot } from '@agimon-ai/doompi-core/extensionFile';\nimport { definePiTool, type PiPluginContext } from '@agimon-ai/doompi-core/piExtension';\nimport type { AgentToolResult } from '@earendil-works/pi-agent-core';\nimport type { ToolDefinition } from '@earendil-works/pi-coding-agent';\n\nimport { RunWorktreeToolSchema, type RunWorktreeToolParams } from '../../../../../../schemas/runWorktreeTool';\nimport {\n executeRunWorktreeTool,\n RUN_WORKTREE_DESCRIPTION,\n RUN_WORKTREE_TOOL_NAME,\n validateParams,\n type RunWorktreeToolDetails,\n} from '../../../../../../services/runWorktree';\nimport type { WorktreeOperations } from '../../../../../../services/worktreeOperations';\nimport type { GitExtensionDependencies } from '../../../../../../types/extension';\nimport type { GitPiScope } from '../../_lib/root.cli';\n\nexport default defineCliTool((context: WithRoot<PiPluginContext<Partial<GitExtensionDependencies>>, GitPiScope>) =>\n definePiTool(createRunWorktreeTool(context.root.operations)),\n);\n\nexport { RUN_WORKTREE_TOOL_NAME, validateParams };\nexport type { RunWorktreeToolDetails };\n\n/** Creates the typed Pi worktree tool declaration. */\nexport function createRunWorktreeTool(\n operations: WorktreeOperations,\n): ToolDefinition<typeof RunWorktreeToolSchema, RunWorktreeToolDetails> {\n const tool: ToolDefinition<typeof RunWorktreeToolSchema, RunWorktreeToolDetails> = {\n name: RUN_WORKTREE_TOOL_NAME,\n label: 'Worktree',\n description: RUN_WORKTREE_DESCRIPTION,\n parameters: RunWorktreeToolSchema,\n prepareArguments: validateParams,\n // The signal and the progress callback are the host's two answers to a\n // call that takes minutes. Dropping them is what let an interrupted spawn\n // run on with nobody waiting for it, and left the caller staring at\n // nothing while it did.\n execute: async (_id, rawParams, signal, onUpdate, ctx) => {\n const params = validateParams(rawParams) as RunWorktreeToolParams;\n return (await executeRunWorktreeTool(\n params,\n operations,\n {\n cwd: ctx.cwd,\n sessionId: ctx.sessionManager.getSessionId(),\n },\n {\n ...(signal === undefined ? {} : { signal }),\n onProgress: (label) =>\n onUpdate?.({ content: [{ type: 'text', text: label }], details: { action: params.action } }),\n },\n )) as AgentToolResult<RunWorktreeToolDetails>;\n },\n };\n return tool;\n}\n","import { defineCliTool } from '@agimon-ai/doompi-core/extensionFile';\n\nimport contribution from './_lib/runWorktree.cli';\n\nexport default defineCliTool(contribution);\n","// Generated by @agimon-ai/doompi-build. Do not edit by hand.\nimport { definePiExtension, piToolContributions, type PiPluginContext, type PiPluginContributions } from '@agimon-ai/doompi-core/piExtension';\nimport { composeRootHooks } from '@agimon-ai/doompi-core/extensionFile';\n\nimport rootSession from '../src/extensions/workspaces/sessions/(backend)/root.cli';\nimport commandGit from '../src/extensions/workspaces/sessions/(backend)/command/git.cli';\nimport resourceDoompiUseGit from '../src/extensions/workspaces/sessions/(backend)/resource/doompi-use-git.cli';\nimport toolRunWorktree from '../src/extensions/workspaces/sessions/(backend)/tool/runWorktree.cli';\n\ntype OptionsOf<T> = T extends (context: PiPluginContext<infer Options>) => unknown ? Options : never;\ntype InferredOptions = Exclude<OptionsOf<typeof rootSession> | OptionsOf<typeof commandGit> | OptionsOf<typeof resourceDoompiUseGit> | OptionsOf<typeof toolRunWorktree>, undefined>;\ntype Intersect<Union> =\n (Union extends unknown ? (value: Union) => void : never) extends (value: infer Value) => void ? Value : never;\ntype ExtensionOptions = [InferredOptions] extends [never] ? undefined : Intersect<InferredOptions>;\n\ntype Factory<T, C> = (context: C) => T;\nconst at = <T, C>(value: T | Factory<T, C>, context: C): T =>\n typeof value === 'function' ? (value as Factory<T, C>)(context) : value;\nconst via = <T>(identity: Record<string, unknown>, value: unknown): T => ({ ...identity, ...(value as object) }) as T;\n\nexport const extension = definePiExtension<ExtensionOptions>('@agimon-ai/doompi-git', async (context) => {\n const scopeSession = await rootSession(context);\n const contextSession = { ...context, root: scopeSession.value };\n return {\n ...composeRootHooks(scopeSession),\n get commands(): PiPluginContributions['commands'] { return [at(commandGit, contextSession)]; },\n get resources(): PiPluginContributions['resources'] { return [at(resourceDoompiUseGit, contextSession)]; },\n ...piToolContributions('@agimon-ai/doompi-git', [via({ name: 'run_worktree' }, at(toolRunWorktree, contextSession))]),\n services: [...(scopeSession.services ?? [])],\n };\n});\n\nexport default extension;\n"],"mappings":";;;;;AAMA,MAAM,OAAO,YAAY,aAAiE,EACxF,OAAO,sBAAsB,QAAQ,OAAO,EAC9C,EAAE;;;ACJF,IAAA,mBAAe,WAAWA,IAAY;;;ACJtC,MAAa,eAAe;AAC5B,MAAa,sBAAsB;;;ACQnC,SAAgB,iBACd,SACmE;CACnE,OAAO,CACL,cACA;EACE,aAAa;EACb,SAAS,OAAO,OAAO,QAAQ;GAC7B,MAAM,SAAS,MAAM,QAAQ,QAAQ;GACrC,IAAI,IAAI,OAAO,IAAI,GAAG,OAAO,OAAO,SAAS,OAAO,KAAK;EAC3D;CACF,CACF;AACF;AAEA,IAAA,qBAAgB,YACd,iBAAiB,QAAQ,KAAK,OAAO;;;ACrBvC,IAAA,kBAAe,iBAAiBC,iBAAY;;;ACJ5C,SAAgB,2BAA2B,WAAmB;CAC5D,OAAO;EACL,QAAQ;EACR;EACA,QAAQ,CACN;GACE,MAAM;GACN,aACE;EACJ,CACF;CACF;AACF;;;ACRA,IAAA,6BAAe,eAAe,2BAA2B,YAAY,GAAG,CAAC;;;ACazE,IAAA,4BAAe,eAAe,YAC5B,aAAa,sBAAsB,QAAQ,KAAK,UAAU,CAAC,CAC7D;;AAMA,SAAgB,sBACd,YACsE;CA4BtE,OAAO;EA1BL,MAAM;EACN,OAAO;EACP,aAAa;EACb,YAAY;EACZ,kBAAkB;EAKlB,SAAS,OAAO,KAAK,WAAW,QAAQ,UAAU,QAAQ;GACxD,MAAM,SAAS,eAAe,SAAS;GACvC,OAAQ,MAAM,uBACZ,QACA,YACA;IACE,KAAK,IAAI;IACT,WAAW,IAAI,eAAe,aAAa;GAC7C,GACA;IACE,GAAI,WAAW,KAAA,IAAY,CAAC,IAAI,EAAE,OAAO;IACzC,aAAa,UACX,WAAW;KAAE,SAAS,CAAC;MAAE,MAAM;MAAQ,MAAM;KAAM,CAAC;KAAG,SAAS,EAAE,QAAQ,OAAO,OAAO;IAAE,CAAC;GAC/F,CACF;EACF;CAEQ;AACZ;;;ACpDA,IAAA,0BAAe,cAAcC,yBAAY;;;ACYzC,MAAM,MAAY,OAA0B,YAC1C,OAAO,UAAU,aAAc,MAAwB,OAAO,IAAI;AACpE,MAAM,OAAU,UAAmC,WAAuB;CAAE,GAAG;CAAU,GAAI;AAAiB;AAE9G,MAAa,YAAY,kBAAoC,yBAAyB,OAAO,YAAY;CACvG,MAAM,eAAe,MAAMC,iBAAY,OAAO;CAC9C,MAAM,iBAAiB;EAAE,GAAG;EAAS,MAAM,aAAa;CAAM;CAC9D,OAAO;EACL,GAAG,iBAAiB,YAAY;EAChC,IAAI,WAA8C;GAAE,OAAO,CAAC,GAAGC,iBAAY,cAAc,CAAC;EAAG;EAC7F,IAAI,YAAgD;GAAE,OAAO,CAAC,GAAGC,4BAAsB,cAAc,CAAC;EAAG;EACzG,GAAG,oBAAoB,yBAAyB,CAAC,IAAI,EAAE,MAAM,eAAe,GAAG,GAAGC,yBAAiB,cAAc,CAAC,CAAC,CAAC;EACpH,UAAU,CAAC,GAAI,aAAa,YAAY,CAAC,CAAE;CAC7C;AACF,CAAC"}