@agegr/pi-web 0.3.8 → 0.3.10

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.
Files changed (132) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-path-routes-manifest.json +3 -0
  3. package/.next/build-manifest.json +2 -2
  4. package/.next/required-server-files.js +1 -1
  5. package/.next/required-server-files.json +1 -1
  6. package/.next/routes-manifest.json +22 -0
  7. package/.next/server/app/_global-error/page.js +3 -3
  8. package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  9. package/.next/server/app/_global-error.html +1 -1
  10. package/.next/server/app/_global-error.rsc +1 -1
  11. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  12. package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  13. package/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  14. package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  15. package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  16. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  17. package/.next/server/app/_not-found/page.js +2 -2
  18. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  19. package/.next/server/app/_not-found.html +1 -1
  20. package/.next/server/app/_not-found.rsc +2 -2
  21. package/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  22. package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  23. package/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
  24. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  25. package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  26. package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  27. package/.next/server/app/api/agent/[id]/events/route.js +2 -5
  28. package/.next/server/app/api/agent/[id]/events/route.js.nft.json +1 -1
  29. package/.next/server/app/api/agent/[id]/route.js +1 -4
  30. package/.next/server/app/api/agent/[id]/route.js.nft.json +1 -1
  31. package/.next/server/app/api/agent/new/route.js +1 -2
  32. package/.next/server/app/api/agent/new/route.js.nft.json +1 -1
  33. package/.next/server/app/api/auth/login/[provider]/route.js +3 -0
  34. package/.next/server/app/api/auth/login/[provider]/route.js.nft.json +1 -0
  35. package/.next/server/app/api/auth/login/[provider]/route_client-reference-manifest.js +1 -0
  36. package/.next/server/app/api/auth/logout/[provider]/route.js +1 -0
  37. package/.next/server/app/api/auth/logout/[provider]/route.js.nft.json +1 -0
  38. package/.next/server/app/api/auth/logout/[provider]/route_client-reference-manifest.js +1 -0
  39. package/.next/server/app/api/auth/providers/route.js +1 -0
  40. package/.next/server/app/api/auth/providers/route.js.nft.json +1 -0
  41. package/.next/server/app/api/auth/providers/route_client-reference-manifest.js +1 -0
  42. package/.next/server/app/api/default-cwd/route.js +1 -1
  43. package/.next/server/app/api/files/[...path]/route.js +2 -2
  44. package/.next/server/app/api/files/[...path]/route.js.nft.json +1 -1
  45. package/.next/server/app/api/home/route.js +1 -1
  46. package/.next/server/app/api/models/route.js +1 -3
  47. package/.next/server/app/api/models/route.js.nft.json +1 -1
  48. package/.next/server/app/api/models-config/route.js +1 -1
  49. package/.next/server/app/api/models-config/route.js.nft.json +1 -1
  50. package/.next/server/app/api/sessions/[id]/context/route.js +2 -2
  51. package/.next/server/app/api/sessions/[id]/context/route.js.nft.json +1 -1
  52. package/.next/server/app/api/sessions/[id]/route.js +1 -3
  53. package/.next/server/app/api/sessions/[id]/route.js.nft.json +1 -1
  54. package/.next/server/app/api/sessions/new/route.js +1 -1
  55. package/.next/server/app/api/sessions/route.js +2 -2
  56. package/.next/server/app/api/sessions/route.js.nft.json +1 -1
  57. package/.next/server/app/api/skills/install/route.js +1 -1
  58. package/.next/server/app/api/skills/route.js +5 -3
  59. package/.next/server/app/api/skills/search/route.js +1 -1
  60. package/.next/server/app/favicon.ico/route.js +1 -1
  61. package/.next/server/app/index.html +1 -1
  62. package/.next/server/app/index.rsc +3 -3
  63. package/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  64. package/.next/server/app/index.segments/_full.segment.rsc +3 -3
  65. package/.next/server/app/index.segments/_head.segment.rsc +1 -1
  66. package/.next/server/app/index.segments/_index.segment.rsc +2 -2
  67. package/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  68. package/.next/server/app/page.js +2 -2
  69. package/.next/server/app/page_client-reference-manifest.js +1 -1
  70. package/.next/server/app-paths-manifest.json +3 -0
  71. package/.next/server/chunks/601.js +3 -0
  72. package/.next/server/middleware-build-manifest.js +1 -1
  73. package/.next/server/pages/404.html +1 -1
  74. package/.next/server/pages/500.html +1 -1
  75. package/.next/static/2GPTcihZ-r4OjrwWdzn0l/_buildManifest.js +1 -0
  76. package/.next/static/chunks/app/_global-error/page-20395aed6b86fc74.js +1 -0
  77. package/.next/static/chunks/app/api/agent/[id]/events/route-20395aed6b86fc74.js +1 -0
  78. package/.next/static/chunks/app/api/agent/[id]/route-20395aed6b86fc74.js +1 -0
  79. package/.next/static/chunks/app/api/agent/new/route-20395aed6b86fc74.js +1 -0
  80. package/.next/static/chunks/app/api/auth/login/[provider]/route-20395aed6b86fc74.js +1 -0
  81. package/.next/static/chunks/app/api/auth/logout/[provider]/route-20395aed6b86fc74.js +1 -0
  82. package/.next/static/chunks/app/api/auth/providers/route-20395aed6b86fc74.js +1 -0
  83. package/.next/static/chunks/app/api/default-cwd/route-20395aed6b86fc74.js +1 -0
  84. package/.next/static/chunks/app/api/files/[...path]/route-20395aed6b86fc74.js +1 -0
  85. package/.next/static/chunks/app/api/home/route-20395aed6b86fc74.js +1 -0
  86. package/.next/static/chunks/app/api/models/route-20395aed6b86fc74.js +1 -0
  87. package/.next/static/chunks/app/api/models-config/route-20395aed6b86fc74.js +1 -0
  88. package/.next/static/chunks/app/api/sessions/[id]/context/route-20395aed6b86fc74.js +1 -0
  89. package/.next/static/chunks/app/api/sessions/[id]/route-20395aed6b86fc74.js +1 -0
  90. package/.next/static/chunks/app/api/sessions/new/route-20395aed6b86fc74.js +1 -0
  91. package/.next/static/chunks/app/api/sessions/route-20395aed6b86fc74.js +1 -0
  92. package/.next/static/chunks/app/api/skills/install/route-20395aed6b86fc74.js +1 -0
  93. package/.next/static/chunks/app/api/skills/route-20395aed6b86fc74.js +1 -0
  94. package/.next/static/chunks/app/api/skills/search/route-20395aed6b86fc74.js +1 -0
  95. package/.next/static/chunks/app/page-30d8fefcb41c145e.js +1 -0
  96. package/.next/static/chunks/next/dist/client/components/builtin/app-error-20395aed6b86fc74.js +1 -0
  97. package/.next/static/chunks/next/dist/client/components/builtin/forbidden-20395aed6b86fc74.js +1 -0
  98. package/.next/static/chunks/next/dist/client/components/builtin/not-found-20395aed6b86fc74.js +1 -0
  99. package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-20395aed6b86fc74.js +1 -0
  100. package/.next/static/css/{db181498dfd5fef0.css → 780e812f85d17241.css} +1 -1
  101. package/.next/trace +3 -3
  102. package/.next/trace-build +1 -1
  103. package/.next/types/app/api/auth/login/[provider]/route.ts +351 -0
  104. package/.next/types/app/api/auth/logout/[provider]/route.ts +351 -0
  105. package/.next/types/app/api/auth/providers/route.ts +351 -0
  106. package/.next/types/routes.d.ts +4 -1
  107. package/.next/types/validator.ts +27 -0
  108. package/package.json +1 -1
  109. package/.next/server/chunks/573.js +0 -3
  110. package/.next/static/chunks/app/_global-error/page-60ef9a2f388b61b3.js +0 -1
  111. package/.next/static/chunks/app/api/agent/[id]/events/route-60ef9a2f388b61b3.js +0 -1
  112. package/.next/static/chunks/app/api/agent/[id]/route-60ef9a2f388b61b3.js +0 -1
  113. package/.next/static/chunks/app/api/agent/new/route-60ef9a2f388b61b3.js +0 -1
  114. package/.next/static/chunks/app/api/default-cwd/route-60ef9a2f388b61b3.js +0 -1
  115. package/.next/static/chunks/app/api/files/[...path]/route-60ef9a2f388b61b3.js +0 -1
  116. package/.next/static/chunks/app/api/home/route-60ef9a2f388b61b3.js +0 -1
  117. package/.next/static/chunks/app/api/models/route-60ef9a2f388b61b3.js +0 -1
  118. package/.next/static/chunks/app/api/models-config/route-60ef9a2f388b61b3.js +0 -1
  119. package/.next/static/chunks/app/api/sessions/[id]/context/route-60ef9a2f388b61b3.js +0 -1
  120. package/.next/static/chunks/app/api/sessions/[id]/route-60ef9a2f388b61b3.js +0 -1
  121. package/.next/static/chunks/app/api/sessions/new/route-60ef9a2f388b61b3.js +0 -1
  122. package/.next/static/chunks/app/api/sessions/route-60ef9a2f388b61b3.js +0 -1
  123. package/.next/static/chunks/app/api/skills/install/route-60ef9a2f388b61b3.js +0 -1
  124. package/.next/static/chunks/app/api/skills/route-60ef9a2f388b61b3.js +0 -1
  125. package/.next/static/chunks/app/api/skills/search/route-60ef9a2f388b61b3.js +0 -1
  126. package/.next/static/chunks/app/page-8f53109554288387.js +0 -1
  127. package/.next/static/chunks/next/dist/client/components/builtin/app-error-60ef9a2f388b61b3.js +0 -1
  128. package/.next/static/chunks/next/dist/client/components/builtin/forbidden-60ef9a2f388b61b3.js +0 -1
  129. package/.next/static/chunks/next/dist/client/components/builtin/not-found-60ef9a2f388b61b3.js +0 -1
  130. package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-60ef9a2f388b61b3.js +0 -1
  131. package/.next/static/iYZ8zDYTOujyV-5pZNJR7/_buildManifest.js +0 -1
  132. /package/.next/static/{iYZ8zDYTOujyV-5pZNJR7 → 2GPTcihZ-r4OjrwWdzn0l}/_ssgManifest.js +0 -0
@@ -0,0 +1,351 @@
1
+ // File: /Users/alex/Documents/Workspace/pi-web/app/api/auth/providers/route.ts
2
+ import * as entry from '../../../../../../app/api/auth/providers/route.js'
3
+ import type { NextRequest } from 'next/server.js'
4
+
5
+ import type { InstantConfigForTypeCheckInternal } from 'next/dist/build/segment-config/app/app-segment-config.js'
6
+
7
+ type TEntry = typeof import('../../../../../../app/api/auth/providers/route.js')
8
+
9
+ type SegmentParams<T extends Object = any> = T extends Record<string, any>
10
+ ? { [K in keyof T]: T[K] extends string ? string | string[] | undefined : never }
11
+ : T
12
+
13
+ // Check that the entry is a valid entry
14
+ checkFields<Diff<{
15
+ GET?: Function
16
+ HEAD?: Function
17
+ OPTIONS?: Function
18
+ POST?: Function
19
+ PUT?: Function
20
+ DELETE?: Function
21
+ PATCH?: Function
22
+ config?: {}
23
+ generateStaticParams?: Function
24
+ unstable_instant?: InstantConfigForTypeCheckInternal
25
+ unstable_dynamicStaleTime?: number
26
+ revalidate?: RevalidateRange<TEntry> | false
27
+ dynamic?: 'auto' | 'force-dynamic' | 'error' | 'force-static'
28
+ dynamicParams?: boolean
29
+ fetchCache?: 'auto' | 'force-no-store' | 'only-no-store' | 'default-no-store' | 'default-cache' | 'only-cache' | 'force-cache'
30
+ preferredRegion?: 'auto' | 'global' | 'home' | string | string[]
31
+ runtime?: 'nodejs' | 'experimental-edge' | 'edge'
32
+ maxDuration?: number
33
+
34
+ }, TEntry, ''>>()
35
+
36
+ type RouteContext = { params: Promise<SegmentParams> }
37
+ // Check the prop type of the entry function
38
+ if ('GET' in entry) {
39
+ checkFields<
40
+ Diff<
41
+ ParamCheck<Request | NextRequest>,
42
+ {
43
+ __tag__: 'GET'
44
+ __param_position__: 'first'
45
+ __param_type__: FirstArg<MaybeField<TEntry, 'GET'>>
46
+ },
47
+ 'GET'
48
+ >
49
+ >()
50
+ checkFields<
51
+ Diff<
52
+ ParamCheck<RouteContext>,
53
+ {
54
+ __tag__: 'GET'
55
+ __param_position__: 'second'
56
+ __param_type__: SecondArg<MaybeField<TEntry, 'GET'>>
57
+ },
58
+ 'GET'
59
+ >
60
+ >()
61
+
62
+ checkFields<
63
+ Diff<
64
+ {
65
+ __tag__: 'GET',
66
+ __return_type__: Response | void | never | Promise<Response | void | never>
67
+ },
68
+ {
69
+ __tag__: 'GET',
70
+ __return_type__: ReturnType<MaybeField<TEntry, 'GET'>>
71
+ },
72
+ 'GET'
73
+ >
74
+ >()
75
+ }
76
+ // Check the prop type of the entry function
77
+ if ('HEAD' in entry) {
78
+ checkFields<
79
+ Diff<
80
+ ParamCheck<Request | NextRequest>,
81
+ {
82
+ __tag__: 'HEAD'
83
+ __param_position__: 'first'
84
+ __param_type__: FirstArg<MaybeField<TEntry, 'HEAD'>>
85
+ },
86
+ 'HEAD'
87
+ >
88
+ >()
89
+ checkFields<
90
+ Diff<
91
+ ParamCheck<RouteContext>,
92
+ {
93
+ __tag__: 'HEAD'
94
+ __param_position__: 'second'
95
+ __param_type__: SecondArg<MaybeField<TEntry, 'HEAD'>>
96
+ },
97
+ 'HEAD'
98
+ >
99
+ >()
100
+
101
+ checkFields<
102
+ Diff<
103
+ {
104
+ __tag__: 'HEAD',
105
+ __return_type__: Response | void | never | Promise<Response | void | never>
106
+ },
107
+ {
108
+ __tag__: 'HEAD',
109
+ __return_type__: ReturnType<MaybeField<TEntry, 'HEAD'>>
110
+ },
111
+ 'HEAD'
112
+ >
113
+ >()
114
+ }
115
+ // Check the prop type of the entry function
116
+ if ('OPTIONS' in entry) {
117
+ checkFields<
118
+ Diff<
119
+ ParamCheck<Request | NextRequest>,
120
+ {
121
+ __tag__: 'OPTIONS'
122
+ __param_position__: 'first'
123
+ __param_type__: FirstArg<MaybeField<TEntry, 'OPTIONS'>>
124
+ },
125
+ 'OPTIONS'
126
+ >
127
+ >()
128
+ checkFields<
129
+ Diff<
130
+ ParamCheck<RouteContext>,
131
+ {
132
+ __tag__: 'OPTIONS'
133
+ __param_position__: 'second'
134
+ __param_type__: SecondArg<MaybeField<TEntry, 'OPTIONS'>>
135
+ },
136
+ 'OPTIONS'
137
+ >
138
+ >()
139
+
140
+ checkFields<
141
+ Diff<
142
+ {
143
+ __tag__: 'OPTIONS',
144
+ __return_type__: Response | void | never | Promise<Response | void | never>
145
+ },
146
+ {
147
+ __tag__: 'OPTIONS',
148
+ __return_type__: ReturnType<MaybeField<TEntry, 'OPTIONS'>>
149
+ },
150
+ 'OPTIONS'
151
+ >
152
+ >()
153
+ }
154
+ // Check the prop type of the entry function
155
+ if ('POST' in entry) {
156
+ checkFields<
157
+ Diff<
158
+ ParamCheck<Request | NextRequest>,
159
+ {
160
+ __tag__: 'POST'
161
+ __param_position__: 'first'
162
+ __param_type__: FirstArg<MaybeField<TEntry, 'POST'>>
163
+ },
164
+ 'POST'
165
+ >
166
+ >()
167
+ checkFields<
168
+ Diff<
169
+ ParamCheck<RouteContext>,
170
+ {
171
+ __tag__: 'POST'
172
+ __param_position__: 'second'
173
+ __param_type__: SecondArg<MaybeField<TEntry, 'POST'>>
174
+ },
175
+ 'POST'
176
+ >
177
+ >()
178
+
179
+ checkFields<
180
+ Diff<
181
+ {
182
+ __tag__: 'POST',
183
+ __return_type__: Response | void | never | Promise<Response | void | never>
184
+ },
185
+ {
186
+ __tag__: 'POST',
187
+ __return_type__: ReturnType<MaybeField<TEntry, 'POST'>>
188
+ },
189
+ 'POST'
190
+ >
191
+ >()
192
+ }
193
+ // Check the prop type of the entry function
194
+ if ('PUT' in entry) {
195
+ checkFields<
196
+ Diff<
197
+ ParamCheck<Request | NextRequest>,
198
+ {
199
+ __tag__: 'PUT'
200
+ __param_position__: 'first'
201
+ __param_type__: FirstArg<MaybeField<TEntry, 'PUT'>>
202
+ },
203
+ 'PUT'
204
+ >
205
+ >()
206
+ checkFields<
207
+ Diff<
208
+ ParamCheck<RouteContext>,
209
+ {
210
+ __tag__: 'PUT'
211
+ __param_position__: 'second'
212
+ __param_type__: SecondArg<MaybeField<TEntry, 'PUT'>>
213
+ },
214
+ 'PUT'
215
+ >
216
+ >()
217
+
218
+ checkFields<
219
+ Diff<
220
+ {
221
+ __tag__: 'PUT',
222
+ __return_type__: Response | void | never | Promise<Response | void | never>
223
+ },
224
+ {
225
+ __tag__: 'PUT',
226
+ __return_type__: ReturnType<MaybeField<TEntry, 'PUT'>>
227
+ },
228
+ 'PUT'
229
+ >
230
+ >()
231
+ }
232
+ // Check the prop type of the entry function
233
+ if ('DELETE' in entry) {
234
+ checkFields<
235
+ Diff<
236
+ ParamCheck<Request | NextRequest>,
237
+ {
238
+ __tag__: 'DELETE'
239
+ __param_position__: 'first'
240
+ __param_type__: FirstArg<MaybeField<TEntry, 'DELETE'>>
241
+ },
242
+ 'DELETE'
243
+ >
244
+ >()
245
+ checkFields<
246
+ Diff<
247
+ ParamCheck<RouteContext>,
248
+ {
249
+ __tag__: 'DELETE'
250
+ __param_position__: 'second'
251
+ __param_type__: SecondArg<MaybeField<TEntry, 'DELETE'>>
252
+ },
253
+ 'DELETE'
254
+ >
255
+ >()
256
+
257
+ checkFields<
258
+ Diff<
259
+ {
260
+ __tag__: 'DELETE',
261
+ __return_type__: Response | void | never | Promise<Response | void | never>
262
+ },
263
+ {
264
+ __tag__: 'DELETE',
265
+ __return_type__: ReturnType<MaybeField<TEntry, 'DELETE'>>
266
+ },
267
+ 'DELETE'
268
+ >
269
+ >()
270
+ }
271
+ // Check the prop type of the entry function
272
+ if ('PATCH' in entry) {
273
+ checkFields<
274
+ Diff<
275
+ ParamCheck<Request | NextRequest>,
276
+ {
277
+ __tag__: 'PATCH'
278
+ __param_position__: 'first'
279
+ __param_type__: FirstArg<MaybeField<TEntry, 'PATCH'>>
280
+ },
281
+ 'PATCH'
282
+ >
283
+ >()
284
+ checkFields<
285
+ Diff<
286
+ ParamCheck<RouteContext>,
287
+ {
288
+ __tag__: 'PATCH'
289
+ __param_position__: 'second'
290
+ __param_type__: SecondArg<MaybeField<TEntry, 'PATCH'>>
291
+ },
292
+ 'PATCH'
293
+ >
294
+ >()
295
+
296
+ checkFields<
297
+ Diff<
298
+ {
299
+ __tag__: 'PATCH',
300
+ __return_type__: Response | void | never | Promise<Response | void | never>
301
+ },
302
+ {
303
+ __tag__: 'PATCH',
304
+ __return_type__: ReturnType<MaybeField<TEntry, 'PATCH'>>
305
+ },
306
+ 'PATCH'
307
+ >
308
+ >()
309
+ }
310
+
311
+ // Check the arguments and return type of the generateStaticParams function
312
+ if ('generateStaticParams' in entry) {
313
+ checkFields<Diff<{ params: SegmentParams }, FirstArg<MaybeField<TEntry, 'generateStaticParams'>>, 'generateStaticParams'>>()
314
+ checkFields<Diff<{ __tag__: 'generateStaticParams', __return_type__: any[] | Promise<any[]> }, { __tag__: 'generateStaticParams', __return_type__: ReturnType<MaybeField<TEntry, 'generateStaticParams'>> }>>()
315
+ }
316
+
317
+ export interface PageProps {
318
+ params?: Promise<SegmentParams>
319
+ searchParams?: Promise<any>
320
+ }
321
+ export interface LayoutProps {
322
+ children?: React.ReactNode
323
+
324
+ params?: Promise<SegmentParams>
325
+ }
326
+
327
+ // =============
328
+ // Utility types
329
+ type RevalidateRange<T> = T extends { revalidate: any } ? NonNegative<T['revalidate']> : never
330
+
331
+ // If T is unknown or any, it will be an empty {} type. Otherwise, it will be the same as Omit<T, keyof Base>.
332
+ type OmitWithTag<T, K extends keyof any, _M> = Omit<T, K>
333
+ type Diff<Base, T extends Base, Message extends string = ''> = 0 extends (1 & T) ? {} : OmitWithTag<T, keyof Base, Message>
334
+
335
+ type FirstArg<T extends Function> = T extends (...args: [infer T, any]) => any ? unknown extends T ? any : T : never
336
+ type SecondArg<T extends Function> = T extends (...args: [any, infer T]) => any ? unknown extends T ? any : T : never
337
+ type MaybeField<T, K extends string> = T extends { [k in K]: infer G } ? G extends Function ? G : never : never
338
+
339
+ type ParamCheck<T> = {
340
+ __tag__: string
341
+ __param_position__: string
342
+ __param_type__: T
343
+ }
344
+
345
+ function checkFields<_ extends { [k in keyof any]: never }>() {}
346
+
347
+ // https://github.com/sindresorhus/type-fest
348
+ type Numeric = number | bigint
349
+ type Zero = 0 | 0n
350
+ type Negative<T extends Numeric> = T extends Zero ? never : `${T}` extends `-${string}` ? T : never
351
+ type NonNegative<T extends Numeric> = T extends Zero ? T : Negative<T> extends never ? T : '__invalid_negative_number__'
@@ -2,7 +2,7 @@
2
2
  // Do not edit this file manually
3
3
 
4
4
  type AppRoutes = "/"
5
- type AppRouteHandlerRoutes = "/api/agent/[id]" | "/api/agent/[id]/events" | "/api/agent/new" | "/api/default-cwd" | "/api/files/[...path]" | "/api/home" | "/api/models" | "/api/models-config" | "/api/sessions" | "/api/sessions/[id]" | "/api/sessions/[id]/context" | "/api/sessions/new" | "/api/skills" | "/api/skills/install" | "/api/skills/search"
5
+ type AppRouteHandlerRoutes = "/api/agent/[id]" | "/api/agent/[id]/events" | "/api/agent/new" | "/api/auth/login/[provider]" | "/api/auth/logout/[provider]" | "/api/auth/providers" | "/api/default-cwd" | "/api/files/[...path]" | "/api/home" | "/api/models" | "/api/models-config" | "/api/sessions" | "/api/sessions/[id]" | "/api/sessions/[id]/context" | "/api/sessions/new" | "/api/skills" | "/api/skills/install" | "/api/skills/search"
6
6
  type PageRoutes = never
7
7
  type LayoutRoutes = "/"
8
8
  type RedirectRoutes = never
@@ -15,6 +15,9 @@ interface ParamMap {
15
15
  "/api/agent/[id]": { "id": string; }
16
16
  "/api/agent/[id]/events": { "id": string; }
17
17
  "/api/agent/new": {}
18
+ "/api/auth/login/[provider]": { "provider": string; }
19
+ "/api/auth/logout/[provider]": { "provider": string; }
20
+ "/api/auth/providers": {}
18
21
  "/api/default-cwd": {}
19
22
  "/api/files/[...path]": { "path": string[]; }
20
23
  "/api/home": {}
@@ -83,6 +83,33 @@ type RouteHandlerConfig<Route extends AppRouteHandlerRoutes = AppRouteHandlerRou
83
83
  type __Unused = __Check
84
84
  }
85
85
 
86
+ // Validate ../../app/api/auth/login/[provider]/route.ts
87
+ {
88
+ type __IsExpected<Specific extends RouteHandlerConfig<"/api/auth/login/[provider]">> = Specific
89
+ const handler = {} as typeof import("../../app/api/auth/login/[provider]/route.js")
90
+ type __Check = __IsExpected<typeof handler>
91
+ // @ts-ignore
92
+ type __Unused = __Check
93
+ }
94
+
95
+ // Validate ../../app/api/auth/logout/[provider]/route.ts
96
+ {
97
+ type __IsExpected<Specific extends RouteHandlerConfig<"/api/auth/logout/[provider]">> = Specific
98
+ const handler = {} as typeof import("../../app/api/auth/logout/[provider]/route.js")
99
+ type __Check = __IsExpected<typeof handler>
100
+ // @ts-ignore
101
+ type __Unused = __Check
102
+ }
103
+
104
+ // Validate ../../app/api/auth/providers/route.ts
105
+ {
106
+ type __IsExpected<Specific extends RouteHandlerConfig<"/api/auth/providers">> = Specific
107
+ const handler = {} as typeof import("../../app/api/auth/providers/route.js")
108
+ type __Check = __IsExpected<typeof handler>
109
+ // @ts-ignore
110
+ type __Unused = __Check
111
+ }
112
+
86
113
  // Validate ../../app/api/default-cwd/route.ts
87
114
  {
88
115
  type __IsExpected<Specific extends RouteHandlerConfig<"/api/default-cwd">> = Specific
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agegr/pi-web",
3
- "version": "0.3.8",
3
+ "version": "0.3.10",
4
4
  "description": "Web UI for the pi coding agent",
5
5
  "bin": {
6
6
  "pi-web": "bin/pi-web.js"
@@ -1,3 +0,0 @@
1
- "use strict";exports.id=573,exports.ids=[573],exports.modules={8573:(a,b,c)=>{c.d(b,{Uv:()=>t,T$:()=>p,H6:()=>s,fZ:()=>n,UY:()=>u,O6:()=>l,zU:()=>k,DK:()=>r,invalidateModelCache:()=>m,BR:()=>w,dQ:()=>q,os:()=>x});var d=c(9021),e=c(3873),f=c(1820);function g(){let a=process.env.PI_CODING_AGENT_DIR;return a?"~"===a?(0,f.homedir)():a.startsWith("~/")?(0,f.homedir)()+a.slice(1):a:(0,e.join)((0,f.homedir)(),".pi","agent")}function h(){return(0,e.join)(g(),"sessions")}let i=null;function j(){if(i)return i;i=new Map;let a=(0,e.join)(g(),"models.json");if(!(0,d.existsSync)(a))return i;try{let b=JSON.parse((0,d.readFileSync)(a,"utf8"));for(let[a,c]of Object.entries(b.providers??{}))for(let b of c.models??[])b.id&&b.name&&i.set(`${a}:${b.id}`,{id:b.id,name:b.name,provider:a})}catch{}return i}function k(){let a=new Map;for(let b of j().values())a.set(b.id,b.name);return a}function l(){return Array.from(j().values())}function m(){i=null}function n(){let a=(0,e.join)(g(),"settings.json");if(!(0,d.existsSync)(a))return null;try{let b=JSON.parse((0,d.readFileSync)(a,"utf8"));if(!b.defaultProvider)return null;if(b.defaultModel)return{provider:b.defaultProvider,modelId:b.defaultModel};let c=Array.from(j().values()).find(a=>a.provider===b.defaultProvider);if(c)return{provider:c.provider,modelId:c.id}}catch{}return null}function o(a){if(!(0,d.existsSync)(a))return[];let b=(0,d.readFileSync)(a,"utf8"),c=[];for(let a of b.trim().split("\n"))if(a.trim())try{c.push(JSON.parse(a))}catch{}return c}function p(a){try{let b,c,e=o(a);if(0===e.length)return null;let f=e[0];if("session"!==f.type)return null;let g=(0,d.statSync)(a),h=f.id,i=f.cwd??"",j=f.timestamp,k=f.parentSession?(c=(f.parentSession.replace(/\\/g,"/").split("/").pop()??"").match(/_([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})\.jsonl$/i),c?.[1]):void 0,l=0,m="";for(let a of e){if("session_info"===a.type&&a.name&&(b=a.name.trim()),"message"!==a.type)continue;l++;let c=a.message;if("user"!==c.role&&"assistant"!==c.role)continue;let d=function(a){let b=a.content;return"string"==typeof b?b:Array.isArray(b)?b.filter(a=>"text"===a.type).map(a=>a.text).join(" "):""}(c);m||"user"!==c.role||(m=d)}return{path:a,id:h,cwd:i,name:b,created:j,modified:g.mtime.toISOString(),messageCount:l,firstMessage:m||"(no messages)",parentSessionId:k}}catch{return null}}async function q(){let a=h(),b=[];if(!(0,d.existsSync)(a))return b;try{for(let c of(0,d.readdirSync)(a,{withFileTypes:!0}).filter(a=>a.isDirectory()).map(b=>(0,e.join)(a,b.name)))try{for(let a of(0,d.readdirSync)(c).filter(a=>a.endsWith(".jsonl")).map(a=>(0,e.join)(c,a))){let c=p(a);c&&b.push(c)}}catch{}}catch{}return b.sort((a,b)=>new Date(b.modified).getTime()-new Date(a.modified).getTime()),b}function r(a){return o(a).filter(a=>"session"!==a.type)}function s(a){let b=new Map;for(let c of a)"label"===c.type&&(c.label?b.set(c.targetId,c.label):b.delete(c.targetId));let c=new Map,d=[];for(let d of a)c.set(d.id,{entry:d,children:[],label:b.get(d.id)});for(let b of a){let a=c.get(b.id);if(b.parentId){let e=c.get(b.parentId);e?e.children.push(a):d.push(a)}else d.push(a)}let e=[...d];for(;e.length>0;){let a=e.pop();a.children.sort((a,b)=>new Date(a.entry.timestamp).getTime()-new Date(b.entry.timestamp).getTime()),e.push(...a.children)}return d}function t(a,b){let c,d=new Map;for(let b of a)d.set(b.id,b);if(null===b||(b&&(c=d.get(b)),c||(c=a[a.length-1]),!c))return{messages:[],entryIds:[],thinkingLevel:"off",model:null};let e=[],f=c;for(;f;)e.unshift(f),f=f.parentId?d.get(f.parentId):void 0;let g="off",h=null,i=null;for(let a of e)if("thinking_level_change"===a.type)g=a.thinkingLevel;else if("model_change"===a.type)h={provider:a.provider,modelId:a.modelId};else if("message"===a.type&&"assistant"===a.message.role){let b=a.message;h={provider:b.provider,modelId:b.model}}else"compaction"===a.type&&(i=a);let j=[],k=[],l=a=>{"message"===a.type&&(j.push(function(a){if("assistant"!==a.role||!Array.isArray(a.content))return a;let b=a.content.map(a=>"toolCall"!==a.type?a:{type:"toolCall",toolCallId:a.toolCallId??a.id,toolName:a.toolName??a.name,input:a.input??a.arguments});return{...a,content:b}}(a.message)),k.push(a.id))};if(i){let a={role:"user",content:`*The conversation history before this point was compacted into the following summary:*
2
-
3
- ${i.summary}`,timestamp:new Date(i.timestamp).getTime()};j.push(a),k.push(i.id);let b=e.findIndex(a=>"compaction"===a.type&&a.id===i.id),c=e.findIndex((a,c)=>c<b&&a.id===i.firstKeptEntryId),d=c>=0?c:b;for(let a=d;a<b;a++)l(e[a]);for(let a=b+1;a<e.length;a++)l(e[a])}else for(let a of e)l(a);return{messages:j,entryIds:k,thinkingLevel:g,model:h}}function u(a){return 0===a.length?null:a[a.length-1].id}function v(){return globalThis.__piSessionPathCache||(globalThis.__piSessionPathCache=new Map),globalThis.__piSessionPathCache}function w(a){v().delete(a)}function x(a){let b=v(),c=b.get(a);if(c&&(0,d.existsSync)(c))return c;let f=h();if(!(0,d.existsSync)(f))return null;try{for(let c of(0,d.readdirSync)(f,{withFileTypes:!0}).filter(a=>a.isDirectory()).map(a=>(0,e.join)(f,a.name)))try{for(let f of(0,d.readdirSync)(c).filter(a=>a.endsWith(".jsonl"))){let g=(0,e.join)(c,f),h=(0,d.readFileSync)(g,"utf8").split("\n")[0];try{let c=JSON.parse(h);if("session"===c.type&&c.id===a)return b.set(a,g),g}catch{}}}catch{}}catch{}return null}}};
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[37,97,167,221,222,232,450,483,552,709,812,819,849,851,896,907,955,968,976,988],{4441:()=>{}},_=>{_.O(0,[441,794,358],()=>_(_.s=4441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[37,97,167,221,222,232,450,483,552,709,812,819,849,851,896,907,955,968,976,988],{4441:()=>{}},_=>{_.O(0,[441,794,358],()=>_(_.s=4441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[37,97,167,221,222,232,450,483,552,709,812,819,849,851,896,907,955,968,976,988],{4441:()=>{}},_=>{_.O(0,[441,794,358],()=>_(_.s=4441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[37,97,167,221,222,232,450,483,552,709,812,819,849,851,896,907,955,968,976,988],{4441:()=>{}},_=>{_.O(0,[441,794,358],()=>_(_.s=4441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[37,97,167,221,222,232,450,483,552,709,812,819,849,851,896,907,955,968,976,988],{4441:()=>{}},_=>{_.O(0,[441,794,358],()=>_(_.s=4441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[37,97,167,221,222,232,450,483,552,709,812,819,849,851,896,907,955,968,976,988],{4441:()=>{}},_=>{_.O(0,[441,794,358],()=>_(_.s=4441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[37,97,167,221,222,232,450,483,552,709,812,819,849,851,896,907,955,968,976,988],{4441:()=>{}},_=>{_.O(0,[441,794,358],()=>_(_.s=4441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[37,97,167,221,222,232,450,483,552,709,812,819,849,851,896,907,955,968,976,988],{4441:()=>{}},_=>{_.O(0,[441,794,358],()=>_(_.s=4441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[37,97,167,221,222,232,450,483,552,709,812,819,849,851,896,907,955,968,976,988],{4441:()=>{}},_=>{_.O(0,[441,794,358],()=>_(_.s=4441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[37,97,167,221,222,232,450,483,552,709,812,819,849,851,896,907,955,968,976,988],{4441:()=>{}},_=>{_.O(0,[441,794,358],()=>_(_.s=4441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[37,97,167,221,222,232,450,483,552,709,812,819,849,851,896,907,955,968,976,988],{4441:()=>{}},_=>{_.O(0,[441,794,358],()=>_(_.s=4441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[37,97,167,221,222,232,450,483,552,709,812,819,849,851,896,907,955,968,976,988],{4441:()=>{}},_=>{_.O(0,[441,794,358],()=>_(_.s=4441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[37,97,167,221,222,232,450,483,552,709,812,819,849,851,896,907,955,968,976,988],{4441:()=>{}},_=>{_.O(0,[441,794,358],()=>_(_.s=4441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[37,97,167,221,222,232,450,483,552,709,812,819,849,851,896,907,955,968,976,988],{4441:()=>{}},_=>{_.O(0,[441,794,358],()=>_(_.s=4441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[37,97,167,221,222,232,450,483,552,709,812,819,849,851,896,907,955,968,976,988],{4441:()=>{}},_=>{_.O(0,[441,794,358],()=>_(_.s=4441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[37,97,167,221,222,232,450,483,552,709,812,819,849,851,896,907,955,968,976,988],{4441:()=>{}},_=>{_.O(0,[441,794,358],()=>_(_.s=4441)),_N_E=_.O()}]);