@productbrain/mcp 0.0.1-beta.8326 → 0.0.1-beta.8335
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.
|
@@ -3739,7 +3739,7 @@ var preflightLinks = z10.array(z10.object({ type: z10.string().max(200), entryId
|
|
|
3739
3739
|
var entriesSchema = z10.object({
|
|
3740
3740
|
links: preflightLinks.describe("For preflight: proposed context links; saves nothing."),
|
|
3741
3741
|
action: z10.enum(ENTRIES_ACTIONS).describe(
|
|
3742
|
-
"'preflight': inspect structural requirements before composing (requires collection). 'list': browse entries with filters. 'get': fetch one entry by ID. 'batch': fetch multiple entries. 'search': full-text search. 'update': change fields on an existing entry (draft by default). 'commit': accept a draft entry onto the Chain. 'history': audit trail for an entry. 'move': relocate an entry to a different collection (pass `canonicalKey` too for an atomic move+retype). 'verify': mark an entry as verified (lightweight \u2014 no codebase scan; see `quality action=verify-chain` for that). 'still-true': confirm accuracy (
|
|
3742
|
+
"'preflight': inspect structural requirements before composing (requires collection). 'list': browse entries with filters. 'get': fetch one entry by ID. 'batch': fetch multiple entries. 'search': full-text search. 'update': change fields on an existing entry (draft by default). 'commit': accept a draft entry onto the Chain. 'history': audit trail for an entry. 'move': relocate an entry to a different collection (pass `canonicalKey` too for an atomic move+retype). 'verify': mark an entry as verified (lightweight \u2014 no codebase scan; see `quality action=verify-chain` for that). 'still-true': confirm accuracy (the holder of the owning role, else the nearest seated Team Lead) \u2014 distinct from 'verify'; no content, version, or updatedAt change."
|
|
3743
3743
|
),
|
|
3744
3744
|
entryId: z10.string().max(200).optional().describe(
|
|
3745
3745
|
"Entry ID, e.g. '<PREFIX>-<n>'. Required for: get, update, commit, history, move, verify, still-true."
|
|
@@ -3846,7 +3846,7 @@ var ENTRIES_ACTION_SPECS = {
|
|
|
3846
3846
|
history: { params: ["entryId"], description: "entryId is required." },
|
|
3847
3847
|
move: { params: ["entryId", "toCollection", "canonicalKey"], description: "entryId and toCollection are required; canonicalKey is optional (atomic move+retype)." },
|
|
3848
3848
|
verify: { params: ["entryId"], description: "entryId is required." },
|
|
3849
|
-
"still-true": { params: ["entryId"], description: "entryId is required.
|
|
3849
|
+
"still-true": { params: ["entryId"], description: "entryId is required. Allowed for the holder of the owning role; if that role is empty, the nearest seated Team Lead up the team tree." }
|
|
3850
3850
|
};
|
|
3851
3851
|
|
|
3852
3852
|
// src/tools/entries.ts
|
|
@@ -4012,7 +4012,7 @@ function registerEntriesTools(server) {
|
|
|
4012
4012
|
"entries",
|
|
4013
4013
|
{
|
|
4014
4014
|
title: "Entries",
|
|
4015
|
-
description: 'Read and manage entries on the Chain. One tool for the entry lifecycle.\n\n- **preflight**: Inspect a type and selected context before composing. No writes, capacity reservation or authority grant.\n- **list**: Browse entries with optional filters (collection, status, tag, label). Use collections action=list first to discover slugs.\n- **get**: Fetch a single entry by ID \u2014 full record with data, labels, relations, history.\n- **batch**: Fetch multiple entries (max 20) in one call. Same shape as get per entry.\n- **search**: Full-text search across entries. Scope by collection or filter by status.\n- **update**: Change fields on an existing entry (publishes whenever the entry is not draft \u2014 includes archived, not just accepted/active; autoPublish is accepted but ignored).\n- **commit**: Accept a draft entry onto the Chain (SSOT). Runs the contradiction preflight first.\n- **history**: Audit trail for an entry.\n- **move**: Relocate an entry to a different collection; pass canonicalKey too for an atomic move+retype.\n- **verify**: Mark verified (lightweight, no scan \u2014 see `quality action=verify-chain`).\n- **still-true**:
|
|
4015
|
+
description: 'Read and manage entries on the Chain. One tool for the entry lifecycle.\n\n- **preflight**: Inspect a type and selected context before composing. No writes, capacity reservation or authority grant.\n- **list**: Browse entries with optional filters (collection, status, tag, label). Use collections action=list first to discover slugs.\n- **get**: Fetch a single entry by ID \u2014 full record with data, labels, relations, history.\n- **batch**: Fetch multiple entries (max 20) in one call. Same shape as get per entry.\n- **search**: Full-text search across entries. Scope by collection or filter by status.\n- **update**: Change fields on an existing entry (publishes whenever the entry is not draft \u2014 includes archived, not just accepted/active; autoPublish is accepted but ignored).\n- **commit**: Accept a draft entry onto the Chain (SSOT). Runs the contradiction preflight first.\n- **history**: Audit trail for an entry.\n- **move**: Relocate an entry to a different collection; pass canonicalKey too for an atomic move+retype.\n- **verify**: Mark verified (lightweight, no scan \u2014 see `quality action=verify-chain`).\n- **still-true**: confirm accuracy (the holder of the owning role; if that role is empty, the nearest seated Team Lead up the team tree).\n\nUse `entries action=get entryId="..."` to fetch one. Use `entries action=search query="..."` to discover.',
|
|
4016
4016
|
inputSchema: entriesSchema,
|
|
4017
4017
|
// Mixed read/write noun (§3 R3): can't be marked read-only once update/commit/move
|
|
4018
4018
|
// live here too — accepted for the 11-tool default (§9 R3).
|
|
@@ -11809,6 +11809,10 @@ var facilitateSchema = z24.object({
|
|
|
11809
11809
|
"Typed override reason (>= 12 chars) to push a constellation past a coherency hold instead of acknowledging."
|
|
11810
11810
|
)
|
|
11811
11811
|
});
|
|
11812
|
+
function conflictSuffix(c) {
|
|
11813
|
+
const seat = c.routeTarget ? `; seat team ${c.routeTarget.teamEntryId} role ${c.routeTarget.roleEntryId}` : "";
|
|
11814
|
+
return ` [${c.code}${seat}]`;
|
|
11815
|
+
}
|
|
11812
11816
|
function buildCortexUrl(workspaceSlug, entryId) {
|
|
11813
11817
|
const appUrl = process.env.PRODUCTBRAIN_APP_URL ?? "https://work.productbrain.io";
|
|
11814
11818
|
return `${appUrl}/w/${workspaceSlug}/chain?entry=${encodeURIComponent(entryId)}&railTab=context`;
|
|
@@ -11938,7 +11942,7 @@ async function handleCommitConstellation(args) {
|
|
|
11938
11942
|
}
|
|
11939
11943
|
if (code === "CONSTELLATION_COMMIT_REFUSED") {
|
|
11940
11944
|
const conflictIds = Array.isArray(diagnostics?.conflictIds) ? diagnostics.conflictIds : [];
|
|
11941
|
-
const offenderLines = conflictIds.map((c) => `- \`${c.entryId}\` ${c.name}: ${c.reason}`).join("\n");
|
|
11945
|
+
const offenderLines = conflictIds.map((c) => `- \`${c.entryId}\` ${c.name}: ${c.reason}${conflictSuffix(c)}`).join("\n");
|
|
11942
11946
|
return {
|
|
11943
11947
|
content: [{
|
|
11944
11948
|
type: "text",
|
|
@@ -12037,7 +12041,7 @@ No constellation entries were accepted.`
|
|
|
12037
12041
|
if ((result2.conflictIds?.length ?? 0) > 0) {
|
|
12038
12042
|
lines.push("", `**${result2.conflictIds.length} conflicts:**`);
|
|
12039
12043
|
for (const c of result2.conflictIds) {
|
|
12040
|
-
lines.push(`- \`${c.entryId}\` ${c.name}: ${c.reason}`);
|
|
12044
|
+
lines.push(`- \`${c.entryId}\` ${c.name}: ${c.reason}${conflictSuffix(c)}`);
|
|
12041
12045
|
}
|
|
12042
12046
|
}
|
|
12043
12047
|
if ((result2.failedIds?.length ?? 0) > 0) {
|
|
@@ -14626,4 +14630,4 @@ export {
|
|
|
14626
14630
|
createProductBrainServer,
|
|
14627
14631
|
initFeatureFlags
|
|
14628
14632
|
};
|
|
14629
|
-
//# sourceMappingURL=chunk-
|
|
14633
|
+
//# sourceMappingURL=chunk-K5Y2FES2.js.map
|