@kaikybrofc/omnizap-system 2.3.5 → 2.3.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/.env.example CHANGED
@@ -1,586 +1,659 @@
1
1
  # ==============================
2
- # OmniZap - Ambiente base
2
+ # OmniZap - .env.example por prioridade
3
3
  # ==============================
4
-
5
- # Configuracoes gerais do bot
6
- COMMAND_PREFIX="#"
7
- COMMAND_REACT_EMOJI=🤖
8
- USER_ADMIN=seu_jid_de_admin@s.whatsapp.net
9
- IMAGE_MENU=https://example.com/assets/omnizap-banner.png
10
- PM2_APP_NAME=omnizap-system
11
- NODE_ENV=development
12
- LOG_LEVEL=info
13
- ECOSYSTEM_NAME=omnizap
14
- BAILEYS_VERSION=
15
-
16
- # Perfil de usuario / social
17
- USER_PROFILE_ACTIVE_DAYS=30
18
- USER_PROFILE_SOCIAL_DAYS=45
19
-
20
- # Captcha
21
- CAPTCHA_OK_EMOJI=✅
4
+ # P1 = Critico para iniciar o sistema
5
+ # P2 = Operacao base recomendada
6
+ # P3 = Funcionalidades de produto (opcional)
7
+ # P4 = Tuning avancado, IA e workers
8
+ # P5 = Operacao DevOps, deploy e release
22
9
 
23
10
  # ==============================
24
- # Banco de dados (MySQL)
11
+ # PRIORIDADE 1 - CRITICO (startup)
25
12
  # ==============================
13
+ BOT_NUMBER=
14
+ BOT_PHONE_NUMBER=
15
+ COMMAND_PREFIX="#"
16
+ COMMAND_REACT_EMOJI=🤖
26
17
  DB_HOST=localhost
27
- DB_USER=user1
28
- DB_PASSWORD=1234
29
18
  DB_NAME=omnizap
19
+ DB_PASSWORD=1234
30
20
  DB_POOL_LIMIT=10
21
+ DB_USER=user1
22
+ ECOSYSTEM_NAME=omnizap
23
+ LOG_LEVEL=info
24
+ NODE_ENV=development
25
+ OPENAI_API_KEY=
26
+ OWNER_NUMBER=5511999999999
27
+ PHONE_NUMBER=
28
+ PM2_APP_NAME=omnizap-system
29
+ SITE_ORIGIN=https://omnizap.shop
30
+ STICKER_API_BASE_PATH=/api/sticker-packs
31
+ STICKER_STORAGE_DIR=./data/stickers
32
+ STICKER_WEB_ORIGIN=https://omnizap.shop
33
+ STICKER_WEB_PATH=/stickers
34
+ USER_ADMIN=seu_jid_de_admin@s.whatsapp.net
35
+ WHATSAPP_BOT_NUMBER=5511999999999
36
+ WHATSAPP_LOGIN_BASE_URL=https://omnizap.shop
37
+ WHATSAPP_LOGIN_LINK_SECRET=troque_por_um_segredo_forte
38
+ WHATSAPP_LOGIN_PATH=/login/
39
+ WHATSAPP_LOGIN_TRIGGER=iniciar
40
+ WHATSAPP_SUPPORT_NUMBER=5511999999999
31
41
 
32
- # Fila de escrita em banco
33
- DB_WRITE_FLUSH_MS=1500
34
- DB_MESSAGE_BATCH_SIZE=200
42
+ # ==============================
43
+ # PRIORIDADE 2 - OPERACAO BASE
44
+ # ==============================
45
+ ADM_EMAIL=admin@omnizap.shop
46
+ ADM_MODERATOR_PASSWORD_MIN_LENGTH=8
47
+ ADM_PANEL=
48
+ ADM_PANEL_PASSWORD=
49
+ ADM_PANEL_SESSION_TTL_MS=43200000
50
+ ADMIN_API_TOKEN=
51
+ ADMIN_RATE_LIMIT_MAX=30
52
+ ADMIN_RATE_LIMIT_WINDOW_MS=60000
53
+ ADMIN_TOKEN=
54
+ APP_BASE_URL=https://omnizap.shop
55
+ BAILEYS_EVENT_LOG_ENABLED=false
56
+ BAILEYS_MSG_RETRY_CACHE_CHECKPERIOD_SECONDS=120
57
+ BAILEYS_MSG_RETRY_CACHE_TTL_SECONDS=600
58
+ BAILEYS_RECONNECT_ATTEMPT_RESET_MS=600000
59
+ BAILEYS_VERSION=
60
+ BASE_URL=https://omnizap.shop
61
+ CAPTCHA_OK_EMOJI=✅
35
62
  DB_CHAT_BATCH_SIZE=200
36
63
  DB_CHAT_COOLDOWN_MS=45000
64
+ DB_LOG_EVERY_QUERY=false
65
+ DB_MESSAGE_BATCH_SIZE=200
37
66
  DB_MESSAGE_QUEUE_MAX=5000
38
-
39
- # Monitor de banco (logs/slow queries)
40
- # DB_MONITOR_ENABLED: por padrao e true em dev e false em production
41
67
  DB_MONITOR_ENABLED=true
42
- DB_SLOW_QUERY_MS=250
43
- DB_LOG_EVERY_QUERY=false
44
- DB_STATS_TOP_N=10
45
- DB_STATS_SAMPLE_SIZE=2000
46
- DB_SLOW_EXPLAIN=false
68
+ DB_MONITOR_LOG_KEEP=5
47
69
  DB_MONITOR_LOG_PATH=./logs/db-monitor.log
48
70
  DB_MONITOR_LOG_ROTATE_MB=20
49
- DB_MONITOR_LOG_KEEP=5
50
71
  DB_MONITOR_SNAPSHOT_EVERY_MS=0
51
-
52
- # Alertas de query (ms), separados por virgula
53
72
  DB_QUERY_ALERT_THRESHOLDS=500,1000
54
-
55
- # ==============================
56
- # LID/JID
57
- # ==============================
58
- LID_BACKFILL_ON_START=true
73
+ DB_SLOW_EXPLAIN=false
74
+ DB_SLOW_QUERY_MS=250
75
+ DB_STATS_SAMPLE_SIZE=2000
76
+ DB_STATS_TOP_N=10
77
+ DB_WRITE_FLUSH_MS=1500
78
+ DOMAIN_EVENT_OUTBOX_LOCK_TIMEOUT_SECONDS=900
79
+ FEATURE_FLAG_CACHE_TTL_MS=30000
80
+ GITHUB_PROJECT_CACHE_SECONDS=300
81
+ GLOBAL_RANK_REFRESH_SECONDS=600
82
+ GROUP_SYNC_BATCH_SIZE=50
83
+ GROUP_SYNC_MAX_GROUPS=0
84
+ GROUP_SYNC_ON_CONNECT=true
85
+ GROUP_SYNC_TIMEOUT_MS=30000
86
+ HOME_MARKETPLACE_STATS_CACHE_SECONDS=45
87
+ HOSTNAME=
88
+ IMAGE_MENU=https://example.com/assets/omnizap-banner.png
59
89
  LID_BACKFILL_BATCH=50000
60
-
61
- # ==============================
62
- # Observabilidade do app (metrics endpoint interno)
63
- # ==============================
90
+ LID_BACKFILL_ON_START=true
91
+ MARKETPLACE_GLOBAL_STATS_CACHE_SECONDS=45
92
+ MESSAGE_ANALYTICS_ENABLED=true
93
+ MESSAGE_ANALYTICS_SOURCE=whatsapp
64
94
  METRICS_ENABLED=true
95
+ METRICS_ENDPOINT=
65
96
  METRICS_HOST=0.0.0.0
66
- METRICS_PORT=9102
67
97
  METRICS_PATH=/metrics
68
- METRICS_SERVICE_NAME=omnizap
69
- # Override opcional para comando de ping (se vazio, usa METRICS_HOST/PORT/PATH)
70
- METRICS_ENDPOINT=
71
98
  METRICS_PING_TIMEOUT_MS=1500
72
-
73
- # Telemetria extra do comando social (0=off, 1=on)
74
- OMNIZAP_SOCIAL_METRICS=0
99
+ METRICS_PORT=9102
100
+ METRICS_SERVICE_NAME=omnizap
101
+ name=
102
+ NODE_APP_INSTANCE=
103
+ NSFW_STICKER_PLACEHOLDER_URL=https://iili.io/qfhwS6u.jpg
104
+ pm_id=
105
+ PM2_INSTANCE_ID=
106
+ PUBLIC_BASE_URL=https://omnizap.shop
107
+ PUBLIC_WEB_BASE_URL=https://omnizap.shop
108
+ RATE_LIMIT_TRUST_PROXY=false
109
+ README_COMMAND_PREFIX=/
110
+ README_MESSAGE_TYPE_SAMPLE_LIMIT=25000
111
+ README_SUMMARY_CACHE_SECONDS=1800
112
+ SITE_CANONICAL_HOST=omnizap.shop
113
+ SITE_CANONICAL_REDIRECT_ENABLED=true
114
+ SITE_CANONICAL_SCHEME=https
115
+ SITE_COOKIE_DOMAIN=omnizap.shop
116
+ SITE_URL=https://omnizap.shop
117
+ STICKER_ADMIN_REDIRECT_TO_USER=true
118
+ STICKER_CATALOG_CREATOR_RANKING_CACHE_SECONDS=120
119
+ STICKER_CATALOG_ENABLED=true
120
+ STICKER_CATALOG_LIST_CACHE_SECONDS=90
121
+ STICKER_CATALOG_ONLY_CLASSIFIED=true
122
+ STICKER_CATALOG_PACK_PAYLOAD_CACHE_SECONDS=300
123
+ STICKER_CLASSIFICATION_BACKGROUND_BATCH_SIZE=30
124
+ STICKER_CLASSIFICATION_BACKGROUND_CONCURRENCY=2
125
+ STICKER_CLASSIFICATION_BACKGROUND_ENABLED=true
126
+ STICKER_CLASSIFICATION_BACKGROUND_INTERVAL_MAX_MS=600000
127
+ STICKER_CLASSIFICATION_BACKGROUND_INTERVAL_MIN_MS=300000
128
+ STICKER_CLASSIFICATION_BACKGROUND_INTERVAL_MS=0
129
+ STICKER_CLASSIFICATION_BACKGROUND_STARTUP_DELAY_MS=15000
130
+ STICKER_DATA_LIST_LIMIT=50
131
+ STICKER_DATA_LIST_MAX_LIMIT=200
132
+ STICKER_DATA_PUBLIC_DIR=./data
133
+ STICKER_DATA_PUBLIC_PATH=/data
134
+ STICKER_DATA_SCAN_MAX_FILES=10000
135
+ STICKER_DEFAULT_PACK_NAME=https://omnizap.shop/
136
+ STICKER_LOGIN_WEB_PATH=/login
137
+ STICKER_ORPHAN_LIST_LIMIT=120
138
+ STICKER_ORPHAN_LIST_MAX_LIMIT=300
139
+ STICKER_PACK_AUTO_COLLECT_ENABLED=true
140
+ STICKER_PACK_AUTO_COLLECT_NOTIFY=true
141
+ STICKER_PACK_AUTO_PACK_NAME=minhasfigurinhas
142
+ STICKER_PACK_AUTO_PACK_VISIBILITY=private
143
+ STICKER_PACK_FALLBACK_SEND_LIMIT=30
144
+ STICKER_PACK_LAST_CACHE_TTL_MS=21600000
145
+ STICKER_PACK_MAX_ITEMS=30
146
+ STICKER_PACK_MAX_PACKS_PER_OWNER=0
147
+ STICKER_PACK_MAX_STICKER_BYTES=2097152
148
+ STICKER_PACK_PREVIEW_LINES=20
149
+ STICKER_PACK_RATE_MAX_ACTIONS=20
150
+ STICKER_PACK_RATE_WINDOW_MS=60000
151
+ STICKER_PACK_ZIP_ENABLED=false
152
+ STICKER_SEO_DISCOVERY_CACHE_SECONDS=180
153
+ STICKER_SEO_DISCOVERY_LINK_LIMIT=60
154
+ STICKER_SITEMAP_CACHE_SECONDS=180
155
+ STICKER_SITEMAP_MAX_PACKS=45000
156
+ STICKER_SUPPORT_WHATSAPP_TEXT="Ola! Preciso de suporte no catalogo OmniZap."
157
+ STICKER_SYSTEM_METRICS_TIMEOUT_MS=1200
158
+ STICKER_WEB_ASSET_CACHE_SECONDS=600
159
+ STICKER_WEB_ASSET_VERSION=
160
+ STICKER_WEB_DRAFT_CLEANUP_RUN_INTERVAL_MS=900000
161
+ STICKER_WEB_DRAFT_CLEANUP_TTL_MS=86400000
162
+ STICKER_WEB_EDIT_TOKEN_TTL_MS=21600000
163
+ STICKER_WEB_GOOGLE_AUTH_REQUIRED=false
164
+ STICKER_WEB_GOOGLE_CLIENT_ID=
165
+ STICKER_WEB_GOOGLE_SESSION_COOKIE_PATH=/
166
+ STICKER_WEB_GOOGLE_SESSION_DB_PRUNE_INTERVAL_MS=3600000
167
+ STICKER_WEB_GOOGLE_SESSION_DB_TOUCH_INTERVAL_MS=60000
168
+ STICKER_WEB_GOOGLE_SESSION_TTL_MS=604800000
169
+ STICKER_WEB_IMMUTABLE_ASSET_CACHE_SECONDS=31536000
170
+ STICKER_WEB_LIST_LIMIT=24
171
+ STICKER_WEB_LIST_MAX_LIMIT=60
172
+ STICKER_WEB_MY_PROFILE_INCLUDE_AUTO_PACKS=false
173
+ STICKER_WEB_STATIC_TEXT_CACHE_SECONDS=3600
174
+ STICKER_WEB_UPLOAD_CONCURRENCY=3
175
+ STICKER_WEB_UPLOAD_SOURCE_MAX_BYTES=20971520
176
+ STICKER_WEB_WHATSAPP_MESSAGE_TEMPLATE=/pack send {{pack_key}}
177
+ STORE_PATH=./temp
178
+ SYSTEM_SUMMARY_CACHE_SECONDS=20
179
+ USER_PROFILE_ACTIVE_DAYS=30
180
+ USER_PROFILE_SOCIAL_DAYS=45
181
+ USER_PROFILE_WEB_PATH=/user
182
+ WEB_SESSION_COOKIE_TTL_SECONDS=2592000
183
+ WEB_URL=https://omnizap.shop
184
+ WEB_VISITOR_COOKIE_TTL_SECONDS=31536000
185
+ WHATSAPP_COMMAND_REQUIRES_GOOGLE_LOGIN=true
186
+ WHATSAPP_GOOGLE_LINK_CHECK_CACHE_TTL_MS=60000
187
+ WHATSAPP_LOGIN_LINK_TTL_SECONDS=900
188
+ WHATSAPP_LOGIN_REQUIRE_SIGNATURE=true
75
189
 
76
190
  # ==============================
77
- # Noticias
191
+ # PRIORIDADE 3 - FUNCIONALIDADES
78
192
  # ==============================
193
+ DEBUG_FFMPEG=false
194
+ FFMPEG_PATH=ffmpeg
195
+ FFPROBE_PATH=ffprobe
196
+ HTTP_SLO_TARGET_MS=750
79
197
  NEWS_API_URL=http://127.0.0.1:3001
80
198
  NEWS_SENT_IDS_LIMIT=500
81
-
82
- # ==============================
83
- # OpenAI
84
- # ==============================
85
- OPENAI_API_KEY=
86
- OPENAI_MODEL=gpt-5-nano
199
+ OMNIZAP_SOCIAL_METRICS=0
87
200
  OPENAI_IMAGE_MODEL=gpt-5-nano
88
- OPENAI_SYSTEM_PROMPT=
89
- OPENAI_SESSION_TTL_SECONDS=21600
90
- OPENAI_TIMEOUT_MS=30000
91
201
  OPENAI_IMAGE_TIMEOUT_MS=120000
202
+ OPENAI_MAX_IMAGE_MB=50
92
203
  OPENAI_MAX_RETRIES=2
204
+ OPENAI_MODEL=gpt-5-nano
93
205
  OPENAI_RETRY_BASE_MS=500
94
206
  OPENAI_RETRY_MAX_MS=4000
95
- OPENAI_MAX_IMAGE_MB=50
96
- OPENAI_TTS_MODEL=gpt-4o-mini-tts
97
- OPENAI_TTS_VOICE=alloy
207
+ OPENAI_SESSION_TTL_SECONDS=21600
208
+ OPENAI_SYSTEM_PROMPT=
209
+ OPENAI_TIMEOUT_MS=30000
98
210
  OPENAI_TTS_FORMAT=mp3
99
- OPENAI_TTS_PTT=false
100
211
  OPENAI_TTS_MAX_CHARS=4096
101
-
102
- # ==============================
103
- # Quote
104
- # ==============================
105
- QUOTE_BG_COLOR="#144d37"
106
- QUOTE_NAME_COLOR="#facc01"
107
- QUOTE_TEXT_COLOR="#e8eef6"
108
- QUOTE_TIMEOUT_MS=10000
109
- QUOTE_EMOJI_TIMEOUT_MS=4000
110
- QUOTE_EMOJI_BASE_URL=https://raw.githubusercontent.com/googlefonts/noto-emoji/main/png/128
111
- QUOTE_FONT_FAMILY="Noto Sans,Segoe UI,Arial,Noto Color Emoji,Apple Color Emoji,Segoe UI Emoji,sans-serif"
112
-
113
- # Legado (atualmente nao usado no codigo principal)
114
- QUOTE_API_URL=https://bot.lyo.su/quote/generate.png
115
-
116
- # ==============================
117
- # Waifu
118
- # ==============================
119
- WAIFU_PICS_BASE=https://api.waifu.pics
120
- WAIFU_PICS_TIMEOUT_MS=15000
121
- WAIFU_PICS_ALLOW_NSFW=false
122
-
123
- # Legado (atualmente nao usado no codigo principal)
124
- WAIFU_API_TOKEN=
125
- WAIFU_API_BASE=https://waifu.it/api/v4
126
- WAIFU_TIMEOUT_MS=15000
127
-
128
- # ==============================
129
- # PokeAPI
130
- # ==============================
212
+ OPENAI_TTS_MODEL=gpt-4o-mini-tts
213
+ OPENAI_TTS_PTT=false
214
+ OPENAI_TTS_VOICE=alloy
215
+ PLAY_API_DOWNLOAD_TIMEOUT_MS=1800000
216
+ PLAY_API_TIMEOUT_MS=900000
217
+ PLAY_MAX_MB=100
218
+ PLAY_QUEUE_STATUS_TIMEOUT_MS=8000
219
+ PLAY_VIDEO_FORCE_TRANSCODE=true
220
+ PLAY_VIDEO_PROCESS_TIMEOUT_MS=420000
131
221
  POKEAPI_CACHE_TTL_MS=21600000
132
- POKEAPI_TIMEOUT_MS=10000
222
+ POKEAPI_DNS_FAMILY=4
223
+ POKEAPI_LORE_LANGS=pt-br,pt,en
133
224
  POKEAPI_RETRY_ATTEMPTS=2
134
225
  POKEAPI_RETRY_BASE_DELAY_MS=350
135
- POKEAPI_DNS_FAMILY=4
226
+ POKEAPI_TIMEOUT_MS=10000
136
227
  POKEAPI_USER_AGENT=omnizap-system/2.1 (+https://github.com/Kaikygr/omnizap-system)
137
- POKEAPI_LORE_LANGS=pt-br,pt,en
138
-
139
- # ==============================
140
- # Midia (play / yt-dlp API)
141
- # ==============================
142
- YTDLS_BASE_URL=http://127.0.0.1:3000
143
- YT_DLS_BASE_URL=
144
- PLAY_API_TIMEOUT_MS=900000
145
- PLAY_API_DOWNLOAD_TIMEOUT_MS=1800000
146
- PLAY_QUEUE_STATUS_TIMEOUT_MS=8000
147
- PLAY_MAX_MB=100
148
- PLAY_VIDEO_PROCESS_TIMEOUT_MS=420000
149
- PLAY_VIDEO_FORCE_TRANSCODE=true
150
-
151
- # TikTok
152
- TIKTOK_EXTRACT_BASE_URL=http://127.0.0.1:8000
153
- TIKTOK_EXTRACT_PATH=/extract
154
- TIKTOK_EXTRACT_TIMEOUT_SECONDS=60
155
- TIKTOK_HTTP_TIMEOUT_MS=120000
156
- TIKTOK_MAX_MB=80
157
- TIKTOK_MAX_URLS_PER_COMMAND=5
158
- TIKTOK_MAX_IMAGES_PER_POST=10
159
-
160
- # FFmpeg / debug
161
- FFMPEG_PATH=ffmpeg
162
- FFPROBE_PATH=ffprobe
163
- DEBUG_FFMPEG=false
164
-
165
- # ==============================
166
- # RPG Pokemon
167
- # ==============================
228
+ QUOTE_API_URL=https://bot.lyo.su/quote/generate.png
229
+ QUOTE_BG_COLOR="#144d37"
230
+ QUOTE_EMOJI_BASE_URL=https://raw.githubusercontent.com/googlefonts/noto-emoji/main/png/128
231
+ QUOTE_EMOJI_TIMEOUT_MS=4000
232
+ QUOTE_FONT_FAMILY="Noto Sans,Segoe UI,Arial,Noto Color Emoji,Apple Color Emoji,Segoe UI Emoji,sans-serif"
233
+ QUOTE_NAME_COLOR="#facc01"
234
+ QUOTE_TEXT_COLOR="#e8eef6"
235
+ QUOTE_TIMEOUT_MS=10000
236
+ README_SNAPSHOT_SOURCE_URL=https://omnizap.shop/api/sticker-packs/readme-markdown
237
+ README_SNAPSHOT_TARGET_PATH=README.md
238
+ README_SNAPSHOT_TIMEOUT_MS=15000
239
+ RPG_BATTLE_CANVAS_CACHE_LIMIT=120
240
+ RPG_BATTLE_CANVAS_CACHE_TTL_MS=600000
241
+ RPG_BATTLE_CANVAS_ENABLED=true
242
+ RPG_BATTLE_CANVAS_TIMEOUT_MS=7000
243
+ RPG_BATTLE_DAMAGE_MAX_HP_RATIO=0.5
244
+ RPG_BATTLE_DAMAGE_SCALE=0.68
245
+ RPG_BATTLE_DAMAGE_SUPER_EFFECTIVE_BONUS_RATIO=0.2
246
+ RPG_BATTLE_DAMAGE_ULTRA_EFFECTIVE_BONUS_RATIO=0.25
168
247
  RPG_BATTLE_TTL_MS=300000
169
- RPG_STARTER_LEVEL=5
170
- RPG_POTION_HEAL_HP=25
171
- RPG_SUPER_POTION_HEAL_HP=60
172
- RPG_SHOP_REFRESH_MS=3600000
173
- RPG_SHOP_ITEMS_PER_POCKET=6
174
- RPG_POKEDEX_TOTAL=1025
175
- RPG_DEFAULT_REGION=kanto
176
- RPG_SESSION_IDLE_MS=600000
177
- RPG_RAID_TTL_MS=1200000
178
- RPG_PVP_TTL_MS=900000
179
- RPG_PVP_COOLDOWN_MS=30000
180
- RPG_PVP_QUEUE_TTL_MS=600000
181
- RPG_PVP_WIN_GOLD=220
182
- RPG_PVP_WIN_PLAYER_XP=140
183
- RPG_PVP_WIN_POKEMON_XP=120
184
- RPG_PVP_WIN_POINTS=3
185
- RPG_PVP_LOSS_POINTS=1
186
- RPG_STARTER_GOLD=450
187
- RPG_STARTER_POKEBALL_QTY=4
188
- RPG_STARTER_POTION_QTY=3
189
- RPG_SHOP_COST_FACTOR=0.22
190
- RPG_SHOP_COST_MIN=28
191
- RPG_ECONOMY_RESCUE_COOLDOWN_MS=21600000
192
- RPG_ECONOMY_RESCUE_MAX_GOLD=60
193
- RPG_ECONOMY_RESCUE_GOLD=90
194
- RPG_ECONOMY_RESCUE_POTION_QTY=1
195
- RPG_TRADE_TTL_MS=1200000
248
+ RPG_BIOME_LOOKUP_ATTEMPTS=6
196
249
  RPG_COOP_CAPTURE_TARGET=25
197
250
  RPG_COOP_RAID_TARGET=8
198
251
  RPG_COOP_REWARD_GOLD=220
199
- RPG_COOP_REWARD_XP=160
200
252
  RPG_COOP_REWARD_ITEM_KEY=pokeball
201
253
  RPG_COOP_REWARD_ITEM_QTY=2
202
- RPG_KARMA_BONUS_THRESHOLD=20
203
- RPG_KARMA_BONUS_RATE=0.08
204
- RPG_SOCIAL_XP_CONVERSION_RATE=0.25
205
- RPG_SOCIAL_XP_ACTION_CAP=45
206
- RPG_SOCIAL_XP_DAILY_CONVERSION_CAP=300
207
- RPG_SOCIAL_XP_PLAYER_SHARE=0.6
208
- RPG_SOCIAL_XP_KARMA_BOOST_RATE=0.08
209
- RPG_SOCIAL_XP_GROUP_BOOST_RATE=0.05
210
- RPG_SOCIAL_XP_ABUSE_PENALTY_RATE=0.12
211
- RPG_SOCIAL_XP_ABUSE_CAP_HITS_THRESHOLD=3
212
-
213
- # Eventos semanais
214
- RPG_EVENT_CAPTURE_TARGET=40
254
+ RPG_COOP_REWARD_XP=160
255
+ RPG_DEFAULT_REGION=kanto
256
+ RPG_ECONOMY_RESCUE_COOLDOWN_MS=21600000
257
+ RPG_ECONOMY_RESCUE_GOLD=90
258
+ RPG_ECONOMY_RESCUE_MAX_GOLD=60
259
+ RPG_ECONOMY_RESCUE_POTION_QTY=1
215
260
  RPG_EVENT_CAPTURE_REWARD_GOLD=160
216
261
  RPG_EVENT_CAPTURE_REWARD_XP=120
217
- RPG_EVENT_PVP_TARGET=14
262
+ RPG_EVENT_CAPTURE_TARGET=40
218
263
  RPG_EVENT_PVP_REWARD_GOLD=220
219
264
  RPG_EVENT_PVP_REWARD_XP=150
265
+ RPG_EVENT_PVP_TARGET=14
220
266
  RPG_EVENT_RAID_DAMAGE_TARGET=4500
221
267
  RPG_EVENT_RAID_REWARD_GOLD=210
222
268
  RPG_EVENT_RAID_REWARD_XP=145
223
-
224
- # Spawn / batalha
225
- RPG_WILD_MAX_POKE_ID=1025
226
- RPG_MOVE_SAMPLE_LIMIT=24
227
- RPG_SHINY_CHANCE=0.01
228
- RPG_BIOME_LOOKUP_ATTEMPTS=6
229
- RPG_SPECIES_FILTER_ATTEMPTS=5
269
+ RPG_KARMA_BONUS_RATE=0.08
270
+ RPG_KARMA_BONUS_THRESHOLD=20
230
271
  RPG_LEGENDARY_SPAWN_CHANCE=0.06
272
+ RPG_MOVE_SAMPLE_LIMIT=24
231
273
  RPG_MYTHICAL_SPAWN_CHANCE=0.03
232
- RPG_BATTLE_DAMAGE_SCALE=0.68
233
- RPG_BATTLE_DAMAGE_MAX_HP_RATIO=0.5
234
- RPG_BATTLE_DAMAGE_SUPER_EFFECTIVE_BONUS_RATIO=0.2
235
- RPG_BATTLE_DAMAGE_ULTRA_EFFECTIVE_BONUS_RATIO=0.25
236
-
237
- # Renderizacao canvas (batalha/perfil)
238
- RPG_BATTLE_CANVAS_ENABLED=true
274
+ RPG_POKEDEX_TOTAL=1025
275
+ RPG_POTION_HEAL_HP=25
276
+ RPG_PROFILE_CANVAS_CACHE_LIMIT=80
277
+ RPG_PROFILE_CANVAS_CACHE_TTL_MS=600000
239
278
  RPG_PROFILE_CANVAS_ENABLED=true
240
- RPG_BATTLE_CANVAS_CACHE_TTL_MS=600000
241
- RPG_BATTLE_CANVAS_CACHE_LIMIT=120
242
- RPG_BATTLE_CANVAS_TIMEOUT_MS=7000
243
279
  RPG_PROFILE_CANVAS_TIMEOUT_MS=6000
244
- RPG_PROFILE_CANVAS_CACHE_TTL_MS=600000
245
- RPG_PROFILE_CANVAS_CACHE_LIMIT=80
280
+ RPG_PVP_COOLDOWN_MS=30000
281
+ RPG_PVP_LOSS_POINTS=1
282
+ RPG_PVP_QUEUE_TTL_MS=600000
283
+ RPG_PVP_TTL_MS=900000
284
+ RPG_PVP_WIN_GOLD=220
285
+ RPG_PVP_WIN_PLAYER_XP=140
286
+ RPG_PVP_WIN_POINTS=3
287
+ RPG_PVP_WIN_POKEMON_XP=120
288
+ RPG_RAID_TTL_MS=1200000
289
+ RPG_SESSION_IDLE_MS=600000
290
+ RPG_SHINY_CHANCE=0.01
291
+ RPG_SHOP_COST_FACTOR=0.22
292
+ RPG_SHOP_COST_MIN=28
293
+ RPG_SHOP_ITEMS_PER_POCKET=6
294
+ RPG_SHOP_REFRESH_MS=3600000
295
+ RPG_SOCIAL_XP_ABUSE_CAP_HITS_THRESHOLD=3
296
+ RPG_SOCIAL_XP_ABUSE_PENALTY_RATE=0.12
297
+ RPG_SOCIAL_XP_ACTION_CAP=45
298
+ RPG_SOCIAL_XP_CONVERSION_RATE=0.25
299
+ RPG_SOCIAL_XP_DAILY_CONVERSION_CAP=300
300
+ RPG_SOCIAL_XP_GROUP_BOOST_RATE=0.05
301
+ RPG_SOCIAL_XP_KARMA_BOOST_RATE=0.08
302
+ RPG_SOCIAL_XP_PLAYER_SHARE=0.6
303
+ RPG_SPECIES_FILTER_ATTEMPTS=5
304
+ RPG_STARTER_GOLD=450
305
+ RPG_STARTER_LEVEL=5
306
+ RPG_STARTER_POKEBALL_QTY=4
307
+ RPG_STARTER_POTION_QTY=3
308
+ RPG_SUPER_POTION_HEAL_HP=60
309
+ RPG_TRADE_TTL_MS=1200000
310
+ RPG_WILD_MAX_POKE_ID=1025
311
+ STICKER_LOADTEST_BASE_URL=http://127.0.0.1:9102
312
+ STICKER_OBJECT_STORAGE_ACCESS_KEY_ID=
313
+ STICKER_OBJECT_STORAGE_BUCKET=
314
+ STICKER_OBJECT_STORAGE_CDN_BASE_URL=
315
+ STICKER_OBJECT_STORAGE_ENABLED=false
316
+ STICKER_OBJECT_STORAGE_ENDPOINT=
317
+ STICKER_OBJECT_STORAGE_FORCE_PATH_STYLE=true
318
+ STICKER_OBJECT_STORAGE_KEY_PREFIX=stickers
319
+ STICKER_OBJECT_STORAGE_PROVIDER=s3
320
+ STICKER_OBJECT_STORAGE_REGION=us-east-1
321
+ STICKER_OBJECT_STORAGE_SECRET_ACCESS_KEY=
322
+ STICKER_OBJECT_STORAGE_SIGNED_URL_ENABLED=true
323
+ STICKER_OBJECT_STORAGE_SIGNED_URL_TTL_SECONDS=300
324
+ STICKER_OBJECT_STORAGE_UPLOAD_ON_WRITE=true
325
+ STICKER_OBJECT_STORAGE_UPLOAD_TIMEOUT_MS=10000
326
+ TIKTOK_EXTRACT_BASE_URL=http://127.0.0.1:8000
327
+ TIKTOK_EXTRACT_PATH=/extract
328
+ TIKTOK_EXTRACT_TIMEOUT_SECONDS=60
329
+ TIKTOK_HTTP_TIMEOUT_MS=120000
330
+ TIKTOK_MAX_IMAGES_PER_POST=10
331
+ TIKTOK_MAX_MB=80
332
+ TIKTOK_MAX_URLS_PER_COMMAND=5
333
+ WAIFU_API_BASE=https://waifu.it/api/v4
334
+ WAIFU_API_TOKEN=
335
+ WAIFU_PICS_ALLOW_NSFW=false
336
+ WAIFU_PICS_BASE=https://api.waifu.pics
337
+ WAIFU_PICS_TIMEOUT_MS=15000
338
+ WAIFU_TIMEOUT_MS=15000
339
+ YT_DLS_BASE_URL=
340
+ YTDLS_BASE_URL=http://127.0.0.1:3000
246
341
 
247
342
  # ==============================
248
- # Sticker packs
343
+ # PRIORIDADE 4 - TUNING AVANCADO
249
344
  # ==============================
250
- STICKER_STORAGE_DIR=./data/stickers
251
- STICKER_PACK_MAX_ITEMS=30
252
- STICKER_PACK_MAX_PACKS_PER_OWNER=0
253
- STICKER_PACK_MAX_STICKER_BYTES=2097152
254
- STICKER_PACK_LAST_CACHE_TTL_MS=21600000
255
- STICKER_PACK_RATE_MAX_ACTIONS=20
256
- STICKER_PACK_RATE_WINDOW_MS=60000
257
- STICKER_PACK_PREVIEW_LINES=20
258
- STICKER_PACK_FALLBACK_SEND_LIMIT=30
259
- STICKER_PACK_ZIP_ENABLED=false
260
- STICKER_PACK_AUTO_COLLECT_ENABLED=true
261
- STICKER_PACK_AUTO_COLLECT_NOTIFY=true
262
- STICKER_DEFAULT_PACK_NAME=https://omnizap.shop/
263
- STICKER_PACK_AUTO_PACK_NAME=minhasfigurinhas
264
- STICKER_PACK_AUTO_PACK_VISIBILITY=private
265
- CLIP_CLASSIFIER_ENABLED=true
345
+ ADAPTIVE_ALPHA=0.4
346
+ AFFINITY_LOG_SCALE=4.0
347
+ AFFINITY_WEIGHT_CAP=0.85
348
+ AGGRESSIVE_MIGRATION_THRESHOLD=0.01
349
+ ARCHIVE_LOW_SCORE_PACKS=false
350
+ AUTO_ARCHIVE_BELOW_PERCENTILE=20
351
+ AUTO_PACK_PROFILE=BALANCED
352
+ CLASSIFICATION_MAX_TAGS=6
266
353
  CLIP_CLASSIFIER_API_URL=http://127.0.0.1:8008/classify
267
- CLIP_CLASSIFIER_FEEDBACK_API_URL=http://127.0.0.1:8008/feedback
268
- CLIP_CLASSIFIER_TIMEOUT_MS=3000
269
- CLIP_CLASSIFIER_PROVIDER=mobileclip
270
354
  CLIP_CLASSIFIER_CLASSIFICATION_VERSION=v1
355
+ CLIP_CLASSIFIER_ENABLED=true
356
+ CLIP_CLASSIFIER_FEEDBACK_API_URL=http://127.0.0.1:8008/feedback
357
+ CLIP_CLASSIFIER_MODEL_VERSION=v1
271
358
  CLIP_CLASSIFIER_NSFW_THRESHOLD=0.6
272
- CLIP_MODEL_NAME=MobileCLIP-S1
273
- CLIP_MODEL_PRETRAINED=datacompdr
359
+ CLIP_CLASSIFIER_PROVIDER=mobileclip
360
+ CLIP_CLASSIFIER_TIMEOUT_MS=3000
274
361
  CLIP_DEFAULT_LABELS_JSON=
275
362
  CLIP_DEFAULT_LABELS_PATH=
276
363
  CLIP_MAX_LABELS=256
364
+ CLIP_MODEL_NAME=MobileCLIP-S1
365
+ CLIP_MODEL_PRETRAINED=datacompdr
277
366
  CLIP_TOP_K=5
278
- ENABLE_EMBEDDING_CACHE=true
279
- ENABLE_CLUSTERING=true
367
+ CURATION_OWNERS_POOL=
280
368
  ENABLE_ADAPTIVE_SCORING=true
281
- ENABLE_LLM_LABEL_EXPANSION=true
282
- ADAPTIVE_ALPHA=0.4
283
- ENTROPY_THRESHOLD=2.5
284
- ENTROPY_NORMALIZED_THRESHOLD=0.76
285
- AFFINITY_WEIGHT_CAP=0.85
286
369
  ENABLE_AFFINITY_LOG_SCALING=true
287
- AFFINITY_LOG_SCALE=4.0
370
+ ENABLE_CLUSTERING=true
371
+ ENABLE_EMBEDDING_CACHE=true
372
+ ENABLE_GLOBAL_OPTIMIZATION=true
288
373
  ENABLE_LLM_EXPANSION_GATING=true
289
- LLM_EXPANSION_MIN_MARGIN=0.08
374
+ ENABLE_LLM_LABEL_EXPANSION=true
375
+ ENABLE_SEMANTIC_CLUSTERING=false
376
+ ENTROPY_NORMALIZED_THRESHOLD=0.76
377
+ ENTROPY_THRESHOLD=2.5
378
+ GLOBAL_ENERGY_W1=0.40
379
+ GLOBAL_ENERGY_W2=0.25
380
+ GLOBAL_ENERGY_W3=0.10
381
+ GLOBAL_ENERGY_W4=0.15
382
+ GLOBAL_ENERGY_W5=0.10
383
+ INTER_PACK_SIMILARITY_THRESHOLD=0.85
290
384
  LLM_EXPANSION_MAX_ENTROPY_NORMALIZED=0.72
291
- SIMILARITY_THRESHOLD=0.85
292
- SIMILARITY_LIMIT=25
293
- SIMILARITY_SCAN_LIMIT=3000
385
+ LLM_EXPANSION_MIN_MARGIN=0.08
294
386
  LLM_LABEL_EXPANSION_MODEL=gpt-4.1-mini
295
387
  LLM_LABEL_EXPANSION_TIMEOUT_MS=6000
296
- STICKER_CLASSIFICATION_TAG_MIN_SCORE=0.2
388
+ MERGE_THRESHOLD=0.75
389
+ MIGRATION_CANDIDATE_LIMIT=16
390
+ MIN_PACK_SIZE=8
391
+ OPTIMIZATION_CYCLES=3
392
+ OPTIMIZATION_EPSILON=0.001
393
+ OPTIMIZATION_STABLE_CYCLES=2
297
394
  PACK_CLASSIFICATION_TAG_MIN_SCORE=0.18
298
- CLASSIFICATION_MAX_TAGS=6
299
- ENABLE_SEMANTIC_CLUSTERING=false
300
- SEMANTIC_CLUSTER_SIMILARITY_THRESHOLD=0.87
301
- SEMANTIC_CLUSTER_MIN_SIZE_FOR_PACK=12
395
+ PACK_QUALITY_W1=0.32
396
+ PACK_QUALITY_W2=0.24
397
+ PACK_QUALITY_W3=0.16
398
+ PACK_QUALITY_W4=0.14
399
+ PACK_QUALITY_W5=0.09
400
+ PACK_QUALITY_W6=0.07
401
+ PACK_TIER_BRONZE_THRESHOLD=0.50
402
+ PACK_TIER_GOLD_THRESHOLD=0.80
403
+ PACK_TIER_QUALITY_W1=0.40
404
+ PACK_TIER_QUALITY_W2=0.25
405
+ PACK_TIER_QUALITY_W3=0.15
406
+ PACK_TIER_QUALITY_W4=0.10
407
+ PACK_TIER_QUALITY_W5=0.10
408
+ PACK_TIER_SILVER_THRESHOLD=0.65
409
+ SEMANTIC_CLUSTER_CONCURRENCY=2
302
410
  SEMANTIC_CLUSTER_EMBEDDING_MODEL=text-embedding-3-small
303
- SEMANTIC_CLUSTER_SLUG_MODEL=gpt-4o-mini
304
- SEMANTIC_CLUSTER_OPENAI_TIMEOUT_MS=10000
305
411
  SEMANTIC_CLUSTER_MAX_SCAN=5000
306
412
  SEMANTIC_CLUSTER_MAX_SUGGESTIONS_PER_ASSET=8
307
- SEMANTIC_CLUSTER_CONCURRENCY=2
308
413
  SEMANTIC_CLUSTER_MEMORY_CACHE_TTL_MS=300000
414
+ SEMANTIC_CLUSTER_MIN_SIZE_FOR_PACK=12
415
+ SEMANTIC_CLUSTER_OPENAI_TIMEOUT_MS=10000
309
416
  SEMANTIC_CLUSTER_REPROCESS_EXISTING=false
310
- STICKER_CLASSIFICATION_BACKGROUND_ENABLED=true
311
- STICKER_CLASSIFICATION_BACKGROUND_STARTUP_DELAY_MS=15000
312
- STICKER_CLASSIFICATION_BACKGROUND_INTERVAL_MS=0
313
- STICKER_CLASSIFICATION_BACKGROUND_INTERVAL_MIN_MS=300000
314
- STICKER_CLASSIFICATION_BACKGROUND_INTERVAL_MAX_MS=600000
315
- STICKER_CLASSIFICATION_BACKGROUND_CONCURRENCY=2
316
- STICKER_CLASSIFICATION_BACKGROUND_BATCH_SIZE=30
317
- STICKER_REPROCESS_PRIORITY_BACKFILL_ENABLED=true
318
- STICKER_REPROCESS_PRIORITY_BACKFILL_SCAN_LIMIT=300
319
- STICKER_REPROCESS_PRIORITY_BACKFILL_PRIORITY=95
320
- STICKER_SEMANTIC_RECLASSIFICATION_ENABLED=true
321
- STICKER_SEMANTIC_RECLASSIFICATION_BATCH_SIZE=400
322
- STICKER_SEMANTIC_RECLASSIFICATION_MAX_PER_CYCLE=2000
323
- STICKER_SEMANTIC_RECLASSIFICATION_ENTROPY_THRESHOLD=0.8
324
- STICKER_SEMANTIC_RECLASSIFICATION_AFFINITY_THRESHOLD=0.3
325
- STICKER_AUTO_PACK_BY_TAGS_ENABLED=true
326
- STICKER_AUTO_PACK_BY_TAGS_STARTUP_DELAY_MS=20000
327
- STICKER_AUTO_PACK_BY_TAGS_INTERVAL_MS=0
328
- STICKER_AUTO_PACK_BY_TAGS_INTERVAL_MIN_MS=300000
329
- STICKER_AUTO_PACK_BY_TAGS_INTERVAL_MAX_MS=600000
330
- STICKER_AUTO_PACK_BY_TAGS_TARGET_SIZE=30
331
- STICKER_AUTO_PACK_BY_TAGS_MIN_GROUP_SIZE=8
332
- STICKER_AUTO_PACK_BY_TAGS_MAX_GROUPS=12
333
- STICKER_AUTO_PACK_BY_TAGS_MAX_SCAN_ASSETS=5000
334
- STICKER_AUTO_PACK_BY_TAGS_MAX_ADDITIONS_PER_CYCLE=300
335
- STICKER_AUTO_PACK_BY_TAGS_MAX_REMOVALS_PER_CYCLE=120
336
- STICKER_AUTO_PACK_BY_TAGS_TOP_TAGS_PER_ASSET=3
337
- STICKER_AUTO_PACK_BY_TAGS_SCAN_PASSES=2
338
- STICKER_AUTO_PACK_BY_TAGS_SCAN_PASS_JITTER_PERCENT=12
339
- STICKER_AUTO_PACK_BY_TAGS_STABILITY_Z_SCORE=1.282
340
- STICKER_AUTO_PACK_BY_TAGS_MIN_ASSET_ACCEPTANCE_RATE=0.45
341
- STICKER_AUTO_PACK_BY_TAGS_MIN_THEME_DOMINANCE_RATIO=0.55
342
- STICKER_AUTO_PACK_BY_TAGS_SCORE_STDDEV_PENALTY=0.18
343
- AUTO_PACK_PROFILE=BALANCED
344
- AGGRESSIVE_MIGRATION_THRESHOLD=0.01
345
- ARCHIVE_LOW_SCORE_PACKS=false
346
- STICKER_AUTO_PACK_BY_TAGS_NSFW_THRESHOLD=0.7
347
- STICKER_AUTO_PACK_BY_TAGS_NSFW_SUGGESTIVE_THRESHOLD=0.4
348
- STICKER_AUTO_PACK_BY_TAGS_NSFW_EXPLICIT_THRESHOLD=0.78
349
- STICKER_AUTO_PACK_BY_TAGS_MIN_ASSET_EDGE=192
350
- STICKER_AUTO_PACK_BY_TAGS_MIN_ASSET_AREA=36864
351
- STICKER_AUTO_PACK_BY_TAGS_MIN_ASSET_BYTES=6144
352
- STICKER_AUTO_PACK_BY_TAGS_MAX_BLURRY_SCORE=0.82
353
- STICKER_AUTO_PACK_BY_TAGS_MAX_LOW_QUALITY_SCORE=0.82
354
- STICKER_AUTO_PACK_BY_TAGS_DEDUPE_SIMILARITY_THRESHOLD=0.985
355
- STICKER_AUTO_PACK_BY_TAGS_REBUILD_ENABLED=true
356
- STICKER_AUTO_PACK_BY_TAGS_INCLUDE_PACKED_WHEN_REBUILD_DISABLED=false
357
- STICKER_AUTO_PACK_BY_TAGS_MAX_PACKS_PER_OWNER=0
358
- STICKER_AUTO_PACK_BY_TAGS_PRIORITIZE_COMPLETION=true
359
- STICKER_AUTO_PACK_BY_TAGS_COMPLETION_TRANSFER_ENABLED=true
360
- STICKER_AUTO_PACK_BY_TAGS_COMPLETION_TRANSFER_MIN_DONOR_ITEMS=8
361
- STICKER_AUTO_PACK_BY_TAGS_ENTROPY_WEIGHT=0.09
362
- STICKER_AUTO_PACK_BY_TAGS_AMBIGUOUS_FLAG_PENALTY=0.06
417
+ SEMANTIC_CLUSTER_SIMILARITY_THRESHOLD=0.87
418
+ SEMANTIC_CLUSTER_SLUG_MODEL=gpt-4o-mini
419
+ SIMILARITY_LIMIT=25
420
+ SIMILARITY_SCAN_LIMIT=3000
421
+ SIMILARITY_THRESHOLD=0.85
363
422
  STICKER_AUTO_PACK_BY_TAGS_ADAPTIVE_BONUS_WEIGHT=0.18
364
- STICKER_AUTO_PACK_BY_TAGS_MARGIN_BONUS_WEIGHT=0.12
365
- STICKER_AUTO_PACK_BY_TAGS_SIMILAR_IMAGES_PENALTY_WEIGHT=0.08
366
- STICKER_AUTO_PACK_BY_TAGS_LLM_TRAIT_WEIGHT=0.10
367
423
  STICKER_AUTO_PACK_BY_TAGS_AFFINITY_CAP=0.85
368
- STICKER_AUTO_PACK_BY_TAGS_ENABLE_AFFINITY_LOG_SCALING=true
369
424
  STICKER_AUTO_PACK_BY_TAGS_AFFINITY_LOG_SCALE=4
425
+ STICKER_AUTO_PACK_BY_TAGS_AMBIGUOUS_FLAG_PENALTY=0.06
370
426
  STICKER_AUTO_PACK_BY_TAGS_ASSET_QUALITY_W1=0.34
371
427
  STICKER_AUTO_PACK_BY_TAGS_ASSET_QUALITY_W2=0.24
372
428
  STICKER_AUTO_PACK_BY_TAGS_ASSET_QUALITY_W3=0.18
373
429
  STICKER_AUTO_PACK_BY_TAGS_ASSET_QUALITY_W4=0.24
430
+ STICKER_AUTO_PACK_BY_TAGS_COHESION_REBUILD_THRESHOLD=0.56
431
+ STICKER_AUTO_PACK_BY_TAGS_COMPLETION_TRANSFER_ENABLED=true
432
+ STICKER_AUTO_PACK_BY_TAGS_COMPLETION_TRANSFER_MIN_DONOR_ITEMS=8
433
+ STICKER_AUTO_PACK_BY_TAGS_DEDUPE_SIMILARITY_THRESHOLD=0.985
434
+ STICKER_AUTO_PACK_BY_TAGS_DYNAMIC_GROUP_LIMIT_BASE=30
435
+ STICKER_AUTO_PACK_BY_TAGS_ENABLE_AFFINITY_LOG_SCALING=true
436
+ STICKER_AUTO_PACK_BY_TAGS_ENABLED=true
437
+ STICKER_AUTO_PACK_BY_TAGS_ENTROPY_WEIGHT=0.09
438
+ STICKER_AUTO_PACK_BY_TAGS_GLOBAL_PACK_LIMIT=300
439
+ STICKER_AUTO_PACK_BY_TAGS_HARD_MIN_GROUP_SIZE=12
440
+ STICKER_AUTO_PACK_BY_TAGS_HARD_MIN_PACK_ITEMS=12
441
+ STICKER_AUTO_PACK_BY_TAGS_INCLUDE_PACKED_WHEN_REBUILD_DISABLED=false
442
+ STICKER_AUTO_PACK_BY_TAGS_INTERVAL_MAX_MS=600000
443
+ STICKER_AUTO_PACK_BY_TAGS_INTERVAL_MIN_MS=300000
444
+ STICKER_AUTO_PACK_BY_TAGS_INTERVAL_MS=0
445
+ STICKER_AUTO_PACK_BY_TAGS_LLM_TRAIT_WEIGHT=0.10
446
+ STICKER_AUTO_PACK_BY_TAGS_MARGIN_BONUS_WEIGHT=0.12
447
+ STICKER_AUTO_PACK_BY_TAGS_MAX_ADDITIONS_PER_CYCLE=300
448
+ STICKER_AUTO_PACK_BY_TAGS_MAX_BLURRY_SCORE=0.82
449
+ STICKER_AUTO_PACK_BY_TAGS_MAX_GROUPS=12
450
+ STICKER_AUTO_PACK_BY_TAGS_MAX_LOW_QUALITY_SCORE=0.82
451
+ STICKER_AUTO_PACK_BY_TAGS_MAX_PACKS_PER_OWNER=0
452
+ STICKER_AUTO_PACK_BY_TAGS_MAX_PACKS_PER_THEME=1
453
+ STICKER_AUTO_PACK_BY_TAGS_MAX_REMOVALS_PER_CYCLE=120
454
+ STICKER_AUTO_PACK_BY_TAGS_MAX_SCAN_ASSETS=5000
455
+ STICKER_AUTO_PACK_BY_TAGS_MIN_ASSET_ACCEPTANCE_RATE=0.45
456
+ STICKER_AUTO_PACK_BY_TAGS_MIN_ASSET_AREA=36864
457
+ STICKER_AUTO_PACK_BY_TAGS_MIN_ASSET_BYTES=6144
458
+ STICKER_AUTO_PACK_BY_TAGS_MIN_ASSET_EDGE=192
459
+ STICKER_AUTO_PACK_BY_TAGS_MIN_GROUP_SIZE=8
460
+ STICKER_AUTO_PACK_BY_TAGS_MIN_THEME_DOMINANCE_RATIO=0.55
461
+ STICKER_AUTO_PACK_BY_TAGS_MOVE_IN_THRESHOLD=0.12
462
+ STICKER_AUTO_PACK_BY_TAGS_MOVE_OUT_THRESHOLD=0.22
463
+ STICKER_AUTO_PACK_BY_TAGS_NSFW_EXPLICIT_THRESHOLD=0.78
464
+ STICKER_AUTO_PACK_BY_TAGS_NSFW_SUGGESTIVE_THRESHOLD=0.4
465
+ STICKER_AUTO_PACK_BY_TAGS_NSFW_THRESHOLD=0.7
466
+ STICKER_AUTO_PACK_BY_TAGS_PRIORITIZE_COMPLETION=true
467
+ STICKER_AUTO_PACK_BY_TAGS_PUBLISHER=OmniZap Auto
374
468
  STICKER_AUTO_PACK_BY_TAGS_READY_MIN_ITEMS=1
375
- ENABLE_GLOBAL_OPTIMIZATION=true
376
- OPTIMIZATION_CYCLES=3
377
- OPTIMIZATION_EPSILON=0.001
378
- OPTIMIZATION_STABLE_CYCLES=2
379
- TRANSFER_THRESHOLD=0.02
380
- MERGE_THRESHOLD=0.75
381
- MIGRATION_CANDIDATE_LIMIT=16
382
- TRANSFER_CANDIDATE_SIMILARITY_FLOOR=0.35
383
- INTER_PACK_SIMILARITY_THRESHOLD=0.85
384
- MIN_PACK_SIZE=8
385
- AUTO_ARCHIVE_BELOW_PERCENTILE=20
386
- SYSTEM_REDUNDANCY_LAMBDA=0.2
387
- GLOBAL_ENERGY_W1=0.40
388
- GLOBAL_ENERGY_W2=0.25
389
- GLOBAL_ENERGY_W3=0.10
390
- GLOBAL_ENERGY_W4=0.15
391
- GLOBAL_ENERGY_W5=0.10
392
- PACK_TIER_GOLD_THRESHOLD=0.80
393
- PACK_TIER_SILVER_THRESHOLD=0.65
394
- PACK_TIER_BRONZE_THRESHOLD=0.50
395
- PACK_TIER_QUALITY_W1=0.40
396
- PACK_TIER_QUALITY_W2=0.25
397
- PACK_TIER_QUALITY_W3=0.15
398
- PACK_TIER_QUALITY_W4=0.10
399
- PACK_TIER_QUALITY_W5=0.10
469
+ STICKER_AUTO_PACK_BY_TAGS_REBUILD_ENABLED=true
470
+ STICKER_AUTO_PACK_BY_TAGS_RECHECK_SAMPLE_PERCENT=5
471
+ STICKER_AUTO_PACK_BY_TAGS_RETRO_CONSOLIDATION_ENABLED=true
472
+ STICKER_AUTO_PACK_BY_TAGS_RETRO_CONSOLIDATION_MUTATION_LIMIT=2000
473
+ STICKER_AUTO_PACK_BY_TAGS_RETRO_CONSOLIDATION_THEME_LIMIT=1000
474
+ STICKER_AUTO_PACK_BY_TAGS_REVIEW_CLASSIFICATION_VERSION=
475
+ STICKER_AUTO_PACK_BY_TAGS_SCAN_PASS_JITTER_PERCENT=12
476
+ STICKER_AUTO_PACK_BY_TAGS_SCAN_PASSES=2
477
+ STICKER_AUTO_PACK_BY_TAGS_SCORE_STDDEV_PENALTY=0.18
478
+ STICKER_AUTO_PACK_BY_TAGS_SIMILAR_IMAGES_PENALTY_WEIGHT=0.08
479
+ STICKER_AUTO_PACK_BY_TAGS_STABILITY_Z_SCORE=1.282
480
+ STICKER_AUTO_PACK_BY_TAGS_STARTUP_DELAY_MS=20000
481
+ STICKER_AUTO_PACK_BY_TAGS_TARGET_SIZE=30
482
+ STICKER_AUTO_PACK_BY_TAGS_TOP_TAGS_PER_ASSET=3
483
+ STICKER_AUTO_PACK_BY_TAGS_VISIBILITY=public
484
+ STICKER_AUTO_PACK_CURATION_OWNERS_POOL=
485
+ STICKER_AUTO_PACK_OWNER_JID=
486
+ STICKER_CLASSIFICATION_TAG_MIN_SCORE=0.2
487
+ STICKER_CREATOR_VERIFIED_PUBLISHERS=omnizap,omnizap auto
488
+ STICKER_DEDICATED_WORKER_COHORT_KEY=
489
+ STICKER_DEDICATED_WORKER_MAX_TASKS_PER_TICK=1
490
+ STICKER_DEDICATED_WORKER_POLL_INTERVAL_MS=2500
491
+ STICKER_DEDICATED_WORKER_RETRY_DELAY_SECONDS=60
492
+ STICKER_DEDICATED_WORKERS_ENABLED=true
493
+ STICKER_DEDICATED_WORKERS_FORCE_ENABLED=false
494
+ STICKER_DOMAIN_EVENT_CLASSIFICATION_COALESCE_WINDOW_SECONDS=60
495
+ STICKER_DOMAIN_EVENT_CONSUMER_COHORT_KEY=
496
+ STICKER_DOMAIN_EVENT_CONSUMER_ENABLED=true
497
+ STICKER_DOMAIN_EVENT_CONSUMER_POLLER_INTERVAL_MS=2000
498
+ STICKER_DOMAIN_EVENT_CONSUMER_RETRY_DELAY_SECONDS=45
499
+ STICKER_DOMAIN_EVENT_CONSUMER_STARTUP_DELAY_MS=8000
500
+ STICKER_DOMAIN_EVENT_CURATION_COALESCE_WINDOW_SECONDS=60
501
+ STICKER_DOMAIN_EVENT_REBUILD_COALESCE_WINDOW_SECONDS=120
502
+ STICKER_DRIFT_REFRESH_MS=600000
503
+ STICKER_DRIFT_SENSITIVITY=1
400
504
  STICKER_MATRIX_ALPHA=0.38
401
505
  STICKER_MATRIX_BETA=0.27
402
- STICKER_MATRIX_GAMMA=0.23
403
506
  STICKER_MATRIX_DELTA=0.18
404
- PACK_QUALITY_W1=0.32
405
- PACK_QUALITY_W2=0.24
406
- PACK_QUALITY_W3=0.16
407
- PACK_QUALITY_W4=0.14
408
- PACK_QUALITY_W5=0.09
409
- PACK_QUALITY_W6=0.07
410
- STICKER_AUTO_PACK_BY_TAGS_VISIBILITY=public
411
- STICKER_AUTO_PACK_BY_TAGS_PUBLISHER=OmniZap Auto
412
- STICKER_CREATOR_VERIFIED_PUBLISHERS=omnizap,omnizap auto
413
-
414
- # Catalogo web de packs
415
- STICKER_CATALOG_ENABLED=true
416
- STICKER_WEB_PATH=/stickers
417
- STICKER_API_BASE_PATH=/api/sticker-packs
418
- STICKER_WEB_LIST_LIMIT=24
419
- STICKER_WEB_LIST_MAX_LIMIT=60
420
- STICKER_ORPHAN_LIST_LIMIT=120
421
- STICKER_ORPHAN_LIST_MAX_LIMIT=300
422
- STICKER_WEB_ASSET_CACHE_SECONDS=600
423
- STICKER_CATALOG_ONLY_CLASSIFIED=true
424
- STICKER_DATA_PUBLIC_PATH=/data
425
- STICKER_DATA_PUBLIC_DIR=./data
426
- STICKER_DATA_LIST_LIMIT=50
427
- STICKER_DATA_LIST_MAX_LIMIT=200
428
- STICKER_DATA_SCAN_MAX_FILES=10000
429
-
430
- # Login web via WhatsApp -> Google
431
- WHATSAPP_LOGIN_TRIGGER=iniciar
432
- WHATSAPP_LOGIN_BASE_URL=https://omnizap.shop
433
- WHATSAPP_LOGIN_PATH=/login/
434
- WHATSAPP_LOGIN_LINK_SECRET=troque_por_um_segredo_forte
435
- WHATSAPP_LOGIN_LINK_TTL_SECONDS=900
436
- WHATSAPP_LOGIN_REQUIRE_SIGNATURE=true
437
- # Canonical/cookies do catalogo web (necessario para compartilhar sessao entre www e dominio raiz)
438
- SITE_CANONICAL_HOST=omnizap.shop
439
- SITE_CANONICAL_SCHEME=https
440
- SITE_CANONICAL_REDIRECT_ENABLED=true
441
- SITE_COOKIE_DOMAIN=omnizap.shop
442
-
443
- # Paths locais (legado/uso auxiliar)
444
- STORE_PATH=./temp
507
+ STICKER_MATRIX_GAMMA=0.23
508
+ STICKER_NSFW_EXPLICIT_THRESHOLD=0.78
509
+ STICKER_NSFW_SUGGESTIVE_THRESHOLD=0.4
510
+ STICKER_PACK_AGE_DECAY_DAYS=45
511
+ STICKER_REPROCESS_LOW_CONFIDENCE_SCAN_LIMIT=250
512
+ STICKER_REPROCESS_LOW_CONFIDENCE_STALE_HOURS=48
513
+ STICKER_REPROCESS_LOW_CONFIDENCE_THRESHOLD=0.65
514
+ STICKER_REPROCESS_MAX_PER_CYCLE=30
515
+ STICKER_REPROCESS_MODEL_UPGRADE_SCAN_LIMIT=350
516
+ STICKER_REPROCESS_PRIORITY_BACKFILL_ENABLED=true
517
+ STICKER_REPROCESS_PRIORITY_BACKFILL_PRIORITY=95
518
+ STICKER_REPROCESS_PRIORITY_BACKFILL_SCAN_LIMIT=300
519
+ STICKER_REPROCESS_QUEUE_ENABLED=true
520
+ STICKER_REPROCESS_RETRY_DELAY_SECONDS=120
521
+ STICKER_SCORE_SNAPSHOT_BATCH_SIZE=120
522
+ STICKER_SCORE_SNAPSHOT_ENABLED=true
523
+ STICKER_SCORE_SNAPSHOT_FULL_REBUILD_EVERY_CYCLES=12
524
+ STICKER_SCORE_SNAPSHOT_MAX_PENDING_PACKS=2000
525
+ STICKER_SCORE_SNAPSHOT_REFRESH_INTERVAL_MS=300000
526
+ STICKER_SCORE_SNAPSHOT_SOURCE_VERSION=v1
527
+ STICKER_SCORE_SNAPSHOT_STARTUP_DELAY_MS=20000
528
+ STICKER_SCORE_SNAPSHOT_TARGETED_BATCH_SIZE=60
529
+ STICKER_SEMANTIC_RECLASSIFICATION_AFFINITY_THRESHOLD=0.3
530
+ STICKER_SEMANTIC_RECLASSIFICATION_BATCH_SIZE=400
531
+ STICKER_SEMANTIC_RECLASSIFICATION_ENABLED=true
532
+ STICKER_SEMANTIC_RECLASSIFICATION_ENTROPY_THRESHOLD=0.8
533
+ STICKER_SEMANTIC_RECLASSIFICATION_MAX_PER_CYCLE=2000
534
+ STICKER_WORKER_CLASSIFICATION_CADENCE_MS=120000
535
+ STICKER_WORKER_CURATION_CADENCE_MS=180000
536
+ STICKER_WORKER_PIPELINE_COHORT_KEY=
537
+ STICKER_WORKER_PIPELINE_ENABLED=false
538
+ STICKER_WORKER_PIPELINE_INLINE_POLLER_ENABLED=true
539
+ STICKER_WORKER_PIPELINE_INLINE_POLLER_FORCE_ENABLED=false
540
+ STICKER_WORKER_PIPELINE_POLLER_INTERVAL_MS=4000
541
+ STICKER_WORKER_PIPELINE_RETRY_DELAY_SECONDS=45
542
+ STICKER_WORKER_PIPELINE_SCHEDULER_INTERVAL_MS=15000
543
+ STICKER_WORKER_PIPELINE_STARTUP_DELAY_MS=12000
544
+ STICKER_WORKER_REBUILD_CADENCE_MS=240000
545
+ STICKER_WORKER_TASK_LOCK_TIMEOUT_SECONDS=900
546
+ STICKER_WORKER_TASK_TYPE=
547
+ SYSTEM_REDUNDANCY_LAMBDA=0.2
548
+ TRANSFER_CANDIDATE_SIMILARITY_FLOOR=0.35
549
+ TRANSFER_THRESHOLD=0.02
445
550
 
446
551
  # ==============================
447
- # Observabilidade via docker-compose
552
+ # PRIORIDADE 5 - DEVOPS / RELEASE
448
553
  # ==============================
449
- STACK_NAME=omnizap
450
-
451
- # Prometheus
452
- PROMETHEUS_IMAGE_TAG=v2.52.0
453
- PROMETHEUS_RETENTION_TIME=15d
454
- PROMETHEUS_RETENTION_SIZE=20GB
455
- PROMETHEUS_CONFIG_PATH=./observability/prometheus.yml
456
- PROMETHEUS_ALERT_RULES_PATH=./observability/alert-rules.yml
457
- PROMETHEUS_PORT=9090
458
-
459
- # Grafana
460
- GRAFANA_IMAGE_TAG=10.4.3
461
- GRAFANA_ADMIN_USER=admin
462
- GRAFANA_ADMIN_PASSWORD=admin
463
- GRAFANA_ROOT_URL=%(protocol)s://%(domain)s:%(http_port)s/
464
- GRAFANA_TIMEZONE=America/Boa_Vista
465
- GRAFANA_PROVISIONING_PATH=./observability/grafana/provisioning
466
- GRAFANA_DASHBOARDS_PATH=./observability/grafana/dashboards
467
- GRAFANA_PORT=3003
468
-
469
- # Loki
470
- LOKI_IMAGE_TAG=2.9.4
471
- LOKI_CONFIG_PATH=./observability/loki-config.yml
472
- LOKI_PORT=3100
473
-
474
- # Promtail
475
- PROMTAIL_IMAGE_TAG=2.9.4
476
- PROMTAIL_CONFIG_PATH=./observability/promtail-config.yml
477
554
  APP_LOGS_PATH=./logs
478
- MYSQL_LOGS_PATH=/var/lib/mysql
479
- PROMTAIL_PORT=9080
480
-
481
- # MySQL Exporter
482
- MYSQL_EXPORTER_IMAGE_TAG=v0.15.1
483
- MYSQL_EXPORTER_DSN=exporter:exporter@(host.docker.internal:3306)/
484
- MYSQL_EXPORTER_CNF_PATH=./observability/mysql-exporter.cnf
485
- MYSQL_EXPORTER_PORT=9104
486
-
487
- # Node Exporter
488
- NODE_EXPORTER_IMAGE_TAG=v1.7.0
489
- NODE_EXPORTER_PORT=9100
490
-
491
- # ==============================
492
- # Deploy / GitHub Deployments
493
- # ==============================
494
- # Habilita marcação de deploy no GitHub em `npm run deploy`
495
- DEPLOY_GITHUB_NOTIFY=1
496
- # Ambiente exibido na aba Deployments do repositório
555
+ DEPLOY_BACKUP_DIR=/var/www/omnizap/.backup
556
+ DEPLOY_BUILD_ID=
557
+ DEPLOY_CREATE_BACKUP=1
558
+ DEPLOY_DRY_RUN=0
559
+ DEPLOY_GITHUB_ENV_URL=
497
560
  DEPLOY_GITHUB_ENVIRONMENT=production
498
- # Repositório alvo (owner/repo). Opcional se o remote.origin estiver configurado.
561
+ DEPLOY_GITHUB_LOG_URL=
562
+ DEPLOY_GITHUB_NOTIFY=1
563
+ DEPLOY_GITHUB_REF=
499
564
  DEPLOY_GITHUB_REPO=kaikybrofc/omnizap-system
500
- # Token opcional dedicado ao deploy (se vazio usa GITHUB_TOKEN/GH_TOKEN).
501
565
  DEPLOY_GITHUB_TOKEN=
502
- # Etapa opcional de package no deploy.
503
- DEPLOY_PACKAGE_STEP=0
566
+ DEPLOY_NGINX_SERVICE=nginx
567
+ DEPLOY_PACKAGE_ARTIFACTS_DIR=.artifacts
504
568
  DEPLOY_PACKAGE_INSTALL=1
505
- DEPLOY_PACKAGE_TEST=0
569
+ DEPLOY_PACKAGE_OTP=
506
570
  DEPLOY_PACKAGE_PACK=0
507
- DEPLOY_PACKAGE_ARTIFACTS_DIR=.artifacts
508
571
  DEPLOY_PACKAGE_PUBLISH=0
572
+ DEPLOY_PACKAGE_PUBLISH_SECONDARY=0
573
+ DEPLOY_PACKAGE_PUBLISH_SKIP_IF_EXISTS=1
509
574
  DEPLOY_PACKAGE_REGISTRY=https://npm.pkg.github.com
510
- DEPLOY_PACKAGE_TOKEN=
511
- # OTP opcional para publish (use apenas quando token exigir 2FA interativo)
512
- DEPLOY_PACKAGE_OTP=
513
- # Forca owner do scope durante validacao de publish (ex: kaikybrofc ou sua org)
514
575
  DEPLOY_PACKAGE_SCOPE_OWNER=
515
- # Alternativas aceitas automaticamente para auth do publish:
516
- # Para npm.pkg.github.com, priorize GITHUB_TOKEN/DEPLOY_GITHUB_TOKEN.
517
- # NPM_TOKEN=
518
- # NODE_AUTH_TOKEN=
519
- DEPLOY_PACKAGE_TAG=latest
520
- DEPLOY_PACKAGE_PUBLISH_SKIP_IF_EXISTS=1
521
- # Publish secundario (dual publish), ex: npmjs.org
522
- DEPLOY_PACKAGE_PUBLISH_SECONDARY=0
523
- DEPLOY_PACKAGE_SECONDARY_REGISTRY=https://registry.npmjs.org
524
- DEPLOY_PACKAGE_SECONDARY_TOKEN=
525
- # OTP opcional para publish secundario no npmjs
526
- DEPLOY_PACKAGE_SECONDARY_OTP=
527
- DEPLOY_PACKAGE_SECONDARY_TAG=latest
528
- # Para pacote escopado no npmjs, use "public" para aparecer no npmjs.com
529
576
  DEPLOY_PACKAGE_SECONDARY_ACCESS=public
577
+ DEPLOY_PACKAGE_SECONDARY_OTP=
530
578
  DEPLOY_PACKAGE_SECONDARY_PUBLISH_SKIP_IF_EXISTS=1
531
- # Opcional: ordem customizada de fallback de token para o secundario
579
+ DEPLOY_PACKAGE_SECONDARY_REGISTRY=https://registry.npmjs.org
580
+ DEPLOY_PACKAGE_SECONDARY_TAG=latest
581
+ DEPLOY_PACKAGE_SECONDARY_TOKEN=
532
582
  DEPLOY_PACKAGE_SECONDARY_TOKEN_KEYS=
533
-
534
- # ==============================
535
- # Release (auto commit/push)
536
- # ==============================
537
- # Tipo de bump padrão no npm run release (patch/minor/major...)
538
- RELEASE_TYPE=patch
539
- # Opcional: força versão exata (ex: 2.2.0), ignorando RELEASE_TYPE
583
+ DEPLOY_PACKAGE_STEP=0
584
+ DEPLOY_PACKAGE_TAG=latest
585
+ DEPLOY_PACKAGE_TEST=0
586
+ DEPLOY_PACKAGE_TOKEN=
587
+ DEPLOY_PM2_APP_NAME=omnizap-system-production
588
+ DEPLOY_RESTART_PM2=1
589
+ DEPLOY_SOURCE_DIR=./public
590
+ DEPLOY_TARGET_DIR=/var/www/omnizap
591
+ DEPLOY_VERIFY_URL=https://omnizap.shop/
592
+ GH_TOKEN=
593
+ GITHUB_REPOSITORY=kaikybrofc/omnizap-system
594
+ GITHUB_TOKEN=
595
+ GRAFANA_ADMIN_PASSWORD=admin
596
+ GRAFANA_ADMIN_USER=admin
597
+ GRAFANA_DASHBOARDS_PATH=./observability/grafana/dashboards
598
+ GRAFANA_IMAGE_TAG=10.4.3
599
+ GRAFANA_PORT=3003
600
+ GRAFANA_PROVISIONING_PATH=./observability/grafana/provisioning
601
+ GRAFANA_ROOT_URL=%(protocol)s://%(domain)s:%(http_port)s/
602
+ GRAFANA_TIMEZONE=America/Boa_Vista
603
+ LOKI_CONFIG_PATH=./observability/loki-config.yml
604
+ LOKI_IMAGE_TAG=2.9.4
605
+ LOKI_PORT=3100
606
+ MYSQL_EXPORTER_CNF_PATH=./observability/mysql-exporter.cnf
607
+ MYSQL_EXPORTER_DSN=exporter:exporter@(host.docker.internal:3306)/
608
+ MYSQL_EXPORTER_IMAGE_TAG=v0.15.1
609
+ MYSQL_EXPORTER_PORT=9104
610
+ MYSQL_LOGS_PATH=/var/lib/mysql
611
+ NODE_AUTH_TOKEN=
612
+ NODE_EXPORTER_IMAGE_TAG=v1.7.0
613
+ NODE_EXPORTER_PORT=9100
614
+ NPM_TOKEN=
615
+ PROMETHEUS_ALERT_RULES_PATH=./observability/alert-rules.yml
616
+ PROMETHEUS_CONFIG_PATH=./observability/prometheus.yml
617
+ PROMETHEUS_IMAGE_TAG=v2.52.0
618
+ PROMETHEUS_PORT=9090
619
+ PROMETHEUS_RETENTION_SIZE=20GB
620
+ PROMETHEUS_RETENTION_TIME=15d
621
+ PROMTAIL_CONFIG_PATH=./observability/promtail-config.yml
622
+ PROMTAIL_IMAGE_TAG=2.9.4
623
+ PROMTAIL_PORT=9080
540
624
  RELEASE_FORCE_VERSION=
541
- # Rollover automático de patch: quando patch >= RELEASE_PATCH_ROLLOVER_AT, vira (major).(minor+1).0
542
- RELEASE_PATCH_ROLLOVER_ENABLED=1
543
- RELEASE_PATCH_ROLLOVER_AT=10
544
- # Faz commit automatico de alteracoes pendentes antes do release
545
625
  RELEASE_GIT_AUTO_COMMIT=1
546
- # Faz push automatico dos commits gerados no release
547
626
  RELEASE_GIT_AUTO_PUSH=1
548
- # Remote/branch para push (branch vazio = branch atual)
549
- RELEASE_GIT_REMOTE=origin
550
627
  RELEASE_GIT_BRANCH=
551
- # Mensagens de commit automatico
552
- RELEASE_GIT_PRE_COMMIT_MESSAGE=chore(release): auto-commit before release
553
628
  RELEASE_GIT_COMMIT_VERSION=1
554
- RELEASE_GIT_VERSION_COMMIT_PREFIX=chore(release): v
555
- # Geração automática de tag da versão no git
629
+ RELEASE_GIT_PRE_COMMIT_MESSAGE=chore(release): auto-commit before release
630
+ RELEASE_GIT_REMOTE=origin
631
+ RELEASE_GIT_TAG_ANNOTATED=1
556
632
  RELEASE_GIT_TAG_CREATE=1
557
633
  RELEASE_GIT_TAG_PUSH=1
558
- RELEASE_GIT_TAG_ANNOTATED=1
559
-
560
- # Cria/atualiza GitHub Release (aba Releases) automaticamente no npm run release
561
- RELEASE_GITHUB_RELEASE=1
562
- # Se 1, falha o release caso GitHub Release esteja desativado
563
- RELEASE_REQUIRE_GITHUB_RELEASE=1
564
- RELEASE_GITHUB_REPO=kaikybrofc/omnizap-system
565
- RELEASE_GITHUB_TOKEN=
566
- RELEASE_GITHUB_TAG_PREFIX=v
567
- RELEASE_GITHUB_NAME_PREFIX=v
634
+ RELEASE_GIT_VERSION_COMMIT_PREFIX=chore(release): v
635
+ RELEASE_GITHUB_DRAFT=0
568
636
  RELEASE_GITHUB_GENERATE_NOTES=1
569
- # Inclui seção markdown com arquivos alterados no corpo da release
637
+ RELEASE_GITHUB_NAME_PREFIX=v
638
+ RELEASE_GITHUB_PRERELEASE=
639
+ RELEASE_GITHUB_RELEASE=1
570
640
  RELEASE_GITHUB_RELEASE_INCLUDE_CHANGED_FILES=1
571
- # Limite de arquivos listados no markdown da release
572
641
  RELEASE_GITHUB_RELEASE_MAX_FILES=300
573
- # Opcional: 1 para prerelease, 0 para release normal, vazio = auto (detecta '-' na versao)
574
- RELEASE_GITHUB_PRERELEASE=
575
- RELEASE_GITHUB_DRAFT=0
576
- # Opcional: commit/tag alvo (vazio usa HEAD atual)
642
+ RELEASE_GITHUB_REPO=kaikybrofc/omnizap-system
643
+ RELEASE_GITHUB_TAG_PREFIX=v
577
644
  RELEASE_GITHUB_TARGET=
578
-
579
- # Se 1, exige publish em ambos os registries no release (GitHub Packages + npmjs)
645
+ RELEASE_GITHUB_TOKEN=
646
+ RELEASE_PATCH_ROLLOVER_AT=10
647
+ RELEASE_PATCH_ROLLOVER_ENABLED=1
648
+ RELEASE_README_SYNC=1
649
+ RELEASE_README_SYNC_COMMAND=npm run readme:sync-snapshot
650
+ RELEASE_README_SYNC_REQUIRED=0
580
651
  RELEASE_REQUIRE_DUAL_PUBLISH=1
581
- # Verificação final: local + registries + GitHub Release na mesma versão
582
- RELEASE_VERIFY_UNIFIED_VERSION=1
652
+ RELEASE_REQUIRE_GITHUB_RELEASE=1
653
+ RELEASE_TYPE=patch
583
654
  RELEASE_VERIFY_PRIMARY_REGISTRY=https://npm.pkg.github.com
584
- RELEASE_VERIFY_SECONDARY_REGISTRY=https://registry.npmjs.org
585
655
  RELEASE_VERIFY_PRIMARY_TOKEN_KEYS=DEPLOY_PACKAGE_TOKEN,DEPLOY_GITHUB_TOKEN,GITHUB_TOKEN,GH_TOKEN,NPM_TOKEN,NODE_AUTH_TOKEN
656
+ RELEASE_VERIFY_SECONDARY_REGISTRY=https://registry.npmjs.org
586
657
  RELEASE_VERIFY_SECONDARY_TOKEN_KEYS=DEPLOY_PACKAGE_SECONDARY_TOKEN,NPM_TOKEN,NODE_AUTH_TOKEN
658
+ RELEASE_VERIFY_UNIFIED_VERSION=1
659
+ STACK_NAME=omnizap