@mc1global/opencode-jarvis 0.1.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/application/agent-registry/dtos.d.ts +66 -0
- package/dist/application/agent-registry/dtos.d.ts.map +1 -0
- package/dist/application/agent-registry/dtos.js +11 -0
- package/dist/application/agent-registry/dtos.js.map +1 -0
- package/dist/application/agent-registry/use-cases.d.ts +39 -0
- package/dist/application/agent-registry/use-cases.d.ts.map +1 -0
- package/dist/application/agent-registry/use-cases.js +222 -0
- package/dist/application/agent-registry/use-cases.js.map +1 -0
- package/dist/application/azure-sync/dtos.d.ts +210 -0
- package/dist/application/azure-sync/dtos.d.ts.map +1 -0
- package/dist/application/azure-sync/dtos.js +11 -0
- package/dist/application/azure-sync/dtos.js.map +1 -0
- package/dist/application/azure-sync/field-builders.d.ts +54 -0
- package/dist/application/azure-sync/field-builders.d.ts.map +1 -0
- package/dist/application/azure-sync/field-builders.js +166 -0
- package/dist/application/azure-sync/field-builders.js.map +1 -0
- package/dist/application/azure-sync/index.d.ts +16 -0
- package/dist/application/azure-sync/index.d.ts.map +1 -0
- package/dist/application/azure-sync/index.js +10 -0
- package/dist/application/azure-sync/index.js.map +1 -0
- package/dist/application/azure-sync/pr-use-cases.d.ts +39 -0
- package/dist/application/azure-sync/pr-use-cases.d.ts.map +1 -0
- package/dist/application/azure-sync/pr-use-cases.js +192 -0
- package/dist/application/azure-sync/pr-use-cases.js.map +1 -0
- package/dist/application/azure-sync/pull-use-cases.d.ts +43 -0
- package/dist/application/azure-sync/pull-use-cases.d.ts.map +1 -0
- package/dist/application/azure-sync/pull-use-cases.js +322 -0
- package/dist/application/azure-sync/pull-use-cases.js.map +1 -0
- package/dist/application/azure-sync/push-use-cases.d.ts +53 -0
- package/dist/application/azure-sync/push-use-cases.d.ts.map +1 -0
- package/dist/application/azure-sync/push-use-cases.js +341 -0
- package/dist/application/azure-sync/push-use-cases.js.map +1 -0
- package/dist/application/azure-sync/reverse-field-builder.d.ts +52 -0
- package/dist/application/azure-sync/reverse-field-builder.d.ts.map +1 -0
- package/dist/application/azure-sync/reverse-field-builder.js +130 -0
- package/dist/application/azure-sync/reverse-field-builder.js.map +1 -0
- package/dist/application/azure-sync/task-push-use-cases.d.ts +68 -0
- package/dist/application/azure-sync/task-push-use-cases.d.ts.map +1 -0
- package/dist/application/azure-sync/task-push-use-cases.js +162 -0
- package/dist/application/azure-sync/task-push-use-cases.js.map +1 -0
- package/dist/application/config/config-service.d.ts +64 -0
- package/dist/application/config/config-service.d.ts.map +1 -0
- package/dist/application/config/config-service.js +110 -0
- package/dist/application/config/config-service.js.map +1 -0
- package/dist/application/config/index.d.ts +5 -0
- package/dist/application/config/index.d.ts.map +1 -0
- package/dist/application/config/index.js +5 -0
- package/dist/application/config/index.js.map +1 -0
- package/dist/application/kanban/board-use-cases.d.ts.map +1 -1
- package/dist/application/kanban/board-use-cases.js +14 -0
- package/dist/application/kanban/board-use-cases.js.map +1 -1
- package/dist/application/kanban/card-use-cases.d.ts +21 -2
- package/dist/application/kanban/card-use-cases.d.ts.map +1 -1
- package/dist/application/kanban/card-use-cases.js +180 -1
- package/dist/application/kanban/card-use-cases.js.map +1 -1
- package/dist/application/kanban/dtos.d.ts +59 -0
- package/dist/application/kanban/dtos.d.ts.map +1 -1
- package/dist/application/mcp/index.d.ts +10 -0
- package/dist/application/mcp/index.d.ts.map +1 -0
- package/dist/application/mcp/index.js +8 -0
- package/dist/application/mcp/index.js.map +1 -0
- package/dist/application/mcp/middleware.d.ts +91 -0
- package/dist/application/mcp/middleware.d.ts.map +1 -0
- package/dist/application/mcp/middleware.js +84 -0
- package/dist/application/mcp/middleware.js.map +1 -0
- package/dist/application/mcp/tool-adapter.d.ts +72 -0
- package/dist/application/mcp/tool-adapter.d.ts.map +1 -0
- package/dist/application/mcp/tool-adapter.js +132 -0
- package/dist/application/mcp/tool-adapter.js.map +1 -0
- package/dist/application/pipeline/dtos.d.ts +135 -0
- package/dist/application/pipeline/dtos.d.ts.map +1 -0
- package/dist/application/pipeline/dtos.js +11 -0
- package/dist/application/pipeline/dtos.js.map +1 -0
- package/dist/application/pipeline/index.d.ts +8 -0
- package/dist/application/pipeline/index.d.ts.map +1 -0
- package/dist/application/pipeline/index.js +7 -0
- package/dist/application/pipeline/index.js.map +1 -0
- package/dist/application/pipeline/use-cases.d.ts +67 -0
- package/dist/application/pipeline/use-cases.d.ts.map +1 -0
- package/dist/application/pipeline/use-cases.js +413 -0
- package/dist/application/pipeline/use-cases.js.map +1 -0
- package/dist/application/rag/use-cases.d.ts +3 -0
- package/dist/application/rag/use-cases.d.ts.map +1 -1
- package/dist/application/rag/use-cases.js +112 -34
- package/dist/application/rag/use-cases.js.map +1 -1
- package/dist/domain/agent-registry/entities.d.ts +68 -0
- package/dist/domain/agent-registry/entities.d.ts.map +1 -0
- package/dist/domain/agent-registry/entities.js +177 -0
- package/dist/domain/agent-registry/entities.js.map +1 -0
- package/dist/domain/agent-registry/repositories.d.ts +56 -0
- package/dist/domain/agent-registry/repositories.d.ts.map +1 -0
- package/dist/domain/agent-registry/repositories.js +12 -0
- package/dist/domain/agent-registry/repositories.js.map +1 -0
- package/dist/domain/agent-registry/services.d.ts +87 -0
- package/dist/domain/agent-registry/services.d.ts.map +1 -0
- package/dist/domain/agent-registry/services.js +188 -0
- package/dist/domain/agent-registry/services.js.map +1 -0
- package/dist/domain/agent-registry/value-objects.d.ts +145 -0
- package/dist/domain/agent-registry/value-objects.d.ts.map +1 -0
- package/dist/domain/agent-registry/value-objects.js +339 -0
- package/dist/domain/agent-registry/value-objects.js.map +1 -0
- package/dist/domain/azure-sync/entities.d.ts +165 -0
- package/dist/domain/azure-sync/entities.d.ts.map +1 -0
- package/dist/domain/azure-sync/entities.js +203 -0
- package/dist/domain/azure-sync/entities.js.map +1 -0
- package/dist/domain/azure-sync/index.d.ts +16 -0
- package/dist/domain/azure-sync/index.d.ts.map +1 -0
- package/dist/domain/azure-sync/index.js +14 -0
- package/dist/domain/azure-sync/index.js.map +1 -0
- package/dist/domain/azure-sync/ports.d.ts +117 -0
- package/dist/domain/azure-sync/ports.d.ts.map +1 -0
- package/dist/domain/azure-sync/ports.js +13 -0
- package/dist/domain/azure-sync/ports.js.map +1 -0
- package/dist/domain/azure-sync/repositories.d.ts +53 -0
- package/dist/domain/azure-sync/repositories.d.ts.map +1 -0
- package/dist/domain/azure-sync/repositories.js +11 -0
- package/dist/domain/azure-sync/repositories.js.map +1 -0
- package/dist/domain/azure-sync/services.d.ts +107 -0
- package/dist/domain/azure-sync/services.d.ts.map +1 -0
- package/dist/domain/azure-sync/services.js +316 -0
- package/dist/domain/azure-sync/services.js.map +1 -0
- package/dist/domain/azure-sync/value-objects.d.ts +129 -0
- package/dist/domain/azure-sync/value-objects.d.ts.map +1 -0
- package/dist/domain/azure-sync/value-objects.js +343 -0
- package/dist/domain/azure-sync/value-objects.js.map +1 -0
- package/dist/domain/config/index.d.ts +9 -0
- package/dist/domain/config/index.d.ts.map +1 -0
- package/dist/domain/config/index.js +7 -0
- package/dist/domain/config/index.js.map +1 -0
- package/dist/domain/config/repositories.d.ts +36 -0
- package/dist/domain/config/repositories.d.ts.map +1 -0
- package/dist/domain/config/repositories.js +12 -0
- package/dist/domain/config/repositories.js.map +1 -0
- package/dist/domain/config/value-objects.d.ts +112 -0
- package/dist/domain/config/value-objects.d.ts.map +1 -0
- package/dist/domain/config/value-objects.js +93 -0
- package/dist/domain/config/value-objects.js.map +1 -0
- package/dist/domain/governance/policies.d.ts.map +1 -1
- package/dist/domain/governance/policies.js +70 -0
- package/dist/domain/governance/policies.js.map +1 -1
- package/dist/domain/kanban/entities.d.ts +67 -15
- package/dist/domain/kanban/entities.d.ts.map +1 -1
- package/dist/domain/kanban/entities.js +177 -14
- package/dist/domain/kanban/entities.js.map +1 -1
- package/dist/domain/kanban/grooming.d.ts +27 -7
- package/dist/domain/kanban/grooming.d.ts.map +1 -1
- package/dist/domain/kanban/grooming.js +50 -12
- package/dist/domain/kanban/grooming.js.map +1 -1
- package/dist/domain/kanban/services.d.ts +16 -2
- package/dist/domain/kanban/services.d.ts.map +1 -1
- package/dist/domain/kanban/services.js +29 -2
- package/dist/domain/kanban/services.js.map +1 -1
- package/dist/domain/kanban/value-objects.d.ts +48 -0
- package/dist/domain/kanban/value-objects.d.ts.map +1 -1
- package/dist/domain/kanban/value-objects.js +53 -0
- package/dist/domain/kanban/value-objects.js.map +1 -1
- package/dist/domain/pipeline/gate.d.ts +75 -0
- package/dist/domain/pipeline/gate.d.ts.map +1 -0
- package/dist/domain/pipeline/gate.js +158 -0
- package/dist/domain/pipeline/gate.js.map +1 -0
- package/dist/domain/pipeline/index.d.ts +13 -0
- package/dist/domain/pipeline/index.d.ts.map +1 -0
- package/dist/domain/pipeline/index.js +14 -0
- package/dist/domain/pipeline/index.js.map +1 -0
- package/dist/domain/pipeline/pipeline.d.ts +99 -0
- package/dist/domain/pipeline/pipeline.d.ts.map +1 -0
- package/dist/domain/pipeline/pipeline.js +257 -0
- package/dist/domain/pipeline/pipeline.js.map +1 -0
- package/dist/domain/pipeline/ports.d.ts +120 -0
- package/dist/domain/pipeline/ports.d.ts.map +1 -0
- package/dist/domain/pipeline/ports.js +12 -0
- package/dist/domain/pipeline/ports.js.map +1 -0
- package/dist/domain/pipeline/repositories.d.ts +66 -0
- package/dist/domain/pipeline/repositories.d.ts.map +1 -0
- package/dist/domain/pipeline/repositories.js +11 -0
- package/dist/domain/pipeline/repositories.js.map +1 -0
- package/dist/domain/pipeline/services.d.ts +77 -0
- package/dist/domain/pipeline/services.d.ts.map +1 -0
- package/dist/domain/pipeline/services.js +156 -0
- package/dist/domain/pipeline/services.js.map +1 -0
- package/dist/domain/pipeline/value-objects.d.ts +117 -0
- package/dist/domain/pipeline/value-objects.d.ts.map +1 -0
- package/dist/domain/pipeline/value-objects.js +313 -0
- package/dist/domain/pipeline/value-objects.js.map +1 -0
- package/dist/domain/rag/value-objects.d.ts +9 -2
- package/dist/domain/rag/value-objects.d.ts.map +1 -1
- package/dist/domain/rag/value-objects.js +8 -2
- package/dist/domain/rag/value-objects.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +113 -75
- package/dist/index.js.map +1 -1
- package/dist/infrastructure/agent-registry/agent-profile-repository.d.ts +29 -0
- package/dist/infrastructure/agent-registry/agent-profile-repository.d.ts.map +1 -0
- package/dist/infrastructure/agent-registry/agent-profile-repository.js +109 -0
- package/dist/infrastructure/agent-registry/agent-profile-repository.js.map +1 -0
- package/dist/infrastructure/agent-registry/agent-session-adapter.d.ts +28 -0
- package/dist/infrastructure/agent-registry/agent-session-adapter.d.ts.map +1 -0
- package/dist/infrastructure/agent-registry/agent-session-adapter.js +61 -0
- package/dist/infrastructure/agent-registry/agent-session-adapter.js.map +1 -0
- package/dist/infrastructure/agent-registry/built-in-profiles.d.ts +19 -0
- package/dist/infrastructure/agent-registry/built-in-profiles.d.ts.map +1 -0
- package/dist/infrastructure/agent-registry/built-in-profiles.js +210 -0
- package/dist/infrastructure/agent-registry/built-in-profiles.js.map +1 -0
- package/dist/infrastructure/azure-sync/azure-auth.d.ts +40 -0
- package/dist/infrastructure/azure-sync/azure-auth.d.ts.map +1 -0
- package/dist/infrastructure/azure-sync/azure-auth.js +94 -0
- package/dist/infrastructure/azure-sync/azure-auth.js.map +1 -0
- package/dist/infrastructure/azure-sync/azure-devops-client.d.ts +43 -0
- package/dist/infrastructure/azure-sync/azure-devops-client.d.ts.map +1 -0
- package/dist/infrastructure/azure-sync/azure-devops-client.js +296 -0
- package/dist/infrastructure/azure-sync/azure-devops-client.js.map +1 -0
- package/dist/infrastructure/azure-sync/index.d.ts +9 -0
- package/dist/infrastructure/azure-sync/index.d.ts.map +1 -0
- package/dist/infrastructure/azure-sync/index.js +12 -0
- package/dist/infrastructure/azure-sync/index.js.map +1 -0
- package/dist/infrastructure/azure-sync/sqlite-sync-repository.d.ts +39 -0
- package/dist/infrastructure/azure-sync/sqlite-sync-repository.d.ts.map +1 -0
- package/dist/infrastructure/azure-sync/sqlite-sync-repository.js +202 -0
- package/dist/infrastructure/azure-sync/sqlite-sync-repository.js.map +1 -0
- package/dist/infrastructure/config/index.d.ts +5 -0
- package/dist/infrastructure/config/index.d.ts.map +1 -0
- package/dist/infrastructure/config/index.js +5 -0
- package/dist/infrastructure/config/index.js.map +1 -0
- package/dist/infrastructure/config/yaml-config-repository.d.ts +22 -0
- package/dist/infrastructure/config/yaml-config-repository.d.ts.map +1 -0
- package/dist/infrastructure/config/yaml-config-repository.js +68 -0
- package/dist/infrastructure/config/yaml-config-repository.js.map +1 -0
- package/dist/infrastructure/database/sqlite-adapter.d.ts +13 -15
- package/dist/infrastructure/database/sqlite-adapter.d.ts.map +1 -1
- package/dist/infrastructure/database/sqlite-adapter.js +31 -17
- package/dist/infrastructure/database/sqlite-adapter.js.map +1 -1
- package/dist/infrastructure/domain-map/llm-prompt-factory.d.ts +21 -0
- package/dist/infrastructure/domain-map/llm-prompt-factory.d.ts.map +1 -0
- package/dist/infrastructure/domain-map/llm-prompt-factory.js +49 -0
- package/dist/infrastructure/domain-map/llm-prompt-factory.js.map +1 -0
- package/dist/infrastructure/kanban/card-repository.d.ts +6 -0
- package/dist/infrastructure/kanban/card-repository.d.ts.map +1 -1
- package/dist/infrastructure/kanban/card-repository.js +79 -7
- package/dist/infrastructure/kanban/card-repository.js.map +1 -1
- package/dist/infrastructure/pipeline/dagger-adapter.d.ts +50 -0
- package/dist/infrastructure/pipeline/dagger-adapter.d.ts.map +1 -0
- package/dist/infrastructure/pipeline/dagger-adapter.js +153 -0
- package/dist/infrastructure/pipeline/dagger-adapter.js.map +1 -0
- package/dist/infrastructure/pipeline/dagger-scaffold-generator.d.ts +35 -0
- package/dist/infrastructure/pipeline/dagger-scaffold-generator.d.ts.map +1 -0
- package/dist/infrastructure/pipeline/dagger-scaffold-generator.js +132 -0
- package/dist/infrastructure/pipeline/dagger-scaffold-generator.js.map +1 -0
- package/dist/infrastructure/pipeline/index.d.ts +20 -0
- package/dist/infrastructure/pipeline/index.d.ts.map +1 -0
- package/dist/infrastructure/pipeline/index.js +19 -0
- package/dist/infrastructure/pipeline/index.js.map +1 -0
- package/dist/infrastructure/pipeline/pipeline-template-registry.d.ts +23 -0
- package/dist/infrastructure/pipeline/pipeline-template-registry.d.ts.map +1 -0
- package/dist/infrastructure/pipeline/pipeline-template-registry.js +63 -0
- package/dist/infrastructure/pipeline/pipeline-template-registry.js.map +1 -0
- package/dist/infrastructure/pipeline/scaffold-templates-extra.d.ts +17 -0
- package/dist/infrastructure/pipeline/scaffold-templates-extra.d.ts.map +1 -0
- package/dist/infrastructure/pipeline/scaffold-templates-extra.js +467 -0
- package/dist/infrastructure/pipeline/scaffold-templates-extra.js.map +1 -0
- package/dist/infrastructure/pipeline/scaffold-templates.d.ts +23 -0
- package/dist/infrastructure/pipeline/scaffold-templates.d.ts.map +1 -0
- package/dist/infrastructure/pipeline/scaffold-templates.js +476 -0
- package/dist/infrastructure/pipeline/scaffold-templates.js.map +1 -0
- package/dist/infrastructure/pipeline/sqlite-pipeline-repository.d.ts +32 -0
- package/dist/infrastructure/pipeline/sqlite-pipeline-repository.d.ts.map +1 -0
- package/dist/infrastructure/pipeline/sqlite-pipeline-repository.js +197 -0
- package/dist/infrastructure/pipeline/sqlite-pipeline-repository.js.map +1 -0
- package/dist/mcp-server.d.ts +3 -0
- package/dist/mcp-server.d.ts.map +1 -0
- package/dist/mcp-server.js +300 -0
- package/dist/mcp-server.js.map +1 -0
- package/dist/tools/agent-registry-tools.d.ts +11 -0
- package/dist/tools/agent-registry-tools.d.ts.map +1 -0
- package/dist/tools/agent-registry-tools.js +208 -0
- package/dist/tools/agent-registry-tools.js.map +1 -0
- package/dist/tools/azure-sync-tools.d.ts +15 -0
- package/dist/tools/azure-sync-tools.d.ts.map +1 -0
- package/dist/tools/azure-sync-tools.js +332 -0
- package/dist/tools/azure-sync-tools.js.map +1 -0
- package/dist/tools/kanban-card-tools.d.ts.map +1 -1
- package/dist/tools/kanban-card-tools.js +41 -16
- package/dist/tools/kanban-card-tools.js.map +1 -1
- package/dist/tools/kanban-gate-tools.d.ts +7 -0
- package/dist/tools/kanban-gate-tools.d.ts.map +1 -0
- package/dist/tools/kanban-gate-tools.js +106 -0
- package/dist/tools/kanban-gate-tools.js.map +1 -0
- package/dist/tools/kanban-grooming-tools.d.ts +7 -0
- package/dist/tools/kanban-grooming-tools.d.ts.map +1 -0
- package/dist/tools/kanban-grooming-tools.js +180 -0
- package/dist/tools/kanban-grooming-tools.js.map +1 -0
- package/dist/tools/pipeline-tools.d.ts +15 -0
- package/dist/tools/pipeline-tools.d.ts.map +1 -0
- package/dist/tools/pipeline-tools.js +424 -0
- package/dist/tools/pipeline-tools.js.map +1 -0
- package/package.json +9 -3
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
import { ok, fail } from "../../domain/shared/value-objects.js";
|
|
2
|
+
// ─── Default Shell Executor (child_process) ──────────────────────────────────
|
|
3
|
+
/**
|
|
4
|
+
* Default shell executor using Node.js/Bun child_process.
|
|
5
|
+
* Spawns processes with timeout support.
|
|
6
|
+
*/
|
|
7
|
+
export class ChildProcessExecutor {
|
|
8
|
+
async exec(command, args, options) {
|
|
9
|
+
const { spawn } = await import("child_process");
|
|
10
|
+
return new Promise((resolve) => {
|
|
11
|
+
const child = spawn(command, [...args], {
|
|
12
|
+
cwd: options.cwd,
|
|
13
|
+
env: { ...process.env, ...options.env },
|
|
14
|
+
stdio: ["ignore", "pipe", "pipe"],
|
|
15
|
+
});
|
|
16
|
+
let stdout = "";
|
|
17
|
+
let stderr = "";
|
|
18
|
+
child.stdout.on("data", (data) => {
|
|
19
|
+
stdout += data.toString();
|
|
20
|
+
});
|
|
21
|
+
child.stderr.on("data", (data) => {
|
|
22
|
+
stderr += data.toString();
|
|
23
|
+
});
|
|
24
|
+
let timedOut = false;
|
|
25
|
+
let timer;
|
|
26
|
+
if (options.timeoutMs !== undefined && options.timeoutMs > 0) {
|
|
27
|
+
timer = setTimeout(() => {
|
|
28
|
+
timedOut = true;
|
|
29
|
+
child.kill("SIGTERM");
|
|
30
|
+
}, options.timeoutMs);
|
|
31
|
+
}
|
|
32
|
+
child.on("close", (code) => {
|
|
33
|
+
if (timer !== undefined)
|
|
34
|
+
clearTimeout(timer);
|
|
35
|
+
if (timedOut) {
|
|
36
|
+
resolve({
|
|
37
|
+
stdout,
|
|
38
|
+
stderr: stderr + "\n[TIMEOUT] Process killed after timeout",
|
|
39
|
+
exitCode: 124, // Standard timeout exit code
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
resolve({
|
|
44
|
+
stdout,
|
|
45
|
+
stderr,
|
|
46
|
+
exitCode: code ?? 1,
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
child.on("error", (err) => {
|
|
51
|
+
if (timer !== undefined)
|
|
52
|
+
clearTimeout(timer);
|
|
53
|
+
resolve({
|
|
54
|
+
stdout: "",
|
|
55
|
+
stderr: err.message,
|
|
56
|
+
exitCode: 127, // Command not found
|
|
57
|
+
});
|
|
58
|
+
});
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
// ─── Dagger Adapter ──────────────────────────────────────────────────────────
|
|
63
|
+
/** Default timeout for Dagger operations (5 minutes). */
|
|
64
|
+
const DEFAULT_TIMEOUT_MS = 300_000;
|
|
65
|
+
/** Default timeout for environment checks (10 seconds). */
|
|
66
|
+
const CHECK_TIMEOUT_MS = 10_000;
|
|
67
|
+
export class DaggerCliAdapter {
|
|
68
|
+
shell;
|
|
69
|
+
constructor(shell) {
|
|
70
|
+
this.shell = shell ?? new ChildProcessExecutor();
|
|
71
|
+
}
|
|
72
|
+
async checkEnvironment() {
|
|
73
|
+
// Check Dagger CLI
|
|
74
|
+
const daggerResult = await this.shell.exec("dagger", ["version"], { timeoutMs: CHECK_TIMEOUT_MS });
|
|
75
|
+
const daggerAvailable = daggerResult.exitCode === 0;
|
|
76
|
+
const daggerVersion = daggerAvailable
|
|
77
|
+
? this.parseDaggerVersion(daggerResult.stdout)
|
|
78
|
+
: undefined;
|
|
79
|
+
// Check container runtime
|
|
80
|
+
const runtime = await this.detectContainerRuntime();
|
|
81
|
+
return {
|
|
82
|
+
daggerAvailable,
|
|
83
|
+
...(daggerVersion !== undefined ? { daggerVersion } : {}),
|
|
84
|
+
...(runtime !== undefined ? { containerRuntime: runtime.type } : {}),
|
|
85
|
+
runtimeReady: runtime?.ready ?? false,
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
async run(request) {
|
|
89
|
+
// Pre-flight: check Dagger availability
|
|
90
|
+
const envCheck = await this.checkEnvironment();
|
|
91
|
+
if (!envCheck.daggerAvailable) {
|
|
92
|
+
return fail("Dagger CLI is not installed or not accessible. " +
|
|
93
|
+
"Install from https://docs.dagger.io/install");
|
|
94
|
+
}
|
|
95
|
+
if (!envCheck.runtimeReady) {
|
|
96
|
+
return fail("No container runtime is available. " +
|
|
97
|
+
"Ensure Docker Desktop or compatible runtime is running.");
|
|
98
|
+
}
|
|
99
|
+
// Build command arguments
|
|
100
|
+
const args = this.buildRunArgs(request);
|
|
101
|
+
const timeoutMs = request.timeoutMs ?? DEFAULT_TIMEOUT_MS;
|
|
102
|
+
const startTime = Date.now();
|
|
103
|
+
const result = await this.shell.exec("dagger", args, {
|
|
104
|
+
cwd: request.moduleDir,
|
|
105
|
+
timeoutMs,
|
|
106
|
+
});
|
|
107
|
+
const durationMs = Date.now() - startTime;
|
|
108
|
+
const output = [result.stdout, result.stderr]
|
|
109
|
+
.filter((s) => s.length > 0)
|
|
110
|
+
.join("\n");
|
|
111
|
+
const runResult = {
|
|
112
|
+
success: result.exitCode === 0,
|
|
113
|
+
output,
|
|
114
|
+
exitCode: result.exitCode,
|
|
115
|
+
durationMs,
|
|
116
|
+
};
|
|
117
|
+
return ok(runResult);
|
|
118
|
+
}
|
|
119
|
+
// ─── Private Helpers ─────────────────────────────────────────────────
|
|
120
|
+
buildRunArgs(request) {
|
|
121
|
+
const args = ["call", request.functionName];
|
|
122
|
+
if (request.args) {
|
|
123
|
+
args.push(...request.args);
|
|
124
|
+
}
|
|
125
|
+
return args;
|
|
126
|
+
}
|
|
127
|
+
parseDaggerVersion(stdout) {
|
|
128
|
+
// Dagger version output format: "dagger v0.15.1 (registry.dagger.io/engine) ..."
|
|
129
|
+
const match = /v?(\d+\.\d+\.\d+)/.exec(stdout);
|
|
130
|
+
return match?.[1];
|
|
131
|
+
}
|
|
132
|
+
async detectContainerRuntime() {
|
|
133
|
+
// Try Docker first (most common)
|
|
134
|
+
const dockerResult = await this.shell.exec("docker", ["info", "--format", "{{.ServerVersion}}"], { timeoutMs: CHECK_TIMEOUT_MS });
|
|
135
|
+
if (dockerResult.exitCode === 0) {
|
|
136
|
+
return { type: "docker", ready: true };
|
|
137
|
+
}
|
|
138
|
+
// Docker installed but daemon not running
|
|
139
|
+
if (dockerResult.exitCode !== 127) {
|
|
140
|
+
return { type: "docker", ready: false };
|
|
141
|
+
}
|
|
142
|
+
// Try Apple Container (macOS Swift/Xcode workflows)
|
|
143
|
+
const containerResult = await this.shell.exec("container", ["--version"], { timeoutMs: CHECK_TIMEOUT_MS });
|
|
144
|
+
if (containerResult.exitCode === 0) {
|
|
145
|
+
return { type: "apple-container", ready: true };
|
|
146
|
+
}
|
|
147
|
+
if (containerResult.exitCode !== 127) {
|
|
148
|
+
return { type: "apple-container", ready: false };
|
|
149
|
+
}
|
|
150
|
+
return undefined;
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
//# sourceMappingURL=dagger-adapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dagger-adapter.js","sourceRoot":"","sources":["../../../src/infrastructure/pipeline/dagger-adapter.ts"],"names":[],"mappings":"AAsBA,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,sCAAsC,CAAC;AA4BhE,gFAAgF;AAEhF;;;GAGG;AACH,MAAM,OAAO,oBAAoB;IAC/B,KAAK,CAAC,IAAI,CACR,OAAe,EACf,IAAuB,EACvB,OAAyB;QAEzB,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC;QAEhD,OAAO,IAAI,OAAO,CAAkB,CAAC,OAAO,EAAE,EAAE;YAC9C,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE;gBACtC,GAAG,EAAE,OAAO,CAAC,GAAG;gBAChB,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE;gBACvC,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;aAClC,CAAC,CAAC;YAEH,IAAI,MAAM,GAAG,EAAE,CAAC;YAChB,IAAI,MAAM,GAAG,EAAE,CAAC;YAEhB,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;gBACvC,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC5B,CAAC,CAAC,CAAC;YAEH,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;gBACvC,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC5B,CAAC,CAAC,CAAC;YAEH,IAAI,QAAQ,GAAG,KAAK,CAAC;YACrB,IAAI,KAAgD,CAAC;YAErD,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,IAAI,OAAO,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC;gBAC7D,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;oBACtB,QAAQ,GAAG,IAAI,CAAC;oBAChB,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACxB,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;YACxB,CAAC;YAED,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAmB,EAAE,EAAE;gBACxC,IAAI,KAAK,KAAK,SAAS;oBAAE,YAAY,CAAC,KAAK,CAAC,CAAC;gBAC7C,IAAI,QAAQ,EAAE,CAAC;oBACb,OAAO,CAAC;wBACN,MAAM;wBACN,MAAM,EAAE,MAAM,GAAG,0CAA0C;wBAC3D,QAAQ,EAAE,GAAG,EAAE,6BAA6B;qBAC7C,CAAC,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC;wBACN,MAAM;wBACN,MAAM;wBACN,QAAQ,EAAE,IAAI,IAAI,CAAC;qBACpB,CAAC,CAAC;gBACL,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAU,EAAE,EAAE;gBAC/B,IAAI,KAAK,KAAK,SAAS;oBAAE,YAAY,CAAC,KAAK,CAAC,CAAC;gBAC7C,OAAO,CAAC;oBACN,MAAM,EAAE,EAAE;oBACV,MAAM,EAAE,GAAG,CAAC,OAAO;oBACnB,QAAQ,EAAE,GAAG,EAAE,oBAAoB;iBACpC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AAED,gFAAgF;AAEhF,yDAAyD;AACzD,MAAM,kBAAkB,GAAG,OAAO,CAAC;AAEnC,2DAA2D;AAC3D,MAAM,gBAAgB,GAAG,MAAM,CAAC;AAEhC,MAAM,OAAO,gBAAgB;IACV,KAAK,CAAgB;IAEtC,YAAY,KAAqB;QAC/B,IAAI,CAAC,KAAK,GAAG,KAAK,IAAI,IAAI,oBAAoB,EAAE,CAAC;IACnD,CAAC;IAED,KAAK,CAAC,gBAAgB;QACpB,mBAAmB;QACnB,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CACxC,QAAQ,EACR,CAAC,SAAS,CAAC,EACX,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAChC,CAAC;QAEF,MAAM,eAAe,GAAG,YAAY,CAAC,QAAQ,KAAK,CAAC,CAAC;QACpD,MAAM,aAAa,GAAG,eAAe;YACnC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,MAAM,CAAC;YAC9C,CAAC,CAAC,SAAS,CAAC;QAEd,0BAA0B;QAC1B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAEpD,OAAO;YACL,eAAe;YACf,GAAG,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACzD,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACpE,YAAY,EAAE,OAAO,EAAE,KAAK,IAAI,KAAK;SACtC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,OAAyB;QACjC,wCAAwC;QACxC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC/C,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC;YAC9B,OAAO,IAAI,CACT,iDAAiD;gBACjD,6CAA6C,CAC9C,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;YAC3B,OAAO,IAAI,CACT,qCAAqC;gBACrC,yDAAyD,CAC1D,CAAC;QACJ,CAAC;QAED,0BAA0B;QAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QACxC,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,kBAAkB,CAAC;QAE1D,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE;YACnD,GAAG,EAAE,OAAO,CAAC,SAAS;YACtB,SAAS;SACV,CAAC,CAAC;QACH,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QAE1C,MAAM,MAAM,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC;aAC1C,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;aAC3B,IAAI,CAAC,IAAI,CAAC,CAAC;QAEd,MAAM,SAAS,GAAoB;YACjC,OAAO,EAAE,MAAM,CAAC,QAAQ,KAAK,CAAC;YAC9B,MAAM;YACN,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,UAAU;SACX,CAAC;QAEF,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC;IACvB,CAAC;IAED,wEAAwE;IAEhE,YAAY,CAAC,OAAyB;QAC5C,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;QAC5C,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,IAAI,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,kBAAkB,CAAC,MAAc;QACvC,iFAAiF;QACjF,MAAM,KAAK,GAAG,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC/C,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAEO,KAAK,CAAC,sBAAsB;QAGlC,iCAAiC;QACjC,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CACxC,QAAQ,EACR,CAAC,MAAM,EAAE,UAAU,EAAE,oBAAoB,CAAC,EAC1C,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAChC,CAAC;QAEF,IAAI,YAAY,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;YAChC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QACzC,CAAC;QAED,0CAA0C;QAC1C,IAAI,YAAY,CAAC,QAAQ,KAAK,GAAG,EAAE,CAAC;YAClC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;QAC1C,CAAC;QAED,oDAAoD;QACpD,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAC3C,WAAW,EACX,CAAC,WAAW,CAAC,EACb,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAChC,CAAC;QAEF,IAAI,eAAe,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;YACnC,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QAClD,CAAC;QAED,IAAI,eAAe,CAAC,QAAQ,KAAK,GAAG,EAAE,CAAC;YACrC,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;QACnD,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;CACF"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dagger Scaffold Generator
|
|
3
|
+
*
|
|
4
|
+
* Generates Dagger module scaffold files for supported stack templates.
|
|
5
|
+
* Each stack produces a complete set of files (.dagger/dagger.json,
|
|
6
|
+
* .dagger/src/index.ts or .dagger/src/{name}/main.py) with real CI/CD
|
|
7
|
+
* functions that match the gate-to-function mapping in the template registry.
|
|
8
|
+
*
|
|
9
|
+
* Template source content is in scaffold-templates.ts (SRP split).
|
|
10
|
+
*
|
|
11
|
+
* SOLID: SRP — scaffold generation orchestration only
|
|
12
|
+
* SOLID: OCP — new stacks added by extending the generator map
|
|
13
|
+
* SOLID: DIP — implements domain ScaffoldPort interface
|
|
14
|
+
*/
|
|
15
|
+
import type { ScaffoldPort, ScaffoldOutput } from "../../domain/pipeline/ports.js";
|
|
16
|
+
/**
|
|
17
|
+
* Dagger scaffold generator for TypeScript and Python stacks.
|
|
18
|
+
*
|
|
19
|
+
* Generates complete Dagger module files with real CI/CD functions
|
|
20
|
+
* that match the gate-to-function mapping in the template registry.
|
|
21
|
+
* Function names use the stack prefix (e.g., "typescript-lib-lint"
|
|
22
|
+
* becomes "typescriptLibLint" in TS or "typescript_lib_lint" in Python).
|
|
23
|
+
*/
|
|
24
|
+
export declare class DaggerScaffoldGenerator implements ScaffoldPort {
|
|
25
|
+
/** Generate scaffold files for a supported stack. */
|
|
26
|
+
generate(stack: string): ScaffoldOutput | undefined;
|
|
27
|
+
/** List all stacks with scaffold support. */
|
|
28
|
+
supportedStacks(): readonly string[];
|
|
29
|
+
private buildScaffold;
|
|
30
|
+
private getSdk;
|
|
31
|
+
private generateFiles;
|
|
32
|
+
private getTypescriptSource;
|
|
33
|
+
private getPythonSource;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=dagger-scaffold-generator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dagger-scaffold-generator.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/pipeline/dagger-scaffold-generator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EACV,YAAY,EACZ,cAAc,EAEf,MAAM,gCAAgC,CAAC;AAoDxC;;;;;;;GAOG;AACH,qBAAa,uBAAwB,YAAW,YAAY;IAC1D,qDAAqD;IACrD,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IAOnD,6CAA6C;IAC7C,eAAe,IAAI,SAAS,MAAM,EAAE;IAMpC,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,MAAM;IAKd,OAAO,CAAC,aAAa;IAmCrB,OAAO,CAAC,mBAAmB;IAmB3B,OAAO,CAAC,eAAe;CAUxB"}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dagger Scaffold Generator
|
|
3
|
+
*
|
|
4
|
+
* Generates Dagger module scaffold files for supported stack templates.
|
|
5
|
+
* Each stack produces a complete set of files (.dagger/dagger.json,
|
|
6
|
+
* .dagger/src/index.ts or .dagger/src/{name}/main.py) with real CI/CD
|
|
7
|
+
* functions that match the gate-to-function mapping in the template registry.
|
|
8
|
+
*
|
|
9
|
+
* Template source content is in scaffold-templates.ts (SRP split).
|
|
10
|
+
*
|
|
11
|
+
* SOLID: SRP — scaffold generation orchestration only
|
|
12
|
+
* SOLID: OCP — new stacks added by extending the generator map
|
|
13
|
+
* SOLID: DIP — implements domain ScaffoldPort interface
|
|
14
|
+
*/
|
|
15
|
+
import { typescriptLibSource, typescriptAppSource, pythonLibSource, pythonAppSource, } from "./scaffold-templates.js";
|
|
16
|
+
import { swiftIosSource, csharpAppSource, kotlinAndroidSource, genericSource, } from "./scaffold-templates-extra.js";
|
|
17
|
+
// ─── Supported Stacks ────────────────────────────────────────────────────────
|
|
18
|
+
const SUPPORTED_STACKS = [
|
|
19
|
+
"typescript-lib",
|
|
20
|
+
"typescript-app",
|
|
21
|
+
"python-lib",
|
|
22
|
+
"python-app",
|
|
23
|
+
"swift-ios",
|
|
24
|
+
"csharp-app",
|
|
25
|
+
"kotlin-android",
|
|
26
|
+
"generic",
|
|
27
|
+
];
|
|
28
|
+
function isSupportedStack(stack) {
|
|
29
|
+
return SUPPORTED_STACKS.includes(stack);
|
|
30
|
+
}
|
|
31
|
+
// ─── Dagger JSON Generator ───────────────────────────────────────────────────
|
|
32
|
+
/**
|
|
33
|
+
* Generate dagger.json module configuration.
|
|
34
|
+
*/
|
|
35
|
+
function daggerJson(name, sdk) {
|
|
36
|
+
return JSON.stringify({
|
|
37
|
+
name,
|
|
38
|
+
sdk,
|
|
39
|
+
engineVersion: "v0.18.5",
|
|
40
|
+
}, null, 2);
|
|
41
|
+
}
|
|
42
|
+
// ─── Generator Implementation ────────────────────────────────────────────────
|
|
43
|
+
/**
|
|
44
|
+
* Dagger scaffold generator for TypeScript and Python stacks.
|
|
45
|
+
*
|
|
46
|
+
* Generates complete Dagger module files with real CI/CD functions
|
|
47
|
+
* that match the gate-to-function mapping in the template registry.
|
|
48
|
+
* Function names use the stack prefix (e.g., "typescript-lib-lint"
|
|
49
|
+
* becomes "typescriptLibLint" in TS or "typescript_lib_lint" in Python).
|
|
50
|
+
*/
|
|
51
|
+
export class DaggerScaffoldGenerator {
|
|
52
|
+
/** Generate scaffold files for a supported stack. */
|
|
53
|
+
generate(stack) {
|
|
54
|
+
if (!isSupportedStack(stack)) {
|
|
55
|
+
return undefined;
|
|
56
|
+
}
|
|
57
|
+
return this.buildScaffold(stack);
|
|
58
|
+
}
|
|
59
|
+
/** List all stacks with scaffold support. */
|
|
60
|
+
supportedStacks() {
|
|
61
|
+
return [...SUPPORTED_STACKS];
|
|
62
|
+
}
|
|
63
|
+
// ─── Private ─────────────────────────────────────────────────────────
|
|
64
|
+
buildScaffold(stack) {
|
|
65
|
+
const sdk = this.getSdk(stack);
|
|
66
|
+
const moduleName = stack;
|
|
67
|
+
const files = this.generateFiles(stack, sdk, moduleName);
|
|
68
|
+
return { stack, sdk, moduleName, files };
|
|
69
|
+
}
|
|
70
|
+
getSdk(stack) {
|
|
71
|
+
if (stack.startsWith("python"))
|
|
72
|
+
return "python";
|
|
73
|
+
return "typescript";
|
|
74
|
+
}
|
|
75
|
+
generateFiles(stack, sdk, moduleName) {
|
|
76
|
+
const files = [];
|
|
77
|
+
// dagger.json (always first)
|
|
78
|
+
files.push({
|
|
79
|
+
path: ".dagger/dagger.json",
|
|
80
|
+
content: daggerJson(moduleName, sdk),
|
|
81
|
+
});
|
|
82
|
+
// Source file(s)
|
|
83
|
+
if (sdk === "typescript") {
|
|
84
|
+
files.push({
|
|
85
|
+
path: ".dagger/src/index.ts",
|
|
86
|
+
content: this.getTypescriptSource(stack),
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
const pyModule = moduleName.replace(/-/g, "_");
|
|
91
|
+
files.push({
|
|
92
|
+
path: `.dagger/src/${pyModule}/main.py`,
|
|
93
|
+
content: this.getPythonSource(stack),
|
|
94
|
+
});
|
|
95
|
+
// Python __init__.py
|
|
96
|
+
files.push({
|
|
97
|
+
path: `.dagger/src/${pyModule}/__init__.py`,
|
|
98
|
+
content: "",
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
return files;
|
|
102
|
+
}
|
|
103
|
+
getTypescriptSource(stack) {
|
|
104
|
+
switch (stack) {
|
|
105
|
+
case "typescript-lib":
|
|
106
|
+
return typescriptLibSource(stack);
|
|
107
|
+
case "typescript-app":
|
|
108
|
+
return typescriptAppSource(stack);
|
|
109
|
+
case "swift-ios":
|
|
110
|
+
return swiftIosSource(stack);
|
|
111
|
+
case "csharp-app":
|
|
112
|
+
return csharpAppSource(stack);
|
|
113
|
+
case "kotlin-android":
|
|
114
|
+
return kotlinAndroidSource(stack);
|
|
115
|
+
case "generic":
|
|
116
|
+
return genericSource(stack);
|
|
117
|
+
default:
|
|
118
|
+
throw new Error(`No TypeScript source for stack: ${stack}`);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
getPythonSource(stack) {
|
|
122
|
+
switch (stack) {
|
|
123
|
+
case "python-lib":
|
|
124
|
+
return pythonLibSource(stack);
|
|
125
|
+
case "python-app":
|
|
126
|
+
return pythonAppSource(stack);
|
|
127
|
+
default:
|
|
128
|
+
throw new Error(`No Python source for stack: ${stack}`);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
//# sourceMappingURL=dagger-scaffold-generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dagger-scaffold-generator.js","sourceRoot":"","sources":["../../../src/infrastructure/pipeline/dagger-scaffold-generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pipeline Bounded Context — Infrastructure Layer
|
|
3
|
+
*
|
|
4
|
+
* Exports all infrastructure implementations for the pipeline context.
|
|
5
|
+
*
|
|
6
|
+
* Components:
|
|
7
|
+
* - SqlitePipelineRepository: SQLite persistence for Pipeline aggregate
|
|
8
|
+
* - InMemoryPipelineTemplateRegistry: Built-in template definitions
|
|
9
|
+
* - DaggerCliAdapter: Dagger CLI execution + runtime detection
|
|
10
|
+
* - DaggerScaffoldGenerator: Dagger module scaffold file generation
|
|
11
|
+
* - Scaffold Templates: TS/Python (scaffold-templates) + Swift/C#/Kotlin/Generic (scaffold-templates-extra)
|
|
12
|
+
*/
|
|
13
|
+
export { SqlitePipelineRepository } from "./sqlite-pipeline-repository.js";
|
|
14
|
+
export { InMemoryPipelineTemplateRegistry } from "./pipeline-template-registry.js";
|
|
15
|
+
export { DaggerCliAdapter, ChildProcessExecutor, } from "./dagger-adapter.js";
|
|
16
|
+
export type { ShellExecutor, ShellExecOptions, ShellExecResult, } from "./dagger-adapter.js";
|
|
17
|
+
export { DaggerScaffoldGenerator } from "./dagger-scaffold-generator.js";
|
|
18
|
+
export { typescriptLibSource, typescriptAppSource, pythonLibSource, pythonAppSource, pascalCase, camelCase, snakeCase, } from "./scaffold-templates.js";
|
|
19
|
+
export { swiftIosSource, csharpAppSource, kotlinAndroidSource, genericSource, } from "./scaffold-templates-extra.js";
|
|
20
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/pipeline/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,EAAE,gCAAgC,EAAE,MAAM,iCAAiC,CAAC;AACnF,OAAO,EACL,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,aAAa,EACb,gBAAgB,EAChB,eAAe,GAChB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,eAAe,EACf,eAAe,EACf,UAAU,EACV,SAAS,EACT,SAAS,GACV,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,aAAa,GACd,MAAM,+BAA+B,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pipeline Bounded Context — Infrastructure Layer
|
|
3
|
+
*
|
|
4
|
+
* Exports all infrastructure implementations for the pipeline context.
|
|
5
|
+
*
|
|
6
|
+
* Components:
|
|
7
|
+
* - SqlitePipelineRepository: SQLite persistence for Pipeline aggregate
|
|
8
|
+
* - InMemoryPipelineTemplateRegistry: Built-in template definitions
|
|
9
|
+
* - DaggerCliAdapter: Dagger CLI execution + runtime detection
|
|
10
|
+
* - DaggerScaffoldGenerator: Dagger module scaffold file generation
|
|
11
|
+
* - Scaffold Templates: TS/Python (scaffold-templates) + Swift/C#/Kotlin/Generic (scaffold-templates-extra)
|
|
12
|
+
*/
|
|
13
|
+
export { SqlitePipelineRepository } from "./sqlite-pipeline-repository.js";
|
|
14
|
+
export { InMemoryPipelineTemplateRegistry } from "./pipeline-template-registry.js";
|
|
15
|
+
export { DaggerCliAdapter, ChildProcessExecutor, } from "./dagger-adapter.js";
|
|
16
|
+
export { DaggerScaffoldGenerator } from "./dagger-scaffold-generator.js";
|
|
17
|
+
export { typescriptLibSource, typescriptAppSource, pythonLibSource, pythonAppSource, pascalCase, camelCase, snakeCase, } from "./scaffold-templates.js";
|
|
18
|
+
export { swiftIosSource, csharpAppSource, kotlinAndroidSource, genericSource, } from "./scaffold-templates-extra.js";
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/infrastructure/pipeline/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,EAAE,gCAAgC,EAAE,MAAM,iCAAiC,CAAC;AACnF,OAAO,EACL,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAM7B,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,eAAe,EACf,eAAe,EACf,UAAU,EACV,SAAS,EACT,SAAS,GACV,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,aAAa,GACd,MAAM,+BAA+B,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* In-Memory Pipeline Template Registry
|
|
3
|
+
*
|
|
4
|
+
* Implements PipelineTemplateRepository with static built-in templates.
|
|
5
|
+
* Each template defines the gate sequence for a stack+scope combination.
|
|
6
|
+
*
|
|
7
|
+
* Templates are readonly configuration data — no database persistence needed.
|
|
8
|
+
* Follows the same pattern as agent-registry/built-in-profiles.ts.
|
|
9
|
+
*
|
|
10
|
+
* SOLID: SRP — template lookup and listing only
|
|
11
|
+
* SOLID: OCP — new templates added by extending the registry data
|
|
12
|
+
* SOLID: DIP — implements domain interface
|
|
13
|
+
*/
|
|
14
|
+
import type { PipelineTemplateRepository, PipelineTemplateConfig } from "../../domain/pipeline/repositories.js";
|
|
15
|
+
import type { StackTemplate, PipelineScope } from "../../domain/pipeline/value-objects.js";
|
|
16
|
+
export declare class InMemoryPipelineTemplateRegistry implements PipelineTemplateRepository {
|
|
17
|
+
private readonly templates;
|
|
18
|
+
constructor();
|
|
19
|
+
getTemplate(stack: StackTemplate, scope: PipelineScope): Promise<PipelineTemplateConfig | undefined>;
|
|
20
|
+
listTemplates(): Promise<readonly StackTemplate[]>;
|
|
21
|
+
hasTemplate(stack: StackTemplate): Promise<boolean>;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=pipeline-template-registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pipeline-template-registry.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/pipeline/pipeline-template-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,KAAK,EACV,0BAA0B,EAC1B,sBAAsB,EAEvB,MAAM,uCAAuC,CAAC;AAQ/C,OAAO,KAAK,EACV,aAAa,EACb,aAAa,EAEd,MAAM,wCAAwC,CAAC;AA6DhD,qBAAa,gCACX,YAAW,0BAA0B;IAErC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA8C;;IAMlE,WAAW,CACf,KAAK,EAAE,aAAa,EACpB,KAAK,EAAE,aAAa,GACnB,OAAO,CAAC,sBAAsB,GAAG,SAAS,CAAC;IAIxC,aAAa,IAAI,OAAO,CAAC,SAAS,aAAa,EAAE,CAAC;IAIlD,WAAW,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC;CAI1D"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { BRANCH_GATE_TYPES, RELEASE_GATE_TYPES, STACK_TEMPLATES, DEFAULT_SKIP_POLICIES, DEFAULT_DAGGER_FUNCTIONS, } from "../../domain/pipeline/value-objects.js";
|
|
2
|
+
// ─── Template Key ────────────────────────────────────────────────────────────
|
|
3
|
+
/** Composite key for template lookup. */
|
|
4
|
+
function templateKey(stack, scope) {
|
|
5
|
+
return `${stack}:${scope}`;
|
|
6
|
+
}
|
|
7
|
+
// ─── Gate Template Builder ───────────────────────────────────────────────────
|
|
8
|
+
/**
|
|
9
|
+
* Build gate templates with a stack-specific Dagger function prefix.
|
|
10
|
+
* E.g., for typescript-lib: "lint" becomes "typescript-lib-lint".
|
|
11
|
+
*/
|
|
12
|
+
function buildPrefixedGates(scope, prefix) {
|
|
13
|
+
const gateTypes = scope === "branch" ? BRANCH_GATE_TYPES : RELEASE_GATE_TYPES;
|
|
14
|
+
return gateTypes.map((type) => ({
|
|
15
|
+
type,
|
|
16
|
+
daggerFunction: `${prefix}-${DEFAULT_DAGGER_FUNCTIONS[type]}`,
|
|
17
|
+
skipPolicy: DEFAULT_SKIP_POLICIES[type],
|
|
18
|
+
}));
|
|
19
|
+
}
|
|
20
|
+
// ─── Built-in Templates ──────────────────────────────────────────────────────
|
|
21
|
+
/**
|
|
22
|
+
* Generate all built-in templates.
|
|
23
|
+
* Each stack gets a branch template (4 gates) and a release template (7 gates).
|
|
24
|
+
*/
|
|
25
|
+
function buildBuiltInTemplates() {
|
|
26
|
+
const templates = new Map();
|
|
27
|
+
for (const stack of STACK_TEMPLATES) {
|
|
28
|
+
const prefix = stack; // Use stack name as Dagger function prefix
|
|
29
|
+
// Branch (CI) template
|
|
30
|
+
const branchConfig = {
|
|
31
|
+
stack,
|
|
32
|
+
scope: "branch",
|
|
33
|
+
gates: buildPrefixedGates("branch", prefix),
|
|
34
|
+
};
|
|
35
|
+
templates.set(templateKey(stack, "branch"), branchConfig);
|
|
36
|
+
// Release (CD) template
|
|
37
|
+
const releaseConfig = {
|
|
38
|
+
stack,
|
|
39
|
+
scope: "release",
|
|
40
|
+
gates: buildPrefixedGates("release", prefix),
|
|
41
|
+
};
|
|
42
|
+
templates.set(templateKey(stack, "release"), releaseConfig);
|
|
43
|
+
}
|
|
44
|
+
return templates;
|
|
45
|
+
}
|
|
46
|
+
// ─── Repository Implementation ───────────────────────────────────────────────
|
|
47
|
+
export class InMemoryPipelineTemplateRegistry {
|
|
48
|
+
templates;
|
|
49
|
+
constructor() {
|
|
50
|
+
this.templates = buildBuiltInTemplates();
|
|
51
|
+
}
|
|
52
|
+
async getTemplate(stack, scope) {
|
|
53
|
+
return this.templates.get(templateKey(stack, scope));
|
|
54
|
+
}
|
|
55
|
+
async listTemplates() {
|
|
56
|
+
return [...STACK_TEMPLATES];
|
|
57
|
+
}
|
|
58
|
+
async hasTemplate(stack) {
|
|
59
|
+
// Every stack has both branch and release templates
|
|
60
|
+
return this.templates.has(templateKey(stack, "branch"));
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=pipeline-template-registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pipeline-template-registry.js","sourceRoot":"","sources":["../../../src/infrastructure/pipeline/pipeline-template-registry.ts"],"names":[],"mappings":"AAkBA,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,qBAAqB,EACrB,wBAAwB,GACzB,MAAM,wCAAwC,CAAC;AAOhD,gFAAgF;AAEhF,yCAAyC;AACzC,SAAS,WAAW,CAAC,KAAoB,EAAE,KAAoB;IAC7D,OAAO,GAAG,KAAK,IAAI,KAAK,EAAE,CAAC;AAC7B,CAAC;AAED,gFAAgF;AAEhF;;;GAGG;AACH,SAAS,kBAAkB,CACzB,KAAoB,EACpB,MAAc;IAEd,MAAM,SAAS,GAAG,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,kBAAkB,CAAC;IAC9E,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,IAAc,EAAE,EAAE,CAAC,CAAC;QACxC,IAAI;QACJ,cAAc,EAAE,GAAG,MAAM,IAAI,wBAAwB,CAAC,IAAI,CAAC,EAAE;QAC7D,UAAU,EAAE,qBAAqB,CAAC,IAAI,CAAC;KACxC,CAAC,CAAC,CAAC;AACN,CAAC;AAED,gFAAgF;AAEhF;;;GAGG;AACH,SAAS,qBAAqB;IAC5B,MAAM,SAAS,GAAG,IAAI,GAAG,EAAkC,CAAC;IAE5D,KAAK,MAAM,KAAK,IAAI,eAAe,EAAE,CAAC;QACpC,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,2CAA2C;QAEjE,uBAAuB;QACvB,MAAM,YAAY,GAA2B;YAC3C,KAAK;YACL,KAAK,EAAE,QAAQ;YACf,KAAK,EAAE,kBAAkB,CAAC,QAAQ,EAAE,MAAM,CAAC;SAC5C,CAAC;QACF,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,YAAY,CAAC,CAAC;QAE1D,wBAAwB;QACxB,MAAM,aAAa,GAA2B;YAC5C,KAAK;YACL,KAAK,EAAE,SAAS;YAChB,KAAK,EAAE,kBAAkB,CAAC,SAAS,EAAE,MAAM,CAAC;SAC7C,CAAC;QACF,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,aAAa,CAAC,CAAC;IAC9D,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,gFAAgF;AAEhF,MAAM,OAAO,gCAAgC;IAG1B,SAAS,CAA8C;IAExE;QACE,IAAI,CAAC,SAAS,GAAG,qBAAqB,EAAE,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,WAAW,CACf,KAAoB,EACpB,KAAoB;QAEpB,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;IACvD,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,OAAO,CAAC,GAAG,eAAe,CAAC,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,KAAoB;QACpC,oDAAoD;QACpD,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC1D,CAAC;CACF"}
|
|
@@ -0,0 +1,17 @@
|
|
|
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
|
+
/** Swift iOS Dagger module (SwiftLint, xcodebuild, App Store Connect). */
|
|
10
|
+
export declare function swiftIosSource(prefix: string): string;
|
|
11
|
+
/** C# application Dagger module (dotnet format, dotnet test, dotnet publish). */
|
|
12
|
+
export declare function csharpAppSource(prefix: string): string;
|
|
13
|
+
/** Kotlin Android Dagger module (ktlint, Gradle test, Gradle build, Play Store). */
|
|
14
|
+
export declare function kotlinAndroidSource(prefix: string): string;
|
|
15
|
+
/** Generic Dagger module with configurable shell command placeholders. */
|
|
16
|
+
export declare function genericSource(prefix: string): string;
|
|
17
|
+
//# sourceMappingURL=scaffold-templates-extra.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scaffold-templates-extra.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/pipeline/scaffold-templates-extra.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,0EAA0E;AAC1E,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CA+GrD;AAID,iFAAiF;AACjF,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAkHtD;AAID,oFAAoF;AACpF,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CA8G1D;AAID,0EAA0E;AAC1E,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CA8GpD"}
|