@crypto512/jicon-mcp 1.2.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.
- package/README.md +73 -67
- package/TOOL_LIST.md +785 -133
- package/dist/config/constants.d.ts +18 -7
- package/dist/config/constants.d.ts.map +1 -1
- package/dist/config/constants.js +21 -8
- package/dist/config/constants.js.map +1 -1
- package/dist/config/loader.d.ts +11 -11
- package/dist/config/loader.d.ts.map +1 -1
- package/dist/config/loader.js +53 -93
- package/dist/config/loader.js.map +1 -1
- package/dist/config/types.d.ts +3 -6
- package/dist/config/types.d.ts.map +1 -1
- package/dist/config/types.js +2 -4
- package/dist/config/types.js.map +1 -1
- package/dist/confluence/formatters.js +1 -1
- package/dist/confluence/formatters.js.map +1 -1
- package/dist/confluence/tools.d.ts +8 -12
- package/dist/confluence/tools.d.ts.map +1 -1
- package/dist/confluence/tools.js +285 -233
- package/dist/confluence/tools.js.map +1 -1
- package/dist/index.js +17 -26
- package/dist/index.js.map +1 -1
- package/dist/jira/formatters.d.ts +1 -0
- package/dist/jira/formatters.d.ts.map +1 -1
- package/dist/jira/formatters.js +13 -12
- package/dist/jira/formatters.js.map +1 -1
- package/dist/jira/tools.d.ts +4 -0
- package/dist/jira/tools.d.ts.map +1 -1
- package/dist/jira/tools.js +234 -44
- package/dist/jira/tools.js.map +1 -1
- package/dist/permissions/tool-registry.d.ts +2 -2
- package/dist/permissions/tool-registry.d.ts.map +1 -1
- package/dist/permissions/tool-registry.js +4 -2
- package/dist/permissions/tool-registry.js.map +1 -1
- package/dist/permissions/write-home-validator.d.ts.map +1 -1
- package/dist/permissions/write-home-validator.js +13 -3
- package/dist/permissions/write-home-validator.js.map +1 -1
- package/dist/tempo/defaults.d.ts +17 -0
- package/dist/tempo/defaults.d.ts.map +1 -0
- package/dist/tempo/defaults.js +26 -0
- package/dist/tempo/defaults.js.map +1 -0
- package/dist/tempo/tools.d.ts +5 -0
- package/dist/tempo/tools.d.ts.map +1 -1
- package/dist/tempo/tools.js +161 -35
- package/dist/tempo/tools.js.map +1 -1
- package/dist/utils/buffer-pipeline/index.d.ts +30 -0
- package/dist/utils/buffer-pipeline/index.d.ts.map +1 -0
- package/dist/utils/buffer-pipeline/index.js +317 -0
- package/dist/utils/buffer-pipeline/index.js.map +1 -0
- package/dist/utils/buffer-pipeline/output/csv.d.ts +20 -0
- package/dist/utils/buffer-pipeline/output/csv.d.ts.map +1 -0
- package/dist/utils/buffer-pipeline/output/csv.js +117 -0
- package/dist/utils/buffer-pipeline/output/csv.js.map +1 -0
- package/dist/utils/buffer-pipeline/output/json.d.ts +16 -0
- package/dist/utils/buffer-pipeline/output/json.d.ts.map +1 -0
- package/dist/utils/buffer-pipeline/output/json.js +48 -0
- package/dist/utils/buffer-pipeline/output/json.js.map +1 -0
- package/dist/utils/buffer-pipeline/output/markdown.d.ts +15 -0
- package/dist/utils/buffer-pipeline/output/markdown.d.ts.map +1 -0
- package/dist/utils/buffer-pipeline/output/markdown.js +105 -0
- package/dist/utils/buffer-pipeline/output/markdown.js.map +1 -0
- package/dist/utils/buffer-pipeline/output/xhtml-list.d.ts +16 -0
- package/dist/utils/buffer-pipeline/output/xhtml-list.d.ts.map +1 -0
- package/dist/utils/buffer-pipeline/output/xhtml-list.js +81 -0
- package/dist/utils/buffer-pipeline/output/xhtml-list.js.map +1 -0
- package/dist/utils/buffer-pipeline/output/xhtml-table.d.ts +15 -0
- package/dist/utils/buffer-pipeline/output/xhtml-table.d.ts.map +1 -0
- package/dist/utils/buffer-pipeline/output/xhtml-table.js +176 -0
- package/dist/utils/buffer-pipeline/output/xhtml-table.js.map +1 -0
- package/dist/utils/buffer-pipeline/schema.d.ts +1878 -0
- package/dist/utils/buffer-pipeline/schema.d.ts.map +1 -0
- package/dist/utils/buffer-pipeline/schema.js +168 -0
- package/dist/utils/buffer-pipeline/schema.js.map +1 -0
- package/dist/utils/buffer-pipeline/stages/filter.d.ts +32 -0
- package/dist/utils/buffer-pipeline/stages/filter.d.ts.map +1 -0
- package/dist/utils/buffer-pipeline/stages/filter.js +208 -0
- package/dist/utils/buffer-pipeline/stages/filter.js.map +1 -0
- package/dist/utils/buffer-pipeline/stages/format.d.ts +45 -0
- package/dist/utils/buffer-pipeline/stages/format.d.ts.map +1 -0
- package/dist/utils/buffer-pipeline/stages/format.js +160 -0
- package/dist/utils/buffer-pipeline/stages/format.js.map +1 -0
- package/dist/utils/buffer-pipeline/stages/group-by.d.ts +25 -0
- package/dist/utils/buffer-pipeline/stages/group-by.d.ts.map +1 -0
- package/dist/utils/buffer-pipeline/stages/group-by.js +190 -0
- package/dist/utils/buffer-pipeline/stages/group-by.js.map +1 -0
- package/dist/utils/buffer-pipeline/stages/select.d.ts +54 -0
- package/dist/utils/buffer-pipeline/stages/select.d.ts.map +1 -0
- package/dist/utils/buffer-pipeline/stages/select.js +228 -0
- package/dist/utils/buffer-pipeline/stages/select.js.map +1 -0
- package/dist/utils/buffer-pipeline/stages/sort.d.ts +20 -0
- package/dist/utils/buffer-pipeline/stages/sort.d.ts.map +1 -0
- package/dist/utils/buffer-pipeline/stages/sort.js +96 -0
- package/dist/utils/buffer-pipeline/stages/sort.js.map +1 -0
- package/dist/utils/buffer-pipeline/types.d.ts +277 -0
- package/dist/utils/buffer-pipeline/types.d.ts.map +1 -0
- package/dist/utils/buffer-pipeline/types.js +8 -0
- package/dist/utils/buffer-pipeline/types.js.map +1 -0
- package/dist/utils/buffer-tools.d.ts +749 -19
- package/dist/utils/buffer-tools.d.ts.map +1 -1
- package/dist/utils/buffer-tools.js +738 -491
- package/dist/utils/buffer-tools.js.map +1 -1
- package/dist/utils/content-buffer.d.ts +55 -4
- package/dist/utils/content-buffer.d.ts.map +1 -1
- package/dist/utils/content-buffer.js +107 -9
- package/dist/utils/content-buffer.js.map +1 -1
- package/dist/utils/jicon-help.d.ts +1 -1
- package/dist/utils/jicon-help.d.ts.map +1 -1
- package/dist/utils/jicon-help.js +345 -99
- package/dist/utils/jicon-help.js.map +1 -1
- package/dist/utils/json-structure.d.ts +121 -0
- package/dist/utils/json-structure.d.ts.map +1 -0
- package/dist/utils/json-structure.js +637 -0
- package/dist/utils/json-structure.js.map +1 -0
- package/dist/utils/plantuml/include-expander.d.ts +31 -30
- package/dist/utils/plantuml/include-expander.d.ts.map +1 -1
- package/dist/utils/plantuml/include-expander.js +167 -133
- package/dist/utils/plantuml/include-expander.js.map +1 -1
- package/dist/utils/plantuml/index.d.ts +3 -3
- package/dist/utils/plantuml/index.d.ts.map +1 -1
- package/dist/utils/plantuml/index.js +4 -4
- package/dist/utils/plantuml/index.js.map +1 -1
- package/dist/utils/plantuml/service.d.ts +13 -24
- package/dist/utils/plantuml/service.d.ts.map +1 -1
- package/dist/utils/plantuml/service.js +49 -99
- package/dist/utils/plantuml/service.js.map +1 -1
- package/dist/utils/plantuml/tools.d.ts.map +1 -1
- package/dist/utils/plantuml/tools.js +33 -72
- package/dist/utils/plantuml/tools.js.map +1 -1
- package/dist/utils/plantuml/types.d.ts +1 -35
- package/dist/utils/plantuml/types.d.ts.map +1 -1
- package/dist/utils/plantuml/types.js +1 -11
- package/dist/utils/plantuml/types.js.map +1 -1
- package/dist/utils/plantuml/validation-helper.d.ts +1 -1
- package/dist/utils/plantuml/validation-helper.js +12 -12
- package/dist/utils/plantuml/validation-helper.js.map +1 -1
- package/dist/utils/response-formatter.d.ts +68 -0
- package/dist/utils/response-formatter.d.ts.map +1 -1
- package/dist/utils/response-formatter.js +186 -78
- package/dist/utils/response-formatter.js.map +1 -1
- package/dist/utils/url-tools.d.ts.map +1 -1
- package/dist/utils/url-tools.js +22 -0
- package/dist/utils/url-tools.js.map +1 -1
- package/dist/utils/xhtml/error-locator.js +2 -2
- package/dist/utils/xhtml/error-locator.js.map +1 -1
- package/dist/utils/xhtml/index.d.ts +1 -1
- package/dist/utils/xhtml/index.d.ts.map +1 -1
- package/dist/utils/xhtml/index.js +1 -1
- package/dist/utils/xhtml/index.js.map +1 -1
- package/dist/utils/xhtml/parser.d.ts +34 -5
- package/dist/utils/xhtml/parser.d.ts.map +1 -1
- package/dist/utils/xhtml/parser.js +66 -11
- package/dist/utils/xhtml/parser.js.map +1 -1
- package/dist/utils/xhtml/plantuml.d.ts.map +1 -1
- package/dist/utils/xhtml/plantuml.js +5 -3
- package/dist/utils/xhtml/plantuml.js.map +1 -1
- package/dist/utils/xhtml/serializer.d.ts.map +1 -1
- package/dist/utils/xhtml/serializer.js +12 -15
- package/dist/utils/xhtml/serializer.js.map +1 -1
- package/dist/utils/xhtml/types.d.ts +1 -0
- package/dist/utils/xhtml/types.d.ts.map +1 -1
- package/package.json +12 -4
package/dist/utils/jicon-help.js
CHANGED
|
@@ -6,23 +6,27 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { z } from "zod";
|
|
8
8
|
import { formatSuccess, formatError } from "./response-formatter.js";
|
|
9
|
-
import { ALLOWED_INCLUDE_URLS } from "./plantuml/index.js";
|
|
10
9
|
// Available topics
|
|
11
10
|
const TOPICS = ["jql", "cql", "storage", "plantuml", "buffers"];
|
|
12
11
|
// Default workflow guide (shown when no topic specified)
|
|
13
12
|
const WORKFLOW_GUIDE = `# Jicon Quick Reference
|
|
14
13
|
|
|
14
|
+
TOOLS: jira(16) confluence(18) tempo(11) buffer(14) plantuml(3) url(2) help(1)
|
|
15
|
+
|
|
15
16
|
## Decision Tree - Which Topic?
|
|
16
17
|
|
|
17
18
|
| Task | First Step |
|
|
18
19
|
|------|------------|
|
|
19
20
|
| Edit Confluence page | \`confluence_edit(input)\` ← accepts URL, pageId, or SPACE/Title |
|
|
20
|
-
| Create NEW page | \`
|
|
21
|
+
| Create NEW page | \`buffer_create(content, contentType="xhtml")\` then \`confluence_draft_create\` |
|
|
21
22
|
| Create page with diagram | \`help(topic="plantuml")\` |
|
|
22
|
-
| XHTML syntax needed | \`help(topic="storage")\` |
|
|
23
|
+
| XHTML syntax needed | \`help(topic="storage")\` ← **READ THIS for HTML vs XHTML** |
|
|
23
24
|
| Search Confluence | \`help(topic="cql")\` |
|
|
24
25
|
| Search Jira | \`jira_get_issue_types()\` then \`help(topic="jql")\` |
|
|
25
26
|
| Log/get time | \`tempo_get_user_info()\` first |
|
|
27
|
+
| **Create table from Jira data** | \`buffer_pipeline(bufferId, pipeline={output:{type:"xhtml_table"}})\` |
|
|
28
|
+
| **Iterate items for AI analysis** | \`buffer_get_items(bufferId, start=0, count=50)\` |
|
|
29
|
+
| **Large dataset + AI columns** | Batch workflow - see \`help(topic="buffers")\` |
|
|
26
30
|
|
|
27
31
|
---
|
|
28
32
|
|
|
@@ -34,16 +38,16 @@ const WORKFLOW_GUIDE = `# Jicon Quick Reference
|
|
|
34
38
|
- Accepts: URL, pageId, "draft:ID", or "SPACE/Title"
|
|
35
39
|
→ Returns: bufferId, structure (element IDs), pageId
|
|
36
40
|
2. buffer_edit(bufferId, after=ID, content/plantuml/fromBufferId)
|
|
37
|
-
→ Use content="<p>text</p>" for XHTML
|
|
41
|
+
→ Use content="<p>text</p>" for XHTML (use <br/> not <br>!)
|
|
38
42
|
→ Use plantuml="@startuml..." for diagrams
|
|
39
43
|
→ Use fromBufferId="buf_xxx" to merge another buffer
|
|
40
|
-
3.
|
|
44
|
+
3. buffer_validate_xhtml(bufferId) → check for errors before saving
|
|
45
|
+
4. confluence_draft_create(pageId=..., bufferId=...)
|
|
41
46
|
→ Creates "[jicon-mcp REVIEW] Title" draft linked to original
|
|
42
47
|
→ Returns: reviewDraftId, draft URL for user review
|
|
43
|
-
|
|
44
|
-
|
|
48
|
+
5. User reviews in Confluence UI (can share draft with team)
|
|
49
|
+
6. confluence_review_publish(reviewDraftId) → applies changes to original
|
|
45
50
|
OR confluence_review_discard(reviewDraftId) → cancels without changes
|
|
46
|
-
6. For more edits: confluence_edit(same URL or "SPACE/Title")
|
|
47
51
|
\`\`\`
|
|
48
52
|
|
|
49
53
|
**Review Workflow Tools:**
|
|
@@ -51,14 +55,24 @@ const WORKFLOW_GUIDE = `# Jicon Quick Reference
|
|
|
51
55
|
- \`confluence_review_discard(reviewDraftId)\` - Discard without changes
|
|
52
56
|
- \`confluence_review_list()\` - Find all review drafts for cleanup
|
|
53
57
|
|
|
54
|
-
|
|
58
|
+
**Draft Management Tools:**
|
|
59
|
+
- \`confluence_draft_list()\` - List all drafts in your personal space
|
|
60
|
+
- \`confluence_draft_open(draftId)\` - Reopen a draft for editing
|
|
61
|
+
- \`confluence_draft_delete(draftId)\` - Delete a draft
|
|
62
|
+
|
|
63
|
+
### Create NEW Confluence Page (Buffer-First)
|
|
55
64
|
\`\`\`
|
|
56
|
-
1.
|
|
57
|
-
→ Returns:
|
|
58
|
-
2.
|
|
59
|
-
|
|
65
|
+
1. buffer_create(content="<h1>Title</h1><p>Content</p>", contentType="xhtml")
|
|
66
|
+
→ Returns: bufferId, structure (element IDs)
|
|
67
|
+
2. buffer_validate_xhtml(bufferId)
|
|
68
|
+
→ If errors: use buffer_edit(bufferId, replace=elementId, ...) to fix
|
|
69
|
+
3. confluence_draft_create(spaceKey, title, bufferId)
|
|
70
|
+
→ Returns: draftId, draft URL for user review
|
|
71
|
+
4. User reviews and publishes via Confluence UI
|
|
60
72
|
\`\`\`
|
|
61
73
|
|
|
74
|
+
**Why buffer-first?** Enables validation and surgical error fixing with element IDs.
|
|
75
|
+
|
|
62
76
|
### Insert PlantUML Diagram
|
|
63
77
|
\`\`\`
|
|
64
78
|
1. plantuml_validate(code="@startuml...") ← Validate FIRST
|
|
@@ -143,7 +157,18 @@ const JQL_HELP = `# JQL Syntax Guide
|
|
|
143
157
|
- Date functions: startOfDay(), startOfWeek(), startOfMonth(), now()
|
|
144
158
|
- Relative dates: startOfDay(-7) = 7 days ago
|
|
145
159
|
- Always quote field values that contain spaces
|
|
146
|
-
- Issue type names may be localized (e.g., "Epopee" instead of "Epic")
|
|
160
|
+
- Issue type names may be localized (e.g., "Epopee" instead of "Epic")
|
|
161
|
+
|
|
162
|
+
## Response Fields (jira_search_issues)
|
|
163
|
+
- returnedItems: Items available in buffer (max 5000) - USE THIS
|
|
164
|
+
- jiraTotalMatching: Total Jira found (may exceed returnedItems)
|
|
165
|
+
- apiLimit: Maximum per search (5000)
|
|
166
|
+
- If jiraTotalMatching > returnedItems, refine JQL to narrow results
|
|
167
|
+
|
|
168
|
+
## Date Handling Tips
|
|
169
|
+
- "Last week" in business context = previous Mon-Fri (e.g., Dec 8-12)
|
|
170
|
+
- "Rolling 7 days" = use startOfDay(-7)
|
|
171
|
+
- For exact date ranges, use explicit dates: updated >= "2025-12-08" AND updated <= "2025-12-12"`;
|
|
147
172
|
// CQL syntax guide
|
|
148
173
|
const CQL_HELP = `# CQL Syntax Guide
|
|
149
174
|
|
|
@@ -196,25 +221,48 @@ OK: (text~"term1" OR text~"term2") - Each term needs its own text~ operator
|
|
|
196
221
|
- Use space KEY (e.g., 'DOCS') not space name (e.g., 'Documentation')
|
|
197
222
|
- Date functions: now(), startOfDay(), startOfWeek(), startOfMonth()
|
|
198
223
|
- Relative dates: now("-7d") = 7 days ago
|
|
199
|
-
- Results are
|
|
224
|
+
- Results are always buffered - use buffer_get_chunk to read, buffer_grep to search`;
|
|
200
225
|
// Confluence storage format (XHTML syntax only)
|
|
201
226
|
const STORAGE_FORMAT_HELP = `# Confluence Storage Format (XHTML)
|
|
202
227
|
|
|
203
|
-
|
|
228
|
+
Confluence uses **XHTML** (strict XML), NOT loose HTML5. This matters!
|
|
204
229
|
|
|
205
|
-
## CRITICAL:
|
|
230
|
+
## CRITICAL: HTML vs XHTML Differences
|
|
206
231
|
|
|
207
|
-
|
|
232
|
+
| HTML (loose) | XHTML (strict) | Why |
|
|
233
|
+
|--------------|----------------|-----|
|
|
234
|
+
| \`<br>\` | \`<br/>\` | Self-closing required |
|
|
235
|
+
| \`<hr>\` | \`<hr/>\` | Self-closing required |
|
|
236
|
+
| \`<img src="x">\` | \`<img src="x"/>\` | Self-closing required |
|
|
237
|
+
| \`<p>text\` | \`<p>text</p>\` | All tags must close |
|
|
238
|
+
| \`<li>item\` | \`<li>item</li>\` | All tags must close |
|
|
239
|
+
| \`&\` in URLs | \`&\` | Must escape special chars |
|
|
240
|
+
| \`<LI>\` | \`<li>\` | Tags are lowercase |
|
|
208
241
|
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
</
|
|
242
|
+
## Common Mistakes to AVOID
|
|
243
|
+
|
|
244
|
+
| ❌ Wrong | ✅ Correct | Error |
|
|
245
|
+
|----------|-----------|-------|
|
|
246
|
+
| \`<br>\` | \`<br/>\` | Parser expects \`</br>\` |
|
|
247
|
+
| \`li>item</li>\` | \`<li>item</li>\` | Missing \`<\` before tag |
|
|
248
|
+
| \`h2. Title\` | \`<h2>Title</h2>\` | Wiki syntax not allowed |
|
|
249
|
+
| \`**bold**\` | \`<strong>bold</strong>\` | Markdown not allowed |
|
|
250
|
+
| \`<![CDATA[<p>...</p>]]>\` | \`<p>...</p>\` | CDATA only in macros |
|
|
251
|
+
|
|
252
|
+
## Workflow: Buffer-First Approach
|
|
215
253
|
|
|
216
|
-
|
|
217
|
-
|
|
254
|
+
\`\`\`
|
|
255
|
+
1. buffer_create(content="<h1>Title</h1><p>Text</p>", contentType="xhtml")
|
|
256
|
+
→ bufferId, structure (element IDs)
|
|
257
|
+
|
|
258
|
+
2. buffer_validate_xhtml(bufferId)
|
|
259
|
+
→ If errors: shows elementId to fix
|
|
260
|
+
|
|
261
|
+
3. buffer_edit(bufferId, replace=elementId, content="<p>Fixed</p>")
|
|
262
|
+
→ Surgical fix using element ID
|
|
263
|
+
|
|
264
|
+
4. confluence_draft_create(spaceKey, title, bufferId)
|
|
265
|
+
→ Creates draft for user review
|
|
218
266
|
\`\`\`
|
|
219
267
|
|
|
220
268
|
## Basic Elements
|
|
@@ -222,11 +270,41 @@ CDATA is ONLY used inside \`<ac:plain-text-body>\` elements (code blocks, PlantU
|
|
|
222
270
|
| Element | Syntax |
|
|
223
271
|
|---------|--------|
|
|
224
272
|
| Paragraph | \`<p>text</p>\` |
|
|
225
|
-
| Headings | \`<h1
|
|
226
|
-
| Bold/Italic | \`<strong>\`, \`<em>\` |
|
|
273
|
+
| Headings | \`<h1>...</h1>\` to \`<h6>...</h6>\` |
|
|
274
|
+
| Bold/Italic | \`<strong>text</strong>\`, \`<em>text</em>\` |
|
|
275
|
+
| Line break | \`<br/>\` (self-closing!) |
|
|
276
|
+
| Horizontal rule | \`<hr/>\` (self-closing!) |
|
|
227
277
|
| Code inline | \`<code>text</code>\` |
|
|
228
|
-
|
|
|
229
|
-
|
|
278
|
+
| List | \`<ul><li>item</li></ul>\` or \`<ol><li>...</li></ol>\` |
|
|
279
|
+
|
|
280
|
+
## Links (IMPORTANT: Two Types!)
|
|
281
|
+
|
|
282
|
+
### External Links (Jira, Web URLs)
|
|
283
|
+
For links to external sites including Jira issues, use standard HTML anchor tags:
|
|
284
|
+
\`\`\`xml
|
|
285
|
+
<a href="https://jira.example.com/browse/PROJ-123">PROJ-123</a>
|
|
286
|
+
<a href="https://example.com">Example Site</a>
|
|
287
|
+
\`\`\`
|
|
288
|
+
|
|
289
|
+
**Example: Jira links in a table:**
|
|
290
|
+
\`\`\`xml
|
|
291
|
+
<table><tbody>
|
|
292
|
+
<tr><th>Issue</th><th>Summary</th></tr>
|
|
293
|
+
<tr>
|
|
294
|
+
<td><a href="https://jira.example.com/browse/FR-1301">FR-1301</a></td>
|
|
295
|
+
<td>Fix login bug</td>
|
|
296
|
+
</tr>
|
|
297
|
+
</tbody></table>
|
|
298
|
+
\`\`\`
|
|
299
|
+
|
|
300
|
+
### Confluence Page Links (Internal)
|
|
301
|
+
For links to other Confluence pages, use the ac:link macro:
|
|
302
|
+
\`\`\`xml
|
|
303
|
+
<ac:link><ri:page ri:content-title="Page Title"/>
|
|
304
|
+
<ac:plain-text-link-body><![CDATA[Link Text]]></ac:plain-text-link-body>
|
|
305
|
+
</ac:link>
|
|
306
|
+
\`\`\`
|
|
307
|
+
Cross-space: add \`ri:space-key="KEY"\` to ri:page
|
|
230
308
|
|
|
231
309
|
## Tables
|
|
232
310
|
\`\`\`xml
|
|
@@ -248,14 +326,6 @@ Merge cells: \`colspan="2"\`, \`rowspan="2"\`
|
|
|
248
326
|
\`\`\`
|
|
249
327
|
Types: \`single\`, \`two_equal\`, \`two_left_sidebar\`, \`two_right_sidebar\`, \`three_equal\`
|
|
250
328
|
|
|
251
|
-
## Page Links
|
|
252
|
-
\`\`\`xml
|
|
253
|
-
<ac:link><ri:page ri:content-title="Page Title"/>
|
|
254
|
-
<ac:plain-text-link-body><![CDATA[Link Text]]></ac:plain-text-link-body>
|
|
255
|
-
</ac:link>
|
|
256
|
-
\`\`\`
|
|
257
|
-
Cross-space: add \`ri:space-key="KEY"\` to ri:page
|
|
258
|
-
|
|
259
329
|
## Images
|
|
260
330
|
\`\`\`xml
|
|
261
331
|
<ac:image ac:width="300"><ri:attachment ri:filename="image.png"/></ac:image>
|
|
@@ -269,10 +339,14 @@ Cross-space: add \`ri:space-key="KEY"\` to ri:page
|
|
|
269
339
|
</ac:task-list>
|
|
270
340
|
\`\`\`
|
|
271
341
|
|
|
272
|
-
##
|
|
342
|
+
## Status Indicators (use emoticons)
|
|
273
343
|
\`\`\`xml
|
|
274
|
-
<ac:emoticon ac:name="tick"/>
|
|
275
|
-
<ac:emoticon ac:name="
|
|
344
|
+
<ac:emoticon ac:name="tick"/> <!-- ✓ green checkmark -->
|
|
345
|
+
<ac:emoticon ac:name="cross"/> <!-- ✗ red X -->
|
|
346
|
+
<ac:emoticon ac:name="warning"/> <!-- ⚠ yellow warning -->
|
|
347
|
+
<ac:emoticon ac:name="information"/> <!-- ℹ blue info -->
|
|
348
|
+
<ac:emoticon ac:name="plus"/> <!-- + green plus -->
|
|
349
|
+
<ac:emoticon ac:name="minus"/> <!-- - red minus -->
|
|
276
350
|
\`\`\`
|
|
277
351
|
|
|
278
352
|
## Code Block Macro
|
|
@@ -291,18 +365,31 @@ Cross-space: add \`ri:space-key="KEY"\` to ri:page
|
|
|
291
365
|
\`\`\`
|
|
292
366
|
Types: \`info\`, \`note\`, \`warning\`, \`tip\`
|
|
293
367
|
|
|
294
|
-
##
|
|
368
|
+
## CDATA Rules
|
|
369
|
+
|
|
370
|
+
**CDATA is ONLY used inside \`<ac:plain-text-body>\`** (code blocks, PlantUML):
|
|
371
|
+
\`\`\`xml
|
|
372
|
+
<!-- CORRECT: CDATA inside ac:plain-text-body -->
|
|
373
|
+
<ac:structured-macro ac:name="code">
|
|
374
|
+
<ac:plain-text-body><![CDATA[code here]]></ac:plain-text-body>
|
|
375
|
+
</ac:structured-macro>
|
|
376
|
+
|
|
377
|
+
<!-- WRONG: CDATA wrapping regular content -->
|
|
378
|
+
<![CDATA[<h1>Title</h1>]]>
|
|
379
|
+
\`\`\`
|
|
380
|
+
|
|
381
|
+
## Macro Content Rules
|
|
295
382
|
|
|
296
383
|
| Element | Content Allowed |
|
|
297
384
|
|---------|-----------------|
|
|
298
385
|
| \`ac:parameter\` | Plain text only (no child elements) |
|
|
299
|
-
| \`ac:plain-text-body\` | Raw text
|
|
300
|
-
| \`ac:rich-text-body\` | XHTML for info/warning panels |
|
|
386
|
+
| \`ac:plain-text-body\` | Raw text wrapped in \`<![CDATA[...]]>\` |
|
|
387
|
+
| \`ac:rich-text-body\` | XHTML (for info/warning panels) |
|
|
301
388
|
|
|
302
389
|
---
|
|
303
390
|
|
|
304
|
-
For element ID editing
|
|
305
|
-
For PlantUML diagrams
|
|
391
|
+
For element ID editing: \`help(topic="buffers")\`
|
|
392
|
+
For PlantUML diagrams: \`help(topic="plantuml")\``;
|
|
306
393
|
// PlantUML syntax guide (Confluence-specific only - LLMs know PlantUML syntax)
|
|
307
394
|
const PLANTUML_HELP = `# PlantUML in Confluence
|
|
308
395
|
|
|
@@ -322,18 +409,6 @@ const PLANTUML_HELP = `# PlantUML in Confluence
|
|
|
322
409
|
| \`plantuml_render(code, format)\` | Preview: ascii, svg, png, eps |
|
|
323
410
|
| \`plantuml_status()\` | Check Docker container status |
|
|
324
411
|
|
|
325
|
-
## Confluence Macro Structure (auto-generated by buffer_edit)
|
|
326
|
-
\`\`\`xml
|
|
327
|
-
<ac:structured-macro ac:name="plantuml" ac:schema-version="1" ac:macro-id="uuid">
|
|
328
|
-
<ac:parameter ac:name="atlassian-macro-output-type">INLINE</ac:parameter>
|
|
329
|
-
<ac:plain-text-body><![CDATA[
|
|
330
|
-
@startuml
|
|
331
|
-
' diagram code
|
|
332
|
-
@enduml
|
|
333
|
-
]]></ac:plain-text-body>
|
|
334
|
-
</ac:structured-macro>
|
|
335
|
-
\`\`\`
|
|
336
|
-
|
|
337
412
|
## Critical Rules (MANDATORY)
|
|
338
413
|
|
|
339
414
|
1. **Always use \`plantuml\` parameter**: \`buffer_edit(..., plantuml="...")\` is REQUIRED
|
|
@@ -351,27 +426,28 @@ const PLANTUML_HELP = `# PlantUML in Confluence
|
|
|
351
426
|
|
|
352
427
|
## Stdlib Includes (C4, AWS, Azure)
|
|
353
428
|
|
|
354
|
-
C4-PlantUML, AWS icons, and
|
|
429
|
+
C4-PlantUML, AWS icons, Azure, and Kubernetes diagrams use PlantUML's built-in standard library.
|
|
430
|
+
GitHub URLs are automatically converted to stdlib syntax:
|
|
431
|
+
|
|
432
|
+
| GitHub URL | Converted to |
|
|
433
|
+
|------------|--------------|
|
|
434
|
+
| \`https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/.../C4_Context.puml\` | \`!include <C4/C4_Context>\` |
|
|
435
|
+
| \`https://raw.githubusercontent.com/awslabs/aws-icons-for-plantuml/.../dist/AWSCommon.puml\` | \`!include <awslib/AWSCommon>\` |
|
|
436
|
+
| \`https://raw.githubusercontent.com/plantuml-stdlib/Azure-PlantUML/.../AzureCommon.puml\` | \`!include <azure/AzureCommon>\` |
|
|
437
|
+
| \`https://raw.githubusercontent.com/plantuml-stdlib/plantuml-kubernetes-sprites/...\` | \`!include <kubernetes/...>\` |
|
|
355
438
|
|
|
439
|
+
**Example (either syntax works):**
|
|
356
440
|
\`\`\`
|
|
357
441
|
@startuml
|
|
358
|
-
!include
|
|
442
|
+
!include <C4/C4_Context>
|
|
359
443
|
Person(user, "User")
|
|
360
444
|
System(sys, "My System")
|
|
361
445
|
Rel(user, sys, "Uses")
|
|
362
446
|
@enduml
|
|
363
447
|
\`\`\`
|
|
364
448
|
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
When enabled, \`!include\` from whitelisted URLs are authorized and expanded client-side
|
|
368
|
-
before validation and Confluence upload. Expanded includes are automatically collapsed
|
|
369
|
-
back to \`!include\` directives when reading pages.
|
|
370
|
-
|
|
371
|
-
**Whitelisted URL prefixes:**
|
|
372
|
-
${ALLOWED_INCLUDE_URLS.map((url) => `- \`${url}\``).join("\n")}
|
|
373
|
-
|
|
374
|
-
Non-whitelisted URLs are left unchanged (PlantUML server may reject them due to SSRF restrictions).
|
|
449
|
+
GitHub URLs in diagrams are converted to stdlib syntax before validation and rendering.
|
|
450
|
+
Non-convertible URLs are left unchanged and may fail if the PlantUML server can't fetch them.
|
|
375
451
|
|
|
376
452
|
## Quick Examples
|
|
377
453
|
|
|
@@ -395,7 +471,7 @@ User --> Order
|
|
|
395
471
|
**C4 Context Diagram:**
|
|
396
472
|
\`\`\`
|
|
397
473
|
@startuml
|
|
398
|
-
!include
|
|
474
|
+
!include <C4/C4_Context>
|
|
399
475
|
Person(user, "Customer", "Uses the system")
|
|
400
476
|
System(sys, "E-Commerce", "Online store")
|
|
401
477
|
System_Ext(pay, "Payment Gateway", "Processes payments")
|
|
@@ -434,34 +510,19 @@ Rel(sys, pay, "Pays via")
|
|
|
434
510
|
| "Element not found" | Check \`buffer_get_structure\` for valid IDs |
|
|
435
511
|
| "XHTML invalid" | Create fresh buffer, insert diagram |
|
|
436
512
|
|
|
437
|
-
##
|
|
438
|
-
|
|
439
|
-
For pages with **multiple diagrams**, reduce tool calls by embedding macros directly:
|
|
440
|
-
|
|
441
|
-
\`\`\`
|
|
442
|
-
1. plantuml_validate(code) × N ← Validate ALL diagrams first (parallel)
|
|
443
|
-
2. buffer_create with embedded macros:
|
|
444
|
-
\`\`\`
|
|
513
|
+
## Multiple Diagrams
|
|
445
514
|
|
|
446
|
-
|
|
447
|
-
<h2>Architecture</h2>
|
|
448
|
-
<ac:structured-macro ac:name="plantuml" ac:schema-version="1" ac:macro-id="diag-1">
|
|
449
|
-
<ac:parameter ac:name="atlassian-macro-output-type">INLINE</ac:parameter>
|
|
450
|
-
<ac:plain-text-body><![CDATA[@startuml
|
|
451
|
-
...validated code...
|
|
452
|
-
@enduml]]></ac:plain-text-body>
|
|
453
|
-
</ac:structured-macro>
|
|
454
|
-
<h2>Sequence Flow</h2>
|
|
455
|
-
<ac:structured-macro ac:name="plantuml" ac:schema-version="1" ac:macro-id="diag-2">
|
|
456
|
-
...second diagram...
|
|
457
|
-
</ac:structured-macro>
|
|
458
|
-
\`\`\`
|
|
515
|
+
For pages with multiple diagrams, call \`buffer_edit\` multiple times:
|
|
459
516
|
|
|
460
517
|
\`\`\`
|
|
461
|
-
|
|
518
|
+
1. plantuml_validate(code1) ← Validate first diagram
|
|
519
|
+
2. plantuml_validate(code2) ← Validate second diagram (parallel)
|
|
520
|
+
3. buffer_edit(bufferId, after=5, plantuml=code1)
|
|
521
|
+
4. buffer_edit(bufferId, after=6, plantuml=code2)
|
|
522
|
+
5. confluence_draft_create(bufferId=...)
|
|
462
523
|
\`\`\`
|
|
463
524
|
|
|
464
|
-
|
|
525
|
+
Each \`plantuml\` parameter = one diagram. The macro wrapping is automatic.
|
|
465
526
|
|
|
466
527
|
For element ID editing: \`help(topic="buffers")\``;
|
|
467
528
|
// Buffers help guide (canonical element ID reference)
|
|
@@ -555,9 +616,10 @@ When editing existing pages, you can create content in a separate buffer and mer
|
|
|
555
616
|
|
|
556
617
|
| Tool | Use |
|
|
557
618
|
|------|-----|
|
|
558
|
-
| \`buffer_get_structure(bufferId)\` | View current element IDs |
|
|
619
|
+
| \`buffer_get_structure(bufferId)\` | View current element IDs (XHTML) |
|
|
559
620
|
| \`buffer_get_element(bufferId, elementId)\` | Get raw XHTML of specific element |
|
|
560
|
-
| \`
|
|
621
|
+
| \`buffer_get_items(bufferId, start, count)\` | Get complete JSON items (not truncated) |
|
|
622
|
+
| \`buffer_get_chunk(bufferId, offset, limit)\` | Read raw content in character chunks |
|
|
561
623
|
| \`buffer_grep(bufferId, pattern, "-C"=2)\` | Search with context |
|
|
562
624
|
| \`buffer_validate_xhtml(bufferId)\` | Check XHTML validity |
|
|
563
625
|
| \`buffer_list()\` | See all active buffers |
|
|
@@ -565,16 +627,200 @@ When editing existing pages, you can create content in a separate buffer and mer
|
|
|
565
627
|
|
|
566
628
|
## Plain/JSON Editing (non-XHTML)
|
|
567
629
|
|
|
630
|
+
**String replacement:**
|
|
568
631
|
\`\`\`
|
|
569
632
|
buffer_edit(bufferId, old_string="foo", new_string="bar", replace_all=true)
|
|
570
633
|
\`\`\`
|
|
571
634
|
|
|
635
|
+
**Append content:**
|
|
636
|
+
\`\`\`
|
|
637
|
+
buffer_edit(bufferId, append=true, content="text to add at end")
|
|
638
|
+
\`\`\`
|
|
639
|
+
|
|
640
|
+
## JSON Pipeline (buffer_pipeline) - RECOMMENDED
|
|
641
|
+
|
|
642
|
+
Transform JSON buffers with a declarative pipeline: filter, group, sort, format, output.
|
|
643
|
+
|
|
644
|
+
**98% token reduction** for data transformations - no need to iterate through items!
|
|
645
|
+
|
|
646
|
+
**Basic workflow:**
|
|
647
|
+
\`\`\`
|
|
648
|
+
1. jira_search_issues(jql="...") → { bufferId, structure: { itemCount: 578 } }
|
|
649
|
+
|
|
650
|
+
2. buffer_pipeline(bufferId, pipeline={
|
|
651
|
+
filter: [{ field: "status.name", operator: "ne", value: "Done" }],
|
|
652
|
+
sort: [{ field: "priority.name", direction: "asc" }],
|
|
653
|
+
output: {
|
|
654
|
+
type: "xhtml_table",
|
|
655
|
+
table: {
|
|
656
|
+
title: "Open Issues",
|
|
657
|
+
columns: [
|
|
658
|
+
{ field: "key", header: "Issue", link: { type: "jira" } },
|
|
659
|
+
{ field: "summary", header: "Summary" },
|
|
660
|
+
{ field: "priority.name", header: "Priority" }
|
|
661
|
+
]
|
|
662
|
+
}
|
|
663
|
+
}
|
|
664
|
+
})
|
|
665
|
+
→ { bufferId: "buf_new", outputItems: 45, preview: "..." }
|
|
666
|
+
|
|
667
|
+
3. Insert into Confluence page or use directly
|
|
668
|
+
\`\`\`
|
|
669
|
+
|
|
670
|
+
**Pipeline stages (all optional except output):**
|
|
671
|
+
- \`select\`: Extract and rename fields
|
|
672
|
+
- \`filter\`: Filter items (eq, ne, contains, in, regex, etc.)
|
|
673
|
+
- \`groupBy\`: Group and aggregate (count, sum, avg, list, etc.)
|
|
674
|
+
- \`sort\`: Sort by fields
|
|
675
|
+
- \`limit\`: Limit results
|
|
676
|
+
- \`format\`: Conditional styling (colors, bold, icons)
|
|
677
|
+
- \`output\`: Generate output (xhtml_table, xhtml_list, json, csv, markdown)
|
|
678
|
+
|
|
679
|
+
**Schema Quick Reference:**
|
|
680
|
+
\`\`\`
|
|
681
|
+
pipeline: {
|
|
682
|
+
select?: { fields: [{from: "path", as: "name", transform?: "..."}] },
|
|
683
|
+
filter?: [{ field, operator, value }],
|
|
684
|
+
groupBy?: { field, aggregations: [{function, field?, as}] },
|
|
685
|
+
sort?: [{ field, direction: "asc"|"desc" }], // NOT "sortBy"!
|
|
686
|
+
limit?: number,
|
|
687
|
+
format?: [...],
|
|
688
|
+
output: { type: "xhtml_table"|"json"|"csv"|..., table?: {...} }
|
|
689
|
+
}
|
|
690
|
+
\`\`\`
|
|
691
|
+
|
|
692
|
+
**Common Mistakes:**
|
|
693
|
+
| Wrong | Correct |
|
|
694
|
+
|-------|---------|
|
|
695
|
+
| sortBy: [...] | sort: [...] |
|
|
696
|
+
| transform: "map" | transform: "date" (or uppercase, lowercase, number, boolean, string) |
|
|
697
|
+
| No output | output: {...} (REQUIRED) |
|
|
698
|
+
| pipeline: "{...}" | pipeline: {...} (object, not string) |
|
|
699
|
+
|
|
700
|
+
**After select renames fields, use NEW names in subsequent stages:**
|
|
701
|
+
- select: {from: "issueType", as: "Type"}
|
|
702
|
+
- sort: [{field: "Type"}] ✓ (not "issueType")
|
|
703
|
+
|
|
704
|
+
**Filter operators:** eq, ne, gt, lt, gte, lte, contains, startsWith, endsWith, in, notIn, exists, notExists, regex, empty, notEmpty
|
|
705
|
+
|
|
706
|
+
**Aggregations:** count, sum, avg, min, max, first, last, list, unique
|
|
707
|
+
|
|
708
|
+
**Example - Statistics by assignee:**
|
|
709
|
+
\`\`\`
|
|
710
|
+
buffer_pipeline(bufferId, pipeline={
|
|
711
|
+
filter: [{ field: "status.name", operator: "ne", value: "Done" }],
|
|
712
|
+
groupBy: {
|
|
713
|
+
field: "assignee.displayName",
|
|
714
|
+
aggregations: [
|
|
715
|
+
{ function: "count", as: "total" },
|
|
716
|
+
{ function: "list", field: "key", as: "issues" }
|
|
717
|
+
]
|
|
718
|
+
},
|
|
719
|
+
sort: [{ field: "total", direction: "desc" }],
|
|
720
|
+
output: {
|
|
721
|
+
type: "xhtml_table",
|
|
722
|
+
table: {
|
|
723
|
+
title: "Work Distribution",
|
|
724
|
+
columns: [
|
|
725
|
+
{ field: "displayName", header: "Assignee" },
|
|
726
|
+
{ field: "total", header: "Open Issues" },
|
|
727
|
+
{ field: "issues", header: "Issue Keys" }
|
|
728
|
+
]
|
|
729
|
+
}
|
|
730
|
+
}
|
|
731
|
+
})
|
|
732
|
+
\`\`\`
|
|
733
|
+
|
|
734
|
+
**When to use buffer_pipeline:**
|
|
735
|
+
- Generating tables/lists for Confluence
|
|
736
|
+
- Creating CSV/Markdown exports
|
|
737
|
+
- Aggregating statistics
|
|
738
|
+
- Filtering and sorting large result sets server-side
|
|
739
|
+
|
|
740
|
+
**When NOT to use buffer_pipeline:**
|
|
741
|
+
- When you need LLM judgment on each item
|
|
742
|
+
- When decisions require analyzing content (use buffer_get_items instead)
|
|
743
|
+
|
|
744
|
+
## Decision Forks (Choose Your Path)
|
|
745
|
+
|
|
746
|
+
After jira_search_issues/tempo_get_worklogs returns a bufferId, you have OPTIONS:
|
|
747
|
+
|
|
748
|
+
| What You Need | Tool to Use | Result |
|
|
749
|
+
|---------------|-------------|--------|
|
|
750
|
+
| READ/ANALYZE items with AI | buffer_get_items(start=0, count=50) | Get items for analysis |
|
|
751
|
+
| SEARCH within results | buffer_grep(pattern) | Find matching items |
|
|
752
|
+
| FORMAT for Confluence | buffer_pipeline → xhtml_table | TERMINAL: publish-ready |
|
|
753
|
+
| TRANSFORM and keep flexible | buffer_pipeline → json | Can process again |
|
|
754
|
+
| EXPORT to file | buffer_pipeline → csv/markdown | TERMINAL: file-ready |
|
|
755
|
+
|
|
756
|
+
**⚠️ OUTPUT TYPE CONSEQUENCES:**
|
|
757
|
+
| Type | Can Iterate Items? | Can Edit? | Next Steps |
|
|
758
|
+
|------|-------------------|-----------|------------|
|
|
759
|
+
| json | ✓ buffer_get_items | ✓ buffer_pipeline | Further processing, re-transform |
|
|
760
|
+
| xhtml_* | ✗ (not iterable) | ✓ buffer_edit | confluence_draft_create |
|
|
761
|
+
| csv/md | ✗ (not iterable) | ✓ buffer_edit | buffer_get_chunk |
|
|
762
|
+
|
|
763
|
+
**Choose json** if you need to iterate items for AI analysis (buffer_get_items).
|
|
764
|
+
**Choose xhtml_*** when ready to publish - you can still edit elements, but can't iterate.
|
|
765
|
+
|
|
766
|
+
---
|
|
767
|
+
|
|
768
|
+
## Large Dataset Patterns
|
|
769
|
+
|
|
770
|
+
### Simple table (no AI analysis)
|
|
771
|
+
Use \`buffer_pipeline\` - generates complete table in **ONE tool call**:
|
|
772
|
+
\`\`\`
|
|
773
|
+
jira_search_issues(jql="...") → bufferId (500+ items)
|
|
774
|
+
buffer_pipeline(bufferId, pipeline={output:{type:"xhtml_table",...}}) → complete table!
|
|
775
|
+
\`\`\`
|
|
776
|
+
|
|
777
|
+
### Table with AI-enhanced columns (complexity, impact)
|
|
778
|
+
Use **batch accumulation workflow** - analyze items in batches, compose results:
|
|
779
|
+
|
|
780
|
+
\`\`\`
|
|
781
|
+
1. jira_search_issues(jql="...") → sourceBufferId (578 items)
|
|
782
|
+
|
|
783
|
+
2. buffer_create(content="<table><thead>...</thead><tbody></tbody></table>", contentType="xhtml")
|
|
784
|
+
→ accumulatorBufferId, structure (note tbody element ID)
|
|
785
|
+
|
|
786
|
+
3. For each batch of 50 items:
|
|
787
|
+
buffer_get_items(sourceBufferId, start=X, count=50) → items[]
|
|
788
|
+
// AI analyzes items, builds XHTML rows with AI columns
|
|
789
|
+
buffer_create(content=rowsXHTML, contentType="xhtml") → batchBufferId
|
|
790
|
+
buffer_edit(accumulatorBufferId, after=lastRowId, fromBufferId=batchBufferId)
|
|
791
|
+
|
|
792
|
+
4. buffer_edit(pageBufferId, after=ID, fromBufferId=accumulatorBufferId)
|
|
793
|
+
confluence_draft_create(pageId, pageBufferId) → draft for review
|
|
794
|
+
\`\`\`
|
|
795
|
+
|
|
796
|
+
---
|
|
797
|
+
|
|
798
|
+
## Reading JSON Data (buffer_get_items, buffer_grep)
|
|
799
|
+
|
|
800
|
+
For cases where you need to read and analyze the data (not just transform it):
|
|
801
|
+
|
|
802
|
+
\`\`\`
|
|
803
|
+
1. jira_search_issues(jql="...")
|
|
804
|
+
→ { bufferId, structure: { itemCount: 519 } }
|
|
805
|
+
|
|
806
|
+
2. buffer_get_items(bufferId, start=0, count=50)
|
|
807
|
+
→ Get 50 complete items for analysis (not truncated)
|
|
808
|
+
|
|
809
|
+
3. buffer_grep(bufferId, pattern="urgent")
|
|
810
|
+
→ Search within buffer
|
|
811
|
+
\`\`\`
|
|
812
|
+
|
|
813
|
+
Use these when:
|
|
814
|
+
- You need to understand the content to make decisions
|
|
815
|
+
- You're writing custom analysis that can't be expressed as a pipeline
|
|
816
|
+
- You're building tables with AI-enhanced columns (batch workflow)
|
|
817
|
+
|
|
572
818
|
## Common Errors & Recovery
|
|
573
819
|
|
|
574
820
|
| Error | Fix |
|
|
575
821
|
|-------|-----|
|
|
576
822
|
| "Element not found: N" | Check \`buffer_get_structure\` for valid IDs |
|
|
577
|
-
| "Buffer expired" | Re-fetch content, buffers expire in
|
|
823
|
+
| "Buffer expired" | Re-fetch content, buffers expire in 1 hour |
|
|
578
824
|
| Multiple occurrences | Use \`replace_all=true\` for string edit |
|
|
579
825
|
| XHTML parsing error | Check \`suggestedActions\` in error response |
|
|
580
826
|
|
|
@@ -587,7 +833,7 @@ buffer_edit(bufferId, old_string="foo", new_string="bar", replace_all=true)
|
|
|
587
833
|
|
|
588
834
|
- IDs are **stable**: insert between 2 and 3 → new element gets id=5, element 3 unchanged
|
|
589
835
|
- Use \`buffer_get_structure\` after edits to see updated structure
|
|
590
|
-
- Buffers expire in
|
|
836
|
+
- Buffers expire in 1 hour (24h if modified)
|
|
591
837
|
- XHTML syntax: \`help(topic="storage")\`
|
|
592
838
|
- PlantUML: \`help(topic="plantuml")\``;
|
|
593
839
|
// Topic content map
|
|
@@ -611,7 +857,7 @@ Available topics:
|
|
|
611
857
|
- cql: CQL (Confluence Query Language) syntax
|
|
612
858
|
- storage: Confluence storage format + structure editing (element IDs)
|
|
613
859
|
- plantuml: PlantUML diagram syntax for Confluence
|
|
614
|
-
- buffers: Buffer management and
|
|
860
|
+
- buffers: Buffer management and element ID editing
|
|
615
861
|
|
|
616
862
|
Examples:
|
|
617
863
|
help() -> Workflow guide
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jicon-help.js","sourceRoot":"","sources":["../../src/utils/jicon-help.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"jicon-help.js","sourceRoot":"","sources":["../../src/utils/jicon-help.ts"],"names":[],"mappings":"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"}
|