@rubytech/create-siteoffice-code 0.1.256

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 (2573) 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__/brand-fonts.test.js +102 -0
  4. package/dist/__tests__/brew-install.test.js +151 -0
  5. package/dist/__tests__/brew-resolve.test.js +138 -0
  6. package/dist/__tests__/bundler-rewrite-platform-lib.test.js +68 -0
  7. package/dist/__tests__/cdp-port-no-silent-fallback.test.js +53 -0
  8. package/dist/__tests__/claude-ptys-slice.test.js +25 -0
  9. package/dist/__tests__/cloudflared-slice.test.js +19 -0
  10. package/dist/__tests__/entitlement-flag.test.js +43 -0
  11. package/dist/__tests__/init-logging.test.js +85 -0
  12. package/dist/__tests__/installer-settings-permissions.test.js +112 -0
  13. package/dist/__tests__/installer-specialist-registration.test.js +116 -0
  14. package/dist/__tests__/launchd-plist.test.js +195 -0
  15. package/dist/__tests__/macos-darwin-branch.test.js +85 -0
  16. package/dist/__tests__/macos-version.test.js +96 -0
  17. package/dist/__tests__/onboarding-state-readback.test.js +61 -0
  18. package/dist/__tests__/peer-brand-detect.test.js +103 -0
  19. package/dist/__tests__/platform-detect.test.js +50 -0
  20. package/dist/__tests__/platform-port-stamp.test.js +28 -0
  21. package/dist/__tests__/plugin-install.test.js +123 -0
  22. package/dist/__tests__/port-canonicalisation.test.js +200 -0
  23. package/dist/__tests__/preflight-port-classifier.test.js +330 -0
  24. package/dist/__tests__/premium-bundle-gate.test.js +59 -0
  25. package/dist/__tests__/premium-mcp-discover.test.js +127 -0
  26. package/dist/__tests__/rss-sampler-installer.test.js +27 -0
  27. package/dist/__tests__/samba-provision.test.js +226 -0
  28. package/dist/__tests__/snap-chromium.test.js +115 -0
  29. package/dist/__tests__/tier-flag.test.js +53 -0
  30. package/dist/apt-resolve.js +73 -0
  31. package/dist/brew-install.js +180 -0
  32. package/dist/brew-resolve.js +68 -0
  33. package/dist/bundler-rewrite-platform-lib.js +29 -0
  34. package/dist/index.js +4048 -0
  35. package/dist/init-logging.js +28 -0
  36. package/dist/launchd-plist.js +68 -0
  37. package/dist/lib/plugin-install.js +110 -0
  38. package/dist/lib/premium-mcp-discover.js +41 -0
  39. package/dist/macos-version.js +53 -0
  40. package/dist/onboarding-readback.js +27 -0
  41. package/dist/peer-brand-detect.js +39 -0
  42. package/dist/permissions-seed.js +76 -0
  43. package/dist/pinned-binaries.js +12 -0
  44. package/dist/platform-detect.js +36 -0
  45. package/dist/port-resolution.js +208 -0
  46. package/dist/preflight-port-classifier.js +222 -0
  47. package/dist/samba-provision.js +218 -0
  48. package/dist/snap-chromium.js +88 -0
  49. package/dist/specialist-registration.js +78 -0
  50. package/dist/tier-flag.js +85 -0
  51. package/dist/uninstall.js +947 -0
  52. package/package.json +35 -0
  53. package/payload/platform/.docs/search-surface-contract.md +58 -0
  54. package/payload/platform/config/brand-registry.json +28 -0
  55. package/payload/platform/config/brand.json +82 -0
  56. package/payload/platform/docs/superpowers/plans/2026-06-02-task-610-follower-202-retry.md +372 -0
  57. package/payload/platform/docs/superpowers/plans/2026-06-04-public-agent-knowledge-delivery.md +230 -0
  58. package/payload/platform/docs/superpowers/specs/2026-06-02-task-610-follower-202-retry-design.md +116 -0
  59. package/payload/platform/lib/account-enumeration/dist/__tests__/enumerate.test.d.ts +2 -0
  60. package/payload/platform/lib/account-enumeration/dist/__tests__/enumerate.test.d.ts.map +1 -0
  61. package/payload/platform/lib/account-enumeration/dist/__tests__/enumerate.test.js +88 -0
  62. package/payload/platform/lib/account-enumeration/dist/__tests__/enumerate.test.js.map +1 -0
  63. package/payload/platform/lib/account-enumeration/dist/__tests__/validate-env.test.d.ts +2 -0
  64. package/payload/platform/lib/account-enumeration/dist/__tests__/validate-env.test.d.ts.map +1 -0
  65. package/payload/platform/lib/account-enumeration/dist/__tests__/validate-env.test.js +55 -0
  66. package/payload/platform/lib/account-enumeration/dist/__tests__/validate-env.test.js.map +1 -0
  67. package/payload/platform/lib/account-enumeration/dist/index.d.ts +49 -0
  68. package/payload/platform/lib/account-enumeration/dist/index.d.ts.map +1 -0
  69. package/payload/platform/lib/account-enumeration/dist/index.js +109 -0
  70. package/payload/platform/lib/account-enumeration/dist/index.js.map +1 -0
  71. package/payload/platform/lib/account-enumeration/src/__tests__/enumerate.test.ts +94 -0
  72. package/payload/platform/lib/account-enumeration/src/__tests__/validate-env.test.ts +57 -0
  73. package/payload/platform/lib/account-enumeration/src/index.ts +140 -0
  74. package/payload/platform/lib/account-enumeration/tsconfig.json +8 -0
  75. package/payload/platform/lib/admin-conversation-purge/dist/index.d.ts +54 -0
  76. package/payload/platform/lib/admin-conversation-purge/dist/index.d.ts.map +1 -0
  77. package/payload/platform/lib/admin-conversation-purge/dist/index.js +84 -0
  78. package/payload/platform/lib/admin-conversation-purge/dist/index.js.map +1 -0
  79. package/payload/platform/lib/admin-conversation-purge/src/index.ts +120 -0
  80. package/payload/platform/lib/admin-conversation-purge/tsconfig.json +8 -0
  81. package/payload/platform/lib/admins-write/dist/index.d.ts +86 -0
  82. package/payload/platform/lib/admins-write/dist/index.d.ts.map +1 -0
  83. package/payload/platform/lib/admins-write/dist/index.js +245 -0
  84. package/payload/platform/lib/admins-write/dist/index.js.map +1 -0
  85. package/payload/platform/lib/admins-write/src/index.ts +305 -0
  86. package/payload/platform/lib/admins-write/tsconfig.json +8 -0
  87. package/payload/platform/lib/aeo-llms-txt-writer/dist/index.d.ts +33 -0
  88. package/payload/platform/lib/aeo-llms-txt-writer/dist/index.d.ts.map +1 -0
  89. package/payload/platform/lib/aeo-llms-txt-writer/dist/index.js +119 -0
  90. package/payload/platform/lib/aeo-llms-txt-writer/dist/index.js.map +1 -0
  91. package/payload/platform/lib/aeo-llms-txt-writer/src/index.ts +172 -0
  92. package/payload/platform/lib/aeo-llms-txt-writer/tsconfig.json +8 -0
  93. package/payload/platform/lib/anthropic-key/dist/index.d.ts +22 -0
  94. package/payload/platform/lib/anthropic-key/dist/index.d.ts.map +1 -0
  95. package/payload/platform/lib/anthropic-key/dist/index.js +232 -0
  96. package/payload/platform/lib/anthropic-key/dist/index.js.map +1 -0
  97. package/payload/platform/lib/brand-templating/dist/index.d.ts +18 -0
  98. package/payload/platform/lib/brand-templating/dist/index.d.ts.map +1 -0
  99. package/payload/platform/lib/brand-templating/dist/index.js +69 -0
  100. package/payload/platform/lib/brand-templating/dist/index.js.map +1 -0
  101. package/payload/platform/lib/brand-templating/src/index.ts +76 -0
  102. package/payload/platform/lib/brand-templating/tsconfig.json +8 -0
  103. package/payload/platform/lib/device-url/dist/index.d.ts +44 -0
  104. package/payload/platform/lib/device-url/dist/index.d.ts.map +1 -0
  105. package/payload/platform/lib/device-url/dist/index.js +68 -0
  106. package/payload/platform/lib/device-url/dist/index.js.map +1 -0
  107. package/payload/platform/lib/device-url/src/index.ts +78 -0
  108. package/payload/platform/lib/device-url/tsconfig.json +8 -0
  109. package/payload/platform/lib/embed-client/dist/index.d.ts +4 -0
  110. package/payload/platform/lib/embed-client/dist/index.d.ts.map +1 -0
  111. package/payload/platform/lib/embed-client/dist/index.js +53 -0
  112. package/payload/platform/lib/embed-client/dist/index.js.map +1 -0
  113. package/payload/platform/lib/embed-client/src/index.ts +53 -0
  114. package/payload/platform/lib/embed-client/tsconfig.json +8 -0
  115. package/payload/platform/lib/entitlement/PUBKEY-HASH.txt +1 -0
  116. package/payload/platform/lib/entitlement/dist/canonicalize.d.ts +26 -0
  117. package/payload/platform/lib/entitlement/dist/canonicalize.d.ts.map +1 -0
  118. package/payload/platform/lib/entitlement/dist/canonicalize.js +54 -0
  119. package/payload/platform/lib/entitlement/dist/canonicalize.js.map +1 -0
  120. package/payload/platform/lib/entitlement/dist/index.d.ts +76 -0
  121. package/payload/platform/lib/entitlement/dist/index.d.ts.map +1 -0
  122. package/payload/platform/lib/entitlement/dist/index.js +293 -0
  123. package/payload/platform/lib/entitlement/dist/index.js.map +1 -0
  124. package/payload/platform/lib/entitlement/rubytech-pubkey.pem +3 -0
  125. package/payload/platform/lib/graph-mcp/dist/__tests__/cypher-validate-write.test.d.ts +2 -0
  126. package/payload/platform/lib/graph-mcp/dist/__tests__/cypher-validate-write.test.d.ts.map +1 -0
  127. package/payload/platform/lib/graph-mcp/dist/__tests__/cypher-validate-write.test.js +97 -0
  128. package/payload/platform/lib/graph-mcp/dist/__tests__/cypher-validate-write.test.js.map +1 -0
  129. package/payload/platform/lib/graph-mcp/dist/__tests__/cypher-validate.test.d.ts +2 -0
  130. package/payload/platform/lib/graph-mcp/dist/__tests__/cypher-validate.test.d.ts.map +1 -0
  131. package/payload/platform/lib/graph-mcp/dist/__tests__/cypher-validate.test.js +112 -0
  132. package/payload/platform/lib/graph-mcp/dist/__tests__/cypher-validate.test.js.map +1 -0
  133. package/payload/platform/lib/graph-mcp/dist/__tests__/schema-cache.test.d.ts +2 -0
  134. package/payload/platform/lib/graph-mcp/dist/__tests__/schema-cache.test.d.ts.map +1 -0
  135. package/payload/platform/lib/graph-mcp/dist/__tests__/schema-cache.test.js +163 -0
  136. package/payload/platform/lib/graph-mcp/dist/__tests__/schema-cache.test.js.map +1 -0
  137. package/payload/platform/lib/graph-mcp/dist/__tests__/schema-cypher-parser.test.d.ts +2 -0
  138. package/payload/platform/lib/graph-mcp/dist/__tests__/schema-cypher-parser.test.d.ts.map +1 -0
  139. package/payload/platform/lib/graph-mcp/dist/__tests__/schema-cypher-parser.test.js +89 -0
  140. package/payload/platform/lib/graph-mcp/dist/__tests__/schema-cypher-parser.test.js.map +1 -0
  141. package/payload/platform/lib/graph-mcp/dist/__tests__/warnings-envelope.test.d.ts +2 -0
  142. package/payload/platform/lib/graph-mcp/dist/__tests__/warnings-envelope.test.d.ts.map +1 -0
  143. package/payload/platform/lib/graph-mcp/dist/__tests__/warnings-envelope.test.js +140 -0
  144. package/payload/platform/lib/graph-mcp/dist/__tests__/warnings-envelope.test.js.map +1 -0
  145. package/payload/platform/lib/graph-mcp/dist/cypher-rewrite-stamp.d.ts +37 -0
  146. package/payload/platform/lib/graph-mcp/dist/cypher-rewrite-stamp.d.ts.map +1 -0
  147. package/payload/platform/lib/graph-mcp/dist/cypher-rewrite-stamp.js +333 -0
  148. package/payload/platform/lib/graph-mcp/dist/cypher-rewrite-stamp.js.map +1 -0
  149. package/payload/platform/lib/graph-mcp/dist/cypher-shim-read.d.ts +85 -0
  150. package/payload/platform/lib/graph-mcp/dist/cypher-shim-read.d.ts.map +1 -0
  151. package/payload/platform/lib/graph-mcp/dist/cypher-shim-read.js +93 -0
  152. package/payload/platform/lib/graph-mcp/dist/cypher-shim-read.js.map +1 -0
  153. package/payload/platform/lib/graph-mcp/dist/cypher-shim-write.d.ts +71 -0
  154. package/payload/platform/lib/graph-mcp/dist/cypher-shim-write.d.ts.map +1 -0
  155. package/payload/platform/lib/graph-mcp/dist/cypher-shim-write.js +168 -0
  156. package/payload/platform/lib/graph-mcp/dist/cypher-shim-write.js.map +1 -0
  157. package/payload/platform/lib/graph-mcp/dist/cypher-validate.d.ts +50 -0
  158. package/payload/platform/lib/graph-mcp/dist/cypher-validate.d.ts.map +1 -0
  159. package/payload/platform/lib/graph-mcp/dist/cypher-validate.js +197 -0
  160. package/payload/platform/lib/graph-mcp/dist/cypher-validate.js.map +1 -0
  161. package/payload/platform/lib/graph-mcp/dist/index.d.ts +26 -0
  162. package/payload/platform/lib/graph-mcp/dist/index.d.ts.map +1 -0
  163. package/payload/platform/lib/graph-mcp/dist/index.js +845 -0
  164. package/payload/platform/lib/graph-mcp/dist/index.js.map +1 -0
  165. package/payload/platform/lib/graph-mcp/dist/schema-cache.d.ts +76 -0
  166. package/payload/platform/lib/graph-mcp/dist/schema-cache.d.ts.map +1 -0
  167. package/payload/platform/lib/graph-mcp/dist/schema-cache.js +218 -0
  168. package/payload/platform/lib/graph-mcp/dist/schema-cache.js.map +1 -0
  169. package/payload/platform/lib/graph-mcp/dist/schema-cypher-parser.d.ts +42 -0
  170. package/payload/platform/lib/graph-mcp/dist/schema-cypher-parser.d.ts.map +1 -0
  171. package/payload/platform/lib/graph-mcp/dist/schema-cypher-parser.js +87 -0
  172. package/payload/platform/lib/graph-mcp/dist/schema-cypher-parser.js.map +1 -0
  173. package/payload/platform/lib/graph-mcp/src/__tests__/cypher-validate-write.test.ts +150 -0
  174. package/payload/platform/lib/graph-mcp/src/__tests__/cypher-validate.test.ts +141 -0
  175. package/payload/platform/lib/graph-mcp/src/__tests__/schema-cache.test.ts +169 -0
  176. package/payload/platform/lib/graph-mcp/src/__tests__/schema-cypher-parser.test.ts +99 -0
  177. package/payload/platform/lib/graph-mcp/src/__tests__/warnings-envelope.test.ts +151 -0
  178. package/payload/platform/lib/graph-mcp/src/cypher-rewrite-stamp.ts +349 -0
  179. package/payload/platform/lib/graph-mcp/src/cypher-shim-read.ts +141 -0
  180. package/payload/platform/lib/graph-mcp/src/cypher-shim-write.ts +240 -0
  181. package/payload/platform/lib/graph-mcp/src/cypher-validate.ts +249 -0
  182. package/payload/platform/lib/graph-mcp/src/index.ts +1074 -0
  183. package/payload/platform/lib/graph-mcp/src/schema-cache.ts +243 -0
  184. package/payload/platform/lib/graph-mcp/src/schema-cypher-parser.ts +84 -0
  185. package/payload/platform/lib/graph-mcp/tsconfig.json +8 -0
  186. package/payload/platform/lib/graph-search/dist/boosts.d.ts +39 -0
  187. package/payload/platform/lib/graph-search/dist/boosts.d.ts.map +1 -0
  188. package/payload/platform/lib/graph-search/dist/boosts.js +57 -0
  189. package/payload/platform/lib/graph-search/dist/boosts.js.map +1 -0
  190. package/payload/platform/lib/graph-search/dist/dedup.d.ts +29 -0
  191. package/payload/platform/lib/graph-search/dist/dedup.d.ts.map +1 -0
  192. package/payload/platform/lib/graph-search/dist/dedup.js +97 -0
  193. package/payload/platform/lib/graph-search/dist/dedup.js.map +1 -0
  194. package/payload/platform/lib/graph-search/dist/index.d.ts +355 -0
  195. package/payload/platform/lib/graph-search/dist/index.d.ts.map +1 -0
  196. package/payload/platform/lib/graph-search/dist/index.js +864 -0
  197. package/payload/platform/lib/graph-search/dist/index.js.map +1 -0
  198. package/payload/platform/lib/graph-search/dist/query-expansion.d.ts +37 -0
  199. package/payload/platform/lib/graph-search/dist/query-expansion.d.ts.map +1 -0
  200. package/payload/platform/lib/graph-search/dist/query-expansion.js +101 -0
  201. package/payload/platform/lib/graph-search/dist/query-expansion.js.map +1 -0
  202. package/payload/platform/lib/graph-search/dist/route.d.ts +29 -0
  203. package/payload/platform/lib/graph-search/dist/route.d.ts.map +1 -0
  204. package/payload/platform/lib/graph-search/dist/route.js +53 -0
  205. package/payload/platform/lib/graph-search/dist/route.js.map +1 -0
  206. package/payload/platform/lib/graph-search/dist/rrf-fusion.d.ts +31 -0
  207. package/payload/platform/lib/graph-search/dist/rrf-fusion.d.ts.map +1 -0
  208. package/payload/platform/lib/graph-search/dist/rrf-fusion.js +57 -0
  209. package/payload/platform/lib/graph-search/dist/rrf-fusion.js.map +1 -0
  210. package/payload/platform/lib/graph-search/src/__tests__/bm25-label-gate.test.ts +88 -0
  211. package/payload/platform/lib/graph-search/src/__tests__/bm25-only.test.ts +129 -0
  212. package/payload/platform/lib/graph-search/src/__tests__/bm25-strong-bypass-threshold.test.ts +126 -0
  213. package/payload/platform/lib/graph-search/src/__tests__/boosts.test.ts +59 -0
  214. package/payload/platform/lib/graph-search/src/__tests__/brochure-threshold.test.ts +136 -0
  215. package/payload/platform/lib/graph-search/src/__tests__/dedup.test.ts +83 -0
  216. package/payload/platform/lib/graph-search/src/__tests__/escape-and-normalise.test.ts +53 -0
  217. package/payload/platform/lib/graph-search/src/__tests__/expand-batch.test.ts +206 -0
  218. package/payload/platform/lib/graph-search/src/__tests__/fulltext-coverage.test.ts +357 -0
  219. package/payload/platform/lib/graph-search/src/__tests__/hybrid.test.ts +355 -0
  220. package/payload/platform/lib/graph-search/src/__tests__/route.test.ts +62 -0
  221. package/payload/platform/lib/graph-search/src/__tests__/rrf-fusion.test.ts +39 -0
  222. package/payload/platform/lib/graph-search/src/__tests__/vector-index-coverage.test.ts +198 -0
  223. package/payload/platform/lib/graph-search/src/__tests__/vector-threshold.test.ts +170 -0
  224. package/payload/platform/lib/graph-search/src/boosts.ts +61 -0
  225. package/payload/platform/lib/graph-search/src/dedup.ts +108 -0
  226. package/payload/platform/lib/graph-search/src/index.ts +1162 -0
  227. package/payload/platform/lib/graph-search/src/route.ts +70 -0
  228. package/payload/platform/lib/graph-search/src/rrf-fusion.ts +62 -0
  229. package/payload/platform/lib/graph-search/tsconfig.json +9 -0
  230. package/payload/platform/lib/graph-search/vitest.config.ts +9 -0
  231. package/payload/platform/lib/graph-style/dist/index.d.ts +80 -0
  232. package/payload/platform/lib/graph-style/dist/index.d.ts.map +1 -0
  233. package/payload/platform/lib/graph-style/dist/index.js +285 -0
  234. package/payload/platform/lib/graph-style/dist/index.js.map +1 -0
  235. package/payload/platform/lib/graph-style/src/__tests__/parity.test.ts +114 -0
  236. package/payload/platform/lib/graph-style/src/index.ts +299 -0
  237. package/payload/platform/lib/graph-style/tsconfig.json +9 -0
  238. package/payload/platform/lib/graph-style/vitest.config.ts +9 -0
  239. package/payload/platform/lib/graph-trash/dist/index.d.ts +106 -0
  240. package/payload/platform/lib/graph-trash/dist/index.d.ts.map +1 -0
  241. package/payload/platform/lib/graph-trash/dist/index.js +340 -0
  242. package/payload/platform/lib/graph-trash/dist/index.js.map +1 -0
  243. package/payload/platform/lib/graph-trash/package.json +7 -0
  244. package/payload/platform/lib/graph-trash/src/index.ts +493 -0
  245. package/payload/platform/lib/graph-trash/tsconfig.json +8 -0
  246. package/payload/platform/lib/graph-write/dist/__tests__/account-id-gate.test.d.ts +2 -0
  247. package/payload/platform/lib/graph-write/dist/__tests__/account-id-gate.test.d.ts.map +1 -0
  248. package/payload/platform/lib/graph-write/dist/__tests__/account-id-gate.test.js +165 -0
  249. package/payload/platform/lib/graph-write/dist/__tests__/account-id-gate.test.js.map +1 -0
  250. package/payload/platform/lib/graph-write/dist/__tests__/action-provenance-gate.test.d.ts +2 -0
  251. package/payload/platform/lib/graph-write/dist/__tests__/action-provenance-gate.test.d.ts.map +1 -0
  252. package/payload/platform/lib/graph-write/dist/__tests__/action-provenance-gate.test.js +263 -0
  253. package/payload/platform/lib/graph-write/dist/__tests__/action-provenance-gate.test.js.map +1 -0
  254. package/payload/platform/lib/graph-write/dist/__tests__/audit.test.d.ts +2 -0
  255. package/payload/platform/lib/graph-write/dist/__tests__/audit.test.d.ts.map +1 -0
  256. package/payload/platform/lib/graph-write/dist/__tests__/audit.test.js +147 -0
  257. package/payload/platform/lib/graph-write/dist/__tests__/audit.test.js.map +1 -0
  258. package/payload/platform/lib/graph-write/dist/audit.d.ts +84 -0
  259. package/payload/platform/lib/graph-write/dist/audit.d.ts.map +1 -0
  260. package/payload/platform/lib/graph-write/dist/audit.js +129 -0
  261. package/payload/platform/lib/graph-write/dist/audit.js.map +1 -0
  262. package/payload/platform/lib/graph-write/dist/conversation-provenance.d.ts +30 -0
  263. package/payload/platform/lib/graph-write/dist/conversation-provenance.d.ts.map +1 -0
  264. package/payload/platform/lib/graph-write/dist/conversation-provenance.js +88 -0
  265. package/payload/platform/lib/graph-write/dist/conversation-provenance.js.map +1 -0
  266. package/payload/platform/lib/graph-write/dist/index.d.ts +151 -0
  267. package/payload/platform/lib/graph-write/dist/index.d.ts.map +1 -0
  268. package/payload/platform/lib/graph-write/dist/index.js +377 -0
  269. package/payload/platform/lib/graph-write/dist/index.js.map +1 -0
  270. package/payload/platform/lib/graph-write/src/__tests__/account-id-gate.test.ts +189 -0
  271. package/payload/platform/lib/graph-write/src/__tests__/action-provenance-gate.test.ts +279 -0
  272. package/payload/platform/lib/graph-write/src/__tests__/audit.test.ts +162 -0
  273. package/payload/platform/lib/graph-write/src/audit.ts +182 -0
  274. package/payload/platform/lib/graph-write/src/conversation-provenance.ts +148 -0
  275. package/payload/platform/lib/graph-write/src/index.ts +491 -0
  276. package/payload/platform/lib/graph-write/tsconfig.json +8 -0
  277. package/payload/platform/lib/mcp-eager/dist/index.d.ts +61 -0
  278. package/payload/platform/lib/mcp-eager/dist/index.d.ts.map +1 -0
  279. package/payload/platform/lib/mcp-eager/dist/index.js +49 -0
  280. package/payload/platform/lib/mcp-eager/dist/index.js.map +1 -0
  281. package/payload/platform/lib/mcp-eager/package.json +7 -0
  282. package/payload/platform/lib/mcp-eager/src/index.ts +78 -0
  283. package/payload/platform/lib/mcp-eager/tsconfig.json +8 -0
  284. package/payload/platform/lib/mcp-spawn-tee/dist/index.d.ts +53 -0
  285. package/payload/platform/lib/mcp-spawn-tee/dist/index.d.ts.map +1 -0
  286. package/payload/platform/lib/mcp-spawn-tee/dist/index.js +132 -0
  287. package/payload/platform/lib/mcp-spawn-tee/dist/index.js.map +1 -0
  288. package/payload/platform/lib/mcp-spawn-tee/src/index.ts +134 -0
  289. package/payload/platform/lib/mcp-spawn-tee/tsconfig.json +8 -0
  290. package/payload/platform/lib/mcp-stderr-tee/dist/index.d.ts +51 -0
  291. package/payload/platform/lib/mcp-stderr-tee/dist/index.d.ts.map +1 -0
  292. package/payload/platform/lib/mcp-stderr-tee/dist/index.js +196 -0
  293. package/payload/platform/lib/mcp-stderr-tee/dist/index.js.map +1 -0
  294. package/payload/platform/lib/mcp-stderr-tee/package.json +7 -0
  295. package/payload/platform/lib/mcp-stderr-tee/src/index.ts +206 -0
  296. package/payload/platform/lib/mcp-stderr-tee/tsconfig.json +8 -0
  297. package/payload/platform/lib/models/dist/index.d.ts +7 -0
  298. package/payload/platform/lib/models/dist/index.d.ts.map +1 -0
  299. package/payload/platform/lib/models/dist/index.js +20 -0
  300. package/payload/platform/lib/models/dist/index.js.map +1 -0
  301. package/payload/platform/lib/models/src/index.ts +18 -0
  302. package/payload/platform/lib/models/tsconfig.json +8 -0
  303. package/payload/platform/lib/oauth-llm/dist/index.d.ts +116 -0
  304. package/payload/platform/lib/oauth-llm/dist/index.d.ts.map +1 -0
  305. package/payload/platform/lib/oauth-llm/dist/index.js +386 -0
  306. package/payload/platform/lib/oauth-llm/dist/index.js.map +1 -0
  307. package/payload/platform/lib/obsidian-parser/dist/index.d.ts +98 -0
  308. package/payload/platform/lib/obsidian-parser/dist/index.d.ts.map +1 -0
  309. package/payload/platform/lib/obsidian-parser/dist/index.js +480 -0
  310. package/payload/platform/lib/obsidian-parser/dist/index.js.map +1 -0
  311. package/payload/platform/lib/obsidian-parser/src/index.ts +572 -0
  312. package/payload/platform/lib/obsidian-parser/tsconfig.json +8 -0
  313. package/payload/platform/lib/persistent-components/dist/index.d.ts +20 -0
  314. package/payload/platform/lib/persistent-components/dist/index.d.ts.map +1 -0
  315. package/payload/platform/lib/persistent-components/dist/index.js +31 -0
  316. package/payload/platform/lib/persistent-components/dist/index.js.map +1 -0
  317. package/payload/platform/lib/persistent-components/src/index.ts +27 -0
  318. package/payload/platform/lib/persistent-components/tsconfig.json +8 -0
  319. package/payload/platform/lib/require-port-env/dist/index.d.ts +31 -0
  320. package/payload/platform/lib/require-port-env/dist/index.d.ts.map +1 -0
  321. package/payload/platform/lib/require-port-env/dist/index.js +52 -0
  322. package/payload/platform/lib/require-port-env/dist/index.js.map +1 -0
  323. package/payload/platform/lib/require-port-env/src/index.ts +56 -0
  324. package/payload/platform/lib/require-port-env/tsconfig.json +8 -0
  325. package/payload/platform/lib/screening-patterns/dist/index.d.ts +29 -0
  326. package/payload/platform/lib/screening-patterns/dist/index.d.ts.map +1 -0
  327. package/payload/platform/lib/screening-patterns/dist/index.js +48 -0
  328. package/payload/platform/lib/screening-patterns/dist/index.js.map +1 -0
  329. package/payload/platform/lib/task-secrets/dist/index.d.ts +40 -0
  330. package/payload/platform/lib/task-secrets/dist/index.d.ts.map +1 -0
  331. package/payload/platform/lib/task-secrets/dist/index.js +44 -0
  332. package/payload/platform/lib/task-secrets/dist/index.js.map +1 -0
  333. package/payload/platform/lib/task-secrets/src/__tests__/redact-secrets.test.ts +127 -0
  334. package/payload/platform/lib/task-secrets/src/index.ts +77 -0
  335. package/payload/platform/lib/task-secrets/tsconfig.json +9 -0
  336. package/payload/platform/lib/task-secrets/vitest.config.ts +9 -0
  337. package/payload/platform/neo4j/edge-annotations.json +158 -0
  338. package/payload/platform/neo4j/schema.cypher +1899 -0
  339. package/payload/platform/package-lock.json +4060 -0
  340. package/payload/platform/package.json +26 -0
  341. package/payload/platform/plugins/.claude-plugin/marketplace.json +158 -0
  342. package/payload/platform/plugins/admin/.claude-plugin/plugin.json +17 -0
  343. package/payload/platform/plugins/admin/PLUGIN.md +163 -0
  344. package/payload/platform/plugins/admin/hooks/__tests__/archive-ingest-surface-gate.test.sh +191 -0
  345. package/payload/platform/plugins/admin/hooks/__tests__/askuserquestion-investigate-gate.test.sh +176 -0
  346. package/payload/platform/plugins/admin/hooks/__tests__/hook-emit-stale-lock-ttl.test.sh +102 -0
  347. package/payload/platform/plugins/admin/hooks/__tests__/hook-emit.test.sh +75 -0
  348. package/payload/platform/plugins/admin/hooks/__tests__/pin-identity-gate.test.sh +96 -0
  349. package/payload/platform/plugins/admin/hooks/__tests__/post-tool-use-agent.test.sh +173 -0
  350. package/payload/platform/plugins/admin/hooks/__tests__/prompt-optimiser-directive.test.sh +70 -0
  351. package/payload/platform/plugins/admin/hooks/admin-authoring-observer.sh +155 -0
  352. package/payload/platform/plugins/admin/hooks/archive-ingest-surface-gate.sh +224 -0
  353. package/payload/platform/plugins/admin/hooks/askuserquestion-investigate-gate.sh +257 -0
  354. package/payload/platform/plugins/admin/hooks/lib/hook-emit.sh +143 -0
  355. package/payload/platform/plugins/admin/hooks/lib/maxy-mcp-plugins.txt +16 -0
  356. package/payload/platform/plugins/admin/hooks/mcp-tool-missing.sh +94 -0
  357. package/payload/platform/plugins/admin/hooks/pin-identity-gate.sh +136 -0
  358. package/payload/platform/plugins/admin/hooks/post-tool-use-agent.sh +155 -0
  359. package/payload/platform/plugins/admin/hooks/prompt-optimiser-directive.sh +52 -0
  360. package/payload/platform/plugins/admin/hooks/webfetch-preflight.mjs +363 -0
  361. package/payload/platform/plugins/admin/mcp/dist/__tests__/admin-authoring-skill-gate.test.d.ts +2 -0
  362. package/payload/platform/plugins/admin/mcp/dist/__tests__/admin-authoring-skill-gate.test.d.ts.map +1 -0
  363. package/payload/platform/plugins/admin/mcp/dist/__tests__/admin-authoring-skill-gate.test.js +79 -0
  364. package/payload/platform/plugins/admin/mcp/dist/__tests__/admin-authoring-skill-gate.test.js.map +1 -0
  365. package/payload/platform/plugins/admin/mcp/dist/__tests__/admin-identity-authenticate.test.d.ts +2 -0
  366. package/payload/platform/plugins/admin/mcp/dist/__tests__/admin-identity-authenticate.test.d.ts.map +1 -0
  367. package/payload/platform/plugins/admin/mcp/dist/__tests__/admin-identity-authenticate.test.js +34 -0
  368. package/payload/platform/plugins/admin/mcp/dist/__tests__/admin-identity-authenticate.test.js.map +1 -0
  369. package/payload/platform/plugins/admin/mcp/dist/__tests__/capabilities-here.test.d.ts +2 -0
  370. package/payload/platform/plugins/admin/mcp/dist/__tests__/capabilities-here.test.d.ts.map +1 -0
  371. package/payload/platform/plugins/admin/mcp/dist/__tests__/capabilities-here.test.js +130 -0
  372. package/payload/platform/plugins/admin/mcp/dist/__tests__/capabilities-here.test.js.map +1 -0
  373. package/payload/platform/plugins/admin/mcp/dist/__tests__/plugin-read-skill-resolution.test.d.ts +2 -0
  374. package/payload/platform/plugins/admin/mcp/dist/__tests__/plugin-read-skill-resolution.test.d.ts.map +1 -0
  375. package/payload/platform/plugins/admin/mcp/dist/__tests__/plugin-read-skill-resolution.test.js +91 -0
  376. package/payload/platform/plugins/admin/mcp/dist/__tests__/plugin-read-skill-resolution.test.js.map +1 -0
  377. package/payload/platform/plugins/admin/mcp/dist/__tests__/public-hostname.test.d.ts +2 -0
  378. package/payload/platform/plugins/admin/mcp/dist/__tests__/public-hostname.test.d.ts.map +1 -0
  379. package/payload/platform/plugins/admin/mcp/dist/__tests__/public-hostname.test.js +98 -0
  380. package/payload/platform/plugins/admin/mcp/dist/__tests__/public-hostname.test.js.map +1 -0
  381. package/payload/platform/plugins/admin/mcp/dist/__tests__/skill-load-required-inputs.test.d.ts +2 -0
  382. package/payload/platform/plugins/admin/mcp/dist/__tests__/skill-load-required-inputs.test.d.ts.map +1 -0
  383. package/payload/platform/plugins/admin/mcp/dist/__tests__/skill-load-required-inputs.test.js +141 -0
  384. package/payload/platform/plugins/admin/mcp/dist/__tests__/skill-load-required-inputs.test.js.map +1 -0
  385. package/payload/platform/plugins/admin/mcp/dist/__tests__/skill-load.test.d.ts +2 -0
  386. package/payload/platform/plugins/admin/mcp/dist/__tests__/skill-load.test.d.ts.map +1 -0
  387. package/payload/platform/plugins/admin/mcp/dist/__tests__/skill-load.test.js +88 -0
  388. package/payload/platform/plugins/admin/mcp/dist/__tests__/skill-load.test.js.map +1 -0
  389. package/payload/platform/plugins/admin/mcp/dist/__tests__/skill-no-prescribed-role.test.d.ts +2 -0
  390. package/payload/platform/plugins/admin/mcp/dist/__tests__/skill-no-prescribed-role.test.d.ts.map +1 -0
  391. package/payload/platform/plugins/admin/mcp/dist/__tests__/skill-no-prescribed-role.test.js +50 -0
  392. package/payload/platform/plugins/admin/mcp/dist/__tests__/skill-no-prescribed-role.test.js.map +1 -0
  393. package/payload/platform/plugins/admin/mcp/dist/index.d.ts +2 -0
  394. package/payload/platform/plugins/admin/mcp/dist/index.d.ts.map +1 -0
  395. package/payload/platform/plugins/admin/mcp/dist/index.js +3120 -0
  396. package/payload/platform/plugins/admin/mcp/dist/index.js.map +1 -0
  397. package/payload/platform/plugins/admin/mcp/dist/lib/catalogue-census.d.ts +14 -0
  398. package/payload/platform/plugins/admin/mcp/dist/lib/catalogue-census.d.ts.map +1 -0
  399. package/payload/platform/plugins/admin/mcp/dist/lib/catalogue-census.js +50 -0
  400. package/payload/platform/plugins/admin/mcp/dist/lib/catalogue-census.js.map +1 -0
  401. package/payload/platform/plugins/admin/mcp/dist/lib/neo4j.d.ts +5 -0
  402. package/payload/platform/plugins/admin/mcp/dist/lib/neo4j.d.ts.map +1 -0
  403. package/payload/platform/plugins/admin/mcp/dist/lib/neo4j.js +40 -0
  404. package/payload/platform/plugins/admin/mcp/dist/lib/neo4j.js.map +1 -0
  405. package/payload/platform/plugins/admin/mcp/dist/lib/onboarding.d.ts +39 -0
  406. package/payload/platform/plugins/admin/mcp/dist/lib/onboarding.d.ts.map +1 -0
  407. package/payload/platform/plugins/admin/mcp/dist/lib/onboarding.js +249 -0
  408. package/payload/platform/plugins/admin/mcp/dist/lib/onboarding.js.map +1 -0
  409. package/payload/platform/plugins/admin/mcp/dist/lib/public-hostname.d.ts +15 -0
  410. package/payload/platform/plugins/admin/mcp/dist/lib/public-hostname.d.ts.map +1 -0
  411. package/payload/platform/plugins/admin/mcp/dist/lib/public-hostname.js +73 -0
  412. package/payload/platform/plugins/admin/mcp/dist/lib/public-hostname.js.map +1 -0
  413. package/payload/platform/plugins/admin/mcp/dist/skill-resolution.d.ts +44 -0
  414. package/payload/platform/plugins/admin/mcp/dist/skill-resolution.d.ts.map +1 -0
  415. package/payload/platform/plugins/admin/mcp/dist/skill-resolution.js +187 -0
  416. package/payload/platform/plugins/admin/mcp/dist/skill-resolution.js.map +1 -0
  417. package/payload/platform/plugins/admin/mcp/dist/tools/admin-identity-authenticate.d.ts +6 -0
  418. package/payload/platform/plugins/admin/mcp/dist/tools/admin-identity-authenticate.d.ts.map +1 -0
  419. package/payload/platform/plugins/admin/mcp/dist/tools/admin-identity-authenticate.js +32 -0
  420. package/payload/platform/plugins/admin/mcp/dist/tools/admin-identity-authenticate.js.map +1 -0
  421. package/payload/platform/plugins/admin/mcp/dist/tools/capabilities-here.d.ts +28 -0
  422. package/payload/platform/plugins/admin/mcp/dist/tools/capabilities-here.d.ts.map +1 -0
  423. package/payload/platform/plugins/admin/mcp/dist/tools/capabilities-here.js +68 -0
  424. package/payload/platform/plugins/admin/mcp/dist/tools/capabilities-here.js.map +1 -0
  425. package/payload/platform/plugins/admin/mcp/dist/tools/publish-site.d.ts +34 -0
  426. package/payload/platform/plugins/admin/mcp/dist/tools/publish-site.d.ts.map +1 -0
  427. package/payload/platform/plugins/admin/mcp/dist/tools/publish-site.js +176 -0
  428. package/payload/platform/plugins/admin/mcp/dist/tools/publish-site.js.map +1 -0
  429. package/payload/platform/plugins/admin/mcp/package.json +23 -0
  430. package/payload/platform/plugins/admin/mcp/vitest.config.ts +9 -0
  431. package/payload/platform/plugins/admin/references/chat-ui-guide.md +31 -0
  432. package/payload/platform/plugins/admin/references/publish-site-routing.md +44 -0
  433. package/payload/platform/plugins/admin/skills/a4-print-documents/SKILL.md +241 -0
  434. package/payload/platform/plugins/admin/skills/access-manager/SKILL.md +30 -0
  435. package/payload/platform/plugins/admin/skills/access-manager/references/operations.md +154 -0
  436. package/payload/platform/plugins/admin/skills/admin-user-management/SKILL.md +49 -0
  437. package/payload/platform/plugins/admin/skills/business-profile/SKILL.md +53 -0
  438. package/payload/platform/plugins/admin/skills/capabilities-here/SKILL.md +31 -0
  439. package/payload/platform/plugins/admin/skills/datetime/SKILL.md +149 -0
  440. package/payload/platform/plugins/admin/skills/deck-pages/SKILL.md +404 -0
  441. package/payload/platform/plugins/admin/skills/file-presentation/SKILL.md +47 -0
  442. package/payload/platform/plugins/admin/skills/insight/SKILL.md +24 -0
  443. package/payload/platform/plugins/admin/skills/investigate/SKILL.md +318 -0
  444. package/payload/platform/plugins/admin/skills/plainly/SKILL.md +105 -0
  445. package/payload/platform/plugins/admin/skills/plainly/references/worked-examples.md +301 -0
  446. package/payload/platform/plugins/admin/skills/platform-architecture/SKILL.md +3943 -0
  447. package/payload/platform/plugins/admin/skills/plugin-management/SKILL.md +99 -0
  448. package/payload/platform/plugins/admin/skills/professional-document/SKILL.md +178 -0
  449. package/payload/platform/plugins/admin/skills/public-agent-manager/SKILL.md +256 -0
  450. package/payload/platform/plugins/admin/skills/publish-site/SKILL.md +42 -0
  451. package/payload/platform/plugins/admin/skills/qr-code/SKILL.md +36 -0
  452. package/payload/platform/plugins/admin/skills/qr-code/references/data-formats.md +113 -0
  453. package/payload/platform/plugins/admin/skills/session-management/SKILL.md +62 -0
  454. package/payload/platform/plugins/admin/skills/skill-builder/SKILL.md +113 -0
  455. package/payload/platform/plugins/admin/skills/skill-builder/references/lean-pattern.md +110 -0
  456. package/payload/platform/plugins/admin/skills/skill-builder/references/pdf-generation.md +30 -0
  457. package/payload/platform/plugins/admin/skills/specialist-management/SKILL.md +45 -0
  458. package/payload/platform/plugins/admin/skills/stream-log-review/SKILL.md +71 -0
  459. package/payload/platform/plugins/admin/skills/stream-log-review/references/analysis-patterns.md +193 -0
  460. package/payload/platform/plugins/admin/skills/superpowers-sprint/SKILL.md +361 -0
  461. package/payload/platform/plugins/admin/skills/task/SKILL.md +314 -0
  462. package/payload/platform/plugins/admin/skills/unzip-attachment/SKILL.md +84 -0
  463. package/payload/platform/plugins/admin/skills/unzip-attachment/__tests__/preflight.sh +148 -0
  464. package/payload/platform/plugins/admin/skills/unzip-attachment/references/safety.md +116 -0
  465. package/payload/platform/plugins/admin/skills/update-knowledge/SKILL.md +52 -0
  466. package/payload/platform/plugins/admin/skills/upgrade/SKILL.md +34 -0
  467. package/payload/platform/plugins/aeo/.claude-plugin/plugin.json +17 -0
  468. package/payload/platform/plugins/aeo/PLUGIN.md +80 -0
  469. package/payload/platform/plugins/aeo/mcp/dist/__tests__/audit-heuristics.test.d.ts +2 -0
  470. package/payload/platform/plugins/aeo/mcp/dist/__tests__/audit-heuristics.test.d.ts.map +1 -0
  471. package/payload/platform/plugins/aeo/mcp/dist/__tests__/audit-heuristics.test.js +121 -0
  472. package/payload/platform/plugins/aeo/mcp/dist/__tests__/audit-heuristics.test.js.map +1 -0
  473. package/payload/platform/plugins/aeo/mcp/dist/__tests__/schema-mapping.test.d.ts +2 -0
  474. package/payload/platform/plugins/aeo/mcp/dist/__tests__/schema-mapping.test.d.ts.map +1 -0
  475. package/payload/platform/plugins/aeo/mcp/dist/__tests__/schema-mapping.test.js +129 -0
  476. package/payload/platform/plugins/aeo/mcp/dist/__tests__/schema-mapping.test.js.map +1 -0
  477. package/payload/platform/plugins/aeo/mcp/dist/index.d.ts +2 -0
  478. package/payload/platform/plugins/aeo/mcp/dist/index.d.ts.map +1 -0
  479. package/payload/platform/plugins/aeo/mcp/dist/index.js +189 -0
  480. package/payload/platform/plugins/aeo/mcp/dist/index.js.map +1 -0
  481. package/payload/platform/plugins/aeo/mcp/dist/lib/audit-heuristics.d.ts +27 -0
  482. package/payload/platform/plugins/aeo/mcp/dist/lib/audit-heuristics.d.ts.map +1 -0
  483. package/payload/platform/plugins/aeo/mcp/dist/lib/audit-heuristics.js +274 -0
  484. package/payload/platform/plugins/aeo/mcp/dist/lib/audit-heuristics.js.map +1 -0
  485. package/payload/platform/plugins/aeo/mcp/dist/lib/neo4j.d.ts +5 -0
  486. package/payload/platform/plugins/aeo/mcp/dist/lib/neo4j.d.ts.map +1 -0
  487. package/payload/platform/plugins/aeo/mcp/dist/lib/neo4j.js +38 -0
  488. package/payload/platform/plugins/aeo/mcp/dist/lib/neo4j.js.map +1 -0
  489. package/payload/platform/plugins/aeo/mcp/dist/lib/schema-mapping.d.ts +48 -0
  490. package/payload/platform/plugins/aeo/mcp/dist/lib/schema-mapping.d.ts.map +1 -0
  491. package/payload/platform/plugins/aeo/mcp/dist/lib/schema-mapping.js +254 -0
  492. package/payload/platform/plugins/aeo/mcp/dist/lib/schema-mapping.js.map +1 -0
  493. package/payload/platform/plugins/aeo/mcp/dist/tools/aeo-audit-page.d.ts +25 -0
  494. package/payload/platform/plugins/aeo/mcp/dist/tools/aeo-audit-page.d.ts.map +1 -0
  495. package/payload/platform/plugins/aeo/mcp/dist/tools/aeo-audit-page.js +78 -0
  496. package/payload/platform/plugins/aeo/mcp/dist/tools/aeo-audit-page.js.map +1 -0
  497. package/payload/platform/plugins/aeo/mcp/dist/tools/aeo-emit-jsonld.d.ts +18 -0
  498. package/payload/platform/plugins/aeo/mcp/dist/tools/aeo-emit-jsonld.d.ts.map +1 -0
  499. package/payload/platform/plugins/aeo/mcp/dist/tools/aeo-emit-jsonld.js +56 -0
  500. package/payload/platform/plugins/aeo/mcp/dist/tools/aeo-emit-jsonld.js.map +1 -0
  501. package/payload/platform/plugins/aeo/mcp/dist/tools/aeo-write-llms-txt.d.ts +9 -0
  502. package/payload/platform/plugins/aeo/mcp/dist/tools/aeo-write-llms-txt.d.ts.map +1 -0
  503. package/payload/platform/plugins/aeo/mcp/dist/tools/aeo-write-llms-txt.js +11 -0
  504. package/payload/platform/plugins/aeo/mcp/dist/tools/aeo-write-llms-txt.js.map +1 -0
  505. package/payload/platform/plugins/aeo/mcp/package.json +22 -0
  506. package/payload/platform/plugins/aeo/mcp/vitest.config.ts +9 -0
  507. package/payload/platform/plugins/aeo/skills/structured-answer/SKILL.md +53 -0
  508. package/payload/platform/plugins/browser/.claude-plugin/plugin.json +17 -0
  509. package/payload/platform/plugins/browser/PLUGIN.md +114 -0
  510. package/payload/platform/plugins/browser/mcp/dist/index.d.ts +2 -0
  511. package/payload/platform/plugins/browser/mcp/dist/index.d.ts.map +1 -0
  512. package/payload/platform/plugins/browser/mcp/dist/index.js +165 -0
  513. package/payload/platform/plugins/browser/mcp/dist/index.js.map +1 -0
  514. package/payload/platform/plugins/browser/mcp/dist/lib/cdp-actions.d.ts +98 -0
  515. package/payload/platform/plugins/browser/mcp/dist/lib/cdp-actions.d.ts.map +1 -0
  516. package/payload/platform/plugins/browser/mcp/dist/lib/cdp-actions.js +455 -0
  517. package/payload/platform/plugins/browser/mcp/dist/lib/cdp-actions.js.map +1 -0
  518. package/payload/platform/plugins/browser/mcp/dist/lib/cdp-render.d.ts +44 -0
  519. package/payload/platform/plugins/browser/mcp/dist/lib/cdp-render.d.ts.map +1 -0
  520. package/payload/platform/plugins/browser/mcp/dist/lib/cdp-render.js +89 -0
  521. package/payload/platform/plugins/browser/mcp/dist/lib/cdp-render.js.map +1 -0
  522. package/payload/platform/plugins/browser/mcp/dist/lib/cdp-session.d.ts +153 -0
  523. package/payload/platform/plugins/browser/mcp/dist/lib/cdp-session.d.ts.map +1 -0
  524. package/payload/platform/plugins/browser/mcp/dist/lib/cdp-session.js +401 -0
  525. package/payload/platform/plugins/browser/mcp/dist/lib/cdp-session.js.map +1 -0
  526. package/payload/platform/plugins/browser/mcp/package.json +19 -0
  527. package/payload/platform/plugins/business-assistant/.claude-plugin/plugin.json +8 -0
  528. package/payload/platform/plugins/business-assistant/PLUGIN.md +62 -0
  529. package/payload/platform/plugins/business-assistant/references/crm.md +112 -0
  530. package/payload/platform/plugins/business-assistant/references/document-management.md +96 -0
  531. package/payload/platform/plugins/business-assistant/references/escalation.md +126 -0
  532. package/payload/platform/plugins/business-assistant/references/invoicing.md +163 -0
  533. package/payload/platform/plugins/business-assistant/references/profiling.md +50 -0
  534. package/payload/platform/plugins/business-assistant/references/quoting.md +56 -0
  535. package/payload/platform/plugins/business-assistant/references/scheduling.md +127 -0
  536. package/payload/platform/plugins/business-assistant/references/task-management.md +163 -0
  537. package/payload/platform/plugins/cloudflare/.claude-plugin/plugin.json +8 -0
  538. package/payload/platform/plugins/cloudflare/PLUGIN.md +61 -0
  539. package/payload/platform/plugins/cloudflare/mcp/dist/index.d.ts +2 -0
  540. package/payload/platform/plugins/cloudflare/mcp/dist/index.d.ts.map +1 -0
  541. package/payload/platform/plugins/cloudflare/mcp/dist/index.js +24 -0
  542. package/payload/platform/plugins/cloudflare/mcp/dist/index.js.map +1 -0
  543. package/payload/platform/plugins/cloudflare/mcp/dist/lib/cloudflared.d.ts +283 -0
  544. package/payload/platform/plugins/cloudflare/mcp/dist/lib/cloudflared.d.ts.map +1 -0
  545. package/payload/platform/plugins/cloudflare/mcp/dist/lib/cloudflared.js +1155 -0
  546. package/payload/platform/plugins/cloudflare/mcp/dist/lib/cloudflared.js.map +1 -0
  547. package/payload/platform/plugins/cloudflare/mcp/dist/lib/setup-orchestrator.d.ts +90 -0
  548. package/payload/platform/plugins/cloudflare/mcp/dist/lib/setup-orchestrator.d.ts.map +1 -0
  549. package/payload/platform/plugins/cloudflare/mcp/dist/lib/setup-orchestrator.js +551 -0
  550. package/payload/platform/plugins/cloudflare/mcp/dist/lib/setup-orchestrator.js.map +1 -0
  551. package/payload/platform/plugins/cloudflare/mcp/package.json +18 -0
  552. package/payload/platform/plugins/cloudflare/mcp/vitest.config.ts +10 -0
  553. package/payload/platform/plugins/cloudflare/references/api.md +166 -0
  554. package/payload/platform/plugins/cloudflare/references/d1-data-capture.md +157 -0
  555. package/payload/platform/plugins/cloudflare/references/dashboard-guide.md +173 -0
  556. package/payload/platform/plugins/cloudflare/references/hosting-sites.md +66 -0
  557. package/payload/platform/plugins/cloudflare/references/manual-setup.md +633 -0
  558. package/payload/platform/plugins/cloudflare/references/reset-guide.md +119 -0
  559. package/payload/platform/plugins/cloudflare/references/serving-published-sites.md +73 -0
  560. package/payload/platform/plugins/cloudflare/skills/cloudflare/SKILL.md +72 -0
  561. package/payload/platform/plugins/contacts/.claude-plugin/plugin.json +17 -0
  562. package/payload/platform/plugins/contacts/PLUGIN.md +62 -0
  563. package/payload/platform/plugins/contacts/mcp/dist/index.d.ts +2 -0
  564. package/payload/platform/plugins/contacts/mcp/dist/index.d.ts.map +1 -0
  565. package/payload/platform/plugins/contacts/mcp/dist/index.js +467 -0
  566. package/payload/platform/plugins/contacts/mcp/dist/index.js.map +1 -0
  567. package/payload/platform/plugins/contacts/mcp/dist/lib/neo4j.d.ts +5 -0
  568. package/payload/platform/plugins/contacts/mcp/dist/lib/neo4j.d.ts.map +1 -0
  569. package/payload/platform/plugins/contacts/mcp/dist/lib/neo4j.js +40 -0
  570. package/payload/platform/plugins/contacts/mcp/dist/lib/neo4j.js.map +1 -0
  571. package/payload/platform/plugins/contacts/mcp/dist/lib/resolve-person.d.ts +33 -0
  572. package/payload/platform/plugins/contacts/mcp/dist/lib/resolve-person.d.ts.map +1 -0
  573. package/payload/platform/plugins/contacts/mcp/dist/lib/resolve-person.js +53 -0
  574. package/payload/platform/plugins/contacts/mcp/dist/lib/resolve-person.js.map +1 -0
  575. package/payload/platform/plugins/contacts/mcp/dist/tools/contact-create.d.ts +23 -0
  576. package/payload/platform/plugins/contacts/mcp/dist/tools/contact-create.d.ts.map +1 -0
  577. package/payload/platform/plugins/contacts/mcp/dist/tools/contact-create.js +123 -0
  578. package/payload/platform/plugins/contacts/mcp/dist/tools/contact-create.js.map +1 -0
  579. package/payload/platform/plugins/contacts/mcp/dist/tools/contact-delete.d.ts +28 -0
  580. package/payload/platform/plugins/contacts/mcp/dist/tools/contact-delete.d.ts.map +1 -0
  581. package/payload/platform/plugins/contacts/mcp/dist/tools/contact-delete.js +39 -0
  582. package/payload/platform/plugins/contacts/mcp/dist/tools/contact-delete.js.map +1 -0
  583. package/payload/platform/plugins/contacts/mcp/dist/tools/contact-erase.d.ts +52 -0
  584. package/payload/platform/plugins/contacts/mcp/dist/tools/contact-erase.d.ts.map +1 -0
  585. package/payload/platform/plugins/contacts/mcp/dist/tools/contact-erase.js +181 -0
  586. package/payload/platform/plugins/contacts/mcp/dist/tools/contact-erase.js.map +1 -0
  587. package/payload/platform/plugins/contacts/mcp/dist/tools/contact-export.d.ts +52 -0
  588. package/payload/platform/plugins/contacts/mcp/dist/tools/contact-export.d.ts.map +1 -0
  589. package/payload/platform/plugins/contacts/mcp/dist/tools/contact-export.js +122 -0
  590. package/payload/platform/plugins/contacts/mcp/dist/tools/contact-export.js.map +1 -0
  591. package/payload/platform/plugins/contacts/mcp/dist/tools/contact-list.d.ts +23 -0
  592. package/payload/platform/plugins/contacts/mcp/dist/tools/contact-list.d.ts.map +1 -0
  593. package/payload/platform/plugins/contacts/mcp/dist/tools/contact-list.js +49 -0
  594. package/payload/platform/plugins/contacts/mcp/dist/tools/contact-list.js.map +1 -0
  595. package/payload/platform/plugins/contacts/mcp/dist/tools/contact-lookup.d.ts +21 -0
  596. package/payload/platform/plugins/contacts/mcp/dist/tools/contact-lookup.d.ts.map +1 -0
  597. package/payload/platform/plugins/contacts/mcp/dist/tools/contact-lookup.js +70 -0
  598. package/payload/platform/plugins/contacts/mcp/dist/tools/contact-lookup.js.map +1 -0
  599. package/payload/platform/plugins/contacts/mcp/dist/tools/contact-update.d.ts +14 -0
  600. package/payload/platform/plugins/contacts/mcp/dist/tools/contact-update.d.ts.map +1 -0
  601. package/payload/platform/plugins/contacts/mcp/dist/tools/contact-update.js +43 -0
  602. package/payload/platform/plugins/contacts/mcp/dist/tools/contact-update.js.map +1 -0
  603. package/payload/platform/plugins/contacts/mcp/dist/tools/group-create.d.ts +18 -0
  604. package/payload/platform/plugins/contacts/mcp/dist/tools/group-create.d.ts.map +1 -0
  605. package/payload/platform/plugins/contacts/mcp/dist/tools/group-create.js +95 -0
  606. package/payload/platform/plugins/contacts/mcp/dist/tools/group-create.js.map +1 -0
  607. package/payload/platform/plugins/contacts/mcp/dist/tools/group-manage.d.ts +15 -0
  608. package/payload/platform/plugins/contacts/mcp/dist/tools/group-manage.d.ts.map +1 -0
  609. package/payload/platform/plugins/contacts/mcp/dist/tools/group-manage.js +72 -0
  610. package/payload/platform/plugins/contacts/mcp/dist/tools/group-manage.js.map +1 -0
  611. package/payload/platform/plugins/contacts/mcp/package.json +19 -0
  612. package/payload/platform/plugins/deep-research/.claude-plugin/plugin.json +8 -0
  613. package/payload/platform/plugins/deep-research/PLUGIN.md +19 -0
  614. package/payload/platform/plugins/deep-research/recipes/README.md +36 -0
  615. package/payload/platform/plugins/deep-research/skills/academic-verify/SKILL.md +75 -0
  616. package/payload/platform/plugins/deep-research/skills/book-mirror/SKILL.md +68 -0
  617. package/payload/platform/plugins/deep-research/skills/data-research/SKILL.md +108 -0
  618. package/payload/platform/plugins/deep-research/skills/deep-research/SKILL.md +46 -0
  619. package/payload/platform/plugins/deep-research/skills/deep-research/references/citation-styles.md +52 -0
  620. package/payload/platform/plugins/deep-research/skills/deep-research/references/research-modes.md +22 -0
  621. package/payload/platform/plugins/deep-research/skills/deep-research/references/search-strategy.md +24 -0
  622. package/payload/platform/plugins/deep-research/skills/strategic-reading/SKILL.md +69 -0
  623. package/payload/platform/plugins/docs/.claude-plugin/plugin.json +8 -0
  624. package/payload/platform/plugins/docs/PLUGIN.md +58 -0
  625. package/payload/platform/plugins/docs/references/access-control.md +84 -0
  626. package/payload/platform/plugins/docs/references/admin-identity-gate.md +81 -0
  627. package/payload/platform/plugins/docs/references/admin-session.md +177 -0
  628. package/payload/platform/plugins/docs/references/admin-ui.md +266 -0
  629. package/payload/platform/plugins/docs/references/aeo.md +87 -0
  630. package/payload/platform/plugins/docs/references/attachments.md +44 -0
  631. package/payload/platform/plugins/docs/references/cloudflare.md +102 -0
  632. package/payload/platform/plugins/docs/references/contacts-guide.md +94 -0
  633. package/payload/platform/plugins/docs/references/deployment.md +303 -0
  634. package/payload/platform/plugins/docs/references/getting-started.md +82 -0
  635. package/payload/platform/plugins/docs/references/graph.md +163 -0
  636. package/payload/platform/plugins/docs/references/internals.md +539 -0
  637. package/payload/platform/plugins/docs/references/investigate-and-task-skills.md +9 -0
  638. package/payload/platform/plugins/docs/references/linkedin-extension.md +49 -0
  639. package/payload/platform/plugins/docs/references/memory-guide.md +163 -0
  640. package/payload/platform/plugins/docs/references/neo4j.md +63 -0
  641. package/payload/platform/plugins/docs/references/outlook-guide.md +69 -0
  642. package/payload/platform/plugins/docs/references/platform.md +193 -0
  643. package/payload/platform/plugins/docs/references/plugins-guide.md +188 -0
  644. package/payload/platform/plugins/docs/references/projects-guide.md +94 -0
  645. package/payload/platform/plugins/docs/references/samba.md +80 -0
  646. package/payload/platform/plugins/docs/references/session-retrospective.md +14 -0
  647. package/payload/platform/plugins/docs/references/settings.md +82 -0
  648. package/payload/platform/plugins/docs/references/slides.md +31 -0
  649. package/payload/platform/plugins/docs/references/telegram-guide.md +58 -0
  650. package/payload/platform/plugins/docs/references/troubleshooting.md +289 -0
  651. package/payload/platform/plugins/docs/references/visitor-graph.md +83 -0
  652. package/payload/platform/plugins/docs/references/voice-mirror-guide.md +64 -0
  653. package/payload/platform/plugins/docs/superpowers/plans/2026-06-01-memory-edge.md +589 -0
  654. package/payload/platform/plugins/email/.claude-plugin/plugin.json +17 -0
  655. package/payload/platform/plugins/email/PLUGIN.md +98 -0
  656. package/payload/platform/plugins/email/mcp/dist/index.d.ts +2 -0
  657. package/payload/platform/plugins/email/mcp/dist/index.d.ts.map +1 -0
  658. package/payload/platform/plugins/email/mcp/dist/index.js +381 -0
  659. package/payload/platform/plugins/email/mcp/dist/index.js.map +1 -0
  660. package/payload/platform/plugins/email/mcp/dist/lib/attachment-archive.d.ts +39 -0
  661. package/payload/platform/plugins/email/mcp/dist/lib/attachment-archive.d.ts.map +1 -0
  662. package/payload/platform/plugins/email/mcp/dist/lib/attachment-archive.js +0 -0
  663. package/payload/platform/plugins/email/mcp/dist/lib/attachment-archive.js.map +1 -0
  664. package/payload/platform/plugins/email/mcp/dist/lib/attachment-resolve.d.ts +19 -0
  665. package/payload/platform/plugins/email/mcp/dist/lib/attachment-resolve.d.ts.map +1 -0
  666. package/payload/platform/plugins/email/mcp/dist/lib/attachment-resolve.js +64 -0
  667. package/payload/platform/plugins/email/mcp/dist/lib/attachment-resolve.js.map +1 -0
  668. package/payload/platform/plugins/email/mcp/dist/lib/claude-bridge.d.ts +17 -0
  669. package/payload/platform/plugins/email/mcp/dist/lib/claude-bridge.d.ts.map +1 -0
  670. package/payload/platform/plugins/email/mcp/dist/lib/claude-bridge.js +186 -0
  671. package/payload/platform/plugins/email/mcp/dist/lib/claude-bridge.js.map +1 -0
  672. package/payload/platform/plugins/email/mcp/dist/lib/conversation-archive-dispatch.d.ts +30 -0
  673. package/payload/platform/plugins/email/mcp/dist/lib/conversation-archive-dispatch.d.ts.map +1 -0
  674. package/payload/platform/plugins/email/mcp/dist/lib/conversation-archive-dispatch.js +305 -0
  675. package/payload/platform/plugins/email/mcp/dist/lib/conversation-archive-dispatch.js.map +1 -0
  676. package/payload/platform/plugins/email/mcp/dist/lib/conversation-archive-lookup.d.ts +19 -0
  677. package/payload/platform/plugins/email/mcp/dist/lib/conversation-archive-lookup.d.ts.map +1 -0
  678. package/payload/platform/plugins/email/mcp/dist/lib/conversation-archive-lookup.js +51 -0
  679. package/payload/platform/plugins/email/mcp/dist/lib/conversation-archive-lookup.js.map +1 -0
  680. package/payload/platform/plugins/email/mcp/dist/lib/credentials.d.ts +89 -0
  681. package/payload/platform/plugins/email/mcp/dist/lib/credentials.d.ts.map +1 -0
  682. package/payload/platform/plugins/email/mcp/dist/lib/credentials.js +245 -0
  683. package/payload/platform/plugins/email/mcp/dist/lib/credentials.js.map +1 -0
  684. package/payload/platform/plugins/email/mcp/dist/lib/embedding.d.ts +2 -0
  685. package/payload/platform/plugins/email/mcp/dist/lib/embedding.d.ts.map +1 -0
  686. package/payload/platform/plugins/email/mcp/dist/lib/embedding.js +24 -0
  687. package/payload/platform/plugins/email/mcp/dist/lib/embedding.js.map +1 -0
  688. package/payload/platform/plugins/email/mcp/dist/lib/graph.d.ts +29 -0
  689. package/payload/platform/plugins/email/mcp/dist/lib/graph.d.ts.map +1 -0
  690. package/payload/platform/plugins/email/mcp/dist/lib/graph.js +18 -0
  691. package/payload/platform/plugins/email/mcp/dist/lib/graph.js.map +1 -0
  692. package/payload/platform/plugins/email/mcp/dist/lib/imap.d.ts +266 -0
  693. package/payload/platform/plugins/email/mcp/dist/lib/imap.d.ts.map +1 -0
  694. package/payload/platform/plugins/email/mcp/dist/lib/imap.js +770 -0
  695. package/payload/platform/plugins/email/mcp/dist/lib/imap.js.map +1 -0
  696. package/payload/platform/plugins/email/mcp/dist/lib/ingest-batch.d.ts +23 -0
  697. package/payload/platform/plugins/email/mcp/dist/lib/ingest-batch.d.ts.map +1 -0
  698. package/payload/platform/plugins/email/mcp/dist/lib/ingest-batch.js +15 -0
  699. package/payload/platform/plugins/email/mcp/dist/lib/ingest-batch.js.map +1 -0
  700. package/payload/platform/plugins/email/mcp/dist/lib/neo4j.d.ts +5 -0
  701. package/payload/platform/plugins/email/mcp/dist/lib/neo4j.d.ts.map +1 -0
  702. package/payload/platform/plugins/email/mcp/dist/lib/neo4j.js +40 -0
  703. package/payload/platform/plugins/email/mcp/dist/lib/neo4j.js.map +1 -0
  704. package/payload/platform/plugins/email/mcp/dist/lib/providers.d.ts +60 -0
  705. package/payload/platform/plugins/email/mcp/dist/lib/providers.d.ts.map +1 -0
  706. package/payload/platform/plugins/email/mcp/dist/lib/providers.js +675 -0
  707. package/payload/platform/plugins/email/mcp/dist/lib/providers.js.map +1 -0
  708. package/payload/platform/plugins/email/mcp/dist/lib/screening.d.ts +29 -0
  709. package/payload/platform/plugins/email/mcp/dist/lib/screening.d.ts.map +1 -0
  710. package/payload/platform/plugins/email/mcp/dist/lib/screening.js +105 -0
  711. package/payload/platform/plugins/email/mcp/dist/lib/screening.js.map +1 -0
  712. package/payload/platform/plugins/email/mcp/dist/lib/smtp.d.ts +25 -0
  713. package/payload/platform/plugins/email/mcp/dist/lib/smtp.d.ts.map +1 -0
  714. package/payload/platform/plugins/email/mcp/dist/lib/smtp.js +78 -0
  715. package/payload/platform/plugins/email/mcp/dist/lib/smtp.js.map +1 -0
  716. package/payload/platform/plugins/email/mcp/dist/scripts/email-auto-respond.d.ts +38 -0
  717. package/payload/platform/plugins/email/mcp/dist/scripts/email-auto-respond.d.ts.map +1 -0
  718. package/payload/platform/plugins/email/mcp/dist/scripts/email-auto-respond.js +817 -0
  719. package/payload/platform/plugins/email/mcp/dist/scripts/email-auto-respond.js.map +1 -0
  720. package/payload/platform/plugins/email/mcp/dist/scripts/email-fetch.d.ts +30 -0
  721. package/payload/platform/plugins/email/mcp/dist/scripts/email-fetch.d.ts.map +1 -0
  722. package/payload/platform/plugins/email/mcp/dist/scripts/email-fetch.js +215 -0
  723. package/payload/platform/plugins/email/mcp/dist/scripts/email-fetch.js.map +1 -0
  724. package/payload/platform/plugins/email/mcp/dist/scripts/send-transactional.d.ts +2 -0
  725. package/payload/platform/plugins/email/mcp/dist/scripts/send-transactional.d.ts.map +1 -0
  726. package/payload/platform/plugins/email/mcp/dist/scripts/send-transactional.js +56 -0
  727. package/payload/platform/plugins/email/mcp/dist/scripts/send-transactional.js.map +1 -0
  728. package/payload/platform/plugins/email/mcp/dist/tools/email-auto-respond-config.d.ts +19 -0
  729. package/payload/platform/plugins/email/mcp/dist/tools/email-auto-respond-config.d.ts.map +1 -0
  730. package/payload/platform/plugins/email/mcp/dist/tools/email-auto-respond-config.js +151 -0
  731. package/payload/platform/plugins/email/mcp/dist/tools/email-auto-respond-config.js.map +1 -0
  732. package/payload/platform/plugins/email/mcp/dist/tools/email-classify.d.ts +6 -0
  733. package/payload/platform/plugins/email/mcp/dist/tools/email-classify.d.ts.map +1 -0
  734. package/payload/platform/plugins/email/mcp/dist/tools/email-classify.js +89 -0
  735. package/payload/platform/plugins/email/mcp/dist/tools/email-classify.js.map +1 -0
  736. package/payload/platform/plugins/email/mcp/dist/tools/email-fetch.d.ts +15 -0
  737. package/payload/platform/plugins/email/mcp/dist/tools/email-fetch.d.ts.map +1 -0
  738. package/payload/platform/plugins/email/mcp/dist/tools/email-fetch.js +54 -0
  739. package/payload/platform/plugins/email/mcp/dist/tools/email-fetch.js.map +1 -0
  740. package/payload/platform/plugins/email/mcp/dist/tools/email-graph-query.d.ts +24 -0
  741. package/payload/platform/plugins/email/mcp/dist/tools/email-graph-query.d.ts.map +1 -0
  742. package/payload/platform/plugins/email/mcp/dist/tools/email-graph-query.js +293 -0
  743. package/payload/platform/plugins/email/mcp/dist/tools/email-graph-query.js.map +1 -0
  744. package/payload/platform/plugins/email/mcp/dist/tools/email-ingest.d.ts +20 -0
  745. package/payload/platform/plugins/email/mcp/dist/tools/email-ingest.d.ts.map +1 -0
  746. package/payload/platform/plugins/email/mcp/dist/tools/email-ingest.js +191 -0
  747. package/payload/platform/plugins/email/mcp/dist/tools/email-ingest.js.map +1 -0
  748. package/payload/platform/plugins/email/mcp/dist/tools/email-otp-extract.d.ts +15 -0
  749. package/payload/platform/plugins/email/mcp/dist/tools/email-otp-extract.d.ts.map +1 -0
  750. package/payload/platform/plugins/email/mcp/dist/tools/email-otp-extract.js +142 -0
  751. package/payload/platform/plugins/email/mcp/dist/tools/email-otp-extract.js.map +1 -0
  752. package/payload/platform/plugins/email/mcp/dist/tools/email-read.d.ts +14 -0
  753. package/payload/platform/plugins/email/mcp/dist/tools/email-read.d.ts.map +1 -0
  754. package/payload/platform/plugins/email/mcp/dist/tools/email-read.js +84 -0
  755. package/payload/platform/plugins/email/mcp/dist/tools/email-read.js.map +1 -0
  756. package/payload/platform/plugins/email/mcp/dist/tools/email-reply.d.ts +11 -0
  757. package/payload/platform/plugins/email/mcp/dist/tools/email-reply.d.ts.map +1 -0
  758. package/payload/platform/plugins/email/mcp/dist/tools/email-reply.js +74 -0
  759. package/payload/platform/plugins/email/mcp/dist/tools/email-reply.js.map +1 -0
  760. package/payload/platform/plugins/email/mcp/dist/tools/email-search.d.ts +15 -0
  761. package/payload/platform/plugins/email/mcp/dist/tools/email-search.d.ts.map +1 -0
  762. package/payload/platform/plugins/email/mcp/dist/tools/email-search.js +67 -0
  763. package/payload/platform/plugins/email/mcp/dist/tools/email-search.js.map +1 -0
  764. package/payload/platform/plugins/email/mcp/dist/tools/email-send.d.ts +11 -0
  765. package/payload/platform/plugins/email/mcp/dist/tools/email-send.d.ts.map +1 -0
  766. package/payload/platform/plugins/email/mcp/dist/tools/email-send.js +37 -0
  767. package/payload/platform/plugins/email/mcp/dist/tools/email-send.js.map +1 -0
  768. package/payload/platform/plugins/email/mcp/dist/tools/email-setup.d.ts +22 -0
  769. package/payload/platform/plugins/email/mcp/dist/tools/email-setup.d.ts.map +1 -0
  770. package/payload/platform/plugins/email/mcp/dist/tools/email-setup.js +162 -0
  771. package/payload/platform/plugins/email/mcp/dist/tools/email-setup.js.map +1 -0
  772. package/payload/platform/plugins/email/mcp/dist/tools/email-status.d.ts +6 -0
  773. package/payload/platform/plugins/email/mcp/dist/tools/email-status.d.ts.map +1 -0
  774. package/payload/platform/plugins/email/mcp/dist/tools/email-status.js +43 -0
  775. package/payload/platform/plugins/email/mcp/dist/tools/email-status.js.map +1 -0
  776. package/payload/platform/plugins/email/mcp/package.json +22 -0
  777. package/payload/platform/plugins/email/references/email-reference.md +144 -0
  778. package/payload/platform/plugins/email/skills/email-composition/SKILL.md +184 -0
  779. package/payload/platform/plugins/email/skills/email-ingest/SKILL.md +87 -0
  780. package/payload/platform/plugins/graph/.claude-plugin/plugin.json +8 -0
  781. package/payload/platform/plugins/graph/PLUGIN.md +37 -0
  782. package/payload/platform/plugins/graph-viewer/.claude-plugin/plugin.json +8 -0
  783. package/payload/platform/plugins/graph-viewer/PLUGIN.md +56 -0
  784. package/payload/platform/plugins/graph-viewer/mcp/dist/index.d.ts +7 -0
  785. package/payload/platform/plugins/graph-viewer/mcp/dist/index.d.ts.map +1 -0
  786. package/payload/platform/plugins/graph-viewer/mcp/dist/index.js +70 -0
  787. package/payload/platform/plugins/graph-viewer/mcp/dist/index.js.map +1 -0
  788. package/payload/platform/plugins/graph-viewer/mcp/dist/lib/neo4j.d.ts +5 -0
  789. package/payload/platform/plugins/graph-viewer/mcp/dist/lib/neo4j.d.ts.map +1 -0
  790. package/payload/platform/plugins/graph-viewer/mcp/dist/lib/neo4j.js +43 -0
  791. package/payload/platform/plugins/graph-viewer/mcp/dist/lib/neo4j.js.map +1 -0
  792. package/payload/platform/plugins/graph-viewer/mcp/dist/render/draw.d.ts +28 -0
  793. package/payload/platform/plugins/graph-viewer/mcp/dist/render/draw.d.ts.map +1 -0
  794. package/payload/platform/plugins/graph-viewer/mcp/dist/render/draw.js +73 -0
  795. package/payload/platform/plugins/graph-viewer/mcp/dist/render/draw.js.map +1 -0
  796. package/payload/platform/plugins/graph-viewer/mcp/dist/render/layout.d.ts +40 -0
  797. package/payload/platform/plugins/graph-viewer/mcp/dist/render/layout.d.ts.map +1 -0
  798. package/payload/platform/plugins/graph-viewer/mcp/dist/render/layout.js +117 -0
  799. package/payload/platform/plugins/graph-viewer/mcp/dist/render/layout.js.map +1 -0
  800. package/payload/platform/plugins/graph-viewer/mcp/dist/tools/graph-render.d.ts +45 -0
  801. package/payload/platform/plugins/graph-viewer/mcp/dist/tools/graph-render.d.ts.map +1 -0
  802. package/payload/platform/plugins/graph-viewer/mcp/dist/tools/graph-render.js +198 -0
  803. package/payload/platform/plugins/graph-viewer/mcp/dist/tools/graph-render.js.map +1 -0
  804. package/payload/platform/plugins/graph-viewer/mcp/package.json +25 -0
  805. package/payload/platform/plugins/graph-viewer/mcp/vitest.config.ts +8 -0
  806. package/payload/platform/plugins/graph-viewer/skills/render-graph/SKILL.md +38 -0
  807. package/payload/platform/plugins/linkedin-extension/.claude-plugin/plugin.json +8 -0
  808. package/payload/platform/plugins/linkedin-extension/PLUGIN.md +58 -0
  809. package/payload/platform/plugins/linkedin-extension/extension/README.md +44 -0
  810. package/payload/platform/plugins/linkedin-extension/extension/__tests__/fixtures/profile.html +34 -0
  811. package/payload/platform/plugins/linkedin-extension/extension/__tests__/fixtures/thread.html +36 -0
  812. package/payload/platform/plugins/linkedin-extension/extension/assets/pill.css +52 -0
  813. package/payload/platform/plugins/linkedin-extension/extension/background/sw.js +60 -0
  814. package/payload/platform/plugins/linkedin-extension/extension/content/extractors.js +127 -0
  815. package/payload/platform/plugins/linkedin-extension/extension/content/profile.js +82 -0
  816. package/payload/platform/plugins/linkedin-extension/extension/content/thread.js +84 -0
  817. package/payload/platform/plugins/linkedin-extension/extension/manifest.json +32 -0
  818. package/payload/platform/plugins/linkedin-extension/extension/options/options.html +33 -0
  819. package/payload/platform/plugins/linkedin-extension/extension/options/options.js +30 -0
  820. package/payload/platform/plugins/linkedin-extension/skills/linkedin-extension/SKILL.md +91 -0
  821. package/payload/platform/plugins/linkedin-import/.claude-plugin/plugin.json +8 -0
  822. package/payload/platform/plugins/linkedin-import/PLUGIN.md +27 -0
  823. package/payload/platform/plugins/linkedin-import/skills/linkedin-import/SKILL.md +119 -0
  824. package/payload/platform/plugins/linkedin-import/skills/linkedin-import/references/connections.md +135 -0
  825. package/payload/platform/plugins/linkedin-import/skills/linkedin-import/references/profile.md +94 -0
  826. package/payload/platform/plugins/memory/.claude-plugin/plugin.json +17 -0
  827. package/payload/platform/plugins/memory/PLUGIN.md +291 -0
  828. package/payload/platform/plugins/memory/bin/conversation-archive-ingest.mjs +616 -0
  829. package/payload/platform/plugins/memory/bin/conversation-archive-ingest.sh +106 -0
  830. package/payload/platform/plugins/memory/mcp/dist/index.d.ts +2 -0
  831. package/payload/platform/plugins/memory/mcp/dist/index.d.ts.map +1 -0
  832. package/payload/platform/plugins/memory/mcp/dist/index.js +2522 -0
  833. package/payload/platform/plugins/memory/mcp/dist/index.js.map +1 -0
  834. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/compiled-truth-revision.test.d.ts +2 -0
  835. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/compiled-truth-revision.test.d.ts.map +1 -0
  836. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/compiled-truth-revision.test.js +68 -0
  837. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/compiled-truth-revision.test.js.map +1 -0
  838. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/compiled-truth-rewriter-operator-hint.test.d.ts +2 -0
  839. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/compiled-truth-rewriter-operator-hint.test.d.ts.map +1 -0
  840. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/compiled-truth-rewriter-operator-hint.test.js +90 -0
  841. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/compiled-truth-rewriter-operator-hint.test.js.map +1 -0
  842. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/document-sectioniser.test.d.ts +2 -0
  843. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/document-sectioniser.test.d.ts.map +1 -0
  844. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/document-sectioniser.test.js +41 -0
  845. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/document-sectioniser.test.js.map +1 -0
  846. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/graph-write-embed-net.test.d.ts +2 -0
  847. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/graph-write-embed-net.test.d.ts.map +1 -0
  848. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/graph-write-embed-net.test.js +90 -0
  849. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/graph-write-embed-net.test.js.map +1 -0
  850. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/graph-write-gate-label.test.d.ts +2 -0
  851. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/graph-write-gate-label.test.d.ts.map +1 -0
  852. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/graph-write-gate-label.test.js +30 -0
  853. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/graph-write-gate-label.test.js.map +1 -0
  854. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/graph-write-gate-property.test.d.ts +2 -0
  855. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/graph-write-gate-property.test.d.ts.map +1 -0
  856. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/graph-write-gate-property.test.js +25 -0
  857. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/graph-write-gate-property.test.js.map +1 -0
  858. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/label-delete-gate.test.d.ts +2 -0
  859. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/label-delete-gate.test.d.ts.map +1 -0
  860. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/label-delete-gate.test.js +62 -0
  861. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/label-delete-gate.test.js.map +1 -0
  862. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/label-origin-gate.test.d.ts +2 -0
  863. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/label-origin-gate.test.d.ts.map +1 -0
  864. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/label-origin-gate.test.js +50 -0
  865. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/label-origin-gate.test.js.map +1 -0
  866. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/live-schema-source.test.d.ts +2 -0
  867. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/live-schema-source.test.d.ts.map +1 -0
  868. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/live-schema-source.test.js +154 -0
  869. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/live-schema-source.test.js.map +1 -0
  870. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/llm-classifier.test.d.ts +2 -0
  871. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/llm-classifier.test.d.ts.map +1 -0
  872. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/llm-classifier.test.js +226 -0
  873. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/llm-classifier.test.js.map +1 -0
  874. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/neo4j-password-path.test.d.ts +2 -0
  875. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/neo4j-password-path.test.d.ts.map +1 -0
  876. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/neo4j-password-path.test.js +57 -0
  877. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/neo4j-password-path.test.js.map +1 -0
  878. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/phase-backlinks.test.d.ts +2 -0
  879. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/phase-backlinks.test.d.ts.map +1 -0
  880. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/phase-backlinks.test.js +24 -0
  881. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/phase-backlinks.test.js.map +1 -0
  882. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/phase-prune-revisions.test.d.ts +2 -0
  883. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/phase-prune-revisions.test.d.ts.map +1 -0
  884. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/phase-prune-revisions.test.js +51 -0
  885. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/phase-prune-revisions.test.js.map +1 -0
  886. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/phase-tag-normalisation.test.d.ts +2 -0
  887. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/phase-tag-normalisation.test.d.ts.map +1 -0
  888. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/phase-tag-normalisation.test.js +51 -0
  889. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/phase-tag-normalisation.test.js.map +1 -0
  890. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/relative-date.test.d.ts +2 -0
  891. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/relative-date.test.d.ts.map +1 -0
  892. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/relative-date.test.js +68 -0
  893. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/relative-date.test.js.map +1 -0
  894. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/resolve-active-vertical.test.d.ts +2 -0
  895. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/resolve-active-vertical.test.d.ts.map +1 -0
  896. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/resolve-active-vertical.test.js +116 -0
  897. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/resolve-active-vertical.test.js.map +1 -0
  898. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/schema-cypher-drift.test.d.ts +2 -0
  899. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/schema-cypher-drift.test.d.ts.map +1 -0
  900. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/schema-cypher-drift.test.js +67 -0
  901. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/schema-cypher-drift.test.js.map +1 -0
  902. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/schema-loader.test.d.ts +2 -0
  903. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/schema-loader.test.d.ts.map +1 -0
  904. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/schema-loader.test.js +217 -0
  905. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/schema-loader.test.js.map +1 -0
  906. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/schema-validator.test.d.ts +2 -0
  907. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/schema-validator.test.d.ts.map +1 -0
  908. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/schema-validator.test.js +640 -0
  909. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/schema-validator.test.js.map +1 -0
  910. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/timeline-extractor.test.d.ts +2 -0
  911. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/timeline-extractor.test.d.ts.map +1 -0
  912. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/timeline-extractor.test.js +111 -0
  913. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/timeline-extractor.test.js.map +1 -0
  914. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/typed-edge-schema.test.d.ts +2 -0
  915. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/typed-edge-schema.test.d.ts.map +1 -0
  916. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/typed-edge-schema.test.js +79 -0
  917. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/typed-edge-schema.test.js.map +1 -0
  918. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/vector-indexed-labels-drift.test.d.ts +2 -0
  919. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/vector-indexed-labels-drift.test.d.ts.map +1 -0
  920. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/vector-indexed-labels-drift.test.js +27 -0
  921. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/vector-indexed-labels-drift.test.js.map +1 -0
  922. package/payload/platform/plugins/memory/mcp/dist/lib/attachments.d.ts +37 -0
  923. package/payload/platform/plugins/memory/mcp/dist/lib/attachments.d.ts.map +1 -0
  924. package/payload/platform/plugins/memory/mcp/dist/lib/attachments.js +69 -0
  925. package/payload/platform/plugins/memory/mcp/dist/lib/attachments.js.map +1 -0
  926. package/payload/platform/plugins/memory/mcp/dist/lib/compiled-truth-revision.d.ts +91 -0
  927. package/payload/platform/plugins/memory/mcp/dist/lib/compiled-truth-revision.d.ts.map +1 -0
  928. package/payload/platform/plugins/memory/mcp/dist/lib/compiled-truth-revision.js +39 -0
  929. package/payload/platform/plugins/memory/mcp/dist/lib/compiled-truth-revision.js.map +1 -0
  930. package/payload/platform/plugins/memory/mcp/dist/lib/compiled-truth-rewriter.d.ts +60 -0
  931. package/payload/platform/plugins/memory/mcp/dist/lib/compiled-truth-rewriter.d.ts.map +1 -0
  932. package/payload/platform/plugins/memory/mcp/dist/lib/compiled-truth-rewriter.js +169 -0
  933. package/payload/platform/plugins/memory/mcp/dist/lib/compiled-truth-rewriter.js.map +1 -0
  934. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-normalisers/email.d.ts +3 -0
  935. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-normalisers/email.d.ts.map +1 -0
  936. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-normalisers/email.js +61 -0
  937. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-normalisers/email.js.map +1 -0
  938. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-normalisers/index.d.ts +7 -0
  939. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-normalisers/index.d.ts.map +1 -0
  940. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-normalisers/index.js +36 -0
  941. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-normalisers/index.js.map +1 -0
  942. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-normalisers/timestamp-scanner.d.ts +49 -0
  943. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-normalisers/timestamp-scanner.d.ts.map +1 -0
  944. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-normalisers/timestamp-scanner.js +35 -0
  945. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-normalisers/timestamp-scanner.js.map +1 -0
  946. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-normalisers/types.d.ts +47 -0
  947. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-normalisers/types.d.ts.map +1 -0
  948. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-normalisers/types.js +38 -0
  949. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-normalisers/types.js.map +1 -0
  950. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-normalisers/whatsapp-text.d.ts +3 -0
  951. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-normalisers/whatsapp-text.d.ts.map +1 -0
  952. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-normalisers/whatsapp-text.js +155 -0
  953. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-normalisers/whatsapp-text.js.map +1 -0
  954. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-normalisers/x-dm.d.ts +3 -0
  955. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-normalisers/x-dm.d.ts.map +1 -0
  956. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-normalisers/x-dm.js +101 -0
  957. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-normalisers/x-dm.js.map +1 -0
  958. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-pipeline/delta-cursor.d.ts +11 -0
  959. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-pipeline/delta-cursor.d.ts.map +1 -0
  960. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-pipeline/delta-cursor.js +20 -0
  961. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-pipeline/delta-cursor.js.map +1 -0
  962. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-pipeline/derive-keys.d.ts +16 -0
  963. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-pipeline/derive-keys.d.ts.map +1 -0
  964. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-pipeline/derive-keys.js +43 -0
  965. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-pipeline/derive-keys.js.map +1 -0
  966. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-pipeline/sender-bind.d.ts +16 -0
  967. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-pipeline/sender-bind.d.ts.map +1 -0
  968. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-pipeline/sender-bind.js +60 -0
  969. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-pipeline/sender-bind.js.map +1 -0
  970. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-pipeline/sessionize.d.ts +9 -0
  971. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-pipeline/sessionize.d.ts.map +1 -0
  972. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-pipeline/sessionize.js +32 -0
  973. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-pipeline/sessionize.js.map +1 -0
  974. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-pipeline/to-turn-text.d.ts +3 -0
  975. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-pipeline/to-turn-text.d.ts.map +1 -0
  976. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-pipeline/to-turn-text.js +29 -0
  977. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-pipeline/to-turn-text.js.map +1 -0
  978. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-pipeline/turn-text-cache-path.d.ts +8 -0
  979. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-pipeline/turn-text-cache-path.d.ts.map +1 -0
  980. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-pipeline/turn-text-cache-path.js +27 -0
  981. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-pipeline/turn-text-cache-path.js.map +1 -0
  982. package/payload/platform/plugins/memory/mcp/dist/lib/document-chunker.d.ts +45 -0
  983. package/payload/platform/plugins/memory/mcp/dist/lib/document-chunker.d.ts.map +1 -0
  984. package/payload/platform/plugins/memory/mcp/dist/lib/document-chunker.js +125 -0
  985. package/payload/platform/plugins/memory/mcp/dist/lib/document-chunker.js.map +1 -0
  986. package/payload/platform/plugins/memory/mcp/dist/lib/document-hierarchy.d.ts +9 -0
  987. package/payload/platform/plugins/memory/mcp/dist/lib/document-hierarchy.d.ts.map +1 -0
  988. package/payload/platform/plugins/memory/mcp/dist/lib/document-hierarchy.js +61 -0
  989. package/payload/platform/plugins/memory/mcp/dist/lib/document-hierarchy.js.map +1 -0
  990. package/payload/platform/plugins/memory/mcp/dist/lib/document-sectioniser.d.ts +10 -0
  991. package/payload/platform/plugins/memory/mcp/dist/lib/document-sectioniser.d.ts.map +1 -0
  992. package/payload/platform/plugins/memory/mcp/dist/lib/document-sectioniser.js +47 -0
  993. package/payload/platform/plugins/memory/mcp/dist/lib/document-sectioniser.js.map +1 -0
  994. package/payload/platform/plugins/memory/mcp/dist/lib/dream-cycle/index.d.ts +44 -0
  995. package/payload/platform/plugins/memory/mcp/dist/lib/dream-cycle/index.d.ts.map +1 -0
  996. package/payload/platform/plugins/memory/mcp/dist/lib/dream-cycle/index.js +14 -0
  997. package/payload/platform/plugins/memory/mcp/dist/lib/dream-cycle/index.js.map +1 -0
  998. package/payload/platform/plugins/memory/mcp/dist/lib/dream-cycle/phase-backlinks.d.ts +15 -0
  999. package/payload/platform/plugins/memory/mcp/dist/lib/dream-cycle/phase-backlinks.d.ts.map +1 -0
  1000. package/payload/platform/plugins/memory/mcp/dist/lib/dream-cycle/phase-backlinks.js +37 -0
  1001. package/payload/platform/plugins/memory/mcp/dist/lib/dream-cycle/phase-backlinks.js.map +1 -0
  1002. package/payload/platform/plugins/memory/mcp/dist/lib/dream-cycle/phase-citation-audit.d.ts +3 -0
  1003. package/payload/platform/plugins/memory/mcp/dist/lib/dream-cycle/phase-citation-audit.d.ts.map +1 -0
  1004. package/payload/platform/plugins/memory/mcp/dist/lib/dream-cycle/phase-citation-audit.js +16 -0
  1005. package/payload/platform/plugins/memory/mcp/dist/lib/dream-cycle/phase-citation-audit.js.map +1 -0
  1006. package/payload/platform/plugins/memory/mcp/dist/lib/dream-cycle/phase-dead-edges.d.ts +19 -0
  1007. package/payload/platform/plugins/memory/mcp/dist/lib/dream-cycle/phase-dead-edges.d.ts.map +1 -0
  1008. package/payload/platform/plugins/memory/mcp/dist/lib/dream-cycle/phase-dead-edges.js +39 -0
  1009. package/payload/platform/plugins/memory/mcp/dist/lib/dream-cycle/phase-dead-edges.js.map +1 -0
  1010. package/payload/platform/plugins/memory/mcp/dist/lib/dream-cycle/phase-orphans.d.ts +19 -0
  1011. package/payload/platform/plugins/memory/mcp/dist/lib/dream-cycle/phase-orphans.d.ts.map +1 -0
  1012. package/payload/platform/plugins/memory/mcp/dist/lib/dream-cycle/phase-orphans.js +42 -0
  1013. package/payload/platform/plugins/memory/mcp/dist/lib/dream-cycle/phase-orphans.js.map +1 -0
  1014. package/payload/platform/plugins/memory/mcp/dist/lib/dream-cycle/phase-prune-revisions.d.ts +21 -0
  1015. package/payload/platform/plugins/memory/mcp/dist/lib/dream-cycle/phase-prune-revisions.d.ts.map +1 -0
  1016. package/payload/platform/plugins/memory/mcp/dist/lib/dream-cycle/phase-prune-revisions.js +27 -0
  1017. package/payload/platform/plugins/memory/mcp/dist/lib/dream-cycle/phase-prune-revisions.js.map +1 -0
  1018. package/payload/platform/plugins/memory/mcp/dist/lib/dream-cycle/phase-stale-truth.d.ts +18 -0
  1019. package/payload/platform/plugins/memory/mcp/dist/lib/dream-cycle/phase-stale-truth.d.ts.map +1 -0
  1020. package/payload/platform/plugins/memory/mcp/dist/lib/dream-cycle/phase-stale-truth.js +60 -0
  1021. package/payload/platform/plugins/memory/mcp/dist/lib/dream-cycle/phase-stale-truth.js.map +1 -0
  1022. package/payload/platform/plugins/memory/mcp/dist/lib/dream-cycle/phase-tag-normalisation.d.ts +25 -0
  1023. package/payload/platform/plugins/memory/mcp/dist/lib/dream-cycle/phase-tag-normalisation.d.ts.map +1 -0
  1024. package/payload/platform/plugins/memory/mcp/dist/lib/dream-cycle/phase-tag-normalisation.js +90 -0
  1025. package/payload/platform/plugins/memory/mcp/dist/lib/dream-cycle/phase-tag-normalisation.js.map +1 -0
  1026. package/payload/platform/plugins/memory/mcp/dist/lib/embeddings.d.ts +2 -0
  1027. package/payload/platform/plugins/memory/mcp/dist/lib/embeddings.d.ts.map +1 -0
  1028. package/payload/platform/plugins/memory/mcp/dist/lib/embeddings.js +6 -0
  1029. package/payload/platform/plugins/memory/mcp/dist/lib/embeddings.js.map +1 -0
  1030. package/payload/platform/plugins/memory/mcp/dist/lib/filter-token.d.ts +36 -0
  1031. package/payload/platform/plugins/memory/mcp/dist/lib/filter-token.d.ts.map +1 -0
  1032. package/payload/platform/plugins/memory/mcp/dist/lib/filter-token.js +86 -0
  1033. package/payload/platform/plugins/memory/mcp/dist/lib/filter-token.js.map +1 -0
  1034. package/payload/platform/plugins/memory/mcp/dist/lib/graph-prune.d.ts +41 -0
  1035. package/payload/platform/plugins/memory/mcp/dist/lib/graph-prune.d.ts.map +1 -0
  1036. package/payload/platform/plugins/memory/mcp/dist/lib/graph-prune.js +113 -0
  1037. package/payload/platform/plugins/memory/mcp/dist/lib/graph-prune.js.map +1 -0
  1038. package/payload/platform/plugins/memory/mcp/dist/lib/graph-write-gate.d.ts +76 -0
  1039. package/payload/platform/plugins/memory/mcp/dist/lib/graph-write-gate.d.ts.map +1 -0
  1040. package/payload/platform/plugins/memory/mcp/dist/lib/graph-write-gate.js +148 -0
  1041. package/payload/platform/plugins/memory/mcp/dist/lib/graph-write-gate.js.map +1 -0
  1042. package/payload/platform/plugins/memory/mcp/dist/lib/kd-classify-gate.d.ts +41 -0
  1043. package/payload/platform/plugins/memory/mcp/dist/lib/kd-classify-gate.d.ts.map +1 -0
  1044. package/payload/platform/plugins/memory/mcp/dist/lib/kd-classify-gate.js +69 -0
  1045. package/payload/platform/plugins/memory/mcp/dist/lib/kd-classify-gate.js.map +1 -0
  1046. package/payload/platform/plugins/memory/mcp/dist/lib/label-delete-gate.d.ts +18 -0
  1047. package/payload/platform/plugins/memory/mcp/dist/lib/label-delete-gate.d.ts.map +1 -0
  1048. package/payload/platform/plugins/memory/mcp/dist/lib/label-delete-gate.js +31 -0
  1049. package/payload/platform/plugins/memory/mcp/dist/lib/label-delete-gate.js.map +1 -0
  1050. package/payload/platform/plugins/memory/mcp/dist/lib/label-origin-gate.d.ts +18 -0
  1051. package/payload/platform/plugins/memory/mcp/dist/lib/label-origin-gate.d.ts.map +1 -0
  1052. package/payload/platform/plugins/memory/mcp/dist/lib/label-origin-gate.js +35 -0
  1053. package/payload/platform/plugins/memory/mcp/dist/lib/label-origin-gate.js.map +1 -0
  1054. package/payload/platform/plugins/memory/mcp/dist/lib/live-schema-source.d.ts +119 -0
  1055. package/payload/platform/plugins/memory/mcp/dist/lib/live-schema-source.d.ts.map +1 -0
  1056. package/payload/platform/plugins/memory/mcp/dist/lib/live-schema-source.js +208 -0
  1057. package/payload/platform/plugins/memory/mcp/dist/lib/live-schema-source.js.map +1 -0
  1058. package/payload/platform/plugins/memory/mcp/dist/lib/llm-classifier.d.ts +248 -0
  1059. package/payload/platform/plugins/memory/mcp/dist/lib/llm-classifier.d.ts.map +1 -0
  1060. package/payload/platform/plugins/memory/mcp/dist/lib/llm-classifier.js +824 -0
  1061. package/payload/platform/plugins/memory/mcp/dist/lib/llm-classifier.js.map +1 -0
  1062. package/payload/platform/plugins/memory/mcp/dist/lib/llm-ranker.d.ts +63 -0
  1063. package/payload/platform/plugins/memory/mcp/dist/lib/llm-ranker.d.ts.map +1 -0
  1064. package/payload/platform/plugins/memory/mcp/dist/lib/llm-ranker.js +210 -0
  1065. package/payload/platform/plugins/memory/mcp/dist/lib/llm-ranker.js.map +1 -0
  1066. package/payload/platform/plugins/memory/mcp/dist/lib/log-ingest.d.ts +65 -0
  1067. package/payload/platform/plugins/memory/mcp/dist/lib/log-ingest.d.ts.map +1 -0
  1068. package/payload/platform/plugins/memory/mcp/dist/lib/log-ingest.js +182 -0
  1069. package/payload/platform/plugins/memory/mcp/dist/lib/log-ingest.js.map +1 -0
  1070. package/payload/platform/plugins/memory/mcp/dist/lib/neo4j.d.ts +19 -0
  1071. package/payload/platform/plugins/memory/mcp/dist/lib/neo4j.d.ts.map +1 -0
  1072. package/payload/platform/plugins/memory/mcp/dist/lib/neo4j.js +76 -0
  1073. package/payload/platform/plugins/memory/mcp/dist/lib/neo4j.js.map +1 -0
  1074. package/payload/platform/plugins/memory/mcp/dist/lib/relative-date.d.ts +13 -0
  1075. package/payload/platform/plugins/memory/mcp/dist/lib/relative-date.d.ts.map +1 -0
  1076. package/payload/platform/plugins/memory/mcp/dist/lib/relative-date.js +191 -0
  1077. package/payload/platform/plugins/memory/mcp/dist/lib/relative-date.js.map +1 -0
  1078. package/payload/platform/plugins/memory/mcp/dist/lib/resolve-active-vertical.d.ts +33 -0
  1079. package/payload/platform/plugins/memory/mcp/dist/lib/resolve-active-vertical.d.ts.map +1 -0
  1080. package/payload/platform/plugins/memory/mcp/dist/lib/resolve-active-vertical.js +44 -0
  1081. package/payload/platform/plugins/memory/mcp/dist/lib/resolve-active-vertical.js.map +1 -0
  1082. package/payload/platform/plugins/memory/mcp/dist/lib/schema-loader.d.ts +141 -0
  1083. package/payload/platform/plugins/memory/mcp/dist/lib/schema-loader.d.ts.map +1 -0
  1084. package/payload/platform/plugins/memory/mcp/dist/lib/schema-loader.js +516 -0
  1085. package/payload/platform/plugins/memory/mcp/dist/lib/schema-loader.js.map +1 -0
  1086. package/payload/platform/plugins/memory/mcp/dist/lib/schema-validator.d.ts +92 -0
  1087. package/payload/platform/plugins/memory/mcp/dist/lib/schema-validator.d.ts.map +1 -0
  1088. package/payload/platform/plugins/memory/mcp/dist/lib/schema-validator.js +243 -0
  1089. package/payload/platform/plugins/memory/mcp/dist/lib/schema-validator.js.map +1 -0
  1090. package/payload/platform/plugins/memory/mcp/dist/lib/section-types.d.ts +127 -0
  1091. package/payload/platform/plugins/memory/mcp/dist/lib/section-types.d.ts.map +1 -0
  1092. package/payload/platform/plugins/memory/mcp/dist/lib/section-types.js +56 -0
  1093. package/payload/platform/plugins/memory/mcp/dist/lib/section-types.js.map +1 -0
  1094. package/payload/platform/plugins/memory/mcp/dist/lib/timeline-extractor.d.ts +19 -0
  1095. package/payload/platform/plugins/memory/mcp/dist/lib/timeline-extractor.d.ts.map +1 -0
  1096. package/payload/platform/plugins/memory/mcp/dist/lib/timeline-extractor.js +179 -0
  1097. package/payload/platform/plugins/memory/mcp/dist/lib/timeline-extractor.js.map +1 -0
  1098. package/payload/platform/plugins/memory/mcp/dist/lib/typed-edge-pass.d.ts +35 -0
  1099. package/payload/platform/plugins/memory/mcp/dist/lib/typed-edge-pass.d.ts.map +1 -0
  1100. package/payload/platform/plugins/memory/mcp/dist/lib/typed-edge-pass.js +28 -0
  1101. package/payload/platform/plugins/memory/mcp/dist/lib/typed-edge-pass.js.map +1 -0
  1102. package/payload/platform/plugins/memory/mcp/dist/lib/typed-edge-schema.d.ts +29 -0
  1103. package/payload/platform/plugins/memory/mcp/dist/lib/typed-edge-schema.d.ts.map +1 -0
  1104. package/payload/platform/plugins/memory/mcp/dist/lib/typed-edge-schema.js +142 -0
  1105. package/payload/platform/plugins/memory/mcp/dist/lib/typed-edge-schema.js.map +1 -0
  1106. package/payload/platform/plugins/memory/mcp/dist/lib/uuid.d.ts +3 -0
  1107. package/payload/platform/plugins/memory/mcp/dist/lib/uuid.d.ts.map +1 -0
  1108. package/payload/platform/plugins/memory/mcp/dist/lib/uuid.js +12 -0
  1109. package/payload/platform/plugins/memory/mcp/dist/lib/uuid.js.map +1 -0
  1110. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/_helpers/emit-capture.d.ts +22 -0
  1111. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/_helpers/emit-capture.d.ts.map +1 -0
  1112. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/_helpers/emit-capture.js +44 -0
  1113. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/_helpers/emit-capture.js.map +1 -0
  1114. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/build-text-representation-bound.test.d.ts +2 -0
  1115. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/build-text-representation-bound.test.d.ts.map +1 -0
  1116. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/build-text-representation-bound.test.js +20 -0
  1117. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/build-text-representation-bound.test.js.map +1 -0
  1118. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-archive-derive-insights-emit.test.d.ts +2 -0
  1119. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-archive-derive-insights-emit.test.d.ts.map +1 -0
  1120. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-archive-derive-insights-emit.test.js +68 -0
  1121. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-archive-derive-insights-emit.test.js.map +1 -0
  1122. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-archive-derive-insights.test.d.ts +7 -0
  1123. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-archive-derive-insights.test.d.ts.map +1 -0
  1124. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-archive-derive-insights.test.js +298 -0
  1125. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-archive-derive-insights.test.js.map +1 -0
  1126. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-archive-enrich-rejection-emit.test.d.ts +2 -0
  1127. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-archive-enrich-rejection-emit.test.d.ts.map +1 -0
  1128. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-archive-enrich-rejection-emit.test.js +48 -0
  1129. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-archive-enrich-rejection-emit.test.js.map +1 -0
  1130. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-archive-enrich-rejection.test.d.ts +2 -0
  1131. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-archive-enrich-rejection.test.d.ts.map +1 -0
  1132. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-archive-enrich-rejection.test.js +184 -0
  1133. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-archive-enrich-rejection.test.js.map +1 -0
  1134. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-archive-preference-embed.test.d.ts +2 -0
  1135. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-archive-preference-embed.test.d.ts.map +1 -0
  1136. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-archive-preference-embed.test.js +67 -0
  1137. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-archive-preference-embed.test.js.map +1 -0
  1138. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-memory-expunge-emit.test.d.ts +2 -0
  1139. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-memory-expunge-emit.test.d.ts.map +1 -0
  1140. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-memory-expunge-emit.test.js +53 -0
  1141. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-memory-expunge-emit.test.js.map +1 -0
  1142. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-normalisers-source-agnosticism.test.d.ts +2 -0
  1143. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-normalisers-source-agnosticism.test.d.ts.map +1 -0
  1144. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-normalisers-source-agnosticism.test.js +75 -0
  1145. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-normalisers-source-agnosticism.test.js.map +1 -0
  1146. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-normalisers-whatsapp-text.test.d.ts +2 -0
  1147. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-normalisers-whatsapp-text.test.d.ts.map +1 -0
  1148. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-normalisers-whatsapp-text.test.js +109 -0
  1149. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-normalisers-whatsapp-text.test.js.map +1 -0
  1150. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/embeddings-cap.test.d.ts +2 -0
  1151. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/embeddings-cap.test.d.ts.map +1 -0
  1152. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/embeddings-cap.test.js +34 -0
  1153. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/embeddings-cap.test.js.map +1 -0
  1154. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/graph-prune-denylist-add-emit.test.d.ts +2 -0
  1155. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/graph-prune-denylist-add-emit.test.d.ts.map +1 -0
  1156. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/graph-prune-denylist-add-emit.test.js +40 -0
  1157. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/graph-prune-denylist-add-emit.test.js.map +1 -0
  1158. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/graph-prune-denylist-remove-emit.test.d.ts +2 -0
  1159. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/graph-prune-denylist-remove-emit.test.d.ts.map +1 -0
  1160. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/graph-prune-denylist-remove-emit.test.js +39 -0
  1161. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/graph-prune-denylist-remove-emit.test.js.map +1 -0
  1162. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/log-ingest.test.d.ts +2 -0
  1163. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/log-ingest.test.d.ts.map +1 -0
  1164. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/log-ingest.test.js +241 -0
  1165. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/log-ingest.test.js.map +1 -0
  1166. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-archive-section-writer.test.d.ts +2 -0
  1167. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-archive-section-writer.test.d.ts.map +1 -0
  1168. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-archive-section-writer.test.js +61 -0
  1169. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-archive-section-writer.test.js.map +1 -0
  1170. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-archive-write-emit.test.d.ts +2 -0
  1171. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-archive-write-emit.test.d.ts.map +1 -0
  1172. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-archive-write-emit.test.js +88 -0
  1173. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-archive-write-emit.test.js.map +1 -0
  1174. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-archive-write.test.d.ts +2 -0
  1175. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-archive-write.test.d.ts.map +1 -0
  1176. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-archive-write.test.js +106 -0
  1177. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-archive-write.test.js.map +1 -0
  1178. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-classify-emit.test.d.ts +2 -0
  1179. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-classify-emit.test.d.ts.map +1 -0
  1180. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-classify-emit.test.js +58 -0
  1181. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-classify-emit.test.js.map +1 -0
  1182. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-compiled-truth-history.test.d.ts +2 -0
  1183. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-compiled-truth-history.test.d.ts.map +1 -0
  1184. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-compiled-truth-history.test.js +129 -0
  1185. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-compiled-truth-history.test.js.map +1 -0
  1186. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-delete-emit.test.d.ts +2 -0
  1187. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-delete-emit.test.d.ts.map +1 -0
  1188. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-delete-emit.test.js +64 -0
  1189. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-delete-emit.test.js.map +1 -0
  1190. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-delete-reserved-label.test.d.ts +2 -0
  1191. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-delete-reserved-label.test.d.ts.map +1 -0
  1192. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-delete-reserved-label.test.js +141 -0
  1193. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-delete-reserved-label.test.js.map +1 -0
  1194. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-edge.test.d.ts +2 -0
  1195. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-edge.test.d.ts.map +1 -0
  1196. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-edge.test.js +164 -0
  1197. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-edge.test.js.map +1 -0
  1198. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-edit-attachment-emit.test.d.ts +2 -0
  1199. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-edit-attachment-emit.test.d.ts.map +1 -0
  1200. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-edit-attachment-emit.test.js +70 -0
  1201. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-edit-attachment-emit.test.js.map +1 -0
  1202. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-empty-trash-admin-conversation.test.d.ts +2 -0
  1203. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-empty-trash-admin-conversation.test.d.ts.map +1 -0
  1204. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-empty-trash-admin-conversation.test.js +168 -0
  1205. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-empty-trash-admin-conversation.test.js.map +1 -0
  1206. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-empty-trash-emit.test.d.ts +2 -0
  1207. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-empty-trash-emit.test.d.ts.map +1 -0
  1208. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-empty-trash-emit.test.js +48 -0
  1209. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-empty-trash-emit.test.js.map +1 -0
  1210. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-empty-trash-reserved-label.test.d.ts +2 -0
  1211. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-empty-trash-reserved-label.test.d.ts.map +1 -0
  1212. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-empty-trash-reserved-label.test.js +86 -0
  1213. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-empty-trash-reserved-label.test.js.map +1 -0
  1214. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-ingest-body-server-sliced.test.d.ts +2 -0
  1215. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-ingest-body-server-sliced.test.d.ts.map +1 -0
  1216. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-ingest-body-server-sliced.test.js +95 -0
  1217. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-ingest-body-server-sliced.test.js.map +1 -0
  1218. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-ingest-chat-body-server-sliced.test.d.ts +2 -0
  1219. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-ingest-chat-body-server-sliced.test.d.ts.map +1 -0
  1220. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-ingest-chat-body-server-sliced.test.js +124 -0
  1221. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-ingest-chat-body-server-sliced.test.js.map +1 -0
  1222. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-ingest-emit.test.d.ts +2 -0
  1223. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-ingest-emit.test.d.ts.map +1 -0
  1224. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-ingest-emit.test.js +74 -0
  1225. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-ingest-emit.test.js.map +1 -0
  1226. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-ingest-extract-emit.test.d.ts +2 -0
  1227. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-ingest-extract-emit.test.d.ts.map +1 -0
  1228. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-ingest-extract-emit.test.js +47 -0
  1229. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-ingest-extract-emit.test.js.map +1 -0
  1230. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-ingest-inline-rewrite.test.d.ts +2 -0
  1231. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-ingest-inline-rewrite.test.d.ts.map +1 -0
  1232. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-ingest-inline-rewrite.test.js +66 -0
  1233. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-ingest-inline-rewrite.test.js.map +1 -0
  1234. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-ingest-section-properties-strip.test.d.ts +2 -0
  1235. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-ingest-section-properties-strip.test.d.ts.map +1 -0
  1236. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-ingest-section-properties-strip.test.js +104 -0
  1237. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-ingest-section-properties-strip.test.js.map +1 -0
  1238. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-ingest-web-emit.test.d.ts +2 -0
  1239. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-ingest-web-emit.test.d.ts.map +1 -0
  1240. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-ingest-web-emit.test.js +65 -0
  1241. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-ingest-web-emit.test.js.map +1 -0
  1242. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-ingest.test.d.ts +2 -0
  1243. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-ingest.test.d.ts.map +1 -0
  1244. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-ingest.test.js +175 -0
  1245. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-ingest.test.js.map +1 -0
  1246. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-lookup-by-name.test.d.ts +2 -0
  1247. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-lookup-by-name.test.d.ts.map +1 -0
  1248. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-lookup-by-name.test.js +135 -0
  1249. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-lookup-by-name.test.js.map +1 -0
  1250. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-reindex-emit.test.d.ts +2 -0
  1251. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-reindex-emit.test.d.ts.map +1 -0
  1252. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-reindex-emit.test.js +43 -0
  1253. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-reindex-emit.test.js.map +1 -0
  1254. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-reindex.test.d.ts +2 -0
  1255. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-reindex.test.d.ts.map +1 -0
  1256. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-reindex.test.js +87 -0
  1257. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-reindex.test.js.map +1 -0
  1258. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-rename-attachment-emit.test.d.ts +2 -0
  1259. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-rename-attachment-emit.test.d.ts.map +1 -0
  1260. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-rename-attachment-emit.test.js +65 -0
  1261. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-rename-attachment-emit.test.js.map +1 -0
  1262. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-report-tools.test.d.ts +2 -0
  1263. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-report-tools.test.d.ts.map +1 -0
  1264. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-report-tools.test.js +115 -0
  1265. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-report-tools.test.js.map +1 -0
  1266. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-restore-emit.test.d.ts +2 -0
  1267. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-restore-emit.test.d.ts.map +1 -0
  1268. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-restore-emit.test.js +49 -0
  1269. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-restore-emit.test.js.map +1 -0
  1270. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-search-fields.test.d.ts +2 -0
  1271. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-search-fields.test.d.ts.map +1 -0
  1272. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-search-fields.test.js +128 -0
  1273. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-search-fields.test.js.map +1 -0
  1274. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-search-threshold.test.d.ts +2 -0
  1275. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-search-threshold.test.d.ts.map +1 -0
  1276. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-search-threshold.test.js +34 -0
  1277. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-search-threshold.test.js.map +1 -0
  1278. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-update-by-name.test.d.ts +2 -0
  1279. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-update-by-name.test.d.ts.map +1 -0
  1280. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-update-by-name.test.js +125 -0
  1281. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-update-by-name.test.js.map +1 -0
  1282. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-update-emit.test.d.ts +2 -0
  1283. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-update-emit.test.d.ts.map +1 -0
  1284. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-update-emit.test.js +79 -0
  1285. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-update-emit.test.js.map +1 -0
  1286. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-update-operator-hint.test.d.ts +2 -0
  1287. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-update-operator-hint.test.d.ts.map +1 -0
  1288. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-update-operator-hint.test.js +329 -0
  1289. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-update-operator-hint.test.js.map +1 -0
  1290. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-write-compiled-truth-rejection.test.d.ts +2 -0
  1291. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-write-compiled-truth-rejection.test.d.ts.map +1 -0
  1292. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-write-compiled-truth-rejection.test.js +39 -0
  1293. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-write-compiled-truth-rejection.test.js.map +1 -0
  1294. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-write-emit.test.d.ts +2 -0
  1295. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-write-emit.test.d.ts.map +1 -0
  1296. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-write-emit.test.js +81 -0
  1297. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-write-emit.test.js.map +1 -0
  1298. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-write-timeline-learned-at.test.d.ts +2 -0
  1299. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-write-timeline-learned-at.test.d.ts.map +1 -0
  1300. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-write-timeline-learned-at.test.js +30 -0
  1301. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-write-timeline-learned-at.test.js.map +1 -0
  1302. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/profile-delete-emit.test.d.ts +2 -0
  1303. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/profile-delete-emit.test.d.ts.map +1 -0
  1304. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/profile-delete-emit.test.js +62 -0
  1305. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/profile-delete-emit.test.js.map +1 -0
  1306. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/profile-update-emit.test.d.ts +2 -0
  1307. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/profile-update-emit.test.d.ts.map +1 -0
  1308. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/profile-update-emit.test.js +76 -0
  1309. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/profile-update-emit.test.js.map +1 -0
  1310. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/profile-update-not-applicable.test.d.ts +2 -0
  1311. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/profile-update-not-applicable.test.d.ts.map +1 -0
  1312. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/profile-update-not-applicable.test.js +88 -0
  1313. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/profile-update-not-applicable.test.js.map +1 -0
  1314. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/profile-update-personfields-open.test.d.ts +2 -0
  1315. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/profile-update-personfields-open.test.d.ts.map +1 -0
  1316. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/profile-update-personfields-open.test.js +149 -0
  1317. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/profile-update-personfields-open.test.js.map +1 -0
  1318. package/payload/platform/plugins/memory/mcp/dist/tools/conversation-archive-derive-insights.d.ts +114 -0
  1319. package/payload/platform/plugins/memory/mcp/dist/tools/conversation-archive-derive-insights.d.ts.map +1 -0
  1320. package/payload/platform/plugins/memory/mcp/dist/tools/conversation-archive-derive-insights.js +415 -0
  1321. package/payload/platform/plugins/memory/mcp/dist/tools/conversation-archive-derive-insights.js.map +1 -0
  1322. package/payload/platform/plugins/memory/mcp/dist/tools/conversation-archive-enrich-rejection.d.ts +41 -0
  1323. package/payload/platform/plugins/memory/mcp/dist/tools/conversation-archive-enrich-rejection.d.ts.map +1 -0
  1324. package/payload/platform/plugins/memory/mcp/dist/tools/conversation-archive-enrich-rejection.js +124 -0
  1325. package/payload/platform/plugins/memory/mcp/dist/tools/conversation-archive-enrich-rejection.js.map +1 -0
  1326. package/payload/platform/plugins/memory/mcp/dist/tools/conversation-archive-list-chunks.d.ts +43 -0
  1327. package/payload/platform/plugins/memory/mcp/dist/tools/conversation-archive-list-chunks.d.ts.map +1 -0
  1328. package/payload/platform/plugins/memory/mcp/dist/tools/conversation-archive-list-chunks.js +96 -0
  1329. package/payload/platform/plugins/memory/mcp/dist/tools/conversation-archive-list-chunks.js.map +1 -0
  1330. package/payload/platform/plugins/memory/mcp/dist/tools/conversation-memory-expunge.d.ts +8 -0
  1331. package/payload/platform/plugins/memory/mcp/dist/tools/conversation-memory-expunge.d.ts.map +1 -0
  1332. package/payload/platform/plugins/memory/mcp/dist/tools/conversation-memory-expunge.js +15 -0
  1333. package/payload/platform/plugins/memory/mcp/dist/tools/conversation-memory-expunge.js.map +1 -0
  1334. package/payload/platform/plugins/memory/mcp/dist/tools/graph-prune-denylist-add.d.ts +7 -0
  1335. package/payload/platform/plugins/memory/mcp/dist/tools/graph-prune-denylist-add.d.ts.map +1 -0
  1336. package/payload/platform/plugins/memory/mcp/dist/tools/graph-prune-denylist-add.js +32 -0
  1337. package/payload/platform/plugins/memory/mcp/dist/tools/graph-prune-denylist-add.js.map +1 -0
  1338. package/payload/platform/plugins/memory/mcp/dist/tools/graph-prune-denylist-list.d.ts +7 -0
  1339. package/payload/platform/plugins/memory/mcp/dist/tools/graph-prune-denylist-list.d.ts.map +1 -0
  1340. package/payload/platform/plugins/memory/mcp/dist/tools/graph-prune-denylist-list.js +7 -0
  1341. package/payload/platform/plugins/memory/mcp/dist/tools/graph-prune-denylist-list.js.map +1 -0
  1342. package/payload/platform/plugins/memory/mcp/dist/tools/graph-prune-denylist-remove.d.ts +7 -0
  1343. package/payload/platform/plugins/memory/mcp/dist/tools/graph-prune-denylist-remove.d.ts.map +1 -0
  1344. package/payload/platform/plugins/memory/mcp/dist/tools/graph-prune-denylist-remove.js +31 -0
  1345. package/payload/platform/plugins/memory/mcp/dist/tools/graph-prune-denylist-remove.js.map +1 -0
  1346. package/payload/platform/plugins/memory/mcp/dist/tools/image-fetch.d.ts +15 -0
  1347. package/payload/platform/plugins/memory/mcp/dist/tools/image-fetch.d.ts.map +1 -0
  1348. package/payload/platform/plugins/memory/mcp/dist/tools/image-fetch.js +64 -0
  1349. package/payload/platform/plugins/memory/mcp/dist/tools/image-fetch.js.map +1 -0
  1350. package/payload/platform/plugins/memory/mcp/dist/tools/kd-classify.d.ts +6 -0
  1351. package/payload/platform/plugins/memory/mcp/dist/tools/kd-classify.d.ts.map +1 -0
  1352. package/payload/platform/plugins/memory/mcp/dist/tools/kd-classify.js +73 -0
  1353. package/payload/platform/plugins/memory/mcp/dist/tools/kd-classify.js.map +1 -0
  1354. package/payload/platform/plugins/memory/mcp/dist/tools/memory-archive-write.d.ts +202 -0
  1355. package/payload/platform/plugins/memory/mcp/dist/tools/memory-archive-write.d.ts.map +1 -0
  1356. package/payload/platform/plugins/memory/mcp/dist/tools/memory-archive-write.js +1084 -0
  1357. package/payload/platform/plugins/memory/mcp/dist/tools/memory-archive-write.js.map +1 -0
  1358. package/payload/platform/plugins/memory/mcp/dist/tools/memory-brain-capture-recent.d.ts +35 -0
  1359. package/payload/platform/plugins/memory/mcp/dist/tools/memory-brain-capture-recent.d.ts.map +1 -0
  1360. package/payload/platform/plugins/memory/mcp/dist/tools/memory-brain-capture-recent.js +80 -0
  1361. package/payload/platform/plugins/memory/mcp/dist/tools/memory-brain-capture-recent.js.map +1 -0
  1362. package/payload/platform/plugins/memory/mcp/dist/tools/memory-classify.d.ts +34 -0
  1363. package/payload/platform/plugins/memory/mcp/dist/tools/memory-classify.d.ts.map +1 -0
  1364. package/payload/platform/plugins/memory/mcp/dist/tools/memory-classify.js +62 -0
  1365. package/payload/platform/plugins/memory/mcp/dist/tools/memory-classify.js.map +1 -0
  1366. package/payload/platform/plugins/memory/mcp/dist/tools/memory-compiled-truth-history.d.ts +41 -0
  1367. package/payload/platform/plugins/memory/mcp/dist/tools/memory-compiled-truth-history.d.ts.map +1 -0
  1368. package/payload/platform/plugins/memory/mcp/dist/tools/memory-compiled-truth-history.js +73 -0
  1369. package/payload/platform/plugins/memory/mcp/dist/tools/memory-compiled-truth-history.js.map +1 -0
  1370. package/payload/platform/plugins/memory/mcp/dist/tools/memory-delete.d.ts +65 -0
  1371. package/payload/platform/plugins/memory/mcp/dist/tools/memory-delete.d.ts.map +1 -0
  1372. package/payload/platform/plugins/memory/mcp/dist/tools/memory-delete.js +151 -0
  1373. package/payload/platform/plugins/memory/mcp/dist/tools/memory-delete.js.map +1 -0
  1374. package/payload/platform/plugins/memory/mcp/dist/tools/memory-dream-run.d.ts +48 -0
  1375. package/payload/platform/plugins/memory/mcp/dist/tools/memory-dream-run.d.ts.map +1 -0
  1376. package/payload/platform/plugins/memory/mcp/dist/tools/memory-dream-run.js +197 -0
  1377. package/payload/platform/plugins/memory/mcp/dist/tools/memory-dream-run.js.map +1 -0
  1378. package/payload/platform/plugins/memory/mcp/dist/tools/memory-edge.d.ts +21 -0
  1379. package/payload/platform/plugins/memory/mcp/dist/tools/memory-edge.d.ts.map +1 -0
  1380. package/payload/platform/plugins/memory/mcp/dist/tools/memory-edge.js +51 -0
  1381. package/payload/platform/plugins/memory/mcp/dist/tools/memory-edge.js.map +1 -0
  1382. package/payload/platform/plugins/memory/mcp/dist/tools/memory-edit-attachment.d.ts +16 -0
  1383. package/payload/platform/plugins/memory/mcp/dist/tools/memory-edit-attachment.d.ts.map +1 -0
  1384. package/payload/platform/plugins/memory/mcp/dist/tools/memory-edit-attachment.js +95 -0
  1385. package/payload/platform/plugins/memory/mcp/dist/tools/memory-edit-attachment.js.map +1 -0
  1386. package/payload/platform/plugins/memory/mcp/dist/tools/memory-empty-trash.d.ts +50 -0
  1387. package/payload/platform/plugins/memory/mcp/dist/tools/memory-empty-trash.d.ts.map +1 -0
  1388. package/payload/platform/plugins/memory/mcp/dist/tools/memory-empty-trash.js +104 -0
  1389. package/payload/platform/plugins/memory/mcp/dist/tools/memory-empty-trash.js.map +1 -0
  1390. package/payload/platform/plugins/memory/mcp/dist/tools/memory-find-candidates.d.ts +58 -0
  1391. package/payload/platform/plugins/memory/mcp/dist/tools/memory-find-candidates.d.ts.map +1 -0
  1392. package/payload/platform/plugins/memory/mcp/dist/tools/memory-find-candidates.js +125 -0
  1393. package/payload/platform/plugins/memory/mcp/dist/tools/memory-find-candidates.js.map +1 -0
  1394. package/payload/platform/plugins/memory/mcp/dist/tools/memory-ingest-extract.d.ts +37 -0
  1395. package/payload/platform/plugins/memory/mcp/dist/tools/memory-ingest-extract.d.ts.map +1 -0
  1396. package/payload/platform/plugins/memory/mcp/dist/tools/memory-ingest-extract.js +97 -0
  1397. package/payload/platform/plugins/memory/mcp/dist/tools/memory-ingest-extract.js.map +1 -0
  1398. package/payload/platform/plugins/memory/mcp/dist/tools/memory-ingest-web.d.ts +32 -0
  1399. package/payload/platform/plugins/memory/mcp/dist/tools/memory-ingest-web.d.ts.map +1 -0
  1400. package/payload/platform/plugins/memory/mcp/dist/tools/memory-ingest-web.js +116 -0
  1401. package/payload/platform/plugins/memory/mcp/dist/tools/memory-ingest-web.js.map +1 -0
  1402. package/payload/platform/plugins/memory/mcp/dist/tools/memory-ingest.d.ts +194 -0
  1403. package/payload/platform/plugins/memory/mcp/dist/tools/memory-ingest.d.ts.map +1 -0
  1404. package/payload/platform/plugins/memory/mcp/dist/tools/memory-ingest.js +1273 -0
  1405. package/payload/platform/plugins/memory/mcp/dist/tools/memory-ingest.js.map +1 -0
  1406. package/payload/platform/plugins/memory/mcp/dist/tools/memory-list-attachments.d.ts +19 -0
  1407. package/payload/platform/plugins/memory/mcp/dist/tools/memory-list-attachments.d.ts.map +1 -0
  1408. package/payload/platform/plugins/memory/mcp/dist/tools/memory-list-attachments.js +125 -0
  1409. package/payload/platform/plugins/memory/mcp/dist/tools/memory-list-attachments.js.map +1 -0
  1410. package/payload/platform/plugins/memory/mcp/dist/tools/memory-lookup-by-name.d.ts +16 -0
  1411. package/payload/platform/plugins/memory/mcp/dist/tools/memory-lookup-by-name.d.ts.map +1 -0
  1412. package/payload/platform/plugins/memory/mcp/dist/tools/memory-lookup-by-name.js +56 -0
  1413. package/payload/platform/plugins/memory/mcp/dist/tools/memory-lookup-by-name.js.map +1 -0
  1414. package/payload/platform/plugins/memory/mcp/dist/tools/memory-node-exists.d.ts +28 -0
  1415. package/payload/platform/plugins/memory/mcp/dist/tools/memory-node-exists.d.ts.map +1 -0
  1416. package/payload/platform/plugins/memory/mcp/dist/tools/memory-node-exists.js +46 -0
  1417. package/payload/platform/plugins/memory/mcp/dist/tools/memory-node-exists.js.map +1 -0
  1418. package/payload/platform/plugins/memory/mcp/dist/tools/memory-rank.d.ts +61 -0
  1419. package/payload/platform/plugins/memory/mcp/dist/tools/memory-rank.d.ts.map +1 -0
  1420. package/payload/platform/plugins/memory/mcp/dist/tools/memory-rank.js +102 -0
  1421. package/payload/platform/plugins/memory/mcp/dist/tools/memory-rank.js.map +1 -0
  1422. package/payload/platform/plugins/memory/mcp/dist/tools/memory-read-attachment.d.ts +12 -0
  1423. package/payload/platform/plugins/memory/mcp/dist/tools/memory-read-attachment.d.ts.map +1 -0
  1424. package/payload/platform/plugins/memory/mcp/dist/tools/memory-read-attachment.js +100 -0
  1425. package/payload/platform/plugins/memory/mcp/dist/tools/memory-read-attachment.js.map +1 -0
  1426. package/payload/platform/plugins/memory/mcp/dist/tools/memory-reindex.d.ts +9 -0
  1427. package/payload/platform/plugins/memory/mcp/dist/tools/memory-reindex.d.ts.map +1 -0
  1428. package/payload/platform/plugins/memory/mcp/dist/tools/memory-reindex.js +127 -0
  1429. package/payload/platform/plugins/memory/mcp/dist/tools/memory-reindex.js.map +1 -0
  1430. package/payload/platform/plugins/memory/mcp/dist/tools/memory-rename-attachment.d.ts +13 -0
  1431. package/payload/platform/plugins/memory/mcp/dist/tools/memory-rename-attachment.d.ts.map +1 -0
  1432. package/payload/platform/plugins/memory/mcp/dist/tools/memory-rename-attachment.js +67 -0
  1433. package/payload/platform/plugins/memory/mcp/dist/tools/memory-rename-attachment.js.map +1 -0
  1434. package/payload/platform/plugins/memory/mcp/dist/tools/memory-report-list.d.ts +28 -0
  1435. package/payload/platform/plugins/memory/mcp/dist/tools/memory-report-list.d.ts.map +1 -0
  1436. package/payload/platform/plugins/memory/mcp/dist/tools/memory-report-list.js +64 -0
  1437. package/payload/platform/plugins/memory/mcp/dist/tools/memory-report-list.js.map +1 -0
  1438. package/payload/platform/plugins/memory/mcp/dist/tools/memory-report-read-latest.d.ts +24 -0
  1439. package/payload/platform/plugins/memory/mcp/dist/tools/memory-report-read-latest.d.ts.map +1 -0
  1440. package/payload/platform/plugins/memory/mcp/dist/tools/memory-report-read-latest.js +49 -0
  1441. package/payload/platform/plugins/memory/mcp/dist/tools/memory-report-read-latest.js.map +1 -0
  1442. package/payload/platform/plugins/memory/mcp/dist/tools/memory-report-write.d.ts +34 -0
  1443. package/payload/platform/plugins/memory/mcp/dist/tools/memory-report-write.d.ts.map +1 -0
  1444. package/payload/platform/plugins/memory/mcp/dist/tools/memory-report-write.js +99 -0
  1445. package/payload/platform/plugins/memory/mcp/dist/tools/memory-report-write.js.map +1 -0
  1446. package/payload/platform/plugins/memory/mcp/dist/tools/memory-restore.d.ts +24 -0
  1447. package/payload/platform/plugins/memory/mcp/dist/tools/memory-restore.d.ts.map +1 -0
  1448. package/payload/platform/plugins/memory/mcp/dist/tools/memory-restore.js +47 -0
  1449. package/payload/platform/plugins/memory/mcp/dist/tools/memory-restore.js.map +1 -0
  1450. package/payload/platform/plugins/memory/mcp/dist/tools/memory-review-queue.d.ts +29 -0
  1451. package/payload/platform/plugins/memory/mcp/dist/tools/memory-review-queue.d.ts.map +1 -0
  1452. package/payload/platform/plugins/memory/mcp/dist/tools/memory-review-queue.js +67 -0
  1453. package/payload/platform/plugins/memory/mcp/dist/tools/memory-review-queue.js.map +1 -0
  1454. package/payload/platform/plugins/memory/mcp/dist/tools/memory-search.d.ts +7 -0
  1455. package/payload/platform/plugins/memory/mcp/dist/tools/memory-search.d.ts.map +1 -0
  1456. package/payload/platform/plugins/memory/mcp/dist/tools/memory-search.js +184 -0
  1457. package/payload/platform/plugins/memory/mcp/dist/tools/memory-search.js.map +1 -0
  1458. package/payload/platform/plugins/memory/mcp/dist/tools/memory-signals-recent.d.ts +35 -0
  1459. package/payload/platform/plugins/memory/mcp/dist/tools/memory-signals-recent.d.ts.map +1 -0
  1460. package/payload/platform/plugins/memory/mcp/dist/tools/memory-signals-recent.js +73 -0
  1461. package/payload/platform/plugins/memory/mcp/dist/tools/memory-signals-recent.js.map +1 -0
  1462. package/payload/platform/plugins/memory/mcp/dist/tools/memory-typed-edge-pass.d.ts +29 -0
  1463. package/payload/platform/plugins/memory/mcp/dist/tools/memory-typed-edge-pass.d.ts.map +1 -0
  1464. package/payload/platform/plugins/memory/mcp/dist/tools/memory-typed-edge-pass.js +22 -0
  1465. package/payload/platform/plugins/memory/mcp/dist/tools/memory-typed-edge-pass.js.map +1 -0
  1466. package/payload/platform/plugins/memory/mcp/dist/tools/memory-update-by-name.d.ts +15 -0
  1467. package/payload/platform/plugins/memory/mcp/dist/tools/memory-update-by-name.d.ts.map +1 -0
  1468. package/payload/platform/plugins/memory/mcp/dist/tools/memory-update-by-name.js +45 -0
  1469. package/payload/platform/plugins/memory/mcp/dist/tools/memory-update-by-name.js.map +1 -0
  1470. package/payload/platform/plugins/memory/mcp/dist/tools/memory-update.d.ts +16 -0
  1471. package/payload/platform/plugins/memory/mcp/dist/tools/memory-update.d.ts.map +1 -0
  1472. package/payload/platform/plugins/memory/mcp/dist/tools/memory-update.js +194 -0
  1473. package/payload/platform/plugins/memory/mcp/dist/tools/memory-update.js.map +1 -0
  1474. package/payload/platform/plugins/memory/mcp/dist/tools/memory-write.d.ts +47 -0
  1475. package/payload/platform/plugins/memory/mcp/dist/tools/memory-write.d.ts.map +1 -0
  1476. package/payload/platform/plugins/memory/mcp/dist/tools/memory-write.js +376 -0
  1477. package/payload/platform/plugins/memory/mcp/dist/tools/memory-write.js.map +1 -0
  1478. package/payload/platform/plugins/memory/mcp/dist/tools/obsidian-vault-import.d.ts +127 -0
  1479. package/payload/platform/plugins/memory/mcp/dist/tools/obsidian-vault-import.d.ts.map +1 -0
  1480. package/payload/platform/plugins/memory/mcp/dist/tools/obsidian-vault-import.js +477 -0
  1481. package/payload/platform/plugins/memory/mcp/dist/tools/obsidian-vault-import.js.map +1 -0
  1482. package/payload/platform/plugins/memory/mcp/dist/tools/profile-delete.d.ts +24 -0
  1483. package/payload/platform/plugins/memory/mcp/dist/tools/profile-delete.d.ts.map +1 -0
  1484. package/payload/platform/plugins/memory/mcp/dist/tools/profile-delete.js +35 -0
  1485. package/payload/platform/plugins/memory/mcp/dist/tools/profile-delete.js.map +1 -0
  1486. package/payload/platform/plugins/memory/mcp/dist/tools/profile-read.d.ts +46 -0
  1487. package/payload/platform/plugins/memory/mcp/dist/tools/profile-read.d.ts.map +1 -0
  1488. package/payload/platform/plugins/memory/mcp/dist/tools/profile-read.js +423 -0
  1489. package/payload/platform/plugins/memory/mcp/dist/tools/profile-read.js.map +1 -0
  1490. package/payload/platform/plugins/memory/mcp/dist/tools/profile-update.d.ts +65 -0
  1491. package/payload/platform/plugins/memory/mcp/dist/tools/profile-update.d.ts.map +1 -0
  1492. package/payload/platform/plugins/memory/mcp/dist/tools/profile-update.js +395 -0
  1493. package/payload/platform/plugins/memory/mcp/dist/tools/profile-update.js.map +1 -0
  1494. package/payload/platform/plugins/memory/mcp/dist/tools/session-retrospective-skip-rate.d.ts +30 -0
  1495. package/payload/platform/plugins/memory/mcp/dist/tools/session-retrospective-skip-rate.d.ts.map +1 -0
  1496. package/payload/platform/plugins/memory/mcp/dist/tools/session-retrospective-skip-rate.js +130 -0
  1497. package/payload/platform/plugins/memory/mcp/dist/tools/session-retrospective-skip-rate.js.map +1 -0
  1498. package/payload/platform/plugins/memory/mcp/package.json +23 -0
  1499. package/payload/platform/plugins/memory/mcp/scripts/backfill-typed-edges.ts +72 -0
  1500. package/payload/platform/plugins/memory/mcp/scripts/boot-smoke.sh +69 -0
  1501. package/payload/platform/plugins/memory/mcp/scripts/generate-edge-docs.ts +75 -0
  1502. package/payload/platform/plugins/memory/mcp/scripts/graph/accept.sh +217 -0
  1503. package/payload/platform/plugins/memory/mcp/scripts/graph/fixture.cypher +59 -0
  1504. package/payload/platform/plugins/memory/mcp/vitest.config.ts +48 -0
  1505. package/payload/platform/plugins/memory/references/graph-primitives.md +394 -0
  1506. package/payload/platform/plugins/memory/references/schema-base.md +334 -0
  1507. package/payload/platform/plugins/memory/references/schema-construction.md +72 -0
  1508. package/payload/platform/plugins/memory/references/schema-creator.md +35 -0
  1509. package/payload/platform/plugins/memory/references/schema-estate-agent.md +110 -0
  1510. package/payload/platform/plugins/memory/references/schema-food-beverage.md +32 -0
  1511. package/payload/platform/plugins/memory/references/schema-hospitality.md +31 -0
  1512. package/payload/platform/plugins/memory/references/schema-logistics.md +30 -0
  1513. package/payload/platform/plugins/memory/references/schema-professional-services.md +33 -0
  1514. package/payload/platform/plugins/memory/references/schema-retail.md +33 -0
  1515. package/payload/platform/plugins/memory/references/schema-trades.md +36 -0
  1516. package/payload/platform/plugins/memory/references/transcript-formats/circleback.md +49 -0
  1517. package/payload/platform/plugins/memory/references/transcript-formats/granola.md +50 -0
  1518. package/payload/platform/plugins/memory/references/transcript-formats/otter.md +50 -0
  1519. package/payload/platform/plugins/memory/skills/archive-crawler/SKILL.md +67 -0
  1520. package/payload/platform/plugins/memory/skills/challenge/SKILL.md +52 -0
  1521. package/payload/platform/plugins/memory/skills/concept-synthesis/SKILL.md +79 -0
  1522. package/payload/platform/plugins/memory/skills/connect/SKILL.md +56 -0
  1523. package/payload/platform/plugins/memory/skills/conversation-archive/SKILL.md +193 -0
  1524. package/payload/platform/plugins/memory/skills/conversation-archive-enrich/SKILL.md +207 -0
  1525. package/payload/platform/plugins/memory/skills/conversation-archive-mcp/SKILL.md +170 -0
  1526. package/payload/platform/plugins/memory/skills/conversational-memory/SKILL.md +113 -0
  1527. package/payload/platform/plugins/memory/skills/document-ingest/SKILL.md +331 -0
  1528. package/payload/platform/plugins/memory/skills/emerge/SKILL.md +87 -0
  1529. package/payload/platform/plugins/notion-import/.claude-plugin/plugin.json +8 -0
  1530. package/payload/platform/plugins/notion-import/PLUGIN.md +27 -0
  1531. package/payload/platform/plugins/notion-import/skills/notion-import/SKILL.md +114 -0
  1532. package/payload/platform/plugins/notion-import/skills/notion-import/references/attachments.md +55 -0
  1533. package/payload/platform/plugins/notion-import/skills/notion-import/references/databases.md +83 -0
  1534. package/payload/platform/plugins/notion-import/skills/notion-import/references/page-tree.md +61 -0
  1535. package/payload/platform/plugins/notion-import/skills/notion-import/references/workspace-export.md +41 -0
  1536. package/payload/platform/plugins/obsidian-import/.claude-plugin/plugin.json +8 -0
  1537. package/payload/platform/plugins/obsidian-import/PLUGIN.md +39 -0
  1538. package/payload/platform/plugins/obsidian-import/skills/obsidian-import/SKILL.md +92 -0
  1539. package/payload/platform/plugins/obsidian-import/skills/obsidian-import/references/attachments.md +80 -0
  1540. package/payload/platform/plugins/obsidian-import/skills/obsidian-import/references/daily-notes.md +31 -0
  1541. package/payload/platform/plugins/obsidian-import/skills/obsidian-import/references/vault-structure.md +46 -0
  1542. package/payload/platform/plugins/obsidian-import/skills/obsidian-import/references/wikilinks.md +70 -0
  1543. package/payload/platform/plugins/outlook/.claude-plugin/plugin.json +17 -0
  1544. package/payload/platform/plugins/outlook/PLUGIN.md +74 -0
  1545. package/payload/platform/plugins/outlook/mcp/dist/__tests__/graph-client.test.d.ts +2 -0
  1546. package/payload/platform/plugins/outlook/mcp/dist/__tests__/graph-client.test.d.ts.map +1 -0
  1547. package/payload/platform/plugins/outlook/mcp/dist/__tests__/graph-client.test.js +94 -0
  1548. package/payload/platform/plugins/outlook/mcp/dist/__tests__/graph-client.test.js.map +1 -0
  1549. package/payload/platform/plugins/outlook/mcp/dist/__tests__/log.test.d.ts +2 -0
  1550. package/payload/platform/plugins/outlook/mcp/dist/__tests__/log.test.d.ts.map +1 -0
  1551. package/payload/platform/plugins/outlook/mcp/dist/__tests__/log.test.js +31 -0
  1552. package/payload/platform/plugins/outlook/mcp/dist/__tests__/log.test.js.map +1 -0
  1553. package/payload/platform/plugins/outlook/mcp/dist/__tests__/pkce-flow.test.d.ts +2 -0
  1554. package/payload/platform/plugins/outlook/mcp/dist/__tests__/pkce-flow.test.d.ts.map +1 -0
  1555. package/payload/platform/plugins/outlook/mcp/dist/__tests__/pkce-flow.test.js +213 -0
  1556. package/payload/platform/plugins/outlook/mcp/dist/__tests__/pkce-flow.test.js.map +1 -0
  1557. package/payload/platform/plugins/outlook/mcp/dist/__tests__/token-store.test.d.ts +2 -0
  1558. package/payload/platform/plugins/outlook/mcp/dist/__tests__/token-store.test.d.ts.map +1 -0
  1559. package/payload/platform/plugins/outlook/mcp/dist/__tests__/token-store.test.js +130 -0
  1560. package/payload/platform/plugins/outlook/mcp/dist/__tests__/token-store.test.js.map +1 -0
  1561. package/payload/platform/plugins/outlook/mcp/dist/auth/pkce-flow.d.ts +65 -0
  1562. package/payload/platform/plugins/outlook/mcp/dist/auth/pkce-flow.d.ts.map +1 -0
  1563. package/payload/platform/plugins/outlook/mcp/dist/auth/pkce-flow.js +261 -0
  1564. package/payload/platform/plugins/outlook/mcp/dist/auth/pkce-flow.js.map +1 -0
  1565. package/payload/platform/plugins/outlook/mcp/dist/auth/token-store.d.ts +61 -0
  1566. package/payload/platform/plugins/outlook/mcp/dist/auth/token-store.d.ts.map +1 -0
  1567. package/payload/platform/plugins/outlook/mcp/dist/auth/token-store.js +170 -0
  1568. package/payload/platform/plugins/outlook/mcp/dist/auth/token-store.js.map +1 -0
  1569. package/payload/platform/plugins/outlook/mcp/dist/index.d.ts +18 -0
  1570. package/payload/platform/plugins/outlook/mcp/dist/index.d.ts.map +1 -0
  1571. package/payload/platform/plugins/outlook/mcp/dist/index.js +183 -0
  1572. package/payload/platform/plugins/outlook/mcp/dist/index.js.map +1 -0
  1573. package/payload/platform/plugins/outlook/mcp/dist/lib/graph-client.d.ts +60 -0
  1574. package/payload/platform/plugins/outlook/mcp/dist/lib/graph-client.d.ts.map +1 -0
  1575. package/payload/platform/plugins/outlook/mcp/dist/lib/graph-client.js +189 -0
  1576. package/payload/platform/plugins/outlook/mcp/dist/lib/graph-client.js.map +1 -0
  1577. package/payload/platform/plugins/outlook/mcp/dist/lib/log.d.ts +23 -0
  1578. package/payload/platform/plugins/outlook/mcp/dist/lib/log.d.ts.map +1 -0
  1579. package/payload/platform/plugins/outlook/mcp/dist/lib/log.js +53 -0
  1580. package/payload/platform/plugins/outlook/mcp/dist/lib/log.js.map +1 -0
  1581. package/payload/platform/plugins/outlook/mcp/dist/tools/account-register.d.ts +26 -0
  1582. package/payload/platform/plugins/outlook/mcp/dist/tools/account-register.d.ts.map +1 -0
  1583. package/payload/platform/plugins/outlook/mcp/dist/tools/account-register.js +50 -0
  1584. package/payload/platform/plugins/outlook/mcp/dist/tools/account-register.js.map +1 -0
  1585. package/payload/platform/plugins/outlook/mcp/dist/tools/calendar-event.d.ts +12 -0
  1586. package/payload/platform/plugins/outlook/mcp/dist/tools/calendar-event.d.ts.map +1 -0
  1587. package/payload/platform/plugins/outlook/mcp/dist/tools/calendar-event.js +32 -0
  1588. package/payload/platform/plugins/outlook/mcp/dist/tools/calendar-event.js.map +1 -0
  1589. package/payload/platform/plugins/outlook/mcp/dist/tools/calendar-list.d.ts +59 -0
  1590. package/payload/platform/plugins/outlook/mcp/dist/tools/calendar-list.d.ts.map +1 -0
  1591. package/payload/platform/plugins/outlook/mcp/dist/tools/calendar-list.js +54 -0
  1592. package/payload/platform/plugins/outlook/mcp/dist/tools/calendar-list.js.map +1 -0
  1593. package/payload/platform/plugins/outlook/mcp/dist/tools/contacts-list.d.ts +14 -0
  1594. package/payload/platform/plugins/outlook/mcp/dist/tools/contacts-list.d.ts.map +1 -0
  1595. package/payload/platform/plugins/outlook/mcp/dist/tools/contacts-list.js +45 -0
  1596. package/payload/platform/plugins/outlook/mcp/dist/tools/contacts-list.js.map +1 -0
  1597. package/payload/platform/plugins/outlook/mcp/dist/tools/mail-list.d.ts +15 -0
  1598. package/payload/platform/plugins/outlook/mcp/dist/tools/mail-list.d.ts.map +1 -0
  1599. package/payload/platform/plugins/outlook/mcp/dist/tools/mail-list.js +48 -0
  1600. package/payload/platform/plugins/outlook/mcp/dist/tools/mail-list.js.map +1 -0
  1601. package/payload/platform/plugins/outlook/mcp/dist/tools/mail-search.d.ts +8 -0
  1602. package/payload/platform/plugins/outlook/mcp/dist/tools/mail-search.d.ts.map +1 -0
  1603. package/payload/platform/plugins/outlook/mcp/dist/tools/mail-search.js +49 -0
  1604. package/payload/platform/plugins/outlook/mcp/dist/tools/mail-search.js.map +1 -0
  1605. package/payload/platform/plugins/outlook/mcp/dist/tools/mailbox-info.d.ts +19 -0
  1606. package/payload/platform/plugins/outlook/mcp/dist/tools/mailbox-info.d.ts.map +1 -0
  1607. package/payload/platform/plugins/outlook/mcp/dist/tools/mailbox-info.js +58 -0
  1608. package/payload/platform/plugins/outlook/mcp/dist/tools/mailbox-info.js.map +1 -0
  1609. package/payload/platform/plugins/outlook/mcp/package.json +20 -0
  1610. package/payload/platform/plugins/outlook/mcp/scripts/verify-doc-impl.sh +109 -0
  1611. package/payload/platform/plugins/outlook/references/auth.md +118 -0
  1612. package/payload/platform/plugins/outlook/references/graph-surfaces.md +114 -0
  1613. package/payload/platform/plugins/outlook/skills/outlook/SKILL.md +65 -0
  1614. package/payload/platform/plugins/projects/.claude-plugin/plugin.json +8 -0
  1615. package/payload/platform/plugins/projects/PLUGIN.md +90 -0
  1616. package/payload/platform/plugins/projects/references/investigation.md +63 -0
  1617. package/payload/platform/plugins/projects/references/retrospective.md +71 -0
  1618. package/payload/platform/plugins/projects/references/review.md +51 -0
  1619. package/payload/platform/plugins/projects/references/sprint.md +168 -0
  1620. package/payload/platform/plugins/prompt-optimiser/.claude-plugin/plugin.json +8 -0
  1621. package/payload/platform/plugins/prompt-optimiser/PLUGIN.md +14 -0
  1622. package/payload/platform/plugins/prompt-optimiser/skills/prompt-optimiser/SKILL.md +318 -0
  1623. package/payload/platform/plugins/replicate/.claude-plugin/plugin.json +17 -0
  1624. package/payload/platform/plugins/replicate/PLUGIN.md +49 -0
  1625. package/payload/platform/plugins/replicate/mcp/dist/index.d.ts +2 -0
  1626. package/payload/platform/plugins/replicate/mcp/dist/index.d.ts.map +1 -0
  1627. package/payload/platform/plugins/replicate/mcp/dist/index.js +125 -0
  1628. package/payload/platform/plugins/replicate/mcp/dist/index.js.map +1 -0
  1629. package/payload/platform/plugins/replicate/mcp/dist/lib/replicate-key.d.ts +15 -0
  1630. package/payload/platform/plugins/replicate/mcp/dist/lib/replicate-key.d.ts.map +1 -0
  1631. package/payload/platform/plugins/replicate/mcp/dist/lib/replicate-key.js +73 -0
  1632. package/payload/platform/plugins/replicate/mcp/dist/lib/replicate-key.js.map +1 -0
  1633. package/payload/platform/plugins/replicate/mcp/dist/tools/image-generate.d.ts +14 -0
  1634. package/payload/platform/plugins/replicate/mcp/dist/tools/image-generate.d.ts.map +1 -0
  1635. package/payload/platform/plugins/replicate/mcp/dist/tools/image-generate.js +201 -0
  1636. package/payload/platform/plugins/replicate/mcp/dist/tools/image-generate.js.map +1 -0
  1637. package/payload/platform/plugins/replicate/mcp/package.json +21 -0
  1638. package/payload/platform/plugins/sales/.claude-plugin/plugin.json +8 -0
  1639. package/payload/platform/plugins/sales/PLUGIN.md +106 -0
  1640. package/payload/platform/plugins/sales/references/close-tracking.md +69 -0
  1641. package/payload/platform/plugins/sales/references/comparisons.md +99 -0
  1642. package/payload/platform/plugins/sales/references/competitive-positioning.md +51 -0
  1643. package/payload/platform/plugins/sales/references/faq.md +73 -0
  1644. package/payload/platform/plugins/sales/references/objection-handling.md +157 -0
  1645. package/payload/platform/plugins/sales/references/pricing.md +101 -0
  1646. package/payload/platform/plugins/scheduling/.claude-plugin/plugin.json +17 -0
  1647. package/payload/platform/plugins/scheduling/PLUGIN.md +153 -0
  1648. package/payload/platform/plugins/scheduling/mcp/dist/__tests__/time-resolve-description.test.d.ts +2 -0
  1649. package/payload/platform/plugins/scheduling/mcp/dist/__tests__/time-resolve-description.test.d.ts.map +1 -0
  1650. package/payload/platform/plugins/scheduling/mcp/dist/__tests__/time-resolve-description.test.js +16 -0
  1651. package/payload/platform/plugins/scheduling/mcp/dist/__tests__/time-resolve-description.test.js.map +1 -0
  1652. package/payload/platform/plugins/scheduling/mcp/dist/index.d.ts +2 -0
  1653. package/payload/platform/plugins/scheduling/mcp/dist/index.d.ts.map +1 -0
  1654. package/payload/platform/plugins/scheduling/mcp/dist/index.js +440 -0
  1655. package/payload/platform/plugins/scheduling/mcp/dist/index.js.map +1 -0
  1656. package/payload/platform/plugins/scheduling/mcp/dist/lib/__tests__/getUserTimezone.test.d.ts +2 -0
  1657. package/payload/platform/plugins/scheduling/mcp/dist/lib/__tests__/getUserTimezone.test.d.ts.map +1 -0
  1658. package/payload/platform/plugins/scheduling/mcp/dist/lib/__tests__/getUserTimezone.test.js +119 -0
  1659. package/payload/platform/plugins/scheduling/mcp/dist/lib/__tests__/getUserTimezone.test.js.map +1 -0
  1660. package/payload/platform/plugins/scheduling/mcp/dist/lib/embedding.d.ts +2 -0
  1661. package/payload/platform/plugins/scheduling/mcp/dist/lib/embedding.d.ts.map +1 -0
  1662. package/payload/platform/plugins/scheduling/mcp/dist/lib/embedding.js +19 -0
  1663. package/payload/platform/plugins/scheduling/mcp/dist/lib/embedding.js.map +1 -0
  1664. package/payload/platform/plugins/scheduling/mcp/dist/lib/ics-graph-ingest.d.ts +80 -0
  1665. package/payload/platform/plugins/scheduling/mcp/dist/lib/ics-graph-ingest.d.ts.map +1 -0
  1666. package/payload/platform/plugins/scheduling/mcp/dist/lib/ics-graph-ingest.js +410 -0
  1667. package/payload/platform/plugins/scheduling/mcp/dist/lib/ics-graph-ingest.js.map +1 -0
  1668. package/payload/platform/plugins/scheduling/mcp/dist/lib/ics.d.ts +63 -0
  1669. package/payload/platform/plugins/scheduling/mcp/dist/lib/ics.d.ts.map +1 -0
  1670. package/payload/platform/plugins/scheduling/mcp/dist/lib/ics.js +471 -0
  1671. package/payload/platform/plugins/scheduling/mcp/dist/lib/ics.js.map +1 -0
  1672. package/payload/platform/plugins/scheduling/mcp/dist/lib/neo4j.d.ts +30 -0
  1673. package/payload/platform/plugins/scheduling/mcp/dist/lib/neo4j.d.ts.map +1 -0
  1674. package/payload/platform/plugins/scheduling/mcp/dist/lib/neo4j.js +89 -0
  1675. package/payload/platform/plugins/scheduling/mcp/dist/lib/neo4j.js.map +1 -0
  1676. package/payload/platform/plugins/scheduling/mcp/dist/lib/time-format.d.ts +48 -0
  1677. package/payload/platform/plugins/scheduling/mcp/dist/lib/time-format.d.ts.map +1 -0
  1678. package/payload/platform/plugins/scheduling/mcp/dist/lib/time-format.js +140 -0
  1679. package/payload/platform/plugins/scheduling/mcp/dist/lib/time-format.js.map +1 -0
  1680. package/payload/platform/plugins/scheduling/mcp/dist/scripts/check-due-events.d.ts +24 -0
  1681. package/payload/platform/plugins/scheduling/mcp/dist/scripts/check-due-events.d.ts.map +1 -0
  1682. package/payload/platform/plugins/scheduling/mcp/dist/scripts/check-due-events.js +572 -0
  1683. package/payload/platform/plugins/scheduling/mcp/dist/scripts/check-due-events.js.map +1 -0
  1684. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-archive-ics.d.ts +20 -0
  1685. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-archive-ics.d.ts.map +1 -0
  1686. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-archive-ics.js +63 -0
  1687. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-archive-ics.js.map +1 -0
  1688. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-cancel.d.ts +7 -0
  1689. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-cancel.d.ts.map +1 -0
  1690. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-cancel.js +23 -0
  1691. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-cancel.js.map +1 -0
  1692. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-event.d.ts +25 -0
  1693. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-event.d.ts.map +1 -0
  1694. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-event.js +121 -0
  1695. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-event.js.map +1 -0
  1696. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-export-ics.d.ts +9 -0
  1697. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-export-ics.d.ts.map +1 -0
  1698. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-export-ics.js +77 -0
  1699. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-export-ics.js.map +1 -0
  1700. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-get.d.ts +25 -0
  1701. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-get.d.ts.map +1 -0
  1702. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-get.js +53 -0
  1703. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-get.js.map +1 -0
  1704. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-import-ics.d.ts +8 -0
  1705. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-import-ics.d.ts.map +1 -0
  1706. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-import-ics.js +48 -0
  1707. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-import-ics.js.map +1 -0
  1708. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-list.d.ts +20 -0
  1709. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-list.d.ts.map +1 -0
  1710. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-list.js +76 -0
  1711. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-list.js.map +1 -0
  1712. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-update.d.ts +18 -0
  1713. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-update.d.ts.map +1 -0
  1714. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-update.js +167 -0
  1715. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-update.js.map +1 -0
  1716. package/payload/platform/plugins/scheduling/mcp/package.json +23 -0
  1717. package/payload/platform/plugins/scheduling/mcp/vitest.config.ts +9 -0
  1718. package/payload/platform/plugins/scheduling/skills/briefing/SKILL.md +86 -0
  1719. package/payload/platform/plugins/scheduling/skills/daily-prep/SKILL.md +61 -0
  1720. package/payload/platform/plugins/slides/.claude-plugin/plugin.json +8 -0
  1721. package/payload/platform/plugins/slides/LICENSE +21 -0
  1722. package/payload/platform/plugins/slides/PLUGIN.md +18 -0
  1723. package/payload/platform/plugins/slides/PROVENANCE.md +40 -0
  1724. package/payload/platform/plugins/slides/commands/add-slide.md +29 -0
  1725. package/payload/platform/plugins/slides/commands/slides-claus.md +39 -0
  1726. package/payload/platform/plugins/slides/commands/slides-new-component.md +39 -0
  1727. package/payload/platform/plugins/slides/commands/slides-outline.md +43 -0
  1728. package/payload/platform/plugins/slides/commands/slides-review.md +52 -0
  1729. package/payload/platform/plugins/slides/commands/slides-theme.md +64 -0
  1730. package/payload/platform/plugins/slides/commands/slides.md +59 -0
  1731. package/payload/platform/plugins/slides/skills/deck-system/REFERENCE.md +581 -0
  1732. package/payload/platform/plugins/slides/skills/deck-system/SKILL.md +607 -0
  1733. package/payload/platform/plugins/slides/skills/deck-system/STORYTELLING-board.md +426 -0
  1734. package/payload/platform/plugins/slides/skills/deck-system/STORYTELLING-claus.md +185 -0
  1735. package/payload/platform/plugins/slides/skills/deck-system/STORYTELLING-mbb.md +450 -0
  1736. package/payload/platform/plugins/slides/skills/deck-system/STORYTELLING-product-launch.md +579 -0
  1737. package/payload/platform/plugins/slides/skills/deck-system/STORYTELLING-sales.md +464 -0
  1738. package/payload/platform/plugins/slides/skills/deck-system/STORYTELLING-sequoia.md +489 -0
  1739. package/payload/platform/plugins/slides/skills/deck-system/STORYTELLING.md +273 -0
  1740. package/payload/platform/plugins/slides/skills/deck-system/deck-craft.html +1371 -0
  1741. package/payload/platform/plugins/slides/skills/deck-system/deck-solid.html +1667 -0
  1742. package/payload/platform/plugins/slides/skills/deck-system/deck.html +1359 -0
  1743. package/payload/platform/plugins/substack-import/.claude-plugin/plugin.json +8 -0
  1744. package/payload/platform/plugins/substack-import/PLUGIN.md +34 -0
  1745. package/payload/platform/plugins/substack-import/skills/substack-import/SKILL.md +183 -0
  1746. package/payload/platform/plugins/substack-import/skills/substack-import/references/archive-shape.md +68 -0
  1747. package/payload/platform/plugins/substack-import/skills/substack-import/references/attachments.md +72 -0
  1748. package/payload/platform/plugins/substack-import/skills/substack-import/references/engagement.md +61 -0
  1749. package/payload/platform/plugins/substack-import/skills/substack-import/references/posts.md +80 -0
  1750. package/payload/platform/plugins/substack-import/skills/substack-import/references/subscribers.md +74 -0
  1751. package/payload/platform/plugins/telegram/.claude-plugin/plugin.json +17 -0
  1752. package/payload/platform/plugins/telegram/PLUGIN.md +53 -0
  1753. package/payload/platform/plugins/telegram/mcp/dist/index.d.ts +2 -0
  1754. package/payload/platform/plugins/telegram/mcp/dist/index.d.ts.map +1 -0
  1755. package/payload/platform/plugins/telegram/mcp/dist/index.js +198 -0
  1756. package/payload/platform/plugins/telegram/mcp/dist/index.js.map +1 -0
  1757. package/payload/platform/plugins/telegram/mcp/dist/lib/telegram.d.ts +41 -0
  1758. package/payload/platform/plugins/telegram/mcp/dist/lib/telegram.d.ts.map +1 -0
  1759. package/payload/platform/plugins/telegram/mcp/dist/lib/telegram.js +70 -0
  1760. package/payload/platform/plugins/telegram/mcp/dist/lib/telegram.js.map +1 -0
  1761. package/payload/platform/plugins/telegram/mcp/dist/tools/message-history.d.ts +16 -0
  1762. package/payload/platform/plugins/telegram/mcp/dist/tools/message-history.d.ts.map +1 -0
  1763. package/payload/platform/plugins/telegram/mcp/dist/tools/message-history.js +68 -0
  1764. package/payload/platform/plugins/telegram/mcp/dist/tools/message-history.js.map +1 -0
  1765. package/payload/platform/plugins/telegram/mcp/dist/tools/message.d.ts +20 -0
  1766. package/payload/platform/plugins/telegram/mcp/dist/tools/message.d.ts.map +1 -0
  1767. package/payload/platform/plugins/telegram/mcp/dist/tools/message.js +34 -0
  1768. package/payload/platform/plugins/telegram/mcp/dist/tools/message.js.map +1 -0
  1769. package/payload/platform/plugins/telegram/mcp/package.json +19 -0
  1770. package/payload/platform/plugins/telegram/references/setup-guide.md +50 -0
  1771. package/payload/platform/plugins/url-get/.claude-plugin/plugin.json +17 -0
  1772. package/payload/platform/plugins/url-get/PLUGIN.md +91 -0
  1773. package/payload/platform/plugins/url-get/mcp/dist/index.d.ts +9 -0
  1774. package/payload/platform/plugins/url-get/mcp/dist/index.d.ts.map +1 -0
  1775. package/payload/platform/plugins/url-get/mcp/dist/index.js +53 -0
  1776. package/payload/platform/plugins/url-get/mcp/dist/index.js.map +1 -0
  1777. package/payload/platform/plugins/url-get/mcp/dist/lib/summarise.d.ts +8 -0
  1778. package/payload/platform/plugins/url-get/mcp/dist/lib/summarise.d.ts.map +1 -0
  1779. package/payload/platform/plugins/url-get/mcp/dist/lib/summarise.js +83 -0
  1780. package/payload/platform/plugins/url-get/mcp/dist/lib/summarise.js.map +1 -0
  1781. package/payload/platform/plugins/url-get/mcp/dist/tools/url-get.d.ts +21 -0
  1782. package/payload/platform/plugins/url-get/mcp/dist/tools/url-get.d.ts.map +1 -0
  1783. package/payload/platform/plugins/url-get/mcp/dist/tools/url-get.js +133 -0
  1784. package/payload/platform/plugins/url-get/mcp/dist/tools/url-get.js.map +1 -0
  1785. package/payload/platform/plugins/url-get/mcp/package.json +22 -0
  1786. package/payload/platform/plugins/whatsapp/.claude-plugin/plugin.json +17 -0
  1787. package/payload/platform/plugins/whatsapp/PLUGIN.md +108 -0
  1788. package/payload/platform/plugins/whatsapp/mcp/dist/__tests__/boot-without-env.test.d.ts +2 -0
  1789. package/payload/platform/plugins/whatsapp/mcp/dist/__tests__/boot-without-env.test.d.ts.map +1 -0
  1790. package/payload/platform/plugins/whatsapp/mcp/dist/__tests__/boot-without-env.test.js +58 -0
  1791. package/payload/platform/plugins/whatsapp/mcp/dist/__tests__/boot-without-env.test.js.map +1 -0
  1792. package/payload/platform/plugins/whatsapp/mcp/dist/call-api.d.ts +14 -0
  1793. package/payload/platform/plugins/whatsapp/mcp/dist/call-api.d.ts.map +1 -0
  1794. package/payload/platform/plugins/whatsapp/mcp/dist/call-api.js +42 -0
  1795. package/payload/platform/plugins/whatsapp/mcp/dist/call-api.js.map +1 -0
  1796. package/payload/platform/plugins/whatsapp/mcp/dist/index.d.ts +8 -0
  1797. package/payload/platform/plugins/whatsapp/mcp/dist/index.d.ts.map +1 -0
  1798. package/payload/platform/plugins/whatsapp/mcp/dist/index.js +489 -0
  1799. package/payload/platform/plugins/whatsapp/mcp/dist/index.js.map +1 -0
  1800. package/payload/platform/plugins/whatsapp/mcp/package.json +21 -0
  1801. package/payload/platform/plugins/whatsapp/mcp/vitest.config.ts +9 -0
  1802. package/payload/platform/plugins/whatsapp/references/channels-whatsapp.md +256 -0
  1803. package/payload/platform/plugins/whatsapp/skills/connect-whatsapp/SKILL.md +82 -0
  1804. package/payload/platform/plugins/whatsapp/skills/manage-whatsapp-config/SKILL.md +93 -0
  1805. package/payload/platform/plugins/work/.claude-plugin/plugin.json +17 -0
  1806. package/payload/platform/plugins/work/.mcp.json +13 -0
  1807. package/payload/platform/plugins/work/PLUGIN.md +124 -0
  1808. package/payload/platform/plugins/work/mcp/dist/cli/project-create-cli.d.ts +2 -0
  1809. package/payload/platform/plugins/work/mcp/dist/cli/project-create-cli.d.ts.map +1 -0
  1810. package/payload/platform/plugins/work/mcp/dist/cli/project-create-cli.js +78 -0
  1811. package/payload/platform/plugins/work/mcp/dist/cli/project-create-cli.js.map +1 -0
  1812. package/payload/platform/plugins/work/mcp/dist/index.d.ts +2 -0
  1813. package/payload/platform/plugins/work/mcp/dist/index.d.ts.map +1 -0
  1814. package/payload/platform/plugins/work/mcp/dist/index.js +547 -0
  1815. package/payload/platform/plugins/work/mcp/dist/index.js.map +1 -0
  1816. package/payload/platform/plugins/work/mcp/dist/lib/embeddings.d.ts +7 -0
  1817. package/payload/platform/plugins/work/mcp/dist/lib/embeddings.d.ts.map +1 -0
  1818. package/payload/platform/plugins/work/mcp/dist/lib/embeddings.js +24 -0
  1819. package/payload/platform/plugins/work/mcp/dist/lib/embeddings.js.map +1 -0
  1820. package/payload/platform/plugins/work/mcp/dist/lib/neo4j.d.ts +5 -0
  1821. package/payload/platform/plugins/work/mcp/dist/lib/neo4j.d.ts.map +1 -0
  1822. package/payload/platform/plugins/work/mcp/dist/lib/neo4j.js +40 -0
  1823. package/payload/platform/plugins/work/mcp/dist/lib/neo4j.js.map +1 -0
  1824. package/payload/platform/plugins/work/mcp/dist/tools/project-complete.d.ts +17 -0
  1825. package/payload/platform/plugins/work/mcp/dist/tools/project-complete.d.ts.map +1 -0
  1826. package/payload/platform/plugins/work/mcp/dist/tools/project-complete.js +76 -0
  1827. package/payload/platform/plugins/work/mcp/dist/tools/project-complete.js.map +1 -0
  1828. package/payload/platform/plugins/work/mcp/dist/tools/project-create.d.ts +29 -0
  1829. package/payload/platform/plugins/work/mcp/dist/tools/project-create.d.ts.map +1 -0
  1830. package/payload/platform/plugins/work/mcp/dist/tools/project-create.js +235 -0
  1831. package/payload/platform/plugins/work/mcp/dist/tools/project-create.js.map +1 -0
  1832. package/payload/platform/plugins/work/mcp/dist/tools/project-get.d.ts +40 -0
  1833. package/payload/platform/plugins/work/mcp/dist/tools/project-get.d.ts.map +1 -0
  1834. package/payload/platform/plugins/work/mcp/dist/tools/project-get.js +125 -0
  1835. package/payload/platform/plugins/work/mcp/dist/tools/project-get.js.map +1 -0
  1836. package/payload/platform/plugins/work/mcp/dist/tools/project-list.d.ts +26 -0
  1837. package/payload/platform/plugins/work/mcp/dist/tools/project-list.d.ts.map +1 -0
  1838. package/payload/platform/plugins/work/mcp/dist/tools/project-list.js +81 -0
  1839. package/payload/platform/plugins/work/mcp/dist/tools/project-list.js.map +1 -0
  1840. package/payload/platform/plugins/work/mcp/dist/tools/project-update.d.ts +19 -0
  1841. package/payload/platform/plugins/work/mcp/dist/tools/project-update.d.ts.map +1 -0
  1842. package/payload/platform/plugins/work/mcp/dist/tools/project-update.js +102 -0
  1843. package/payload/platform/plugins/work/mcp/dist/tools/project-update.js.map +1 -0
  1844. package/payload/platform/plugins/work/mcp/dist/tools/session-list.d.ts +20 -0
  1845. package/payload/platform/plugins/work/mcp/dist/tools/session-list.d.ts.map +1 -0
  1846. package/payload/platform/plugins/work/mcp/dist/tools/session-list.js +37 -0
  1847. package/payload/platform/plugins/work/mcp/dist/tools/session-list.js.map +1 -0
  1848. package/payload/platform/plugins/work/mcp/dist/tools/session-name.d.ts +12 -0
  1849. package/payload/platform/plugins/work/mcp/dist/tools/session-name.d.ts.map +1 -0
  1850. package/payload/platform/plugins/work/mcp/dist/tools/session-name.js +28 -0
  1851. package/payload/platform/plugins/work/mcp/dist/tools/session-name.js.map +1 -0
  1852. package/payload/platform/plugins/work/mcp/dist/tools/work-complete.d.ts +16 -0
  1853. package/payload/platform/plugins/work/mcp/dist/tools/work-complete.d.ts.map +1 -0
  1854. package/payload/platform/plugins/work/mcp/dist/tools/work-complete.js +33 -0
  1855. package/payload/platform/plugins/work/mcp/dist/tools/work-complete.js.map +1 -0
  1856. package/payload/platform/plugins/work/mcp/dist/tools/work-create.d.ts +63 -0
  1857. package/payload/platform/plugins/work/mcp/dist/tools/work-create.d.ts.map +1 -0
  1858. package/payload/platform/plugins/work/mcp/dist/tools/work-create.js +141 -0
  1859. package/payload/platform/plugins/work/mcp/dist/tools/work-create.js.map +1 -0
  1860. package/payload/platform/plugins/work/mcp/dist/tools/work-get.d.ts +19 -0
  1861. package/payload/platform/plugins/work/mcp/dist/tools/work-get.d.ts.map +1 -0
  1862. package/payload/platform/plugins/work/mcp/dist/tools/work-get.js +51 -0
  1863. package/payload/platform/plugins/work/mcp/dist/tools/work-get.js.map +1 -0
  1864. package/payload/platform/plugins/work/mcp/dist/tools/work-list.d.ts +18 -0
  1865. package/payload/platform/plugins/work/mcp/dist/tools/work-list.d.ts.map +1 -0
  1866. package/payload/platform/plugins/work/mcp/dist/tools/work-list.js +66 -0
  1867. package/payload/platform/plugins/work/mcp/dist/tools/work-list.js.map +1 -0
  1868. package/payload/platform/plugins/work/mcp/dist/tools/work-ready.d.ts +21 -0
  1869. package/payload/platform/plugins/work/mcp/dist/tools/work-ready.d.ts.map +1 -0
  1870. package/payload/platform/plugins/work/mcp/dist/tools/work-ready.js +54 -0
  1871. package/payload/platform/plugins/work/mcp/dist/tools/work-ready.js.map +1 -0
  1872. package/payload/platform/plugins/work/mcp/dist/tools/work-relate.d.ts +12 -0
  1873. package/payload/platform/plugins/work/mcp/dist/tools/work-relate.d.ts.map +1 -0
  1874. package/payload/platform/plugins/work/mcp/dist/tools/work-relate.js +59 -0
  1875. package/payload/platform/plugins/work/mcp/dist/tools/work-relate.js.map +1 -0
  1876. package/payload/platform/plugins/work/mcp/dist/tools/work-update.d.ts +32 -0
  1877. package/payload/platform/plugins/work/mcp/dist/tools/work-update.d.ts.map +1 -0
  1878. package/payload/platform/plugins/work/mcp/dist/tools/work-update.js +112 -0
  1879. package/payload/platform/plugins/work/mcp/dist/tools/work-update.js.map +1 -0
  1880. package/payload/platform/plugins/work/mcp/package.json +20 -0
  1881. package/payload/platform/plugins/work/skills/execute-task/SKILL.md +101 -0
  1882. package/payload/platform/plugins/workflows/.claude-plugin/plugin.json +17 -0
  1883. package/payload/platform/plugins/workflows/.mcp.json +12 -0
  1884. package/payload/platform/plugins/workflows/PLUGIN.md +160 -0
  1885. package/payload/platform/plugins/workflows/mcp/dist/index.d.ts +2 -0
  1886. package/payload/platform/plugins/workflows/mcp/dist/index.d.ts.map +1 -0
  1887. package/payload/platform/plugins/workflows/mcp/dist/index.js +440 -0
  1888. package/payload/platform/plugins/workflows/mcp/dist/index.js.map +1 -0
  1889. package/payload/platform/plugins/workflows/mcp/dist/lib/active-runs.d.ts +38 -0
  1890. package/payload/platform/plugins/workflows/mcp/dist/lib/active-runs.d.ts.map +1 -0
  1891. package/payload/platform/plugins/workflows/mcp/dist/lib/active-runs.js +83 -0
  1892. package/payload/platform/plugins/workflows/mcp/dist/lib/active-runs.js.map +1 -0
  1893. package/payload/platform/plugins/workflows/mcp/dist/lib/embeddings.d.ts +2 -0
  1894. package/payload/platform/plugins/workflows/mcp/dist/lib/embeddings.d.ts.map +1 -0
  1895. package/payload/platform/plugins/workflows/mcp/dist/lib/embeddings.js +19 -0
  1896. package/payload/platform/plugins/workflows/mcp/dist/lib/embeddings.js.map +1 -0
  1897. package/payload/platform/plugins/workflows/mcp/dist/lib/llm-call.d.ts +151 -0
  1898. package/payload/platform/plugins/workflows/mcp/dist/lib/llm-call.d.ts.map +1 -0
  1899. package/payload/platform/plugins/workflows/mcp/dist/lib/llm-call.js +299 -0
  1900. package/payload/platform/plugins/workflows/mcp/dist/lib/llm-call.js.map +1 -0
  1901. package/payload/platform/plugins/workflows/mcp/dist/lib/neo4j.d.ts +5 -0
  1902. package/payload/platform/plugins/workflows/mcp/dist/lib/neo4j.d.ts.map +1 -0
  1903. package/payload/platform/plugins/workflows/mcp/dist/lib/neo4j.js +40 -0
  1904. package/payload/platform/plugins/workflows/mcp/dist/lib/neo4j.js.map +1 -0
  1905. package/payload/platform/plugins/workflows/mcp/dist/lib/step-resolver.d.ts +66 -0
  1906. package/payload/platform/plugins/workflows/mcp/dist/lib/step-resolver.d.ts.map +1 -0
  1907. package/payload/platform/plugins/workflows/mcp/dist/lib/step-resolver.js +187 -0
  1908. package/payload/platform/plugins/workflows/mcp/dist/lib/step-resolver.js.map +1 -0
  1909. package/payload/platform/plugins/workflows/mcp/dist/lib/validate-capabilities.d.ts +25 -0
  1910. package/payload/platform/plugins/workflows/mcp/dist/lib/validate-capabilities.d.ts.map +1 -0
  1911. package/payload/platform/plugins/workflows/mcp/dist/lib/validate-capabilities.js +56 -0
  1912. package/payload/platform/plugins/workflows/mcp/dist/lib/validate-capabilities.js.map +1 -0
  1913. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-create.d.ts +33 -0
  1914. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-create.d.ts.map +1 -0
  1915. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-create.js +130 -0
  1916. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-create.js.map +1 -0
  1917. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-delete.d.ts +28 -0
  1918. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-delete.d.ts.map +1 -0
  1919. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-delete.js +57 -0
  1920. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-delete.js.map +1 -0
  1921. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-execute.d.ts +51 -0
  1922. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-execute.d.ts.map +1 -0
  1923. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-execute.js +382 -0
  1924. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-execute.js.map +1 -0
  1925. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-get.d.ts +24 -0
  1926. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-get.d.ts.map +1 -0
  1927. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-get.js +48 -0
  1928. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-get.js.map +1 -0
  1929. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-list.d.ts +16 -0
  1930. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-list.d.ts.map +1 -0
  1931. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-list.js +44 -0
  1932. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-list.js.map +1 -0
  1933. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-runs.d.ts +28 -0
  1934. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-runs.d.ts.map +1 -0
  1935. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-runs.js +71 -0
  1936. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-runs.js.map +1 -0
  1937. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-update.d.ts +11 -0
  1938. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-update.d.ts.map +1 -0
  1939. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-update.js +150 -0
  1940. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-update.js.map +1 -0
  1941. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-validate.d.ts +13 -0
  1942. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-validate.d.ts.map +1 -0
  1943. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-validate.js +53 -0
  1944. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-validate.js.map +1 -0
  1945. package/payload/platform/plugins/workflows/mcp/package.json +20 -0
  1946. package/payload/platform/plugins/workflows/mcp/test-runner.mjs +710 -0
  1947. package/payload/platform/plugins/workflows/mcp/test-workflows.sh +77 -0
  1948. package/payload/platform/plugins/workflows/skills/workflow-manager/SKILL.md +93 -0
  1949. package/payload/platform/plugins/x-import/.claude-plugin/plugin.json +8 -0
  1950. package/payload/platform/plugins/x-import/PLUGIN.md +33 -0
  1951. package/payload/platform/plugins/x-import/references/archive-shape.md +124 -0
  1952. package/payload/platform/plugins/x-import/references/transcript-shape.md +121 -0
  1953. package/payload/platform/plugins/x-import/skills/x-import/SKILL.md +123 -0
  1954. package/payload/platform/scripts/__tests__/agents-md-bootstrap.test.sh +111 -0
  1955. package/payload/platform/scripts/__tests__/first-token-creates-stream-log.test.sh +37 -0
  1956. package/payload/platform/scripts/__tests__/logs-read-prefix.sh +237 -0
  1957. package/payload/platform/scripts/__tests__/resume-tunnel.test.sh +251 -0
  1958. package/payload/platform/scripts/admin-conversation-recover.mjs +386 -0
  1959. package/payload/platform/scripts/admin-persist-audit.ts +211 -0
  1960. package/payload/platform/scripts/check-architecture-skill-no-drift.mjs +114 -0
  1961. package/payload/platform/scripts/check-canonical-tool-names.mjs +110 -0
  1962. package/payload/platform/scripts/check-cypher-int-params.mjs +277 -0
  1963. package/payload/platform/scripts/check-no-conversation-id-leaks.mjs +165 -0
  1964. package/payload/platform/scripts/check-no-direct-clipboard.mjs +54 -0
  1965. package/payload/platform/scripts/check-no-esm-require.mjs +138 -0
  1966. package/payload/platform/scripts/check-no-legacy-spawn-route.mjs +37 -0
  1967. package/payload/platform/scripts/check-no-task-id-leaks.mjs +110 -0
  1968. package/payload/platform/scripts/check-plugin-references.mjs +256 -0
  1969. package/payload/platform/scripts/check-plugin-tools-mcp-consistency.mjs +136 -0
  1970. package/payload/platform/scripts/check-roles-doc-completeness.mjs +96 -0
  1971. package/payload/platform/scripts/check-skill-frontmatter.mjs +139 -0
  1972. package/payload/platform/scripts/check-skill-load-coverage.mjs +100 -0
  1973. package/payload/platform/scripts/check-specialist-tool-surface.mjs +323 -0
  1974. package/payload/platform/scripts/conversation-id-allowlist.txt +142 -0
  1975. package/payload/platform/scripts/dedupe-userprofile-ghosts.sh +388 -0
  1976. package/payload/platform/scripts/generate-canonical-tool-names.mjs +63 -0
  1977. package/payload/platform/scripts/generate-entitlement-fixture.mjs +152 -0
  1978. package/payload/platform/scripts/identity-forbidden-token-check.mjs +88 -0
  1979. package/payload/platform/scripts/installer-device-verify.sh +249 -0
  1980. package/payload/platform/scripts/lib/agents-md-bootstrap.sh +49 -0
  1981. package/payload/platform/scripts/lib/canonical-tool-names.mjs +88 -0
  1982. package/payload/platform/scripts/lib/read-brand-json.sh +69 -0
  1983. package/payload/platform/scripts/lib/resolve-account-dir.sh +184 -0
  1984. package/payload/platform/scripts/log-adherence-check.sh +125 -0
  1985. package/payload/platform/scripts/logs-read-jsonl.test.sh +307 -0
  1986. package/payload/platform/scripts/logs-read.sh +980 -0
  1987. package/payload/platform/scripts/logs-read.test.sh +159 -0
  1988. package/payload/platform/scripts/redact-install-logs.sh +87 -0
  1989. package/payload/platform/scripts/resume-tunnel.sh +148 -0
  1990. package/payload/platform/scripts/rss-sampler.sh +58 -0
  1991. package/payload/platform/scripts/seed-neo4j.sh +193 -0
  1992. package/payload/platform/scripts/setup-account.sh +373 -0
  1993. package/payload/platform/scripts/smoke-boot-services.sh +413 -0
  1994. package/payload/platform/scripts/test-laptop-vnc-boot.sh +88 -0
  1995. package/payload/platform/scripts/verify-skill-tool-surface.sh +389 -0
  1996. package/payload/platform/scripts/vnc.sh +476 -0
  1997. package/payload/platform/scripts/wifi-provision-server/server.js +743 -0
  1998. package/payload/platform/scripts/wifi-provision.sh +492 -0
  1999. package/payload/platform/services/claude-session-manager/dist/admin-identity-audit.d.ts +39 -0
  2000. package/payload/platform/services/claude-session-manager/dist/admin-identity-audit.d.ts.map +1 -0
  2001. package/payload/platform/services/claude-session-manager/dist/admin-identity-audit.js +133 -0
  2002. package/payload/platform/services/claude-session-manager/dist/admin-identity-audit.js.map +1 -0
  2003. package/payload/platform/services/claude-session-manager/dist/agent-identity-locator.d.ts +23 -0
  2004. package/payload/platform/services/claude-session-manager/dist/agent-identity-locator.d.ts.map +1 -0
  2005. package/payload/platform/services/claude-session-manager/dist/agent-identity-locator.js +29 -0
  2006. package/payload/platform/services/claude-session-manager/dist/agent-identity-locator.js.map +1 -0
  2007. package/payload/platform/services/claude-session-manager/dist/auth-snapshot.d.ts +4 -0
  2008. package/payload/platform/services/claude-session-manager/dist/auth-snapshot.d.ts.map +1 -0
  2009. package/payload/platform/services/claude-session-manager/dist/auth-snapshot.js +50 -0
  2010. package/payload/platform/services/claude-session-manager/dist/auth-snapshot.js.map +1 -0
  2011. package/payload/platform/services/claude-session-manager/dist/brand-foreign-filter.d.ts +30 -0
  2012. package/payload/platform/services/claude-session-manager/dist/brand-foreign-filter.d.ts.map +1 -0
  2013. package/payload/platform/services/claude-session-manager/dist/brand-foreign-filter.js +86 -0
  2014. package/payload/platform/services/claude-session-manager/dist/brand-foreign-filter.js.map +1 -0
  2015. package/payload/platform/services/claude-session-manager/dist/canonical-tool-names.d.ts +7 -0
  2016. package/payload/platform/services/claude-session-manager/dist/canonical-tool-names.d.ts.map +1 -0
  2017. package/payload/platform/services/claude-session-manager/dist/canonical-tool-names.generated.d.ts +5 -0
  2018. package/payload/platform/services/claude-session-manager/dist/canonical-tool-names.generated.d.ts.map +1 -0
  2019. package/payload/platform/services/claude-session-manager/dist/canonical-tool-names.generated.js +205 -0
  2020. package/payload/platform/services/claude-session-manager/dist/canonical-tool-names.generated.js.map +1 -0
  2021. package/payload/platform/services/claude-session-manager/dist/canonical-tool-names.js +23 -0
  2022. package/payload/platform/services/claude-session-manager/dist/canonical-tool-names.js.map +1 -0
  2023. package/payload/platform/services/claude-session-manager/dist/config.d.ts +55 -0
  2024. package/payload/platform/services/claude-session-manager/dist/config.d.ts.map +1 -0
  2025. package/payload/platform/services/claude-session-manager/dist/config.js +234 -0
  2026. package/payload/platform/services/claude-session-manager/dist/config.js.map +1 -0
  2027. package/payload/platform/services/claude-session-manager/dist/fs-watcher.d.ts +150 -0
  2028. package/payload/platform/services/claude-session-manager/dist/fs-watcher.d.ts.map +1 -0
  2029. package/payload/platform/services/claude-session-manager/dist/fs-watcher.js +881 -0
  2030. package/payload/platform/services/claude-session-manager/dist/fs-watcher.js.map +1 -0
  2031. package/payload/platform/services/claude-session-manager/dist/hooks-discovery.d.ts +7 -0
  2032. package/payload/platform/services/claude-session-manager/dist/hooks-discovery.d.ts.map +1 -0
  2033. package/payload/platform/services/claude-session-manager/dist/hooks-discovery.js +90 -0
  2034. package/payload/platform/services/claude-session-manager/dist/hooks-discovery.js.map +1 -0
  2035. package/payload/platform/services/claude-session-manager/dist/http-server.d.ts +40 -0
  2036. package/payload/platform/services/claude-session-manager/dist/http-server.d.ts.map +1 -0
  2037. package/payload/platform/services/claude-session-manager/dist/http-server.js +1761 -0
  2038. package/payload/platform/services/claude-session-manager/dist/http-server.js.map +1 -0
  2039. package/payload/platform/services/claude-session-manager/dist/index.d.ts +2 -0
  2040. package/payload/platform/services/claude-session-manager/dist/index.d.ts.map +1 -0
  2041. package/payload/platform/services/claude-session-manager/dist/index.js +675 -0
  2042. package/payload/platform/services/claude-session-manager/dist/index.js.map +1 -0
  2043. package/payload/platform/services/claude-session-manager/dist/jsonl-enumerator.d.ts +43 -0
  2044. package/payload/platform/services/claude-session-manager/dist/jsonl-enumerator.d.ts.map +1 -0
  2045. package/payload/platform/services/claude-session-manager/dist/jsonl-enumerator.js +155 -0
  2046. package/payload/platform/services/claude-session-manager/dist/jsonl-enumerator.js.map +1 -0
  2047. package/payload/platform/services/claude-session-manager/dist/jsonl-observer.d.ts +30 -0
  2048. package/payload/platform/services/claude-session-manager/dist/jsonl-observer.d.ts.map +1 -0
  2049. package/payload/platform/services/claude-session-manager/dist/jsonl-observer.js +204 -0
  2050. package/payload/platform/services/claude-session-manager/dist/jsonl-observer.js.map +1 -0
  2051. package/payload/platform/services/claude-session-manager/dist/jsonl-path.d.ts +41 -0
  2052. package/payload/platform/services/claude-session-manager/dist/jsonl-path.d.ts.map +1 -0
  2053. package/payload/platform/services/claude-session-manager/dist/jsonl-path.js +105 -0
  2054. package/payload/platform/services/claude-session-manager/dist/jsonl-path.js.map +1 -0
  2055. package/payload/platform/services/claude-session-manager/dist/jsonl-tail.d.ts +81 -0
  2056. package/payload/platform/services/claude-session-manager/dist/jsonl-tail.d.ts.map +1 -0
  2057. package/payload/platform/services/claude-session-manager/dist/jsonl-tail.js +499 -0
  2058. package/payload/platform/services/claude-session-manager/dist/jsonl-tail.js.map +1 -0
  2059. package/payload/platform/services/claude-session-manager/dist/mcp-tools-probe.d.ts +38 -0
  2060. package/payload/platform/services/claude-session-manager/dist/mcp-tools-probe.d.ts.map +1 -0
  2061. package/payload/platform/services/claude-session-manager/dist/mcp-tools-probe.js +131 -0
  2062. package/payload/platform/services/claude-session-manager/dist/mcp-tools-probe.js.map +1 -0
  2063. package/payload/platform/services/claude-session-manager/dist/permission-mode-tail.d.ts +20 -0
  2064. package/payload/platform/services/claude-session-manager/dist/permission-mode-tail.d.ts.map +1 -0
  2065. package/payload/platform/services/claude-session-manager/dist/permission-mode-tail.js +71 -0
  2066. package/payload/platform/services/claude-session-manager/dist/permission-mode-tail.js.map +1 -0
  2067. package/payload/platform/services/claude-session-manager/dist/pty-census.d.ts +40 -0
  2068. package/payload/platform/services/claude-session-manager/dist/pty-census.d.ts.map +1 -0
  2069. package/payload/platform/services/claude-session-manager/dist/pty-census.js +125 -0
  2070. package/payload/platform/services/claude-session-manager/dist/pty-census.js.map +1 -0
  2071. package/payload/platform/services/claude-session-manager/dist/pty-spawner.d.ts +641 -0
  2072. package/payload/platform/services/claude-session-manager/dist/pty-spawner.d.ts.map +1 -0
  2073. package/payload/platform/services/claude-session-manager/dist/pty-spawner.js +2077 -0
  2074. package/payload/platform/services/claude-session-manager/dist/pty-spawner.js.map +1 -0
  2075. package/payload/platform/services/claude-session-manager/dist/public-agent-reachability.d.ts +40 -0
  2076. package/payload/platform/services/claude-session-manager/dist/public-agent-reachability.d.ts.map +1 -0
  2077. package/payload/platform/services/claude-session-manager/dist/public-agent-reachability.js +123 -0
  2078. package/payload/platform/services/claude-session-manager/dist/public-agent-reachability.js.map +1 -0
  2079. package/payload/platform/services/claude-session-manager/dist/public-tool-audit.d.ts +33 -0
  2080. package/payload/platform/services/claude-session-manager/dist/public-tool-audit.d.ts.map +1 -0
  2081. package/payload/platform/services/claude-session-manager/dist/public-tool-audit.js +149 -0
  2082. package/payload/platform/services/claude-session-manager/dist/public-tool-audit.js.map +1 -0
  2083. package/payload/platform/services/claude-session-manager/dist/rc-daemon.d.ts +157 -0
  2084. package/payload/platform/services/claude-session-manager/dist/rc-daemon.d.ts.map +1 -0
  2085. package/payload/platform/services/claude-session-manager/dist/rc-daemon.js +556 -0
  2086. package/payload/platform/services/claude-session-manager/dist/rc-daemon.js.map +1 -0
  2087. package/payload/platform/services/claude-session-manager/dist/rc-life.d.ts +4 -0
  2088. package/payload/platform/services/claude-session-manager/dist/rc-life.d.ts.map +1 -0
  2089. package/payload/platform/services/claude-session-manager/dist/rc-life.js +16 -0
  2090. package/payload/platform/services/claude-session-manager/dist/rc-life.js.map +1 -0
  2091. package/payload/platform/services/claude-session-manager/dist/rc-script-spawn.d.ts +80 -0
  2092. package/payload/platform/services/claude-session-manager/dist/rc-script-spawn.d.ts.map +1 -0
  2093. package/payload/platform/services/claude-session-manager/dist/rc-script-spawn.js +306 -0
  2094. package/payload/platform/services/claude-session-manager/dist/rc-script-spawn.js.map +1 -0
  2095. package/payload/platform/services/claude-session-manager/dist/reaper.d.ts +28 -0
  2096. package/payload/platform/services/claude-session-manager/dist/reaper.d.ts.map +1 -0
  2097. package/payload/platform/services/claude-session-manager/dist/reaper.js +118 -0
  2098. package/payload/platform/services/claude-session-manager/dist/reaper.js.map +1 -0
  2099. package/payload/platform/services/claude-session-manager/dist/session-sidecar.d.ts +91 -0
  2100. package/payload/platform/services/claude-session-manager/dist/session-sidecar.d.ts.map +1 -0
  2101. package/payload/platform/services/claude-session-manager/dist/session-sidecar.js +232 -0
  2102. package/payload/platform/services/claude-session-manager/dist/session-sidecar.js.map +1 -0
  2103. package/payload/platform/services/claude-session-manager/dist/session-store.d.ts +49 -0
  2104. package/payload/platform/services/claude-session-manager/dist/session-store.d.ts.map +1 -0
  2105. package/payload/platform/services/claude-session-manager/dist/session-store.js +52 -0
  2106. package/payload/platform/services/claude-session-manager/dist/session-store.js.map +1 -0
  2107. package/payload/platform/services/claude-session-manager/dist/spawn-rate-limiter.d.ts +28 -0
  2108. package/payload/platform/services/claude-session-manager/dist/spawn-rate-limiter.d.ts.map +1 -0
  2109. package/payload/platform/services/claude-session-manager/dist/spawn-rate-limiter.js +77 -0
  2110. package/payload/platform/services/claude-session-manager/dist/spawn-rate-limiter.js.map +1 -0
  2111. package/payload/platform/services/claude-session-manager/dist/specialist-drift.d.ts +60 -0
  2112. package/payload/platform/services/claude-session-manager/dist/specialist-drift.d.ts.map +1 -0
  2113. package/payload/platform/services/claude-session-manager/dist/specialist-drift.js +203 -0
  2114. package/payload/platform/services/claude-session-manager/dist/specialist-drift.js.map +1 -0
  2115. package/payload/platform/services/claude-session-manager/dist/system-prompt.d.ts +151 -0
  2116. package/payload/platform/services/claude-session-manager/dist/system-prompt.d.ts.map +1 -0
  2117. package/payload/platform/services/claude-session-manager/dist/system-prompt.js +445 -0
  2118. package/payload/platform/services/claude-session-manager/dist/system-prompt.js.map +1 -0
  2119. package/payload/platform/services/claude-session-manager/dist/systemd-scope.d.ts +164 -0
  2120. package/payload/platform/services/claude-session-manager/dist/systemd-scope.d.ts.map +1 -0
  2121. package/payload/platform/services/claude-session-manager/dist/systemd-scope.js +296 -0
  2122. package/payload/platform/services/claude-session-manager/dist/systemd-scope.js.map +1 -0
  2123. package/payload/platform/services/claude-session-manager/dist/systemd-spawn.d.ts +83 -0
  2124. package/payload/platform/services/claude-session-manager/dist/systemd-spawn.d.ts.map +1 -0
  2125. package/payload/platform/services/claude-session-manager/dist/systemd-spawn.js +345 -0
  2126. package/payload/platform/services/claude-session-manager/dist/systemd-spawn.js.map +1 -0
  2127. package/payload/platform/services/claude-session-manager/dist/tool-surface.d.ts +69 -0
  2128. package/payload/platform/services/claude-session-manager/dist/tool-surface.d.ts.map +1 -0
  2129. package/payload/platform/services/claude-session-manager/dist/tool-surface.js +373 -0
  2130. package/payload/platform/services/claude-session-manager/dist/tool-surface.js.map +1 -0
  2131. package/payload/platform/services/claude-session-manager/dist/types.d.ts +41 -0
  2132. package/payload/platform/services/claude-session-manager/dist/types.d.ts.map +1 -0
  2133. package/payload/platform/services/claude-session-manager/dist/types.js +2 -0
  2134. package/payload/platform/services/claude-session-manager/dist/types.js.map +1 -0
  2135. package/payload/platform/services/claude-session-manager/dist/url-capture.d.ts +12 -0
  2136. package/payload/platform/services/claude-session-manager/dist/url-capture.d.ts.map +1 -0
  2137. package/payload/platform/services/claude-session-manager/dist/url-capture.js +79 -0
  2138. package/payload/platform/services/claude-session-manager/dist/url-capture.js.map +1 -0
  2139. package/payload/platform/services/claude-session-manager/dist/user-title-store.d.ts +39 -0
  2140. package/payload/platform/services/claude-session-manager/dist/user-title-store.d.ts.map +1 -0
  2141. package/payload/platform/services/claude-session-manager/dist/user-title-store.js +138 -0
  2142. package/payload/platform/services/claude-session-manager/dist/user-title-store.js.map +1 -0
  2143. package/payload/platform/services/claude-session-manager/package.json +22 -0
  2144. package/payload/platform/services/claude-session-manager/scripts/stash-cleanup.sh +410 -0
  2145. package/payload/platform/services/claude-session-manager/vitest.config.ts +14 -0
  2146. package/payload/platform/templates/account.json +12 -0
  2147. package/payload/platform/templates/agents/admin/AGENTS.md +23 -0
  2148. package/payload/platform/templates/agents/admin/IDENTITY.md +69 -0
  2149. package/payload/platform/templates/agents/admin/LEARNINGS.md +3 -0
  2150. package/payload/platform/templates/agents/admin/SOUL.md +1 -0
  2151. package/payload/platform/templates/agents/public/IDENTITY.md +19 -0
  2152. package/payload/platform/templates/specialists/.claude-plugin/plugin.json +4 -0
  2153. package/payload/platform/templates/specialists/agents/archive-ingest-operator.md +45 -0
  2154. package/payload/platform/templates/specialists/agents/citation-auditor.md +37 -0
  2155. package/payload/platform/templates/specialists/agents/coding-assistant.md +73 -0
  2156. package/payload/platform/templates/specialists/agents/compiled-truth-rewriter.md +42 -0
  2157. package/payload/platform/templates/specialists/agents/content-producer.md +65 -0
  2158. package/payload/platform/templates/specialists/agents/database-operator.md +29 -0
  2159. package/payload/platform/templates/specialists/agents/librarian.md +57 -0
  2160. package/payload/platform/templates/specialists/agents/personal-assistant.md +63 -0
  2161. package/payload/platform/templates/specialists/agents/project-manager.md +63 -0
  2162. package/payload/platform/templates/specialists/agents/public-session-reviewer.md +40 -0
  2163. package/payload/platform/templates/specialists/agents/research-assistant.md +73 -0
  2164. package/payload/platform/templates/specialists/agents/typed-edge-classifier.md +37 -0
  2165. package/payload/platform/templates/systemd/edge.service.template +38 -0
  2166. package/payload/platform/tsconfig.base.json +18 -0
  2167. package/payload/premium-plugins/.claude-plugin/marketplace.json +23 -0
  2168. package/payload/premium-plugins/teaching/.claude-plugin/plugin.json +8 -0
  2169. package/payload/premium-plugins/teaching/PLUGIN.md +58 -0
  2170. package/payload/premium-plugins/teaching/skills/interactive-tutor/SKILL.md +59 -0
  2171. package/payload/premium-plugins/teaching/skills/interactive-tutor/references/assessment.md +70 -0
  2172. package/payload/premium-plugins/teaching/skills/interactive-tutor/references/classroom-conduct.md +43 -0
  2173. package/payload/premium-plugins/teaching/skills/interactive-tutor/references/teaching-modes.md +83 -0
  2174. package/payload/premium-plugins/teaching/skills/lesson-planner/SKILL.md +48 -0
  2175. package/payload/premium-plugins/teaching/skills/lesson-planner/references/context-gathering.md +41 -0
  2176. package/payload/premium-plugins/teaching/skills/lesson-planner/references/plan-structure.md +94 -0
  2177. package/payload/premium-plugins/teaching/skills/study-pack-builder/SKILL.md +52 -0
  2178. package/payload/premium-plugins/teaching/skills/study-pack-builder/references/disaggregation.md +49 -0
  2179. package/payload/premium-plugins/teaching/skills/study-pack-builder/references/materials.md +116 -0
  2180. package/payload/premium-plugins/venture-studio/.claude-plugin/plugin.json +8 -0
  2181. package/payload/premium-plugins/venture-studio/PLUGIN.md +119 -0
  2182. package/payload/premium-plugins/venture-studio/bin/scaffold.sh +116 -0
  2183. package/payload/premium-plugins/venture-studio/skills/brand-pack/SKILL.md +256 -0
  2184. package/payload/premium-plugins/venture-studio/skills/brand-pack/references/color-psychology.md +118 -0
  2185. package/payload/premium-plugins/venture-studio/skills/investor-data-room/SKILL.md +376 -0
  2186. package/payload/premium-plugins/venture-studio/skills/investor-data-room/references/business-plan-template.md +64 -0
  2187. package/payload/premium-plugins/venture-studio/skills/investor-data-room/references/compliance-research-checklist.md +53 -0
  2188. package/payload/premium-plugins/venture-studio/skills/investor-data-room/references/data-room-structure.md +88 -0
  2189. package/payload/premium-plugins/venture-studio/skills/investor-data-room/references/deck-blueprint-template.md +39 -0
  2190. package/payload/premium-plugins/venture-studio/skills/investor-data-room/references/design-tokens-application.md +79 -0
  2191. package/payload/premium-plugins/venture-studio/skills/investor-data-room/references/html-pdf-pipeline.md +236 -0
  2192. package/payload/premium-plugins/venture-studio/skills/investor-data-room/references/internal-workings-scrub.md +33 -0
  2193. package/payload/premium-plugins/venture-studio/skills/investor-data-room/references/termsheet-template.md +88 -0
  2194. package/payload/premium-plugins/venture-studio/skills/investor-data-room/templates/prospectus/index.html +1565 -0
  2195. package/payload/premium-plugins/venture-studio/skills/investor-data-room/templates/prospectus/render-pdf.mjs +91 -0
  2196. package/payload/premium-plugins/venture-studio/skills/investor-data-room/templates/prospectus/term_sheet.html +715 -0
  2197. package/payload/premium-plugins/venture-studio/skills/office-hours/SKILL.md +587 -0
  2198. package/payload/premium-plugins/venture-studio/skills/prototype-host/SKILL.md +179 -0
  2199. package/payload/premium-plugins/venture-studio/skills/prototype-host/references/cloudflared-ingress-edit.md +81 -0
  2200. package/payload/premium-plugins/venture-studio/skills/prototype-host/references/scaffold-frameworks.md +60 -0
  2201. package/payload/premium-plugins/venture-studio/skills/prototype-host/references/systemd-user-service.md +104 -0
  2202. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/SKILL.md +336 -0
  2203. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/aarrr-metrics.md +275 -0
  2204. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/assumption-testing.md +93 -0
  2205. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/boolean-search.md +308 -0
  2206. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/build-measure-learn.md +262 -0
  2207. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/business-model-canvas.md +171 -0
  2208. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/commitment-signals.md +246 -0
  2209. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/design-thinking.md +183 -0
  2210. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/earlyvangelist.md +190 -0
  2211. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/first-principles.md +58 -0
  2212. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/fishbone.md +114 -0
  2213. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/five-whys.md +43 -0
  2214. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/ice-scoring.md +237 -0
  2215. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/innovation-accounting.md +290 -0
  2216. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/jtbd.md +105 -0
  2217. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/landing-page.md +361 -0
  2218. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/market-type.md +167 -0
  2219. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/mom-test.md +193 -0
  2220. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/mvp-types.md +200 -0
  2221. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/og-images.md +239 -0
  2222. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/pareto.md +103 -0
  2223. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/persona-development.md +291 -0
  2224. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/pivot-types.md +225 -0
  2225. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/positioning-statement.md +179 -0
  2226. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/prd.md +363 -0
  2227. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/pre-mortem.md +74 -0
  2228. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/problem-validation.md +253 -0
  2229. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/product-market-fit.md +256 -0
  2230. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/research-synthesis.md +276 -0
  2231. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/three-engines-of-growth.md +248 -0
  2232. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/validation-tests.md +89 -0
  2233. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/value-proposition-canvas.md +121 -0
  2234. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/win-loss-analysis.md +242 -0
  2235. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/workflow-mapping.md +271 -0
  2236. package/payload/premium-plugins/writer-craft/.claude-plugin/plugin.json +17 -0
  2237. package/payload/premium-plugins/writer-craft/PLUGIN.md +134 -0
  2238. package/payload/premium-plugins/writer-craft/agents/writer-craft--manuscript-reviewer.md +96 -0
  2239. package/payload/premium-plugins/writer-craft/lib/mcp-stderr-tee/dist/index.d.ts +51 -0
  2240. package/payload/premium-plugins/writer-craft/lib/mcp-stderr-tee/dist/index.d.ts.map +1 -0
  2241. package/payload/premium-plugins/writer-craft/lib/mcp-stderr-tee/dist/index.js +196 -0
  2242. package/payload/premium-plugins/writer-craft/lib/mcp-stderr-tee/dist/index.js.map +1 -0
  2243. package/payload/premium-plugins/writer-craft/lib/mcp-stderr-tee/package.json +7 -0
  2244. package/payload/premium-plugins/writer-craft/mcp/dist/cli/ingest-session-text.d.ts +3 -0
  2245. package/payload/premium-plugins/writer-craft/mcp/dist/cli/ingest-session-text.d.ts.map +1 -0
  2246. package/payload/premium-plugins/writer-craft/mcp/dist/cli/ingest-session-text.js +58 -0
  2247. package/payload/premium-plugins/writer-craft/mcp/dist/cli/ingest-session-text.js.map +1 -0
  2248. package/payload/premium-plugins/writer-craft/mcp/dist/index.d.ts +3 -0
  2249. package/payload/premium-plugins/writer-craft/mcp/dist/index.d.ts.map +1 -0
  2250. package/payload/premium-plugins/writer-craft/mcp/dist/index.js +362 -0
  2251. package/payload/premium-plugins/writer-craft/mcp/dist/index.js.map +1 -0
  2252. package/payload/premium-plugins/writer-craft/mcp/dist/lib/neo4j.d.ts +14 -0
  2253. package/payload/premium-plugins/writer-craft/mcp/dist/lib/neo4j.d.ts.map +1 -0
  2254. package/payload/premium-plugins/writer-craft/mcp/dist/lib/neo4j.js +47 -0
  2255. package/payload/premium-plugins/writer-craft/mcp/dist/lib/neo4j.js.map +1 -0
  2256. package/payload/premium-plugins/writer-craft/mcp/dist/lib/voice-corpus.d.ts +86 -0
  2257. package/payload/premium-plugins/writer-craft/mcp/dist/lib/voice-corpus.d.ts.map +1 -0
  2258. package/payload/premium-plugins/writer-craft/mcp/dist/lib/voice-corpus.js +110 -0
  2259. package/payload/premium-plugins/writer-craft/mcp/dist/lib/voice-corpus.js.map +1 -0
  2260. package/payload/premium-plugins/writer-craft/mcp/dist/tools/voice-distil-profile.d.ts +82 -0
  2261. package/payload/premium-plugins/writer-craft/mcp/dist/tools/voice-distil-profile.d.ts.map +1 -0
  2262. package/payload/premium-plugins/writer-craft/mcp/dist/tools/voice-distil-profile.js +560 -0
  2263. package/payload/premium-plugins/writer-craft/mcp/dist/tools/voice-distil-profile.js.map +1 -0
  2264. package/payload/premium-plugins/writer-craft/mcp/dist/tools/voice-ingest-session-text.d.ts +19 -0
  2265. package/payload/premium-plugins/writer-craft/mcp/dist/tools/voice-ingest-session-text.d.ts.map +1 -0
  2266. package/payload/premium-plugins/writer-craft/mcp/dist/tools/voice-ingest-session-text.js +123 -0
  2267. package/payload/premium-plugins/writer-craft/mcp/dist/tools/voice-ingest-session-text.js.map +1 -0
  2268. package/payload/premium-plugins/writer-craft/mcp/dist/tools/voice-record-feedback.d.ts +32 -0
  2269. package/payload/premium-plugins/writer-craft/mcp/dist/tools/voice-record-feedback.d.ts.map +1 -0
  2270. package/payload/premium-plugins/writer-craft/mcp/dist/tools/voice-record-feedback.js +82 -0
  2271. package/payload/premium-plugins/writer-craft/mcp/dist/tools/voice-record-feedback.js.map +1 -0
  2272. package/payload/premium-plugins/writer-craft/mcp/dist/tools/voice-retrieve-conditioning.d.ts +47 -0
  2273. package/payload/premium-plugins/writer-craft/mcp/dist/tools/voice-retrieve-conditioning.d.ts.map +1 -0
  2274. package/payload/premium-plugins/writer-craft/mcp/dist/tools/voice-retrieve-conditioning.js +160 -0
  2275. package/payload/premium-plugins/writer-craft/mcp/dist/tools/voice-retrieve-conditioning.js.map +1 -0
  2276. package/payload/premium-plugins/writer-craft/mcp/dist/tools/voice-tag-content.d.ts +17 -0
  2277. package/payload/premium-plugins/writer-craft/mcp/dist/tools/voice-tag-content.d.ts.map +1 -0
  2278. package/payload/premium-plugins/writer-craft/mcp/dist/tools/voice-tag-content.js +98 -0
  2279. package/payload/premium-plugins/writer-craft/mcp/dist/tools/voice-tag-content.js.map +1 -0
  2280. package/payload/premium-plugins/writer-craft/mcp/package-lock.json +1327 -0
  2281. package/payload/premium-plugins/writer-craft/mcp/package.json +19 -0
  2282. package/payload/premium-plugins/writer-craft/mcp/scripts/smoke.mjs +351 -0
  2283. package/payload/premium-plugins/writer-craft/mcp/src/index.ts +409 -0
  2284. package/payload/premium-plugins/writer-craft/mcp/src/lib/neo4j.ts +56 -0
  2285. package/payload/premium-plugins/writer-craft/mcp/src/lib/voice-corpus.ts +115 -0
  2286. package/payload/premium-plugins/writer-craft/mcp/src/tools/voice-distil-profile.ts +767 -0
  2287. package/payload/premium-plugins/writer-craft/mcp/src/tools/voice-ingest-session-text.ts +152 -0
  2288. package/payload/premium-plugins/writer-craft/mcp/src/tools/voice-record-feedback.ts +128 -0
  2289. package/payload/premium-plugins/writer-craft/mcp/src/tools/voice-retrieve-conditioning.ts +234 -0
  2290. package/payload/premium-plugins/writer-craft/mcp/src/tools/voice-tag-content.ts +139 -0
  2291. package/payload/premium-plugins/writer-craft/mcp/tsconfig.json +8 -0
  2292. package/payload/premium-plugins/writer-craft/skills/citation-style/SKILL.md +94 -0
  2293. package/payload/premium-plugins/writer-craft/skills/citation-style/references/book-and-chapter-models.md +77 -0
  2294. package/payload/premium-plugins/writer-craft/skills/citation-style/references/citation-rules.md +103 -0
  2295. package/payload/premium-plugins/writer-craft/skills/citation-style/references/journal-article-models.md +74 -0
  2296. package/payload/premium-plugins/writer-craft/skills/citation-style/references/other-source-models.md +146 -0
  2297. package/payload/premium-plugins/writer-craft/skills/citation-style/references/reference-list-rules.md +70 -0
  2298. package/payload/premium-plugins/writer-craft/skills/editorial-practice/SKILL.md +108 -0
  2299. package/payload/premium-plugins/writer-craft/skills/editorial-practice/references/copyediting.md +73 -0
  2300. package/payload/premium-plugins/writer-craft/skills/editorial-practice/references/developmental-editing.md +85 -0
  2301. package/payload/premium-plugins/writer-craft/skills/editorial-practice/references/genre-specific-editing.md +78 -0
  2302. package/payload/premium-plugins/writer-craft/skills/editorial-practice/references/line-editing.md +55 -0
  2303. package/payload/premium-plugins/writer-craft/skills/editorial-practice/references/self-editing.md +89 -0
  2304. package/payload/premium-plugins/writer-craft/skills/persuasive-storytelling/SKILL.md +114 -0
  2305. package/payload/premium-plugins/writer-craft/skills/persuasive-storytelling/references/audience-analysis.md +73 -0
  2306. package/payload/premium-plugins/writer-craft/skills/persuasive-storytelling/references/crafting-persuasive-story.md +76 -0
  2307. package/payload/premium-plugins/writer-craft/skills/persuasive-storytelling/references/persuasion-case-studies.md +67 -0
  2308. package/payload/premium-plugins/writer-craft/skills/persuasive-storytelling/references/transformation-framework.md +86 -0
  2309. package/payload/premium-plugins/writer-craft/skills/point-of-view/SKILL.md +97 -0
  2310. package/payload/premium-plugins/writer-craft/skills/point-of-view/references/indirect-narration.md +72 -0
  2311. package/payload/premium-plugins/writer-craft/skills/point-of-view/references/pov-types-and-voice.md +91 -0
  2312. package/payload/premium-plugins/writer-craft/skills/point-of-view/references/protagonist-filter.md +71 -0
  2313. package/payload/premium-plugins/writer-craft/skills/point-of-view/references/tense-and-person.md +85 -0
  2314. package/payload/premium-plugins/writer-craft/skills/prose-craft/SKILL.md +100 -0
  2315. package/payload/premium-plugins/writer-craft/skills/prose-craft/references/punctuation-and-grammar.md +72 -0
  2316. package/payload/premium-plugins/writer-craft/skills/prose-craft/references/repetition.md +71 -0
  2317. package/payload/premium-plugins/writer-craft/skills/prose-craft/references/sound-and-rhythm.md +64 -0
  2318. package/payload/premium-plugins/writer-craft/skills/prose-craft/references/word-economy.md +93 -0
  2319. package/payload/premium-plugins/writer-craft/skills/reader-engagement/SKILL.md +100 -0
  2320. package/payload/premium-plugins/writer-craft/skills/reader-engagement/references/cause-effect-setup-payoff.md +79 -0
  2321. package/payload/premium-plugins/writer-craft/skills/reader-engagement/references/conflict-escalation.md +81 -0
  2322. package/payload/premium-plugins/writer-craft/skills/reader-engagement/references/hooking-readers.md +67 -0
  2323. package/payload/premium-plugins/writer-craft/skills/reader-engagement/references/neurochemistry-of-engagement.md +94 -0
  2324. package/payload/premium-plugins/writer-craft/skills/review-manuscript/SKILL.md +111 -0
  2325. package/payload/premium-plugins/writer-craft/skills/review-manuscript/references/review-manuscript-checklist.md +119 -0
  2326. package/payload/premium-plugins/writer-craft/skills/review-prose/SKILL.md +99 -0
  2327. package/payload/premium-plugins/writer-craft/skills/review-prose/references/prose-review-checklist.md +112 -0
  2328. package/payload/premium-plugins/writer-craft/skills/review-scene/SKILL.md +99 -0
  2329. package/payload/premium-plugins/writer-craft/skills/review-scene/references/scene-analysis-framework.md +95 -0
  2330. package/payload/premium-plugins/writer-craft/skills/story-architecture/SKILL.md +106 -0
  2331. package/payload/premium-plugins/writer-craft/skills/story-architecture/references/blueprinting-and-scene-cards.md +118 -0
  2332. package/payload/premium-plugins/writer-craft/skills/story-architecture/references/inner-issue-and-protagonist-goal.md +66 -0
  2333. package/payload/premium-plugins/writer-craft/skills/story-architecture/references/misbelief-desire-worldview.md +87 -0
  2334. package/payload/premium-plugins/writer-craft/skills/story-architecture/references/origin-scenes-and-escalation.md +82 -0
  2335. package/payload/premium-plugins/writer-craft/skills/story-blueprint/SKILL.md +133 -0
  2336. package/payload/premium-plugins/writer-craft/skills/story-blueprint/references/blueprinting-exercises.md +118 -0
  2337. package/payload/premium-plugins/writer-craft/skills/story-blueprint/references/blueprinting-process.md +128 -0
  2338. package/payload/premium-plugins/writer-craft/skills/voice-mirror/SKILL.md +228 -0
  2339. package/payload/server/adminuser-self-heal-YC47O34W.js +46 -0
  2340. package/payload/server/chunk-76HRO7NX.js +5684 -0
  2341. package/payload/server/chunk-HYQNUVGO.js +38 -0
  2342. package/payload/server/maxy-edge.js +814 -0
  2343. package/payload/server/package.json +11 -0
  2344. package/payload/server/public/assets/AdminShell-T-YknnBn.js +1 -0
  2345. package/payload/server/public/assets/AdminShell-qc_xy7Az.css +1 -0
  2346. package/payload/server/public/assets/Checkbox-DmDxpqVv.js +1 -0
  2347. package/payload/server/public/assets/_baseFor-Cs8Y-rGh.js +1 -0
  2348. package/payload/server/public/assets/admin-COUV-jgt.js +1 -0
  2349. package/payload/server/public/assets/admin-CWMpccrR.css +1 -0
  2350. package/payload/server/public/assets/arc-B2CweJq3.js +1 -0
  2351. package/payload/server/public/assets/architecture-YZFGNWBL-Dnn6Hc65.js +1 -0
  2352. package/payload/server/public/assets/architectureDiagram-Q4EWVU46-DP2o-MFV.js +36 -0
  2353. package/payload/server/public/assets/array-iHZP4KWJ.js +1 -0
  2354. package/payload/server/public/assets/blockDiagram-DXYQGD6D-DO4mcYDJ.js +132 -0
  2355. package/payload/server/public/assets/c4Diagram-AHTNJAMY-Sy1giHbj.js +10 -0
  2356. package/payload/server/public/assets/channel-CEpR_0rE.js +1 -0
  2357. package/payload/server/public/assets/chunk-2KRD3SAO-CKsCYCsN.js +1 -0
  2358. package/payload/server/public/assets/chunk-336JU56O-C0-P-aUF.js +2 -0
  2359. package/payload/server/public/assets/chunk-426QAEUC-DFjEt3Zb.js +1 -0
  2360. package/payload/server/public/assets/chunk-4BX2VUAB-B8bqAmBa.js +1 -0
  2361. package/payload/server/public/assets/chunk-4TB4RGXK-D1k0VSlW.js +206 -0
  2362. package/payload/server/public/assets/chunk-55IACEB6-B-p_QNqz.js +1 -0
  2363. package/payload/server/public/assets/chunk-5FUZZQ4R-D6U6tV_j.js +62 -0
  2364. package/payload/server/public/assets/chunk-5PVQY5BW-CYK76xfs.js +2 -0
  2365. package/payload/server/public/assets/chunk-67CJDMHE-BC9js-lf.js +1 -0
  2366. package/payload/server/public/assets/chunk-7N4EOEYR-4j2OqKkv.js +1 -0
  2367. package/payload/server/public/assets/chunk-AA7GKIK3-Coen-fXN.js +1 -0
  2368. package/payload/server/public/assets/chunk-BSJP7CBP-CAiOBvec.js +1 -0
  2369. package/payload/server/public/assets/chunk-CIAEETIT-AJzzpZVb.js +1 -0
  2370. package/payload/server/public/assets/chunk-DD-I1_y5.js +1 -0
  2371. package/payload/server/public/assets/chunk-EDXVE4YY-BL4BKozX.js +1 -0
  2372. package/payload/server/public/assets/chunk-ENJZ2VHE-mhAFG8UD.js +10 -0
  2373. package/payload/server/public/assets/chunk-FMBD7UC4-H231gZA_.js +15 -0
  2374. package/payload/server/public/assets/chunk-FOC6F5B3-Cl3ZZjYG.js +1 -0
  2375. package/payload/server/public/assets/chunk-ICPOFSXX-DOEzvzJa.js +122 -0
  2376. package/payload/server/public/assets/chunk-K5T4RW27-C_ipbUDD.js +94 -0
  2377. package/payload/server/public/assets/chunk-KGLVRYIC-CTsDNSCU.js +1 -0
  2378. package/payload/server/public/assets/chunk-LIHQZDEY-DvSXhkGf.js +1 -0
  2379. package/payload/server/public/assets/chunk-ORNJ4GCN-p574NOI7.js +1 -0
  2380. package/payload/server/public/assets/chunk-OYMX7WX6-BlEgFM6U.js +231 -0
  2381. package/payload/server/public/assets/chunk-QZHKN3VN-DpF06ZZQ.js +1 -0
  2382. package/payload/server/public/assets/chunk-U2HBQHQK-B2bDK0jv.js +70 -0
  2383. package/payload/server/public/assets/chunk-X2U36JSP-D69BxKFw.js +1 -0
  2384. package/payload/server/public/assets/chunk-XPW4576I-Dm-PcyUi.js +32 -0
  2385. package/payload/server/public/assets/chunk-YZCP3GAM-Be8RnXgx.js +1 -0
  2386. package/payload/server/public/assets/chunk-ZZ45TVLE-Ck8PCTa4.js +1 -0
  2387. package/payload/server/public/assets/classDiagram-6PBFFD2Q-CYbXvKLI.js +1 -0
  2388. package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-DEyHzRhq.js +1 -0
  2389. package/payload/server/public/assets/clone-y8gexbBy.js +1 -0
  2390. package/payload/server/public/assets/cormorant-cyrillic-300-normal-CzPHYadL.woff +0 -0
  2391. package/payload/server/public/assets/cormorant-cyrillic-300-normal-DFUoTmrg.woff2 +0 -0
  2392. package/payload/server/public/assets/cormorant-cyrillic-400-normal-C8QS47vb.woff2 +0 -0
  2393. package/payload/server/public/assets/cormorant-cyrillic-400-normal-D3EsxgFc.woff +0 -0
  2394. package/payload/server/public/assets/cormorant-cyrillic-500-normal-B7dJQtg-.woff +0 -0
  2395. package/payload/server/public/assets/cormorant-cyrillic-500-normal-BLlg2W5x.woff2 +0 -0
  2396. package/payload/server/public/assets/cormorant-cyrillic-ext-300-normal-BXl3lXsi.woff2 +0 -0
  2397. package/payload/server/public/assets/cormorant-cyrillic-ext-300-normal-DmxSOTe3.woff +0 -0
  2398. package/payload/server/public/assets/cormorant-cyrillic-ext-400-normal-Bgrpe4p1.woff +0 -0
  2399. package/payload/server/public/assets/cormorant-cyrillic-ext-400-normal-BlcaxZtM.woff2 +0 -0
  2400. package/payload/server/public/assets/cormorant-cyrillic-ext-500-normal-CdQuyvtc.woff +0 -0
  2401. package/payload/server/public/assets/cormorant-cyrillic-ext-500-normal-pZw22qtS.woff2 +0 -0
  2402. package/payload/server/public/assets/cormorant-latin-300-normal-CJ5dfen0.woff2 +0 -0
  2403. package/payload/server/public/assets/cormorant-latin-300-normal-DQZObO_3.woff +0 -0
  2404. package/payload/server/public/assets/cormorant-latin-400-normal-BGH8Vunh.woff2 +0 -0
  2405. package/payload/server/public/assets/cormorant-latin-400-normal-C3_-2Ua-.woff +0 -0
  2406. package/payload/server/public/assets/cormorant-latin-500-normal-Dj3SQ6fR.woff +0 -0
  2407. package/payload/server/public/assets/cormorant-latin-500-normal-EBdSCOD3.woff2 +0 -0
  2408. package/payload/server/public/assets/cormorant-latin-ext-300-normal-CkiUx0UG.woff +0 -0
  2409. package/payload/server/public/assets/cormorant-latin-ext-300-normal-De3D72RL.woff2 +0 -0
  2410. package/payload/server/public/assets/cormorant-latin-ext-400-normal-DuQ88yz3.woff2 +0 -0
  2411. package/payload/server/public/assets/cormorant-latin-ext-400-normal-DuXFa1Dr.woff +0 -0
  2412. package/payload/server/public/assets/cormorant-latin-ext-500-normal-AH9qog1s.woff2 +0 -0
  2413. package/payload/server/public/assets/cormorant-latin-ext-500-normal-DAuUCO41.woff +0 -0
  2414. package/payload/server/public/assets/cormorant-vietnamese-300-normal-BVqIp_mg.woff2 +0 -0
  2415. package/payload/server/public/assets/cormorant-vietnamese-300-normal-CEMS9Pw-.woff +0 -0
  2416. package/payload/server/public/assets/cormorant-vietnamese-400-normal-C-RiYxEf.woff2 +0 -0
  2417. package/payload/server/public/assets/cormorant-vietnamese-400-normal-DmUuA7Y2.woff +0 -0
  2418. package/payload/server/public/assets/cormorant-vietnamese-500-normal-DsPuwQHi.woff2 +0 -0
  2419. package/payload/server/public/assets/cormorant-vietnamese-500-normal-tGBW_mI7.woff +0 -0
  2420. package/payload/server/public/assets/cose-bilkent-S5V4N54A-CmkW2Eaj.js +1 -0
  2421. package/payload/server/public/assets/cytoscape.esm-BR2GOQ8_.js +321 -0
  2422. package/payload/server/public/assets/dagre-Dqp-ns8F.js +1 -0
  2423. package/payload/server/public/assets/dagre-KV5264BT-ZgWWXPLc.js +4 -0
  2424. package/payload/server/public/assets/data-gy6QH9c1.js +1 -0
  2425. package/payload/server/public/assets/defaultLocale-B9aLeOTg.js +1 -0
  2426. package/payload/server/public/assets/diagram-5BDNPKRD-CTX5-ScM.js +10 -0
  2427. package/payload/server/public/assets/diagram-G4DWMVQ6-BovIsO6H.js +24 -0
  2428. package/payload/server/public/assets/diagram-MMDJMWI5-DcETsQy-.js +43 -0
  2429. package/payload/server/public/assets/diagram-TYMM5635-yyq6peoZ.js +24 -0
  2430. package/payload/server/public/assets/dist-DB-VPj_8.js +1 -0
  2431. package/payload/server/public/assets/dm-sans-latin-400-normal-BwCSEQnW.woff +0 -0
  2432. package/payload/server/public/assets/dm-sans-latin-400-normal-CW0RaeGs.woff2 +0 -0
  2433. package/payload/server/public/assets/dm-sans-latin-500-normal-B9HHJjqV.woff2 +0 -0
  2434. package/payload/server/public/assets/dm-sans-latin-500-normal-Dr3UlScf.woff +0 -0
  2435. package/payload/server/public/assets/dm-sans-latin-ext-400-normal-BjWJ59Pq.woff +0 -0
  2436. package/payload/server/public/assets/dm-sans-latin-ext-400-normal-BtiwyxMk.woff2 +0 -0
  2437. package/payload/server/public/assets/dm-sans-latin-ext-500-normal-BJfUCQsA.woff2 +0 -0
  2438. package/payload/server/public/assets/dm-sans-latin-ext-500-normal-DR84L5F-.woff +0 -0
  2439. package/payload/server/public/assets/erDiagram-SMLLAGMA-CiNToftB.js +85 -0
  2440. package/payload/server/public/assets/flatten-BtFI066E.js +1 -0
  2441. package/payload/server/public/assets/flowDiagram-DWJPFMVM-Xnl3SpIM.js +162 -0
  2442. package/payload/server/public/assets/ganttDiagram-T4ZO3ILL-C1iyWe0f.js +292 -0
  2443. package/payload/server/public/assets/gitGraph-7Q5UKJZL-CNs-LD5i.js +1 -0
  2444. package/payload/server/public/assets/gitGraphDiagram-UUTBAWPF-D97pbMQb.js +106 -0
  2445. package/payload/server/public/assets/graph-labels-cZu4pK16.js +1 -0
  2446. package/payload/server/public/assets/graph-qz5tFKqU.js +51 -0
  2447. package/payload/server/public/assets/graphlib-Lq8ijgON.js +1 -0
  2448. package/payload/server/public/assets/info-OMHHGYJF-DsTNigSS.js +1 -0
  2449. package/payload/server/public/assets/infoDiagram-42DDH7IO-C_OarRTA.js +2 -0
  2450. package/payload/server/public/assets/init-BNFRgqHM.js +1 -0
  2451. package/payload/server/public/assets/inter-cyrillic-400-normal-HOLc17fK.woff +0 -0
  2452. package/payload/server/public/assets/inter-cyrillic-400-normal-obahsSVq.woff2 +0 -0
  2453. package/payload/server/public/assets/inter-cyrillic-500-normal-BasfLYem.woff2 +0 -0
  2454. package/payload/server/public/assets/inter-cyrillic-500-normal-CxZf_p3X.woff +0 -0
  2455. package/payload/server/public/assets/inter-cyrillic-ext-400-normal-BQZuk6qB.woff2 +0 -0
  2456. package/payload/server/public/assets/inter-cyrillic-ext-400-normal-DQukG94-.woff +0 -0
  2457. package/payload/server/public/assets/inter-cyrillic-ext-500-normal-B0yAr1jD.woff2 +0 -0
  2458. package/payload/server/public/assets/inter-cyrillic-ext-500-normal-BmqWE9Dz.woff +0 -0
  2459. package/payload/server/public/assets/inter-greek-400-normal-B4URO6DV.woff2 +0 -0
  2460. package/payload/server/public/assets/inter-greek-400-normal-q2sYcFCs.woff +0 -0
  2461. package/payload/server/public/assets/inter-greek-500-normal-BIZE56-Y.woff2 +0 -0
  2462. package/payload/server/public/assets/inter-greek-500-normal-Xzm54t5V.woff +0 -0
  2463. package/payload/server/public/assets/inter-greek-ext-400-normal-DGGRlc-M.woff2 +0 -0
  2464. package/payload/server/public/assets/inter-greek-ext-400-normal-KugGGMne.woff +0 -0
  2465. package/payload/server/public/assets/inter-greek-ext-500-normal-2j5mBUwD.woff +0 -0
  2466. package/payload/server/public/assets/inter-greek-ext-500-normal-C4iEst2y.woff2 +0 -0
  2467. package/payload/server/public/assets/inter-latin-400-normal-C38fXH4l.woff2 +0 -0
  2468. package/payload/server/public/assets/inter-latin-400-normal-CyCys3Eg.woff +0 -0
  2469. package/payload/server/public/assets/inter-latin-500-normal-BL9OpVg8.woff +0 -0
  2470. package/payload/server/public/assets/inter-latin-500-normal-Cerq10X2.woff2 +0 -0
  2471. package/payload/server/public/assets/inter-latin-ext-400-normal-77YHD8bZ.woff +0 -0
  2472. package/payload/server/public/assets/inter-latin-ext-400-normal-C1nco2VV.woff2 +0 -0
  2473. package/payload/server/public/assets/inter-latin-ext-500-normal-BxGbmqWO.woff +0 -0
  2474. package/payload/server/public/assets/inter-latin-ext-500-normal-CV4jyFjo.woff2 +0 -0
  2475. package/payload/server/public/assets/inter-vietnamese-400-normal-Bbgyi5SW.woff +0 -0
  2476. package/payload/server/public/assets/inter-vietnamese-400-normal-DMkecbls.woff2 +0 -0
  2477. package/payload/server/public/assets/inter-vietnamese-500-normal-DOriooB6.woff2 +0 -0
  2478. package/payload/server/public/assets/inter-vietnamese-500-normal-mJboJaSs.woff +0 -0
  2479. package/payload/server/public/assets/isEmpty-D6QovjYR.js +1 -0
  2480. package/payload/server/public/assets/ishikawaDiagram-UXIWVN3A-B8XBdjJn.js +70 -0
  2481. package/payload/server/public/assets/jetbrains-mono-cyrillic-400-normal-BEIGL1Tu.woff2 +0 -0
  2482. package/payload/server/public/assets/jetbrains-mono-cyrillic-400-normal-ugxPyKxw.woff +0 -0
  2483. package/payload/server/public/assets/jetbrains-mono-cyrillic-500-normal-DJqRU3vO.woff +0 -0
  2484. package/payload/server/public/assets/jetbrains-mono-cyrillic-500-normal-DmUKJPL_.woff2 +0 -0
  2485. package/payload/server/public/assets/jetbrains-mono-greek-400-normal-B9oWc5Lo.woff +0 -0
  2486. package/payload/server/public/assets/jetbrains-mono-greek-400-normal-C190GLew.woff2 +0 -0
  2487. package/payload/server/public/assets/jetbrains-mono-greek-500-normal-D7SFKleX.woff +0 -0
  2488. package/payload/server/public/assets/jetbrains-mono-greek-500-normal-JpySY46c.woff2 +0 -0
  2489. package/payload/server/public/assets/jetbrains-mono-latin-400-normal-6-qcROiO.woff +0 -0
  2490. package/payload/server/public/assets/jetbrains-mono-latin-400-normal-V6pRDFza.woff2 +0 -0
  2491. package/payload/server/public/assets/jetbrains-mono-latin-500-normal-BWZEU5yA.woff2 +0 -0
  2492. package/payload/server/public/assets/jetbrains-mono-latin-500-normal-CJOVTJB7.woff +0 -0
  2493. package/payload/server/public/assets/jetbrains-mono-latin-ext-400-normal-Bc8Ftmh3.woff2 +0 -0
  2494. package/payload/server/public/assets/jetbrains-mono-latin-ext-400-normal-fXTG6kC5.woff +0 -0
  2495. package/payload/server/public/assets/jetbrains-mono-latin-ext-500-normal-Cut-4mMH.woff2 +0 -0
  2496. package/payload/server/public/assets/jetbrains-mono-latin-ext-500-normal-ckzbgY84.woff +0 -0
  2497. package/payload/server/public/assets/jetbrains-mono-vietnamese-400-normal-CqNFfHCs.woff +0 -0
  2498. package/payload/server/public/assets/jetbrains-mono-vietnamese-500-normal-DNRqzVM1.woff +0 -0
  2499. package/payload/server/public/assets/journeyDiagram-VCZTEJTY-CZYbiOaQ.js +139 -0
  2500. package/payload/server/public/assets/kanban-definition-6JOO6SKY-B1PybFoh.js +89 -0
  2501. package/payload/server/public/assets/katex-B-EfS3nw.js +257 -0
  2502. package/payload/server/public/assets/line-D-tw3hHp.js +1 -0
  2503. package/payload/server/public/assets/linear-BHhXD3cd.js +1 -0
  2504. package/payload/server/public/assets/mermaid-parser.core-C9RAnysF.js +4 -0
  2505. package/payload/server/public/assets/mermaid.core-B532LT1r.js +11 -0
  2506. package/payload/server/public/assets/mindmap-definition-QFDTVHPH-DGlgeeTV.js +96 -0
  2507. package/payload/server/public/assets/newsreader-latin-300-normal-AOSWdb_s.woff +0 -0
  2508. package/payload/server/public/assets/newsreader-latin-300-normal-FGBQ0wlI.woff2 +0 -0
  2509. package/payload/server/public/assets/newsreader-latin-400-normal-BFBkh4jY.woff2 +0 -0
  2510. package/payload/server/public/assets/newsreader-latin-400-normal-gRTjlS2D.woff +0 -0
  2511. package/payload/server/public/assets/newsreader-latin-500-normal-B66TYsaK.woff2 +0 -0
  2512. package/payload/server/public/assets/newsreader-latin-500-normal-DFwuUcdu.woff +0 -0
  2513. package/payload/server/public/assets/newsreader-latin-ext-300-normal-CFtw49Zd.woff +0 -0
  2514. package/payload/server/public/assets/newsreader-latin-ext-300-normal-DRMzurxT.woff2 +0 -0
  2515. package/payload/server/public/assets/newsreader-latin-ext-400-normal-DYA1XoQK.woff +0 -0
  2516. package/payload/server/public/assets/newsreader-latin-ext-400-normal-svq1FPys.woff2 +0 -0
  2517. package/payload/server/public/assets/newsreader-latin-ext-500-normal-BNHmvKvI.woff2 +0 -0
  2518. package/payload/server/public/assets/newsreader-latin-ext-500-normal-CZruMFou.woff +0 -0
  2519. package/payload/server/public/assets/newsreader-vietnamese-300-normal-CsrIkm-V.woff +0 -0
  2520. package/payload/server/public/assets/newsreader-vietnamese-300-normal-D3VHEe81.woff2 +0 -0
  2521. package/payload/server/public/assets/newsreader-vietnamese-400-normal-BekUZro8.woff +0 -0
  2522. package/payload/server/public/assets/newsreader-vietnamese-400-normal-DdKr49mV.woff2 +0 -0
  2523. package/payload/server/public/assets/newsreader-vietnamese-500-normal-BEAbKU8A.woff +0 -0
  2524. package/payload/server/public/assets/newsreader-vietnamese-500-normal-CL6a8tp2.woff2 +0 -0
  2525. package/payload/server/public/assets/ordinal-Bl-aM5b9.js +1 -0
  2526. package/payload/server/public/assets/packet-4T2RLAQJ-DGES22b-.js +1 -0
  2527. package/payload/server/public/assets/path-DmWWdwp7.js +1 -0
  2528. package/payload/server/public/assets/pie-ZZUOXDRM-ChKeDbzt.js +1 -0
  2529. package/payload/server/public/assets/pieDiagram-DEJITSTG-DV9FIWko.js +30 -0
  2530. package/payload/server/public/assets/public-Bu2_Xi0a.js +35 -0
  2531. package/payload/server/public/assets/public-vnj7OhQj.css +1 -0
  2532. package/payload/server/public/assets/quadrantDiagram-34T5L4WZ-Betwya4l.js +7 -0
  2533. package/payload/server/public/assets/radar-PYXPWWZC-FGG5Fs7N.js +1 -0
  2534. package/payload/server/public/assets/reduce-BD4xUd2c.js +1 -0
  2535. package/payload/server/public/assets/requirementDiagram-MS252O5E-Cq3vODdg.js +84 -0
  2536. package/payload/server/public/assets/rough.esm-Ci7Kjt46.js +1 -0
  2537. package/payload/server/public/assets/sankeyDiagram-XADWPNL6-x8krXWcS.js +10 -0
  2538. package/payload/server/public/assets/sequenceDiagram-FGHM5R23-i-_uH-Yl.js +157 -0
  2539. package/payload/server/public/assets/src-C1jfwBq0.js +1 -0
  2540. package/payload/server/public/assets/stateDiagram-FHFEXIEX-il4KqSgI.js +1 -0
  2541. package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-B6zNJ6Tv.js +1 -0
  2542. package/payload/server/public/assets/timeline-definition-GMOUNBTQ-DATdZkA5.js +120 -0
  2543. package/payload/server/public/assets/treeView-SZITEDCU-VAQQdbtf.js +1 -0
  2544. package/payload/server/public/assets/treemap-W4RFUUIX-DKchO3zI.js +1 -0
  2545. package/payload/server/public/assets/useSelectionMode-A5KItZ2T.js +13 -0
  2546. package/payload/server/public/assets/useSelectionMode-C-Ojh7W9.css +1 -0
  2547. package/payload/server/public/assets/vennDiagram-DHZGUBPP-BJh9tJTt.js +34 -0
  2548. package/payload/server/public/assets/wardley-RL74JXVD-CBGtx0bS.js +1 -0
  2549. package/payload/server/public/assets/wardleyDiagram-NUSXRM2D-EMN1Hdfg.js +20 -0
  2550. package/payload/server/public/assets/xychartDiagram-5P7HB3ND-DbUWXa7T.js +7 -0
  2551. package/payload/server/public/brand/claude.png +0 -0
  2552. package/payload/server/public/brand/favicon.ico +0 -0
  2553. package/payload/server/public/brand/maxy-black.png +0 -0
  2554. package/payload/server/public/brand/maxy-horizontal.png +0 -0
  2555. package/payload/server/public/brand/maxy-monochrome.png +0 -0
  2556. package/payload/server/public/brand/maxy-square.png +0 -0
  2557. package/payload/server/public/brand/maxy.png +0 -0
  2558. package/payload/server/public/brand/star.png +0 -0
  2559. package/payload/server/public/brand-constants.json +8 -0
  2560. package/payload/server/public/brand-defaults.css +12 -0
  2561. package/payload/server/public/consent.css +97 -0
  2562. package/payload/server/public/consent.js +259 -0
  2563. package/payload/server/public/data.html +19 -0
  2564. package/payload/server/public/favicon.ico +0 -0
  2565. package/payload/server/public/graph.html +20 -0
  2566. package/payload/server/public/index.html +21 -0
  2567. package/payload/server/public/privacy.html +129 -0
  2568. package/payload/server/public/public.html +19 -0
  2569. package/payload/server/public/robots.txt +5 -0
  2570. package/payload/server/public/v.js +244 -0
  2571. package/payload/server/public/vnc-popout.html +63 -0
  2572. package/payload/server/server-init.cjs +197 -0
  2573. package/payload/server/server.js +21128 -0
@@ -0,0 +1,1761 @@
1
+ // Loopback-only HTTP API exposed by the manager. The Hono wrapper at
2
+ // platform/ui/server/routes/admin/claude-sessions.ts proxies admin requests
3
+ // here via fetch.
4
+ //
5
+ // Routes:
6
+ // POST /spawn { senderId, role, channel, tunnelUrl? } -> Session
7
+ // POST /:id/stop -> 204 (kill PTY; idempotent on already-dead row)
8
+ // 404 if no row matches any of the 4 keys
9
+ // DELETE /:id -> 204 (rmSync JSONL + subdir)
10
+ // 409 if PTY still alive
11
+ // 404 if no transcript on disk
12
+ // POST /:id/input { text }
13
+ // GET /:id/log -> { jsonlPath, sizeBytes, exists }
14
+ // GET /:id/log?follow=1 -> streamed file content (current + new)
15
+ // GET /:id/meta -> SessionMeta payload
16
+ // POST /:id/archive { mode }
17
+ //
18
+ // Any of the four ids — intrinsic sessionId, bridgeSessionId, bridgeSuffix,
19
+ // or pid (numeric) — resolves to the same row via the fs-watcher index.
20
+ // Unknown ids return 404; nothing returns a silent 204 against an id the
21
+ // manager does not know.
22
+ import { Hono } from 'hono';
23
+ import { stream } from 'hono/streaming';
24
+ import { existsSync, statSync, createReadStream, watchFile, unwatchFile, rmSync, mkdirSync, renameSync, readFileSync } from 'node:fs';
25
+ import { randomUUID } from 'node:crypto';
26
+ import { buildRcChildEnv } from './rc-daemon.js';
27
+ import { spawnClaudeSession, stopSession, writeInputToPty, isLive, onPtyExit, livePtyCount, getPtyTrackerForTests, livePidForSession, priorExitedCountForSession, PERMISSION_MODES, openFdCount, registerRcSpawnPty, } from './pty-spawner.js';
28
+ import { readSidecar, updateSidecar, appendBridgeId } from './session-sidecar.js';
29
+ import { emitRcLife } from './rc-life.js';
30
+ import { readJsonlSession } from './jsonl-enumerator.js';
31
+ import { claudeStateRoot, projectSlugForCwd, jsonlPathForSessionId, sidecarPathForSessionId, permissionModeLogPathForSessionId, findExistingJsonlForSessionId, } from './jsonl-path.js';
32
+ import { basename, join } from 'node:path';
33
+ import { validateUserTitle } from './user-title-store.js';
34
+ import { credentialsPathForConfigDir, snapshotAuthForFailureReason } from './auth-snapshot.js';
35
+ const ROLES = ['admin', 'public'];
36
+ const CHANNELS = ['browser', 'whatsapp', 'telegram', 'webchat', 'email'];
37
+ // Task 382 — body.conversationNodeId shape gate. The value is the
38
+ // sessionId UUID (v4) minted by createNewAdminConversation in
39
+ // platform/ui/app/lib/neo4j-store.ts.
40
+ const UUID_PATTERN = /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/;
41
+ function parseAboutOwner(raw) {
42
+ if (!raw || typeof raw !== 'object')
43
+ return undefined;
44
+ const r = raw;
45
+ if (r.ok === true && typeof r.body === 'string')
46
+ return { ok: true, body: r.body };
47
+ if (r.ok === false && typeof r.reason === 'string' && r.reason.length > 0)
48
+ return { ok: false, reason: r.reason };
49
+ return undefined;
50
+ }
51
+ function parseDormantPlugins(raw) {
52
+ if (!Array.isArray(raw))
53
+ return undefined;
54
+ const out = [];
55
+ for (const entry of raw) {
56
+ if (!entry || typeof entry !== 'object')
57
+ continue;
58
+ const e = entry;
59
+ if (typeof e.name !== 'string' || e.name.length === 0)
60
+ continue;
61
+ if (typeof e.description !== 'string')
62
+ continue;
63
+ out.push({ name: e.name, description: e.description });
64
+ }
65
+ return out.length > 0 ? out : undefined;
66
+ }
67
+ function parseNameDescList(raw) {
68
+ if (!Array.isArray(raw))
69
+ return [];
70
+ const out = [];
71
+ for (const entry of raw) {
72
+ if (!entry || typeof entry !== 'object')
73
+ continue;
74
+ const e = entry;
75
+ if (typeof e.name !== 'string' || e.name.length === 0)
76
+ continue;
77
+ const item = { name: e.name };
78
+ if (typeof e.description === 'string' && e.description.length > 0)
79
+ item.description = e.description;
80
+ out.push(item);
81
+ }
82
+ return out;
83
+ }
84
+ function parseActivePlugins(raw) {
85
+ if (!Array.isArray(raw))
86
+ return undefined;
87
+ const out = [];
88
+ for (const entry of raw) {
89
+ if (!entry || typeof entry !== 'object')
90
+ continue;
91
+ const e = entry;
92
+ if (typeof e.name !== 'string' || e.name.length === 0)
93
+ continue;
94
+ if (typeof e.description !== 'string')
95
+ continue;
96
+ out.push({
97
+ name: e.name,
98
+ description: e.description,
99
+ tools: parseNameDescList(e.tools),
100
+ skills: parseNameDescList(e.skills),
101
+ });
102
+ }
103
+ return out.length > 0 ? out : undefined;
104
+ }
105
+ function parseSpecialistDomains(raw) {
106
+ if (!Array.isArray(raw))
107
+ return undefined;
108
+ const out = [];
109
+ for (const entry of raw) {
110
+ if (!entry || typeof entry !== 'object')
111
+ continue;
112
+ const e = entry;
113
+ if (typeof e.name !== 'string' || e.name.length === 0)
114
+ continue;
115
+ if (typeof e.description !== 'string')
116
+ continue;
117
+ out.push({ name: e.name, description: e.description, tools: parseNameDescList(e.tools) });
118
+ }
119
+ return out.length > 0 ? out : undefined;
120
+ }
121
+ // `<id>` may be: intrinsic UUID, bridgeSessionId ("session_<suffix>"),
122
+ // bridgeSuffix, or pid (numeric). No `.` or `/` — the character class
123
+ // is narrowed so the downstream `jsonlPathForSessionId` composition
124
+ // cannot be steered into a sibling extension or a path segment.
125
+ export const SESSION_ID_PATTERN = /^[A-Za-z0-9_-]{1,128}$/;
126
+ // Task 648 — `/rc-spawn` polls the pid file for the late-written
127
+ // bridgeSessionId (the `claude.ai/code/session_<id>` slug) up to this bound.
128
+ // Device-measured RC bridge bind latency is 18–30s; the prior 12s bound
129
+ // expired first, so the slug was never captured before the response returned
130
+ // and the client opened a bare URL. 60s covers the observed worst case.
131
+ // Injectable via `HttpDeps.rcSpawnUrlWaitMs` so the timeout path is
132
+ // unit-testable without a real 60s wait.
133
+ export const RC_SPAWN_URL_WAIT_DEFAULT_MS = 60_000;
134
+ const LIST_TAIL_BYTES = 64 * 1024;
135
+ function timed(logger, method, path, status, ms) {
136
+ logger(`api method=${method} path=${path} outcome=${status} ms=${ms}`);
137
+ }
138
+ /** Resolve any of the 4 keys to the canonical (sessionId, row) pair.
139
+ * Tries: intrinsic sessionId, bridgeSessionId, bridgeSuffix, numeric pid.
140
+ * Returns undefined when nothing matches. */
141
+ function resolveRow(watcher, id) {
142
+ const direct = watcher.getBySessionId(id);
143
+ if (direct)
144
+ return direct;
145
+ const byBridge = watcher.getByBridgeSessionId(id);
146
+ if (byBridge)
147
+ return byBridge;
148
+ const bySuffix = watcher.getByBridgeSuffix(id);
149
+ if (bySuffix)
150
+ return bySuffix;
151
+ if (/^\d+$/.test(id)) {
152
+ const byPid = watcher.getByPid(Number(id));
153
+ if (byPid)
154
+ return byPid;
155
+ }
156
+ return undefined;
157
+ }
158
+ // Task 147 — auto-archive for the database-operator specialist on
159
+ // `end_turn`. The recorder is a Sidebar-equivalent admin spawn whose only
160
+ // override is the specialist value. Once its JSONL contains an assistant
161
+ // message with `stop_reason === "end_turn"`, stop the PTY and let the
162
+ // normal archive path run. No tool-call tally, no recorder-only log
163
+ // surfaces — the Sidebar's `pty-spawned … jsonl … end_turn …
164
+ // auto-archive` lines cover the lifecycle.
165
+ const END_TURN_SIGNATURE = '"stop_reason":"end_turn"';
166
+ const AUTO_ARCHIVE_SPECIALIST = 'database-operator';
167
+ // One-shot auto-close: once the session's JSONL contains an assistant
168
+ // message with `stop_reason === "end_turn"`, stop the PTY so the session
169
+ // closes after its single turn. Shared by the public-spawn database-operator
170
+ // specialist path (below) and the `/rc-spawn` `closeAfterTurn` jobs (LinkedIn
171
+ // ingest, public session-end review). `label` only colours the log line.
172
+ function attachEndTurnAutoClose(deps, sessionId, label) {
173
+ let closed = false;
174
+ const jsonlPath = jsonlPathForSessionId(deps.spawnCwd, sessionId);
175
+ function endTurnSeen() {
176
+ try {
177
+ return readFileSync(jsonlPath, 'utf8').includes(END_TURN_SIGNATURE);
178
+ }
179
+ catch {
180
+ return false;
181
+ }
182
+ }
183
+ function tryClose() {
184
+ if (closed)
185
+ return;
186
+ if (!existsSync(jsonlPath))
187
+ return;
188
+ if (!endTurnSeen())
189
+ return;
190
+ closed = true;
191
+ deps.logger(`auto-archive sessionId=${sessionId} ${label} reason=end-turn archivedAt=${new Date().toISOString()}`);
192
+ void stopSession({
193
+ killGraceMs: deps.killGraceMs,
194
+ logger: deps.logger,
195
+ runSystemctl: deps.runSystemctl,
196
+ }, sessionId);
197
+ }
198
+ tryClose();
199
+ const unsubscribe = deps.watcher.subscribe((event) => {
200
+ if (closed)
201
+ return;
202
+ if (event.sessionId !== sessionId)
203
+ return;
204
+ if (event.source !== 'jsonl')
205
+ return;
206
+ tryClose();
207
+ });
208
+ onPtyExit(sessionId, () => unsubscribe());
209
+ }
210
+ // Task 147 — public-spawn database-operator specialist auto-archive. Unchanged
211
+ // behaviour: only the database-operator specialist auto-closes on end_turn.
212
+ function attachSpecialistEndTurnAutoArchive(deps, sessionId, specialist) {
213
+ if (specialist !== AUTO_ARCHIVE_SPECIALIST)
214
+ return;
215
+ attachEndTurnAutoClose(deps, sessionId, `specialist=${AUTO_ARCHIVE_SPECIALIST}`);
216
+ }
217
+ function attachPublicAudit(deps, sessionId, role) {
218
+ if (role !== 'public')
219
+ return;
220
+ const jsonlPath = jsonlPathForSessionId(deps.spawnCwd, sessionId);
221
+ if (!existsSync(jsonlPath))
222
+ return;
223
+ deps.publicToolAudit.attach(sessionId, jsonlPath);
224
+ if (!isLive(sessionId)) {
225
+ deps.publicToolAudit.detach(sessionId);
226
+ return;
227
+ }
228
+ onPtyExit(sessionId, () => {
229
+ deps.publicToolAudit.detach(sessionId);
230
+ });
231
+ }
232
+ // Task 488 — one-time guard so a manager booted without the UI port logs the
233
+ // gap once rather than on every public PTY exit.
234
+ let exitNotifyEnvWarned = false;
235
+ /** Task 488 — notify the bridge when a role=public PTY exits explicitly
236
+ * (operator stop, claude crash, manager DELETE). The bridge owns the slice
237
+ * ringfence the session-end reviewer needs; the manager knows only the
238
+ * sessionId, so it POSTs that and lets the bridge resolve the rest. Wired at
239
+ * the same two sites as `attachPublicAudit` (spawn-ready + watcher create) so
240
+ * it covers every public PTY this manager process owns.
241
+ *
242
+ * Fire-and-forget: the POST is best-effort. When it is lost (bridge down,
243
+ * port unset), the bridge idle-reaper is the backstop — it reviews the
244
+ * session from the archived transcript at its next sweep. The notify only
245
+ * makes the review prompt and covers the manager-DELETE case where the
246
+ * transcript is removed before the idle sweep. */
247
+ function attachPublicExitNotify(sessionId, role, logger) {
248
+ if (role !== 'public')
249
+ return;
250
+ if (!isLive(sessionId))
251
+ return;
252
+ onPtyExit(sessionId, () => {
253
+ const uiPort = process.env.MAXY_UI_INTERNAL_PORT ?? '';
254
+ if (uiPort.length === 0) {
255
+ if (!exitNotifyEnvWarned) {
256
+ exitNotifyEnvWarned = true;
257
+ logger('[public-session-exit-notify] warn=MAXY_UI_INTERNAL_PORT-missing review-on-exit=will-not-reach-bridge');
258
+ }
259
+ return;
260
+ }
261
+ const url = `http://127.0.0.1:${uiPort}/api/admin/public-session-exit`;
262
+ void fetch(url, {
263
+ method: 'POST',
264
+ headers: { 'content-type': 'application/json' },
265
+ body: JSON.stringify({ sessionId }),
266
+ })
267
+ .then((res) => {
268
+ logger(`[public-session-exit-notify] sessionId=${sessionId.slice(0, 8)} status=${res.status}`);
269
+ })
270
+ .catch((err) => {
271
+ logger(`[public-session-exit-notify] sessionId=${sessionId.slice(0, 8)} error=${err instanceof Error ? err.message : String(err)}`);
272
+ });
273
+ });
274
+ }
275
+ export function buildHttpApp(deps) {
276
+ const app = new Hono();
277
+ // Task 189 — process-local fan-out from `url-capture` to every connected
278
+ // `/events` client. The pty-spawner mutates `StoredSession.url` in place
279
+ // when the `/remote-control is active · <url>` banner lands; this
280
+ // broadcaster relays the sessionId so each /events handler can push a
281
+ // `row-updated` frame carrying the new URL. The set is mutated by the
282
+ // /events handler on connect/disconnect; the spawner deps below pass
283
+ // `notifyUrlCaptured` into both spawn call sites.
284
+ const urlUpdateListeners = new Set();
285
+ function notifyUrlCaptured(sessionId) {
286
+ for (const listener of urlUpdateListeners)
287
+ listener(sessionId);
288
+ }
289
+ app.__notifyUrlCapturedForTests = notifyUrlCaptured;
290
+ // Task 253 — same fan-out shape for rename. The POST /:sessionId/rename
291
+ // route writes the user-title store and then calls notifyRename; each
292
+ // /events handler then re-emits a `row-updated` frame so every browser
293
+ // tab sees the new label without re-fetching the sidebar route.
294
+ const renameListeners = new Set();
295
+ function notifyRename(sessionId) {
296
+ for (const listener of renameListeners)
297
+ listener(sessionId);
298
+ }
299
+ app.__notifyRenameForTests = notifyRename;
300
+ // Task 550 — bridge ULID → JSONL UUID persistence. The fs-watcher reads
301
+ // each `<sessionsDir>/<pid>.json` and exposes the composer's
302
+ // `bridgeSessionId` on the row. On every pid-source create/modify event
303
+ // where the row carries a non-null bridge suffix, append that suffix to
304
+ // the matching `<projectsDir>/<sessionId>.meta.json` sidecar so a future
305
+ // composer-URL lookup resolves to this row even after the PID file is
306
+ // unlinked at PTY exit. Append-only with duplicate suppression in
307
+ // `appendBridgeId`; legacy rows without a sidecar log `no-sidecar` and
308
+ // skip per the task brief (out of scope for back-fill).
309
+ deps.watcher.subscribe((event) => {
310
+ if (event.source !== 'pid')
311
+ return;
312
+ if (event.kind !== 'create' && event.kind !== 'modify')
313
+ return;
314
+ if (!event.row)
315
+ return;
316
+ const suffix = event.row.bridgeSuffix;
317
+ if (!suffix)
318
+ return;
319
+ const sidecarPath = sidecarPathForSessionId(deps.spawnCwd, event.sessionId);
320
+ const outcome = appendBridgeId(sidecarPath, suffix, deps.logger);
321
+ if (outcome === 'ok') {
322
+ deps.logger(`[sessions-bridge-bind] sessionId=${event.sessionId} bridgeId=${suffix}`);
323
+ deps.watcher.refreshSidecar?.(event.sessionId);
324
+ }
325
+ else if (outcome === 'no-sidecar') {
326
+ deps.logger(`[sessions-bridge-bind] sessionId=${event.sessionId} bridgeId=${suffix} outcome=no-sidecar`);
327
+ }
328
+ });
329
+ // Watcher subscriber: when the JSONL CREATE event fires for a live
330
+ // session, attach the public-audit watcher. The watcher row carries
331
+ // the role from the sidecar (Task 260 — disk is the source of truth),
332
+ // so the audit attachment fires deterministically against rows whose
333
+ // PTY is still alive in this manager process.
334
+ deps.watcher.subscribe((event) => {
335
+ if (event.source !== 'jsonl')
336
+ return;
337
+ if (event.kind !== 'create' && event.kind !== 'modify')
338
+ return;
339
+ if (!event.row)
340
+ return;
341
+ if (!isLive(event.sessionId))
342
+ return;
343
+ attachPublicAudit(deps, event.sessionId, event.row.role);
344
+ attachPublicExitNotify(event.sessionId, event.row.role, deps.logger);
345
+ });
346
+ // Task 183 — dispatch jsonl modify/create events into the recorder
347
+ // tail. The tail filters by registered sessionId (only specialist
348
+ // database-operator spawns are registered), so operator turns pass
349
+ // through without producing recorder-* lines. The tail's append-only
350
+ // cursor ensures repeated modify events for the same JSONL only read
351
+ // newly-appended bytes. Path is derived from sessionId + spawnCwd
352
+ // (Task 258).
353
+ if (deps.jsonlTail) {
354
+ const tail = deps.jsonlTail;
355
+ deps.watcher.subscribe((event) => {
356
+ if (event.source !== 'jsonl')
357
+ return;
358
+ if (event.kind !== 'create' && event.kind !== 'modify')
359
+ return;
360
+ const path = jsonlPathForSessionId(deps.spawnCwd, event.sessionId);
361
+ if (!existsSync(path))
362
+ return;
363
+ tail.onJsonlModify(event.sessionId, path);
364
+ });
365
+ }
366
+ // Task 278 — derive `effectivePermissionMode` from the per-session
367
+ // auto-mode debug capture and persist it on the sidecar. We piggyback
368
+ // on the JSONL CREATE/MODIFY events because the binary writes the
369
+ // `[auto-mode] verifyAutoModeGateAccess` line at startup (before the
370
+ // first JSONL flush) and on every shift-tab transition (which also
371
+ // writes a `permission-mode` JSONL record). Each event re-reads the
372
+ // small debug file and updates the sidecar only when the derived
373
+ // value differs from the persisted one. Non-auto requested spawns
374
+ // skip the file read entirely — pty-spawner does not capture a debug
375
+ // log for those.
376
+ if (deps.permissionModeTail) {
377
+ const tail = deps.permissionModeTail;
378
+ deps.watcher.subscribe((event) => {
379
+ if (event.source !== 'jsonl')
380
+ return;
381
+ if (event.kind !== 'create' && event.kind !== 'modify')
382
+ return;
383
+ if (!event.row)
384
+ return;
385
+ if (event.row.permissionMode !== 'auto')
386
+ return;
387
+ const logPath = permissionModeLogPathForSessionId(deps.spawnCwd, event.sessionId);
388
+ const derived = tail.deriveFromFile(event.sessionId, logPath, event.row.permissionMode);
389
+ if (derived === null)
390
+ return;
391
+ if (derived === event.row.effectivePermissionMode)
392
+ return;
393
+ const sidecarPath = sidecarPathForSessionId(deps.spawnCwd, event.sessionId);
394
+ const wrote = updateSidecar(sidecarPath, { effectivePermissionMode: derived }, deps.logger);
395
+ if (wrote) {
396
+ deps.watcher.refreshSidecar?.(event.sessionId);
397
+ if (derived !== event.row.permissionMode) {
398
+ deps.logger(`[permission-mode-tail] downgrade-detected sessionId=${event.sessionId.slice(0, 8)} requested=${event.row.permissionMode} effective=${derived}`);
399
+ }
400
+ }
401
+ });
402
+ }
403
+ /** Task 260 — /spawn and /rc-spawn need to return a wire payload
404
+ * immediately, but at that moment the watcher row may not yet
405
+ * include the sidecar fields (the JSONL CREATE event hasn't fired
406
+ * in fresh-spawn tests with synthetic watchers). Build the payload
407
+ * from the row if present, falling back to a synthetic shape that
408
+ * reads the sidecar directly. */
409
+ function buildSpawnReturnPayload(sessionId, pid, startedAt, capturedUrl) {
410
+ const row = deps.watcher.getBySessionId(sessionId);
411
+ if (row && row.senderId !== null) {
412
+ return toPayload(row);
413
+ }
414
+ // Read the sidecar directly — the spawn just wrote it.
415
+ const sidecarPath = sidecarPathForSessionId(deps.spawnCwd, sessionId);
416
+ const { sidecar } = readSidecar(sidecarPath, deps.logger);
417
+ const jsonlPath = jsonlPathForSessionId(deps.spawnCwd, sessionId);
418
+ const hasJsonl = existsSync(jsonlPath);
419
+ return {
420
+ sessionId,
421
+ pid,
422
+ url: capturedUrl ?? sidecar?.url ?? null,
423
+ startedAt: sidecar?.startedAt ?? startedAt,
424
+ senderId: sidecar?.senderId ?? '',
425
+ role: sidecar?.role ?? null,
426
+ channel: sidecar?.channel ?? null,
427
+ jsonlPath: hasJsonl ? jsonlPath : null,
428
+ status: 'alive',
429
+ archived: false,
430
+ displayName: null,
431
+ titleSource: null,
432
+ lastMessageAt: null,
433
+ turnCount: 0,
434
+ capped: false,
435
+ sizeBytes: hasJsonl ? statSync(jsonlPath).size : null,
436
+ hidden: sidecar?.hidden ?? false,
437
+ specialist: sidecar?.specialist ?? null,
438
+ model: null,
439
+ permissionMode: sidecar?.permissionMode ?? null,
440
+ effectivePermissionMode: sidecar?.effectivePermissionMode ?? null,
441
+ };
442
+ }
443
+ /** Task 260 — single payload builder. Both live and archived rows
444
+ * derive every wire field from the watcher row (which itself derived
445
+ * from the sidecar + JSONL + PID file). The split between
446
+ * `toLivePayload`/`toArchivedPayload` is gone; the row's `state`
447
+ * and `pid` decide `status` and the `archived` flag.
448
+ *
449
+ * The `model` field continues to derive from the JSONL tail (last
450
+ * assistant turn) rather than the sidecar's spawn-request model —
451
+ * see [[learnings_writer_reader_charset_drift]] family: the running
452
+ * model is what the wire's `model` has historically meant, and the
453
+ * sidecar's `model` is kept as a self-diagnostic record. */
454
+ function toPayload(row) {
455
+ const isLiveState = row.state === 'live';
456
+ const archivedJsonlPath = jsonlPathForSessionId(deps.spawnCwd, row.sessionId, { archived: true });
457
+ const topJsonlPath = jsonlPathForSessionId(deps.spawnCwd, row.sessionId);
458
+ const jsonlPath = isLiveState
459
+ ? topJsonlPath
460
+ : existsSync(archivedJsonlPath) ? archivedJsonlPath : topJsonlPath;
461
+ const hasJsonl = existsSync(jsonlPath);
462
+ let displayName = null;
463
+ let titleSource = null;
464
+ let lastMessageAt = null;
465
+ let turnCount = 0;
466
+ let capped = false;
467
+ let sizeBytes = hasJsonl ? statSync(jsonlPath).size : null;
468
+ let model = null;
469
+ let enrichedStartedAt = null;
470
+ if (hasJsonl) {
471
+ const enriched = readJsonlSession(deps.spawnCwd, row.sessionId, LIST_TAIL_BYTES, deps.logger, deps.userTitleStore);
472
+ if (enriched) {
473
+ displayName = enriched.displayName;
474
+ titleSource = enriched.titleSource;
475
+ lastMessageAt = enriched.lastMessageAt;
476
+ turnCount = enriched.turnCount;
477
+ capped = enriched.capped;
478
+ sizeBytes = enriched.sizeBytes;
479
+ enrichedStartedAt = enriched.startedAt;
480
+ model = enriched.model;
481
+ }
482
+ }
483
+ else {
484
+ const userTitle = deps.userTitleStore.get(row.sessionId)?.title;
485
+ if (userTitle) {
486
+ displayName = userTitle;
487
+ titleSource = 'user';
488
+ }
489
+ }
490
+ // Task 624 — standing reconciliation. A LIVE role=public row whose title did
491
+ // not resolve from the user-override tier means the /spawn userTitleStore.set
492
+ // silently failed or was evicted. Fires on the next list read while the
493
+ // session is live, so a missing write is caught without a live repro. Gated
494
+ // to live rows so pre-Task-624 public sessions (no title, forward-only — the
495
+ // designed pre-migration state, not a defect) never emit this signal.
496
+ if (isLiveState && row.role === 'public' && titleSource !== 'user') {
497
+ deps.logger(`[public-title] sessionId=${row.sessionId.slice(0, 8)} unexpected titleSource=${titleSource ?? 'null'}`);
498
+ }
499
+ // startedAt resolution order:
500
+ // 1. JSONL enrichment (the most authoritative — claude's own record)
501
+ // 2. Sidecar (/spawn time)
502
+ // 3. Row mtime fallback (legacy archived rows without sidecar)
503
+ const startedAt = enrichedStartedAt
504
+ ?? row.startedAt
505
+ ?? new Date(row.updatedAt || 0).toISOString();
506
+ // Agent label: PID-file `agent` for live rows; cachedAgentSetting for
507
+ // archived rows (JSONL head). Sidecar's `sidecarSpecialist` is the
508
+ // spawn-time request — fall back to it when both above are null so
509
+ // post-Task-260 rows surface their specialist even if the JSONL
510
+ // doesn't include an agent-setting record.
511
+ const specialist = row.agent ?? row.cachedAgentSetting ?? row.sidecarSpecialist;
512
+ return {
513
+ sessionId: row.sessionId,
514
+ pid: row.pid,
515
+ url: row.url,
516
+ startedAt,
517
+ senderId: row.senderId ?? '',
518
+ role: row.role,
519
+ channel: row.channel,
520
+ jsonlPath: hasJsonl ? jsonlPath : null,
521
+ status: isLiveState ? 'alive' : 'ended',
522
+ archived: row.state === 'archived',
523
+ displayName,
524
+ titleSource,
525
+ lastMessageAt,
526
+ turnCount,
527
+ capped,
528
+ sizeBytes,
529
+ hidden: row.hidden,
530
+ specialist,
531
+ model,
532
+ permissionMode: row.permissionMode,
533
+ effectivePermissionMode: row.effectivePermissionMode,
534
+ };
535
+ }
536
+ app.post('/public-spawn', async (c) => {
537
+ const start = Date.now();
538
+ let body;
539
+ try {
540
+ body = await c.req.json();
541
+ }
542
+ catch {
543
+ deps.logger(`spawn-request body-parse-failed`);
544
+ timed(deps.logger, 'POST', '/public-spawn', 400, Date.now() - start);
545
+ return c.json({ error: 'body-not-json' }, 400);
546
+ }
547
+ const senderId = typeof body.senderId === 'string' ? body.senderId : '';
548
+ // Task 205 — admin operator's userId. Optional; falls through as
549
+ // empty to the pty child env. Validated only for shape (non-empty
550
+ // string); the cookie-auth path resolves the value, the
551
+ // silent-compaction / recorder paths legitimately omit it.
552
+ const userId = typeof body.userId === 'string' && body.userId.length > 0 && body.userId.length <= 128
553
+ ? body.userId
554
+ : undefined;
555
+ const role = typeof body.role === 'string' ? body.role : '';
556
+ const channel = typeof body.channel === 'string' ? body.channel : '';
557
+ const hidden = body.hidden === true;
558
+ const specialist = typeof body.specialist === 'string' && /^[A-Za-z0-9_-]{1,64}$/.test(body.specialist)
559
+ ? body.specialist
560
+ : undefined;
561
+ const model = typeof body.model === 'string' && /^[A-Za-z0-9._-]{1,64}$/.test(body.model)
562
+ ? body.model
563
+ : undefined;
564
+ const initialMessage = typeof body.initialMessage === 'string' && body.initialMessage.length > 0
565
+ ? body.initialMessage
566
+ : undefined;
567
+ // Task 346 — agent slug arrives on every spawn from the bridge.
568
+ // Admin spawns send 'admin'; public spawns send the per-account default
569
+ // (chat.ts) or the per-group/per-account/top-level resolver result
570
+ // (whatsapp). Shape gate matches account.ts's SLUG_PATTERN — keeping
571
+ // it conservative refuses a body-controlled traversal segment from
572
+ // reaching the agents-dir read below.
573
+ const agentSlug = typeof body.agentSlug === 'string' && /^[A-Za-z0-9_-]{1,64}$/.test(body.agentSlug)
574
+ ? body.agentSlug
575
+ : undefined;
576
+ // Task 382 — sessionId UUID of the active :AdminConversation (or
577
+ // :PublicConversation). Shape-validated as a v4 UUID; anything else is
578
+ // discarded so a body-controlled value cannot reach the env-stamp.
579
+ const conversationNodeId = typeof body.conversationNodeId === 'string' && UUID_PATTERN.test(body.conversationNodeId)
580
+ ? body.conversationNodeId
581
+ : undefined;
582
+ // Task 485 — per-visitor slice ringfence values. sliceToken is shape-gated
583
+ // to UUID v4 (matches the AccessGrant.sliceToken generator); personId is
584
+ // a Neo4j elementId so the length cap is conservative — anything else is
585
+ // discarded so a body-controlled value cannot reach the child env.
586
+ const sliceToken = typeof body.sliceToken === 'string' && UUID_PATTERN.test(body.sliceToken)
587
+ ? body.sliceToken
588
+ : undefined;
589
+ const personId = typeof body.personId === 'string' && body.personId.length > 0 && body.personId.length <= 128
590
+ ? body.personId
591
+ : undefined;
592
+ // Task 624 — maxy-composed public-session title. Validated by the same
593
+ // validateUserTitle the /:sessionId/rename route uses; persisted only for
594
+ // role=public after the sessionId is minted. An invalid/absent name leaves
595
+ // the title to fall through to Claude Code's ai-title — surfaced as
596
+ // title=missing on the spawn log line below, never a silent drop.
597
+ const titleResult = validateUserTitle(body.name);
598
+ const publicTitle = titleResult.ok ? titleResult.title : null;
599
+ const aboutOwnerShape = body.aboutOwner == null ? 'absent' : (typeof body.aboutOwner === 'object' ? 'object' : typeof body.aboutOwner);
600
+ const dormantPluginsShape = Array.isArray(body.dormantPlugins)
601
+ ? `array(${body.dormantPlugins.length})`
602
+ : body.dormantPlugins == null ? 'absent' : typeof body.dormantPlugins;
603
+ const initialMessageBytes = typeof body.initialMessage === 'string' ? Buffer.byteLength(body.initialMessage, 'utf8') : 0;
604
+ deps.logger(`spawn-request senderId=${senderId || 'missing'} userId=${userId ? userId.slice(0, 8) : 'absent'} role=${role || 'missing'} channel=${channel || 'missing'} permissionMode=${typeof body.permissionMode === 'string' ? body.permissionMode : 'default'} channels=${Array.isArray(body.channels) ? body.channels.length : 0} attachmentDir=${typeof body.attachmentDir === 'string' ? 'set' : 'absent'} aboutOwner=${aboutOwnerShape} dormantPlugins=${dormantPluginsShape} tunnelUrl=${typeof body.tunnelUrl === 'string' ? 'set' : (body.tunnelUrl === null ? 'null' : 'absent')} initialMessageBytes=${initialMessageBytes}`);
605
+ if (!senderId || !ROLES.includes(role) || !CHANNELS.includes(channel)) {
606
+ timed(deps.logger, 'POST', '/public-spawn', 400, Date.now() - start);
607
+ return c.json({ error: 'invalid-arguments', detail: { senderId: !!senderId, role, channel } }, 400);
608
+ }
609
+ if (role === 'public') {
610
+ const decision = deps.publicSpawnLimiter.admit(senderId, channel);
611
+ if (!decision.admitted) {
612
+ deps.logger(`spawn-rate-limited senderId=${senderId} channel=${channel} scope=${decision.scope} window=${decision.windowMs} cap=${decision.cap}`);
613
+ timed(deps.logger, 'POST', '/public-spawn', 429, Date.now() - start);
614
+ return c.json({
615
+ error: 'too-many-spawns',
616
+ detail: { scope: decision.scope, cap: decision.cap, windowMs: decision.windowMs, channel },
617
+ }, 429);
618
+ }
619
+ }
620
+ const channels = Array.isArray(body.channels)
621
+ ? body.channels.filter((c) => typeof c === 'string' && c.length > 0)
622
+ : undefined;
623
+ const permissionMode = typeof body.permissionMode === 'string' && PERMISSION_MODES.includes(body.permissionMode)
624
+ ? body.permissionMode
625
+ : undefined;
626
+ const attachmentDir = typeof body.attachmentDir === 'string' && body.attachmentDir.startsWith('/')
627
+ ? body.attachmentDir
628
+ : undefined;
629
+ const aboutOwner = parseAboutOwner(body.aboutOwner);
630
+ const dormantPlugins = parseDormantPlugins(body.dormantPlugins);
631
+ const activePlugins = parseActivePlugins(body.activePlugins);
632
+ const specialistDomains = parseSpecialistDomains(body.specialistDomains);
633
+ const tunnelUrlOverride = typeof body.tunnelUrl === 'string'
634
+ ? body.tunnelUrl
635
+ : body.tunnelUrl === null
636
+ ? null
637
+ : undefined;
638
+ const result = await spawnClaudeSession({
639
+ ...deps,
640
+ watcher: deps.watcher,
641
+ onSessionReady: (tracker) => {
642
+ attachPublicAudit(deps, tracker.sessionId, role);
643
+ attachPublicExitNotify(tracker.sessionId, role, deps.logger);
644
+ attachSpecialistEndTurnAutoArchive(deps, tracker.sessionId, tracker.specialist);
645
+ },
646
+ onUrlCaptured: notifyUrlCaptured,
647
+ tunnelUrlOverride,
648
+ }, {
649
+ senderId,
650
+ userId,
651
+ role: role,
652
+ channel: channel,
653
+ channels,
654
+ permissionMode,
655
+ attachmentDir,
656
+ aboutOwner,
657
+ dormantPlugins,
658
+ activePlugins,
659
+ specialistDomains,
660
+ hidden,
661
+ specialist,
662
+ model,
663
+ initialMessage,
664
+ agentSlug,
665
+ conversationNodeId,
666
+ sliceToken,
667
+ personId,
668
+ });
669
+ if (!result.ok) {
670
+ if ('rejected' in result) {
671
+ timed(deps.logger, 'POST', '/public-spawn', 503, Date.now() - start);
672
+ if (result.rejected.kind === 'specialist-cap-reached') {
673
+ return c.json({ error: 'specialist-cap-reached', currentCount: result.rejected.currentCount, cap: result.rejected.cap }, 503);
674
+ }
675
+ if (result.rejected.kind === 'low-memory') {
676
+ return c.json({ error: 'low-memory', memAvailableMb: result.rejected.memAvailableMb, thresholdMb: result.rejected.thresholdMb }, 503);
677
+ }
678
+ return c.json({ error: 'operator-slots-reserved', total: result.rejected.total, reserve: result.rejected.reserve, totalCap: result.rejected.totalCap }, 503);
679
+ }
680
+ timed(deps.logger, 'POST', '/public-spawn', 500, Date.now() - start);
681
+ // Task 576 — surface the auth-refresh-failed reason when the
682
+ // creds file says `dead` or `expired`. Without this the operator
683
+ // sees a generic `pid-file-timeout` for what is actually an
684
+ // OAuth-token failure and cannot recover via "Reconnect Claude".
685
+ const authSnap = snapshotAuthForFailureReason(credentialsPathForConfigDir(deps.claudeConfigDir));
686
+ const reason = authSnap === 'dead' || authSnap === 'expired' ? 'auth-refresh-failed' : result.reason;
687
+ if (reason === 'auth-refresh-failed') {
688
+ deps.logger(`[spawn-failed] reason=auth-refresh-failed authStatus=${authSnap} originalReason=${result.reason}`);
689
+ }
690
+ return c.json({ error: 'spawn-failed', reason, stderrTail: result.stderrTail, authStatus: authSnap }, 500);
691
+ }
692
+ timed(deps.logger, 'POST', '/public-spawn', 200, Date.now() - start);
693
+ // Task 624 — persist the maxy title into the user-override tier so it wins
694
+ // over Claude Code's ai-title in both the manager list and the UI sidebar
695
+ // (sidebar-sessions.ts reads the same session-titles.json). role=public only;
696
+ // admin/whatsapp titling is unchanged. The spawn line always carries a title
697
+ // field so a dropped name is visible without reproducing.
698
+ if (role === 'public') {
699
+ if (publicTitle) {
700
+ deps.userTitleStore.set(result.session.sessionId, publicTitle);
701
+ deps.logger(`[spawn] role=public senderId=${senderId} sessionId=${result.session.sessionId.slice(0, 8)} title="${publicTitle}"`);
702
+ }
703
+ else {
704
+ deps.logger(`[spawn] role=public senderId=${senderId} sessionId=${result.session.sessionId.slice(0, 8)} title=missing`);
705
+ }
706
+ }
707
+ const payload = buildSpawnReturnPayload(result.session.sessionId, result.session.pid, result.session.startedAt, result.session.url);
708
+ return c.json(payload, 200);
709
+ });
710
+ // SSE feed of row deltas. One channel per client; manager fans out from
711
+ // a single watcher subscription. On connect: replay current rows as
712
+ // `row-created`, then stream subsequent watcher events as
713
+ // `row-<created|updated|archived|removed>`.
714
+ //
715
+ // Payload shape per event (`data: <json>`):
716
+ // { sessionId, live, status, agentLabel, cwd, firstPrompt, titleSource,
717
+ // updatedAt, url, archived }
718
+ // Task 141: `sessionId` carries whichever phase is current (bridge
719
+ // suffix preferred, JSONL basename fallback) — same single-id contract
720
+ // as `/meta`.
721
+ //
722
+ // `live` mirrors the watcher's `state === 'live'`. `status` is the
723
+ // watcher's `idle | busy | gone`. `agentLabel` is the resolution
724
+ // `agent ?? cachedAgentSetting`; the UI maps null → "admin",
725
+ // non-null → the specialist name. `firstPrompt` is the resolved
726
+ // displayName (tail.aiTitle verbatim, else null — Task 146) so the row
727
+ // title is computed once on the server, not by every browser tab.
728
+ // Task 189: `url` is `StoredSession.url` for a live row in the in-memory
729
+ // store, or null otherwise. Stays null forever on headless spawns (they
730
+ // never get `--remote-control`) and on archived rows (the StoredSession
731
+ // is removed on PTY exit). The client uses null to hide the
732
+ // Open-in-new-tab arrow; the SSE re-emit below pushes a fresh frame
733
+ // when url-capture lands so the arrow appears in step.
734
+ app.get('/events', (c) => {
735
+ const start = Date.now();
736
+ const clientIp = c.req.header('x-forwarded-for') ?? 'loopback';
737
+ const replayRows = deps.watcher.all();
738
+ deps.logger(`[admin-events] client-connected ip=${clientIp} seeded-rows=${replayRows.length}`);
739
+ function rowToPayload(row) {
740
+ const agentLabel = row.agent ?? row.cachedAgentSetting ?? null;
741
+ let firstPrompt = null;
742
+ let titleSource = null;
743
+ const jsonlPath = jsonlPathForSessionId(deps.spawnCwd, row.sessionId);
744
+ if (existsSync(jsonlPath)) {
745
+ const enriched = readJsonlSession(deps.spawnCwd, row.sessionId, LIST_TAIL_BYTES, deps.logger, deps.userTitleStore);
746
+ if (enriched) {
747
+ firstPrompt = enriched.displayName;
748
+ titleSource = enriched.titleSource;
749
+ }
750
+ }
751
+ else {
752
+ // Pre-jsonl / post-purge: only the user-title store can answer.
753
+ const userTitle = deps.userTitleStore.get(row.sessionId)?.title;
754
+ if (userTitle) {
755
+ firstPrompt = userTitle;
756
+ titleSource = 'user';
757
+ }
758
+ }
759
+ return {
760
+ sessionId: row.sessionId,
761
+ live: row.state === 'live',
762
+ status: row.status,
763
+ agentLabel,
764
+ cwd: row.cwd,
765
+ firstPrompt,
766
+ titleSource,
767
+ updatedAt: row.updatedAt,
768
+ // Task 260 — url is on the row from the sidecar; url-capture
769
+ // mutates the sidecar in place and the watcher re-reads on the
770
+ // next event. Earlier this dipped into deps.store for the live-
771
+ // row case and returned null for everything else.
772
+ url: row.url,
773
+ // Task 260 — archive state is on the row directly (the watcher
774
+ // enumerates both top and archive subdirs and folds a top→archive
775
+ // move into a single state change). Earlier this was an extra
776
+ // existsSync against the archive path because archived rows
777
+ // weren't first-class members of the index.
778
+ archived: row.state === 'archived',
779
+ };
780
+ }
781
+ timed(deps.logger, 'GET', '/events', 200, Date.now() - start);
782
+ return stream(c, async (out) => {
783
+ // SSE response headers — Hono's stream() helper sets text/event-stream
784
+ // automatically, but we explicitly disable proxy buffering so the
785
+ // first replay batch arrives before any keep-alive.
786
+ c.header('Content-Type', 'text/event-stream');
787
+ c.header('Cache-Control', 'no-cache, no-transform');
788
+ c.header('X-Accel-Buffering', 'no');
789
+ c.header('Connection', 'keep-alive');
790
+ const connectStart = Date.now();
791
+ let active = true;
792
+ let subscribersCount = 0;
793
+ // Task 272 — paired dedup for the live→archived demote sequence.
794
+ // The watcher fires `delete pid` immediately followed by `modify jsonl`
795
+ // for the same sessionId; the pid-delete branch emits row-archived and
796
+ // we must swallow the trailing modify so the client sees one
797
+ // transition. Pre-Task-272 the dedup matched on row state instead, so
798
+ // every modify-jsonl on a non-live row was dropped — including
799
+ // archive↔top renames on stash composites and sidecar refreshes on
800
+ // ended rows. Window is comfortably wider than the watcher's per-path
801
+ // debounce (~30 ms in production) so back-to-back events on the same
802
+ // sessionId pair correctly without dropping unrelated mutations
803
+ // arriving later in the connection.
804
+ const pendingDedupAt = new Map();
805
+ const DEDUP_WINDOW_MS = 100;
806
+ // Replay phase. Emit a `row-created` for every row in the index so
807
+ // a freshly-connected tab catches up to the manager's view before
808
+ // any subsequent delta arrives.
809
+ for (const row of replayRows) {
810
+ if (!active)
811
+ break;
812
+ const payload = rowToPayload(row);
813
+ await out.write(`event: row-created\ndata: ${JSON.stringify(payload)}\n\n`);
814
+ }
815
+ // Delta phase. Subscribe to the watcher and map watcher events to
816
+ // the four SSE event kinds. Mapping:
817
+ // create → row-created
818
+ // modify → row-updated (state may have flipped — see archive)
819
+ // delete → three real cases:
820
+ // pid + row present → row-archived (PID gone, JSONL survives)
821
+ // pid + row null → row-removed (PID gone, no JSONL ever existed)
822
+ // jsonl + row null → row-removed (JSONL deleted, row unindexed)
823
+ const unsubscribe = deps.watcher.subscribe((event) => {
824
+ if (!active)
825
+ return;
826
+ // The watcher emits a synthetic `kind=modify source=jsonl` pair
827
+ // immediately after `kind=delete source=pid` when a row demotes
828
+ // from live → archived. Treat that pair as one `row-archived`
829
+ // event so the UI sees a single transition rather than a delete
830
+ // followed by an unrelated update.
831
+ if (event.kind === 'delete' && event.source === 'pid' && event.row) {
832
+ const payload = rowToPayload(event.row);
833
+ subscribersCount += 1;
834
+ // Task 272 — arm the paired dedup BEFORE the synchronous emit so
835
+ // the trailing modify-jsonl on the same sessionId (delivered by
836
+ // the same subscriber callback, off the same debounce flush) hits
837
+ // an entry that has not yet expired.
838
+ pendingDedupAt.set(event.sessionId, Date.now());
839
+ deps.logger(`[admin-events] emit event=row-archived sessionId=${event.sessionId} subscribers=1`);
840
+ void out.write(`event: row-archived\ndata: ${JSON.stringify(payload)}\n\n`);
841
+ return;
842
+ }
843
+ // Recorder case: PID file disappeared before any JSONL was ever
844
+ // written. Row is unindexed at the manager. Without this branch
845
+ // the row falls through `if (!event.row) return` below and the
846
+ // client sidebar keeps showing a session that no longer exists.
847
+ if (event.kind === 'delete' && event.source === 'pid' && !event.row) {
848
+ subscribersCount += 1;
849
+ deps.logger(`[admin-events] emit event=row-removed sessionId=${event.sessionId} subscribers=1`);
850
+ void out.write(`event: row-removed\ndata: ${JSON.stringify({ sessionId: event.sessionId })}\n\n`);
851
+ return;
852
+ }
853
+ if (event.kind === 'delete' && event.source === 'jsonl' && !event.row) {
854
+ subscribersCount += 1;
855
+ deps.logger(`[admin-events] emit event=row-removed sessionId=${event.sessionId} subscribers=1`);
856
+ void out.write(`event: row-removed\ndata: ${JSON.stringify({ sessionId: event.sessionId })}\n\n`);
857
+ return;
858
+ }
859
+ // Task 272 — paired dedup for the live→archived demote sequence.
860
+ // Only swallow the modify-jsonl that immediately follows a
861
+ // delete-pid for the SAME sessionId, within the debounce window.
862
+ // The pre-Task-272 predicate (row no longer live AND pidFilePath
863
+ // null) was too broad: it caught archive↔top renames on stash
864
+ // composites and sidecar refreshes on ended rows, leaving the
865
+ // sidebar stuck on the pre-rename state.
866
+ if (event.kind === 'modify' && event.source === 'jsonl' && event.row) {
867
+ const dedupTs = pendingDedupAt.get(event.sessionId);
868
+ if (dedupTs !== undefined && Date.now() - dedupTs <= DEDUP_WINDOW_MS) {
869
+ pendingDedupAt.delete(event.sessionId);
870
+ deps.logger(`[admin-events] dedup-paired sessionId=${event.sessionId} reason=pid-delete-coalesce`);
871
+ return;
872
+ }
873
+ // Drop any stale pending entry so it cannot dedup an unrelated
874
+ // future modify on the same sessionId.
875
+ if (dedupTs !== undefined)
876
+ pendingDedupAt.delete(event.sessionId);
877
+ }
878
+ if (!event.row)
879
+ return;
880
+ const sseEvent = event.kind === 'create' ? 'row-created' : 'row-updated';
881
+ const payload = rowToPayload(event.row);
882
+ subscribersCount += 1;
883
+ // Task 272 — the previously-swallowed case (state !== 'live' AND
884
+ // pidFilePath === null with no paired pid-delete in the window)
885
+ // now emits. Tag it with reason=jsonl-modify-non-live so the
886
+ // regression is visible in a single grep against server logs.
887
+ const previouslySwallowed = event.kind === 'modify'
888
+ && event.source === 'jsonl'
889
+ && event.row.state !== 'live'
890
+ && event.row.pidFilePath === null;
891
+ const reasonSuffix = previouslySwallowed ? ' reason=jsonl-modify-non-live' : '';
892
+ deps.logger(`[admin-events] emit event=${sseEvent} sessionId=${event.sessionId} subscribers=1${reasonSuffix}`);
893
+ void out.write(`event: ${sseEvent}\ndata: ${JSON.stringify(payload)}\n\n`);
894
+ });
895
+ // Task 189 / 260 — when `url-capture` fires for a session, the
896
+ // pty-spawner calls `notifyUrlCaptured(sessionId)` after writing
897
+ // the URL to the sidecar. Re-emit the row so the client's hidden
898
+ // Open-in-new-tab arrow appears in step. The row lookup goes
899
+ // through the watcher (canonical row index); rowToPayload then
900
+ // reads `url` from the row (which the watcher just refreshed
901
+ // from the sidecar).
902
+ const urlListener = (sessionId) => {
903
+ if (!active)
904
+ return;
905
+ const row = deps.watcher.getBySessionId(sessionId);
906
+ if (!row)
907
+ return;
908
+ const payload = rowToPayload(row);
909
+ subscribersCount += 1;
910
+ deps.logger(`[admin-events] emit event=row-updated sessionId=${sessionId} subscribers=1`);
911
+ void out.write(`event: row-updated\ndata: ${JSON.stringify(payload)}\n\n`);
912
+ };
913
+ urlUpdateListeners.add(urlListener);
914
+ // Task 253 — rename re-emit. The POST /:sessionId/rename handler
915
+ // mutates the user-title store and then calls notifyRename(); each
916
+ // /events handler re-emits the row so every browser tab sees the new
917
+ // label without re-fetching the sidebar route. The row lookup goes through the
918
+ // watcher (canonical row index); rowToPayload then re-reads the user
919
+ // title from `deps.userTitleStore`, picking up the freshly-set value.
920
+ const renameListener = (sessionId) => {
921
+ if (!active)
922
+ return;
923
+ const row = deps.watcher.getBySessionId(sessionId);
924
+ if (!row)
925
+ return;
926
+ const payload = rowToPayload(row);
927
+ subscribersCount += 1;
928
+ deps.logger(`[admin-events] emit event=row-updated sessionId=${sessionId} reason=rename subscribers=1`);
929
+ void out.write(`event: row-updated\ndata: ${JSON.stringify(payload)}\n\n`);
930
+ };
931
+ renameListeners.add(renameListener);
932
+ // Keep-alive comment every 25 s. Proxies aggressively close idle
933
+ // text/event-stream connections at 30–60 s; a comment line is
934
+ // ignored by EventSource consumers but resets the proxy clock.
935
+ const keepAlive = setInterval(() => {
936
+ if (!active)
937
+ return;
938
+ void out.write(`: keep-alive ${Date.now()}\n\n`);
939
+ }, 25_000);
940
+ out.onAbort(() => {
941
+ active = false;
942
+ clearInterval(keepAlive);
943
+ unsubscribe();
944
+ urlUpdateListeners.delete(urlListener);
945
+ renameListeners.delete(renameListener);
946
+ const durationMs = Date.now() - connectStart;
947
+ deps.logger(`[admin-events] client-disconnected ip=${clientIp} duration-ms=${durationMs} emits=${subscribersCount}`);
948
+ });
949
+ // Park the stream open until the client aborts. Without this the
950
+ // handler returns and Hono closes the response.
951
+ while (active) {
952
+ await new Promise((resolve) => setTimeout(resolve, 1_000));
953
+ }
954
+ });
955
+ });
956
+ app.get('/:sessionId/meta', (c) => {
957
+ const start = Date.now();
958
+ const id = c.req.param('sessionId');
959
+ if (!SESSION_ID_PATTERN.test(id)) {
960
+ timed(deps.logger, 'GET', `/${id}/meta`, 400, Date.now() - start);
961
+ return c.json({ error: 'invalid-session-id' }, 400);
962
+ }
963
+ const row = resolveRow(deps.watcher, id);
964
+ if (!row) {
965
+ timed(deps.logger, 'GET', `/${id}/meta`, 404, Date.now() - start);
966
+ return c.json({ error: 'session-not-found' }, 404);
967
+ }
968
+ // Task 260 — single row source. /meta uses the deeper enumerator
969
+ // limit (jsonlReadMaxBytes) for richer turn/sizeBytes data than
970
+ // the /events SSE rowToPayload's 64 KB tail; otherwise the payload
971
+ // shape matches what /events emits.
972
+ let payload = toPayload(row);
973
+ const candidatePath = row.state === 'archived'
974
+ ? jsonlPathForSessionId(deps.spawnCwd, row.sessionId, { archived: true })
975
+ : jsonlPathForSessionId(deps.spawnCwd, row.sessionId);
976
+ if (existsSync(candidatePath)) {
977
+ const enriched = readJsonlSession(deps.spawnCwd, row.sessionId, deps.jsonlReadMaxBytes, deps.logger, deps.userTitleStore);
978
+ if (enriched) {
979
+ payload = {
980
+ ...payload,
981
+ lastMessageAt: enriched.lastMessageAt,
982
+ turnCount: enriched.turnCount,
983
+ capped: enriched.capped,
984
+ sizeBytes: enriched.sizeBytes,
985
+ model: enriched.model,
986
+ displayName: enriched.displayName,
987
+ titleSource: enriched.titleSource,
988
+ };
989
+ }
990
+ }
991
+ deps.logger(`meta sessionId=${row.sessionId.slice(0, 8)} fields=${Object.keys(payload).length} ms=${Date.now() - start}`);
992
+ timed(deps.logger, 'GET', `/${id}/meta`, 200, Date.now() - start);
993
+ return c.json(payload, 200);
994
+ });
995
+ app.post('/:sessionId/archive', async (c) => {
996
+ const start = Date.now();
997
+ const id = c.req.param('sessionId');
998
+ if (!SESSION_ID_PATTERN.test(id)) {
999
+ timed(deps.logger, 'POST', `/${id}/archive`, 400, Date.now() - start);
1000
+ return c.json({ error: 'invalid-session-id' }, 400);
1001
+ }
1002
+ let body;
1003
+ try {
1004
+ body = await c.req.json();
1005
+ }
1006
+ catch {
1007
+ timed(deps.logger, 'POST', `/${id}/archive`, 400, Date.now() - start);
1008
+ return c.json({ error: 'body-not-json' }, 400);
1009
+ }
1010
+ const mode = body.mode;
1011
+ if (mode !== 'archive' && mode !== 'unarchive') {
1012
+ timed(deps.logger, 'POST', `/${id}/archive`, 400, Date.now() - start);
1013
+ return c.json({ error: 'invalid-mode', detail: { expected: ['archive', 'unarchive'] } }, 400);
1014
+ }
1015
+ const row = resolveRow(deps.watcher, id);
1016
+ if (!row) {
1017
+ timed(deps.logger, 'POST', `/${id}/archive`, 404, Date.now() - start);
1018
+ return c.json({ error: 'session-not-found' }, 404);
1019
+ }
1020
+ const slug = projectSlugForCwd(deps.spawnCwd);
1021
+ const slugDir = join(claudeStateRoot(), 'projects', slug);
1022
+ const archiveDir = join(slugDir, 'archive');
1023
+ const fileName = `${row.sessionId}.jsonl`;
1024
+ // Task 260 — refuse archive whenever an alive PTY exists for this
1025
+ // row in the manager's tracker map. Earlier this walked every
1026
+ // store entry to find one whose derived path equaled the candidate
1027
+ // — that loop was redundant because the JSONL basename IS the
1028
+ // sessionId, so the only relevant check is "is this sessionId
1029
+ // tracker alive?". `isLive` answers in O(1).
1030
+ if (mode === 'archive' && isLive(row.sessionId)) {
1031
+ deps.logger(`archive-refused sessionId=${row.sessionId.slice(0, 8)} reason=pty-alive`);
1032
+ timed(deps.logger, 'POST', `/${id}/archive`, 409, Date.now() - start);
1033
+ return c.json({ error: 'pty-still-alive', detail: 'end the session before archiving' }, 409);
1034
+ }
1035
+ const fromJsonl = mode === 'archive' ? join(slugDir, fileName) : join(archiveDir, fileName);
1036
+ const toJsonl = mode === 'archive' ? join(archiveDir, fileName) : join(slugDir, fileName);
1037
+ if (!existsSync(fromJsonl)) {
1038
+ timed(deps.logger, 'POST', `/${id}/archive`, 404, Date.now() - start);
1039
+ return c.json({ error: 'session-not-found' }, 404);
1040
+ }
1041
+ try {
1042
+ if (mode === 'archive')
1043
+ mkdirSync(archiveDir, { recursive: true });
1044
+ renameSync(fromJsonl, toJsonl);
1045
+ }
1046
+ catch (err) {
1047
+ const msg = err instanceof Error ? err.message : String(err);
1048
+ deps.logger(`archive-failed sessionId=${row.sessionId.slice(0, 8)} mode=${mode} message=${msg}`);
1049
+ timed(deps.logger, 'POST', `/${id}/archive`, 500, Date.now() - start);
1050
+ return c.json({ error: 'archive-failed', detail: msg }, 500);
1051
+ }
1052
+ // Task 260 — the sidecar travels with the JSONL. Best-effort: an
1053
+ // orphan sidecar at the source path is self-healing (the next
1054
+ // bootSeed indexes the row with null fields and the operator
1055
+ // re-archives), but the orphan is itself a regression signal the
1056
+ // log line surfaces.
1057
+ let sidecarMoved = false;
1058
+ try {
1059
+ const fromSidecar = mode === 'archive'
1060
+ ? sidecarPathForSessionId(deps.spawnCwd, row.sessionId)
1061
+ : sidecarPathForSessionId(deps.spawnCwd, row.sessionId, { archived: true });
1062
+ const toSidecar = mode === 'archive'
1063
+ ? sidecarPathForSessionId(deps.spawnCwd, row.sessionId, { archived: true })
1064
+ : sidecarPathForSessionId(deps.spawnCwd, row.sessionId);
1065
+ if (existsSync(fromSidecar)) {
1066
+ renameSync(fromSidecar, toSidecar);
1067
+ sidecarMoved = true;
1068
+ }
1069
+ }
1070
+ catch (err) {
1071
+ const msg = err instanceof Error ? err.message : String(err);
1072
+ deps.logger(`archive-sidecar-move-failed sessionId=${row.sessionId.slice(0, 8)} mode=${mode} message=${msg}`);
1073
+ }
1074
+ deps.logger(`[archive] sessionId=${row.sessionId.slice(0, 8)} mode=${mode} from=${basename(fromJsonl)} to=${join(mode === 'archive' ? 'archive' : '.', basename(toJsonl))} sidecar-moved=${sidecarMoved}`);
1075
+ timed(deps.logger, 'POST', `/${id}/archive`, 200, Date.now() - start);
1076
+ return c.json({ ok: true, mode }, 200);
1077
+ });
1078
+ // Task 253 — POST /:sessionId/rename { title }
1079
+ // - 200 + body on accept (carries the persisted title)
1080
+ // - 400 on validator reject (empty / too-long / control-chars)
1081
+ // - 404 when no row matches any of the four ids
1082
+ // After accepting, the user-title store persists and notifyRename()
1083
+ // fans a row-updated frame to every connected /events client so the
1084
+ // sidebar refreshes without a sidebar-route re-fetch.
1085
+ app.post('/:sessionId/rename', async (c) => {
1086
+ const start = Date.now();
1087
+ const id = c.req.param('sessionId');
1088
+ if (!SESSION_ID_PATTERN.test(id) && !/^\d+$/.test(id)) {
1089
+ timed(deps.logger, 'POST', `/${id}/rename`, 400, Date.now() - start);
1090
+ return c.json({ error: 'invalid-session-id' }, 400);
1091
+ }
1092
+ let body;
1093
+ try {
1094
+ body = await c.req.json();
1095
+ }
1096
+ catch {
1097
+ timed(deps.logger, 'POST', `/${id}/rename`, 400, Date.now() - start);
1098
+ return c.json({ error: 'invalid-json-body' }, 400);
1099
+ }
1100
+ const row = resolveRow(deps.watcher, id);
1101
+ // Task 260 — rename resolves via the watcher row index. The live
1102
+ // tracker is no longer a secondary lookup surface — the watcher's
1103
+ // PID-file event indexes every live session, so a sessionId that
1104
+ // names no row also names no live PTY.
1105
+ const sessionId = row?.sessionId;
1106
+ if (!sessionId) {
1107
+ timed(deps.logger, 'POST', `/${id}/rename`, 404, Date.now() - start);
1108
+ return c.json({ error: 'session-not-found' }, 404);
1109
+ }
1110
+ const result = validateUserTitle(body.title);
1111
+ if (!result.ok) {
1112
+ deps.logger(`rename-rejected sessionId=${sessionId.slice(0, 8)} reason=${result.reason}`);
1113
+ timed(deps.logger, 'POST', `/${id}/rename`, 400, Date.now() - start);
1114
+ return c.json({ error: 'invalid-title', reason: result.reason }, 400);
1115
+ }
1116
+ const entry = deps.userTitleStore.set(sessionId, result.title);
1117
+ // Title content is never logged — operator names may contain customer
1118
+ // data. Byte count is enough for forensic recovery of bulk-rename surges.
1119
+ const titleBytes = Buffer.byteLength(entry.title, 'utf-8');
1120
+ deps.logger(`rename sessionId=${sessionId.slice(0, 8)} title-bytes=${titleBytes} source=manager-route`);
1121
+ notifyRename(sessionId);
1122
+ timed(deps.logger, 'POST', `/${id}/rename`, 200, Date.now() - start);
1123
+ return c.json({ ok: true, sessionId, titleSource: 'user', renamedAt: entry.renamedAt }, 200);
1124
+ });
1125
+ // SIGTERM-only stop. Idempotent on already-dead PTYs. JSONL untouched.
1126
+ app.post('/:sessionId/stop', async (c) => {
1127
+ const start = Date.now();
1128
+ const id = c.req.param('sessionId');
1129
+ if (!SESSION_ID_PATTERN.test(id) && !/^\d+$/.test(id)) {
1130
+ timed(deps.logger, 'POST', `/${id}/stop`, 400, Date.now() - start);
1131
+ return c.json({ error: 'invalid-session-id' }, 400);
1132
+ }
1133
+ const row = resolveRow(deps.watcher, id);
1134
+ if (!row && !isLive(id)) {
1135
+ timed(deps.logger, 'POST', `/${id}/stop`, 404, Date.now() - start);
1136
+ return c.json({ error: 'session-not-found' }, 404);
1137
+ }
1138
+ const sessionId = row?.sessionId ?? id;
1139
+ // Task 455 — snapshot the live pid and prior-exited-count BEFORE
1140
+ // stopSession runs (the call mutates module state). When prior history
1141
+ // exists, emit a single observability line naming the pid the lookup
1142
+ // resolved to; the existing `[stop-session] systemd-scope-stop` line
1143
+ // still fires from inside stopSession. The new line is gated on count
1144
+ // > 0 so the happy-path log shape stays unchanged.
1145
+ const liveBeforeStop = livePidForSession(sessionId);
1146
+ const priorExitedCount = priorExitedCountForSession(sessionId);
1147
+ if (priorExitedCount > 0) {
1148
+ deps.logger(`[stop-session] resolved sessionId=${sessionId.slice(0, 8)} pid=${liveBeforeStop ?? 'none'} prior-exited-count=${priorExitedCount}`);
1149
+ }
1150
+ const outcome = await stopSession({
1151
+ killGraceMs: deps.killGraceMs,
1152
+ logger: deps.logger,
1153
+ runSystemctl: deps.runSystemctl,
1154
+ // Task 427 — when the row was reattached after a manager restart,
1155
+ // `livePtys` has no entry but `row.scopeUnitToken` is set; pass it
1156
+ // so stopSession can take the row-scope fallback path.
1157
+ rowScopeUnitToken: row?.scopeUnitToken ?? null,
1158
+ // Task 451 — paired with rowScopeUnitToken so the row-scope branch
1159
+ // can post-flight verify the kill via kill(pid, 0).
1160
+ rowPid: row?.pid ?? null,
1161
+ }, sessionId);
1162
+ // Task 427 — one unified log line per /stop attempt that names the
1163
+ // path taken. Detail lines from each branch keep their own per-branch
1164
+ // formatting (Task 250 contract); this is the single audit line the
1165
+ // operator and tests can grep against to confirm which branch ran.
1166
+ deps.logger(`[stop-session] path=${outcome.path} outcome=${outcome.scopeOutcome} sessionId=${sessionId.slice(0, 8)} unit=${row?.scopeUnitToken ?? 'none'} pid=${row?.pid ?? 'unknown'}`);
1167
+ // Task 250 — surface scope-stop failures as 500 so the operator sees
1168
+ // the End-click fail when systemd cannot stop the unit. The liveptys
1169
+ // happy path keeps its original 204 response (Task 250 contract).
1170
+ if (outcome.scopeOutcome === 'error') {
1171
+ timed(deps.logger, 'POST', `/${sessionId}/stop`, 500, Date.now() - start);
1172
+ return c.json({
1173
+ error: 'scope-stop-failed',
1174
+ path: outcome.path,
1175
+ exitCode: outcome.exitCode,
1176
+ detail: 'systemctl --user stop returned a non-zero exit code for the session\'s scope unit',
1177
+ }, 500);
1178
+ }
1179
+ // Task 451 — `failed-pid-survives` means the manager escalated SIGTERM
1180
+ // then SIGKILL and the pid is STILL alive. Surface as 500 so the End
1181
+ // click does not falsely succeed; the operator needs to know termination
1182
+ // did not happen.
1183
+ if (outcome.scopeOutcome === 'failed-pid-survives') {
1184
+ timed(deps.logger, 'POST', `/${sessionId}/stop`, 500, Date.now() - start);
1185
+ return c.json({
1186
+ error: 'pid-survived-sigkill',
1187
+ path: outcome.path,
1188
+ exitCode: outcome.exitCode,
1189
+ detail: 'systemctl stop returned 0 but the claude pid resisted SIGTERM and SIGKILL; manual intervention required',
1190
+ }, 500);
1191
+ }
1192
+ // Task 427 — the row-scope branch returns a 200 JSON body so the UI
1193
+ // can distinguish "the manager actually stopped a reattached PTY" from
1194
+ // the original single-process happy path's 204. The boot-seed reattach
1195
+ // case is genuine work — systemctl stopped a surviving scope unit —
1196
+ // and the operator's log surface should reflect that distinction.
1197
+ //
1198
+ // Task 455 — the `no-store-entry` branch falls through to 204. There
1199
+ // was no live pid anywhere (no tracker, no row scope token), so the
1200
+ // request is idempotent "already stopped"; nothing was signalled. The
1201
+ // UI logger sees the same 204 it does for the live happy path, which
1202
+ // is correct — both cases describe "nothing live remains".
1203
+ if (outcome.path === 'row-scope') {
1204
+ timed(deps.logger, 'POST', `/${sessionId}/stop`, 200, Date.now() - start);
1205
+ return c.json({ ok: true, path: outcome.path, outcome: outcome.scopeOutcome }, 200);
1206
+ }
1207
+ timed(deps.logger, 'POST', `/${sessionId}/stop`, 204, Date.now() - start);
1208
+ return c.body(null, 204);
1209
+ });
1210
+ // Hard-remove transcript. 409 if PTY is still alive (stop first).
1211
+ app.delete('/:sessionId', async (c) => {
1212
+ const start = Date.now();
1213
+ const id = c.req.param('sessionId');
1214
+ if (!SESSION_ID_PATTERN.test(id) && !/^\d+$/.test(id)) {
1215
+ timed(deps.logger, 'DELETE', `/${id}`, 400, Date.now() - start);
1216
+ return c.json({ error: 'invalid-session-id' }, 400);
1217
+ }
1218
+ const row = resolveRow(deps.watcher, id);
1219
+ const sessionId = row?.sessionId ?? id;
1220
+ if (isLive(sessionId)) {
1221
+ deps.logger(`delete-rejected sessionId=${sessionId.slice(0, 8)} reason=pty-still-alive`);
1222
+ timed(deps.logger, 'DELETE', `/${id}`, 409, Date.now() - start);
1223
+ return c.json({ error: 'pty-still-alive', detail: 'stop the session before deleting' }, 409);
1224
+ }
1225
+ // Task 260 — purge from BOTH locations: a row may have its JSONL
1226
+ // at the top level (live or just-ended) or under archive/ (archived).
1227
+ const topJsonl = jsonlPathForSessionId(deps.spawnCwd, sessionId);
1228
+ const archivedJsonl = jsonlPathForSessionId(deps.spawnCwd, sessionId, { archived: true });
1229
+ const topSidecar = sidecarPathForSessionId(deps.spawnCwd, sessionId);
1230
+ const archivedSidecar = sidecarPathForSessionId(deps.spawnCwd, sessionId, { archived: true });
1231
+ const hasTop = existsSync(topJsonl);
1232
+ const hasArchived = existsSync(archivedJsonl);
1233
+ if (!row || (!hasTop && !hasArchived)) {
1234
+ timed(deps.logger, 'DELETE', `/${id}`, 404, Date.now() - start);
1235
+ return c.json({ error: 'session-not-found' }, 404);
1236
+ }
1237
+ const subdir = join(claudeStateRoot(), 'projects', projectSlugForCwd(deps.spawnCwd), sessionId);
1238
+ let bytes = 0;
1239
+ try {
1240
+ bytes = hasTop ? statSync(topJsonl).size : hasArchived ? statSync(archivedJsonl).size : 0;
1241
+ }
1242
+ catch {
1243
+ // size is informational
1244
+ }
1245
+ try {
1246
+ if (hasTop)
1247
+ rmSync(topJsonl);
1248
+ if (hasArchived)
1249
+ rmSync(archivedJsonl);
1250
+ if (existsSync(topSidecar))
1251
+ rmSync(topSidecar);
1252
+ if (existsSync(archivedSidecar))
1253
+ rmSync(archivedSidecar);
1254
+ if (existsSync(subdir))
1255
+ rmSync(subdir, { recursive: true, force: true });
1256
+ }
1257
+ catch (err) {
1258
+ const msg = err instanceof Error ? err.message : String(err);
1259
+ deps.logger(`delete-failed sessionId=${sessionId.slice(0, 8)} message=${msg}`);
1260
+ timed(deps.logger, 'DELETE', `/${id}`, 500, Date.now() - start);
1261
+ return c.json({ error: 'delete-failed', detail: msg }, 500);
1262
+ }
1263
+ // Task 253 — drop the user-title entry for the purged session so the
1264
+ // session-titles.json doesn't accrete orphans. Best-effort; the store
1265
+ // logs its own failure and reads still serve from the in-memory map
1266
+ // until next boot.
1267
+ deps.userTitleStore.remove(sessionId);
1268
+ deps.logger(`purge sessionId=${sessionId.slice(0, 8)} bytes=${bytes}`);
1269
+ timed(deps.logger, 'DELETE', `/${id}`, 204, Date.now() - start);
1270
+ return c.body(null, 204);
1271
+ });
1272
+ app.post('/:sessionId/input', async (c) => {
1273
+ const start = Date.now();
1274
+ const id = c.req.param('sessionId');
1275
+ const row = resolveRow(deps.watcher, id);
1276
+ const sessionId = row?.sessionId ?? id;
1277
+ let body;
1278
+ try {
1279
+ body = await c.req.json();
1280
+ }
1281
+ catch {
1282
+ timed(deps.logger, 'POST', `/${id}/input`, 400, Date.now() - start);
1283
+ return c.json({ error: 'body-not-json' }, 400);
1284
+ }
1285
+ if (typeof body.text !== 'string') {
1286
+ timed(deps.logger, 'POST', `/${id}/input`, 400, Date.now() - start);
1287
+ return c.json({ error: 'text-required' }, 400);
1288
+ }
1289
+ const channel = row?.channel ?? null;
1290
+ const result = writeInputToPty(sessionId, body.text, deps.logger, channel);
1291
+ if (!result.ok) {
1292
+ if (result.error === 'not-found') {
1293
+ timed(deps.logger, 'POST', `/${id}/input`, 404, Date.now() - start);
1294
+ return c.json({ error: 'session-not-found' }, 404);
1295
+ }
1296
+ if (result.error === 'exited') {
1297
+ timed(deps.logger, 'POST', `/${id}/input`, 410, Date.now() - start);
1298
+ return c.json({ error: 'session-exited' }, 410);
1299
+ }
1300
+ timed(deps.logger, 'POST', `/${id}/input`, 500, Date.now() - start);
1301
+ return c.json({ error: 'pty-write-failed', detail: result.detail }, 500);
1302
+ }
1303
+ timed(deps.logger, 'POST', `/${id}/input`, 200, Date.now() - start);
1304
+ return c.json({ ok: true, bytes: result.bytes }, 200);
1305
+ });
1306
+ app.get('/:sessionId/log', (c) => {
1307
+ const start = Date.now();
1308
+ const id = c.req.param('sessionId');
1309
+ const row = resolveRow(deps.watcher, id);
1310
+ const sessionId = row?.sessionId ?? id;
1311
+ const live = isLive(sessionId);
1312
+ // Task 260 — /log reads from whichever location holds the JSONL
1313
+ // right now: top level for live + recently-ended rows, archive
1314
+ // subdir for archived rows. 404 when there's no row AND no live
1315
+ // PTY for this id; 202 pending when a live PTY hasn't flushed
1316
+ // its first turn yet (no JSONL on disk in either location).
1317
+ if (!live && !row) {
1318
+ timed(deps.logger, 'GET', `/${id}/log`, 404, Date.now() - start);
1319
+ return c.json({ error: 'session-not-found' }, 404);
1320
+ }
1321
+ const topJsonl = jsonlPathForSessionId(deps.spawnCwd, sessionId);
1322
+ const archivedJsonl = jsonlPathForSessionId(deps.spawnCwd, sessionId, { archived: true });
1323
+ const jsonlPath = existsSync(topJsonl) ? topJsonl : archivedJsonl;
1324
+ if (live && !existsSync(topJsonl) && !existsSync(archivedJsonl)) {
1325
+ timed(deps.logger, 'GET', `/${id}/log`, 202, Date.now() - start);
1326
+ return c.json({ jsonlPath: null, exists: false, sizeBytes: 0, pending: true }, 202);
1327
+ }
1328
+ if (!existsSync(jsonlPath)) {
1329
+ timed(deps.logger, 'GET', `/${id}/log`, 404, Date.now() - start);
1330
+ return c.json({ error: 'session-not-found' }, 404);
1331
+ }
1332
+ const download = c.req.query('download') === '1';
1333
+ const follow = c.req.query('follow') === '1';
1334
+ // Task 631 — `&boundary=1` (channel resume-suppressing follower only) makes
1335
+ // the follow stream emit a single head→tail boundary sentinel line after
1336
+ // the existing JSONL, before tailing, so the follower can discard pre-attach
1337
+ // replay. The in-browser viewer omits it and streams from offset 0 as before.
1338
+ const boundary = c.req.query('boundary') === '1';
1339
+ // Task 197 — `?download=1` short-circuits before the JSON-metadata branch
1340
+ // so the browser receives the raw NDJSON bytes with attachment-disposition
1341
+ // headers. The non-follow JSON branch's "file gone, sizeBytes:0" answer is
1342
+ // correct for metadata but would silently save an empty file to the
1343
+ // operator's Downloads folder; refuse with a loud 404 instead.
1344
+ if (download) {
1345
+ if (!existsSync(jsonlPath)) {
1346
+ timed(deps.logger, 'GET', `/${id}/log?download=1`, 404, Date.now() - start);
1347
+ return c.json({ error: 'jsonl-missing-on-disk' }, 404);
1348
+ }
1349
+ const sizeBytes = statSync(jsonlPath).size;
1350
+ // RFC 6266 quoted-string. The sessionId arrives URL-decoded from the
1351
+ // route param; replace any character outside the safe charset so a
1352
+ // quote or newline cannot terminate the header early.
1353
+ const safeName = sessionId.replace(/[^A-Za-z0-9._-]/g, '_');
1354
+ c.header('Content-Type', 'application/x-ndjson');
1355
+ c.header('Content-Disposition', `attachment; filename="${safeName}.jsonl"`);
1356
+ c.header('Cache-Control', 'no-store');
1357
+ timed(deps.logger, 'GET', `/${id}/log?download=1`, 200, Date.now() - start);
1358
+ return stream(c, async (out) => {
1359
+ const reader = createReadStream(jsonlPath);
1360
+ for await (const chunk of reader) {
1361
+ await out.write(chunk);
1362
+ }
1363
+ deps.logger(`log-download sessionId=${sessionId} bytes=${sizeBytes} ms=${Date.now() - start}`);
1364
+ });
1365
+ }
1366
+ if (!follow) {
1367
+ const exists = existsSync(jsonlPath);
1368
+ const sizeBytes = exists ? statSync(jsonlPath).size : 0;
1369
+ timed(deps.logger, 'GET', `/${id}/log`, 200, Date.now() - start);
1370
+ return c.json({ jsonlPath, exists, sizeBytes }, 200);
1371
+ }
1372
+ timed(deps.logger, 'GET', `/${id}/log?follow=1`, 200, Date.now() - start);
1373
+ // Task 198 — open/close lifecycle lines bracket every follow stream so
1374
+ // the in-browser viewer's session is observable on the manager side.
1375
+ // `linesStreamed` counts `\n` bytes written across initial-read + tail, so
1376
+ // the value matches the operator's `wc -l` mental model. `closeReason`
1377
+ // defaults to `end` (unreachable today; reserved for a future natural-EOF
1378
+ // path such as file-deleted-mid-stream) and flips to `aborted` whenever
1379
+ // `out.onAbort` fires — that single hook covers both browser-initiated
1380
+ // abort and network disconnect, which the server cannot distinguish.
1381
+ const followStreamStart = Date.now();
1382
+ return stream(c, async (out) => {
1383
+ let position = 0;
1384
+ let linesStreamed = 0;
1385
+ let closeReason = 'end';
1386
+ const countNewlines = (buf) => {
1387
+ let n = 0;
1388
+ for (let i = 0; i < buf.length; i++)
1389
+ if (buf[i] === 0x0a)
1390
+ n++;
1391
+ return n;
1392
+ };
1393
+ if (existsSync(jsonlPath)) {
1394
+ const initialSize = statSync(jsonlPath).size;
1395
+ const head = createReadStream(jsonlPath, { start: 0, end: Math.max(0, initialSize - 1) });
1396
+ for await (const chunk of head) {
1397
+ const buf = chunk;
1398
+ linesStreamed += countNewlines(buf);
1399
+ await out.write(buf);
1400
+ }
1401
+ position = initialSize;
1402
+ }
1403
+ // Task 631 — mark the head→tail boundary. Everything written above is the
1404
+ // pre-attach JSONL (full prior conversation on a resumed session, a
1405
+ // partial in-flight turn or nothing on a cold spawn); the sentinel tells
1406
+ // the channel follower the live tail starts here. Not counted in
1407
+ // `linesStreamed` — it is not a file line, and the viewer never sets
1408
+ // `boundary`.
1409
+ if (boundary) {
1410
+ await out.write(Buffer.from(JSON.stringify({ type: '__channel_resume_boundary__' }) + '\n'));
1411
+ }
1412
+ // Task 260 — prefer the row's PID (watcher-derived) but fall back
1413
+ // to the live tracker if the row hasn't been populated yet (the
1414
+ // pre-first-turn window during which the watcher's PID-file event
1415
+ // has not fired against the row builder).
1416
+ const followPid = row?.pid ?? getPtyTrackerForTests(sessionId)?.pid ?? null;
1417
+ deps.logger(`log-follow-open sessionId=${sessionId} initialBytes=${position} pid=${followPid ?? 'null'}`);
1418
+ let active = true;
1419
+ out.onAbort(() => {
1420
+ active = false;
1421
+ closeReason = 'aborted';
1422
+ unwatchFile(jsonlPath);
1423
+ });
1424
+ const listener = () => {
1425
+ if (!active)
1426
+ return;
1427
+ if (!existsSync(jsonlPath))
1428
+ return;
1429
+ const newSize = statSync(jsonlPath).size;
1430
+ if (newSize <= position)
1431
+ return;
1432
+ const tail = createReadStream(jsonlPath, { start: position, end: newSize - 1 });
1433
+ position = newSize;
1434
+ tail.on('data', (chunk) => {
1435
+ if (active) {
1436
+ const buf = chunk;
1437
+ linesStreamed += countNewlines(buf);
1438
+ void out.write(buf);
1439
+ }
1440
+ });
1441
+ };
1442
+ watchFile(jsonlPath, { interval: 250 }, listener);
1443
+ while (active) {
1444
+ await new Promise((resolve) => setTimeout(resolve, 1_000));
1445
+ }
1446
+ deps.logger(`log-follow-close sessionId=${sessionId} reason=${closeReason} linesStreamed=${linesStreamed} ms=${Date.now() - followStreamStart}`);
1447
+ });
1448
+ });
1449
+ app.get('/healthz', (c) => c.json({ ok: true, sessions: livePtyCount() }));
1450
+ // Task 543 — fire-and-forget `claude --remote-control [name] [--session-id <sid>]`
1451
+ // spawn for the admin sessions pane. The new PTY registers itself in
1452
+ // claude.ai/code as its own Remote Control entry; reconciliation with the
1453
+ // rc-daemon is out of scope. The PID lands in
1454
+ // `<CLAUDE_CONFIG_DIR>/sessions/<pid>.json` via claude's own bootstrap,
1455
+ // which is how the sidebar list keeps `live` accurate and how the delete
1456
+ // route later finds the PID to SIGTERM.
1457
+ //
1458
+ // Task 573 — single spawn path: node-pty wrapped in `systemd-run --user
1459
+ // --scope`. Success signal is the on-disk PID file (logged as
1460
+ // `op=pidfile-present`); the prior A/B `script-scope` arm and its
1461
+ // non-PTY scope primitive are gone. The manager owns
1462
+ // one master fd per live rc-spawn child; lifecycle observability emits
1463
+ // `[rc-spawn]` and `[rc-life]` lines tagged with the `unitToken`
1464
+ // covering request → argv → pty-spawned → child-output → pidfile-present
1465
+ // (success) / early-exit (failure) → exit.
1466
+ app.post('/rc-spawn', async (c) => {
1467
+ const start = Date.now();
1468
+ let body;
1469
+ try {
1470
+ body = await c.req.json();
1471
+ }
1472
+ catch {
1473
+ body = {};
1474
+ }
1475
+ const sessionId = typeof body.sessionId === 'string' && body.sessionId.length > 0 ? body.sessionId : null;
1476
+ const name = typeof body.name === 'string' && body.name.length > 0 ? body.name : null;
1477
+ // Task 626 — per-visitor slice ringfence for the public session-end review
1478
+ // rc session. Shape-gated identically to /public-spawn so a body-controlled
1479
+ // value cannot reach the child env. Absent on channel-admin / LinkedIn.
1480
+ const sliceToken = typeof body.sliceToken === 'string' && UUID_PATTERN.test(body.sliceToken) ? body.sliceToken : undefined;
1481
+ const personId = typeof body.personId === 'string' && body.personId.length > 0 && body.personId.length <= 128
1482
+ ? body.personId
1483
+ : undefined;
1484
+ // Task 626 — one-shot admin jobs (LinkedIn ingest, public session-end
1485
+ // review) carry their prompt as the session's first turn, the same
1486
+ // trailing-positional mechanism /public-spawn uses, and close after that
1487
+ // one assistant turn. `closeAfterTurn` only takes effect with a sessionId
1488
+ // so the JSONL watcher has a path to follow.
1489
+ const initialMessage = typeof body.initialMessage === 'string' && body.initialMessage.length > 0 ? body.initialMessage : null;
1490
+ const closeAfterTurn = body.closeAfterTurn === true && sessionId !== null;
1491
+ if (sessionId !== null && !UUID_PATTERN.test(sessionId)) {
1492
+ timed(deps.logger, 'POST', '/rc-spawn', 400, Date.now() - start);
1493
+ return c.json({ error: 'sessionId must be a v4 UUID' }, 400);
1494
+ }
1495
+ // Task 547 — when a JSONL already exists for the requested sessionId,
1496
+ // resume the existing conversation instead of forking a fresh one
1497
+ // under the same id. `--session-id` is claude's fresh-spawn flag;
1498
+ // `--resume` is the continue-this-conversation flag.
1499
+ const existingJsonlPath = sessionId ? findExistingJsonlForSessionId(deps.claudeConfigDir, sessionId) : null;
1500
+ const mode = existingJsonlPath ? 'resume' : 'fresh';
1501
+ const argv = ['--remote-control'];
1502
+ if (name)
1503
+ argv.push(name);
1504
+ if (sessionId)
1505
+ argv.push(mode === 'resume' ? '--resume' : '--session-id', sessionId);
1506
+ // Task 592 — per-spawn bypass-permissions waiver. The brand settings.json
1507
+ // carries `defaultMode: bypassPermissions` (Task 583); without this flag
1508
+ // the first-time "WARNING: … 1. No, exit 2. Yes, I accept" disclaimer
1509
+ // hangs the spawn and times out waitForPid. Both documented skip keys are
1510
+ // waived so the disclaimer is suppressed whatever mode the session resolves
1511
+ // to. Per Task 574 doctrine the waiver is per-spawn (never written into
1512
+ // settings.json / .claude.json, which would permanently waive it).
1513
+ argv.push('--settings', JSON.stringify({ skipDangerousModePermissionPrompt: true, skipAutoPermissionPrompt: true }));
1514
+ // Task 626 — the initial message is the trailing positional, processed as
1515
+ // the session's first user turn at PTY startup. One-shot jobs omit `name`
1516
+ // so the prompt is the sole positional.
1517
+ if (initialMessage)
1518
+ argv.push(initialMessage);
1519
+ // Task 606 — thread the validated per-session sessionId (fresh and resume
1520
+ // share the one var) so session-linked writes resolve SESSION_ID; logDir
1521
+ // so the child's MCP stderr-tee writes its readable per-server log.
1522
+ const env = buildRcChildEnv({
1523
+ accountId: deps.accountId,
1524
+ userId: deps.userId,
1525
+ sessionId: sessionId ?? undefined,
1526
+ uiPort: process.env.MAXY_UI_INTERNAL_PORT ?? '',
1527
+ platformRoot: deps.platformRoot,
1528
+ claudeConfigDir: deps.claudeConfigDir,
1529
+ logDir: deps.logDir,
1530
+ brandedNeo4jUri: process.env.NEO4J_URI ?? '',
1531
+ brandedNeo4jPassword: process.env.NEO4J_PASSWORD ?? '',
1532
+ sliceToken,
1533
+ personId,
1534
+ });
1535
+ // Task 606 — standing startup signal: confirms per-spawn whether the
1536
+ // child env carries a session id. `mode=new` when none was requested
1537
+ // (CLI fresh-spawn), else the resolved fresh/resume.
1538
+ const childEnvMode = sessionId === null ? 'new' : mode;
1539
+ deps.logger(`[claude-session-manager] rc-child-env sessionId-present=${sessionId ? 'yes' : 'no'} mode=${childEnvMode}`);
1540
+ const unitToken = `rc-resume-${randomUUID()}`;
1541
+ const sessionIdForLog = sessionId ? sessionId.slice(0, 8) : 'new';
1542
+ const rcLifeMode = mode === 'resume' ? 'resume' : 'new';
1543
+ // Step 1 — request received, before any spawn work. The argv-resolved
1544
+ // line (step 2) emits next, so a 500 between them isolates resolution
1545
+ // failures from spawn failures.
1546
+ deps.logger(`[rc-spawn] op=request unitToken=${unitToken} sessionId=${sessionIdForLog} name=${name ?? 'none'} mode=${mode} jsonl=${existingJsonlPath ?? 'none'} initialMessage=${initialMessage ? Buffer.byteLength(initialMessage, 'utf8') + 'b' : 'none'} closeAfterTurn=${closeAfterTurn}`);
1547
+ // Cross-arm schema mirror so `grep '[rc-life]'` covers rc-spawn and
1548
+ // rc-daemon under one shape.
1549
+ emitRcLife(deps.logger, 'request', 'rc-spawn', 'node-pty', rcLifeMode, unitToken, {
1550
+ sessionId: sessionId ?? 'new',
1551
+ name: name ?? 'none',
1552
+ existingJsonl: existingJsonlPath ?? 'none',
1553
+ });
1554
+ // Step 2 — the exact claude argv (the inner command). The systemd-run
1555
+ // wrap is composed by the spawnPty adapter; logging the inner argv
1556
+ // here is enough for an operator to reproduce by hand. The wrapped
1557
+ // argv is fully reconstructible from this line + the spawn adapter
1558
+ // source (Task 250 / 556).
1559
+ deps.logger(`[rc-spawn] op=argv unitToken=${unitToken} cwd=${deps.spawnCwd} argv=${JSON.stringify([deps.claudeBin, ...argv])}`);
1560
+ emitRcLife(deps.logger, 'argv', 'rc-spawn', 'node-pty', rcLifeMode, unitToken, {
1561
+ cwd: deps.spawnCwd,
1562
+ argv: JSON.stringify([deps.claudeBin, ...argv]),
1563
+ });
1564
+ let pty;
1565
+ try {
1566
+ pty = deps.spawnPty(deps.claudeBin, argv, env, unitToken);
1567
+ }
1568
+ catch (err) {
1569
+ const msg = err instanceof Error ? err.message : String(err);
1570
+ deps.logger(`[sessions-rc-resume] spawn-failed sessionId=${sessionId ?? 'new'} name=${name ?? 'none'} err=${msg}`);
1571
+ deps.logger(`[rc-spawn] op=spawn-failed unitToken=${unitToken} err=${JSON.stringify(msg)}`);
1572
+ timed(deps.logger, 'POST', '/rc-spawn', 500, Date.now() - start);
1573
+ // Task 576 — same auth-aware reason as /spawn so the resume path
1574
+ // surfaces auth death too, not only spawn-time failures.
1575
+ const authSnap = snapshotAuthForFailureReason(credentialsPathForConfigDir(deps.claudeConfigDir));
1576
+ const reason = authSnap === 'dead' || authSnap === 'expired' ? 'auth-refresh-failed' : msg;
1577
+ if (reason === 'auth-refresh-failed') {
1578
+ deps.logger(`[rc-spawn] op=auth-refresh-failed authStatus=${authSnap} unitToken=${unitToken}`);
1579
+ }
1580
+ // Task 648 — tie the 500 to the same resume-response decision line the
1581
+ // success/timeout paths emit, so one grep covers every spawn outcome.
1582
+ deps.logger(`[rc-spawn] op=resume-response sessionId=${sessionId ?? 'none'} slug=none outcome=spawn-failed reason=${JSON.stringify(reason)}`);
1583
+ return c.json({ error: msg, reason, authStatus: authSnap }, 500);
1584
+ }
1585
+ // Step 3 — PTY spawned. fd baseline at this instant; the fd-release
1586
+ // line later in the lifecycle is read relative to this value.
1587
+ deps.logger(`[rc-spawn] op=pty-spawned unitToken=${unitToken} pid=${pty.pid} openFds=${openFdCount()}`);
1588
+ emitRcLife(deps.logger, 'spawned', 'rc-spawn', 'node-pty', rcLifeMode, unitToken, {
1589
+ pid: pty.pid,
1590
+ managerOpenFds: openFdCount(),
1591
+ });
1592
+ // Tracker registration — closes the leak gap the Task 552 path opened.
1593
+ // For fresh spawns without a caller-supplied sessionId we register the
1594
+ // tracker under the unitToken so the entry has a stable key; the
1595
+ // operator-visible sessionId only becomes known when claude writes its
1596
+ // pid file. Both keys are equally good for fd-ownership purposes.
1597
+ const trackerKey = sessionId ?? `rc-${unitToken}`;
1598
+ const tracker = registerRcSpawnPty({ logger: deps.logger }, trackerKey, pty, unitToken);
1599
+ // Task 626 — one-shot job (LinkedIn ingest, public session-end review):
1600
+ // stop the PTY once its single assistant turn lands `end_turn`. closeAfterTurn
1601
+ // implies a sessionId (validated above), so trackerKey === sessionId and the
1602
+ // JSONL watcher follows the same id claude writes under.
1603
+ if (closeAfterTurn && sessionId)
1604
+ attachEndTurnAutoClose(deps, sessionId, 'closeAfterTurn=true');
1605
+ // Step 4 — first child output. Accumulate up to 1 KB or until 500 ms
1606
+ // after the first byte arrives, then emit one line. The single log
1607
+ // that ends the 5-occasion blindness: claude's own words land here
1608
+ // — `Remote Control` on success, `No deferred tool marker` /
1609
+ // `Unknown assignment` on failure.
1610
+ let outputBuf = '';
1611
+ let outputEmitted = false;
1612
+ let outputTimer = null;
1613
+ const emitChildOutput = () => {
1614
+ if (outputEmitted)
1615
+ return;
1616
+ outputEmitted = true;
1617
+ if (outputTimer) {
1618
+ clearTimeout(outputTimer);
1619
+ outputTimer = null;
1620
+ }
1621
+ deps.logger(`[rc-spawn] op=child-output unitToken=${unitToken} pid=${pty.pid} head=${JSON.stringify(outputBuf)}`);
1622
+ };
1623
+ pty.onData((data) => {
1624
+ if (outputEmitted)
1625
+ return;
1626
+ const remaining = 1024 - outputBuf.length;
1627
+ outputBuf += remaining >= data.length ? data : data.slice(0, remaining);
1628
+ if (outputBuf.length >= 1024)
1629
+ emitChildOutput();
1630
+ else if (!outputTimer)
1631
+ outputTimer = setTimeout(emitChildOutput, 500);
1632
+ });
1633
+ // Step 5/10 — exit observation. `pidFileSeen` discriminates `early-exit`
1634
+ // (no pid file ever appeared — the no-TTY death signature) from `exit`
1635
+ // (clean termination after a normal run). `handlePtyNaturalExit` (wired
1636
+ // by `registerRcSpawnPty`) handles the tracker side — fd release +
1637
+ // tracker delete + the `kill … reason=process-exited` log.
1638
+ let pidFileSeen = false;
1639
+ pty.onExit((e) => {
1640
+ const ranMs = Date.now() - start;
1641
+ if (!pidFileSeen) {
1642
+ deps.logger(`[rc-spawn] op=early-exit unitToken=${unitToken} pid=${pty.pid} ranMs=${ranMs} exitCode=${e.exitCode} signal=${e.signal ?? 'none'}`);
1643
+ emitRcLife(deps.logger, 'early-exit', 'rc-spawn', 'node-pty', rcLifeMode, unitToken, {
1644
+ pid: pty.pid,
1645
+ ranMs,
1646
+ exitCode: e.exitCode ?? 'null',
1647
+ signal: e.signal ?? 'none',
1648
+ });
1649
+ }
1650
+ deps.logger(`[rc-spawn] op=exit unitToken=${unitToken} pid=${pty.pid} ranMs=${ranMs}`);
1651
+ emitRcLife(deps.logger, 'exit', 'rc-spawn', 'node-pty', rcLifeMode, unitToken, {
1652
+ pid: pty.pid,
1653
+ lifetimeMs: ranMs,
1654
+ exitCode: e.exitCode ?? 'null',
1655
+ signal: e.signal ?? 'none',
1656
+ });
1657
+ // Flush any buffered child output that never reached 1 KB nor the
1658
+ // 500 ms idle deadline before the child exited.
1659
+ if (!outputEmitted)
1660
+ emitChildOutput();
1661
+ });
1662
+ // Task 558 — session-ready is terminal for the spawn path. The PTY
1663
+ // master IS the live session, not a reclaimable spawn artifact:
1664
+ // claude operates on the slave, and closing the master hangs up the
1665
+ // slave (Task 557 evidence: claude exits ~0.8s after `op=fd-release
1666
+ // trigger=session-ready`). The master must stay open for the slave
1667
+ // to function. The only valid release points are the explicit
1668
+ // operator teardown — `/stop` → `stopSession` → `releasePtyMasterFd`
1669
+ // — and the natural-exit path inside `pty.onExit →
1670
+ // handlePtyNaturalExit`. The tracker remains in `livePtys` for the
1671
+ // session's lifetime.
1672
+ //
1673
+ // Task 592 — capture the promise once so the fire-and-forget logging
1674
+ // and the bounded bridgeSessionId await share the same resolution.
1675
+ const RC_SPAWN_URL_WAIT_MS = deps.rcSpawnUrlWaitMs ?? RC_SPAWN_URL_WAIT_DEFAULT_MS;
1676
+ const waitPidPromise = deps.watcher.waitForPid(pty.pid, deps.pidFileTimeoutMs);
1677
+ // Fire-and-forget: unchanged logging contract.
1678
+ void waitPidPromise
1679
+ .then((row) => {
1680
+ pidFileSeen = true;
1681
+ const ageMs = Date.now() - start;
1682
+ // Task 573 — on-disk pid file presence is the success evidence.
1683
+ // Replaces the prior op=alive / op=session-ready pair.
1684
+ deps.logger(`[rc-spawn] op=pidfile-present unitToken=${unitToken} pid=${pty.pid} path=${row.pidFilePath ?? 'unknown'} ageMs=${ageMs} bridgeId=${row.bridgeSessionId ?? 'unknown'}`);
1685
+ emitRcLife(deps.logger, 'pidfile-present', 'rc-spawn', 'node-pty', rcLifeMode, unitToken, {
1686
+ pid: pty.pid,
1687
+ path: row.pidFilePath ?? 'unknown',
1688
+ ageMs,
1689
+ bridgeId: row.bridgeSessionId ?? 'unknown',
1690
+ });
1691
+ })
1692
+ .catch((err) => {
1693
+ deps.logger(`[rc-spawn] op=wait-pid-failed unitToken=${unitToken} pid=${pty.pid} err=${err instanceof Error ? err.message : String(err)}`);
1694
+ emitRcLife(deps.logger, 'wait-pid-failed', 'rc-spawn', 'node-pty', rcLifeMode, unitToken, {
1695
+ pid: pty.pid,
1696
+ err: JSON.stringify(err instanceof Error ? err.message : String(err)),
1697
+ });
1698
+ });
1699
+ // Task 592 — bounded await: surface bridgeSessionId in the response
1700
+ // so the client can open the exact session URL. bridgeSessionId lands
1701
+ // in TWO steps (device-measured): the pid file first appears at ~1 s
1702
+ // carrying {pid, sessionId} but NO bridgeSessionId, then the RC bridge
1703
+ // writes bridgeSessionId into the same file ~0.6 s later when it
1704
+ // registers with claude.ai/code. `waitForPid` resolves on first
1705
+ // appearance, so its row's bridge is almost always null — after it
1706
+ // resolves, re-read the pid file until the bridge lands or the bound
1707
+ // elapses. On timeout (slow/failed bind) bridgeSessionId stays null and
1708
+ // the client falls back to the bare claude.ai/code URL.
1709
+ const deadline = start + RC_SPAWN_URL_WAIT_MS;
1710
+ let bridgeSessionId = null;
1711
+ let pidFilePath = null;
1712
+ const timedPidRow = await Promise.race([
1713
+ waitPidPromise.then((r) => r).catch(() => null),
1714
+ new Promise((resolve) => setTimeout(() => resolve(null), RC_SPAWN_URL_WAIT_MS)),
1715
+ ]);
1716
+ if (timedPidRow) {
1717
+ bridgeSessionId = timedPidRow.bridgeSessionId ?? null;
1718
+ pidFilePath = timedPidRow.pidFilePath ?? null;
1719
+ }
1720
+ // Poll the pid file for the late-written bridgeSessionId.
1721
+ while (!bridgeSessionId && pidFilePath && Date.now() < deadline) {
1722
+ await new Promise((r) => setTimeout(r, 200));
1723
+ try {
1724
+ const parsed = JSON.parse(readFileSync(pidFilePath, 'utf8'));
1725
+ if (typeof parsed.bridgeSessionId === 'string' && parsed.bridgeSessionId.length > 0) {
1726
+ bridgeSessionId = parsed.bridgeSessionId;
1727
+ }
1728
+ }
1729
+ catch {
1730
+ // file mid-write or transiently unreadable — retry until the deadline
1731
+ }
1732
+ }
1733
+ // Task 648 — the bind decision drives what the client renders: a slug
1734
+ // navigates the opened tab to the exact session URL; a null slug after
1735
+ // the full wait is a bind-timeout the client surfaces as an error modal
1736
+ // (never a bare claude.ai/code tab). `outcome` and `reason` are threaded
1737
+ // through the proxy unchanged so the client decides modal-vs-navigate
1738
+ // from one server-supplied value.
1739
+ const waitedMs = Date.now() - start;
1740
+ const outcome = bridgeSessionId ? 'bound' : 'timeout';
1741
+ const reason = outcome === 'bound' ? null : 'pid-bind-timeout';
1742
+ if (outcome === 'bound') {
1743
+ deps.logger(`[rc-spawn] op=resume-bound sessionId=${sessionId ?? 'none'} slug=${bridgeSessionId} ms=${waitedMs}`);
1744
+ }
1745
+ else {
1746
+ deps.logger(`[rc-spawn] op=resume-timeout sessionId=${sessionId ?? 'none'} waitedMs=${RC_SPAWN_URL_WAIT_MS} slug=none`);
1747
+ }
1748
+ deps.logger(`[rc-spawn] op=resume-response sessionId=${sessionId ?? 'none'} slug=${bridgeSessionId ?? 'none'} outcome=${outcome} reason=${reason ?? 'none'}`);
1749
+ // Every rc-spawn child runs inside a `systemd-run --user --scope`
1750
+ // unit driven by node-pty; the operator-visible spawnMethod marker
1751
+ // is kept stable so server.log greps survive the Task 573 cleanup.
1752
+ deps.logger(`[sessions-rc-resume] mode=${mode} sessionId=${sessionId ?? 'none'} jsonlPath=${existingJsonlPath ?? 'none'} name=${name ?? 'none'} spawnedPid=${pty.pid} bridgeId=${bridgeSessionId ?? 'pending'} spawnMethod=systemd-scope env.CLAUDE_CONFIG_DIR=${deps.claudeConfigDir}`);
1753
+ timed(deps.logger, 'POST', '/rc-spawn', 200, Date.now() - start);
1754
+ // `slug` is the Task 648 canonical field the client navigates by;
1755
+ // `bridgeSessionId` is the same value, retained so pre-648 consumers and
1756
+ // tests keep resolving. They never diverge — `slug` IS `bridgeSessionId`.
1757
+ return c.json({ spawnedPid: pty.pid, sessionId: sessionId ?? null, bridgeSessionId, slug: bridgeSessionId, outcome, reason });
1758
+ });
1759
+ return app;
1760
+ }
1761
+ //# sourceMappingURL=http-server.js.map