@nathapp/nax 0.61.0 → 0.61.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.
- package/dist/nax.js +16 -6
- package/package.json +1 -1
package/dist/nax.js
CHANGED
|
@@ -18070,6 +18070,7 @@ function isLegacyFlatModels(val) {
|
|
|
18070
18070
|
var TokenPricingSchema, ModelDefSchema, ModelEntrySchema, PerAgentModelMapSchema, ModelMapSchema, ModelTierSchema, TierConfigSchema, AutoModeConfigSchema, RectificationConfigSchema, RegressionGateConfigSchema, SmartTestRunnerConfigSchema, SMART_TEST_RUNNER_DEFAULT, smartTestRunnerFieldSchema, ExecutionConfigSchema, QualityConfigSchema, TddConfigSchema, ConstitutionConfigSchema, AnalyzeConfigSchema, SemanticReviewConfigSchema, ReviewDialogueConfigSchema, ReviewConfigSchema, PlanConfigSchema, AcceptanceFixConfigSchema, AcceptanceConfigSchema, TestCoverageConfigSchema, ContextAutoDetectConfigSchema, ContextConfigSchema, LlmRoutingConfigSchema, RoutingConfigSchema, OptimizerConfigSchema, PluginConfigEntrySchema, HooksConfigSchema, InteractionConfigSchema, StorySizeGateConfigSchema, PromptAuditConfigSchema, AgentConfigSchema, PrecheckConfigSchema, PromptsConfigSchema, ProjectProfileSchema, VALID_AGENT_TYPES, GenerateConfigSchema, DebaterPersonaEnum, DebaterSchema, toObject = (val) => val === undefined || val === null ? {} : val, RESOLVER_TYPES, makeResolverSchema = (defaultType) => exports_external.preprocess(toObject, exports_external.object({
|
|
18071
18071
|
type: exports_external.enum(RESOLVER_TYPES).default(defaultType),
|
|
18072
18072
|
agent: exports_external.string().min(1).optional(),
|
|
18073
|
+
model: exports_external.string().min(1).optional(),
|
|
18073
18074
|
tieBreaker: exports_external.string().min(1).optional(),
|
|
18074
18075
|
maxPromptTokens: exports_external.number().int().positive().optional()
|
|
18075
18076
|
})), DebateStageConfigSchema = (defaults) => exports_external.preprocess(toObject, exports_external.object({
|
|
@@ -21694,12 +21695,16 @@ async function resolveOutcome(proposalOutputs, critiqueOutputs, stageConfig, con
|
|
|
21694
21695
|
const adapter = _debateSessionDeps.getAgent(agentName, config2);
|
|
21695
21696
|
if (adapter) {
|
|
21696
21697
|
const synthesisSessionName = workdir !== undefined ? buildSessionName(workdir, featureName, storyId, "synthesis") : undefined;
|
|
21698
|
+
const resolverDebater = { agent: agentName, model: resolverConfig.model };
|
|
21699
|
+
const resolverTier = resolverConfig.model && MODEL_SHORTHAND_TIERS[resolverConfig.model.toLowerCase()] || modelTierFromDebater(resolverDebater);
|
|
21700
|
+
const resolverModelDef = resolveModelDefForDebater(resolverDebater, resolverTier, config2);
|
|
21697
21701
|
const resolverResult = await synthesisResolver(proposalOutputs, critiqueOutputs, {
|
|
21698
21702
|
adapter,
|
|
21699
21703
|
promptSuffix,
|
|
21700
21704
|
debaters,
|
|
21701
21705
|
completeOptions: {
|
|
21702
|
-
model:
|
|
21706
|
+
model: resolverModelDef.model,
|
|
21707
|
+
modelTier: resolverTier,
|
|
21703
21708
|
config: config2,
|
|
21704
21709
|
storyId,
|
|
21705
21710
|
featureName,
|
|
@@ -21720,12 +21725,16 @@ async function resolveOutcome(proposalOutputs, critiqueOutputs, stageConfig, con
|
|
|
21720
21725
|
if (resolverConfig.type === "custom") {
|
|
21721
21726
|
const agentName = resolverConfig.agent ?? RESOLVER_FALLBACK_AGENT;
|
|
21722
21727
|
const judgeSessionName = workdir !== undefined ? buildSessionName(workdir, featureName, storyId, "judge") : undefined;
|
|
21728
|
+
const resolverDebater = { agent: agentName, model: resolverConfig.model };
|
|
21729
|
+
const resolverTier = resolverConfig.model && MODEL_SHORTHAND_TIERS[resolverConfig.model.toLowerCase()] || modelTierFromDebater(resolverDebater);
|
|
21730
|
+
const resolverModelDef = resolveModelDefForDebater(resolverDebater, resolverTier, config2);
|
|
21723
21731
|
const resolverResult = await judgeResolver(proposalOutputs, critiqueOutputs, resolverConfig, {
|
|
21724
21732
|
getAgent: (name) => _debateSessionDeps.getAgent(name, config2),
|
|
21725
21733
|
defaultAgentName: RESOLVER_FALLBACK_AGENT,
|
|
21726
21734
|
debaters,
|
|
21727
21735
|
completeOptions: {
|
|
21728
|
-
model:
|
|
21736
|
+
model: resolverModelDef.model,
|
|
21737
|
+
modelTier: resolverTier,
|
|
21729
21738
|
config: config2,
|
|
21730
21739
|
storyId,
|
|
21731
21740
|
featureName,
|
|
@@ -22719,7 +22728,8 @@ The spec above is the authoritative source for acceptance criteria.
|
|
|
22719
22728
|
- If a debater proposed criteria beyond the spec (observable edge cases, error-path behaviors), place those in a separate \`suggestedCriteria\` array on the same story object. Each element of \`suggestedCriteria\` MUST be a plain string \u2014 never an object or structured value.
|
|
22720
22729
|
- \`suggestedCriteria\` MUST contain only behavioral acceptance criteria \u2014 observable outputs, return values, state changes, or error conditions a test can assert. DO NOT include: implementation details (imports, internal structure), design suggestions ("consider X"), "not required" notes, or any criterion that cannot be expressed as a test assertion.
|
|
22721
22730
|
- Never silently merge debater-invented criteria into \`acceptanceCriteria\`. The distinction matters: \`acceptanceCriteria\` drives automated testing; \`suggestedCriteria\` gates a hardening pass.
|
|
22722
|
-
- Preserve the spec's AC wording. You may refine for clarity but must not change semantics
|
|
22731
|
+
- Preserve the spec's AC wording. You may refine for clarity but must not change semantics.
|
|
22732
|
+
- Preserve each story's \`routing\` object unchanged \u2014 especially \`routing.complexity\` and \`routing.testStrategy\`. These are required by the schema and must not be dropped or modified during synthesis.` : "";
|
|
22723
22733
|
const planSynthesisSuffix = `IMPORTANT: Your response must be a single valid JSON object in PRD format (with project, feature, branchName, userStories array, etc.). Do NOT wrap it in markdown fences. Output raw JSON only.${specAnchor}`;
|
|
22724
22734
|
const outcome = await resolveOutcome(proposalOutputs, critiqueOutputs, ctx.stageConfig, ctx.config, ctx.storyId, resolverTimeoutMs, opts.workdir, opts.feature, undefined, undefined, planSynthesisSuffix, successful.map((p) => p.debater));
|
|
22725
22735
|
const winningOutput = outcome.output ?? successful[0].output;
|
|
@@ -36647,7 +36657,7 @@ var package_default;
|
|
|
36647
36657
|
var init_package = __esm(() => {
|
|
36648
36658
|
package_default = {
|
|
36649
36659
|
name: "@nathapp/nax",
|
|
36650
|
-
version: "0.61.
|
|
36660
|
+
version: "0.61.1",
|
|
36651
36661
|
description: "AI Coding Agent Orchestrator \u2014 loops until done",
|
|
36652
36662
|
type: "module",
|
|
36653
36663
|
bin: {
|
|
@@ -36727,8 +36737,8 @@ var init_version = __esm(() => {
|
|
|
36727
36737
|
NAX_VERSION = package_default.version;
|
|
36728
36738
|
NAX_COMMIT = (() => {
|
|
36729
36739
|
try {
|
|
36730
|
-
if (/^[0-9a-f]{6,10}$/.test("
|
|
36731
|
-
return "
|
|
36740
|
+
if (/^[0-9a-f]{6,10}$/.test("a11d3b57"))
|
|
36741
|
+
return "a11d3b57";
|
|
36732
36742
|
} catch {}
|
|
36733
36743
|
try {
|
|
36734
36744
|
const result = Bun.spawnSync(["git", "rev-parse", "--short", "HEAD"], {
|