Not in the top 1,000 by GitHub stars
duotify/GitHubClawToolkit
npx skills add duotify/GitHubClawSkills
History
Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.
View weekly changes
skills/agent-browser/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
583144b0947e → 583144b0947e
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 583144b0947e
No earlier version was observed for comparison.
skills/felo-search/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
583144b0947e → 583144b0947e
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 583144b0947e
No earlier version was observed for comparison.
skills/felo-slides/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
583144b0947e → 583144b0947e
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 583144b0947e
No earlier version was observed for comparison.
skills/felo-superAgent/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
583144b0947e → 583144b0947e
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 583144b0947e
No earlier version was observed for comparison.
skills/felo-web-fetch/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
583144b0947e → 583144b0947e
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 583144b0947e
No earlier version was observed for comparison.
skills/felo-x-search/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
583144b0947e → 583144b0947e
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 583144b0947e
No earlier version was observed for comparison.
skills/find-skills/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Instructions only → After Instructions only
583144b0947e → 583144b0947e
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 583144b0947e
No earlier version was observed for comparison.
skills/gemini-audio-transcriber/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
583144b0947e → 583144b0947e
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 583144b0947e
No earlier version was observed for comparison.
skills/gemini-deep-researcher/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
583144b0947e → 583144b0947e
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 583144b0947e
No earlier version was observed for comparison.
skills/gemini-image-describer/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
583144b0947e → 583144b0947e
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 583144b0947e
No earlier version was observed for comparison.
skills/gemini-lyria-3/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
583144b0947e → 583144b0947e
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 583144b0947e
No earlier version was observed for comparison.
skills/gemini-nanobanana/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
583144b0947e → 583144b0947e
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 583144b0947e
No earlier version was observed for comparison.
skills/gemini-summary/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
583144b0947e → 583144b0947e
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 583144b0947e
No earlier version was observed for comparison.
skills/google-stitch/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
583144b0947e → 583144b0947e
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 583144b0947e
No earlier version was observed for comparison.
skills/skill-creator/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
583144b0947e → 583144b0947e
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 583144b0947e
No earlier version was observed for comparison.
skills/telegram-notify/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
583144b0947e → 583144b0947e
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 583144b0947e
No earlier version was observed for comparison.
templates/codex-felo/.agents/skills/felo-search/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
583144b0947e → 583144b0947e
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 583144b0947e
No earlier version was observed for comparison.
templates/codex-felo/.agents/skills/felo-slides/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
583144b0947e → 583144b0947e
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 583144b0947e
No earlier version was observed for comparison.
templates/codex-felo/.agents/skills/felo-web-fetch/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
583144b0947e → 583144b0947e
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 583144b0947e
No earlier version was observed for comparison.
templates/codex-felo/.agents/skills/felo-x-search/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
583144b0947e → 583144b0947e
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 583144b0947e
No earlier version was observed for comparison.
templates/codex-gemini-api/.agents/skills/gemini-audio-transcriber/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
583144b0947e → 583144b0947e
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 583144b0947e
No earlier version was observed for comparison.
templates/codex-gemini-api/.agents/skills/gemini-deep-researcher/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
583144b0947e → 583144b0947e
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 583144b0947e
No earlier version was observed for comparison.
templates/codex-gemini-api/.agents/skills/gemini-image-describer/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
583144b0947e → 583144b0947e
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 583144b0947e
No earlier version was observed for comparison.
templates/codex-gemini-api/.agents/skills/gemini-nanobanana/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
583144b0947e → 583144b0947e
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 583144b0947e
No earlier version was observed for comparison.
templates/codex-gemini-api/.agents/skills/gemini-summary/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
583144b0947e → 583144b0947e
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 583144b0947e
No earlier version was observed for comparison.
templates/codex-gemini-api/.agents/skills/google-stitch/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
583144b0947e → 583144b0947e
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 583144b0947e
No earlier version was observed for comparison.
templates/copilot-felo/.agents/skills/felo-search/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
583144b0947e → 583144b0947e
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 583144b0947e
No earlier version was observed for comparison.
templates/copilot-felo/.agents/skills/felo-slides/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
583144b0947e → 583144b0947e
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 583144b0947e
No earlier version was observed for comparison.
templates/copilot-felo/.agents/skills/felo-web-fetch/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
583144b0947e → 583144b0947e
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 583144b0947e
No earlier version was observed for comparison.
templates/copilot-felo/.agents/skills/felo-x-search/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
583144b0947e → 583144b0947e
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 583144b0947e
No earlier version was observed for comparison.
templates/copilot-gemini-api/.agents/skills/gemini-audio-transcriber/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
583144b0947e → 583144b0947e
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 583144b0947e
No earlier version was observed for comparison.
templates/copilot-gemini-api/.agents/skills/gemini-deep-researcher/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
583144b0947e → 583144b0947e
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 583144b0947e
No earlier version was observed for comparison.
templates/copilot-gemini-api/.agents/skills/gemini-image-describer/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
583144b0947e → 583144b0947e
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 583144b0947e
No earlier version was observed for comparison.
templates/copilot-gemini-api/.agents/skills/gemini-nanobanana/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
583144b0947e → 583144b0947e
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 583144b0947e
No earlier version was observed for comparison.
templates/copilot-gemini-api/.agents/skills/gemini-summary/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
583144b0947e → 583144b0947e
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 583144b0947e
No earlier version was observed for comparison.
templates/copilot-gemini-api/.agents/skills/google-stitch/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
583144b0947e → 583144b0947e
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 583144b0947e
No earlier version was observed for comparison.
Verified commit 583144b0947e3d551f0c4bff0bcc6015c61bf683
git clone --filter=blob:none --no-checkout https://github.com/duotify/GitHubClawToolkit.git .hotskills/duotify-githubclawtoolkit && git -C .hotskills/duotify-githubclawtoolkit checkout --detach 583144b0947e3d551f0c4bff0bcc6015c61bf683
# Copy each selected skill directory from .hotskills/duotify-githubclawtoolkit into .agents/skills/<skill-name>/Heat
0.4- Star growth, last 7 daysNot available
- Star growth, last 24 hoursNot available
- Rank movement, last 7 daysNot available
- Commits, last 30 daysNot available
- Accounts asking about it through MCP, last 7 daysNot available
- Hot votes this weekNot available
Heat never changes the order by stars, and sponsorship never touches it. How heat works
Stars over time
30-day change not yet available: not enough history.
Individual skills in this repository
- agent-browser
skills/agent-browser - felo-search
skills/felo-search - felo-slides
skills/felo-slides - felo-superAgent
skills/felo-superAgent - felo-web-fetch
skills/felo-web-fetch - felo-x-search
skills/felo-x-search - find-skills
skills/find-skills - gemini-audio-transcriber
skills/gemini-audio-transcriber - gemini-deep-researcher
skills/gemini-deep-researcher - gemini-image-describer
skills/gemini-image-describer - gemini-lyria-3
skills/gemini-lyria-3 - gemini-nanobanana
skills/gemini-nanobanana - gemini-summary
skills/gemini-summary - google-stitch
skills/google-stitch - skill-creator
skills/skill-creator - telegram-notify
skills/telegram-notify - felo-search
templates/codex-felo/.agents/skills/felo-search - felo-slides
templates/codex-felo/.agents/skills/felo-slides - felo-web-fetch
templates/codex-felo/.agents/skills/felo-web-fetch - felo-x-search
templates/codex-felo/.agents/skills/felo-x-search - gemini-audio-transcriber
templates/codex-gemini-api/.agents/skills/gemini-audio-transcriber - gemini-deep-researcher
templates/codex-gemini-api/.agents/skills/gemini-deep-researcher - gemini-image-describer
templates/codex-gemini-api/.agents/skills/gemini-image-describer - gemini-nanobanana
templates/codex-gemini-api/.agents/skills/gemini-nanobanana - gemini-summary
templates/codex-gemini-api/.agents/skills/gemini-summary - google-stitch
templates/codex-gemini-api/.agents/skills/google-stitch - felo-search
templates/copilot-felo/.agents/skills/felo-search - felo-slides
templates/copilot-felo/.agents/skills/felo-slides - felo-web-fetch
templates/copilot-felo/.agents/skills/felo-web-fetch - felo-x-search
templates/copilot-felo/.agents/skills/felo-x-search - gemini-audio-transcriber
templates/copilot-gemini-api/.agents/skills/gemini-audio-transcriber - gemini-deep-researcher
templates/copilot-gemini-api/.agents/skills/gemini-deep-researcher - gemini-image-describer
templates/copilot-gemini-api/.agents/skills/gemini-image-describer - gemini-nanobanana
templates/copilot-gemini-api/.agents/skills/gemini-nanobanana - gemini-summary
templates/copilot-gemini-api/.agents/skills/gemini-summary - google-stitch
templates/copilot-gemini-api/.agents/skills/google-stitch
How it works
agent-browser
When your agent uses it
Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling forms, clicking buttons, taking screenshots, extracting data, testing web apps, or automating any browser task. Triggers include requests to "open a website", "fill out a form", "click a button", "take a screenshot", "scrape data from a page", "test this web app", "login to a site", "automate browser actions", or any task requiring programmatic web interaction.
What it loads into context
Frontmatter
112 tokensAlways available to the agent
SKILL.md
1,531 tokensWhen the skill is activated
Reference documents
11,048 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Step 0: Ensure agent-browser Is Installed
- Core Workflow
- Essential Commands
- Command Chaining
- Common Patterns
- Security (Important)
- Deep-Dive References
- Ready-to-Use Templates
Scripts executed separately
install.shtemplates/authenticated-session.shtemplates/capture-workflow.shtemplates/form-automation.sh
Files
README.mddoc2,614 bytesSKILL.mdcore6,877 bytesSKILL.mdcore6,877 bytesSKILL.mdcore6,877 bytesSKILL.mdcore6,877 bytesSKILL.mdcore6,877 bytesSKILL.mdcore6,877 bytesSKILL.mdcore6,877 bytesSKILL.mdcore6,877 bytesSKILL.mdcore6,877 bytesSKILL.mdcore6,877 bytesSKILL.mdcore6,877 bytesSKILL.mdcore6,877 bytesgithubclaw.jsonasset713 bytesinstall.shruns964 bytesreferences/authentication.mddoc8,432 bytesreferences/commands.mddoc12,429 bytesreferences/profiling.mddoc3,405 bytesreferences/proxy-support.mddoc4,971 bytesreferences/session-management.mddoc4,337 bytesreferences/snapshot-refs.mddoc5,377 bytesreferences/video-recording.mddoc3,569 bytestemplates/authenticated-session.shruns3,678 bytestemplates/capture-workflow.shruns1,832 bytestemplates/form-automation.shruns1,838 bytes
Read SKILL.md
# Browser Automation with agent-browser
**IMPORTANT — You MUST use the `agent-browser` CLI for all browser automation tasks. Do NOT use puppeteer, playwright, or any other library. The `agent-browser` CLI is the only supported tool.**
## Step 0: Ensure agent-browser Is Installed
Before running any command, check if `agent-browser` is available. If not, install it and ensure a browser is ready:
```bash
if ! command -v agent-browser >/dev/null 2>&1; then
npm install --global agent-browser
fi
# Ensure Chrome/Chromium is detected. On CI (GitHub Actions), Chrome is typically pre-installed.View the complete source on GitHubfelo-search
When your agent uses it
Felo AI real-time web search for questions requiring current/live information. Triggers on current events, news, trends, real-time data, information queries, location queries, how-to guides, shopping, or when Claude's knowledge may be outdated.
What it loads into context
Frontmatter
58 tokensAlways available to the agent
SKILL.md
1,854 tokensWhen the skill is activated
Reference documents
675 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use
- Setup
- How to Execute
- Complete Examples
- Error Handling
- API Configuration
- Important Notes
- Additional Resources
Scripts executed separately
scripts/search.sh
Files
LICENSEasset1,087 bytesREADME.mddoc2,107 bytesSKILL.mdcore7,434 bytesSKILL.mdcore7,434 bytesSKILL.mdcore7,434 bytesSKILL.mdcore7,434 bytesSKILL.mdcore7,434 bytesSKILL.mdcore7,434 bytesSKILL.mdcore7,434 bytesSKILL.mdcore7,434 bytesSKILL.mdcore7,434 bytesSKILL.mdcore7,434 bytesSKILL.mdcore7,434 bytesSKILL.mdcore7,434 bytesSKILL.mdcore7,434 bytesgithubclaw.jsonasset665 bytesscripts/search.shruns1,383 bytes
Read SKILL.md
# Felo Search Skill
## When to Use
Trigger this skill for questions requiring current or real-time information:
- **Current events & news:** Recent developments, trending topics, breaking news
- **Real-time data:** Weather, stock prices, exchange rates, sports scores
- **Information queries:** "What is...", "Tell me about...", product reviews, comparisons, recommendations
- **Location-based:** Restaurants, travel destinations, local attractions, things to do
- **How-to guides:** Tutorials, step-by-step instructions, best practices
- **Shopping & prices:** Product prices, deals, "where to buy"
- **Trends & statistics:** Market trends, rankings, data analysis
- **Any question where Claude's knowledge may be outdated**View the complete source on GitHubfelo-slides
When your agent uses it
Generate PPT/slides with Felo PPT Task API in Claude Code. Use when users ask to create/make/generate/export presentations or slide decks, or when explicit commands like /felo-slides are used. Handles API key check, task creation, polling, and final ppt_url output.
What it loads into context
Frontmatter
69 tokensAlways available to the agent
SKILL.md
1,322 tokensWhen the skill is activated
Reference documents
620 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use
- Setup
- How to Execute
- Output Format
- Error Handling
- Important Notes
- References
Scripts executed separately
scripts/run_ppt_task.mjs
Files
LICENSEasset1,087 bytesREADME.mddoc1,880 bytesSKILL.mdcore4,869 bytesSKILL.mdcore4,869 bytesSKILL.mdcore4,869 bytesSKILL.mdcore4,869 bytesSKILL.mdcore4,869 bytesSKILL.mdcore4,869 bytesgithubclaw.jsonasset689 bytesscripts/run_ppt_task.mjsruns9,343 bytes
Read SKILL.md
# Felo Slides Skill
## When to Use
Trigger this skill for requests about creating presentation files:
- Create/generate slides from a topic or outline
- Turn notes into a PPT deck
- Build a presentation with a page count requirement
- Export presentation content into a shareable slide link
Trigger keywords:
- Chinese prompts about making slides or presentationsView the complete source on GitHubfelo-superAgent
When your agent uses it
Felo SuperAgent API: AI conversation with real-time SSE streaming on a persistent LiveDoc canvas. Use when users want SuperAgent chat, continuous conversation, logo/branding design, or e-commerce product images. CRITICAL: When user provides ANY image/product description (e.g. '生成一張...產品照片', '我的提示詞為: 生成...', 'generate a product photo'), ALWAYS call the API to generate the actual image — NEVER rewrite the prompt as text output. Do NOT use for tweet/X post writing — use felo-twitter-writer instead. Explicit commands: /felo-superagent.
What it loads into context
Frontmatter
133 tokensAlways available to the agent
SKILL.md
9,705 tokensWhen the skill is activated
Reference documents
3,304 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Constraints (MUST READ FIRST)
- When to Use
- Setup
- How to Execute
- Complete Workflow Examples
- Available Script Options
- API Workflow (Reference)
- Tool Support
- Error Handling
- Important Notes
- Decision Flowchart
- Style Library Script (`run_style_library.mjs`)
- References
Scripts executed separately
scripts/run_style_library.mjsscripts/run_superagent.mjs
Files
LICENSEasset1,091 bytesREADME.mddoc12,606 bytesSKILL.mdcore38,777 bytesSKILL.mdcore38,777 bytesSKILL.mdcore38,777 bytesSKILL.mdcore38,777 bytesSKILL.mdcore38,777 bytesSKILL.mdcore38,777 bytesSKILL.mdcore38,777 bytesSKILL.mdcore38,777 bytesSKILL.mdcore38,777 bytesSKILL.mdcore38,777 bytesSKILL.mdcore38,777 bytesSKILL.mdcore38,777 bytesSKILL.mdcore38,777 bytesSKILL.mdcore38,777 bytesSKILL.mdcore38,777 bytesSKILL.mdcore38,777 bytesSKILL.mdcore38,777 bytesSKILL.mdcore38,777 bytesSKILL.mdcore38,777 bytesSKILL.mdcore38,777 bytesSKILL.mdcore38,777 bytesSKILL.mdcore38,777 bytesSKILL.mdcore38,777 bytesSKILL.mdcore38,777 bytesSKILL.mdcore38,777 bytesSKILL.mdcore38,777 bytesclawhub.jsonasset744 bytesgithubclaw.jsonasset824 bytesscripts/run_style_library.mjsruns6,411 bytesscripts/run_superagent.mjsruns20,124 bytes
Read SKILL.md
# Felo SuperAgent Skill
## Constraints (MUST READ FIRST)
These rules are mandatory. Violating any of them will produce incorrect behavior.
0. **NEVER treat image/product descriptions as prompt-writing or prompt-optimization tasks.** If the user's message contains a visual description — regardless of phrasing such as "我的提示詞為", "my prompt is", "生成一張", "generate a photo of", "create a product image" — you MUST call the felo-superAgent API immediately to generate the actual image. Do NOT:
- Rewrite, refine, or "improve" the description as a text output
- Suggest keywords or aspect ratios as your final response
- Write a better prompt to result.md instead of calling the API
- Describe what you would do instead of doing it
The ONLY correct response to an image/product generation request is to **execute the skill** (run `run_superagent.mjs` with `--skill-id ecommerce-product-image` or `logo-and-branding`) and **output the resulting image URLs**. If you find yourself writing text about the image instead of calling the API, stop and call the API.
View the complete source on GitHubfelo-web-fetch
When your agent uses it
Extract webpage content with Felo Web Extract API. Use for turning URLs into html/markdown/text, selecting specific page areas with CSS selectors, and controlling extraction options like crawl mode, cookies, user-agent, and timeout.
What it loads into context
Frontmatter
54 tokensAlways available to the agent
SKILL.md
2,110 tokensWhen the skill is activated
Reference documents
617 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use
- Setup
- How to Execute
- API Reference (summary)
- Output Format
- Language
- Important Notes
- References
Scripts executed separately
scripts/run_web_fetch.mjs
Files
README.mddoc2,012 bytesSKILL.mdcore7,961 bytesSKILL.mdcore7,961 bytesSKILL.mdcore7,961 bytesSKILL.mdcore7,961 bytesSKILL.mdcore7,961 bytesSKILL.mdcore7,961 bytesSKILL.mdcore7,961 bytesSKILL.mdcore7,961 bytesSKILL.mdcore7,961 bytesSKILL.mdcore7,961 bytesSKILL.mdcore7,961 bytesSKILL.mdcore7,961 bytesgithubclaw.jsonasset698 bytesscripts/run_web_fetch.mjsruns10,309 bytes
Read SKILL.md
# Felo Web Fetch Skill
## When to Use
Trigger this skill when users want to extract or convert webpage content from a URL:
- Fetch or scrape content from a webpage URL
- Convert webpage content to `html`, `markdown`, or `text`
- Extract specific blocks using CSS selector
- Get article/main text from a link with readability mode
- Tune extraction behavior with crawl mode (`fast`/`fine`)
- Pass request details such as cookies, user-agent, timeout
Trigger keywords (examples):View the complete source on GitHubfelo-x-search
When your agent uses it
Search X (Twitter) data using Felo X Search API. Use when users ask about X/Twitter users, tweets, trending topics on X, tweet replies, or when explicit commands like /felo-x-search are used. Supports user lookup, user search, user tweets, tweet search, and tweet replies.
What it loads into context
Frontmatter
73 tokensAlways available to the agent
SKILL.md
1,966 tokensWhen the skill is activated
Reference documents
691 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use
- Setup
- How to Execute
- Output Format
- Link Validation
- Error Handling
- API Reference (summary)
- Important Notes
- References
Scripts executed separately
scripts/run_x_search.mjs
Files
README.mddoc2,067 bytesSKILL.mdcore6,631 bytesSKILL.mdcore6,631 bytesSKILL.mdcore6,631 bytesSKILL.mdcore6,631 bytesSKILL.mdcore6,631 bytesSKILL.mdcore6,631 bytesclawhub.jsonasset738 bytesgithubclaw.jsonasset665 bytesscripts/run_x_search.mjsruns15,870 bytes
Read SKILL.md
# Felo X Search Skill
## When to Use
Trigger this skill when the user wants to:
- Look up X (Twitter) user profiles by username
- Search for X users by keyword
- Get tweets from a specific X user
- Search tweets by keyword or advanced query
- Get replies to specific tweets
Trigger keywords (examples):
View the complete source on GitHubfind-skills
When your agent uses it
Use this skill when you need to discover, evaluate, and select the right Agent Skills for a task before implementation.
What it loads into context
Frontmatter
31 tokensAlways available to the agent
SKILL.md
74 tokensWhen the skill is activated
Reference documents
509 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
Files
README.mddoc1,682 bytesSKILL.mdcore367 bytesgithubclaw.jsonasset627 bytes
Read SKILL.md
# Find Skills
1. Identify the task goal and required capabilities.
2. Search available skill sources and shortlist candidates.
3. Recommend the best-fit skills with rationale, setup notes, and usage order.View the complete source on GitHubgemini-audio-transcriber
When your agent uses it
Use this skill when a user provides an audio file (local file or URL) and wants it transcribed into Traditional Chinese text. Prefer this skill for requests like "transcribe this audio", "convert speech to text", "轉錄這段錄音", "語音轉文字", or when converting meeting recordings, voice memos, or podcast clips to text. The output can be further processed by meeting-note-formatter for structured meeting notes.
What it loads into context
Frontmatter
101 tokensAlways available to the agent
SKILL.md
1,341 tokensWhen the skill is activated
Reference documents
808 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- 需求條件
- 使用方式
- Dry Run
- 輸出格式
- Instructions for the Agent
- 限制
- 錯誤處理
- 重新建置
Scripts executed separately
package.jsonscripts/transcribe.jssrc/transcribe.js
Files
.gitignoreasset51 bytesREADME.mddoc2,496 bytesSKILL.mdcore4,277 bytesSKILL.mdcore4,277 bytesSKILL.mdcore4,277 bytesSKILL.mdcore4,277 bytesSKILL.mdcore4,277 bytesSKILL.mdcore4,277 bytesSKILL.mdcore4,277 bytesSKILL.mdcore4,277 bytesSKILL.mdcore4,277 bytesSKILL.mdcore4,277 bytesSKILL.mdcore4,277 bytesSKILL.mdcore4,277 bytesgithubclaw.jsonasset731 bytespackage.jsonruns477 bytesscripts/transcribe.jsruns736,350 bytessrc/transcribe.jsruns5,224 bytes
Read SKILL.md
# 音訊轉繁中逐字稿 Skill
使用 Gemini Interactions API 的原生音訊理解能力,將音訊檔案轉錄為繁體中文逐字稿。支援本機檔案與遠端 URL,當偵測到多位說話者時會自動標記區分。輸出的逐字稿可搭配 `meeting-note-formatter` skill 進一步整理為結構化會議紀錄。
## 需求條件
- `GEMINI_API_KEY` 環境變數必須設定
- 有效的遠端音訊 URL、data URI 或可讀取的本機音訊檔案
- Node.js >= 20.0.0
- 支援格式:`.mp3`、`.wav`、`.ogg`、`.flac`、`.m4a`、`.aac`、`.webm`、`.wma`
## 使用方式
直接執行預建腳本 — **不需要 `npm install` 或額外設定**:View the complete source on GitHubgemini-deep-researcher
When your agent uses it
Use this skill when a user wants a comprehensive research report on any topic with cited sources. Prefer this skill for requests like "research this topic", "give me a deep analysis of", "幫我研究", "深度分析", or when the user needs a well-sourced report for decision-making, presentations, or learning. This skill uses Gemini's Deep Research agent and takes several minutes to complete.
What it loads into context
Frontmatter
94 tokensAlways available to the agent
SKILL.md
1,106 tokensWhen the skill is activated
Reference documents
858 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- 需求條件
- 使用方式
- Dry Run
- 輸出格式
- Instructions for the Agent
- 限制
- 錯誤處理
Scripts executed separately
package.jsonscripts/research.jssrc/research.js
Files
.gitignoreasset51 bytesREADME.mddoc2,682 bytesSKILL.mdcore3,641 bytesSKILL.mdcore3,641 bytesSKILL.mdcore3,641 bytesSKILL.mdcore3,641 bytesSKILL.mdcore3,641 bytesSKILL.mdcore3,641 bytesSKILL.mdcore3,641 bytesSKILL.mdcore3,641 bytesSKILL.mdcore3,641 bytesgithubclaw.jsonasset710 bytespackage.jsonruns470 bytesscripts/research.jsruns736,179 bytessrc/research.jsruns4,802 bytes
Read SKILL.md
# Deep Researcher — 深度研究報告工具
使用 Gemini Deep Research agent 針對任意主題產出結構完整、附引用來源的繁體中文研究報告。這是唯一使用 `agent`(而非 `model`)並以 `background: true` 搭配輪詢模式運作的 skill。
## 需求條件
- Node.js ≥ 20
- 環境變數 `GEMINI_API_KEY` 或 `GOOGLE_API_KEY`
- 已執行 `bun install && bun run build`(產生 `scripts/research.js`)
## 使用方式
### 命令列引數
View the complete source on GitHubgemini-image-describer
When your agent uses it
Use this skill when a user provides an image (local file or URL) and wants a detailed Traditional Chinese description of the image content. Prefer this skill for requests like "describe this image", "what's in this picture", "OCR this screenshot", "辨識這張圖", "描述這張照片", or when extracting text from screenshots or photos.
What it loads into context
Frontmatter
82 tokensAlways available to the agent
SKILL.md
1,320 tokensWhen the skill is activated
Reference documents
676 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- 需求條件
- 使用方式
- Dry Run
- 輸出格式
- Instructions for the Agent
- 限制
- 錯誤處理
- 實作備註
- 從原始碼重新建置
Scripts executed separately
package.jsonscripts/describe.jssrc/describe.js
Files
.gitignoreasset51 bytesREADME.mddoc2,122 bytesSKILL.mdcore4,364 bytesSKILL.mdcore4,364 bytesSKILL.mdcore4,364 bytesSKILL.mdcore4,364 bytesSKILL.mdcore4,364 bytesSKILL.mdcore4,364 bytesSKILL.mdcore4,364 bytesSKILL.mdcore4,364 bytesSKILL.mdcore4,364 bytesSKILL.mdcore4,364 bytesSKILL.mdcore4,364 bytesSKILL.mdcore4,364 bytesSKILL.mdcore4,364 bytesgithubclaw.jsonasset688 bytespackage.jsonruns459 bytesscripts/describe.jsruns623,214 bytessrc/describe.jsruns5,893 bytes
Read SKILL.md
# Image Describer Skill
此技能使用 Gemini Interactions API 的原生圖片理解能力,分析圖片並產生繁體中文(zh-TW)Markdown 描述,包含圖片場景描述、文字辨識(OCR)與關鍵物件列表。支援本地檔案路徑、遠端 URL 與 data URI。
## 需求條件
- `GEMINI_API_KEY` 環境變數必須已設定
- 有效的遠端圖片 URL、data URI 或可讀取的本地圖片檔案路徑
- Node.js >= 20.0.0
## 使用方式
直接執行預建置腳本 — **不需要 `npm install` 或其他額外設定**:
View the complete source on GitHubgemini-lyria-3
When your agent uses it
Use this skill when the user wants to generate music or audio tracks from lyrics or text prompts using Gemini Lyria-3, including AI music composition, audio generation, track creation, and requests like "幫我作一首歌", "生成音樂", "根據這段歌詞產生音軌", or "compose a track".
What it loads into context
Frontmatter
93 tokensAlways available to the agent
SKILL.md
1,200 tokensWhen the skill is activated
Reference documents
620 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- 需求條件
- 使用方式
- 輸出格式
- Instructions for the Agent
- 錯誤處理
Scripts executed separately
scripts/generate-track.js
Files
README.mddoc1,857 bytesSKILL.mdcore3,684 bytesSKILL.mdcore3,684 bytesSKILL.mdcore3,684 bytesSKILL.mdcore3,684 bytesSKILL.mdcore3,684 bytesgithubclaw.jsonasset687 bytesscripts/generate-track.jsruns3,779 bytes
Read SKILL.md
# Gemini Lyria-3 音樂生成 Skill
使用 Google Lyria-3 模型,從歌詞或文字提示詞生成 AI 音樂音軌,並將結果儲存為音訊檔案。
## 需求條件
- **GEMINI_API_KEY**:有效的 Google Gemini API 金鑰(設為環境變數)
- **Node.js** ≥ 20.0.0
- `scripts/generate-track.js` 為預先建置的零依賴 bundle,不需 `npm install`
## 使用方式
> ⚠<U+FE0F> **路徑安全**:skill 腳本位於 **repo 根目錄**的 `.agents/skills/` 下。若 cwd 不在 repo root,請先獨立執行 `git rev-parse --show-toplevel` 取得絕對路徑,再 `cd` 到該路徑後執行。**禁止**在指令中使用 `$(...)` 語法(會被 Copilot CLI 安全過濾器擋下)。
View the complete source on GitHubgemini-nanobanana
When your agent uses it
Use this skill when users ask to generate, edit, or compose images with Gemini Nano Banana 2, including text-to-image, image editing, multi-image composition, grounding, and output sizing/saving controls.
What it loads into context
Frontmatter
53 tokensAlways available to the agent
SKILL.md
1,281 tokensWhen the skill is activated
Reference documents
4,701 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Do this first
- Enforce these defaults
- Read references intentionally
- Output formatting rules
- Execution pattern
Scripts executed separately
scripts/gemini-nanobanana-cli.js
Files
README.mddoc2,260 bytesSKILL.mdcore4,718 bytesSKILL.mdcore4,718 bytesSKILL.mdcore4,718 bytesgithubclaw.jsonasset698 bytesreferences/image-generation-api.mddoc13,111 bytesreferences/sources.mddoc2,364 bytesscripts/gemini-nanobanana-cli.jsruns11,609 bytes
Read SKILL.md
## Do this first
- Use a Node.js wrapper (`@google/genai`) as the primary flow (multi-turn edits, grounding, advanced `generationConfig`).
- Use `scripts/gemini-nanobanana-cli.js` for quick single-turn generation/editing runs.
- Do **not** teach raw `curl`; keep guidance in JS CLI/wrapper form.
## Enforce these defaults
- API key source: `GEMINI_NANOBANANA_API_KEY` with fallback `GEMINI_API_KEY`.
- Default model: `gemini-3.1-flash-image-preview` (allow env override via `GEMINI_NANOBANANA_MODEL`).
- Reference images: support up to **14** total.
- Thinking strength: configurable (`minimal|low|medium|high`), default **High**.
- Aspect ratio: default **Auto**.
- Resolution: default **1K**.
- Output mode: default **Images only**.
- Google Search grounding tool: default **Disabled**; enable with `--google-search` when needed.View the complete source on GitHubgemini-summary
When your agent uses it
Use this skill when a user provides a web page URL, PDF file, video, or audio file and wants a Traditional Chinese summary. Prefer this skill for requests like "summarize this URL", "summarize this PDF", "summarize this video", "summarize this audio", "幫我摘要這篇", "這份報告重點是什麼", "幫我總結這段影片", "幫我摘要這段錄音", or when analyzing articles, documents, presentations, YouTube videos, audio recordings, or any content that needs a zh-TW summary. Automatically detects input type (web page, PDF, video, audio) — no manual type selection needed.
What it loads into context
Frontmatter
156 tokensAlways available to the agent
SKILL.md
2,182 tokensWhen the skill is activated
Reference documents
764 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- 需求條件
- 支援的輸入類型
- 使用方式
- 輸出格式
- Instructions for the Agent
- 限制
- 錯誤處理
- 重建方式
Scripts executed separately
package.jsonscripts/summarize.jssrc/summarize.js
Files
.gitignoreasset41 bytesREADME.mddoc2,371 bytesSKILL.mdcore6,779 bytesSKILL.mdcore6,779 bytesSKILL.mdcore6,779 bytesSKILL.mdcore6,779 bytesSKILL.mdcore6,779 bytesSKILL.mdcore6,779 bytesSKILL.mdcore6,779 bytesSKILL.mdcore6,779 bytesSKILL.mdcore6,779 bytesSKILL.mdcore6,779 bytesSKILL.mdcore6,779 bytesSKILL.mdcore6,779 bytesSKILL.mdcore6,779 bytesSKILL.mdcore6,779 bytesSKILL.mdcore6,779 bytesSKILL.mdcore6,779 bytesgithubclaw.jsonasset729 bytespackage.jsonruns513 bytesscripts/summarize.jsruns985,953 bytessrc/summarize.jsruns31,024 bytes
Read SKILL.md
# 內容摘要 Skill
統一的摘要工具,自動偵測輸入類型(網頁 / PDF / 影片 / 音訊),使用 Gemini Interactions API 產出結構化的繁體中文(zh-TW)Markdown 摘要。
## 需求條件
- **GEMINI_API_KEY**:有效的 Google Gemini API 金鑰(設為環境變數)
- **Node.js** ≥ 20.0.0
- `scripts/summarize.js` 為預先建置的零依賴 bundle,不需 `npm install`
## 支援的輸入類型
| 類型 | 輸入格式 | 使用模型 |
|------|----------|----------|View the complete source on GitHubgoogle-stitch
When your agent uses it
Use this skill when users want to generate UI mockups, landing pages, wireframes, design concepts, marketing sections, or page prototypes from a prompt and need both a design image and matching HTML. Prefer this skill whenever the user asks for「設計圖 + HTML」、「UI 原型」、「Landing Page 草稿」、「prompt 生成介面」或 Google Stitch / Stitch with Google style workflows.
What it loads into context
Frontmatter
88 tokensAlways available to the agent
SKILL.md
1,089 tokensWhen the skill is activated
Reference documents
1,277 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- 需求條件
- 使用方式
- 輸出結果
- Instructions for the Agent
- 限制
- 錯誤處理
- 參考資料
Scripts executed separately
scripts/generate.jsscripts/google-stitch.js
Files
README.mddoc2,274 bytesSKILL.mdcore3,668 bytesSKILL.mdcore3,668 bytesSKILL.mdcore3,668 bytesSKILL.mdcore3,668 bytesSKILL.mdcore3,668 bytesSKILL.mdcore3,668 bytesgithubclaw.jsonasset663 bytesreferences/workflow.mddoc1,707 bytesscripts/generate.jsruns4,191 bytesscripts/google-stitch.jsruns395,431 bytes
Read SKILL.md
# Google Stitch 設計生成 Skill
此技能會重用 repo 內已經存在的 `google-stitch` tool bundle,從提示詞一次產出:
- 設計圖片(寫入本地檔案)
- 對應 HTML(寫入本地檔案)
- stdout JSON 結果,方便後續自動化流程接續
## 需求條件
- `GEMINI_API_KEY` 或 `GOOGLE_API_KEY`
- Node.js `>=20.0.0`
- repo 內已存在 `.github/scripts/google-stitch.mjs`
View the complete source on GitHubskill-creator
When your agent uses it
Create new skills, modify and improve existing skills, and measure skill performance. Use when users want to create a skill from scratch, edit, or optimize an existing skill, run evals to test a skill, benchmark skill performance with variance analysis, or optimize a skill's description for better triggering accuracy.
What it loads into context
Frontmatter
68 tokensAlways available to the agent
SKILL.md
7,241 tokensWhen the skill is activated
Reference documents
10,283 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Communicating with the user
- Creating a skill
- Running and evaluating test cases
- Improving the skill
- Advanced: Blind comparison
- Description Optimization
- Claude.ai-specific instructions
- Cowork-Specific Instructions
- Reference files
Scripts executed separately
eval-viewer/generate_review.pyscripts/__init__.pyscripts/aggregate_benchmark.pyscripts/generate_report.pyscripts/improve_description.pyscripts/package_skill.pyscripts/quick_validate.pyscripts/run_eval.pyscripts/run_loop.pyscripts/utils.py
Files
LICENSE.txtdoc11,357 bytesREADME.mddoc2,573 bytesSKILL.mdcore33,168 bytesSKILL.mdcore33,168 bytesSKILL.mdcore33,168 bytesSKILL.mdcore33,168 bytesSKILL.mdcore33,168 bytesSKILL.mdcore33,168 bytesagents/analyzer.mddoc10,376 bytesagents/comparator.mddoc7,287 bytesagents/grader.mddoc9,049 bytesassets/eval_review.htmlasset7,058 byteseval-viewer/generate_review.pyruns16,365 byteseval-viewer/viewer.htmlasset44,998 bytesgithubclaw.jsonasset693 bytesreferences/schemas.mddoc12,061 bytesscripts/__init__.pyruns0 bytesscripts/aggregate_benchmark.pyruns14,386 bytesscripts/generate_report.pyruns12,847 bytesscripts/improve_description.pyruns11,116 bytesscripts/package_skill.pyruns4,234 bytesscripts/quick_validate.pyruns3,972 bytesscripts/run_eval.pyruns11,464 bytesscripts/run_loop.pyruns13,605 bytesscripts/utils.pyruns1,661 bytes
Read SKILL.md
# Skill Creator
A skill for creating new skills and iteratively improving them.
At a high level, the process of creating a skill goes like this:
- Decide what you want the skill to do and roughly how it should do it
- Write a draft of the skill
- Create a few test prompts and run claude-with-access-to-the-skill on them
- Help the user evaluate the results both qualitatively and quantitatively
- While the runs happen in the background, draft some quantitative evals if there aren't any (if there are some, you can either use as is or modify if you feel something needs to change about them). Then explain them to the user (or if they already existed, explain the ones that already exist)
- Use the `eval-viewer/generate_review.py` script to show the user the results for them to look at, and also let them look at the quantitative metrics
- Rewrite the skill based on feedback from the user's evaluation of the results (and also if there are any glaring flaws that become apparent from the quantitative benchmarks)
- Repeat until you're satisfiedView the complete source on GitHubtelegram-notify
When your agent uses it
Send Telegram Bot notifications for development events, CI/CD pipeline status, and AGENTS.md progress updates. Use when integrating Telegram messaging into GitHub Actions workflows, sending pipeline end summaries, notifying teams about automation progress or repository changes. Requires TELEGRAM_NOTIFY_BOT_TOKEN environment variable or GitHub Secret. Target Chat IDs are resolved from the CSV recipients list defined in AGENTS.md.
What it loads into context
Frontmatter
95 tokensAlways available to the agent
SKILL.md
1,224 tokensWhen the skill is activated
Reference documents
950 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use This Skill
- Prerequisites
- Resolving Recipients from AGENTS.md
- Getting Your Chat ID
- Using the Reusable Action
- Using the Helper Script
- Direct API Call Reference
- Message Formatting (MarkdownV2 default)
- Security Notes
- Graceful Degradation
Scripts executed separately
scripts/send-telegram.sh
Files
README.mddoc3,025 bytesSKILL.mdcore4,909 bytesSKILL.mdcore4,909 bytesSKILL.mdcore4,909 bytesSKILL.mdcore4,909 bytesSKILL.mdcore4,909 bytesgithubclaw.jsonasset710 bytesscripts/send-telegram.shruns1,789 bytes
Read SKILL.md
# Telegram Notify
A skill for integrating Telegram Bot notifications into GitHub Actions workflows and automation scripts.
## When to Use This Skill
- Sending pipeline end notifications via Telegram
- Notifying about AGENTS.md or repository changes
- Alerting teams about CI/CD events (success, failure, progress)
- Integrating Telegram messaging into any automation workflow
## Prerequisites
- A Telegram Bot created via [@BotFather](https://t.me/BotFather)View the complete source on GitHubfelo-search
When your agent uses it
Felo AI real-time web search for questions requiring current/live information. Triggers on current events, news, trends, real-time data, information queries, location queries, how-to guides, shopping, or when Claude's knowledge may be outdated.
What it loads into context
Frontmatter
58 tokensAlways available to the agent
SKILL.md
1,800 tokensWhen the skill is activated
Reference documents
675 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use
- Setup
- How to Execute
- Complete Examples
- Error Handling
- API Configuration
- Important Notes
- Additional Resources
Scripts executed separately
scripts/search.sh
Files
LICENSEasset1,087 bytesREADME.mddoc2,107 bytesSKILL.mdcore7,244 bytesSKILL.mdcore7,244 bytesSKILL.mdcore7,244 bytesSKILL.mdcore7,244 bytesSKILL.mdcore7,244 bytesSKILL.mdcore7,244 bytesSKILL.mdcore7,244 bytesSKILL.mdcore7,244 bytesSKILL.mdcore7,244 bytesSKILL.mdcore7,244 bytesSKILL.mdcore7,244 bytesSKILL.mdcore7,244 bytesSKILL.mdcore7,244 bytesscripts/search.shruns1,383 bytes
Read SKILL.md
# Felo Search Skill
## When to Use
Trigger this skill for questions requiring current or real-time information:
- **Current events & news:** Recent developments, trending topics, breaking news
- **Real-time data:** Weather, stock prices, exchange rates, sports scores
- **Information queries:** "What is...", "Tell me about...", product reviews, comparisons, recommendations
- **Location-based:** Restaurants, travel destinations, local attractions, things to do
- **How-to guides:** Tutorials, step-by-step instructions, best practices
- **Shopping & prices:** Product prices, deals, "where to buy"
- **Trends & statistics:** Market trends, rankings, data analysis
- **Any question where Claude's knowledge may be outdated**View the complete source on GitHubfelo-slides
When your agent uses it
Generate PPT/slides with Felo PPT Task API in Claude Code. Use when users ask to create/make/generate/export presentations or slide decks, or when explicit commands like /felo-slides are used. Handles API key check, task creation, polling, and final ppt_url output.
What it loads into context
Frontmatter
69 tokensAlways available to the agent
SKILL.md
1,094 tokensWhen the skill is activated
Reference documents
620 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use
- Setup
- How to Execute
- Output Format
- Error Handling
- Important Notes
- References
Scripts executed separately
scripts/run_ppt_task.mjs
Files
LICENSEasset1,087 bytesREADME.mddoc1,880 bytesSKILL.mdcore4,144 bytesSKILL.mdcore4,144 bytesSKILL.mdcore4,144 bytesSKILL.mdcore4,144 bytesSKILL.mdcore4,144 bytesSKILL.mdcore4,144 bytesscripts/run_ppt_task.mjsruns7,165 bytes
Read SKILL.md
# Felo Slides Skill
## When to Use
Trigger this skill for requests about creating presentation files:
- Create/generate slides from a topic or outline
- Turn notes into a PPT deck
- Build a presentation with a page count requirement
- Export presentation content into a shareable slide link
Trigger keywords:
- Chinese prompts about making slides or presentationsView the complete source on GitHubfelo-web-fetch
When your agent uses it
Extract webpage content with Felo Web Extract API. Use for turning URLs into html/markdown/text, selecting specific page areas with CSS selectors, and controlling extraction options like crawl mode, cookies, user-agent, and timeout.
What it loads into context
Frontmatter
54 tokensAlways available to the agent
SKILL.md
1,855 tokensWhen the skill is activated
Reference documents
617 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use
- Setup
- How to Execute
- API Reference (summary)
- Output Format
- Important Notes
- References
Scripts executed separately
scripts/run_web_fetch.mjs
Files
README.mddoc2,012 bytesSKILL.mdcore7,182 bytesSKILL.mdcore7,182 bytesSKILL.mdcore7,182 bytesSKILL.mdcore7,182 bytesSKILL.mdcore7,182 bytesSKILL.mdcore7,182 bytesSKILL.mdcore7,182 bytesSKILL.mdcore7,182 bytesSKILL.mdcore7,182 bytesSKILL.mdcore7,182 bytesSKILL.mdcore7,182 bytesSKILL.mdcore7,182 bytesscripts/run_web_fetch.mjsruns10,309 bytes
Read SKILL.md
# Felo Web Fetch Skill
## When to Use
Trigger this skill when users want to extract or convert webpage content from a URL:
- Fetch or scrape content from a webpage URL
- Convert webpage content to `html`, `markdown`, or `text`
- Extract specific blocks using CSS selector
- Get article/main text from a link with readability mode
- Tune extraction behavior with crawl mode (`fast`/`fine`)
- Pass request details such as cookies, user-agent, timeout
Trigger keywords (examples):View the complete source on GitHubfelo-x-search
When your agent uses it
Search X (Twitter) data using Felo X Search API. Use when users ask about X/Twitter users, tweets, trending topics on X, tweet replies, or when explicit commands like /felo-x-search are used. Supports user lookup, user search, user tweets, tweet search, and tweet replies.
What it loads into context
Frontmatter
73 tokensAlways available to the agent
SKILL.md
1,728 tokensWhen the skill is activated
Reference documents
671 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use
- Setup
- How to Execute
- Output Format
- Error Handling
- API Reference (summary)
- Important Notes
- References
Scripts executed separately
scripts/run_x_search.mjs
Files
README.mddoc2,031 bytesSKILL.mdcore5,866 bytesSKILL.mdcore5,866 bytesSKILL.mdcore5,866 bytesSKILL.mdcore5,866 bytesSKILL.mdcore5,866 bytesSKILL.mdcore5,866 bytesclawhub.jsonasset738 bytesscripts/run_x_search.mjsruns15,870 bytes
Read SKILL.md
# Felo X Search Skill
## When to Use
Trigger this skill when the user wants to:
- Look up X (Twitter) user profiles by username
- Search for X users by keyword
- Get tweets from a specific X user
- Search tweets by keyword or advanced query
- Get replies to specific tweets
Trigger keywords (examples):
View the complete source on GitHubgemini-audio-transcriber
When your agent uses it
Use this skill when a user provides an audio file (local file or URL) and wants it transcribed into Traditional Chinese text. Prefer this skill for requests like "transcribe this audio", "convert speech to text", "轉錄這段錄音", "語音轉文字", or when converting meeting recordings, voice memos, or podcast clips to text. The output can be further processed by meeting-note-formatter for structured meeting notes.
What it loads into context
Frontmatter
101 tokensAlways available to the agent
SKILL.md
1,341 tokensWhen the skill is activated
Reference documents
808 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- 需求條件
- 使用方式
- Dry Run
- 輸出格式
- Instructions for the Agent
- 限制
- 錯誤處理
- 重新建置
Scripts executed separately
package.jsonscripts/transcribe.jssrc/transcribe.js
Files
.gitignoreasset51 bytesREADME.mddoc2,496 bytesSKILL.mdcore4,277 bytesSKILL.mdcore4,277 bytesSKILL.mdcore4,277 bytesSKILL.mdcore4,277 bytesSKILL.mdcore4,277 bytesSKILL.mdcore4,277 bytesSKILL.mdcore4,277 bytesSKILL.mdcore4,277 bytesSKILL.mdcore4,277 bytesSKILL.mdcore4,277 bytesSKILL.mdcore4,277 bytesSKILL.mdcore4,277 bytespackage.jsonruns478 bytesscripts/transcribe.jsruns618,536 bytessrc/transcribe.jsruns5,046 bytes
Read SKILL.md
# 音訊轉繁中逐字稿 Skill
使用 Gemini Interactions API 的原生音訊理解能力,將音訊檔案轉錄為繁體中文逐字稿。支援本機檔案與遠端 URL,當偵測到多位說話者時會自動標記區分。輸出的逐字稿可搭配 `meeting-note-formatter` skill 進一步整理為結構化會議紀錄。
## 需求條件
- `GEMINI_API_KEY` 環境變數必須設定
- 有效的遠端音訊 URL、data URI 或可讀取的本機音訊檔案
- Node.js >= 20.0.0
- 支援格式:`.mp3`、`.wav`、`.ogg`、`.flac`、`.m4a`、`.aac`、`.webm`、`.wma`
## 使用方式
直接執行預建腳本 — **不需要 `npm install` 或額外設定**:View the complete source on GitHubgemini-deep-researcher
When your agent uses it
Use this skill when a user wants a comprehensive research report on any topic with cited sources. Prefer this skill for requests like "research this topic", "give me a deep analysis of", "幫我研究", "深度分析", or when the user needs a well-sourced report for decision-making, presentations, or learning. This skill uses Gemini's Deep Research agent and takes several minutes to complete.
What it loads into context
Frontmatter
94 tokensAlways available to the agent
SKILL.md
1,106 tokensWhen the skill is activated
Reference documents
858 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- 需求條件
- 使用方式
- Dry Run
- 輸出格式
- Instructions for the Agent
- 限制
- 錯誤處理
Scripts executed separately
package.jsonscripts/research.jssrc/research.js
Files
.gitignoreasset51 bytesREADME.mddoc2,682 bytesSKILL.mdcore3,641 bytesSKILL.mdcore3,641 bytesSKILL.mdcore3,641 bytesSKILL.mdcore3,641 bytesSKILL.mdcore3,641 bytesSKILL.mdcore3,641 bytesSKILL.mdcore3,641 bytesSKILL.mdcore3,641 bytesSKILL.mdcore3,641 bytespackage.jsonruns471 bytesscripts/research.jsruns617,833 bytessrc/research.jsruns3,518 bytes
Read SKILL.md
# Deep Researcher — 深度研究報告工具
使用 Gemini Deep Research agent 針對任意主題產出結構完整、附引用來源的繁體中文研究報告。這是唯一使用 `agent`(而非 `model`)並以 `background: true` 搭配輪詢模式運作的 skill。
## 需求條件
- Node.js ≥ 20
- 環境變數 `GEMINI_API_KEY` 或 `GOOGLE_API_KEY`
- 已執行 `bun install && bun run build`(產生 `scripts/research.js`)
## 使用方式
### 命令列引數
View the complete source on GitHubgemini-image-describer
When your agent uses it
Use this skill when a user provides an image (local file or URL) and wants a detailed Traditional Chinese description of the image content. Prefer this skill for requests like "describe this image", "what's in this picture", "OCR this screenshot", "辨識這張圖", "描述這張照片", or when extracting text from screenshots or photos.
What it loads into context
Frontmatter
82 tokensAlways available to the agent
SKILL.md
1,320 tokensWhen the skill is activated
Reference documents
676 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- 需求條件
- 使用方式
- Dry Run
- 輸出格式
- Instructions for the Agent
- 限制
- 錯誤處理
- 實作備註
- 從原始碼重新建置
Scripts executed separately
package.jsonscripts/describe.jssrc/describe.js
Files
.gitignoreasset51 bytesREADME.mddoc2,122 bytesSKILL.mdcore4,364 bytesSKILL.mdcore4,364 bytesSKILL.mdcore4,364 bytesSKILL.mdcore4,364 bytesSKILL.mdcore4,364 bytesSKILL.mdcore4,364 bytesSKILL.mdcore4,364 bytesSKILL.mdcore4,364 bytesSKILL.mdcore4,364 bytesSKILL.mdcore4,364 bytesSKILL.mdcore4,364 bytesSKILL.mdcore4,364 bytesSKILL.mdcore4,364 bytespackage.jsonruns459 bytesscripts/describe.jsruns623,214 bytessrc/describe.jsruns5,893 bytes
Read SKILL.md
# Image Describer Skill
此技能使用 Gemini Interactions API 的原生圖片理解能力,分析圖片並產生繁體中文(zh-TW)Markdown 描述,包含圖片場景描述、文字辨識(OCR)與關鍵物件列表。支援本地檔案路徑、遠端 URL 與 data URI。
## 需求條件
- `GEMINI_API_KEY` 環境變數必須已設定
- 有效的遠端圖片 URL、data URI 或可讀取的本地圖片檔案路徑
- Node.js >= 20.0.0
## 使用方式
直接執行預建置腳本 — **不需要 `npm install` 或其他額外設定**:
View the complete source on GitHubgemini-nanobanana
When your agent uses it
Use this skill when users ask to generate, edit, or compose images with Nano Banana (Gemini image models), including text-to-image, image editing, multi-image composition, grounding, and output sizing/saving controls.
What it loads into context
Frontmatter
55 tokensAlways available to the agent
SKILL.md
890 tokensWhen the skill is activated
Reference documents
4,700 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Do this first
- Enforce these defaults
- Read references intentionally
- Output formatting rules
- Execution pattern
Scripts executed separately
scripts/gemini-nanobanana-cli.js
Files
README.mddoc2,253 bytesSKILL.mdcore3,532 bytesSKILL.mdcore3,532 bytesSKILL.mdcore3,532 bytesreferences/image-generation-api.mddoc13,111 bytesreferences/sources.mddoc2,364 bytesscripts/gemini-nanobanana-cli.jsruns11,611 bytes
Read SKILL.md
## Do this first
- Use a Node.js wrapper (`@google/genai`) as the primary flow (multi-turn edits, grounding, advanced `generationConfig`).
- Use `scripts/gemini-nanobanana-cli.js` for quick single-turn generation/editing runs.
- Do **not** teach raw `curl`; keep guidance in JS CLI/wrapper form.
## Enforce these defaults
- API key source: `NANOBANANA_GEMINI_API_KEY` with fallback `GEMINI_API_KEY`.
- Default model: `gemini-3.1-flash-image-preview` (allow env override via `NANOBANANA_MODEL`).
- Reference images: support up to **14** total.
- Thinking strength: configurable (`minimal|low|medium|high`), default **High**.
- Aspect ratio: default **Auto**.
- Resolution: default **1K**.
- Output mode: default **Images only**.
- Google Search grounding tool: default **Disabled**; enable with `--google-search` when needed.View the complete source on GitHubgemini-summary
When your agent uses it
Use this skill when a user provides a web page URL, PDF file, video, or audio file and wants a Traditional Chinese summary. Prefer this skill for requests like "summarize this URL", "summarize this PDF", "summarize this video", "summarize this audio", "幫我摘要這篇", "這份報告重點是什麼", "幫我總結這段影片", "幫我摘要這段錄音", or when analyzing articles, documents, presentations, YouTube videos, audio recordings, or any content that needs a zh-TW summary. Automatically detects input type (web page, PDF, video, audio) — no manual type selection needed.
What it loads into context
Frontmatter
156 tokensAlways available to the agent
SKILL.md
2,147 tokensWhen the skill is activated
Reference documents
764 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- 需求條件
- 支援的輸入類型
- 使用方式
- 輸出格式
- Instructions for the Agent
- 限制
- 錯誤處理
- 重建方式
Scripts executed separately
package.jsonscripts/summarize.jssrc/summarize.js
Files
.gitignoreasset41 bytesREADME.mddoc2,371 bytesSKILL.mdcore6,668 bytesSKILL.mdcore6,668 bytesSKILL.mdcore6,668 bytesSKILL.mdcore6,668 bytesSKILL.mdcore6,668 bytesSKILL.mdcore6,668 bytesSKILL.mdcore6,668 bytesSKILL.mdcore6,668 bytesSKILL.mdcore6,668 bytesSKILL.mdcore6,668 bytesSKILL.mdcore6,668 bytesSKILL.mdcore6,668 bytesSKILL.mdcore6,668 bytesSKILL.mdcore6,668 bytesSKILL.mdcore6,668 bytesSKILL.mdcore6,668 bytespackage.jsonruns514 bytesscripts/summarize.jsruns855,807 bytessrc/summarize.jsruns30,846 bytes
Read SKILL.md
# 內容摘要 Skill
統一的摘要工具,自動偵測輸入類型(網頁 / PDF / 影片 / 音訊),使用 Gemini Interactions API 產出結構化的繁體中文(zh-TW)Markdown 摘要。
## 需求條件
- **GEMINI_API_KEY**:有效的 Google Gemini API 金鑰(設為環境變數)
- **Node.js** ≥ 20.0.0
- `scripts/summarize.js` 為預先建置的零依賴 bundle,不需 `npm install`
## 支援的輸入類型
| 類型 | 輸入格式 | 使用模型 |
|------|----------|----------|View the complete source on GitHubgoogle-stitch
When your agent uses it
Use this skill when users want to generate UI mockups, landing pages, wireframes, design concepts, marketing sections, or page prototypes from a prompt and need both a design image and matching HTML. Prefer this skill whenever the user asks for「設計圖 + HTML」、「UI 原型」、「Landing Page 草稿」、「prompt 生成介面」或 Google Stitch / Stitch with Google style workflows.
What it loads into context
Frontmatter
88 tokensAlways available to the agent
SKILL.md
1,059 tokensWhen the skill is activated
Reference documents
1,277 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- 需求條件
- 使用方式
- 輸出結果
- Instructions for the Agent
- 限制
- 錯誤處理
- 參考資料
Scripts executed separately
scripts/generate.jsscripts/google-stitch.js
Files
README.mddoc2,274 bytesSKILL.mdcore3,552 bytesSKILL.mdcore3,552 bytesSKILL.mdcore3,552 bytesSKILL.mdcore3,552 bytesSKILL.mdcore3,552 bytesSKILL.mdcore3,552 bytesreferences/workflow.mddoc1,707 bytesscripts/generate.jsruns4,191 bytesscripts/google-stitch.jsruns395,431 bytes
Read SKILL.md
# Google Stitch 設計生成 Skill
此技能會重用 repo 內已經存在的 `google-stitch` tool bundle,從提示詞一次產出:
- 設計圖片(寫入本地檔案)
- 對應 HTML(寫入本地檔案)
- stdout JSON 結果,方便後續自動化流程接續
## 需求條件
- `GEMINI_API_KEY` 或 `GOOGLE_API_KEY`
- Node.js `>=20.0.0`
- repo 內已存在 `.github/scripts/google-stitch.mjs`
View the complete source on GitHubfelo-search
When your agent uses it
Felo AI real-time web search for questions requiring current/live information. Triggers on current events, news, trends, real-time data, information queries, location queries, how-to guides, shopping, or when Claude's knowledge may be outdated.
What it loads into context
Frontmatter
58 tokensAlways available to the agent
SKILL.md
1,800 tokensWhen the skill is activated
Reference documents
675 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use
- Setup
- How to Execute
- Complete Examples
- Error Handling
- API Configuration
- Important Notes
- Additional Resources
Scripts executed separately
scripts/search.sh
Files
LICENSEasset1,087 bytesREADME.mddoc2,107 bytesSKILL.mdcore7,244 bytesSKILL.mdcore7,244 bytesSKILL.mdcore7,244 bytesSKILL.mdcore7,244 bytesSKILL.mdcore7,244 bytesSKILL.mdcore7,244 bytesSKILL.mdcore7,244 bytesSKILL.mdcore7,244 bytesSKILL.mdcore7,244 bytesSKILL.mdcore7,244 bytesSKILL.mdcore7,244 bytesSKILL.mdcore7,244 bytesSKILL.mdcore7,244 bytesscripts/search.shruns1,383 bytes
Read SKILL.md
# Felo Search Skill
## When to Use
Trigger this skill for questions requiring current or real-time information:
- **Current events & news:** Recent developments, trending topics, breaking news
- **Real-time data:** Weather, stock prices, exchange rates, sports scores
- **Information queries:** "What is...", "Tell me about...", product reviews, comparisons, recommendations
- **Location-based:** Restaurants, travel destinations, local attractions, things to do
- **How-to guides:** Tutorials, step-by-step instructions, best practices
- **Shopping & prices:** Product prices, deals, "where to buy"
- **Trends & statistics:** Market trends, rankings, data analysis
- **Any question where Claude's knowledge may be outdated**View the complete source on GitHubfelo-slides
When your agent uses it
Generate PPT/slides with Felo PPT Task API in Claude Code. Use when users ask to create/make/generate/export presentations or slide decks, or when explicit commands like /felo-slides are used. Handles API key check, task creation, polling, and final ppt_url output.
What it loads into context
Frontmatter
69 tokensAlways available to the agent
SKILL.md
1,094 tokensWhen the skill is activated
Reference documents
620 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use
- Setup
- How to Execute
- Output Format
- Error Handling
- Important Notes
- References
Scripts executed separately
scripts/run_ppt_task.mjs
Files
LICENSEasset1,087 bytesREADME.mddoc1,880 bytesSKILL.mdcore4,144 bytesSKILL.mdcore4,144 bytesSKILL.mdcore4,144 bytesSKILL.mdcore4,144 bytesSKILL.mdcore4,144 bytesSKILL.mdcore4,144 bytesscripts/run_ppt_task.mjsruns7,165 bytes
Read SKILL.md
# Felo Slides Skill
## When to Use
Trigger this skill for requests about creating presentation files:
- Create/generate slides from a topic or outline
- Turn notes into a PPT deck
- Build a presentation with a page count requirement
- Export presentation content into a shareable slide link
Trigger keywords:
- Chinese prompts about making slides or presentationsView the complete source on GitHubfelo-web-fetch
When your agent uses it
Extract webpage content with Felo Web Extract API. Use for turning URLs into html/markdown/text, selecting specific page areas with CSS selectors, and controlling extraction options like crawl mode, cookies, user-agent, and timeout.
What it loads into context
Frontmatter
54 tokensAlways available to the agent
SKILL.md
1,855 tokensWhen the skill is activated
Reference documents
617 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use
- Setup
- How to Execute
- API Reference (summary)
- Output Format
- Important Notes
- References
Scripts executed separately
scripts/run_web_fetch.mjs
Files
README.mddoc2,012 bytesSKILL.mdcore7,182 bytesSKILL.mdcore7,182 bytesSKILL.mdcore7,182 bytesSKILL.mdcore7,182 bytesSKILL.mdcore7,182 bytesSKILL.mdcore7,182 bytesSKILL.mdcore7,182 bytesSKILL.mdcore7,182 bytesSKILL.mdcore7,182 bytesSKILL.mdcore7,182 bytesSKILL.mdcore7,182 bytesSKILL.mdcore7,182 bytesscripts/run_web_fetch.mjsruns10,309 bytes
Read SKILL.md
# Felo Web Fetch Skill
## When to Use
Trigger this skill when users want to extract or convert webpage content from a URL:
- Fetch or scrape content from a webpage URL
- Convert webpage content to `html`, `markdown`, or `text`
- Extract specific blocks using CSS selector
- Get article/main text from a link with readability mode
- Tune extraction behavior with crawl mode (`fast`/`fine`)
- Pass request details such as cookies, user-agent, timeout
Trigger keywords (examples):View the complete source on GitHubfelo-x-search
When your agent uses it
Search X (Twitter) data using Felo X Search API. Use when users ask about X/Twitter users, tweets, trending topics on X, tweet replies, or when explicit commands like /felo-x-search are used. Supports user lookup, user search, user tweets, tweet search, and tweet replies.
What it loads into context
Frontmatter
73 tokensAlways available to the agent
SKILL.md
1,728 tokensWhen the skill is activated
Reference documents
671 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use
- Setup
- How to Execute
- Output Format
- Error Handling
- API Reference (summary)
- Important Notes
- References
Scripts executed separately
scripts/run_x_search.mjs
Files
README.mddoc2,031 bytesSKILL.mdcore5,866 bytesSKILL.mdcore5,866 bytesSKILL.mdcore5,866 bytesSKILL.mdcore5,866 bytesSKILL.mdcore5,866 bytesSKILL.mdcore5,866 bytesclawhub.jsonasset738 bytesscripts/run_x_search.mjsruns15,870 bytes
Read SKILL.md
# Felo X Search Skill
## When to Use
Trigger this skill when the user wants to:
- Look up X (Twitter) user profiles by username
- Search for X users by keyword
- Get tweets from a specific X user
- Search tweets by keyword or advanced query
- Get replies to specific tweets
Trigger keywords (examples):
View the complete source on GitHubgemini-audio-transcriber
When your agent uses it
Use this skill when a user provides an audio file (local file or URL) and wants it transcribed into Traditional Chinese text. Prefer this skill for requests like "transcribe this audio", "convert speech to text", "轉錄這段錄音", "語音轉文字", or when converting meeting recordings, voice memos, or podcast clips to text. The output can be further processed by meeting-note-formatter for structured meeting notes.
What it loads into context
Frontmatter
101 tokensAlways available to the agent
SKILL.md
1,341 tokensWhen the skill is activated
Reference documents
808 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- 需求條件
- 使用方式
- Dry Run
- 輸出格式
- Instructions for the Agent
- 限制
- 錯誤處理
- 重新建置
Scripts executed separately
package.jsonscripts/transcribe.jssrc/transcribe.js
Files
.gitignoreasset51 bytesREADME.mddoc2,496 bytesSKILL.mdcore4,277 bytesSKILL.mdcore4,277 bytesSKILL.mdcore4,277 bytesSKILL.mdcore4,277 bytesSKILL.mdcore4,277 bytesSKILL.mdcore4,277 bytesSKILL.mdcore4,277 bytesSKILL.mdcore4,277 bytesSKILL.mdcore4,277 bytesSKILL.mdcore4,277 bytesSKILL.mdcore4,277 bytesSKILL.mdcore4,277 bytespackage.jsonruns478 bytesscripts/transcribe.jsruns618,536 bytessrc/transcribe.jsruns5,046 bytes
Read SKILL.md
# 音訊轉繁中逐字稿 Skill
使用 Gemini Interactions API 的原生音訊理解能力,將音訊檔案轉錄為繁體中文逐字稿。支援本機檔案與遠端 URL,當偵測到多位說話者時會自動標記區分。輸出的逐字稿可搭配 `meeting-note-formatter` skill 進一步整理為結構化會議紀錄。
## 需求條件
- `GEMINI_API_KEY` 環境變數必須設定
- 有效的遠端音訊 URL、data URI 或可讀取的本機音訊檔案
- Node.js >= 20.0.0
- 支援格式:`.mp3`、`.wav`、`.ogg`、`.flac`、`.m4a`、`.aac`、`.webm`、`.wma`
## 使用方式
直接執行預建腳本 — **不需要 `npm install` 或額外設定**:View the complete source on GitHubgemini-deep-researcher
When your agent uses it
Use this skill when a user wants a comprehensive research report on any topic with cited sources. Prefer this skill for requests like "research this topic", "give me a deep analysis of", "幫我研究", "深度分析", or when the user needs a well-sourced report for decision-making, presentations, or learning. This skill uses Gemini's Deep Research agent and takes several minutes to complete.
What it loads into context
Frontmatter
94 tokensAlways available to the agent
SKILL.md
1,106 tokensWhen the skill is activated
Reference documents
858 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- 需求條件
- 使用方式
- Dry Run
- 輸出格式
- Instructions for the Agent
- 限制
- 錯誤處理
Scripts executed separately
package.jsonscripts/research.jssrc/research.js
Files
.gitignoreasset51 bytesREADME.mddoc2,682 bytesSKILL.mdcore3,641 bytesSKILL.mdcore3,641 bytesSKILL.mdcore3,641 bytesSKILL.mdcore3,641 bytesSKILL.mdcore3,641 bytesSKILL.mdcore3,641 bytesSKILL.mdcore3,641 bytesSKILL.mdcore3,641 bytesSKILL.mdcore3,641 bytespackage.jsonruns471 bytesscripts/research.jsruns617,833 bytessrc/research.jsruns3,518 bytes
Read SKILL.md
# Deep Researcher — 深度研究報告工具
使用 Gemini Deep Research agent 針對任意主題產出結構完整、附引用來源的繁體中文研究報告。這是唯一使用 `agent`(而非 `model`)並以 `background: true` 搭配輪詢模式運作的 skill。
## 需求條件
- Node.js ≥ 20
- 環境變數 `GEMINI_API_KEY` 或 `GOOGLE_API_KEY`
- 已執行 `bun install && bun run build`(產生 `scripts/research.js`)
## 使用方式
### 命令列引數
View the complete source on GitHubgemini-image-describer
When your agent uses it
Use this skill when a user provides an image (local file or URL) and wants a detailed Traditional Chinese description of the image content. Prefer this skill for requests like "describe this image", "what's in this picture", "OCR this screenshot", "辨識這張圖", "描述這張照片", or when extracting text from screenshots or photos.
What it loads into context
Frontmatter
82 tokensAlways available to the agent
SKILL.md
1,320 tokensWhen the skill is activated
Reference documents
676 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- 需求條件
- 使用方式
- Dry Run
- 輸出格式
- Instructions for the Agent
- 限制
- 錯誤處理
- 實作備註
- 從原始碼重新建置
Scripts executed separately
package.jsonscripts/describe.jssrc/describe.js
Files
.gitignoreasset51 bytesREADME.mddoc2,122 bytesSKILL.mdcore4,364 bytesSKILL.mdcore4,364 bytesSKILL.mdcore4,364 bytesSKILL.mdcore4,364 bytesSKILL.mdcore4,364 bytesSKILL.mdcore4,364 bytesSKILL.mdcore4,364 bytesSKILL.mdcore4,364 bytesSKILL.mdcore4,364 bytesSKILL.mdcore4,364 bytesSKILL.mdcore4,364 bytesSKILL.mdcore4,364 bytesSKILL.mdcore4,364 bytespackage.jsonruns459 bytesscripts/describe.jsruns623,214 bytessrc/describe.jsruns5,893 bytes
Read SKILL.md
# Image Describer Skill
此技能使用 Gemini Interactions API 的原生圖片理解能力,分析圖片並產生繁體中文(zh-TW)Markdown 描述,包含圖片場景描述、文字辨識(OCR)與關鍵物件列表。支援本地檔案路徑、遠端 URL 與 data URI。
## 需求條件
- `GEMINI_API_KEY` 環境變數必須已設定
- 有效的遠端圖片 URL、data URI 或可讀取的本地圖片檔案路徑
- Node.js >= 20.0.0
## 使用方式
直接執行預建置腳本 — **不需要 `npm install` 或其他額外設定**:
View the complete source on GitHubgemini-nanobanana
When your agent uses it
Use this skill when users ask to generate, edit, or compose images with Nano Banana (Gemini image models), including text-to-image, image editing, multi-image composition, grounding, and output sizing/saving controls.
What it loads into context
Frontmatter
55 tokensAlways available to the agent
SKILL.md
890 tokensWhen the skill is activated
Reference documents
4,700 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Do this first
- Enforce these defaults
- Read references intentionally
- Output formatting rules
- Execution pattern
Scripts executed separately
scripts/gemini-nanobanana-cli.js
Files
README.mddoc2,253 bytesSKILL.mdcore3,532 bytesSKILL.mdcore3,532 bytesSKILL.mdcore3,532 bytesreferences/image-generation-api.mddoc13,111 bytesreferences/sources.mddoc2,364 bytesscripts/gemini-nanobanana-cli.jsruns11,611 bytes
Read SKILL.md
## Do this first
- Use a Node.js wrapper (`@google/genai`) as the primary flow (multi-turn edits, grounding, advanced `generationConfig`).
- Use `scripts/gemini-nanobanana-cli.js` for quick single-turn generation/editing runs.
- Do **not** teach raw `curl`; keep guidance in JS CLI/wrapper form.
## Enforce these defaults
- API key source: `NANOBANANA_GEMINI_API_KEY` with fallback `GEMINI_API_KEY`.
- Default model: `gemini-3.1-flash-image-preview` (allow env override via `NANOBANANA_MODEL`).
- Reference images: support up to **14** total.
- Thinking strength: configurable (`minimal|low|medium|high`), default **High**.
- Aspect ratio: default **Auto**.
- Resolution: default **1K**.
- Output mode: default **Images only**.
- Google Search grounding tool: default **Disabled**; enable with `--google-search` when needed.View the complete source on GitHubgemini-summary
When your agent uses it
Use this skill when a user provides a web page URL, PDF file, video, or audio file and wants a Traditional Chinese summary. Prefer this skill for requests like "summarize this URL", "summarize this PDF", "summarize this video", "summarize this audio", "幫我摘要這篇", "這份報告重點是什麼", "幫我總結這段影片", "幫我摘要這段錄音", or when analyzing articles, documents, presentations, YouTube videos, audio recordings, or any content that needs a zh-TW summary. Automatically detects input type (web page, PDF, video, audio) — no manual type selection needed.
What it loads into context
Frontmatter
156 tokensAlways available to the agent
SKILL.md
2,147 tokensWhen the skill is activated
Reference documents
764 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- 需求條件
- 支援的輸入類型
- 使用方式
- 輸出格式
- Instructions for the Agent
- 限制
- 錯誤處理
- 重建方式
Scripts executed separately
package.jsonscripts/summarize.jssrc/summarize.js
Files
.gitignoreasset41 bytesREADME.mddoc2,371 bytesSKILL.mdcore6,668 bytesSKILL.mdcore6,668 bytesSKILL.mdcore6,668 bytesSKILL.mdcore6,668 bytesSKILL.mdcore6,668 bytesSKILL.mdcore6,668 bytesSKILL.mdcore6,668 bytesSKILL.mdcore6,668 bytesSKILL.mdcore6,668 bytesSKILL.mdcore6,668 bytesSKILL.mdcore6,668 bytesSKILL.mdcore6,668 bytesSKILL.mdcore6,668 bytesSKILL.mdcore6,668 bytesSKILL.mdcore6,668 bytesSKILL.mdcore6,668 bytespackage.jsonruns514 bytesscripts/summarize.jsruns855,807 bytessrc/summarize.jsruns30,846 bytes
Read SKILL.md
# 內容摘要 Skill
統一的摘要工具,自動偵測輸入類型(網頁 / PDF / 影片 / 音訊),使用 Gemini Interactions API 產出結構化的繁體中文(zh-TW)Markdown 摘要。
## 需求條件
- **GEMINI_API_KEY**:有效的 Google Gemini API 金鑰(設為環境變數)
- **Node.js** ≥ 20.0.0
- `scripts/summarize.js` 為預先建置的零依賴 bundle,不需 `npm install`
## 支援的輸入類型
| 類型 | 輸入格式 | 使用模型 |
|------|----------|----------|View the complete source on GitHubgoogle-stitch
When your agent uses it
Use this skill when users want to generate UI mockups, landing pages, wireframes, design concepts, marketing sections, or page prototypes from a prompt and need both a design image and matching HTML. Prefer this skill whenever the user asks for「設計圖 + HTML」、「UI 原型」、「Landing Page 草稿」、「prompt 生成介面」或 Google Stitch / Stitch with Google style workflows.
What it loads into context
Frontmatter
88 tokensAlways available to the agent
SKILL.md
1,059 tokensWhen the skill is activated
Reference documents
1,277 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- 需求條件
- 使用方式
- 輸出結果
- Instructions for the Agent
- 限制
- 錯誤處理
- 參考資料
Scripts executed separately
scripts/generate.jsscripts/google-stitch.js
Files
README.mddoc2,274 bytesSKILL.mdcore3,552 bytesSKILL.mdcore3,552 bytesSKILL.mdcore3,552 bytesSKILL.mdcore3,552 bytesSKILL.mdcore3,552 bytesSKILL.mdcore3,552 bytesreferences/workflow.mddoc1,707 bytesscripts/generate.jsruns4,191 bytesscripts/google-stitch.jsruns395,431 bytes
Read SKILL.md
# Google Stitch 設計生成 Skill
此技能會重用 repo 內已經存在的 `google-stitch` tool bundle,從提示詞一次產出:
- 設計圖片(寫入本地檔案)
- 對應 HTML(寫入本地檔案)
- stdout JSON 結果,方便後續自動化流程接續
## 需求條件
- `GEMINI_API_KEY` 或 `GOOGLE_API_KEY`
- Node.js `>=20.0.0`
- repo 內已存在 `.github/scripts/google-stitch.mjs`
View the complete source on GitHubSkills included
- agent-browser
- felo-search
- felo-slides
- felo-superAgent
- felo-web-fetch
- felo-x-search
- find-skills
- gemini-audio-transcriber
- gemini-deep-researcher
- gemini-image-describer
- gemini-lyria-3
- gemini-nanobanana
- gemini-summary
- google-stitch
- skill-creator
- telegram-notify
- felo-search
- felo-slides
- felo-web-fetch
- felo-x-search
- gemini-audio-transcriber
- gemini-deep-researcher
- gemini-image-describer
- gemini-nanobanana
- gemini-summary
- google-stitch
- felo-search
- felo-slides
- felo-web-fetch
- felo-x-search
- gemini-audio-transcriber
- gemini-deep-researcher
- gemini-image-describer
- gemini-nanobanana
- gemini-summary
- google-stitch
Repository facts
- License
- MIT
- Created
- Mar 22, 2026
- Last pushed
- Sep 4, 2026
- Forks
- 54
- Open issues
- 1
- Project activity
- Slowing
Before you install
Network or broad shellAutomated signals, not a guarantee
Checked Nov 5, 2026
Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.
Show 807 notes
skills/agent-browser/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/agent-browser/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/agent-browser/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/agent-browser/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/agent-browser/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/agent-browser/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/agent-browser/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/agent-browser/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/agent-browser/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/agent-browser/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/agent-browser/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/felo-search/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/felo-search/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/felo-search/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/felo-search/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/felo-search/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/felo-search/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/felo-search/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/felo-search/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/felo-search/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzed
- No broad tool permissions
- 8 dangerous shell commandsin 7 files: telegram-notify/scripts/send-telegram.sh:60 agent-browser/SKILL.md:132 agent-browser/install.sh:25 and 4 more
- 1,209 network referencesin 134 files: agent-browser/references/proxy-support.md:23 agent-browser/references/authentication.md:53 gemini-nanobanana/references/image-generation-api.md:5 and 131 more
- 328 obfuscation signalsin 15 files: gemini-summary/scripts/summarize.js:2 gemini-summary/scripts/summarize.js:2 gemini-summary/scripts/summarize.js:2 and 12 more
- No instruction overrides
- 75 executable scriptsin 75 files: agent-browser/install.sh:1 agent-browser/templates/authenticated-session.sh:1 agent-browser/templates/capture-workflow.sh:1 and 72 more
- 429 references to secretsin 137 files: felo-x-search/SKILL.md:45 felo-x-search/SKILL.md:45 felo-x-search/SKILL.md:45 and 134 more
- No requests to vote in Hot
Show all 2,049 signals by file
skills/agent-browser/README.md
- Network accessline 28
幫我打開 https://example.com,登入後截一張全頁圖。
skills/agent-browser/SKILL.md
- Network accessline 29
agent-browser open https://example.com/form - Network accessline 85
agent-browser open https://example.com && agent-browser wait --load networkidle && agent-browser screenshot page.png - Network accessline 95
agent-browser open https://example.com/signup - Network accessline 107
# Login and save state agent-browser open https://app.example.com/login - Network accessline 108
agent-browser open https://app.example.com/login - Network accessline 116
# Reuse in future sessions agent-browser state load auth.json agent-browser open https://app.example.com/dashboard - Network accessline 118
agent-browser open https://app.example.com/dashboard - Network accessline 124
agent-browser open https://example.com/products - Dangerous shell operationline 132
agent-browser eval 'document.title' - Network accessline 178
sh templates/form-automation.sh https://example.com/form - Network accessline 179
sh templates/authenticated-session.sh https://app.example.com/login - Network accessline 180
sh templates/capture-workflow.sh https://example.com ./output
skills/agent-browser/githubclaw.json
- Network accessline 6
"tags": ["browser", "automation", "scraping", "screenshot", "web-testing"], "version": "1.0.0", "support_url": "https://github.com/duotify/GitHubClawToolkit/issues", - Network accessline 7
"version": "1.0.0", "support_url": "https://github.com/duotify/GitHubClawToolkit/issues", "homepage": "https://learn.duotify.com/courses/githubclaw", - Network accessline 8
"support_url": "https://github.com/duotify/GitHubClawToolkit/issues", - Network accessline 9
"homepage": "https://learn.duotify.com/courses/githubclaw",
skills/agent-browser/install.sh
skills/agent-browser/references/authentication.md
- Network accessline 53
# Load auth at launch agent-browser --state ./my-auth.json open https://app.example.com/dashboard - Network accessline 54
agent-browser --state ./my-auth.json open https://app.example.com/dashboard - Network accessline 56
# Or load into an existing session agent-browser state load ./my-auth.json agent-browser open https://app.example.com/dashboard - Network accessline 58
agent-browser open https://app.example.com/dashboard - Network accessline 77
# First run: login once agent-browser --profile ~/.myapp-profile open https://app.example.com/login - Network accessline 78
agent-browser --profile ~/.myapp-profile open https://app.example.com/login - Network accessline 81
# All subsequent runs: already authenticated agent-browser --profile ~/.myapp-profile open https://app.example.com/dashboard - Network accessline 82
agent-browser --profile ~/.myapp-profile open https://app.example.com/dashboard - Network accessline 88
agent-browser --profile ~/.profiles/admin open https://app.example.com - Network accessline 89
agent-browser --profile ~/.profiles/viewer open https://app.example.com - Network accessline 95
export AGENT_BROWSER_PROFILE=~/.myapp-profile agent-browser open https://app.example.com/dashboard - Network accessline 96
agent-browser open https://app.example.com/dashboard - Network accessline 104
# Auto-saves state on close, auto-restores on next launch agent-browser --session-name twitter open https://twitter.com - Network accessline 105
agent-browser --session-name twitter open https://twitter.com - Network accessline 109
# Next time: state is automatically restored agent-browser --session-name twitter open https://twitter.com - Network accessline 110
agent-browser --session-name twitter open https://twitter.com - Network accessline 116
[Credential-related source omitted] - Access to secretsline 116
[Credential-related source omitted] - Network accessline 117
agent-browser --session-name secure open https://app.example.com - Network accessline 123
# Navigate to login page agent-browser open https://app.example.com/login - Network accessline 124
agent-browser open https://app.example.com/login - Network accessline 148
# Login first (see above) agent-browser open https://app.example.com/login - Network accessline 149
agent-browser open https://app.example.com/login - Network accessline 168
# Navigate directly to protected page agent-browser open https://app.example.com/dashboard - Network accessline 169
agent-browser open https://app.example.com/dashboard - Network accessline 180
# Start OAuth flow agent-browser open https://app.example.com/auth/google - Network accessline 181
agent-browser open https://app.example.com/auth/google - Network accessline 205
# Login with credentials agent-browser open https://app.example.com/login --headed # Show browser - Network accessline 206
agent-browser open https://app.example.com/login --headed # Show browser - Network accessline 228
# Navigate to protected resource agent-browser open https://protected.example.com/api - Network accessline 229
agent-browser open https://protected.example.com/api - Access to secretsline 238
[Credential-related source omitted] - Network accessline 240
# Navigate to protected page agent-browser open https://app.example.com/dashboard - Network accessline 241
agent-browser open https://app.example.com/dashboard - Network accessline 255
if [[ -f "$STATE_FILE" ]]; then agent-browser state load "$STATE_FILE" agent-browser open https://app.example.com/dashboard - Network accessline 257
agent-browser open https://app.example.com/dashboard - Network accessline 271
else # First-time login agent-browser open https://app.example.com/login - Network accessline 272
# First-time login agent-browser open https://app.example.com/login # ... login flow ... - Network accessline 273
agent-browser open https://app.example.com/login - Access to secretsline 293
[Credential-related source omitted] - Dangerous shell operationline 294
rm -f ./auth-state.json - Network accessline 299
# Don't persist state in CI agent-browser open https://app.example.com/login - Network accessline 300
agent-browser open https://app.example.com/login
skills/agent-browser/references/commands.md
- Network accessline 8
agent-browser open <url> # Navigate to URL (aliases: goto, navigate) # Supports: https://, http://, file://, about:, data:// - Network accessline 9
# Supports: https://, http://, file://, about:, data:// - Access to secretsline 158
[Credential-related source omitted] - Access to secretsline 159
[Credential-related source omitted] - Access to secretsline 160
[Credential-related source omitted] - Dangerous shell operationline 247
agent-browser eval "document.title" # Simple expressions only
skills/agent-browser/references/profiling.md
- Network accessline 23
# Perform actions agent-browser navigate https://example.com - Network accessline 24
agent-browser navigate https://example.com - Network accessline 64
agent-browser profiler start agent-browser navigate https://app.example.com - Network accessline 65
agent-browser navigate https://app.example.com - Network accessline 73
agent-browser navigate https://app.example.com - Network accessline 83
#!/bin/bash agent-browser profiler start agent-browser navigate https://app.example.com - Network accessline 84
agent-browser profiler start agent-browser navigate https://app.example.com agent-browser wait --load networkidle - Network accessline 85
agent-browser navigate https://app.example.com - Network accessline 112
- **Chrome DevTools**: Performance panel > Load profile (Ctrl+Shift+I > Performance) - **Perfetto UI**: https://ui.perfetto.dev/ -- drag and drop the JSON file - Network accessline 113
- **Perfetto UI**: https://ui.perfetto.dev/ -- drag and drop the JSON file
skills/agent-browser/references/proxy-support.md
- Network accessline 23
# Via CLI flag agent-browser --proxy "http://proxy.example.com:8080" open https://example.com - Network accessline 24
agent-browser --proxy "http://proxy.example.com:8080" open https://example.com - Network accessline 26
# Via environment variable export HTTP_PROXY="http://proxy.example.com:8080" - Network accessline 27
export HTTP_PROXY="http://proxy.example.com:8080" - Network accessline 28
agent-browser open https://example.com - Network accessline 30
# HTTPS proxy export HTTPS_PROXY="https://proxy.example.com:8080" - Network accessline 31
export HTTPS_PROXY="https://proxy.example.com:8080" - Network accessline 32
agent-browser open https://example.com - Network accessline 34
# Both export HTTP_PROXY="http://proxy.example.com:8080" - Network accessline 35
export HTTP_PROXY="http://proxy.example.com:8080" - Network accessline 36
export HTTPS_PROXY="http://proxy.example.com:8080" - Network accessline 37
agent-browser open https://example.com - Network accessline 45
# Include credentials in URL export HTTP_PROXY="http://username:password@proxy.example.com:8080" - Network accessline 46
export HTTP_PROXY="http://username:password@proxy.example.com:8080" - Network accessline 47
agent-browser open https://example.com - Network accessline 53
# SOCKS5 proxy export ALL_PROXY="socks5://proxy.example.com:1080" agent-browser open https://example.com - Network accessline 55
agent-browser open https://example.com - Network accessline 57
# SOCKS5 with auth export ALL_PROXY="socks5://user:pass@proxy.example.com:1080" agent-browser open https://example.com - Network accessline 59
agent-browser open https://example.com - Network accessline 67
# Via CLI flag agent-browser --proxy "http://proxy.example.com:8080" --proxy-bypass "localhost,*.internal.com" open https://example.com - Network accessline 68
agent-browser --proxy "http://proxy.example.com:8080" --proxy-bypass "localhost,*.internal.com" open https://example.com - Network accessline 70
# Via environment variable export NO_PROXY="localhost,127.0.0.1,.internal.company.com" agent-browser open https://internal.company.com # Direct connection - Network accessline 71
export NO_PROXY="localhost,127.0.0.1,.internal.company.com" agent-browser open https://internal.company.com # Direct connection agent-browser open https://external.com # Via proxy - Network accessline 72
agent-browser open https://internal.company.com # Direct connection - Network accessline 73
agent-browser open https://external.com # Via proxy - Network accessline 84
PROXIES=( "http://us-proxy.example.com:8080" - Network accessline 85
"http://us-proxy.example.com:8080" - Network accessline 86
"http://eu-proxy.example.com:8080" - Network accessline 87
"http://asia-proxy.example.com:8080" - Network accessline 97
agent-browser --session "$region" open https://example.com - Network accessline 109
PROXY_LIST=( "http://proxy1.example.com:8080" - Network accessline 110
"http://proxy1.example.com:8080" - Network accessline 111
"http://proxy2.example.com:8080" - Network accessline 112
"http://proxy3.example.com:8080" - Network accessline 115
URLS=( "https://site.com/page1" - Network accessline 116
"https://site.com/page1" - Network accessline 117
"https://site.com/page2" - Network accessline 118
"https://site.com/page3" - Network accessline 140
export HTTP_PROXY="http://corpproxy.company.com:8080" - Network accessline 141
export HTTPS_PROXY="http://corpproxy.company.com:8080" - Network accessline 144
# External sites go through proxy agent-browser open https://external-vendor.com - Network accessline 145
agent-browser open https://external-vendor.com - Network accessline 147
# Internal sites bypass proxy agent-browser open https://intranet.company.com - Network accessline 148
agent-browser open https://intranet.company.com - Network accessline 154
# Check your apparent IP agent-browser open https://httpbin.org/ip - Network accessline 155
agent-browser open https://httpbin.org/ip - Network accessline 165
# Test proxy connectivity first curl -x http://proxy.example.com:8080 https://httpbin.org/ip - Network accessline 166
curl -x http://proxy.example.com:8080 https://httpbin.org/ip - Network accessline 168
# Check if proxy requires auth export HTTP_PROXY="http://user:pass@proxy.example.com:8080" - Network accessline 169
export HTTP_PROXY="http://user:pass@proxy.example.com:8080" - Network accessline 177
# For testing only - not recommended for production agent-browser open https://example.com --ignore-https-errors - Network accessline 178
agent-browser open https://example.com --ignore-https-errors
skills/agent-browser/references/session-management.md
- Network accessline 22
# Session 1: Authentication flow agent-browser --session auth open https://app.example.com/login - Network accessline 23
agent-browser --session auth open https://app.example.com/login - Network accessline 25
# Session 2: Public browsing (separate cookies, storage) agent-browser --session public open https://example.com - Network accessline 26
agent-browser --session public open https://example.com - Network accessline 58
# Continue with authenticated session agent-browser open https://app.example.com/dashboard - Network accessline 59
agent-browser open https://app.example.com/dashboard - Network accessline 84
if [[ -f "$STATE_FILE" ]]; then agent-browser state load "$STATE_FILE" agent-browser open https://app.example.com/dashboard - Network accessline 85
agent-browser state load "$STATE_FILE" agent-browser open https://app.example.com/dashboard else - Network accessline 86
agent-browser open https://app.example.com/dashboard - Network accessline 87
else # Perform login agent-browser open https://app.example.com/login - Network accessline 88
# Perform login agent-browser open https://app.example.com/login agent-browser snapshot -i - Network accessline 89
agent-browser open https://app.example.com/login - Network accessline 107
# Start all sessions agent-browser --session site1 open https://site1.com & - Network accessline 108
agent-browser --session site1 open https://site1.com & - Network accessline 109
agent-browser --session site2 open https://site2.com & - Network accessline 110
agent-browser --session site3 open https://site3.com & - Network accessline 127
# Test different user experiences agent-browser --session variant-a open "https://app.com?variant=a" - Network accessline 128
agent-browser --session variant-a open "https://app.com?variant=a" - Network accessline 129
agent-browser --session variant-b open "https://app.com?variant=b" - Network accessline 141
# These use the same default session agent-browser open https://example.com - Network accessline 142
agent-browser open https://example.com - Network accessline 162
# GOOD: Clear purpose agent-browser --session github-auth open https://github.com - Network accessline 163
agent-browser --session github-auth open https://github.com - Network accessline 164
agent-browser --session docs-scrape open https://docs.example.com - Network accessline 166
# AVOID: Generic names agent-browser --session s1 open https://github.com - Network accessline 167
agent-browser --session s1 open https://github.com - Dangerous shell operationline 185
rm /tmp/auth-state.json
skills/agent-browser/references/snapshot-refs.md
- Network accessline 42
Page: Example Site - Home URL: https://example.com - Network accessline 43
URL: https://example.com - Network accessline 103
# CORRECT agent-browser open https://example.com - Network accessline 104
agent-browser open https://example.com - Network accessline 108
# WRONG agent-browser open https://example.com - Network accessline 109
agent-browser open https://example.com
skills/agent-browser/references/video-recording.md
- Network accessline 22
# Perform actions agent-browser open https://example.com - Network accessline 23
agent-browser open https://example.com - Network accessline 55
# Run your automation agent-browser open https://app.example.com - Network accessline 56
agent-browser open https://app.example.com - Network accessline 75
agent-browser open https://app.example.com/login - Network accessline 154
agent-browser open https://example.com
skills/agent-browser/templates/authenticated-session.sh
skills/agent-browser/templates/capture-workflow.sh
- Executable scriptline 1
#!/bin/bash
skills/agent-browser/templates/form-automation.sh
- Executable scriptline 1
#!/bin/bash
skills/felo-search/README.md
- Access to secretsline 35
[Credential-related source omitted] - Network accessline 37
**取得方式:** 到 [felo.ai](https://felo.ai) → **Settings** → **API Keys** 申請取得。 - Network accessline 59
來源: - 中央氣象署 (https://www.cwa.gov.tw) - Network accessline 60
- 中央氣象署 (https://www.cwa.gov.tw) - Network accessline 61
- Weather.com (https://weather.com) - Network accessline 68
- 🌐 最適合查詢**即時性、時效性**的資訊 - 📡 需要網路連線才能使用 - 🔑 如果 API Key 失效,請到 [felo.ai](https://felo.ai) 重新產生 - Network accessline 70
- 🔑 如果 API Key 失效,請到 [felo.ai](https://felo.ai) 重新產生 - Network accessline 74
- 技術細節請參考 [SKILL.md](./SKILL.md) - [Felo Open Platform](https://openapi.felo.ai) - Network accessline 75
- [Felo Open Platform](https://openapi.felo.ai) - Network accessline 76
- [Felo API 文件](https://openapi.felo.ai/docs) - Network accessline 77
- [申請 API Key](https://felo.ai)
skills/felo-search/SKILL.md
- Network accessline 38
1. Visit [felo.ai](https://felo.ai) and log in (or register) - Access to secretsline 46
[Credential-related source omitted] - Access to secretsline 50
[Credential-related source omitted] - Access to secretsline 55
[Credential-related source omitted] - Access to secretsline 60
[Credential-related source omitted] - Access to secretsline 162
[Credential-related source omitted] - Access to secretsline 173
[Credential-related source omitted] - Network accessline 180
1. Get your API key from https://felo.ai (Settings → API Keys) - Access to secretsline 184
[Credential-related source omitted] - Access to secretsline 187
[Credential-related source omitted] - Network accessline 194
**Endpoint:** `https://openapi.felo.ai/v2/chat` - Access to secretsline 196
[Credential-related source omitted] - Network accessline 227
- [Felo Open Platform Documentation](https://openapi.felo.ai) - Network accessline 228
- [Get API Key](https://felo.ai) (Settings → API Keys) - Network accessline 229
- [API Reference](https://openapi.felo.ai/docs)
skills/felo-search/githubclaw.json
- Network accessline 6
"tags": ["search", "real-time", "news", "felo", "multilingual"], "version": "1.0.0", "support_url": "https://github.com/duotify/GitHubClawToolkit/issues", - Network accessline 7
"version": "1.0.0", "support_url": "https://github.com/duotify/GitHubClawToolkit/issues", "homepage": "https://learn.duotify.com/courses/githubclaw", - Network accessline 8
"support_url": "https://github.com/duotify/GitHubClawToolkit/issues", - Network accessline 9
"homepage": "https://learn.duotify.com/courses/githubclaw", - Access to secretsline 10
[Credential-related source omitted]
skills/felo-search/scripts/search.sh
- Executable scriptline 1
#!/bin/bash - Network accessline 5
if ! command -v curl &> /dev/null; then - Network accessline 6
echo "ERROR: curl is required but not installed" - Access to secretsline 11
[Credential-related source omitted] - Access to secretsline 12
[Credential-related source omitted] - Network accessline 14
echo "To use this skill, you need to set up your Felo API Key:" echo "" echo "1. Get your API key from https://felo.ai (Settings → API Keys)" - Network accessline 15
echo "" echo "1. Get your API key from https://felo.ai (Settings → API Keys)" echo "2. Set the environment variable:" - Network accessline 16
echo "1. Get your API key from https://felo.ai (Settings → API Keys)" - Access to secretsline 20
[Credential-related source omitted] - Access to secretsline 23
[Credential-related source omitted] - Access to secretsline 26
[Credential-related source omitted] - Network accessline 46
[Credential-related source omitted] - Access to secretsline 46
[Credential-related source omitted] - Access to secretsline 47
[Credential-related source omitted]
skills/felo-slides/README.md
- Network accessline 24
| 設定項目 | 說明 | | --- | --- | | `FELO_API_KEY` | Felo 平台的 API 金鑰,可到 [felo.ai](https://felo.ai) 申請 | - Network accessline 26
[Credential-related source omitted] - Access to secretsline 26
[Credential-related source omitted] - Network accessline 42
✅ 簡報產生完成! 🔗 https://ppt.felo.ai/share/abc123xyz - Network accessline 43
🔗 https://ppt.felo.ai/share/abc123xyz - Access to secretsline 53
[Credential-related source omitted] - Network accessline 57
- 技術細節請參考 [SKILL.md](SKILL.md) - [Felo PPT Task API 文件](https://openapi.felo.ai/docs/api-reference/v2/ppt-tasks.html) - Network accessline 58
- [Felo PPT Task API 文件](https://openapi.felo.ai/docs/api-reference/v2/ppt-tasks.html) - Network accessline 59
- [Felo 開放平台](https://openapi.felo.ai/docs/)
skills/felo-slides/SKILL.md
- Network accessline 33
1. Visit [felo.ai](https://felo.ai) - Access to secretsline 42
[Credential-related source omitted] - Access to secretsline 48
[Credential-related source omitted] - Access to secretsline 58
[Credential-related source omitted] - Access to secretsline 59
[Credential-related source omitted] - Network accessline 82
- Creates task via `POST https://openapi.felo.ai/v2/ppts` - Network accessline 83
- Polls via `GET https://openapi.felo.ai/v2/tasks/{task_id}/historical` - Access to secretsline 151
[Credential-related source omitted] - Network accessline 175
- [Felo PPT Task API](https://openapi.felo.ai/docs/api-reference/v2/ppt-tasks.html) - Network accessline 176
- [Felo Open Platform](https://openapi.felo.ai/docs/)
skills/felo-slides/githubclaw.json
- Network accessline 6
"tags": ["felo", "slides", "ppt", "presentation", "content-generation"], "version": "1.0.0", "support_url": "https://github.com/duotify/GitHubClawToolkit/issues", - Network accessline 7
"version": "1.0.0", "support_url": "https://github.com/duotify/GitHubClawToolkit/issues", "homepage": "https://learn.duotify.com/courses/githubclaw", - Network accessline 8
"support_url": "https://github.com/duotify/GitHubClawToolkit/issues", - Network accessline 9
"homepage": "https://learn.duotify.com/courses/githubclaw", - Access to secretsline 10
[Credential-related source omitted]
skills/felo-slides/scripts/run_ppt_task.mjs
- Executable scriptline 1
#!/usr/bin/env node - Network accessline 3
const DEFAULT_API_BASE = 'https://openapi.felo.ai'; - Network accessline 135
const timer = setTimeout(() => controller.abort(), timeoutMs); try { const res = await fetch(url, { ...init, signal: controller.signal }); - Network accessline 136
try { const res = await fetch(url, { ...init, signal: controller.signal }); let body = {}; - Network accessline 137
const res = await fetch(url, { ...init, signal: controller.signal }); - Network accessline 190
historicalData?.live_doc_url || (historicalData?.live_doc_short_id || historicalData?.livedoc_short_id || createData?.livedoc_short_id ? `https://felo.ai/livedoc/${historicalData?.live_doc_short_id || historicalData?.livedoc_short - Network accessline 191
(historicalData?.live_doc_short_id || historicalData?.livedoc_short_id || createData?.livedoc_short_id ? `https://felo.ai/livedoc/${historicalData?.live_doc_short_id || historicalData?.livedoc_short_id || createData?.livedoc_short_id} - Network accessline 192
? `https://felo.ai/livedoc/${historicalData?.live_doc_short_id || historicalData?.livedoc_short_id || createData?.livedoc_short_id}` - Access to secretsline 248
[Credential-related source omitted] - Access to secretsline 250
[Credential-related source omitted]
skills/felo-superAgent/README.md
- Network accessline 58
1. Open [felo.ai](https://felo.ai) and log in - Access to secretsline 64
[Credential-related source omitted] - Access to secretsline 67
[Credential-related source omitted] - Network accessline 264
"thread_short_id": "TvyKouzJirXjFdst4uKRK3", "live_doc_short_id": "PvyKouzJirXjFdst4uKRK3", "live_doc_url": "https://felo.ai/livedoc/...", - Network accessline 265
"live_doc_short_id": "PvyKouzJirXjFdst4uKRK3", "live_doc_url": "https://felo.ai/livedoc/...", "image_urls": [{"url": "...", "title": "..."}], - Network accessline 266
"live_doc_url": "https://felo.ai/livedoc/...", - Network accessline 280
[state] thread_short_id=TvyKouzJirXjFdst4uKRK3 live_doc_short_id=PvyKouzJirXjFdst4uKRK3 live_doc_url=https://felo.ai/livedoc/... - Access to secretsline 363
[Credential-related source omitted] - Access to secretsline 364
[Credential-related source omitted] - Network accessline 376
export FELO_API_BASE="https://custom-api.example.com" - Network accessline 393
- [SKILL.md](SKILL.md) — full agent instructions, decision logic, and style library format - [SuperAgent API Documentation](https://openapi.felo.ai/docs/api-reference/v2/superagent.html) - Network accessline 394
- [SuperAgent API Documentation](https://openapi.felo.ai/docs/api-reference/v2/superagent.html) - Network accessline 395
- [Felo Open Platform](https://openapi.felo.ai/docs/) - Network accessline 396
- [Get API Key](https://felo.ai) (Settings → API Keys) - Network accessline 397
- [GitHub Repository](https://github.com/Felo-Inc/felo-skills)
skills/felo-superAgent/SKILL.md
- Network accessline 98
1. Visit [felo.ai](https://felo.ai) and log in (or register) - Access to secretsline 106
[Credential-related source omitted] - Access to secretsline 110
[Credential-related source omitted] - Access to secretsline 115
[Credential-related source omitted] - Access to secretsline 121
[Credential-related source omitted] - Access to secretsline 126
[Credential-related source omitted] - Access to secretsline 140
[Credential-related source omitted] - Access to secretsline 141
[Credential-related source omitted] - Network accessline 344
"thread_short_id": "CmYpuGwBgCnrUdDx5ZtmxA", "live_doc_short_id": "QPetunwpGnkKuZHStP7gwt", "live_doc_url": "https://felo.ai/livedoc/QPetunwpGnkKuZHStP7gwt", - Network accessline 345
"live_doc_short_id": "QPetunwpGnkKuZHStP7gwt", "live_doc_url": "https://felo.ai/livedoc/QPetunwpGnkKuZHStP7gwt", "image_urls": [{ "url": "https://...", "title": "Logo Design" }], - Network accessline 346
"live_doc_url": "https://felo.ai/livedoc/QPetunwpGnkKuZHStP7gwt", - Network accessline 347
"image_urls": [{ "url": "https://...", "title": "Logo Design" }], - Network accessline 605
Base URL: `https://openapi.felo.ai` (override with `FELO_API_BASE` if needed). - Access to secretsline 641
[Credential-related source omitted] - Access to secretsline 654
[Credential-related source omitted] - Access to secretsline 657
[Credential-related source omitted] - Network accessline 661
1. Get your API key from https://felo.ai (Settings -> API Keys) - Access to secretsline 665
[Credential-related source omitted] - Access to secretsline 668
[Credential-related source omitted] - Access to secretsline 692
[Credential-related source omitted] - Network accessline 773
- [SuperAgent API (Felo Open Platform)](https://openapi.felo.ai/docs/api-reference/v2/superagent.html) - Network accessline 774
- [Felo Open Platform](https://openapi.felo.ai/docs/) - Network accessline 775
- [Get API Key](https://felo.ai) (Settings -> API Keys)
skills/felo-superAgent/clawhub.json
- Network accessline 8
"license": "MIT", "pricing": "free", "support_url": "https://github.com/Felo-Inc/felo-skills/issues", - Network accessline 9
"pricing": "free", "support_url": "https://github.com/Felo-Inc/felo-skills/issues", "homepage": "https://github.com/Felo-Inc/felo-skills" - Network accessline 10
"support_url": "https://github.com/Felo-Inc/felo-skills/issues", - Network accessline 11
"homepage": "https://github.com/Felo-Inc/felo-skills"
skills/felo-superAgent/githubclaw.json
- Network accessline 6
"tags": ["felo", "superagent", "chat", "streaming", "livedoc", "logo", "image-generation"], "version": "1.0.0", "support_url": "https://github.com/duotify/GitHubClawToolkit/issues", - Network accessline 7
"version": "1.0.0", "support_url": "https://github.com/duotify/GitHubClawToolkit/issues", "homepage": "https://learn.duotify.com/courses/githubclaw", - Network accessline 8
"support_url": "https://github.com/duotify/GitHubClawToolkit/issues", - Network accessline 9
"homepage": "https://learn.duotify.com/courses/githubclaw", - Access to secretsline 10
[Credential-related source omitted]
skills/felo-superAgent/scripts/run_style_library.mjs
- Executable scriptline 1
#!/usr/bin/env node - Network accessline 3
const DEFAULT_API_BASE = 'https://openapi.felo.ai'; - Access to secretsline 141
[Credential-related source omitted] - Access to secretsline 144
[Credential-related source omitted] - Network accessline 145
[Credential-related source omitted] - Access to secretsline 145
[Credential-related source omitted] - Network accessline 146
[Credential-related source omitted] - Access to secretsline 146
[Credential-related source omitted] - Network accessline 147
'Get your API key from https://felo.ai (Settings -> API Keys).' - Network accessline 162
try { const res = await fetch(url, { - Network accessline 163
const res = await fetch(url, {
skills/felo-superAgent/scripts/run_superagent.mjs
- Executable scriptline 1
#!/usr/bin/env node - Network accessline 3
const DEFAULT_API_BASE = 'https://openapi.felo.ai'; - Network accessline 103
const timer = setTimeout(() => controller.abort(), timeoutMs); try { const res = await fetch(url, { ...init, signal: controller.signal }); - Network accessline 104
try { const res = await fetch(url, { ...init, signal: controller.signal }); let body = {}; - Network accessline 105
const res = await fetch(url, { ...init, signal: controller.signal }); - Network accessline 261
try { const res = await fetch(connectUrl, { - Network accessline 262
const res = await fetch(connectUrl, { - Access to secretsline 402
[Credential-related source omitted] - Access to secretsline 405
[Credential-related source omitted] - Network accessline 406
[Credential-related source omitted] - Access to secretsline 406
[Credential-related source omitted] - Network accessline 407
[Credential-related source omitted] - Access to secretsline 407
[Credential-related source omitted] - Network accessline 408
'Get your API key from https://felo.ai (Settings -> API Keys).' - Access to secretsline 439
[Credential-related source omitted]
skills/felo-web-fetch/README.md
- Network accessline 1
# 🛠<U+FE0F> Felo Web Fetch(網頁內容擷取) - Network accessline 25
| 設定項目 | 說明 | | --- | --- | | `FELO_API_KEY` | Felo 平台的 API 金鑰,可到 [felo.ai](https://felo.ai) 申請 | - Network accessline 27
[Credential-related source omitted] - Access to secretsline 27
[Credential-related source omitted] - Network accessline 32
幫我把這個網頁的內容抓下來轉成 Markdown:https://example.com/article - Network accessline 33
擷取這篇文章的純文字內容:https://news.example.com/today - Network accessline 35
抓取 https://blog.example.com 的文章內容,只要 <article> 區塊的部分 - Access to secretsline 60
[Credential-related source omitted] - Network accessline 64
- 技術細節請參考 [SKILL.md](SKILL.md) - [Felo Web Extract API 文件](https://openapi.felo.ai/docs/api-reference/v2/web-extract.html) - Network accessline 65
- [Felo Web Extract API 文件](https://openapi.felo.ai/docs/api-reference/v2/web-extract.html) - Network accessline 66
- [Felo 開放平台](https://openapi.felo.ai/docs/)
skills/felo-web-fetch/SKILL.md
- Network accessline 35
1. Visit [felo.ai](https://felo.ai) - Access to secretsline 43
[Credential-related source omitted] - Access to secretsline 48
[Credential-related source omitted] - Network accessline 58
node .agents/skills/felo-web-fetch/scripts/run_web_fetch.mjs --url "https://example.com/article" [options] - Network accessline 64
felo web-fetch -u "https://example.com" [options] - Network accessline 104
# Basic: fetch as Markdown node .agents/skills/felo-web-fetch/scripts/run_web_fetch.mjs --url "https://example.com" --output-format markdown - Network accessline 105
node .agents/skills/felo-web-fetch/scripts/run_web_fetch.mjs --url "https://example.com" --output-format markdown - Network accessline 107
# Article-style with readability node .agents/skills/felo-web-fetch/scripts/run_web_fetch.mjs --url "https://example.com/article" --with-readability true --output-format markdown - Network accessline 108
node .agents/skills/felo-web-fetch/scripts/run_web_fetch.mjs --url "https://example.com/article" --with-readability true --output-format markdown - Network accessline 110
# Only the element matching a CSS selector node .agents/skills/felo-web-fetch/scripts/run_web_fetch.mjs --url "https://example.com" --target-selector "article.main" --output-format markdown - Network accessline 111
node .agents/skills/felo-web-fetch/scripts/run_web_fetch.mjs --url "https://example.com" --target-selector "article.main" --output-format markdown - Network accessline 113
# With cookies and custom user-agent node .agents/skills/felo-web-fetch/scripts/run_web_fetch.mjs --url "https://example.com/private" --cookie "session_id=abc123" --with-readability true --json - Network accessline 114
node .agents/skills/felo-web-fetch/scripts/run_web_fetch.mjs --url "https://example.com/private" --cookie "session_id=abc123" --with-readability true --json - Network accessline 116
# Full JSON response node .agents/skills/felo-web-fetch/scripts/run_web_fetch.mjs --url "https://example.com" --output-format text --json - Network accessline 117
node .agents/skills/felo-web-fetch/scripts/run_web_fetch.mjs --url "https://example.com" --output-format text --json - Network accessline 123
[Credential-related source omitted] - Access to secretsline 123
[Credential-related source omitted] - Network accessline 124
[Credential-related source omitted] - Access to secretsline 124
[Credential-related source omitted] - Network accessline 126
-d '{"url": "https://example.com", "output_format": "markdown", "with_readability": true}' - Network accessline 131
- **Endpoint**: `POST /v2/web/extract` - **Base URL**: `https://openapi.felo.ai`. Override with `FELO_API_BASE` env if needed. - Network accessline 132
- **Base URL**: `https://openapi.felo.ai`. Override with `FELO_API_BASE` env if needed. - Access to secretsline 133
[Credential-related source omitted] - Access to secretsline 173
[Credential-related source omitted] - Network accessline 214
- [Web Extract API](https://openapi.felo.ai/docs/api-reference/v2/web-extract.html) - Network accessline 215
- [Felo Open Platform](https://openapi.felo.ai/docs/)
skills/felo-web-fetch/githubclaw.json
- Network accessline 6
"tags": ["felo", "web-fetch", "scraping", "markdown", "content-extraction"], "version": "1.0.0", "support_url": "https://github.com/duotify/GitHubClawToolkit/issues", - Network accessline 7
"version": "1.0.0", "support_url": "https://github.com/duotify/GitHubClawToolkit/issues", "homepage": "https://learn.duotify.com/courses/githubclaw", - Network accessline 8
"support_url": "https://github.com/duotify/GitHubClawToolkit/issues", - Network accessline 9
"homepage": "https://learn.duotify.com/courses/githubclaw", - Access to secretsline 10
[Credential-related source omitted]
skills/felo-web-fetch/scripts/run_web_fetch.mjs
- Executable scriptline 1
#!/usr/bin/env node - Network accessline 3
const DEFAULT_API_BASE = 'https://openapi.felo.ai'; - Network accessline 194
const timer = setTimeout(() => controller.abort(), timeoutMs); try { const res = await fetch(url, { ...init, signal: controller.signal }); - Network accessline 195
try { const res = await fetch(url, { ...init, signal: controller.signal }); let body = {}; - Network accessline 196
const res = await fetch(url, { ...init, signal: controller.signal }); - Access to secretsline 269
[Credential-related source omitted] - Access to secretsline 271
[Credential-related source omitted]
skills/felo-x-search/README.md
- Network accessline 25
| 設定項目 | 說明 | | --- | --- | | `FELO_API_KEY` | Felo 平台的 API 金鑰,可到 [felo.ai](https://felo.ai) 申請 | - Network accessline 27
[Credential-related source omitted] - Access to secretsline 27
[Credential-related source omitted] - Access to secretsline 61
[Credential-related source omitted] - Network accessline 65
- 技術細節請參考 [SKILL.md](SKILL.md) - [Felo X Search API 文件](https://openapi.felo.ai/docs/api-reference/v2/x-search.html) - Network accessline 66
- [Felo X Search API 文件](https://openapi.felo.ai/docs/api-reference/v2/x-search.html) - Network accessline 67
- [Felo 開放平台](https://openapi.felo.ai/docs/)
skills/felo-x-search/SKILL.md
- Network accessline 36
1. Visit [felo.ai](https://felo.ai) - Access to secretsline 45
[Credential-related source omitted] - Access to secretsline 51
[Credential-related source omitted] - Network accessline 111
# Search tweets curl -X POST "https://openapi.felo.ai/v2/x/tweet/search" \ - Network accessline 112
[Credential-related source omitted] - Access to secretsline 112
[Credential-related source omitted] - Access to secretsline 113
[Credential-related source omitted] - Network accessline 117
# Search users curl -X POST "https://openapi.felo.ai/v2/x/user/search" \ - Network accessline 118
[Credential-related source omitted] - Access to secretsline 118
[Credential-related source omitted] - Access to secretsline 119
[Credential-related source omitted] - Network accessline 123
# Get user info curl -X POST "https://openapi.felo.ai/v2/x/user/info" \ - Network accessline 124
[Credential-related source omitted] - Access to secretsline 124
[Credential-related source omitted] - Access to secretsline 125
[Credential-related source omitted] - Network accessline 129
# Get user tweets curl -X POST "https://openapi.felo.ai/v2/x/user/tweets" \ - Network accessline 130
[Credential-related source omitted] - Access to secretsline 130
[Credential-related source omitted] - Access to secretsline 131
[Credential-related source omitted] - Network accessline 135
# Get tweet replies curl -X POST "https://openapi.felo.ai/v2/x/tweet/replies" \ - Network accessline 136
[Credential-related source omitted] - Access to secretsline 136
[Credential-related source omitted] - Access to secretsline 137
[Credential-related source omitted] - Network accessline 162
### @elonmusk(Elon Musk ✓) - Posted: 2026-03-09T12:00:00Z | Tweet ID: `1234567890` - 🔗 [查看原推文](https://x.com/elonmusk/status/1234567890) - Network accessline 164
- 🔗 [查看原推文](https://x.com/elonmusk/status/1234567890) - Network accessline 177
1. **連結格式**:推文連結必須為 `https://x.com/{username}/status/{tweet_id}`,username 與 tweet_id 均來自 API 回傳的資料,**禁止自行推測或填入預設值**。 - Network accessline 178
2. **資料對應**:連結中的 `username` 必須與該推文的 `author.username` 欄位一致,`tweet_id` 必須與 `id` 欄位一致。 3. **禁止捏造**:若 API 未回傳 tweet_id 或 username,則該則推文不得附上連結,改為標注「連結不可用」。 4. **用戶連結**:用戶頁面連結格式為 `https://x.com/{username}`,同樣只能使用 API 回傳的 username。 - Network accessline 180
4. **用戶連結**:用戶頁面連結格式為 `https://x.com/{username}`,同樣只能使用 API 回傳的 username。 - Access to secretsline 186
[Credential-related source omitted] - Access to secretsline 191
[Credential-related source omitted] - Network accessline 195
- **Base URL**: `https://openapi.felo.ai`. Override with `FELO_API_BASE` env if needed. - Access to secretsline 196
[Credential-related source omitted] - Access to secretsline 207
[Credential-related source omitted] - Network accessline 214
- [Felo X Search API](https://openapi.felo.ai/docs/api-reference/v2/x-search.html) - Network accessline 215
- [Felo Open Platform](https://openapi.felo.ai/docs/)
skills/felo-x-search/clawhub.json
- Network accessline 8
"license": "MIT", "pricing": "free", "support_url": "https://github.com/Felo-Inc/felo-skills/issues", - Network accessline 9
"pricing": "free", "support_url": "https://github.com/Felo-Inc/felo-skills/issues", "homepage": "https://github.com/Felo-Inc/felo-skills" - Network accessline 10
"support_url": "https://github.com/Felo-Inc/felo-skills/issues", - Network accessline 11
"homepage": "https://github.com/Felo-Inc/felo-skills"
skills/felo-x-search/githubclaw.json
- Network accessline 6
"tags": ["felo", "twitter", "x-search", "social-media", "search"], "version": "1.0.0", "support_url": "https://github.com/duotify/GitHubClawToolkit/issues", - Network accessline 7
"version": "1.0.0", "support_url": "https://github.com/duotify/GitHubClawToolkit/issues", "homepage": "https://learn.duotify.com/courses/githubclaw", - Network accessline 8
"support_url": "https://github.com/duotify/GitHubClawToolkit/issues", - Network accessline 9
"homepage": "https://learn.duotify.com/courses/githubclaw", - Access to secretsline 10
[Credential-related source omitted]
skills/felo-x-search/scripts/run_x_search.mjs
- Executable scriptline 1
#!/usr/bin/env node - Network accessline 3
const DEFAULT_API_BASE = 'https://openapi.felo.ai'; - Network accessline 40
const timer = setTimeout(() => controller.abort(), timeoutMs); try { const res = await fetch(url, { ...init, signal: controller.signal }); - Network accessline 41
try { const res = await fetch(url, { ...init, signal: controller.signal }); if (res.status >= 500 && attempt < MAX_RETRIES) { - Network accessline 42
const res = await fetch(url, { ...init, signal: controller.signal }); - Network accessline 104
const base = validUsername ? `https://x.com/${username.trim()}/status/${id.trim()}` - Network accessline 105
? `https://x.com/${username.trim()}/status/${id.trim()}` - Network accessline 106
: `https://x.com/i/web/status/${id.trim()}`; - Access to secretsline 275
[Credential-related source omitted] - Access to secretsline 277
[Credential-related source omitted]
skills/find-skills/README.md
- Access to secretsline 44
[Credential-related source omitted]
skills/find-skills/githubclaw.json
- Network accessline 6
"tags": ["skills", "discovery", "recommendation", "meta-tool"], "version": "1.0.0", "support_url": "https://github.com/duotify/GitHubClawToolkit/issues", - Network accessline 7
"version": "1.0.0", "support_url": "https://github.com/duotify/GitHubClawToolkit/issues", "homepage": "https://learn.duotify.com/courses/githubclaw", - Network accessline 8
"support_url": "https://github.com/duotify/GitHubClawToolkit/issues", - Network accessline 9
"homepage": "https://learn.duotify.com/courses/githubclaw",
skills/gemini-audio-transcriber/README.md
skills/gemini-audio-transcriber/SKILL.md
- Access to secretsline 12
[Credential-related source omitted] - Network accessline 30
[Credential-related source omitted] - Access to secretsline 30
[Credential-related source omitted] - Access to secretsline 36
[Credential-related source omitted] - Access to secretsline 43
[Credential-related source omitted] - Network accessline 53
AUDIO_TRANSCRIBER_DRY_RUN=1 node .agents/skills/gemini-audio-transcriber/scripts/transcribe.js "https://example.com/test.mp3" - Access to secretsline 79
[Credential-related source omitted] - Access to secretsline 98
[Credential-related source omitted]
skills/gemini-audio-transcriber/githubclaw.json
- Network accessline 6
"tags": ["gemini", "audio", "transcription", "speech-to-text", "meeting-notes"], "version": "1.0.0", "support_url": "https://github.com/duotify/GitHubClawToolkit/issues", - Network accessline 7
"version": "1.0.0", "support_url": "https://github.com/duotify/GitHubClawToolkit/issues", "homepage": "https://learn.duotify.com/courses/githubclaw", - Network accessline 8
"support_url": "https://github.com/duotify/GitHubClawToolkit/issues", - Network accessline 9
"homepage": "https://learn.duotify.com/courses/githubclaw", - Access to secretsline 10
[Credential-related source omitted]
skills/gemini-audio-transcriber/package.json
- Executable scriptline 1
Executable file
skills/gemini-audio-transcriber/scripts/transcribe.js
- Executable scriptline 1
#!/usr/bin/env node - Possible obfuscationline 2
import{createRequire as gU}from"node:module";var SU=Object.create;var{getPrototypeOf:OU,defineProperty:rQ,getOwnPropertyNames:EU}=Object;var _U=Object.prototype.hasOwnProperty;function vU($){return this[$]}var jU,xU,B4=($,Z,Q)=>{var Y=$!=nu - Possible obfuscationline 3
[Credential-related source omitted] - Access to secretsline 3
[Credential-related source omitted] - Possible obfuscationline 4
`).join( `+X),$.push(J+"m+"+t$.exports.humanize(this.diff)+"\x1B[0m")}else $[0]=AD()+Z+" "+$[0]}function AD(){if(S7.inspectOpts.hideDate)return"";return new Date().toISOString()+" "}function PD(...$){return process.stderr.write(o$.formatWit - Possible obfuscationline 7
`).map((Z)=>Z.trim()).join(" ")};C7.O=function($){return this.inspectOpts.colors=this.useColors,o$.inspect($,this.inspectOpts)}});var X9=n((Mx,J9)=>{if(typeof process>"u"||process.type==="renderer"||!1||process.__nwjs)J9.exports=R7();else J - Possible obfuscationline 8
`).some((Q)=>Q.indexOf("(https.js:")!==-1||Q.indexOf("node:https:")!==-1)}incrementSockets($){if(this.maxSockets===1/0&&this.maxTotalSockets===1/0)return null;if(!this.sockets[$])this.sockets[$]=[];let Z=new dD.Socket({writable:!1});return - Possible obfuscationline 11
`),N=I.shift();if(!N)return $.destroy(),Q(Error("No header received from proxy CONNECT response"));let B=N.split(" "),A=+B[1],T=B.slice(2).join(" "),L={};for(let S of I){if(!S)continue;let O=S.indexOf(":");if(O===-1)return $.destroy(),Q(Err - Possible obfuscationline 14
`);let{connect:G,buffered:F}=await H;if($.emit("proxyConnect",G),this.emit("proxyConnect",G,$),G.statusCode===200){if($.once("socket",$w),Z.secureEndpoint)return b6("Upgrading socket connection to TLS"),m7.connect({...u7(b7(Z),"host","path" - Network accessline 22
`,X,`\r `)),Y.push(`--${Q}--`),new Z(Y,{type:"multipart/form-data; boundary="+Q})}var d6,Xw,Vw,t7,Kw,e7=($,Z,Q)=>($+="",/^(Blob|File)$/.test(Z&&Z[d6])?[(Q=Q!==void 0?Q+"":Z[d6]=="File"?Z.name:"blob",$),Z.name!==Q||Z[d6]=="blob"?new h8([Z],Q - Network accessline 23
`)),Y.push(`--${Q}--`),new Z(Y,{type:"multipart/form-data; boundary="+Q})}var d6,Xw,Vw,t7,Kw,e7=($,Z,Q)=>($+="",/^(Blob|File)$/.test(Z&&Z[d6])?[(Q=Q!==void 0?Q+"":Z[d6]=="File"?Z.name:"blob",$),Z.name!==Q||Z[d6]=="blob"?new h8([Z],Q,Z):Z]:[ - Network accessline 24
`)).replace(/\n/g,"%0A").replace(/\r/g,"%0D").replace(/"/g,"%22"),F1=($,Z,Q)=>{if(Z.length<Q)throw TypeError(`Failed to execute '${$}' on 'FormData': ${Q} arguments required, but only ${Z.length} present.`)},y8;var QZ=t0(()=>{u6();z9();/*! - Possible obfuscationline 24
`)).replace(/\n/g,"%0A").replace(/\r/g,"%0D").replace(/"/g,"%22"),F1=($,Z,Q)=>{if(Z.length<Q)throw TypeError(`Failed to execute '${$}' on 'FormData': ${Q} arguments required, but only ${Z.length} present.`)},y8;var QZ=t0(()=>{u6();z9();/*! - Possible obfuscationline 25
[Credential-related source omitted] - Network accessline 26
\r `),Y=!1,J=!1,X;$.on("response",(K)=>{let{headers:H}=K;Y=H["transfer-encoding"]==="chunked"&&!H["content-length"]}),$.on("socket",(K)=>{let H=()=>{if(Y&&!J){let F=Error("Premature close");F.code="ERR_STREAM_PREMATURE_CLOSE",Z(F)}},G=(F)=> - Network accessline 27
`),Y=!1,J=!1,X;$.on("response",(K)=>{let{headers:H}=K;Y=H["transfer-encoding"]==="chunked"&&!H["content-length"]}),$.on("socket",(K)=>{let H=()=>{if(Y&&!J){let F=Error("Premature close");F.code="ERR_STREAM_PREMATURE_CLOSE",Z(F)}},G=(F)=>{if - Possible obfuscationline 27
`),Y=!1,J=!1,X;$.on("response",(K)=>{let{headers:H}=K;Y=H["transfer-encoding"]==="chunked"&&!H["content-length"]}),$.on("socket",(K)=>{let H=()=>{if(Y&&!J){let F=Error("Premature close");F.code="ERR_STREAM_PREMATURE_CLOSE",Z(F)}},G=(F)=>{if - Possible obfuscationline 31
`}yield Q}static#X;static#V;static async#K(){return this.#X||=(await Promise.resolve().then(() => B4(c7()))).HttpsProxyAgent,this.#X}static async#z(){let $=typeof window<"u"&&!!window;return this.#V||=$?window.fetch:(await Promise.resolve() - Possible obfuscationline 36
`+Y)+ `+B+"}":"{"+A.join(",")+"}",Y=B,I}}if(typeof pX.stringify!=="function")pX.stringify=function(F,q,M){var D;if(Y="",J="",typeof M==="number")for(D=0;D<M;D+=1)J+=" ";else if(typeof M==="string")J=M;if(K=q,q&&typeof q!=="function"&&(typeo - Possible obfuscationline 37
`+B+"}":"{"+A.join(",")+"}",Y=B,I}}if(typeof pX.stringify!=="function")pX.stringify=function(F,q,M){var D;if(Y="",J="",typeof M==="number")for(D=0;D<M;D+=1)J+=" ";else if(typeof M==="string")J=M;if(K=q,q&&typeof q!=="function"&&(typeof q!== - Possible obfuscationline 38
[Credential-related source omitted] - Possible obfuscationline 40
[Credential-related source omitted] - Network accessline 47
${X} ${I} `+await $.crypto.sha256DigestHex(D),B=await jT($.crypto,$.securityCredentials.secretAccessKey,K,$.region,Y),A=await J$($.crypto,B,N),T=`${Q3} Credential=${$.securityCredentials.accessKeyId}/${I}, SignedHeaders=${q}, Signature=${(0 - Network accessline 48
${I} `+await $.crypto.sha256DigestHex(D),B=await jT($.crypto,$.securityCredentials.secretAccessKey,K,$.region,Y),A=await J$($.crypto,B,N),T=`${Q3} Credential=${$.securityCredentials.accessKeyId}/${I}, SignedHeaders=${q}, Signature=${(0,Y3.f - Network accessline 49
[Credential-related source omitted] - Possible obfuscationline 49
[Credential-related source omitted] - Access to secretsline 49
[Credential-related source omitted] - Network accessline 50
To learn more about authentication and Google APIs, visit: https://cloud.google.com/docs/authentication/getting-started`,NO_CREDENTIALS_FOUND:`Unable to find credentials in current environment. To learn more about authentication and Googl - Network accessline 51
https://cloud.google.com/docs/authentication/getting-started`,NO_CREDENTIALS_FOUND:`Unable to find credentials in current environment. - Network accessline 52
To learn more about authentication and Google APIs, visit: https://cloud.google.com/docs/authentication/getting-started`,NO_ADC_FOUND:"Could not load the default credentials. Browse to https://cloud.google.com/docs/authentication/getting-s - Network accessline 53
https://cloud.google.com/docs/authentication/getting-started`,NO_ADC_FOUND:"Could not load the default credentials. Browse to https://cloud.google.com/docs/authentication/getting-started for more information.",NO_UNIVERSE_DOMAIN_FOUND:`Unab - Network accessline 54
To learn more about Universe Domain retrieval, visit: https://cloud.google.com/compute/docs/metadata/predefined-metadata-keys`};class b3{checkIsGCE=void 0;useJWTAccessWithScope;defaultServicePath;get isGCE(){return this.checkIsGCE}_findPro - Network accessline 55
[Credential-related source omitted] - Possible obfuscationline 55
[Credential-related source omitted] - Possible obfuscationline 61
`+Q)}function T1($,Z,Q,Y,J,X){if($.listenerCount("wsClientError")){let K=Error(J);Error.captureStackTrace(K,T1),$.emit("wsClientError",K,Q,Z)}else M$(Q,Y,J,X)}});var Y2=B4($7(),1),J2=B4(KW(),1);import{createWriteStream as TL}from"fs";import - Network accessline 63
`,"\r\r",`\r \r `];while(!0){let{done:G,value:F}=yield m0(Y.read());if(G){if(X.trim().length>0)throw Error("Incomplete JSON segment at the end");break}let q=J.decode(F,{stream:!0});try{let I=JSON.parse(q);if("error"in I){let N=JSON.parse(JS - Network accessline 64
\r `];while(!0){let{done:G,value:F}=yield m0(Y.read());if(G){if(X.trim().length>0)throw Error("Incomplete JSON segment at the end");break}let q=J.decode(F,{stream:!0});try{let I=JSON.parse(q);if("error"in I){let N=JSON.parse(JSON.stringify( - Network accessline 65
[Credential-related source omitted] - Possible obfuscationline 65
[Credential-related source omitted] - Possible obfuscationline 66
`:". ";let J=Y;if(Y.length>1e4){let X=Y.substring(0,1e4),K=Y.length-1e4;J=`${X}...and ${K} more chars`}$+=`Body: ${J}`,$=$.trim();super($,Z);this.name="GoogleGenAiDefaultError"}}function rG($){try{return JSON.parse($)}catch(Z){return $}}fun - Possible obfuscationline 67
[Credential-related source omitted] - Access to secretsline 67
[Credential-related source omitted] - Access to secretsline 68
[Credential-related source omitted]
skills/gemini-audio-transcriber/src/transcribe.js
- Executable scriptline 1
#!/usr/bin/env node - Access to secretsline 12
[Credential-related source omitted] - Network accessline 34
console.error("範例:"); console.error( ' node scripts/transcribe.js "https://example.com/audio/meeting.mp3"' - Network accessline 35
console.error( ' node scripts/transcribe.js "https://example.com/audio/meeting.mp3"' ); - Network accessline 36
' node scripts/transcribe.js "https://example.com/audio/meeting.mp3"' - Access to secretsline 140
[Credential-related source omitted] - Access to secretsline 142
[Credential-related source omitted] - Access to secretsline 143
[Credential-related source omitted]
skills/gemini-deep-researcher/README.md
skills/gemini-deep-researcher/SKILL.md
- Access to secretsline 13
[Credential-related source omitted]
skills/gemini-deep-researcher/githubclaw.json
- Network accessline 6
"tags": ["gemini", "research", "deep-analysis", "report", "citations"], "version": "1.0.0", "support_url": "https://github.com/duotify/GitHubClawToolkit/issues", - Network accessline 7
"version": "1.0.0", "support_url": "https://github.com/duotify/GitHubClawToolkit/issues", "homepage": "https://learn.duotify.com/courses/githubclaw", - Network accessline 8
"support_url": "https://github.com/duotify/GitHubClawToolkit/issues", - Network accessline 9
"homepage": "https://learn.duotify.com/courses/githubclaw", - Access to secretsline 10
[Credential-related source omitted]
skills/gemini-deep-researcher/package.json
- Executable scriptline 1
Executable file
skills/gemini-deep-researcher/scripts/research.js
- Possible obfuscationline 1
import{createRequire as gU}from"node:module";var SU=Object.create;var{getPrototypeOf:OU,defineProperty:sQ,getOwnPropertyNames:EU}=Object;var _U=Object.prototype.hasOwnProperty;function vU($){return this[$]}var jU,xU,B4=($,Z,Q)=>{var Y=$!=nu - Executable scriptline 1
Executable file - Possible obfuscationline 2
[Credential-related source omitted] - Access to secretsline 2
[Credential-related source omitted] - Possible obfuscationline 3
`).join( `+X),$.push(J+"m+"+t$.exports.humanize(this.diff)+"\x1B[0m")}else $[0]=PD()+Z+" "+$[0]}function PD(){if(S7.inspectOpts.hideDate)return"";return new Date().toISOString()+" "}function AD(...$){return process.stderr.write(o$.formatWit - Possible obfuscationline 6
`).map((Z)=>Z.trim()).join(" ")};C7.O=function($){return this.inspectOpts.colors=this.useColors,o$.inspect($,this.inspectOpts)}});var X9=n((Gx,J9)=>{if(typeof process>"u"||process.type==="renderer"||!1||process.__nwjs)J9.exports=L7();else J - Possible obfuscationline 7
`).some((Q)=>Q.indexOf("(https.js:")!==-1||Q.indexOf("node:https:")!==-1)}incrementSockets($){if(this.maxSockets===1/0&&this.maxTotalSockets===1/0)return null;if(!this.sockets[$])this.sockets[$]=[];let Z=new dD.Socket({writable:!1});return - Possible obfuscationline 10
`),N=I.shift();if(!N)return $.destroy(),Q(Error("No header received from proxy CONNECT response"));let B=N.split(" "),P=+B[1],T=B.slice(2).join(" "),R={};for(let S of I){if(!S)continue;let O=S.indexOf(":");if(O===-1)return $.destroy(),Q(Err - Possible obfuscationline 13
`);let{connect:G,buffered:F}=await H;if($.emit("proxyConnect",G),this.emit("proxyConnect",G,$),G.statusCode===200){if($.once("socket",$w),Z.secureEndpoint)return b6("Upgrading socket connection to TLS"),m7.connect({...u7(b7(Z),"host","path" - Network accessline 21
`,X,`\r `)),Y.push(`--${Q}--`),new Z(Y,{type:"multipart/form-data; boundary="+Q})}var d6,Xw,Vw,t7,Kw,e7=($,Z,Q)=>($+="",/^(Blob|File)$/.test(Z&&Z[d6])?[(Q=Q!==void 0?Q+"":Z[d6]=="File"?Z.name:"blob",$),Z.name!==Q||Z[d6]=="blob"?new h8([Z],Q - Network accessline 22
`)),Y.push(`--${Q}--`),new Z(Y,{type:"multipart/form-data; boundary="+Q})}var d6,Xw,Vw,t7,Kw,e7=($,Z,Q)=>($+="",/^(Blob|File)$/.test(Z&&Z[d6])?[(Q=Q!==void 0?Q+"":Z[d6]=="File"?Z.name:"blob",$),Z.name!==Q||Z[d6]=="blob"?new h8([Z],Q,Z):Z]:[ - Network accessline 23
`)).replace(/\n/g,"%0A").replace(/\r/g,"%0D").replace(/"/g,"%22"),F1=($,Z,Q)=>{if(Z.length<Q)throw TypeError(`Failed to execute '${$}' on 'FormData': ${Q} arguments required, but only ${Z.length} present.`)},y8;var QZ=t0(()=>{u6();z9();/*! - Possible obfuscationline 23
`)).replace(/\n/g,"%0A").replace(/\r/g,"%0D").replace(/"/g,"%22"),F1=($,Z,Q)=>{if(Z.length<Q)throw TypeError(`Failed to execute '${$}' on 'FormData': ${Q} arguments required, but only ${Z.length} present.`)},y8;var QZ=t0(()=>{u6();z9();/*! - Possible obfuscationline 24
[Credential-related source omitted] - Network accessline 25
\r `),Y=!1,J=!1,X;$.on("response",(K)=>{let{headers:H}=K;Y=H["transfer-encoding"]==="chunked"&&!H["content-length"]}),$.on("socket",(K)=>{let H=()=>{if(Y&&!J){let F=Error("Premature close");F.code="ERR_STREAM_PREMATURE_CLOSE",Z(F)}},G=(F)=> - Network accessline 26
`),Y=!1,J=!1,X;$.on("response",(K)=>{let{headers:H}=K;Y=H["transfer-encoding"]==="chunked"&&!H["content-length"]}),$.on("socket",(K)=>{let H=()=>{if(Y&&!J){let F=Error("Premature close");F.code="ERR_STREAM_PREMATURE_CLOSE",Z(F)}},G=(F)=>{if - Possible obfuscationline 26
`),Y=!1,J=!1,X;$.on("response",(K)=>{let{headers:H}=K;Y=H["transfer-encoding"]==="chunked"&&!H["content-length"]}),$.on("socket",(K)=>{let H=()=>{if(Y&&!J){let F=Error("Premature close");F.code="ERR_STREAM_PREMATURE_CLOSE",Z(F)}},G=(F)=>{if - Possible obfuscationline 30
`}yield Q}static#X;static#V;static async#K(){return this.#X||=(await Promise.resolve().then(() => B4(c7()))).HttpsProxyAgent,this.#X}static async#z(){let $=typeof window<"u"&&!!window;return this.#V||=$?window.fetch:(await Promise.resolve() - Possible obfuscationline 35
`+Y)+ `+B+"}":"{"+P.join(",")+"}",Y=B,I}}if(typeof pX.stringify!=="function")pX.stringify=function(F,q,M){var D;if(Y="",J="",typeof M==="number")for(D=0;D<M;D+=1)J+=" ";else if(typeof M==="string")J=M;if(K=q,q&&typeof q!=="function"&&(typeo - Possible obfuscationline 36
`+B+"}":"{"+P.join(",")+"}",Y=B,I}}if(typeof pX.stringify!=="function")pX.stringify=function(F,q,M){var D;if(Y="",J="",typeof M==="number")for(D=0;D<M;D+=1)J+=" ";else if(typeof M==="string")J=M;if(K=q,q&&typeof q!=="function"&&(typeof q!== - Possible obfuscationline 37
[Credential-related source omitted] - Possible obfuscationline 39
[Credential-related source omitted] - Network accessline 46
${X} ${I} `+await $.crypto.sha256DigestHex(D),B=await jT($.crypto,$.securityCredentials.secretAccessKey,K,$.region,Y),P=await J$($.crypto,B,N),T=`${Q3} Credential=${$.securityCredentials.accessKeyId}/${I}, SignedHeaders=${q}, Signature=${(0 - Network accessline 47
${I} `+await $.crypto.sha256DigestHex(D),B=await jT($.crypto,$.securityCredentials.secretAccessKey,K,$.region,Y),P=await J$($.crypto,B,N),T=`${Q3} Credential=${$.securityCredentials.accessKeyId}/${I}, SignedHeaders=${q}, Signature=${(0,Y3.f - Network accessline 48
[Credential-related source omitted] - Possible obfuscationline 48
[Credential-related source omitted] - Access to secretsline 48
[Credential-related source omitted] - Network accessline 49
To learn more about authentication and Google APIs, visit: https://cloud.google.com/docs/authentication/getting-started`,NO_CREDENTIALS_FOUND:`Unable to find credentials in current environment. To learn more about authentication and Googl - Network accessline 50
https://cloud.google.com/docs/authentication/getting-started`,NO_CREDENTIALS_FOUND:`Unable to find credentials in current environment. - Network accessline 51
To learn more about authentication and Google APIs, visit: https://cloud.google.com/docs/authentication/getting-started`,NO_ADC_FOUND:"Could not load the default credentials. Browse to https://cloud.google.com/docs/authentication/getting-s - Network accessline 52
https://cloud.google.com/docs/authentication/getting-started`,NO_ADC_FOUND:"Could not load the default credentials. Browse to https://cloud.google.com/docs/authentication/getting-started for more information.",NO_UNIVERSE_DOMAIN_FOUND:`Unab - Network accessline 53
To learn more about Universe Domain retrieval, visit: https://cloud.google.com/compute/docs/metadata/predefined-metadata-keys`};class b3{checkIsGCE=void 0;useJWTAccessWithScope;defaultServicePath;get isGCE(){return this.checkIsGCE}_findPro - Network accessline 54
[Credential-related source omitted] - Possible obfuscationline 54
[Credential-related source omitted] - Possible obfuscationline 60
`+Q)}function T1($,Z,Q,Y,J,X){if($.listenerCount("wsClientError")){let K=Error(J);Error.captureStackTrace(K,T1),$.emit("wsClientError",K,Q,Z)}else M$(Q,Y,J,X)}});var Y2=B4($7(),1),J2=B4(KW(),1);import{createWriteStream as TR}from"fs";import - Network accessline 62
`,"\r\r",`\r \r `];while(!0){let{done:G,value:F}=yield m0(Y.read());if(G){if(X.trim().length>0)throw Error("Incomplete JSON segment at the end");break}let q=J.decode(F,{stream:!0});try{let I=JSON.parse(q);if("error"in I){let N=JSON.parse(JS - Network accessline 63
\r `];while(!0){let{done:G,value:F}=yield m0(Y.read());if(G){if(X.trim().length>0)throw Error("Incomplete JSON segment at the end");break}let q=J.decode(F,{stream:!0});try{let I=JSON.parse(q);if("error"in I){let N=JSON.parse(JSON.stringify( - Network accessline 64
[Credential-related source omitted] - Possible obfuscationline 64
[Credential-related source omitted] - Possible obfuscationline 65
`:". ";let J=Y;if(Y.length>1e4){let X=Y.substring(0,1e4),K=Y.length-1e4;J=`${X}...and ${K} more chars`}$+=`Body: ${J}`,$=$.trim();super($,Z);this.name="GoogleGenAiDefaultError"}}function sG($){try{return JSON.parse($)}catch(Z){return $}}fun - Possible obfuscationline 66
[Credential-related source omitted] - Access to secretsline 66
[Credential-related source omitted] - Possible obfuscationline 82
[Credential-related source omitted] - Access to secretsline 82
[Credential-related source omitted] - Access to secretsline 83
[Credential-related source omitted]
skills/gemini-deep-researcher/src/research.js
skills/gemini-image-describer/README.md
- Access to secretsline 27
[Credential-related source omitted]
skills/gemini-image-describer/SKILL.md
- Access to secretsline 12
[Credential-related source omitted] - Network accessline 27
[Credential-related source omitted] - Access to secretsline 27
[Credential-related source omitted] - Access to secretsline 31
[Credential-related source omitted] - Access to secretsline 35
[Credential-related source omitted] - Network accessline 43
IMAGE_DESCRIBER_DRY_RUN=1 node .agents/skills/gemini-image-describer/scripts/describe.js "https://example.com/photo.jpg" - Access to secretsline 61
[Credential-related source omitted] - Access to secretsline 80
[Credential-related source omitted]
skills/gemini-image-describer/githubclaw.json
- Network accessline 6
"tags": ["gemini", "image", "ocr", "description", "vision"], "version": "1.0.0", "support_url": "https://github.com/duotify/GitHubClawToolkit/issues", - Network accessline 7
"version": "1.0.0", "support_url": "https://github.com/duotify/GitHubClawToolkit/issues", "homepage": "https://learn.duotify.com/courses/githubclaw", - Network accessline 8
"support_url": "https://github.com/duotify/GitHubClawToolkit/issues", - Network accessline 9
"homepage": "https://learn.duotify.com/courses/githubclaw", - Access to secretsline 10
[Credential-related source omitted]
skills/gemini-image-describer/package.json
- Executable scriptline 1
Executable file
skills/gemini-image-describer/scripts/describe.js
- Executable scriptline 1
#!/usr/bin/env node - Possible obfuscationline 2
import{createRequire as bq}from"node:module";var _q=Object.create;var{getPrototypeOf:vq,defineProperty:CQ,getOwnPropertyNames:xq}=Object;var hq=Object.prototype.hasOwnProperty;function yq($){return this[$]}var gq,fq,X4=($,Z,Q)=>{var Y=$!=nu - Possible obfuscationline 3
[Credential-related source omitted] - Access to secretsline 3
[Credential-related source omitted] - Possible obfuscationline 4
`).join( `+X),$.push(J+"m+"+C$.exports.humanize(this.diff)+"\x1B[0m")}else $[0]=CM()+Z+" "+$[0]}function CM(){if(H7.inspectOpts.hideDate)return"";return new Date().toISOString()+" "}function SM(...$){return process.stderr.write(L$.formatWit - Possible obfuscationline 7
`).map((Z)=>Z.trim()).join(" ")};W7.O=function($){return this.inspectOpts.colors=this.useColors,L$.inspect($,this.inspectOpts)}});var yQ=p((fE,hQ)=>{if(typeof process>"u"||process.type==="renderer"||!1||process.__nwjs)hQ.exports=z7();else h - Possible obfuscationline 8
`).some((Q)=>Q.indexOf("(https.js:")!==-1||Q.indexOf("node:https:")!==-1)}incrementSockets($){if(this.maxSockets===1/0&&this.maxTotalSockets===1/0)return null;if(!this.sockets[$])this.sockets[$]=[];let Z=new iM.Socket({writable:!1});return - Possible obfuscationline 11
`),T=I.shift();if(!T)return $.destroy(),Q(Error("No header received from proxy CONNECT response"));let N=T.split(" "),R=+N[1],C=N.slice(2).join(" "),k={};for(let b of I){if(!b)continue;let u=b.indexOf(":");if(u===-1)return $.destroy(),Q(Err - Possible obfuscationline 14
`);let{connect:G,buffered:F}=await H;if($.emit("proxyConnect",G),this.emit("proxyConnect",G,$),G.statusCode===200){if($.once("socket",JD),Z.secureEndpoint)return U6("Upgrading socket connection to TLS"),A7.connect({...R7(P7(Z),"host","path" - Network accessline 22
`,X,`\r `)),Y.push(`--${Q}--`),new Z(Y,{type:"multipart/form-data; boundary="+Q})}var I6,WD,HD,y7,GD,g7=($,Z,Q)=>($+="",/^(Blob|File)$/.test(Z&&Z[I6])?[(Q=Q!==void 0?Q+"":Z[I6]=="File"?Z.name:"blob",$),Z.name!==Q||Z[I6]=="blob"?new w8([Z],Q - Network accessline 23
`)),Y.push(`--${Q}--`),new Z(Y,{type:"multipart/form-data; boundary="+Q})}var I6,WD,HD,y7,GD,g7=($,Z,Q)=>($+="",/^(Blob|File)$/.test(Z&&Z[I6])?[(Q=Q!==void 0?Q+"":Z[I6]=="File"?Z.name:"blob",$),Z.name!==Q||Z[I6]=="blob"?new w8([Z],Q,Z):Z]:[ - Network accessline 24
`)).replace(/\n/g,"%0A").replace(/\r/g,"%0D").replace(/"/g,"%22"),c8=($,Z,Q)=>{if(Z.length<Q)throw TypeError(`Failed to execute '${$}' on 'FormData': ${Q} arguments required, but only ${Z.length} present.`)},I8;var j$=k0(()=>{w6();kQ();/*! - Possible obfuscationline 24
`)).replace(/\n/g,"%0A").replace(/\r/g,"%0D").replace(/"/g,"%22"),c8=($,Z,Q)=>{if(Z.length<Q)throw TypeError(`Failed to execute '${$}' on 'FormData': ${Q} arguments required, but only ${Z.length} present.`)},I8;var j$=k0(()=>{w6();kQ();/*! - Possible obfuscationline 25
[Credential-related source omitted] - Network accessline 26
\r `),Y=!1,J=!1,X;$.on("response",(K)=>{let{headers:H}=K;Y=H["transfer-encoding"]==="chunked"&&!H["content-length"]}),$.on("socket",(K)=>{let H=()=>{if(Y&&!J){let F=Error("Premature close");F.code="ERR_STREAM_PREMATURE_CLOSE",Z(F)}},G=(F)=> - Network accessline 27
`),Y=!1,J=!1,X;$.on("response",(K)=>{let{headers:H}=K;Y=H["transfer-encoding"]==="chunked"&&!H["content-length"]}),$.on("socket",(K)=>{let H=()=>{if(Y&&!J){let F=Error("Premature close");F.code="ERR_STREAM_PREMATURE_CLOSE",Z(F)}},G=(F)=>{if - Possible obfuscationline 27
`),Y=!1,J=!1,X;$.on("response",(K)=>{let{headers:H}=K;Y=H["transfer-encoding"]==="chunked"&&!H["content-length"]}),$.on("socket",(K)=>{let H=()=>{if(Y&&!J){let F=Error("Premature close");F.code="ERR_STREAM_PREMATURE_CLOSE",Z(F)}},G=(F)=>{if - Possible obfuscationline 31
`}yield Q}static#X;static#V;static async#K(){return this.#X||=(await Promise.resolve().then(() => X4(S7()))).HttpsProxyAgent,this.#X}static async#z(){let $=typeof window<"u"&&!!window;return this.#V||=$?window.fetch:(await Promise.resolve() - Possible obfuscationline 36
`+Y)+ `+N+"}":"{"+R.join(",")+"}",Y=N,I}}if(typeof OX.stringify!=="function")OX.stringify=function(F,q,D){var w;if(Y="",J="",typeof D==="number")for(w=0;w<D;w+=1)J+=" ";else if(typeof D==="string")J=D;if(K=q,q&&typeof q!=="function"&&(typeo - Possible obfuscationline 37
`+N+"}":"{"+R.join(",")+"}",Y=N,I}}if(typeof OX.stringify!=="function")OX.stringify=function(F,q,D){var w;if(Y="",J="",typeof D==="number")for(w=0;w<D;w+=1)J+=" ";else if(typeof D==="string")J=D;if(K=q,q&&typeof q!=="function"&&(typeof q!== - Possible obfuscationline 38
[Credential-related source omitted] - Possible obfuscationline 40
[Credential-related source omitted] - Network accessline 47
${X} ${I} `+await $.crypto.sha256DigestHex(w),N=await gN($.crypto,$.securityCredentials.secretAccessKey,K,$.region,Y),R=await h6($.crypto,N,T),C=`${mz} Credential=${$.securityCredentials.accessKeyId}/${I}, SignedHeaders=${q}, Signature=${(0 - Network accessline 48
${I} `+await $.crypto.sha256DigestHex(w),N=await gN($.crypto,$.securityCredentials.secretAccessKey,K,$.region,Y),R=await h6($.crypto,N,T),C=`${mz} Credential=${$.securityCredentials.accessKeyId}/${I}, SignedHeaders=${q}, Signature=${(0,bz.f - Network accessline 49
[Credential-related source omitted] - Possible obfuscationline 49
[Credential-related source omitted] - Access to secretsline 49
[Credential-related source omitted] - Network accessline 50
To learn more about authentication and Google APIs, visit: https://cloud.google.com/docs/authentication/getting-started`,NO_CREDENTIALS_FOUND:`Unable to find credentials in current environment. To learn more about authentication and Googl - Network accessline 51
https://cloud.google.com/docs/authentication/getting-started`,NO_CREDENTIALS_FOUND:`Unable to find credentials in current environment. - Network accessline 52
To learn more about authentication and Google APIs, visit: https://cloud.google.com/docs/authentication/getting-started`,NO_ADC_FOUND:"Could not load the default credentials. Browse to https://cloud.google.com/docs/authentication/getting-s - Network accessline 53
https://cloud.google.com/docs/authentication/getting-started`,NO_ADC_FOUND:"Could not load the default credentials. Browse to https://cloud.google.com/docs/authentication/getting-started for more information.",NO_UNIVERSE_DOMAIN_FOUND:`Unab - Network accessline 54
To learn more about Universe Domain retrieval, visit: https://cloud.google.com/compute/docs/metadata/predefined-metadata-keys`};class T3{checkIsGCE=void 0;useJWTAccessWithScope;defaultServicePath;get isGCE(){return this.checkIsGCE}_findPro - Network accessline 55
[Credential-related source omitted] - Possible obfuscationline 55
[Credential-related source omitted] - Possible obfuscationline 61
[Credential-related source omitted] - Network accessline 63
`,"\r\r",`\r \r `];while(!0){let{done:G,value:F}=yield K0(Y.read());if(G){if(X.trim().length>0)throw Error("Incomplete JSON segment at the end");break}let q=J.decode(F,{stream:!0});try{let I=JSON.parse(q);if("error"in I){let T=JSON.parse(JS - Network accessline 64
\r `];while(!0){let{done:G,value:F}=yield K0(Y.read());if(G){if(X.trim().length>0)throw Error("Incomplete JSON segment at the end");break}let q=J.decode(F,{stream:!0});try{let I=JSON.parse(q);if("error"in I){let T=JSON.parse(JSON.stringify( - Network accessline 65
[Credential-related source omitted] - Possible obfuscationline 65
[Credential-related source omitted] - Possible obfuscationline 69
${D}`)}return K},xZ=jO(j2);class RY extends PY{create($,Z){var Q;let{api_version:Y=this._client.apiVersion}=$,J=lZ($,["api_version"]);if("model"in J&&"agent_config"in J)throw new F4("Invalid request: specified `model` and `agent_config`. If - Network accessline 70
`)}}r6.NEWLINE_CHARS=new Set([` `,"\r"]);r6.NEWLINE_REGEXP=/\r\n|[\n\r]/g;function vO($,Z){let J=Z!==null&&Z!==void 0?Z:0,X=$.indexOf(10,J),K=$.indexOf(13,J);if(X===-1&&K===-1)return null;let H;if(X!==-1&&K!==-1)H=Math.min(X,K);else H=X!==- - Network accessline 71
`,"\r"]);r6.NEWLINE_REGEXP=/\r\n|[\n\r]/g;function vO($,Z){let J=Z!==null&&Z!==void 0?Z:0,X=$.indexOf(10,J),K=$.indexOf(13,J);if(X===-1&&K===-1)return null;let H;if(X!==-1&&K!==-1)H=Math.min(X,K);else H=X!==-1?X:K;if($[H]===10)return{preced - Possible obfuscationline 71
`,"\r"]);r6.NEWLINE_REGEXP=/\r\n|[\n\r]/g;function vO($,Z){let J=Z!==null&&Z!==void 0?Z:0,X=$.indexOf(10,J),K=$.indexOf(13,J);if(X===-1&&K===-1)return null;let H;if(X!==-1&&K!==-1)H=Math.min(X,K);else H=X!==-1?X:K;if($[H]===10)return{preced - Network accessline 72
`);Q.enqueue(X)}catch(Y){Q.error(Y)}},async cancel(){var Q;await((Q=Z.return)===null||Q===void 0?void 0:Q.call(Z))}})}}function hO($,Z){return v4(this,arguments,function*(){var Y,J,X,K;if(!$.body){if(Z.abort(),typeof globalThis.navigator<"u - Possible obfuscationline 72
`);Q.enqueue(X)}catch(Y){Q.error(Y)}},async cancel(){var Q;await((Q=Z.return)===null||Q===void 0?void 0:Q.call(Z))}})}}function hO($,Z){return v4(this,arguments,function*(){var Y,J,X,K;if(!$.body){if(Z.abort(),typeof globalThis.navigator<"u - Network accessline 73
[Credential-related source omitted] - Possible obfuscationline 73
[Credential-related source omitted] - Access to secretsline 73
[Credential-related source omitted] - Access to secretsline 74
[Credential-related source omitted]
skills/gemini-image-describer/src/describe.js
- Executable scriptline 1
#!/usr/bin/env node - Access to secretsline 13
[Credential-related source omitted] - Network accessline 34
console.error("範例:"); console.error( ' node scripts/describe.js "https://example.com/photo.jpg"' - Network accessline 35
console.error( ' node scripts/describe.js "https://example.com/photo.jpg"' ); - Network accessline 36
' node scripts/describe.js "https://example.com/photo.jpg"' - Network accessline 100
const timeout = setTimeout(() => controller.abort(), 30_000); try { const res = await fetch(rawInput, { - Network accessline 101
try { const res = await fetch(rawInput, { method: "HEAD", - Network accessline 102
const res = await fetch(rawInput, { - Access to secretsline 164
[Credential-related source omitted] - Access to secretsline 167
[Credential-related source omitted] - Access to secretsline 170
[Credential-related source omitted]
skills/gemini-lyria-3/README.md
skills/gemini-lyria-3/SKILL.md
- Access to secretsline 5
[Credential-related source omitted] - Access to secretsline 14
[Credential-related source omitted] - Access to secretsline 26
[Credential-related source omitted] - Network accessline 56
- [track-0.mp3](https://github.com/{GITHUB_REPO}/blob/{BRANCH}/{path}?raw=true) - Access to secretsline 68
[Credential-related source omitted] - Access to secretsline 81
[Credential-related source omitted]
skills/gemini-lyria-3/githubclaw.json
- Network accessline 6
"tags": ["gemini", "lyria", "music-generation", "audio", "ai-music"], "version": "1.0.0", "support_url": "https://github.com/duotify/GitHubClawToolkit/issues", - Network accessline 7
"version": "1.0.0", "support_url": "https://github.com/duotify/GitHubClawToolkit/issues", "homepage": "https://learn.duotify.com/courses/githubclaw", - Network accessline 8
"support_url": "https://github.com/duotify/GitHubClawToolkit/issues", - Network accessline 9
"homepage": "https://learn.duotify.com/courses/githubclaw", - Access to secretsline 10
[Credential-related source omitted]
skills/gemini-lyria-3/scripts/generate-track.js
- Executable scriptline 1
#!/usr/bin/env node - Access to secretsline 8
[Credential-related source omitted] - Access to secretsline 36
[Credential-related source omitted] - Access to secretsline 37
[Credential-related source omitted] - Network accessline 61
const url = `https://generativelanguage.googleapis.com/v1beta/models/${encodeURIComponent(model)}:generateContent`; - Network accessline 63
const response = await fetch(url, {
skills/gemini-nanobanana/README.md
- Access to secretsline 27
[Credential-related source omitted]
skills/gemini-nanobanana/SKILL.md
- Access to secretsline 12
[Credential-related source omitted] - Network accessline 25
- Use [`references\sources.md`](references/sources.md) to verify source provenance and jump to upstream docs. - For canonical API behavior, read: - [Gemini image-generation docs](https://ai.google.dev/gemini-api/docs/image-generation) - Network accessline 26
- For canonical API behavior, read: - [Gemini image-generation docs](https://ai.google.dev/gemini-api/docs/image-generation) - [Aspect ratios and image size](https://ai.google.dev/gemini-api/docs/image-generation#aspect_ratios_and_image - Network accessline 27
- [Gemini image-generation docs](https://ai.google.dev/gemini-api/docs/image-generation) - Network accessline 28
- [Aspect ratios and image size](https://ai.google.dev/gemini-api/docs/image-generation#aspect_ratios_and_image_size) - Network accessline 29
- [Thinking process](https://ai.google.dev/gemini-api/docs/image-generation#thinking-process) - Network accessline 30
- [Grounding with Google Search](https://ai.google.dev/gemini-api/docs/image-generation#use-with-grounding) - Network accessline 31
- [Grounding with Google Image Search](https://ai.google.dev/gemini-api/docs/image-generation#image-search) - Network accessline 37
1. `✅ 圖片已產出` 2. Each image as a **markdown embed with absolute GitHub URL**: `` - Network accessline 38
2. Each image as a **markdown embed with absolute GitHub URL**: `` 3. File metadata: format (`JPEG`/`PNG`), dimensions, file size - Network accessline 39
`` - Network accessline 51
 - Network accessline 63
 - Network accessline 64
 - Access to secretsline 85
[Credential-related source omitted]
skills/gemini-nanobanana/githubclaw.json
- Network accessline 6
"tags": ["gemini", "image-generation", "nanobanana", "editing", "ai-art"], "version": "1.0.0", "support_url": "https://github.com/duotify/GitHubClawToolkit/issues", - Network accessline 7
"version": "1.0.0", "support_url": "https://github.com/duotify/GitHubClawToolkit/issues", "homepage": "https://learn.duotify.com/courses/githubclaw", - Network accessline 8
"support_url": "https://github.com/duotify/GitHubClawToolkit/issues", - Network accessline 9
"homepage": "https://learn.duotify.com/courses/githubclaw", - Access to secretsline 10
[Credential-related source omitted]
skills/gemini-nanobanana/references/image-generation-api.md
- Network accessline 5
- [Build with Nano Banana (Google blog)](https://blog.google/innovation-and-ai/technology/developers-tools/build-with-nano-banana-2/) - Network accessline 6
- [Get Started Nano Banana notebook (Colab)](https://colab.research.google.com/github/google-gemini/cookbook/blob/main/quickstarts/Get_Started_Nano_Banana.ipynb#nano-banana-pro) - Network accessline 7
- [Gemini API image-generation docs](https://ai.google.dev/gemini-api/docs/image-generation) - Network accessline 39
- Blog launch calls out improved world knowledge, better text rendering/localization, new extreme aspect ratios (1:4, 4:1, 1:8, 8:1), and configurable thinking levels for Nano Banana. - Colab quickstart describes practical strengths: charac - Network accessline 41
- Docs confirm all generated images include [SynthID watermarking](https://ai.google.dev/gemini-api/docs/image-generation). - Access to secretsline 51
[Credential-related source omitted] - Network accessline 63
- [Gemini API libraries](https://ai.google.dev/gemini-api/docs/libraries) - Network accessline 64
- [API key setup](https://ai.google.dev/gemini-api/docs/api-key) - Network accessline 65
- [Pricing](https://ai.google.dev/gemini-api/docs/pricing) - Network accessline 331
- [Build with Nano Banana (Google blog)](https://blog.google/innovation-and-ai/technology/developers-tools/build-with-nano-banana-2/) - Network accessline 332
- [Get Started Nano Banana notebook (Colab)](https://colab.research.google.com/github/google-gemini/cookbook/blob/main/quickstarts/Get_Started_Nano_Banana.ipynb#nano-banana-pro) - Network accessline 333
- [Image generation docs (Gemini API)](https://ai.google.dev/gemini-api/docs/image-generation) - Network accessline 337
- [Gemini 3.1 Flash Image model page](https://ai.google.dev/gemini-api/docs/models/gemini-3.1-flash-image-preview) - Network accessline 338
- [Gemini 3 Pro Image model page](https://ai.google.dev/gemini-api/docs/models/gemini-3-pro-image-preview) - Network accessline 339
- [Gemini 2.5 Flash Image model page](https://ai.google.dev/gemini-api/docs/models/gemini-2.5-flash-image) - Network accessline 340
- [Google Search tool](https://ai.google.dev/gemini-api/docs/google-search) - Network accessline 341
- [Batch API](https://ai.google.dev/gemini-api/docs/batch-api) - Network accessline 342
- [Batch API image generation section](https://ai.google.dev/gemini-api/docs/batch-api#image-generation) - Network accessline 343
- [Rate limits](https://ai.google.dev/gemini-api/docs/rate-limits) - Network accessline 344
- [Thinking guide](https://ai.google.dev/gemini-api/docs/thinking) - Network accessline 345
- [Thought signatures](https://ai.google.dev/gemini-api/docs/thought-signatures) - Network accessline 346
- [Image understanding input guidance](https://ai.google.dev/gemini-api/docs/image-understanding) - Network accessline 347
- [Pricing](https://ai.google.dev/gemini-api/docs/pricing) - Network accessline 348
- [Imagen docs](https://ai.google.dev/gemini-api/docs/imagen) - Network accessline 349
- [Video (Veo) docs](https://ai.google.dev/gemini-api/docs/video) - Network accessline 350
- [Gemini models overview](https://ai.google.dev/gemini-api/docs/models) - Network accessline 354
- [Grounding with Google Search](https://ai.google.dev/gemini-api/docs/image-generation#use-with-grounding) - Network accessline 355
- [Grounding with Google Image Search](https://ai.google.dev/gemini-api/docs/image-generation#image-search) - Network accessline 356
- [Aspect ratios and image size](https://ai.google.dev/gemini-api/docs/image-generation#aspect_ratios_and_image_size) - Network accessline 357
- [Thinking process](https://ai.google.dev/gemini-api/docs/image-generation#thinking-process)
skills/gemini-nanobanana/references/sources.md
- Network accessline 5
1. [Build with Nano Banana (Google blog)](https://blog.google/innovation-and-ai/technology/developers-tools/build-with-nano-banana-2/) - Network accessline 6
2. [Get Started Nano Banana (Colab notebook)](https://colab.research.google.com/github/google-gemini/cookbook/blob/main/quickstarts/Get_Started_Nano_Banana.ipynb#nano-banana-pro) - Network accessline 7
3. [Gemini API image-generation docs](https://ai.google.dev/gemini-api/docs/image-generation) - Network accessline 54
- Main implementation-oriented reference: [`image-generation-api.md`](.\image-generation-api.md) - Canonical model docs: - [3.1 Flash Image](https://ai.google.dev/gemini-api/docs/models/gemini-3.1-flash-image-preview) - Network accessline 55
- Canonical model docs: - [3.1 Flash Image](https://ai.google.dev/gemini-api/docs/models/gemini-3.1-flash-image-preview) - [3 Pro Image](https://ai.google.dev/gemini-api/docs/models/gemini-3-pro-image-preview) - Network accessline 56
- [3.1 Flash Image](https://ai.google.dev/gemini-api/docs/models/gemini-3.1-flash-image-preview) - Network accessline 57
- [3 Pro Image](https://ai.google.dev/gemini-api/docs/models/gemini-3-pro-image-preview) - Network accessline 58
- [2.5 Flash Image](https://ai.google.dev/gemini-api/docs/models/gemini-2.5-flash-image)
skills/gemini-nanobanana/scripts/gemini-nanobanana-cli.js
- Executable scriptline 1
#!/usr/bin/env node - Access to secretsline 45
[Credential-related source omitted] - Access to secretsline 72
[Credential-related source omitted] - Access to secretsline 331
[Credential-related source omitted] - Network accessline 344
const payload = buildPayload(options); const url = `https://generativelanguage.googleapis.com/v1beta/models/${encodeURIComponent(options.model)}:generateContent`; - Network accessline 345
const url = `https://generativelanguage.googleapis.com/v1beta/models/${encodeURIComponent(options.model)}:generateContent`; - Network accessline 351
const response = await fetch(url, {
skills/gemini-summary/README.md
- Access to secretsline 27
[Credential-related source omitted] - Network accessline 32
幫我摘要這篇文章 https://example.com/ai-agents-intro - Network accessline 33
摘要這份 PDF 的重點 ./reports/quarterly.pdf 幫我看看這個 YouTube 影片在講什麼 https://youtu.be/abc123 把這段會議錄音整理成摘要 ./recordings/meeting.mp3 - Network accessline 34
幫我看看這個 YouTube 影片在講什麼 https://youtu.be/abc123 - Network accessline 47
📌 來源 https://example.com/ai-agents-intro - Network accessline 48
https://example.com/ai-agents-intro
skills/gemini-summary/SKILL.md
- Access to secretsline 12
[Credential-related source omitted] - Network accessline 18
| 類型 | 輸入格式 | 使用模型 | |------|----------|----------| | 網頁 | `https://example.com/article` | gemini-3-pro-preview | - Network accessline 19
|------|----------|----------| | 網頁 | `https://example.com/article` | gemini-3-pro-preview | | PDF | 本地 `./report.pdf` 或遠端 URL | gemini-3-pro-preview | - Network accessline 20
| 網頁 | `https://example.com/article` | gemini-3-pro-preview | - Network accessline 46
# 網頁摘要 node .agents/skills/gemini-summary/scripts/summarize.js "https://example.com/posts/agentic-workflows" - Network accessline 47
node .agents/skills/gemini-summary/scripts/summarize.js "https://example.com/posts/agentic-workflows" - Network accessline 52
# PDF 摘要(遠端 URL) node .agents/skills/gemini-summary/scripts/summarize.js "https://example.com/report.pdf" - Network accessline 53
node .agents/skills/gemini-summary/scripts/summarize.js "https://example.com/report.pdf" - Network accessline 55
# 影片摘要(YouTube) node .agents/skills/gemini-summary/scripts/summarize.js "https://youtu.be/abc123" - Network accessline 56
node .agents/skills/gemini-summary/scripts/summarize.js "https://youtu.be/abc123" - Network accessline 64
# 音訊摘要(遠端 URL) node .agents/skills/gemini-summary/scripts/summarize.js "https://example.com/podcast.mp3" - Network accessline 65
node .agents/skills/gemini-summary/scripts/summarize.js "https://example.com/podcast.mp3" - Network accessline 73
node .agents/skills/gemini-summary/scripts/summarize.js --type pdf "https://example.com/download?file=report" - Network accessline 74
node .agents/skills/gemini-summary/scripts/summarize.js --type audio "https://example.com/download?file=recording" - Network accessline 82
SUMMARY_DRY_RUN=1 node .agents/skills/gemini-summary/scripts/summarize.js "https://youtu.be/abc123" - Access to secretsline 118
[Credential-related source omitted] - Access to secretsline 155
[Credential-related source omitted]
skills/gemini-summary/githubclaw.json
- Network accessline 6
"tags": ["gemini", "summary", "pdf", "video", "content-analysis"], "version": "1.0.0", "support_url": "https://github.com/duotify/GitHubClawToolkit/issues", - Network accessline 7
"version": "1.0.0", "support_url": "https://github.com/duotify/GitHubClawToolkit/issues", "homepage": "https://learn.duotify.com/courses/githubclaw", - Network accessline 8
"support_url": "https://github.com/duotify/GitHubClawToolkit/issues", - Network accessline 9
"homepage": "https://learn.duotify.com/courses/githubclaw", - Access to secretsline 10
[Credential-related source omitted]
skills/gemini-summary/package.json
- Executable scriptline 1
Executable file
skills/gemini-summary/scripts/summarize.js
- Executable scriptline 1
#!/usr/bin/env node - Possible obfuscationline 2
import{createRequire as dL}from"node:module";var CL=Object.create;var{getPrototypeOf:fL,defineProperty:f1,getOwnPropertyNames:gL}=Object;var hL=Object.prototype.hasOwnProperty;function bL(Z){return this[Z]}var uL,mL,r8=(Z,$,Q)=>{var Y=Z!=nu - Possible obfuscationline 3
[Credential-related source omitted] - Access to secretsline 3
[Credential-related source omitted] - Possible obfuscationline 4
`).join( `+K),Z.push(J+"m+"+KY.exports.humanize(this.diff)+"\x1B[0m")}else Z[0]=TN()+$+" "+Z[0]}function TN(){if(oV.inspectOpts.hideDate)return"";return new Date().toISOString()+" "}function EN(...Z){return process.stderr.write(JY.formatWit - Possible obfuscationline 7
`).map(($)=>$.trim()).join(" ")};nV.O=function(Z){return this.inspectOpts.colors=this.useColors,JY.inspect(Z,this.inspectOpts)}});var l1=r((hs,d1)=>{if(typeof process>"u"||process.type==="renderer"||!1||process.__nwjs)d1.exports=aV();else d - Possible obfuscationline 8
`).some((Q)=>Q.indexOf("(https.js:")!==-1||Q.indexOf("node:https:")!==-1)}incrementSockets(Z){if(this.maxSockets===1/0&&this.maxTotalSockets===1/0)return null;if(!this.sockets[Z])this.sockets[Z]=[];let $=new nN.Socket({writable:!1});return - Possible obfuscationline 11
`),I=w.shift();if(!I)return Z.destroy(),Q(Error("No header received from proxy CONNECT response"));let A=I.split(" "),_=+A[1],D=A.slice(2).join(" "),O={};for(let j of w){if(!j)continue;let v=j.indexOf(":");if(v===-1)return Z.destroy(),Q(Err - Possible obfuscationline 14
`);let{connect:G,buffered:F}=await V;if(Z.emit("proxyConnect",G),this.emit("proxyConnect",G,Z),G.statusCode===200){if(Z.once("socket",Wj),$.secureEndpoint)return A5("Upgrading socket connection to TLS"),VG.connect({...qG(GG($),"host","path" - Network accessline 22
`,K,`\r `)),Y.push(`--${Q}--`),new $(Y,{type:"multipart/form-data; boundary="+Q})}var _5,Uj,Hj,_G,Bj,MG=(Z,$,Q)=>(Z+="",/^(Blob|File)$/.test($&&$[_5])?[(Q=Q!==void 0?Q+"":$[_5]=="File"?$.name:"blob",Z),$.name!==Q||$[_5]=="blob"?new _Z([$],Q - Network accessline 23
`)),Y.push(`--${Q}--`),new $(Y,{type:"multipart/form-data; boundary="+Q})}var _5,Uj,Hj,_G,Bj,MG=(Z,$,Q)=>(Z+="",/^(Blob|File)$/.test($&&$[_5])?[(Q=Q!==void 0?Q+"":$[_5]=="File"?$.name:"blob",Z),$.name!==Q||$[_5]=="blob"?new _Z([$],Q,$):$]:[ - Network accessline 24
`)).replace(/\n/g,"%0A").replace(/\r/g,"%0D").replace(/"/g,"%22"),G$=(Z,$,Q)=>{if($.length<Q)throw TypeError(`Failed to execute '${Z}' on 'FormData': ${Q} arguments required, but only ${$.length} present.`)},MZ;var VY=g8(()=>{D5();r1();/*! - Possible obfuscationline 24
`)).replace(/\n/g,"%0A").replace(/\r/g,"%0D").replace(/"/g,"%22"),G$=(Z,$,Q)=>{if($.length<Q)throw TypeError(`Failed to execute '${Z}' on 'FormData': ${Q} arguments required, but only ${$.length} present.`)},MZ;var VY=g8(()=>{D5();r1();/*! - Possible obfuscationline 25
[Credential-related source omitted] - Network accessline 26
\r `),Y=!1,J=!1,K;Z.on("response",(X)=>{let{headers:V}=X;Y=V["transfer-encoding"]==="chunked"&&!V["content-length"]}),Z.on("socket",(X)=>{let V=()=>{if(Y&&!J){let F=Error("Premature close");F.code="ERR_STREAM_PREMATURE_CLOSE",$(F)}},G=(F)=> - Network accessline 27
`),Y=!1,J=!1,K;Z.on("response",(X)=>{let{headers:V}=X;Y=V["transfer-encoding"]==="chunked"&&!V["content-length"]}),Z.on("socket",(X)=>{let V=()=>{if(Y&&!J){let F=Error("Premature close");F.code="ERR_STREAM_PREMATURE_CLOSE",$(F)}},G=(F)=>{if - Possible obfuscationline 27
`),Y=!1,J=!1,K;Z.on("response",(X)=>{let{headers:V}=X;Y=V["transfer-encoding"]==="chunked"&&!V["content-length"]}),Z.on("socket",(X)=>{let V=()=>{if(Y&&!J){let F=Error("Premature close");F.code="ERR_STREAM_PREMATURE_CLOSE",$(F)}},G=(F)=>{if - Possible obfuscationline 31
`}yield Q}static#K;static#X;static async#z(){return this.#K||=(await Promise.resolve().then(() => r8(HG()))).HttpsProxyAgent,this.#K}static async#W(){let Z=typeof window<"u"&&!!window;return this.#X||=Z?window.fetch:(await Promise.resolve() - Possible obfuscationline 36
`+Y)+ `+A+"}":"{"+_.join(",")+"}",Y=A,w}}if(typeof Bq.stringify!=="function")Bq.stringify=function(F,U,H){var P;if(Y="",J="",typeof H==="number")for(P=0;P<H;P+=1)J+=" ";else if(typeof H==="string")J=H;if(X=U,U&&typeof U!=="function"&&(typeo - Possible obfuscationline 37
`+A+"}":"{"+_.join(",")+"}",Y=A,w}}if(typeof Bq.stringify!=="function")Bq.stringify=function(F,U,H){var P;if(Y="",J="",typeof H==="number")for(P=0;P<H;P+=1)J+=" ";else if(typeof H==="string")J=H;if(X=U,U&&typeof U!=="function"&&(typeof U!== - Possible obfuscationline 38
[Credential-related source omitted] - Possible obfuscationline 40
[Credential-related source omitted] - Network accessline 47
${K} ${w} `+await Z.crypto.sha256DigestHex(P),A=await uE(Z.crypto,Z.securityCredentials.secretAccessKey,X,Z.region,Y),_=await h5(Z.crypto,A,I),D=`${NH} Credential=${Z.securityCredentials.accessKeyId}/${w}, SignedHeaders=${U}, Signature=${(0 - Network accessline 48
${w} `+await Z.crypto.sha256DigestHex(P),A=await uE(Z.crypto,Z.securityCredentials.secretAccessKey,X,Z.region,Y),_=await h5(Z.crypto,A,I),D=`${NH} Credential=${Z.securityCredentials.accessKeyId}/${w}, SignedHeaders=${U}, Signature=${(0,jH.f - Network accessline 49
[Credential-related source omitted] - Possible obfuscationline 49
[Credential-related source omitted] - Access to secretsline 49
[Credential-related source omitted] - Network accessline 50
To learn more about authentication and Google APIs, visit: https://cloud.google.com/docs/authentication/getting-started`,NO_CREDENTIALS_FOUND:`Unable to find credentials in current environment. To learn more about authentication and Googl - Network accessline 51
https://cloud.google.com/docs/authentication/getting-started`,NO_CREDENTIALS_FOUND:`Unable to find credentials in current environment. - Network accessline 52
To learn more about authentication and Google APIs, visit: https://cloud.google.com/docs/authentication/getting-started`,NO_ADC_FOUND:"Could not load the default credentials. Browse to https://cloud.google.com/docs/authentication/getting-s - Network accessline 53
https://cloud.google.com/docs/authentication/getting-started`,NO_ADC_FOUND:"Could not load the default credentials. Browse to https://cloud.google.com/docs/authentication/getting-started for more information.",NO_UNIVERSE_DOMAIN_FOUND:`Unab - Network accessline 54
To learn more about Universe Domain retrieval, visit: https://cloud.google.com/compute/docs/metadata/predefined-metadata-keys`};class GB{checkIsGCE=void 0;useJWTAccessWithScope;defaultServicePath;get isGCE(){return this.checkIsGCE}_findPro - Network accessline 55
[Credential-related source omitted] - Possible obfuscationline 55
[Credential-related source omitted] - Possible obfuscationline 61
`+Q)}function I$(Z,$,Q,Y,J,K){if(Z.listenerCount("wsClientError")){let X=Error(J);Error.captureStackTrace(X,I$),Z.emit("wsClientError",X,Q,$)}else r5(Q,Y,J,K)}});var BD=r((bn,kX)=>{function HD(Z,$){if($&&$.documentElement)Z=$,$=arguments[2] - Possible obfuscationline 62
`)}}}else this.log=function(){}}HD.prototype={FLAG_STRIP_UNLIKELYS:1,FLAG_WEIGHT_CLASSES:2,FLAG_CLEAN_CONDITIONALLY:4,ELEMENT_NODE:1,TEXT_NODE:3,DEFAULT_MAX_ELEMS_TO_PARSE:0,DEFAULT_N_TOP_CANDIDATES:5,DEFAULT_TAGS_TO_SCORE:"section,h2,h3,h4 - Possible obfuscationline 63
`:case"\f":if(X[Q])switch(Z.charAt($-1)){case" ":case"\t":case"\r":case `:case"\f":break;default:K+=" ";break}break;case'"':if(J=$+1,Y=Z.indexOf('"',J)+1,!Y)throw'" is missing';K+=Z.slice($,Y),$=Y-1;break;case"'":if(J=$+1,Y=Z.indexOf("'",J) - Possible obfuscationline 64
`:case"\f":break;default:K+=" ";break}break;case'"':if(J=$+1,Y=Z.indexOf('"',J)+1,!Y)throw'" is missing';K+=Z.slice($,Y),$=Y-1;break;case"'":if(J=$+1,Y=Z.indexOf("'",J)+1,!Y)throw"' is missing";K+=Z.slice($,Y),$=Y-1;break;case"/":if(Z.charA - Possible obfuscationline 65
`;return Z};il.CSSStyleSheet=c4.CSSStyleSheet;c4.parse=SJ().parse});var EJ=r((rl)=>{var TJ={};TJ.MediaList=function(){this.length=0};TJ.MediaList.prototype={constructor:TJ.MediaList,get mediaText(){return Array.prototype.join.call(this,", " - Possible obfuscationline 66
`:case"\f":if(Q==="after-import")Q="url";else Y+=K;break;case"@":if(!Q&&Z.indexOf("@import",$)===$)Q="after-import",$+=6,Y="";break;case"u":if(Q==="url"&&Z.indexOf("url(",$)===$){if(J=Z.indexOf(")",$+1),J===-1)throw $+': ")" not found';$+=4 - Possible obfuscationline 67
`+Z.join( `)+ }`}});Fi.CSSKeyframesRule=UZ.CSSKeyframesRule});var H2=r((Hi)=>{var fJ={};fJ.CSSValue=function(){};fJ.CSSValue.prototype={constructor:fJ.CSSValue,set cssText(Z){var $=this._getConstructorName();throw Error('DOMException: prope - Possible obfuscationline 69
[Credential-related source omitted] - Possible obfuscationline 71
`,$+1);if(G<J)J=K;return J};Pi.CSSValueExpression=U6.CSSValueExpression});var P2=r((Ri)=>{var gJ={};gJ.MatcherList=function(){this.length=0};gJ.MatcherList.prototype={constructor:gJ.MatcherList,get matcherText(){return Array.prototype.join. - Possible obfuscationline 73
`:case"\f":if(V[Y])K+=a;break;case'"':J=Q+1;do if(J=$.indexOf('"',J)+1,!J)C('Unmatched "');while($[J-2]==="\\");switch(K+=$.slice(Q,J),Q=J-1,Y){case"before-value":Y="value";break;case"importRule-begin":Y="importRule";break}break;case"'":J=Q - Network accessline 75
`,"\r\r",`\r \r `];while(!0){let{done:G,value:F}=yield z8(Y.read());if(G){if(K.trim().length>0)throw Error("Incomplete JSON segment at the end");break}let U=J.decode(F,{stream:!0});try{let w=JSON.parse(U);if("error"in w){let I=JSON.parse(JS - Network accessline 76
\r `];while(!0){let{done:G,value:F}=yield z8(Y.read());if(G){if(K.trim().length>0)throw Error("Incomplete JSON segment at the end");break}let U=J.decode(F,{stream:!0});try{let w=JSON.parse(U);if("error"in w){let I=JSON.parse(JSON.stringify( - Network accessline 77
[Credential-related source omitted] - Possible obfuscationline 77
[Credential-related source omitted] - Possible obfuscationline 78
`:". ";let J=Y;if(Y.length>1e4){let K=Y.substring(0,1e4),X=Y.length-1e4;J=`${K}...and ${X} more chars`}Z+=`Body: ${J}`,Z=Z.trim();super(Z,$);this.name="GoogleGenAiDefaultError"}}function AR(Z){try{return JSON.parse(Z)}catch($){return Z}}fun - Possible obfuscationline 79
[Credential-related source omitted] - Access to secretsline 79
[Credential-related source omitted] - Possible obfuscationline 80
`:p7(Z.children);if(d9(Z))return p7(Z.children);if(v6(Z))return Z.data;return""}function VQ(Z){if(Array.isArray(Z))return Z.map(VQ).join("");if(i8(Z)&&!WQ(Z))return VQ(Z.children);if(v6(Z))return Z.data;return""}function Jz(Z){if(Array.isAr - Possible obfuscationline 81
`:GJ(Z.children);if(XJ(Z))return GJ(Z.children);if(tZ(Z))return Z.data;return""}function IQ(Z){if(Array.isArray(Z))return Z.map(IQ).join("");if(z4(Z)&&!jz(Z))return IQ(Z.children);if(tZ(Z))return Z.data;return""}function Ez(Z){if(Array.isAr - Possible obfuscationline 85
[Credential-related source omitted] - Possible obfuscationline 86
[Credential-related source omitted] - Network accessline 92
[內容因長度限制已截斷]`,truncated:!0}}async function PW(Z,$={}){let Q=new AbortController,Y=setTimeout(()=>Q.abort(),aM);try{return await fetch(Z,{...$,signal:Q.signal})}catch(J){if(J?.name==="AbortError")throw Error(`抓取逾時(${aM/1000} 秒):${Z}`);throw - Possible obfuscationline 92
[內容因長度限制已截斷]`,truncated:!0}}async function PW(Z,$={}){let Q=new AbortController,Y=setTimeout(()=>Q.abort(),aM);try{return await fetch(Z,{...$,signal:Q.signal})}catch(J){if(J?.name==="AbortError")throw Error(`抓取逾時(${aM/1000} 秒):${Z}`);throw - Network accessline 93
`)}function Xs(){let Z=process.argv.slice(2),$=null,Q=null;for(let Y=0;Y<Z.length;Y++)if(Z[Y]==="--type"&&Y+1<Z.length){if($=Z[++Y],!["url","pdf","video","audio"].includes($))throw Error(`不支援的類型:${$}(可用:url, pdf, video, audio)`)}else if(!Q) - Possible obfuscationline 93
`)}function Xs(){let Z=process.argv.slice(2),$=null,Q=null;for(let Y=0;Y<Z.length;Y++)if(Z[Y]==="--type"&&Y+1<Z.length){if($=Z[++Y],!["url","pdf","video","audio"].includes($))throw Error(`不支援的類型:${$}(可用:url, pdf, video, audio)`)}else if(!Q) - Possible obfuscationline 187
(若文件包含後續計畫、建議採取的步驟或管理決策,請在此整理出來;若無則寫「目前無明確行動建議」)`}async function HW(Z){if(!Z)throw Error("請提供 PDF 檔案路徑或 URL。");if(!Z.toLowerCase().endsWith(".pdf"))try{if(!new URL(Z).pathname.toLowerCase().endsWith(".pdf"))console.error(`警告:輸入不像 PDF 檔案,仍嘗試 - Possible obfuscationline 255
[Credential-related source omitted]
skills/gemini-summary/src/summarize.js
- Executable scriptline 1
#!/usr/bin/env node - Network accessline 80
console.error(""); console.error("範例:"); console.error(' node scripts/summarize.js "https://example.com/post/123"'); - Network accessline 81
console.error("範例:"); console.error(' node scripts/summarize.js "https://example.com/post/123"'); console.error(' node scripts/summarize.js "./reports/quarterly.pdf"'); - Network accessline 82
console.error(' node scripts/summarize.js "https://example.com/post/123"'); - Network accessline 83
console.error(' node scripts/summarize.js "./reports/quarterly.pdf"'); console.error(' node scripts/summarize.js "https://youtu.be/abc123"'); console.error(' node scripts/summarize.js "./recording.mp3"'); - Network accessline 84
console.error(' node scripts/summarize.js "https://youtu.be/abc123"'); - Access to secretsline 89
[Credential-related source omitted] - Access to secretsline 92
[Credential-related source omitted] - Network accessline 121
const timer = setTimeout(() => controller.abort(), FETCH_TIMEOUT_MS); try { return await fetch(url, { ...options, signal: controller.signal }); - Network accessline 122
try { return await fetch(url, { ...options, signal: controller.signal }); } catch (error) { - Network accessline 123
return await fetch(url, { ...options, signal: controller.signal }); - Network accessline 235
headers: { "User-Agent": "GitHubClawDev/summary (+https://github.com/rewq0494/GitHubClawDev)", - Network accessline 236
"User-Agent": "GitHubClawDev/summary (+https://github.com/rewq0494/GitHubClawDev)", Accept: "text/html,application/xhtml+xml", - Network accessline 237
"GitHubClawDev/summary (+https://github.com/rewq0494/GitHubClawDev)",
skills/google-stitch/README.md
- Access to secretsline 27
[Credential-related source omitted]
skills/google-stitch/SKILL.md
skills/google-stitch/githubclaw.json
- Network accessline 6
"tags": ["gemini", "ui-design", "html", "mockup", "prototyping"], "version": "1.0.0", "support_url": "https://github.com/duotify/GitHubClawToolkit/issues", - Network accessline 7
"version": "1.0.0", "support_url": "https://github.com/duotify/GitHubClawToolkit/issues", "homepage": "https://learn.duotify.com/courses/githubclaw", - Network accessline 8
"support_url": "https://github.com/duotify/GitHubClawToolkit/issues", - Network accessline 9
"homepage": "https://learn.duotify.com/courses/githubclaw", - Access to secretsline 10
[Credential-related source omitted]
skills/google-stitch/references/workflow.md
skills/google-stitch/scripts/generate.js
skills/google-stitch/scripts/google-stitch.js
- Executable scriptline 1
[Credential-related source omitted] - Access to secretsline 1
[Credential-related source omitted] - Possible obfuscationline 818
h.inlineData && typeof h.inlineData.data == "string" && (d += atob(h.inlineData.data)); - Possible obfuscationline 1044
a.inlineData && typeof a.inlineData.data == "string" && (r += atob(a.inlineData.data)); - Network accessline 2980
* @remarks * Context caching is only supported for specific models. See [Gemini * Developer API reference](https://ai.google.dev/gemini-api/docs/caching?lang=node/context-cac) - Network accessline 2981
* Context caching is only supported for specific models. See [Gemini * Developer API reference](https://ai.google.dev/gemini-api/docs/caching?lang=node/context-cac) * and [Vertex AI reference](https://cloud.google.com/vertex-ai/genera - Network accessline 2982
* Developer API reference](https://ai.google.dev/gemini-api/docs/caching?lang=node/context-cac) - Network accessline 2983
* and [Vertex AI reference](https://cloud.google.com/vertex-ai/generative-ai/docs/context-cache/context-cache-overview#supported_models) - Network accessline 6530
throw new Error("Authentication is not set up. Please provide either a project and location, or an API key, or a custom base URL."); const u = e.project && e.location || !!e.apiKey; this.customBaseUrl && !u ? (l.baseUrl = this.c - Network accessline 6531
const u = e.project && e.location || !!e.apiKey; this.customBaseUrl && !u ? (l.baseUrl = this.customBaseUrl, this.clientOptions.project = void 0, this.clientOptions.location = void 0) : this.clientOptions.apiKey || this.clientOptions. - Network accessline 6532
this.customBaseUrl && !u ? (l.baseUrl = this.customBaseUrl, this.clientOptions.project = void 0, this.clientOptions.location = void 0) : this.clientOptions.apiKey || this.clientOptions.location === "global" ? l.baseUrl = "https://aiplatform - Network accessline 6533
} else this.clientOptions.apiKey || console.warn("API key should be set when using the Gemini API."), l.apiVersion = (r = this.clientOptions.apiVersion) !== null && r !== void 0 ? r : gu, l.baseUrl = "https://generativelanguage.google - Network accessline 6534
this.clientOptions.apiKey || console.warn("API key should be set when using the Gemini API."), l.apiVersion = (r = this.clientOptions.apiVersion) !== null && r !== void 0 ? r : gu, l.baseUrl = "https://generativelanguage.googleapis.com/"; - Network accessline 6722
var o; if (!this.clientOptions.httpOptions || !this.clientOptions.httpOptions.retryOptions) return fetch(e, t); - Network accessline 6723
if (!this.clientOptions.httpOptions || !this.clientOptions.httpOptions.retryOptions) return fetch(e, t); const r = this.clientOptions.httpOptions.retryOptions; - Network accessline 6724
return fetch(e, t); - Network accessline 6725
const r = this.clientOptions.httpOptions.retryOptions; return ri(async () => { const a = await fetch(e, t); - Network accessline 6726
return ri(async () => { const a = await fetch(e, t); if (a.ok) - Network accessline 6727
const a = await fetch(e, t); - Access to secretsline 7245
[Credential-related source omitted] - Network accessline 9970
var o, r, l, a; if (!n.body) throw e.abort(), typeof globalThis.navigator < "u" && globalThis.navigator.product === "ReactNative" ? new B("The default react-native fetch implementation does not support streaming. Please use expo/f - Network accessline 9971
if (!n.body) throw e.abort(), typeof globalThis.navigator < "u" && globalThis.navigator.product === "ReactNative" ? new B("The default react-native fetch implementation does not support streaming. Please use expo/fetch: https://docs.e - Network accessline 9972
throw e.abort(), typeof globalThis.navigator < "u" && globalThis.navigator.product === "ReactNative" ? new B("The default react-native fetch implementation does not support streaming. Please use expo/fetch: https://docs.expo.dev/versions/la
skills/skill-creator/LICENSE.txt
skills/skill-creator/assets/eval_review.html
- Network accessline 5
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Eval Set Review - __SKILL_NAME_PLACEHOLDER__</title> <link rel="preconnect" href="https://fonts.googleapis.com"> - Network accessline 6
<title>Eval Set Review - __SKILL_NAME_PLACEHOLDER__</title> <link rel="preconnect" href="https://fonts.googleapis.com"> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> - Network accessline 7
<link rel="preconnect" href="https://fonts.googleapis.com"> - Network accessline 8
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> - Network accessline 9
<link href="https://fonts.googleapis.com/css2?family=Poppins:wght@500;600&family=Lora:wght@400;500&display=swap" rel="stylesheet">
skills/skill-creator/eval-viewer/generate_review.py
skills/skill-creator/eval-viewer/viewer.html
- Network accessline 5
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Eval Review</title> <link rel="preconnect" href="https://fonts.googleapis.com"> - Network accessline 6
<title>Eval Review</title> <link rel="preconnect" href="https://fonts.googleapis.com"> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> - Network accessline 7
<link rel="preconnect" href="https://fonts.googleapis.com"> - Network accessline 8
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> - Network accessline 9
<link href="https://fonts.googleapis.com/css2?family=Poppins:wght@500;600&family=Lora:wght@400;500&display=swap" rel="stylesheet"> - Network accessline 10
<script src="https://cdn.sheetjs.com/xlsx-0.20.3/package/dist/xlsx.full.min.js" integrity="sha384-EnyY0/GSHQGSxSgMwaIPzSESbqoOLSexfnSMN2AP+39Ckmn92stwABZynq1JyzdT" crossorigin="anonymous"></script> - Network accessline 664
if (!hasPrevious) { try { const resp = await fetch("/api/feedback"); - Network accessline 665
try { const resp = await fetch("/api/feedback"); const data = await resp.json(); - Network accessline 666
const resp = await fetch("/api/feedback"); - Network accessline 1012
fetch("/api/feedback", { - Network accessline 1042
} const payload = JSON.stringify({ reviews, status: "complete" }, null, 2); fetch("/api/feedback", { - Network accessline 1043
const payload = JSON.stringify({ reviews, status: "complete" }, null, 2); fetch("/api/feedback", { method: "POST", - Network accessline 1044
fetch("/api/feedback", {
skills/skill-creator/githubclaw.json
- Network accessline 6
"tags": ["skill-creation", "evaluation", "benchmark", "testing", "optimization"], "version": "1.0.0", "support_url": "https://github.com/duotify/GitHubClawToolkit/issues", - Network accessline 7
"version": "1.0.0", "support_url": "https://github.com/duotify/GitHubClawToolkit/issues", "homepage": "https://learn.duotify.com/courses/githubclaw", - Network accessline 8
"support_url": "https://github.com/duotify/GitHubClawToolkit/issues", - Network accessline 9
"homepage": "https://learn.duotify.com/courses/githubclaw",
skills/skill-creator/scripts/__init__.py
- Executable scriptline 1
Executable file
skills/skill-creator/scripts/aggregate_benchmark.py
- Executable scriptline 1
#!/usr/bin/env python3
skills/skill-creator/scripts/generate_report.py
- Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 37
<meta charset="utf-8"> """ + refresh_tag + """ <title>""" + title_prefix + """Skill Description Optimization</title> <link rel="preconnect" href="https://fonts.googleapis.com"> - Network accessline 38
""" + refresh_tag + """ <title>""" + title_prefix + """Skill Description Optimization</title> <link rel="preconnect" href="https://fonts.googleapis.com"> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> - Network accessline 39
<link rel="preconnect" href="https://fonts.googleapis.com"> - Network accessline 40
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> - Network accessline 41
<link href="https://fonts.googleapis.com/css2?family=Poppins:wght@500;600&family=Lora:wght@400;500&display=swap" rel="stylesheet">
skills/skill-creator/scripts/improve_description.py
skills/skill-creator/scripts/package_skill.py
- Executable scriptline 1
#!/usr/bin/env python3
skills/skill-creator/scripts/quick_validate.py
- Executable scriptline 1
#!/usr/bin/env python3
skills/skill-creator/scripts/run_eval.py
skills/skill-creator/scripts/run_loop.py
- Executable scriptline 1
#!/usr/bin/env python3
skills/skill-creator/scripts/utils.py
- Executable scriptline 1
Executable file
skills/telegram-notify/README.md
- Network accessline 28
> 💡 **如何取得 Bot Token?** > 1. 在 Telegram 搜尋 [@BotFather](https://t.me/BotFather),輸入 `/newbot` 建立一個新的 Bot - Network accessline 29
> 1. 在 Telegram 搜尋 [@BotFather](https://t.me/BotFather),輸入 `/newbot` 建立一個新的 Bot - Network accessline 90
- 技術細節請參考 [SKILL.md](SKILL.md) - Telegram Bot 建立教學:[@BotFather](https://t.me/BotFather) - Network accessline 91
- Telegram Bot 建立教學:[@BotFather](https://t.me/BotFather) - Network accessline 92
- Telegram Bot API 文件:[sendMessage API](https://core.telegram.org/bots/api#sendmessage)
skills/telegram-notify/SKILL.md
- Network accessline 25
- A Telegram Bot created via [@BotFather](https://t.me/BotFather) - Network accessline 63
1. Start a chat with your bot (or add it to a group/channel) 2. Send any message to the bot 3. Call `https://api.telegram.org/bot<TOKEN>/getUpdates` to see recent messages - Network accessline 64
2. Send any message to the bot 3. Call `https://api.telegram.org/bot<TOKEN>/getUpdates` to see recent messages 4. Find `"chat":{"id":<number>}` in the response — that is your Chat ID - Network accessline 65
3. Call `https://api.telegram.org/bot<TOKEN>/getUpdates` to see recent messages - Access to secretsline 99
[Credential-related source omitted] - Network accessline 113
[Credential-related source omitted] - Access to secretsline 113
[Credential-related source omitted]
skills/telegram-notify/githubclaw.json
- Network accessline 2
"name": "Telegram Notify", "tagline": "Telegram 訊息通知,自動推播 CI/CD 狀態與任務結果", "description": "Telegram Notify 透過 Telegram Bot API 發送通知訊息,支援純文字、HTML 與 MarkdownV2 格式。可整合 GitHub Actions 工作流程,在 build 完成、部署成功或任務結束時自動推播到指定群組,僅需 shell script 與 cur - Network accessline 3
"tagline": "Telegram 訊息通知,自動推播 CI/CD 狀態與任務結果", "description": "Telegram Notify 透過 Telegram Bot API 發送通知訊息,支援純文字、HTML 與 MarkdownV2 格式。可整合 GitHub Actions 工作流程,在 build 完成、部署成功或任務結束時自動推播到指定群組,僅需 shell script 與 curl 即可運作。", "category": "inte - Network accessline 4
"description": "Telegram Notify 透過 Telegram Bot API 發送通知訊息,支援純文字、HTML 與 MarkdownV2 格式。可整合 GitHub Actions 工作流程,在 build 完成、部署成功或任務結束時自動推播到指定群組,僅需 shell script 與 curl 即可運作。", - Network accessline 6
"tags": ["telegram", "notification", "ci-cd", "messaging", "webhook"], "version": "1.1.0", "support_url": "https://github.com/duotify/GitHubClawToolkit/issues", - Network accessline 7
"version": "1.1.0", "support_url": "https://github.com/duotify/GitHubClawToolkit/issues", "homepage": "https://learn.duotify.com/courses/githubclaw", - Network accessline 8
"support_url": "https://github.com/duotify/GitHubClawToolkit/issues", - Network accessline 9
"homepage": "https://learn.duotify.com/courses/githubclaw",
skills/telegram-notify/scripts/send-telegram.sh
- Executable scriptline 1
#!/usr/bin/env bash - Access to secretsline 22
[Credential-related source omitted] - Access to secretsline 24
[Credential-related source omitted] - Network accessline 52
tg_response_file=$(mktemp) http_code=$(curl -s -o "$tg_response_file" -w "%{http_code}" \ - Network accessline 53
[Credential-related source omitted] - Access to secretsline 53
[Credential-related source omitted] - Network accessline 54
[Credential-related source omitted] - Access to secretsline 54
[Credential-related source omitted] - Dangerous shell operationline 60
rm -f "$tg_response_file" - Dangerous shell operationline 64
rm -f "$tg_response_file"
templates/codex-felo/.agents/skills/felo-search/README.md
- Access to secretsline 35
[Credential-related source omitted] - Network accessline 37
**取得方式:** 到 [felo.ai](https://felo.ai) → **Settings** → **API Keys** 申請取得。 - Network accessline 59
來源: - 中央氣象署 (https://www.cwa.gov.tw) - Network accessline 60
- 中央氣象署 (https://www.cwa.gov.tw) - Network accessline 61
- Weather.com (https://weather.com) - Network accessline 68
- 🌐 最適合查詢**即時性、時效性**的資訊 - 📡 需要網路連線才能使用 - 🔑 如果 API Key 失效,請到 [felo.ai](https://felo.ai) 重新產生 - Network accessline 70
- 🔑 如果 API Key 失效,請到 [felo.ai](https://felo.ai) 重新產生 - Network accessline 74
- 技術細節請參考 [SKILL.md](./SKILL.md) - [Felo Open Platform](https://openapi.felo.ai) - Network accessline 75
- [Felo Open Platform](https://openapi.felo.ai) - Network accessline 76
- [Felo API 文件](https://openapi.felo.ai/docs) - Network accessline 77
- [申請 API Key](https://felo.ai)
templates/codex-felo/.agents/skills/felo-search/SKILL.md
- Network accessline 38
1. Visit [felo.ai](https://felo.ai) and log in (or register) - Access to secretsline 46
[Credential-related source omitted] - Access to secretsline 50
[Credential-related source omitted] - Access to secretsline 55
[Credential-related source omitted] - Access to secretsline 60
[Credential-related source omitted] - Access to secretsline 162
[Credential-related source omitted] - Access to secretsline 173
[Credential-related source omitted] - Network accessline 180
1. Get your API key from https://felo.ai (Settings → API Keys) - Access to secretsline 184
[Credential-related source omitted] - Access to secretsline 187
[Credential-related source omitted] - Network accessline 194
**Endpoint:** `https://openapi.felo.ai/v2/chat` - Access to secretsline 196
[Credential-related source omitted] - Network accessline 226
- [Felo Open Platform Documentation](https://openapi.felo.ai) - Network accessline 227
- [Get API Key](https://felo.ai) (Settings → API Keys) - Network accessline 228
- [API Reference](https://openapi.felo.ai/docs)
templates/codex-felo/.agents/skills/felo-search/scripts/search.sh
- Executable scriptline 1
#!/bin/bash - Network accessline 5
if ! command -v curl &> /dev/null; then - Network accessline 6
echo "ERROR: curl is required but not installed" - Access to secretsline 11
[Credential-related source omitted] - Access to secretsline 12
[Credential-related source omitted] - Network accessline 14
echo "To use this skill, you need to set up your Felo API Key:" echo "" echo "1. Get your API key from https://felo.ai (Settings → API Keys)" - Network accessline 15
echo "" echo "1. Get your API key from https://felo.ai (Settings → API Keys)" echo "2. Set the environment variable:" - Network accessline 16
echo "1. Get your API key from https://felo.ai (Settings → API Keys)" - Access to secretsline 20
[Credential-related source omitted] - Access to secretsline 23
[Credential-related source omitted] - Access to secretsline 26
[Credential-related source omitted] - Network accessline 46
[Credential-related source omitted] - Access to secretsline 46
[Credential-related source omitted] - Access to secretsline 47
[Credential-related source omitted]
templates/codex-felo/.agents/skills/felo-slides/README.md
- Network accessline 24
| 設定項目 | 說明 | | --- | --- | | `FELO_API_KEY` | Felo 平台的 API 金鑰,可到 [felo.ai](https://felo.ai) 申請 | - Network accessline 26
[Credential-related source omitted] - Access to secretsline 26
[Credential-related source omitted] - Network accessline 42
✅ 簡報產生完成! 🔗 https://ppt.felo.ai/share/abc123xyz - Network accessline 43
🔗 https://ppt.felo.ai/share/abc123xyz - Access to secretsline 53
[Credential-related source omitted] - Network accessline 57
- 技術細節請參考 [SKILL.md](SKILL.md) - [Felo PPT Task API 文件](https://openapi.felo.ai/docs/api-reference/v2/ppt-tasks.html) - Network accessline 58
- [Felo PPT Task API 文件](https://openapi.felo.ai/docs/api-reference/v2/ppt-tasks.html) - Network accessline 59
- [Felo 開放平台](https://openapi.felo.ai/docs/)
templates/codex-felo/.agents/skills/felo-slides/SKILL.md
- Network accessline 33
1. Visit [felo.ai](https://felo.ai) - Access to secretsline 42
[Credential-related source omitted] - Access to secretsline 48
[Credential-related source omitted] - Access to secretsline 58
[Credential-related source omitted] - Access to secretsline 59
[Credential-related source omitted] - Network accessline 80
- Creates task via `POST https://openapi.felo.ai/v2/ppts` - Network accessline 81
- Polls via `GET https://openapi.felo.ai/v2/tasks/{task_id}/historical` - Access to secretsline 147
[Credential-related source omitted] - Network accessline 166
- [Felo PPT Task API](https://openapi.felo.ai/docs/api-reference/v2/ppt-tasks.html) - Network accessline 167
- [Felo Open Platform](https://openapi.felo.ai/docs/)
templates/codex-felo/.agents/skills/felo-slides/scripts/run_ppt_task.mjs
- Executable scriptline 1
#!/usr/bin/env node - Network accessline 3
const DEFAULT_API_BASE = 'https://openapi.felo.ai'; - Network accessline 95
const timer = setTimeout(() => controller.abort(), timeoutMs); try { const res = await fetch(url, { ...init, signal: controller.signal }); - Network accessline 96
try { const res = await fetch(url, { ...init, signal: controller.signal }); let body = {}; - Network accessline 97
const res = await fetch(url, { ...init, signal: controller.signal }); - Network accessline 120
historicalData?.live_doc_url || (historicalData?.live_doc_short_id || historicalData?.livedoc_short_id || createData?.livedoc_short_id ? `https://felo.ai/livedoc/${historicalData?.live_doc_short_id || historicalData?.livedoc_short - Network accessline 121
(historicalData?.live_doc_short_id || historicalData?.livedoc_short_id || createData?.livedoc_short_id ? `https://felo.ai/livedoc/${historicalData?.live_doc_short_id || historicalData?.livedoc_short_id || createData?.livedoc_short_id} - Network accessline 122
? `https://felo.ai/livedoc/${historicalData?.live_doc_short_id || historicalData?.livedoc_short_id || createData?.livedoc_short_id}` - Access to secretsline 178
[Credential-related source omitted] - Access to secretsline 180
[Credential-related source omitted]
templates/codex-felo/.agents/skills/felo-web-fetch/README.md
- Network accessline 1
# 🛠<U+FE0F> Felo Web Fetch(網頁內容擷取) - Network accessline 25
| 設定項目 | 說明 | | --- | --- | | `FELO_API_KEY` | Felo 平台的 API 金鑰,可到 [felo.ai](https://felo.ai) 申請 | - Network accessline 27
[Credential-related source omitted] - Access to secretsline 27
[Credential-related source omitted] - Network accessline 32
幫我把這個網頁的內容抓下來轉成 Markdown:https://example.com/article - Network accessline 33
擷取這篇文章的純文字內容:https://news.example.com/today - Network accessline 35
抓取 https://blog.example.com 的文章內容,只要 <article> 區塊的部分 - Access to secretsline 60
[Credential-related source omitted] - Network accessline 64
- 技術細節請參考 [SKILL.md](SKILL.md) - [Felo Web Extract API 文件](https://openapi.felo.ai/docs/api-reference/v2/web-extract.html) - Network accessline 65
- [Felo Web Extract API 文件](https://openapi.felo.ai/docs/api-reference/v2/web-extract.html) - Network accessline 66
- [Felo 開放平台](https://openapi.felo.ai/docs/)
templates/codex-felo/.agents/skills/felo-web-fetch/SKILL.md
- Network accessline 35
1. Visit [felo.ai](https://felo.ai) - Access to secretsline 43
[Credential-related source omitted] - Access to secretsline 48
[Credential-related source omitted] - Network accessline 58
node .agents/skills/felo-web-fetch/scripts/run_web_fetch.mjs --url "https://example.com/article" [options] - Network accessline 64
felo web-fetch -u "https://example.com" [options] - Network accessline 104
# Basic: fetch as Markdown node .agents/skills/felo-web-fetch/scripts/run_web_fetch.mjs --url "https://example.com" --output-format markdown - Network accessline 105
node .agents/skills/felo-web-fetch/scripts/run_web_fetch.mjs --url "https://example.com" --output-format markdown - Network accessline 107
# Article-style with readability node .agents/skills/felo-web-fetch/scripts/run_web_fetch.mjs --url "https://example.com/article" --with-readability true --output-format markdown - Network accessline 108
node .agents/skills/felo-web-fetch/scripts/run_web_fetch.mjs --url "https://example.com/article" --with-readability true --output-format markdown - Network accessline 110
# Only the element matching a CSS selector node .agents/skills/felo-web-fetch/scripts/run_web_fetch.mjs --url "https://example.com" --target-selector "article.main" --output-format markdown - Network accessline 111
node .agents/skills/felo-web-fetch/scripts/run_web_fetch.mjs --url "https://example.com" --target-selector "article.main" --output-format markdown - Network accessline 113
# With cookies and custom user-agent node .agents/skills/felo-web-fetch/scripts/run_web_fetch.mjs --url "https://example.com/private" --cookie "session_id=abc123" --with-readability true --json - Network accessline 114
node .agents/skills/felo-web-fetch/scripts/run_web_fetch.mjs --url "https://example.com/private" --cookie "session_id=abc123" --with-readability true --json - Network accessline 116
# Full JSON response node .agents/skills/felo-web-fetch/scripts/run_web_fetch.mjs --url "https://example.com" --output-format text --json - Network accessline 117
node .agents/skills/felo-web-fetch/scripts/run_web_fetch.mjs --url "https://example.com" --output-format text --json - Network accessline 123
[Credential-related source omitted] - Access to secretsline 123
[Credential-related source omitted] - Network accessline 124
[Credential-related source omitted] - Access to secretsline 124
[Credential-related source omitted] - Network accessline 126
-d '{"url": "https://example.com", "output_format": "markdown", "with_readability": true}' - Network accessline 131
- **Endpoint**: `POST /v2/web/extract` - **Base URL**: `https://openapi.felo.ai`. Override with `FELO_API_BASE` env if needed. - Network accessline 132
- **Base URL**: `https://openapi.felo.ai`. Override with `FELO_API_BASE` env if needed. - Access to secretsline 133
[Credential-related source omitted] - Access to secretsline 173
[Credential-related source omitted] - Network accessline 204
- [Web Extract API](https://openapi.felo.ai/docs/api-reference/v2/web-extract.html) - Network accessline 205
- [Felo Open Platform](https://openapi.felo.ai/docs/)
templates/codex-felo/.agents/skills/felo-web-fetch/scripts/run_web_fetch.mjs
- Executable scriptline 1
#!/usr/bin/env node - Network accessline 3
const DEFAULT_API_BASE = 'https://openapi.felo.ai'; - Network accessline 194
const timer = setTimeout(() => controller.abort(), timeoutMs); try { const res = await fetch(url, { ...init, signal: controller.signal }); - Network accessline 195
try { const res = await fetch(url, { ...init, signal: controller.signal }); let body = {}; - Network accessline 196
const res = await fetch(url, { ...init, signal: controller.signal }); - Access to secretsline 269
[Credential-related source omitted] - Access to secretsline 271
[Credential-related source omitted]
templates/codex-felo/.agents/skills/felo-x-search/README.md
- Network accessline 25
| 設定項目 | 說明 | | --- | --- | | `FELO_API_KEY` | Felo 平台的 API 金鑰,可到 [felo.ai](https://felo.ai) 申請 | - Network accessline 27
[Credential-related source omitted] - Access to secretsline 27
[Credential-related source omitted] - Network accessline 33
查一下 @OpenAI 這個帳號的資料和最近發了什麼文 找找看 X 上有哪些人在討論台灣的科技新創 幫我看這則推文底下的回覆:https://x.com/xxx/status/1234567890 - Network accessline 34
找找看 X 上有哪些人在討論台灣的科技新創 幫我看這則推文底下的回覆:https://x.com/xxx/status/1234567890 搜尋這週 X 上關於 AI 法規的討論 - Network accessline 35
幫我看這則推文底下的回覆:https://x.com/xxx/status/1234567890 - Access to secretsline 62
[Credential-related source omitted] - Network accessline 66
- 技術細節請參考 [SKILL.md](SKILL.md) - [Felo X Search API 文件](https://openapi.felo.ai/docs/api-reference/v2/x-search.html) - Network accessline 67
- [Felo X Search API 文件](https://openapi.felo.ai/docs/api-reference/v2/x-search.html) - Network accessline 68
- [Felo 開放平台](https://openapi.felo.ai/docs/)
templates/codex-felo/.agents/skills/felo-x-search/SKILL.md
- Network accessline 36
1. Visit [felo.ai](https://felo.ai) - Access to secretsline 45
[Credential-related source omitted] - Access to secretsline 51
[Credential-related source omitted] - Network accessline 111
# Search tweets curl -X POST "https://openapi.felo.ai/v2/x/tweet/search" \ - Network accessline 112
[Credential-related source omitted] - Access to secretsline 112
[Credential-related source omitted] - Access to secretsline 113
[Credential-related source omitted] - Network accessline 117
# Search users curl -X POST "https://openapi.felo.ai/v2/x/user/search" \ - Network accessline 118
[Credential-related source omitted] - Access to secretsline 118
[Credential-related source omitted] - Access to secretsline 119
[Credential-related source omitted] - Network accessline 123
# Get user info curl -X POST "https://openapi.felo.ai/v2/x/user/info" \ - Network accessline 124
[Credential-related source omitted] - Access to secretsline 124
[Credential-related source omitted] - Access to secretsline 125
[Credential-related source omitted] - Network accessline 129
# Get user tweets curl -X POST "https://openapi.felo.ai/v2/x/user/tweets" \ - Network accessline 130
[Credential-related source omitted] - Access to secretsline 130
[Credential-related source omitted] - Access to secretsline 131
[Credential-related source omitted] - Network accessline 135
# Get tweet replies curl -X POST "https://openapi.felo.ai/v2/x/tweet/replies" \ - Network accessline 136
[Credential-related source omitted] - Access to secretsline 136
[Credential-related source omitted] - Access to secretsline 137
[Credential-related source omitted] - Access to secretsline 176
[Credential-related source omitted] - Access to secretsline 181
[Credential-related source omitted] - Network accessline 185
- **Base URL**: `https://openapi.felo.ai`. Override with `FELO_API_BASE` env if needed. - Access to secretsline 186
[Credential-related source omitted] - Access to secretsline 197
[Credential-related source omitted] - Network accessline 204
- [Felo X Search API](https://openapi.felo.ai/docs/api-reference/v2/x-search.html) - Network accessline 205
- [Felo Open Platform](https://openapi.felo.ai/docs/)
templates/codex-felo/.agents/skills/felo-x-search/clawhub.json
- Network accessline 8
"license": "MIT", "pricing": "free", "support_url": "https://github.com/Felo-Inc/felo-skills/issues", - Network accessline 9
"pricing": "free", "support_url": "https://github.com/Felo-Inc/felo-skills/issues", "homepage": "https://github.com/Felo-Inc/felo-skills" - Network accessline 10
"support_url": "https://github.com/Felo-Inc/felo-skills/issues", - Network accessline 11
"homepage": "https://github.com/Felo-Inc/felo-skills"
templates/codex-felo/.agents/skills/felo-x-search/scripts/run_x_search.mjs
- Executable scriptline 1
#!/usr/bin/env node - Network accessline 3
const DEFAULT_API_BASE = 'https://openapi.felo.ai'; - Network accessline 40
const timer = setTimeout(() => controller.abort(), timeoutMs); try { const res = await fetch(url, { ...init, signal: controller.signal }); - Network accessline 41
try { const res = await fetch(url, { ...init, signal: controller.signal }); if (res.status >= 500 && attempt < MAX_RETRIES) { - Network accessline 42
const res = await fetch(url, { ...init, signal: controller.signal }); - Network accessline 104
const base = validUsername ? `https://x.com/${username.trim()}/status/${id.trim()}` - Network accessline 105
? `https://x.com/${username.trim()}/status/${id.trim()}` - Network accessline 106
: `https://x.com/i/web/status/${id.trim()}`; - Access to secretsline 275
[Credential-related source omitted] - Access to secretsline 277
[Credential-related source omitted]
templates/codex-gemini-api/.agents/skills/gemini-audio-transcriber/README.md
templates/codex-gemini-api/.agents/skills/gemini-audio-transcriber/SKILL.md
- Access to secretsline 12
[Credential-related source omitted] - Network accessline 30
[Credential-related source omitted] - Access to secretsline 30
[Credential-related source omitted] - Access to secretsline 36
[Credential-related source omitted] - Access to secretsline 43
[Credential-related source omitted] - Network accessline 53
AUDIO_TRANSCRIBER_DRY_RUN=1 node .agents/skills/gemini-audio-transcriber/scripts/transcribe.js "https://example.com/test.mp3" - Access to secretsline 79
[Credential-related source omitted] - Access to secretsline 98
[Credential-related source omitted]
templates/codex-gemini-api/.agents/skills/gemini-audio-transcriber/package.json
- Executable scriptline 1
Executable file
templates/codex-gemini-api/.agents/skills/gemini-audio-transcriber/scripts/transcribe.js
- Executable scriptline 1
#!/usr/bin/env node - Possible obfuscationline 2
import{createRequire as hq}from"node:module";var Lq=Object.create;var{getPrototypeOf:Cq,defineProperty:LQ,getOwnPropertyNames:Oq}=Object;var Sq=Object.prototype.hasOwnProperty;function Eq($){return this[$]}var jq,_q,m4=($,Z,Q)=>{var Y=$!=nu - Possible obfuscationline 3
[Credential-related source omitted] - Access to secretsline 3
[Credential-related source omitted] - Possible obfuscationline 4
`).join( `+X),$.push(J+"m+"+C$.exports.humanize(this.diff)+"\x1B[0m")}else $[0]=BM()+Z+" "+$[0]}function BM(){if(W7.inspectOpts.hideDate)return"";return new Date().toISOString()+" "}function TM(...$){return process.stderr.write(L$.formatWit - Possible obfuscationline 7
`).map((Z)=>Z.trim()).join(" ")};z7.O=function($){return this.inspectOpts.colors=this.useColors,L$.inspect($,this.inspectOpts)}});var hQ=p((AE,xQ)=>{if(typeof process>"u"||process.type==="renderer"||!1||process.__nwjs)xQ.exports=K7();else x - Possible obfuscationline 8
`).some((Q)=>Q.indexOf("(https.js:")!==-1||Q.indexOf("node:https:")!==-1)}incrementSockets($){if(this.maxSockets===1/0&&this.maxTotalSockets===1/0)return null;if(!this.sockets[$])this.sockets[$]=[];let Z=new bM.Socket({writable:!1});return - Possible obfuscationline 11
`),T=I.shift();if(!T)return $.destroy(),Q(Error("No header received from proxy CONNECT response"));let B=T.split(" "),R=+B[1],C=B.slice(2).join(" "),k={};for(let b of I){if(!b)continue;let u=b.indexOf(":");if(u===-1)return $.destroy(),Q(Err - Possible obfuscationline 14
`);let{connect:G,buffered:F}=await H;if($.emit("proxyConnect",G),this.emit("proxyConnect",G,$),G.statusCode===200){if($.once("socket",tM),Z.secureEndpoint)return D6("Upgrading socket connection to TLS"),T7.connect({...P7(A7(Z),"host","path" - Network accessline 22
`,X,`\r `)),Y.push(`--${Q}--`),new Z(Y,{type:"multipart/form-data; boundary="+Q})}var w6,YD,JD,h7,XD,y7=($,Z,Q)=>($+="",/^(Blob|File)$/.test(Z&&Z[w6])?[(Q=Q!==void 0?Q+"":Z[w6]=="File"?Z.name:"blob",$),Z.name!==Q||Z[w6]=="blob"?new w8([Z],Q - Network accessline 23
`)),Y.push(`--${Q}--`),new Z(Y,{type:"multipart/form-data; boundary="+Q})}var w6,YD,JD,h7,XD,y7=($,Z,Q)=>($+="",/^(Blob|File)$/.test(Z&&Z[w6])?[(Q=Q!==void 0?Q+"":Z[w6]=="File"?Z.name:"blob",$),Z.name!==Q||Z[w6]=="blob"?new w8([Z],Q,Z):Z]:[ - Network accessline 24
`)).replace(/\n/g,"%0A").replace(/\r/g,"%0D").replace(/"/g,"%22"),c8=($,Z,Q)=>{if(Z.length<Q)throw TypeError(`Failed to execute '${$}' on 'FormData': ${Q} arguments required, but only ${Z.length} present.`)},I8;var j$=k0(()=>{U6();fQ();/*! - Possible obfuscationline 24
`)).replace(/\n/g,"%0A").replace(/\r/g,"%0D").replace(/"/g,"%22"),c8=($,Z,Q)=>{if(Z.length<Q)throw TypeError(`Failed to execute '${$}' on 'FormData': ${Q} arguments required, but only ${Z.length} present.`)},I8;var j$=k0(()=>{U6();fQ();/*! - Possible obfuscationline 25
[Credential-related source omitted] - Network accessline 26
\r `),Y=!1,J=!1,X;$.on("response",(K)=>{let{headers:H}=K;Y=H["transfer-encoding"]==="chunked"&&!H["content-length"]}),$.on("socket",(K)=>{let H=()=>{if(Y&&!J){let F=Error("Premature close");F.code="ERR_STREAM_PREMATURE_CLOSE",Z(F)}},G=(F)=> - Network accessline 27
`),Y=!1,J=!1,X;$.on("response",(K)=>{let{headers:H}=K;Y=H["transfer-encoding"]==="chunked"&&!H["content-length"]}),$.on("socket",(K)=>{let H=()=>{if(Y&&!J){let F=Error("Premature close");F.code="ERR_STREAM_PREMATURE_CLOSE",Z(F)}},G=(F)=>{if - Possible obfuscationline 27
`),Y=!1,J=!1,X;$.on("response",(K)=>{let{headers:H}=K;Y=H["transfer-encoding"]==="chunked"&&!H["content-length"]}),$.on("socket",(K)=>{let H=()=>{if(Y&&!J){let F=Error("Premature close");F.code="ERR_STREAM_PREMATURE_CLOSE",Z(F)}},G=(F)=>{if - Possible obfuscationline 31
`}yield Q}static#X;static#V;static async#K(){return this.#X||=(await Promise.resolve().then(() => m4(C7()))).HttpsProxyAgent,this.#X}static async#z(){let $=typeof window<"u"&&!!window;return this.#V||=$?window.fetch:(await Promise.resolve() - Possible obfuscationline 36
`+Y)+ `+B+"}":"{"+R.join(",")+"}",Y=B,I}}if(typeof OX.stringify!=="function")OX.stringify=function(F,q,D){var w;if(Y="",J="",typeof D==="number")for(w=0;w<D;w+=1)J+=" ";else if(typeof D==="string")J=D;if(K=q,q&&typeof q!=="function"&&(typeo - Possible obfuscationline 37
`+B+"}":"{"+R.join(",")+"}",Y=B,I}}if(typeof OX.stringify!=="function")OX.stringify=function(F,q,D){var w;if(Y="",J="",typeof D==="number")for(w=0;w<D;w+=1)J+=" ";else if(typeof D==="string")J=D;if(K=q,q&&typeof q!=="function"&&(typeof q!== - Possible obfuscationline 38
[Credential-related source omitted] - Possible obfuscationline 40
[Credential-related source omitted] - Network accessline 47
${X} ${I} `+await $.crypto.sha256DigestHex(w),B=await jN($.crypto,$.securityCredentials.secretAccessKey,K,$.region,Y),R=await x6($.crypto,B,T),C=`${kz} Credential=${$.securityCredentials.accessKeyId}/${I}, SignedHeaders=${q}, Signature=${(0 - Network accessline 48
${I} `+await $.crypto.sha256DigestHex(w),B=await jN($.crypto,$.securityCredentials.secretAccessKey,K,$.region,Y),R=await x6($.crypto,B,T),C=`${kz} Credential=${$.securityCredentials.accessKeyId}/${I}, SignedHeaders=${q}, Signature=${(0,mz.f - Network accessline 49
[Credential-related source omitted] - Possible obfuscationline 49
[Credential-related source omitted] - Access to secretsline 49
[Credential-related source omitted] - Network accessline 50
To learn more about authentication and Google APIs, visit: https://cloud.google.com/docs/authentication/getting-started`,NO_CREDENTIALS_FOUND:`Unable to find credentials in current environment. To learn more about authentication and Googl - Network accessline 51
https://cloud.google.com/docs/authentication/getting-started`,NO_CREDENTIALS_FOUND:`Unable to find credentials in current environment. - Network accessline 52
To learn more about authentication and Google APIs, visit: https://cloud.google.com/docs/authentication/getting-started`,NO_ADC_FOUND:"Could not load the default credentials. Browse to https://cloud.google.com/docs/authentication/getting-s - Network accessline 53
https://cloud.google.com/docs/authentication/getting-started`,NO_ADC_FOUND:"Could not load the default credentials. Browse to https://cloud.google.com/docs/authentication/getting-started for more information.",NO_UNIVERSE_DOMAIN_FOUND:`Unab - Network accessline 54
To learn more about Universe Domain retrieval, visit: https://cloud.google.com/compute/docs/metadata/predefined-metadata-keys`};class B3{checkIsGCE=void 0;useJWTAccessWithScope;defaultServicePath;get isGCE(){return this.checkIsGCE}_findPro - Network accessline 55
[Credential-related source omitted] - Possible obfuscationline 55
[Credential-related source omitted] - Possible obfuscationline 61
[Credential-related source omitted] - Network accessline 63
`,"\r\r",`\r \r `];while(!0){let{done:G,value:F}=yield K0(Y.read());if(G){if(X.trim().length>0)throw Error("Incomplete JSON segment at the end");break}let q=J.decode(F,{stream:!0});try{let I=JSON.parse(q);if("error"in I){let T=JSON.parse(JS - Network accessline 64
\r `];while(!0){let{done:G,value:F}=yield K0(Y.read());if(G){if(X.trim().length>0)throw Error("Incomplete JSON segment at the end");break}let q=J.decode(F,{stream:!0});try{let I=JSON.parse(q);if("error"in I){let T=JSON.parse(JSON.stringify( - Network accessline 65
[Credential-related source omitted] - Possible obfuscationline 65
[Credential-related source omitted] - Possible obfuscationline 69
${D}`)}return K},vZ=DS(R2);class PY extends AY{create($,Z){var Q;let{api_version:Y=this._client.apiVersion}=$,J=dZ($,["api_version"]);if("model"in J&&"agent_config"in J)throw new G4("Invalid request: specified `model` and `agent_config`. If - Network accessline 70
`)}}r6.NEWLINE_CHARS=new Set([` `,"\r"]);r6.NEWLINE_REGEXP=/\r\n|[\n\r]/g;function wS($,Z){let J=Z!==null&&Z!==void 0?Z:0,X=$.indexOf(10,J),K=$.indexOf(13,J);if(X===-1&&K===-1)return null;let H;if(X!==-1&&K!==-1)H=Math.min(X,K);else H=X!==- - Network accessline 71
`,"\r"]);r6.NEWLINE_REGEXP=/\r\n|[\n\r]/g;function wS($,Z){let J=Z!==null&&Z!==void 0?Z:0,X=$.indexOf(10,J),K=$.indexOf(13,J);if(X===-1&&K===-1)return null;let H;if(X!==-1&&K!==-1)H=Math.min(X,K);else H=X!==-1?X:K;if($[H]===10)return{preced - Possible obfuscationline 71
`,"\r"]);r6.NEWLINE_REGEXP=/\r\n|[\n\r]/g;function wS($,Z){let J=Z!==null&&Z!==void 0?Z:0,X=$.indexOf(10,J),K=$.indexOf(13,J);if(X===-1&&K===-1)return null;let H;if(X!==-1&&K!==-1)H=Math.min(X,K);else H=X!==-1?X:K;if($[H]===10)return{preced - Network accessline 72
`);Q.enqueue(X)}catch(Y){Q.error(Y)}},async cancel(){var Q;await((Q=Z.return)===null||Q===void 0?void 0:Q.call(Z))}})}}function NS($,Z){return _4(this,arguments,function*(){var Y,J,X,K;if(!$.body){if(Z.abort(),typeof globalThis.navigator<"u - Possible obfuscationline 72
`);Q.enqueue(X)}catch(Y){Q.error(Y)}},async cancel(){var Q;await((Q=Z.return)===null||Q===void 0?void 0:Q.call(Z))}})}}function NS($,Z){return _4(this,arguments,function*(){var Y,J,X,K;if(!$.body){if(Z.abort(),typeof globalThis.navigator<"u - Network accessline 73
[Credential-related source omitted] - Possible obfuscationline 73
[Credential-related source omitted] - Access to secretsline 73
[Credential-related source omitted] - Access to secretsline 74
[Credential-related source omitted]
templates/codex-gemini-api/.agents/skills/gemini-audio-transcriber/src/transcribe.js
- Executable scriptline 1
#!/usr/bin/env node - Access to secretsline 12
[Credential-related source omitted] - Network accessline 34
console.error("範例:"); console.error( ' node scripts/transcribe.js "https://example.com/audio/meeting.mp3"' - Network accessline 35
console.error( ' node scripts/transcribe.js "https://example.com/audio/meeting.mp3"' ); - Network accessline 36
' node scripts/transcribe.js "https://example.com/audio/meeting.mp3"' - Access to secretsline 140
[Credential-related source omitted] - Access to secretsline 142
[Credential-related source omitted] - Access to secretsline 143
[Credential-related source omitted]
templates/codex-gemini-api/.agents/skills/gemini-deep-researcher/README.md
templates/codex-gemini-api/.agents/skills/gemini-deep-researcher/SKILL.md
- Access to secretsline 13
[Credential-related source omitted]
templates/codex-gemini-api/.agents/skills/gemini-deep-researcher/package.json
- Executable scriptline 1
Executable file
templates/codex-gemini-api/.agents/skills/gemini-deep-researcher/scripts/research.js
- Possible obfuscationline 1
import{createRequire as hq}from"node:module";var Lq=Object.create;var{getPrototypeOf:Cq,defineProperty:LQ,getOwnPropertyNames:Oq}=Object;var Sq=Object.prototype.hasOwnProperty;function jq($){return this[$]}var Eq,_q,m4=($,Z,Q)=>{var Y=$!=nu - Executable scriptline 1
Executable file - Possible obfuscationline 2
[Credential-related source omitted] - Access to secretsline 2
[Credential-related source omitted] - Possible obfuscationline 3
`).join( `+X),$.push(J+"m+"+C$.exports.humanize(this.diff)+"\x1B[0m")}else $[0]=BM()+Z+" "+$[0]}function BM(){if(W7.inspectOpts.hideDate)return"";return new Date().toISOString()+" "}function TM(...$){return process.stderr.write(L$.formatWit - Possible obfuscationline 6
`).map((Z)=>Z.trim()).join(" ")};z7.O=function($){return this.inspectOpts.colors=this.useColors,L$.inspect($,this.inspectOpts)}});var hQ=p((Ij,xQ)=>{if(typeof process>"u"||process.type==="renderer"||!1||process.__nwjs)xQ.exports=K7();else x - Possible obfuscationline 7
`).some((Q)=>Q.indexOf("(https.js:")!==-1||Q.indexOf("node:https:")!==-1)}incrementSockets($){if(this.maxSockets===1/0&&this.maxTotalSockets===1/0)return null;if(!this.sockets[$])this.sockets[$]=[];let Z=new bM.Socket({writable:!1});return - Possible obfuscationline 10
`),T=I.shift();if(!T)return $.destroy(),Q(Error("No header received from proxy CONNECT response"));let B=T.split(" "),R=+B[1],C=B.slice(2).join(" "),k={};for(let b of I){if(!b)continue;let u=b.indexOf(":");if(u===-1)return $.destroy(),Q(Err - Possible obfuscationline 13
`);let{connect:G,buffered:F}=await H;if($.emit("proxyConnect",G),this.emit("proxyConnect",G,$),G.statusCode===200){if($.once("socket",tM),Z.secureEndpoint)return D6("Upgrading socket connection to TLS"),T7.connect({...A7(P7(Z),"host","path" - Network accessline 21
`,X,`\r `)),Y.push(`--${Q}--`),new Z(Y,{type:"multipart/form-data; boundary="+Q})}var w6,YD,JD,h7,XD,y7=($,Z,Q)=>($+="",/^(Blob|File)$/.test(Z&&Z[w6])?[(Q=Q!==void 0?Q+"":Z[w6]=="File"?Z.name:"blob",$),Z.name!==Q||Z[w6]=="blob"?new w8([Z],Q - Network accessline 22
`)),Y.push(`--${Q}--`),new Z(Y,{type:"multipart/form-data; boundary="+Q})}var w6,YD,JD,h7,XD,y7=($,Z,Q)=>($+="",/^(Blob|File)$/.test(Z&&Z[w6])?[(Q=Q!==void 0?Q+"":Z[w6]=="File"?Z.name:"blob",$),Z.name!==Q||Z[w6]=="blob"?new w8([Z],Q,Z):Z]:[ - Network accessline 23
`)).replace(/\n/g,"%0A").replace(/\r/g,"%0D").replace(/"/g,"%22"),c8=($,Z,Q)=>{if(Z.length<Q)throw TypeError(`Failed to execute '${$}' on 'FormData': ${Q} arguments required, but only ${Z.length} present.`)},I8;var E$=k0(()=>{U6();fQ();/*! - Possible obfuscationline 23
`)).replace(/\n/g,"%0A").replace(/\r/g,"%0D").replace(/"/g,"%22"),c8=($,Z,Q)=>{if(Z.length<Q)throw TypeError(`Failed to execute '${$}' on 'FormData': ${Q} arguments required, but only ${Z.length} present.`)},I8;var E$=k0(()=>{U6();fQ();/*! - Possible obfuscationline 24
[Credential-related source omitted] - Network accessline 25
\r `),Y=!1,J=!1,X;$.on("response",(K)=>{let{headers:H}=K;Y=H["transfer-encoding"]==="chunked"&&!H["content-length"]}),$.on("socket",(K)=>{let H=()=>{if(Y&&!J){let F=Error("Premature close");F.code="ERR_STREAM_PREMATURE_CLOSE",Z(F)}},G=(F)=> - Network accessline 26
`),Y=!1,J=!1,X;$.on("response",(K)=>{let{headers:H}=K;Y=H["transfer-encoding"]==="chunked"&&!H["content-length"]}),$.on("socket",(K)=>{let H=()=>{if(Y&&!J){let F=Error("Premature close");F.code="ERR_STREAM_PREMATURE_CLOSE",Z(F)}},G=(F)=>{if - Possible obfuscationline 26
`),Y=!1,J=!1,X;$.on("response",(K)=>{let{headers:H}=K;Y=H["transfer-encoding"]==="chunked"&&!H["content-length"]}),$.on("socket",(K)=>{let H=()=>{if(Y&&!J){let F=Error("Premature close");F.code="ERR_STREAM_PREMATURE_CLOSE",Z(F)}},G=(F)=>{if - Possible obfuscationline 30
`}yield Q}static#X;static#V;static async#K(){return this.#X||=(await Promise.resolve().then(() => m4(C7()))).HttpsProxyAgent,this.#X}static async#z(){let $=typeof window<"u"&&!!window;return this.#V||=$?window.fetch:(await Promise.resolve() - Possible obfuscationline 35
`+Y)+ `+B+"}":"{"+R.join(",")+"}",Y=B,I}}if(typeof OX.stringify!=="function")OX.stringify=function(F,q,D){var w;if(Y="",J="",typeof D==="number")for(w=0;w<D;w+=1)J+=" ";else if(typeof D==="string")J=D;if(K=q,q&&typeof q!=="function"&&(typeo - Possible obfuscationline 36
`+B+"}":"{"+R.join(",")+"}",Y=B,I}}if(typeof OX.stringify!=="function")OX.stringify=function(F,q,D){var w;if(Y="",J="",typeof D==="number")for(w=0;w<D;w+=1)J+=" ";else if(typeof D==="string")J=D;if(K=q,q&&typeof q!=="function"&&(typeof q!== - Possible obfuscationline 37
[Credential-related source omitted] - Possible obfuscationline 39
[Credential-related source omitted] - Network accessline 46
${X} ${I} `+await $.crypto.sha256DigestHex(w),B=await EN($.crypto,$.securityCredentials.secretAccessKey,K,$.region,Y),R=await x6($.crypto,B,T),C=`${kz} Credential=${$.securityCredentials.accessKeyId}/${I}, SignedHeaders=${q}, Signature=${(0 - Network accessline 47
${I} `+await $.crypto.sha256DigestHex(w),B=await EN($.crypto,$.securityCredentials.secretAccessKey,K,$.region,Y),R=await x6($.crypto,B,T),C=`${kz} Credential=${$.securityCredentials.accessKeyId}/${I}, SignedHeaders=${q}, Signature=${(0,mz.f - Network accessline 48
[Credential-related source omitted] - Possible obfuscationline 48
[Credential-related source omitted] - Access to secretsline 48
[Credential-related source omitted] - Network accessline 49
To learn more about authentication and Google APIs, visit: https://cloud.google.com/docs/authentication/getting-started`,NO_CREDENTIALS_FOUND:`Unable to find credentials in current environment. To learn more about authentication and Googl - Network accessline 50
https://cloud.google.com/docs/authentication/getting-started`,NO_CREDENTIALS_FOUND:`Unable to find credentials in current environment. - Network accessline 51
To learn more about authentication and Google APIs, visit: https://cloud.google.com/docs/authentication/getting-started`,NO_ADC_FOUND:"Could not load the default credentials. Browse to https://cloud.google.com/docs/authentication/getting-s - Network accessline 52
https://cloud.google.com/docs/authentication/getting-started`,NO_ADC_FOUND:"Could not load the default credentials. Browse to https://cloud.google.com/docs/authentication/getting-started for more information.",NO_UNIVERSE_DOMAIN_FOUND:`Unab - Network accessline 53
To learn more about Universe Domain retrieval, visit: https://cloud.google.com/compute/docs/metadata/predefined-metadata-keys`};class B3{checkIsGCE=void 0;useJWTAccessWithScope;defaultServicePath;get isGCE(){return this.checkIsGCE}_findPro - Network accessline 54
[Credential-related source omitted] - Possible obfuscationline 54
[Credential-related source omitted] - Possible obfuscationline 60
[Credential-related source omitted] - Network accessline 62
`,"\r\r",`\r \r `];while(!0){let{done:G,value:F}=yield K0(Y.read());if(G){if(X.trim().length>0)throw Error("Incomplete JSON segment at the end");break}let q=J.decode(F,{stream:!0});try{let I=JSON.parse(q);if("error"in I){let T=JSON.parse(JS - Network accessline 63
\r `];while(!0){let{done:G,value:F}=yield K0(Y.read());if(G){if(X.trim().length>0)throw Error("Incomplete JSON segment at the end");break}let q=J.decode(F,{stream:!0});try{let I=JSON.parse(q);if("error"in I){let T=JSON.parse(JSON.stringify( - Network accessline 64
[Credential-related source omitted] - Possible obfuscationline 64
[Credential-related source omitted] - Possible obfuscationline 68
${D}`)}return K},vZ=DS(R2);class AY extends PY{create($,Z){var Q;let{api_version:Y=this._client.apiVersion}=$,J=dZ($,["api_version"]);if("model"in J&&"agent_config"in J)throw new G4("Invalid request: specified `model` and `agent_config`. If - Network accessline 69
`)}}r6.NEWLINE_CHARS=new Set([` `,"\r"]);r6.NEWLINE_REGEXP=/\r\n|[\n\r]/g;function wS($,Z){let J=Z!==null&&Z!==void 0?Z:0,X=$.indexOf(10,J),K=$.indexOf(13,J);if(X===-1&&K===-1)return null;let H;if(X!==-1&&K!==-1)H=Math.min(X,K);else H=X!==- - Network accessline 70
`,"\r"]);r6.NEWLINE_REGEXP=/\r\n|[\n\r]/g;function wS($,Z){let J=Z!==null&&Z!==void 0?Z:0,X=$.indexOf(10,J),K=$.indexOf(13,J);if(X===-1&&K===-1)return null;let H;if(X!==-1&&K!==-1)H=Math.min(X,K);else H=X!==-1?X:K;if($[H]===10)return{preced - Possible obfuscationline 70
`,"\r"]);r6.NEWLINE_REGEXP=/\r\n|[\n\r]/g;function wS($,Z){let J=Z!==null&&Z!==void 0?Z:0,X=$.indexOf(10,J),K=$.indexOf(13,J);if(X===-1&&K===-1)return null;let H;if(X!==-1&&K!==-1)H=Math.min(X,K);else H=X!==-1?X:K;if($[H]===10)return{preced - Network accessline 71
`);Q.enqueue(X)}catch(Y){Q.error(Y)}},async cancel(){var Q;await((Q=Z.return)===null||Q===void 0?void 0:Q.call(Z))}})}}function NS($,Z){return _4(this,arguments,function*(){var Y,J,X,K;if(!$.body){if(Z.abort(),typeof globalThis.navigator<"u - Possible obfuscationline 71
`);Q.enqueue(X)}catch(Y){Q.error(Y)}},async cancel(){var Q;await((Q=Z.return)===null||Q===void 0?void 0:Q.call(Z))}})}}function NS($,Z){return _4(this,arguments,function*(){var Y,J,X,K;if(!$.body){if(Z.abort(),typeof globalThis.navigator<"u - Network accessline 72
[Credential-related source omitted] - Possible obfuscationline 72
[Credential-related source omitted] - Access to secretsline 72
[Credential-related source omitted] - Possible obfuscationline 88
[Credential-related source omitted] - Access to secretsline 88
[Credential-related source omitted] - Access to secretsline 89
[Credential-related source omitted]
templates/codex-gemini-api/.agents/skills/gemini-deep-researcher/src/research.js
templates/codex-gemini-api/.agents/skills/gemini-image-describer/README.md
- Access to secretsline 27
[Credential-related source omitted]
templates/codex-gemini-api/.agents/skills/gemini-image-describer/SKILL.md
- Access to secretsline 12
[Credential-related source omitted] - Network accessline 27
[Credential-related source omitted] - Access to secretsline 27
[Credential-related source omitted] - Access to secretsline 31
[Credential-related source omitted] - Access to secretsline 35
[Credential-related source omitted] - Network accessline 43
IMAGE_DESCRIBER_DRY_RUN=1 node .agents/skills/gemini-image-describer/scripts/describe.js "https://example.com/photo.jpg" - Access to secretsline 61
[Credential-related source omitted] - Access to secretsline 80
[Credential-related source omitted]
templates/codex-gemini-api/.agents/skills/gemini-image-describer/package.json
- Executable scriptline 1
Executable file
templates/codex-gemini-api/.agents/skills/gemini-image-describer/scripts/describe.js
- Executable scriptline 1
#!/usr/bin/env node - Possible obfuscationline 2
import{createRequire as bq}from"node:module";var _q=Object.create;var{getPrototypeOf:vq,defineProperty:CQ,getOwnPropertyNames:xq}=Object;var hq=Object.prototype.hasOwnProperty;function yq($){return this[$]}var gq,fq,X4=($,Z,Q)=>{var Y=$!=nu - Possible obfuscationline 3
[Credential-related source omitted] - Access to secretsline 3
[Credential-related source omitted] - Possible obfuscationline 4
`).join( `+X),$.push(J+"m+"+C$.exports.humanize(this.diff)+"\x1B[0m")}else $[0]=CM()+Z+" "+$[0]}function CM(){if(H7.inspectOpts.hideDate)return"";return new Date().toISOString()+" "}function SM(...$){return process.stderr.write(L$.formatWit - Possible obfuscationline 7
`).map((Z)=>Z.trim()).join(" ")};W7.O=function($){return this.inspectOpts.colors=this.useColors,L$.inspect($,this.inspectOpts)}});var yQ=p((fE,hQ)=>{if(typeof process>"u"||process.type==="renderer"||!1||process.__nwjs)hQ.exports=z7();else h - Possible obfuscationline 8
`).some((Q)=>Q.indexOf("(https.js:")!==-1||Q.indexOf("node:https:")!==-1)}incrementSockets($){if(this.maxSockets===1/0&&this.maxTotalSockets===1/0)return null;if(!this.sockets[$])this.sockets[$]=[];let Z=new iM.Socket({writable:!1});return - Possible obfuscationline 11
`),T=I.shift();if(!T)return $.destroy(),Q(Error("No header received from proxy CONNECT response"));let N=T.split(" "),R=+N[1],C=N.slice(2).join(" "),k={};for(let b of I){if(!b)continue;let u=b.indexOf(":");if(u===-1)return $.destroy(),Q(Err - Possible obfuscationline 14
`);let{connect:G,buffered:F}=await H;if($.emit("proxyConnect",G),this.emit("proxyConnect",G,$),G.statusCode===200){if($.once("socket",JD),Z.secureEndpoint)return U6("Upgrading socket connection to TLS"),A7.connect({...R7(P7(Z),"host","path" - Network accessline 22
`,X,`\r `)),Y.push(`--${Q}--`),new Z(Y,{type:"multipart/form-data; boundary="+Q})}var I6,WD,HD,y7,GD,g7=($,Z,Q)=>($+="",/^(Blob|File)$/.test(Z&&Z[I6])?[(Q=Q!==void 0?Q+"":Z[I6]=="File"?Z.name:"blob",$),Z.name!==Q||Z[I6]=="blob"?new w8([Z],Q - Network accessline 23
`)),Y.push(`--${Q}--`),new Z(Y,{type:"multipart/form-data; boundary="+Q})}var I6,WD,HD,y7,GD,g7=($,Z,Q)=>($+="",/^(Blob|File)$/.test(Z&&Z[I6])?[(Q=Q!==void 0?Q+"":Z[I6]=="File"?Z.name:"blob",$),Z.name!==Q||Z[I6]=="blob"?new w8([Z],Q,Z):Z]:[ - Network accessline 24
`)).replace(/\n/g,"%0A").replace(/\r/g,"%0D").replace(/"/g,"%22"),c8=($,Z,Q)=>{if(Z.length<Q)throw TypeError(`Failed to execute '${$}' on 'FormData': ${Q} arguments required, but only ${Z.length} present.`)},I8;var j$=k0(()=>{w6();kQ();/*! - Possible obfuscationline 24
`)).replace(/\n/g,"%0A").replace(/\r/g,"%0D").replace(/"/g,"%22"),c8=($,Z,Q)=>{if(Z.length<Q)throw TypeError(`Failed to execute '${$}' on 'FormData': ${Q} arguments required, but only ${Z.length} present.`)},I8;var j$=k0(()=>{w6();kQ();/*! - Possible obfuscationline 25
[Credential-related source omitted] - Network accessline 26
\r `),Y=!1,J=!1,X;$.on("response",(K)=>{let{headers:H}=K;Y=H["transfer-encoding"]==="chunked"&&!H["content-length"]}),$.on("socket",(K)=>{let H=()=>{if(Y&&!J){let F=Error("Premature close");F.code="ERR_STREAM_PREMATURE_CLOSE",Z(F)}},G=(F)=> - Network accessline 27
`),Y=!1,J=!1,X;$.on("response",(K)=>{let{headers:H}=K;Y=H["transfer-encoding"]==="chunked"&&!H["content-length"]}),$.on("socket",(K)=>{let H=()=>{if(Y&&!J){let F=Error("Premature close");F.code="ERR_STREAM_PREMATURE_CLOSE",Z(F)}},G=(F)=>{if - Possible obfuscationline 27
`),Y=!1,J=!1,X;$.on("response",(K)=>{let{headers:H}=K;Y=H["transfer-encoding"]==="chunked"&&!H["content-length"]}),$.on("socket",(K)=>{let H=()=>{if(Y&&!J){let F=Error("Premature close");F.code="ERR_STREAM_PREMATURE_CLOSE",Z(F)}},G=(F)=>{if - Possible obfuscationline 31
`}yield Q}static#X;static#V;static async#K(){return this.#X||=(await Promise.resolve().then(() => X4(S7()))).HttpsProxyAgent,this.#X}static async#z(){let $=typeof window<"u"&&!!window;return this.#V||=$?window.fetch:(await Promise.resolve() - Possible obfuscationline 36
`+Y)+ `+N+"}":"{"+R.join(",")+"}",Y=N,I}}if(typeof OX.stringify!=="function")OX.stringify=function(F,q,D){var w;if(Y="",J="",typeof D==="number")for(w=0;w<D;w+=1)J+=" ";else if(typeof D==="string")J=D;if(K=q,q&&typeof q!=="function"&&(typeo - Possible obfuscationline 37
`+N+"}":"{"+R.join(",")+"}",Y=N,I}}if(typeof OX.stringify!=="function")OX.stringify=function(F,q,D){var w;if(Y="",J="",typeof D==="number")for(w=0;w<D;w+=1)J+=" ";else if(typeof D==="string")J=D;if(K=q,q&&typeof q!=="function"&&(typeof q!== - Possible obfuscationline 38
[Credential-related source omitted] - Possible obfuscationline 40
[Credential-related source omitted] - Network accessline 47
${X} ${I} `+await $.crypto.sha256DigestHex(w),N=await gN($.crypto,$.securityCredentials.secretAccessKey,K,$.region,Y),R=await h6($.crypto,N,T),C=`${mz} Credential=${$.securityCredentials.accessKeyId}/${I}, SignedHeaders=${q}, Signature=${(0 - Network accessline 48
${I} `+await $.crypto.sha256DigestHex(w),N=await gN($.crypto,$.securityCredentials.secretAccessKey,K,$.region,Y),R=await h6($.crypto,N,T),C=`${mz} Credential=${$.securityCredentials.accessKeyId}/${I}, SignedHeaders=${q}, Signature=${(0,bz.f - Network accessline 49
[Credential-related source omitted] - Possible obfuscationline 49
[Credential-related source omitted] - Access to secretsline 49
[Credential-related source omitted] - Network accessline 50
To learn more about authentication and Google APIs, visit: https://cloud.google.com/docs/authentication/getting-started`,NO_CREDENTIALS_FOUND:`Unable to find credentials in current environment. To learn more about authentication and Googl - Network accessline 51
https://cloud.google.com/docs/authentication/getting-started`,NO_CREDENTIALS_FOUND:`Unable to find credentials in current environment. - Network accessline 52
To learn more about authentication and Google APIs, visit: https://cloud.google.com/docs/authentication/getting-started`,NO_ADC_FOUND:"Could not load the default credentials. Browse to https://cloud.google.com/docs/authentication/getting-s - Network accessline 53
https://cloud.google.com/docs/authentication/getting-started`,NO_ADC_FOUND:"Could not load the default credentials. Browse to https://cloud.google.com/docs/authentication/getting-started for more information.",NO_UNIVERSE_DOMAIN_FOUND:`Unab - Network accessline 54
To learn more about Universe Domain retrieval, visit: https://cloud.google.com/compute/docs/metadata/predefined-metadata-keys`};class T3{checkIsGCE=void 0;useJWTAccessWithScope;defaultServicePath;get isGCE(){return this.checkIsGCE}_findPro - Network accessline 55
[Credential-related source omitted] - Possible obfuscationline 55
[Credential-related source omitted] - Possible obfuscationline 61
[Credential-related source omitted] - Network accessline 63
`,"\r\r",`\r \r `];while(!0){let{done:G,value:F}=yield K0(Y.read());if(G){if(X.trim().length>0)throw Error("Incomplete JSON segment at the end");break}let q=J.decode(F,{stream:!0});try{let I=JSON.parse(q);if("error"in I){let T=JSON.parse(JS - Network accessline 64
\r `];while(!0){let{done:G,value:F}=yield K0(Y.read());if(G){if(X.trim().length>0)throw Error("Incomplete JSON segment at the end");break}let q=J.decode(F,{stream:!0});try{let I=JSON.parse(q);if("error"in I){let T=JSON.parse(JSON.stringify( - Network accessline 65
[Credential-related source omitted] - Possible obfuscationline 65
[Credential-related source omitted] - Possible obfuscationline 69
${D}`)}return K},xZ=jO(j2);class RY extends PY{create($,Z){var Q;let{api_version:Y=this._client.apiVersion}=$,J=lZ($,["api_version"]);if("model"in J&&"agent_config"in J)throw new F4("Invalid request: specified `model` and `agent_config`. If - Network accessline 70
`)}}r6.NEWLINE_CHARS=new Set([` `,"\r"]);r6.NEWLINE_REGEXP=/\r\n|[\n\r]/g;function vO($,Z){let J=Z!==null&&Z!==void 0?Z:0,X=$.indexOf(10,J),K=$.indexOf(13,J);if(X===-1&&K===-1)return null;let H;if(X!==-1&&K!==-1)H=Math.min(X,K);else H=X!==- - Network accessline 71
`,"\r"]);r6.NEWLINE_REGEXP=/\r\n|[\n\r]/g;function vO($,Z){let J=Z!==null&&Z!==void 0?Z:0,X=$.indexOf(10,J),K=$.indexOf(13,J);if(X===-1&&K===-1)return null;let H;if(X!==-1&&K!==-1)H=Math.min(X,K);else H=X!==-1?X:K;if($[H]===10)return{preced - Possible obfuscationline 71
`,"\r"]);r6.NEWLINE_REGEXP=/\r\n|[\n\r]/g;function vO($,Z){let J=Z!==null&&Z!==void 0?Z:0,X=$.indexOf(10,J),K=$.indexOf(13,J);if(X===-1&&K===-1)return null;let H;if(X!==-1&&K!==-1)H=Math.min(X,K);else H=X!==-1?X:K;if($[H]===10)return{preced - Network accessline 72
`);Q.enqueue(X)}catch(Y){Q.error(Y)}},async cancel(){var Q;await((Q=Z.return)===null||Q===void 0?void 0:Q.call(Z))}})}}function hO($,Z){return v4(this,arguments,function*(){var Y,J,X,K;if(!$.body){if(Z.abort(),typeof globalThis.navigator<"u - Possible obfuscationline 72
`);Q.enqueue(X)}catch(Y){Q.error(Y)}},async cancel(){var Q;await((Q=Z.return)===null||Q===void 0?void 0:Q.call(Z))}})}}function hO($,Z){return v4(this,arguments,function*(){var Y,J,X,K;if(!$.body){if(Z.abort(),typeof globalThis.navigator<"u - Network accessline 73
[Credential-related source omitted] - Possible obfuscationline 73
[Credential-related source omitted] - Access to secretsline 73
[Credential-related source omitted] - Access to secretsline 74
[Credential-related source omitted]
templates/codex-gemini-api/.agents/skills/gemini-image-describer/src/describe.js
- Executable scriptline 1
#!/usr/bin/env node - Access to secretsline 13
[Credential-related source omitted] - Network accessline 34
console.error("範例:"); console.error( ' node scripts/describe.js "https://example.com/photo.jpg"' - Network accessline 35
console.error( ' node scripts/describe.js "https://example.com/photo.jpg"' ); - Network accessline 36
' node scripts/describe.js "https://example.com/photo.jpg"' - Network accessline 100
const timeout = setTimeout(() => controller.abort(), 30_000); try { const res = await fetch(rawInput, { - Network accessline 101
try { const res = await fetch(rawInput, { method: "HEAD", - Network accessline 102
const res = await fetch(rawInput, { - Access to secretsline 164
[Credential-related source omitted] - Access to secretsline 167
[Credential-related source omitted] - Access to secretsline 170
[Credential-related source omitted]
templates/codex-gemini-api/.agents/skills/gemini-nanobanana/README.md
- Access to secretsline 27
[Credential-related source omitted]
templates/codex-gemini-api/.agents/skills/gemini-nanobanana/SKILL.md
- Access to secretsline 12
[Credential-related source omitted] - Network accessline 25
- Use [`references\sources.md`](references/sources.md) to verify source provenance and jump to upstream docs. - For canonical API behavior, read: - [Gemini image-generation docs](https://ai.google.dev/gemini-api/docs/image-generation) - Network accessline 26
- For canonical API behavior, read: - [Gemini image-generation docs](https://ai.google.dev/gemini-api/docs/image-generation) - [Aspect ratios and image size](https://ai.google.dev/gemini-api/docs/image-generation#aspect_ratios_and_image - Network accessline 27
- [Gemini image-generation docs](https://ai.google.dev/gemini-api/docs/image-generation) - Network accessline 28
- [Aspect ratios and image size](https://ai.google.dev/gemini-api/docs/image-generation#aspect_ratios_and_image_size) - Network accessline 29
- [Thinking process](https://ai.google.dev/gemini-api/docs/image-generation#thinking-process) - Network accessline 30
- [Grounding with Google Search](https://ai.google.dev/gemini-api/docs/image-generation#use-with-grounding) - Network accessline 31
- [Grounding with Google Image Search](https://ai.google.dev/gemini-api/docs/image-generation#image-search) - Access to secretsline 55
[Credential-related source omitted]
templates/codex-gemini-api/.agents/skills/gemini-nanobanana/references/image-generation-api.md
- Network accessline 5
- [Build with Nano Banana (Google blog)](https://blog.google/innovation-and-ai/technology/developers-tools/build-with-nano-banana-2/) - Network accessline 6
- [Get Started Nano Banana notebook (Colab)](https://colab.research.google.com/github/google-gemini/cookbook/blob/main/quickstarts/Get_Started_Nano_Banana.ipynb#nano-banana-pro) - Network accessline 7
- [Gemini API image-generation docs](https://ai.google.dev/gemini-api/docs/image-generation) - Network accessline 39
- Blog launch calls out improved world knowledge, better text rendering/localization, new extreme aspect ratios (1:4, 4:1, 1:8, 8:1), and configurable thinking levels for Nano Banana. - Colab quickstart describes practical strengths: charac - Network accessline 41
- Docs confirm all generated images include [SynthID watermarking](https://ai.google.dev/gemini-api/docs/image-generation). - Access to secretsline 51
[Credential-related source omitted] - Network accessline 63
- [Gemini API libraries](https://ai.google.dev/gemini-api/docs/libraries) - Network accessline 64
- [API key setup](https://ai.google.dev/gemini-api/docs/api-key) - Network accessline 65
- [Pricing](https://ai.google.dev/gemini-api/docs/pricing) - Network accessline 331
- [Build with Nano Banana (Google blog)](https://blog.google/innovation-and-ai/technology/developers-tools/build-with-nano-banana-2/) - Network accessline 332
- [Get Started Nano Banana notebook (Colab)](https://colab.research.google.com/github/google-gemini/cookbook/blob/main/quickstarts/Get_Started_Nano_Banana.ipynb#nano-banana-pro) - Network accessline 333
- [Image generation docs (Gemini API)](https://ai.google.dev/gemini-api/docs/image-generation) - Network accessline 337
- [Gemini 3.1 Flash Image model page](https://ai.google.dev/gemini-api/docs/models/gemini-3.1-flash-image-preview) - Network accessline 338
- [Gemini 3 Pro Image model page](https://ai.google.dev/gemini-api/docs/models/gemini-3-pro-image-preview) - Network accessline 339
- [Gemini 2.5 Flash Image model page](https://ai.google.dev/gemini-api/docs/models/gemini-2.5-flash-image) - Network accessline 340
- [Google Search tool](https://ai.google.dev/gemini-api/docs/google-search) - Network accessline 341
- [Batch API](https://ai.google.dev/gemini-api/docs/batch-api) - Network accessline 342
- [Batch API image generation section](https://ai.google.dev/gemini-api/docs/batch-api#image-generation) - Network accessline 343
- [Rate limits](https://ai.google.dev/gemini-api/docs/rate-limits) - Network accessline 344
- [Thinking guide](https://ai.google.dev/gemini-api/docs/thinking) - Network accessline 345
- [Thought signatures](https://ai.google.dev/gemini-api/docs/thought-signatures) - Network accessline 346
- [Image understanding input guidance](https://ai.google.dev/gemini-api/docs/image-understanding) - Network accessline 347
- [Pricing](https://ai.google.dev/gemini-api/docs/pricing) - Network accessline 348
- [Imagen docs](https://ai.google.dev/gemini-api/docs/imagen) - Network accessline 349
- [Video (Veo) docs](https://ai.google.dev/gemini-api/docs/video) - Network accessline 350
- [Gemini models overview](https://ai.google.dev/gemini-api/docs/models) - Network accessline 354
- [Grounding with Google Search](https://ai.google.dev/gemini-api/docs/image-generation#use-with-grounding) - Network accessline 355
- [Grounding with Google Image Search](https://ai.google.dev/gemini-api/docs/image-generation#image-search) - Network accessline 356
- [Aspect ratios and image size](https://ai.google.dev/gemini-api/docs/image-generation#aspect_ratios_and_image_size) - Network accessline 357
- [Thinking process](https://ai.google.dev/gemini-api/docs/image-generation#thinking-process)
templates/codex-gemini-api/.agents/skills/gemini-nanobanana/references/sources.md
- Network accessline 5
1. [Build with Nano Banana (Google blog)](https://blog.google/innovation-and-ai/technology/developers-tools/build-with-nano-banana-2/) - Network accessline 6
2. [Get Started Nano Banana (Colab notebook)](https://colab.research.google.com/github/google-gemini/cookbook/blob/main/quickstarts/Get_Started_Nano_Banana.ipynb#nano-banana-pro) - Network accessline 7
3. [Gemini API image-generation docs](https://ai.google.dev/gemini-api/docs/image-generation) - Network accessline 54
- Main implementation-oriented reference: [`image-generation-api.md`](.\image-generation-api.md) - Canonical model docs: - [3.1 Flash Image](https://ai.google.dev/gemini-api/docs/models/gemini-3.1-flash-image-preview) - Network accessline 55
- Canonical model docs: - [3.1 Flash Image](https://ai.google.dev/gemini-api/docs/models/gemini-3.1-flash-image-preview) - [3 Pro Image](https://ai.google.dev/gemini-api/docs/models/gemini-3-pro-image-preview) - Network accessline 56
- [3.1 Flash Image](https://ai.google.dev/gemini-api/docs/models/gemini-3.1-flash-image-preview) - Network accessline 57
- [3 Pro Image](https://ai.google.dev/gemini-api/docs/models/gemini-3-pro-image-preview) - Network accessline 58
- [2.5 Flash Image](https://ai.google.dev/gemini-api/docs/models/gemini-2.5-flash-image)
templates/codex-gemini-api/.agents/skills/gemini-nanobanana/scripts/gemini-nanobanana-cli.js
- Executable scriptline 1
#!/usr/bin/env node - Access to secretsline 44
[Credential-related source omitted] - Access to secretsline 70
[Credential-related source omitted] - Access to secretsline 329
[Credential-related source omitted] - Network accessline 342
const payload = buildPayload(options); const url = `https://generativelanguage.googleapis.com/v1beta/models/${encodeURIComponent(options.model)}:generateContent`; - Network accessline 343
const url = `https://generativelanguage.googleapis.com/v1beta/models/${encodeURIComponent(options.model)}:generateContent`; - Network accessline 349
const response = await fetch(url, {
templates/codex-gemini-api/.agents/skills/gemini-summary/README.md
- Access to secretsline 27
[Credential-related source omitted] - Network accessline 32
幫我摘要這篇文章 https://example.com/ai-agents-intro - Network accessline 33
摘要這份 PDF 的重點 ./reports/quarterly.pdf 幫我看看這個 YouTube 影片在講什麼 https://youtu.be/abc123 把這段會議錄音整理成摘要 ./recordings/meeting.mp3 - Network accessline 34
幫我看看這個 YouTube 影片在講什麼 https://youtu.be/abc123 - Network accessline 47
📌 來源 https://example.com/ai-agents-intro - Network accessline 48
https://example.com/ai-agents-intro
templates/codex-gemini-api/.agents/skills/gemini-summary/SKILL.md
- Access to secretsline 12
[Credential-related source omitted] - Network accessline 18
| 類型 | 輸入格式 | 使用模型 | |------|----------|----------| | 網頁 | `https://example.com/article` | gemini-3-pro-preview | - Network accessline 19
|------|----------|----------| | 網頁 | `https://example.com/article` | gemini-3-pro-preview | | PDF | 本地 `./report.pdf` 或遠端 URL | gemini-3-pro-preview | - Network accessline 20
| 網頁 | `https://example.com/article` | gemini-3-pro-preview | - Network accessline 46
# 網頁摘要 node .agents/skills/gemini-summary/scripts/summarize.js "https://example.com/posts/agentic-workflows" - Network accessline 47
node .agents/skills/gemini-summary/scripts/summarize.js "https://example.com/posts/agentic-workflows" - Network accessline 52
# PDF 摘要(遠端 URL) node .agents/skills/gemini-summary/scripts/summarize.js "https://example.com/report.pdf" - Network accessline 53
node .agents/skills/gemini-summary/scripts/summarize.js "https://example.com/report.pdf" - Network accessline 55
# 影片摘要(YouTube) node .agents/skills/gemini-summary/scripts/summarize.js "https://youtu.be/abc123" - Network accessline 56
node .agents/skills/gemini-summary/scripts/summarize.js "https://youtu.be/abc123" - Network accessline 64
# 音訊摘要(遠端 URL) node .agents/skills/gemini-summary/scripts/summarize.js "https://example.com/podcast.mp3" - Network accessline 65
node .agents/skills/gemini-summary/scripts/summarize.js "https://example.com/podcast.mp3" - Network accessline 73
node .agents/skills/gemini-summary/scripts/summarize.js --type pdf "https://example.com/download?file=report" - Network accessline 74
node .agents/skills/gemini-summary/scripts/summarize.js --type audio "https://example.com/download?file=recording" - Network accessline 82
SUMMARY_DRY_RUN=1 node .agents/skills/gemini-summary/scripts/summarize.js "https://youtu.be/abc123" - Access to secretsline 118
[Credential-related source omitted] - Access to secretsline 154
[Credential-related source omitted]
templates/codex-gemini-api/.agents/skills/gemini-summary/package.json
- Executable scriptline 1
Executable file
templates/codex-gemini-api/.agents/skills/gemini-summary/scripts/summarize.js
- Executable scriptline 1
#!/usr/bin/env node - Possible obfuscationline 2
import{createRequire as VO}from"node:module";var ZO=Object.create;var{getPrototypeOf:$O,defineProperty:oJ,getOwnPropertyNames:QO}=Object;var YO=Object.prototype.hasOwnProperty;function JO(Z){return this[Z]}var KO,XO,t0=(Z,$,Q)=>{var Y=Z!=nu - Possible obfuscationline 3
[Credential-related source omitted] - Access to secretsline 3
[Credential-related source omitted] - Possible obfuscationline 4
`).join( `+K),Z.push(J+"m+"+_Q.exports.humanize(this.diff)+"\x1B[0m")}else Z[0]=aO()+$+" "+Z[0]}function aO(){if(wG.inspectOpts.hideDate)return"";return new Date().toISOString()+" "}function nO(...Z){return process.stderr.write(LQ.formatWit - Possible obfuscationline 7
`).map(($)=>$.trim()).join(" ")};PG.O=function(Z){return this.inspectOpts.colors=this.useColors,LQ.inspect(Z,this.inspectOpts)}});var X1=i((kp,K1)=>{if(typeof process>"u"||process.type==="renderer"||!1||process.__nwjs)K1.exports=BG();else K - Possible obfuscationline 8
`).some((Q)=>Q.indexOf("(https.js:")!==-1||Q.indexOf("node:https:")!==-1)}incrementSockets(Z){if(this.maxSockets===1/0&&this.maxTotalSockets===1/0)return null;if(!this.sockets[Z])this.sockets[Z]=[];let $=new Bj.Socket({writable:!1});return - Possible obfuscationline 11
`),A=R.shift();if(!A)return Z.destroy(),Q(Error("No header received from proxy CONNECT response"));let I=A.split(" "),j=+I[1],L=I.slice(2).join(" "),k={};for(let d of R){if(!d)continue;let b=d.indexOf(":");if(b===-1)return Z.destroy(),Q(Err - Possible obfuscationline 14
`);let{connect:q,buffered:F}=await W;if(Z.emit("proxyConnect",q),this.emit("proxyConnect",q,Z),q.statusCode===200){if(Z.once("socket",Nj),$.secureEndpoint)return m9("Upgrading socket connection to TLS"),TG.connect({...EG(SG($),"host","path" - Network accessline 22
`,K,`\r `)),Y.push(`--${Q}--`),new $(Y,{type:"multipart/form-data; boundary="+Q})}var c9,Cj,yj,pG,kj,cG=(Z,$,Q)=>(Z+="",/^(Blob|File)$/.test($&&$[c9])?[(Q=Q!==void 0?Q+"":$[c9]=="File"?$.name:"blob",Z),$.name!==Q||$[c9]=="blob"?new YZ([$],Q - Network accessline 23
`)),Y.push(`--${Q}--`),new $(Y,{type:"multipart/form-data; boundary="+Q})}var c9,Cj,yj,pG,kj,cG=(Z,$,Q)=>(Z+="",/^(Blob|File)$/.test($&&$[c9])?[(Q=Q!==void 0?Q+"":$[c9]=="File"?$.name:"blob",Z),$.name!==Q||$[c9]=="blob"?new YZ([$],Q,$):$]:[ - Network accessline 24
`)).replace(/\n/g,"%0A").replace(/\r/g,"%0D").replace(/"/g,"%22"),gZ=(Z,$,Q)=>{if($.length<Q)throw TypeError(`Failed to execute '${Z}' on 'FormData': ${Q} arguments required, but only ${$.length} present.`)},JZ;var SQ=A8(()=>{p9();V1();/*! - Possible obfuscationline 24
`)).replace(/\n/g,"%0A").replace(/\r/g,"%0D").replace(/"/g,"%22"),gZ=(Z,$,Q)=>{if($.length<Q)throw TypeError(`Failed to execute '${Z}' on 'FormData': ${Q} arguments required, but only ${$.length} present.`)},JZ;var SQ=A8(()=>{p9();V1();/*! - Possible obfuscationline 25
[Credential-related source omitted] - Network accessline 26
\r `),Y=!1,J=!1,K;Z.on("response",(X)=>{let{headers:W}=X;Y=W["transfer-encoding"]==="chunked"&&!W["content-length"]}),Z.on("socket",(X)=>{let W=()=>{if(Y&&!J){let F=Error("Premature close");F.code="ERR_STREAM_PREMATURE_CLOSE",$(F)}},q=(F)=> - Network accessline 27
`),Y=!1,J=!1,K;Z.on("response",(X)=>{let{headers:W}=X;Y=W["transfer-encoding"]==="chunked"&&!W["content-length"]}),Z.on("socket",(X)=>{let W=()=>{if(Y&&!J){let F=Error("Premature close");F.code="ERR_STREAM_PREMATURE_CLOSE",$(F)}},q=(F)=>{if - Possible obfuscationline 27
`),Y=!1,J=!1,K;Z.on("response",(X)=>{let{headers:W}=X;Y=W["transfer-encoding"]==="chunked"&&!W["content-length"]}),Z.on("socket",(X)=>{let W=()=>{if(Y&&!J){let F=Error("Premature close");F.code="ERR_STREAM_PREMATURE_CLOSE",$(F)}},q=(F)=>{if - Possible obfuscationline 31
`}yield Q}static#K;static#X;static async#z(){return this.#K||=(await Promise.resolve().then(() => t0(kG()))).HttpsProxyAgent,this.#K}static async#W(){let Z=typeof window<"u"&&!!window;return this.#X||=Z?window.fetch:(await Promise.resolve() - Possible obfuscationline 36
`+Y)+ `+I+"}":"{"+j.join(",")+"}",Y=I,R}}if(typeof x2.stringify!=="function")x2.stringify=function(F,U,H){var w;if(Y="",J="",typeof H==="number")for(w=0;w<H;w+=1)J+=" ";else if(typeof H==="string")J=H;if(X=U,U&&typeof U!=="function"&&(typeo - Possible obfuscationline 37
`+I+"}":"{"+j.join(",")+"}",Y=I,R}}if(typeof x2.stringify!=="function")x2.stringify=function(F,U,H){var w;if(Y="",J="",typeof H==="number")for(w=0;w<H;w+=1)J+=" ";else if(typeof H==="string")J=H;if(X=U,U&&typeof U!=="function"&&(typeof U!== - Possible obfuscationline 38
[Credential-related source omitted] - Possible obfuscationline 40
[Credential-related source omitted] - Network accessline 47
${K} ${R} `+await Z.crypto.sha256DigestHex(w),I=await KT(Z.crypto,Z.securityCredentials.secretAccessKey,X,Z.region,Y),j=await K5(Z.crypto,I,A),L=`${iU} Credential=${Z.securityCredentials.accessKeyId}/${R}, SignedHeaders=${U}, Signature=${(0 - Network accessline 48
${R} `+await Z.crypto.sha256DigestHex(w),I=await KT(Z.crypto,Z.securityCredentials.secretAccessKey,X,Z.region,Y),j=await K5(Z.crypto,I,A),L=`${iU} Credential=${Z.securityCredentials.accessKeyId}/${R}, SignedHeaders=${U}, Signature=${(0,sU.f - Network accessline 49
[Credential-related source omitted] - Possible obfuscationline 49
[Credential-related source omitted] - Access to secretsline 49
[Credential-related source omitted] - Network accessline 50
To learn more about authentication and Google APIs, visit: https://cloud.google.com/docs/authentication/getting-started`,NO_CREDENTIALS_FOUND:`Unable to find credentials in current environment. To learn more about authentication and Googl - Network accessline 51
https://cloud.google.com/docs/authentication/getting-started`,NO_CREDENTIALS_FOUND:`Unable to find credentials in current environment. - Network accessline 52
To learn more about authentication and Google APIs, visit: https://cloud.google.com/docs/authentication/getting-started`,NO_ADC_FOUND:"Could not load the default credentials. Browse to https://cloud.google.com/docs/authentication/getting-s - Network accessline 53
https://cloud.google.com/docs/authentication/getting-started`,NO_ADC_FOUND:"Could not load the default credentials. Browse to https://cloud.google.com/docs/authentication/getting-started for more information.",NO_UNIVERSE_DOMAIN_FOUND:`Unab - Network accessline 54
To learn more about Universe Domain retrieval, visit: https://cloud.google.com/compute/docs/metadata/predefined-metadata-keys`};class vH{checkIsGCE=void 0;useJWTAccessWithScope;defaultServicePath;get isGCE(){return this.checkIsGCE}_findPro - Network accessline 55
[Credential-related source omitted] - Possible obfuscationline 55
[Credential-related source omitted] - Possible obfuscationline 61
`+Q)}function rZ(Z,$,Q,Y,J,K){if(Z.listenerCount("wsClientError")){let X=Error(J);Error.captureStackTrace(X,rZ),Z.emit("wsClientError",X,Q,$)}else P5(Q,Y,J,K)}});var oR=i((kl,Z3)=>{function nR(Z,$){if($&&$.documentElement)Z=$,$=arguments[2] - Possible obfuscationline 62
`)}}}else this.log=function(){}}nR.prototype={FLAG_STRIP_UNLIKELYS:1,FLAG_WEIGHT_CLASSES:2,FLAG_CLEAN_CONDITIONALLY:4,ELEMENT_NODE:1,TEXT_NODE:3,DEFAULT_MAX_ELEMS_TO_PARSE:0,DEFAULT_N_TOP_CANDIDATES:5,DEFAULT_TAGS_TO_SCORE:"section,h2,h3,h4 - Possible obfuscationline 63
`:case"\f":if(X[Q])switch(Z.charAt($-1)){case" ":case"\t":case"\r":case `:case"\f":break;default:K+=" ";break}break;case'"':if(J=$+1,Y=Z.indexOf('"',J)+1,!Y)throw'" is missing';K+=Z.slice($,Y),$=Y-1;break;case"'":if(J=$+1,Y=Z.indexOf("'",J) - Possible obfuscationline 64
`:case"\f":break;default:K+=" ";break}break;case'"':if(J=$+1,Y=Z.indexOf('"',J)+1,!Y)throw'" is missing';K+=Z.slice($,Y),$=Y-1;break;case"'":if(J=$+1,Y=Z.indexOf("'",J)+1,!Y)throw"' is missing";K+=Z.slice($,Y),$=Y-1;break;case"/":if(Z.charA - Possible obfuscationline 65
`;return Z};pu.CSSStyleSheet=L4.CSSStyleSheet;L4.parse=d7().parse});var i7=i((du)=>{var l7={};l7.MediaList=function(){this.length=0};l7.MediaList.prototype={constructor:l7.MediaList,get mediaText(){return Array.prototype.join.call(this,", " - Possible obfuscationline 66
`:case"\f":if(Q==="after-import")Q="url";else Y+=K;break;case"@":if(!Q&&Z.indexOf("@import",$)===$)Q="after-import",$+=6,Y="";break;case"u":if(Q==="url"&&Z.indexOf("url(",$)===$){if(J=Z.indexOf(")",$+1),J===-1)throw $+': ")" not found';$+=4 - Possible obfuscationline 67
`+Z.join( `)+ }`}});Wm.CSSKeyframesRule=s6.CSSKeyframesRule});var kz=i((Gm)=>{var o7={};o7.CSSValue=function(){};o7.CSSValue.prototype={constructor:o7.CSSValue,set cssText(Z){var $=this._getConstructorName();throw Error('DOMException: prope - Possible obfuscationline 69
[Credential-related source omitted] - Possible obfuscationline 71
`,$+1);if(q<J)J=K;return J};Fm.CSSValueExpression=r4.CSSValueExpression});var fz=i((Hm)=>{var t7={};t7.MatcherList=function(){this.length=0};t7.MatcherList.prototype={constructor:t7.MatcherList,get matcherText(){return Array.prototype.join. - Possible obfuscationline 73
[Credential-related source omitted] - Network accessline 75
`,"\r\r",`\r \r `];while(!0){let{done:q,value:F}=yield I0(Y.read());if(q){if(K.trim().length>0)throw Error("Incomplete JSON segment at the end");break}let U=J.decode(F,{stream:!0});try{let R=JSON.parse(U);if("error"in R){let A=JSON.parse(JS - Network accessline 76
\r `];while(!0){let{done:q,value:F}=yield I0(Y.read());if(q){if(K.trim().length>0)throw Error("Incomplete JSON segment at the end");break}let U=J.decode(F,{stream:!0});try{let R=JSON.parse(U);if("error"in R){let A=JSON.parse(JSON.stringify( - Network accessline 77
[Credential-related source omitted] - Possible obfuscationline 77
[Credential-related source omitted] - Possible obfuscationline 81
${H}`)}return X},CY=lh(CR);class aX extends rX{create(Z,$){var Q;let{api_version:Y=this._client.apiVersion}=Z,J=pY(Z,["api_version"]);if("model"in J&&"agent_config"in J)throw new $4("Invalid request: specified `model` and `agent_config`. If - Network accessline 82
`)}}M5.NEWLINE_CHARS=new Set([` `,"\r"]);M5.NEWLINE_REGEXP=/\r\n|[\n\r]/g;function sh(Z,$){let J=$!==null&&$!==void 0?$:0,K=Z.indexOf(10,J),X=Z.indexOf(13,J);if(K===-1&&X===-1)return null;let W;if(K!==-1&&X!==-1)W=Math.min(K,X);else W=K!==- - Network accessline 83
`,"\r"]);M5.NEWLINE_REGEXP=/\r\n|[\n\r]/g;function sh(Z,$){let J=$!==null&&$!==void 0?$:0,K=Z.indexOf(10,J),X=Z.indexOf(13,J);if(K===-1&&X===-1)return null;let W;if(K!==-1&&X!==-1)W=Math.min(K,X);else W=K!==-1?K:X;if(Z[W]===10)return{preced - Possible obfuscationline 83
`,"\r"]);M5.NEWLINE_REGEXP=/\r\n|[\n\r]/g;function sh(Z,$){let J=$!==null&&$!==void 0?$:0,K=Z.indexOf(10,J),X=Z.indexOf(13,J);if(K===-1&&X===-1)return null;let W;if(K!==-1&&X!==-1)W=Math.min(K,X);else W=K!==-1?K:X;if(Z[W]===10)return{preced - Network accessline 84
`);Q.enqueue(K)}catch(Y){Q.error(Y)}},async cancel(){var Q;await((Q=$.return)===null||Q===void 0?void 0:Q.call($))}})}}function ah(Z,$){return h4(this,arguments,function*(){var Y,J,K,X;if(!Z.body){if($.abort(),typeof globalThis.navigator<"u - Possible obfuscationline 84
`);Q.enqueue(K)}catch(Y){Q.error(Y)}},async cancel(){var Q;await((Q=$.return)===null||Q===void 0?void 0:Q.call($))}})}}function ah(Z,$){return h4(this,arguments,function*(){var Y,J,K,X;if(!Z.body){if($.abort(),typeof globalThis.navigator<"u - Network accessline 85
[Credential-related source omitted] - Possible obfuscationline 85
[Credential-related source omitted] - Access to secretsline 85
[Credential-related source omitted] - Possible obfuscationline 86
`:G7(Z.children);if(F9(Z))return G7(Z.children);if(W6(Z))return Z.data;return""}function T5(Z){if(Array.isArray(Z))return Z.map(T5).join("");if(v8(Z)&&!v5(Z))return T5(Z.children);if(W6(Z))return Z.data;return""}function _3(Z){if(Array.isAr - Possible obfuscationline 90
[Credential-related source omitted] - Possible obfuscationline 91
[Credential-related source omitted] - Network accessline 97
[內容因長度限制已截斷]`,truncated:!0}}async function fW(Z,$={}){let Q=new AbortController,Y=setTimeout(()=>Q.abort(),HD);try{return await fetch(Z,{...$,signal:Q.signal})}catch(J){if(J?.name==="AbortError")throw Error(`抓取逾時(${HD/1000} 秒):${Z}`);throw - Possible obfuscationline 97
[內容因長度限制已截斷]`,truncated:!0}}async function fW(Z,$={}){let Q=new AbortController,Y=setTimeout(()=>Q.abort(),HD);try{return await fetch(Z,{...$,signal:Q.signal})}catch(J){if(J?.name==="AbortError")throw Error(`抓取逾時(${HD/1000} 秒):${Z}`);throw - Network accessline 98
`)}function Qp(){let Z=process.argv.slice(2),$=null,Q=null;for(let Y=0;Y<Z.length;Y++)if(Z[Y]==="--type"&&Y+1<Z.length){if($=Z[++Y],!["url","pdf","video","audio"].includes($))throw Error(`不支援的類型:${$}(可用:url, pdf, video, audio)`)}else if(!Q) - Possible obfuscationline 98
`)}function Qp(){let Z=process.argv.slice(2),$=null,Q=null;for(let Y=0;Y<Z.length;Y++)if(Z[Y]==="--type"&&Y+1<Z.length){if($=Z[++Y],!["url","pdf","video","audio"].includes($))throw Error(`不支援的類型:${$}(可用:url, pdf, video, audio)`)}else if(!Q) - Possible obfuscationline 192
(若文件包含後續計畫、建議採取的步驟或管理決策,請在此整理出來;若無則寫「目前無明確行動建議」)`}async function kW(Z){if(!Z)throw Error("請提供 PDF 檔案路徑或 URL。");if(!Z.toLowerCase().endsWith(".pdf"))try{if(!new URL(Z).pathname.toLowerCase().endsWith(".pdf"))console.error(`警告:輸入不像 PDF 檔案,仍嘗試 - Possible obfuscationline 260
[Credential-related source omitted]
templates/codex-gemini-api/.agents/skills/gemini-summary/src/summarize.js
- Executable scriptline 1
#!/usr/bin/env node - Network accessline 80
console.error(""); console.error("範例:"); console.error(' node scripts/summarize.js "https://example.com/post/123"'); - Network accessline 81
console.error("範例:"); console.error(' node scripts/summarize.js "https://example.com/post/123"'); console.error(' node scripts/summarize.js "./reports/quarterly.pdf"'); - Network accessline 82
console.error(' node scripts/summarize.js "https://example.com/post/123"'); - Network accessline 83
console.error(' node scripts/summarize.js "./reports/quarterly.pdf"'); console.error(' node scripts/summarize.js "https://youtu.be/abc123"'); console.error(' node scripts/summarize.js "./recording.mp3"'); - Network accessline 84
console.error(' node scripts/summarize.js "https://youtu.be/abc123"'); - Access to secretsline 89
[Credential-related source omitted] - Access to secretsline 92
[Credential-related source omitted] - Network accessline 121
const timer = setTimeout(() => controller.abort(), FETCH_TIMEOUT_MS); try { return await fetch(url, { ...options, signal: controller.signal }); - Network accessline 122
try { return await fetch(url, { ...options, signal: controller.signal }); } catch (error) { - Network accessline 123
return await fetch(url, { ...options, signal: controller.signal }); - Network accessline 232
headers: { "User-Agent": "GitHubClawDev/summary (+https://github.com/rewq0494/GitHubClawDev)", - Network accessline 233
"User-Agent": "GitHubClawDev/summary (+https://github.com/rewq0494/GitHubClawDev)", Accept: "text/html,application/xhtml+xml", - Network accessline 234
"GitHubClawDev/summary (+https://github.com/rewq0494/GitHubClawDev)",
templates/codex-gemini-api/.agents/skills/google-stitch/README.md
- Access to secretsline 27
[Credential-related source omitted]
templates/codex-gemini-api/.agents/skills/google-stitch/SKILL.md
templates/codex-gemini-api/.agents/skills/google-stitch/references/workflow.md
templates/codex-gemini-api/.agents/skills/google-stitch/scripts/generate.js
templates/codex-gemini-api/.agents/skills/google-stitch/scripts/google-stitch.js
- Executable scriptline 1
[Credential-related source omitted] - Access to secretsline 1
[Credential-related source omitted] - Possible obfuscationline 818
h.inlineData && typeof h.inlineData.data == "string" && (d += atob(h.inlineData.data)); - Possible obfuscationline 1044
a.inlineData && typeof a.inlineData.data == "string" && (r += atob(a.inlineData.data)); - Network accessline 2980
* @remarks * Context caching is only supported for specific models. See [Gemini * Developer API reference](https://ai.google.dev/gemini-api/docs/caching?lang=node/context-cac) - Network accessline 2981
* Context caching is only supported for specific models. See [Gemini * Developer API reference](https://ai.google.dev/gemini-api/docs/caching?lang=node/context-cac) * and [Vertex AI reference](https://cloud.google.com/vertex-ai/genera - Network accessline 2982
* Developer API reference](https://ai.google.dev/gemini-api/docs/caching?lang=node/context-cac) - Network accessline 2983
* and [Vertex AI reference](https://cloud.google.com/vertex-ai/generative-ai/docs/context-cache/context-cache-overview#supported_models) - Network accessline 6530
throw new Error("Authentication is not set up. Please provide either a project and location, or an API key, or a custom base URL."); const u = e.project && e.location || !!e.apiKey; this.customBaseUrl && !u ? (l.baseUrl = this.c - Network accessline 6531
const u = e.project && e.location || !!e.apiKey; this.customBaseUrl && !u ? (l.baseUrl = this.customBaseUrl, this.clientOptions.project = void 0, this.clientOptions.location = void 0) : this.clientOptions.apiKey || this.clientOptions. - Network accessline 6532
this.customBaseUrl && !u ? (l.baseUrl = this.customBaseUrl, this.clientOptions.project = void 0, this.clientOptions.location = void 0) : this.clientOptions.apiKey || this.clientOptions.location === "global" ? l.baseUrl = "https://aiplatform - Network accessline 6533
} else this.clientOptions.apiKey || console.warn("API key should be set when using the Gemini API."), l.apiVersion = (r = this.clientOptions.apiVersion) !== null && r !== void 0 ? r : gu, l.baseUrl = "https://generativelanguage.google - Network accessline 6534
this.clientOptions.apiKey || console.warn("API key should be set when using the Gemini API."), l.apiVersion = (r = this.clientOptions.apiVersion) !== null && r !== void 0 ? r : gu, l.baseUrl = "https://generativelanguage.googleapis.com/"; - Network accessline 6722
var o; if (!this.clientOptions.httpOptions || !this.clientOptions.httpOptions.retryOptions) return fetch(e, t); - Network accessline 6723
if (!this.clientOptions.httpOptions || !this.clientOptions.httpOptions.retryOptions) return fetch(e, t); const r = this.clientOptions.httpOptions.retryOptions; - Network accessline 6724
return fetch(e, t); - Network accessline 6725
const r = this.clientOptions.httpOptions.retryOptions; return ri(async () => { const a = await fetch(e, t); - Network accessline 6726
return ri(async () => { const a = await fetch(e, t); if (a.ok) - Network accessline 6727
const a = await fetch(e, t); - Access to secretsline 7245
[Credential-related source omitted] - Network accessline 9970
var o, r, l, a; if (!n.body) throw e.abort(), typeof globalThis.navigator < "u" && globalThis.navigator.product === "ReactNative" ? new B("The default react-native fetch implementation does not support streaming. Please use expo/f - Network accessline 9971
if (!n.body) throw e.abort(), typeof globalThis.navigator < "u" && globalThis.navigator.product === "ReactNative" ? new B("The default react-native fetch implementation does not support streaming. Please use expo/fetch: https://docs.e - Network accessline 9972
throw e.abort(), typeof globalThis.navigator < "u" && globalThis.navigator.product === "ReactNative" ? new B("The default react-native fetch implementation does not support streaming. Please use expo/fetch: https://docs.expo.dev/versions/la
templates/copilot-felo/.agents/skills/felo-search/README.md
- Access to secretsline 35
[Credential-related source omitted] - Network accessline 37
**取得方式:** 到 [felo.ai](https://felo.ai) → **Settings** → **API Keys** 申請取得。 - Network accessline 59
來源: - 中央氣象署 (https://www.cwa.gov.tw) - Network accessline 60
- 中央氣象署 (https://www.cwa.gov.tw) - Network accessline 61
- Weather.com (https://weather.com) - Network accessline 68
- 🌐 最適合查詢**即時性、時效性**的資訊 - 📡 需要網路連線才能使用 - 🔑 如果 API Key 失效,請到 [felo.ai](https://felo.ai) 重新產生 - Network accessline 70
- 🔑 如果 API Key 失效,請到 [felo.ai](https://felo.ai) 重新產生 - Network accessline 74
- 技術細節請參考 [SKILL.md](./SKILL.md) - [Felo Open Platform](https://openapi.felo.ai) - Network accessline 75
- [Felo Open Platform](https://openapi.felo.ai) - Network accessline 76
- [Felo API 文件](https://openapi.felo.ai/docs) - Network accessline 77
- [申請 API Key](https://felo.ai)
templates/copilot-felo/.agents/skills/felo-search/SKILL.md
- Network accessline 38
1. Visit [felo.ai](https://felo.ai) and log in (or register) - Access to secretsline 46
[Credential-related source omitted] - Access to secretsline 50
[Credential-related source omitted] - Access to secretsline 55
[Credential-related source omitted] - Access to secretsline 60
[Credential-related source omitted] - Access to secretsline 162
[Credential-related source omitted] - Access to secretsline 173
[Credential-related source omitted] - Network accessline 180
1. Get your API key from https://felo.ai (Settings → API Keys) - Access to secretsline 184
[Credential-related source omitted] - Access to secretsline 187
[Credential-related source omitted] - Network accessline 194
**Endpoint:** `https://openapi.felo.ai/v2/chat` - Access to secretsline 196
[Credential-related source omitted] - Network accessline 226
- [Felo Open Platform Documentation](https://openapi.felo.ai) - Network accessline 227
- [Get API Key](https://felo.ai) (Settings → API Keys) - Network accessline 228
- [API Reference](https://openapi.felo.ai/docs)
templates/copilot-felo/.agents/skills/felo-search/scripts/search.sh
- Executable scriptline 1
#!/bin/bash - Network accessline 5
if ! command -v curl &> /dev/null; then - Network accessline 6
echo "ERROR: curl is required but not installed" - Access to secretsline 11
[Credential-related source omitted] - Access to secretsline 12
[Credential-related source omitted] - Network accessline 14
echo "To use this skill, you need to set up your Felo API Key:" echo "" echo "1. Get your API key from https://felo.ai (Settings → API Keys)" - Network accessline 15
echo "" echo "1. Get your API key from https://felo.ai (Settings → API Keys)" echo "2. Set the environment variable:" - Network accessline 16
echo "1. Get your API key from https://felo.ai (Settings → API Keys)" - Access to secretsline 20
[Credential-related source omitted] - Access to secretsline 23
[Credential-related source omitted] - Access to secretsline 26
[Credential-related source omitted] - Network accessline 46
[Credential-related source omitted] - Access to secretsline 46
[Credential-related source omitted] - Access to secretsline 47
[Credential-related source omitted]
templates/copilot-felo/.agents/skills/felo-slides/README.md
- Network accessline 24
| 設定項目 | 說明 | | --- | --- | | `FELO_API_KEY` | Felo 平台的 API 金鑰,可到 [felo.ai](https://felo.ai) 申請 | - Network accessline 26
[Credential-related source omitted] - Access to secretsline 26
[Credential-related source omitted] - Network accessline 42
✅ 簡報產生完成! 🔗 https://ppt.felo.ai/share/abc123xyz - Network accessline 43
🔗 https://ppt.felo.ai/share/abc123xyz - Access to secretsline 53
[Credential-related source omitted] - Network accessline 57
- 技術細節請參考 [SKILL.md](SKILL.md) - [Felo PPT Task API 文件](https://openapi.felo.ai/docs/api-reference/v2/ppt-tasks.html) - Network accessline 58
- [Felo PPT Task API 文件](https://openapi.felo.ai/docs/api-reference/v2/ppt-tasks.html) - Network accessline 59
- [Felo 開放平台](https://openapi.felo.ai/docs/)
templates/copilot-felo/.agents/skills/felo-slides/SKILL.md
- Network accessline 33
1. Visit [felo.ai](https://felo.ai) - Access to secretsline 42
[Credential-related source omitted] - Access to secretsline 48
[Credential-related source omitted] - Access to secretsline 58
[Credential-related source omitted] - Access to secretsline 59
[Credential-related source omitted] - Network accessline 80
- Creates task via `POST https://openapi.felo.ai/v2/ppts` - Network accessline 81
- Polls via `GET https://openapi.felo.ai/v2/tasks/{task_id}/historical` - Access to secretsline 147
[Credential-related source omitted] - Network accessline 166
- [Felo PPT Task API](https://openapi.felo.ai/docs/api-reference/v2/ppt-tasks.html) - Network accessline 167
- [Felo Open Platform](https://openapi.felo.ai/docs/)
templates/copilot-felo/.agents/skills/felo-slides/scripts/run_ppt_task.mjs
- Executable scriptline 1
#!/usr/bin/env node - Network accessline 3
const DEFAULT_API_BASE = 'https://openapi.felo.ai'; - Network accessline 95
const timer = setTimeout(() => controller.abort(), timeoutMs); try { const res = await fetch(url, { ...init, signal: controller.signal }); - Network accessline 96
try { const res = await fetch(url, { ...init, signal: controller.signal }); let body = {}; - Network accessline 97
const res = await fetch(url, { ...init, signal: controller.signal }); - Network accessline 120
historicalData?.live_doc_url || (historicalData?.live_doc_short_id || historicalData?.livedoc_short_id || createData?.livedoc_short_id ? `https://felo.ai/livedoc/${historicalData?.live_doc_short_id || historicalData?.livedoc_short - Network accessline 121
(historicalData?.live_doc_short_id || historicalData?.livedoc_short_id || createData?.livedoc_short_id ? `https://felo.ai/livedoc/${historicalData?.live_doc_short_id || historicalData?.livedoc_short_id || createData?.livedoc_short_id} - Network accessline 122
? `https://felo.ai/livedoc/${historicalData?.live_doc_short_id || historicalData?.livedoc_short_id || createData?.livedoc_short_id}` - Access to secretsline 178
[Credential-related source omitted] - Access to secretsline 180
[Credential-related source omitted]
templates/copilot-felo/.agents/skills/felo-web-fetch/README.md
- Network accessline 1
# 🛠<U+FE0F> Felo Web Fetch(網頁內容擷取) - Network accessline 25
| 設定項目 | 說明 | | --- | --- | | `FELO_API_KEY` | Felo 平台的 API 金鑰,可到 [felo.ai](https://felo.ai) 申請 | - Network accessline 27
[Credential-related source omitted] - Access to secretsline 27
[Credential-related source omitted] - Network accessline 32
幫我把這個網頁的內容抓下來轉成 Markdown:https://example.com/article - Network accessline 33
擷取這篇文章的純文字內容:https://news.example.com/today - Network accessline 35
抓取 https://blog.example.com 的文章內容,只要 <article> 區塊的部分 - Access to secretsline 60
[Credential-related source omitted] - Network accessline 64
- 技術細節請參考 [SKILL.md](SKILL.md) - [Felo Web Extract API 文件](https://openapi.felo.ai/docs/api-reference/v2/web-extract.html) - Network accessline 65
- [Felo Web Extract API 文件](https://openapi.felo.ai/docs/api-reference/v2/web-extract.html) - Network accessline 66
- [Felo 開放平台](https://openapi.felo.ai/docs/)
templates/copilot-felo/.agents/skills/felo-web-fetch/SKILL.md
- Network accessline 35
1. Visit [felo.ai](https://felo.ai) - Access to secretsline 43
[Credential-related source omitted] - Access to secretsline 48
[Credential-related source omitted] - Network accessline 58
node .agents/skills/felo-web-fetch/scripts/run_web_fetch.mjs --url "https://example.com/article" [options] - Network accessline 64
felo web-fetch -u "https://example.com" [options] - Network accessline 104
# Basic: fetch as Markdown node .agents/skills/felo-web-fetch/scripts/run_web_fetch.mjs --url "https://example.com" --output-format markdown - Network accessline 105
node .agents/skills/felo-web-fetch/scripts/run_web_fetch.mjs --url "https://example.com" --output-format markdown - Network accessline 107
# Article-style with readability node .agents/skills/felo-web-fetch/scripts/run_web_fetch.mjs --url "https://example.com/article" --with-readability true --output-format markdown - Network accessline 108
node .agents/skills/felo-web-fetch/scripts/run_web_fetch.mjs --url "https://example.com/article" --with-readability true --output-format markdown - Network accessline 110
# Only the element matching a CSS selector node .agents/skills/felo-web-fetch/scripts/run_web_fetch.mjs --url "https://example.com" --target-selector "article.main" --output-format markdown - Network accessline 111
node .agents/skills/felo-web-fetch/scripts/run_web_fetch.mjs --url "https://example.com" --target-selector "article.main" --output-format markdown - Network accessline 113
# With cookies and custom user-agent node .agents/skills/felo-web-fetch/scripts/run_web_fetch.mjs --url "https://example.com/private" --cookie "session_id=abc123" --with-readability true --json - Network accessline 114
node .agents/skills/felo-web-fetch/scripts/run_web_fetch.mjs --url "https://example.com/private" --cookie "session_id=abc123" --with-readability true --json - Network accessline 116
# Full JSON response node .agents/skills/felo-web-fetch/scripts/run_web_fetch.mjs --url "https://example.com" --output-format text --json - Network accessline 117
node .agents/skills/felo-web-fetch/scripts/run_web_fetch.mjs --url "https://example.com" --output-format text --json - Network accessline 123
[Credential-related source omitted] - Access to secretsline 123
[Credential-related source omitted] - Network accessline 124
[Credential-related source omitted] - Access to secretsline 124
[Credential-related source omitted] - Network accessline 126
-d '{"url": "https://example.com", "output_format": "markdown", "with_readability": true}' - Network accessline 131
- **Endpoint**: `POST /v2/web/extract` - **Base URL**: `https://openapi.felo.ai`. Override with `FELO_API_BASE` env if needed. - Network accessline 132
- **Base URL**: `https://openapi.felo.ai`. Override with `FELO_API_BASE` env if needed. - Access to secretsline 133
[Credential-related source omitted] - Access to secretsline 173
[Credential-related source omitted] - Network accessline 204
- [Web Extract API](https://openapi.felo.ai/docs/api-reference/v2/web-extract.html) - Network accessline 205
- [Felo Open Platform](https://openapi.felo.ai/docs/)
templates/copilot-felo/.agents/skills/felo-web-fetch/scripts/run_web_fetch.mjs
- Executable scriptline 1
#!/usr/bin/env node - Network accessline 3
const DEFAULT_API_BASE = 'https://openapi.felo.ai'; - Network accessline 194
const timer = setTimeout(() => controller.abort(), timeoutMs); try { const res = await fetch(url, { ...init, signal: controller.signal }); - Network accessline 195
try { const res = await fetch(url, { ...init, signal: controller.signal }); let body = {}; - Network accessline 196
const res = await fetch(url, { ...init, signal: controller.signal }); - Access to secretsline 269
[Credential-related source omitted] - Access to secretsline 271
[Credential-related source omitted]
templates/copilot-felo/.agents/skills/felo-x-search/README.md
- Network accessline 25
| 設定項目 | 說明 | | --- | --- | | `FELO_API_KEY` | Felo 平台的 API 金鑰,可到 [felo.ai](https://felo.ai) 申請 | - Network accessline 27
[Credential-related source omitted] - Access to secretsline 27
[Credential-related source omitted] - Network accessline 33
查一下 @OpenAI 這個帳號的資料和最近發了什麼文 找找看 X 上有哪些人在討論台灣的科技新創 幫我看這則推文底下的回覆:https://x.com/xxx/status/1234567890 - Network accessline 34
找找看 X 上有哪些人在討論台灣的科技新創 幫我看這則推文底下的回覆:https://x.com/xxx/status/1234567890 搜尋這週 X 上關於 AI 法規的討論 - Network accessline 35
幫我看這則推文底下的回覆:https://x.com/xxx/status/1234567890 - Access to secretsline 62
[Credential-related source omitted] - Network accessline 66
- 技術細節請參考 [SKILL.md](SKILL.md) - [Felo X Search API 文件](https://openapi.felo.ai/docs/api-reference/v2/x-search.html) - Network accessline 67
- [Felo X Search API 文件](https://openapi.felo.ai/docs/api-reference/v2/x-search.html) - Network accessline 68
- [Felo 開放平台](https://openapi.felo.ai/docs/)
templates/copilot-felo/.agents/skills/felo-x-search/SKILL.md
- Network accessline 36
1. Visit [felo.ai](https://felo.ai) - Access to secretsline 45
[Credential-related source omitted] - Access to secretsline 51
[Credential-related source omitted] - Network accessline 111
# Search tweets curl -X POST "https://openapi.felo.ai/v2/x/tweet/search" \ - Network accessline 112
[Credential-related source omitted] - Access to secretsline 112
[Credential-related source omitted] - Access to secretsline 113
[Credential-related source omitted] - Network accessline 117
# Search users curl -X POST "https://openapi.felo.ai/v2/x/user/search" \ - Network accessline 118
[Credential-related source omitted] - Access to secretsline 118
[Credential-related source omitted] - Access to secretsline 119
[Credential-related source omitted] - Network accessline 123
# Get user info curl -X POST "https://openapi.felo.ai/v2/x/user/info" \ - Network accessline 124
[Credential-related source omitted] - Access to secretsline 124
[Credential-related source omitted] - Access to secretsline 125
[Credential-related source omitted] - Network accessline 129
# Get user tweets curl -X POST "https://openapi.felo.ai/v2/x/user/tweets" \ - Network accessline 130
[Credential-related source omitted] - Access to secretsline 130
[Credential-related source omitted] - Access to secretsline 131
[Credential-related source omitted] - Network accessline 135
# Get tweet replies curl -X POST "https://openapi.felo.ai/v2/x/tweet/replies" \ - Network accessline 136
[Credential-related source omitted] - Access to secretsline 136
[Credential-related source omitted] - Access to secretsline 137
[Credential-related source omitted] - Access to secretsline 176
[Credential-related source omitted] - Access to secretsline 181
[Credential-related source omitted] - Network accessline 185
- **Base URL**: `https://openapi.felo.ai`. Override with `FELO_API_BASE` env if needed. - Access to secretsline 186
[Credential-related source omitted] - Access to secretsline 197
[Credential-related source omitted] - Network accessline 204
- [Felo X Search API](https://openapi.felo.ai/docs/api-reference/v2/x-search.html) - Network accessline 205
- [Felo Open Platform](https://openapi.felo.ai/docs/)
templates/copilot-felo/.agents/skills/felo-x-search/clawhub.json
- Network accessline 8
"license": "MIT", "pricing": "free", "support_url": "https://github.com/Felo-Inc/felo-skills/issues", - Network accessline 9
"pricing": "free", "support_url": "https://github.com/Felo-Inc/felo-skills/issues", "homepage": "https://github.com/Felo-Inc/felo-skills" - Network accessline 10
"support_url": "https://github.com/Felo-Inc/felo-skills/issues", - Network accessline 11
"homepage": "https://github.com/Felo-Inc/felo-skills"
templates/copilot-felo/.agents/skills/felo-x-search/scripts/run_x_search.mjs
- Executable scriptline 1
#!/usr/bin/env node - Network accessline 3
const DEFAULT_API_BASE = 'https://openapi.felo.ai'; - Network accessline 40
const timer = setTimeout(() => controller.abort(), timeoutMs); try { const res = await fetch(url, { ...init, signal: controller.signal }); - Network accessline 41
try { const res = await fetch(url, { ...init, signal: controller.signal }); if (res.status >= 500 && attempt < MAX_RETRIES) { - Network accessline 42
const res = await fetch(url, { ...init, signal: controller.signal }); - Network accessline 104
const base = validUsername ? `https://x.com/${username.trim()}/status/${id.trim()}` - Network accessline 105
? `https://x.com/${username.trim()}/status/${id.trim()}` - Network accessline 106
: `https://x.com/i/web/status/${id.trim()}`; - Access to secretsline 275
[Credential-related source omitted] - Access to secretsline 277
[Credential-related source omitted]
templates/copilot-gemini-api/.agents/skills/gemini-audio-transcriber/README.md
templates/copilot-gemini-api/.agents/skills/gemini-audio-transcriber/SKILL.md
- Access to secretsline 12
[Credential-related source omitted] - Network accessline 30
[Credential-related source omitted] - Access to secretsline 30
[Credential-related source omitted] - Access to secretsline 36
[Credential-related source omitted] - Access to secretsline 43
[Credential-related source omitted] - Network accessline 53
AUDIO_TRANSCRIBER_DRY_RUN=1 node .agents/skills/gemini-audio-transcriber/scripts/transcribe.js "https://example.com/test.mp3" - Access to secretsline 79
[Credential-related source omitted] - Access to secretsline 98
[Credential-related source omitted]
templates/copilot-gemini-api/.agents/skills/gemini-audio-transcriber/package.json
- Executable scriptline 1
Executable file
templates/copilot-gemini-api/.agents/skills/gemini-audio-transcriber/scripts/transcribe.js
- Executable scriptline 1
#!/usr/bin/env node - Possible obfuscationline 2
import{createRequire as hq}from"node:module";var Lq=Object.create;var{getPrototypeOf:Cq,defineProperty:LQ,getOwnPropertyNames:Oq}=Object;var Sq=Object.prototype.hasOwnProperty;function Eq($){return this[$]}var jq,_q,m4=($,Z,Q)=>{var Y=$!=nu - Possible obfuscationline 3
[Credential-related source omitted] - Access to secretsline 3
[Credential-related source omitted] - Possible obfuscationline 4
`).join( `+X),$.push(J+"m+"+C$.exports.humanize(this.diff)+"\x1B[0m")}else $[0]=BM()+Z+" "+$[0]}function BM(){if(W7.inspectOpts.hideDate)return"";return new Date().toISOString()+" "}function TM(...$){return process.stderr.write(L$.formatWit - Possible obfuscationline 7
`).map((Z)=>Z.trim()).join(" ")};z7.O=function($){return this.inspectOpts.colors=this.useColors,L$.inspect($,this.inspectOpts)}});var hQ=p((AE,xQ)=>{if(typeof process>"u"||process.type==="renderer"||!1||process.__nwjs)xQ.exports=K7();else x - Possible obfuscationline 8
`).some((Q)=>Q.indexOf("(https.js:")!==-1||Q.indexOf("node:https:")!==-1)}incrementSockets($){if(this.maxSockets===1/0&&this.maxTotalSockets===1/0)return null;if(!this.sockets[$])this.sockets[$]=[];let Z=new bM.Socket({writable:!1});return - Possible obfuscationline 11
`),T=I.shift();if(!T)return $.destroy(),Q(Error("No header received from proxy CONNECT response"));let B=T.split(" "),R=+B[1],C=B.slice(2).join(" "),k={};for(let b of I){if(!b)continue;let u=b.indexOf(":");if(u===-1)return $.destroy(),Q(Err - Possible obfuscationline 14
`);let{connect:G,buffered:F}=await H;if($.emit("proxyConnect",G),this.emit("proxyConnect",G,$),G.statusCode===200){if($.once("socket",tM),Z.secureEndpoint)return D6("Upgrading socket connection to TLS"),T7.connect({...P7(A7(Z),"host","path" - Network accessline 22
`,X,`\r `)),Y.push(`--${Q}--`),new Z(Y,{type:"multipart/form-data; boundary="+Q})}var w6,YD,JD,h7,XD,y7=($,Z,Q)=>($+="",/^(Blob|File)$/.test(Z&&Z[w6])?[(Q=Q!==void 0?Q+"":Z[w6]=="File"?Z.name:"blob",$),Z.name!==Q||Z[w6]=="blob"?new w8([Z],Q - Network accessline 23
`)),Y.push(`--${Q}--`),new Z(Y,{type:"multipart/form-data; boundary="+Q})}var w6,YD,JD,h7,XD,y7=($,Z,Q)=>($+="",/^(Blob|File)$/.test(Z&&Z[w6])?[(Q=Q!==void 0?Q+"":Z[w6]=="File"?Z.name:"blob",$),Z.name!==Q||Z[w6]=="blob"?new w8([Z],Q,Z):Z]:[ - Network accessline 24
`)).replace(/\n/g,"%0A").replace(/\r/g,"%0D").replace(/"/g,"%22"),c8=($,Z,Q)=>{if(Z.length<Q)throw TypeError(`Failed to execute '${$}' on 'FormData': ${Q} arguments required, but only ${Z.length} present.`)},I8;var j$=k0(()=>{U6();fQ();/*! - Possible obfuscationline 24
`)).replace(/\n/g,"%0A").replace(/\r/g,"%0D").replace(/"/g,"%22"),c8=($,Z,Q)=>{if(Z.length<Q)throw TypeError(`Failed to execute '${$}' on 'FormData': ${Q} arguments required, but only ${Z.length} present.`)},I8;var j$=k0(()=>{U6();fQ();/*! - Possible obfuscationline 25
[Credential-related source omitted] - Network accessline 26
\r `),Y=!1,J=!1,X;$.on("response",(K)=>{let{headers:H}=K;Y=H["transfer-encoding"]==="chunked"&&!H["content-length"]}),$.on("socket",(K)=>{let H=()=>{if(Y&&!J){let F=Error("Premature close");F.code="ERR_STREAM_PREMATURE_CLOSE",Z(F)}},G=(F)=> - Network accessline 27
`),Y=!1,J=!1,X;$.on("response",(K)=>{let{headers:H}=K;Y=H["transfer-encoding"]==="chunked"&&!H["content-length"]}),$.on("socket",(K)=>{let H=()=>{if(Y&&!J){let F=Error("Premature close");F.code="ERR_STREAM_PREMATURE_CLOSE",Z(F)}},G=(F)=>{if - Possible obfuscationline 27
`),Y=!1,J=!1,X;$.on("response",(K)=>{let{headers:H}=K;Y=H["transfer-encoding"]==="chunked"&&!H["content-length"]}),$.on("socket",(K)=>{let H=()=>{if(Y&&!J){let F=Error("Premature close");F.code="ERR_STREAM_PREMATURE_CLOSE",Z(F)}},G=(F)=>{if - Possible obfuscationline 31
`}yield Q}static#X;static#V;static async#K(){return this.#X||=(await Promise.resolve().then(() => m4(C7()))).HttpsProxyAgent,this.#X}static async#z(){let $=typeof window<"u"&&!!window;return this.#V||=$?window.fetch:(await Promise.resolve() - Possible obfuscationline 36
`+Y)+ `+B+"}":"{"+R.join(",")+"}",Y=B,I}}if(typeof OX.stringify!=="function")OX.stringify=function(F,q,D){var w;if(Y="",J="",typeof D==="number")for(w=0;w<D;w+=1)J+=" ";else if(typeof D==="string")J=D;if(K=q,q&&typeof q!=="function"&&(typeo - Possible obfuscationline 37
`+B+"}":"{"+R.join(",")+"}",Y=B,I}}if(typeof OX.stringify!=="function")OX.stringify=function(F,q,D){var w;if(Y="",J="",typeof D==="number")for(w=0;w<D;w+=1)J+=" ";else if(typeof D==="string")J=D;if(K=q,q&&typeof q!=="function"&&(typeof q!== - Possible obfuscationline 38
[Credential-related source omitted] - Possible obfuscationline 40
[Credential-related source omitted] - Network accessline 47
${X} ${I} `+await $.crypto.sha256DigestHex(w),B=await jN($.crypto,$.securityCredentials.secretAccessKey,K,$.region,Y),R=await x6($.crypto,B,T),C=`${kz} Credential=${$.securityCredentials.accessKeyId}/${I}, SignedHeaders=${q}, Signature=${(0 - Network accessline 48
${I} `+await $.crypto.sha256DigestHex(w),B=await jN($.crypto,$.securityCredentials.secretAccessKey,K,$.region,Y),R=await x6($.crypto,B,T),C=`${kz} Credential=${$.securityCredentials.accessKeyId}/${I}, SignedHeaders=${q}, Signature=${(0,mz.f - Network accessline 49
[Credential-related source omitted] - Possible obfuscationline 49
[Credential-related source omitted] - Access to secretsline 49
[Credential-related source omitted] - Network accessline 50
To learn more about authentication and Google APIs, visit: https://cloud.google.com/docs/authentication/getting-started`,NO_CREDENTIALS_FOUND:`Unable to find credentials in current environment. To learn more about authentication and Googl - Network accessline 51
https://cloud.google.com/docs/authentication/getting-started`,NO_CREDENTIALS_FOUND:`Unable to find credentials in current environment. - Network accessline 52
To learn more about authentication and Google APIs, visit: https://cloud.google.com/docs/authentication/getting-started`,NO_ADC_FOUND:"Could not load the default credentials. Browse to https://cloud.google.com/docs/authentication/getting-s - Network accessline 53
https://cloud.google.com/docs/authentication/getting-started`,NO_ADC_FOUND:"Could not load the default credentials. Browse to https://cloud.google.com/docs/authentication/getting-started for more information.",NO_UNIVERSE_DOMAIN_FOUND:`Unab - Network accessline 54
To learn more about Universe Domain retrieval, visit: https://cloud.google.com/compute/docs/metadata/predefined-metadata-keys`};class B3{checkIsGCE=void 0;useJWTAccessWithScope;defaultServicePath;get isGCE(){return this.checkIsGCE}_findPro - Network accessline 55
[Credential-related source omitted] - Possible obfuscationline 55
[Credential-related source omitted] - Possible obfuscationline 61
[Credential-related source omitted] - Network accessline 63
`,"\r\r",`\r \r `];while(!0){let{done:G,value:F}=yield K0(Y.read());if(G){if(X.trim().length>0)throw Error("Incomplete JSON segment at the end");break}let q=J.decode(F,{stream:!0});try{let I=JSON.parse(q);if("error"in I){let T=JSON.parse(JS - Network accessline 64
\r `];while(!0){let{done:G,value:F}=yield K0(Y.read());if(G){if(X.trim().length>0)throw Error("Incomplete JSON segment at the end");break}let q=J.decode(F,{stream:!0});try{let I=JSON.parse(q);if("error"in I){let T=JSON.parse(JSON.stringify( - Network accessline 65
[Credential-related source omitted] - Possible obfuscationline 65
[Credential-related source omitted] - Possible obfuscationline 69
${D}`)}return K},vZ=DS(R2);class PY extends AY{create($,Z){var Q;let{api_version:Y=this._client.apiVersion}=$,J=dZ($,["api_version"]);if("model"in J&&"agent_config"in J)throw new G4("Invalid request: specified `model` and `agent_config`. If - Network accessline 70
`)}}r6.NEWLINE_CHARS=new Set([` `,"\r"]);r6.NEWLINE_REGEXP=/\r\n|[\n\r]/g;function wS($,Z){let J=Z!==null&&Z!==void 0?Z:0,X=$.indexOf(10,J),K=$.indexOf(13,J);if(X===-1&&K===-1)return null;let H;if(X!==-1&&K!==-1)H=Math.min(X,K);else H=X!==- - Network accessline 71
`,"\r"]);r6.NEWLINE_REGEXP=/\r\n|[\n\r]/g;function wS($,Z){let J=Z!==null&&Z!==void 0?Z:0,X=$.indexOf(10,J),K=$.indexOf(13,J);if(X===-1&&K===-1)return null;let H;if(X!==-1&&K!==-1)H=Math.min(X,K);else H=X!==-1?X:K;if($[H]===10)return{preced - Possible obfuscationline 71
`,"\r"]);r6.NEWLINE_REGEXP=/\r\n|[\n\r]/g;function wS($,Z){let J=Z!==null&&Z!==void 0?Z:0,X=$.indexOf(10,J),K=$.indexOf(13,J);if(X===-1&&K===-1)return null;let H;if(X!==-1&&K!==-1)H=Math.min(X,K);else H=X!==-1?X:K;if($[H]===10)return{preced - Network accessline 72
`);Q.enqueue(X)}catch(Y){Q.error(Y)}},async cancel(){var Q;await((Q=Z.return)===null||Q===void 0?void 0:Q.call(Z))}})}}function NS($,Z){return _4(this,arguments,function*(){var Y,J,X,K;if(!$.body){if(Z.abort(),typeof globalThis.navigator<"u - Possible obfuscationline 72
`);Q.enqueue(X)}catch(Y){Q.error(Y)}},async cancel(){var Q;await((Q=Z.return)===null||Q===void 0?void 0:Q.call(Z))}})}}function NS($,Z){return _4(this,arguments,function*(){var Y,J,X,K;if(!$.body){if(Z.abort(),typeof globalThis.navigator<"u - Network accessline 73
[Credential-related source omitted] - Possible obfuscationline 73
[Credential-related source omitted] - Access to secretsline 73
[Credential-related source omitted] - Access to secretsline 74
[Credential-related source omitted]
templates/copilot-gemini-api/.agents/skills/gemini-audio-transcriber/src/transcribe.js
- Executable scriptline 1
#!/usr/bin/env node - Access to secretsline 12
[Credential-related source omitted] - Network accessline 34
console.error("範例:"); console.error( ' node scripts/transcribe.js "https://example.com/audio/meeting.mp3"' - Network accessline 35
console.error( ' node scripts/transcribe.js "https://example.com/audio/meeting.mp3"' ); - Network accessline 36
' node scripts/transcribe.js "https://example.com/audio/meeting.mp3"' - Access to secretsline 140
[Credential-related source omitted] - Access to secretsline 142
[Credential-related source omitted] - Access to secretsline 143
[Credential-related source omitted]
templates/copilot-gemini-api/.agents/skills/gemini-deep-researcher/README.md
templates/copilot-gemini-api/.agents/skills/gemini-deep-researcher/SKILL.md
- Access to secretsline 13
[Credential-related source omitted]
templates/copilot-gemini-api/.agents/skills/gemini-deep-researcher/package.json
- Executable scriptline 1
Executable file
templates/copilot-gemini-api/.agents/skills/gemini-deep-researcher/scripts/research.js
- Possible obfuscationline 1
import{createRequire as hq}from"node:module";var Lq=Object.create;var{getPrototypeOf:Cq,defineProperty:LQ,getOwnPropertyNames:Oq}=Object;var Sq=Object.prototype.hasOwnProperty;function jq($){return this[$]}var Eq,_q,m4=($,Z,Q)=>{var Y=$!=nu - Executable scriptline 1
Executable file - Possible obfuscationline 2
[Credential-related source omitted] - Access to secretsline 2
[Credential-related source omitted] - Possible obfuscationline 3
`).join( `+X),$.push(J+"m+"+C$.exports.humanize(this.diff)+"\x1B[0m")}else $[0]=BM()+Z+" "+$[0]}function BM(){if(W7.inspectOpts.hideDate)return"";return new Date().toISOString()+" "}function TM(...$){return process.stderr.write(L$.formatWit - Possible obfuscationline 6
`).map((Z)=>Z.trim()).join(" ")};z7.O=function($){return this.inspectOpts.colors=this.useColors,L$.inspect($,this.inspectOpts)}});var hQ=p((Ij,xQ)=>{if(typeof process>"u"||process.type==="renderer"||!1||process.__nwjs)xQ.exports=K7();else x - Possible obfuscationline 7
`).some((Q)=>Q.indexOf("(https.js:")!==-1||Q.indexOf("node:https:")!==-1)}incrementSockets($){if(this.maxSockets===1/0&&this.maxTotalSockets===1/0)return null;if(!this.sockets[$])this.sockets[$]=[];let Z=new bM.Socket({writable:!1});return - Possible obfuscationline 10
`),T=I.shift();if(!T)return $.destroy(),Q(Error("No header received from proxy CONNECT response"));let B=T.split(" "),R=+B[1],C=B.slice(2).join(" "),k={};for(let b of I){if(!b)continue;let u=b.indexOf(":");if(u===-1)return $.destroy(),Q(Err - Possible obfuscationline 13
`);let{connect:G,buffered:F}=await H;if($.emit("proxyConnect",G),this.emit("proxyConnect",G,$),G.statusCode===200){if($.once("socket",tM),Z.secureEndpoint)return D6("Upgrading socket connection to TLS"),T7.connect({...A7(P7(Z),"host","path" - Network accessline 21
`,X,`\r `)),Y.push(`--${Q}--`),new Z(Y,{type:"multipart/form-data; boundary="+Q})}var w6,YD,JD,h7,XD,y7=($,Z,Q)=>($+="",/^(Blob|File)$/.test(Z&&Z[w6])?[(Q=Q!==void 0?Q+"":Z[w6]=="File"?Z.name:"blob",$),Z.name!==Q||Z[w6]=="blob"?new w8([Z],Q - Network accessline 22
`)),Y.push(`--${Q}--`),new Z(Y,{type:"multipart/form-data; boundary="+Q})}var w6,YD,JD,h7,XD,y7=($,Z,Q)=>($+="",/^(Blob|File)$/.test(Z&&Z[w6])?[(Q=Q!==void 0?Q+"":Z[w6]=="File"?Z.name:"blob",$),Z.name!==Q||Z[w6]=="blob"?new w8([Z],Q,Z):Z]:[ - Network accessline 23
`)).replace(/\n/g,"%0A").replace(/\r/g,"%0D").replace(/"/g,"%22"),c8=($,Z,Q)=>{if(Z.length<Q)throw TypeError(`Failed to execute '${$}' on 'FormData': ${Q} arguments required, but only ${Z.length} present.`)},I8;var E$=k0(()=>{U6();fQ();/*! - Possible obfuscationline 23
`)).replace(/\n/g,"%0A").replace(/\r/g,"%0D").replace(/"/g,"%22"),c8=($,Z,Q)=>{if(Z.length<Q)throw TypeError(`Failed to execute '${$}' on 'FormData': ${Q} arguments required, but only ${Z.length} present.`)},I8;var E$=k0(()=>{U6();fQ();/*! - Possible obfuscationline 24
[Credential-related source omitted] - Network accessline 25
\r `),Y=!1,J=!1,X;$.on("response",(K)=>{let{headers:H}=K;Y=H["transfer-encoding"]==="chunked"&&!H["content-length"]}),$.on("socket",(K)=>{let H=()=>{if(Y&&!J){let F=Error("Premature close");F.code="ERR_STREAM_PREMATURE_CLOSE",Z(F)}},G=(F)=> - Network accessline 26
`),Y=!1,J=!1,X;$.on("response",(K)=>{let{headers:H}=K;Y=H["transfer-encoding"]==="chunked"&&!H["content-length"]}),$.on("socket",(K)=>{let H=()=>{if(Y&&!J){let F=Error("Premature close");F.code="ERR_STREAM_PREMATURE_CLOSE",Z(F)}},G=(F)=>{if - Possible obfuscationline 26
`),Y=!1,J=!1,X;$.on("response",(K)=>{let{headers:H}=K;Y=H["transfer-encoding"]==="chunked"&&!H["content-length"]}),$.on("socket",(K)=>{let H=()=>{if(Y&&!J){let F=Error("Premature close");F.code="ERR_STREAM_PREMATURE_CLOSE",Z(F)}},G=(F)=>{if - Possible obfuscationline 30
`}yield Q}static#X;static#V;static async#K(){return this.#X||=(await Promise.resolve().then(() => m4(C7()))).HttpsProxyAgent,this.#X}static async#z(){let $=typeof window<"u"&&!!window;return this.#V||=$?window.fetch:(await Promise.resolve() - Possible obfuscationline 35
`+Y)+ `+B+"}":"{"+R.join(",")+"}",Y=B,I}}if(typeof OX.stringify!=="function")OX.stringify=function(F,q,D){var w;if(Y="",J="",typeof D==="number")for(w=0;w<D;w+=1)J+=" ";else if(typeof D==="string")J=D;if(K=q,q&&typeof q!=="function"&&(typeo - Possible obfuscationline 36
`+B+"}":"{"+R.join(",")+"}",Y=B,I}}if(typeof OX.stringify!=="function")OX.stringify=function(F,q,D){var w;if(Y="",J="",typeof D==="number")for(w=0;w<D;w+=1)J+=" ";else if(typeof D==="string")J=D;if(K=q,q&&typeof q!=="function"&&(typeof q!== - Possible obfuscationline 37
[Credential-related source omitted] - Possible obfuscationline 39
[Credential-related source omitted] - Network accessline 46
${X} ${I} `+await $.crypto.sha256DigestHex(w),B=await EN($.crypto,$.securityCredentials.secretAccessKey,K,$.region,Y),R=await x6($.crypto,B,T),C=`${kz} Credential=${$.securityCredentials.accessKeyId}/${I}, SignedHeaders=${q}, Signature=${(0 - Network accessline 47
${I} `+await $.crypto.sha256DigestHex(w),B=await EN($.crypto,$.securityCredentials.secretAccessKey,K,$.region,Y),R=await x6($.crypto,B,T),C=`${kz} Credential=${$.securityCredentials.accessKeyId}/${I}, SignedHeaders=${q}, Signature=${(0,mz.f - Network accessline 48
[Credential-related source omitted] - Possible obfuscationline 48
[Credential-related source omitted] - Access to secretsline 48
[Credential-related source omitted] - Network accessline 49
To learn more about authentication and Google APIs, visit: https://cloud.google.com/docs/authentication/getting-started`,NO_CREDENTIALS_FOUND:`Unable to find credentials in current environment. To learn more about authentication and Googl - Network accessline 50
https://cloud.google.com/docs/authentication/getting-started`,NO_CREDENTIALS_FOUND:`Unable to find credentials in current environment. - Network accessline 51
To learn more about authentication and Google APIs, visit: https://cloud.google.com/docs/authentication/getting-started`,NO_ADC_FOUND:"Could not load the default credentials. Browse to https://cloud.google.com/docs/authentication/getting-s - Network accessline 52
https://cloud.google.com/docs/authentication/getting-started`,NO_ADC_FOUND:"Could not load the default credentials. Browse to https://cloud.google.com/docs/authentication/getting-started for more information.",NO_UNIVERSE_DOMAIN_FOUND:`Unab - Network accessline 53
To learn more about Universe Domain retrieval, visit: https://cloud.google.com/compute/docs/metadata/predefined-metadata-keys`};class B3{checkIsGCE=void 0;useJWTAccessWithScope;defaultServicePath;get isGCE(){return this.checkIsGCE}_findPro - Network accessline 54
[Credential-related source omitted] - Possible obfuscationline 54
[Credential-related source omitted] - Possible obfuscationline 60
[Credential-related source omitted] - Network accessline 62
`,"\r\r",`\r \r `];while(!0){let{done:G,value:F}=yield K0(Y.read());if(G){if(X.trim().length>0)throw Error("Incomplete JSON segment at the end");break}let q=J.decode(F,{stream:!0});try{let I=JSON.parse(q);if("error"in I){let T=JSON.parse(JS - Network accessline 63
\r `];while(!0){let{done:G,value:F}=yield K0(Y.read());if(G){if(X.trim().length>0)throw Error("Incomplete JSON segment at the end");break}let q=J.decode(F,{stream:!0});try{let I=JSON.parse(q);if("error"in I){let T=JSON.parse(JSON.stringify( - Network accessline 64
[Credential-related source omitted] - Possible obfuscationline 64
[Credential-related source omitted] - Possible obfuscationline 68
${D}`)}return K},vZ=DS(R2);class AY extends PY{create($,Z){var Q;let{api_version:Y=this._client.apiVersion}=$,J=dZ($,["api_version"]);if("model"in J&&"agent_config"in J)throw new G4("Invalid request: specified `model` and `agent_config`. If - Network accessline 69
`)}}r6.NEWLINE_CHARS=new Set([` `,"\r"]);r6.NEWLINE_REGEXP=/\r\n|[\n\r]/g;function wS($,Z){let J=Z!==null&&Z!==void 0?Z:0,X=$.indexOf(10,J),K=$.indexOf(13,J);if(X===-1&&K===-1)return null;let H;if(X!==-1&&K!==-1)H=Math.min(X,K);else H=X!==- - Network accessline 70
`,"\r"]);r6.NEWLINE_REGEXP=/\r\n|[\n\r]/g;function wS($,Z){let J=Z!==null&&Z!==void 0?Z:0,X=$.indexOf(10,J),K=$.indexOf(13,J);if(X===-1&&K===-1)return null;let H;if(X!==-1&&K!==-1)H=Math.min(X,K);else H=X!==-1?X:K;if($[H]===10)return{preced - Possible obfuscationline 70
`,"\r"]);r6.NEWLINE_REGEXP=/\r\n|[\n\r]/g;function wS($,Z){let J=Z!==null&&Z!==void 0?Z:0,X=$.indexOf(10,J),K=$.indexOf(13,J);if(X===-1&&K===-1)return null;let H;if(X!==-1&&K!==-1)H=Math.min(X,K);else H=X!==-1?X:K;if($[H]===10)return{preced - Network accessline 71
`);Q.enqueue(X)}catch(Y){Q.error(Y)}},async cancel(){var Q;await((Q=Z.return)===null||Q===void 0?void 0:Q.call(Z))}})}}function NS($,Z){return _4(this,arguments,function*(){var Y,J,X,K;if(!$.body){if(Z.abort(),typeof globalThis.navigator<"u - Possible obfuscationline 71
`);Q.enqueue(X)}catch(Y){Q.error(Y)}},async cancel(){var Q;await((Q=Z.return)===null||Q===void 0?void 0:Q.call(Z))}})}}function NS($,Z){return _4(this,arguments,function*(){var Y,J,X,K;if(!$.body){if(Z.abort(),typeof globalThis.navigator<"u - Network accessline 72
[Credential-related source omitted] - Possible obfuscationline 72
[Credential-related source omitted] - Access to secretsline 72
[Credential-related source omitted] - Possible obfuscationline 88
[Credential-related source omitted] - Access to secretsline 88
[Credential-related source omitted] - Access to secretsline 89
[Credential-related source omitted]
templates/copilot-gemini-api/.agents/skills/gemini-deep-researcher/src/research.js
templates/copilot-gemini-api/.agents/skills/gemini-image-describer/README.md
- Access to secretsline 27
[Credential-related source omitted]
templates/copilot-gemini-api/.agents/skills/gemini-image-describer/SKILL.md
- Access to secretsline 12
[Credential-related source omitted] - Network accessline 27
[Credential-related source omitted] - Access to secretsline 27
[Credential-related source omitted] - Access to secretsline 31
[Credential-related source omitted] - Access to secretsline 35
[Credential-related source omitted] - Network accessline 43
IMAGE_DESCRIBER_DRY_RUN=1 node .agents/skills/gemini-image-describer/scripts/describe.js "https://example.com/photo.jpg" - Access to secretsline 61
[Credential-related source omitted] - Access to secretsline 80
[Credential-related source omitted]
templates/copilot-gemini-api/.agents/skills/gemini-image-describer/package.json
- Executable scriptline 1
Executable file
templates/copilot-gemini-api/.agents/skills/gemini-image-describer/scripts/describe.js
- Executable scriptline 1
#!/usr/bin/env node - Possible obfuscationline 2
import{createRequire as bq}from"node:module";var _q=Object.create;var{getPrototypeOf:vq,defineProperty:CQ,getOwnPropertyNames:xq}=Object;var hq=Object.prototype.hasOwnProperty;function yq($){return this[$]}var gq,fq,X4=($,Z,Q)=>{var Y=$!=nu - Possible obfuscationline 3
[Credential-related source omitted] - Access to secretsline 3
[Credential-related source omitted] - Possible obfuscationline 4
`).join( `+X),$.push(J+"m+"+C$.exports.humanize(this.diff)+"\x1B[0m")}else $[0]=CM()+Z+" "+$[0]}function CM(){if(H7.inspectOpts.hideDate)return"";return new Date().toISOString()+" "}function SM(...$){return process.stderr.write(L$.formatWit - Possible obfuscationline 7
`).map((Z)=>Z.trim()).join(" ")};W7.O=function($){return this.inspectOpts.colors=this.useColors,L$.inspect($,this.inspectOpts)}});var yQ=p((fE,hQ)=>{if(typeof process>"u"||process.type==="renderer"||!1||process.__nwjs)hQ.exports=z7();else h - Possible obfuscationline 8
`).some((Q)=>Q.indexOf("(https.js:")!==-1||Q.indexOf("node:https:")!==-1)}incrementSockets($){if(this.maxSockets===1/0&&this.maxTotalSockets===1/0)return null;if(!this.sockets[$])this.sockets[$]=[];let Z=new iM.Socket({writable:!1});return - Possible obfuscationline 11
`),T=I.shift();if(!T)return $.destroy(),Q(Error("No header received from proxy CONNECT response"));let N=T.split(" "),R=+N[1],C=N.slice(2).join(" "),k={};for(let b of I){if(!b)continue;let u=b.indexOf(":");if(u===-1)return $.destroy(),Q(Err - Possible obfuscationline 14
`);let{connect:G,buffered:F}=await H;if($.emit("proxyConnect",G),this.emit("proxyConnect",G,$),G.statusCode===200){if($.once("socket",JD),Z.secureEndpoint)return U6("Upgrading socket connection to TLS"),A7.connect({...R7(P7(Z),"host","path" - Network accessline 22
`,X,`\r `)),Y.push(`--${Q}--`),new Z(Y,{type:"multipart/form-data; boundary="+Q})}var I6,WD,HD,y7,GD,g7=($,Z,Q)=>($+="",/^(Blob|File)$/.test(Z&&Z[I6])?[(Q=Q!==void 0?Q+"":Z[I6]=="File"?Z.name:"blob",$),Z.name!==Q||Z[I6]=="blob"?new w8([Z],Q - Network accessline 23
`)),Y.push(`--${Q}--`),new Z(Y,{type:"multipart/form-data; boundary="+Q})}var I6,WD,HD,y7,GD,g7=($,Z,Q)=>($+="",/^(Blob|File)$/.test(Z&&Z[I6])?[(Q=Q!==void 0?Q+"":Z[I6]=="File"?Z.name:"blob",$),Z.name!==Q||Z[I6]=="blob"?new w8([Z],Q,Z):Z]:[ - Network accessline 24
`)).replace(/\n/g,"%0A").replace(/\r/g,"%0D").replace(/"/g,"%22"),c8=($,Z,Q)=>{if(Z.length<Q)throw TypeError(`Failed to execute '${$}' on 'FormData': ${Q} arguments required, but only ${Z.length} present.`)},I8;var j$=k0(()=>{w6();kQ();/*! - Possible obfuscationline 24
`)).replace(/\n/g,"%0A").replace(/\r/g,"%0D").replace(/"/g,"%22"),c8=($,Z,Q)=>{if(Z.length<Q)throw TypeError(`Failed to execute '${$}' on 'FormData': ${Q} arguments required, but only ${Z.length} present.`)},I8;var j$=k0(()=>{w6();kQ();/*! - Possible obfuscationline 25
[Credential-related source omitted] - Network accessline 26
\r `),Y=!1,J=!1,X;$.on("response",(K)=>{let{headers:H}=K;Y=H["transfer-encoding"]==="chunked"&&!H["content-length"]}),$.on("socket",(K)=>{let H=()=>{if(Y&&!J){let F=Error("Premature close");F.code="ERR_STREAM_PREMATURE_CLOSE",Z(F)}},G=(F)=> - Network accessline 27
`),Y=!1,J=!1,X;$.on("response",(K)=>{let{headers:H}=K;Y=H["transfer-encoding"]==="chunked"&&!H["content-length"]}),$.on("socket",(K)=>{let H=()=>{if(Y&&!J){let F=Error("Premature close");F.code="ERR_STREAM_PREMATURE_CLOSE",Z(F)}},G=(F)=>{if - Possible obfuscationline 27
`),Y=!1,J=!1,X;$.on("response",(K)=>{let{headers:H}=K;Y=H["transfer-encoding"]==="chunked"&&!H["content-length"]}),$.on("socket",(K)=>{let H=()=>{if(Y&&!J){let F=Error("Premature close");F.code="ERR_STREAM_PREMATURE_CLOSE",Z(F)}},G=(F)=>{if - Possible obfuscationline 31
`}yield Q}static#X;static#V;static async#K(){return this.#X||=(await Promise.resolve().then(() => X4(S7()))).HttpsProxyAgent,this.#X}static async#z(){let $=typeof window<"u"&&!!window;return this.#V||=$?window.fetch:(await Promise.resolve() - Possible obfuscationline 36
`+Y)+ `+N+"}":"{"+R.join(",")+"}",Y=N,I}}if(typeof OX.stringify!=="function")OX.stringify=function(F,q,D){var w;if(Y="",J="",typeof D==="number")for(w=0;w<D;w+=1)J+=" ";else if(typeof D==="string")J=D;if(K=q,q&&typeof q!=="function"&&(typeo - Possible obfuscationline 37
`+N+"}":"{"+R.join(",")+"}",Y=N,I}}if(typeof OX.stringify!=="function")OX.stringify=function(F,q,D){var w;if(Y="",J="",typeof D==="number")for(w=0;w<D;w+=1)J+=" ";else if(typeof D==="string")J=D;if(K=q,q&&typeof q!=="function"&&(typeof q!== - Possible obfuscationline 38
[Credential-related source omitted] - Possible obfuscationline 40
[Credential-related source omitted] - Network accessline 47
${X} ${I} `+await $.crypto.sha256DigestHex(w),N=await gN($.crypto,$.securityCredentials.secretAccessKey,K,$.region,Y),R=await h6($.crypto,N,T),C=`${mz} Credential=${$.securityCredentials.accessKeyId}/${I}, SignedHeaders=${q}, Signature=${(0 - Network accessline 48
${I} `+await $.crypto.sha256DigestHex(w),N=await gN($.crypto,$.securityCredentials.secretAccessKey,K,$.region,Y),R=await h6($.crypto,N,T),C=`${mz} Credential=${$.securityCredentials.accessKeyId}/${I}, SignedHeaders=${q}, Signature=${(0,bz.f - Network accessline 49
[Credential-related source omitted] - Possible obfuscationline 49
[Credential-related source omitted] - Access to secretsline 49
[Credential-related source omitted] - Network accessline 50
To learn more about authentication and Google APIs, visit: https://cloud.google.com/docs/authentication/getting-started`,NO_CREDENTIALS_FOUND:`Unable to find credentials in current environment. To learn more about authentication and Googl - Network accessline 51
https://cloud.google.com/docs/authentication/getting-started`,NO_CREDENTIALS_FOUND:`Unable to find credentials in current environment. - Network accessline 52
To learn more about authentication and Google APIs, visit: https://cloud.google.com/docs/authentication/getting-started`,NO_ADC_FOUND:"Could not load the default credentials. Browse to https://cloud.google.com/docs/authentication/getting-s - Network accessline 53
https://cloud.google.com/docs/authentication/getting-started`,NO_ADC_FOUND:"Could not load the default credentials. Browse to https://cloud.google.com/docs/authentication/getting-started for more information.",NO_UNIVERSE_DOMAIN_FOUND:`Unab - Network accessline 54
To learn more about Universe Domain retrieval, visit: https://cloud.google.com/compute/docs/metadata/predefined-metadata-keys`};class T3{checkIsGCE=void 0;useJWTAccessWithScope;defaultServicePath;get isGCE(){return this.checkIsGCE}_findPro - Network accessline 55
[Credential-related source omitted] - Possible obfuscationline 55
[Credential-related source omitted] - Possible obfuscationline 61
[Credential-related source omitted] - Network accessline 63
`,"\r\r",`\r \r `];while(!0){let{done:G,value:F}=yield K0(Y.read());if(G){if(X.trim().length>0)throw Error("Incomplete JSON segment at the end");break}let q=J.decode(F,{stream:!0});try{let I=JSON.parse(q);if("error"in I){let T=JSON.parse(JS - Network accessline 64
\r `];while(!0){let{done:G,value:F}=yield K0(Y.read());if(G){if(X.trim().length>0)throw Error("Incomplete JSON segment at the end");break}let q=J.decode(F,{stream:!0});try{let I=JSON.parse(q);if("error"in I){let T=JSON.parse(JSON.stringify( - Network accessline 65
[Credential-related source omitted] - Possible obfuscationline 65
[Credential-related source omitted] - Possible obfuscationline 69
${D}`)}return K},xZ=jO(j2);class RY extends PY{create($,Z){var Q;let{api_version:Y=this._client.apiVersion}=$,J=lZ($,["api_version"]);if("model"in J&&"agent_config"in J)throw new F4("Invalid request: specified `model` and `agent_config`. If - Network accessline 70
`)}}r6.NEWLINE_CHARS=new Set([` `,"\r"]);r6.NEWLINE_REGEXP=/\r\n|[\n\r]/g;function vO($,Z){let J=Z!==null&&Z!==void 0?Z:0,X=$.indexOf(10,J),K=$.indexOf(13,J);if(X===-1&&K===-1)return null;let H;if(X!==-1&&K!==-1)H=Math.min(X,K);else H=X!==- - Network accessline 71
`,"\r"]);r6.NEWLINE_REGEXP=/\r\n|[\n\r]/g;function vO($,Z){let J=Z!==null&&Z!==void 0?Z:0,X=$.indexOf(10,J),K=$.indexOf(13,J);if(X===-1&&K===-1)return null;let H;if(X!==-1&&K!==-1)H=Math.min(X,K);else H=X!==-1?X:K;if($[H]===10)return{preced - Possible obfuscationline 71
`,"\r"]);r6.NEWLINE_REGEXP=/\r\n|[\n\r]/g;function vO($,Z){let J=Z!==null&&Z!==void 0?Z:0,X=$.indexOf(10,J),K=$.indexOf(13,J);if(X===-1&&K===-1)return null;let H;if(X!==-1&&K!==-1)H=Math.min(X,K);else H=X!==-1?X:K;if($[H]===10)return{preced - Network accessline 72
`);Q.enqueue(X)}catch(Y){Q.error(Y)}},async cancel(){var Q;await((Q=Z.return)===null||Q===void 0?void 0:Q.call(Z))}})}}function hO($,Z){return v4(this,arguments,function*(){var Y,J,X,K;if(!$.body){if(Z.abort(),typeof globalThis.navigator<"u - Possible obfuscationline 72
`);Q.enqueue(X)}catch(Y){Q.error(Y)}},async cancel(){var Q;await((Q=Z.return)===null||Q===void 0?void 0:Q.call(Z))}})}}function hO($,Z){return v4(this,arguments,function*(){var Y,J,X,K;if(!$.body){if(Z.abort(),typeof globalThis.navigator<"u - Network accessline 73
[Credential-related source omitted] - Possible obfuscationline 73
[Credential-related source omitted] - Access to secretsline 73
[Credential-related source omitted] - Access to secretsline 74
[Credential-related source omitted]
templates/copilot-gemini-api/.agents/skills/gemini-image-describer/src/describe.js
- Executable scriptline 1
#!/usr/bin/env node - Access to secretsline 13
[Credential-related source omitted] - Network accessline 34
console.error("範例:"); console.error( ' node scripts/describe.js "https://example.com/photo.jpg"' - Network accessline 35
console.error( ' node scripts/describe.js "https://example.com/photo.jpg"' ); - Network accessline 36
' node scripts/describe.js "https://example.com/photo.jpg"' - Network accessline 100
const timeout = setTimeout(() => controller.abort(), 30_000); try { const res = await fetch(rawInput, { - Network accessline 101
try { const res = await fetch(rawInput, { method: "HEAD", - Network accessline 102
const res = await fetch(rawInput, { - Access to secretsline 164
[Credential-related source omitted] - Access to secretsline 167
[Credential-related source omitted] - Access to secretsline 170
[Credential-related source omitted]
templates/copilot-gemini-api/.agents/skills/gemini-nanobanana/README.md
- Access to secretsline 27
[Credential-related source omitted]
templates/copilot-gemini-api/.agents/skills/gemini-nanobanana/SKILL.md
- Access to secretsline 12
[Credential-related source omitted] - Network accessline 25
- Use [`references\sources.md`](references/sources.md) to verify source provenance and jump to upstream docs. - For canonical API behavior, read: - [Gemini image-generation docs](https://ai.google.dev/gemini-api/docs/image-generation) - Network accessline 26
- For canonical API behavior, read: - [Gemini image-generation docs](https://ai.google.dev/gemini-api/docs/image-generation) - [Aspect ratios and image size](https://ai.google.dev/gemini-api/docs/image-generation#aspect_ratios_and_image - Network accessline 27
- [Gemini image-generation docs](https://ai.google.dev/gemini-api/docs/image-generation) - Network accessline 28
- [Aspect ratios and image size](https://ai.google.dev/gemini-api/docs/image-generation#aspect_ratios_and_image_size) - Network accessline 29
- [Thinking process](https://ai.google.dev/gemini-api/docs/image-generation#thinking-process) - Network accessline 30
- [Grounding with Google Search](https://ai.google.dev/gemini-api/docs/image-generation#use-with-grounding) - Network accessline 31
- [Grounding with Google Image Search](https://ai.google.dev/gemini-api/docs/image-generation#image-search) - Access to secretsline 55
[Credential-related source omitted]
templates/copilot-gemini-api/.agents/skills/gemini-nanobanana/references/image-generation-api.md
- Network accessline 5
- [Build with Nano Banana (Google blog)](https://blog.google/innovation-and-ai/technology/developers-tools/build-with-nano-banana-2/) - Network accessline 6
- [Get Started Nano Banana notebook (Colab)](https://colab.research.google.com/github/google-gemini/cookbook/blob/main/quickstarts/Get_Started_Nano_Banana.ipynb#nano-banana-pro) - Network accessline 7
- [Gemini API image-generation docs](https://ai.google.dev/gemini-api/docs/image-generation) - Network accessline 39
- Blog launch calls out improved world knowledge, better text rendering/localization, new extreme aspect ratios (1:4, 4:1, 1:8, 8:1), and configurable thinking levels for Nano Banana. - Colab quickstart describes practical strengths: charac - Network accessline 41
- Docs confirm all generated images include [SynthID watermarking](https://ai.google.dev/gemini-api/docs/image-generation). - Access to secretsline 51
[Credential-related source omitted] - Network accessline 63
- [Gemini API libraries](https://ai.google.dev/gemini-api/docs/libraries) - Network accessline 64
- [API key setup](https://ai.google.dev/gemini-api/docs/api-key) - Network accessline 65
- [Pricing](https://ai.google.dev/gemini-api/docs/pricing) - Network accessline 331
- [Build with Nano Banana (Google blog)](https://blog.google/innovation-and-ai/technology/developers-tools/build-with-nano-banana-2/) - Network accessline 332
- [Get Started Nano Banana notebook (Colab)](https://colab.research.google.com/github/google-gemini/cookbook/blob/main/quickstarts/Get_Started_Nano_Banana.ipynb#nano-banana-pro) - Network accessline 333
- [Image generation docs (Gemini API)](https://ai.google.dev/gemini-api/docs/image-generation) - Network accessline 337
- [Gemini 3.1 Flash Image model page](https://ai.google.dev/gemini-api/docs/models/gemini-3.1-flash-image-preview) - Network accessline 338
- [Gemini 3 Pro Image model page](https://ai.google.dev/gemini-api/docs/models/gemini-3-pro-image-preview) - Network accessline 339
- [Gemini 2.5 Flash Image model page](https://ai.google.dev/gemini-api/docs/models/gemini-2.5-flash-image) - Network accessline 340
- [Google Search tool](https://ai.google.dev/gemini-api/docs/google-search) - Network accessline 341
- [Batch API](https://ai.google.dev/gemini-api/docs/batch-api) - Network accessline 342
- [Batch API image generation section](https://ai.google.dev/gemini-api/docs/batch-api#image-generation) - Network accessline 343
- [Rate limits](https://ai.google.dev/gemini-api/docs/rate-limits) - Network accessline 344
- [Thinking guide](https://ai.google.dev/gemini-api/docs/thinking) - Network accessline 345
- [Thought signatures](https://ai.google.dev/gemini-api/docs/thought-signatures) - Network accessline 346
- [Image understanding input guidance](https://ai.google.dev/gemini-api/docs/image-understanding) - Network accessline 347
- [Pricing](https://ai.google.dev/gemini-api/docs/pricing) - Network accessline 348
- [Imagen docs](https://ai.google.dev/gemini-api/docs/imagen) - Network accessline 349
- [Video (Veo) docs](https://ai.google.dev/gemini-api/docs/video) - Network accessline 350
- [Gemini models overview](https://ai.google.dev/gemini-api/docs/models) - Network accessline 354
- [Grounding with Google Search](https://ai.google.dev/gemini-api/docs/image-generation#use-with-grounding) - Network accessline 355
- [Grounding with Google Image Search](https://ai.google.dev/gemini-api/docs/image-generation#image-search) - Network accessline 356
- [Aspect ratios and image size](https://ai.google.dev/gemini-api/docs/image-generation#aspect_ratios_and_image_size) - Network accessline 357
- [Thinking process](https://ai.google.dev/gemini-api/docs/image-generation#thinking-process)
templates/copilot-gemini-api/.agents/skills/gemini-nanobanana/references/sources.md
- Network accessline 5
1. [Build with Nano Banana (Google blog)](https://blog.google/innovation-and-ai/technology/developers-tools/build-with-nano-banana-2/) - Network accessline 6
2. [Get Started Nano Banana (Colab notebook)](https://colab.research.google.com/github/google-gemini/cookbook/blob/main/quickstarts/Get_Started_Nano_Banana.ipynb#nano-banana-pro) - Network accessline 7
3. [Gemini API image-generation docs](https://ai.google.dev/gemini-api/docs/image-generation) - Network accessline 54
- Main implementation-oriented reference: [`image-generation-api.md`](.\image-generation-api.md) - Canonical model docs: - [3.1 Flash Image](https://ai.google.dev/gemini-api/docs/models/gemini-3.1-flash-image-preview) - Network accessline 55
- Canonical model docs: - [3.1 Flash Image](https://ai.google.dev/gemini-api/docs/models/gemini-3.1-flash-image-preview) - [3 Pro Image](https://ai.google.dev/gemini-api/docs/models/gemini-3-pro-image-preview) - Network accessline 56
- [3.1 Flash Image](https://ai.google.dev/gemini-api/docs/models/gemini-3.1-flash-image-preview) - Network accessline 57
- [3 Pro Image](https://ai.google.dev/gemini-api/docs/models/gemini-3-pro-image-preview) - Network accessline 58
- [2.5 Flash Image](https://ai.google.dev/gemini-api/docs/models/gemini-2.5-flash-image)
templates/copilot-gemini-api/.agents/skills/gemini-nanobanana/scripts/gemini-nanobanana-cli.js
- Executable scriptline 1
#!/usr/bin/env node - Access to secretsline 44
[Credential-related source omitted] - Access to secretsline 70
[Credential-related source omitted] - Access to secretsline 329
[Credential-related source omitted] - Network accessline 342
const payload = buildPayload(options); const url = `https://generativelanguage.googleapis.com/v1beta/models/${encodeURIComponent(options.model)}:generateContent`; - Network accessline 343
const url = `https://generativelanguage.googleapis.com/v1beta/models/${encodeURIComponent(options.model)}:generateContent`; - Network accessline 349
const response = await fetch(url, {
templates/copilot-gemini-api/.agents/skills/gemini-summary/README.md
- Access to secretsline 27
[Credential-related source omitted] - Network accessline 32
幫我摘要這篇文章 https://example.com/ai-agents-intro - Network accessline 33
摘要這份 PDF 的重點 ./reports/quarterly.pdf 幫我看看這個 YouTube 影片在講什麼 https://youtu.be/abc123 把這段會議錄音整理成摘要 ./recordings/meeting.mp3 - Network accessline 34
幫我看看這個 YouTube 影片在講什麼 https://youtu.be/abc123 - Network accessline 47
📌 來源 https://example.com/ai-agents-intro - Network accessline 48
https://example.com/ai-agents-intro
templates/copilot-gemini-api/.agents/skills/gemini-summary/SKILL.md
- Access to secretsline 12
[Credential-related source omitted] - Network accessline 18
| 類型 | 輸入格式 | 使用模型 | |------|----------|----------| | 網頁 | `https://example.com/article` | gemini-3-pro-preview | - Network accessline 19
|------|----------|----------| | 網頁 | `https://example.com/article` | gemini-3-pro-preview | | PDF | 本地 `./report.pdf` 或遠端 URL | gemini-3-pro-preview | - Network accessline 20
| 網頁 | `https://example.com/article` | gemini-3-pro-preview | - Network accessline 46
# 網頁摘要 node .agents/skills/gemini-summary/scripts/summarize.js "https://example.com/posts/agentic-workflows" - Network accessline 47
node .agents/skills/gemini-summary/scripts/summarize.js "https://example.com/posts/agentic-workflows" - Network accessline 52
# PDF 摘要(遠端 URL) node .agents/skills/gemini-summary/scripts/summarize.js "https://example.com/report.pdf" - Network accessline 53
node .agents/skills/gemini-summary/scripts/summarize.js "https://example.com/report.pdf" - Network accessline 55
# 影片摘要(YouTube) node .agents/skills/gemini-summary/scripts/summarize.js "https://youtu.be/abc123" - Network accessline 56
node .agents/skills/gemini-summary/scripts/summarize.js "https://youtu.be/abc123" - Network accessline 64
# 音訊摘要(遠端 URL) node .agents/skills/gemini-summary/scripts/summarize.js "https://example.com/podcast.mp3" - Network accessline 65
node .agents/skills/gemini-summary/scripts/summarize.js "https://example.com/podcast.mp3" - Network accessline 73
node .agents/skills/gemini-summary/scripts/summarize.js --type pdf "https://example.com/download?file=report" - Network accessline 74
node .agents/skills/gemini-summary/scripts/summarize.js --type audio "https://example.com/download?file=recording" - Network accessline 82
SUMMARY_DRY_RUN=1 node .agents/skills/gemini-summary/scripts/summarize.js "https://youtu.be/abc123" - Access to secretsline 118
[Credential-related source omitted] - Access to secretsline 154
[Credential-related source omitted]
templates/copilot-gemini-api/.agents/skills/gemini-summary/package.json
- Executable scriptline 1
Executable file
templates/copilot-gemini-api/.agents/skills/gemini-summary/scripts/summarize.js
- Executable scriptline 1
#!/usr/bin/env node - Possible obfuscationline 2
import{createRequire as VO}from"node:module";var ZO=Object.create;var{getPrototypeOf:$O,defineProperty:oJ,getOwnPropertyNames:QO}=Object;var YO=Object.prototype.hasOwnProperty;function JO(Z){return this[Z]}var KO,XO,t0=(Z,$,Q)=>{var Y=Z!=nu - Possible obfuscationline 3
[Credential-related source omitted] - Access to secretsline 3
[Credential-related source omitted] - Possible obfuscationline 4
`).join( `+K),Z.push(J+"m+"+_Q.exports.humanize(this.diff)+"\x1B[0m")}else Z[0]=aO()+$+" "+Z[0]}function aO(){if(wG.inspectOpts.hideDate)return"";return new Date().toISOString()+" "}function nO(...Z){return process.stderr.write(LQ.formatWit - Possible obfuscationline 7
`).map(($)=>$.trim()).join(" ")};PG.O=function(Z){return this.inspectOpts.colors=this.useColors,LQ.inspect(Z,this.inspectOpts)}});var X1=i((kp,K1)=>{if(typeof process>"u"||process.type==="renderer"||!1||process.__nwjs)K1.exports=BG();else K - Possible obfuscationline 8
`).some((Q)=>Q.indexOf("(https.js:")!==-1||Q.indexOf("node:https:")!==-1)}incrementSockets(Z){if(this.maxSockets===1/0&&this.maxTotalSockets===1/0)return null;if(!this.sockets[Z])this.sockets[Z]=[];let $=new Bj.Socket({writable:!1});return - Possible obfuscationline 11
`),A=R.shift();if(!A)return Z.destroy(),Q(Error("No header received from proxy CONNECT response"));let I=A.split(" "),j=+I[1],L=I.slice(2).join(" "),k={};for(let d of R){if(!d)continue;let b=d.indexOf(":");if(b===-1)return Z.destroy(),Q(Err - Possible obfuscationline 14
`);let{connect:q,buffered:F}=await W;if(Z.emit("proxyConnect",q),this.emit("proxyConnect",q,Z),q.statusCode===200){if(Z.once("socket",Nj),$.secureEndpoint)return m9("Upgrading socket connection to TLS"),TG.connect({...EG(SG($),"host","path" - Network accessline 22
`,K,`\r `)),Y.push(`--${Q}--`),new $(Y,{type:"multipart/form-data; boundary="+Q})}var c9,Cj,yj,pG,kj,cG=(Z,$,Q)=>(Z+="",/^(Blob|File)$/.test($&&$[c9])?[(Q=Q!==void 0?Q+"":$[c9]=="File"?$.name:"blob",Z),$.name!==Q||$[c9]=="blob"?new YZ([$],Q - Network accessline 23
`)),Y.push(`--${Q}--`),new $(Y,{type:"multipart/form-data; boundary="+Q})}var c9,Cj,yj,pG,kj,cG=(Z,$,Q)=>(Z+="",/^(Blob|File)$/.test($&&$[c9])?[(Q=Q!==void 0?Q+"":$[c9]=="File"?$.name:"blob",Z),$.name!==Q||$[c9]=="blob"?new YZ([$],Q,$):$]:[ - Network accessline 24
`)).replace(/\n/g,"%0A").replace(/\r/g,"%0D").replace(/"/g,"%22"),gZ=(Z,$,Q)=>{if($.length<Q)throw TypeError(`Failed to execute '${Z}' on 'FormData': ${Q} arguments required, but only ${$.length} present.`)},JZ;var SQ=A8(()=>{p9();V1();/*! - Possible obfuscationline 24
`)).replace(/\n/g,"%0A").replace(/\r/g,"%0D").replace(/"/g,"%22"),gZ=(Z,$,Q)=>{if($.length<Q)throw TypeError(`Failed to execute '${Z}' on 'FormData': ${Q} arguments required, but only ${$.length} present.`)},JZ;var SQ=A8(()=>{p9();V1();/*! - Possible obfuscationline 25
[Credential-related source omitted] - Network accessline 26
\r `),Y=!1,J=!1,K;Z.on("response",(X)=>{let{headers:W}=X;Y=W["transfer-encoding"]==="chunked"&&!W["content-length"]}),Z.on("socket",(X)=>{let W=()=>{if(Y&&!J){let F=Error("Premature close");F.code="ERR_STREAM_PREMATURE_CLOSE",$(F)}},q=(F)=> - Network accessline 27
`),Y=!1,J=!1,K;Z.on("response",(X)=>{let{headers:W}=X;Y=W["transfer-encoding"]==="chunked"&&!W["content-length"]}),Z.on("socket",(X)=>{let W=()=>{if(Y&&!J){let F=Error("Premature close");F.code="ERR_STREAM_PREMATURE_CLOSE",$(F)}},q=(F)=>{if - Possible obfuscationline 27
`),Y=!1,J=!1,K;Z.on("response",(X)=>{let{headers:W}=X;Y=W["transfer-encoding"]==="chunked"&&!W["content-length"]}),Z.on("socket",(X)=>{let W=()=>{if(Y&&!J){let F=Error("Premature close");F.code="ERR_STREAM_PREMATURE_CLOSE",$(F)}},q=(F)=>{if - Possible obfuscationline 31
`}yield Q}static#K;static#X;static async#z(){return this.#K||=(await Promise.resolve().then(() => t0(kG()))).HttpsProxyAgent,this.#K}static async#W(){let Z=typeof window<"u"&&!!window;return this.#X||=Z?window.fetch:(await Promise.resolve() - Possible obfuscationline 36
`+Y)+ `+I+"}":"{"+j.join(",")+"}",Y=I,R}}if(typeof x2.stringify!=="function")x2.stringify=function(F,U,H){var w;if(Y="",J="",typeof H==="number")for(w=0;w<H;w+=1)J+=" ";else if(typeof H==="string")J=H;if(X=U,U&&typeof U!=="function"&&(typeo - Possible obfuscationline 37
`+I+"}":"{"+j.join(",")+"}",Y=I,R}}if(typeof x2.stringify!=="function")x2.stringify=function(F,U,H){var w;if(Y="",J="",typeof H==="number")for(w=0;w<H;w+=1)J+=" ";else if(typeof H==="string")J=H;if(X=U,U&&typeof U!=="function"&&(typeof U!== - Possible obfuscationline 38
[Credential-related source omitted] - Possible obfuscationline 40
[Credential-related source omitted] - Network accessline 47
${K} ${R} `+await Z.crypto.sha256DigestHex(w),I=await KT(Z.crypto,Z.securityCredentials.secretAccessKey,X,Z.region,Y),j=await K5(Z.crypto,I,A),L=`${iU} Credential=${Z.securityCredentials.accessKeyId}/${R}, SignedHeaders=${U}, Signature=${(0 - Network accessline 48
${R} `+await Z.crypto.sha256DigestHex(w),I=await KT(Z.crypto,Z.securityCredentials.secretAccessKey,X,Z.region,Y),j=await K5(Z.crypto,I,A),L=`${iU} Credential=${Z.securityCredentials.accessKeyId}/${R}, SignedHeaders=${U}, Signature=${(0,sU.f - Network accessline 49
[Credential-related source omitted] - Possible obfuscationline 49
[Credential-related source omitted] - Access to secretsline 49
[Credential-related source omitted] - Network accessline 50
To learn more about authentication and Google APIs, visit: https://cloud.google.com/docs/authentication/getting-started`,NO_CREDENTIALS_FOUND:`Unable to find credentials in current environment. To learn more about authentication and Googl - Network accessline 51
https://cloud.google.com/docs/authentication/getting-started`,NO_CREDENTIALS_FOUND:`Unable to find credentials in current environment. - Network accessline 52
To learn more about authentication and Google APIs, visit: https://cloud.google.com/docs/authentication/getting-started`,NO_ADC_FOUND:"Could not load the default credentials. Browse to https://cloud.google.com/docs/authentication/getting-s - Network accessline 53
https://cloud.google.com/docs/authentication/getting-started`,NO_ADC_FOUND:"Could not load the default credentials. Browse to https://cloud.google.com/docs/authentication/getting-started for more information.",NO_UNIVERSE_DOMAIN_FOUND:`Unab - Network accessline 54
To learn more about Universe Domain retrieval, visit: https://cloud.google.com/compute/docs/metadata/predefined-metadata-keys`};class vH{checkIsGCE=void 0;useJWTAccessWithScope;defaultServicePath;get isGCE(){return this.checkIsGCE}_findPro - Network accessline 55
[Credential-related source omitted] - Possible obfuscationline 55
[Credential-related source omitted] - Possible obfuscationline 61
`+Q)}function rZ(Z,$,Q,Y,J,K){if(Z.listenerCount("wsClientError")){let X=Error(J);Error.captureStackTrace(X,rZ),Z.emit("wsClientError",X,Q,$)}else P5(Q,Y,J,K)}});var oR=i((kl,Z3)=>{function nR(Z,$){if($&&$.documentElement)Z=$,$=arguments[2] - Possible obfuscationline 62
`)}}}else this.log=function(){}}nR.prototype={FLAG_STRIP_UNLIKELYS:1,FLAG_WEIGHT_CLASSES:2,FLAG_CLEAN_CONDITIONALLY:4,ELEMENT_NODE:1,TEXT_NODE:3,DEFAULT_MAX_ELEMS_TO_PARSE:0,DEFAULT_N_TOP_CANDIDATES:5,DEFAULT_TAGS_TO_SCORE:"section,h2,h3,h4 - Possible obfuscationline 63
`:case"\f":if(X[Q])switch(Z.charAt($-1)){case" ":case"\t":case"\r":case `:case"\f":break;default:K+=" ";break}break;case'"':if(J=$+1,Y=Z.indexOf('"',J)+1,!Y)throw'" is missing';K+=Z.slice($,Y),$=Y-1;break;case"'":if(J=$+1,Y=Z.indexOf("'",J) - Possible obfuscationline 64
`:case"\f":break;default:K+=" ";break}break;case'"':if(J=$+1,Y=Z.indexOf('"',J)+1,!Y)throw'" is missing';K+=Z.slice($,Y),$=Y-1;break;case"'":if(J=$+1,Y=Z.indexOf("'",J)+1,!Y)throw"' is missing";K+=Z.slice($,Y),$=Y-1;break;case"/":if(Z.charA - Possible obfuscationline 65
`;return Z};pu.CSSStyleSheet=L4.CSSStyleSheet;L4.parse=d7().parse});var i7=i((du)=>{var l7={};l7.MediaList=function(){this.length=0};l7.MediaList.prototype={constructor:l7.MediaList,get mediaText(){return Array.prototype.join.call(this,", " - Possible obfuscationline 66
`:case"\f":if(Q==="after-import")Q="url";else Y+=K;break;case"@":if(!Q&&Z.indexOf("@import",$)===$)Q="after-import",$+=6,Y="";break;case"u":if(Q==="url"&&Z.indexOf("url(",$)===$){if(J=Z.indexOf(")",$+1),J===-1)throw $+': ")" not found';$+=4 - Possible obfuscationline 67
`+Z.join( `)+ }`}});Wm.CSSKeyframesRule=s6.CSSKeyframesRule});var kz=i((Gm)=>{var o7={};o7.CSSValue=function(){};o7.CSSValue.prototype={constructor:o7.CSSValue,set cssText(Z){var $=this._getConstructorName();throw Error('DOMException: prope - Possible obfuscationline 69
[Credential-related source omitted] - Possible obfuscationline 71
`,$+1);if(q<J)J=K;return J};Fm.CSSValueExpression=r4.CSSValueExpression});var fz=i((Hm)=>{var t7={};t7.MatcherList=function(){this.length=0};t7.MatcherList.prototype={constructor:t7.MatcherList,get matcherText(){return Array.prototype.join. - Possible obfuscationline 73
[Credential-related source omitted] - Network accessline 75
`,"\r\r",`\r \r `];while(!0){let{done:q,value:F}=yield I0(Y.read());if(q){if(K.trim().length>0)throw Error("Incomplete JSON segment at the end");break}let U=J.decode(F,{stream:!0});try{let R=JSON.parse(U);if("error"in R){let A=JSON.parse(JS - Network accessline 76
\r `];while(!0){let{done:q,value:F}=yield I0(Y.read());if(q){if(K.trim().length>0)throw Error("Incomplete JSON segment at the end");break}let U=J.decode(F,{stream:!0});try{let R=JSON.parse(U);if("error"in R){let A=JSON.parse(JSON.stringify( - Network accessline 77
[Credential-related source omitted] - Possible obfuscationline 77
[Credential-related source omitted] - Possible obfuscationline 81
${H}`)}return X},CY=lh(CR);class aX extends rX{create(Z,$){var Q;let{api_version:Y=this._client.apiVersion}=Z,J=pY(Z,["api_version"]);if("model"in J&&"agent_config"in J)throw new $4("Invalid request: specified `model` and `agent_config`. If - Network accessline 82
`)}}M5.NEWLINE_CHARS=new Set([` `,"\r"]);M5.NEWLINE_REGEXP=/\r\n|[\n\r]/g;function sh(Z,$){let J=$!==null&&$!==void 0?$:0,K=Z.indexOf(10,J),X=Z.indexOf(13,J);if(K===-1&&X===-1)return null;let W;if(K!==-1&&X!==-1)W=Math.min(K,X);else W=K!==- - Network accessline 83
`,"\r"]);M5.NEWLINE_REGEXP=/\r\n|[\n\r]/g;function sh(Z,$){let J=$!==null&&$!==void 0?$:0,K=Z.indexOf(10,J),X=Z.indexOf(13,J);if(K===-1&&X===-1)return null;let W;if(K!==-1&&X!==-1)W=Math.min(K,X);else W=K!==-1?K:X;if(Z[W]===10)return{preced - Possible obfuscationline 83
`,"\r"]);M5.NEWLINE_REGEXP=/\r\n|[\n\r]/g;function sh(Z,$){let J=$!==null&&$!==void 0?$:0,K=Z.indexOf(10,J),X=Z.indexOf(13,J);if(K===-1&&X===-1)return null;let W;if(K!==-1&&X!==-1)W=Math.min(K,X);else W=K!==-1?K:X;if(Z[W]===10)return{preced - Network accessline 84
`);Q.enqueue(K)}catch(Y){Q.error(Y)}},async cancel(){var Q;await((Q=$.return)===null||Q===void 0?void 0:Q.call($))}})}}function ah(Z,$){return h4(this,arguments,function*(){var Y,J,K,X;if(!Z.body){if($.abort(),typeof globalThis.navigator<"u - Possible obfuscationline 84
`);Q.enqueue(K)}catch(Y){Q.error(Y)}},async cancel(){var Q;await((Q=$.return)===null||Q===void 0?void 0:Q.call($))}})}}function ah(Z,$){return h4(this,arguments,function*(){var Y,J,K,X;if(!Z.body){if($.abort(),typeof globalThis.navigator<"u - Network accessline 85
[Credential-related source omitted] - Possible obfuscationline 85
[Credential-related source omitted] - Access to secretsline 85
[Credential-related source omitted] - Possible obfuscationline 86
`:G7(Z.children);if(F9(Z))return G7(Z.children);if(W6(Z))return Z.data;return""}function T5(Z){if(Array.isArray(Z))return Z.map(T5).join("");if(v8(Z)&&!v5(Z))return T5(Z.children);if(W6(Z))return Z.data;return""}function _3(Z){if(Array.isAr - Possible obfuscationline 90
[Credential-related source omitted] - Possible obfuscationline 91
[Credential-related source omitted] - Network accessline 97
[內容因長度限制已截斷]`,truncated:!0}}async function fW(Z,$={}){let Q=new AbortController,Y=setTimeout(()=>Q.abort(),HD);try{return await fetch(Z,{...$,signal:Q.signal})}catch(J){if(J?.name==="AbortError")throw Error(`抓取逾時(${HD/1000} 秒):${Z}`);throw - Possible obfuscationline 97
[內容因長度限制已截斷]`,truncated:!0}}async function fW(Z,$={}){let Q=new AbortController,Y=setTimeout(()=>Q.abort(),HD);try{return await fetch(Z,{...$,signal:Q.signal})}catch(J){if(J?.name==="AbortError")throw Error(`抓取逾時(${HD/1000} 秒):${Z}`);throw - Network accessline 98
`)}function Qp(){let Z=process.argv.slice(2),$=null,Q=null;for(let Y=0;Y<Z.length;Y++)if(Z[Y]==="--type"&&Y+1<Z.length){if($=Z[++Y],!["url","pdf","video","audio"].includes($))throw Error(`不支援的類型:${$}(可用:url, pdf, video, audio)`)}else if(!Q) - Possible obfuscationline 98
`)}function Qp(){let Z=process.argv.slice(2),$=null,Q=null;for(let Y=0;Y<Z.length;Y++)if(Z[Y]==="--type"&&Y+1<Z.length){if($=Z[++Y],!["url","pdf","video","audio"].includes($))throw Error(`不支援的類型:${$}(可用:url, pdf, video, audio)`)}else if(!Q) - Possible obfuscationline 192
(若文件包含後續計畫、建議採取的步驟或管理決策,請在此整理出來;若無則寫「目前無明確行動建議」)`}async function kW(Z){if(!Z)throw Error("請提供 PDF 檔案路徑或 URL。");if(!Z.toLowerCase().endsWith(".pdf"))try{if(!new URL(Z).pathname.toLowerCase().endsWith(".pdf"))console.error(`警告:輸入不像 PDF 檔案,仍嘗試 - Possible obfuscationline 260
[Credential-related source omitted]
templates/copilot-gemini-api/.agents/skills/gemini-summary/src/summarize.js
- Executable scriptline 1
#!/usr/bin/env node - Network accessline 80
console.error(""); console.error("範例:"); console.error(' node scripts/summarize.js "https://example.com/post/123"'); - Network accessline 81
console.error("範例:"); console.error(' node scripts/summarize.js "https://example.com/post/123"'); console.error(' node scripts/summarize.js "./reports/quarterly.pdf"'); - Network accessline 82
console.error(' node scripts/summarize.js "https://example.com/post/123"'); - Network accessline 83
console.error(' node scripts/summarize.js "./reports/quarterly.pdf"'); console.error(' node scripts/summarize.js "https://youtu.be/abc123"'); console.error(' node scripts/summarize.js "./recording.mp3"'); - Network accessline 84
console.error(' node scripts/summarize.js "https://youtu.be/abc123"'); - Access to secretsline 89
[Credential-related source omitted] - Access to secretsline 92
[Credential-related source omitted] - Network accessline 121
const timer = setTimeout(() => controller.abort(), FETCH_TIMEOUT_MS); try { return await fetch(url, { ...options, signal: controller.signal }); - Network accessline 122
try { return await fetch(url, { ...options, signal: controller.signal }); } catch (error) { - Network accessline 123
return await fetch(url, { ...options, signal: controller.signal }); - Network accessline 232
headers: { "User-Agent": "GitHubClawDev/summary (+https://github.com/rewq0494/GitHubClawDev)", - Network accessline 233
"User-Agent": "GitHubClawDev/summary (+https://github.com/rewq0494/GitHubClawDev)", Accept: "text/html,application/xhtml+xml", - Network accessline 234
"GitHubClawDev/summary (+https://github.com/rewq0494/GitHubClawDev)",
templates/copilot-gemini-api/.agents/skills/google-stitch/README.md
- Access to secretsline 27
[Credential-related source omitted]
templates/copilot-gemini-api/.agents/skills/google-stitch/SKILL.md
templates/copilot-gemini-api/.agents/skills/google-stitch/references/workflow.md
templates/copilot-gemini-api/.agents/skills/google-stitch/scripts/generate.js
templates/copilot-gemini-api/.agents/skills/google-stitch/scripts/google-stitch.js
- Executable scriptline 1
[Credential-related source omitted] - Access to secretsline 1
[Credential-related source omitted] - Possible obfuscationline 818
h.inlineData && typeof h.inlineData.data == "string" && (d += atob(h.inlineData.data)); - Possible obfuscationline 1044
a.inlineData && typeof a.inlineData.data == "string" && (r += atob(a.inlineData.data)); - Network accessline 2980
* @remarks * Context caching is only supported for specific models. See [Gemini * Developer API reference](https://ai.google.dev/gemini-api/docs/caching?lang=node/context-cac) - Network accessline 2981
* Context caching is only supported for specific models. See [Gemini * Developer API reference](https://ai.google.dev/gemini-api/docs/caching?lang=node/context-cac) * and [Vertex AI reference](https://cloud.google.com/vertex-ai/genera - Network accessline 2982
* Developer API reference](https://ai.google.dev/gemini-api/docs/caching?lang=node/context-cac) - Network accessline 2983
* and [Vertex AI reference](https://cloud.google.com/vertex-ai/generative-ai/docs/context-cache/context-cache-overview#supported_models) - Network accessline 6530
throw new Error("Authentication is not set up. Please provide either a project and location, or an API key, or a custom base URL."); const u = e.project && e.location || !!e.apiKey; this.customBaseUrl && !u ? (l.baseUrl = this.c - Network accessline 6531
const u = e.project && e.location || !!e.apiKey; this.customBaseUrl && !u ? (l.baseUrl = this.customBaseUrl, this.clientOptions.project = void 0, this.clientOptions.location = void 0) : this.clientOptions.apiKey || this.clientOptions. - Network accessline 6532
this.customBaseUrl && !u ? (l.baseUrl = this.customBaseUrl, this.clientOptions.project = void 0, this.clientOptions.location = void 0) : this.clientOptions.apiKey || this.clientOptions.location === "global" ? l.baseUrl = "https://aiplatform - Network accessline 6533
} else this.clientOptions.apiKey || console.warn("API key should be set when using the Gemini API."), l.apiVersion = (r = this.clientOptions.apiVersion) !== null && r !== void 0 ? r : gu, l.baseUrl = "https://generativelanguage.google - Network accessline 6534
this.clientOptions.apiKey || console.warn("API key should be set when using the Gemini API."), l.apiVersion = (r = this.clientOptions.apiVersion) !== null && r !== void 0 ? r : gu, l.baseUrl = "https://generativelanguage.googleapis.com/"; - Network accessline 6722
var o; if (!this.clientOptions.httpOptions || !this.clientOptions.httpOptions.retryOptions) return fetch(e, t); - Network accessline 6723
if (!this.clientOptions.httpOptions || !this.clientOptions.httpOptions.retryOptions) return fetch(e, t); const r = this.clientOptions.httpOptions.retryOptions; - Network accessline 6724
return fetch(e, t); - Network accessline 6725
const r = this.clientOptions.httpOptions.retryOptions; return ri(async () => { const a = await fetch(e, t); - Network accessline 6726
return ri(async () => { const a = await fetch(e, t); if (a.ok) - Network accessline 6727
const a = await fetch(e, t); - Access to secretsline 7245
[Credential-related source omitted] - Network accessline 9970
var o, r, l, a; if (!n.body) throw e.abort(), typeof globalThis.navigator < "u" && globalThis.navigator.product === "ReactNative" ? new B("The default react-native fetch implementation does not support streaming. Please use expo/f - Network accessline 9971
if (!n.body) throw e.abort(), typeof globalThis.navigator < "u" && globalThis.navigator.product === "ReactNative" ? new B("The default react-native fetch implementation does not support streaming. Please use expo/fetch: https://docs.e - Network accessline 9972
throw e.abort(), typeof globalThis.navigator < "u" && globalThis.navigator.product === "ReactNative" ? new B("The default react-native fetch implementation does not support streaming. Please use expo/fetch: https://docs.expo.dev/versions/la
How the signals fit together
Facts from a static read of the files at the pinned commit. They describe what the code does, not why.
Some files could not be read; the facts below still hold.
Declared and executed: 2 facts
- Contacts cloud.google.com, which SKILL.md, the README and the plugin manifest do not mentiongemini-audio-transcriber/scripts/transcribe.js:51High confidence
- Contacts cloud.google.com, which SKILL.md, the README and the plugin manifest do not mentiongemini-deep-researcher/scripts/research.js:50High confidence
Signal confidence: 498 facts
- Network access in code of documentationagent-browser/README.md:28Low confidence
- Network access in code of the SKILL.mdagent-browser/SKILL.md:29High confidence
- Network access in code of the SKILL.mdagent-browser/SKILL.md:85High confidence
- Network access in code of the SKILL.mdagent-browser/SKILL.md:95High confidence
- Network access in code of the SKILL.mdagent-browser/SKILL.md:107High confidence
- Network access in code of the SKILL.mdagent-browser/SKILL.md:108High confidence
- Network access in code of the SKILL.mdagent-browser/SKILL.md:116High confidence
- Network access in code of the SKILL.mdagent-browser/SKILL.md:118High confidence
- Network access in code of the SKILL.mdagent-browser/SKILL.md:124High confidence
- Dangerous shell operation in code of the SKILL.mdagent-browser/SKILL.md:132High confidence
- Network access in code of the SKILL.mdagent-browser/SKILL.md:178High confidence
- Network access in code of the SKILL.mdagent-browser/SKILL.md:179High confidence
- Network access in code of the SKILL.mdagent-browser/SKILL.md:180High confidence
- Executable script in code of a file that runsagent-browser/install.sh:1High confidence
- Dangerous shell operation in code of a file that runsagent-browser/install.sh:25High confidence
- Network access in code of documentationagent-browser/references/authentication.md:53Low confidence
- Network access in code of documentationagent-browser/references/authentication.md:54Low confidence
- Network access in code of documentationagent-browser/references/authentication.md:56Low confidence
- Network access in code of documentationagent-browser/references/authentication.md:58Low confidence
- Network access in code of documentationagent-browser/references/authentication.md:77Low confidence
- Network access in code of documentationagent-browser/references/authentication.md:78Low confidence
- Network access in code of documentationagent-browser/references/authentication.md:81Low confidence
- Network access in code of documentationagent-browser/references/authentication.md:82Low confidence
- Network access in code of documentationagent-browser/references/authentication.md:88Low confidence
- Network access in code of documentationagent-browser/references/authentication.md:89Low confidence
- Network access in code of documentationagent-browser/references/authentication.md:95Low confidence
- Network access in code of documentationagent-browser/references/authentication.md:96Low confidence
- Network access in code of documentationagent-browser/references/authentication.md:104Low confidence
- Network access in code of documentationagent-browser/references/authentication.md:105Low confidence
- Network access in code of documentationagent-browser/references/authentication.md:109Low confidence
- Network access in code of documentationagent-browser/references/authentication.md:110Low confidence
- Network access in code of documentationagent-browser/references/authentication.md:116Low confidence
- Access to secrets in code of documentationagent-browser/references/authentication.md:116Low confidence
- Network access in code of documentationagent-browser/references/authentication.md:117Low confidence
- Network access in code of documentationagent-browser/references/authentication.md:123Low confidence
- Network access in code of documentationagent-browser/references/authentication.md:124Low confidence
- Network access in code of documentationagent-browser/references/authentication.md:148Low confidence
- Network access in code of documentationagent-browser/references/authentication.md:149Low confidence
- Network access in code of documentationagent-browser/references/authentication.md:168Low confidence
- Network access in code of documentationagent-browser/references/authentication.md:169Low confidence
- Network access in code of documentationagent-browser/references/authentication.md:180Low confidence
- Network access in code of documentationagent-browser/references/authentication.md:181Low confidence
- Network access in code of documentationagent-browser/references/authentication.md:205Low confidence
- Network access in code of documentationagent-browser/references/authentication.md:206Low confidence
- Network access in code of documentationagent-browser/references/authentication.md:228Low confidence
- Network access in code of documentationagent-browser/references/authentication.md:229Low confidence
- Access to secrets in code of documentationagent-browser/references/authentication.md:238Low confidence
- Network access in code of documentationagent-browser/references/authentication.md:240Low confidence
- Network access in code of documentationagent-browser/references/authentication.md:241Low confidence
- Network access in code of documentationagent-browser/references/authentication.md:255Low confidence
and 448 more
Only the first 500 facts are listed.
Works with
| Agent | Status | Evidence | Install to |
|---|---|---|---|
| Claude Code | Compatible | Standard SKILL.md skills/agent-browser/SKILL.md | .claude/skills/<skill-name>/ |
| Codex | Native | Manifest AGENTS.md | .agents/skills/<skill-name>/ |
| Cursor | Compatible | Standard SKILL.md skills/agent-browser/SKILL.md | .cursor/skills/<skill-name>/ |
| Gemini CLI | Compatible | Standard SKILL.md skills/agent-browser/SKILL.md | .gemini/skills/<skill-name>/ |
| GitHub Copilot | Compatible | Standard SKILL.md skills/agent-browser/SKILL.md | .github/skills/<skill-name>/ |
| OpenCode | Compatible | Standard SKILL.md skills/agent-browser/SKILL.md | .opencode/skills/<skill-name>/ |
- Native The repository ships a manifest, folder or frontmatter field for this agent.
- Compatible A standard SKILL.md that this agent can read.
- Unknown No evidence either way.
Derived automatically from paths, manifests and frontmatter. Not tested on each agent.