@productbrain/mcp 0.0.1-beta.71 → 0.0.1-beta.73
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/{chunk-2GMFQHAF.js → chunk-2BHEXDVG.js} +1214 -780
- package/dist/chunk-2BHEXDVG.js.map +1 -0
- package/dist/{chunk-TH5AUVVM.js → chunk-MFH4WG3T.js} +19 -42
- package/dist/chunk-MFH4WG3T.js.map +1 -0
- package/dist/http.js +2 -2
- package/dist/index.js +2 -2
- package/dist/{smart-capture-Q64ZXK65.js → smart-capture-P4CPOIFW.js} +2 -2
- package/package.json +1 -1
- package/dist/chunk-2GMFQHAF.js.map +0 -1
- package/dist/chunk-TH5AUVVM.js.map +0 -1
- /package/dist/{smart-capture-Q64ZXK65.js.map → smart-capture-P4CPOIFW.js.map} +0 -0
|
@@ -675,7 +675,6 @@ var CLASSIFIABLE_COLLECTIONS = [
|
|
|
675
675
|
"tensions",
|
|
676
676
|
"glossary",
|
|
677
677
|
"insights",
|
|
678
|
-
"bets",
|
|
679
678
|
"features",
|
|
680
679
|
"architecture",
|
|
681
680
|
"business-rules",
|
|
@@ -767,28 +766,6 @@ var COLLECTION_SIGNALS = {
|
|
|
767
766
|
"converge",
|
|
768
767
|
"tam"
|
|
769
768
|
],
|
|
770
|
-
bets: [
|
|
771
|
-
"appetite",
|
|
772
|
-
"rabbit hole",
|
|
773
|
-
"no-go",
|
|
774
|
-
"shape up",
|
|
775
|
-
"done when",
|
|
776
|
-
"shaping session",
|
|
777
|
-
"from static",
|
|
778
|
-
"from storage",
|
|
779
|
-
"from passive",
|
|
780
|
-
"the chain learns",
|
|
781
|
-
"stage-aware",
|
|
782
|
-
"commit friction",
|
|
783
|
-
"interactive knowledge",
|
|
784
|
-
"capture without",
|
|
785
|
-
"front door",
|
|
786
|
-
"response envelope",
|
|
787
|
-
"knowledge organisation",
|
|
788
|
-
"graveyard",
|
|
789
|
-
"remote mcp",
|
|
790
|
-
"coaching service"
|
|
791
|
-
],
|
|
792
769
|
features: [
|
|
793
770
|
"feature",
|
|
794
771
|
"capability",
|
|
@@ -1569,19 +1546,6 @@ var PROFILES = /* @__PURE__ */ new Map([
|
|
|
1569
1546
|
COMMON_CHECKS.diverseRelations
|
|
1570
1547
|
]
|
|
1571
1548
|
}],
|
|
1572
|
-
["bets", {
|
|
1573
|
-
// BET-chain-native-constellation, DEC-70 (structuredContent), STA-1 (constellation pattern)
|
|
1574
|
-
governedDraft: false,
|
|
1575
|
-
descriptionField: "problem",
|
|
1576
|
-
defaults: [],
|
|
1577
|
-
recommendedRelationTypes: ["part_of", "constrains", "informs", "depends_on", "related_to"],
|
|
1578
|
-
qualityChecks: [
|
|
1579
|
-
COMMON_CHECKS.clearName,
|
|
1580
|
-
COMMON_CHECKS.hasDescription,
|
|
1581
|
-
COMMON_CHECKS.hasRelations,
|
|
1582
|
-
COMMON_CHECKS.hasType
|
|
1583
|
-
]
|
|
1584
|
-
}],
|
|
1585
1549
|
["maps", {
|
|
1586
1550
|
governedDraft: false,
|
|
1587
1551
|
descriptionField: "description",
|
|
@@ -2210,7 +2174,7 @@ function registerSmartCaptureTools(server) {
|
|
|
2210
2174
|
"capture",
|
|
2211
2175
|
{
|
|
2212
2176
|
title: "Capture",
|
|
2213
|
-
description: "The single tool for creating knowledge entries. Creates an entry, auto-links related entries, and returns a quality scorecard \u2014 all in one call. Provide a name and description; `collection` is optional when `capture-without-thinking` is enabled.\n\nSupported collections with smart profiles: tensions, business-rules, glossary, decisions, features, audiences, strategy, standards, maps,
|
|
2177
|
+
description: "The single tool for creating knowledge entries. Creates an entry, auto-links related entries, and returns a quality scorecard \u2014 all in one call. Provide a name and description; `collection` is optional when `capture-without-thinking` is enabled.\n\nSupported collections with smart profiles: tensions, business-rules, glossary, decisions, features, audiences, strategy, standards, maps, chains, insights, assumptions, principles, tracking-events.\nAll other collections get an ENT-{random} ID and sensible defaults.\n\n**Explicit data:** When you know the schema, pass `data: { field: value }` to set fields directly. Top-level `name` and `description` always win for those fields. `data` wins over inference for all other fields.\n\n**Compound capture:** Pass `links` to create relations in the same call (skips auto-link discovery). In Open mode, entries commit by default when `autoCommit` is omitted. Pass `autoCommit: true` to promote the entry from draft to SSOT immediately after linking when you want to be explicit. Governed collections (glossary, business-rules, principles, standards, strategy, features, architecture) will warn but still commit \u2014 use only when you're certain.\n\nEntries are created as `draft` first, then may publish immediately depending on governance and `autoCommit`. Use `update-entry` for post-creation adjustments.",
|
|
2214
2178
|
inputSchema: captureSchema.shape,
|
|
2215
2179
|
annotations: { readOnlyHint: false, destructiveHint: false, openWorldHint: false }
|
|
2216
2180
|
},
|
|
@@ -2234,7 +2198,7 @@ function registerSmartCaptureTools(server) {
|
|
|
2234
2198
|
if (resolution.earlyResult) {
|
|
2235
2199
|
return resolution.earlyResult;
|
|
2236
2200
|
}
|
|
2237
|
-
|
|
2201
|
+
let resolvedCollection = resolution.resolvedCollection;
|
|
2238
2202
|
const classifierMeta = resolution.classifierMeta;
|
|
2239
2203
|
if (!resolvedCollection) {
|
|
2240
2204
|
return buildCollectionRequiredResult();
|
|
@@ -2310,6 +2274,19 @@ Or use \`collections action=list\` to see available collections.`
|
|
|
2310
2274
|
}
|
|
2311
2275
|
}
|
|
2312
2276
|
data[profile.descriptionField || "description"] = description;
|
|
2277
|
+
const isBetCapture = canonicalKey === "bet";
|
|
2278
|
+
if (isBetCapture) {
|
|
2279
|
+
data.chainTypeId = "bet";
|
|
2280
|
+
const betContentFields = ["problem", "appetite", "elements", "architecture", "rabbitHoles", "noGos", "done_when", "buildContract", "solution"];
|
|
2281
|
+
const betLinks = {};
|
|
2282
|
+
for (const field of betContentFields) {
|
|
2283
|
+
if (data[field] !== void 0) {
|
|
2284
|
+
betLinks[field] = data[field];
|
|
2285
|
+
delete data[field];
|
|
2286
|
+
}
|
|
2287
|
+
}
|
|
2288
|
+
data.links = betLinks;
|
|
2289
|
+
}
|
|
2313
2290
|
const status = "draft";
|
|
2314
2291
|
const agentId = getAgentSessionId();
|
|
2315
2292
|
let finalEntryId;
|
|
@@ -2543,7 +2520,7 @@ Use \`entries action=get\` to inspect the existing entry, or \`update-entry\` to
|
|
|
2543
2520
|
}
|
|
2544
2521
|
}
|
|
2545
2522
|
const appUrl = process.env.PRODUCTBRAIN_APP_URL ?? "https://productbrain.io";
|
|
2546
|
-
const studioUrl = resolvedCollection === "
|
|
2523
|
+
const studioUrl = resolvedCollection === "chains" ? `${appUrl.replace(/\/$/, "")}/w/${wsCtx.workspaceSlug}/studio/${internalId}` : void 0;
|
|
2547
2524
|
if (studioUrl) {
|
|
2548
2525
|
lines.push("");
|
|
2549
2526
|
lines.push(`**View in Studio:** ${studioUrl}`);
|
|
@@ -2598,12 +2575,12 @@ Use \`entries action=get\` to inspect the existing entry, or \`update-entry\` to
|
|
|
2598
2575
|
lines.push("");
|
|
2599
2576
|
lines.push(`_To improve: \`update-entry entryId="${finalEntryId}"\` to fill missing fields._`);
|
|
2600
2577
|
}
|
|
2601
|
-
const isBetOrGoal =
|
|
2578
|
+
const isBetOrGoal = isBetCapture || resolvedCK === "bet" || resolvedCK === "goal";
|
|
2602
2579
|
const hasStrategyLink = linksCreated.some((l) => l.targetCollection === "strategy");
|
|
2603
2580
|
if (isBetOrGoal && !hasStrategyLink) {
|
|
2604
2581
|
lines.push("");
|
|
2605
2582
|
lines.push(
|
|
2606
|
-
`**Strategy link:** This ${
|
|
2583
|
+
`**Strategy link:** This ${isBetCapture ? "bet" : "goal"} doesn't connect to any strategy entry. Consider linking before commit. Use \`graph action=suggest entryId="${finalEntryId}"\` to find strategy entries to connect to.`
|
|
2607
2584
|
);
|
|
2608
2585
|
await recordSessionActivity({ strategyLinkWarnedForEntryId: internalId });
|
|
2609
2586
|
}
|
|
@@ -3331,4 +3308,4 @@ export {
|
|
|
3331
3308
|
formatRubricCoaching,
|
|
3332
3309
|
formatRubricVerdictSection
|
|
3333
3310
|
};
|
|
3334
|
-
//# sourceMappingURL=chunk-
|
|
3311
|
+
//# sourceMappingURL=chunk-MFH4WG3T.js.map
|