A vibe coded tangled fork which supports pijul.
1{
2 "lexicon": 1,
3 "id": "sh.tangled.git.temp.getTree",
4 "defs": {
5 "main": {
6 "type": "query",
7 "parameters": {
8 "type": "params",
9 "required": [
10 "repo",
11 "ref"
12 ],
13 "properties": {
14 "repo": {
15 "type": "string",
16 "format": "at-uri",
17 "description": "AT-URI of the repository"
18 },
19 "ref": {
20 "type": "string",
21 "description": "Git reference (branch, tag, or commit SHA)"
22 },
23 "path": {
24 "type": "string",
25 "description": "Path within the repository tree",
26 "default": ""
27 }
28 }
29 },
30 "output": {
31 "encoding": "application/json",
32 "schema": {
33 "type": "object",
34 "required": [
35 "ref",
36 "files"
37 ],
38 "properties": {
39 "ref": {
40 "type": "string",
41 "description": "The git reference used"
42 },
43 "parent": {
44 "type": "string",
45 "description": "The parent path in the tree"
46 },
47 "dotdot": {
48 "type": "string",
49 "description": "Parent directory path"
50 },
51 "readme": {
52 "type": "ref",
53 "ref": "#readme",
54 "description": "Readme for this file tree"
55 },
56 "lastCommit": {
57 "type": "ref",
58 "ref": "#lastCommit"
59 },
60 "files": {
61 "type": "array",
62 "items": {
63 "type": "ref",
64 "ref": "#treeEntry"
65 }
66 }
67 }
68 }
69 },
70 "errors": [
71 {
72 "name": "RepoNotFound",
73 "description": "Repository not found or access denied"
74 },
75 {
76 "name": "RefNotFound",
77 "description": "Git reference not found"
78 },
79 {
80 "name": "PathNotFound",
81 "description": "Path not found in repository tree"
82 },
83 {
84 "name": "InvalidRequest",
85 "description": "Invalid request parameters"
86 }
87 ]
88 },
89 "readme": {
90 "type": "object",
91 "required": [
92 "filename",
93 "contents"
94 ],
95 "properties": {
96 "filename": {
97 "type": "string",
98 "description": "Name of the readme file"
99 },
100 "contents": {
101 "type": "string",
102 "description": "Contents of the readme file"
103 }
104 }
105 },
106 "treeEntry": {
107 "type": "object",
108 "required": [
109 "name",
110 "mode",
111 "size"
112 ],
113 "properties": {
114 "name": {
115 "type": "string",
116 "description": "Relative file or directory name"
117 },
118 "mode": {
119 "type": "string",
120 "description": "File mode"
121 },
122 "size": {
123 "type": "integer",
124 "description": "File size in bytes"
125 },
126 "last_commit": {
127 "type": "ref",
128 "ref": "#lastCommit"
129 }
130 }
131 },
132 "lastCommit": {
133 "type": "object",
134 "required": [
135 "hash",
136 "message",
137 "when"
138 ],
139 "properties": {
140 "hash": {
141 "type": "string",
142 "description": "Commit hash"
143 },
144 "message": {
145 "type": "string",
146 "description": "Commit message"
147 },
148 "author": {
149 "type": "ref",
150 "ref": "#signature"
151 },
152 "when": {
153 "type": "string",
154 "format": "datetime",
155 "description": "Commit timestamp"
156 }
157 }
158 },
159 "signature": {
160 "type": "object",
161 "required": [
162 "name",
163 "email",
164 "when"
165 ],
166 "properties": {
167 "name": {
168 "type": "string",
169 "description": "Author name"
170 },
171 "email": {
172 "type": "string",
173 "description": "Author email"
174 },
175 "when": {
176 "type": "string",
177 "format": "datetime",
178 "description": "Author timestamp"
179 }
180 }
181 }
182 }
183}