therookie 0.4.14 → 0.4.15
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/package.json
CHANGED
|
@@ -185,10 +185,14 @@ try {
|
|
|
185
185
|
cur={
|
|
186
186
|
episode_seq: seq++,
|
|
187
187
|
episode_start_byte_offset: lineOff,
|
|
188
|
-
parser_version:
|
|
188
|
+
parser_version: 3,
|
|
189
189
|
is_human_prompt: true,
|
|
190
190
|
recall_signal: sig, recall_called: false, verified_solution_served: false,
|
|
191
191
|
external_search: false, amnesia_next_prompt: false, correction_next_prompt: false,
|
|
192
|
+
// spec 2026-08-06 A.5b — external_search 는 이제 **웹 도구만** 센다.
|
|
193
|
+
// external_search_after_recall: 회상 이후의 외부검색만(순서 있는 신호).
|
|
194
|
+
// bash_http_seen: 느슨한 Bash HTTP 관측 — 진단 전용, headline 금지.
|
|
195
|
+
external_search_after_recall: false, bash_http_seen: false,
|
|
192
196
|
first_action_after_recall: null, failure_classes: [],
|
|
193
197
|
_boundary: firstBoundaryAfter(lineOff),
|
|
194
198
|
_recallSeen: false,
|
|
@@ -214,12 +218,21 @@ try {
|
|
|
214
218
|
let action="other";
|
|
215
219
|
if(/recall/i.test(name) || /api\/rookie\/recall/.test(cmd)) action="recall";
|
|
216
220
|
else if(/^(WebSearch|WebFetch)$/.test(name)) action="external_search";
|
|
217
|
-
// 외부 Bash HTTP(curl/wget 로 밖에서 답 찾기)도 외부검색 — recall/내부 API·로컬 dev 는 제외(codex P1·P2).
|
|
218
|
-
else if(name==="Bash" && /\b(curl|wget)\b/.test(cmd) && /https?:\/\//.test(cmd) && !/api\/rookie/.test(cmd) && !/(localhost|127\.0\.0\.1|0\.0\.0\.0)/.test(cmd)) action="external_search";
|
|
219
221
|
else if(/^(Edit|Write|NotebookEdit)$/.test(name)) action="edit";
|
|
220
222
|
else if(name==="AskUserQuestion") action="ask";
|
|
223
|
+
// spec 2026-08-06 A.5b B-1 — Bash 는 외부검색으로 세지 않는다. 명령문 전체에서 curl|wget 을
|
|
224
|
+
// 찾던 옛 판정이 heredoc 본문·경로에 그 단어가 든 **로컬 스크립트**까지 외부검색으로 셌다
|
|
225
|
+
// (§7 원문 대조: 강 3건 중 2건이 이 오탐). 정확히 세려면 셸 문법을 다시 구현해야 해서 철회했다.
|
|
226
|
+
// 느슨한 관측은 버리지 않고 **진단 전용 신호로 격리**한다.
|
|
227
|
+
const bashHttp = name==="Bash" && /\b(curl|wget)\b/.test(cmd) && /https?:\/\//.test(cmd)
|
|
228
|
+
&& !/api\/rookie/.test(cmd) && !/(localhost|127\.0\.0\.1|0\.0\.0\.0)/.test(cmd)
|
|
229
|
+
if(bashHttp) cur.bash_http_seen=true;
|
|
221
230
|
if(action==="recall"){ cur.recall_called=true; cur._recallSeen=true; }
|
|
222
|
-
if(action==="external_search"){
|
|
231
|
+
if(action==="external_search"){
|
|
232
|
+
cur.external_search=true;
|
|
233
|
+
// B-2 — 첫 행동 기록 여부와 **무관하게** 누적한다(회상 이후의 모든 외부검색).
|
|
234
|
+
if(cur._recallSeen) cur.external_search_after_recall=true;
|
|
235
|
+
}
|
|
223
236
|
// recall 이후의 첫 실질 행동을 1회만 기록.
|
|
224
237
|
if(cur._recallSeen && action!=="recall" && cur.first_action_after_recall===null){
|
|
225
238
|
cur.first_action_after_recall=action;
|
|
@@ -259,7 +272,7 @@ try {
|
|
|
259
272
|
// 앞으로 밀려(불안정) 무엇이 왜 빠졌는지 사후 확인이 불가능해진다.
|
|
260
273
|
let activatedAt=null;
|
|
261
274
|
try{
|
|
262
|
-
const ap=path.join(bndDir,".
|
|
275
|
+
const ap=path.join(bndDir,".v3-activated");
|
|
263
276
|
const readAct=()=>{ try{ const v=JSON.parse(fs.readFileSync(ap,"utf8")).activated_at; return typeof v==="string"?v:null; }catch{ return null; } };
|
|
264
277
|
activatedAt=readAct();
|
|
265
278
|
if(!activatedAt){
|
package/version.json
CHANGED