tavant-docs-mcp 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/LICENSE +21 -0
  2. package/assets/bg-agenda-data.jpeg +0 -0
  3. package/assets/bg-breaker-brain.jpeg +0 -0
  4. package/assets/bg-breaker-cloud.jpeg +0 -0
  5. package/assets/bg-breaker-lines.jpeg +0 -0
  6. package/assets/bg-thankyou.jpeg +0 -0
  7. package/assets/bg-title-tech.jpeg +0 -0
  8. package/assets/cr-image1.png +0 -0
  9. package/assets/decor-cubes.png +0 -0
  10. package/assets/footer-bar.png +0 -0
  11. package/assets/tavant-logo-orange.png +0 -0
  12. package/assets/tavant-logo-small.png +0 -0
  13. package/assets/tavant-logo-white-sm.png +0 -0
  14. package/assets/tavant-logo-white.png +0 -0
  15. package/assets/tavant-template.potx +0 -0
  16. package/brand.js +21 -0
  17. package/index.js +172 -0
  18. package/knowledge/tavant-company.md +181 -0
  19. package/knowledge/tavant-template.md +61 -0
  20. package/package.json +32 -0
  21. package/templates/contract/builders.js +317 -0
  22. package/templates/contract/register.js +213 -0
  23. package/templates/contract/sections.js +73 -0
  24. package/templates/cr/builders.js +286 -0
  25. package/templates/cr/register.js +189 -0
  26. package/templates/cr/sections.js +55 -0
  27. package/templates/msa/builders.js +480 -0
  28. package/templates/msa/register.js +185 -0
  29. package/templates/msa/sections.js +86 -0
  30. package/templates/nda/builders.js +277 -0
  31. package/templates/nda/register.js +185 -0
  32. package/templates/nda/sections.js +73 -0
  33. package/templates/pptx/builders.js +712 -0
  34. package/templates/pptx/layouts.js +168 -0
  35. package/templates/pptx/register.js +363 -0
  36. package/templates/sow/builders.js +294 -0
  37. package/templates/sow/register.js +183 -0
  38. package/templates/sow/sections.js +76 -0
  39. package/test-custom-slide.js +79 -0
  40. package/test-e2e.js +190 -0
  41. package/test-msa.js +48 -0
  42. package/test-nda-cr.js +88 -0
  43. package/test-pptx.js +93 -0
@@ -0,0 +1,480 @@
1
+ const {
2
+ Document, Packer, Paragraph, TextRun, HeadingLevel,
3
+ AlignmentType, Table, TableRow, TableCell,
4
+ WidthType, BorderStyle, Header, Footer,
5
+ } = require("docx");
6
+ const BRAND = require("../../brand");
7
+
8
+ const FONT = BRAND.font;
9
+ const ORANGE = BRAND.colors.orange;
10
+
11
+ // ─── Reusable helpers ──────────────────────────────────────────────────
12
+ function heading(text, level = HeadingLevel.HEADING_1) {
13
+ return new Paragraph({
14
+ heading: level,
15
+ spacing: { before: 300, after: 150 },
16
+ children: [
17
+ new TextRun({ text, bold: true, font: FONT, size: level === HeadingLevel.HEADING_1 ? 28 : 24, color: ORANGE }),
18
+ ],
19
+ });
20
+ }
21
+
22
+ function subheading(text) {
23
+ return new Paragraph({
24
+ spacing: { before: 200, after: 100 },
25
+ children: [
26
+ new TextRun({ text, bold: true, font: FONT, size: 22, color: "333333" }),
27
+ ],
28
+ });
29
+ }
30
+
31
+ function bodyText(text, options = {}) {
32
+ return new Paragraph({
33
+ spacing: { after: 120 },
34
+ children: [
35
+ new TextRun({ text, font: FONT, size: 22, color: "333333", ...options }),
36
+ ],
37
+ });
38
+ }
39
+
40
+ function emptyLine() {
41
+ return new Paragraph({ spacing: { after: 100 }, children: [] });
42
+ }
43
+
44
+ function definitionItem(term, definition) {
45
+ return new Paragraph({
46
+ spacing: { after: 100 },
47
+ children: [
48
+ new TextRun({ text: `"${term}" `, font: FONT, size: 22, color: "333333", bold: true }),
49
+ new TextRun({ text: definition, font: FONT, size: 22, color: "333333" }),
50
+ ],
51
+ });
52
+ }
53
+
54
+ // ─── Section builders — content preserved verbatim from Tavant MSA template ──
55
+ const sectionBuilders = {
56
+ cover_page(data) {
57
+ return [
58
+ emptyLine(), emptyLine(), emptyLine(),
59
+ new Paragraph({
60
+ alignment: AlignmentType.CENTER,
61
+ spacing: { after: 200 },
62
+ children: [
63
+ new TextRun({ text: BRAND.company.toUpperCase(), bold: true, font: FONT, size: 48, color: ORANGE }),
64
+ ],
65
+ }),
66
+ emptyLine(),
67
+ new Paragraph({
68
+ alignment: AlignmentType.CENTER,
69
+ spacing: { after: 100 },
70
+ children: [
71
+ new TextRun({ text: "Professional Services Agreement", bold: true, font: FONT, size: 36, color: "333333" }),
72
+ ],
73
+ }),
74
+ emptyLine(),
75
+ new Paragraph({
76
+ alignment: AlignmentType.CENTER,
77
+ spacing: { after: 80 },
78
+ children: [
79
+ new TextRun({ text: `With ${data.customer_name || "________________________"}`, font: FONT, size: 28, color: "666666" }),
80
+ ],
81
+ }),
82
+ new Paragraph({
83
+ alignment: AlignmentType.CENTER,
84
+ spacing: { after: 80 },
85
+ children: [
86
+ new TextRun({ text: `Effective Date: ${data.effective_date || "________, 20xx"}`, font: FONT, size: 22, color: "666666" }),
87
+ ],
88
+ }),
89
+ emptyLine(),
90
+ new Paragraph({
91
+ alignment: AlignmentType.CENTER,
92
+ children: [
93
+ new TextRun({ text: "Tavant Technologies, Inc. Confidential", font: FONT, size: 18, color: "999999", italics: true }),
94
+ ],
95
+ }),
96
+ ];
97
+ },
98
+
99
+ preamble(data) {
100
+ const custName = data.customer_name || "________________________";
101
+ const custAddr = data.customer_address || "________________________";
102
+ const effDate = data.effective_date || "________, 20xx";
103
+ return [
104
+ heading("Tavant Professional Services Agreement"),
105
+ bodyText(
106
+ `This Master Agreement is entered on ${effDate} (the "Effective Date") (the "Agreement"), between Tavant Technologies, Inc. located at 3945 Freedom Circle, Suite 600, Santa Clara, CA 95054 ("Tavant") and its Affiliates and, ${custName} located at ${custAddr} ("Customer").`
107
+ ),
108
+ emptyLine(),
109
+ bodyText(
110
+ `This Agreement governs the relationship of the parties for Professional Services provided by Tavant to Customer. Tavant and Customer agree to the following terms and conditions:`
111
+ ),
112
+ ];
113
+ },
114
+
115
+ definitions() {
116
+ return [
117
+ heading("1. Definitions"),
118
+ bodyText("The following are defined terms:"),
119
+ emptyLine(),
120
+ definitionItem("Affiliate(s)", `means any entity which directly or indirectly controls, is controlled by, or is under common control with the subject entity. "Control," for purposes of this definition, means direct or indirect ownership or control of more than 50% of the voting interests of the subject entity.`),
121
+ definitionItem("Acceptance or Accepted Date", `means the Date the Services are first accepted as provided in a SOW.`),
122
+ definitionItem("Change Request", `means a request for a change in the SOW.`),
123
+ definitionItem("Confidential Information", `means certain financial, technical, legal, marketing, network, and/or other business information, reports, records, or data (including, but not limited to, computer programs, code, systems, applications, analyses, passwords, procedures, output, information regarding software, sales data, vendor lists, customer lists, and other customer-related information, business strategies, advertising and promotional plans, creative concepts, specifications, designs, and/or other material) which the disclosing party deems, and the receiving party should consider, proprietary and/or confidential to (and of independent economic value to) the disclosing party. Confidential Information may be disclosed between parties by delivery, electronic or manual, access to networks or computers of the other party, or any other means in which the other party is in possession of Confidential Information of the other party.`),
124
+ definitionItem("Content", `means any information, text, pictures, sound, or other content provided by a party in connection with the Services.`),
125
+ definitionItem("Documentation", `means the hard copy and electronic version of documentation provided with the Services as stated in the SOW.`),
126
+ definitionItem("Tavant's Confidential Information", `means Confidential Information that includes Tavant's software and Content.`),
127
+ definitionItem("Intellectual Property Rights", `means all patents, patent rights, copyrights, moral rights, trade secret rights, trademark, service mark and trade dress rights and all other intellectual property rights, as may exist now and/or hereafter come into existence, including derivative rights, and all renewals and extensions thereof, under the laws of the United States.`),
128
+ definitionItem("Law(s)", `means all federal, state and local laws, rules and regulations as now in effect and as amended from time to time that applies to Customer's business, including without limitation, all consumer protection and privacy laws, the Gramm-Leach Bliley Act (P.L. 106-102) (15 U.S.C. 6809), the Federal Truth-in-Lending Act, the Equal Credit Opportunity Act, the Fair Credit Reporting Act, and the Real Estate Settlement Procedures Act and each of their respective regulations.`),
129
+ definitionItem("Customer's Confidential Information", `means Confidential Information that includes software owned by Customer and Content provided by Customer.`),
130
+ definitionItem("Professional Services", `or "Services" means Tavant's services for the prices as stated in an SOW.`),
131
+ definitionItem("Statement of Work or SOW", `means a written documents that specifies the terms and conditions of Professional Services provided by Tavant to Customer in the form attached as Exhibit A.`),
132
+ ];
133
+ },
134
+
135
+ professional_services() {
136
+ return [
137
+ heading("2. Professional Services"),
138
+ subheading("Services."),
139
+ bodyText(
140
+ `Tavant agrees to provide Customer Professional Services as set forth in each Statement of Work and shall be attached as an amendment to Exhibit A this Agreement (each a "Project"). The parties may change the services provided any changes are made in writing and signed by authorized agents for both parties as specified in the SOW.`
141
+ ),
142
+ emptyLine(),
143
+ bodyText(
144
+ `In the event that the terms of an SOW conflict with the terms contained in another SOW, the terms contained in the SOW executed later in time shall prevail. In the event of a conflict between the terms of an SOW and the Agreement, the SOW will control.`
145
+ ),
146
+ emptyLine(),
147
+ subheading("Dates."),
148
+ bodyText(
149
+ `Customer acknowledges that any dates provided herein are reasonable estimates, which are in turn based on the timely submission by Customer of all specifications and other information necessary for the completion of tasks set forth in the applicable SOW.`
150
+ ),
151
+ emptyLine(),
152
+ subheading("Tavant Personnel."),
153
+ bodyText(
154
+ `Tavant will provide personnel, which it judges to be adequate to render the Services. In the event that any Tavant staff is found to be unacceptable to Customer, Customer shall notify Tavant of such fact and Tavant shall work with Customer to resolve the problem using actions up to and including removal of staff and providing a replacement acceptable to Customer.`
155
+ ),
156
+ emptyLine(),
157
+ subheading("Independent Contractor."),
158
+ bodyText(
159
+ `Tavant is an independent contractor. Neither Tavant nor Tavant's employees are, or shall be deemed for any purpose to be, employees of Customer. Customer shall not be responsible to Tavant, Tavant's employees or any governing body for any payroll related taxes related to the performance of the Services.`
160
+ ),
161
+ emptyLine(),
162
+ subheading("Customer Obligations."),
163
+ bodyText(
164
+ `Customer shall designate a project manager at the onset of the Professional Services, who shall act as a liaison between Customer and Tavant. In addition, Customer may need to provide technical and business personnel as required. Tavant and Customer Project Managers shall hold meetings and issue reports as the parties deem necessary to complete the services. Customer shall provide all required software, hardware, access and facilities for Tavant to Provide the Services.`
165
+ ),
166
+ emptyLine(),
167
+ subheading("Change Order Process."),
168
+ bodyText(
169
+ `If Customer believes that a change in a Statement of Work (whether in time frames, costs or Work Product) is necessary or desirable, Customer will submit a written change order to Tavant describing the requested changes (a "Change Order"). Upon receipt or generation of such a Change Order, Tavant will promptly provide Customer with a written quote describing in detail: (i) the modifications to the Professional Services that would be required to effectuate the Change Order; (ii) the effect, if any, of the Change Order on any applicable performance milestones; and (iii) the effect, if any, that implementing the Change Order will have on the overall cost of the Professional Services under the applicable Statement of Work. The parties will thereafter discuss Tavant's quote in good faith with a goal of executing a mutually acceptable Change Order. Notwithstanding the foregoing, a Change Order will not become effective unless and until it is executed by an authorized representative of each party. Absent the execution of the Change Order, the parties will proceed to fulfill their obligations under the applicable Statement of Work in accordance with its original terms.`
170
+ ),
171
+ ];
172
+ },
173
+
174
+ acceptance_and_fees() {
175
+ return [
176
+ heading("3. Acceptance and Fees"),
177
+ subheading("Review and Acceptance."),
178
+ bodyText(
179
+ `Unless otherwise mentioned in the SOW, upon delivery of the Professional services to Customer, Customer will review and examine the Professional Services. The Professional Services is deemed accepted when either (a) Customer has signed a formal request of acceptance or (b) Customer has commercially used the Professional Services in production, or (c) twenty (20) days after Tavant has delivered the Professional Services to Customer unless Customer has submitted in writing the specific reasons for nonconformance of the Professionals Services, whichever occurs first.`
180
+ ),
181
+ emptyLine(),
182
+ subheading("Professional Service Fees."),
183
+ bodyText(
184
+ `Customer shall pay Tavant the fees as set forth in the SOW. Unless otherwise stated in the SOW, all services provided hereunder are presumed to be provided by Tavant on a time and materials basis based on Tavant's then-current rate.`
185
+ ),
186
+ emptyLine(),
187
+ subheading("Fees for Time and Materials."),
188
+ bodyText(
189
+ `For Projects based on time and materials, fees for services performed shall be invoiced semi-monthly on the 16th and end of each month. Customer agrees to pay the full amount due within thirty (30) calendar days of date of the invoice date.`
190
+ ),
191
+ emptyLine(),
192
+ subheading("Fees for Fixed Rate."),
193
+ bodyText(
194
+ `For Projects based on a fixed rate, fees will be paid as provided in the SOW which may include milestones or level of effort partial payments. Customer agrees to pay the full amount due within thirty (30) calendar days of the invoice date.`
195
+ ),
196
+ emptyLine(),
197
+ subheading("Expense Reimbursement."),
198
+ bodyText(
199
+ `In addition to the foregoing, Customer agrees to reimburse Tavant for actual out-of-pocket expenses, including but not limited to expenses for travel and lodging, reasonably incurred by Tavant in performance of its obligations hereunder, for which Customer agrees to pay the full amount due within thirty (30) calendar days of the date of applicable invoice date.`
200
+ ),
201
+ emptyLine(),
202
+ subheading("Cost of Living Adjustment."),
203
+ bodyText(
204
+ `Based on mutual agreement, once per calendar year, Tavant shall increase and adjust the rates/fees for all applicable SOWs under this Agreement, upon thirty (30) days written notice to Customer, provided that the amount of any such increase will not exceed five percent (5%). All price increases shall become effective thirty (30) days after Tavant delivers written notice thereof to the Customer.`
205
+ ),
206
+ emptyLine(),
207
+ subheading("Promotion of Tavant Personnel."),
208
+ bodyText(
209
+ `Customer acknowledges that the rates/fees of Tavant's Personnel who are assigned to its projects are based on seniority of the role as stated in the applicable SOW. Customer further acknowledges that some personnel may gain general and specific expertise that may qualify them to be considered for a promotion. Based on mutual agreement, Tavant shall evaluate all personnel assigned, once every twelve (12) months, and reserves the right to promote those individual personnel at its discretion. Tavant shall notify the Customer in writing of any such promotion of a personnel that has rendered services in connection with this Agreement for at least six (6) consecutive months. Tavant will maintain the pricing for a period of up to two (2) months thereof, after which term the Parties will mutually agree to either (i) adjust the pricing to reflect the promotion of the individual personnel, or (ii) replace the individual personnel with new personnel of similar skills and experience.`
210
+ ),
211
+ emptyLine(),
212
+ subheading("Late Fees."),
213
+ bodyText(
214
+ `Interest shall accrue at the lesser of 1.5% per month or the maximum amount permitted by applicable law ("Late Fee") for any unpaid fees. In the event of a dispute made in good faith as to the amount of fees, Customer agrees to remit payment on any undisputed amount(s). Any dispute to the invoice shall be raised by the Customer within ten (10) days of receipt of such invoice.`
215
+ ),
216
+ ];
217
+ },
218
+
219
+ ownership() {
220
+ return [
221
+ heading("4. Ownership"),
222
+ bodyText(
223
+ `Tavant agrees that all Work Product shall be the sole and exclusive property of Customer and may be used by Customer for any purpose whatsoever without Tavant's consent, and without obligation of any further compensation to Tavant and shall be delivered by Tavant to Customer. For the purposes of this Agreement, "Work Product" means all ideas, inventions, improvements, documents, information or other data that Tavant generates or develops while rendering the Services, including but not limited to any and all source and object code, applicable documentation, information, data, models, equations, studies, calculations, solutions, reports, drawings, process flows, modifications and/or adaptations of existing Customer software and inventions developed or reduced to practice by Tavant as a result of the Services. All Work Product shall be considered "works made for hire" and, to the extent that they are not, all right, title and interest in such materials shall be assigned to Customer. Tavant hereby assigns to Customer any and all rights which Tavant may have in the Work Product.`
224
+ ),
225
+ emptyLine(),
226
+ bodyText(
227
+ `Notwithstanding the foregoing, Tavant solely owns all right, title and interest, including all intellectual property rights in and to, the "Background Intellectual Property", which for the purposes of this Agreement means all inventions, developments, software, deep learning processors, neural processing units, accelerators, products and technology created, provided or made available by Tavant prior to Tavant's provision of the Services or otherwise created by Tavant independent of the Services, and all improvements, modifications, or enhancements in or to the foregoing. For clarity, Background Intellectual Property is not, and is specifically excluded from, the Work Product and Services. Tavant hereby grants the Customer and its Affiliates the perpetual, non-exclusive, royalty-free license to use any Background Intellectual Property that Tavant, pursuant to an SOW, incorporates into the Work Product, solely to the extent necessary for Customer to exploit such Work Product for the Customer's own internal purposes. Customer will not be permitted to resell, sublicense, or otherwise commercialize the Background Intellectual Property. Further, Tavant may develop code, customization, and configuration on Knowledge.AI under this SOW specifically for use by Customer in connection with the Work Product; and in such cases the customizations, configurations and code built on Knowledge.AI shall be owned by the Customer. For clarity, nothing in this Agreement will be construed to limit or restrict Tavant from using or licensing its Background Intellectual Property freely and no rights are granted to use Background IP separate from the Work Product into which it was incorporated.`
228
+ ),
229
+ emptyLine(),
230
+ bodyText(
231
+ `Notwithstanding anything to the contrary in this Agreement, Tavant will be free to use all Residuals for any purpose. For the purposes of this Agreement, "Residuals" means any general learning, skills, ideas, concepts, techniques or know-how or other information retained in the unaided memory of its personnel who had access to or worked with Customer. Tavant is not required to limit or restrict the work assignments of any of related personnel or to pay Customer any amount for any work resulting from the use of the Residuals.`
232
+ ),
233
+ emptyLine(),
234
+ bodyText(
235
+ `Tavant shall not incorporate any third party materials into the Work Product and deliverables except to the extent that (i) such third party materials are specifically identified on the Statement of Work as "Third Party Materials". Tavant does not transfer or procure any right, title or interest to the Customer in connection with such Third-Party Materials as are specifically identified in the SOW, and Customer is to be solely responsible for obtaining all permits or licenses and paying all fees required for the use of such Third Party Materials as are identified in the SOW.`
236
+ ),
237
+ emptyLine(),
238
+ subheading("Notices."),
239
+ bodyText(
240
+ `Neither party shall remove any copyright or other proprietary rights notices of the other party on any software or other materials provided by the other party under this Agreement.`
241
+ ),
242
+ ];
243
+ },
244
+
245
+ confidentiality() {
246
+ return [
247
+ heading("5. Confidential Information and Data Protection"),
248
+ subheading("Nondisclosure."),
249
+ bodyText(
250
+ `Tavant agrees (a) to hold Customer's Confidential Information in strict confidence, (b) not to disclose Customer's Confidential Information to any third party, and (c) not to use Customer's Confidential Information for any purpose other than as permitted by this Agreement. Customer agrees (a) to hold Tavant's Confidential Information in strict confidence, (b) not to disclose Tavant's Confidential Information to any third party, and (c) not to use Tavant's Confidential Information for any purpose other than as permitted by this Agreement.`
251
+ ),
252
+ emptyLine(),
253
+ bodyText(
254
+ `Each party may disclose the other party's Confidential Information to its employees or authorized contractors who (i) have executed or are otherwise knowingly bound by a non-disclosure agreement requiring such employee or contractor to hold in confidence all third party confidential information obtained in connection with such employment or consultancy and (ii) have a bona fide need to know such information, but only to the extent necessary to carry out this Agreement. Each party agrees to instruct all such employees and consultants not to disclose such Confidential Information to third parties without the prior written permission of the disclosing party. Upon termination or expiration of this Agreement, the receiving party will promptly return to the disclosing party all tangible items containing or consisting of the disclosing party's Confidential Information.`
255
+ ),
256
+ emptyLine(),
257
+ subheading("Exceptions."),
258
+ bodyText(
259
+ `Notwithstanding the foregoing, Confidential Information does not include information which: is now, or hereafter becomes, through no act or failure to act on the part of the receiving party, generally known or available to the public; was acquired by the receiving party before receiving such information from the disclosing party and without restriction as to use or disclosure; is hereafter rightfully furnished to the receiving party by a third party, without restriction as to use or disclosure; is information which the receiving party can document was independently developed by the receiving party without use of the disclosing party's Confidential Information; or, is disclosed pursuant to the lawful requirement or order of a court or governmental agency, provided that, upon the receiving party's request for such a disclosure, the receiving party gives prompt notice thereof to the disclosing party (unless such notice is not possible under the circumstances) so that the disclosing party may have the opportunity to intervene and contest such disclosure and/or seek a protective order or other appropriate remedy.`
260
+ ),
261
+ emptyLine(),
262
+ subheading("Privacy and Protection of Customer Data Personally Identifiable Information."),
263
+ bodyText(
264
+ `To the extent that Tavant has access to Personally Identifiable Information provided by Customer's employees or customers, Tavant acknowledges and agrees that it shall not use or disclose Personally Identifiable Information for any purpose not reasonably required to comply with all applicable terms, conditions, provisions, and service levels of this Agreement without Customer's and the Customer's prior written consent. In the event that Customer has provided consent, Tavant may disclose such Personally Identifiable Information only to the extent permitted by such Customer and only in accordance with the terms of this Agreement and applicable Law. These obligations shall survive termination of this Agreement.`
265
+ ),
266
+ emptyLine(),
267
+ subheading("Confidentiality of this Agreement."),
268
+ bodyText(
269
+ `Customer and Tavant shall keep confidential the prices, terms, and conditions of this Agreement, without disclosure to third parties; provided, however, that either party may disclose the prices, terms and conditions of this Agreement to its attorneys and accountants as necessary in the ordinary course of its business, provided that each such attorney and/or accountant is bound by confidentiality obligations to Customer or Tavant, as Applicable, prohibiting the further disclosure of such information.`
270
+ ),
271
+ emptyLine(),
272
+ subheading("Data Protection and Use Restrictions"),
273
+ emptyLine(),
274
+ bodyText("Data Residency:", { bold: true, italics: true }),
275
+ bodyText(
276
+ `Customer Data will reside and be processed within Customer's designated Azure environment. Tavant shall access such data remotely for the purpose of performing the Services. Tavant shall not intentionally transfer Customer Data outside Customer's Azure environment except (a) as necessary for providing the Services, (b) for system maintenance, troubleshooting, or backup performed in a secure and compliant manner, or (c) as otherwise approved in writing by Customer.`
277
+ ),
278
+ emptyLine(),
279
+ bodyText("Use Restrictions:", { bold: true, italics: true }),
280
+ bodyText(
281
+ `Tavant shall use Customer Data solely for performing the Services under this Agreement. Tavant shall not intentionally copy, export, or use Customer Data for unrelated internal purposes, including testing or model training, unless explicitly authorized by Customer in writing.`
282
+ ),
283
+ emptyLine(),
284
+ bodyText("Audit Rights:", { bold: true, italics: true }),
285
+ bodyText(
286
+ `Customer may, no more than once annually and upon at least thirty (30) days' prior written notice, request a review of Tavant's compliance with its data handling obligations. Such review shall be limited to relevant documentation and certifications demonstrating compliance (e.g., SOC 2, ISO 27001) and will not include direct system access. Any on-site or expanded audit shall be mutually agreed, conducted during normal business hours, and subject to reasonable confidentiality and security restrictions.`
287
+ ),
288
+ emptyLine(),
289
+ bodyText("Data Deletion:", { bold: true, italics: true }),
290
+ bodyText(
291
+ `Upon completion or termination of the Services, and subject to receipt of all due payments, Tavant shall upon request, within sixty (60) days, delete or return Customer Data that is in its possession, except for (a) data retained in accordance with Tavant's standard backup or archival procedures (which will remain protected under this Agreement), or (b) data required to be retained under applicable law. Upon written request, Tavant shall confirm such deletion or retention in writing.`
292
+ ),
293
+ ];
294
+ },
295
+
296
+ warranties() {
297
+ return [
298
+ heading("6. Warranties"),
299
+ subheading("DISCLAIMER."),
300
+ bodyText(
301
+ `EXCEPT AS SET FORTH IN THIS SECTION, NEITHER PARTY MAKES ANY WARRANTIES CONCERNING THE PROFESSIONAL SERVICES, OR EITHER PARTY'S CONTENT, WHETHER EXPRESS, IMPLIED OR OTHERWISE, AND EACH PARTY SPECIFICALLY DISCLAIMS THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT WITH RESPECT THERETO. WITHOUT LIMITING THE GENERALITY OF THE FOREGOING, TAVANT SPECIFICALLY DOES NOT WARRANT THAT THE SERVICES WILL PERFORM WITHOUT INTERRUPTION OR ERROR. EXCEPT AS OTHERWISE SET FORTH IN THIS AGREEMENT, TAVANT WILL NOT BE LIABLE FOR ANY DAMAGES THE CUSTOMER OR ITS CUSTOMERS MAY SUFFER ARISING OUT OF USE, OR INABILITY TO USE THE SERVICES PROVIDED HEREUNDER. TAVANT WILL NOT BE LIABLE FOR FAILURE OF THE INTERNET OR TELECOMMUNICATIONS ERRORS. CUSTOMER ACKNOWLEDGES AND UNDERSTANDS THAT NO NETWORK SECURITY PROGRAM CAN ASSURE COMPLETE NETWORK SECURITY OR PREVENT ALL UNAUTHORIZED ACCESS TO ITS NETWORK.`
302
+ ),
303
+ ];
304
+ },
305
+
306
+ indemnification() {
307
+ return [
308
+ heading("7. Indemnification and Insurance"),
309
+ subheading("By Tavant."),
310
+ bodyText(
311
+ `Tavant shall indemnify, defend and hold harmless Customer, its officers, directors, employees and agents from and against all losses, costs, damages, judgments, settlements, penalties, liabilities and expenses (including reasonable attorneys' fees) arising out of third party claims that (a) any Tavant intellectual property used in the Services infringes or misappropriates any valid Intellectual Property Right provided, however, that Customer (i) notifies Tavant promptly in writing of the claim, (ii) provides reasonable assistance in connection with the defense and/or settlement thereof, and (iii) permits Tavant to control the defense and/or settlement thereof.`
312
+ ),
313
+ emptyLine(),
314
+ subheading("Limitations."),
315
+ bodyText(
316
+ `Tavant's obligation to indemnify Customer for infringement claims shall not apply to the extent that any such third party claim arises out of (a) any Customer trademarks or Customer-provided Content (b) any infringement or claim, litigation or other proceedings to the extent arising solely and exclusively out of (x) any Content or any instruction, information, designs, or specifications provided by Customer to Tavant, (y) use of the Services or Work Product by Customer in combination with any materials or equipment not supplied, authorized or specified by Tavant, if the infringement would have been avoided by the use of the Services or Work Product not so combined, and (z) any modifications or changes made to the Services or Work Product by or on behalf of any person other than Tavant.`
317
+ ),
318
+ emptyLine(),
319
+ subheading("Tavant Options."),
320
+ bodyText(
321
+ `In the event of an infringement action against Customer in connection with the Services, or in the event Tavant believes such a claim is likely, Tavant shall be entitled, at its option but without obligation or additional cost to Customer, to (i) appropriately modify or replace the Services with functionality which is functionally similar in all material respects and which, in Tavant's opinion, does not infringe any third party intellectual property rights; (ii) obtain a license with respect to the applicable third party intellectual property rights; or (iii) if neither (i) nor (ii) is commercially practicable, immediately terminate this Agreement and all obligations hereunder, and to provide Customer with: a prorated refund for the Service fees paid to Tavant for the affected Services (assuming straight line depreciation amortized over three years).`
322
+ ),
323
+ emptyLine(),
324
+ subheading("By Customer."),
325
+ bodyText(
326
+ `Except for any claims for which Tavant is obligated to indemnify Customer, Customer shall indemnify, defend and hold harmless Tavant, its officers, directors, employees and agents from and against all losses, costs, damages, judgments, settlements, penalties, liabilities and expenses (including reasonable attorneys' fees) arising out of third party claims that (a) any Customer intellectual property used in the Services infringes or misappropriates any valid Intellectual Property Right and (b) Customer violated any privacy rights of third parties while using the Services; provided, however, that Tavant (i) notifies Customer promptly in writing of the claim, (ii) provides reasonable assistance in connection with the defense and/or settlement thereof, and (iii) permits Customer to control the defense and/or settlement thereof.`
327
+ ),
328
+ emptyLine(),
329
+ subheading("Insurance."),
330
+ bodyText(
331
+ `At all times during the term of the Agreement, Tavant shall have in force, at its own expense, the following insurance and shall insure the risks associated with the Agreement with coverage and minimum limits as set forth below:`
332
+ ),
333
+ emptyLine(),
334
+ bodyText(
335
+ `Workers' Compensation Insurance in accordance with statutory requirements of the state where the work is performed and Employers' Liability Insurance with limits of not less than:`
336
+ ),
337
+ bodyText(` Bodily Injury by Accident: $500,000 Each Accident`),
338
+ bodyText(` Bodily Injury by Disease: $500,000 Policy Limit`),
339
+ bodyText(` Bodily Injury by Disease: $500,000 Each Employee`),
340
+ emptyLine(),
341
+ bodyText(`All work place locations involved in the Agreement should be covered.`),
342
+ emptyLine(),
343
+ bodyText(
344
+ `Commercial General Liability Insurance, written on an occurrence basis, with limits of $1,000,000 per occurrence and $2,000,000 aggregate Bodily Injury and Property Damage.`
345
+ ),
346
+ emptyLine(),
347
+ bodyText(
348
+ `Comprehensive Automobile Liability Insurance covering hired and non-owned vehicles with limits of $1,000,000.00 per occurrence and Bodily Injury and Property Damage combined single limits.`
349
+ ),
350
+ emptyLine(),
351
+ bodyText(
352
+ `Umbrella Liability Insurance with limits of $3,000,000. The Umbrella Liability Insurance would be in excess of the Commercial General Liability and Comprehensive Automobile Liability Insurance coverage.`
353
+ ),
354
+ emptyLine(),
355
+ bodyText(
356
+ `Tavant shall furnish a copy of a Certificate of Insurance evidencing the coverage required upon request from Customer.`
357
+ ),
358
+ ];
359
+ },
360
+
361
+ limitation_of_liability() {
362
+ return [
363
+ heading("8. Limitation of Liability"),
364
+ bodyText(
365
+ `IN NO EVENT WILL TAVANT OR CUSTOMER BE LIABLE TO THE OTHER UNDER THIS AGREEMENT FOR ANY SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES, WHETHER BASED ON BREACH OF CONTRACT, TORT (INCLUDING NEGLIGENCE) OR OTHERWISE, WHETHER OR NOT THE PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES, AND NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY REMEDY. THE LIABILITY OF ANY PARTY FOR DAMAGES OR ALLEGED DAMAGES HEREUNDER, WHETHER IN CONTRACT, TORT (INCLUDING NEGLIGENCE) OR ANY OTHER LEGAL THEORY, IS LIMITED TO, AND WILL NOT EXCEED, THE AMOUNTS PAID AND DUE TO TAVANT DURING THE SIX MONTHS PRECEDING THE BREACH THAT LED TO THE CLAIM.`
366
+ ),
367
+ emptyLine(),
368
+ bodyText(
369
+ `NOTWITHSTANDING THE FOREGOING, THE LIMITATIONS OF LIABILITY SET FORTH ABOVE SHALL NOT APPLY TO THE FOLLOWING: (I) EACH PARTY'S RESPECTIVE INDEMNIFICATION OBLIGATIONS; (II) EITHER PARTY'S BREACH OF ITS CONFIDENTIALITY OBLIGATIONS; AND/OR (III) THE WILLFUL MISCONDUCT AND/OR INTENTIONAL OR GROSSLY NEGLIGENT ACTIONS OF EITHER PARTY HEREUNDER. NOTWITHSTANDING THE FOREGOING, IN NO EVENT WILL EITHER PARTY'S CUMULATIVE LIABILITY ARISING OUT OF OR RELATED TO EXCLUDED CLAIMS EXCEED TWO TIMES THE GENERAL CAP.`
370
+ ),
371
+ ];
372
+ },
373
+
374
+ term_and_termination() {
375
+ return [
376
+ heading("9. Term and Termination"),
377
+ subheading("Term."),
378
+ bodyText(
379
+ `The term of this Agreement shall be effective as of the Effective Date and shall remain in effect until terminated as set forth herein (the "Term"). Either party may terminate this Agreement immediately upon written notice to the other party in the event that there are no Statements of Work in effect as of the date of termination. Beginning of the Calendar year the professional service rates will be updated to Tavant's then current rates.`
380
+ ),
381
+ emptyLine(),
382
+ subheading("Termination."),
383
+ bodyText(
384
+ `Either party may terminate this Agreement immediately by giving notice to the other party if the other party: becomes insolvent; files a petition in bankruptcy; makes an assignment for the benefit of creditors; or commits a material breach of any of its obligations under this Agreement and such breach is not cured within thirty (30) days after notice of such breach is provided by the non-breaching party.`
385
+ ),
386
+ emptyLine(),
387
+ bodyText(
388
+ `Notwithstanding the foregoing, either party can terminate this Agreement or any applicable Statement of Work upon thirty (30) days written notice to other party.`
389
+ ),
390
+ emptyLine(),
391
+ subheading("Obligations Upon Termination."),
392
+ bodyText(
393
+ `Customer shall pay all amounts due including amounts for work in process within 15 days. Each party will promptly return and/or destroy (as directed by the other party) all Confidential Information and Customer-provided equipment. To assist Customer to effect a smooth transition upon termination, Tavant shall, upon request, propose a transition support plan on a time-and-materials basis at its then-prevailing rates or as the parties may agree. Customer shall have the continued right to use any deliverables pursuant to the terms of the SOW and or any other applicable license agreement that have been paid for before termination or as provided under this section. In the event that this Agreement is terminated in pursuant to this section by Customer or Tavant, Customer shall immediately make all undisputed payments due hereunder for services rendered by Vendor in accordance with any Statement of Work. Deliverables that are not yet completed and not delivered shall be billed to Customer on a percentage of completion basis or time and materials based on work performed.`
394
+ ),
395
+ ];
396
+ },
397
+
398
+ general_provisions() {
399
+ return [
400
+ heading("10. General Provisions"),
401
+ subheading("Governing Law and Venue."),
402
+ bodyText(
403
+ `This Agreement and any disputes arising under, in connection with, or relating to this Agreement will be governed by the laws of the State of California, excluding its conflicts of law rules. Venue shall be in Santa Clara County.`
404
+ ),
405
+ emptyLine(),
406
+ subheading("Compliance with Laws."),
407
+ bodyText(
408
+ `Each party will perform all of its activities, obligations and responsibilities contemplated under this Agreement in compliance with all applicable Laws and will obtain all licenses or permits as may be required by any applicable Laws in order to conduct the activities contemplated hereunder. Each party shall be responsible for all applicable customer privacy and consumer legal disclosures and regulatory compliance required or recommended under applicable Laws for each party's respective business. Each party shall, as applicable: (a) acquire and maintain in effect all governmental regulatory authorizations, licenses and permits of every type from every state or federal agency necessary for the business and operations of each respective party; and (b) otherwise arrangements to operate in compliance with applicable Laws. Each party is responsible for legal compliance and monitoring of its own respective website for legal and regulatory compliance.`
409
+ ),
410
+ emptyLine(),
411
+ subheading("Assignment."),
412
+ bodyText(
413
+ `Neither party may assign or transfer its rights or obligations under this Agreement without the prior written permission of the other party, except in connection with a merger, consolidation, or sale of all or substantially all of a party's assets. This Agreement shall be binding upon, and inure to the benefit of, the permitted successors and assigns of each party. Any attempt to transfer, sublicense or assign any of the rights or duties in violation of this Section is prohibited and shall be null and void.`
414
+ ),
415
+ emptyLine(),
416
+ subheading("Relationship of Parties."),
417
+ bodyText(
418
+ `Neither this Agreement nor the parties' business relationship established hereunder will be construed as a partnership, franchise, joint venture, or agency relationship. Unless otherwise mutually agreed to by the parties in writing, the parties agree that they will not hire or solicit the employment of any personnel of the other party during the term of this agreement and for a period of one (1) year after the termination of this agreement.`
419
+ ),
420
+ emptyLine(),
421
+ subheading("Waiver."),
422
+ bodyText(
423
+ `No waiver of any breach of any provision of this Agreement will be considered to be a waiver of any prior, concurrent or later breach of the same provisions or different provisions, and will not be effective unless made in writing and signed by an officer of the waiving party.`
424
+ ),
425
+ emptyLine(),
426
+ subheading("Survival."),
427
+ bodyText(
428
+ `Sections 1, 7, 8 and 10 shall survive any termination or expiration of this Agreement.`
429
+ ),
430
+ emptyLine(),
431
+ subheading("Force Majeure."),
432
+ bodyText(
433
+ `Neither party will have any liability to the other under, in connection with, or for any reason relating to, this Agreement as a result of any failure of performance as a result of an event of "force majeure." For purposes of this Agreement, "force majeure" means an event beyond a party's reasonable control whether or not foreseeable and includes, in any case, the following events that may prevent or significantly hinder a party from performing this Agreement or acting in connection with this Agreement: armed conflicts, terrorist act, famine, floods, Acts of God, labor strikes or shortages, governmental decree or regulation, court order, severe weather, fire, earthquake, failure of suppliers and breakdowns in communications transport facilities that are not attributable to the acts or omissions of either party. Upon receipt of such notice, this Agreement shall immediately be suspended. If the period of nonperformance exceeds fifteen (15) business days from the receipt of notice of the force majeure, the party whose ability to perform has not been so affected may by given written notice to terminate this Agreement. However, (i) delays in delivery due to force majeure shall automatically extend the delivery date for a period equal to the duration of such force majeure event; and (ii) any warranty period affected by a force majeure shall likewise be extended for a period of time equal to the duration of such force majeure event. This clause does not extend to suspend the payment obligations of the Customer.`
434
+ ),
435
+ emptyLine(),
436
+ subheading("Notices."),
437
+ bodyText(
438
+ `Any notice required or permitted by this Agreement shall be in writing and shall be sent by any means reasonably used to provide the other party with notice such as a softcopy (facsimile, e-mail) or hard copy (mail, overnight carrier or hand delivery). Notice shall be addressed to the other party at the address listed above or at such other address for which such party gives notice is should be aware. Notice shall be deemed to have been given when the hard copy is received or three days after a softcopy and hard copy are sent, whichever is earlier.`
439
+ ),
440
+ emptyLine(),
441
+ subheading("Entire Agreement."),
442
+ bodyText(
443
+ `This Agreement, including its Exhibits, constitutes the entire agreement of the parties with respect to the subject matter hereof, and supersedes all prior or contemporaneous understandings or agreements, whether written or oral. This Agreement may not be modified or altered except by written instrument duly executed by both parties.`
444
+ ),
445
+ emptyLine(),
446
+ subheading("Severability."),
447
+ bodyText(
448
+ `If any provision of this Agreement is found invalid or unenforceable, that provision will be enforced to the maximum extent permissible, and the other provisions of this Agreement will remain in force.`
449
+ ),
450
+ emptyLine(),
451
+ subheading("NO Publicity."),
452
+ bodyText(
453
+ `Unless required by Law, no party will, without the prior written approval of the other party, make any public statement, press release, presentation, or other announcement relating to the existence or terms of this Agreement. Tavant shall have the right to use Customer name and logo for its website and sales collateral referencing it as a customer.`
454
+ ),
455
+ ];
456
+ },
457
+
458
+ signatures(data) {
459
+ return [
460
+ heading("SIGNATURES"),
461
+ bodyText("IN WITNESS WHEREOF, the parties hereto have caused this Agreement to be duly executed as of the Effective Date."),
462
+ emptyLine(), emptyLine(),
463
+ bodyText("TAVANT TECHNOLOGIES, INC.", { bold: true }),
464
+ emptyLine(),
465
+ bodyText("By: _________________________________"),
466
+ bodyText(`Name: ${data.tavant_signatory || "_______________________"}`),
467
+ bodyText(`Title: ${data.tavant_title || "_______________________"}`),
468
+ bodyText("Date: _______________________"),
469
+ emptyLine(), emptyLine(),
470
+ bodyText(data.customer_name || "CUSTOMER", { bold: true }),
471
+ emptyLine(),
472
+ bodyText("By: _________________________________"),
473
+ bodyText(`Name: ${data.customer_signatory || "_______________________"}`),
474
+ bodyText(`Title: ${data.customer_title || "_______________________"}`),
475
+ bodyText("Date: _______________________"),
476
+ ];
477
+ },
478
+ };
479
+
480
+ module.exports = sectionBuilders;