@bendyline/docblocks-cli 2.7.2 → 2.7.3
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/THIRD_PARTY_NOTICES.txt +208 -16
- package/dist/bin.js +273 -7
- package/package.json +7 -7
package/THIRD_PARTY_NOTICES.txt
CHANGED
|
@@ -15,11 +15,11 @@ This notice is included in the published npm tarball. Transitive packages instal
|
|
|
15
15
|
| Package | Version | License | Source |
|
|
16
16
|
| --- | --- | --- | --- |
|
|
17
17
|
| @antfu/install-pkg | 2.1.0 | MIT | https://github.com/antfu-collective/install-pkg |
|
|
18
|
-
| @bendyline/squisq | 2.12.
|
|
19
|
-
| @bendyline/squisq-cli | 2.9.
|
|
20
|
-
| @bendyline/squisq-formats | 2.7.
|
|
21
|
-
| @bendyline/squisq-react | 2.12.
|
|
22
|
-
| @bendyline/squisq-video | 2.4.
|
|
18
|
+
| @bendyline/squisq | 2.12.3 | MIT | https://github.com/bendyline/squisq |
|
|
19
|
+
| @bendyline/squisq-cli | 2.9.5 | MIT | https://github.com/bendyline/squisq |
|
|
20
|
+
| @bendyline/squisq-formats | 2.7.3 | MIT | https://github.com/bendyline/squisq |
|
|
21
|
+
| @bendyline/squisq-react | 2.12.4 | MIT | https://github.com/bendyline/squisq |
|
|
22
|
+
| @bendyline/squisq-video | 2.4.3 | MIT | https://github.com/bendyline/squisq |
|
|
23
23
|
| @braintree/sanitize-url | 7.1.2 | MIT | https://github.com/braintree/sanitize-url |
|
|
24
24
|
| @chevrotain/types | 11.1.2 | Apache-2.0 | https://github.com/Chevrotain/chevrotain |
|
|
25
25
|
| @ffmpeg/ffmpeg | 0.12.15 | MIT | https://github.com/ffmpegwasm/ffmpeg.wasm |
|
|
@@ -409,7 +409,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
|
409
409
|
SOFTWARE.
|
|
410
410
|
|
|
411
411
|
==============================================================================
|
|
412
|
-
Components: @bendyline/squisq-cli@2.9.
|
|
412
|
+
Components: @bendyline/squisq-cli@2.9.5, @bendyline/squisq-formats@2.7.3, @bendyline/squisq-react@2.12.4, @bendyline/squisq-video@2.4.3, @bendyline/squisq@2.12.3
|
|
413
413
|
Source files: node_modules/@bendyline/squisq-cli/LICENSE, node_modules/@bendyline/squisq-formats/LICENSE, node_modules/@bendyline/squisq-react/LICENSE, node_modules/@bendyline/squisq-video/LICENSE, node_modules/@bendyline/squisq/LICENSE
|
|
414
414
|
==============================================================================
|
|
415
415
|
MIT License
|
|
@@ -679,7 +679,7 @@ This software contains code derived from the Puppeteer project (https://github.c
|
|
|
679
679
|
available under the Apache 2.0 license (https://github.com/puppeteer/puppeteer/blob/master/LICENSE).
|
|
680
680
|
|
|
681
681
|
==============================================================================
|
|
682
|
-
Components: @bendyline/squisq-cli@2.9.
|
|
682
|
+
Components: @bendyline/squisq-cli@2.9.5
|
|
683
683
|
Source files: node_modules/@bendyline/squisq-cli/NOTICE.md
|
|
684
684
|
==============================================================================
|
|
685
685
|
# Third-Party Notices for @bendyline/squisq-cli
|
|
@@ -699,7 +699,7 @@ Copyright and complete license texts for these dependencies are included in
|
|
|
699
699
|
their respective npm distributions and source repositories.
|
|
700
700
|
|
|
701
701
|
==============================================================================
|
|
702
|
-
Components: @bendyline/squisq-cli@2.9.
|
|
702
|
+
Components: @bendyline/squisq-cli@2.9.5
|
|
703
703
|
Source files: node_modules/@bendyline/squisq-cli/THIRD_PARTY_LICENSES.txt
|
|
704
704
|
==============================================================================
|
|
705
705
|
THIRD-PARTY LICENSES FOR @bendyline/squisq-cli
|
|
@@ -5869,7 +5869,7 @@ The above copyright notice and this permission notice shall be included in all c
|
|
|
5869
5869
|
**THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.**
|
|
5870
5870
|
|
|
5871
5871
|
==============================================================================
|
|
5872
|
-
Components: @bendyline/squisq-formats@2.7.
|
|
5872
|
+
Components: @bendyline/squisq-formats@2.7.3
|
|
5873
5873
|
Source files: node_modules/@bendyline/squisq-formats/NOTICE.md
|
|
5874
5874
|
==============================================================================
|
|
5875
5875
|
# Third-Party Notices for @bendyline/squisq-formats
|
|
@@ -5895,7 +5895,7 @@ texts for these dependencies are included in their respective npm
|
|
|
5895
5895
|
distributions and source repositories.
|
|
5896
5896
|
|
|
5897
5897
|
==============================================================================
|
|
5898
|
-
Components: @bendyline/squisq-formats@2.7.
|
|
5898
|
+
Components: @bendyline/squisq-formats@2.7.3
|
|
5899
5899
|
Source files: node_modules/@bendyline/squisq-formats/THIRD_PARTY_LICENSES.txt
|
|
5900
5900
|
==============================================================================
|
|
5901
5901
|
THIRD-PARTY LICENSES FOR @bendyline/squisq-formats
|
|
@@ -5906,6 +5906,7 @@ repository license, the pinned upstream copy is vendored and identified below.
|
|
|
5906
5906
|
|
|
5907
5907
|
COMPONENTS
|
|
5908
5908
|
- @fortawesome/fontawesome-free@7.3.1 ((CC-BY-4.0 AND OFL-1.1 AND MIT)); files: LICENSE.txt
|
|
5909
|
+
- dejavu-fonts-ttf@2.37.3 (SEE LICENSE IN README.md AND LICENSE); files: LICENSE
|
|
5909
5910
|
|
|
5910
5911
|
==============================================================================
|
|
5911
5912
|
@fortawesome/fontawesome-free@7.3.1 - LICENSE.txt
|
|
@@ -6077,7 +6078,198 @@ Awesome, nor vice versa. **Please do not use brand logos for any purpose except
|
|
|
6077
6078
|
to represent the company, product, or service to which they refer.**
|
|
6078
6079
|
|
|
6079
6080
|
==============================================================================
|
|
6080
|
-
|
|
6081
|
+
dejavu-fonts-ttf@2.37.3 - LICENSE
|
|
6082
|
+
==============================================================================
|
|
6083
|
+
Fonts are (c) Bitstream (see below). DejaVu changes are in public domain.
|
|
6084
|
+
Glyphs imported from Arev fonts are (c) Tavmjong Bah (see below)
|
|
6085
|
+
|
|
6086
|
+
|
|
6087
|
+
Bitstream Vera Fonts Copyright
|
|
6088
|
+
------------------------------
|
|
6089
|
+
|
|
6090
|
+
Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Bitstream Vera is
|
|
6091
|
+
a trademark of Bitstream, Inc.
|
|
6092
|
+
|
|
6093
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6094
|
+
of the fonts accompanying this license ("Fonts") and associated
|
|
6095
|
+
documentation files (the "Font Software"), to reproduce and distribute the
|
|
6096
|
+
Font Software, including without limitation the rights to use, copy, merge,
|
|
6097
|
+
publish, distribute, and/or sell copies of the Font Software, and to permit
|
|
6098
|
+
persons to whom the Font Software is furnished to do so, subject to the
|
|
6099
|
+
following conditions:
|
|
6100
|
+
|
|
6101
|
+
The above copyright and trademark notices and this permission notice shall
|
|
6102
|
+
be included in all copies of one or more of the Font Software typefaces.
|
|
6103
|
+
|
|
6104
|
+
The Font Software may be modified, altered, or added to, and in particular
|
|
6105
|
+
the designs of glyphs or characters in the Fonts may be modified and
|
|
6106
|
+
additional glyphs or characters may be added to the Fonts, only if the fonts
|
|
6107
|
+
are renamed to names not containing either the words "Bitstream" or the word
|
|
6108
|
+
"Vera".
|
|
6109
|
+
|
|
6110
|
+
This License becomes null and void to the extent applicable to Fonts or Font
|
|
6111
|
+
Software that has been modified and is distributed under the "Bitstream
|
|
6112
|
+
Vera" names.
|
|
6113
|
+
|
|
6114
|
+
The Font Software may be sold as part of a larger software package but no
|
|
6115
|
+
copy of one or more of the Font Software typefaces may be sold by itself.
|
|
6116
|
+
|
|
6117
|
+
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
|
6118
|
+
OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY,
|
|
6119
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT,
|
|
6120
|
+
TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL BITSTREAM OR THE GNOME
|
|
6121
|
+
FOUNDATION BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING
|
|
6122
|
+
ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES,
|
|
6123
|
+
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
|
|
6124
|
+
THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE
|
|
6125
|
+
FONT SOFTWARE.
|
|
6126
|
+
|
|
6127
|
+
Except as contained in this notice, the names of Gnome, the Gnome
|
|
6128
|
+
Foundation, and Bitstream Inc., shall not be used in advertising or
|
|
6129
|
+
otherwise to promote the sale, use or other dealings in this Font Software
|
|
6130
|
+
without prior written authorization from the Gnome Foundation or Bitstream
|
|
6131
|
+
Inc., respectively. For further information, contact: fonts at gnome dot
|
|
6132
|
+
org.
|
|
6133
|
+
|
|
6134
|
+
Arev Fonts Copyright
|
|
6135
|
+
------------------------------
|
|
6136
|
+
|
|
6137
|
+
Copyright (c) 2006 by Tavmjong Bah. All Rights Reserved.
|
|
6138
|
+
|
|
6139
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
|
6140
|
+
a copy of the fonts accompanying this license ("Fonts") and
|
|
6141
|
+
associated documentation files (the "Font Software"), to reproduce
|
|
6142
|
+
and distribute the modifications to the Bitstream Vera Font Software,
|
|
6143
|
+
including without limitation the rights to use, copy, merge, publish,
|
|
6144
|
+
distribute, and/or sell copies of the Font Software, and to permit
|
|
6145
|
+
persons to whom the Font Software is furnished to do so, subject to
|
|
6146
|
+
the following conditions:
|
|
6147
|
+
|
|
6148
|
+
The above copyright and trademark notices and this permission notice
|
|
6149
|
+
shall be included in all copies of one or more of the Font Software
|
|
6150
|
+
typefaces.
|
|
6151
|
+
|
|
6152
|
+
The Font Software may be modified, altered, or added to, and in
|
|
6153
|
+
particular the designs of glyphs or characters in the Fonts may be
|
|
6154
|
+
modified and additional glyphs or characters may be added to the
|
|
6155
|
+
Fonts, only if the fonts are renamed to names not containing either
|
|
6156
|
+
the words "Tavmjong Bah" or the word "Arev".
|
|
6157
|
+
|
|
6158
|
+
This License becomes null and void to the extent applicable to Fonts
|
|
6159
|
+
or Font Software that has been modified and is distributed under the
|
|
6160
|
+
"Tavmjong Bah Arev" names.
|
|
6161
|
+
|
|
6162
|
+
The Font Software may be sold as part of a larger software package but
|
|
6163
|
+
no copy of one or more of the Font Software typefaces may be sold by
|
|
6164
|
+
itself.
|
|
6165
|
+
|
|
6166
|
+
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
6167
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
|
6168
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
|
6169
|
+
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL
|
|
6170
|
+
TAVMJONG BAH BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
|
6171
|
+
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
|
6172
|
+
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
6173
|
+
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
|
6174
|
+
OTHER DEALINGS IN THE FONT SOFTWARE.
|
|
6175
|
+
|
|
6176
|
+
Except as contained in this notice, the name of Tavmjong Bah shall not
|
|
6177
|
+
be used in advertising or otherwise to promote the sale, use or other
|
|
6178
|
+
dealings in this Font Software without prior written authorization
|
|
6179
|
+
from Tavmjong Bah. For further information, contact: tavmjong @ free
|
|
6180
|
+
. fr.
|
|
6181
|
+
|
|
6182
|
+
TeX Gyre DJV Math
|
|
6183
|
+
-----------------
|
|
6184
|
+
Fonts are (c) Bitstream (see below). DejaVu changes are in public domain.
|
|
6185
|
+
|
|
6186
|
+
Math extensions done by B. Jackowski, P. Strzelczyk and P. Pianowski
|
|
6187
|
+
(on behalf of TeX users groups) are in public domain.
|
|
6188
|
+
|
|
6189
|
+
Letters imported from Euler Fraktur from AMSfonts are (c) American
|
|
6190
|
+
Mathematical Society (see below).
|
|
6191
|
+
Bitstream Vera Fonts Copyright
|
|
6192
|
+
Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Bitstream Vera
|
|
6193
|
+
is a trademark of Bitstream, Inc.
|
|
6194
|
+
|
|
6195
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6196
|
+
of the fonts accompanying this license (“Fonts”) and associated
|
|
6197
|
+
documentation
|
|
6198
|
+
files (the “Font Software”), to reproduce and distribute the Font Software,
|
|
6199
|
+
including without limitation the rights to use, copy, merge, publish,
|
|
6200
|
+
distribute,
|
|
6201
|
+
and/or sell copies of the Font Software, and to permit persons to whom
|
|
6202
|
+
the Font Software is furnished to do so, subject to the following
|
|
6203
|
+
conditions:
|
|
6204
|
+
|
|
6205
|
+
The above copyright and trademark notices and this permission notice
|
|
6206
|
+
shall be
|
|
6207
|
+
included in all copies of one or more of the Font Software typefaces.
|
|
6208
|
+
|
|
6209
|
+
The Font Software may be modified, altered, or added to, and in particular
|
|
6210
|
+
the designs of glyphs or characters in the Fonts may be modified and
|
|
6211
|
+
additional
|
|
6212
|
+
glyphs or characters may be added to the Fonts, only if the fonts are
|
|
6213
|
+
renamed
|
|
6214
|
+
to names not containing either the words “Bitstream” or the word “Vera”.
|
|
6215
|
+
|
|
6216
|
+
This License becomes null and void to the extent applicable to Fonts or
|
|
6217
|
+
Font Software
|
|
6218
|
+
that has been modified and is distributed under the “Bitstream Vera”
|
|
6219
|
+
names.
|
|
6220
|
+
|
|
6221
|
+
The Font Software may be sold as part of a larger software package but
|
|
6222
|
+
no copy
|
|
6223
|
+
of one or more of the Font Software typefaces may be sold by itself.
|
|
6224
|
+
|
|
6225
|
+
THE FONT SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
|
6226
|
+
OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY,
|
|
6227
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT,
|
|
6228
|
+
TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL BITSTREAM OR THE GNOME
|
|
6229
|
+
FOUNDATION
|
|
6230
|
+
BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL,
|
|
6231
|
+
SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN
|
|
6232
|
+
ACTION
|
|
6233
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR
|
|
6234
|
+
INABILITY TO USE
|
|
6235
|
+
THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.
|
|
6236
|
+
Except as contained in this notice, the names of GNOME, the GNOME
|
|
6237
|
+
Foundation,
|
|
6238
|
+
and Bitstream Inc., shall not be used in advertising or otherwise to promote
|
|
6239
|
+
the sale, use or other dealings in this Font Software without prior written
|
|
6240
|
+
authorization from the GNOME Foundation or Bitstream Inc., respectively.
|
|
6241
|
+
For further information, contact: fonts at gnome dot org.
|
|
6242
|
+
|
|
6243
|
+
AMSFonts (v. 2.2) copyright
|
|
6244
|
+
|
|
6245
|
+
The PostScript Type 1 implementation of the AMSFonts produced by and
|
|
6246
|
+
previously distributed by Blue Sky Research and Y&Y, Inc. are now freely
|
|
6247
|
+
available for general use. This has been accomplished through the
|
|
6248
|
+
cooperation
|
|
6249
|
+
of a consortium of scientific publishers with Blue Sky Research and Y&Y.
|
|
6250
|
+
Members of this consortium include:
|
|
6251
|
+
|
|
6252
|
+
Elsevier Science IBM Corporation Society for Industrial and Applied
|
|
6253
|
+
Mathematics (SIAM) Springer-Verlag American Mathematical Society (AMS)
|
|
6254
|
+
|
|
6255
|
+
In order to assure the authenticity of these fonts, copyright will be
|
|
6256
|
+
held by
|
|
6257
|
+
the American Mathematical Society. This is not meant to restrict in any way
|
|
6258
|
+
the legitimate use of the fonts, such as (but not limited to) electronic
|
|
6259
|
+
distribution of documents containing these fonts, inclusion of these fonts
|
|
6260
|
+
into other public domain or commercial font collections or computer
|
|
6261
|
+
applications, use of the outline data to create derivative fonts and/or
|
|
6262
|
+
faces, etc. However, the AMS does require that the AMS copyright notice be
|
|
6263
|
+
removed from any derivative versions of the fonts which have been altered in
|
|
6264
|
+
any way. In addition, to ensure the fidelity of TeX documents using Computer
|
|
6265
|
+
Modern fonts, Professor Donald Knuth, creator of the Computer Modern faces,
|
|
6266
|
+
has requested that any alterations which yield different font metrics be
|
|
6267
|
+
given a different name.
|
|
6268
|
+
|
|
6269
|
+
$Id$
|
|
6270
|
+
|
|
6271
|
+
==============================================================================
|
|
6272
|
+
Components: @bendyline/squisq-react@2.12.4
|
|
6081
6273
|
Source files: node_modules/@bendyline/squisq-react/NOTICE.md
|
|
6082
6274
|
==============================================================================
|
|
6083
6275
|
# Third-Party Notices for @bendyline/squisq-react
|
|
@@ -6102,7 +6294,7 @@ third-party license texts for the complete standalone bundle graph are shipped
|
|
|
6102
6294
|
in THIRD_PARTY_LICENSES.txt.
|
|
6103
6295
|
|
|
6104
6296
|
==============================================================================
|
|
6105
|
-
Components: @bendyline/squisq-react@2.12.
|
|
6297
|
+
Components: @bendyline/squisq-react@2.12.4
|
|
6106
6298
|
Source files: node_modules/@bendyline/squisq-react/THIRD_PARTY_LICENSES.txt
|
|
6107
6299
|
==============================================================================
|
|
6108
6300
|
THIRD-PARTY LICENSES FOR @bendyline/squisq-react
|
|
@@ -11031,7 +11223,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
|
11031
11223
|
SOFTWARE.
|
|
11032
11224
|
|
|
11033
11225
|
==============================================================================
|
|
11034
|
-
Components: @bendyline/squisq-video@2.4.
|
|
11226
|
+
Components: @bendyline/squisq-video@2.4.3
|
|
11035
11227
|
Source files: node_modules/@bendyline/squisq-video/NOTICE.md
|
|
11036
11228
|
==============================================================================
|
|
11037
11229
|
# Third-Party Notices for @bendyline/squisq-video
|
|
@@ -11056,7 +11248,7 @@ Copyright and complete license texts for the listed dependencies are included
|
|
|
11056
11248
|
in their respective npm distributions and source repositories.
|
|
11057
11249
|
|
|
11058
11250
|
==============================================================================
|
|
11059
|
-
Components: @bendyline/squisq-video@2.4.
|
|
11251
|
+
Components: @bendyline/squisq-video@2.4.3
|
|
11060
11252
|
Source files: node_modules/@bendyline/squisq-video/THIRD_PARTY_LICENSES.txt
|
|
11061
11253
|
==============================================================================
|
|
11062
11254
|
THIRD-PARTY LICENSES FOR @bendyline/squisq-video
|
|
@@ -11068,7 +11260,7 @@ repository license, the pinned upstream copy is vendored and identified below.
|
|
|
11068
11260
|
COMPONENTS
|
|
11069
11261
|
|
|
11070
11262
|
==============================================================================
|
|
11071
|
-
Components: @bendyline/squisq@2.12.
|
|
11263
|
+
Components: @bendyline/squisq@2.12.3
|
|
11072
11264
|
Source files: node_modules/@bendyline/squisq/NOTICE.md
|
|
11073
11265
|
==============================================================================
|
|
11074
11266
|
# Third-Party Notices for @bendyline/squisq
|
|
@@ -11099,7 +11291,7 @@ third-party license texts for bundled code and data are shipped in
|
|
|
11099
11291
|
THIRD_PARTY_LICENSES.txt.
|
|
11100
11292
|
|
|
11101
11293
|
==============================================================================
|
|
11102
|
-
Components: @bendyline/squisq@2.12.
|
|
11294
|
+
Components: @bendyline/squisq@2.12.3
|
|
11103
11295
|
Source files: node_modules/@bendyline/squisq/THIRD_PARTY_LICENSES.txt
|
|
11104
11296
|
==============================================================================
|
|
11105
11297
|
THIRD-PARTY LICENSES FOR @bendyline/squisq
|
package/dist/bin.js
CHANGED
|
@@ -1824,7 +1824,13 @@ async function inspectPreparedDocument(_documents, prepared, maximumBlocks = DEF
|
|
|
1824
1824
|
(diagnostic) => mapDocDiagnostic(diagnostic, prepared.sourceFormat)
|
|
1825
1825
|
),
|
|
1826
1826
|
...missingAltTextDiagnostics(prepared.markdownDoc, prepared.sourceFormat),
|
|
1827
|
-
...await authoringDiagnostics(prepared, "inspect", prepared.sourceFormat, signal)
|
|
1827
|
+
...await authoringDiagnostics(prepared, "inspect", prepared.sourceFormat, signal),
|
|
1828
|
+
...await svgPictureDiagnostics(
|
|
1829
|
+
prepared.markdownDoc,
|
|
1830
|
+
"inspect",
|
|
1831
|
+
prepared.sourceFormat,
|
|
1832
|
+
signal
|
|
1833
|
+
)
|
|
1828
1834
|
];
|
|
1829
1835
|
let wordCount = 0;
|
|
1830
1836
|
for (let index = 0; index < analyzed.length; index += 1) {
|
|
@@ -2433,6 +2439,172 @@ function missingAltTextDiagnostics(markdownDoc, format) {
|
|
|
2433
2439
|
}
|
|
2434
2440
|
];
|
|
2435
2441
|
}
|
|
2442
|
+
async function svgPictureDiagnostics(markdownDoc, stage, format, signal) {
|
|
2443
|
+
throwIfAborted5(signal);
|
|
2444
|
+
const { SVG_ISLAND_LIMITS, isSvgIslandLang, parseSvgIsland } = await import("@bendyline/squisq/markdown");
|
|
2445
|
+
const diagnostics = [];
|
|
2446
|
+
const untitled = [];
|
|
2447
|
+
let fenceCount = 0;
|
|
2448
|
+
const pending = [markdownDoc];
|
|
2449
|
+
let visited = 0;
|
|
2450
|
+
while (pending.length > 0) {
|
|
2451
|
+
const checkpoint = cancellationCheckpoint(signal, visited);
|
|
2452
|
+
if (checkpoint) await checkpoint;
|
|
2453
|
+
visited += 1;
|
|
2454
|
+
const node = pending.pop();
|
|
2455
|
+
if (!node || typeof node !== "object") continue;
|
|
2456
|
+
const candidate = node;
|
|
2457
|
+
if (candidate.type === "code" && typeof candidate.value === "string" && isSvgIslandLang(typeof candidate.lang === "string" ? candidate.lang : null)) {
|
|
2458
|
+
fenceCount += 1;
|
|
2459
|
+
if (fenceCount > MAX_SVG_FENCES_ANALYZED) continue;
|
|
2460
|
+
const location = sourceLocation(candidate.position);
|
|
2461
|
+
const result = parseSvgIsland(candidate.value);
|
|
2462
|
+
if (!result.ok) {
|
|
2463
|
+
diagnostics.push(
|
|
2464
|
+
svgFenceNotRenderedDiagnostic(result, location, stage, format, SVG_ISLAND_LIMITS)
|
|
2465
|
+
);
|
|
2466
|
+
continue;
|
|
2467
|
+
}
|
|
2468
|
+
if (result.diagnostics.length > 0) {
|
|
2469
|
+
diagnostics.push(svgContentRemovedDiagnostic(result.diagnostics, location, stage, format));
|
|
2470
|
+
}
|
|
2471
|
+
if (result.island.title === void 0) untitled.push(location);
|
|
2472
|
+
continue;
|
|
2473
|
+
}
|
|
2474
|
+
if (candidate.type === "htmlBlock" || candidate.type === "htmlInline") {
|
|
2475
|
+
const svgCount = countSvgElements(candidate.htmlChildren);
|
|
2476
|
+
if (svgCount > 0) {
|
|
2477
|
+
diagnostics.push(
|
|
2478
|
+
rawSvgHtmlDiagnostic(svgCount, sourceLocation(candidate.position), stage, format)
|
|
2479
|
+
);
|
|
2480
|
+
}
|
|
2481
|
+
}
|
|
2482
|
+
if (Array.isArray(candidate.children)) {
|
|
2483
|
+
for (let index = candidate.children.length - 1; index >= 0; index -= 1) {
|
|
2484
|
+
pending.push(candidate.children[index]);
|
|
2485
|
+
}
|
|
2486
|
+
}
|
|
2487
|
+
}
|
|
2488
|
+
if (untitled.length > 0) {
|
|
2489
|
+
diagnostics.push(svgMissingTitleDiagnostic(untitled, stage, format));
|
|
2490
|
+
}
|
|
2491
|
+
if (fenceCount > MAX_SVG_FENCES_ANALYZED) {
|
|
2492
|
+
diagnostics.push({
|
|
2493
|
+
code: "svg-analysis-truncated",
|
|
2494
|
+
severity: "info",
|
|
2495
|
+
stage,
|
|
2496
|
+
format,
|
|
2497
|
+
count: fenceCount - MAX_SVG_FENCES_ANALYZED,
|
|
2498
|
+
message: `SVG diagnostics analyzed the first ${MAX_SVG_FENCES_ANALYZED} of ${fenceCount} \`\`\`svg fences.`,
|
|
2499
|
+
remediation: "Split the document before requesting exhaustive SVG picture diagnostics.",
|
|
2500
|
+
retryable: false,
|
|
2501
|
+
location: null
|
|
2502
|
+
});
|
|
2503
|
+
}
|
|
2504
|
+
return diagnostics;
|
|
2505
|
+
}
|
|
2506
|
+
function svgFenceLabel(location) {
|
|
2507
|
+
return location ? `The \`\`\`svg fence at line ${location.line}` : "A ```svg fence";
|
|
2508
|
+
}
|
|
2509
|
+
function svgFenceNotRenderedDiagnostic(result, location, stage, format, limits) {
|
|
2510
|
+
const sourceKiB = Math.floor(limits.maxSourceBytes / 1024);
|
|
2511
|
+
const remediation = {
|
|
2512
|
+
empty: "Put one complete <svg>\u2026</svg> element in the fence, or delete the fence.",
|
|
2513
|
+
"not-svg": "Keep exactly one <svg> root element in the fence and nothing beside it. To show SVG source as code instead, use an ```xml fence.",
|
|
2514
|
+
"too-large": `Simplify the picture and remove circular <use> references: a fence must stay under ${sourceKiB} KiB of source, ${limits.maxElements} elements, and ${limits.maxExpandedElements} elements after <use> expansion.`,
|
|
2515
|
+
"too-deep": `Flatten nested groups: a fence may nest elements at most ${limits.maxDepth} levels deep.`,
|
|
2516
|
+
parse: "Repair the markup so the fence holds one well-formed <svg> element."
|
|
2517
|
+
}[result.reason];
|
|
2518
|
+
return {
|
|
2519
|
+
code: "svg-fence-not-rendered",
|
|
2520
|
+
severity: "error",
|
|
2521
|
+
stage,
|
|
2522
|
+
format,
|
|
2523
|
+
count: 1,
|
|
2524
|
+
message: `${svgFenceLabel(location)} cannot be drawn (${result.reason}): ${result.message} It shows as code, or as a placeholder on slides, instead of a picture.`,
|
|
2525
|
+
remediation,
|
|
2526
|
+
retryable: false,
|
|
2527
|
+
location
|
|
2528
|
+
};
|
|
2529
|
+
}
|
|
2530
|
+
function svgContentRemovedDiagnostic(removals, location, stage, format) {
|
|
2531
|
+
const listed = removals.slice(0, MAX_LISTED_SVG_REMOVALS).map(({ kind, name, count }) => {
|
|
2532
|
+
const bounded = name.slice(0, MAX_SVG_REMOVAL_NAME_CHARACTERS);
|
|
2533
|
+
return `${kind === "element" ? `<${bounded}>` : bounded} \xD7${count}`;
|
|
2534
|
+
});
|
|
2535
|
+
const omitted = removals.length - listed.length;
|
|
2536
|
+
const occurrences = removals.reduce(
|
|
2537
|
+
(sum, removal) => safeDiagnosticCountSum(sum, removal.count),
|
|
2538
|
+
0
|
|
2539
|
+
);
|
|
2540
|
+
return {
|
|
2541
|
+
code: "svg-content-removed",
|
|
2542
|
+
severity: "warning",
|
|
2543
|
+
stage,
|
|
2544
|
+
format,
|
|
2545
|
+
count: Math.max(1, occurrences),
|
|
2546
|
+
message: `${svgFenceLabel(location)} draws, but the sanitizer removed ${listed.join(", ")}${omitted > 0 ? `, and ${omitted} more` : ""}.`,
|
|
2547
|
+
remediation: "Delete the removed content or replace it with what renders: inline shapes and text, #id and url(#id) references, base64 PNG, JPEG, GIF, or WebP <image> data, and system fonts. Scripts, event handlers, foreignObject, external links or images, @import, and @font-face never render.",
|
|
2548
|
+
retryable: false,
|
|
2549
|
+
location
|
|
2550
|
+
};
|
|
2551
|
+
}
|
|
2552
|
+
function svgMissingTitleDiagnostic(locations, stage, format) {
|
|
2553
|
+
const lines = locations.filter((location) => location !== null).map(({ line }) => line);
|
|
2554
|
+
const listedLines = lines.length === 0 ? "" : ` (line${lines.length === 1 ? "" : "s"} ${lines.slice(0, MAX_LISTED_SVG_LINES).join(", ")}${lines.length > MAX_LISTED_SVG_LINES ? ", \u2026" : ""})`;
|
|
2555
|
+
return {
|
|
2556
|
+
code: "svg-missing-title",
|
|
2557
|
+
severity: "warning",
|
|
2558
|
+
stage,
|
|
2559
|
+
format,
|
|
2560
|
+
count: locations.length,
|
|
2561
|
+
message: locations.length === 1 ? `One \`\`\`svg fence has no accessible name${listedLines}.` : `${locations.length} \`\`\`svg fences have no accessible name${listedLines}.`,
|
|
2562
|
+
remediation: "Add a concise <title> as the first child of each <svg> root, or an aria-label on the root; it becomes the alternative text.",
|
|
2563
|
+
retryable: false,
|
|
2564
|
+
location: locations.length === 1 ? locations[0] ?? null : null
|
|
2565
|
+
};
|
|
2566
|
+
}
|
|
2567
|
+
function rawSvgHtmlDiagnostic(count, location, stage, format) {
|
|
2568
|
+
return {
|
|
2569
|
+
code: "raw-svg-html-dropped",
|
|
2570
|
+
severity: "warning",
|
|
2571
|
+
stage,
|
|
2572
|
+
format,
|
|
2573
|
+
count,
|
|
2574
|
+
message: `${location ? `Raw <svg> HTML at line ${location.line}` : "Raw <svg> HTML"} is removed by the Markdown sanitizer, so it never shows as a picture.`,
|
|
2575
|
+
remediation: "Wrap the markup in a ```svg fence to draw it as a picture, or in an ```xml fence to show it as code.",
|
|
2576
|
+
retryable: false,
|
|
2577
|
+
location
|
|
2578
|
+
};
|
|
2579
|
+
}
|
|
2580
|
+
function countSvgElements(htmlChildren) {
|
|
2581
|
+
let count = 0;
|
|
2582
|
+
const pending = Array.isArray(htmlChildren) ? [...htmlChildren] : [];
|
|
2583
|
+
while (pending.length > 0) {
|
|
2584
|
+
const node = pending.pop();
|
|
2585
|
+
if (!node || typeof node !== "object") continue;
|
|
2586
|
+
const element = node;
|
|
2587
|
+
if (element.type !== "htmlElement") continue;
|
|
2588
|
+
if (typeof element.tagName === "string" && element.tagName.toLowerCase() === "svg") {
|
|
2589
|
+
count += 1;
|
|
2590
|
+
continue;
|
|
2591
|
+
}
|
|
2592
|
+
if (Array.isArray(element.children)) {
|
|
2593
|
+
for (const child of element.children) pending.push(child);
|
|
2594
|
+
}
|
|
2595
|
+
}
|
|
2596
|
+
return count;
|
|
2597
|
+
}
|
|
2598
|
+
function sourceLocation(position) {
|
|
2599
|
+
if (!position || typeof position !== "object") return null;
|
|
2600
|
+
const start = position.start;
|
|
2601
|
+
if (!start || typeof start !== "object") return null;
|
|
2602
|
+
const { line, column } = start;
|
|
2603
|
+
if (typeof line !== "number" || typeof column !== "number" || !Number.isSafeInteger(line) || !Number.isSafeInteger(column) || line < 1 || column < 1) {
|
|
2604
|
+
return null;
|
|
2605
|
+
}
|
|
2606
|
+
return { kind: "source", line, column };
|
|
2607
|
+
}
|
|
2436
2608
|
function boundDiagnostics(diagnostics, stage) {
|
|
2437
2609
|
const aggregated = aggregateDiagnostics(diagnostics);
|
|
2438
2610
|
if (aggregated.length <= MAX_DIAGNOSTICS) return aggregated;
|
|
@@ -2651,7 +2823,7 @@ function change(category, similarity, label, leftCount, rightCount) {
|
|
|
2651
2823
|
function clamp01(value) {
|
|
2652
2824
|
return Math.max(0, Math.min(1, Number(value.toFixed(6))));
|
|
2653
2825
|
}
|
|
2654
|
-
var DEFAULT_MAX_INSPECTION_BLOCKS, MAX_INSPECTION_BLOCKS, MCP_MAX_PUBLISHED_DIAGNOSTICS, MAX_DIAGNOSTICS, FORMAT_PATTERN, CANCELLATION_YIELD_INTERVAL;
|
|
2826
|
+
var DEFAULT_MAX_INSPECTION_BLOCKS, MAX_INSPECTION_BLOCKS, MCP_MAX_PUBLISHED_DIAGNOSTICS, MAX_DIAGNOSTICS, FORMAT_PATTERN, CANCELLATION_YIELD_INTERVAL, MAX_SVG_FENCES_ANALYZED, MAX_LISTED_SVG_REMOVALS, MAX_LISTED_SVG_LINES, MAX_SVG_REMOVAL_NAME_CHARACTERS;
|
|
2655
2827
|
var init_intelligence = __esm({
|
|
2656
2828
|
"src/mcp/intelligence.ts"() {
|
|
2657
2829
|
"use strict";
|
|
@@ -2664,6 +2836,10 @@ var init_intelligence = __esm({
|
|
|
2664
2836
|
MAX_DIAGNOSTICS = MCP_MAX_PUBLISHED_DIAGNOSTICS;
|
|
2665
2837
|
FORMAT_PATTERN = /^[a-z0-9][a-z0-9.+_-]{0,63}$/u;
|
|
2666
2838
|
CANCELLATION_YIELD_INTERVAL = 256;
|
|
2839
|
+
MAX_SVG_FENCES_ANALYZED = 1e3;
|
|
2840
|
+
MAX_LISTED_SVG_REMOVALS = 12;
|
|
2841
|
+
MAX_LISTED_SVG_LINES = 10;
|
|
2842
|
+
MAX_SVG_REMOVAL_NAME_CHARACTERS = 64;
|
|
2667
2843
|
}
|
|
2668
2844
|
});
|
|
2669
2845
|
|
|
@@ -4211,6 +4387,86 @@ var init_preview_content = __esm({
|
|
|
4211
4387
|
}
|
|
4212
4388
|
});
|
|
4213
4389
|
|
|
4390
|
+
// src/mcp/picture-guidance.ts
|
|
4391
|
+
function pictureExportGuidance(targetFormat) {
|
|
4392
|
+
switch (targetFormat) {
|
|
4393
|
+
case "pptx":
|
|
4394
|
+
return "PPTX exports Mermaid as source text; draw flows as ```svg. Other pictures draw.";
|
|
4395
|
+
case "docx":
|
|
4396
|
+
case "epub":
|
|
4397
|
+
return "In DOCX and EPUB only ```svg becomes a picture; Mermaid, timeline and tree fences export as source text, so draw pictures that must survive as ```svg.";
|
|
4398
|
+
case "pdf":
|
|
4399
|
+
return 'Semantic PDF prints every picture fence as source text. Use fidelity "rendered-fidelity" only when pictures matter more than selectable text; Mermaid still does not draw there.';
|
|
4400
|
+
default:
|
|
4401
|
+
return null;
|
|
4402
|
+
}
|
|
4403
|
+
}
|
|
4404
|
+
function documentPictureHint(target) {
|
|
4405
|
+
return target === "docx" ? `For pictures use ${SVG_FENCE_SUMMARY}; DOCX keeps Mermaid, timeline and tree fences as source text, and raw <svg> HTML is silently dropped.` : `For pictures use ${SVG_FENCE_SUMMARY}; raw <svg> HTML is silently dropped. Semantic PDF prints picture fences as source text, so pass fidelity "rendered-fidelity" when pictures matter more than selectable text.`;
|
|
4406
|
+
}
|
|
4407
|
+
async function authoringGuidePictures() {
|
|
4408
|
+
const [{ SVG_ISLAND_LIMITS }, { TABLE_FED_TEMPLATES, getAvailableTemplates }] = await Promise.all(
|
|
4409
|
+
[import("@bendyline/squisq/markdown"), import("@bendyline/squisq/doc")]
|
|
4410
|
+
);
|
|
4411
|
+
const available = new Set(getAvailableTemplates());
|
|
4412
|
+
const chartTemplates = [...TABLE_FED_TEMPLATES].filter(
|
|
4413
|
+
(id) => id !== "dataTable" && available.has(id)
|
|
4414
|
+
);
|
|
4415
|
+
const sourceKiB = Math.floor(SVG_ISLAND_LIMITS.maxSourceBytes / 1024);
|
|
4416
|
+
return {
|
|
4417
|
+
choose: [
|
|
4418
|
+
"```mermaid for flows, sequences, state machines, hierarchies, and gantt schedules.",
|
|
4419
|
+
"```timeline for dated events: one rail per track, for example `\u25CF 2020 Founded \u2500\u2500\u2500\u25CF 2022 Launch \u2500\u2500\u2500\u25BA`.",
|
|
4420
|
+
"```tree for outlines and file trees drawn with \u251C\u2500\u2500 and \u2514\u2500\u2500 branches.",
|
|
4421
|
+
"A Markdown table under a heading annotated with a chart template for numbers, for example `## Revenue {[barChart]}`. Every chart template reads the first table in its block.",
|
|
4422
|
+
"```svg for bespoke illustrations, icons, annotated figures, and anything the formats above cannot draw.",
|
|
4423
|
+
"A sidecar `` image only for large or reused artwork. Pass it as a bundle asset, or stage it with create_document_bundle, so it travels with the document. Sidecar SVG is sanitized like a fence but keeps its own colors.",
|
|
4424
|
+
"The diagram, drawing, and layout container templates build pictures from child headings; use describe_template for their inputs."
|
|
4425
|
+
],
|
|
4426
|
+
chartTemplates,
|
|
4427
|
+
svgRules: [
|
|
4428
|
+
'Exactly one <svg> root with a viewBox, for example viewBox="0 0 640 360", and nothing beside it.',
|
|
4429
|
+
"A <title> as the first child: it becomes the alt text. A root aria-label also works.",
|
|
4430
|
+
'currentColor for strokes and text, and fill="none" or currentColor with fill-opacity, instead of hard-coded black or white. Fences then follow the theme text color on screen, in slides, DOCX, and EPUB. Accent colors are fine, but nothing inside the picture follows dark mode or CSS variables.',
|
|
4431
|
+
"No script, foreignObject, on* event handlers, external href or xlink:href links and images, url() other than url(#id), @import, or @font-face web fonts: the sanitizer removes them. <image> accepts only base64 PNG, JPEG, GIF, or WebP data URIs.",
|
|
4432
|
+
'font-family="sans-serif": pictures render with system fonts, never the page or theme fonts. Keep labels short and keep all text inside the viewBox.',
|
|
4433
|
+
`Stay well under the limits: ${sourceKiB} KiB of source, ${SVG_ISLAND_LIMITS.maxElements} elements, nesting depth ${SVG_ISLAND_LIMITS.maxDepth}, and ${SVG_ISLAND_LIMITS.maxExpandedElements} elements after <use> expansion. A fence past any limit shows as code.`
|
|
4434
|
+
],
|
|
4435
|
+
svgExample: SVG_ISLAND_EXAMPLE,
|
|
4436
|
+
never: "Never write raw <svg> HTML in Markdown: the sanitizer silently drops it with its content. Use a ```svg fence to draw it, or an ```xml fence to show SVG source as code.",
|
|
4437
|
+
exports: [
|
|
4438
|
+
"convert_document embeds ```svg as a vector picture in DOCX, PPTX, EPUB, and HTML.",
|
|
4439
|
+
"PPTX also draws timeline, tree, and chart pictures as native shapes.",
|
|
4440
|
+
"Mermaid exports as source text in DOCX, PPTX, EPUB, and PDF; timeline and tree fences do too in DOCX, EPUB, and PDF. Draw a picture that must survive those exports as ```svg.",
|
|
4441
|
+
"Semantic PDF prints every picture fence as source text. Rendered-fidelity PDF draws ```svg, timeline, tree, and chart pictures, but not Mermaid."
|
|
4442
|
+
],
|
|
4443
|
+
check: 'inspect_document reports a ```svg fence that will not draw (svg-fence-not-rendered), content the sanitizer removed (svg-content-removed), a missing <title> (svg-missing-title), and raw <svg> HTML (raw-svg-html-dropped). preview_document draws ```svg, timeline, tree, and chart pictures, or a dashed "Couldn\'t render this SVG" placeholder for a broken fence; Mermaid shows a placeholder there.'
|
|
4444
|
+
};
|
|
4445
|
+
}
|
|
4446
|
+
var PICTURE_SELECTION_GUIDANCE, PICTURE_INSTRUCTION_GUIDANCE, SVG_FENCE_SUMMARY, PRESENTATION_PICTURE_HINT, SVG_ISLAND_EXAMPLE;
|
|
4447
|
+
var init_picture_guidance = __esm({
|
|
4448
|
+
"src/mcp/picture-guidance.ts"() {
|
|
4449
|
+
"use strict";
|
|
4450
|
+
PICTURE_SELECTION_GUIDANCE = 'Pictures: ```mermaid for flows, sequences, states, hierarchies, gantt; ```timeline for dated events; ```tree for outlines; a table under `## Sales {[barChart]}` for numbers; ```svg for bespoke illustrations, icons, annotated figures. In ```svg: one <svg> root with a viewBox and <title>, currentColor strokes and text, font-family="sans-serif"; no script, foreignObject, event handlers, external links or web fonts. Never raw <svg> HTML (silently dropped); use ```xml to show SVG source. inspect_document flags broken ```svg.';
|
|
4451
|
+
PICTURE_INSTRUCTION_GUIDANCE = "Draw pictures with fences, never raw <svg> HTML, which is silently dropped: ```svg for bespoke art, ```mermaid, ```timeline, ```tree, or a chart template over a table. get_authoring_context gives target-specific picture rules.";
|
|
4452
|
+
SVG_FENCE_SUMMARY = "a ```svg fence (one <svg> root with a viewBox, a <title>, and currentColor strokes and text)";
|
|
4453
|
+
PRESENTATION_PICTURE_HINT = `For pictures use ${SVG_FENCE_SUMMARY}, \`\`\`timeline, \`\`\`tree, or a chart template over a table; Mermaid exports to PPTX as source text, and raw <svg> HTML is silently dropped.`;
|
|
4454
|
+
SVG_ISLAND_EXAMPLE = [
|
|
4455
|
+
"```svg",
|
|
4456
|
+
'<svg viewBox="0 0 320 120" xmlns="http://www.w3.org/2000/svg">',
|
|
4457
|
+
" <title>A request flows from the client to the server</title>",
|
|
4458
|
+
' <rect x="10" y="30" width="110" height="60" rx="8" fill="currentColor" fill-opacity="0.08" stroke="currentColor" stroke-width="2"/>',
|
|
4459
|
+
' <text x="65" y="66" font-family="sans-serif" font-size="16" text-anchor="middle" fill="currentColor">Client</text>',
|
|
4460
|
+
' <path d="M124 60 H188" fill="none" stroke="currentColor" stroke-width="2"/>',
|
|
4461
|
+
' <path d="M188 52 L200 60 L188 68 Z" fill="currentColor"/>',
|
|
4462
|
+
' <rect x="200" y="30" width="110" height="60" rx="8" fill="none" stroke="currentColor" stroke-width="2"/>',
|
|
4463
|
+
' <text x="255" y="66" font-family="sans-serif" font-size="16" text-anchor="middle" fill="currentColor">Server</text>',
|
|
4464
|
+
"</svg>",
|
|
4465
|
+
"```"
|
|
4466
|
+
].join("\n");
|
|
4467
|
+
}
|
|
4468
|
+
});
|
|
4469
|
+
|
|
4214
4470
|
// src/mcp/style-guidance.ts
|
|
4215
4471
|
var STYLE_SELECTION_GUIDANCE, TRANSFORM_SELECTION_GUIDANCE, MOTION_SELECTION_GUIDANCE;
|
|
4216
4472
|
var init_style_guidance = __esm({
|
|
@@ -4596,13 +4852,14 @@ function registerAuthoringGuideResource(server) {
|
|
|
4596
4852
|
annotations: { audience: ["assistant"], priority: 1 }
|
|
4597
4853
|
},
|
|
4598
4854
|
async () => {
|
|
4599
|
-
const [templates, schemaModule, transformModule] = await Promise.all([
|
|
4855
|
+
const [templates, schemaModule, transformModule, pictures] = await Promise.all([
|
|
4600
4856
|
authoringTemplateCatalog(),
|
|
4601
4857
|
import("@bendyline/squisq/schemas"),
|
|
4602
|
-
import("@bendyline/squisq/transform")
|
|
4858
|
+
import("@bendyline/squisq/transform"),
|
|
4859
|
+
authoringGuidePictures()
|
|
4603
4860
|
]);
|
|
4604
4861
|
const guide = {
|
|
4605
|
-
version:
|
|
4862
|
+
version: 11,
|
|
4606
4863
|
workflow: [
|
|
4607
4864
|
"plain text and ordinary Markdown can be passed directly to convert_document without a preflight or template annotations",
|
|
4608
4865
|
"for deliberate PPTX slide boundaries, use one level-one Markdown heading per slide; headings alone create the boundaries, so do not add --- between them unless a visible horizontal rule is intended",
|
|
@@ -4610,6 +4867,7 @@ function registerAuthoringGuideResource(server) {
|
|
|
4610
4867
|
STYLE_SELECTION_GUIDANCE,
|
|
4611
4868
|
TRANSFORM_SELECTION_GUIDANCE,
|
|
4612
4869
|
MOTION_SELECTION_GUIDANCE,
|
|
4870
|
+
"for pictures, choose a format from pictures.choose, follow pictures.svgRules for ```svg fences, and check pictures.exports for the target; never write raw <svg> HTML, which is silently dropped",
|
|
4613
4871
|
"use a bundle source when assets must travel with the document, or create_document_bundle when one draft will be reused by two or more inspect, preview, or convert calls",
|
|
4614
4872
|
"use inspect_document or preview_document only when the user asks for document analysis or visual evidence",
|
|
4615
4873
|
"convert_document creates immutable artifacts; save_artifact only when a durable file is required"
|
|
@@ -4617,6 +4875,7 @@ function registerAuthoringGuideResource(server) {
|
|
|
4617
4875
|
markdownAnnotation: '# Heading {[templateId key="value"]}',
|
|
4618
4876
|
standaloneAnnotation: '{[templateId key="value"]}',
|
|
4619
4877
|
standaloneWarning: "A standalone annotation creates an additional heading-less block. Bind the annotation to a heading unless that extra block is deliberate.",
|
|
4878
|
+
pictures,
|
|
4620
4879
|
fidelity: {
|
|
4621
4880
|
semantic: "Prioritize meaning and portability.",
|
|
4622
4881
|
"editable-native": "Produce editable native structures with target-specific diagnostics.",
|
|
@@ -4682,6 +4941,7 @@ function registerTemplateTools(server, context) {
|
|
|
4682
4941
|
import("@bendyline/squisq/transform")
|
|
4683
4942
|
]);
|
|
4684
4943
|
const annotationHandling = normalizedTarget ? await targetTemplateAnnotationHandling(normalizedTarget) : null;
|
|
4944
|
+
const pictureExport = pictureExportGuidance(normalizedTarget);
|
|
4685
4945
|
const candidateTemplates = annotationHandling === "ignored" ? fullTemplates.filter((template) => template.safeForContentFirst) : fullTemplates;
|
|
4686
4946
|
let recommendations = [];
|
|
4687
4947
|
let totalBlocks = null;
|
|
@@ -4734,6 +4994,8 @@ function registerTemplateTools(server, context) {
|
|
|
4734
4994
|
...normalizedTarget === "pptx" || normalizedTarget === "html" || normalizedTarget === "htmlzip" || normalizedTarget === "mp4" || normalizedTarget === "gif" ? [MOTION_SELECTION_GUIDANCE] : [],
|
|
4735
4995
|
"convert_document chooses compatible templates automatically. Annotations on headings are optional layout hints that take precedence; use the returned exact starter examples when useful.",
|
|
4736
4996
|
annotationHandling === "ignored" ? "This target flattens template annotations to semantic content, so annotations are unnecessary for the exported file." : "Explicit valid annotations override automatic layout choices; invalid or unnecessary annotations should be omitted rather than repaired through a separate workflow.",
|
|
4997
|
+
PICTURE_SELECTION_GUIDANCE,
|
|
4998
|
+
...pictureExport ? [pictureExport] : [],
|
|
4737
4999
|
"Pass Markdown directly to convert_document. Use a bundle source for assets, or create_document_bundle only when one draft will be reused by two or more inspect, preview, or convert calls.",
|
|
4738
5000
|
"Use inspect_document or preview_document only when the user asks for document analysis or visual evidence. Save only final durable artifacts with save_artifact."
|
|
4739
5001
|
],
|
|
@@ -5384,6 +5646,7 @@ var init_agentic_tools = __esm({
|
|
|
5384
5646
|
init_progress();
|
|
5385
5647
|
init_preview_content();
|
|
5386
5648
|
init_output_bounds();
|
|
5649
|
+
init_picture_guidance();
|
|
5387
5650
|
init_style_guidance();
|
|
5388
5651
|
READ_ONLY = {
|
|
5389
5652
|
readOnlyHint: true,
|
|
@@ -5834,7 +6097,7 @@ function presentationPrompt(topic, style, theme, template) {
|
|
|
5834
6097
|
|
|
5835
6098
|
1. For durable output, call list_roots before drafting. If no returned root is write-enabled, stop and explain that the MCP server must restart with --allow-write; do not use a shell or CLI converter.
|
|
5836
6099
|
2. ${selectionHint} ${MOTION_SELECTION_GUIDANCE} Call get_authoring_context only when the linked theme and Summarize descriptions would materially improve the choice.
|
|
5837
|
-
3. Author plain Markdown. One level-one heading (\`#\`) creates each deliberate slide boundary; headings alone create the boundaries, so do not add \`---\` between them unless a visible horizontal rule is intended. Unstructured text is also accepted. Squisq annotations are optional layout hints.${templateHint}
|
|
6100
|
+
3. Author plain Markdown. One level-one heading (\`#\`) creates each deliberate slide boundary; headings alone create the boundaries, so do not add \`---\` between them unless a visible horizontal rule is intended. Unstructured text is also accepted. Squisq annotations are optional layout hints.${templateHint} ${PRESENTATION_PICTURE_HINT}
|
|
5838
6101
|
4. Pass the Markdown directly to convert_document with a pptx target${themeHint}${styleHint}. Use a bundle source only when assets must travel with the document. No validation, inspection, or preview is required.
|
|
5839
6102
|
5. Use inspect_document or preview_document only when the user explicitly asks for document analysis or visual evidence.
|
|
5840
6103
|
6. Call save_artifact only when a durable file is required.`;
|
|
@@ -5870,7 +6133,7 @@ function documentPrompt(topic, format, theme, template) {
|
|
|
5870
6133
|
return `Create a document about: ${topic}
|
|
5871
6134
|
|
|
5872
6135
|
1. For durable output, call list_roots before drafting and stop if no root is write-enabled; do not use a shell or CLI converter.
|
|
5873
|
-
2. Author plain Markdown. Squisq annotations are optional layout hints.${templateHint} Call get_authoring_context only when exact annotation examples or theme details would help.
|
|
6136
|
+
2. Author plain Markdown. Squisq annotations are optional layout hints.${templateHint} ${documentPictureHint(target)} Call get_authoring_context only when exact annotation examples or theme details would help.
|
|
5874
6137
|
3. Pass the Markdown directly to convert_document with a ${target} target${themeHint}. Use a bundle source only when assets must travel with the document. No validation, inspection, or preview is required.
|
|
5875
6138
|
4. Use inspect_document or preview_document only when the user explicitly asks for document analysis or visual evidence.
|
|
5876
6139
|
5. Call save_artifact only when a durable file is required.`;
|
|
@@ -5884,6 +6147,7 @@ var init_prompts = __esm({
|
|
|
5884
6147
|
"src/mcp/prompts.ts"() {
|
|
5885
6148
|
"use strict";
|
|
5886
6149
|
init_conversion_service();
|
|
6150
|
+
init_picture_guidance();
|
|
5887
6151
|
init_style_guidance();
|
|
5888
6152
|
MAX_ID_CHARACTERS = 256;
|
|
5889
6153
|
MAX_TOPIC_CHARACTERS = 1e4;
|
|
@@ -5924,6 +6188,7 @@ function createMcpServer(options = {}) {
|
|
|
5924
6188
|
STYLE_SELECTION_GUIDANCE,
|
|
5925
6189
|
TRANSFORM_SELECTION_GUIDANCE,
|
|
5926
6190
|
MOTION_SELECTION_GUIDANCE,
|
|
6191
|
+
PICTURE_INSTRUCTION_GUIDANCE,
|
|
5927
6192
|
"Use a bundle source when assets must travel with the document. Use create_document_bundle only when one complete draft will be reused by two or more inspect, preview, or convert calls.",
|
|
5928
6193
|
"Use inspect_document or preview_document only when the user asks for document analysis or visual evidence.",
|
|
5929
6194
|
"convert_document returns immutable artifacts and diagnostics. Save only final durable output with save_artifact; never invent root ids or switch conversion to a shell or CLI."
|
|
@@ -5994,6 +6259,7 @@ var init_server = __esm({
|
|
|
5994
6259
|
init_artifact_store();
|
|
5995
6260
|
init_authority();
|
|
5996
6261
|
init_discovery_tools();
|
|
6262
|
+
init_picture_guidance();
|
|
5997
6263
|
init_prompts();
|
|
5998
6264
|
init_style_guidance();
|
|
5999
6265
|
DEFAULT_MAX_CONCURRENT_OPERATIONS = 2;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bendyline/docblocks-cli",
|
|
3
|
-
"version": "2.7.
|
|
3
|
+
"version": "2.7.3",
|
|
4
4
|
"description": "Build, preview, convert, render, inspect, and automate documents",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Bendyline",
|
|
@@ -47,12 +47,12 @@
|
|
|
47
47
|
"typecheck": "tsc --noEmit"
|
|
48
48
|
},
|
|
49
49
|
"dependencies": {
|
|
50
|
-
"@bendyline/docblocks": "2.7.
|
|
51
|
-
"@bendyline/squisq": "2.12.
|
|
52
|
-
"@bendyline/squisq-cli": "2.9.
|
|
53
|
-
"@bendyline/squisq-formats": "2.7.
|
|
54
|
-
"@bendyline/squisq-react": "2.12.
|
|
55
|
-
"@bendyline/squisq-video": "2.4.
|
|
50
|
+
"@bendyline/docblocks": "2.7.3",
|
|
51
|
+
"@bendyline/squisq": "2.12.3",
|
|
52
|
+
"@bendyline/squisq-cli": "2.9.5",
|
|
53
|
+
"@bendyline/squisq-formats": "2.7.3",
|
|
54
|
+
"@bendyline/squisq-react": "2.12.4",
|
|
55
|
+
"@bendyline/squisq-video": "2.4.3",
|
|
56
56
|
"@modelcontextprotocol/sdk": "1.32.1",
|
|
57
57
|
"commander": "13.1.0",
|
|
58
58
|
"jszip": "3.10.1",
|