atdd 0.4.3__py3-none-any.whl → 0.4.4__py3-none-any.whl
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.
- atdd/coach/commands/sync.py +35 -8
- {atdd-0.4.3.dist-info → atdd-0.4.4.dist-info}/METADATA +1 -1
- {atdd-0.4.3.dist-info → atdd-0.4.4.dist-info}/RECORD +7 -7
- {atdd-0.4.3.dist-info → atdd-0.4.4.dist-info}/WHEEL +0 -0
- {atdd-0.4.3.dist-info → atdd-0.4.4.dist-info}/entry_points.txt +0 -0
- {atdd-0.4.3.dist-info → atdd-0.4.4.dist-info}/licenses/LICENSE +0 -0
- {atdd-0.4.3.dist-info → atdd-0.4.4.dist-info}/top_level.txt +0 -0
atdd/coach/commands/sync.py
CHANGED
|
@@ -194,6 +194,11 @@ class AgentConfigSync:
|
|
|
194
194
|
"""
|
|
195
195
|
agents = self._get_enabled_agents()
|
|
196
196
|
|
|
197
|
+
# Get configured vs detected for display
|
|
198
|
+
config = self._load_config()
|
|
199
|
+
sync_config = config.get("sync", {})
|
|
200
|
+
configured_agents = set(sync_config.get("agents", []))
|
|
201
|
+
|
|
197
202
|
print("\n" + "=" * 60)
|
|
198
203
|
print("ATDD Agent Config Sync Status")
|
|
199
204
|
print("=" * 60)
|
|
@@ -202,8 +207,8 @@ class AgentConfigSync:
|
|
|
202
207
|
print(f"ATDD template: {self.atdd_template}")
|
|
203
208
|
print(f"Overlays dir: {self.overlays_dir}")
|
|
204
209
|
|
|
205
|
-
print(f"\n{'Agent':<10} {'File':<15} {'Status':<20}")
|
|
206
|
-
print("-" *
|
|
210
|
+
print(f"\n{'Agent':<10} {'File':<15} {'Status':<20} {'Source':<12}")
|
|
211
|
+
print("-" * 62)
|
|
207
212
|
|
|
208
213
|
for agent, target_file in sorted(self.AGENT_FILES.items()):
|
|
209
214
|
target_path = self.target_dir / target_file
|
|
@@ -211,18 +216,22 @@ class AgentConfigSync:
|
|
|
211
216
|
|
|
212
217
|
if not enabled:
|
|
213
218
|
status = "disabled"
|
|
219
|
+
source = ""
|
|
214
220
|
elif not target_path.exists():
|
|
215
221
|
status = "missing"
|
|
222
|
+
source = "config"
|
|
216
223
|
elif not self._has_managed_block(target_path.read_text()):
|
|
217
224
|
status = "no managed block"
|
|
225
|
+
source = "auto" if agent not in configured_agents else "config"
|
|
218
226
|
else:
|
|
219
227
|
status = "synced"
|
|
228
|
+
source = "auto" if agent not in configured_agents else "config"
|
|
220
229
|
|
|
221
230
|
enabled_marker = "*" if enabled else " "
|
|
222
|
-
print(f"{enabled_marker} {agent:<8} {target_file:<15} {status:<20}")
|
|
231
|
+
print(f"{enabled_marker} {agent:<8} {target_file:<15} {status:<20} {source:<12}")
|
|
223
232
|
|
|
224
|
-
print("-" *
|
|
225
|
-
print("* = enabled
|
|
233
|
+
print("-" * 62)
|
|
234
|
+
print("* = enabled for sync (config = explicit, auto = file exists)")
|
|
226
235
|
|
|
227
236
|
# Show overlay status
|
|
228
237
|
print("\nOverlays:")
|
|
@@ -250,14 +259,32 @@ class AgentConfigSync:
|
|
|
250
259
|
|
|
251
260
|
def _get_enabled_agents(self) -> List[str]:
|
|
252
261
|
"""
|
|
253
|
-
Return agents
|
|
262
|
+
Return agents to sync: configured agents + existing agent files.
|
|
263
|
+
|
|
264
|
+
Auto-includes any supported agent file that already exists in the
|
|
265
|
+
target directory, in addition to explicitly configured agents.
|
|
266
|
+
This ensures existing agent files stay in sync without requiring
|
|
267
|
+
explicit configuration.
|
|
254
268
|
|
|
255
269
|
Returns:
|
|
256
|
-
List of agent names enabled for sync.
|
|
270
|
+
List of unique agent names enabled for sync.
|
|
257
271
|
"""
|
|
272
|
+
# Get explicitly configured agents
|
|
258
273
|
config = self._load_config()
|
|
259
274
|
sync_config = config.get("sync", {})
|
|
260
|
-
|
|
275
|
+
configured_agents = set(sync_config.get("agents", []))
|
|
276
|
+
|
|
277
|
+
# Auto-detect existing agent files
|
|
278
|
+
detected_agents = set()
|
|
279
|
+
for agent, filename in self.AGENT_FILES.items():
|
|
280
|
+
agent_path = self.target_dir / filename
|
|
281
|
+
if agent_path.exists():
|
|
282
|
+
detected_agents.add(agent)
|
|
283
|
+
|
|
284
|
+
# Merge: configured + detected
|
|
285
|
+
all_agents = configured_agents | detected_agents
|
|
286
|
+
|
|
287
|
+
return sorted(all_agents)
|
|
261
288
|
|
|
262
289
|
def _load_base_content(self) -> Optional[str]:
|
|
263
290
|
"""
|
|
@@ -16,7 +16,7 @@ atdd/coach/commands/inventory.py,sha256=qU42MnkXt1JSBh5GU7pPSKmCO27Zfga7XwMT19Rq
|
|
|
16
16
|
atdd/coach/commands/migration.py,sha256=wRxU7emvvHqWt1MvXKkNTkPBjp0sU9g8F5Uy5yV2YfI,8177
|
|
17
17
|
atdd/coach/commands/registry.py,sha256=76-Pe3_cN483JR1pXUdDIE5WSZjWtVV0Jl8dRtRw_9Y,58349
|
|
18
18
|
atdd/coach/commands/session.py,sha256=MhuWXd5TR6bB3w0t8vANeZx3L476qwLT6EUQMwg-wQA,14268
|
|
19
|
-
atdd/coach/commands/sync.py,sha256=
|
|
19
|
+
atdd/coach/commands/sync.py,sha256=SLNzhcc6IuzMofMbkH9wM9rBSk5tPfcWPKXn9TaSZ-Y,13782
|
|
20
20
|
atdd/coach/commands/test_interface.py,sha256=a7ut2Hhk0PnQ5LfJZkoQwfkfkVuB5OHA4QBwOS0-jcg,16870
|
|
21
21
|
atdd/coach/commands/test_runner.py,sha256=_6JrDRq5fBHUOC4MtkgXcjkgJjG80otoGRTqnkEphIk,5832
|
|
22
22
|
atdd/coach/commands/traceability.py,sha256=8TmpZDeUVHJAz-p3oxXq55jCFiFpKIQR8h1wLZVYcgA,163612
|
|
@@ -182,9 +182,9 @@ atdd/tester/validators/test_red_supabase_layer_structure.py,sha256=zbUjsMWSJE1MP
|
|
|
182
182
|
atdd/tester/validators/test_telemetry_structure.py,sha256=uU5frZnxSlOn60iHyqhe7Pg9b0wrOV7N14D4S6Aw6TE,22626
|
|
183
183
|
atdd/tester/validators/test_typescript_test_naming.py,sha256=E-TyGv_GVlTfsbyuxrtv9sOWSZS_QcpH6rrJFbWoeeU,11280
|
|
184
184
|
atdd/tester/validators/test_typescript_test_structure.py,sha256=eV89SD1RaKtchBZupqhnJmaruoROosf3LwB4Fwe4UJI,2612
|
|
185
|
-
atdd-0.4.
|
|
186
|
-
atdd-0.4.
|
|
187
|
-
atdd-0.4.
|
|
188
|
-
atdd-0.4.
|
|
189
|
-
atdd-0.4.
|
|
190
|
-
atdd-0.4.
|
|
185
|
+
atdd-0.4.4.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
|
|
186
|
+
atdd-0.4.4.dist-info/METADATA,sha256=cBMNKGmx5Uyw5kwn_v6ezv-CKbuFd5QpsZ6hFG_rg9k,8426
|
|
187
|
+
atdd-0.4.4.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
|
|
188
|
+
atdd-0.4.4.dist-info/entry_points.txt,sha256=-C3yrA1WQQfN3iuGmSzPapA5cKVBEYU5Q1HUffSJTbY,38
|
|
189
|
+
atdd-0.4.4.dist-info/top_level.txt,sha256=VKkf6Uiyrm4RS6ULCGM-v8AzYN8K2yg8SMqwJLoO-xs,5
|
|
190
|
+
atdd-0.4.4.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|