monkeybot-cli 0.13.0__tar.gz → 0.13.2__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 (96) hide show
  1. {monkeybot_cli-0.13.0 → monkeybot_cli-0.13.2}/PKG-INFO +1 -1
  2. {monkeybot_cli-0.13.0 → monkeybot_cli-0.13.2}/pyproject.toml +1 -1
  3. {monkeybot_cli-0.13.0 → monkeybot_cli-0.13.2}/skills/monkeybot/references/config-sections.md +2 -3
  4. monkeybot_cli-0.13.2/src/monkeybot_cli/scaffold_defaults/goal/SKILL.md +67 -0
  5. {monkeybot_cli-0.13.0 → monkeybot_cli-0.13.2}/src/monkeybot_cli/scaffold_defaults/monkeybot.example.yaml +1 -3
  6. monkeybot_cli-0.13.0/src/monkeybot_cli/scaffold_defaults/goal/SKILL.md +0 -31
  7. {monkeybot_cli-0.13.0 → monkeybot_cli-0.13.2}/.gitignore +0 -0
  8. {monkeybot_cli-0.13.0 → monkeybot_cli-0.13.2}/skills/monkeybot/SKILL.md +0 -0
  9. {monkeybot_cli-0.13.0 → monkeybot_cli-0.13.2}/src/monkeybot_cli/__init__.py +0 -0
  10. {monkeybot_cli-0.13.0 → monkeybot_cli-0.13.2}/src/monkeybot_cli/chat_file_index.py +0 -0
  11. {monkeybot_cli-0.13.0 → monkeybot_cli-0.13.2}/src/monkeybot_cli/chat_local_shell.py +0 -0
  12. {monkeybot_cli-0.13.0 → monkeybot_cli-0.13.2}/src/monkeybot_cli/chat_renderer.py +0 -0
  13. {monkeybot_cli-0.13.0 → monkeybot_cli-0.13.2}/src/monkeybot_cli/chat_session.py +0 -0
  14. {monkeybot_cli-0.13.0 → monkeybot_cli-0.13.2}/src/monkeybot_cli/chat_status_bar.py +0 -0
  15. {monkeybot_cli-0.13.0 → monkeybot_cli-0.13.2}/src/monkeybot_cli/chat_theme.py +0 -0
  16. {monkeybot_cli-0.13.0 → monkeybot_cli-0.13.2}/src/monkeybot_cli/chat_tool_display.py +0 -0
  17. {monkeybot_cli-0.13.0 → monkeybot_cli-0.13.2}/src/monkeybot_cli/chat_tui.py +0 -0
  18. {monkeybot_cli-0.13.0 → monkeybot_cli-0.13.2}/src/monkeybot_cli/chat_tui_widgets.py +0 -0
  19. {monkeybot_cli-0.13.0 → monkeybot_cli-0.13.2}/src/monkeybot_cli/commands/__init__.py +0 -0
  20. {monkeybot_cli-0.13.0 → monkeybot_cli-0.13.2}/src/monkeybot_cli/commands/chat.py +0 -0
  21. {monkeybot_cli-0.13.0 → monkeybot_cli-0.13.2}/src/monkeybot_cli/commands/doctor.py +0 -0
  22. {monkeybot_cli-0.13.0 → monkeybot_cli-0.13.2}/src/monkeybot_cli/commands/loop.py +0 -0
  23. {monkeybot_cli-0.13.0 → monkeybot_cli-0.13.2}/src/monkeybot_cli/commands/mcp_login.py +0 -0
  24. {monkeybot_cli-0.13.0 → monkeybot_cli-0.13.2}/src/monkeybot_cli/commands/new.py +0 -0
  25. {monkeybot_cli-0.13.0 → monkeybot_cli-0.13.2}/src/monkeybot_cli/commands/refresh.py +0 -0
  26. {monkeybot_cli-0.13.0 → monkeybot_cli-0.13.2}/src/monkeybot_cli/commands/run_cmd.py +0 -0
  27. {monkeybot_cli-0.13.0 → monkeybot_cli-0.13.2}/src/monkeybot_cli/commands/talk.py +0 -0
  28. {monkeybot_cli-0.13.0 → monkeybot_cli-0.13.2}/src/monkeybot_cli/commands/trace.py +0 -0
  29. {monkeybot_cli-0.13.0 → monkeybot_cli-0.13.2}/src/monkeybot_cli/commands/validate.py +0 -0
  30. {monkeybot_cli-0.13.0 → monkeybot_cli-0.13.2}/src/monkeybot_cli/compat.py +0 -0
  31. {monkeybot_cli-0.13.0 → monkeybot_cli-0.13.2}/src/monkeybot_cli/config_resolve.py +0 -0
  32. {monkeybot_cli-0.13.0 → monkeybot_cli-0.13.2}/src/monkeybot_cli/exit_commands.py +0 -0
  33. {monkeybot_cli-0.13.0 → monkeybot_cli-0.13.2}/src/monkeybot_cli/extras_catalog.py +0 -0
  34. {monkeybot_cli-0.13.0 → monkeybot_cli-0.13.2}/src/monkeybot_cli/gateway_health.py +0 -0
  35. {monkeybot_cli-0.13.0 → monkeybot_cli-0.13.2}/src/monkeybot_cli/main.py +0 -0
  36. {monkeybot_cli-0.13.0 → monkeybot_cli-0.13.2}/src/monkeybot_cli/opensandbox_lifecycle.py +0 -0
  37. {monkeybot_cli-0.13.0 → monkeybot_cli-0.13.2}/src/monkeybot_cli/output.py +0 -0
  38. {monkeybot_cli-0.13.0 → monkeybot_cli-0.13.2}/src/monkeybot_cli/overrides.txt +0 -0
  39. {monkeybot_cli-0.13.0 → monkeybot_cli-0.13.2}/src/monkeybot_cli/process_tree.py +0 -0
  40. {monkeybot_cli-0.13.0 → monkeybot_cli-0.13.2}/src/monkeybot_cli/providers.py +0 -0
  41. {monkeybot_cli-0.13.0 → monkeybot_cli-0.13.2}/src/monkeybot_cli/realtime/__init__.py +0 -0
  42. {monkeybot_cli-0.13.0 → monkeybot_cli-0.13.2}/src/monkeybot_cli/realtime/audio_io.py +0 -0
  43. {monkeybot_cli-0.13.0 → monkeybot_cli-0.13.2}/src/monkeybot_cli/realtime/client.py +0 -0
  44. {monkeybot_cli-0.13.0 → monkeybot_cli-0.13.2}/src/monkeybot_cli/realtime/gateway_manager.py +0 -0
  45. {monkeybot_cli-0.13.0 → monkeybot_cli-0.13.2}/src/monkeybot_cli/realtime/push_to_talk.py +0 -0
  46. {monkeybot_cli-0.13.0 → monkeybot_cli-0.13.2}/src/monkeybot_cli/realtime/session.py +0 -0
  47. {monkeybot_cli-0.13.0 → monkeybot_cli-0.13.2}/src/monkeybot_cli/realtime/session_controller.py +0 -0
  48. {monkeybot_cli-0.13.0 → monkeybot_cli-0.13.2}/src/monkeybot_cli/realtime/talk_ui.py +0 -0
  49. {monkeybot_cli-0.13.0 → monkeybot_cli-0.13.2}/src/monkeybot_cli/realtime/wire_encode.py +0 -0
  50. {monkeybot_cli-0.13.0 → monkeybot_cli-0.13.2}/src/monkeybot_cli/runtime_python.py +0 -0
  51. {monkeybot_cli-0.13.0 → monkeybot_cli-0.13.2}/src/monkeybot_cli/scaffold.py +0 -0
  52. {monkeybot_cli-0.13.0 → monkeybot_cli-0.13.2}/src/monkeybot_cli/scaffold_defaults/AGENT.md +0 -0
  53. {monkeybot_cli-0.13.0 → monkeybot_cli-0.13.2}/src/monkeybot_cli/scaffold_defaults/Dockerfile +0 -0
  54. {monkeybot_cli-0.13.0 → monkeybot_cli-0.13.2}/src/monkeybot_cli/scaffold_defaults/__init__.py +0 -0
  55. {monkeybot_cli-0.13.0 → monkeybot_cli-0.13.2}/src/monkeybot_cli/scaffold_defaults/browser/SKILL.md +0 -0
  56. {monkeybot_cli-0.13.0 → monkeybot_cli-0.13.2}/src/monkeybot_cli/scaffold_defaults/command_allowlist.yaml +0 -0
  57. {monkeybot_cli-0.13.0 → monkeybot_cli-0.13.2}/src/monkeybot_cli/scaffold_defaults/dockerignore +0 -0
  58. {monkeybot_cli-0.13.0 → monkeybot_cli-0.13.2}/src/monkeybot_cli/scaffold_defaults/env.example +0 -0
  59. {monkeybot_cli-0.13.0 → monkeybot_cli-0.13.2}/src/monkeybot_cli/scaffold_defaults/image-generator/SKILL.md +0 -0
  60. {monkeybot_cli-0.13.0 → monkeybot_cli-0.13.2}/src/monkeybot_cli/scaffold_defaults/image-generator/generate_image.py +0 -0
  61. {monkeybot_cli-0.13.0 → monkeybot_cli-0.13.2}/src/monkeybot_cli/scaffold_defaults/loop/SKILL.md +0 -0
  62. {monkeybot_cli-0.13.0 → monkeybot_cli-0.13.2}/src/monkeybot_cli/scaffold_defaults/mcp.json +0 -0
  63. {monkeybot_cli-0.13.0 → monkeybot_cli-0.13.2}/src/monkeybot_cli/scaffold_defaults/opensandbox.docker.toml +0 -0
  64. {monkeybot_cli-0.13.0 → monkeybot_cli-0.13.2}/src/monkeybot_cli/scaffold_defaults/otel-collector.example.yaml +0 -0
  65. {monkeybot_cli-0.13.0 → monkeybot_cli-0.13.2}/src/monkeybot_cli/scaffold_defaults/permissions.yaml +0 -0
  66. {monkeybot_cli-0.13.0 → monkeybot_cli-0.13.2}/src/monkeybot_cli/scaffold_defaults/templates/coding/AGENT.md +0 -0
  67. {monkeybot_cli-0.13.0 → monkeybot_cli-0.13.2}/src/monkeybot_cli/scaffold_defaults/templates/coding/command_allowlist.yaml +0 -0
  68. {monkeybot_cli-0.13.0 → monkeybot_cli-0.13.2}/src/monkeybot_cli/scaffold_defaults/templates/coding/monkeybot.overrides.yaml +0 -0
  69. {monkeybot_cli-0.13.0 → monkeybot_cli-0.13.2}/src/monkeybot_cli/scaffold_defaults/templates/coding/permissions.yaml +0 -0
  70. {monkeybot_cli-0.13.0 → monkeybot_cli-0.13.2}/src/monkeybot_cli/session_controller.py +0 -0
  71. {monkeybot_cli-0.13.0 → monkeybot_cli-0.13.2}/src/monkeybot_cli/terminal_markdown.py +0 -0
  72. {monkeybot_cli-0.13.0 → monkeybot_cli-0.13.2}/tests/test_chat_continue.py +0 -0
  73. {monkeybot_cli-0.13.0 → monkeybot_cli-0.13.2}/tests/test_chat_e2e.py +0 -0
  74. {monkeybot_cli-0.13.0 → monkeybot_cli-0.13.2}/tests/test_chat_errors.py +0 -0
  75. {monkeybot_cli-0.13.0 → monkeybot_cli-0.13.2}/tests/test_chat_file_index.py +0 -0
  76. {monkeybot_cli-0.13.0 → monkeybot_cli-0.13.2}/tests/test_chat_grounding.py +0 -0
  77. {monkeybot_cli-0.13.0 → monkeybot_cli-0.13.2}/tests/test_chat_local_shell.py +0 -0
  78. {monkeybot_cli-0.13.0 → monkeybot_cli-0.13.2}/tests/test_chat_renderer_parity.py +0 -0
  79. {monkeybot_cli-0.13.0 → monkeybot_cli-0.13.2}/tests/test_chat_session.py +0 -0
  80. {monkeybot_cli-0.13.0 → monkeybot_cli-0.13.2}/tests/test_chat_status_bar.py +0 -0
  81. {monkeybot_cli-0.13.0 → monkeybot_cli-0.13.2}/tests/test_chat_theme.py +0 -0
  82. {monkeybot_cli-0.13.0 → monkeybot_cli-0.13.2}/tests/test_chat_tool_display.py +0 -0
  83. {monkeybot_cli-0.13.0 → monkeybot_cli-0.13.2}/tests/test_chat_tui.py +0 -0
  84. {monkeybot_cli-0.13.0 → monkeybot_cli-0.13.2}/tests/test_cli.py +0 -0
  85. {monkeybot_cli-0.13.0 → monkeybot_cli-0.13.2}/tests/test_config_resolve.py +0 -0
  86. {monkeybot_cli-0.13.0 → monkeybot_cli-0.13.2}/tests/test_doctor.py +0 -0
  87. {monkeybot_cli-0.13.0 → monkeybot_cli-0.13.2}/tests/test_extras_catalog.py +0 -0
  88. {monkeybot_cli-0.13.0 → monkeybot_cli-0.13.2}/tests/test_gateway_health.py +0 -0
  89. {monkeybot_cli-0.13.0 → monkeybot_cli-0.13.2}/tests/test_opensandbox_lifecycle.py +0 -0
  90. {monkeybot_cli-0.13.0 → monkeybot_cli-0.13.2}/tests/test_realtime_session_controller.py +0 -0
  91. {monkeybot_cli-0.13.0 → monkeybot_cli-0.13.2}/tests/test_run_cmd.py +0 -0
  92. {monkeybot_cli-0.13.0 → monkeybot_cli-0.13.2}/tests/test_runtime_python.py +0 -0
  93. {monkeybot_cli-0.13.0 → monkeybot_cli-0.13.2}/tests/test_scaffold.py +0 -0
  94. {monkeybot_cli-0.13.0 → monkeybot_cli-0.13.2}/tests/test_terminal_markdown.py +0 -0
  95. {monkeybot_cli-0.13.0 → monkeybot_cli-0.13.2}/tests/test_trace_cmd.py +0 -0
  96. {monkeybot_cli-0.13.0 → monkeybot_cli-0.13.2}/uv.lock +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: monkeybot-cli
3
- Version: 0.13.0
3
+ Version: 0.13.2
4
4
  Summary: CLI to create, configure, validate, and chat with monkeybot agents.
5
5
  Requires-Python: >=3.11
6
6
  Requires-Dist: httpx>=0.27.0
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "monkeybot-cli"
7
- version = "0.13.0"
7
+ version = "0.13.2"
8
8
  description = "CLI to create, configure, validate, and chat with monkeybot agents."
9
9
  requires-python = ">=3.11"
10
10
  dependencies = [
@@ -2,7 +2,7 @@
2
2
 
3
3
  Deep reference for every `monkeybot.yaml` section. Load this only when a user needs to customize beyond Tier 1. The canonical, fully-commented template lives at `cli/src/monkeybot_cli/scaffold_defaults/monkeybot.example.yaml` in the monkeybot repo (copied to `monkeybot_config/monkeybot.example.yaml` when you scaffold); this file adds the **"when would I change this?"** context the comments don't.
4
4
 
5
- **Precedence:** env vars and `.env` win over YAML for `ENV_MAP` keys. `model.*` (provider, name, temperature, max_tokens, thinking_budget, reasoning_effort, context_window, summarization_model, max_turns, cache_retention) is YAML-only — leftover `MODEL_*` env vars are ignored. The YAML→env mapping is `ENV_MAP` in `src/monkeybot/core/config/runtime_env.py`. If a YAML edit has no effect, check for a shadowing env var (except `model.*`).
5
+ **Precedence:** env vars and `.env` win over YAML for `ENV_MAP` keys. `model.*` (provider, name, temperature, max_tokens, thinking_budget, reasoning_effort, context_window, max_turns, cache_retention) is YAML-only — leftover `MODEL_*` env vars are ignored. The YAML→env mapping is `ENV_MAP` in `src/monkeybot/core/config/runtime_env.py`. If a YAML edit has no effect, check for a shadowing env var (except `model.*`).
6
6
 
7
7
  ---
8
8
 
@@ -34,7 +34,7 @@ Validate check ids: `paths.agent_md.exists`, `paths.skills_path.exists`, `paths.
34
34
 
35
35
  ## `model`
36
36
 
37
- YAML-only for provider, name, sampling, context window, summarization model, max turns, and cache retention. Leftover `MODEL_*` / `MAX_TURNS` / `CONTEXT_SUMMARIZATION_MODEL` env vars are ignored.
37
+ YAML-only for provider, name, sampling, context window, max turns, and cache retention. Leftover `MODEL_*` / `MAX_TURNS` env vars are ignored. History summarization and chat titles use `name`. A leftover `summarization_model` key is ignored.
38
38
 
39
39
  | Field | Default | When to change |
40
40
  |---|---|---|
@@ -48,7 +48,6 @@ YAML-only for provider, name, sampling, context window, summarization model, max
48
48
  | `keep_alive` | `24h` (ollama-local only) | How long local Ollama keeps the model (and KV prefix cache) loaded. YAML only. Set `"0"` to omit. See `docs/ollama-local.md` |
49
49
  | `num_ctx` | (unset) | Optional pinned Ollama `num_ctx`. YAML only. Omit = server default. Do not copy `context_window` |
50
50
  | `max_turns` | `1000` | Hard cap on turns per run |
51
- | `summarization_model` | (main model) | Cheaper model for history summarization (YAML-only)
52
51
 
53
52
  Validate check ids: `model.provider.supported`, `model.name.present`. Supported YAML providers: `gemini`/`vertex`, `openai`, `anthropic`, `vertex-claude`, `huggingface`, `ollama-cloud`, `ollama-local`, `ollama`, `aws_bedrock`, `fake`.
54
53
 
@@ -0,0 +1,67 @@
1
+ ---
2
+ name: goal
3
+ description: Create one durable objective that continues across scheduled turns until evidence proves it is done.
4
+ ---
5
+
6
+ # Goal
7
+
8
+ Use this skill only when the user explicitly invokes `/goal` with an objective
9
+ that may require multiple turns.
10
+
11
+ A goal is complete only when current evidence proves every requirement of the
12
+ objective. Stopping a turn, running out of time, or having a plausible answer
13
+ does not finish it.
14
+
15
+ There is no deadline that finishes the work. The goal stays active across turns
16
+ until the end state is true, or until a budget pause or a persistent failure
17
+ stops the ticks. A budget pause is not completion. The objective stays intact
18
+ and the user can resume it.
19
+
20
+ ## Start
21
+
22
+ 1. Preserve the user's complete objective without narrowing its scope.
23
+ 2. Call `create_goal` exactly once with that objective.
24
+ 3. Do the first concrete increment of work in the same turn.
25
+ 4. Keep the returned goal id. Every `update_goal` call must include it.
26
+
27
+ ## Continue
28
+
29
+ - Goal continuations are scheduled automatically. A webhook can also wake the goal.
30
+ - Treat the stored objective as authoritative. Do not shrink it to work already done.
31
+ - Make measurable progress. Verify results before you even consider completion.
32
+ - Temporary session-busy deferrals are normal and are not goal failures.
33
+ - Persistent execution failures stop the goal after the retry limit.
34
+ - Using up the tick or runtime budget pauses the goal. It does not complete it.
35
+
36
+ ## Waiting
37
+
38
+ If you are blocked on a person or an external event (review, approval, CI, a
39
+ publish), call `update_goal` with `status="waiting"`, the goal id, and a
40
+ `reason`. Pass `recheck_after` (for example `2h`) only when you should look
41
+ again even if no event arrives. Do not keep waking on the timer while blocked.
42
+ You cannot pause a goal. That is the user's control.
43
+
44
+ ## Complete
45
+
46
+ Before `update_goal` with `status="complete"`, completion is unproven. In a
47
+ separate step, after the evidence tool calls:
48
+
49
+ 1. Pull concrete requirements out of the objective and anything it points at
50
+ (files, plans, specs, issues, instructions). Do not shrink the original scope.
51
+ 2. For each requirement, name the evidence that would prove it, then look at
52
+ the current state: files, command output, tests, pull-request state, rendered
53
+ UI, runtime behavior.
54
+ 3. Judge each item as `proved`, `contradicted`, `incomplete`, `too_weak`, or
55
+ `missing`. A green test counts only if it covers that requirement. Uncertain
56
+ or indirect evidence is not done.
57
+ 4. The audit has to prove completion. Failing to notice leftover work is not enough.
58
+
59
+ Intent, partial progress, memory of earlier turns, and a reasonable-sounding
60
+ answer are not proof.
61
+
62
+ Call `update_goal` with `status="complete"` and an `audit` array only after
63
+ every item is `proved` and no required work remains. The call must be its own
64
+ step so the transcript already contains the evidence. Ending the turn does not
65
+ call `update_goal`. The goal stays active and the full objective stays intact.
66
+
67
+ `status="active"` is only for resuming a goal the user paused.
@@ -4,7 +4,7 @@
4
4
  #
5
5
  # Precedence: environment variables (and optional root `.env`) win over values here
6
6
  # except ``model.*`` (provider, name, temperature, max_tokens, thinking_budget,
7
- # reasoning_effort, context_window, summarization_model, max_turns, cache_retention)
7
+ # reasoning_effort, context_window, max_turns, cache_retention)
8
8
  # which are YAML-only.
9
9
  #
10
10
  # Secrets are not committed here. Create a `.env` in the repo root when you need keys or
@@ -111,8 +111,6 @@ model:
111
111
  max_turns: 1000
112
112
  # Prompt-cache session hints: none | short | long (YAML-only)
113
113
  # cache_retention: short
114
- # Optional cheaper model for sync history summarization; omit = main model
115
- # summarization_model: gemini-3-flash
116
114
  # Ollama-local only (YAML). Default 24h so the KV prefix cache survives idle.
117
115
  # Set "0" to omit. Distinct from the Ollama daemon env OLLAMA_KEEP_ALIVE.
118
116
  # keep_alive: 24h
@@ -1,31 +0,0 @@
1
- ---
2
- name: goal
3
- description: Create one durable objective that continues across scheduled turns until completed.
4
- ---
5
-
6
- # Goal
7
-
8
- Use this skill only when the user explicitly invokes `/goal` with an objective
9
- that may require multiple turns.
10
-
11
- ## Start
12
-
13
- 1. Preserve the user's complete objective without narrowing its scope.
14
- 2. Call `create_goal` exactly once with that objective.
15
- 3. Do the first concrete increment of work in the same turn.
16
- 4. Keep the returned goal id; every `update_goal` call must include it.
17
-
18
- ## Continue
19
-
20
- - Goal continuations are scheduled automatically.
21
- - Treat the stored objective as authoritative.
22
- - Make measurable progress and verify results before declaring completion.
23
- - Temporary session-busy deferrals are normal and are not goal failures.
24
- - Persistent execution failures stop the goal after the retry limit so it
25
- cannot consume resources indefinitely.
26
-
27
- ## Complete
28
-
29
- Call `update_goal` with the returned `goal_id` and `status="complete"` only
30
- after evidence proves every requirement is satisfied. Otherwise leave the goal
31
- active. Use the `/goals` control plane to pause, resume, or stop it manually.
File without changes