@strayl/agent 0.1.22 → 0.1.24
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/dist/agent.js +8 -5
- package/package.json +1 -1
package/dist/agent.js
CHANGED
|
@@ -82,7 +82,7 @@ var init_system = __esm({
|
|
|
82
82
|
- All file operations are relative to the project root
|
|
83
83
|
|
|
84
84
|
## Hard Rules
|
|
85
|
-
- Do NOT run
|
|
85
|
+
- Do NOT run third-party scaffolding commands (create-react-app, create-next-app, create-vite, etc.) \u2014 use \`create-strayl-app\` when a skill instructs you to
|
|
86
86
|
- Do NOT create .env files \u2014 environment variables are managed by the platform
|
|
87
87
|
- Do NOT run \`npm audit fix\` \u2014 it breaks dependencies
|
|
88
88
|
- Do NOT change build tool configuration unless explicitly asked
|
|
@@ -13568,6 +13568,7 @@ async function runAgent(config) {
|
|
|
13568
13568
|
let consecutiveLLMErrors = 0;
|
|
13569
13569
|
const MAX_CONSECUTIVE_LLM_ERRORS = 5;
|
|
13570
13570
|
let nudgedToContinue = false;
|
|
13571
|
+
let hasUsedTools = false;
|
|
13571
13572
|
if (config.restoreCheckpoint) {
|
|
13572
13573
|
const cp = config.restoreCheckpoint;
|
|
13573
13574
|
context.restoreMessages(cp.messages);
|
|
@@ -13755,17 +13756,19 @@ ${IMPLEMENTATION_MODE_PROMPT2}`);
|
|
|
13755
13756
|
});
|
|
13756
13757
|
}
|
|
13757
13758
|
if (completedToolCalls.length === 0) {
|
|
13758
|
-
emitter.emit({ type: "debug", message: `[LOOP] No tool calls. textLen=${assistantText.length} nudgedToContinue=${nudgedToContinue} text="${assistantText.slice(0, 200)}"` });
|
|
13759
|
-
|
|
13759
|
+
emitter.emit({ type: "debug", message: `[LOOP] No tool calls. textLen=${assistantText.length} nudgedToContinue=${nudgedToContinue} hasUsedTools=${hasUsedTools} mode=${currentMode} text="${assistantText.slice(0, 200)}"` });
|
|
13760
|
+
const shouldNudge = !nudgedToContinue && (hasUsedTools || currentMode === "implement");
|
|
13761
|
+
if (shouldNudge) {
|
|
13760
13762
|
nudgedToContinue = true;
|
|
13761
13763
|
emitter.emit({ type: "debug", message: `[LOOP] Sending nudge to continue...` });
|
|
13762
|
-
context.addUser("[System: You responded with text but did not call any tools. If
|
|
13764
|
+
context.addUser("[System: You responded with text but did not call any tools. If your task is complete, say so briefly. If there is unfinished work from the user's original request, continue using tools.]");
|
|
13763
13765
|
continue;
|
|
13764
13766
|
}
|
|
13765
|
-
emitter.emit({ type: "debug", message: `[LOOP]
|
|
13767
|
+
emitter.emit({ type: "debug", message: `[LOOP] No nudge needed (hasUsedTools=${hasUsedTools}), breaking loop. Agent will terminate.` });
|
|
13766
13768
|
break;
|
|
13767
13769
|
}
|
|
13768
13770
|
emitter.emit({ type: "debug", message: `[LOOP] Tool calls: ${completedToolCalls.map((tc) => tc.function.name).join(", ")}` });
|
|
13771
|
+
hasUsedTools = true;
|
|
13769
13772
|
nudgedToContinue = false;
|
|
13770
13773
|
for (const tc of completedToolCalls) {
|
|
13771
13774
|
if (stdin.isCancelled()) {
|