flywheel-bootstrap-staging 0.1.9.202601291439__tar.gz → 0.1.9.202601311920__tar.gz

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 (25) hide show
  1. {flywheel_bootstrap_staging-0.1.9.202601291439 → flywheel_bootstrap_staging-0.1.9.202601311920}/PKG-INFO +1 -1
  2. {flywheel_bootstrap_staging-0.1.9.202601291439 → flywheel_bootstrap_staging-0.1.9.202601311920}/bootstrap/orchestrator.py +5 -1
  3. {flywheel_bootstrap_staging-0.1.9.202601291439 → flywheel_bootstrap_staging-0.1.9.202601311920}/bootstrap/prompts.py +8 -0
  4. {flywheel_bootstrap_staging-0.1.9.202601291439 → flywheel_bootstrap_staging-0.1.9.202601311920}/examples/config.example.toml +2 -3
  5. {flywheel_bootstrap_staging-0.1.9.202601291439 → flywheel_bootstrap_staging-0.1.9.202601311920}/pyproject.toml +1 -1
  6. flywheel_bootstrap_staging-0.1.9.202601311920/tests/test_prompts.py +42 -0
  7. {flywheel_bootstrap_staging-0.1.9.202601291439 → flywheel_bootstrap_staging-0.1.9.202601311920}/.gitignore +0 -0
  8. {flywheel_bootstrap_staging-0.1.9.202601291439 → flywheel_bootstrap_staging-0.1.9.202601311920}/README.md +0 -0
  9. {flywheel_bootstrap_staging-0.1.9.202601291439 → flywheel_bootstrap_staging-0.1.9.202601311920}/bootstrap/__init__.py +0 -0
  10. {flywheel_bootstrap_staging-0.1.9.202601291439 → flywheel_bootstrap_staging-0.1.9.202601311920}/bootstrap/__main__.py +0 -0
  11. {flywheel_bootstrap_staging-0.1.9.202601291439 → flywheel_bootstrap_staging-0.1.9.202601311920}/bootstrap/artifacts.py +0 -0
  12. {flywheel_bootstrap_staging-0.1.9.202601291439 → flywheel_bootstrap_staging-0.1.9.202601311920}/bootstrap/config_loader.py +0 -0
  13. {flywheel_bootstrap_staging-0.1.9.202601291439 → flywheel_bootstrap_staging-0.1.9.202601311920}/bootstrap/constants.py +0 -0
  14. {flywheel_bootstrap_staging-0.1.9.202601291439 → flywheel_bootstrap_staging-0.1.9.202601311920}/bootstrap/git_ops.py +0 -0
  15. {flywheel_bootstrap_staging-0.1.9.202601291439 → flywheel_bootstrap_staging-0.1.9.202601311920}/bootstrap/install.py +0 -0
  16. {flywheel_bootstrap_staging-0.1.9.202601291439 → flywheel_bootstrap_staging-0.1.9.202601311920}/bootstrap/payload.py +0 -0
  17. {flywheel_bootstrap_staging-0.1.9.202601291439 → flywheel_bootstrap_staging-0.1.9.202601311920}/bootstrap/py.typed +0 -0
  18. {flywheel_bootstrap_staging-0.1.9.202601291439 → flywheel_bootstrap_staging-0.1.9.202601311920}/bootstrap/runner.py +0 -0
  19. {flywheel_bootstrap_staging-0.1.9.202601291439 → flywheel_bootstrap_staging-0.1.9.202601311920}/bootstrap/telemetry.py +0 -0
  20. {flywheel_bootstrap_staging-0.1.9.202601291439 → flywheel_bootstrap_staging-0.1.9.202601311920}/bootstrap.sh +0 -0
  21. {flywheel_bootstrap_staging-0.1.9.202601291439 → flywheel_bootstrap_staging-0.1.9.202601311920}/tests/test_artifacts.py +0 -0
  22. {flywheel_bootstrap_staging-0.1.9.202601291439 → flywheel_bootstrap_staging-0.1.9.202601311920}/tests/test_entrypoint.py +0 -0
  23. {flywheel_bootstrap_staging-0.1.9.202601291439 → flywheel_bootstrap_staging-0.1.9.202601311920}/tests/test_git_ops.py +0 -0
  24. {flywheel_bootstrap_staging-0.1.9.202601291439 → flywheel_bootstrap_staging-0.1.9.202601311920}/tests/test_orchestrator.py +0 -0
  25. {flywheel_bootstrap_staging-0.1.9.202601291439 → flywheel_bootstrap_staging-0.1.9.202601311920}/uv.lock +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: flywheel-bootstrap-staging
3
- Version: 0.1.9.202601291439
3
+ Version: 0.1.9.202601311920
4
4
  Summary: Bootstrap runner for Flywheel provisioned GPU instances
5
5
  Project-URL: Homepage, http://paradigma.inc/
6
6
  Author: Paradigma Labs
@@ -644,13 +644,17 @@ class BootstrapOrchestrator:
644
644
  self._stop_heartbeats.wait(HEARTBEAT_INTERVAL_SECONDS)
645
645
 
646
646
  def _handle_event(self, event: CodexEvent) -> None:
647
+ extra: dict[str, object] = {}
648
+ if isinstance(event.raw, dict):
649
+ # Preserve structured event data so the server can parse usage.
650
+ extra = {"event": event.raw}
647
651
  post_log(
648
652
  self.config.server_url,
649
653
  self.config.run_id,
650
654
  self.config.capability_token,
651
655
  level="info",
652
656
  message=str(event.raw),
653
- extra={},
657
+ extra=extra,
654
658
  )
655
659
  if isinstance(event.raw, dict):
656
660
  run_id = event.raw.get("run_id")
@@ -67,6 +67,14 @@ def build_prompt_text(
67
67
  - Inspect your output files before declaring success
68
68
  - If something looks wrong (e.g., a blank plot, garbled text), debug and fix it
69
69
  - Prefer self-contained artifacts (inline CSS/JS, no external dependencies)
70
+
71
+ Command Execution:
72
+ - Use --quiet or -q flags for package managers: pip install -q, apt-get -qq, npm install --silent
73
+ - Redirect verbose output away from context: wget -q URL or command > /dev/null 2>&1
74
+ - For long logs, capture only the tail: command 2>&1 | tail -20
75
+ - Prefer silent modes: curl -sS, git clone -q, conda install -q
76
+ - Suppress progress bars: pip install --progress-bar off
77
+ - Long command outputs consume your working memory—keep them concise
70
78
  """
71
79
  ).strip()
72
80
 
@@ -3,11 +3,10 @@
3
3
  # Point bootstrap.sh at this file with:
4
4
  # bash ./bootstrap.sh --run-id <id> --token <token> --config /path/to/config.example.toml
5
5
  #
6
- model = "gpt-5.1-codex-max"
6
+ model = "gpt-5.2-codex"
7
7
  model_reasoning_effort = "medium"
8
8
  approval_policy = "never"
9
9
  sandbox_mode = "danger-full-access"
10
- oss_provider = "lmstudio"
11
10
 
12
11
  # Workspace: leave unset to let bootstrap use ~/.flywheel/runs/<run_id> per run.
13
12
  # If you prefer to pin it, uncomment and edit:
@@ -19,7 +18,7 @@ writable_roots = ["~/.flywheel/runs", "/tmp"]
19
18
  [notice]
20
19
  hide_full_access_warning = true
21
20
  hide_gpt5_1_migration_prompt = true
22
- "hide_gpt-5.1-codex-max_migration_prompt" = true
21
+ "hide_gpt-5.2-codex_migration_prompt" = true
23
22
 
24
23
  [features]
25
24
  web_search_request = true
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "flywheel-bootstrap-staging"
3
- version = "0.1.9.202601291439"
3
+ version = "0.1.9.202601311920"
4
4
  description = "Bootstrap runner for Flywheel provisioned GPU instances"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.11"
@@ -0,0 +1,42 @@
1
+ """Tests for prompt assembly helpers."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from bootstrap.prompts import build_prompt_text
6
+
7
+
8
+ def test_build_prompt_includes_task_and_workspace():
9
+ """Verify prompt combines base context, task, and workspace instructions."""
10
+ prompt = build_prompt_text(
11
+ server_prompt="Train a model",
12
+ workspace_instructions="Use PyTorch",
13
+ artifact_manifest="artifacts.json",
14
+ )
15
+ assert "Train a model" in prompt
16
+ assert "Use PyTorch" in prompt
17
+ assert "artifacts.json" in prompt
18
+
19
+
20
+ def test_build_prompt_includes_artifact_types():
21
+ """Verify prompt includes supported artifact types."""
22
+ prompt = build_prompt_text(
23
+ server_prompt="test task",
24
+ workspace_instructions="test instructions",
25
+ artifact_manifest="flywheel_artifacts.json",
26
+ )
27
+ assert '"text"' in prompt
28
+ assert '"table"' in prompt
29
+ assert '"image"' in prompt
30
+ assert '"json"' in prompt
31
+
32
+
33
+ def test_build_prompt_includes_command_execution_tips():
34
+ """Verify prompt includes guidance on suppressing verbose command output."""
35
+ prompt = build_prompt_text(
36
+ server_prompt="test task",
37
+ workspace_instructions="test instructions",
38
+ artifact_manifest="artifacts.json",
39
+ )
40
+ assert "Command Execution:" in prompt
41
+ # Should include quiet flag guidance
42
+ assert "--quiet" in prompt or "-q" in prompt