@adastracomputing/ink 0.1.2 → 0.1.4
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.
- package/CHANGELOG.md +30 -0
- package/README.md +2 -0
- package/dist/index.d.ts +13 -1
- package/dist/index.js +21 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -8,6 +8,36 @@ here. Pre-1.0 releases follow `0.Y.Z` semantics, see
|
|
|
8
8
|
|
|
9
9
|
No unreleased changes.
|
|
10
10
|
|
|
11
|
+
## 0.1.4, expose receipts, transport-auth, discovery-gating, audit schemas and handshake schemas from the package root
|
|
12
|
+
|
|
13
|
+
Pure additive release. The implementation files have shipped in earlier releases under deep paths; this release brings them to the package root so adopters writing receivers, builders, or auditor clients can import everything they need from `@adastracomputing/ink` directly.
|
|
14
|
+
|
|
15
|
+
New root-level exports:
|
|
16
|
+
|
|
17
|
+
- **Receipts** (`./ink/receipts`): `buildReceipt`, `shouldSendReceipt`, `sendReceiptFireAndForget`. The canonical INK delivery-receipt builders, signing helpers and fire-and-forget transport. A receiver that wants to ack inbound envelopes per Auditability §6 can drop these in without rolling its own.
|
|
18
|
+
- **Transport-auth** (`./ink/transport-auth`): `resolveEffectiveTransports`, `checkTransportAllowed`. The token-level transport allowlist enforcement, including the "field absent vs empty array" semantics. Required for any extension token issuer.
|
|
19
|
+
- **Discovery-gating** (`./ink/discovery-gating`): `buildRedactedCard`, `shouldRedactOnGet`, `AgentCardQuerySchema`. Visibility-aware Agent Card responses (`public`, `network_only`, `capability_gated`, `private`).
|
|
20
|
+
- **Checkpoint parsing** (`./ink/checkpoint`): `parseCheckpoint`, `formatCheckpoint`, `CheckpointData`. For consumers of transparency-log signed checkpoints.
|
|
21
|
+
- **Audit event schemas + types** (`./models/ink-audit`): `InkAuditEventTypeSchema`, `InkAuditEventSchema`, `InkAuditInclusionSchema`, `InkReceiptSchema`, `InkAuditQuerySchema`, `InkIntroductionReceiptSchema`, plus matching types `InkAuditEventType`, `InkAuditEvent`, `InkAuditInclusion`, `InkReceipt`, `InkAuditQuery`, `InkAuditResponse`, `InkIntroductionReceiptStatus`.
|
|
22
|
+
- **Handshake message schemas** (`./models/ink-handshake`): `InkChallengeSchema`, `InkRejectionSchema`, `InkResolutionSchema`, type `AgentCardVisibility`.
|
|
23
|
+
- **Agent Card schema** (`./models/agent-card`): `AgentCardSchema` (the type was already exported).
|
|
24
|
+
- **Encryption key encoder** (`./crypto/keys`): `encodeEncryptionKeyMultibase` (the encoder companion to the already-exported `decodeEncryptionKeyMultibase` from 0.1.3).
|
|
25
|
+
|
|
26
|
+
No wire-level changes. No behavior changes inside the existing functions. Receivers on 0.1.3 work unchanged on 0.1.4.
|
|
27
|
+
|
|
28
|
+
Per the pre-1.0 policy this release publishes under the `next` dist-tag.
|
|
29
|
+
|
|
30
|
+
## 0.1.3, expose validateMessage and decodeEncryptionKeyMultibase from the package root
|
|
31
|
+
|
|
32
|
+
Pure additive release that re-exports two helpers from the package root so adopters no longer have to import them through a deep internal path:
|
|
33
|
+
|
|
34
|
+
- `validateMessage(raw)` runs the canonical `MessageEnvelopeSchema` parse plus the intent-specific payload schema. Receivers building from scratch were either re-implementing the schema check or pulling from `@adastracomputing/ink/dist/models/intent.js`, which is not a stable surface. The implementer-guide at https://ink.tulpa.network/guides/implementing-a-receiver/ documented this helper as if it were already exported; this release makes that documentation accurate.
|
|
35
|
+
- `decodeEncryptionKeyMultibase(multibase)` is the companion to the already-exported `decodePublicKeyMultibase`. The former handles X25519 keys (the Agent Card encryption-key prefix); the latter handles Ed25519. The encrypted-intents guide tells adopters to decode an Agent Card's `publicKeyMultibase` for use with `encryptInkPayload`, which expects hex; without the X25519 decoder exported, adopters had to inline the multicodec strip themselves.
|
|
36
|
+
|
|
37
|
+
Also re-exports the `MessageEnvelope` type and the `MessageEnvelopeSchema` constant so adopters can type their parser surface against the canonical schema. No wire-level changes. No behavior changes inside the existing functions. Receivers on 0.1.2 work unchanged on 0.1.3.
|
|
38
|
+
|
|
39
|
+
This release publishes under the npm `next` dist-tag per the pre-1.0 policy.
|
|
40
|
+
|
|
11
41
|
## 0.1.2, Python interop CLI emits canonical envelope
|
|
12
42
|
|
|
13
43
|
> **Maturity note.** v0.1.x is wire-compatible across patches (`ink/0.1` stays frozen) but the API surface and trust semantics remain alpha-quality. See [`docs/maturity.md`](docs/maturity.md). Starting with this release, pre-1.0 versions publish under npm's `next` dist-tag; `latest` only advances when a release is explicitly promoted. Adopters who want the current pre-1.0 line install with `npm install @adastracomputing/ink@next`; the bare `npm install @adastracomputing/ink` will resolve to the most recent release a maintainer has stamped adopter-grade.
|
package/README.md
CHANGED
|
@@ -48,6 +48,8 @@ npm install @adastracomputing/ink
|
|
|
48
48
|
|
|
49
49
|
The package ships compiled ESM with bundled type definitions (`dist/index.js` + `dist/index.d.ts`). Any project with a standard JS toolchain can import it directly — no TypeScript build step on the consumer side. The build runs automatically via `prepack` before publish.
|
|
50
50
|
|
|
51
|
+
From 0.1.3 onward, receivers can also import `validateMessage` (canonical envelope + payload-schema parse, throws on drift) and `decodeEncryptionKeyMultibase` (X25519 multibase → 32 bytes, the companion to `decodePublicKeyMultibase` for Ed25519). These let an implementer drop the inline schema guard and key-decode helpers the previous guides asked them to write. `MessageEnvelope` (type) and `MessageEnvelopeSchema` (Zod constant) are also re-exported for adopters who want to type their parser surface against the canonical schema.
|
|
52
|
+
|
|
51
53
|
```ts
|
|
52
54
|
import {
|
|
53
55
|
generateKeypair,
|
package/dist/index.d.ts
CHANGED
|
@@ -1,11 +1,23 @@
|
|
|
1
1
|
export { signInkMessage, verifyInkSignature, buildSignatureBase, buildAuthHeader, computeMessageHash, computeEventHash, computeAuditMerkleLeafHash, signAuditEvent, verifyAuditEventSignature, signAuditResponse, verifyAuditResponseSignature, verifyAuditEventChain, signAuditQueryResponse, verifyAuditQueryResponseSignature, encryptInkPayload, decryptInkPayload, checkReplay, base64urlEncode, base64urlDecode, hexToBytes, bytesToHex, jcsCanonicalize, MAX_TIMESTAMP_AGE_MS, MAX_FUTURE_TIMESTAMP_MS, } from "./crypto/ink.js";
|
|
2
2
|
export { signMessage, verifyMessage } from "./crypto/sign.js";
|
|
3
3
|
export { verifyInkSignatureWithKeys } from "./crypto/multi-key-verify.js";
|
|
4
|
-
export { generateKeypair, generateEncryptionKeypair, deriveAgentId, encodePublicKeyMultibase, decodePublicKeyMultibase, extractPublicKeyFromAgentId, } from "./crypto/keys.js";
|
|
4
|
+
export { generateKeypair, generateEncryptionKeypair, deriveAgentId, encodePublicKeyMultibase, encodeEncryptionKeyMultibase, decodePublicKeyMultibase, decodeEncryptionKeyMultibase, extractPublicKeyFromAgentId, } from "./crypto/keys.js";
|
|
5
5
|
export { fetchAgentCard, extractCandidateKeys, resolveBaseUrl, } from "./discovery/agent-card.js";
|
|
6
6
|
export { verifyInkAuth, type NonceStore } from "./middleware/ink-auth.js";
|
|
7
7
|
export { verifyInclusionReceipt, verifyAuditQueryResponse, type InclusionReceipt, type InclusionReceiptVerifyResult, type AuditQueryResponse, type AuditQueryResponseVerifyResult, type VerifyStep, } from "./audit/inclusion-receipt.js";
|
|
8
8
|
export { HandshakeBudgetTracker } from "./ink/handshake-budget.js";
|
|
9
|
+
export { buildReceipt, shouldSendReceipt, sendReceiptFireAndForget, } from "./ink/receipts.js";
|
|
10
|
+
export { resolveEffectiveTransports, checkTransportAllowed, } from "./ink/transport-auth.js";
|
|
11
|
+
export { buildRedactedCard, shouldRedactOnGet, AgentCardQuerySchema, } from "./ink/discovery-gating.js";
|
|
12
|
+
export { parseCheckpoint, formatCheckpoint, } from "./ink/checkpoint.js";
|
|
13
|
+
export type { CheckpointData } from "./ink/checkpoint.js";
|
|
14
|
+
export { InkAuditEventTypeSchema, InkAuditEventSchema, InkAuditInclusionSchema, InkReceiptSchema, InkAuditQuerySchema, InkIntroductionReceiptSchema, } from "./models/ink-audit.js";
|
|
15
|
+
export type { InkAuditEventType, InkAuditEvent, InkAuditInclusion, InkReceipt, InkAuditQuery, InkAuditResponse, InkIntroductionReceiptStatus, } from "./models/ink-audit.js";
|
|
16
|
+
export { InkChallengeSchema, InkRejectionSchema, InkResolutionSchema, } from "./models/ink-handshake.js";
|
|
17
|
+
export type { AgentCardVisibility, } from "./models/ink-handshake.js";
|
|
18
|
+
export { AgentCardSchema } from "./models/agent-card.js";
|
|
19
|
+
export { validateMessage, MessageEnvelopeSchema } from "./models/intent.js";
|
|
20
|
+
export type { MessageEnvelope } from "./models/intent.js";
|
|
9
21
|
export type { InkSignInput } from "./crypto/ink.js";
|
|
10
22
|
export type { CandidateKey } from "./models/key-entry.js";
|
|
11
23
|
export { resolveAgentInbox } from "./models/agent-card.js";
|
package/dist/index.js
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
export { signInkMessage, verifyInkSignature, buildSignatureBase, buildAuthHeader, computeMessageHash, computeEventHash, computeAuditMerkleLeafHash, signAuditEvent, verifyAuditEventSignature, signAuditResponse, verifyAuditResponseSignature, verifyAuditEventChain, signAuditQueryResponse, verifyAuditQueryResponseSignature, encryptInkPayload, decryptInkPayload, checkReplay, base64urlEncode, base64urlDecode, hexToBytes, bytesToHex, jcsCanonicalize, MAX_TIMESTAMP_AGE_MS, MAX_FUTURE_TIMESTAMP_MS, } from "./crypto/ink.js";
|
|
5
5
|
export { signMessage, verifyMessage } from "./crypto/sign.js";
|
|
6
6
|
export { verifyInkSignatureWithKeys } from "./crypto/multi-key-verify.js";
|
|
7
|
-
export { generateKeypair, generateEncryptionKeypair, deriveAgentId, encodePublicKeyMultibase, decodePublicKeyMultibase, extractPublicKeyFromAgentId, } from "./crypto/keys.js";
|
|
7
|
+
export { generateKeypair, generateEncryptionKeypair, deriveAgentId, encodePublicKeyMultibase, encodeEncryptionKeyMultibase, decodePublicKeyMultibase, decodeEncryptionKeyMultibase, extractPublicKeyFromAgentId, } from "./crypto/keys.js";
|
|
8
8
|
// Discovery: Agent Card fetch + candidate-key extraction
|
|
9
9
|
export { fetchAgentCard, extractCandidateKeys, resolveBaseUrl, } from "./discovery/agent-card.js";
|
|
10
10
|
// Middleware: transport-level INK auth
|
|
@@ -13,4 +13,24 @@ export { verifyInkAuth } from "./middleware/ink-auth.js";
|
|
|
13
13
|
export { verifyInclusionReceipt, verifyAuditQueryResponse, } from "./audit/inclusion-receipt.js";
|
|
14
14
|
// Optional containment / governance primitives
|
|
15
15
|
export { HandshakeBudgetTracker } from "./ink/handshake-budget.js";
|
|
16
|
+
// Receipts: build and send INK delivery receipts
|
|
17
|
+
export { buildReceipt, shouldSendReceipt, sendReceiptFireAndForget, } from "./ink/receipts.js";
|
|
18
|
+
// Transport-auth: token-level transport allowlist for extension tokens
|
|
19
|
+
export { resolveEffectiveTransports, checkTransportAllowed, } from "./ink/transport-auth.js";
|
|
20
|
+
// Discovery-gating: visibility-aware Agent Card redaction
|
|
21
|
+
export { buildRedactedCard, shouldRedactOnGet, AgentCardQuerySchema, } from "./ink/discovery-gating.js";
|
|
22
|
+
// Checkpoint parsing for transparency-log signed checkpoints
|
|
23
|
+
export { parseCheckpoint, formatCheckpoint, } from "./ink/checkpoint.js";
|
|
24
|
+
// Audit event schemas + types for receipts, query, inclusion proofs
|
|
25
|
+
export { InkAuditEventTypeSchema, InkAuditEventSchema, InkAuditInclusionSchema, InkReceiptSchema, InkAuditQuerySchema, InkIntroductionReceiptSchema, } from "./models/ink-audit.js";
|
|
26
|
+
// Handshake message schemas
|
|
27
|
+
export { InkChallengeSchema, InkRejectionSchema, InkResolutionSchema, } from "./models/ink-handshake.js";
|
|
28
|
+
// Agent Card schema (the canonical .well-known/ink/agent.json document)
|
|
29
|
+
export { AgentCardSchema } from "./models/agent-card.js";
|
|
30
|
+
// Envelope validation: full Zod-backed parse of the canonical
|
|
31
|
+
// MessageEnvelope shape. Adopters building receivers need this to
|
|
32
|
+
// reject malformed envelopes before signature verification; without
|
|
33
|
+
// it they have to re-implement the schema check or import from a
|
|
34
|
+
// non-public path.
|
|
35
|
+
export { validateMessage, MessageEnvelopeSchema } from "./models/intent.js";
|
|
16
36
|
export { resolveAgentInbox } from "./models/agent-card.js";
|
package/package.json
CHANGED