auspex 0.2.0 → 0.3.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.
- package/package.json +10 -4
- package/readme.md +169 -35
- package/dist/agent/actions.d.ts +0 -5
- package/dist/agent/actions.d.ts.map +0 -1
- package/dist/agent/actions.js +0 -26
- package/dist/agent/actions.js.map +0 -1
- package/dist/agent/agent.d.ts +0 -12
- package/dist/agent/agent.d.ts.map +0 -1
- package/dist/agent/agent.js +0 -159
- package/dist/agent/agent.js.map +0 -1
- package/dist/agent/loop.d.ts +0 -6
- package/dist/agent/loop.d.ts.map +0 -1
- package/dist/agent/loop.js +0 -175
- package/dist/agent/loop.js.map +0 -1
- package/dist/agent/report.d.ts +0 -3
- package/dist/agent/report.d.ts.map +0 -1
- package/dist/agent/report.js +0 -95
- package/dist/agent/report.js.map +0 -1
- package/dist/browser/executor.d.ts +0 -5
- package/dist/browser/executor.d.ts.map +0 -1
- package/dist/browser/executor.js +0 -33
- package/dist/browser/executor.js.map +0 -1
- package/dist/browser/snapshot.d.ts +0 -6
- package/dist/browser/snapshot.d.ts.map +0 -1
- package/dist/browser/snapshot.js +0 -145
- package/dist/browser/snapshot.js.map +0 -1
- package/dist/config/defaults.d.ts +0 -11
- package/dist/config/defaults.d.ts.map +0 -1
- package/dist/config/defaults.js +0 -11
- package/dist/config/defaults.js.map +0 -1
- package/dist/config/schema.d.ts +0 -62
- package/dist/config/schema.d.ts.map +0 -1
- package/dist/config/schema.js +0 -24
- package/dist/config/schema.js.map +0 -1
- package/dist/index.d.ts +0 -7
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -8
- package/dist/index.js.map +0 -1
- package/dist/llm/client.d.ts +0 -23
- package/dist/llm/client.d.ts.map +0 -1
- package/dist/llm/client.js +0 -51
- package/dist/llm/client.js.map +0 -1
- package/dist/llm/prompt.d.ts +0 -3
- package/dist/llm/prompt.d.ts.map +0 -1
- package/dist/llm/prompt.js +0 -36
- package/dist/llm/prompt.js.map +0 -1
- package/dist/scraper/extractors/content.d.ts +0 -32
- package/dist/scraper/extractors/content.d.ts.map +0 -1
- package/dist/scraper/extractors/content.js +0 -276
- package/dist/scraper/extractors/content.js.map +0 -1
- package/dist/scraper/extractors/ssr.d.ts +0 -17
- package/dist/scraper/extractors/ssr.d.ts.map +0 -1
- package/dist/scraper/extractors/ssr.js +0 -162
- package/dist/scraper/extractors/ssr.js.map +0 -1
- package/dist/scraper/extractors/to-markdown.d.ts +0 -5
- package/dist/scraper/extractors/to-markdown.d.ts.map +0 -1
- package/dist/scraper/extractors/to-markdown.js +0 -103
- package/dist/scraper/extractors/to-markdown.js.map +0 -1
- package/dist/scraper/index.d.ts +0 -35
- package/dist/scraper/index.d.ts.map +0 -1
- package/dist/scraper/index.js +0 -299
- package/dist/scraper/index.js.map +0 -1
- package/dist/scraper/tiers/tier1-http.d.ts +0 -5
- package/dist/scraper/tiers/tier1-http.d.ts.map +0 -1
- package/dist/scraper/tiers/tier1-http.js +0 -122
- package/dist/scraper/tiers/tier1-http.js.map +0 -1
- package/dist/scraper/tiers/tier2-stealth.d.ts +0 -5
- package/dist/scraper/tiers/tier2-stealth.d.ts.map +0 -1
- package/dist/scraper/tiers/tier2-stealth.js +0 -108
- package/dist/scraper/tiers/tier2-stealth.js.map +0 -1
- package/dist/scraper/tiers/tier3-browser.d.ts +0 -10
- package/dist/scraper/tiers/tier3-browser.d.ts.map +0 -1
- package/dist/scraper/tiers/tier3-browser.js +0 -506
- package/dist/scraper/tiers/tier3-browser.js.map +0 -1
- package/dist/scraper/types.d.ts +0 -161
- package/dist/scraper/types.d.ts.map +0 -1
- package/dist/scraper/types.js +0 -3
- package/dist/scraper/types.js.map +0 -1
- package/dist/security/action-validator.d.ts +0 -83
- package/dist/security/action-validator.d.ts.map +0 -1
- package/dist/security/action-validator.js +0 -36
- package/dist/security/action-validator.js.map +0 -1
- package/dist/security/url-validator.d.ts +0 -9
- package/dist/security/url-validator.d.ts.map +0 -1
- package/dist/security/url-validator.js +0 -69
- package/dist/security/url-validator.js.map +0 -1
- package/dist/types.d.ts +0 -96
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -2
- package/dist/types.js.map +0 -1
package/dist/agent/loop.js
DELETED
|
@@ -1,175 +0,0 @@
|
|
|
1
|
-
import { takeSnapshot, formatSnapshot } from "../browser/snapshot.js";
|
|
2
|
-
import { executeAction } from "../browser/executor.js";
|
|
3
|
-
import { LLMClient } from "../llm/client.js";
|
|
4
|
-
import { parseAndValidateAction, formatActionForHistory } from "./actions.js";
|
|
5
|
-
import { generateReport } from "./report.js";
|
|
6
|
-
// Janela deslizante do histórico enviado ao LLM.
|
|
7
|
-
// Mantém o primeiro item (contexto inicial) + os N mais recentes.
|
|
8
|
-
// Evita que o histórico cresça indefinidamente e consuma tokens desnecessários.
|
|
9
|
-
const HISTORY_WINDOW = 8;
|
|
10
|
-
// Detecção de loop: janela deslizante das últimas N action keys.
|
|
11
|
-
// Se uma mesma ação aparecer MAX_OCCURRENCES vezes dentro de RECENT_WINDOW
|
|
12
|
-
// iterações, o agente está preso (captura padrões A,A,A e também A,B,A,B,A).
|
|
13
|
-
const RECENT_WINDOW = 9; // quantas ações recentes rastrear
|
|
14
|
-
const MAX_OCCURRENCES = 3; // máximo de vezes que a mesma ação pode aparecer na janela
|
|
15
|
-
function windowedHistory(history) {
|
|
16
|
-
if (history.length <= HISTORY_WINDOW)
|
|
17
|
-
return history;
|
|
18
|
-
// Primeiro item = contexto de início de navegação → sempre preservado
|
|
19
|
-
return [history[0], ...history.slice(-(HISTORY_WINDOW - 1))];
|
|
20
|
-
}
|
|
21
|
-
function buildResult(status, tier, data, actions, usage, peakRssKb, startTime, url, prompt, error) {
|
|
22
|
-
const mem = process.memoryUsage();
|
|
23
|
-
const memory = {
|
|
24
|
-
browserPeakRssKb: peakRssKb,
|
|
25
|
-
nodeHeapUsedMb: Math.round((mem.heapUsed / 1024 / 1024) * 100) / 100,
|
|
26
|
-
};
|
|
27
|
-
const durationMs = Date.now() - startTime;
|
|
28
|
-
const result = { status, tier, data, report: "", durationMs, actions, usage, memory, error };
|
|
29
|
-
result.report = generateReport(result, url, prompt);
|
|
30
|
-
return result;
|
|
31
|
-
}
|
|
32
|
-
// ─── Loop estático (sem browser) ──────────────────────────────────────────────
|
|
33
|
-
//
|
|
34
|
-
// Tenta resolver o prompt em UMA chamada LLM usando snapshot do HTML via Cheerio.
|
|
35
|
-
// Retorna AgentResult com tier="http" se o LLM conseguir responder com "done".
|
|
36
|
-
// Retorna null se o LLM precisar de interação → sinal para lançar o Playwright.
|
|
37
|
-
//
|
|
38
|
-
// ─────────────────────────────────────────────────────────────────────────────
|
|
39
|
-
export async function runStaticLoop(snapshot, url, prompt, config) {
|
|
40
|
-
const startTime = Date.now();
|
|
41
|
-
const urlOptions = {
|
|
42
|
-
allowedDomains: config.allowedDomains,
|
|
43
|
-
blockedDomains: config.blockedDomains,
|
|
44
|
-
};
|
|
45
|
-
const llm = new LLMClient(config.llmApiKey, config.model, {
|
|
46
|
-
temperature: config.temperature,
|
|
47
|
-
maxTokens: config.maxTokens,
|
|
48
|
-
topP: config.topP,
|
|
49
|
-
frequencyPenalty: config.frequencyPenalty,
|
|
50
|
-
presencePenalty: config.presencePenalty,
|
|
51
|
-
}, config.llmBaseUrl);
|
|
52
|
-
const usage = { promptTokens: 0, completionTokens: 0, totalTokens: 0, calls: 0 };
|
|
53
|
-
let raw;
|
|
54
|
-
try {
|
|
55
|
-
const response = await llm.decideAction(prompt, formatSnapshot(snapshot), []);
|
|
56
|
-
raw = response.data;
|
|
57
|
-
usage.promptTokens = response.usage.promptTokens;
|
|
58
|
-
usage.completionTokens = response.usage.completionTokens;
|
|
59
|
-
usage.totalTokens = response.usage.totalTokens;
|
|
60
|
-
usage.calls = 1;
|
|
61
|
-
}
|
|
62
|
-
catch {
|
|
63
|
-
return null; // Falha na chamada LLM → cai para o Playwright
|
|
64
|
-
}
|
|
65
|
-
let action;
|
|
66
|
-
try {
|
|
67
|
-
action = await parseAndValidateAction(raw, urlOptions);
|
|
68
|
-
}
|
|
69
|
-
catch {
|
|
70
|
-
return null; // Ação inválida → cai para o Playwright
|
|
71
|
-
}
|
|
72
|
-
if (action.type === "done") {
|
|
73
|
-
const actions = [{ action, iteration: 0, timestamp: Date.now() }];
|
|
74
|
-
const isFailed = typeof action.result === "string" && action.result.startsWith("FAILED:");
|
|
75
|
-
if (isFailed) {
|
|
76
|
-
const reason = action.result.slice(7).trim() || "O agente não conseguiu completar a tarefa.";
|
|
77
|
-
return buildResult("error", "http", null, actions, usage, 0, startTime, url, prompt, reason);
|
|
78
|
-
}
|
|
79
|
-
// LLM conseguiu extrair os dados do HTML estático ✅ sem precisar de browser
|
|
80
|
-
return buildResult("done", "http", action.result, actions, usage, 0, startTime, url, prompt);
|
|
81
|
-
}
|
|
82
|
-
// LLM precisa navegar ou interagir (click, goto, etc.) → Playwright necessário
|
|
83
|
-
return null;
|
|
84
|
-
}
|
|
85
|
-
// ─── Loop interativo (Playwright) ────────────────────────────────────────────
|
|
86
|
-
//
|
|
87
|
-
// getMemoryKb: callback que retorna o RSS do processo do browser em KB.
|
|
88
|
-
// Passado pelo agent.ts usando o PID do processo Chromium lançado.
|
|
89
|
-
//
|
|
90
|
-
// ─────────────────────────────────────────────────────────────────────────────
|
|
91
|
-
export async function runAgentLoop(page, url, prompt, config, getMemoryKb = () => 0) {
|
|
92
|
-
const llm = new LLMClient(config.llmApiKey, config.model, {
|
|
93
|
-
temperature: config.temperature,
|
|
94
|
-
maxTokens: config.maxTokens,
|
|
95
|
-
topP: config.topP,
|
|
96
|
-
frequencyPenalty: config.frequencyPenalty,
|
|
97
|
-
presencePenalty: config.presencePenalty,
|
|
98
|
-
}, config.llmBaseUrl);
|
|
99
|
-
const urlOptions = {
|
|
100
|
-
allowedDomains: config.allowedDomains,
|
|
101
|
-
blockedDomains: config.blockedDomains,
|
|
102
|
-
};
|
|
103
|
-
// Auto-dismiss any dialogs (alert, confirm, prompt) to prevent browser from hanging
|
|
104
|
-
page.on("dialog", (dialog) => dialog.dismiss().catch(() => { }));
|
|
105
|
-
const actions = [];
|
|
106
|
-
const history = [];
|
|
107
|
-
const usage = { promptTokens: 0, completionTokens: 0, totalTokens: 0, calls: 0 };
|
|
108
|
-
let peakRssKb = 0;
|
|
109
|
-
const recentActionKeys = []; // janela deslizante para detecção de loop
|
|
110
|
-
const startTime = Date.now();
|
|
111
|
-
for (let i = 0; i < config.maxIterations; i++) {
|
|
112
|
-
const currentRss = getMemoryKb();
|
|
113
|
-
if (currentRss > peakRssKb)
|
|
114
|
-
peakRssKb = currentRss;
|
|
115
|
-
if (Date.now() - startTime > config.timeoutMs) {
|
|
116
|
-
return buildResult("timeout", "playwright", null, actions, usage, peakRssKb, startTime, url, prompt, `Timeout after ${config.timeoutMs}ms`);
|
|
117
|
-
}
|
|
118
|
-
const snapshot = await takeSnapshot(page);
|
|
119
|
-
const formatted = formatSnapshot(snapshot);
|
|
120
|
-
let raw;
|
|
121
|
-
try {
|
|
122
|
-
const response = await llm.decideAction(prompt, formatted, windowedHistory(history));
|
|
123
|
-
raw = response.data;
|
|
124
|
-
usage.promptTokens += response.usage.promptTokens;
|
|
125
|
-
usage.completionTokens += response.usage.completionTokens;
|
|
126
|
-
usage.totalTokens += response.usage.totalTokens;
|
|
127
|
-
usage.calls++;
|
|
128
|
-
}
|
|
129
|
-
catch (err) {
|
|
130
|
-
return buildResult("error", "playwright", null, actions, usage, peakRssKb, startTime, url, prompt, `LLM error: ${err instanceof Error ? err.message : String(err)}`);
|
|
131
|
-
}
|
|
132
|
-
let action;
|
|
133
|
-
try {
|
|
134
|
-
action = await parseAndValidateAction(raw, urlOptions);
|
|
135
|
-
}
|
|
136
|
-
catch (err) {
|
|
137
|
-
return buildResult("error", "playwright", null, actions, usage, peakRssKb, startTime, url, prompt, `Action validation error: ${err instanceof Error ? err.message : String(err)}`);
|
|
138
|
-
}
|
|
139
|
-
// ── Detecção de loop (padrão A,A,A e também alternados A,B,A,B,A) ─────
|
|
140
|
-
// Conta quantas vezes esta ação aparece nas últimas RECENT_WINDOW iterações.
|
|
141
|
-
// Se atingir MAX_OCCURRENCES, o agente está preso e precisa tentar outra abordagem.
|
|
142
|
-
const actionKey = JSON.stringify(action);
|
|
143
|
-
const occurrencesInWindow = recentActionKeys.filter(k => k === actionKey).length;
|
|
144
|
-
if (occurrencesInWindow >= MAX_OCCURRENCES) {
|
|
145
|
-
history.push(`[${i}] STUCK: action repeated ${MAX_OCCURRENCES} times in the last ${RECENT_WINDOW} steps. ` +
|
|
146
|
-
"You MUST try a completely different approach.");
|
|
147
|
-
recentActionKeys.length = 0; // reseta a janela para permitir nova tentativa
|
|
148
|
-
continue;
|
|
149
|
-
}
|
|
150
|
-
recentActionKeys.push(actionKey);
|
|
151
|
-
if (recentActionKeys.length > RECENT_WINDOW)
|
|
152
|
-
recentActionKeys.shift();
|
|
153
|
-
actions.push({ action, iteration: i, timestamp: Date.now() });
|
|
154
|
-
history.push(formatActionForHistory(action, i));
|
|
155
|
-
if (action.type === "done") {
|
|
156
|
-
const isFailed = typeof action.result === "string" && action.result.startsWith("FAILED:");
|
|
157
|
-
if (isFailed) {
|
|
158
|
-
const reason = action.result.slice(7).trim() || "O agente não conseguiu completar a tarefa.";
|
|
159
|
-
return buildResult("error", "playwright", null, actions, usage, peakRssKb, startTime, url, prompt, reason);
|
|
160
|
-
}
|
|
161
|
-
return buildResult("done", "playwright", action.result, actions, usage, peakRssKb, startTime, url, prompt);
|
|
162
|
-
}
|
|
163
|
-
try {
|
|
164
|
-
await executeAction(page, action, urlOptions);
|
|
165
|
-
history.push(formatActionForHistory(action, i) + " -> OK");
|
|
166
|
-
}
|
|
167
|
-
catch (err) {
|
|
168
|
-
const msg = err instanceof Error ? err.message : String(err);
|
|
169
|
-
history.push(`[${i}] ERROR executing ${action.type}: ${msg}. Try a different approach.`);
|
|
170
|
-
}
|
|
171
|
-
await page.waitForTimeout(1_000);
|
|
172
|
-
}
|
|
173
|
-
return buildResult("max_iterations", "playwright", null, actions, usage, peakRssKb, startTime, url, prompt, `Reached max iterations (${config.maxIterations})`);
|
|
174
|
-
}
|
|
175
|
-
//# sourceMappingURL=loop.js.map
|
package/dist/agent/loop.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"loop.js","sourceRoot":"","sources":["../../src/agent/loop.ts"],"names":[],"mappings":"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"}
|
package/dist/agent/report.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"report.d.ts","sourceRoot":"","sources":["../../src/agent/report.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAA6B,MAAM,aAAa,CAAC;AA4D1E,wBAAgB,cAAc,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAgDvF"}
|
package/dist/agent/report.js
DELETED
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
function describeAction(record) {
|
|
2
|
-
const { action } = record;
|
|
3
|
-
switch (action.type) {
|
|
4
|
-
case "click":
|
|
5
|
-
return `Clicou no elemento "${action.selector}"`;
|
|
6
|
-
case "type":
|
|
7
|
-
return `Digitou "${action.text}" no campo "${action.selector}"`;
|
|
8
|
-
case "goto":
|
|
9
|
-
return `Navegou para ${action.url}`;
|
|
10
|
-
case "wait":
|
|
11
|
-
return `Aguardou ${action.ms}ms`;
|
|
12
|
-
case "scroll":
|
|
13
|
-
return `Fez scroll ${action.direction === "down" ? "para baixo" : "para cima"}`;
|
|
14
|
-
case "done": {
|
|
15
|
-
const r = action.result;
|
|
16
|
-
if (typeof r === "string" && r.startsWith("FAILED:")) {
|
|
17
|
-
return `Falhou: ${r.slice(7).trim()}`;
|
|
18
|
-
}
|
|
19
|
-
return `Finalizou com resultado`;
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
function describeStatus(result) {
|
|
24
|
-
switch (result.status) {
|
|
25
|
-
case "done":
|
|
26
|
-
return "Tarefa concluída com sucesso.";
|
|
27
|
-
case "max_iterations":
|
|
28
|
-
return `Tarefa interrompida: atingiu o limite de ${result.actions.length} iterações sem concluir.`;
|
|
29
|
-
case "timeout":
|
|
30
|
-
return "Tarefa interrompida: tempo limite excedido.";
|
|
31
|
-
case "error":
|
|
32
|
-
return `Tarefa interrompida por erro: ${result.error}`;
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
function describeTier(result) {
|
|
36
|
-
if (result.tier === "http") {
|
|
37
|
-
return "🟢 HTTP/Cheerio (sem browser — página estática)";
|
|
38
|
-
}
|
|
39
|
-
return "🟡 Playwright Chromium (browser completo — JS necessário)";
|
|
40
|
-
}
|
|
41
|
-
function describeMemory(result) {
|
|
42
|
-
const node = `Node.js heap ${result.memory.nodeHeapUsedMb} MB`;
|
|
43
|
-
if (result.tier === "http") {
|
|
44
|
-
return `${node} | Browser: não utilizado`;
|
|
45
|
-
}
|
|
46
|
-
if (result.memory.browserPeakRssKb > 0) {
|
|
47
|
-
const browserMb = (result.memory.browserPeakRssKb / 1024).toFixed(1);
|
|
48
|
-
return `${node} | Chromium pico ${browserMb} MB`;
|
|
49
|
-
}
|
|
50
|
-
return `${node} | Chromium: RSS não disponível`;
|
|
51
|
-
}
|
|
52
|
-
export function generateReport(result, url, prompt) {
|
|
53
|
-
const lines = [];
|
|
54
|
-
const duration = (result.durationMs / 1000).toFixed(1);
|
|
55
|
-
lines.push("═══════════════════════════════════════════");
|
|
56
|
-
lines.push(" RELATÓRIO DE EXECUÇÃO");
|
|
57
|
-
lines.push("═══════════════════════════════════════════");
|
|
58
|
-
lines.push("");
|
|
59
|
-
lines.push(` URL : ${url}`);
|
|
60
|
-
lines.push(` Prompt : ${prompt}`);
|
|
61
|
-
lines.push(` Status : ${describeStatus(result)}`);
|
|
62
|
-
lines.push(` Método : ${describeTier(result)}`);
|
|
63
|
-
lines.push(` Duração: ${duration}s`);
|
|
64
|
-
lines.push("");
|
|
65
|
-
if (result.actions.length > 0) {
|
|
66
|
-
lines.push("───────────────────────────────────────────");
|
|
67
|
-
lines.push(" PASSO A PASSO");
|
|
68
|
-
lines.push("───────────────────────────────────────────");
|
|
69
|
-
lines.push("");
|
|
70
|
-
for (const record of result.actions) {
|
|
71
|
-
const step = record.iteration + 1;
|
|
72
|
-
lines.push(` ${step}. ${describeAction(record)}`);
|
|
73
|
-
}
|
|
74
|
-
lines.push("");
|
|
75
|
-
}
|
|
76
|
-
if (result.data) {
|
|
77
|
-
lines.push("───────────────────────────────────────────");
|
|
78
|
-
lines.push(" RESULTADO");
|
|
79
|
-
lines.push("───────────────────────────────────────────");
|
|
80
|
-
lines.push("");
|
|
81
|
-
lines.push(` ${result.data}`);
|
|
82
|
-
lines.push("");
|
|
83
|
-
}
|
|
84
|
-
lines.push("───────────────────────────────────────────");
|
|
85
|
-
lines.push(" CONSUMO DE RECURSOS");
|
|
86
|
-
lines.push("───────────────────────────────────────────");
|
|
87
|
-
lines.push("");
|
|
88
|
-
lines.push(` LLM : ${result.usage.calls} chamada(s) | ${result.usage.totalTokens} tokens`);
|
|
89
|
-
lines.push(` ↳ ${result.usage.promptTokens} prompt + ${result.usage.completionTokens} completion`);
|
|
90
|
-
lines.push(` RAM : ${describeMemory(result)}`);
|
|
91
|
-
lines.push("");
|
|
92
|
-
lines.push("═══════════════════════════════════════════");
|
|
93
|
-
return lines.join("\n");
|
|
94
|
-
}
|
|
95
|
-
//# sourceMappingURL=report.js.map
|
package/dist/agent/report.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"report.js","sourceRoot":"","sources":["../../src/agent/report.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import type { Page } from "playwright-core";
|
|
2
|
-
import type { AgentAction } from "../types.js";
|
|
3
|
-
import { type UrlValidationOptions } from "../security/url-validator.js";
|
|
4
|
-
export declare function executeAction(page: Page, action: AgentAction, urlOptions: UrlValidationOptions): Promise<void>;
|
|
5
|
-
//# sourceMappingURL=executor.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../src/browser/executor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAe,KAAK,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAEtF,wBAAsB,aAAa,CACjC,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,WAAW,EACnB,UAAU,EAAE,oBAAoB,GAC/B,OAAO,CAAC,IAAI,CAAC,CAmCf"}
|
package/dist/browser/executor.js
DELETED
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import { validateUrl } from "../security/url-validator.js";
|
|
2
|
-
export async function executeAction(page, action, urlOptions) {
|
|
3
|
-
switch (action.type) {
|
|
4
|
-
case "click": {
|
|
5
|
-
const urlBefore = page.url();
|
|
6
|
-
await page.click(action.selector, { timeout: 10_000 });
|
|
7
|
-
// If click triggered navigation, wait for it to settle
|
|
8
|
-
if (page.url() !== urlBefore) {
|
|
9
|
-
await page.waitForLoadState("domcontentloaded", { timeout: 15_000 }).catch(() => { });
|
|
10
|
-
}
|
|
11
|
-
break;
|
|
12
|
-
}
|
|
13
|
-
case "type":
|
|
14
|
-
await page.fill(action.selector, action.text, { timeout: 5_000 });
|
|
15
|
-
break;
|
|
16
|
-
case "goto": {
|
|
17
|
-
const validUrl = await validateUrl(action.url, urlOptions);
|
|
18
|
-
await page.goto(validUrl, { waitUntil: "domcontentloaded", timeout: 30_000 });
|
|
19
|
-
break;
|
|
20
|
-
}
|
|
21
|
-
case "wait":
|
|
22
|
-
await page.waitForTimeout(action.ms);
|
|
23
|
-
break;
|
|
24
|
-
case "scroll":
|
|
25
|
-
await page.evaluate((dir) => {
|
|
26
|
-
window.scrollBy(0, dir === "down" ? 500 : -500);
|
|
27
|
-
}, action.direction);
|
|
28
|
-
break;
|
|
29
|
-
case "done":
|
|
30
|
-
break;
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
//# sourceMappingURL=executor.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../../src/browser/executor.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAA6B,MAAM,8BAA8B,CAAC;AAEtF,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,IAAU,EACV,MAAmB,EACnB,UAAgC;IAEhC,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC7B,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;YACvD,uDAAuD;YACvD,IAAI,IAAI,CAAC,GAAG,EAAE,KAAK,SAAS,EAAE,CAAC;gBAC7B,MAAM,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YACvF,CAAC;YACD,MAAM;QACR,CAAC;QAED,KAAK,MAAM;YACT,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;YAClE,MAAM;QAER,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,MAAM,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;YAC3D,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,kBAAkB,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;YAC9E,MAAM;QACR,CAAC;QAED,KAAK,MAAM;YACT,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACrC,MAAM;QAER,KAAK,QAAQ;YACX,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAW,EAAE,EAAE;gBAClC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YAClD,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;YACrB,MAAM;QAER,KAAK,MAAM;YACT,MAAM;IACV,CAAC;AACH,CAAC"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import type { Page } from "playwright-core";
|
|
2
|
-
import type { PageSnapshot } from "../types.js";
|
|
3
|
-
export declare function takeSnapshot(page: Page): Promise<PageSnapshot>;
|
|
4
|
-
export declare function snapshotFromHtml(html: string, url: string): PageSnapshot;
|
|
5
|
-
export declare function formatSnapshot(snapshot: PageSnapshot): string;
|
|
6
|
-
//# sourceMappingURL=snapshot.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"snapshot.d.ts","sourceRoot":"","sources":["../../src/browser/snapshot.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,KAAK,EAAE,YAAY,EAA6C,MAAM,aAAa,CAAC;AAqC3F,wBAAsB,YAAY,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,YAAY,CAAC,CAwCpE;AAID,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,YAAY,CA0CxE;AAID,wBAAgB,cAAc,CAAC,QAAQ,EAAE,YAAY,GAAG,MAAM,CA8B7D"}
|
package/dist/browser/snapshot.js
DELETED
|
@@ -1,145 +0,0 @@
|
|
|
1
|
-
import * as cheerio from "cheerio";
|
|
2
|
-
// ─── Limites do snapshot (calibrados para economizar tokens) ──────────────────
|
|
3
|
-
const TEXT_LIMIT = 3_500; // chars de texto da página enviados ao LLM
|
|
4
|
-
const LINKS_LIMIT = 25; // máximo de links por snapshot
|
|
5
|
-
const FORMS_LIMIT = 5; // máximo de forms por snapshot
|
|
6
|
-
const INPUTS_LIMIT = 10; // máximo de inputs por form
|
|
7
|
-
// ─── Filtro de links ruído ────────────────────────────────────────────────────
|
|
8
|
-
//
|
|
9
|
-
// Descarta links que não ajudam o LLM a navegar:
|
|
10
|
-
// - domínios de redes sociais / ícones de compartilhamento
|
|
11
|
-
// - links de assets (imagens, fontes, CSS, JS)
|
|
12
|
-
// - âncoras vazias, javascript: e mailto:
|
|
13
|
-
// - links sem texto visível
|
|
14
|
-
//
|
|
15
|
-
const NOISE_HOSTS = new Set([
|
|
16
|
-
"twitter.com", "x.com", "facebook.com", "instagram.com",
|
|
17
|
-
"linkedin.com", "youtube.com", "tiktok.com",
|
|
18
|
-
"t.me", "wa.me", "discord.gg", "github.com",
|
|
19
|
-
]);
|
|
20
|
-
const NOISE_EXTENSIONS = /\.(png|jpe?g|gif|svg|ico|webp|css|js|woff2?|ttf|eot|pdf)(\?.*)?$/i;
|
|
21
|
-
function isNoiseLink(href, text) {
|
|
22
|
-
if (!href || href === "#" || href.startsWith("javascript:") ||
|
|
23
|
-
href.startsWith("mailto:") || href.startsWith("tel:"))
|
|
24
|
-
return true;
|
|
25
|
-
if (NOISE_EXTENSIONS.test(href))
|
|
26
|
-
return true;
|
|
27
|
-
if (!text.trim())
|
|
28
|
-
return true; // sem texto visível → irrelevante pro LLM
|
|
29
|
-
try {
|
|
30
|
-
const { hostname } = new URL(href);
|
|
31
|
-
if (NOISE_HOSTS.has(hostname.replace(/^www\./, "")))
|
|
32
|
-
return true;
|
|
33
|
-
}
|
|
34
|
-
catch { /* URL relativa ou inválida — mantém */ }
|
|
35
|
-
return false;
|
|
36
|
-
}
|
|
37
|
-
// ─── Snapshot via Playwright (página renderizada com JS) ─────────────────────
|
|
38
|
-
export async function takeSnapshot(page) {
|
|
39
|
-
const url = page.url();
|
|
40
|
-
const title = await page.title();
|
|
41
|
-
const text = await page.evaluate((limit) => {
|
|
42
|
-
return document.body?.innerText?.slice(0, limit) ?? "";
|
|
43
|
-
}, TEXT_LIMIT);
|
|
44
|
-
const rawLinks = await page.evaluate((limit) => {
|
|
45
|
-
return Array.from(document.querySelectorAll("a[href]"))
|
|
46
|
-
.slice(0, limit * 3) // coleta mais para filtrar depois no Node.js
|
|
47
|
-
.map((el, i) => ({
|
|
48
|
-
text: el.innerText.trim().slice(0, 80),
|
|
49
|
-
href: el.href,
|
|
50
|
-
index: i,
|
|
51
|
-
}));
|
|
52
|
-
}, LINKS_LIMIT);
|
|
53
|
-
const links = rawLinks
|
|
54
|
-
.filter(l => !isNoiseLink(l.href, l.text))
|
|
55
|
-
.slice(0, LINKS_LIMIT)
|
|
56
|
-
.map((l, i) => ({ ...l, index: i }));
|
|
57
|
-
const forms = await page.evaluate((limits) => {
|
|
58
|
-
return Array.from(document.querySelectorAll("form")).slice(0, limits.forms).map((form) => ({
|
|
59
|
-
action: form.action,
|
|
60
|
-
inputs: Array.from(form.querySelectorAll("input, textarea, select"))
|
|
61
|
-
.slice(0, limits.inputs)
|
|
62
|
-
.map((el) => {
|
|
63
|
-
const input = el;
|
|
64
|
-
const id = input.id ? `#${input.id}` : "";
|
|
65
|
-
const name = input.name ? `[name="${input.name}"]` : "";
|
|
66
|
-
const tag = el.tagName.toLowerCase();
|
|
67
|
-
const selector = id || (name ? `${tag}${name}` : tag);
|
|
68
|
-
return { name: input.name || input.id || "", type: input.type || tag, placeholder: input.placeholder || "", selector };
|
|
69
|
-
}),
|
|
70
|
-
}));
|
|
71
|
-
}, { forms: FORMS_LIMIT, inputs: INPUTS_LIMIT });
|
|
72
|
-
return { url, title, text, links, forms };
|
|
73
|
-
}
|
|
74
|
-
// ─── Snapshot via Cheerio (HTML estático, sem browser) ───────────────────────
|
|
75
|
-
export function snapshotFromHtml(html, url) {
|
|
76
|
-
const $ = cheerio.load(html);
|
|
77
|
-
const title = $("title").text().trim();
|
|
78
|
-
$("script, style, noscript").remove();
|
|
79
|
-
const text = ($("body").text() ?? "").replace(/\s+/g, " ").trim().slice(0, TEXT_LIMIT);
|
|
80
|
-
const links = [];
|
|
81
|
-
let linkIndex = 0;
|
|
82
|
-
$("a[href]").each((_, el) => {
|
|
83
|
-
if (links.length >= LINKS_LIMIT)
|
|
84
|
-
return false; // break
|
|
85
|
-
const href = $(el).attr("href") ?? "";
|
|
86
|
-
const text = $(el).text().trim().slice(0, 80);
|
|
87
|
-
let absoluteHref = href;
|
|
88
|
-
try {
|
|
89
|
-
absoluteHref = href.startsWith("http") ? href : new URL(href, url).href;
|
|
90
|
-
}
|
|
91
|
-
catch { /* href relativo inválido */ }
|
|
92
|
-
if (!isNoiseLink(absoluteHref, text)) {
|
|
93
|
-
links.push({ text, href: absoluteHref, index: linkIndex++ });
|
|
94
|
-
}
|
|
95
|
-
});
|
|
96
|
-
const forms = [];
|
|
97
|
-
$("form").slice(0, FORMS_LIMIT).each((_, formEl) => {
|
|
98
|
-
const action = $(formEl).attr("action") ?? "";
|
|
99
|
-
const inputs = [];
|
|
100
|
-
$(formEl).find("input, textarea, select").slice(0, INPUTS_LIMIT).each((_, inputEl) => {
|
|
101
|
-
const id = $(inputEl).attr("id") ? `#${$(inputEl).attr("id")}` : "";
|
|
102
|
-
const name = $(inputEl).attr("name") ? `[name="${$(inputEl).attr("name")}"]` : "";
|
|
103
|
-
const tag = ("name" in inputEl ? inputEl.name : "input").toLowerCase();
|
|
104
|
-
const selector = id || (name ? `${tag}${name}` : tag);
|
|
105
|
-
inputs.push({
|
|
106
|
-
name: $(inputEl).attr("name") || $(inputEl).attr("id") || "",
|
|
107
|
-
type: $(inputEl).attr("type") || tag,
|
|
108
|
-
placeholder: $(inputEl).attr("placeholder") || "",
|
|
109
|
-
selector,
|
|
110
|
-
});
|
|
111
|
-
});
|
|
112
|
-
forms.push({ action, inputs });
|
|
113
|
-
});
|
|
114
|
-
return { url, title, text, links, forms };
|
|
115
|
-
}
|
|
116
|
-
// ─── Formata snapshot para envio ao LLM ──────────────────────────────────────
|
|
117
|
-
export function formatSnapshot(snapshot) {
|
|
118
|
-
const lines = [
|
|
119
|
-
`## Current Page`,
|
|
120
|
-
`URL: ${snapshot.url}`,
|
|
121
|
-
`Title: ${snapshot.title}`,
|
|
122
|
-
"",
|
|
123
|
-
`### Page Text`,
|
|
124
|
-
snapshot.text, // já truncado em TEXT_LIMIT no momento da coleta
|
|
125
|
-
"",
|
|
126
|
-
];
|
|
127
|
-
if (snapshot.links.length > 0) {
|
|
128
|
-
lines.push(`### Links (${snapshot.links.length})`);
|
|
129
|
-
for (const link of snapshot.links) {
|
|
130
|
-
lines.push(`[${link.index}] "${link.text}" -> ${link.href}`);
|
|
131
|
-
}
|
|
132
|
-
lines.push("");
|
|
133
|
-
}
|
|
134
|
-
if (snapshot.forms.length > 0) {
|
|
135
|
-
lines.push(`### Forms (${snapshot.forms.length})`);
|
|
136
|
-
for (const form of snapshot.forms) {
|
|
137
|
-
lines.push(`Form action: ${form.action}`);
|
|
138
|
-
for (const input of form.inputs) {
|
|
139
|
-
lines.push(` - ${input.type} name="${input.name}" placeholder="${input.placeholder}" selector="${input.selector}"`);
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
return lines.join("\n");
|
|
144
|
-
}
|
|
145
|
-
//# sourceMappingURL=snapshot.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"snapshot.js","sourceRoot":"","sources":["../../src/browser/snapshot.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AAGnC,iFAAiF;AACjF,MAAM,UAAU,GAAK,KAAK,CAAC,CAAC,2CAA2C;AACvE,MAAM,WAAW,GAAI,EAAE,CAAC,CAAI,+BAA+B;AAC3D,MAAM,WAAW,GAAI,CAAC,CAAC,CAAK,+BAA+B;AAC3D,MAAM,YAAY,GAAG,EAAE,CAAC,CAAI,4BAA4B;AAExD,iFAAiF;AACjF,EAAE;AACF,iDAAiD;AACjD,6DAA6D;AAC7D,iDAAiD;AACjD,4CAA4C;AAC5C,8BAA8B;AAC9B,EAAE;AACF,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC;IAC1B,aAAa,EAAE,OAAO,EAAE,cAAc,EAAE,eAAe;IACvD,cAAc,EAAE,aAAa,EAAE,YAAY;IAC3C,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY;CAC5C,CAAC,CAAC;AACH,MAAM,gBAAgB,GAAG,mEAAmE,CAAC;AAE7F,SAAS,WAAW,CAAC,IAAY,EAAE,IAAY;IAC7C,IAAI,CAAC,IAAI,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;QACvD,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,OAAO,IAAI,CAAC;IACvE,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAC7C,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;QAAE,OAAO,IAAI,CAAC,CAAC,0CAA0C;IACzE,IAAI,CAAC;QACH,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC;IACnE,CAAC;IAAC,MAAM,CAAC,CAAC,uCAAuC,CAAC,CAAC;IACnD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,gFAAgF;AAEhF,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,IAAU;IAC3C,MAAM,GAAG,GAAK,IAAI,CAAC,GAAG,EAAE,CAAC;IACzB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;IAEjC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE;QACzC,OAAO,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;IACzD,CAAC,EAAE,UAAU,CAAC,CAAC;IAEf,MAAM,QAAQ,GAAmB,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE;QAC7D,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;aACpD,KAAK,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,6CAA6C;aACjE,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YACf,IAAI,EAAG,EAAwB,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;YAC7D,IAAI,EAAG,EAAwB,CAAC,IAAI;YACpC,KAAK,EAAE,CAAC;SACT,CAAC,CAAC,CAAC;IACR,CAAC,EAAE,WAAW,CAAC,CAAC;IAEhB,MAAM,KAAK,GAAG,QAAQ;SACnB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;SACzC,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC;SACrB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAEvC,MAAM,KAAK,GAAmB,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,EAAE;QAC3D,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACzF,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,yBAAyB,CAAC,CAAC;iBACjE,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC;iBACvB,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;gBACV,MAAM,KAAK,GAAG,EAAsB,CAAC;gBACrC,MAAM,EAAE,GAAS,KAAK,CAAC,EAAE,CAAG,CAAC,CAAC,IAAI,KAAK,CAAC,EAAE,EAAE,CAAY,CAAC,CAAC,EAAE,CAAC;gBAC7D,MAAM,IAAI,GAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,KAAK,CAAC,IAAI,IAAI,CAAG,CAAC,CAAC,EAAE,CAAC;gBAC9D,MAAM,GAAG,GAAQ,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;gBAC1C,MAAM,QAAQ,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBACtD,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,GAAG,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC;YACzH,CAAC,CAAC;SACL,CAAC,CAAC,CAAC;IACN,CAAC,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC;IAEjD,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AAC5C,CAAC;AAED,gFAAgF;AAEhF,MAAM,UAAU,gBAAgB,CAAC,IAAY,EAAE,GAAW;IACxD,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7B,MAAM,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;IAEvC,CAAC,CAAC,yBAAyB,CAAC,CAAC,MAAM,EAAE,CAAC;IACtC,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;IAEvF,MAAM,KAAK,GAAmB,EAAE,CAAC;IACjC,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE;QAC1B,IAAI,KAAK,CAAC,MAAM,IAAI,WAAW;YAAE,OAAO,KAAK,CAAC,CAAC,QAAQ;QACvD,MAAM,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC9C,IAAI,YAAY,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC;YACH,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC;QAC1E,CAAC;QAAC,MAAM,CAAC,CAAC,4BAA4B,CAAC,CAAC;QACxC,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,IAAI,CAAC,EAAE,CAAC;YACrC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,KAAK,GAAmB,EAAE,CAAC;IACjC,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE;QACjD,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QAC9C,MAAM,MAAM,GAAoB,EAAE,CAAC;QACnC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE;YACnF,MAAM,EAAE,GAAM,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAG,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAW,CAAC,CAAC,EAAE,CAAC;YACnF,MAAM,IAAI,GAAI,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YACnF,MAAM,GAAG,GAAK,CAAC,MAAM,IAAI,OAAO,CAAC,CAAC,CAAE,OAA4B,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;YAC/F,MAAM,QAAQ,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACtD,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAS,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;gBACnE,IAAI,EAAS,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG;gBAC3C,WAAW,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE;gBACjD,QAAQ;aACT,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AAC5C,CAAC;AAED,gFAAgF;AAEhF,MAAM,UAAU,cAAc,CAAC,QAAsB;IACnD,MAAM,KAAK,GAAa;QACtB,iBAAiB;QACjB,QAAQ,QAAQ,CAAC,GAAG,EAAE;QACtB,UAAU,QAAQ,CAAC,KAAK,EAAE;QAC1B,EAAE;QACF,eAAe;QACf,QAAQ,CAAC,IAAI,EAAE,iDAAiD;QAChE,EAAE;KACH,CAAC;IAEF,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,KAAK,CAAC,IAAI,CAAC,cAAc,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;QACnD,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;YAClC,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,IAAI,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAC/D,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,KAAK,CAAC,IAAI,CAAC,cAAc,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;QACnD,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;YAClC,KAAK,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;YAC1C,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBAChC,KAAK,CAAC,IAAI,CAAC,OAAO,KAAK,CAAC,IAAI,UAAU,KAAK,CAAC,IAAI,kBAAkB,KAAK,CAAC,WAAW,eAAe,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC;YACvH,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
export declare const DEFAULTS: {
|
|
2
|
-
readonly model: "gpt-4o";
|
|
3
|
-
readonly temperature: 1;
|
|
4
|
-
readonly maxIterations: 30;
|
|
5
|
-
readonly timeoutMs: 120000;
|
|
6
|
-
readonly maxWaitMs: 5000;
|
|
7
|
-
readonly maxTypeLength: 1000;
|
|
8
|
-
readonly maxTokens: 2500;
|
|
9
|
-
readonly gotoTimeoutMs: 15000;
|
|
10
|
-
};
|
|
11
|
-
//# sourceMappingURL=defaults.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../src/config/defaults.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,QAAQ;;;;;;;;;CASX,CAAC"}
|
package/dist/config/defaults.js
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
export const DEFAULTS = {
|
|
2
|
-
model: "gpt-4o",
|
|
3
|
-
temperature: 1,
|
|
4
|
-
maxIterations: 30,
|
|
5
|
-
timeoutMs: 120_000,
|
|
6
|
-
maxWaitMs: 5_000,
|
|
7
|
-
maxTypeLength: 1_000,
|
|
8
|
-
maxTokens: 2_500, // limite de completion tokens por chamada LLM
|
|
9
|
-
gotoTimeoutMs: 15_000,
|
|
10
|
-
};
|
|
11
|
-
//# sourceMappingURL=defaults.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/config/defaults.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,KAAK,EAAE,QAAQ;IACf,WAAW,EAAE,CAAC;IACd,aAAa,EAAE,EAAE;IACjB,SAAS,EAAE,OAAO;IAClB,SAAS,EAAE,KAAK;IAChB,aAAa,EAAE,KAAK;IACpB,SAAS,EAAE,KAAK,EAAE,8CAA8C;IAChE,aAAa,EAAE,MAAM;CACb,CAAC"}
|
package/dist/config/schema.d.ts
DELETED
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
import { z } from "zod";
|
|
2
|
-
export declare const agentConfigSchema: z.ZodObject<{
|
|
3
|
-
llmApiKey: z.ZodString;
|
|
4
|
-
llmBaseUrl: z.ZodOptional<z.ZodString>;
|
|
5
|
-
port: z.ZodDefault<z.ZodNumber>;
|
|
6
|
-
model: z.ZodDefault<z.ZodString>;
|
|
7
|
-
temperature: z.ZodDefault<z.ZodNumber>;
|
|
8
|
-
maxTokens: z.ZodDefault<z.ZodNumber>;
|
|
9
|
-
topP: z.ZodOptional<z.ZodNumber>;
|
|
10
|
-
frequencyPenalty: z.ZodOptional<z.ZodNumber>;
|
|
11
|
-
presencePenalty: z.ZodOptional<z.ZodNumber>;
|
|
12
|
-
maxIterations: z.ZodDefault<z.ZodNumber>;
|
|
13
|
-
timeoutMs: z.ZodDefault<z.ZodNumber>;
|
|
14
|
-
maxWaitMs: z.ZodDefault<z.ZodNumber>;
|
|
15
|
-
gotoTimeoutMs: z.ZodDefault<z.ZodNumber>;
|
|
16
|
-
allowedDomains: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
17
|
-
blockedDomains: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
18
|
-
}, "strip", z.ZodTypeAny, {
|
|
19
|
-
llmApiKey: string;
|
|
20
|
-
port: number;
|
|
21
|
-
model: string;
|
|
22
|
-
temperature: number;
|
|
23
|
-
maxTokens: number;
|
|
24
|
-
maxIterations: number;
|
|
25
|
-
timeoutMs: number;
|
|
26
|
-
maxWaitMs: number;
|
|
27
|
-
gotoTimeoutMs: number;
|
|
28
|
-
llmBaseUrl?: string | undefined;
|
|
29
|
-
topP?: number | undefined;
|
|
30
|
-
frequencyPenalty?: number | undefined;
|
|
31
|
-
presencePenalty?: number | undefined;
|
|
32
|
-
allowedDomains?: string[] | undefined;
|
|
33
|
-
blockedDomains?: string[] | undefined;
|
|
34
|
-
}, {
|
|
35
|
-
llmApiKey: string;
|
|
36
|
-
llmBaseUrl?: string | undefined;
|
|
37
|
-
port?: number | undefined;
|
|
38
|
-
model?: string | undefined;
|
|
39
|
-
temperature?: number | undefined;
|
|
40
|
-
maxTokens?: number | undefined;
|
|
41
|
-
topP?: number | undefined;
|
|
42
|
-
frequencyPenalty?: number | undefined;
|
|
43
|
-
presencePenalty?: number | undefined;
|
|
44
|
-
maxIterations?: number | undefined;
|
|
45
|
-
timeoutMs?: number | undefined;
|
|
46
|
-
maxWaitMs?: number | undefined;
|
|
47
|
-
gotoTimeoutMs?: number | undefined;
|
|
48
|
-
allowedDomains?: string[] | undefined;
|
|
49
|
-
blockedDomains?: string[] | undefined;
|
|
50
|
-
}>;
|
|
51
|
-
export declare const runOptionsSchema: z.ZodObject<{
|
|
52
|
-
url: z.ZodString;
|
|
53
|
-
prompt: z.ZodString;
|
|
54
|
-
}, "strip", z.ZodTypeAny, {
|
|
55
|
-
url: string;
|
|
56
|
-
prompt: string;
|
|
57
|
-
}, {
|
|
58
|
-
url: string;
|
|
59
|
-
prompt: string;
|
|
60
|
-
}>;
|
|
61
|
-
export type ValidatedConfig = z.infer<typeof agentConfigSchema>;
|
|
62
|
-
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgB5B,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;;;;;;EAG3B,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC"}
|