principles-disciple 1.195.0 → 1.196.0
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.
|
@@ -338,6 +338,21 @@ export function evaluatePainAdmissionForToolCall(event, observation, outcome, la
|
|
|
338
338
|
? [...WRITE_TOOLS, ...BASH_TOOL_NAMES]
|
|
339
339
|
: WRITE_TOOLS;
|
|
340
340
|
if (!allowedTools.includes(event.toolName) || !outcome.isFailure) {
|
|
341
|
+
// PRI-442 A-09: rc-9-no-silent-fallback. Only emit observability when we
|
|
342
|
+
// are DECLINING an actual failure (Case A). Successful tool calls (happy
|
|
343
|
+
// path) must stay silent — they are not degradation. evaluatePainAdmission
|
|
344
|
+
// is called on every after_tool_call event, so logging the success path
|
|
345
|
+
// would spam SYSTEM_*.log on essentially every successful tool call.
|
|
346
|
+
if (outcome.isFailure) {
|
|
347
|
+
SystemLogger.log(workspaceDir, 'PAIN_ADMISSION_SKIPPED', JSON.stringify({
|
|
348
|
+
hook: 'after_tool_call',
|
|
349
|
+
reason: 'not_a_write_tool_failure',
|
|
350
|
+
tool: event.toolName,
|
|
351
|
+
failureSource: outcome.failureSource,
|
|
352
|
+
sessionId,
|
|
353
|
+
nextAction: 'No pain task created; failure is outside write-tool admission scope. Retry or investigate if unexpected.',
|
|
354
|
+
}));
|
|
355
|
+
}
|
|
341
356
|
return {
|
|
342
357
|
admitted: false,
|
|
343
358
|
stage: 'not_applicable',
|
package/openclaw.plugin.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"id": "principles-disciple",
|
|
3
3
|
"name": "Principles Disciple",
|
|
4
4
|
"description": "Evolutionary programming agent framework with strategic guardrails and reflection loops.",
|
|
5
|
-
"version": "1.
|
|
5
|
+
"version": "1.196.0",
|
|
6
6
|
"activation": {
|
|
7
7
|
"onCapabilities": [
|
|
8
8
|
"hook"
|