plato-sdk-v2 2.3.10__py3-none-any.whl → 2.3.11__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.
plato/v1/cli/chronos.py CHANGED
@@ -178,14 +178,14 @@ def example(
178
178
  "max_attempts": 3,
179
179
  "use_backtrack": True,
180
180
  "skill_runner": {
181
- "image": "claude-code:2.1.5",
181
+ "image": "claude-code:2.1.6",
182
182
  "config": {"model_name": "anthropic/claude-sonnet-4-20250514", "max_turns": 100},
183
183
  },
184
184
  },
185
185
  "agent_configs": {
186
186
  "skill_runner": {
187
187
  "agent": "claude-code",
188
- "version": "2.1.5",
188
+ "version": "2.1.6",
189
189
  "config": {"model_name": "anthropic/claude-sonnet-4-20250514", "max_turns": 100},
190
190
  }
191
191
  },
plato/v1/cli/pm.py CHANGED
@@ -753,16 +753,16 @@ def review_data(
753
753
  is_installed = "site-packages" in str(package_dir)
754
754
 
755
755
  if is_installed:
756
- extension_source_path = package_dir / "extensions" / "envgen-recorder"
756
+ extension_source_path = package_dir / "extensions" / "envgen-recorder-old"
757
757
  else:
758
758
  repo_root = package_dir.parent.parent.parent # plato-client/
759
- extension_source_path = repo_root / "extensions" / "envgen-recorder"
759
+ extension_source_path = repo_root / "extensions" / "envgen-recorder-old"
760
760
 
761
761
  # Fallback to env var
762
762
  if not extension_source_path.exists():
763
763
  plato_client_dir_env = os.getenv("PLATO_CLIENT_DIR")
764
764
  if plato_client_dir_env:
765
- env_path = Path(plato_client_dir_env) / "extensions" / "envgen-recorder"
765
+ env_path = Path(plato_client_dir_env) / "extensions" / "envgen-recorder-old"
766
766
  if env_path.exists():
767
767
  extension_source_path = env_path
768
768
 
plato/v1/cli/sandbox.py CHANGED
@@ -1819,8 +1819,6 @@ def sandbox_clear_audit(
1819
1819
 
1820
1820
  for name, db_config in db_listeners:
1821
1821
  db_type = db_config.get("db_type", "postgresql").lower()
1822
- db_host = db_config.get("db_host", "127.0.0.1")
1823
- db_port = db_config.get("db_port", 5432 if db_type == "postgresql" else 3306)
1824
1822
  db_user = db_config.get("db_user", "postgres" if db_type == "postgresql" else "root")
1825
1823
  db_password = db_config.get("db_password", "")
1826
1824
  db_database = db_config.get("db_database", "postgres")
@@ -1829,10 +1827,15 @@ def sandbox_clear_audit(
1829
1827
  console.print(f"[cyan]Clearing audit_log for listener '{name}' ({db_type})...[/cyan]")
1830
1828
 
1831
1829
  # Build SQL command based on db_type
1830
+ # Use docker exec since psql/mysql aren't installed on the VM directly
1832
1831
  if db_type == "postgresql":
1833
- sql_cmd = f"PGPASSWORD='{db_password}' psql -h {db_host} -p {db_port} -U {db_user} -d {db_database} -c 'TRUNCATE TABLE audit_log RESTART IDENTITY CASCADE'"
1832
+ # Find the postgres container and truncate all audit_log tables across all schemas
1833
+ # Use $body$ delimiter instead of $$ to avoid shell expansion
1834
+ truncate_sql = "DO \\$body\\$ DECLARE r RECORD; BEGIN FOR r IN SELECT schemaname FROM pg_tables WHERE tablename = 'audit_log' LOOP EXECUTE format('TRUNCATE TABLE %I.audit_log RESTART IDENTITY CASCADE', r.schemaname); END LOOP; END \\$body\\$;"
1835
+ sql_cmd = f"CONTAINER=$(docker ps --format '{{{{.Names}}}}\\t{{{{.Image}}}}' | grep -i postgres | head -1 | cut -f1) && docker exec $CONTAINER psql -U {db_user} -d {db_database} -c \"{truncate_sql}\""
1834
1836
  elif db_type in ("mysql", "mariadb"):
1835
- sql_cmd = f"mysql -h {db_host} -P {db_port} -u {db_user} -p'{db_password}' {db_database} -e 'SET FOREIGN_KEY_CHECKS=0; DELETE FROM audit_log; SET FOREIGN_KEY_CHECKS=1;'"
1837
+ # Find the mysql/mariadb container and exec into it
1838
+ sql_cmd = f"CONTAINER=$(docker ps --format '{{{{.Names}}}}\\t{{{{.Image}}}}' | grep -iE 'mysql|mariadb' | head -1 | cut -f1) && docker exec $CONTAINER mysql -u {db_user} -p'{db_password}' {db_database} -e 'SET FOREIGN_KEY_CHECKS=0; DELETE FROM audit_log; SET FOREIGN_KEY_CHECKS=1;'"
1836
1839
  else:
1837
1840
  if not json_output:
1838
1841
  console.print(f"[yellow]⚠ Unsupported db_type '{db_type}' for listener '{name}'[/yellow]")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: plato-sdk-v2
3
- Version: 2.3.10
3
+ Version: 2.3.11
4
4
  Summary: Python SDK for the Plato API
5
5
  Author-email: Plato <support@plato.so>
6
6
  License-Expression: MIT
@@ -387,10 +387,10 @@ plato/v1/sync_flow_executor.py,sha256=kgvNYOtA9FHeNfP7qb8ZPUIlTsfIss_Z98W8uX5vec
387
387
  plato/v1/sync_sdk.py,sha256=2sedg1QJiSxr1I3kCyfaLAnlAgHlbblc3QQP_47O30k,25697
388
388
  plato/v1/cli/__init__.py,sha256=om4b7PxgsoI7rEwuQelmQkqPdhMVn53_5qEN8kvksYw,105
389
389
  plato/v1/cli/agent.py,sha256=G6TV3blG_BqMDBWS-CG7GwzqoqcJTMsIKQ88jvLXb4k,43745
390
- plato/v1/cli/chronos.py,sha256=g0Re69Ma3bBYZzoQcSABdl61UEWCD7_hqrpzzc4nb1U,7335
390
+ plato/v1/cli/chronos.py,sha256=QfVLbnFxhJcVdLNvaJkIyAlb-QgLlUdgvH3P4MfgJT8,7335
391
391
  plato/v1/cli/main.py,sha256=iKUz6Mu-4-dgr29qOUmDqBaumOCzNQKZsHAalVtaH0Q,6932
392
- plato/v1/cli/pm.py,sha256=uLM6WszKqxq9Czg1FraDyWb9_INUuHZq63imvRYfRLw,49734
393
- plato/v1/cli/sandbox.py,sha256=N7DIpXsxExtZB47tWKxp-3cV0_gLnI7C-mTKW3tTi8Y,95360
392
+ plato/v1/cli/pm.py,sha256=TIvXBIWFDjr4s1girMMCuvHWQJkjpmsS-igAamddIWE,49746
393
+ plato/v1/cli/sandbox.py,sha256=22WbT66hFlpGIpN9V8NlNdncKpd098hY5WJxicTnggo,95944
394
394
  plato/v1/cli/ssh.py,sha256=enrf7Y01ZeRIyHDEX0Yt7up5zEe7MCvE9u8SP4Oqiz4,6926
395
395
  plato/v1/cli/utils.py,sha256=ba7Crv4OjDmgCv4SeB8UeZDin-iOdQw_3N6fd-g5XVk,4572
396
396
  plato/v1/cli/verify.py,sha256=7QmQwfOOkr8a51f8xfVIr2zif7wGl2E8HOZTbOaIoV0,20671
@@ -463,7 +463,7 @@ plato/worlds/base.py,sha256=kIX02gMQR43ZsZK25vZvCoNkYtICVRMeofNk-im5IRM,28215
463
463
  plato/worlds/build_hook.py,sha256=KSoW0kqa5b7NyZ7MYOw2qsZ_2FkWuz0M3Ru7AKOP7Qw,3486
464
464
  plato/worlds/config.py,sha256=a5frj3mt06rSlT25kE-L8Q2b2MTWkR-8cUoBKpC8tG4,11036
465
465
  plato/worlds/runner.py,sha256=2H5EV77bTYrMyI7qez0kwxOp9EApQxG19Ob9a_GTdbw,19383
466
- plato_sdk_v2-2.3.10.dist-info/METADATA,sha256=dx-ovSiFY62KWqAM0mR_wfXlILoZLq9qGSBaluEcFJQ,8653
467
- plato_sdk_v2-2.3.10.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
468
- plato_sdk_v2-2.3.10.dist-info/entry_points.txt,sha256=upGMbJCx6YWUTKrPoYvYUYfFCqYr75nHDwhA-45m6p8,136
469
- plato_sdk_v2-2.3.10.dist-info/RECORD,,
466
+ plato_sdk_v2-2.3.11.dist-info/METADATA,sha256=31I2bshYErJviipSAqW8gMKPoOk3z2Xef7ULUO7rSds,8653
467
+ plato_sdk_v2-2.3.11.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
468
+ plato_sdk_v2-2.3.11.dist-info/entry_points.txt,sha256=upGMbJCx6YWUTKrPoYvYUYfFCqYr75nHDwhA-45m6p8,136
469
+ plato_sdk_v2-2.3.11.dist-info/RECORD,,