@galaxy-stack/ai-coder-core 0.1.0 → 0.3.0-alpha.1

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.
Files changed (36) hide show
  1. package/CHANGELOG.d/2026-09-19-advisory-guard-policy.md +25 -0
  2. package/CHANGELOG.d/2026-09-19-research-citation-parsing.md +16 -0
  3. package/CHANGELOG.d/2026-09-19-test-journal-reporter.md +8 -0
  4. package/CHANGELOG.d/README.md +16 -0
  5. package/CHANGELOG.md +96 -0
  6. package/README.md +41 -4
  7. package/dist/context/checkpoint.d.ts +3 -0
  8. package/dist/context/checkpoint.d.ts.map +1 -1
  9. package/dist/context/checkpoint.js +30 -1
  10. package/dist/context/checkpoint.js.map +1 -1
  11. package/dist/prompt/prompt-assembler.d.ts +1 -1
  12. package/dist/prompt/prompt-assembler.d.ts.map +1 -1
  13. package/dist/prompt/prompt-assembler.js +24 -1
  14. package/dist/prompt/prompt-assembler.js.map +1 -1
  15. package/dist/runtime/completion-gate.d.ts +1 -1
  16. package/dist/runtime/completion-gate.d.ts.map +1 -1
  17. package/dist/runtime/completion-gate.js +12 -0
  18. package/dist/runtime/completion-gate.js.map +1 -1
  19. package/dist/runtime/index.d.ts +1 -0
  20. package/dist/runtime/index.d.ts.map +1 -1
  21. package/dist/runtime/index.js +1 -0
  22. package/dist/runtime/index.js.map +1 -1
  23. package/dist/runtime/research-citations.d.ts +15 -0
  24. package/dist/runtime/research-citations.d.ts.map +1 -0
  25. package/dist/runtime/research-citations.js +49 -0
  26. package/dist/runtime/research-citations.js.map +1 -0
  27. package/dist/runtime/run-controller.d.ts +6 -0
  28. package/dist/runtime/run-controller.d.ts.map +1 -1
  29. package/dist/runtime/run-controller.js +143 -41
  30. package/dist/runtime/run-controller.js.map +1 -1
  31. package/dist/runtime/runtime-types.d.ts +10 -0
  32. package/dist/runtime/runtime-types.d.ts.map +1 -1
  33. package/docs/ARCHITECTURE.md +13 -2
  34. package/docs/HOST_CONFORMANCE.md +38 -0
  35. package/docs/PROMPT_CONTRACT.md +9 -0
  36. package/package.json +8 -6
@@ -1 +1 @@
1
- {"version":3,"file":"prompt-assembler.js","sourceRoot":"","sources":["../../src/prompt/prompt-assembler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prompt-assembler.js","sourceRoot":"","sources":["../../src/prompt/prompt-assembler.ts"],"names":[],"mappings":"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"}
@@ -65,7 +65,7 @@ export type AiCoderCompletionRequirements = Readonly<{
65
65
  }>;
66
66
  }>;
67
67
  export type AiCoderCompletionIssue = Readonly<{
68
- code: "ACCEPTANCE_CRITERIA_OPEN" | "DIFF_NOT_REVIEWED" | "FINAL_REPORT_EMPTY" | "FINAL_REPORT_NOT_STORED" | "INSPECTION_MISSING" | "OPEN_PROBLEMS" | "PENDING_APPROVAL" | "RESEARCH_CITATION_MISSING" | "RESEARCH_EVIDENCE_MISSING" | "RUNNING_TOOL_CALL" | "TOKEN_LEDGER_NOT_FINALIZED" | "TRACE_NOT_FINALIZED" | "VALIDATION_FAILED" | "VALIDATION_MISSING" | "WORKSPACE_EVIDENCE_STALE" | "WRITE_EVIDENCE_INVALID" | "WRITE_NOT_VALIDATED";
68
+ code: "ACCEPTANCE_CRITERIA_OPEN" | "DIFF_NOT_REVIEWED" | "FINAL_REPORT_EMPTY" | "FINAL_REPORT_NOT_STORED" | "INSPECTION_MISSING" | "OPEN_PROBLEMS" | "PENDING_APPROVAL" | "RESEARCH_CITATION_MISSING" | "RESEARCH_CITATION_UNSUPPORTED" | "RESEARCH_EVIDENCE_MISSING" | "RUNNING_TOOL_CALL" | "TOKEN_LEDGER_NOT_FINALIZED" | "TRACE_NOT_FINALIZED" | "VALIDATION_FAILED" | "VALIDATION_MISSING" | "WORKSPACE_EVIDENCE_STALE" | "WRITE_EVIDENCE_INVALID" | "WRITE_NOT_VALIDATED";
69
69
  detail: string;
70
70
  }>;
71
71
  export declare function evaluateAiCoderCompletion(snapshot: AiCoderCompletionSnapshot, requirements?: AiCoderCompletionRequirements): Readonly<{
@@ -1 +1 @@
1
- {"version":3,"file":"completion-gate.d.ts","sourceRoot":"","sources":["../../src/runtime/completion-gate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"completion-gate.d.ts","sourceRoot":"","sources":["../../src/runtime/completion-gate.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { isAiCoderWorkspaceMutationEvidence, } from "../context/checkpoint.js";
2
+ import { canonicalResearchUrl, researchCitations } from "./research-citations.js";
2
3
  function writeIsValidated(write, validations) {
3
4
  const coveredBy = (scopePath) => {
4
5
  const normalizedScope = scopePath.replaceAll("\\", "/").replace(/^\.\//, "").replace(/\/$/, "") || ".";
@@ -55,6 +56,17 @@ export function evaluateAiCoderCompletion(snapshot, requirements = {}) {
55
56
  && !fetched.some((source) => snapshot.finalReport.includes(source.url))) {
56
57
  add("RESEARCH_CITATION_MISSING", "The final report must cite at least one successfully fetched source URL.");
57
58
  }
59
+ if (research.requireCitations && fetched.length) {
60
+ // Every cited URL must carry successful fetch evidence. Citing a
61
+ // plausible-but-unfetched URL presents an unverified source as
62
+ // evidence; the rejection feedback lets the model rewrite the report
63
+ // with fetched citations inside the completion-rejection budget.
64
+ const fetchedUrls = new Set(fetched.map((source) => canonicalResearchUrl(source.url)));
65
+ const cited = researchCitations(snapshot.finalReport).filter((url) => !fetchedUrls.has(url));
66
+ if (cited.length) {
67
+ add("RESEARCH_CITATION_UNSUPPORTED", `The final report cites ${cited.length} URL(s) without successful fetch evidence: ${cited.slice(0, 8).join(", ")}. Cite only URLs returned by successful fetch calls.`);
68
+ }
69
+ }
58
70
  }
59
71
  if (snapshot.openProblems?.length) {
60
72
  add("OPEN_PROBLEMS", `${snapshot.openProblems.length} unresolved problem(s) remain.`);
@@ -1 +1 @@
1
- {"version":3,"file":"completion-gate.js","sourceRoot":"","sources":["../../src/runtime/completion-gate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"completion-gate.js","sourceRoot":"","sources":["../../src/runtime/completion-gate.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kCAAkC,GAEnC,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAgGlF,SAAS,gBAAgB,CACvB,KAA6B,EAC7B,WAAmD;IAEnD,MAAM,SAAS,GAAG,CAAC,SAAiB,EAAW,EAAE;QAC/C,MAAM,eAAe,GAAG,SAAS,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC;QACvG,MAAM,eAAe,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAC9E,OAAO,eAAe,KAAK,GAAG;eACzB,eAAe,KAAK,eAAe;eACnC,eAAe,CAAC,UAAU,CAAC,GAAG,eAAe,GAAG,CAAC,CAAC;IACzD,CAAC,CAAC;IACF,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM,KAAK,QAAQ;WACjE,UAAU,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ;WACpC,CAAC,UAAU,CAAC,KAAK,KAAK,WAAW,IAAI,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AAChF,CAAC;AAED,MAAM,UAAU,yBAAyB,CACvC,QAAmC,EACnC,eAA8C,EAAE;IAEhD,MAAM,MAAM,GAA6B,EAAE,CAAC;IAC5C,MAAM,GAAG,GAAG,CAAC,IAAoC,EAAE,MAAc,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IACnH,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE;QAAE,GAAG,CAAC,oBAAoB,EAAE,wCAAwC,CAAC,CAAC;IACtG,IAAI,CAAC,YAAY,CAAC,iBAAiB,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,kBAAkB,EAAE,CAAC;QAC7E,GAAG,CAAC,oBAAoB,EAAE,2CAA2C,CAAC,CAAC;IACzE,CAAC;IACD,IAAI,QAAQ,CAAC,gBAAgB;QAAE,GAAG,CAAC,mBAAmB,EAAE,GAAG,QAAQ,CAAC,gBAAgB,kCAAkC,CAAC,CAAC;IACxH,IAAI,QAAQ,CAAC,gBAAgB;QAAE,GAAG,CAAC,kBAAkB,EAAE,GAAG,QAAQ,CAAC,gBAAgB,yCAAyC,CAAC,CAAC;IAC9H,MAAM,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAC;IACvC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,MAAM,QAAQ,GAAG,QAAQ,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;QACvF,MAAM,OAAO,GAAG,QAAQ,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO,IAAI,MAAM,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;QACnH,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;QAC9E,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;QAC5E,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,IAAI,WAAW,GAAG,CAAC,QAAQ,CAAC,cAAc,IAAI,CAAC,CAAC,EAAE,CAAC;YACjD,OAAO,CAAC,IAAI,CAAC,gBAAgB,WAAW,IAAI,QAAQ,CAAC,cAAc,EAAE,CAAC,CAAC;QACzE,CAAC;QACD,IAAI,UAAU,GAAG,CAAC,QAAQ,CAAC,aAAa,IAAI,CAAC,CAAC,EAAE,CAAC;YAC/C,OAAO,CAAC,IAAI,CAAC,eAAe,UAAU,IAAI,QAAQ,CAAC,aAAa,EAAE,CAAC,CAAC;QACtE,CAAC;QACD,KAAK,MAAM,cAAc,IAAI,QAAQ,CAAC,eAAe,IAAI,EAAE,EAAE,CAAC;YAC5D,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;gBACtC,IAAI,CAAC;oBACH,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;oBAC5D,OAAO,QAAQ,KAAK,cAAc,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,cAAc,EAAE,CAAC,CAAC;gBAChF,CAAC;gBAAC,MAAM,CAAC;oBACP,OAAO,KAAK,CAAC;gBACf,CAAC;YACH,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,OAAO;gBAAE,OAAO,CAAC,IAAI,CAAC,kBAAkB,cAAc,EAAE,CAAC,CAAC;QACjE,CAAC;QACD,IAAI,OAAO,CAAC,MAAM;YAAE,GAAG,CAAC,2BAA2B,EAAE,8BAA8B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC1G,IAAI,QAAQ,CAAC,gBAAgB;eACxB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YAC1E,GAAG,CAAC,2BAA2B,EAAE,0EAA0E,CAAC,CAAC;QAC/G,CAAC;QACD,IAAI,QAAQ,CAAC,gBAAgB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YAChD,iEAAiE;YACjE,+DAA+D;YAC/D,qEAAqE;YACrE,iEAAiE;YACjE,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,oBAAoB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACvF,MAAM,KAAK,GAAG,iBAAiB,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;YAC7F,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;gBACjB,GAAG,CACD,+BAA+B,EAC/B,0BAA0B,KAAK,CAAC,MAAM,8CAA8C,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,sDAAsD,CACvK,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IACD,IAAI,QAAQ,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC;QAClC,GAAG,CAAC,eAAe,EAAE,GAAG,QAAQ,CAAC,YAAY,CAAC,MAAM,gCAAgC,CAAC,CAAC;IACxF,CAAC;IACD,MAAM,YAAY,GAAG,QAAQ,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,IAAI,SAAS,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC;IAC/H,IAAI,YAAY,CAAC,MAAM,EAAE,CAAC;QACxB,GAAG,CAAC,0BAA0B,EAAE,uBAAuB,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC5G,CAAC;IACD,MAAM,UAAU,GAAG,IAAI,GAAG,EAAuC,CAAC;IAClE,KAAK,MAAM,UAAU,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC;QAC9C,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QAC/C,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,QAAQ,IAAI,UAAU,CAAC,QAAQ;YAAE,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;IACvG,CAAC;IACD,MAAM,oBAAoB,GAAG,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;IACtD,MAAM,kBAAkB,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CACrE,QAAQ,CAAC,yBAAyB,KAAK,IAAI;WACxC,UAAU,CAAC,oBAAoB,KAAK,QAAQ,CAAC,yBAAyB,CAC1E,CAAC,CAAC;IACH,MAAM,gBAAgB,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,kBAAkB,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;IAC/G,IAAI,gBAAgB,CAAC,MAAM,EAAE,CAAC;QAC5B,GAAG,CAAC,0BAA0B,EAAE,yBAAyB,gBAAgB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAClH,CAAC;IACD,MAAM,iBAAiB,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC;IACpG,IAAI,iBAAiB,CAAC,MAAM,EAAE,CAAC;QAC7B,GAAG,CAAC,mBAAmB,EAAE,0BAA0B,iBAAiB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7G,CAAC;IACD,IAAI,CAAC,YAAY,CAAC,iBAAiB,IAAI,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,EAAE,CAAC;QAC9G,GAAG,CAAC,oBAAoB,EAAE,6CAA6C,CAAC,CAAC;IAC3E,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;QACpC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,IAAI,EAAE;eACvD,CAAC,kCAAkC,CAAC,KAAK,CAAC,EAAE,CAAC;YAChD,GAAG,CAAC,wBAAwB,EAAE,GAAG,KAAK,CAAC,IAAI,IAAI,SAAS,4CAA4C,CAAC,CAAC;QACxG,CAAC;QACD,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,kBAAkB,CAAC;YAAE,GAAG,CAAC,qBAAqB,EAAE,GAAG,KAAK,CAAC,IAAI,+CAA+C,CAAC,CAAC;IAC7I,CAAC;IACD,MAAM,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IACvF,MAAM,kBAAkB,GAAG,QAAQ,CAAC,eAAe,KAAK,IAAI;WACvD,QAAQ,CAAC,yBAAyB,KAAK,IAAI;WAC3C,QAAQ,CAAC,eAAe,CAAC,QAAQ,GAAG,iBAAiB;WACrD,QAAQ,CAAC,eAAe,CAAC,oBAAoB,KAAK,QAAQ,CAAC,yBAAyB;WACpF,QAAQ,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;IACzD,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAClD,GAAG,CAAC,mBAAmB,EAAE,gEAAgE,CAAC,CAAC;IAC7F,CAAC;IACD,IAAI,CAAC,YAAY,CAAC,6BAA6B,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,iBAAiB,EAAE,CAAC;QACzF,GAAG,CAAC,yBAAyB,EAAE,0CAA0C,CAAC,CAAC;IAC7E,CAAC;IACD,IAAI,CAAC,YAAY,CAAC,kBAAkB,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,oBAAoB,EAAE,CAAC;QAChF,GAAG,CAAC,4BAA4B,EAAE,0CAA0C,CAAC,CAAC;IAChF,CAAC;IACD,IAAI,CAAC,YAAY,CAAC,YAAY,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC;QACrE,GAAG,CAAC,qBAAqB,EAAE,mCAAmC,CAAC,CAAC;IAClE,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC;AACnF,CAAC"}
@@ -2,6 +2,7 @@ export * from "./completion-gate.js";
2
2
  export * from "./run-controller.js";
3
3
  export * from "./runtime-error.js";
4
4
  export * from "./runtime-types.js";
5
+ export * from "./research-citations.js";
5
6
  export * from "./state-machine.js";
6
7
  export * from "./trace-emitter.js";
7
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC"}
@@ -2,6 +2,7 @@ export * from "./completion-gate.js";
2
2
  export * from "./run-controller.js";
3
3
  export * from "./runtime-error.js";
4
4
  export * from "./runtime-types.js";
5
+ export * from "./research-citations.js";
5
6
  export * from "./state-machine.js";
6
7
  export * from "./trace-emitter.js";
7
8
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Shared citation extraction and URL canonicalization for research evidence.
3
+ * The completion gate and the host research oracle must agree on which URLs
4
+ * count as cited, so both call these helpers instead of maintaining separate
5
+ * normalizations.
6
+ */
7
+ /** Canonicalizes an http(s) URL for citation comparison: credentials rejected, fragment stripped, trailing slash preserved by the URL parser. */
8
+ export declare function canonicalResearchUrl(value: unknown): string | null;
9
+ /**
10
+ * Extracts the set of cited URLs from a final report. Trailing prose
11
+ * punctuation is stripped while balanced parentheses that belong to the URL
12
+ * (for example /wiki/Retry_(pattern)) are retained.
13
+ */
14
+ export declare function researchCitations(content: string): string[];
15
+ //# sourceMappingURL=research-citations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"research-citations.d.ts","sourceRoot":"","sources":["../../src/runtime/research-citations.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,iJAAiJ;AACjJ,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CASlE;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAmB3D"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Shared citation extraction and URL canonicalization for research evidence.
3
+ * The completion gate and the host research oracle must agree on which URLs
4
+ * count as cited, so both call these helpers instead of maintaining separate
5
+ * normalizations.
6
+ */
7
+ /** Canonicalizes an http(s) URL for citation comparison: credentials rejected, fragment stripped, trailing slash preserved by the URL parser. */
8
+ export function canonicalResearchUrl(value) {
9
+ try {
10
+ const url = new URL(value);
11
+ if (!["http:", "https:"].includes(url.protocol) || url.username || url.password)
12
+ return null;
13
+ url.hash = "";
14
+ return url.href;
15
+ }
16
+ catch {
17
+ return null;
18
+ }
19
+ }
20
+ /**
21
+ * Extracts the set of cited URLs from a final report. Trailing prose
22
+ * punctuation is stripped while balanced parentheses that belong to the URL
23
+ * (for example /wiki/Retry_(pattern)) are retained.
24
+ */
25
+ export function researchCitations(content) {
26
+ return [...new Set((content.match(/https?:\/\/[^\s<>"`[\]]+/g) ?? [])
27
+ .map((match) => {
28
+ let url = match;
29
+ // Markdown emphasis and list punctuation ride outside the URL
30
+ // ("**https://example.com/a**:"), so strip trailing decoration before
31
+ // canonicalizing. Balanced parentheses stay protected below.
32
+ for (;;) {
33
+ const withoutPunctuation = url.replace(/[,.;:!?]+$/, "");
34
+ const withoutEmphasis = withoutPunctuation.replace(/[*_`]+$/, "");
35
+ if (withoutEmphasis === url)
36
+ break;
37
+ url = withoutEmphasis;
38
+ }
39
+ const open = (url.match(/\(/g) ?? []).length;
40
+ let close = (url.match(/\)/g) ?? []).length;
41
+ while (url.endsWith(")") && close > open) {
42
+ url = url.slice(0, -1);
43
+ close--;
44
+ }
45
+ return canonicalResearchUrl(url);
46
+ })
47
+ .filter((url) => url !== null))];
48
+ }
49
+ //# sourceMappingURL=research-citations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"research-citations.js","sourceRoot":"","sources":["../../src/runtime/research-citations.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,iJAAiJ;AACjJ,MAAM,UAAU,oBAAoB,CAAC,KAAc;IACjD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,KAAe,CAAC,CAAC;QACrC,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAC;QAC7F,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC;QACd,OAAO,GAAG,CAAC,IAAI,CAAC;IAClB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAAe;IAC/C,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,2BAA2B,CAAC,IAAI,EAAE,CAAC;aAClE,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YACb,IAAI,GAAG,GAAG,KAAK,CAAC;YAChB,8DAA8D;YAC9D,sEAAsE;YACtE,6DAA6D;YAC7D,SAAS,CAAC;gBACR,MAAM,kBAAkB,GAAG,GAAG,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;gBACzD,MAAM,eAAe,GAAG,kBAAkB,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;gBAClE,IAAI,eAAe,KAAK,GAAG;oBAAE,MAAM;gBACnC,GAAG,GAAG,eAAe,CAAC;YACxB,CAAC;YACD,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;YAC7C,IAAI,KAAK,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;YAC5C,OAAO,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,KAAK,GAAG,IAAI,EAAE,CAAC;gBAAC,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBAAC,KAAK,EAAE,CAAC;YAAC,CAAC;YAC9E,OAAO,oBAAoB,CAAC,GAAG,CAAC,CAAC;QACnC,CAAC,CAAC;aACD,MAAM,CAAC,CAAC,GAAG,EAAiB,EAAE,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC;AACpD,CAAC"}
@@ -35,6 +35,12 @@ export declare class AiCoderRunController {
35
35
  private recordNoProgressIncident;
36
36
  private countNoProgressEpisode;
37
37
  private nudgeRepeatedObservation;
38
+ /**
39
+ * Advisory-only nudge: records model-visible feedback and a trace event
40
+ * without counting a no-progress episode or marking the call as blocked.
41
+ */
42
+ private addObservationNudge;
43
+ private tracePolicyDecision;
38
44
  private shouldAttemptFinalization;
39
45
  private enterFinalizationMode;
40
46
  private prepareToolCallBatch;
@@ -1 +1 @@
1
- {"version":3,"file":"run-controller.d.ts","sourceRoot":"","sources":["../../src/runtime/run-controller.ts"],"names":[],"mappings":"AAkDA,OAAO,KAAK,EAEV,oBAAoB,EAEpB,sBAAsB,EACtB,gBAAgB,EAChB,iBAAiB,EASlB,MAAM,oBAAoB,CAAC;AAmtB5B,qBAAa,oBAAoB;IAMnB,OAAO,CAAC,QAAQ,CAAC,YAAY;IALzC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiC;IACxD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAsB;IAC5C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAe;IACzC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA+D;gBAExD,YAAY,EAAE,sBAAsB;IAMjE,KAAK,CAAC,OAAO,EAAE,iBAAiB,GAAG,gBAAgB;IAInD,MAAM,CAAC,OAAO,EAAE,oBAAoB,GAAG,gBAAgB;IAIvD,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,SAAwB,GAAG,OAAO;IAO9D,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,SAAsB,GAAG,OAAO;IAOrD,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC;IAwBzG,OAAO,CAAC,MAAM;IAyEd,OAAO,CAAC,cAAc;YAMR,MAAM;YAoBN,UAAU;IAOxB,OAAO,CAAC,YAAY;YAWN,gBAAgB;YAsBhB,kBAAkB;IAKhC,OAAO,CAAC,wBAAwB;IAmBhC,OAAO,CAAC,WAAW;YAaL,uBAAuB;YAuBvB,OAAO;IAkBrB,OAAO,CAAC,mBAAmB;YA6Bb,kBAAkB;YAclB,YAAY;YA4BZ,OAAO;IAoHrB,OAAO,CAAC,mBAAmB;IA0B3B,OAAO,CAAC,6BAA6B;YAqBvB,qBAAqB;YAuBrB,eAAe;YAwGf,OAAO;YAwIP,aAAa;IAgJ3B,OAAO,CAAC,wBAAwB;IAoBhC,OAAO,CAAC,sBAAsB;IAU9B,OAAO,CAAC,wBAAwB;IAoBhC,OAAO,CAAC,yBAAyB;IAMjC,OAAO,CAAC,qBAAqB;YAYf,oBAAoB;YAsCpB,eAAe;YA+Pf,6BAA6B;YAsD7B,eAAe;IAmB7B,OAAO,CAAC,wBAAwB;IA4DhC,OAAO,CAAC,4BAA4B;YAyBtB,2BAA2B;YAkD3B,gBAAgB;IAoT9B,OAAO,CAAC,kBAAkB;YA8BZ,uBAAuB;YAoCvB,WAAW;YA6GX,cAAc;YAiMd,eAAe;IAyC7B,OAAO,CAAC,MAAM;CAkBf"}
1
+ {"version":3,"file":"run-controller.d.ts","sourceRoot":"","sources":["../../src/runtime/run-controller.ts"],"names":[],"mappings":"AAkDA,OAAO,KAAK,EAGV,oBAAoB,EAEpB,sBAAsB,EACtB,gBAAgB,EAChB,iBAAiB,EASlB,MAAM,oBAAoB,CAAC;AA+uB5B,qBAAa,oBAAoB;IAMnB,OAAO,CAAC,QAAQ,CAAC,YAAY;IALzC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiC;IACxD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAsB;IAC5C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAe;IACzC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA+D;gBAExD,YAAY,EAAE,sBAAsB;IAMjE,KAAK,CAAC,OAAO,EAAE,iBAAiB,GAAG,gBAAgB;IAInD,MAAM,CAAC,OAAO,EAAE,oBAAoB,GAAG,gBAAgB;IAIvD,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,SAAwB,GAAG,OAAO;IAO9D,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,SAAsB,GAAG,OAAO;IAOrD,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC;IAwBzG,OAAO,CAAC,MAAM;IAyEd,OAAO,CAAC,cAAc;YAMR,MAAM;YAoBN,UAAU;IAOxB,OAAO,CAAC,YAAY;YAWN,gBAAgB;YAsBhB,kBAAkB;IAKhC,OAAO,CAAC,wBAAwB;IAmBhC,OAAO,CAAC,WAAW;YAaL,uBAAuB;YAuBvB,OAAO;IAkBrB,OAAO,CAAC,mBAAmB;YA6Bb,kBAAkB;YAclB,YAAY;YA4BZ,OAAO;IAoHrB,OAAO,CAAC,mBAAmB;IA0B3B,OAAO,CAAC,6BAA6B;YA+BvB,qBAAqB;YAuBrB,eAAe;YAwGf,OAAO;YAwIP,aAAa;IAgJ3B,OAAO,CAAC,wBAAwB;IAoBhC,OAAO,CAAC,sBAAsB;IAU9B,OAAO,CAAC,wBAAwB;IAoBhC;;;OAGG;YACW,mBAAmB;YA4BnB,mBAAmB;IAIjC,OAAO,CAAC,yBAAyB;IAMjC,OAAO,CAAC,qBAAqB;YAYf,oBAAoB;YAsCpB,eAAe;YAqSf,6BAA6B;YAsD7B,eAAe;IAmB7B,OAAO,CAAC,wBAAwB;IA4DhC,OAAO,CAAC,4BAA4B;YAyBtB,2BAA2B;YAkD3B,gBAAgB;IAoT9B,OAAO,CAAC,kBAAkB;YA8BZ,uBAAuB;YAoCvB,WAAW;YA6GX,cAAc;YAmMd,eAAe;IAyC7B,OAAO,CAAC,MAAM;CAkBf"}
@@ -19,6 +19,8 @@ const DEFAULT_BUDGET = Object.freeze({
19
19
  maxRepeatedToolRequests: 2,
20
20
  maxToolCalls: 128,
21
21
  maxTurns: 48,
22
+ noProgressPolicy: "advisory",
23
+ observationNudgeThresholds: Object.freeze([3, 5, 8]),
22
24
  persistenceGraceMs: 10_000,
23
25
  toolOutput: Object.freeze({ maxBytes: 48_000, maxTokens: 12_000, tailFraction: 0.25 }),
24
26
  });
@@ -208,6 +210,30 @@ function nonNegativeInteger(value, name) {
208
210
  throw new RangeError(`${name} must be a non-negative finite number.`);
209
211
  return Math.floor(value);
210
212
  }
213
+ function normalizeNoProgressPolicy(value) {
214
+ if (value !== "advisory" && value !== "strict") {
215
+ throw new TypeError(`noProgressPolicy must be "advisory" or "strict"; received ${String(value)}.`);
216
+ }
217
+ return value;
218
+ }
219
+ function normalizeObservationNudgeThresholds(value) {
220
+ const values = value ?? DEFAULT_BUDGET.observationNudgeThresholds;
221
+ if (!Array.isArray(values) || values.length === 0) {
222
+ throw new RangeError("observationNudgeThresholds must be a non-empty array.");
223
+ }
224
+ if (values.length > 8)
225
+ throw new RangeError("observationNudgeThresholds must contain at most 8 thresholds.");
226
+ const seen = new Set();
227
+ for (const entry of values) {
228
+ if (!Number.isSafeInteger(entry) || entry < 2) {
229
+ throw new RangeError(`observationNudgeThresholds entries must be integers >= 2; received ${String(entry)}.`);
230
+ }
231
+ if (seen.has(entry))
232
+ throw new RangeError(`observationNudgeThresholds must not contain duplicate threshold ${entry}.`);
233
+ seen.add(entry);
234
+ }
235
+ return Object.freeze([...seen].sort((left, right) => left - right));
236
+ }
211
237
  function normalizeBudget(input) {
212
238
  return Object.freeze({
213
239
  deadlineMs: positiveInteger(input?.deadlineMs ?? DEFAULT_BUDGET.deadlineMs, "deadlineMs"),
@@ -218,6 +244,8 @@ function normalizeBudget(input) {
218
244
  maxRepeatedToolRequests: positiveInteger(input?.maxRepeatedToolRequests ?? DEFAULT_BUDGET.maxRepeatedToolRequests, "maxRepeatedToolRequests"),
219
245
  maxToolCalls: positiveInteger(input?.maxToolCalls ?? DEFAULT_BUDGET.maxToolCalls, "maxToolCalls"),
220
246
  maxTurns: positiveInteger(input?.maxTurns ?? DEFAULT_BUDGET.maxTurns, "maxTurns"),
247
+ noProgressPolicy: normalizeNoProgressPolicy(input?.noProgressPolicy ?? DEFAULT_BUDGET.noProgressPolicy),
248
+ observationNudgeThresholds: normalizeObservationNudgeThresholds(input?.observationNudgeThresholds),
221
249
  persistenceGraceMs: positiveInteger(input?.persistenceGraceMs ?? DEFAULT_BUDGET.persistenceGraceMs, "persistenceGraceMs"),
222
250
  toolOutput: Object.freeze({
223
251
  maxBytes: positiveInteger(input?.toolOutput?.maxBytes ?? DEFAULT_BUDGET.toolOutput.maxBytes, "toolOutput.maxBytes"),
@@ -1091,6 +1119,16 @@ export class AiCoderRunController {
1091
1119
  mismatches.push("systemPromptHash");
1092
1120
  if (checkpoint.compatibility.taskContractHash !== session.integrity.taskContractHash)
1093
1121
  mismatches.push("taskContractHash");
1122
+ const recordedPolicy = checkpoint.noProgress?.policy;
1123
+ if (recordedPolicy !== undefined && recordedPolicy !== session.budget.noProgressPolicy) {
1124
+ mismatches.push(`noProgressPolicy (${recordedPolicy} vs ${session.budget.noProgressPolicy})`);
1125
+ }
1126
+ const recordedThresholds = checkpoint.noProgress?.observationNudgeThresholds;
1127
+ if (recordedThresholds !== undefined
1128
+ && (recordedThresholds.length !== session.budget.observationNudgeThresholds.length
1129
+ || recordedThresholds.some((threshold, index) => threshold !== session.budget.observationNudgeThresholds[index]))) {
1130
+ mismatches.push(`observationNudgeThresholds (${recordedThresholds.join(",")} vs ${session.budget.observationNudgeThresholds.join(",")})`);
1131
+ }
1094
1132
  if (mismatches.length) {
1095
1133
  throw new AiCoderRuntimeError("CHECKPOINT_INCOMPATIBLE", `Checkpoint is incompatible with this run: ${mismatches.join(", ")}.`);
1096
1134
  }
@@ -1519,6 +1557,34 @@ export class AiCoderRunController {
1519
1557
  "avoid: re-requesting identical bounded observations",
1520
1558
  ].join("\n"), session.modelTurns);
1521
1559
  }
1560
+ /**
1561
+ * Advisory-only nudge: records model-visible feedback and a trace event
1562
+ * without counting a no-progress episode or marking the call as blocked.
1563
+ */
1564
+ async addObservationNudge(session, call, canonicalToolId, attempt, thresholds) {
1565
+ session.contextManager?.addFeedback([
1566
+ "[GALAXY OBSERVATION NUDGE - trusted runtime state]",
1567
+ attempt === thresholds[0]
1568
+ ? `observation: ${canonicalToolId} returned this exact result before; the retained copy is already in context.`
1569
+ : `observation: ${canonicalToolId} has been requested ${attempt} times; the retained result has not produced new work.`,
1570
+ `tool: ${call.name}`,
1571
+ `tool_call_id: ${call.toolCallId}`,
1572
+ "next_strategy: use the retained evidence, change the query or path, or perform the next required action",
1573
+ `advisory_thresholds: ${thresholds.join(", ")}`,
1574
+ "avoid: re-requesting identical bounded observations",
1575
+ ].join("\n"), session.modelTurns);
1576
+ await this.tracePolicyDecision(session, Object.freeze({
1577
+ action: "observation_nudge",
1578
+ attempt,
1579
+ canonicalToolId,
1580
+ policy: session.budget.noProgressPolicy,
1581
+ thresholds,
1582
+ toolCallId: call.toolCallId,
1583
+ }));
1584
+ }
1585
+ async tracePolicyDecision(session, payload) {
1586
+ await session.trace.emit("policy_decision", payload);
1587
+ }
1522
1588
  shouldAttemptFinalization(session) {
1523
1589
  return session.evidence.writes.length > 0
1524
1590
  || session.noProgressEpisodes > 0
@@ -1605,48 +1671,80 @@ export class AiCoderRunController {
1605
1671
  const observationFamilyCount = observationFamily === null
1606
1672
  ? 0
1607
1673
  : session.observationFamilies.get(observationFamily) ?? 0;
1608
- if (observationFamily !== null && observationFamilyCount >= session.budget.maxObservationRepeats) {
1609
- // Advisory nudge for read-only observations: dispatch the call so the
1610
- // model receives the actual result, then remind it to use retained
1611
- // evidence. Cross-round repetition stays bounded by the no-progress
1612
- // episode budget; consecutive identical calls also stay bounded by the
1613
- // fingerprint guard below.
1614
- this.nudgeRepeatedObservation(session, call, expectedCanonicalToolId ?? call.name, observationFamilyCount + 1);
1615
- }
1616
- if (session.repeatedToolFingerprint > session.budget.maxRepeatedToolRequests) {
1617
- this.recordNoProgressIncident(session, call, `${call.name} repeated with identical arguments and workspace state`, "inspect a different source or choose a materially different tool");
1618
- const result = Object.freeze({
1619
- canonicalToolId: roundToolSet.canonicalToolIds[call.name] ?? call.name,
1620
- content: stableJson({
1621
- error: { code: "NO_PROGRESS", message: "The same tool and arguments were requested more than twice without a state change.", retryable: false },
1674
+ if (observationFamily !== null && session.budget.noProgressPolicy === "advisory") {
1675
+ const attempt = observationFamilyCount + 1;
1676
+ const thresholds = session.budget.observationNudgeThresholds;
1677
+ if (attempt > (thresholds.at(-1) ?? 0)) {
1678
+ this.recordNoProgressIncident(session, call, `${expectedCanonicalToolId ?? call.name} identical observation requested ${attempt} times, beyond the final advisory nudge threshold ${thresholds.at(-1)}`, "act on the retained evidence or finish; identical observations are now blocked");
1679
+ await this.tracePolicyDecision(session, Object.freeze({
1680
+ action: "observation_blocked",
1681
+ attempt,
1682
+ canonicalToolId: expectedCanonicalToolId ?? call.name,
1683
+ policy: session.budget.noProgressPolicy,
1684
+ thresholds,
1685
+ toolCallId: call.toolCallId,
1686
+ }));
1687
+ const result = Object.freeze({
1688
+ canonicalToolId: roundToolSet.canonicalToolIds[call.name] ?? call.name,
1689
+ content: stableJson({
1690
+ error: { code: "NO_PROGRESS", message: `The same observation was requested ${attempt} times without using the retained result.`, retryable: false },
1691
+ ok: false,
1692
+ }),
1693
+ error: Object.freeze({ code: "NO_PROGRESS", message: "Repeated observation blocked.", retryable: false }),
1622
1694
  ok: false,
1623
- }),
1624
- error: Object.freeze({ code: "NO_PROGRESS", message: "Repeated tool call blocked.", retryable: false }),
1625
- ok: false,
1626
- summary: "Repeated tool call blocked by deterministic no-progress policy.",
1627
- trust: "trusted",
1628
- });
1629
- session.evidence.lastToolCalls[session.evidence.lastToolCalls.length - 1] = { ...callRecord, outcome: "failed" };
1630
- await this.traceToolResult(session, call, result);
1631
- return Object.freeze({ call, content: result.content, failed: true, kind: "tool", summary: result.summary, trust: result.trust });
1632
- }
1633
- const cyclePeriod = repeatedSuffixPeriod(session.toolCycleHistory);
1634
- if (cyclePeriod !== null) {
1635
- this.recordNoProgressIncident(session, call, `a ${cyclePeriod}-call tool cycle repeated without semantic state progress`, "stop repeating successful observations; if required evidence is already present, return the final report");
1636
- const result = Object.freeze({
1637
- canonicalToolId: roundToolSet.canonicalToolIds[call.name] ?? call.name,
1638
- content: stableJson({
1639
- error: { code: "NO_PROGRESS", message: "A repeated tool cycle was blocked because semantic state did not change.", retryable: false },
1695
+ summary: "Repeated observation blocked after advisory nudges.",
1696
+ trust: "trusted",
1697
+ });
1698
+ session.evidence.lastToolCalls[session.evidence.lastToolCalls.length - 1] = { ...callRecord, outcome: "failed" };
1699
+ await this.traceToolResult(session, call, result);
1700
+ return Object.freeze({ call, content: result.content, failed: true, kind: "tool", summary: result.summary, trust: result.trust });
1701
+ }
1702
+ if (thresholds.includes(attempt)) {
1703
+ await this.addObservationNudge(session, call, expectedCanonicalToolId ?? call.name, attempt, thresholds);
1704
+ }
1705
+ }
1706
+ else {
1707
+ if (observationFamily !== null && observationFamilyCount >= session.budget.maxObservationRepeats) {
1708
+ // Strict nudge for read-only observations: dispatch the call so the
1709
+ // model receives the actual result, then remind it to use retained
1710
+ // evidence and count one no-progress episode for the round.
1711
+ this.nudgeRepeatedObservation(session, call, expectedCanonicalToolId ?? call.name, observationFamilyCount + 1);
1712
+ }
1713
+ if (session.repeatedToolFingerprint > session.budget.maxRepeatedToolRequests) {
1714
+ this.recordNoProgressIncident(session, call, `${call.name} repeated with identical arguments and workspace state`, "inspect a different source or choose a materially different tool");
1715
+ const result = Object.freeze({
1716
+ canonicalToolId: roundToolSet.canonicalToolIds[call.name] ?? call.name,
1717
+ content: stableJson({
1718
+ error: { code: "NO_PROGRESS", message: "The same tool and arguments were requested more than twice without a state change.", retryable: false },
1719
+ ok: false,
1720
+ }),
1721
+ error: Object.freeze({ code: "NO_PROGRESS", message: "Repeated tool call blocked.", retryable: false }),
1640
1722
  ok: false,
1641
- }),
1642
- error: Object.freeze({ code: "NO_PROGRESS", message: "Repeated tool cycle blocked.", retryable: false }),
1643
- ok: false,
1644
- summary: "Repeated tool cycle blocked by deterministic no-progress policy.",
1645
- trust: "trusted",
1646
- });
1647
- session.evidence.lastToolCalls[session.evidence.lastToolCalls.length - 1] = { ...callRecord, outcome: "failed" };
1648
- await this.traceToolResult(session, call, result);
1649
- return Object.freeze({ call, content: result.content, failed: true, kind: "tool", summary: result.summary, trust: result.trust });
1723
+ summary: "Repeated tool call blocked by deterministic no-progress policy.",
1724
+ trust: "trusted",
1725
+ });
1726
+ session.evidence.lastToolCalls[session.evidence.lastToolCalls.length - 1] = { ...callRecord, outcome: "failed" };
1727
+ await this.traceToolResult(session, call, result);
1728
+ return Object.freeze({ call, content: result.content, failed: true, kind: "tool", summary: result.summary, trust: result.trust });
1729
+ }
1730
+ const cyclePeriod = repeatedSuffixPeriod(session.toolCycleHistory);
1731
+ if (cyclePeriod !== null) {
1732
+ this.recordNoProgressIncident(session, call, `a ${cyclePeriod}-call tool cycle repeated without semantic state progress`, "stop repeating successful observations; if required evidence is already present, return the final report");
1733
+ const result = Object.freeze({
1734
+ canonicalToolId: roundToolSet.canonicalToolIds[call.name] ?? call.name,
1735
+ content: stableJson({
1736
+ error: { code: "NO_PROGRESS", message: "A repeated tool cycle was blocked because semantic state did not change.", retryable: false },
1737
+ ok: false,
1738
+ }),
1739
+ error: Object.freeze({ code: "NO_PROGRESS", message: "Repeated tool cycle blocked.", retryable: false }),
1740
+ ok: false,
1741
+ summary: "Repeated tool cycle blocked by deterministic no-progress policy.",
1742
+ trust: "trusted",
1743
+ });
1744
+ session.evidence.lastToolCalls[session.evidence.lastToolCalls.length - 1] = { ...callRecord, outcome: "failed" };
1745
+ await this.traceToolResult(session, call, result);
1746
+ return Object.freeze({ call, content: result.content, failed: true, kind: "tool", summary: result.summary, trust: result.trust });
1747
+ }
1650
1748
  }
1651
1749
  const toolContext = Object.freeze({
1652
1750
  ...session.context,
@@ -1748,7 +1846,9 @@ export class AiCoderRunController {
1748
1846
  const noProgressDetected = session.noProgressToolCallIds.has(call.toolCallId);
1749
1847
  const effectCanChangeState = normalizedResult.effectsAuthority === "host"
1750
1848
  && (normalizedResult.ok || normalizedResult.effects?.approval === "denied");
1751
- if (normalizedResult.ok && observationFamily !== null) {
1849
+ // Count every dispatched identical observation attempt, successful or
1850
+ // failed, so advisory nudges and strict nudges reflect requested work.
1851
+ if (observationFamily !== null) {
1752
1852
  session.observationFamilies.set(observationFamily, (session.observationFamilies.get(observationFamily) ?? 0) + 1);
1753
1853
  }
1754
1854
  if (normalizedResult.ok && normalizedResult.effects?.writes?.length)
@@ -2528,10 +2628,12 @@ export class AiCoderRunController {
2528
2628
  .sort(([left], [right]) => compareAiCoderText(left, right))
2529
2629
  .slice(-128)
2530
2630
  .map(([key, value]) => Object.freeze({ key, value }))),
2631
+ observationNudgeThresholds: session.budget.observationNudgeThresholds,
2531
2632
  observationFamilies: Object.freeze([...session.observationFamilies.entries()]
2532
2633
  .sort(([left], [right]) => compareAiCoderText(left, right))
2533
2634
  .slice(-128)
2534
2635
  .map(([key, count]) => Object.freeze({ count, key }))),
2636
+ policy: session.budget.noProgressPolicy,
2535
2637
  previousTool: repeatedToolIsStillOnCurrentState && lastToolCall !== undefined
2536
2638
  ? Object.freeze({
2537
2639
  argumentsHash: lastToolCall.argumentsHash,