@harness-engineering/cli 1.13.1 → 1.15.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.
Files changed (147) hide show
  1. package/dist/agents/skills/claude-code/harness-autopilot/SKILL.md +240 -39
  2. package/dist/agents/skills/claude-code/harness-autopilot/skill.yaml +6 -0
  3. package/dist/agents/skills/claude-code/harness-brainstorming/SKILL.md +39 -0
  4. package/dist/agents/skills/claude-code/harness-code-review/SKILL.md +44 -0
  5. package/dist/agents/skills/claude-code/harness-execution/SKILL.md +44 -0
  6. package/dist/agents/skills/claude-code/harness-planning/SKILL.md +39 -0
  7. package/dist/agents/skills/claude-code/harness-product-spec/SKILL.md +5 -5
  8. package/dist/agents/skills/claude-code/harness-release-readiness/SKILL.md +3 -3
  9. package/dist/agents/skills/claude-code/harness-verification/SKILL.md +35 -0
  10. package/dist/agents/skills/claude-code/initialize-harness-project/SKILL.md +11 -3
  11. package/dist/agents/skills/gemini-cli/harness-autopilot/SKILL.md +240 -39
  12. package/dist/agents/skills/gemini-cli/harness-autopilot/skill.yaml +6 -0
  13. package/dist/agents/skills/gemini-cli/harness-brainstorming/SKILL.md +39 -0
  14. package/dist/agents/skills/gemini-cli/harness-code-review/SKILL.md +44 -0
  15. package/dist/agents/skills/gemini-cli/harness-execution/SKILL.md +44 -0
  16. package/dist/agents/skills/gemini-cli/harness-planning/SKILL.md +39 -0
  17. package/dist/agents/skills/gemini-cli/harness-product-spec/SKILL.md +5 -5
  18. package/dist/agents/skills/gemini-cli/harness-release-readiness/SKILL.md +3 -3
  19. package/dist/agents/skills/gemini-cli/harness-verification/SKILL.md +35 -0
  20. package/dist/agents/skills/gemini-cli/initialize-harness-project/SKILL.md +11 -3
  21. package/dist/agents/skills/package.json +1 -0
  22. package/dist/agents/skills/vitest.config.mts +5 -0
  23. package/dist/agents-md-ZGNIDWAF.js +8 -0
  24. package/dist/{architecture-2R5Z4ZAF.js → architecture-ZLIH5533.js} +4 -4
  25. package/dist/bin/harness-mcp.js +14 -14
  26. package/dist/bin/harness.js +27 -25
  27. package/dist/{check-phase-gate-2OFZ7OWW.js → check-phase-gate-ZOXVBDCN.js} +4 -4
  28. package/dist/{chunk-ND6PNADU.js → chunk-2BKLWLY6.js} +9 -9
  29. package/dist/{chunk-65FRIL4D.js → chunk-3ZZKVN62.js} +1 -1
  30. package/dist/{chunk-C2ERUR3L.js → chunk-7MJAPE3Z.js} +165 -49
  31. package/dist/{chunk-Z77YQRQT.js → chunk-B2HKP423.js} +16 -5
  32. package/dist/{chunk-QPEH2QPG.js → chunk-DBSOCI3G.js} +53 -54
  33. package/dist/{chunk-TKJZKICB.js → chunk-EDXIVMAP.js} +7 -7
  34. package/dist/{chunk-MHBMTPW7.js → chunk-ERS5EVUZ.js} +9 -0
  35. package/dist/{chunk-JSTQ3AWB.js → chunk-FIAPHX37.js} +1 -1
  36. package/dist/{chunk-IMFVFNJE.js → chunk-FTMXDOR6.js} +1 -1
  37. package/dist/{chunk-72GHBOL2.js → chunk-GZKSBLQL.js} +1 -1
  38. package/dist/{chunk-K6XAPGML.js → chunk-H7Y5CKTM.js} +1 -1
  39. package/dist/{chunk-SSKDAOX5.js → chunk-J4RAX7YB.js} +1164 -516
  40. package/dist/{chunk-UAX4I5ZE.js → chunk-LGYBN7Y6.js} +2 -2
  41. package/dist/{chunk-QY4T6YAZ.js → chunk-N25INEIX.js} +4 -4
  42. package/dist/{chunk-4ZMOCPYO.js → chunk-ND2ENWDM.js} +1 -1
  43. package/dist/{chunk-NERR4TAO.js → chunk-NNHDDXYT.js} +1250 -765
  44. package/dist/{chunk-NKDM3FMH.js → chunk-OD3S2NHN.js} +1 -1
  45. package/dist/{chunk-NOPU4RZ4.js → chunk-OFXQSFOW.js} +3 -3
  46. package/dist/{chunk-TS3XWPW5.js → chunk-RCWZBSK5.js} +1 -1
  47. package/dist/{chunk-VUCPTQ6G.js → chunk-SD3SQOZ2.js} +1 -1
  48. package/dist/{chunk-DZS7CJKL.js → chunk-VEPAJXBW.js} +45 -47
  49. package/dist/{chunk-IM32EEDM.js → chunk-YLXFKVJE.js} +9 -9
  50. package/dist/{chunk-Q6AB7W5Z.js → chunk-YQ6KC6TE.js} +1 -1
  51. package/dist/{chunk-PQ5YK4AY.js → chunk-Z2OOPXJO.js} +2740 -1221
  52. package/dist/ci-workflow-765LSHRD.js +8 -0
  53. package/dist/{dist-2B363XUH.js → dist-ALQDD67R.js} +64 -2
  54. package/dist/{dist-HXHWB7SV.js → dist-B26DFXMP.js} +571 -478
  55. package/dist/{dist-L7LAAQAS.js → dist-DZ63LLUD.js} +1 -1
  56. package/dist/{dist-D4RYGUZE.js → dist-USY2C5JL.js} +3 -1
  57. package/dist/{docs-FZOPM4GK.js → docs-NRMQCOJ6.js} +4 -4
  58. package/dist/engine-3RB7MXPP.js +8 -0
  59. package/dist/{entropy-LVHJMFGH.js → entropy-6AGX2ZUN.js} +3 -3
  60. package/dist/{feedback-IHLVLMRD.js → feedback-MY4QZIFD.js} +1 -1
  61. package/dist/{generate-agent-definitions-64S3CLEZ.js → generate-agent-definitions-ZAE726AU.js} +4 -4
  62. package/dist/{graph-loader-GJZ4FN4Y.js → graph-loader-2M2HXDQI.js} +1 -1
  63. package/dist/index.d.ts +156 -17
  64. package/dist/index.js +24 -24
  65. package/dist/loader-UUTVMQCC.js +10 -0
  66. package/dist/{mcp-JQUI7BVZ.js → mcp-VU5FMO52.js} +14 -14
  67. package/dist/{performance-ZTVSUANN.js → performance-2D7G6NMJ.js} +3 -3
  68. package/dist/{review-pipeline-76JHKGSV.js → review-pipeline-RAQ55ISU.js} +1 -1
  69. package/dist/runtime-BCK5RRZQ.js +9 -0
  70. package/dist/{security-FWQZF2IZ.js → security-2RPQEN62.js} +1 -1
  71. package/dist/templates/axum/Cargo.toml.hbs +8 -0
  72. package/dist/templates/axum/src/main.rs +12 -0
  73. package/dist/templates/axum/template.json +16 -0
  74. package/dist/templates/django/manage.py.hbs +19 -0
  75. package/dist/templates/django/requirements.txt.hbs +1 -0
  76. package/dist/templates/django/src/settings.py.hbs +44 -0
  77. package/dist/templates/django/src/urls.py +6 -0
  78. package/dist/templates/django/src/wsgi.py.hbs +9 -0
  79. package/dist/templates/django/template.json +21 -0
  80. package/dist/templates/express/package.json.hbs +15 -0
  81. package/dist/templates/express/src/app.ts +12 -0
  82. package/dist/templates/express/src/lib/.gitkeep +0 -0
  83. package/dist/templates/express/template.json +16 -0
  84. package/dist/templates/fastapi/requirements.txt.hbs +2 -0
  85. package/dist/templates/fastapi/src/main.py +8 -0
  86. package/dist/templates/fastapi/template.json +20 -0
  87. package/dist/templates/gin/go.mod.hbs +5 -0
  88. package/dist/templates/gin/main.go +15 -0
  89. package/dist/templates/gin/template.json +19 -0
  90. package/dist/templates/go-base/.golangci.yml +16 -0
  91. package/dist/templates/go-base/AGENTS.md.hbs +35 -0
  92. package/dist/templates/go-base/go.mod.hbs +3 -0
  93. package/dist/templates/go-base/harness.config.json.hbs +17 -0
  94. package/dist/templates/go-base/main.go +7 -0
  95. package/dist/templates/go-base/template.json +14 -0
  96. package/dist/templates/java-base/AGENTS.md.hbs +35 -0
  97. package/dist/templates/java-base/checkstyle.xml +20 -0
  98. package/dist/templates/java-base/harness.config.json.hbs +16 -0
  99. package/dist/templates/java-base/pom.xml.hbs +39 -0
  100. package/dist/templates/java-base/src/main/java/App.java.hbs +5 -0
  101. package/dist/templates/java-base/template.json +13 -0
  102. package/dist/templates/nestjs/nest-cli.json +5 -0
  103. package/dist/templates/nestjs/package.json.hbs +18 -0
  104. package/dist/templates/nestjs/src/app.module.ts +8 -0
  105. package/dist/templates/nestjs/src/lib/.gitkeep +0 -0
  106. package/dist/templates/nestjs/src/main.ts +11 -0
  107. package/dist/templates/nestjs/template.json +16 -0
  108. package/dist/templates/nextjs/template.json +15 -1
  109. package/dist/templates/python-base/.python-version +1 -0
  110. package/dist/templates/python-base/AGENTS.md.hbs +32 -0
  111. package/dist/templates/python-base/harness.config.json.hbs +16 -0
  112. package/dist/templates/python-base/pyproject.toml.hbs +18 -0
  113. package/dist/templates/python-base/ruff.toml +5 -0
  114. package/dist/templates/python-base/src/__init__.py +0 -0
  115. package/dist/templates/python-base/template.json +13 -0
  116. package/dist/templates/react-vite/index.html +12 -0
  117. package/dist/templates/react-vite/package.json.hbs +18 -0
  118. package/dist/templates/react-vite/src/App.tsx +7 -0
  119. package/dist/templates/react-vite/src/lib/.gitkeep +0 -0
  120. package/dist/templates/react-vite/src/main.tsx +9 -0
  121. package/dist/templates/react-vite/template.json +19 -0
  122. package/dist/templates/react-vite/vite.config.ts +6 -0
  123. package/dist/templates/rust-base/AGENTS.md.hbs +35 -0
  124. package/dist/templates/rust-base/Cargo.toml.hbs +6 -0
  125. package/dist/templates/rust-base/clippy.toml +2 -0
  126. package/dist/templates/rust-base/harness.config.json.hbs +17 -0
  127. package/dist/templates/rust-base/src/main.rs +3 -0
  128. package/dist/templates/rust-base/template.json +14 -0
  129. package/dist/templates/spring-boot/pom.xml.hbs +50 -0
  130. package/dist/templates/spring-boot/src/main/java/Application.java.hbs +19 -0
  131. package/dist/templates/spring-boot/template.json +15 -0
  132. package/dist/templates/vue/index.html +12 -0
  133. package/dist/templates/vue/package.json.hbs +16 -0
  134. package/dist/templates/vue/src/App.vue +7 -0
  135. package/dist/templates/vue/src/lib/.gitkeep +0 -0
  136. package/dist/templates/vue/src/main.ts +4 -0
  137. package/dist/templates/vue/template.json +19 -0
  138. package/dist/templates/vue/vite.config.ts +6 -0
  139. package/dist/{validate-GCHZJIL7.js → validate-KBYQAEWE.js} +4 -4
  140. package/dist/validate-cross-check-OABMREW4.js +8 -0
  141. package/package.json +7 -5
  142. package/dist/agents-md-XU3BHE22.js +0 -8
  143. package/dist/ci-workflow-EHV65NQB.js +0 -8
  144. package/dist/engine-OL4T6NZS.js +0 -8
  145. package/dist/loader-DPYFB6R6.js +0 -10
  146. package/dist/runtime-X7U6SC7K.js +0 -9
  147. package/dist/validate-cross-check-STFHYMAZ.js +0 -8
@@ -6,7 +6,7 @@ import {
6
6
  TemplateLoadError,
7
7
  generate,
8
8
  validate
9
- } from "./chunk-QPEH2QPG.js";
9
+ } from "./chunk-DBSOCI3G.js";
10
10
  export {
11
11
  LinterConfigSchema,
12
12
  ParseError,
@@ -1,13 +1,15 @@
1
1
  import {
2
2
  Err,
3
3
  Ok,
4
+ SESSION_SECTION_NAMES,
4
5
  STANDARD_COGNITIVE_MODES,
5
6
  isErr,
6
7
  isOk
7
- } from "./chunk-MHBMTPW7.js";
8
+ } from "./chunk-ERS5EVUZ.js";
8
9
  export {
9
10
  Err,
10
11
  Ok,
12
+ SESSION_SECTION_NAMES,
11
13
  STANDARD_COGNITIVE_MODES,
12
14
  isErr,
13
15
  isOk
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  checkDocsDefinition,
3
3
  handleCheckDocs
4
- } from "./chunk-ND6PNADU.js";
5
- import "./chunk-Z77YQRQT.js";
4
+ } from "./chunk-2BKLWLY6.js";
5
+ import "./chunk-B2HKP423.js";
6
6
  import "./chunk-IDZNPTYD.js";
7
7
  import "./chunk-W6Y7ZW3Y.js";
8
8
  import "./chunk-3WGJMBKH.js";
9
- import "./chunk-PQ5YK4AY.js";
10
- import "./chunk-MHBMTPW7.js";
9
+ import "./chunk-Z2OOPXJO.js";
10
+ import "./chunk-ERS5EVUZ.js";
11
11
  export {
12
12
  checkDocsDefinition,
13
13
  handleCheckDocs
@@ -0,0 +1,8 @@
1
+ import {
2
+ TemplateEngine
3
+ } from "./chunk-7MJAPE3Z.js";
4
+ import "./chunk-Z2OOPXJO.js";
5
+ import "./chunk-ERS5EVUZ.js";
6
+ export {
7
+ TemplateEngine
8
+ };
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  detectEntropyDefinition,
3
3
  handleDetectEntropy
4
- } from "./chunk-DZS7CJKL.js";
4
+ } from "./chunk-VEPAJXBW.js";
5
5
  import "./chunk-IDZNPTYD.js";
6
6
  import "./chunk-W6Y7ZW3Y.js";
7
- import "./chunk-PQ5YK4AY.js";
8
- import "./chunk-MHBMTPW7.js";
7
+ import "./chunk-Z2OOPXJO.js";
8
+ import "./chunk-ERS5EVUZ.js";
9
9
  export {
10
10
  detectEntropyDefinition,
11
11
  handleDetectEntropy
@@ -5,7 +5,7 @@ import {
5
5
  handleCreateSelfReview,
6
6
  handleRequestPeerReview,
7
7
  requestPeerReviewDefinition
8
- } from "./chunk-IM32EEDM.js";
8
+ } from "./chunk-YLXFKVJE.js";
9
9
  import "./chunk-IDZNPTYD.js";
10
10
  import "./chunk-W6Y7ZW3Y.js";
11
11
  export {
@@ -1,14 +1,14 @@
1
1
  import {
2
2
  createGenerateAgentDefinitionsCommand,
3
3
  generateAgentDefinitions
4
- } from "./chunk-TS3XWPW5.js";
5
- import "./chunk-Q6AB7W5Z.js";
4
+ } from "./chunk-RCWZBSK5.js";
5
+ import "./chunk-YQ6KC6TE.js";
6
6
  import "./chunk-KET4QQZB.js";
7
7
  import "./chunk-ZOAWBDWU.js";
8
8
  import "./chunk-N5G5QMS3.js";
9
9
  import "./chunk-3WGJMBKH.js";
10
- import "./chunk-PQ5YK4AY.js";
11
- import "./chunk-MHBMTPW7.js";
10
+ import "./chunk-Z2OOPXJO.js";
11
+ import "./chunk-ERS5EVUZ.js";
12
12
  export {
13
13
  createGenerateAgentDefinitionsCommand,
14
14
  generateAgentDefinitions
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  clearGraphStoreCache,
3
3
  loadGraphStore
4
- } from "./chunk-IMFVFNJE.js";
4
+ } from "./chunk-FTMXDOR6.js";
5
5
  export {
6
6
  clearGraphStoreCache,
7
7
  loadGraphStore
package/dist/index.d.ts CHANGED
@@ -450,20 +450,63 @@ declare const HarnessConfigSchema: z.ZodObject<{
450
450
  }, z.ZodTypeAny, "passthrough">>>;
451
451
  /** Project template settings (used by 'harness init') */
452
452
  template: z.ZodOptional<z.ZodObject<{
453
- /** Complexity level of the template */
454
- level: z.ZodEnum<["basic", "intermediate", "advanced"]>;
453
+ /** Complexity level of the template (JS/TS only) */
454
+ level: z.ZodOptional<z.ZodEnum<["basic", "intermediate", "advanced"]>>;
455
+ /** Target language */
456
+ language: z.ZodOptional<z.ZodEnum<["typescript", "python", "go", "rust", "java"]>>;
455
457
  /** Primary technology framework */
456
458
  framework: z.ZodOptional<z.ZodString>;
457
459
  /** Template version */
458
460
  version: z.ZodNumber;
461
+ /** Language-specific tooling configuration */
462
+ tooling: z.ZodOptional<z.ZodObject<{
463
+ packageManager: z.ZodOptional<z.ZodString>;
464
+ linter: z.ZodOptional<z.ZodString>;
465
+ formatter: z.ZodOptional<z.ZodString>;
466
+ buildTool: z.ZodOptional<z.ZodString>;
467
+ testRunner: z.ZodOptional<z.ZodString>;
468
+ lockFile: z.ZodOptional<z.ZodString>;
469
+ }, "strip", z.ZodTypeAny, {
470
+ packageManager?: string | undefined;
471
+ linter?: string | undefined;
472
+ formatter?: string | undefined;
473
+ buildTool?: string | undefined;
474
+ testRunner?: string | undefined;
475
+ lockFile?: string | undefined;
476
+ }, {
477
+ packageManager?: string | undefined;
478
+ linter?: string | undefined;
479
+ formatter?: string | undefined;
480
+ buildTool?: string | undefined;
481
+ testRunner?: string | undefined;
482
+ lockFile?: string | undefined;
483
+ }>>;
459
484
  }, "strip", z.ZodTypeAny, {
460
485
  version: number;
461
- level: "basic" | "intermediate" | "advanced";
462
486
  framework?: string | undefined;
487
+ level?: "basic" | "intermediate" | "advanced" | undefined;
488
+ language?: "typescript" | "python" | "go" | "rust" | "java" | undefined;
489
+ tooling?: {
490
+ packageManager?: string | undefined;
491
+ linter?: string | undefined;
492
+ formatter?: string | undefined;
493
+ buildTool?: string | undefined;
494
+ testRunner?: string | undefined;
495
+ lockFile?: string | undefined;
496
+ } | undefined;
463
497
  }, {
464
498
  version: number;
465
- level: "basic" | "intermediate" | "advanced";
466
499
  framework?: string | undefined;
500
+ level?: "basic" | "intermediate" | "advanced" | undefined;
501
+ language?: "typescript" | "python" | "go" | "rust" | "java" | undefined;
502
+ tooling?: {
503
+ packageManager?: string | undefined;
504
+ linter?: string | undefined;
505
+ formatter?: string | undefined;
506
+ buildTool?: string | undefined;
507
+ testRunner?: string | undefined;
508
+ lockFile?: string | undefined;
509
+ } | undefined;
467
510
  }>>;
468
511
  /** Phase gate and readiness check configuration */
469
512
  phaseGates: z.ZodOptional<z.ZodObject<{
@@ -660,15 +703,15 @@ declare const HarnessConfigSchema: z.ZodObject<{
660
703
  thresholds: z.ZodDefault<z.ZodRecord<z.ZodEnum<["circular-deps", "layer-violations", "complexity", "coupling", "forbidden-imports", "module-size", "dependency-depth"]>, z.ZodUnion<[z.ZodNumber, z.ZodRecord<z.ZodString, z.ZodNumber>]>>>;
661
704
  modules: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodEnum<["circular-deps", "layer-violations", "complexity", "coupling", "forbidden-imports", "module-size", "dependency-depth"]>, z.ZodUnion<[z.ZodNumber, z.ZodRecord<z.ZodString, z.ZodNumber>]>>>>;
662
705
  }, "strip", z.ZodTypeAny, {
663
- thresholds: Partial<Record<"complexity" | "coupling" | "circular-deps" | "layer-violations" | "forbidden-imports" | "module-size" | "dependency-depth", number | Record<string, number>>>;
664
- modules: Record<string, Partial<Record<"complexity" | "coupling" | "circular-deps" | "layer-violations" | "forbidden-imports" | "module-size" | "dependency-depth", number | Record<string, number>>>>;
665
706
  enabled: boolean;
666
707
  baselinePath: string;
708
+ thresholds: Partial<Record<"circular-deps" | "layer-violations" | "complexity" | "coupling" | "forbidden-imports" | "module-size" | "dependency-depth", number | Record<string, number>>>;
709
+ modules: Record<string, Partial<Record<"circular-deps" | "layer-violations" | "complexity" | "coupling" | "forbidden-imports" | "module-size" | "dependency-depth", number | Record<string, number>>>>;
667
710
  }, {
668
- thresholds?: Partial<Record<"complexity" | "coupling" | "circular-deps" | "layer-violations" | "forbidden-imports" | "module-size" | "dependency-depth", number | Record<string, number>>> | undefined;
669
- modules?: Record<string, Partial<Record<"complexity" | "coupling" | "circular-deps" | "layer-violations" | "forbidden-imports" | "module-size" | "dependency-depth", number | Record<string, number>>>> | undefined;
670
711
  enabled?: boolean | undefined;
671
712
  baselinePath?: string | undefined;
713
+ thresholds?: Partial<Record<"circular-deps" | "layer-violations" | "complexity" | "coupling" | "forbidden-imports" | "module-size" | "dependency-depth", number | Record<string, number>>> | undefined;
714
+ modules?: Record<string, Partial<Record<"circular-deps" | "layer-violations" | "complexity" | "coupling" | "forbidden-imports" | "module-size" | "dependency-depth", number | Record<string, number>>>> | undefined;
672
715
  }>>;
673
716
  /** Skill loading, suggestion, and tier override settings */
674
717
  skills: z.ZodOptional<z.ZodObject<{
@@ -742,8 +785,17 @@ declare const HarnessConfigSchema: z.ZodObject<{
742
785
  }, z.ZodTypeAny, "passthrough"> | undefined;
743
786
  template?: {
744
787
  version: number;
745
- level: "basic" | "intermediate" | "advanced";
746
788
  framework?: string | undefined;
789
+ level?: "basic" | "intermediate" | "advanced" | undefined;
790
+ language?: "typescript" | "python" | "go" | "rust" | "java" | undefined;
791
+ tooling?: {
792
+ packageManager?: string | undefined;
793
+ linter?: string | undefined;
794
+ formatter?: string | undefined;
795
+ buildTool?: string | undefined;
796
+ testRunner?: string | undefined;
797
+ lockFile?: string | undefined;
798
+ } | undefined;
747
799
  } | undefined;
748
800
  phaseGates?: {
749
801
  enabled: boolean;
@@ -790,10 +842,10 @@ declare const HarnessConfigSchema: z.ZodObject<{
790
842
  } | undefined;
791
843
  } | undefined;
792
844
  architecture?: {
793
- thresholds: Partial<Record<"complexity" | "coupling" | "circular-deps" | "layer-violations" | "forbidden-imports" | "module-size" | "dependency-depth", number | Record<string, number>>>;
794
- modules: Record<string, Partial<Record<"complexity" | "coupling" | "circular-deps" | "layer-violations" | "forbidden-imports" | "module-size" | "dependency-depth", number | Record<string, number>>>>;
795
845
  enabled: boolean;
796
846
  baselinePath: string;
847
+ thresholds: Partial<Record<"circular-deps" | "layer-violations" | "complexity" | "coupling" | "forbidden-imports" | "module-size" | "dependency-depth", number | Record<string, number>>>;
848
+ modules: Record<string, Partial<Record<"circular-deps" | "layer-violations" | "complexity" | "coupling" | "forbidden-imports" | "module-size" | "dependency-depth", number | Record<string, number>>>>;
797
849
  } | undefined;
798
850
  updateCheckInterval?: number | undefined;
799
851
  }, {
@@ -849,8 +901,17 @@ declare const HarnessConfigSchema: z.ZodObject<{
849
901
  }, z.ZodTypeAny, "passthrough"> | undefined;
850
902
  template?: {
851
903
  version: number;
852
- level: "basic" | "intermediate" | "advanced";
853
904
  framework?: string | undefined;
905
+ level?: "basic" | "intermediate" | "advanced" | undefined;
906
+ language?: "typescript" | "python" | "go" | "rust" | "java" | undefined;
907
+ tooling?: {
908
+ packageManager?: string | undefined;
909
+ linter?: string | undefined;
910
+ formatter?: string | undefined;
911
+ buildTool?: string | undefined;
912
+ testRunner?: string | undefined;
913
+ lockFile?: string | undefined;
914
+ } | undefined;
854
915
  } | undefined;
855
916
  phaseGates?: {
856
917
  enabled?: boolean | undefined;
@@ -897,10 +958,10 @@ declare const HarnessConfigSchema: z.ZodObject<{
897
958
  } | undefined;
898
959
  } | undefined;
899
960
  architecture?: {
900
- thresholds?: Partial<Record<"complexity" | "coupling" | "circular-deps" | "layer-violations" | "forbidden-imports" | "module-size" | "dependency-depth", number | Record<string, number>>> | undefined;
901
- modules?: Record<string, Partial<Record<"complexity" | "coupling" | "circular-deps" | "layer-violations" | "forbidden-imports" | "module-size" | "dependency-depth", number | Record<string, number>>>> | undefined;
902
961
  enabled?: boolean | undefined;
903
962
  baselinePath?: string | undefined;
963
+ thresholds?: Partial<Record<"circular-deps" | "layer-violations" | "complexity" | "coupling" | "forbidden-imports" | "module-size" | "dependency-depth", number | Record<string, number>>> | undefined;
964
+ modules?: Record<string, Partial<Record<"circular-deps" | "layer-violations" | "complexity" | "coupling" | "forbidden-imports" | "module-size" | "dependency-depth", number | Record<string, number>>>> | undefined;
904
965
  } | undefined;
905
966
  updateCheckInterval?: number | undefined;
906
967
  }>;
@@ -950,6 +1011,39 @@ declare const TemplateMetadataSchema: z.ZodObject<{
950
1011
  files?: "overlay-wins" | undefined;
951
1012
  }>>;
952
1013
  version: z.ZodLiteral<1>;
1014
+ language: z.ZodOptional<z.ZodEnum<["typescript", "python", "go", "rust", "java"]>>;
1015
+ tooling: z.ZodOptional<z.ZodObject<{
1016
+ packageManager: z.ZodOptional<z.ZodString>;
1017
+ linter: z.ZodOptional<z.ZodString>;
1018
+ formatter: z.ZodOptional<z.ZodString>;
1019
+ buildTool: z.ZodOptional<z.ZodString>;
1020
+ testRunner: z.ZodOptional<z.ZodString>;
1021
+ lockFile: z.ZodOptional<z.ZodString>;
1022
+ }, "strip", z.ZodTypeAny, {
1023
+ packageManager?: string | undefined;
1024
+ linter?: string | undefined;
1025
+ formatter?: string | undefined;
1026
+ buildTool?: string | undefined;
1027
+ testRunner?: string | undefined;
1028
+ lockFile?: string | undefined;
1029
+ }, {
1030
+ packageManager?: string | undefined;
1031
+ linter?: string | undefined;
1032
+ formatter?: string | undefined;
1033
+ buildTool?: string | undefined;
1034
+ testRunner?: string | undefined;
1035
+ lockFile?: string | undefined;
1036
+ }>>;
1037
+ detect: z.ZodOptional<z.ZodArray<z.ZodObject<{
1038
+ file: z.ZodString;
1039
+ contains: z.ZodOptional<z.ZodString>;
1040
+ }, "strip", z.ZodTypeAny, {
1041
+ file: string;
1042
+ contains?: string | undefined;
1043
+ }, {
1044
+ file: string;
1045
+ contains?: string | undefined;
1046
+ }>, "many">>;
953
1047
  }, "strip", z.ZodTypeAny, {
954
1048
  name: string;
955
1049
  version: 1;
@@ -960,25 +1054,56 @@ declare const TemplateMetadataSchema: z.ZodObject<{
960
1054
  };
961
1055
  framework?: string | undefined;
962
1056
  level?: "basic" | "intermediate" | "advanced" | undefined;
1057
+ language?: "typescript" | "python" | "go" | "rust" | "java" | undefined;
1058
+ tooling?: {
1059
+ packageManager?: string | undefined;
1060
+ linter?: string | undefined;
1061
+ formatter?: string | undefined;
1062
+ buildTool?: string | undefined;
1063
+ testRunner?: string | undefined;
1064
+ lockFile?: string | undefined;
1065
+ } | undefined;
963
1066
  extends?: string | undefined;
1067
+ detect?: {
1068
+ file: string;
1069
+ contains?: string | undefined;
1070
+ }[] | undefined;
964
1071
  }, {
965
1072
  name: string;
966
1073
  version: 1;
967
1074
  description: string;
968
1075
  framework?: string | undefined;
969
1076
  level?: "basic" | "intermediate" | "advanced" | undefined;
1077
+ language?: "typescript" | "python" | "go" | "rust" | "java" | undefined;
1078
+ tooling?: {
1079
+ packageManager?: string | undefined;
1080
+ linter?: string | undefined;
1081
+ formatter?: string | undefined;
1082
+ buildTool?: string | undefined;
1083
+ testRunner?: string | undefined;
1084
+ lockFile?: string | undefined;
1085
+ } | undefined;
970
1086
  extends?: string | undefined;
971
1087
  mergeStrategy?: {
972
1088
  json?: "deep-merge" | "overlay-wins" | undefined;
973
1089
  files?: "overlay-wins" | undefined;
974
1090
  } | undefined;
1091
+ detect?: {
1092
+ file: string;
1093
+ contains?: string | undefined;
1094
+ }[] | undefined;
975
1095
  }>;
976
1096
  type TemplateMetadata = z.infer<typeof TemplateMetadataSchema>;
977
1097
 
978
1098
  interface TemplateContext {
979
1099
  projectName: string;
980
- level: string;
1100
+ level?: string;
981
1101
  framework?: string;
1102
+ language?: string;
1103
+ goModulePath?: string;
1104
+ pythonMinVersion?: string;
1105
+ javaGroupId?: string;
1106
+ rustEdition?: string;
982
1107
  }
983
1108
  interface TemplateFile {
984
1109
  relativePath: string;
@@ -998,16 +1123,30 @@ interface RenderedFile {
998
1123
  interface RenderedFiles {
999
1124
  files: RenderedFile[];
1000
1125
  }
1126
+ interface DetectedFramework {
1127
+ framework: string;
1128
+ language: string;
1129
+ score: number;
1130
+ templateName: string;
1131
+ }
1001
1132
  interface WriteOptions {
1002
1133
  overwrite: boolean;
1134
+ language?: string;
1135
+ }
1136
+ interface WriteResult {
1137
+ written: string[];
1138
+ skippedConfigs: string[];
1003
1139
  }
1004
1140
  declare class TemplateEngine {
1005
1141
  private templatesDir;
1006
1142
  constructor(templatesDir: string);
1007
1143
  listTemplates(): Result<TemplateMetadata[], Error>;
1008
- resolveTemplate(level: string, framework?: string): Result<ResolvedTemplate, Error>;
1144
+ resolveTemplate(level?: string, framework?: string, language?: string): Result<ResolvedTemplate, Error>;
1009
1145
  render(template: ResolvedTemplate, context: TemplateContext): Result<RenderedFiles, Error>;
1010
- write(files: RenderedFiles, targetDir: string, options: WriteOptions): Result<string[], Error>;
1146
+ private renderFile;
1147
+ write(files: RenderedFiles, targetDir: string, options: WriteOptions): Result<WriteResult, Error>;
1148
+ detectFramework(targetDir: string): Result<DetectedFramework[], Error>;
1149
+ private resolveLanguageTemplate;
1011
1150
  private findTemplateDir;
1012
1151
  private collectFiles;
1013
1152
  private mergeFileLists;
package/dist/index.js CHANGED
@@ -12,15 +12,15 @@ import {
12
12
  runScan,
13
13
  runUninstall,
14
14
  runUninstallConstraints
15
- } from "./chunk-SSKDAOX5.js";
15
+ } from "./chunk-J4RAX7YB.js";
16
16
  import {
17
17
  generateCIWorkflow
18
- } from "./chunk-VUCPTQ6G.js";
18
+ } from "./chunk-SD3SQOZ2.js";
19
19
  import {
20
20
  OutputFormatter,
21
21
  OutputMode,
22
22
  runCheckPhaseGate
23
- } from "./chunk-UAX4I5ZE.js";
23
+ } from "./chunk-LGYBN7Y6.js";
24
24
  import {
25
25
  AGENT_DESCRIPTIONS,
26
26
  DEFAULT_TOOLS,
@@ -29,11 +29,11 @@ import {
29
29
  generateAgentDefinitions,
30
30
  renderClaudeCodeAgent,
31
31
  renderGeminiAgent
32
- } from "./chunk-TS3XWPW5.js";
32
+ } from "./chunk-RCWZBSK5.js";
33
33
  import {
34
34
  listPersonas,
35
35
  loadPersona
36
- } from "./chunk-Q6AB7W5Z.js";
36
+ } from "./chunk-YQ6KC6TE.js";
37
37
  import {
38
38
  detectTrigger,
39
39
  runPersona
@@ -50,36 +50,36 @@ import {
50
50
  import {
51
51
  logger
52
52
  } from "./chunk-EBJQ6N4M.js";
53
- import "./chunk-QPEH2QPG.js";
53
+ import "./chunk-DBSOCI3G.js";
54
54
  import {
55
55
  generateRuntime
56
- } from "./chunk-JSTQ3AWB.js";
56
+ } from "./chunk-FIAPHX37.js";
57
57
  import "./chunk-KET4QQZB.js";
58
58
  import {
59
59
  generateAgentsMd
60
- } from "./chunk-NKDM3FMH.js";
60
+ } from "./chunk-OD3S2NHN.js";
61
61
  import {
62
62
  createHarnessServer,
63
63
  generateSlashCommands,
64
64
  getToolDefinitions,
65
65
  startServer
66
- } from "./chunk-NERR4TAO.js";
67
- import "./chunk-DZS7CJKL.js";
68
- import "./chunk-TKJZKICB.js";
69
- import "./chunk-IM32EEDM.js";
70
- import "./chunk-65FRIL4D.js";
71
- import "./chunk-4ZMOCPYO.js";
66
+ } from "./chunk-NNHDDXYT.js";
67
+ import "./chunk-VEPAJXBW.js";
68
+ import "./chunk-EDXIVMAP.js";
69
+ import "./chunk-YLXFKVJE.js";
70
+ import "./chunk-3ZZKVN62.js";
71
+ import "./chunk-ND2ENWDM.js";
72
72
  import "./chunk-ZOAWBDWU.js";
73
- import "./chunk-NOPU4RZ4.js";
74
- import "./chunk-IMFVFNJE.js";
75
- import "./chunk-QY4T6YAZ.js";
76
- import "./chunk-K6XAPGML.js";
77
- import "./chunk-ND6PNADU.js";
73
+ import "./chunk-OFXQSFOW.js";
74
+ import "./chunk-FTMXDOR6.js";
75
+ import "./chunk-N25INEIX.js";
76
+ import "./chunk-H7Y5CKTM.js";
77
+ import "./chunk-2BKLWLY6.js";
78
78
  import {
79
79
  findConfigFile,
80
80
  loadConfig,
81
81
  resolveConfig
82
- } from "./chunk-Z77YQRQT.js";
82
+ } from "./chunk-B2HKP423.js";
83
83
  import "./chunk-IDZNPTYD.js";
84
84
  import "./chunk-W6Y7ZW3Y.js";
85
85
  import "./chunk-N5G5QMS3.js";
@@ -92,12 +92,12 @@ import "./chunk-XYLGHKG6.js";
92
92
  import "./chunk-BM3PWGXQ.js";
93
93
  import {
94
94
  runCrossCheck
95
- } from "./chunk-72GHBOL2.js";
95
+ } from "./chunk-GZKSBLQL.js";
96
96
  import {
97
97
  TemplateEngine
98
- } from "./chunk-C2ERUR3L.js";
99
- import "./chunk-PQ5YK4AY.js";
100
- import "./chunk-MHBMTPW7.js";
98
+ } from "./chunk-7MJAPE3Z.js";
99
+ import "./chunk-Z2OOPXJO.js";
100
+ import "./chunk-ERS5EVUZ.js";
101
101
  export {
102
102
  AGENT_DESCRIPTIONS,
103
103
  ALLOWED_PERSONA_COMMANDS,
@@ -0,0 +1,10 @@
1
+ import {
2
+ listPersonas,
3
+ loadPersona
4
+ } from "./chunk-YQ6KC6TE.js";
5
+ import "./chunk-Z2OOPXJO.js";
6
+ import "./chunk-ERS5EVUZ.js";
7
+ export {
8
+ listPersonas,
9
+ loadPersona
10
+ };
@@ -2,21 +2,21 @@ import {
2
2
  createHarnessServer,
3
3
  getToolDefinitions,
4
4
  startServer
5
- } from "./chunk-NERR4TAO.js";
6
- import "./chunk-DZS7CJKL.js";
7
- import "./chunk-TKJZKICB.js";
8
- import "./chunk-IM32EEDM.js";
9
- import "./chunk-65FRIL4D.js";
10
- import "./chunk-4ZMOCPYO.js";
5
+ } from "./chunk-NNHDDXYT.js";
6
+ import "./chunk-VEPAJXBW.js";
7
+ import "./chunk-EDXIVMAP.js";
8
+ import "./chunk-YLXFKVJE.js";
9
+ import "./chunk-3ZZKVN62.js";
10
+ import "./chunk-ND2ENWDM.js";
11
11
  import "./chunk-ZOAWBDWU.js";
12
- import "./chunk-NOPU4RZ4.js";
13
- import "./chunk-IMFVFNJE.js";
14
- import "./chunk-QY4T6YAZ.js";
12
+ import "./chunk-OFXQSFOW.js";
13
+ import "./chunk-FTMXDOR6.js";
14
+ import "./chunk-N25INEIX.js";
15
15
  import {
16
16
  resolveProjectConfig
17
- } from "./chunk-K6XAPGML.js";
18
- import "./chunk-ND6PNADU.js";
19
- import "./chunk-Z77YQRQT.js";
17
+ } from "./chunk-H7Y5CKTM.js";
18
+ import "./chunk-2BKLWLY6.js";
19
+ import "./chunk-B2HKP423.js";
20
20
  import {
21
21
  resultToMcpResponse
22
22
  } from "./chunk-IDZNPTYD.js";
@@ -24,8 +24,8 @@ import "./chunk-W6Y7ZW3Y.js";
24
24
  import "./chunk-N5G5QMS3.js";
25
25
  import "./chunk-3WGJMBKH.js";
26
26
  import "./chunk-XYLGHKG6.js";
27
- import "./chunk-PQ5YK4AY.js";
28
- import "./chunk-MHBMTPW7.js";
27
+ import "./chunk-Z2OOPXJO.js";
28
+ import "./chunk-ERS5EVUZ.js";
29
29
  export {
30
30
  createHarnessServer,
31
31
  getToolDefinitions,
@@ -7,11 +7,11 @@ import {
7
7
  handleGetPerfBaselines,
8
8
  handleUpdatePerfBaselines,
9
9
  updatePerfBaselinesDefinition
10
- } from "./chunk-TKJZKICB.js";
10
+ } from "./chunk-EDXIVMAP.js";
11
11
  import "./chunk-IDZNPTYD.js";
12
12
  import "./chunk-W6Y7ZW3Y.js";
13
- import "./chunk-PQ5YK4AY.js";
14
- import "./chunk-MHBMTPW7.js";
13
+ import "./chunk-Z2OOPXJO.js";
14
+ import "./chunk-ERS5EVUZ.js";
15
15
  export {
16
16
  checkPerformanceDefinition,
17
17
  getCriticalPathsDefinition,
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  handleRunCodeReview,
3
3
  runCodeReviewDefinition
4
- } from "./chunk-4ZMOCPYO.js";
4
+ } from "./chunk-ND2ENWDM.js";
5
5
  import "./chunk-W6Y7ZW3Y.js";
6
6
  export {
7
7
  handleRunCodeReview,
@@ -0,0 +1,9 @@
1
+ import {
2
+ generateRuntime
3
+ } from "./chunk-FIAPHX37.js";
4
+ import "./chunk-KET4QQZB.js";
5
+ import "./chunk-Z2OOPXJO.js";
6
+ import "./chunk-ERS5EVUZ.js";
7
+ export {
8
+ generateRuntime
9
+ };
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  handleRunSecurityScan,
3
3
  runSecurityScanDefinition
4
- } from "./chunk-65FRIL4D.js";
4
+ } from "./chunk-3ZZKVN62.js";
5
5
  import "./chunk-W6Y7ZW3Y.js";
6
6
  export {
7
7
  handleRunSecurityScan,
@@ -0,0 +1,8 @@
1
+ [package]
2
+ name = "{{projectName}}"
3
+ version = "0.1.0"
4
+ edition = "{{rustEdition}}"
5
+
6
+ [dependencies]
7
+ axum = "0.7"
8
+ tokio = { version = "1", features = ["full"] }
@@ -0,0 +1,12 @@
1
+ use axum::{routing::get, Router};
2
+
3
+ async fn root() -> &'static str {
4
+ "Hello, world!"
5
+ }
6
+
7
+ #[tokio::main]
8
+ async fn main() {
9
+ let app = Router::new().route("/", get(root));
10
+ let listener = tokio::net::TcpListener::bind("127.0.0.1:3000").await.unwrap();
11
+ axum::serve(listener, app).await.unwrap();
12
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "name": "axum",
3
+ "description": "Axum web framework scaffold",
4
+ "version": 1,
5
+ "language": "rust",
6
+ "framework": "axum",
7
+ "extends": "rust-base",
8
+ "tooling": {
9
+ "packageManager": "cargo",
10
+ "linter": "clippy",
11
+ "formatter": "rustfmt",
12
+ "buildTool": "cargo",
13
+ "testRunner": "cargo test"
14
+ },
15
+ "detect": [{ "file": "Cargo.toml", "contains": "axum" }]
16
+ }
@@ -0,0 +1,19 @@
1
+ #!/usr/bin/env python
2
+ """Django's command-line utility for administrative tasks."""
3
+ import os
4
+ import sys
5
+
6
+
7
+ def main():
8
+ os.environ.setdefault("DJANGO_SETTINGS_MODULE", "{{projectName}}.settings")
9
+ try:
10
+ from django.core.management import execute_from_command_line
11
+ except ImportError as exc:
12
+ raise ImportError(
13
+ "Couldn't import Django. Are you sure it's installed?"
14
+ ) from exc
15
+ execute_from_command_line(sys.argv)
16
+
17
+
18
+ if __name__ == "__main__":
19
+ main()
@@ -0,0 +1 @@
1
+ django>=4.2