@cteno/sdk-linux-x64 0.0.0-stage → 2.10.14

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 (116) hide show
  1. package/LICENSE.daemon +31 -0
  2. package/README.md +4 -2
  3. package/agents/flow-analyzer/AGENT.md +71 -0
  4. package/bin/cteno-host-cli +4 -0
  5. package/bin/cteno-wiki +0 -0
  6. package/bin/rg +0 -0
  7. package/bin/secret-exec +0 -0
  8. package/manifest.json +12 -0
  9. package/package.json +33 -4
  10. package/plugins/agent-secrets/.cteno-plugin/plugin.json +133 -0
  11. package/plugins/agent-secrets/bin/linux-x64/fnox +4 -0
  12. package/plugins/agent-secrets/bin/linux-x64/secret-exec +0 -0
  13. package/plugins/agent-secrets/skills/secret/SKILL.md +201 -0
  14. package/plugins/cteno.browser/.cteno-plugin/plugin.json +65 -0
  15. package/plugins/cteno.browser/skills/browser/SKILL.md +28 -0
  16. package/plugins/cteno.inbox/.cteno-plugin/plugin.json +132 -0
  17. package/plugins/cteno.inbox/bin/all/cteno-connector-credential +31 -0
  18. package/plugins/cteno.inbox/bin/all/cteno-telegram-connector +33 -0
  19. package/plugins/cteno.inbox/bin/linux-x64/cteno-inbox +0 -0
  20. package/plugins/cteno.inbox/skills/cteno-inbox/SKILL.md +374 -0
  21. package/plugins/cteno.inbox/tools/inbox_focus/TOOL.md +44 -0
  22. package/plugins/cteno.memory/.cteno-plugin/plugin.json +176 -0
  23. package/plugins/cteno.memory/agents/llm-wiki/AGENT.md +96 -0
  24. package/plugins/cteno.memory/bin/linux-x64/cteno-wiki +0 -0
  25. package/plugins/cteno.memory/skills/codebase-wiki/SKILL.md +52 -0
  26. package/plugins/cteno.memory/skills/cteno.memory.native/SKILL.md +110 -0
  27. package/plugins/cteno.memory/tools/memory/TOOL.md +492 -0
  28. package/plugins/cteno.memory/ui/index.html +822 -0
  29. package/plugins/cteno.models/.cteno-plugin/plugin.json +191 -0
  30. package/plugins/cteno.websearch/.cteno-plugin/plugin.json +45 -0
  31. package/plugins/jev/.cteno-plugin/plugin.json +309 -0
  32. package/plugins/jev/skills/jev-browser/SKILL.md +66 -0
  33. package/plugins/jev/skills/jev-browser/jev_browser.py +335 -0
  34. package/skills/agent-create/SKILL.md +86 -0
  35. package/skills/cteno-host-cli/SKILL.md +256 -0
  36. package/skills/docx/LICENSE +23 -0
  37. package/skills/docx/NOTICE.md +8 -0
  38. package/skills/docx/SKILL.md +69 -0
  39. package/skills/docx/references/cjk_typography.md +357 -0
  40. package/skills/docx/references/design_principles.md +819 -0
  41. package/skills/docx/references/revisions-and-comments.md +88 -0
  42. package/skills/docx/references/track_changes_guide.md +200 -0
  43. package/skills/docx/references/typography_guide.md +294 -0
  44. package/skills/docx/scripts/cjk_fonts.py +244 -0
  45. package/skills/docx/scripts/docx_comments.py +289 -0
  46. package/skills/docx/scripts/docx_common.py +92 -0
  47. package/skills/docx/scripts/docx_create.py +259 -0
  48. package/skills/docx/scripts/docx_edit.py +250 -0
  49. package/skills/docx/scripts/docx_read.py +149 -0
  50. package/skills/docx/scripts/docx_revisions.py +146 -0
  51. package/skills/docx/scripts/docx_template.py +70 -0
  52. package/skills/docx/scripts/docx_validate.py +156 -0
  53. package/skills/docx/scripts/render.py +250 -0
  54. package/skills/docx/tests/test_docx_skill.py +525 -0
  55. package/skills/home-devices/SKILL.md +121 -0
  56. package/skills/mcp/SKILL.md +72 -0
  57. package/skills/mcp/scripts/mcp_setup.py +439 -0
  58. package/skills/pdf/LICENSE +23 -0
  59. package/skills/pdf/NOTICE.md +8 -0
  60. package/skills/pdf/SKILL.md +63 -0
  61. package/skills/pdf/references/design-tokens.md +381 -0
  62. package/skills/pdf/references/forms.md +99 -0
  63. package/skills/pdf/references/nano-pdf-editing.md +40 -0
  64. package/skills/pdf/references/ocr-extraction.md +165 -0
  65. package/skills/pdf/scripts/_raster.py +76 -0
  66. package/skills/pdf/scripts/extract_marker.py +88 -0
  67. package/skills/pdf/scripts/extract_pymupdf.py +101 -0
  68. package/skills/pdf/scripts/pdf_create.py +191 -0
  69. package/skills/pdf/scripts/pdf_fill_form.py +97 -0
  70. package/skills/pdf/scripts/pdf_form_layout.py +168 -0
  71. package/skills/pdf/scripts/pdf_make_form.py +145 -0
  72. package/skills/pdf/scripts/pdf_merge.py +50 -0
  73. package/skills/pdf/scripts/pdf_meta.py +115 -0
  74. package/skills/pdf/scripts/pdf_page_image.py +99 -0
  75. package/skills/pdf/scripts/pdf_read.py +153 -0
  76. package/skills/pdf/scripts/pdf_secure.py +71 -0
  77. package/skills/pdf/scripts/pdf_split.py +84 -0
  78. package/skills/pdf/scripts/pdf_stamp.py +143 -0
  79. package/skills/pdf/scripts/pdf_watermark.py +51 -0
  80. package/skills/pdf/scripts/render.py +250 -0
  81. package/skills/pdf/tests/test_pdf_skill.py +415 -0
  82. package/skills/pptx/LICENSE +23 -0
  83. package/skills/pptx/NOTICE.md +8 -0
  84. package/skills/pptx/SKILL.md +62 -0
  85. package/skills/pptx/references/design-system.md +392 -0
  86. package/skills/pptx/references/pptxgenjs.md +420 -0
  87. package/skills/pptx/references/slide-types.md +413 -0
  88. package/skills/pptx/scripts/cjk_fonts.py +244 -0
  89. package/skills/pptx/scripts/pptx_create.py +240 -0
  90. package/skills/pptx/scripts/pptx_edit.py +436 -0
  91. package/skills/pptx/scripts/pptx_from_template.py +88 -0
  92. package/skills/pptx/scripts/pptx_read.py +131 -0
  93. package/skills/pptx/scripts/pptx_render.py +96 -0
  94. package/skills/pptx/scripts/render.py +250 -0
  95. package/skills/pptx/tests/test_powerpoint_skill.py +477 -0
  96. package/skills/skill-create/SKILL.md +114 -0
  97. package/skills/video-generation/SKILL.md +27 -0
  98. package/skills/xlsx/LICENSE +23 -0
  99. package/skills/xlsx/NOTICE.md +8 -0
  100. package/skills/xlsx/SKILL.md +63 -0
  101. package/skills/xlsx/references/format.md +71 -0
  102. package/skills/xlsx/references/restructuring.md +71 -0
  103. package/skills/xlsx/scripts/csv_to_xlsx.py +110 -0
  104. package/skills/xlsx/scripts/formula_check.py +428 -0
  105. package/skills/xlsx/scripts/render.py +250 -0
  106. package/skills/xlsx/scripts/xlsx_create.py +265 -0
  107. package/skills/xlsx/scripts/xlsx_edit.py +269 -0
  108. package/skills/xlsx/scripts/xlsx_read.py +166 -0
  109. package/skills/xlsx/scripts/xlsx_recalc.py +119 -0
  110. package/skills/xlsx/scripts/xlsx_restructure.py +343 -0
  111. package/skills/xlsx/scripts/xlsx_to_csv.py +75 -0
  112. package/skills/xlsx/tests/test_xlsx_skill.py +544 -0
  113. package/tools/create_goal/TOOL.md +36 -0
  114. package/tools/image_generation/TOOL.md +81 -0
  115. package/tools/skill/TOOL.md +117 -0
  116. package/tools/update_profile_notes/TOOL.md +39 -0
@@ -0,0 +1,357 @@
1
+ # CJK Typography & Mixed-Script Guide
2
+
3
+ Rules for Chinese, Japanese, and Korean text in DOCX documents.
4
+
5
+ ## Table of Contents
6
+
7
+ 1. [Font Selection](#font-selection)
8
+ 2. [Font Size Names (CJK)](#font-size-names)
9
+ 3. [RunFonts Mapping](#runfonts-mapping)
10
+ 4. [Punctuation & Line Breaking](#punctuation--line-breaking)
11
+ 5. [Paragraph Indentation](#paragraph-indentation)
12
+ 6. [Line Spacing for CJK](#line-spacing)
13
+ 7. [Chinese Government Standard (GB/T 9704)](#gbt-9704)
14
+ 8. [Mixed CJK + Latin Best Practices](#mixed-script)
15
+ 9. [OpenXML Quick Reference](#openxml-quick-reference)
16
+
17
+ ---
18
+
19
+ ## Font Selection
20
+
21
+ ### Recommended CJK Fonts
22
+
23
+ | Language | Serif (正文) | Sans (标题) | Notes |
24
+ |----------|-------------|-------------|-------|
25
+ | **Simplified Chinese** | 宋体 (SimSun) | 微软雅黑 (Microsoft YaHei) | YaHei for screen, SimSun for print |
26
+ | **Simplified Chinese** | 仿宋 (FangSong) | 黑体 (SimHei) | Government documents |
27
+ | **Traditional Chinese** | 新細明體 (PMingLiU) | 微軟正黑體 (Microsoft JhengHei) | Taiwan standard |
28
+ | **Japanese** | MS 明朝 (MS Mincho) | MS ゴシック (MS Gothic) | Classic pairing |
29
+ | **Japanese** | 游明朝 (Yu Mincho) | 游ゴシック (Yu Gothic) | Modern, Windows 10+ |
30
+ | **Korean** | 바탕 (Batang) | 맑은 고딕 (Malgun Gothic) | Standard pairing |
31
+
32
+ ### Government Document Fonts (公文)
33
+
34
+ | Element | Font | Size |
35
+ |---------|------|------|
36
+ | 标题 (title) | 小标宋 (FZXiaoBiaoSong-B05S) | 二号 (22pt) |
37
+ | 一级标题 | 黑体 (SimHei) | 三号 (16pt) |
38
+ | 二级标题 | 楷体_GB2312 (KaiTi_GB2312) | 三号 (16pt) |
39
+ | 三级标题 | 仿宋_GB2312 加粗 | 三号 (16pt) |
40
+ | 正文 (body) | 仿宋_GB2312 (FangSong_GB2312) | 三号 (16pt) |
41
+ | 附注/页码 | 宋体 (SimSun) | 四号 (14pt) |
42
+
43
+ ---
44
+
45
+ ## Font Size Names
46
+
47
+ CJK uses named sizes. Map to points and `w:sz` half-point values:
48
+
49
+ | 字号 | Points | `w:sz` | Common Use |
50
+ |------|--------|--------|------------|
51
+ | 初号 | 42pt | 84 | Display title |
52
+ | 小初 | 36pt | 72 | Large title |
53
+ | 一号 | 26pt | 52 | Chapter heading |
54
+ | 小一 | 24pt | 48 | Major heading |
55
+ | 二号 | 22pt | 44 | Document title (公文) |
56
+ | 小二 | 18pt | 36 | Western H1 equivalent |
57
+ | 三号 | 16pt | 32 | CJK heading / 公文 body |
58
+ | 小三 | 15pt | 30 | Sub-heading |
59
+ | 四号 | 14pt | 28 | CJK subheading |
60
+ | 小四 | 12pt | 24 | Standard body (CJK) |
61
+ | 五号 | 10.5pt | 21 | Compact CJK body |
62
+ | 小五 | 9pt | 18 | Footnotes |
63
+ | 六号 | 7.5pt | 15 | Fine print |
64
+
65
+ ---
66
+
67
+ ## RunFonts Mapping
68
+
69
+ OpenXML uses four font slots to handle multilingual text:
70
+
71
+ ```xml
72
+ <w:rFonts
73
+ w:ascii="Calibri" <!-- Latin characters (U+0000–U+007F) -->
74
+ w:hAnsi="Calibri" <!-- Latin extended, Greek, Cyrillic -->
75
+ w:eastAsia="SimSun" <!-- CJK Unified Ideographs, Kana, Hangul -->
76
+ w:cs="Arial" <!-- Arabic, Hebrew, Thai, Devanagari -->
77
+ />
78
+ ```
79
+
80
+ **Word's character classification logic:**
81
+
82
+ 1. Character is in CJK range → uses `w:eastAsia` font
83
+ 2. Character is in complex script range → uses `w:cs` font
84
+ 3. Character is basic Latin (ASCII) → uses `w:ascii` font
85
+ 4. Everything else → uses `w:hAnsi` font
86
+
87
+ **Key**: `w:eastAsia` is the **only** way to set CJK fonts. Setting just `w:ascii` will NOT affect CJK characters. Mixed text within a single run auto-switches fonts at the character level — no need for separate runs.
88
+
89
+ ### Document Defaults
90
+
91
+ ```xml
92
+ <w:docDefaults>
93
+ <w:rPrDefault>
94
+ <w:rPr>
95
+ <w:rFonts w:ascii="Calibri" w:hAnsi="Calibri" w:eastAsia="SimSun" w:cs="Arial" />
96
+ <w:sz w:val="22" />
97
+ <w:szCs w:val="22" />
98
+ <w:lang w:val="en-US" w:eastAsia="zh-CN" />
99
+ </w:rPr>
100
+ </w:rPrDefault>
101
+ </w:docDefaults>
102
+ ```
103
+
104
+ `w:lang w:eastAsia` helps Word resolve ambiguous characters (e.g., punctuation shared between CJK and Latin).
105
+
106
+ ---
107
+
108
+ ## Punctuation & Line Breaking
109
+
110
+ ### Full-Width vs Half-Width
111
+
112
+ CJK text uses full-width punctuation:
113
+
114
+ | Type | CJK | Latin |
115
+ |------|-----|-------|
116
+ | Period | 。(U+3002) | . |
117
+ | Comma | ,(U+FF0C) 、(U+3001) | , |
118
+ | Colon | :(U+FF1A) | : |
119
+ | Semicolon | ;(U+FF1B) | ; |
120
+ | Quotes | 「」『』 or ""'' | "" '' |
121
+ | Parentheses | ()(U+FF08/09) | () |
122
+
123
+ In mixed text, use the punctuation style of the **surrounding language context**.
124
+
125
+ ### OpenXML Controls
126
+
127
+ ```xml
128
+ <w:pPr>
129
+ <w:adjustRightInd w:val="true" /> <!-- Adjust right indent for CJK punctuation -->
130
+ <w:snapToGrid w:val="true" /> <!-- Align to document grid -->
131
+ <w:kinsoku w:val="true" /> <!-- Enable CJK line breaking rules -->
132
+ <w:overflowPunct w:val="true" /> <!-- Allow punctuation to overflow margins -->
133
+ </w:pPr>
134
+ ```
135
+
136
+ ### Kinsoku Rules (禁則処理)
137
+
138
+ Prevents certain characters from appearing at the start or end of a line:
139
+ - **Cannot start a line**: `)」』】〉》。、,!?;:` and closing brackets
140
+ - **Cannot end a line**: `(「『【〈《` and opening brackets
141
+
142
+ Word applies these automatically when `w:kinsoku` is enabled.
143
+
144
+ ### Line Breaking
145
+
146
+ - CJK characters can break between **any two characters** (no word boundaries needed)
147
+ - Latin words within CJK text still follow word-boundary breaking
148
+ - `w:wordWrap w:val="false"` enables CJK-style breaking (break anywhere)
149
+
150
+ ---
151
+
152
+ ## Paragraph Indentation
153
+
154
+ ### Chinese Standard: 2-Character Indent
155
+
156
+ Chinese body text conventionally uses a 2-character first-line indent:
157
+
158
+ ```xml
159
+ <w:ind w:firstLineChars="200" /> <!-- 200 = 2 characters × 100 -->
160
+ ```
161
+
162
+ Preferred over `w:firstLine` with fixed DXA because `firstLineChars` scales with font size.
163
+
164
+ | Indent | Value |
165
+ |--------|-------|
166
+ | 1 character | `w:firstLineChars="100"` |
167
+ | 2 characters | `w:firstLineChars="200"` |
168
+ | 3 characters | `w:firstLineChars="300"` |
169
+
170
+ ---
171
+
172
+ ## Line Spacing
173
+
174
+ - CJK characters are taller than Latin characters at the same point size
175
+ - Default `1.0` line spacing may feel cramped with CJK text
176
+ - Recommended: `1.15–1.5` for mixed CJK+Latin, `1.0` with fixed 28pt for 公文
177
+
178
+ ### Auto Spacing
179
+
180
+ ```xml
181
+ <w:pPr>
182
+ <w:autoSpaceDE w:val="true"/> <!-- auto space between CJK and Latin -->
183
+ <w:autoSpaceDN w:val="true"/> <!-- auto space between CJK and numbers -->
184
+ </w:pPr>
185
+ ```
186
+
187
+ Adds ~¼ em spacing between CJK and non-CJK characters automatically. **Recommended: always enable.**
188
+
189
+ ---
190
+
191
+ ## GB/T 9704
192
+
193
+ Chinese government document standard (党政机关公文格式). These are **strict requirements**, not suggestions.
194
+
195
+ ### Page Setup
196
+
197
+ | Parameter | Value | OpenXML |
198
+ |-----------|-------|---------|
199
+ | Page size | A4 (210×297mm) | Width=11906, Height=16838 |
200
+ | Top margin | 37mm | 2098 DXA |
201
+ | Bottom margin | 35mm | 1984 DXA |
202
+ | Left margin | 28mm | 1588 DXA |
203
+ | Right margin | 26mm | 1474 DXA |
204
+ | Characters/line | 28 | |
205
+ | Lines/page | 22 | |
206
+ | Line spacing | Fixed 28pt | `line="560"` lineRule="exact" |
207
+
208
+ ### Document Structure
209
+
210
+ ```
211
+ ┌─────────────────────────────────┐
212
+ │ 发文机关标志 (红头) │ ← 小标宋 or 红色大字
213
+ │ ══════════════════ (红线) │ ← Red #FF0000, 2pt
214
+ ├─────────────────────────────────┤
215
+ │ 发文字号: X机发〔2025〕X号 │ ← 仿宋 三号, centered
216
+ │ │
217
+ │ 标题 (Title) │ ← 小标宋 二号, centered
218
+ │ │ 可分多行,回行居中
219
+ │ 主送机关: │ ← 仿宋 三号
220
+ │ │
221
+ │ 正文 (Body)... │ ← 仿宋_GB2312 三号
222
+ │ 一、一级标题 │ ← 黑体 三号
223
+ │ (一)二级标题 │ ← 楷体 三号
224
+ │ 1. 三级标题 │ ← 仿宋 三号 加粗
225
+ │ (1) 四级标题 │ ← 仿宋 三号
226
+ │ │
227
+ │ 附件: 1. xxx │ ← 仿宋 三号
228
+ │ │
229
+ │ 发文机关署名 │ ← 仿宋 三号
230
+ │ 成文日期 │ ← 仿宋 三号, 小写中文数字
231
+ ├─────────────────────────────────┤
232
+ │ ══════════════════ (版记线) │
233
+ │ 抄送: xxx │ ← 仿宋 四号
234
+ │ 印发机关及日期 │ ← 仿宋 四号
235
+ └─────────────────────────────────┘
236
+ ```
237
+
238
+ ### Numbering System
239
+
240
+ ```
241
+ 一、 ← 黑体 (SimHei), no indentation
242
+ (一) ← 楷体 (KaiTi), indented 2 chars
243
+ 1. ← 仿宋加粗 (FangSong Bold), indented 2 chars
244
+ (1) ← 仿宋 (FangSong), indented 2 chars
245
+ ```
246
+
247
+ ### Colors
248
+
249
+ | Element | Color | Requirement |
250
+ |---------|-------|-------------|
251
+ | All body text | Black #000000 | Mandatory |
252
+ | 红头 (agency name) | Red #FF0000 | Mandatory |
253
+ | 红线 (separator) | Red #FF0000 | Mandatory |
254
+ | 公章 (official seal) | Red | Mandatory |
255
+
256
+ ### Page Numbers
257
+
258
+ - Position: bottom center
259
+ - Format: `-X-` (dash-number-dash)
260
+ - Font: 宋体 四号 (SimSun 14pt, `sz="28"`)
261
+ - No page number on cover page if present
262
+
263
+ ---
264
+
265
+ ## Mixed Script
266
+
267
+ ### Font Size Harmony
268
+
269
+ CJK characters appear larger than Latin characters at the same point size. Compensation:
270
+
271
+ - If body is Calibri 11pt, pair with CJK at 11pt (same size — CJK looks slightly larger but acceptable)
272
+ - If precise visual match needed, CJK can be set 0.5–1pt smaller
273
+ - In practice, same point size is standard — don't over-optimize
274
+
275
+ ### Bold and Italic
276
+
277
+ - **Chinese/Japanese have no true italic.** Word synthesizes a slant which looks poor
278
+ - Use **bold** for emphasis in CJK text
279
+ - Use 着重号 (emphasis dots) for traditional emphasis: `<w:em w:val="dot"/>` on RunProperties
280
+
281
+ ---
282
+
283
+ ## OpenXML Quick Reference
284
+
285
+ ### Set EastAsia Font (C#)
286
+
287
+ ```csharp
288
+ new Run(
289
+ new RunProperties(
290
+ new RunFonts { EastAsia = "SimSun", Ascii = "Calibri", HighAnsi = "Calibri" },
291
+ new FontSize { Val = "32" } // 三号 = 16pt = sz 32
292
+ ),
293
+ new Text("这是正文内容")
294
+ );
295
+ ```
296
+
297
+ ### Document Defaults (C#)
298
+
299
+ ```csharp
300
+ new DocDefaults(new RunPropertiesDefault(new RunPropertiesBaseStyle(
301
+ new RunFonts {
302
+ Ascii = "Calibri", HighAnsi = "Calibri",
303
+ EastAsia = "Microsoft YaHei"
304
+ },
305
+ new Languages { Val = "en-US", EastAsia = "zh-CN" }
306
+ )));
307
+ ```
308
+
309
+ ### 公文 Style Definitions (C#)
310
+
311
+ ```csharp
312
+ // Title style — 小标宋 二号 centered
313
+ new Style(
314
+ new StyleName { Val = "GongWen Title" },
315
+ new BasedOn { Val = "Normal" },
316
+ new StyleRunProperties(
317
+ new RunFonts { EastAsia = "FZXiaoBiaoSong-B05S" },
318
+ new FontSize { Val = "44" }, // 二号 = 22pt
319
+ new Bold()
320
+ ),
321
+ new StyleParagraphProperties(
322
+ new Justification { Val = JustificationValues.Center },
323
+ new SpacingBetweenLines { Line = "560", LineRule = LineSpacingRuleValues.Exact }
324
+ )
325
+ ) { Type = StyleValues.Paragraph, StyleId = "GongWenTitle" };
326
+
327
+ // Body style — 仿宋_GB2312 三号
328
+ new Style(
329
+ new StyleName { Val = "GongWen Body" },
330
+ new StyleRunProperties(
331
+ new RunFonts { EastAsia = "FangSong_GB2312", Ascii = "FangSong_GB2312" },
332
+ new FontSize { Val = "32" } // 三号 = 16pt
333
+ ),
334
+ new StyleParagraphProperties(
335
+ new SpacingBetweenLines { Line = "560", LineRule = LineSpacingRuleValues.Exact }
336
+ )
337
+ ) { Type = StyleValues.Paragraph, StyleId = "GongWenBody" };
338
+ ```
339
+
340
+ ### Emphasis Dots (着重号)
341
+
342
+ ```csharp
343
+ new RunProperties(new Emphasis { Val = EmphasisMarkValues.Dot });
344
+ ```
345
+
346
+ ### East Asian Text Layout
347
+
348
+ ```xml
349
+ <!-- Snap to grid (align CJK chars to character grid) -->
350
+ <w:snapToGrid w:val="true"/>
351
+
352
+ <!-- Two-lines-in-one (双行合一) -->
353
+ <w:eastAsianLayout w:id="1" w:combine="true"/>
354
+
355
+ <!-- Vertical text in a cell -->
356
+ <w:textDirection w:val="tbRl"/>
357
+ ```