@rubytech/create-maxy-code 0.1.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 (1821) hide show
  1. package/dist/__tests__/account-id-env.test.js +48 -0
  2. package/dist/__tests__/apt-resolve.test.js +179 -0
  3. package/dist/__tests__/brew-install.test.js +141 -0
  4. package/dist/__tests__/brew-resolve.test.js +103 -0
  5. package/dist/__tests__/cdp-port-no-silent-fallback.test.js +53 -0
  6. package/dist/__tests__/launchd-plist.test.js +149 -0
  7. package/dist/__tests__/macos-version.test.js +96 -0
  8. package/dist/__tests__/peer-brand-detect.test.js +103 -0
  9. package/dist/__tests__/platform-detect.test.js +50 -0
  10. package/dist/__tests__/port-canonicalisation.test.js +200 -0
  11. package/dist/__tests__/preflight-port-classifier.test.js +330 -0
  12. package/dist/__tests__/snap-chromium.test.js +115 -0
  13. package/dist/apt-resolve.js +73 -0
  14. package/dist/brew-install.js +175 -0
  15. package/dist/brew-resolve.js +68 -0
  16. package/dist/index.js +3325 -0
  17. package/dist/launchd-plist.js +68 -0
  18. package/dist/macos-version.js +53 -0
  19. package/dist/peer-brand-detect.js +39 -0
  20. package/dist/pinned-binaries.js +12 -0
  21. package/dist/platform-detect.js +36 -0
  22. package/dist/port-resolution.js +153 -0
  23. package/dist/preflight-port-classifier.js +222 -0
  24. package/dist/snap-chromium.js +89 -0
  25. package/dist/uninstall.js +861 -0
  26. package/package.json +32 -0
  27. package/payload/platform/config/brand-registry.json +20 -0
  28. package/payload/platform/config/brand.json +54 -0
  29. package/payload/platform/lib/account-enumeration/dist/__tests__/enumerate.test.d.ts +2 -0
  30. package/payload/platform/lib/account-enumeration/dist/__tests__/enumerate.test.d.ts.map +1 -0
  31. package/payload/platform/lib/account-enumeration/dist/__tests__/enumerate.test.js +88 -0
  32. package/payload/platform/lib/account-enumeration/dist/__tests__/enumerate.test.js.map +1 -0
  33. package/payload/platform/lib/account-enumeration/dist/__tests__/validate-env.test.d.ts +2 -0
  34. package/payload/platform/lib/account-enumeration/dist/__tests__/validate-env.test.d.ts.map +1 -0
  35. package/payload/platform/lib/account-enumeration/dist/__tests__/validate-env.test.js +55 -0
  36. package/payload/platform/lib/account-enumeration/dist/__tests__/validate-env.test.js.map +1 -0
  37. package/payload/platform/lib/account-enumeration/dist/index.d.ts +49 -0
  38. package/payload/platform/lib/account-enumeration/dist/index.d.ts.map +1 -0
  39. package/payload/platform/lib/account-enumeration/dist/index.js +109 -0
  40. package/payload/platform/lib/account-enumeration/dist/index.js.map +1 -0
  41. package/payload/platform/lib/account-enumeration/src/__tests__/enumerate.test.ts +94 -0
  42. package/payload/platform/lib/account-enumeration/src/__tests__/validate-env.test.ts +57 -0
  43. package/payload/platform/lib/account-enumeration/src/index.ts +140 -0
  44. package/payload/platform/lib/account-enumeration/tsconfig.json +8 -0
  45. package/payload/platform/lib/admins-write/dist/index.d.ts +87 -0
  46. package/payload/platform/lib/admins-write/dist/index.d.ts.map +1 -0
  47. package/payload/platform/lib/admins-write/dist/index.js +248 -0
  48. package/payload/platform/lib/admins-write/dist/index.js.map +1 -0
  49. package/payload/platform/lib/admins-write/src/index.ts +311 -0
  50. package/payload/platform/lib/admins-write/tsconfig.json +8 -0
  51. package/payload/platform/lib/anthropic-key/dist/index.d.ts +22 -0
  52. package/payload/platform/lib/anthropic-key/dist/index.d.ts.map +1 -0
  53. package/payload/platform/lib/anthropic-key/dist/index.js +232 -0
  54. package/payload/platform/lib/anthropic-key/dist/index.js.map +1 -0
  55. package/payload/platform/lib/brand-templating/dist/index.d.ts +18 -0
  56. package/payload/platform/lib/brand-templating/dist/index.d.ts.map +1 -0
  57. package/payload/platform/lib/brand-templating/dist/index.js +69 -0
  58. package/payload/platform/lib/brand-templating/dist/index.js.map +1 -0
  59. package/payload/platform/lib/brand-templating/src/index.ts +76 -0
  60. package/payload/platform/lib/brand-templating/tsconfig.json +8 -0
  61. package/payload/platform/lib/device-url/dist/index.d.ts +44 -0
  62. package/payload/platform/lib/device-url/dist/index.d.ts.map +1 -0
  63. package/payload/platform/lib/device-url/dist/index.js +68 -0
  64. package/payload/platform/lib/device-url/dist/index.js.map +1 -0
  65. package/payload/platform/lib/device-url/src/index.ts +78 -0
  66. package/payload/platform/lib/device-url/tsconfig.json +8 -0
  67. package/payload/platform/lib/entitlement/PUBKEY-HASH.txt +1 -0
  68. package/payload/platform/lib/entitlement/dist/canonicalize.d.ts +26 -0
  69. package/payload/platform/lib/entitlement/dist/canonicalize.d.ts.map +1 -0
  70. package/payload/platform/lib/entitlement/dist/canonicalize.js +54 -0
  71. package/payload/platform/lib/entitlement/dist/canonicalize.js.map +1 -0
  72. package/payload/platform/lib/entitlement/dist/index.d.ts +76 -0
  73. package/payload/platform/lib/entitlement/dist/index.d.ts.map +1 -0
  74. package/payload/platform/lib/entitlement/dist/index.js +293 -0
  75. package/payload/platform/lib/entitlement/dist/index.js.map +1 -0
  76. package/payload/platform/lib/entitlement/rubytech-pubkey.pem +3 -0
  77. package/payload/platform/lib/graph-mcp/dist/__tests__/cypher-validate-write.test.d.ts +2 -0
  78. package/payload/platform/lib/graph-mcp/dist/__tests__/cypher-validate-write.test.d.ts.map +1 -0
  79. package/payload/platform/lib/graph-mcp/dist/__tests__/cypher-validate-write.test.js +97 -0
  80. package/payload/platform/lib/graph-mcp/dist/__tests__/cypher-validate-write.test.js.map +1 -0
  81. package/payload/platform/lib/graph-mcp/dist/__tests__/cypher-validate.test.d.ts +2 -0
  82. package/payload/platform/lib/graph-mcp/dist/__tests__/cypher-validate.test.d.ts.map +1 -0
  83. package/payload/platform/lib/graph-mcp/dist/__tests__/cypher-validate.test.js +112 -0
  84. package/payload/platform/lib/graph-mcp/dist/__tests__/cypher-validate.test.js.map +1 -0
  85. package/payload/platform/lib/graph-mcp/dist/__tests__/schema-cache.test.d.ts +2 -0
  86. package/payload/platform/lib/graph-mcp/dist/__tests__/schema-cache.test.d.ts.map +1 -0
  87. package/payload/platform/lib/graph-mcp/dist/__tests__/schema-cache.test.js +163 -0
  88. package/payload/platform/lib/graph-mcp/dist/__tests__/schema-cache.test.js.map +1 -0
  89. package/payload/platform/lib/graph-mcp/dist/__tests__/schema-cypher-parser.test.d.ts +2 -0
  90. package/payload/platform/lib/graph-mcp/dist/__tests__/schema-cypher-parser.test.d.ts.map +1 -0
  91. package/payload/platform/lib/graph-mcp/dist/__tests__/schema-cypher-parser.test.js +89 -0
  92. package/payload/platform/lib/graph-mcp/dist/__tests__/schema-cypher-parser.test.js.map +1 -0
  93. package/payload/platform/lib/graph-mcp/dist/__tests__/warnings-envelope.test.d.ts +2 -0
  94. package/payload/platform/lib/graph-mcp/dist/__tests__/warnings-envelope.test.d.ts.map +1 -0
  95. package/payload/platform/lib/graph-mcp/dist/__tests__/warnings-envelope.test.js +140 -0
  96. package/payload/platform/lib/graph-mcp/dist/__tests__/warnings-envelope.test.js.map +1 -0
  97. package/payload/platform/lib/graph-mcp/dist/cypher-rewrite-stamp.d.ts +37 -0
  98. package/payload/platform/lib/graph-mcp/dist/cypher-rewrite-stamp.d.ts.map +1 -0
  99. package/payload/platform/lib/graph-mcp/dist/cypher-rewrite-stamp.js +333 -0
  100. package/payload/platform/lib/graph-mcp/dist/cypher-rewrite-stamp.js.map +1 -0
  101. package/payload/platform/lib/graph-mcp/dist/cypher-shim-read.d.ts +85 -0
  102. package/payload/platform/lib/graph-mcp/dist/cypher-shim-read.d.ts.map +1 -0
  103. package/payload/platform/lib/graph-mcp/dist/cypher-shim-read.js +93 -0
  104. package/payload/platform/lib/graph-mcp/dist/cypher-shim-read.js.map +1 -0
  105. package/payload/platform/lib/graph-mcp/dist/cypher-shim-write.d.ts +71 -0
  106. package/payload/platform/lib/graph-mcp/dist/cypher-shim-write.d.ts.map +1 -0
  107. package/payload/platform/lib/graph-mcp/dist/cypher-shim-write.js +168 -0
  108. package/payload/platform/lib/graph-mcp/dist/cypher-shim-write.js.map +1 -0
  109. package/payload/platform/lib/graph-mcp/dist/cypher-validate.d.ts +50 -0
  110. package/payload/platform/lib/graph-mcp/dist/cypher-validate.d.ts.map +1 -0
  111. package/payload/platform/lib/graph-mcp/dist/cypher-validate.js +197 -0
  112. package/payload/platform/lib/graph-mcp/dist/cypher-validate.js.map +1 -0
  113. package/payload/platform/lib/graph-mcp/dist/index.d.ts +26 -0
  114. package/payload/platform/lib/graph-mcp/dist/index.d.ts.map +1 -0
  115. package/payload/platform/lib/graph-mcp/dist/index.js +847 -0
  116. package/payload/platform/lib/graph-mcp/dist/index.js.map +1 -0
  117. package/payload/platform/lib/graph-mcp/dist/schema-cache.d.ts +75 -0
  118. package/payload/platform/lib/graph-mcp/dist/schema-cache.d.ts.map +1 -0
  119. package/payload/platform/lib/graph-mcp/dist/schema-cache.js +217 -0
  120. package/payload/platform/lib/graph-mcp/dist/schema-cache.js.map +1 -0
  121. package/payload/platform/lib/graph-mcp/dist/schema-cypher-parser.d.ts +42 -0
  122. package/payload/platform/lib/graph-mcp/dist/schema-cypher-parser.d.ts.map +1 -0
  123. package/payload/platform/lib/graph-mcp/dist/schema-cypher-parser.js +87 -0
  124. package/payload/platform/lib/graph-mcp/dist/schema-cypher-parser.js.map +1 -0
  125. package/payload/platform/lib/graph-mcp/src/__tests__/cypher-validate-write.test.ts +150 -0
  126. package/payload/platform/lib/graph-mcp/src/__tests__/cypher-validate.test.ts +141 -0
  127. package/payload/platform/lib/graph-mcp/src/__tests__/schema-cache.test.ts +169 -0
  128. package/payload/platform/lib/graph-mcp/src/__tests__/schema-cypher-parser.test.ts +99 -0
  129. package/payload/platform/lib/graph-mcp/src/__tests__/warnings-envelope.test.ts +151 -0
  130. package/payload/platform/lib/graph-mcp/src/cypher-rewrite-stamp.ts +349 -0
  131. package/payload/platform/lib/graph-mcp/src/cypher-shim-read.ts +141 -0
  132. package/payload/platform/lib/graph-mcp/src/cypher-shim-write.ts +240 -0
  133. package/payload/platform/lib/graph-mcp/src/cypher-validate.ts +249 -0
  134. package/payload/platform/lib/graph-mcp/src/index.ts +1076 -0
  135. package/payload/platform/lib/graph-mcp/src/schema-cache.ts +242 -0
  136. package/payload/platform/lib/graph-mcp/src/schema-cypher-parser.ts +84 -0
  137. package/payload/platform/lib/graph-mcp/tsconfig.json +8 -0
  138. package/payload/platform/lib/graph-search/dist/index.d.ts +227 -0
  139. package/payload/platform/lib/graph-search/dist/index.d.ts.map +1 -0
  140. package/payload/platform/lib/graph-search/dist/index.js +525 -0
  141. package/payload/platform/lib/graph-search/dist/index.js.map +1 -0
  142. package/payload/platform/lib/graph-search/src/__tests__/bm25-label-gate.test.ts +88 -0
  143. package/payload/platform/lib/graph-search/src/__tests__/bm25-only.test.ts +129 -0
  144. package/payload/platform/lib/graph-search/src/__tests__/bm25-strong-bypass-threshold.test.ts +126 -0
  145. package/payload/platform/lib/graph-search/src/__tests__/brochure-threshold.test.ts +136 -0
  146. package/payload/platform/lib/graph-search/src/__tests__/escape-and-normalise.test.ts +53 -0
  147. package/payload/platform/lib/graph-search/src/__tests__/expand-batch.test.ts +206 -0
  148. package/payload/platform/lib/graph-search/src/__tests__/fulltext-coverage.test.ts +280 -0
  149. package/payload/platform/lib/graph-search/src/__tests__/hybrid.test.ts +262 -0
  150. package/payload/platform/lib/graph-search/src/__tests__/vector-threshold.test.ts +170 -0
  151. package/payload/platform/lib/graph-search/src/index.ts +718 -0
  152. package/payload/platform/lib/graph-search/tsconfig.json +9 -0
  153. package/payload/platform/lib/graph-search/vitest.config.ts +9 -0
  154. package/payload/platform/lib/graph-trash/dist/index.d.ts +99 -0
  155. package/payload/platform/lib/graph-trash/dist/index.d.ts.map +1 -0
  156. package/payload/platform/lib/graph-trash/dist/index.js +333 -0
  157. package/payload/platform/lib/graph-trash/dist/index.js.map +1 -0
  158. package/payload/platform/lib/graph-trash/src/index.ts +475 -0
  159. package/payload/platform/lib/graph-trash/tsconfig.json +8 -0
  160. package/payload/platform/lib/graph-write/dist/__tests__/account-id-gate.test.d.ts +2 -0
  161. package/payload/platform/lib/graph-write/dist/__tests__/account-id-gate.test.d.ts.map +1 -0
  162. package/payload/platform/lib/graph-write/dist/__tests__/account-id-gate.test.js +165 -0
  163. package/payload/platform/lib/graph-write/dist/__tests__/account-id-gate.test.js.map +1 -0
  164. package/payload/platform/lib/graph-write/dist/__tests__/action-provenance-gate.test.d.ts +2 -0
  165. package/payload/platform/lib/graph-write/dist/__tests__/action-provenance-gate.test.d.ts.map +1 -0
  166. package/payload/platform/lib/graph-write/dist/__tests__/action-provenance-gate.test.js +226 -0
  167. package/payload/platform/lib/graph-write/dist/__tests__/action-provenance-gate.test.js.map +1 -0
  168. package/payload/platform/lib/graph-write/dist/__tests__/audit.test.d.ts +2 -0
  169. package/payload/platform/lib/graph-write/dist/__tests__/audit.test.d.ts.map +1 -0
  170. package/payload/platform/lib/graph-write/dist/__tests__/audit.test.js +147 -0
  171. package/payload/platform/lib/graph-write/dist/__tests__/audit.test.js.map +1 -0
  172. package/payload/platform/lib/graph-write/dist/audit.d.ts +84 -0
  173. package/payload/platform/lib/graph-write/dist/audit.d.ts.map +1 -0
  174. package/payload/platform/lib/graph-write/dist/audit.js +129 -0
  175. package/payload/platform/lib/graph-write/dist/audit.js.map +1 -0
  176. package/payload/platform/lib/graph-write/dist/conversation-provenance.d.ts +26 -0
  177. package/payload/platform/lib/graph-write/dist/conversation-provenance.d.ts.map +1 -0
  178. package/payload/platform/lib/graph-write/dist/conversation-provenance.js +81 -0
  179. package/payload/platform/lib/graph-write/dist/conversation-provenance.js.map +1 -0
  180. package/payload/platform/lib/graph-write/dist/index.d.ts +124 -0
  181. package/payload/platform/lib/graph-write/dist/index.d.ts.map +1 -0
  182. package/payload/platform/lib/graph-write/dist/index.js +288 -0
  183. package/payload/platform/lib/graph-write/dist/index.js.map +1 -0
  184. package/payload/platform/lib/graph-write/src/__tests__/account-id-gate.test.ts +189 -0
  185. package/payload/platform/lib/graph-write/src/__tests__/action-provenance-gate.test.ts +252 -0
  186. package/payload/platform/lib/graph-write/src/__tests__/audit.test.ts +162 -0
  187. package/payload/platform/lib/graph-write/src/audit.ts +182 -0
  188. package/payload/platform/lib/graph-write/src/conversation-provenance.ts +140 -0
  189. package/payload/platform/lib/graph-write/src/index.ts +386 -0
  190. package/payload/platform/lib/graph-write/tsconfig.json +8 -0
  191. package/payload/platform/lib/mcp-eager/dist/index.d.ts +61 -0
  192. package/payload/platform/lib/mcp-eager/dist/index.d.ts.map +1 -0
  193. package/payload/platform/lib/mcp-eager/dist/index.js +49 -0
  194. package/payload/platform/lib/mcp-eager/dist/index.js.map +1 -0
  195. package/payload/platform/lib/mcp-eager/src/index.ts +78 -0
  196. package/payload/platform/lib/mcp-eager/tsconfig.json +8 -0
  197. package/payload/platform/lib/mcp-spawn-tee/dist/index.d.ts +53 -0
  198. package/payload/platform/lib/mcp-spawn-tee/dist/index.d.ts.map +1 -0
  199. package/payload/platform/lib/mcp-spawn-tee/dist/index.js +132 -0
  200. package/payload/platform/lib/mcp-spawn-tee/dist/index.js.map +1 -0
  201. package/payload/platform/lib/mcp-spawn-tee/src/index.ts +134 -0
  202. package/payload/platform/lib/mcp-spawn-tee/tsconfig.json +8 -0
  203. package/payload/platform/lib/mcp-stderr-tee/dist/index.d.ts +51 -0
  204. package/payload/platform/lib/mcp-stderr-tee/dist/index.d.ts.map +1 -0
  205. package/payload/platform/lib/mcp-stderr-tee/dist/index.js +196 -0
  206. package/payload/platform/lib/mcp-stderr-tee/dist/index.js.map +1 -0
  207. package/payload/platform/lib/mcp-stderr-tee/src/index.ts +206 -0
  208. package/payload/platform/lib/mcp-stderr-tee/tsconfig.json +8 -0
  209. package/payload/platform/lib/models/dist/index.d.ts +7 -0
  210. package/payload/platform/lib/models/dist/index.d.ts.map +1 -0
  211. package/payload/platform/lib/models/dist/index.js +20 -0
  212. package/payload/platform/lib/models/dist/index.js.map +1 -0
  213. package/payload/platform/lib/models/src/index.ts +18 -0
  214. package/payload/platform/lib/models/tsconfig.json +8 -0
  215. package/payload/platform/lib/oauth-llm/dist/index.d.ts +118 -0
  216. package/payload/platform/lib/oauth-llm/dist/index.d.ts.map +1 -0
  217. package/payload/platform/lib/oauth-llm/dist/index.js +388 -0
  218. package/payload/platform/lib/oauth-llm/dist/index.js.map +1 -0
  219. package/payload/platform/lib/oauth-llm/src/index.ts +585 -0
  220. package/payload/platform/lib/oauth-llm/tsconfig.json +8 -0
  221. package/payload/platform/lib/persistent-components/dist/index.d.ts +21 -0
  222. package/payload/platform/lib/persistent-components/dist/index.d.ts.map +1 -0
  223. package/payload/platform/lib/persistent-components/dist/index.js +32 -0
  224. package/payload/platform/lib/persistent-components/dist/index.js.map +1 -0
  225. package/payload/platform/lib/persistent-components/src/index.ts +28 -0
  226. package/payload/platform/lib/persistent-components/tsconfig.json +8 -0
  227. package/payload/platform/lib/screening-patterns/dist/index.d.ts +29 -0
  228. package/payload/platform/lib/screening-patterns/dist/index.d.ts.map +1 -0
  229. package/payload/platform/lib/screening-patterns/dist/index.js +48 -0
  230. package/payload/platform/lib/screening-patterns/dist/index.js.map +1 -0
  231. package/payload/platform/lib/screening-patterns/src/index.ts +51 -0
  232. package/payload/platform/lib/screening-patterns/tsconfig.json +8 -0
  233. package/payload/platform/lib/task-secrets/dist/index.d.ts +40 -0
  234. package/payload/platform/lib/task-secrets/dist/index.d.ts.map +1 -0
  235. package/payload/platform/lib/task-secrets/dist/index.js +44 -0
  236. package/payload/platform/lib/task-secrets/dist/index.js.map +1 -0
  237. package/payload/platform/lib/task-secrets/src/__tests__/redact-secrets.test.ts +127 -0
  238. package/payload/platform/lib/task-secrets/src/index.ts +77 -0
  239. package/payload/platform/lib/task-secrets/tsconfig.json +9 -0
  240. package/payload/platform/lib/task-secrets/vitest.config.ts +9 -0
  241. package/payload/platform/neo4j/edge-annotations.json +154 -0
  242. package/payload/platform/neo4j/schema.cypher +1104 -0
  243. package/payload/platform/package-lock.json +3576 -0
  244. package/payload/platform/package.json +25 -0
  245. package/payload/platform/plugins/admin/PLUGIN.md +81 -0
  246. package/payload/platform/plugins/admin/hooks/__tests__/archive-ingest-surface-gate.test.sh +191 -0
  247. package/payload/platform/plugins/admin/hooks/__tests__/playwright-file-guard.test.sh +278 -0
  248. package/payload/platform/plugins/admin/hooks/__tests__/pre-tool-use-base64-guard.test.sh +204 -0
  249. package/payload/platform/plugins/admin/hooks/archive-ingest-surface-gate.sh +225 -0
  250. package/payload/platform/plugins/admin/hooks/playwright-file-guard.sh +214 -0
  251. package/payload/platform/plugins/admin/hooks/pre-tool-use.sh +294 -0
  252. package/payload/platform/plugins/admin/hooks/webfetch-preflight.mjs +363 -0
  253. package/payload/platform/plugins/admin/mcp/dist/__tests__/plugin-read-skill-resolution.test.d.ts +2 -0
  254. package/payload/platform/plugins/admin/mcp/dist/__tests__/plugin-read-skill-resolution.test.d.ts.map +1 -0
  255. package/payload/platform/plugins/admin/mcp/dist/__tests__/plugin-read-skill-resolution.test.js +91 -0
  256. package/payload/platform/plugins/admin/mcp/dist/__tests__/plugin-read-skill-resolution.test.js.map +1 -0
  257. package/payload/platform/plugins/admin/mcp/dist/__tests__/public-hostname.test.d.ts +2 -0
  258. package/payload/platform/plugins/admin/mcp/dist/__tests__/public-hostname.test.d.ts.map +1 -0
  259. package/payload/platform/plugins/admin/mcp/dist/__tests__/public-hostname.test.js +98 -0
  260. package/payload/platform/plugins/admin/mcp/dist/__tests__/public-hostname.test.js.map +1 -0
  261. package/payload/platform/plugins/admin/mcp/dist/__tests__/skill-load-required-inputs.test.d.ts +2 -0
  262. package/payload/platform/plugins/admin/mcp/dist/__tests__/skill-load-required-inputs.test.d.ts.map +1 -0
  263. package/payload/platform/plugins/admin/mcp/dist/__tests__/skill-load-required-inputs.test.js +141 -0
  264. package/payload/platform/plugins/admin/mcp/dist/__tests__/skill-load-required-inputs.test.js.map +1 -0
  265. package/payload/platform/plugins/admin/mcp/dist/__tests__/skill-load.test.d.ts +2 -0
  266. package/payload/platform/plugins/admin/mcp/dist/__tests__/skill-load.test.d.ts.map +1 -0
  267. package/payload/platform/plugins/admin/mcp/dist/__tests__/skill-load.test.js +88 -0
  268. package/payload/platform/plugins/admin/mcp/dist/__tests__/skill-load.test.js.map +1 -0
  269. package/payload/platform/plugins/admin/mcp/dist/index.d.ts +2 -0
  270. package/payload/platform/plugins/admin/mcp/dist/index.d.ts.map +1 -0
  271. package/payload/platform/plugins/admin/mcp/dist/index.js +3495 -0
  272. package/payload/platform/plugins/admin/mcp/dist/index.js.map +1 -0
  273. package/payload/platform/plugins/admin/mcp/dist/lib/neo4j.d.ts +5 -0
  274. package/payload/platform/plugins/admin/mcp/dist/lib/neo4j.d.ts.map +1 -0
  275. package/payload/platform/plugins/admin/mcp/dist/lib/neo4j.js +40 -0
  276. package/payload/platform/plugins/admin/mcp/dist/lib/neo4j.js.map +1 -0
  277. package/payload/platform/plugins/admin/mcp/dist/lib/onboarding.d.ts +39 -0
  278. package/payload/platform/plugins/admin/mcp/dist/lib/onboarding.d.ts.map +1 -0
  279. package/payload/platform/plugins/admin/mcp/dist/lib/onboarding.js +249 -0
  280. package/payload/platform/plugins/admin/mcp/dist/lib/onboarding.js.map +1 -0
  281. package/payload/platform/plugins/admin/mcp/dist/lib/public-hostname.d.ts +15 -0
  282. package/payload/platform/plugins/admin/mcp/dist/lib/public-hostname.d.ts.map +1 -0
  283. package/payload/platform/plugins/admin/mcp/dist/lib/public-hostname.js +73 -0
  284. package/payload/platform/plugins/admin/mcp/dist/lib/public-hostname.js.map +1 -0
  285. package/payload/platform/plugins/admin/mcp/dist/skill-resolution.d.ts +35 -0
  286. package/payload/platform/plugins/admin/mcp/dist/skill-resolution.d.ts.map +1 -0
  287. package/payload/platform/plugins/admin/mcp/dist/skill-resolution.js +140 -0
  288. package/payload/platform/plugins/admin/mcp/dist/skill-resolution.js.map +1 -0
  289. package/payload/platform/plugins/admin/mcp/package.json +23 -0
  290. package/payload/platform/plugins/admin/mcp/vitest.config.ts +9 -0
  291. package/payload/platform/plugins/admin/references/chat-ui-guide.md +31 -0
  292. package/payload/platform/plugins/admin/references/contextual-ui.md +107 -0
  293. package/payload/platform/plugins/admin/skills/a4-print-documents/SKILL.md +241 -0
  294. package/payload/platform/plugins/admin/skills/access-manager/SKILL.md +28 -0
  295. package/payload/platform/plugins/admin/skills/access-manager/references/operations.md +197 -0
  296. package/payload/platform/plugins/admin/skills/business-profile/SKILL.md +53 -0
  297. package/payload/platform/plugins/admin/skills/datetime/SKILL.md +91 -0
  298. package/payload/platform/plugins/admin/skills/deck-pages/SKILL.md +418 -0
  299. package/payload/platform/plugins/admin/skills/onboarding/SKILL.md +255 -0
  300. package/payload/platform/plugins/admin/skills/plainly/SKILL.md +105 -0
  301. package/payload/platform/plugins/admin/skills/plainly/references/worked-examples.md +301 -0
  302. package/payload/platform/plugins/admin/skills/plugin-management/SKILL.md +99 -0
  303. package/payload/platform/plugins/admin/skills/public-agent-manager/SKILL.md +277 -0
  304. package/payload/platform/plugins/admin/skills/publish-site/SKILL.md +72 -0
  305. package/payload/platform/plugins/admin/skills/qr-code/SKILL.md +35 -0
  306. package/payload/platform/plugins/admin/skills/qr-code/references/data-formats.md +113 -0
  307. package/payload/platform/plugins/admin/skills/skill-builder/SKILL.md +113 -0
  308. package/payload/platform/plugins/admin/skills/skill-builder/references/lean-pattern.md +110 -0
  309. package/payload/platform/plugins/admin/skills/skill-builder/references/pdf-generation.md +30 -0
  310. package/payload/platform/plugins/admin/skills/specialist-management/SKILL.md +44 -0
  311. package/payload/platform/plugins/admin/skills/stream-log-review/SKILL.md +71 -0
  312. package/payload/platform/plugins/admin/skills/stream-log-review/references/analysis-patterns.md +189 -0
  313. package/payload/platform/plugins/admin/skills/unzip-attachment/SKILL.md +79 -0
  314. package/payload/platform/plugins/admin/skills/unzip-attachment/__tests__/preflight.sh +148 -0
  315. package/payload/platform/plugins/admin/skills/unzip-attachment/references/safety.md +116 -0
  316. package/payload/platform/plugins/admin/skills/update-knowledge/SKILL.md +47 -0
  317. package/payload/platform/plugins/anthropic/PLUGIN.md +40 -0
  318. package/payload/platform/plugins/anthropic/references/console-api.md +186 -0
  319. package/payload/platform/plugins/anthropic/references/setup-guide.md +36 -0
  320. package/payload/platform/plugins/anthropic/skills/get-api-key/SKILL.md +138 -0
  321. package/payload/platform/plugins/business-assistant/PLUGIN.md +59 -0
  322. package/payload/platform/plugins/business-assistant/references/crm.md +112 -0
  323. package/payload/platform/plugins/business-assistant/references/document-management.md +96 -0
  324. package/payload/platform/plugins/business-assistant/references/escalation.md +126 -0
  325. package/payload/platform/plugins/business-assistant/references/invoicing.md +163 -0
  326. package/payload/platform/plugins/business-assistant/references/profiling.md +50 -0
  327. package/payload/platform/plugins/business-assistant/references/quoting.md +56 -0
  328. package/payload/platform/plugins/business-assistant/references/scheduling.md +127 -0
  329. package/payload/platform/plugins/business-assistant/references/task-management.md +163 -0
  330. package/payload/platform/plugins/cloudflare/PLUGIN.md +73 -0
  331. package/payload/platform/plugins/cloudflare/mcp/dist/index.d.ts +2 -0
  332. package/payload/platform/plugins/cloudflare/mcp/dist/index.d.ts.map +1 -0
  333. package/payload/platform/plugins/cloudflare/mcp/dist/index.js +29 -0
  334. package/payload/platform/plugins/cloudflare/mcp/dist/index.js.map +1 -0
  335. package/payload/platform/plugins/cloudflare/mcp/dist/lib/cloudflared.d.ts +283 -0
  336. package/payload/platform/plugins/cloudflare/mcp/dist/lib/cloudflared.d.ts.map +1 -0
  337. package/payload/platform/plugins/cloudflare/mcp/dist/lib/cloudflared.js +1155 -0
  338. package/payload/platform/plugins/cloudflare/mcp/dist/lib/cloudflared.js.map +1 -0
  339. package/payload/platform/plugins/cloudflare/mcp/dist/lib/setup-orchestrator.d.ts +90 -0
  340. package/payload/platform/plugins/cloudflare/mcp/dist/lib/setup-orchestrator.d.ts.map +1 -0
  341. package/payload/platform/plugins/cloudflare/mcp/dist/lib/setup-orchestrator.js +550 -0
  342. package/payload/platform/plugins/cloudflare/mcp/dist/lib/setup-orchestrator.js.map +1 -0
  343. package/payload/platform/plugins/cloudflare/mcp/package.json +18 -0
  344. package/payload/platform/plugins/cloudflare/mcp/vitest.config.ts +10 -0
  345. package/payload/platform/plugins/cloudflare/references/dashboard-guide.md +108 -0
  346. package/payload/platform/plugins/cloudflare/references/manual-setup.md +481 -0
  347. package/payload/platform/plugins/cloudflare/references/reset-guide.md +118 -0
  348. package/payload/platform/plugins/cloudflare/scripts/_stream-log.sh +154 -0
  349. package/payload/platform/plugins/cloudflare/scripts/list-cf-domains.sh +98 -0
  350. package/payload/platform/plugins/cloudflare/scripts/list-cf-domains.ts +751 -0
  351. package/payload/platform/plugins/cloudflare/scripts/reset-tunnel.sh +107 -0
  352. package/payload/platform/plugins/cloudflare/scripts/setup-tunnel.sh +826 -0
  353. package/payload/platform/plugins/cloudflare/skills/setup-tunnel/SKILL.md +107 -0
  354. package/payload/platform/plugins/contacts/PLUGIN.md +31 -0
  355. package/payload/platform/plugins/contacts/mcp/dist/index.d.ts +2 -0
  356. package/payload/platform/plugins/contacts/mcp/dist/index.d.ts.map +1 -0
  357. package/payload/platform/plugins/contacts/mcp/dist/index.js +433 -0
  358. package/payload/platform/plugins/contacts/mcp/dist/index.js.map +1 -0
  359. package/payload/platform/plugins/contacts/mcp/dist/lib/neo4j.d.ts +5 -0
  360. package/payload/platform/plugins/contacts/mcp/dist/lib/neo4j.d.ts.map +1 -0
  361. package/payload/platform/plugins/contacts/mcp/dist/lib/neo4j.js +40 -0
  362. package/payload/platform/plugins/contacts/mcp/dist/lib/neo4j.js.map +1 -0
  363. package/payload/platform/plugins/contacts/mcp/dist/lib/resolve-person.d.ts +33 -0
  364. package/payload/platform/plugins/contacts/mcp/dist/lib/resolve-person.d.ts.map +1 -0
  365. package/payload/platform/plugins/contacts/mcp/dist/lib/resolve-person.js +53 -0
  366. package/payload/platform/plugins/contacts/mcp/dist/lib/resolve-person.js.map +1 -0
  367. package/payload/platform/plugins/contacts/mcp/dist/tools/contact-create.d.ts +23 -0
  368. package/payload/platform/plugins/contacts/mcp/dist/tools/contact-create.d.ts.map +1 -0
  369. package/payload/platform/plugins/contacts/mcp/dist/tools/contact-create.js +123 -0
  370. package/payload/platform/plugins/contacts/mcp/dist/tools/contact-create.js.map +1 -0
  371. package/payload/platform/plugins/contacts/mcp/dist/tools/contact-delete.d.ts +28 -0
  372. package/payload/platform/plugins/contacts/mcp/dist/tools/contact-delete.d.ts.map +1 -0
  373. package/payload/platform/plugins/contacts/mcp/dist/tools/contact-delete.js +39 -0
  374. package/payload/platform/plugins/contacts/mcp/dist/tools/contact-delete.js.map +1 -0
  375. package/payload/platform/plugins/contacts/mcp/dist/tools/contact-erase.d.ts +41 -0
  376. package/payload/platform/plugins/contacts/mcp/dist/tools/contact-erase.d.ts.map +1 -0
  377. package/payload/platform/plugins/contacts/mcp/dist/tools/contact-erase.js +142 -0
  378. package/payload/platform/plugins/contacts/mcp/dist/tools/contact-erase.js.map +1 -0
  379. package/payload/platform/plugins/contacts/mcp/dist/tools/contact-export.d.ts +52 -0
  380. package/payload/platform/plugins/contacts/mcp/dist/tools/contact-export.d.ts.map +1 -0
  381. package/payload/platform/plugins/contacts/mcp/dist/tools/contact-export.js +119 -0
  382. package/payload/platform/plugins/contacts/mcp/dist/tools/contact-export.js.map +1 -0
  383. package/payload/platform/plugins/contacts/mcp/dist/tools/contact-list.d.ts +23 -0
  384. package/payload/platform/plugins/contacts/mcp/dist/tools/contact-list.d.ts.map +1 -0
  385. package/payload/platform/plugins/contacts/mcp/dist/tools/contact-list.js +49 -0
  386. package/payload/platform/plugins/contacts/mcp/dist/tools/contact-list.js.map +1 -0
  387. package/payload/platform/plugins/contacts/mcp/dist/tools/contact-lookup.d.ts +21 -0
  388. package/payload/platform/plugins/contacts/mcp/dist/tools/contact-lookup.d.ts.map +1 -0
  389. package/payload/platform/plugins/contacts/mcp/dist/tools/contact-lookup.js +70 -0
  390. package/payload/platform/plugins/contacts/mcp/dist/tools/contact-lookup.js.map +1 -0
  391. package/payload/platform/plugins/contacts/mcp/dist/tools/contact-update.d.ts +14 -0
  392. package/payload/platform/plugins/contacts/mcp/dist/tools/contact-update.d.ts.map +1 -0
  393. package/payload/platform/plugins/contacts/mcp/dist/tools/contact-update.js +43 -0
  394. package/payload/platform/plugins/contacts/mcp/dist/tools/contact-update.js.map +1 -0
  395. package/payload/platform/plugins/contacts/mcp/dist/tools/group-create.d.ts +18 -0
  396. package/payload/platform/plugins/contacts/mcp/dist/tools/group-create.d.ts.map +1 -0
  397. package/payload/platform/plugins/contacts/mcp/dist/tools/group-create.js +95 -0
  398. package/payload/platform/plugins/contacts/mcp/dist/tools/group-create.js.map +1 -0
  399. package/payload/platform/plugins/contacts/mcp/dist/tools/group-manage.d.ts +15 -0
  400. package/payload/platform/plugins/contacts/mcp/dist/tools/group-manage.d.ts.map +1 -0
  401. package/payload/platform/plugins/contacts/mcp/dist/tools/group-manage.js +72 -0
  402. package/payload/platform/plugins/contacts/mcp/dist/tools/group-manage.js.map +1 -0
  403. package/payload/platform/plugins/contacts/mcp/package.json +19 -0
  404. package/payload/platform/plugins/deep-research/PLUGIN.md +13 -0
  405. package/payload/platform/plugins/deep-research/skills/deep-research/SKILL.md +46 -0
  406. package/payload/platform/plugins/deep-research/skills/deep-research/references/citation-styles.md +52 -0
  407. package/payload/platform/plugins/deep-research/skills/deep-research/references/research-modes.md +22 -0
  408. package/payload/platform/plugins/deep-research/skills/deep-research/references/search-strategy.md +24 -0
  409. package/payload/platform/plugins/docs/PLUGIN.md +52 -0
  410. package/payload/platform/plugins/docs/references/access-control.md +73 -0
  411. package/payload/platform/plugins/docs/references/admin-session.md +80 -0
  412. package/payload/platform/plugins/docs/references/attachments.md +44 -0
  413. package/payload/platform/plugins/docs/references/cloudflare.md +111 -0
  414. package/payload/platform/plugins/docs/references/contacts-guide.md +102 -0
  415. package/payload/platform/plugins/docs/references/deployment.md +150 -0
  416. package/payload/platform/plugins/docs/references/getting-started.md +82 -0
  417. package/payload/platform/plugins/docs/references/graph.md +149 -0
  418. package/payload/platform/plugins/docs/references/internals.md +512 -0
  419. package/payload/platform/plugins/docs/references/memory-guide.md +119 -0
  420. package/payload/platform/plugins/docs/references/migration-guide.md +90 -0
  421. package/payload/platform/plugins/docs/references/outlook-guide.md +69 -0
  422. package/payload/platform/plugins/docs/references/platform.md +111 -0
  423. package/payload/platform/plugins/docs/references/plugins-guide.md +174 -0
  424. package/payload/platform/plugins/docs/references/projects-guide.md +73 -0
  425. package/payload/platform/plugins/docs/references/settings.md +82 -0
  426. package/payload/platform/plugins/docs/references/telegram-guide.md +58 -0
  427. package/payload/platform/plugins/docs/references/troubleshooting.md +532 -0
  428. package/payload/platform/plugins/email/PLUGIN.md +49 -0
  429. package/payload/platform/plugins/email/mcp/dist/index.d.ts +2 -0
  430. package/payload/platform/plugins/email/mcp/dist/index.d.ts.map +1 -0
  431. package/payload/platform/plugins/email/mcp/dist/index.js +291 -0
  432. package/payload/platform/plugins/email/mcp/dist/index.js.map +1 -0
  433. package/payload/platform/plugins/email/mcp/dist/lib/credentials.d.ts +118 -0
  434. package/payload/platform/plugins/email/mcp/dist/lib/credentials.d.ts.map +1 -0
  435. package/payload/platform/plugins/email/mcp/dist/lib/credentials.js +364 -0
  436. package/payload/platform/plugins/email/mcp/dist/lib/credentials.js.map +1 -0
  437. package/payload/platform/plugins/email/mcp/dist/lib/embedding.d.ts +2 -0
  438. package/payload/platform/plugins/email/mcp/dist/lib/embedding.d.ts.map +1 -0
  439. package/payload/platform/plugins/email/mcp/dist/lib/embedding.js +24 -0
  440. package/payload/platform/plugins/email/mcp/dist/lib/embedding.js.map +1 -0
  441. package/payload/platform/plugins/email/mcp/dist/lib/graph.d.ts +87 -0
  442. package/payload/platform/plugins/email/mcp/dist/lib/graph.d.ts.map +1 -0
  443. package/payload/platform/plugins/email/mcp/dist/lib/graph.js +324 -0
  444. package/payload/platform/plugins/email/mcp/dist/lib/graph.js.map +1 -0
  445. package/payload/platform/plugins/email/mcp/dist/lib/imap.d.ts +215 -0
  446. package/payload/platform/plugins/email/mcp/dist/lib/imap.d.ts.map +1 -0
  447. package/payload/platform/plugins/email/mcp/dist/lib/imap.js +735 -0
  448. package/payload/platform/plugins/email/mcp/dist/lib/imap.js.map +1 -0
  449. package/payload/platform/plugins/email/mcp/dist/lib/neo4j.d.ts +5 -0
  450. package/payload/platform/plugins/email/mcp/dist/lib/neo4j.d.ts.map +1 -0
  451. package/payload/platform/plugins/email/mcp/dist/lib/neo4j.js +40 -0
  452. package/payload/platform/plugins/email/mcp/dist/lib/neo4j.js.map +1 -0
  453. package/payload/platform/plugins/email/mcp/dist/lib/providers.d.ts +32 -0
  454. package/payload/platform/plugins/email/mcp/dist/lib/providers.d.ts.map +1 -0
  455. package/payload/platform/plugins/email/mcp/dist/lib/providers.js +569 -0
  456. package/payload/platform/plugins/email/mcp/dist/lib/providers.js.map +1 -0
  457. package/payload/platform/plugins/email/mcp/dist/lib/screening.d.ts +29 -0
  458. package/payload/platform/plugins/email/mcp/dist/lib/screening.d.ts.map +1 -0
  459. package/payload/platform/plugins/email/mcp/dist/lib/screening.js +105 -0
  460. package/payload/platform/plugins/email/mcp/dist/lib/screening.js.map +1 -0
  461. package/payload/platform/plugins/email/mcp/dist/lib/smtp.d.ts +21 -0
  462. package/payload/platform/plugins/email/mcp/dist/lib/smtp.d.ts.map +1 -0
  463. package/payload/platform/plugins/email/mcp/dist/lib/smtp.js +77 -0
  464. package/payload/platform/plugins/email/mcp/dist/lib/smtp.js.map +1 -0
  465. package/payload/platform/plugins/email/mcp/dist/scripts/email-auto-respond.d.ts +38 -0
  466. package/payload/platform/plugins/email/mcp/dist/scripts/email-auto-respond.d.ts.map +1 -0
  467. package/payload/platform/plugins/email/mcp/dist/scripts/email-auto-respond.js +894 -0
  468. package/payload/platform/plugins/email/mcp/dist/scripts/email-auto-respond.js.map +1 -0
  469. package/payload/platform/plugins/email/mcp/dist/scripts/email-fetch.d.ts +25 -0
  470. package/payload/platform/plugins/email/mcp/dist/scripts/email-fetch.d.ts.map +1 -0
  471. package/payload/platform/plugins/email/mcp/dist/scripts/email-fetch.js +227 -0
  472. package/payload/platform/plugins/email/mcp/dist/scripts/email-fetch.js.map +1 -0
  473. package/payload/platform/plugins/email/mcp/dist/tools/email-auto-respond-config.d.ts +19 -0
  474. package/payload/platform/plugins/email/mcp/dist/tools/email-auto-respond-config.d.ts.map +1 -0
  475. package/payload/platform/plugins/email/mcp/dist/tools/email-auto-respond-config.js +151 -0
  476. package/payload/platform/plugins/email/mcp/dist/tools/email-auto-respond-config.js.map +1 -0
  477. package/payload/platform/plugins/email/mcp/dist/tools/email-graph-query.d.ts +22 -0
  478. package/payload/platform/plugins/email/mcp/dist/tools/email-graph-query.d.ts.map +1 -0
  479. package/payload/platform/plugins/email/mcp/dist/tools/email-graph-query.js +188 -0
  480. package/payload/platform/plugins/email/mcp/dist/tools/email-graph-query.js.map +1 -0
  481. package/payload/platform/plugins/email/mcp/dist/tools/email-otp-extract.d.ts +15 -0
  482. package/payload/platform/plugins/email/mcp/dist/tools/email-otp-extract.d.ts.map +1 -0
  483. package/payload/platform/plugins/email/mcp/dist/tools/email-otp-extract.js +142 -0
  484. package/payload/platform/plugins/email/mcp/dist/tools/email-otp-extract.js.map +1 -0
  485. package/payload/platform/plugins/email/mcp/dist/tools/email-read.d.ts +14 -0
  486. package/payload/platform/plugins/email/mcp/dist/tools/email-read.d.ts.map +1 -0
  487. package/payload/platform/plugins/email/mcp/dist/tools/email-read.js +75 -0
  488. package/payload/platform/plugins/email/mcp/dist/tools/email-read.js.map +1 -0
  489. package/payload/platform/plugins/email/mcp/dist/tools/email-reply.d.ts +10 -0
  490. package/payload/platform/plugins/email/mcp/dist/tools/email-reply.d.ts.map +1 -0
  491. package/payload/platform/plugins/email/mcp/dist/tools/email-reply.js +83 -0
  492. package/payload/platform/plugins/email/mcp/dist/tools/email-reply.js.map +1 -0
  493. package/payload/platform/plugins/email/mcp/dist/tools/email-search.d.ts +15 -0
  494. package/payload/platform/plugins/email/mcp/dist/tools/email-search.d.ts.map +1 -0
  495. package/payload/platform/plugins/email/mcp/dist/tools/email-search.js +63 -0
  496. package/payload/platform/plugins/email/mcp/dist/tools/email-search.js.map +1 -0
  497. package/payload/platform/plugins/email/mcp/dist/tools/email-send.d.ts +10 -0
  498. package/payload/platform/plugins/email/mcp/dist/tools/email-send.d.ts.map +1 -0
  499. package/payload/platform/plugins/email/mcp/dist/tools/email-send.js +31 -0
  500. package/payload/platform/plugins/email/mcp/dist/tools/email-send.js.map +1 -0
  501. package/payload/platform/plugins/email/mcp/dist/tools/email-setup.d.ts +22 -0
  502. package/payload/platform/plugins/email/mcp/dist/tools/email-setup.d.ts.map +1 -0
  503. package/payload/platform/plugins/email/mcp/dist/tools/email-setup.js +183 -0
  504. package/payload/platform/plugins/email/mcp/dist/tools/email-setup.js.map +1 -0
  505. package/payload/platform/plugins/email/mcp/dist/tools/email-status.d.ts +6 -0
  506. package/payload/platform/plugins/email/mcp/dist/tools/email-status.d.ts.map +1 -0
  507. package/payload/platform/plugins/email/mcp/dist/tools/email-status.js +43 -0
  508. package/payload/platform/plugins/email/mcp/dist/tools/email-status.js.map +1 -0
  509. package/payload/platform/plugins/email/mcp/package.json +23 -0
  510. package/payload/platform/plugins/email/references/email-reference.md +204 -0
  511. package/payload/platform/plugins/linkedin-import/PLUGIN.md +27 -0
  512. package/payload/platform/plugins/linkedin-import/skills/linkedin-import/SKILL.md +142 -0
  513. package/payload/platform/plugins/linkedin-import/skills/linkedin-import/references/connections.md +135 -0
  514. package/payload/platform/plugins/linkedin-import/skills/linkedin-import/references/profile.md +95 -0
  515. package/payload/platform/plugins/memory/PLUGIN.md +146 -0
  516. package/payload/platform/plugins/memory/bin/conversation-archive-ingest.mjs +879 -0
  517. package/payload/platform/plugins/memory/bin/conversation-archive-ingest.sh +138 -0
  518. package/payload/platform/plugins/memory/mcp/dist/index.d.ts +2 -0
  519. package/payload/platform/plugins/memory/mcp/dist/index.d.ts.map +1 -0
  520. package/payload/platform/plugins/memory/mcp/dist/index.js +1813 -0
  521. package/payload/platform/plugins/memory/mcp/dist/index.js.map +1 -0
  522. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/live-schema-source.test.d.ts +2 -0
  523. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/live-schema-source.test.d.ts.map +1 -0
  524. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/live-schema-source.test.js +92 -0
  525. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/live-schema-source.test.js.map +1 -0
  526. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/llm-classifier.test.d.ts +2 -0
  527. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/llm-classifier.test.d.ts.map +1 -0
  528. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/llm-classifier.test.js +225 -0
  529. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/llm-classifier.test.js.map +1 -0
  530. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/schema-loader.test.d.ts +2 -0
  531. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/schema-loader.test.d.ts.map +1 -0
  532. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/schema-loader.test.js +100 -0
  533. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/schema-loader.test.js.map +1 -0
  534. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/schema-validator.test.d.ts +2 -0
  535. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/schema-validator.test.d.ts.map +1 -0
  536. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/schema-validator.test.js +448 -0
  537. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/schema-validator.test.js.map +1 -0
  538. package/payload/platform/plugins/memory/mcp/dist/lib/attachments.d.ts +37 -0
  539. package/payload/platform/plugins/memory/mcp/dist/lib/attachments.d.ts.map +1 -0
  540. package/payload/platform/plugins/memory/mcp/dist/lib/attachments.js +69 -0
  541. package/payload/platform/plugins/memory/mcp/dist/lib/attachments.js.map +1 -0
  542. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-normalisers/index.d.ts +5 -0
  543. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-normalisers/index.d.ts.map +1 -0
  544. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-normalisers/index.js +30 -0
  545. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-normalisers/index.js.map +1 -0
  546. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-normalisers/timestamp-scanner.d.ts +49 -0
  547. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-normalisers/timestamp-scanner.d.ts.map +1 -0
  548. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-normalisers/timestamp-scanner.js +35 -0
  549. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-normalisers/timestamp-scanner.js.map +1 -0
  550. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-normalisers/types.d.ts +47 -0
  551. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-normalisers/types.d.ts.map +1 -0
  552. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-normalisers/types.js +31 -0
  553. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-normalisers/types.js.map +1 -0
  554. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-normalisers/whatsapp-text.d.ts +3 -0
  555. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-normalisers/whatsapp-text.d.ts.map +1 -0
  556. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-normalisers/whatsapp-text.js +155 -0
  557. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-normalisers/whatsapp-text.js.map +1 -0
  558. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-pipeline/delta-cursor.d.ts +11 -0
  559. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-pipeline/delta-cursor.d.ts.map +1 -0
  560. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-pipeline/delta-cursor.js +20 -0
  561. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-pipeline/delta-cursor.js.map +1 -0
  562. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-pipeline/derive-keys.d.ts +14 -0
  563. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-pipeline/derive-keys.d.ts.map +1 -0
  564. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-pipeline/derive-keys.js +38 -0
  565. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-pipeline/derive-keys.js.map +1 -0
  566. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-pipeline/sender-bind.d.ts +16 -0
  567. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-pipeline/sender-bind.d.ts.map +1 -0
  568. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-pipeline/sender-bind.js +59 -0
  569. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-pipeline/sender-bind.js.map +1 -0
  570. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-pipeline/sessionize.d.ts +9 -0
  571. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-pipeline/sessionize.d.ts.map +1 -0
  572. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-pipeline/sessionize.js +32 -0
  573. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-pipeline/sessionize.js.map +1 -0
  574. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-pipeline/to-turn-text.d.ts +3 -0
  575. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-pipeline/to-turn-text.d.ts.map +1 -0
  576. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-pipeline/to-turn-text.js +29 -0
  577. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-pipeline/to-turn-text.js.map +1 -0
  578. package/payload/platform/plugins/memory/mcp/dist/lib/document-chunker.d.ts +45 -0
  579. package/payload/platform/plugins/memory/mcp/dist/lib/document-chunker.d.ts.map +1 -0
  580. package/payload/platform/plugins/memory/mcp/dist/lib/document-chunker.js +125 -0
  581. package/payload/platform/plugins/memory/mcp/dist/lib/document-chunker.js.map +1 -0
  582. package/payload/platform/plugins/memory/mcp/dist/lib/document-hierarchy.d.ts +9 -0
  583. package/payload/platform/plugins/memory/mcp/dist/lib/document-hierarchy.d.ts.map +1 -0
  584. package/payload/platform/plugins/memory/mcp/dist/lib/document-hierarchy.js +61 -0
  585. package/payload/platform/plugins/memory/mcp/dist/lib/document-hierarchy.js.map +1 -0
  586. package/payload/platform/plugins/memory/mcp/dist/lib/embeddings.d.ts +3 -0
  587. package/payload/platform/plugins/memory/mcp/dist/lib/embeddings.d.ts.map +1 -0
  588. package/payload/platform/plugins/memory/mcp/dist/lib/embeddings.js +29 -0
  589. package/payload/platform/plugins/memory/mcp/dist/lib/embeddings.js.map +1 -0
  590. package/payload/platform/plugins/memory/mcp/dist/lib/filter-token.d.ts +36 -0
  591. package/payload/platform/plugins/memory/mcp/dist/lib/filter-token.d.ts.map +1 -0
  592. package/payload/platform/plugins/memory/mcp/dist/lib/filter-token.js +86 -0
  593. package/payload/platform/plugins/memory/mcp/dist/lib/filter-token.js.map +1 -0
  594. package/payload/platform/plugins/memory/mcp/dist/lib/graph-prune.d.ts +42 -0
  595. package/payload/platform/plugins/memory/mcp/dist/lib/graph-prune.d.ts.map +1 -0
  596. package/payload/platform/plugins/memory/mcp/dist/lib/graph-prune.js +114 -0
  597. package/payload/platform/plugins/memory/mcp/dist/lib/graph-prune.js.map +1 -0
  598. package/payload/platform/plugins/memory/mcp/dist/lib/graph-write-gate.d.ts +38 -0
  599. package/payload/platform/plugins/memory/mcp/dist/lib/graph-write-gate.d.ts.map +1 -0
  600. package/payload/platform/plugins/memory/mcp/dist/lib/graph-write-gate.js +89 -0
  601. package/payload/platform/plugins/memory/mcp/dist/lib/graph-write-gate.js.map +1 -0
  602. package/payload/platform/plugins/memory/mcp/dist/lib/live-schema-source.d.ts +136 -0
  603. package/payload/platform/plugins/memory/mcp/dist/lib/live-schema-source.d.ts.map +1 -0
  604. package/payload/platform/plugins/memory/mcp/dist/lib/live-schema-source.js +180 -0
  605. package/payload/platform/plugins/memory/mcp/dist/lib/live-schema-source.js.map +1 -0
  606. package/payload/platform/plugins/memory/mcp/dist/lib/llm-classifier.d.ts +246 -0
  607. package/payload/platform/plugins/memory/mcp/dist/lib/llm-classifier.d.ts.map +1 -0
  608. package/payload/platform/plugins/memory/mcp/dist/lib/llm-classifier.js +828 -0
  609. package/payload/platform/plugins/memory/mcp/dist/lib/llm-classifier.js.map +1 -0
  610. package/payload/platform/plugins/memory/mcp/dist/lib/llm-ranker.d.ts +63 -0
  611. package/payload/platform/plugins/memory/mcp/dist/lib/llm-ranker.d.ts.map +1 -0
  612. package/payload/platform/plugins/memory/mcp/dist/lib/llm-ranker.js +210 -0
  613. package/payload/platform/plugins/memory/mcp/dist/lib/llm-ranker.js.map +1 -0
  614. package/payload/platform/plugins/memory/mcp/dist/lib/neo4j.d.ts +5 -0
  615. package/payload/platform/plugins/memory/mcp/dist/lib/neo4j.d.ts.map +1 -0
  616. package/payload/platform/plugins/memory/mcp/dist/lib/neo4j.js +40 -0
  617. package/payload/platform/plugins/memory/mcp/dist/lib/neo4j.js.map +1 -0
  618. package/payload/platform/plugins/memory/mcp/dist/lib/schema-loader.d.ts +113 -0
  619. package/payload/platform/plugins/memory/mcp/dist/lib/schema-loader.d.ts.map +1 -0
  620. package/payload/platform/plugins/memory/mcp/dist/lib/schema-loader.js +455 -0
  621. package/payload/platform/plugins/memory/mcp/dist/lib/schema-loader.js.map +1 -0
  622. package/payload/platform/plugins/memory/mcp/dist/lib/schema-validator.d.ts +83 -0
  623. package/payload/platform/plugins/memory/mcp/dist/lib/schema-validator.d.ts.map +1 -0
  624. package/payload/platform/plugins/memory/mcp/dist/lib/schema-validator.js +209 -0
  625. package/payload/platform/plugins/memory/mcp/dist/lib/schema-validator.js.map +1 -0
  626. package/payload/platform/plugins/memory/mcp/dist/lib/uuid.d.ts +3 -0
  627. package/payload/platform/plugins/memory/mcp/dist/lib/uuid.d.ts.map +1 -0
  628. package/payload/platform/plugins/memory/mcp/dist/lib/uuid.js +12 -0
  629. package/payload/platform/plugins/memory/mcp/dist/lib/uuid.js.map +1 -0
  630. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-archive-derive-insights.test.d.ts +2 -0
  631. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-archive-derive-insights.test.d.ts.map +1 -0
  632. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-archive-derive-insights.test.js +97 -0
  633. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-archive-derive-insights.test.js.map +1 -0
  634. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-archive-enrich-rejection.test.d.ts +2 -0
  635. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-archive-enrich-rejection.test.d.ts.map +1 -0
  636. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-archive-enrich-rejection.test.js +184 -0
  637. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-archive-enrich-rejection.test.js.map +1 -0
  638. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-normalisers-source-agnosticism.test.d.ts +2 -0
  639. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-normalisers-source-agnosticism.test.d.ts.map +1 -0
  640. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-normalisers-source-agnosticism.test.js +73 -0
  641. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-normalisers-source-agnosticism.test.js.map +1 -0
  642. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-normalisers-whatsapp-text.test.d.ts +2 -0
  643. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-normalisers-whatsapp-text.test.d.ts.map +1 -0
  644. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-normalisers-whatsapp-text.test.js +109 -0
  645. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-normalisers-whatsapp-text.test.js.map +1 -0
  646. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-archive-write.test.d.ts +2 -0
  647. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-archive-write.test.d.ts.map +1 -0
  648. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-archive-write.test.js +84 -0
  649. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-archive-write.test.js.map +1 -0
  650. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-ingest.test.d.ts +2 -0
  651. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-ingest.test.d.ts.map +1 -0
  652. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-ingest.test.js +106 -0
  653. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-ingest.test.js.map +1 -0
  654. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/profile-update-not-applicable.test.d.ts +2 -0
  655. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/profile-update-not-applicable.test.d.ts.map +1 -0
  656. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/profile-update-not-applicable.test.js +87 -0
  657. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/profile-update-not-applicable.test.js.map +1 -0
  658. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/profile-update-personfields-open.test.d.ts +2 -0
  659. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/profile-update-personfields-open.test.d.ts.map +1 -0
  660. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/profile-update-personfields-open.test.js +148 -0
  661. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/profile-update-personfields-open.test.js.map +1 -0
  662. package/payload/platform/plugins/memory/mcp/dist/tools/conversation-archive-derive-insights.d.ts +89 -0
  663. package/payload/platform/plugins/memory/mcp/dist/tools/conversation-archive-derive-insights.d.ts.map +1 -0
  664. package/payload/platform/plugins/memory/mcp/dist/tools/conversation-archive-derive-insights.js +542 -0
  665. package/payload/platform/plugins/memory/mcp/dist/tools/conversation-archive-derive-insights.js.map +1 -0
  666. package/payload/platform/plugins/memory/mcp/dist/tools/conversation-archive-enrich-rejection.d.ts +41 -0
  667. package/payload/platform/plugins/memory/mcp/dist/tools/conversation-archive-enrich-rejection.d.ts.map +1 -0
  668. package/payload/platform/plugins/memory/mcp/dist/tools/conversation-archive-enrich-rejection.js +116 -0
  669. package/payload/platform/plugins/memory/mcp/dist/tools/conversation-archive-enrich-rejection.js.map +1 -0
  670. package/payload/platform/plugins/memory/mcp/dist/tools/conversation-memory-expunge.d.ts +8 -0
  671. package/payload/platform/plugins/memory/mcp/dist/tools/conversation-memory-expunge.d.ts.map +1 -0
  672. package/payload/platform/plugins/memory/mcp/dist/tools/conversation-memory-expunge.js +7 -0
  673. package/payload/platform/plugins/memory/mcp/dist/tools/conversation-memory-expunge.js.map +1 -0
  674. package/payload/platform/plugins/memory/mcp/dist/tools/graph-prune-denylist-add.d.ts +7 -0
  675. package/payload/platform/plugins/memory/mcp/dist/tools/graph-prune-denylist-add.d.ts.map +1 -0
  676. package/payload/platform/plugins/memory/mcp/dist/tools/graph-prune-denylist-add.js +28 -0
  677. package/payload/platform/plugins/memory/mcp/dist/tools/graph-prune-denylist-add.js.map +1 -0
  678. package/payload/platform/plugins/memory/mcp/dist/tools/graph-prune-denylist-list.d.ts +7 -0
  679. package/payload/platform/plugins/memory/mcp/dist/tools/graph-prune-denylist-list.d.ts.map +1 -0
  680. package/payload/platform/plugins/memory/mcp/dist/tools/graph-prune-denylist-list.js +7 -0
  681. package/payload/platform/plugins/memory/mcp/dist/tools/graph-prune-denylist-list.js.map +1 -0
  682. package/payload/platform/plugins/memory/mcp/dist/tools/graph-prune-denylist-remove.d.ts +7 -0
  683. package/payload/platform/plugins/memory/mcp/dist/tools/graph-prune-denylist-remove.d.ts.map +1 -0
  684. package/payload/platform/plugins/memory/mcp/dist/tools/graph-prune-denylist-remove.js +27 -0
  685. package/payload/platform/plugins/memory/mcp/dist/tools/graph-prune-denylist-remove.js.map +1 -0
  686. package/payload/platform/plugins/memory/mcp/dist/tools/memory-archive-write.d.ts +54 -0
  687. package/payload/platform/plugins/memory/mcp/dist/tools/memory-archive-write.d.ts.map +1 -0
  688. package/payload/platform/plugins/memory/mcp/dist/tools/memory-archive-write.js +231 -0
  689. package/payload/platform/plugins/memory/mcp/dist/tools/memory-archive-write.js.map +1 -0
  690. package/payload/platform/plugins/memory/mcp/dist/tools/memory-classify.d.ts +34 -0
  691. package/payload/platform/plugins/memory/mcp/dist/tools/memory-classify.d.ts.map +1 -0
  692. package/payload/platform/plugins/memory/mcp/dist/tools/memory-classify.js +58 -0
  693. package/payload/platform/plugins/memory/mcp/dist/tools/memory-classify.js.map +1 -0
  694. package/payload/platform/plugins/memory/mcp/dist/tools/memory-delete.d.ts +57 -0
  695. package/payload/platform/plugins/memory/mcp/dist/tools/memory-delete.d.ts.map +1 -0
  696. package/payload/platform/plugins/memory/mcp/dist/tools/memory-delete.js +106 -0
  697. package/payload/platform/plugins/memory/mcp/dist/tools/memory-delete.js.map +1 -0
  698. package/payload/platform/plugins/memory/mcp/dist/tools/memory-edit-attachment.d.ts +16 -0
  699. package/payload/platform/plugins/memory/mcp/dist/tools/memory-edit-attachment.d.ts.map +1 -0
  700. package/payload/platform/plugins/memory/mcp/dist/tools/memory-edit-attachment.js +91 -0
  701. package/payload/platform/plugins/memory/mcp/dist/tools/memory-edit-attachment.js.map +1 -0
  702. package/payload/platform/plugins/memory/mcp/dist/tools/memory-empty-trash.d.ts +22 -0
  703. package/payload/platform/plugins/memory/mcp/dist/tools/memory-empty-trash.d.ts.map +1 -0
  704. package/payload/platform/plugins/memory/mcp/dist/tools/memory-empty-trash.js +36 -0
  705. package/payload/platform/plugins/memory/mcp/dist/tools/memory-empty-trash.js.map +1 -0
  706. package/payload/platform/plugins/memory/mcp/dist/tools/memory-find-candidates.d.ts +58 -0
  707. package/payload/platform/plugins/memory/mcp/dist/tools/memory-find-candidates.d.ts.map +1 -0
  708. package/payload/platform/plugins/memory/mcp/dist/tools/memory-find-candidates.js +125 -0
  709. package/payload/platform/plugins/memory/mcp/dist/tools/memory-find-candidates.js.map +1 -0
  710. package/payload/platform/plugins/memory/mcp/dist/tools/memory-ingest-extract.d.ts +28 -0
  711. package/payload/platform/plugins/memory/mcp/dist/tools/memory-ingest-extract.d.ts.map +1 -0
  712. package/payload/platform/plugins/memory/mcp/dist/tools/memory-ingest-extract.js +93 -0
  713. package/payload/platform/plugins/memory/mcp/dist/tools/memory-ingest-extract.js.map +1 -0
  714. package/payload/platform/plugins/memory/mcp/dist/tools/memory-ingest-web.d.ts +20 -0
  715. package/payload/platform/plugins/memory/mcp/dist/tools/memory-ingest-web.d.ts.map +1 -0
  716. package/payload/platform/plugins/memory/mcp/dist/tools/memory-ingest-web.js +87 -0
  717. package/payload/platform/plugins/memory/mcp/dist/tools/memory-ingest-web.js.map +1 -0
  718. package/payload/platform/plugins/memory/mcp/dist/tools/memory-ingest.d.ts +129 -0
  719. package/payload/platform/plugins/memory/mcp/dist/tools/memory-ingest.d.ts.map +1 -0
  720. package/payload/platform/plugins/memory/mcp/dist/tools/memory-ingest.js +827 -0
  721. package/payload/platform/plugins/memory/mcp/dist/tools/memory-ingest.js.map +1 -0
  722. package/payload/platform/plugins/memory/mcp/dist/tools/memory-list-attachments.d.ts +19 -0
  723. package/payload/platform/plugins/memory/mcp/dist/tools/memory-list-attachments.d.ts.map +1 -0
  724. package/payload/platform/plugins/memory/mcp/dist/tools/memory-list-attachments.js +125 -0
  725. package/payload/platform/plugins/memory/mcp/dist/tools/memory-list-attachments.js.map +1 -0
  726. package/payload/platform/plugins/memory/mcp/dist/tools/memory-rank.d.ts +61 -0
  727. package/payload/platform/plugins/memory/mcp/dist/tools/memory-rank.d.ts.map +1 -0
  728. package/payload/platform/plugins/memory/mcp/dist/tools/memory-rank.js +102 -0
  729. package/payload/platform/plugins/memory/mcp/dist/tools/memory-rank.js.map +1 -0
  730. package/payload/platform/plugins/memory/mcp/dist/tools/memory-read-attachment.d.ts +12 -0
  731. package/payload/platform/plugins/memory/mcp/dist/tools/memory-read-attachment.d.ts.map +1 -0
  732. package/payload/platform/plugins/memory/mcp/dist/tools/memory-read-attachment.js +100 -0
  733. package/payload/platform/plugins/memory/mcp/dist/tools/memory-read-attachment.js.map +1 -0
  734. package/payload/platform/plugins/memory/mcp/dist/tools/memory-reindex.d.ts +9 -0
  735. package/payload/platform/plugins/memory/mcp/dist/tools/memory-reindex.d.ts.map +1 -0
  736. package/payload/platform/plugins/memory/mcp/dist/tools/memory-reindex.js +84 -0
  737. package/payload/platform/plugins/memory/mcp/dist/tools/memory-reindex.js.map +1 -0
  738. package/payload/platform/plugins/memory/mcp/dist/tools/memory-rename-attachment.d.ts +13 -0
  739. package/payload/platform/plugins/memory/mcp/dist/tools/memory-rename-attachment.d.ts.map +1 -0
  740. package/payload/platform/plugins/memory/mcp/dist/tools/memory-rename-attachment.js +63 -0
  741. package/payload/platform/plugins/memory/mcp/dist/tools/memory-rename-attachment.js.map +1 -0
  742. package/payload/platform/plugins/memory/mcp/dist/tools/memory-restore.d.ts +24 -0
  743. package/payload/platform/plugins/memory/mcp/dist/tools/memory-restore.d.ts.map +1 -0
  744. package/payload/platform/plugins/memory/mcp/dist/tools/memory-restore.js +40 -0
  745. package/payload/platform/plugins/memory/mcp/dist/tools/memory-restore.js.map +1 -0
  746. package/payload/platform/plugins/memory/mcp/dist/tools/memory-search.d.ts +5 -0
  747. package/payload/platform/plugins/memory/mcp/dist/tools/memory-search.d.ts.map +1 -0
  748. package/payload/platform/plugins/memory/mcp/dist/tools/memory-search.js +42 -0
  749. package/payload/platform/plugins/memory/mcp/dist/tools/memory-search.js.map +1 -0
  750. package/payload/platform/plugins/memory/mcp/dist/tools/memory-update.d.ts +13 -0
  751. package/payload/platform/plugins/memory/mcp/dist/tools/memory-update.d.ts.map +1 -0
  752. package/payload/platform/plugins/memory/mcp/dist/tools/memory-update.js +77 -0
  753. package/payload/platform/plugins/memory/mcp/dist/tools/memory-update.js.map +1 -0
  754. package/payload/platform/plugins/memory/mcp/dist/tools/memory-write.d.ts +47 -0
  755. package/payload/platform/plugins/memory/mcp/dist/tools/memory-write.d.ts.map +1 -0
  756. package/payload/platform/plugins/memory/mcp/dist/tools/memory-write.js +173 -0
  757. package/payload/platform/plugins/memory/mcp/dist/tools/memory-write.js.map +1 -0
  758. package/payload/platform/plugins/memory/mcp/dist/tools/profile-delete.d.ts +24 -0
  759. package/payload/platform/plugins/memory/mcp/dist/tools/profile-delete.d.ts.map +1 -0
  760. package/payload/platform/plugins/memory/mcp/dist/tools/profile-delete.js +31 -0
  761. package/payload/platform/plugins/memory/mcp/dist/tools/profile-delete.js.map +1 -0
  762. package/payload/platform/plugins/memory/mcp/dist/tools/profile-read.d.ts +44 -0
  763. package/payload/platform/plugins/memory/mcp/dist/tools/profile-read.d.ts.map +1 -0
  764. package/payload/platform/plugins/memory/mcp/dist/tools/profile-read.js +322 -0
  765. package/payload/platform/plugins/memory/mcp/dist/tools/profile-read.js.map +1 -0
  766. package/payload/platform/plugins/memory/mcp/dist/tools/profile-update.d.ts +65 -0
  767. package/payload/platform/plugins/memory/mcp/dist/tools/profile-update.d.ts.map +1 -0
  768. package/payload/platform/plugins/memory/mcp/dist/tools/profile-update.js +369 -0
  769. package/payload/platform/plugins/memory/mcp/dist/tools/profile-update.js.map +1 -0
  770. package/payload/platform/plugins/memory/mcp/package.json +24 -0
  771. package/payload/platform/plugins/memory/mcp/scripts/boot-smoke.sh +69 -0
  772. package/payload/platform/plugins/memory/mcp/scripts/graph/accept.sh +217 -0
  773. package/payload/platform/plugins/memory/mcp/scripts/graph/fixture.cypher +59 -0
  774. package/payload/platform/plugins/memory/mcp/vitest.config.ts +15 -0
  775. package/payload/platform/plugins/memory/references/graph-primitives.md +342 -0
  776. package/payload/platform/plugins/memory/references/schema-base.md +234 -0
  777. package/payload/platform/plugins/memory/references/schema-creator.md +35 -0
  778. package/payload/platform/plugins/memory/references/schema-estate-agent.md +35 -0
  779. package/payload/platform/plugins/memory/references/schema-food-beverage.md +32 -0
  780. package/payload/platform/plugins/memory/references/schema-hospitality.md +31 -0
  781. package/payload/platform/plugins/memory/references/schema-logistics.md +30 -0
  782. package/payload/platform/plugins/memory/references/schema-professional-services.md +33 -0
  783. package/payload/platform/plugins/memory/references/schema-retail.md +33 -0
  784. package/payload/platform/plugins/memory/references/schema-trades.md +36 -0
  785. package/payload/platform/plugins/memory/skills/conversation-archive/SKILL.md +202 -0
  786. package/payload/platform/plugins/memory/skills/conversation-archive-enrich/SKILL.md +159 -0
  787. package/payload/platform/plugins/memory/skills/conversational-memory/SKILL.md +108 -0
  788. package/payload/platform/plugins/memory/skills/document-ingest/SKILL.md +267 -0
  789. package/payload/platform/plugins/outlook/PLUGIN.md +48 -0
  790. package/payload/platform/plugins/outlook/mcp/dist/__tests__/graph-client.test.d.ts +2 -0
  791. package/payload/platform/plugins/outlook/mcp/dist/__tests__/graph-client.test.d.ts.map +1 -0
  792. package/payload/platform/plugins/outlook/mcp/dist/__tests__/graph-client.test.js +94 -0
  793. package/payload/platform/plugins/outlook/mcp/dist/__tests__/graph-client.test.js.map +1 -0
  794. package/payload/platform/plugins/outlook/mcp/dist/__tests__/log.test.d.ts +2 -0
  795. package/payload/platform/plugins/outlook/mcp/dist/__tests__/log.test.d.ts.map +1 -0
  796. package/payload/platform/plugins/outlook/mcp/dist/__tests__/log.test.js +31 -0
  797. package/payload/platform/plugins/outlook/mcp/dist/__tests__/log.test.js.map +1 -0
  798. package/payload/platform/plugins/outlook/mcp/dist/__tests__/pkce-flow.test.d.ts +2 -0
  799. package/payload/platform/plugins/outlook/mcp/dist/__tests__/pkce-flow.test.d.ts.map +1 -0
  800. package/payload/platform/plugins/outlook/mcp/dist/__tests__/pkce-flow.test.js +213 -0
  801. package/payload/platform/plugins/outlook/mcp/dist/__tests__/pkce-flow.test.js.map +1 -0
  802. package/payload/platform/plugins/outlook/mcp/dist/__tests__/token-store.test.d.ts +2 -0
  803. package/payload/platform/plugins/outlook/mcp/dist/__tests__/token-store.test.d.ts.map +1 -0
  804. package/payload/platform/plugins/outlook/mcp/dist/__tests__/token-store.test.js +130 -0
  805. package/payload/platform/plugins/outlook/mcp/dist/__tests__/token-store.test.js.map +1 -0
  806. package/payload/platform/plugins/outlook/mcp/dist/auth/pkce-flow.d.ts +65 -0
  807. package/payload/platform/plugins/outlook/mcp/dist/auth/pkce-flow.d.ts.map +1 -0
  808. package/payload/platform/plugins/outlook/mcp/dist/auth/pkce-flow.js +261 -0
  809. package/payload/platform/plugins/outlook/mcp/dist/auth/pkce-flow.js.map +1 -0
  810. package/payload/platform/plugins/outlook/mcp/dist/auth/token-store.d.ts +61 -0
  811. package/payload/platform/plugins/outlook/mcp/dist/auth/token-store.d.ts.map +1 -0
  812. package/payload/platform/plugins/outlook/mcp/dist/auth/token-store.js +170 -0
  813. package/payload/platform/plugins/outlook/mcp/dist/auth/token-store.js.map +1 -0
  814. package/payload/platform/plugins/outlook/mcp/dist/index.d.ts +18 -0
  815. package/payload/platform/plugins/outlook/mcp/dist/index.d.ts.map +1 -0
  816. package/payload/platform/plugins/outlook/mcp/dist/index.js +152 -0
  817. package/payload/platform/plugins/outlook/mcp/dist/index.js.map +1 -0
  818. package/payload/platform/plugins/outlook/mcp/dist/lib/graph-client.d.ts +60 -0
  819. package/payload/platform/plugins/outlook/mcp/dist/lib/graph-client.d.ts.map +1 -0
  820. package/payload/platform/plugins/outlook/mcp/dist/lib/graph-client.js +189 -0
  821. package/payload/platform/plugins/outlook/mcp/dist/lib/graph-client.js.map +1 -0
  822. package/payload/platform/plugins/outlook/mcp/dist/lib/log.d.ts +23 -0
  823. package/payload/platform/plugins/outlook/mcp/dist/lib/log.d.ts.map +1 -0
  824. package/payload/platform/plugins/outlook/mcp/dist/lib/log.js +53 -0
  825. package/payload/platform/plugins/outlook/mcp/dist/lib/log.js.map +1 -0
  826. package/payload/platform/plugins/outlook/mcp/dist/tools/account-register.d.ts +26 -0
  827. package/payload/platform/plugins/outlook/mcp/dist/tools/account-register.d.ts.map +1 -0
  828. package/payload/platform/plugins/outlook/mcp/dist/tools/account-register.js +50 -0
  829. package/payload/platform/plugins/outlook/mcp/dist/tools/account-register.js.map +1 -0
  830. package/payload/platform/plugins/outlook/mcp/dist/tools/calendar-event.d.ts +12 -0
  831. package/payload/platform/plugins/outlook/mcp/dist/tools/calendar-event.d.ts.map +1 -0
  832. package/payload/platform/plugins/outlook/mcp/dist/tools/calendar-event.js +32 -0
  833. package/payload/platform/plugins/outlook/mcp/dist/tools/calendar-event.js.map +1 -0
  834. package/payload/platform/plugins/outlook/mcp/dist/tools/calendar-list.d.ts +59 -0
  835. package/payload/platform/plugins/outlook/mcp/dist/tools/calendar-list.d.ts.map +1 -0
  836. package/payload/platform/plugins/outlook/mcp/dist/tools/calendar-list.js +54 -0
  837. package/payload/platform/plugins/outlook/mcp/dist/tools/calendar-list.js.map +1 -0
  838. package/payload/platform/plugins/outlook/mcp/dist/tools/contacts-list.d.ts +14 -0
  839. package/payload/platform/plugins/outlook/mcp/dist/tools/contacts-list.d.ts.map +1 -0
  840. package/payload/platform/plugins/outlook/mcp/dist/tools/contacts-list.js +45 -0
  841. package/payload/platform/plugins/outlook/mcp/dist/tools/contacts-list.js.map +1 -0
  842. package/payload/platform/plugins/outlook/mcp/dist/tools/mail-list.d.ts +15 -0
  843. package/payload/platform/plugins/outlook/mcp/dist/tools/mail-list.d.ts.map +1 -0
  844. package/payload/platform/plugins/outlook/mcp/dist/tools/mail-list.js +48 -0
  845. package/payload/platform/plugins/outlook/mcp/dist/tools/mail-list.js.map +1 -0
  846. package/payload/platform/plugins/outlook/mcp/dist/tools/mail-search.d.ts +8 -0
  847. package/payload/platform/plugins/outlook/mcp/dist/tools/mail-search.d.ts.map +1 -0
  848. package/payload/platform/plugins/outlook/mcp/dist/tools/mail-search.js +49 -0
  849. package/payload/platform/plugins/outlook/mcp/dist/tools/mail-search.js.map +1 -0
  850. package/payload/platform/plugins/outlook/mcp/dist/tools/mailbox-info.d.ts +19 -0
  851. package/payload/platform/plugins/outlook/mcp/dist/tools/mailbox-info.d.ts.map +1 -0
  852. package/payload/platform/plugins/outlook/mcp/dist/tools/mailbox-info.js +58 -0
  853. package/payload/platform/plugins/outlook/mcp/dist/tools/mailbox-info.js.map +1 -0
  854. package/payload/platform/plugins/outlook/mcp/package.json +20 -0
  855. package/payload/platform/plugins/outlook/mcp/scripts/verify-doc-impl.sh +109 -0
  856. package/payload/platform/plugins/outlook/references/auth.md +118 -0
  857. package/payload/platform/plugins/outlook/references/graph-surfaces.md +114 -0
  858. package/payload/platform/plugins/outlook/skills/outlook/SKILL.md +65 -0
  859. package/payload/platform/plugins/projects/PLUGIN.md +90 -0
  860. package/payload/platform/plugins/projects/references/investigation.md +63 -0
  861. package/payload/platform/plugins/projects/references/retrospective.md +71 -0
  862. package/payload/platform/plugins/projects/references/review.md +51 -0
  863. package/payload/platform/plugins/projects/references/sprint.md +168 -0
  864. package/payload/platform/plugins/replicate/PLUGIN.md +23 -0
  865. package/payload/platform/plugins/replicate/mcp/dist/index.d.ts +2 -0
  866. package/payload/platform/plugins/replicate/mcp/dist/index.d.ts.map +1 -0
  867. package/payload/platform/plugins/replicate/mcp/dist/index.js +106 -0
  868. package/payload/platform/plugins/replicate/mcp/dist/index.js.map +1 -0
  869. package/payload/platform/plugins/replicate/mcp/dist/lib/replicate-key.d.ts +15 -0
  870. package/payload/platform/plugins/replicate/mcp/dist/lib/replicate-key.d.ts.map +1 -0
  871. package/payload/platform/plugins/replicate/mcp/dist/lib/replicate-key.js +73 -0
  872. package/payload/platform/plugins/replicate/mcp/dist/lib/replicate-key.js.map +1 -0
  873. package/payload/platform/plugins/replicate/mcp/dist/tools/image-generate.d.ts +14 -0
  874. package/payload/platform/plugins/replicate/mcp/dist/tools/image-generate.d.ts.map +1 -0
  875. package/payload/platform/plugins/replicate/mcp/dist/tools/image-generate.js +191 -0
  876. package/payload/platform/plugins/replicate/mcp/dist/tools/image-generate.js.map +1 -0
  877. package/payload/platform/plugins/replicate/mcp/package.json +21 -0
  878. package/payload/platform/plugins/sales/PLUGIN.md +106 -0
  879. package/payload/platform/plugins/sales/references/close-tracking.md +69 -0
  880. package/payload/platform/plugins/sales/references/comparisons.md +99 -0
  881. package/payload/platform/plugins/sales/references/competitive-positioning.md +51 -0
  882. package/payload/platform/plugins/sales/references/faq.md +77 -0
  883. package/payload/platform/plugins/sales/references/objection-handling.md +157 -0
  884. package/payload/platform/plugins/sales/references/pricing.md +101 -0
  885. package/payload/platform/plugins/scheduling/PLUGIN.md +103 -0
  886. package/payload/platform/plugins/scheduling/mcp/dist/__tests__/time-resolve-description.test.d.ts +2 -0
  887. package/payload/platform/plugins/scheduling/mcp/dist/__tests__/time-resolve-description.test.d.ts.map +1 -0
  888. package/payload/platform/plugins/scheduling/mcp/dist/__tests__/time-resolve-description.test.js +16 -0
  889. package/payload/platform/plugins/scheduling/mcp/dist/__tests__/time-resolve-description.test.js.map +1 -0
  890. package/payload/platform/plugins/scheduling/mcp/dist/index.d.ts +2 -0
  891. package/payload/platform/plugins/scheduling/mcp/dist/index.d.ts.map +1 -0
  892. package/payload/platform/plugins/scheduling/mcp/dist/index.js +315 -0
  893. package/payload/platform/plugins/scheduling/mcp/dist/index.js.map +1 -0
  894. package/payload/platform/plugins/scheduling/mcp/dist/lib/__tests__/getUserTimezone.test.d.ts +2 -0
  895. package/payload/platform/plugins/scheduling/mcp/dist/lib/__tests__/getUserTimezone.test.d.ts.map +1 -0
  896. package/payload/platform/plugins/scheduling/mcp/dist/lib/__tests__/getUserTimezone.test.js +119 -0
  897. package/payload/platform/plugins/scheduling/mcp/dist/lib/__tests__/getUserTimezone.test.js.map +1 -0
  898. package/payload/platform/plugins/scheduling/mcp/dist/lib/embedding.d.ts +2 -0
  899. package/payload/platform/plugins/scheduling/mcp/dist/lib/embedding.d.ts.map +1 -0
  900. package/payload/platform/plugins/scheduling/mcp/dist/lib/embedding.js +19 -0
  901. package/payload/platform/plugins/scheduling/mcp/dist/lib/embedding.js.map +1 -0
  902. package/payload/platform/plugins/scheduling/mcp/dist/lib/ics.d.ts +47 -0
  903. package/payload/platform/plugins/scheduling/mcp/dist/lib/ics.d.ts.map +1 -0
  904. package/payload/platform/plugins/scheduling/mcp/dist/lib/ics.js +362 -0
  905. package/payload/platform/plugins/scheduling/mcp/dist/lib/ics.js.map +1 -0
  906. package/payload/platform/plugins/scheduling/mcp/dist/lib/neo4j.d.ts +30 -0
  907. package/payload/platform/plugins/scheduling/mcp/dist/lib/neo4j.d.ts.map +1 -0
  908. package/payload/platform/plugins/scheduling/mcp/dist/lib/neo4j.js +89 -0
  909. package/payload/platform/plugins/scheduling/mcp/dist/lib/neo4j.js.map +1 -0
  910. package/payload/platform/plugins/scheduling/mcp/dist/lib/time-format.d.ts +48 -0
  911. package/payload/platform/plugins/scheduling/mcp/dist/lib/time-format.d.ts.map +1 -0
  912. package/payload/platform/plugins/scheduling/mcp/dist/lib/time-format.js +140 -0
  913. package/payload/platform/plugins/scheduling/mcp/dist/lib/time-format.js.map +1 -0
  914. package/payload/platform/plugins/scheduling/mcp/dist/scripts/check-due-events.d.ts +20 -0
  915. package/payload/platform/plugins/scheduling/mcp/dist/scripts/check-due-events.d.ts.map +1 -0
  916. package/payload/platform/plugins/scheduling/mcp/dist/scripts/check-due-events.js +568 -0
  917. package/payload/platform/plugins/scheduling/mcp/dist/scripts/check-due-events.js.map +1 -0
  918. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-cancel.d.ts +7 -0
  919. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-cancel.d.ts.map +1 -0
  920. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-cancel.js +23 -0
  921. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-cancel.js.map +1 -0
  922. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-event.d.ts +25 -0
  923. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-event.d.ts.map +1 -0
  924. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-event.js +121 -0
  925. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-event.js.map +1 -0
  926. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-export-ics.d.ts +9 -0
  927. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-export-ics.d.ts.map +1 -0
  928. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-export-ics.js +76 -0
  929. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-export-ics.js.map +1 -0
  930. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-get.d.ts +25 -0
  931. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-get.d.ts.map +1 -0
  932. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-get.js +53 -0
  933. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-get.js.map +1 -0
  934. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-import-ics.d.ts +8 -0
  935. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-import-ics.d.ts.map +1 -0
  936. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-import-ics.js +48 -0
  937. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-import-ics.js.map +1 -0
  938. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-list.d.ts +20 -0
  939. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-list.d.ts.map +1 -0
  940. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-list.js +76 -0
  941. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-list.js.map +1 -0
  942. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-update.d.ts +18 -0
  943. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-update.d.ts.map +1 -0
  944. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-update.js +167 -0
  945. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-update.js.map +1 -0
  946. package/payload/platform/plugins/scheduling/mcp/package.json +23 -0
  947. package/payload/platform/plugins/scheduling/mcp/vitest.config.ts +9 -0
  948. package/payload/platform/plugins/tasks/.claude-plugin/plugin.json +17 -0
  949. package/payload/platform/plugins/tasks/.mcp.json +13 -0
  950. package/payload/platform/plugins/tasks/PLUGIN.md +81 -0
  951. package/payload/platform/plugins/tasks/mcp/dist/index.d.ts +2 -0
  952. package/payload/platform/plugins/tasks/mcp/dist/index.d.ts.map +1 -0
  953. package/payload/platform/plugins/tasks/mcp/dist/index.js +503 -0
  954. package/payload/platform/plugins/tasks/mcp/dist/index.js.map +1 -0
  955. package/payload/platform/plugins/tasks/mcp/dist/lib/embeddings.d.ts +7 -0
  956. package/payload/platform/plugins/tasks/mcp/dist/lib/embeddings.d.ts.map +1 -0
  957. package/payload/platform/plugins/tasks/mcp/dist/lib/embeddings.js +24 -0
  958. package/payload/platform/plugins/tasks/mcp/dist/lib/embeddings.js.map +1 -0
  959. package/payload/platform/plugins/tasks/mcp/dist/lib/neo4j.d.ts +5 -0
  960. package/payload/platform/plugins/tasks/mcp/dist/lib/neo4j.d.ts.map +1 -0
  961. package/payload/platform/plugins/tasks/mcp/dist/lib/neo4j.js +40 -0
  962. package/payload/platform/plugins/tasks/mcp/dist/lib/neo4j.js.map +1 -0
  963. package/payload/platform/plugins/tasks/mcp/dist/tools/project-complete.d.ts +17 -0
  964. package/payload/platform/plugins/tasks/mcp/dist/tools/project-complete.d.ts.map +1 -0
  965. package/payload/platform/plugins/tasks/mcp/dist/tools/project-complete.js +76 -0
  966. package/payload/platform/plugins/tasks/mcp/dist/tools/project-complete.js.map +1 -0
  967. package/payload/platform/plugins/tasks/mcp/dist/tools/project-create.d.ts +29 -0
  968. package/payload/platform/plugins/tasks/mcp/dist/tools/project-create.d.ts.map +1 -0
  969. package/payload/platform/plugins/tasks/mcp/dist/tools/project-create.js +235 -0
  970. package/payload/platform/plugins/tasks/mcp/dist/tools/project-create.js.map +1 -0
  971. package/payload/platform/plugins/tasks/mcp/dist/tools/project-get.d.ts +40 -0
  972. package/payload/platform/plugins/tasks/mcp/dist/tools/project-get.d.ts.map +1 -0
  973. package/payload/platform/plugins/tasks/mcp/dist/tools/project-get.js +125 -0
  974. package/payload/platform/plugins/tasks/mcp/dist/tools/project-get.js.map +1 -0
  975. package/payload/platform/plugins/tasks/mcp/dist/tools/project-list.d.ts +26 -0
  976. package/payload/platform/plugins/tasks/mcp/dist/tools/project-list.d.ts.map +1 -0
  977. package/payload/platform/plugins/tasks/mcp/dist/tools/project-list.js +81 -0
  978. package/payload/platform/plugins/tasks/mcp/dist/tools/project-list.js.map +1 -0
  979. package/payload/platform/plugins/tasks/mcp/dist/tools/project-update.d.ts +19 -0
  980. package/payload/platform/plugins/tasks/mcp/dist/tools/project-update.d.ts.map +1 -0
  981. package/payload/platform/plugins/tasks/mcp/dist/tools/project-update.js +102 -0
  982. package/payload/platform/plugins/tasks/mcp/dist/tools/project-update.js.map +1 -0
  983. package/payload/platform/plugins/tasks/mcp/dist/tools/session-list.d.ts +20 -0
  984. package/payload/platform/plugins/tasks/mcp/dist/tools/session-list.d.ts.map +1 -0
  985. package/payload/platform/plugins/tasks/mcp/dist/tools/session-list.js +37 -0
  986. package/payload/platform/plugins/tasks/mcp/dist/tools/session-list.js.map +1 -0
  987. package/payload/platform/plugins/tasks/mcp/dist/tools/session-name.d.ts +12 -0
  988. package/payload/platform/plugins/tasks/mcp/dist/tools/session-name.d.ts.map +1 -0
  989. package/payload/platform/plugins/tasks/mcp/dist/tools/session-name.js +28 -0
  990. package/payload/platform/plugins/tasks/mcp/dist/tools/session-name.js.map +1 -0
  991. package/payload/platform/plugins/tasks/mcp/dist/tools/task-complete.d.ts +16 -0
  992. package/payload/platform/plugins/tasks/mcp/dist/tools/task-complete.d.ts.map +1 -0
  993. package/payload/platform/plugins/tasks/mcp/dist/tools/task-complete.js +33 -0
  994. package/payload/platform/plugins/tasks/mcp/dist/tools/task-complete.js.map +1 -0
  995. package/payload/platform/plugins/tasks/mcp/dist/tools/task-create.d.ts +63 -0
  996. package/payload/platform/plugins/tasks/mcp/dist/tools/task-create.d.ts.map +1 -0
  997. package/payload/platform/plugins/tasks/mcp/dist/tools/task-create.js +141 -0
  998. package/payload/platform/plugins/tasks/mcp/dist/tools/task-create.js.map +1 -0
  999. package/payload/platform/plugins/tasks/mcp/dist/tools/task-get.d.ts +19 -0
  1000. package/payload/platform/plugins/tasks/mcp/dist/tools/task-get.d.ts.map +1 -0
  1001. package/payload/platform/plugins/tasks/mcp/dist/tools/task-get.js +51 -0
  1002. package/payload/platform/plugins/tasks/mcp/dist/tools/task-get.js.map +1 -0
  1003. package/payload/platform/plugins/tasks/mcp/dist/tools/task-list.d.ts +18 -0
  1004. package/payload/platform/plugins/tasks/mcp/dist/tools/task-list.d.ts.map +1 -0
  1005. package/payload/platform/plugins/tasks/mcp/dist/tools/task-list.js +66 -0
  1006. package/payload/platform/plugins/tasks/mcp/dist/tools/task-list.js.map +1 -0
  1007. package/payload/platform/plugins/tasks/mcp/dist/tools/task-ready.d.ts +21 -0
  1008. package/payload/platform/plugins/tasks/mcp/dist/tools/task-ready.d.ts.map +1 -0
  1009. package/payload/platform/plugins/tasks/mcp/dist/tools/task-ready.js +54 -0
  1010. package/payload/platform/plugins/tasks/mcp/dist/tools/task-ready.js.map +1 -0
  1011. package/payload/platform/plugins/tasks/mcp/dist/tools/task-relate.d.ts +12 -0
  1012. package/payload/platform/plugins/tasks/mcp/dist/tools/task-relate.d.ts.map +1 -0
  1013. package/payload/platform/plugins/tasks/mcp/dist/tools/task-relate.js +59 -0
  1014. package/payload/platform/plugins/tasks/mcp/dist/tools/task-relate.js.map +1 -0
  1015. package/payload/platform/plugins/tasks/mcp/dist/tools/task-update.d.ts +32 -0
  1016. package/payload/platform/plugins/tasks/mcp/dist/tools/task-update.d.ts.map +1 -0
  1017. package/payload/platform/plugins/tasks/mcp/dist/tools/task-update.js +112 -0
  1018. package/payload/platform/plugins/tasks/mcp/dist/tools/task-update.js.map +1 -0
  1019. package/payload/platform/plugins/tasks/mcp/package.json +20 -0
  1020. package/payload/platform/plugins/telegram/PLUGIN.md +35 -0
  1021. package/payload/platform/plugins/telegram/mcp/dist/index.d.ts +2 -0
  1022. package/payload/platform/plugins/telegram/mcp/dist/index.d.ts.map +1 -0
  1023. package/payload/platform/plugins/telegram/mcp/dist/index.js +198 -0
  1024. package/payload/platform/plugins/telegram/mcp/dist/index.js.map +1 -0
  1025. package/payload/platform/plugins/telegram/mcp/dist/lib/telegram.d.ts +41 -0
  1026. package/payload/platform/plugins/telegram/mcp/dist/lib/telegram.d.ts.map +1 -0
  1027. package/payload/platform/plugins/telegram/mcp/dist/lib/telegram.js +70 -0
  1028. package/payload/platform/plugins/telegram/mcp/dist/lib/telegram.js.map +1 -0
  1029. package/payload/platform/plugins/telegram/mcp/dist/tools/message-history.d.ts +16 -0
  1030. package/payload/platform/plugins/telegram/mcp/dist/tools/message-history.d.ts.map +1 -0
  1031. package/payload/platform/plugins/telegram/mcp/dist/tools/message-history.js +68 -0
  1032. package/payload/platform/plugins/telegram/mcp/dist/tools/message-history.js.map +1 -0
  1033. package/payload/platform/plugins/telegram/mcp/dist/tools/message.d.ts +20 -0
  1034. package/payload/platform/plugins/telegram/mcp/dist/tools/message.d.ts.map +1 -0
  1035. package/payload/platform/plugins/telegram/mcp/dist/tools/message.js +34 -0
  1036. package/payload/platform/plugins/telegram/mcp/dist/tools/message.js.map +1 -0
  1037. package/payload/platform/plugins/telegram/mcp/package.json +19 -0
  1038. package/payload/platform/plugins/telegram/references/setup-guide.md +50 -0
  1039. package/payload/platform/plugins/waitlist/PLUGIN.md +63 -0
  1040. package/payload/platform/plugins/waitlist/mcp/dist/index.d.ts +2 -0
  1041. package/payload/platform/plugins/waitlist/mcp/dist/index.d.ts.map +1 -0
  1042. package/payload/platform/plugins/waitlist/mcp/dist/index.js +328 -0
  1043. package/payload/platform/plugins/waitlist/mcp/dist/index.js.map +1 -0
  1044. package/payload/platform/plugins/waitlist/mcp/dist/lib/embedding.d.ts +3 -0
  1045. package/payload/platform/plugins/waitlist/mcp/dist/lib/embedding.d.ts.map +1 -0
  1046. package/payload/platform/plugins/waitlist/mcp/dist/lib/embedding.js +48 -0
  1047. package/payload/platform/plugins/waitlist/mcp/dist/lib/embedding.js.map +1 -0
  1048. package/payload/platform/plugins/waitlist/mcp/dist/lib/neo4j.d.ts +5 -0
  1049. package/payload/platform/plugins/waitlist/mcp/dist/lib/neo4j.d.ts.map +1 -0
  1050. package/payload/platform/plugins/waitlist/mcp/dist/lib/neo4j.js +40 -0
  1051. package/payload/platform/plugins/waitlist/mcp/dist/lib/neo4j.js.map +1 -0
  1052. package/payload/platform/plugins/waitlist/mcp/dist/tools/__tests__/waitlist-persist.test.d.ts +2 -0
  1053. package/payload/platform/plugins/waitlist/mcp/dist/tools/__tests__/waitlist-persist.test.d.ts.map +1 -0
  1054. package/payload/platform/plugins/waitlist/mcp/dist/tools/__tests__/waitlist-persist.test.js +70 -0
  1055. package/payload/platform/plugins/waitlist/mcp/dist/tools/__tests__/waitlist-persist.test.js.map +1 -0
  1056. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-heal.d.ts +33 -0
  1057. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-heal.d.ts.map +1 -0
  1058. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-heal.js +124 -0
  1059. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-heal.js.map +1 -0
  1060. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-list.d.ts +23 -0
  1061. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-list.d.ts.map +1 -0
  1062. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-list.js +58 -0
  1063. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-list.js.map +1 -0
  1064. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-persist.d.ts +83 -0
  1065. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-persist.d.ts.map +1 -0
  1066. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-persist.js +433 -0
  1067. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-persist.js.map +1 -0
  1068. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-review.d.ts +19 -0
  1069. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-review.d.ts.map +1 -0
  1070. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-review.js +81 -0
  1071. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-review.js.map +1 -0
  1072. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-scan.d.ts +28 -0
  1073. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-scan.d.ts.map +1 -0
  1074. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-scan.js +50 -0
  1075. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-scan.js.map +1 -0
  1076. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-setup.d.ts +33 -0
  1077. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-setup.d.ts.map +1 -0
  1078. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-setup.js +335 -0
  1079. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-setup.js.map +1 -0
  1080. package/payload/platform/plugins/waitlist/mcp/package.json +23 -0
  1081. package/payload/platform/plugins/waitlist/mcp/vitest.config.ts +9 -0
  1082. package/payload/platform/plugins/whatsapp/PLUGIN.md +71 -0
  1083. package/payload/platform/plugins/whatsapp/mcp/dist/call-api.d.ts +14 -0
  1084. package/payload/platform/plugins/whatsapp/mcp/dist/call-api.d.ts.map +1 -0
  1085. package/payload/platform/plugins/whatsapp/mcp/dist/call-api.js +42 -0
  1086. package/payload/platform/plugins/whatsapp/mcp/dist/call-api.js.map +1 -0
  1087. package/payload/platform/plugins/whatsapp/mcp/dist/index.d.ts +8 -0
  1088. package/payload/platform/plugins/whatsapp/mcp/dist/index.d.ts.map +1 -0
  1089. package/payload/platform/plugins/whatsapp/mcp/dist/index.js +469 -0
  1090. package/payload/platform/plugins/whatsapp/mcp/dist/index.js.map +1 -0
  1091. package/payload/platform/plugins/whatsapp/mcp/package.json +19 -0
  1092. package/payload/platform/plugins/whatsapp/references/channels-whatsapp.md +257 -0
  1093. package/payload/platform/plugins/whatsapp/skills/connect-whatsapp/SKILL.md +82 -0
  1094. package/payload/platform/plugins/whatsapp/skills/manage-whatsapp-config/SKILL.md +99 -0
  1095. package/payload/platform/plugins/workflows/.claude-plugin/plugin.json +16 -0
  1096. package/payload/platform/plugins/workflows/.mcp.json +12 -0
  1097. package/payload/platform/plugins/workflows/PLUGIN.md +297 -0
  1098. package/payload/platform/plugins/workflows/mcp/dist/index.d.ts +2 -0
  1099. package/payload/platform/plugins/workflows/mcp/dist/index.d.ts.map +1 -0
  1100. package/payload/platform/plugins/workflows/mcp/dist/index.js +536 -0
  1101. package/payload/platform/plugins/workflows/mcp/dist/index.js.map +1 -0
  1102. package/payload/platform/plugins/workflows/mcp/dist/lib/active-runs.d.ts +38 -0
  1103. package/payload/platform/plugins/workflows/mcp/dist/lib/active-runs.d.ts.map +1 -0
  1104. package/payload/platform/plugins/workflows/mcp/dist/lib/active-runs.js +83 -0
  1105. package/payload/platform/plugins/workflows/mcp/dist/lib/active-runs.js.map +1 -0
  1106. package/payload/platform/plugins/workflows/mcp/dist/lib/embeddings.d.ts +2 -0
  1107. package/payload/platform/plugins/workflows/mcp/dist/lib/embeddings.d.ts.map +1 -0
  1108. package/payload/platform/plugins/workflows/mcp/dist/lib/embeddings.js +19 -0
  1109. package/payload/platform/plugins/workflows/mcp/dist/lib/embeddings.js.map +1 -0
  1110. package/payload/platform/plugins/workflows/mcp/dist/lib/llm-call.d.ts +151 -0
  1111. package/payload/platform/plugins/workflows/mcp/dist/lib/llm-call.d.ts.map +1 -0
  1112. package/payload/platform/plugins/workflows/mcp/dist/lib/llm-call.js +299 -0
  1113. package/payload/platform/plugins/workflows/mcp/dist/lib/llm-call.js.map +1 -0
  1114. package/payload/platform/plugins/workflows/mcp/dist/lib/neo4j.d.ts +5 -0
  1115. package/payload/platform/plugins/workflows/mcp/dist/lib/neo4j.d.ts.map +1 -0
  1116. package/payload/platform/plugins/workflows/mcp/dist/lib/neo4j.js +40 -0
  1117. package/payload/platform/plugins/workflows/mcp/dist/lib/neo4j.js.map +1 -0
  1118. package/payload/platform/plugins/workflows/mcp/dist/lib/step-resolver.d.ts +153 -0
  1119. package/payload/platform/plugins/workflows/mcp/dist/lib/step-resolver.d.ts.map +1 -0
  1120. package/payload/platform/plugins/workflows/mcp/dist/lib/step-resolver.js +273 -0
  1121. package/payload/platform/plugins/workflows/mcp/dist/lib/step-resolver.js.map +1 -0
  1122. package/payload/platform/plugins/workflows/mcp/dist/lib/validate-capabilities.d.ts +32 -0
  1123. package/payload/platform/plugins/workflows/mcp/dist/lib/validate-capabilities.d.ts.map +1 -0
  1124. package/payload/platform/plugins/workflows/mcp/dist/lib/validate-capabilities.js +97 -0
  1125. package/payload/platform/plugins/workflows/mcp/dist/lib/validate-capabilities.js.map +1 -0
  1126. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-create.d.ts +48 -0
  1127. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-create.d.ts.map +1 -0
  1128. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-create.js +166 -0
  1129. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-create.js.map +1 -0
  1130. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-delete.d.ts +28 -0
  1131. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-delete.d.ts.map +1 -0
  1132. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-delete.js +57 -0
  1133. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-delete.js.map +1 -0
  1134. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-execute.d.ts +64 -0
  1135. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-execute.d.ts.map +1 -0
  1136. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-execute.js +605 -0
  1137. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-execute.js.map +1 -0
  1138. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-get.d.ts +29 -0
  1139. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-get.d.ts.map +1 -0
  1140. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-get.js +55 -0
  1141. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-get.js.map +1 -0
  1142. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-list.d.ts +16 -0
  1143. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-list.d.ts.map +1 -0
  1144. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-list.js +44 -0
  1145. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-list.js.map +1 -0
  1146. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-runs.d.ts +28 -0
  1147. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-runs.d.ts.map +1 -0
  1148. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-runs.js +71 -0
  1149. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-runs.js.map +1 -0
  1150. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-update.d.ts +11 -0
  1151. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-update.d.ts.map +1 -0
  1152. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-update.js +198 -0
  1153. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-update.js.map +1 -0
  1154. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-validate.d.ts +13 -0
  1155. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-validate.d.ts.map +1 -0
  1156. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-validate.js +71 -0
  1157. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-validate.js.map +1 -0
  1158. package/payload/platform/plugins/workflows/mcp/package.json +20 -0
  1159. package/payload/platform/plugins/workflows/mcp/test-runner.mjs +710 -0
  1160. package/payload/platform/plugins/workflows/mcp/test-workflows.sh +77 -0
  1161. package/payload/platform/plugins/workflows/skills/workflow-manager/SKILL.md +88 -0
  1162. package/payload/platform/scripts/__tests__/admin-persist-audit.test.ts +182 -0
  1163. package/payload/platform/scripts/__tests__/first-token-creates-stream-log.test.sh +37 -0
  1164. package/payload/platform/scripts/__tests__/logs-read-prefix.sh +237 -0
  1165. package/payload/platform/scripts/admin-conversation-recover.mjs +386 -0
  1166. package/payload/platform/scripts/admin-persist-audit.ts +217 -0
  1167. package/payload/platform/scripts/check-no-conversation-id-leaks.mjs +165 -0
  1168. package/payload/platform/scripts/check-no-task-id-leaks.mjs +110 -0
  1169. package/payload/platform/scripts/check-sdk-oauth.mjs +185 -0
  1170. package/payload/platform/scripts/check-skill-load-coverage.mjs +100 -0
  1171. package/payload/platform/scripts/component-knowledgedoc-backfill.ts +214 -0
  1172. package/payload/platform/scripts/conversation-id-allowlist.txt +151 -0
  1173. package/payload/platform/scripts/dedupe-userprofile-ghosts.sh +388 -0
  1174. package/payload/platform/scripts/generate-entitlement-fixture.mjs +152 -0
  1175. package/payload/platform/scripts/installer-device-verify.sh +249 -0
  1176. package/payload/platform/scripts/lib/resolve-account-dir.sh +186 -0
  1177. package/payload/platform/scripts/log-adherence-check.sh +125 -0
  1178. package/payload/platform/scripts/logs-read.sh +577 -0
  1179. package/payload/platform/scripts/logs-read.test.sh +159 -0
  1180. package/payload/platform/scripts/migrate-import.sh +437 -0
  1181. package/payload/platform/scripts/redact-install-logs.sh +87 -0
  1182. package/payload/platform/scripts/resume-tunnel.sh +117 -0
  1183. package/payload/platform/scripts/seed-neo4j.sh +590 -0
  1184. package/payload/platform/scripts/taskmaster-export.sh +388 -0
  1185. package/payload/platform/scripts/test-laptop-vnc-boot.sh +88 -0
  1186. package/payload/platform/scripts/verify-skill-tool-surface.sh +255 -0
  1187. package/payload/platform/scripts/vnc.sh +475 -0
  1188. package/payload/platform/scripts/wifi-provision-server/server.js +743 -0
  1189. package/payload/platform/scripts/wifi-provision.sh +492 -0
  1190. package/payload/platform/services/claude-session-manager/dist/config.d.ts +12 -0
  1191. package/payload/platform/services/claude-session-manager/dist/config.d.ts.map +1 -0
  1192. package/payload/platform/services/claude-session-manager/dist/config.js +27 -0
  1193. package/payload/platform/services/claude-session-manager/dist/config.js.map +1 -0
  1194. package/payload/platform/services/claude-session-manager/dist/http-server.d.ts +10 -0
  1195. package/payload/platform/services/claude-session-manager/dist/http-server.d.ts.map +1 -0
  1196. package/payload/platform/services/claude-session-manager/dist/http-server.js +186 -0
  1197. package/payload/platform/services/claude-session-manager/dist/http-server.js.map +1 -0
  1198. package/payload/platform/services/claude-session-manager/dist/index.d.ts +2 -0
  1199. package/payload/platform/services/claude-session-manager/dist/index.d.ts.map +1 -0
  1200. package/payload/platform/services/claude-session-manager/dist/index.js +64 -0
  1201. package/payload/platform/services/claude-session-manager/dist/index.js.map +1 -0
  1202. package/payload/platform/services/claude-session-manager/dist/jsonl-path.d.ts +4 -0
  1203. package/payload/platform/services/claude-session-manager/dist/jsonl-path.d.ts.map +1 -0
  1204. package/payload/platform/services/claude-session-manager/dist/jsonl-path.js +31 -0
  1205. package/payload/platform/services/claude-session-manager/dist/jsonl-path.js.map +1 -0
  1206. package/payload/platform/services/claude-session-manager/dist/pty-spawner.d.ts +34 -0
  1207. package/payload/platform/services/claude-session-manager/dist/pty-spawner.d.ts.map +1 -0
  1208. package/payload/platform/services/claude-session-manager/dist/pty-spawner.js +91 -0
  1209. package/payload/platform/services/claude-session-manager/dist/pty-spawner.js.map +1 -0
  1210. package/payload/platform/services/claude-session-manager/dist/session-store.d.ts +23 -0
  1211. package/payload/platform/services/claude-session-manager/dist/session-store.d.ts.map +1 -0
  1212. package/payload/platform/services/claude-session-manager/dist/session-store.js +31 -0
  1213. package/payload/platform/services/claude-session-manager/dist/session-store.js.map +1 -0
  1214. package/payload/platform/services/claude-session-manager/dist/types.d.ts +33 -0
  1215. package/payload/platform/services/claude-session-manager/dist/types.d.ts.map +1 -0
  1216. package/payload/platform/services/claude-session-manager/dist/types.js +2 -0
  1217. package/payload/platform/services/claude-session-manager/dist/types.js.map +1 -0
  1218. package/payload/platform/services/claude-session-manager/dist/url-capture.d.ts +12 -0
  1219. package/payload/platform/services/claude-session-manager/dist/url-capture.d.ts.map +1 -0
  1220. package/payload/platform/services/claude-session-manager/dist/url-capture.js +68 -0
  1221. package/payload/platform/services/claude-session-manager/dist/url-capture.js.map +1 -0
  1222. package/payload/platform/services/claude-session-manager/package.json +22 -0
  1223. package/payload/platform/templates/account.json +12 -0
  1224. package/payload/platform/templates/agents/admin/AGENTS.md +12 -0
  1225. package/payload/platform/templates/agents/admin/IDENTITY.md +320 -0
  1226. package/payload/platform/templates/agents/admin/LEARNINGS.md +3 -0
  1227. package/payload/platform/templates/agents/admin/SOUL.md +23 -0
  1228. package/payload/platform/templates/agents/public/IDENTITY.md +56 -0
  1229. package/payload/platform/templates/agents/public/SOUL.md +19 -0
  1230. package/payload/platform/templates/agents/public/config.json +9 -0
  1231. package/payload/platform/templates/specialists/.claude-plugin/plugin.json +4 -0
  1232. package/payload/platform/templates/specialists/agents/content-producer.md +104 -0
  1233. package/payload/platform/templates/specialists/agents/database-operator.md +199 -0
  1234. package/payload/platform/templates/specialists/agents/personal-assistant.md +209 -0
  1235. package/payload/platform/templates/specialists/agents/project-manager.md +132 -0
  1236. package/payload/platform/templates/specialists/agents/research-assistant.md +115 -0
  1237. package/payload/platform/templates/systemd/edge.service.template +38 -0
  1238. package/payload/platform/tsconfig.base.json +18 -0
  1239. package/payload/premium-plugins/real-agency/BUNDLE.md +44 -0
  1240. package/payload/premium-plugins/real-agency/agents/buyer-enquiry/IDENTITY.md +13 -0
  1241. package/payload/premium-plugins/real-agency/agents/buyer-enquiry/SOUL.md +9 -0
  1242. package/payload/premium-plugins/real-agency/agents/buyer-enquiry/template.json +9 -0
  1243. package/payload/premium-plugins/real-agency/agents/compliance.md +303 -0
  1244. package/payload/premium-plugins/real-agency/agents/negotiator.md +145 -0
  1245. package/payload/premium-plugins/real-agency/agents/valuer.md +140 -0
  1246. package/payload/premium-plugins/real-agency/plugins/brochures/PLUGIN.md +36 -0
  1247. package/payload/premium-plugins/real-agency/plugins/brochures/commands/make-brochure.md +11 -0
  1248. package/payload/premium-plugins/real-agency/plugins/brochures/skills/a4-print-documents/SKILL.md +478 -0
  1249. package/payload/premium-plugins/real-agency/plugins/brochures/skills/brand-design/SKILL.md +192 -0
  1250. package/payload/premium-plugins/real-agency/plugins/brochures/skills/make-brochure/SKILL.md +354 -0
  1251. package/payload/premium-plugins/real-agency/plugins/brochures/skills/make-brochure/references/seller-brief-template.md +115 -0
  1252. package/payload/premium-plugins/real-agency/plugins/brochures/skills/property-brochure/SKILL.md +119 -0
  1253. package/payload/premium-plugins/real-agency/plugins/brochures/skills/property-brochure/references/build.md +270 -0
  1254. package/payload/premium-plugins/real-agency/plugins/brochures/skills/property-brochure/references/copy.md +211 -0
  1255. package/payload/premium-plugins/real-agency/plugins/brochures/skills/property-brochure/references/images.md +166 -0
  1256. package/payload/premium-plugins/real-agency/plugins/brochures/skills/property-brochure/references/page-landing.md +376 -0
  1257. package/payload/premium-plugins/real-agency/plugins/brochures/skills/property-brochure/references/page.html +1288 -0
  1258. package/payload/premium-plugins/real-agency/plugins/brochures/skills/property-brochure/references/placeholders.md +250 -0
  1259. package/payload/premium-plugins/real-agency/plugins/brochures/skills/property-brochure/references/registers.md +47 -0
  1260. package/payload/premium-plugins/real-agency/plugins/brochures/skills/property-brochure/references/seller-brief.md +56 -0
  1261. package/payload/premium-plugins/real-agency/plugins/brochures/skills/property-brochure/references/structure.md +249 -0
  1262. package/payload/premium-plugins/real-agency/plugins/brochures/skills/property-brochure/references/template.html +2370 -0
  1263. package/payload/premium-plugins/real-agency/plugins/brochures/skills/property-extract/SKILL.md +372 -0
  1264. package/payload/premium-plugins/real-agency/plugins/buyers/PLUGIN.md +35 -0
  1265. package/payload/premium-plugins/real-agency/plugins/buyers/skills/buyer-feedback/SKILL.md +109 -0
  1266. package/payload/premium-plugins/real-agency/plugins/buyers/skills/buyer-management/SKILL.md +42 -0
  1267. package/payload/premium-plugins/real-agency/plugins/buyers/skills/buyer-management/references/buyer-qualification-questions.md +16 -0
  1268. package/payload/premium-plugins/real-agency/plugins/buyers/skills/buyer-management/references/buyer-qualification.md +59 -0
  1269. package/payload/premium-plugins/real-agency/plugins/buyers/skills/buyer-management/references/buyer-scripts.md +63 -0
  1270. package/payload/premium-plugins/real-agency/plugins/buyers/skills/buyer-management/references/buyer-working-scripts.md +54 -0
  1271. package/payload/premium-plugins/real-agency/plugins/buyers/skills/buyer-management/references/feedback-collection.md +42 -0
  1272. package/payload/premium-plugins/real-agency/plugins/buyers/skills/buyer-management/references/offer-capture.md +38 -0
  1273. package/payload/premium-plugins/real-agency/plugins/buyers/skills/buyer-management/references/viewing-booking.md +32 -0
  1274. package/payload/premium-plugins/real-agency/plugins/buyers/skills/buyer-management/references/viewing-management.md +52 -0
  1275. package/payload/premium-plugins/real-agency/plugins/buyers/skills/buyer-seller-guides/SKILL.md +407 -0
  1276. package/payload/premium-plugins/real-agency/plugins/buyers/skills/buyer-seller-guides/references/care-fees-guide.md +68 -0
  1277. package/payload/premium-plugins/real-agency/plugins/buyers/skills/buyer-seller-guides/references/divorce-sales-guide.md +61 -0
  1278. package/payload/premium-plugins/real-agency/plugins/buyers/skills/buyer-seller-guides/references/downsizing-guide.md +45 -0
  1279. package/payload/premium-plugins/real-agency/plugins/buyers/skills/buyer-seller-guides/references/first-time-buyers.md +92 -0
  1280. package/payload/premium-plugins/real-agency/plugins/buyers/skills/buyer-seller-guides/references/first-time-sellers.md +78 -0
  1281. package/payload/premium-plugins/real-agency/plugins/buyers/skills/buyer-seller-guides/references/probate-guide.md +53 -0
  1282. package/payload/premium-plugins/real-agency/plugins/buyers/skills/buyer-seller-guides/references/upsizing-guide.md +41 -0
  1283. package/payload/premium-plugins/real-agency/plugins/buyers/skills/property-enquiry/SKILL.md +126 -0
  1284. package/payload/premium-plugins/real-agency/plugins/buyers/skills/viewing-management/SKILL.md +111 -0
  1285. package/payload/premium-plugins/real-agency/plugins/estate-business/PLUGIN.md +34 -0
  1286. package/payload/premium-plugins/real-agency/plugins/estate-business/skills/business-growth/SKILL.md +133 -0
  1287. package/payload/premium-plugins/real-agency/plugins/estate-business/skills/business-growth/references/buy-back-your-time.md +37 -0
  1288. package/payload/premium-plugins/real-agency/plugins/estate-business/skills/business-growth/references/firewave-gost-scorecards.md +14 -0
  1289. package/payload/premium-plugins/real-agency/plugins/estate-business/skills/business-growth/references/keller-org-model.md +17 -0
  1290. package/payload/premium-plugins/real-agency/plugins/estate-business/skills/business-growth/references/lencioni-team-models.md +22 -0
  1291. package/payload/premium-plugins/real-agency/plugins/estate-business/skills/business-growth/references/listing-management-system.md +11 -0
  1292. package/payload/premium-plugins/real-agency/plugins/estate-business/skills/business-growth/references/net-figure-form.md +11 -0
  1293. package/payload/premium-plugins/real-agency/plugins/estate-business/skills/business-growth/references/serhant-bizinbox-notes.md +13 -0
  1294. package/payload/premium-plugins/real-agency/plugins/estate-business/skills/business-growth/references/team-roles-commission.md +14 -0
  1295. package/payload/premium-plugins/real-agency/plugins/estate-business/skills/business-growth/references/va-2026-ops.md +43 -0
  1296. package/payload/premium-plugins/real-agency/plugins/estate-business/skills/business-growth/references/wingman-structure.md +13 -0
  1297. package/payload/premium-plugins/real-agency/plugins/estate-business/skills/business-operations/SKILL.md +32 -0
  1298. package/payload/premium-plugins/real-agency/plugins/estate-business/skills/business-operations/references/crm-systems.md +57 -0
  1299. package/payload/premium-plugins/real-agency/plugins/estate-business/skills/business-operations/references/hiring-guide.md +59 -0
  1300. package/payload/premium-plugins/real-agency/plugins/estate-business/skills/business-operations/references/impact-framework.md +47 -0
  1301. package/payload/premium-plugins/real-agency/plugins/estate-business/skills/business-operations/references/minutes-equal-money.md +55 -0
  1302. package/payload/premium-plugins/real-agency/plugins/estate-business/skills/business-operations/references/team-management.md +48 -0
  1303. package/payload/premium-plugins/real-agency/plugins/estate-business/skills/exp-partnership/SKILL.md +52 -0
  1304. package/payload/premium-plugins/real-agency/plugins/estate-business/skills/exp-partnership/references/12-reasons.md +39 -0
  1305. package/payload/premium-plugins/real-agency/plugins/estate-business/skills/exp-partnership/references/95-5-system.md +66 -0
  1306. package/payload/premium-plugins/real-agency/plugins/estate-business/skills/exp-partnership/references/agent-attraction-scripts.md +90 -0
  1307. package/payload/premium-plugins/real-agency/plugins/estate-business/skills/exp-partnership/references/business-partnership.md +92 -0
  1308. package/payload/premium-plugins/real-agency/plugins/estate-business/skills/exp-partnership/references/exp-model-overview.md +66 -0
  1309. package/payload/premium-plugins/real-agency/plugins/estate-business/skills/exp-partnership/references/model-comparison.md +66 -0
  1310. package/payload/premium-plugins/real-agency/plugins/estate-business/skills/exp-partnership/references/revenue-share-explained.md +57 -0
  1311. package/payload/premium-plugins/real-agency/plugins/estate-business/skills/personal-branding/SKILL.md +117 -0
  1312. package/payload/premium-plugins/real-agency/plugins/estate-business/skills/personal-branding/references/attraction-agent-notes.md +31 -0
  1313. package/payload/premium-plugins/real-agency/plugins/estate-business/skills/personal-branding/references/attraction-agent.md +58 -0
  1314. package/payload/premium-plugins/real-agency/plugins/estate-business/skills/personal-branding/references/authenticity-boundaries.md +28 -0
  1315. package/payload/premium-plugins/real-agency/plugins/estate-business/skills/personal-branding/references/become-a-brand-leader-notes.md +19 -0
  1316. package/payload/premium-plugins/real-agency/plugins/estate-business/skills/personal-branding/references/blast-formula.md +42 -0
  1317. package/payload/premium-plugins/real-agency/plugins/estate-business/skills/personal-branding/references/brand-leader.md +48 -0
  1318. package/payload/premium-plugins/real-agency/plugins/estate-business/skills/personal-branding/references/brand-strategy-system.md +59 -0
  1319. package/payload/premium-plugins/real-agency/plugins/estate-business/skills/personal-branding/references/content-engine.md +49 -0
  1320. package/payload/premium-plugins/real-agency/plugins/estate-business/skills/personal-branding/references/firewave-blast-and-blogging.md +23 -0
  1321. package/payload/premium-plugins/real-agency/plugins/estate-business/skills/personal-branding/references/gary-v-content.md +52 -0
  1322. package/payload/premium-plugins/real-agency/plugins/estate-business/skills/personal-branding/references/gary-v-principles.md +20 -0
  1323. package/payload/premium-plugins/real-agency/plugins/estate-business/skills/personal-branding/references/oversubscribed-positioning.md +18 -0
  1324. package/payload/premium-plugins/real-agency/plugins/estate-business/skills/personal-branding/references/platforms.md +41 -0
  1325. package/payload/premium-plugins/real-agency/plugins/estate-business/skills/personal-branding/references/priestley-oversubscribed.md +54 -0
  1326. package/payload/premium-plugins/real-agency/plugins/estate-business/skills/personal-branding/references/storeys-style-examples.md +25 -0
  1327. package/payload/premium-plugins/real-agency/plugins/estate-business/skills/personal-branding/references/visual-identity.md +27 -0
  1328. package/payload/premium-plugins/real-agency/plugins/estate-coaching/PLUGIN.md +55 -0
  1329. package/payload/premium-plugins/real-agency/plugins/estate-coaching/skills/agent-performance/SKILL.md +371 -0
  1330. package/payload/premium-plugins/real-agency/plugins/estate-coaching/skills/agent-performance/references/atomic-habits.md +52 -0
  1331. package/payload/premium-plugins/real-agency/plugins/estate-coaching/skills/agent-performance/references/daily-routine-scorecard.md +104 -0
  1332. package/payload/premium-plugins/real-agency/plugins/estate-coaching/skills/agent-performance/references/hp6-model.md +63 -0
  1333. package/payload/premium-plugins/real-agency/plugins/estate-coaching/skills/agent-performance/references/twelve-week-year.md +71 -0
  1334. package/payload/premium-plugins/real-agency/plugins/estate-coaching/skills/bespoke-coaching/SKILL.md +36 -0
  1335. package/payload/premium-plugins/real-agency/plugins/estate-coaching/skills/bespoke-coaching/references/coaching-boundaries.md +56 -0
  1336. package/payload/premium-plugins/real-agency/plugins/estate-coaching/skills/bespoke-coaching/references/feedback-framework.md +61 -0
  1337. package/payload/premium-plugins/real-agency/plugins/estate-coaching/skills/bespoke-coaching/references/performance-framework.md +109 -0
  1338. package/payload/premium-plugins/real-agency/plugins/estate-coaching/skills/coaching-toolkit/SKILL.md +421 -0
  1339. package/payload/premium-plugins/real-agency/plugins/estate-coaching/skills/coaching-toolkit/references/coaching-exercises.md +86 -0
  1340. package/payload/premium-plugins/real-agency/plugins/estate-coaching/skills/coaching-toolkit/references/goal-setting.md +78 -0
  1341. package/payload/premium-plugins/real-agency/plugins/estate-coaching/skills/coaching-toolkit/references/one-to-one-framework.md +92 -0
  1342. package/payload/premium-plugins/real-agency/plugins/estate-coaching/skills/coaching-toolkit/references/soi-workbook.md +103 -0
  1343. package/payload/premium-plugins/real-agency/plugins/estate-coaching/skills/serhant-training/SKILL.md +410 -0
  1344. package/payload/premium-plugins/real-agency/plugins/estate-coaching/skills/serhant-training/references/agent-training-guide.md +70 -0
  1345. package/payload/premium-plugins/real-agency/plugins/estate-coaching/skills/serhant-training/references/business-in-a-box.md +72 -0
  1346. package/payload/premium-plugins/real-agency/plugins/estate-coaching/skills/serhant-training/references/buyers-guide.md +53 -0
  1347. package/payload/premium-plugins/real-agency/plugins/estate-coaching/skills/serhant-training/references/codo-method.md +72 -0
  1348. package/payload/premium-plugins/real-agency/plugins/estate-coaching/skills/serhant-training/references/website-planning-guide.md +79 -0
  1349. package/payload/premium-plugins/real-agency/plugins/estate-onboarding/PLUGIN.md +31 -0
  1350. package/payload/premium-plugins/real-agency/plugins/estate-onboarding/skills/bootstrap/SKILL.md +26 -0
  1351. package/payload/premium-plugins/real-agency/plugins/estate-onboarding/skills/bootstrap/references/onboarding-flow.md +63 -0
  1352. package/payload/premium-plugins/real-agency/plugins/estate-sales/PLUGIN.md +34 -0
  1353. package/payload/premium-plugins/real-agency/plugins/estate-sales/skills/negotiation/SKILL.md +35 -0
  1354. package/payload/premium-plugins/real-agency/plugins/estate-sales/skills/negotiation/references/deal-saving.md +47 -0
  1355. package/payload/premium-plugins/real-agency/plugins/estate-sales/skills/negotiation/references/negotiation-deep-guide.md +64 -0
  1356. package/payload/premium-plugins/real-agency/plugins/estate-sales/skills/negotiation/references/negotiation-prep-principles.md +29 -0
  1357. package/payload/premium-plugins/real-agency/plugins/estate-sales/skills/negotiation/references/negotiation-techniques.md +42 -0
  1358. package/payload/premium-plugins/real-agency/plugins/estate-sales/skills/negotiation/references/offer-presentation.md +43 -0
  1359. package/payload/premium-plugins/real-agency/plugins/estate-sales/skills/sales-closer/SKILL.md +24 -0
  1360. package/payload/premium-plugins/real-agency/plugins/estate-sales/skills/sales-closer/references/serhant-emotion-stages.md +36 -0
  1361. package/payload/premium-plugins/real-agency/plugins/estate-sales/skills/sales-discovery/SKILL.md +30 -0
  1362. package/payload/premium-plugins/real-agency/plugins/estate-sales/skills/sales-discovery/references/chris-voss-discovery.md +88 -0
  1363. package/payload/premium-plugins/real-agency/plugins/estate-sales/skills/sales-discovery/references/firewave-gost-journey.md +68 -0
  1364. package/payload/premium-plugins/real-agency/plugins/estate-sales/skills/sales-discovery/references/phil-jones-openers.md +78 -0
  1365. package/payload/premium-plugins/real-agency/plugins/estate-sales/skills/sales-discovery/references/pre-listing-checklist.md +77 -0
  1366. package/payload/premium-plugins/real-agency/plugins/estate-sales/skills/sales-discovery/references/serhant-improv.md +22 -0
  1367. package/payload/premium-plugins/real-agency/plugins/estate-sales/skills/sales-discovery/references/tom-ferry-discovery.md +103 -0
  1368. package/payload/premium-plugins/real-agency/plugins/estate-sales/skills/sales-discovery/references/vendor-motivation-competitor.md +52 -0
  1369. package/payload/premium-plugins/real-agency/plugins/estate-sales/skills/sales-negotiation/SKILL.md +29 -0
  1370. package/payload/premium-plugins/real-agency/plugins/estate-sales/skills/sales-negotiation/references/chris-voss-negotiation.md +70 -0
  1371. package/payload/premium-plugins/real-agency/plugins/estate-sales/skills/sales-negotiation/references/phil-jones-price-words.md +40 -0
  1372. package/payload/premium-plugins/real-agency/plugins/estate-sales/skills/sales-negotiation/references/serhant-negotiation-plus.md +55 -0
  1373. package/payload/premium-plugins/real-agency/plugins/estate-sales/skills/sales-negotiation/references/tom-panos-commission-pricing.md +57 -0
  1374. package/payload/premium-plugins/real-agency/plugins/estate-sales/skills/sales-negotiation/references/tony-morris-questioning.md +54 -0
  1375. package/payload/premium-plugins/real-agency/plugins/estate-sales/skills/sales-progression/SKILL.md +27 -0
  1376. package/payload/premium-plugins/real-agency/plugins/estate-sales/skills/sales-progression/references/conveyancing-guide.md +54 -0
  1377. package/payload/premium-plugins/real-agency/plugins/estate-sales/skills/sales-progression/references/transaction-tracking.md +66 -0
  1378. package/payload/premium-plugins/real-agency/plugins/estate-teaching/PLUGIN.md +31 -0
  1379. package/payload/premium-plugins/real-agency/plugins/estate-teaching/skills/content-directory/SKILL.md +39 -0
  1380. package/payload/premium-plugins/real-agency/plugins/estate-teaching/skills/content-directory/references/module-delivery.md +65 -0
  1381. package/payload/premium-plugins/real-agency/plugins/estate-teaching/skills/content-directory/references/progress-tracking.md +47 -0
  1382. package/payload/premium-plugins/real-agency/plugins/leads/PLUGIN.md +32 -0
  1383. package/payload/premium-plugins/real-agency/plugins/leads/skills/lead-nurturing/SKILL.md +137 -0
  1384. package/payload/premium-plugins/real-agency/plugins/leads/skills/lead-nurturing/references/buyer-search-letter.md +28 -0
  1385. package/payload/premium-plugins/real-agency/plugins/leads/skills/lead-nurturing/references/buyer-search-letters.md +37 -0
  1386. package/payload/premium-plugins/real-agency/plugins/leads/skills/lead-nurturing/references/database-reactivation.md +30 -0
  1387. package/payload/premium-plugins/real-agency/plugins/leads/skills/lead-nurturing/references/email-nurture-sequences.md +45 -0
  1388. package/payload/premium-plugins/real-agency/plugins/leads/skills/lead-nurturing/references/facebook-referrals.md +30 -0
  1389. package/payload/premium-plugins/real-agency/plugins/leads/skills/lead-nurturing/references/firewave-email-nurture-sequences.md +41 -0
  1390. package/payload/premium-plugins/real-agency/plugins/leads/skills/lead-nurturing/references/keller-33-touch.md +34 -0
  1391. package/payload/premium-plugins/real-agency/plugins/leads/skills/lead-nurturing/references/neighbour-letters.md +31 -0
  1392. package/payload/premium-plugins/real-agency/plugins/leads/skills/lead-nurturing/references/neighbour-notification-letter.md +20 -0
  1393. package/payload/premium-plugins/real-agency/plugins/leads/skills/lead-nurturing/references/ofi-follow-up-dialogue.md +22 -0
  1394. package/payload/premium-plugins/real-agency/plugins/leads/skills/lead-nurturing/references/ofi-follow-up.md +26 -0
  1395. package/payload/premium-plugins/real-agency/plugins/leads/skills/lead-nurturing/references/serhant-three-fs-plus.md +21 -0
  1396. package/payload/premium-plugins/real-agency/plugins/leads/skills/lead-nurturing/references/sharran-10x10x10.md +18 -0
  1397. package/payload/premium-plugins/real-agency/plugins/leads/skills/lead-nurturing/references/sms-templates.md +40 -0
  1398. package/payload/premium-plugins/real-agency/plugins/leads/skills/lead-nurturing/references/sphere-of-influence-notes.md +34 -0
  1399. package/payload/premium-plugins/real-agency/plugins/leads/skills/lead-nurturing/references/sphere-of-influence.md +60 -0
  1400. package/payload/premium-plugins/real-agency/plugins/leads/skills/lead-nurturing/references/tom-panos-sms-templates.md +59 -0
  1401. package/payload/premium-plugins/real-agency/plugins/leads/skills/prospecting/SKILL.md +33 -0
  1402. package/payload/premium-plugins/real-agency/plugins/leads/skills/prospecting/references/database-matching.md +30 -0
  1403. package/payload/premium-plugins/real-agency/plugins/leads/skills/prospecting/references/database-value.md +53 -0
  1404. package/payload/premium-plugins/real-agency/plugins/leads/skills/prospecting/references/prospecting-dialogues.md +24 -0
  1405. package/payload/premium-plugins/real-agency/plugins/leads/skills/prospecting/references/reactivation.md +34 -0
  1406. package/payload/premium-plugins/real-agency/plugins/listings/PLUGIN.md +33 -0
  1407. package/payload/premium-plugins/real-agency/plugins/listings/skills/home-preparation/SKILL.md +28 -0
  1408. package/payload/premium-plugins/real-agency/plugins/listings/skills/home-preparation/references/kerb-appeal.md +38 -0
  1409. package/payload/premium-plugins/real-agency/plugins/listings/skills/home-preparation/references/photo-day.md +59 -0
  1410. package/payload/premium-plugins/real-agency/plugins/listings/skills/home-preparation/references/situational-tips.md +50 -0
  1411. package/payload/premium-plugins/real-agency/plugins/listings/skills/home-preparation/references/staging-guide.md +52 -0
  1412. package/payload/premium-plugins/real-agency/plugins/listings/skills/listing-presentation/SKILL.md +286 -0
  1413. package/payload/premium-plugins/real-agency/plugins/listings/skills/listing-presentation/references/booking-script.md +51 -0
  1414. package/payload/premium-plugins/real-agency/plugins/listings/skills/listing-presentation/references/objection-scripts.md +193 -0
  1415. package/payload/premium-plugins/real-agency/plugins/listings/skills/listing-presentation/references/penhaul-presentation.md +123 -0
  1416. package/payload/premium-plugins/real-agency/plugins/listings/skills/listing-presentation/references/pre-listing-kit.md +139 -0
  1417. package/payload/premium-plugins/real-agency/plugins/listings/skills/listing-presentation/references/set-to-sell.md +55 -0
  1418. package/payload/premium-plugins/real-agency/plugins/listings/skills/listing-presentation/references/sharran-frameworks.md +107 -0
  1419. package/payload/premium-plugins/real-agency/plugins/listings/skills/property-marketing/SKILL.md +337 -0
  1420. package/payload/premium-plugins/real-agency/plugins/listings/skills/property-marketing/references/auction-report-template.md +41 -0
  1421. package/payload/premium-plugins/real-agency/plugins/listings/skills/property-marketing/references/coming-soon-campaign.md +43 -0
  1422. package/payload/premium-plugins/real-agency/plugins/listings/skills/property-marketing/references/direct-mail-templates.md +121 -0
  1423. package/payload/premium-plugins/real-agency/plugins/listings/skills/property-marketing/references/eoi-form-template.md +62 -0
  1424. package/payload/premium-plugins/real-agency/plugins/listings/skills/property-marketing/references/monthly-scorecard.md +63 -0
  1425. package/payload/premium-plugins/real-agency/plugins/loop/PLUGIN.md +73 -0
  1426. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/index.d.ts +2 -0
  1427. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/index.d.ts.map +1 -0
  1428. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/index.js +293 -0
  1429. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/index.js.map +1 -0
  1430. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/lib/crypto.d.ts +10 -0
  1431. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/lib/crypto.d.ts.map +1 -0
  1432. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/lib/crypto.js +88 -0
  1433. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/lib/crypto.js.map +1 -0
  1434. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/lib/loop-api.d.ts +82 -0
  1435. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/lib/loop-api.d.ts.map +1 -0
  1436. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/lib/loop-api.js +427 -0
  1437. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/lib/loop-api.js.map +1 -0
  1438. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/lib/neo4j.d.ts +5 -0
  1439. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/lib/neo4j.d.ts.map +1 -0
  1440. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/lib/neo4j.js +40 -0
  1441. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/lib/neo4j.js.map +1 -0
  1442. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/customer-preferences.d.ts +10 -0
  1443. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/customer-preferences.d.ts.map +1 -0
  1444. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/customer-preferences.js +24 -0
  1445. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/customer-preferences.js.map +1 -0
  1446. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/feedback.d.ts +16 -0
  1447. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/feedback.d.ts.map +1 -0
  1448. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/feedback.js +35 -0
  1449. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/feedback.js.map +1 -0
  1450. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/key-deregister.d.ts +5 -0
  1451. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/key-deregister.d.ts.map +1 -0
  1452. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/key-deregister.js +19 -0
  1453. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/key-deregister.js.map +1 -0
  1454. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/key-list.d.ts +4 -0
  1455. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/key-list.d.ts.map +1 -0
  1456. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/key-list.js +14 -0
  1457. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/key-list.js.map +1 -0
  1458. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/key-register.d.ts +9 -0
  1459. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/key-register.d.ts.map +1 -0
  1460. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/key-register.js +60 -0
  1461. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/key-register.js.map +1 -0
  1462. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/marketing-enquiry.d.ts +13 -0
  1463. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/marketing-enquiry.d.ts.map +1 -0
  1464. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/marketing-enquiry.js +41 -0
  1465. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/marketing-enquiry.js.map +1 -0
  1466. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/marketing-match-batch.d.ts +9 -0
  1467. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/marketing-match-batch.d.ts.map +1 -0
  1468. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/marketing-match-batch.js +16 -0
  1469. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/marketing-match-batch.js.map +1 -0
  1470. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/marketing-match-request.d.ts +15 -0
  1471. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/marketing-match-request.d.ts.map +1 -0
  1472. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/marketing-match-request.js +11 -0
  1473. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/marketing-match-request.js.map +1 -0
  1474. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/marketing-match.d.ts +10 -0
  1475. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/marketing-match.d.ts.map +1 -0
  1476. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/marketing-match.js +39 -0
  1477. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/marketing-match.js.map +1 -0
  1478. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/people-detail.d.ts +9 -0
  1479. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/people-detail.d.ts.map +1 -0
  1480. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/people-detail.js +125 -0
  1481. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/people-detail.js.map +1 -0
  1482. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/people-search.d.ts +18 -0
  1483. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/people-search.d.ts.map +1 -0
  1484. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/people-search.js +87 -0
  1485. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/people-search.js.map +1 -0
  1486. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/property-detail.d.ts +10 -0
  1487. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/property-detail.d.ts.map +1 -0
  1488. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/property-detail.js +82 -0
  1489. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/property-detail.js.map +1 -0
  1490. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/property-listed.d.ts +12 -0
  1491. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/property-listed.d.ts.map +1 -0
  1492. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/property-listed.js +32 -0
  1493. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/property-listed.js.map +1 -0
  1494. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/property-request.d.ts +15 -0
  1495. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/property-request.d.ts.map +1 -0
  1496. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/property-request.js +11 -0
  1497. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/property-request.js.map +1 -0
  1498. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/property-search.d.ts +16 -0
  1499. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/property-search.d.ts.map +1 -0
  1500. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/property-search.js +41 -0
  1501. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/property-search.js.map +1 -0
  1502. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/supplier.d.ts +13 -0
  1503. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/supplier.d.ts.map +1 -0
  1504. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/supplier.js +49 -0
  1505. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/supplier.js.map +1 -0
  1506. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/team-availability.d.ts +7 -0
  1507. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/team-availability.d.ts.map +1 -0
  1508. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/team-availability.js +19 -0
  1509. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/team-availability.js.map +1 -0
  1510. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/team-info.d.ts +5 -0
  1511. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/team-info.d.ts.map +1 -0
  1512. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/team-info.js +32 -0
  1513. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/team-info.js.map +1 -0
  1514. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/viewing-create.d.ts +14 -0
  1515. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/viewing-create.d.ts.map +1 -0
  1516. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/viewing-create.js +11 -0
  1517. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/viewing-create.js.map +1 -0
  1518. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/viewing-detail.d.ts +9 -0
  1519. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/viewing-detail.d.ts.map +1 -0
  1520. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/viewing-detail.js +85 -0
  1521. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/viewing-detail.js.map +1 -0
  1522. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/viewing-search.d.ts +13 -0
  1523. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/viewing-search.d.ts.map +1 -0
  1524. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/viewing-search.js +44 -0
  1525. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/viewing-search.js.map +1 -0
  1526. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/viewing-update.d.ts +14 -0
  1527. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/viewing-update.d.ts.map +1 -0
  1528. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/viewing-update.js +18 -0
  1529. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/viewing-update.js.map +1 -0
  1530. package/payload/premium-plugins/real-agency/plugins/loop/mcp/package-lock.json +2549 -0
  1531. package/payload/premium-plugins/real-agency/plugins/loop/mcp/package.json +21 -0
  1532. package/payload/premium-plugins/real-agency/plugins/loop/mcp/src/__tests__/loop-swagger.snapshot.json +26467 -0
  1533. package/payload/premium-plugins/real-agency/plugins/loop/mcp/src/__tests__/swagger-write-coverage.test.ts +153 -0
  1534. package/payload/premium-plugins/real-agency/plugins/loop/mcp/src/index.ts +444 -0
  1535. package/payload/premium-plugins/real-agency/plugins/loop/mcp/src/lib/crypto.ts +105 -0
  1536. package/payload/premium-plugins/real-agency/plugins/loop/mcp/src/lib/loop-api.ts +604 -0
  1537. package/payload/premium-plugins/real-agency/plugins/loop/mcp/src/lib/neo4j.ts +51 -0
  1538. package/payload/premium-plugins/real-agency/plugins/loop/mcp/src/tools/customer-preferences.ts +66 -0
  1539. package/payload/premium-plugins/real-agency/plugins/loop/mcp/src/tools/feedback.ts +86 -0
  1540. package/payload/premium-plugins/real-agency/plugins/loop/mcp/src/tools/key-deregister.ts +27 -0
  1541. package/payload/premium-plugins/real-agency/plugins/loop/mcp/src/tools/key-list.ts +19 -0
  1542. package/payload/premium-plugins/real-agency/plugins/loop/mcp/src/tools/key-register.ts +95 -0
  1543. package/payload/premium-plugins/real-agency/plugins/loop/mcp/src/tools/marketing-enquiry.ts +113 -0
  1544. package/payload/premium-plugins/real-agency/plugins/loop/mcp/src/tools/marketing-match-batch.ts +53 -0
  1545. package/payload/premium-plugins/real-agency/plugins/loop/mcp/src/tools/marketing-match-request.ts +42 -0
  1546. package/payload/premium-plugins/real-agency/plugins/loop/mcp/src/tools/marketing-match.ts +84 -0
  1547. package/payload/premium-plugins/real-agency/plugins/loop/mcp/src/tools/people-detail.ts +245 -0
  1548. package/payload/premium-plugins/real-agency/plugins/loop/mcp/src/tools/people-search.ts +180 -0
  1549. package/payload/premium-plugins/real-agency/plugins/loop/mcp/src/tools/property-detail.ts +145 -0
  1550. package/payload/premium-plugins/real-agency/plugins/loop/mcp/src/tools/property-listed.ts +88 -0
  1551. package/payload/premium-plugins/real-agency/plugins/loop/mcp/src/tools/property-request.ts +42 -0
  1552. package/payload/premium-plugins/real-agency/plugins/loop/mcp/src/tools/property-search.ts +92 -0
  1553. package/payload/premium-plugins/real-agency/plugins/loop/mcp/src/tools/supplier.ts +129 -0
  1554. package/payload/premium-plugins/real-agency/plugins/loop/mcp/src/tools/team-availability.ts +52 -0
  1555. package/payload/premium-plugins/real-agency/plugins/loop/mcp/src/tools/team-info.ts +95 -0
  1556. package/payload/premium-plugins/real-agency/plugins/loop/mcp/src/tools/viewing-create.ts +41 -0
  1557. package/payload/premium-plugins/real-agency/plugins/loop/mcp/src/tools/viewing-detail.ts +171 -0
  1558. package/payload/premium-plugins/real-agency/plugins/loop/mcp/src/tools/viewing-search.ts +92 -0
  1559. package/payload/premium-plugins/real-agency/plugins/loop/mcp/src/tools/viewing-update.ts +53 -0
  1560. package/payload/premium-plugins/real-agency/plugins/loop/mcp/tsconfig.json +20 -0
  1561. package/payload/premium-plugins/real-agency/plugins/loop/mcp/vitest.config.ts +9 -0
  1562. package/payload/premium-plugins/real-agency/plugins/vendors/PLUGIN.md +34 -0
  1563. package/payload/premium-plugins/real-agency/plugins/vendors/skills/vendor-communication/SKILL.md +42 -0
  1564. package/payload/premium-plugins/real-agency/plugins/vendors/skills/vendor-communication/references/fee-protection-and-agenda.md +28 -0
  1565. package/payload/premium-plugins/real-agency/plugins/vendors/skills/vendor-communication/references/listing-scripts.md +44 -0
  1566. package/payload/premium-plugins/real-agency/plugins/vendors/skills/vendor-communication/references/negotiation-deep-guide.md +70 -0
  1567. package/payload/premium-plugins/real-agency/plugins/vendors/skills/vendor-communication/references/price-alignment-scripts.md +33 -0
  1568. package/payload/premium-plugins/real-agency/plugins/vendors/skills/vendor-communication/references/price-alignment.md +34 -0
  1569. package/payload/premium-plugins/real-agency/plugins/vendors/skills/vendor-communication/references/scenario-scripts.md +38 -0
  1570. package/payload/premium-plugins/real-agency/plugins/vendors/skills/vendor-communication/references/seller-engagement.md +51 -0
  1571. package/payload/premium-plugins/real-agency/plugins/vendors/skills/vendor-communication/references/valuation-booking.md +76 -0
  1572. package/payload/premium-plugins/real-agency/plugins/vendors/skills/vendor-communication/references/vendor-scripts.md +63 -0
  1573. package/payload/premium-plugins/real-agency/plugins/vendors/skills/vendor-communication/references/vendor-updates.md +41 -0
  1574. package/payload/premium-plugins/real-agency/plugins/vendors/skills/vendor-updates/SKILL.md +153 -0
  1575. package/payload/premium-plugins/teaching/PLUGIN.md +57 -0
  1576. package/payload/premium-plugins/teaching/skills/interactive-tutor/SKILL.md +59 -0
  1577. package/payload/premium-plugins/teaching/skills/interactive-tutor/references/assessment.md +70 -0
  1578. package/payload/premium-plugins/teaching/skills/interactive-tutor/references/classroom-conduct.md +43 -0
  1579. package/payload/premium-plugins/teaching/skills/interactive-tutor/references/teaching-modes.md +83 -0
  1580. package/payload/premium-plugins/teaching/skills/lesson-planner/SKILL.md +48 -0
  1581. package/payload/premium-plugins/teaching/skills/lesson-planner/references/context-gathering.md +41 -0
  1582. package/payload/premium-plugins/teaching/skills/lesson-planner/references/plan-structure.md +94 -0
  1583. package/payload/premium-plugins/teaching/skills/study-pack-builder/SKILL.md +52 -0
  1584. package/payload/premium-plugins/teaching/skills/study-pack-builder/references/disaggregation.md +49 -0
  1585. package/payload/premium-plugins/teaching/skills/study-pack-builder/references/materials.md +116 -0
  1586. package/payload/premium-plugins/writer-craft/PLUGIN.md +87 -0
  1587. package/payload/premium-plugins/writer-craft/agents/writer-craft--manuscript-reviewer.md +92 -0
  1588. package/payload/premium-plugins/writer-craft/skills/citation-style/SKILL.md +94 -0
  1589. package/payload/premium-plugins/writer-craft/skills/citation-style/references/book-and-chapter-models.md +77 -0
  1590. package/payload/premium-plugins/writer-craft/skills/citation-style/references/citation-rules.md +103 -0
  1591. package/payload/premium-plugins/writer-craft/skills/citation-style/references/journal-article-models.md +74 -0
  1592. package/payload/premium-plugins/writer-craft/skills/citation-style/references/other-source-models.md +146 -0
  1593. package/payload/premium-plugins/writer-craft/skills/citation-style/references/reference-list-rules.md +70 -0
  1594. package/payload/premium-plugins/writer-craft/skills/editorial-practice/SKILL.md +108 -0
  1595. package/payload/premium-plugins/writer-craft/skills/editorial-practice/references/copyediting.md +73 -0
  1596. package/payload/premium-plugins/writer-craft/skills/editorial-practice/references/developmental-editing.md +85 -0
  1597. package/payload/premium-plugins/writer-craft/skills/editorial-practice/references/genre-specific-editing.md +78 -0
  1598. package/payload/premium-plugins/writer-craft/skills/editorial-practice/references/line-editing.md +55 -0
  1599. package/payload/premium-plugins/writer-craft/skills/editorial-practice/references/self-editing.md +89 -0
  1600. package/payload/premium-plugins/writer-craft/skills/persuasive-storytelling/SKILL.md +114 -0
  1601. package/payload/premium-plugins/writer-craft/skills/persuasive-storytelling/references/audience-analysis.md +73 -0
  1602. package/payload/premium-plugins/writer-craft/skills/persuasive-storytelling/references/crafting-persuasive-story.md +76 -0
  1603. package/payload/premium-plugins/writer-craft/skills/persuasive-storytelling/references/persuasion-case-studies.md +67 -0
  1604. package/payload/premium-plugins/writer-craft/skills/persuasive-storytelling/references/transformation-framework.md +86 -0
  1605. package/payload/premium-plugins/writer-craft/skills/point-of-view/SKILL.md +97 -0
  1606. package/payload/premium-plugins/writer-craft/skills/point-of-view/references/indirect-narration.md +72 -0
  1607. package/payload/premium-plugins/writer-craft/skills/point-of-view/references/pov-types-and-voice.md +91 -0
  1608. package/payload/premium-plugins/writer-craft/skills/point-of-view/references/protagonist-filter.md +71 -0
  1609. package/payload/premium-plugins/writer-craft/skills/point-of-view/references/tense-and-person.md +85 -0
  1610. package/payload/premium-plugins/writer-craft/skills/prose-craft/SKILL.md +100 -0
  1611. package/payload/premium-plugins/writer-craft/skills/prose-craft/references/punctuation-and-grammar.md +72 -0
  1612. package/payload/premium-plugins/writer-craft/skills/prose-craft/references/repetition.md +71 -0
  1613. package/payload/premium-plugins/writer-craft/skills/prose-craft/references/sound-and-rhythm.md +64 -0
  1614. package/payload/premium-plugins/writer-craft/skills/prose-craft/references/word-economy.md +93 -0
  1615. package/payload/premium-plugins/writer-craft/skills/reader-engagement/SKILL.md +100 -0
  1616. package/payload/premium-plugins/writer-craft/skills/reader-engagement/references/cause-effect-setup-payoff.md +79 -0
  1617. package/payload/premium-plugins/writer-craft/skills/reader-engagement/references/conflict-escalation.md +81 -0
  1618. package/payload/premium-plugins/writer-craft/skills/reader-engagement/references/hooking-readers.md +67 -0
  1619. package/payload/premium-plugins/writer-craft/skills/reader-engagement/references/neurochemistry-of-engagement.md +94 -0
  1620. package/payload/premium-plugins/writer-craft/skills/review-manuscript/SKILL.md +111 -0
  1621. package/payload/premium-plugins/writer-craft/skills/review-manuscript/references/review-manuscript-checklist.md +119 -0
  1622. package/payload/premium-plugins/writer-craft/skills/review-prose/SKILL.md +99 -0
  1623. package/payload/premium-plugins/writer-craft/skills/review-prose/references/prose-review-checklist.md +112 -0
  1624. package/payload/premium-plugins/writer-craft/skills/review-scene/SKILL.md +99 -0
  1625. package/payload/premium-plugins/writer-craft/skills/review-scene/references/scene-analysis-framework.md +95 -0
  1626. package/payload/premium-plugins/writer-craft/skills/story-architecture/SKILL.md +106 -0
  1627. package/payload/premium-plugins/writer-craft/skills/story-architecture/references/blueprinting-and-scene-cards.md +118 -0
  1628. package/payload/premium-plugins/writer-craft/skills/story-architecture/references/inner-issue-and-protagonist-goal.md +66 -0
  1629. package/payload/premium-plugins/writer-craft/skills/story-architecture/references/misbelief-desire-worldview.md +87 -0
  1630. package/payload/premium-plugins/writer-craft/skills/story-architecture/references/origin-scenes-and-escalation.md +82 -0
  1631. package/payload/premium-plugins/writer-craft/skills/story-blueprint/SKILL.md +133 -0
  1632. package/payload/premium-plugins/writer-craft/skills/story-blueprint/references/blueprinting-exercises.md +118 -0
  1633. package/payload/premium-plugins/writer-craft/skills/story-blueprint/references/blueprinting-process.md +128 -0
  1634. package/payload/server/adminuser-self-heal-QAWOZ3JV.js +45 -0
  1635. package/payload/server/chunk-5FM432JB.js +4148 -0
  1636. package/payload/server/chunk-6S5JTXAN.js +1544 -0
  1637. package/payload/server/chunk-JSBRDJBE.js +30 -0
  1638. package/payload/server/chunk-RNW625CL.js +759 -0
  1639. package/payload/server/cloudflare-task-tracker-VC7QVU5H.js +22 -0
  1640. package/payload/server/maxy-edge.js +1021 -0
  1641. package/payload/server/package.json +13 -0
  1642. package/payload/server/public/assets/Checkbox-C6ZCsPvl.js +1 -0
  1643. package/payload/server/public/assets/_baseFor-BHtDrjIo.js +1 -0
  1644. package/payload/server/public/assets/admin-CWMpccrR.css +1 -0
  1645. package/payload/server/public/assets/admin-DVGJmN-k.js +216 -0
  1646. package/payload/server/public/assets/arc-DMDAZHAN.js +1 -0
  1647. package/payload/server/public/assets/architecture-YZFGNWBL-COhEvUpo.js +1 -0
  1648. package/payload/server/public/assets/architectureDiagram-Q4EWVU46-DwN6H0y2.js +36 -0
  1649. package/payload/server/public/assets/array-DetWRiSa.js +1 -0
  1650. package/payload/server/public/assets/blockDiagram-DXYQGD6D-TUk_F7H6.js +132 -0
  1651. package/payload/server/public/assets/c4Diagram-AHTNJAMY-CTjGko0X.js +10 -0
  1652. package/payload/server/public/assets/channel-Cv-65bLZ.js +1 -0
  1653. package/payload/server/public/assets/chunk-2KRD3SAO-Di4bO8ir.js +1 -0
  1654. package/payload/server/public/assets/chunk-336JU56O-DulT46bV.js +2 -0
  1655. package/payload/server/public/assets/chunk-426QAEUC-BwKj8yqp.js +1 -0
  1656. package/payload/server/public/assets/chunk-4BX2VUAB-DyEhFk-Z.js +1 -0
  1657. package/payload/server/public/assets/chunk-4TB4RGXK-CewO8YaZ.js +206 -0
  1658. package/payload/server/public/assets/chunk-55IACEB6-BRJOZLpU.js +1 -0
  1659. package/payload/server/public/assets/chunk-5FUZZQ4R-B3IWYz-k.js +62 -0
  1660. package/payload/server/public/assets/chunk-5PVQY5BW-DyiDEtXY.js +2 -0
  1661. package/payload/server/public/assets/chunk-67CJDMHE-BG6-9r6c.js +1 -0
  1662. package/payload/server/public/assets/chunk-7N4EOEYR-BvMbitX7.js +1 -0
  1663. package/payload/server/public/assets/chunk-AA7GKIK3-CE8mGBD5.js +1 -0
  1664. package/payload/server/public/assets/chunk-BSJP7CBP-DP7LTBll.js +1 -0
  1665. package/payload/server/public/assets/chunk-CIAEETIT-VfnIdN-h.js +1 -0
  1666. package/payload/server/public/assets/chunk-DD-I1_y5.js +1 -0
  1667. package/payload/server/public/assets/chunk-EDXVE4YY-B3u7wU36.js +1 -0
  1668. package/payload/server/public/assets/chunk-ENJZ2VHE-BesS5YY4.js +10 -0
  1669. package/payload/server/public/assets/chunk-FMBD7UC4-w-yBZsN2.js +15 -0
  1670. package/payload/server/public/assets/chunk-FOC6F5B3-f9cFywhd.js +1 -0
  1671. package/payload/server/public/assets/chunk-ICPOFSXX-C5_hbB6H.js +122 -0
  1672. package/payload/server/public/assets/chunk-K5T4RW27-B_ZUrFUq.js +94 -0
  1673. package/payload/server/public/assets/chunk-KGLVRYIC-CcWTvRlI.js +1 -0
  1674. package/payload/server/public/assets/chunk-LIHQZDEY-D-5-peQw.js +1 -0
  1675. package/payload/server/public/assets/chunk-ORNJ4GCN-B4Z5L25I.js +1 -0
  1676. package/payload/server/public/assets/chunk-OYMX7WX6-CrL4rhBa.js +231 -0
  1677. package/payload/server/public/assets/chunk-QZHKN3VN-CWh_0JsP.js +1 -0
  1678. package/payload/server/public/assets/chunk-U2HBQHQK-CQpbcqRS.js +70 -0
  1679. package/payload/server/public/assets/chunk-X2U36JSP-1HG7T4gX.js +1 -0
  1680. package/payload/server/public/assets/chunk-XPW4576I-m1Y_r88I.js +32 -0
  1681. package/payload/server/public/assets/chunk-YZCP3GAM-boN5wjX9.js +1 -0
  1682. package/payload/server/public/assets/chunk-ZZ45TVLE-D6CiPO0Q.js +1 -0
  1683. package/payload/server/public/assets/classDiagram-6PBFFD2Q-wQ2-BRyB.js +1 -0
  1684. package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-B_YLNNHy.js +1 -0
  1685. package/payload/server/public/assets/clone-VLK-GPZZ.js +1 -0
  1686. package/payload/server/public/assets/cormorant-cyrillic-300-normal-CzPHYadL.woff +0 -0
  1687. package/payload/server/public/assets/cormorant-cyrillic-300-normal-DFUoTmrg.woff2 +0 -0
  1688. package/payload/server/public/assets/cormorant-cyrillic-400-normal-C8QS47vb.woff2 +0 -0
  1689. package/payload/server/public/assets/cormorant-cyrillic-400-normal-D3EsxgFc.woff +0 -0
  1690. package/payload/server/public/assets/cormorant-cyrillic-500-normal-B7dJQtg-.woff +0 -0
  1691. package/payload/server/public/assets/cormorant-cyrillic-500-normal-BLlg2W5x.woff2 +0 -0
  1692. package/payload/server/public/assets/cormorant-cyrillic-ext-300-normal-BXl3lXsi.woff2 +0 -0
  1693. package/payload/server/public/assets/cormorant-cyrillic-ext-300-normal-DmxSOTe3.woff +0 -0
  1694. package/payload/server/public/assets/cormorant-cyrillic-ext-400-normal-Bgrpe4p1.woff +0 -0
  1695. package/payload/server/public/assets/cormorant-cyrillic-ext-400-normal-BlcaxZtM.woff2 +0 -0
  1696. package/payload/server/public/assets/cormorant-cyrillic-ext-500-normal-CdQuyvtc.woff +0 -0
  1697. package/payload/server/public/assets/cormorant-cyrillic-ext-500-normal-pZw22qtS.woff2 +0 -0
  1698. package/payload/server/public/assets/cormorant-latin-300-normal-CJ5dfen0.woff2 +0 -0
  1699. package/payload/server/public/assets/cormorant-latin-300-normal-DQZObO_3.woff +0 -0
  1700. package/payload/server/public/assets/cormorant-latin-400-normal-BGH8Vunh.woff2 +0 -0
  1701. package/payload/server/public/assets/cormorant-latin-400-normal-C3_-2Ua-.woff +0 -0
  1702. package/payload/server/public/assets/cormorant-latin-500-normal-Dj3SQ6fR.woff +0 -0
  1703. package/payload/server/public/assets/cormorant-latin-500-normal-EBdSCOD3.woff2 +0 -0
  1704. package/payload/server/public/assets/cormorant-latin-ext-300-normal-CkiUx0UG.woff +0 -0
  1705. package/payload/server/public/assets/cormorant-latin-ext-300-normal-De3D72RL.woff2 +0 -0
  1706. package/payload/server/public/assets/cormorant-latin-ext-400-normal-DuQ88yz3.woff2 +0 -0
  1707. package/payload/server/public/assets/cormorant-latin-ext-400-normal-DuXFa1Dr.woff +0 -0
  1708. package/payload/server/public/assets/cormorant-latin-ext-500-normal-AH9qog1s.woff2 +0 -0
  1709. package/payload/server/public/assets/cormorant-latin-ext-500-normal-DAuUCO41.woff +0 -0
  1710. package/payload/server/public/assets/cormorant-vietnamese-300-normal-BVqIp_mg.woff2 +0 -0
  1711. package/payload/server/public/assets/cormorant-vietnamese-300-normal-CEMS9Pw-.woff +0 -0
  1712. package/payload/server/public/assets/cormorant-vietnamese-400-normal-C-RiYxEf.woff2 +0 -0
  1713. package/payload/server/public/assets/cormorant-vietnamese-400-normal-DmUuA7Y2.woff +0 -0
  1714. package/payload/server/public/assets/cormorant-vietnamese-500-normal-DsPuwQHi.woff2 +0 -0
  1715. package/payload/server/public/assets/cormorant-vietnamese-500-normal-tGBW_mI7.woff +0 -0
  1716. package/payload/server/public/assets/cose-bilkent-S5V4N54A-BhtgY3T7.js +1 -0
  1717. package/payload/server/public/assets/cytoscape.esm-C9yNhe1u.js +321 -0
  1718. package/payload/server/public/assets/dagre-CncXYNX1.js +1 -0
  1719. package/payload/server/public/assets/dagre-KV5264BT-C0CcgCHW.js +4 -0
  1720. package/payload/server/public/assets/data-Bt4Wsocg.js +1 -0
  1721. package/payload/server/public/assets/defaultLocale-_WRwicXn.js +1 -0
  1722. package/payload/server/public/assets/diagram-5BDNPKRD-CkUlWbsI.js +10 -0
  1723. package/payload/server/public/assets/diagram-G4DWMVQ6-DVZBG1Ul.js +24 -0
  1724. package/payload/server/public/assets/diagram-MMDJMWI5-BIb06ZkK.js +43 -0
  1725. package/payload/server/public/assets/diagram-TYMM5635-BcT0_WR8.js +24 -0
  1726. package/payload/server/public/assets/dist-Bd4S37oi.js +1 -0
  1727. package/payload/server/public/assets/dm-sans-latin-400-normal-BwCSEQnW.woff +0 -0
  1728. package/payload/server/public/assets/dm-sans-latin-400-normal-CW0RaeGs.woff2 +0 -0
  1729. package/payload/server/public/assets/dm-sans-latin-500-normal-B9HHJjqV.woff2 +0 -0
  1730. package/payload/server/public/assets/dm-sans-latin-500-normal-Dr3UlScf.woff +0 -0
  1731. package/payload/server/public/assets/dm-sans-latin-ext-400-normal-BjWJ59Pq.woff +0 -0
  1732. package/payload/server/public/assets/dm-sans-latin-ext-400-normal-BtiwyxMk.woff2 +0 -0
  1733. package/payload/server/public/assets/dm-sans-latin-ext-500-normal-BJfUCQsA.woff2 +0 -0
  1734. package/payload/server/public/assets/dm-sans-latin-ext-500-normal-DR84L5F-.woff +0 -0
  1735. package/payload/server/public/assets/erDiagram-SMLLAGMA-BHk6lxIT.js +85 -0
  1736. package/payload/server/public/assets/flatten-BsWEYbBB.js +1 -0
  1737. package/payload/server/public/assets/flowDiagram-DWJPFMVM-CjeJn490.js +162 -0
  1738. package/payload/server/public/assets/ganttDiagram-T4ZO3ILL-BGYvX3Lv.js +292 -0
  1739. package/payload/server/public/assets/gitGraph-7Q5UKJZL-DeTNsAO0.js +1 -0
  1740. package/payload/server/public/assets/gitGraphDiagram-UUTBAWPF-Br4WLGzW.js +106 -0
  1741. package/payload/server/public/assets/graph-CRSLozxc.js +1 -0
  1742. package/payload/server/public/assets/graph-labels-CQyZQ0u6.js +1 -0
  1743. package/payload/server/public/assets/graphlib-BWd9sMeP.js +1 -0
  1744. package/payload/server/public/assets/info-OMHHGYJF-DJJ9GlS6.js +1 -0
  1745. package/payload/server/public/assets/infoDiagram-42DDH7IO-BjZeQoNZ.js +2 -0
  1746. package/payload/server/public/assets/init-sTEcj9YX.js +1 -0
  1747. package/payload/server/public/assets/isEmpty-BWl67LAZ.js +1 -0
  1748. package/payload/server/public/assets/ishikawaDiagram-UXIWVN3A-POMae6Ni.js +70 -0
  1749. package/payload/server/public/assets/jetbrains-mono-cyrillic-400-normal-BEIGL1Tu.woff2 +0 -0
  1750. package/payload/server/public/assets/jetbrains-mono-cyrillic-400-normal-ugxPyKxw.woff +0 -0
  1751. package/payload/server/public/assets/jetbrains-mono-cyrillic-500-normal-DJqRU3vO.woff +0 -0
  1752. package/payload/server/public/assets/jetbrains-mono-cyrillic-500-normal-DmUKJPL_.woff2 +0 -0
  1753. package/payload/server/public/assets/jetbrains-mono-greek-400-normal-B9oWc5Lo.woff +0 -0
  1754. package/payload/server/public/assets/jetbrains-mono-greek-400-normal-C190GLew.woff2 +0 -0
  1755. package/payload/server/public/assets/jetbrains-mono-greek-500-normal-D7SFKleX.woff +0 -0
  1756. package/payload/server/public/assets/jetbrains-mono-greek-500-normal-JpySY46c.woff2 +0 -0
  1757. package/payload/server/public/assets/jetbrains-mono-latin-400-normal-6-qcROiO.woff +0 -0
  1758. package/payload/server/public/assets/jetbrains-mono-latin-400-normal-V6pRDFza.woff2 +0 -0
  1759. package/payload/server/public/assets/jetbrains-mono-latin-500-normal-BWZEU5yA.woff2 +0 -0
  1760. package/payload/server/public/assets/jetbrains-mono-latin-500-normal-CJOVTJB7.woff +0 -0
  1761. package/payload/server/public/assets/jetbrains-mono-latin-ext-400-normal-Bc8Ftmh3.woff2 +0 -0
  1762. package/payload/server/public/assets/jetbrains-mono-latin-ext-400-normal-fXTG6kC5.woff +0 -0
  1763. package/payload/server/public/assets/jetbrains-mono-latin-ext-500-normal-Cut-4mMH.woff2 +0 -0
  1764. package/payload/server/public/assets/jetbrains-mono-latin-ext-500-normal-ckzbgY84.woff +0 -0
  1765. package/payload/server/public/assets/jetbrains-mono-vietnamese-400-normal-CqNFfHCs.woff +0 -0
  1766. package/payload/server/public/assets/jetbrains-mono-vietnamese-500-normal-DNRqzVM1.woff +0 -0
  1767. package/payload/server/public/assets/journeyDiagram-VCZTEJTY-ledtLV6x.js +139 -0
  1768. package/payload/server/public/assets/jsx-runtime-DvanDPKm.css +1 -0
  1769. package/payload/server/public/assets/jsx-runtime-vPsBTwUp.js +9 -0
  1770. package/payload/server/public/assets/kanban-definition-6JOO6SKY-DI0T4W9z.js +89 -0
  1771. package/payload/server/public/assets/katex-s61Rgv6l.js +257 -0
  1772. package/payload/server/public/assets/lib-W5Jcz4p8.js +33 -0
  1773. package/payload/server/public/assets/line-D1281H12.js +1 -0
  1774. package/payload/server/public/assets/linear-0O14Y6uf.js +1 -0
  1775. package/payload/server/public/assets/mermaid-parser.core-Dt95U7zk.js +4 -0
  1776. package/payload/server/public/assets/mermaid.core-BuYSs1fU.js +11 -0
  1777. package/payload/server/public/assets/mindmap-definition-QFDTVHPH-CFE1lmfX.js +96 -0
  1778. package/payload/server/public/assets/ordinal-krseTxxN.js +1 -0
  1779. package/payload/server/public/assets/packet-4T2RLAQJ-CGbvGkvF.js +1 -0
  1780. package/payload/server/public/assets/page-CSUcuVW0.js +1 -0
  1781. package/payload/server/public/assets/page-TARBO-Yr.js +50 -0
  1782. package/payload/server/public/assets/path-B0Ik7Tu9.js +1 -0
  1783. package/payload/server/public/assets/pie-ZZUOXDRM-BZy8rjFn.js +1 -0
  1784. package/payload/server/public/assets/pieDiagram-DEJITSTG-BSd9xa7v.js +30 -0
  1785. package/payload/server/public/assets/public-5r6aRXrb.js +8 -0
  1786. package/payload/server/public/assets/quadrantDiagram-34T5L4WZ-xYehPVw5.js +7 -0
  1787. package/payload/server/public/assets/radar-PYXPWWZC-DcfWIVXr.js +1 -0
  1788. package/payload/server/public/assets/reduce-tk-xY6Fv.js +1 -0
  1789. package/payload/server/public/assets/requirementDiagram-MS252O5E-C6n77V1S.js +84 -0
  1790. package/payload/server/public/assets/rough.esm-DKRO8IF-.js +1 -0
  1791. package/payload/server/public/assets/sankeyDiagram-XADWPNL6-CWIfeO1M.js +10 -0
  1792. package/payload/server/public/assets/sequenceDiagram-FGHM5R23-DDv2DuMo.js +157 -0
  1793. package/payload/server/public/assets/src-B6XdH6xq.js +1 -0
  1794. package/payload/server/public/assets/stateDiagram-FHFEXIEX-BPZdmsww.js +1 -0
  1795. package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-33eC4TwE.js +1 -0
  1796. package/payload/server/public/assets/timeline-definition-GMOUNBTQ-BpRT_wSX.js +120 -0
  1797. package/payload/server/public/assets/treeView-SZITEDCU-3WugwVdj.js +1 -0
  1798. package/payload/server/public/assets/treemap-W4RFUUIX-Cf5mDLlu.js +1 -0
  1799. package/payload/server/public/assets/vennDiagram-DHZGUBPP-BG8ubucH.js +34 -0
  1800. package/payload/server/public/assets/wardley-RL74JXVD-Bv4md4b3.js +1 -0
  1801. package/payload/server/public/assets/wardleyDiagram-NUSXRM2D-D4E7PU1B.js +20 -0
  1802. package/payload/server/public/assets/xychartDiagram-5P7HB3ND-Ur2xVM-c.js +7 -0
  1803. package/payload/server/public/brand/claude.png +0 -0
  1804. package/payload/server/public/brand/favicon.ico +0 -0
  1805. package/payload/server/public/brand/maxy-black.png +0 -0
  1806. package/payload/server/public/brand/maxy-horizontal.png +0 -0
  1807. package/payload/server/public/brand/maxy-monochrome.png +0 -0
  1808. package/payload/server/public/brand/maxy-square.png +0 -0
  1809. package/payload/server/public/brand/maxy.png +0 -0
  1810. package/payload/server/public/brand/star.png +0 -0
  1811. package/payload/server/public/brand-constants.json +8 -0
  1812. package/payload/server/public/brand-defaults.css +12 -0
  1813. package/payload/server/public/data.html +18 -0
  1814. package/payload/server/public/favicon.ico +0 -0
  1815. package/payload/server/public/graph.html +19 -0
  1816. package/payload/server/public/index.html +23 -0
  1817. package/payload/server/public/public.html +19 -0
  1818. package/payload/server/public/robots.txt +5 -0
  1819. package/payload/server/public/vnc-popout.html +63 -0
  1820. package/payload/server/server-init.cjs +115 -0
  1821. package/payload/server/server.js +14960 -0
@@ -0,0 +1,1544 @@
1
+ // app/lib/neo4j-store.ts
2
+ import neo4j from "neo4j-driver";
3
+ import { randomUUID } from "crypto";
4
+ import { spawn } from "child_process";
5
+ import { readFileSync, readdirSync, existsSync, openSync, readSync, closeSync, statSync, rmSync } from "fs";
6
+ import { resolve } from "path";
7
+
8
+ // ../lib/models/src/index.ts
9
+ var OPUS_MODEL = "claude-opus-4-7";
10
+ var SONNET_MODEL = "claude-sonnet-4-6";
11
+ var HAIKU_MODEL = "claude-haiku-4-5";
12
+ var MODEL_CONTEXT_WINDOW = {
13
+ [OPUS_MODEL]: 2e5,
14
+ [SONNET_MODEL]: 2e5,
15
+ [HAIKU_MODEL]: 2e5
16
+ };
17
+
18
+ // app/lib/neo4j-store.ts
19
+ var PLATFORM_ROOT = process.env.MAXY_PLATFORM_ROOT ?? resolve(process.cwd(), "..");
20
+ var driver = null;
21
+ function readPassword() {
22
+ if (process.env.NEO4J_PASSWORD) return process.env.NEO4J_PASSWORD;
23
+ const passwordFile = resolve(PLATFORM_ROOT, "config/.neo4j-password");
24
+ try {
25
+ return readFileSync(passwordFile, "utf-8").trim();
26
+ } catch {
27
+ throw new Error(
28
+ `Neo4j password not found. Expected at ${passwordFile} or in NEO4J_PASSWORD env var.`
29
+ );
30
+ }
31
+ }
32
+ function getDriver() {
33
+ if (!driver) {
34
+ const uri = process.env.NEO4J_URI;
35
+ if (!uri) {
36
+ throw new Error(
37
+ "[ui/neo4j-store] NEO4J_URI unset \u2014 refusing to default to bolt://localhost:7687"
38
+ );
39
+ }
40
+ const user = process.env.NEO4J_USER ?? "neo4j";
41
+ const password = readPassword();
42
+ console.error(`[ui/neo4j-store] resolved neo4j_uri=${uri}`);
43
+ driver = neo4j.driver(uri, neo4j.auth.basic(user, password), {
44
+ maxConnectionPoolSize: 5
45
+ });
46
+ }
47
+ return driver;
48
+ }
49
+ function getSession() {
50
+ return getDriver().session();
51
+ }
52
+ async function runAdminUserSelfHeal(args) {
53
+ const { selfHealAdminUser } = await import("./adminuser-self-heal-QAWOZ3JV.js");
54
+ return selfHealAdminUser({ driver: getDriver(), ...args });
55
+ }
56
+ process.on("SIGINT", async () => {
57
+ if (driver) {
58
+ await driver.close();
59
+ driver = null;
60
+ }
61
+ });
62
+ var OLLAMA_URL = process.env.OLLAMA_URL ?? "http://localhost:11434";
63
+ var EMBED_MODEL = process.env.EMBED_MODEL ?? "nomic-embed-text";
64
+ async function embed(text) {
65
+ const res = await fetch(`${OLLAMA_URL}/api/embed`, {
66
+ method: "POST",
67
+ headers: { "Content-Type": "application/json" },
68
+ body: JSON.stringify({ model: EMBED_MODEL, input: text }),
69
+ signal: AbortSignal.timeout(5e3)
70
+ });
71
+ if (!res.ok) {
72
+ const body = await res.text();
73
+ throw new Error(`Ollama embedding failed (${res.status}): ${body}`);
74
+ }
75
+ const data = await res.json();
76
+ return data.embeddings[0];
77
+ }
78
+ var sessionStoreRef = null;
79
+ function getCachedConversationId(cacheKey) {
80
+ return sessionStoreRef?.get(cacheKey)?.conversationId;
81
+ }
82
+ function cacheConversationId(cacheKey, conversationId) {
83
+ const session = sessionStoreRef?.get(cacheKey);
84
+ if (session) {
85
+ session.conversationId = conversationId;
86
+ }
87
+ }
88
+ var GREETING_DIRECTIVE = "[New session. Greet the visitor.]";
89
+ var DIRECTIVE_PREFIX = "[New session.";
90
+ async function ensureConversation(accountId, agentType, cacheKey, visitorId, agentSlug, userId, channelOverride, channelAddressOverride) {
91
+ const cached = getCachedConversationId(cacheKey);
92
+ if (cached) return { conversationId: cached, created: false };
93
+ const conversationId = randomUUID();
94
+ const channel = channelOverride ?? (cacheKey.startsWith("whatsapp:") ? "whatsapp" : cacheKey.startsWith("telegram:") ? "telegram" : "webchat");
95
+ const channelAddress = channelAddressOverride ?? (cacheKey.startsWith("whatsapp:") ? cacheKey.slice("whatsapp:".length) : cacheKey.startsWith("telegram:") ? cacheKey.slice("telegram:".length) : conversationId);
96
+ const conversationSublabel = agentType === "admin" ? "AdminConversation" : "PublicConversation";
97
+ const handlerSlug = agentSlug ?? (agentType === "admin" ? "admin" : null);
98
+ const wantsHandledByEdge = !!handlerSlug;
99
+ const handledByClause = wantsHandledByEdge ? `WITH c, created
100
+ OPTIONAL MATCH (a:Agent {accountId: $accountId, slug: $handlerSlug})
101
+ FOREACH (_ IN CASE WHEN a IS NULL THEN [] ELSE [1] END | MERGE (c)-[:HANDLED_BY]->(a))
102
+ RETURN c.conversationId AS conversationId, created AS created, a IS NOT NULL AS handledBy` : `RETURN c.conversationId AS conversationId, created AS created, false AS handledBy`;
103
+ const session = getSession();
104
+ try {
105
+ const result = await session.run(
106
+ `OPTIONAL MATCH (prior:Conversation {accountId: $accountId, channel: $channel, channelAddress: $channelAddress})
107
+ WITH prior, coalesce(prior.conversationId, $conversationId) AS finalConvId, prior IS NULL AS created
108
+ MERGE (c:Conversation {conversationId: finalConvId})
109
+ ON CREATE SET
110
+ c:${conversationSublabel},
111
+ c.accountId = $accountId,
112
+ c.agentType = $agentType,
113
+ c.channel = $channel,
114
+ c.channelAddress = $channelAddress,
115
+ ${visitorId ? "c.visitorId = $visitorId," : ""}
116
+ ${agentSlug ? "c.agentSlug = $agentSlug," : ""}
117
+ ${userId ? "c.userId = $userId," : ""}
118
+ c.createdAt = datetime(),
119
+ c.updatedAt = datetime()
120
+ ON MATCH SET
121
+ c.updatedAt = datetime()
122
+ ${handledByClause}`,
123
+ {
124
+ conversationId,
125
+ accountId,
126
+ agentType,
127
+ channel,
128
+ channelAddress,
129
+ ...visitorId ? { visitorId } : {},
130
+ ...agentSlug ? { agentSlug } : {},
131
+ ...handlerSlug ? { handlerSlug } : {},
132
+ ...userId ? { userId } : {}
133
+ }
134
+ );
135
+ const id = result.records[0]?.get("conversationId");
136
+ const created = result.records[0]?.get("created") === true;
137
+ if (id) {
138
+ cacheConversationId(cacheKey, id);
139
+ console.error(`[session] ${(/* @__PURE__ */ new Date()).toISOString()} conversation attributed: conversationId=${id.slice(0, 8)}\u2026 userId=${userId ?? "none"} ${agentType}/${accountId.slice(0, 8)}\u2026 sublabel=${conversationSublabel}`);
140
+ if (wantsHandledByEdge) {
141
+ const handled = result.records[0]?.get("handledBy");
142
+ const id8 = id.slice(0, 8);
143
+ if (handled === true) {
144
+ console.error(`[agent-graph] handled-by-write conversationId=${id8} slug=${handlerSlug}`);
145
+ } else {
146
+ console.error(`[agent-graph] handled-by-skip reason=no-agent-node conversationId=${id8} slug=${handlerSlug}`);
147
+ }
148
+ }
149
+ }
150
+ return { conversationId: id ?? null, created };
151
+ } catch (err) {
152
+ console.error(`[persist] ensureConversation failed: ${err instanceof Error ? err.message : String(err)}`);
153
+ return { conversationId: null, created: false };
154
+ } finally {
155
+ await session.close();
156
+ }
157
+ }
158
+ async function findRecentConversation(visitorId, accountId, agentSlug, maxAgeHours = 24) {
159
+ const session = getSession();
160
+ try {
161
+ const result = await session.run(
162
+ `MATCH (c:Conversation {visitorId: $visitorId, accountId: $accountId, agentType: 'public'})
163
+ WHERE c.agentSlug = $agentSlug
164
+ AND c.updatedAt > datetime() - duration({hours: $maxAgeHours})
165
+ AND NOT c:Trashed
166
+ RETURN c.conversationId AS conversationId
167
+ ORDER BY c.updatedAt DESC
168
+ LIMIT 1`,
169
+ { visitorId, accountId, agentSlug, maxAgeHours: neo4j.int(maxAgeHours) },
170
+ { timeout: 2e3 }
171
+ );
172
+ const record = result.records[0];
173
+ if (!record) return null;
174
+ const conversationId = record.get("conversationId");
175
+ if (!conversationId) return null;
176
+ console.log(`[persist] found recent conversation ${conversationId.slice(0, 8)}\u2026 for visitor ${visitorId.slice(0, 8)}\u2026`);
177
+ return { conversationId };
178
+ } catch (err) {
179
+ console.error(`[persist] findRecentConversation failed: ${err instanceof Error ? err.message : String(err)}`);
180
+ return null;
181
+ } finally {
182
+ await session.close();
183
+ }
184
+ }
185
+ async function findGroupBySlug(groupSlug, accountId) {
186
+ const session = getSession();
187
+ try {
188
+ const result = await session.run(
189
+ `MATCH (c:Conversation {groupSlug: $groupSlug, accountId: $accountId, type: 'group'})
190
+ WHERE NOT c:Trashed
191
+ RETURN c.conversationId AS conversationId, c.groupName AS groupName, c.agentSlug AS agentSlug`,
192
+ { groupSlug, accountId },
193
+ { timeout: 2e3 }
194
+ );
195
+ const record = result.records[0];
196
+ if (!record) return null;
197
+ return {
198
+ conversationId: record.get("conversationId"),
199
+ groupName: record.get("groupName"),
200
+ agentSlug: record.get("agentSlug")
201
+ };
202
+ } catch (err) {
203
+ console.error(`[group] findGroupBySlug failed: ${err instanceof Error ? err.message : String(err)}`);
204
+ return null;
205
+ } finally {
206
+ await session.close();
207
+ }
208
+ }
209
+ async function getGroupParticipants(conversationId) {
210
+ const session = getSession();
211
+ try {
212
+ const result = await session.run(
213
+ `MATCH (p:Person)-[r:PARTICIPATES_IN]->(c:Conversation {conversationId: $conversationId})
214
+ RETURN p.givenName AS givenName, p.familyName AS familyName,
215
+ r.displayName AS displayName, r.joinedAt AS joinedAt, r.visitorId AS visitorId`,
216
+ { conversationId }
217
+ );
218
+ return result.records.map((r) => ({
219
+ displayName: r.get("displayName") || r.get("givenName"),
220
+ givenName: r.get("givenName"),
221
+ familyName: r.get("familyName"),
222
+ joinedAt: String(r.get("joinedAt")),
223
+ visitorId: r.get("visitorId")
224
+ }));
225
+ } catch (err) {
226
+ console.error(`[group] getGroupParticipants failed: ${err instanceof Error ? err.message : String(err)}`);
227
+ return [];
228
+ } finally {
229
+ await session.close();
230
+ }
231
+ }
232
+ async function checkGroupMembership(conversationId, visitorId) {
233
+ const session = getSession();
234
+ try {
235
+ const result = await session.run(
236
+ `MATCH (p:Person)-[r:PARTICIPATES_IN]->(c:Conversation {conversationId: $conversationId})
237
+ WHERE r.visitorId = $visitorId
238
+ RETURN r.displayName AS displayName
239
+ LIMIT 1`,
240
+ { conversationId, visitorId }
241
+ );
242
+ return result.records[0]?.get("displayName") ?? null;
243
+ } catch (err) {
244
+ console.error(`[group] checkGroupMembership failed: ${err instanceof Error ? err.message : String(err)}`);
245
+ return null;
246
+ } finally {
247
+ await session.close();
248
+ }
249
+ }
250
+ async function bindVisitorToGroup(conversationId, visitorId, personEmail, personPhone) {
251
+ const session = getSession();
252
+ try {
253
+ const result = await session.run(
254
+ `MATCH (p:Person)-[r:PARTICIPATES_IN]->(c:Conversation {conversationId: $conversationId})
255
+ WHERE ($email IS NOT NULL AND p.email = $email)
256
+ OR ($phone IS NOT NULL AND p.telephone = $phone)
257
+ SET r.visitorId = $visitorId
258
+ RETURN r.displayName AS displayName
259
+ LIMIT 1`,
260
+ {
261
+ conversationId,
262
+ visitorId,
263
+ email: personEmail ?? null,
264
+ phone: personPhone ?? null
265
+ }
266
+ );
267
+ const name = result.records[0]?.get("displayName");
268
+ if (name) {
269
+ console.error(`[group] joined id=${conversationId.slice(0, 8)}\u2026 visitor=${visitorId.slice(0, 8)}\u2026`);
270
+ } else {
271
+ console.error(`[group] auth-denied id=${conversationId.slice(0, 8)}\u2026 visitor=${visitorId.slice(0, 8)}\u2026`);
272
+ }
273
+ return name ? { displayName: name } : null;
274
+ } catch (err) {
275
+ console.error(`[group] bindVisitorToGroup failed: ${err instanceof Error ? err.message : String(err)}`);
276
+ return null;
277
+ } finally {
278
+ await session.close();
279
+ }
280
+ }
281
+ async function getMessagesSince(conversationId, since, limit = 100) {
282
+ const session = getSession();
283
+ try {
284
+ const result = await session.run(
285
+ `MATCH (m:Message)-[:PART_OF]->(c:Conversation {conversationId: $conversationId})
286
+ WHERE m.createdAt > datetime($since)
287
+ RETURN m.messageId AS messageId, m.role AS role, m.content AS content,
288
+ m.senderName AS senderName, m.senderVisitorId AS senderVisitorId,
289
+ m.createdAt AS createdAt
290
+ ORDER BY m.createdAt ASC
291
+ LIMIT $limit`,
292
+ { conversationId, since, limit: neo4j.int(limit) },
293
+ { timeout: 3e3 }
294
+ );
295
+ return result.records.map((r) => ({
296
+ messageId: r.get("messageId"),
297
+ role: r.get("role"),
298
+ content: r.get("content"),
299
+ senderName: r.get("senderName"),
300
+ senderVisitorId: r.get("senderVisitorId"),
301
+ createdAt: String(r.get("createdAt"))
302
+ }));
303
+ } catch (err) {
304
+ console.error(`[group] getMessagesSince failed: ${err instanceof Error ? err.message : String(err)}`);
305
+ return [];
306
+ } finally {
307
+ await session.close();
308
+ }
309
+ }
310
+ async function backfillConversationChannelAddress() {
311
+ const session = getSession();
312
+ try {
313
+ const LEGACY_PROP = "cacheKey";
314
+ const result = await session.run(
315
+ `MATCH (c:Conversation)
316
+ WHERE c.channelAddress IS NULL
317
+ SET c.channel = coalesce(c.channel, CASE
318
+ WHEN c.${LEGACY_PROP} STARTS WITH 'whatsapp:' THEN 'whatsapp'
319
+ WHEN c.${LEGACY_PROP} STARTS WITH 'telegram:' THEN 'telegram'
320
+ ELSE 'webchat'
321
+ END),
322
+ c.channelAddress = CASE
323
+ WHEN c.${LEGACY_PROP} STARTS WITH 'whatsapp:' THEN substring(c.${LEGACY_PROP}, 9)
324
+ WHEN c.${LEGACY_PROP} STARTS WITH 'telegram:' THEN substring(c.${LEGACY_PROP}, 9)
325
+ ELSE coalesce(c.conversationId, c.${LEGACY_PROP})
326
+ END
327
+ RETURN count(c) AS updated`
328
+ );
329
+ const updatedRaw = result.records[0]?.get("updated")?.toNumber?.() ?? result.records[0]?.get("updated") ?? 0;
330
+ const updated = typeof updatedRaw === "number" ? updatedRaw : 0;
331
+ if (updated > 0) {
332
+ console.log(`[session-985] backfill channelAddress: updated ${updated} legacy Conversation rows`);
333
+ } else {
334
+ console.log(`[session-985] backfill channelAddress: no legacy rows needed migration`);
335
+ }
336
+ const dropRes = await session.run(
337
+ `MATCH (c:Conversation)
338
+ WHERE c.${LEGACY_PROP} IS NOT NULL AND c.channelAddress IS NOT NULL
339
+ REMOVE c.${LEGACY_PROP}
340
+ RETURN count(c) AS dropped`
341
+ );
342
+ const droppedRaw = dropRes.records[0]?.get("dropped")?.toNumber?.() ?? dropRes.records[0]?.get("dropped") ?? 0;
343
+ const legacyPropDropped = typeof droppedRaw === "number" ? droppedRaw : 0;
344
+ console.log(`[session-985] cacheKey-property-drop count=${legacyPropDropped}`);
345
+ return { updated, legacyPropDropped };
346
+ } catch (err) {
347
+ console.error(`[session-985] backfillConversationChannelAddress failed: ${err instanceof Error ? err.message : String(err)}`);
348
+ return { updated: 0, legacyPropDropped: 0 };
349
+ } finally {
350
+ await session.close();
351
+ }
352
+ }
353
+ async function backfillNullUserIdConversations(userId) {
354
+ if (!userId) {
355
+ console.warn(`[session] ${(/* @__PURE__ */ new Date()).toISOString()} backfill: skipped \u2014 no userId provided (no Owner in users.json?)`);
356
+ return 0;
357
+ }
358
+ const session = getSession();
359
+ try {
360
+ const result = await session.run(
361
+ `MATCH (c:Conversation {agentType: 'admin'})
362
+ WHERE c.userId IS NULL
363
+ SET c.userId = $userId
364
+ RETURN count(c) AS updated`,
365
+ { userId }
366
+ );
367
+ const updated = result.records[0]?.get("updated")?.toNumber?.() ?? result.records[0]?.get("updated") ?? 0;
368
+ if (updated > 0) {
369
+ console.log(`[session] ${(/* @__PURE__ */ new Date()).toISOString()} backfill: set userId on ${updated} admin conversations`);
370
+ } else {
371
+ console.log(`[session] ${(/* @__PURE__ */ new Date()).toISOString()} backfill: no orphaned admin conversations found`);
372
+ }
373
+ return typeof updated === "number" ? updated : 0;
374
+ } catch (err) {
375
+ console.error(`[session] backfillNullUserIdConversations failed: ${err instanceof Error ? err.message : String(err)}`);
376
+ return 0;
377
+ } finally {
378
+ await session.close();
379
+ }
380
+ }
381
+ var HEX_COLOR_RE = /^#[0-9a-fA-F]{3,8}$/;
382
+ async function fetchBranding(accountId) {
383
+ const session = getSession();
384
+ try {
385
+ const result = await session.run(
386
+ `MATCH (b:LocalBusiness {accountId: $accountId})
387
+ OPTIONAL MATCH (b)-[:HAS_BRAND_ASSET]->(logo:ImageObject {purpose: "logo"})
388
+ OPTIONAL MATCH (b)-[:HAS_BRAND_ASSET]->(icon:ImageObject {purpose: "icon"})
389
+ RETURN b.name AS name,
390
+ b.primaryColor AS primaryColor,
391
+ b.accentColor AS accentColor,
392
+ b.backgroundColor AS backgroundColor,
393
+ b.tagline AS tagline,
394
+ logo.contentUrl AS logoUrl,
395
+ icon.contentUrl AS faviconUrl`,
396
+ { accountId },
397
+ { timeout: 2e3 }
398
+ );
399
+ const record = result.records[0];
400
+ if (!record) return null;
401
+ const name = record.get("name");
402
+ if (!name) return null;
403
+ const primaryColor = record.get("primaryColor");
404
+ const accentColor = record.get("accentColor");
405
+ const backgroundColor = record.get("backgroundColor");
406
+ const tagline = record.get("tagline");
407
+ const logoUrl = record.get("logoUrl");
408
+ const faviconUrl = record.get("faviconUrl");
409
+ const hasBranding = primaryColor || accentColor || backgroundColor || tagline || logoUrl || faviconUrl;
410
+ if (!hasBranding) return null;
411
+ const branding = { name };
412
+ if (primaryColor && HEX_COLOR_RE.test(primaryColor)) branding.primaryColor = primaryColor;
413
+ if (accentColor && HEX_COLOR_RE.test(accentColor)) branding.accentColor = accentColor;
414
+ if (backgroundColor && HEX_COLOR_RE.test(backgroundColor)) branding.backgroundColor = backgroundColor;
415
+ if (tagline) branding.tagline = tagline;
416
+ if (logoUrl) branding.logoUrl = logoUrl;
417
+ if (faviconUrl) branding.faviconUrl = faviconUrl;
418
+ console.error(`[branding] resolved for accountId=${accountId.slice(0, 8)}\u2026: primary=${branding.primaryColor ?? "\u2013"} logo=${branding.logoUrl ? "yes" : "no"}`);
419
+ return branding;
420
+ } catch (err) {
421
+ console.error(`[branding] fetchBranding failed for accountId=${accountId.slice(0, 8)}\u2026: ${err instanceof Error ? err.message : String(err)}`);
422
+ return null;
423
+ } finally {
424
+ await session.close();
425
+ }
426
+ }
427
+ var SUMMARY_MAX_LEN = 200;
428
+ var persistMessageLocks = /* @__PURE__ */ new Map();
429
+ async function persistMessage(conversationId, role, content, accountId, tokens, createdAt, sender, components, attachments) {
430
+ if (!content) return null;
431
+ const messageId = randomUUID();
432
+ const summary = role === "user" ? content.slice(0, SUMMARY_MAX_LEN).trim() : "";
433
+ let embedding = null;
434
+ try {
435
+ embedding = await embed(content);
436
+ } catch (err) {
437
+ console.error(`[persist] Embedding failed, storing without: ${err instanceof Error ? err.message : String(err)}`);
438
+ }
439
+ const prev = persistMessageLocks.get(conversationId);
440
+ const waited = prev !== void 0;
441
+ let release;
442
+ const mine = new Promise((resolve2) => {
443
+ release = resolve2;
444
+ });
445
+ const chained = (prev ?? Promise.resolve()).then(() => mine);
446
+ persistMessageLocks.set(conversationId, chained);
447
+ await prev;
448
+ const session = getSession();
449
+ try {
450
+ const result = await session.run(
451
+ `MATCH (c:Conversation {conversationId: $conversationId})
452
+ OPTIONAL MATCH (tail:Message)-[:PART_OF]->(c)
453
+ WHERE NOT (tail)-[:NEXT]->(:Message)
454
+ AND (tail:UserMessage OR tail:AssistantMessage)
455
+ // Task 857 \u2014 sublabel-scope the tail to the agent-path's own sublabels.
456
+ // Without this, a Task-857 :WhatsAppMessage row (no outgoing :NEXT)
457
+ // would be picked as tail and the agent-path would chain
458
+ // :WhatsAppMessage\u2192:UserMessage, crossing the live-channel chain.
459
+ // The live writer's tail predicate is sublabel-scoped to
460
+ // :WhatsAppMessage; this clause is the matching defence on the
461
+ // agent side. Backward-compatible \u2014 pre-Task-857 graphs only carry
462
+ // UserMessage/AssistantMessage sublabels under :Message.
463
+ // Capture whether THIS write's guard will fire. Read c.summary
464
+ // before the SET so the boolean reflects the pre-state, not the
465
+ // post-state \u2014 a false positive otherwise when a new user message
466
+ // happens to equal an already-set summary (verbatim retry, short
467
+ // catchphrase) and fooled a post-state equality check.
468
+ WITH c, tail, (c.summary IS NULL AND $role = 'user' AND $summary <> '') AS summarySetThisWrite
469
+ CREATE (m:Message:${role === "user" ? "UserMessage" : "AssistantMessage"} {
470
+ messageId: $messageId,
471
+ conversationId: $conversationId,
472
+ accountId: $accountId,
473
+ role: $role,
474
+ content: $content,
475
+ createdAt: ${createdAt ? "datetime($createdAt)" : "datetime()"}
476
+ ${embedding ? ", embedding: $embedding" : ""}
477
+ ${sender ? ", senderVisitorId: $senderVisitorId, senderName: $senderName" : ""}
478
+ ${tokens?.inputTokens != null ? ", inputTokens: $inputTokens" : ""}
479
+ ${tokens?.outputTokens != null ? ", outputTokens: $outputTokens" : ""}
480
+ ${tokens?.cacheReadTokens != null ? ", cacheReadTokens: $cacheReadTokens" : ""}
481
+ ${tokens?.cacheCreationTokens != null ? ", cacheCreationTokens: $cacheCreationTokens" : ""}
482
+ })
483
+ SET c.updatedAt = datetime()
484
+ CREATE (m)-[:PART_OF]->(c)
485
+ FOREACH (prev IN CASE WHEN tail IS NULL THEN [] ELSE [tail] END |
486
+ CREATE (prev)-[:NEXT]->(m)
487
+ )
488
+ FOREACH (_ IN CASE WHEN summarySetThisWrite THEN [1] ELSE [] END |
489
+ SET c.summary = $summary
490
+ )
491
+ FOREACH (comp IN $components |
492
+ CREATE (m)-[:HAS_COMPONENT]->(:Component {
493
+ componentId: comp.componentId,
494
+ conversationId: $conversationId,
495
+ accountId: $accountId,
496
+ messageId: $messageId,
497
+ name: comp.name,
498
+ data: comp.data,
499
+ ordinal: comp.ordinal,
500
+ textOffset: comp.textOffset,
501
+ submitted: false,
502
+ createdAt: datetime(),
503
+ // Task 942 \u2014 store the artefact attachmentId on the :Component
504
+ // itself when this is a PERSISTENT_COMPONENTS write whose disk
505
+ // write succeeded. Field is null for non-persistent / mime-skip
506
+ // / disk-fail components. Lets the audit + backfill scripts
507
+ // read the attachmentId directly off the :Component row instead
508
+ // of re-deriving (the live + heal paths use different sources \u2014
509
+ // sha256(block.id) live, componentId-fallback backfill \u2014 and
510
+ // the audit must match either).
511
+ attachmentId: comp.artefactAttachmentId
512
+ })
513
+ )
514
+ // Task 942 \u2014 for PERSISTENT_COMPONENTS whose disk write succeeded
515
+ // (artefactAttachmentId is non-null), MERGE the sibling
516
+ // :KnowledgeDocument projection AND a :HAS_KNOWLEDGE_DOCUMENT edge
517
+ // from the parent :Message in the same Cypher tx. ON CREATE stamps
518
+ // name+encodingFormat from the live render; ON MATCH only bumps
519
+ // updatedAt so a heal-on-resume re-run cannot clobber an operator's
520
+ // subsequent rename via the knowledge-documents API (eng-review \xA72).
521
+ // The edge makes the projection graph-discoverable from the
522
+ // conversation timeline so file-delete-cascade and conversation
523
+ // cleanup can reach it. FOREACH on the filtered list collapses to a
524
+ // no-op when no component has an attachmentId, preserving the
525
+ // text-only-turn fast path.
526
+ FOREACH (kd IN $knowledgeDocs |
527
+ MERGE (k:KnowledgeDocument {accountId: $accountId, attachmentId: kd.attachmentId})
528
+ ON CREATE SET k.name = kd.title,
529
+ k.encodingFormat = kd.mimeType,
530
+ k.createdAt = datetime(),
531
+ k.updatedAt = datetime()
532
+ ON MATCH SET k.updatedAt = datetime()
533
+ MERGE (m)-[:HAS_KNOWLEDGE_DOCUMENT]->(k)
534
+ )
535
+ FOREACH (att IN $attachments |
536
+ CREATE (m)-[:HAS_ATTACHMENT]->(:Attachment {
537
+ attachmentId: att.attachmentId,
538
+ conversationId: $conversationId,
539
+ accountId: $accountId,
540
+ messageId: $messageId,
541
+ filename: att.filename,
542
+ mimeType: att.mimeType,
543
+ sizeBytes: att.sizeBytes,
544
+ storagePath: att.storagePath,
545
+ ordinal: att.ordinal,
546
+ createdAt: datetime()
547
+ })
548
+ )
549
+ RETURN tail.messageId AS prevMessageId,
550
+ summarySetThisWrite,
551
+ size([(m2:Message)-[:PART_OF]->(c) | m2]) AS chainLen`,
552
+ {
553
+ messageId,
554
+ conversationId,
555
+ accountId,
556
+ role,
557
+ content,
558
+ summary,
559
+ ...createdAt ? { createdAt } : {},
560
+ ...embedding ? { embedding } : {},
561
+ ...sender ? { senderVisitorId: sender.visitorId, senderName: sender.displayName } : {},
562
+ ...tokens?.inputTokens != null ? { inputTokens: neo4j.int(tokens.inputTokens) } : {},
563
+ ...tokens?.outputTokens != null ? { outputTokens: neo4j.int(tokens.outputTokens) } : {},
564
+ ...tokens?.cacheReadTokens != null ? { cacheReadTokens: neo4j.int(tokens.cacheReadTokens) } : {},
565
+ ...tokens?.cacheCreationTokens != null ? { cacheCreationTokens: neo4j.int(tokens.cacheCreationTokens) } : {},
566
+ components: (components ?? []).map((comp) => ({
567
+ componentId: comp.componentId,
568
+ name: comp.name,
569
+ data: comp.data,
570
+ ordinal: neo4j.int(comp.ordinal),
571
+ textOffset: neo4j.int(comp.textOffset),
572
+ // Task 942 — null for non-persistent / mime-skip / disk-fail
573
+ // components; the FOREACH stamps this directly onto the
574
+ // :Component row so audit + backfill read attachmentId without
575
+ // re-deriving from componentId.
576
+ artefactAttachmentId: comp.artefactAttachmentId ?? null
577
+ })),
578
+ // Task 942 — :KnowledgeDocument MERGE list. One row per
579
+ // PERSISTENT_COMPONENTS component whose disk write succeeded;
580
+ // text-only / mime-skip / disk-fail components are absent so
581
+ // the FOREACH no-ops on them. attachmentId here matches the
582
+ // value the stream-parser stamped after writeAttachment.
583
+ knowledgeDocs: (components ?? []).filter((comp) => typeof comp.artefactAttachmentId === "string").map((comp) => ({
584
+ attachmentId: comp.artefactAttachmentId,
585
+ title: comp.artefactTitle ?? "",
586
+ mimeType: comp.artefactMimeType ?? ""
587
+ })),
588
+ attachments: (attachments ?? []).map((att) => ({
589
+ attachmentId: att.attachmentId,
590
+ filename: att.filename,
591
+ mimeType: att.mimeType,
592
+ sizeBytes: neo4j.int(att.sizeBytes),
593
+ storagePath: att.storagePath,
594
+ ordinal: neo4j.int(att.ordinal)
595
+ }))
596
+ }
597
+ );
598
+ if (result.records.length === 0) {
599
+ console.error(`[persist] Neo4j write skipped \u2014 conversation not found: ${conversationId.slice(0, 8)}\u2026`);
600
+ return null;
601
+ }
602
+ const record = result.records[0];
603
+ const prevMessageId = record.get("prevMessageId") ?? null;
604
+ const summarySetThisWrite = record.get("summarySetThisWrite") === true;
605
+ const chainLenRaw = record.get("chainLen");
606
+ const chainLen = typeof chainLenRaw === "bigint" ? Number(chainLenRaw) : typeof chainLenRaw?.toNumber === "function" ? chainLenRaw.toNumber() : Number(chainLenRaw ?? 0);
607
+ const messageSublabel = role === "user" ? "UserMessage" : "AssistantMessage";
608
+ console.error(`[neo4j-store] append-message conversationId=${conversationId.slice(0, 8)}\u2026 messageId=${messageId.slice(0, 8)}\u2026 prev=${prevMessageId ? prevMessageId.slice(0, 8) + "\u2026" : "null"} chainLen=${chainLen} waited=${waited} sublabel=${messageSublabel}`);
609
+ if (summarySetThisWrite) {
610
+ console.error(`[neo4j-store] conversation-summary-set conversationId=${conversationId.slice(0, 8)}\u2026 len=${summary.length}`);
611
+ }
612
+ const componentList = components ?? [];
613
+ if (componentList.length > 0) {
614
+ const relsCreated = result.summary.counters.updates().relationshipsCreated;
615
+ const expectedComponentEdges = componentList.length;
616
+ const baseEdges = relsCreated - expectedComponentEdges;
617
+ if (baseEdges < 1) {
618
+ console.error(`[neo4j-store] persist-component WARN conversationId=${conversationId.slice(0, 8)}\u2026 messageId=${messageId.slice(0, 8)}\u2026 relsCreated=${relsCreated} expected\u2265${1 + expectedComponentEdges} \u2014 component edges may not have been created`);
619
+ }
620
+ for (const comp of componentList) {
621
+ console.error(`[neo4j-store] persist-component conversationId=${conversationId.slice(0, 8)}\u2026 messageId=${messageId.slice(0, 8)}\u2026 componentId=${comp.componentId.slice(0, 8)}\u2026 name=${comp.name} dataLen=${comp.data.length} ordinal=${comp.ordinal} textOffset=${comp.textOffset}`);
622
+ }
623
+ }
624
+ const attachmentList = attachments ?? [];
625
+ if (attachmentList.length > 0) {
626
+ const relsCreated = result.summary.counters.updates().relationshipsCreated;
627
+ const expectedAttachmentEdges = attachmentList.length;
628
+ const expectedComponentEdges = (components ?? []).length;
629
+ const baseEdges = relsCreated - expectedComponentEdges - expectedAttachmentEdges;
630
+ if (baseEdges < 1) {
631
+ console.error(`[neo4j-store] persist-attachment WARN conversationId=${conversationId.slice(0, 8)}\u2026 messageId=${messageId.slice(0, 8)}\u2026 relsCreated=${relsCreated} expected\u2265${1 + expectedComponentEdges + expectedAttachmentEdges} \u2014 attachment edges may not have been created`);
632
+ }
633
+ for (const att of attachmentList) {
634
+ console.error(`[neo4j-store] persist-attachment conversationId=${conversationId.slice(0, 8)}\u2026 messageId=${messageId.slice(0, 8)}\u2026 attachmentId=${att.attachmentId.slice(0, 8)}\u2026 filename=${att.filename} mimeType=${att.mimeType} sizeBytes=${att.sizeBytes} ordinal=${att.ordinal}`);
635
+ }
636
+ }
637
+ console.error(`[persist] ${(/* @__PURE__ */ new Date()).toISOString()} conversationId=${conversationId.slice(0, 8)}\u2026 role=${role} len=${content.length}${sender ? ` sender=${sender.displayName}` : ""}`);
638
+ return messageId;
639
+ } catch (err) {
640
+ console.error(`[persist] Neo4j write failed: ${err instanceof Error ? err.message : String(err)}`);
641
+ return null;
642
+ } finally {
643
+ release();
644
+ if (persistMessageLocks.get(conversationId) === chained) {
645
+ persistMessageLocks.delete(conversationId);
646
+ }
647
+ await session.close();
648
+ }
649
+ }
650
+ async function writeTurnFailure(args) {
651
+ const session = getSession();
652
+ try {
653
+ const result = await session.run(
654
+ `MATCH (c:Conversation {conversationId: $conversationId, accountId: $accountId})
655
+ MERGE (c)-[:HAS_FAILURE]->(f:TurnFailure {conversationId: $conversationId, at: datetime($at)})
656
+ ON CREATE SET
657
+ f.mode = $mode,
658
+ f.cacheKey = $cacheKey,
659
+ f.prior_event_count = $priorEventCount,
660
+ f.accountId = $accountId,
661
+ f.receivedAt = datetime()
662
+ RETURN toString(f.at) AS at`,
663
+ {
664
+ conversationId: args.conversationId,
665
+ accountId: args.accountId,
666
+ mode: args.mode,
667
+ at: args.at,
668
+ cacheKey: args.cacheKey,
669
+ priorEventCount: args.priorEventCount
670
+ }
671
+ );
672
+ if (result.records.length === 0) {
673
+ return { ok: false, reason: "cid-not-found" };
674
+ }
675
+ return { ok: true, at: result.records[0].get("at") };
676
+ } catch (err) {
677
+ console.error(`[persist] turn-failure convId=${args.conversationId.slice(0, 8)}\u2026 error=${err instanceof Error ? err.message : String(err)}`);
678
+ return { ok: false, reason: "neo4j" };
679
+ } finally {
680
+ await session.close();
681
+ }
682
+ }
683
+ async function getAgentSessionIdForConversation(conversationId) {
684
+ const session = getSession();
685
+ try {
686
+ const result = await session.run(
687
+ `MATCH (c:Conversation {conversationId: $conversationId})
688
+ RETURN c.agentSessionId AS agentSessionId`,
689
+ { conversationId }
690
+ );
691
+ const value = result.records[0]?.get("agentSessionId");
692
+ return typeof value === "string" && value.length > 0 ? value : null;
693
+ } catch (err) {
694
+ console.error(`[persist] agent-session-id read failed convId=${conversationId.slice(0, 8)}\u2026 error=${err instanceof Error ? err.message : String(err)}`);
695
+ return null;
696
+ } finally {
697
+ await session.close();
698
+ }
699
+ }
700
+ async function getRecentMessages(conversationId, limit = 50) {
701
+ const session = getSession();
702
+ try {
703
+ const result = await session.run(
704
+ `MATCH (tail:Message {conversationId: $conversationId})
705
+ WHERE NOT (tail)-[:NEXT]->(:Message)
706
+ WITH tail ORDER BY tail.createdAt DESC LIMIT 1
707
+ MATCH path = (m:Message)-[:NEXT*0..]->(tail)
708
+ WHERE m.conversationId = $conversationId
709
+ AND length(path) < $limit
710
+ WITH m, length(path) AS depthFromTail
711
+ OPTIONAL MATCH (m)-[:HAS_COMPONENT]->(c:Component)
712
+ WITH m, depthFromTail, c ORDER BY c.ordinal ASC
713
+ WITH m, depthFromTail,
714
+ [comp IN collect(c) WHERE comp IS NOT NULL | comp {.*}] AS components
715
+ OPTIONAL MATCH (m)-[:HAS_ATTACHMENT]->(a:Attachment)
716
+ WITH m, depthFromTail, components, a ORDER BY a.ordinal ASC
717
+ WITH m, depthFromTail, components,
718
+ [att IN collect(a) WHERE att IS NOT NULL | att {.*}] AS attachments
719
+ RETURN m.messageId AS messageId, m.role AS role, m.content AS content,
720
+ m.createdAt AS createdAt, components, attachments
721
+ ORDER BY depthFromTail DESC`,
722
+ { conversationId, limit: neo4j.int(limit) }
723
+ );
724
+ return result.records.map((r) => {
725
+ const rawComponents = r.get("components") ?? [];
726
+ const components = rawComponents.map((c) => {
727
+ const rawAttachmentId = c.attachmentId;
728
+ const attachmentId = typeof rawAttachmentId === "string" && rawAttachmentId.length > 0 ? rawAttachmentId : void 0;
729
+ return {
730
+ componentId: String(c.componentId ?? ""),
731
+ name: String(c.name ?? ""),
732
+ data: String(c.data ?? ""),
733
+ ordinal: typeof c.ordinal?.toNumber === "function" ? c.ordinal.toNumber() : Number(c.ordinal ?? 0),
734
+ textOffset: typeof c.textOffset?.toNumber === "function" ? c.textOffset.toNumber() : Number(c.textOffset ?? 0),
735
+ submitted: c.submitted === true,
736
+ ...attachmentId ? { attachmentId } : {}
737
+ };
738
+ });
739
+ const rawAttachments = r.get("attachments") ?? [];
740
+ const attachments = rawAttachments.map((a) => ({
741
+ attachmentId: String(a.attachmentId ?? ""),
742
+ filename: String(a.filename ?? ""),
743
+ mimeType: String(a.mimeType ?? ""),
744
+ sizeBytes: typeof a.sizeBytes?.toNumber === "function" ? a.sizeBytes.toNumber() : Number(a.sizeBytes ?? 0),
745
+ storagePath: String(a.storagePath ?? ""),
746
+ ordinal: typeof a.ordinal?.toNumber === "function" ? a.ordinal.toNumber() : Number(a.ordinal ?? 0),
747
+ accountId: String(a.accountId ?? "")
748
+ }));
749
+ return {
750
+ messageId: r.get("messageId"),
751
+ role: r.get("role"),
752
+ content: r.get("content"),
753
+ createdAt: String(r.get("createdAt")),
754
+ components,
755
+ attachments
756
+ };
757
+ });
758
+ } catch (err) {
759
+ console.error(`[persist] getRecentMessages failed: ${err instanceof Error ? err.message : String(err)}`);
760
+ return [];
761
+ } finally {
762
+ await session.close();
763
+ }
764
+ }
765
+ async function verifyConversationOwnership(conversationId, accountId) {
766
+ const session = getSession();
767
+ try {
768
+ const result = await session.run(
769
+ `MATCH (c:Conversation {conversationId: $conversationId, accountId: $accountId})
770
+ RETURN c.conversationId AS id LIMIT 1`,
771
+ { conversationId, accountId }
772
+ );
773
+ return result.records.length > 0;
774
+ } catch (err) {
775
+ console.error(`[persist] verifyConversationOwnership failed: ${err instanceof Error ? err.message : String(err)}`);
776
+ return false;
777
+ } finally {
778
+ await session.close();
779
+ }
780
+ }
781
+ async function getConversationOwner(conversationId) {
782
+ const session = getSession();
783
+ try {
784
+ const result = await session.run(
785
+ `MATCH (c:Conversation {conversationId: $conversationId})
786
+ RETURN c.accountId AS accountId, c.userId AS userId LIMIT 1`,
787
+ { conversationId }
788
+ );
789
+ const record = result.records[0];
790
+ if (!record) return null;
791
+ const accountId = record.get("accountId");
792
+ const userId = record.get("userId");
793
+ if (!accountId) return null;
794
+ return { accountId, userId: userId ?? null };
795
+ } catch (err) {
796
+ console.error(`[persist] getConversationOwner failed: ${err instanceof Error ? err.message : String(err)}`);
797
+ return null;
798
+ } finally {
799
+ await session.close();
800
+ }
801
+ }
802
+ async function verifyAndGetConversationUpdatedAt(conversationId, accountId) {
803
+ const session = getSession();
804
+ try {
805
+ const result = await session.run(
806
+ `MATCH (c:Conversation {conversationId: $conversationId, accountId: $accountId})
807
+ RETURN toString(c.updatedAt) AS updatedAt LIMIT 1`,
808
+ { conversationId, accountId }
809
+ );
810
+ const record = result.records[0];
811
+ return record ? record.get("updatedAt") : null;
812
+ } catch (err) {
813
+ console.error(`[persist] verifyAndGetConversationUpdatedAt failed: ${err instanceof Error ? err.message : String(err)}`);
814
+ return null;
815
+ } finally {
816
+ await session.close();
817
+ }
818
+ }
819
+ var LIST_BACKFILL_CAP = 3;
820
+ async function listAdminSessions(accountId, userId, limit = 20) {
821
+ const session = getSession();
822
+ try {
823
+ const result = await session.run(
824
+ `MATCH (c:Conversation {accountId: $accountId, agentType: 'admin', userId: $userId})
825
+ WHERE NOT c:Trashed
826
+ WITH c
827
+ ORDER BY c.updatedAt DESC
828
+ LIMIT $limit
829
+ CALL {
830
+ WITH c
831
+ OPTIONAL MATCH (m:Message)-[:PART_OF]->(c)
832
+ WHERE m.role = 'user'
833
+ AND c.name IS NULL
834
+ AND NOT (m.content STARTS WITH '[New session.')
835
+ AND NOT (m.content STARTS WITH '{"')
836
+ AND size(m.content) >= 4
837
+ RETURN m.content AS content, m.createdAt AS createdAt
838
+ ORDER BY m.createdAt ASC
839
+ LIMIT 1
840
+ }
841
+ RETURN c.conversationId AS conversationId,
842
+ c.name AS name,
843
+ c.updatedAt AS updatedAt,
844
+ c.channel AS channel,
845
+ content AS firstSubstantiveUserMessage`,
846
+ { accountId, userId, limit: neo4j.int(limit) }
847
+ );
848
+ const rows = result.records.map((r) => ({
849
+ conversationId: r.get("conversationId"),
850
+ name: r.get("name"),
851
+ updatedAt: String(r.get("updatedAt")),
852
+ channel: r.get("channel"),
853
+ firstSubstantiveUserMessage: r.get("firstSubstantiveUserMessage")
854
+ }));
855
+ let backfillsKicked = 0;
856
+ for (const row of rows) {
857
+ if (backfillsKicked >= LIST_BACKFILL_CAP) break;
858
+ if (row.name !== null) continue;
859
+ const seed = row.firstSubstantiveUserMessage;
860
+ if (!seed || !isMessageUseful(seed)) continue;
861
+ backfillsKicked++;
862
+ autoLabelSession(row.conversationId, seed).catch(() => {
863
+ });
864
+ }
865
+ return rows.map(({ conversationId, name, updatedAt, channel }) => ({ conversationId, name, updatedAt, channel }));
866
+ } catch (err) {
867
+ console.error(`[persist] listAdminSessions failed: ${err instanceof Error ? err.message : String(err)}`);
868
+ return [];
869
+ } finally {
870
+ await session.close();
871
+ }
872
+ }
873
+ async function deleteConversation(conversationId) {
874
+ const session = getSession();
875
+ try {
876
+ const result = await session.run(
877
+ `MATCH (c:Conversation {conversationId: $conversationId})
878
+ OPTIONAL MATCH (m:Message)-[:PART_OF]->(c)
879
+ OPTIONAL MATCH (m)-[:HAS_COMPONENT]->(comp:Component)
880
+ OPTIONAL MATCH (m)-[:HAS_ATTACHMENT]->(att:Attachment)
881
+ DETACH DELETE att, comp, m, c
882
+ RETURN count(c) AS deleted`,
883
+ { conversationId }
884
+ );
885
+ const deleted = result.records[0]?.get("deleted");
886
+ const count = typeof deleted === "object" && deleted !== null ? Number(deleted) : Number(deleted ?? 0);
887
+ console.error(`[persist] deleteConversation ${conversationId.slice(0, 8)}\u2026: ${count > 0 ? "deleted" : "not found"}`);
888
+ return count > 0;
889
+ } catch (err) {
890
+ console.error(`[persist] deleteConversation failed: ${err instanceof Error ? err.message : String(err)}`);
891
+ return false;
892
+ } finally {
893
+ await session.close();
894
+ }
895
+ }
896
+ var GENERIC_MESSAGE = /^(h(i|ello|ey|owdy)|yo|sup|thanks|thank you|ok|okay|yes|no|good\s*(morning|afternoon|evening|night)|greetings|what'?s\s*up)[\s!?.,:;]*$/i;
897
+ var SESSION_LABEL_MSG_CAP = 500;
898
+ var SESSION_LABEL_TIMEOUT_MS = 15e3;
899
+ var SESSION_LABEL_MODEL = HAIKU_MODEL;
900
+ var SESSION_LABEL_MAX_WORDS = 6;
901
+ var SESSION_LABEL_MAX_ATTEMPTS = 3;
902
+ var SESSION_LABEL_MAX_STDERR = 2048;
903
+ function isMessageUseful(message) {
904
+ const trimmed = message.trim();
905
+ if (trimmed.length < 4) return false;
906
+ if (trimmed.startsWith('{"')) return false;
907
+ if (GENERIC_MESSAGE.test(trimmed)) return false;
908
+ if (trimmed.startsWith(DIRECTIVE_PREFIX)) return false;
909
+ return true;
910
+ }
911
+ function totalFailures(f) {
912
+ return f.skip + f.error;
913
+ }
914
+ function failureBreakdown(f) {
915
+ return `skip:${f.skip} error:${f.error}`;
916
+ }
917
+ var labelAccumulator = /* @__PURE__ */ new Map();
918
+ var _spawnOverride = null;
919
+ var SESSION_LABEL_SYSTEM = `You are a session labeler. Given the opening messages of a conversation with an AI assistant, produce a concise topic label.
920
+
921
+ Rules:
922
+ - Exactly 3 to 6 words
923
+ - Summarize the user's intent, do not copy verbatim
924
+ - Capitalize the first word only (sentence case)
925
+ - No punctuation, no quotes
926
+ - You MUST always produce a label. Vague, terse, or single-word messages still get a best-effort label (e.g. a one-word "hi" or an emoji becomes "Greeting"; an unintelligible fragment becomes "Unstructured note"). Never abstain.`;
927
+ async function generateSessionLabel(messages) {
928
+ const cappedMessages = messages.map((m) => m.slice(0, SESSION_LABEL_MSG_CAP));
929
+ const userContent = cappedMessages.map((m, i) => `Message ${i + 1}: ${m}`).join("\n");
930
+ const prompt = `${SESSION_LABEL_SYSTEM}
931
+
932
+ ${userContent}`;
933
+ const args = [
934
+ "--print",
935
+ "--model",
936
+ SESSION_LABEL_MODEL,
937
+ "--max-turns",
938
+ "1",
939
+ "--permission-mode",
940
+ "dontAsk",
941
+ prompt
942
+ ];
943
+ return new Promise((resolve2) => {
944
+ let stdout = "";
945
+ let stderr = "";
946
+ const spawnFn = _spawnOverride ?? spawn;
947
+ const proc = spawnFn("claude", args, {
948
+ stdio: ["ignore", "pipe", "pipe"]
949
+ });
950
+ proc.stdout?.on("data", (chunk) => {
951
+ stdout += chunk.toString("utf-8");
952
+ });
953
+ proc.stderr?.on("data", (chunk) => {
954
+ if (stderr.length < SESSION_LABEL_MAX_STDERR) {
955
+ stderr += chunk.toString("utf-8").slice(0, SESSION_LABEL_MAX_STDERR - stderr.length);
956
+ }
957
+ });
958
+ const timer = setTimeout(() => {
959
+ proc.kill("SIGTERM");
960
+ console.error("[persist] autoLabel: haiku subprocess timed out");
961
+ resolve2(null);
962
+ }, SESSION_LABEL_TIMEOUT_MS);
963
+ proc.on("error", (err) => {
964
+ clearTimeout(timer);
965
+ console.error(`[persist] autoLabel: subprocess error \u2014 ${err.message}`);
966
+ resolve2(null);
967
+ });
968
+ proc.on("close", (code) => {
969
+ clearTimeout(timer);
970
+ if (code !== 0) {
971
+ console.error(`[persist] autoLabel: subprocess exited code=${code}${stderr ? ` stderr=${stderr.trim().slice(0, 200)}` : ""}`);
972
+ resolve2(null);
973
+ return;
974
+ }
975
+ const text = stdout.trim();
976
+ if (!text) {
977
+ console.error("[persist] autoLabel: haiku returned empty response");
978
+ resolve2(null);
979
+ return;
980
+ }
981
+ const words = text.split(/\s+/).slice(0, SESSION_LABEL_MAX_WORDS);
982
+ const label = words.join(" ");
983
+ console.error(`[persist] autoLabel: haiku response="${label}"`);
984
+ resolve2(label);
985
+ });
986
+ });
987
+ }
988
+ async function autoLabelSession(conversationId, userMessage) {
989
+ if (!conversationId) return;
990
+ if (!isMessageUseful(userMessage)) {
991
+ const trimmed = userMessage.trim();
992
+ const reason = trimmed.startsWith('{"') ? "JSON envelope" : trimmed.startsWith(DIRECTIVE_PREFIX) ? "directive" : GENERIC_MESSAGE.test(trimmed) ? "greeting" : trimmed.length < 4 ? "too short" : "directive";
993
+ console.error(`[persist] autoLabel: skipped ${conversationId.slice(0, 8)}\u2026 \u2014 ${reason}`);
994
+ return;
995
+ }
996
+ try {
997
+ const preCheck = getSession();
998
+ try {
999
+ const res = await preCheck.run(
1000
+ `MATCH (c:Conversation {conversationId: $conversationId})
1001
+ OPTIONAL MATCH (m:Message)-[:PART_OF]->(c)
1002
+ WHERE m.role = 'user'
1003
+ WITH c, count(m) AS userCount
1004
+ RETURN c.name AS name, userCount`,
1005
+ { conversationId }
1006
+ );
1007
+ const firstRecord = res.records[0];
1008
+ const existingName = firstRecord?.get("name");
1009
+ const userCountRaw = firstRecord?.get("userCount");
1010
+ const userCount = typeof userCountRaw === "object" && userCountRaw !== null ? Number(userCountRaw) : Number(userCountRaw ?? 0);
1011
+ if (existingName) {
1012
+ console.error(`[persist] autoLabel: already named ${conversationId.slice(0, 8)}\u2026 \u2014 skipping`);
1013
+ labelAccumulator.delete(conversationId);
1014
+ return;
1015
+ }
1016
+ if (userCount > 3) {
1017
+ console.error(`[persist] autoLabel: past autolabel window ${conversationId.slice(0, 8)}\u2026 \u2014 userCount=${userCount}, skipping`);
1018
+ labelAccumulator.delete(conversationId);
1019
+ return;
1020
+ }
1021
+ } finally {
1022
+ await preCheck.close();
1023
+ }
1024
+ } catch (err) {
1025
+ console.error(`[persist] autoLabel: pre-check read failed for ${conversationId.slice(0, 8)}\u2026 \u2014 proceeding: ${err instanceof Error ? err.message : String(err)}`);
1026
+ }
1027
+ let entry = labelAccumulator.get(conversationId);
1028
+ if (!entry) {
1029
+ entry = {
1030
+ messages: [],
1031
+ pending: false,
1032
+ failures: { skip: 0, error: 0 }
1033
+ };
1034
+ labelAccumulator.set(conversationId, entry);
1035
+ }
1036
+ if (totalFailures(entry.failures) >= SESSION_LABEL_MAX_ATTEMPTS) {
1037
+ console.error(`[persist] autoLabel: evicted ${conversationId.slice(0, 8)}\u2026 after ${SESSION_LABEL_MAX_ATTEMPTS} failed-attempts (${failureBreakdown(entry.failures)})`);
1038
+ labelAccumulator.delete(conversationId);
1039
+ return;
1040
+ }
1041
+ entry.messages.push(userMessage.trim());
1042
+ if (entry.pending) {
1043
+ console.error(`[persist] autoLabel: accumulated for ${conversationId.slice(0, 8)}\u2026 (pending, ${entry.messages.length} msgs)`);
1044
+ return;
1045
+ }
1046
+ entry.pending = true;
1047
+ try {
1048
+ const label = await generateSessionLabel(entry.messages);
1049
+ if (!label) {
1050
+ entry.failures.skip++;
1051
+ console.error(`[persist] autoLabel: generateSessionLabel returned null for ${conversationId.slice(0, 8)}\u2026 (failures ${failureBreakdown(entry.failures)}, ${entry.messages.length} msgs)`);
1052
+ entry.pending = false;
1053
+ return;
1054
+ }
1055
+ const fullLabel = `${label} \xB7 ${conversationId.slice(0, 8)}`;
1056
+ let embedding = null;
1057
+ try {
1058
+ embedding = await embed(fullLabel);
1059
+ } catch (err) {
1060
+ console.error(`[persist] Conversation embedding failed, labelling without: ${err instanceof Error ? err.message : String(err)}`);
1061
+ }
1062
+ const session = getSession();
1063
+ try {
1064
+ const result = await session.run(
1065
+ `MATCH (c:Conversation {conversationId: $conversationId})
1066
+ WHERE c.name IS NULL
1067
+ WITH c
1068
+ OPTIONAL MATCH (m:Message)-[:PART_OF]->(c)
1069
+ WHERE m.role = 'user'
1070
+ WITH c, count(m) AS userCount
1071
+ WHERE userCount <= 3
1072
+ SET c.name = $label, c.updatedAt = datetime()
1073
+ ${embedding ? ", c.embedding = $embedding" : ""}
1074
+ RETURN c.name AS name`,
1075
+ { conversationId, label: fullLabel, ...embedding ? { embedding } : {} }
1076
+ );
1077
+ if (result.records.length > 0) {
1078
+ console.error(`[persist] autoLabel: commit ${conversationId.slice(0, 8)}\u2026 name="${fullLabel}"${embedding ? " (embedded)" : ""}`);
1079
+ labelAccumulator.delete(conversationId);
1080
+ } else {
1081
+ console.error(`[persist] autoLabel: no-op commit ${conversationId.slice(0, 8)}\u2026 (name already set or userCount>3)`);
1082
+ labelAccumulator.delete(conversationId);
1083
+ }
1084
+ } catch (err) {
1085
+ entry.failures.error++;
1086
+ console.error(`[persist] autoLabelSession failed: ${err instanceof Error ? err.message : String(err)} (failures ${failureBreakdown(entry.failures)})`);
1087
+ } finally {
1088
+ await session.close();
1089
+ }
1090
+ } catch (err) {
1091
+ const currentEntry = labelAccumulator.get(conversationId);
1092
+ if (currentEntry) currentEntry.failures.error++;
1093
+ console.error(`[persist] autoLabel: unexpected error \u2014 ${err instanceof Error ? err.message : String(err)}${currentEntry ? ` (failures ${failureBreakdown(currentEntry.failures)})` : ""}`);
1094
+ } finally {
1095
+ const currentEntry = labelAccumulator.get(conversationId);
1096
+ if (currentEntry) currentEntry.pending = false;
1097
+ }
1098
+ }
1099
+ async function renameConversation(conversationId, label) {
1100
+ let embedding = null;
1101
+ try {
1102
+ embedding = await embed(label);
1103
+ } catch (err) {
1104
+ console.error(`[persist] manual-label: embedding failed, persisting without: ${err instanceof Error ? err.message : String(err)}`);
1105
+ }
1106
+ const session = getSession();
1107
+ try {
1108
+ await session.run(
1109
+ `MATCH (c:Conversation {conversationId: $conversationId})
1110
+ SET c.name = $label, c.updatedAt = datetime()
1111
+ ${embedding ? ", c.embedding = $embedding" : ""}`,
1112
+ { conversationId, label, ...embedding ? { embedding } : {} }
1113
+ );
1114
+ console.error(`[persist] manual-label: renamed ${conversationId} to "${label}"${embedding ? " (embedded)" : ""}`);
1115
+ } finally {
1116
+ await session.close();
1117
+ }
1118
+ }
1119
+ async function getUserTimezone(accountId, userId) {
1120
+ const session = getSession();
1121
+ try {
1122
+ const query = userId ? `MATCH (up:UserProfile {accountId: $accountId, userId: $userId})
1123
+ RETURN up.timezone AS timezone` : `MATCH (up:UserProfile {accountId: $accountId})
1124
+ RETURN up.timezone AS timezone ORDER BY up.createdAt LIMIT 1`;
1125
+ const result = await session.run(query, { accountId, userId: userId ?? "" });
1126
+ if (result.records.length === 0) return null;
1127
+ const tz = result.records[0].get("timezone");
1128
+ return tz && tz.trim().length > 0 ? tz : null;
1129
+ } catch (err) {
1130
+ console.error(`[datetime] getUserTimezone failed: ${err instanceof Error ? err.message : String(err)}`);
1131
+ return null;
1132
+ } finally {
1133
+ await session.close();
1134
+ }
1135
+ }
1136
+ async function loadAdminUserName(accountId, userId) {
1137
+ const session = getSession();
1138
+ try {
1139
+ const result = await session.run(
1140
+ `MATCH (au:AdminUser {userId: $userId})-[:OWNS]->(p:Person {accountId: $accountId})
1141
+ RETURN p.givenName AS givenName, p.familyName AS familyName, p.avatar AS avatar
1142
+ LIMIT 1`,
1143
+ { accountId, userId }
1144
+ );
1145
+ if (result.records.length === 0) {
1146
+ return { source: "fallback", reason: "no-person-node" };
1147
+ }
1148
+ const givenName = result.records[0].get("givenName");
1149
+ const familyName = result.records[0].get("familyName");
1150
+ const avatar = result.records[0].get("avatar");
1151
+ if (!givenName || givenName.trim().length === 0) {
1152
+ return { source: "fallback", reason: "no-givenName" };
1153
+ }
1154
+ const trimmedFamily = familyName && familyName.trim().length > 0 ? familyName.trim() : null;
1155
+ const trimmedAvatar = avatar && avatar.trim().length > 0 ? avatar.trim() : null;
1156
+ const joined = trimmedFamily ? `${givenName.trim()} ${trimmedFamily}` : givenName.trim();
1157
+ return { source: "neo4j", joined, givenName: givenName.trim(), familyName: trimmedFamily, avatar: trimmedAvatar };
1158
+ } catch (err) {
1159
+ console.error(`[admin-identity] loadAdminUserName failed: ${err instanceof Error ? err.message : String(err)}`);
1160
+ return { source: "fallback", reason: "neo4j-unreachable" };
1161
+ } finally {
1162
+ await session.close();
1163
+ }
1164
+ }
1165
+ async function writeAdminUserAndPerson(params) {
1166
+ const { userId, fullName, accountId } = params;
1167
+ const trimmed = fullName.trim();
1168
+ if (!trimmed) {
1169
+ throw new Error("writeAdminUserAndPerson: fullName cannot be empty");
1170
+ }
1171
+ const firstSpace = trimmed.search(/\s/);
1172
+ const givenName = firstSpace === -1 ? trimmed : trimmed.slice(0, firstSpace).trim();
1173
+ const familyName = firstSpace === -1 ? null : trimmed.slice(firstSpace + 1).trim() || null;
1174
+ const now = (/* @__PURE__ */ new Date()).toISOString();
1175
+ const session = getSession();
1176
+ try {
1177
+ const result = await session.run(
1178
+ `MERGE (au:AdminUser {userId: $userId})
1179
+ ON CREATE SET au.name = $fullName, au.createdAt = $now
1180
+ ON MATCH SET au.name = $fullName, au.updatedAt = $now
1181
+ WITH au
1182
+
1183
+ // Case-insensitive Person reuse: same accountId, same givenName, same familyName
1184
+ // (null/empty familyName collapsed to '' so 'Joel' does NOT match 'Joel Smalley').
1185
+ OPTIONAL MATCH (existingPerson:Person {accountId: $accountId})
1186
+ WHERE toLower(existingPerson.givenName) = toLower($givenName)
1187
+ AND coalesce(toLower(existingPerson.familyName), '') = coalesce(toLower($familyName), '')
1188
+ WITH au, existingPerson
1189
+
1190
+ CALL {
1191
+ WITH au, existingPerson
1192
+ WITH au, existingPerson WHERE existingPerson IS NOT NULL
1193
+ MERGE (au)-[:OWNS]->(existingPerson)
1194
+ RETURN existingPerson AS p, true AS reused
1195
+ UNION
1196
+ WITH au, existingPerson
1197
+ WITH au WHERE existingPerson IS NULL
1198
+ CREATE (newPerson:Person {
1199
+ accountId: $accountId,
1200
+ givenName: $givenName,
1201
+ familyName: $familyName,
1202
+ role: 'admin-personal',
1203
+ scope: 'admin',
1204
+ createdAt: $now
1205
+ })
1206
+ MERGE (au)-[:OWNS]->(newPerson)
1207
+ RETURN newPerson AS p, false AS reused
1208
+ }
1209
+ RETURN reused, elementId(p) AS personElementId,
1210
+ p.givenName AS givenName, p.familyName AS familyName`,
1211
+ { userId, fullName: trimmed, accountId, givenName, familyName, now }
1212
+ );
1213
+ if (result.records.length === 0) {
1214
+ throw new Error("writeAdminUserAndPerson: no record returned");
1215
+ }
1216
+ const record = result.records[0];
1217
+ return {
1218
+ personReused: record.get("reused"),
1219
+ personElementId: record.get("personElementId"),
1220
+ givenName: record.get("givenName"),
1221
+ familyName: record.get("familyName")
1222
+ };
1223
+ } finally {
1224
+ await session.close();
1225
+ }
1226
+ }
1227
+ var PROFILE_FIELD_TEMPLATES = {
1228
+ communication: [
1229
+ "preferredChannel",
1230
+ "quietHours",
1231
+ "responseLatencyExpectation",
1232
+ "formalityLevel",
1233
+ "escalationPath"
1234
+ ],
1235
+ scheduling: [
1236
+ "workdayStartTime",
1237
+ "workdayEndTime",
1238
+ "weekendAvailability",
1239
+ "meetingBlockPreference",
1240
+ "focusBlockTiming"
1241
+ ],
1242
+ decision: [
1243
+ "riskTolerance",
1244
+ "autonomyBoundary",
1245
+ "evidenceThreshold",
1246
+ "reversibilityPreference",
1247
+ "stakeholderConsultation"
1248
+ ],
1249
+ workflow: [
1250
+ "batchingPreference",
1251
+ "taskGranularity",
1252
+ "deepWorkBlocks",
1253
+ "statusUpdateCadence",
1254
+ "toolingChoices"
1255
+ ],
1256
+ content: [
1257
+ "outputFormat",
1258
+ "lengthPreference",
1259
+ "citationStyle",
1260
+ "tonality"
1261
+ ],
1262
+ interaction: [
1263
+ "addressForm",
1264
+ "humourTolerance",
1265
+ "directnessLevel",
1266
+ "emotionalRegisterPreference"
1267
+ ]
1268
+ };
1269
+ var TOTAL_PROFILE_FIELDS = Object.values(PROFILE_FIELD_TEMPLATES).reduce(
1270
+ (n, fs) => n + fs.length,
1271
+ 0
1272
+ );
1273
+ var RECENT_FAILURES_TAIL_BYTES = 10 * 1024;
1274
+ async function consumeStep7FlagUI(session, accountId) {
1275
+ const accountDir = resolve(PLATFORM_ROOT, "..", "data/accounts", accountId);
1276
+ const flagPath = resolve(accountDir, "onboarding", "step7-complete");
1277
+ if (!existsSync(flagPath)) return false;
1278
+ let completedAt = (/* @__PURE__ */ new Date()).toISOString();
1279
+ try {
1280
+ const raw = readFileSync(flagPath, "utf-8").trim();
1281
+ if (raw) {
1282
+ const parsed = JSON.parse(raw);
1283
+ if (typeof parsed.completedAt === "string") {
1284
+ completedAt = parsed.completedAt;
1285
+ }
1286
+ }
1287
+ } catch {
1288
+ }
1289
+ const result = await session.run(
1290
+ `MATCH (o:OnboardingState {accountId: $accountId})
1291
+ SET o.step7CompletedAt = CASE WHEN o.step7CompletedAt IS NULL THEN $completedAt ELSE o.step7CompletedAt END,
1292
+ o.currentStep = CASE WHEN 7 > o.currentStep THEN 7 ELSE o.currentStep END,
1293
+ o.updatedAt = $completedAt
1294
+ RETURN count(o) AS updated`,
1295
+ { accountId, completedAt }
1296
+ );
1297
+ const updatedRaw = result.records[0]?.get("updated");
1298
+ const updated = typeof updatedRaw === "number" ? updatedRaw : updatedRaw && typeof updatedRaw === "object" && "toNumber" in updatedRaw ? updatedRaw.toNumber() : 0;
1299
+ if (updated === 0) {
1300
+ console.log(
1301
+ `[onboarding-flag-consumed] accountId=${accountId.slice(0, 8)}\u2026 step=7 source=filesystem flagPath=${flagPath} skipped=no-node`
1302
+ );
1303
+ return false;
1304
+ }
1305
+ console.log(
1306
+ `[onboarding-flag-consumed] accountId=${accountId.slice(0, 8)}\u2026 step=7 source=filesystem flagPath=${flagPath} completedAt=${completedAt}`
1307
+ );
1308
+ try {
1309
+ rmSync(flagPath);
1310
+ } catch (err) {
1311
+ console.error(
1312
+ `[onboarding-flag-consumed] warn: failed to delete ${flagPath}: ${err instanceof Error ? err.message : String(err)}`
1313
+ );
1314
+ }
1315
+ return true;
1316
+ }
1317
+ async function loadOnboardingStep(accountId) {
1318
+ const session = getSession();
1319
+ try {
1320
+ await consumeStep7FlagUI(session, accountId);
1321
+ const result = await session.run(
1322
+ `MATCH (o:OnboardingState {accountId: $accountId})
1323
+ RETURN o.currentStep AS currentStep`,
1324
+ { accountId }
1325
+ );
1326
+ if (result.records.length === 0) {
1327
+ return -1;
1328
+ }
1329
+ const raw = result.records[0].get("currentStep");
1330
+ if (typeof raw === "number") return raw;
1331
+ if (raw && typeof raw === "object" && "toNumber" in raw) {
1332
+ return raw.toNumber();
1333
+ }
1334
+ return 0;
1335
+ } catch (err) {
1336
+ console.error(`[onboarding-inject] loadOnboardingStep failed: ${err instanceof Error ? err.message : String(err)}`);
1337
+ return null;
1338
+ } finally {
1339
+ await session.close();
1340
+ }
1341
+ }
1342
+ var AGENT_FILE_ROLES = [
1343
+ { filename: "IDENTITY.md", role: "identity" },
1344
+ { filename: "SOUL.md", role: "soul" },
1345
+ { filename: "KNOWLEDGE.md", role: "knowledge" },
1346
+ { filename: "KNOWLEDGE-SUMMARY.md", role: "knowledge-summary" }
1347
+ ];
1348
+ var ROLE_TO_EDGE = {
1349
+ identity: "HAS_IDENTITY",
1350
+ soul: "HAS_SOUL",
1351
+ knowledge: "HAS_KNOWLEDGE",
1352
+ "knowledge-summary": "HAS_KNOWLEDGE"
1353
+ };
1354
+ function assertSafeAgentSlug(slug) {
1355
+ if (!slug || slug.includes("/") || slug.includes("\\") || slug.includes("..")) {
1356
+ throw new Error(`[agent-graph] refusing unsafe slug=${JSON.stringify(slug)}`);
1357
+ }
1358
+ }
1359
+ function agentAttachmentId(accountId, slug, role) {
1360
+ return `agent:${accountId}:${slug}:${role}`;
1361
+ }
1362
+ async function projectAgent(accountId, accountDir, slug) {
1363
+ const start = Date.now();
1364
+ const account8 = accountId.slice(0, 8);
1365
+ try {
1366
+ assertSafeAgentSlug(slug);
1367
+ } catch (err) {
1368
+ const msg = err instanceof Error ? err.message : String(err);
1369
+ console.error(
1370
+ `[agent-graph] project FAILED slug=${slug} account=${account8} error="${msg}"`
1371
+ );
1372
+ return;
1373
+ }
1374
+ const agentDir = resolve(accountDir, "agents", slug);
1375
+ const configPath = resolve(agentDir, "config.json");
1376
+ let config;
1377
+ let presentRoles = [];
1378
+ try {
1379
+ if (!existsSync(configPath)) {
1380
+ console.error(
1381
+ `[agent-graph] project FAILED slug=${slug} account=${account8} error="config.json missing at ${configPath}"`
1382
+ );
1383
+ return;
1384
+ }
1385
+ config = JSON.parse(readFileSync(configPath, "utf-8"));
1386
+ for (const { filename, role } of AGENT_FILE_ROLES) {
1387
+ const filePath = resolve(agentDir, filename);
1388
+ if (!existsSync(filePath)) continue;
1389
+ const body = readFileSync(filePath, "utf-8");
1390
+ presentRoles.push({ role, body, edge: ROLE_TO_EDGE[role] });
1391
+ }
1392
+ } catch (err) {
1393
+ const msg = err instanceof Error ? err.message : String(err);
1394
+ console.error(
1395
+ `[agent-graph] project FAILED slug=${slug} account=${account8} error="${msg}"`
1396
+ );
1397
+ return;
1398
+ }
1399
+ const session = getSession();
1400
+ try {
1401
+ await session.run(
1402
+ `MERGE (a:Agent {accountId: $accountId, slug: $slug})
1403
+ ON CREATE SET a.createdAt = datetime()
1404
+ SET a.displayName = $displayName,
1405
+ a.status = $status,
1406
+ a.model = $model,
1407
+ a.liveMemory = $liveMemory,
1408
+ a.knowledgeKeywords = $knowledgeKeywords,
1409
+ a.role = 'agent',
1410
+ a.updatedAt = datetime()
1411
+ RETURN a.slug AS slug`,
1412
+ {
1413
+ accountId,
1414
+ slug,
1415
+ displayName: config.displayName ?? slug,
1416
+ status: config.status ?? "unknown",
1417
+ model: config.model ?? "",
1418
+ liveMemory: config.liveMemory ?? false,
1419
+ knowledgeKeywords: config.knowledgeKeywords ?? []
1420
+ }
1421
+ );
1422
+ for (const { role, body, edge } of presentRoles) {
1423
+ const attachmentId = agentAttachmentId(accountId, slug, role);
1424
+ await session.run(
1425
+ `MATCH (a:Agent {accountId: $accountId, slug: $slug})
1426
+ MERGE (k:KnowledgeDocument {attachmentId: $attachmentId})
1427
+ ON CREATE SET k.createdAt = datetime()
1428
+ SET k.accountId = $accountId,
1429
+ k.role = $role,
1430
+ k.name = $name,
1431
+ k.text = $text,
1432
+ k.scope = 'admin',
1433
+ k.updatedAt = datetime()
1434
+ MERGE (a)-[:${edge}]->(k)
1435
+ RETURN k.attachmentId AS attachmentId`,
1436
+ {
1437
+ accountId,
1438
+ slug,
1439
+ attachmentId,
1440
+ role,
1441
+ name: `${slug} ${role}`,
1442
+ text: body
1443
+ }
1444
+ );
1445
+ }
1446
+ const usesResult = await session.run(
1447
+ `MATCH (a:Agent {accountId: $accountId, slug: $slug})
1448
+ MATCH (k:KnowledgeDocument {accountId: $accountId})
1449
+ WHERE $slug IN coalesce(k.agents, [])
1450
+ AND NOT k.attachmentId STARTS WITH $namespacePrefix
1451
+ MERGE (a)-[:USES_KNOWLEDGE]->(k)
1452
+ RETURN count(k) AS uses`,
1453
+ {
1454
+ accountId,
1455
+ slug,
1456
+ namespacePrefix: `agent:${accountId}:${slug}:`
1457
+ }
1458
+ );
1459
+ const uses = usesResult.records[0]?.get("uses");
1460
+ const usesCount = typeof uses === "number" ? uses : uses && typeof uses.toNumber === "function" ? uses.toNumber() : 0;
1461
+ const ms = Date.now() - start;
1462
+ console.error(
1463
+ `[agent-graph] project slug=${slug} account=${account8} docs=${presentRoles.length} uses=${usesCount} ms=${ms}`
1464
+ );
1465
+ } catch (err) {
1466
+ const msg = err instanceof Error ? err.message : String(err);
1467
+ console.error(
1468
+ `[agent-graph] project FAILED slug=${slug} account=${account8} error="${msg}"`
1469
+ );
1470
+ throw err;
1471
+ } finally {
1472
+ await session.close();
1473
+ }
1474
+ }
1475
+ async function deleteAgentProjection(accountId, slug) {
1476
+ const start = Date.now();
1477
+ const account8 = accountId.slice(0, 8);
1478
+ assertSafeAgentSlug(slug);
1479
+ const session = getSession();
1480
+ try {
1481
+ await session.run(
1482
+ `MATCH (a:Agent {accountId: $accountId, slug: $slug})
1483
+ DETACH DELETE a
1484
+ WITH 1 AS _
1485
+ UNWIND $attachmentIds AS aid
1486
+ OPTIONAL MATCH (k:KnowledgeDocument {accountId: $accountId, attachmentId: aid})
1487
+ WHERE k.attachmentId STARTS WITH $namespacePrefix
1488
+ DETACH DELETE k`,
1489
+ {
1490
+ accountId,
1491
+ slug,
1492
+ namespacePrefix: `agent:${accountId}:${slug}:`,
1493
+ attachmentIds: ["identity", "soul", "knowledge", "knowledge-summary"].map((role) => agentAttachmentId(accountId, slug, role))
1494
+ }
1495
+ );
1496
+ const ms = Date.now() - start;
1497
+ console.error(
1498
+ `[agent-graph] delete slug=${slug} account=${account8} ms=${ms}`
1499
+ );
1500
+ } catch (err) {
1501
+ const msg = err instanceof Error ? err.message : String(err);
1502
+ console.error(
1503
+ `[agent-graph] delete FAILED slug=${slug} account=${account8} error="${msg}"`
1504
+ );
1505
+ throw err;
1506
+ } finally {
1507
+ await session.close();
1508
+ }
1509
+ }
1510
+
1511
+ export {
1512
+ HAIKU_MODEL,
1513
+ getSession,
1514
+ runAdminUserSelfHeal,
1515
+ embed,
1516
+ GREETING_DIRECTIVE,
1517
+ ensureConversation,
1518
+ findRecentConversation,
1519
+ findGroupBySlug,
1520
+ getGroupParticipants,
1521
+ checkGroupMembership,
1522
+ bindVisitorToGroup,
1523
+ getMessagesSince,
1524
+ backfillConversationChannelAddress,
1525
+ backfillNullUserIdConversations,
1526
+ fetchBranding,
1527
+ persistMessage,
1528
+ writeTurnFailure,
1529
+ getAgentSessionIdForConversation,
1530
+ getRecentMessages,
1531
+ verifyConversationOwnership,
1532
+ getConversationOwner,
1533
+ verifyAndGetConversationUpdatedAt,
1534
+ listAdminSessions,
1535
+ deleteConversation,
1536
+ generateSessionLabel,
1537
+ renameConversation,
1538
+ getUserTimezone,
1539
+ loadAdminUserName,
1540
+ writeAdminUserAndPerson,
1541
+ loadOnboardingStep,
1542
+ projectAgent,
1543
+ deleteAgentProjection
1544
+ };