@rulvar/core 1.233.0 → 1.234.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.
package/dist/index.d.ts CHANGED
@@ -10633,7 +10633,9 @@ interface OrchestrateSynthesis {
10633
10633
  dedupeClaims?: boolean;
10634
10634
  /**
10635
10635
  * UsageLimits of ONE incremental note invocation; default
10636
- * { maxTurns: 2 }. Ignored in 'single' mode.
10636
+ * { maxTurns: 2 }. In mode 'single' the declaration is a typed
10637
+ * ConfigError (RV3102): no note invocation exists for the limits to
10638
+ * bound, and until the gate it was silently ignored.
10637
10639
  */
10638
10640
  noteLimits?: UsageLimits;
10639
10641
  /**
package/dist/index.js CHANGED
@@ -22399,6 +22399,11 @@ function validateOrchestrateOptions(opts) {
22399
22399
  if (floor && opts.finishValidation === void 0) throw new ConfigError("orchestrate synthesis.fallbackToValidDraft requires finishValidation: without a declared finish contract there is nothing to judge the draft valid by");
22400
22400
  }
22401
22401
  if (symmetry.context !== void 0 && symmetry.context !== "digests" && symmetry.context !== "full") throw new ConfigError("orchestrate synthesis.context must be 'digests' or 'full'; got " + JSON.stringify(symmetry.context));
22402
+ if (synthesis.mode === "incremental") {
22403
+ if (symmetry.exposeChildResultTools === true) throw new ConfigError("orchestrate synthesis.exposeChildResultTools is meaningless in mode 'incremental': the deterministic reconciliation dispatches no synthesis to hold the tools");
22404
+ if (symmetry.context === "full") throw new ConfigError("orchestrate synthesis.context 'full' is meaningless in mode 'incremental': the deterministic reconciliation composes no prompt to embed the outputs in");
22405
+ if (synthesis.limits !== void 0) throw new ConfigError("orchestrate synthesis.limits is meaningless in mode 'incremental': no single synthesis invocation exists for the limits to bound; declare noteLimits for the note invocations instead");
22406
+ }
22402
22407
  const index = synthesis.evidenceIndex;
22403
22408
  if (index !== void 0) {
22404
22409
  if (index !== true && (typeof index !== "object" || index === null)) throw new ConfigError(`orchestrate synthesis.evidenceIndex must be true or an object with pattern and flags; got ${JSON.stringify(index)}`);
@@ -22418,7 +22423,10 @@ function validateOrchestrateOptions(opts) {
22418
22423
  if (probe.test("")) throw new ConfigError("orchestrate synthesis.evidenceIndex.pattern must not be able to match the empty string (an empty match would index fabricated evidence); got " + JSON.stringify(pattern));
22419
22424
  }
22420
22425
  }
22421
- if (synthesis.noteLimits !== void 0) validateUsageLimits(synthesis.noteLimits, "orchestrate synthesis.noteLimits");
22426
+ if (synthesis.noteLimits !== void 0) {
22427
+ validateUsageLimits(synthesis.noteLimits, "orchestrate synthesis.noteLimits");
22428
+ if (synthesis.mode !== "incremental") throw new ConfigError("orchestrate synthesis.noteLimits is meaningless in mode 'single': only 'incremental' dispatches note invocations for the limits to bound");
22429
+ }
22422
22430
  if (synthesis.effort !== void 0 && ![
22423
22431
  "low",
22424
22432
  "medium",
@@ -22430,6 +22438,8 @@ function validateOrchestrateOptions(opts) {
22430
22438
  if (synthesis.instructions !== void 0 && typeof synthesis.instructions !== "string") throw new ConfigError(`orchestrate synthesis.instructions must be a string; got ${typeof synthesis.instructions}`);
22431
22439
  const facts = synthesis;
22432
22440
  if (facts.policyFacts !== void 0 && typeof facts.policyFacts !== "boolean") throw new ConfigError(`orchestrate synthesis.policyFacts must be a boolean; got ${typeof facts.policyFacts}`);
22441
+ if (facts.policyFacts === true && synthesis.mode === "incremental") throw new ConfigError("orchestrate synthesis.policyFacts is meaningless in mode 'incremental': the deterministic reconciliation dispatches no synthesis for the facts to ride");
22442
+ if ((facts.runFacts === true || typeof facts.runFacts === "object" && facts.runFacts !== null) && synthesis.mode === "incremental") throw new ConfigError("orchestrate synthesis.runFacts is meaningless in mode 'incremental': the deterministic reconciliation dispatches no synthesis for the facts to ride");
22433
22443
  if (facts.runFacts !== void 0 && typeof facts.runFacts !== "boolean") {
22434
22444
  if (typeof facts.runFacts !== "object" || facts.runFacts === null || Array.isArray(facts.runFacts)) throw new ConfigError(`orchestrate synthesis.runFacts must be a boolean or { workflowSoFar?: boolean }; got ${typeof facts.runFacts}`);
22435
22445
  const runFactsSpec = facts.runFacts;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rulvar/core",
3
- "version": "1.233.0",
3
+ "version": "1.234.0",
4
4
  "description": "Rulvar core: L0 contracts, journal kernel, ctx primitives, agent runtime, model router, tool system, dynamic orchestrator, InMemory and JSONL stores, event stream.",
5
5
  "type": "module",
6
6
  "license": "Apache-2.0",