@routinecrew/routinecode 2.31.36 → 2.31.38
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/bin/prompt-vault.js +1 -1
- package/bin/setup.js +1 -1
- package/hooks/lib/rdpe_maturity.py +128 -0
- package/hooks/lib/rdpe_report.py +47 -0
- package/hooks/lib/rdpe_sanitize.py +90 -0
- package/hooks/lib/sync_manager.py +5 -1
- package/hooks/post-agent-return.sh +118 -4
- package/hooks/pre-agent-spawn.mjs +1 -1
- package/hooks/stop-usage-metrics.sh +198 -73
- package/mcp-db-manager/dist/analyzers/duplicate-detector.js +1 -1
- package/mcp-db-manager/dist/core/model-parser.js +1 -1
- package/mcp-db-manager/dist/core/schema-reader.js +1 -1
- package/mcp-db-manager/dist/executors/migration-executor.js +1 -1
- package/mcp-db-manager/dist/generators/migration-generator.js +1 -1
- package/mcp-db-manager/dist/index.js +1 -1
- package/mcp-db-manager/dist/validators/schema-validator.js +1 -1
- package/mcp-dev-tester/dist/analyzers/auth-diagnoser.js +1 -1
- package/mcp-dev-tester/dist/analyzers/backend-analyzer.js +1 -1
- package/mcp-dev-tester/dist/analyzers/endpoint-diagnoser.js +1 -1
- package/mcp-dev-tester/dist/analyzers/frontend-analyzer.js +1 -1
- package/mcp-dev-tester/dist/analyzers/runtime-diagnoser.js +1 -1
- package/mcp-dev-tester/dist/analyzers/type-comparator.js +1 -1
- package/mcp-dev-tester/dist/analyzers/validation-diagnoser.js +1 -1
- package/mcp-dev-tester/dist/browser/playwright-manager.js +1 -1
- package/mcp-dev-tester/dist/browser/ui-tester.js +1 -1
- package/mcp-dev-tester/dist/config/project-config.js +1 -1
- package/mcp-dev-tester/dist/index.js +1 -1
- package/mcp-dev-tester/dist/testers/api-tester.js +1 -1
- package/mcp-doc-fetcher/dist/index.js +1 -1
- package/mcp-html-renderer/dist/index.js +1 -1
- package/mcp-html-renderer/dist/preview.js +1 -1
- package/mcp-html-renderer/dist/template-engine.js +1 -1
- package/mcp-intelligence/dist/concept-catalog.js +1 -1
- package/mcp-intelligence/dist/concept-server-proxy.js +1 -1
- package/mcp-intelligence/dist/config-auth.js +1 -1
- package/mcp-intelligence/dist/contracts.generated.js +1 -1
- package/mcp-intelligence/dist/domain-templates.js +1 -1
- package/mcp-intelligence/dist/grounding.js +1 -1
- package/mcp-intelligence/dist/handlers.js +1 -1
- package/mcp-intelligence/dist/index.js +1 -1
- package/mcp-intelligence/dist/intelligence-file.js +1 -1
- package/mcp-intelligence/dist/knowledge-critic.js +1 -1
- package/mcp-intelligence/dist/knowledge-handlers.js +1 -1
- package/mcp-intelligence/dist/mention-extractor.js +1 -1
- package/mcp-intelligence/dist/provenance.js +1 -1
- package/mcp-intelligence/dist/semantic-embedder.js +1 -1
- package/mcp-log-watcher/dist/config-auth.js +1 -1
- package/mcp-log-watcher/dist/file-watcher.js +1 -1
- package/mcp-log-watcher/dist/index.js +1 -1
- package/mcp-log-watcher/dist/known-solutions.js +1 -1
- package/mcp-log-watcher/dist/log-store.js +1 -1
- package/mcp-log-watcher/dist/websocket-server.js +1 -1
- package/mcp-plan-manager/dist/__tests__/plan-parser.test.js +1 -1
- package/mcp-plan-manager/dist/file-ops.js +1 -1
- package/mcp-plan-manager/dist/index.js +1 -1
- package/mcp-plan-manager/dist/plan-parser.js +1 -1
- package/mcp-project-context/dist/git-ops.js +1 -1
- package/mcp-project-context/dist/index.js +1 -1
- package/mcp-project-context/dist/project-analysis.js +1 -1
- package/mcp-routinecode/dist/agent-tracker.js +1 -1
- package/mcp-routinecode/dist/blast-radius.js +1 -1
- package/mcp-routinecode/dist/config-auth.js +1 -1
- package/mcp-routinecode/dist/contracts.generated.js +1 -1
- package/mcp-routinecode/dist/explorer-advisor.js +1 -1
- package/mcp-routinecode/dist/failure-tracker.js +1 -1
- package/mcp-routinecode/dist/file-lock-registry.js +1 -1
- package/mcp-routinecode/dist/file-risk-scorer.js +1 -1
- package/mcp-routinecode/dist/index.js +1 -1
- package/mcp-routinecode/dist/known-solutions.js +1 -1
- package/mcp-routinecode/dist/ledger-miner.js +1 -1
- package/mcp-routinecode/dist/observed-draft.js +1 -1
- package/mcp-routinecode/dist/pattern-matcher.js +1 -1
- package/mcp-routinecode/dist/routines.js +1 -1
- package/mcp-routinecode/dist/rule-engine.js +1 -1
- package/mcp-routinecode/dist/rule-promoter.js +1 -1
- package/mcp-routinecode/dist/telemetry-analyzer.js +1 -1
- package/mcp-routinecode/dist/verification.js +1 -1
- package/mcp-routinecode/dist/viral-loop.js +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""RDPE 오염 데이터 정화 — daily.json 의 RDPE 필드를 리셋하고 토큰 집계는 보존한다.
|
|
3
|
+
|
|
4
|
+
배경(RDPE v8): 과거 daily.json 의 RDPE 필드가 버그로 오염됐다.
|
|
5
|
+
- turns: tool_result(type:user)를 턴으로 오산 → 52만 등 폭증
|
|
6
|
+
- task_sigs: slice 결함(영구 0)·per-message 구버전·target_shape 원문/IP 노출 혼재
|
|
7
|
+
- mcp_calls/by_server: slice(last_user_idx+1:) 기반이라 0
|
|
8
|
+
토큰 집계(input/output/cache_*)는 정확하므로 보존한다.
|
|
9
|
+
|
|
10
|
+
정책: 과거 복구가 아니라 **삭제 + 재축적**. 오염 필드를 리셋하면, 다음 세션부터
|
|
11
|
+
수정된 stop-usage-metrics 로직(user턴 단위 sig + target_shape + 정확한 turns)이
|
|
12
|
+
깨끗하게 다시 쌓는다. E_lower(자동캐시 net)는 재포지셔닝에서 보류라 과거 turns 불요.
|
|
13
|
+
|
|
14
|
+
사용: python3 rdpe_sanitize.py # dry-run(미리보기, 쓰기 안 함)
|
|
15
|
+
python3 rdpe_sanitize.py --apply # 백업 후 실제 정화
|
|
16
|
+
"""
|
|
17
|
+
import os
|
|
18
|
+
import sys
|
|
19
|
+
import json
|
|
20
|
+
import shutil
|
|
21
|
+
|
|
22
|
+
USAGE = os.path.join(os.path.expanduser('~'), '.' + 'routinecode', 'usage')
|
|
23
|
+
DAILY = os.path.join(USAGE, 'daily.json')
|
|
24
|
+
RDPE_DIR = os.path.join(os.path.expanduser('~'), '.' + 'routinecode', 'rdpe')
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
def main():
|
|
28
|
+
apply = '--apply' in sys.argv
|
|
29
|
+
try:
|
|
30
|
+
with open(DAILY) as f:
|
|
31
|
+
d = json.load(f)
|
|
32
|
+
except Exception as e:
|
|
33
|
+
print('daily.json 읽기 실패:', e)
|
|
34
|
+
return 1
|
|
35
|
+
|
|
36
|
+
days = 0
|
|
37
|
+
turns_sum = 0
|
|
38
|
+
sigs_sum = 0
|
|
39
|
+
leak = 0
|
|
40
|
+
for date, day in d.items():
|
|
41
|
+
if not isinstance(day, dict):
|
|
42
|
+
continue
|
|
43
|
+
days += 1
|
|
44
|
+
if isinstance(day.get('turns'), int):
|
|
45
|
+
turns_sum += day['turns']
|
|
46
|
+
ts = day.get('task_sigs', {})
|
|
47
|
+
if isinstance(ts, dict):
|
|
48
|
+
sigs_sum += len(ts)
|
|
49
|
+
for sig, v in ts.items():
|
|
50
|
+
sh = (v.get('shape', '') if isinstance(v, dict) else '')
|
|
51
|
+
if any(c in sh for c in ('=', '@')) or '.' in sh.split(':')[-1][:1]:
|
|
52
|
+
pass
|
|
53
|
+
import re as _re
|
|
54
|
+
if _re.search(r'\d+\.\d+\.\d+\.\d+|=|@', sh):
|
|
55
|
+
leak += 1
|
|
56
|
+
# 리셋 (토큰 보존)
|
|
57
|
+
day['turns'] = 0
|
|
58
|
+
day['sessions'] = []
|
|
59
|
+
day['task_sigs'] = {}
|
|
60
|
+
day['mcp_calls'] = 0
|
|
61
|
+
day['mcp_calls_by_server'] = {}
|
|
62
|
+
|
|
63
|
+
print('=== RDPE 정화 요약 ===')
|
|
64
|
+
print(' 대상 일수 : %d' % days)
|
|
65
|
+
print(' 리셋되는 turns 합 : %d (오염 폭증분 포함)' % turns_sum)
|
|
66
|
+
print(' 제거되는 task_sigs: %d (구버전/오염 sig)' % sigs_sum)
|
|
67
|
+
print(' 그중 원문/IP 노출 : %d건' % leak)
|
|
68
|
+
print(' 보존 : tokens(input/output/cache_read/cache_create) 전체')
|
|
69
|
+
if apply:
|
|
70
|
+
try:
|
|
71
|
+
bak = DAILY + '.bak-presanitize'
|
|
72
|
+
shutil.copy(DAILY, bak)
|
|
73
|
+
with open(DAILY, 'w') as f:
|
|
74
|
+
json.dump(d, f, ensure_ascii=False, indent=2)
|
|
75
|
+
# routines.json 도 구버전이므로 제거(다음 세션에 재생성).
|
|
76
|
+
rp = os.path.join(RDPE_DIR, 'routines.json')
|
|
77
|
+
if os.path.exists(rp):
|
|
78
|
+
os.remove(rp)
|
|
79
|
+
print(' ✅ 적용 완료. 백업: %s' % os.path.basename(bak))
|
|
80
|
+
print(' routines.json 제거(다음 세션 재생성). 미래 세션부터 깨끗히 재축적.')
|
|
81
|
+
except Exception as e:
|
|
82
|
+
print(' ✗ 적용 실패:', e)
|
|
83
|
+
return 1
|
|
84
|
+
else:
|
|
85
|
+
print(' (dry-run — 쓰기 안 함. 실제 정화는 --apply)')
|
|
86
|
+
return 0
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
if __name__ == '__main__':
|
|
90
|
+
sys.exit(main())
|
|
@@ -458,7 +458,11 @@ def _transform(e, user_id, tenant_id=None):
|
|
|
458
458
|
if k in e.get("metadata", {}):
|
|
459
459
|
metadata[k] = e["metadata"][k]
|
|
460
460
|
elif event_type == "agent_spawn":
|
|
461
|
-
|
|
461
|
+
# agent_type/action/duration_sec + 서브에이전트 실측 토큰 (post-agent-return.sh 포착분).
|
|
462
|
+
# 토큰 5키는 growth usage.dto METADATA_ALLOWED_KEYS에 이미 수용됨(서버 변경 불요).
|
|
463
|
+
for k in ("agent_type", "action", "duration_sec",
|
|
464
|
+
"input_tokens", "output_tokens", "cache_read_tokens",
|
|
465
|
+
"cache_create_tokens", "total_tokens"):
|
|
462
466
|
if k in e.get("metadata", {}):
|
|
463
467
|
metadata[k] = e["metadata"][k]
|
|
464
468
|
elif event_type == "build_result":
|
|
@@ -112,6 +112,107 @@ try:
|
|
|
112
112
|
except Exception as e:
|
|
113
113
|
print(f"[ledger-error] {type(e).__name__}", file=sys.stderr)
|
|
114
114
|
|
|
115
|
+
# 서브에이전트 실측 토큰 포착 (하네스 권위 transcript의 usage 합산 — 자가보고 아님)
|
|
116
|
+
# 소스: <main-transcript>.jsonl 에서 .jsonl 제거 + /subagents/agent-<id>.jsonl
|
|
117
|
+
# 각 서브에이전트 transcript 는 isolated context 라 메인 turn 'tokens' 이벤트와 중복계상 없음.
|
|
118
|
+
# 이 토큰이 곧 "위임으로 메인 대화에서 덜어낸 비용" = 절감 측정의 실측 소스.
|
|
119
|
+
def _sum_subagent_usage(jsonl_path):
|
|
120
|
+
ti = to = tcr = tcc = 0
|
|
121
|
+
try:
|
|
122
|
+
with open(jsonl_path) as _f:
|
|
123
|
+
for _line in _f:
|
|
124
|
+
_line = _line.strip()
|
|
125
|
+
if not _line:
|
|
126
|
+
continue
|
|
127
|
+
try:
|
|
128
|
+
_obj = json.loads(_line)
|
|
129
|
+
except Exception:
|
|
130
|
+
continue
|
|
131
|
+
if not isinstance(_obj, dict):
|
|
132
|
+
continue
|
|
133
|
+
# assistant 메시지의 message.usage (Anthropic usage 스키마)
|
|
134
|
+
_msg = _obj.get("message")
|
|
135
|
+
_u = _msg.get("usage") if isinstance(_msg, dict) else None
|
|
136
|
+
if not isinstance(_u, dict):
|
|
137
|
+
continue
|
|
138
|
+
ti += int(_u.get("input_tokens", 0) or 0)
|
|
139
|
+
to += int(_u.get("output_tokens", 0) or 0)
|
|
140
|
+
tcr += int(_u.get("cache_read_input_tokens", 0) or 0)
|
|
141
|
+
tcc += int(_u.get("cache_creation_input_tokens", 0) or 0)
|
|
142
|
+
except Exception:
|
|
143
|
+
return None
|
|
144
|
+
if (ti + to + tcr + tcc) == 0:
|
|
145
|
+
return None
|
|
146
|
+
return {"input_tokens": ti, "output_tokens": to, "cache_read_tokens": tcr,
|
|
147
|
+
"cache_create_tokens": tcc, "total_tokens": ti + to + tcr + tcc}
|
|
148
|
+
|
|
149
|
+
|
|
150
|
+
def _resolve_subagent_jsonl(inp_obj, log_dir):
|
|
151
|
+
"""이 복귀에 해당하는 서브에이전트 transcript 경로를 유도. 추측 금지: transcript_path 기반."""
|
|
152
|
+
tp = inp_obj.get("transcript_path", "") or ""
|
|
153
|
+
if not tp.endswith(".jsonl"):
|
|
154
|
+
return None, None
|
|
155
|
+
sub_dir = tp[:-len(".jsonl")] + "/subagents"
|
|
156
|
+
if not os.path.isdir(sub_dir):
|
|
157
|
+
return None, None
|
|
158
|
+
# 1순위: tool_use_id ↔ meta.json toolUseId 정확 매칭 (유니크, 중복계상 원천 차단)
|
|
159
|
+
tuid = inp_obj.get("tool_use_id", "") or ""
|
|
160
|
+
if tuid:
|
|
161
|
+
try:
|
|
162
|
+
for _name in os.listdir(sub_dir):
|
|
163
|
+
if not _name.endswith(".meta.json"):
|
|
164
|
+
continue
|
|
165
|
+
try:
|
|
166
|
+
_meta = json.load(open(os.path.join(sub_dir, _name)))
|
|
167
|
+
except Exception:
|
|
168
|
+
continue
|
|
169
|
+
if _meta.get("toolUseId") == tuid:
|
|
170
|
+
_base = _name[:-len(".meta.json")]
|
|
171
|
+
_jp = os.path.join(sub_dir, _base + ".jsonl")
|
|
172
|
+
if os.path.isfile(_jp):
|
|
173
|
+
return _jp, _base
|
|
174
|
+
except Exception:
|
|
175
|
+
pass
|
|
176
|
+
# 2순위(fallback): seen 커서에 없는 최신 mtime agent-*.jsonl
|
|
177
|
+
try:
|
|
178
|
+
seen_path = os.path.join(log_dir, ".seen-subagents.json")
|
|
179
|
+
try:
|
|
180
|
+
seen = set(json.load(open(seen_path)))
|
|
181
|
+
except Exception:
|
|
182
|
+
seen = set()
|
|
183
|
+
cands = []
|
|
184
|
+
for _name in os.listdir(sub_dir):
|
|
185
|
+
if _name.startswith("agent-") and _name.endswith(".jsonl"):
|
|
186
|
+
_base = _name[:-len(".jsonl")]
|
|
187
|
+
if _base not in seen:
|
|
188
|
+
_jp = os.path.join(sub_dir, _name)
|
|
189
|
+
cands.append((os.path.getmtime(_jp), _jp, _base))
|
|
190
|
+
if cands:
|
|
191
|
+
cands.sort(reverse=True)
|
|
192
|
+
return cands[0][1], cands[0][2]
|
|
193
|
+
except Exception:
|
|
194
|
+
pass
|
|
195
|
+
return None, None
|
|
196
|
+
|
|
197
|
+
|
|
198
|
+
def _mark_seen(log_dir, base):
|
|
199
|
+
try:
|
|
200
|
+
seen_path = os.path.join(log_dir, ".seen-subagents.json")
|
|
201
|
+
try:
|
|
202
|
+
seen = json.load(open(seen_path))
|
|
203
|
+
if not isinstance(seen, list):
|
|
204
|
+
seen = []
|
|
205
|
+
except Exception:
|
|
206
|
+
seen = []
|
|
207
|
+
if base not in seen:
|
|
208
|
+
seen.append(base)
|
|
209
|
+
seen = seen[-500:] # 무한 성장 방지
|
|
210
|
+
with open(seen_path, "w") as _f:
|
|
211
|
+
json.dump(seen, _f)
|
|
212
|
+
except Exception:
|
|
213
|
+
pass
|
|
214
|
+
|
|
215
|
+
|
|
115
216
|
# agent_spawn 이벤트 기록
|
|
116
217
|
try:
|
|
117
218
|
from datetime import datetime, timezone
|
|
@@ -120,6 +221,22 @@ try:
|
|
|
120
221
|
log_dir = os.path.expanduser("~/.routinecode/usage")
|
|
121
222
|
os.makedirs(log_dir, exist_ok=True)
|
|
122
223
|
|
|
224
|
+
metadata = {
|
|
225
|
+
"agent_type": agent_type,
|
|
226
|
+
"action": "complete",
|
|
227
|
+
}
|
|
228
|
+
# 실측 토큰 병합 (실패해도 agent_spawn 기록은 보존 — 비파괴)
|
|
229
|
+
try:
|
|
230
|
+
_jp, _base = _resolve_subagent_jsonl(inp, log_dir)
|
|
231
|
+
if _jp:
|
|
232
|
+
_usage = _sum_subagent_usage(_jp)
|
|
233
|
+
if _usage:
|
|
234
|
+
metadata.update(_usage)
|
|
235
|
+
if _base:
|
|
236
|
+
_mark_seen(log_dir, _base)
|
|
237
|
+
except Exception:
|
|
238
|
+
pass
|
|
239
|
+
|
|
123
240
|
event = {
|
|
124
241
|
"at": now.isoformat(),
|
|
125
242
|
"date": now.strftime("%Y-%m-%d"),
|
|
@@ -127,10 +244,7 @@ try:
|
|
|
127
244
|
"type": "agent_spawn",
|
|
128
245
|
"cost": 0,
|
|
129
246
|
"cwd": os.path.basename(os.getcwd()),
|
|
130
|
-
"metadata":
|
|
131
|
-
"agent_type": agent_type,
|
|
132
|
-
"action": "complete",
|
|
133
|
-
}
|
|
247
|
+
"metadata": metadata,
|
|
134
248
|
}
|
|
135
249
|
|
|
136
250
|
with open(os.path.join(log_dir, "events.jsonl"), "a") as f:
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
const a0_0x203e3e=a0_0x59d1;(function(_0x1ef580,_0x3ab9a3){const _0x224f27=a0_0x59d1,_0x52e335=_0x1ef580();while(!![]){try{const _0x1655cd=-parseInt(_0x224f27(0x133,'WDyB'))/(-0x26ac+0x2239+0x474)+-parseInt(_0x224f27(0x179,'H@w9'))/(-0x426+-0x16*-0x11+-0x1*-0x2b2)*(parseInt(_0x224f27(0x1b4,'XSle'))/(-0x1*-0x27a+0x1078+-0x12ef))+parseInt(_0x224f27(0xe3,'*$NP'))/(0xaca+-0x1793+0x1d*0x71)+parseInt(_0x224f27(0x15a,'$Zuz'))/(-0x33b+0x3*-0xc61+-0x2863*-0x1)+parseInt(_0x224f27(0x1b5,'Qa8T'))/(0x5c6+-0x4*-0x559+0x243*-0xc)*(parseInt(_0x224f27(0x17d,'JSqZ'))/(-0x6ae+-0x6de+0xd93*0x1))+parseInt(_0x224f27(0x164,'uFEw'))/(-0x19d*-0x15+-0x1c2d*0x1+-0x5ac)+parseInt(_0x224f27(0x143,'Rg!g'))/(0x922*-0x3+0x2659+-0x16*0x7f)*(-parseInt(_0x224f27(0x1b9,'##C*'))/(-0x2f*0x1d+0xb96+-0x639));if(_0x1655cd===_0x3ab9a3)break;else _0x52e335['push'](_0x52e335['shift']());}catch(_0x3f79a4){_0x52e335['push'](_0x52e335['shift']());}}}(a0_0x4cee,-0x1ed5b+-0x122c6e+0x20cbed));import{fileURLToPath}from'node:url';import{dirname,resolve}from'node:path';import{existsSync}from'node:fs';function a0_0x4cee(){const _0x266499=['EdTHk8ol','WPFcISkWs8o2','y0fFdenEW7xcKrhdPrm','E8kyymkNCq','c8k6vgDG','WO99W6C9hSkkWO3cLSoSWRZcOmoJ','ubJcOmkYW6S','bCkQaLjH','EfLocSoj','pfdcQZqD','W5dcQmo0fbq','xSoJoCk2W4O','W7fslqi6','uSoEgmkuW4O','kCk8eGrw','W758WPjXWP0','xZhdM8kvWPC','cSkGrgS0','W6BdMNVdGKW','iCoVW5xcTmkVx8oxfCkBWOqQWPG','gcCTyr8','sNSdW5LkcqORemoX','lXmd','W6qVW5tdMHy','W484WRbRta','W4SaWOPQW7y','W6T3WPHnWOO','jsldPmkfBa','i2dcH0lcLq','WRddSSolWReC','W7ZdMMhdHHi','WOGbFmoRwW','W5FdMmoJwSoKW61CnbJdOe/dPSkk','zW7dL2Tk','hJZcTq','Ed3cSc/dKq','wCkZWR/dKfi','tSoUpCk8W4a','mc99','W64LW4pdLKS','WPhcNSk0hmk6','zSo+WRHIzW','Fh/cVCozmGxcVbdcVMr+','WPRdJwm1FW','z3fNWP1JW73dISkqyCo0WQVcPmkN','lmogWPBdKG','qgtcIsVdRW','WO/dHfj6rG','W6xdQMCdW4q','W6BdJMZdLaG','FI7dSmkIWO4','tMZdIWJdKq','W67dO0ezW4y','mbGitbW','W5xdMSoLx8oIW65sjstdS1ZdU8k/','xSoEoCkvW78','umoQWO9yEG','WP/cVSovAeG','ec0RWP3dTa','W6X2WOrhW54','W4FcUSoWcXq','WPGwWO5IW70','gCo4EmkiWRS','v8k7w8kXxa','ch/dUdBdRW','u8ohWQvkqa','qXpcUmkvW5W','pmk4wMbD','WQ97W6NdRZW','WOFcVmo9aHa','gYqdW5W3','gJZcUhtdQG','W47dU0aDW5O','gSk6WPTjWPC','W6BcVmkLW45P','W7bbW7hcLYe2WRy','nGTnsmop','zZVdGCoNWR4','WRCBgSksW4m','W50zv8opq8kIrW','W68JWP9pWO4','fSkGvxPN','WO3cHCoaxv0','WOJdHc84Bq','WOdcPCoJcWS','eGWPWQtdIW','vCkKsCofaG','y8owDCoapq','WRzXW7BcRd0','gflcV3ZcLq','lYaHW5W1','jCoaWPtdJJC','WRddG27dJXu','emkBWOtdL1i','ymk6WPi','Ca9Jl8oW','W7eOWQPewa','W6ddQheeW5C','gCk9W57cMHS','qSoltmoh','WO/dRmo1aG4','W7SxgSkhW4e','emkuWQhdHKO','vg3dLG/dIG','W67cR3apW5a','WO/cOSoLca8','F8oicSkmWOu','WPtcG8oCdKG','W7OOWQ3dSh1pW4bgWOuEpMXW','W4SVW7pdU34','g3tdSs7dQG','W7yrg8kKW6u','fcNdQ8kBWOO','hYtdNSkrwI1JW6VcN2GnxSoo','W5OvWQfGrG','qSolqmoq','oqTBWRHu','qmkKB318','WRDGWONcJWu','tmk2v8kAxq','mIq9W5S/','j03dHYSy','gwXCWOvc','uSohc8kvW5W','o1RcLI4p','sSkGEhT3','fcJdGCkDWPC','W7ZcL8kz','W7xdOgy','WRhdTubYW7G','omomWP/dMwq','WP7dLMOOka','ddVcTNxdPG','WPNcMSoAfG0','e8k6ASoVWPBdJLJdGJzgW6m','Eh/cVSornLZdIddcPL9EWOyg','ECkZWONdJCop','WRpdHLZdLaq','WOaWWR5oW5u','bmkktCoEWONcL8kZWR9Segm','tSo1iSk0W4O','bCkDaXH4','dCkSqxPN','W4G1i2tdGG','rCotcSkmW7a','W6XVWR1OWRi','pmk1WPpdRmo0','WPXLWQzJtG','qCoIo8k2','W5ZcVa/cKh4','h8kIWQ08WPy','ncpdMmkwWPy','W6VdQZ/cGa0','pgZcG14','fGOPWR/dGa','WPGMnghdJG','WRddImol','lcNdVCk/DG','smoSjSkXW4O','bvlcLM8','hCkPWRGYWPu','WQVdRtNcLbu','WQZdMu5aW4e','WRRcVSo0mXi','W4GKWRD4','WRb9WRNcSt4','W6T6WOicWOO','omoQWRVdML8','tsxcVGFdIq','WQqwWRT7W6a','D8o/WRXgCW','W6T/fMi','WPBcImoByg0','cSkoWRxdNeS','WRNcTmo0Evu','WPpdLfvAW74','WOSSDCoerq','vmk/qmkezq','W6SSW5ZdKfS','WPNcUCo2abG','bCkSq2T+','W6iLW6ddPuK','WQn8W7pcTZ0','a3BdPCoPWRziWP3dHCkVWOW/AaC','W44riCkpW7W','WOqVsmoora','hZ9EW4G','v8oYrKnTWPPhrdVcHa','qcxcOCkXW6a','WQ1QW7W','nwtcRvhdTG','WPeUhhxdPG','nSoQWQvGEG','g2XgWOTD','WRVdQh58W5S','WO99W6hcJd0','WRJdL8keW75n','WQJcH8oRjr8','WQRdShv2W54','Db/dNMTk','bSk0W7JcSX0','emkuWRL2WPi','ktq3WRFdIG','hmkyzeD3W7pcTq','W54xWRvmwW','WPtcISoxtvC','WRxdH3NdIWq','WPVcH8kpdmkz','WPNcUmoJdHm','bmk8WPnuWRO','W53dUmkHu0VcJtibB8oajSo+WOS','t8kMAxXS','W6mMW5NdNe0','WP4+rSknAa','DSkyrSkDtG','WQv2WRtcPs8','WPSqWObHW6K','t8oVWOfIra','W5WiW5NdILG','WQBcVgP9W5q','WOWdAmohrG','WOhcOmo4ksG','hmkcWRtdKa','WQddQuavqW','WOvcWO5IW70','WRNcGSkyW6jP','rmoEpmkQW5u','oaqisam','WR0cW7ZdNutdGrG','xtdcOWVdJW','x3VdUSkpWPC','W7RcKSokW6vL','W7G9jSkGW4u','xhNcImotaq','omkrW5lcKIi','WPRdL2W3qq','smoIimk9WOu','g3ddSZldQG','WPRcISkFsvK','WOmRl1ZdVG','W6VcMaxcGLO','jmkmW5i','W6ddUZhcHa','rttcOCkXW6G','WRlcNmkWp8k7','W60Wec0+','cfhdGbBdJG','e8k0WQ9/','W6xdR2P0W4i','ssRdPWpdGa','r8kMyJjU','WONcLSoBqW','uSk1dW','WQddVwK','DYFcNaNdSG','CLHhEb8','W6z5pISa','l8kVWPXXWQW'];a0_0x4cee=function(){return _0x266499;};return a0_0x4cee();}async function readStdin(){const _0x3e324d=a0_0x59d1;let _0x5a1d19='';for await(const _0x240998 of process[_0x3e324d(0xee,'4ivq')])_0x5a1d19+=_0x240998;return _0x5a1d19;}function emit(_0xe52507){const _0x34fbaf=a0_0x59d1;process[_0x34fbaf(0xd9,'(o^N')+'t'][_0x34fbaf(0x183,'ui3U')](JSON[_0x34fbaf(0x11f,'*$NP')+_0x34fbaf(0x15b,')kwW')](_0xe52507)),process[_0x34fbaf(0x191,'S1ZY')](0xe7*-0x6+-0x6bf+-0xb*-0x11b);}function a0_0x59d1(_0x2cef7e,_0x241622){_0x2cef7e=_0x2cef7e-(0xd3d*0x1+0x1b42+-0x1*0x27bc);const _0x6caf08=a0_0x4cee();let _0x3e505d=_0x6caf08[_0x2cef7e];if(a0_0x59d1['JNNRPl']===undefined){var _0x455ff3=function(_0x215d17){const _0xc53164='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x5cdaa6='',_0x516d8c='';for(let _0x46aa1d=-0x9d6+-0x1*0x815+0x11eb,_0x8212f7,_0x2a5a3c,_0x4891c0=0x1d38+0x1*0x57b+-0x22b3;_0x2a5a3c=_0x215d17['charAt'](_0x4891c0++);~_0x2a5a3c&&(_0x8212f7=_0x46aa1d%(-0xaf3*-0x3+-0x1e8b+0x125*-0x2)?_0x8212f7*(-0x4*-0x3b9+0x5f4*0x1+-0x1498)+_0x2a5a3c:_0x2a5a3c,_0x46aa1d++%(0x1baa+-0x118a+-0x4*0x287))?_0x5cdaa6+=String['fromCharCode'](0x18ac+-0x13*0x1bf+0x4*0x260&_0x8212f7>>(-(-0x1276*0x2+0x6*-0xf1+-0xa*-0x442)*_0x46aa1d&-0x24d3+0x8b*-0x1d+0x3498)):-0xaf9+0x21*-0xea+0x1*0x2923){_0x2a5a3c=_0xc53164['indexOf'](_0x2a5a3c);}for(let _0x21c67d=0x1c0f+-0x573+-0x169c,_0x523fca=_0x5cdaa6['length'];_0x21c67d<_0x523fca;_0x21c67d++){_0x516d8c+='%'+('00'+_0x5cdaa6['charCodeAt'](_0x21c67d)['toString'](-0x15e4+-0x60f+0x1c03))['slice'](-(-0x62f*-0x6+-0x1*0x23df+-0x1*0x139));}return decodeURIComponent(_0x516d8c);};const _0x4bf450=function(_0x449301,_0x3ab2a4){let _0x3b43ee=[],_0x1940a2=-0x1a8c+0x25bb*0x1+-0xb2f*0x1,_0x4cf0d0,_0x9c5764='';_0x449301=_0x455ff3(_0x449301);let _0x2f9ec0;for(_0x2f9ec0=0x2336+-0xbfe+-0x8*0x2e7;_0x2f9ec0<0x217a+0x1d87+-0x3e01;_0x2f9ec0++){_0x3b43ee[_0x2f9ec0]=_0x2f9ec0;}for(_0x2f9ec0=-0x335+-0xa*0x13a+-0x1*-0xf79;_0x2f9ec0<-0x93a*0x4+0x63d*-0x1+0x2c25;_0x2f9ec0++){_0x1940a2=(_0x1940a2+_0x3b43ee[_0x2f9ec0]+_0x3ab2a4['charCodeAt'](_0x2f9ec0%_0x3ab2a4['length']))%(-0xd88*-0x1+0x166d+0x39*-0x9d),_0x4cf0d0=_0x3b43ee[_0x2f9ec0],_0x3b43ee[_0x2f9ec0]=_0x3b43ee[_0x1940a2],_0x3b43ee[_0x1940a2]=_0x4cf0d0;}_0x2f9ec0=0xdd5+-0x5d7+-0x7fe*0x1,_0x1940a2=0x1e85+-0x75*-0x49+-0x3fe2;for(let _0x82f179=0x2401+-0x1b94+-0x86d;_0x82f179<_0x449301['length'];_0x82f179++){_0x2f9ec0=(_0x2f9ec0+(-0x770+-0x17c5+0x31f*0xa))%(0xefd+0x1e*0x5a+-0x1889),_0x1940a2=(_0x1940a2+_0x3b43ee[_0x2f9ec0])%(-0x1*0xf95+0xb7*0x1a+-0x39*0x9),_0x4cf0d0=_0x3b43ee[_0x2f9ec0],_0x3b43ee[_0x2f9ec0]=_0x3b43ee[_0x1940a2],_0x3b43ee[_0x1940a2]=_0x4cf0d0,_0x9c5764+=String['fromCharCode'](_0x449301['charCodeAt'](_0x82f179)^_0x3b43ee[(_0x3b43ee[_0x2f9ec0]+_0x3b43ee[_0x1940a2])%(-0xf5f+0xf78+-0x4d*-0x3)]);}return _0x9c5764;};a0_0x59d1['TWglsf']=_0x4bf450,a0_0x59d1['ztAcif']={},a0_0x59d1['JNNRPl']=!![];}const _0x5e9e6=_0x6caf08[-0x1571+-0x2*-0x1281+-0x1*0xf91],_0x3559a7=_0x2cef7e+_0x5e9e6,_0x8bad01=a0_0x59d1['ztAcif'][_0x3559a7];return!_0x8bad01?(a0_0x59d1['whyjwC']===undefined&&(a0_0x59d1['whyjwC']=!![]),_0x3e505d=a0_0x59d1['TWglsf'](_0x3e505d,_0x241622),a0_0x59d1['ztAcif'][_0x3559a7]=_0x3e505d):_0x3e505d=_0x8bad01,_0x3e505d;}async function main(){const _0xa8b4e1=a0_0x59d1,_0x5df622={'fvKJL':function(_0x416654){return _0x416654();},'jirlv':function(_0x252442,_0x11bc9c){return _0x252442||_0x11bc9c;},'YcVmS':function(_0xae57ee,_0x423513){return _0xae57ee(_0x423513);},'yiZgM':_0xa8b4e1(0xcf,'Ck6T')+_0xa8b4e1(0x162,'m&Kr'),'fXsjm':_0xa8b4e1(0xde,'ynLM'),'lfxrg':function(_0x2357d2,_0x1f6ffb){return _0x2357d2===_0x1f6ffb;},'JybvC':_0xa8b4e1(0xfc,'Ck6T')+'g','rJOMc':_0xa8b4e1(0xfa,'D&T5')+_0xa8b4e1(0x1a6,'$Zuz')+'r','LJwgd':_0xa8b4e1(0x17f,'XLo5')+_0xa8b4e1(0x1a3,'5NH)')+_0xa8b4e1(0x17e,'OyY$')+_0xa8b4e1(0x149,'Qa8T')+_0xa8b4e1(0x1ae,'m&Kr'),'kliNU':_0xa8b4e1(0xf2,'4ivq'),'sVKqp':_0xa8b4e1(0x189,')kwW')+'fs','oOQBj':_0xa8b4e1(0x13f,'XLo5')+_0xa8b4e1(0xc5,'jAj%'),'iaUdl':_0xa8b4e1(0x145,'ynLM')+'os','OtTwy':function(_0x374e33,_0x29c4a1,_0x502924,_0x4e9112,_0x43ec65){return _0x374e33(_0x29c4a1,_0x502924,_0x4e9112,_0x43ec65);},'DePsg':_0xa8b4e1(0xcd,'a6UI')+_0xa8b4e1(0xf9,'9Snn')+'de','MexNs':_0xa8b4e1(0x163,'m4(C')+_0xa8b4e1(0x11e,'a6UI'),'GGnPf':_0xa8b4e1(0xe8,'*$NP')+_0xa8b4e1(0x1bc,'XLo5')+'on','kRQBL':_0xa8b4e1(0x13b,'##C*')+_0xa8b4e1(0x100,'ynLM')+_0xa8b4e1(0x186,'H@w9'),'rpYHE':function(_0x4c47ba,_0x3b7d91,_0x4128b4){return _0x4c47ba(_0x3b7d91,_0x4128b4);},'lvQUh':function(_0xca65a,_0x5a650a,_0x20ef9f){return _0xca65a(_0x5a650a,_0x20ef9f);},'oSnrp':_0xa8b4e1(0x16b,'8jcR')+_0xa8b4e1(0x150,')X&6'),'nBINw':function(_0x2e600e,_0x2b49ed,_0x4dfea5){return _0x2e600e(_0x2b49ed,_0x4dfea5);},'VHiut':_0xa8b4e1(0x184,'7QM4'),'VyzKp':function(_0x1c5802,_0x3dc225){return _0x1c5802!==_0x3dc225;},'fBogo':_0xa8b4e1(0x18a,'D&T5'),'bZgFp':function(_0x1fec51,_0x2fd05d){return _0x1fec51(_0x2fd05d);},'EKrEW':function(_0x2ea4b7,_0x1bd3cb){return _0x2ea4b7<_0x1bd3cb;},'sEKqR':_0xa8b4e1(0x1ba,'XSle')+_0xa8b4e1(0x18c,'Lx3Y'),'dETUt':_0xa8b4e1(0xc3,'W9UO')+'re','DAifM':function(_0x54ff03,_0x29db7d){return _0x54ff03(_0x29db7d);},'hePZe':function(_0x788f5d,_0x2858ea){return _0x788f5d(_0x2858ea);},'wktYf':function(_0xf8ad9d,_0x2eed09,_0x468322,_0x121ea4,_0x5f3601,_0x590e7b){return _0xf8ad9d(_0x2eed09,_0x468322,_0x121ea4,_0x5f3601,_0x590e7b);},'DPFWm':_0xa8b4e1(0x172,'H@w9')+_0xa8b4e1(0x132,'XLo5')+_0xa8b4e1(0x153,'XSle'),'AoCDR':_0xa8b4e1(0xcb,'jrjR'),'aclFJ':_0xa8b4e1(0xff,'5NH)')+_0xa8b4e1(0x10d,'H^vF')+_0xa8b4e1(0xcc,'bMsd')+'s','uSkMZ':function(_0x4e984,_0x17d239){return _0x4e984(_0x17d239);},'CQJZo':function(_0x32b155,_0x52dc02){return _0x32b155(_0x52dc02);},'FfXWm':_0xa8b4e1(0x1aa,'(ek]')+_0xa8b4e1(0xc4,'a6UI'),'XwznS':_0xa8b4e1(0x139,'XSle')+'wn','BKzBb':function(_0x5f7899,_0x339b92){return _0x5f7899(_0x339b92);},'avcmI':function(_0x55daea,_0x34c20c){return _0x55daea(_0x34c20c);}};let _0x106395;try{const _0x2d25e7=await _0x5df622[_0xa8b4e1(0x16e,'llYN')](readStdin);_0x106395=JSON[_0xa8b4e1(0x188,'$Zuz')](_0x5df622[_0xa8b4e1(0x182,'Ck6T')](_0x2d25e7,'{}'));}catch{_0x5df622[_0xa8b4e1(0x105,'LVr[')](emit,{'hookSpecificOutput':{'hookEventName':_0x5df622[_0xa8b4e1(0x12c,'Q9JO')],'permissionDecision':_0x5df622[_0xa8b4e1(0x108,'JSqZ')]}});}const _0x4f4cce=_0x106395[_0xa8b4e1(0xdd,'7QM4')+_0xa8b4e1(0x194,'(o^N')]??{},_0x443204=_0x4f4cce[_0xa8b4e1(0x146,'WDyB')+_0xa8b4e1(0xc9,'Qa8T')+_0xa8b4e1(0x11d,'RZio')]??'',_0x48d0e0=_0x5df622[_0xa8b4e1(0x1a5,'7QM4')](typeof _0x4f4cce[_0xa8b4e1(0x157,'LVr[')+'t'],_0x5df622[_0xa8b4e1(0x13c,'uL^l')])?_0x4f4cce[_0xa8b4e1(0x104,'8jcR')+'t']:'',_0x11981e=new Set([_0x5df622[_0xa8b4e1(0x178,'H^vF')],_0x5df622[_0xa8b4e1(0xf6,'ui3U')]]);if(_0x11981e[_0xa8b4e1(0x129,'4ivq')](_0x443204)){const _0x11f86c=[/taskId[:\s]+['"]?([a-zA-Z0-9_-]+)/i,/task_id[:\s]+['"]?([a-zA-Z0-9_-]+)/i,/TASK_ID[:\s]+['"]?([a-zA-Z0-9_-]+)/,/task[:\s]+['"]?(\d+[a-zA-Z0-9_-]*)/i];let _0x4edcdc=null;for(const _0x3743f2 of _0x11f86c){const _0x55dd35=_0x3743f2[_0xa8b4e1(0x1a1,'S1ZY')](_0x48d0e0);if(_0x55dd35?.[0x16ba*0x1+0x1f45+-0x35fe*0x1]){_0x4edcdc=_0x55dd35[0x1f3e+0x39*0x5c+-0x33b9];break;}}!_0x4edcdc&&_0x5df622[_0xa8b4e1(0x12d,'bMsd')](emit,{'decision':_0x5df622[_0xa8b4e1(0x1b6,'Lx3Y')],'reason':_0xa8b4e1(0x10b,'fPqn')+_0xa8b4e1(0x138,'Ck6T')+_0xa8b4e1(0x11a,'9Snn')+_0xa8b4e1(0x101,'JSqZ')+_0xa8b4e1(0x148,'OyY$')+_0xa8b4e1(0x161,'llYN')+_0xa8b4e1(0xd2,'OyY$')+_0xa8b4e1(0xd6,'LVr[')+_0xa8b4e1(0xec,'LVr[')+_0xa8b4e1(0x17c,'%4%p')+_0xa8b4e1(0x116,'RZio')+_0xa8b4e1(0x1a7,'(ek]')+_0xa8b4e1(0x14a,'jAj%')+_0xa8b4e1(0x152,'(o^N')+_0xa8b4e1(0x12f,'uFEw')+_0xa8b4e1(0x1be,'##C*')+_0xa8b4e1(0x19c,')X&6')+_0xa8b4e1(0x119,')X&6')+_0xa8b4e1(0x15c,'Ehhy')+_0xa8b4e1(0x198,'XSle')+_0xa8b4e1(0x1c3,'69Gt')+_0xa8b4e1(0x154,'$Zuz')});if(_0x4edcdc){const {existsSync:_0x321d73,readFileSync:_0x3a6da3}=await import(_0x5df622[_0xa8b4e1(0x1b3,'Ck6T')]),{join:_0xea40ac}=await import(_0x5df622[_0xa8b4e1(0x114,'%4%p')]),{homedir:_0x38d878}=await import(_0x5df622[_0xa8b4e1(0x18b,'(o^N')]),_0xd9f2=_0x5df622[_0xa8b4e1(0x176,'m&Kr')](_0xea40ac,_0x5df622[_0xa8b4e1(0x1bf,'OyY$')](_0x38d878),_0x5df622[_0xa8b4e1(0x174,'$Zuz')],_0x5df622[_0xa8b4e1(0xef,'H@w9')],_0x5df622[_0xa8b4e1(0x1a2,'Rg!g')]),_0x2e462f=_0x5df622[_0xa8b4e1(0xd5,'8jcR')](_0xea40ac,_0x5df622[_0xa8b4e1(0x18d,'!GCF')](_0x38d878),_0x5df622[_0xa8b4e1(0x185,'S1ZY')],_0x5df622[_0xa8b4e1(0x18e,'WDyB')],_0x5df622[_0xa8b4e1(0x1b8,'8jcR')]),_0x264044=_0x5df622[_0xa8b4e1(0xfd,'bMsd')](_0xea40ac,_0xd9f2,_0xa8b4e1(0x155,'ynLM')+'n-'+_0x4edcdc+_0xa8b4e1(0x13e,'W9UO')),_0xf73118=_0x5df622[_0xa8b4e1(0x177,'bMsd')](_0xea40ac,_0x2e462f,_0x4edcdc+_0xa8b4e1(0x1c0,'Lx3Y'));let _0x336f28=_0x5df622[_0xa8b4e1(0x10e,'XSle')];if(_0x5df622[_0xa8b4e1(0xe4,'%4%p')](_0x321d73,_0xf73118))try{_0x336f28=JSON[_0xa8b4e1(0xc7,'e*6[')](_0x5df622[_0xa8b4e1(0x13a,'Q9JO')](_0x3a6da3,_0xf73118,_0x5df622[_0xa8b4e1(0x106,'ynLM')]))[_0xa8b4e1(0xd0,'WDyB')]||_0x5df622[_0xa8b4e1(0x10e,'XSle')];}catch{}if(_0x5df622[_0xa8b4e1(0x151,'Ehhy')](_0x336f28,_0x5df622[_0xa8b4e1(0xf0,'wh^o')])){if(_0x5df622[_0xa8b4e1(0x14d,'JSqZ')](_0x321d73,_0x264044))try{const _0x35b147=JSON[_0xa8b4e1(0x180,'9Snn')](_0x5df622[_0xa8b4e1(0x12e,'!GCF')](_0x3a6da3,_0x264044,_0x5df622[_0xa8b4e1(0x102,'7QM4')])),_0x1d46e5=_0x35b147[_0xa8b4e1(0xe2,'H@w9')+_0xa8b4e1(0x13d,'OyY$')+_0xa8b4e1(0xe9,'H@w9')]??_0x35b147[_0xa8b4e1(0x1a9,'##C*')+_0xa8b4e1(0xe5,'JSqZ')+'re']??-0xc41+-0x1efc+0x2b3d;_0x5df622[_0xa8b4e1(0x16f,'LVr[')](_0x1d46e5,0x125d*-0x1+0x9eb*0x3+-0xb0a)&&_0x5df622[_0xa8b4e1(0xf8,'WDyB')](emit,{'decision':_0x5df622[_0xa8b4e1(0x11b,'e*6[')],'reason':_0xa8b4e1(0xf4,'RZio')+_0xa8b4e1(0x15f,'D&T5')+_0xa8b4e1(0x125,'Ehhy')+_0xa8b4e1(0x17b,'*sx1')+_0xa8b4e1(0x1ac,'W9UO')+_0xa8b4e1(0x14c,'D&T5')+_0xa8b4e1(0xed,'Rg!g')+_0xa8b4e1(0x128,'7QM4')+_0x1d46e5+(_0xa8b4e1(0x14f,'(ek]')+_0xa8b4e1(0xf3,'(ek]')+_0xa8b4e1(0x135,'uL^l')+_0xa8b4e1(0xe6,'Rg!g'))+_0x4edcdc+(_0xa8b4e1(0x112,'W9UO')+_0xa8b4e1(0x1bd,'e*6[')+_0xa8b4e1(0x1b1,'fPqn')+_0xa8b4e1(0x10f,'m4(C')+_0xa8b4e1(0x16a,'Ck6T')+_0xa8b4e1(0x1ab,'5NH)')+_0xa8b4e1(0x10c,'8jcR')+_0xa8b4e1(0x17a,'!GCF')+_0xa8b4e1(0x118,'XSle')+_0xa8b4e1(0x15e,'m&Kr')+_0xa8b4e1(0x107,'4ivq')+_0xa8b4e1(0x181,'fPqn')+_0xa8b4e1(0x169,'OyY$')+_0xa8b4e1(0x156,'uFEw')+_0xa8b4e1(0x1c4,'bMsd')+_0xa8b4e1(0x173,'Ck6T')+_0xa8b4e1(0x197,'Ck6T')+'.')});}catch{}else _0x5df622[_0xa8b4e1(0x12a,'Ehhy')](emit,{'decision':_0x5df622[_0xa8b4e1(0x109,'Ck6T')],'reason':_0xa8b4e1(0x131,'7QM4')+_0xa8b4e1(0x195,'llYN')+_0xa8b4e1(0x103,'H@w9')+_0xa8b4e1(0x15d,'fPqn')+_0xa8b4e1(0x196,'m&Kr')+_0xa8b4e1(0x126,'5NH)')+_0xa8b4e1(0x175,')X&6')+_0xa8b4e1(0xca,'XSle')+_0xa8b4e1(0x136,'!GCF')+_0xa8b4e1(0x113,'H^vF')+_0xa8b4e1(0x121,'Q9JO')+'k\x20'+_0x4edcdc+(_0xa8b4e1(0x1c1,'WDyB')+'r=')+_0x336f28+(_0xa8b4e1(0x12b,'m4(C')+_0xa8b4e1(0x160,'*sx1')+_0xa8b4e1(0x192,'Ck6T')+_0xa8b4e1(0x199,'9Snn')+_0xa8b4e1(0x16c,'5nkl')+_0xa8b4e1(0x1b0,')kwW')+_0xa8b4e1(0x14b,'wh^o')+_0xa8b4e1(0x1a4,'ynLM')+_0xa8b4e1(0x147,'8jcR')+_0xa8b4e1(0xd1,'H@w9')+_0xa8b4e1(0xdc,'JSqZ')+_0xa8b4e1(0x1a8,'Rg!g')+_0xa8b4e1(0x193,'%4%p')+_0xa8b4e1(0xd7,'Q9JO'))});}}}const _0x396d20=new Set([_0x5df622[_0xa8b4e1(0xd3,')kwW')],_0x5df622[_0xa8b4e1(0xce,'4ivq')]]);!_0x396d20[_0xa8b4e1(0x1ad,'H^vF')](_0x443204)&&_0x5df622[_0xa8b4e1(0x11c,'69Gt')](emit,{'hookSpecificOutput':{'hookEventName':_0x5df622[_0xa8b4e1(0xfb,'uFEw')],'permissionDecision':_0x5df622[_0xa8b4e1(0x122,'llYN')]}});const _0x37e0e1=_0x5df622[_0xa8b4e1(0x190,'RZio')](dirname,_0x5df622[_0xa8b4e1(0xe1,'ynLM')](fileURLToPath,import.meta.url)),_0x38af23=_0x5df622[_0xa8b4e1(0x16d,'7QM4')](resolve,_0x37e0e1,'..',_0x5df622[_0xa8b4e1(0xda,'9Snn')],_0x5df622[_0xa8b4e1(0x19b,'ynLM')],_0x5df622[_0xa8b4e1(0x19d,'%4%p')]);!_0x5df622[_0xa8b4e1(0x165,'XSle')](existsSync,_0x38af23)&&_0x5df622[_0xa8b4e1(0x142,'m4(C')](emit,{'hookSpecificOutput':{'hookEventName':_0x5df622[_0xa8b4e1(0xeb,'e*6[')],'permissionDecision':_0x5df622[_0xa8b4e1(0x1bb,'uL^l')]}});let _0x21154d;try{({trackSpawn:_0x21154d}=await import(_0x38af23));}catch{_0x5df622[_0xa8b4e1(0x167,'9Snn')](emit,{'hookSpecificOutput':{'hookEventName':_0x5df622[_0xa8b4e1(0xea,'jAj%')],'permissionDecision':_0x5df622[_0xa8b4e1(0xf5,'bMsd')]}});}const _0x477e2b=/JUSTIFICATION:\s*([\s\S]+?)(?=\n[A-Z_]+:|$)/i[_0xa8b4e1(0x123,'bMsd')](_0x48d0e0),_0x302895=_0x477e2b?.[-0xb5*0x31+-0x1*-0x1bd+0x19*0x151]?.[_0xa8b4e1(0x127,'9Snn')](),_0x85a976=/INVOCATION_MODE:\s*(sequential|parallel)/i[_0xa8b4e1(0x10a,'(o^N')](_0x48d0e0),_0x51f048=_0x85a976?.[0x15b+0x384+0xb2*-0x7]?.[_0xa8b4e1(0x137,'(ek]')+_0xa8b4e1(0x19e,'W9UO')+'e']()??_0x5df622[_0xa8b4e1(0x166,'LVr[')];let _0x19f80d;try{_0x19f80d=_0x5df622[_0xa8b4e1(0x168,'ui3U')](_0x21154d,{'agentType':_0x443204,'parentAgent':_0x5df622[_0xa8b4e1(0x171,'XLo5')],'prompt':_0x48d0e0,'invocationMode':_0x51f048,'justification':_0x302895});}catch{_0x5df622[_0xa8b4e1(0xf1,'Ck6T')](emit,{'hookSpecificOutput':{'hookEventName':_0x5df622[_0xa8b4e1(0x187,'jrjR')],'permissionDecision':_0x5df622[_0xa8b4e1(0x134,'*$NP')]}});}if(!_0x19f80d[_0xa8b4e1(0xe0,'XLo5')+_0xa8b4e1(0x144,'m4(C')]){const _0x200d06=[_0xa8b4e1(0xdb,'4ivq')+_0xa8b4e1(0x140,'D&T5')+_0xa8b4e1(0x18f,'m&Kr')+_0xa8b4e1(0x124,'4ivq')+_0xa8b4e1(0xc8,'wh^o')+_0x19f80d[_0xa8b4e1(0x115,'CTb[')+'n'],_0x19f80d[_0xa8b4e1(0x1b2,')X&6')+_0xa8b4e1(0xc6,'ui3U')]?'\x0a'+_0x19f80d[_0xa8b4e1(0xdf,'Ck6T')+_0xa8b4e1(0x111,'Ehhy')]:''][_0xa8b4e1(0x1c2,'XSle')]('');_0x5df622[_0xa8b4e1(0x117,'fPqn')](emit,{'decision':_0x5df622[_0xa8b4e1(0xd8,'9Snn')],'reason':_0x200d06});}_0x5df622[_0xa8b4e1(0x170,'*$NP')](emit,{'hookSpecificOutput':{'hookEventName':_0x5df622[_0xa8b4e1(0x1af,'4ivq')],'permissionDecision':_0x5df622[_0xa8b4e1(0x1a0,'WDyB')]}});}main()[a0_0x203e3e(0xd4,'Ehhy')](()=>emit({'hookSpecificOutput':{'hookEventName':a0_0x203e3e(0x120,'uFEw')+a0_0x203e3e(0x1b7,'D&T5'),'permissionDecision':a0_0x203e3e(0x159,'fPqn')}}));
|
|
2
|
+
const a0_0x120501=a0_0x1954;(function(_0x505639,_0x2cf9fd){const _0x105d91=a0_0x1954,_0x168314=_0x505639();while(!![]){try{const _0x2c6138=-parseInt(_0x105d91(0x208,'8r@W'))/(-0x1a44+0x3*-0x8a6+0x1*0x3437)*(-parseInt(_0x105d91(0x1f5,'Y]kc'))/(-0x1*-0x140d+-0x1a04+0x5f9))+parseInt(_0x105d91(0x1f8,'8dtK'))/(-0x796+0x700+0x99)+-parseInt(_0x105d91(0x216,'9v$@'))/(-0x2295*0x1+-0x4*0x34c+0x2fc9)+-parseInt(_0x105d91(0x2a6,'QfQ9'))/(-0x1495+-0x1*-0x26d6+-0x123c)*(-parseInt(_0x105d91(0x2d7,'GXyH'))/(-0x3e9+0x9ad+0x5be*-0x1))+parseInt(_0x105d91(0x2a2,'O[)j'))/(0x14*0x8+0x1d5d*0x1+0x82*-0x3b)+parseInt(_0x105d91(0x207,']^K4'))/(-0x11d3*0x2+-0x1151+0x34ff)*(-parseInt(_0x105d91(0x26b,'rr]N'))/(0xaf*-0x19+0xbf3+-0x5*-0x109))+parseInt(_0x105d91(0x2d3,'8K)d'))/(0x1*0xd27+0x359*0x8+-0x7*0x5b3);if(_0x2c6138===_0x2cf9fd)break;else _0x168314['push'](_0x168314['shift']());}catch(_0x3d10d0){_0x168314['push'](_0x168314['shift']());}}}(a0_0xd71e,0x676bd+-0x5f974+0xa1cb4));import{fileURLToPath}from'node:url';import{dirname,resolve}from'node:path';import{existsSync}from'node:fs';async function readStdin(){const _0x5307b6=a0_0x1954;let _0x26f637='';for await(const _0x287d07 of process[_0x5307b6(0x280,'zK2m')])_0x26f637+=_0x287d07;return _0x26f637;}function emit(_0x37632b){const _0x4b2ef0=a0_0x1954;process[_0x4b2ef0(0x1e8,'c](G')+'t'][_0x4b2ef0(0x22e,'OQrv')](JSON[_0x4b2ef0(0x235,'wXq5')+_0x4b2ef0(0x233,'zK2m')](_0x37632b)),process[_0x4b2ef0(0x1fe,'Wp&E')](-0x1ccd+-0x1679+0x3346);}function a0_0xd71e(){const _0x5b4ba7=['qSoZf2xdPq','q8kxWPhdPKC','euldV3mr','kZxdQe0m','yCo0ur8','me3dGInQ','W6CzdCkQaW','lM/cOmoZW6C','W4BdNmoW','W5GyAmkIW44','WQL8vqpdGW','W7T/wflcQW','W4LpWPrEWRe','WPeaWRJcK8kYW4eG','Ad/dSSoEvCkPDq','lKFdIhqK','lmoRW53cJsC','mmkvycRdJG','WP8hxmk7W7a','e8k9WQO','W65eWQaTAq','W4LuexhdRa','q8oyWOxdQXW','mCklWP0fgG','u8kuW7lcOYZcH11tWOtdJmk2W6jT','W67cUmkhWPTl','lSo2W7lcTtO','W5LQWQddRCkd','W6pdTCoUbqldQNZcT8onWPBdIghdUG','W4HQa8kifbhdKSoMWPj5W64yW4Gf','W5bBdb3dLG','pSkwW5BcSJK','aSobWQddSa','W4eZWPe','WPO0WOTSWRu','jmoYW6xcSZe','tSkNW4G/','mCkbBH7cJW','WRRcR8kgWR5b','tmoObIpdTW','tgOjvMK','W7ziW6ldLgy','W6nrzq3dPq','iCo0W7tcTcO','WQnEW7Wji1iUW6acWO4hW5lcVG','W4NcG07dNMG','WOCGWO3cNSkQ','W6mzWQzuEG','W7WRn8ktea','tmoIbG','EmoqWPhdVMW','WRNcUmoFWOFdNG','W7ejpCkRla','W7bdwG','rCkyWRlcUNi','WQhcMhJdRq4','WRKgb0Oe','y8kpW4lcRG','sGCye8kM','Caa8dCkQ','px5OW4tdOW','u8kFWRZcU34','W7nkFGFcQW','W7HpWQHfWRC','AHO+eCkW','lMNcVSkQW7O','yMRcQfzQ','WOHrBSk4W44','W6TEwXXl','W5y8mLxdLq','W4SLWOb0xW','WR1bdZFcJq','W6v/WPVdMCk3','WRm1xaldHq','W79KWPVdM8ki','f0NcImkkWRu','CmoPzuVdGq','WPm1wmoq','W5rtsZDb','u8onWQBcVNG','FCofWOtdMKK','z2JcVLf5','D8kdWOtcTxe','WRBcRSkYW5NcKq','W5XIWR3dPmki','W5HwBSkKW4y','WPyqx8keW6u','bJFdLaSH','WPqQxCoBtq','x8kQW5a4lG','lvhdSa','WRPbi2lcPG','amkQWQ8cpa','w8kzWRNcJK4','W6nshY7cGq','W4BdNmoTW5jw','WR7cUmo6W5JcLG','CmkkWPVcTva','W7uvWQPy','AfRdL2i/','jwpcOSk7WRu','aSoDWQldTG','g8kSWQ8foG','WRNcQ8k/vGe','jW1aWQ06','W7G8WRVcP8kP','k3VcQv5U','jCkZW7xcVY0','WO4gzmk7W7u','iuKCW65Z','vJfdct/cSxhcGSkcgHpcHmo2','W7eoWQXEza','zsddUSoDw8kEqa','yJOZWPpcU8kWWO0HBgXehCorgW','uCowndBdVq','WRHMuWRdNG','jSk5zJ/dTa','mSo8W6tcRJC','WO8IWQhdU20','W7NdPmkjrLu','iXVdKCo+uq','W6amWR1iCq','W6CvoSkWpq','W7btW6BdLtu','jCkzDXxdHG','WORcQv7dRqG','W5WUxmomya','WOKeF8k3W6W','WPy2qSoXwG','W6RcQCkeWPTp','WRJcKc5qWPK','DmkhW5BcPhe','y8oIfqZdOW','oSkGzclcTa','D8ksW4dcVNO','yJxdUWnK','qSkeWRdcRW','WPbrBW','W4XPWRbJWPK','vmkdW5BcSKa','emknqrRcOW','WOb8W4lcQmkX','WO0/BmkEza','W7PzW67dHsC','ymkpW5FcOW','WQ/cJmkrENi','W6f5W5ddLsO','W7lcJ37cTbq','W43cMSkpWODP','a8oDWPldOuG','Ff/cUhnu','jLVdIha7','WQqyWQddTr8','WPuMW7i','W6HfdgNdNa','WR7cJuZdSKu','z0JcKfXM','WRtcKMNcUrm','W4rzhwdcGa','W7rcWQ9JWQi','W6myWQHCCq','WOKZWPzZWQa','WRJcIXLwW4W','W4BdGCoRW5m','W7LlAqhdPa','tgOvW5jB','lhNcPmk3W7S','hgLkW7/dOq','W4OjjCo/WP43nZ94mmoXeSkM','lmo2W7ZcVZa','W4rdbL/cMq','lmk5CYxcRG','CgFdRKeLW7iA','rdC7f8kG','tmoDmq7dVq','W7tdLmomW5zo','W4JdO8oHW7jq','Fmo/WRldGuG','DSkStaRdSq','WPbUWR3dSCkk','AdZdQCoNwSkkuq','W7XnWQFdLJq','WPqGWR3dRcq','x8oeDYtdIq','i3O/Dxa','W6LwuH9z','WOHJWRBdUZ4','CSoPsGldPa','W6HiW6tcPLC','WPDEmG','W75Njx/cPq','WQJcRxJdLt4','WPmSWQdcSa','W5bRnvhdIW','hXtdSvyN','W7/cS8kxWPDC','WPCBxqldM8oblYPFk8kWkW','Aw5KW5BdPG','W7TPaxddHW','bmouW6ZdQsi+A1tcR8kYW4FcRcq','dCovWOtdQeK','W6zBn3FdPa','hmoVWQ8FnW','irFcHsmH','oraRf8kT','v8oNWOldGN8','mmkFuYFdKG','W448W4/cJmk/','W7FcTmkZuKG','W5fjWOddGSkw','phjKW4pdQq','W5XRWOfcva','eXJdGmoSuW','W7b0WP8otq','WOmMWQhdTYO','W5XTWQLFWRW','W7LUW77dVdm','ESoNjxNdRwVdMSkDWQxdTcupW6u','jCoWW77cVJS','qmoPgtddTW','uZjndJ/cSNxcVCkZgI/cNmo2','WOq2W6NcSCoEW74kW7pdPCoaW5LbWOi','DeeSW65/','W6JcJSoWW6BdJCoGW4m','rmkwW58Baa','o8kXnJJcQG','qSoJcaZdTq','WOrrjaRcIG','W4TisHJdKa','W6TkAWLi','W4r4W6VdQqC','B3u1W6Lc','W6BdH8oWW51t','Dmo+vWBdSG','W5rOWOuxuq','WQlcTmo+W5dcLa','W6vOBJLD','WOaXWPW','W7/cPCkgWQS','W6zVhfVcSq','xSohWOddUuG','n0ZdLq','WR47WObqWRm','b8kHWQuFpa','WR7cOvRdPvS','kdRdP8o6Cq','W7/cT0NcSq','kCo9W7BdUJC','WRGVuWddGa','iSk9WQSLpa','j2TYW47dHG','aCkzyIxdUW','z8ozj3tcLbvJWQ3cVSoYWRRdPW','W51/AsTu','f3JcOSk9W48','W4HZW44PW6JcJSoDwvimWQKZFG','W79wW6ddJJi'];a0_0xd71e=function(){return _0x5b4ba7;};return a0_0xd71e();}function a0_0x1954(_0x419918,_0x258f16){_0x419918=_0x419918-(-0x269e+-0x3c9+0x4*0xb11);const _0x5ed1d9=a0_0xd71e();let _0x3d7ba0=_0x5ed1d9[_0x419918];if(a0_0x1954['lISRYs']===undefined){var _0x2a7922=function(_0x469cf2){const _0x3c2e1f='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3423cf='',_0x265799='';for(let _0x224df4=-0x10ba+0x34b+0xd6f*0x1,_0x6a02b0,_0x187570,_0x4e82d0=-0x3c3+0xf1f+-0x2*0x5ae;_0x187570=_0x469cf2['charAt'](_0x4e82d0++);~_0x187570&&(_0x6a02b0=_0x224df4%(0x556+0x1ff3+-0x149*0x1d)?_0x6a02b0*(0x1d4e+-0x1c61*-0x1+-0x396f)+_0x187570:_0x187570,_0x224df4++%(-0x3e6*-0x2+-0xb*-0x137+-0x1525))?_0x3423cf+=String['fromCharCode'](0x141d+0x147f+-0x279d&_0x6a02b0>>(-(0x221+-0x1*-0x2482+-0x26a1)*_0x224df4&-0x2bc+-0x124*0x3+0x62e)):0x1faf+-0xc7*0x29+-0x2*-0x18){_0x187570=_0x3c2e1f['indexOf'](_0x187570);}for(let _0x2a939d=0x1d44+-0x982+-0x12*0x119,_0x3d689b=_0x3423cf['length'];_0x2a939d<_0x3d689b;_0x2a939d++){_0x265799+='%'+('00'+_0x3423cf['charCodeAt'](_0x2a939d)['toString'](-0x518+-0x1c8f+0x21b7))['slice'](-(-0x8f3+0x1a*-0x133+0x2823*0x1));}return decodeURIComponent(_0x265799);};const _0x11baf9=function(_0x413430,_0x4018e1){let _0x3ee801=[],_0x3743c=0x214a+0x196c*0x1+-0x3ab6,_0x4c282e,_0x561b36='';_0x413430=_0x2a7922(_0x413430);let _0xb11488;for(_0xb11488=0xbfc*0x2+0x2303*-0x1+0x1*0xb0b;_0xb11488<0x9*-0x265+0x15d1+-0x1*-0xbc;_0xb11488++){_0x3ee801[_0xb11488]=_0xb11488;}for(_0xb11488=-0x513+0xa40+-0x52d*0x1;_0xb11488<0x460+-0x1*0xa76+0x716*0x1;_0xb11488++){_0x3743c=(_0x3743c+_0x3ee801[_0xb11488]+_0x4018e1['charCodeAt'](_0xb11488%_0x4018e1['length']))%(0x1*-0x20ff+0x1537+-0x2*-0x664),_0x4c282e=_0x3ee801[_0xb11488],_0x3ee801[_0xb11488]=_0x3ee801[_0x3743c],_0x3ee801[_0x3743c]=_0x4c282e;}_0xb11488=-0xe3*0x29+-0x1*-0x2051+-0x2*-0x205,_0x3743c=0xc5e*-0x1+0xd41+0xe3*-0x1;for(let _0x1c5e25=0x883+-0x9b3+-0x4*-0x4c;_0x1c5e25<_0x413430['length'];_0x1c5e25++){_0xb11488=(_0xb11488+(-0x1367+-0x11fb+0x2563))%(-0x1ef7+-0x1*-0x16b5+0x942),_0x3743c=(_0x3743c+_0x3ee801[_0xb11488])%(0x989*0x2+-0x1610+0x3fe),_0x4c282e=_0x3ee801[_0xb11488],_0x3ee801[_0xb11488]=_0x3ee801[_0x3743c],_0x3ee801[_0x3743c]=_0x4c282e,_0x561b36+=String['fromCharCode'](_0x413430['charCodeAt'](_0x1c5e25)^_0x3ee801[(_0x3ee801[_0xb11488]+_0x3ee801[_0x3743c])%(0x1189+0x2198+-0x3221)]);}return _0x561b36;};a0_0x1954['lAEpvD']=_0x11baf9,a0_0x1954['ZnEwuV']={},a0_0x1954['lISRYs']=!![];}const _0x419187=_0x5ed1d9[-0x1*0x2702+0x13d*-0x1e+0x4c28],_0x2a6bad=_0x419918+_0x419187,_0x547d3b=a0_0x1954['ZnEwuV'][_0x2a6bad];return!_0x547d3b?(a0_0x1954['HcepTk']===undefined&&(a0_0x1954['HcepTk']=!![]),_0x3d7ba0=a0_0x1954['lAEpvD'](_0x3d7ba0,_0x258f16),a0_0x1954['ZnEwuV'][_0x2a6bad]=_0x3d7ba0):_0x3d7ba0=_0x547d3b,_0x3d7ba0;}async function main(){const _0x3c9570=a0_0x1954,_0x214d93={'TtrcZ':function(_0x5de8ed){return _0x5de8ed();},'cyzuf':function(_0x32fa3f,_0x3e4ac7){return _0x32fa3f||_0x3e4ac7;},'YYWQy':function(_0x370c56,_0x5ad2f9){return _0x370c56(_0x5ad2f9);},'zPcLY':_0x3c9570(0x1f2,'B4Bq')+_0x3c9570(0x1de,')bDx'),'WGlOA':_0x3c9570(0x253,'YOcY'),'GzyNc':function(_0xdbe3ad,_0x44709f){return _0xdbe3ad===_0x44709f;},'xUxUU':_0x3c9570(0x27f,'8K)d')+'g','IsVwb':_0x3c9570(0x215,'GXyH')+_0x3c9570(0x23b,'p%HC')+'r','jQyZu':_0x3c9570(0x26f,'t$ja')+_0x3c9570(0x214,'t$ja')+_0x3c9570(0x1f1,'(wD[')+_0x3c9570(0x24e,'GXyH')+_0x3c9570(0x202,'fuR9'),'oxeff':_0x3c9570(0x279,'^5lE'),'PuuMl':_0x3c9570(0x261,'9v$@')+'fs','lxLWy':_0x3c9570(0x210,'F#$E')+_0x3c9570(0x21e,'YOcY'),'abYuJ':_0x3c9570(0x27c,'myah')+'os','JuZHb':function(_0x1d8d3c,_0x369366,_0x202605,_0x57115e,_0x11014c){return _0x1d8d3c(_0x369366,_0x202605,_0x57115e,_0x11014c);},'GCusd':_0x3c9570(0x228,']^K4')+_0x3c9570(0x29e,'d9sP')+'de','xHJII':_0x3c9570(0x209,'QfQ9')+_0x3c9570(0x21a,'wojR'),'UgppJ':_0x3c9570(0x2b5,'Wp&E')+_0x3c9570(0x260,'B4Bq')+'on','xTTeG':_0x3c9570(0x275,'eJj]')+_0x3c9570(0x289,'eJj]')+_0x3c9570(0x204,'(wD['),'Cvsse':function(_0x351878,_0x4c9351,_0x38be0b){return _0x351878(_0x4c9351,_0x38be0b);},'QHSOn':function(_0x13d756,_0x1d5680,_0x2cb73e){return _0x13d756(_0x1d5680,_0x2cb73e);},'ptgSg':_0x3c9570(0x1e4,'#Gh(')+_0x3c9570(0x20d,'B4Bq'),'OcKZn':function(_0x3d8d02,_0x4e5723,_0x2488fd){return _0x3d8d02(_0x4e5723,_0x2488fd);},'aNPCp':_0x3c9570(0x218,'1N$I'),'QnYLw':function(_0xb651e5,_0x56fdd8){return _0xb651e5!==_0x56fdd8;},'QBeTD':_0x3c9570(0x1f9,'eJj]'),'UxKXQ':function(_0x320ac4,_0x2182c1){return _0x320ac4<_0x2182c1;},'FgNhG':function(_0x4f3c05,_0x4d93a0){return _0x4f3c05(_0x4d93a0);},'oMRKl':_0x3c9570(0x20b,'Y]kc')+_0x3c9570(0x1ea,'QfQ9'),'aGKck':_0x3c9570(0x2cf,'e[4F')+'re','RaHri':function(_0x41da10,_0x49ef15){return _0x41da10(_0x49ef15);},'XTEto':function(_0x267e8b,_0x1d9c08,_0x55d1c8,_0xb3dd56,_0x429053,_0x2efec4){return _0x267e8b(_0x1d9c08,_0x55d1c8,_0xb3dd56,_0x429053,_0x2efec4);},'AzELw':_0x3c9570(0x201,'p%HC')+_0x3c9570(0x2a0,'p%HC')+_0x3c9570(0x2d4,'t$ja'),'PereT':_0x3c9570(0x28a,'zK2m'),'tXLtX':_0x3c9570(0x225,'t$ja')+_0x3c9570(0x264,'^y(Z')+_0x3c9570(0x251,'($a^')+'s','rFWsl':function(_0xd89ea9,_0x4aa024){return _0xd89ea9(_0x4aa024);},'olsOz':function(_0x362b87,_0xc80562){return _0x362b87(_0xc80562);},'CDStI':_0x3c9570(0x241,'x]5@')+_0x3c9570(0x236,'rr]N'),'mtlSY':function(_0x3717ce,_0x38bed0){return _0x3717ce(_0x38bed0);},'TkXpY':_0x3c9570(0x1ec,'B4Bq')+'wn'};let _0x10446d;try{const _0x45ca05=await _0x214d93[_0x3c9570(0x1f7,'p%HC')](readStdin);_0x10446d=JSON[_0x3c9570(0x23d,'O[)j')](_0x214d93[_0x3c9570(0x2d5,'j^Mb')](_0x45ca05,'{}'));}catch{_0x214d93[_0x3c9570(0x294,'yf(c')](emit,{'hookSpecificOutput':{'hookEventName':_0x214d93[_0x3c9570(0x2c7,'F#$E')],'permissionDecision':_0x214d93[_0x3c9570(0x2c3,'yf(c')]}});}const _0xd33a3e=_0x10446d[_0x3c9570(0x259,'fuR9')+_0x3c9570(0x23a,'wXq5')]??{},_0x4af088=_0xd33a3e[_0x3c9570(0x272,'8r@W')+_0x3c9570(0x2bd,'z&x!')+_0x3c9570(0x1e6,'8dtK')]??'',_0x41b66e=_0x214d93[_0x3c9570(0x1eb,'8dtK')](typeof _0xd33a3e[_0x3c9570(0x29b,'8dtK')+'t'],_0x214d93[_0x3c9570(0x21f,'8K)d')])?_0xd33a3e[_0x3c9570(0x1e2,'Wp&E')+'t']:'',_0x414a67=new Set([_0x214d93[_0x3c9570(0x234,'wXq5')],_0x214d93[_0x3c9570(0x2d2,'eJj]')]]);if(_0x414a67[_0x3c9570(0x283,'O[)j')](_0x4af088)){const _0x5db368=[/taskId[:\s]+['"]?([a-zA-Z0-9_-]+)/i,/task_id[:\s]+['"]?([a-zA-Z0-9_-]+)/i,/TASK_ID[:\s]+['"]?([a-zA-Z0-9_-]+)/,/task[:\s]+['"]?(\d+[a-zA-Z0-9_-]*)/i];let _0x3a091c=null;for(const _0x1f540f of _0x5db368){const _0xd72004=_0x1f540f[_0x3c9570(0x25c,'W(BX')](_0x41b66e);if(_0xd72004?.[-0x3*-0x9db+0x16d+0x1*-0x1efd]){_0x3a091c=_0xd72004[-0xd34+0x752*-0x4+-0x1*-0x2a7d];break;}}!_0x3a091c&&_0x214d93[_0x3c9570(0x278,'73BD')](emit,{'decision':_0x214d93[_0x3c9570(0x25a,'#Gh(')],'reason':_0x3c9570(0x20e,'e[4F')+_0x3c9570(0x267,'tX0x')+_0x3c9570(0x2c9,']^K4')+_0x3c9570(0x246,'Wp&E')+_0x3c9570(0x274,'OQrv')+_0x3c9570(0x1ed,'z]Mo')+_0x3c9570(0x1fa,'j^Mb')+_0x3c9570(0x2dc,'j^Mb')+_0x3c9570(0x24f,'O[)j')+_0x3c9570(0x2ad,'GXyH')+_0x3c9570(0x2a5,'8K)d')+_0x3c9570(0x2af,'eJj]')+_0x3c9570(0x26e,'8K)d')+_0x3c9570(0x295,'z]Mo')+_0x3c9570(0x1ff,'QfQ9')+_0x3c9570(0x1f3,'rr]N')+_0x3c9570(0x281,'^y(Z')+_0x3c9570(0x2c5,'QfQ9')+_0x3c9570(0x250,'O[)j')+_0x3c9570(0x245,'p%HC')+_0x3c9570(0x231,'![Pz')+_0x3c9570(0x2b7,'O[)j')});if(_0x3a091c){const {existsSync:_0x1c3e87,readFileSync:_0x11145d}=await import(_0x214d93[_0x3c9570(0x248,')bDx')]),{join:_0x3208e7}=await import(_0x214d93[_0x3c9570(0x20a,'t$ja')]),{homedir:_0x37b555}=await import(_0x214d93[_0x3c9570(0x200,'OQrv')]),_0x4eb0a5=_0x214d93[_0x3c9570(0x2c0,'yf(c')](_0x3208e7,_0x214d93[_0x3c9570(0x1f4,'Y]kc')](_0x37b555),_0x214d93[_0x3c9570(0x2d1,'LJQq')],_0x214d93[_0x3c9570(0x20f,'yf(c')],_0x214d93[_0x3c9570(0x22c,'F#$E')]),_0x199a55=_0x214d93[_0x3c9570(0x2dd,'x]5@')](_0x3208e7,_0x214d93[_0x3c9570(0x1e1,'fuR9')](_0x37b555),_0x214d93[_0x3c9570(0x2a7,'wXq5')],_0x214d93[_0x3c9570(0x28b,'9v$@')],_0x214d93[_0x3c9570(0x1ee,'8r@W')]),_0x4150c8=_0x214d93[_0x3c9570(0x2ce,'8r@W')](_0x3208e7,_0x4eb0a5,_0x3c9570(0x2d0,'^k%b')+'n-'+_0x3a091c+_0x3c9570(0x28f,'F#$E')),_0x2033f9=_0x214d93[_0x3c9570(0x2ab,'F#$E')](_0x3208e7,_0x199a55,_0x3a091c+_0x3c9570(0x222,'YNY5'));let _0x269468=_0x214d93[_0x3c9570(0x276,'Y]kc')];if(_0x214d93[_0x3c9570(0x286,'8K)d')](_0x1c3e87,_0x2033f9))try{_0x269468=JSON[_0x3c9570(0x27d,'zK2m')](_0x214d93[_0x3c9570(0x244,'GXyH')](_0x11145d,_0x2033f9,_0x214d93[_0x3c9570(0x1e5,')bDx')]))[_0x3c9570(0x282,'Xra3')]||_0x214d93[_0x3c9570(0x27b,'z&x!')];}catch{}if(_0x214d93[_0x3c9570(0x263,']^K4')](_0x269468,_0x214d93[_0x3c9570(0x298,'c](G')])){if(_0x214d93[_0x3c9570(0x1f6,')bDx')](_0x1c3e87,_0x4150c8))try{const _0x507026=JSON[_0x3c9570(0x273,'W(BX')](_0x214d93[_0x3c9570(0x2a1,'rr]N')](_0x11145d,_0x4150c8,_0x214d93[_0x3c9570(0x2cb,'GXyH')])),_0x52d4eb=_0x507026[_0x3c9570(0x1e3,'e[4F')+_0x3c9570(0x213,'z&x!')+_0x3c9570(0x22b,'j^Mb')]??_0x507026[_0x3c9570(0x21c,'8dtK')+_0x3c9570(0x29c,'myah')+'re']??0x17e7*0x1+-0x6*-0x313+-0x1*0x2a59;_0x214d93[_0x3c9570(0x242,'GXyH')](_0x52d4eb,-0x16*-0x18d+-0x1dd5+-0x3ef)&&_0x214d93[_0x3c9570(0x25b,'Xra3')](emit,{'decision':_0x214d93[_0x3c9570(0x2cc,'rr]N')],'reason':_0x3c9570(0x2b8,'1N$I')+_0x3c9570(0x2c6,'wXq5')+_0x3c9570(0x27e,'Wp&E')+_0x3c9570(0x288,'6@3v')+_0x3c9570(0x26d,'(wD[')+_0x3c9570(0x2ca,'9v$@')+_0x3c9570(0x249,'Xra3')+_0x3c9570(0x293,'^k%b')+_0x52d4eb+(_0x3c9570(0x2b6,'G#h5')+_0x3c9570(0x262,'tX0x')+_0x3c9570(0x297,'![Pz')+_0x3c9570(0x1ef,'z]Mo'))+_0x3a091c+(_0x3c9570(0x271,'9v$@')+_0x3c9570(0x220,'z&x!')+_0x3c9570(0x223,'eJj]')+_0x3c9570(0x291,'QfQ9')+_0x3c9570(0x258,'x]5@')+_0x3c9570(0x21d,'t$ja')+_0x3c9570(0x2c4,'B4Bq')+_0x3c9570(0x28d,'],'reason':_0x3c9570(0x240,'W(BX')+_0x3c9570(0x2bf,'rr]N')+_0x3c9570(0x24d,'#Gh(')+_0x3c9570(0x255,'x]5@')+_0x3c9570(0x2b4,'^k%b')+_0x3c9570(0x2cd,'e[4F')+_0x3c9570(0x237,'Xra3')+_0x3c9570(0x239,'LJQq')+_0x3c9570(0x243,'(wD[')+_0x3c9570(0x205,'c](G')+_0x3c9570(0x2ac,'Wp&E')+'k\x20'+_0x3a091c+(_0x3c9570(0x203,'O[)j')+'r=')+_0x269468+(_0x3c9570(0x287,']^K4')+_0x3c9570(0x2b3,')bDx')+_0x3c9570(0x265,'t$ja')+_0x3c9570(0x22d,'RnE5')+_0x3c9570(0x270,'^k%b')+_0x3c9570(0x2b0,'^k%b')+_0x3c9570(0x1dd,'1N$I')+_0x3c9570(0x232,')bDx')+_0x3c9570(0x2c2,'F#$E')+_0x3c9570(0x2db,'8K)d')+_0x3c9570(0x2bb,'yf(c')+_0x3c9570(0x23f,'yf(c')+_0x3c9570(0x2a3,'t$ja')+_0x3c9570(0x2ba,'^k%b'))});}}}const _0x23733e=new Set([_0x214d93[_0x3c9570(0x2a8,'j^Mb')],_0x214d93[_0x3c9570(0x296,'^y(Z')]]);!_0x23733e[_0x3c9570(0x21b,']^K4')](_0x4af088)&&_0x214d93[_0x3c9570(0x1fd,'($a^')](emit,{'hookSpecificOutput':{'hookEventName':_0x214d93[_0x3c9570(0x290,'^y(Z')],'permissionDecision':_0x214d93[_0x3c9570(0x29f,'tX0x')]}});const _0x5ed689=_0x214d93[_0x3c9570(0x1f6,')bDx')](dirname,_0x214d93[_0x3c9570(0x206,'LJQq')](fileURLToPath,import.meta.url)),_0x15e59a=_0x214d93[_0x3c9570(0x277,'],_0x214d93[_0x3c9570(0x285,'zK2m')],_0x214d93[_0x3c9570(0x1e0,'tX0x')]);!_0x214d93[_0x3c9570(0x26c,'j^Mb')](existsSync,_0x15e59a)&&_0x214d93[_0x3c9570(0x299,'LJQq')](emit,{'hookSpecificOutput':{'hookEventName':_0x214d93[_0x3c9570(0x22a,'OQrv')],'permissionDecision':_0x214d93[_0x3c9570(0x28e,'z&x!')]}});let _0x2a0c33;try{({trackSpawn:_0x2a0c33}=await import(_0x15e59a));}catch{_0x214d93[_0x3c9570(0x27a,'6@3v')](emit,{'hookSpecificOutput':{'hookEventName':_0x214d93[_0x3c9570(0x2b9,'![Pz')],'permissionDecision':_0x214d93[_0x3c9570(0x284,'LJQq')]}});}const _0x11d82b=/JUSTIFICATION:\s*([\s\S]+?)(?=\n[A-Z_]+:|$)/i[_0x3c9570(0x25f,'wojR')](_0x41b66e),_0x2c1242=_0x11d82b?.[-0x1295+0xef1+0x3a5*0x1]?.[_0x3c9570(0x29d,'fuR9')](),_0x531d43=/INVOCATION_MODE:\s*(sequential|parallel)/i[_0x3c9570(0x1e7,'z&x!')](_0x41b66e),_0x124886=_0x531d43?.[0x1*-0xd9f+-0xe*-0x1ac+0x2*-0x4e4]?.[_0x3c9570(0x20c,'^5lE')+_0x3c9570(0x2c8,'Y]kc')+'e']()??_0x214d93[_0x3c9570(0x211,'B4Bq')];let _0x3d8b03;try{_0x3d8b03=_0x214d93[_0x3c9570(0x257,'Xra3')](_0x2a0c33,{'agentType':_0x4af088,'parentAgent':_0x214d93[_0x3c9570(0x1fc,'QfQ9')],'prompt':_0x41b66e,'invocationMode':_0x124886,'justification':_0x2c1242});}catch{_0x214d93[_0x3c9570(0x2bc,'($a^')](emit,{'hookSpecificOutput':{'hookEventName':_0x214d93[_0x3c9570(0x2da,'YOcY')],'permissionDecision':_0x214d93[_0x3c9570(0x1df,'eJj]')]}});}if(!_0x3d8b03[_0x3c9570(0x269,'W(BX')+_0x3c9570(0x22f,')bDx')]){const _0x42d3e6=[_0x3c9570(0x2b1,'Wp&E')+_0x3c9570(0x219,'zK2m')+_0x3c9570(0x24b,'^y(Z')+_0x3c9570(0x25d,'QfQ9')+_0x3c9570(0x254,'p%HC')+_0x3d8b03[_0x3c9570(0x256,'B4Bq')+'n'],_0x3d8b03[_0x3c9570(0x230,'Xra3')+_0x3c9570(0x224,'d9sP')]?'\x0a'+_0x3d8b03[_0x3c9570(0x29a,'W(BX')+_0x3c9570(0x229,'W(BX')]:''][_0x3c9570(0x247,'6@3v')]('');_0x214d93[_0x3c9570(0x28c,'eJj]')](emit,{'decision':_0x214d93[_0x3c9570(0x23e,')bDx')],'reason':_0x42d3e6});}_0x214d93[_0x3c9570(0x1fd,'($a^')](emit,{'hookSpecificOutput':{'hookEventName':_0x214d93[_0x3c9570(0x2aa,'fuR9')],'permissionDecision':_0x214d93[_0x3c9570(0x227,'z]Mo')]}});}main()[a0_0x120501(0x292,'G#h5')](()=>emit({'hookSpecificOutput':{'hookEventName':a0_0x120501(0x24a,'F#$E')+a0_0x120501(0x2d8,'tX0x'),'permissionDecision':a0_0x120501(0x2a4,'1N$I')}}));
|