mainsequence 9.0.6.dev37__py3-none-any.whl → 9.0.6.dev39__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.
@@ -374,10 +374,29 @@ another branch, deploys nothing for that target.
374
374
 
375
375
  ### Going Back To An Older Version
376
376
 
377
- Revert the change and release a new version: `git revert <commit>`, raise the
378
- patch version with `uv version --bump patch`, commit, push, and let CI tag the
379
- result. The version keeps moving forward and every deployed commit matches its
380
- tag.
377
+ Two ways work. Use either only when the user asks for it.
378
+
379
+ - Revert and release a new version: `git revert <commit>`, raise the patch
380
+ version with `uv version --bump patch`, commit, push, and let CI tag the
381
+ result. This works for every target, including every-push targets, and keeps
382
+ the version moving forward.
383
+ - For a target with a `tag_regex`, push the older version's tag again. GitHub
384
+ sends an event only when a tag is created, so delete the tag on GitHub and
385
+ push it again; it still points at the same commit:
386
+
387
+ ```bash
388
+ git fetch --tags origin
389
+ git push origin :refs/tags/v1.2.0
390
+ git push origin v1.2.0
391
+ ```
392
+
393
+ The target redeploys that commit exactly as it was released: its code, its
394
+ image and its workflow file, whose settings replace the current ones. The
395
+ commit must still be on the branch and the tag must match the target's
396
+ current `tag_regex`. Every-push targets ignore the tag. Re-pushing a tag
397
+ also re-runs any GitHub Actions workflow that the tag triggers, and a tag
398
+ ruleset may forbid deleting it; use the revert route then. The next release
399
+ tag deploys a newer version again.
381
400
 
382
401
  ## Diagnose Partial Completion Before Retrying
383
402
 
@@ -1 +1 @@
1
- """Optional server-side platform integrations. Import integrations explicitly."""
1
+ """Server-side platform integrations. Import integrations explicitly."""
@@ -11,14 +11,10 @@ from collections.abc import Callable
11
11
  from dataclasses import dataclass
12
12
  from urllib.parse import urlsplit
13
13
 
14
+ import jwt
14
15
  import requests
15
-
16
- try:
17
- import jwt
18
- from cryptography.hazmat.primitives.asymmetric.ed25519 import Ed25519PublicKey
19
- from jwt import InvalidKeyError, InvalidTokenError
20
- except ImportError as exc:
21
- raise ImportError("Caller verification requires the mainsequence[server] extra.") from exc
16
+ from cryptography.hazmat.primitives.asymmetric.ed25519 import Ed25519PublicKey
17
+ from jwt import InvalidKeyError, InvalidTokenError
22
18
 
23
19
  ASSERTION_HEADER = "X-MainSequence-Caller-Assertion"
24
20
  ASSERTION_TYPE = "mainsequence-caller-assertion+jwt"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mainsequence
3
- Version: 9.0.6.dev37
3
+ Version: 9.0.6.dev39
4
4
  Summary: Main Sequence SDK
5
5
  Author-email: Main Sequence GmbH <dev@main-sequence.io>
6
6
  License-Expression: MIT
@@ -25,13 +25,12 @@ Requires-Dist: protobuf>=6.33.5
25
25
  Requires-Dist: psutil
26
26
  Requires-Dist: pydantic<3,>=2.11
27
27
  Requires-Dist: pygments>=2.20.0
28
+ Requires-Dist: PyJWT[crypto]<3,>=2.10
28
29
  Requires-Dist: pyyaml
29
30
  Requires-Dist: requests>=2.33.0
30
31
  Requires-Dist: structlog
31
32
  Requires-Dist: typer
32
33
  Requires-Dist: urllib3>=2.7.0
33
- Provides-Extra: server
34
- Requires-Dist: PyJWT[crypto]<3,>=2.10; extra == "server"
35
34
  Dynamic: license-file
36
35
 
37
36
  <p align="center">
@@ -75,7 +74,7 @@ Main package areas:
75
74
  authentication, platform resources, and local CodeRepository operations
76
75
  - `mainsequence.instrumentation` and `mainsequence.logconf`: SDK tracing and
77
76
  logging integration
78
- - `mainsequence.server`: optional server-side caller assertion verification
77
+ - `mainsequence.server`: server-side caller assertion verification
79
78
  - `mainsequence.scaffold_skills`: reusable, version-pinned skill copying for
80
79
  this SDK and extension libraries
81
80
 
@@ -148,7 +147,7 @@ another repository, use the explicitly scoped `filter_admin` path. See
148
147
  [Resource releases](docs/knowledge/infrastructure/resource_releases.md) for
149
148
  supported filters and examples.
150
149
 
151
- Server integrations can install `mainsequence[server]` for the
150
+ The standard `mainsequence` installation includes PyJWT and cryptography for the
152
151
  framework-independent [caller assertion verifier](docs/knowledge/server/caller_assertions.md).
153
152
  Applications remain responsible for resource authorization and storage
154
153
  operations.
@@ -3,7 +3,7 @@ agent_scaffold/skills/a2a_sdk_execution/SKILL.md,sha256=NKtcXibE8TxZzKzz1KzJ2cVZ
3
3
  agent_scaffold/skills/application_surfaces/api_surfaces/SKILL.md,sha256=EEU3eZGgOmY0KOWTgDZ5RJIrLtM8p6yqK894jM7-ySg,14357
4
4
  agent_scaffold/skills/mainsequence-inference/SKILL.md,sha256=IrVnpuzFMZ3_x5oSH4OiPZsZ5jFf_aKdxEynrQhnRZE,11627
5
5
  agent_scaffold/skills/maintenance/bug_auditor/SKILL.md,sha256=CCKs7edyZ9RK-WtAgXJXucokJFXZxk8sRUe0_imFtu8,8610
6
- agent_scaffold/skills/maintenance/code_repository_maintenance/SKILL.md,sha256=RNsvTWFMTchXyFRBixqAK9jgAxjxWxk2gzLe7II8qyQ,17053
6
+ agent_scaffold/skills/maintenance/code_repository_maintenance/SKILL.md,sha256=pPsZaERlfokSJ6b6vLjpA5U0KuKxbOFzzcxOVW_ikiI,17935
7
7
  agent_scaffold/skills/maintenance/metatables_transition/SKILL.md,sha256=PisgpytcksJnfZMS6aiPCmahsT3fm8DIwk_cefXA2qU,3759
8
8
  agent_scaffold/skills/platform_operations/access_control_and_sharing/SKILL.md,sha256=o1rIlYAC7ejV7gKKf-BaglIZY1YkDO5Y27F6e2eK_94,8571
9
9
  agent_scaffold/skills/platform_operations/orchestration_and_releases/SKILL.md,sha256=b-HmUoX4_9lh24SgRrTl6kxPDDPZQXu9I_0X40EN0p0,16535
@@ -49,12 +49,12 @@ mainsequence/client/utils.py,sha256=fQur4p-ojLWTMcNWlYWx7uZKbGNEc4c2kJq1Wl_w070,
49
49
  mainsequence/client/value_sets.py,sha256=7TA-mpuAd3hOduNgO1WTQQTuNOGaFgue-VqCsDWKaC8,6181
50
50
  mainsequence/instrumentation/__init__.py,sha256=J_9XmfjprElvz0u2t9rTyJT0kFdyKpxdbkdQiaw28_U,316
51
51
  mainsequence/instrumentation/utils.py,sha256=b-ihjSioAepeLfMpudM2SqCtvnxMqIXileHx3klBCQU,3377
52
- mainsequence/server/__init__.py,sha256=559DiiBcCP6veWRmK2mXUEbsl7gbZofTvsbTUFjn0VE,82
53
- mainsequence/server/caller_assertions.py,sha256=a7V5_zgpyiEe8oKO4JRRGf05FjZaiXAyAyqMXSTJJvI,9845
52
+ mainsequence/server/__init__.py,sha256=BHUAhtdWPDRdxX07NYO_6wrBv5mf0GsXflecO52PmUc,73
53
+ mainsequence/server/caller_assertions.py,sha256=hZW1pkkvQ9gaFL075bxUbbctTRrgMMQRTSc2Da0vKCM,9705
54
54
  mainsequence/server/fastapi.py,sha256=tD1aVuJOgoBTu7H8bs9IldPNYRT4fhkr1leN3KZP1pI,10521
55
- mainsequence-9.0.6.dev37.dist-info/licenses/LICENSE,sha256=b6Ecsk8wjsEby3lbSzdljR6hHiFGHBizt9iWV2p1c_I,1074
56
- mainsequence-9.0.6.dev37.dist-info/METADATA,sha256=DlZSlIx_peP0KwbWNosIbWxJ6kNWIFIcKwU0j2rriB0,7435
57
- mainsequence-9.0.6.dev37.dist-info/WHEEL,sha256=YVMoNqKzERt-wjUZwJ33xBGAwnFl-4cqbYkTtWa4itE,91
58
- mainsequence-9.0.6.dev37.dist-info/entry_points.txt,sha256=XGAOq3-mF2lWWpeRJvoaWyMarRcK167mH1g124aGdUs,88
59
- mainsequence-9.0.6.dev37.dist-info/top_level.txt,sha256=BFeblM_Q9q0cUWBvTxnfWcWQEHtf5XZi9nOS-Gdfwus,28
60
- mainsequence-9.0.6.dev37.dist-info/RECORD,,
55
+ mainsequence-9.0.6.dev39.dist-info/licenses/LICENSE,sha256=b6Ecsk8wjsEby3lbSzdljR6hHiFGHBizt9iWV2p1c_I,1074
56
+ mainsequence-9.0.6.dev39.dist-info/METADATA,sha256=F-foULn8UvZuPE_yA4Dn0u1KO7vmGR2CmTLY2HpCQ1c,7402
57
+ mainsequence-9.0.6.dev39.dist-info/WHEEL,sha256=YVMoNqKzERt-wjUZwJ33xBGAwnFl-4cqbYkTtWa4itE,91
58
+ mainsequence-9.0.6.dev39.dist-info/entry_points.txt,sha256=XGAOq3-mF2lWWpeRJvoaWyMarRcK167mH1g124aGdUs,88
59
+ mainsequence-9.0.6.dev39.dist-info/top_level.txt,sha256=BFeblM_Q9q0cUWBvTxnfWcWQEHtf5XZi9nOS-Gdfwus,28
60
+ mainsequence-9.0.6.dev39.dist-info/RECORD,,