@studiometa/productive-mcp 0.10.6 → 0.10.8
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/formatters.d.ts +4 -0
- package/dist/formatters.d.ts.map +1 -1
- package/dist/handlers/custom-fields.d.ts +26 -0
- package/dist/handlers/custom-fields.d.ts.map +1 -0
- package/dist/handlers/help.d.ts.map +1 -1
- package/dist/handlers/index.d.ts.map +1 -1
- package/dist/handlers/pre-validation-guards.d.ts +64 -0
- package/dist/handlers/pre-validation-guards.d.ts.map +1 -0
- package/dist/handlers/schema.d.ts.map +1 -1
- package/dist/handlers/valid-includes.d.ts.map +1 -1
- package/dist/{handlers-BvwBrRHp.js → handlers-t95fhdps.js} +2844 -2349
- package/dist/handlers-t95fhdps.js.map +1 -0
- package/dist/handlers.js +1 -1
- package/dist/hints.d.ts +4 -0
- package/dist/hints.d.ts.map +1 -1
- package/dist/http.d.ts +1 -0
- package/dist/http.d.ts.map +1 -1
- package/dist/http.js +13 -4
- package/dist/http.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +23 -5
- package/dist/index.js.map +1 -1
- package/dist/resources.d.ts +81 -0
- package/dist/resources.d.ts.map +1 -0
- package/dist/schema.d.ts +4 -2
- package/dist/schema.d.ts.map +1 -1
- package/dist/server.js +2 -2
- package/dist/{handlers-Cha6_ulB.js → stdio-Bi1Lvp8O.js} +97 -2
- package/dist/stdio-Bi1Lvp8O.js.map +1 -0
- package/dist/stdio.js +2 -99
- package/dist/version-DpBFJ7eV.js +236 -0
- package/dist/version-DpBFJ7eV.js.map +1 -0
- package/package.json +3 -3
- package/skills/SKILL.md +168 -59
- package/dist/handlers-BvwBrRHp.js.map +0 -1
- package/dist/handlers-Cha6_ulB.js.map +0 -1
- package/dist/stdio.js.map +0 -1
- package/dist/version-KdH6s_ty.js +0 -29
- package/dist/version-KdH6s_ty.js.map +0 -1
package/dist/formatters.d.ts
CHANGED
|
@@ -70,6 +70,10 @@ export declare function formatPage(page: JsonApiResource, options?: McpFormatOpt
|
|
|
70
70
|
*/
|
|
71
71
|
export declare function formatDiscussion(discussion: JsonApiResource, options?: McpFormatOptions): Record<string, unknown>;
|
|
72
72
|
export declare function formatActivity(activity: JsonApiResource, options?: McpFormatOptions): Record<string, unknown>;
|
|
73
|
+
/**
|
|
74
|
+
* Format custom field for agent consumption
|
|
75
|
+
*/
|
|
76
|
+
export declare function formatCustomField(field: JsonApiResource, options?: McpFormatOptions): Record<string, unknown>;
|
|
73
77
|
/**
|
|
74
78
|
* Format list response with pagination
|
|
75
79
|
*
|
package/dist/formatters.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formatters.d.ts","sourceRoot":"","sources":["../src/formatters.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"formatters.d.ts","sourceRoot":"","sources":["../src/formatters.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Custom Fields MCP handler.
|
|
3
|
+
*
|
|
4
|
+
* Uses the createResourceHandler factory for list/get.
|
|
5
|
+
* Custom fields are read-only — only `list` and `get` are supported.
|
|
6
|
+
*/
|
|
7
|
+
import type { CommonArgs } from './types.js';
|
|
8
|
+
/**
|
|
9
|
+
* Args for custom field requests.
|
|
10
|
+
*/
|
|
11
|
+
export interface CustomFieldArgs extends CommonArgs {
|
|
12
|
+
/** Filter by customizable type (e.g. 'Task', 'Deal', 'Company') */
|
|
13
|
+
customizable_type?: string;
|
|
14
|
+
/** Filter by archived status */
|
|
15
|
+
archived?: string;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Handle custom_fields resource.
|
|
19
|
+
*
|
|
20
|
+
* Supports: list, get
|
|
21
|
+
*/
|
|
22
|
+
export declare const handleCustomFields: (action: string, args: CustomFieldArgs & {
|
|
23
|
+
query?: string;
|
|
24
|
+
type?: import("@studiometa/productive-core").ResolvableResourceType;
|
|
25
|
+
}, ctx: import("./types.js").HandlerContext) => Promise<import("./types.js").ToolResult>;
|
|
26
|
+
//# sourceMappingURL=custom-fields.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"custom-fields.d.ts","sourceRoot":"","sources":["../../src/handlers/custom-fields.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAM7C;;GAEG;AACH,MAAM,WAAW,eAAgB,SAAQ,UAAU;IACjD,mEAAmE;IACnE,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gCAAgC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;GAIG;AACH,eAAO,MAAM,kBAAkB;;;wFAiB7B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../../src/handlers/help.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../../src/handlers/help.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAi/B7C;;GAEG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU,CAevD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,UAAU,CAY/C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/handlers/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAExD,OAAO,KAAK,EAAkB,UAAU,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/handlers/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAExD,OAAO,KAAK,EAAkB,UAAU,EAAE,MAAM,YAAY,CAAC;AAgC7D,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AA2I7C;;GAEG;AACH,wBAAsB,0BAA0B,CAC9C,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,WAAW,EAAE,qBAAqB,GACjC,OAAO,CAAC,UAAU,CAAC,CA0IrB"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pre-validation guard pipeline for the productive MCP tool.
|
|
3
|
+
*
|
|
4
|
+
* Guards run against raw args BEFORE Zod schema parsing. This catches common
|
|
5
|
+
* agent mistakes that Zod `.strip()` would silently swallow (e.g. passing
|
|
6
|
+
* `params` instead of `filter`).
|
|
7
|
+
*
|
|
8
|
+
* Each guard returns a `ToolResult` when it detects a bad pattern, or `null`
|
|
9
|
+
* to signal that the args look fine and the next guard should run.
|
|
10
|
+
*/
|
|
11
|
+
import type { ToolResult } from './types.js';
|
|
12
|
+
/**
|
|
13
|
+
* A pre-validation guard function.
|
|
14
|
+
* Returns a ToolResult (error) when a bad pattern is detected, or null to pass.
|
|
15
|
+
*/
|
|
16
|
+
export type PreValidationGuard = (args: Record<string, unknown>) => ToolResult | null;
|
|
17
|
+
/**
|
|
18
|
+
* Detects the classic `params` mistake.
|
|
19
|
+
*
|
|
20
|
+
* Agents familiar with REST conventions often pass `params` as a top-level
|
|
21
|
+
* field. Zod's `.strip()` silently removes it before any post-parse check
|
|
22
|
+
* could fire, so this must run on the raw args.
|
|
23
|
+
*/
|
|
24
|
+
export declare function detectParamsField(args: Record<string, unknown>): ToolResult | null;
|
|
25
|
+
/**
|
|
26
|
+
* Detects `resource="budgets"` and redirects to `deals` with a type filter.
|
|
27
|
+
*
|
|
28
|
+
* The "budgets" resource was removed. Budgets are deals with `type=2`.
|
|
29
|
+
*/
|
|
30
|
+
export declare function detectBudgetsResource(args: Record<string, unknown>): ToolResult | null;
|
|
31
|
+
/**
|
|
32
|
+
* Detects `resource="docs"` and redirects to `pages`.
|
|
33
|
+
*/
|
|
34
|
+
export declare function detectDocsResource(args: Record<string, unknown>): ToolResult | null;
|
|
35
|
+
/**
|
|
36
|
+
* Detects `action="search"` used on a specific resource.
|
|
37
|
+
*
|
|
38
|
+
* Agents should use `action="list"` with a `query` parameter for text
|
|
39
|
+
* filtering within a single resource, or `resource="search"` for
|
|
40
|
+
* cross-resource search. This guard only fires when `resource` is not
|
|
41
|
+
* already `"search"` to avoid blocking the legitimate search resource.
|
|
42
|
+
*/
|
|
43
|
+
export declare function detectSearchAction(args: Record<string, unknown>): ToolResult | null;
|
|
44
|
+
/**
|
|
45
|
+
* Detects `action` values that start with `get_`.
|
|
46
|
+
*
|
|
47
|
+
* Agents using function-style naming (e.g. `get_tasks`, `get_projects`)
|
|
48
|
+
* should use plain verbs: `action="get"` for a single item or
|
|
49
|
+
* `action="list"` for multiple items.
|
|
50
|
+
*/
|
|
51
|
+
export declare function detectGetUnderscoreAction(args: Record<string, unknown>): ToolResult | null;
|
|
52
|
+
/**
|
|
53
|
+
* Ordered list of pre-validation guards.
|
|
54
|
+
* Guards are evaluated in order; the first match short-circuits the pipeline.
|
|
55
|
+
*/
|
|
56
|
+
export declare const PRE_VALIDATION_GUARDS: PreValidationGuard[];
|
|
57
|
+
/**
|
|
58
|
+
* Run all pre-validation guards against raw args.
|
|
59
|
+
*
|
|
60
|
+
* Returns the first guard's ToolResult on a match, or `null` if all guards
|
|
61
|
+
* pass (meaning the args look structurally sound and Zod parsing can proceed).
|
|
62
|
+
*/
|
|
63
|
+
export declare function runPreValidationGuards(args: Record<string, unknown>): ToolResult | null;
|
|
64
|
+
//# sourceMappingURL=pre-validation-guards.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pre-validation-guards.d.ts","sourceRoot":"","sources":["../../src/handlers/pre-validation-guards.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAK7C;;;GAGG;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,UAAU,GAAG,IAAI,CAAC;AAMtF;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,UAAU,GAAG,IAAI,CASlF;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,UAAU,GAAG,IAAI,CAUtF;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,UAAU,GAAG,IAAI,CAUnF;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,UAAU,GAAG,IAAI,CAgBnF;AAED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,UAAU,GAAG,IAAI,CAkB1F;AAMD;;;GAGG;AACH,eAAO,MAAM,qBAAqB,EAAE,kBAAkB,EAMrD,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,UAAU,GAAG,IAAI,CAMvF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/handlers/schema.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAI7C;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IAC3C,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/handlers/schema.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAI7C;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IAC3C,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AA6UD;;GAEG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU,CAazD;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,UAAU,CAUjD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"valid-includes.d.ts","sourceRoot":"","sources":["../../src/handlers/valid-includes.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"valid-includes.d.ts","sourceRoot":"","sources":["../../src/handlers/valid-includes.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAgBnD,CAAC;AAEF,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACrC;AAmBD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAAE,GACjB,sBAAsB,GAAG,IAAI,CA0B/B"}
|