zeo-integrations 0.1.0.post14__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 (135) hide show
  1. zeo_integrations-0.1.0.post14/.gitignore +9 -0
  2. zeo_integrations-0.1.0.post14/LICENSE +21 -0
  3. zeo_integrations-0.1.0.post14/NOTICE +65 -0
  4. zeo_integrations-0.1.0.post14/PKG-INFO +119 -0
  5. zeo_integrations-0.1.0.post14/README.md +41 -0
  6. zeo_integrations-0.1.0.post14/docs/inventory/README.md +148 -0
  7. zeo_integrations-0.1.0.post14/packages/README.md +26 -0
  8. zeo_integrations-0.1.0.post14/packages/hubspot/LICENSE +21 -0
  9. zeo_integrations-0.1.0.post14/packages/hubspot/NOTICE +21 -0
  10. zeo_integrations-0.1.0.post14/packages/hubspot/README.md +37 -0
  11. zeo_integrations-0.1.0.post14/packages/hubspot/pyproject.toml +31 -0
  12. zeo_integrations-0.1.0.post14/packages/hubspot/src/zeo_integrations/hubspot/__init__.py +38 -0
  13. zeo_integrations-0.1.0.post14/packages/hubspot/src/zeo_integrations/hubspot/client.py +534 -0
  14. zeo_integrations-0.1.0.post14/packages/hubspot/src/zeo_integrations/hubspot/models.py +376 -0
  15. zeo_integrations-0.1.0.post14/packages/hubspot/src/zeo_integrations/hubspot/transport.py +329 -0
  16. zeo_integrations-0.1.0.post14/packages/hubspot/src/zeo_integrations/hubspot/workflow.py +159 -0
  17. zeo_integrations-0.1.0.post14/packages/kit/LICENSE +21 -0
  18. zeo_integrations-0.1.0.post14/packages/kit/NOTICE +26 -0
  19. zeo_integrations-0.1.0.post14/packages/kit/README.md +80 -0
  20. zeo_integrations-0.1.0.post14/packages/kit/pyproject.toml +32 -0
  21. zeo_integrations-0.1.0.post14/packages/kit/src/zeo_integrations/kit/__init__.py +19 -0
  22. zeo_integrations-0.1.0.post14/packages/kit/src/zeo_integrations/kit/client.py +123 -0
  23. zeo_integrations-0.1.0.post14/packages/kit/src/zeo_integrations/kit/models.py +89 -0
  24. zeo_integrations-0.1.0.post14/packages/kit/src/zeo_integrations/kit/transport.py +280 -0
  25. zeo_integrations-0.1.0.post14/packages/loops/LICENSE +21 -0
  26. zeo_integrations-0.1.0.post14/packages/loops/NOTICE +6 -0
  27. zeo_integrations-0.1.0.post14/packages/loops/README.md +81 -0
  28. zeo_integrations-0.1.0.post14/packages/loops/pyproject.toml +29 -0
  29. zeo_integrations-0.1.0.post14/packages/loops/src/zeo_integrations/loops/__init__.py +76 -0
  30. zeo_integrations-0.1.0.post14/packages/loops/src/zeo_integrations/loops/client.py +134 -0
  31. zeo_integrations-0.1.0.post14/packages/loops/src/zeo_integrations/loops/contacts.py +45 -0
  32. zeo_integrations-0.1.0.post14/packages/loops/src/zeo_integrations/loops/models.py +279 -0
  33. zeo_integrations-0.1.0.post14/packages/loops/src/zeo_integrations/loops/transport.py +255 -0
  34. zeo_integrations-0.1.0.post14/packages/loops/src/zeo_integrations/loops/webhooks.py +86 -0
  35. zeo_integrations-0.1.0.post14/pyproject.toml +79 -0
  36. zeo_integrations-0.1.0.post14/src/zeo_integrations/_distribution.py +3 -0
  37. zeo_integrations-0.1.0.post14/src/zeo_integrations/google/NOTICE +161 -0
  38. zeo_integrations-0.1.0.post14/src/zeo_integrations/google/__init__.py +55 -0
  39. zeo_integrations-0.1.0.post14/src/zeo_integrations/google/auth.py +348 -0
  40. zeo_integrations-0.1.0.post14/src/zeo_integrations/google/calendar/__init__.py +75 -0
  41. zeo_integrations-0.1.0.post14/src/zeo_integrations/google/calendar/models.py +239 -0
  42. zeo_integrations-0.1.0.post14/src/zeo_integrations/google/calendar/protocols.py +279 -0
  43. zeo_integrations-0.1.0.post14/src/zeo_integrations/google/calendar/service.py +720 -0
  44. zeo_integrations-0.1.0.post14/src/zeo_integrations/google/config.py +490 -0
  45. zeo_integrations-0.1.0.post14/src/zeo_integrations/google/credential_paths.py +286 -0
  46. zeo_integrations-0.1.0.post14/src/zeo_integrations/google/docs/__init__.py +77 -0
  47. zeo_integrations-0.1.0.post14/src/zeo_integrations/google/docs/models.py +90 -0
  48. zeo_integrations-0.1.0.post14/src/zeo_integrations/google/docs/protocols.py +165 -0
  49. zeo_integrations-0.1.0.post14/src/zeo_integrations/google/docs/request_builder.py +151 -0
  50. zeo_integrations-0.1.0.post14/src/zeo_integrations/google/docs/service.py +724 -0
  51. zeo_integrations-0.1.0.post14/src/zeo_integrations/google/drive/__init__.py +42 -0
  52. zeo_integrations-0.1.0.post14/src/zeo_integrations/google/drive/comments.py +315 -0
  53. zeo_integrations-0.1.0.post14/src/zeo_integrations/google/drive/models.py +145 -0
  54. zeo_integrations-0.1.0.post14/src/zeo_integrations/google/drive/operations/__init__.py +22 -0
  55. zeo_integrations-0.1.0.post14/src/zeo_integrations/google/drive/operations/download.py +167 -0
  56. zeo_integrations-0.1.0.post14/src/zeo_integrations/google/drive/operations/folder.py +138 -0
  57. zeo_integrations-0.1.0.post14/src/zeo_integrations/google/drive/operations/list_files.py +91 -0
  58. zeo_integrations-0.1.0.post14/src/zeo_integrations/google/drive/operations/permissions.py +124 -0
  59. zeo_integrations-0.1.0.post14/src/zeo_integrations/google/drive/operations/upload.py +210 -0
  60. zeo_integrations-0.1.0.post14/src/zeo_integrations/google/drive/protocols.py +191 -0
  61. zeo_integrations-0.1.0.post14/src/zeo_integrations/google/drive/service.py +1087 -0
  62. zeo_integrations-0.1.0.post14/src/zeo_integrations/google/drive/utils/__init__.py +13 -0
  63. zeo_integrations-0.1.0.post14/src/zeo_integrations/google/drive/utils/api.py +96 -0
  64. zeo_integrations-0.1.0.post14/src/zeo_integrations/google/drive/utils/query.py +94 -0
  65. zeo_integrations-0.1.0.post14/src/zeo_integrations/google/mail/__init__.py +27 -0
  66. zeo_integrations-0.1.0.post14/src/zeo_integrations/google/mail/config.py +31 -0
  67. zeo_integrations-0.1.0.post14/src/zeo_integrations/google/mail/operations/__init__.py +14 -0
  68. zeo_integrations-0.1.0.post14/src/zeo_integrations/google/mail/operations/attachments.py +218 -0
  69. zeo_integrations-0.1.0.post14/src/zeo_integrations/google/mail/operations/auth.py +44 -0
  70. zeo_integrations-0.1.0.post14/src/zeo_integrations/google/mail/operations/email.py +481 -0
  71. zeo_integrations-0.1.0.post14/src/zeo_integrations/google/mail/protocols.py +132 -0
  72. zeo_integrations-0.1.0.post14/src/zeo_integrations/google/mail/service.py +457 -0
  73. zeo_integrations-0.1.0.post14/src/zeo_integrations/google/mail/utils/__init__.py +12 -0
  74. zeo_integrations-0.1.0.post14/src/zeo_integrations/google/mail/utils/api.py +111 -0
  75. zeo_integrations-0.1.0.post14/src/zeo_integrations/google/ports.py +35 -0
  76. zeo_integrations-0.1.0.post14/src/zeo_integrations/google/serialization.py +26 -0
  77. zeo_integrations-0.1.0.post14/src/zeo_integrations/google/sheets/__init__.py +90 -0
  78. zeo_integrations-0.1.0.post14/src/zeo_integrations/google/sheets/models.py +351 -0
  79. zeo_integrations-0.1.0.post14/src/zeo_integrations/google/sheets/protocols.py +278 -0
  80. zeo_integrations-0.1.0.post14/src/zeo_integrations/google/sheets/request_builder.py +133 -0
  81. zeo_integrations-0.1.0.post14/src/zeo_integrations/google/sheets/service.py +723 -0
  82. zeo_integrations-0.1.0.post14/src/zeo_integrations/google/slides/__init__.py +101 -0
  83. zeo_integrations-0.1.0.post14/src/zeo_integrations/google/slides/models.py +103 -0
  84. zeo_integrations-0.1.0.post14/src/zeo_integrations/google/slides/protocols.py +144 -0
  85. zeo_integrations-0.1.0.post14/src/zeo_integrations/google/slides/request_builder.py +162 -0
  86. zeo_integrations-0.1.0.post14/src/zeo_integrations/google/slides/service.py +474 -0
  87. zeo_integrations-0.1.0.post14/src/zeo_integrations/google/youtube/__init__.py +28 -0
  88. zeo_integrations-0.1.0.post14/src/zeo_integrations/google/youtube/job.py +603 -0
  89. zeo_integrations-0.1.0.post14/src/zeo_integrations/google/youtube/links.py +175 -0
  90. zeo_integrations-0.1.0.post14/src/zeo_integrations/google/youtube/models.py +202 -0
  91. zeo_integrations-0.1.0.post14/src/zeo_integrations/google/youtube/publish.py +1103 -0
  92. zeo_integrations-0.1.0.post14/src/zeo_integrations/google/youtube/relay.py +122 -0
  93. zeo_integrations-0.1.0.post14/src/zeo_integrations/google/youtube/retention.py +193 -0
  94. zeo_integrations-0.1.0.post14/src/zeo_integrations/google/youtube/service.py +592 -0
  95. zeo_integrations-0.1.0.post14/src/zeo_integrations/google/youtube/transfer.py +352 -0
  96. zeo_integrations-0.1.0.post14/src/zeo_integrations/hubspot/NOTICE +35 -0
  97. zeo_integrations-0.1.0.post14/src/zeo_integrations/hubspot/__init__.py +39 -0
  98. zeo_integrations-0.1.0.post14/src/zeo_integrations/hubspot/client.py +510 -0
  99. zeo_integrations-0.1.0.post14/src/zeo_integrations/hubspot/models.py +354 -0
  100. zeo_integrations-0.1.0.post14/src/zeo_integrations/hubspot/py.typed +0 -0
  101. zeo_integrations-0.1.0.post14/src/zeo_integrations/hubspot/service.py +52 -0
  102. zeo_integrations-0.1.0.post14/src/zeo_integrations/hubspot/transport.py +186 -0
  103. zeo_integrations-0.1.0.post14/src/zeo_integrations/hubspot/workflow.py +137 -0
  104. zeo_integrations-0.1.0.post14/src/zeo_integrations/kit/NOTICE +34 -0
  105. zeo_integrations-0.1.0.post14/src/zeo_integrations/kit/__init__.py +41 -0
  106. zeo_integrations-0.1.0.post14/src/zeo_integrations/kit/client.py +630 -0
  107. zeo_integrations-0.1.0.post14/src/zeo_integrations/kit/models.py +264 -0
  108. zeo_integrations-0.1.0.post14/src/zeo_integrations/kit/py.typed +0 -0
  109. zeo_integrations-0.1.0.post14/src/zeo_integrations/kit/service.py +58 -0
  110. zeo_integrations-0.1.0.post14/src/zeo_integrations/kit/transport.py +205 -0
  111. zeo_integrations-0.1.0.post14/src/zeo_integrations/revolut/NOTICE +40 -0
  112. zeo_integrations-0.1.0.post14/src/zeo_integrations/revolut/__init__.py +76 -0
  113. zeo_integrations-0.1.0.post14/src/zeo_integrations/revolut/client.py +266 -0
  114. zeo_integrations-0.1.0.post14/src/zeo_integrations/revolut/hosted.py +112 -0
  115. zeo_integrations-0.1.0.post14/src/zeo_integrations/revolut/local/__init__.py +19 -0
  116. zeo_integrations-0.1.0.post14/src/zeo_integrations/revolut/local/__main__.py +249 -0
  117. zeo_integrations-0.1.0.post14/src/zeo_integrations/revolut/local/auth.py +285 -0
  118. zeo_integrations-0.1.0.post14/src/zeo_integrations/revolut/local/session.py +386 -0
  119. zeo_integrations-0.1.0.post14/src/zeo_integrations/revolut/local/store.py +207 -0
  120. zeo_integrations-0.1.0.post14/src/zeo_integrations/revolut/models.py +330 -0
  121. zeo_integrations-0.1.0.post14/src/zeo_integrations/revolut/py.typed +0 -0
  122. zeo_integrations-0.1.0.post14/src/zeo_integrations/revolut/service.py +56 -0
  123. zeo_integrations-0.1.0.post14/src/zeo_integrations/revolut/transport.py +243 -0
  124. zeo_integrations-0.1.0.post14/src/zeo_integrations/supabase/NOTICE +39 -0
  125. zeo_integrations-0.1.0.post14/src/zeo_integrations/supabase/__init__.py +61 -0
  126. zeo_integrations-0.1.0.post14/src/zeo_integrations/supabase/auth.py +95 -0
  127. zeo_integrations-0.1.0.post14/src/zeo_integrations/supabase/client.py +628 -0
  128. zeo_integrations-0.1.0.post14/src/zeo_integrations/supabase/config.py +106 -0
  129. zeo_integrations-0.1.0.post14/src/zeo_integrations/supabase/errors.py +38 -0
  130. zeo_integrations-0.1.0.post14/src/zeo_integrations/supabase/models.py +168 -0
  131. zeo_integrations-0.1.0.post14/src/zeo_integrations/supabase/protocols.py +225 -0
  132. zeo_integrations-0.1.0.post14/src/zeo_integrations/supabase/py.typed +0 -0
  133. zeo_integrations-0.1.0.post14/src/zeo_integrations/supabase/realtime.py +134 -0
  134. zeo_integrations-0.1.0.post14/src/zeo_integrations/supabase/service.py +407 -0
  135. zeo_integrations-0.1.0.post14/src/zeo_integrations/supabase/validation.py +75 -0
@@ -0,0 +1,9 @@
1
+ .venv/
2
+ __pycache__/
3
+ *.py[cod]
4
+ .ruff_cache/
5
+ .coverage
6
+ dist/
7
+ *.egg-info/
8
+ .env
9
+ .env.*
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Zero Employee Organizations
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,65 @@
1
+ zeointegrations
2
+ Copyright (c) 2026 Zero Employee Organizations
3
+ Distributed under the MIT License; see LICENSE.
4
+
5
+ The initial skeleton copied no implementation source. docs/inventory contains
6
+ source-derived metadata, not provider code. Later package ports are listed below.
7
+
8
+ Canonical source: VeyraX/veyrax-platform; inventoried through the local
9
+ rodriveracom/veyrax-platform fork at the identical
10
+ commit 1cdddde9d5d76b9891896ca78a95e069647e81df.
11
+ Its MIT license states Copyright (c) 2025 VeyraX.
12
+ The full source notice is preserved in docs/licenses/VeyraX-MIT.txt.
13
+
14
+ Inventory source: zeroemployeeorg/zeocore,
15
+ commit 2e7cb11fa9aaf133876c02c1eea8f1ccd94bba04 (MIT).
16
+ Its MIT license states Copyright (c) 2026 Rod Rivera.
17
+
18
+ Future ports must add a per-file source-to-destination provenance map here and
19
+ in their package NOTICE, and retain source copyright and permission notices.
20
+
21
+ Kit read-only client port: zeroemployeeorg/zeocore at
22
+ 25a9c899c17ac6cdf54f4949e54b0fcc800cce91, Copyright (c) 2026 Rod Rivera.
23
+ MIT permission and copyright notice are retained verbatim in packages/kit/LICENSE
24
+ and referenced in packages/kit/NOTICE; adapted modules retain per-file headers.
25
+ Source-to-destination mapping:
26
+ src/zeo_core/integrations/kit/client.py -> packages/kit/src/zeo_integrations/kit/client.py
27
+ src/zeo_core/integrations/kit/models.py -> packages/kit/src/zeo_integrations/kit/models.py
28
+ src/zeo_core/integrations/kit/transport.py -> packages/kit/src/zeo_integrations/kit/transport.py
29
+ LICENSE -> packages/kit/LICENSE
30
+ Only the current-API read-only subset is adapted; service, registry, credential
31
+ custody and private Broker fixtures are excluded. See package NOTICE for details.
32
+
33
+ HubSpot provider port: zeroemployeeorg/zeocore@6bd62fbbfc4453908ab464219c2a304d7420b15b,
34
+ Copyright (c) 2026 Rod Rivera, MIT permission retained in packages/hubspot/LICENSE.
35
+ Exact source/destination/blob mapping (prefix src/zeo_core/integrations/hubspot/
36
+ -> packages/hubspot/src/zeo_integrations/hubspot/):
37
+ client.py -> client.py; e36ec1c646b1d1b16184e500bdb9bb6008d97a7c
38
+ models.py -> models.py; a0d95437b736cf7a3198acf1d0f88849aad32903
39
+ transport.py -> transport.py; 7e5b9d0be1f54e33ffe999704a042d125beb67a3
40
+ workflow.py -> workflow.py; 97d628d4b42986332c134dfd2d2db25a24bd67b9
41
+ LICENSE [blob ff593bd47616c4602615f901b800f4d0965c805b] -> packages/hubspot/LICENSE; original MIT copyright and permission.
42
+ See package NOTICE for byte-identical first move and separately reviewed changes.
43
+
44
+ Aggregate test support copied without behaviour changes from
45
+ zeroemployeeorg/zeocore@7c9923e6fd93cabb8601040f3e431760be3a18ee:
46
+ tests/conftest.py and tests/__init__.py.
47
+ The initially empty tests/test_integrations/__init__.py now contains an authored
48
+ unittest discovery adapter: provider tests run via the explicit full-gate pytest
49
+ invocation, keeping dependency-free smoke discovery separate.
50
+ MIT Copyright(c)2026 Rod Rivera; repository LICENSE retains the full terms.
51
+
52
+ Whole-provider migration batch1 from zeroemployeeorg/zeocore commit
53
+ 7c9923e6fd93cabb8601040f3e431760be3a18ee, MIT Copyright(c)2026 Rod Rivera.
54
+ HubSpot, Kit (legacy full API), Revolut and Supabase plus their tests move
55
+ mechanically with import/module references adapted. Complete per-file old/new
56
+ paths and Git blob provenance: docs/migrations/core-7c9923e6-batch1.json.
57
+ Core contracts, services infrastructure and signer custody remain in zeocore;
58
+ this collection depends on that published framework. Older standalone
59
+ read-only/hardened package artifacts remain separately preserved evidence.
60
+
61
+ Whole-batch test ownership partition, Core7c9923e6: 217 original test functions;
62
+ 194 portable functions move here; 23 Core tool, entrypoint or setup-catalog
63
+ functions remain unchanged in Core until the post-PyPI shim. No skips or aliases.
64
+ Per-function ownership, original/moved hashes and assertion counts cover every
65
+ original Python test/support file in docs/migrations/core-7c9923e6-batch1.json.
@@ -0,0 +1,119 @@
1
+ Metadata-Version: 2.4
2
+ Name: zeo-integrations
3
+ Version: 0.1.0.post14
4
+ Summary: Zeo integration collection; provider SDKs are optional
5
+ License-Expression: MIT
6
+ License-File: LICENSE
7
+ License-File: NOTICE
8
+ Requires-Python: >=3.12
9
+ Requires-Dist: httpx<1,>=0.28.1
10
+ Requires-Dist: pydantic<3,>=2.13.4
11
+ Requires-Dist: zeocore<1,>=0.43.0
12
+ Provides-Extra: bluesky
13
+ Requires-Dist: platformdirs>=4; extra == 'bluesky'
14
+ Requires-Dist: requests; extra == 'bluesky'
15
+ Provides-Extra: calendar
16
+ Requires-Dist: google-api-python-client>=2; extra == 'calendar'
17
+ Requires-Dist: google-auth-httplib2>=0.1; extra == 'calendar'
18
+ Requires-Dist: google-auth-oauthlib>=0.4; extra == 'calendar'
19
+ Requires-Dist: platformdirs>=4; extra == 'calendar'
20
+ Provides-Extra: docs
21
+ Requires-Dist: google-api-python-client>=2; extra == 'docs'
22
+ Requires-Dist: google-auth-httplib2>=0.1; extra == 'docs'
23
+ Requires-Dist: google-auth-oauthlib>=0.4; extra == 'docs'
24
+ Requires-Dist: platformdirs>=4; extra == 'docs'
25
+ Provides-Extra: drive
26
+ Requires-Dist: google-api-python-client>=2; extra == 'drive'
27
+ Requires-Dist: google-auth-httplib2>=0.1; extra == 'drive'
28
+ Requires-Dist: google-auth-oauthlib>=0.4; extra == 'drive'
29
+ Requires-Dist: platformdirs>=4; extra == 'drive'
30
+ Provides-Extra: ffmpeg
31
+ Requires-Dist: ffmpeg-zeo>=0.1; extra == 'ffmpeg'
32
+ Provides-Extra: github
33
+ Requires-Dist: requests; extra == 'github'
34
+ Provides-Extra: gmail
35
+ Requires-Dist: google-api-python-client>=2; extra == 'gmail'
36
+ Requires-Dist: google-auth-httplib2>=0.1; extra == 'gmail'
37
+ Requires-Dist: google-auth-oauthlib>=0.4; extra == 'gmail'
38
+ Requires-Dist: platformdirs>=4; extra == 'gmail'
39
+ Provides-Extra: google
40
+ Requires-Dist: google-api-python-client>=2; extra == 'google'
41
+ Requires-Dist: google-auth-httplib2>=0.1; extra == 'google'
42
+ Requires-Dist: google-auth-oauthlib>=0.4; extra == 'google'
43
+ Requires-Dist: platformdirs>=4; extra == 'google'
44
+ Provides-Extra: jupytext
45
+ Requires-Dist: jupytext>=1.16; extra == 'jupytext'
46
+ Requires-Dist: nbformat>=5.10; extra == 'jupytext'
47
+ Provides-Extra: llms
48
+ Requires-Dist: anthropic; extra == 'llms'
49
+ Requires-Dist: openai; extra == 'llms'
50
+ Requires-Dist: tiktoken; extra == 'llms'
51
+ Provides-Extra: notion
52
+ Requires-Dist: notion-client>=3.1.0; extra == 'notion'
53
+ Provides-Extra: pandoc
54
+ Requires-Dist: beautifulsoup4; extra == 'pandoc'
55
+ Requires-Dist: pypandoc; extra == 'pandoc'
56
+ Provides-Extra: revolut
57
+ Requires-Dist: cryptography>=45; extra == 'revolut'
58
+ Requires-Dist: platformdirs>=4; extra == 'revolut'
59
+ Provides-Extra: sheets
60
+ Requires-Dist: google-api-python-client>=2; extra == 'sheets'
61
+ Requires-Dist: google-auth-httplib2>=0.1; extra == 'sheets'
62
+ Requires-Dist: google-auth-oauthlib>=0.4; extra == 'sheets'
63
+ Requires-Dist: platformdirs>=4; extra == 'sheets'
64
+ Provides-Extra: slides
65
+ Requires-Dist: google-api-python-client>=2; extra == 'slides'
66
+ Requires-Dist: google-auth-httplib2>=0.1; extra == 'slides'
67
+ Requires-Dist: google-auth-oauthlib>=0.4; extra == 'slides'
68
+ Requires-Dist: platformdirs>=4; extra == 'slides'
69
+ Provides-Extra: supabase
70
+ Requires-Dist: supabase<3,>=2.31.0; extra == 'supabase'
71
+ Provides-Extra: youtube
72
+ Requires-Dist: google-api-python-client>=2; extra == 'youtube'
73
+ Requires-Dist: google-auth-httplib2>=0.1; extra == 'youtube'
74
+ Requires-Dist: google-auth-oauthlib>=0.4; extra == 'youtube'
75
+ Requires-Dist: platformdirs>=4; extra == 'youtube'
76
+ Requires-Dist: requests; extra == 'youtube'
77
+ Description-Content-Type: text/markdown
78
+
79
+ # Zeo integrations
80
+
81
+ One distribution, `zeo-integrations`, containing provider modules under
82
+ `zeo_integrations.<provider>`. The collection depends on published `zeocore`;
83
+ Core does not import the collection at import time. Provider SDKs are optional
84
+ extras, for example `pip install 'zeo-integrations[google]'` after the single
85
+ aggregate publication exists. During migration, install from this repository
86
+ at an exact reviewed commit. Do not register per-provider PyPI projects.
87
+
88
+ This first foundation supplies shared packaging for the provider move PRs;
89
+ it does not claim every provider is present yet. Google remains one family.
90
+ Existing Core entry-point names stay in Core, so installing the collection does
91
+ not register duplicate plugins. Core's optional lazy compatibility shims follow
92
+ actual aggregate PyPI publication. No base-contract extraction or injected ports.
93
+
94
+ The older per-provider source directories and hash-bound release files remain
95
+ historical/consumer evidence during transition; they are not additional future
96
+ PyPI distributions. Core-shaped whole provider moves and earlier standalone
97
+ hardened/read-only APIs have different scope and must not be silently co-installed.
98
+
99
+ # zeointegrations
100
+
101
+ Integrations for zeo tools: install only the packages a tool needs, discovered
102
+ through `zeo_core.integrations`. Split out of zeocore under zeocore-SOW-36.
103
+
104
+ External services use `zeo-integration-<name>`; local capabilities use
105
+ `zeo-plugin-<name>`. Google is one package with six existing entry-point names.
106
+ Credentialed integrations execute inside ZEOconnect with injected credentials.
107
+
108
+ This initial repository contains the development skeleton and a
109
+ [read-only source inventory](docs/inventory/README.md). No provider package is
110
+ installable yet. PyPI publication requires the approved trusted-publisher setup.
111
+ The first slice is tracked as `zeointegrations-SOW-01`, minted by zeo-rt.
112
+
113
+ ```sh
114
+ make setup
115
+ make verify
116
+ ```
117
+
118
+ See [CONTRIBUTING.md](CONTRIBUTING.md) for layout, qualification, migration and
119
+ review rules; [NOTICE](NOTICE) records source attribution.
@@ -0,0 +1,41 @@
1
+ # Zeo integrations
2
+
3
+ One distribution, `zeo-integrations`, containing provider modules under
4
+ `zeo_integrations.<provider>`. The collection depends on published `zeocore`;
5
+ Core does not import the collection at import time. Provider SDKs are optional
6
+ extras, for example `pip install 'zeo-integrations[google]'` after the single
7
+ aggregate publication exists. During migration, install from this repository
8
+ at an exact reviewed commit. Do not register per-provider PyPI projects.
9
+
10
+ This first foundation supplies shared packaging for the provider move PRs;
11
+ it does not claim every provider is present yet. Google remains one family.
12
+ Existing Core entry-point names stay in Core, so installing the collection does
13
+ not register duplicate plugins. Core's optional lazy compatibility shims follow
14
+ actual aggregate PyPI publication. No base-contract extraction or injected ports.
15
+
16
+ The older per-provider source directories and hash-bound release files remain
17
+ historical/consumer evidence during transition; they are not additional future
18
+ PyPI distributions. Core-shaped whole provider moves and earlier standalone
19
+ hardened/read-only APIs have different scope and must not be silently co-installed.
20
+
21
+ # zeointegrations
22
+
23
+ Integrations for zeo tools: install only the packages a tool needs, discovered
24
+ through `zeo_core.integrations`. Split out of zeocore under zeocore-SOW-36.
25
+
26
+ External services use `zeo-integration-<name>`; local capabilities use
27
+ `zeo-plugin-<name>`. Google is one package with six existing entry-point names.
28
+ Credentialed integrations execute inside ZEOconnect with injected credentials.
29
+
30
+ This initial repository contains the development skeleton and a
31
+ [read-only source inventory](docs/inventory/README.md). No provider package is
32
+ installable yet. PyPI publication requires the approved trusted-publisher setup.
33
+ The first slice is tracked as `zeointegrations-SOW-01`, minted by zeo-rt.
34
+
35
+ ```sh
36
+ make setup
37
+ make verify
38
+ ```
39
+
40
+ See [CONTRIBUTING.md](CONTRIBUTING.md) for layout, qualification, migration and
41
+ review rules; [NOTICE](NOTICE) records source attribution.
@@ -0,0 +1,148 @@
1
+ # First-hour read-only inventory
2
+
3
+ Prepared 2026-10-17 by the zeointegrations seat under charter v1 and runtime-minted
4
+ `zeointegrations-SOW-01`. Mint record:
5
+ `matorclawson/org-zeroemployeeorg@d72aba45ac75f20d302295352dd50f3572894ffb:projects/zeointegrations/sow/zeointegrations/zeointegrations-SOW-01-integration-inventory-packaging-skeleton-and.md`.
6
+ Sources:
7
+
8
+ - VeyraX: canonical `VeyraX/veyrax-platform@1cdddde9d5d76b9891896ca78a95e069647e81df`,
9
+ inventoried through the identical local `rodriveracom/veyrax-platform` fork.
10
+ - zeocore: `zeroemployeeorg/zeocore@2e7cb11fa9aaf133876c02c1eea8f1ccd94bba04`.
11
+ - Council-reviewed design: zeocore-SOW-36 rev 5,
12
+ `matorclawson/org-zeroemployeeorg@0f2bf62e2`, with Architect rulings
13
+ `ans_cbd9dfb83a794f92`.
14
+
15
+ The [VeyraX table](veyrax.md) covers **84 directories, 79 registered routers,
16
+ 79,296 Python lines including tests, and 5,026,896 tracked bytes**. The
17
+ [zeocore table](zeocore.md) covers all **17 registered entry points**. Exact
18
+ sizes, direct import roots, test-only imports and existing dependency declarations
19
+ are in [snapshot.json](snapshot.json). All inspected Python parsed successfully.
20
+
21
+ ## Findings that affect the order
22
+
23
+ 1. This VeyraX snapshot contains no HubSpot or Stripe integration. HubSpot already
24
+ exists in zeocore; Stripe requires another licensed source or a fresh
25
+ implementation. Neither should be represented as a VeyraX port.
26
+ 2. VeyraX has Gmail code, but `gmail_router` is only imported in `main.py`: it is
27
+ absent from `INTEGRATION_ROUTERS` and `catalog.json`. DocuSign, Hilvl and
28
+ veyrax-mcp also have source without registration. `common` is shared support.
29
+ Source presence does not establish a working deployed integration.
30
+ 3. Catalog auth `none` conceals server credentials for Apollo, Binance P2P,
31
+ Bybit P2P, OKX P2P, IPinfo, Skyscanner, Yelp and Zillow. Their routes/clients
32
+ read server API keys; they are credentialed integrations under this charter.
33
+ 4. Custom auth is not uniform: Amazon uses access/secret keys and associate tag;
34
+ Cloudinary uses key/secret/cloud name; mail uses SMTP/IMAP credentials;
35
+ Sentry uses API key/org slug (and has an OAuth branch). Facebook, Instagram,
36
+ LinkedIn and X combine profile inputs with server RapidAPI credentials.
37
+ `db_access` means database connection credentials; `api_key_with_base` also
38
+ accepts a base URL. WhatsApp uses a QR/session bridge. Port credential and
39
+ origin handling through the Broker's approved interface.
40
+ 5. VeyraX NeonDB and Supabase delegate to its PostgreSQL service. Its Supabase
41
+ SQL operations are not equivalent to zeocore's Supabase SDK integration.
42
+ Google Maps uses an API key, distinct from Google Workspace OAuth. Its
43
+ YouTube implementation does not establish coverage of zeocore's upload path.
44
+ 6. Shared VeyraX `common` code includes token lookup, refresh and custody. That
45
+ infrastructure belongs to ZEOconnect and will not be copied into packages.
46
+ Existing HTML/component assets need translation into zeocore's data-only
47
+ schema, not direct frontend copying.
48
+ 7. `veyrax_auth` is VeyraX's own Supabase-backed credential store with shared
49
+ encryption; catalog `none` is not credential-free execution. `veyrax` is
50
+ a per-user memory store over Supabase `users_memory`. Both remain outside
51
+ the provider-port queue.
52
+
53
+ ## Proposed order
54
+
55
+ The approved SOW-36 package migration order and this charter's priority for new
56
+ ports are separate queues. Coordinate each move with zeocore; keep one open PR.
57
+
58
+ 1. This skeleton and CI. After merge, the Architect adds the `verify` check to
59
+ the main ruleset. No publishing workflow or provider package in this slice.
60
+ 2. zeocore-owned groundwork: local App signer relocation and duplicate-entry
61
+ guard; then the credential-free **ffmpeg pilot** in its own package PR.
62
+ The pilot can prove packaging/discovery, not Broker credential custody.
63
+ 3. Local plugins: pandoc, jupytext, notebook (the last keeps no entry point).
64
+ 4. Existing credentialed moves in reviewed order: Bluesky; Google (one package,
65
+ six names); HubSpot; Kit; Notion; Supabase; GitHub; LLMs; Gemini; Meetings;
66
+ Revolut last. Google/YouTube has its own follow-on split. zeocore owns shims,
67
+ extras, removals and compatibility. Package moves alone admit no Broker route.
68
+ 5. New operation/port work by use: first review HubSpot gaps against its existing
69
+ package, then Gmail/Google gaps against the unified package; source Stripe
70
+ separately; then Notion, GitHub and Slack. Start credentialed proof with an
71
+ already admitted operation and a synthetic provider double agreed with
72
+ zeoconnect-integrations. Runtime priorities remain subject to owner agreement.
73
+ 6. Remaining VeyraX work only as a consumer needs it: task/workflow tools
74
+ (Linear, Jira, Asana, Todoist, Trello); mail/storage (Outlook, Dropbox, Resend,
75
+ SMTP); database family (PostgreSQL/Neon/Supabase SQL, ClickHouse, Snowflake);
76
+ search/research and remaining API-key tools; heavier browser, media, social,
77
+ QR bridge and unregistered adapters after their runtime dependencies are
78
+ reviewed. This is a proposed demand order, not authorization for 79 ports.
79
+
80
+ ## Contract and runtime boundary
81
+
82
+ SOW-36 specifies manifest metadata, package names, entry-point preservation and
83
+ qualification, but no implemented machine serialization or new Broker ABI.
84
+ zeoconnect-tools confirmed this remains joint zeocore/maintainer/council design
85
+ (`ans_a055ed6a622cf24d`). Its loader will bind explicitly pinned installed
86
+ packages through ConnectorRevision and observation/effect dispatchers after
87
+ admission and custody callback. No package-owned OAuth, refresh/store custody,
88
+ caller-selected origin, or credentials in logs/results.
89
+
90
+ The reviewed design says Broker composition covers two Gmail reads, HubSpot/Kit
91
+ newsletter operations, and two Revolut reads that are HELD; it does not run
92
+ zeocore integration packages today. This is a cited design snapshot, not a claim
93
+ about current live allowlists. Confirm exact per-operation composition and
94
+ admission with the owners before each migration. An existing entry point is not
95
+ proof of an equivalent Broker operation.
96
+
97
+ The source tree's distribution is named `zeocore`; the design sometimes spells
98
+ it `zeo-core`. Package requirements must use the owner's confirmed actual name
99
+ and minimum compatible version, with real installation proof.
100
+
101
+ ## Method and reproducibility
102
+
103
+ `tools/inventory.py` obtains the source HEAD commits, uses `git archive` into
104
+ memory, and parses Python AST, TOML and JSON. It executes no source code, loads
105
+ no source environment, reads no live credentials, installs no provider packages,
106
+ and writes only the report outside the source repositories. Dependency lists
107
+ are direct static imports; they do not prove dynamic imports or full transitive
108
+ closure. Lines include comments/blanks and tests. Shared-family sizes are
109
+ identified explicitly rather than counted six times.
110
+
111
+ ```sh
112
+ uv run --frozen python tools/inventory.py \
113
+ --veyrax /path/to/veyrax-platform \
114
+ --zeocore /path/to/zeocore \
115
+ --output docs/inventory/snapshot.json
116
+ ```
117
+
118
+ Use checkouts at the cited commits to reproduce this snapshot. Tables are derived
119
+ from the JSON with auth and overlap qualifications from source review. External
120
+ import roots map to distributions as follows; exact VeyraX source pins appear in
121
+ the JSON and require review for Python 3.14 rather than blind reuse.
122
+
123
+ | Import root | Distribution |
124
+ |---|---|
125
+ | bs4 | beautifulsoup4 |
126
+ | googleapiclient | google-api-python-client |
127
+ | google | google-auth / google-auth-oauthlib (submodule dependent) |
128
+ | dotenv | python-dotenv |
129
+ | dateutil | python-dateutil (not directly pinned in source requirements) |
130
+ | starlette | starlette (transitive through FastAPI) |
131
+ | amazon_paapi | python-amazon-paapi |
132
+ | clickhouse_driver | clickhouse-driver |
133
+ | e2b_code_interpreter | e2b-code-interpreter |
134
+ | psycopg2 | psycopg2-binary |
135
+ | snowflake | snowflake-connector-python |
136
+ | slack_sdk | slack-sdk |
137
+ | sentry_sdk | sentry-sdk |
138
+ | upstash_vector | upstash-vector |
139
+ | yaml | PyYAML |
140
+ | youtube_transcript_api | youtube-transcript-api |
141
+ | pydantic_core | pydantic-core |
142
+ | notion_client | notion-client (zeocore) |
143
+ | ffmpeg_zeo | ffmpeg-zeo (zeocore) |
144
+ | docx | python-docx in zeocore; VeyraX separately pins docx |
145
+
146
+ Other displayed roots use their distribution spelling (normalizing underscores
147
+ to hyphens where applicable). No VeyraX implementation is copied in this slice.
148
+ Its complete MIT notice is preserved in [VeyraX-MIT.txt](../licenses/VeyraX-MIT.txt).
@@ -0,0 +1,26 @@
1
+ # Packages
2
+
3
+ Each integration or local plugin will be added in its own reviewed PR. See
4
+ [the package layout](../CONTRIBUTING.md#package-layout) and
5
+ [the inventory and proposed order](../docs/inventory/README.md).
6
+
7
+ `loops/` is the first API-client package source, consumed directly by Broker;
8
+ it has no Core lifecycle entry point or credential custody. Qualification and
9
+ release status are recorded in its README.
10
+
11
+ `kit/` is a current-API, read-only migration/audit client for subscribers and
12
+ their states, tags, forms and custom fields. It has no entry point, Core
13
+ dependency, subscriber writes, broadcast or sequence surface. Core retains its
14
+ legacy service and registry; legacy write consumers are not redirected here.
15
+ Qualification, independent review and actual migration/audit consumer receiving
16
+ remain unfinished until their separate receipts are recorded. No provider
17
+ retirement or live readiness follows from package source.
18
+
19
+ HubSpot follows under the operator's October 24 priority; the ffmpeg pilot
20
+ remains parked.
21
+
22
+ `hubspot/` extracts the existing provider client, models, transport and workflow
23
+ validator, preserving reviewed guards. Core retains credential discovery, service,
24
+ factory and sole entry point. Core forwarding and the pinned hard dependency wait
25
+ for an actually installable, separately approved release; no consumer adoption
26
+ or provider execution is established by this source package.
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Rod Rivera
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,21 @@
1
+ zeo-integration-hubspot
2
+ Copyright (c) 2026 Rod Rivera
3
+ Licensed under the MIT License; full permission notice in LICENSE.
4
+
5
+ Source: zeroemployeeorg/zeocore
6
+ Commit: 6bd62fbbfc4453908ab464219c2a304d7420b15b
7
+ Source prefix: src/zeo_core/integrations/hubspot/
8
+ Destination prefix: packages/hubspot/src/zeo_integrations/hubspot/
9
+ client.py -> client.py; source blob e36ec1c646b1d1b16184e500bdb9bb6008d97a7c
10
+ models.py -> models.py; source blob a0d95437b736cf7a3198acf1d0f88849aad32903
11
+ transport.py -> transport.py; source blob 7e5b9d0be1f54e33ffe999704a042d125beb67a3
12
+ workflow.py -> workflow.py; source blob 97d628d4b42986332c134dfd2d2db25a24bd67b9
13
+ LICENSE [blob ff593bd47616c4602615f901b800f4d0965c805b] -> packages/hubspot/LICENSE; MIT copyright and permission retained.
14
+
15
+ The first source commit copies the four modules byte-for-byte. Subsequent
16
+ transport hardening and formatting are separate reviewable changes, preserving
17
+ the original blob pins above. Root exports are explicit provider-only exports;
18
+ Core service, factory, environment discovery and entrypoint are excluded.
19
+ No private Broker fixtures, credentials or custody machinery were copied.
20
+ Tests are original synthetic controls. Package layout follows this repository's
21
+ existing Loops and Kit packages; no new dependency family or runtime SDK.
@@ -0,0 +1,37 @@
1
+ # HubSpot marketing provider client
2
+
3
+ sow: zeointegrations-SOW-02
4
+
5
+ Provider extraction from Core 6bd62fbb; exact per-file source blobs are in NOTICE.
6
+ Python >=3.12. Inject SecretStr credentials or an HTTP transport explicitly. No
7
+ Core dependency, environment discovery, service factory or entry point is added.
8
+ Core retains its lifecycle and the sole hubspot.marketing registration. Existing
9
+ Core submodule forwarding and class identity are separate Core-owned receiving
10
+ changes; this source does not claim those shims are installed.
11
+
12
+ The existing client supports marketing email drafts and reviewed publishing,
13
+ campaigns, subscription preferences and a strictly bounded linear email workflow
14
+ subset. Existing confirmation/revision/content-digest/audience/consent guards
15
+ remain. Package code grants no permission to send, schedule, enroll or change
16
+ consent; actual credentialed execution remains inside Broker's approved workflow.
17
+ No live provider or subscriber data is used in verification.
18
+
19
+ The first commit preserves four Core module blobs exactly. Transport hardening
20
+ is a separate tested commit. A full current-head gate, installed-source identity,
21
+ namespace, wheel/sdist/license/NOTICE checks and compatibility controls are needed
22
+ before source approval. Gates run only with present interpreters; unavailable
23
+ Python 3.12 is NOT_RUN, never a fabricated pass. No interpreter download is
24
+ implied by this package's declared floor.
25
+
26
+ Release and adoption are separate: Architect requires the existing signed
27
+ vendored-wheel route, no PyPI/new feed, and a pinned HARD dependency from Core
28
+ once the wheel is actually installable. Core shims must not merge first.
29
+ Newsroom and Broker install no separate extra; their exact released-Core locks
30
+ and consumer checks must pass. No release grant, cryptographic wheel signature,
31
+ publication, installed Core forwarding or consumer readiness is claimed here.
32
+ A hash-bound lane record alone is not a cryptographic signature.
33
+
34
+ Pagination returns one page; complete=true is not an atomic account snapshot.
35
+ Callers bound cross-page cursor history and total reads. Mutation errors can have
36
+ outcome_unknown and require provider-state reconciliation, never automatic retry.
37
+ Dynamic audiences and mutable provider assets retain their existing race limits.
@@ -0,0 +1,31 @@
1
+ [build-system]
2
+ requires = ["hatchling==1.27.0"]
3
+ build-backend = "hatchling.build"
4
+
5
+ [project]
6
+ name = "zeo-integration-hubspot"
7
+ version = "0.1.0"
8
+ description = "Credential-injected HubSpot marketing client"
9
+ requires-python = ">=3.12"
10
+ license = "MIT"
11
+ readme = "README.md"
12
+ dependencies = ["httpx>=0.28.1,<1", "pydantic>=2.13.4,<3"]
13
+
14
+ [dependency-groups]
15
+ dev = ["ruff==0.15.5"]
16
+
17
+ [tool.hatch.build.targets.wheel]
18
+ packages = ["src/zeo_integrations"]
19
+
20
+ [tool.hatch.build.targets.wheel.force-include]
21
+ "NOTICE" = "zeo_integrations/hubspot/NOTICE"
22
+
23
+ [tool.ruff]
24
+ target-version = "py312"
25
+ line-length = 88
26
+
27
+ [tool.ruff.lint]
28
+ select = ["E", "F", "I", "UP", "B"]
29
+
30
+ [tool.uv]
31
+ constraint-dependencies = ["certifi==2026.7.22", "idna==3.19"]
@@ -0,0 +1,38 @@
1
+ """HubSpot provider client; credential discovery and lifecycle remain in Core."""
2
+
3
+ from .client import HubSpotClient
4
+ from .models import (
5
+ Audience,
6
+ CampaignProperties,
7
+ EmailAddress,
8
+ EmailContent,
9
+ EmailDraft,
10
+ EmailSequence,
11
+ MarketingPage,
12
+ MarketingRecord,
13
+ PageRequest,
14
+ PublishRequest,
15
+ SequenceStep,
16
+ SubscriptionChange,
17
+ send_spec_digest,
18
+ )
19
+ from .transport import HubSpotAPIError, HubSpotTransport
20
+
21
+ __all__ = [
22
+ "Audience",
23
+ "CampaignProperties",
24
+ "EmailAddress",
25
+ "EmailContent",
26
+ "EmailDraft",
27
+ "EmailSequence",
28
+ "HubSpotAPIError",
29
+ "HubSpotClient",
30
+ "HubSpotTransport",
31
+ "MarketingPage",
32
+ "MarketingRecord",
33
+ "PageRequest",
34
+ "PublishRequest",
35
+ "SequenceStep",
36
+ "SubscriptionChange",
37
+ "send_spec_digest",
38
+ ]