@harness-engineering/cli 2.7.0 → 2.7.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 (52) hide show
  1. package/dist/agents/skills/claude-code/naming-craft/SKILL.md +74 -2
  2. package/dist/agents/skills/codex/naming-craft/SKILL.md +74 -2
  3. package/dist/agents/skills/cursor/naming-craft/SKILL.md +74 -2
  4. package/dist/agents/skills/gemini-cli/naming-craft/SKILL.md +74 -2
  5. package/dist/{agents-md-267R2NUJ.js → agents-md-FKMKH6ZF.js} +3 -3
  6. package/dist/{analyzer-VY6DJVOU-WYKV3TTW.js → analyzer-H3AHBFSL-KPOPJYRB.js} +7 -7
  7. package/dist/{architecture-ZTEHGIHD.js → architecture-LUR2I67H.js} +4 -4
  8. package/dist/{assess-project-OKDW3YSK.js → assess-project-OJWECOP2.js} +1 -1
  9. package/dist/bin/harness-mcp.js +14 -14
  10. package/dist/bin/harness.js +23 -23
  11. package/dist/{check-phase-gate-YJWFDW66.js → check-phase-gate-HS5KYLRO.js} +4 -4
  12. package/dist/{chunk-MQG7FHXX.js → chunk-7AF6C5GE.js} +3 -3
  13. package/dist/{chunk-4EGPFB7V.js → chunk-7PLIWP7U.js} +961 -256
  14. package/dist/{chunk-WOXR6I3R.js → chunk-B2VAYLYI.js} +1 -1
  15. package/dist/{chunk-67RP7MLR.js → chunk-CZPOPMMI.js} +2 -2
  16. package/dist/{chunk-OLTVDPA2.js → chunk-FC4JPM6W.js} +2 -2
  17. package/dist/{chunk-CXAHK5PJ.js → chunk-FEKBXX2J.js} +6 -6
  18. package/dist/{chunk-B4OLYXZ4.js → chunk-FXZI6NJ2.js} +39 -4
  19. package/dist/{chunk-6T5AYG5S.js → chunk-GGSNWH7P.js} +2 -2
  20. package/dist/{chunk-ZKA3TGYS.js → chunk-INBTDBV2.js} +1 -1
  21. package/dist/{chunk-HMMSWRWR.js → chunk-KN3EMDZ5.js} +2 -2
  22. package/dist/{chunk-OQE6ME2Z.js → chunk-LECXPXS3.js} +1 -1
  23. package/dist/{chunk-HLPY3RHE.js → chunk-LGYXR2KZ.js} +799 -515
  24. package/dist/{chunk-QUPC37UB.js → chunk-LYIPI2SJ.js} +3 -3
  25. package/dist/{chunk-S7GEONXL.js → chunk-N5NSSLMU.js} +1 -1
  26. package/dist/{chunk-P7EO7USC.js → chunk-NIVWM7OW.js} +5 -5
  27. package/dist/{chunk-PARV3G2F.js → chunk-O2ASYKA6.js} +1 -1
  28. package/dist/{chunk-XTIPZUPR.js → chunk-PTHX545Q.js} +1 -1
  29. package/dist/{chunk-B3B64OPD.js → chunk-RJ2WEES5.js} +1 -1
  30. package/dist/{chunk-TIZ3L6CU.js → chunk-VI4IS55S.js} +6 -6
  31. package/dist/{chunk-VG6UK6G6.js → chunk-VSIRUZQP.js} +1 -1
  32. package/dist/{chunk-IY2TZLY5.js → chunk-WZY5U6NS.js} +4 -4
  33. package/dist/{chunk-W3PDVZ4I.js → chunk-Y4T6ENKQ.js} +8 -8
  34. package/dist/{chunk-Z2GUITAS.js → chunk-Z3TMCCZB.js} +3 -3
  35. package/dist/{ci-workflow-YGTQTNVC.js → ci-workflow-MDSTHJOY.js} +3 -3
  36. package/dist/{dist-XIJWWQ5N.js → dist-72ID44UE.js} +2 -2
  37. package/dist/{docs-KCTLXK2G.js → docs-2RFOJ6XY.js} +4 -4
  38. package/dist/{engine-J64WPH5K.js → engine-BSFKOGPN.js} +3 -3
  39. package/dist/{entropy-M27JUL3V.js → entropy-3UX6644G.js} +3 -3
  40. package/dist/{feedback-W25QO3OL.js → feedback-CVCFYND4.js} +1 -1
  41. package/dist/{generate-agent-definitions-RNMU5U5R.js → generate-agent-definitions-HZ3XENWO.js} +4 -4
  42. package/dist/index.d.ts +425 -6
  43. package/dist/index.js +23 -23
  44. package/dist/{loader-HZKJ5ABV.js → loader-6RHWU5FH.js} +3 -3
  45. package/dist/{mcp-NEAPIDTT.js → mcp-OYR26JDI.js} +14 -14
  46. package/dist/{performance-3AVQUDRG.js → performance-JJMIRXCH.js} +4 -4
  47. package/dist/{review-pipeline-KA7SGUXJ.js → review-pipeline-BHQZIXWZ.js} +3 -3
  48. package/dist/{runtime-IP6FVV5M.js → runtime-DALTAVTN.js} +3 -3
  49. package/dist/{security-EAR4FJWI.js → security-RMLMYFPB.js} +1 -1
  50. package/dist/{validate-EVH3UXIC.js → validate-R7DZRDFK.js} +4 -4
  51. package/dist/{validate-cross-check-SNE3SQOB.js → validate-cross-check-AUUZFNVL.js} +3 -3
  52. package/package.json +4 -4
package/dist/index.d.ts CHANGED
@@ -398,14 +398,286 @@ declare const HarnessConfigSchema: z.ZodObject<{
398
398
  timeout: z.ZodDefault<z.ZodNumber>;
399
399
  /** Optional list of skill IDs pre-authorized for the agent */
400
400
  skills: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
401
+ /**
402
+ * Named backend definitions (Spec 2 — multi-backend routing).
403
+ *
404
+ * Each entry maps a backend name (chosen by the project) to a backend
405
+ * type plus its connection details (model, endpoint, apiKey, etc.).
406
+ * Referenced from `craft.llm.backend`, from orchestrator routing rules,
407
+ * and from any future subsystem that needs a configured LLM backend.
408
+ *
409
+ * Schema is re-exported from @harness-engineering/orchestrator so this
410
+ * file and the orchestrator runtime validate against the same source.
411
+ */
412
+ backends: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
413
+ type: z.ZodLiteral<"mock">;
414
+ }, "strict", z.ZodTypeAny, {
415
+ type: "mock";
416
+ }, {
417
+ type: "mock";
418
+ }>, z.ZodObject<{
419
+ type: z.ZodLiteral<"claude">;
420
+ command: z.ZodOptional<z.ZodString>;
421
+ }, "strict", z.ZodTypeAny, {
422
+ type: "claude";
423
+ command?: string | undefined;
424
+ }, {
425
+ type: "claude";
426
+ command?: string | undefined;
427
+ }>, z.ZodObject<{
428
+ type: z.ZodLiteral<"anthropic">;
429
+ model: z.ZodString;
430
+ apiKey: z.ZodOptional<z.ZodString>;
431
+ }, "strict", z.ZodTypeAny, {
432
+ type: "anthropic";
433
+ model: string;
434
+ apiKey?: string | undefined;
435
+ }, {
436
+ type: "anthropic";
437
+ model: string;
438
+ apiKey?: string | undefined;
439
+ }>, z.ZodObject<{
440
+ type: z.ZodLiteral<"openai">;
441
+ model: z.ZodString;
442
+ apiKey: z.ZodOptional<z.ZodString>;
443
+ }, "strict", z.ZodTypeAny, {
444
+ type: "openai";
445
+ model: string;
446
+ apiKey?: string | undefined;
447
+ }, {
448
+ type: "openai";
449
+ model: string;
450
+ apiKey?: string | undefined;
451
+ }>, z.ZodObject<{
452
+ type: z.ZodLiteral<"gemini">;
453
+ model: z.ZodString;
454
+ apiKey: z.ZodOptional<z.ZodString>;
455
+ }, "strict", z.ZodTypeAny, {
456
+ type: "gemini";
457
+ model: string;
458
+ apiKey?: string | undefined;
459
+ }, {
460
+ type: "gemini";
461
+ model: string;
462
+ apiKey?: string | undefined;
463
+ }>, z.ZodObject<{
464
+ type: z.ZodLiteral<"local">;
465
+ endpoint: z.ZodString;
466
+ model: z.ZodUnion<[z.ZodString, z.ZodArray<z.ZodString, "atleastone">]>;
467
+ apiKey: z.ZodOptional<z.ZodString>;
468
+ timeoutMs: z.ZodOptional<z.ZodNumber>;
469
+ probeIntervalMs: z.ZodOptional<z.ZodNumber>;
470
+ }, "strict", z.ZodTypeAny, {
471
+ type: "local";
472
+ model: string | [string, ...string[]];
473
+ endpoint: string;
474
+ apiKey?: string | undefined;
475
+ timeoutMs?: number | undefined;
476
+ probeIntervalMs?: number | undefined;
477
+ }, {
478
+ type: "local";
479
+ model: string | [string, ...string[]];
480
+ endpoint: string;
481
+ apiKey?: string | undefined;
482
+ timeoutMs?: number | undefined;
483
+ probeIntervalMs?: number | undefined;
484
+ }>, z.ZodObject<{
485
+ type: z.ZodLiteral<"pi">;
486
+ endpoint: z.ZodString;
487
+ model: z.ZodUnion<[z.ZodString, z.ZodArray<z.ZodString, "atleastone">]>;
488
+ apiKey: z.ZodOptional<z.ZodString>;
489
+ timeoutMs: z.ZodOptional<z.ZodNumber>;
490
+ probeIntervalMs: z.ZodOptional<z.ZodNumber>;
491
+ }, "strict", z.ZodTypeAny, {
492
+ type: "pi";
493
+ model: string | [string, ...string[]];
494
+ endpoint: string;
495
+ apiKey?: string | undefined;
496
+ timeoutMs?: number | undefined;
497
+ probeIntervalMs?: number | undefined;
498
+ }, {
499
+ type: "pi";
500
+ model: string | [string, ...string[]];
501
+ endpoint: string;
502
+ apiKey?: string | undefined;
503
+ timeoutMs?: number | undefined;
504
+ probeIntervalMs?: number | undefined;
505
+ }>]>>>;
506
+ /** Routing rules for orchestrator agent dispatch. */
507
+ routing: z.ZodOptional<z.ZodObject<{
508
+ default: z.ZodUnion<[z.ZodString, z.ZodReadonly<z.ZodArray<z.ZodString, "atleastone">>]>;
509
+ 'quick-fix': z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodReadonly<z.ZodArray<z.ZodString, "atleastone">>]>>;
510
+ 'guided-change': z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodReadonly<z.ZodArray<z.ZodString, "atleastone">>]>>;
511
+ 'full-exploration': z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodReadonly<z.ZodArray<z.ZodString, "atleastone">>]>>;
512
+ diagnostic: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodReadonly<z.ZodArray<z.ZodString, "atleastone">>]>>;
513
+ intelligence: z.ZodOptional<z.ZodObject<{
514
+ sel: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodReadonly<z.ZodArray<z.ZodString, "atleastone">>]>>;
515
+ pesl: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodReadonly<z.ZodArray<z.ZodString, "atleastone">>]>>;
516
+ }, "strict", z.ZodTypeAny, {
517
+ sel?: string | readonly [string, ...string[]] | undefined;
518
+ pesl?: string | readonly [string, ...string[]] | undefined;
519
+ }, {
520
+ sel?: string | readonly [string, ...string[]] | undefined;
521
+ pesl?: string | readonly [string, ...string[]] | undefined;
522
+ }>>;
523
+ isolation: z.ZodOptional<z.ZodObject<{
524
+ none: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodReadonly<z.ZodArray<z.ZodString, "atleastone">>]>>;
525
+ container: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodReadonly<z.ZodArray<z.ZodString, "atleastone">>]>>;
526
+ "remote-sandbox": z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodReadonly<z.ZodArray<z.ZodString, "atleastone">>]>>;
527
+ }, "strict", z.ZodTypeAny, {
528
+ none?: string | readonly [string, ...string[]] | undefined;
529
+ container?: string | readonly [string, ...string[]] | undefined;
530
+ "remote-sandbox"?: string | readonly [string, ...string[]] | undefined;
531
+ }, {
532
+ none?: string | readonly [string, ...string[]] | undefined;
533
+ container?: string | readonly [string, ...string[]] | undefined;
534
+ "remote-sandbox"?: string | readonly [string, ...string[]] | undefined;
535
+ }>>;
536
+ skills: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodString, z.ZodReadonly<z.ZodArray<z.ZodString, "atleastone">>]>>>;
537
+ modes: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodString, z.ZodReadonly<z.ZodArray<z.ZodString, "atleastone">>]>>>;
538
+ }, "strict", z.ZodTypeAny, {
539
+ default: string | readonly [string, ...string[]];
540
+ 'quick-fix'?: string | readonly [string, ...string[]] | undefined;
541
+ 'guided-change'?: string | readonly [string, ...string[]] | undefined;
542
+ 'full-exploration'?: string | readonly [string, ...string[]] | undefined;
543
+ diagnostic?: string | readonly [string, ...string[]] | undefined;
544
+ intelligence?: {
545
+ sel?: string | readonly [string, ...string[]] | undefined;
546
+ pesl?: string | readonly [string, ...string[]] | undefined;
547
+ } | undefined;
548
+ isolation?: {
549
+ none?: string | readonly [string, ...string[]] | undefined;
550
+ container?: string | readonly [string, ...string[]] | undefined;
551
+ "remote-sandbox"?: string | readonly [string, ...string[]] | undefined;
552
+ } | undefined;
553
+ skills?: Record<string, string | readonly [string, ...string[]]> | undefined;
554
+ modes?: Record<string, string | readonly [string, ...string[]]> | undefined;
555
+ }, {
556
+ default: string | readonly [string, ...string[]];
557
+ 'quick-fix'?: string | readonly [string, ...string[]] | undefined;
558
+ 'guided-change'?: string | readonly [string, ...string[]] | undefined;
559
+ 'full-exploration'?: string | readonly [string, ...string[]] | undefined;
560
+ diagnostic?: string | readonly [string, ...string[]] | undefined;
561
+ intelligence?: {
562
+ sel?: string | readonly [string, ...string[]] | undefined;
563
+ pesl?: string | readonly [string, ...string[]] | undefined;
564
+ } | undefined;
565
+ isolation?: {
566
+ none?: string | readonly [string, ...string[]] | undefined;
567
+ container?: string | readonly [string, ...string[]] | undefined;
568
+ "remote-sandbox"?: string | readonly [string, ...string[]] | undefined;
569
+ } | undefined;
570
+ skills?: Record<string, string | readonly [string, ...string[]]> | undefined;
571
+ modes?: Record<string, string | readonly [string, ...string[]]> | undefined;
572
+ }>>;
401
573
  }, "strip", z.ZodTypeAny, {
402
574
  executor: "subprocess" | "cloud" | "noop";
403
575
  timeout: number;
404
576
  skills?: string[] | undefined;
577
+ backends?: Record<string, {
578
+ type: "mock";
579
+ } | {
580
+ type: "claude";
581
+ command?: string | undefined;
582
+ } | {
583
+ type: "anthropic";
584
+ model: string;
585
+ apiKey?: string | undefined;
586
+ } | {
587
+ type: "openai";
588
+ model: string;
589
+ apiKey?: string | undefined;
590
+ } | {
591
+ type: "gemini";
592
+ model: string;
593
+ apiKey?: string | undefined;
594
+ } | {
595
+ type: "local";
596
+ model: string | [string, ...string[]];
597
+ endpoint: string;
598
+ apiKey?: string | undefined;
599
+ timeoutMs?: number | undefined;
600
+ probeIntervalMs?: number | undefined;
601
+ } | {
602
+ type: "pi";
603
+ model: string | [string, ...string[]];
604
+ endpoint: string;
605
+ apiKey?: string | undefined;
606
+ timeoutMs?: number | undefined;
607
+ probeIntervalMs?: number | undefined;
608
+ }> | undefined;
609
+ routing?: {
610
+ default: string | readonly [string, ...string[]];
611
+ 'quick-fix'?: string | readonly [string, ...string[]] | undefined;
612
+ 'guided-change'?: string | readonly [string, ...string[]] | undefined;
613
+ 'full-exploration'?: string | readonly [string, ...string[]] | undefined;
614
+ diagnostic?: string | readonly [string, ...string[]] | undefined;
615
+ intelligence?: {
616
+ sel?: string | readonly [string, ...string[]] | undefined;
617
+ pesl?: string | readonly [string, ...string[]] | undefined;
618
+ } | undefined;
619
+ isolation?: {
620
+ none?: string | readonly [string, ...string[]] | undefined;
621
+ container?: string | readonly [string, ...string[]] | undefined;
622
+ "remote-sandbox"?: string | readonly [string, ...string[]] | undefined;
623
+ } | undefined;
624
+ skills?: Record<string, string | readonly [string, ...string[]]> | undefined;
625
+ modes?: Record<string, string | readonly [string, ...string[]]> | undefined;
626
+ } | undefined;
405
627
  }, {
406
628
  executor?: "subprocess" | "cloud" | "noop" | undefined;
407
629
  timeout?: number | undefined;
408
630
  skills?: string[] | undefined;
631
+ backends?: Record<string, {
632
+ type: "mock";
633
+ } | {
634
+ type: "claude";
635
+ command?: string | undefined;
636
+ } | {
637
+ type: "anthropic";
638
+ model: string;
639
+ apiKey?: string | undefined;
640
+ } | {
641
+ type: "openai";
642
+ model: string;
643
+ apiKey?: string | undefined;
644
+ } | {
645
+ type: "gemini";
646
+ model: string;
647
+ apiKey?: string | undefined;
648
+ } | {
649
+ type: "local";
650
+ model: string | [string, ...string[]];
651
+ endpoint: string;
652
+ apiKey?: string | undefined;
653
+ timeoutMs?: number | undefined;
654
+ probeIntervalMs?: number | undefined;
655
+ } | {
656
+ type: "pi";
657
+ model: string | [string, ...string[]];
658
+ endpoint: string;
659
+ apiKey?: string | undefined;
660
+ timeoutMs?: number | undefined;
661
+ probeIntervalMs?: number | undefined;
662
+ }> | undefined;
663
+ routing?: {
664
+ default: string | readonly [string, ...string[]];
665
+ 'quick-fix'?: string | readonly [string, ...string[]] | undefined;
666
+ 'guided-change'?: string | readonly [string, ...string[]] | undefined;
667
+ 'full-exploration'?: string | readonly [string, ...string[]] | undefined;
668
+ diagnostic?: string | readonly [string, ...string[]] | undefined;
669
+ intelligence?: {
670
+ sel?: string | readonly [string, ...string[]] | undefined;
671
+ pesl?: string | readonly [string, ...string[]] | undefined;
672
+ } | undefined;
673
+ isolation?: {
674
+ none?: string | readonly [string, ...string[]] | undefined;
675
+ container?: string | readonly [string, ...string[]] | undefined;
676
+ "remote-sandbox"?: string | readonly [string, ...string[]] | undefined;
677
+ } | undefined;
678
+ skills?: Record<string, string | readonly [string, ...string[]]> | undefined;
679
+ modes?: Record<string, string | readonly [string, ...string[]]> | undefined;
680
+ } | undefined;
409
681
  }>>;
410
682
  /** Source-file ingestion controls (skip-dirs, exclude patterns, gitignore handling) */
411
683
  ingest: z.ZodOptional<z.ZodObject<{
@@ -1115,6 +1387,41 @@ declare const HarnessConfigSchema: z.ZodObject<{
1115
1387
  } | undefined;
1116
1388
  } | undefined;
1117
1389
  }>>;
1390
+ /** Shared configuration for craft-pipeline ceiling skills (LLM-judgment) */
1391
+ craft: z.ZodOptional<z.ZodObject<{
1392
+ llm: z.ZodOptional<z.ZodObject<{
1393
+ /**
1394
+ * Name of an entry in `agent.backends` to route craft LLM calls
1395
+ * through. Supported backend types: claude, anthropic, openai,
1396
+ * local, pi, mock. (gemini is declared in agent.backends but is
1397
+ * not yet wired through the craft adapter.)
1398
+ */
1399
+ backend: z.ZodOptional<z.ZodString>;
1400
+ /**
1401
+ * Special-case mode that doesn't correspond to a backend def.
1402
+ * - `in-session` — defer prompts to the calling chat session
1403
+ * via the two-step MCP flow (collect → finalize).
1404
+ * - `mock` — deterministic mock provider, for tests / smoke runs.
1405
+ */
1406
+ mode: z.ZodOptional<z.ZodEnum<["in-session", "mock"]>>;
1407
+ }, "strip", z.ZodTypeAny, {
1408
+ mode?: "in-session" | "mock" | undefined;
1409
+ backend?: string | undefined;
1410
+ }, {
1411
+ mode?: "in-session" | "mock" | undefined;
1412
+ backend?: string | undefined;
1413
+ }>>;
1414
+ }, "strip", z.ZodTypeAny, {
1415
+ llm?: {
1416
+ mode?: "in-session" | "mock" | undefined;
1417
+ backend?: string | undefined;
1418
+ } | undefined;
1419
+ }, {
1420
+ llm?: {
1421
+ mode?: "in-session" | "mock" | undefined;
1422
+ backend?: string | undefined;
1423
+ } | undefined;
1424
+ }>>;
1118
1425
  /** Internationalization (i18n) settings */
1119
1426
  i18n: z.ZodOptional<z.ZodObject<{
1120
1427
  /** Whether i18n management is enabled */
@@ -1520,7 +1827,7 @@ declare const HarnessConfigSchema: z.ZodObject<{
1520
1827
  connectors?: Record<string, Record<string, unknown>> | undefined;
1521
1828
  }>>;
1522
1829
  /**
1523
- * Hermes Phase 2 — Disk-hygiene rules consumed by `harness cleanup-sessions --all`.
1830
+ * Disk-hygiene rules consumed by `harness cleanup-sessions --all`.
1524
1831
  * Keys correspond to registered target names (sessions, cache, maintenance,
1525
1832
  * dashboard-state, snapshots, analyzer-output); values override the default
1526
1833
  * TTL in hours. Unknown keys are ignored (forward-compatible).
@@ -1533,7 +1840,7 @@ declare const HarnessConfigSchema: z.ZodObject<{
1533
1840
  ttlHours?: Record<string, number> | undefined;
1534
1841
  }>>;
1535
1842
  /**
1536
- * Hermes Phase 2 — Pre-launch OSV malware guard configuration.
1843
+ * Pre-launch OSV malware guard configuration.
1537
1844
  * `enabled: false` disables the guard; `strict: true` reverses the default
1538
1845
  * fail-open posture on OSV.dev network errors.
1539
1846
  */
@@ -1542,12 +1849,12 @@ declare const HarnessConfigSchema: z.ZodObject<{
1542
1849
  strict: z.ZodDefault<z.ZodBoolean>;
1543
1850
  cacheTtlHours: z.ZodDefault<z.ZodNumber>;
1544
1851
  }, "strip", z.ZodTypeAny, {
1545
- enabled: boolean;
1546
1852
  strict: boolean;
1853
+ enabled: boolean;
1547
1854
  cacheTtlHours: number;
1548
1855
  }, {
1549
- enabled?: boolean | undefined;
1550
1856
  strict?: boolean | undefined;
1857
+ enabled?: boolean | undefined;
1551
1858
  cacheTtlHours?: number | undefined;
1552
1859
  }>>;
1553
1860
  }, "strip", z.ZodTypeAny, {
@@ -1561,6 +1868,12 @@ declare const HarnessConfigSchema: z.ZodObject<{
1561
1868
  neverSuggest: string[];
1562
1869
  tierOverrides: Record<string, number>;
1563
1870
  } | undefined;
1871
+ craft?: {
1872
+ llm?: {
1873
+ mode?: "in-session" | "mock" | undefined;
1874
+ backend?: string | undefined;
1875
+ } | undefined;
1876
+ } | undefined;
1564
1877
  layers?: {
1565
1878
  name: string;
1566
1879
  pattern: string;
@@ -1578,6 +1891,56 @@ declare const HarnessConfigSchema: z.ZodObject<{
1578
1891
  executor: "subprocess" | "cloud" | "noop";
1579
1892
  timeout: number;
1580
1893
  skills?: string[] | undefined;
1894
+ backends?: Record<string, {
1895
+ type: "mock";
1896
+ } | {
1897
+ type: "claude";
1898
+ command?: string | undefined;
1899
+ } | {
1900
+ type: "anthropic";
1901
+ model: string;
1902
+ apiKey?: string | undefined;
1903
+ } | {
1904
+ type: "openai";
1905
+ model: string;
1906
+ apiKey?: string | undefined;
1907
+ } | {
1908
+ type: "gemini";
1909
+ model: string;
1910
+ apiKey?: string | undefined;
1911
+ } | {
1912
+ type: "local";
1913
+ model: string | [string, ...string[]];
1914
+ endpoint: string;
1915
+ apiKey?: string | undefined;
1916
+ timeoutMs?: number | undefined;
1917
+ probeIntervalMs?: number | undefined;
1918
+ } | {
1919
+ type: "pi";
1920
+ model: string | [string, ...string[]];
1921
+ endpoint: string;
1922
+ apiKey?: string | undefined;
1923
+ timeoutMs?: number | undefined;
1924
+ probeIntervalMs?: number | undefined;
1925
+ }> | undefined;
1926
+ routing?: {
1927
+ default: string | readonly [string, ...string[]];
1928
+ 'quick-fix'?: string | readonly [string, ...string[]] | undefined;
1929
+ 'guided-change'?: string | readonly [string, ...string[]] | undefined;
1930
+ 'full-exploration'?: string | readonly [string, ...string[]] | undefined;
1931
+ diagnostic?: string | readonly [string, ...string[]] | undefined;
1932
+ intelligence?: {
1933
+ sel?: string | readonly [string, ...string[]] | undefined;
1934
+ pesl?: string | readonly [string, ...string[]] | undefined;
1935
+ } | undefined;
1936
+ isolation?: {
1937
+ none?: string | readonly [string, ...string[]] | undefined;
1938
+ container?: string | readonly [string, ...string[]] | undefined;
1939
+ "remote-sandbox"?: string | readonly [string, ...string[]] | undefined;
1940
+ } | undefined;
1941
+ skills?: Record<string, string | readonly [string, ...string[]]> | undefined;
1942
+ modes?: Record<string, string | readonly [string, ...string[]]> | undefined;
1943
+ } | undefined;
1581
1944
  } | undefined;
1582
1945
  ingest?: {
1583
1946
  respectGitignore: boolean;
@@ -1781,8 +2144,8 @@ declare const HarnessConfigSchema: z.ZodObject<{
1781
2144
  ttlHours?: Record<string, number> | undefined;
1782
2145
  } | undefined;
1783
2146
  osvGuard?: {
1784
- enabled: boolean;
1785
2147
  strict: boolean;
2148
+ enabled: boolean;
1786
2149
  cacheTtlHours: number;
1787
2150
  } | undefined;
1788
2151
  }, {
@@ -1793,6 +2156,12 @@ declare const HarnessConfigSchema: z.ZodObject<{
1793
2156
  neverSuggest?: string[] | undefined;
1794
2157
  tierOverrides?: Record<string, number> | undefined;
1795
2158
  } | undefined;
2159
+ craft?: {
2160
+ llm?: {
2161
+ mode?: "in-session" | "mock" | undefined;
2162
+ backend?: string | undefined;
2163
+ } | undefined;
2164
+ } | undefined;
1796
2165
  rootDir?: string | undefined;
1797
2166
  layers?: {
1798
2167
  name: string;
@@ -1813,6 +2182,56 @@ declare const HarnessConfigSchema: z.ZodObject<{
1813
2182
  executor?: "subprocess" | "cloud" | "noop" | undefined;
1814
2183
  timeout?: number | undefined;
1815
2184
  skills?: string[] | undefined;
2185
+ backends?: Record<string, {
2186
+ type: "mock";
2187
+ } | {
2188
+ type: "claude";
2189
+ command?: string | undefined;
2190
+ } | {
2191
+ type: "anthropic";
2192
+ model: string;
2193
+ apiKey?: string | undefined;
2194
+ } | {
2195
+ type: "openai";
2196
+ model: string;
2197
+ apiKey?: string | undefined;
2198
+ } | {
2199
+ type: "gemini";
2200
+ model: string;
2201
+ apiKey?: string | undefined;
2202
+ } | {
2203
+ type: "local";
2204
+ model: string | [string, ...string[]];
2205
+ endpoint: string;
2206
+ apiKey?: string | undefined;
2207
+ timeoutMs?: number | undefined;
2208
+ probeIntervalMs?: number | undefined;
2209
+ } | {
2210
+ type: "pi";
2211
+ model: string | [string, ...string[]];
2212
+ endpoint: string;
2213
+ apiKey?: string | undefined;
2214
+ timeoutMs?: number | undefined;
2215
+ probeIntervalMs?: number | undefined;
2216
+ }> | undefined;
2217
+ routing?: {
2218
+ default: string | readonly [string, ...string[]];
2219
+ 'quick-fix'?: string | readonly [string, ...string[]] | undefined;
2220
+ 'guided-change'?: string | readonly [string, ...string[]] | undefined;
2221
+ 'full-exploration'?: string | readonly [string, ...string[]] | undefined;
2222
+ diagnostic?: string | readonly [string, ...string[]] | undefined;
2223
+ intelligence?: {
2224
+ sel?: string | readonly [string, ...string[]] | undefined;
2225
+ pesl?: string | readonly [string, ...string[]] | undefined;
2226
+ } | undefined;
2227
+ isolation?: {
2228
+ none?: string | readonly [string, ...string[]] | undefined;
2229
+ container?: string | readonly [string, ...string[]] | undefined;
2230
+ "remote-sandbox"?: string | readonly [string, ...string[]] | undefined;
2231
+ } | undefined;
2232
+ skills?: Record<string, string | readonly [string, ...string[]]> | undefined;
2233
+ modes?: Record<string, string | readonly [string, ...string[]]> | undefined;
2234
+ } | undefined;
1816
2235
  } | undefined;
1817
2236
  ingest?: {
1818
2237
  skipDirs?: string[] | undefined;
@@ -2016,8 +2435,8 @@ declare const HarnessConfigSchema: z.ZodObject<{
2016
2435
  ttlHours?: Record<string, number> | undefined;
2017
2436
  } | undefined;
2018
2437
  osvGuard?: {
2019
- enabled?: boolean | undefined;
2020
2438
  strict?: boolean | undefined;
2439
+ enabled?: boolean | undefined;
2021
2440
  cacheTtlHours?: number | undefined;
2022
2441
  } | undefined;
2023
2442
  }>;
package/dist/index.js CHANGED
@@ -12,19 +12,19 @@ import {
12
12
  runSnapshotCapture,
13
13
  runUninstall,
14
14
  runUninstallConstraints
15
- } from "./chunk-HLPY3RHE.js";
15
+ } from "./chunk-LGYXR2KZ.js";
16
16
  import {
17
17
  generateRuntime
18
- } from "./chunk-S7GEONXL.js";
18
+ } from "./chunk-N5NSSLMU.js";
19
19
  import {
20
20
  generateAgentsMd
21
- } from "./chunk-OQE6ME2Z.js";
21
+ } from "./chunk-LECXPXS3.js";
22
22
  import {
23
23
  generateCIWorkflow
24
- } from "./chunk-B3B64OPD.js";
24
+ } from "./chunk-RJ2WEES5.js";
25
25
  import {
26
26
  runCrossCheck
27
- } from "./chunk-PARV3G2F.js";
27
+ } from "./chunk-O2ASYKA6.js";
28
28
  import {
29
29
  AGENT_DESCRIPTIONS,
30
30
  DEFAULT_TOOLS,
@@ -33,14 +33,14 @@ import {
33
33
  generateAgentDefinitions,
34
34
  renderClaudeCodeAgent,
35
35
  renderGeminiAgent
36
- } from "./chunk-ZKA3TGYS.js";
36
+ } from "./chunk-INBTDBV2.js";
37
37
  import "./chunk-KET4QQZB.js";
38
38
  import {
39
39
  runScan
40
40
  } from "./chunk-6UHDQP2N.js";
41
41
  import {
42
42
  TemplateEngine
43
- } from "./chunk-WOXR6I3R.js";
43
+ } from "./chunk-B2VAYLYI.js";
44
44
  import "./chunk-CQ553GZO.js";
45
45
  import {
46
46
  generateSkillFiles
@@ -48,7 +48,7 @@ import {
48
48
  import {
49
49
  listPersonas,
50
50
  loadPersona
51
- } from "./chunk-XTIPZUPR.js";
51
+ } from "./chunk-PTHX545Q.js";
52
52
  import {
53
53
  detectTrigger,
54
54
  runPersona
@@ -63,26 +63,26 @@ import {
63
63
  OutputFormatter,
64
64
  OutputMode,
65
65
  runCheckPhaseGate
66
- } from "./chunk-OLTVDPA2.js";
66
+ } from "./chunk-FC4JPM6W.js";
67
67
  import {
68
68
  createHarnessServer,
69
69
  generateSlashCommands,
70
70
  getToolDefinitions,
71
71
  startServer
72
- } from "./chunk-4EGPFB7V.js";
73
- import "./chunk-67RP7MLR.js";
74
- import "./chunk-HMMSWRWR.js";
75
- import "./chunk-TIZ3L6CU.js";
76
- import "./chunk-QUPC37UB.js";
77
- import "./chunk-CXAHK5PJ.js";
72
+ } from "./chunk-7PLIWP7U.js";
73
+ import "./chunk-CZPOPMMI.js";
74
+ import "./chunk-KN3EMDZ5.js";
75
+ import "./chunk-VI4IS55S.js";
76
+ import "./chunk-LYIPI2SJ.js";
77
+ import "./chunk-FEKBXX2J.js";
78
78
  import "./chunk-IOW3MW2K.js";
79
- import "./chunk-Z2GUITAS.js";
79
+ import "./chunk-Z3TMCCZB.js";
80
80
  import "./chunk-3ISINLYT.js";
81
81
  import "./chunk-TIH53QXY.js";
82
- import "./chunk-MQG7FHXX.js";
83
- import "./chunk-6T5AYG5S.js";
84
- import "./chunk-VG6UK6G6.js";
85
- import "./chunk-P7EO7USC.js";
82
+ import "./chunk-7AF6C5GE.js";
83
+ import "./chunk-GGSNWH7P.js";
84
+ import "./chunk-VSIRUZQP.js";
85
+ import "./chunk-NIVWM7OW.js";
86
86
  import "./chunk-RC3OI5NK.js";
87
87
  import "./chunk-W6Y7ZW3Y.js";
88
88
  import "./chunk-27AJKSQY.js";
@@ -92,7 +92,7 @@ import {
92
92
  findConfigFile,
93
93
  loadConfig,
94
94
  resolveConfig
95
- } from "./chunk-B4OLYXZ4.js";
95
+ } from "./chunk-FXZI6NJ2.js";
96
96
  import "./chunk-ZCZD7FHU.js";
97
97
  import {
98
98
  logger
@@ -102,9 +102,9 @@ import {
102
102
  ExitCode,
103
103
  handleError
104
104
  } from "./chunk-3WGJMBKH.js";
105
- import "./chunk-IY2TZLY5.js";
105
+ import "./chunk-WZY5U6NS.js";
106
106
  import "./chunk-BM3PWGXQ.js";
107
- import "./chunk-W3PDVZ4I.js";
107
+ import "./chunk-Y4T6ENKQ.js";
108
108
  import "./chunk-OH3NXXUY.js";
109
109
  import "./chunk-H2ZJOJ7A.js";
110
110
  import "./chunk-QCLOIUMX.js";
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  listPersonas,
3
3
  loadPersona
4
- } from "./chunk-XTIPZUPR.js";
5
- import "./chunk-IY2TZLY5.js";
6
- import "./chunk-W3PDVZ4I.js";
4
+ } from "./chunk-PTHX545Q.js";
5
+ import "./chunk-WZY5U6NS.js";
6
+ import "./chunk-Y4T6ENKQ.js";
7
7
  import "./chunk-OH3NXXUY.js";
8
8
  import "./chunk-H2ZJOJ7A.js";
9
9
  import "./chunk-QCLOIUMX.js";