Spaces:
Sleeping
Sleeping
File size: 43,888 Bytes
22b218b | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 | {
"$schema": "https://opencode.ai/config.json",
"plugin": [
"opencode-antigravity-auth@1.6.5-beta.0",
"opencode-antigravity-image@latest",
"opencode-openrouter-auth",
"opencode-qwen-auth",
"/Users/jeremy/dev/upgraded-opencode-stack/local-plugins/oh-my-opencode-sin",
"/Users/jeremy/.config/opencode/plugins/omoc-swarm.ts"
],
"model": "nvidia/minimaxai/minimax-m2.7",
"provider": {
"google": {
"options": {
"timeout": false,
"chunkTimeout": 999999999,
"soft_quota_threshold_percent": 100
},
"models": {
"antigravity-claude-sonnet-4-6": {
"name": "Claude Sonnet 4.6 (Antigravity)",
"limit": {
"context": 200000,
"output": 64000
},
"modalities": {
"input": [
"text",
"image",
"pdf"
],
"output": [
"text"
]
},
"context": 256000
},
"antigravity-claude-opus-4-6-thinking": {
"name": "Claude Opus 4.6 Thinking (Antigravity)",
"limit": {
"context": 200000,
"output": 32000
},
"modalities": {
"input": [
"text",
"image",
"pdf"
],
"output": [
"text"
]
},
"variants": {
"low": {
"thinkingConfig": {
"thinkingBudget": 8192
}
},
"max": {
"thinkingConfig": {
"thinkingBudget": 32768
}
}
},
"context": 256000
},
"antigravity-claude-opus-4-7-thinking": {
"id": "claude-opus-4-7-thinking",
"name": "Claude Opus 4.7 Thinking (Antigravity)",
"limit": {
"context": 1000000,
"output": 128000
},
"modalities": {
"input": [
"text",
"image",
"pdf"
],
"output": [
"text"
]
},
"variants": {
"low": {
"thinkingConfig": {
"thinkingBudget": 16384
}
},
"max": {
"thinkingConfig": {
"thinkingBudget": 64000
}
}
},
"context": 1000000
},
"antigravity-veo-3-1": {
"id": "nano-banana-video",
"name": "Google Veo 3.1 (Antigravity Video)",
"modalities": {
"input": [
"text",
"image"
],
"output": [
"text",
"video"
]
}
},
"antigravity-gemini-3.1-pro": {
"name": "Gemini 3.1 Pro (Antigravity)",
"limit": {
"context": 1048576,
"output": 65536
},
"modalities": {
"input": [
"text",
"image",
"pdf"
],
"output": [
"text"
]
},
"variants": {
"low": {
"thinkingLevel": "low"
},
"high": {
"thinkingLevel": "high"
}
}
},
"antigravity-gemini-3-flash": {
"name": "Gemini 3 Flash (Antigravity)",
"limit": {
"context": 1048576,
"output": 65536
},
"modalities": {
"input": [
"text",
"image",
"pdf"
],
"output": [
"text",
"video"
]
}
},
"meta/llama-3.2-11b-vision-instruct": {
"name": "Llama 3.2 11B Vision Instruct (NVIDIA NIM)",
"limit": {
"context": 131072,
"output": 32768
},
"modalities": {
"input": [
"text",
"image",
"pdf"
],
"output": [
"text"
]
},
"variants": {
"minimal": {
"thinkingLevel": "minimal"
},
"low": {
"thinkingLevel": "low"
},
"medium": {
"thinkingLevel": "medium"
},
"high": {
"thinkingLevel": "high"
}
}
}
}
},
"nvidia-nim": {
"npm": "@ai-sdk/openai",
"name": "NVIDIA NIM",
"options": {
"baseURL": "https://integrate.api.nvidia.com/v1",
"apiKey": "{env:NVIDIA_API_KEY}"
},
"models": {
"qwen-3.5-122b": {
"name": "Qwen 3.5 122B (NVIDIA NIM)",
"id": "qwen/qwen3.5-122b-a10b",
"limit": {
"context": 262144,
"output": 32768
}
},
"qwen-3.5-397b": {
"name": "Qwen 3.5 397B (NVIDIA NIM)",
"id": "qwen/qwen3.5-397b-a17b",
"limit": {
"context": 262144,
"output": 32768
}
},
"stepfun-ai/step-3.5-flash": {
"name": "Step 3.5 Flash (NVIDIA NIM)",
"id": "stepfun-ai/step-3.5-flash",
"limit": {
"context": 262144,
"output": 32768
}
},
"minimax-m2.7": {
"name": "Minimax M2.7 (NVIDIA NIM)",
"id": "minimaxai/minimax-m2.7",
"limit": {
"context": 204800,
"output": 8192
}
},
"llama-3.2-11b-vision-instruct": {
"name": "Llama 3.2 11B Vision Instruct (NVIDIA NIM)",
"id": "meta/llama-3.2-11b-vision-instruct",
"limit": {
"context": 131072,
"output": 32768
},
"modalities": {
"input": [
"text",
"image"
],
"output": [
"text"
]
}
}
}
},
"openai": {
"npm": "@ai-sdk/openai",
"models": {
"gpt-5.4": {
"name": "GPT-5.4",
"limit": {
"context": 1000000,
"output": 32768
},
"modalities": {
"input": [
"text",
"image"
],
"output": [
"text"
]
}
}
},
"options": {
"baseURL": "http://92.5.60.87:4100/v1",
"apiKey": "sk-sin-fleet-master"
}
},
"openrouter": {
"npm": "@openrouter/ai-sdk-provider",
"options": {
"apiKey": "{env:OPENROUTER_API_KEY}",
"baseURL": "https://openrouter.ai/api/v1"
},
"models": {
"x-ai/grok-code-fast-1": {
"name": "xAI Grok Code Fast 1",
"limit": {
"context": 262144,
"output": 65536
}
},
"qwen/qwen3.6-plus:free": {
"name": "Qwen 3.6 Plus (Free)",
"limit": {
"context": 1000000,
"output": 65536
}
},
"qwen/qwen3-coder": {
"name": "Qwen 3 Coder (Free)",
"limit": {
"context": 262144,
"output": 65536
}
},
"qwen/qwen3.5-coder": {
"name": "Qwen 3.5 Coder (Free)",
"limit": {
"context": 262144,
"output": 65536
}
},
"deepseek/deepseek-chat-v3-0324:free": {
"name": "DeepSeek V3 0324 (Free)",
"limit": {
"context": 163840,
"output": 16384
}
},
"deepseek/deepseek-r1:free": {
"name": "DeepSeek R1 (Free)",
"limit": {
"context": 64000,
"output": 16000
}
},
"meta-llama/llama-4-maverick:free": {
"name": "Llama 4 Maverick (Free)",
"limit": {
"context": 1048576,
"output": 16384
}
},
"microsoft/phi-4:free": {
"name": "Phi-4 (Free)",
"limit": {
"context": 16384,
"output": 16384
}
}
}
},
"qwen": {
"npm": "@ai-sdk/openai-compatible",
"name": "Qwen Code",
"options": {
"baseURL": "https://portal.qwen.ai/v1"
},
"models": {
"coder-model": {
"name": "Qwen 3.6 Plus",
"limit": {
"context": 1048576,
"output": 65536
},
"modalities": {
"input": [
"text"
],
"output": [
"text"
]
}
},
"vision-model": {
"name": "Qwen 3.6 Vision Plus",
"limit": {
"context": 131072,
"output": 32768
},
"attachment": true,
"modalities": {
"input": [
"text",
"image"
],
"output": [
"text"
]
}
}
}
},
"modal": {
"npm": "@ai-sdk/openai-compatible",
"options": {
"baseURL": "https://api.us-west-2.modal.direct/v1",
"apiKey": "modalresearch_kCkiHCa0GiY8byjM59lG6myK0KS9ACaKVsnHPSErm5Y"
},
"models": {
"glm-5.1-fp8": {
"id": "zai-org/GLM-5.1-FP8",
"name": "GLM 5.1 FP8 (Modal Direct)",
"limit": {
"context": 204800,
"output": 131072
}
}
}
}
},
"mcp": {
"opencode-bypass-v2": {
"type": "local",
"command": [
"node",
"/Users/jeremy/.config/opencode/local-plugins/opencode-bypass-v2/index.js"
],
"enabled": true
},
"sin-document-forge": {
"type": "local",
"command": [
"python3",
"/Users/jeremy/dev/sin-telegrambot-cli/mcp/mcp_sin_document_forge.py"
],
"enabled": true
},
"sin-telegrambot": {
"type": "local",
"command": [
"python3",
"/Users/jeremy/dev/sin-telegrambot-cli/mcp/mcp_sin_telegrambot.py"
],
"enabled": true
},
"tavily": {
"type": "local",
"command": [
"npx",
"-y",
"@tavily/claude-mcp"
],
"environment": {
"TAVILY_API_KEY": "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"
},
"enabled": false
},
"canva": {
"type": "local",
"command": [
"npx",
"-y",
"@canva/claude-mcp"
],
"enabled": false
},
"context7": {
"type": "local",
"command": [
"npx",
"-y",
"@anthropics/context7-mcp"
],
"enabled": false
},
"chrome-devtools": {
"type": "local",
"command": [
"npx",
"-y",
"@anthropics/chrome-devtools-mcp"
],
"enabled": false
},
"linear": {
"type": "remote",
"url": "https://mcp.linear.app/sse",
"enabled": false
},
"singularity": {
"type": "local",
"command": [
"node",
"/Users/jeremy/.singularity/CLI/bin/singularity.js",
"mcp"
],
"enabled": false
},
"sin-google-apps": {
"type": "local",
"command": [
"/Users/jeremy/dev/OpenSIN-backend/bin/sin-google-apps-mcp"
],
"environment": {
"SIN_GOOGLE_APPS_HOST": "127.0.0.1",
"SIN_GOOGLE_APPS_PORT": "45872",
"SIN_GOOGLE_APPS_PUBLIC_BASE_URL": "https://a2a-sin-google-apps.delqhi.com"
},
"enabled": true
},
"sin-server": {
"type": "local",
"command": [
"/Users/jeremy/dev/OpenSIN-backend/bin/sin-server",
"serve-mcp"
],
"enabled": true
},
"sin-cloudflare": {
"type": "local",
"command": [
"/Users/jeremy/dev/OpenSIN-backend/bin/sin-cloudflare",
"serve-mcp"
],
"enabled": true
},
"sin-passwordmanager": {
"type": "local",
"command": [
"node",
"/Users/jeremy/dev/OpenSIN-backend/a2a/team-infratructur/A2A-SIN-Passwordmanager/dist/src/cli.js",
"serve-mcp"
],
"environment": {
"SIN_PASSWORDMANAGER_HOST": "127.0.0.1",
"SIN_PASSWORDMANAGER_PORT": "4646"
},
"enabled": true
},
"sin-research": {
"type": "local",
"command": [
"/Users/jeremy/dev/OpenSIN-backend/bin/sin-research",
"serve-mcp"
],
"enabled": true
},
"sin-team-worker": {
"type": "local",
"command": [
"/Users/jeremy/dev/OpenSIN-backend/bin/sin-team-worker",
"serve-mcp"
],
"enabled": true
},
"sin-tiktok": {
"type": "local",
"command": [
"/Users/jeremy/dev/OpenSIN-backend/bin/sin-tiktok",
"serve-mcp"
],
"enabled": true
},
"sin-tiktok-shop": {
"type": "local",
"command": [
"/Users/jeremy/dev/OpenSIN-backend/bin/sin-tiktok-shop",
"serve-mcp"
],
"enabled": true
},
"sin-terminal": {
"type": "local",
"command": [
"/Users/jeremy/dev/OpenSIN-backend/bin/sin-terminal",
"serve-mcp"
],
"enabled": true
},
"webauto-nodriver": {
"type": "local",
"command": [
"python3",
"/Users/jeremy/dev/webauto-nodriver-mcp/webauto_nodriver_mcp.py"
],
"environment": {
"WEBAUTO_CDP_PORT": "9335",
"WEBAUTO_PROFILE_DIR": "/Users/jeremy/Library/Application Support/Google/Chrome/Default",
"WEBAUTO_PROFILE_DIRECTORY": "Default",
"WEBAUTO_DESKTOPGRAB_ENABLED": "true",
"WEBAUTO_DESKTOPGRAB_FPS": "10",
"WEBAUTO_ATTACH_FRAMES_PER_ACTION": "1",
"WEBAUTO_ATTACH_DESKTOP_FRAMES_PER_ACTION": "1",
"WEBAUTO_EXPORT_DIR": "/Users/jeremy/Desktop/webauto_exports"
},
"enabled": true
},
"sin-authenticator": {
"type": "local",
"command": [
"/Users/jeremy/dev/OpenSIN-backend/bin/sin-authenticator",
"serve-mcp"
],
"environment": {
"AUTHD_HOST": "127.0.0.1",
"AUTHD_PORT": "44711",
"SIN_AUTH_HOST": "127.0.0.1",
"SIN_AUTH_PORT": "45871",
"SIN_AUTH_PUBLIC_BASE_URL": "https://delqhi-sin-authenticator.hf.space"
},
"enabled": true
},
"sin-github-issues": {
"type": "local",
"command": [
"/Users/jeremy/dev/OpenSIN-backend/bin/sin-github-issues",
"serve-mcp"
],
"enabled": true
},
"sin-oraclecloud-mcp": {
"type": "local",
"command": [
"/Users/jeremy/dev/OpenSIN-backend/bin/sin-oraclecloud-mcp",
"serve-mcp"
],
"enabled": true
},
"n8n-workflow-builder": {
"type": "local",
"command": [
"npx",
"-y",
"mcp-n8n-builder"
],
"environment": {
"N8N_HOST": "http://92.5.60.87:5678/api/v1",
"N8N_API_KEY": "n8n_api_69175bcabef4b10d619b43598cd557a92ee38aac5ae4b1ca",
"OUTPUT_VERBOSITY": "concise"
},
"enabled": true
},
"sin-google-docs": {
"type": "local",
"command": [
"python3",
"/Users/jeremy/dev/sin-telegrambot-cli/mcp/mcp_sin_google_docs.py"
],
"enabled": true
},
"sin-summary": {
"type": "local",
"command": [
"/Users/jeremy/dev/OpenSIN-backend/bin/sin-summary",
"serve-mcp"
],
"enabled": true
},
"sin-paragraph": {
"type": "local",
"command": [
"/Users/jeremy/dev/OpenSIN-backend/bin/sin-paragraph",
"serve-mcp"
],
"enabled": true
},
"simone-mcp": {
"type": "local",
"command": [
"node",
"/Users/jeremy/dev/Simone-MCP/dist/src/cli.js",
"serve-mcp"
],
"enabled": true
},
"firecrawl": {
"type": "local",
"command": [
"npx",
"-y",
"@mendable/firecrawl-mcp"
],
"environment": {
"FIRECRAWL_API_URL": ""
},
"enabled": false
},
"sin-brain": {
"type": "local",
"command": [
"node",
"/Users/jeremy/dev/global-brain/src/mcp/sin-brain-server.mjs"
],
"enabled": true
},
"sin-preview": {
"type": "local",
"command": [
"node",
"/Users/jeremy/dev/global-brain/src/mcp/preview-server.mjs"
],
"enabled": true
},
"sin-neural-bus": {
"type": "local",
"command": [
"node",
"/Users/jeremy/.local/bin/opensin-neural-bus-mcp"
],
"enabled": false
}
},
"agent": {
"Atlas (Plan Executor)": {
"model": "qwen/coder-model",
"options": {
"reasoningEffort": "high",
"autoAccept": true,
"confirm": false,
"allowAll": true
},
"steps": 999999,
"fallback": "qwen/coder-model"
},
"Hephaestus (Deep Agent)": {
"model": "qwen/coder-model",
"options": {
"reasoningEffort": "high",
"autoAccept": true,
"confirm": false,
"allowAll": true
},
"steps": 999999,
"fallback": "qwen/coder-model"
},
"Metis (Plan Consultant)": {
"model": "qwen/coder-model",
"options": {
"reasoningEffort": "high",
"autoAccept": true,
"confirm": false,
"allowAll": true
},
"steps": 999999,
"fallback": "qwen/coder-model"
},
"Momus (Plan Critic)": {
"model": "qwen/coder-model",
"options": {
"reasoningEffort": "high",
"autoAccept": true,
"confirm": false,
"allowAll": true
},
"steps": 999999,
"fallback": "qwen/coder-model"
},
"Prometheus (Plan Builder)": {
"model": "qwen/coder-model",
"options": {
"reasoningEffort": "high",
"autoAccept": true,
"confirm": false,
"allowAll": true
},
"steps": 999999,
"fallback": "qwen/coder-model"
},
"Sisyphus (Ultraworker)": {
"model": "qwen/coder-model",
"options": {
"reasoningEffort": "high",
"autoAccept": true,
"confirm": false,
"allowAll": true
},
"steps": 999999,
"fallback": "qwen/coder-model"
},
"Sisyphus-Junior (Fast-Ultraworker)": {
"model": "qwen/coder-model",
"options": {
"reasoningEffort": "medium",
"autoAccept": true,
"confirm": false,
"allowAll": true
},
"steps": 999999,
"fallback": "qwen/coder-model"
},
"artistry": {
"model": "qwen/coder-model",
"options": {
"reasoningEffort": "high",
"autoAccept": true,
"confirm": false,
"allowAll": true
},
"steps": 999999,
"fallback": "qwen/coder-model"
},
"build": {
"model": "qwen/coder-model",
"options": {
"reasoningEffort": "high",
"autoAccept": true,
"confirm": false,
"allowAll": true
},
"steps": 999999,
"fallback": "qwen/coder-model"
},
"compaction": {
"options": {
"reasoningEffort": "low",
"autoAccept": true,
"confirm": false,
"allowAll": true
},
"steps": 999999,
"fallback": "openai/gpt-5.4"
},
"explore": {
"model": "qwen/coder-model",
"options": {
"reasoningEffort": "low",
"autoAccept": true,
"confirm": false,
"allowAll": true
},
"steps": 999999,
"fallback": "qwen/coder-model"
},
"general": {
"model": "qwen/coder-model",
"options": {
"reasoningEffort": "medium",
"autoAccept": true,
"confirm": false,
"allowAll": true
},
"steps": 999999,
"fallback": "qwen/coder-model"
},
"librarian": {
"model": "openai/gpt-5.4",
"options": {
"reasoningEffort": "low",
"autoAccept": true,
"confirm": false,
"allowAll": true
},
"steps": 999999,
"fallback": "openai/gpt-5.4"
},
"multimodal-looker": {
"model": "nvidia-nim/llama-3.2-11b-vision-instruct",
"options": {
"reasoningEffort": "low",
"autoAccept": true,
"confirm": false,
"allowAll": true
},
"steps": 999999,
"description": "Zero-Shot Object Detection & Vision Understanding via NVIDIA NIM",
"fallback": "openai/gpt-5.4"
},
"oracle": {
"model": "qwen/coder-model",
"options": {
"reasoningEffort": "high",
"autoAccept": true,
"confirm": false,
"allowAll": true
},
"steps": 999999,
"fallback": "qwen/coder-model"
},
"plan": {
"model": "qwen/coder-model",
"options": {
"reasoningEffort": "high",
"autoAccept": true,
"confirm": false,
"allowAll": true
},
"steps": 999999,
"fallback": "qwen/coder-model"
},
"summary": {
"options": {
"reasoningEffort": "low",
"autoAccept": true,
"confirm": false,
"allowAll": true
},
"steps": 999999,
"fallback": "openai/gpt-5.4"
},
"title": {
"options": {
"reasoningEffort": "low",
"autoAccept": true,
"confirm": false,
"allowAll": true
},
"steps": 999999,
"fallback": "openai/gpt-5.4"
},
"omoc": {
"mode": "primary",
"options": {
"reasoningEffort": "high",
"autoAccept": true,
"confirm": false,
"allowAll": true
},
"description": "OMOC Swarm Orchestrator (auto swarm_discover/create + swarm_jam; uses swarm_max on request)",
"prompt": "You are OMOC, a multi-agent orchestrator running inside OpenCode.\n\nDo NOT start a swarm for greetings, acknowledgements, pleasantries, or tiny one-shot chat turns (for example: 'hi', 'hello', 'hey', 'thanks', 'ok', 'yo'). Reply directly in one concise sentence.\n\nDo NOT start a swarm for simple read-only questions that can be answered directly by inspecting one or two files or by using normal built-in tools. Answer those directly.\n\nStart a swarm only for real multi-step work such as implementation, debugging, coordinated edits, broad investigation, planning with parallel roles, or when the user explicitly asks for OMOC/swarm/parallel/best-of-n behavior.\n\nWhen you do start a swarm, use exactly one canonical swarm per request:\n1) First call swarm_discover({id:'sin-solver'}).\n2) If that does not find a swarm, call swarm_create({id:'sin-solver', title:'SIN-Solver OMOC', members:[{name:'hephaestus', agent:'hephaestus'}, {name:'oracle', agent:'oracle'}, {name:'momus', agent:'momus'}]}).\n3) Immediately call exactly one swarm_jam({id:'sin-solver', prompt:<user message>}).\n4) After swarm_jam returns, produce one concise integrated answer plus next concrete steps.\n\nNever invent extra swarm ids such as 'root', 'ctx', 'ContextGathering', or similar. Never create multiple swarms for one user message. Never call swarm_create twice in a row for the same message.\n\nIf the user explicitly asks for MAX / best-of-n / multiple independent implementations, run swarm_max({id:'sin-solver', prompt:<user message>, tries: 3, apply: true}) instead of swarm_jam.\n\nDo not use tmux. Keep all work inside the current project directory.\n\nWhen the user asks to use SIN-Terminal, visible terminal control, parallel OpenCode terminals/tabs, or to delegate work into multiple local OpenCode sessions, prefer the `sin-terminal` MCP tools over swarm tools. Use `sin_terminal_orchestrator_start` to open multiple visible OpenCode sessions in the same project, `sin_terminal_orchestrator_delegate` to steer them, `sin_terminal_orchestrator_status` to inspect them, and `sin_terminal_orchestrator_stop` to clean them up. Use regular `sin_terminal_interactive_*` tools for non-OpenCode terminal control.",
"steps": 999999,
"fallback": "openai/gpt-5.4"
},
"SIN-Zeus": {
"mode": "primary",
"model": "openai/gpt-5.4",
"options": {
"reasoningEffort": "high",
"autoAccept": true,
"confirm": false,
"allowAll": true
},
"description": "SIN-Zeus: Supreme fleet commander. Plans locally, creates GitHub Issues/branches, and AUTO-DISPATCHES the entire Team Coder HF VM fleet. Never idle — every open issue gets dispatched immediately. Never codes locally.",
"prompt": "You are SIN-Zeus, the local control-plane orchestrator for the SIN Code cloud workforce. You never execute feature work locally and you never directly edit product code locally. Your job is: inspect local repo state, research with explore/librarian/oracle, synthesize an ultra-plan, create an explicit git baseline when safely attributable, create GitHub Projects/issues/linked branches, and generate Hermes dispatch payloads for cloud executors.\n\nHard rules:\n- Never implement the requested feature locally.\n- Never resolve feature code conflicts locally.\n- GitHub is the source of truth for work intent and result state.\n- Hermes is a dispatcher only, not a planner.\n- HF VM executors do the real coding.\n- Before dispatch, inspect git status/diff and only create a local snapshot commit when the state is scoped and attributable.\n- If local dirty state is ambiguous, do planning only and do not mutate the repo.\n- Use explore for codebase analysis, librarian for official docs/examples, and oracle for architecture.\n- Prefer machine-readable artifacts over prose-only planning.\n\nExecution pattern:\n1) Run parallel research.\n2) Produce an ultra-plan.\n3) Ensure local base branch and SHA are explicit.\n4) Use Zeus bootstrap tooling to create GitHub Project/issues/linked branches.\n5) Use Hermes dispatch tooling to package cloud jobs.\n6) Report exact artifacts, SHAs, project numbers, issue URLs, and dispatch outputs.\n\nYou are a pure control-plane brain, never a local coder.\n\n# 🚨 AUTO-DISPATCH MANDATE FOR TEAM CODER FLEET (HIGHEST PRIORITY) 🚨\n\n**DU BIST SIN-ZEUS — DER OBERBEFEHLSHABER DER GESAMTEN TEAM CODER FLOTTE.**\nDeine Hauptaufgabe ist NICHT nur zu planen — du MUSST die Arbeit SOFORT an die HF VM Coder dispatchen.\n\n## GOLDENE REGELN:\n\n### 1. NEVER IDLE FLEET\n- Sobald GitHub Issues existieren (OPEN Status), MUESSEN sie SOFORT an die Team Coder Flotte dispatched werden.\n- Kein Warten auf User-Freigabe fuer Dispatch. Issues = Arbeitsauftraege = SOFORT dispatchen.\n- Pruefe IMMER: Gibt es OPEN Issues ohne aktive Dispatcher? -> SOFORT dispatchen.\n\n### 2. DISPATCH WORKFLOW (IMMER AUSFUEHREN)\nWenn du einen Build-Plan hast:\n1. **GitHub Issues erstellen** mit klaren Spezifikationen (wenn noch nicht vorhanden)\n2. **Branches erstellen** pro Issue (feat/issue-XXX-description)\n3. **call_omo_agent dispatchen** mit subagent_type='explore' ODER 'librarian' ODER 'oracle' — JEDE Komponente an einen eigenen Agenten\n4. **Dispatch Payload muss enthalten:**\n - Issue URL und Nummer\n - Branch Name\n - Vollstaendige Spezifikation (was gebaut werden muss)\n - Referenz-Architektur (was als Blaupause dient)\n - Repo Pfad und Working Directory\n - Akzeptanzkriterien (wann ist es fertig)\n5. **Parallel dispatch** — so viele Agenten gleichzeitig wie moeglich\n\n### 3. FLEET STATUS MONITORING\n- Pruefe regelmaessig den Status aller dispatched Agenten (background_output)\n- Bei Absturz: SOFORT neu dispatchen\n- Bei Erfolg: PR erstellen lassen, Issue closen, naechstes Issue dispatchen\n\n### 4. KEIN LOKALER CODE\n- Du codierst NIEMALS selbst Features.\n- Du loest NIEMALS Code-Konflikte lokal.\n- Deine Waffen sind: GitHub Issues, Branches, call_omo_agent Dispatches.\n\n### 5. DISPATCH TEMPLATE\nJeder dispatch Agent bekommt diesen Prompt:\n\nYou are a SIN Team Coder on HF VM. Your task:\n- Repo: OpenSIN-AI/OpenSIN-Code\n- Branch: feat/<branch-name>\n- Issue: #<number> (<URL>)\n- Task: <spezifikation>\n- Reference: <architektur-referenz>\n- Rules: Never mention Claude/Anthropic. Brand everything as OpenSIN/sincode. Use opencode CLI for LLM calls. Test before claiming done.\n- Deliver: Working code on the branch, PR ready for review\n\n\n# 🚨 AUTO-DISPATCH MANDATE FOR TEAM CODER FLEET (HIGHEST PRIORITY) 🚨\n\n**DU BIST SIN-ZEUS — DER OBERBEFEHLSHABER DER GESAMTEN TEAM CODER FLOTTE.**\nDeine Hauptaufgabe ist NICHT nur zu planen — du MUSST die Arbeit SOFORT an die HF VM Coder dispatchen.\n\n## GOLDENE REGELN:\n\n### 1. NEVER IDLE FLEET\n- Sobald GitHub Issues existieren (OPEN Status), MUESSEN sie SOFORT an die Team Coder Flotte dispatched werden.\n- Kein Warten auf User-Freigabe fuer Dispatch. Issues = Arbeitsauftraege = SOFORT dispatchen.\n- Pruefe IMMER: Gibt es OPEN Issues ohne aktive Dispatcher? -> SOFORT dispatchen.\n\n### 2. DISPATCH WORKFLOW (IMMER AUSFUEHREN)\nWenn du einen Build-Plan hast:\n1. **GitHub Issues erstellen** mit klaren Spezifikationen (wenn noch nicht vorhanden)\n2. **Branches erstellen** pro Issue (feat/issue-XXX-description)\n3. **call_omo_agent dispatchen** mit subagent_type='explore' ODER 'librarian' ODER 'oracle' — JEDE Komponente an einen eigenen Agenten\n4. **Dispatch Payload muss enthalten:**\n - Issue URL und Nummer\n - Branch Name\n - Vollstaendige Spezifikation (was gebaut werden muss)\n - Referenz-Architektur (was als Blaupause dient)\n - Repo Pfad und Working Directory\n - Akzeptanzkriterien (wann ist es fertig)\n5. **Parallel dispatch** — so viele Agenten gleichzeitig wie moeglich\n\n### 3. FLEET STATUS MONITORING\n- Pruefe regelmaessig den Status aller dispatched Agenten (background_output)\n- Bei Absturz: SOFORT neu dispatchen\n- Bei Erfolg: PR erstellen lassen, Issue closen, naechstes Issue dispatchen\n\n### 4. KEIN LOKALER CODE\n- Du codierst NIEMALS selbst Features.\n- Du loest NIEMALS Code-Konflikte lokal.\n- Deine Waffen sind: GitHub Issues, Branches, call_omo_agent Dispatches.\n\n### 5. DISPATCH TEMPLATE\nJeder dispatch Agent bekommt diesen Prompt:\n\nYou are a SIN Team Coder on HF VM. Your task:\n- Repo: OpenSIN-AI/OpenSIN-Code\n- Branch: feat/<branch-name>\n- Issue: #<number> (<URL>)\n- Task: <spezifikation>\n- Reference: <architektur-referenz>\n- Rules: Never mention Claude/Anthropic. Brand everything as OpenSIN/sincode. Use opencode CLI for LLM calls. Test before claiming done.\n- Deliver: Working code on the branch, PR ready for review\n",
"steps": 999999,
"fallback": "openai/gpt-5.4"
},
"sin-executor-solo": {
"mode": "primary",
"model": "qwen/coder-model",
"options": {
"reasoningEffort": "medium",
"autoAccept": true,
"confirm": false,
"allowAll": true
},
"description": "Single-agent coding executor for deterministic task processing without swarm orchestration.",
"prompt": "You are a direct single-agent coding executor. Work alone in the provided directory. Do not create or join swarms. Do not delegate. Do not edit governance/docs files unless the task explicitly requests docs/policy work. Prefer minimal concrete code changes, then report files changed and validations attempted.",
"steps": 999999,
"fallback": "nvidia/minimaxai/minimax-m2.7"
}
},
"default_agent": "SIN-Zeus",
"command": {
"omoc-swarm-create": {
"description": "Create/register a swarm for this session",
"template": "Nutze das Tool `swarm_create` um eine OMOC Swarm Session zu erstellen. Wenn $ARGUMENTS nicht leer ist, nutze es als id, sonst auto-id. Danach gib `swarm_status()` aus."
},
"omoc-swarm-discover": {
"description": "Discover swarm from session titles",
"template": "Nutze `swarm_discover` (optional mit id=$ARGUMENTS falls gegeben) und gib danach `swarm_status()` aus."
},
"omoc-jam": {
"description": "Collaborative swarm_jam",
"template": "Nutze `swarm_jam({ prompt: \"$ARGUMENTS\" })`. Wenn noch kein Swarm gebunden ist: erst `swarm_discover()` (oder `swarm_create()`), dann erneut `swarm_jam`."
},
"omoc-max": {
"description": "OMOC MAX best-of-n",
"template": "Nutze `swarm_max({ prompt: \"$ARGUMENTS\", tries: 3, apply: true })`. Wenn noch kein Swarm gebunden ist: erst `swarm_discover()` (oder `swarm_create()`), dann erneut `swarm_max`."
},
"omoc-status": {
"description": "Show swarm members and sessions",
"template": "Gib `swarm_status()` aus. Wenn kein Swarm gebunden ist, versuche `swarm_discover()`."
},
"omoc-autostart": {
"description": "Auto-bind swarm + start JAM guidance",
"template": "OMOC Autostart (keine Erklaerungen):\n\n1) ⚙ swarm_discover({ id: \"$ARGUMENTS\" })\n2) ⚙ swarm_jam({ id: \"$ARGUMENTS\", prompt: \"OMOC JAM Autostart: Koordiniert euch als Swarm (planner/researcher/coder/reviewer). Arbeitet kollaborativ im selben Worktree. Wenn der User nach maximaler Qualitaet/Best-of-N fragt, nutzt swarm_max automatisch. Warte ansonsten auf die naechste konkrete Aufgabe.\" })\n\nDanach: schreibe exakt: OMOC ready"
},
"sin-terminal-orchestrate": {
"description": "Use SIN-Terminal to open and steer parallel visible OpenCode sessions",
"template": "Nutze das MCP-Tool `sin_terminal_orchestrator_start` mit `cwd` auf das aktuelle Projekt, `sessionCount: 3`, sinnvollen `roles` und `confirm: true`. Nutze den User-Wunsch als `prompt`. Gib danach die `orchestrationId`, Rollen und naechste Steuerungsoptionen aus."
},
"sin-terminal-orchestrate-status": {
"description": "Show SIN-Terminal orchestration status",
"template": "Wenn $ARGUMENTS leer ist, erklaere kurz, dass eine orchestrationId gebraucht wird. Sonst nutze `sin_terminal_orchestrator_status` mit `orchestrationId: \"$ARGUMENTS\"` und gib den Status kompakt aus."
},
"sin-terminal-orchestrate-delegate": {
"description": "Delegate a follow-up prompt into a SIN-Terminal orchestration",
"template": "Wenn $ARGUMENTS leer ist, erklaere das JSON-Format `{ \"orchestrationId\": \"...\", \"prompt\": \"...\", \"role\": \"optional\" }`. Sonst parse $ARGUMENTS als JSON und nutze `sin_terminal_orchestrator_delegate` mit `confirm: true`."
},
"sin-terminal-orchestrate-stop": {
"description": "Stop all sessions in a SIN-Terminal orchestration",
"template": "Wenn $ARGUMENTS leer ist, erklaere kurz, dass eine orchestrationId gebraucht wird. Sonst nutze `sin_terminal_orchestrator_stop` mit `orchestrationId: \"$ARGUMENTS\"` und `confirm: true`."
},
"SIN-Zeus-bootstrap": {
"description": "Create GitHub Project and issue pool from a Zeus ultra-plan JSON",
"template": "Wenn $ARGUMENTS leer ist, erklaere das JSON-Format `{ \"owner\": \"...\", \"repo\": \"owner/repo\", \"title\": \"...\", \"planFile\": \"scripts/zeus/ultra-plan.example.json\", \"base\": \"main\", \"dryRun\": true }`. Sonst parse $ARGUMENTS als JSON und nutze `bash` um `node /Users/jeremy/dev/OpenSIN-backend/scripts/zeus/bootstrap-github-project.mjs --owner <owner> --repo <repo> --title <title> --plan-file <planFile> --base <base>` auszufuehren; wenn `dryRun` true ist, haenge `--dry-run` an."
},
"SIN-Zeus-hermes": {
"description": "Generate Hermes dispatch payloads for Zeus-created issues",
"template": "Wenn $ARGUMENTS leer ist, erklaere das JSON-Format `{ \"repo\": \"owner/repo\", \"repoPath\": \"/abs/path\", \"bootstrap\": \"Docs/operations/SIN-Zeus-bootstrap.json\" }`. Sonst parse $ARGUMENTS als JSON und nutze `bash` um `node /Users/jeremy/dev/OpenSIN-backend/scripts/zeus/hermes-dispatch.mjs --repo <repo> --repo-path <repoPath> --bootstrap <bootstrap>` auszufuehren."
},
"SIN-Zeus-status": {
"description": "Summarize current Zeus control-plane artifacts",
"template": "Nutze `bash` um, falls vorhanden, diese Dateien zu lesen: `/Users/jeremy/dev/OpenSIN-backend/Docs/operations/SIN-Zeus-bootstrap.json`, `/Users/jeremy/dev/OpenSIN-backend/Docs/operations/sin-hermes-dispatch.json`, `/Users/jeremy/dev/OpenSIN-backend/Docs/operations/alpha-acceptance-gates.json`. Fasse das Ergebnis kompakt zusammen."
},
"browser-goto": {
"description": "Navigate to URL in browser using webauto-nodriver-mcp",
"template": "Nutze `webauto-nodriver_goto` mit url: \"$ARGUMENTS\". NACH dem goto: SOFORT `webauto-nodriver_screenshot_to_file` machen und das Ergebnis dem Vision-Modell zur Pruefung vorlegen (PROCEED/STOP/RETRY)."
},
"browser-click-coords": {
"description": "Click at X,Y coordinates using webauto-nodriver-mcp",
"template": "Nutze `webauto-nodriver_click` mit x: $1 und y: $2. NACH dem Klick: SOFORT `webauto-nodriver_screenshot_to_file` machen und das Ergebnis dem Vision-Modell zur Pruefung vorlegen."
},
"browser-type-text": {
"description": "Type text into the current page",
"template": "Nutze `webauto-nodriver_type_text` mit text: \"$ARGUMENTS\". NACH dem Tippen: SOFORT `webauto-nodriver_screenshot_to_file` machen und das Ergebnis dem Vision-Modell zur Pruefung vorlegen."
},
"browser-press-key": {
"description": "Press a keyboard key",
"template": "Nutze `webauto-nodriver_press_key` mit key: \"$ARGUMENTS\". NACH dem Keypress: SOFORT Screenshot machen und dem Vision-Modell vorlegen."
},
"browser-screenshot": {
"description": "Take a screenshot of the current browser state",
"template": "Nutze `webauto-nodriver_screenshot_to_file` mit path: \"$ARGUMENTS\" (oder auto-generiere Pfad wie /tmp/screenshot_$(date +%Y%m%d_%H%M%S).png). Gib den Dateipfad zurueck."
},
"browser-click-selector": {
"description": "Click an element by CSS selector",
"template": "Nutze `webauto-nodriver_click_by_selector` mit selector: \"$ARGUMENTS\". WENN der Selector nicht gefunden: weiche auf `webauto-nodriver_click` mit den angegebenen Koordinaten aus. NACH dem Klick: SOFORT Screenshot und Vision-Check."
},
"browser-wait-element": {
"description": "Wait for element to appear by CSS selector",
"template": "Nutze `webauto-nodriver_wait_for_element_by_selector` mit selector: \"$ARGUMENTS\" und timeout: 15. Gib Status zurueck: gefunden/nicht gefunden."
},
"browser-wait-url": {
"description": "Wait for URL to match a pattern",
"template": "Nutze `webauto-nodriver_wait_for_url_pattern` mit pattern: \"$ARGUMENTS\" und timeout: 30. Gib zurueck ob URL matcht oder Timeout."
},
"vision-gate-check": {
"description": "MANDATORY Vision-Gate after every browser action - take screenshot and verify with vision model",
"template": "FUEHRE FOLGENDES AUS: 1) `webauto-nodriver_screenshot_to_file` mit auto-Path. 2) ANALYSIERE den Screenshot mit dem Vision-Modell (meta/llama-3.2-11b-vision-instruct) mit folgendem Prompt-Template: \"Du siehst einen Screenshot nach der Aktion: $ARGUMENTS. Erwartetes Ergebnis: [beschreibe was haette passieren sollen]. Pruefe: 1) Ist das erwartete Ergebnis eingetreten? 2) Gibt es Fehler/Captchas/Popups? 3) Ist die Seite vollstaendig geladen? Antworte mit PROCEED wenn alles OK, STOP wenn etwas falsch, RETRY wenn wiederholen.\" NUR bei PROCEED darf die naechste Aktion erfolgen!"
},
"observe-screen-check": {
"description": "Use observe_screen with DOM analysis for detailed page state",
"template": "Nutze `webauto-nodriver_observe_screen` mit include_dom: \"true\". Gib eine strukturierte Analyse zurueck: sichtbare Elemente, Interaktionsmoeglichkeiten, potenzielle Probleme."
},
"click-element-safe": {
"description": "Safe element click with selector + coordinates fallback + Vision-Gate",
"template": "VERSUCHE ZUERST: `webauto-nodriver_click_by_selector` mit selector: \"$ARGUMENTS\". FALLS DAS FEHSCHLAEGT: extrahiere Koordinaten und nutze `webauto-nodriver_click` mit x und y. DANACH: `webauto-nodriver_screenshot_to_file` + Vision-Gate Pruefung."
},
"smart-form-fill": {
"description": "Intelligently fill a form using smart_form_fill",
"template": "Nutze `webauto-nodriver_smart_form_fill` mit form_data: $ARGUMENTS (als JSON Objekt). Die Funktion matched automatisch Field-Labels mit den Daten. NACH dem Fill: Screenshot + Vision-Gate."
},
"extract-page-content": {
"description": "Extract comprehensive page content with optional DOM",
"template": "Nutze `webauto-nodriver_extract_page_content` mit include_dom: \"$ARGUMENTS\" (true/false). Gib strukturierte Inhalte zurueck: Text, Links, Bilder, Metadata."
},
"list-browser-tabs": {
"description": "List all open browser tabs",
"template": "Nutze `webauto-nodriver_list_tabs` um alle offenen Tabs aufzulisten. Gib Tab-Index, Titel und URL fuer jeden Tab aus."
},
"switch-browser-tab": {
"description": "Switch to a specific browser tab by index",
"template": "Nutze `webauto-nodriver_switch_tab` mit index: $ARGUMENTS (als Integer). Danach Screenshot machen und Vision-Gate Pruefung."
},
"bypass-cloudflare": {
"description": "Advanced Cloudflare challenge bypass",
"template": "Nutze `webauto-nodriver_bypass_cloudflare` fuer fortgeschrittene Cloudflare Challenge Umgehung mit menschlichen Verhaltensmustern. Gib Bypass-Status zurueck."
},
"human-like-scroll": {
"description": "Simulate human-like scrolling behavior",
"template": "Nutze `webauto-nodriver_human_like_behavior` mit duration: $ARGUMENTS (Sekunden, default 5). Simuliere menschliches Scrollen fuer Anti-Bot-Umgehung."
},
"whatsapp-send": {
"description": "Send WhatsApp message to phone number",
"template": "Nutze `webauto-nodriver_whatsapp_send` mit number: \"$1\" und message: \"$ARGUMENTS\". Gib Sendestatus zurueck."
},
"send-sms": {
"description": "Send SMS/iMessage to phone number",
"template": "Nutze `webauto-nodriver_send_sms` mit number: \"$1\" und message: \"$ARGUMENTS\". Gib Sendestatus zurueck."
},
"mac-calendar-create": {
"description": "Create a calendar event on macOS",
"template": "Parse $ARGUMENTS als JSON mit {calendar, title, start_time, end_time, notes}. Nutze `webauto-nodriver_mac_calendar_create` zum Erstellen des Termins. Gib Bestätigung zurueck."
},
"mac-notes-create": {
"description": "Create an Apple Note",
"template": "Parse $ARGUMENTS als JSON mit {folder, title, body}. Nutze `webauto-nodriver_mac_notes_create` zum Erstellen der Notiz. Gib Bestätigung zurueck."
},
"run-shell-cmd": {
"description": "Run a shell command with output",
"template": "Nutze `webauto-nodriver_run_shell` mit cmd: \"$ARGUMENTS\" und timeout_seconds: 30. Gib stdout und stderr zurueck."
},
"execute-javascript": {
"description": "Execute JavaScript in the current browser page",
"template": "Nutze `webauto-nodriver_execute_javascript` mit script: \"$ARGUMENTS\". Gib das Ergebnis der JS-Ausfuehrung zurueck. NACH Execution: Screenshot + Vision-Gate."
},
"make-phone-call": {
"description": "Make a phone call via macOS",
"template": "Nutze `webauto-nodriver_make_phone_call` mit number: \"$ARGUMENTS\". Starte den Anruf und gib Status zurueck."
},
"facetime-call": {
"description": "Make a FaceTime call",
"template": "Nutze `webauto-nodriver_facetime_call` mit target: \"$ARGUMENTS\" und video: false (standard Audio-Call). Gib Anruf-Status zurueck."
}
},
"skills": {
"paths": [
"/Users/jeremy/.config/opencode/skills"
]
},
"permission": "allow"
} |