@youdie006/prodex 0.2.0

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 (50) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +418 -0
  3. package/dist/banner.d.ts +5 -0
  4. package/dist/banner.js +47 -0
  5. package/dist/banner.js.map +1 -0
  6. package/dist/bundle.d.ts +15 -0
  7. package/dist/bundle.js +30 -0
  8. package/dist/bundle.js.map +1 -0
  9. package/dist/chatgpt-browser.d.ts +119 -0
  10. package/dist/chatgpt-browser.js +857 -0
  11. package/dist/chatgpt-browser.js.map +1 -0
  12. package/dist/cli.d.ts +8 -0
  13. package/dist/cli.js +3502 -0
  14. package/dist/cli.js.map +1 -0
  15. package/dist/config.d.ts +58 -0
  16. package/dist/config.js +277 -0
  17. package/dist/config.js.map +1 -0
  18. package/dist/http-mcp.d.ts +20 -0
  19. package/dist/http-mcp.js +236 -0
  20. package/dist/http-mcp.js.map +1 -0
  21. package/dist/index.d.ts +8 -0
  22. package/dist/index.js +9 -0
  23. package/dist/index.js.map +1 -0
  24. package/dist/mcp-tools.d.ts +395 -0
  25. package/dist/mcp-tools.js +167 -0
  26. package/dist/mcp-tools.js.map +1 -0
  27. package/dist/mcp.d.ts +37 -0
  28. package/dist/mcp.js +229 -0
  29. package/dist/mcp.js.map +1 -0
  30. package/dist/repo-write.d.ts +47 -0
  31. package/dist/repo-write.js +427 -0
  32. package/dist/repo-write.js.map +1 -0
  33. package/dist/repo.d.ts +27 -0
  34. package/dist/repo.js +386 -0
  35. package/dist/repo.js.map +1 -0
  36. package/dist/safe-file.d.ts +25 -0
  37. package/dist/safe-file.js +295 -0
  38. package/dist/safe-file.js.map +1 -0
  39. package/dist/schema.d.ts +402 -0
  40. package/dist/schema.js +109 -0
  41. package/dist/schema.js.map +1 -0
  42. package/dist/store.d.ts +157 -0
  43. package/dist/store.js +1402 -0
  44. package/dist/store.js.map +1 -0
  45. package/docs/claude.md +130 -0
  46. package/docs/clients.md +75 -0
  47. package/docs/http-mcp.md +223 -0
  48. package/package.json +67 -0
  49. package/scripts/release-check.mjs +436 -0
  50. package/scripts/release-pack.mjs +481 -0
@@ -0,0 +1,119 @@
1
+ export interface ChatGptBrowserOptions {
2
+ port?: number;
3
+ profileDir?: string;
4
+ url?: string;
5
+ }
6
+ export interface ChatGptBrowserLaunch {
7
+ command: string;
8
+ args: string[];
9
+ profileDir: string;
10
+ port: number;
11
+ waitForEarlyExit: (timeoutMs?: number) => Promise<ChatGptBrowserEarlyExit | undefined>;
12
+ }
13
+ export interface ChatGptBrowserEarlyExit {
14
+ code?: number | null;
15
+ signal?: NodeJS.Signals | null;
16
+ error?: string;
17
+ }
18
+ export interface ChatGptBrowserStatus {
19
+ reachable: boolean;
20
+ loggedInLikely: boolean;
21
+ hasComposer: boolean;
22
+ visibilityState?: string;
23
+ url?: string;
24
+ title?: string;
25
+ modelHints: string[];
26
+ blocker?: {
27
+ code: string;
28
+ message: string;
29
+ retryable: boolean;
30
+ next_step?: string;
31
+ };
32
+ }
33
+ export declare class ChatGptBrowserBlockerError extends Error {
34
+ readonly blocker: NonNullable<ChatGptBrowserStatus["blocker"]>;
35
+ constructor(blocker: NonNullable<ChatGptBrowserStatus["blocker"]>);
36
+ }
37
+ export interface SendChatGptPromptOptions {
38
+ port?: number;
39
+ prompt: string;
40
+ targetUrl?: string;
41
+ timeoutMs?: number;
42
+ }
43
+ export interface SendChatGptPromptResult {
44
+ url: string;
45
+ title: string;
46
+ answer: string;
47
+ modelHints: string[];
48
+ warnings: string[];
49
+ }
50
+ interface ChatGptAnswerState {
51
+ title: string;
52
+ url: string;
53
+ answer: string;
54
+ modelHints: string[];
55
+ generating: boolean;
56
+ assistantMessageCount: number;
57
+ userMessageCount: number;
58
+ textSample: string;
59
+ blockerTextSample: string;
60
+ visibleButtonLabels: string[];
61
+ }
62
+ export interface ChatGptPageTextState {
63
+ textSample: string;
64
+ blockerTextSample?: string;
65
+ visibleButtonLabels: string[];
66
+ }
67
+ export declare const CHATGPT_RUNTIME_BLOCKER_TEXT_EXCLUDED_ANCESTORS = "[data-message-author-role],script,style,noscript,[aria-hidden=\"true\"],div[role=\"textbox\"],textarea,[contenteditable=\"true\"]";
68
+ export declare const CHATGPT_COMPOSER_CANDIDATE_EXCLUDED_ANCESTORS = "[data-message-author-role],script,style,noscript,[aria-hidden=\"true\"]";
69
+ export declare const PRODEX_ACTIVE_COMPOSER_ATTRIBUTE = "data-prodex-active-composer";
70
+ export interface DevtoolsPage {
71
+ type: string;
72
+ url: string;
73
+ title: string;
74
+ webSocketDebuggerUrl: string;
75
+ }
76
+ export declare function defaultChatGptProfileDir(): string;
77
+ export declare function buildChromeLaunchArgs(options: Required<ChatGptBrowserOptions>): string[];
78
+ export declare function inferLoggedInLikely(text: string, visibleButtonLabels?: string[]): boolean;
79
+ export declare function isUsableChatGptAnswer(answer: string): boolean;
80
+ export declare function hasFreshChatGptAnswer(previousAssistantMessageCount: number, state: Pick<ChatGptAnswerState, "answer" | "assistantMessageCount" | "generating">): boolean;
81
+ export declare function hasChatGptPromptAcceptance(previous: Pick<ChatGptAnswerState, "assistantMessageCount" | "userMessageCount">, state: Pick<ChatGptAnswerState, "assistantMessageCount" | "generating" | "userMessageCount">): boolean;
82
+ export declare function chatGptBusyBlocker(generating: boolean): ChatGptBrowserStatus["blocker"] | undefined;
83
+ export declare function isLikelyChatGptSubmitButton(label: string, dataTestId: string | null): boolean;
84
+ export declare function isLikelyChatGptGeneratingControl(label: string): boolean;
85
+ export declare function detectChatGptBlocker(text: string, visibleButtonLabels?: string[]): ChatGptBrowserStatus["blocker"] | undefined;
86
+ export declare function detectChatGptPageBlocker(state: ChatGptPageTextState): ChatGptBrowserStatus["blocker"] | undefined;
87
+ export declare function inferChatGptPageLoggedInLikely(state: ChatGptPageTextState): boolean;
88
+ export declare function chatGptBlockerErrorFromAnswerState(state: {
89
+ textSample: string;
90
+ blockerTextSample?: string;
91
+ visibleButtonLabels: string[];
92
+ }): string | undefined;
93
+ export declare function chatGptBlockerFromAnswerState(state: {
94
+ textSample: string;
95
+ blockerTextSample?: string;
96
+ visibleButtonLabels: string[];
97
+ }): ChatGptBrowserStatus["blocker"] | undefined;
98
+ export declare function computePromptAcceptanceDeadline(timeoutMs: number, startedAt: number): number;
99
+ export declare function computePageDiscoveryTimeout(timeoutMs: number): number;
100
+ export declare function normalizeChatGptTargetUrl(value: string): string;
101
+ export declare function chatGptUrlsReferToSameTarget(currentUrl: string, expectedUrl: string): boolean;
102
+ export declare function selectChatGptPage(pages: DevtoolsPage[], targetUrl?: string, visibilityByPage?: Map<string, string>): DevtoolsPage | undefined;
103
+ export declare function chatGptPageSelectionBlocker(pages: DevtoolsPage[], targetUrl?: string, visibilityByPage?: Map<string, string>): ChatGptBrowserStatus["blocker"] | undefined;
104
+ export declare function assertVisibleChatGptTab(visibilityState: string | undefined, url: string, targetUrl?: string): void;
105
+ export declare function assertChatGptTargetUrlMatches(currentUrl: string, targetUrl: string): void;
106
+ export declare function assertChatGptTargetTabAvailable(targetUrl: string): void;
107
+ export declare function assertChatGptPageAvailable(): never;
108
+ export declare function assertChatGptReadyForPrompt(loggedInLikely: boolean, hasComposer: boolean): void;
109
+ export declare function chatGptVisibilityBlocker(visibilityState: string | undefined, url: string | undefined): ChatGptBrowserStatus["blocker"] | undefined;
110
+ export declare function openChatGptBrowser(options?: ChatGptBrowserOptions): ChatGptBrowserLaunch;
111
+ export declare function getChatGptBrowserStatus(options?: {
112
+ port?: number;
113
+ timeoutMs?: number;
114
+ }): Promise<ChatGptBrowserStatus>;
115
+ export declare function sendChatGptPrompt(options: SendChatGptPromptOptions): Promise<SendChatGptPromptResult>;
116
+ export declare function statusExpression(): string;
117
+ export declare function setComposerTextExpression(text: string): string;
118
+ export declare function submitExpression(): string;
119
+ export {};