@adastracomputing/ink 0.1.0-alpha.3 → 0.1.0-alpha.5
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 +24 -0
- package/dist/audit/inclusion-receipt.d.ts +142 -0
- package/dist/audit/inclusion-receipt.js +496 -0
- package/dist/crypto/ink.d.ts +178 -0
- package/dist/crypto/ink.js +915 -0
- package/dist/crypto/keys.d.ts +42 -0
- package/dist/crypto/keys.js +179 -0
- package/dist/crypto/multi-key-verify.d.ts +29 -0
- package/dist/crypto/multi-key-verify.js +153 -0
- package/dist/crypto/sign.d.ts +17 -0
- package/dist/crypto/sign.js +152 -0
- package/dist/crypto/verify.js +1 -0
- package/dist/discovery/agent-card.d.ts +83 -0
- package/dist/discovery/agent-card.js +545 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.js +15 -0
- package/dist/ink/checkpoint.d.ts +19 -0
- package/dist/ink/checkpoint.js +69 -0
- package/dist/ink/discovery-gating.d.ts +237 -0
- package/dist/ink/discovery-gating.js +91 -0
- package/dist/ink/handshake-budget.d.ts +90 -0
- package/dist/ink/handshake-budget.js +397 -0
- package/dist/ink/receipts.d.ts +31 -0
- package/dist/ink/receipts.js +89 -0
- package/dist/ink/transport-auth.d.ts +47 -0
- package/dist/ink/transport-auth.js +77 -0
- package/dist/middleware/ink-auth.d.ts +68 -0
- package/dist/middleware/ink-auth.js +214 -0
- package/dist/models/agent-card.d.ts +154 -0
- package/dist/models/agent-card.js +59 -0
- package/dist/models/ink-audit.d.ts +344 -0
- package/dist/models/ink-audit.js +167 -0
- package/dist/models/ink-handshake.d.ts +129 -0
- package/dist/models/ink-handshake.js +89 -0
- package/dist/models/intent.d.ts +437 -0
- package/dist/models/intent.js +172 -0
- package/dist/models/key-entry.d.ts +60 -0
- package/dist/models/key-entry.js +13 -0
- package/dist/models/profile.d.ts +61 -0
- package/dist/models/profile.js +24 -0
- package/package.json +15 -11
- package/src/audit/inclusion-receipt.ts +0 -604
- package/src/crypto/ink.ts +0 -1046
- package/src/crypto/keys.ts +0 -210
- package/src/crypto/multi-key-verify.ts +0 -170
- package/src/crypto/sign.ts +0 -155
- package/src/discovery/agent-card.ts +0 -508
- package/src/index.ts +0 -73
- package/src/ink/checkpoint.ts +0 -75
- package/src/ink/discovery-gating.ts +0 -147
- package/src/ink/handshake-budget.ts +0 -413
- package/src/ink/receipts.ts +0 -114
- package/src/ink/transport-auth.ts +0 -96
- package/src/middleware/ink-auth.ts +0 -263
- package/src/models/agent-card.ts +0 -63
- package/src/models/ink-audit.ts +0 -205
- package/src/models/ink-handshake.ts +0 -123
- package/src/models/intent.ts +0 -201
- package/src/models/key-entry.ts +0 -52
- package/src/models/profile.ts +0 -31
- /package/{src/crypto/verify.ts → dist/crypto/verify.d.ts} +0 -0
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export declare const KeyStatusSchema: z.ZodEnum<{
|
|
3
|
+
active: "active";
|
|
4
|
+
retired: "retired";
|
|
5
|
+
revoked: "revoked";
|
|
6
|
+
}>;
|
|
7
|
+
export type KeyStatus = z.infer<typeof KeyStatusSchema>;
|
|
8
|
+
export declare const KeyRoleSchema: z.ZodEnum<{
|
|
9
|
+
signing: "signing";
|
|
10
|
+
encryption: "encryption";
|
|
11
|
+
}>;
|
|
12
|
+
export type KeyRole = z.infer<typeof KeyRoleSchema>;
|
|
13
|
+
export declare const KeyEntrySchema: z.ZodObject<{
|
|
14
|
+
keyId: z.ZodString;
|
|
15
|
+
algorithm: z.ZodEnum<{
|
|
16
|
+
Ed25519: "Ed25519";
|
|
17
|
+
X25519: "X25519";
|
|
18
|
+
}>;
|
|
19
|
+
publicKeyMultibase: z.ZodString;
|
|
20
|
+
status: z.ZodEnum<{
|
|
21
|
+
active: "active";
|
|
22
|
+
retired: "retired";
|
|
23
|
+
revoked: "revoked";
|
|
24
|
+
}>;
|
|
25
|
+
validFrom: z.ZodString;
|
|
26
|
+
validUntil: z.ZodOptional<z.ZodString>;
|
|
27
|
+
revokedAt: z.ZodOptional<z.ZodString>;
|
|
28
|
+
revokeReason: z.ZodOptional<z.ZodString>;
|
|
29
|
+
}, z.core.$strip>;
|
|
30
|
+
export type KeyEntry = z.infer<typeof KeyEntrySchema>;
|
|
31
|
+
export interface CandidateKey {
|
|
32
|
+
keyId: string;
|
|
33
|
+
publicKey: Uint8Array;
|
|
34
|
+
status: KeyStatus;
|
|
35
|
+
/** ISO 8601 timestamp the key becomes usable. Verifier rejects messages
|
|
36
|
+
* whose `body.timestamp` falls outside [validFrom, validUntil]. Optional
|
|
37
|
+
* for backward compat with legacy callers that don't track windows. */
|
|
38
|
+
validFrom?: string;
|
|
39
|
+
/** ISO 8601 timestamp the key stops being usable. Typically set when a
|
|
40
|
+
* key transitions to `retired`. A retired key with no validUntil keeps
|
|
41
|
+
* verifying indefinitely (legacy behavior); set validUntil to bound it. */
|
|
42
|
+
validUntil?: string;
|
|
43
|
+
/** ISO 8601 timestamp the key was revoked. Defensive: status === "revoked"
|
|
44
|
+
* already blocks verification; this field documents the moment. */
|
|
45
|
+
revokedAt?: string;
|
|
46
|
+
}
|
|
47
|
+
export interface StoredKey {
|
|
48
|
+
keyId: string;
|
|
49
|
+
agentId: string;
|
|
50
|
+
role: KeyRole;
|
|
51
|
+
algorithm: string;
|
|
52
|
+
publicKeyMultibase: string;
|
|
53
|
+
privateKey: Uint8Array | null;
|
|
54
|
+
status: KeyStatus;
|
|
55
|
+
validFrom: string;
|
|
56
|
+
validUntil: string | null;
|
|
57
|
+
revokedAt: string | null;
|
|
58
|
+
createdAt: string;
|
|
59
|
+
updatedAt: string;
|
|
60
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export const KeyStatusSchema = z.enum(["active", "retired", "revoked"]);
|
|
3
|
+
export const KeyRoleSchema = z.enum(["signing", "encryption"]);
|
|
4
|
+
export const KeyEntrySchema = z.object({
|
|
5
|
+
keyId: z.string().min(1),
|
|
6
|
+
algorithm: z.enum(["Ed25519", "X25519"]),
|
|
7
|
+
publicKeyMultibase: z.string().startsWith("z"),
|
|
8
|
+
status: KeyStatusSchema,
|
|
9
|
+
validFrom: z.string().datetime(),
|
|
10
|
+
validUntil: z.string().datetime().optional(),
|
|
11
|
+
revokedAt: z.string().datetime().optional(),
|
|
12
|
+
revokeReason: z.string().optional(),
|
|
13
|
+
});
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export declare const AvailabilityConfigSchema: z.ZodObject<{
|
|
3
|
+
timezone: z.ZodString;
|
|
4
|
+
meetingHours: z.ZodOptional<z.ZodString>;
|
|
5
|
+
responseSla: z.ZodOptional<z.ZodString>;
|
|
6
|
+
}, z.core.$strip>;
|
|
7
|
+
export declare const ProfileSnapshotSchema: z.ZodObject<{
|
|
8
|
+
headline: z.ZodString;
|
|
9
|
+
skills: z.ZodArray<z.ZodString>;
|
|
10
|
+
interests: z.ZodArray<z.ZodString>;
|
|
11
|
+
availability: z.ZodOptional<z.ZodObject<{
|
|
12
|
+
timezone: z.ZodString;
|
|
13
|
+
meetingHours: z.ZodOptional<z.ZodString>;
|
|
14
|
+
responseSla: z.ZodOptional<z.ZodString>;
|
|
15
|
+
}, z.core.$strip>>;
|
|
16
|
+
openTo: z.ZodArray<z.ZodString>;
|
|
17
|
+
}, z.core.$strip>;
|
|
18
|
+
export declare const ProfileSchema: z.ZodObject<{
|
|
19
|
+
agentId: z.ZodString;
|
|
20
|
+
handle: z.ZodString;
|
|
21
|
+
displayName: z.ZodString;
|
|
22
|
+
bio: z.ZodString;
|
|
23
|
+
snapshots: z.ZodObject<{
|
|
24
|
+
public: z.ZodObject<{
|
|
25
|
+
headline: z.ZodString;
|
|
26
|
+
skills: z.ZodArray<z.ZodString>;
|
|
27
|
+
interests: z.ZodArray<z.ZodString>;
|
|
28
|
+
availability: z.ZodOptional<z.ZodObject<{
|
|
29
|
+
timezone: z.ZodString;
|
|
30
|
+
meetingHours: z.ZodOptional<z.ZodString>;
|
|
31
|
+
responseSla: z.ZodOptional<z.ZodString>;
|
|
32
|
+
}, z.core.$strip>>;
|
|
33
|
+
openTo: z.ZodArray<z.ZodString>;
|
|
34
|
+
}, z.core.$strip>;
|
|
35
|
+
connected: z.ZodObject<{
|
|
36
|
+
headline: z.ZodString;
|
|
37
|
+
skills: z.ZodArray<z.ZodString>;
|
|
38
|
+
interests: z.ZodArray<z.ZodString>;
|
|
39
|
+
availability: z.ZodOptional<z.ZodObject<{
|
|
40
|
+
timezone: z.ZodString;
|
|
41
|
+
meetingHours: z.ZodOptional<z.ZodString>;
|
|
42
|
+
responseSla: z.ZodOptional<z.ZodString>;
|
|
43
|
+
}, z.core.$strip>>;
|
|
44
|
+
openTo: z.ZodArray<z.ZodString>;
|
|
45
|
+
}, z.core.$strip>;
|
|
46
|
+
custom: z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
47
|
+
headline: z.ZodString;
|
|
48
|
+
skills: z.ZodArray<z.ZodString>;
|
|
49
|
+
interests: z.ZodArray<z.ZodString>;
|
|
50
|
+
availability: z.ZodOptional<z.ZodObject<{
|
|
51
|
+
timezone: z.ZodString;
|
|
52
|
+
meetingHours: z.ZodOptional<z.ZodString>;
|
|
53
|
+
responseSla: z.ZodOptional<z.ZodString>;
|
|
54
|
+
}, z.core.$strip>>;
|
|
55
|
+
openTo: z.ZodArray<z.ZodString>;
|
|
56
|
+
}, z.core.$strip>>;
|
|
57
|
+
}, z.core.$strip>;
|
|
58
|
+
}, z.core.$strip>;
|
|
59
|
+
export type AvailabilityConfig = z.infer<typeof AvailabilityConfigSchema>;
|
|
60
|
+
export type ProfileSnapshot = z.infer<typeof ProfileSnapshotSchema>;
|
|
61
|
+
export type Profile = z.infer<typeof ProfileSchema>;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export const AvailabilityConfigSchema = z.object({
|
|
3
|
+
timezone: z.string(),
|
|
4
|
+
meetingHours: z.string().optional(),
|
|
5
|
+
responseSla: z.string().optional(),
|
|
6
|
+
});
|
|
7
|
+
export const ProfileSnapshotSchema = z.object({
|
|
8
|
+
headline: z.string().max(500),
|
|
9
|
+
skills: z.array(z.string().max(100)).max(50),
|
|
10
|
+
interests: z.array(z.string().max(100)).max(50),
|
|
11
|
+
availability: AvailabilityConfigSchema.optional(),
|
|
12
|
+
openTo: z.array(z.string().max(100)).max(20),
|
|
13
|
+
});
|
|
14
|
+
export const ProfileSchema = z.object({
|
|
15
|
+
agentId: z.string(),
|
|
16
|
+
handle: z.string(),
|
|
17
|
+
displayName: z.string().max(200),
|
|
18
|
+
bio: z.string().max(2000),
|
|
19
|
+
snapshots: z.object({
|
|
20
|
+
public: ProfileSnapshotSchema,
|
|
21
|
+
connected: ProfileSnapshotSchema,
|
|
22
|
+
custom: z.record(z.string(), ProfileSnapshotSchema),
|
|
23
|
+
}),
|
|
24
|
+
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@adastracomputing/ink",
|
|
3
|
-
"version": "0.1.0-alpha.
|
|
3
|
+
"version": "0.1.0-alpha.5",
|
|
4
4
|
"description": "Library and specification for the INK (Inter-agent Networking Kernel) protocol",
|
|
5
5
|
"license": "MIT OR Apache-2.0",
|
|
6
6
|
"author": "Ad Astra Computing Inc.",
|
|
@@ -13,24 +13,24 @@
|
|
|
13
13
|
"url": "https://github.com/Ad-Astra-Computing/ink/issues"
|
|
14
14
|
},
|
|
15
15
|
"type": "module",
|
|
16
|
-
"main": "./
|
|
17
|
-
"types": "./
|
|
16
|
+
"main": "./dist/index.js",
|
|
17
|
+
"types": "./dist/index.d.ts",
|
|
18
18
|
"exports": {
|
|
19
19
|
".": {
|
|
20
|
-
"types": "./
|
|
21
|
-
"default": "./
|
|
20
|
+
"types": "./dist/index.d.ts",
|
|
21
|
+
"default": "./dist/index.js"
|
|
22
22
|
},
|
|
23
23
|
"./package.json": "./package.json"
|
|
24
24
|
},
|
|
25
25
|
"sideEffects": false,
|
|
26
26
|
"engines": {
|
|
27
|
-
"node": ">=
|
|
27
|
+
"node": ">=24"
|
|
28
28
|
},
|
|
29
29
|
"bin": {
|
|
30
30
|
"ink": "./bin/ink.mjs"
|
|
31
31
|
},
|
|
32
32
|
"files": [
|
|
33
|
-
"
|
|
33
|
+
"dist/",
|
|
34
34
|
"bin/",
|
|
35
35
|
"specs/",
|
|
36
36
|
"docs/",
|
|
@@ -43,21 +43,25 @@
|
|
|
43
43
|
"CODE_OF_CONDUCT.md"
|
|
44
44
|
],
|
|
45
45
|
"scripts": {
|
|
46
|
+
"build": "rm -rf dist && tsc -p tsconfig.build.json",
|
|
46
47
|
"test": "vitest run",
|
|
47
48
|
"typecheck": "tsc --noEmit",
|
|
48
49
|
"lint": "eslint src/ test/ scripts/",
|
|
49
|
-
"check:surface": "tsx scripts/check-public-surface.ts"
|
|
50
|
+
"check:surface": "tsx scripts/check-public-surface.ts",
|
|
51
|
+
"check:pack": "./scripts/check-pack.sh",
|
|
52
|
+
"prepack": "npm run build",
|
|
53
|
+
"prepublishOnly": "npm run build"
|
|
50
54
|
},
|
|
51
55
|
"dependencies": {
|
|
52
56
|
"@noble/curves": "^2.2.0",
|
|
53
57
|
"@noble/ed25519": "^3.1.0",
|
|
54
|
-
"@noble/hashes": "^
|
|
58
|
+
"@noble/hashes": "^2.2.0",
|
|
55
59
|
"canonicalize": "^2.1.0",
|
|
56
|
-
"zod": "^
|
|
60
|
+
"zod": "^4.4.3"
|
|
57
61
|
},
|
|
58
62
|
"devDependencies": {
|
|
59
63
|
"@cloudflare/workers-types": "^4.20260418.1",
|
|
60
|
-
"@types/node": "^
|
|
64
|
+
"@types/node": "^24.12.4",
|
|
61
65
|
"@typescript-eslint/eslint-plugin": "^8.60.0",
|
|
62
66
|
"@typescript-eslint/parser": "^8.60.0",
|
|
63
67
|
"eslint": "^10.4.0",
|