A vibe coded tangled fork which supports pijul.
1{
2 "lexicon": 1,
3 "id": "sh.tangled.repo.changeList",
4 "defs": {
5 "main": {
6 "type": "query",
7 "description": "List changes in a Pijul repository",
8 "parameters": {
9 "type": "params",
10 "required": ["repo"],
11 "properties": {
12 "repo": {
13 "type": "string",
14 "description": "Repository identifier in format 'did:plc:.../repoName'"
15 },
16 "channel": {
17 "type": "string",
18 "description": "Pijul channel name (defaults to main channel)"
19 },
20 "limit": {
21 "type": "integer",
22 "description": "Maximum number of changes to return",
23 "minimum": 1,
24 "maximum": 100,
25 "default": 50
26 },
27 "cursor": {
28 "type": "string",
29 "description": "Pagination cursor (offset)"
30 }
31 }
32 },
33 "output": {
34 "encoding": "application/json",
35 "schema": {
36 "type": "object",
37 "required": ["changes", "page", "per_page", "total"],
38 "properties": {
39 "changes": {
40 "type": "array",
41 "items": {
42 "type": "ref",
43 "ref": "#changeEntry"
44 }
45 },
46 "channel": {
47 "type": "string"
48 },
49 "page": {
50 "type": "integer"
51 },
52 "per_page": {
53 "type": "integer"
54 },
55 "total": {
56 "type": "integer"
57 }
58 }
59 }
60 },
61 "errors": [
62 {
63 "name": "RepoNotFound",
64 "description": "Repository not found or access denied"
65 },
66 {
67 "name": "ChannelNotFound",
68 "description": "Channel not found"
69 },
70 {
71 "name": "InvalidRequest",
72 "description": "Invalid request parameters"
73 }
74 ]
75 },
76 "changeEntry": {
77 "type": "object",
78 "required": ["hash", "authors", "message"],
79 "properties": {
80 "hash": {
81 "type": "string",
82 "description": "Change hash (base32 encoded)"
83 },
84 "authors": {
85 "type": "array",
86 "items": {
87 "type": "ref",
88 "ref": "#author"
89 }
90 },
91 "message": {
92 "type": "string",
93 "description": "Change description"
94 },
95 "timestamp": {
96 "type": "string",
97 "format": "datetime",
98 "description": "When the change was recorded"
99 },
100 "dependencies": {
101 "type": "array",
102 "items": {
103 "type": "string"
104 },
105 "description": "Hashes of changes this change depends on"
106 }
107 }
108 },
109 "author": {
110 "type": "object",
111 "required": ["name"],
112 "properties": {
113 "name": {
114 "type": "string"
115 },
116 "email": {
117 "type": "string"
118 }
119 }
120 }
121 }
122}