harness-engineering-agent 0.2.0 → 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (131) hide show
  1. package/README.md +83 -13
  2. package/dist/agent/harness-role-capability-directory-data.d.ts.map +1 -1
  3. package/dist/agent/harness-role-capability-directory-data.js +42 -0
  4. package/dist/agent/harness-role-capability-directory-data.js.map +1 -1
  5. package/dist/config/config-defaults.d.ts +15 -0
  6. package/dist/config/config-defaults.d.ts.map +1 -1
  7. package/dist/config/config-defaults.js +15 -0
  8. package/dist/config/config-defaults.js.map +1 -1
  9. package/dist/config/config-merge.d.ts.map +1 -1
  10. package/dist/config/config-merge.js +25 -0
  11. package/dist/config/config-merge.js.map +1 -1
  12. package/dist/config/config-schema.d.ts +60 -0
  13. package/dist/config/config-schema.d.ts.map +1 -1
  14. package/dist/config/config-schema.js +47 -0
  15. package/dist/config/config-schema.js.map +1 -1
  16. package/dist/config/config-types.d.ts +4 -0
  17. package/dist/config/config-types.d.ts.map +1 -1
  18. package/dist/config/harness-config.d.ts +1 -1
  19. package/dist/config/harness-config.d.ts.map +1 -1
  20. package/dist/config/harness-config.js.map +1 -1
  21. package/dist/config/index.d.ts +1 -1
  22. package/dist/config/index.d.ts.map +1 -1
  23. package/dist/config/index.js.map +1 -1
  24. package/dist/controller/direct-runner.d.ts +13 -0
  25. package/dist/controller/direct-runner.d.ts.map +1 -0
  26. package/dist/controller/direct-runner.js +53 -0
  27. package/dist/controller/direct-runner.js.map +1 -0
  28. package/dist/controller/graph-validator.d.ts +2 -2
  29. package/dist/controller/graph-validator.d.ts.map +1 -1
  30. package/dist/controller/graph-validator.js +23 -1
  31. package/dist/controller/graph-validator.js.map +1 -1
  32. package/dist/controller/model-profile-resolver.d.ts +12 -0
  33. package/dist/controller/model-profile-resolver.d.ts.map +1 -0
  34. package/dist/controller/model-profile-resolver.js +34 -0
  35. package/dist/controller/model-profile-resolver.js.map +1 -0
  36. package/dist/controller/reassessor.d.ts +13 -0
  37. package/dist/controller/reassessor.d.ts.map +1 -0
  38. package/dist/controller/reassessor.js +73 -0
  39. package/dist/controller/reassessor.js.map +1 -0
  40. package/dist/controller/report-factory.d.ts.map +1 -1
  41. package/dist/controller/report-factory.js +12 -0
  42. package/dist/controller/report-factory.js.map +1 -1
  43. package/dist/controller/role-prompts.d.ts +1 -1
  44. package/dist/controller/role-prompts.d.ts.map +1 -1
  45. package/dist/controller/route-resolver.d.ts +7 -0
  46. package/dist/controller/route-resolver.d.ts.map +1 -0
  47. package/dist/controller/route-resolver.js +25 -0
  48. package/dist/controller/route-resolver.js.map +1 -0
  49. package/dist/controller/run-controller.d.ts.map +1 -1
  50. package/dist/controller/run-controller.js +166 -31
  51. package/dist/controller/run-controller.js.map +1 -1
  52. package/dist/controller/run-state.d.ts +3 -0
  53. package/dist/controller/run-state.d.ts.map +1 -1
  54. package/dist/controller/run-state.js +7 -0
  55. package/dist/controller/run-state.js.map +1 -1
  56. package/dist/controller/streamlined-runner.d.ts +16 -0
  57. package/dist/controller/streamlined-runner.d.ts.map +1 -0
  58. package/dist/controller/streamlined-runner.js +130 -0
  59. package/dist/controller/streamlined-runner.js.map +1 -0
  60. package/dist/controller/task-agent-schemas.d.ts +72 -0
  61. package/dist/controller/task-agent-schemas.d.ts.map +1 -1
  62. package/dist/controller/task-executor.d.ts.map +1 -1
  63. package/dist/controller/task-executor.js +148 -13
  64. package/dist/controller/task-executor.js.map +1 -1
  65. package/dist/domain/complexity.d.ts +62 -0
  66. package/dist/domain/complexity.d.ts.map +1 -0
  67. package/dist/domain/complexity.js +28 -0
  68. package/dist/domain/complexity.js.map +1 -0
  69. package/dist/domain/index.d.ts +5 -3
  70. package/dist/domain/index.d.ts.map +1 -1
  71. package/dist/domain/index.js +2 -1
  72. package/dist/domain/index.js.map +1 -1
  73. package/dist/domain/plan-artifacts.d.ts +36 -0
  74. package/dist/domain/plan-artifacts.d.ts.map +1 -1
  75. package/dist/domain/report.d.ts +239 -0
  76. package/dist/domain/report.d.ts.map +1 -1
  77. package/dist/domain/requirement.d.ts +66 -0
  78. package/dist/domain/requirement.d.ts.map +1 -1
  79. package/dist/domain/requirement.js +5 -0
  80. package/dist/domain/requirement.js.map +1 -1
  81. package/dist/domain/run.d.ts +254 -0
  82. package/dist/domain/run.d.ts.map +1 -1
  83. package/dist/domain/run.js +32 -0
  84. package/dist/domain/run.js.map +1 -1
  85. package/dist/domain/shared.d.ts +2 -1
  86. package/dist/domain/shared.d.ts.map +1 -1
  87. package/dist/domain/shared.js +1 -0
  88. package/dist/domain/shared.js.map +1 -1
  89. package/dist/domain/task.d.ts +33 -0
  90. package/dist/domain/task.d.ts.map +1 -1
  91. package/dist/domain/task.js +10 -0
  92. package/dist/domain/task.js.map +1 -1
  93. package/dist/plugin/harness-chat-hook.d.ts.map +1 -1
  94. package/dist/plugin/harness-chat-hook.js +18 -12
  95. package/dist/plugin/harness-chat-hook.js.map +1 -1
  96. package/dist/plugin/harness-chat-protocol.d.ts.map +1 -1
  97. package/dist/plugin/harness-chat-protocol.js +58 -0
  98. package/dist/plugin/harness-chat-protocol.js.map +1 -1
  99. package/dist/plugin/harness-coordinator.d.ts.map +1 -1
  100. package/dist/plugin/harness-coordinator.js +70 -2
  101. package/dist/plugin/harness-coordinator.js.map +1 -1
  102. package/dist/plugin/harness-intent.d.ts +66 -0
  103. package/dist/plugin/harness-intent.d.ts.map +1 -1
  104. package/dist/plugin/harness-intent.js +3 -1
  105. package/dist/plugin/harness-intent.js.map +1 -1
  106. package/dist/plugin/harness-requirement.d.ts.map +1 -1
  107. package/dist/plugin/harness-requirement.js +10 -0
  108. package/dist/plugin/harness-requirement.js.map +1 -1
  109. package/dist/store/run-event.d.ts +239 -0
  110. package/dist/store/run-event.d.ts.map +1 -1
  111. package/dist/workspace/discover-git-repos.d.ts +6 -0
  112. package/dist/workspace/discover-git-repos.d.ts.map +1 -0
  113. package/dist/workspace/discover-git-repos.js +61 -0
  114. package/dist/workspace/discover-git-repos.js.map +1 -0
  115. package/dist/workspace/env-preflight.d.ts +16 -0
  116. package/dist/workspace/env-preflight.d.ts.map +1 -0
  117. package/dist/workspace/env-preflight.js +86 -0
  118. package/dist/workspace/env-preflight.js.map +1 -0
  119. package/dist/workspace/git-workspace-adapter.d.ts +2 -1
  120. package/dist/workspace/git-workspace-adapter.d.ts.map +1 -1
  121. package/dist/workspace/git-workspace-adapter.js +47 -13
  122. package/dist/workspace/git-workspace-adapter.js.map +1 -1
  123. package/dist/workspace/index.d.ts +6 -0
  124. package/dist/workspace/index.d.ts.map +1 -1
  125. package/dist/workspace/index.js +3 -0
  126. package/dist/workspace/index.js.map +1 -1
  127. package/dist/workspace/resolve-target-repository.d.ts +12 -0
  128. package/dist/workspace/resolve-target-repository.d.ts.map +1 -0
  129. package/dist/workspace/resolve-target-repository.js +78 -0
  130. package/dist/workspace/resolve-target-repository.js.map +1 -0
  131. package/package.json +1 -1
@@ -95,6 +95,20 @@ export declare const RunEventSchema: z.ZodReadonly<z.ZodObject<{
95
95
  "repair-worker": "repair-worker";
96
96
  acceptance: "acceptance";
97
97
  }>;
98
+ complexityTier: z.ZodOptional<z.ZodEnum<{
99
+ trivial: "trivial";
100
+ standard: "standard";
101
+ complex: "complex";
102
+ }>>;
103
+ tierOverriddenFrom: z.ZodOptional<z.ZodEnum<{
104
+ trivial: "trivial";
105
+ standard: "standard";
106
+ complex: "complex";
107
+ }>>;
108
+ modelProfile: z.ZodOptional<z.ZodReadonly<z.ZodObject<{
109
+ provider: z.ZodString;
110
+ model: z.ZodString;
111
+ }, z.core.$strip>>>;
98
112
  }, z.core.$strip>>>>;
99
113
  edges: z.ZodReadonly<z.ZodArray<z.ZodReadonly<z.ZodObject<{
100
114
  fromTaskId: z.core.$ZodBranded<z.ZodString, "TaskId">;
@@ -113,6 +127,28 @@ export declare const RunEventSchema: z.ZodReadonly<z.ZodObject<{
113
127
  criterionId: z.ZodString;
114
128
  text: z.ZodString;
115
129
  }, z.core.$strip>>>>;
130
+ complexityAssessment: z.ZodOptional<z.ZodReadonly<z.ZodObject<{
131
+ tier: z.ZodEnum<{
132
+ trivial: "trivial";
133
+ standard: "standard";
134
+ complex: "complex";
135
+ }>;
136
+ rationale: z.ZodString;
137
+ estimatedFileCount: z.ZodNumber;
138
+ estimatedCrossModuleDeps: z.ZodNumber;
139
+ suggestedRoute: z.ZodEnum<{
140
+ direct: "direct";
141
+ streamlined: "streamlined";
142
+ full: "full";
143
+ parallel: "parallel";
144
+ }>;
145
+ confidence: z.ZodEnum<{
146
+ high: "high";
147
+ medium: "medium";
148
+ low: "low";
149
+ }>;
150
+ }, z.core.$strip>>>;
151
+ targetRepository: z.ZodOptional<z.ZodString>;
116
152
  }, z.core.$strip>>>;
117
153
  evidence: z.ZodReadonly<z.ZodArray<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodReadonly<z.ZodObject<{
118
154
  schemaVersion: z.ZodLiteral<"1.0.0">;
@@ -423,6 +459,13 @@ export declare const RunEventSchema: z.ZodReadonly<z.ZodObject<{
423
459
  reason: z.ZodString;
424
460
  pausedAt: z.ZodString;
425
461
  }, z.core.$strip>>>;
462
+ blockReason: z.ZodNullable<z.ZodReadonly<z.ZodDiscriminatedUnion<[z.ZodReadonly<z.ZodObject<{
463
+ kind: z.ZodLiteral<"non_git_workspace">;
464
+ detectedRepos: z.ZodReadonly<z.ZodArray<z.ZodString>>;
465
+ }, z.core.$strip>>, z.ZodReadonly<z.ZodObject<{
466
+ kind: z.ZodLiteral<"dirty_workspace">;
467
+ dirtyPaths: z.ZodReadonly<z.ZodArray<z.ZodString>>;
468
+ }, z.core.$strip>>]>>>;
426
469
  }, z.core.$strip>>>;
427
470
  workspace: z.ZodDefault<z.ZodReadonly<z.ZodObject<{
428
471
  git: z.ZodUnion<readonly [z.ZodReadonly<z.ZodObject<{
@@ -497,6 +540,28 @@ export declare const RunEventSchema: z.ZodReadonly<z.ZodObject<{
497
540
  criterionId: z.ZodString;
498
541
  text: z.ZodString;
499
542
  }, z.core.$strip>>>>;
543
+ complexityAssessment: z.ZodOptional<z.ZodReadonly<z.ZodObject<{
544
+ tier: z.ZodEnum<{
545
+ trivial: "trivial";
546
+ standard: "standard";
547
+ complex: "complex";
548
+ }>;
549
+ rationale: z.ZodString;
550
+ estimatedFileCount: z.ZodNumber;
551
+ estimatedCrossModuleDeps: z.ZodNumber;
552
+ suggestedRoute: z.ZodEnum<{
553
+ direct: "direct";
554
+ streamlined: "streamlined";
555
+ full: "full";
556
+ parallel: "parallel";
557
+ }>;
558
+ confidence: z.ZodEnum<{
559
+ high: "high";
560
+ medium: "medium";
561
+ low: "low";
562
+ }>;
563
+ }, z.core.$strip>>>;
564
+ targetRepository: z.ZodOptional<z.ZodString>;
500
565
  }, z.core.$strip>>>;
501
566
  taskGraph: z.ZodReadonly<z.ZodObject<{
502
567
  schemaVersion: z.ZodLiteral<"1.0.0">;
@@ -573,6 +638,20 @@ export declare const RunEventSchema: z.ZodReadonly<z.ZodObject<{
573
638
  "repair-worker": "repair-worker";
574
639
  acceptance: "acceptance";
575
640
  }>;
641
+ complexityTier: z.ZodOptional<z.ZodEnum<{
642
+ trivial: "trivial";
643
+ standard: "standard";
644
+ complex: "complex";
645
+ }>>;
646
+ tierOverriddenFrom: z.ZodOptional<z.ZodEnum<{
647
+ trivial: "trivial";
648
+ standard: "standard";
649
+ complex: "complex";
650
+ }>>;
651
+ modelProfile: z.ZodOptional<z.ZodReadonly<z.ZodObject<{
652
+ provider: z.ZodString;
653
+ model: z.ZodString;
654
+ }, z.core.$strip>>>;
576
655
  }, z.core.$strip>>>>;
577
656
  edges: z.ZodReadonly<z.ZodArray<z.ZodReadonly<z.ZodObject<{
578
657
  fromTaskId: z.core.$ZodBranded<z.ZodString, "TaskId">;
@@ -728,6 +807,53 @@ export declare const RunEventSchema: z.ZodReadonly<z.ZodObject<{
728
807
  }, z.core.$strip>>>>;
729
808
  }, z.core.$strip>>;
730
809
  }, z.core.$strip>>>>>;
810
+ complexityAssessment: z.ZodOptional<z.ZodReadonly<z.ZodObject<{
811
+ tier: z.ZodEnum<{
812
+ trivial: "trivial";
813
+ standard: "standard";
814
+ complex: "complex";
815
+ }>;
816
+ rationale: z.ZodString;
817
+ estimatedFileCount: z.ZodNumber;
818
+ estimatedCrossModuleDeps: z.ZodNumber;
819
+ suggestedRoute: z.ZodEnum<{
820
+ direct: "direct";
821
+ streamlined: "streamlined";
822
+ full: "full";
823
+ parallel: "parallel";
824
+ }>;
825
+ confidence: z.ZodEnum<{
826
+ high: "high";
827
+ medium: "medium";
828
+ low: "low";
829
+ }>;
830
+ }, z.core.$strip>>>;
831
+ resolvedTier: z.ZodDefault<z.ZodEnum<{
832
+ trivial: "trivial";
833
+ standard: "standard";
834
+ complex: "complex";
835
+ }>>;
836
+ resolvedRoute: z.ZodDefault<z.ZodEnum<{
837
+ direct: "direct";
838
+ streamlined: "streamlined";
839
+ full: "full";
840
+ parallel: "parallel";
841
+ }>>;
842
+ reassessmentHistory: z.ZodDefault<z.ZodReadonly<z.ZodArray<z.ZodReadonly<z.ZodObject<{
843
+ triggerTaskId: z.ZodString;
844
+ previousTier: z.ZodEnum<{
845
+ trivial: "trivial";
846
+ standard: "standard";
847
+ complex: "complex";
848
+ }>;
849
+ newTier: z.ZodEnum<{
850
+ trivial: "trivial";
851
+ standard: "standard";
852
+ complex: "complex";
853
+ }>;
854
+ reason: z.ZodString;
855
+ affectedRemainingTasks: z.ZodReadonly<z.ZodArray<z.ZodString>>;
856
+ }, z.core.$strip>>>>>;
731
857
  }, z.core.$strip>>, z.ZodReadonly<z.ZodObject<{
732
858
  status: z.ZodEnum<{
733
859
  created: "created";
@@ -737,6 +863,7 @@ export declare const RunEventSchema: z.ZodReadonly<z.ZodObject<{
737
863
  planning: "planning";
738
864
  evidence_gap: "evidence_gap";
739
865
  clarification_required: "clarification_required";
866
+ env_blocked: "env_blocked";
740
867
  cancelled: "cancelled";
741
868
  }>;
742
869
  schemaVersion: z.ZodLiteral<"1.0.0">;
@@ -751,6 +878,28 @@ export declare const RunEventSchema: z.ZodReadonly<z.ZodObject<{
751
878
  criterionId: z.ZodString;
752
879
  text: z.ZodString;
753
880
  }, z.core.$strip>>>>;
881
+ complexityAssessment: z.ZodOptional<z.ZodReadonly<z.ZodObject<{
882
+ tier: z.ZodEnum<{
883
+ trivial: "trivial";
884
+ standard: "standard";
885
+ complex: "complex";
886
+ }>;
887
+ rationale: z.ZodString;
888
+ estimatedFileCount: z.ZodNumber;
889
+ estimatedCrossModuleDeps: z.ZodNumber;
890
+ suggestedRoute: z.ZodEnum<{
891
+ direct: "direct";
892
+ streamlined: "streamlined";
893
+ full: "full";
894
+ parallel: "parallel";
895
+ }>;
896
+ confidence: z.ZodEnum<{
897
+ high: "high";
898
+ medium: "medium";
899
+ low: "low";
900
+ }>;
901
+ }, z.core.$strip>>>;
902
+ targetRepository: z.ZodOptional<z.ZodString>;
754
903
  }, z.core.$strip>>>;
755
904
  evidence: z.ZodReadonly<z.ZodArray<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodReadonly<z.ZodObject<{
756
905
  schemaVersion: z.ZodLiteral<"1.0.0">;
@@ -1061,6 +1210,13 @@ export declare const RunEventSchema: z.ZodReadonly<z.ZodObject<{
1061
1210
  reason: z.ZodString;
1062
1211
  pausedAt: z.ZodString;
1063
1212
  }, z.core.$strip>>>;
1213
+ blockReason: z.ZodNullable<z.ZodReadonly<z.ZodDiscriminatedUnion<[z.ZodReadonly<z.ZodObject<{
1214
+ kind: z.ZodLiteral<"non_git_workspace">;
1215
+ detectedRepos: z.ZodReadonly<z.ZodArray<z.ZodString>>;
1216
+ }, z.core.$strip>>, z.ZodReadonly<z.ZodObject<{
1217
+ kind: z.ZodLiteral<"dirty_workspace">;
1218
+ dirtyPaths: z.ZodReadonly<z.ZodArray<z.ZodString>>;
1219
+ }, z.core.$strip>>]>>>;
1064
1220
  }, z.core.$strip>>>;
1065
1221
  workspace: z.ZodDefault<z.ZodReadonly<z.ZodObject<{
1066
1222
  git: z.ZodUnion<readonly [z.ZodReadonly<z.ZodObject<{
@@ -1135,6 +1291,28 @@ export declare const RunEventSchema: z.ZodReadonly<z.ZodObject<{
1135
1291
  criterionId: z.ZodString;
1136
1292
  text: z.ZodString;
1137
1293
  }, z.core.$strip>>>>;
1294
+ complexityAssessment: z.ZodOptional<z.ZodReadonly<z.ZodObject<{
1295
+ tier: z.ZodEnum<{
1296
+ trivial: "trivial";
1297
+ standard: "standard";
1298
+ complex: "complex";
1299
+ }>;
1300
+ rationale: z.ZodString;
1301
+ estimatedFileCount: z.ZodNumber;
1302
+ estimatedCrossModuleDeps: z.ZodNumber;
1303
+ suggestedRoute: z.ZodEnum<{
1304
+ direct: "direct";
1305
+ streamlined: "streamlined";
1306
+ full: "full";
1307
+ parallel: "parallel";
1308
+ }>;
1309
+ confidence: z.ZodEnum<{
1310
+ high: "high";
1311
+ medium: "medium";
1312
+ low: "low";
1313
+ }>;
1314
+ }, z.core.$strip>>>;
1315
+ targetRepository: z.ZodOptional<z.ZodString>;
1138
1316
  }, z.core.$strip>>>;
1139
1317
  taskGraph: z.ZodReadonly<z.ZodObject<{
1140
1318
  schemaVersion: z.ZodLiteral<"1.0.0">;
@@ -1211,6 +1389,20 @@ export declare const RunEventSchema: z.ZodReadonly<z.ZodObject<{
1211
1389
  "repair-worker": "repair-worker";
1212
1390
  acceptance: "acceptance";
1213
1391
  }>;
1392
+ complexityTier: z.ZodOptional<z.ZodEnum<{
1393
+ trivial: "trivial";
1394
+ standard: "standard";
1395
+ complex: "complex";
1396
+ }>>;
1397
+ tierOverriddenFrom: z.ZodOptional<z.ZodEnum<{
1398
+ trivial: "trivial";
1399
+ standard: "standard";
1400
+ complex: "complex";
1401
+ }>>;
1402
+ modelProfile: z.ZodOptional<z.ZodReadonly<z.ZodObject<{
1403
+ provider: z.ZodString;
1404
+ model: z.ZodString;
1405
+ }, z.core.$strip>>>;
1214
1406
  }, z.core.$strip>>>>;
1215
1407
  edges: z.ZodReadonly<z.ZodArray<z.ZodReadonly<z.ZodObject<{
1216
1408
  fromTaskId: z.core.$ZodBranded<z.ZodString, "TaskId">;
@@ -1366,6 +1558,53 @@ export declare const RunEventSchema: z.ZodReadonly<z.ZodObject<{
1366
1558
  }, z.core.$strip>>>>;
1367
1559
  }, z.core.$strip>>;
1368
1560
  }, z.core.$strip>>>>>;
1561
+ complexityAssessment: z.ZodOptional<z.ZodReadonly<z.ZodObject<{
1562
+ tier: z.ZodEnum<{
1563
+ trivial: "trivial";
1564
+ standard: "standard";
1565
+ complex: "complex";
1566
+ }>;
1567
+ rationale: z.ZodString;
1568
+ estimatedFileCount: z.ZodNumber;
1569
+ estimatedCrossModuleDeps: z.ZodNumber;
1570
+ suggestedRoute: z.ZodEnum<{
1571
+ direct: "direct";
1572
+ streamlined: "streamlined";
1573
+ full: "full";
1574
+ parallel: "parallel";
1575
+ }>;
1576
+ confidence: z.ZodEnum<{
1577
+ high: "high";
1578
+ medium: "medium";
1579
+ low: "low";
1580
+ }>;
1581
+ }, z.core.$strip>>>;
1582
+ resolvedTier: z.ZodDefault<z.ZodEnum<{
1583
+ trivial: "trivial";
1584
+ standard: "standard";
1585
+ complex: "complex";
1586
+ }>>;
1587
+ resolvedRoute: z.ZodDefault<z.ZodEnum<{
1588
+ direct: "direct";
1589
+ streamlined: "streamlined";
1590
+ full: "full";
1591
+ parallel: "parallel";
1592
+ }>>;
1593
+ reassessmentHistory: z.ZodDefault<z.ZodReadonly<z.ZodArray<z.ZodReadonly<z.ZodObject<{
1594
+ triggerTaskId: z.ZodString;
1595
+ previousTier: z.ZodEnum<{
1596
+ trivial: "trivial";
1597
+ standard: "standard";
1598
+ complex: "complex";
1599
+ }>;
1600
+ newTier: z.ZodEnum<{
1601
+ trivial: "trivial";
1602
+ standard: "standard";
1603
+ complex: "complex";
1604
+ }>;
1605
+ reason: z.ZodString;
1606
+ affectedRemainingTasks: z.ZodReadonly<z.ZodArray<z.ZodString>>;
1607
+ }, z.core.$strip>>>>>;
1369
1608
  }, z.core.$strip>>]>>>;
1370
1609
  }, z.core.$strip>>;
1371
1610
  export type JsonValue = string | number | boolean | null | readonly JsonValue[] | {
@@ -1 +1 @@
1
- {"version":3,"file":"run-event.d.ts","sourceRoot":"","sources":["../../src/store/run-event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAMvB,eAAO,MAAM,eAAe,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAMhD,CAAA;AAED,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAad,CAAA;AAEb,MAAM,MAAM,SAAS,GACjB,MAAM,GACN,MAAM,GACN,OAAO,GACP,IAAI,GACJ,SAAS,SAAS,EAAE,GACpB;IAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAAA;AAEzC,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAA"}
1
+ {"version":3,"file":"run-event.d.ts","sourceRoot":"","sources":["../../src/store/run-event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAMvB,eAAO,MAAM,eAAe,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAMhD,CAAA;AAED,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAad,CAAA;AAEb,MAAM,MAAM,SAAS,GACjB,MAAM,GACN,MAAM,GACN,OAAO,GACP,IAAI,GACJ,SAAS,SAAS,EAAE,GACpB;IAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAAA;AAEzC,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAA"}
@@ -0,0 +1,6 @@
1
+ export type DiscoveredGitRepo = {
2
+ readonly name: string;
3
+ readonly relativePath: string;
4
+ };
5
+ export declare const discoverChildGitRepos: (projectRoot: string, maxDepth?: number) => Promise<readonly DiscoveredGitRepo[]>;
6
+ //# sourceMappingURL=discover-git-repos.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"discover-git-repos.d.ts","sourceRoot":"","sources":["../../src/workspace/discover-git-repos.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;CAC9B,CAAA;AAmBD,eAAO,MAAM,qBAAqB,GAChC,aAAa,MAAM,EACnB,WAAU,MAA0B,KACnC,OAAO,CAAC,SAAS,iBAAiB,EAAE,CAMtC,CAAA"}
@@ -0,0 +1,61 @@
1
+ import { existsSync } from "node:fs";
2
+ import { readdir, stat } from "node:fs/promises";
3
+ import { join } from "node:path";
4
+ const DEFAULT_MAX_DEPTH = 2;
5
+ const DEFAULT_MAX_RESULTS = 10;
6
+ const IGNORED_DIRECTORIES = new Set([
7
+ "node_modules",
8
+ ".git",
9
+ "dist",
10
+ "build",
11
+ "coverage",
12
+ ".harness",
13
+ "target",
14
+ ".next",
15
+ ".nuxt",
16
+ ".cache",
17
+ ".harness-worktrees",
18
+ ]);
19
+ export const discoverChildGitRepos = async (projectRoot, maxDepth = DEFAULT_MAX_DEPTH) => {
20
+ const repos = [];
21
+ await walkForGitRepos(projectRoot, "", 0, maxDepth, repos);
22
+ return repos
23
+ .sort((left, right) => left.name.localeCompare(right.name))
24
+ .slice(0, DEFAULT_MAX_RESULTS);
25
+ };
26
+ const walkForGitRepos = async (root, relativePath, depth, maxDepth, repos) => {
27
+ if (depth > maxDepth) {
28
+ return;
29
+ }
30
+ let dirEntries;
31
+ try {
32
+ dirEntries = await readdir(root);
33
+ }
34
+ catch {
35
+ return;
36
+ }
37
+ for (const entry of dirEntries) {
38
+ if (IGNORED_DIRECTORIES.has(entry)) {
39
+ continue;
40
+ }
41
+ const fullPath = join(root, entry);
42
+ const entryRelative = relativePath.length === 0 ? entry : `${relativePath}/${entry}`;
43
+ let isDirectory = false;
44
+ try {
45
+ const entryStat = await stat(fullPath);
46
+ isDirectory = entryStat.isDirectory();
47
+ }
48
+ catch {
49
+ continue;
50
+ }
51
+ if (!isDirectory) {
52
+ continue;
53
+ }
54
+ if (existsSync(join(fullPath, ".git"))) {
55
+ repos.push({ name: entry, relativePath: entryRelative });
56
+ continue;
57
+ }
58
+ await walkForGitRepos(fullPath, entryRelative, depth + 1, maxDepth, repos);
59
+ }
60
+ };
61
+ //# sourceMappingURL=discover-git-repos.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"discover-git-repos.js","sourceRoot":"","sources":["../../src/workspace/discover-git-repos.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACpC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAChD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAOhC,MAAM,iBAAiB,GAAG,CAAC,CAAA;AAC3B,MAAM,mBAAmB,GAAG,EAAE,CAAA;AAE9B,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC;IAClC,cAAc;IACd,MAAM;IACN,MAAM;IACN,OAAO;IACP,UAAU;IACV,UAAU;IACV,QAAQ;IACR,OAAO;IACP,OAAO;IACP,QAAQ;IACR,oBAAoB;CACrB,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,EACxC,WAAmB,EACnB,WAAmB,iBAAiB,EACG,EAAE;IACzC,MAAM,KAAK,GAAwB,EAAE,CAAA;IACrC,MAAM,eAAe,CAAC,WAAW,EAAE,EAAE,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAA;IAC1D,OAAO,KAAK;SACT,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;SAC1D,KAAK,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAA;AAClC,CAAC,CAAA;AAED,MAAM,eAAe,GAAG,KAAK,EAC3B,IAAY,EACZ,YAAoB,EACpB,KAAa,EACb,QAAgB,EAChB,KAA0B,EACX,EAAE;IACjB,IAAI,KAAK,GAAG,QAAQ,EAAE,CAAC;QACrB,OAAM;IACR,CAAC;IAED,IAAI,UAAoB,CAAA;IACxB,IAAI,CAAC;QACH,UAAU,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAClC,CAAC;IAAC,MAAM,CAAC;QACP,OAAM;IACR,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;QAC/B,IAAI,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YACnC,SAAQ;QACV,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;QAClC,MAAM,aAAa,GAAG,YAAY,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,YAAY,IAAI,KAAK,EAAE,CAAA;QAEpF,IAAI,WAAW,GAAG,KAAK,CAAA;QACvB,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAA;YACtC,WAAW,GAAG,SAAS,CAAC,WAAW,EAAE,CAAA;QACvC,CAAC;QAAC,MAAM,CAAC;YACP,SAAQ;QACV,CAAC;QAED,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,SAAQ;QACV,CAAC;QAED,IAAI,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC;YACvC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,CAAC,CAAA;YACxD,SAAQ;QACV,CAAC;QAED,MAAM,eAAe,CAAC,QAAQ,EAAE,aAAa,EAAE,KAAK,GAAG,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAA;IAC5E,CAAC;AACH,CAAC,CAAA"}
@@ -0,0 +1,16 @@
1
+ import type { DiscoveredGitRepo } from "./discover-git-repos.js";
2
+ export type PreflightPolicy = {
3
+ readonly allowDirty: boolean;
4
+ readonly allowNonGit: boolean;
5
+ };
6
+ export type PreflightResult = {
7
+ readonly status: "ok";
8
+ } | {
9
+ readonly status: "non_git";
10
+ readonly detectedRepos: readonly DiscoveredGitRepo[];
11
+ } | {
12
+ readonly status: "dirty";
13
+ readonly dirtyPaths: readonly string[];
14
+ };
15
+ export declare const runWorkspacePreflight: (projectRoot: string, policy: PreflightPolicy) => Promise<PreflightResult>;
16
+ //# sourceMappingURL=env-preflight.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env-preflight.d.ts","sourceRoot":"","sources":["../../src/workspace/env-preflight.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAGhE,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAA;IAC5B,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAA;CAC9B,CAAA;AAED,MAAM,MAAM,eAAe,GACvB;IAAE,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAA;CAAE,GACzB;IACE,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAA;IAC1B,QAAQ,CAAC,aAAa,EAAE,SAAS,iBAAiB,EAAE,CAAA;CACrD,GACD;IACE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;IACxB,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAA;CACvC,CAAA;AAQL,eAAO,MAAM,qBAAqB,GAChC,aAAa,MAAM,EACnB,QAAQ,eAAe,KACtB,OAAO,CAAC,eAAe,CAoBzB,CAAA"}
@@ -0,0 +1,86 @@
1
+ import { spawn } from "node:child_process";
2
+ import { discoverChildGitRepos } from "./discover-git-repos.js";
3
+ export const runWorkspacePreflight = async (projectRoot, policy) => {
4
+ const repoRoot = await resolveRepoRoot(projectRoot);
5
+ if (repoRoot === null) {
6
+ if (policy.allowNonGit) {
7
+ return { status: "ok" };
8
+ }
9
+ const detectedRepos = await discoverChildGitRepos(projectRoot);
10
+ return { status: "non_git", detectedRepos };
11
+ }
12
+ if (policy.allowDirty) {
13
+ return { status: "ok" };
14
+ }
15
+ const dirtyPaths = await listDirtyPaths(projectRoot);
16
+ if (dirtyPaths.length > 0) {
17
+ return { status: "dirty", dirtyPaths };
18
+ }
19
+ return { status: "ok" };
20
+ };
21
+ const resolveRepoRoot = async (cwd) => {
22
+ const result = await runGitCommand(cwd, ["rev-parse", "--show-toplevel"]);
23
+ if (result.exitCode !== 0) {
24
+ return null;
25
+ }
26
+ return result.stdout.trim();
27
+ };
28
+ const listDirtyPaths = async (projectRoot) => {
29
+ const result = await runGitCommand(projectRoot, [
30
+ "status",
31
+ "--porcelain=v1",
32
+ "-z",
33
+ "--untracked-files=all",
34
+ ]);
35
+ if (result.exitCode !== 0) {
36
+ return [];
37
+ }
38
+ return parseDirtyPaths(result.stdout);
39
+ };
40
+ const parseDirtyPaths = (output) => {
41
+ const entries = output.split("\u0000").filter((entry) => entry.length > 0);
42
+ const paths = [];
43
+ for (const entry of entries) {
44
+ if (entry.length < 4) {
45
+ continue;
46
+ }
47
+ const status = entry.slice(0, 2);
48
+ const primaryPath = entry.slice(3);
49
+ if (primaryPath.length > 0) {
50
+ paths.push(primaryPath);
51
+ }
52
+ if (status.includes("R") || status.includes("C")) {
53
+ const nextIndex = entries.indexOf(entry) + 1;
54
+ const secondaryPath = entries[nextIndex];
55
+ if (secondaryPath !== undefined && secondaryPath.length > 0) {
56
+ paths.push(secondaryPath);
57
+ }
58
+ }
59
+ }
60
+ return [...new Set(paths)].sort();
61
+ };
62
+ const runGitCommand = async (cwd, args) => {
63
+ return await new Promise((resolveResult, reject) => {
64
+ const child = spawn("git", args, {
65
+ cwd,
66
+ stdio: ["ignore", "pipe", "pipe"],
67
+ });
68
+ const stdout = [];
69
+ const stderr = [];
70
+ child.stdout.on("data", (chunk) => {
71
+ stdout.push(chunk);
72
+ });
73
+ child.stderr.on("data", (chunk) => {
74
+ stderr.push(chunk);
75
+ });
76
+ child.on("error", reject);
77
+ child.on("close", (exitCode) => {
78
+ resolveResult({
79
+ exitCode: exitCode ?? -1,
80
+ stdout: Buffer.concat(stdout).toString("utf8"),
81
+ stderr: Buffer.concat(stderr).toString("utf8"),
82
+ });
83
+ });
84
+ });
85
+ };
86
+ //# sourceMappingURL=env-preflight.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env-preflight.js","sourceRoot":"","sources":["../../src/workspace/env-preflight.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { type GitWorkspaceState, type WorkspaceGitState } from "./git-baseline.js";
2
2
  export type WorkspacePolicy = {
3
3
  readonly allowDirty: boolean;
4
+ readonly allowNonGit?: boolean;
4
5
  };
5
6
  type GitRepositoryState = {
6
7
  readonly mode: "git";
@@ -38,6 +39,6 @@ export interface WorkspaceAdapter {
38
39
  readonly allowedPaths: readonly string[];
39
40
  }): Promise<WorkspaceChangeAssessment>;
40
41
  }
41
- export declare const createGitWorkspaceAdapter: (projectRoot: string) => WorkspaceAdapter;
42
+ export declare const createGitWorkspaceAdapter: (projectRoot: string, policy?: WorkspacePolicy) => WorkspaceAdapter;
42
43
  export {};
43
44
  //# sourceMappingURL=git-workspace-adapter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"git-workspace-adapter.d.ts","sourceRoot":"","sources":["../../src/workspace/git-workspace-adapter.ts"],"names":[],"mappings":"AAIA,OAAO,EAGL,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACvB,MAAM,mBAAmB,CAAA;AAE1B,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAA;CAC7B,CAAA;AAQD,KAAK,kBAAkB,GAAG;IACxB,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAA;IACpB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IAC/B,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAA;IACtC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,iBAAiB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;CAC7D,CAAA;AAED,KAAK,qBAAqB,GAAG;IAC3B,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;IACxB,QAAQ,CAAC,iBAAiB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;CAC7D,CAAA;AAED,KAAK,eAAe,GAAG,kBAAkB,GAAG,qBAAqB,CAAA;AAEjE,MAAM,MAAM,yBAAyB,GACjC;IACE,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAA;IACrB,QAAQ,CAAC,kBAAkB,EAAE,SAAS,MAAM,EAAE,CAAA;IAC9C,QAAQ,CAAC,aAAa,EAAE,iBAAiB,CAAA;CAC1C,GACD;IACE,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAA;IACzB,QAAQ,CAAC,kBAAkB,EAAE,SAAS,MAAM,EAAE,CAAA;IAC9C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAA;CACzC,CAAA;AAEL,MAAM,WAAW,gBAAgB;IAC/B,eAAe,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAA;IACpE,mBAAmB,IAAI,OAAO,CAAC,eAAe,CAAC,CAAA;IAC/C,iBAAiB,CAAC,KAAK,EAAE;QACvB,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAA;QACpC,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAA;QAChC,QAAQ,CAAC,WAAW,EAAE,eAAe,CAAA;QACrC,QAAQ,CAAC,iBAAiB,EAAE,eAAe,CAAA;QAC3C,QAAQ,CAAC,mBAAmB,EAAE,SAAS,MAAM,EAAE,CAAA;QAC/C,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAA;KACzC,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAAA;CACvC;AAED,eAAO,MAAM,yBAAyB,GAAI,aAAa,MAAM,KAAG,gBA+G9D,CAAA"}
1
+ {"version":3,"file":"git-workspace-adapter.d.ts","sourceRoot":"","sources":["../../src/workspace/git-workspace-adapter.ts"],"names":[],"mappings":"AAIA,OAAO,EAGL,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACvB,MAAM,mBAAmB,CAAA;AAE1B,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAA;IAC5B,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAA;CAC/B,CAAA;AAQD,KAAK,kBAAkB,GAAG;IACxB,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAA;IACpB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IAC/B,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAA;IACtC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,iBAAiB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;CAC7D,CAAA;AAED,KAAK,qBAAqB,GAAG;IAC3B,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;IACxB,QAAQ,CAAC,iBAAiB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;CAC7D,CAAA;AAED,KAAK,eAAe,GAAG,kBAAkB,GAAG,qBAAqB,CAAA;AAEjE,MAAM,MAAM,yBAAyB,GACjC;IACE,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAA;IACrB,QAAQ,CAAC,kBAAkB,EAAE,SAAS,MAAM,EAAE,CAAA;IAC9C,QAAQ,CAAC,aAAa,EAAE,iBAAiB,CAAA;CAC1C,GACD;IACE,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAA;IACzB,QAAQ,CAAC,kBAAkB,EAAE,SAAS,MAAM,EAAE,CAAA;IAC9C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAA;CACzC,CAAA;AAEL,MAAM,WAAW,gBAAgB;IAC/B,eAAe,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAA;IACpE,mBAAmB,IAAI,OAAO,CAAC,eAAe,CAAC,CAAA;IAC/C,iBAAiB,CAAC,KAAK,EAAE;QACvB,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAA;QACpC,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAA;QAChC,QAAQ,CAAC,WAAW,EAAE,eAAe,CAAA;QACrC,QAAQ,CAAC,iBAAiB,EAAE,eAAe,CAAA;QAC3C,QAAQ,CAAC,mBAAmB,EAAE,SAAS,MAAM,EAAE,CAAA;QAC/C,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAA;KACzC,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAAA;CACvC;AAED,eAAO,MAAM,yBAAyB,GACpC,aAAa,MAAM,EACnB,SAAS,eAAe,KACvB,gBAwID,CAAA"}