create-specfuse 0.7.0 → 0.9.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 (110) hide show
  1. package/README.md +55 -144
  2. package/dist/index.d.ts +2 -1
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +21 -11
  5. package/dist/index.js.map +1 -1
  6. package/dist/prompts.d.ts +2 -2
  7. package/dist/prompts.d.ts.map +1 -1
  8. package/dist/prompts.js +3 -82
  9. package/dist/prompts.js.map +1 -1
  10. package/dist/scaffolder.d.ts.map +1 -1
  11. package/dist/scaffolder.js +7 -44
  12. package/dist/scaffolder.js.map +1 -1
  13. package/dist/templates/claude-md.d.ts.map +1 -1
  14. package/dist/templates/claude-md.js +7 -23
  15. package/dist/templates/claude-md.js.map +1 -1
  16. package/dist/templates/claude-settings.d.ts +1 -2
  17. package/dist/templates/claude-settings.d.ts.map +1 -1
  18. package/dist/templates/claude-settings.js +2 -2
  19. package/dist/templates/claude-settings.js.map +1 -1
  20. package/dist/templates/fusereview-skill.d.ts +1 -1
  21. package/dist/templates/fusereview-skill.d.ts.map +1 -1
  22. package/dist/templates/fusereview-skill.js +2 -10
  23. package/dist/templates/fusereview-skill.js.map +1 -1
  24. package/dist/templates/gitignore.d.ts +1 -2
  25. package/dist/templates/gitignore.d.ts.map +1 -1
  26. package/dist/templates/gitignore.js +2 -11
  27. package/dist/templates/gitignore.js.map +1 -1
  28. package/dist/templates/openspec-config.d.ts +1 -2
  29. package/dist/templates/openspec-config.d.ts.map +1 -1
  30. package/dist/templates/openspec-config.js +34 -3
  31. package/dist/templates/openspec-config.js.map +1 -1
  32. package/dist/types.d.ts +0 -24
  33. package/dist/types.d.ts.map +1 -1
  34. package/dist/utils/tools.d.ts +0 -3
  35. package/dist/utils/tools.d.ts.map +1 -1
  36. package/dist/utils/tools.js +25 -38
  37. package/dist/utils/tools.js.map +1 -1
  38. package/package.json +1 -1
  39. package/dist/stacks/bash.d.ts +0 -5
  40. package/dist/stacks/bash.d.ts.map +0 -1
  41. package/dist/stacks/bash.js +0 -66
  42. package/dist/stacks/bash.js.map +0 -1
  43. package/dist/stacks/cpp-cmake.d.ts +0 -5
  44. package/dist/stacks/cpp-cmake.d.ts.map +0 -1
  45. package/dist/stacks/cpp-cmake.js +0 -74
  46. package/dist/stacks/cpp-cmake.js.map +0 -1
  47. package/dist/stacks/detect.d.ts +0 -11
  48. package/dist/stacks/detect.d.ts.map +0 -1
  49. package/dist/stacks/detect.js +0 -104
  50. package/dist/stacks/detect.js.map +0 -1
  51. package/dist/stacks/dotnet.d.ts +0 -5
  52. package/dist/stacks/dotnet.d.ts.map +0 -1
  53. package/dist/stacks/dotnet.js +0 -68
  54. package/dist/stacks/dotnet.js.map +0 -1
  55. package/dist/stacks/elixir.d.ts +0 -5
  56. package/dist/stacks/elixir.d.ts.map +0 -1
  57. package/dist/stacks/elixir.js +0 -68
  58. package/dist/stacks/elixir.js.map +0 -1
  59. package/dist/stacks/go.d.ts +0 -5
  60. package/dist/stacks/go.d.ts.map +0 -1
  61. package/dist/stacks/go.js +0 -68
  62. package/dist/stacks/go.js.map +0 -1
  63. package/dist/stacks/index.d.ts +0 -7
  64. package/dist/stacks/index.d.ts.map +0 -1
  65. package/dist/stacks/index.js +0 -84
  66. package/dist/stacks/index.js.map +0 -1
  67. package/dist/stacks/java-gradle.d.ts +0 -5
  68. package/dist/stacks/java-gradle.d.ts.map +0 -1
  69. package/dist/stacks/java-gradle.js +0 -69
  70. package/dist/stacks/java-gradle.js.map +0 -1
  71. package/dist/stacks/java-maven.d.ts +0 -5
  72. package/dist/stacks/java-maven.d.ts.map +0 -1
  73. package/dist/stacks/java-maven.js +0 -67
  74. package/dist/stacks/java-maven.js.map +0 -1
  75. package/dist/stacks/kotlin.d.ts +0 -5
  76. package/dist/stacks/kotlin.d.ts.map +0 -1
  77. package/dist/stacks/kotlin.js +0 -69
  78. package/dist/stacks/kotlin.js.map +0 -1
  79. package/dist/stacks/php.d.ts +0 -5
  80. package/dist/stacks/php.d.ts.map +0 -1
  81. package/dist/stacks/php.js +0 -68
  82. package/dist/stacks/php.js.map +0 -1
  83. package/dist/stacks/python-fastapi.d.ts +0 -5
  84. package/dist/stacks/python-fastapi.d.ts.map +0 -1
  85. package/dist/stacks/python-fastapi.js +0 -75
  86. package/dist/stacks/python-fastapi.js.map +0 -1
  87. package/dist/stacks/ruby.d.ts +0 -5
  88. package/dist/stacks/ruby.d.ts.map +0 -1
  89. package/dist/stacks/ruby.js +0 -69
  90. package/dist/stacks/ruby.js.map +0 -1
  91. package/dist/stacks/rust.d.ts +0 -5
  92. package/dist/stacks/rust.d.ts.map +0 -1
  93. package/dist/stacks/rust.js +0 -65
  94. package/dist/stacks/rust.js.map +0 -1
  95. package/dist/stacks/scala-sbt.d.ts +0 -5
  96. package/dist/stacks/scala-sbt.d.ts.map +0 -1
  97. package/dist/stacks/scala-sbt.js +0 -68
  98. package/dist/stacks/scala-sbt.js.map +0 -1
  99. package/dist/stacks/schema.d.ts +0 -91
  100. package/dist/stacks/schema.d.ts.map +0 -1
  101. package/dist/stacks/schema.js +0 -23
  102. package/dist/stacks/schema.js.map +0 -1
  103. package/dist/stacks/swift.d.ts +0 -5
  104. package/dist/stacks/swift.d.ts.map +0 -1
  105. package/dist/stacks/swift.js +0 -69
  106. package/dist/stacks/swift.js.map +0 -1
  107. package/dist/stacks/typescript-react.d.ts +0 -5
  108. package/dist/stacks/typescript-react.d.ts.map +0 -1
  109. package/dist/stacks/typescript-react.js +0 -73
  110. package/dist/stacks/typescript-react.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"kotlin.d.ts","sourceRoot":"","sources":["../../src/stacks/kotlin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD,eAAO,MAAM,WAAW,EAAE,YA4DzB,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,eAMnC,CAAC"}
@@ -1,69 +0,0 @@
1
- export const kotlinStack = {
2
- id: 'kotlin',
3
- label: 'Kotlin',
4
- languages: ['Kotlin'],
5
- architecture: 'Clean Architecture / MVVM',
6
- commands: {
7
- build: 'gradle build -x test',
8
- test: 'gradle test',
9
- lint: 'ktlint',
10
- format: 'ktlint -F',
11
- },
12
- errorHandling: 'Kotlin exceptions + sealed classes + Result type',
13
- concurrency: 'Kotlin coroutines + Flow',
14
- permissions: [
15
- 'Bash(gradle *)',
16
- 'Bash(gradlew *)',
17
- 'Bash(ktlint *)',
18
- 'Bash(kotlin *)',
19
- ],
20
- gitignorePatterns: [
21
- '/build/',
22
- '.gradle/',
23
- '*.class',
24
- '.idea/',
25
- '*.iml',
26
- ],
27
- openspecContext: `Tech stack: Kotlin
28
- Build: gradle build -x test
29
- Testing: gradle test
30
- Code style: ktlint
31
- Architecture: Clean Architecture / MVVM
32
- Error handling: Kotlin exceptions + sealed classes + Result type
33
- Concurrency: Kotlin coroutines + Flow`,
34
- openspecRules: {
35
- proposal: [
36
- 'Always include a "Non-goals" section to explicitly scope out what this change does NOT do',
37
- 'Include "Trade-offs" section with at least 2 alternative approaches considered',
38
- 'Must reference affected modules/packages by name',
39
- 'Keep proposals under 800 words',
40
- ],
41
- design: [
42
- 'Must include a dependency diagram (ASCII or mermaid) showing module relationships',
43
- 'Must specify public API surface (interfaces, class signatures)',
44
- 'Must address error handling strategy for the change',
45
- 'Must address concurrency implications if applicable',
46
- ],
47
- specs: [
48
- 'Each spec must be independently testable',
49
- 'Specs must define both success and failure behaviors',
50
- 'Include boundary conditions and edge cases',
51
- 'Reference specific types/classes, not vague descriptions',
52
- ],
53
- tasks: [
54
- 'Break tasks into chunks of max 2 hours of work',
55
- 'Each task must have a clear "done" definition verifiable by running a command',
56
- 'Tasks must follow TDD order - write test first, then implement, then refactor',
57
- 'Every task must include a verification command (gradle test / specific test class)',
58
- 'Mark blocking dependencies explicitly between tasks',
59
- ],
60
- },
61
- };
62
- export const kotlinDetectionConfig = {
63
- stackId: 'kotlin',
64
- markerFiles: [],
65
- markerDirs: [],
66
- fileExtensions: ['.kt', '.kts'],
67
- priority: 10,
68
- };
69
- //# sourceMappingURL=kotlin.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"kotlin.js","sourceRoot":"","sources":["../../src/stacks/kotlin.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,WAAW,GAAiB;IACvC,EAAE,EAAE,QAAQ;IACZ,KAAK,EAAE,QAAQ;IACf,SAAS,EAAE,CAAC,QAAQ,CAAC;IACrB,YAAY,EAAE,2BAA2B;IACzC,QAAQ,EAAE;QACR,KAAK,EAAE,sBAAsB;QAC7B,IAAI,EAAE,aAAa;QACnB,IAAI,EAAE,QAAQ;QACd,MAAM,EAAE,WAAW;KACpB;IACD,aAAa,EAAE,kDAAkD;IACjE,WAAW,EAAE,0BAA0B;IACvC,WAAW,EAAE;QACX,gBAAgB;QAChB,iBAAiB;QACjB,gBAAgB;QAChB,gBAAgB;KACjB;IACD,iBAAiB,EAAE;QACjB,SAAS;QACT,UAAU;QACV,SAAS;QACT,QAAQ;QACR,OAAO;KACR;IACD,eAAe,EAAE;;;;;;sCAMmB;IACpC,aAAa,EAAE;QACb,QAAQ,EAAE;YACR,2FAA2F;YAC3F,gFAAgF;YAChF,kDAAkD;YAClD,gCAAgC;SACjC;QACD,MAAM,EAAE;YACN,mFAAmF;YACnF,gEAAgE;YAChE,qDAAqD;YACrD,qDAAqD;SACtD;QACD,KAAK,EAAE;YACL,0CAA0C;YAC1C,sDAAsD;YACtD,4CAA4C;YAC5C,0DAA0D;SAC3D;QACD,KAAK,EAAE;YACL,gDAAgD;YAChD,+EAA+E;YAC/E,+EAA+E;YAC/E,oFAAoF;YACpF,qDAAqD;SACtD;KACF;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAoB;IACpD,OAAO,EAAE,QAAQ;IACjB,WAAW,EAAE,EAAE;IACf,UAAU,EAAE,EAAE;IACd,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC;IAC/B,QAAQ,EAAE,EAAE;CACb,CAAC"}
@@ -1,5 +0,0 @@
1
- import type { StackProfile } from '../types.js';
2
- import type { DetectionConfig } from './detect.js';
3
- export declare const phpStack: StackProfile;
4
- export declare const phpDetectionConfig: DetectionConfig;
5
- //# sourceMappingURL=php.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"php.d.ts","sourceRoot":"","sources":["../../src/stacks/php.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD,eAAO,MAAM,QAAQ,EAAE,YA2DtB,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,eAMhC,CAAC"}
@@ -1,68 +0,0 @@
1
- export const phpStack = {
2
- id: 'php',
3
- label: 'PHP',
4
- languages: ['PHP'],
5
- architecture: 'MVC / Layered',
6
- commands: {
7
- build: 'composer install',
8
- test: 'vendor/bin/phpunit',
9
- lint: 'vendor/bin/phpstan analyse',
10
- format: 'vendor/bin/php-cs-fixer fix',
11
- },
12
- errorHandling: 'PHP exceptions + typed error handlers',
13
- concurrency: 'PHP Fibers (PHP 8.1+) + async frameworks',
14
- permissions: [
15
- 'Bash(php *)',
16
- 'Bash(composer *)',
17
- 'Bash(vendor/bin/phpunit *)',
18
- 'Bash(vendor/bin/phpstan *)',
19
- ],
20
- gitignorePatterns: [
21
- '/vendor/',
22
- '*.cache',
23
- '.phpunit.result.cache',
24
- '.php-cs-fixer.cache',
25
- ],
26
- openspecContext: `Tech stack: PHP
27
- Build: composer install
28
- Testing: vendor/bin/phpunit
29
- Code style: phpstan + php-cs-fixer
30
- Architecture: MVC / Layered
31
- Error handling: PHP exceptions + typed error handlers
32
- Concurrency: PHP Fibers (PHP 8.1+) + async frameworks`,
33
- openspecRules: {
34
- proposal: [
35
- 'Always include a "Non-goals" section to explicitly scope out what this change does NOT do',
36
- 'Include "Trade-offs" section with at least 2 alternative approaches considered',
37
- 'Must reference affected packages/namespaces by name',
38
- 'Keep proposals under 800 words',
39
- ],
40
- design: [
41
- 'Must include a dependency diagram (ASCII or mermaid) showing namespace/package relationships',
42
- 'Must specify public API surface (classes, interfaces, method signatures)',
43
- 'Must address error handling strategy for the change',
44
- 'Must address concurrency implications if applicable',
45
- ],
46
- specs: [
47
- 'Each spec must be independently testable',
48
- 'Specs must define both success and failure behaviors',
49
- 'Include boundary conditions and edge cases',
50
- 'Reference specific classes/interfaces/methods, not vague descriptions',
51
- ],
52
- tasks: [
53
- 'Break tasks into chunks of max 2 hours of work',
54
- 'Each task must have a clear "done" definition verifiable by running a command',
55
- 'Tasks must follow TDD order - write test first, then implement, then refactor',
56
- 'Every task must include a verification command (vendor/bin/phpunit / specific test file)',
57
- 'Mark blocking dependencies explicitly between tasks',
58
- ],
59
- },
60
- };
61
- export const phpDetectionConfig = {
62
- stackId: 'php',
63
- markerFiles: ['composer.json', 'composer.lock'],
64
- markerDirs: [],
65
- fileExtensions: ['.php'],
66
- priority: 10,
67
- };
68
- //# sourceMappingURL=php.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"php.js","sourceRoot":"","sources":["../../src/stacks/php.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,QAAQ,GAAiB;IACpC,EAAE,EAAE,KAAK;IACT,KAAK,EAAE,KAAK;IACZ,SAAS,EAAE,CAAC,KAAK,CAAC;IAClB,YAAY,EAAE,eAAe;IAC7B,QAAQ,EAAE;QACR,KAAK,EAAE,kBAAkB;QACzB,IAAI,EAAE,oBAAoB;QAC1B,IAAI,EAAE,4BAA4B;QAClC,MAAM,EAAE,6BAA6B;KACtC;IACD,aAAa,EAAE,uCAAuC;IACtD,WAAW,EAAE,0CAA0C;IACvD,WAAW,EAAE;QACX,aAAa;QACb,kBAAkB;QAClB,4BAA4B;QAC5B,4BAA4B;KAC7B;IACD,iBAAiB,EAAE;QACjB,UAAU;QACV,SAAS;QACT,uBAAuB;QACvB,qBAAqB;KACtB;IACD,eAAe,EAAE;;;;;;sDAMmC;IACpD,aAAa,EAAE;QACb,QAAQ,EAAE;YACR,2FAA2F;YAC3F,gFAAgF;YAChF,qDAAqD;YACrD,gCAAgC;SACjC;QACD,MAAM,EAAE;YACN,8FAA8F;YAC9F,0EAA0E;YAC1E,qDAAqD;YACrD,qDAAqD;SACtD;QACD,KAAK,EAAE;YACL,0CAA0C;YAC1C,sDAAsD;YACtD,4CAA4C;YAC5C,uEAAuE;SACxE;QACD,KAAK,EAAE;YACL,gDAAgD;YAChD,+EAA+E;YAC/E,+EAA+E;YAC/E,0FAA0F;YAC1F,qDAAqD;SACtD;KACF;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAoB;IACjD,OAAO,EAAE,KAAK;IACd,WAAW,EAAE,CAAC,eAAe,EAAE,eAAe,CAAC;IAC/C,UAAU,EAAE,EAAE;IACd,cAAc,EAAE,CAAC,MAAM,CAAC;IACxB,QAAQ,EAAE,EAAE;CACb,CAAC"}
@@ -1,5 +0,0 @@
1
- import type { StackProfile } from '../types.js';
2
- import type { DetectionConfig } from './detect.js';
3
- export declare const pythonFastapiStack: StackProfile;
4
- export declare const pythonFastapiDetectionConfig: DetectionConfig;
5
- //# sourceMappingURL=python-fastapi.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"python-fastapi.d.ts","sourceRoot":"","sources":["../../src/stacks/python-fastapi.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD,eAAO,MAAM,kBAAkB,EAAE,YAkEhC,CAAC;AAEF,eAAO,MAAM,4BAA4B,EAAE,eAM1C,CAAC"}
@@ -1,75 +0,0 @@
1
- export const pythonFastapiStack = {
2
- id: 'python-fastapi',
3
- label: 'Python + FastAPI',
4
- languages: ['Python'],
5
- framework: 'FastAPI',
6
- architecture: 'Clean Architecture / Layered (API -> Service -> Repository)',
7
- commands: {
8
- build: 'pip install -e .',
9
- test: 'python -m pytest tests/ -v',
10
- lint: 'ruff check .',
11
- format: 'ruff format .',
12
- typecheck: 'mypy src/',
13
- },
14
- errorHandling: 'Python exceptions + FastAPI HTTPException + custom error handlers',
15
- concurrency: 'Python asyncio + FastAPI async endpoints',
16
- permissions: [
17
- 'Bash(python -m pytest *)',
18
- 'Bash(pip install *)',
19
- 'Bash(ruff *)',
20
- 'Bash(mypy *)',
21
- 'Bash(uvicorn *)',
22
- 'Bash(python *)',
23
- ],
24
- gitignorePatterns: [
25
- '__pycache__/',
26
- '*.egg-info/',
27
- '.venv/',
28
- '*.pyc',
29
- '.mypy_cache/',
30
- '.ruff_cache/',
31
- '/dist/',
32
- ],
33
- openspecContext: `Tech stack: Python + FastAPI backend services
34
- Build: pip install -e .
35
- Testing: pytest
36
- Code style: ruff (check + format) + mypy
37
- Architecture: Clean Architecture / Layered (API -> Service -> Repository)
38
- Error handling: Python exceptions + FastAPI HTTPException
39
- Concurrency: Python asyncio + FastAPI async endpoints`,
40
- openspecRules: {
41
- proposal: [
42
- 'Always include a "Non-goals" section to explicitly scope out what this change does NOT do',
43
- 'Include "Trade-offs" section with at least 2 alternative approaches considered',
44
- 'Must reference affected modules/packages by name',
45
- 'Keep proposals under 800 words',
46
- ],
47
- design: [
48
- 'Must include a dependency diagram (ASCII or mermaid) showing module relationships',
49
- 'Must specify public API surface (Pydantic models, endpoint signatures)',
50
- 'Must address error handling strategy for the change',
51
- 'Must address async/concurrency implications if applicable',
52
- ],
53
- specs: [
54
- 'Each spec must be independently testable',
55
- 'Specs must define both success and failure behaviors',
56
- 'Include boundary conditions and edge cases',
57
- 'Reference specific classes/models/types, not vague descriptions',
58
- ],
59
- tasks: [
60
- 'Break tasks into chunks of max 2 hours of work',
61
- 'Each task must have a clear "done" definition verifiable by running a command',
62
- 'Tasks must follow TDD order - write test first, then implement, then refactor',
63
- 'Every task must include a verification command (pytest / specific test function)',
64
- 'Mark blocking dependencies explicitly between tasks',
65
- ],
66
- },
67
- };
68
- export const pythonFastapiDetectionConfig = {
69
- stackId: 'python-fastapi',
70
- markerFiles: ['requirements.txt', 'pyproject.toml', 'setup.py', 'Pipfile'],
71
- markerDirs: [],
72
- fileExtensions: ['.py'],
73
- priority: 10,
74
- };
75
- //# sourceMappingURL=python-fastapi.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"python-fastapi.js","sourceRoot":"","sources":["../../src/stacks/python-fastapi.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,kBAAkB,GAAiB;IAC9C,EAAE,EAAE,gBAAgB;IACpB,KAAK,EAAE,kBAAkB;IACzB,SAAS,EAAE,CAAC,QAAQ,CAAC;IACrB,SAAS,EAAE,SAAS;IACpB,YAAY,EAAE,6DAA6D;IAC3E,QAAQ,EAAE;QACR,KAAK,EAAE,kBAAkB;QACzB,IAAI,EAAE,4BAA4B;QAClC,IAAI,EAAE,cAAc;QACpB,MAAM,EAAE,eAAe;QACvB,SAAS,EAAE,WAAW;KACvB;IACD,aAAa,EAAE,mEAAmE;IAClF,WAAW,EAAE,0CAA0C;IACvD,WAAW,EAAE;QACX,0BAA0B;QAC1B,qBAAqB;QACrB,cAAc;QACd,cAAc;QACd,iBAAiB;QACjB,gBAAgB;KACjB;IACD,iBAAiB,EAAE;QACjB,cAAc;QACd,aAAa;QACb,QAAQ;QACR,OAAO;QACP,cAAc;QACd,cAAc;QACd,QAAQ;KACT;IACD,eAAe,EAAE;;;;;;sDAMmC;IACpD,aAAa,EAAE;QACb,QAAQ,EAAE;YACR,2FAA2F;YAC3F,gFAAgF;YAChF,kDAAkD;YAClD,gCAAgC;SACjC;QACD,MAAM,EAAE;YACN,mFAAmF;YACnF,wEAAwE;YACxE,qDAAqD;YACrD,2DAA2D;SAC5D;QACD,KAAK,EAAE;YACL,0CAA0C;YAC1C,sDAAsD;YACtD,4CAA4C;YAC5C,iEAAiE;SAClE;QACD,KAAK,EAAE;YACL,gDAAgD;YAChD,+EAA+E;YAC/E,+EAA+E;YAC/E,kFAAkF;YAClF,qDAAqD;SACtD;KACF;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,4BAA4B,GAAoB;IAC3D,OAAO,EAAE,gBAAgB;IACzB,WAAW,EAAE,CAAC,kBAAkB,EAAE,gBAAgB,EAAE,UAAU,EAAE,SAAS,CAAC;IAC1E,UAAU,EAAE,EAAE;IACd,cAAc,EAAE,CAAC,KAAK,CAAC;IACvB,QAAQ,EAAE,EAAE;CACb,CAAC"}
@@ -1,5 +0,0 @@
1
- import type { StackProfile } from '../types.js';
2
- import type { DetectionConfig } from './detect.js';
3
- export declare const rubyStack: StackProfile;
4
- export declare const rubyDetectionConfig: DetectionConfig;
5
- //# sourceMappingURL=ruby.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ruby.d.ts","sourceRoot":"","sources":["../../src/stacks/ruby.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD,eAAO,MAAM,SAAS,EAAE,YA4DvB,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,eAMjC,CAAC"}
@@ -1,69 +0,0 @@
1
- export const rubyStack = {
2
- id: 'ruby',
3
- label: 'Ruby',
4
- languages: ['Ruby'],
5
- architecture: 'MVC / Service-oriented',
6
- commands: {
7
- build: 'bundle install',
8
- test: 'bundle exec rspec',
9
- lint: 'bundle exec rubocop',
10
- format: 'bundle exec rubocop -A',
11
- },
12
- errorHandling: 'Ruby exceptions + custom error classes',
13
- concurrency: 'Ruby threads + Ractor (Ruby 3+)',
14
- permissions: [
15
- 'Bash(bundle *)',
16
- 'Bash(ruby *)',
17
- 'Bash(rake *)',
18
- 'Bash(rspec *)',
19
- ],
20
- gitignorePatterns: [
21
- '/vendor/bundle/',
22
- '*.gem',
23
- '.bundle/',
24
- '/coverage/',
25
- '/tmp/',
26
- ],
27
- openspecContext: `Tech stack: Ruby
28
- Build: bundle install
29
- Testing: bundle exec rspec
30
- Code style: rubocop
31
- Architecture: MVC / Service-oriented
32
- Error handling: Ruby exceptions + custom error classes
33
- Concurrency: Ruby threads + Ractor (Ruby 3+)`,
34
- openspecRules: {
35
- proposal: [
36
- 'Always include a "Non-goals" section to explicitly scope out what this change does NOT do',
37
- 'Include "Trade-offs" section with at least 2 alternative approaches considered',
38
- 'Must reference affected gems/modules by name',
39
- 'Keep proposals under 800 words',
40
- ],
41
- design: [
42
- 'Must include a dependency diagram (ASCII or mermaid) showing module relationships',
43
- 'Must specify public API surface (classes, modules, method signatures)',
44
- 'Must address error handling strategy for the change',
45
- 'Must address concurrency implications if applicable',
46
- ],
47
- specs: [
48
- 'Each spec must be independently testable',
49
- 'Specs must define both success and failure behaviors',
50
- 'Include boundary conditions and edge cases',
51
- 'Reference specific classes/modules/methods, not vague descriptions',
52
- ],
53
- tasks: [
54
- 'Break tasks into chunks of max 2 hours of work',
55
- 'Each task must have a clear "done" definition verifiable by running a command',
56
- 'Tasks must follow TDD order - write test first, then implement, then refactor',
57
- 'Every task must include a verification command (bundle exec rspec / specific spec file)',
58
- 'Mark blocking dependencies explicitly between tasks',
59
- ],
60
- },
61
- };
62
- export const rubyDetectionConfig = {
63
- stackId: 'ruby',
64
- markerFiles: ['Gemfile', 'Rakefile', '.ruby-version'],
65
- markerDirs: [],
66
- fileExtensions: ['.rb'],
67
- priority: 10,
68
- };
69
- //# sourceMappingURL=ruby.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ruby.js","sourceRoot":"","sources":["../../src/stacks/ruby.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,SAAS,GAAiB;IACrC,EAAE,EAAE,MAAM;IACV,KAAK,EAAE,MAAM;IACb,SAAS,EAAE,CAAC,MAAM,CAAC;IACnB,YAAY,EAAE,wBAAwB;IACtC,QAAQ,EAAE;QACR,KAAK,EAAE,gBAAgB;QACvB,IAAI,EAAE,mBAAmB;QACzB,IAAI,EAAE,qBAAqB;QAC3B,MAAM,EAAE,wBAAwB;KACjC;IACD,aAAa,EAAE,wCAAwC;IACvD,WAAW,EAAE,iCAAiC;IAC9C,WAAW,EAAE;QACX,gBAAgB;QAChB,cAAc;QACd,cAAc;QACd,eAAe;KAChB;IACD,iBAAiB,EAAE;QACjB,iBAAiB;QACjB,OAAO;QACP,UAAU;QACV,YAAY;QACZ,OAAO;KACR;IACD,eAAe,EAAE;;;;;;6CAM0B;IAC3C,aAAa,EAAE;QACb,QAAQ,EAAE;YACR,2FAA2F;YAC3F,gFAAgF;YAChF,8CAA8C;YAC9C,gCAAgC;SACjC;QACD,MAAM,EAAE;YACN,mFAAmF;YACnF,uEAAuE;YACvE,qDAAqD;YACrD,qDAAqD;SACtD;QACD,KAAK,EAAE;YACL,0CAA0C;YAC1C,sDAAsD;YACtD,4CAA4C;YAC5C,oEAAoE;SACrE;QACD,KAAK,EAAE;YACL,gDAAgD;YAChD,+EAA+E;YAC/E,+EAA+E;YAC/E,yFAAyF;YACzF,qDAAqD;SACtD;KACF;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAoB;IAClD,OAAO,EAAE,MAAM;IACf,WAAW,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,eAAe,CAAC;IACrD,UAAU,EAAE,EAAE;IACd,cAAc,EAAE,CAAC,KAAK,CAAC;IACvB,QAAQ,EAAE,EAAE;CACb,CAAC"}
@@ -1,5 +0,0 @@
1
- import type { StackProfile } from '../types.js';
2
- import type { DetectionConfig } from './detect.js';
3
- export declare const rustStack: StackProfile;
4
- export declare const rustDetectionConfig: DetectionConfig;
5
- //# sourceMappingURL=rust.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rust.d.ts","sourceRoot":"","sources":["../../src/stacks/rust.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD,eAAO,MAAM,SAAS,EAAE,YAwDvB,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,eAMjC,CAAC"}
@@ -1,65 +0,0 @@
1
- export const rustStack = {
2
- id: 'rust',
3
- label: 'Rust',
4
- languages: ['Rust'],
5
- architecture: 'Clean Architecture / Hexagonal (Ports & Adapters)',
6
- commands: {
7
- build: 'cargo build',
8
- test: 'cargo test',
9
- lint: 'cargo clippy -- -D warnings',
10
- format: 'cargo fmt',
11
- },
12
- errorHandling: 'Rust Result<T,E> / thiserror + anyhow',
13
- concurrency: 'Rust async (tokio) + channels',
14
- permissions: [
15
- 'Bash(cargo test *)',
16
- 'Bash(cargo build *)',
17
- 'Bash(cargo clippy *)',
18
- 'Bash(cargo fmt *)',
19
- ],
20
- gitignorePatterns: [
21
- '/target/',
22
- ],
23
- openspecContext: `Tech stack: Rust backend services
24
- Build: cargo build
25
- Testing: cargo test
26
- Code style: rustfmt + clippy
27
- Architecture: Clean Architecture / Hexagonal (ports & adapters)
28
- Error handling: Rust Result<T,E>
29
- Concurrency: Rust async (tokio) + channels`,
30
- openspecRules: {
31
- proposal: [
32
- 'Always include a "Non-goals" section to explicitly scope out what this change does NOT do',
33
- 'Include "Trade-offs" section with at least 2 alternative approaches considered',
34
- 'Must reference affected crates/modules by name',
35
- 'Keep proposals under 800 words',
36
- ],
37
- design: [
38
- 'Must include a dependency diagram (ASCII or mermaid) showing module relationships',
39
- 'Must specify public API surface (traits, function signatures)',
40
- 'Must address error handling strategy for the change',
41
- 'Must address concurrency implications if applicable',
42
- ],
43
- specs: [
44
- 'Each spec must be independently testable',
45
- 'Specs must define both success and failure behaviors',
46
- 'Include boundary conditions and edge cases',
47
- 'Reference specific types/traits, not vague descriptions',
48
- ],
49
- tasks: [
50
- 'Break tasks into chunks of max 2 hours of work',
51
- 'Each task must have a clear "done" definition verifiable by running a command',
52
- 'Tasks must follow TDD order - write test first, then implement, then refactor',
53
- 'Every task must include a verification command (cargo test / specific test function)',
54
- 'Mark blocking dependencies explicitly between tasks',
55
- ],
56
- },
57
- };
58
- export const rustDetectionConfig = {
59
- stackId: 'rust',
60
- markerFiles: ['Cargo.toml', 'Cargo.lock'],
61
- markerDirs: [],
62
- fileExtensions: ['.rs'],
63
- priority: 10,
64
- };
65
- //# sourceMappingURL=rust.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rust.js","sourceRoot":"","sources":["../../src/stacks/rust.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,SAAS,GAAiB;IACrC,EAAE,EAAE,MAAM;IACV,KAAK,EAAE,MAAM;IACb,SAAS,EAAE,CAAC,MAAM,CAAC;IACnB,YAAY,EAAE,mDAAmD;IACjE,QAAQ,EAAE;QACR,KAAK,EAAE,aAAa;QACpB,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE,6BAA6B;QACnC,MAAM,EAAE,WAAW;KACpB;IACD,aAAa,EAAE,uCAAuC;IACtD,WAAW,EAAE,+BAA+B;IAC5C,WAAW,EAAE;QACX,oBAAoB;QACpB,qBAAqB;QACrB,sBAAsB;QACtB,mBAAmB;KACpB;IACD,iBAAiB,EAAE;QACjB,UAAU;KACX;IACD,eAAe,EAAE;;;;;;2CAMwB;IACzC,aAAa,EAAE;QACb,QAAQ,EAAE;YACR,2FAA2F;YAC3F,gFAAgF;YAChF,gDAAgD;YAChD,gCAAgC;SACjC;QACD,MAAM,EAAE;YACN,mFAAmF;YACnF,+DAA+D;YAC/D,qDAAqD;YACrD,qDAAqD;SACtD;QACD,KAAK,EAAE;YACL,0CAA0C;YAC1C,sDAAsD;YACtD,4CAA4C;YAC5C,yDAAyD;SAC1D;QACD,KAAK,EAAE;YACL,gDAAgD;YAChD,+EAA+E;YAC/E,+EAA+E;YAC/E,sFAAsF;YACtF,qDAAqD;SACtD;KACF;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAoB;IAClD,OAAO,EAAE,MAAM;IACf,WAAW,EAAE,CAAC,YAAY,EAAE,YAAY,CAAC;IACzC,UAAU,EAAE,EAAE;IACd,cAAc,EAAE,CAAC,KAAK,CAAC;IACvB,QAAQ,EAAE,EAAE;CACb,CAAC"}
@@ -1,5 +0,0 @@
1
- import type { StackProfile } from '../types.js';
2
- import type { DetectionConfig } from './detect.js';
3
- export declare const scalaSbtStack: StackProfile;
4
- export declare const scalaSbtDetectionConfig: DetectionConfig;
5
- //# sourceMappingURL=scala-sbt.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scala-sbt.d.ts","sourceRoot":"","sources":["../../src/stacks/scala-sbt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD,eAAO,MAAM,aAAa,EAAE,YA2D3B,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,eAMrC,CAAC"}
@@ -1,68 +0,0 @@
1
- export const scalaSbtStack = {
2
- id: 'scala-sbt',
3
- label: 'Scala (sbt)',
4
- languages: ['Scala'],
5
- architecture: 'Functional / Layered (ZIO / Cats Effect)',
6
- commands: {
7
- build: 'sbt compile',
8
- test: 'sbt test',
9
- lint: 'sbt scalafmtCheck',
10
- format: 'sbt scalafmt',
11
- },
12
- errorHandling: 'Scala Either/Option + ZIO error channel + custom ADTs',
13
- concurrency: 'Scala Future + ZIO fibers + Cats Effect IO',
14
- permissions: [
15
- 'Bash(sbt *)',
16
- 'Bash(scala *)',
17
- 'Bash(scalac *)',
18
- ],
19
- gitignorePatterns: [
20
- '/target/',
21
- '/project/target/',
22
- '.bsp/',
23
- '.metals/',
24
- '.bloop/',
25
- ],
26
- openspecContext: `Tech stack: Scala (sbt)
27
- Build: sbt compile
28
- Testing: sbt test
29
- Code style: scalafmt + scalafmtCheck
30
- Architecture: Functional / Layered (ZIO / Cats Effect)
31
- Error handling: Scala Either/Option + ZIO error channel + custom ADTs
32
- Concurrency: Scala Future + ZIO fibers + Cats Effect IO`,
33
- openspecRules: {
34
- proposal: [
35
- 'Always include a "Non-goals" section to explicitly scope out what this change does NOT do',
36
- 'Include "Trade-offs" section with at least 2 alternative approaches considered',
37
- 'Must reference affected subprojects/packages by name',
38
- 'Keep proposals under 800 words',
39
- ],
40
- design: [
41
- 'Must include a dependency diagram (ASCII or mermaid) showing module relationships',
42
- 'Must specify public API surface (traits, case classes, type signatures)',
43
- 'Must address error handling strategy for the change',
44
- 'Must address concurrency implications if applicable',
45
- ],
46
- specs: [
47
- 'Each spec must be independently testable',
48
- 'Specs must define both success and failure behaviors',
49
- 'Include boundary conditions and edge cases',
50
- 'Reference specific types/traits, not vague descriptions',
51
- ],
52
- tasks: [
53
- 'Break tasks into chunks of max 2 hours of work',
54
- 'Each task must have a clear "done" definition verifiable by running a command',
55
- 'Tasks must follow TDD order - write test first, then implement, then refactor',
56
- 'Every task must include a verification command (sbt test / specific test suite)',
57
- 'Mark blocking dependencies explicitly between tasks',
58
- ],
59
- },
60
- };
61
- export const scalaSbtDetectionConfig = {
62
- stackId: 'scala-sbt',
63
- markerFiles: ['build.sbt'],
64
- markerDirs: ['project/'],
65
- fileExtensions: ['.scala', '.sc'],
66
- priority: 10,
67
- };
68
- //# sourceMappingURL=scala-sbt.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scala-sbt.js","sourceRoot":"","sources":["../../src/stacks/scala-sbt.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,aAAa,GAAiB;IACzC,EAAE,EAAE,WAAW;IACf,KAAK,EAAE,aAAa;IACpB,SAAS,EAAE,CAAC,OAAO,CAAC;IACpB,YAAY,EAAE,0CAA0C;IACxD,QAAQ,EAAE;QACR,KAAK,EAAE,aAAa;QACpB,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,mBAAmB;QACzB,MAAM,EAAE,cAAc;KACvB;IACD,aAAa,EAAE,uDAAuD;IACtE,WAAW,EAAE,4CAA4C;IACzD,WAAW,EAAE;QACX,aAAa;QACb,eAAe;QACf,gBAAgB;KACjB;IACD,iBAAiB,EAAE;QACjB,UAAU;QACV,kBAAkB;QAClB,OAAO;QACP,UAAU;QACV,SAAS;KACV;IACD,eAAe,EAAE;;;;;;wDAMqC;IACtD,aAAa,EAAE;QACb,QAAQ,EAAE;YACR,2FAA2F;YAC3F,gFAAgF;YAChF,sDAAsD;YACtD,gCAAgC;SACjC;QACD,MAAM,EAAE;YACN,mFAAmF;YACnF,yEAAyE;YACzE,qDAAqD;YACrD,qDAAqD;SACtD;QACD,KAAK,EAAE;YACL,0CAA0C;YAC1C,sDAAsD;YACtD,4CAA4C;YAC5C,yDAAyD;SAC1D;QACD,KAAK,EAAE;YACL,gDAAgD;YAChD,+EAA+E;YAC/E,+EAA+E;YAC/E,iFAAiF;YACjF,qDAAqD;SACtD;KACF;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAAoB;IACtD,OAAO,EAAE,WAAW;IACpB,WAAW,EAAE,CAAC,WAAW,CAAC;IAC1B,UAAU,EAAE,CAAC,UAAU,CAAC;IACxB,cAAc,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC;IACjC,QAAQ,EAAE,EAAE;CACb,CAAC"}
@@ -1,91 +0,0 @@
1
- import { z } from 'zod';
2
- export declare const stackCommandsSchema: z.ZodObject<{
3
- build: z.ZodString;
4
- test: z.ZodString;
5
- lint: z.ZodString;
6
- format: z.ZodOptional<z.ZodString>;
7
- typecheck: z.ZodOptional<z.ZodString>;
8
- }, "strip", z.ZodTypeAny, {
9
- build: string;
10
- test: string;
11
- lint: string;
12
- format?: string | undefined;
13
- typecheck?: string | undefined;
14
- }, {
15
- build: string;
16
- test: string;
17
- lint: string;
18
- format?: string | undefined;
19
- typecheck?: string | undefined;
20
- }>;
21
- export declare const stackProfileSchema: z.ZodObject<{
22
- id: z.ZodString;
23
- label: z.ZodString;
24
- languages: z.ZodArray<z.ZodString, "many">;
25
- framework: z.ZodOptional<z.ZodString>;
26
- architecture: z.ZodString;
27
- commands: z.ZodObject<{
28
- build: z.ZodString;
29
- test: z.ZodString;
30
- lint: z.ZodString;
31
- format: z.ZodOptional<z.ZodString>;
32
- typecheck: z.ZodOptional<z.ZodString>;
33
- }, "strip", z.ZodTypeAny, {
34
- build: string;
35
- test: string;
36
- lint: string;
37
- format?: string | undefined;
38
- typecheck?: string | undefined;
39
- }, {
40
- build: string;
41
- test: string;
42
- lint: string;
43
- format?: string | undefined;
44
- typecheck?: string | undefined;
45
- }>;
46
- errorHandling: z.ZodString;
47
- concurrency: z.ZodString;
48
- permissions: z.ZodArray<z.ZodString, "many">;
49
- gitignorePatterns: z.ZodArray<z.ZodString, "many">;
50
- openspecContext: z.ZodString;
51
- openspecRules: z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString, "many">>;
52
- }, "strip", z.ZodTypeAny, {
53
- id: string;
54
- label: string;
55
- languages: string[];
56
- architecture: string;
57
- commands: {
58
- build: string;
59
- test: string;
60
- lint: string;
61
- format?: string | undefined;
62
- typecheck?: string | undefined;
63
- };
64
- errorHandling: string;
65
- concurrency: string;
66
- permissions: string[];
67
- gitignorePatterns: string[];
68
- openspecContext: string;
69
- openspecRules: Record<string, string[]>;
70
- framework?: string | undefined;
71
- }, {
72
- id: string;
73
- label: string;
74
- languages: string[];
75
- architecture: string;
76
- commands: {
77
- build: string;
78
- test: string;
79
- lint: string;
80
- format?: string | undefined;
81
- typecheck?: string | undefined;
82
- };
83
- errorHandling: string;
84
- concurrency: string;
85
- permissions: string[];
86
- gitignorePatterns: string[];
87
- openspecContext: string;
88
- openspecRules: Record<string, string[]>;
89
- framework?: string | undefined;
90
- }>;
91
- //# sourceMappingURL=schema.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/stacks/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;EAM9B,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAa7B,CAAC"}
@@ -1,23 +0,0 @@
1
- import { z } from 'zod';
2
- export const stackCommandsSchema = z.object({
3
- build: z.string().min(1),
4
- test: z.string().min(1),
5
- lint: z.string().min(1),
6
- format: z.string().optional(),
7
- typecheck: z.string().optional(),
8
- });
9
- export const stackProfileSchema = z.object({
10
- id: z.string().min(1).regex(/^[a-z0-9-]+$/, 'Must be kebab-case'),
11
- label: z.string().min(1),
12
- languages: z.array(z.string().min(1)).min(1),
13
- framework: z.string().optional(),
14
- architecture: z.string().min(1),
15
- commands: stackCommandsSchema,
16
- errorHandling: z.string().min(1),
17
- concurrency: z.string().min(1),
18
- permissions: z.array(z.string().min(1)).min(1),
19
- gitignorePatterns: z.array(z.string().min(1)).min(1),
20
- openspecContext: z.string().min(1),
21
- openspecRules: z.record(z.string(), z.array(z.string().min(1))),
22
- });
23
- //# sourceMappingURL=schema.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/stacks/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACxB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACjC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,cAAc,EAAE,oBAAoB,CAAC;IACjE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACxB,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5C,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/B,QAAQ,EAAE,mBAAmB;IAC7B,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAChC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9B,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9C,iBAAiB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACpD,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAClC,aAAa,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;CAChE,CAAC,CAAC"}
@@ -1,5 +0,0 @@
1
- import type { StackProfile } from '../types.js';
2
- import type { DetectionConfig } from './detect.js';
3
- export declare const swiftStack: StackProfile;
4
- export declare const swiftDetectionConfig: DetectionConfig;
5
- //# sourceMappingURL=swift.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"swift.d.ts","sourceRoot":"","sources":["../../src/stacks/swift.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD,eAAO,MAAM,UAAU,EAAE,YA4DxB,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,eAMlC,CAAC"}