a web app for declaring if an atproto account is automated + package for the lexicon jsr.io/@voyager/autonomy-lexicon
atprotocol lexicon

Bump version and add description to Deno package config

Changed files
+41 -1
+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
··· 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 }