missilya-sdk 0.2.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 (70) hide show
  1. missilya_sdk-0.2.0/.gitignore +15 -0
  2. missilya_sdk-0.2.0/CHANGELOG.md +66 -0
  3. missilya_sdk-0.2.0/LICENSE +35 -0
  4. missilya_sdk-0.2.0/PKG-INFO +660 -0
  5. missilya_sdk-0.2.0/README.md +568 -0
  6. missilya_sdk-0.2.0/docs/getting-started.md +75 -0
  7. missilya_sdk-0.2.0/docs/migration-guide.md +67 -0
  8. missilya_sdk-0.2.0/pyproject.toml +113 -0
  9. missilya_sdk-0.2.0/src/missilya_sdk/__init__.py +52 -0
  10. missilya_sdk-0.2.0/src/missilya_sdk/_version.py +7 -0
  11. missilya_sdk-0.2.0/src/missilya_sdk/ai/__init__.py +25 -0
  12. missilya_sdk-0.2.0/src/missilya_sdk/ai/_base.py +122 -0
  13. missilya_sdk-0.2.0/src/missilya_sdk/ai/_engine.py +217 -0
  14. missilya_sdk-0.2.0/src/missilya_sdk/ai/chat.py +162 -0
  15. missilya_sdk-0.2.0/src/missilya_sdk/ai/images.py +79 -0
  16. missilya_sdk-0.2.0/src/missilya_sdk/ai/stt.py +80 -0
  17. missilya_sdk-0.2.0/src/missilya_sdk/ai/translation.py +56 -0
  18. missilya_sdk-0.2.0/src/missilya_sdk/ai/tts.py +67 -0
  19. missilya_sdk-0.2.0/src/missilya_sdk/ai/video.py +51 -0
  20. missilya_sdk-0.2.0/src/missilya_sdk/auth/__init__.py +21 -0
  21. missilya_sdk-0.2.0/src/missilya_sdk/auth/google.py +199 -0
  22. missilya_sdk-0.2.0/src/missilya_sdk/auth/jwt.py +92 -0
  23. missilya_sdk-0.2.0/src/missilya_sdk/compat/__init__.py +7 -0
  24. missilya_sdk-0.2.0/src/missilya_sdk/compat/emergent.py +244 -0
  25. missilya_sdk-0.2.0/src/missilya_sdk/config.py +134 -0
  26. missilya_sdk-0.2.0/src/missilya_sdk/context.py +116 -0
  27. missilya_sdk-0.2.0/src/missilya_sdk/exceptions.py +81 -0
  28. missilya_sdk-0.2.0/src/missilya_sdk/monitoring/__init__.py +20 -0
  29. missilya_sdk-0.2.0/src/missilya_sdk/monitoring/analytics.py +74 -0
  30. missilya_sdk-0.2.0/src/missilya_sdk/monitoring/logging.py +111 -0
  31. missilya_sdk-0.2.0/src/missilya_sdk/monitoring/sentry.py +82 -0
  32. missilya_sdk-0.2.0/src/missilya_sdk/notifications/__init__.py +9 -0
  33. missilya_sdk-0.2.0/src/missilya_sdk/notifications/email.py +92 -0
  34. missilya_sdk-0.2.0/src/missilya_sdk/notifications/sms.py +51 -0
  35. missilya_sdk-0.2.0/src/missilya_sdk/notifications/whatsapp.py +49 -0
  36. missilya_sdk-0.2.0/src/missilya_sdk/payments/__init__.py +17 -0
  37. missilya_sdk-0.2.0/src/missilya_sdk/payments/checkout.py +55 -0
  38. missilya_sdk-0.2.0/src/missilya_sdk/payments/stripe.py +137 -0
  39. missilya_sdk-0.2.0/src/missilya_sdk/py.typed +1 -0
  40. missilya_sdk-0.2.0/src/missilya_sdk/vault/__init__.py +7 -0
  41. missilya_sdk-0.2.0/src/missilya_sdk/vault/client.py +289 -0
  42. missilya_sdk-0.2.0/src/missilya_sdk/whatsapp/__init__.py +25 -0
  43. missilya_sdk-0.2.0/src/missilya_sdk/whatsapp/client.py +224 -0
  44. missilya_sdk-0.2.0/src/missilya_sdk/whatsapp/providers/__init__.py +6 -0
  45. missilya_sdk-0.2.0/src/missilya_sdk/whatsapp/providers/_meta.py +208 -0
  46. missilya_sdk-0.2.0/src/missilya_sdk/whatsapp/providers/_twilio.py +96 -0
  47. missilya_sdk-0.2.0/src/missilya_sdk/whatsapp/webhooks.py +199 -0
  48. missilya_sdk-0.2.0/tests/conftest.py +68 -0
  49. missilya_sdk-0.2.0/tests/integration/test_live_smoke.py +130 -0
  50. missilya_sdk-0.2.0/tests/test_ai_boundary.py +82 -0
  51. missilya_sdk-0.2.0/tests/test_ai_engine_extra.py +184 -0
  52. missilya_sdk-0.2.0/tests/test_ai_media.py +200 -0
  53. missilya_sdk-0.2.0/tests/test_compat_emergent.py +146 -0
  54. missilya_sdk-0.2.0/tests/test_config.py +43 -0
  55. missilya_sdk-0.2.0/tests/test_config_extra.py +58 -0
  56. missilya_sdk-0.2.0/tests/test_context.py +49 -0
  57. missilya_sdk-0.2.0/tests/test_edges.py +133 -0
  58. missilya_sdk-0.2.0/tests/test_google_auth.py +139 -0
  59. missilya_sdk-0.2.0/tests/test_import_guards.py +106 -0
  60. missilya_sdk-0.2.0/tests/test_jwt.py +39 -0
  61. missilya_sdk-0.2.0/tests/test_misc.py +65 -0
  62. missilya_sdk-0.2.0/tests/test_monitoring.py +60 -0
  63. missilya_sdk-0.2.0/tests/test_notifications.py +181 -0
  64. missilya_sdk-0.2.0/tests/test_parity_contract.py +33 -0
  65. missilya_sdk-0.2.0/tests/test_payments.py +155 -0
  66. missilya_sdk-0.2.0/tests/test_public_api.py +78 -0
  67. missilya_sdk-0.2.0/tests/test_sentry.py +83 -0
  68. missilya_sdk-0.2.0/tests/test_vault_client.py +107 -0
  69. missilya_sdk-0.2.0/tests/test_vault_extra.py +159 -0
  70. missilya_sdk-0.2.0/tests/test_whatsapp.py +484 -0
@@ -0,0 +1,15 @@
1
+ __pycache__/
2
+ *.py[cod]
3
+ *.egg-info/
4
+ .venv/
5
+ venv/
6
+ dist/
7
+ build/
8
+ .pytest_cache/
9
+ .mypy_cache/
10
+ .ruff_cache/
11
+ .coverage
12
+ coverage.xml
13
+ *.log
14
+ .env
15
+ .env.*
@@ -0,0 +1,66 @@
1
+ # Changelog
2
+
3
+ All notable changes to `missilya-sdk` are documented here. The format follows
4
+ [Keep a Changelog](https://keepachangelog.com/) and the project adheres to
5
+ [Semantic Versioning](https://semver.org/). The version is kept in lock-step with
6
+ `missilya-sdk-sandbox` so the parity contract holds.
7
+
8
+ ## [Unreleased]
9
+
10
+ ## [0.2.0] - 2026-06-14
11
+
12
+ ### Added
13
+
14
+ - **WhatsApp module** (`missilya_sdk.whatsapp`) — a provider-abstracted,
15
+ two-way WhatsApp capability for embedding WhatsApp across apps:
16
+ - `WhatsAppClient` (default provider **Meta Cloud API**, with **Twilio** as an
17
+ alternative) — `send_text`, `send_template`, `send_media`, `send_interactive`,
18
+ `mark_read`, returning `WhatsAppMessage`.
19
+ - Inbound webhook helpers — `verify_subscription` (Meta GET handshake),
20
+ `verify_signature` (fail-closed `X-Hub-Signature-256` HMAC over the raw body),
21
+ and `parse_inbound` (normalises Meta or Twilio payloads into `InboundMessage`).
22
+ - **Google Sign-In** (`missilya_sdk.auth.google`) — `verify_google_token`
23
+ validates a Google ID token against Google's JWKS (RS256), issuer, audience,
24
+ and expiry; `sign_in_with_google` then mints a first-party Missilya JWT so apps
25
+ get one consistent session token. Adds the optional `[auth]` extra
26
+ (`cryptography`) and the `GoogleIdentity` / `GoogleSession` results.
27
+ - New vault keys: `WHATSAPP_PROVIDER`, `WHATSAPP_ACCESS_TOKEN`,
28
+ `WHATSAPP_PHONE_NUMBER_ID`, `WHATSAPP_API_VERSION`, `WHATSAPP_APP_SECRET`,
29
+ `WHATSAPP_VERIFY_TOKEN`, `GOOGLE_OAUTH_CLIENT_ID`.
30
+
31
+ ### Notes
32
+
33
+ - The legacy `notifications.send_whatsapp` (Twilio text relay) is unchanged for
34
+ backward compatibility; `missilya_sdk.whatsapp` is the forward path.
35
+ - Public API parity with `missilya-sdk-sandbox` is maintained (31 modules).
36
+
37
+ ## [0.1.0] - 2026-06-11
38
+
39
+ ### Added
40
+
41
+ - **AI module** — `LlmChat` (sync/async/stream) backed by LiteLLM with a
42
+ provider Adapter Engine and configurable runtime failover; `generate_image`,
43
+ `text_to_speech`, `speech_to_text`, `translate`, `generate_video`.
44
+ - **Payments module** — `StripeCheckout` (create/retrieve session, verify
45
+ webhook) with `CheckoutSessionRequest` / `CheckoutSession` / `WebhookEvent`.
46
+ - **Notifications module** — `send_email` (Resend), `send_sms` / `send_whatsapp`
47
+ (Twilio).
48
+ - **Auth module** — `create_token` / `verify_token` / `decode_token` (HS256).
49
+ - **Vault module** — `VaultClient` for Infisical Universal Auth + secret read,
50
+ with shared/app project fallback, in-memory TTL cache, retry/backoff, and a
51
+ fail-closed production policy.
52
+ - **Config** — `get_config` with VAULT-first resolution and a production
53
+ env-secret guard.
54
+ - **Context** — `TenantContext` and the `MissilyaSDK` facade for multi-tenant
55
+ scoping and request traceability.
56
+ - **Monitoring** — secret-redacting structured logging, correlation IDs, and
57
+ usage analytics (`track_event`, `track_latency`).
58
+ - **Governance tooling** — `tools/check_forbidden_imports.py`.
59
+ - **Packaging** — `src/` layout, PEP 621 `pyproject.toml`, optional extras
60
+ (`[ai]`, `[payments]`, `[notifications]`, `[all]`, `[dev]`), CI workflows.
61
+
62
+ ### Security
63
+
64
+ - All credentials sourced from MISSILYA VAULT; no hardcoded keys. Secrets are
65
+ redacted from logs and never returned to application code except by the
66
+ provider-facing module that needs them.
@@ -0,0 +1,35 @@
1
+ MISSILYA GROUP — PROPRIETARY LICENCE (SOURCE-AVAILABLE)
2
+
3
+ Copyright (c) 2026 MISSILYA GROUP. All rights reserved.
4
+
5
+ This software and its source code are the proprietary property of MISSILYA GROUP.
6
+ They are published on a public package index for distribution convenience only.
7
+ Publication does not place this software in the public domain, does not make it
8
+ open source, and grants no rights beyond those stated below.
9
+
10
+ GRANT
11
+ You are granted a non-exclusive, non-transferable, revocable licence to
12
+ download, install and execute unmodified copies of this package for the sole
13
+ purpose of interoperating with MISSILYA GROUP services under a valid
14
+ commercial agreement with MISSILYA GROUP.
15
+
16
+ RESTRICTIONS
17
+ Without prior written authorisation from MISSILYA GROUP you may not:
18
+ (a) copy, reproduce or redistribute the source code, in whole or in part;
19
+ (b) modify, adapt, translate or create derivative works;
20
+ (c) reverse engineer, decompile or disassemble, except to the extent this
21
+ restriction is unenforceable under applicable law;
22
+ (d) use the source code, its structure, or its interfaces to build a
23
+ competing or substantially similar product;
24
+ (e) remove or alter any proprietary notice.
25
+
26
+ NO WARRANTY
27
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
28
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
29
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
30
+
31
+ LIMITATION OF LIABILITY
32
+ IN NO EVENT SHALL MISSILYA GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
33
+ LIABILITY ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR ITS USE.
34
+
35
+ Licensing enquiries: dev@missilya.com