layoutbridge-light 0.0.0-stage → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (92) hide show
  1. package/CHANGELOG.md +105 -0
  2. package/LICENSE +26 -0
  3. package/README.de.md +367 -0
  4. package/README.md +353 -2
  5. package/THIRD-PARTY-NOTICES.md +2878 -0
  6. package/dist/src/mcp/catalog.js +131 -0
  7. package/dist/src/mcp/config.js +211 -0
  8. package/dist/src/mcp/content-credentials.js +65 -0
  9. package/dist/src/mcp/dispatch.js +171 -0
  10. package/dist/src/mcp/epub-check.js +331 -0
  11. package/dist/src/mcp/epub-orientation.js +132 -0
  12. package/dist/src/mcp/license/free-tools.js +16 -0
  13. package/dist/src/mcp/license/gate.js +210 -0
  14. package/dist/src/mcp/license/index.js +107 -0
  15. package/dist/src/mcp/license/instance-name.js +57 -0
  16. package/dist/src/mcp/license/key-source.js +59 -0
  17. package/dist/src/mcp/license/lemonsqueezy-verifier.js +207 -0
  18. package/dist/src/mcp/license/placeholder-verifier.js +10 -0
  19. package/dist/src/mcp/license/polar-ids.js +100 -0
  20. package/dist/src/mcp/license/polar-verifier.js +285 -0
  21. package/dist/src/mcp/license/product-ids.js +73 -0
  22. package/dist/src/mcp/license/state-store.js +91 -0
  23. package/dist/src/mcp/license/types.js +11 -0
  24. package/dist/src/mcp/logging.js +271 -0
  25. package/dist/src/mcp/pdf-postprocess.js +798 -0
  26. package/dist/src/mcp/product-info.js +54 -0
  27. package/dist/src/mcp/product.js +56 -0
  28. package/dist/src/mcp/server.js +253 -0
  29. package/dist/src/mcp/setup.js +680 -0
  30. package/dist/src/mcp/start.cjs +117 -0
  31. package/dist/src/mcp/target-folder.js +25 -0
  32. package/dist/src/mcp/tool-definition.js +2 -0
  33. package/dist/src/mcp/tools.js +2680 -0
  34. package/dist/src/mcp/typography-rules.js +70 -0
  35. package/dist/src/transport/com.js +436 -0
  36. package/dist/src/transport/osascript.js +171 -0
  37. package/dist/src/transport/queue.js +19 -0
  38. package/dist/src/transport/script-bundle.js +92 -0
  39. package/dist/src/transport/transport.js +52 -0
  40. package/indesign/commands/10-app.js +6 -0
  41. package/indesign/commands/20-documents.js +517 -0
  42. package/indesign/commands/22-document-setup.js +204 -0
  43. package/indesign/commands/23-save-package.js +258 -0
  44. package/indesign/commands/25-export.js +695 -0
  45. package/indesign/commands/26-export-image.js +202 -0
  46. package/indesign/commands/27-textdefaults.js +151 -0
  47. package/indesign/commands/28-selection.js +174 -0
  48. package/indesign/commands/30-pages.js +1032 -0
  49. package/indesign/commands/31-view.js +310 -0
  50. package/indesign/commands/32-sections.js +203 -0
  51. package/indesign/commands/35-parents.js +448 -0
  52. package/indesign/commands/37-layout.js +837 -0
  53. package/indesign/commands/40-frames.js +886 -0
  54. package/indesign/commands/41-shapes.js +505 -0
  55. package/indesign/commands/42-groups.js +117 -0
  56. package/indesign/commands/43-layers.js +310 -0
  57. package/indesign/commands/44-effects.js +274 -0
  58. package/indesign/commands/45-frame-options.js +247 -0
  59. package/indesign/commands/47-anchored.js +473 -0
  60. package/indesign/commands/50-modify.js +803 -0
  61. package/indesign/commands/52-align.js +139 -0
  62. package/indesign/commands/55-fit.js +106 -0
  63. package/indesign/commands/60-images.js +1154 -0
  64. package/indesign/commands/62-embed.js +120 -0
  65. package/indesign/commands/69-placeholders.js +132 -0
  66. package/indesign/commands/70-text.js +710 -0
  67. package/indesign/commands/71-outlines.js +92 -0
  68. package/indesign/commands/72-place-text.js +476 -0
  69. package/indesign/commands/73-story-lock.js +157 -0
  70. package/indesign/commands/74-stories.js +121 -0
  71. package/indesign/commands/75-tables.js +702 -0
  72. package/indesign/commands/76-text-variables.js +260 -0
  73. package/indesign/commands/77-story-options.js +86 -0
  74. package/indesign/commands/78-frame-lines.js +511 -0
  75. package/indesign/commands/79-check-typography.js +480 -0
  76. package/indesign/commands/80-styles.js +1960 -0
  77. package/indesign/commands/81-composition.js +355 -0
  78. package/indesign/commands/82-object-styles.js +263 -0
  79. package/indesign/commands/83-drop-caps.js +87 -0
  80. package/indesign/commands/83-indents-tabs.js +264 -0
  81. package/indesign/commands/84-import-styles.js +142 -0
  82. package/indesign/commands/85-swatches.js +112 -0
  83. package/indesign/commands/86-gradients.js +185 -0
  84. package/indesign/commands/87-replace-swatch.js +180 -0
  85. package/indesign/commands/88-replace-font.js +212 -0
  86. package/indesign/commands/89-toc-index.js +1002 -0
  87. package/indesign/commands/90-print-on-demand.js +495 -0
  88. package/indesign/commands/91-epub.js +629 -0
  89. package/indesign/commands/92-accessibility.js +1131 -0
  90. package/indesign/interpreter.js +829 -0
  91. package/package.json +41 -4
  92. package/rules/typography-rules.json +32 -0
package/CHANGELOG.md ADDED
@@ -0,0 +1,105 @@
1
+ # Changelog – LayoutBridge Light for Adobe InDesign®
2
+
3
+ All notable changes to `layoutbridge-light`. Format: Keep a Changelog;
4
+ versions follow Semantic Versioning. Within a major version, tool names,
5
+ parameters and return fields remain stable; additions are additive.
6
+
7
+ ## [1.0.1] - 2026-11-11
8
+
9
+ Update round for accessible PDF and book typesetting: 85 tools (1.0.0: 77).
10
+ New features are additive (new tools, new optional parameters, new return
11
+ fields); existing tool names, parameters and the error format are
12
+ unchanged. Tested with macOS 27.2, InDesign 2026 (21.6.0.57), Claude
13
+ Desktop 5.1231.2 and Claude Code 2.1.322; Windows 11 with InDesign 2026
14
+ (21.6) for the Windows changes.
15
+
16
+ ### Added
17
+
18
+ - Accessible PDF (tested with InDesign 2026):
19
+ - New tools `list_alt_texts` and `set_alt_text`: read and set the
20
+ alternative text of images (own text, XMP fields of the image file,
21
+ decorative), actual text and the tag type (artifact for lines,
22
+ ornaments and decorative images) – also for many objects in one call.
23
+ - New tools `list_articles`, `define_article` and `delete_article`: the
24
+ reading order of a tagged PDF through articles.
25
+ - New tool `check_accessibility`: images without alternative text,
26
+ paragraph styles that look like headings but have no PDF tag, missing
27
+ document title, text or PDF language, untagged paths, articles; lists
28
+ the steps that remain manual in Adobe Acrobat.
29
+ - New tool `export_interactive_pdf`: interactive PDF with tags, tab order
30
+ from the structure, document title, PDF language.
31
+ - `export_pdf`: new optional `tagged`, `bookmarks`, `display_title`,
32
+ `pdf_language` (unknown values are `invalid_argument` with
33
+ `details.code` `unknown_pdf_language`), `title`,
34
+ `artifact_untagged_paths` (on by default with `tagged: true`, `false`
35
+ switches it off) and `pdfua_identifier` (only when
36
+ `check_accessibility` reports no error – otherwise `invalid_state` with
37
+ `details.code` `accessibility_check_failed`).
38
+ - `define_paragraph_style`, `define_character_style`: `pdf_tag` (P, H,
39
+ H1–H6, Artifact); `list_paragraph_styles` returns `pdf_tag`.
40
+ - New tool `set_anchored_object_options`: change the options of an anchored
41
+ object (position, alignment, space before/after, offset, reference points)
42
+ without releasing and re-anchoring it.
43
+ - `export_epub`: `split_by_paragraph_style` also takes a list of paragraph
44
+ styles; new options `image_alignment` and `image_size` for images in the
45
+ text flow.
46
+ - `apply_character_format_to_range`: `language` sets the language
47
+ (dictionary) of a text range. `check_typography`: new rule
48
+ `foreign_language_in_text`.
49
+ - `define_paragraph_style`: `align_to_baseline_grid` and `capitalization`;
50
+ `define_character_style`: `capitalization`.
51
+ - `set_frame_inset`: `first_baseline_offset` and `min_first_baseline_pt`.
52
+ - Text placeholders `{{odd_page_break}}` and `{{even_page_break}}`.
53
+ - `apply_parent_to_page`: `page_ids` applies a master to several pages at
54
+ once.
55
+ - `export_page_image`: `create_folder` creates a missing target folder.
56
+ - `find_replace`: `scope: "story"` searches the whole story of a frame,
57
+ overset included; new warnings for `scope: "frame"`, merged paragraphs
58
+ and GREP lookbehinds with a break character.
59
+ - `list_links`: `without_object` marks links that InDesign keeps without any
60
+ object, with a warning that names the remedy.
61
+ - `anchor_frame_in_text`: warning when the anchored object reaches above
62
+ the top of its text frame.
63
+ - `place_image`: warning when the XMP metadata of the image points to a
64
+ remote Content Credentials manifest.
65
+
66
+ ### Fixed
67
+
68
+ - Windows: tool calls no longer write two new script files per call; with
69
+ real-time virus scanning calls took 12 s to over two minutes. The server
70
+ log records the time shares of each call (`timing_ms`).
71
+ - Tools taking `frame_id` answer `not_found` with `details.found_class` for
72
+ the id of a placed graphic or of an object that is not on a page
73
+ (InDesign could quit on such a call).
74
+ - `get_frame_lines`: correct baseline for the first line of a paragraph
75
+ with a drop cap; new warning when space before has no effect at the top
76
+ of a column.
77
+ - `check_epub` and `export_epub` no longer report text frames holding
78
+ anchored images as objects that are not anchored.
79
+ - `check_typography` (`heading_at_column_end`): a one-line dialogue line in
80
+ the body style is no longer reported as a heading.
81
+ - `define_toc_style` can change the entries of an existing TOC style;
82
+ `create_toc` with `replace` and another TOC style replaces the existing
83
+ table of contents.
84
+ - `define_character_style`: `font_style` reads `null` instead of
85
+ `"NOTHING"` when the style sets no font style.
86
+ - Tools that add pages or define styles no longer make the layout window
87
+ jump while they run.
88
+ - Same server code as LayoutBridge for Adobe InDesign® 1.0.5.
89
+
90
+ ## [1.0.0] - 2026-11-01
91
+
92
+ ### Added
93
+
94
+ - First release of LayoutBridge Light: 77 tools for book typesetting in
95
+ Adobe® InDesign® – documents and pages, master pages and sections,
96
+ layout grid, text frames and autoflow of whole manuscripts, text,
97
+ paragraph and character styles with drop caps, images and anchored
98
+ objects, table of contents and index, typography checks, print-on-demand
99
+ checks and book covers, preflight, PDF and image export, EPUB export and
100
+ check.
101
+ - Same server code as LayoutBridge for Adobe InDesign® 1.0.4; separate
102
+ licence key, settings folder and log folder.
103
+
104
+ Adobe and InDesign are either registered trademarks or trademarks of Adobe
105
+ in the United States and/or other countries.
package/LICENSE ADDED
@@ -0,0 +1,26 @@
1
+ Copyright (c) 2026 SP Medienservice, Inhaber Sascha Piprek
2
+ Alle Rechte vorbehalten. / All rights reserved.
3
+
4
+ Diese Software und die zugehörige Dokumentation sind
5
+ urheberrechtlich geschützt. Die Nutzung ist nur mit einem
6
+ gültigen Lizenzschlüssel und nur nach den Lizenzbedingungen
7
+ gestattet:
8
+ https://mcp-schnittstellen.de/layoutbridge-light/lizenzbedingungen.html
9
+ Darüber hinaus wird kein Nutzungsrecht eingeräumt.
10
+ Vervielfältigung, Verbreitung, Bearbeitung, Weitergabe und
11
+ öffentliche Zugänglichmachung – ganz oder in Teilen – bedürfen
12
+ der vorherigen schriftlichen Zustimmung des Rechteinhabers,
13
+ soweit die Lizenzbedingungen sie nicht erlauben.
14
+
15
+ This software and its documentation are protected by
16
+ copyright. Use is permitted only with a valid licence key and
17
+ only under the licence terms:
18
+ https://mcp-interfaces.com/layoutbridge-light/license.html
19
+ No other rights of use are granted. Reproduction,
20
+ distribution, modification, transfer and making available to
21
+ the public – in whole or in part – require the prior written
22
+ consent of the rights holder, except as permitted by the
23
+ licence terms.
24
+
25
+ Drittsoftware / Third-party software: THIRD-PARTY-NOTICES.md
26
+ Kontakt / Contact: kontakt@mcp-interfaces.com
package/README.de.md ADDED
@@ -0,0 +1,367 @@
1
+ # LayoutBridge Light for Adobe InDesign®
2
+
3
+ English version: [README.md](README.md)
4
+
5
+ **LayoutBridge Light for Adobe InDesign®** – MCP-Server für den Buchsatz in
6
+ Adobe® InDesign® (npm-Paket `layoutbridge-light`) von MCP Interfaces. Er
7
+ stellt die Werkzeuge bereit, die ein Buch braucht, für jede MCP-fähige KI:
8
+ Dokumente und Seiten, Musterseiten und Abschnitte, Satzspiegel, Textrahmen
9
+ und Autofluss ganzer Manuskripte, Text, Absatz- und Zeichenformate mit
10
+ Initialen, Bilder und verankerte Objekte, Inhaltsverzeichnis und Register,
11
+ Typografieprüfung, Prüfung für Print-on-Demand und Buchumschlag, Preflight
12
+ und Export (PDF – auch barrierefrei, getaggt und interaktiv –, Seitenbilder
13
+ und E-Books als EPUB, mit Prüfung des EPUB).
14
+
15
+ LayoutBridge Light ist die Buchausgabe von LayoutBridge for Adobe InDesign®:
16
+ derselbe Server, 85 seiner Werkzeuge. Nicht enthalten sind Tabellen, Ebenen,
17
+ Gruppen und Objektformate, Formen, Linien und Effekte, das Umsortieren von
18
+ Seiten, das Verpacken und die Werkzeuge zum Übernehmen fremder Dokumente. Es braucht einen eigenen
19
+ Lizenzschlüssel; ein Schlüssel für LayoutBridge for Adobe InDesign® gilt
20
+ hier nicht, und umgekehrt.
21
+
22
+ Produktseite: https://mcp-schnittstellen.de/layoutbridge-light/ (englisch:
23
+ https://mcp-interfaces.com/layoutbridge-light/).
24
+ Ausführliche Schritt-für-Schritt-Anleitung:
25
+ https://mcp-schnittstellen.de/layoutbridge-light/installation.html (englisch:
26
+ https://mcp-interfaces.com/layoutbridge-light/installation.html).
27
+
28
+ Adobe and InDesign are either registered trademarks or trademarks of Adobe in
29
+ the United States and/or other countries.
30
+
31
+ ## Voraussetzungen
32
+
33
+ - Adobe® InDesign®, installiert und gestartet – Mac oder Windows (Windows
34
+ 10/11 x64; geprüft mit InDesign® 21.5.1.73 auf Windows 11)
35
+ - Windows: Windows PowerShell 5.1 (`powershell.exe`, in Windows enthalten)
36
+ - Ihr Lizenzschlüssel aus der Quittungsmail des Kaufs – ein Schlüssel je
37
+ Arbeitsplatz
38
+ - Eine Netzverbindung für die Lizenzprüfung beim ersten Aufruf
39
+ - **Node.js ab Version 20 – nur für das npm-Paket** (Eintrag in der
40
+ Konfigurationsdatei, `--setup`, `--deactivate`) **und für andere
41
+ MCP-Clients.** Mit dem Installationspaket (`.mcpb`) ist keine eigene
42
+ Node.js-Installation nötig – Claude Desktop bringt Node.js mit (Schalter
43
+ „Use built-in Node.js for MCP“ unter „Erweiterte Einstellungen“, ab Werk
44
+ eingeschaltet).
45
+
46
+ ## Installation in Claude Desktop
47
+
48
+ Es gibt zwei Wege. Weg A ist der kürzere; Weg B ist derselbe Eintrag, den
49
+ auch andere MCP-Clients bekommen. Die oben verlinkte Anleitung zeigt jeden
50
+ Schritt mit den Einzelheiten für Mac und Windows.
51
+
52
+ **Weg A – Installationspaket (Bundle-Datei `.mcpb`)**
53
+
54
+ 1. Laden Sie die Datei `layoutbridge-light-<Version>.mcpb` von der
55
+ Produktseite herunter.
56
+ 2. Öffnen Sie in Claude Desktop Einstellungen › Desktop-App › Erweiterungen
57
+ und ziehen Sie die Datei in dieses Fenster – dort steht „Ziehe .MCPB-
58
+ oder .DXT-Dateien hier her, um sie zu installieren“. Auf dem Mac können
59
+ Sie die Datei stattdessen per Doppelklick öffnen. Unter Windows öffnet
60
+ der Doppelklick Claude Desktop nicht – Windows fragt nach einem
61
+ Programm; ziehen Sie die Datei dort ins Fenster oder wählen Sie unter
62
+ „Erweiterte Einstellungen“ die Schaltfläche zum Installieren einer
63
+ Erweiterung (englische Oberfläche: „Advanced settings“ › „Install
64
+ extension“) und dann die Datei. Bestätigen Sie den Installationsdialog
65
+ mit „Installieren“.
66
+ 3. Tragen Sie Ihren Lizenzschlüssel in das Feld „Licence key“ ein und
67
+ klicken Sie auf „Speichern“. Claude Desktop speichert den Schlüssel auf
68
+ Ihrem Rechner.
69
+ 4. **Schalten Sie die Erweiterung ein.** Nach der Installation steht
70
+ „LayoutBridge Light for Adobe InDesign®“ unter Einstellungen › Erweiterungen
71
+ auf „Deaktiviert“. Stellen Sie den Schalter auf „Aktiviert“ – sonst
72
+ erscheinen keine Werkzeuge.
73
+
74
+ **Weg B – npm-Paket (Node.js ab Version 20)**
75
+
76
+ Einrichtungsbefehl – im Terminal (Mac) bzw. in der PowerShell (Windows)
77
+ aufrufen:
78
+
79
+ ```
80
+ npx layoutbridge-light --setup
81
+ ```
82
+
83
+ Der Befehl trägt den Server in die Konfigurationsdatei von Claude Desktop
84
+ ein und legt den Lizenzschlüssel am Vorgabeort ab (siehe
85
+ „Lizenzschlüssel“). Er läuft nur, wenn Sie ihn aufrufen. Vor jeder Änderung
86
+ zeigt er den vollen Pfad der Datei und den neuen Eintrag im Wortlaut und
87
+ fragt nach (`y` für ja, `n` für nein). Vor dem Schreiben legt er eine
88
+ Sicherung `claude_desktop_config.json.bak-JJJJ-MM-TT_HHMM` im selben Ordner
89
+ an; geändert wird nur der Eintrag `layoutbridge-light` unter `mcpServers`,
90
+ alle anderen Einträge bleiben unverändert. Ist die Datei kein gültiges
91
+ JSON, bricht er ab und nennt Zeile und Spalte. Den Lizenzschlüssel fragt er
92
+ verdeckt ab und schreibt ihn nur nach `license.key`. Keine
93
+ Administratorrechte, keine Netzverbindung. Unter Windows nimmt er den
94
+ Konfigurationsordner des Claude-Desktop-Pakets (siehe „Von Hand“), sofern es
95
+ einen gibt, sonst `%APPDATA%\Claude`, und nennt, welchen er gewählt hat;
96
+ findet er mehrere Claude-Desktop-Pakete und kann nicht erkennen, welches
97
+ benutzt wird, bricht er ab, ohne etwas zu ändern.
98
+
99
+ - `--dry-run` zeigt dasselbe und schreibt nichts.
100
+ - `--license-key-file <Pfad>` liest den Schlüssel aus einer Datei, statt
101
+ ihn abzufragen.
102
+
103
+ **Von Hand:** Öffnen Sie die Konfigurationsdatei von Claude Desktop in
104
+ einem Texteditor. Unter Windows geht das am einfachsten über Einstellungen ›
105
+ Desktop-App › Entwickler › „Konfiguration bearbeiten“: Das öffnet den
106
+ Ordner, den Claude Desktop tatsächlich liest. Bei der üblichen Installation
107
+ als App-Paket ist das
108
+ `%LOCALAPPDATA%\Packages\Claude_<id>\LocalCache\Roaming\Claude\claude_desktop_config.json`
109
+ (`<id>` ist eine Folge aus Buchstaben und Ziffern); nur eine Installation
110
+ ohne Paket verwendet `%APPDATA%\Claude\claude_desktop_config.json`. Am Mac
111
+ ist es `~/Library/Application Support/Claude/claude_desktop_config.json`
112
+ („Konfiguration bearbeiten“ geht dort ebenso). Ist die Datei leer oder noch
113
+ nicht vorhanden, hat sie genau diesen Inhalt:
114
+
115
+ ```json
116
+ {
117
+ "mcpServers": {
118
+ "layoutbridge-light": {
119
+ "command": "npx",
120
+ "args": ["-y", "layoutbridge-light"]
121
+ }
122
+ }
123
+ }
124
+ ```
125
+
126
+ Enthält die Datei bereits andere Server unter `"mcpServers"`, fügen Sie nur
127
+ den Block `"layoutbridge-light": { … }` dort ein – mit einem Komma zwischen
128
+ den Einträgen – und lassen Sie alles andere unverändert. Legen Sie dann den
129
+ Lizenzschlüssel ab (siehe „Lizenzschlüssel“). Beim ersten Start lädt `npx`
130
+ das Paket `layoutbridge-light` von der npm-Registry; danach startet es aus
131
+ dem lokalen Speicher.
132
+
133
+ **Danach:** Beenden Sie Claude Desktop vollständig – auf dem Mac mit ⌘ + Q,
134
+ unter Windows über „Beenden“ im Menü der Anwendung; das Fenster zu
135
+ schließen genügt nicht – und starten Sie es neu. Starten Sie Adobe®
136
+ InDesign® und fragen Sie in Claude Desktop: „Welche InDesign®-Version
137
+ läuft?“ Claude ruft das Werkzeug `get_app_version` auf und nennt die
138
+ Version. Die Werkzeuge erscheinen auf Weg A unter dem Namen der Erweiterung
139
+ „LayoutBridge Light for Adobe InDesign®“, auf Weg B mit dem Präfix
140
+ `layoutbridge-light:`.
141
+
142
+ ## Andere MCP-Clients
143
+
144
+ Andere MCP-Clients (Claude Code, Cursor, GitHub Copilot u. a.) tragen
145
+ denselben Server nach ihrer eigenen Dokumentation ein. Der Befehl ist
146
+ überall
147
+
148
+ ```
149
+ npx -y layoutbridge-light
150
+ ```
151
+
152
+ und setzt Node.js ab Version 20 voraus. Den Lizenzschlüssel findet der
153
+ Server an denselben Orten wie unter „Lizenzschlüssel“ beschrieben.
154
+
155
+ ## Lizenzschlüssel
156
+
157
+ Der Schlüssel steht in der Quittungsmail des Kaufs und gilt für genau einen
158
+ Arbeitsplatz; mehrere Arbeitsplätze brauchen mehrere Schlüssel.
159
+
160
+ **Wo LayoutBridge den Schlüssel sucht, in dieser Reihenfolge:**
161
+
162
+ 1. die Umgebungsvariable `LAYOUTBRIDGE_LIGHT_LICENSE_KEY` – das
163
+ Installationspaket setzt sie aus dem Feld „Licence key“; auf Weg B kann
164
+ sie als `"env": { "LAYOUTBRIDGE_LIGHT_LICENSE_KEY": "IHR-LIZENZSCHLÜSSEL" }`
165
+ in den Server-Eintrag,
166
+ 2. die Datei, die in der Umgebungsvariablen `LAYOUTBRIDGE_LIGHT_LICENSE_FILE`
167
+ steht,
168
+ 3. die Datei `license.key` am Vorgabeort – nur der Schlüssel, ohne weiteren
169
+ Text:
170
+ - Mac: `~/Library/Application Support/layoutbridge-light/license.key`
171
+ - Windows: `%USERPROFILE%\.layoutbridge-light\license.key`
172
+
173
+ Den Ordner `layoutbridge-light` bzw. `.layoutbridge-light` legen Sie an, falls
174
+ er fehlt. Ein nachgelegter oder geänderter Schlüssel wirkt ohne Neustart.
175
+
176
+ **Prüfung:** Beim ersten Werkzeugaufruf prüft LayoutBridge den Schlüssel
177
+ online; danach höchstens einmal in 24 Stunden. Ist der Dienst nicht
178
+ erreichbar, arbeitet LayoutBridge ab der letzten gültigen Prüfung 14 Tage
179
+ weiter und hängt jeder Antwort eine Warnung an; danach – oder wenn es noch
180
+ nie eine gültige Prüfung gab – sind die Werkzeuge gesperrt, bis der
181
+ Schlüssel wieder geprüft werden kann.
182
+
183
+ **Ohne gültigen Schlüssel** antwortet jedes Werkzeug mit `ok: false` und
184
+ `error.kind: "license"`. Die Meldung sagt im Klartext, ob der Schlüssel
185
+ fehlt, abgelaufen, ungültig, für ein anderes Produkt oder gerade nicht
186
+ prüfbar ist, und nennt den Ort, an dem der Schlüssel erwartet wurde;
187
+ `error.details` nennt dazu die Support-Adresse und die Lizenzbedingungen.
188
+ InDesign® wird dabei nicht angesprochen.
189
+
190
+ **Was gespeichert und übertragen wird:** Das Ergebnis der letzten Prüfung
191
+ steht in `license-state.json` neben `license.key` – mit einem
192
+ Fingerabdruck des Schlüssels, nie dem Schlüssel selbst, und ohne
193
+ Kundendaten. Zur Prüfung gehen der Lizenzschlüssel und eine Kennung dieses
194
+ Arbeitsplatzes an den Zahlungsdienst Polar (`api.polar.sh`, USA). Die
195
+ Kennung ist ein zufälliger Name der Form `layoutbridge-<8 Zeichen>`, der
196
+ beim ersten Mal erzeugt und in
197
+ `instance-name` neben `license.key` abgelegt wird; der Rechnername wird
198
+ nicht verwendet. Wer im Händler-Konto einen lesbaren Namen möchte, setzt
199
+ `LAYOUTBRIDGE_LIGHT_INSTANCE_NAME`. Dokumentinhalte, Dateipfade und
200
+ Werkzeugaufrufe werden nie übertragen.
201
+
202
+ ## Rechnerwechsel
203
+
204
+ Eine Lizenz ist auf einem Arbeitsplatz aktiv. Geben Sie sie auf dem alten
205
+ Rechner frei, bevor Sie den Schlüssel auf dem neuen eintragen – ohne
206
+ InDesign®, ohne Claude Desktop, aber mit Node.js ab Version 20:
207
+
208
+ ```
209
+ npx layoutbridge-light --deactivate
210
+ ```
211
+
212
+ Der Befehl meldet im Klartext, ob die Freigabe geklappt hat, und löscht das
213
+ lokale Prüfergebnis. Er liest den Schlüssel an denselben Orten wie der
214
+ Server (siehe „Lizenzschlüssel“); beim Installationspaket verwahrt Claude
215
+ Desktop den Schlüssel – legen Sie ihn dann vorher als `license.key` ab oder
216
+ schreiben Sie an den Support. Haben Sie kein Node.js, weil Sie nur das
217
+ Installationspaket nutzen, oder ist der alte Rechner nicht mehr erreichbar,
218
+ können Sie die Aktivierung selbst im Kundenportal von Polar freigeben oder
219
+ an den Support schreiben; er gibt die Aktivierung frei.
220
+
221
+ ## Konfiguration des Servers
222
+
223
+ Vorgaben, die je Arbeitsplatz verschieden sind, lassen sich in einer
224
+ JSON-Datei festlegen, die der Server beim Start liest: Pfad aus der
225
+ Umgebungsvariablen `LAYOUTBRIDGE_LIGHT_CONFIG`, sonst auf dem Mac
226
+ `~/Library/Application Support/layoutbridge-light/config.json`, unter Windows
227
+ `%USERPROFILE%\.layoutbridge-light\config.json`. Fehlt die Datei, gelten die
228
+ neutralen Vorgaben. Alle Schlüssel sind optional; ein Parameter im Aufruf
229
+ geht immer vor.
230
+
231
+ ```json
232
+ {
233
+ "tracking_warn_beyond": 20,
234
+ "min_ppi": 300,
235
+ "export_pdf": {
236
+ "preset": "Name des PDF-Presets",
237
+ "fallback_preset": "Name des Ausweichpresets",
238
+ "fallback_over_bytes": 4194304
239
+ }
240
+ }
241
+ ```
242
+
243
+ | Schlüssel | Wirkung |
244
+ |---|---|
245
+ | `tracking_warn_beyond` | `apply_character_format_to_range` warnt, wenn die Laufweite betragsmäßig darüber liegt. Ohne Eintrag keine Warnung. |
246
+ | `min_ppi` | Vorgabe für den Parameter `min_ppi` von `place_image`, `scale_image_in_frame` und `fit_frame` (Warnung unter dieser effektiven Auflösung). Ohne Eintrag 300. |
247
+ | `export_pdf.preset` | Vorgabe für `preset` von `export_pdf`. Ohne Eintrag das lokalisierte „High Quality Print“. |
248
+ | `export_pdf.fallback_preset`, `export_pdf.fallback_over_bytes` | Zweiter Durchgang mit diesem Preset, wenn die Datei größer ist. Ohne Eintrag kein zweiter Durchgang. |
249
+ | `print_on_demand` | Grenzwerte eines Print-on-Demand-Dienstes für `check_print_on_demand` (`min_page_count`, `max_page_count`, `page_count_multiple`, `inside_margin_tiers` als Liste aus `max_pages` und `min_mm`, `min_outside_margin_mm`, `bleed_mm`, `min_font_size_pt`) und Maße für `create_book_cover` (`spine_per_page_mm`, `bleed_mm`, `safety_margin_mm`, `spine_safety_mm`, `barcode_area` mit `width_mm`, `height_mm`, `offset_x_mm`, `offset_y_mm`). Die Werte stehen in den aktuellen Vorgaben Ihres Dienstes. Ohne Eintrag überspringt die Prüfung diesen Punkt. |
250
+ | `epub.min_ppi` | Kleinste effektive Bildauflösung, die `check_epub` bei der Dokumentprüfung annimmt. Ohne Eintrag wird die Bildauflösung nicht geprüft (das allgemeine `min_ppi` gilt nicht für E-Books). |
251
+
252
+ Unbekannte Schlüssel und falsche Typen meldet der Server beim Start auf der
253
+ Standardfehlerausgabe und ignoriert sie.
254
+
255
+ ## Protokoll
256
+
257
+ Eine Zeile je Aufruf, eine Datei je laufender Instanz:
258
+ `~/Library/Logs/layoutbridge-light/` auf dem Mac,
259
+ `%USERPROFILE%\.layoutbridge-light\logs\` unter Windows; anderer Ort über die
260
+ Umgebungsvariable `LAYOUTBRIDGE_LIGHT_LOG_DIR`. Das Protokoll bleibt auf
261
+ Ihrem Rechner; es wird nirgendwohin gesendet.
262
+
263
+ **Was in der Zeile steht (Vorgabe `basic`):** Zeitpunkt, Werkzeugname,
264
+ Dauer, Erfolg, Fehlerart und Fehlertext, Warnungen und die **Namen** der
265
+ übergebenen Parameter. Werte stehen nur dort, wo sie für die Fehlersuche
266
+ nötig und harmlos sind (Zahlen, Kennungen, Aufzählungswerte, Dateipfade).
267
+ Text, der Dokumentinhalt sein kann, erscheint nur als Längenangabe –
268
+ `"<Text, 248 Zeichen>"`. In Pfaden wird Ihr Benutzerverzeichnis durch `~`
269
+ ersetzt. Der Lizenzschlüssel wird nie protokolliert.
270
+
271
+ **Tiefe einstellen –** `LAYOUTBRIDGE_LIGHT_LOG_LEVEL`:
272
+
273
+ | Wert | Bedeutung |
274
+ |---|---|
275
+ | `off` | keine Protokollierung, es wird keine Datei angelegt |
276
+ | `basic` | **Vorgabe**, gefiltert wie oben beschrieben |
277
+ | `full` | alle Parameter im Wortlaut, Pfade mit Benutzernamen – nur für die Fehlersuche, auf Bitte des Supports |
278
+
279
+ Läuft `full`, sagt das die erste Zeile im Protokoll und die Startmeldung des
280
+ Servers. Danach wieder auf `basic` stellen.
281
+
282
+ **Aufbewahrung:** Beim Start löscht der Server Protokolldateien, die älter
283
+ als **30 Tage** sind. Andere Frist über `LAYOUTBRIDGE_LIGHT_LOG_KEEP_DAYS`
284
+ (Zahl in Tagen; `0` schaltet das Löschen ab).
285
+
286
+ ## Barrierefreie PDFs
287
+
288
+ LayoutBridge bereitet Dokumente für barrierefreie PDFs (PDF/UA, WCAG) vor
289
+ und exportiert getaggte PDFs:
290
+
291
+ - Alternativtexte für Bilder (`list_alt_texts`, `set_alt_text` – auch für
292
+ viele Bilder in einem Aufruf und aus den XMP-Metadaten der Bilddatei;
293
+ dekorative Bilder werden Artefakte),
294
+ - PDF-Tags der Absatz- und Zeichenformate (`pdf_tag` in
295
+ `define_paragraph_style` und `define_character_style`),
296
+ - die Lesereihenfolge über Artikel (`list_articles`, `define_article`,
297
+ `delete_article`),
298
+ - eine Prüfung vor dem Export (`check_accessibility`),
299
+ - den Export als getaggtes PDF (`export_pdf` mit `tagged`, `pdf_language`,
300
+ `title`, `display_title`, `bookmarks`) oder als interaktives PDF
301
+ (`export_interactive_pdf`). Konturen und Flächen von Textrahmen und die
302
+ Konturen von Tabellen, die InDesign ungetaggt lässt, werden bei jedem
303
+ getaggten Export in der fertigen Datei als Artefakt markiert
304
+ (`artifact_untagged_paths: false` schaltet das ab).
305
+
306
+ Die PDF/UA-Kennung wird nur auf Wunsch geschrieben (`pdfua_identifier`) und
307
+ nur, wenn `check_accessibility` keinen Fehler meldet. Sie behauptet eine
308
+ Konformität, die der Connector nicht vollständig prüfen kann. Prüfen Sie
309
+ jede Datei mit einem PDF/UA-Prüfprogramm und einem Bildschirmleser; einige
310
+ Schritte bleiben Handarbeit in Adobe Acrobat: Bildunterschriften ihren
311
+ Bildern zuordnen, komplexe Tabellen (verbundene Zellen, Zeilenköpfe) und
312
+ Kontraste. Geprüft mit InDesign 2026.
313
+
314
+ ## License terms
315
+
316
+ Die Nutzung von LayoutBridge Light for Adobe InDesign® richtet sich nach den
317
+ Lizenzbedingungen (EULA). Maßgeblich ist die deutsche Fassung.
318
+
319
+ - Deutsch: https://mcp-schnittstellen.de/layoutbridge-light/lizenzbedingungen.html
320
+ - English: https://mcp-interfaces.com/layoutbridge-light/license.html
321
+
322
+ Der Server nennt die Adresse in seiner Startzeile und in jeder Antwort der
323
+ Fehlerart `license` (`error.details.license_terms`).
324
+
325
+ ## Privacy Policy
326
+
327
+ Welche Daten der Server verarbeitet – Lizenzprüfung beim Zahlungsdienst,
328
+ Protokoll auf dem eigenen Rechner, nichts weiter – steht in der
329
+ Datenschutzerklärung des Produkts:
330
+
331
+ - Deutsch: https://mcp-schnittstellen.de/layoutbridge-light/datenschutz.html
332
+ - English: https://mcp-interfaces.com/layoutbridge-light/privacy.html
333
+
334
+ Die Lizenzprüfung ruft den Zahlungsdienst Polar auf; dessen
335
+ Datenschutzerklärung: https://polar.sh/legal/privacy.
336
+
337
+ ## Support
338
+
339
+ Fragen und Fehlermeldungen an **kontakt@mcp-interfaces.com**. Wir antworten
340
+ an Werktagen, angestrebt innerhalb von zwei Werktagen. Hilfreich sind:
341
+ Werkzeugname, Fehlertext im Wortlaut, Zeitpunkt, InDesign-Version und
342
+ Betriebssystem. Schicken Sie uns **nie Ihren Lizenzschlüssel**.
343
+
344
+ Eine kopierte Fehlermeldung kann Dateinamen und den Ordnerweg unterhalb
345
+ Ihres Benutzerverzeichnisses sowie Bezeichnungen aus dem Dokument
346
+ (Seiten, Rahmen, Formate) enthalten – keinen Benutzernamen, keinen
347
+ Dokumenttext, keinen Lizenzschlüssel. Fehlerkorrekturen werden
348
+ schnellstmöglich umgesetzt.
349
+
350
+ ## Third-party notices
351
+
352
+ Das Paket enthält Software Dritter (Laufzeitabhängigkeiten einschließlich
353
+ transitiver Pakete). Name, Version, Lizenz, Urheberzeile und vollständiger
354
+ Lizenztext je Paket stehen in `THIRD-PARTY-NOTICES.md` (im npm-Paket und im
355
+ Installationspaket enthalten).
356
+
357
+ ## Versionen und Changelog
358
+
359
+ Ein Release im Monat mit Katalog der neuen Funktionen; Fehlerkorrekturen
360
+ werden schnellstmöglich und unabhängig davon umgesetzt. Alle Änderungen
361
+ stehen in `CHANGELOG.md` (im Paket enthalten). Innerhalb einer
362
+ Hauptversion bleiben Werkzeugnamen, Parameter und Rückgabefelder stabil;
363
+ Ergänzungen sind additiv.
364
+
365
+ ## Lizenz
366
+
367
+ Proprietär, alle Rechte vorbehalten. Siehe `LICENSE`.