@mc1global/opencode-jarvis 0.1.1 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (299) hide show
  1. package/dist/application/agent-registry/dtos.d.ts +66 -0
  2. package/dist/application/agent-registry/dtos.d.ts.map +1 -0
  3. package/dist/application/agent-registry/dtos.js +11 -0
  4. package/dist/application/agent-registry/dtos.js.map +1 -0
  5. package/dist/application/agent-registry/use-cases.d.ts +39 -0
  6. package/dist/application/agent-registry/use-cases.d.ts.map +1 -0
  7. package/dist/application/agent-registry/use-cases.js +222 -0
  8. package/dist/application/agent-registry/use-cases.js.map +1 -0
  9. package/dist/application/azure-sync/dtos.d.ts +210 -0
  10. package/dist/application/azure-sync/dtos.d.ts.map +1 -0
  11. package/dist/application/azure-sync/dtos.js +11 -0
  12. package/dist/application/azure-sync/dtos.js.map +1 -0
  13. package/dist/application/azure-sync/field-builders.d.ts +54 -0
  14. package/dist/application/azure-sync/field-builders.d.ts.map +1 -0
  15. package/dist/application/azure-sync/field-builders.js +166 -0
  16. package/dist/application/azure-sync/field-builders.js.map +1 -0
  17. package/dist/application/azure-sync/index.d.ts +16 -0
  18. package/dist/application/azure-sync/index.d.ts.map +1 -0
  19. package/dist/application/azure-sync/index.js +10 -0
  20. package/dist/application/azure-sync/index.js.map +1 -0
  21. package/dist/application/azure-sync/pr-use-cases.d.ts +39 -0
  22. package/dist/application/azure-sync/pr-use-cases.d.ts.map +1 -0
  23. package/dist/application/azure-sync/pr-use-cases.js +192 -0
  24. package/dist/application/azure-sync/pr-use-cases.js.map +1 -0
  25. package/dist/application/azure-sync/pull-use-cases.d.ts +43 -0
  26. package/dist/application/azure-sync/pull-use-cases.d.ts.map +1 -0
  27. package/dist/application/azure-sync/pull-use-cases.js +322 -0
  28. package/dist/application/azure-sync/pull-use-cases.js.map +1 -0
  29. package/dist/application/azure-sync/push-use-cases.d.ts +53 -0
  30. package/dist/application/azure-sync/push-use-cases.d.ts.map +1 -0
  31. package/dist/application/azure-sync/push-use-cases.js +341 -0
  32. package/dist/application/azure-sync/push-use-cases.js.map +1 -0
  33. package/dist/application/azure-sync/reverse-field-builder.d.ts +52 -0
  34. package/dist/application/azure-sync/reverse-field-builder.d.ts.map +1 -0
  35. package/dist/application/azure-sync/reverse-field-builder.js +130 -0
  36. package/dist/application/azure-sync/reverse-field-builder.js.map +1 -0
  37. package/dist/application/azure-sync/task-push-use-cases.d.ts +68 -0
  38. package/dist/application/azure-sync/task-push-use-cases.d.ts.map +1 -0
  39. package/dist/application/azure-sync/task-push-use-cases.js +162 -0
  40. package/dist/application/azure-sync/task-push-use-cases.js.map +1 -0
  41. package/dist/application/config/config-service.d.ts +64 -0
  42. package/dist/application/config/config-service.d.ts.map +1 -0
  43. package/dist/application/config/config-service.js +110 -0
  44. package/dist/application/config/config-service.js.map +1 -0
  45. package/dist/application/config/index.d.ts +5 -0
  46. package/dist/application/config/index.d.ts.map +1 -0
  47. package/dist/application/config/index.js +5 -0
  48. package/dist/application/config/index.js.map +1 -0
  49. package/dist/application/kanban/board-use-cases.d.ts.map +1 -1
  50. package/dist/application/kanban/board-use-cases.js +14 -0
  51. package/dist/application/kanban/board-use-cases.js.map +1 -1
  52. package/dist/application/kanban/card-use-cases.d.ts +21 -2
  53. package/dist/application/kanban/card-use-cases.d.ts.map +1 -1
  54. package/dist/application/kanban/card-use-cases.js +180 -1
  55. package/dist/application/kanban/card-use-cases.js.map +1 -1
  56. package/dist/application/kanban/dtos.d.ts +59 -0
  57. package/dist/application/kanban/dtos.d.ts.map +1 -1
  58. package/dist/application/mcp/index.d.ts +10 -0
  59. package/dist/application/mcp/index.d.ts.map +1 -0
  60. package/dist/application/mcp/index.js +8 -0
  61. package/dist/application/mcp/index.js.map +1 -0
  62. package/dist/application/mcp/middleware.d.ts +91 -0
  63. package/dist/application/mcp/middleware.d.ts.map +1 -0
  64. package/dist/application/mcp/middleware.js +84 -0
  65. package/dist/application/mcp/middleware.js.map +1 -0
  66. package/dist/application/mcp/tool-adapter.d.ts +72 -0
  67. package/dist/application/mcp/tool-adapter.d.ts.map +1 -0
  68. package/dist/application/mcp/tool-adapter.js +132 -0
  69. package/dist/application/mcp/tool-adapter.js.map +1 -0
  70. package/dist/application/pipeline/dtos.d.ts +135 -0
  71. package/dist/application/pipeline/dtos.d.ts.map +1 -0
  72. package/dist/application/pipeline/dtos.js +11 -0
  73. package/dist/application/pipeline/dtos.js.map +1 -0
  74. package/dist/application/pipeline/index.d.ts +8 -0
  75. package/dist/application/pipeline/index.d.ts.map +1 -0
  76. package/dist/application/pipeline/index.js +7 -0
  77. package/dist/application/pipeline/index.js.map +1 -0
  78. package/dist/application/pipeline/use-cases.d.ts +67 -0
  79. package/dist/application/pipeline/use-cases.d.ts.map +1 -0
  80. package/dist/application/pipeline/use-cases.js +413 -0
  81. package/dist/application/pipeline/use-cases.js.map +1 -0
  82. package/dist/application/rag/use-cases.d.ts +3 -0
  83. package/dist/application/rag/use-cases.d.ts.map +1 -1
  84. package/dist/application/rag/use-cases.js +112 -34
  85. package/dist/application/rag/use-cases.js.map +1 -1
  86. package/dist/domain/agent-registry/entities.d.ts +68 -0
  87. package/dist/domain/agent-registry/entities.d.ts.map +1 -0
  88. package/dist/domain/agent-registry/entities.js +177 -0
  89. package/dist/domain/agent-registry/entities.js.map +1 -0
  90. package/dist/domain/agent-registry/repositories.d.ts +56 -0
  91. package/dist/domain/agent-registry/repositories.d.ts.map +1 -0
  92. package/dist/domain/agent-registry/repositories.js +12 -0
  93. package/dist/domain/agent-registry/repositories.js.map +1 -0
  94. package/dist/domain/agent-registry/services.d.ts +87 -0
  95. package/dist/domain/agent-registry/services.d.ts.map +1 -0
  96. package/dist/domain/agent-registry/services.js +188 -0
  97. package/dist/domain/agent-registry/services.js.map +1 -0
  98. package/dist/domain/agent-registry/value-objects.d.ts +145 -0
  99. package/dist/domain/agent-registry/value-objects.d.ts.map +1 -0
  100. package/dist/domain/agent-registry/value-objects.js +339 -0
  101. package/dist/domain/agent-registry/value-objects.js.map +1 -0
  102. package/dist/domain/azure-sync/entities.d.ts +165 -0
  103. package/dist/domain/azure-sync/entities.d.ts.map +1 -0
  104. package/dist/domain/azure-sync/entities.js +203 -0
  105. package/dist/domain/azure-sync/entities.js.map +1 -0
  106. package/dist/domain/azure-sync/index.d.ts +16 -0
  107. package/dist/domain/azure-sync/index.d.ts.map +1 -0
  108. package/dist/domain/azure-sync/index.js +14 -0
  109. package/dist/domain/azure-sync/index.js.map +1 -0
  110. package/dist/domain/azure-sync/ports.d.ts +117 -0
  111. package/dist/domain/azure-sync/ports.d.ts.map +1 -0
  112. package/dist/domain/azure-sync/ports.js +13 -0
  113. package/dist/domain/azure-sync/ports.js.map +1 -0
  114. package/dist/domain/azure-sync/repositories.d.ts +53 -0
  115. package/dist/domain/azure-sync/repositories.d.ts.map +1 -0
  116. package/dist/domain/azure-sync/repositories.js +11 -0
  117. package/dist/domain/azure-sync/repositories.js.map +1 -0
  118. package/dist/domain/azure-sync/services.d.ts +107 -0
  119. package/dist/domain/azure-sync/services.d.ts.map +1 -0
  120. package/dist/domain/azure-sync/services.js +316 -0
  121. package/dist/domain/azure-sync/services.js.map +1 -0
  122. package/dist/domain/azure-sync/value-objects.d.ts +129 -0
  123. package/dist/domain/azure-sync/value-objects.d.ts.map +1 -0
  124. package/dist/domain/azure-sync/value-objects.js +343 -0
  125. package/dist/domain/azure-sync/value-objects.js.map +1 -0
  126. package/dist/domain/config/index.d.ts +9 -0
  127. package/dist/domain/config/index.d.ts.map +1 -0
  128. package/dist/domain/config/index.js +7 -0
  129. package/dist/domain/config/index.js.map +1 -0
  130. package/dist/domain/config/repositories.d.ts +36 -0
  131. package/dist/domain/config/repositories.d.ts.map +1 -0
  132. package/dist/domain/config/repositories.js +12 -0
  133. package/dist/domain/config/repositories.js.map +1 -0
  134. package/dist/domain/config/value-objects.d.ts +112 -0
  135. package/dist/domain/config/value-objects.d.ts.map +1 -0
  136. package/dist/domain/config/value-objects.js +93 -0
  137. package/dist/domain/config/value-objects.js.map +1 -0
  138. package/dist/domain/governance/policies.d.ts.map +1 -1
  139. package/dist/domain/governance/policies.js +70 -0
  140. package/dist/domain/governance/policies.js.map +1 -1
  141. package/dist/domain/kanban/entities.d.ts +67 -15
  142. package/dist/domain/kanban/entities.d.ts.map +1 -1
  143. package/dist/domain/kanban/entities.js +177 -14
  144. package/dist/domain/kanban/entities.js.map +1 -1
  145. package/dist/domain/kanban/grooming.d.ts +27 -7
  146. package/dist/domain/kanban/grooming.d.ts.map +1 -1
  147. package/dist/domain/kanban/grooming.js +50 -12
  148. package/dist/domain/kanban/grooming.js.map +1 -1
  149. package/dist/domain/kanban/services.d.ts +16 -2
  150. package/dist/domain/kanban/services.d.ts.map +1 -1
  151. package/dist/domain/kanban/services.js +29 -2
  152. package/dist/domain/kanban/services.js.map +1 -1
  153. package/dist/domain/kanban/value-objects.d.ts +48 -0
  154. package/dist/domain/kanban/value-objects.d.ts.map +1 -1
  155. package/dist/domain/kanban/value-objects.js +53 -0
  156. package/dist/domain/kanban/value-objects.js.map +1 -1
  157. package/dist/domain/pipeline/gate.d.ts +75 -0
  158. package/dist/domain/pipeline/gate.d.ts.map +1 -0
  159. package/dist/domain/pipeline/gate.js +158 -0
  160. package/dist/domain/pipeline/gate.js.map +1 -0
  161. package/dist/domain/pipeline/index.d.ts +13 -0
  162. package/dist/domain/pipeline/index.d.ts.map +1 -0
  163. package/dist/domain/pipeline/index.js +14 -0
  164. package/dist/domain/pipeline/index.js.map +1 -0
  165. package/dist/domain/pipeline/pipeline.d.ts +99 -0
  166. package/dist/domain/pipeline/pipeline.d.ts.map +1 -0
  167. package/dist/domain/pipeline/pipeline.js +257 -0
  168. package/dist/domain/pipeline/pipeline.js.map +1 -0
  169. package/dist/domain/pipeline/ports.d.ts +120 -0
  170. package/dist/domain/pipeline/ports.d.ts.map +1 -0
  171. package/dist/domain/pipeline/ports.js +12 -0
  172. package/dist/domain/pipeline/ports.js.map +1 -0
  173. package/dist/domain/pipeline/repositories.d.ts +66 -0
  174. package/dist/domain/pipeline/repositories.d.ts.map +1 -0
  175. package/dist/domain/pipeline/repositories.js +11 -0
  176. package/dist/domain/pipeline/repositories.js.map +1 -0
  177. package/dist/domain/pipeline/services.d.ts +77 -0
  178. package/dist/domain/pipeline/services.d.ts.map +1 -0
  179. package/dist/domain/pipeline/services.js +156 -0
  180. package/dist/domain/pipeline/services.js.map +1 -0
  181. package/dist/domain/pipeline/value-objects.d.ts +117 -0
  182. package/dist/domain/pipeline/value-objects.d.ts.map +1 -0
  183. package/dist/domain/pipeline/value-objects.js +313 -0
  184. package/dist/domain/pipeline/value-objects.js.map +1 -0
  185. package/dist/domain/rag/value-objects.d.ts +9 -2
  186. package/dist/domain/rag/value-objects.d.ts.map +1 -1
  187. package/dist/domain/rag/value-objects.js +8 -2
  188. package/dist/domain/rag/value-objects.js.map +1 -1
  189. package/dist/hooks/event-handlers.d.ts +3 -0
  190. package/dist/hooks/event-handlers.d.ts.map +1 -1
  191. package/dist/hooks/event-handlers.js +4 -2
  192. package/dist/hooks/event-handlers.js.map +1 -1
  193. package/dist/hooks/logger.d.ts +46 -0
  194. package/dist/hooks/logger.d.ts.map +1 -0
  195. package/dist/hooks/logger.js +79 -0
  196. package/dist/hooks/logger.js.map +1 -0
  197. package/dist/index.d.ts.map +1 -1
  198. package/dist/index.js +152 -108
  199. package/dist/index.js.map +1 -1
  200. package/dist/infrastructure/agent-registry/agent-profile-repository.d.ts +29 -0
  201. package/dist/infrastructure/agent-registry/agent-profile-repository.d.ts.map +1 -0
  202. package/dist/infrastructure/agent-registry/agent-profile-repository.js +109 -0
  203. package/dist/infrastructure/agent-registry/agent-profile-repository.js.map +1 -0
  204. package/dist/infrastructure/agent-registry/agent-session-adapter.d.ts +28 -0
  205. package/dist/infrastructure/agent-registry/agent-session-adapter.d.ts.map +1 -0
  206. package/dist/infrastructure/agent-registry/agent-session-adapter.js +61 -0
  207. package/dist/infrastructure/agent-registry/agent-session-adapter.js.map +1 -0
  208. package/dist/infrastructure/agent-registry/built-in-profiles.d.ts +19 -0
  209. package/dist/infrastructure/agent-registry/built-in-profiles.d.ts.map +1 -0
  210. package/dist/infrastructure/agent-registry/built-in-profiles.js +210 -0
  211. package/dist/infrastructure/agent-registry/built-in-profiles.js.map +1 -0
  212. package/dist/infrastructure/azure-sync/azure-auth.d.ts +40 -0
  213. package/dist/infrastructure/azure-sync/azure-auth.d.ts.map +1 -0
  214. package/dist/infrastructure/azure-sync/azure-auth.js +94 -0
  215. package/dist/infrastructure/azure-sync/azure-auth.js.map +1 -0
  216. package/dist/infrastructure/azure-sync/azure-devops-client.d.ts +43 -0
  217. package/dist/infrastructure/azure-sync/azure-devops-client.d.ts.map +1 -0
  218. package/dist/infrastructure/azure-sync/azure-devops-client.js +296 -0
  219. package/dist/infrastructure/azure-sync/azure-devops-client.js.map +1 -0
  220. package/dist/infrastructure/azure-sync/index.d.ts +9 -0
  221. package/dist/infrastructure/azure-sync/index.d.ts.map +1 -0
  222. package/dist/infrastructure/azure-sync/index.js +12 -0
  223. package/dist/infrastructure/azure-sync/index.js.map +1 -0
  224. package/dist/infrastructure/azure-sync/sqlite-sync-repository.d.ts +39 -0
  225. package/dist/infrastructure/azure-sync/sqlite-sync-repository.d.ts.map +1 -0
  226. package/dist/infrastructure/azure-sync/sqlite-sync-repository.js +202 -0
  227. package/dist/infrastructure/azure-sync/sqlite-sync-repository.js.map +1 -0
  228. package/dist/infrastructure/config/index.d.ts +5 -0
  229. package/dist/infrastructure/config/index.d.ts.map +1 -0
  230. package/dist/infrastructure/config/index.js +5 -0
  231. package/dist/infrastructure/config/index.js.map +1 -0
  232. package/dist/infrastructure/config/yaml-config-repository.d.ts +22 -0
  233. package/dist/infrastructure/config/yaml-config-repository.d.ts.map +1 -0
  234. package/dist/infrastructure/config/yaml-config-repository.js +68 -0
  235. package/dist/infrastructure/config/yaml-config-repository.js.map +1 -0
  236. package/dist/infrastructure/domain-map/llm-prompt-factory.d.ts +21 -0
  237. package/dist/infrastructure/domain-map/llm-prompt-factory.d.ts.map +1 -0
  238. package/dist/infrastructure/domain-map/llm-prompt-factory.js +49 -0
  239. package/dist/infrastructure/domain-map/llm-prompt-factory.js.map +1 -0
  240. package/dist/infrastructure/kanban/card-repository.d.ts +6 -0
  241. package/dist/infrastructure/kanban/card-repository.d.ts.map +1 -1
  242. package/dist/infrastructure/kanban/card-repository.js +79 -7
  243. package/dist/infrastructure/kanban/card-repository.js.map +1 -1
  244. package/dist/infrastructure/pipeline/dagger-adapter.d.ts +50 -0
  245. package/dist/infrastructure/pipeline/dagger-adapter.d.ts.map +1 -0
  246. package/dist/infrastructure/pipeline/dagger-adapter.js +153 -0
  247. package/dist/infrastructure/pipeline/dagger-adapter.js.map +1 -0
  248. package/dist/infrastructure/pipeline/dagger-scaffold-generator.d.ts +35 -0
  249. package/dist/infrastructure/pipeline/dagger-scaffold-generator.d.ts.map +1 -0
  250. package/dist/infrastructure/pipeline/dagger-scaffold-generator.js +132 -0
  251. package/dist/infrastructure/pipeline/dagger-scaffold-generator.js.map +1 -0
  252. package/dist/infrastructure/pipeline/index.d.ts +20 -0
  253. package/dist/infrastructure/pipeline/index.d.ts.map +1 -0
  254. package/dist/infrastructure/pipeline/index.js +19 -0
  255. package/dist/infrastructure/pipeline/index.js.map +1 -0
  256. package/dist/infrastructure/pipeline/pipeline-template-registry.d.ts +23 -0
  257. package/dist/infrastructure/pipeline/pipeline-template-registry.d.ts.map +1 -0
  258. package/dist/infrastructure/pipeline/pipeline-template-registry.js +63 -0
  259. package/dist/infrastructure/pipeline/pipeline-template-registry.js.map +1 -0
  260. package/dist/infrastructure/pipeline/scaffold-templates-extra.d.ts +17 -0
  261. package/dist/infrastructure/pipeline/scaffold-templates-extra.d.ts.map +1 -0
  262. package/dist/infrastructure/pipeline/scaffold-templates-extra.js +467 -0
  263. package/dist/infrastructure/pipeline/scaffold-templates-extra.js.map +1 -0
  264. package/dist/infrastructure/pipeline/scaffold-templates.d.ts +23 -0
  265. package/dist/infrastructure/pipeline/scaffold-templates.d.ts.map +1 -0
  266. package/dist/infrastructure/pipeline/scaffold-templates.js +476 -0
  267. package/dist/infrastructure/pipeline/scaffold-templates.js.map +1 -0
  268. package/dist/infrastructure/pipeline/sqlite-pipeline-repository.d.ts +32 -0
  269. package/dist/infrastructure/pipeline/sqlite-pipeline-repository.d.ts.map +1 -0
  270. package/dist/infrastructure/pipeline/sqlite-pipeline-repository.js +197 -0
  271. package/dist/infrastructure/pipeline/sqlite-pipeline-repository.js.map +1 -0
  272. package/dist/mcp-server.d.ts +3 -0
  273. package/dist/mcp-server.d.ts.map +1 -0
  274. package/dist/mcp-server.js +300 -0
  275. package/dist/mcp-server.js.map +1 -0
  276. package/dist/tools/agent-registry-tools.d.ts +11 -0
  277. package/dist/tools/agent-registry-tools.d.ts.map +1 -0
  278. package/dist/tools/agent-registry-tools.js +208 -0
  279. package/dist/tools/agent-registry-tools.js.map +1 -0
  280. package/dist/tools/azure-sync-tools.d.ts +15 -0
  281. package/dist/tools/azure-sync-tools.d.ts.map +1 -0
  282. package/dist/tools/azure-sync-tools.js +332 -0
  283. package/dist/tools/azure-sync-tools.js.map +1 -0
  284. package/dist/tools/kanban-card-tools.d.ts.map +1 -1
  285. package/dist/tools/kanban-card-tools.js +41 -16
  286. package/dist/tools/kanban-card-tools.js.map +1 -1
  287. package/dist/tools/kanban-gate-tools.d.ts +7 -0
  288. package/dist/tools/kanban-gate-tools.d.ts.map +1 -0
  289. package/dist/tools/kanban-gate-tools.js +106 -0
  290. package/dist/tools/kanban-gate-tools.js.map +1 -0
  291. package/dist/tools/kanban-grooming-tools.d.ts +7 -0
  292. package/dist/tools/kanban-grooming-tools.d.ts.map +1 -0
  293. package/dist/tools/kanban-grooming-tools.js +180 -0
  294. package/dist/tools/kanban-grooming-tools.js.map +1 -0
  295. package/dist/tools/pipeline-tools.d.ts +15 -0
  296. package/dist/tools/pipeline-tools.d.ts.map +1 -0
  297. package/dist/tools/pipeline-tools.js +424 -0
  298. package/dist/tools/pipeline-tools.js.map +1 -0
  299. package/package.json +7 -2
@@ -0,0 +1,467 @@
1
+ /**
2
+ * Dagger Module Scaffold Templates — Extra Stacks
3
+ *
4
+ * Swift, C#, Kotlin, and Generic scaffold content using TypeScript Dagger SDK.
5
+ * Each function generates platform-specific CI/CD gate functions.
6
+ *
7
+ * SOLID: SRP — template content only (no generation logic)
8
+ */
9
+ import { pascalCase, camelCase } from "./scaffold-templates.js";
10
+ // ─── Swift iOS ───────────────────────────────────────────────────────────────
11
+ /** Swift iOS Dagger module (SwiftLint, xcodebuild, App Store Connect). */
12
+ export function swiftIosSource(prefix) {
13
+ return `import { dag, object, func, Directory } from "@dagger.io/dagger";
14
+
15
+ /**
16
+ * CI/CD pipeline module for Swift iOS projects.
17
+ *
18
+ * Each function corresponds to a pipeline gate and runs in
19
+ * an isolated macOS-compatible container with Xcode tooling.
20
+ */
21
+ @object()
22
+ class ${pascalCase(prefix)} {
23
+ /**
24
+ * Static analysis: run SwiftLint for code quality checks.
25
+ */
26
+ @func()
27
+ async ${camelCase(prefix)}Analyze(source: Directory): Promise<string> {
28
+ return dag
29
+ .container()
30
+ .from("swift:6.0")
31
+ .withMountedDirectory("/app", source)
32
+ .withWorkdir("/app")
33
+ .withExec(["swift", "package", "resolve"])
34
+ .withExec(["swiftlint", "lint", "--strict"])
35
+ .stdout();
36
+ }
37
+
38
+ /**
39
+ * Lint: run swift-format for code formatting checks.
40
+ */
41
+ @func()
42
+ async ${camelCase(prefix)}Lint(source: Directory): Promise<string> {
43
+ return dag
44
+ .container()
45
+ .from("swift:6.0")
46
+ .withMountedDirectory("/app", source)
47
+ .withWorkdir("/app")
48
+ .withExec(["swift-format", "lint", "--strict", "-r", "Sources/"])
49
+ .stdout();
50
+ }
51
+
52
+ /**
53
+ * Test: run Swift package tests via xcodebuild.
54
+ */
55
+ @func()
56
+ async ${camelCase(prefix)}Test(source: Directory): Promise<string> {
57
+ return dag
58
+ .container()
59
+ .from("swift:6.0")
60
+ .withMountedDirectory("/app", source)
61
+ .withWorkdir("/app")
62
+ .withExec(["swift", "test", "--enable-code-coverage"])
63
+ .stdout();
64
+ }
65
+
66
+ /**
67
+ * Build: compile the project via xcodebuild.
68
+ */
69
+ @func()
70
+ async ${camelCase(prefix)}Build(source: Directory): Promise<string> {
71
+ return dag
72
+ .container()
73
+ .from("swift:6.0")
74
+ .withMountedDirectory("/app", source)
75
+ .withWorkdir("/app")
76
+ .withExec(["swift", "build", "-c", "release"])
77
+ .stdout();
78
+ }
79
+
80
+ /**
81
+ * Tag: create a git tag for the release version.
82
+ */
83
+ @func()
84
+ async ${camelCase(prefix)}Tag(source: Directory, version: string): Promise<string> {
85
+ return dag
86
+ .container()
87
+ .from("swift:6.0")
88
+ .withMountedDirectory("/app", source)
89
+ .withWorkdir("/app")
90
+ .withExec(["git", "tag", \`v\${version}\`])
91
+ .stdout();
92
+ }
93
+
94
+ /**
95
+ * Publish: archive and export for App Store distribution.
96
+ */
97
+ @func()
98
+ async ${camelCase(prefix)}Publish(source: Directory): Promise<string> {
99
+ return dag
100
+ .container()
101
+ .from("swift:6.0")
102
+ .withMountedDirectory("/app", source)
103
+ .withWorkdir("/app")
104
+ .withExec(["echo", "Publish: configure xcodebuild archive + exportArchive for App Store Connect"])
105
+ .stdout();
106
+ }
107
+
108
+ /**
109
+ * Deploy: upload to App Store Connect via altool/notarytool.
110
+ */
111
+ @func()
112
+ async ${camelCase(prefix)}Deploy(source: Directory): Promise<string> {
113
+ return dag
114
+ .container()
115
+ .from("swift:6.0")
116
+ .withMountedDirectory("/app", source)
117
+ .withWorkdir("/app")
118
+ .withExec(["echo", "Deploy: configure xcrun altool --upload-app or App Store Connect API"])
119
+ .stdout();
120
+ }
121
+ }
122
+ `;
123
+ }
124
+ // ─── C# / .NET ───────────────────────────────────────────────────────────────
125
+ /** C# application Dagger module (dotnet format, dotnet test, dotnet publish). */
126
+ export function csharpAppSource(prefix) {
127
+ return `import { dag, object, func, Directory } from "@dagger.io/dagger";
128
+
129
+ /**
130
+ * CI/CD pipeline module for C# / .NET application projects.
131
+ *
132
+ * Each function corresponds to a pipeline gate and runs in
133
+ * an isolated .NET SDK container with the project source mounted.
134
+ */
135
+ @object()
136
+ class ${pascalCase(prefix)} {
137
+ /**
138
+ * Static analysis: run dotnet format to verify code style.
139
+ */
140
+ @func()
141
+ async ${camelCase(prefix)}Analyze(source: Directory): Promise<string> {
142
+ return dag
143
+ .container()
144
+ .from("mcr.microsoft.com/dotnet/sdk:9.0")
145
+ .withMountedDirectory("/app", source)
146
+ .withWorkdir("/app")
147
+ .withExec(["dotnet", "restore"])
148
+ .withExec(["dotnet", "format", "--verify-no-changes"])
149
+ .stdout();
150
+ }
151
+
152
+ /**
153
+ * Lint: run dotnet analyzers for code quality.
154
+ */
155
+ @func()
156
+ async ${camelCase(prefix)}Lint(source: Directory): Promise<string> {
157
+ return dag
158
+ .container()
159
+ .from("mcr.microsoft.com/dotnet/sdk:9.0")
160
+ .withMountedDirectory("/app", source)
161
+ .withWorkdir("/app")
162
+ .withExec(["dotnet", "restore"])
163
+ .withExec(["dotnet", "build", "--no-restore", "/p:TreatWarningsAsErrors=true"])
164
+ .stdout();
165
+ }
166
+
167
+ /**
168
+ * Test: run dotnet test suite.
169
+ */
170
+ @func()
171
+ async ${camelCase(prefix)}Test(source: Directory): Promise<string> {
172
+ return dag
173
+ .container()
174
+ .from("mcr.microsoft.com/dotnet/sdk:9.0")
175
+ .withMountedDirectory("/app", source)
176
+ .withWorkdir("/app")
177
+ .withExec(["dotnet", "restore"])
178
+ .withExec(["dotnet", "test", "--no-restore", "--collect:XPlat Code Coverage"])
179
+ .stdout();
180
+ }
181
+
182
+ /**
183
+ * Build: compile the project in Release configuration.
184
+ */
185
+ @func()
186
+ async ${camelCase(prefix)}Build(source: Directory): Promise<string> {
187
+ return dag
188
+ .container()
189
+ .from("mcr.microsoft.com/dotnet/sdk:9.0")
190
+ .withMountedDirectory("/app", source)
191
+ .withWorkdir("/app")
192
+ .withExec(["dotnet", "restore"])
193
+ .withExec(["dotnet", "build", "--no-restore", "-c", "Release"])
194
+ .stdout();
195
+ }
196
+
197
+ /**
198
+ * Tag: create a git tag for the release version.
199
+ */
200
+ @func()
201
+ async ${camelCase(prefix)}Tag(source: Directory, version: string): Promise<string> {
202
+ return dag
203
+ .container()
204
+ .from("mcr.microsoft.com/dotnet/sdk:9.0")
205
+ .withMountedDirectory("/app", source)
206
+ .withWorkdir("/app")
207
+ .withExec(["git", "tag", \`v\${version}\`])
208
+ .stdout();
209
+ }
210
+
211
+ /**
212
+ * Publish: create a self-contained deployment package.
213
+ */
214
+ @func()
215
+ async ${camelCase(prefix)}Publish(source: Directory): Promise<string> {
216
+ return dag
217
+ .container()
218
+ .from("mcr.microsoft.com/dotnet/sdk:9.0")
219
+ .withMountedDirectory("/app", source)
220
+ .withWorkdir("/app")
221
+ .withExec(["dotnet", "publish", "-c", "Release", "--self-contained"])
222
+ .stdout();
223
+ }
224
+
225
+ /**
226
+ * Deploy: placeholder for deployment (Azure, AWS, Docker registry).
227
+ */
228
+ @func()
229
+ async ${camelCase(prefix)}Deploy(source: Directory): Promise<string> {
230
+ return dag
231
+ .container()
232
+ .from("mcr.microsoft.com/dotnet/sdk:9.0")
233
+ .withMountedDirectory("/app", source)
234
+ .withWorkdir("/app")
235
+ .withExec(["echo", "Deploy: configure for Azure App Service, AWS ECS, or Docker registry"])
236
+ .stdout();
237
+ }
238
+ }
239
+ `;
240
+ }
241
+ // ─── Kotlin Android ──────────────────────────────────────────────────────────
242
+ /** Kotlin Android Dagger module (ktlint, Gradle test, Gradle build, Play Store). */
243
+ export function kotlinAndroidSource(prefix) {
244
+ return `import { dag, object, func, Directory } from "@dagger.io/dagger";
245
+
246
+ /**
247
+ * CI/CD pipeline module for Kotlin Android projects.
248
+ *
249
+ * Each function corresponds to a pipeline gate and runs in
250
+ * an isolated container with Android SDK and Gradle tooling.
251
+ */
252
+ @object()
253
+ class ${pascalCase(prefix)} {
254
+ /**
255
+ * Static analysis: run ktlint for Kotlin code style checks.
256
+ */
257
+ @func()
258
+ async ${camelCase(prefix)}Analyze(source: Directory): Promise<string> {
259
+ return dag
260
+ .container()
261
+ .from("gradle:8-jdk17")
262
+ .withMountedDirectory("/app", source)
263
+ .withWorkdir("/app")
264
+ .withExec(["gradle", "ktlintCheck", "--no-daemon"])
265
+ .stdout();
266
+ }
267
+
268
+ /**
269
+ * Lint: run Android Lint via Gradle.
270
+ */
271
+ @func()
272
+ async ${camelCase(prefix)}Lint(source: Directory): Promise<string> {
273
+ return dag
274
+ .container()
275
+ .from("gradle:8-jdk17")
276
+ .withMountedDirectory("/app", source)
277
+ .withWorkdir("/app")
278
+ .withExec(["gradle", "lint", "--no-daemon"])
279
+ .stdout();
280
+ }
281
+
282
+ /**
283
+ * Test: run unit tests via Gradle.
284
+ */
285
+ @func()
286
+ async ${camelCase(prefix)}Test(source: Directory): Promise<string> {
287
+ return dag
288
+ .container()
289
+ .from("gradle:8-jdk17")
290
+ .withMountedDirectory("/app", source)
291
+ .withWorkdir("/app")
292
+ .withExec(["gradle", "test", "--no-daemon"])
293
+ .stdout();
294
+ }
295
+
296
+ /**
297
+ * Build: assemble the release APK/AAB via Gradle.
298
+ */
299
+ @func()
300
+ async ${camelCase(prefix)}Build(source: Directory): Promise<string> {
301
+ return dag
302
+ .container()
303
+ .from("gradle:8-jdk17")
304
+ .withMountedDirectory("/app", source)
305
+ .withWorkdir("/app")
306
+ .withExec(["gradle", "assembleRelease", "--no-daemon"])
307
+ .stdout();
308
+ }
309
+
310
+ /**
311
+ * Tag: create a git tag for the release version.
312
+ */
313
+ @func()
314
+ async ${camelCase(prefix)}Tag(source: Directory, version: string): Promise<string> {
315
+ return dag
316
+ .container()
317
+ .from("gradle:8-jdk17")
318
+ .withMountedDirectory("/app", source)
319
+ .withWorkdir("/app")
320
+ .withExec(["git", "tag", \`v\${version}\`])
321
+ .stdout();
322
+ }
323
+
324
+ /**
325
+ * Publish: sign and prepare bundle for Google Play Store.
326
+ */
327
+ @func()
328
+ async ${camelCase(prefix)}Publish(source: Directory): Promise<string> {
329
+ return dag
330
+ .container()
331
+ .from("gradle:8-jdk17")
332
+ .withMountedDirectory("/app", source)
333
+ .withWorkdir("/app")
334
+ .withExec(["gradle", "bundleRelease", "--no-daemon"])
335
+ .stdout();
336
+ }
337
+
338
+ /**
339
+ * Deploy: upload to Google Play Store via Gradle Play Publisher.
340
+ */
341
+ @func()
342
+ async ${camelCase(prefix)}Deploy(source: Directory): Promise<string> {
343
+ return dag
344
+ .container()
345
+ .from("gradle:8-jdk17")
346
+ .withMountedDirectory("/app", source)
347
+ .withWorkdir("/app")
348
+ .withExec(["echo", "Deploy: configure Gradle Play Publisher or fastlane supply"])
349
+ .stdout();
350
+ }
351
+ }
352
+ `;
353
+ }
354
+ // ─── Generic ─────────────────────────────────────────────────────────────────
355
+ /** Generic Dagger module with configurable shell command placeholders. */
356
+ export function genericSource(prefix) {
357
+ return `import { dag, object, func, Directory } from "@dagger.io/dagger";
358
+
359
+ /**
360
+ * Generic CI/CD pipeline module.
361
+ *
362
+ * Provides configurable gate functions with shell command placeholders.
363
+ * Customize each function with your project-specific tooling.
364
+ */
365
+ @object()
366
+ class ${pascalCase(prefix)} {
367
+ /**
368
+ * Static analysis: placeholder for your analysis tool.
369
+ */
370
+ @func()
371
+ async ${camelCase(prefix)}Analyze(source: Directory): Promise<string> {
372
+ return dag
373
+ .container()
374
+ .from("ubuntu:24.04")
375
+ .withMountedDirectory("/app", source)
376
+ .withWorkdir("/app")
377
+ .withExec(["echo", "Analyze: replace with your static analysis command"])
378
+ .stdout();
379
+ }
380
+
381
+ /**
382
+ * Lint: placeholder for your linting tool.
383
+ */
384
+ @func()
385
+ async ${camelCase(prefix)}Lint(source: Directory): Promise<string> {
386
+ return dag
387
+ .container()
388
+ .from("ubuntu:24.04")
389
+ .withMountedDirectory("/app", source)
390
+ .withWorkdir("/app")
391
+ .withExec(["echo", "Lint: replace with your linting command"])
392
+ .stdout();
393
+ }
394
+
395
+ /**
396
+ * Test: placeholder for your test runner.
397
+ */
398
+ @func()
399
+ async ${camelCase(prefix)}Test(source: Directory): Promise<string> {
400
+ return dag
401
+ .container()
402
+ .from("ubuntu:24.04")
403
+ .withMountedDirectory("/app", source)
404
+ .withWorkdir("/app")
405
+ .withExec(["echo", "Test: replace with your test command"])
406
+ .stdout();
407
+ }
408
+
409
+ /**
410
+ * Build: placeholder for your build tool.
411
+ */
412
+ @func()
413
+ async ${camelCase(prefix)}Build(source: Directory): Promise<string> {
414
+ return dag
415
+ .container()
416
+ .from("ubuntu:24.04")
417
+ .withMountedDirectory("/app", source)
418
+ .withWorkdir("/app")
419
+ .withExec(["echo", "Build: replace with your build command"])
420
+ .stdout();
421
+ }
422
+
423
+ /**
424
+ * Tag: create a git tag for the release version.
425
+ */
426
+ @func()
427
+ async ${camelCase(prefix)}Tag(source: Directory, version: string): Promise<string> {
428
+ return dag
429
+ .container()
430
+ .from("ubuntu:24.04")
431
+ .withMountedDirectory("/app", source)
432
+ .withWorkdir("/app")
433
+ .withExec(["git", "tag", \`v\${version}\`])
434
+ .stdout();
435
+ }
436
+
437
+ /**
438
+ * Publish: placeholder for your publish step.
439
+ */
440
+ @func()
441
+ async ${camelCase(prefix)}Publish(source: Directory): Promise<string> {
442
+ return dag
443
+ .container()
444
+ .from("ubuntu:24.04")
445
+ .withMountedDirectory("/app", source)
446
+ .withWorkdir("/app")
447
+ .withExec(["echo", "Publish: replace with your publish command"])
448
+ .stdout();
449
+ }
450
+
451
+ /**
452
+ * Deploy: placeholder for your deployment step.
453
+ */
454
+ @func()
455
+ async ${camelCase(prefix)}Deploy(source: Directory): Promise<string> {
456
+ return dag
457
+ .container()
458
+ .from("ubuntu:24.04")
459
+ .withMountedDirectory("/app", source)
460
+ .withWorkdir("/app")
461
+ .withExec(["echo", "Deploy: replace with your deployment command"])
462
+ .stdout();
463
+ }
464
+ }
465
+ `;
466
+ }
467
+ //# sourceMappingURL=scaffold-templates-extra.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scaffold-templates-extra.js","sourceRoot":"","sources":["../../../src/infrastructure/pipeline/scaffold-templates-extra.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEhE,gFAAgF;AAEhF,0EAA0E;AAC1E,MAAM,UAAU,cAAc,CAAC,MAAc;IAC3C,OAAO;;;;;;;;;QASD,UAAU,CAAC,MAAM,CAAC;;;;;UAKhB,SAAS,CAAC,MAAM,CAAC;;;;;;;;;;;;;;;UAejB,SAAS,CAAC,MAAM,CAAC;;;;;;;;;;;;;;UAcjB,SAAS,CAAC,MAAM,CAAC;;;;;;;;;;;;;;UAcjB,SAAS,CAAC,MAAM,CAAC;;;;;;;;;;;;;;UAcjB,SAAS,CAAC,MAAM,CAAC;;;;;;;;;;;;;;UAcjB,SAAS,CAAC,MAAM,CAAC;;;;;;;;;;;;;;UAcjB,SAAS,CAAC,MAAM,CAAC;;;;;;;;;;CAU1B,CAAC;AACF,CAAC;AAED,gFAAgF;AAEhF,iFAAiF;AACjF,MAAM,UAAU,eAAe,CAAC,MAAc;IAC5C,OAAO;;;;;;;;;QASD,UAAU,CAAC,MAAM,CAAC;;;;;UAKhB,SAAS,CAAC,MAAM,CAAC;;;;;;;;;;;;;;;UAejB,SAAS,CAAC,MAAM,CAAC;;;;;;;;;;;;;;;UAejB,SAAS,CAAC,MAAM,CAAC;;;;;;;;;;;;;;;UAejB,SAAS,CAAC,MAAM,CAAC;;;;;;;;;;;;;;;UAejB,SAAS,CAAC,MAAM,CAAC;;;;;;;;;;;;;;UAcjB,SAAS,CAAC,MAAM,CAAC;;;;;;;;;;;;;;UAcjB,SAAS,CAAC,MAAM,CAAC;;;;;;;;;;CAU1B,CAAC;AACF,CAAC;AAED,gFAAgF;AAEhF,oFAAoF;AACpF,MAAM,UAAU,mBAAmB,CAAC,MAAc;IAChD,OAAO;;;;;;;;;QASD,UAAU,CAAC,MAAM,CAAC;;;;;UAKhB,SAAS,CAAC,MAAM,CAAC;;;;;;;;;;;;;;UAcjB,SAAS,CAAC,MAAM,CAAC;;;;;;;;;;;;;;UAcjB,SAAS,CAAC,MAAM,CAAC;;;;;;;;;;;;;;UAcjB,SAAS,CAAC,MAAM,CAAC;;;;;;;;;;;;;;UAcjB,SAAS,CAAC,MAAM,CAAC;;;;;;;;;;;;;;UAcjB,SAAS,CAAC,MAAM,CAAC;;;;;;;;;;;;;;UAcjB,SAAS,CAAC,MAAM,CAAC;;;;;;;;;;CAU1B,CAAC;AACF,CAAC;AAED,gFAAgF;AAEhF,0EAA0E;AAC1E,MAAM,UAAU,aAAa,CAAC,MAAc;IAC1C,OAAO;;;;;;;;;QASD,UAAU,CAAC,MAAM,CAAC;;;;;UAKhB,SAAS,CAAC,MAAM,CAAC;;;;;;;;;;;;;;UAcjB,SAAS,CAAC,MAAM,CAAC;;;;;;;;;;;;;;UAcjB,SAAS,CAAC,MAAM,CAAC;;;;;;;;;;;;;;UAcjB,SAAS,CAAC,MAAM,CAAC;;;;;;;;;;;;;;UAcjB,SAAS,CAAC,MAAM,CAAC;;;;;;;;;;;;;;UAcjB,SAAS,CAAC,MAAM,CAAC;;;;;;;;;;;;;;UAcjB,SAAS,CAAC,MAAM,CAAC;;;;;;;;;;CAU1B,CAAC;AACF,CAAC"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Dagger Module Scaffold Templates — Source File Content
3
+ *
4
+ * TS stacks: @dagger.io/dagger SDK with @object/@func decorators
5
+ * Python stacks: dagger SDK with @object_type/@function decorators
6
+ *
7
+ * SOLID: SRP — template content only (no generation logic)
8
+ */
9
+ /** Convert kebab-case to PascalCase. */
10
+ export declare function pascalCase(kebab: string): string;
11
+ /** Convert kebab-case to camelCase. */
12
+ export declare function camelCase(kebab: string): string;
13
+ /** Convert kebab-case to snake_case. */
14
+ export declare function snakeCase(kebab: string): string;
15
+ /** TypeScript Dagger module for a library stack (tsc, biome, jest, npm publish). */
16
+ export declare function typescriptLibSource(prefix: string): string;
17
+ /** TypeScript Dagger module for an application stack (tsc, biome, vitest, docker). */
18
+ export declare function typescriptAppSource(prefix: string): string;
19
+ /** Python Dagger module for a library stack (ruff, pytest, uv build/publish). */
20
+ export declare function pythonLibSource(prefix: string): string;
21
+ /** Python Dagger module for an application stack (ruff, pytest, docker). */
22
+ export declare function pythonAppSource(prefix: string): string;
23
+ //# sourceMappingURL=scaffold-templates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scaffold-templates.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/pipeline/scaffold-templates.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,wCAAwC;AACxC,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAKhD;AAED,uCAAuC;AACvC,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAG/C;AAED,wCAAwC;AACxC,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED,oFAAoF;AACpF,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAmH1D;AAED,sFAAsF;AACtF,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAoH1D;AAED,iFAAiF;AACjF,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAyGtD;AAED,4EAA4E;AAC5E,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CA2GtD"}