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.
- {flywheel_bootstrap_staging-0.1.9.202601291439 → flywheel_bootstrap_staging-0.1.9.202601311920}/PKG-INFO +1 -1
- {flywheel_bootstrap_staging-0.1.9.202601291439 → flywheel_bootstrap_staging-0.1.9.202601311920}/bootstrap/orchestrator.py +5 -1
- {flywheel_bootstrap_staging-0.1.9.202601291439 → flywheel_bootstrap_staging-0.1.9.202601311920}/bootstrap/prompts.py +8 -0
- {flywheel_bootstrap_staging-0.1.9.202601291439 → flywheel_bootstrap_staging-0.1.9.202601311920}/examples/config.example.toml +2 -3
- {flywheel_bootstrap_staging-0.1.9.202601291439 → flywheel_bootstrap_staging-0.1.9.202601311920}/pyproject.toml +1 -1
- flywheel_bootstrap_staging-0.1.9.202601311920/tests/test_prompts.py +42 -0
- {flywheel_bootstrap_staging-0.1.9.202601291439 → flywheel_bootstrap_staging-0.1.9.202601311920}/.gitignore +0 -0
- {flywheel_bootstrap_staging-0.1.9.202601291439 → flywheel_bootstrap_staging-0.1.9.202601311920}/README.md +0 -0
- {flywheel_bootstrap_staging-0.1.9.202601291439 → flywheel_bootstrap_staging-0.1.9.202601311920}/bootstrap/__init__.py +0 -0
- {flywheel_bootstrap_staging-0.1.9.202601291439 → flywheel_bootstrap_staging-0.1.9.202601311920}/bootstrap/__main__.py +0 -0
- {flywheel_bootstrap_staging-0.1.9.202601291439 → flywheel_bootstrap_staging-0.1.9.202601311920}/bootstrap/artifacts.py +0 -0
- {flywheel_bootstrap_staging-0.1.9.202601291439 → flywheel_bootstrap_staging-0.1.9.202601311920}/bootstrap/config_loader.py +0 -0
- {flywheel_bootstrap_staging-0.1.9.202601291439 → flywheel_bootstrap_staging-0.1.9.202601311920}/bootstrap/constants.py +0 -0
- {flywheel_bootstrap_staging-0.1.9.202601291439 → flywheel_bootstrap_staging-0.1.9.202601311920}/bootstrap/git_ops.py +0 -0
- {flywheel_bootstrap_staging-0.1.9.202601291439 → flywheel_bootstrap_staging-0.1.9.202601311920}/bootstrap/install.py +0 -0
- {flywheel_bootstrap_staging-0.1.9.202601291439 → flywheel_bootstrap_staging-0.1.9.202601311920}/bootstrap/payload.py +0 -0
- {flywheel_bootstrap_staging-0.1.9.202601291439 → flywheel_bootstrap_staging-0.1.9.202601311920}/bootstrap/py.typed +0 -0
- {flywheel_bootstrap_staging-0.1.9.202601291439 → flywheel_bootstrap_staging-0.1.9.202601311920}/bootstrap/runner.py +0 -0
- {flywheel_bootstrap_staging-0.1.9.202601291439 → flywheel_bootstrap_staging-0.1.9.202601311920}/bootstrap/telemetry.py +0 -0
- {flywheel_bootstrap_staging-0.1.9.202601291439 → flywheel_bootstrap_staging-0.1.9.202601311920}/bootstrap.sh +0 -0
- {flywheel_bootstrap_staging-0.1.9.202601291439 → flywheel_bootstrap_staging-0.1.9.202601311920}/tests/test_artifacts.py +0 -0
- {flywheel_bootstrap_staging-0.1.9.202601291439 → flywheel_bootstrap_staging-0.1.9.202601311920}/tests/test_entrypoint.py +0 -0
- {flywheel_bootstrap_staging-0.1.9.202601291439 → flywheel_bootstrap_staging-0.1.9.202601311920}/tests/test_git_ops.py +0 -0
- {flywheel_bootstrap_staging-0.1.9.202601291439 → flywheel_bootstrap_staging-0.1.9.202601311920}/tests/test_orchestrator.py +0 -0
- {flywheel_bootstrap_staging-0.1.9.202601291439 → flywheel_bootstrap_staging-0.1.9.202601311920}/uv.lock +0 -0
|
@@ -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.
|
|
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.
|
|
21
|
+
"hide_gpt-5.2-codex_migration_prompt" = true
|
|
23
22
|
|
|
24
23
|
[features]
|
|
25
24
|
web_search_request = true
|
|
@@ -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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|