copper-pilot-cli 0.1.6__tar.gz → 0.1.8__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 (148) hide show
  1. {copper_pilot_cli-0.1.6 → copper_pilot_cli-0.1.8}/.gitignore +2 -0
  2. {copper_pilot_cli-0.1.6 → copper_pilot_cli-0.1.8}/CONTRIBUTING.md +1 -1
  3. copper_pilot_cli-0.1.8/HISTORY.md +217 -0
  4. {copper_pilot_cli-0.1.6 → copper_pilot_cli-0.1.8}/PKG-INFO +21 -10
  5. {copper_pilot_cli-0.1.6 → copper_pilot_cli-0.1.8}/README.md +15 -5
  6. copper_pilot_cli-0.1.8/VERSION +1 -0
  7. {copper_pilot_cli-0.1.6 → copper_pilot_cli-0.1.8}/docs/cli.md +56 -5
  8. {copper_pilot_cli-0.1.6 → copper_pilot_cli-0.1.8}/docs/development.md +41 -1
  9. {copper_pilot_cli-0.1.6 → copper_pilot_cli-0.1.8}/docs/harness.md +18 -6
  10. copper_pilot_cli-0.1.8/examples/.gitignore +14 -0
  11. {copper_pilot_cli-0.1.6 → copper_pilot_cli-0.1.8}/examples/001_esp32/.copperpilot/TOOLS.md +1 -1
  12. {copper_pilot_cli-0.1.6 → copper_pilot_cli-0.1.8}/examples/001_esp32/README.md +1 -1
  13. copper_pilot_cli-0.1.8/examples/002_cm5_camera/.copperpilot/PLANS.md +5 -0
  14. copper_pilot_cli-0.1.8/examples/002_cm5_camera/.copperpilot/README.md +33 -0
  15. copper_pilot_cli-0.1.8/examples/002_cm5_camera/.copperpilot/plans/cm5-camera-carrier.plan.md +457 -0
  16. copper_pilot_cli-0.1.8/examples/002_cm5_camera/.gitignore +16 -0
  17. copper_pilot_cli-0.1.8/examples/002_cm5_camera/README.md +195 -0
  18. copper_pilot_cli-0.1.8/examples/002_cm5_camera/assembly_spec.json +2984 -0
  19. copper_pilot_cli-0.1.8/examples/002_cm5_camera/cm5_camera/3dmodels/CM4.step +3981 -0
  20. copper_pilot_cli-0.1.8/examples/002_cm5_camera/cm5_camera/3dmodels/CM5.step +3981 -0
  21. copper_pilot_cli-0.1.8/examples/002_cm5_camera/cm5_camera/3dmodels/Camera_IMX219-D160.step +3827 -0
  22. copper_pilot_cli-0.1.8/examples/002_cm5_camera/cm5_camera/3dmodels/USB_A_Molex_105057-0001_Vertical.wrl +15 -0
  23. copper_pilot_cli-0.1.8/examples/002_cm5_camera/cm5_camera/3dmodels/USB_A_vertical.step +1521 -0
  24. copper_pilot_cli-0.1.8/examples/002_cm5_camera/cm5_camera/CM5.3dshapes/5033981892.stp +49696 -0
  25. copper_pilot_cli-0.1.8/examples/002_cm5_camera/cm5_camera/CM5.3dshapes/DF40C-100DS.stp +96700 -0
  26. copper_pilot_cli-0.1.8/examples/002_cm5_camera/cm5_camera/CM5.3dshapes/JTHDA-19F08.STEP +76711 -0
  27. copper_pilot_cli-0.1.8/examples/002_cm5_camera/cm5_camera/CM5.3dshapes/SRP5030CC.stp +2943 -0
  28. copper_pilot_cli-0.1.8/examples/002_cm5_camera/cm5_camera/cm5_camera.kicad_dru +4 -0
  29. copper_pilot_cli-0.1.8/examples/002_cm5_camera/cm5_camera/cm5_camera.kicad_pcb +49990 -0
  30. copper_pilot_cli-0.1.8/examples/002_cm5_camera/cm5_camera/cm5_camera.kicad_pro +600 -0
  31. copper_pilot_cli-0.1.8/examples/002_cm5_camera/cm5_camera/cm5_camera.kicad_sch +23368 -0
  32. copper_pilot_cli-0.1.8/examples/002_cm5_camera/cm5_camera/cm5_camera.kicad_sym +15922 -0
  33. copper_pilot_cli-0.1.8/examples/002_cm5_camera/cm5_camera/cm5_camera.png +0 -0
  34. copper_pilot_cli-0.1.8/examples/002_cm5_camera/cm5_camera/cm5_camera.pretty/C_0402_1005Metric.kicad_mod +379 -0
  35. copper_pilot_cli-0.1.8/examples/002_cm5_camera/cm5_camera/cm5_camera.pretty/C_0805_2012Metric.kicad_mod +379 -0
  36. copper_pilot_cli-0.1.8/examples/002_cm5_camera/cm5_camera/cm5_camera.pretty/Camera_Module_IMX219-D160.kicad_mod +388 -0
  37. copper_pilot_cli-0.1.8/examples/002_cm5_camera/cm5_camera/cm5_camera.pretty/Crystal_SMD_3225-4Pin_3.2x2.5mm.kicad_mod +373 -0
  38. copper_pilot_cli-0.1.8/examples/002_cm5_camera/cm5_camera/cm5_camera.pretty/HDMI_Mini-C_Molex_47151-0001.kicad_mod +415 -0
  39. copper_pilot_cli-0.1.8/examples/002_cm5_camera/cm5_camera/cm5_camera.pretty/LED_0603_1608Metric.kicad_mod +373 -0
  40. copper_pilot_cli-0.1.8/examples/002_cm5_camera/cm5_camera/cm5_camera.pretty/L_Bourns_SRP5030CC.kicad_mod +503 -0
  41. copper_pilot_cli-0.1.8/examples/002_cm5_camera/cm5_camera/cm5_camera.pretty/L_CommonModeChoke_Coilank_ACM1210.kicad_mod +143 -0
  42. copper_pilot_cli-0.1.8/examples/002_cm5_camera/cm5_camera/cm5_camera.pretty/MOLEX_USB_67298-4090.kicad_mod +310 -0
  43. copper_pilot_cli-0.1.8/examples/002_cm5_camera/cm5_camera/cm5_camera.pretty/Molex_200528-0150_1x15-1MP_P1.00mm_Horizontal.kicad_mod +428 -0
  44. copper_pilot_cli-0.1.8/examples/002_cm5_camera/cm5_camera/cm5_camera.pretty/PinHeader_1x03_P2.54mm_Vertical.kicad_mod +317 -0
  45. copper_pilot_cli-0.1.8/examples/002_cm5_camera/cm5_camera/cm5_camera.pretty/PinHeader_2x20_P2.54mm_Vertical.kicad_mod +470 -0
  46. copper_pilot_cli-0.1.8/examples/002_cm5_camera/cm5_camera/cm5_camera.pretty/R_0402_1005Metric.kicad_mod +379 -0
  47. copper_pilot_cli-0.1.8/examples/002_cm5_camera/cm5_camera/cm5_camera.pretty/R_0603_1608Metric.kicad_mod +260 -0
  48. copper_pilot_cli-0.1.8/examples/002_cm5_camera/cm5_camera/cm5_camera.pretty/Raspberry-Pi-4-Compute-Module.kicad_mod +1646 -0
  49. copper_pilot_cli-0.1.8/examples/002_cm5_camera/cm5_camera/cm5_camera.pretty/SDCARD_MOLEX_503398-1892.kicad_mod +489 -0
  50. copper_pilot_cli-0.1.8/examples/002_cm5_camera/cm5_camera/cm5_camera.pretty/SOT-23-5.kicad_mod +442 -0
  51. copper_pilot_cli-0.1.8/examples/002_cm5_camera/cm5_camera/cm5_camera.pretty/SW_SPST_PTS645Sx43SMTR92.kicad_mod +281 -0
  52. copper_pilot_cli-0.1.8/examples/002_cm5_camera/cm5_camera/cm5_camera.pretty/TSOT-23-6.kicad_mod +289 -0
  53. copper_pilot_cli-0.1.8/examples/002_cm5_camera/cm5_camera/cm5_camera.pretty/Texas_DRT-3.kicad_mod +310 -0
  54. copper_pilot_cli-0.1.8/examples/002_cm5_camera/cm5_camera/cm5_camera.pretty/UQFN-10_1.4x1.8mm_P0.4mm.kicad_mod +403 -0
  55. copper_pilot_cli-0.1.8/examples/002_cm5_camera/cm5_camera/cm5_camera.pretty/USB_C_Receptacle_GCT_USB4105-xx-A_16P_TopMnt_Horizontal.kicad_mod +338 -0
  56. copper_pilot_cli-0.1.8/examples/002_cm5_camera/cm5_camera/cm5_camera_bottom.png +0 -0
  57. copper_pilot_cli-0.1.8/examples/002_cm5_camera/cm5_camera/fp-lib-table +4 -0
  58. copper_pilot_cli-0.1.8/examples/002_cm5_camera/cm5_camera/sym-lib-table +4 -0
  59. copper_pilot_cli-0.1.8/examples/002_cm5_camera/generate_3d_models.py +116 -0
  60. copper_pilot_cli-0.1.8/examples/002_cm5_camera/helper.py +2174 -0
  61. copper_pilot_cli-0.1.8/examples/002_cm5_camera/main.py +250 -0
  62. {copper_pilot_cli-0.1.6 → copper_pilot_cli-0.1.8}/plugins/copper-pilot/agents/copper-pilot.md +2 -0
  63. {copper_pilot_cli-0.1.6 → copper_pilot_cli-0.1.8}/pyproject.toml +7 -5
  64. copper_pilot_cli-0.1.8/src/copper_pilot_cli/copper_api.py +77 -0
  65. {copper_pilot_cli-0.1.6 → copper_pilot_cli-0.1.8}/src/copper_pilot_cli/copper_app.py +145 -15
  66. {copper_pilot_cli-0.1.6 → copper_pilot_cli-0.1.8}/src/copper_pilot_cli/copper_auth.py +2 -1
  67. {copper_pilot_cli-0.1.6 → copper_pilot_cli-0.1.8}/src/copper_pilot_cli/copper_graph.py +43 -4
  68. {copper_pilot_cli-0.1.6 → copper_pilot_cli-0.1.8}/src/copper_pilot_cli/copper_main.py +42 -5
  69. {copper_pilot_cli-0.1.6 → copper_pilot_cli-0.1.8}/src/copper_pilot_cli/copper_mcp.py +89 -8
  70. {copper_pilot_cli-0.1.6 → copper_pilot_cli-0.1.8}/src/copper_pilot_cli/copper_protocol.py +127 -18
  71. copper_pilot_cli-0.1.8/src/copper_pilot_cli/copper_status_events.py +76 -0
  72. {copper_pilot_cli-0.1.6 → copper_pilot_cli-0.1.8}/src/copper_pilot_cli/copper_widgets.py +18 -1
  73. {copper_pilot_cli-0.1.6 → copper_pilot_cli-0.1.8}/src/copper_pilot_cli/deepagents_tools.py +5 -6
  74. {copper_pilot_cli-0.1.6 → copper_pilot_cli-0.1.8}/src/copper_pilot_cli/langchain.py +9 -0
  75. {copper_pilot_cli-0.1.6 → copper_pilot_cli-0.1.8}/src/copper_pilot_cli/sessions.py +3 -3
  76. {copper_pilot_cli-0.1.6 → copper_pilot_cli-0.1.8}/tests/test_auth.py +2 -0
  77. copper_pilot_cli-0.1.8/tests/test_cm5_camera_example.py +688 -0
  78. copper_pilot_cli-0.1.8/tests/test_copper_api.py +63 -0
  79. {copper_pilot_cli-0.1.6 → copper_pilot_cli-0.1.8}/tests/test_langchain.py +21 -2
  80. {copper_pilot_cli-0.1.6 → copper_pilot_cli-0.1.8}/tests/test_main.py +15 -1
  81. {copper_pilot_cli-0.1.6 → copper_pilot_cli-0.1.8}/tests/test_mcp.py +84 -2
  82. {copper_pilot_cli-0.1.6 → copper_pilot_cli-0.1.8}/tests/test_protocol.py +129 -0
  83. {copper_pilot_cli-0.1.6 → copper_pilot_cli-0.1.8}/tests/test_release_gates.py +15 -2
  84. {copper_pilot_cli-0.1.6 → copper_pilot_cli-0.1.8}/tests/test_sessions.py +71 -2
  85. copper_pilot_cli-0.1.8/tests/test_status_events.py +51 -0
  86. {copper_pilot_cli-0.1.6 → copper_pilot_cli-0.1.8}/tests/test_tools.py +29 -0
  87. {copper_pilot_cli-0.1.6 → copper_pilot_cli-0.1.8}/tests/test_tui.py +188 -7
  88. copper_pilot_cli-0.1.6/HISTORY.md +0 -62
  89. copper_pilot_cli-0.1.6/VERSION +0 -1
  90. copper_pilot_cli-0.1.6/src/copper_pilot_cli/copper_api.py +0 -24
  91. {copper_pilot_cli-0.1.6 → copper_pilot_cli-0.1.8}/.claude-plugin/marketplace.json +0 -0
  92. {copper_pilot_cli-0.1.6 → copper_pilot_cli-0.1.8}/CODE_OF_CONDUCT.md +0 -0
  93. {copper_pilot_cli-0.1.6 → copper_pilot_cli-0.1.8}/LICENSE +0 -0
  94. {copper_pilot_cli-0.1.6 → copper_pilot_cli-0.1.8}/NOTICE +0 -0
  95. {copper_pilot_cli-0.1.6 → copper_pilot_cli-0.1.8}/SECURITY.md +0 -0
  96. {copper_pilot_cli-0.1.6 → copper_pilot_cli-0.1.8}/SUPPORT.md +0 -0
  97. {copper_pilot_cli-0.1.6 → copper_pilot_cli-0.1.8}/UPSTREAM.md +0 -0
  98. {copper_pilot_cli-0.1.6 → copper_pilot_cli-0.1.8}/docs/assets/esp32-mini-1-h4.gif +0 -0
  99. {copper_pilot_cli-0.1.6 → copper_pilot_cli-0.1.8}/docs/assets/logo-dark.png +0 -0
  100. {copper_pilot_cli-0.1.6 → copper_pilot_cli-0.1.8}/docs/assets/logo-light.png +0 -0
  101. {copper_pilot_cli-0.1.6 → copper_pilot_cli-0.1.8}/docs/assets/logo.png +0 -0
  102. {copper_pilot_cli-0.1.6 → copper_pilot_cli-0.1.8}/examples/001_esp32/.copperpilot/PLANS.md +0 -0
  103. {copper_pilot_cli-0.1.6 → copper_pilot_cli-0.1.8}/examples/001_esp32/.copperpilot/README.md +0 -0
  104. {copper_pilot_cli-0.1.6 → copper_pilot_cli-0.1.8}/examples/001_esp32/.copperpilot/plans/esp32-dev-board.plan.md +0 -0
  105. {copper_pilot_cli-0.1.6 → copper_pilot_cli-0.1.8}/examples/001_esp32/.gitignore +0 -0
  106. {copper_pilot_cli-0.1.6 → copper_pilot_cli-0.1.8}/examples/001_esp32/esp32/3d-models/SW-SMD_L3.9-W2.9-H2.0-LS4.8.step +0 -0
  107. {copper_pilot_cli-0.1.6 → copper_pilot_cli-0.1.8}/examples/001_esp32/esp32/3d-models/TYPE-C-31-M-12.step +0 -0
  108. {copper_pilot_cli-0.1.6 → copper_pilot_cli-0.1.8}/examples/001_esp32/esp32/esp32.kicad_pcb +0 -0
  109. {copper_pilot_cli-0.1.6 → copper_pilot_cli-0.1.8}/examples/001_esp32/esp32/esp32.kicad_pro +0 -0
  110. {copper_pilot_cli-0.1.6 → copper_pilot_cli-0.1.8}/examples/001_esp32/esp32/esp32.kicad_sch +0 -0
  111. {copper_pilot_cli-0.1.6 → copper_pilot_cli-0.1.8}/examples/001_esp32/esp32/esp32.png +0 -0
  112. {copper_pilot_cli-0.1.6 → copper_pilot_cli-0.1.8}/examples/001_esp32/helper.py +0 -0
  113. {copper_pilot_cli-0.1.6 → copper_pilot_cli-0.1.8}/examples/001_esp32/main.py +0 -0
  114. {copper_pilot_cli-0.1.6 → copper_pilot_cli-0.1.8}/plugins/copper-pilot/.claude-plugin/plugin.json +0 -0
  115. {copper_pilot_cli-0.1.6 → copper_pilot_cli-0.1.8}/plugins/copper-pilot/.mcp.json +0 -0
  116. {copper_pilot_cli-0.1.6 → copper_pilot_cli-0.1.8}/plugins/copper-pilot/skills/copper-pilot-review/SKILL.md +0 -0
  117. {copper_pilot_cli-0.1.6 → copper_pilot_cli-0.1.8}/skills/copper-pilot-review/SKILL.md +0 -0
  118. {copper_pilot_cli-0.1.6 → copper_pilot_cli-0.1.8}/src/copper_pilot_cli/__init__.py +0 -0
  119. {copper_pilot_cli-0.1.6 → copper_pilot_cli-0.1.8}/src/copper_pilot_cli/__main__.py +0 -0
  120. {copper_pilot_cli-0.1.6 → copper_pilot_cli-0.1.8}/src/copper_pilot_cli/_upstream/__init__.py +0 -0
  121. {copper_pilot_cli-0.1.6 → copper_pilot_cli-0.1.8}/src/copper_pilot_cli/_upstream/dcode_0_1_69/PROVENANCE.json +0 -0
  122. {copper_pilot_cli-0.1.6 → copper_pilot_cli-0.1.8}/src/copper_pilot_cli/_upstream/dcode_0_1_69/__init__.py +0 -0
  123. {copper_pilot_cli-0.1.6 → copper_pilot_cli-0.1.8}/src/copper_pilot_cli/_upstream/dcode_0_1_69/diff_utils.py +0 -0
  124. {copper_pilot_cli-0.1.6 → copper_pilot_cli-0.1.8}/src/copper_pilot_cli/_version.py +0 -0
  125. {copper_pilot_cli-0.1.6 → copper_pilot_cli-0.1.8}/src/copper_pilot_cli/clipboard.py +0 -0
  126. {copper_pilot_cli-0.1.6 → copper_pilot_cli-0.1.8}/src/copper_pilot_cli/copper_config.py +0 -0
  127. {copper_pilot_cli-0.1.6 → copper_pilot_cli-0.1.8}/src/copper_pilot_cli/copper_features.py +0 -0
  128. {copper_pilot_cli-0.1.6 → copper_pilot_cli-0.1.8}/src/copper_pilot_cli/copper_hooks.py +0 -0
  129. {copper_pilot_cli-0.1.6 → copper_pilot_cli-0.1.8}/src/copper_pilot_cli/copper_preferences.py +0 -0
  130. {copper_pilot_cli-0.1.6 → copper_pilot_cli-0.1.8}/src/copper_pilot_cli/copper_presentation.py +0 -0
  131. {copper_pilot_cli-0.1.6 → copper_pilot_cli-0.1.8}/src/copper_pilot_cli/copper_theme.py +0 -0
  132. {copper_pilot_cli-0.1.6 → copper_pilot_cli-0.1.8}/src/copper_pilot_cli/copper_tools.py +0 -0
  133. {copper_pilot_cli-0.1.6 → copper_pilot_cli-0.1.8}/src/copper_pilot_cli/copper_update.py +0 -0
  134. {copper_pilot_cli-0.1.6 → copper_pilot_cli-0.1.8}/src/copper_pilot_cli/copper_workspace.py +0 -0
  135. {copper_pilot_cli-0.1.6 → copper_pilot_cli-0.1.8}/src/copper_pilot_cli/diagnostics.py +0 -0
  136. {copper_pilot_cli-0.1.6 → copper_pilot_cli-0.1.8}/src/copper_pilot_cli/media_utils.py +0 -0
  137. {copper_pilot_cli-0.1.6 → copper_pilot_cli-0.1.8}/src/copper_pilot_cli/py.typed +0 -0
  138. {copper_pilot_cli-0.1.6 → copper_pilot_cli-0.1.8}/src/copper_pilot_cli/textual_patches.py +0 -0
  139. {copper_pilot_cli-0.1.6 → copper_pilot_cli-0.1.8}/tests/test_clipboard.py +0 -0
  140. {copper_pilot_cli-0.1.6 → copper_pilot_cli-0.1.8}/tests/test_e2e.py +0 -0
  141. {copper_pilot_cli-0.1.6 → copper_pilot_cli-0.1.8}/tests/test_esp32_example.py +0 -0
  142. {copper_pilot_cli-0.1.6 → copper_pilot_cli-0.1.8}/tests/test_features.py +0 -0
  143. {copper_pilot_cli-0.1.6 → copper_pilot_cli-0.1.8}/tests/test_live_chat_e2e.py +0 -0
  144. {copper_pilot_cli-0.1.6 → copper_pilot_cli-0.1.8}/tests/test_plugin_manifest.py +0 -0
  145. {copper_pilot_cli-0.1.6 → copper_pilot_cli-0.1.8}/tests/test_preferences.py +0 -0
  146. {copper_pilot_cli-0.1.6 → copper_pilot_cli-0.1.8}/tests/test_presentation.py +0 -0
  147. {copper_pilot_cli-0.1.6 → copper_pilot_cli-0.1.8}/tests/test_upstream_provenance.py +0 -0
  148. {copper_pilot_cli-0.1.6 → copper_pilot_cli-0.1.8}/tests/test_workspace.py +0 -0
@@ -7,3 +7,5 @@ __pycache__/
7
7
  .venv/
8
8
  dist/
9
9
  build/
10
+
11
+ .DS_Store
@@ -8,7 +8,7 @@ CopperPilot agent. It is not the desktop app or the hosted backend.
8
8
 
9
9
  ## Prerequisites
10
10
 
11
- - Python 3.12 or newer
11
+ - Python 3.11 or newer
12
12
  - [pip](https://pip.pypa.io/en/stable/)
13
13
  - [make](https://www.gnu.org/software/make/) (optional; the same commands are
14
14
  listed below)
@@ -0,0 +1,217 @@
1
+ Changelog
2
+ =========
3
+
4
+
5
+ (unreleased)
6
+ ------------
7
+
8
+ Fix
9
+ ~~~
10
+ - Annotate async context managers for ty 0.0.87. [AdityaNG]
11
+
12
+ CI resolves the unpinned ty dependency to 0.0.87, which rejects AsyncIterator returns on asynccontextmanager.
13
+ - Upgrade the pinned Deep Agents runtime to 0.7.19. [AdityaNG]
14
+
15
+ Keep the exact runtime pin while picking up the filesystem and media-handling fixes from 0.7.14.
16
+ - Align the CLI with hosted usage limits. [AdityaNG]
17
+
18
+ Keep blocked turns machine-readable, shrink oversized resumed chats to the desktop frame budget, and report the installed client version.
19
+
20
+ Other
21
+ ~~~~~
22
+ - Merge pull request #16 from CopperPilot/update/14_oct_2026. [Aditya]
23
+
24
+ Add Intelligence effort, hosted survey workers, and modal keyboard focus
25
+ - Fix(tests/test_tui.py) [AdityaNG]
26
+ - Feat(src/copper_pilot_cli/copper_status_events.py) [AdityaNG]
27
+ - Merge pull request #3 from
28
+ CopperPilot/dependabot/github_actions/softprops/action-gh-release-3.
29
+ [Aditya]
30
+
31
+ build(deps): bump softprops/action-gh-release from 2 to 3
32
+ - Build(deps): bump softprops/action-gh-release from 2 to 3.
33
+ [dependabot[bot]]
34
+
35
+ Bumps [softprops/action-gh-release](https://github.com/softprops/action-gh-release) from 2 to 3.
36
+ - [Release notes](https://github.com/softprops/action-gh-release/releases)
37
+ - [Changelog](https://github.com/softprops/action-gh-release/blob/master/CHANGELOG.md)
38
+ - [Commits](https://github.com/softprops/action-gh-release/compare/v2...v3)
39
+
40
+ ---
41
+ updated-dependencies:
42
+ - dependency-name: softprops/action-gh-release
43
+ dependency-version: '3'
44
+ dependency-type: direct:production
45
+ update-type: version-update:semver-major
46
+ ...
47
+ - Merge pull request #4 from CopperPilot/dependabot/pip/websockets-
48
+ gte-15-and-lt-18. [Aditya]
49
+
50
+ build(deps): update websockets requirement from <17,>=15 to >=15,<18
51
+ - Build(deps): update websockets requirement from <17,>=15 to >=15,<18.
52
+ [dependabot[bot]]
53
+
54
+ Updates the requirements on [websockets](https://github.com/python-websockets/websockets) to permit the latest version.
55
+ - [Release notes](https://github.com/python-websockets/websockets/releases)
56
+ - [Commits](https://github.com/python-websockets/websockets/compare/15.0...17.1)
57
+
58
+ ---
59
+ updated-dependencies:
60
+ - dependency-name: websockets
61
+ dependency-version: '17.1'
62
+ dependency-type: direct:production
63
+ ...
64
+ - Merge pull request #5 from CopperPilot/dependabot/pip/uuid-utils-
65
+ gte-0.12-and-lt-2. [Aditya]
66
+
67
+ build(deps): update uuid-utils requirement from <1,>=0.12 to >=0.12,<2
68
+ - Build(deps): update uuid-utils requirement from <1,>=0.12 to
69
+ >=0.12,<2. [dependabot[bot]]
70
+
71
+ Updates the requirements on [uuid-utils](https://github.com/aminalaee/uuid-utils) to permit the latest version.
72
+ - [Release notes](https://github.com/aminalaee/uuid-utils/releases)
73
+ - [Commits](https://github.com/aminalaee/uuid-utils/compare/0.12.0...1.0.0)
74
+
75
+ ---
76
+ updated-dependencies:
77
+ - dependency-name: uuid-utils
78
+ dependency-version: 1.0.0
79
+ dependency-type: direct:production
80
+ ...
81
+ - Merge pull request #2 from
82
+ CopperPilot/dependabot/github_actions/actions/setup-python-7. [Aditya]
83
+
84
+ build(deps): bump actions/setup-python from 5 to 7
85
+ - Build(deps): bump actions/setup-python from 5 to 7. [dependabot[bot]]
86
+
87
+ Bumps [actions/setup-python](https://github.com/actions/setup-python) from 5 to 7.
88
+ - [Release notes](https://github.com/actions/setup-python/releases)
89
+ - [Commits](https://github.com/actions/setup-python/compare/v5...v7)
90
+
91
+ ---
92
+ updated-dependencies:
93
+ - dependency-name: actions/setup-python
94
+ dependency-version: '7'
95
+ dependency-type: direct:production
96
+ update-type: version-update:semver-major
97
+ ...
98
+ - Merge pull request #13 from
99
+ CopperPilot/update/deepagents_0_7_19_3_oct. [Aditya]
100
+
101
+ Upgrade the pinned Deep Agents runtime to 0.7.19
102
+ - Merge pull request #1 from
103
+ CopperPilot/dependabot/github_actions/actions/checkout-7. [Aditya]
104
+
105
+ build(deps): bump actions/checkout from 4 to 7
106
+ - Build(deps): bump actions/checkout from 4 to 7. [dependabot[bot]]
107
+
108
+ Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 7.
109
+ - [Release notes](https://github.com/actions/checkout/releases)
110
+ - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
111
+ - [Commits](https://github.com/actions/checkout/compare/v4...v7)
112
+
113
+ ---
114
+ updated-dependencies:
115
+ - dependency-name: actions/checkout
116
+ dependency-version: '7'
117
+ dependency-type: direct:production
118
+ update-type: version-update:semver-major
119
+ ...
120
+ - Merge pull request #12 from
121
+ CopperPilot/update/contract_alignment_3_oct. [Aditya]
122
+
123
+ Align the CLI with hosted usage limits
124
+
125
+
126
+ 0.1.7 (2026-10-03)
127
+ ------------------
128
+ - Release: version 0.1.7 🚀 [AdityaNG]
129
+ - Merge pull request #11 from
130
+ CopperPilot/feat/python_versions_support_expansion. [Aditya]
131
+
132
+ Support Python 3.11 and future releases
133
+ - Ci: probe Python 3.15 weekly instead of on pull requests. [AdityaNG]
134
+
135
+ Keep the upstream install failure visible without turning required pull request checks red.
136
+ - Feat(py11) [AdityaNG]
137
+ - Merge pull request #7 from CopperPilot/feat/example_002_cm5_camera.
138
+ [Aditya]
139
+
140
+ feat(examples/002_cm5_camera): add 3D pose audit and generated carrier
141
+ - Fix(examples/002_cm5_camera): render the README PCB as a dimetric 3D
142
+ view. [AdityaNG, Cursor]
143
+
144
+ Use an orthogonal high-quality camera with a slight isometric tilt so the
145
+ hero PNG shows connector height instead of a flat top-down shot.
146
+ - Fix(examples/002_cm5_camera): skip library dirs relative to the
147
+ workspace. [AdityaNG, Cursor]
148
+
149
+ Absolute path parts named tmp (Linux /tmp pytest roots) were skipping the
150
+ entire haystack, so libraries_ready failed on Ubuntu CI.
151
+ - Feat(examples/002_cm5_camera): add 3D pose audit and generated
152
+ carrier. [AdityaNG, Cursor]
153
+
154
+ Lock connector 3D offsets, Module1 pad orientation, and the generated
155
+ KiCad project so the example reproduces NANO-C assembly parity.
156
+ - Feat(examples/002_cm5_camera/main.py): new example. [AdityaNG]
157
+
158
+
159
+ 0.1.6 (2026-09-18)
160
+ ------------------
161
+ - Release: version 0.1.6 🚀 [AdityaNG]
162
+ - Merge pull request #6 from CopperPilot/feat/plugins. [Aditya]
163
+
164
+ feat: add MCP conductor and Claude Code plugin
165
+ - Clarify server restrictions in PR template. [Aditya]
166
+
167
+ Updated checklist item to clarify server restrictions.
168
+ - Feat: add MCP conductor and Claude Code plugin. [AdityaNG, Cursor]
169
+
170
+ Let Claude Code, Cursor, and Codex delegate electronics work to the hosted agent via copper-pilot mcp, a portable review skill, and an in-repo plugin.
171
+
172
+
173
+ 0.1.5 (2026-09-17)
174
+ ------------------
175
+ - Release: version 0.1.5 🚀 [AdityaNG]
176
+ - Fix(README.md) [AdityaNG]
177
+
178
+
179
+ 0.1.4 (2026-09-17)
180
+ ------------------
181
+ - Release: version 0.1.4 🚀 [AdityaNG]
182
+ - Fix(tests/test_release_gates.py) [AdityaNG]
183
+
184
+
185
+ 0.1.3 (2026-09-17)
186
+ ------------------
187
+ - Release: version 0.1.3 🚀 [AdityaNG]
188
+ - Docs. [AdityaNG]
189
+
190
+
191
+ 0.1.2 (2026-09-17)
192
+ ------------------
193
+ - Release: version 0.1.2 🚀 [AdityaNG]
194
+ - Ci(pyproject.toml) [AdityaNG]
195
+ - Fix(tests/test_tui.py) [AdityaNG]
196
+
197
+
198
+ 0.1.1 (2026-09-17)
199
+ ------------------
200
+ - Release: version 0.1.1 🚀 [AdityaNG]
201
+
202
+
203
+ 0.1.0 (2026-09-17)
204
+ ------------------
205
+ - Release: version 0.1.0 🚀 [AdityaNG]
206
+ - Fix(tests/test_release_gates.py) [AdityaNG]
207
+ - Test. [AdityaNG]
208
+ - Docs. [AdityaNG]
209
+ - Docs. [AdityaNG]
210
+ - Example(examples/001_esp32/) [AdityaNG]
211
+ - Makefile. [AdityaNG]
212
+ - Ci. [AdityaNG]
213
+ - Docs. [AdityaNG]
214
+ - Refactor(name) [AdityaNG]
215
+ - Init. [AdityaNG]
216
+
217
+
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: copper-pilot-cli
3
- Version: 0.1.6
3
+ Version: 0.1.8
4
4
  Summary: CopperPilot hosted agent for the terminal and LangChain
5
5
  Project-URL: Homepage, https://copperpilot.ai
6
6
  Project-URL: Repository, https://github.com/CopperPilot/copper-pilot-cli
@@ -14,13 +14,14 @@ License-File: NOTICE
14
14
  Classifier: License :: OSI Approved :: MIT License
15
15
  Classifier: Programming Language :: Python :: 3
16
16
  Classifier: Programming Language :: Python :: 3 :: Only
17
+ Classifier: Programming Language :: Python :: 3.11
17
18
  Classifier: Programming Language :: Python :: 3.12
18
19
  Classifier: Programming Language :: Python :: 3.13
19
20
  Classifier: Programming Language :: Python :: 3.14
20
- Requires-Python: <4,>=3.12
21
+ Requires-Python: >=3.11
21
22
  Requires-Dist: aiosqlite<1,>=0.22
22
23
  Requires-Dist: certifi>=2024.8.30
23
- Requires-Dist: deepagents==0.7.14
24
+ Requires-Dist: deepagents==0.7.19
24
25
  Requires-Dist: httpx<1,>=0.28
25
26
  Requires-Dist: langchain-core<2,>=1.6
26
27
  Requires-Dist: langgraph-checkpoint-sqlite<4,>=3.1
@@ -34,8 +35,8 @@ Requires-Dist: pyperclip<2,>=1.11
34
35
  Requires-Dist: pyyaml<7,>=6
35
36
  Requires-Dist: rich<16,>=15
36
37
  Requires-Dist: textual<9,>=8.2.8
37
- Requires-Dist: uuid-utils<1,>=0.12
38
- Requires-Dist: websockets<17,>=15
38
+ Requires-Dist: uuid-utils<2,>=0.12
39
+ Requires-Dist: websockets<18,>=15
39
40
  Provides-Extra: dev
40
41
  Requires-Dist: build<2,>=1.4; extra == 'dev'
41
42
  Requires-Dist: gitchangelog==3.0.4; extra == 'dev'
@@ -86,9 +87,9 @@ CopperPilot in your terminal: a thin, open-source client for CopperPilot electro
86
87
 
87
88
  ## Prerequisites
88
89
 
89
- - Python 3.12 or newer
90
+ - Python 3.11 or newer
90
91
  - A [CopperPilot](https://copperpilot.ai) account for login
91
- - KiCad 10 on `PATH` only if you run [`examples/001_esp32`](examples/001_esp32)
92
+ - KiCad 10 on `PATH` only if you run [`examples/001_esp32`](examples/001_esp32) or [`examples/002_cm5_camera`](examples/002_cm5_camera)
92
93
 
93
94
  ## Install and run
94
95
 
@@ -106,12 +107,18 @@ copper-pilot ./my-board
106
107
  copper-pilot --resume
107
108
  copper-pilot threads list
108
109
  copper-pilot -n -m "Review this board" --json
110
+ copper-pilot --mode plan --effort intelligence -m "Survey and plan this board"
109
111
  ```
110
112
 
111
113
  Both `copper-pilot` and `copper-pilot-cli` run the same program.
112
114
  `copper-pilot --help` lists flags; [docs/cli.md](docs/cli.md) is the full
113
115
  command reference.
114
116
 
117
+ Balanced effort is the default. Paid-plan users can select Intelligence with
118
+ `--effort intelligence` or interactive `/effort`. Intelligence uses
119
+ server-owned survey subagents and shows their lifecycle through the existing
120
+ Deep Agents task rows; Intelligence Plan turns survey before writing a plan.
121
+
115
122
  ## Use from Claude Code, Cursor, or Codex
116
123
 
117
124
  CopperPilot stays the electronics agent. Copy
@@ -146,13 +153,16 @@ the parent directory is mode `0700` and the file is mode `0600`.
146
153
  ## LangChain
147
154
 
148
155
  ```python
149
- from copper_pilot_cli.copper_protocol import CopperMode
156
+ from copper_pilot_cli.copper_protocol import CopperEffort, CopperMode
150
157
  from copper_pilot_cli.langchain import CopperPilotAgent
151
158
  from helper import drc_violations, erc_errors, render_pcb, run
152
159
 
153
160
  PLAN = CopperMode.PLAN
154
161
 
155
- copper_pilot = CopperPilotAgent(workspace="esp32")
162
+ copper_pilot = CopperPilotAgent(
163
+ workspace="esp32",
164
+ effort=CopperEffort.INTELLIGENCE,
165
+ )
156
166
 
157
167
  run(copper_pilot, "Build me an ESP32 dev board.", PLAN)
158
168
  run(copper_pilot, "Let us build this plan.")
@@ -170,7 +180,8 @@ Deep Agent. The compatible `deepagents` runtime is installed and pinned by this
170
180
  package.
171
181
 
172
182
  That snippet is the runnable example in
173
- [`examples/001_esp32`](examples/001_esp32).
183
+ [`examples/001_esp32`](examples/001_esp32). A phased CM5 camera carrier lives in
184
+ [`examples/002_cm5_camera`](examples/002_cm5_camera).
174
185
 
175
186
  ## Security boundary
176
187
 
@@ -36,9 +36,9 @@ CopperPilot in your terminal: a thin, open-source client for CopperPilot electro
36
36
 
37
37
  ## Prerequisites
38
38
 
39
- - Python 3.12 or newer
39
+ - Python 3.11 or newer
40
40
  - A [CopperPilot](https://copperpilot.ai) account for login
41
- - KiCad 10 on `PATH` only if you run [`examples/001_esp32`](examples/001_esp32)
41
+ - KiCad 10 on `PATH` only if you run [`examples/001_esp32`](examples/001_esp32) or [`examples/002_cm5_camera`](examples/002_cm5_camera)
42
42
 
43
43
  ## Install and run
44
44
 
@@ -56,12 +56,18 @@ copper-pilot ./my-board
56
56
  copper-pilot --resume
57
57
  copper-pilot threads list
58
58
  copper-pilot -n -m "Review this board" --json
59
+ copper-pilot --mode plan --effort intelligence -m "Survey and plan this board"
59
60
  ```
60
61
 
61
62
  Both `copper-pilot` and `copper-pilot-cli` run the same program.
62
63
  `copper-pilot --help` lists flags; [docs/cli.md](docs/cli.md) is the full
63
64
  command reference.
64
65
 
66
+ Balanced effort is the default. Paid-plan users can select Intelligence with
67
+ `--effort intelligence` or interactive `/effort`. Intelligence uses
68
+ server-owned survey subagents and shows their lifecycle through the existing
69
+ Deep Agents task rows; Intelligence Plan turns survey before writing a plan.
70
+
65
71
  ## Use from Claude Code, Cursor, or Codex
66
72
 
67
73
  CopperPilot stays the electronics agent. Copy
@@ -96,13 +102,16 @@ the parent directory is mode `0700` and the file is mode `0600`.
96
102
  ## LangChain
97
103
 
98
104
  ```python
99
- from copper_pilot_cli.copper_protocol import CopperMode
105
+ from copper_pilot_cli.copper_protocol import CopperEffort, CopperMode
100
106
  from copper_pilot_cli.langchain import CopperPilotAgent
101
107
  from helper import drc_violations, erc_errors, render_pcb, run
102
108
 
103
109
  PLAN = CopperMode.PLAN
104
110
 
105
- copper_pilot = CopperPilotAgent(workspace="esp32")
111
+ copper_pilot = CopperPilotAgent(
112
+ workspace="esp32",
113
+ effort=CopperEffort.INTELLIGENCE,
114
+ )
106
115
 
107
116
  run(copper_pilot, "Build me an ESP32 dev board.", PLAN)
108
117
  run(copper_pilot, "Let us build this plan.")
@@ -120,7 +129,8 @@ Deep Agent. The compatible `deepagents` runtime is installed and pinned by this
120
129
  package.
121
130
 
122
131
  That snippet is the runnable example in
123
- [`examples/001_esp32`](examples/001_esp32).
132
+ [`examples/001_esp32`](examples/001_esp32). A phased CM5 camera carrier lives in
133
+ [`examples/002_cm5_camera`](examples/002_cm5_camera).
124
134
 
125
135
  ## Security boundary
126
136
 
@@ -0,0 +1 @@
1
+ 0.1.8
@@ -9,7 +9,7 @@ copper-pilot threads --help
9
9
  copper-pilot mcp --help
10
10
  ```
11
11
 
12
- Python 3.12 or newer is required. Install with `pip install copper-pilot-cli`.
12
+ Python 3.11 or newer is required. Install with `pip install copper-pilot-cli`.
13
13
 
14
14
  ## Chat
15
15
 
@@ -30,6 +30,7 @@ valid.
30
30
  | `--no-stream` | Print the final assistant message after the run instead of streaming. |
31
31
  | `--json` | Emit JSON events (or a final JSON document with `--no-stream`). |
32
32
  | `--mode {agent,plan,ask}` | Hosted chat mode. Default: `agent`. |
33
+ | `--effort {balanced,intelligence}` | Hosted effort. Default: `balanced`; Intelligence requires a paid plan. |
33
34
  | `-y`, `--auto-approve` | Auto approval: routine writes and known-safe shell still run; unknown actions prompt. |
34
35
  | `--yolo` | Permit local side effects without prompting. Must be set explicitly. |
35
36
  | `--version` | Print the package version. |
@@ -41,6 +42,7 @@ copper-pilot ./my-board
41
42
  copper-pilot --resume
42
43
  copper-pilot -n -m "Review this board" --json
43
44
  copper-pilot ./my-board --mode plan -m "Propose a power tree"
45
+ copper-pilot ./my-board --mode plan --effort intelligence -m "Survey and plan the power tree"
44
46
  ```
45
47
 
46
48
  Headless mode is also used when `--message` is set and stdout is not a TTY.
@@ -60,15 +62,33 @@ write to stdout; the protocol owns it.
60
62
  | Tool | Role |
61
63
  |------|------|
62
64
  | `status` | Login state and discovered schematic/PCB paths. No hosted call. |
63
- | `ask` | `--mode ask`. Auto approval. Optional `thread_id`. |
64
- | `plan` | `--mode plan`. Auto approval. |
65
- | `run` | `--mode agent`. `approval` is `auto` (default) or `yolo`. |
66
- | `resume` | Continue `thread_id`. Same approval as `run`. |
65
+ | `ask` | `--mode ask`. Auto approval. Optional `thread_id` and `effort`. |
66
+ | `plan` | `--mode plan`. Auto approval. Optional `effort`. |
67
+ | `run` | `--mode agent`. Optional `effort`; `approval` is `auto` (default) or `yolo`. |
68
+ | `resume` | Continue `thread_id`. Optional `mode`, `effort`, and the same approval as `run`. |
67
69
  | `threads_list` | List threads for this workspace (`limit`, `all_workspaces`). |
68
70
 
69
71
  Workspace is the tool argument, else `CLAUDE_PROJECT_DIR`, else the process
70
72
  current directory. Manual approval is TUI-only. See [harness.md](harness.md).
71
73
 
74
+ ## Effort and Intelligence
75
+
76
+ Balanced is the default. Intelligence is available on paid plans and lets the
77
+ hosted parent run one to four survey subagents. Intelligence Plan turns survey
78
+ before creating or revising a plan. Workers are server-owned, survey-only, and
79
+ appear in the TUI through the existing Deep Agents task rows; they do not open
80
+ nested chats or execute through the local tool broker.
81
+
82
+ The interactive `/effort` command changes effort for the current thread.
83
+ Resuming that thread restores it; a new thread starts Balanced. In headless
84
+ text mode, worker state changes print as compact lines. `--json` retains raw
85
+ `status_event` objects.
86
+
87
+ Interactive clarification can offer suggested answers, custom text, or Skip
88
+ and waits without a client timeout. Headless and MCP calls cannot present that
89
+ UI, so an `ask_user_question` tool request is rejected with a clear error
90
+ instead of guessing or auto-skipping.
91
+
72
92
  ## Auth
73
93
 
74
94
  ```console
@@ -118,6 +138,37 @@ searches run freely. Writes, edits, deletes, and shell commands are gated:
118
138
 
119
139
  `--yolo` wins over `--auto-approve`. Saved preferences never enable YOLO.
120
140
 
141
+ ## Usage limits
142
+
143
+ The hosted service owns weekly and window usage. The CLI does not show raw
144
+ token balances, sell credits, or complete checkout.
145
+
146
+ Inside the interactive app, `/tokens` prints the current window as a
147
+ percentage, the next refresh time, and any additional-usage state.
148
+ `/tokens json` prints the member-safe API payload instead.
149
+
150
+ A blocked turn stays readable in `--json` output. An error event uses `data`
151
+ as an object:
152
+
153
+ ```json
154
+ {
155
+ "type": "error",
156
+ "data": {
157
+ "message": "Usage limit reached.",
158
+ "code": "http_402",
159
+ "status": 402,
160
+ "block_reason": "weekly",
161
+ "can_purchase_overage": true,
162
+ "retryable": false
163
+ }
164
+ }
165
+ ```
166
+
167
+ `block_reason` is `window`, `weekly`, `cost_cap`, `busy`, or `billing` when
168
+ the server sends one. A `busy` block and an ordinary rate limit use status
169
+ `429` with `retryable: true`. `can_purchase_overage` only says whether the
170
+ billing page can offer additional usage. The Textual UI prints `message`.
171
+
121
172
  ## Configuration
122
173
 
123
174
  | Setting | Location |
@@ -21,7 +21,7 @@ See [UPSTREAM.md](../UPSTREAM.md) and [NOTICE](../NOTICE).
21
21
 
22
22
  ## Environment
23
23
 
24
- Python 3.12 or newer. From the repository root:
24
+ Python 3.11 or newer. From the repository root:
25
25
 
26
26
  ```console
27
27
  python3 -m venv .venv
@@ -39,6 +39,12 @@ pip install -e ".[dev]"
39
39
 
40
40
  CI also runs `pip-audit`, `piplicenses` (fails on GPL/AGPL/UNKNOWN), a wheel
41
41
  build, and `copper-pilot --version` / `copper-pilot-cli --version`.
42
+ Required CI covers every supported stable Python minor on Linux and the minimum
43
+ supported minor on macOS and Windows. Python 3.15 is probed weekly, outside
44
+ pull requests, by `.github/workflows/forward-python.yml`. When that scheduled
45
+ run is green, add the `Programming Language :: Python :: 3.15` classifier, add
46
+ 3.15 to the required CI matrix, and retarget the scheduled probe at the next
47
+ unreleased Python.
42
48
 
43
49
  ## Tests
44
50
 
@@ -50,6 +56,40 @@ build, and `copper-pilot --version` / `copper-pilot-cli --version`.
50
56
 
51
57
  Do not commit credentials, `.venv/`, or `dist/`.
52
58
 
59
+ ## Hosted protocol
60
+
61
+ The client speaks protocol v1. Agent turns, and plan turns that carry plan
62
+ context, use `/api/copperpilot/analyze/agent/ws`. Ask turns and plan turns
63
+ without that context use `/api/copperpilot/analyze/chat/ws`.
64
+
65
+ `make_chat_start` in `copper_protocol.py` bounds history before the socket
66
+ send, matching the desktop harness:
67
+
68
+ | Attempt | Message cap | History cap | Frame cap |
69
+ |---------|-------------|-------------|-----------|
70
+ | 1 | 64 KiB | 4 MiB | 12 MiB |
71
+ | 2 | 32 KiB | 2 MiB | 8 MiB |
72
+ | 3 | 8 KiB | 128 KiB | 8 MiB |
73
+ | 4 | 4 KiB | 64 KiB | 8 MiB |
74
+
75
+ History is kept newest-first. Inline `data:` attachments are replaced before
76
+ the byte caps apply. A query or workspace snapshot that still cannot fit
77
+ raises `ProtocolError` with `code="PAYLOAD_TOO_LARGE"`.
78
+
79
+ A WebSocket `error` frame keeps `code`, `status`, `block_reason`,
80
+ `can_purchase_overage`, and `retryable` on both `ProtocolError` and the
81
+ `copper.error` event. Absent fields stay absent. The interactive UI and MCP
82
+ `error` string use `public_message`; `--json` and the MCP event digest keep
83
+ the object.
84
+
85
+ Device login and the WebSocket `User-Agent` (`CopperPilot CLI/<version>`)
86
+ read the installed package version. That version comes from `VERSION`.
87
+
88
+ `POST /api/copperpilot/analyze/token_limits` is the account-usage read. It
89
+ returns percentages and reset state even when chat is blocked. Do not add
90
+ token counts, plan allocations, Stripe checkout, or a per-chat context meter
91
+ here. The server does not expose those on this contract.
92
+
53
93
  ## Release
54
94
 
55
95
  Version is the contents of [`VERSION`](../VERSION). `make release` writes that
@@ -32,7 +32,8 @@ copper-pilot -n -m "Review this board" --json --no-stream --mode ask
32
32
  next turn can pass `--resume THREAD_ID`.
33
33
 
34
34
  Use `--mode plan` for a plan, `--mode agent -y` for Auto local writes, and
35
- `--yolo` only when the user asked to skip local approval.
35
+ `--yolo` only when the user asked to skip local approval. Add
36
+ `--effort intelligence` for a paid Intelligence turn; Balanced is the default.
36
37
 
37
38
  ## Option 2: MCP conductor (`copper-pilot mcp`)
38
39
 
@@ -82,10 +83,10 @@ Point the host at `copper-pilot mcp` on stdio. Tools:
82
83
  | Tool | Role |
83
84
  |------|------|
84
85
  | `status` | Login state and discovered schematic/PCB paths |
85
- | `ask` | Read-oriented specialist (`--mode ask`) |
86
- | `plan` | Plan without applying (`--mode plan`) |
87
- | `run` | Mutating agent turn (`--mode agent`) |
88
- | `resume` | Continue `thread_id` (`mode` defaults to `agent`; pass `mode="ask"` to keep it read-only) |
86
+ | `ask` | Read-oriented specialist (`--mode ask`); optional `effort` |
87
+ | `plan` | Plan without applying (`--mode plan`); optional `effort` |
88
+ | `run` | Mutating agent turn (`--mode agent`); optional `effort` |
89
+ | `resume` | Continue `thread_id` (`mode` defaults to `agent`; optional `effort`) |
89
90
  | `threads_list` | List threads for this workspace |
90
91
 
91
92
  Workspace is the tool `workspace` argument, else `CLAUDE_PROJECT_DIR`, else the
@@ -102,7 +103,18 @@ process current directory.
102
103
  MCP cannot show the TUI, so Manual is not available there. `ask` and `plan`
103
104
  always use Auto. `run` and `resume` default to Auto.
104
105
 
106
+ `effort` is `balanced` (default) or `intelligence`. Intelligence requires a
107
+ paid plan. It may run server-owned survey subagents; Plan turns survey before
108
+ the parent writes a plan. Progress reports compact worker transitions and the
109
+ result digest omits full worker output. If the hosted agent asks a clarification,
110
+ MCP returns a clear rejection because it cannot present the interactive options
111
+ and Skip UI; continue the returned `thread_id` in the terminal TUI to answer.
112
+
105
113
  Missing credentials: MCP tools return `login_required` and tell the user to run
106
114
  `copper-pilot auth login`. The server does not open a browser.
107
115
 
108
- See [docs/cli.md](cli.md) for the full command reference.
116
+ A hosted usage block sets `ok` and `success` to false. `error` remains the
117
+ server's public message. The matching digest entry keeps the structured
118
+ `data` object (`status`, `code`, `block_reason`, `can_purchase_overage`, and
119
+ `retryable` when the server sends them). Checkout stays on the CopperPilot
120
+ billing page. See [docs/cli.md](cli.md).
@@ -0,0 +1,14 @@
1
+ .copperpilot/tmp/
2
+ .copperpilot/references/
3
+ .copperpilot/oracle/
4
+ .copperpilot/skills/
5
+ __pycache__/
6
+ fp-info-cache
7
+ *.kicad_prl
8
+ *-backups/
9
+ *.bak
10
+ *.lck
11
+ .history
12
+ *.rpt
13
+ generate_schematic.py
14
+ build_pcb.py
@@ -2,4 +2,4 @@
2
2
 
3
3
  ## Standard Tooling
4
4
  - `kicad-cli 10.0.3`: Primary verification and netlist/export toolchain.
5
- - `Python 3.12+`: Local script execution and DRC/ERC summary processing.
5
+ - `Python 3.11+`: Local script execution and DRC/ERC summary processing.
@@ -26,4 +26,4 @@ render_pcb("esp32.png")
26
26
  python examples/001_esp32/main.py
27
27
  ```
28
28
 
29
- Python 3.12, `pip install -e .`, `copper-pilot auth login`, and KiCad 10 on `PATH`.
29
+ Python 3.11+, `pip install -e .`, `copper-pilot auth login`, and KiCad 10 on `PATH`.
@@ -0,0 +1,5 @@
1
+ # Project Implementation Plans
2
+
3
+ | Plan | Target | Status | Overview |
4
+ | :--- | :--- | :--- | :--- |
5
+ | [cm5-camera-carrier](plans/cm5-camera-carrier.plan.md) | CM5 Nano Camera Carrier | `open` | 55.0 x 40.0 mm 6-layer nano camera carrier for CM5 with onboard IMX219-D160, DF40 mezzanine, Mini-HDMI, DSI, USB-C, vertical USB-A, Micro SD, and 40-pin GPIO. |
@@ -0,0 +1,33 @@
1
+ # CM5 Nano Camera Carrier Project Index
2
+
3
+ ## Project Summary
4
+ High-density nano camera carrier board for the Raspberry Pi Compute Module 5 (CM5). Integrates an onboard Sony IMX219-D160 image sensor, high-speed display/video outputs (Mini-HDMI, 15-pin DSI FPC), dual-role USB routing with FSUSB42UMX switch, power management, Micro SD storage, and a 40-pin GPIO header into an ultra-compact 55.0 x 40.0 mm footprint.
5
+
6
+ ## Key Specifications
7
+ - **Dimensions**: 55.0 x 40.0 mm with 3.0 mm corner radii and 4x M2.5 mounting holes.
8
+ - **Layer Stackup**: 6-layer controlled impedance stackup (100 ohm differential pairs for HDMI, CSI, DSI; 90 ohm differential pairs for USB).
9
+ - **Compute Module Interface**: Dual 100-pin Hirose DF40 mezzanine connectors H1A/H1B for CM5 (5V in, 3.3V/1.8V out, GPIO, I2C/SPI/UART, MIPI CSI/DSI, HDMI, nRPIBOOT, RUN_PG, GLOBAL_EN).
10
+ - **Onboard Camera**: IMX219-D160 with triple LDOs:
11
+ - RT9193-28GB (VA2V8, 2.8V analog)
12
+ - RT9193-18GB (VO1V8, 1.8V I/O)
13
+ - RT9013-12 (VD1V2, 1.2V digital core)
14
+ - 24.000 MHz crystal oscillator through 22 ohm damping resistor to MCLK
15
+ - DMG1012T I2C level shift (3.3V to 1.8V)
16
+ - MCF1210BF2-900T01 common-mode noise filters on CAM0_D0, CAM0_D1, and CAM0_CLK
17
+ - **Power Architecture**:
18
+ - USB-C power input into CM5_5V with 5.1 kOhm CC pulldown resistors
19
+ - MP1658GTF-Z synchronous step-down converter for PWR_3V3
20
+ - DIO7003HCST5 load switches for HDMI_5V and SD_3.3V
21
+ - STMPS2171STR power switch for USB_5V
22
+ - **USB Subsystem**:
23
+ - FSUSB42UMX high-speed USB switch multiplexing USB0 between USB-C (rpiboot provisioning) and vertical USB-A (host peripheral), selected by USB_SEL jumper
24
+ - **Peripherals & Indicators**:
25
+ - Mini-HDMI video output
26
+ - 15-pin 1.0 mm pitch DSI FPC connector
27
+ - Micro SD card slot (TF1)
28
+ - 40-pin standard GPIO header (PI1)
29
+ - User push-button Key1 connected to GPIO21
30
+ - Power (PWR) and Activity (ACT) LEDs
31
+
32
+ ## References
33
+ - `cm5-minima-rev3`: Cloned and upgraded in-place to KiCad 10.0 under `.copperpilot/references/cm5-minima-rev3/`.