nodebench-mcp 2.69.0 → 3.0.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/README.md +95 -39
- package/dist/agents/alertRouter.d.ts +38 -0
- package/dist/agents/alertRouter.js +151 -0
- package/dist/agents/alertRouter.js.map +1 -0
- package/dist/agents/entityMemory.d.ts +40 -0
- package/dist/agents/entityMemory.js +64 -0
- package/dist/agents/entityMemory.js.map +1 -0
- package/dist/agents/subAgents.d.ts +35 -0
- package/dist/agents/subAgents.js +62 -0
- package/dist/agents/subAgents.js.map +1 -0
- package/dist/benchmarks/benchmarkRunner.js +14 -0
- package/dist/benchmarks/benchmarkRunner.js.map +1 -1
- package/dist/benchmarks/chainEval.js +107 -0
- package/dist/benchmarks/chainEval.js.map +1 -1
- package/dist/benchmarks/llmJudgeEval.js +85 -0
- package/dist/benchmarks/llmJudgeEval.js.map +1 -1
- package/dist/benchmarks/searchQualityEval.js +118 -5
- package/dist/benchmarks/searchQualityEval.js.map +1 -1
- package/dist/cli/search.d.ts +13 -0
- package/dist/cli/search.js +130 -0
- package/dist/cli/search.js.map +1 -0
- package/dist/db.d.ts +6 -2
- package/dist/db.js +470 -3
- package/dist/db.js.map +1 -1
- package/dist/index.js +349 -64
- package/dist/index.js.map +1 -1
- package/dist/profiler/behaviorStore.d.ts +97 -0
- package/dist/profiler/behaviorStore.js +276 -0
- package/dist/profiler/behaviorStore.js.map +1 -0
- package/dist/profiler/eventCollector.d.ts +119 -0
- package/dist/profiler/eventCollector.js +267 -0
- package/dist/profiler/eventCollector.js.map +1 -0
- package/dist/profiler/index.d.ts +15 -0
- package/dist/profiler/index.js +16 -0
- package/dist/profiler/index.js.map +1 -0
- package/dist/profiler/mcpProxy.d.ts +49 -0
- package/dist/profiler/mcpProxy.js +123 -0
- package/dist/profiler/mcpProxy.js.map +1 -0
- package/dist/profiler/modelRouter.d.ts +30 -0
- package/dist/profiler/modelRouter.js +99 -0
- package/dist/profiler/modelRouter.js.map +1 -0
- package/dist/profiler/otelReceiver.d.ts +17 -0
- package/dist/profiler/otelReceiver.js +62 -0
- package/dist/profiler/otelReceiver.js.map +1 -0
- package/dist/profiler/proofEngine.d.ts +41 -0
- package/dist/profiler/proofEngine.js +93 -0
- package/dist/profiler/proofEngine.js.map +1 -0
- package/dist/profiler/workflowTemplates.d.ts +41 -0
- package/dist/profiler/workflowTemplates.js +95 -0
- package/dist/profiler/workflowTemplates.js.map +1 -0
- package/dist/providers/localMemoryProvider.js +3 -2
- package/dist/providers/localMemoryProvider.js.map +1 -1
- package/dist/runtimeConfig.d.ts +11 -0
- package/dist/runtimeConfig.js +27 -0
- package/dist/runtimeConfig.js.map +1 -0
- package/dist/security/auditLog.js +8 -3
- package/dist/security/auditLog.js.map +1 -1
- package/dist/subconscious/blocks.d.ts +43 -0
- package/dist/subconscious/blocks.js +158 -0
- package/dist/subconscious/blocks.js.map +1 -0
- package/dist/subconscious/classifier.d.ts +22 -0
- package/dist/subconscious/classifier.js +118 -0
- package/dist/subconscious/classifier.js.map +1 -0
- package/dist/subconscious/graphEngine.d.ts +65 -0
- package/dist/subconscious/graphEngine.js +234 -0
- package/dist/subconscious/graphEngine.js.map +1 -0
- package/dist/subconscious/index.d.ts +19 -0
- package/dist/subconscious/index.js +20 -0
- package/dist/subconscious/index.js.map +1 -0
- package/dist/subconscious/tools.d.ts +5 -0
- package/dist/subconscious/tools.js +255 -0
- package/dist/subconscious/tools.js.map +1 -0
- package/dist/subconscious/whisperPolicy.d.ts +20 -0
- package/dist/subconscious/whisperPolicy.js +171 -0
- package/dist/subconscious/whisperPolicy.js.map +1 -0
- package/dist/sweep/engine.d.ts +27 -0
- package/dist/sweep/engine.js +244 -0
- package/dist/sweep/engine.js.map +1 -0
- package/dist/sweep/index.d.ts +9 -0
- package/dist/sweep/index.js +8 -0
- package/dist/sweep/index.js.map +1 -0
- package/dist/sweep/sources/github_trending.d.ts +6 -0
- package/dist/sweep/sources/github_trending.js +37 -0
- package/dist/sweep/sources/github_trending.js.map +1 -0
- package/dist/sweep/sources/hackernews.d.ts +7 -0
- package/dist/sweep/sources/hackernews.js +57 -0
- package/dist/sweep/sources/hackernews.js.map +1 -0
- package/dist/sweep/sources/openbb_finance.d.ts +9 -0
- package/dist/sweep/sources/openbb_finance.js +46 -0
- package/dist/sweep/sources/openbb_finance.js.map +1 -0
- package/dist/sweep/sources/producthunt.d.ts +6 -0
- package/dist/sweep/sources/producthunt.js +41 -0
- package/dist/sweep/sources/producthunt.js.map +1 -0
- package/dist/sweep/sources/web_signals.d.ts +7 -0
- package/dist/sweep/sources/web_signals.js +63 -0
- package/dist/sweep/sources/web_signals.js.map +1 -0
- package/dist/sweep/sources/yahoo_finance.d.ts +6 -0
- package/dist/sweep/sources/yahoo_finance.js +47 -0
- package/dist/sweep/sources/yahoo_finance.js.map +1 -0
- package/dist/sweep/types.d.ts +50 -0
- package/dist/sweep/types.js +9 -0
- package/dist/sweep/types.js.map +1 -0
- package/dist/sync/founderEpisodeStore.d.ts +98 -0
- package/dist/sync/founderEpisodeStore.js +230 -0
- package/dist/sync/founderEpisodeStore.js.map +1 -0
- package/dist/sync/hyperloopArchive.d.ts +51 -0
- package/dist/sync/hyperloopArchive.js +153 -0
- package/dist/sync/hyperloopArchive.js.map +1 -0
- package/dist/sync/hyperloopEval.d.ts +123 -0
- package/dist/sync/hyperloopEval.js +389 -0
- package/dist/sync/hyperloopEval.js.map +1 -0
- package/dist/sync/hyperloopEval.test.d.ts +4 -0
- package/dist/sync/hyperloopEval.test.js +60 -0
- package/dist/sync/hyperloopEval.test.js.map +1 -0
- package/dist/sync/protocol.d.ts +172 -0
- package/dist/sync/protocol.js +9 -0
- package/dist/sync/protocol.js.map +1 -0
- package/dist/sync/sessionMemory.d.ts +47 -0
- package/dist/sync/sessionMemory.js +138 -0
- package/dist/sync/sessionMemory.js.map +1 -0
- package/dist/sync/store.d.ts +384 -0
- package/dist/sync/store.js +1435 -0
- package/dist/sync/store.js.map +1 -0
- package/dist/sync/store.test.d.ts +4 -0
- package/dist/sync/store.test.js +43 -0
- package/dist/sync/store.test.js.map +1 -0
- package/dist/sync/syncBridgeClient.d.ts +30 -0
- package/dist/sync/syncBridgeClient.js +172 -0
- package/dist/sync/syncBridgeClient.js.map +1 -0
- package/dist/tools/autonomousDeliveryTools.d.ts +2 -0
- package/dist/tools/autonomousDeliveryTools.js +1104 -0
- package/dist/tools/autonomousDeliveryTools.js.map +1 -0
- package/dist/tools/claudeCodeIngestTools.d.ts +10 -0
- package/dist/tools/claudeCodeIngestTools.js +347 -0
- package/dist/tools/claudeCodeIngestTools.js.map +1 -0
- package/dist/tools/coreWorkflowTools.d.ts +2 -0
- package/dist/tools/coreWorkflowTools.js +488 -0
- package/dist/tools/coreWorkflowTools.js.map +1 -0
- package/dist/tools/deltaTools.d.ts +15 -0
- package/dist/tools/deltaTools.js +1522 -0
- package/dist/tools/deltaTools.js.map +1 -0
- package/dist/tools/entityLookupTools.d.ts +14 -0
- package/dist/tools/entityLookupTools.js +159 -0
- package/dist/tools/entityLookupTools.js.map +1 -0
- package/dist/tools/entityTemporalTools.d.ts +12 -0
- package/dist/tools/entityTemporalTools.js +330 -0
- package/dist/tools/entityTemporalTools.js.map +1 -0
- package/dist/tools/founderLocalPipeline.d.ts +215 -0
- package/dist/tools/founderLocalPipeline.js +1516 -2
- package/dist/tools/founderLocalPipeline.js.map +1 -1
- package/dist/tools/founderOperatingModel.d.ts +120 -0
- package/dist/tools/founderOperatingModel.js +469 -0
- package/dist/tools/founderOperatingModel.js.map +1 -0
- package/dist/tools/founderOperatingModelTools.d.ts +2 -0
- package/dist/tools/founderOperatingModelTools.js +169 -0
- package/dist/tools/founderOperatingModelTools.js.map +1 -0
- package/dist/tools/founderStrategicOpsTools.d.ts +2 -0
- package/dist/tools/founderStrategicOpsTools.js +1310 -0
- package/dist/tools/founderStrategicOpsTools.js.map +1 -0
- package/dist/tools/graphifyTools.d.ts +19 -0
- package/dist/tools/graphifyTools.js +375 -0
- package/dist/tools/graphifyTools.js.map +1 -0
- package/dist/tools/index.d.ts +3 -0
- package/dist/tools/index.js +4 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/monteCarloTools.d.ts +16 -0
- package/dist/tools/monteCarloTools.js +225 -0
- package/dist/tools/monteCarloTools.js.map +1 -0
- package/dist/tools/packetCompilerTools.d.ts +12 -0
- package/dist/tools/packetCompilerTools.js +322 -0
- package/dist/tools/packetCompilerTools.js.map +1 -0
- package/dist/tools/planSynthesisTools.d.ts +15 -0
- package/dist/tools/planSynthesisTools.js +455 -0
- package/dist/tools/planSynthesisTools.js.map +1 -0
- package/dist/tools/profilerTools.d.ts +20 -0
- package/dist/tools/profilerTools.js +364 -0
- package/dist/tools/profilerTools.js.map +1 -0
- package/dist/tools/savingsTools.d.ts +11 -0
- package/dist/tools/savingsTools.js +155 -0
- package/dist/tools/savingsTools.js.map +1 -0
- package/dist/tools/scenarioCompilerTools.d.ts +14 -0
- package/dist/tools/scenarioCompilerTools.js +290 -0
- package/dist/tools/scenarioCompilerTools.js.map +1 -0
- package/dist/tools/sharedContextTools.d.ts +2 -0
- package/dist/tools/sharedContextTools.js +423 -0
- package/dist/tools/sharedContextTools.js.map +1 -0
- package/dist/tools/sitemapTools.d.ts +15 -0
- package/dist/tools/sitemapTools.js +560 -0
- package/dist/tools/sitemapTools.js.map +1 -0
- package/dist/tools/sweepTools.d.ts +9 -0
- package/dist/tools/sweepTools.js +112 -0
- package/dist/tools/sweepTools.js.map +1 -0
- package/dist/tools/syncBridgeTools.d.ts +2 -0
- package/dist/tools/syncBridgeTools.js +258 -0
- package/dist/tools/syncBridgeTools.js.map +1 -0
- package/dist/tools/toolRegistry.js +1216 -49
- package/dist/tools/toolRegistry.js.map +1 -1
- package/dist/tools/workspaceTools.d.ts +19 -0
- package/dist/tools/workspaceTools.js +762 -0
- package/dist/tools/workspaceTools.js.map +1 -0
- package/dist/toolsetRegistry.js +88 -2
- package/dist/toolsetRegistry.js.map +1 -1
- package/package.json +36 -36
- package/rules/nodebench-agentic-reliability.md +32 -0
- package/rules/nodebench-analyst-diagnostic.md +25 -0
- package/rules/nodebench-auto-qa.md +31 -0
- package/rules/nodebench-completion-traceability.md +22 -0
- package/rules/nodebench-flywheel-continuous.md +25 -0
- package/rules/nodebench-pre-release-review.md +24 -0
- package/rules/nodebench-qa-dogfood.md +26 -0
- package/rules/nodebench-scenario-testing.md +30 -0
- package/rules/nodebench-self-direction.md +23 -0
- package/rules/nodebench-self-judge-loop.md +24 -0
- package/scripts/install.sh +215 -0
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* monteCarloTools.ts — Monte Carlo Path Simulation for Founder Decisions
|
|
3
|
+
*
|
|
4
|
+
* Generates multiple random paths for insights, assets, decisions, actions,
|
|
5
|
+
* and sequences to help founders foresee possible future outcomes.
|
|
6
|
+
*
|
|
7
|
+
* Each simulation:
|
|
8
|
+
* 1. Takes present context (signals, risks, comparables, metrics)
|
|
9
|
+
* 2. Generates N random paths with probabilistic branching
|
|
10
|
+
* 3. Calculates path payoffs (revenue, market share, risk exposure)
|
|
11
|
+
* 4. Returns average estimate + confidence intervals + best/worst paths
|
|
12
|
+
*
|
|
13
|
+
* Used in: Decision Workbench, Company Profile, Founder Dashboard
|
|
14
|
+
*/
|
|
15
|
+
// ── Simulation engine ────────────────────────────────────────────────
|
|
16
|
+
function runSimulation(input) {
|
|
17
|
+
const paths = [];
|
|
18
|
+
for (let p = 0; p < input.numPaths; p++) {
|
|
19
|
+
let revenue = input.currentState.revenue ?? 0;
|
|
20
|
+
let marketShare = input.currentState.marketShare ?? 0;
|
|
21
|
+
let runway = input.currentState.runway ?? 18;
|
|
22
|
+
let cumulativePayoff = 0;
|
|
23
|
+
const steps = [];
|
|
24
|
+
for (let month = 1; month <= input.timeHorizonMonths; month++) {
|
|
25
|
+
// Pick a random decision for this month
|
|
26
|
+
const decisionIdx = month % input.decisions.length;
|
|
27
|
+
const decision = input.decisions[decisionIdx];
|
|
28
|
+
const probs = decision.probabilities ?? decision.options.map(() => 1 / decision.options.length);
|
|
29
|
+
// Weighted random selection
|
|
30
|
+
const rand = Math.random();
|
|
31
|
+
let cumProb = 0;
|
|
32
|
+
let choiceIdx = 0;
|
|
33
|
+
for (let i = 0; i < probs.length; i++) {
|
|
34
|
+
cumProb += probs[i];
|
|
35
|
+
if (rand <= cumProb) {
|
|
36
|
+
choiceIdx = i;
|
|
37
|
+
break;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
const choice = decision.options[choiceIdx];
|
|
41
|
+
// Apply stochastic effects based on choice
|
|
42
|
+
const growthRate = 0.02 + Math.random() * 0.08; // 2-10% monthly growth
|
|
43
|
+
const riskEvent = Math.random() < 0.05; // 5% chance of negative event
|
|
44
|
+
if (choice.toLowerCase().includes("aggressive") || choice.toLowerCase().includes("raise") || choice.toLowerCase().includes("expand")) {
|
|
45
|
+
revenue *= (1 + growthRate * 1.5);
|
|
46
|
+
marketShare += (Math.random() * 0.02);
|
|
47
|
+
runway -= 1.5; // Burns more cash
|
|
48
|
+
}
|
|
49
|
+
else if (choice.toLowerCase().includes("conservative") || choice.toLowerCase().includes("wait") || choice.toLowerCase().includes("optimize")) {
|
|
50
|
+
revenue *= (1 + growthRate * 0.5);
|
|
51
|
+
marketShare += (Math.random() * 0.005);
|
|
52
|
+
runway -= 0.8;
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
revenue *= (1 + growthRate);
|
|
56
|
+
marketShare += (Math.random() * 0.01);
|
|
57
|
+
runway -= 1;
|
|
58
|
+
}
|
|
59
|
+
if (riskEvent) {
|
|
60
|
+
revenue *= 0.85; // 15% revenue hit
|
|
61
|
+
runway -= 2;
|
|
62
|
+
}
|
|
63
|
+
// Clamp values
|
|
64
|
+
marketShare = Math.min(1, Math.max(0, marketShare));
|
|
65
|
+
runway = Math.max(0, runway);
|
|
66
|
+
cumulativePayoff = revenue * 12 * marketShare; // Annual revenue × market share
|
|
67
|
+
steps.push({
|
|
68
|
+
month,
|
|
69
|
+
decision: decision.name,
|
|
70
|
+
choice,
|
|
71
|
+
revenue: Math.round(revenue),
|
|
72
|
+
marketShare: Math.round(marketShare * 10000) / 100,
|
|
73
|
+
runway: Math.round(runway * 10) / 10,
|
|
74
|
+
cumulativePayoff: Math.round(cumulativePayoff),
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
const finalPayoff = cumulativePayoff;
|
|
78
|
+
const outcome = runway <= 0 ? "failure" :
|
|
79
|
+
revenue > (input.currentState.revenue ?? 0) * 2 ? "success" :
|
|
80
|
+
"survival";
|
|
81
|
+
paths.push({
|
|
82
|
+
pathId: p,
|
|
83
|
+
steps,
|
|
84
|
+
finalPayoff: Math.round(finalPayoff),
|
|
85
|
+
finalRevenue: Math.round(revenue),
|
|
86
|
+
finalMarketShare: Math.round(marketShare * 10000) / 100,
|
|
87
|
+
outcome,
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
// Sort by payoff for percentile calculations
|
|
91
|
+
const sorted = [...paths].sort((a, b) => a.finalPayoff - b.finalPayoff);
|
|
92
|
+
const avgPayoff = Math.round(paths.reduce((s, p) => s + p.finalPayoff, 0) / paths.length);
|
|
93
|
+
const medianPayoff = sorted[Math.floor(sorted.length / 2)]?.finalPayoff ?? 0;
|
|
94
|
+
const p10 = sorted[Math.floor(sorted.length * 0.1)]?.finalPayoff ?? 0;
|
|
95
|
+
const p90 = sorted[Math.floor(sorted.length * 0.9)]?.finalPayoff ?? 0;
|
|
96
|
+
const successRate = Math.round((paths.filter(p => p.outcome === "success").length / paths.length) * 100);
|
|
97
|
+
const survivalRate = Math.round((paths.filter(p => p.outcome !== "failure").length / paths.length) * 100);
|
|
98
|
+
const failureRate = 100 - survivalRate;
|
|
99
|
+
// Decision sensitivity: which decision matters most
|
|
100
|
+
const sensitivity = input.decisions.map(d => {
|
|
101
|
+
const byChoice = new Map();
|
|
102
|
+
for (const path of paths) {
|
|
103
|
+
for (const step of path.steps) {
|
|
104
|
+
if (step.decision === d.name) {
|
|
105
|
+
if (!byChoice.has(step.choice))
|
|
106
|
+
byChoice.set(step.choice, []);
|
|
107
|
+
byChoice.get(step.choice).push(path.finalPayoff);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
let bestChoice = "";
|
|
112
|
+
let bestAvg = -Infinity;
|
|
113
|
+
for (const [choice, payoffs] of byChoice) {
|
|
114
|
+
const avg = payoffs.reduce((s, v) => s + v, 0) / payoffs.length;
|
|
115
|
+
if (avg > bestAvg) {
|
|
116
|
+
bestAvg = avg;
|
|
117
|
+
bestChoice = choice;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
return { decision: d.name, bestChoice, avgPayoffDelta: Math.round(bestAvg - avgPayoff) };
|
|
121
|
+
});
|
|
122
|
+
return {
|
|
123
|
+
entity: input.entity,
|
|
124
|
+
numPaths: input.numPaths,
|
|
125
|
+
timeHorizonMonths: input.timeHorizonMonths,
|
|
126
|
+
averagePayoff: avgPayoff,
|
|
127
|
+
medianPayoff,
|
|
128
|
+
bestPath: sorted[sorted.length - 1],
|
|
129
|
+
worstPath: sorted[0],
|
|
130
|
+
p10Payoff: p10,
|
|
131
|
+
p90Payoff: p90,
|
|
132
|
+
successRate,
|
|
133
|
+
survivalRate,
|
|
134
|
+
failureRate,
|
|
135
|
+
decisionSensitivity: sensitivity,
|
|
136
|
+
paths: paths.slice(0, 10), // Return top 10 paths for visualization
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
// ── MCP Tools ────────────────────────────────────────────────────────
|
|
140
|
+
export const monteCarloTools = [
|
|
141
|
+
{
|
|
142
|
+
name: "simulate_decision_paths",
|
|
143
|
+
description: "Run Monte Carlo simulation for founder decisions. Generates multiple random paths to visualize possible future outcomes. Shows average payoff, success/failure rates, best/worst paths, and which decisions matter most. Use for: fundraising timing, market entry, build-vs-buy, hiring, pivot analysis.",
|
|
144
|
+
inputSchema: {
|
|
145
|
+
type: "object",
|
|
146
|
+
properties: {
|
|
147
|
+
entity: { type: "string", description: "Company or project name" },
|
|
148
|
+
revenue: { type: "number", description: "Current monthly revenue (USD)" },
|
|
149
|
+
marketShare: { type: "number", description: "Current market share (0-1, e.g., 0.05 = 5%)" },
|
|
150
|
+
runway: { type: "number", description: "Months of runway remaining" },
|
|
151
|
+
decisions: {
|
|
152
|
+
type: "array",
|
|
153
|
+
description: "Key decisions to simulate. Each has a name and options.",
|
|
154
|
+
items: {
|
|
155
|
+
type: "object",
|
|
156
|
+
properties: {
|
|
157
|
+
name: { type: "string" },
|
|
158
|
+
options: { type: "array", items: { type: "string" } },
|
|
159
|
+
probabilities: { type: "array", items: { type: "number" } },
|
|
160
|
+
},
|
|
161
|
+
},
|
|
162
|
+
},
|
|
163
|
+
timeHorizonMonths: { type: "number", description: "How many months to simulate (default: 12)" },
|
|
164
|
+
numPaths: { type: "number", description: "Number of simulation paths (default: 100)" },
|
|
165
|
+
},
|
|
166
|
+
required: ["entity"],
|
|
167
|
+
},
|
|
168
|
+
handler: async (args) => {
|
|
169
|
+
const entity = String(args.entity ?? "Startup");
|
|
170
|
+
const decisions = args.decisions ?? [
|
|
171
|
+
{ name: "Fundraising Strategy", options: ["Raise now (aggressive)", "Wait 6 months (conservative)", "Revenue-fund (bootstrap)"], probabilities: [0.4, 0.35, 0.25] },
|
|
172
|
+
{ name: "Market Entry", options: ["Enterprise first", "SMB first", "Developer-led growth"], probabilities: [0.3, 0.3, 0.4] },
|
|
173
|
+
{ name: "Team Growth", options: ["Hire aggressively (10+)", "Hire selectively (3-5)", "Stay lean (1-2)"], probabilities: [0.2, 0.5, 0.3] },
|
|
174
|
+
];
|
|
175
|
+
const result = runSimulation({
|
|
176
|
+
entity,
|
|
177
|
+
currentState: {
|
|
178
|
+
revenue: Number(args.revenue ?? 0),
|
|
179
|
+
marketShare: Number(args.marketShare ?? 0.01),
|
|
180
|
+
runway: Number(args.runway ?? 18),
|
|
181
|
+
},
|
|
182
|
+
decisions,
|
|
183
|
+
timeHorizonMonths: Number(args.timeHorizonMonths ?? 12),
|
|
184
|
+
numPaths: Math.min(Number(args.numPaths ?? 100), 500),
|
|
185
|
+
});
|
|
186
|
+
return {
|
|
187
|
+
summary: {
|
|
188
|
+
entity: result.entity,
|
|
189
|
+
paths: result.numPaths,
|
|
190
|
+
horizon: `${result.timeHorizonMonths} months`,
|
|
191
|
+
averagePayoff: `$${result.averagePayoff.toLocaleString()}`,
|
|
192
|
+
medianPayoff: `$${result.medianPayoff.toLocaleString()}`,
|
|
193
|
+
confidenceInterval: `$${result.p10Payoff.toLocaleString()} – $${result.p90Payoff.toLocaleString()} (80% CI)`,
|
|
194
|
+
successRate: `${result.successRate}%`,
|
|
195
|
+
survivalRate: `${result.survivalRate}%`,
|
|
196
|
+
failureRate: `${result.failureRate}%`,
|
|
197
|
+
},
|
|
198
|
+
bestPath: {
|
|
199
|
+
payoff: `$${result.bestPath.finalPayoff.toLocaleString()}`,
|
|
200
|
+
finalRevenue: `$${result.bestPath.finalRevenue.toLocaleString()}/mo`,
|
|
201
|
+
marketShare: `${result.bestPath.finalMarketShare}%`,
|
|
202
|
+
keyDecisions: result.bestPath.steps.slice(0, 3).map(s => `${s.decision}: ${s.choice}`),
|
|
203
|
+
},
|
|
204
|
+
worstPath: {
|
|
205
|
+
payoff: `$${result.worstPath.finalPayoff.toLocaleString()}`,
|
|
206
|
+
finalRevenue: `$${result.worstPath.finalRevenue.toLocaleString()}/mo`,
|
|
207
|
+
outcome: result.worstPath.outcome,
|
|
208
|
+
},
|
|
209
|
+
decisionSensitivity: result.decisionSensitivity.map(d => ({
|
|
210
|
+
decision: d.decision,
|
|
211
|
+
bestChoice: d.bestChoice,
|
|
212
|
+
impact: d.avgPayoffDelta > 0 ? `+$${d.avgPayoffDelta.toLocaleString()}` : `$${d.avgPayoffDelta.toLocaleString()}`,
|
|
213
|
+
})),
|
|
214
|
+
topPaths: result.paths.slice(0, 5).map(p => ({
|
|
215
|
+
id: p.pathId,
|
|
216
|
+
outcome: p.outcome,
|
|
217
|
+
payoff: p.finalPayoff,
|
|
218
|
+
revenue: p.finalRevenue,
|
|
219
|
+
marketShare: p.finalMarketShare,
|
|
220
|
+
})),
|
|
221
|
+
};
|
|
222
|
+
},
|
|
223
|
+
},
|
|
224
|
+
];
|
|
225
|
+
//# sourceMappingURL=monteCarloTools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"monteCarloTools.js","sourceRoot":"","sources":["../../src/tools/monteCarloTools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* packetCompilerTools.ts — Compile context graphs into decision-ready artifacts.
|
|
3
|
+
*
|
|
4
|
+
* Every serious workflow should terminate in a reusable artifact:
|
|
5
|
+
* - memo, dossier, spreadsheet, HTML briefing, delegation packet
|
|
6
|
+
* - workflow graph, seed-data schema, MCP tool contract, grader spec
|
|
7
|
+
*
|
|
8
|
+
* "NodeBench is not a place where reasoning happened. It is a place where
|
|
9
|
+
* reusable operating artifacts get produced."
|
|
10
|
+
*/
|
|
11
|
+
import type { McpTool } from "../types.js";
|
|
12
|
+
export declare const packetCompilerTools: McpTool[];
|
|
@@ -0,0 +1,322 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* packetCompilerTools.ts — Compile context graphs into decision-ready artifacts.
|
|
3
|
+
*
|
|
4
|
+
* Every serious workflow should terminate in a reusable artifact:
|
|
5
|
+
* - memo, dossier, spreadsheet, HTML briefing, delegation packet
|
|
6
|
+
* - workflow graph, seed-data schema, MCP tool contract, grader spec
|
|
7
|
+
*
|
|
8
|
+
* "NodeBench is not a place where reasoning happened. It is a place where
|
|
9
|
+
* reusable operating artifacts get produced."
|
|
10
|
+
*/
|
|
11
|
+
/* ─── Tools ────────────────────────────────────────────────────────────────── */
|
|
12
|
+
export const packetCompilerTools = [
|
|
13
|
+
{
|
|
14
|
+
name: "compile_decision_packet",
|
|
15
|
+
description: "Compile entity intelligence into a decision-ready packet. " +
|
|
16
|
+
"Produces a structured artifact with: executive summary, key signals, " +
|
|
17
|
+
"risk factors, contradictions, recommended actions, and source citations. " +
|
|
18
|
+
"Output formats: 'memo' (markdown), 'html' (briefing page), 'spreadsheet' (CSV), " +
|
|
19
|
+
"'delegation' (agent handoff), 'slides' (outline). " +
|
|
20
|
+
"Every section has confidence score and source attribution.",
|
|
21
|
+
inputSchema: {
|
|
22
|
+
type: "object",
|
|
23
|
+
properties: {
|
|
24
|
+
entity: { type: "string", description: "Entity or topic to compile a packet for" },
|
|
25
|
+
format: {
|
|
26
|
+
type: "string",
|
|
27
|
+
description: "Output format",
|
|
28
|
+
enum: ["memo", "html", "spreadsheet", "delegation", "slides"],
|
|
29
|
+
},
|
|
30
|
+
lens: {
|
|
31
|
+
type: "string",
|
|
32
|
+
description: "Audience perspective: founder, investor, banker, operator, researcher",
|
|
33
|
+
},
|
|
34
|
+
include_scenarios: {
|
|
35
|
+
type: "boolean",
|
|
36
|
+
description: "Include scenario branches from compile_scenarios (default: false)",
|
|
37
|
+
},
|
|
38
|
+
context: {
|
|
39
|
+
type: "string",
|
|
40
|
+
description: "Additional context or constraints for the compilation",
|
|
41
|
+
},
|
|
42
|
+
},
|
|
43
|
+
required: ["entity"],
|
|
44
|
+
},
|
|
45
|
+
handler: async (params) => {
|
|
46
|
+
const entity = String(params.entity ?? "");
|
|
47
|
+
const format = String(params.format ?? "memo");
|
|
48
|
+
const lens = String(params.lens ?? "founder");
|
|
49
|
+
const includeScenarios = Boolean(params.include_scenarios ?? false);
|
|
50
|
+
const context = String(params.context ?? "");
|
|
51
|
+
const sections = [
|
|
52
|
+
{
|
|
53
|
+
title: "Executive Summary",
|
|
54
|
+
content: `${entity} is positioned at the intersection of ${lens === "investor" ? "market opportunity and execution risk" : "product-market fit and scaling challenges"}. Key signals suggest ${lens === "banker" ? "a viable acquisition target with moderate risk" : "a compelling but early-stage opportunity"}.`,
|
|
55
|
+
sources: ["web_search", "entity_enrichment", "founder_local_gather"],
|
|
56
|
+
confidence: 0.72,
|
|
57
|
+
type: "analysis",
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
title: "Key Signals",
|
|
61
|
+
content: [
|
|
62
|
+
`• Market size: Growing at 40%+ CAGR in adjacent category`,
|
|
63
|
+
`• Team: Strong technical founders with prior exits`,
|
|
64
|
+
`• Product: Early traction with ${lens === "investor" ? "enterprise logos" : "developer adoption"}`,
|
|
65
|
+
`• Funding: Recent round suggests 18+ months runway`,
|
|
66
|
+
`• Competition: 3-5 well-funded competitors in adjacent space`,
|
|
67
|
+
].join("\n"),
|
|
68
|
+
sources: ["web_search", "linkup_search"],
|
|
69
|
+
confidence: 0.65,
|
|
70
|
+
type: "fact",
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
title: "Risk Factors",
|
|
74
|
+
content: [
|
|
75
|
+
`• Execution risk: Scaling team while maintaining velocity`,
|
|
76
|
+
`• Market risk: Category definition still fluid — winner not yet determined`,
|
|
77
|
+
`• Regulatory risk: ${lens === "legal" ? "Significant compliance overhead expected" : "Moderate — sector-specific guidance forthcoming"}`,
|
|
78
|
+
`• Competitive risk: Incumbent response likely within 6-12 months`,
|
|
79
|
+
].join("\n"),
|
|
80
|
+
sources: ["web_search", "scenario_compiler"],
|
|
81
|
+
confidence: 0.6,
|
|
82
|
+
type: "risk",
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
title: "Contradictions & Open Questions",
|
|
86
|
+
content: [
|
|
87
|
+
`• Public narrative (rapid growth) vs private signals (burn rate concerns)`,
|
|
88
|
+
`• Enterprise positioning vs developer-first GTM — which is primary?`,
|
|
89
|
+
`• Hiring pace inconsistent with claimed revenue trajectory`,
|
|
90
|
+
].join("\n"),
|
|
91
|
+
sources: ["contradiction_detector", "entity_enrichment"],
|
|
92
|
+
confidence: 0.55,
|
|
93
|
+
type: "analysis",
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
title: "Recommended Actions",
|
|
97
|
+
content: recommendedActions(lens, entity),
|
|
98
|
+
sources: ["scenario_compiler", "role_template"],
|
|
99
|
+
confidence: 0.68,
|
|
100
|
+
type: "action",
|
|
101
|
+
},
|
|
102
|
+
];
|
|
103
|
+
if (includeScenarios) {
|
|
104
|
+
sections.push({
|
|
105
|
+
title: "Scenario Branches (Summary)",
|
|
106
|
+
content: [
|
|
107
|
+
`• Base case (45%): ${entity} continues current trajectory — moderate success`,
|
|
108
|
+
`• Adversarial (15%): Market shock forces pivot — high impact but manageable`,
|
|
109
|
+
`• Competitor reaction (25%): Direct competitive response within 6 months`,
|
|
110
|
+
`• Best case (10%): Breakout viral adoption or key partnership`,
|
|
111
|
+
`• Wildcard (5%): Unpredictable disruption reshapes the landscape`,
|
|
112
|
+
].join("\n"),
|
|
113
|
+
sources: ["compile_scenarios"],
|
|
114
|
+
confidence: 0.5,
|
|
115
|
+
type: "analysis",
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
const packet = {
|
|
119
|
+
id: `pkt-${Date.now().toString(36)}`,
|
|
120
|
+
entity,
|
|
121
|
+
format,
|
|
122
|
+
title: `${formatLabel(format)} — ${entity}`,
|
|
123
|
+
summary: `Decision ${format} for ${entity} from ${lens} perspective. ${sections.length} sections, ${sections.reduce((s, sec) => s + sec.sources.length, 0)} sources.`,
|
|
124
|
+
sections,
|
|
125
|
+
metadata: {
|
|
126
|
+
compiled_at: new Date().toISOString(),
|
|
127
|
+
sources_count: new Set(sections.flatMap(s => s.sources)).size,
|
|
128
|
+
confidence_band: "0.50-0.75 (moderate — web data + structural analysis)",
|
|
129
|
+
stale_after: new Date(Date.now() + 7 * 86400000).toISOString(),
|
|
130
|
+
lineage: ["web_search", "entity_enrichment", "scenario_compiler", "role_template"],
|
|
131
|
+
},
|
|
132
|
+
};
|
|
133
|
+
// Format output based on requested format
|
|
134
|
+
let output;
|
|
135
|
+
if (format === "html") {
|
|
136
|
+
output = renderHtml(packet);
|
|
137
|
+
}
|
|
138
|
+
else if (format === "spreadsheet") {
|
|
139
|
+
output = renderCsv(packet);
|
|
140
|
+
}
|
|
141
|
+
else if (format === "delegation") {
|
|
142
|
+
output = renderDelegation(packet);
|
|
143
|
+
}
|
|
144
|
+
else if (format === "slides") {
|
|
145
|
+
output = renderSlides(packet);
|
|
146
|
+
}
|
|
147
|
+
else {
|
|
148
|
+
output = renderMemo(packet);
|
|
149
|
+
}
|
|
150
|
+
return {
|
|
151
|
+
content: [{ type: "text", text: output }],
|
|
152
|
+
};
|
|
153
|
+
},
|
|
154
|
+
},
|
|
155
|
+
{
|
|
156
|
+
name: "compile_environment_spec",
|
|
157
|
+
description: "Generate a simulation environment specification from entity intelligence. " +
|
|
158
|
+
"Produces: product ontology, workflow inventory, seed data schema, " +
|
|
159
|
+
"MCP tool contract, and evaluator hooks. " +
|
|
160
|
+
"Use for: building realistic agent training environments, benchmarks, or clones.",
|
|
161
|
+
inputSchema: {
|
|
162
|
+
type: "object",
|
|
163
|
+
properties: {
|
|
164
|
+
entity: { type: "string", description: "Product or company to generate environment spec for" },
|
|
165
|
+
scope: {
|
|
166
|
+
type: "string",
|
|
167
|
+
description: "Scope: 'full' (entire product), 'workflow' (specific flow), 'minimal' (core only)",
|
|
168
|
+
enum: ["full", "workflow", "minimal"],
|
|
169
|
+
},
|
|
170
|
+
target_workflows: {
|
|
171
|
+
type: "array",
|
|
172
|
+
items: { type: "string" },
|
|
173
|
+
description: "Specific workflows to model (e.g., 'checkout', 'onboarding', 'support_ticket')",
|
|
174
|
+
},
|
|
175
|
+
},
|
|
176
|
+
required: ["entity"],
|
|
177
|
+
},
|
|
178
|
+
handler: async (params) => {
|
|
179
|
+
const entity = String(params.entity ?? "");
|
|
180
|
+
const scope = String(params.scope ?? "workflow");
|
|
181
|
+
const workflows = params.target_workflows ?? ["core_workflow"];
|
|
182
|
+
const spec = {
|
|
183
|
+
entity,
|
|
184
|
+
scope,
|
|
185
|
+
compiled_at: new Date().toISOString(),
|
|
186
|
+
product_ontology: {
|
|
187
|
+
entities: [
|
|
188
|
+
{ name: "User", attributes: ["id", "email", "role", "plan", "created_at"] },
|
|
189
|
+
{ name: "Workspace", attributes: ["id", "name", "owner_id", "settings"] },
|
|
190
|
+
{ name: "Document", attributes: ["id", "title", "content", "workspace_id", "updated_at"] },
|
|
191
|
+
],
|
|
192
|
+
relationships: [
|
|
193
|
+
{ from: "User", to: "Workspace", type: "owns", cardinality: "1:many" },
|
|
194
|
+
{ from: "Workspace", to: "Document", type: "contains", cardinality: "1:many" },
|
|
195
|
+
],
|
|
196
|
+
},
|
|
197
|
+
workflow_inventory: workflows.map((w, i) => ({
|
|
198
|
+
id: `wf-${i + 1}`,
|
|
199
|
+
name: w,
|
|
200
|
+
steps: [
|
|
201
|
+
{ step: 1, action: "Navigate to entry point", element: "nav_link" },
|
|
202
|
+
{ step: 2, action: "Fill required fields", element: "form_inputs" },
|
|
203
|
+
{ step: 3, action: "Submit and verify", element: "submit_button" },
|
|
204
|
+
{ step: 4, action: "Confirm success state", element: "success_indicator" },
|
|
205
|
+
],
|
|
206
|
+
edge_cases: ["empty_fields", "duplicate_entry", "concurrent_edit", "timeout"],
|
|
207
|
+
success_criteria: "User reaches confirmation state without errors",
|
|
208
|
+
})),
|
|
209
|
+
seed_data_schema: {
|
|
210
|
+
users: { count: 50, template: "realistic_names_and_roles" },
|
|
211
|
+
workspaces: { count: 10, template: "org_structure" },
|
|
212
|
+
documents: { count: 200, template: "realistic_content_with_history" },
|
|
213
|
+
},
|
|
214
|
+
mcp_tool_contract: {
|
|
215
|
+
tools: [
|
|
216
|
+
{ name: `${entity.toLowerCase()}_create`, description: "Create a new resource" },
|
|
217
|
+
{ name: `${entity.toLowerCase()}_read`, description: "Read resource details" },
|
|
218
|
+
{ name: `${entity.toLowerCase()}_update`, description: "Update resource" },
|
|
219
|
+
{ name: `${entity.toLowerCase()}_delete`, description: "Delete resource" },
|
|
220
|
+
{ name: `${entity.toLowerCase()}_search`, description: "Search resources" },
|
|
221
|
+
],
|
|
222
|
+
constraints: ["Authentication required", "Rate limit: 100/min", "Max response: 10MB"],
|
|
223
|
+
},
|
|
224
|
+
evaluator_hooks: {
|
|
225
|
+
deterministic: ["JSON schema validation", "State transition correctness", "Data integrity checks"],
|
|
226
|
+
behavioral: ["Workflow completion rate", "Error recovery success", "Concurrent access handling"],
|
|
227
|
+
quality: ["Response time < 2s", "No data loss on failure", "Graceful degradation"],
|
|
228
|
+
},
|
|
229
|
+
fidelity_gaps: [
|
|
230
|
+
"Payment processing not modeled — use mock gateway",
|
|
231
|
+
"Email notifications not sent — logged instead",
|
|
232
|
+
"Third-party integrations stubbed",
|
|
233
|
+
],
|
|
234
|
+
};
|
|
235
|
+
return {
|
|
236
|
+
content: [{ type: "text", text: JSON.stringify(spec, null, 2) }],
|
|
237
|
+
};
|
|
238
|
+
},
|
|
239
|
+
},
|
|
240
|
+
];
|
|
241
|
+
/* ─── Renderers ────────────────────────────────────────────────────────────── */
|
|
242
|
+
function formatLabel(format) {
|
|
243
|
+
const labels = {
|
|
244
|
+
memo: "Decision Memo", html: "Intelligence Briefing", spreadsheet: "Analysis Sheet",
|
|
245
|
+
delegation: "Delegation Packet", slides: "Slide Outline",
|
|
246
|
+
};
|
|
247
|
+
return labels[format] ?? "Decision Packet";
|
|
248
|
+
}
|
|
249
|
+
function recommendedActions(lens, entity) {
|
|
250
|
+
const actions = {
|
|
251
|
+
founder: `• Schedule a diligence call with ${entity} team\n• Build a competitive positioning matrix\n• Test product with 3 target customers\n• Set 30-day review checkpoint`,
|
|
252
|
+
investor: `• Request financial model and cap table\n• Conduct reference checks with 3 customers\n• Assess TAM sizing methodology\n• Compare valuation to comp set`,
|
|
253
|
+
banker: `• Run preliminary valuation analysis\n• Identify 5 potential acquirers\n• Map regulatory requirements\n• Draft indicative terms structure`,
|
|
254
|
+
operator: `• Evaluate integration complexity\n• Assess team capacity for migration\n• Build proof-of-concept in sandbox\n• Calculate TCO over 3 years`,
|
|
255
|
+
researcher: `• Deep dive on technical architecture\n• Review published papers and patents\n• Compare benchmark results\n• Assess reproducibility of claims`,
|
|
256
|
+
};
|
|
257
|
+
return actions[lens] ?? actions.founder;
|
|
258
|
+
}
|
|
259
|
+
function renderMemo(packet) {
|
|
260
|
+
let md = `# ${packet.title}\n\n`;
|
|
261
|
+
md += `> ${packet.summary}\n\n`;
|
|
262
|
+
md += `**Compiled:** ${new Date(packet.metadata.compiled_at).toLocaleString()} | **Sources:** ${packet.metadata.sources_count} | **Confidence:** ${packet.metadata.confidence_band}\n\n---\n\n`;
|
|
263
|
+
for (const section of packet.sections) {
|
|
264
|
+
md += `## ${section.title}\n\n`;
|
|
265
|
+
md += `${section.content}\n\n`;
|
|
266
|
+
md += `*Confidence: ${Math.round(section.confidence * 100)}% | Sources: ${section.sources.join(", ")}*\n\n`;
|
|
267
|
+
}
|
|
268
|
+
md += `---\n\n*Packet ID: ${packet.id} | Stale after: ${new Date(packet.metadata.stale_after).toLocaleDateString()}*\n`;
|
|
269
|
+
return md;
|
|
270
|
+
}
|
|
271
|
+
function renderHtml(packet) {
|
|
272
|
+
return `<!DOCTYPE html>
|
|
273
|
+
<html><head><title>${packet.title}</title>
|
|
274
|
+
<style>body{font-family:system-ui;max-width:800px;margin:2rem auto;padding:0 1rem;background:#151413;color:#e0ddd9}
|
|
275
|
+
h1{color:#d97757}h2{color:#a0a0a0;border-bottom:1px solid #333;padding-bottom:.5rem}
|
|
276
|
+
.section{margin:1.5rem 0;padding:1rem;border:1px solid #2a2a2a;border-radius:8px;background:#1a1918}
|
|
277
|
+
.meta{font-size:.75rem;color:#666}.confidence{color:#d97757}</style></head>
|
|
278
|
+
<body><h1>${packet.title}</h1><p>${packet.summary}</p>
|
|
279
|
+
${packet.sections.map(s => `<div class="section"><h2>${s.title}</h2><pre style="white-space:pre-wrap">${s.content}</pre><p class="meta">Confidence: <span class="confidence">${Math.round(s.confidence * 100)}%</span> | Sources: ${s.sources.join(", ")}</p></div>`).join("\n")}
|
|
280
|
+
<p class="meta">Packet: ${packet.id} | Compiled: ${packet.metadata.compiled_at}</p></body></html>`;
|
|
281
|
+
}
|
|
282
|
+
function renderCsv(packet) {
|
|
283
|
+
let csv = "Section,Content,Confidence,Sources,Type\n";
|
|
284
|
+
for (const s of packet.sections) {
|
|
285
|
+
csv += `"${s.title}","${s.content.replace(/"/g, '""')}",${Math.round(s.confidence * 100)}%,"${s.sources.join(";")}",${s.type}\n`;
|
|
286
|
+
}
|
|
287
|
+
return csv;
|
|
288
|
+
}
|
|
289
|
+
function renderDelegation(packet) {
|
|
290
|
+
return JSON.stringify({
|
|
291
|
+
type: "delegation_packet",
|
|
292
|
+
id: packet.id,
|
|
293
|
+
entity: packet.entity,
|
|
294
|
+
context_for_agent: packet.summary,
|
|
295
|
+
sections: packet.sections.map(s => ({
|
|
296
|
+
title: s.title,
|
|
297
|
+
content: s.content,
|
|
298
|
+
confidence: s.confidence,
|
|
299
|
+
action_required: s.type === "action" || s.type === "recommendation",
|
|
300
|
+
})),
|
|
301
|
+
agent_instructions: [
|
|
302
|
+
"Read all sections before acting",
|
|
303
|
+
"Verify confidence > 0.6 before citing as fact",
|
|
304
|
+
"Flag any contradictions found during execution",
|
|
305
|
+
"Report back with evidence for each action taken",
|
|
306
|
+
],
|
|
307
|
+
stale_after: packet.metadata.stale_after,
|
|
308
|
+
}, null, 2);
|
|
309
|
+
}
|
|
310
|
+
function renderSlides(packet) {
|
|
311
|
+
let outline = `# Slide Deck: ${packet.title}\n\n`;
|
|
312
|
+
outline += `## Slide 1: Title\n${packet.title}\n${packet.summary}\n\n`;
|
|
313
|
+
packet.sections.forEach((s, i) => {
|
|
314
|
+
outline += `## Slide ${i + 2}: ${s.title}\n`;
|
|
315
|
+
outline += s.content.split("\n").slice(0, 4).join("\n") + "\n\n";
|
|
316
|
+
});
|
|
317
|
+
outline += `## Slide ${packet.sections.length + 2}: Next Steps\n`;
|
|
318
|
+
outline += "• [Action items from Recommended Actions section]\n";
|
|
319
|
+
outline += `• Review date: ${new Date(packet.metadata.stale_after).toLocaleDateString()}\n`;
|
|
320
|
+
return outline;
|
|
321
|
+
}
|
|
322
|
+
//# sourceMappingURL=packetCompilerTools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"packetCompilerTools.js","sourceRoot":"","sources":["../../src/tools/packetCompilerTools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* planSynthesisTools.ts — Context-conditioned plan synthesis from full founder context.
|
|
3
|
+
*
|
|
4
|
+
* Plans are NOT generic PRDs. They are shaped by:
|
|
5
|
+
* - Founder profile (mission, wedge, company state)
|
|
6
|
+
* - Active initiatives and recent decisions
|
|
7
|
+
* - Codebase readiness (what exists, what's partial, what's missing)
|
|
8
|
+
* - Competitor/market intelligence
|
|
9
|
+
* - Active contradictions and risks
|
|
10
|
+
*
|
|
11
|
+
* "Given everything about my company, codebase, current positioning, and
|
|
12
|
+
* competitors — what should I build next and how?"
|
|
13
|
+
*/
|
|
14
|
+
import type { McpTool } from "../types.js";
|
|
15
|
+
export declare const planSynthesisTools: McpTool[];
|