@kamilio/wire 0.1.6 → 0.1.7

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 (67) hide show
  1. package/README.md +31 -1
  2. package/dist/executable.d.ts.map +1 -1
  3. package/dist/executable.js +3 -2
  4. package/dist/executable.js.map +1 -1
  5. package/node_modules/provider-asana/dist/asana-project.d.ts +6 -0
  6. package/node_modules/provider-asana/dist/asana-project.d.ts.map +1 -1
  7. package/node_modules/provider-asana/dist/asana-task.d.ts +6 -0
  8. package/node_modules/provider-asana/dist/asana-task.d.ts.map +1 -1
  9. package/node_modules/provider-asana/dist/index.d.ts +12 -0
  10. package/node_modules/provider-asana/dist/index.d.ts.map +1 -1
  11. package/node_modules/provider-chatgpt/dist/chatgpt.d.ts +6 -0
  12. package/node_modules/provider-chatgpt/dist/chatgpt.d.ts.map +1 -1
  13. package/node_modules/provider-chatgpt/dist/chatgpt.js +24 -47
  14. package/node_modules/provider-chatgpt/dist/chatgpt.js.map +1 -1
  15. package/node_modules/provider-chatgpt/dist/client.d.ts +20 -0
  16. package/node_modules/provider-chatgpt/dist/client.d.ts.map +1 -0
  17. package/node_modules/provider-chatgpt/dist/client.js +85 -0
  18. package/node_modules/provider-chatgpt/dist/client.js.map +1 -0
  19. package/node_modules/provider-chatgpt/dist/cooldown.d.ts +19 -0
  20. package/node_modules/provider-chatgpt/dist/cooldown.d.ts.map +1 -0
  21. package/node_modules/provider-chatgpt/dist/cooldown.js +55 -0
  22. package/node_modules/provider-chatgpt/dist/cooldown.js.map +1 -0
  23. package/node_modules/provider-chatgpt/dist/download.d.ts +3 -0
  24. package/node_modules/provider-chatgpt/dist/download.d.ts.map +1 -0
  25. package/node_modules/provider-chatgpt/dist/download.js +329 -0
  26. package/node_modules/provider-chatgpt/dist/download.js.map +1 -0
  27. package/node_modules/provider-chatgpt/dist/index.d.ts +6 -0
  28. package/node_modules/provider-chatgpt/dist/index.d.ts.map +1 -1
  29. package/node_modules/provider-chatgpt/src/chatgpt.ts +21 -46
  30. package/node_modules/provider-chatgpt/src/client.ts +80 -0
  31. package/node_modules/provider-chatgpt/src/cooldown.ts +64 -0
  32. package/node_modules/provider-chatgpt/src/download.ts +301 -0
  33. package/node_modules/provider-gmail/dist/gmail.d.ts +6 -0
  34. package/node_modules/provider-gmail/dist/gmail.d.ts.map +1 -1
  35. package/node_modules/provider-gmail/dist/index.d.ts +6 -0
  36. package/node_modules/provider-gmail/dist/index.d.ts.map +1 -1
  37. package/node_modules/provider-google-docs/dist/google-docs.d.ts +6 -0
  38. package/node_modules/provider-google-docs/dist/google-docs.d.ts.map +1 -1
  39. package/node_modules/provider-google-docs/dist/google-forms.d.ts +6 -0
  40. package/node_modules/provider-google-docs/dist/google-forms.d.ts.map +1 -1
  41. package/node_modules/provider-google-docs/dist/index.d.ts +12 -0
  42. package/node_modules/provider-google-docs/dist/index.d.ts.map +1 -1
  43. package/node_modules/provider-notion/dist/index.d.ts +6 -0
  44. package/node_modules/provider-notion/dist/index.d.ts.map +1 -1
  45. package/node_modules/provider-notion/dist/notion.d.ts +6 -0
  46. package/node_modules/provider-notion/dist/notion.d.ts.map +1 -1
  47. package/node_modules/provider-slack/dist/index.d.ts +6 -0
  48. package/node_modules/provider-slack/dist/index.d.ts.map +1 -1
  49. package/node_modules/provider-slack/dist/slack.d.ts +6 -0
  50. package/node_modules/provider-slack/dist/slack.d.ts.map +1 -1
  51. package/node_modules/provider-zoom/dist/index.d.ts +6 -0
  52. package/node_modules/provider-zoom/dist/index.d.ts.map +1 -1
  53. package/node_modules/provider-zoom/dist/zoom-hub.d.ts +6 -0
  54. package/node_modules/provider-zoom/dist/zoom-hub.d.ts.map +1 -1
  55. package/node_modules/wire-core/dist/core/model.d.ts +6 -0
  56. package/node_modules/wire-core/dist/core/model.d.ts.map +1 -1
  57. package/node_modules/wire-core/dist/index.d.ts +1 -1
  58. package/node_modules/wire-core/dist/index.d.ts.map +1 -1
  59. package/node_modules/wire-core/dist/operations.d.ts +1 -0
  60. package/node_modules/wire-core/dist/operations.d.ts.map +1 -1
  61. package/node_modules/wire-core/dist/operations.js +25 -6
  62. package/node_modules/wire-core/dist/operations.js.map +1 -1
  63. package/node_modules/wire-core/src/core/model.ts +8 -0
  64. package/node_modules/wire-core/src/index.ts +1 -1
  65. package/node_modules/wire-core/src/operations.ts +23 -6
  66. package/package.json +1 -1
  67. package/src/executable.ts +3 -2
package/README.md CHANGED
@@ -37,7 +37,7 @@ Tracking lives in `~/.wire` by default. Run `wire init` inside a project to trac
37
37
  | Asana | Tasks | One-way |
38
38
  | Slack | Messages and threads | One-way |
39
39
  | Gmail | Email threads | One-way |
40
- | ChatGPT | Conversations | One-way |
40
+ | ChatGPT | Conversations, whole history, projects and files | One-way |
41
41
  | Zoom | Docs and meeting transcripts | One-way |
42
42
 
43
43
  Two-way syncs pull remote changes and push local Markdown edits back to the source. One-way syncs only refresh the local file.
@@ -59,6 +59,36 @@ wire watch <file> # sync a file whenever it changes
59
59
 
60
60
  Run `wire --help` for the full CLI.
61
61
 
62
+ ### ChatGPT archives
63
+
64
+ ```sh
65
+ wire chatgpt login
66
+ wire download https://chatgpt.com/
67
+ wire download https://chatgpt.com/g/g-p-6a9702085aa081919400a53261afae49/project
68
+ ```
69
+
70
+ The root URL exports to `chatgpt/index.md`, with separate account, project, conversation,
71
+ and Library directories. It paginates active, archived, and starred chats and all
72
+ accessible projects, including shared projects. Each conversation includes readable
73
+ Markdown plus the full returned JSON, preserving alternate branches, tool messages,
74
+ citations, and attachment references. Project instructions, source metadata, canvases,
75
+ and downloadable attachments and Library files are saved too. Project URLs export
76
+ only that project's content under `chatgpt/projects/<id>/`, with `export.md` as the index.
77
+
78
+ `manifest.json` records completed resources, file hashes, unavailable accounts, errors,
79
+ and cooldowns. Requests run sequentially. HTTP 429 and transient server failures honor
80
+ `Retry-After` (seconds or HTTP dates, adjusted for server clock skew); without a valid
81
+ header, retries use 1, 2, 4, and 8 second backoffs. The manifest records the precise
82
+ retry deadline and whether it came from the server or fallback policy. After five
83
+ rate-limited attempts the export stops making requests, retains completed files, and
84
+ reports a partial result with the earliest retry time. Run the command again to refresh
85
+ the same ID-based paths; files no longer returned by the server are not deleted.
86
+
87
+ Exports never include session credentials. Deleted chats, expired assets, inaccessible
88
+ workspaces, and the contents of external linked sources cannot be recovered by this
89
+ export; available source metadata and download failures remain in the archive.
90
+ Whole-history and project exports are one-off downloads, not tracked two-way syncs.
91
+
62
92
  ## MCP
63
93
 
64
94
  `wire-mcp` exposes the same tools to MCP clients over stdio:
@@ -1 +1 @@
1
- {"version":3,"file":"executable.d.ts","sourceRoot":"","sources":["../src/executable.ts"],"names":[],"mappings":"AAQA,OAAO,EAAgZ,KAAK,eAAe,EAAE,MAAM,WAAW,CAAC;AAmD/b,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,EAAE,OAAO;;CAAuB,yCAoE1H"}
1
+ {"version":3,"file":"executable.d.ts","sourceRoot":"","sources":["../src/executable.ts"],"names":[],"mappings":"AAQA,OAAO,EAAgZ,KAAK,eAAe,EAAE,MAAM,WAAW,CAAC;AAmD/b,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,EAAE,OAAO;;CAAuB,yCAqE1H"}
@@ -1,5 +1,5 @@
1
1
  import { existsSync, readFileSync, statSync } from "node:fs";
2
- import { writeFile } from "node:fs/promises";
2
+ import { mkdir, writeFile } from "node:fs/promises";
3
3
  import { dirname, isAbsolute, join, resolve } from "node:path";
4
4
  import { createRoot } from "./adapters/root.js";
5
5
  import { composeAuth } from "./auth.js";
@@ -88,7 +88,8 @@ export function createExecutableRoot(environment, currentDirectory, options = {
88
88
  exists: async (path) => existsSync(path),
89
89
  isFile: async (path) => existsSync(path) && statSync(path).isFile(),
90
90
  readText: runtime.filesystem.readText,
91
- writeText: (path, contents) => writeFile(path, contents, "utf8"),
91
+ writeText: async (path, contents) => { await mkdir(dirname(path), { recursive: true }); await writeFile(path, contents, "utf8"); },
92
+ writeBytes: async (path, contents) => { await mkdir(dirname(path), { recursive: true }); await writeFile(path, contents); },
92
93
  },
93
94
  workspace: {
94
95
  configuredRoot: configuredWireRoot,
@@ -1 +1 @@
1
- {"version":3,"file":"executable.js","sourceRoot":"","sources":["../src/executable.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"executable.js","sourceRoot":"","sources":["../src/executable.ts"],"names":[],"mappings":"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"}
@@ -14,6 +14,12 @@ export declare const asanaProjectService: Readonly<{
14
14
  markdown: string;
15
15
  data: JsonValue;
16
16
  }>>;
17
+ download?(input: RuntimeCapabilities, url: string, source: Readonly<{
18
+ [key: string]: JsonValue;
19
+ service: string;
20
+ identifier: string;
21
+ type: import("wire-core").ResourceType;
22
+ }>, write: import("wire-core").DownloadWriter): Promise<import("wire-core").DownloadedDocument | null>;
17
23
  synchronize?(input: RuntimeCapabilities, url: string, source: Readonly<{
18
24
  [key: string]: JsonValue;
19
25
  service: string;
@@ -1 +1 @@
1
- {"version":3,"file":"asana-project.d.ts","sourceRoot":"","sources":["../src/asana-project.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAA+B,SAAS,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAChF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AA6KrD,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;EA2B9B,CAAC"}
1
+ {"version":3,"file":"asana-project.d.ts","sourceRoot":"","sources":["../src/asana-project.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAA+B,SAAS,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAChF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AA6KrD,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2B9B,CAAC"}
@@ -14,6 +14,12 @@ export declare const asanaTaskService: Readonly<{
14
14
  markdown: string;
15
15
  data: JsonValue;
16
16
  }>>;
17
+ download?(input: RuntimeCapabilities, url: string, source: Readonly<{
18
+ [key: string]: JsonValue;
19
+ service: string;
20
+ identifier: string;
21
+ type: import("wire-core").ResourceType;
22
+ }>, write: import("wire-core").DownloadWriter): Promise<import("wire-core").DownloadedDocument | null>;
17
23
  synchronize?(input: RuntimeCapabilities, url: string, source: Readonly<{
18
24
  [key: string]: JsonValue;
19
25
  service: string;
@@ -1 +1 @@
1
- {"version":3,"file":"asana-task.d.ts","sourceRoot":"","sources":["../src/asana-task.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAc,SAAS,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAkErD,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;EAuB3B,CAAC"}
1
+ {"version":3,"file":"asana-task.d.ts","sourceRoot":"","sources":["../src/asana-task.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAc,SAAS,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAkErD,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuB3B,CAAC"}
@@ -17,6 +17,12 @@ export declare const asanaProvider: Readonly<{
17
17
  markdown: string;
18
18
  data: import("wire-core").JsonValue;
19
19
  }>>;
20
+ download?(input: import("wire-core").RuntimeCapabilities, url: string, source: Readonly<{
21
+ [key: string]: import("wire-core").JsonValue;
22
+ service: string;
23
+ identifier: string;
24
+ type: import("wire-core").ResourceType;
25
+ }>, write: import("wire-core").DownloadWriter): Promise<import("wire-core").DownloadedDocument | null>;
20
26
  synchronize?(input: import("wire-core").RuntimeCapabilities, url: string, source: Readonly<{
21
27
  [key: string]: import("wire-core").JsonValue;
22
28
  service: string;
@@ -42,6 +48,12 @@ export declare const asanaProvider: Readonly<{
42
48
  markdown: string;
43
49
  data: import("wire-core").JsonValue;
44
50
  }>>;
51
+ download?(input: import("wire-core").RuntimeCapabilities, url: string, source: Readonly<{
52
+ [key: string]: import("wire-core").JsonValue;
53
+ service: string;
54
+ identifier: string;
55
+ type: import("wire-core").ResourceType;
56
+ }>, write: import("wire-core").DownloadWriter): Promise<import("wire-core").DownloadedDocument | null>;
45
57
  synchronize?(input: import("wire-core").RuntimeCapabilities, url: string, source: Readonly<{
46
58
  [key: string]: import("wire-core").JsonValue;
47
59
  service: string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,aAAa,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtI,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC/E,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAExB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,aAAa,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtI,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC/E,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAExB,CAAC"}
@@ -14,6 +14,12 @@ export declare const chatgptService: Readonly<{
14
14
  markdown: string;
15
15
  data: JsonValue;
16
16
  }>>;
17
+ download?(input: RuntimeCapabilities, url: string, source: Readonly<{
18
+ [key: string]: JsonValue;
19
+ service: string;
20
+ identifier: string;
21
+ type: import("wire-core").ResourceType;
22
+ }>, write: import("wire-core").DownloadWriter): Promise<import("wire-core").DownloadedDocument | null>;
17
23
  synchronize?(input: RuntimeCapabilities, url: string, source: Readonly<{
18
24
  [key: string]: JsonValue;
19
25
  service: string;
@@ -1 +1 @@
1
- {"version":3,"file":"chatgpt.d.ts","sourceRoot":"","sources":["../src/chatgpt.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAA+B,SAAS,EAAE,MAAM,WAAW,CAAC;AACxE,OAAO,KAAK,EAAU,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAoJ7D,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;EAyBzB,CAAC"}
1
+ {"version":3,"file":"chatgpt.d.ts","sourceRoot":"","sources":["../src/chatgpt.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAA+B,SAAS,EAAE,MAAM,WAAW,CAAC;AACxE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAoIrD,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgBzB,CAAC"}
@@ -1,22 +1,6 @@
1
1
  import { defineService } from "wire-core";
2
- function chatgptAuthError() {
3
- return new Error("ChatGPT authentication is missing or expired. Run `wire chatgpt login` once; other commands reuse saved cookies.");
4
- }
5
- function cookieHeader(cookies) {
6
- return cookies.map((cookie) => `${cookie.name}=${cookie.value}`).join("; ");
7
- }
8
- function headers(cookies, referer) {
9
- return {
10
- "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36",
11
- "sec-ch-ua": '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
12
- "sec-ch-ua-mobile": "?0",
13
- "sec-ch-ua-platform": '"macOS"',
14
- "oai-device-id": cookies.find((cookie) => cookie.name === "oai-did").value,
15
- "oai-language": "en-US",
16
- referer,
17
- cookie: cookieHeader(cookies),
18
- };
19
- }
2
+ import { connectChatgpt, object } from "./client.js";
3
+ import { downloadChatgpt } from "./download.js";
20
4
  function formatUpdateTime(value) {
21
5
  if (typeof value === "string")
22
6
  return value;
@@ -26,20 +10,24 @@ function orderedMessages(conversation) {
26
10
  const mapping = conversation["mapping"];
27
11
  if (typeof conversation["current_node"] === "string") {
28
12
  const path = [];
13
+ const visited = new Set();
29
14
  let nodeId = conversation["current_node"];
30
15
  while (nodeId !== null) {
16
+ if (visited.has(nodeId) || mapping[nodeId] === undefined)
17
+ throw new Error("Invalid ChatGPT conversation branch");
18
+ visited.add(nodeId);
31
19
  const node = mapping[nodeId];
32
20
  const message = node["message"];
33
- if (message !== null)
21
+ if (message != null)
34
22
  path.push(message);
35
- nodeId = node["parent"];
23
+ nodeId = typeof node["parent"] === "string" ? node["parent"] : null;
36
24
  }
37
25
  return path.reverse();
38
26
  }
39
27
  const messages = [];
40
28
  for (const node of Object.values(mapping)) {
41
29
  const message = node["message"];
42
- if (message !== null)
30
+ if (message != null)
43
31
  messages.push(message);
44
32
  }
45
33
  messages.sort((left, right) => {
@@ -158,33 +146,22 @@ function fetchedConversation(conversation) {
158
146
  }
159
147
  export const chatgptService = defineService({
160
148
  name: "chatgpt",
161
- matches: (url) => (url.hostname === "chatgpt.com" || url.hostname === "chat.openai.com") && /^\/c\/[^/]+\/?$/.test(url.pathname),
162
- parse: (url) => Object.freeze({ service: "chatgpt", identifier: /^\/c\/([^/]+)\/?$/.exec(url.pathname)[1], type: "message-thread" }),
149
+ matches: (url) => (url.hostname === "chatgpt.com" || url.hostname === "chat.openai.com") && (url.pathname === "/" || /^\/c\/[^/]+\/?$/.test(url.pathname) || /^\/g\/g-p-[^/]+\/project\/?$/.test(url.pathname) || /^\/g\/[^/]+\/c\/[^/]+\/?$/.test(url.pathname)),
150
+ parse: (url) => {
151
+ if (url.pathname === "/")
152
+ return Object.freeze({ service: "chatgpt", identifier: "history", type: "project" });
153
+ const project = /^\/g\/(g-p-[^/]+)\/project\/?$/.exec(url.pathname);
154
+ if (project !== null)
155
+ return Object.freeze({ service: "chatgpt", identifier: project[1], type: "project" });
156
+ return Object.freeze({ service: "chatgpt", identifier: /\/c\/([^/]+)\/?$/.exec(url.pathname)[1], type: "message-thread" });
157
+ },
158
+ download: (runtime, url, source, write) => downloadChatgpt(runtime, url, source, write, conversationMarkdown),
163
159
  fetch: async (runtime, url, source) => {
164
- const cookies = await runtime.cookies.loadSaved("chatgpt");
165
- if (cookies === null)
166
- throw chatgptAuthError();
167
- const sessionHeaders = headers(cookies, "https://chatgpt.com/");
168
- const sessionResponse = await runtime.http.request("https://chatgpt.com/api/auth/session", { headers: sessionHeaders });
169
- const sessionText = await sessionResponse.text();
170
- if (!sessionText.startsWith("{"))
171
- throw chatgptAuthError();
172
- const session = JSON.parse(sessionText);
173
- if ("error" in session)
174
- throw chatgptAuthError();
175
- if (session["account"] === undefined || session["accessToken"] === undefined)
176
- throw chatgptAuthError();
177
- const account = session["account"];
178
- const conversationHeaders = {
179
- ...sessionHeaders,
180
- authorization: `Bearer ${session["accessToken"]}`,
181
- "chatgpt-account-id": account["id"],
182
- referer: url,
183
- };
184
- const conversationResponse = await runtime.http.request(`https://chatgpt.com/backend-api/conversation/${encodeURIComponent(source.identifier)}`, { headers: conversationHeaders });
185
- if (!conversationResponse.ok)
186
- throw new Error(`ChatGPT conversation download failed. Run \`wire chatgpt login\`. ${await conversationResponse.text()}`);
187
- return fetchedConversation(await conversationResponse.json());
160
+ if (source.type === "project")
161
+ throw new Error("Use `wire download <url>` to export ChatGPT history or projects as a directory.");
162
+ const session = await connectChatgpt(runtime, url);
163
+ const conversation = await session.forAccount(session.accountId).json(`/backend-api/conversation/${encodeURIComponent(source.identifier)}`);
164
+ return fetchedConversation(object(conversation));
188
165
  },
189
166
  });
190
167
  //# sourceMappingURL=chatgpt.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chatgpt.js","sourceRoot":"","sources":["../src/chatgpt.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chatgpt.js","sourceRoot":"","sources":["../src/chatgpt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAG1C,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhD,SAAS,gBAAgB,CAAC,KAAgB;IACxC,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5C,OAAO,IAAI,IAAI,CAAE,KAAgB,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;AAC1D,CAAC;AAED,SAAS,eAAe,CAAC,YAAwB;IAC/C,MAAM,OAAO,GAAG,YAAY,CAAC,SAAS,CAAe,CAAC;IACtD,IAAI,OAAO,YAAY,CAAC,cAAc,CAAC,KAAK,QAAQ,EAAE,CAAC;QACrD,MAAM,IAAI,GAAiB,EAAE,CAAC;QAC9B,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;QAClC,IAAI,MAAM,GAAG,YAAY,CAAC,cAAc,CAAkB,CAAC;QAC3D,OAAO,MAAM,KAAK,IAAI,EAAE,CAAC;YACvB,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,SAAS;gBAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;YACjH,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACpB,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAe,CAAC;YAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAsB,CAAC;YACrD,IAAI,OAAO,IAAI,IAAI;gBAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACxC,MAAM,GAAG,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACtE,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;IACxB,CAAC;IACD,MAAM,QAAQ,GAAiB,EAAE,CAAC;IAClC,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;QAC1C,MAAM,OAAO,GAAI,IAAmB,CAAC,SAAS,CAAsB,CAAC;QACrE,IAAI,OAAO,IAAI,IAAI;YAAE,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC9C,CAAC;IACD,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAkB,CAAC;QACtD,MAAM,SAAS,GAAG,KAAK,CAAC,aAAa,CAAkB,CAAC;QACxD,MAAM,OAAO,GAAG,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;QACjD,MAAM,QAAQ,GAAG,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACpD,IAAI,OAAO,KAAK,QAAQ;YAAE,OAAO,OAAO,GAAG,QAAQ,CAAC;QACpD,OAAQ,IAAI,CAAC,IAAI,CAAY,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAW,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;IACH,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,cAAc,CAAC,KAAiB;IACvC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,OAAO,CAAyB,EAAE,CAAC;QAC1D,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAC1C,IAAK,IAAmB,CAAC,cAAc,CAAC,KAAK,qBAAqB;YAAE,KAAK,CAAC,IAAI,CAAE,IAAmB,CAAC,MAAM,CAAW,CAAC,CAAC;aACvH,IAAK,IAAmB,CAAC,cAAc,CAAC,KAAK,MAAM;YAAE,KAAK,CAAC,IAAI,CAAE,IAAmB,CAAC,MAAM,CAAW,CAAC,CAAC;IAC/G,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;AACnC,CAAC;AAED,SAAS,sBAAsB,CAAC,KAAiB;IAC/C,MAAM,WAAW,GAAG,KAAK,CAAC,cAAc,CAAC,CAAC;IAC1C,OAAO,WAAW,KAAK,UAAU,IAAI,WAAW,KAAK,iBAAiB,IAAI,WAAW,KAAK,wBAAwB,IAAI,WAAW,KAAK,WAAW,IAAI,KAAK,CAAC,eAAe,CAAC,KAAK,SAAS,CAAC;AAC5L,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAa;IACzC,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC9B,IAAI,4CAA4C,CAAC,IAAI,CAAC,QAAQ,CAAC;QAAE,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAe,CAAC;IAC3G,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,cAAc,CAAC,OAAmB;IACzC,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,CAAe,CAAC;IACjD,MAAM,IAAI,GAAI,OAAO,CAAC,QAAQ,CAAgB,CAAC,MAAM,CAAW,CAAC;IACjE,IAAI,OAAO,CAAC,cAAc,CAAC,KAAK,MAAM,EAAE,CAAC;QACvC,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,OAAO,CAAyB,EAAE,CAAC;YAC5D,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;gBAC7B,IAAI,QAAQ,CAAC,UAAU,CAAC,mCAAmC,CAAC,IAAI,QAAQ,CAAC,UAAU,CAAC,oCAAoC,CAAC,EAAE,CAAC;oBAC1H,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAe,CAAC,CAAC,CAAC;gBACjE,CAAC;qBAAM,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;oBAChC,MAAM,OAAO,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC;oBAC/C,IAAI,OAAO,KAAK,IAAI,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC;wBAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC7E,CAAC;;oBAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1B,CAAC;iBAAM,IAAI,IAAI,KAAK,WAAW,IAAI,CAAC,sBAAsB,CAAC,IAAkB,CAAC;gBAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;QACnH,CAAC;QACD,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;IACnC,CAAC;IACD,IAAI,OAAO,CAAC,cAAc,CAAC,KAAK,iBAAiB;QAAE,OAAO,cAAc,CAAC,OAAO,CAAC,CAAC;IAClF,IAAI,OAAO,CAAC,cAAc,CAAC,KAAK,MAAM;QAAE,OAAO,OAAO,CAAC,MAAM,CAAW,CAAC;IACzE,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;AACjC,CAAC;AAED,SAAS,YAAY,CAAC,OAAmB;IACvC,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,CAAe,CAAC;IACjD,MAAM,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACvC,IAAK,OAAO,CAAC,QAAQ,CAAgB,CAAC,MAAM,CAAC,KAAK,WAAW,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,KAAK;QAAE,OAAO,EAAE,CAAC;IAC3H,IAAI,sBAAsB,CAAC,OAAO,CAAC;QAAE,OAAO,EAAE,CAAC;IAC/C,MAAM,IAAI,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;IAC5C,MAAM,IAAI,GAAI,OAAO,CAAC,QAAQ,CAAgB,CAAC,MAAM,CAAW,CAAC;IACjE,IAAI,IAAI,KAAK,WAAW,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC;QACxG,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAe,CAAC;QAC9C,IAAI,sBAAsB,CAAC,MAAM,CAAC;YAAE,OAAO,EAAE,CAAC;IAChD,CAAC;IACD,OAAO,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;AACvG,CAAC;AAED,SAAS,oBAAoB,CAAC,YAAwB;IACpD,MAAM,GAAG,GAAG,yBAAyB,YAAY,CAAC,iBAAiB,CAAW,EAAE,CAAC;IACjF,MAAM,KAAK,GAAG;QACZ,KAAK,YAAY,CAAC,OAAO,CAAW,EAAE;QACtC,EAAE;QACF,qBAAqB,GAAG,GAAG;QAC3B,EAAE;KACH,CAAC;IACF,MAAM,OAAO,GAAyB,EAAE,CAAC;IACzC,KAAK,MAAM,OAAO,IAAI,eAAe,CAAC,YAAY,CAAC,EAAE,CAAC;QACpD,MAAM,IAAI,GAAK,OAAO,CAAC,QAAQ,CAAgB,CAAC,MAAM,CAAY,CAAC;QACnE,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,MAAM;YAAE,SAAS;QACnD,MAAM,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;QACnC,IAAI,IAAI,KAAK,EAAE;YAAE,SAAS;QAC1B,MAAM,KAAK,GAAG,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/H,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC,CAAC,CAAC,KAAK,KAAK;YAAE,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;;YAC3G,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACrC,CAAC;IACD,KAAK,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACtC,KAAK,CAAC,IAAI,CAAC,MAAM,KAAK,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;IACzD,CAAC;IACD,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC;AAC3C,CAAC;AAED,SAAS,mBAAmB,CAAC,YAAwB;IACnD,MAAM,OAAO,GAAG,gBAAgB,CAAC,YAAY,CAAC,aAAa,CAAc,CAAC,CAAC;IAC3E,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,KAAK,EAAE,YAAY,CAAC,OAAO,CAAW;QACtC,QAAQ,EAAE,oBAAoB,CAAC,YAAY,CAAC;QAC5C,IAAI,EAAE,EAAE,eAAe,EAAE,YAAY,CAAC,iBAAiB,CAAW,EAAE,WAAW,EAAE,OAAO,EAAE;KAC3F,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,aAAa,CAAsB;IAC/D,IAAI,EAAE,SAAS;IACf,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa,IAAI,GAAG,CAAC,QAAQ,KAAK,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,KAAK,GAAG,IAAI,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,8BAA8B,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,2BAA2B,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACjQ,KAAK,EAAE,CAAC,GAAG,EAAE,EAAE;QACb,IAAI,GAAG,CAAC,QAAQ,KAAK,GAAG;YAAE,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;QAC/G,MAAM,OAAO,GAAG,gCAAgC,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACpE,IAAI,OAAO,KAAK,IAAI;YAAE,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC,CAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;QAC7G,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAE,CAAC,CAAC,CAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC,CAAC;IAC/H,CAAC;IACD,QAAQ,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,oBAAoB,CAAC;IAC7G,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE;QACpC,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,iFAAiF,CAAC,CAAC;QAClI,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QACnD,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,6BAA6B,kBAAkB,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QAC5I,OAAO,mBAAmB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;IACnD,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1,20 @@
1
+ import type { JsonObject, JsonValue, RuntimeCapabilities } from "wire-core";
2
+ import { type Cooldown } from "./cooldown.js";
3
+ export declare function authError(): Error;
4
+ export declare function object(value: JsonValue | undefined): JsonObject;
5
+ export declare function text(value: JsonValue | undefined): string | undefined;
6
+ export declare class ChatgptRequestError extends Error {
7
+ readonly status: number;
8
+ readonly endpoint: string;
9
+ constructor(status: number, endpoint: string);
10
+ }
11
+ export declare function connectChatgpt(runtime: RuntimeCapabilities, referer: string, onCooldown?: (value: Cooldown) => Promise<void>): Promise<{
12
+ accountId: string;
13
+ forAccount: (id: string) => {
14
+ id: string;
15
+ json: (endpoint: string) => Promise<JsonValue>;
16
+ bytes: (value: string) => Promise<Uint8Array>;
17
+ };
18
+ }>;
19
+ export type ChatgptClient = ReturnType<Awaited<ReturnType<typeof connectChatgpt>>["forAccount"]>;
20
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAC5E,OAAO,EAA0B,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEtE,wBAAgB,SAAS,IAAI,KAAK,CAEjC;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,GAAG,UAAU,CAG/D;AAED,wBAAgB,IAAI,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAErE;AAED,qBAAa,mBAAoB,SAAQ,KAAK;IAChC,QAAQ,CAAC,MAAM,EAAE,MAAM;IAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM;gBAAzC,MAAM,EAAE,MAAM,EAAW,QAAQ,EAAE,MAAM;CAG/D;AAED,wBAAsB,cAAc,CAAC,OAAO,EAAE,mBAAmB,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,OAAO,CAAC,IAAI,CAAC;;qBA0BzG,MAAM;;yBAEE,MAAM,KAAG,OAAO,CAAC,SAAS,CAAC;uBAM7B,MAAM,KAAG,OAAO,CAAC,UAAU,CAAC;;GAqB3D;AAED,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC"}
@@ -0,0 +1,85 @@
1
+ import { createChatgptRequester } from "./cooldown.js";
2
+ export function authError() {
3
+ return new Error("ChatGPT authentication is missing or expired. Run `wire chatgpt login` once; other commands reuse saved cookies.");
4
+ }
5
+ export function object(value) {
6
+ if (value === null || typeof value !== "object" || Array.isArray(value))
7
+ throw new Error("Unexpected ChatGPT object response");
8
+ return value;
9
+ }
10
+ export function text(value) {
11
+ return typeof value === "string" && value !== "" ? value : undefined;
12
+ }
13
+ export class ChatgptRequestError extends Error {
14
+ status;
15
+ endpoint;
16
+ constructor(status, endpoint) {
17
+ super(`ChatGPT request failed (${status}): ${endpoint}${status === 401 || status === 403 ? ". Run `wire chatgpt login`." : ""}`);
18
+ this.status = status;
19
+ this.endpoint = endpoint;
20
+ }
21
+ }
22
+ export async function connectChatgpt(runtime, referer, onCooldown) {
23
+ const cookies = await runtime.cookies.loadSaved("chatgpt");
24
+ if (cookies === null)
25
+ throw authError();
26
+ const device = cookies.find((cookie) => cookie.name === "oai-did")?.value;
27
+ const headers = {
28
+ "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36",
29
+ "sec-ch-ua": '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
30
+ "sec-ch-ua-mobile": "?0",
31
+ "sec-ch-ua-platform": '"macOS"',
32
+ ...(device === undefined ? {} : { "oai-device-id": device }),
33
+ "oai-language": "en-US",
34
+ referer,
35
+ cookie: cookies.map((cookie) => `${cookie.name}=${cookie.value}`).join("; "),
36
+ };
37
+ const response = await runtime.http.request("https://chatgpt.com/api/auth/session", { headers, signal: AbortSignal.timeout(60000), redirect: "error" });
38
+ const contents = await response.text();
39
+ if (!response.ok || !contents.trimStart().startsWith("{"))
40
+ throw authError();
41
+ const session = object(JSON.parse(contents));
42
+ if (session["error"] !== undefined || text(session["accessToken"]) === undefined || session["account"] == null)
43
+ throw authError();
44
+ const account = object(session["account"]);
45
+ const accountId = text(account["id"]);
46
+ if (accountId === undefined)
47
+ throw authError();
48
+ headers["authorization"] = `Bearer ${session["accessToken"]}`;
49
+ const request = createChatgptRequester(runtime.http, onCooldown);
50
+ const forAccount = (id) => {
51
+ const authenticated = { ...headers, "chatgpt-account-id": id };
52
+ const json = async (endpoint) => {
53
+ if (!endpoint.startsWith("/backend-api/"))
54
+ throw new Error("Invalid ChatGPT API endpoint");
55
+ const result = await request(`https://chatgpt.com${endpoint}`, authenticated, endpoint);
56
+ if (!result.ok)
57
+ throw new ChatgptRequestError(result.status, endpoint);
58
+ return await result.json();
59
+ };
60
+ const bytes = async (value) => {
61
+ let url = new URL(value, "https://chatgpt.com");
62
+ for (let redirects = 0; redirects <= 5; redirects++) {
63
+ const trusted = url.hostname === "chatgpt.com" || url.hostname.endsWith(".oaiusercontent.com") || url.hostname.endsWith(".blob.core.windows.net");
64
+ if (url.protocol !== "https:" || url.username !== "" || url.password !== "" || (url.port !== "" && url.port !== "443") || !trusted)
65
+ throw new Error("Untrusted ChatGPT file download URL");
66
+ const result = await request(url.href, url.origin === "https://chatgpt.com" ? authenticated : {}, url.origin + url.pathname);
67
+ if ([301, 302, 303, 307, 308].includes(result.status)) {
68
+ const location = result.headers.get("location");
69
+ await result.body?.cancel();
70
+ if (location === null)
71
+ throw new Error("ChatGPT file redirect is missing its destination");
72
+ url = new URL(location, url);
73
+ continue;
74
+ }
75
+ if (!result.ok)
76
+ throw new ChatgptRequestError(result.status, url.origin + url.pathname);
77
+ return new Uint8Array(await result.arrayBuffer());
78
+ }
79
+ throw new Error("Too many ChatGPT file redirects");
80
+ };
81
+ return { id, json, bytes };
82
+ };
83
+ return { accountId, forAccount };
84
+ }
85
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import type { HttpCapability } from "wire-core";
2
+ export type Cooldown = {
3
+ endpoint: string;
4
+ status: number;
5
+ attempt: number;
6
+ delay_ms: number;
7
+ retry_at: string;
8
+ source: "retry-after-seconds" | "retry-after-date" | "exponential-backoff";
9
+ };
10
+ export declare class ChatgptCooldownError extends Error {
11
+ readonly cooldown: Cooldown;
12
+ constructor(cooldown: Cooldown);
13
+ }
14
+ export declare function responseCooldown(response: Response, now: number, attempt: number, endpoint: string): Cooldown;
15
+ export declare function createChatgptRequester(http: HttpCapability, onCooldown?: (value: Cooldown) => Promise<void>, timing?: {
16
+ now: () => number;
17
+ sleep: (milliseconds: number) => Promise<void>;
18
+ }): (url: string, headers: Record<string, string>, endpoint: string) => Promise<Response>;
19
+ //# sourceMappingURL=cooldown.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cooldown.d.ts","sourceRoot":"","sources":["../src/cooldown.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAEhD,MAAM,MAAM,QAAQ,GAAG;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,qBAAqB,GAAG,kBAAkB,GAAG,qBAAqB,CAAC;CAC5E,CAAC;AAEF,qBAAa,oBAAqB,SAAQ,KAAK;IACjC,QAAQ,CAAC,QAAQ,EAAE,QAAQ;gBAAlB,QAAQ,EAAE,QAAQ;CAGxC;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,QAAQ,CAiB7G;AAED,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,cAAc,EACpB,UAAU,GAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,OAAO,CAAC,IAAI,CAAkB,EAC/D,MAAM;;0BAAkD,MAAM;CAA0B,IAI1E,KAAK,MAAM,EAAE,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,UAAU,MAAM,KAAG,OAAO,CAAC,QAAQ,CAAC,CAmBjG"}
@@ -0,0 +1,55 @@
1
+ import { setTimeout as delay } from "node:timers/promises";
2
+ export class ChatgptCooldownError extends Error {
3
+ cooldown;
4
+ constructor(cooldown) {
5
+ super(`ChatGPT is still rate-limited after ${cooldown.attempt} attempts. No further requests were sent. Retry no earlier than ${cooldown.retry_at} (${cooldown.source}).`);
6
+ this.cooldown = cooldown;
7
+ }
8
+ }
9
+ export function responseCooldown(response, now, attempt, endpoint) {
10
+ const retryAfter = response.headers.get("retry-after")?.trim();
11
+ let milliseconds = 1000 * 2 ** (attempt - 1);
12
+ let source = "exponential-backoff";
13
+ if (retryAfter !== undefined && /^\d+$/.test(retryAfter) && Number.isSafeInteger(Number(retryAfter) * 1000)) {
14
+ milliseconds = Number(retryAfter) * 1000;
15
+ source = "retry-after-seconds";
16
+ }
17
+ else if (retryAfter !== undefined && /^[A-Za-z]/.test(retryAfter) && Number.isFinite(Date.parse(retryAfter))) {
18
+ const serverDate = Date.parse(response.headers.get("date") ?? "");
19
+ milliseconds = Math.max(0, Date.parse(retryAfter) - (Number.isFinite(serverDate) ? serverDate : now));
20
+ source = "retry-after-date";
21
+ }
22
+ if (!Number.isFinite(new Date(now + milliseconds).getTime())) {
23
+ milliseconds = 1000 * 2 ** (attempt - 1);
24
+ source = "exponential-backoff";
25
+ }
26
+ return { endpoint, status: response.status, attempt, delay_ms: milliseconds, retry_at: new Date(now + milliseconds).toISOString(), source };
27
+ }
28
+ export function createChatgptRequester(http, onCooldown = async () => { }, timing = { now: () => Date.now(), sleep: (milliseconds) => delay(milliseconds) }) {
29
+ const deadlines = new Map();
30
+ let stopped;
31
+ return async (url, headers, endpoint) => {
32
+ if (stopped !== undefined)
33
+ throw stopped;
34
+ const origin = new URL(url).origin;
35
+ for (let attempt = 1;; attempt++) {
36
+ while (timing.now() < (deadlines.get(origin) ?? 0))
37
+ await timing.sleep(Math.min(2147483647, deadlines.get(origin) - timing.now()));
38
+ const response = await http.request(url, { headers, redirect: "manual", signal: AbortSignal.timeout(60000) });
39
+ if (![429, 500, 502, 503, 504].includes(response.status))
40
+ return response;
41
+ const cooldown = responseCooldown(response, timing.now(), attempt, endpoint);
42
+ deadlines.set(origin, Math.max(deadlines.get(origin) ?? 0, Date.parse(cooldown.retry_at)));
43
+ await onCooldown(cooldown);
44
+ if (attempt === 5) {
45
+ if (response.status !== 429)
46
+ return response;
47
+ await response.body?.cancel();
48
+ stopped = new ChatgptCooldownError(cooldown);
49
+ throw stopped;
50
+ }
51
+ await response.body?.cancel();
52
+ }
53
+ };
54
+ }
55
+ //# sourceMappingURL=cooldown.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cooldown.js","sourceRoot":"","sources":["../src/cooldown.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,IAAI,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAY3D,MAAM,OAAO,oBAAqB,SAAQ,KAAK;IACxB;IAArB,YAAqB,QAAkB;QACrC,KAAK,CAAC,uCAAuC,QAAQ,CAAC,OAAO,mEAAmE,QAAQ,CAAC,QAAQ,KAAK,QAAQ,CAAC,MAAM,IAAI,CAAC,CAAC;QADxJ,aAAQ,GAAR,QAAQ,CAAU;IAEvC,CAAC;CACF;AAED,MAAM,UAAU,gBAAgB,CAAC,QAAkB,EAAE,GAAW,EAAE,OAAe,EAAE,QAAgB;IACjG,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,CAAC;IAC/D,IAAI,YAAY,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;IAC7C,IAAI,MAAM,GAAuB,qBAAqB,CAAC;IACvD,IAAI,UAAU,KAAK,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC;QAC5G,YAAY,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;QACzC,MAAM,GAAG,qBAAqB,CAAC;IACjC,CAAC;SAAM,IAAI,UAAU,KAAK,SAAS,IAAI,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;QAC/G,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QAClE,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACtG,MAAM,GAAG,kBAAkB,CAAC;IAC9B,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,GAAG,GAAG,YAAY,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;QAC7D,YAAY,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;QACzC,MAAM,GAAG,qBAAqB,CAAC;IACjC,CAAC;IACD,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,IAAI,CAAC,GAAG,GAAG,YAAY,CAAC,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,CAAC;AAC9I,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,IAAoB,EACpB,aAAiD,KAAK,IAAI,EAAE,GAAE,CAAC,EAC/D,SAAS,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,CAAC,YAAoB,EAAE,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE;IAExF,MAAM,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC5C,IAAI,OAAyC,CAAC;IAC9C,OAAO,KAAK,EAAE,GAAW,EAAE,OAA+B,EAAE,QAAgB,EAAqB,EAAE;QACjG,IAAI,OAAO,KAAK,SAAS;YAAE,MAAM,OAAO,CAAC;QACzC,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;QACnC,KAAK,IAAI,OAAO,GAAG,CAAC,GAAI,OAAO,EAAE,EAAE,CAAC;YAClC,OAAO,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBAAE,MAAM,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,SAAS,CAAC,GAAG,CAAC,MAAM,CAAE,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YACpI,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC9G,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAAE,OAAO,QAAQ,CAAC;YAC1E,MAAM,QAAQ,GAAG,gBAAgB,CAAC,QAAQ,EAAE,MAAM,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;YAC7E,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC3F,MAAM,UAAU,CAAC,QAAQ,CAAC,CAAC;YAC3B,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC;gBAClB,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG;oBAAE,OAAO,QAAQ,CAAC;gBAC7C,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC;gBAC9B,OAAO,GAAG,IAAI,oBAAoB,CAAC,QAAQ,CAAC,CAAC;gBAC7C,MAAM,OAAO,CAAC;YAChB,CAAC;YACD,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC;QAChC,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { DownloadedDocument, DownloadWriter, JsonObject, RuntimeCapabilities, Source } from "wire-core";
2
+ export declare function downloadChatgpt(runtime: RuntimeCapabilities, url: string, source: Source, write: DownloadWriter, render: (conversation: JsonObject) => string): Promise<DownloadedDocument | null>;
3
+ //# sourceMappingURL=download.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"download.d.ts","sourceRoot":"","sources":["../src/download.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,cAAc,EAAE,UAAU,EAAa,mBAAmB,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAoExH,wBAAsB,eAAe,CACnC,OAAO,EAAE,mBAAmB,EAC5B,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,cAAc,EACrB,MAAM,EAAE,CAAC,YAAY,EAAE,UAAU,KAAK,MAAM,GAC3C,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAiOpC"}