clanka 0.0.1

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 (72) hide show
  1. package/README.md +3 -0
  2. package/dist/Agent.d.ts +119 -0
  3. package/dist/Agent.d.ts.map +1 -0
  4. package/dist/Agent.js +240 -0
  5. package/dist/Agent.js.map +1 -0
  6. package/dist/AgentTools.d.ts +246 -0
  7. package/dist/AgentTools.d.ts.map +1 -0
  8. package/dist/AgentTools.js +374 -0
  9. package/dist/AgentTools.js.map +1 -0
  10. package/dist/AgentTools.test.d.ts +2 -0
  11. package/dist/AgentTools.test.d.ts.map +1 -0
  12. package/dist/AgentTools.test.js +147 -0
  13. package/dist/AgentTools.test.js.map +1 -0
  14. package/dist/ApplyPatch.d.ts +27 -0
  15. package/dist/ApplyPatch.d.ts.map +1 -0
  16. package/dist/ApplyPatch.js +343 -0
  17. package/dist/ApplyPatch.js.map +1 -0
  18. package/dist/ApplyPatch.test.d.ts +2 -0
  19. package/dist/ApplyPatch.test.d.ts.map +1 -0
  20. package/dist/ApplyPatch.test.js +99 -0
  21. package/dist/ApplyPatch.test.js.map +1 -0
  22. package/dist/Codex.d.ts +11 -0
  23. package/dist/Codex.d.ts.map +1 -0
  24. package/dist/Codex.js +14 -0
  25. package/dist/Codex.js.map +1 -0
  26. package/dist/CodexAuth.d.ts +68 -0
  27. package/dist/CodexAuth.d.ts.map +1 -0
  28. package/dist/CodexAuth.js +270 -0
  29. package/dist/CodexAuth.js.map +1 -0
  30. package/dist/CodexAuth.test.d.ts +2 -0
  31. package/dist/CodexAuth.test.d.ts.map +1 -0
  32. package/dist/CodexAuth.test.js +425 -0
  33. package/dist/CodexAuth.test.js.map +1 -0
  34. package/dist/Executor.d.ts +20 -0
  35. package/dist/Executor.d.ts.map +1 -0
  36. package/dist/Executor.js +76 -0
  37. package/dist/Executor.js.map +1 -0
  38. package/dist/OutputFormatter.d.ts +11 -0
  39. package/dist/OutputFormatter.d.ts.map +1 -0
  40. package/dist/OutputFormatter.js +5 -0
  41. package/dist/OutputFormatter.js.map +1 -0
  42. package/dist/ToolkitRenderer.d.ts +17 -0
  43. package/dist/ToolkitRenderer.d.ts.map +1 -0
  44. package/dist/ToolkitRenderer.js +25 -0
  45. package/dist/ToolkitRenderer.js.map +1 -0
  46. package/dist/TypeBuilder.d.ts +11 -0
  47. package/dist/TypeBuilder.d.ts.map +1 -0
  48. package/dist/TypeBuilder.js +383 -0
  49. package/dist/TypeBuilder.js.map +1 -0
  50. package/dist/TypeBuilder.test.d.ts +2 -0
  51. package/dist/TypeBuilder.test.d.ts.map +1 -0
  52. package/dist/TypeBuilder.test.js +243 -0
  53. package/dist/TypeBuilder.test.js.map +1 -0
  54. package/dist/index.d.ts +25 -0
  55. package/dist/index.d.ts.map +1 -0
  56. package/dist/index.js +25 -0
  57. package/dist/index.js.map +1 -0
  58. package/package.json +72 -0
  59. package/src/Agent.ts +398 -0
  60. package/src/AgentTools.test.ts +215 -0
  61. package/src/AgentTools.ts +507 -0
  62. package/src/ApplyPatch.test.ts +154 -0
  63. package/src/ApplyPatch.ts +473 -0
  64. package/src/Codex.ts +14 -0
  65. package/src/CodexAuth.test.ts +729 -0
  66. package/src/CodexAuth.ts +571 -0
  67. package/src/Executor.ts +129 -0
  68. package/src/OutputFormatter.ts +17 -0
  69. package/src/ToolkitRenderer.ts +39 -0
  70. package/src/TypeBuilder.test.ts +508 -0
  71. package/src/TypeBuilder.ts +670 -0
  72. package/src/index.ts +29 -0
@@ -0,0 +1,270 @@
1
+ /**
2
+ * @since 1.0.0
3
+ */
4
+ import { Console, Effect, Encoding, flow, Layer, Option, Result, Schedule, Schema, Semaphore, ServiceMap, } from "effect";
5
+ import { HttpClient, HttpClientRequest, HttpClientResponse, } from "effect/unstable/http";
6
+ import { KeyValueStore } from "effect/unstable/persistence";
7
+ export const CLIENT_ID = "app_EMoamEEZ73f0CkXaXp7hrann";
8
+ export const ISSUER = "https://auth.openai.com";
9
+ export const POLLING_SAFETY_MARGIN_MS = 3000;
10
+ export const TOKEN_EXPIRY_BUFFER_MS = 30_000;
11
+ export const STORE_PREFIX = "codex.auth/";
12
+ export const STORE_TOKEN_KEY = "token";
13
+ const DEVICE_CODE_URL = `/api/accounts/deviceauth/usercode`;
14
+ const DEVICE_TOKEN_URL = `/api/accounts/deviceauth/token`;
15
+ const TOKEN_URL = `/oauth/token`;
16
+ const DEVICE_REDIRECT_URI = `${ISSUER}/deviceauth/callback`;
17
+ const DEVICE_VERIFICATION_URL = `/codex/device`;
18
+ const DEFAULT_DEVICE_POLL_INTERVAL_SECONDS = 5;
19
+ const DEFAULT_TOKEN_EXPIRY_SECONDS = 3600;
20
+ const ACCOUNT_ID_HEADER = "ChatGPT-Account-Id";
21
+ export class TokenData extends Schema.Class("clanka/CodexAuth/TokenData")({
22
+ access: Schema.String,
23
+ refresh: Schema.String,
24
+ expires: Schema.Number,
25
+ accountId: Schema.OptionFromOptional(Schema.String),
26
+ }) {
27
+ isExpired() {
28
+ return this.expires < Date.now() + TOKEN_EXPIRY_BUFFER_MS;
29
+ }
30
+ }
31
+ export class CodexAuthError extends Schema.TaggedErrorClass()("CodexAuthError", {
32
+ reason: Schema.Literals([
33
+ "DeviceFlowFailed",
34
+ "TokenExchangeFailed",
35
+ "RefreshFailed",
36
+ ]),
37
+ message: Schema.String,
38
+ cause: Schema.optional(Schema.Defect),
39
+ }) {
40
+ }
41
+ const DeviceCodeResponseSchema = Schema.Struct({
42
+ device_auth_id: Schema.String,
43
+ user_code: Schema.String,
44
+ interval: Schema.String,
45
+ });
46
+ const AuthorizationCodeResponseSchema = Schema.Struct({
47
+ authorization_code: Schema.String,
48
+ code_verifier: Schema.String,
49
+ });
50
+ const TokenResponseSchema = Schema.Struct({
51
+ id_token: Schema.optional(Schema.String),
52
+ access_token: Schema.String,
53
+ refresh_token: Schema.String,
54
+ expires_in: Schema.optional(Schema.Number),
55
+ });
56
+ const decodeJwtJson = Schema.decodeUnknownOption(Schema.fromJsonString(Schema.Unknown));
57
+ const isRecord = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
58
+ const getString = (value) => typeof value === "string" ? value : undefined;
59
+ const toJwtClaims = (value) => {
60
+ if (!isRecord(value)) {
61
+ return Option.none();
62
+ }
63
+ const accountId = getString(value["chatgpt_account_id"]);
64
+ const authValue = value["https://api.openai.com/auth"];
65
+ const nestedAccountId = isRecord(authValue)
66
+ ? getString(authValue["chatgpt_account_id"])
67
+ : undefined;
68
+ const organizationsValue = value["organizations"];
69
+ const organizationId = Array.isArray(organizationsValue) &&
70
+ organizationsValue[0] !== undefined &&
71
+ isRecord(organizationsValue[0])
72
+ ? getString(organizationsValue[0]["id"])
73
+ : undefined;
74
+ return Option.some({
75
+ ...(accountId === undefined ? {} : { chatgpt_account_id: accountId }),
76
+ ...(nestedAccountId === undefined
77
+ ? {}
78
+ : {
79
+ "https://api.openai.com/auth": {
80
+ chatgpt_account_id: nestedAccountId,
81
+ },
82
+ }),
83
+ ...(organizationId === undefined
84
+ ? {}
85
+ : {
86
+ organizations: [{ id: organizationId }],
87
+ }),
88
+ });
89
+ };
90
+ const decodeJwtPayload = (token) => {
91
+ const parts = token.split(".");
92
+ if (parts.length !== 3) {
93
+ return Option.none();
94
+ }
95
+ const payload = parts[1];
96
+ if (payload === undefined) {
97
+ return Option.none();
98
+ }
99
+ return Option.fromNullishOr(Result.getOrUndefined(Encoding.decodeBase64UrlString(payload)));
100
+ };
101
+ export const parseJwtClaims = (token) => decodeJwtPayload(token).pipe(Option.flatMap(decodeJwtJson), Option.flatMap(toJwtClaims));
102
+ export const extractAccountIdFromClaims = (claims) => {
103
+ if (claims.chatgpt_account_id !== undefined &&
104
+ claims.chatgpt_account_id !== "") {
105
+ return Option.some(claims.chatgpt_account_id);
106
+ }
107
+ const nestedAccountId = claims["https://api.openai.com/auth"]?.chatgpt_account_id;
108
+ if (nestedAccountId !== undefined && nestedAccountId !== "") {
109
+ return Option.some(nestedAccountId);
110
+ }
111
+ const organizationId = claims.organizations?.[0]?.id;
112
+ if (organizationId !== undefined && organizationId !== "") {
113
+ return Option.some(organizationId);
114
+ }
115
+ return Option.none();
116
+ };
117
+ export const extractAccountIdFromToken = (token) => parseJwtClaims(token).pipe(Option.flatMap(extractAccountIdFromClaims));
118
+ const normalizePollInterval = (interval) => Math.max(Number.parseInt(interval, 10) || DEFAULT_DEVICE_POLL_INTERVAL_SECONDS, 1) * 1_000;
119
+ const extractAccountIdFromTokens = (token) => {
120
+ if (token.id_token !== undefined && token.id_token !== "") {
121
+ const accountId = extractAccountIdFromToken(token.id_token);
122
+ if (Option.isSome(accountId)) {
123
+ return accountId;
124
+ }
125
+ }
126
+ return extractAccountIdFromToken(token.access_token);
127
+ };
128
+ const applyTokenHeaders = (request, token) => {
129
+ const authenticatedRequest = request.pipe(HttpClientRequest.bearerToken(token.access));
130
+ return Option.match(token.accountId, {
131
+ onNone: () => authenticatedRequest,
132
+ onSome: (accountId) => authenticatedRequest.pipe(HttpClientRequest.setHeader(ACCOUNT_ID_HEADER, accountId)),
133
+ });
134
+ };
135
+ const toTokenDataFromResponse = (token) => new TokenData({
136
+ access: token.access_token,
137
+ refresh: token.refresh_token,
138
+ expires: Date.now() + (token.expires_in ?? DEFAULT_TOKEN_EXPIRY_SECONDS) * 1_000,
139
+ accountId: extractAccountIdFromTokens(token),
140
+ });
141
+ const preserveAccountId = (token, fallback) => {
142
+ if (Option.isSome(token.accountId) || Option.isNone(fallback)) {
143
+ return token;
144
+ }
145
+ return new TokenData({
146
+ access: token.access,
147
+ refresh: token.refresh,
148
+ expires: token.expires,
149
+ accountId: fallback,
150
+ });
151
+ };
152
+ const requestDeviceCodeError = (message, cause) => new CodexAuthError({
153
+ reason: "DeviceFlowFailed",
154
+ message,
155
+ ...(cause === undefined ? {} : { cause }),
156
+ });
157
+ const tokenExchangeError = (message, cause) => new CodexAuthError({
158
+ reason: "TokenExchangeFailed",
159
+ message,
160
+ ...(cause === undefined ? {} : { cause }),
161
+ });
162
+ const refreshTokenError = (message, cause) => new CodexAuthError({
163
+ reason: "RefreshFailed",
164
+ message,
165
+ ...(cause === undefined ? {} : { cause }),
166
+ });
167
+ export const toCodexAuthKeyValueStore = (store) => KeyValueStore.prefix(store, STORE_PREFIX);
168
+ export const toTokenStore = (store) => KeyValueStore.toSchemaStore(toCodexAuthKeyValueStore(store), TokenData);
169
+ export class CodexAuth extends ServiceMap.Service()("clanka/CodexAuth") {
170
+ static make = Effect.gen(function* () {
171
+ const tokenStore = toTokenStore(yield* KeyValueStore.KeyValueStore);
172
+ const httpClient = (yield* HttpClient.HttpClient).pipe(HttpClient.mapRequest(flow(HttpClientRequest.prependUrl(ISSUER))), HttpClient.filterStatusOk, HttpClient.retryTransient({
173
+ times: 5,
174
+ schedule: Schedule.exponential(150).pipe(Schedule.either(Schedule.spaced(5000))),
175
+ }));
176
+ const semaphore = Semaphore.makeUnsafe(1);
177
+ let currentToken = yield* tokenStore.get(STORE_TOKEN_KEY).pipe(Effect.catchTag("SchemaError", (error) => Console.warn(`Failed to decode persisted Codex token, clearing it: ${error.message}`).pipe(Effect.andThen(tokenStore.remove(STORE_TOKEN_KEY)), Effect.as(Option.none()))), Effect.orDie);
178
+ const saveToken = (token) => Effect.orDie(tokenStore.set(STORE_TOKEN_KEY, token)).pipe(Effect.tap(() => Effect.sync(() => {
179
+ currentToken = Option.some(token);
180
+ })), Effect.as(token));
181
+ const clearToken = Effect.orDie(tokenStore.remove(STORE_TOKEN_KEY)).pipe(Effect.tap(() => Effect.sync(() => {
182
+ currentToken = Option.none();
183
+ })));
184
+ const authenticateWithDeviceFlow = Effect.gen(function* () {
185
+ const deviceCode = yield* requestDeviceCode;
186
+ yield* Console.log(`Open ${ISSUER}${DEVICE_VERIFICATION_URL} and enter code: ${deviceCode.userCode}`);
187
+ const authorization = yield* pollAuthorization(deviceCode);
188
+ return yield* exchangeAuthorizationCode(authorization);
189
+ });
190
+ const authenticateNoLock = Effect.uninterruptibleMask((restore) => Effect.gen(function* () {
191
+ const token = yield* restore(authenticateWithDeviceFlow);
192
+ return yield* saveToken(token);
193
+ }));
194
+ const getNoLock = Effect.uninterruptibleMask((restore) => Effect.gen(function* () {
195
+ if (Option.isSome(currentToken) && !currentToken.value.isExpired()) {
196
+ return currentToken.value;
197
+ }
198
+ if (Option.isNone(currentToken)) {
199
+ const token = yield* restore(authenticateWithDeviceFlow);
200
+ return yield* saveToken(token);
201
+ }
202
+ const refreshedToken = yield* restore(refreshToken(currentToken.value.refresh).pipe(Effect.tapError((error) => Console.warn(`Codex token refresh failed, falling back to device auth: ${error.message}`)), Effect.option));
203
+ if (Option.isSome(refreshedToken)) {
204
+ return yield* saveToken(preserveAccountId(refreshedToken.value, currentToken.value.accountId));
205
+ }
206
+ yield* clearToken;
207
+ const token = yield* restore(authenticateWithDeviceFlow);
208
+ return yield* saveToken(token);
209
+ }));
210
+ const requestDeviceCode = Effect.gen(function* () {
211
+ const response = yield* HttpClientRequest.post(DEVICE_CODE_URL).pipe(HttpClientRequest.bodyJsonUnsafe({
212
+ client_id: CLIENT_ID,
213
+ }), httpClient.execute, Effect.mapError((cause) => requestDeviceCodeError("Failed to request a Codex device authorization code", cause)));
214
+ const payload = yield* HttpClientResponse.schemaBodyJson(DeviceCodeResponseSchema)(response).pipe(Effect.mapError((cause) => requestDeviceCodeError("Failed to decode the Codex device authorization response", cause)));
215
+ return {
216
+ deviceAuthId: payload.device_auth_id,
217
+ userCode: payload.user_code,
218
+ intervalMs: normalizePollInterval(payload.interval),
219
+ };
220
+ }).pipe(Effect.withSpan("CodexAuth.requestDeviceCode"));
221
+ const pollAuthorization = Effect.fn("CodexAuth.pollAuthorization")(function* (deviceCode) {
222
+ const request = HttpClientRequest.post(DEVICE_TOKEN_URL).pipe(HttpClientRequest.bodyJsonUnsafe({
223
+ device_auth_id: deviceCode.deviceAuthId,
224
+ user_code: deviceCode.userCode,
225
+ }));
226
+ const delayMs = deviceCode.intervalMs + POLLING_SAFETY_MARGIN_MS;
227
+ return yield* httpClient.execute(request).pipe(Effect.retry({
228
+ while: (e) => e.response?.status === 403 || e.response?.status === 404,
229
+ schedule: Schedule.spaced(delayMs),
230
+ }), Effect.mapError((cause) => requestDeviceCodeError("Failed to poll Codex device authorization", cause)), Effect.flatMap((response) => HttpClientResponse.schemaBodyJson(AuthorizationCodeResponseSchema)(response).pipe(Effect.mapError((cause) => requestDeviceCodeError("Failed to decode the Codex authorization approval response", cause)), Effect.map((payload) => ({
231
+ authorizationCode: payload.authorization_code,
232
+ codeVerifier: payload.code_verifier,
233
+ })))));
234
+ });
235
+ const exchangeAuthorizationCode = Effect.fn("CodexAuth.exchangeAuthorizationCode")(function* (authorization) {
236
+ const response = yield* HttpClientRequest.post(TOKEN_URL).pipe(HttpClientRequest.bodyUrlParams({
237
+ grant_type: "authorization_code",
238
+ code: authorization.authorizationCode,
239
+ redirect_uri: DEVICE_REDIRECT_URI,
240
+ client_id: CLIENT_ID,
241
+ code_verifier: authorization.codeVerifier,
242
+ }), httpClient.execute, Effect.mapError((cause) => tokenExchangeError("Failed to exchange the Codex authorization code", cause)));
243
+ const payload = yield* HttpClientResponse.schemaBodyJson(TokenResponseSchema)(response).pipe(Effect.mapError((cause) => tokenExchangeError("Failed to decode the Codex token exchange response", cause)));
244
+ return toTokenDataFromResponse(payload);
245
+ });
246
+ const refreshToken = Effect.fn("CodexAuth.refreshToken")(function* (refresh) {
247
+ const response = yield* HttpClientRequest.post(TOKEN_URL).pipe(HttpClientRequest.bodyUrlParams({
248
+ grant_type: "refresh_token",
249
+ refresh_token: refresh,
250
+ client_id: CLIENT_ID,
251
+ }), httpClient.execute, Effect.mapError((cause) => refreshTokenError("Failed to refresh the Codex access token", cause)));
252
+ const payload = yield* HttpClientResponse.schemaBodyJson(TokenResponseSchema)(response).pipe(Effect.mapError((cause) => refreshTokenError("Failed to decode the Codex refresh token response", cause)));
253
+ return toTokenDataFromResponse(payload);
254
+ });
255
+ return CodexAuth.of({
256
+ get: semaphore.withPermit(getNoLock),
257
+ authenticate: semaphore.withPermit(authenticateNoLock),
258
+ logout: semaphore.withPermit(Effect.uninterruptible(clearToken)),
259
+ });
260
+ });
261
+ static layer = Layer.effect(CodexAuth, CodexAuth.make);
262
+ static layerClientNoDeps = Layer.effect(HttpClient.HttpClient, Effect.gen(function* () {
263
+ const auth = yield* CodexAuth;
264
+ const httpClient = yield* HttpClient.HttpClient;
265
+ const injectAuthHeaders = (request) => auth.get.pipe(Effect.map((token) => applyTokenHeaders(request, token)), Effect.orDie);
266
+ return httpClient.pipe(HttpClient.mapRequestEffect(injectAuthHeaders));
267
+ }));
268
+ static layerClient = this.layerClientNoDeps.pipe(Layer.provide(CodexAuth.layer));
269
+ }
270
+ //# sourceMappingURL=CodexAuth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CodexAuth.js","sourceRoot":"","sources":["../src/CodexAuth.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=CodexAuth.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CodexAuth.test.d.ts","sourceRoot":"","sources":["../src/CodexAuth.test.ts"],"names":[],"mappings":""}