@productbrain/mcp 0.0.1-beta.191 → 0.0.1-beta.195

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.
@@ -10970,7 +10970,8 @@ function formatWhatNeedsAttentionLines(wna) {
10970
10970
  const hasOverdue = (wna.overdueBets?.length ?? 0) > 0;
10971
10971
  const hasBlocked = (wna.blockedBets?.length ?? 0) > 0;
10972
10972
  const hasCritical = (wna.criticalPathBets?.length ?? 0) > 0;
10973
- if (!hasOverdue && !hasBlocked && !hasCritical) return [];
10973
+ const hasOutcomeBlockers = (wna.overdueOutcomeBlockers?.length ?? 0) > 0;
10974
+ if (!hasOverdue && !hasBlocked && !hasCritical && !hasOutcomeBlockers) return [];
10974
10975
  const lines = ["## What Needs Attention", ""];
10975
10976
  if (hasOverdue) {
10976
10977
  lines.push("**Overdue:**");
@@ -10987,6 +10988,13 @@ function formatWhatNeedsAttentionLines(wna) {
10987
10988
  for (const id of wna.criticalPathBets ?? []) lines.push(`- \`${id}\``);
10988
10989
  lines.push("");
10989
10990
  }
10991
+ if (hasOutcomeBlockers) {
10992
+ lines.push("**Overdue outcome verifications (advisory):**");
10993
+ for (const b of wna.overdueOutcomeBlockers ?? []) {
10994
+ lines.push(`- \`${b.betId}\` \u2192 \`${b.krId}\` (${b.daysOverdue}d overdue \u2014 ${b.scheduledVerificationDate})`);
10995
+ }
10996
+ lines.push("");
10997
+ }
10990
10998
  return lines;
10991
10999
  }
10992
11000
  function formatWhatNeedsAttentionBrief(wna) {
@@ -10994,11 +11002,16 @@ function formatWhatNeedsAttentionBrief(wna) {
10994
11002
  const overdue = wna.overdueBets ?? [];
10995
11003
  const blocked = wna.blockedBets ?? [];
10996
11004
  const critical = wna.criticalPathBets ?? [];
10997
- if (overdue.length === 0 && blocked.length === 0 && critical.length === 0) return [];
11005
+ const outcomeBlockers = wna.overdueOutcomeBlockers ?? [];
11006
+ if (overdue.length === 0 && blocked.length === 0 && critical.length === 0 && outcomeBlockers.length === 0)
11007
+ return [];
10998
11008
  const bullets = [
10999
11009
  ...overdue.slice(0, 2).map((id) => `\`${id}\` (overdue)`),
11000
11010
  ...blocked.slice(0, 2).map((id) => `\`${id}\` (blocked)`),
11001
- ...critical.slice(0, 1).map((id) => `\`${id}\` (critical path)`)
11011
+ ...critical.slice(0, 1).map((id) => `\`${id}\` (critical path)`),
11012
+ ...outcomeBlockers.length > 0 ? [
11013
+ `${outcomeBlockers.length} bet${outcomeBlockers.length > 1 ? "s" : ""} with overdue outcome verification`
11014
+ ] : []
11002
11015
  ].slice(0, 3);
11003
11016
  if (bullets.length === 0) return [];
11004
11017
  const lines = ["**What needs attention:**", ...bullets.map((b) => `- ${b}`), ""];
@@ -15826,6 +15839,69 @@ function readProcessEnvFlag(name) {
15826
15839
  return void 0;
15827
15840
  }
15828
15841
  var KILL = readViteEnvFlag("VITE_FEATURE_KILL_SWITCH") === "true" || readProcessEnvFlag("FEATURE_KILL_SWITCH") === "true";
15842
+ var WS = {
15843
+ RANDY_DEV_PRIMARY: "p5796jhec0nhyp417ekrt8x4w181t41f",
15844
+ RANDY_DEV_SECONDARY: "p5791wr86cj0thx2vxpqavj0mn82rssd",
15845
+ RANDY_PROD_PRIMARY: "mx784e9jjdqhsk2r0098bpvtes84e792",
15846
+ RANDY_PROD_SECONDARY: "mx74q0mkwn4r920q2837qk7dsx84pq60"
15847
+ };
15848
+ var FLAGS = {
15849
+ // WP-355 — MVP unlock: full Spine navigation (all modes + access patterns visible)
15850
+ "mvp-unlock-spine": {
15851
+ default: false,
15852
+ workspaceAllow: [
15853
+ WS.RANDY_DEV_PRIMARY,
15854
+ WS.RANDY_DEV_SECONDARY,
15855
+ WS.RANDY_PROD_PRIMARY,
15856
+ WS.RANDY_PROD_SECONDARY
15857
+ ]
15858
+ },
15859
+ // WP-355 — MVP unlock: Bridge full view (beyond locked /bridge dashboard)
15860
+ "mvp-unlock-bridge-full": {
15861
+ default: false,
15862
+ workspaceAllow: [
15863
+ WS.RANDY_DEV_PRIMARY,
15864
+ WS.RANDY_DEV_SECONDARY,
15865
+ WS.RANDY_PROD_PRIMARY,
15866
+ WS.RANDY_PROD_SECONDARY
15867
+ ]
15868
+ },
15869
+ // WP-355 — MVP unlock: Rail full context (beyond Rail context-only mode)
15870
+ "mvp-unlock-rail-full": {
15871
+ default: false,
15872
+ workspaceAllow: [
15873
+ WS.RANDY_DEV_PRIMARY,
15874
+ WS.RANDY_DEV_SECONDARY,
15875
+ WS.RANDY_PROD_PRIMARY,
15876
+ WS.RANDY_PROD_SECONDARY
15877
+ ]
15878
+ },
15879
+ // WP-355 — MVP unlock: Import surface enabled
15880
+ "mvp-unlock-import": {
15881
+ default: false,
15882
+ workspaceAllow: [
15883
+ WS.RANDY_DEV_PRIMARY,
15884
+ WS.RANDY_DEV_SECONDARY,
15885
+ WS.RANDY_PROD_PRIMARY,
15886
+ WS.RANDY_PROD_SECONDARY
15887
+ ]
15888
+ },
15889
+ // WP-355 — Brain Chat: withheld from MVP by default; allowlisted for Randy's workspaces.
15890
+ "mvp-unlock-brain-chat": {
15891
+ default: false,
15892
+ workspaceAllow: [
15893
+ WS.RANDY_DEV_PRIMARY,
15894
+ WS.RANDY_DEV_SECONDARY,
15895
+ WS.RANDY_PROD_PRIMARY,
15896
+ WS.RANDY_PROD_SECONDARY
15897
+ ]
15898
+ },
15899
+ // WP-373 E3 — Routing Resolver SSOT killswitch.
15900
+ // When true, the new pure resolver short-circuits and mount sites execute the
15901
+ // legacy inline redirect/error logic verbatim. Default false: resolver runs.
15902
+ // FEATURE_KILL_SWITCH env beats this flag (precedence per .claude/rules/feature-flags.md).
15903
+ "routing-resolver-killswitch": false
15904
+ };
15829
15905
 
15830
15906
  // src/featureFlags.ts
15831
15907
  function initFeatureFlags(_posthogClient) {
@@ -15846,4 +15922,4 @@ export {
15846
15922
  createProductBrainServer,
15847
15923
  initFeatureFlags
15848
15924
  };
15849
- //# sourceMappingURL=chunk-GJFGULJV.js.map
15925
+ //# sourceMappingURL=chunk-26IS4THT.js.map