1 line
2.3 KiB
JSON
1 line
2.3 KiB
JSON
{"repo": "ceccpro/ai-cli", "files": {"ai": {"e61732553824076f6a847d3e04f5ae15de56550d": {"t": 1785846895.3394043, "n": 2001, "h": "cb44e90c304f7248", "c": "#!/bin/bash\n\n# Prompt base\nINITIAL_PROMPT=\"Responde de manera concisa y clara. No utilices más de 100 palabras. Evita saludos y despedidas. No respondas en otro idioma que no sea español. No utilices Markdown al dar snippets de código (En ese caso solo da el snippet).\"\n\n# Defaults\nMESSAGE=\"\"\nAPI_KEY=\"${GEMINI_API_KEY:-}\"\n\n# Parseo de argumentos\nwhile [[ $# -gt 0 ]]; do\n case \"$1\" in\n --a|--api-key)\n if [[ -z \"$2\" || \"$2\" == --* ]]; then\n echo \"Error: --api-key requiere una clave.\"\n exit 1\n fi\n API_KEY=\"$2\"\n shift 2\n ;;\n --)\n shift\n MESSAGE=\"$*\"\n break\n ;;\n -*)\n echo \"Argumento desconocido: $1\"\n exit 1\n ;;\n *)\n MESSAGE=\"$MESSAGE $1\"\n shift\n ;;\n esac\ndone\n\nMESSAGE=\"${MESSAGE# }\"\n\n# Validaciones\n[[ -z \"$MESSAGE\" ]] && { echo \"Error: mensaje vacío.\"; exit 1; }\n[[ -z \"$API_KEY\" ]] && { echo \"Error: no se proporcionó una API key.\"; exit 1; }\n\nif [[ \"$API_KEY\" != AIza* ]]; then\n echo \"Error: la API key no parece válida.\"\n exit 1\nfi\n\n# Mensaje final\nFINAL_MESSAGE=\"$INITIAL_PROMPT\n\n$MESSAGE\"\n\n# Construir JSON de forma segura\nDATA=$(jq -n --arg text \"$FINAL_MESSAGE\" '{\n contents: [\n {\n parts: [\n { text: $text }\n ]\n }\n ]\n}')\n\n# Request\nRESPONSE=$(curl -sS --fail \\\n -H \"x-goog-api-key: $API_KEY\" \\\n -H \"Content-Type: application/json\" \\\n -X POST \\\n -d \"$DATA\" \\\n \"https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash:generateContent\" \\\n || echo '{\"__curl_error__\":true}')\n\n# Normalizar respuestas raras\nNORMALIZED=$(echo \"$RESPONSE\" | jq -c '\n if (.candidates? and .candidates[0].content?.parts?[0]?.text?) then\n { text: .candidates[0].content.parts[0].text }\n else\n .\n end\n' 2>/dev/null) || NORMALIZED=\"$RESPONSE\"\n\n# Extraer texto\nTEXT=$(echo \"$NORMALIZED\" | jq -r '\n .text\n // .contents[0].parts[0].text\n // .candidates[0].content[0].text\n // empty\n')\n\nif [[ -n \"$TEXT\" ]]; then\n echo \"$TEXT\"\nelse\n echo \"$NORMALIZED\"\nfi\n"}}}} |