+6
-1
deno.json
+6
-1
deno.json
···
1
1
{
2
2
"name": "@voyager/autonomy-lexicon",
3
-
"version": "0.1.0",
3
+
"version": "0.1.1",
4
+
"description": "TypeScript types and lexicon for declaring automation and AI usage on ATProtocol/Bluesky",
4
5
"license": "MIT",
5
6
"exports": "./mod.ts",
6
7
"tasks": {
···
9
10
},
10
11
"imports": {
11
12
"@atproto/api": "npm:@atproto/api"
13
+
},
14
+
"unstable": ["jsr"],
15
+
"compilerOptions": {
16
+
"lib": ["deno.ns", "deno.window", "deno.worker"]
12
17
},
13
18
"publish": {
14
19
"exclude": ["client/", "scripts/", ".env", ".env.example", "CLAUDE.md"]
+35
mod.ts
+35
mod.ts
···
9
9
10
10
import lexicon from "./lexicon/autonomy-declaration.json" with { type: "json" };
11
11
12
+
/**
13
+
* The complete lexicon definition for the autonomy declaration record type.
14
+
* Use this to register the lexicon with your ATProto lexicon registry.
15
+
*/
12
16
export const AUTONOMY_DECLARATION_LEXICON = lexicon;
13
17
18
+
/**
19
+
* Level of automation in account management and content creation.
20
+
* - `human`: No automation, fully human-operated
21
+
* - `assisted`: Human with AI/automation assistance
22
+
* - `collaborative`: Human-AI collaboration with shared agency
23
+
* - `automated`: Fully automated with minimal human intervention
24
+
*/
14
25
export type AutomationLevel = "human" | "assisted" | "collaborative" | "automated";
26
+
27
+
/**
28
+
* Type of entity responsible for the automated account.
29
+
* - `person`: An individual person
30
+
* - `organization`: A company, group, or organization
31
+
*/
15
32
export type ResponsiblePartyType = "person" | "organization";
16
33
34
+
/**
35
+
* Information about who is accountable for an account's automated behavior.
36
+
*/
17
37
export interface ResponsibleParty {
38
+
/** Whether the responsible party is a person or organization */
18
39
type?: ResponsiblePartyType;
40
+
/** Name of the person or organization responsible (max 100 graphemes) */
19
41
name?: string;
42
+
/** Contact information: email, URL, handle, or DID (max 300 chars) */
20
43
contact?: string;
44
+
/** DID of the responsible party if they have an ATProto identity */
21
45
did?: string;
22
46
}
23
47
48
+
/**
49
+
* Declaration of automation and AI usage for transparency and accountability.
50
+
* Only `createdAt` is required; all other fields are optional.
51
+
*/
24
52
export interface AutonomyDeclaration {
53
+
/** Level of automation in account management and content creation */
25
54
automationLevel?: AutomationLevel;
55
+
/** Whether this account uses generative AI (LLMs, image generation, etc.) to create content */
26
56
usesGenerativeAI?: boolean;
57
+
/** Plain language explanation of how this account is automated and what it does (max 300 graphemes) */
27
58
description?: string;
59
+
/** Information about who is accountable for this account's automated behavior */
28
60
responsibleParty?: ResponsibleParty;
61
+
/** URL with additional information about this account's automation */
29
62
disclosureUrl?: string;
63
+
/** External tools and services this agent relies on outside of Bluesky (max 20 items, 200 chars each) */
30
64
externalServices?: string[];
65
+
/** Timestamp when this declaration was created (ISO 8601 format) */
31
66
createdAt: string;
32
67
}