onetool-mcp 1.0.0rc2__py3-none-any.whl → 1.0.0rc3__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.
Files changed (34) hide show
  1. onetool/cli.py +2 -0
  2. {onetool_mcp-1.0.0rc2.dist-info → onetool_mcp-1.0.0rc3.dist-info}/METADATA +26 -33
  3. {onetool_mcp-1.0.0rc2.dist-info → onetool_mcp-1.0.0rc3.dist-info}/RECORD +31 -33
  4. ot/config/__init__.py +90 -48
  5. ot/config/global_templates/__init__.py +2 -2
  6. ot/config/global_templates/diagram-templates/api-flow.mmd +33 -33
  7. ot/config/global_templates/diagram-templates/c4-context.puml +30 -30
  8. ot/config/global_templates/diagram-templates/class-diagram.mmd +87 -87
  9. ot/config/global_templates/diagram-templates/feature-mindmap.mmd +70 -70
  10. ot/config/global_templates/diagram-templates/microservices.d2 +81 -81
  11. ot/config/global_templates/diagram-templates/project-gantt.mmd +37 -37
  12. ot/config/global_templates/diagram-templates/state-machine.mmd +42 -42
  13. ot/config/global_templates/diagram.yaml +167 -167
  14. ot/config/global_templates/onetool.yaml +2 -0
  15. ot/config/global_templates/prompts.yaml +102 -102
  16. ot/config/global_templates/security.yaml +1 -4
  17. ot/config/global_templates/servers.yaml +1 -1
  18. ot/config/global_templates/tool_templates/__init__.py +7 -7
  19. ot/config/loader.py +226 -869
  20. ot/config/models.py +735 -0
  21. ot/config/secrets.py +243 -192
  22. ot/executor/tool_loader.py +10 -1
  23. ot/executor/validator.py +11 -1
  24. ot/meta.py +338 -33
  25. ot/prompts.py +228 -218
  26. ot/proxy/manager.py +168 -8
  27. ot/registry/__init__.py +199 -189
  28. ot/config/dynamic.py +0 -121
  29. ot/config/mcp.py +0 -149
  30. ot/config/tool_config.py +0 -125
  31. {onetool_mcp-1.0.0rc2.dist-info → onetool_mcp-1.0.0rc3.dist-info}/WHEEL +0 -0
  32. {onetool_mcp-1.0.0rc2.dist-info → onetool_mcp-1.0.0rc3.dist-info}/entry_points.txt +0 -0
  33. {onetool_mcp-1.0.0rc2.dist-info → onetool_mcp-1.0.0rc3.dist-info}/licenses/LICENSE.txt +0 -0
  34. {onetool_mcp-1.0.0rc2.dist-info → onetool_mcp-1.0.0rc3.dist-info}/licenses/NOTICE.txt +0 -0
onetool/cli.py CHANGED
@@ -246,6 +246,7 @@ def init_validate() -> None:
246
246
  """
247
247
  from loguru import logger
248
248
 
249
+ from ot import __version__
249
250
  from ot.config.loader import get_config, load_config
250
251
  from ot.config.secrets import load_secrets
251
252
  from ot.executor.tool_loader import load_tool_registry
@@ -280,6 +281,7 @@ def init_validate() -> None:
280
281
 
281
282
  # Report validation results
282
283
  console.print("Configuration\n")
284
+ console.print(f"Version: [cyan]{__version__}[/cyan]\n")
283
285
 
284
286
  console.print("Directories:")
285
287
  global_exists = global_dir.exists()
@@ -1,7 +1,7 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: onetool-mcp
3
- Version: 1.0.0rc2
4
- Summary: 🧿 One MCP, unlimited tools.
3
+ Version: 1.0.0rc3
4
+ Summary: 🧿 One MCP for developers - No tool tax, no context rot. 100+ tools including Brave, Gemini, Context7, Version Checker, Excel, File Ops, Database, Chrome DevTools.
5
5
  Project-URL: Homepage, https://github.com/beycom/onetool
6
6
  Project-URL: Repository, https://github.com/beycom/onetool
7
7
  Project-URL: Documentation, https://onetool.beycom.online
@@ -47,14 +47,13 @@ Provides-Extra: file
47
47
  Requires-Dist: send2trash>=2.1.0; extra == 'file'
48
48
  Description-Content-Type: text/markdown
49
49
 
50
- <!-- mcp-name: io.github.beycom/onetool-mcp -->
51
-
52
50
  <p align="center">
51
+ <!-- mcp-name: io.github.beycom/onetool-mcp -->
53
52
  <img src="https://raw.githubusercontent.com/beycom/onetool-mcp/main/docs/assets/logo.svg" alt="OneTool" width="80">
54
53
  </p>
55
54
 
56
55
  <p align="center">
57
- <strong>🧿 One MCP, unlimited tools</strong>
56
+ <strong>🧿 One MCP for developers - No tool tax, no context rot.<br>100+ tools including Brave, Gemini, Context7, Version Checker, Excel, File Ops, Database, Chrome DevTools.</strong>
58
57
  </p>
59
58
 
60
59
  <p align="center">
@@ -65,7 +64,7 @@ Description-Content-Type: text/markdown
65
64
  </p>
66
65
 
67
66
  <p align="center">
68
- Works with Claude Code · Cursor · Windsurf · Any MCP client
67
+ Works with Claude Code or any MCP client
69
68
  </p>
70
69
 
71
70
  ---
@@ -100,9 +99,9 @@ Configure one MCP server. Use unlimited tools.
100
99
 
101
100
  ## See It In Action
102
101
 
103
- | Demo | Description |
104
- | ---- | ----------- |
105
- | [Compare the Search](https://youtu.be/Dv-_dtHVU_A) | Side-by-side token comparison |
102
+ | Demo | Description |
103
+ | ------------------------------------------------------ | ------------------------------- |
104
+ | [Compare the Search](https://youtu.be/Dv-_dtHVU_A) | Side-by-side token comparison |
106
105
  | [Build a Wikipedia Tool](https://youtu.be/AZz03Yw0s1E) | Create a custom tool in seconds |
107
106
 
108
107
  ---
@@ -152,7 +151,7 @@ Verify: `onetool init validate`
152
151
  | **MCP Server Proxy** | Wrap existing MCP servers without the tool tax |
153
152
  | **Scaffold Tools** | Build new tools as part of the conversation |
154
153
  | **Smart Tools** | Delegate to cheaper LLMs (10× savings) |
155
- | **Single YAML Config** | Global and project scopes, per-pack settings |
154
+ | **Single YAML Config** | Global configuration, per-pack settings, includes |
156
155
  | **Security Layers** | AST validation, path boundaries, output sanitisation |
157
156
 
158
157
  ---
@@ -161,23 +160,23 @@ Verify: `onetool init validate`
161
160
 
162
161
  15 packs, 100+ tools ready to use:
163
162
 
164
- | Pack | Tools | Description |
165
- | ----------- | --------------------------------------- | ---------------------- |
166
- | `brave` | `search`, `news` | Web and news search |
167
- | `code` | `search`, `search_batch`, `status` | Semantic code search |
168
- | `context7` | `resolve`, `get_docs` | Library documentation |
169
- | `convert` | `pdf_to_md`, `docx_to_md`, `pptx_to_md` | Document conversion |
170
- | `db` | `query`, `schema`, `tables` | Database operations |
171
- | `diagram` | `create` | Mermaid diagrams |
172
- | `excel` | `read`, `write`, `query` | Excel files |
173
- | `file` | `read`, `write`, `list`, `search` | File operations |
174
- | `ground` | `search` | Google Grounding |
175
- | `llm` | `transform`, `transform_file` | LLM-powered transforms |
176
- | `ot` | `help`, `tools`, `stats` | Introspection |
177
- | `package` | `npm`, `pypi`, `cargo` | Package versions |
178
- | `ripgrep` | `search`, `count` | Fast code search |
179
- | `scaffold` | `tool` | Generate new tools |
180
- | `web` | `fetch`, `fetch_batch` | Web fetching |
163
+ | Pack | Tools | Description |
164
+ | ---------- | --------------------------------------- | ---------------------- |
165
+ | `brave` | `search`, `news` | Web and news search |
166
+ | `code` | `search`, `search_batch`, `status` | Semantic code search |
167
+ | `context7` | `resolve`, `get_docs` | Library documentation |
168
+ | `convert` | `pdf_to_md`, `docx_to_md`, `pptx_to_md` | Document conversion |
169
+ | `db` | `query`, `schema`, `tables` | Database operations |
170
+ | `diagram` | `create` | Mermaid diagrams |
171
+ | `excel` | `read`, `write`, `query` | Excel files |
172
+ | `file` | `read`, `write`, `list`, `search` | File operations |
173
+ | `ground` | `search` | Google Grounding |
174
+ | `llm` | `transform`, `transform_file` | LLM-powered transforms |
175
+ | `ot` | `help`, `tools`, `stats` | Introspection |
176
+ | `package` | `npm`, `pypi`, `cargo` | Package versions |
177
+ | `ripgrep` | `search`, `count` | Fast code search |
178
+ | `scaffold` | `tool` | Generate new tools |
179
+ | `web` | `fetch`, `fetch_batch` | Web fetching |
181
180
 
182
181
  [📖 Complete tools reference](https://onetool.beycom.online/reference/tools/) — full summary table with all 100+ tools
183
182
 
@@ -247,12 +246,6 @@ __ot wiki.summary(title="Python_(programming_language)")
247
246
 
248
247
  ---
249
248
 
250
- ## Contributing
251
-
252
- [Contribution guidelines](https://github.com/beycom/onetool-mcp/blob/main/CONTRIBUTING.md)
253
-
254
- ---
255
-
256
249
  ## License
257
250
 
258
251
  **GPLv3** - Will transition to **MIT** at v2.0.
@@ -13,7 +13,7 @@ bench/harness/evaluate.py,sha256=Mv6I63aBXwEZHoarUOYu3UIG3-rRcInLtBULlqcqeDk,172
13
13
  bench/harness/metrics.py,sha256=5Zy0x3IG-CeXUk-nxGm8-w2YCds1B2oxNGQMKNkgjGE,9690
14
14
  bench/harness/runner.py,sha256=Gx9_IXVBhmogaWCf5e-YNuuyDNeJVJpSPKtbp7PyxaI,38332
15
15
  onetool/__init__.py,sha256=NH91OBFDKBASlyorvmrLjckwXblgcToPkdqtZOIya7o,110
16
- onetool/cli.py,sha256=-U0JaImHaXGs-BRPV39AO3wdPD4BJKts46LFNO_lUZ8,13953
16
+ onetool/cli.py,sha256=Zq9KpqUuixMSkpz8nY2NR8ZBzcLDtxeeHtVlYyJRB6w,14044
17
17
  onetool/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
18
18
  ot/__init__.py,sha256=WI1BaMpZr1Xag5DLy8710K19v4EEiU0plLsgbCWWgz0,983
19
19
  ot/__main__.py,sha256=7H47GZ-tb1Ih8MoYHnaNPjYPxsOXXnVL983IrTxOFPo,129
@@ -21,37 +21,35 @@ ot/_cli.py,sha256=cJ6mazEkl1cseHTUmtPFrsJfjZZ5IFkfFqh0c5s7xuY,2700
21
21
  ot/_tui.py,sha256=fbF_iwK58EBPhxWmEEQozneHlSRr7MRop7aRugVQ688,1437
22
22
  ot/decorators.py,sha256=gPNDtQSiVxa7HDzqeYJJnqb_fKhgTDREnspNo1s0zr4,3339
23
23
  ot/http_client.py,sha256=1BuRWHxTSmRleXGFvZzs4nzCv9GV7HKOZ0YSRVh1_JE,4308
24
- ot/meta.py,sha256=UNmYoN8SRkztTDv9RZe_CmO_ZLirc4gJZSUO56jziI8,59152
24
+ ot/meta.py,sha256=N_rvfb6r5-lds9Da5-FySFWXfqakb0pDnPEvNEjVigA,69751
25
25
  ot/paths.py,sha256=6yqPKdQ8zXLcQ9Txbr-pf41IfZuMpBJZNjN-Eet6H54,14221
26
- ot/prompts.py,sha256=1U0NFCvbIffN74RL4k-4N8jIj8C_Usy2BwtE6mIRYCA,6884
26
+ ot/prompts.py,sha256=U28gSoLVil7YfTOeJxwoFqjWJiR1eGJYJiNRXKuADZo,6886
27
27
  ot/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
28
28
  ot/server.py,sha256=uBp1ZG9czCTz5IymZz5MfXNMChSQJ38JXhjhiMYjsn4,10531
29
29
  ot/support.py,sha256=CqrsJCzVVoHnY0uis6_YtqVJLOG8llzjvoyzIUAn8Ms,1702
30
30
  ot/tools.py,sha256=V-Qb34WmfWYqxIKp_aGcuXn06-IM_PNOQspfC1-dcUM,3590
31
- ot/config/__init__.py,sha256=THimK2ZlWrrImAri9OsybJNBNsdWk9kdigbYqHVONR4,1154
32
- ot/config/dynamic.py,sha256=alaJUnDL2KRIWeCNN-garmPmJ3qFoOirkwh0hSFcMuc,3711
33
- ot/config/loader.py,sha256=iGY8EVPhrrHEpLUAMLUH7STYf2288XoZedUdXheiZhY,38891
34
- ot/config/mcp.py,sha256=72bQwJdl-7xLYLePQ1C5YLqXLewTdZkARQQDHIO9fKY,5248
35
- ot/config/secrets.py,sha256=Ue53Wx80yVFSgne-JZw7eVvQExKC1Kylr9JJNona5xY,6299
36
- ot/config/tool_config.py,sha256=BisTtEj9Ws8NnWxvSbW9kskkygO8F-RO4Mgm9KIuPm0,3651
37
- ot/config/global_templates/__init__.py,sha256=4hYQjxPiEe02VmpvWXVfgJgbSwg89euX9mG182oa58M,111
31
+ ot/config/__init__.py,sha256=H8edwhQ8gYQDhC7A_rAOQqe2s7ck_M5W0HrtZyDwcZ0,2157
32
+ ot/config/loader.py,sha256=dt4Ww3QmkKnFnRWLX2o1e-4h7dTQcle7i9pJ-ztoYpM,17519
33
+ ot/config/models.py,sha256=Xf5TwGf-Vo9VxOghtKW1dyra249fl_BKCU3EBBzvM5A,23081
34
+ ot/config/secrets.py,sha256=ukhkz-dHlZ8JUxLsOoH8MoxgtOuBqMuYjP8ezfRYJtk,6903
35
+ ot/config/global_templates/__init__.py,sha256=aHmytPELRNraAZf2cMf5c9-4yZQUd5m5Z9wg0-dMRKY,109
38
36
  ot/config/global_templates/bench-secrets-template.yaml,sha256=srZcnOM8Af2gQTpmo7g16sE9-zj0Tlguv54V-WE3hCs,224
39
37
  ot/config/global_templates/bench.yaml,sha256=h2Ac5-unilwx5TPvDsp02y4I0WiPI7y9CyRh7FIBuL8,223
40
- ot/config/global_templates/diagram.yaml,sha256=dgQvlL7upiXSubzgBhhNa26HNGGk-_nyhnz2prE--2I,5656
41
- ot/config/global_templates/onetool.yaml,sha256=YpIBBGJ3ctLd25_R_pHsuPpRq-iUroKfq3s99-EgQJk,951
42
- ot/config/global_templates/prompts.yaml,sha256=69y6FbEWhCoi-1uLUZwt5nMu3DPsduOl_i5hnAD8hGU,4881
38
+ ot/config/global_templates/diagram.yaml,sha256=oPeRCacB_1hrSwnSXuTNv98J9HnFg2vSWejnswp6tQs,5489
39
+ ot/config/global_templates/onetool.yaml,sha256=ffkMVUppWZSo3hyFXaC2w0jb_U4cD9QXfjeGKNe2pF0,1102
40
+ ot/config/global_templates/prompts.yaml,sha256=nF4ofCaKPeNTct4jbsSveQbOvbYEMPUdIbJrNXkwCxo,4779
43
41
  ot/config/global_templates/secrets-template.yaml,sha256=sUb2uExdrx_07bH2UVKtp-tqCSpcW-PenH_UFDxPF2k,1541
44
- ot/config/global_templates/security.yaml,sha256=s4QWXgKjsEgFSEzXIEv57bv9gwO1SCzTwiv8D20gdFs,1242
45
- ot/config/global_templates/servers.yaml,sha256=N0PAYvmyrPJYrY7lKGL34NUPlIoFvpS5IY1vTGlUfTA,4904
42
+ ot/config/global_templates/security.yaml,sha256=a9kfEAqvk_EE81tqNCeLXC2uXqtGbiU8x56YMD9Bmfo,1215
43
+ ot/config/global_templates/servers.yaml,sha256=gS0uDF8aghcmoKbQAm0TyY1mTrYYh3QGeF7UIAXA71o,4905
46
44
  ot/config/global_templates/snippets.yaml,sha256=PLjc_4KLRWNR_DPFB0MF_LisKCEvdc5XvvnEHUd3Aio,8920
47
- ot/config/global_templates/diagram-templates/api-flow.mmd,sha256=PoSScSsKRxb91GyuK-slko1NWs9yAKllPuYTvaVNgnk,729
48
- ot/config/global_templates/diagram-templates/c4-context.puml,sha256=oBDkVujije3ZIrxcmv4xt5OCtwcpW2QAkbWwRIBbOPQ,946
49
- ot/config/global_templates/diagram-templates/class-diagram.mmd,sha256=7VwccmraqC_mXscnVPkhInsVZDPVaUJkNfVYBhLSf3E,1804
50
- ot/config/global_templates/diagram-templates/feature-mindmap.mmd,sha256=U_mz4DJG6_8mweZ0bY29Tr6G5JKM-hwrPn57sBGyhmw,1427
51
- ot/config/global_templates/diagram-templates/microservices.d2,sha256=oEdaXsvogdx5UvSypivlT5DCLHC6xJxBl6Y6t7zX_ww,1529
52
- ot/config/global_templates/diagram-templates/project-gantt.mmd,sha256=x7q5noj9boYfJQjDC5WCfIMcqGbJPi61Na7_B7ViBrM,1314
53
- ot/config/global_templates/diagram-templates/state-machine.mmd,sha256=90KpOWo7TKJVinqATzcDGIKm4xOgFTmiXUbDoiHbLJ0,1013
54
- ot/config/global_templates/tool_templates/__init__.py,sha256=nNdHPxZvBeUfRJfMvhVvrXE6rJ4Q1NxhvSk1NfJQIsg,221
45
+ ot/config/global_templates/diagram-templates/api-flow.mmd,sha256=YizXla-1o85KyUJqMoT2rOJqFa6wUqhZNf8ZnZtvjyI,696
46
+ ot/config/global_templates/diagram-templates/c4-context.puml,sha256=v6KPHcZ2Q_0QY9h80oLTb_xzJUB1Qq5XyeuzNckVh9c,916
47
+ ot/config/global_templates/diagram-templates/class-diagram.mmd,sha256=T1VfDg6UK-tKxgT3qZF45JOlMiCdl4Nsa3tmrQhoaLU,1717
48
+ ot/config/global_templates/diagram-templates/feature-mindmap.mmd,sha256=mjpih6ehYH5Z8cMquAN7U-8BR8UshC7ggeMOkDQWaF8,1357
49
+ ot/config/global_templates/diagram-templates/microservices.d2,sha256=vzW_HJs0-XiOzOjxLZngcqZzjnJGdgPwutqgkXVyaZw,1448
50
+ ot/config/global_templates/diagram-templates/project-gantt.mmd,sha256=TNNHDund_OaUM_G1ByGJAPIz95TLBPgtuNMB8rEYu5s,1277
51
+ ot/config/global_templates/diagram-templates/state-machine.mmd,sha256=fO36UWr0inb979kyHB1PnLx7RYLzOWd4_ZCBXNmRdDw,971
52
+ ot/config/global_templates/tool_templates/__init__.py,sha256=RwRpiQf_iQ5S7uGsfWM92cE8JN_Y1KDqaPfo24h-A5w,214
55
53
  ot/config/global_templates/tool_templates/extension.py,sha256=VfHxAjiIZ2BdbFMWEkdxGZT4OUxSAUb9ng9p-HH2lCM,1371
56
54
  ot/config/global_templates/tool_templates/isolated.py,sha256=aTl7_hG1ALHCGqyHMPjKa6fNBXoTBPjsLtbFgq76LAg,1556
57
55
  ot/executor/__init__.py,sha256=0qA-CZ2uTfe0Mqso1yLb1zdOlGWJKby4Qn4Ucb4zpgg,871
@@ -64,8 +62,8 @@ ot/executor/pep723.py,sha256=TWX9rphcf7LtR6GFRpN-j5BrteUUsCjg5UNoy-UH6w0,8762
64
62
  ot/executor/result_store.py,sha256=BwTd4Gk0JPVmysGB0bC1vtc3M-5q4ZMsfkBle7e-jRE,11104
65
63
  ot/executor/runner.py,sha256=Wbroj0AE0YKPnWeNyJyJAnjRZttv1-w3Z9n9C5th2o4,17100
66
64
  ot/executor/simple.py,sha256=_RfFlHy0-AnOFvUoYuLqxuD94SiG2IXSvmfQBLQzpYo,5192
67
- ot/executor/tool_loader.py,sha256=vdu5pAL1NvGGu1H7tE3lqBafzWHWP3MfFXMZgzgFyIw,13377
68
- ot/executor/validator.py,sha256=nMMcobn6-wHoJjahVnV9e8qi9nKJNOquBBpeNpYP5Js,30927
65
+ ot/executor/tool_loader.py,sha256=siGbcsycwh-kv-YfWM-Vb2CJh8tgZF6J9AQvz98qLg0,13585
66
+ ot/executor/validator.py,sha256=Gz8BTcubpdXCD1KWxZvDEV5vUURXIpoVfnx9b8jrrLM,31206
69
67
  ot/executor/worker_pool.py,sha256=HJOu3P9E5MKgBZsddmeElctPUhF5kwx5Hfd9IezwJo8,12635
70
68
  ot/executor/worker_proxy.py,sha256=NUxOI2VZFkNbH5IMulvokHEe5cZQtViOSpb4DEHBf4I,5651
71
69
  ot/logging/__init__.py,sha256=s4nAEAxqpiRY6bdRNyEwIj-3n0WkaYktN_ACtS8mqK8,980
@@ -74,8 +72,8 @@ ot/logging/entry.py,sha256=f6B6A8xOdbdvTzU7TeYgexlphNHtRxH4VGM0JfEfImI,6382
74
72
  ot/logging/format.py,sha256=6MpyfaSZzhwqv0AQRIPTmCnrivqdC7hbIUlZ1A7N6_U,5681
75
73
  ot/logging/span.py,sha256=3R-hJJAQPXPmFwofWgcQN2qNiQFhq7HuhfNIqllsV0M,11722
76
74
  ot/proxy/__init__.py,sha256=N4shk9gsZ76BBe8tUftXL83ELB42zlbTXtF05lTUqUc,435
77
- ot/proxy/manager.py,sha256=PBk45E-t3QAqFE-mBEyA74DEKfBr_9ixlC36lC2V1HQ,14060
78
- ot/registry/__init__.py,sha256=tlglqdUKsXlclUqyQp8ekZjeRzKRKmEfofDmiH3W7eg,5338
75
+ ot/proxy/manager.py,sha256=WyYvs-Vsb5Yak7t4abaGNea6NPq0J5One9ZHOh3Vufo,20030
76
+ ot/registry/__init__.py,sha256=x4ZT-b47PAIY5bbdsm1YElchxIeY_3ZS_dJdai40wts,5364
79
77
  ot/registry/models.py,sha256=Z-lsRRN3pDyL2nUalZA9QoD1IG_e7aSPUoE6TvRspCk,2160
80
78
  ot/registry/parser.py,sha256=OpRXT47aKQNk-TxzWq9WLep2RPICvUDCvLKDeO4Z464,8685
81
79
  ot/registry/registry.py,sha256=HFPPIGWop2szXRQeQeFs5axK4iS17dEOHV8qf9Jm5nE,13458
@@ -121,9 +119,9 @@ ot_tools/_convert/pdf.py,sha256=BAZJh-6fWQFyuVSPeN22FwWf56SH2AlOTpwuqnnZrPk,7577
121
119
  ot_tools/_convert/powerpoint.py,sha256=M8lwkTV7x4wafR7eXrVojCBKgcXVxO1tT-Z2Ml5wwxo,7855
122
120
  ot_tools/_convert/utils.py,sha256=AfId8ulTx_kKq0zVbhvuY3KGXqQjEk8Y7o8BXjP8WgA,10192
123
121
  ot_tools/_convert/word.py,sha256=XfjqQRhEYS_433LprmF6vqyosytXVdNWzsCXo42WNcA,8710
124
- onetool_mcp-1.0.0rc2.dist-info/METADATA,sha256=lFEQ4EK2NsXPKzrJBmlOdQ8aHz08oiy7YpPc7cvl_y0,9255
125
- onetool_mcp-1.0.0rc2.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
126
- onetool_mcp-1.0.0rc2.dist-info/entry_points.txt,sha256=UUr3FvhGxnRdyJSxRG5YeqCGUi8nQ3oMCoueM35sF04,66
127
- onetool_mcp-1.0.0rc2.dist-info/licenses/LICENSE.txt,sha256=eenW0GFt38rIpO3MguA49tq9bcAJR2NWECenWW3JoAs,35561
128
- onetool_mcp-1.0.0rc2.dist-info/licenses/NOTICE.txt,sha256=X-5KsBMpZYEDvljq9_0Rr1wJ18pzm52ftcgeruy-5tE,2096
129
- onetool_mcp-1.0.0rc2.dist-info/RECORD,,
122
+ onetool_mcp-1.0.0rc3.dist-info/METADATA,sha256=ZnuIFmlz32XdQnyQS7F0ksFTWNviK47G56HxINSn16A,9523
123
+ onetool_mcp-1.0.0rc3.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
124
+ onetool_mcp-1.0.0rc3.dist-info/entry_points.txt,sha256=UUr3FvhGxnRdyJSxRG5YeqCGUi8nQ3oMCoueM35sF04,66
125
+ onetool_mcp-1.0.0rc3.dist-info/licenses/LICENSE.txt,sha256=eenW0GFt38rIpO3MguA49tq9bcAJR2NWECenWW3JoAs,35561
126
+ onetool_mcp-1.0.0rc3.dist-info/licenses/NOTICE.txt,sha256=X-5KsBMpZYEDvljq9_0Rr1wJ18pzm52ftcgeruy-5tE,2096
127
+ onetool_mcp-1.0.0rc3.dist-info/RECORD,,
ot/config/__init__.py CHANGED
@@ -1,48 +1,90 @@
1
- """Centralized configuration for OneTool.
2
-
3
- This module provides a single source of truth for all configuration settings
4
- via YAML configuration for tool discovery and settings.
5
-
6
- Usage:
7
- from ot.config import get_config, load_config
8
-
9
- config = get_config()
10
- print(config.log_level)
11
- print(config.tools_dir)
12
-
13
- # For tools to access their configuration:
14
- from ot.config import get_tool_config
15
-
16
- class Config(BaseModel):
17
- timeout: float = 60.0
18
-
19
- config = get_tool_config("brave", Config)
20
- """
21
-
22
- from ot.config.loader import (
23
- ConfigNotFoundError,
24
- OneToolConfig,
25
- SnippetDef,
26
- SnippetParam,
27
- get_config,
28
- is_log_verbose,
29
- load_config,
30
- )
31
- from ot.config.mcp import McpServerConfig
32
- from ot.config.secrets import get_secret, get_secrets, load_secrets
33
- from ot.config.tool_config import get_tool_config
34
-
35
- __all__ = [
36
- "ConfigNotFoundError",
37
- "McpServerConfig",
38
- "OneToolConfig",
39
- "SnippetDef",
40
- "SnippetParam",
41
- "get_config",
42
- "get_secret",
43
- "get_secrets",
44
- "get_tool_config",
45
- "is_log_verbose",
46
- "load_config",
47
- "load_secrets",
48
- ]
1
+ """Centralized configuration for OneTool V2 (global-only).
2
+
3
+ This module provides a single source of truth for all configuration settings
4
+ via YAML configuration for tool discovery and settings.
5
+
6
+ Key changes from V1:
7
+ - Global-only configuration (no project configs or inheritance)
8
+ - Root-level env: section for subprocess environment variables
9
+ - Runtime variable expansion (happens in get_tool_config(), not load_config())
10
+ - Defaults embedded in Pydantic models (no template files)
11
+ - Depth-limited includes (no circular detection)
12
+
13
+ Usage:
14
+ from ot.config import get_config, load_config
15
+
16
+ config = get_config()
17
+ print(config.log_level)
18
+ print(config.tools_dir)
19
+
20
+ # For tools to access their configuration:
21
+ from ot.config import get_tool_config
22
+
23
+ class Config(BaseModel):
24
+ timeout: float = 60.0
25
+
26
+ config = get_tool_config("brave", Config)
27
+
28
+ # For variable expansion (secrets.yaml → env: section):
29
+ from ot.config import expand_vars
30
+
31
+ api_url = expand_vars("https://api.example.com?key=${API_KEY}")
32
+ """
33
+
34
+ from ot.config.loader import (
35
+ ConfigNotFoundError,
36
+ get_config,
37
+ get_tool_config,
38
+ is_log_verbose,
39
+ load_config,
40
+ )
41
+ from ot.config.loader import (
42
+ reset as reset_config,
43
+ )
44
+ from ot.config.models import (
45
+ McpServerConfig,
46
+ OneToolConfig,
47
+ SecurityConfig,
48
+ SnippetDef,
49
+ SnippetParam,
50
+ )
51
+ from ot.config.secrets import (
52
+ expand_secrets,
53
+ expand_vars,
54
+ get_secret,
55
+ get_secrets,
56
+ load_secrets,
57
+ )
58
+ from ot.config.secrets import (
59
+ reset as reset_secrets,
60
+ )
61
+
62
+
63
+ def reset() -> None:
64
+ """Clear all config and secrets caches for reload.
65
+
66
+ This is a convenience function that resets both config and secrets caches.
67
+ Use this as part of the reload flow (called from ot.reload()).
68
+ """
69
+ reset_config()
70
+ reset_secrets()
71
+
72
+
73
+ __all__ = [
74
+ "ConfigNotFoundError",
75
+ "McpServerConfig",
76
+ "OneToolConfig",
77
+ "SecurityConfig",
78
+ "SnippetDef",
79
+ "SnippetParam",
80
+ "expand_secrets",
81
+ "expand_vars",
82
+ "get_config",
83
+ "get_secret",
84
+ "get_secrets",
85
+ "get_tool_config",
86
+ "is_log_verbose",
87
+ "load_config",
88
+ "load_secrets",
89
+ "reset",
90
+ ]
@@ -1,2 +1,2 @@
1
- # OneTool Global Templates
2
- # This package contains template config files copied to ~/.onetool/ on first run.
1
+ # OneTool Global Templates
2
+ # This package contains template config files copied to ~/.onetool/ on first run.
@@ -1,33 +1,33 @@
1
- %% API Flow Template - Sequence Diagram
2
- %% Replace placeholders with actual service names and operations
3
-
4
- sequenceDiagram
5
- participant C as Client
6
- participant GW as API Gateway
7
- participant S as Service
8
- participant DB as Database
9
-
10
- Note over C,DB: Request Flow
11
-
12
- C->>GW: POST /api/resource
13
- activate GW
14
-
15
- GW->>GW: Validate token
16
- alt Invalid token
17
- GW-->>C: 401 Unauthorized
18
- else Valid token
19
- GW->>S: Forward request
20
- activate S
21
-
22
- S->>DB: Query data
23
- activate DB
24
- DB-->>S: Result set
25
- deactivate DB
26
-
27
- S-->>GW: Response payload
28
- deactivate S
29
-
30
- GW-->>C: 200 OK + data
31
- end
32
-
33
- deactivate GW
1
+ %% API Flow Template - Sequence Diagram
2
+ %% Replace placeholders with actual service names and operations
3
+
4
+ sequenceDiagram
5
+ participant C as Client
6
+ participant GW as API Gateway
7
+ participant S as Service
8
+ participant DB as Database
9
+
10
+ Note over C,DB: Request Flow
11
+
12
+ C->>GW: POST /api/resource
13
+ activate GW
14
+
15
+ GW->>GW: Validate token
16
+ alt Invalid token
17
+ GW-->>C: 401 Unauthorized
18
+ else Valid token
19
+ GW->>S: Forward request
20
+ activate S
21
+
22
+ S->>DB: Query data
23
+ activate DB
24
+ DB-->>S: Result set
25
+ deactivate DB
26
+
27
+ S-->>GW: Response payload
28
+ deactivate S
29
+
30
+ GW-->>C: 200 OK + data
31
+ end
32
+
33
+ deactivate GW
@@ -1,30 +1,30 @@
1
- @startuml C4 Context Diagram
2
- !include <C4/C4_Context>
3
-
4
- title System Context Diagram - [System Name]
5
-
6
- ' Actors
7
- Person(user, "User", "A user of the system who needs to accomplish tasks")
8
- Person(admin, "Administrator", "Manages system configuration and users")
9
-
10
- ' Core system
11
- System(system, "My System", "Provides the main functionality that users need")
12
-
13
- ' External systems
14
- System_Ext(email, "Email System", "Sends notifications and alerts")
15
- System_Ext(payment, "Payment Provider", "Handles payment processing")
16
- System_Ext(identity, "Identity Provider", "Manages authentication via SSO")
17
-
18
- ' Relationships
19
- Rel(user, system, "Uses", "HTTPS")
20
- Rel(admin, system, "Administers", "HTTPS")
21
-
22
- Rel(system, email, "Sends emails using", "SMTP")
23
- Rel(system, payment, "Processes payments via", "HTTPS/REST")
24
- Rel(system, identity, "Authenticates users with", "OIDC")
25
-
26
- ' Layout hints
27
- Lay_D(user, system)
28
- Lay_R(system, email)
29
-
30
- @enduml
1
+ @startuml C4 Context Diagram
2
+ !include <C4/C4_Context>
3
+
4
+ title System Context Diagram - [System Name]
5
+
6
+ ' Actors
7
+ Person(user, "User", "A user of the system who needs to accomplish tasks")
8
+ Person(admin, "Administrator", "Manages system configuration and users")
9
+
10
+ ' Core system
11
+ System(system, "My System", "Provides the main functionality that users need")
12
+
13
+ ' External systems
14
+ System_Ext(email, "Email System", "Sends notifications and alerts")
15
+ System_Ext(payment, "Payment Provider", "Handles payment processing")
16
+ System_Ext(identity, "Identity Provider", "Manages authentication via SSO")
17
+
18
+ ' Relationships
19
+ Rel(user, system, "Uses", "HTTPS")
20
+ Rel(admin, system, "Administers", "HTTPS")
21
+
22
+ Rel(system, email, "Sends emails using", "SMTP")
23
+ Rel(system, payment, "Processes payments via", "HTTPS/REST")
24
+ Rel(system, identity, "Authenticates users with", "OIDC")
25
+
26
+ ' Layout hints
27
+ Lay_D(user, system)
28
+ Lay_R(system, email)
29
+
30
+ @enduml