open-agreements 0.7.6 → 0.7.7

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 (250) hide show
  1. package/README.md +1 -1
  2. package/content/templates/openagreements-due-diligence-request-list/template.docx +0 -0
  3. package/content/templates/openagreements-due-diligence-request-list/template.md +1 -1
  4. package/dist/core/fill-pipeline.d.ts.map +1 -1
  5. package/dist/core/fill-pipeline.js +0 -8
  6. package/dist/core/fill-pipeline.js.map +1 -1
  7. package/dist/core/unified-pipeline.d.ts.map +1 -1
  8. package/dist/core/unified-pipeline.js +4 -6
  9. package/dist/core/unified-pipeline.js.map +1 -1
  10. package/gemini-extension.json +1 -1
  11. package/node_modules/@xmldom/xmldom/CHANGELOG.md +939 -0
  12. package/node_modules/@xmldom/xmldom/LICENSE +8 -0
  13. package/node_modules/@xmldom/xmldom/SECURITY.md +50 -0
  14. package/node_modules/@xmldom/xmldom/index.d.ts +1664 -0
  15. package/node_modules/@xmldom/xmldom/lib/.eslintrc.yml +3 -0
  16. package/node_modules/@xmldom/xmldom/lib/conventions.js +429 -0
  17. package/node_modules/@xmldom/xmldom/lib/dom-parser.js +586 -0
  18. package/node_modules/@xmldom/xmldom/lib/dom.js +3192 -0
  19. package/node_modules/@xmldom/xmldom/lib/entities.js +2171 -0
  20. package/node_modules/@xmldom/xmldom/lib/errors.js +202 -0
  21. package/node_modules/@xmldom/xmldom/lib/grammar.js +533 -0
  22. package/node_modules/@xmldom/xmldom/lib/index.js +41 -0
  23. package/node_modules/@xmldom/xmldom/lib/sax.js +929 -0
  24. package/node_modules/@xmldom/xmldom/package.json +74 -0
  25. package/node_modules/@xmldom/xmldom/readme.md +364 -0
  26. package/node_modules/core-util-is/LICENSE +19 -0
  27. package/node_modules/core-util-is/README.md +3 -0
  28. package/node_modules/core-util-is/lib/util.js +107 -0
  29. package/node_modules/core-util-is/package.json +38 -0
  30. package/node_modules/immediate/LICENSE.txt +20 -0
  31. package/node_modules/immediate/README.md +93 -0
  32. package/node_modules/immediate/dist/immediate.js +75 -0
  33. package/node_modules/immediate/dist/immediate.min.js +1 -0
  34. package/node_modules/immediate/lib/browser.js +69 -0
  35. package/node_modules/immediate/lib/index.js +73 -0
  36. package/node_modules/immediate/package.json +42 -0
  37. package/node_modules/inherits/LICENSE +16 -0
  38. package/node_modules/inherits/README.md +42 -0
  39. package/node_modules/inherits/inherits.js +9 -0
  40. package/node_modules/inherits/inherits_browser.js +27 -0
  41. package/node_modules/inherits/package.json +29 -0
  42. package/node_modules/isarray/.npmignore +1 -0
  43. package/node_modules/isarray/.travis.yml +4 -0
  44. package/node_modules/isarray/Makefile +6 -0
  45. package/node_modules/isarray/README.md +60 -0
  46. package/node_modules/isarray/component.json +19 -0
  47. package/node_modules/isarray/index.js +5 -0
  48. package/node_modules/isarray/package.json +45 -0
  49. package/node_modules/isarray/test.js +20 -0
  50. package/node_modules/jszip/.codeclimate.yml +16 -0
  51. package/node_modules/jszip/.editorconfig +8 -0
  52. package/node_modules/jszip/.eslintrc.js +43 -0
  53. package/node_modules/jszip/.github/workflows/pr.yaml +58 -0
  54. package/node_modules/jszip/.jekyll-metadata +0 -0
  55. package/node_modules/jszip/.travis.yml +17 -0
  56. package/node_modules/jszip/CHANGES.md +204 -0
  57. package/node_modules/jszip/LICENSE.markdown +651 -0
  58. package/node_modules/jszip/README.markdown +33 -0
  59. package/node_modules/jszip/deps.js +37 -0
  60. package/node_modules/jszip/dist/jszip.js +11577 -0
  61. package/node_modules/jszip/dist/jszip.min.js +13 -0
  62. package/node_modules/jszip/graph.svg +601 -0
  63. package/node_modules/jszip/index.d.ts +330 -0
  64. package/node_modules/jszip/lib/base64.js +106 -0
  65. package/node_modules/jszip/lib/compressedObject.js +74 -0
  66. package/node_modules/jszip/lib/compressions.js +14 -0
  67. package/node_modules/jszip/lib/crc32.js +77 -0
  68. package/node_modules/jszip/lib/defaults.js +11 -0
  69. package/node_modules/jszip/lib/external.js +18 -0
  70. package/node_modules/jszip/lib/flate.js +85 -0
  71. package/node_modules/jszip/lib/generate/ZipFileWorker.js +539 -0
  72. package/node_modules/jszip/lib/generate/index.js +57 -0
  73. package/node_modules/jszip/lib/index.js +55 -0
  74. package/node_modules/jszip/lib/license_header.js +11 -0
  75. package/node_modules/jszip/lib/load.js +88 -0
  76. package/node_modules/jszip/lib/nodejs/NodejsStreamInputAdapter.js +74 -0
  77. package/node_modules/jszip/lib/nodejs/NodejsStreamOutputAdapter.js +42 -0
  78. package/node_modules/jszip/lib/nodejsUtils.js +57 -0
  79. package/node_modules/jszip/lib/object.js +384 -0
  80. package/node_modules/jszip/lib/readable-stream-browser.js +10 -0
  81. package/node_modules/jszip/lib/reader/ArrayReader.js +57 -0
  82. package/node_modules/jszip/lib/reader/DataReader.js +116 -0
  83. package/node_modules/jszip/lib/reader/NodeBufferReader.js +19 -0
  84. package/node_modules/jszip/lib/reader/StringReader.js +38 -0
  85. package/node_modules/jszip/lib/reader/Uint8ArrayReader.js +22 -0
  86. package/node_modules/jszip/lib/reader/readerFor.js +28 -0
  87. package/node_modules/jszip/lib/signature.js +7 -0
  88. package/node_modules/jszip/lib/stream/ConvertWorker.js +26 -0
  89. package/node_modules/jszip/lib/stream/Crc32Probe.js +24 -0
  90. package/node_modules/jszip/lib/stream/DataLengthProbe.js +29 -0
  91. package/node_modules/jszip/lib/stream/DataWorker.js +116 -0
  92. package/node_modules/jszip/lib/stream/GenericWorker.js +263 -0
  93. package/node_modules/jszip/lib/stream/StreamHelper.js +214 -0
  94. package/node_modules/jszip/lib/support.js +38 -0
  95. package/node_modules/jszip/lib/utf8.js +275 -0
  96. package/node_modules/jszip/lib/utils.js +501 -0
  97. package/node_modules/jszip/lib/zipEntries.js +261 -0
  98. package/node_modules/jszip/lib/zipEntry.js +293 -0
  99. package/node_modules/jszip/lib/zipObject.js +133 -0
  100. package/node_modules/jszip/package.json +67 -0
  101. package/node_modules/jszip/sponsors.md +21 -0
  102. package/node_modules/jszip/tsconfig.json +101 -0
  103. package/node_modules/jszip/vendor/FileSaver.js +247 -0
  104. package/node_modules/lie/README.md +62 -0
  105. package/node_modules/lie/dist/lie.js +350 -0
  106. package/node_modules/lie/dist/lie.min.js +1 -0
  107. package/node_modules/lie/dist/lie.polyfill.js +358 -0
  108. package/node_modules/lie/dist/lie.polyfill.min.js +1 -0
  109. package/node_modules/lie/lib/browser.js +273 -0
  110. package/node_modules/lie/lib/index.js +298 -0
  111. package/node_modules/lie/license.md +7 -0
  112. package/node_modules/lie/lie.d.ts +244 -0
  113. package/node_modules/lie/package.json +69 -0
  114. package/node_modules/lie/polyfill.js +4 -0
  115. package/node_modules/pako/LICENSE +21 -0
  116. package/node_modules/pako/README.md +191 -0
  117. package/node_modules/pako/dist/pako.js +6818 -0
  118. package/node_modules/pako/dist/pako.min.js +1 -0
  119. package/node_modules/pako/dist/pako_deflate.js +3997 -0
  120. package/node_modules/pako/dist/pako_deflate.min.js +1 -0
  121. package/node_modules/pako/dist/pako_inflate.js +3300 -0
  122. package/node_modules/pako/dist/pako_inflate.min.js +1 -0
  123. package/node_modules/pako/index.js +14 -0
  124. package/node_modules/pako/lib/deflate.js +400 -0
  125. package/node_modules/pako/lib/inflate.js +423 -0
  126. package/node_modules/pako/lib/utils/common.js +105 -0
  127. package/node_modules/pako/lib/utils/strings.js +187 -0
  128. package/node_modules/pako/lib/zlib/README +59 -0
  129. package/node_modules/pako/lib/zlib/adler32.js +51 -0
  130. package/node_modules/pako/lib/zlib/constants.js +68 -0
  131. package/node_modules/pako/lib/zlib/crc32.js +59 -0
  132. package/node_modules/pako/lib/zlib/deflate.js +1874 -0
  133. package/node_modules/pako/lib/zlib/gzheader.js +58 -0
  134. package/node_modules/pako/lib/zlib/inffast.js +345 -0
  135. package/node_modules/pako/lib/zlib/inflate.js +1556 -0
  136. package/node_modules/pako/lib/zlib/inftrees.js +343 -0
  137. package/node_modules/pako/lib/zlib/messages.js +32 -0
  138. package/node_modules/pako/lib/zlib/trees.js +1222 -0
  139. package/node_modules/pako/lib/zlib/zstream.js +47 -0
  140. package/node_modules/pako/package.json +44 -0
  141. package/node_modules/process-nextick-args/index.js +45 -0
  142. package/node_modules/process-nextick-args/license.md +19 -0
  143. package/node_modules/process-nextick-args/package.json +25 -0
  144. package/node_modules/process-nextick-args/readme.md +18 -0
  145. package/node_modules/readable-stream/.travis.yml +34 -0
  146. package/node_modules/readable-stream/CONTRIBUTING.md +38 -0
  147. package/node_modules/readable-stream/GOVERNANCE.md +136 -0
  148. package/node_modules/readable-stream/LICENSE +47 -0
  149. package/node_modules/readable-stream/README.md +58 -0
  150. package/node_modules/readable-stream/doc/wg-meetings/2015-01-30.md +60 -0
  151. package/node_modules/readable-stream/duplex-browser.js +1 -0
  152. package/node_modules/readable-stream/duplex.js +1 -0
  153. package/node_modules/readable-stream/lib/_stream_duplex.js +131 -0
  154. package/node_modules/readable-stream/lib/_stream_passthrough.js +47 -0
  155. package/node_modules/readable-stream/lib/_stream_readable.js +1019 -0
  156. package/node_modules/readable-stream/lib/_stream_transform.js +214 -0
  157. package/node_modules/readable-stream/lib/_stream_writable.js +685 -0
  158. package/node_modules/readable-stream/lib/internal/streams/BufferList.js +78 -0
  159. package/node_modules/readable-stream/lib/internal/streams/destroy.js +84 -0
  160. package/node_modules/readable-stream/lib/internal/streams/stream-browser.js +1 -0
  161. package/node_modules/readable-stream/lib/internal/streams/stream.js +1 -0
  162. package/node_modules/readable-stream/package.json +52 -0
  163. package/node_modules/readable-stream/passthrough.js +1 -0
  164. package/node_modules/readable-stream/readable-browser.js +7 -0
  165. package/node_modules/readable-stream/readable.js +19 -0
  166. package/node_modules/readable-stream/transform.js +1 -0
  167. package/node_modules/readable-stream/writable-browser.js +1 -0
  168. package/node_modules/readable-stream/writable.js +8 -0
  169. package/node_modules/safe-buffer/LICENSE +21 -0
  170. package/node_modules/safe-buffer/README.md +584 -0
  171. package/node_modules/safe-buffer/index.d.ts +187 -0
  172. package/node_modules/safe-buffer/index.js +62 -0
  173. package/node_modules/safe-buffer/package.json +37 -0
  174. package/node_modules/setimmediate/LICENSE.txt +20 -0
  175. package/node_modules/setimmediate/package.json +30 -0
  176. package/node_modules/setimmediate/setImmediate.js +186 -0
  177. package/node_modules/string_decoder/.travis.yml +50 -0
  178. package/node_modules/string_decoder/LICENSE +48 -0
  179. package/node_modules/string_decoder/README.md +47 -0
  180. package/node_modules/string_decoder/lib/string_decoder.js +296 -0
  181. package/node_modules/string_decoder/package.json +31 -0
  182. package/node_modules/util-deprecate/History.md +16 -0
  183. package/node_modules/util-deprecate/LICENSE +24 -0
  184. package/node_modules/util-deprecate/README.md +53 -0
  185. package/node_modules/util-deprecate/browser.js +67 -0
  186. package/node_modules/util-deprecate/node.js +6 -0
  187. package/node_modules/util-deprecate/package.json +27 -0
  188. package/package.json +1 -1
  189. package/skills/client-email/SKILL.md +8 -6
  190. package/skills/employment-contract/SKILL.md +23 -6
  191. package/skills/non-compete-contract-explainer/content/alabama.md +251 -0
  192. package/skills/non-compete-contract-explainer/content/alaska.md +160 -0
  193. package/skills/non-compete-contract-explainer/content/american-samoa.md +187 -0
  194. package/skills/non-compete-contract-explainer/content/arizona.md +293 -0
  195. package/skills/non-compete-contract-explainer/content/arkansas.md +235 -0
  196. package/skills/non-compete-contract-explainer/content/california.md +270 -0
  197. package/skills/non-compete-contract-explainer/content/cnmi.md +168 -0
  198. package/skills/non-compete-contract-explainer/content/colorado.md +277 -0
  199. package/skills/non-compete-contract-explainer/content/connecticut.md +220 -0
  200. package/skills/non-compete-contract-explainer/content/delaware.md +222 -0
  201. package/skills/non-compete-contract-explainer/content/district-of-columbia.md +263 -0
  202. package/skills/non-compete-contract-explainer/content/florida.md +267 -0
  203. package/skills/non-compete-contract-explainer/content/georgia.md +323 -0
  204. package/skills/non-compete-contract-explainer/content/guam.md +180 -0
  205. package/skills/non-compete-contract-explainer/content/hawaii.md +236 -0
  206. package/skills/non-compete-contract-explainer/content/idaho.md +258 -0
  207. package/skills/non-compete-contract-explainer/content/illinois.md +266 -0
  208. package/skills/non-compete-contract-explainer/content/india.md +269 -0
  209. package/skills/non-compete-contract-explainer/content/indiana.md +253 -0
  210. package/skills/non-compete-contract-explainer/content/iowa.md +232 -0
  211. package/skills/non-compete-contract-explainer/content/kansas.md +227 -0
  212. package/skills/non-compete-contract-explainer/content/kentucky.md +201 -0
  213. package/skills/non-compete-contract-explainer/content/louisiana.md +272 -0
  214. package/skills/non-compete-contract-explainer/content/maine.md +178 -0
  215. package/skills/non-compete-contract-explainer/content/maryland.md +244 -0
  216. package/skills/non-compete-contract-explainer/content/massachusetts.md +272 -0
  217. package/skills/non-compete-contract-explainer/content/michigan.md +222 -0
  218. package/skills/non-compete-contract-explainer/content/minnesota.md +171 -0
  219. package/skills/non-compete-contract-explainer/content/mississippi.md +237 -0
  220. package/skills/non-compete-contract-explainer/content/missouri.md +219 -0
  221. package/skills/non-compete-contract-explainer/content/montana.md +202 -0
  222. package/skills/non-compete-contract-explainer/content/nebraska.md +206 -0
  223. package/skills/non-compete-contract-explainer/content/nevada.md +278 -0
  224. package/skills/non-compete-contract-explainer/content/new-hampshire.md +233 -0
  225. package/skills/non-compete-contract-explainer/content/new-jersey.md +277 -0
  226. package/skills/non-compete-contract-explainer/content/new-mexico.md +244 -0
  227. package/skills/non-compete-contract-explainer/content/new-york.md +226 -0
  228. package/skills/non-compete-contract-explainer/content/north-carolina.md +346 -0
  229. package/skills/non-compete-contract-explainer/content/north-dakota.md +187 -0
  230. package/skills/non-compete-contract-explainer/content/ohio.md +207 -0
  231. package/skills/non-compete-contract-explainer/content/oklahoma.md +196 -0
  232. package/skills/non-compete-contract-explainer/content/oregon.md +359 -0
  233. package/skills/non-compete-contract-explainer/content/pennsylvania.md +254 -0
  234. package/skills/non-compete-contract-explainer/content/philippines.md +211 -0
  235. package/skills/non-compete-contract-explainer/content/puerto-rico.md +163 -0
  236. package/skills/non-compete-contract-explainer/content/rhode-island.md +171 -0
  237. package/skills/non-compete-contract-explainer/content/singapore.md +229 -0
  238. package/skills/non-compete-contract-explainer/content/south-carolina.md +226 -0
  239. package/skills/non-compete-contract-explainer/content/south-dakota.md +222 -0
  240. package/skills/non-compete-contract-explainer/content/tennessee.md +251 -0
  241. package/skills/non-compete-contract-explainer/content/texas.md +297 -0
  242. package/skills/non-compete-contract-explainer/content/us-virgin-islands.md +193 -0
  243. package/skills/non-compete-contract-explainer/content/utah.md +250 -0
  244. package/skills/non-compete-contract-explainer/content/vermont.md +193 -0
  245. package/skills/non-compete-contract-explainer/content/virginia.md +213 -0
  246. package/skills/non-compete-contract-explainer/content/washington.md +296 -0
  247. package/skills/non-compete-contract-explainer/content/west-virginia.md +187 -0
  248. package/skills/non-compete-contract-explainer/content/wisconsin.md +293 -0
  249. package/skills/non-compete-contract-explainer/content/wyoming.md +55 -45
  250. package/skills/non-compete-contract-explainer/manifest.json +523 -1
@@ -0,0 +1,296 @@
1
+ // Copyright Joyent, Inc. and other Node contributors.
2
+ //
3
+ // Permission is hereby granted, free of charge, to any person obtaining a
4
+ // copy of this software and associated documentation files (the
5
+ // "Software"), to deal in the Software without restriction, including
6
+ // without limitation the rights to use, copy, modify, merge, publish,
7
+ // distribute, sublicense, and/or sell copies of the Software, and to permit
8
+ // persons to whom the Software is furnished to do so, subject to the
9
+ // following conditions:
10
+ //
11
+ // The above copyright notice and this permission notice shall be included
12
+ // in all copies or substantial portions of the Software.
13
+ //
14
+ // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
15
+ // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
17
+ // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
18
+ // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
19
+ // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
20
+ // USE OR OTHER DEALINGS IN THE SOFTWARE.
21
+
22
+ 'use strict';
23
+
24
+ /*<replacement>*/
25
+
26
+ var Buffer = require('safe-buffer').Buffer;
27
+ /*</replacement>*/
28
+
29
+ var isEncoding = Buffer.isEncoding || function (encoding) {
30
+ encoding = '' + encoding;
31
+ switch (encoding && encoding.toLowerCase()) {
32
+ case 'hex':case 'utf8':case 'utf-8':case 'ascii':case 'binary':case 'base64':case 'ucs2':case 'ucs-2':case 'utf16le':case 'utf-16le':case 'raw':
33
+ return true;
34
+ default:
35
+ return false;
36
+ }
37
+ };
38
+
39
+ function _normalizeEncoding(enc) {
40
+ if (!enc) return 'utf8';
41
+ var retried;
42
+ while (true) {
43
+ switch (enc) {
44
+ case 'utf8':
45
+ case 'utf-8':
46
+ return 'utf8';
47
+ case 'ucs2':
48
+ case 'ucs-2':
49
+ case 'utf16le':
50
+ case 'utf-16le':
51
+ return 'utf16le';
52
+ case 'latin1':
53
+ case 'binary':
54
+ return 'latin1';
55
+ case 'base64':
56
+ case 'ascii':
57
+ case 'hex':
58
+ return enc;
59
+ default:
60
+ if (retried) return; // undefined
61
+ enc = ('' + enc).toLowerCase();
62
+ retried = true;
63
+ }
64
+ }
65
+ };
66
+
67
+ // Do not cache `Buffer.isEncoding` when checking encoding names as some
68
+ // modules monkey-patch it to support additional encodings
69
+ function normalizeEncoding(enc) {
70
+ var nenc = _normalizeEncoding(enc);
71
+ if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc);
72
+ return nenc || enc;
73
+ }
74
+
75
+ // StringDecoder provides an interface for efficiently splitting a series of
76
+ // buffers into a series of JS strings without breaking apart multi-byte
77
+ // characters.
78
+ exports.StringDecoder = StringDecoder;
79
+ function StringDecoder(encoding) {
80
+ this.encoding = normalizeEncoding(encoding);
81
+ var nb;
82
+ switch (this.encoding) {
83
+ case 'utf16le':
84
+ this.text = utf16Text;
85
+ this.end = utf16End;
86
+ nb = 4;
87
+ break;
88
+ case 'utf8':
89
+ this.fillLast = utf8FillLast;
90
+ nb = 4;
91
+ break;
92
+ case 'base64':
93
+ this.text = base64Text;
94
+ this.end = base64End;
95
+ nb = 3;
96
+ break;
97
+ default:
98
+ this.write = simpleWrite;
99
+ this.end = simpleEnd;
100
+ return;
101
+ }
102
+ this.lastNeed = 0;
103
+ this.lastTotal = 0;
104
+ this.lastChar = Buffer.allocUnsafe(nb);
105
+ }
106
+
107
+ StringDecoder.prototype.write = function (buf) {
108
+ if (buf.length === 0) return '';
109
+ var r;
110
+ var i;
111
+ if (this.lastNeed) {
112
+ r = this.fillLast(buf);
113
+ if (r === undefined) return '';
114
+ i = this.lastNeed;
115
+ this.lastNeed = 0;
116
+ } else {
117
+ i = 0;
118
+ }
119
+ if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);
120
+ return r || '';
121
+ };
122
+
123
+ StringDecoder.prototype.end = utf8End;
124
+
125
+ // Returns only complete characters in a Buffer
126
+ StringDecoder.prototype.text = utf8Text;
127
+
128
+ // Attempts to complete a partial non-UTF-8 character using bytes from a Buffer
129
+ StringDecoder.prototype.fillLast = function (buf) {
130
+ if (this.lastNeed <= buf.length) {
131
+ buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);
132
+ return this.lastChar.toString(this.encoding, 0, this.lastTotal);
133
+ }
134
+ buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length);
135
+ this.lastNeed -= buf.length;
136
+ };
137
+
138
+ // Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a
139
+ // continuation byte. If an invalid byte is detected, -2 is returned.
140
+ function utf8CheckByte(byte) {
141
+ if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4;
142
+ return byte >> 6 === 0x02 ? -1 : -2;
143
+ }
144
+
145
+ // Checks at most 3 bytes at the end of a Buffer in order to detect an
146
+ // incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4)
147
+ // needed to complete the UTF-8 character (if applicable) are returned.
148
+ function utf8CheckIncomplete(self, buf, i) {
149
+ var j = buf.length - 1;
150
+ if (j < i) return 0;
151
+ var nb = utf8CheckByte(buf[j]);
152
+ if (nb >= 0) {
153
+ if (nb > 0) self.lastNeed = nb - 1;
154
+ return nb;
155
+ }
156
+ if (--j < i || nb === -2) return 0;
157
+ nb = utf8CheckByte(buf[j]);
158
+ if (nb >= 0) {
159
+ if (nb > 0) self.lastNeed = nb - 2;
160
+ return nb;
161
+ }
162
+ if (--j < i || nb === -2) return 0;
163
+ nb = utf8CheckByte(buf[j]);
164
+ if (nb >= 0) {
165
+ if (nb > 0) {
166
+ if (nb === 2) nb = 0;else self.lastNeed = nb - 3;
167
+ }
168
+ return nb;
169
+ }
170
+ return 0;
171
+ }
172
+
173
+ // Validates as many continuation bytes for a multi-byte UTF-8 character as
174
+ // needed or are available. If we see a non-continuation byte where we expect
175
+ // one, we "replace" the validated continuation bytes we've seen so far with
176
+ // a single UTF-8 replacement character ('\ufffd'), to match v8's UTF-8 decoding
177
+ // behavior. The continuation byte check is included three times in the case
178
+ // where all of the continuation bytes for a character exist in the same buffer.
179
+ // It is also done this way as a slight performance increase instead of using a
180
+ // loop.
181
+ function utf8CheckExtraBytes(self, buf, p) {
182
+ if ((buf[0] & 0xC0) !== 0x80) {
183
+ self.lastNeed = 0;
184
+ return '\ufffd';
185
+ }
186
+ if (self.lastNeed > 1 && buf.length > 1) {
187
+ if ((buf[1] & 0xC0) !== 0x80) {
188
+ self.lastNeed = 1;
189
+ return '\ufffd';
190
+ }
191
+ if (self.lastNeed > 2 && buf.length > 2) {
192
+ if ((buf[2] & 0xC0) !== 0x80) {
193
+ self.lastNeed = 2;
194
+ return '\ufffd';
195
+ }
196
+ }
197
+ }
198
+ }
199
+
200
+ // Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer.
201
+ function utf8FillLast(buf) {
202
+ var p = this.lastTotal - this.lastNeed;
203
+ var r = utf8CheckExtraBytes(this, buf, p);
204
+ if (r !== undefined) return r;
205
+ if (this.lastNeed <= buf.length) {
206
+ buf.copy(this.lastChar, p, 0, this.lastNeed);
207
+ return this.lastChar.toString(this.encoding, 0, this.lastTotal);
208
+ }
209
+ buf.copy(this.lastChar, p, 0, buf.length);
210
+ this.lastNeed -= buf.length;
211
+ }
212
+
213
+ // Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a
214
+ // partial character, the character's bytes are buffered until the required
215
+ // number of bytes are available.
216
+ function utf8Text(buf, i) {
217
+ var total = utf8CheckIncomplete(this, buf, i);
218
+ if (!this.lastNeed) return buf.toString('utf8', i);
219
+ this.lastTotal = total;
220
+ var end = buf.length - (total - this.lastNeed);
221
+ buf.copy(this.lastChar, 0, end);
222
+ return buf.toString('utf8', i, end);
223
+ }
224
+
225
+ // For UTF-8, a replacement character is added when ending on a partial
226
+ // character.
227
+ function utf8End(buf) {
228
+ var r = buf && buf.length ? this.write(buf) : '';
229
+ if (this.lastNeed) return r + '\ufffd';
230
+ return r;
231
+ }
232
+
233
+ // UTF-16LE typically needs two bytes per character, but even if we have an even
234
+ // number of bytes available, we need to check if we end on a leading/high
235
+ // surrogate. In that case, we need to wait for the next two bytes in order to
236
+ // decode the last character properly.
237
+ function utf16Text(buf, i) {
238
+ if ((buf.length - i) % 2 === 0) {
239
+ var r = buf.toString('utf16le', i);
240
+ if (r) {
241
+ var c = r.charCodeAt(r.length - 1);
242
+ if (c >= 0xD800 && c <= 0xDBFF) {
243
+ this.lastNeed = 2;
244
+ this.lastTotal = 4;
245
+ this.lastChar[0] = buf[buf.length - 2];
246
+ this.lastChar[1] = buf[buf.length - 1];
247
+ return r.slice(0, -1);
248
+ }
249
+ }
250
+ return r;
251
+ }
252
+ this.lastNeed = 1;
253
+ this.lastTotal = 2;
254
+ this.lastChar[0] = buf[buf.length - 1];
255
+ return buf.toString('utf16le', i, buf.length - 1);
256
+ }
257
+
258
+ // For UTF-16LE we do not explicitly append special replacement characters if we
259
+ // end on a partial character, we simply let v8 handle that.
260
+ function utf16End(buf) {
261
+ var r = buf && buf.length ? this.write(buf) : '';
262
+ if (this.lastNeed) {
263
+ var end = this.lastTotal - this.lastNeed;
264
+ return r + this.lastChar.toString('utf16le', 0, end);
265
+ }
266
+ return r;
267
+ }
268
+
269
+ function base64Text(buf, i) {
270
+ var n = (buf.length - i) % 3;
271
+ if (n === 0) return buf.toString('base64', i);
272
+ this.lastNeed = 3 - n;
273
+ this.lastTotal = 3;
274
+ if (n === 1) {
275
+ this.lastChar[0] = buf[buf.length - 1];
276
+ } else {
277
+ this.lastChar[0] = buf[buf.length - 2];
278
+ this.lastChar[1] = buf[buf.length - 1];
279
+ }
280
+ return buf.toString('base64', i, buf.length - n);
281
+ }
282
+
283
+ function base64End(buf) {
284
+ var r = buf && buf.length ? this.write(buf) : '';
285
+ if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed);
286
+ return r;
287
+ }
288
+
289
+ // Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)
290
+ function simpleWrite(buf) {
291
+ return buf.toString(this.encoding);
292
+ }
293
+
294
+ function simpleEnd(buf) {
295
+ return buf && buf.length ? this.write(buf) : '';
296
+ }
@@ -0,0 +1,31 @@
1
+ {
2
+ "name": "string_decoder",
3
+ "version": "1.1.1",
4
+ "description": "The string_decoder module from Node core",
5
+ "main": "lib/string_decoder.js",
6
+ "dependencies": {
7
+ "safe-buffer": "~5.1.0"
8
+ },
9
+ "devDependencies": {
10
+ "babel-polyfill": "^6.23.0",
11
+ "core-util-is": "^1.0.2",
12
+ "inherits": "^2.0.3",
13
+ "tap": "~0.4.8"
14
+ },
15
+ "scripts": {
16
+ "test": "tap test/parallel/*.js && node test/verify-dependencies",
17
+ "ci": "tap test/parallel/*.js test/ours/*.js --tap | tee test.tap && node test/verify-dependencies.js"
18
+ },
19
+ "repository": {
20
+ "type": "git",
21
+ "url": "git://github.com/nodejs/string_decoder.git"
22
+ },
23
+ "homepage": "https://github.com/nodejs/string_decoder",
24
+ "keywords": [
25
+ "string",
26
+ "decoder",
27
+ "browser",
28
+ "browserify"
29
+ ],
30
+ "license": "MIT"
31
+ }
@@ -0,0 +1,16 @@
1
+
2
+ 1.0.2 / 2015-10-07
3
+ ==================
4
+
5
+ * use try/catch when checking `localStorage` (#3, @kumavis)
6
+
7
+ 1.0.1 / 2014-11-25
8
+ ==================
9
+
10
+ * browser: use `console.warn()` for deprecation calls
11
+ * browser: more jsdocs
12
+
13
+ 1.0.0 / 2014-04-30
14
+ ==================
15
+
16
+ * initial commit
@@ -0,0 +1,24 @@
1
+ (The MIT License)
2
+
3
+ Copyright (c) 2014 Nathan Rajlich <nathan@tootallnate.net>
4
+
5
+ Permission is hereby granted, free of charge, to any person
6
+ obtaining a copy of this software and associated documentation
7
+ files (the "Software"), to deal in the Software without
8
+ restriction, including without limitation the rights to use,
9
+ copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ copies of the Software, and to permit persons to whom the
11
+ Software is furnished to do so, subject to the following
12
+ conditions:
13
+
14
+ The above copyright notice and this permission notice shall be
15
+ included in all copies or substantial portions of the Software.
16
+
17
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
18
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
19
+ OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
20
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
21
+ HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
22
+ WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
23
+ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
24
+ OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,53 @@
1
+ util-deprecate
2
+ ==============
3
+ ### The Node.js `util.deprecate()` function with browser support
4
+
5
+ In Node.js, this module simply re-exports the `util.deprecate()` function.
6
+
7
+ In the web browser (i.e. via browserify), a browser-specific implementation
8
+ of the `util.deprecate()` function is used.
9
+
10
+
11
+ ## API
12
+
13
+ A `deprecate()` function is the only thing exposed by this module.
14
+
15
+ ``` javascript
16
+ // setup:
17
+ exports.foo = deprecate(foo, 'foo() is deprecated, use bar() instead');
18
+
19
+
20
+ // users see:
21
+ foo();
22
+ // foo() is deprecated, use bar() instead
23
+ foo();
24
+ foo();
25
+ ```
26
+
27
+
28
+ ## License
29
+
30
+ (The MIT License)
31
+
32
+ Copyright (c) 2014 Nathan Rajlich <nathan@tootallnate.net>
33
+
34
+ Permission is hereby granted, free of charge, to any person
35
+ obtaining a copy of this software and associated documentation
36
+ files (the "Software"), to deal in the Software without
37
+ restriction, including without limitation the rights to use,
38
+ copy, modify, merge, publish, distribute, sublicense, and/or sell
39
+ copies of the Software, and to permit persons to whom the
40
+ Software is furnished to do so, subject to the following
41
+ conditions:
42
+
43
+ The above copyright notice and this permission notice shall be
44
+ included in all copies or substantial portions of the Software.
45
+
46
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
47
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
48
+ OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
49
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
50
+ HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
51
+ WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
52
+ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
53
+ OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,67 @@
1
+
2
+ /**
3
+ * Module exports.
4
+ */
5
+
6
+ module.exports = deprecate;
7
+
8
+ /**
9
+ * Mark that a method should not be used.
10
+ * Returns a modified function which warns once by default.
11
+ *
12
+ * If `localStorage.noDeprecation = true` is set, then it is a no-op.
13
+ *
14
+ * If `localStorage.throwDeprecation = true` is set, then deprecated functions
15
+ * will throw an Error when invoked.
16
+ *
17
+ * If `localStorage.traceDeprecation = true` is set, then deprecated functions
18
+ * will invoke `console.trace()` instead of `console.error()`.
19
+ *
20
+ * @param {Function} fn - the function to deprecate
21
+ * @param {String} msg - the string to print to the console when `fn` is invoked
22
+ * @returns {Function} a new "deprecated" version of `fn`
23
+ * @api public
24
+ */
25
+
26
+ function deprecate (fn, msg) {
27
+ if (config('noDeprecation')) {
28
+ return fn;
29
+ }
30
+
31
+ var warned = false;
32
+ function deprecated() {
33
+ if (!warned) {
34
+ if (config('throwDeprecation')) {
35
+ throw new Error(msg);
36
+ } else if (config('traceDeprecation')) {
37
+ console.trace(msg);
38
+ } else {
39
+ console.warn(msg);
40
+ }
41
+ warned = true;
42
+ }
43
+ return fn.apply(this, arguments);
44
+ }
45
+
46
+ return deprecated;
47
+ }
48
+
49
+ /**
50
+ * Checks `localStorage` for boolean values for the given `name`.
51
+ *
52
+ * @param {String} name
53
+ * @returns {Boolean}
54
+ * @api private
55
+ */
56
+
57
+ function config (name) {
58
+ // accessing global.localStorage can trigger a DOMException in sandboxed iframes
59
+ try {
60
+ if (!global.localStorage) return false;
61
+ } catch (_) {
62
+ return false;
63
+ }
64
+ var val = global.localStorage[name];
65
+ if (null == val) return false;
66
+ return String(val).toLowerCase() === 'true';
67
+ }
@@ -0,0 +1,6 @@
1
+
2
+ /**
3
+ * For Node.js, simply re-export the core `util.deprecate` function.
4
+ */
5
+
6
+ module.exports = require('util').deprecate;
@@ -0,0 +1,27 @@
1
+ {
2
+ "name": "util-deprecate",
3
+ "version": "1.0.2",
4
+ "description": "The Node.js `util.deprecate()` function with browser support",
5
+ "main": "node.js",
6
+ "browser": "browser.js",
7
+ "scripts": {
8
+ "test": "echo \"Error: no test specified\" && exit 1"
9
+ },
10
+ "repository": {
11
+ "type": "git",
12
+ "url": "git://github.com/TooTallNate/util-deprecate.git"
13
+ },
14
+ "keywords": [
15
+ "util",
16
+ "deprecate",
17
+ "browserify",
18
+ "browser",
19
+ "node"
20
+ ],
21
+ "author": "Nathan Rajlich <nathan@tootallnate.net> (http://n8.io/)",
22
+ "license": "MIT",
23
+ "bugs": {
24
+ "url": "https://github.com/TooTallNate/util-deprecate/issues"
25
+ },
26
+ "homepage": "https://github.com/TooTallNate/util-deprecate"
27
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "open-agreements",
3
- "version": "0.7.6",
3
+ "version": "0.7.7",
4
4
  "workspaces": [
5
5
  "packages/allure-test-factory",
6
6
  "packages/contract-templates-mcp",
@@ -75,19 +75,21 @@ __________________
75
75
 
76
76
  6. **Professional but direct.** Not stiff. Slightly conversational — "here's," "your call," "happy to" are fine. Avoid legalese in the email body; save technical precision for the document itself.
77
77
 
78
- 7. **No title block by default.** Sign off with just your name. Add a title block manually for first-contact situations where the recipient doesn't know you yet.
78
+ 7. **Avoid contrastive juxtaposition.** Do not use the "X isn’t Y — it’s Z" pattern (e.g., "This isn’t a rejection it’s a counter"). It is a hallmark of AI-generated writing and reads as performative rather than natural. State the positive point directly instead.
79
+
80
+ 8. **No title block by default.** Sign off with just your name. Add a title block manually for first-contact situations where the recipient doesn't know you yet.
79
81
 
80
82
  ## Client relationship principles
81
83
 
82
- 8. **Surface action items in the cover line.** If there's an open decision or action item, bold it and name it specifically in the opening sentence. The reader shouldn't have to hunt for what they need to do.
84
+ 9. **Surface action items in the cover line.** If there's an open decision or action item, bold it and name it specifically in the opening sentence. The reader shouldn't have to hunt for what they need to do.
83
85
 
84
- 9. **Defer on business decisions.** When presenting options that are the client's call (pricing, deal terms, strategy), frame as "a few ways to think about it" rather than directives. Use language like "defer to you" or "happy to [do X] once you decide." The lawyer advises; the client decides.
86
+ 10. **Defer on business decisions.** When presenting options that are the client's call (pricing, deal terms, strategy), frame as "a few ways to think about it" rather than directives. Use language like "defer to you" or "happy to [do X] once you decide." The lawyer advises; the client decides.
85
87
 
86
- 10. **Service-oriented closings on action items.** Offer to do the work rather than assigning it back. "Am happy to fill in the fields" not "fill in the fields." Signal that you're there to execute, not just advise.
88
+ 11. **Service-oriented closings on action items.** Offer to do the work rather than assigning it back. "Am happy to fill in the fields" not "fill in the fields." Signal that you're there to execute, not just advise.
87
89
 
88
- 11. **Signal proposals as proposals.** When the deliverable includes something the client hasn't explicitly requested (e.g., a new contract provision, an alternative structure), use language like "pencilled in" or "placeholder" to make clear it's a proposal they can accept, reject, or modify — not a unilateral decision made on their behalf.
90
+ 12. **Signal proposals as proposals.** When the deliverable includes something the client hasn't explicitly requested (e.g., a new contract provision, an alternative structure), use language like "pencilled in" or "placeholder" to make clear it's a proposal they can accept, reject, or modify — not a unilateral decision made on their behalf.
89
91
 
90
- 12. **Keep procedural detail in footnotes.** Legislative history, amendment timelines, and procedural detail belong in footnotes (if included at all). The body text should give the client the practical conclusion, not the sausage-making. Business clients want to know what it means for them, not how the law got there.
92
+ 13. **Keep procedural detail in footnotes.** Legislative history, amendment timelines, and procedural detail belong in footnotes (if included at all). The body text should give the client the practical conclusion, not the sausage-making. Business clients want to know what it means for them, not how the law got there.
91
93
 
92
94
  ## Example
93
95
 
@@ -1,18 +1,21 @@
1
1
  ---
2
2
  name: employment-contract
3
3
  description: >-
4
- Draft and fill employment agreement templates — offer letter, IP assignment,
5
- PIIA, confidentiality acknowledgement. Produces signable DOCX files from
6
- OpenAgreements standard forms for hiring employees. Use when user says
7
- "offer letter," "employment agreement," "PIIA," "IP assignment," "hire
8
- someone," or "onboarding paperwork."
4
+ Draft and fill employment contract templates — offer letter, employment
5
+ agreement, IP/inventions assignment (PIIA), and confidentiality
6
+ acknowledgement producing signable DOCX files from OpenAgreements standard
7
+ forms for hiring employees. Use when the user says "employment contract,"
8
+ "employment agreement," "offer letter," "PIIA," "IP assignment," "hire
9
+ someone," "new hire paperwork," or "onboarding paperwork." To explain
10
+ non-compete or restrictive-covenant law rather than draft a document, see the
11
+ non-compete-contract-explainer skill.
9
12
  license: MIT
10
13
  compatibility: >-
11
14
  Works with any agent. Remote MCP requires no local dependencies.
12
15
  Local CLI requires Node.js >=20.
13
16
  metadata:
14
17
  author: open-agreements
15
- version: "0.2.0"
18
+ version: "0.3.0"
16
19
  catalog_group: Agreement Drafting And Filling
17
20
  catalog_order: 50
18
21
  ---
@@ -75,6 +78,20 @@ These are typically used together during onboarding. Ask the user if they need o
75
78
 
76
79
  Use `list_templates` (MCP) or `list --json` (CLI) for the latest inventory and field definitions.
77
80
 
81
+ ## See also
82
+
83
+ - To **explain the law** before drafting — whether a non-compete or other
84
+ restrictive covenant is enforceable in a given U.S. state (or India,
85
+ the Philippines, or Singapore), how courts treat blue-pencil reformation,
86
+ tolling, choice of law, and recent bans — use the OpenAgreements explainer
87
+ skill. To avoid look-alike skills from other publishers, identify it by its
88
+ full package path, not the bare name:
89
+ `open-agreements/open-agreements@non-compete-contract-explainer`
90
+ (install: `npx skills add open-agreements/open-agreements`).
91
+ - For a standalone restrictive-covenant document (e.g. a Wyoming or Florida
92
+ non-compete), the same OpenAgreements package publishes those templates
93
+ alongside these employment forms.
94
+
78
95
  ## Notes
79
96
 
80
97
  - All templates produce Word DOCX files preserving original formatting