@resolveio/server-lib 22.3.26 → 22.3.28

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.
@@ -35,6 +35,20 @@ type AiCodexRunInput = {
35
35
  runBudgetMs?: number;
36
36
  mongo_max_time_ms?: number;
37
37
  mongoMaxTimeMs?: number;
38
+ qa_repair_enabled?: boolean;
39
+ qaRepairEnabled?: boolean;
40
+ qa_evidence_required?: boolean;
41
+ qaEvidenceRequired?: boolean;
42
+ qa_distinct_screenshot_required?: boolean;
43
+ qaDistinctScreenshotRequired?: boolean;
44
+ qa_fail_fast_compile?: boolean;
45
+ qaFailFastCompile?: boolean;
46
+ qa_live_data_required?: boolean;
47
+ qaLiveDataRequired?: boolean;
48
+ qa_self_repair_max_waves?: number;
49
+ qaSelfRepairMaxWaves?: number;
50
+ qa_policy_instructions?: string[];
51
+ qaPolicyInstructions?: string[];
38
52
  system_prompt?: string;
39
53
  systemPrompt?: string;
40
54
  user_prompt_template?: string;
@@ -183,6 +183,7 @@ var codex_client_1 = require("../services/codex-client");
183
183
  var openai_usage_ledger_manager_1 = require("../managers/openai-usage-ledger.manager");
184
184
  var assistant_core_heuristics_1 = require("../ai/assistant-core-heuristics");
185
185
  var resolveio_platform_intelligence_memory_1 = require("../ai/resolveio-platform-intelligence-memory");
186
+ var ai_qa_policy_1 = require("../util/ai-qa-policy");
186
187
  var DEFAULT_MAX_FILE_MB = 50;
187
188
  var DEFAULT_MAX_TOTAL_MB = 100;
188
189
  var DEFAULT_MAX_ATTACHMENT_CHARS = 12000;
@@ -19528,6 +19529,71 @@ function buildAssistantPlannerPrompt(params) {
19528
19529
  var userPrompt = applyTemplate(AI_ASSISTANT_PLANNER_USER_PROMPT_TEMPLATE, templateData);
19529
19530
  return "System:\n".concat(AI_ASSISTANT_PLANNER_SYSTEM_PROMPT, "\n\nUser:\n").concat(userPrompt).trim();
19530
19531
  }
19532
+ function hasAssistantRunnerQaConfig(config) {
19533
+ if (!config || typeof config !== 'object') {
19534
+ return false;
19535
+ }
19536
+ return [
19537
+ 'qa_repair_enabled',
19538
+ 'qaRepairEnabled',
19539
+ 'qa_evidence_required',
19540
+ 'qaEvidenceRequired',
19541
+ 'qa_distinct_screenshot_required',
19542
+ 'qaDistinctScreenshotRequired',
19543
+ 'qa_fail_fast_compile',
19544
+ 'qaFailFastCompile',
19545
+ 'qa_live_data_required',
19546
+ 'qaLiveDataRequired',
19547
+ 'qa_self_repair_max_waves',
19548
+ 'qaSelfRepairMaxWaves',
19549
+ 'qa_policy_instructions',
19550
+ 'qaPolicyInstructions'
19551
+ ].some(function (key) { return config[key] !== undefined; });
19552
+ }
19553
+ function shouldIncludeAssistantRunnerContract(input) {
19554
+ var config = (input === null || input === void 0 ? void 0 : input.config) || {};
19555
+ if (hasAssistantRunnerQaConfig(config)) {
19556
+ return true;
19557
+ }
19558
+ if (normalizeOptionalString(input === null || input === void 0 ? void 0 : input.id_app)) {
19559
+ return true;
19560
+ }
19561
+ var message = normalizeOptionalString(input === null || input === void 0 ? void 0 : input.message).toLowerCase();
19562
+ return /\b(fix|change|update|build|implement|bug|qa|test|screenshot|click|page|screen|button|route|data|publication|method)\b/.test(message);
19563
+ }
19564
+ function normalizeAssistantQaPolicyInstructions(config) {
19565
+ var raw = Array.isArray(config === null || config === void 0 ? void 0 : config.qa_policy_instructions)
19566
+ ? config.qa_policy_instructions
19567
+ : (Array.isArray(config === null || config === void 0 ? void 0 : config.qaPolicyInstructions) ? config.qaPolicyInstructions : []);
19568
+ return raw
19569
+ .map(function (entry) { return normalizeOptionalString(entry); })
19570
+ .filter(Boolean)
19571
+ .slice(0, 8);
19572
+ }
19573
+ function buildAssistantRunnerContractLines(input) {
19574
+ var _a, _b, _c, _d, _e, _f, _g, _h;
19575
+ if (!shouldIncludeAssistantRunnerContract(input)) {
19576
+ return [];
19577
+ }
19578
+ var config = (input === null || input === void 0 ? void 0 : input.config) || {};
19579
+ var rules = (0, ai_qa_policy_1.buildResolveIORunnerBasicsRules)({
19580
+ context: 'ai_terminal',
19581
+ includeDevServerRules: true,
19582
+ maxContextBullets: 6,
19583
+ qaRepairEnabled: normalizeOptionalBoolean((_a = config.qa_repair_enabled) !== null && _a !== void 0 ? _a : config.qaRepairEnabled),
19584
+ qaEvidenceRequired: normalizeOptionalBoolean((_b = config.qa_evidence_required) !== null && _b !== void 0 ? _b : config.qaEvidenceRequired),
19585
+ qaDistinctScreenshotRequired: normalizeOptionalBoolean((_c = config.qa_distinct_screenshot_required) !== null && _c !== void 0 ? _c : config.qaDistinctScreenshotRequired),
19586
+ qaFailFastCompile: normalizeOptionalBoolean((_d = config.qa_fail_fast_compile) !== null && _d !== void 0 ? _d : config.qaFailFastCompile),
19587
+ qaLiveDataRequired: normalizeOptionalBoolean((_e = config.qa_live_data_required) !== null && _e !== void 0 ? _e : config.qaLiveDataRequired),
19588
+ qaSelfRepairMaxWaves: normalizeOptionalNumber((_f = config.qa_self_repair_max_waves) !== null && _f !== void 0 ? _f : config.qaSelfRepairMaxWaves),
19589
+ currentRoute: normalizeOptionalString((_g = input === null || input === void 0 ? void 0 : input.context) === null || _g === void 0 ? void 0 : _g.route),
19590
+ currentContextMode: normalizeOptionalString((_h = input === null || input === void 0 ? void 0 : input.context) === null || _h === void 0 ? void 0 : _h.mode),
19591
+ customInstructions: normalizeAssistantQaPolicyInstructions(config)
19592
+ });
19593
+ return __spreadArray([
19594
+ 'Shared AI runner/QA contract:'
19595
+ ], __read(rules.map(function (rule) { return "- ".concat(rule); })), false);
19596
+ }
19531
19597
  function buildAssistantContext(input, userContext) {
19532
19598
  var _a, _b, _c, _d, _e, _f;
19533
19599
  var lines = [];
@@ -19554,6 +19620,10 @@ function buildAssistantContext(input, userContext) {
19554
19620
  if (contextRoute) {
19555
19621
  lines.push("Current page route: ".concat(contextRoute));
19556
19622
  }
19623
+ var runnerContractLines = buildAssistantRunnerContractLines(input);
19624
+ if (runnerContractLines.length) {
19625
+ lines.push.apply(lines, __spreadArray([], __read(runnerContractLines), false));
19626
+ }
19557
19627
  var collectionHints = Array.isArray(userContext === null || userContext === void 0 ? void 0 : userContext.collectionHints)
19558
19628
  ? userContext === null || userContext === void 0 ? void 0 : userContext.collectionHints.filter(Boolean)
19559
19629
  : [];
@@ -22018,6 +22088,7 @@ function applyTemplate(template, data) {
22018
22088
  return output;
22019
22089
  }
22020
22090
  function sanitizeConfig(source) {
22091
+ var _a, _b, _c, _d, _e, _f;
22021
22092
  var fallbackModels = Array.isArray(source === null || source === void 0 ? void 0 : source.fallback_models)
22022
22093
  ? source.fallback_models
22023
22094
  : (Array.isArray(source === null || source === void 0 ? void 0 : source.fallbackModels) ? source.fallbackModels : []);
@@ -22033,7 +22104,19 @@ function sanitizeConfig(source) {
22033
22104
  user_prompt_template: normalizeOptionalString(source === null || source === void 0 ? void 0 : source.user_prompt_template),
22034
22105
  response_format: normalizeOptionalString(source === null || source === void 0 ? void 0 : source.response_format),
22035
22106
  temperature: normalizeOptionalNumber(source === null || source === void 0 ? void 0 : source.temperature),
22036
- max_tokens: normalizeOptionalNumber(source === null || source === void 0 ? void 0 : source.max_tokens)
22107
+ max_tokens: normalizeOptionalNumber(source === null || source === void 0 ? void 0 : source.max_tokens),
22108
+ qa_repair_enabled: normalizeOptionalBoolean((_a = source === null || source === void 0 ? void 0 : source.qa_repair_enabled) !== null && _a !== void 0 ? _a : source === null || source === void 0 ? void 0 : source.qaRepairEnabled),
22109
+ qa_evidence_required: normalizeOptionalBoolean((_b = source === null || source === void 0 ? void 0 : source.qa_evidence_required) !== null && _b !== void 0 ? _b : source === null || source === void 0 ? void 0 : source.qaEvidenceRequired),
22110
+ qa_distinct_screenshot_required: normalizeOptionalBoolean((_c = source === null || source === void 0 ? void 0 : source.qa_distinct_screenshot_required) !== null && _c !== void 0 ? _c : source === null || source === void 0 ? void 0 : source.qaDistinctScreenshotRequired),
22111
+ qa_fail_fast_compile: normalizeOptionalBoolean((_d = source === null || source === void 0 ? void 0 : source.qa_fail_fast_compile) !== null && _d !== void 0 ? _d : source === null || source === void 0 ? void 0 : source.qaFailFastCompile),
22112
+ qa_live_data_required: normalizeOptionalBoolean((_e = source === null || source === void 0 ? void 0 : source.qa_live_data_required) !== null && _e !== void 0 ? _e : source === null || source === void 0 ? void 0 : source.qaLiveDataRequired),
22113
+ qa_self_repair_max_waves: normalizeOptionalNumber((_f = source === null || source === void 0 ? void 0 : source.qa_self_repair_max_waves) !== null && _f !== void 0 ? _f : source === null || source === void 0 ? void 0 : source.qaSelfRepairMaxWaves),
22114
+ qa_policy_instructions: (Array.isArray(source === null || source === void 0 ? void 0 : source.qa_policy_instructions)
22115
+ ? source.qa_policy_instructions
22116
+ : (Array.isArray(source === null || source === void 0 ? void 0 : source.qaPolicyInstructions) ? source.qaPolicyInstructions : []))
22117
+ .map(function (entry) { return normalizeOptionalString(entry); })
22118
+ .filter(Boolean)
22119
+ .slice(0, 8)
22037
22120
  };
22038
22121
  }
22039
22122
  function isLikelyObjectId(value) {