nimbus-dev-sdk 0.1.0__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.
- nimbus_dev_sdk-0.1.0.dist-info/METADATA +54 -0
- nimbus_dev_sdk-0.1.0.dist-info/RECORD +189 -0
- nimbus_dev_sdk-0.1.0.dist-info/WHEEL +4 -0
- nimbus_dev_sdk-0.1.0.dist-info/licenses/LICENSE +21 -0
- nimbus_sdk/__init__.py +46 -0
- nimbus_sdk/_data/spec/conformance/v1/framing/case.schema.json +160 -0
- nimbus_sdk/_data/spec/conformance/v1/framing/cases/blank-frames-dropped-mid-stream.json +8 -0
- nimbus_sdk/_data/spec/conformance/v1/framing/cases/blank-remainder-dropped-at-eof.json +8 -0
- nimbus_sdk/_data/spec/conformance/v1/framing/cases/bom-at-stream-start-ignored.json +8 -0
- nimbus_sdk/_data/spec/conformance/v1/framing/cases/cr-inside-frame-preserved.json +8 -0
- nimbus_sdk/_data/spec/conformance/v1/framing/cases/emoji-split-1-3.json +8 -0
- nimbus_sdk/_data/spec/conformance/v1/framing/cases/emoji-split-2-2.json +8 -0
- nimbus_sdk/_data/spec/conformance/v1/framing/cases/emoji-split-3-1.json +8 -0
- nimbus_sdk/_data/spec/conformance/v1/framing/cases/empty-stream.json +8 -0
- nimbus_sdk/_data/spec/conformance/v1/framing/cases/frame-exactly-at-limit.json +10 -0
- nimbus_sdk/_data/spec/conformance/v1/framing/cases/frame-one-octet-over-limit.json +10 -0
- nimbus_sdk/_data/spec/conformance/v1/framing/cases/frame-split-across-three-chunks.json +8 -0
- nimbus_sdk/_data/spec/conformance/v1/framing/cases/frame-split-across-two-chunks.json +8 -0
- nimbus_sdk/_data/spec/conformance/v1/framing/cases/incomplete-sequence-at-eof.json +8 -0
- nimbus_sdk/_data/spec/conformance/v1/framing/cases/invalid-utf8-becomes-replacement.json +8 -0
- nimbus_sdk/_data/spec/conformance/v1/framing/cases/limit-counts-octets-not-characters.json +8 -0
- nimbus_sdk/_data/spec/conformance/v1/framing/cases/limit-violation-latches.json +17 -0
- nimbus_sdk/_data/spec/conformance/v1/framing/cases/lone-continuation-byte.json +8 -0
- nimbus_sdk/_data/spec/conformance/v1/framing/cases/pending-over-limit-without-newline.json +8 -0
- nimbus_sdk/_data/spec/conformance/v1/framing/cases/several-frames-in-one-chunk.json +8 -0
- nimbus_sdk/_data/spec/conformance/v1/framing/cases/single-frame-crlf.json +8 -0
- nimbus_sdk/_data/spec/conformance/v1/framing/cases/single-frame-lf.json +8 -0
- nimbus_sdk/_data/spec/conformance/v1/framing/cases/two-byte-sequence-split.json +8 -0
- nimbus_sdk/_data/spec/conformance/v1/framing/cases/unterminated-final-frame.json +8 -0
- nimbus_sdk/_data/spec/conformance/v1/framing/cases/whitespace-only-frame-delivered.json +8 -0
- nimbus_sdk/_data/spec/conformance/v1/framing/index.json +125 -0
- nimbus_sdk/_data/spec/conformance/v1/framing/index.schema.json +37 -0
- nimbus_sdk/_data/spec/conformance/v1/index.json +298 -0
- nimbus_sdk/_data/spec/conformance/v1/index.schema.json +82 -0
- nimbus_sdk/_data/spec/conformance/v1/item/invalid-missing-name.json +5 -0
- nimbus_sdk/_data/spec/conformance/v1/item/invalid-size-bytes-type.json +7 -0
- nimbus_sdk/_data/spec/conformance/v1/item/valid-maximal.json +13 -0
- nimbus_sdk/_data/spec/conformance/v1/item/valid-minimal.json +6 -0
- nimbus_sdk/_data/spec/conformance/v1/item/valid-unknown-extra-key.json +7 -0
- nimbus_sdk/_data/spec/conformance/v1/item/valid-unknown-item-type.json +6 -0
- nimbus_sdk/_data/spec/conformance/v1/manifest/invalid-contract-versions-duplicate.json +13 -0
- nimbus_sdk/_data/spec/conformance/v1/manifest/invalid-contract-versions-empty.json +13 -0
- nimbus_sdk/_data/spec/conformance/v1/manifest/invalid-contract-versions-entry.json +13 -0
- nimbus_sdk/_data/spec/conformance/v1/manifest/invalid-contract-versions-not-array.json +13 -0
- nimbus_sdk/_data/spec/conformance/v1/manifest/invalid-hitl-required-not-array.json +14 -0
- nimbus_sdk/_data/spec/conformance/v1/manifest/invalid-hitl-required.json +12 -0
- nimbus_sdk/_data/spec/conformance/v1/manifest/invalid-many-violations.json +4 -0
- nimbus_sdk/_data/spec/conformance/v1/manifest/invalid-missing-author.json +13 -0
- nimbus_sdk/_data/spec/conformance/v1/manifest/invalid-missing-description.json +13 -0
- nimbus_sdk/_data/spec/conformance/v1/manifest/invalid-missing-display-name.json +13 -0
- nimbus_sdk/_data/spec/conformance/v1/manifest/invalid-missing-entrypoint.json +13 -0
- nimbus_sdk/_data/spec/conformance/v1/manifest/invalid-missing-id.json +11 -0
- nimbus_sdk/_data/spec/conformance/v1/manifest/invalid-missing-min-version.json +13 -0
- nimbus_sdk/_data/spec/conformance/v1/manifest/invalid-missing-version.json +13 -0
- nimbus_sdk/_data/spec/conformance/v1/manifest/invalid-nel-only-id.json +14 -0
- nimbus_sdk/_data/spec/conformance/v1/manifest/invalid-non-ascii-min-version.json +14 -0
- nimbus_sdk/_data/spec/conformance/v1/manifest/invalid-permission.json +12 -0
- nimbus_sdk/_data/spec/conformance/v1/manifest/invalid-permissions-not-array.json +12 -0
- nimbus_sdk/_data/spec/conformance/v1/manifest/invalid-runtime.json +12 -0
- nimbus_sdk/_data/spec/conformance/v1/manifest/invalid-short-min-version.json +12 -0
- nimbus_sdk/_data/spec/conformance/v1/manifest/invalid-two-permissions.json +16 -0
- nimbus_sdk/_data/spec/conformance/v1/manifest/invalid-whitespace-id.json +12 -0
- nimbus_sdk/_data/spec/conformance/v1/manifest/schema-only-bad-sync-interval.json +13 -0
- nimbus_sdk/_data/spec/conformance/v1/manifest/valid-contract-versions.json +13 -0
- nimbus_sdk/_data/spec/conformance/v1/manifest/valid-leading-space-min-version.json +12 -0
- nimbus_sdk/_data/spec/conformance/v1/manifest/valid-maximal.json +24 -0
- nimbus_sdk/_data/spec/conformance/v1/manifest/valid-minimal.json +12 -0
- nimbus_sdk/_data/spec/conformance/v1/manifest/valid-prerelease-min-version.json +12 -0
- nimbus_sdk/_data/spec/conformance/v1/manifest/valid-unknown-extra-key.json +13 -0
- nimbus_sdk/_data/spec/conformance/v1/manifest/valid-zero-width-space-id.json +14 -0
- nimbus_sdk/_data/spec/conformance/v1/negotiation/case.schema.json +93 -0
- nimbus_sdk/_data/spec/conformance/v1/negotiation/cases/declaration-absent-default.json +6 -0
- nimbus_sdk/_data/spec/conformance/v1/negotiation/cases/declaration-absent-superset.json +6 -0
- nimbus_sdk/_data/spec/conformance/v1/negotiation/cases/declaration-manifest-not-array.json +7 -0
- nimbus_sdk/_data/spec/conformance/v1/negotiation/cases/declaration-match.json +7 -0
- nimbus_sdk/_data/spec/conformance/v1/negotiation/cases/declaration-order.json +7 -0
- nimbus_sdk/_data/spec/conformance/v1/negotiation/cases/declaration-superset.json +7 -0
- nimbus_sdk/_data/spec/conformance/v1/negotiation/cases/hello-array.json +6 -0
- nimbus_sdk/_data/spec/conformance/v1/negotiation/cases/hello-canonical.json +6 -0
- nimbus_sdk/_data/spec/conformance/v1/negotiation/cases/hello-duplicate.json +6 -0
- nimbus_sdk/_data/spec/conformance/v1/negotiation/cases/hello-empty-versions.json +6 -0
- nimbus_sdk/_data/spec/conformance/v1/negotiation/cases/hello-leading-zero.json +6 -0
- nimbus_sdk/_data/spec/conformance/v1/negotiation/cases/hello-missing-versions.json +6 -0
- nimbus_sdk/_data/spec/conformance/v1/negotiation/cases/hello-non-ascii-digit.json +6 -0
- nimbus_sdk/_data/spec/conformance/v1/negotiation/cases/hello-not-json.json +6 -0
- nimbus_sdk/_data/spec/conformance/v1/negotiation/cases/hello-null.json +6 -0
- nimbus_sdk/_data/spec/conformance/v1/negotiation/cases/hello-padded.json +6 -0
- nimbus_sdk/_data/spec/conformance/v1/negotiation/cases/hello-reversed-members.json +6 -0
- nimbus_sdk/_data/spec/conformance/v1/negotiation/cases/hello-unknown-member.json +6 -0
- nimbus_sdk/_data/spec/conformance/v1/negotiation/cases/hello-versions-not-array.json +6 -0
- nimbus_sdk/_data/spec/conformance/v1/negotiation/cases/hello-wrong-message.json +6 -0
- nimbus_sdk/_data/spec/conformance/v1/negotiation/cases/negotiate-disjoint.json +7 -0
- nimbus_sdk/_data/spec/conformance/v1/negotiation/cases/negotiate-duplicate-member.json +7 -0
- nimbus_sdk/_data/spec/conformance/v1/negotiation/cases/negotiate-empty-local.json +7 -0
- nimbus_sdk/_data/spec/conformance/v1/negotiation/cases/negotiate-empty-remote.json +7 -0
- nimbus_sdk/_data/spec/conformance/v1/negotiation/cases/negotiate-largest-common.json +7 -0
- nimbus_sdk/_data/spec/conformance/v1/negotiation/cases/negotiate-leading-zero.json +7 -0
- nimbus_sdk/_data/spec/conformance/v1/negotiation/cases/negotiate-long-major.json +7 -0
- nimbus_sdk/_data/spec/conformance/v1/negotiation/cases/negotiate-non-ascii-digit.json +7 -0
- nimbus_sdk/_data/spec/conformance/v1/negotiation/cases/negotiate-non-string.json +7 -0
- nimbus_sdk/_data/spec/conformance/v1/negotiation/cases/negotiate-order-a.json +7 -0
- nimbus_sdk/_data/spec/conformance/v1/negotiation/cases/negotiate-order-b.json +7 -0
- nimbus_sdk/_data/spec/conformance/v1/negotiation/cases/negotiate-ten-beats-nine.json +7 -0
- nimbus_sdk/_data/spec/conformance/v1/negotiation/cases/negotiate-v1-both.json +7 -0
- nimbus_sdk/_data/spec/conformance/v1/negotiation/index.json +170 -0
- nimbus_sdk/_data/spec/conformance/v1/negotiation/index.schema.json +37 -0
- nimbus_sdk/_data/spec/conformance/v1/predicates/case.schema.json +76 -0
- nimbus_sdk/_data/spec/conformance/v1/predicates/cases/hitl-action-id-non-string-rejected.json +9 -0
- nimbus_sdk/_data/spec/conformance/v1/predicates/cases/hitl-array-rejected.json +6 -0
- nimbus_sdk/_data/spec/conformance/v1/predicates/cases/hitl-diff-non-string-rejected.json +10 -0
- nimbus_sdk/_data/spec/conformance/v1/predicates/cases/hitl-diff-null-rejected.json +10 -0
- nimbus_sdk/_data/spec/conformance/v1/predicates/cases/hitl-diff-present-accepted.json +10 -0
- nimbus_sdk/_data/spec/conformance/v1/predicates/cases/hitl-empty-action-id-rejected.json +9 -0
- nimbus_sdk/_data/spec/conformance/v1/predicates/cases/hitl-empty-object-rejected.json +6 -0
- nimbus_sdk/_data/spec/conformance/v1/predicates/cases/hitl-empty-summary-rejected.json +9 -0
- nimbus_sdk/_data/spec/conformance/v1/predicates/cases/hitl-minimal-accepted.json +9 -0
- nimbus_sdk/_data/spec/conformance/v1/predicates/cases/hitl-missing-action-id-rejected.json +8 -0
- nimbus_sdk/_data/spec/conformance/v1/predicates/cases/hitl-missing-summary-rejected.json +8 -0
- nimbus_sdk/_data/spec/conformance/v1/predicates/cases/hitl-null-rejected.json +6 -0
- nimbus_sdk/_data/spec/conformance/v1/predicates/cases/hitl-number-rejected.json +6 -0
- nimbus_sdk/_data/spec/conformance/v1/predicates/cases/hitl-string-rejected.json +6 -0
- nimbus_sdk/_data/spec/conformance/v1/predicates/cases/hitl-unknown-member-accepted.json +10 -0
- nimbus_sdk/_data/spec/conformance/v1/predicates/cases/hitl-whitespace-action-id-accepted.json +9 -0
- nimbus_sdk/_data/spec/conformance/v1/predicates/cases/hitl-whitespace-summary-accepted.json +9 -0
- nimbus_sdk/_data/spec/conformance/v1/predicates/cases/row-data-ascii-fold-uppercase.json +15 -0
- nimbus_sdk/_data/spec/conformance/v1/predicates/cases/row-data-blank-names-skipped.json +22 -0
- nimbus_sdk/_data/spec/conformance/v1/predicates/cases/row-data-description-never-inspected.json +11 -0
- nimbus_sdk/_data/spec/conformance/v1/predicates/cases/row-data-digits-are-segment-characters.json +15 -0
- nimbus_sdk/_data/spec/conformance/v1/predicates/cases/row-data-dotted-capital-i-is-a-separator.json +10 -0
- nimbus_sdk/_data/spec/conformance/v1/predicates/cases/row-data-empty-surface-clean.json +6 -0
- nimbus_sdk/_data/spec/conformance/v1/predicates/cases/row-data-every-published-segment.json +169 -0
- nimbus_sdk/_data/spec/conformance/v1/predicates/cases/row-data-first-match-in-name-order.json +15 -0
- nimbus_sdk/_data/spec/conformance/v1/predicates/cases/row-data-input-order-preserved.json +25 -0
- nimbus_sdk/_data/spec/conformance/v1/predicates/cases/row-data-kelvin-sign-is-a-separator.json +15 -0
- nimbus_sdk/_data/spec/conformance/v1/predicates/cases/row-data-metadata-surface-clean.json +16 -0
- nimbus_sdk/_data/spec/conformance/v1/predicates/cases/row-data-non-ascii-name-clean.json +10 -0
- nimbus_sdk/_data/spec/conformance/v1/predicates/cases/row-data-non-string-name-skipped.json +22 -0
- nimbus_sdk/_data/spec/conformance/v1/predicates/cases/row-data-offender-attributed-to-segment.json +15 -0
- nimbus_sdk/_data/spec/conformance/v1/predicates/cases/row-data-one-violation-per-tool.json +15 -0
- nimbus_sdk/_data/spec/conformance/v1/predicates/cases/row-data-segment-not-substring.json +13 -0
- nimbus_sdk/_data/spec/conformance/v1/predicates/index.json +170 -0
- nimbus_sdk/_data/spec/conformance/v1/predicates/index.schema.json +37 -0
- nimbus_sdk/_data/spec/conformance/v1/sandbox/case.schema.json +116 -0
- nimbus_sdk/_data/spec/conformance/v1/sandbox/cases/classify-fs-eacces.json +7 -0
- nimbus_sdk/_data/spec/conformance/v1/sandbox/cases/classify-fs-ebusy.json +7 -0
- nimbus_sdk/_data/spec/conformance/v1/sandbox/cases/classify-fs-econnrefused-is-not-a-denial.json +7 -0
- nimbus_sdk/_data/spec/conformance/v1/sandbox/cases/classify-fs-eisdir-is-not-a-denial.json +7 -0
- nimbus_sdk/_data/spec/conformance/v1/sandbox/cases/classify-fs-enoent-is-not-a-denial.json +7 -0
- nimbus_sdk/_data/spec/conformance/v1/sandbox/cases/classify-fs-eperm.json +7 -0
- nimbus_sdk/_data/spec/conformance/v1/sandbox/cases/classify-fs-no-code.json +7 -0
- nimbus_sdk/_data/spec/conformance/v1/sandbox/cases/classify-network-eacces-is-not-a-block.json +7 -0
- nimbus_sdk/_data/spec/conformance/v1/sandbox/cases/classify-network-econnrefused.json +7 -0
- nimbus_sdk/_data/spec/conformance/v1/sandbox/cases/classify-network-econnreset-is-not-a-block.json +7 -0
- nimbus_sdk/_data/spec/conformance/v1/sandbox/cases/classify-network-ehostunreach.json +7 -0
- nimbus_sdk/_data/spec/conformance/v1/sandbox/cases/classify-network-enetunreach.json +7 -0
- nimbus_sdk/_data/spec/conformance/v1/sandbox/cases/classify-network-eperm.json +7 -0
- nimbus_sdk/_data/spec/conformance/v1/sandbox/cases/classify-network-etimedout-is-not-a-block.json +7 -0
- nimbus_sdk/_data/spec/conformance/v1/sandbox/cases/classify-network-no-code.json +7 -0
- nimbus_sdk/_data/spec/conformance/v1/sandbox/cases/harness-empty-network-array-skips.json +20 -0
- nimbus_sdk/_data/spec/conformance/v1/sandbox/cases/harness-empty-string-host-is-a-host.json +32 -0
- nimbus_sdk/_data/spec/conformance/v1/sandbox/cases/harness-fs-failure-throws.json +19 -0
- nimbus_sdk/_data/spec/conformance/v1/sandbox/cases/harness-fs-pass-is-a-failure.json +19 -0
- nimbus_sdk/_data/spec/conformance/v1/sandbox/cases/harness-hosts-darwin-all-three.json +32 -0
- nimbus_sdk/_data/spec/conformance/v1/sandbox/cases/harness-hosts-posix-all-three.json +32 -0
- nimbus_sdk/_data/spec/conformance/v1/sandbox/cases/harness-hosts-win32-skips-unlisted.json +27 -0
- nimbus_sdk/_data/spec/conformance/v1/sandbox/cases/harness-listed-blocked-is-a-failure.json +23 -0
- nimbus_sdk/_data/spec/conformance/v1/sandbox/cases/harness-listed-failure-stops-immediately.json +23 -0
- nimbus_sdk/_data/spec/conformance/v1/sandbox/cases/harness-no-hosts-posix-skips-both-network.json +18 -0
- nimbus_sdk/_data/spec/conformance/v1/sandbox/cases/harness-no-hosts-win32-only-fs.json +18 -0
- nimbus_sdk/_data/spec/conformance/v1/sandbox/cases/harness-only-first-host-probed.json +34 -0
- nimbus_sdk/_data/spec/conformance/v1/sandbox/cases/harness-permissions-absent.json +17 -0
- nimbus_sdk/_data/spec/conformance/v1/sandbox/cases/harness-permissions-legacy-array.json +21 -0
- nimbus_sdk/_data/spec/conformance/v1/sandbox/cases/harness-permissions-null.json +18 -0
- nimbus_sdk/_data/spec/conformance/v1/sandbox/cases/harness-unlisted-failure-stops-before-fs.json +28 -0
- nimbus_sdk/_data/spec/conformance/v1/sandbox/index.json +160 -0
- nimbus_sdk/_data/spec/conformance/v1/sandbox/index.schema.json +37 -0
- nimbus_sdk/_data/spec/negotiation/hello.schema.json +21 -0
- nimbus_sdk/_data/spec/predicates/v1/row-data-segments.json +39 -0
- nimbus_sdk/_data/spec/predicates/v1/row-data-segments.schema.json +60 -0
- nimbus_sdk/_data/spec/probe/v1/probe-protocol.json +72 -0
- nimbus_sdk/_data/spec/probe/v1/probe-protocol.schema.json +90 -0
- nimbus_sdk/_data/spec/rules/v1/manifest-rules.json +116 -0
- nimbus_sdk/_data/spec/rules/v1/manifest-rules.schema.json +65 -0
- nimbus_sdk/_data/spec/schemas/v1/extension-manifest.schema.json +72 -0
- nimbus_sdk/_data/spec/schemas/v1/hitl-request.schema.json +24 -0
- nimbus_sdk/_data/spec/schemas/v1/nimbus-item.schema.json +29 -0
- nimbus_sdk/contract.py +138 -0
- nimbus_sdk/py.typed +0 -0
- nimbus_sdk/spec.py +72 -0
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: nimbus-dev-sdk
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: The MIT-licensed, dependency-free authoring contract for Nimbus connectors and extensions — Python binding.
|
|
5
|
+
Project-URL: Homepage, https://github.com/nimbus-agent/nimbus-sdk
|
|
6
|
+
Project-URL: Repository, https://github.com/nimbus-agent/nimbus-sdk
|
|
7
|
+
Project-URL: Changelog, https://github.com/nimbus-agent/nimbus-sdk/blob/main/sdks/python/CHANGELOG.md
|
|
8
|
+
Author: Nimbus
|
|
9
|
+
License-Expression: MIT
|
|
10
|
+
License-File: LICENSE
|
|
11
|
+
Keywords: connector,contract,mcp,nimbus,sdk
|
|
12
|
+
Classifier: Development Status :: 3 - Alpha
|
|
13
|
+
Classifier: Intended Audience :: Developers
|
|
14
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
19
|
+
Classifier: Typing :: Typed
|
|
20
|
+
Requires-Python: >=3.11
|
|
21
|
+
Description-Content-Type: text/markdown
|
|
22
|
+
|
|
23
|
+
# nimbus-dev-sdk
|
|
24
|
+
|
|
25
|
+
The MIT-licensed, dependency-free authoring contract for
|
|
26
|
+
[Nimbus](https://github.com/nimbus-agent/Nimbus) connectors and extensions — Python binding.
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
pip install nimbus-dev-sdk # note: nimbus-dev-sdk, NOT nimbus-sdk
|
|
30
|
+
```
|
|
31
|
+
```python
|
|
32
|
+
import nimbus_sdk # the import name differs from the distribution name
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
PyPI has a flat namespace and `nimbus-sdk` belongs to an unrelated project, so the
|
|
36
|
+
distribution is published as `nimbus-dev-sdk`.
|
|
37
|
+
|
|
38
|
+
## What this is
|
|
39
|
+
|
|
40
|
+
The contract is defined once, language-neutrally, in
|
|
41
|
+
[`docs/spec/`](https://github.com/nimbus-agent/nimbus-sdk/tree/main/docs/spec). This
|
|
42
|
+
package carries that specification data and binds it to Python. The
|
|
43
|
+
[TypeScript SDK](https://www.npmjs.com/package/@nimbus-dev/sdk) is the reference
|
|
44
|
+
implementation; both are held to the same conformance corpus.
|
|
45
|
+
|
|
46
|
+
## Status
|
|
47
|
+
|
|
48
|
+
Early. This release carries the contract-version constants, the negotiation algorithm,
|
|
49
|
+
and the published JSON Schemas. It is not yet the full connector-authoring surface —
|
|
50
|
+
see the [roadmap](https://github.com/nimbus-agent/nimbus-sdk/blob/main/docs/ROADMAP.md).
|
|
51
|
+
|
|
52
|
+
## License
|
|
53
|
+
|
|
54
|
+
MIT — see [LICENSE](https://github.com/nimbus-agent/nimbus-sdk/blob/main/LICENSE).
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
nimbus_sdk/__init__.py,sha256=gDXhVISHKOilCP7z_TtVBDYuA0V6GaKwPsM55YVUhu8,1290
|
|
2
|
+
nimbus_sdk/contract.py,sha256=yrIgTFAena5YRgy2wCUw2OevrXBk6Fh80ez58Zgdtos,5616
|
|
3
|
+
nimbus_sdk/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
4
|
+
nimbus_sdk/spec.py,sha256=kDU12bomi6vEvPg4_dNQM17umpgti0zjQXTKe6vxSzE,2727
|
|
5
|
+
nimbus_sdk/_data/spec/conformance/v1/index.json,sha256=ZBPAmF8g0T1p_Me1_Y7LTnMTJIamz_shp9KHNRn52Jo,12764
|
|
6
|
+
nimbus_sdk/_data/spec/conformance/v1/index.schema.json,sha256=X8vaJz2Comm1uLUXEOvvdUTP01e3zWH_HNdgw7pWGMU,3626
|
|
7
|
+
nimbus_sdk/_data/spec/conformance/v1/framing/case.schema.json,sha256=XM3C-Yqr3M9I27xjC3cMspjuK9hdc2d5_9WKssABNKM,5699
|
|
8
|
+
nimbus_sdk/_data/spec/conformance/v1/framing/index.json,sha256=TC5jBKoK-BM9j452iaO9OabIYCYiIss9SCsOwgzltcE,3890
|
|
9
|
+
nimbus_sdk/_data/spec/conformance/v1/framing/index.schema.json,sha256=eoBIrnszAaEdILFLsRgrYglL4gx8DeJ1ccOKL5ggcnk,1562
|
|
10
|
+
nimbus_sdk/_data/spec/conformance/v1/framing/cases/blank-frames-dropped-mid-stream.json,sha256=InU3PJS5rtXbqWhqVUjTDsrqt-JK6-ltnD1K_VukN7s,236
|
|
11
|
+
nimbus_sdk/_data/spec/conformance/v1/framing/cases/blank-remainder-dropped-at-eof.json,sha256=4W3FPjhPhJN9aaXrz9EeF03YgFrh7rfzd4ruJZb47jw,250
|
|
12
|
+
nimbus_sdk/_data/spec/conformance/v1/framing/cases/bom-at-stream-start-ignored.json,sha256=arkrIyL8e1XmzTq1miGD4aG1OND-RhbC-iWVfPVHReQ,269
|
|
13
|
+
nimbus_sdk/_data/spec/conformance/v1/framing/cases/cr-inside-frame-preserved.json,sha256=fTC0GLnIywc02SoY1KnA6ORyd9zXmokhvn3Bifvf3xM,232
|
|
14
|
+
nimbus_sdk/_data/spec/conformance/v1/framing/cases/emoji-split-1-3.json,sha256=d-DrY35z2C0iF6nzHwd3xGvzzB2aZ_HWu-5_EAeTS1g,247
|
|
15
|
+
nimbus_sdk/_data/spec/conformance/v1/framing/cases/emoji-split-2-2.json,sha256=dpc52XW29sFIYPwmqtBdobdR5RiQvm9XB4We77jEVBE,237
|
|
16
|
+
nimbus_sdk/_data/spec/conformance/v1/framing/cases/emoji-split-3-1.json,sha256=frM3uVR2ZMZ7D0CyoDzWcP3J48fY56BEMdkcW6Xz8KY,243
|
|
17
|
+
nimbus_sdk/_data/spec/conformance/v1/framing/cases/empty-stream.json,sha256=36xK2wOFFC6MhP3sWvsb4HdWJtuZAIWSBdxIqqybIb0,194
|
|
18
|
+
nimbus_sdk/_data/spec/conformance/v1/framing/cases/frame-exactly-at-limit.json,sha256=L-GHMJdvc4N5Yc-ppVHiCwyISP_ArOfocZkpv-Zc6HE,335
|
|
19
|
+
nimbus_sdk/_data/spec/conformance/v1/framing/cases/frame-one-octet-over-limit.json,sha256=Fbk2IyFvxeZNbUxS-MmFMo861mGBQGsgL23Q51iWjSM,312
|
|
20
|
+
nimbus_sdk/_data/spec/conformance/v1/framing/cases/frame-split-across-three-chunks.json,sha256=r9FhRceCEH_3p0EPMs7_bjY3jAnYhPOfYk7zE-BqTiA,260
|
|
21
|
+
nimbus_sdk/_data/spec/conformance/v1/framing/cases/frame-split-across-two-chunks.json,sha256=xmsvlyKSW1DGrJYk9-oAOZIsciyeABxjnpIb2M6GKrY,249
|
|
22
|
+
nimbus_sdk/_data/spec/conformance/v1/framing/cases/incomplete-sequence-at-eof.json,sha256=tcnTlXaYvcd2kPdiK2-z6hVQDnR49fub5Uiqr8AOD2o,253
|
|
23
|
+
nimbus_sdk/_data/spec/conformance/v1/framing/cases/invalid-utf8-becomes-replacement.json,sha256=mMvwIP5ic0RsU6f8Q0n7TB0Y4AlCeA_XiMDOklGQMCQ,235
|
|
24
|
+
nimbus_sdk/_data/spec/conformance/v1/framing/cases/limit-counts-octets-not-characters.json,sha256=-9DNLdIqE8jBOXiCDKh7PBRyPe3DA_J9dwCcYR6lySQ,312
|
|
25
|
+
nimbus_sdk/_data/spec/conformance/v1/framing/cases/limit-violation-latches.json,sha256=UrIcBFIY5agg2Z-yQdPY7gdT_kOK6AiX51yHKnzyvKA,487
|
|
26
|
+
nimbus_sdk/_data/spec/conformance/v1/framing/cases/lone-continuation-byte.json,sha256=DsqK3af5ea0tqaarbbjmSwRFPjxPytItAAUOB424O50,206
|
|
27
|
+
nimbus_sdk/_data/spec/conformance/v1/framing/cases/pending-over-limit-without-newline.json,sha256=FvMeMLWZchp3UP0QCmObwkxZCY_KODSkards_O6g2yE,297
|
|
28
|
+
nimbus_sdk/_data/spec/conformance/v1/framing/cases/several-frames-in-one-chunk.json,sha256=o6efCIELT1WsijREv-Zq8RbXW9N8b5NMeRlPhaaAHAM,237
|
|
29
|
+
nimbus_sdk/_data/spec/conformance/v1/framing/cases/single-frame-crlf.json,sha256=VWMwa3ul_0UK6TltXSDrc8WXvBAg2Y7xQCBISUsvvAM,220
|
|
30
|
+
nimbus_sdk/_data/spec/conformance/v1/framing/cases/single-frame-lf.json,sha256=ZwrgX8_e2RWg9jEnt3R5I0DXDhLuDYAIVodijXKg_I0,220
|
|
31
|
+
nimbus_sdk/_data/spec/conformance/v1/framing/cases/two-byte-sequence-split.json,sha256=QGNtluVtipUPvwpejS_NcKcy6jkafO1jo412OOdwONs,265
|
|
32
|
+
nimbus_sdk/_data/spec/conformance/v1/framing/cases/unterminated-final-frame.json,sha256=132Op5QPe9ckLlKQ_HmYuHBpQAqAums-uu944xMiVIU,271
|
|
33
|
+
nimbus_sdk/_data/spec/conformance/v1/framing/cases/whitespace-only-frame-delivered.json,sha256=Rs3CX7Kjm2lnGaYfoguFXk_El-y9YaUNoF9WVZ06mJU,235
|
|
34
|
+
nimbus_sdk/_data/spec/conformance/v1/item/invalid-missing-name.json,sha256=jPr7hmsO_Wzkz0IRLQrauDE31KXdoXdcRjcLvAkZRIs,67
|
|
35
|
+
nimbus_sdk/_data/spec/conformance/v1/item/invalid-size-bytes-type.json,sha256=2tOF21mPTv4ONNZVz2SoXh3PM8FUwiKOyFLXxbK-BRU,112
|
|
36
|
+
nimbus_sdk/_data/spec/conformance/v1/item/valid-maximal.json,sha256=Cd7n-KGMIV82Uq199ke5lUHWz90cJ_6Bj-0yJhQe_oM,323
|
|
37
|
+
nimbus_sdk/_data/spec/conformance/v1/item/valid-minimal.json,sha256=DVBnaJsOMgWhvNTS08MoRvtEdFurda8C_kPKbEMZoLc,89
|
|
38
|
+
nimbus_sdk/_data/spec/conformance/v1/item/valid-unknown-extra-key.json,sha256=-Y7JAbQQItRLRWP2o0cZWtOE-L1daei9S9O8r_BITwE,117
|
|
39
|
+
nimbus_sdk/_data/spec/conformance/v1/item/valid-unknown-item-type.json,sha256=ys5bWR2ubKEUsY_zzWQgf7Y_HVOIcdlVCJaAu_kapCg,99
|
|
40
|
+
nimbus_sdk/_data/spec/conformance/v1/manifest/invalid-contract-versions-duplicate.json,sha256=cBRhFey-8OSDQdqwpLLGo_J666Uiqaty9J4aZnaHJSA,367
|
|
41
|
+
nimbus_sdk/_data/spec/conformance/v1/manifest/invalid-contract-versions-empty.json,sha256=8Sse5x8-nQxG1YWQRNBD8bV_8C46vdR6-QLgJAAyMeA,359
|
|
42
|
+
nimbus_sdk/_data/spec/conformance/v1/manifest/invalid-contract-versions-entry.json,sha256=eEyWXVAl4cTPuojUcILn4KGEVrWCmAdDJQNSjZV-dWU,368
|
|
43
|
+
nimbus_sdk/_data/spec/conformance/v1/manifest/invalid-contract-versions-not-array.json,sha256=Oxhckam6UGDcntMsUXpk1-Enwt3lxv6HFBFmEeuaYAQ,360
|
|
44
|
+
nimbus_sdk/_data/spec/conformance/v1/manifest/invalid-hitl-required-not-array.json,sha256=GmSZEDPykSJz0DFBCZlHDHGV4gyLLB3ipoeLImesC8w,346
|
|
45
|
+
nimbus_sdk/_data/spec/conformance/v1/manifest/invalid-hitl-required.json,sha256=-Q_3VCZv0R0Eyr-4wLO6oe7dYJi16PhAhtptRCsNWIA,363
|
|
46
|
+
nimbus_sdk/_data/spec/conformance/v1/manifest/invalid-many-violations.json,sha256=yqT3pulD8pxwNjo7UWcCkMo4q69U6PL2rXKI9pA09tQ,49
|
|
47
|
+
nimbus_sdk/_data/spec/conformance/v1/manifest/invalid-missing-author.json,sha256=ZG7zkN_73ljpDQfVs3W4oGIsGiEjwxU2zKPjDTHpX1k,306
|
|
48
|
+
nimbus_sdk/_data/spec/conformance/v1/manifest/invalid-missing-description.json,sha256=IG1ldVuVMiGdJvLUCzCgvMO2-spefiO-f-d3lanXPB8,265
|
|
49
|
+
nimbus_sdk/_data/spec/conformance/v1/manifest/invalid-missing-display-name.json,sha256=dhEZ6EVJ50uu4Nz7bXB9wzrEjwpUFXHx4heqX8L1HUw,303
|
|
50
|
+
nimbus_sdk/_data/spec/conformance/v1/manifest/invalid-missing-entrypoint.json,sha256=tUgTLba5AV-cfy2qw-lU_lpdjIkqsMEI8wKgTLJC_ho,311
|
|
51
|
+
nimbus_sdk/_data/spec/conformance/v1/manifest/invalid-missing-id.json,sha256=tJqTDUUFWd6D1OQL8S6P5AUs-CYNJ7lDHb2_4JSU70I,304
|
|
52
|
+
nimbus_sdk/_data/spec/conformance/v1/manifest/invalid-missing-min-version.json,sha256=_KTpv2HiOKprPhqDrRvaTej9AYM56L0jYSk_B3nvIQk,310
|
|
53
|
+
nimbus_sdk/_data/spec/conformance/v1/manifest/invalid-missing-version.json,sha256=UVSsQSEQzRDBMeiag4SJyz-LO_1yIQebMEvaJNXVqAw,319
|
|
54
|
+
nimbus_sdk/_data/spec/conformance/v1/manifest/invalid-nel-only-id.json,sha256=mlEor0Km-gh7q0lntzfqf6UtV5FRDSM3ZW14cA2m_MM,326
|
|
55
|
+
nimbus_sdk/_data/spec/conformance/v1/manifest/invalid-non-ascii-min-version.json,sha256=6UJMNqaIF513vChLfMlXykfOVFVCmx9qXieypnrtanE,344
|
|
56
|
+
nimbus_sdk/_data/spec/conformance/v1/manifest/invalid-permission.json,sha256=G0wemydQCY4agJlM2veVH8mIDAPBe33ENQqc5Qv7XU4,342
|
|
57
|
+
nimbus_sdk/_data/spec/conformance/v1/manifest/invalid-permissions-not-array.json,sha256=kPovxS74Z-xp-fJup7wSToBcJScmz6zyW56urH4G4No,331
|
|
58
|
+
nimbus_sdk/_data/spec/conformance/v1/manifest/invalid-runtime.json,sha256=hsQ6TfCdv2Cypn_4XiXRgOjG3rmadKTueq4yiJX-KrE,334
|
|
59
|
+
nimbus_sdk/_data/spec/conformance/v1/manifest/invalid-short-min-version.json,sha256=ChRn0LVs3H6ik50NXxlDUxNBl9veM-_wmIJa6kUOkxE,365
|
|
60
|
+
nimbus_sdk/_data/spec/conformance/v1/manifest/invalid-two-permissions.json,sha256=yclB9an-_M1_rXJmMxBwiK2CtmQP0bwPhnBUULYZT3A,369
|
|
61
|
+
nimbus_sdk/_data/spec/conformance/v1/manifest/invalid-whitespace-id.json,sha256=jq8laIobFHt3T3sTiaMJVhREi9NT8aB_XtchPyT4NCE,319
|
|
62
|
+
nimbus_sdk/_data/spec/conformance/v1/manifest/schema-only-bad-sync-interval.json,sha256=VRtgeFv3GU0Ecke1UJZXxR0tqs5Nil6JZBz1JzBLv7g,357
|
|
63
|
+
nimbus_sdk/_data/spec/conformance/v1/manifest/valid-contract-versions.json,sha256=6KTuEgfVgl4lMAiiJmsCwC1140TxI9yrVGuYc2nqpTw,367
|
|
64
|
+
nimbus_sdk/_data/spec/conformance/v1/manifest/valid-leading-space-min-version.json,sha256=qb87ljCjvo8QOSbAkKjmPcRQQ5iWeYLlwtokiZCygUE,354
|
|
65
|
+
nimbus_sdk/_data/spec/conformance/v1/manifest/valid-maximal.json,sha256=RV4kjT9wDX6_IanJ33sTHrX-lwZXgqLnRxl9o6QAhJ8,891
|
|
66
|
+
nimbus_sdk/_data/spec/conformance/v1/manifest/valid-minimal.json,sha256=XXzM8GPkqq6AqJ1ZNhwaI5SXaJY796bJsWdwlpDEhjc,333
|
|
67
|
+
nimbus_sdk/_data/spec/conformance/v1/manifest/valid-prerelease-min-version.json,sha256=tEIs0sZz3YcPi48_sxeZcpOKspLZSEDZarjtwHegiKk,361
|
|
68
|
+
nimbus_sdk/_data/spec/conformance/v1/manifest/valid-unknown-extra-key.json,sha256=xxDLSqm1raY05ZCTQVjz09IK_5C4ldrLl6_VpjOCaag,354
|
|
69
|
+
nimbus_sdk/_data/spec/conformance/v1/manifest/valid-zero-width-space-id.json,sha256=pHhtbEM1arXZwXbFci-YD70TD3hzX_58t-Z6CeYdmVo,327
|
|
70
|
+
nimbus_sdk/_data/spec/conformance/v1/negotiation/case.schema.json,sha256=X1NoXiORrPtQemLhUwkR0CJn0ZT7KAMk4CNkhSV_JRA,4071
|
|
71
|
+
nimbus_sdk/_data/spec/conformance/v1/negotiation/index.json,sha256=mYGEFowHuG5laHZpsBgZH1VFp7WlvfN_TMIZ4EufgcU,6357
|
|
72
|
+
nimbus_sdk/_data/spec/conformance/v1/negotiation/index.schema.json,sha256=HnpFNvo8unAJ4NCg-EYqhPGtam1OFzR4Jp9i1AjrTW4,1406
|
|
73
|
+
nimbus_sdk/_data/spec/conformance/v1/negotiation/cases/declaration-absent-default.json,sha256=UXClGbV8Qth-n2zaFLJDpSB5iTxq0XQ5rsru0WZnF-s,219
|
|
74
|
+
nimbus_sdk/_data/spec/conformance/v1/negotiation/cases/declaration-absent-superset.json,sha256=SSbVWQqbypnIS7xRPsHrg6v2JXR-CMAEJlxF8GtW-3E,343
|
|
75
|
+
nimbus_sdk/_data/spec/conformance/v1/negotiation/cases/declaration-manifest-not-array.json,sha256=getWHVY-4fdkLI1LrROrCtIj2X7-v8dyLvlkEPD8-hA,454
|
|
76
|
+
nimbus_sdk/_data/spec/conformance/v1/negotiation/cases/declaration-match.json,sha256=L0DTI4rNoHqLHr-ltBQw8U749s0kqW3t3sGd1w8OGjE,238
|
|
77
|
+
nimbus_sdk/_data/spec/conformance/v1/negotiation/cases/declaration-order.json,sha256=P_BoaFZv7k_2r3cmPKbsjT1a4Ou0okwX1Rq-dMru1do,237
|
|
78
|
+
nimbus_sdk/_data/spec/conformance/v1/negotiation/cases/declaration-superset.json,sha256=mbKQW6nJhifTQ6W1epnm-lt-wexB7r_TVWYLZsJd3W0,317
|
|
79
|
+
nimbus_sdk/_data/spec/conformance/v1/negotiation/cases/hello-array.json,sha256=s21Sj0iGaxi2HXOieK4RebWYD43wFG__7ZKSOYUsmkQ,296
|
|
80
|
+
nimbus_sdk/_data/spec/conformance/v1/negotiation/cases/hello-canonical.json,sha256=oBnylUUrJE3M-0jDdBmaAGiB5UMpIHAG53G7YdWlU2c,225
|
|
81
|
+
nimbus_sdk/_data/spec/conformance/v1/negotiation/cases/hello-duplicate.json,sha256=K6oJQrpEWp5b1K0T3q_rKrRpcXXsdHksZKZ0Yy3lXBE,321
|
|
82
|
+
nimbus_sdk/_data/spec/conformance/v1/negotiation/cases/hello-empty-versions.json,sha256=cs86K6gUBBuIefnJqEw2zuK3b0tL4pKiYI1Ky0ypNRQ,331
|
|
83
|
+
nimbus_sdk/_data/spec/conformance/v1/negotiation/cases/hello-leading-zero.json,sha256=6fBoPFWvQX1TvX826NbR_4T6Q5KzYvXglx2y96550Qk,340
|
|
84
|
+
nimbus_sdk/_data/spec/conformance/v1/negotiation/cases/hello-missing-versions.json,sha256=eb-mxb9VRSQxq9Tnh0B9O-qI31bZnW9Bo2hJMhgZ7Jo,303
|
|
85
|
+
nimbus_sdk/_data/spec/conformance/v1/negotiation/cases/hello-non-ascii-digit.json,sha256=rlsEpCBbBBqthjkBPo9I3ZH7LAcO0Lxke0gTOoZM24Y,554
|
|
86
|
+
nimbus_sdk/_data/spec/conformance/v1/negotiation/cases/hello-not-json.json,sha256=qjlVRdSDvYIGjk84iNvs15IyHYJLF9lNTPNkaPElj2s,194
|
|
87
|
+
nimbus_sdk/_data/spec/conformance/v1/negotiation/cases/hello-null.json,sha256=gBtl2m8dk6Bqa45Hy3RaZS65lVdcfSBdYl5JQJGj-xY,252
|
|
88
|
+
nimbus_sdk/_data/spec/conformance/v1/negotiation/cases/hello-padded.json,sha256=DvMFfrIGRvn62XYPD39czMi6Hl8cw0fyGjDSz6LshaQ,299
|
|
89
|
+
nimbus_sdk/_data/spec/conformance/v1/negotiation/cases/hello-reversed-members.json,sha256=uHGcYrAj_lI7fz_-X2kxAp0ft0F1pYJyzczTa_HxfvY,275
|
|
90
|
+
nimbus_sdk/_data/spec/conformance/v1/negotiation/cases/hello-unknown-member.json,sha256=QRHQCbqk_wHQrPiJyJ7egheVSV0xYugroQODpm44S4o,283
|
|
91
|
+
nimbus_sdk/_data/spec/conformance/v1/negotiation/cases/hello-versions-not-array.json,sha256=GQprEHFlFgDbMn-qAScEC6hatLusnhDQ2-6BJtbycoM,306
|
|
92
|
+
nimbus_sdk/_data/spec/conformance/v1/negotiation/cases/hello-wrong-message.json,sha256=LuSPcQK8BJL07dFB9gCblGNG_wJGx07n_abZQtxQZtM,291
|
|
93
|
+
nimbus_sdk/_data/spec/conformance/v1/negotiation/cases/negotiate-disjoint.json,sha256=wyTNBcGfFRCt2gG-fAugqlkmzj0inMHs2-o4Otfs2bk,262
|
|
94
|
+
nimbus_sdk/_data/spec/conformance/v1/negotiation/cases/negotiate-duplicate-member.json,sha256=Z5d1fADSazayo2l30tWOTLsZ7z6I9pkO06CJAn6RN2o,355
|
|
95
|
+
nimbus_sdk/_data/spec/conformance/v1/negotiation/cases/negotiate-empty-local.json,sha256=q5ra5gpkys73cpCJcyXaCLTFm6mqXIydYu8O3Y8FnFc,383
|
|
96
|
+
nimbus_sdk/_data/spec/conformance/v1/negotiation/cases/negotiate-empty-remote.json,sha256=hO8WhggZyB7x4sdIrKkusd1Dek4WWdg1CL54q3lkhkk,280
|
|
97
|
+
nimbus_sdk/_data/spec/conformance/v1/negotiation/cases/negotiate-largest-common.json,sha256=opS4OeJqfgqst3BI6qCsJglMzBqzJJvjjgA6ftqX2WA,216
|
|
98
|
+
nimbus_sdk/_data/spec/conformance/v1/negotiation/cases/negotiate-leading-zero.json,sha256=34GTay7hE5YOJVx7Xst7EOXbTBGuv-KHNvwkKgvI-Uk,335
|
|
99
|
+
nimbus_sdk/_data/spec/conformance/v1/negotiation/cases/negotiate-long-major.json,sha256=xh92Waj4VlEVtvlgdEjjtc3o7QI8gRRZSzPRgyZmvDU,372
|
|
100
|
+
nimbus_sdk/_data/spec/conformance/v1/negotiation/cases/negotiate-non-ascii-digit.json,sha256=v0wDQXLrI1hon7UnPJdv2MZanAdUqFpOysjWaew81K0,330
|
|
101
|
+
nimbus_sdk/_data/spec/conformance/v1/negotiation/cases/negotiate-non-string.json,sha256=ERWyaviaHhOR0X3SGFfKwZzjMXgG01k5W-G1Whruwfc,320
|
|
102
|
+
nimbus_sdk/_data/spec/conformance/v1/negotiation/cases/negotiate-order-a.json,sha256=T_tyD7V3AuHnRYCX9sLmBmi641aElkkMLsYxE2pm_Lk,242
|
|
103
|
+
nimbus_sdk/_data/spec/conformance/v1/negotiation/cases/negotiate-order-b.json,sha256=o2MCqKtOPJeRRGMEy86JOOD8N7OuunG5YGsZ424fqf0,225
|
|
104
|
+
nimbus_sdk/_data/spec/conformance/v1/negotiation/cases/negotiate-ten-beats-nine.json,sha256=G6R_rogf7E55r_rUzAaAvTczx5vTb8rcGGDdp67mLXk,232
|
|
105
|
+
nimbus_sdk/_data/spec/conformance/v1/negotiation/cases/negotiate-v1-both.json,sha256=GQhWpxXyVUTFxU4n8LDQIOdUQ7S_vP2F2nmBoMjBSCE,351
|
|
106
|
+
nimbus_sdk/_data/spec/conformance/v1/predicates/case.schema.json,sha256=1Rm-mgZWd6ggTtrbsQK_iJuslm10c0eiARmbqQQLHtg,2979
|
|
107
|
+
nimbus_sdk/_data/spec/conformance/v1/predicates/index.json,sha256=ms9h5bBS0BVOHcCTPNRrnsO0IVhh4D_wc6txBalibIk,5728
|
|
108
|
+
nimbus_sdk/_data/spec/conformance/v1/predicates/index.schema.json,sha256=L0-hIBs2K2lz6WHuiBbAnKvCnTBJKnvLUEPpHn8E_9A,1650
|
|
109
|
+
nimbus_sdk/_data/spec/conformance/v1/predicates/cases/hitl-action-id-non-string-rejected.json,sha256=RSc_0QWKVqUlFUP_HKbL4Bh_GDVfmST5JSr0bvR23VA,174
|
|
110
|
+
nimbus_sdk/_data/spec/conformance/v1/predicates/cases/hitl-array-rejected.json,sha256=2jQxKfQY2TIVwYPuxW7j5cSeGVoWCG-W52EtvU2cGPY,110
|
|
111
|
+
nimbus_sdk/_data/spec/conformance/v1/predicates/cases/hitl-diff-non-string-rejected.json,sha256=6MSFeZEsee8yiu640oOBtR-_Q7-P9O2VsD2YD093xn0,194
|
|
112
|
+
nimbus_sdk/_data/spec/conformance/v1/predicates/cases/hitl-diff-null-rejected.json,sha256=T9MFviXOiQUo8C-2trx8xIupCeG8Ae52UmjB3AotULs,238
|
|
113
|
+
nimbus_sdk/_data/spec/conformance/v1/predicates/cases/hitl-diff-present-accepted.json,sha256=LIlJ_EYNHvg8zFrGf5tqFUbtO3oi5eNK0vpW9Tm-alQ,205
|
|
114
|
+
nimbus_sdk/_data/spec/conformance/v1/predicates/cases/hitl-empty-action-id-rejected.json,sha256=I7H9rkBSc7b-fihPvkTCojTdBuoKoA-YvdPB0gYw3fU,174
|
|
115
|
+
nimbus_sdk/_data/spec/conformance/v1/predicates/cases/hitl-empty-object-rejected.json,sha256=1vruRl3uesLKdr79Yx9Lh3IbUbQwrfFciRa3rgOkAEY,117
|
|
116
|
+
nimbus_sdk/_data/spec/conformance/v1/predicates/cases/hitl-empty-summary-rejected.json,sha256=vN1C_waZO3EPAWcwl3tUQIgcaUwfLZ1I7N9qzuKExKg,167
|
|
117
|
+
nimbus_sdk/_data/spec/conformance/v1/predicates/cases/hitl-minimal-accepted.json,sha256=_alm7rr6Yabr7BViD4tdVX3JECeTQVslARPnbZyDQZU,193
|
|
118
|
+
nimbus_sdk/_data/spec/conformance/v1/predicates/cases/hitl-missing-action-id-rejected.json,sha256=yh6-31DIWAY62BM902Gm4LEAfR2cVrB4sDsWDM6-QgE,155
|
|
119
|
+
nimbus_sdk/_data/spec/conformance/v1/predicates/cases/hitl-missing-summary-rejected.json,sha256=hc2bBe6XCV7atyN_IDpWxMbywS7LwK6IiQqY5Nmc2g0,149
|
|
120
|
+
nimbus_sdk/_data/spec/conformance/v1/predicates/cases/hitl-null-rejected.json,sha256=3Yz_Q7z4We1S82fjqZNva1qV2-xkb6-P8a9pIVkG8OE,108
|
|
121
|
+
nimbus_sdk/_data/spec/conformance/v1/predicates/cases/hitl-number-rejected.json,sha256=moJj0VmwlTluDCbO5DV3xxZpp6bu4dVn471DM4LKDFc,116
|
|
122
|
+
nimbus_sdk/_data/spec/conformance/v1/predicates/cases/hitl-string-rejected.json,sha256=Xhx79EcS-dVeT4p2vVXPAR1pgO5RTVwDaprV8f15U98,118
|
|
123
|
+
nimbus_sdk/_data/spec/conformance/v1/predicates/cases/hitl-unknown-member-accepted.json,sha256=6om0Y-1Q0PoFBnJNKbdvtaNzuCjuQxD_Du64BnPltqY,229
|
|
124
|
+
nimbus_sdk/_data/spec/conformance/v1/predicates/cases/hitl-whitespace-action-id-accepted.json,sha256=dyxuB0uBoTHK66filx7R0xTP6A1I3WuE8yfTz5y2j0s,186
|
|
125
|
+
nimbus_sdk/_data/spec/conformance/v1/predicates/cases/hitl-whitespace-summary-accepted.json,sha256=MNTP84ORFJTUV0z_X6ofbIgRdKYat53PUGSIai_0uuA,178
|
|
126
|
+
nimbus_sdk/_data/spec/conformance/v1/predicates/cases/row-data-ascii-fold-uppercase.json,sha256=P2XHHjYhqeByBhwjyg6V01anviW_VBJ_pWcOsijbvIo,265
|
|
127
|
+
nimbus_sdk/_data/spec/conformance/v1/predicates/cases/row-data-blank-names-skipped.json,sha256=4jycIA16WyIWEcCIg2fqE0jJcIkC460FE_bi6AJmkdA,385
|
|
128
|
+
nimbus_sdk/_data/spec/conformance/v1/predicates/cases/row-data-description-never-inspected.json,sha256=h31KH8bhISiKZY9yGWGtid7Z_jHe5Ksb8a2GNvhnqb4,270
|
|
129
|
+
nimbus_sdk/_data/spec/conformance/v1/predicates/cases/row-data-digits-are-segment-characters.json,sha256=VUF0hTg9w1M5YOyhbQcqRc_F9F5O2vGJcP7aOX2p7Jg,239
|
|
130
|
+
nimbus_sdk/_data/spec/conformance/v1/predicates/cases/row-data-dotted-capital-i-is-a-separator.json,sha256=grhejJEHMbFpLxxd5zB4Mjw0b9FpNfCOAdzGA5xPoB8,224
|
|
131
|
+
nimbus_sdk/_data/spec/conformance/v1/predicates/cases/row-data-empty-surface-clean.json,sha256=qgzmTAqL2yOul3WCRtINaOX3nVGkpi-1IevKSVMUJEY,138
|
|
132
|
+
nimbus_sdk/_data/spec/conformance/v1/predicates/cases/row-data-every-published-segment.json,sha256=NJRF9oJDrUS1TdMYsxYQDrXR1CAIqVC5XA7VmbL_qOc,2607
|
|
133
|
+
nimbus_sdk/_data/spec/conformance/v1/predicates/cases/row-data-first-match-in-name-order.json,sha256=0LRaeJjdblSAaiL9ur9xWNJezYLKOjUnf-7lQRB3BxA,318
|
|
134
|
+
nimbus_sdk/_data/spec/conformance/v1/predicates/cases/row-data-input-order-preserved.json,sha256=J2wJ9SZjaMgB0mUD6DZaYzCHVxm_OLpNv-ntMdjjsSY,413
|
|
135
|
+
nimbus_sdk/_data/spec/conformance/v1/predicates/cases/row-data-kelvin-sign-is-a-separator.json,sha256=86sgyjhwhVXauJIcTjD-tU_SkenHVRDH3orySjKXgbg,300
|
|
136
|
+
nimbus_sdk/_data/spec/conformance/v1/predicates/cases/row-data-metadata-surface-clean.json,sha256=JfxtLKaRMHaG5Vm4RMsoJzd0ATTjqh-lM6FFLY0aYqY,314
|
|
137
|
+
nimbus_sdk/_data/spec/conformance/v1/predicates/cases/row-data-non-ascii-name-clean.json,sha256=qCkTabWKU7UFQ6Kt6bsPwXKiBxu-LOL6rqNHaeo1kJs,185
|
|
138
|
+
nimbus_sdk/_data/spec/conformance/v1/predicates/cases/row-data-non-string-name-skipped.json,sha256=Y-QkYhky-SSGOH8jwQik7QBmGReFIe4VdtQ1TOjXGlY,327
|
|
139
|
+
nimbus_sdk/_data/spec/conformance/v1/predicates/cases/row-data-offender-attributed-to-segment.json,sha256=rUiMFJRbOWZKH2wndMBrdW-saUnUvQ-7XLJg6paqqk4,274
|
|
140
|
+
nimbus_sdk/_data/spec/conformance/v1/predicates/cases/row-data-one-violation-per-tool.json,sha256=wsxHgTNeLzA6i5qxvz2ky7d7B7XFvDMwqwhZHgQDvUU,274
|
|
141
|
+
nimbus_sdk/_data/spec/conformance/v1/predicates/cases/row-data-segment-not-substring.json,sha256=s_pDa3YPd9p-d_IAaCrz3Vr6Anb2NYbvRZbgQzhIyI4,262
|
|
142
|
+
nimbus_sdk/_data/spec/conformance/v1/sandbox/case.schema.json,sha256=hUC6ceIJjslC92fZwqBn8KecPJ6UKNGjIrisj52vepw,4501
|
|
143
|
+
nimbus_sdk/_data/spec/conformance/v1/sandbox/index.json,sha256=3P1EPmOjryKdpIF7RJ9XKpV61Pu7WmK3iA5A-RE9bpY,5562
|
|
144
|
+
nimbus_sdk/_data/spec/conformance/v1/sandbox/index.schema.json,sha256=urSMTkQQrEEnxiN7Ogk1gjH6q3NT616P5Ubbrcgbp_I,1684
|
|
145
|
+
nimbus_sdk/_data/spec/conformance/v1/sandbox/cases/classify-fs-eacces.json,sha256=OXGjcFHi_MtCXHTnwF6ssdltmsU6rwREEETt-pO6pk4,139
|
|
146
|
+
nimbus_sdk/_data/spec/conformance/v1/sandbox/cases/classify-fs-ebusy.json,sha256=KM1ZMYHNgZl-1l_BYfM-8FyEAgaafT2O_qZeSgnEiY0,137
|
|
147
|
+
nimbus_sdk/_data/spec/conformance/v1/sandbox/cases/classify-fs-econnrefused-is-not-a-denial.json,sha256=FieHgEJYug5EC0x9wxavB0FfKggBLmE96XCxq-0vqnU,158
|
|
148
|
+
nimbus_sdk/_data/spec/conformance/v1/sandbox/cases/classify-fs-eisdir-is-not-a-denial.json,sha256=ZOcn8_wc6DR3PVR8Xx6pXL68jbOSWS_Ht3M4d4SA9TM,146
|
|
149
|
+
nimbus_sdk/_data/spec/conformance/v1/sandbox/cases/classify-fs-enoent-is-not-a-denial.json,sha256=4OFoOgwb7hOmRnl_CGh5aZgd-0Q5CRWhuxwqErpnlAY,146
|
|
150
|
+
nimbus_sdk/_data/spec/conformance/v1/sandbox/cases/classify-fs-eperm.json,sha256=8i2rf9C4dpLxQyYUSd86u82HeTaZCt_xDKFq2IAZfRA,137
|
|
151
|
+
nimbus_sdk/_data/spec/conformance/v1/sandbox/cases/classify-fs-no-code.json,sha256=U6aDhiYEIMfnyrt6ghJYJ1wtjQ-Evbl1vW8erCPGh10,150
|
|
152
|
+
nimbus_sdk/_data/spec/conformance/v1/sandbox/cases/classify-network-eacces-is-not-a-block.json,sha256=EzD75yt1A8gxCiuex82Eu9l1-QPj53Db8J76_-LkLto,149
|
|
153
|
+
nimbus_sdk/_data/spec/conformance/v1/sandbox/cases/classify-network-econnrefused.json,sha256=H7X6swfhjTjQgbndxjzFhTkNAZ4XqSqNpsY2gQS8tg4,154
|
|
154
|
+
nimbus_sdk/_data/spec/conformance/v1/sandbox/cases/classify-network-econnreset-is-not-a-block.json,sha256=9macPT8in-3ncvZnYsYvtao_IPON-yt7aHJyIZBcFzg,157
|
|
155
|
+
nimbus_sdk/_data/spec/conformance/v1/sandbox/cases/classify-network-ehostunreach.json,sha256=bct0pbsDrhOSbNmWBHjFZofNdtaRjGgOhMNy0IlidtY,154
|
|
156
|
+
nimbus_sdk/_data/spec/conformance/v1/sandbox/cases/classify-network-enetunreach.json,sha256=m5n8-QsdJxVCfiuRRgkwNyUGdAoX4HVx1TlWlGsaeNM,152
|
|
157
|
+
nimbus_sdk/_data/spec/conformance/v1/sandbox/cases/classify-network-eperm.json,sha256=0eAQKSIM84ZuyfnvWM94XZI-HvG9ZjnkvQZ-yq0Xet0,140
|
|
158
|
+
nimbus_sdk/_data/spec/conformance/v1/sandbox/cases/classify-network-etimedout-is-not-a-block.json,sha256=bqGafQzAHWhPNSpmYsiSlnx6CpK_iME0gfm8kNEyk4k,155
|
|
159
|
+
nimbus_sdk/_data/spec/conformance/v1/sandbox/cases/classify-network-no-code.json,sha256=fjkVXPGZfekQB8hcRPW0x0kJlQgjH9te3ql0Am3NJHo,153
|
|
160
|
+
nimbus_sdk/_data/spec/conformance/v1/sandbox/cases/harness-empty-network-array-skips.json,sha256=bkY5RRMz6J01LQ4gpeFp49AjOI9pvmtmr2EFNakj9vc,319
|
|
161
|
+
nimbus_sdk/_data/spec/conformance/v1/sandbox/cases/harness-empty-string-host-is-a-host.json,sha256=BTkMWuWGslT2on41pWMCS2fVmoqalxXDkDkFM__IxbQ,559
|
|
162
|
+
nimbus_sdk/_data/spec/conformance/v1/sandbox/cases/harness-fs-failure-throws.json,sha256=flU9a4V6N1ec1P5bs_-j2aFTQ-U-2_Jr8DXunNuZtDc,333
|
|
163
|
+
nimbus_sdk/_data/spec/conformance/v1/sandbox/cases/harness-fs-pass-is-a-failure.json,sha256=KxDkZTqqdZ2pymqxwM9zYUBIwxsb2ShdJlJ-cvjF_EQ,338
|
|
164
|
+
nimbus_sdk/_data/spec/conformance/v1/sandbox/cases/harness-hosts-darwin-all-three.json,sha256=tlVPA3zRGmDq1zh4fwGaE1cHGyRlJgOVy8yTSb-RuPs,556
|
|
165
|
+
nimbus_sdk/_data/spec/conformance/v1/sandbox/cases/harness-hosts-posix-all-three.json,sha256=oSkG8yjhiSbG1-Uw4FtnDMPpr0p3Il2L4i2Kgv5CuEM,574
|
|
166
|
+
nimbus_sdk/_data/spec/conformance/v1/sandbox/cases/harness-hosts-win32-skips-unlisted.json,sha256=WMZnpTYYnsMHsAwKu2w6h3xcy2l-LnEv14BNH36PkBM,474
|
|
167
|
+
nimbus_sdk/_data/spec/conformance/v1/sandbox/cases/harness-listed-blocked-is-a-failure.json,sha256=hceslsqGBRjBBPX-mCu-RGal_iFQ5LSKmOJofkY-qcM,427
|
|
168
|
+
nimbus_sdk/_data/spec/conformance/v1/sandbox/cases/harness-listed-failure-stops-immediately.json,sha256=48DbLoOticNByfSwzUYh0YAkS_LZf2FhaxAOAUwYskU,424
|
|
169
|
+
nimbus_sdk/_data/spec/conformance/v1/sandbox/cases/harness-no-hosts-posix-skips-both-network.json,sha256=x4WG82SRx-uNXZ5267wA1GA2YXk8QuxKxIFkAtp6eI0,318
|
|
170
|
+
nimbus_sdk/_data/spec/conformance/v1/sandbox/cases/harness-no-hosts-win32-only-fs.json,sha256=IY1SxGgPmWCrryBxzYvSHX1ZyWpJR3subgERgDHgCyk,300
|
|
171
|
+
nimbus_sdk/_data/spec/conformance/v1/sandbox/cases/harness-only-first-host-probed.json,sha256=l-NGCc53VIrasGGMITs2YtOT6WE9R-gD3rnl0nHv-bQ,647
|
|
172
|
+
nimbus_sdk/_data/spec/conformance/v1/sandbox/cases/harness-permissions-absent.json,sha256=C28PkZcdxV1USxf69ORlaLxs0eLBuIS-thFapcgaVWY,297
|
|
173
|
+
nimbus_sdk/_data/spec/conformance/v1/sandbox/cases/harness-permissions-legacy-array.json,sha256=pcOs3DW0kqrxJLeUCgVzt7V1jyWmlS3zPyelcAWpByY,348
|
|
174
|
+
nimbus_sdk/_data/spec/conformance/v1/sandbox/cases/harness-permissions-null.json,sha256=vUeb9m1mutDgQyol2G4HgKycMeyLpH3XqyWY-w0_66g,300
|
|
175
|
+
nimbus_sdk/_data/spec/conformance/v1/sandbox/cases/harness-unlisted-failure-stops-before-fs.json,sha256=Gz_0yn9qXsVgWxFEldqnBVXugI6D_BABZYDVvDQ6Ma4,543
|
|
176
|
+
nimbus_sdk/_data/spec/negotiation/hello.schema.json,sha256=Du_8jGIBp96nebjoyh62EOCGpJavam-elzB3IrNQ8tU,1307
|
|
177
|
+
nimbus_sdk/_data/spec/predicates/v1/row-data-segments.json,sha256=MJXjfrN2BNj4L_UvINEn87_zjXp-xCYCMB1J9ojOe3A,1532
|
|
178
|
+
nimbus_sdk/_data/spec/predicates/v1/row-data-segments.schema.json,sha256=e8wgz6iVCxelMpt9GladqV64qe07XGLOrb_rxxsj8dQ,2666
|
|
179
|
+
nimbus_sdk/_data/spec/probe/v1/probe-protocol.json,sha256=LT9bfgPNfEwF0JbdnUHoL-X2loH5up4roGrwahSqLSc,3261
|
|
180
|
+
nimbus_sdk/_data/spec/probe/v1/probe-protocol.schema.json,sha256=kR0kdv8H6-TUbz2jvJIFmK9h4DYGslC8oYck73Y0w70,3750
|
|
181
|
+
nimbus_sdk/_data/spec/rules/v1/manifest-rules.json,sha256=DqwzFubraN6yFL9LpTwxA3fnduY7MiRTp9gvk401QlM,4144
|
|
182
|
+
nimbus_sdk/_data/spec/rules/v1/manifest-rules.schema.json,sha256=xwpx6_NNNhcnp6-DP5YkAxH41s5UQo5yN0ZCj9pBuBg,3090
|
|
183
|
+
nimbus_sdk/_data/spec/schemas/v1/extension-manifest.schema.json,sha256=pETleZlc51BEt1iTtQlkDLr_jR6OccpgRqHIHpozP2M,3236
|
|
184
|
+
nimbus_sdk/_data/spec/schemas/v1/hitl-request.schema.json,sha256=IbxMlBF5XF2YcoOGMbXJR9dSr0XWlOJpBDV6GFkblpU,1403
|
|
185
|
+
nimbus_sdk/_data/spec/schemas/v1/nimbus-item.schema.json,sha256=dmqGhEm4aI1U-GHwHVE3y85cqcqAmm1WmgXjF92nHuQ,1335
|
|
186
|
+
nimbus_dev_sdk-0.1.0.dist-info/METADATA,sha256=Em6UmeKmv7mgD5WdvdkF9c8DJ5IA6HMotlVZctRMTZ4,2163
|
|
187
|
+
nimbus_dev_sdk-0.1.0.dist-info/WHEEL,sha256=lCkmxWfQsSc9CfIClYeavTdQeEX2toPqufh9gI35EQA,87
|
|
188
|
+
nimbus_dev_sdk-0.1.0.dist-info/licenses/LICENSE,sha256=-bUoRAq86a9OXXpJGz1Psqu5Bfj1EVBAFK5EAi4W2io,1076
|
|
189
|
+
nimbus_dev_sdk-0.1.0.dist-info/RECORD,,
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Nimbus Contributors
|
|
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.
|
nimbus_sdk/__init__.py
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"""Nimbus SDK — the Python binding of the Nimbus authoring contract.
|
|
2
|
+
|
|
3
|
+
The contract itself is language-neutral and published under ``docs/spec/`` in the
|
|
4
|
+
`nimbus-sdk repository <https://github.com/nimbus-agent/nimbus-sdk>`_. This package
|
|
5
|
+
carries that data and binds it to Python.
|
|
6
|
+
|
|
7
|
+
Installed as ``nimbus-dev-sdk``; imported as ``nimbus_sdk``.
|
|
8
|
+
"""
|
|
9
|
+
|
|
10
|
+
from __future__ import annotations
|
|
11
|
+
|
|
12
|
+
from importlib.metadata import PackageNotFoundError, version
|
|
13
|
+
|
|
14
|
+
from nimbus_sdk.contract import (
|
|
15
|
+
CONTRACT_HANDSHAKE_EXIT,
|
|
16
|
+
CONTRACT_VERSION_PATTERN,
|
|
17
|
+
CONTRACT_VERSIONS,
|
|
18
|
+
NegotiationOk,
|
|
19
|
+
NegotiationRefused,
|
|
20
|
+
NegotiationResult,
|
|
21
|
+
declared_versions_match,
|
|
22
|
+
manifest_contract_versions,
|
|
23
|
+
negotiate_contract_version,
|
|
24
|
+
)
|
|
25
|
+
from nimbus_sdk.spec import load_corpus, load_schema, spec_root
|
|
26
|
+
|
|
27
|
+
try:
|
|
28
|
+
__version__ = version("nimbus-dev-sdk")
|
|
29
|
+
except PackageNotFoundError: # running from an uninstalled source tree
|
|
30
|
+
__version__ = "0.0.0+unknown"
|
|
31
|
+
|
|
32
|
+
__all__ = [
|
|
33
|
+
"CONTRACT_HANDSHAKE_EXIT",
|
|
34
|
+
"CONTRACT_VERSIONS",
|
|
35
|
+
"CONTRACT_VERSION_PATTERN",
|
|
36
|
+
"NegotiationOk",
|
|
37
|
+
"NegotiationRefused",
|
|
38
|
+
"NegotiationResult",
|
|
39
|
+
"__version__",
|
|
40
|
+
"declared_versions_match",
|
|
41
|
+
"load_corpus",
|
|
42
|
+
"load_schema",
|
|
43
|
+
"manifest_contract_versions",
|
|
44
|
+
"negotiate_contract_version",
|
|
45
|
+
"spec_root",
|
|
46
|
+
]
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"$id": "https://raw.githubusercontent.com/nimbus-agent/nimbus-sdk/main/docs/spec/conformance/v1/framing/case.schema.json",
|
|
4
|
+
"title": "Framing conformance case",
|
|
5
|
+
"description": "One behavioral case: a sequence of chunks pushed into a reader, and what the reader must produce for each. Unlike the document fixtures alongside this corpus, a case is a stream, not a value.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"required": ["description", "chunks", "expect"],
|
|
8
|
+
"additionalProperties": false,
|
|
9
|
+
"properties": {
|
|
10
|
+
"description": {
|
|
11
|
+
"type": "string",
|
|
12
|
+
"pattern": "\\S",
|
|
13
|
+
"description": "What behavior this case pins, in one sentence."
|
|
14
|
+
},
|
|
15
|
+
"chunks": {
|
|
16
|
+
"type": "array",
|
|
17
|
+
"description": "Chunks to push, in order. May be empty, for the end-of-stream-with-nothing-buffered case.",
|
|
18
|
+
"items": { "$ref": "#/definitions/chunk" }
|
|
19
|
+
},
|
|
20
|
+
"expect": {
|
|
21
|
+
"type": "object",
|
|
22
|
+
"required": ["push"],
|
|
23
|
+
"additionalProperties": false,
|
|
24
|
+
"properties": {
|
|
25
|
+
"push": {
|
|
26
|
+
"type": "array",
|
|
27
|
+
"description": "Positionally parallel to chunks: element i is what push(chunks[i]) must produce. Length MUST equal the length of chunks.",
|
|
28
|
+
"items": {
|
|
29
|
+
"oneOf": [
|
|
30
|
+
{
|
|
31
|
+
"type": "array",
|
|
32
|
+
"description": "The frames this push emits, in order. Empty when the chunk completed no frame.",
|
|
33
|
+
"items": { "$ref": "#/definitions/frame" }
|
|
34
|
+
},
|
|
35
|
+
{ "$ref": "#/definitions/error" }
|
|
36
|
+
]
|
|
37
|
+
}
|
|
38
|
+
},
|
|
39
|
+
"flush": {
|
|
40
|
+
"description": "What draining at end-of-stream must produce. Omit when the case ends in an error and flush is therefore unreachable.",
|
|
41
|
+
"oneOf": [
|
|
42
|
+
{
|
|
43
|
+
"type": "object",
|
|
44
|
+
"required": ["frames", "truncated"],
|
|
45
|
+
"additionalProperties": false,
|
|
46
|
+
"properties": {
|
|
47
|
+
"frames": {
|
|
48
|
+
"type": "array",
|
|
49
|
+
"maxItems": 1,
|
|
50
|
+
"items": { "$ref": "#/definitions/frame" }
|
|
51
|
+
},
|
|
52
|
+
"truncated": {
|
|
53
|
+
"type": "boolean",
|
|
54
|
+
"description": "True when a frame is delivered that no LF terminated."
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
{ "$ref": "#/definitions/error" }
|
|
59
|
+
]
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
},
|
|
64
|
+
"definitions": {
|
|
65
|
+
"error": {
|
|
66
|
+
"type": "object",
|
|
67
|
+
"required": ["error"],
|
|
68
|
+
"additionalProperties": false,
|
|
69
|
+
"properties": {
|
|
70
|
+
"error": {
|
|
71
|
+
"enum": ["frame-too-long"],
|
|
72
|
+
"description": "Named symbolically so a binding maps it onto its own error type rather than matching a message."
|
|
73
|
+
}
|
|
74
|
+
},
|
|
75
|
+
"description": "The reader must fail this call. How the failure is expressed is a binding's business."
|
|
76
|
+
},
|
|
77
|
+
"frame": {
|
|
78
|
+
"oneOf": [
|
|
79
|
+
{ "type": "string" },
|
|
80
|
+
{ "$ref": "#/definitions/repeat" }
|
|
81
|
+
],
|
|
82
|
+
"description": "An expected frame: a literal string, or a repeat descriptor when the frame is too large to inline."
|
|
83
|
+
},
|
|
84
|
+
"chunk": {
|
|
85
|
+
"oneOf": [
|
|
86
|
+
{
|
|
87
|
+
"type": "object",
|
|
88
|
+
"required": ["utf8"],
|
|
89
|
+
"additionalProperties": false,
|
|
90
|
+
"properties": { "utf8": { "type": "string" } },
|
|
91
|
+
"description": "Octets are this string encoded as UTF-8. The readable common case."
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
"type": "object",
|
|
95
|
+
"required": ["base64"],
|
|
96
|
+
"additionalProperties": false,
|
|
97
|
+
"properties": {
|
|
98
|
+
"base64": { "type": "string", "pattern": "^[A-Za-z0-9+/]*={0,2}$" }
|
|
99
|
+
},
|
|
100
|
+
"description": "Exact octets. Required for ill-formed UTF-8 and for sequences deliberately split across a boundary."
|
|
101
|
+
},
|
|
102
|
+
{ "$ref": "#/definitions/repeat" },
|
|
103
|
+
{
|
|
104
|
+
"type": "object",
|
|
105
|
+
"required": ["concat"],
|
|
106
|
+
"additionalProperties": false,
|
|
107
|
+
"properties": {
|
|
108
|
+
"concat": {
|
|
109
|
+
"type": "array",
|
|
110
|
+
"minItems": 1,
|
|
111
|
+
"items": { "$ref": "#/definitions/chunk" }
|
|
112
|
+
},
|
|
113
|
+
"description": { "type": "string" }
|
|
114
|
+
},
|
|
115
|
+
"description": "One chunk built from several descriptors, for a single push that must contain both a large frame and its delimiter."
|
|
116
|
+
}
|
|
117
|
+
]
|
|
118
|
+
},
|
|
119
|
+
"repeat": {
|
|
120
|
+
"type": "object",
|
|
121
|
+
"required": ["repeat"],
|
|
122
|
+
"additionalProperties": false,
|
|
123
|
+
"properties": {
|
|
124
|
+
"repeat": {
|
|
125
|
+
"type": "object",
|
|
126
|
+
"oneOf": [
|
|
127
|
+
{
|
|
128
|
+
"type": "object",
|
|
129
|
+
"required": ["byte", "count"],
|
|
130
|
+
"additionalProperties": false,
|
|
131
|
+
"properties": {
|
|
132
|
+
"byte": {
|
|
133
|
+
"type": "integer",
|
|
134
|
+
"minimum": 0,
|
|
135
|
+
"maximum": 255,
|
|
136
|
+
"description": "Repeat this octet."
|
|
137
|
+
},
|
|
138
|
+
"count": { "type": "integer", "minimum": 0 }
|
|
139
|
+
}
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
"type": "object",
|
|
143
|
+
"required": ["utf8", "count"],
|
|
144
|
+
"additionalProperties": false,
|
|
145
|
+
"properties": {
|
|
146
|
+
"utf8": {
|
|
147
|
+
"type": "string",
|
|
148
|
+
"minLength": 1,
|
|
149
|
+
"description": "Repeat this string's UTF-8 encoding. Use when the case must distinguish octets from characters."
|
|
150
|
+
},
|
|
151
|
+
"count": { "type": "integer", "minimum": 0 }
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
]
|
|
155
|
+
}
|
|
156
|
+
},
|
|
157
|
+
"description": "Generated content, so a case at the 1 MiB limit costs a few lines rather than megabytes of base64."
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
{
|
|
2
|
+
"description": "a BOM at the very start of the stream is not part of the first frame",
|
|
3
|
+
"chunks": [{ "concat": [{ "base64": "77u/" }, { "utf8": "{\"a\":1}\n" }] }],
|
|
4
|
+
"expect": {
|
|
5
|
+
"push": [["{\"a\":1}"]],
|
|
6
|
+
"flush": { "frames": [], "truncated": false }
|
|
7
|
+
}
|
|
8
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
{
|
|
2
|
+
"description": "a frame of exactly 1048576 octets is conformant — the limit is inclusive",
|
|
3
|
+
"chunks": [
|
|
4
|
+
{ "concat": [{ "repeat": { "byte": 97, "count": 1048576 } }, { "utf8": "\n" }] }
|
|
5
|
+
],
|
|
6
|
+
"expect": {
|
|
7
|
+
"push": [[{ "repeat": { "byte": 97, "count": 1048576 } }]],
|
|
8
|
+
"flush": { "frames": [], "truncated": false }
|
|
9
|
+
}
|
|
10
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
{
|
|
2
|
+
"description": "a complete frame of 1048577 octets is rejected, and the rejection is terminal",
|
|
3
|
+
"chunks": [
|
|
4
|
+
{ "concat": [{ "repeat": { "byte": 97, "count": 1048577 } }, { "utf8": "\n" }] }
|
|
5
|
+
],
|
|
6
|
+
"expect": {
|
|
7
|
+
"push": [{ "error": "frame-too-long" }],
|
|
8
|
+
"flush": { "error": "frame-too-long" }
|
|
9
|
+
}
|
|
10
|
+
}
|