browserclaw-agent 0.1.0 → 0.1.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 (52) hide show
  1. package/dist/agent-loop.d.ts +23 -15
  2. package/dist/agent-loop.d.ts.map +1 -1
  3. package/dist/agent-loop.js +55 -32
  4. package/dist/agent-loop.js.map +1 -1
  5. package/dist/config.d.ts +10 -2
  6. package/dist/config.d.ts.map +1 -1
  7. package/dist/config.js +29 -16
  8. package/dist/config.js.map +1 -1
  9. package/dist/index.d.ts +7 -16
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +3 -12
  12. package/dist/index.js.map +1 -1
  13. package/dist/lesson-store.d.ts +11 -0
  14. package/dist/lesson-store.d.ts.map +1 -0
  15. package/dist/lesson-store.js +323 -0
  16. package/dist/lesson-store.js.map +1 -0
  17. package/dist/llm.d.ts.map +1 -1
  18. package/dist/llm.js +37 -24
  19. package/dist/llm.js.map +1 -1
  20. package/dist/port-probe.d.ts +8 -0
  21. package/dist/port-probe.d.ts.map +1 -0
  22. package/dist/port-probe.js +22 -0
  23. package/dist/port-probe.js.map +1 -0
  24. package/dist/prompt-log.d.ts +17 -0
  25. package/dist/prompt-log.d.ts.map +1 -0
  26. package/dist/prompt-log.js +28 -0
  27. package/dist/prompt-log.js.map +1 -0
  28. package/dist/routes.d.ts +3 -0
  29. package/dist/routes.d.ts.map +1 -0
  30. package/dist/routes.js +227 -0
  31. package/dist/routes.js.map +1 -0
  32. package/dist/server.d.ts +2 -0
  33. package/dist/server.d.ts.map +1 -0
  34. package/dist/server.js +121 -0
  35. package/dist/server.js.map +1 -0
  36. package/dist/session-manager.d.ts +40 -0
  37. package/dist/session-manager.d.ts.map +1 -0
  38. package/dist/session-manager.js +635 -0
  39. package/dist/session-manager.js.map +1 -0
  40. package/dist/skill-generator.d.ts +5 -0
  41. package/dist/skill-generator.d.ts.map +1 -0
  42. package/dist/skill-generator.js +173 -0
  43. package/dist/skill-generator.js.map +1 -0
  44. package/dist/skill-store.d.ts +7 -0
  45. package/dist/skill-store.d.ts.map +1 -0
  46. package/dist/skill-store.js +85 -0
  47. package/dist/skill-store.js.map +1 -0
  48. package/dist/trajectory-store.d.ts +20 -0
  49. package/dist/trajectory-store.d.ts.map +1 -0
  50. package/dist/trajectory-store.js +61 -0
  51. package/dist/trajectory-store.js.map +1 -0
  52. package/package.json +6 -14
package/dist/index.d.ts CHANGED
@@ -1,18 +1,9 @@
1
- export { runAgentLoop, buildInterjectionBlock, assertNavigateUrlAllowed, assertExtractExpressionAllowed, shouldCheckTermination, } from './agent-loop.js';
2
- export type { AgentLoopOptions, PageHolder, UserChatHooks, TerminationJudgment, } from './agent-loop.js';
3
- export { createSession, getSession, getSessionResult, closeSession, closeAllSessions, sessionCount, addSSEClient, emitSSE, startCleanupLoop, stopCleanupLoop, waitForUserResponse, enqueueUserMessage, drainUserMessages, } from './session-manager.js';
4
- export { pressAndHold, detectAntiBot, enrichSnapshot, getPageText } from './skills/press-and-hold.js';
5
- export { clickCloudflareCheckbox } from './skills/cloudflare-checkbox.js';
6
- export { detectPopup, dismissPopup } from './skills/dismiss-popup.js';
7
- export { detectLoop } from './skills/loop-detection.js';
8
- export { detectPageState, shouldBlockDone } from './skills/page-state.js';
9
- export { diagnoseStuckAgent, formatRecovery } from './skills/recovery.js';
10
- export type { RecoveryStrategy } from './skills/recovery.js';
11
- export { TabManager } from './skills/tab-manager.js';
12
- export { initSkillStore, extractDomain, getSkillForDomain, getSkillsForDomains, saveSkill, } from './skill-store.js';
13
- export { initLessonStore, getLesson, saveLesson, extractDomainLessons, formatLessonForPrompt, hashTaskCategory, } from './lesson-store.js';
14
- export { llm, llmJson, llmVision, runWithLlmConfig, getAvailableProviders, getActiveProvider, getModel, sanitizeErrorText, } from './llm.js';
15
- export type { LLMRequest, TokenUsage, ProviderConfig } from './llm.js';
16
- export type { Session, SessionStatus, UserMessage, LlmProvider, LlmConfig, CreateSessionRequest, AgentActionType, AgentAction, AgentStep, AgentProgress, AgentLoopResult, SkillOutput, SkillStep, SkillMetadata, CatalogSkill, DomainSkillEntry, DomainLesson, TaskLesson, } from './types.js';
1
+ export { runAgentLoop, buildInterjectionBlock, shouldCheckTermination } from './agent-loop.js';
2
+ export type { PageHolder, UserChatHooks, AgentLoopOptions, TerminationJudgment } from './agent-loop.js';
3
+ export { defaultAgentConfig } from './config.js';
4
+ export type { AgentConfig } from './config.js';
5
+ export { runWithLlmConfig, getTokenUsage } from './llm.js';
6
+ export type { TokenUsage } from './llm.js';
7
+ export type { AgentAction, AgentActionType, AgentLoopResult, AgentProgress, AgentStep, CatalogSkill, CreateSessionRequest, DomainLesson, DomainSkillEntry, LlmConfig, LlmProvider, Session, SessionStatus, SkillMetadata, SkillOutput, SkillStep, TaskLesson, UserMessage, } from './types.js';
17
8
  export { HttpError, LlmParseError } from './types.js';
18
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,sBAAsB,EACtB,wBAAwB,EACxB,8BAA8B,EAC9B,sBAAsB,GACvB,MAAM,iBAAiB,CAAC;AACzB,YAAY,EACV,gBAAgB,EAChB,UAAU,EACV,aAAa,EACb,mBAAmB,GACpB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,aAAa,EACb,UAAU,EACV,gBAAgB,EAChB,YAAY,EACZ,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACZ,OAAO,EACP,gBAAgB,EAChB,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACtG,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC1E,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC1E,YAAY,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAErD,OAAO,EACL,cAAc,EACd,aAAa,EACb,iBAAiB,EACjB,mBAAmB,EACnB,SAAS,GACV,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,eAAe,EACf,SAAS,EACT,UAAU,EACV,oBAAoB,EACpB,qBAAqB,EACrB,gBAAgB,GACjB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,GAAG,EACH,OAAO,EACP,SAAS,EACT,gBAAgB,EAChB,qBAAqB,EACrB,iBAAiB,EACjB,QAAQ,EACR,iBAAiB,GAClB,MAAM,UAAU,CAAC;AAClB,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAEvE,YAAY,EACV,OAAO,EACP,aAAa,EACb,WAAW,EACX,WAAW,EACX,SAAS,EACT,oBAAoB,EACpB,eAAe,EACf,WAAW,EACX,SAAS,EACT,aAAa,EACb,eAAe,EACf,WAAW,EACX,SAAS,EACT,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,YAAY,EACZ,UAAU,GACX,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAC/F,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAExG,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC3D,YAAY,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE3C,YAAY,EACV,WAAW,EACX,eAAe,EACf,eAAe,EACf,aAAa,EACb,SAAS,EACT,YAAY,EACZ,oBAAoB,EACpB,YAAY,EACZ,gBAAgB,EAChB,SAAS,EACT,WAAW,EACX,OAAO,EACP,aAAa,EACb,aAAa,EACb,WAAW,EACX,SAAS,EACT,UAAU,EACV,WAAW,GACZ,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC"}
package/dist/index.js CHANGED
@@ -1,14 +1,5 @@
1
- export { runAgentLoop, buildInterjectionBlock, assertNavigateUrlAllowed, assertExtractExpressionAllowed, shouldCheckTermination, } from './agent-loop.js';
2
- export { createSession, getSession, getSessionResult, closeSession, closeAllSessions, sessionCount, addSSEClient, emitSSE, startCleanupLoop, stopCleanupLoop, waitForUserResponse, enqueueUserMessage, drainUserMessages, } from './session-manager.js';
3
- export { pressAndHold, detectAntiBot, enrichSnapshot, getPageText } from './skills/press-and-hold.js';
4
- export { clickCloudflareCheckbox } from './skills/cloudflare-checkbox.js';
5
- export { detectPopup, dismissPopup } from './skills/dismiss-popup.js';
6
- export { detectLoop } from './skills/loop-detection.js';
7
- export { detectPageState, shouldBlockDone } from './skills/page-state.js';
8
- export { diagnoseStuckAgent, formatRecovery } from './skills/recovery.js';
9
- export { TabManager } from './skills/tab-manager.js';
10
- export { initSkillStore, extractDomain, getSkillForDomain, getSkillsForDomains, saveSkill, } from './skill-store.js';
11
- export { initLessonStore, getLesson, saveLesson, extractDomainLessons, formatLessonForPrompt, hashTaskCategory, } from './lesson-store.js';
12
- export { llm, llmJson, llmVision, runWithLlmConfig, getAvailableProviders, getActiveProvider, getModel, sanitizeErrorText, } from './llm.js';
1
+ export { runAgentLoop, buildInterjectionBlock, shouldCheckTermination } from './agent-loop.js';
2
+ export { defaultAgentConfig } from './config.js';
3
+ export { runWithLlmConfig, getTokenUsage } from './llm.js';
13
4
  export { HttpError, LlmParseError } from './types.js';
14
5
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,sBAAsB,EACtB,wBAAwB,EACxB,8BAA8B,EAC9B,sBAAsB,GACvB,MAAM,iBAAiB,CAAC;AAQzB,OAAO,EACL,aAAa,EACb,UAAU,EACV,gBAAgB,EAChB,YAAY,EACZ,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACZ,OAAO,EACP,gBAAgB,EAChB,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACtG,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC1E,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE1E,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAErD,OAAO,EACL,cAAc,EACd,aAAa,EACb,iBAAiB,EACjB,mBAAmB,EACnB,SAAS,GACV,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,eAAe,EACf,SAAS,EACT,UAAU,EACV,oBAAoB,EACpB,qBAAqB,EACrB,gBAAgB,GACjB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,GAAG,EACH,OAAO,EACP,SAAS,EACT,gBAAgB,EAChB,qBAAqB,EACrB,iBAAiB,EACjB,QAAQ,EACR,iBAAiB,GAClB,MAAM,UAAU,CAAC;AAuBlB,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAG/F,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAGjD,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAuB3D,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { AgentStep, DomainLesson, TaskLesson } from './types.js';
2
+ export declare function initLessonStore(): void;
3
+ export declare function hashTaskCategory(prompt: string): {
4
+ hash: string;
5
+ terms: string[];
6
+ };
7
+ export declare function getLesson(prompt: string): Promise<TaskLesson | null>;
8
+ export declare function saveLesson(prompt: string, domains: DomainLesson[]): Promise<void>;
9
+ export declare function extractDomainLessons(steps: AgentStep[], success: boolean): DomainLesson[];
10
+ export declare function formatLessonForPrompt(lesson: TaskLesson): string;
11
+ //# sourceMappingURL=lesson-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lesson-store.d.ts","sourceRoot":"","sources":["../src/lesson-store.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAOtE,wBAAgB,eAAe,IAAI,IAAI,CAetC;AAuLD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAA;CAAE,CAgBlF;AAID,wBAAsB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAW1E;AAaD,wBAAsB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA+BvF;AAMD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,OAAO,EAAE,OAAO,GAAG,YAAY,EAAE,CA4CzF;AAID,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAgBhE"}
@@ -0,0 +1,323 @@
1
+ import { createHash } from 'node:crypto';
2
+ import { S3Client, GetObjectCommand, PutObjectCommand } from '@aws-sdk/client-s3';
3
+ import { getMinioConfig } from './config.js';
4
+ import { extractDomain } from './skill-store.js';
5
+ import { logger } from './logger.js';
6
+ let s3;
7
+ let bucket;
8
+ export function initLessonStore() {
9
+ const config = getMinioConfig();
10
+ bucket = config.bucket;
11
+ s3 = new S3Client({
12
+ endpoint: config.endpoint,
13
+ region: 'us-east-1',
14
+ credentials: {
15
+ accessKeyId: config.accessKey,
16
+ secretAccessKey: config.secretKey,
17
+ },
18
+ forcePathStyle: true,
19
+ });
20
+ logger.info('Lesson store ready');
21
+ }
22
+ // ── Task hashing ───────────────────────────────────────────────────────────────
23
+ // Produces a semantic hash so similar prompts ("find apartments in Chelsea" and
24
+ // "search for rentals in Chelsea") map to the same lesson key.
25
+ const STOP_WORDS = new Set([
26
+ 'a',
27
+ 'an',
28
+ 'the',
29
+ 'in',
30
+ 'at',
31
+ 'on',
32
+ 'to',
33
+ 'for',
34
+ 'from',
35
+ 'of',
36
+ 'is',
37
+ 'are',
38
+ 'was',
39
+ 'were',
40
+ 'be',
41
+ 'been',
42
+ 'has',
43
+ 'have',
44
+ 'had',
45
+ 'do',
46
+ 'does',
47
+ 'did',
48
+ 'will',
49
+ 'would',
50
+ 'could',
51
+ 'should',
52
+ 'may',
53
+ 'might',
54
+ 'can',
55
+ 'with',
56
+ 'and',
57
+ 'or',
58
+ 'but',
59
+ 'not',
60
+ 'no',
61
+ 'it',
62
+ 'its',
63
+ 'my',
64
+ 'your',
65
+ 'his',
66
+ 'her',
67
+ 'their',
68
+ 'our',
69
+ 'this',
70
+ 'that',
71
+ 'these',
72
+ 'those',
73
+ 'i',
74
+ 'me',
75
+ 'we',
76
+ 'us',
77
+ 'you',
78
+ 'he',
79
+ 'she',
80
+ 'they',
81
+ 'them',
82
+ 'some',
83
+ 'any',
84
+ 'all',
85
+ 'each',
86
+ 'every',
87
+ 'most',
88
+ 'more',
89
+ 'less',
90
+ 'very',
91
+ 'just',
92
+ 'only',
93
+ 'also',
94
+ 'than',
95
+ 'then',
96
+ 'so',
97
+ 'if',
98
+ 'when',
99
+ 'where',
100
+ 'how',
101
+ 'what',
102
+ 'which',
103
+ 'who',
104
+ 'whom',
105
+ 'whose',
106
+ 'why',
107
+ 'much',
108
+ 'many',
109
+ 'few',
110
+ 'little',
111
+ 'lot',
112
+ 'lots',
113
+ 'get',
114
+ 'go',
115
+ 'come',
116
+ 'make',
117
+ 'take',
118
+ 'give',
119
+ 'show',
120
+ 'tell',
121
+ 'please',
122
+ 'want',
123
+ 'need',
124
+ 'like',
125
+ 'about',
126
+ 'up',
127
+ 'out',
128
+ 'down',
129
+ 'into',
130
+ 'over',
131
+ 'under',
132
+ 'between',
133
+ 'through',
134
+ 'after',
135
+ 'before',
136
+ 'during',
137
+ 'near',
138
+ 'best',
139
+ 'good',
140
+ 'great',
141
+ 'top',
142
+ ]);
143
+ const SYNONYMS = {
144
+ apartments: 'apartment',
145
+ rental: 'apartment',
146
+ rentals: 'apartment',
147
+ flat: 'apartment',
148
+ flats: 'apartment',
149
+ condo: 'apartment',
150
+ condos: 'apartment',
151
+ housing: 'apartment',
152
+ hotels: 'hotel',
153
+ motel: 'hotel',
154
+ motels: 'hotel',
155
+ accommodation: 'hotel',
156
+ resort: 'hotel',
157
+ resorts: 'hotel',
158
+ flights: 'flight',
159
+ airline: 'flight',
160
+ airfare: 'flight',
161
+ tickets: 'flight',
162
+ ticket: 'flight',
163
+ search: 'find',
164
+ look: 'find',
165
+ browse: 'find',
166
+ explore: 'find',
167
+ discover: 'find',
168
+ comparison: 'compare',
169
+ purchase: 'buy',
170
+ order: 'buy',
171
+ shop: 'buy',
172
+ shopping: 'buy',
173
+ booking: 'book',
174
+ reserve: 'book',
175
+ reservation: 'book',
176
+ prices: 'price',
177
+ cost: 'price',
178
+ costs: 'price',
179
+ rate: 'price',
180
+ rates: 'price',
181
+ cheap: 'price',
182
+ cheapest: 'price',
183
+ affordable: 'price',
184
+ cars: 'car',
185
+ vehicle: 'car',
186
+ vehicles: 'car',
187
+ auto: 'car',
188
+ jobs: 'job',
189
+ career: 'job',
190
+ careers: 'job',
191
+ hiring: 'job',
192
+ position: 'job',
193
+ positions: 'job',
194
+ restaurants: 'restaurant',
195
+ dining: 'restaurant',
196
+ laptops: 'laptop',
197
+ computer: 'laptop',
198
+ computers: 'laptop',
199
+ };
200
+ export function hashTaskCategory(prompt) {
201
+ const words = prompt
202
+ .toLowerCase()
203
+ .replace(/[^a-z0-9\s]/g, '')
204
+ .split(/\s+/)
205
+ .filter(Boolean);
206
+ const terms = words
207
+ .filter((w) => !STOP_WORDS.has(w))
208
+ .map((w) => SYNONYMS[w] ?? w)
209
+ .filter((w, i, arr) => arr.indexOf(w) === i)
210
+ .sort();
211
+ const key = terms.join('-');
212
+ const hash = createHash('sha256').update(key).digest('hex').slice(0, 16);
213
+ return { hash, terms };
214
+ }
215
+ // ── Load / save ────────────────────────────────────────────────────────────────
216
+ export async function getLesson(prompt) {
217
+ const { hash } = hashTaskCategory(prompt);
218
+ try {
219
+ const res = await s3.send(new GetObjectCommand({ Bucket: bucket, Key: `lessons/${hash}.json` }));
220
+ const raw = await res.Body?.transformToString();
221
+ if (raw === undefined || raw === '')
222
+ return null;
223
+ return JSON.parse(raw);
224
+ }
225
+ catch (err) {
226
+ logger.error({ err, hash }, 'Failed to fetch lesson from S3');
227
+ return null;
228
+ }
229
+ }
230
+ async function putLesson(lesson) {
231
+ await s3.send(new PutObjectCommand({
232
+ Bucket: bucket,
233
+ Key: `lessons/${lesson.task_hash}.json`,
234
+ Body: JSON.stringify(lesson, null, 2),
235
+ ContentType: 'application/json',
236
+ }));
237
+ }
238
+ export async function saveLesson(prompt, domains) {
239
+ if (domains.length === 0)
240
+ return;
241
+ const { hash, terms } = hashTaskCategory(prompt);
242
+ const now = new Date().toISOString();
243
+ const existing = await getLesson(prompt);
244
+ const merged = new Map();
245
+ // Load existing domains
246
+ if (existing !== null) {
247
+ for (const d of existing.domains) {
248
+ merged.set(d.domain, d);
249
+ }
250
+ }
251
+ // Merge new domains — newer observations win
252
+ for (const d of domains) {
253
+ merged.set(d.domain, d);
254
+ }
255
+ const lesson = {
256
+ task_hash: hash,
257
+ task_terms: terms,
258
+ domains: [...merged.values()],
259
+ updated_at: now,
260
+ };
261
+ await putLesson(lesson);
262
+ logger.info({ hash, terms, domainCount: lesson.domains.length }, 'Saved lesson');
263
+ }
264
+ // ── Extract lessons from step history ──────────────────────────────────────────
265
+ const BLOCKED_PATTERNS = /access denied|\b403\b|rate limit|forbidden/i;
266
+ export function extractDomainLessons(steps, success) {
267
+ const now = new Date().toISOString();
268
+ const domainInfo = new Map();
269
+ for (const step of steps) {
270
+ const url = step.url;
271
+ if (url === undefined || url === '')
272
+ continue;
273
+ const domain = extractDomain(url);
274
+ if (domain === '')
275
+ continue;
276
+ const info = domainInfo.get(domain) ?? { actions: 0, errors: 0, blocked: false };
277
+ if (!['done', 'fail', 'wait', 'ask_user'].includes(step.action.action)) {
278
+ info.actions++;
279
+ }
280
+ if (step.action.error_feedback !== undefined) {
281
+ info.errors++;
282
+ if (BLOCKED_PATTERNS.test(step.action.error_feedback))
283
+ info.blocked = true;
284
+ }
285
+ domainInfo.set(domain, info);
286
+ }
287
+ const lessons = [];
288
+ for (const [domain, info] of domainInfo) {
289
+ if (info.blocked) {
290
+ lessons.push({
291
+ domain,
292
+ status: 'blocked',
293
+ reason: 'hard block response',
294
+ last_seen: now,
295
+ });
296
+ }
297
+ else if (success && info.actions >= 2 && info.errors === 0) {
298
+ lessons.push({
299
+ domain,
300
+ status: 'worked',
301
+ reason: `completed task successfully (${String(info.actions)} actions)`,
302
+ last_seen: now,
303
+ });
304
+ }
305
+ }
306
+ return lessons;
307
+ }
308
+ // ── Format for injection into agent prompt ─────────────────────────────────────
309
+ export function formatLessonForPrompt(lesson) {
310
+ const blocked = lesson.domains.filter((d) => d.status === 'blocked');
311
+ const worked = lesson.domains.filter((d) => d.status === 'worked');
312
+ if (blocked.length === 0 && worked.length === 0)
313
+ return '';
314
+ const lines = ['LESSONS FROM PREVIOUS RUNS:'];
315
+ for (const d of blocked) {
316
+ lines.push(` AVOID ${d.domain} (${d.reason})`);
317
+ }
318
+ for (const d of worked) {
319
+ lines.push(` USE ${d.domain} instead (${d.reason})`);
320
+ }
321
+ return lines.join('\n');
322
+ }
323
+ //# sourceMappingURL=lesson-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lesson-store.js","sourceRoot":"","sources":["../src/lesson-store.ts"],"names":[],"mappings":"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"}
package/dist/llm.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"llm.d.ts","sourceRoot":"","sources":["../src/llm.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAU5C,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEtD;AAWD,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAID;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAEvF;AAaD,eAAO,MAAM,cAAc,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,sBAAsB,EAAE,OAAO,CAAA;CAAE,CAAC,CAKxG,CAAC;AAEF,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,sBAAsB,EAAE,OAAO,CAAC;CACjC;AAyGD,wBAAgB,qBAAqB,IAAI,cAAc,EAAE,CAExD;AAED,wBAAgB,iBAAiB,IAAI,cAAc,CAKlD;AAED,wBAAgB,QAAQ,IAAI,MAAM,CAMjC;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,WAAW;IACnB,IAAI,EAAE,MAAM,CAAC;CACd;AAuGD,wBAAgB,eAAe,IAAI,MAAM,CAGxC;AAED,wBAAgB,aAAa,IAAI,UAAU,CAK1C;AAED,wBAAgB,iBAAiB,IAAI,IAAI,CAWxC;AA2FD,wBAAsB,GAAG,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,CAiD/D;AAED,wBAAsB,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,CAU5D;AAED;;GAEG;AACH,wBAAsB,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAkDrG"}
1
+ {"version":3,"file":"llm.d.ts","sourceRoot":"","sources":["../src/llm.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAU5C,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEtD;AAWD,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAID;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAEvF;AAaD,eAAO,MAAM,cAAc,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,sBAAsB,EAAE,OAAO,CAAA;CAAE,CAAC,CAKxG,CAAC;AAEF,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,sBAAsB,EAAE,OAAO,CAAC;CACjC;AAmHD,wBAAgB,qBAAqB,IAAI,cAAc,EAAE,CAExD;AAED,wBAAgB,iBAAiB,IAAI,cAAc,CAKlD;AAED,wBAAgB,QAAQ,IAAI,MAAM,CAOjC;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,WAAW;IACnB,IAAI,EAAE,MAAM,CAAC;CACd;AAuGD,wBAAgB,eAAe,IAAI,MAAM,CAGxC;AAED,wBAAgB,aAAa,IAAI,UAAU,CAK1C;AAED,wBAAgB,iBAAiB,IAAI,IAAI,CAWxC;AA2FD,wBAAsB,GAAG,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,CAiD/D;AAED,wBAAsB,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,CAU5D;AAED;;GAEG;AACH,wBAAsB,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAkDrG"}
package/dist/llm.js CHANGED
@@ -80,32 +80,44 @@ const TOKEN_LIFETIME_MS = TOKEN_LIFETIME_HOURS * 60 * 60 * 1000;
80
80
  const REFRESH_BUFFER_MS = 60 * 60 * 1000; // refresh 1 hour before expiry
81
81
  let oauthTokenIssuedAt = null;
82
82
  const clientCache = new Map();
83
+ // Concurrent callers share a single in-flight refresh so we don't race on process.env.
84
+ let oauthRefreshInFlight = null;
83
85
  async function refreshOAuthToken() {
84
- const refreshToken = process.env.OPENAI_REFRESH_TOKEN;
85
- if (refreshToken === undefined || refreshToken === '')
86
- throw new Error('OPENAI_REFRESH_TOKEN is required to refresh the access token');
87
- logger.info('Refreshing OpenAI OAuth token');
88
- const res = await fetch(TOKEN_URL, {
89
- method: 'POST',
90
- headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
91
- body: new URLSearchParams({
92
- grant_type: 'refresh_token',
93
- client_id: CLIENT_ID,
94
- refresh_token: refreshToken,
95
- }),
96
- });
97
- if (!res.ok) {
98
- const text = await res.text();
99
- throw new Error(`OAuth token refresh failed (${String(res.status)}): ${sanitizeErrorText(text)}`);
86
+ if (oauthRefreshInFlight !== null)
87
+ return oauthRefreshInFlight;
88
+ oauthRefreshInFlight = (async () => {
89
+ const refreshToken = process.env.OPENAI_REFRESH_TOKEN;
90
+ if (refreshToken === undefined || refreshToken === '')
91
+ throw new Error('OPENAI_REFRESH_TOKEN is required to refresh the access token');
92
+ logger.info('Refreshing OpenAI OAuth token');
93
+ const res = await fetch(TOKEN_URL, {
94
+ method: 'POST',
95
+ headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
96
+ body: new URLSearchParams({
97
+ grant_type: 'refresh_token',
98
+ client_id: CLIENT_ID,
99
+ refresh_token: refreshToken,
100
+ }),
101
+ });
102
+ if (!res.ok) {
103
+ const text = await res.text();
104
+ throw new Error(`OAuth token refresh failed (${String(res.status)}): ${sanitizeErrorText(text)}`);
105
+ }
106
+ const token = (await res.json());
107
+ process.env.OPENAI_OAUTH_TOKEN = token.access_token;
108
+ if (token.refresh_token !== undefined) {
109
+ process.env.OPENAI_REFRESH_TOKEN = token.refresh_token;
110
+ }
111
+ oauthTokenIssuedAt = Date.now();
112
+ clientCache.delete('openai-oauth');
113
+ logger.info('OpenAI OAuth token refreshed successfully');
114
+ })();
115
+ try {
116
+ await oauthRefreshInFlight;
100
117
  }
101
- const token = (await res.json());
102
- process.env.OPENAI_OAUTH_TOKEN = token.access_token;
103
- if (token.refresh_token !== undefined) {
104
- process.env.OPENAI_REFRESH_TOKEN = token.refresh_token;
118
+ finally {
119
+ oauthRefreshInFlight = null;
105
120
  }
106
- oauthTokenIssuedAt = Date.now();
107
- clientCache.delete('openai-oauth');
108
- logger.info('OpenAI OAuth token refreshed successfully');
109
121
  }
110
122
  function shouldRefreshOAuthToken() {
111
123
  if (oauthTokenIssuedAt === null || TOKEN_LIFETIME_MS === 0)
@@ -144,7 +156,8 @@ export function getActiveProvider() {
144
156
  export function getModel() {
145
157
  const model = process.env.LLM_MODEL;
146
158
  if (model === undefined || model === '') {
147
- throw new Error('LLM_MODEL is required but not set');
159
+ logger.fatal('LLM_MODEL is required but not set');
160
+ process.exit(1);
148
161
  }
149
162
  return model;
150
163
  }
package/dist/llm.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"llm.js","sourceRoot":"","sources":["../src/llm.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"llm.js","sourceRoot":"","sources":["../src/llm.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Probe whether a TCP port on 127.0.0.1 is free to bind. Used by the CDP
3
+ * port allocator to detect when its in-memory session map has gone stale
4
+ * (Chrome died without closeSession() being called) — the physical port
5
+ * is free but the map still claims it.
6
+ */
7
+ export declare function isPortFree(port: number): Promise<boolean>;
8
+ //# sourceMappingURL=port-probe.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"port-probe.d.ts","sourceRoot":"","sources":["../src/port-probe.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAazD"}
@@ -0,0 +1,22 @@
1
+ import { createServer } from 'node:net';
2
+ /**
3
+ * Probe whether a TCP port on 127.0.0.1 is free to bind. Used by the CDP
4
+ * port allocator to detect when its in-memory session map has gone stale
5
+ * (Chrome died without closeSession() being called) — the physical port
6
+ * is free but the map still claims it.
7
+ */
8
+ export function isPortFree(port) {
9
+ return new Promise((resolve) => {
10
+ const server = createServer();
11
+ server.once('error', () => {
12
+ resolve(false);
13
+ });
14
+ server.once('listening', () => {
15
+ server.close(() => {
16
+ resolve(true);
17
+ });
18
+ });
19
+ server.listen(port, '127.0.0.1');
20
+ });
21
+ }
22
+ //# sourceMappingURL=port-probe.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"port-probe.js","sourceRoot":"","sources":["../src/port-probe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExC;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;QAC9B,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE;YACxB,OAAO,CAAC,KAAK,CAAC,CAAC;QACjB,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE;YAC5B,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE;gBAChB,OAAO,CAAC,IAAI,CAAC,CAAC;YAChB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,17 @@
1
+ interface PromptLogEntry {
2
+ timestamp: string;
3
+ session_id: string;
4
+ ip: string;
5
+ prompt: string;
6
+ url?: string;
7
+ status: 'started' | 'completed' | 'failed';
8
+ steps?: number;
9
+ duration_ms?: number;
10
+ error?: string;
11
+ domain?: string;
12
+ skills_loaded?: number;
13
+ skill_outcome?: 'saved' | 'improved' | 'refined' | 'validated' | 'none';
14
+ }
15
+ export declare function logPrompt(entry: PromptLogEntry): Promise<void>;
16
+ export {};
17
+ //# sourceMappingURL=prompt-log.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt-log.d.ts","sourceRoot":"","sources":["../src/prompt-log.ts"],"names":[],"mappings":"AAOA,UAAU,cAAc;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,SAAS,GAAG,WAAW,GAAG,MAAM,CAAC;CACzE;AAiBD,wBAAsB,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAWpE"}