@7h3/protocol 0.5.0 → 0.5.1

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 (294) hide show
  1. package/README.md +6 -1317
  2. package/agentAdapter.d.ts +26 -0
  3. package/auditLog.d.ts +54 -0
  4. package/capability.d.ts +67 -0
  5. package/cborCodec.d.ts +34 -0
  6. package/conformanceVectors.d.ts +20 -0
  7. package/encryption.d.ts +85 -0
  8. package/envelopeCbor.d.ts +33 -0
  9. package/frameworkAdapters.d.ts +72 -0
  10. package/gateway.d.ts +53 -0
  11. package/grpcBinding.d.ts +29 -0
  12. package/httpBinding.d.ts +50 -0
  13. package/index.d.ts +39 -0
  14. package/index.js +3662 -0
  15. package/keyInfra.d.ts +64 -0
  16. package/keyRegistry.d.ts +9 -0
  17. package/keyRotation.d.ts +20 -0
  18. package/mcpGateway.d.ts +37 -0
  19. package/mcpTransports.d.ts +62 -0
  20. package/mcpWrapper.d.ts +83 -0
  21. package/otel.d.ts +65 -0
  22. package/package.json +13 -121
  23. package/policyEnforcer.d.ts +50 -0
  24. package/policyTelemetryFeedback.d.ts +11 -0
  25. package/{src/protocol.d.ts → protocol.d.ts} +1 -2
  26. package/protocolAgent.d.ts +58 -0
  27. package/protocolBinary.d.ts +8 -0
  28. package/protocolCapabilities.d.ts +24 -0
  29. package/protocolReplay.d.ts +35 -0
  30. package/protocolTransport.d.ts +73 -0
  31. package/queueBinding.d.ts +43 -0
  32. package/rateLimiter.d.ts +18 -0
  33. package/{src/redisClient.ts → redisClient.d.ts} +25 -75
  34. package/replayStores.d.ts +98 -0
  35. package/revocation.d.ts +71 -0
  36. package/routePolicy.d.ts +30 -0
  37. package/runtimePolicy.d.ts +24 -0
  38. package/runtimePolicyManager.d.ts +15 -0
  39. package/runtimePolicyPresets.d.ts +11 -0
  40. package/signedResponse.d.ts +21 -0
  41. package/stream.d.ts +59 -0
  42. package/telemetry.d.ts +79 -0
  43. package/webhookBinding.d.ts +30 -0
  44. package/wsBinding.d.ts +52 -0
  45. package/.dockerignore +0 -19
  46. package/.github/dependabot.yml +0 -32
  47. package/.github/workflows/ci.yml +0 -31
  48. package/.github/workflows/publish.yml +0 -59
  49. package/.github/workflows/scorecard.yml +0 -37
  50. package/7h3.example.yaml +0 -125
  51. package/CHANGELOG.md +0 -152
  52. package/CONTRIBUTING.md +0 -82
  53. package/Dockerfile +0 -73
  54. package/GOVERNANCE.md +0 -62
  55. package/SECURITY.md +0 -70
  56. package/bench-results/replay-cache-full-1777891033256.json +0 -10
  57. package/bench-results/replay-cache-full-1777896317488.json +0 -10
  58. package/bench-results/replay-cache-full-1777900993184.json +0 -10
  59. package/bench-results/replay-cache-full-1777901019285.json +0 -10
  60. package/bench-results/replay-cache-quick-1777870170126.json +0 -10
  61. package/bench-results/signature-profiles-quick-1775875160079.json +0 -85
  62. package/bench-results/signature-profiles-quick-1775983539716.json +0 -85
  63. package/bench-results/signature-profiles-quick-1776237913190.json +0 -85
  64. package/bench-results/wire-codecs-full-1777891019803.json +0 -93
  65. package/bench-results/wire-codecs-full-1777896260964.json +0 -93
  66. package/bench-results/wire-codecs-full-1777901004247.json +0 -93
  67. package/bench-results/wire-codecs-quick-1775972879056.json +0 -93
  68. package/bench-results/wire-codecs-quick-1775983541111.json +0 -93
  69. package/bench-results/wire-codecs-quick-1776237914299.json +0 -93
  70. package/bench-results/wire-codecs-quick-1777841285236.json +0 -93
  71. package/bench-results/wire-codecs-quick-1777841321772.json +0 -93
  72. package/bench-results/wire-codecs-quick-1777841330408.json +0 -93
  73. package/bench-results/wire-codecs-quick-1777852886082.json +0 -93
  74. package/bench-results/wire-codecs-quick-1777852988773.json +0 -93
  75. package/bench-results/wire-codecs-quick-1777870188095.json +0 -93
  76. package/bench-results/wire-codecs-quick-1777870263918.json +0 -93
  77. package/bench-results/wire-codecs-quick-1777870455034.json +0 -93
  78. package/bench-results/wire-codecs-quick-1778816163081.json +0 -93
  79. package/bench-results/wire-codecs-quick-1778843936130.json +0 -93
  80. package/bin/7h3.ts +0 -406
  81. package/conformance/7h3_v0_1.json +0 -77
  82. package/conformance/7h3_v0_1_binary.json +0 -20
  83. package/conformance/aip_v0_1_binary.json +0 -20
  84. package/docker-compose.yaml +0 -77
  85. package/docs/ADOPTION_PLAN.md +0 -120
  86. package/docs/AGENTS.md +0 -77
  87. package/docs/AIP_RFC_v0.1.md +0 -97
  88. package/docs/AI_DECISION_CARD.md +0 -122
  89. package/docs/AI_RUNTIME_POLICY.json +0 -126
  90. package/docs/AI_RUNTIME_POLICY.yaml +0 -110
  91. package/docs/BACKPRESSURE_TUNING.md +0 -65
  92. package/docs/BENCHMARK_CLAIM_MATRIX.md +0 -42
  93. package/docs/BENCHMARK_REPORT_TEMPLATE.md +0 -169
  94. package/docs/BINARY_CODEC_BENCH.md +0 -23
  95. package/docs/CLEAN_CLONE_RUNBOOK.md +0 -36
  96. package/docs/CLOCK_SKEW_POLICY.md +0 -30
  97. package/docs/DISTRIBUTED_REPLAY.md +0 -142
  98. package/docs/FUZZ_CAMPAIGN.md +0 -121
  99. package/docs/GATEWAY.md +0 -195
  100. package/docs/KEY_MANAGEMENT_POLICY.md +0 -53
  101. package/docs/KEY_REVOCATION.md +0 -69
  102. package/docs/MCP_WRAPPER.md +0 -159
  103. package/docs/MIGRATION_GUIDE.md +0 -40
  104. package/docs/OPERATORS.md +0 -184
  105. package/docs/PERF_REGRESSION_POLICY.md +0 -34
  106. package/docs/PROJECT_EXAMINATION_2026-05-31.md +0 -219
  107. package/docs/RELEASE_BENCHMARK_REPORT_2026-05-15.md +0 -135
  108. package/docs/RELEASE_GATE.md +0 -25
  109. package/docs/RELEASE_NOTES_v0.1.0.md +0 -54
  110. package/docs/SECURITY_REVIEW_2026-06-05.md +0 -165
  111. package/docs/TELEMETRY.md +0 -41
  112. package/docs/THREAT_MODEL.md +0 -89
  113. package/docs/VERSIONING_POLICY.md +0 -30
  114. package/docs/assets/banner-github.png +0 -0
  115. package/docs/assets/banner.png +0 -0
  116. package/docs/assets/banner.svg +0 -123
  117. package/eslint.config.js +0 -15
  118. package/fuzz/ts/harness-decode.ts +0 -136
  119. package/fuzz/ts/harness-verify.ts +0 -121
  120. package/fuzz/ts/run.ts +0 -35
  121. package/mcp-server/README.md +0 -38
  122. package/mcp-server/package-lock.json +0 -1187
  123. package/mcp-server/package.json +0 -35
  124. package/mcp-server/src/index.ts +0 -236
  125. package/mcp-server/tsconfig.json +0 -14
  126. package/scripts/aip-framework-quickstart.ts +0 -110
  127. package/scripts/aip-mcp-gateway.ts +0 -38
  128. package/scripts/aip-mcp-wrap-demo.ts +0 -72
  129. package/scripts/aip-quickstart.ts +0 -60
  130. package/scripts/bench-diff.ts +0 -118
  131. package/scripts/bench-protocol-e2e.ts +0 -937
  132. package/scripts/bench-protocol-openloop.ts +0 -1397
  133. package/scripts/bench-replay-cache.ts +0 -76
  134. package/scripts/bench-signature-profiles.ts +0 -180
  135. package/scripts/bench-wire-codecs.ts +0 -161
  136. package/scripts/build-binary-conformance.ts +0 -36
  137. package/scripts/build-release-dashboard.ts +0 -175
  138. package/scripts/canary-rollout.ts +0 -38
  139. package/scripts/mcpGatewayCli.test.ts +0 -116
  140. package/scripts/prepare-aip-package.ts +0 -88
  141. package/scripts/regen-conformance-sigs.ts +0 -18
  142. package/scripts/release-gate.ts +0 -19
  143. package/scripts/validate-runtime-policy.ts +0 -18
  144. package/sdk/browser/index.test.ts +0 -162
  145. package/sdk/browser/index.ts +0 -257
  146. package/sdk/browser/package.json +0 -13
  147. package/sdk/go/cbor.go +0 -551
  148. package/sdk/go/cbor_test.go +0 -232
  149. package/sdk/go/encryption.go +0 -280
  150. package/sdk/go/encryption_test.go +0 -318
  151. package/sdk/go/go.mod +0 -7
  152. package/sdk/go/go.sum +0 -4
  153. package/sdk/go/http.go +0 -135
  154. package/sdk/go/protocol.go +0 -324
  155. package/sdk/go/protocol_test.go +0 -334
  156. package/sdk/go/replay.go +0 -121
  157. package/sdk/go/replay_test.go +0 -149
  158. package/sdk/go/webhook.go +0 -136
  159. package/sdk/pq/package-lock.json +0 -1358
  160. package/sdk/pq/package.json +0 -42
  161. package/sdk/pq/src/index.test.ts +0 -143
  162. package/sdk/pq/src/index.ts +0 -166
  163. package/sdk/pq/tsconfig.json +0 -14
  164. package/sdk/pq/vitest.config.ts +0 -7
  165. package/sdk/python/README.md +0 -18
  166. package/sdk/python/protocol_7h3/__init__.py +0 -46
  167. package/sdk/python/protocol_7h3/encryption.py +0 -252
  168. package/sdk/python/protocol_7h3/http.py +0 -212
  169. package/sdk/python/protocol_7h3/keys.py +0 -149
  170. package/sdk/python/protocol_7h3/pq.py +0 -244
  171. package/sdk/python/protocol_7h3/protocol.py +0 -525
  172. package/sdk/python/protocol_7h3/queue.py +0 -118
  173. package/sdk/python/protocol_7h3/replay.py +0 -98
  174. package/sdk/python/protocol_7h3/webhook.py +0 -116
  175. package/sdk/python/pyproject.toml +0 -40
  176. package/sdk/python/tests/test_conformance.py +0 -110
  177. package/sdk/python/tests/test_encryption.py +0 -206
  178. package/sdk/python/tests/test_http.py +0 -305
  179. package/sdk/python/tests/test_keys.py +0 -417
  180. package/sdk/python/tests/test_queue.py +0 -120
  181. package/sdk/python/tests/test_webhook.py +0 -345
  182. package/sdk/rust/Cargo.lock +0 -371
  183. package/sdk/rust/Cargo.toml +0 -25
  184. package/sdk/rust/README.md +0 -31
  185. package/sdk/rust/fuzz/Cargo.toml +0 -29
  186. package/sdk/rust/fuzz/fuzz_targets/fuzz_canonicalize.rs +0 -46
  187. package/sdk/rust/fuzz/fuzz_targets/fuzz_decode.rs +0 -11
  188. package/sdk/rust/src/bin/aip_mcp_gateway.rs +0 -59
  189. package/sdk/rust/src/http.rs +0 -145
  190. package/sdk/rust/src/keys.rs +0 -161
  191. package/sdk/rust/src/lib.rs +0 -688
  192. package/sdk/rust/src/queue.rs +0 -79
  193. package/sdk/rust/src/webhook.rs +0 -86
  194. package/sdk/rust/tests/conformance.rs +0 -148
  195. package/sdk/rust/tests/gateway.rs +0 -130
  196. package/sdk/rust/tests/http_webhook_queue.rs +0 -201
  197. package/sdk/rust/tests/keys.rs +0 -189
  198. package/sdk/threshold/index.d.ts +0 -68
  199. package/sdk/threshold/index.d.ts.map +0 -1
  200. package/sdk/threshold/index.js +0 -254
  201. package/sdk/threshold/package-lock.json +0 -1361
  202. package/sdk/threshold/package.json +0 -39
  203. package/sdk/threshold/src/index.d.ts +0 -68
  204. package/sdk/threshold/src/index.d.ts.map +0 -1
  205. package/sdk/threshold/src/index.js +0 -254
  206. package/sdk/threshold/src/index.test.ts +0 -238
  207. package/sdk/threshold/src/index.ts +0 -355
  208. package/sdk/threshold/tsconfig.json +0 -19
  209. package/sdk/threshold/vitest.config.ts +0 -12
  210. package/src/agentAdapter.test.ts +0 -48
  211. package/src/agentAdapter.ts +0 -56
  212. package/src/auditLog.test.ts +0 -145
  213. package/src/auditLog.ts +0 -147
  214. package/src/capability.test.ts +0 -504
  215. package/src/capability.ts +0 -380
  216. package/src/cborCodec.test.ts +0 -263
  217. package/src/cborCodec.ts +0 -339
  218. package/src/conformance.test.ts +0 -136
  219. package/src/conformanceVectors.ts +0 -99
  220. package/src/encryption.test.ts +0 -206
  221. package/src/encryption.ts +0 -245
  222. package/src/envelopeCbor.ts +0 -140
  223. package/src/frameworkAdapters.test.ts +0 -290
  224. package/src/frameworkAdapters.ts +0 -261
  225. package/src/gateway.test.ts +0 -343
  226. package/src/gateway.ts +0 -246
  227. package/src/grpcBinding.test.ts +0 -211
  228. package/src/grpcBinding.ts +0 -103
  229. package/src/httpBinding.test.ts +0 -376
  230. package/src/httpBinding.ts +0 -189
  231. package/src/index.ts +0 -39
  232. package/src/keyInfra.test.ts +0 -278
  233. package/src/keyInfra.ts +0 -228
  234. package/src/keyRegistry.ts +0 -59
  235. package/src/keyRotation.test.ts +0 -78
  236. package/src/keyRotation.ts +0 -72
  237. package/src/mcpGateway.test.ts +0 -129
  238. package/src/mcpGateway.ts +0 -250
  239. package/src/mcpTransports.test.ts +0 -92
  240. package/src/mcpTransports.ts +0 -169
  241. package/src/mcpWrapper.test.ts +0 -179
  242. package/src/mcpWrapper.ts +0 -206
  243. package/src/otel.ts +0 -136
  244. package/src/policyEnforcer.test.ts +0 -99
  245. package/src/policyEnforcer.ts +0 -169
  246. package/src/policyTelemetryFeedback.test.ts +0 -25
  247. package/src/policyTelemetryFeedback.ts +0 -38
  248. package/src/protocol.bench.ts +0 -37
  249. package/src/protocol.d.ts.map +0 -1
  250. package/src/protocol.js +0 -294
  251. package/src/protocol.test.ts +0 -155
  252. package/src/protocol.ts +0 -414
  253. package/src/protocolAgent.test.ts +0 -105
  254. package/src/protocolAgent.ts +0 -169
  255. package/src/protocolBinary.test.ts +0 -165
  256. package/src/protocolBinary.ts +0 -312
  257. package/src/protocolCapabilities.ts +0 -70
  258. package/src/protocolFuzz.advanced.test.ts +0 -235
  259. package/src/protocolFuzz.test.ts +0 -111
  260. package/src/protocolNegative.test.ts +0 -97
  261. package/src/protocolReplay.test.ts +0 -71
  262. package/src/protocolReplay.ts +0 -194
  263. package/src/protocolTransport.test.ts +0 -556
  264. package/src/protocolTransport.ts +0 -483
  265. package/src/queueBinding.test.ts +0 -130
  266. package/src/queueBinding.ts +0 -102
  267. package/src/rateLimiter.test.ts +0 -96
  268. package/src/rateLimiter.ts +0 -46
  269. package/src/redisIntegration.test.ts +0 -134
  270. package/src/replayStores.test.ts +0 -273
  271. package/src/replayStores.ts +0 -215
  272. package/src/revocation.test.ts +0 -98
  273. package/src/revocation.ts +0 -0
  274. package/src/routePolicy.test.ts +0 -87
  275. package/src/routePolicy.ts +0 -72
  276. package/src/runtimePolicy.test.ts +0 -49
  277. package/src/runtimePolicy.ts +0 -81
  278. package/src/runtimePolicyManager.test.ts +0 -29
  279. package/src/runtimePolicyManager.ts +0 -50
  280. package/src/runtimePolicyPresets.ts +0 -43
  281. package/src/signedResponse.test.ts +0 -111
  282. package/src/signedResponse.ts +0 -83
  283. package/src/stream.test.ts +0 -254
  284. package/src/stream.ts +0 -417
  285. package/src/telemetry.test.ts +0 -251
  286. package/src/telemetry.ts +0 -299
  287. package/src/webhookBinding.test.ts +0 -144
  288. package/src/webhookBinding.ts +0 -115
  289. package/src/wsBinding.test.ts +0 -221
  290. package/src/wsBinding.ts +0 -200
  291. package/tsconfig.json +0 -15
  292. package/tsconfig.lib.json +0 -23
  293. package/vite.lib.config.ts +0 -16
  294. package/vitest.config.ts +0 -11
package/CONTRIBUTING.md DELETED
@@ -1,82 +0,0 @@
1
- # Contributing to @7h3/protocol
2
-
3
- Thanks for your interest. This document covers how to run tests, submit changes,
4
- and understand what is and is not open for modification.
5
-
6
- ## Prerequisites
7
-
8
- - Node.js 20+
9
- - Python 3.10+ (for Python conformance tests)
10
- - Rust stable toolchain (for Rust conformance tests)
11
-
12
- Install Node dependencies:
13
-
14
- ```bash
15
- npm install
16
- ```
17
-
18
- ## Running Tests
19
-
20
- **TypeScript unit and integration tests:**
21
-
22
- ```bash
23
- npm test
24
- ```
25
-
26
- **Cross-runtime conformance tests:**
27
-
28
- ```bash
29
- npm run conformance:python # runs sdk/python/tests via unittest
30
- npm run conformance:rust # runs cargo test in sdk/rust/
31
- ```
32
-
33
- All three test suites must pass before a PR is mergeable.
34
-
35
- ## The Wire Version is Frozen
36
-
37
- `aip/0.1` is the current wire version, and **it is frozen**. This means:
38
-
39
- - The envelope schema (field names, types, required fields) cannot change
40
- - The canonicalization algorithm cannot change
41
- - The intent vocabulary (`tool_call`, `tool_result`, `message`, `error`) cannot change
42
-
43
- Any change to these would silently break cross-runtime interoperability and
44
- require a new wire version designation. If you believe a wire-level change is
45
- necessary, open an issue first to discuss versioning strategy before writing code.
46
-
47
- The TypeScript API (types, builder functions, SDK surface) is pre-1.0 and may
48
- evolve on minor version bumps. Deprecation notices will be included in the
49
- changelog when possible.
50
-
51
- ## Conformance Fixtures
52
-
53
- The canonical fixture set lives at `conformance/aip_v0_1.json`. If your PR adds
54
- or changes any signing behavior, canonicalization detail, or replay-safety logic,
55
- you must update this fixture file with vectors that cover the new behavior.
56
-
57
- Fixtures are the source of truth for cross-runtime verification. A PR that
58
- changes signing logic without updating fixtures will be rejected.
59
-
60
- ## Submitting a Pull Request
61
-
62
- 1. Fork the repo and create a branch with a descriptive name
63
- (`fix/nonce-validation`, `feat/ed448-profile`, etc.)
64
- 2. Make your changes and ensure all three test suites pass
65
- 3. Update `conformance/aip_v0_1.json` if signing behavior changed
66
- 4. Open a PR against `main` with a clear description of:
67
- - What the change does
68
- - Why it is needed
69
- - Any trade-offs or alternatives you considered
70
- 5. Reference any related issues in the PR description
71
-
72
- Keep PRs focused. A single PR that mixes unrelated changes is harder to review
73
- and slower to land.
74
-
75
- ## Security Findings
76
-
77
- Do not open GitHub Issues for security vulnerabilities. Follow the process in
78
- [SECURITY.md](SECURITY.md) instead.
79
-
80
- ---
81
-
82
- Maintainer: [@IceMasterT](https://github.com/IceMasterT)
package/Dockerfile DELETED
@@ -1,73 +0,0 @@
1
- # ---------------------------------------------------------------------------
2
- # Stage 1 — builder
3
- # Install all dependencies (including devDeps for the build step) and
4
- # compile TypeScript sources. The compiled output ends up in /app/dist.
5
- # ---------------------------------------------------------------------------
6
- FROM node:22-alpine AS builder
7
-
8
- WORKDIR /app
9
-
10
- # Copy manifests first so Docker can cache the install layer separately
11
- # from source changes.
12
- COPY package.json package-lock.json ./
13
-
14
- # Install all deps (dev + prod) needed to build
15
- RUN npm ci --prefer-offline
16
-
17
- # Copy the full source tree
18
- COPY src/ src/
19
- COPY bin/ bin/
20
- COPY tsconfig.json tsconfig.lib.json ./
21
- COPY vite.lib.config.ts ./
22
-
23
- # Run the build script if it exists; swallow the error gracefully so that
24
- # repositories that haven't wired up the build step yet still produce a
25
- # working image. The runtime stage uses tsx to execute TypeScript directly,
26
- # so a missing dist/ is not fatal.
27
- RUN npm run build:protocol 2>/dev/null || true
28
-
29
- # ---------------------------------------------------------------------------
30
- # Stage 2 — runtime
31
- # Lean image with only production dependencies.
32
- # tsx executes TypeScript directly, so we don't strictly need dist/; the
33
- # builder stage is kept separate to avoid polluting the final image with
34
- # devDependencies and intermediate build artefacts.
35
- # ---------------------------------------------------------------------------
36
- FROM node:22-alpine
37
-
38
- # Install tsx globally so the ENTRYPOINT can invoke TypeScript files.
39
- # Pinning via the package.json range is intentional — renovate will keep
40
- # this in sync with the devDependency version.
41
- RUN npm install -g tsx
42
-
43
- WORKDIR /app
44
-
45
- # Copy manifests for production install
46
- COPY package.json package-lock.json ./
47
-
48
- # Production-only install; omits devDependencies such as vitest and vite
49
- RUN npm ci --omit=dev --prefer-offline
50
-
51
- # Copy the source files required at runtime
52
- COPY src/ src/
53
- COPY bin/ bin/
54
-
55
- # Copy compiled output from the builder stage (used when tsx is not
56
- # available or when --no-tsx mode is added in future).
57
- COPY --from=builder /app/dist/ dist/
58
-
59
- # The gateway listens on this port by default.
60
- EXPOSE 8080
61
-
62
- # Lightweight health check: wget is present on node:alpine; curl is not.
63
- # This probe hits the /health route which, per the example config, is
64
- # policy-exempt (require: none) and will pass through to the upstream.
65
- HEALTHCHECK --interval=30s --timeout=5s --start-period=10s --retries=3 \
66
- CMD wget -qO- http://localhost:8080/health || exit 1
67
-
68
- # Run the gateway sub-command of the 7h3 CLI.
69
- ENTRYPOINT ["tsx", "bin/7h3.ts", "gateway"]
70
-
71
- # Default arguments — overridden at runtime via docker-compose environment
72
- # variables or explicit docker run arguments.
73
- CMD ["--port", "8080", "--upstream", "http://upstream:3000", "--require", "ed25519"]
package/GOVERNANCE.md DELETED
@@ -1,62 +0,0 @@
1
- # Governance
2
-
3
- ## Current Stage
4
-
5
- This project is in single-maintainer, pre-community stage. There is one
6
- maintainer ([@IceMasterT](https://github.com/IceMasterT)), no formal governance
7
- board, and no steering committee. That is appropriate for the project's current
8
- size and maturity, and it is stated clearly here so contributors know what to
9
- expect.
10
-
11
- ## Decision Making
12
-
13
- The maintainer makes all final decisions about direction, API shape, release
14
- timing, and whether to accept a contribution.
15
-
16
- For significant changes -- anything that touches the wire format, the
17
- conformance fixture set, or the project's positioning relative to MCP/A2A --
18
- the maintainer will open a GitHub Issue before deciding, to give the community
19
- a window to raise concerns or provide context. That window will be at least
20
- seven days for non-urgent changes.
21
-
22
- Day-to-day decisions (bug fixes, documentation, minor SDK improvements) do not
23
- require community input first.
24
-
25
- ## Versioning Policy
26
-
27
- The wire version `aip/0.1` is frozen. Interoperating implementations can rely
28
- on it not changing. A new wire version designation (e.g. `aip/0.2`) would be
29
- introduced in a new package major version and coexist with `aip/0.1` for a
30
- migration period.
31
-
32
- The TypeScript API is pre-1.0. Minor version bumps may include breaking API
33
- changes. Breaking changes will be documented in the changelog with migration
34
- notes. The `1.0.0` release will signal API stability.
35
-
36
- The Python and Rust SDKs track the TypeScript wire behavior. Their own version
37
- numbers are independent of the npm package version.
38
-
39
- ## Path to Co-Maintainership
40
-
41
- There is no automatic path to co-maintainership based on contribution count.
42
- The relevant factors are:
43
-
44
- - Sustained engagement over multiple months
45
- - Demonstrated familiarity with the threat model (replay attacks, malleability,
46
- cross-runtime canonicalization edge cases)
47
- - Good judgment in the review of other contributors' PRs
48
- - Willingness to own the security disclosure process
49
-
50
- If you are interested, open a conversation in Discussions rather than raising
51
- it in a PR.
52
-
53
- ## Standards Body Adoption
54
-
55
- If this project is accepted into a standards body or foundation, this governance
56
- document will be replaced by whatever governance model that body requires.
57
- Community input will be sought before any such transition.
58
-
59
- ---
60
-
61
- Last reviewed: 2026-06-05
62
- Maintainer: [@IceMasterT](https://github.com/IceMasterT) / tech@mysms.promo
package/SECURITY.md DELETED
@@ -1,70 +0,0 @@
1
- # Security Policy
2
-
3
- ## Reporting a Vulnerability
4
-
5
- Please do not open a GitHub Issue for security findings. Use coordinated disclosure instead.
6
-
7
- **Send private reports to:** tech@mysms.promo
8
- **Subject line:** `[AIP Security] <brief description>`
9
-
10
- ### What to include
11
-
12
- A useful report contains:
13
-
14
- - A clear description of the vulnerability and which component it affects
15
- - Steps to reproduce, ideally as a minimal test case or fixture
16
- - Your assessment of the impact (confidentiality, integrity, availability, scope)
17
- - The affected versions (check `package.json` version and the wire version `aip/0.1`)
18
- - Any suggested fix or mitigation you have in mind (optional but appreciated)
19
-
20
- Reports that include a conformance vector demonstrating the issue are especially
21
- helpful and make the triage process faster.
22
-
23
- ## Response Timeline
24
-
25
- | Event | Target |
26
- |---|---|
27
- | Acknowledgement | 48 hours |
28
- | Triage and severity assignment | 5 business days |
29
- | Patch for critical/high severity | 14 days from confirmation |
30
- | Patch for medium/low severity | 60 days from confirmation |
31
- | Public disclosure | After patch is released and verified |
32
-
33
- We ask that reporters hold off on public disclosure until a patch is available.
34
- If the 14-day critical window is going to slip, we will contact you to agree on
35
- an extended timeline or coordinated partial disclosure.
36
-
37
- ## Scope
38
-
39
- The following are in scope:
40
-
41
- - Envelope signing and verification (`src/aip/`)
42
- - Canonicalization logic and determinism guarantees
43
- - Replay-safety (nonce and timestamp validation)
44
- - Wire format parsing in all three runtimes (TypeScript, Python, Rust)
45
- - Intent vocabulary validation
46
-
47
- Out of scope: third-party dependencies (report those upstream), benchmark
48
- scripts, and documentation typos.
49
-
50
- ## Audit Status
51
-
52
- No independent third-party security audit has been performed on this codebase
53
- as of the current release. The protocol design has been reviewed by the
54
- maintainer against known attack classes for signed messaging systems, but that
55
- is not a substitute for a formal audit. Reproductions of conformance vectors
56
- that reveal edge-case signing or deserialization behavior are welcome and
57
- treated as high-value contributions.
58
-
59
- ## Hall of Thanks
60
-
61
- Researchers who report valid, confirmed vulnerabilities will be acknowledged
62
- here (with their permission).
63
-
64
- _No entries yet._
65
-
66
- ---
67
-
68
- Maintainer: [@IceMasterT](https://github.com/IceMasterT)
69
- Package: `@7h3/protocol`
70
- License: MIT
@@ -1,10 +0,0 @@
1
- {
2
- "generatedAt": "2026-05-04T10:37:13.242Z",
3
- "profile": "full",
4
- "iterations": 500000,
5
- "batchSize": 128,
6
- "singleOpsPerSecond": 2046707.947,
7
- "batchOpsPerSecond": 1936866.811,
8
- "singleUsPerOp": 0.489,
9
- "batchUsPerOp": 0.516
10
- }
@@ -1,10 +0,0 @@
1
- {
2
- "generatedAt": "2026-05-04T12:05:17.474Z",
3
- "profile": "full",
4
- "iterations": 500000,
5
- "batchSize": 128,
6
- "singleOpsPerSecond": 2196802.03,
7
- "batchOpsPerSecond": 2513299.501,
8
- "singleUsPerOp": 0.455,
9
- "batchUsPerOp": 0.398
10
- }
@@ -1,10 +0,0 @@
1
- {
2
- "generatedAt": "2026-05-04T13:23:13.169Z",
3
- "profile": "full",
4
- "iterations": 500000,
5
- "batchSize": 128,
6
- "singleOpsPerSecond": 1943753.028,
7
- "batchOpsPerSecond": 2330929.665,
8
- "singleUsPerOp": 0.514,
9
- "batchUsPerOp": 0.429
10
- }
@@ -1,10 +0,0 @@
1
- {
2
- "generatedAt": "2026-05-04T13:23:39.285Z",
3
- "profile": "full",
4
- "iterations": 500000,
5
- "batchSize": 128,
6
- "singleOpsPerSecond": 1650105.21,
7
- "batchOpsPerSecond": 2241347.099,
8
- "singleUsPerOp": 0.606,
9
- "batchUsPerOp": 0.446
10
- }
@@ -1,10 +0,0 @@
1
- {
2
- "generatedAt": "2026-05-04T04:49:30.121Z",
3
- "profile": "quick",
4
- "iterations": 50000,
5
- "batchSize": 32,
6
- "singleOpsPerSecond": 520177.319,
7
- "batchOpsPerSecond": 140227.322,
8
- "singleUsPerOp": 1.922,
9
- "batchUsPerOp": 7.131
10
- }
@@ -1,85 +0,0 @@
1
- {
2
- "generatedAt": "2026-04-11T02:39:20.079Z",
3
- "profile": "quick",
4
- "iterations": 2000,
5
- "payloadSizes": [
6
- 256,
7
- 1024,
8
- 4096,
9
- 16384
10
- ],
11
- "results": [
12
- {
13
- "profile": "quick",
14
- "payloadBytes": 256,
15
- "algorithm": "HS256",
16
- "signUsPerOp": 16.5,
17
- "verifyUsPerOp": 14.176,
18
- "signOpsPerSecond": 60606.367,
19
- "verifyOpsPerSecond": 70539.362
20
- },
21
- {
22
- "profile": "quick",
23
- "payloadBytes": 256,
24
- "algorithm": "ED25519",
25
- "signUsPerOp": 45.6,
26
- "verifyUsPerOp": 119.231,
27
- "signOpsPerSecond": 21929.753,
28
- "verifyOpsPerSecond": 8387.068
29
- },
30
- {
31
- "profile": "quick",
32
- "payloadBytes": 1024,
33
- "algorithm": "HS256",
34
- "signUsPerOp": 23.745,
35
- "verifyUsPerOp": 18.396,
36
- "signOpsPerSecond": 42113.324,
37
- "verifyOpsPerSecond": 54360.747
38
- },
39
- {
40
- "profile": "quick",
41
- "payloadBytes": 1024,
42
- "algorithm": "ED25519",
43
- "signUsPerOp": 51.284,
44
- "verifyUsPerOp": 106.092,
45
- "signOpsPerSecond": 19499.138,
46
- "verifyOpsPerSecond": 9425.777
47
- },
48
- {
49
- "profile": "quick",
50
- "payloadBytes": 4096,
51
- "algorithm": "HS256",
52
- "signUsPerOp": 18.235,
53
- "verifyUsPerOp": 20.365,
54
- "signOpsPerSecond": 54839.636,
55
- "verifyOpsPerSecond": 49103.017
56
- },
57
- {
58
- "profile": "quick",
59
- "payloadBytes": 4096,
60
- "algorithm": "ED25519",
61
- "signUsPerOp": 53.216,
62
- "verifyUsPerOp": 101.756,
63
- "signOpsPerSecond": 18791.24,
64
- "verifyOpsPerSecond": 9827.469
65
- },
66
- {
67
- "profile": "quick",
68
- "payloadBytes": 16384,
69
- "algorithm": "HS256",
70
- "signUsPerOp": 33.59,
71
- "verifyUsPerOp": 32.805,
72
- "signOpsPerSecond": 29770.829,
73
- "verifyOpsPerSecond": 30483.215
74
- },
75
- {
76
- "profile": "quick",
77
- "payloadBytes": 16384,
78
- "algorithm": "ED25519",
79
- "signUsPerOp": 96.924,
80
- "verifyUsPerOp": 141.141,
81
- "signOpsPerSecond": 10317.338,
82
- "verifyOpsPerSecond": 7085.133
83
- }
84
- ]
85
- }
@@ -1,85 +0,0 @@
1
- {
2
- "generatedAt": "2026-04-12T08:45:39.716Z",
3
- "profile": "quick",
4
- "iterations": 2000,
5
- "payloadSizes": [
6
- 256,
7
- 1024,
8
- 4096,
9
- 16384
10
- ],
11
- "results": [
12
- {
13
- "profile": "quick",
14
- "payloadBytes": 256,
15
- "algorithm": "HS256",
16
- "signUsPerOp": 17.09,
17
- "verifyUsPerOp": 16.676,
18
- "signOpsPerSecond": 58514.475,
19
- "verifyOpsPerSecond": 59965.552
20
- },
21
- {
22
- "profile": "quick",
23
- "payloadBytes": 256,
24
- "algorithm": "ED25519",
25
- "signUsPerOp": 48.942,
26
- "verifyUsPerOp": 129.521,
27
- "signOpsPerSecond": 20432.528,
28
- "verifyOpsPerSecond": 7720.783
29
- },
30
- {
31
- "profile": "quick",
32
- "payloadBytes": 1024,
33
- "algorithm": "HS256",
34
- "signUsPerOp": 16.402,
35
- "verifyUsPerOp": 13.4,
36
- "signOpsPerSecond": 60968.249,
37
- "verifyOpsPerSecond": 74629.015
38
- },
39
- {
40
- "profile": "quick",
41
- "payloadBytes": 1024,
42
- "algorithm": "ED25519",
43
- "signUsPerOp": 41.484,
44
- "verifyUsPerOp": 106.096,
45
- "signOpsPerSecond": 24105.829,
46
- "verifyOpsPerSecond": 9425.432
47
- },
48
- {
49
- "profile": "quick",
50
- "payloadBytes": 4096,
51
- "algorithm": "HS256",
52
- "signUsPerOp": 41.471,
53
- "verifyUsPerOp": 21.896,
54
- "signOpsPerSecond": 24113.328,
55
- "verifyOpsPerSecond": 45669.707
56
- },
57
- {
58
- "profile": "quick",
59
- "payloadBytes": 4096,
60
- "algorithm": "ED25519",
61
- "signUsPerOp": 53.73,
62
- "verifyUsPerOp": 118.702,
63
- "signOpsPerSecond": 18611.446,
64
- "verifyOpsPerSecond": 8424.459
65
- },
66
- {
67
- "profile": "quick",
68
- "payloadBytes": 16384,
69
- "algorithm": "HS256",
70
- "signUsPerOp": 37.261,
71
- "verifyUsPerOp": 39.437,
72
- "signOpsPerSecond": 26837.366,
73
- "verifyOpsPerSecond": 25356.841
74
- },
75
- {
76
- "profile": "quick",
77
- "payloadBytes": 16384,
78
- "algorithm": "ED25519",
79
- "signUsPerOp": 120.929,
80
- "verifyUsPerOp": 163.363,
81
- "signOpsPerSecond": 8269.337,
82
- "verifyOpsPerSecond": 6121.336
83
- }
84
- ]
85
- }
@@ -1,85 +0,0 @@
1
- {
2
- "generatedAt": "2026-04-15T07:25:13.190Z",
3
- "profile": "quick",
4
- "iterations": 2000,
5
- "payloadSizes": [
6
- 256,
7
- 1024,
8
- 4096,
9
- 16384
10
- ],
11
- "results": [
12
- {
13
- "profile": "quick",
14
- "payloadBytes": 256,
15
- "algorithm": "HS256",
16
- "signUsPerOp": 22.028,
17
- "verifyUsPerOp": 16.82,
18
- "signOpsPerSecond": 45396.554,
19
- "verifyOpsPerSecond": 59452.295
20
- },
21
- {
22
- "profile": "quick",
23
- "payloadBytes": 256,
24
- "algorithm": "ED25519",
25
- "signUsPerOp": 46.164,
26
- "verifyUsPerOp": 103.618,
27
- "signOpsPerSecond": 21662.042,
28
- "verifyOpsPerSecond": 9650.834
29
- },
30
- {
31
- "profile": "quick",
32
- "payloadBytes": 1024,
33
- "algorithm": "HS256",
34
- "signUsPerOp": 12.433,
35
- "verifyUsPerOp": 12.785,
36
- "signOpsPerSecond": 80430.499,
37
- "verifyOpsPerSecond": 78216.853
38
- },
39
- {
40
- "profile": "quick",
41
- "payloadBytes": 1024,
42
- "algorithm": "ED25519",
43
- "signUsPerOp": 37.853,
44
- "verifyUsPerOp": 98.984,
45
- "signOpsPerSecond": 26417.71,
46
- "verifyOpsPerSecond": 10102.674
47
- },
48
- {
49
- "profile": "quick",
50
- "payloadBytes": 4096,
51
- "algorithm": "HS256",
52
- "signUsPerOp": 31.288,
53
- "verifyUsPerOp": 21.144,
54
- "signOpsPerSecond": 31961.127,
55
- "verifyOpsPerSecond": 47295.763
56
- },
57
- {
58
- "profile": "quick",
59
- "payloadBytes": 4096,
60
- "algorithm": "ED25519",
61
- "signUsPerOp": 52.753,
62
- "verifyUsPerOp": 108.71,
63
- "signOpsPerSecond": 18956.391,
64
- "verifyOpsPerSecond": 9198.782
65
- },
66
- {
67
- "profile": "quick",
68
- "payloadBytes": 16384,
69
- "algorithm": "HS256",
70
- "signUsPerOp": 36.642,
71
- "verifyUsPerOp": 32.576,
72
- "signOpsPerSecond": 27290.862,
73
- "verifyOpsPerSecond": 30697.597
74
- },
75
- {
76
- "profile": "quick",
77
- "payloadBytes": 16384,
78
- "algorithm": "ED25519",
79
- "signUsPerOp": 93.648,
80
- "verifyUsPerOp": 140.267,
81
- "signOpsPerSecond": 10678.28,
82
- "verifyOpsPerSecond": 7129.262
83
- }
84
- ]
85
- }