@project-ava-supernova/core 0.2.71 → 0.2.72

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 (166) hide show
  1. package/dist/agent/agent.d.ts.map +1 -1
  2. package/dist/agent/agent.js +138 -38
  3. package/dist/agent/agent.js.map +1 -1
  4. package/dist/agent/mode-tags.d.ts +72 -0
  5. package/dist/agent/mode-tags.d.ts.map +1 -0
  6. package/dist/agent/mode-tags.js +84 -0
  7. package/dist/agent/mode-tags.js.map +1 -0
  8. package/dist/agent/system-prompt.d.ts +16 -2
  9. package/dist/agent/system-prompt.d.ts.map +1 -1
  10. package/dist/agent/system-prompt.js +133 -24
  11. package/dist/agent/system-prompt.js.map +1 -1
  12. package/dist/brainstorm/brainstorm-store.d.ts +42 -0
  13. package/dist/brainstorm/brainstorm-store.d.ts.map +1 -0
  14. package/dist/brainstorm/brainstorm-store.js +164 -0
  15. package/dist/brainstorm/brainstorm-store.js.map +1 -0
  16. package/dist/brainstorm/types.d.ts +64 -0
  17. package/dist/brainstorm/types.d.ts.map +1 -0
  18. package/dist/brainstorm/types.js +20 -0
  19. package/dist/brainstorm/types.js.map +1 -0
  20. package/dist/config/project.d.ts.map +1 -1
  21. package/dist/config/project.js +3 -1
  22. package/dist/config/project.js.map +1 -1
  23. package/dist/config/schema.d.ts +13 -0
  24. package/dist/config/schema.d.ts.map +1 -1
  25. package/dist/config/schema.js.map +1 -1
  26. package/dist/dataset/capture.d.ts.map +1 -1
  27. package/dist/dataset/capture.js +6 -14
  28. package/dist/dataset/capture.js.map +1 -1
  29. package/dist/history/conversation-title.d.ts +5 -4
  30. package/dist/history/conversation-title.d.ts.map +1 -1
  31. package/dist/history/conversation-title.js +6 -19
  32. package/dist/history/conversation-title.js.map +1 -1
  33. package/dist/i18n/locales/ar.d.ts.map +1 -1
  34. package/dist/i18n/locales/ar.js +41 -13
  35. package/dist/i18n/locales/ar.js.map +1 -1
  36. package/dist/i18n/locales/de.d.ts.map +1 -1
  37. package/dist/i18n/locales/de.js +41 -13
  38. package/dist/i18n/locales/de.js.map +1 -1
  39. package/dist/i18n/locales/en.d.ts +38 -10
  40. package/dist/i18n/locales/en.d.ts.map +1 -1
  41. package/dist/i18n/locales/en.js +41 -13
  42. package/dist/i18n/locales/en.js.map +1 -1
  43. package/dist/i18n/locales/es.d.ts.map +1 -1
  44. package/dist/i18n/locales/es.js +41 -13
  45. package/dist/i18n/locales/es.js.map +1 -1
  46. package/dist/i18n/locales/fr.d.ts.map +1 -1
  47. package/dist/i18n/locales/fr.js +41 -13
  48. package/dist/i18n/locales/fr.js.map +1 -1
  49. package/dist/i18n/locales/hi.d.ts.map +1 -1
  50. package/dist/i18n/locales/hi.js +41 -13
  51. package/dist/i18n/locales/hi.js.map +1 -1
  52. package/dist/i18n/locales/id.d.ts.map +1 -1
  53. package/dist/i18n/locales/id.js +41 -13
  54. package/dist/i18n/locales/id.js.map +1 -1
  55. package/dist/i18n/locales/it.d.ts.map +1 -1
  56. package/dist/i18n/locales/it.js +41 -13
  57. package/dist/i18n/locales/it.js.map +1 -1
  58. package/dist/i18n/locales/ja.d.ts.map +1 -1
  59. package/dist/i18n/locales/ja.js +41 -13
  60. package/dist/i18n/locales/ja.js.map +1 -1
  61. package/dist/i18n/locales/ko.d.ts.map +1 -1
  62. package/dist/i18n/locales/ko.js +41 -13
  63. package/dist/i18n/locales/ko.js.map +1 -1
  64. package/dist/i18n/locales/nl.d.ts.map +1 -1
  65. package/dist/i18n/locales/nl.js +41 -13
  66. package/dist/i18n/locales/nl.js.map +1 -1
  67. package/dist/i18n/locales/pl.d.ts.map +1 -1
  68. package/dist/i18n/locales/pl.js +41 -13
  69. package/dist/i18n/locales/pl.js.map +1 -1
  70. package/dist/i18n/locales/pt.d.ts.map +1 -1
  71. package/dist/i18n/locales/pt.js +41 -13
  72. package/dist/i18n/locales/pt.js.map +1 -1
  73. package/dist/i18n/locales/ru.d.ts.map +1 -1
  74. package/dist/i18n/locales/ru.js +41 -13
  75. package/dist/i18n/locales/ru.js.map +1 -1
  76. package/dist/i18n/locales/th.d.ts.map +1 -1
  77. package/dist/i18n/locales/th.js +41 -13
  78. package/dist/i18n/locales/th.js.map +1 -1
  79. package/dist/i18n/locales/tr.d.ts.map +1 -1
  80. package/dist/i18n/locales/tr.js +41 -13
  81. package/dist/i18n/locales/tr.js.map +1 -1
  82. package/dist/i18n/locales/uk.d.ts.map +1 -1
  83. package/dist/i18n/locales/uk.js +41 -13
  84. package/dist/i18n/locales/uk.js.map +1 -1
  85. package/dist/i18n/locales/vi.d.ts.map +1 -1
  86. package/dist/i18n/locales/vi.js +41 -13
  87. package/dist/i18n/locales/vi.js.map +1 -1
  88. package/dist/i18n/locales/zh-CN.d.ts.map +1 -1
  89. package/dist/i18n/locales/zh-CN.js +41 -13
  90. package/dist/i18n/locales/zh-CN.js.map +1 -1
  91. package/dist/i18n/locales/zh-TW.d.ts.map +1 -1
  92. package/dist/i18n/locales/zh-TW.js +41 -13
  93. package/dist/i18n/locales/zh-TW.js.map +1 -1
  94. package/dist/index.d.ts +5 -1
  95. package/dist/index.d.ts.map +1 -1
  96. package/dist/index.js +7 -1
  97. package/dist/index.js.map +1 -1
  98. package/dist/journal/journal-manager.d.ts +22 -1
  99. package/dist/journal/journal-manager.d.ts.map +1 -1
  100. package/dist/journal/journal-manager.js +47 -2
  101. package/dist/journal/journal-manager.js.map +1 -1
  102. package/dist/personas/conductor.d.ts +11 -0
  103. package/dist/personas/conductor.d.ts.map +1 -1
  104. package/dist/personas/conductor.js +56 -12
  105. package/dist/personas/conductor.js.map +1 -1
  106. package/dist/personas/definitions.d.ts +15 -4
  107. package/dist/personas/definitions.d.ts.map +1 -1
  108. package/dist/personas/definitions.js +184 -19
  109. package/dist/personas/definitions.js.map +1 -1
  110. package/dist/personas/types.d.ts +1 -1
  111. package/dist/personas/types.d.ts.map +1 -1
  112. package/dist/projects/project-data.d.ts +73 -0
  113. package/dist/projects/project-data.d.ts.map +1 -0
  114. package/dist/projects/project-data.js +126 -0
  115. package/dist/projects/project-data.js.map +1 -0
  116. package/dist/projects/projects-home.d.ts +33 -0
  117. package/dist/projects/projects-home.d.ts.map +1 -0
  118. package/dist/projects/projects-home.js +43 -0
  119. package/dist/projects/projects-home.js.map +1 -0
  120. package/dist/projects/storage-categories.d.ts +45 -0
  121. package/dist/projects/storage-categories.d.ts.map +1 -0
  122. package/dist/projects/storage-categories.js +86 -0
  123. package/dist/projects/storage-categories.js.map +1 -0
  124. package/dist/tools/authoring/export-document.d.ts +45 -0
  125. package/dist/tools/authoring/export-document.d.ts.map +1 -0
  126. package/dist/tools/authoring/export-document.js +132 -0
  127. package/dist/tools/authoring/export-document.js.map +1 -0
  128. package/dist/tools/authoring/export-formats.d.ts +37 -0
  129. package/dist/tools/authoring/export-formats.d.ts.map +1 -0
  130. package/dist/tools/authoring/export-formats.js +50 -0
  131. package/dist/tools/authoring/export-formats.js.map +1 -0
  132. package/dist/tools/authoring/index.d.ts +6 -1
  133. package/dist/tools/authoring/index.d.ts.map +1 -1
  134. package/dist/tools/authoring/index.js +9 -0
  135. package/dist/tools/authoring/index.js.map +1 -1
  136. package/dist/tools/authoring/render-odf.d.ts +22 -0
  137. package/dist/tools/authoring/render-odf.d.ts.map +1 -0
  138. package/dist/tools/authoring/render-odf.js +604 -0
  139. package/dist/tools/authoring/render-odf.js.map +1 -0
  140. package/dist/tools/authoring/zip.d.ts +33 -0
  141. package/dist/tools/authoring/zip.d.ts.map +1 -0
  142. package/dist/tools/authoring/zip.js +125 -0
  143. package/dist/tools/authoring/zip.js.map +1 -0
  144. package/dist/tools/brainstorm-session.d.ts +29 -0
  145. package/dist/tools/brainstorm-session.d.ts.map +1 -0
  146. package/dist/tools/brainstorm-session.js +184 -0
  147. package/dist/tools/brainstorm-session.js.map +1 -0
  148. package/dist/tools/document-author.d.ts +1 -1
  149. package/dist/tools/document-author.d.ts.map +1 -1
  150. package/dist/tools/document-author.js +22 -5
  151. package/dist/tools/document-author.js.map +1 -1
  152. package/dist/tools/security.d.ts +25 -0
  153. package/dist/tools/security.d.ts.map +1 -1
  154. package/dist/tools/security.js +35 -0
  155. package/dist/tools/security.js.map +1 -1
  156. package/dist/tools/tool-registry.d.ts.map +1 -1
  157. package/dist/tools/tool-registry.js +4 -0
  158. package/dist/tools/tool-registry.js.map +1 -1
  159. package/dist/tools/verification-trust.d.ts +2 -2
  160. package/dist/tools/verification-trust.d.ts.map +1 -1
  161. package/dist/tools/verification-trust.js +11 -13
  162. package/dist/tools/verification-trust.js.map +1 -1
  163. package/dist/tools/write-video-post.d.ts.map +1 -1
  164. package/dist/tools/write-video-post.js +89 -13
  165. package/dist/tools/write-video-post.js.map +1 -1
  166. package/package.json +26 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"render-odf.js","sourceRoot":"","sources":["../../../src/tools/authoring/render-odf.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEhD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EACL,kBAAkB,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,EACtF,iBAAiB,EAAE,qBAAqB,EAAE,cAAc,EAAE,cAAc,EAAE,YAAY,GAEvF,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAiB,MAAM,UAAU,CAAC;AASlD,MAAM,SAAS,GAAG,UAAU,CAAC;AAC7B;iEACiE;AACjE,MAAM,gBAAgB,GAAG,IAAI,CAAC;AAE9B,gFAAgF;AAEhF,SAAS,GAAG,CAAC,CAAS;IACpB,OAAO,CAAC;SACL,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;SACtB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC;SACvB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AAC7B,CAAC;AAED;;;;GAIG;AACH,SAAS,QAAQ,CAAC,CAAS;IACzB,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC;QACpB,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAChB,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;YAAC,GAAG,IAAI,aAAa,CAAC;YAAC,CAAC,EAAE,CAAC;YAAC,SAAS;QAAC,CAAC;QACzD,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;YAAC,GAAG,IAAI,oBAAoB,CAAC;YAAC,CAAC,EAAE,CAAC;YAAC,SAAS;QAAC,CAAC;QAChE,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YACf,IAAI,CAAC,GAAG,CAAC,CAAC;YACV,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG;gBAAE,CAAC,EAAE,CAAC;YAC7B,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,oBAAoB,CAAC,GAAG,CAAC,KAAK,CAAC;YACtD,CAAC,IAAI,CAAC,CAAC;YACP,SAAS;QACX,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG;YAAE,CAAC,EAAE,CAAC;QAC3E,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC1B,CAAC,GAAG,CAAC,CAAC;IACR,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,GAAG,CAAC,KAAa;IACxB,OAAO,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC;AACrD,CAAC;AAoBD,SAAS,SAAS,CAAC,KAAe;IAChC,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,MAAM;QAAE,OAAO,cAAc,CAAC;IACtD,IAAI,KAAK,CAAC,IAAI;QAAE,OAAO,QAAQ,CAAC;IAChC,IAAI,KAAK,CAAC,MAAM;QAAE,OAAO,UAAU,CAAC;IACpC,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,SAAS,CAAC,GAAQ,EAAE,OAAiB,EAAE,QAAkB,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE;IAC9F,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;QAC3B,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;YAClB,KAAK,MAAM,CAAC,CAAC,CAAC;gBACZ,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;gBAC/B,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACjC,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,+BAA+B,KAAK,KAAK,IAAI,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC;gBAClF,MAAM;YACR,CAAC;YACD,KAAK,QAAQ;gBACX,GAAG,IAAI,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC9D,MAAM;YACR,KAAK,IAAI;gBACP,GAAG,IAAI,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;gBAChE,MAAM;YACR,KAAK,MAAM;gBACT,GAAG,IAAI,uCAAuC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC;gBAChF,MAAM;YACR,KAAK,MAAM;gBACT,GAAG,IAAI,2CAA2C,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;sBAChE,uCAAuC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,uBAAuB,CAAC;gBACtG,MAAM;YACR,KAAK,aAAa;gBAChB,GAAG,IAAI,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;gBACjC,MAAM;YACR,KAAK,OAAO;gBACV,GAAG,IAAI,oBAAoB,CAAC;gBAC5B,MAAM;QACV,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;4EAC4E;AAC5E,SAAS,WAAW,CAAC,GAAQ,EAAE,EAAU;IACvC,MAAM,CAAC,GAAG,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACtC,IAAI,CAAC,CAAC;QAAE,OAAO,EAAE,CAAC;IAClB,MAAM,IAAI,GAAG,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/C,OAAO,0BAA0B,CAAC,+BAA+B;UAC7D,uBAAuB,CAAC,uBAAuB;UAC/C,sDAAsD,KAAK,4BAA4B;UACvF,cAAc,CAAC;AACrB,CAAC;AAED,gFAAgF;AAEhF,KAAK,UAAU,SAAS,CAAC,GAAQ,EAAE,MAAe,EAAE,KAAe;IACjE,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,KAAK,MAAM,KAAK,IAAI,MAAM;QAAE,GAAG,IAAI,MAAM,QAAQ,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IACrE,OAAO,GAAG,CAAC;AACb,CAAC;AAED,KAAK,UAAU,QAAQ,CAAC,GAAQ,EAAE,KAAY,EAAE,KAAe;IAC7D,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,SAAS;YACZ,OAAO,uCAAuC,KAAK,CAAC,KAAK,yBAAyB,KAAK,CAAC,KAAK,IAAI;kBAC7F,GAAG,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC;QAElD,KAAK,WAAW;YACd,OAAO,sCAAsC,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC;QAExF,KAAK,MAAM;YACT,OAAO,MAAM,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAE/D,KAAK,OAAO;YACV,OAAO,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QAE/D,KAAK,YAAY,CAAC,CAAC,CAAC;YAClB,yEAAyE;YACzE,kDAAkD;YAClD,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YACxD,OAAO,KAAK,CAAC,OAAO,CAAC,6BAA6B,EAAE,8BAA8B,CAAC,CAAC;QACtF,CAAC;QAED,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,MAAM,OAAO,GAAG,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;YACvE,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,cAAc,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC;YAC3D,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YACxD,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,6BAA6B,EAAE,8BAA8B,OAAO,GAAG,CAAC,CAAC;YACtG,MAAM,IAAI,GAAG,KAAK;gBAChB,CAAC,CAAC,2CAA2C,OAAO,KAAK,QAAQ,CAAC,KAAK,CAAC,WAAW;gBACnF,CAAC,CAAC,EAAE,CAAC;YACP,OAAO,IAAI,GAAG,MAAM,CAAC;QACvB,CAAC;QAED,KAAK,OAAO;YACV,OAAO,MAAM,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAEpC,KAAK,MAAM;YACT,yEAAyE;YACzE,qEAAqE;YACrE,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;iBAC1B,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,oCAAoC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC;iBACxF,IAAI,CAAC,EAAE,CAAC,CAAC;QAEd,KAAK,WAAW;YACd,OAAO,yCAAyC,CAAC;QAEnD,KAAK,IAAI;YACP,OAAO,kCAAkC,CAAC;QAE5C,KAAK,KAAK;YACR,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,OAAO,CAAC,GAAQ,EAAE,OAAgB,EAAE,KAAiB,EAAE,KAAe;IACnF,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC;IAC/C,IAAI,GAAG,GAAG,+BAA+B,KAAK,IAAI,CAAC;IACnD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,GAAG,IAAI,kBAAkB,CAAC;QAC1B,GAAG,IAAI,wCAAwC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;QACvF,IAAI,IAAI,CAAC,QAAQ,EAAE,MAAM;YAAE,GAAG,IAAI,MAAM,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAC7E,GAAG,IAAI,mBAAmB,CAAC;IAC7B,CAAC;IACD,OAAO,GAAG,GAAG,cAAc,CAAC;AAC9B,CAAC;AAED,SAAS,aAAa,CAAC,KAAwB;IAC7C,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC;AAC5F,CAAC;AAED,SAAS,QAAQ,CAAC,GAAQ,EAAE,OAAmB,EAAE,IAAkB,EAAE,KAAe;IAClF,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IACvE,MAAM,IAAI,GAAG,QAAQ,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC;IAExC,IAAI,GAAG,GAAG,4BAA4B,IAAI,8BAA8B,CAAC;IACzE,GAAG,IAAI,gFAAgF,IAAI,KAAK,CAAC;IAEjG,MAAM,IAAI,GAAG,CAAC,OAA6B,EAAE,CAAS,EAAE,MAAe,EAAE,EAAE;QACzE,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;QAC7C,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/D,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACpD,OAAO,uCAAuC,KAAK,+BAA+B;cAC9E,4BAA4B,IAAI,KAAK,IAAI,8BAA8B,CAAC;IAC9E,CAAC,CAAC;IAEF,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,GAAG,IAAI,4CAA4C,CAAC;QACpD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE;YAAE,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;QAChE,GAAG,IAAI,8CAA8C,CAAC;IACxD,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,GAAG,IAAI,mBAAmB,CAAC;QAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE;YAAE,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;QAC7D,GAAG,IAAI,oBAAoB,CAAC;IAC9B,CAAC;IACD,OAAO,GAAG,GAAG,gBAAgB,CAAC;AAChC,CAAC;AAED,KAAK,UAAU,QAAQ,CAAC,GAAQ,EAAE,KAAwC;IACxE,IAAI,IAAY,CAAC;IACjB,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;QACxF,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAAC,MAAM,CAAC;QACP,yEAAyE;QACzE,6CAA6C;QAC7C,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC;QACnC,OAAO,6CAA6C,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC;IAChF,CAAC;IAED,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IAChC,IAAI,CAAC,IAAI;QAAE,OAAO,6CAA6C,QAAQ,CAAC,KAAK,CAAC,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC;IAE5G,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,IAAI,EAAE,CAAC;IACvE,MAAM,IAAI,GAAG,iBAAiB,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;IACrE,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAExC,uEAAuE;IACvE,iEAAiE;IACjE,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC;IAC1C,IAAI,OAAO,GAAG,CAAC,OAAO,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC;IACpC,IAAI,QAAQ,GAAG,OAAO,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;IACpD,IAAI,OAAO,GAAG,gBAAgB,EAAE,CAAC;QAC/B,QAAQ,IAAI,gBAAgB,GAAG,OAAO,CAAC;QACvC,OAAO,GAAG,gBAAgB,CAAC;IAC7B,CAAC;IAED,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,cAAc,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1E,OAAO,oCAAoC;UACvC,0DAA0D,GAAG,CAAC,QAAQ,CAAC,MAAM,IAAI;UACjF,yCAAyC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,mBAAmB,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,uBAAuB;UACxH,2BAA2B,GAAG,CAAC,IAAI,CAAC,mEAAmE;UACvG,GAAG,KAAK,wBAAwB,CAAC;AACvC,CAAC;AAED;;;;GAIG;AACH,SAAS,MAAM,CAAC,KAAe;IAC7B,IAAI,SAAS,GAAG,EAAE,CAAC;IACnB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;QACxC,SAAS,IAAI,6DAA6D,KAAK,kCAAkC,KAAK,IAAI;cACtH,qDAAqD;cACrD,uEAAuE;cACvE,wEAAwE,CAAC;IAC/E,CAAC;IAED,IAAI,IAAI,GAAG,8CAA8C;UACrD,oFAAoF,CAAC;IACzF,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QACjC,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS;YAAE,SAAS;QACvC,IAAI,IAAI,wCAAwC,KAAK,CAAC,KAAK,KAAK,GAAG,CAAC,iBAAiB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC;IACnH,CAAC;IAED,OAAO,+FAA+F;UAClG,qFAAqF;UACrF,uGAAuG;UACvG,SAAS;UACT,iCAAiC;UACjC,oBAAoB,IAAI,oBAAoB;UAC5C,0BAA0B,CAAC;AACjC,CAAC;AAED,gFAAgF;AAEhF,MAAM,UAAU,GAAG;IACjB,iEAAiE;IACjE,+DAA+D;IAC/D,6DAA6D;IAC7D,+DAA+D;IAC/D,gEAAgE;IAChE,wEAAwE;IACxE,4CAA4C;IAC5C,sEAAsE;IACtE,oEAAoE;IACpE,6DAA6D;IAC7D,6CAA6C;CAC9C,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAEZ,SAAS,SAAS,CAAC,KAAY;IAC7B,OAAO,0BAA0B;UAC7B,gCAAgC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,sBAAsB,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK;UACzF,gCAAgC,SAAS,sBAAsB,SAAS,iEAAiE;UACzI,2BAA2B,CAAC;AAClC,CAAC;AAED,0EAA0E;AAC1E,SAAS,SAAS,CAAC,KAAY;IAC7B,MAAM,IAAI,GAAG,oBAAoB,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAmB,iBAAiB,iBAAiB,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC;IAE7H,MAAM,OAAO,GAAG,CAAC,IAAY,EAAE,KAAa,EAAE,IAAY,EAAE,EAAE,CAC5D,4BAA4B,IAAI,8FAA8F,KAAK,IAAI;UACrI,8CAA8C,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,2DAA2D;UACrI,2CAA2C,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAmB,IAAI,uCAAuC,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK;UACpJ,gBAAgB,CAAC;IAErB,OAAO,wCAAwC;UAC3C,2BAA2B,UAAU,wBAAwB;UAC7D,SAAS,CAAC,KAAK,CAAC;UAChB,iBAAiB;UACjB,iFAAiF;UACjF,+EAA+E;UAC/E,0BAA0B,IAAI,kBAAkB;UAEhD,8FAA8F;UAC9F,gFAAgF;UAChF,2CAA2C,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAmB,kBAAkB,uCAAuC,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,mBAAmB;UAEhL,iGAAiG;UACjG,+EAA+E;UAC/E,wCAAwC,qBAAqB,wCAAwC,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,mBAAmB;UAEhJ,OAAO,CAAC,cAAc,EAAE,CAAC,EAAE,eAAe,CAAC;UAC3C,OAAO,CAAC,cAAc,EAAE,CAAC,EAAE,eAAe,CAAC;UAC3C,OAAO,CAAC,cAAc,EAAE,CAAC,EAAE,eAAe,CAAC;UAC3C,OAAO,CAAC,cAAc,EAAE,CAAC,EAAE,eAAe,CAAC;UAE3C,mGAAmG;UACnG,gIAAgI,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,yEAAyE;UACtO,2DAA2D,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,mBAAmB;UAEtG,6GAA6G;UAC7G,4EAA4E;UAC5E,2CAA2C,SAAS,sCAAsC;UAE1F,iGAAiG;UACjG,sDAAsD;UACtD,uDAAuD,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,mBAAmB;UAElG,4GAA4G;UAC5G,+EAA+E;UAC/E,wCAAwC,eAAe,uCAAuC,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,mBAAmB;UACxI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACvB,wCAAwC,CAAC,gEAAgE;cACvG,+CAA+C,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,+BAA+B;cAC3F,mJAAmJ;cACnJ,6CAA6C,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;UAEzD,kBAAkB;UAClB,2BAA2B;UAC3B,oEAAoE;UACpE,sFAAsF;UACtF,mHAAmH;UACnH,4BAA4B;UAC5B,sHAAsH;UACtH,2BAA2B,CAAC;AAClC,CAAC;AAED,+EAA+E;AAC/E,SAAS,eAAe,CAAC,KAAY;IACnC,MAAM,IAAI,GAAG,CAAC,IAAY,EAAE,KAAa,EAAE,EAAE,CAC3C,4BAA4B,IAAI,gDAAgD,KAAK,kBAAkB,CAAC;IAE1G,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CACnE,sCAAsC,OAAO,gEAAgE;UAC3G,oDAAoD,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,+CAA+C;UAC9G,6BAA6B,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,yEAAyE;UAChH,gBAAgB;UAChB,2CAA2C,OAAO,gEAAgE;UAClH,oDAAoD,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,8FAA8F;UAC7J,6BAA6B,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,oGAAoG;UAC3I,0DAA0D,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEtG,OAAO,IAAI,CAAC,QAAQ,EAAE,uBAAuB,CAAC;UAC1C,IAAI,CAAC,UAAU,EAAE,wBAAwB,CAAC;UAC1C,IAAI,CAAC,cAAc,EAAE,8CAA8C,CAAC;UACpE,IAAI,CAAC,QAAQ,EAAE,oBAAoB,SAAS,sDAAsD,CAAC;UACnG,IAAI,CAAC,QAAQ,EAAE,aAAa,GAAG,CAAC,cAAc,CAAC,wEAAwE,CAAC;UAExH,2GAA2G;UAC3G,4HAA4H;UAE5H,mGAAmG;UACnG,sEAAsE;UAEtE,oGAAoG;UACpG,oEAAoE;UAEpE,6FAA6F;UAC7F,mMAAmM;UAEnM,gGAAgG;UAChG,oEAAoE;UACpE,uGAAuG;UACvG,+GAA+G,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,mBAAmB;UAC1J,4DAA4D;UAC5D,mHAAmH;QAErH,oEAAoE;UAClE,wDAAwD;UACxD,qIAAqI;UACrI,+DAA+D;UAC/D,4EAA4E;UAC5E,8DAA8D;UAC9D,qDAAqD,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,uEAAuE;UACzJ,8DAA8D;UAC9D,kGAAkG;UAClG,mGAAmG;UACnG,8GAA8G,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,mBAAmB;UACxJ,CAAC,cAAc,EAAE,qBAAqB,EAAE,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YACxE,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACtC,OAAO,4BAA4B,IAAI,gEAAgE;kBACnG,8CAA8C,KAAK,0CAA0C,CAAC;QACpG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;UAET,QAAQ;QAEV,qDAAqD;UACnD,SAAS,CAAC,UAAU,EAAE,KAAK,CAAC;UAC5B,SAAS,CAAC,SAAS,EAAE,IAAI,CAAC;UAC1B,6DAA6D,CAAC;AACpE,CAAC;AAED,SAAS,SAAS,CAAC,IAAY,EAAE,OAAgB;IAC/C,IAAI,GAAG,GAAG,gCAAgC,IAAI,IAAI,CAAC;IACnD,MAAM,OAAO,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IACrC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;QACxC,MAAM,MAAM,GAAG,yFAAyF;cACpG,8GAA8G,KAAK,GAAG,IAAI,OAAO;cACjI,gCAAgC,CAAC;QACrC,GAAG,IAAI,OAAO;YACZ,CAAC,CAAC,6CAA6C,KAAK,+CAA+C,MAAM,iCAAiC;YAC1I,CAAC,CAAC,6CAA6C,KAAK,uBAAuB,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,MAAM,iCAAiC,CAAC;IAC9I,CAAC;IACD,OAAO,GAAG,GAAG,oBAAoB,CAAC;AACpC,CAAC;AAED,gFAAgF;AAEhF,SAAS,OAAO,CAAC,KAAe;IAC9B,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC;IACrB,OAAO,wCAAwC;UAC3C,yBAAyB,UAAU,qCAAqC;UACxE,gDAAgD;UAChD,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;UACvD,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;UACjE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,yBAAyB,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,sCAAsC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;UAC1H,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;UACnD,uCAAuC,CAAC;AAC9C,CAAC;AAED,SAAS,WAAW,CAAC,QAAgB,EAAE,QAA0C;IAC/E,MAAM,KAAK,GAAG,CAAC,IAAY,EAAE,IAAY,EAAE,EAAE,CAC3C,4CAA4C,GAAG,CAAC,IAAI,CAAC,0BAA0B,IAAI,KAAK,CAAC;IAC3F,OAAO,wCAAwC;UAC3C,gHAAgH;UAChH,2FAA2F,QAAQ,KAAK;UACxG,KAAK,CAAC,aAAa,EAAE,UAAU,CAAC;UAChC,KAAK,CAAC,YAAY,EAAE,UAAU,CAAC;UAC/B,KAAK,CAAC,UAAU,EAAE,UAAU,CAAC;UAC7B,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;UACnD,sBAAsB,CAAC;AAC7B,CAAC;AAED,SAAS,IAAI,CACX,QAAgB,EAChB,OAAe,EACf,MAAc,EACd,IAAY,EACZ,QAAwD,EACxD,QAAe;IAEf,MAAM,OAAO,GAAe;QAC1B,qEAAqE;QACrE,qDAAqD;QACrD,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE;QACvE,EAAE,IAAI,EAAE,uBAAuB,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,EAAE;QAC7F,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE;QAC3D,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE;QACzD,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE;QACrD,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;KACzD,CAAC;IACF,OAAO,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AACpC,CAAC;AAED,SAAS,MAAM,CAAC,KAAe,EAAE,IAAsB;IACrD,MAAM,eAAe,GAAG,IAAI,GAAG,EAAkB,CAAC;IAClD,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,KAAK,MAAM,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC;QAAE,eAAe,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;IACvF,OAAO;QACL,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;QACrC,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,eAAe;QACf,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,IAAI,EAAE;QACrC,QAAQ,EAAE,EAAE;QACZ,UAAU,EAAE,CAAC;KACd,CAAC;AACJ,CAAC;AAED,gFAAgF;AAEhF,MAAM,CAAC,MAAM,YAAY,GAAG,yCAAyC,CAAC;AAEtE,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,KAAe,EAAE,OAAyB,EAAE;IAC1E,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAChC,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC;IAEtB,IAAI,IAAI,GAAG,EAAE,CAAC;IACd,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK;QAAE,IAAI,IAAI,mCAAmC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;IACvG,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ;QAAE,IAAI,IAAI,sCAAsC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;IAChH,MAAM,MAAM,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChF,IAAI,MAAM;QAAE,IAAI,IAAI,sCAAsC,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC;IAEtF,6EAA6E;IAC7E,sDAAsD;IACtD,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC;QAAE,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;IAEzF,IAAI,IAAI,MAAM,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAElD,MAAM,OAAO,GAAG,wCAAwC;UACpD,4BAA4B,UAAU,wBAAwB;UAC9D,SAAS,CAAC,KAAK,CAAC;UAChB,4BAA4B,eAAe,CAAC,KAAK,CAAC,4BAA4B;UAC9E,6BAA6B,IAAI,8BAA8B;UAC/D,4BAA4B,CAAC;IAEjC,OAAO,IAAI,CAAC,YAAY,EAAE,OAAO,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;AACpG,CAAC;AAED,gFAAgF;AAEhF,MAAM,CAAC,MAAM,YAAY,GAAG,gDAAgD,CAAC;AAE7E,4EAA4E;AAC5E,SAAS,SAAS,CAAC,GAAW,EAAE,IAAiB;IAC/C,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC;IAClG,IAAI,SAAS,GAAG,IAAI,CAAC;IACrB,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;QAAE,SAAS,GAAG,GAAG,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;IACvE,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC;IAClC,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;GAIG;AACH,SAAS,YAAY,CAAC,IAAY;IAChC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAC9C,IAAI,CAAC,OAAO,IAAI,CAAC,yCAAyC,CAAC,IAAI,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IACtF,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IAC9B,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AAC/C,CAAC;AAED,SAAS,SAAS,CAAC,GAAQ,EAAE,OAA6B,EAAE,MAAe;IACzE,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACxD,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;IAC7C,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAChD,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QACjB,OAAO,uFAAuF,GAAG,IAAI;cACjG,WAAW,QAAQ,CAAC,KAAK,CAAC,8BAA8B,CAAC;IAC/D,CAAC;IACD,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACpD,OAAO,uCAAuC,KAAK,+BAA+B;UAC9E,WAAW,IAAI,8BAA8B,CAAC;AACpD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,KAAe,EAAE,OAAyB,EAAE;IAC1E,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAChC,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC;IACtB,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAE/B,2EAA2E;IAC3E,2DAA2D;IAC3D,IAAI,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;IACrC,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,IAAI,KAAK,GAAG,CAAC,CAAC;IAEd,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QACjC,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAAC,OAAO,GAAG,iBAAiB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAAC,SAAS;QAAC,CAAC;QACvF,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO;YAAE,SAAS;QACrC,KAAK,EAAE,CAAC;QAER,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QACnF,IAAI,IAAI,GAAG,EAAE,CAAC;QACd,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACzB,IAAI,IAAI,mBAAmB,CAAC;YAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE;gBAAE,IAAI,IAAI,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;YAC9E,IAAI,IAAI,oBAAoB,CAAC;QAC/B,CAAC;QACD,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YAC7B,IAAI,IAAI,mBAAmB,CAAC;YAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE;gBAAE,IAAI,IAAI,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;YACrE,IAAI,IAAI,oBAAoB,CAAC;QAC/B,CAAC;QAED,MAAM,IAAI,4BAA4B,GAAG,CAAC,SAAS,CAAC,OAAO,IAAI,SAAS,KAAK,EAAE,EAAE,IAAI,CAAC,CAAC,gCAAgC;cACnH,kFAAkF,IAAI,6CAA6C;cACnI,IAAI,GAAG,gBAAgB,CAAC;IAC9B,CAAC;IAED,6EAA6E;IAC7E,gEAAgE;IAChE,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;QAChB,IAAI,IAAI,GAAG,EAAE,CAAC;QACd,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACjC,MAAM,IAAI,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;YACnC,IAAI,IAAI,KAAK,IAAI;gBAAE,SAAS;YAC5B,IAAI,IAAI,oBAAoB,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,oBAAoB,CAAC;QACxI,CAAC;QACD,MAAM,IAAI,4BAA4B,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,UAAU,EAAE,IAAI,CAAC,CAAC,gCAAgC;cACtH,2FAA2F;cAC3F,IAAI,GAAG,gBAAgB,CAAC;IAC9B,CAAC;IAED,MAAM,OAAO,GAAG,wCAAwC;UACpD,4BAA4B,UAAU,wBAAwB;UAC9D,SAAS,CAAC,KAAK,CAAC;UAChB,2BAA2B;UAC3B,eAAe,CAAC,KAAK,CAAC;UACtB,sHAAsH;UACtH,wIAAwI;UACxI,4HAA4H;UAC5H,4BAA4B;UAC5B,oCAAoC,MAAM,qCAAqC;UAC/E,4BAA4B,CAAC;IAEjC,OAAO,IAAI,CAAC,YAAY,EAAE,OAAO,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;AACpG,CAAC;AAED,6EAA6E;AAC7E,SAAS,cAAc,CAAC,KAAY;IAClC,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,SAAS,CAAC;QACf,KAAK,WAAW;YACd,OAAO,iBAAiB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC1C,KAAK,MAAM;YACT,OAAO,KAAK,CAAC,IAAI,CAAC;QACpB,KAAK,MAAM;YACT,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzE,KAAK,YAAY,CAAC;QAClB,KAAK,SAAS;YACZ,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC9E,KAAK,OAAO;YACV,OAAO,KAAK,CAAC,GAAG,IAAI,IAAI,CAAC;QAC3B;YACE,OAAO,IAAI,CAAC;IAChB,CAAC;AACH,CAAC"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Minimal ZIP writer — enough of the format to build ODF packages.
3
+ *
4
+ * An ODF file is a zip with a strict first entry, and every zip library on npm
5
+ * is either a heavy peer or arrives with its own async model. Deflate is in
6
+ * Node's standard library and the container is a few hundred bytes of header
7
+ * arithmetic, so ODF export carries no dependency at all. That matters more
8
+ * than it looks: docx and pdf are optional peers that can be missing, and the
9
+ * open format should be the one that always works.
10
+ *
11
+ * Scope is deliberately narrow — no zip64, no encryption, no directory
12
+ * entries. ODF packages are a handful of small files, so none of it applies.
13
+ */
14
+ export interface ZipEntry {
15
+ /** Path inside the archive, '/'-separated. */
16
+ name: string;
17
+ data: Buffer;
18
+ /**
19
+ * Store without compressing. ODF requires exactly this for `mimetype`, so
20
+ * that a reader can identify the file from the first bytes of the stream.
21
+ */
22
+ store?: boolean;
23
+ }
24
+ export declare function crc32(buf: Buffer): number;
25
+ /**
26
+ * Build a zip archive. Entries are written in the order given — which is the
27
+ * whole reason this takes an array rather than a map, since ODF's `mimetype`
28
+ * must come first.
29
+ *
30
+ * `modified` defaults to now; pass a fixed date for byte-reproducible output.
31
+ */
32
+ export declare function zipSync(entries: ZipEntry[], modified?: Date): Buffer;
33
+ //# sourceMappingURL=zip.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zip.d.ts","sourceRoot":"","sources":["../../../src/tools/authoring/zip.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,MAAM,WAAW,QAAQ;IACvB,8CAA8C;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAkBD,wBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAKzC;AAiBD;;;;;;GAMG;AACH,wBAAgB,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,QAAQ,GAAE,IAAiB,GAAG,MAAM,CA2EhF"}
@@ -0,0 +1,125 @@
1
+ /**
2
+ * Minimal ZIP writer — enough of the format to build ODF packages.
3
+ *
4
+ * An ODF file is a zip with a strict first entry, and every zip library on npm
5
+ * is either a heavy peer or arrives with its own async model. Deflate is in
6
+ * Node's standard library and the container is a few hundred bytes of header
7
+ * arithmetic, so ODF export carries no dependency at all. That matters more
8
+ * than it looks: docx and pdf are optional peers that can be missing, and the
9
+ * open format should be the one that always works.
10
+ *
11
+ * Scope is deliberately narrow — no zip64, no encryption, no directory
12
+ * entries. ODF packages are a handful of small files, so none of it applies.
13
+ */
14
+ import { deflateRawSync } from 'node:zlib';
15
+ // ── CRC-32 ───────────────────────────────────────────────────────────────────
16
+ let CRC_TABLE = null;
17
+ function crcTable() {
18
+ if (CRC_TABLE)
19
+ return CRC_TABLE;
20
+ const table = new Uint32Array(256);
21
+ for (let i = 0; i < 256; i++) {
22
+ let c = i;
23
+ for (let k = 0; k < 8; k++)
24
+ c = c & 1 ? 0xedb88320 ^ (c >>> 1) : c >>> 1;
25
+ table[i] = c >>> 0;
26
+ }
27
+ CRC_TABLE = table;
28
+ return table;
29
+ }
30
+ export function crc32(buf) {
31
+ const table = crcTable();
32
+ let c = 0xffffffff;
33
+ for (let i = 0; i < buf.length; i++)
34
+ c = table[(c ^ buf[i]) & 0xff] ^ (c >>> 8);
35
+ return (c ^ 0xffffffff) >>> 0;
36
+ }
37
+ // ── DOS timestamps ───────────────────────────────────────────────────────────
38
+ /** Zip stores mtime as two 16-bit DOS fields; the epoch is 1980 and seconds
39
+ * have 2-second resolution. Anything earlier clamps rather than underflows. */
40
+ function dosDateTime(d) {
41
+ const year = d.getFullYear();
42
+ if (year < 1980)
43
+ return { time: 0, date: (1 << 5) | 1 };
44
+ return {
45
+ time: (d.getHours() << 11) | (d.getMinutes() << 5) | (d.getSeconds() >> 1),
46
+ date: ((year - 1980) << 9) | ((d.getMonth() + 1) << 5) | d.getDate(),
47
+ };
48
+ }
49
+ // ── Writer ───────────────────────────────────────────────────────────────────
50
+ /**
51
+ * Build a zip archive. Entries are written in the order given — which is the
52
+ * whole reason this takes an array rather than a map, since ODF's `mimetype`
53
+ * must come first.
54
+ *
55
+ * `modified` defaults to now; pass a fixed date for byte-reproducible output.
56
+ */
57
+ export function zipSync(entries, modified = new Date()) {
58
+ const { time, date } = dosDateTime(modified);
59
+ const locals = [];
60
+ const centrals = [];
61
+ let offset = 0;
62
+ for (const entry of entries) {
63
+ const name = Buffer.from(entry.name, 'utf8');
64
+ const raw = entry.data;
65
+ // Compress unless told not to — and keep the compressed form only if it
66
+ // actually won, which for the tiny XML stubs it sometimes does not.
67
+ let method = 0;
68
+ let body = raw;
69
+ if (!entry.store && raw.length > 0) {
70
+ const deflated = deflateRawSync(raw, { level: 9 });
71
+ if (deflated.length < raw.length) {
72
+ method = 8;
73
+ body = deflated;
74
+ }
75
+ }
76
+ const sum = crc32(raw);
77
+ const local = Buffer.alloc(30 + name.length);
78
+ local.writeUInt32LE(0x04034b50, 0);
79
+ local.writeUInt16LE(20, 4); // version needed
80
+ local.writeUInt16LE(0, 6); // flags — names below are ASCII
81
+ local.writeUInt16LE(method, 8);
82
+ local.writeUInt16LE(time, 10);
83
+ local.writeUInt16LE(date, 12);
84
+ local.writeUInt32LE(sum, 14);
85
+ local.writeUInt32LE(body.length, 18);
86
+ local.writeUInt32LE(raw.length, 22);
87
+ local.writeUInt16LE(name.length, 26);
88
+ local.writeUInt16LE(0, 28); // extra field length
89
+ name.copy(local, 30);
90
+ const central = Buffer.alloc(46 + name.length);
91
+ central.writeUInt32LE(0x02014b50, 0);
92
+ central.writeUInt16LE(20, 4); // version made by
93
+ central.writeUInt16LE(20, 6); // version needed
94
+ central.writeUInt16LE(0, 8); // flags
95
+ central.writeUInt16LE(method, 10);
96
+ central.writeUInt16LE(time, 12);
97
+ central.writeUInt16LE(date, 14);
98
+ central.writeUInt32LE(sum, 16);
99
+ central.writeUInt32LE(body.length, 20);
100
+ central.writeUInt32LE(raw.length, 24);
101
+ central.writeUInt16LE(name.length, 28);
102
+ central.writeUInt16LE(0, 30); // extra
103
+ central.writeUInt16LE(0, 32); // comment
104
+ central.writeUInt16LE(0, 34); // disk number
105
+ central.writeUInt16LE(0, 36); // internal attributes
106
+ central.writeUInt32LE(0, 38); // external attributes
107
+ central.writeUInt32LE(offset, 42);
108
+ name.copy(central, 46);
109
+ locals.push(local, body);
110
+ centrals.push(central);
111
+ offset += local.length + body.length;
112
+ }
113
+ const centralDir = Buffer.concat(centrals);
114
+ const end = Buffer.alloc(22);
115
+ end.writeUInt32LE(0x06054b50, 0);
116
+ end.writeUInt16LE(0, 4); // this disk
117
+ end.writeUInt16LE(0, 6); // disk with central directory
118
+ end.writeUInt16LE(entries.length, 8);
119
+ end.writeUInt16LE(entries.length, 10);
120
+ end.writeUInt32LE(centralDir.length, 12);
121
+ end.writeUInt32LE(offset, 16);
122
+ end.writeUInt16LE(0, 20); // comment length
123
+ return Buffer.concat([...locals, centralDir, end]);
124
+ }
125
+ //# sourceMappingURL=zip.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zip.js","sourceRoot":"","sources":["../../../src/tools/authoring/zip.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ import type { Tool, ToolResult, ToolExecutionContext, ToolRiskLevel } from './types.js';
2
+ import type { FunctionSchema } from '../providers/types.js';
3
+ /**
4
+ * The brainstorm session store, as a tool.
5
+ *
6
+ * Brainstorm mode is for someone who is not ready to commit yet. If nothing is
7
+ * written down until they commit, the sessions most worth keeping are the ones
8
+ * lost — explore five ideas over an evening, pick none, close the app, and
9
+ * Thursday starts from nothing. Which is the exact feeling the mode exists to
10
+ * relieve.
11
+ *
12
+ * So the session is saved as it happens, locally, and `attach` binds it to a
13
+ * project the moment one is created.
14
+ *
15
+ * NOT memory. Memory holds durable facts about the PERSON — "prefers small
16
+ * finishable projects", "learning Rust" — which are useful in every mode
17
+ * forever. This holds the session: the ideas, the ones turned down, and why.
18
+ * Saving every musing to memory degrades recall and leaves Ava quoting
19
+ * half-thoughts back as settled fact.
20
+ */
21
+ export declare class BrainstormSessionTool implements Tool {
22
+ readonly name = "brainstorm_session";
23
+ readonly description: string;
24
+ readonly riskLevel: ToolRiskLevel;
25
+ readonly requiresConfirmation = false;
26
+ readonly schema: FunctionSchema;
27
+ execute(args: Record<string, unknown>, context: ToolExecutionContext): Promise<ToolResult>;
28
+ }
29
+ //# sourceMappingURL=brainstorm-session.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brainstorm-session.d.ts","sourceRoot":"","sources":["../../src/tools/brainstorm-session.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AACxF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAI5D;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,qBAAsB,YAAW,IAAI;IAChD,QAAQ,CAAC,IAAI,wBAAwB;IACrC,QAAQ,CAAC,WAAW,SAI+D;IACnF,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAU;IAC3C,QAAQ,CAAC,oBAAoB,SAAS;IAEtC,QAAQ,CAAC,MAAM,EAAE,cAAc,CA2D7B;IAEI,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,UAAU,CAAC;CAiGjG"}
@@ -0,0 +1,184 @@
1
+ import { BrainstormStore } from '../brainstorm/brainstorm-store.js';
2
+ /**
3
+ * The brainstorm session store, as a tool.
4
+ *
5
+ * Brainstorm mode is for someone who is not ready to commit yet. If nothing is
6
+ * written down until they commit, the sessions most worth keeping are the ones
7
+ * lost — explore five ideas over an evening, pick none, close the app, and
8
+ * Thursday starts from nothing. Which is the exact feeling the mode exists to
9
+ * relieve.
10
+ *
11
+ * So the session is saved as it happens, locally, and `attach` binds it to a
12
+ * project the moment one is created.
13
+ *
14
+ * NOT memory. Memory holds durable facts about the PERSON — "prefers small
15
+ * finishable projects", "learning Rust" — which are useful in every mode
16
+ * forever. This holds the session: the ideas, the ones turned down, and why.
17
+ * Saving every musing to memory degrades recall and leaves Ava quoting
18
+ * half-thoughts back as settled fact.
19
+ */
20
+ export class BrainstormSessionTool {
21
+ name = 'brainstorm_session';
22
+ description = 'Keep and recall brainstorming sessions — ideas, the ones that were parked or rejected, and why. ' +
23
+ 'Stored locally under ~/.ava, never in the project and never committed. ' +
24
+ 'Use recall at the START of a brainstorm to see what they were circling before; save as ideas emerge; ' +
25
+ 'attach when a project folder gets created so the thinking follows the project.';
26
+ riskLevel = 'safe';
27
+ requiresConfirmation = false;
28
+ schema = {
29
+ name: 'brainstorm_session',
30
+ description: 'Local brainstorm memory. recall — list past sessions (call this early; "you were circling this three weeks ago" ' +
31
+ 'is the most useful thing you can say to someone stuck). save — create or update a session with its ideas. ' +
32
+ 'attach — bind a session to a project path once the folder exists. read — load one session in full.',
33
+ parameters: {
34
+ type: 'object',
35
+ properties: {
36
+ action: {
37
+ type: 'string',
38
+ enum: ['recall', 'save', 'attach', 'read'],
39
+ description: 'What to do',
40
+ },
41
+ session_id: {
42
+ type: 'string',
43
+ description: 'Session to update, read, or attach. Omit on save to start a new one.',
44
+ },
45
+ kind: {
46
+ type: 'string',
47
+ enum: ['blank', 'evolve'],
48
+ description: 'save: which conversation this is — no project yet ("blank"), or an existing one ("evolve").',
49
+ },
50
+ headline: {
51
+ type: 'string',
52
+ description: 'save: what the session is about, in the user\'s own terms.',
53
+ },
54
+ ideas: {
55
+ type: 'array',
56
+ description: 'save: the ideas so far. Include rejected ones WITH a reason — an idea turned down and not recorded ' +
57
+ 'gets proposed again next time, and the reason is the useful half.',
58
+ items: {
59
+ type: 'object',
60
+ properties: {
61
+ title: { type: 'string', description: 'Short name' },
62
+ summary: { type: 'string', description: 'A sentence or two — enough to recognise it months later' },
63
+ status: {
64
+ type: 'string',
65
+ enum: ['candidate', 'chosen', 'parked', 'rejected'],
66
+ description: 'Where it got to',
67
+ },
68
+ reason: { type: 'string', description: 'Why parked or rejected' },
69
+ },
70
+ required: ['title', 'summary', 'status'],
71
+ },
72
+ },
73
+ notes: {
74
+ type: 'array',
75
+ items: { type: 'string' },
76
+ description: 'save: threads worth keeping that are not ideas — constraints, tangents, context.',
77
+ },
78
+ project_path: {
79
+ type: 'string',
80
+ description: 'attach: absolute path of the project folder this session produced.',
81
+ },
82
+ },
83
+ required: ['action'],
84
+ },
85
+ };
86
+ async execute(args, context) {
87
+ const store = new BrainstormStore();
88
+ const action = String(args.action ?? '');
89
+ const projectRoot = context.cwd;
90
+ try {
91
+ switch (action) {
92
+ case 'recall': {
93
+ const sessions = await store.list(projectRoot);
94
+ if (sessions.length === 0) {
95
+ return { success: true, output: 'No previous brainstorm sessions. This is a first conversation.' };
96
+ }
97
+ const lines = sessions.slice(0, 12).map((s) => {
98
+ const when = s.updatedAt.slice(0, 10);
99
+ const open = s.openCount > 0 ? `, ${s.openCount} still open` : '';
100
+ return `- [${s.id}] ${when} · ${s.kind} · ${s.headline} (${s.ideaCount} ideas${open})`;
101
+ });
102
+ return {
103
+ success: true,
104
+ output: `${sessions.length} previous session(s):\n${lines.join('\n')}\n\nRead one with action="read" before assuming what was covered.`,
105
+ };
106
+ }
107
+ case 'read': {
108
+ const id = String(args.session_id ?? '');
109
+ if (!id)
110
+ return { success: false, output: 'session_id is required to read a session.' };
111
+ const session = await store.get(id, projectRoot);
112
+ if (!session)
113
+ return { success: false, output: `No session ${id}.` };
114
+ return { success: true, output: JSON.stringify(session, null, 2) };
115
+ }
116
+ case 'save': {
117
+ const id = args.session_id ? String(args.session_id) : null;
118
+ let session = id ? await store.get(id, projectRoot) : null;
119
+ if (!session) {
120
+ const kind = (args.kind === 'evolve' ? 'evolve' : 'blank');
121
+ const headline = String(args.headline ?? 'Untitled session');
122
+ // A brand-new session in an existing project is already attached —
123
+ // there is no point putting it in the loose pile only to move it.
124
+ session = store.create(kind, headline, kind === 'evolve' ? projectRoot : undefined);
125
+ }
126
+ else if (args.headline) {
127
+ session.headline = String(args.headline);
128
+ }
129
+ const incoming = Array.isArray(args.ideas) ? args.ideas : [];
130
+ for (const raw of incoming) {
131
+ if (!raw?.title)
132
+ continue;
133
+ const title = String(raw.title);
134
+ const existing = session.ideas.find((i) => i.title === title);
135
+ if (existing) {
136
+ existing.summary = String(raw.summary ?? existing.summary);
137
+ existing.status = raw.status ?? existing.status;
138
+ if (raw.reason)
139
+ existing.reason = String(raw.reason);
140
+ existing.updatedAt = new Date().toISOString();
141
+ }
142
+ else {
143
+ store.addIdea(session, {
144
+ title,
145
+ summary: String(raw.summary ?? ''),
146
+ status: raw.status ?? 'candidate',
147
+ ...(raw.reason ? { reason: String(raw.reason) } : {}),
148
+ });
149
+ }
150
+ }
151
+ if (Array.isArray(args.notes)) {
152
+ for (const n of args.notes) {
153
+ const note = String(n).trim();
154
+ if (note && !session.notes.includes(note))
155
+ session.notes.push(note);
156
+ }
157
+ }
158
+ await store.save(session);
159
+ return {
160
+ success: true,
161
+ output: `Saved session ${session.id} (${session.ideas.length} ideas). Kept locally — not in the project.`,
162
+ };
163
+ }
164
+ case 'attach': {
165
+ const id = String(args.session_id ?? '');
166
+ const path = String(args.project_path ?? '');
167
+ if (!id || !path) {
168
+ return { success: false, output: 'attach needs both session_id and project_path.' };
169
+ }
170
+ const session = await store.attach(id, path);
171
+ if (!session)
172
+ return { success: false, output: `No loose session ${id} to attach.` };
173
+ return { success: true, output: `Session ${id} now belongs to ${path}.` };
174
+ }
175
+ default:
176
+ return { success: false, output: `Unknown action "${action}".` };
177
+ }
178
+ }
179
+ catch (err) {
180
+ return { success: false, output: `Brainstorm store failed: ${err instanceof Error ? err.message : String(err)}` };
181
+ }
182
+ }
183
+ }
184
+ //# sourceMappingURL=brainstorm-session.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brainstorm-session.js","sourceRoot":"","sources":["../../src/tools/brainstorm-session.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AAGpE;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,OAAO,qBAAqB;IACvB,IAAI,GAAG,oBAAoB,CAAC;IAC5B,WAAW,GAClB,kGAAkG;QAClG,yEAAyE;QACzE,uGAAuG;QACvG,gFAAgF,CAAC;IAC1E,SAAS,GAAkB,MAAM,CAAC;IAClC,oBAAoB,GAAG,KAAK,CAAC;IAE7B,MAAM,GAAmB;QAChC,IAAI,EAAE,oBAAoB;QAC1B,WAAW,EACT,kHAAkH;YAClH,4GAA4G;YAC5G,oGAAoG;QACtG,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC;oBAC1C,WAAW,EAAE,YAAY;iBAC1B;gBACD,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,sEAAsE;iBACpF;gBACD,IAAI,EAAE;oBACJ,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC;oBACzB,WAAW,EAAE,6FAA6F;iBAC3G;gBACD,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,4DAA4D;iBAC1E;gBACD,KAAK,EAAE;oBACL,IAAI,EAAE,OAAO;oBACb,WAAW,EACT,qGAAqG;wBACrG,mEAAmE;oBACrE,KAAK,EAAE;wBACL,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE;4BACpD,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,yDAAyD,EAAE;4BACnG,MAAM,EAAE;gCACN,IAAI,EAAE,QAAQ;gCACd,IAAI,EAAE,CAAC,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC;gCACnD,WAAW,EAAE,iBAAiB;6BAC/B;4BACD,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,wBAAwB,EAAE;yBAClE;wBACD,QAAQ,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC;qBACzC;iBACF;gBACD,KAAK,EAAE;oBACL,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBACzB,WAAW,EAAE,kFAAkF;iBAChG;gBACD,YAAY,EAAE;oBACZ,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,oEAAoE;iBAClF;aACF;YACD,QAAQ,EAAE,CAAC,QAAQ,CAAC;SACrB;KACF,CAAC;IAEF,KAAK,CAAC,OAAO,CAAC,IAA6B,EAAE,OAA6B;QACxE,MAAM,KAAK,GAAG,IAAI,eAAe,EAAE,CAAC;QACpC,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;QACzC,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC;QAEhC,IAAI,CAAC;YACH,QAAQ,MAAM,EAAE,CAAC;gBACf,KAAK,QAAQ,CAAC,CAAC,CAAC;oBACd,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;oBAC/C,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBAC1B,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,gEAAgE,EAAE,CAAC;oBACrG,CAAC;oBACD,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;wBAC5C,MAAM,IAAI,GAAG,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;wBACtC,MAAM,IAAI,GAAG,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,SAAS,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;wBAClE,OAAO,MAAM,CAAC,CAAC,EAAE,KAAK,IAAI,MAAM,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,SAAS,SAAS,IAAI,GAAG,CAAC;oBACzF,CAAC,CAAC,CAAC;oBACH,OAAO;wBACL,OAAO,EAAE,IAAI;wBACb,MAAM,EAAE,GAAG,QAAQ,CAAC,MAAM,0BAA0B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,mEAAmE;qBACxI,CAAC;gBACJ,CAAC;gBAED,KAAK,MAAM,CAAC,CAAC,CAAC;oBACZ,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;oBACzC,IAAI,CAAC,EAAE;wBAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,2CAA2C,EAAE,CAAC;oBACxF,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;oBACjD,IAAI,CAAC,OAAO;wBAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,EAAE,CAAC;oBACrE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;gBACrE,CAAC;gBAED,KAAK,MAAM,CAAC,CAAC,CAAC;oBACZ,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;oBAC5D,IAAI,OAAO,GAA6B,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;oBAErF,IAAI,CAAC,OAAO,EAAE,CAAC;wBACb,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAmB,CAAC;wBAC7E,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,kBAAkB,CAAC,CAAC;wBAC7D,mEAAmE;wBACnE,kEAAkE;wBAClE,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;oBACtF,CAAC;yBAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;wBACzB,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBAC3C,CAAC;oBAED,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC7D,KAAK,MAAM,GAAG,IAAI,QAA0C,EAAE,CAAC;wBAC7D,IAAI,CAAC,GAAG,EAAE,KAAK;4BAAE,SAAS;wBAC1B,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;wBAChC,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC;wBAC9D,IAAI,QAAQ,EAAE,CAAC;4BACb,QAAQ,CAAC,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,IAAI,QAAQ,CAAC,OAAO,CAAC,CAAC;4BAC3D,QAAQ,CAAC,MAAM,GAAI,GAAG,CAAC,MAA+B,IAAI,QAAQ,CAAC,MAAM,CAAC;4BAC1E,IAAI,GAAG,CAAC,MAAM;gCAAE,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;4BACrD,QAAQ,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;wBAChD,CAAC;6BAAM,CAAC;4BACN,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE;gCACrB,KAAK;gCACL,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC;gCAClC,MAAM,EAAG,GAAG,CAAC,MAA+B,IAAI,WAAW;gCAC3D,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;6BACtD,CAAC,CAAC;wBACL,CAAC;oBACH,CAAC;oBAED,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;wBAC9B,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,KAAkB,EAAE,CAAC;4BACxC,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;4BAC9B,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC;gCAAE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;wBACtE,CAAC;oBACH,CAAC;oBAED,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBAC1B,OAAO;wBACL,OAAO,EAAE,IAAI;wBACb,MAAM,EAAE,iBAAiB,OAAO,CAAC,EAAE,KAAK,OAAO,CAAC,KAAK,CAAC,MAAM,6CAA6C;qBAC1G,CAAC;gBACJ,CAAC;gBAED,KAAK,QAAQ,CAAC,CAAC,CAAC;oBACd,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;oBACzC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;oBAC7C,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;wBACjB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,gDAAgD,EAAE,CAAC;oBACtF,CAAC;oBACD,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;oBAC7C,IAAI,CAAC,OAAO;wBAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,oBAAoB,EAAE,aAAa,EAAE,CAAC;oBACrF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,mBAAmB,IAAI,GAAG,EAAE,CAAC;gBAC5E,CAAC;gBAED;oBACE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,mBAAmB,MAAM,IAAI,EAAE,CAAC;YACrE,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,4BAA4B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACpH,CAAC;IACH,CAAC;CACF"}
@@ -11,7 +11,7 @@ import type { FunctionSchema } from '../providers/types.js';
11
11
  */
12
12
  export declare class DocumentAuthorTool implements Tool {
13
13
  readonly name = "document_author";
14
- readonly description = "Author and edit prose documents (Markdown source \u2192 branded Word/PDF). Non-destructive, section-surgical.";
14
+ readonly description = "Author and edit prose documents (Markdown source \u2192 branded Word/OpenDocument/PDF). Non-destructive, section-surgical.";
15
15
  readonly riskLevel: ToolRiskLevel;
16
16
  readonly requiresConfirmation = true;
17
17
  readonly schema: FunctionSchema;
@@ -1 +1 @@
1
- {"version":3,"file":"document-author.d.ts","sourceRoot":"","sources":["../../src/tools/document-author.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AACxF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAoB5D;;;;;;;;GAQG;AACH,qBAAa,kBAAmB,YAAW,IAAI;IAC7C,QAAQ,CAAC,IAAI,qBAAqB;IAClC,QAAQ,CAAC,WAAW,mHAA8G;IAClI,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAW;IAC5C,QAAQ,CAAC,oBAAoB,QAAQ;IAErC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAoC7B;IAEI,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,UAAU,CAAC;YAkBlF,MAAM;YAyBN,YAAY;YAiCZ,aAAa;YAgBb,YAAY;YAkCZ,aAAa;YAeb,KAAK;YAuCL,IAAI;YAkCJ,OAAO;YAYP,WAAW;YA0BX,aAAa;IA8B3B,OAAO,CAAC,iBAAiB;IAUzB;+EAC2E;IAC3E,OAAO,CAAC,WAAW;IAenB,OAAO,CAAC,KAAK;IAIb,OAAO,CAAC,IAAI;IAIZ,OAAO,CAAC,eAAe;IAKvB,OAAO,CAAC,SAAS;IAMjB,OAAO,CAAC,SAAS;IAOjB,OAAO,CAAC,QAAQ;CAajB"}
1
+ {"version":3,"file":"document-author.d.ts","sourceRoot":"","sources":["../../src/tools/document-author.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AACxF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAoB5D;;;;;;;;GAQG;AACH,qBAAa,kBAAmB,YAAW,IAAI;IAC7C,QAAQ,CAAC,IAAI,qBAAqB;IAClC,QAAQ,CAAC,WAAW,gIAA2H;IAC/I,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAW;IAC5C,QAAQ,CAAC,oBAAoB,QAAQ;IAErC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAoC7B;IAEI,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,UAAU,CAAC;YAkBlF,MAAM;YAyBN,YAAY;YAiCZ,aAAa;YAgBb,YAAY;YAkCZ,aAAa;YAeb,KAAK;YAyDL,IAAI;YAkCJ,OAAO;YAYP,WAAW;YA0BX,aAAa;IA8B3B,OAAO,CAAC,iBAAiB;IAUzB;+EAC2E;IAC3E,OAAO,CAAC,WAAW;IAenB,OAAO,CAAC,KAAK;IAIb,OAAO,CAAC,IAAI;IAIZ,OAAO,CAAC,eAAe;IAKvB,OAAO,CAAC,SAAS;IAMjB,OAAO,CAAC,SAAS;IAOjB,OAAO,CAAC,QAAQ;CAajB"}
@@ -28,13 +28,13 @@ async function loadPdf() {
28
28
  */
29
29
  export class DocumentAuthorTool {
30
30
  name = 'document_author';
31
- description = 'Author and edit prose documents (Markdown source → branded Word/PDF). Non-destructive, section-surgical.';
31
+ description = 'Author and edit prose documents (Markdown source → branded Word/OpenDocument/PDF). Non-destructive, section-surgical.';
32
32
  riskLevel = 'write';
33
33
  requiresConfirmation = true;
34
34
  schema = {
35
35
  name: 'document_author',
36
36
  description: 'Author rich prose documents (reports, proposals, letters, articles…). Markdown is the editable source of truth; ' +
37
- 'Word/PDF are exports built on demand. Workflow: create a .md, build it to .docx/.pdf, then refine it section by ' +
37
+ 'Word (.docx), OpenDocument (.odt/.ods) and PDF are exports built on demand. The .md IS the document: write it and stop there unless the writer named a format or said who the file is for — building unasked leaves them three files where they wanted one. Refine it section by ' +
38
38
  'section with edit_section — edits are surgical and never destroy the rest of the document. ' +
39
39
  'Markdown supports YAML front-matter (title, author, date, style, toc, brand), :::callout / :::pagebreak directives, ' +
40
40
  'footnotes ([^1]), tables, images, and nested lists. Start from a worked-exemplar template with from_template ' +
@@ -52,7 +52,7 @@ export class DocumentAuthorTool {
52
52
  content: { type: 'string', description: 'Markdown content. create: the whole document. edit_section: the new body of the section. insert_section: the new section. save_template: the template body.' },
53
53
  section: { type: 'string', description: 'edit_section: the heading text of the section to replace (e.g. "Pricing").' },
54
54
  after: { type: 'string', description: 'insert_section: heading text to insert after. Omit to append at the end.' },
55
- format: { type: 'string', enum: ['docx', 'pdf', 'both', 'md'], description: 'build: output format(s). Default both.' },
55
+ format: { type: 'string', enum: ['docx', 'pdf', 'odt', 'ods', 'both', 'open', 'md'], description: 'build: output format(s). REQUIRED for build — there is no default, because an export is a copy for a specific reader and guessing produces files nobody wanted. docx/pdf need their optional peer; odt/ods never do. \'both\' = docx + pdf, \'open\' = odt + pdf.' },
56
56
  out_path: { type: 'string', description: 'build: explicit output path (otherwise derived from the .md path).' },
57
57
  title: { type: 'string', description: 'create/save_template: document or template title.' },
58
58
  style: { type: 'string', description: 'Style profile — proposal | report | invoice | letter | meeting_notes | brief | article | press_release | essay | resume | cover_letter …' },
@@ -233,8 +233,25 @@ export class DocumentAuthorTool {
233
233
  const source = await readFile(abs, 'utf-8');
234
234
  const model = parseMarkdown(source);
235
235
  const baseDir = dirname(abs);
236
- const format = args.format ?? 'both';
237
- const targets = format === 'both' ? ['docx', 'pdf'] : [format];
236
+ // No default. `build` used to fall back to 'both' — docx AND pdf — so one
237
+ // request for a document produced three files (source + two exports) that
238
+ // nobody asked for. A format is a question about who is receiving the
239
+ // document, and the tool is in no position to guess the answer, so it says
240
+ // so instead of picking two.
241
+ const format = args.format;
242
+ if (!format) {
243
+ return {
244
+ success: false,
245
+ output: 'build needs a format. The .md is already the document — an export is a copy for someone else, '
246
+ + 'so pick what they need: docx (opens everywhere), pdf (they should not edit it), '
247
+ + 'odt/ods (OpenDocument), both (docx + pdf), open (odt + pdf).',
248
+ };
249
+ }
250
+ // 'open' is the all-open-formats pair, for anyone who would rather not
251
+ // hand someone a file only Word opens cleanly.
252
+ const targets = format === 'both' ? ['docx', 'pdf']
253
+ : format === 'open' ? ['odt', 'pdf']
254
+ : [format];
238
255
  const written = [];
239
256
  const failed = [];
240
257
  for (const target of targets) {