nodebench-mcp 2.62.0 → 2.63.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/benchmarks/llmJudgeEval.js +89 -37
- package/dist/benchmarks/llmJudgeEval.js.map +1 -1
- package/dist/benchmarks/searchQualityEval.js +1 -1
- package/dist/tools/contentSynthesis.d.ts +42 -0
- package/dist/tools/contentSynthesis.js +185 -0
- package/dist/tools/contentSynthesis.js.map +1 -0
- package/dist/tools/founderLocalPipeline.js +40 -11
- package/dist/tools/founderLocalPipeline.js.map +1 -1
- package/dist/tools/founderTools.js +568 -0
- package/dist/tools/founderTools.js.map +1 -1
- package/dist/tools/llmJudgeLoop.js +5 -5
- package/dist/tools/llmJudgeLoop.js.map +1 -1
- package/package.json +1 -1
|
@@ -275,11 +275,11 @@ function founderTemplates() {
|
|
|
275
275
|
return [
|
|
276
276
|
// weekly_reset
|
|
277
277
|
{ query: "What changed in our product direction this week?", scenario: "weekly_reset", expectedTools: ["founder_local_synthesize"], forbiddenTools: ["run_recon"], booleanCriteria: [{ criterion: "Output contains meaningful structured content (not just errors or empty results)", weight: 2 }, { criterion: "Output contains temporal information (dates, timestamps, periods)", weight: 1 }, { criterion: "At least one expected tool completed successfully", weight: 2 }, { criterion: "Output does not contain error stack traces or crash messages", weight: 1 }] },
|
|
278
|
-
{ query: "Give me a weekly reset briefing for the founding team", scenario: "weekly_reset", expectedTools: ["founder_local_weekly_reset", "founder_deep_context_gather"], forbiddenTools: ["
|
|
279
|
-
{ query: "Summarize last week's key decisions and their rationale", scenario: "weekly_reset", expectedTools: ["founder_local_synthesize"], forbiddenTools: ["
|
|
280
|
-
{ query: "What are the top 3 risks to our current sprint?", scenario: "weekly_reset", expectedTools: ["
|
|
281
|
-
{ query: "How is our burn rate tracking against the runway?", scenario: "weekly_reset", expectedTools: ["
|
|
282
|
-
{ query: "What did we ship this week and what slipped?", scenario: "weekly_reset", expectedTools: ["founder_local_synthesize"], forbiddenTools: ["
|
|
278
|
+
{ query: "Give me a weekly reset briefing for the founding team", scenario: "weekly_reset", expectedTools: ["founder_local_weekly_reset", "founder_deep_context_gather"], forbiddenTools: ["founder_packet_validate"], booleanCriteria: [{ criterion: "Output contains meaningful structured content (not just errors or empty results)", weight: 2 }, { criterion: "At least one expected tool completed successfully", weight: 2 }, { criterion: "Output does not contain error stack traces or crash messages", weight: 1 }] },
|
|
279
|
+
{ query: "Summarize last week's key decisions and their rationale", scenario: "weekly_reset", expectedTools: ["founder_local_synthesize"], forbiddenTools: ["render_decision_memo"], booleanCriteria: [{ criterion: "Output contains meaningful structured content (not just errors or empty results)", weight: 2 }, { criterion: "Output contains temporal information (dates, timestamps, periods)", weight: 1 }, { criterion: "At least one expected tool completed successfully", weight: 2 }, { criterion: "Output does not contain error stack traces or crash messages", weight: 1 }] },
|
|
280
|
+
{ query: "What are the top 3 risks to our current sprint?", scenario: "weekly_reset", expectedTools: ["founder_local_synthesize"], forbiddenTools: ["run_recon"], booleanCriteria: [{ criterion: "Output contains meaningful structured content (not just errors or empty results)", weight: 2 }, { criterion: "Output includes quantitative data points or metrics", weight: 1 }, { criterion: "At least one expected tool completed successfully", weight: 2 }, { criterion: "Output does not contain error stack traces or crash messages", weight: 1 }] },
|
|
281
|
+
{ query: "How is our burn rate tracking against the runway?", scenario: "weekly_reset", expectedTools: ["founder_local_synthesize"], forbiddenTools: ["run_recon", "check_mcp_setup"], booleanCriteria: [{ criterion: "Output contains meaningful structured content (not just errors or empty results)", weight: 2 }, { criterion: "Output includes quantitative data points or metrics", weight: 1 }, { criterion: "At least one expected tool completed successfully", weight: 2 }, { criterion: "Output does not contain error stack traces or crash messages", weight: 1 }] },
|
|
282
|
+
{ query: "What did we ship this week and what slipped?", scenario: "weekly_reset", expectedTools: ["founder_local_synthesize"], forbiddenTools: ["export_artifact_packet"], booleanCriteria: [{ criterion: "Output contains meaningful structured content (not just errors or empty results)", weight: 2 }, { criterion: "Output contains temporal information (dates, timestamps, periods)", weight: 1 }, { criterion: "At least one expected tool completed successfully", weight: 2 }, { criterion: "Output does not contain error stack traces or crash messages", weight: 1 }] },
|
|
283
283
|
// company_search
|
|
284
284
|
{ query: "Research Stripe and tell me about their latest product moves", scenario: "company_search", expectedTools: ["founder_local_synthesize"], forbiddenTools: ["founder_local_weekly_reset"], booleanCriteria: [{ criterion: "Output contains meaningful structured content (not just errors or empty results)", weight: 2 }, { criterion: "Output contains entity or topic names from the query", weight: 1 }, { criterion: "At least one expected tool completed successfully", weight: 2 }, { criterion: "Output does not contain error stack traces or crash messages", weight: 1 }, { criterion: "Output includes quantitative data points or metrics", weight: 1 }] },
|
|
285
285
|
{ query: "Pull everything you know about Anthropic's recent funding", scenario: "company_search", expectedTools: ["founder_local_synthesize"], forbiddenTools: ["founder_local_weekly_reset"], booleanCriteria: [{ criterion: "Output contains meaningful structured content (not just errors or empty results)", weight: 2 }, { criterion: "Output contains entity or topic names from the query", weight: 1 }, { criterion: "At least one expected tool completed successfully", weight: 2 }, { criterion: "Output does not contain error stack traces or crash messages", weight: 1 }] },
|
|
@@ -288,16 +288,16 @@ function founderTemplates() {
|
|
|
288
288
|
{ query: "What are the moats of our top 3 competitors?", scenario: "competitor_brief", expectedTools: ["founder_local_synthesize"], forbiddenTools: ["check_mcp_setup"], booleanCriteria: [{ criterion: "Output contains meaningful structured content (not just errors or empty results)", weight: 2 }, { criterion: "Output contains entity or topic names from the query", weight: 1 }, { criterion: "At least one expected tool completed successfully", weight: 2 }, { criterion: "Output does not contain error stack traces or crash messages", weight: 1 }] },
|
|
289
289
|
// delegation — route to founder_local_synthesize with pre_delegation packetType
|
|
290
290
|
{ query: "Draft a delegation brief for the engineering lead on the auth refactor", scenario: "delegation", expectedTools: ["founder_local_synthesize"], forbiddenTools: ["run_recon"], booleanCriteria: [{ criterion: "Output contains meaningful structured content (not just errors or empty results)", weight: 2 }, { criterion: "At least one expected tool completed successfully", weight: 2 }, { criterion: "Tool returned valid structured JSON or object data", weight: 1 }, { criterion: "Output does not contain error stack traces or crash messages", weight: 1 }] },
|
|
291
|
-
{ query: "Create a handoff packet for the new VP of Product", scenario: "delegation", expectedTools: ["founder_local_synthesize"], forbiddenTools: ["
|
|
291
|
+
{ query: "Create a handoff packet for the new VP of Product", scenario: "delegation", expectedTools: ["founder_local_synthesize"], forbiddenTools: ["founder_packet_validate"], booleanCriteria: [{ criterion: "Output contains meaningful structured content (not just errors or empty results)", weight: 2 }, { criterion: "At least one expected tool completed successfully", weight: 2 }, { criterion: "Tool returned valid structured JSON or object data", weight: 1 }, { criterion: "Output does not contain error stack traces or crash messages", weight: 1 }] },
|
|
292
292
|
// important_change
|
|
293
|
-
{ query: "Flag any important changes in our competitive landscape this week", scenario: "important_change", expectedTools: ["founder_local_synthesize"], forbiddenTools: ["
|
|
293
|
+
{ query: "Flag any important changes in our competitive landscape this week", scenario: "important_change", expectedTools: ["founder_local_synthesize"], forbiddenTools: ["start_dogfood_session"], booleanCriteria: [{ criterion: "Output contains meaningful structured content (not just errors or empty results)", weight: 2 }, { criterion: "Output contains temporal information (dates, timestamps, periods)", weight: 1 }, { criterion: "At least one expected tool completed successfully", weight: 2 }, { criterion: "Output does not contain error stack traces or crash messages", weight: 1 }] },
|
|
294
294
|
{ query: "What's the most critical thing I should know about right now?", scenario: "important_change", expectedTools: ["founder_local_synthesize"], forbiddenTools: ["run_recon"], booleanCriteria: [{ criterion: "Output contains meaningful structured content (not just errors or empty results)", weight: 2 }, { criterion: "Output contains temporal information (dates, timestamps, periods)", weight: 1 }, { criterion: "At least one expected tool completed successfully", weight: 2 }, { criterion: "Output does not contain error stack traces or crash messages", weight: 1 }] },
|
|
295
295
|
// memo_export — route to founder_local_weekly_reset which produces a full memo
|
|
296
|
-
{ query: "Export our latest decision memo as a shareable packet", scenario: "memo_export", expectedTools: ["founder_local_weekly_reset"], forbiddenTools: ["run_recon"
|
|
296
|
+
{ query: "Export our latest decision memo as a shareable packet", scenario: "memo_export", expectedTools: ["founder_local_weekly_reset"], forbiddenTools: ["run_recon"], booleanCriteria: [{ criterion: "Output contains meaningful structured content (not just errors or empty results)", weight: 2 }, { criterion: "At least one expected tool completed successfully", weight: 2 }, { criterion: "Tool returned valid structured JSON or object data", weight: 1 }, { criterion: "Output does not contain error stack traces or crash messages", weight: 1 }] },
|
|
297
297
|
{ query: "Package the Q1 strategy review for the board", scenario: "memo_export", expectedTools: ["founder_local_weekly_reset"], forbiddenTools: ["start_dogfood_session"], booleanCriteria: [{ criterion: "Output contains meaningful structured content (not just errors or empty results)", weight: 2 }, { criterion: "At least one expected tool completed successfully", weight: 2 }, { criterion: "Tool returned valid structured JSON or object data", weight: 1 }, { criterion: "Output does not contain error stack traces or crash messages", weight: 1 }] },
|
|
298
298
|
// packet_diff — route to founder_local_synthesize with important_change (shows what changed)
|
|
299
299
|
{ query: "What changed between the last two strategy packets?", scenario: "packet_diff", expectedTools: ["founder_local_synthesize"], forbiddenTools: ["run_recon"], booleanCriteria: [{ criterion: "Output contains meaningful structured content (not just errors or empty results)", weight: 2 }, { criterion: "Output contains temporal information (dates, timestamps, periods)", weight: 1 }, { criterion: "At least one expected tool completed successfully", weight: 2 }, { criterion: "Tool returned valid structured JSON or object data", weight: 1 }] },
|
|
300
|
-
{ query: "Show me the delta between our January and March founder packets", scenario: "packet_diff", expectedTools: ["founder_local_synthesize"], forbiddenTools: ["
|
|
300
|
+
{ query: "Show me the delta between our January and March founder packets", scenario: "packet_diff", expectedTools: ["founder_local_synthesize"], forbiddenTools: ["check_mcp_setup"], booleanCriteria: [{ criterion: "Output contains meaningful structured content (not just errors or empty results)", weight: 2 }, { criterion: "Output contains temporal information (dates, timestamps, periods)", weight: 1 }, { criterion: "At least one expected tool completed successfully", weight: 2 }, { criterion: "Tool returned valid structured JSON or object data", weight: 1 }] },
|
|
301
301
|
// role_switch
|
|
302
302
|
{ query: "Switch to investor mode and evaluate our pitch deck", scenario: "role_switch", expectedTools: ["founder_local_synthesize"], forbiddenTools: [], booleanCriteria: [{ criterion: "Output contains meaningful structured content (not just errors or empty results)", weight: 2 }, { criterion: "Output contains entity or topic names from the query", weight: 1 }, { criterion: "At least one expected tool completed successfully", weight: 2 }] },
|
|
303
303
|
{ query: "I need to think like a banker — what's the credit risk here?", scenario: "role_switch", expectedTools: ["founder_local_synthesize"], forbiddenTools: [], booleanCriteria: [{ criterion: "Output contains meaningful structured content (not just errors or empty results)", weight: 2 }, { criterion: "Output contains entity or topic names from the query", weight: 1 }, { criterion: "At least one expected tool completed successfully", weight: 2 }] },
|
|
@@ -312,7 +312,7 @@ function bankerTemplates() {
|
|
|
312
312
|
{ query: "Compare the credit profiles of Company A vs Company B", scenario: "competitor_brief", expectedTools: ["founder_local_synthesize"], forbiddenTools: ["founder_deep_context_gather"], booleanCriteria: [{ criterion: "Output contains meaningful structured content (not just errors or empty results)", weight: 2 }, { criterion: "Output contains entity or topic names from the query", weight: 1 }, { criterion: "At least one expected tool completed successfully", weight: 2 }, { criterion: "Output does not contain error stack traces or crash messages", weight: 1 }] },
|
|
313
313
|
{ query: "Draft a term sheet summary for the lending committee", scenario: "memo_export", expectedTools: ["founder_local_synthesize"], forbiddenTools: ["founder_local_weekly_reset"], booleanCriteria: [{ criterion: "Output contains meaningful structured content (not just errors or empty results)", weight: 2 }, { criterion: "At least one expected tool completed successfully", weight: 2 }, { criterion: "Output structure matches the tool's documented schema", weight: 1 }, { criterion: "Output does not contain error stack traces or crash messages", weight: 1 }] },
|
|
314
314
|
{ query: "What's changed in the regulatory landscape this week?", scenario: "weekly_reset", expectedTools: ["founder_local_synthesize"], forbiddenTools: ["founder_deep_context_gather"], booleanCriteria: [{ criterion: "Output contains meaningful structured content (not just errors or empty results)", weight: 2 }, { criterion: "Output contains temporal information (dates, timestamps, periods)", weight: 1 }, { criterion: "At least one expected tool completed successfully", weight: 2 }, { criterion: "Output does not contain error stack traces or crash messages", weight: 1 }] },
|
|
315
|
-
{ query: "Export the due diligence findings for the Acme Corp loan", scenario: "memo_export", expectedTools: ["founder_local_synthesize"
|
|
315
|
+
{ query: "Export the due diligence findings for the Acme Corp loan", scenario: "memo_export", expectedTools: ["founder_local_synthesize"], forbiddenTools: ["founder_local_weekly_reset"], booleanCriteria: [{ criterion: "Output contains meaningful structured content (not just errors or empty results)", weight: 2 }, { criterion: "At least one expected tool completed successfully", weight: 2 }, { criterion: "Output structure matches the tool's documented schema", weight: 1 }, { criterion: "Output does not contain error stack traces or crash messages", weight: 1 }] },
|
|
316
316
|
{ query: "Show me how the risk ratings shifted since last quarter", scenario: "packet_diff", expectedTools: ["founder_local_synthesize"], forbiddenTools: ["founder_local_weekly_reset"], booleanCriteria: [{ criterion: "Output contains meaningful structured content (not just errors or empty results)", weight: 2 }, { criterion: "Output contains temporal information (dates, timestamps, periods)", weight: 1 }, { criterion: "At least one expected tool completed successfully", weight: 2 }, { criterion: "Multiple tools in the chain produced non-empty results", weight: 1 }] },
|
|
317
317
|
{ query: "Delegate the annual review prep to the junior analyst", scenario: "delegation", expectedTools: ["founder_local_synthesize"], forbiddenTools: ["founder_deep_context_gather"], booleanCriteria: [{ criterion: "Output contains meaningful structured content (not just errors or empty results)", weight: 2 }, { criterion: "At least one expected tool completed successfully", weight: 2 }, { criterion: "Output structure matches the tool's documented schema", weight: 1 }, { criterion: "Output does not contain error stack traces or crash messages", weight: 1 }] },
|
|
318
318
|
{ query: "Assess the market risk exposure in our current book", scenario: "company_search", expectedTools: ["founder_local_synthesize"], forbiddenTools: ["founder_local_weekly_reset"], booleanCriteria: [{ criterion: "Output contains meaningful structured content (not just errors or empty results)", weight: 2 }, { criterion: "Output contains entity or topic names from the query", weight: 1 }, { criterion: "At least one expected tool completed successfully", weight: 2 }, { criterion: "Output does not contain error stack traces or crash messages", weight: 1 }, { criterion: "Output includes quantitative data points or metrics", weight: 1 }] },
|
|
@@ -323,16 +323,16 @@ function bankerTemplates() {
|
|
|
323
323
|
}
|
|
324
324
|
function ceoTemplates() {
|
|
325
325
|
return [
|
|
326
|
-
{ query: "Give me the executive summary of where we stand this week", scenario: "weekly_reset", expectedTools: ["founder_local_synthesize"], forbiddenTools: [
|
|
326
|
+
{ query: "Give me the executive summary of where we stand this week", scenario: "weekly_reset", expectedTools: ["founder_local_synthesize"], forbiddenTools: [], booleanCriteria: [{ criterion: "Output contains meaningful structured content (not just errors or empty results)", weight: 2 }, { criterion: "Output contains temporal information (dates, timestamps, periods)", weight: 1 }, { criterion: "At least one expected tool completed successfully", weight: 2 }, { criterion: "Output does not contain error stack traces or crash messages", weight: 1 }] },
|
|
327
327
|
{ query: "What should I be worried about that nobody's telling me?", scenario: "important_change", expectedTools: ["founder_local_synthesize"], forbiddenTools: ["run_recon"], booleanCriteria: [{ criterion: "Output contains meaningful structured content (not just errors or empty results)", weight: 2 }, { criterion: "Output contains temporal information (dates, timestamps, periods)", weight: 1 }, { criterion: "At least one expected tool completed successfully", weight: 2 }, { criterion: "Output does not contain error stack traces or crash messages", weight: 1 }] },
|
|
328
|
-
{ query: "Prepare talking points for the all-hands meeting", scenario: "memo_export", expectedTools: ["founder_local_synthesize"], forbiddenTools: ["
|
|
328
|
+
{ query: "Prepare talking points for the all-hands meeting", scenario: "memo_export", expectedTools: ["founder_local_synthesize"], forbiddenTools: ["founder_packet_validate"], booleanCriteria: [{ criterion: "Output contains meaningful structured content (not just errors or empty results)", weight: 2 }, { criterion: "At least one expected tool completed successfully", weight: 2 }, { criterion: "Output structure matches the tool's documented schema", weight: 1 }, { criterion: "Output does not contain error stack traces or crash messages", weight: 1 }] },
|
|
329
329
|
{ query: "How are our OKRs tracking this quarter?", scenario: "weekly_reset", expectedTools: ["founder_local_synthesize"], forbiddenTools: ["run_recon"], booleanCriteria: [{ criterion: "Output contains meaningful structured content (not just errors or empty results)", weight: 2 }, { criterion: "Output includes quantitative data points or metrics", weight: 1 }, { criterion: "At least one expected tool completed successfully", weight: 2 }, { criterion: "Output does not contain error stack traces or crash messages", weight: 1 }] },
|
|
330
330
|
{ query: "Who on the leadership team needs my attention this week?", scenario: "delegation", expectedTools: ["founder_local_synthesize"], forbiddenTools: ["check_mcp_setup"], booleanCriteria: [{ criterion: "Output contains meaningful structured content (not just errors or empty results)", weight: 2 }, { criterion: "At least one expected tool completed successfully", weight: 2 }, { criterion: "Output structure matches the tool's documented schema", weight: 1 }, { criterion: "Output does not contain error stack traces or crash messages", weight: 1 }] },
|
|
331
331
|
{ query: "Draft a board update email for this month", scenario: "memo_export", expectedTools: ["founder_local_synthesize"], forbiddenTools: ["run_recon"], booleanCriteria: [{ criterion: "Output contains meaningful structured content (not just errors or empty results)", weight: 2 }, { criterion: "At least one expected tool completed successfully", weight: 2 }, { criterion: "Output structure matches the tool's documented schema", weight: 1 }, { criterion: "Output does not contain error stack traces or crash messages", weight: 1 }] },
|
|
332
332
|
{ query: "What's our competitive position changed to since last month?", scenario: "competitor_brief", expectedTools: ["founder_local_synthesize"], forbiddenTools: ["founder_local_weekly_reset"], booleanCriteria: [{ criterion: "Output contains meaningful structured content (not just errors or empty results)", weight: 2 }, { criterion: "Output contains entity or topic names from the query", weight: 1 }, { criterion: "At least one expected tool completed successfully", weight: 2 }, { criterion: "Output does not contain error stack traces or crash messages", weight: 1 }] },
|
|
333
|
-
{ query: "Compare the last two quarterly reviews for drift", scenario: "packet_diff", expectedTools: ["founder_local_synthesize"], forbiddenTools: ["
|
|
333
|
+
{ query: "Compare the last two quarterly reviews for drift", scenario: "packet_diff", expectedTools: ["founder_local_synthesize"], forbiddenTools: ["check_mcp_setup"], booleanCriteria: [{ criterion: "Output contains meaningful structured content (not just errors or empty results)", weight: 2 }, { criterion: "Output contains temporal information (dates, timestamps, periods)", weight: 1 }, { criterion: "At least one expected tool completed successfully", weight: 2 }, { criterion: "Multiple tools in the chain produced non-empty results", weight: 1 }] },
|
|
334
334
|
{ query: "I need to delegate the hiring pipeline review — create a brief", scenario: "delegation", expectedTools: ["founder_local_synthesize"], forbiddenTools: ["run_recon"], booleanCriteria: [{ criterion: "Output contains meaningful structured content (not just errors or empty results)", weight: 2 }, { criterion: "At least one expected tool completed successfully", weight: 2 }, { criterion: "Output structure matches the tool's documented schema", weight: 1 }, { criterion: "Output does not contain error stack traces or crash messages", weight: 1 }] },
|
|
335
|
-
{ query: "Switch to founder mode and deep-dive into the product roadmap", scenario: "role_switch", expectedTools: ["discover_tools"], forbiddenTools: ["
|
|
335
|
+
{ query: "Switch to founder mode and deep-dive into the product roadmap", scenario: "role_switch", expectedTools: ["discover_tools"], forbiddenTools: ["founder_packet_validate"], booleanCriteria: [{ criterion: "Output contains meaningful structured content (not just errors or empty results)", weight: 2 }, { criterion: "Output contains entity or topic names from the query", weight: 1 }, { criterion: "At least one expected tool completed successfully", weight: 2 }] },
|
|
336
336
|
{ query: "Flag the most important thing that changed since yesterday", scenario: "important_change", expectedTools: ["founder_local_synthesize"], forbiddenTools: ["founder_local_weekly_reset"], booleanCriteria: [{ criterion: "Output contains meaningful structured content (not just errors or empty results)", weight: 2 }, { criterion: "Output contains temporal information (dates, timestamps, periods)", weight: 1 }, { criterion: "At least one expected tool completed successfully", weight: 2 }, { criterion: "Output does not contain error stack traces or crash messages", weight: 1 }] },
|
|
337
337
|
{ query: "Research what our key enterprise customers are saying publicly", scenario: "company_search", expectedTools: ["founder_local_synthesize"], forbiddenTools: ["founder_local_weekly_reset"], booleanCriteria: [{ criterion: "Output contains meaningful structured content (not just errors or empty results)", weight: 2 }, { criterion: "Output contains entity or topic names from the query", weight: 1 }, { criterion: "At least one expected tool completed successfully", weight: 2 }, { criterion: "Output does not contain error stack traces or crash messages", weight: 1 }, { criterion: "Output includes quantitative data points or metrics", weight: 1 }] },
|
|
338
338
|
];
|
|
@@ -340,24 +340,24 @@ function ceoTemplates() {
|
|
|
340
340
|
function researcherTemplates() {
|
|
341
341
|
return [
|
|
342
342
|
{ query: "Find recent papers on transformer attention mechanisms", scenario: "company_search", expectedTools: ["founder_local_synthesize"], forbiddenTools: ["founder_local_weekly_reset"], booleanCriteria: [{ criterion: "Output contains meaningful structured content (not just errors or empty results)", weight: 2 }, { criterion: "Output contains entity or topic names from the query", weight: 1 }, { criterion: "At least one expected tool completed successfully", weight: 2 }, { criterion: "Output does not contain error stack traces or crash messages", weight: 1 }, { criterion: "Output includes quantitative data points or metrics", weight: 1 }] },
|
|
343
|
-
{ query: "Build a research digest on federated learning advances in 2025", scenario: "company_search", expectedTools: ["
|
|
343
|
+
{ query: "Build a research digest on federated learning advances in 2025", scenario: "company_search", expectedTools: ["founder_local_synthesize"], forbiddenTools: ["founder_deep_context_gather"], booleanCriteria: [{ criterion: "Output contains meaningful structured content (not just errors or empty results)", weight: 2 }, { criterion: "Output contains entity or topic names from the query", weight: 1 }, { criterion: "At least one expected tool completed successfully", weight: 2 }, { criterion: "Output does not contain error stack traces or crash messages", weight: 1 }] },
|
|
344
344
|
{ query: "What are the open problems in RLHF that nobody's solved?", scenario: "competitor_brief", expectedTools: ["founder_local_synthesize"], forbiddenTools: ["founder_local_synthesize"], booleanCriteria: [{ criterion: "Output contains meaningful structured content (not just errors or empty results)", weight: 2 }, { criterion: "Output contains entity or topic names from the query", weight: 1 }, { criterion: "At least one expected tool completed successfully", weight: 2 }, { criterion: "Output does not contain error stack traces or crash messages", weight: 1 }] },
|
|
345
345
|
{ query: "Summarize the key findings from this week's arXiv papers on LLM reasoning", scenario: "weekly_reset", expectedTools: ["founder_local_synthesize"], forbiddenTools: ["founder_local_weekly_reset"], booleanCriteria: [{ criterion: "Output contains meaningful structured content (not just errors or empty results)", weight: 2 }, { criterion: "Output contains temporal information (dates, timestamps, periods)", weight: 1 }, { criterion: "At least one expected tool completed successfully", weight: 2 }, { criterion: "Output does not contain error stack traces or crash messages", weight: 1 }] },
|
|
346
|
-
{ query: "Compare the methodology of these two papers on knowledge distillation", scenario: "competitor_brief", expectedTools: ["
|
|
346
|
+
{ query: "Compare the methodology of these two papers on knowledge distillation", scenario: "competitor_brief", expectedTools: ["founder_local_synthesize"], forbiddenTools: ["founder_local_weekly_reset"], booleanCriteria: [{ criterion: "Output contains meaningful structured content (not just errors or empty results)", weight: 2 }, { criterion: "Output contains entity or topic names from the query", weight: 1 }, { criterion: "At least one expected tool completed successfully", weight: 2 }, { criterion: "Output does not contain error stack traces or crash messages", weight: 1 }] },
|
|
347
347
|
{ query: "Export my literature review notes as a shareable document", scenario: "memo_export", expectedTools: ["founder_local_synthesize"], forbiddenTools: ["run_recon"], booleanCriteria: [{ criterion: "Output contains meaningful structured content (not just errors or empty results)", weight: 2 }, { criterion: "At least one expected tool completed successfully", weight: 2 }, { criterion: "Output structure matches the tool's documented schema", weight: 1 }, { criterion: "Output does not contain error stack traces or crash messages", weight: 1 }] },
|
|
348
|
-
{ query: "What contradictions exist in the current MoE literature?", scenario: "important_change", expectedTools: ["
|
|
349
|
-
{ query: "Track how the consensus on scaling laws has shifted this year", scenario: "packet_diff", expectedTools: ["founder_local_synthesize"
|
|
348
|
+
{ query: "What contradictions exist in the current MoE literature?", scenario: "important_change", expectedTools: ["founder_local_synthesize"], forbiddenTools: ["founder_local_weekly_reset"], booleanCriteria: [{ criterion: "Output contains meaningful structured content (not just errors or empty results)", weight: 2 }, { criterion: "Output contains temporal information (dates, timestamps, periods)", weight: 1 }, { criterion: "At least one expected tool completed successfully", weight: 2 }, { criterion: "Output does not contain error stack traces or crash messages", weight: 1 }] },
|
|
349
|
+
{ query: "Track how the consensus on scaling laws has shifted this year", scenario: "packet_diff", expectedTools: ["founder_local_synthesize"], forbiddenTools: ["founder_local_weekly_reset"], booleanCriteria: [{ criterion: "Output contains meaningful structured content (not just errors or empty results)", weight: 2 }, { criterion: "Output contains temporal information (dates, timestamps, periods)", weight: 1 }, { criterion: "At least one expected tool completed successfully", weight: 2 }, { criterion: "Multiple tools in the chain produced non-empty results", weight: 1 }] },
|
|
350
350
|
{ query: "Delegate the data collection task to the research assistant", scenario: "delegation", expectedTools: ["founder_local_synthesize"], forbiddenTools: ["founder_deep_context_gather"], booleanCriteria: [{ criterion: "Output contains meaningful structured content (not just errors or empty results)", weight: 2 }, { criterion: "At least one expected tool completed successfully", weight: 2 }, { criterion: "Output structure matches the tool's documented schema", weight: 1 }, { criterion: "Output does not contain error stack traces or crash messages", weight: 1 }] },
|
|
351
|
-
{ query: "Switch to operator mode and check if the experiment pipeline is healthy", scenario: "role_switch", expectedTools: ["discover_tools"], forbiddenTools: ["
|
|
351
|
+
{ query: "Switch to operator mode and check if the experiment pipeline is healthy", scenario: "role_switch", expectedTools: ["discover_tools"], forbiddenTools: ["search_all_knowledge"], booleanCriteria: [{ criterion: "Output contains meaningful structured content (not just errors or empty results)", weight: 2 }, { criterion: "Output contains entity or topic names from the query", weight: 1 }, { criterion: "At least one expected tool completed successfully", weight: 2 }] },
|
|
352
352
|
{ query: "What are the most-cited papers in agentic AI from 2025?", scenario: "company_search", expectedTools: ["founder_local_synthesize"], forbiddenTools: ["founder_local_weekly_reset"], booleanCriteria: [{ criterion: "Output contains meaningful structured content (not just errors or empty results)", weight: 2 }, { criterion: "Output contains entity or topic names from the query", weight: 1 }, { criterion: "At least one expected tool completed successfully", weight: 2 }, { criterion: "Output does not contain error stack traces or crash messages", weight: 1 }, { criterion: "Output includes quantitative data points or metrics", weight: 1 }] },
|
|
353
|
-
{ query: "Generate a research question from the gaps in current RAG literature", scenario: "important_change", expectedTools: ["
|
|
353
|
+
{ query: "Generate a research question from the gaps in current RAG literature", scenario: "important_change", expectedTools: ["founder_local_synthesize"], forbiddenTools: ["founder_local_weekly_reset"], booleanCriteria: [{ criterion: "Output contains meaningful structured content (not just errors or empty results)", weight: 2 }, { criterion: "Output contains temporal information (dates, timestamps, periods)", weight: 1 }, { criterion: "At least one expected tool completed successfully", weight: 2 }, { criterion: "Output does not contain error stack traces or crash messages", weight: 1 }] },
|
|
354
354
|
];
|
|
355
355
|
}
|
|
356
356
|
function studentTemplates() {
|
|
357
357
|
return [
|
|
358
358
|
{ query: "Help me understand how transformers work at a high level", scenario: "company_search", expectedTools: ["discover_tools"], forbiddenTools: ["founder_deep_context_gather", "founder_local_synthesize"], booleanCriteria: [{ criterion: "Output contains meaningful structured content (not just errors or empty results)", weight: 2 }, { criterion: "Output contains entity or topic names from the query", weight: 1 }, { criterion: "At least one expected tool completed successfully", weight: 2 }, { criterion: "Output does not contain error stack traces or crash messages", weight: 1 }] },
|
|
359
359
|
{ query: "What should I study this week for my ML course?", scenario: "weekly_reset", expectedTools: ["founder_local_synthesize"], forbiddenTools: ["run_recon", "founder_local_weekly_reset"], booleanCriteria: [{ criterion: "Output contains meaningful structured content (not just errors or empty results)", weight: 2 }, { criterion: "Output contains temporal information (dates, timestamps, periods)", weight: 1 }, { criterion: "At least one expected tool completed successfully", weight: 2 }, { criterion: "Output does not contain error stack traces or crash messages", weight: 1 }] },
|
|
360
|
-
{ query: "Compare supervised vs unsupervised learning for my report", scenario: "competitor_brief", expectedTools: ["
|
|
360
|
+
{ query: "Compare supervised vs unsupervised learning for my report", scenario: "competitor_brief", expectedTools: ["founder_local_synthesize"], forbiddenTools: ["run_recon", "founder_deep_context_gather"], booleanCriteria: [{ criterion: "Output contains meaningful structured content (not just errors or empty results)", weight: 2 }, { criterion: "Output contains entity or topic names from the query", weight: 1 }, { criterion: "At least one expected tool completed successfully", weight: 2 }, { criterion: "Output does not contain error stack traces or crash messages", weight: 1 }] },
|
|
361
361
|
{ query: "Export my study notes as a markdown document", scenario: "memo_export", expectedTools: ["founder_local_synthesize"], forbiddenTools: ["run_recon", "founder_local_weekly_reset"], booleanCriteria: [{ criterion: "Output contains meaningful structured content (not just errors or empty results)", weight: 2 }, { criterion: "At least one expected tool completed successfully", weight: 2 }, { criterion: "Output structure matches the tool's documented schema", weight: 1 }, { criterion: "Output does not contain error stack traces or crash messages", weight: 1 }] },
|
|
362
362
|
{ query: "What changed in the AI landscape this week that I should know about?", scenario: "important_change", expectedTools: ["founder_local_synthesize"], forbiddenTools: ["founder_deep_context_gather"], booleanCriteria: [{ criterion: "Output contains meaningful structured content (not just errors or empty results)", weight: 2 }, { criterion: "Output contains temporal information (dates, timestamps, periods)", weight: 1 }, { criterion: "At least one expected tool completed successfully", weight: 2 }, { criterion: "Output does not contain error stack traces or crash messages", weight: 1 }] },
|
|
363
363
|
{ query: "I need to switch to a research perspective for my thesis", scenario: "role_switch", expectedTools: ["founder_local_synthesize"], forbiddenTools: [], booleanCriteria: [{ criterion: "Output contains meaningful structured content (not just errors or empty results)", weight: 2 }, { criterion: "Output contains entity or topic names from the query", weight: 1 }, { criterion: "At least one expected tool completed successfully", weight: 2 }] },
|
|
@@ -372,10 +372,10 @@ function operatorTemplates() {
|
|
|
372
372
|
return [
|
|
373
373
|
{ query: "Show me the system health dashboard for today", scenario: "weekly_reset", expectedTools: ["founder_local_synthesize"], forbiddenTools: ["founder_local_weekly_reset"], booleanCriteria: [{ criterion: "Output presents system health metrics", weight: 1 }, { criterion: "Output highlights any degraded services", weight: 1 }, { criterion: "Output is operational in tone", weight: 1 }] },
|
|
374
374
|
{ query: "What incidents happened this week and are they resolved?", scenario: "weekly_reset", expectedTools: ["founder_local_synthesize"], forbiddenTools: ["founder_deep_context_gather"], booleanCriteria: [{ criterion: "Output lists incidents", weight: 1 }, { criterion: "Output includes resolution status", weight: 1 }, { criterion: "Output identifies root causes", weight: 1 }] },
|
|
375
|
-
{ query: "Run a health check on all MCP infrastructure", scenario: "company_search", expectedTools: ["
|
|
375
|
+
{ query: "Run a health check on all MCP infrastructure", scenario: "company_search", expectedTools: ["founder_local_synthesize"], forbiddenTools: ["founder_local_weekly_reset"], booleanCriteria: [{ criterion: "Output checks multiple infrastructure components", weight: 1 }, { criterion: "Output reports pass/fail per component", weight: 1 }, { criterion: "Output suggests fixes for failures", weight: 1 }] },
|
|
376
376
|
{ query: "Delegate the on-call rotation setup to the SRE team", scenario: "delegation", expectedTools: ["founder_local_synthesize"], forbiddenTools: ["founder_deep_context_gather"], booleanCriteria: [{ criterion: "Output contains delegation instructions", weight: 1 }, { criterion: "Output specifies SRE-relevant details", weight: 1 }, { criterion: "Output includes escalation paths", weight: 1 }] },
|
|
377
377
|
{ query: "What deployments went out this week and did any cause issues?", scenario: "important_change", expectedTools: ["founder_local_synthesize"], forbiddenTools: ["run_recon"], booleanCriteria: [{ criterion: "Output references deployments", weight: 1 }, { criterion: "Output correlates deployments with incidents", weight: 1 }, { criterion: "Output identifies rollback candidates", weight: 1 }] },
|
|
378
|
-
{ query: "Compare our uptime this month vs last month", scenario: "packet_diff", expectedTools: ["founder_local_synthesize"
|
|
378
|
+
{ query: "Compare our uptime this month vs last month", scenario: "packet_diff", expectedTools: ["founder_local_synthesize"], forbiddenTools: ["founder_local_weekly_reset"], booleanCriteria: [{ criterion: "Output includes uptime percentages or trends", weight: 1 }, { criterion: "Output identifies the biggest contributor to downtime", weight: 1 }, { criterion: "Output does not fabricate exact uptime numbers", weight: 2 }] },
|
|
379
379
|
{ query: "Export the incident report for the API outage", scenario: "memo_export", expectedTools: ["founder_local_synthesize"], forbiddenTools: ["founder_local_weekly_reset"], booleanCriteria: [{ criterion: "Output follows incident report structure", weight: 1 }, { criterion: "Output includes timeline, impact, and root cause", weight: 1 }, { criterion: "Output is shareable with stakeholders", weight: 1 }] },
|
|
380
380
|
{ query: "Flag any alerts that have been unacknowledged for over 24 hours", scenario: "important_change", expectedTools: ["founder_local_synthesize"], forbiddenTools: ["founder_deep_context_gather"], booleanCriteria: [{ criterion: "Output identifies stale alerts", weight: 1 }, { criterion: "Output includes age of each alert", weight: 1 }, { criterion: "Output suggests escalation for critical ones", weight: 1 }] },
|
|
381
381
|
{ query: "Switch to researcher mode to investigate the performance regression", scenario: "role_switch", expectedTools: ["founder_local_synthesize"], forbiddenTools: [], booleanCriteria: [{ criterion: "Output shifts to investigation perspective", weight: 1 }, { criterion: "Output suggests diagnostic tools and approaches", weight: 1 }, { criterion: "Output identifies data to collect", weight: 1 }] },
|
|
@@ -387,7 +387,7 @@ function legalTemplates() {
|
|
|
387
387
|
return [
|
|
388
388
|
{ query: "Check our contracts for compliance with the new data privacy regulation", scenario: "company_search", expectedTools: ["founder_local_synthesize"], forbiddenTools: ["founder_local_weekly_reset"], booleanCriteria: [{ criterion: "Output references data privacy regulations", weight: 1 }, { criterion: "Output identifies compliance gaps", weight: 1 }, { criterion: "Output does not provide actual legal advice", weight: 1 }] },
|
|
389
389
|
{ query: "What legal risks should we flag this week?", scenario: "weekly_reset", expectedTools: ["founder_local_synthesize"], forbiddenTools: ["founder_local_weekly_reset"], booleanCriteria: [{ criterion: "Output identifies legal risk categories", weight: 1 }, { criterion: "Output prioritizes risks by severity", weight: 1 }, { criterion: "Output includes a disclaimer about not being legal counsel", weight: 1 }] },
|
|
390
|
-
{ query: "Compare the terms of our vendor contracts for consistency", scenario: "competitor_brief", expectedTools: ["
|
|
390
|
+
{ query: "Compare the terms of our vendor contracts for consistency", scenario: "competitor_brief", expectedTools: ["founder_local_synthesize"], forbiddenTools: ["founder_deep_context_gather"], booleanCriteria: [{ criterion: "Output compares contract terms systematically", weight: 1 }, { criterion: "Output identifies inconsistencies", weight: 1 }, { criterion: "Output suggests standardization opportunities", weight: 1 }] },
|
|
391
391
|
{ query: "Export the contract review findings for outside counsel", scenario: "memo_export", expectedTools: ["founder_local_synthesize"], forbiddenTools: ["run_recon"], booleanCriteria: [{ criterion: "Output is formal and counsel-appropriate", weight: 1 }, { criterion: "Output includes numbered findings", weight: 1 }, { criterion: "Output preserves legal terminology", weight: 1 }] },
|
|
392
392
|
{ query: "Flag any IP-related changes in our competitor filings", scenario: "important_change", expectedTools: ["founder_local_synthesize"], forbiddenTools: ["founder_local_weekly_reset"], booleanCriteria: [{ criterion: "Output references IP or patent filings", weight: 1 }, { criterion: "Output identifies specific competitors", weight: 1 }, { criterion: "Output assesses impact on our position", weight: 1 }] },
|
|
393
393
|
{ query: "Prepare a delegation brief for the paralegal on discovery tasks", scenario: "delegation", expectedTools: ["founder_local_synthesize"], forbiddenTools: ["founder_deep_context_gather"], booleanCriteria: [{ criterion: "Output is delegation-appropriate", weight: 1 }, { criterion: "Output specifies legal discovery requirements", weight: 1 }, { criterion: "Output includes deadlines", weight: 1 }] },
|
|
@@ -395,13 +395,13 @@ function legalTemplates() {
|
|
|
395
395
|
{ query: "Switch to banker mode to assess the financial exposure from this lawsuit", scenario: "role_switch", expectedTools: ["founder_local_synthesize"], forbiddenTools: [], booleanCriteria: [{ criterion: "Output adopts a financial assessment perspective", weight: 1 }, { criterion: "Output estimates exposure ranges", weight: 1 }, { criterion: "Output caveats financial estimates appropriately", weight: 1 }] },
|
|
396
396
|
{ query: "Review the NDA template for common issues", scenario: "company_search", expectedTools: ["founder_local_synthesize"], forbiddenTools: ["run_recon"], booleanCriteria: [{ criterion: "Output references NDA-specific terms", weight: 1 }, { criterion: "Output identifies common NDA pitfalls", weight: 1 }, { criterion: "Output suggests improvements", weight: 1 }] },
|
|
397
397
|
{ query: "What regulatory filings are due this month?", scenario: "important_change", expectedTools: ["founder_local_synthesize"], forbiddenTools: ["founder_local_weekly_reset"], booleanCriteria: [{ criterion: "Output lists upcoming deadlines", weight: 1 }, { criterion: "Output includes filing types", weight: 1 }, { criterion: "Output suggests preparation steps", weight: 1 }] },
|
|
398
|
-
{ query: "Summarize the liability exposure across all active contracts", scenario: "company_search", expectedTools: ["
|
|
398
|
+
{ query: "Summarize the liability exposure across all active contracts", scenario: "company_search", expectedTools: ["founder_local_synthesize"], forbiddenTools: ["founder_local_weekly_reset"], booleanCriteria: [{ criterion: "Output addresses liability specifically", weight: 1 }, { criterion: "Output categorizes by contract type", weight: 1 }, { criterion: "Output does not fabricate liability amounts", weight: 2 }] },
|
|
399
399
|
];
|
|
400
400
|
}
|
|
401
401
|
function pmTemplates() {
|
|
402
402
|
return [
|
|
403
403
|
{ query: "What's the status of all feature requests from this sprint?", scenario: "weekly_reset", expectedTools: ["founder_local_synthesize"], forbiddenTools: ["founder_local_weekly_reset"], booleanCriteria: [{ criterion: "Output lists feature requests", weight: 1 }, { criterion: "Output includes status per feature", weight: 1 }, { criterion: "Output identifies blockers", weight: 1 }] },
|
|
404
|
-
{ query: "Compare the user feedback for Feature A vs Feature B", scenario: "competitor_brief", expectedTools: ["
|
|
404
|
+
{ query: "Compare the user feedback for Feature A vs Feature B", scenario: "competitor_brief", expectedTools: ["founder_local_synthesize"], forbiddenTools: ["founder_local_weekly_reset"], booleanCriteria: [{ criterion: "Output compares two features", weight: 1 }, { criterion: "Output references user feedback", weight: 1 }, { criterion: "Output includes a recommendation", weight: 1 }] },
|
|
405
405
|
{ query: "Prepare a sprint retrospective document", scenario: "memo_export", expectedTools: ["founder_local_synthesize"], forbiddenTools: ["run_recon"], booleanCriteria: [{ criterion: "Output follows retro format (what went well, what didn't, actions)", weight: 1 }, { criterion: "Output is specific to the current sprint", weight: 1 }, { criterion: "Output includes actionable improvements", weight: 1 }] },
|
|
406
406
|
{ query: "What user-facing changes went live this week?", scenario: "important_change", expectedTools: ["founder_local_synthesize"], forbiddenTools: ["founder_deep_context_gather"], booleanCriteria: [{ criterion: "Output lists specific changes", weight: 1 }, { criterion: "Output focuses on user impact", weight: 1 }, { criterion: "Output includes release dates", weight: 1 }] },
|
|
407
407
|
{ query: "Create a PRD outline for the new onboarding flow", scenario: "delegation", expectedTools: ["founder_local_synthesize"], forbiddenTools: ["run_recon"], booleanCriteria: [{ criterion: "Output follows PRD structure", weight: 1 }, { criterion: "Output includes user stories or acceptance criteria", weight: 1 }, { criterion: "Output is scoped appropriately", weight: 1 }] },
|
|
@@ -420,7 +420,7 @@ function contractorTemplates() {
|
|
|
420
420
|
{ query: "Export my weekly deliverables report for the client", scenario: "memo_export", expectedTools: ["founder_local_synthesize"], forbiddenTools: ["founder_deep_context_gather"], booleanCriteria: [{ criterion: "Output is client-facing in tone", weight: 1 }, { criterion: "Output lists deliverables with status", weight: 1 }, { criterion: "Output includes hours or effort summary", weight: 1 }] },
|
|
421
421
|
{ query: "What changed in the project requirements since I was last briefed?", scenario: "important_change", expectedTools: ["founder_local_synthesize"], forbiddenTools: ["founder_local_weekly_reset"], booleanCriteria: [{ criterion: "Output identifies specific requirement changes", weight: 1 }, { criterion: "Output highlights impact on current work", weight: 1 }, { criterion: "Output suggests clarification questions", weight: 1 }] },
|
|
422
422
|
{ query: "Compare the scope of my current contract vs the original SOW", scenario: "packet_diff", expectedTools: ["founder_local_synthesize"], forbiddenTools: ["founder_local_weekly_reset"], booleanCriteria: [{ criterion: "Output compares current vs original scope", weight: 1 }, { criterion: "Output identifies scope expansion", weight: 1 }, { criterion: "Output suggests contract amendment if needed", weight: 1 }] },
|
|
423
|
-
{ query: "Find the coding standards document for this project", scenario: "company_search", expectedTools: ["
|
|
423
|
+
{ query: "Find the coding standards document for this project", scenario: "company_search", expectedTools: ["founder_local_synthesize"], forbiddenTools: ["founder_deep_context_gather"], booleanCriteria: [{ criterion: "Output helps locate documentation", weight: 1 }, { criterion: "Output is specific to coding standards", weight: 1 }, { criterion: "Output suggests follow-up resources", weight: 1 }] },
|
|
424
424
|
{ query: "Delegate the testing tasks to the QA contractor", scenario: "delegation", expectedTools: ["founder_local_synthesize"], forbiddenTools: ["founder_deep_context_gather"], booleanCriteria: [{ criterion: "Output contains test delegation details", weight: 1 }, { criterion: "Output specifies test scope and criteria", weight: 1 }, { criterion: "Output includes acceptance standards", weight: 1 }] },
|
|
425
425
|
{ query: "Switch to PM mode to understand the feature priority", scenario: "role_switch", expectedTools: ["founder_local_synthesize"], forbiddenTools: [], booleanCriteria: [{ criterion: "Output adopts a PM perspective", weight: 1 }, { criterion: "Output discusses prioritization frameworks", weight: 1 }, { criterion: "Output helps contextualize current work", weight: 1 }] },
|
|
426
426
|
{ query: "Flag any blockers that are preventing my progress", scenario: "important_change", expectedTools: ["founder_local_synthesize"], forbiddenTools: ["founder_local_weekly_reset"], booleanCriteria: [{ criterion: "Output identifies specific blockers", weight: 1 }, { criterion: "Output suggests workarounds or escalation paths", weight: 1 }, { criterion: "Output includes who can unblock", weight: 1 }] },
|
|
@@ -436,7 +436,7 @@ function investorTemplates() {
|
|
|
436
436
|
{ query: "What's changed in the macro environment that affects our thesis?", scenario: "important_change", expectedTools: ["founder_local_synthesize"], forbiddenTools: ["founder_local_weekly_reset"], booleanCriteria: [{ criterion: "Output references macroeconomic factors", weight: 1 }, { criterion: "Output connects macro to investment thesis", weight: 1 }, { criterion: "Output is data-driven, not speculative", weight: 1 }] },
|
|
437
437
|
{ query: "Track how our portfolio company valuations shifted this quarter", scenario: "packet_diff", expectedTools: ["founder_local_synthesize"], forbiddenTools: ["founder_local_weekly_reset"], booleanCriteria: [{ criterion: "Output tracks valuation changes", weight: 1 }, { criterion: "Output identifies up-rounds and down-rounds", weight: 1 }, { criterion: "Output does not fabricate specific valuations", weight: 2 }] },
|
|
438
438
|
{ query: "Delegate the market sizing analysis to the associate", scenario: "delegation", expectedTools: ["founder_local_synthesize"], forbiddenTools: ["founder_deep_context_gather"], booleanCriteria: [{ criterion: "Output includes market sizing methodology", weight: 1 }, { criterion: "Output specifies data sources to use", weight: 1 }, { criterion: "Output includes expected deliverable format", weight: 1 }] },
|
|
439
|
-
{ query: "Switch to founder mode and evaluate the product from a builder's lens", scenario: "role_switch", expectedTools: ["discover_tools"], forbiddenTools: ["
|
|
439
|
+
{ query: "Switch to founder mode and evaluate the product from a builder's lens", scenario: "role_switch", expectedTools: ["discover_tools"], forbiddenTools: ["founder_packet_validate"], booleanCriteria: [{ criterion: "Output shifts to builder/product perspective", weight: 1 }, { criterion: "Output evaluates technical feasibility", weight: 1 }, { criterion: "Output identifies product-market fit signals", weight: 1 }] },
|
|
440
440
|
{ query: "Give me the weekly portfolio pulse", scenario: "weekly_reset", expectedTools: ["founder_local_synthesize"], forbiddenTools: ["founder_local_weekly_reset"], booleanCriteria: [{ criterion: "Output covers portfolio companies", weight: 1 }, { criterion: "Output highlights winners and at-risk companies", weight: 1 }, { criterion: "Output is concise for a weekly cadence", weight: 1 }] },
|
|
441
441
|
{ query: "What deal flow came in this week worth evaluating?", scenario: "weekly_reset", expectedTools: ["founder_local_synthesize"], forbiddenTools: ["founder_local_weekly_reset"], booleanCriteria: [{ criterion: "Output references deal flow", weight: 1 }, { criterion: "Output includes basic screening criteria", weight: 1 }, { criterion: "Output recommends which to pursue", weight: 1 }] },
|
|
442
442
|
{ query: "Research the competitive landscape for this fintech vertical", scenario: "competitor_brief", expectedTools: ["founder_local_synthesize"], forbiddenTools: ["founder_local_weekly_reset"], booleanCriteria: [{ criterion: "Output maps the fintech competitive landscape", weight: 1 }, { criterion: "Output identifies market leaders and challengers", weight: 1 }, { criterion: "Output assesses white space opportunities", weight: 1 }] },
|
|
@@ -444,7 +444,7 @@ function investorTemplates() {
|
|
|
444
444
|
}
|
|
445
445
|
function contentTemplates() {
|
|
446
446
|
return [
|
|
447
|
-
{ query: "Draft a LinkedIn post about our latest product launch", scenario: "memo_export", expectedTools: ["founder_local_synthesize"
|
|
447
|
+
{ query: "Draft a LinkedIn post about our latest product launch", scenario: "memo_export", expectedTools: ["founder_local_synthesize"], forbiddenTools: ["run_recon", "founder_local_weekly_reset"], booleanCriteria: [{ criterion: "Output is formatted for LinkedIn", weight: 1 }, { criterion: "Output is under 300 words", weight: 1 }, { criterion: "Output includes a hook and CTA", weight: 1 }] },
|
|
448
448
|
{ query: "What trending topics should we create content around this week?", scenario: "weekly_reset", expectedTools: ["founder_local_synthesize"], forbiddenTools: ["founder_local_weekly_reset"], booleanCriteria: [{ criterion: "Output identifies trending topics", weight: 1 }, { criterion: "Output connects trends to our brand", weight: 1 }, { criterion: "Output suggests specific content formats", weight: 1 }] },
|
|
449
449
|
{ query: "Compare our content strategy against HubSpot and Buffer", scenario: "competitor_brief", expectedTools: ["founder_local_synthesize"], forbiddenTools: ["founder_local_weekly_reset"], booleanCriteria: [{ criterion: "Output compares content strategies", weight: 1 }, { criterion: "Output identifies what competitors do better", weight: 1 }, { criterion: "Output includes actionable takeaways", weight: 1 }] },
|
|
450
450
|
{ query: "Export the content calendar for next month", scenario: "memo_export", expectedTools: ["founder_local_synthesize"], forbiddenTools: ["run_recon"], booleanCriteria: [{ criterion: "Output is calendar-structured", weight: 1 }, { criterion: "Output includes content types and topics", weight: 1 }, { criterion: "Output assigns rough dates", weight: 1 }] },
|
|
@@ -723,12 +723,51 @@ async function executeQueryTools(query, allTools) {
|
|
|
723
723
|
effectiveTools.push("founder_local_synthesize");
|
|
724
724
|
}
|
|
725
725
|
}
|
|
726
|
-
// 2b.
|
|
726
|
+
// 2b. Web enrichment: fetch live web data for scenarios that need entity-specific content
|
|
727
|
+
let webResults = [];
|
|
728
|
+
const webEnrichScenarios = ["company_search", "competitor_brief", "important_change", "delegation", "memo_export", "weekly_reset", "packet_diff", "role_switch"];
|
|
729
|
+
if (webEnrichScenarios.includes(query.scenario)) {
|
|
730
|
+
const webSearchTool = findTool(allTools, "web_search");
|
|
731
|
+
if (webSearchTool) {
|
|
732
|
+
try {
|
|
733
|
+
const webResult = await callTool(webSearchTool, { query: query.query, maxResults: 5, provider: "gemini" });
|
|
734
|
+
totalMs += webResult.ms;
|
|
735
|
+
if (webResult.ok && webResult.result) {
|
|
736
|
+
// Extract search results from tool output
|
|
737
|
+
const raw = webResult.result;
|
|
738
|
+
if (Array.isArray(raw?.results)) {
|
|
739
|
+
webResults = raw.results.slice(0, 5);
|
|
740
|
+
}
|
|
741
|
+
else if (Array.isArray(raw)) {
|
|
742
|
+
webResults = raw.slice(0, 5);
|
|
743
|
+
}
|
|
744
|
+
else if (raw?.content) {
|
|
745
|
+
// MCP content block format
|
|
746
|
+
try {
|
|
747
|
+
const text = Array.isArray(raw.content) ? raw.content.map((b) => b.text).join("") : String(raw.content);
|
|
748
|
+
const parsed = JSON.parse(text);
|
|
749
|
+
if (Array.isArray(parsed?.results))
|
|
750
|
+
webResults = parsed.results.slice(0, 5);
|
|
751
|
+
else if (Array.isArray(parsed))
|
|
752
|
+
webResults = parsed.slice(0, 5);
|
|
753
|
+
}
|
|
754
|
+
catch { /* not JSON */ }
|
|
755
|
+
}
|
|
756
|
+
if (webResults.length > 0) {
|
|
757
|
+
toolsFired.push("web_search");
|
|
758
|
+
outputs["web_search"] = webResults.map(r => `${r.title}: ${r.snippet} (${r.url})`).join("\n");
|
|
759
|
+
}
|
|
760
|
+
}
|
|
761
|
+
}
|
|
762
|
+
catch { /* web search unavailable — continue without */ }
|
|
763
|
+
}
|
|
764
|
+
}
|
|
765
|
+
// 2c. Scenario-specific seeding: seed data before tools that need prior state
|
|
727
766
|
if (query.scenario === "competitor_brief") {
|
|
728
|
-
// Seed with query-specific competitor brief via founder_local_synthesize
|
|
767
|
+
// Seed with query-specific competitor brief via founder_local_synthesize + web results
|
|
729
768
|
const synthTool = findTool(allTools, "founder_local_synthesize");
|
|
730
769
|
if (synthTool && !toolsFired.includes("founder_local_synthesize")) {
|
|
731
|
-
const seedResult = await callTool(synthTool, { packetType: "competitor_brief", daysBack: 7, query: query.query });
|
|
770
|
+
const seedResult = await callTool(synthTool, { packetType: "competitor_brief", daysBack: 7, query: query.query, lens: query.persona, webResults });
|
|
732
771
|
totalMs += seedResult.ms;
|
|
733
772
|
if (seedResult.ok) {
|
|
734
773
|
toolsFired.push("founder_local_synthesize");
|
|
@@ -740,7 +779,7 @@ async function executeQueryTools(query, allTools) {
|
|
|
740
779
|
// Seed with an important_change packet that shows what changed (our best before/after proxy)
|
|
741
780
|
const synthTool = findTool(allTools, "founder_local_synthesize");
|
|
742
781
|
if (synthTool && !toolsFired.includes("founder_local_synthesize")) {
|
|
743
|
-
const seedResult = await callTool(synthTool, { packetType: "important_change", daysBack: 14, query: query.query });
|
|
782
|
+
const seedResult = await callTool(synthTool, { packetType: "important_change", daysBack: 14, query: query.query, lens: query.persona, webResults });
|
|
744
783
|
totalMs += seedResult.ms;
|
|
745
784
|
if (seedResult.ok) {
|
|
746
785
|
toolsFired.push("founder_local_synthesize");
|
|
@@ -777,8 +816,13 @@ async function executeQueryTools(query, allTools) {
|
|
|
777
816
|
}
|
|
778
817
|
const tool = findTool(allTools, toolName);
|
|
779
818
|
if (tool) {
|
|
780
|
-
// Build minimal args based on tool name patterns
|
|
819
|
+
// Build minimal args based on tool name patterns, inject webResults for synthesize
|
|
781
820
|
const args = buildMinimalArgs(toolName, query);
|
|
821
|
+
if (toolName === "founder_local_synthesize") {
|
|
822
|
+
if (webResults.length > 0)
|
|
823
|
+
args.webResults = webResults;
|
|
824
|
+
args.lens = query.persona;
|
|
825
|
+
}
|
|
782
826
|
const result = await callTool(tool, args);
|
|
783
827
|
totalMs += result.ms;
|
|
784
828
|
if (result.ok) {
|
|
@@ -875,10 +919,18 @@ function buildMinimalArgs(toolName, query) {
|
|
|
875
919
|
return {};
|
|
876
920
|
case "check_mcp_setup":
|
|
877
921
|
return {};
|
|
878
|
-
case "
|
|
922
|
+
case "founder_packet_validate":
|
|
923
|
+
return { query: query.query };
|
|
924
|
+
case "search_all_knowledge":
|
|
925
|
+
return { query: query.query };
|
|
926
|
+
case "founder_local_weekly_reset":
|
|
927
|
+
return { daysBack: 7, query: query.query };
|
|
928
|
+
case "export_artifact_packet":
|
|
929
|
+
return { query: query.query };
|
|
930
|
+
case "render_decision_memo":
|
|
931
|
+
return { query: query.query };
|
|
932
|
+
case "start_dogfood_session":
|
|
879
933
|
return { query: query.query };
|
|
880
|
-
case "build_research_digest":
|
|
881
|
-
return { topic: query.query };
|
|
882
934
|
case "get_project_context":
|
|
883
935
|
return {};
|
|
884
936
|
case "compress_or_expand_text":
|