@lazyingart/agintiflow 0.20.65 → 0.20.66

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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lazyingart/agintiflow",
3
- "version": "0.20.65",
3
+ "version": "0.20.66",
4
4
  "type": "module",
5
5
  "description": "Low-cost, project-aware Web and CLI agents with DeepSeek/Venice/OpenAI routing, visible tool calls, durable sessions, scouts, AAPS, SCS, and guarded local execution.",
6
6
  "license": "Apache-2.0",
@@ -11,7 +11,7 @@ import {
11
11
  } from "../src/model-routing.js";
12
12
  import { normalizeTextToolCallResponse, parseTextToolCalls, usesTextToolProtocol } from "../src/model-client.js";
13
13
  import { modelRoleChoices } from "../src/interactive-cli.js";
14
- import { buildSupervisorInstruction } from "../src/scs-controller.js";
14
+ import { buildScsEvidencePack, buildSupervisorInstruction } from "../src/scs-controller.js";
15
15
 
16
16
  const repoRoot = path.resolve(path.dirname(fileURLToPath(import.meta.url)), "..");
17
17
 
@@ -208,6 +208,27 @@ assert(!usesTextToolProtocol({ provider: "venice", model: "venice-uncensored-1-2
208
208
  const scsInstruction = buildSupervisorInstruction({ plan: "Create one file.", acceptanceCriteria: ["File exists."] });
209
209
  assert(scsInstruction.includes("Student-Committee-Supervisor"), "SCS supervisor instruction should define the acronym");
210
210
  assert(!scsInstruction.includes("Syntax-Checker Sentinel"), "SCS supervisor instruction should not allow alternate acronym expansions");
211
+ const longStdout = [
212
+ "=== Student-Committee-Supervisor present ===",
213
+ "3:SCS stands for **Student-Committee-Supervisor**",
214
+ "=== Syntax-Checker Sentinel absent ===",
215
+ "OK: absent",
216
+ "=== Residual content ===",
217
+ "py_compile FOUND",
218
+ "f-string FOUND",
219
+ "artifact integrity FOUND",
220
+ ].join("\n");
221
+ const scsEvidence = buildScsEvidencePack({
222
+ goal: "verify SCS artifact",
223
+ messages: [
224
+ {
225
+ role: "tool",
226
+ content: JSON.stringify({ toolName: "run_command", ok: true, stdout: `${longStdout}\n${"x".repeat(700)}` }),
227
+ },
228
+ ],
229
+ });
230
+ assert(scsEvidence.includes("Student-Committee-Supervisor"), "SCS evidence pack should preserve raw verification stdout");
231
+ assert(scsEvidence.includes("Syntax-Checker Sentinel absent"), "SCS evidence pack should keep absence checks visible to the final gate");
211
232
 
212
233
  const output = await runCli(["models"]);
213
234
  assert(output.includes("/route") && output.includes("/spare") && output.includes("venice-gpt"), "aginti models output missing role details");
@@ -237,6 +258,7 @@ console.log(
237
258
  "requested-tools-parser",
238
259
  "malformed-text-tool-retry",
239
260
  "scs-supervisor-identity",
261
+ "scs-evidence-stdout",
240
262
  "cli-models-command",
241
263
  "venice-shortcut",
242
264
  ],
@@ -166,7 +166,7 @@ export function buildScsEvidencePack(state = {}, context = {}) {
166
166
  return `tool:${parsed.toolName || message.tool_call_id || "unknown"} ok=${parsed.ok !== false} done=${Boolean(parsed.done)} ${compactJson(
167
167
  {
168
168
  error: parsed.error || parsed.reason || "",
169
- stdout: parsed.stdout ? String(parsed.stdout).slice(0, 300) : "",
169
+ stdout: parsed.stdout ? String(parsed.stdout).slice(0, 1200) : "",
170
170
  path: parsed.path || "",
171
171
  changes: Array.isArray(parsed.changes) ? parsed.changes.map((change) => change.path).filter(Boolean) : [],
172
172
  },
@@ -458,7 +458,7 @@ export async function reviewScsFinish(client, config, state, result = "", contex
458
458
  {
459
459
  role: "system",
460
460
  content:
461
- "You are the SCS student final gate. Decide if the supervisor has enough concrete evidence to finish. Emit finish_allowed or finish_rejected only. Be strict for coding/system tasks, but do not demand impossible checks. Return strict JSON with keys: role, decision, confidence, evidence, reason, next_required_action.",
461
+ "You are the SCS student final gate. Decide if the supervisor has enough concrete evidence to finish. Emit finish_allowed or finish_rejected only. Be strict for coding/system tasks, but do not demand impossible checks. Evaluate both the proposed final result and the evidence pack; tool stdout in recentMessages/recentEvents is raw command evidence and does not need to be duplicated in the final answer. Reject only when neither the final answer nor the evidence pack contains concrete file/tool/check evidence for the acceptance criteria. Return strict JSON with keys: role, decision, confidence, evidence, reason, next_required_action.",
462
462
  },
463
463
  {
464
464
  role: "user",