specky-sdd 2.0.0 → 2.2.2
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/CHANGELOG.md +93 -0
- package/README.md +803 -88
- package/SECURITY.md +110 -0
- package/dist/config.d.ts +12 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +66 -0
- package/dist/config.js.map +1 -0
- package/dist/constants.d.ts +100 -1
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +112 -1
- package/dist/constants.js.map +1 -1
- package/dist/index.js +17 -2
- package/dist/index.js.map +1 -1
- package/dist/schemas/environment.d.ts +12 -37
- package/dist/schemas/environment.d.ts.map +1 -1
- package/dist/schemas/infrastructure.d.ts +22 -42
- package/dist/schemas/infrastructure.d.ts.map +1 -1
- package/dist/schemas/input.d.ts +13 -34
- package/dist/schemas/input.d.ts.map +1 -1
- package/dist/schemas/integration.d.ts +12 -80
- package/dist/schemas/integration.d.ts.map +1 -1
- package/dist/schemas/pipeline.d.ts +24 -230
- package/dist/schemas/pipeline.d.ts.map +1 -1
- package/dist/schemas/quality.d.ts +27 -39
- package/dist/schemas/quality.d.ts.map +1 -1
- package/dist/schemas/quality.js +13 -0
- package/dist/schemas/quality.js.map +1 -1
- package/dist/schemas/testing.d.ts +23 -0
- package/dist/schemas/testing.d.ts.map +1 -0
- package/dist/schemas/testing.js +26 -0
- package/dist/schemas/testing.js.map +1 -0
- package/dist/schemas/transcript.d.ts +18 -40
- package/dist/schemas/transcript.d.ts.map +1 -1
- package/dist/schemas/utility.d.ts +33 -65
- package/dist/schemas/utility.d.ts.map +1 -1
- package/dist/schemas/visualization.d.ts +28 -39
- package/dist/schemas/visualization.d.ts.map +1 -1
- package/dist/services/test-generator.d.ts +61 -0
- package/dist/services/test-generator.d.ts.map +1 -0
- package/dist/services/test-generator.js +217 -0
- package/dist/services/test-generator.js.map +1 -0
- package/dist/tools/input.d.ts.map +1 -1
- package/dist/tools/input.js +12 -0
- package/dist/tools/input.js.map +1 -1
- package/dist/tools/integration.d.ts.map +1 -1
- package/dist/tools/integration.js +24 -0
- package/dist/tools/integration.js.map +1 -1
- package/dist/tools/quality.d.ts +3 -2
- package/dist/tools/quality.d.ts.map +1 -1
- package/dist/tools/quality.js +84 -3
- package/dist/tools/quality.js.map +1 -1
- package/dist/tools/testing.d.ts +9 -0
- package/dist/tools/testing.d.ts.map +1 -0
- package/dist/tools/testing.js +130 -0
- package/dist/tools/testing.js.map +1 -0
- package/dist/tools/utility.d.ts.map +1 -1
- package/dist/tools/utility.js +36 -1
- package/dist/tools/utility.js.map +1 -1
- package/dist/types.d.ts +20 -0
- package/dist/types.d.ts.map +1 -1
- package/hooks/auto-docs.md +53 -0
- package/hooks/auto-test.md +61 -0
- package/hooks/changelog.md +74 -0
- package/hooks/security-scan.md +72 -0
- package/hooks/spec-sync.md +80 -0
- package/hooks/srp-validator.md +86 -0
- package/package.json +14 -5
- package/references/design-patterns.md +434 -0
- package/references/ears-notation.md +605 -0
- package/references/spec-templates.md +936 -0
- package/templates/analysis.md +1 -0
- package/templates/api-docs.md +1 -0
- package/templates/bugfix.md +1 -0
- package/templates/checklist.md +1 -0
- package/templates/compliance.md +1 -0
- package/templates/constitution.md +1 -0
- package/templates/cross-analysis.md +1 -0
- package/templates/data-model.md +1 -0
- package/templates/design.md +1 -0
- package/templates/devcontainer.md +1 -0
- package/templates/dockerfile.md +1 -0
- package/templates/onboarding.md +1 -0
- package/templates/research.md +1 -0
- package/templates/runbook.md +1 -0
- package/templates/specification.md +1 -0
- package/templates/sync-report.md +1 -0
- package/templates/tasks.md +3 -2
- package/templates/terraform.md +1 -0
- package/templates/test-stub.md +34 -0
- package/templates/user-stories.md +1 -0
- package/templates/verification.md +1 -0
- package/templates/work-items.md +1 -0
package/SECURITY.md
ADDED
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
# Security Policy
|
|
2
|
+
|
|
3
|
+
## Supported Versions
|
|
4
|
+
|
|
5
|
+
| Version | Supported |
|
|
6
|
+
|---------|-----------|
|
|
7
|
+
| 2.1.x | ✅ Active |
|
|
8
|
+
| 2.0.x | ✅ Security fixes only |
|
|
9
|
+
| 1.0.x | ❌ End of life |
|
|
10
|
+
|
|
11
|
+
## Reporting a Vulnerability
|
|
12
|
+
|
|
13
|
+
If you discover a security vulnerability in Specky, please report it responsibly:
|
|
14
|
+
|
|
15
|
+
1. **Do NOT open a public issue.**
|
|
16
|
+
2. Email **paulasilvatech@github.com** with:
|
|
17
|
+
- Description of the vulnerability
|
|
18
|
+
- Steps to reproduce
|
|
19
|
+
- Impact assessment
|
|
20
|
+
- Suggested fix (if any)
|
|
21
|
+
3. You will receive an acknowledgment within **48 hours**.
|
|
22
|
+
4. A fix will be released within **7 days** for critical issues.
|
|
23
|
+
|
|
24
|
+
## Security Architecture
|
|
25
|
+
|
|
26
|
+
### Input Validation
|
|
27
|
+
|
|
28
|
+
All 47 MCP tool inputs are validated using [Zod](https://zod.dev/) schemas with `.strict()` mode. No unknown fields are accepted. This prevents injection of unexpected parameters through the MCP JSON-RPC interface.
|
|
29
|
+
|
|
30
|
+
```
|
|
31
|
+
AI Client → JSON-RPC → Zod .strict() validation → Service layer
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
### Path Traversal Prevention
|
|
35
|
+
|
|
36
|
+
`FileManager` (the sole file I/O service) sanitizes all paths before any filesystem operation:
|
|
37
|
+
|
|
38
|
+
- Resolves paths relative to the workspace root
|
|
39
|
+
- Rejects paths containing `..` sequences
|
|
40
|
+
- Blocks access outside the designated workspace directory
|
|
41
|
+
- All file operations are scoped to `SDD_WORKSPACE` or the current working directory
|
|
42
|
+
|
|
43
|
+
### No Dynamic Code Execution
|
|
44
|
+
|
|
45
|
+
Specky does **not** use `eval()`, `Function()`, `vm.runInNewContext()`, or any dynamic code execution. Template rendering uses string replacement only — no template engines that execute code.
|
|
46
|
+
|
|
47
|
+
### No Network Calls
|
|
48
|
+
|
|
49
|
+
Specky operates entirely locally. It makes zero outbound network requests. All data stays on the user's machine. The MCP server communicates only via stdio (JSON-RPC over stdin/stdout) or optional HTTP transport on localhost.
|
|
50
|
+
|
|
51
|
+
### Dependency Minimalism
|
|
52
|
+
|
|
53
|
+
Specky has only **2 runtime dependencies**:
|
|
54
|
+
|
|
55
|
+
| Dependency | Purpose | Security Profile |
|
|
56
|
+
|------------|---------|------------------|
|
|
57
|
+
| `@modelcontextprotocol/sdk` | MCP protocol implementation | Official SDK from Anthropic |
|
|
58
|
+
| `zod` | Input schema validation | Zero dependencies, widely audited |
|
|
59
|
+
|
|
60
|
+
No transitive runtime dependencies beyond these two packages.
|
|
61
|
+
|
|
62
|
+
### Logging
|
|
63
|
+
|
|
64
|
+
- All log output goes to **stderr** — stdout is reserved for JSON-RPC protocol messages
|
|
65
|
+
- No sensitive data (credentials, tokens, file contents) is included in log messages
|
|
66
|
+
- Audit-relevant tool invocations are recorded only in the local `.specs/` directory
|
|
67
|
+
|
|
68
|
+
### OWASP Top 10 Coverage
|
|
69
|
+
|
|
70
|
+
| OWASP Category | Mitigation |
|
|
71
|
+
|----------------|------------|
|
|
72
|
+
| A01 Broken Access Control | Path sanitization in FileManager; workspace-scoped operations |
|
|
73
|
+
| A02 Cryptographic Failures | No cryptographic operations; no secrets handling |
|
|
74
|
+
| A03 Injection | Zod `.strict()` validation on all inputs; no SQL/eval/shell execution |
|
|
75
|
+
| A04 Insecure Design | State machine enforces phase ordering; thin tools / fat services separation |
|
|
76
|
+
| A05 Security Misconfiguration | Minimal config surface; no default credentials; no admin endpoints |
|
|
77
|
+
| A06 Vulnerable Components | 2 runtime deps only; Dependabot enabled; regular audits |
|
|
78
|
+
| A07 Authentication Failures | No authentication layer (local tool); MCP transport handles auth |
|
|
79
|
+
| A08 Data Integrity Failures | Atomic file writes via FileManager; Zod schema enforcement |
|
|
80
|
+
| A09 Logging Failures | Structured stderr logging; no stdout pollution |
|
|
81
|
+
| A10 SSRF | Zero outbound network requests |
|
|
82
|
+
|
|
83
|
+
## Dependency Auditing
|
|
84
|
+
|
|
85
|
+
```bash
|
|
86
|
+
# Check for known vulnerabilities
|
|
87
|
+
npm audit
|
|
88
|
+
|
|
89
|
+
# Check for outdated dependencies
|
|
90
|
+
npm outdated
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
We run `npm audit` in CI on every pull request. Any `high` or `critical` vulnerability blocks the merge.
|
|
94
|
+
|
|
95
|
+
## Security-Related Configuration
|
|
96
|
+
|
|
97
|
+
| Variable | Purpose | Default |
|
|
98
|
+
|----------|---------|---------|
|
|
99
|
+
| `SDD_WORKSPACE` | Restricts file operations to this directory | Current working directory |
|
|
100
|
+
| `PORT` | HTTP transport port (when using `--http` mode) | 3200 |
|
|
101
|
+
|
|
102
|
+
When using HTTP transport mode (`--http`), bind to `localhost` only. Do not expose Specky to public networks without an authentication proxy.
|
|
103
|
+
|
|
104
|
+
## Secure Development Practices
|
|
105
|
+
|
|
106
|
+
- TypeScript `strict` mode enabled — no implicit `any`, no unchecked index access
|
|
107
|
+
- Zero `any` types in source code — enforced by CI
|
|
108
|
+
- All schemas use `.strict()` — rejects unknown fields
|
|
109
|
+
- `FileManager` is the sole I/O boundary — no direct `fs` calls in tools or other services
|
|
110
|
+
- No shell command execution — branch names and PR payloads are data only, not executed
|
package/dist/config.d.ts
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export interface SpeckyConfig {
|
|
2
|
+
templates_path?: string;
|
|
3
|
+
default_framework?: string;
|
|
4
|
+
compliance_frameworks?: string[];
|
|
5
|
+
audit_enabled?: boolean;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Load `.specky/config.yml` from workspace root. Returns defaults if not found.
|
|
9
|
+
* Uses simple YAML key-value parsing (no dependency on yaml library).
|
|
10
|
+
*/
|
|
11
|
+
export declare function loadConfig(workspaceRoot: string): Required<SpeckyConfig>;
|
|
12
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,YAAY;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAC;IACjC,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AASD;;;GAGG;AACH,wBAAgB,UAAU,CAAC,aAAa,EAAE,MAAM,GAAG,QAAQ,CAAC,YAAY,CAAC,CAcxE"}
|
package/dist/config.js
ADDED
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SpeckyConfig — Optional `.specky/config.yml` support.
|
|
3
|
+
* Reads project-local configuration and merges with defaults.
|
|
4
|
+
*/
|
|
5
|
+
import { readFileSync } from "node:fs";
|
|
6
|
+
import { join } from "node:path";
|
|
7
|
+
const DEFAULTS = {
|
|
8
|
+
templates_path: "",
|
|
9
|
+
default_framework: "vitest",
|
|
10
|
+
compliance_frameworks: ["general"],
|
|
11
|
+
audit_enabled: false,
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Load `.specky/config.yml` from workspace root. Returns defaults if not found.
|
|
15
|
+
* Uses simple YAML key-value parsing (no dependency on yaml library).
|
|
16
|
+
*/
|
|
17
|
+
export function loadConfig(workspaceRoot) {
|
|
18
|
+
const configPath = join(workspaceRoot, ".specky", "config.yml");
|
|
19
|
+
try {
|
|
20
|
+
const raw = readFileSync(configPath, "utf-8");
|
|
21
|
+
const parsed = parseSimpleYaml(raw);
|
|
22
|
+
return {
|
|
23
|
+
templates_path: typeof parsed["templates_path"] === "string" ? parsed["templates_path"] : DEFAULTS.templates_path,
|
|
24
|
+
default_framework: typeof parsed["default_framework"] === "string" ? parsed["default_framework"] : DEFAULTS.default_framework,
|
|
25
|
+
compliance_frameworks: parseArrayValue(parsed["compliance_frameworks"]) || DEFAULTS.compliance_frameworks,
|
|
26
|
+
audit_enabled: parsed["audit_enabled"] === "true" || parsed["audit_enabled"] === true ? true : DEFAULTS.audit_enabled,
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
catch {
|
|
30
|
+
return { ...DEFAULTS };
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
function parseSimpleYaml(raw) {
|
|
34
|
+
const result = {};
|
|
35
|
+
for (const line of raw.split("\n")) {
|
|
36
|
+
const trimmed = line.trim();
|
|
37
|
+
if (!trimmed || trimmed.startsWith("#"))
|
|
38
|
+
continue;
|
|
39
|
+
const colonIdx = trimmed.indexOf(":");
|
|
40
|
+
if (colonIdx === -1)
|
|
41
|
+
continue;
|
|
42
|
+
const key = trimmed.slice(0, colonIdx).trim();
|
|
43
|
+
const value = trimmed.slice(colonIdx + 1).trim();
|
|
44
|
+
if (value === "true")
|
|
45
|
+
result[key] = true;
|
|
46
|
+
else if (value === "false")
|
|
47
|
+
result[key] = false;
|
|
48
|
+
else
|
|
49
|
+
result[key] = value;
|
|
50
|
+
}
|
|
51
|
+
return result;
|
|
52
|
+
}
|
|
53
|
+
function parseArrayValue(value) {
|
|
54
|
+
if (typeof value !== "string" || !value)
|
|
55
|
+
return null;
|
|
56
|
+
// Handle inline YAML array: [item1, item2]
|
|
57
|
+
if (value.startsWith("[") && value.endsWith("]")) {
|
|
58
|
+
return value.slice(1, -1).split(",").map(s => s.trim().replace(/"/g, "")).filter(Boolean);
|
|
59
|
+
}
|
|
60
|
+
// Handle comma-separated
|
|
61
|
+
if (value.includes(",")) {
|
|
62
|
+
return value.split(",").map(s => s.trim()).filter(Boolean);
|
|
63
|
+
}
|
|
64
|
+
return [value];
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/constants.d.ts
CHANGED
|
@@ -3,9 +3,107 @@
|
|
|
3
3
|
* All shared constants, enums, and configuration values.
|
|
4
4
|
*/
|
|
5
5
|
/** Specky server version — matches package.json */
|
|
6
|
-
export declare const VERSION = "2.
|
|
6
|
+
export declare const VERSION = "2.2.0";
|
|
7
7
|
/** Server name for MCP handshake */
|
|
8
8
|
export declare const SERVER_NAME = "specky";
|
|
9
|
+
/** Total tool count for ecosystem check */
|
|
10
|
+
export declare const TOTAL_TOOLS = 44;
|
|
11
|
+
/**
|
|
12
|
+
* MCP Ecosystem — Recommended external MCP servers.
|
|
13
|
+
* Each entry describes a server that enhances Specky's capabilities.
|
|
14
|
+
* Specky works standalone, but these servers unlock integrations.
|
|
15
|
+
*/
|
|
16
|
+
export declare const MCP_ECOSYSTEM: readonly [{
|
|
17
|
+
readonly id: "markitdown";
|
|
18
|
+
readonly name: "Microsoft MarkItDown";
|
|
19
|
+
readonly purpose: "Enhanced document conversion — PDF, DOCX, PPTX, XLSX to Markdown with superior formatting preservation. Microsoft-backed, handles complex layouts, tables, and embedded images.";
|
|
20
|
+
readonly install_command: "Add to VS Code MCP settings: { \"markitdown\": { \"type\": \"stdio\", \"command\": \"uvx\", \"args\": [\"markitdown-mcp\"] } }";
|
|
21
|
+
readonly install_note: "Requires Python/uvx. Install uvx with: curl -LsSf https://astral.sh/uv/install.sh | sh";
|
|
22
|
+
readonly required: false;
|
|
23
|
+
readonly status: "recommended";
|
|
24
|
+
readonly enhances: readonly ["sdd_import_document", "sdd_batch_import", "sdd_auto_pipeline"];
|
|
25
|
+
}, {
|
|
26
|
+
readonly id: "github";
|
|
27
|
+
readonly name: "GitHub MCP Server";
|
|
28
|
+
readonly purpose: "Create GitHub Issues, Pull Requests, and Codespaces directly from Specky outputs. Required for sdd_export_work_items(github), sdd_create_pr, and sdd_setup_codespaces.";
|
|
29
|
+
readonly install_command: "Add to VS Code MCP settings: { \"github\": { \"type\": \"http\", \"url\": \"https://api.githubcopilot.com/mcp/\" } }";
|
|
30
|
+
readonly install_note: "Available in VS Code Copilot MCP Gallery. No additional setup needed if using Copilot.";
|
|
31
|
+
readonly required: false;
|
|
32
|
+
readonly status: "recommended";
|
|
33
|
+
readonly enhances: readonly ["sdd_export_work_items", "sdd_create_pr", "sdd_create_branch", "sdd_setup_codespaces"];
|
|
34
|
+
}, {
|
|
35
|
+
readonly id: "azure-devops";
|
|
36
|
+
readonly name: "Azure DevOps MCP Server";
|
|
37
|
+
readonly purpose: "Create Work Items in Azure Boards from Specky task exports. Required for sdd_export_work_items(azure_boards).";
|
|
38
|
+
readonly install_command: "Add to VS Code MCP settings: { \"microsoft/azure-devops-mcp\": { \"type\": \"stdio\", \"command\": \"npx\", \"args\": [\"-y\", \"@azure-devops/mcp@latest\", \"<org>\", \"-d\", \"work-items\"] } }";
|
|
39
|
+
readonly install_note: "Replace <org> with your Azure DevOps organization name. Requires Azure DevOps PAT or Azure AD auth.";
|
|
40
|
+
readonly required: false;
|
|
41
|
+
readonly status: "recommended";
|
|
42
|
+
readonly enhances: readonly ["sdd_export_work_items"];
|
|
43
|
+
}, {
|
|
44
|
+
readonly id: "jira";
|
|
45
|
+
readonly name: "Jira MCP Server (Atlassian)";
|
|
46
|
+
readonly purpose: "Create Jira Issues from Specky task exports. Required for sdd_export_work_items(jira).";
|
|
47
|
+
readonly install_command: "Search for 'Jira MCP Server' in the VS Code MCP Gallery, or use: npx @anthropic/jira-mcp-server";
|
|
48
|
+
readonly install_note: "Requires Jira API token. Get from: https://id.atlassian.com/manage-profile/security/api-tokens";
|
|
49
|
+
readonly required: false;
|
|
50
|
+
readonly status: "recommended";
|
|
51
|
+
readonly enhances: readonly ["sdd_export_work_items"];
|
|
52
|
+
}, {
|
|
53
|
+
readonly id: "terraform";
|
|
54
|
+
readonly name: "HashiCorp Terraform MCP Server";
|
|
55
|
+
readonly purpose: "Validate and plan Terraform configurations generated by Specky. Required for sdd_validate_iac(terraform).";
|
|
56
|
+
readonly install_command: "Add to VS Code MCP settings: { \"terraform\": { \"type\": \"stdio\", \"command\": \"docker\", \"args\": [\"run\", \"-i\", \"--rm\", \"hashicorp/terraform-mcp-server:latest\"] } }";
|
|
57
|
+
readonly install_note: "Requires Docker. For HCP Terraform, set TFE_ADDRESS and TFE_TOKEN environment variables.";
|
|
58
|
+
readonly required: false;
|
|
59
|
+
readonly status: "recommended";
|
|
60
|
+
readonly enhances: readonly ["sdd_validate_iac", "sdd_generate_iac"];
|
|
61
|
+
}, {
|
|
62
|
+
readonly id: "azure";
|
|
63
|
+
readonly name: "Azure MCP Server";
|
|
64
|
+
readonly purpose: "Validate Azure infrastructure templates (ARM/Bicep), manage resources, and deploy. Enhances sdd_validate_iac for Azure cloud.";
|
|
65
|
+
readonly install_command: "Add to VS Code MCP settings: { \"azure\": { \"type\": \"stdio\", \"command\": \"npx\", \"args\": [\"-y\", \"@azure/mcp@latest\", \"server\", \"start\"] } }";
|
|
66
|
+
readonly install_note: "Requires Azure CLI authentication. Run: az login";
|
|
67
|
+
readonly required: false;
|
|
68
|
+
readonly status: "recommended";
|
|
69
|
+
readonly enhances: readonly ["sdd_validate_iac", "sdd_generate_iac", "sdd_setup_local_env"];
|
|
70
|
+
}, {
|
|
71
|
+
readonly id: "figma";
|
|
72
|
+
readonly name: "Figma MCP Server";
|
|
73
|
+
readonly purpose: "Extract design context from Figma files and generate FigJam diagrams. Required for sdd_figma_to_spec and sdd_figma_diagram.";
|
|
74
|
+
readonly install_command: "Add to VS Code MCP settings: { \"figma\": { \"type\": \"http\", \"url\": \"http://127.0.0.1:3845/sse\" } } OR use Figma MCP Gallery entry.";
|
|
75
|
+
readonly install_note: "Requires Figma desktop app running with MCP plugin enabled, or use the cloud-hosted Figma MCP.";
|
|
76
|
+
readonly required: false;
|
|
77
|
+
readonly status: "recommended";
|
|
78
|
+
readonly enhances: readonly ["sdd_figma_to_spec", "sdd_figma_diagram"];
|
|
79
|
+
}, {
|
|
80
|
+
readonly id: "docker";
|
|
81
|
+
readonly name: "Docker MCP (via Docker Desktop)";
|
|
82
|
+
readonly purpose: "Create and manage local development environments with Docker Compose. Enhances sdd_setup_local_env.";
|
|
83
|
+
readonly install_command: "Install Docker Desktop from: https://www.docker.com/products/docker-desktop/";
|
|
84
|
+
readonly install_note: "Docker Desktop includes MCP support. No additional MCP server installation needed.";
|
|
85
|
+
readonly required: false;
|
|
86
|
+
readonly status: "recommended";
|
|
87
|
+
readonly enhances: readonly ["sdd_setup_local_env", "sdd_generate_dockerfile"];
|
|
88
|
+
}, {
|
|
89
|
+
readonly id: "playwright";
|
|
90
|
+
readonly name: "Playwright MCP Server";
|
|
91
|
+
readonly purpose: "Run browser-based E2E tests against implemented features. Enhances the Verify phase.";
|
|
92
|
+
readonly install_command: "Add to VS Code MCP settings: { \"playwright\": { \"type\": \"stdio\", \"command\": \"npx\", \"args\": [\"@playwright/mcp@latest\"] } }";
|
|
93
|
+
readonly install_note: "Requires Playwright browsers. Run: npx playwright install";
|
|
94
|
+
readonly required: false;
|
|
95
|
+
readonly status: "recommended";
|
|
96
|
+
readonly enhances: readonly ["sdd_verify_tasks"];
|
|
97
|
+
}, {
|
|
98
|
+
readonly id: "miro";
|
|
99
|
+
readonly name: "Miro MCP Server";
|
|
100
|
+
readonly purpose: "Create collaborative diagrams and boards from Specky outputs. Alternative to FigJam.";
|
|
101
|
+
readonly install_command: "Add to VS Code MCP settings: { \"miro\": { \"type\": \"http\", \"url\": \"https://mcp.miro.com/\" } }";
|
|
102
|
+
readonly install_note: "Requires Miro account. Available in VS Code MCP Gallery.";
|
|
103
|
+
readonly required: false;
|
|
104
|
+
readonly status: "recommended";
|
|
105
|
+
readonly enhances: readonly ["sdd_generate_diagram", "sdd_generate_all_diagrams"];
|
|
106
|
+
}];
|
|
9
107
|
/** Maximum response size in characters before truncation */
|
|
10
108
|
export declare const CHARACTER_LIMIT = 25000;
|
|
11
109
|
/** Default directory for SDD specifications */
|
|
@@ -87,6 +185,7 @@ export declare const TOOL_NAMES: {
|
|
|
87
185
|
readonly GENERATE_RUNBOOK: "sdd_generate_runbook";
|
|
88
186
|
readonly GENERATE_ONBOARDING: "sdd_generate_onboarding";
|
|
89
187
|
readonly METRICS: "sdd_metrics";
|
|
188
|
+
readonly GENERATE_TESTS: "sdd_generate_tests";
|
|
90
189
|
};
|
|
91
190
|
export declare const TOOL_IMPORT_DOCUMENT = "sdd_import_document";
|
|
92
191
|
export declare const TOOL_BATCH_IMPORT = "sdd_batch_import";
|
package/dist/constants.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,mDAAmD;AACnD,eAAO,MAAM,OAAO,UAAU,CAAC;AAE/B,oCAAoC;AACpC,eAAO,MAAM,WAAW,WAAW,CAAC;AAEpC,4DAA4D;AAC5D,eAAO,MAAM,eAAe,QAAS,CAAC;AAEtC,+CAA+C;AAC/C,eAAO,MAAM,gBAAgB,WAAW,CAAC;AAEzC,sBAAsB;AACtB,eAAO,MAAM,UAAU,oBAAoB,CAAC;AAE5C,sDAAsD;AACtD,eAAO,MAAM,iBAAiB,OAAO,CAAC;AAEtC,8CAA8C;AAC9C,eAAO,MAAM,kBAAkB,IAAI,CAAC;AAEpC,iCAAiC;AACjC,eAAO,MAAM,cAAc,IAAI,CAAC;AAEhC,qDAAqD;AACrD,eAAO,MAAM,wBAAwB,EAAE,SAAS,MAAM,EAUrD,CAAC;AAEF;;;GAGG;AACH,oBAAY,KAAK;IACf,IAAI,SAAS;IACb,QAAQ,aAAa;IACrB,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,MAAM,WAAW;IACjB,KAAK,UAAU;IACf,OAAO,YAAY;IACnB,SAAS,cAAc;IACvB,MAAM,WAAW;IACjB,OAAO,YAAY;CACpB;AAED,gDAAgD;AAChD,eAAO,MAAM,WAAW,EAAE,SAAS,KAAK,EAWvC,CAAC;AAEF,uFAAuF;AACvF,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAWjE,CAAC;AAEF,8CAA8C;AAC9C,eAAO,MAAM,UAAU
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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"}
|
package/dist/constants.js
CHANGED
|
@@ -3,9 +3,118 @@
|
|
|
3
3
|
* All shared constants, enums, and configuration values.
|
|
4
4
|
*/
|
|
5
5
|
/** Specky server version — matches package.json */
|
|
6
|
-
export const VERSION = "2.
|
|
6
|
+
export const VERSION = "2.2.0";
|
|
7
7
|
/** Server name for MCP handshake */
|
|
8
8
|
export const SERVER_NAME = "specky";
|
|
9
|
+
/** Total tool count for ecosystem check */
|
|
10
|
+
export const TOTAL_TOOLS = 44;
|
|
11
|
+
/**
|
|
12
|
+
* MCP Ecosystem — Recommended external MCP servers.
|
|
13
|
+
* Each entry describes a server that enhances Specky's capabilities.
|
|
14
|
+
* Specky works standalone, but these servers unlock integrations.
|
|
15
|
+
*/
|
|
16
|
+
export const MCP_ECOSYSTEM = [
|
|
17
|
+
{
|
|
18
|
+
id: "markitdown",
|
|
19
|
+
name: "Microsoft MarkItDown",
|
|
20
|
+
purpose: "Enhanced document conversion — PDF, DOCX, PPTX, XLSX to Markdown with superior formatting preservation. Microsoft-backed, handles complex layouts, tables, and embedded images.",
|
|
21
|
+
install_command: 'Add to VS Code MCP settings: { "markitdown": { "type": "stdio", "command": "uvx", "args": ["markitdown-mcp"] } }',
|
|
22
|
+
install_note: "Requires Python/uvx. Install uvx with: curl -LsSf https://astral.sh/uv/install.sh | sh",
|
|
23
|
+
required: false,
|
|
24
|
+
status: "recommended",
|
|
25
|
+
enhances: ["sdd_import_document", "sdd_batch_import", "sdd_auto_pipeline"],
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
id: "github",
|
|
29
|
+
name: "GitHub MCP Server",
|
|
30
|
+
purpose: "Create GitHub Issues, Pull Requests, and Codespaces directly from Specky outputs. Required for sdd_export_work_items(github), sdd_create_pr, and sdd_setup_codespaces.",
|
|
31
|
+
install_command: 'Add to VS Code MCP settings: { "github": { "type": "http", "url": "https://api.githubcopilot.com/mcp/" } }',
|
|
32
|
+
install_note: "Available in VS Code Copilot MCP Gallery. No additional setup needed if using Copilot.",
|
|
33
|
+
required: false,
|
|
34
|
+
status: "recommended",
|
|
35
|
+
enhances: ["sdd_export_work_items", "sdd_create_pr", "sdd_create_branch", "sdd_setup_codespaces"],
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
id: "azure-devops",
|
|
39
|
+
name: "Azure DevOps MCP Server",
|
|
40
|
+
purpose: "Create Work Items in Azure Boards from Specky task exports. Required for sdd_export_work_items(azure_boards).",
|
|
41
|
+
install_command: 'Add to VS Code MCP settings: { "microsoft/azure-devops-mcp": { "type": "stdio", "command": "npx", "args": ["-y", "@azure-devops/mcp@latest", "<org>", "-d", "work-items"] } }',
|
|
42
|
+
install_note: "Replace <org> with your Azure DevOps organization name. Requires Azure DevOps PAT or Azure AD auth.",
|
|
43
|
+
required: false,
|
|
44
|
+
status: "recommended",
|
|
45
|
+
enhances: ["sdd_export_work_items"],
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
id: "jira",
|
|
49
|
+
name: "Jira MCP Server (Atlassian)",
|
|
50
|
+
purpose: "Create Jira Issues from Specky task exports. Required for sdd_export_work_items(jira).",
|
|
51
|
+
install_command: "Search for 'Jira MCP Server' in the VS Code MCP Gallery, or use: npx @anthropic/jira-mcp-server",
|
|
52
|
+
install_note: "Requires Jira API token. Get from: https://id.atlassian.com/manage-profile/security/api-tokens",
|
|
53
|
+
required: false,
|
|
54
|
+
status: "recommended",
|
|
55
|
+
enhances: ["sdd_export_work_items"],
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
id: "terraform",
|
|
59
|
+
name: "HashiCorp Terraform MCP Server",
|
|
60
|
+
purpose: "Validate and plan Terraform configurations generated by Specky. Required for sdd_validate_iac(terraform).",
|
|
61
|
+
install_command: 'Add to VS Code MCP settings: { "terraform": { "type": "stdio", "command": "docker", "args": ["run", "-i", "--rm", "hashicorp/terraform-mcp-server:latest"] } }',
|
|
62
|
+
install_note: "Requires Docker. For HCP Terraform, set TFE_ADDRESS and TFE_TOKEN environment variables.",
|
|
63
|
+
required: false,
|
|
64
|
+
status: "recommended",
|
|
65
|
+
enhances: ["sdd_validate_iac", "sdd_generate_iac"],
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
id: "azure",
|
|
69
|
+
name: "Azure MCP Server",
|
|
70
|
+
purpose: "Validate Azure infrastructure templates (ARM/Bicep), manage resources, and deploy. Enhances sdd_validate_iac for Azure cloud.",
|
|
71
|
+
install_command: 'Add to VS Code MCP settings: { "azure": { "type": "stdio", "command": "npx", "args": ["-y", "@azure/mcp@latest", "server", "start"] } }',
|
|
72
|
+
install_note: "Requires Azure CLI authentication. Run: az login",
|
|
73
|
+
required: false,
|
|
74
|
+
status: "recommended",
|
|
75
|
+
enhances: ["sdd_validate_iac", "sdd_generate_iac", "sdd_setup_local_env"],
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
id: "figma",
|
|
79
|
+
name: "Figma MCP Server",
|
|
80
|
+
purpose: "Extract design context from Figma files and generate FigJam diagrams. Required for sdd_figma_to_spec and sdd_figma_diagram.",
|
|
81
|
+
install_command: 'Add to VS Code MCP settings: { "figma": { "type": "http", "url": "http://127.0.0.1:3845/sse" } } OR use Figma MCP Gallery entry.',
|
|
82
|
+
install_note: "Requires Figma desktop app running with MCP plugin enabled, or use the cloud-hosted Figma MCP.",
|
|
83
|
+
required: false,
|
|
84
|
+
status: "recommended",
|
|
85
|
+
enhances: ["sdd_figma_to_spec", "sdd_figma_diagram"],
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
id: "docker",
|
|
89
|
+
name: "Docker MCP (via Docker Desktop)",
|
|
90
|
+
purpose: "Create and manage local development environments with Docker Compose. Enhances sdd_setup_local_env.",
|
|
91
|
+
install_command: "Install Docker Desktop from: https://www.docker.com/products/docker-desktop/",
|
|
92
|
+
install_note: "Docker Desktop includes MCP support. No additional MCP server installation needed.",
|
|
93
|
+
required: false,
|
|
94
|
+
status: "recommended",
|
|
95
|
+
enhances: ["sdd_setup_local_env", "sdd_generate_dockerfile"],
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
id: "playwright",
|
|
99
|
+
name: "Playwright MCP Server",
|
|
100
|
+
purpose: "Run browser-based E2E tests against implemented features. Enhances the Verify phase.",
|
|
101
|
+
install_command: 'Add to VS Code MCP settings: { "playwright": { "type": "stdio", "command": "npx", "args": ["@playwright/mcp@latest"] } }',
|
|
102
|
+
install_note: "Requires Playwright browsers. Run: npx playwright install",
|
|
103
|
+
required: false,
|
|
104
|
+
status: "recommended",
|
|
105
|
+
enhances: ["sdd_verify_tasks"],
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
id: "miro",
|
|
109
|
+
name: "Miro MCP Server",
|
|
110
|
+
purpose: "Create collaborative diagrams and boards from Specky outputs. Alternative to FigJam.",
|
|
111
|
+
install_command: 'Add to VS Code MCP settings: { "miro": { "type": "http", "url": "https://mcp.miro.com/" } }',
|
|
112
|
+
install_note: "Requires Miro account. Available in VS Code MCP Gallery.",
|
|
113
|
+
required: false,
|
|
114
|
+
status: "recommended",
|
|
115
|
+
enhances: ["sdd_generate_diagram", "sdd_generate_all_diagrams"],
|
|
116
|
+
},
|
|
117
|
+
];
|
|
9
118
|
/** Maximum response size in characters before truncation */
|
|
10
119
|
export const CHARACTER_LIMIT = 25_000;
|
|
11
120
|
/** Default directory for SDD specifications */
|
|
@@ -131,6 +240,8 @@ export const TOOL_NAMES = {
|
|
|
131
240
|
GENERATE_ONBOARDING: "sdd_generate_onboarding",
|
|
132
241
|
// Metrics
|
|
133
242
|
METRICS: "sdd_metrics",
|
|
243
|
+
// Testing
|
|
244
|
+
GENERATE_TESTS: "sdd_generate_tests",
|
|
134
245
|
};
|
|
135
246
|
// Input & Conversion
|
|
136
247
|
export const TOOL_IMPORT_DOCUMENT = "sdd_import_document";
|
package/dist/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -37,9 +37,18 @@ import { registerInfrastructureTools } from "./tools/infrastructure.js";
|
|
|
37
37
|
import { registerEnvironmentTools } from "./tools/environment.js";
|
|
38
38
|
import { registerIntegrationTools } from "./tools/integration.js";
|
|
39
39
|
import { registerDocumentationTools } from "./tools/documentation.js";
|
|
40
|
+
import { TestGenerator } from "./services/test-generator.js";
|
|
41
|
+
import { registerTestingTools } from "./tools/testing.js";
|
|
42
|
+
import { loadConfig } from "./config.js";
|
|
40
43
|
// Resolve workspace root
|
|
41
44
|
const workspaceRoot = process.env["SDD_WORKSPACE"] || process.cwd();
|
|
42
45
|
console.error(`[specky] Workspace root: ${workspaceRoot}`);
|
|
46
|
+
// Load optional project config (.specky/config.yml)
|
|
47
|
+
const config = loadConfig(workspaceRoot);
|
|
48
|
+
if (config.templates_path)
|
|
49
|
+
console.error(`[specky] Custom templates: ${config.templates_path}`);
|
|
50
|
+
if (config.audit_enabled)
|
|
51
|
+
console.error(`[specky] Audit trail: enabled`);
|
|
43
52
|
// Initialize MCP server
|
|
44
53
|
const server = new McpServer({
|
|
45
54
|
name: SERVER_NAME,
|
|
@@ -61,7 +70,8 @@ const crossAnalyzer = new CrossAnalyzer(fileManager);
|
|
|
61
70
|
const complianceEngine = new ComplianceEngine();
|
|
62
71
|
const docGenerator = new DocGenerator(fileManager);
|
|
63
72
|
const gitManager = new GitManager(fileManager);
|
|
64
|
-
|
|
73
|
+
const testGenerator = new TestGenerator(fileManager);
|
|
74
|
+
// Register all tools (44 total)
|
|
65
75
|
// v1 tools (17)
|
|
66
76
|
registerPipelineTools(server, fileManager, stateMachine, templateEngine, earsValidator);
|
|
67
77
|
registerAnalysisTools(server, fileManager, stateMachine, templateEngine);
|
|
@@ -69,12 +79,13 @@ registerUtilityTools(server, fileManager, stateMachine, templateEngine, codebase
|
|
|
69
79
|
registerTranscriptTools(server, fileManager, stateMachine, templateEngine, earsValidator, transcriptParser);
|
|
70
80
|
// v2 tools (25)
|
|
71
81
|
registerInputTools(server, fileManager, documentConverter, stateMachine);
|
|
72
|
-
registerQualityTools(server, fileManager, stateMachine, templateEngine, complianceEngine, crossAnalyzer);
|
|
82
|
+
registerQualityTools(server, fileManager, stateMachine, templateEngine, complianceEngine, crossAnalyzer, earsValidator);
|
|
73
83
|
registerVisualizationTools(server, fileManager, stateMachine, diagramGenerator);
|
|
74
84
|
registerInfrastructureTools(server, fileManager, stateMachine, iacGenerator);
|
|
75
85
|
registerEnvironmentTools(server, fileManager, stateMachine, iacGenerator, codebaseScanner);
|
|
76
86
|
registerIntegrationTools(server, fileManager, stateMachine, templateEngine, gitManager, workItemExporter);
|
|
77
87
|
registerDocumentationTools(server, fileManager, stateMachine, docGenerator);
|
|
88
|
+
registerTestingTools(server, fileManager, stateMachine, testGenerator);
|
|
78
89
|
// Graceful shutdown
|
|
79
90
|
let isShuttingDown = false;
|
|
80
91
|
function handleShutdown(signal) {
|
|
@@ -108,6 +119,10 @@ async function main() {
|
|
|
108
119
|
if (req.url === "/mcp") {
|
|
109
120
|
await transport.handleRequest(req, res);
|
|
110
121
|
}
|
|
122
|
+
else if (req.url === "/health") {
|
|
123
|
+
res.writeHead(200, { "Content-Type": "application/json" });
|
|
124
|
+
res.end(JSON.stringify({ status: "ok", version: VERSION }));
|
|
125
|
+
}
|
|
111
126
|
else {
|
|
112
127
|
res.writeHead(404);
|
|
113
128
|
res.end("Not found");
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;;GAMG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACzE,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAEnE,8BAA8B;AAC9B,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAEvD,iCAAiC;AACjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,2BAA2B,EAAE,MAAM,2BAA2B,CAAC;AACxE,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,49 +5,24 @@ import { z } from "zod";
|
|
|
5
5
|
export declare const setupLocalEnvInputSchema: z.ZodObject<{
|
|
6
6
|
feature_number: z.ZodDefault<z.ZodString>;
|
|
7
7
|
spec_dir: z.ZodDefault<z.ZodString>;
|
|
8
|
-
services: z.ZodOptional<z.ZodArray<z.ZodString
|
|
8
|
+
services: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
9
9
|
port: z.ZodDefault<z.ZodNumber>;
|
|
10
|
-
},
|
|
11
|
-
spec_dir: string;
|
|
12
|
-
feature_number: string;
|
|
13
|
-
port: number;
|
|
14
|
-
services?: string[] | undefined;
|
|
15
|
-
}, {
|
|
16
|
-
spec_dir?: string | undefined;
|
|
17
|
-
feature_number?: string | undefined;
|
|
18
|
-
services?: string[] | undefined;
|
|
19
|
-
port?: number | undefined;
|
|
20
|
-
}>;
|
|
10
|
+
}, z.core.$strict>;
|
|
21
11
|
export declare const setupCodespacesInputSchema: z.ZodObject<{
|
|
22
12
|
feature_number: z.ZodDefault<z.ZodString>;
|
|
23
13
|
spec_dir: z.ZodDefault<z.ZodString>;
|
|
24
|
-
machine_type: z.ZodDefault<z.ZodEnum<
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
extensions
|
|
31
|
-
},
|
|
32
|
-
spec_dir?: string | undefined;
|
|
33
|
-
feature_number?: string | undefined;
|
|
34
|
-
machine_type?: "basicLinux32gb" | "standardLinux32gb" | "premiumLinux" | "largePremiumLinux" | undefined;
|
|
35
|
-
extensions?: string[] | undefined;
|
|
36
|
-
}>;
|
|
14
|
+
machine_type: z.ZodDefault<z.ZodEnum<{
|
|
15
|
+
basicLinux32gb: "basicLinux32gb";
|
|
16
|
+
standardLinux32gb: "standardLinux32gb";
|
|
17
|
+
premiumLinux: "premiumLinux";
|
|
18
|
+
largePremiumLinux: "largePremiumLinux";
|
|
19
|
+
}>>;
|
|
20
|
+
extensions: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
21
|
+
}, z.core.$strict>;
|
|
37
22
|
export declare const generateDevcontainerInputSchema: z.ZodObject<{
|
|
38
23
|
feature_number: z.ZodDefault<z.ZodString>;
|
|
39
24
|
spec_dir: z.ZodDefault<z.ZodString>;
|
|
40
25
|
base_image: z.ZodOptional<z.ZodString>;
|
|
41
|
-
features: z.ZodOptional<z.ZodArray<z.ZodString
|
|
42
|
-
},
|
|
43
|
-
spec_dir: string;
|
|
44
|
-
feature_number: string;
|
|
45
|
-
base_image?: string | undefined;
|
|
46
|
-
features?: string[] | undefined;
|
|
47
|
-
}, {
|
|
48
|
-
spec_dir?: string | undefined;
|
|
49
|
-
feature_number?: string | undefined;
|
|
50
|
-
base_image?: string | undefined;
|
|
51
|
-
features?: string[] | undefined;
|
|
52
|
-
}>;
|
|
26
|
+
features: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
27
|
+
}, z.core.$strict>;
|
|
53
28
|
//# sourceMappingURL=environment.d.ts.map
|