ventilatepro-cli 0.3.1__tar.gz → 0.5.0__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 (36) hide show
  1. {ventilatepro_cli-0.3.1 → ventilatepro_cli-0.5.0}/PKG-INFO +27 -3
  2. {ventilatepro_cli-0.3.1 → ventilatepro_cli-0.5.0}/README.md +25 -1
  3. {ventilatepro_cli-0.3.1 → ventilatepro_cli-0.5.0}/pyproject.toml +1 -1
  4. ventilatepro_cli-0.5.0/tests/test_cli.py +1342 -0
  5. ventilatepro_cli-0.5.0/tests/test_mcp_server.py +287 -0
  6. {ventilatepro_cli-0.3.1 → ventilatepro_cli-0.5.0}/ventilatepro/__init__.py +1 -1
  7. {ventilatepro_cli-0.3.1 → ventilatepro_cli-0.5.0}/ventilatepro/api_client.py +136 -1
  8. ventilatepro_cli-0.5.0/ventilatepro/categorization.py +669 -0
  9. {ventilatepro_cli-0.3.1 → ventilatepro_cli-0.5.0}/ventilatepro/cli.py +140 -2
  10. {ventilatepro_cli-0.3.1 → ventilatepro_cli-0.5.0}/ventilatepro/entities.py +149 -0
  11. {ventilatepro_cli-0.3.1 → ventilatepro_cli-0.5.0}/ventilatepro/mcp_server.py +246 -3
  12. ventilatepro_cli-0.5.0/ventilatepro/meetings.py +130 -0
  13. {ventilatepro_cli-0.3.1 → ventilatepro_cli-0.5.0}/ventilatepro/notes.py +15 -21
  14. ventilatepro_cli-0.5.0/ventilatepro/queue.py +402 -0
  15. ventilatepro_cli-0.5.0/ventilatepro/revit_imports.py +273 -0
  16. {ventilatepro_cli-0.3.1 → ventilatepro_cli-0.5.0}/ventilatepro_cli.egg-info/PKG-INFO +27 -3
  17. {ventilatepro_cli-0.3.1 → ventilatepro_cli-0.5.0}/ventilatepro_cli.egg-info/SOURCES.txt +3 -0
  18. {ventilatepro_cli-0.3.1 → ventilatepro_cli-0.5.0}/ventilatepro_cli.egg-info/requires.txt +1 -1
  19. ventilatepro_cli-0.3.1/tests/test_cli.py +0 -583
  20. ventilatepro_cli-0.3.1/tests/test_mcp_server.py +0 -73
  21. ventilatepro_cli-0.3.1/ventilatepro/queue.py +0 -184
  22. {ventilatepro_cli-0.3.1 → ventilatepro_cli-0.5.0}/setup.cfg +0 -0
  23. {ventilatepro_cli-0.3.1 → ventilatepro_cli-0.5.0}/tests/test_config.py +0 -0
  24. {ventilatepro_cli-0.3.1 → ventilatepro_cli-0.5.0}/ventilatepro/__main__.py +0 -0
  25. {ventilatepro_cli-0.3.1 → ventilatepro_cli-0.5.0}/ventilatepro/auth.py +0 -0
  26. {ventilatepro_cli-0.3.1 → ventilatepro_cli-0.5.0}/ventilatepro/calc.py +0 -0
  27. {ventilatepro_cli-0.3.1 → ventilatepro_cli-0.5.0}/ventilatepro/config.py +0 -0
  28. {ventilatepro_cli-0.3.1 → ventilatepro_cli-0.5.0}/ventilatepro/design_day.py +0 -0
  29. {ventilatepro_cli-0.3.1 → ventilatepro_cli-0.5.0}/ventilatepro/mcp_cli.py +0 -0
  30. {ventilatepro_cli-0.3.1 → ventilatepro_cli-0.5.0}/ventilatepro/output.py +0 -0
  31. {ventilatepro_cli-0.3.1 → ventilatepro_cli-0.5.0}/ventilatepro/payloads.py +0 -0
  32. {ventilatepro_cli-0.3.1 → ventilatepro_cli-0.5.0}/ventilatepro/projects.py +0 -0
  33. {ventilatepro_cli-0.3.1 → ventilatepro_cli-0.5.0}/ventilatepro/systems.py +0 -0
  34. {ventilatepro_cli-0.3.1 → ventilatepro_cli-0.5.0}/ventilatepro_cli.egg-info/dependency_links.txt +0 -0
  35. {ventilatepro_cli-0.3.1 → ventilatepro_cli-0.5.0}/ventilatepro_cli.egg-info/entry_points.txt +0 -0
  36. {ventilatepro_cli-0.3.1 → ventilatepro_cli-0.5.0}/ventilatepro_cli.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ventilatepro-cli
3
- Version: 0.3.1
3
+ Version: 0.5.0
4
4
  Summary: VentilatePro CLI
5
5
  Project-URL: Homepage, https://ventilatepro.com/exam/cli/
6
6
  Project-URL: Documentation, https://ventilatepro.com/exam/cli/
@@ -11,11 +11,11 @@ Requires-Dist: typer>=0.16.0
11
11
  Requires-Dist: requests>=2.32.0
12
12
  Requires-Dist: keyring>=25.6.0
13
13
  Requires-Dist: platformdirs>=4.3.0
14
- Requires-Dist: mcp>=1.23.0
14
+ Requires-Dist: mcp<2.0.0,>=1.23.0
15
15
 
16
16
  # VentilatePro CLI
17
17
 
18
- VentilatePro CLI is a local command-line client for authenticating to VentilatePro and creating or syncing notes through the scoped CLI API.
18
+ VentilatePro CLI is a local command-line client for authenticating to VentilatePro, recording project notes and meeting minutes, and running scoped engineering workflows.
19
19
 
20
20
  ## Install
21
21
 
@@ -45,6 +45,12 @@ ventilatepro auth login
45
45
  ventilatepro projects list
46
46
  ventilatepro projects show 1
47
47
  ventilatepro rooms list --project 1
48
+ ventilatepro room-equipment summary --project 1
49
+ ventilatepro room-equipment create --data '{"room": 501, "name": "Sterilizer", "heat_gain_value": 1.8, "heat_gain_unit": "KW"}'
50
+ ventilatepro revit-imports review --project 1 --json
51
+ ventilatepro revit-imports confirm 41 --project 1 --review-token <token-from-review> --yes
52
+ ventilatepro categorization review --project 1 --output room-categorization.json
53
+ ventilatepro categorization apply --project 1 --input room-categorization.json --yes
48
54
  ventilatepro ahus list --project 1
49
55
  ventilatepro systems hierarchy --project 1
50
56
  ventilatepro calc status --project 1
@@ -52,6 +58,9 @@ ventilatepro calc ahu-properties --ahu 1
52
58
  ventilatepro design-day context --project 1
53
59
  ventilatepro notes create --project 1 --body "Captured from terminal"
54
60
  ventilatepro notes sync
61
+ ventilatepro meetings context --project 1 --json
62
+ ventilatepro meetings record --project 1 --input meeting.json --json
63
+ ventilatepro meetings list --project 1
55
64
  ventilatepro mcp doctor
56
65
  ventilatepro-mcp
57
66
  ```
@@ -60,6 +69,21 @@ ventilatepro-mcp
60
69
  and other MCP clients. It uses the same saved base URL and CLI token created by
61
70
  `ventilatepro auth login`.
62
71
 
72
+ For meeting capture, Codex first reads `meetings context` to resolve names to
73
+ stable project-member IDs, interprets the PM's prose into a structured JSON
74
+ payload, and calls `meetings record`. The server atomically creates the meeting,
75
+ decisions, and assigned project tasks and returns a direct web-app link.
76
+
77
+ For room classification, Codex can read the project-specific categorization
78
+ review resource or use the dedicated MCP tools. Review manifests default every
79
+ room to rejected so ambiguous spaces remain visible until a category is
80
+ explicitly accepted with a reason.
81
+
82
+ For staged Revit imports, agents use `revit-imports review` or
83
+ `vp_review_revit_import` first. The returned review token identifies the exact
84
+ payload and diff that was inspected. Confirmation requires that unchanged token
85
+ plus explicit `--yes` or MCP `confirm=true`; stale reviews are rejected.
86
+
63
87
  ## MCP setup
64
88
 
65
89
  1. In the VentilatePro web app, open Account Settings and create a CLI token with
@@ -1,6 +1,6 @@
1
1
  # VentilatePro CLI
2
2
 
3
- VentilatePro CLI is a local command-line client for authenticating to VentilatePro and creating or syncing notes through the scoped CLI API.
3
+ VentilatePro CLI is a local command-line client for authenticating to VentilatePro, recording project notes and meeting minutes, and running scoped engineering workflows.
4
4
 
5
5
  ## Install
6
6
 
@@ -30,6 +30,12 @@ ventilatepro auth login
30
30
  ventilatepro projects list
31
31
  ventilatepro projects show 1
32
32
  ventilatepro rooms list --project 1
33
+ ventilatepro room-equipment summary --project 1
34
+ ventilatepro room-equipment create --data '{"room": 501, "name": "Sterilizer", "heat_gain_value": 1.8, "heat_gain_unit": "KW"}'
35
+ ventilatepro revit-imports review --project 1 --json
36
+ ventilatepro revit-imports confirm 41 --project 1 --review-token <token-from-review> --yes
37
+ ventilatepro categorization review --project 1 --output room-categorization.json
38
+ ventilatepro categorization apply --project 1 --input room-categorization.json --yes
33
39
  ventilatepro ahus list --project 1
34
40
  ventilatepro systems hierarchy --project 1
35
41
  ventilatepro calc status --project 1
@@ -37,6 +43,9 @@ ventilatepro calc ahu-properties --ahu 1
37
43
  ventilatepro design-day context --project 1
38
44
  ventilatepro notes create --project 1 --body "Captured from terminal"
39
45
  ventilatepro notes sync
46
+ ventilatepro meetings context --project 1 --json
47
+ ventilatepro meetings record --project 1 --input meeting.json --json
48
+ ventilatepro meetings list --project 1
40
49
  ventilatepro mcp doctor
41
50
  ventilatepro-mcp
42
51
  ```
@@ -45,6 +54,21 @@ ventilatepro-mcp
45
54
  and other MCP clients. It uses the same saved base URL and CLI token created by
46
55
  `ventilatepro auth login`.
47
56
 
57
+ For meeting capture, Codex first reads `meetings context` to resolve names to
58
+ stable project-member IDs, interprets the PM's prose into a structured JSON
59
+ payload, and calls `meetings record`. The server atomically creates the meeting,
60
+ decisions, and assigned project tasks and returns a direct web-app link.
61
+
62
+ For room classification, Codex can read the project-specific categorization
63
+ review resource or use the dedicated MCP tools. Review manifests default every
64
+ room to rejected so ambiguous spaces remain visible until a category is
65
+ explicitly accepted with a reason.
66
+
67
+ For staged Revit imports, agents use `revit-imports review` or
68
+ `vp_review_revit_import` first. The returned review token identifies the exact
69
+ payload and diff that was inspected. Confirmation requires that unchanged token
70
+ plus explicit `--yes` or MCP `confirm=true`; stale reviews are rejected.
71
+
48
72
  ## MCP setup
49
73
 
50
74
  1. In the VentilatePro web app, open Account Settings and create a CLI token with
@@ -13,7 +13,7 @@ dependencies = [
13
13
  "requests>=2.32.0",
14
14
  "keyring>=25.6.0",
15
15
  "platformdirs>=4.3.0",
16
- "mcp>=1.23.0",
16
+ "mcp>=1.23.0,<2.0.0",
17
17
  ]
18
18
 
19
19
  [project.urls]