@productbrain/mcp 0.0.1-beta.989 → 0.0.1-beta.997
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.
|
@@ -1802,7 +1802,7 @@ var captureSchema = z2.object({
|
|
|
1802
1802
|
canonicalKey: z2.string().optional().describe("Semantic type (e.g. 'decision', 'tension', 'vision'). Auto-assigned from collection if omitted."),
|
|
1803
1803
|
data: z2.record(z2.unknown()).optional().describe("Explicit field values when you know the schema (e.g. canonical_key, cardinality_rule, required_fields). Merged with inferred values; user-provided wins."),
|
|
1804
1804
|
links: z2.array(z2.object({
|
|
1805
|
-
to: z2.string().describe("Target entry ID (e.g. '
|
|
1805
|
+
to: z2.string().describe("Target entry ID (e.g. '<PREFIX>-<n>')"),
|
|
1806
1806
|
type: z2.string().describe("Relation type (e.g. 'governs', 'related_to', 'informs')")
|
|
1807
1807
|
})).optional().describe("Relations to create after capture. Skips auto-link discovery when provided."),
|
|
1808
1808
|
autoCommit: z2.boolean().optional().describe(
|
|
@@ -1823,7 +1823,8 @@ var captureSchema = z2.object({
|
|
|
1823
1823
|
});
|
|
1824
1824
|
var batchCaptureSchema = z2.object({
|
|
1825
1825
|
entries: z2.array(z2.object({
|
|
1826
|
-
|
|
1826
|
+
// FEAT-160
|
|
1827
|
+
collection: z2.string().optional().describe("Collection slug. Optional \u2014 auto-classified via LLM when omitted."),
|
|
1827
1828
|
name: z2.string().describe("Display name"),
|
|
1828
1829
|
description: z2.string().describe("Full context / definition"),
|
|
1829
1830
|
entryId: entryIdSchema,
|
|
@@ -2259,7 +2260,8 @@ function registerSmartCaptureTools(server) {
|
|
|
2259
2260
|
return {
|
|
2260
2261
|
content: [{
|
|
2261
2262
|
type: "text",
|
|
2262
|
-
|
|
2263
|
+
// BR-111
|
|
2264
|
+
text: `# entryId Not Allowed
|
|
2263
2265
|
|
|
2264
2266
|
\`entryId\` is only valid for \`business-rules\` and \`standards\` collections. For \`${resolvedCollection}\`, omit \`entryId\` \u2014 IDs are auto-generated.`
|
|
2265
2267
|
}],
|
|
@@ -3041,7 +3043,7 @@ Use \`entries action=get\` to inspect the existing entry, or \`update-entry\` to
|
|
|
3041
3043
|
"batch-capture",
|
|
3042
3044
|
{
|
|
3043
3045
|
title: "Batch Capture",
|
|
3044
|
-
description: "Create multiple knowledge entries in one call. Ideal for workspace setup, document ingestion, or any scenario where you need to capture many entries at once.\n\nCollection is optional per entry \u2014 omit it and the LLM classifier auto-routes
|
|
3046
|
+
description: "Create multiple knowledge entries in one call. Ideal for workspace setup, document ingestion, or any scenario where you need to capture many entries at once.\n\nCollection is optional per entry \u2014 omit it and the LLM classifier auto-routes. High/medium confidence entries are created; low confidence entries are skipped and returned with suggested collections for manual review.\n\nEach entry is created independently \u2014 if one fails, the others still succeed. Returns a compact summary instead of per-entry quality scorecards.\n\nAuto-linking runs per entry but contradiction checks and readiness hints are skipped for speed. Use `quality action=check` on individual entries afterward if needed.\n\nPass `autoCommit: false` to keep the whole batch draft-first. If omitted, Open mode workspaces commit by default and consensus/role modes keep drafts.",
|
|
3045
3047
|
inputSchema: batchCaptureSchema.shape,
|
|
3046
3048
|
annotations: { readOnlyHint: false, destructiveHint: false, openWorldHint: false }
|
|
3047
3049
|
},
|
|
@@ -3149,7 +3151,8 @@ Use \`entries action=get\` to inspect the existing entry, or \`update-entry\` to
|
|
|
3149
3151
|
classifiedBy,
|
|
3150
3152
|
confidence,
|
|
3151
3153
|
confidenceTier,
|
|
3152
|
-
|
|
3154
|
+
// BR-111
|
|
3155
|
+
error: `entryId only allowed for business-rules and standards. Omit for ${resolvedSlug}.`
|
|
3153
3156
|
});
|
|
3154
3157
|
continue;
|
|
3155
3158
|
}
|
|
@@ -3843,7 +3846,7 @@ var WORKFLOW_STATUS_VALUES = [
|
|
|
3843
3846
|
];
|
|
3844
3847
|
var LEGACY_WORKFLOW_STATUSES = new Set(WORKFLOW_STATUS_VALUES);
|
|
3845
3848
|
var updateEntrySchema = z3.object({
|
|
3846
|
-
entryId: z3.string().describe("Entry ID to update, e.g. 'T-SUPPLIER', '
|
|
3849
|
+
entryId: z3.string().describe("Entry ID to update, e.g. 'T-SUPPLIER', '<PREFIX>-<n>'"),
|
|
3847
3850
|
name: z3.string().optional().describe("New display name"),
|
|
3848
3851
|
status: z3.union([
|
|
3849
3852
|
z3.enum(["draft", "active", "deprecated", "archived"]),
|
|
@@ -3854,15 +3857,15 @@ var updateEntrySchema = z3.object({
|
|
|
3854
3857
|
order: z3.number().optional().describe("New sort order"),
|
|
3855
3858
|
canonicalKey: z3.string().optional().describe("Semantic type (e.g. 'decision', 'tension'). Only changeable on draft/uncommitted entries."),
|
|
3856
3859
|
autoPublish: z3.boolean().optional().default(false).describe("Only true when user explicitly asks to publish. Default false = draft. Never auto-publish without user confirmation."),
|
|
3857
|
-
changeNote: z3.string().optional().describe("Strongly recommended: short human-readable rationale for WHY this change was made (e.g. 'Aligned description with F1-themed copy
|
|
3860
|
+
changeNote: z3.string().optional().describe("Strongly recommended: short human-readable rationale for WHY this change was made (e.g. 'Aligned description with F1-themed copy'). Surfaces in activity feed and pb get. If omitted, falls back to session purpose or auto-generated field summary."),
|
|
3858
3861
|
sourceRef: z3.string().optional().describe("URI or path of the source document backing this entry. Write-once: can only be set if currently empty."),
|
|
3859
3862
|
sourceExcerpt: z3.string().optional().describe("Verbatim excerpt from the source that backs this entry's claims. Write-once: can only be set if currently empty.")
|
|
3860
3863
|
});
|
|
3861
3864
|
var getHistorySchema = z3.object({
|
|
3862
|
-
entryId: z3.string().describe("Entry ID, e.g. 'T-SUPPLIER', '
|
|
3865
|
+
entryId: z3.string().describe("Entry ID, e.g. 'T-SUPPLIER', '<PREFIX>-<n>'")
|
|
3863
3866
|
});
|
|
3864
3867
|
var commitEntrySchema = z3.object({
|
|
3865
|
-
entryId: z3.string().describe("Entry ID to commit, e.g. 'TEN-abc123', '
|
|
3868
|
+
entryId: z3.string().describe("Entry ID to commit, e.g. 'TEN-abc123', '<PREFIX>-<n>'"),
|
|
3866
3869
|
// WP-316 S3: Preview gate — dry-run mode. Returns would-succeed result, no DB writes.
|
|
3867
3870
|
preview: z3.boolean().optional().describe("If true, validates the commit without writing. Returns what would happen. Default false.")
|
|
3868
3871
|
});
|
|
@@ -4287,7 +4290,7 @@ var entriesSchema = z4.object({
|
|
|
4287
4290
|
action: z4.enum(ENTRIES_ACTIONS).describe(
|
|
4288
4291
|
"'list': browse entries with filters. 'get': fetch one entry by ID. 'batch': fetch multiple entries. 'search': full-text search."
|
|
4289
4292
|
),
|
|
4290
|
-
entryId: z4.string().optional().describe("Entry ID for get action, e.g. '
|
|
4293
|
+
entryId: z4.string().optional().describe("Entry ID for get action, e.g. '<PREFIX>-<n>'"),
|
|
4291
4294
|
entryIds: z4.array(z4.string()).min(1).max(20).optional().describe("Entry IDs for batch action, e.g. ['TYPE-strategy', 'STR-jljeg7']"),
|
|
4292
4295
|
collection: z4.string().optional().describe("Collection slug for list/search, e.g. 'glossary', 'tracking-events', 'business-rules'"),
|
|
4293
4296
|
status: z4.string().optional().describe("Filter: draft | active | deprecated | archived"),
|
|
@@ -4296,7 +4299,7 @@ var entriesSchema = z4.object({
|
|
|
4296
4299
|
query: z4.string().optional().describe("Search text for search action (min 2 characters)")
|
|
4297
4300
|
});
|
|
4298
4301
|
var moveEntrySchema = z4.object({
|
|
4299
|
-
entryId: z4.string().describe("Entry ID to move, e.g. '
|
|
4302
|
+
entryId: z4.string().describe("Entry ID to move, e.g. '<PREFIX>-<n>'"),
|
|
4300
4303
|
toCollection: z4.string().describe("Target collection slug, e.g. 'decisions', 'architecture'")
|
|
4301
4304
|
});
|
|
4302
4305
|
var entriesGetOutputSchema = z4.object({
|
|
@@ -4404,7 +4407,7 @@ function registerEntriesTools(server) {
|
|
|
4404
4407
|
"move-entry",
|
|
4405
4408
|
{
|
|
4406
4409
|
title: "Move Entry",
|
|
4407
|
-
description: 'Move an entry to a different collection. Use when the classifier misrouted or the user wants to reclassify.\n\nExample: `move-entry entryId="
|
|
4410
|
+
description: 'Move an entry to a different collection. Use when the classifier misrouted or the user wants to reclassify.\n\nExample: `move-entry entryId="<PREFIX>-<n>" toCollection="tensions"` reclassifies the entry into the tensions collection.',
|
|
4408
4411
|
inputSchema: moveEntrySchema,
|
|
4409
4412
|
annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false }
|
|
4410
4413
|
},
|
|
@@ -4804,7 +4807,7 @@ var graphSchema = z5.object({
|
|
|
4804
4807
|
action: z5.enum(GRAPH_ACTIONS).describe(
|
|
4805
4808
|
"'find': traverse relations from an entry (graph walk). 'suggest': discover potential connections for an entry."
|
|
4806
4809
|
),
|
|
4807
|
-
entryId: z5.string().describe("Entry ID, e.g. '
|
|
4810
|
+
entryId: z5.string().describe("Entry ID, e.g. '<PREFIX>-<n>'"),
|
|
4808
4811
|
direction: z5.enum(["incoming", "outgoing", "both"]).default("both").optional().describe("For find: 'incoming' = what references this, 'outgoing' = what this references"),
|
|
4809
4812
|
limit: z5.number().min(1).max(20).default(10).optional().describe("For suggest: max suggestions to return"),
|
|
4810
4813
|
depth: z5.number().min(1).max(3).default(2).optional().describe("For suggest: graph traversal depth")
|
|
@@ -5351,12 +5354,13 @@ function epistemicCollectionHint(collectionName) {
|
|
|
5351
5354
|
}
|
|
5352
5355
|
var CONTEXT_ACTIONS = ["gather", "build", "neighborhood", "changes", "chain", "cross-cut", "incremental", "brief"];
|
|
5353
5356
|
var contextSchema = z7.object({
|
|
5357
|
+
// provenance: neighborhood BET-142; changes/chain/cross-cut/incremental/brief BET-239 (E4, E6)
|
|
5354
5358
|
action: z7.enum(CONTEXT_ACTIONS).describe(
|
|
5355
|
-
"'gather': assemble knowledge context (entry graph, task auto-load, journey mode, or graph mode). 'build': structured build spec for an entry. 'neighborhood': typed graph neighborhood for an entry \u2014 blocking chain, dependencies, parent context, tensions, staleness
|
|
5359
|
+
"'gather': assemble knowledge context (entry graph, task auto-load, journey mode, or graph mode). 'build': structured build spec for an entry. 'neighborhood': typed graph neighborhood for an entry \u2014 blocking chain, dependencies, parent context, tensions, staleness. 'changes': entries modified and relations created since a timestamp. Requires 'since' parameter. 'chain': directed traversal along one relation type to depth 4. Requires entryId. Optional: direction, relationType, maxHops (1-4). 'cross-cut': structural aggregation \u2014 all relations of a given type grouped by source collection. Requires 'relationType' parameter. 'incremental': delta since last brief run for a skill. Requires 'skill' parameter. Returns only entries changed since the skill's last brief. 'brief': compound intelligence query. Requires 'briefType' parameter: 'steering' (changes + structure + delta + readiness), 'confidence' (changes + active bets + tensions), or 'delta' (changes + relations since timestamp). Optional 'since' for delta type."
|
|
5356
5360
|
),
|
|
5357
|
-
entryId: z7.string().optional().describe("Entry ID for graph traversal or build, e.g. '
|
|
5361
|
+
entryId: z7.string().optional().describe("Entry ID for graph traversal or build, e.g. '<PREFIX>-<n>'"),
|
|
5358
5362
|
mapEntryId: z7.string().optional().describe(
|
|
5359
|
-
"Journey map entry ID for journey-aware context (gather only). Returns context organised by journey stage. Takes precedence over entryId when both are supplied. Example: '
|
|
5363
|
+
"Journey map entry ID for journey-aware context (gather only). Returns context organised by journey stage. Takes precedence over entryId when both are supplied. Example: '<PREFIX>-<n>'."
|
|
5360
5364
|
),
|
|
5361
5365
|
task: z7.string().optional().describe("Natural-language task description for loading task-relevant governance, binding constraints, and supporting context (gather only)"),
|
|
5362
5366
|
since: z7.string().optional().describe(
|
|
@@ -5382,7 +5386,7 @@ function registerContextTools(server) {
|
|
|
5382
5386
|
"context",
|
|
5383
5387
|
{
|
|
5384
5388
|
title: "Context",
|
|
5385
|
-
description: "Assemble knowledge context in one call. Six actions:\n\n- **gather**: Three modes \u2014 (1) By entry: traverse the graph around a specific entry. (2) By task: load task-relevant governance, binding constraints, and supporting domain knowledge for a natural-language task. (3) Graph mode (entryId + mode='graph'): enhanced traversal with provenance paths.\n- **build**: Structured build spec for any entry \u2014 data, related entries, business rules, glossary terms, chain refs. Use when starting a build. Requires active session.\n- **neighborhood**: Typed graph neighborhood \u2014 blocking chain (what this blocks, 3 hops), dependency chain (what blocks this), parent context (sibling count), related tensions, staleness signal, isolation signal. Fast indexed lookups. Requires entryId.\n- **changes**: Detect entries modified and relations created since a timestamp. Use for incremental updates instead of full traversal. Requires 'since' (ISO 8601). Returns grouped counts by collection. Cap: 200 entries
|
|
5389
|
+
description: "Assemble knowledge context in one call. Six actions:\n\n- **gather**: Three modes \u2014 (1) By entry: traverse the graph around a specific entry. (2) By task: load task-relevant governance, binding constraints, and supporting domain knowledge for a natural-language task. (3) Graph mode (entryId + mode='graph'): enhanced traversal with provenance paths.\n- **build**: Structured build spec for any entry \u2014 data, related entries, business rules, glossary terms, chain refs. Use when starting a build. Requires active session.\n- **neighborhood**: Typed graph neighborhood \u2014 blocking chain (what this blocks, 3 hops), dependency chain (what blocks this), parent context (sibling count), related tensions, staleness signal, isolation signal. Fast indexed lookups. Requires entryId.\n- **changes**: Detect entries modified and relations created since a timestamp. Use for incremental updates instead of full traversal. Requires 'since' (ISO 8601). Returns grouped counts by collection. Cap: 200 entries.\n- **chain**: Directed deep traversal along one relation type to depth 4. Use for dependency analysis, governance chains, strategic alignment. Requires entryId. Optional: direction (outgoing/incoming), relationType, maxHops (1-4). Cycle detection, fan-out cap 10/hop, total cap 100 nodes. Returns tree + edges.\n- **cross-cut**: Structural aggregation \u2014 all relations of a given type across the workspace, grouped by source collection. Use to answer 'show me everything connected by part_of'. Requires 'relationType'. Cap: 500 entries.\n- **incremental**: Delta since last brief run for a skill. Returns only entries changed since the skill's last brief, filtering out previously surfaced entries. Requires 'skill' parameter. Use for steering briefs that need incremental awareness.\n- **brief**: Compound intelligence query composing multiple primitives. Requires 'briefType': 'steering' (7d changes + structure + delta + readiness), 'confidence' (7d changes + active bets + tensions), or 'delta' (changes since custom timestamp). Auto-records brief run for steering.",
|
|
5386
5390
|
inputSchema: contextSchema,
|
|
5387
5391
|
annotations: { readOnlyHint: true, idempotentHint: true, openWorldHint: false }
|
|
5388
5392
|
},
|
|
@@ -6427,13 +6431,18 @@ var fieldSchema = z8.object({
|
|
|
6427
6431
|
displayHint: z8.enum(["hero", "badge", "meta", "section", "hidden", "inline-meta"]).optional().describe("V2 rendering hint: how the field should be displayed in Cortex"),
|
|
6428
6432
|
zone: z8.enum(["header", "body", "meta"]).optional().describe("V2 layout zone: where the field appears in the entry view"),
|
|
6429
6433
|
colorMap: z8.record(z8.string()).optional().describe("V2 value-to-semantic-color mapping, e.g. { critical: 'danger', low: 'success' }"),
|
|
6430
|
-
|
|
6431
|
-
|
|
6434
|
+
// ENT-61
|
|
6435
|
+
accentSource: z8.boolean().optional().describe("When true, this field's colorMap value drives the card-level accent styling"),
|
|
6436
|
+
// ENT-61
|
|
6437
|
+
iconMap: z8.record(z8.string(), z8.string()).optional().describe("Maps field values to icons (emoji/symbol), prepended to badge text"),
|
|
6432
6438
|
helpText: z8.string().optional().describe("Help text shown in editors and describe output"),
|
|
6433
6439
|
optionDescriptions: z8.record(z8.string()).optional().describe("Per-option guidance for select fields"),
|
|
6434
|
-
|
|
6435
|
-
|
|
6436
|
-
|
|
6440
|
+
// BET-136
|
|
6441
|
+
semanticRole: z8.enum(["problem", "appetite", "elements", "architecture", "done_when", "risks", "exclusions"]).optional().describe("Semantic role for schema-driven consumers \u2014 enables field-key-independent validation and rendering"),
|
|
6442
|
+
// BET-196
|
|
6443
|
+
maxLength: z8.number().optional().describe("Maximum character length for field values. Three-tier resolution: explicit > displayHint > type fallback."),
|
|
6444
|
+
// BET-196
|
|
6445
|
+
minLength: z8.number().optional().describe("Minimum character length for field values. Only explicit \u2014 no defaults.")
|
|
6437
6446
|
});
|
|
6438
6447
|
var collectionsSchema = z8.object({
|
|
6439
6448
|
action: z8.enum(COLLECTIONS_ACTIONS).describe(
|
|
@@ -6446,13 +6455,19 @@ var collectionsSchema = z8.object({
|
|
|
6446
6455
|
icon: z8.string().optional().describe("Emoji icon for the collection"),
|
|
6447
6456
|
navGroup: z8.enum(["daily", "strategic", "governance", "reference", "collections"]).optional().describe("Sidebar placement: 'daily', 'strategic', 'governance', 'reference', 'collections'"),
|
|
6448
6457
|
fields: z8.array(fieldSchema).optional().describe("Field definitions for create, or replacement schema for update (replaces all fields)"),
|
|
6449
|
-
|
|
6450
|
-
|
|
6451
|
-
|
|
6452
|
-
|
|
6453
|
-
|
|
6458
|
+
// ENT-62
|
|
6459
|
+
defaultCanonicalKey: z8.string().optional().describe("The canonical_key entries in this collection default to (e.g. 'decision', 'insight'). Consumers read from collection doc; code map is fallback."),
|
|
6460
|
+
// ENT-67
|
|
6461
|
+
defaultWorkflowStatus: z8.string().optional().describe("Default workflowStatus for new entries. Must be in validWorkflowStatuses when set (e.g. 'hypothesis' for insights)."),
|
|
6462
|
+
// ENT-65
|
|
6463
|
+
validWorkflowStatuses: z8.array(z8.string()).optional().describe("The allowed workflowStatus values for entries in this collection. New entries are validated against this list. Empty array means no constraint."),
|
|
6464
|
+
// ENT-65, FEAT-200
|
|
6465
|
+
classificationCheck: z8.string().optional().describe("LLM decision-tree check for this collection (3\u2013500 chars). Guides the classifier in routing entries here."),
|
|
6466
|
+
// ENT-65, FEAT-200
|
|
6467
|
+
classificationPriority: z8.number().optional().describe("Classifier priority (1\u20139, lower = higher priority). Used with classificationCheck to order the decision tree."),
|
|
6454
6468
|
// FEAT-301 Slice 2: quality gate criteria and usage guidance.
|
|
6455
|
-
|
|
6469
|
+
// FEAT-257
|
|
6470
|
+
qualityCriteria: z8.array(qualityCriterionSchema).optional().describe("Per-collection commit gate rules. 'required' rule hard-blocks commits on empty fields; 'min_length'/'pattern' rules warn. Pass an empty array to clear all criteria."),
|
|
6456
6471
|
usageGuidance: z8.string().optional().describe("Plain-text guidance shown to agents and users: when to use this collection, when not to, and what makes a good entry.")
|
|
6457
6472
|
});
|
|
6458
6473
|
function registerCollectionsTools(server) {
|
|
@@ -6960,7 +6975,8 @@ var REGISTRY_MANIFEST = [
|
|
|
6960
6975
|
id: "classification-map",
|
|
6961
6976
|
path: "convex/lib/seedClassificationRegistry.ts",
|
|
6962
6977
|
exportName: "SEED_CLASSIFICATION_REGISTRY",
|
|
6963
|
-
|
|
6978
|
+
// ENT-65
|
|
6979
|
+
description: "Seed-only: governance, nav group, ID prefix. Runtime reads from DB collection doc.",
|
|
6964
6980
|
expectedCoverage: "curated",
|
|
6965
6981
|
keyExtraction: "array-slug"
|
|
6966
6982
|
}
|
|
@@ -8159,7 +8175,7 @@ var qualitySchema = z12.object({
|
|
|
8159
8175
|
action: z12.enum(QUALITY_ACTIONS).describe(
|
|
8160
8176
|
"'check': score an entry against quality criteria. 're-evaluate': trigger fresh evaluation."
|
|
8161
8177
|
),
|
|
8162
|
-
entryId: z12.string().describe("Entry ID, e.g. 'TEN-graph-db', '
|
|
8178
|
+
entryId: z12.string().describe("Entry ID, e.g. 'TEN-graph-db', '<PREFIX>-<n>'"),
|
|
8163
8179
|
context: z12.enum(["capture", "commit", "review"]).default("review").optional().describe("For re-evaluate: evaluation context")
|
|
8164
8180
|
});
|
|
8165
8181
|
var qualityCheckOutputSchema = z12.object({
|
|
@@ -10348,7 +10364,7 @@ var verifySchema = z15.object({
|
|
|
10348
10364
|
mode: z15.enum(["report", "fix"]).default("report").describe("'report' = read-only trust report. 'fix' = also update drifted codeMapping statuses.")
|
|
10349
10365
|
});
|
|
10350
10366
|
var verifyEntrySchema = z15.object({
|
|
10351
|
-
entryId: z15.string().describe("Human entry ID (e.g. '
|
|
10367
|
+
entryId: z15.string().describe("Human entry ID (e.g. '<PREFIX>-<n>') to mark as verified")
|
|
10352
10368
|
});
|
|
10353
10369
|
function registerVerifyTools(server) {
|
|
10354
10370
|
const verifyTool = server.registerTool(
|
|
@@ -11391,7 +11407,10 @@ function registerStartPbTools(server) {
|
|
|
11391
11407
|
"start_pb",
|
|
11392
11408
|
{
|
|
11393
11409
|
title: "Start Product Brain",
|
|
11394
|
-
description:
|
|
11410
|
+
description: (
|
|
11411
|
+
// PAT-227
|
|
11412
|
+
"Universal session opener \u2014 say 'Start PB' to begin every session.\n\nStage-aware delivery:\n- **Fresh workspace (blank/seeded)**: returns the canonical SKILL-pb-setup body verbatim. The skill drives the install-to-activation flow.\n- **Active workspace (grounded/connected)**: standup briefing with active bets, governance, and recent activity.\n\nAlways call this first. It starts a session, stamps the surface, and loads the right guidance for your stage. Replaces both the former `start` tool and the former chat-only `start_pb` bootstrap."
|
|
11413
|
+
),
|
|
11395
11414
|
inputSchema: startPbSchema,
|
|
11396
11415
|
annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: true, openWorldHint: false }
|
|
11397
11416
|
},
|
|
@@ -13890,13 +13909,13 @@ function registerHealthTools(server) {
|
|
|
13890
13909
|
import { z as z23 } from "zod";
|
|
13891
13910
|
var recordActivationSchema = z23.object({
|
|
13892
13911
|
confirmedEntryCount: z23.number().int().min(0).describe(
|
|
13893
|
-
"Confirmed-entry count from the Phase 4 capture loop. The mutation enforces >=10
|
|
13912
|
+
"Confirmed-entry count from the Phase 4 capture loop. The mutation enforces >=10."
|
|
13894
13913
|
),
|
|
13895
13914
|
entriesAcrossCollections: z23.number().int().min(0).describe(
|
|
13896
|
-
"Number of distinct collections those entries span. The mutation enforces >=2 (
|
|
13915
|
+
"Number of distinct collections those entries span. The mutation enforces >=2 (diversity soft-gate)."
|
|
13897
13916
|
),
|
|
13898
13917
|
retrievalDemoConfirmed: z23.boolean().describe(
|
|
13899
|
-
"True if the
|
|
13918
|
+
"True if the retrieval round-trip ran successfully in Phase 4. The mutation rejects false."
|
|
13900
13919
|
)
|
|
13901
13920
|
});
|
|
13902
13921
|
function registerRecordActivationTools(server) {
|
|
@@ -13904,7 +13923,10 @@ function registerRecordActivationTools(server) {
|
|
|
13904
13923
|
"record_activation",
|
|
13905
13924
|
{
|
|
13906
13925
|
title: "Record activation receipt \u2014 chat-only",
|
|
13907
|
-
description:
|
|
13926
|
+
description: (
|
|
13927
|
+
// WP-431
|
|
13928
|
+
"Writes the per-user activation receipt that closes the install-to-activation arc for chat-only surfaces (Cursor Desktop, Claude Desktop, ChatGPT). The skill body's Phase 5 calls this AFTER Phase 4 gates pass: confirmedEntryCount>=10, entriesAcrossCollections>=2, retrievalDemoConfirmed=true. surfaceCapability is hardcoded to 'chat-only' \u2014 this tool is NOT for CLI agents (CLI uses the gateway directly). Idempotent: a re-run after activation returns alreadyActivated=true."
|
|
13929
|
+
),
|
|
13908
13930
|
inputSchema: recordActivationSchema,
|
|
13909
13931
|
annotations: { readOnlyHint: false, idempotentHint: true, openWorldHint: false, destructiveHint: false }
|
|
13910
13932
|
},
|
|
@@ -13967,7 +13989,7 @@ var auditSchema = z24.object({
|
|
|
13967
13989
|
action: z24.enum(AUDIT_ACTIONS).describe(
|
|
13968
13990
|
"'run': run the hygiene audit for a bet entry."
|
|
13969
13991
|
),
|
|
13970
|
-
entryId: z24.string().describe("Bet entry ID to audit, e.g. '
|
|
13992
|
+
entryId: z24.string().describe("Bet entry ID to audit, e.g. '<PREFIX>-<n>'"),
|
|
13971
13993
|
phase: z24.enum(["shaping", "handoff"]).default("shaping").optional().describe(
|
|
13972
13994
|
"'shaping': check shaping-phase fields only. 'handoff': check all required fields including buildContract/buildSequence/exclusions/risks. Default: shaping."
|
|
13973
13995
|
)
|
|
@@ -14995,7 +15017,7 @@ Domain: ${domain}
|
|
|
14995
15017
|
Existing rules in this domain:
|
|
14996
15018
|
${existingContext}
|
|
14997
15019
|
|
|
14998
|
-
Draft the rule with these fields (do not specify entryId \u2014 Convex assigns sequential IDs automatically, e.g.
|
|
15020
|
+
Draft the rule with these fields (do not specify entryId \u2014 Convex assigns sequential IDs automatically, e.g. <PREFIX>-<n>):
|
|
14999
15021
|
1. **name**: Concise rule title
|
|
15000
15022
|
2. **data.description**: What the rule states
|
|
15001
15023
|
3. **data.rationale**: Why this rule matters
|
|
@@ -15268,4 +15290,4 @@ export {
|
|
|
15268
15290
|
createProductBrainServer,
|
|
15269
15291
|
initFeatureFlags
|
|
15270
15292
|
};
|
|
15271
|
-
//# sourceMappingURL=chunk-
|
|
15293
|
+
//# sourceMappingURL=chunk-CIHITLKC.js.map
|