@crypto512/jicon-mcp 0.7.1 → 1.0.1

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.
Files changed (129) hide show
  1. package/README.md +128 -395
  2. package/TOOL_LIST.md +810 -120
  3. package/dist/config/constants.d.ts +1 -0
  4. package/dist/config/constants.d.ts.map +1 -1
  5. package/dist/config/constants.js +1 -0
  6. package/dist/config/constants.js.map +1 -1
  7. package/dist/config/loader.d.ts +1 -0
  8. package/dist/config/loader.d.ts.map +1 -1
  9. package/dist/config/loader.js +27 -1
  10. package/dist/config/loader.js.map +1 -1
  11. package/dist/config/types.d.ts +8 -0
  12. package/dist/config/types.d.ts.map +1 -1
  13. package/dist/config/types.js +2 -0
  14. package/dist/config/types.js.map +1 -1
  15. package/dist/confluence/client.d.ts +38 -0
  16. package/dist/confluence/client.d.ts.map +1 -1
  17. package/dist/confluence/client.js +117 -0
  18. package/dist/confluence/client.js.map +1 -1
  19. package/dist/confluence/tools.d.ts +102 -75
  20. package/dist/confluence/tools.d.ts.map +1 -1
  21. package/dist/confluence/tools.js +510 -151
  22. package/dist/confluence/tools.js.map +1 -1
  23. package/dist/confluence/types.d.ts +55 -1
  24. package/dist/confluence/types.d.ts.map +1 -1
  25. package/dist/index.js +88 -2
  26. package/dist/index.js.map +1 -1
  27. package/dist/jira/tools.d.ts +0 -5
  28. package/dist/jira/tools.d.ts.map +1 -1
  29. package/dist/jira/tools.js +40 -87
  30. package/dist/jira/tools.js.map +1 -1
  31. package/dist/permissions/filter.d.ts +5 -0
  32. package/dist/permissions/filter.d.ts.map +1 -1
  33. package/dist/permissions/filter.js +29 -12
  34. package/dist/permissions/filter.js.map +1 -1
  35. package/dist/permissions/tool-registry.d.ts +23 -25
  36. package/dist/permissions/tool-registry.d.ts.map +1 -1
  37. package/dist/permissions/tool-registry.js +41 -45
  38. package/dist/permissions/tool-registry.js.map +1 -1
  39. package/dist/permissions/write-home-validator.d.ts +35 -0
  40. package/dist/permissions/write-home-validator.d.ts.map +1 -0
  41. package/dist/permissions/write-home-validator.js +140 -0
  42. package/dist/permissions/write-home-validator.js.map +1 -0
  43. package/dist/tempo/tools.d.ts.map +1 -1
  44. package/dist/tempo/tools.js +43 -44
  45. package/dist/tempo/tools.js.map +1 -1
  46. package/dist/utils/buffer-tools.d.ts +119 -1
  47. package/dist/utils/buffer-tools.d.ts.map +1 -1
  48. package/dist/utils/buffer-tools.js +610 -3
  49. package/dist/utils/buffer-tools.js.map +1 -1
  50. package/dist/utils/content-buffer.d.ts +34 -0
  51. package/dist/utils/content-buffer.d.ts.map +1 -1
  52. package/dist/utils/content-buffer.js +79 -0
  53. package/dist/utils/content-buffer.js.map +1 -1
  54. package/dist/utils/http-client.d.ts.map +1 -1
  55. package/dist/utils/http-client.js +4 -4
  56. package/dist/utils/http-client.js.map +1 -1
  57. package/dist/utils/jicon-help.d.ts +29 -0
  58. package/dist/utils/jicon-help.d.ts.map +1 -0
  59. package/dist/utils/jicon-help.js +873 -0
  60. package/dist/utils/jicon-help.js.map +1 -0
  61. package/dist/utils/plantuml/client.d.ts +40 -0
  62. package/dist/utils/plantuml/client.d.ts.map +1 -0
  63. package/dist/utils/plantuml/client.js +306 -0
  64. package/dist/utils/plantuml/client.js.map +1 -0
  65. package/dist/utils/plantuml/docker-manager.d.ts +35 -0
  66. package/dist/utils/plantuml/docker-manager.d.ts.map +1 -0
  67. package/dist/utils/plantuml/docker-manager.js +280 -0
  68. package/dist/utils/plantuml/docker-manager.js.map +1 -0
  69. package/dist/utils/plantuml/index.d.ts +11 -0
  70. package/dist/utils/plantuml/index.d.ts.map +1 -0
  71. package/dist/utils/plantuml/index.js +16 -0
  72. package/dist/utils/plantuml/index.js.map +1 -0
  73. package/dist/utils/plantuml/service.d.ts +46 -0
  74. package/dist/utils/plantuml/service.d.ts.map +1 -0
  75. package/dist/utils/plantuml/service.js +96 -0
  76. package/dist/utils/plantuml/service.js.map +1 -0
  77. package/dist/utils/plantuml/tools.d.ts +65 -0
  78. package/dist/utils/plantuml/tools.d.ts.map +1 -0
  79. package/dist/utils/plantuml/tools.js +272 -0
  80. package/dist/utils/plantuml/tools.js.map +1 -0
  81. package/dist/utils/plantuml/types.d.ts +130 -0
  82. package/dist/utils/plantuml/types.d.ts.map +1 -0
  83. package/dist/utils/plantuml/types.js +66 -0
  84. package/dist/utils/plantuml/types.js.map +1 -0
  85. package/dist/utils/response-formatter.d.ts +14 -0
  86. package/dist/utils/response-formatter.d.ts.map +1 -1
  87. package/dist/utils/response-formatter.js +84 -1
  88. package/dist/utils/response-formatter.js.map +1 -1
  89. package/dist/utils/url-tools.d.ts +49 -0
  90. package/dist/utils/url-tools.d.ts.map +1 -0
  91. package/dist/utils/url-tools.js +141 -0
  92. package/dist/utils/url-tools.js.map +1 -0
  93. package/dist/utils/xhtml/confluence-schema.d.ts +55 -0
  94. package/dist/utils/xhtml/confluence-schema.d.ts.map +1 -0
  95. package/dist/utils/xhtml/confluence-schema.js +215 -0
  96. package/dist/utils/xhtml/confluence-schema.js.map +1 -0
  97. package/dist/utils/xhtml/index.d.ts +17 -0
  98. package/dist/utils/xhtml/index.d.ts.map +1 -0
  99. package/dist/utils/xhtml/index.js +21 -0
  100. package/dist/utils/xhtml/index.js.map +1 -0
  101. package/dist/utils/xhtml/operations.d.ts +100 -0
  102. package/dist/utils/xhtml/operations.d.ts.map +1 -0
  103. package/dist/utils/xhtml/operations.js +596 -0
  104. package/dist/utils/xhtml/operations.js.map +1 -0
  105. package/dist/utils/xhtml/parser.d.ts +64 -0
  106. package/dist/utils/xhtml/parser.d.ts.map +1 -0
  107. package/dist/utils/xhtml/parser.js +180 -0
  108. package/dist/utils/xhtml/parser.js.map +1 -0
  109. package/dist/utils/xhtml/plantuml.d.ts +112 -0
  110. package/dist/utils/xhtml/plantuml.d.ts.map +1 -0
  111. package/dist/utils/xhtml/plantuml.js +251 -0
  112. package/dist/utils/xhtml/plantuml.js.map +1 -0
  113. package/dist/utils/xhtml/selector.d.ts +35 -0
  114. package/dist/utils/xhtml/selector.d.ts.map +1 -0
  115. package/dist/utils/xhtml/selector.js +358 -0
  116. package/dist/utils/xhtml/selector.js.map +1 -0
  117. package/dist/utils/xhtml/serializer.d.ts +26 -0
  118. package/dist/utils/xhtml/serializer.d.ts.map +1 -0
  119. package/dist/utils/xhtml/serializer.js +170 -0
  120. package/dist/utils/xhtml/serializer.js.map +1 -0
  121. package/dist/utils/xhtml/types.d.ts +134 -0
  122. package/dist/utils/xhtml/types.d.ts.map +1 -0
  123. package/dist/utils/xhtml/types.js +65 -0
  124. package/dist/utils/xhtml/types.js.map +1 -0
  125. package/dist/utils/xhtml/validator.d.ts +67 -0
  126. package/dist/utils/xhtml/validator.d.ts.map +1 -0
  127. package/dist/utils/xhtml/validator.js +300 -0
  128. package/dist/utils/xhtml/validator.js.map +1 -0
  129. package/package.json +5 -1
@@ -0,0 +1,140 @@
1
+ /**
2
+ * Write-home validator for Confluence operations
3
+ * Restricts write operations to user's personal space
4
+ */
5
+ // Tools that require space validation
6
+ const CONFLUENCE_WRITE_TOOLS_REQUIRING_VALIDATION = [
7
+ "confluence_delete_page",
8
+ "confluence_add_comment",
9
+ "confluence_upload_attachment",
10
+ "confluence_draft_create",
11
+ "confluence_draft_save",
12
+ "confluence_draft_delete",
13
+ ];
14
+ export class WriteHomeValidator {
15
+ client;
16
+ cachedUserSpaceKey = null;
17
+ cacheTimestamp = 0;
18
+ CACHE_TTL_MS = 5 * 60 * 1000; // 5 minutes
19
+ constructor(client) {
20
+ this.client = client;
21
+ }
22
+ /**
23
+ * Check if write-home validation is needed for this tool
24
+ */
25
+ requiresValidation(toolName) {
26
+ return CONFLUENCE_WRITE_TOOLS_REQUIRING_VALIDATION.includes(toolName);
27
+ }
28
+ /**
29
+ * Get the user's personal space key (cached)
30
+ */
31
+ async getUserSpaceKey() {
32
+ const now = Date.now();
33
+ if (this.cachedUserSpaceKey && now - this.cacheTimestamp < this.CACHE_TTL_MS) {
34
+ return this.cachedUserSpaceKey;
35
+ }
36
+ const userSpace = await this.client.getCurrentUserSpace();
37
+ if (userSpace) {
38
+ this.cachedUserSpaceKey = userSpace.key;
39
+ this.cacheTimestamp = now;
40
+ }
41
+ return this.cachedUserSpaceKey;
42
+ }
43
+ /**
44
+ * Validate a write operation against write-home policy
45
+ */
46
+ async validate(toolName, args) {
47
+ if (!this.requiresValidation(toolName)) {
48
+ return { allowed: true };
49
+ }
50
+ const userSpaceKey = await this.getUserSpaceKey();
51
+ if (!userSpaceKey) {
52
+ return {
53
+ allowed: false,
54
+ reason: "Could not determine your personal space. Write-home restriction requires a personal space.",
55
+ };
56
+ }
57
+ // For draft creation, validate spaceKey directly
58
+ if (toolName === "confluence_draft_create") {
59
+ const targetSpaceKey = args.spaceKey;
60
+ if (targetSpaceKey !== userSpaceKey) {
61
+ return {
62
+ allowed: false,
63
+ reason: `Write-home restriction: Can only create drafts in your personal space (${userSpaceKey}), not in ${targetSpaceKey}`,
64
+ userSpaceKey,
65
+ targetSpaceKey,
66
+ };
67
+ }
68
+ return { allowed: true, userSpaceKey };
69
+ }
70
+ // For delete/comment/attachment on published pages, fetch page to get its space
71
+ if (toolName === "confluence_delete_page" ||
72
+ toolName === "confluence_add_comment" ||
73
+ toolName === "confluence_upload_attachment") {
74
+ const pageId = args.pageId;
75
+ try {
76
+ const page = await this.client.getPage(pageId, ["space"]);
77
+ const targetSpaceKey = page.space?.key;
78
+ if (!targetSpaceKey) {
79
+ return {
80
+ allowed: false,
81
+ reason: `Could not determine space for page ${pageId}`,
82
+ };
83
+ }
84
+ if (targetSpaceKey !== userSpaceKey) {
85
+ return {
86
+ allowed: false,
87
+ reason: `Write-home restriction: Can only modify pages in your personal space (${userSpaceKey}), not in ${targetSpaceKey}`,
88
+ userSpaceKey,
89
+ targetSpaceKey,
90
+ };
91
+ }
92
+ return { allowed: true, userSpaceKey, targetSpaceKey };
93
+ }
94
+ catch (error) {
95
+ return {
96
+ allowed: false,
97
+ reason: `Could not fetch page ${pageId} to verify space: ${error instanceof Error ? error.message : String(error)}`,
98
+ };
99
+ }
100
+ }
101
+ // For draft save/delete, fetch draft to get its space
102
+ if (toolName === "confluence_draft_save" || toolName === "confluence_draft_delete") {
103
+ const draftId = args.draftId;
104
+ try {
105
+ const draft = await this.client.getDraft(draftId);
106
+ const targetSpaceKey = draft.space?.key;
107
+ if (!targetSpaceKey) {
108
+ return {
109
+ allowed: false,
110
+ reason: `Could not determine space for draft ${draftId}`,
111
+ };
112
+ }
113
+ if (targetSpaceKey !== userSpaceKey) {
114
+ return {
115
+ allowed: false,
116
+ reason: `Write-home restriction: Can only modify drafts in your personal space (${userSpaceKey}), not in ${targetSpaceKey}`,
117
+ userSpaceKey,
118
+ targetSpaceKey,
119
+ };
120
+ }
121
+ return { allowed: true, userSpaceKey, targetSpaceKey };
122
+ }
123
+ catch (error) {
124
+ return {
125
+ allowed: false,
126
+ reason: `Could not fetch draft ${draftId} to verify space: ${error instanceof Error ? error.message : String(error)}`,
127
+ };
128
+ }
129
+ }
130
+ return { allowed: true };
131
+ }
132
+ /**
133
+ * Clear the cached user space key
134
+ */
135
+ clearCache() {
136
+ this.cachedUserSpaceKey = null;
137
+ this.cacheTimestamp = 0;
138
+ }
139
+ }
140
+ //# sourceMappingURL=write-home-validator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"write-home-validator.js","sourceRoot":"","sources":["../../src/permissions/write-home-validator.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/tempo/tools.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAc1C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,WAAW;;;;;;;;;;;;;;;;;;;;;;wBAsBxB;YACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;YAClB,MAAM,CAAC,EAAE,MAAM,CAAC;YAChB,UAAU,CAAC,EAAE,MAAM,CAAC;YACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;YAClB,SAAS,CAAC,EAAE,MAAM,CAAC;SACpB,KAAG,OAAO,CAAC,UAAU,CAAC;;;;;;;;;;;wBA2BD;YAAE,SAAS,EAAE,MAAM,CAAA;SAAE,KAAG,OAAO,CAAC,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;wBAuC3C;YACpB,QAAQ,EAAE,MAAM,CAAC;YACjB,KAAK,EAAE,MAAM,CAAC;YACd,IAAI,EAAE,MAAM,CAAC;YACb,WAAW,CAAC,EAAE,MAAM,CAAC;YACrB,SAAS,CAAC,EAAE,MAAM,CAAC;YACnB,sBAAsB,CAAC,EAAE,MAAM,CAAC;SACjC,KAAG,OAAO,CAAC,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;wBAsCD;YACpB,SAAS,EAAE,MAAM,CAAC;YAClB,KAAK,CAAC,EAAE,MAAM,CAAC;YACf,WAAW,CAAC,EAAE,MAAM,CAAC;YACrB,IAAI,CAAC,EAAE,MAAM,CAAC;SACf,KAAG,OAAO,CAAC,UAAU,CAAC;;;;;;;;;;;wBAqCD;YAAE,SAAS,EAAE,MAAM,CAAA;SAAE,KAAG,OAAO,CAAC,UAAU,CAAC;;;;;uBAmB9C,OAAO,CAAC,UAAU,CAAC;;;;;;;;;;;wBAwBhB;YAAE,UAAU,EAAE,MAAM,CAAA;SAAE,KAAG,OAAO,CAAC,UAAU,CAAC;;;;;uBAsB/C,OAAO,CAAC,UAAU,CAAC;;;;;;;;;;;wBAwBhB;YAAE,MAAM,EAAE,MAAM,CAAA;SAAE,KAAG,OAAO,CAAC,UAAU,CAAC;;;;;;;;;;;;;;;;;wBA0BxC;YACpB,MAAM,EAAE,MAAM,CAAC;YACf,QAAQ,EAAE,MAAM,CAAC;YACjB,MAAM,EAAE,MAAM,CAAC;SAChB,KAAG,OAAO,CAAC,UAAU,CAAC;;;;;uBAuBJ,OAAO,CAAC,UAAU,CAAC;;;;;;;;;;;;;;;;;wBAyBhB;YACpB,OAAO,EAAE,MAAM,CAAC;YAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;YAClB,MAAM,CAAC,EAAE,MAAM,CAAC;SACjB,KAAG,OAAO,CAAC,UAAU,CAAC;;EAkE5B"}
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/tempo/tools.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAS1C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,WAAW;;;;;;;;;;;;;;;;;;;;;;wBAwBxB;YACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;YAClB,MAAM,CAAC,EAAE,MAAM,CAAC;YAChB,UAAU,CAAC,EAAE,MAAM,CAAC;YACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;YAClB,SAAS,CAAC,EAAE,MAAM,CAAC;SACpB,KAAG,OAAO,CAAC,UAAU,CAAC;;;;;;;;;;;wBA2BD;YAAE,SAAS,EAAE,MAAM,CAAA;SAAE,KAAG,OAAO,CAAC,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;wBAqC3C;YACpB,QAAQ,EAAE,MAAM,CAAC;YACjB,KAAK,EAAE,MAAM,CAAC;YACd,IAAI,EAAE,MAAM,CAAC;YACb,WAAW,CAAC,EAAE,MAAM,CAAC;YACrB,SAAS,CAAC,EAAE,MAAM,CAAC;YACnB,sBAAsB,CAAC,EAAE,MAAM,CAAC;SACjC,KAAG,OAAO,CAAC,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;wBA8CD;YACpB,SAAS,EAAE,MAAM,CAAC;YAClB,KAAK,CAAC,EAAE,MAAM,CAAC;YACf,WAAW,CAAC,EAAE,MAAM,CAAC;YACrB,IAAI,CAAC,EAAE,MAAM,CAAC;SACf,KAAG,OAAO,CAAC,UAAU,CAAC;;;;;;;;;;;wBAkDD;YAAE,SAAS,EAAE,MAAM,CAAA;SAAE,KAAG,OAAO,CAAC,UAAU,CAAC;;;;;uBAyB9C,OAAO,CAAC,UAAU,CAAC;;;;;;;;;;;wBAkBhB;YAAE,UAAU,EAAE,MAAM,CAAA;SAAE,KAAG,OAAO,CAAC,UAAU,CAAC;;;;;uBAgB/C,OAAO,CAAC,UAAU,CAAC;;;;;;;;;;;wBAkBhB;YAAE,MAAM,EAAE,MAAM,CAAA;SAAE,KAAG,OAAO,CAAC,UAAU,CAAC;;;;;;;;;;;;;;;;;wBAoBxC;YACpB,MAAM,EAAE,MAAM,CAAC;YACf,QAAQ,EAAE,MAAM,CAAC;YACjB,MAAM,EAAE,MAAM,CAAC;SAChB,KAAG,OAAO,CAAC,UAAU,CAAC;;;;;uBAuBJ,OAAO,CAAC,UAAU,CAAC;;;;;;;;;;;;;;;;;wBAyBhB;YACpB,OAAO,EAAE,MAAM,CAAC;YAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;YAClB,MAAM,CAAC,EAAE,MAAM,CAAC;SACjB,KAAG,OAAO,CAAC,UAAU,CAAC;;EAkE5B"}
@@ -2,14 +2,17 @@
2
2
  * Tempo MCP Tools
3
3
  */
4
4
  import { z } from "zod";
5
- import { formatSuccess, formatError, isApiError, } from "../utils/response-formatter.js";
6
- import { formatWorklogSearchMetadata, formatWorklog, formatAccount, formatAccounts, formatTeam, formatTeams, } from "./formatters.js";
5
+ import { formatSuccess, formatError, isApiError, formatConflictError, } from "../utils/response-formatter.js";
6
+ import { contentBuffer } from "../utils/content-buffer.js";
7
+ import { formatWorklogSearchMetadata } from "./formatters.js";
7
8
  export function createTempoTools(client) {
8
9
  return {
9
10
  tempo_get_worklogs: {
10
- description: `Get Tempo worklogs with filters. Use workerKey for user-specific results (get it from tempo_get_user_info).
11
+ description: `Get Tempo worklogs with filters.
11
12
 
12
- WARNING: No workerKey = returns ALL worklogs. Large responses are buffered.`,
13
+ BEFORE USING: Call tempo_get_user_info to get workerKey for user-specific results.
14
+
15
+ WARNING: No workerKey = returns ALL worklogs (slow!). Large responses are buffered.`,
13
16
  inputSchema: z.object({
14
17
  dateFrom: z.string().optional().describe("Start date (YYYY-MM-DD)"),
15
18
  dateTo: z.string().optional().describe("End date (YYYY-MM-DD)"),
@@ -47,14 +50,12 @@ WARNING: No workerKey = returns ALL worklogs. Large responses are buffered.`,
47
50
  handler: async (args) => {
48
51
  try {
49
52
  const result = await client.getWorklog(args.worklogId);
50
- return {
51
- content: [
52
- {
53
- type: "text",
54
- text: formatWorklog(result),
55
- },
56
- ],
57
- };
53
+ // Pass resource metadata for buffer tracking and invalidation
54
+ return formatSuccess(result, {
55
+ resourceType: "tempo_worklog",
56
+ resourceId: String(args.worklogId),
57
+ issueKey: result.issue?.key,
58
+ });
58
59
  }
59
60
  catch (error) {
60
61
  return formatError(isApiError(error) ? error : new Error(String(error)));
@@ -96,10 +97,15 @@ Time format: hours as decimal (1.5 = 1h 30m), date as YYYY-MM-DD.`,
96
97
  billableSeconds: timeSpentSeconds, // Default: all time is billable
97
98
  remainingEstimateSeconds,
98
99
  });
100
+ // Pass resource metadata for buffer tracking
99
101
  return formatSuccess({
100
102
  success: true,
101
103
  message: `Logged ${args.hours}h to ${args.issueKey} on ${args.date}`,
102
104
  worklog: result,
105
+ }, {
106
+ resourceType: "tempo_worklog",
107
+ resourceId: String(result.tempoWorklogId),
108
+ issueKey: args.issueKey,
103
109
  });
104
110
  }
105
111
  catch (error) {
@@ -129,6 +135,11 @@ Time format: hours as decimal (1.5 = 1h 30m), date as YYYY-MM-DD.`,
129
135
  updateData.startDate = args.date;
130
136
  }
131
137
  const result = await client.updateWorklog(args.worklogId, updateData);
138
+ // Invalidate any cached buffers for this worklog to prevent stale data
139
+ contentBuffer.invalidateByMetadata({
140
+ resourceType: "tempo_worklog",
141
+ resourceId: String(args.worklogId),
142
+ });
132
143
  return formatSuccess({
133
144
  success: true,
134
145
  message: `Updated worklog #${args.worklogId}`,
@@ -136,6 +147,13 @@ Time format: hours as decimal (1.5 = 1h 30m), date as YYYY-MM-DD.`,
136
147
  });
137
148
  }
138
149
  catch (error) {
150
+ // Handle version conflicts with actionable hints
151
+ if (isApiError(error) && error.statusCode === 409) {
152
+ return formatConflictError(error, {
153
+ resourceType: "tempo_worklog",
154
+ resourceId: String(args.worklogId),
155
+ });
156
+ }
139
157
  return formatError(isApiError(error) ? error : new Error(String(error)));
140
158
  }
141
159
  },
@@ -148,6 +166,11 @@ Time format: hours as decimal (1.5 = 1h 30m), date as YYYY-MM-DD.`,
148
166
  handler: async (args) => {
149
167
  try {
150
168
  await client.deleteWorklog(args.worklogId);
169
+ // Invalidate any cached buffers for this worklog
170
+ contentBuffer.invalidateByMetadata({
171
+ resourceType: "tempo_worklog",
172
+ resourceId: String(args.worklogId),
173
+ });
151
174
  return formatSuccess({
152
175
  success: true,
153
176
  message: `Deleted worklog #${args.worklogId}`,
@@ -164,14 +187,8 @@ Time format: hours as decimal (1.5 = 1h 30m), date as YYYY-MM-DD.`,
164
187
  handler: async () => {
165
188
  try {
166
189
  const result = await client.getAccounts();
167
- return {
168
- content: [
169
- {
170
- type: "text",
171
- text: formatAccounts(result),
172
- },
173
- ],
174
- };
190
+ // Use formatSuccess for automatic buffering of large responses
191
+ return formatSuccess(result);
175
192
  }
176
193
  catch (error) {
177
194
  return formatError(isApiError(error) ? error : new Error(String(error)));
@@ -186,14 +203,8 @@ Time format: hours as decimal (1.5 = 1h 30m), date as YYYY-MM-DD.`,
186
203
  handler: async (args) => {
187
204
  try {
188
205
  const result = await client.getAccount(args.accountKey);
189
- return {
190
- content: [
191
- {
192
- type: "text",
193
- text: formatAccount(result),
194
- },
195
- ],
196
- };
206
+ // Use formatSuccess for automatic buffering of large responses
207
+ return formatSuccess(result);
197
208
  }
198
209
  catch (error) {
199
210
  return formatError(isApiError(error) ? error : new Error(String(error)));
@@ -206,14 +217,8 @@ Time format: hours as decimal (1.5 = 1h 30m), date as YYYY-MM-DD.`,
206
217
  handler: async () => {
207
218
  try {
208
219
  const result = await client.getTeams();
209
- return {
210
- content: [
211
- {
212
- type: "text",
213
- text: formatTeams(result),
214
- },
215
- ],
216
- };
220
+ // Use formatSuccess for automatic buffering of large responses
221
+ return formatSuccess(result);
217
222
  }
218
223
  catch (error) {
219
224
  return formatError(isApiError(error) ? error : new Error(String(error)));
@@ -228,14 +233,8 @@ Time format: hours as decimal (1.5 = 1h 30m), date as YYYY-MM-DD.`,
228
233
  handler: async (args) => {
229
234
  try {
230
235
  const result = await client.getTeam(args.teamId);
231
- return {
232
- content: [
233
- {
234
- type: "text",
235
- text: formatTeam(result),
236
- },
237
- ],
238
- };
236
+ // Use formatSuccess for automatic buffering of large responses
237
+ return formatSuccess(result);
239
238
  }
240
239
  catch (error) {
241
240
  return formatError(isApiError(error) ? error : new Error(String(error)));
@@ -1 +1 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/tempo/tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/tempo/tools.ts"],"names":[],"mappings":"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"}
@@ -2,11 +2,30 @@
2
2
  * Buffer management tools for MCP Server
3
3
  *
4
4
  * Provides tools to retrieve chunks from buffered content,
5
- * list active buffers, clear buffers, search content, and edit content.
5
+ * list active buffers, clear buffers, search content, edit content,
6
+ * and save content to files.
6
7
  */
7
8
  import { z } from "zod";
8
9
  import type { CallToolResult } from "@modelcontextprotocol/sdk/types.js";
10
+ import { type SemanticPosition } from "./xhtml/index.js";
9
11
  export declare function createBufferTools(): {
12
+ buffer_create: {
13
+ description: string;
14
+ inputSchema: z.ZodObject<{
15
+ content: z.ZodString;
16
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
17
+ }, "strip", z.ZodTypeAny, {
18
+ content: string;
19
+ metadata?: Record<string, unknown> | undefined;
20
+ }, {
21
+ content: string;
22
+ metadata?: Record<string, unknown> | undefined;
23
+ }>;
24
+ handler: (args: {
25
+ content: string;
26
+ metadata?: Record<string, unknown>;
27
+ }) => Promise<CallToolResult>;
28
+ };
10
29
  buffer_get_chunk: {
11
30
  description: string;
12
31
  inputSchema: z.ZodObject<{
@@ -124,5 +143,104 @@ export declare function createBufferTools(): {
124
143
  replace_all?: boolean;
125
144
  }) => Promise<CallToolResult>;
126
145
  };
146
+ buffer_edit_xhtml: {
147
+ description: string;
148
+ inputSchema: z.ZodObject<{
149
+ bufferId: z.ZodString;
150
+ operation: z.ZodEnum<["insert", "insert-plantuml", "update", "update-plantuml", "remove", "move", "wrap"]>;
151
+ selector: z.ZodOptional<z.ZodString>;
152
+ position: z.ZodOptional<z.ZodEnum<["before", "after", "inside-start", "inside-end"]>>;
153
+ semanticPosition: z.ZodOptional<z.ZodEnum<["after-title", "after-heading", "before-content", "end", "after-toc"]>>;
154
+ content: z.ZodOptional<z.ZodString>;
155
+ plantuml: z.ZodOptional<z.ZodString>;
156
+ macroId: z.ZodOptional<z.ZodString>;
157
+ attributes: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
158
+ targetSelector: z.ZodOptional<z.ZodString>;
159
+ matchIndex: z.ZodOptional<z.ZodNumber>;
160
+ matchAll: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
161
+ validate: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
162
+ }, "strip", z.ZodTypeAny, {
163
+ bufferId: string;
164
+ operation: "update" | "insert" | "insert-plantuml" | "update-plantuml" | "remove" | "move" | "wrap";
165
+ matchAll: boolean;
166
+ validate: boolean;
167
+ content?: string | undefined;
168
+ attributes?: Record<string, string> | undefined;
169
+ selector?: string | undefined;
170
+ position?: "before" | "after" | "inside-start" | "inside-end" | undefined;
171
+ semanticPosition?: "after-title" | "after-heading" | "before-content" | "end" | "after-toc" | undefined;
172
+ plantuml?: string | undefined;
173
+ macroId?: string | undefined;
174
+ targetSelector?: string | undefined;
175
+ matchIndex?: number | undefined;
176
+ }, {
177
+ bufferId: string;
178
+ operation: "update" | "insert" | "insert-plantuml" | "update-plantuml" | "remove" | "move" | "wrap";
179
+ content?: string | undefined;
180
+ attributes?: Record<string, string> | undefined;
181
+ selector?: string | undefined;
182
+ position?: "before" | "after" | "inside-start" | "inside-end" | undefined;
183
+ semanticPosition?: "after-title" | "after-heading" | "before-content" | "end" | "after-toc" | undefined;
184
+ plantuml?: string | undefined;
185
+ macroId?: string | undefined;
186
+ targetSelector?: string | undefined;
187
+ matchIndex?: number | undefined;
188
+ matchAll?: boolean | undefined;
189
+ validate?: boolean | undefined;
190
+ }>;
191
+ handler: (args: {
192
+ bufferId: string;
193
+ operation: string;
194
+ selector?: string;
195
+ position?: string;
196
+ semanticPosition?: SemanticPosition;
197
+ content?: string;
198
+ plantuml?: string;
199
+ macroId?: string;
200
+ attributes?: Record<string, string>;
201
+ targetSelector?: string;
202
+ matchIndex?: number;
203
+ matchAll?: boolean;
204
+ validate?: boolean;
205
+ }) => Promise<CallToolResult>;
206
+ };
207
+ buffer_validate_xhtml: {
208
+ description: string;
209
+ inputSchema: z.ZodObject<{
210
+ bufferId: z.ZodString;
211
+ validatePlantUml: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
212
+ }, "strip", z.ZodTypeAny, {
213
+ bufferId: string;
214
+ validatePlantUml: boolean;
215
+ }, {
216
+ bufferId: string;
217
+ validatePlantUml?: boolean | undefined;
218
+ }>;
219
+ handler: (args: {
220
+ bufferId: string;
221
+ validatePlantUml?: boolean;
222
+ }) => Promise<CallToolResult>;
223
+ };
224
+ buffer_save_to_file: {
225
+ description: string;
226
+ inputSchema: z.ZodObject<{
227
+ bufferId: z.ZodString;
228
+ outputPath: z.ZodString;
229
+ decodeBase64: z.ZodOptional<z.ZodBoolean>;
230
+ }, "strip", z.ZodTypeAny, {
231
+ bufferId: string;
232
+ outputPath: string;
233
+ decodeBase64?: boolean | undefined;
234
+ }, {
235
+ bufferId: string;
236
+ outputPath: string;
237
+ decodeBase64?: boolean | undefined;
238
+ }>;
239
+ handler: (args: {
240
+ bufferId: string;
241
+ outputPath: string;
242
+ decodeBase64?: boolean;
243
+ }) => Promise<CallToolResult>;
244
+ };
127
245
  };
128
246
  //# sourceMappingURL=buffer-tools.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"buffer-tools.d.ts","sourceRoot":"","sources":["../../src/utils/buffer-tools.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAiDzE,wBAAgB,iBAAiB;;;;;;;;;;;;;;;;wBAiBL;YACpB,QAAQ,EAAE,MAAM,CAAC;YACjB,MAAM,CAAC,EAAE,MAAM,CAAC;YAChB,KAAK,CAAC,EAAE,MAAM,CAAC;SAChB,KAAG,OAAO,CAAC,cAAc,CAAC;;;;;uBAoCR,OAAO,CAAC,cAAc,CAAC;;;;;;;;;;;wBA2BpB;YAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;SAAE,KAAG,OAAO,CAAC,cAAc,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBA6E/C;YACpB,QAAQ,EAAE,MAAM,CAAC;YACjB,OAAO,EAAE,MAAM,CAAC;YAChB,IAAI,CAAC,EAAE,MAAM,CAAC;YACd,IAAI,CAAC,EAAE,MAAM,CAAC;YACd,IAAI,CAAC,EAAE,MAAM,CAAC;YACd,IAAI,CAAC,EAAE,OAAO,CAAC;YACf,IAAI,CAAC,EAAE,OAAO,CAAC;YACf,WAAW,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC;YAClC,SAAS,CAAC,EAAE,OAAO,CAAC;YACpB,UAAU,CAAC,EAAE,MAAM,CAAC;YACpB,MAAM,CAAC,EAAE,MAAM,CAAC;SACjB,KAAG,OAAO,CAAC,cAAc,CAAC;;;;;;;;;;;;;;;;;;;;wBAwGL;YACpB,QAAQ,EAAE,MAAM,CAAC;YACjB,UAAU,EAAE,MAAM,CAAC;YACnB,UAAU,EAAE,MAAM,CAAC;YACnB,WAAW,CAAC,EAAE,OAAO,CAAC;SACvB,KAAG,OAAO,CAAC,cAAc,CAAC;;EAoChC"}
1
+ {"version":3,"file":"buffer-tools.d.ts","sourceRoot":"","sources":["../../src/utils/buffer-tools.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAGzE,OAAO,EAcL,KAAK,gBAAgB,EACtB,MAAM,kBAAkB,CAAC;AAiF1B,wBAAgB,iBAAiB;;;;;;;;;;;;;wBAWL;YACpB,OAAO,EAAE,MAAM,CAAC;YAChB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;SACpC,KAAG,OAAO,CAAC,cAAc,CAAC;;;;;;;;;;;;;;;;;wBAoCL;YACpB,QAAQ,EAAE,MAAM,CAAC;YACjB,MAAM,CAAC,EAAE,MAAM,CAAC;YAChB,KAAK,CAAC,EAAE,MAAM,CAAC;SAChB,KAAG,OAAO,CAAC,cAAc,CAAC;;;;;uBA+CR,OAAO,CAAC,cAAc,CAAC;;;;;;;;;;;wBA2BpB;YAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;SAAE,KAAG,OAAO,CAAC,cAAc,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBA6E/C;YACpB,QAAQ,EAAE,MAAM,CAAC;YACjB,OAAO,EAAE,MAAM,CAAC;YAChB,IAAI,CAAC,EAAE,MAAM,CAAC;YACd,IAAI,CAAC,EAAE,MAAM,CAAC;YACd,IAAI,CAAC,EAAE,MAAM,CAAC;YACd,IAAI,CAAC,EAAE,OAAO,CAAC;YACf,IAAI,CAAC,EAAE,OAAO,CAAC;YACf,WAAW,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC;YAClC,SAAS,CAAC,EAAE,OAAO,CAAC;YACpB,UAAU,CAAC,EAAE,MAAM,CAAC;YACpB,MAAM,CAAC,EAAE,MAAM,CAAC;SACjB,KAAG,OAAO,CAAC,cAAc,CAAC;;;;;;;;;;;;;;;;;;;;wBA0GL;YACpB,QAAQ,EAAE,MAAM,CAAC;YACjB,UAAU,EAAE,MAAM,CAAC;YACnB,UAAU,EAAE,MAAM,CAAC;YACnB,WAAW,CAAC,EAAE,OAAO,CAAC;SACvB,KAAG,OAAO,CAAC,cAAc,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBAsEL;YACpB,QAAQ,EAAE,MAAM,CAAC;YACjB,SAAS,EAAE,MAAM,CAAC;YAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;YAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;YAClB,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;YACpC,OAAO,CAAC,EAAE,MAAM,CAAC;YACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;YAClB,OAAO,CAAC,EAAE,MAAM,CAAC;YACjB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YACpC,cAAc,CAAC,EAAE,MAAM,CAAC;YACxB,UAAU,CAAC,EAAE,MAAM,CAAC;YACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;YACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;SACpB,KAAG,OAAO,CAAC,cAAc,CAAC;;;;;;;;;;;;;;wBAyYL;YACpB,QAAQ,EAAE,MAAM,CAAC;YACjB,gBAAgB,CAAC,EAAE,OAAO,CAAC;SAC5B,KAAG,OAAO,CAAC,cAAc,CAAC;;;;;;;;;;;;;;;;;wBAkFL;YACpB,QAAQ,EAAE,MAAM,CAAC;YACjB,UAAU,EAAE,MAAM,CAAC;YACnB,YAAY,CAAC,EAAE,OAAO,CAAC;SACxB,KAAG,OAAO,CAAC,cAAc,CAAC;;EAiFhC"}