@nestr/mcp 0.1.58 → 0.1.60
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/build/api/client.d.ts +12 -2
- package/build/api/client.d.ts.map +1 -1
- package/build/api/client.js +7 -0
- package/build/api/client.js.map +1 -1
- package/build/http.d.ts.map +1 -1
- package/build/http.js +27 -2
- package/build/http.js.map +1 -1
- package/build/server.d.ts.map +1 -1
- package/build/server.js +31 -0
- package/build/server.js.map +1 -1
- package/build/tools/index.d.ts +265 -103
- package/build/tools/index.d.ts.map +1 -1
- package/build/tools/index.js +51 -20
- package/build/tools/index.js.map +1 -1
- package/package.json +1 -1
- package/web/index.html +10 -10
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAiB,KAAK,WAAW,EAA6C,MAAM,kBAAkB,CAAC;AAS9G,KAAK,iBAAiB,GAAG,OAAO,GAAG,YAAY,GAAG,UAAU,GAAG,UAAU,GAAG,QAAQ,CAAC;AAGrF,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,OAAO,EACb,MAAM,EAAE,iBAAiB,EACzB,KAAK,EAAE,MAAM,GACZ;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,iBAAiB,CAAC;IAAC,KAAK,EAAE,OAAO,EAAE,CAAA;CAAE,CAWhE;AAeD,wBAAgB,eAAe,CAAC,CAAC,EAC/B,IAAI,EAAE,CAAC,EAAE,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,CAAC,EAAE,CAAA;CAAE,GAAG,CAAC,EAC7D,IAAI,GAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAgB,GAChD,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAA;CAAE,GAAG,CAAC,CA+B3E;AA2CD,wBAAgB,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,CAyCzC;AAaD,eAAO,MAAM,OAAO
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAiB,KAAK,WAAW,EAA6C,MAAM,kBAAkB,CAAC;AAS9G,KAAK,iBAAiB,GAAG,OAAO,GAAG,YAAY,GAAG,UAAU,GAAG,UAAU,GAAG,QAAQ,CAAC;AAGrF,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,OAAO,EACb,MAAM,EAAE,iBAAiB,EACzB,KAAK,EAAE,MAAM,GACZ;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,iBAAiB,CAAC;IAAC,KAAK,EAAE,OAAO,EAAE,CAAA;CAAE,CAWhE;AAeD,wBAAgB,eAAe,CAAC,CAAC,EAC/B,IAAI,EAAE,CAAC,EAAE,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,CAAC,EAAE,CAAA;CAAE,GAAG,CAAC,EAC7D,IAAI,GAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAgB,GAChD,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAA;CAAE,GAAG,CAAC,CA+B3E;AA2CD,wBAAgB,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,CAyCzC;AAaD,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2anB,CAAC;AAQF,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA2jC3B,CAAC;AAGF,MAAM,MAAM,UAAU,GAAG;IACvB,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/C,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAGF,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAiB7D;AAGD,wBAAsB,cAAc,CAClC,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,OAAO,CAAC,UAAU,CAAC,CAcrB"}
|
package/build/tools/index.js
CHANGED
|
@@ -185,7 +185,7 @@ export const schemas = {
|
|
|
185
185
|
createNest: z.object({
|
|
186
186
|
parentId: z.string().describe("Parent nest ID (workspace, circle, or project)"),
|
|
187
187
|
title: z.string().describe("Title of the new nest (plain text, HTML stripped)"),
|
|
188
|
-
description: z.string().optional().describe("The primary content field — use for project details, task context, acceptance criteria, Definition of Done, and any detailed information. Supports
|
|
188
|
+
description: z.string().optional().describe("The primary content field — use for project details, task context, acceptance criteria, Definition of Done, and any detailed information. Supports Markdown and HTML."),
|
|
189
189
|
purpose: z.string().optional().describe("ONLY for workspaces, circles, and roles — a short aspirational statement of the future state this entity serves. Do NOT put project details, task context, or general information here; use description instead. Supports HTML."),
|
|
190
190
|
labels: coerceFromJson(z.array(z.string())).optional().describe("Label IDs to apply"),
|
|
191
191
|
users: coerceFromJson(z.array(z.string())).optional().describe("User IDs to assign (required for tasks/projects to associate with a person)"),
|
|
@@ -196,7 +196,7 @@ export const schemas = {
|
|
|
196
196
|
updateNest: z.object({
|
|
197
197
|
nestId: z.string().describe("Nest ID to update"),
|
|
198
198
|
title: z.string().optional().describe("New title (plain text, HTML stripped)"),
|
|
199
|
-
description: z.string().optional().describe("The primary content field — use for project details, task context, acceptance criteria, and any detailed information. Supports HTML."),
|
|
199
|
+
description: z.string().optional().describe("The primary content field — use for project details, task context, acceptance criteria, and any detailed information. Supports Markdown and HTML."),
|
|
200
200
|
purpose: z.string().optional().describe("ONLY for workspaces, circles, and roles — a short aspirational statement. Do NOT put project details, task context, or general information here; use description instead. Supports HTML."),
|
|
201
201
|
parentId: z.string().optional().describe("New parent ID (move nest to different location, e.g., move inbox item to a role or project)"),
|
|
202
202
|
labels: coerceFromJson(z.array(z.string())).optional().describe("Label IDs to set (e.g., ['project'] to convert an item into a project)"),
|
|
@@ -241,7 +241,14 @@ export const schemas = {
|
|
|
241
241
|
}),
|
|
242
242
|
getInsights: z.object({
|
|
243
243
|
workspaceId: z.string().describe("Workspace ID"),
|
|
244
|
-
includeSubCircles: z.boolean().optional().describe("Include metrics from sub-circles"),
|
|
244
|
+
includeSubCircles: z.boolean().optional().describe("Include metrics from sub-circles (default: true). Cannot be false when userId is provided."),
|
|
245
|
+
userId: z.string().optional().describe("Filter metrics for a specific user (Pro plan only). When provided, includes user-specific metrics like feedback_given/received."),
|
|
246
|
+
nestId: z.string().optional().describe("Filter metrics for a specific circle/nest (Pro plan only). Cannot be combined with userId."),
|
|
247
|
+
endDate: z.string().optional().describe("End date for metrics query (ISO format)"),
|
|
248
|
+
}),
|
|
249
|
+
getInsight: z.object({
|
|
250
|
+
workspaceId: z.string().describe("Workspace ID"),
|
|
251
|
+
metricId: z.string().describe("Metric ID/type from getInsights (e.g., 'role_count', 'tactical_completed')"),
|
|
245
252
|
}),
|
|
246
253
|
listUsers: z.object({
|
|
247
254
|
workspaceId: z.string().describe("Workspace ID"),
|
|
@@ -299,7 +306,7 @@ export const schemas = {
|
|
|
299
306
|
}),
|
|
300
307
|
createInboxItem: z.object({
|
|
301
308
|
title: z.string().describe("Title of the inbox item (plain text, HTML stripped)"),
|
|
302
|
-
description: z.string().optional().describe("Additional details or context (supports HTML)"),
|
|
309
|
+
description: z.string().optional().describe("Additional details or context (supports Markdown and HTML)"),
|
|
303
310
|
}),
|
|
304
311
|
getInboxItem: z.object({
|
|
305
312
|
nestId: z.string().describe("Inbox item ID"),
|
|
@@ -307,7 +314,7 @@ export const schemas = {
|
|
|
307
314
|
updateInboxItem: z.object({
|
|
308
315
|
nestId: z.string().describe("Inbox item ID"),
|
|
309
316
|
title: z.string().optional().describe("Updated title (plain text, HTML stripped)"),
|
|
310
|
-
description: z.string().optional().describe("Updated description (supports HTML)"),
|
|
317
|
+
description: z.string().optional().describe("Updated description (supports Markdown and HTML)"),
|
|
311
318
|
completed: z.boolean().optional().describe("Mark as completed (processed)"),
|
|
312
319
|
data: coerceFromJson(z.record(z.unknown())).optional().describe("Custom data storage"),
|
|
313
320
|
}),
|
|
@@ -378,7 +385,7 @@ export const schemas = {
|
|
|
378
385
|
createTension: z.object({
|
|
379
386
|
nestId: z.string().describe("ID of the role or circle to create the tension on. Use a role ID when that role is sensing the tension. Use a circle ID for cross-role, governance, or personally sensed tensions."),
|
|
380
387
|
title: z.string().describe("The gap you're sensing — what is the difference between current reality and desired state (plain text)"),
|
|
381
|
-
description: z.string().optional().describe("The observable facts — what you see/hear/experience that creates this tension (supports HTML)"),
|
|
388
|
+
description: z.string().optional().describe("The observable facts — what you see/hear/experience that creates this tension (supports Markdown and HTML)"),
|
|
382
389
|
feeling: z.string().optional().describe("The feeling this tension evokes in you — separated from the facts to keep the organizational response clean (plain text)"),
|
|
383
390
|
needs: z.string().optional().describe("The personal or organizational need that is alive — what need is not being met (plain text)"),
|
|
384
391
|
}),
|
|
@@ -396,7 +403,7 @@ export const schemas = {
|
|
|
396
403
|
nestId: z.string().describe("ID of the circle or role the tension belongs to"),
|
|
397
404
|
tensionId: z.string().describe("Tension ID"),
|
|
398
405
|
title: z.string().optional().describe("Updated title — the gap being sensed (plain text)"),
|
|
399
|
-
description: z.string().optional().describe("Updated description — the observable facts (supports HTML)"),
|
|
406
|
+
description: z.string().optional().describe("Updated description — the observable facts (supports Markdown and HTML)"),
|
|
400
407
|
feeling: z.string().optional().describe("Updated feeling this tension evokes (plain text)"),
|
|
401
408
|
needs: z.string().optional().describe("Updated need that is alive (plain text)"),
|
|
402
409
|
}),
|
|
@@ -414,7 +421,7 @@ export const schemas = {
|
|
|
414
421
|
_id: z.string().optional().describe("ID of an existing governance item to change or remove. Omit to propose a new item."),
|
|
415
422
|
title: z.string().optional().describe("Title for the governance item"),
|
|
416
423
|
labels: coerceFromJson(z.array(z.string())).optional().describe("Labels defining the item type (e.g., ['role'], ['circle'], ['policy'], ['accountability'], ['domain'])"),
|
|
417
|
-
description: z.string().optional().describe("The primary content field — detailed information about the item. Supports HTML."),
|
|
424
|
+
description: z.string().optional().describe("The primary content field — detailed information about the item. Supports Markdown and HTML."),
|
|
418
425
|
purpose: z.string().optional().describe("ONLY for roles/circles — a short aspirational statement. Do NOT put detailed information here; use description instead. Supports HTML."),
|
|
419
426
|
parentId: z.string().optional().describe("Parent ID — use to move/restructure items (e.g., move role to different circle)"),
|
|
420
427
|
users: coerceFromJson(z.array(z.string())).optional().describe("User IDs to assign (e.g., for role elections: assign the elected user to the role)"),
|
|
@@ -427,7 +434,7 @@ export const schemas = {
|
|
|
427
434
|
tensionId: z.string().describe("Tension ID"),
|
|
428
435
|
partId: z.string().describe("Part ID to modify"),
|
|
429
436
|
title: z.string().optional().describe("Updated title"),
|
|
430
|
-
description: z.string().optional().describe("Updated description — the primary content field. Supports HTML."),
|
|
437
|
+
description: z.string().optional().describe("Updated description — the primary content field. Supports Markdown and HTML."),
|
|
431
438
|
purpose: z.string().optional().describe("ONLY for roles/circles — updated aspirational statement. Do NOT put detailed information here; use description instead. Supports HTML."),
|
|
432
439
|
labels: coerceFromJson(z.array(z.string())).optional().describe("Updated labels"),
|
|
433
440
|
parentId: z.string().optional().describe("Updated parent ID"),
|
|
@@ -651,7 +658,7 @@ Response includes meta.total showing total matching count. IMPORTANT UI RULE: Th
|
|
|
651
658
|
properties: {
|
|
652
659
|
parentId: { type: "string", description: "Parent nest ID (workspace, circle, or project)" },
|
|
653
660
|
title: { type: "string", description: "Title of the new nest (plain text, HTML tags stripped)" },
|
|
654
|
-
description: { type: "string", description: "The primary content field — use for project details, task context, acceptance criteria, DoD, and any detailed information. Use fields (e.g., project.status) for structured data and comments for progress updates. Supports HTML." },
|
|
661
|
+
description: { type: "string", description: "The primary content field — use for project details, task context, acceptance criteria, DoD, and any detailed information. Use fields (e.g., project.status) for structured data and comments for progress updates. Supports Markdown and HTML." },
|
|
655
662
|
purpose: { type: "string", description: "ONLY for workspaces, circles, and roles — a short aspirational statement of the future state this entity serves. Do NOT put project details, task context, or general information here; use description instead. Supports HTML." },
|
|
656
663
|
labels: {
|
|
657
664
|
type: "array",
|
|
@@ -690,7 +697,7 @@ Response includes meta.total showing total matching count. IMPORTANT UI RULE: Th
|
|
|
690
697
|
properties: {
|
|
691
698
|
nestId: { type: "string", description: "Nest ID to update" },
|
|
692
699
|
title: { type: "string", description: "New title (plain text, HTML tags stripped)" },
|
|
693
|
-
description: { type: "string", description: "The primary content field — use for details, context, acceptance criteria, and any information about the nest. Use fields for structured data, comments for progress. Supports HTML." },
|
|
700
|
+
description: { type: "string", description: "The primary content field — use for details, context, acceptance criteria, and any information about the nest. Use fields for structured data, comments for progress. Supports Markdown and HTML." },
|
|
694
701
|
purpose: { type: "string", description: "ONLY for workspaces, circles, and roles — a short aspirational statement. Do NOT put project details, task context, or general information here; use description instead. Supports HTML." },
|
|
695
702
|
parentId: { type: "string", description: "New parent ID (move nest to different location)" },
|
|
696
703
|
labels: {
|
|
@@ -836,17 +843,33 @@ Response includes meta.total showing total matching count. IMPORTANT UI RULE: Th
|
|
|
836
843
|
},
|
|
837
844
|
{
|
|
838
845
|
name: "nestr_get_insights",
|
|
839
|
-
description: "Get
|
|
846
|
+
description: "Get organizational health and trend metrics. Use this when users ask about trends, patterns, team health, or how things are going. Each metric has currentValue and compareValue (previous period) to show direction. Includes: role-awareness, governance participation, meeting output, task completion rates, overdue items, and activity stats. Requires the Insights app to be enabled (check with nestr_get_workspace_apps). Pro plan required for circle-level (nestId) or user-level (userId) filtering.",
|
|
840
847
|
inputSchema: {
|
|
841
848
|
type: "object",
|
|
842
849
|
properties: {
|
|
843
850
|
workspaceId: { type: "string", description: "Workspace ID" },
|
|
844
|
-
includeSubCircles: { type: "boolean", description: "Include metrics from sub-circles" },
|
|
851
|
+
includeSubCircles: { type: "boolean", description: "Include metrics from sub-circles (default: true). Cannot be false when userId is provided." },
|
|
852
|
+
userId: { type: "string", description: "Filter metrics for a specific user (Pro plan only). Cannot be combined with nestId." },
|
|
853
|
+
nestId: { type: "string", description: "Filter metrics for a specific circle/nest (Pro plan only). Cannot be combined with userId." },
|
|
854
|
+
endDate: { type: "string", description: "End date for metrics query (ISO format)" },
|
|
845
855
|
},
|
|
846
856
|
required: ["workspaceId"],
|
|
847
857
|
},
|
|
848
858
|
...readOnly,
|
|
849
859
|
},
|
|
860
|
+
{
|
|
861
|
+
name: "nestr_get_insight",
|
|
862
|
+
description: "Get a single metric with its current and compare values. Use after nestr_get_insights to drill into a specific metric. Requires the Insights app to be enabled.",
|
|
863
|
+
inputSchema: {
|
|
864
|
+
type: "object",
|
|
865
|
+
properties: {
|
|
866
|
+
workspaceId: { type: "string", description: "Workspace ID" },
|
|
867
|
+
metricId: { type: "string", description: "Metric ID/type from getInsights (e.g., 'role_count', 'tactical_completed')" },
|
|
868
|
+
},
|
|
869
|
+
required: ["workspaceId", "metricId"],
|
|
870
|
+
},
|
|
871
|
+
...readOnly,
|
|
872
|
+
},
|
|
850
873
|
{
|
|
851
874
|
name: "nestr_list_users",
|
|
852
875
|
description: "List members of a workspace. Response includes meta.total showing total matching count.",
|
|
@@ -969,7 +992,7 @@ Response includes meta.total showing total matching count. IMPORTANT UI RULE: Th
|
|
|
969
992
|
},
|
|
970
993
|
{
|
|
971
994
|
name: "nestr_get_insight_history",
|
|
972
|
-
description: "Get historical trend data for a specific metric. Use
|
|
995
|
+
description: "Get historical trend data for a specific metric over time. Use this to answer questions about how the organization is trending — e.g., 'Are we getting better at governance?', 'How has team activity changed?'. Returns data points with dates. Use from/to to scope the time range. Requires the Insights app to be enabled.",
|
|
973
996
|
inputSchema: {
|
|
974
997
|
type: "object",
|
|
975
998
|
properties: {
|
|
@@ -1016,7 +1039,7 @@ Response includes meta.total showing total matching count. IMPORTANT UI RULE: Th
|
|
|
1016
1039
|
type: "object",
|
|
1017
1040
|
properties: {
|
|
1018
1041
|
title: { type: "string", description: "Title of the inbox item (plain text, HTML stripped)" },
|
|
1019
|
-
description: { type: "string", description: "Additional details or context (supports HTML)" },
|
|
1042
|
+
description: { type: "string", description: "Additional details or context (supports Markdown and HTML)" },
|
|
1020
1043
|
},
|
|
1021
1044
|
required: ["title"],
|
|
1022
1045
|
},
|
|
@@ -1043,7 +1066,7 @@ Response includes meta.total showing total matching count. IMPORTANT UI RULE: Th
|
|
|
1043
1066
|
properties: {
|
|
1044
1067
|
nestId: { type: "string", description: "Inbox item ID" },
|
|
1045
1068
|
title: { type: "string", description: "Updated title (plain text, HTML stripped)" },
|
|
1046
|
-
description: { type: "string", description: "Updated description (supports HTML)" },
|
|
1069
|
+
description: { type: "string", description: "Updated description (supports Markdown and HTML)" },
|
|
1047
1070
|
completed: { type: "boolean", description: "Mark as completed (processed)" },
|
|
1048
1071
|
data: { type: "object", description: "Custom data storage" },
|
|
1049
1072
|
},
|
|
@@ -1279,7 +1302,7 @@ Response includes meta.total showing total matching count. IMPORTANT UI RULE: Th
|
|
|
1279
1302
|
properties: {
|
|
1280
1303
|
nestId: { type: "string", description: "ID of the role or circle to create the tension on. Place on a role to indicate that role is sensing the tension. Place on a circle for cross-role or governance tensions (use individual-action label if sensed personally without role authority)." },
|
|
1281
1304
|
title: { type: "string", description: "The gap — what is the difference between current reality and desired state (plain text)" },
|
|
1282
|
-
description: { type: "string", description: "The observable facts — what you see/hear/experience (supports HTML)" },
|
|
1305
|
+
description: { type: "string", description: "The observable facts — what you see/hear/experience (supports Markdown and HTML)" },
|
|
1283
1306
|
feeling: { type: "string", description: "The feeling this tension evokes — separated to keep the organizational response clean (plain text)" },
|
|
1284
1307
|
needs: { type: "string", description: "The need that is alive — what personal or organizational need is not being met (plain text)" },
|
|
1285
1308
|
},
|
|
@@ -1324,7 +1347,7 @@ Response includes meta.total showing total matching count. IMPORTANT UI RULE: Th
|
|
|
1324
1347
|
nestId: { type: "string", description: "ID of the circle or role the tension belongs to" },
|
|
1325
1348
|
tensionId: { type: "string", description: "Tension ID" },
|
|
1326
1349
|
title: { type: "string", description: "Updated title — the gap being sensed (plain text)" },
|
|
1327
|
-
description: { type: "string", description: "Updated description — the observable facts (supports HTML)" },
|
|
1350
|
+
description: { type: "string", description: "Updated description — the observable facts (supports Markdown and HTML)" },
|
|
1328
1351
|
feeling: { type: "string", description: "Updated feeling this tension evokes (plain text)" },
|
|
1329
1352
|
needs: { type: "string", description: "Updated need that is alive (plain text)" },
|
|
1330
1353
|
},
|
|
@@ -1377,7 +1400,7 @@ The accountabilities/domains arrays are bulk shorthand — they replace all chil
|
|
|
1377
1400
|
_id: { type: "string", description: "ID of an existing governance item to change or remove. Omit to propose a new item." },
|
|
1378
1401
|
title: { type: "string", description: "Title for the governance item" },
|
|
1379
1402
|
labels: { type: "array", items: { type: "string" }, description: "Labels defining the item type (e.g., ['role'], ['circle'], ['policy'], ['accountability'], ['domain'])" },
|
|
1380
|
-
description: { type: "string", description: "The primary content field — detailed information about the item. Supports HTML." },
|
|
1403
|
+
description: { type: "string", description: "The primary content field — detailed information about the item. Supports Markdown and HTML." },
|
|
1381
1404
|
purpose: { type: "string", description: "ONLY for roles/circles — a short aspirational statement. Do NOT put detailed information here; use description instead. Supports HTML." },
|
|
1382
1405
|
parentId: { type: "string", description: "Parent ID — use to move/restructure items (e.g., move role to different circle)" },
|
|
1383
1406
|
users: { type: "array", items: { type: "string" }, description: "User IDs to assign (e.g., for elections: assign elected user to the role)" },
|
|
@@ -1399,7 +1422,7 @@ The accountabilities/domains arrays are bulk shorthand — they replace all chil
|
|
|
1399
1422
|
tensionId: { type: "string", description: "Tension ID" },
|
|
1400
1423
|
partId: { type: "string", description: "Part ID to modify" },
|
|
1401
1424
|
title: { type: "string", description: "Updated title" },
|
|
1402
|
-
description: { type: "string", description: "Updated description — the primary content field. Supports HTML." },
|
|
1425
|
+
description: { type: "string", description: "Updated description — the primary content field. Supports Markdown and HTML." },
|
|
1403
1426
|
purpose: { type: "string", description: "ONLY for roles/circles — updated aspirational statement. Do NOT put detailed information here; use description instead. Supports HTML." },
|
|
1404
1427
|
labels: { type: "array", items: { type: "string" }, description: "Updated labels" },
|
|
1405
1428
|
parentId: { type: "string", description: "Updated parent ID" },
|
|
@@ -1787,9 +1810,17 @@ async function _handleToolCall(client, name, args) {
|
|
|
1787
1810
|
const parsed = schemas.getInsights.parse(args);
|
|
1788
1811
|
const insights = await client.getInsights(parsed.workspaceId, {
|
|
1789
1812
|
includeSubCircles: parsed.includeSubCircles,
|
|
1813
|
+
userId: parsed.userId,
|
|
1814
|
+
nestId: parsed.nestId,
|
|
1815
|
+
endDate: parsed.endDate,
|
|
1790
1816
|
});
|
|
1791
1817
|
return formatResult(insights);
|
|
1792
1818
|
}
|
|
1819
|
+
case "nestr_get_insight": {
|
|
1820
|
+
const parsed = schemas.getInsight.parse(args);
|
|
1821
|
+
const insight = await client.getInsight(parsed.workspaceId, parsed.metricId);
|
|
1822
|
+
return formatResult(insight);
|
|
1823
|
+
}
|
|
1793
1824
|
case "nestr_list_users": {
|
|
1794
1825
|
const parsed = schemas.listUsers.parse(args);
|
|
1795
1826
|
const users = await client.listUsers(parsed.workspaceId, {
|