Chattest-helpers.ts1 match
152*/
153export function setupMockDOM() {
154// Mock clipboard API
155Object.assign(navigator, {
156clipboard: {
Chatpackage.json1 match
2"name": "anthropic-streaming-chat-mcp",
3"version": "1.0.0",
4"description": "A mobile-optimized single page chat application that uses the Anthropic Messages API with real-time streaming and MCP (Model Context Protocol) server support",
5"type": "module",
6"scripts": {
invest-trackernews_api.tsx1 match
1// news_api.tsx ā tiny helper: http://ā¦/latest?limit=6
2import { blob } from "https://esm.town/v/std/blob";
3
untitled-5696htmlTemplate.ts4 matches
411<button class="glass-button" data-node-type="input">š Entrada</button>
412<button class="glass-button" data-node-type="output">š¤ SaĆda</button>
413<button class="glass-button" data-node-type="api">š API</button>
414<button class="glass-button" data-node-type="end">ā¹ļø Fim</button>
415<button class="glass-button" id="saveFlowchart">š¾ Salvar</button>
464<li><strong>š Entrada:</strong> Coleta de dados ou informaƧƵes.</li>
465<li><strong>š¤ SaĆda:</b> Exibição de resultados ou informaƧƵes.</li>
466<li><strong>š API:</strong> Chamada a uma API externa.</li>
467<li><strong>ā¹ļø Fim:</strong> O ponto final do seu fluxograma.</li>
468</ul>
506decision: { label: "DecisĆ£o", icon: "ā", color: "#FFC107", subtypes: ["Booleano", "Comparação", "Intervalo", "PadrĆ£o"] },
507input: { label: "Entrada", icon: "š", color: "#9C27B0", subtypes: ["Texto", "NĆŗmero", "Arquivo", "Seleção"] },
508output: { label: "SaĆda", icon: "š¤", color: "#FF5722", subtypes: ["Exibir", "Arquivo", "Notificação", "Resposta API"] },
509api: { label: "API", icon: "š", color: "#673AB7", subtypes: ["REST API", "GraphQL", "Webhook", "Database"] },
510end: { label: "Fim", icon: "ā¹ļø", color: "#F4436", subtypes: [] },
511};
untitled-5696flowchart-editor-valtown.ts20 matches
5function calculateEstimatedDuration(steps) {
6const baseDuration = steps.length * 2;
7const complexSteps = steps.filter(s => ["api_call", "database_operation"].includes(s.action)).length;
8return baseDuration + (complexSteps * 5);
9}
21steps.forEach(step => {
22switch (step.action) {
23case "make_api_call":
24permissions.add("network_access");
25break;
41const dependencies = new Set();
42steps.forEach(step => {
43if (step.action === "make_api_call") {
44dependencies.add("http_client");
45}
105instructions.push({ type: "display_output", content: node.text, format: node.subtype });
106break;
107case "api":
108instructions.push({ type: "make_api_call", endpoint: node.text, method: node.subtype, description: node.description });
109break;
110case "end":
133}
134135// --- api.ts ---
136// Salvar fluxograma (simulado - em produção usaria std/blob)
137async function saveFlowchart(req) {
669<button class="glass-button" data-node-type="input">š Entrada</button>
670<button class="glass-button" data-node-type="output">š¤ SaĆda</button>
671<button class="glass-button" data-node-type="api">š API</button>
672<button class="glass-button" data-node-type="end">ā¹ļø Fim</button>
673<button class="glass-button" id="saveFlowchart">š¾ Salvar</button>
724<li>š <strong>Entrada:</strong> Coleta de dados ou informaƧƵes.</li>
725<li>š¤ <strong>SaĆda:</strong> Exibição ou entrega de resultados.</li>
726<li>š <strong>API:</strong> Interação com serviƧos externos via API.</li>
727<li>ā¹ļø <strong>Fim:</strong> Ponto de saĆda do fluxograma.</li>
728</ul>
944newNode.subtype = 'Texto';
945break;
946case 'api':
947newNode.icon = 'š';
948newNode.subtypes = ['GET', 'POST', 'PUT', 'DELETE'];
1042const flowchartName = prompt('Nome do fluxograma para salvar:');
1043if (flowchartName) {
1044const response = await fetch('/api/save-flowchart', {
1045method: 'POST',
1046headers: { 'Content-Type': 'application/json' },
1055const flowchartId = prompt('ID do fluxograma para carregar:');
1056if (flowchartId) {
1057const response = await fetch(`/api/load-flowchart?id=${flowchartId}`);
1058const result = await response.json();
1059if (result.success) {
10691070document.getElementById('exportJson').addEventListener('click', async () => {
1071const response = await fetch('/api/export-json', {
1072method: 'POST',
1073headers: { 'Content-Type': 'application/json' },
1099try {
1100const jsonData = JSON.parse(event.target.result);
1101const response = await fetch('/api/import-json', {
1102method: 'POST',
1103headers: { 'Content-Type': 'application/json' },
11241125document.getElementById('convertToAI').addEventListener('click', async () => {
1126const response = await fetch('/api/convert-to-ai', {
1127method: 'POST',
1128headers: { 'Content-Type': 'application/json' },
1180const path = url.pathname;
11811182// Roteamento da API
1183if (path === '/api/save-flowchart' && req.method === 'POST') {
1184return await saveFlowchart(req);
1185}
1186
1187if (path === '/api/convert-to-ai' && req.method === 'POST') {
1188return await convertToAI(req);
1189}
1190
1191if (path === '/api/load-flowchart' && req.method === 'GET') {
1192return await loadFlowchart(req);
1193}
11941195if (path === '/api/export-json' && req.method === 'POST') {
1196return await exportJSON(req);
1197}
11981199if (path === '/api/import-json' && req.method === 'POST') {
1200return await importJSON(req);
1201}
untitled-5696README.md4 matches
47| **DecisĆ£o** | ā | CondiƧƵes | Booleano, Comparação, Intervalo, PadrĆ£o |
48| **Entrada** | š | Coletar dados | Texto, NĆŗmero, Arquivo, Seleção |
49| **SaĆda** | š¤ | Exibir resultados | Exibir, Arquivo, Notificação, Resposta API |
50| **API** | š | Chamadas externas | REST API, GraphQL, Webhook, Database |
51| **Fim** | ā¹ļø | Ponto de tĆ©rmino | - |
52120- `collect_user_input`: Coleta de entrada do usuƔrio
121- `display_output`: Exibição de resultados
122- `make_api_call`: Chamadas para APIs
123- `database_operation`: OperaƧƵes de banco de dados
124- `iterate`: Loops e iteraƧƵes
196- **Runtime**: Deno (Val.town)
197- **Bibliotecas**: Nenhuma dependĆŖncia externa
198- **APIs**: Web APIs padrão (DOM, Fetch, etc.)
199200## š Suporte
untitled-5696aiConverter.ts4 matches
31'input': 'user_input',
32'output': 'system_output',
33'api': 'api_call',
34'database': 'data_operation',
35'loop': 'iteration'
115break;
116117case 'api':
118step.action = "make_api_call";
119step.parameters = {
120url: node.url || "",
200},
201{
202type: "api_error",
203action: "log_and_continue",
204fallback_step: "error_notification"
untitled-5696client.ts4 matches
411<button class="glass-button" data-node-type="input">š Entrada</button>
412<button class="glass-button" data-node-type="output">š¤ SaĆda</button>
413<button class="glass-button" data-node-type="api">š API</button>
414<button class="glass-button" data-node-type="end">ā¹ļø Fim</button>
415<button class="glass-button" id="saveFlowchart">š¾ Salvar</button>
464<li><strong>š Entrada:</strong> Coleta de dados ou informaƧƵes.</li>
465<li><strong>š¤ SaĆda:</strong> Exibição de resultados ou informaƧƵes.</li>
466<li><strong>š API:</strong> Chamada a uma API externa.</li>
467<li><strong>ā¹ļø Fim:</strong> O ponto final do seu fluxograma.</li>
468</ul>
506decision: { label: "DecisĆ£o", icon: "ā", color: "#FFC107", subtypes: ["Booleano", "Comparação", "Intervalo", "PadrĆ£o"] },
507input: { label: "Entrada", icon: "š", color: "#9C27B0", subtypes: ["Texto", "NĆŗmero", "Arquivo", "Seleção"] },
508output: { label: "SaĆda", icon: "š¤", color: "#FF5722", subtypes: ["Exibir", "Arquivo", "Notificação", "Resposta API"] },
509api: { label: "API", icon: "š", color: "#673AB7", subtypes: ["REST API", "GraphQL", "Webhook", "Database"] },
510end: { label: "Fim", icon: "ā¹ļø", color: "#F4436", subtypes: [] },
511};
untitled-5696main.ts7 matches
1// main.ts
23import { saveFlowchart, convertToAI, loadFlowchart, exportJSON, importJSON } from './api';
4import { getMainHTML } from './htmlTemplate';
58const path = url.pathname;
910// Roteamento da API
11if (path === '/api/save-flowchart' && req.method === 'POST') {
12return await saveFlowchart(req);
13}
14
15if (path === '/api/convert-to-ai' && req.method === 'POST') {
16return await convertToAI(req);
17}
18
19if (path === '/api/load-flowchart' && req.method === 'GET') {
20return await loadFlowchart(req);
21}
2223if (path === '/api/export-json' && req.method === 'POST') {
24return await exportJSON(req);
25}
2627if (path === '/api/import-json' && req.method === 'POST') {
28return await importJSON(req);
29}
untitled-5696DEMO.md8 matches
15- Arrastar e soltar componentes da paleta
16- Edição de nós com duplo-clique
17- MĆŗltiplos tipos de nós: InĆcio, Processo, DecisĆ£o, Entrada, SaĆda, API, Fim
18- Subtipos especĆficos para cada tipo de nó
1963#### š¤ SaĆda
64- **Função**: Exibir resultados ou dados
65- **Subtipos**: Exibir, Arquivo, Notificação, Resposta API
66- **Uso**: Apresentação de resultados
6768#### š API
69- **Função**: Chamadas para APIs externas
70- **Subtipos**: REST API, GraphQL, Webhook, Database
71- **Uso**: Integração com serviços externos
7288[InĆcio] ā [Entrada: Nome do usuĆ”rio] ā [Processo: Validar nome] ā [DecisĆ£o: Nome vĆ”lido?]
89ā (Sim) ā (NĆ£o)
90[API: Buscar dados] ā [SaĆda: Exibir resultado] ā [Fim] [SaĆda: Erro] ā [Fim]
91```
92160### Tratamento de Erros
161- Retry automƔtico para timeouts
162- Fallbacks para erros de API
163- Validação de entrada com retry
164169- `collect_user_input`: Coleta de entrada
170- `display_output`: Exibição de saĆda
171- `make_api_call`: Chamadas de API
172- `database_operation`: OperaƧƵes de banco
173- `iterate`: Loops e iteraƧƵes