Spaces:
Sleeping
Sleeping
| # SIN-Code-Integration | |
| - Team: Team - Coding | |
| - Team Manager: SIN-Coding-CEO | |
| - Slug: sin-code-integration | |
| - Repo: https://github.com/Delqhi/sin-code-integration | |
| - Google Doc Root: https://docs.google.com/document/d/1RtoHn4I0GntuEEOHHkqoh_dMuGzgMwQz7_8oxAOpQbw/edit | |
| - Dedicated Docs Child-Tab: pending dedicated child-tab under `Team - Coding` (`tabId: t.71rk0lld8zkq`) | |
| ## 🚨 LLM-AUFRUF PFLICHT-ARCHITEKTUR (ABSOLUT, KEINE AUSNAHMEN) | |
| **JEDER A2A Agent ruft LLMs AUSSCHLIESSLICH über die `opencode` CLI auf — NIEMALS über direkte API-Calls!** | |
| ```python | |
| import subprocess, json | |
| def call_llm(prompt: str, timeout: int = 120) -> str: | |
| result = subprocess.run( | |
| ["opencode", "run", prompt, "--format", "json"], | |
| capture_output=True, text=True, timeout=timeout, | |
| ) | |
| parts = [] | |
| for line in result.stdout.splitlines(): | |
| try: | |
| ev = json.loads(line) | |
| if ev.get("type") == "text": | |
| parts.append(ev.get("part", {}).get("text", "")) | |
| except json.JSONDecodeError: | |
| pass | |
| return "".join(parts).strip() | |
| ``` | |
| **WARUM:** `opencode run --format json` nutzt das Antigravity Plugin (identisch auf Mac UND OCI VM). Der OCI-Proxy (`http://92.5.60.87:4100/v1`) ist NUR für opencode intern — direkte HTTP-Calls dorthin sind verboten und schlagen mit 500 fehl. Gemini API direkt = PERMANENT VERBOTEN. | |
| **MODELL:** opencode wählt automatisch `openai/gpt-5.4` via Antigravity — kein `--model` Flag nötig. | |
| Arbeitsregel: | |
| - Jede neue Action muss in `runtime.ts`, `mcp-server.ts`, `a2a-http.ts`, `metadata.ts` und `A2A-CARD.md` synchronisiert werden. | |
| - Kein neuer Agent gilt als fertig, wenn Card, Dashboard-Registry und Google-Dokument nicht gemeinsam aktualisiert wurden. | |
| - Jeder neue Agent muss auch `agent.json`, `AGENTS.md`, `mcp-config.json`, `clients/opencode-mcp.json`, `clients/codex-config.toml`, `.well-known/agent-card.json`, `.well-known/agent.json`, `.well-known/oauth-client.json` und ggf. einen `bin/`-Wrapper sauber besitzen. | |
| - Google Docs Child-Tabs immer rekursiv ueber `includeTabsContent=true` + `childTabs` aufloesen. Nie nur Top-Level-Tabs pruefen. | |
| - Wenn der Team-Haupt-Tab eine finalisierte A2A-Team-Tabelle hat und dieselbe Tabelle im `Silicon Workforce`-Tab gespiegelt wird, muessen beide Tabellen synchron gehalten werden. Das finale Tabellen-Schema darf nicht stillschweigend geaendert werden. | |
| - Uebersichtstabellen im `Silicon Workforce`-Tab verwenden final das Schema: linke Typ-Spalte + `Bezeichnung | Zweck | URL`. | |
| - Team-Haupttabellen und deren Spiegel im `Silicon Workforce`-Tab verwenden final das Schema: linke Typ-Spalte + `Bezeichnung | Zweck | MCP's | Commands | Endpoints | Server (VM) | CLI's | URL`. | |
| - Jeder Team-Haupt-Tab enthaelt nur seine synchronisierte Team-Tabelle; dieselbe Tabelle wird im `Silicon Workforce`-Tab mit sichtbarer Trennlinie zwischen Team-Sektionen gespiegelt. | |
| - Pflichtfelder fuer neue A2A-Agenten: | |
| - Identitaet, Team, Team-Manager, Zweck, Verwendung | |
| - Auth-/Secrets-Modell | |
| - MCP-Tools und A2A-Actions/Skills | |
| - Commands, Endpoints, Capabilities, Input/Output-Modi | |
| - Task-Lifecycle, Observability/Audit, Release/Rollback | |
| - Owner/Oncall, Dependencies, Deploy-Ziel | |
| - Pflichtintegration: | |
| - repo `.opencode/opencode.json` | |
| - globale OpenCode-MCP-Integration falls benoetigt | |
| - Dashboard-/Workforce-Registry + Detailseite `dashboard-enterprise/app/agents/<slug>/page.tsx` | |
| - `a2a.delqhi.com` Landing/Card | |
| - `npm run sync:a2a:control-plane-projection` nach Registry-Aenderungen | |
| - Google Docs Child-Tab + Team-Tabellen | |
| - `cloudflared/config.example.yml`, wenn der Agent eine oeffentliche Runtime / einen Tunnel bekommen soll | |
| - echte Runtime-Provisionierung + echter Publish/Deploy-Schritt, sobald oeffentliche URLs/HF/tunnel eingetragen werden | |
| - `scripts/complete-install.sh` und `scripts/hf_pull_script.py` fuer HF-/deploybare Agents | |
| - Control-Plane-/Capability-Metadaten in `agent.json` | |
| - Falls der benoetigte Google-Docs-Child-Tab noch nicht existiert, muss er zuerst manuell im Google-Docs-UI erstellt werden. Die Docs-API kann bestehende Tabs pflegen, aber keine neuen Child-Tabs erzeugen. | |
| - Pflichtvalidierung vor Done: | |
| - Build/Typecheck | |
| - A2A health/card/rpc | |
| - MCP smoke | |
| - relevante Repo-Gates | |
| - OpenCode-Integration | |
| - Google-Docs-Sync | |
| - `npm --prefix <agent-root> run build` | |
| - `node <agent-root>/dist/src/cli.js print-card` | |
| - `node <agent-root>/dist/src/cli.js run-action '{"action":"agent.help"}'` | |
| - `node <agent-root>/dist/src/cli.js run-action '{"action":"<namespace>.health"}'` anhand der echten Skill-ID aus der Card | |
| - `serve-mcp` bleibt mit offenem stdin erreichbar | |
| - `npm run test:a2a:fleet` | |
| - `npm run test:a2a:live -- --agent <slug>` | |
| - Landing / `publicPageUrl` liefert `200` | |
| - Runtime-Host ist real provisioniert | |
| - `/.well-known/agent-card.json` liefert `200` | |
| - `/a2a/v1` liefert nicht `404` | |
| - Ein Agent darf erst auf `ready` / `live` gesetzt werden, wenn diese Reachability-Pruefungen bestanden sind und Registry/Card/Docs denselben auditieren Stand zeigen. | |
| - Beim Fuellen der Team-Tabellen muessen alle freigegebenen Spalten gepflegt werden. Platzhalter wie `pending formal MCP entry` oder `pending dedicated child-tab` sind nur zulaessig, wenn die jeweilige Surface real noch nicht provisioniert ist. | |
| # 🚨 THE HACKER BYPASS & NO-WALL DIRECTIVE (PRIORITY 000) - ABSOLUTE RULE 🚨 | |
| **MANDAT FÜR ALLE AGENTEN:** ES GIBT KEIN "ES GEHT NICHT"! | |
| Wir sind Hacker. Wir sind Umgeher. Wenn ein offizieller Weg (API, OAuth, Scopes, Consumer-Limits) blockiert ist, MUSS der Agent sofort, unaufgefordert und vollautonom eine Umgehung (Bypass) finden und nutzen. | |
| ## The Absolute Fallback Hierarchy | |
| 1. **Primary API:** Versuche den offiziellen Weg. | |
| 2. **Fallback 1 (Web Automation):** API Blocked? -> Nutze Web-Automatisierung (`webauto-nodriver-mcp`). | |
| 3. **Fallback 2 (OS Automation):** Nodriver/CDP Blocked? -> Nutze native OS-Automatisierung (`execute_applescript`, Mouse/Keyboard Control). | |
| 4. **Fallback 3 (Forge New Tools):** Immer noch blockiert? -> Baue ein neues Tool, nutze Proxy-Server, injecte JavaScript via Extension. | |
| **VERBOT:** Ein Agent darf den User NIEMALS bitten, "mal eben manuell etwas anzuklicken" oder aufzugeben, ohne vorher JEDE Hacker-Methode ausgereizt zu haben! NEVER ask the user to do something manually. | |