@crypto512/jicon-mcp 1.3.0 → 2.0.0

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 (160) hide show
  1. package/README.md +68 -85
  2. package/TOOL_LIST.md +704 -87
  3. package/dist/config/constants.d.ts +18 -7
  4. package/dist/config/constants.d.ts.map +1 -1
  5. package/dist/config/constants.js +21 -8
  6. package/dist/config/constants.js.map +1 -1
  7. package/dist/config/loader.d.ts +11 -11
  8. package/dist/config/loader.d.ts.map +1 -1
  9. package/dist/config/loader.js +53 -93
  10. package/dist/config/loader.js.map +1 -1
  11. package/dist/config/types.d.ts +3 -6
  12. package/dist/config/types.d.ts.map +1 -1
  13. package/dist/config/types.js +2 -4
  14. package/dist/config/types.js.map +1 -1
  15. package/dist/confluence/formatters.js +1 -1
  16. package/dist/confluence/formatters.js.map +1 -1
  17. package/dist/confluence/tools.d.ts +4 -0
  18. package/dist/confluence/tools.d.ts.map +1 -1
  19. package/dist/confluence/tools.js +180 -125
  20. package/dist/confluence/tools.js.map +1 -1
  21. package/dist/index.js +17 -26
  22. package/dist/index.js.map +1 -1
  23. package/dist/jira/formatters.d.ts +1 -0
  24. package/dist/jira/formatters.d.ts.map +1 -1
  25. package/dist/jira/formatters.js +13 -12
  26. package/dist/jira/formatters.js.map +1 -1
  27. package/dist/jira/tools.d.ts +4 -0
  28. package/dist/jira/tools.d.ts.map +1 -1
  29. package/dist/jira/tools.js +189 -50
  30. package/dist/jira/tools.js.map +1 -1
  31. package/dist/permissions/tool-registry.d.ts +2 -2
  32. package/dist/permissions/tool-registry.d.ts.map +1 -1
  33. package/dist/permissions/tool-registry.js +4 -2
  34. package/dist/permissions/tool-registry.js.map +1 -1
  35. package/dist/permissions/write-home-validator.d.ts.map +1 -1
  36. package/dist/permissions/write-home-validator.js +13 -3
  37. package/dist/permissions/write-home-validator.js.map +1 -1
  38. package/dist/tempo/defaults.d.ts +17 -0
  39. package/dist/tempo/defaults.d.ts.map +1 -0
  40. package/dist/tempo/defaults.js +26 -0
  41. package/dist/tempo/defaults.js.map +1 -0
  42. package/dist/tempo/tools.d.ts +5 -0
  43. package/dist/tempo/tools.d.ts.map +1 -1
  44. package/dist/tempo/tools.js +108 -34
  45. package/dist/tempo/tools.js.map +1 -1
  46. package/dist/utils/buffer-pipeline/index.d.ts +30 -0
  47. package/dist/utils/buffer-pipeline/index.d.ts.map +1 -0
  48. package/dist/utils/buffer-pipeline/index.js +317 -0
  49. package/dist/utils/buffer-pipeline/index.js.map +1 -0
  50. package/dist/utils/buffer-pipeline/output/csv.d.ts +20 -0
  51. package/dist/utils/buffer-pipeline/output/csv.d.ts.map +1 -0
  52. package/dist/utils/buffer-pipeline/output/csv.js +117 -0
  53. package/dist/utils/buffer-pipeline/output/csv.js.map +1 -0
  54. package/dist/utils/buffer-pipeline/output/json.d.ts +16 -0
  55. package/dist/utils/buffer-pipeline/output/json.d.ts.map +1 -0
  56. package/dist/utils/buffer-pipeline/output/json.js +48 -0
  57. package/dist/utils/buffer-pipeline/output/json.js.map +1 -0
  58. package/dist/utils/buffer-pipeline/output/markdown.d.ts +15 -0
  59. package/dist/utils/buffer-pipeline/output/markdown.d.ts.map +1 -0
  60. package/dist/utils/buffer-pipeline/output/markdown.js +105 -0
  61. package/dist/utils/buffer-pipeline/output/markdown.js.map +1 -0
  62. package/dist/utils/buffer-pipeline/output/xhtml-list.d.ts +16 -0
  63. package/dist/utils/buffer-pipeline/output/xhtml-list.d.ts.map +1 -0
  64. package/dist/utils/buffer-pipeline/output/xhtml-list.js +81 -0
  65. package/dist/utils/buffer-pipeline/output/xhtml-list.js.map +1 -0
  66. package/dist/utils/buffer-pipeline/output/xhtml-table.d.ts +15 -0
  67. package/dist/utils/buffer-pipeline/output/xhtml-table.d.ts.map +1 -0
  68. package/dist/utils/buffer-pipeline/output/xhtml-table.js +176 -0
  69. package/dist/utils/buffer-pipeline/output/xhtml-table.js.map +1 -0
  70. package/dist/utils/buffer-pipeline/schema.d.ts +1878 -0
  71. package/dist/utils/buffer-pipeline/schema.d.ts.map +1 -0
  72. package/dist/utils/buffer-pipeline/schema.js +168 -0
  73. package/dist/utils/buffer-pipeline/schema.js.map +1 -0
  74. package/dist/utils/buffer-pipeline/stages/filter.d.ts +32 -0
  75. package/dist/utils/buffer-pipeline/stages/filter.d.ts.map +1 -0
  76. package/dist/utils/buffer-pipeline/stages/filter.js +208 -0
  77. package/dist/utils/buffer-pipeline/stages/filter.js.map +1 -0
  78. package/dist/utils/buffer-pipeline/stages/format.d.ts +45 -0
  79. package/dist/utils/buffer-pipeline/stages/format.d.ts.map +1 -0
  80. package/dist/utils/buffer-pipeline/stages/format.js +160 -0
  81. package/dist/utils/buffer-pipeline/stages/format.js.map +1 -0
  82. package/dist/utils/buffer-pipeline/stages/group-by.d.ts +25 -0
  83. package/dist/utils/buffer-pipeline/stages/group-by.d.ts.map +1 -0
  84. package/dist/utils/buffer-pipeline/stages/group-by.js +190 -0
  85. package/dist/utils/buffer-pipeline/stages/group-by.js.map +1 -0
  86. package/dist/utils/buffer-pipeline/stages/select.d.ts +54 -0
  87. package/dist/utils/buffer-pipeline/stages/select.d.ts.map +1 -0
  88. package/dist/utils/buffer-pipeline/stages/select.js +228 -0
  89. package/dist/utils/buffer-pipeline/stages/select.js.map +1 -0
  90. package/dist/utils/buffer-pipeline/stages/sort.d.ts +20 -0
  91. package/dist/utils/buffer-pipeline/stages/sort.d.ts.map +1 -0
  92. package/dist/utils/buffer-pipeline/stages/sort.js +96 -0
  93. package/dist/utils/buffer-pipeline/stages/sort.js.map +1 -0
  94. package/dist/utils/buffer-pipeline/types.d.ts +277 -0
  95. package/dist/utils/buffer-pipeline/types.d.ts.map +1 -0
  96. package/dist/utils/buffer-pipeline/types.js +8 -0
  97. package/dist/utils/buffer-pipeline/types.js.map +1 -0
  98. package/dist/utils/buffer-tools.d.ts +749 -19
  99. package/dist/utils/buffer-tools.d.ts.map +1 -1
  100. package/dist/utils/buffer-tools.js +738 -491
  101. package/dist/utils/buffer-tools.js.map +1 -1
  102. package/dist/utils/content-buffer.d.ts +55 -4
  103. package/dist/utils/content-buffer.d.ts.map +1 -1
  104. package/dist/utils/content-buffer.js +107 -9
  105. package/dist/utils/content-buffer.js.map +1 -1
  106. package/dist/utils/jicon-help.d.ts +1 -1
  107. package/dist/utils/jicon-help.d.ts.map +1 -1
  108. package/dist/utils/jicon-help.js +253 -28
  109. package/dist/utils/jicon-help.js.map +1 -1
  110. package/dist/utils/json-structure.d.ts +121 -0
  111. package/dist/utils/json-structure.d.ts.map +1 -0
  112. package/dist/utils/json-structure.js +637 -0
  113. package/dist/utils/json-structure.js.map +1 -0
  114. package/dist/utils/plantuml/include-expander.d.ts +31 -30
  115. package/dist/utils/plantuml/include-expander.d.ts.map +1 -1
  116. package/dist/utils/plantuml/include-expander.js +167 -133
  117. package/dist/utils/plantuml/include-expander.js.map +1 -1
  118. package/dist/utils/plantuml/index.d.ts +3 -3
  119. package/dist/utils/plantuml/index.d.ts.map +1 -1
  120. package/dist/utils/plantuml/index.js +4 -4
  121. package/dist/utils/plantuml/index.js.map +1 -1
  122. package/dist/utils/plantuml/service.d.ts +13 -24
  123. package/dist/utils/plantuml/service.d.ts.map +1 -1
  124. package/dist/utils/plantuml/service.js +49 -99
  125. package/dist/utils/plantuml/service.js.map +1 -1
  126. package/dist/utils/plantuml/tools.d.ts.map +1 -1
  127. package/dist/utils/plantuml/tools.js +33 -72
  128. package/dist/utils/plantuml/tools.js.map +1 -1
  129. package/dist/utils/plantuml/types.d.ts +1 -35
  130. package/dist/utils/plantuml/types.d.ts.map +1 -1
  131. package/dist/utils/plantuml/types.js +1 -11
  132. package/dist/utils/plantuml/types.js.map +1 -1
  133. package/dist/utils/plantuml/validation-helper.d.ts +1 -1
  134. package/dist/utils/plantuml/validation-helper.js +12 -12
  135. package/dist/utils/plantuml/validation-helper.js.map +1 -1
  136. package/dist/utils/response-formatter.d.ts +61 -6
  137. package/dist/utils/response-formatter.d.ts.map +1 -1
  138. package/dist/utils/response-formatter.js +174 -91
  139. package/dist/utils/response-formatter.js.map +1 -1
  140. package/dist/utils/url-tools.d.ts.map +1 -1
  141. package/dist/utils/url-tools.js +22 -0
  142. package/dist/utils/url-tools.js.map +1 -1
  143. package/dist/utils/xhtml/error-locator.js +2 -2
  144. package/dist/utils/xhtml/error-locator.js.map +1 -1
  145. package/dist/utils/xhtml/index.d.ts +1 -1
  146. package/dist/utils/xhtml/index.d.ts.map +1 -1
  147. package/dist/utils/xhtml/index.js +1 -1
  148. package/dist/utils/xhtml/index.js.map +1 -1
  149. package/dist/utils/xhtml/parser.d.ts +34 -5
  150. package/dist/utils/xhtml/parser.d.ts.map +1 -1
  151. package/dist/utils/xhtml/parser.js +66 -11
  152. package/dist/utils/xhtml/parser.js.map +1 -1
  153. package/dist/utils/xhtml/plantuml.d.ts.map +1 -1
  154. package/dist/utils/xhtml/plantuml.js +5 -3
  155. package/dist/utils/xhtml/plantuml.js.map +1 -1
  156. package/dist/utils/xhtml/serializer.d.ts.map +1 -1
  157. package/dist/utils/xhtml/serializer.js +12 -15
  158. package/dist/utils/xhtml/serializer.js.map +1 -1
  159. package/package.json +12 -4
  160. package/crypto512-jicon-mcp-1.3.0.tgz +0 -0
@@ -4,10 +4,10 @@
4
4
  * Consolidates the repeated validation logic from buffer-tools.ts
5
5
  * into a single reusable function.
6
6
  *
7
- * Requires Docker-based validation - returns error if unavailable.
7
+ * Requires external PlantUML server - returns error if unavailable.
8
8
  */
9
9
  import { formatError } from "../response-formatter.js";
10
- import { validate as validatePlantUmlWithDocker, getUnavailableReason } from "./service.js";
10
+ import { validate as validatePlantUmlWithServer, getUnavailableReason } from "./service.js";
11
11
  /**
12
12
  * Validate PlantUML code using Docker-based validation.
13
13
  *
@@ -35,7 +35,7 @@ export async function validatePlantUmlWithFallback(code, operation, targetInfo)
35
35
  ...(operation === "insert-plantuml"
36
36
  ? { targetPosition }
37
37
  : { targetSelector: targetInfo?.selector }),
38
- hint: "PlantUML diagrams cannot be validated. Fix the Docker configuration or restart the MCP server.",
38
+ hint: "PlantUML validation unavailable. Set JICON_PLANTUML_SERVER_URL environment variable to enable.",
39
39
  },
40
40
  }),
41
41
  };
@@ -45,10 +45,10 @@ export async function validatePlantUmlWithFallback(code, operation, targetInfo)
45
45
  "2. Fix the PlantUML code based on the errors above",
46
46
  "3. Retry buffer_edit with corrected code",
47
47
  ];
48
- // Use Docker-based validation
48
+ // Use server-based validation
49
49
  try {
50
- const dockerValidation = await validatePlantUmlWithDocker(code);
51
- if (!dockerValidation.valid) {
50
+ const serverValidation = await validatePlantUmlWithServer(code);
51
+ if (!serverValidation.valid) {
52
52
  return {
53
53
  valid: false,
54
54
  error: formatError({
@@ -57,8 +57,8 @@ export async function validatePlantUmlWithFallback(code, operation, targetInfo)
57
57
  statusCode: 400,
58
58
  details: {
59
59
  operation,
60
- plantumlErrors: dockerValidation.errors,
61
- diagramType: dockerValidation.diagramType,
60
+ plantumlErrors: serverValidation.errors,
61
+ diagramType: serverValidation.diagramType,
62
62
  codePreview,
63
63
  ...(operation === "insert-plantuml"
64
64
  ? { targetPosition }
@@ -70,12 +70,12 @@ export async function validatePlantUmlWithFallback(code, operation, targetInfo)
70
70
  }
71
71
  return {
72
72
  valid: true,
73
- normalizedCode: dockerValidation.normalizedCode,
74
- diagramType: dockerValidation.diagramType,
73
+ normalizedCode: serverValidation.normalizedCode,
74
+ diagramType: serverValidation.diagramType,
75
75
  };
76
76
  }
77
77
  catch (error) {
78
- // Docker error - return error (no fallback)
78
+ // Server error - return error
79
79
  return {
80
80
  valid: false,
81
81
  error: formatError({
@@ -88,7 +88,7 @@ export async function validatePlantUmlWithFallback(code, operation, targetInfo)
88
88
  ...(operation === "insert-plantuml"
89
89
  ? { targetPosition }
90
90
  : { targetSelector: targetInfo?.selector }),
91
- hint: "PlantUML service is unavailable. Restart the MCP server or check Docker configuration.",
91
+ hint: "PlantUML service is unavailable. Check the server URL or restart MCP.",
92
92
  },
93
93
  }),
94
94
  };
@@ -1 +1 @@
1
- {"version":3,"file":"validation-helper.js","sourceRoot":"","sources":["../../../src/utils/plantuml/validation-helper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validation-helper.js","sourceRoot":"","sources":["../../../src/utils/plantuml/validation-helper.ts"],"names":[],"mappings":"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"}
@@ -8,18 +8,63 @@ import type { ToolResult, ApiError } from "../types.js";
8
8
  export declare function getMaxOutputSize(): number;
9
9
  export declare function formatSuccess(data: unknown, metadata?: Record<string, unknown>): ToolResult;
10
10
  /**
11
- * Format a successful response that ALWAYS buffers data.
12
- * Use for data-heavy tools (search, list, get) to provide consistent buffer-based access.
11
+ * Format response WITHOUT re-buffering.
12
+ * Use for buffer tools where data is already in a buffer.
13
+ * If response exceeds maxSize, truncates with hint instead of re-buffering.
13
14
  *
14
- * @param data - The data to buffer
15
- * @param metadata - Required metadata including resourceType and title for origin tracking
16
- * @returns ToolResult with bufferId and metadata
15
+ * This prevents the confusing pattern where:
16
+ * - buffer_get_items returns items
17
+ * - formatSuccess re-buffers them (creating nested buffers)
18
+ * - LLM sees _pagination and gets confused
17
19
  */
18
- export declare function formatSuccessBuffered(data: unknown, metadata: {
20
+ export declare function formatSuccessDirect(data: unknown, options?: {
21
+ truncateHint?: string;
22
+ }): ToolResult;
23
+ /**
24
+ * Format a successful response for JSON data with unified structure tracking.
25
+ * Handles both arrays and objects:
26
+ * - Arrays: items get stable IDs for ID-based access
27
+ * - Objects: keys are extracted for key-based access
28
+ *
29
+ * Returns a consistent response format with clear accessors.
30
+ *
31
+ * @param data - JSON data (array or object) to buffer
32
+ * @param metadata - Required metadata including resourceType and title
33
+ * @returns ToolResult with bufferId, structure, and accessors
34
+ */
35
+ export declare function formatSuccessJson(data: unknown, metadata: {
19
36
  resourceType: string;
20
37
  title: string;
21
38
  [key: string]: unknown;
22
39
  }): ToolResult;
40
+ /**
41
+ * Format a successful response for XHTML content with structure tracking.
42
+ * Use for Confluence page/draft content that needs structured editing.
43
+ *
44
+ * The elements get stable IDs (data-jicon-id) that can be used with buffer_edit for:
45
+ * - Inserting content after/before specific elements
46
+ * - Replacing specific elements
47
+ * - Removing elements by ID
48
+ *
49
+ * @param content - XHTML content string
50
+ * @param metadata - Required metadata including resourceType and title
51
+ * @returns Object with bufferId and structure on success, or errorResult (ToolResult) on failure
52
+ */
53
+ export declare function formatSuccessXhtml(content: string, metadata: {
54
+ resourceType: string;
55
+ title: string;
56
+ [key: string]: unknown;
57
+ }): {
58
+ bufferId: string;
59
+ structure: {
60
+ id: number;
61
+ type: string;
62
+ text?: string;
63
+ children?: number;
64
+ }[];
65
+ } | {
66
+ errorResult: ToolResult;
67
+ };
23
68
  export declare function formatError(error: ApiError | Error): ToolResult;
24
69
  export declare function isApiError(error: unknown): error is ApiError;
25
70
  /**
@@ -30,10 +75,20 @@ export interface ConflictHint {
30
75
  expectedVersion?: number;
31
76
  resourceId?: string;
32
77
  resourceType?: "confluence_page" | "jira_issue" | "tempo_worklog";
78
+ retriedOnce?: boolean;
33
79
  }
34
80
  /**
35
81
  * Format a 409 Conflict error with actionable hints for resolution
36
82
  * Provides specific guidance based on the resource type
37
83
  */
38
84
  export declare function formatConflictError(error: ApiError, hint?: ConflictHint): ToolResult;
85
+ /**
86
+ * Format XHTML-specific errors with context and fix suggestions
87
+ */
88
+ export interface XhtmlErrorContext {
89
+ elementId?: number;
90
+ bufferId: string;
91
+ errorType: "parsing" | "validation" | "macro";
92
+ }
93
+ export declare function formatXhtmlError(error: ApiError | Error, context: XhtmlErrorContext): ToolResult;
39
94
  //# sourceMappingURL=response-formatter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"response-formatter.d.ts","sourceRoot":"","sources":["../../src/utils/response-formatter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAMxD;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CASzC;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,UAAU,CAqE3F;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,OAAO,EACb,QAAQ,EAAE;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,GACxE,UAAU,CAiBZ;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,QAAQ,GAAG,KAAK,GAAG,UAAU,CA0B/D;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,QAAQ,CAO5D;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,iBAAiB,GAAG,YAAY,GAAG,eAAe,CAAC;CACnE;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,YAAY,GAAG,UAAU,CAwDpF"}
1
+ {"version":3,"file":"response-formatter.d.ts","sourceRoot":"","sources":["../../src/utils/response-formatter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAQxD;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CASzC;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,UAAU,CAiC3F;AAED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,OAAO,EACb,OAAO,CAAC,EAAE;IACR,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,GACA,UAAU,CAoBZ;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,OAAO,EACb,QAAQ,EAAE;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,GACxE,UAAU,CAwDZ;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,GACxE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CAAE,GAAG;IAAE,WAAW,EAAE,UAAU,CAAA;CAAE,CAuBjI;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,QAAQ,GAAG,KAAK,GAAG,UAAU,CAmB/D;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,QAAQ,CAO5D;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,iBAAiB,GAAG,YAAY,GAAG,eAAe,CAAC;IAClE,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,YAAY,GAAG,UAAU,CA0BpF;AAiCD;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,SAAS,GAAG,YAAY,GAAG,OAAO,CAAC;CAC/C;AAED,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,QAAQ,GAAG,KAAK,EACvB,OAAO,EAAE,iBAAiB,GACzB,UAAU,CA6CZ"}
@@ -2,6 +2,8 @@
2
2
  * Response formatting utilities for MCP tools
3
3
  */
4
4
  import { contentBuffer } from "./content-buffer.js";
5
+ import { createJsonStructure } from "./json-structure.js";
6
+ import { parseXhtml, parseStructure, serializeXhtml } from "./xhtml/index.js";
5
7
  // Default max output size (16KB), configurable via JICON_MAX_OUTPUT env var
6
8
  const DEFAULT_MAX_OUTPUT = 16000;
7
9
  /**
@@ -33,80 +35,141 @@ export function formatSuccess(data, metadata) {
33
35
  }
34
36
  // Exceeds limit: store in buffer and return pagination info only
35
37
  const bufferId = contentBuffer.store(jsonText, metadata);
36
- // Determine if this is Confluence content for better hints
37
- const isConfluence = metadata?.resourceType === "confluence_page" ||
38
- metadata?.resourceType === "confluence_draft";
39
- const editHint = isConfluence
40
- ? {
41
- edit_by_id: {
42
- tool: "buffer_edit",
43
- args: { bufferId, after: 1, content: "<p>new paragraph</p>" },
44
- description: "Insert/replace by element ID. Use buffer_get_structure to see IDs."
45
- },
46
- edit_plantuml: {
47
- tool: "buffer_edit",
48
- args: { bufferId, after: 1, plantuml: "@startuml...@enduml" },
49
- description: "Insert PlantUML diagram (auto-wrapped in Confluence macro)"
50
- },
51
- }
52
- : {
53
- edit: { tool: "buffer_edit", args: { bufferId, old_string: "old", new_string: "new" } },
54
- };
55
38
  return {
56
39
  content: [
57
40
  {
58
41
  type: "text",
59
42
  text: JSON.stringify({
60
43
  _pagination: true,
61
- status: "SUCCESS - Data retrieved and buffered",
62
- warning: "DO NOT retry or modify this query. The data is already available in the buffer below.",
63
- instruction: "Use buffer_get_chunk with the bufferId to retrieve the content in chunks.",
64
- recommendation: "For complex analysis of large data, consider spawning a sub-agent (Task tool) with the bufferId to process efficiently without consuming main conversation context.",
65
44
  bufferId,
66
- totalSize: jsonText.length,
67
- limit: maxSize,
68
45
  hasMore: true,
69
- next_action: {
70
- tool: "buffer_get_chunk",
71
- args: { bufferId, offset: 0, limit: 5000 },
72
- },
73
- alternative_actions: {
74
- read: { tool: "buffer_get_chunk", args: { bufferId, offset: 0, limit: 5000 } },
75
- search: { tool: "buffer_grep", args: { bufferId, pattern: "your_search_term" } },
76
- ...editHint,
77
- list: { tool: "buffer_list", args: {} },
78
- subagent: { tool: "Task", args: { prompt: "Analyze bufferId: " + bufferId } },
79
- },
80
- }, null, 2),
46
+ next: { tool: "buffer_get_chunk", args: { bufferId, offset: 0, limit: 5000 } },
47
+ actions: ["buffer_get_chunk", "buffer_grep", "buffer_edit", "buffer_list"],
48
+ }),
81
49
  },
82
50
  ],
83
51
  };
84
52
  }
85
53
  /**
86
- * Format a successful response that ALWAYS buffers data.
87
- * Use for data-heavy tools (search, list, get) to provide consistent buffer-based access.
54
+ * Format response WITHOUT re-buffering.
55
+ * Use for buffer tools where data is already in a buffer.
56
+ * If response exceeds maxSize, truncates with hint instead of re-buffering.
88
57
  *
89
- * @param data - The data to buffer
90
- * @param metadata - Required metadata including resourceType and title for origin tracking
91
- * @returns ToolResult with bufferId and metadata
58
+ * This prevents the confusing pattern where:
59
+ * - buffer_get_items returns items
60
+ * - formatSuccess re-buffers them (creating nested buffers)
61
+ * - LLM sees _pagination and gets confused
92
62
  */
93
- export function formatSuccessBuffered(data, metadata) {
63
+ export function formatSuccessDirect(data, options) {
64
+ const maxSize = getMaxOutputSize();
94
65
  const jsonText = JSON.stringify(data, null, 2);
95
- const bufferId = contentBuffer.store(jsonText, metadata);
66
+ if (jsonText.length <= maxSize) {
67
+ return {
68
+ content: [{ type: "text", text: jsonText }],
69
+ };
70
+ }
71
+ // Truncate instead of re-buffering
72
+ const truncated = jsonText.substring(0, maxSize - 200);
73
+ const hint = options?.truncateHint ?? "Response truncated. Use smaller batch size or access items individually.";
74
+ return {
75
+ content: [{
76
+ type: "text",
77
+ text: truncated + `\n\n... [TRUNCATED - ${hint}]`,
78
+ }],
79
+ };
80
+ }
81
+ /**
82
+ * Format a successful response for JSON data with unified structure tracking.
83
+ * Handles both arrays and objects:
84
+ * - Arrays: items get stable IDs for ID-based access
85
+ * - Objects: keys are extracted for key-based access
86
+ *
87
+ * Returns a consistent response format with clear accessors.
88
+ *
89
+ * @param data - JSON data (array or object) to buffer
90
+ * @param metadata - Required metadata including resourceType and title
91
+ * @returns ToolResult with bufferId, structure, and accessors
92
+ */
93
+ export function formatSuccessJson(data, metadata) {
94
+ const { content, structure } = createJsonStructure(data);
95
+ const bufferId = contentBuffer.storeJsonWithStructure(content, structure, {
96
+ ...metadata,
97
+ contentType: "json",
98
+ });
99
+ // Build response based on structure type
100
+ const isArray = structure.rootType === "array";
101
+ const isObject = structure.rootType === "object";
102
+ // Build preview for arrays
103
+ const preview = isArray
104
+ ? structure.items?.slice(0, 5).map(item => ({
105
+ id: item.id,
106
+ preview: item.preview,
107
+ }))
108
+ : undefined;
109
+ // Extract Jira-specific metadata for clearer field names
110
+ const totalIssues = metadata.totalIssues;
111
+ const itemCount = structure.itemCount ?? 0;
112
+ // Build truncation note when Jira found more than we returned
113
+ const truncationNote = isArray && totalIssues && totalIssues > itemCount
114
+ ? `${totalIssues} issues match query, ${itemCount} returned (API limit)`
115
+ : undefined;
116
+ // Compact hint for large arrays
117
+ const hint = isArray && (structure.itemCount ?? 0) > 20
118
+ ? `${structure.itemCount} items. buffer_pipeline for tables, buffer_get_items for analysis.`
119
+ : undefined;
96
120
  return {
97
121
  content: [
98
122
  {
99
123
  type: "text",
100
124
  text: JSON.stringify({
125
+ _pagination: true,
101
126
  bufferId,
102
- metadata,
103
- totalSize: jsonText.length,
104
- hint: "Use buffer_get_chunk(bufferId) to read, buffer_grep(bufferId, pattern) to search",
105
- }, null, 2),
127
+ contentType: "json",
128
+ resourceType: metadata.resourceType,
129
+ ...(isArray && { returnedItems: itemCount }),
130
+ ...(totalIssues !== undefined && { jiraTotalMatching: totalIssues }),
131
+ ...(truncationNote && { note: truncationNote }),
132
+ ...(hint && { hint }),
133
+ structure: {
134
+ type: structure.rootType,
135
+ ...(isArray && preview && { preview }),
136
+ ...(isObject && { keys: structure.keys }),
137
+ },
138
+ actions: ["buffer_pipeline", "buffer_get_items", "buffer_grep"],
139
+ }),
106
140
  },
107
141
  ],
108
142
  };
109
143
  }
144
+ /**
145
+ * Format a successful response for XHTML content with structure tracking.
146
+ * Use for Confluence page/draft content that needs structured editing.
147
+ *
148
+ * The elements get stable IDs (data-jicon-id) that can be used with buffer_edit for:
149
+ * - Inserting content after/before specific elements
150
+ * - Replacing specific elements
151
+ * - Removing elements by ID
152
+ *
153
+ * @param content - XHTML content string
154
+ * @param metadata - Required metadata including resourceType and title
155
+ * @returns Object with bufferId and structure on success, or errorResult (ToolResult) on failure
156
+ */
157
+ export function formatSuccessXhtml(content, metadata) {
158
+ const parseResult = parseXhtml(content);
159
+ if (parseResult.error || !parseResult.document) {
160
+ return { errorResult: formatError({
161
+ error: true,
162
+ message: parseResult.error?.message || "Failed to parse XHTML content",
163
+ }) };
164
+ }
165
+ const structureResult = parseStructure(parseResult.document);
166
+ const contentWithIds = serializeXhtml(parseResult.document);
167
+ const bufferId = contentBuffer.storeWithStructure(contentWithIds, structureResult.structure, structureResult.nextId, {
168
+ ...metadata,
169
+ contentType: "xhtml",
170
+ });
171
+ return { bufferId, structure: structureResult.structure };
172
+ }
110
173
  export function formatError(error) {
111
174
  const errorObj = error instanceof Error
112
175
  ? {
@@ -115,17 +178,11 @@ export function formatError(error) {
115
178
  details: { stack: error.stack },
116
179
  }
117
180
  : error;
118
- // Add explicit failure indicators to help LLMs understand the operation failed
119
- const enhancedError = {
120
- ...errorObj,
121
- FAILED: true, // Redundant but explicit indicator for LLM
122
- action: "FIX_ERRORS_BEFORE_RETRY",
123
- };
124
181
  return {
125
182
  content: [
126
183
  {
127
184
  type: "text",
128
- text: JSON.stringify(enhancedError, null, 2),
185
+ text: JSON.stringify(errorObj),
129
186
  },
130
187
  ],
131
188
  isError: true,
@@ -142,51 +199,77 @@ export function isApiError(error) {
142
199
  * Provides specific guidance based on the resource type
143
200
  */
144
201
  export function formatConflictError(error, hint) {
145
- const message = error.message || "Version conflict detected";
146
- let enhancedMessage = message;
147
- enhancedMessage += "\n\n--- Version Conflict Resolution ---";
148
- if (hint?.resourceType === "confluence_page") {
149
- enhancedMessage += "\n\nThe page was modified since you read it. To resolve:";
150
- enhancedMessage += "\n1. Re-fetch the page with confluence_get_page to get current version";
151
- enhancedMessage += "\n2. Review any changes made by other users";
152
- enhancedMessage += "\n3. Retry the update with the new version number";
153
- if (hint.resourceId) {
154
- enhancedMessage += `\n\nSuggested action: confluence_get_page(pageId: "${hint.resourceId}")`;
155
- }
156
- }
157
- else if (hint?.resourceType === "jira_issue") {
158
- enhancedMessage += "\n\nThe issue was modified since you read it. To resolve:";
159
- enhancedMessage += "\n1. Re-fetch the issue with jira_get_issue to see current state";
160
- enhancedMessage += "\n2. Review changes and retry your update";
161
- if (hint.resourceId) {
162
- enhancedMessage += `\n\nSuggested action: jira_get_issue(issueKey: "${hint.resourceId}")`;
163
- }
202
+ const versionInfo = hint?.expectedVersion !== undefined && hint?.currentVersion !== undefined
203
+ ? ` (you: v${hint.expectedVersion}, server: v${hint.currentVersion})`
204
+ : "";
205
+ // Build compact refetch suggestion
206
+ const refetchTool = hint?.resourceType === "confluence_page" && hint.resourceId
207
+ ? `confluence_get_page(pageId="${hint.resourceId}")`
208
+ : hint?.resourceType === "jira_issue" && hint.resourceId
209
+ ? `jira_get_issue(issueKey="${hint.resourceId}")`
210
+ : hint?.resourceType === "tempo_worklog" && hint.resourceId
211
+ ? `tempo_get_worklog(worklogId=${hint.resourceId})`
212
+ : "re-fetch resource";
213
+ return {
214
+ content: [
215
+ {
216
+ type: "text",
217
+ text: JSON.stringify({
218
+ ...error,
219
+ message: `Version conflict${versionInfo}. Re-fetch with ${refetchTool} and retry.`,
220
+ }),
221
+ },
222
+ ],
223
+ isError: true,
224
+ };
225
+ }
226
+ /**
227
+ * Common XHTML fixes for different error types
228
+ */
229
+ function getCommonXhtmlFixes(errorType) {
230
+ const fixes = [];
231
+ if (errorType === "parsing") {
232
+ fixes.push("Use <br/> not <br> (self-closing required)", "Use <hr/> not <hr> (self-closing required)", "Close all tags: <p>text</p> not <p>text", "Escape ampersands: &amp; not &", "Use lowercase tags: <li> not <LI>");
164
233
  }
165
- else if (hint?.resourceType === "tempo_worklog") {
166
- enhancedMessage += "\n\nThe worklog was modified since you read it. To resolve:";
167
- enhancedMessage += "\n1. Re-fetch the worklog with tempo_get_worklog";
168
- enhancedMessage += "\n2. Review current values and retry";
169
- if (hint.resourceId) {
170
- enhancedMessage += `\n\nSuggested action: tempo_get_worklog(worklogId: ${hint.resourceId})`;
171
- }
234
+ else if (errorType === "validation") {
235
+ fixes.push("Check element structure with buffer_get_element", "Ensure XHTML well-formedness", "Use buffer_validate_xhtml before saving");
172
236
  }
173
- else {
174
- enhancedMessage += "\n\nGeneral resolution steps:";
175
- enhancedMessage += "\n1. Re-fetch the resource to get current state";
176
- enhancedMessage += "\n2. Review any concurrent changes";
177
- enhancedMessage += "\n3. Retry your operation with updated data";
237
+ else if (errorType === "macro") {
238
+ fixes.push("Use plantuml parameter for PlantUML, not content", "Include @startuml/@enduml markers", "Validate with plantuml_validate first");
178
239
  }
179
- if (hint?.expectedVersion !== undefined && hint?.currentVersion !== undefined) {
180
- enhancedMessage += `\n\nVersion mismatch: you provided ${hint.expectedVersion}, server has ${hint.currentVersion}`;
240
+ return fixes;
241
+ }
242
+ export function formatXhtmlError(error, context) {
243
+ const baseError = error instanceof Error
244
+ ? {
245
+ error: true,
246
+ message: error.message,
247
+ details: { stack: error.stack },
248
+ }
249
+ : error;
250
+ const suggestedActions = {
251
+ validate: `buffer_validate_xhtml(bufferId="${context.bufferId}")`,
252
+ };
253
+ if (context.elementId !== undefined) {
254
+ suggestedActions.inspect = `buffer_get_element(bufferId="${context.bufferId}", elementId=${context.elementId})`;
255
+ suggestedActions.fix = `buffer_edit(bufferId="${context.bufferId}", replace=${context.elementId}, content="<corrected>")`;
181
256
  }
257
+ const commonFixes = getCommonXhtmlFixes(context.errorType);
182
258
  return {
183
259
  content: [
184
260
  {
185
261
  type: "text",
186
262
  text: JSON.stringify({
187
- ...error,
188
- message: enhancedMessage,
189
- conflictHint: hint,
263
+ ...baseError,
264
+ FAILED: true,
265
+ errorContext: {
266
+ elementId: context.elementId,
267
+ bufferId: context.bufferId,
268
+ errorType: context.errorType,
269
+ },
270
+ suggestedActions,
271
+ commonFixes,
272
+ helpTopic: 'Run help(topic="storage") for XHTML syntax reference',
190
273
  }, null, 2),
191
274
  },
192
275
  ],
@@ -1 +1 @@
1
- {"version":3,"file":"response-formatter.js","sourceRoot":"","sources":["../../src/utils/response-formatter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"response-formatter.js","sourceRoot":"","sources":["../../src/utils/response-formatter.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"url-tools.d.ts","sourceRoot":"","sources":["../../src/utils/url-tools.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAIzE,KAAK,SAAS,GACV,YAAY,GACZ,oBAAoB,GACpB,iBAAiB,GACjB,UAAU,GACV,SAAS,CAAC;AAGd,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,YAAY,GAAG,iBAAiB,GAAG,kBAAkB,GAAG,uBAAuB,GAAG,SAAS,CAAC;IAClG,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAGF,MAAM,WAAW,SAAS;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAyBxD;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CACtB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,SAAS,EACf,MAAM,EAAE,SAAS,GAChB;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAuDtD;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,CAgFrD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,SAAS;;;;;;;;;;wBA0BpB;YAAE,KAAK,EAAE,MAAM,CAAA;SAAE,KAAG,OAAO,CAAC,cAAc,CAAC;;;;;;;;;;;wBAqE3C;YAAE,GAAG,EAAE,MAAM,CAAA;SAAE,KAAG,OAAO,CAAC,cAAc,CAAC;;EAoCpE;AAGD,eAAO,MAAM,SAAS,kCAAmC,CAAC"}
1
+ {"version":3,"file":"url-tools.d.ts","sourceRoot":"","sources":["../../src/utils/url-tools.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAIzE,KAAK,SAAS,GACV,YAAY,GACZ,oBAAoB,GACpB,iBAAiB,GACjB,UAAU,GACV,SAAS,CAAC;AAGd,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,YAAY,GAAG,iBAAiB,GAAG,kBAAkB,GAAG,uBAAuB,GAAG,SAAS,CAAC;IAClG,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAGF,MAAM,WAAW,SAAS;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAyBxD;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CACtB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,SAAS,EACf,MAAM,EAAE,SAAS,GAChB;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAuDtD;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,CAgFrD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,SAAS;;;;;;;;;;wBA0BpB;YAAE,KAAK,EAAE,MAAM,CAAA;SAAE,KAAG,OAAO,CAAC,cAAc,CAAC;;;;;;;;;;;wBAqE3C;YAAE,GAAG,EAAE,MAAM,CAAA;SAAE,KAAG,OAAO,CAAC,cAAc,CAAC;;EA0DpE;AAGD,eAAO,MAAM,SAAS,kCAAmC,CAAC"}
@@ -276,9 +276,31 @@ WORKFLOW:
276
276
  },
277
277
  });
278
278
  }
279
+ // Check if URL domain matches configured base URLs and warn if not
280
+ let domainWarning;
281
+ try {
282
+ const parsedUrl = new URL(url.trim());
283
+ const urlDomain = parsedUrl.origin;
284
+ if (result.type === "jira_issue" && config.jiraUrl) {
285
+ const configuredDomain = new URL(config.jiraUrl).origin;
286
+ if (urlDomain !== configuredDomain) {
287
+ domainWarning = `URL domain (${urlDomain}) does not match configured JIRA_URL (${configuredDomain}). The parsed identifiers may not work with your Jira instance.`;
288
+ }
289
+ }
290
+ else if (result.type.startsWith("confluence_") && config.confluenceUrl) {
291
+ const configuredDomain = new URL(config.confluenceUrl).origin;
292
+ if (urlDomain !== configuredDomain) {
293
+ domainWarning = `URL domain (${urlDomain}) does not match configured CONFLUENCE_URL (${configuredDomain}). Use the correct Confluence URL: ${configuredDomain}`;
294
+ }
295
+ }
296
+ }
297
+ catch {
298
+ // URL parsing failed - ignore, the result is still useful
299
+ }
279
300
  return formatSuccess({
280
301
  url: url.trim(),
281
302
  ...result,
303
+ ...(domainWarning && { warning: domainWarning }),
282
304
  });
283
305
  },
284
306
  },
@@ -1 +1 @@
1
- {"version":3,"file":"url-tools.js","sourceRoot":"","sources":["../../src/utils/url-tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"url-tools.js","sourceRoot":"","sources":["../../src/utils/url-tools.ts"],"names":[],"mappings":"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"}