Accept stored Scattermind concept map rows
This commit is contained in:
@@ -1254,7 +1254,43 @@ try {
|
||||
assert.equal(threadsFallback.handoff.readiness.status, 'ready');
|
||||
assert.deepEqual(threadsFallback.handoff.warnings, []);
|
||||
|
||||
console.log(JSON.stringify({ ok: true, top: data.ranked[0].id, hintedTop: hinted.ranked[0].id, actionTop: actions.ranked[0].id, nestedConceptTop: nestedConcept.ranked[0].id, nonGoalTop: nonGoal.ranked[0].id, structuredContextTop: structuredContext.ranked[0].id, lensOnlyTop: lensOnly.ranked[0].id, scattermindPaidShapeTop: scattermindPaidShape.ranked[0].id, mergedContextTop: mergedContext.ranked[0].id, embeddedJsonTop: embeddedJson.ranked[0].id, fencedJsonTop: fencedJson.ranked[0].id, embeddedSnapshotTop: embeddedSnapshot.ranked[0].id, sourceExcerptTop: sourceExcerpt.ranked[0].id, snakeCaseBridgeTop: snakeCaseBridge.ranked[0].id, nextStepsAliasTop: nextStepsAlias.ranked[0].id, summaryGuardrailTop: summaryGuardrail.ranked[0].id, bridgeEnvelopeTop: bridgeEnvelope.ranked[0].id, directEnvelopeSectionsTop: directEnvelopeSections.ranked[0].id, softDirectLaneAliasesTop: softDirectLaneAliases.ranked[0].id, threadsFallbackTop: threadsFallback.ranked[0].id, duplicateIds: duplicateIds.ranked.map(item => item.id), readiness: data.handoff.readiness.status, provenance: data.input.provenance, buildOrder: data.buildOrder }, null, 2));
|
||||
const storedScattermindRowResponse = await fetch(`${base}/api/rank-feedback`, {
|
||||
method: 'POST',
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
body: JSON.stringify({
|
||||
referenceCode: 'SM-STORED-1',
|
||||
ideaText: 'I paid for a Scattermind Concept Map and now want the actual stored row ranked without hand-copying lenses.',
|
||||
context: 'Solo operator. Manual proof first. Avoid account dashboards and saved workspaces before one user acts.',
|
||||
mode: 'mvp',
|
||||
fullReadingJson: JSON.stringify({
|
||||
working_name: 'Stored Row Bridge',
|
||||
opening_reflection: 'The paid Concept Map says the continuation engine should produce one active next move, not a generic dashboard.',
|
||||
lenses: {
|
||||
risk: { title: 'What Can Mislead You', content: 'Avoid account dashboards and saved workspaces before one user acts. Do not build billing or collaboration yet.' },
|
||||
channel: { title: 'Build Order', content: 'Build first: Stored-row build-order preview - rank the paid Concept Map directly from its saved fullReadingJson. Test manually: Copyable stored-row handoff - paste the decision brief into notes and ask one tired user what to do next. Defer: Result visual polish after the handoff proof. Probably noise: Account dashboard with saved workspaces, billing, and collaboration.' },
|
||||
},
|
||||
threads_to_hold: ['Manual proof remains the active slice.', 'Do not let this become a dashboard.'],
|
||||
questions_to_sit_with: ['Can the user act on the first move without opening a workspace?'],
|
||||
closing_note: 'Start with the stored-row build-order preview.',
|
||||
reference_code: 'SM-STORED-1',
|
||||
}),
|
||||
}),
|
||||
});
|
||||
assert.equal(storedScattermindRowResponse.status, 200);
|
||||
const storedScattermindRow = await storedScattermindRowResponse.json();
|
||||
assert.equal(storedScattermindRow.input.provenance.artifactId, 'SM-STORED-1');
|
||||
assert.equal(storedScattermindRow.input.provenance.snapshotTitle, 'Stored Row Bridge');
|
||||
assert.match(storedScattermindRow.input.provenance.originalPrompt, /actual stored row ranked/);
|
||||
assert.equal(storedScattermindRow.input.optionCount, 4);
|
||||
assert.equal(storedScattermindRow.ranked[0].id, 'build-order-1');
|
||||
assert.equal(storedScattermindRow.ranked[0].provenance.sourceTitle, 'Build Order');
|
||||
assert.match(storedScattermindRow.ranked[0].provenance.sourceQuote, /Stored-row build-order preview/);
|
||||
assert.ok(storedScattermindRow.input.decisionContext.nonGoals.includes('Avoid account dashboards and saved workspaces before one user acts'));
|
||||
assert.equal(storedScattermindRow.ranked.find(item => item.id === 'build-order-4').lane.id, 'park');
|
||||
assert.equal(storedScattermindRow.handoff.readiness.status, 'ready');
|
||||
assert.deepEqual(storedScattermindRow.handoff.warnings, []);
|
||||
|
||||
console.log(JSON.stringify({ ok: true, top: data.ranked[0].id, hintedTop: hinted.ranked[0].id, actionTop: actions.ranked[0].id, nestedConceptTop: nestedConcept.ranked[0].id, nonGoalTop: nonGoal.ranked[0].id, structuredContextTop: structuredContext.ranked[0].id, lensOnlyTop: lensOnly.ranked[0].id, scattermindPaidShapeTop: scattermindPaidShape.ranked[0].id, mergedContextTop: mergedContext.ranked[0].id, embeddedJsonTop: embeddedJson.ranked[0].id, fencedJsonTop: fencedJson.ranked[0].id, embeddedSnapshotTop: embeddedSnapshot.ranked[0].id, sourceExcerptTop: sourceExcerpt.ranked[0].id, snakeCaseBridgeTop: snakeCaseBridge.ranked[0].id, nextStepsAliasTop: nextStepsAlias.ranked[0].id, summaryGuardrailTop: summaryGuardrail.ranked[0].id, bridgeEnvelopeTop: bridgeEnvelope.ranked[0].id, directEnvelopeSectionsTop: directEnvelopeSections.ranked[0].id, softDirectLaneAliasesTop: softDirectLaneAliases.ranked[0].id, threadsFallbackTop: threadsFallback.ranked[0].id, storedScattermindRowTop: storedScattermindRow.ranked[0].id, duplicateIds: duplicateIds.ranked.map(item => item.id), readiness: data.handoff.readiness.status, provenance: data.input.provenance, buildOrder: data.buildOrder }, null, 2));
|
||||
} finally {
|
||||
server.kill('SIGTERM');
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user