@rubytech/create-maxy-code 0.1.26 → 0.1.27

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 (449) hide show
  1. package/dist/index.js +28 -11
  2. package/package.json +1 -1
  3. package/payload/platform/plugins/.claude-plugin/marketplace.json +5 -95
  4. package/payload/platform/plugins/brochures/.claude-plugin/plugin.json +8 -0
  5. package/payload/platform/plugins/brochures/PLUGIN.md +36 -0
  6. package/payload/platform/plugins/brochures/commands/make-brochure.md +11 -0
  7. package/payload/platform/plugins/brochures/skills/a4-print-documents/SKILL.md +478 -0
  8. package/payload/platform/plugins/brochures/skills/brand-design/SKILL.md +192 -0
  9. package/payload/platform/plugins/brochures/skills/make-brochure/SKILL.md +354 -0
  10. package/payload/platform/plugins/brochures/skills/make-brochure/references/seller-brief-template.md +115 -0
  11. package/payload/platform/plugins/brochures/skills/property-brochure/SKILL.md +119 -0
  12. package/payload/platform/plugins/brochures/skills/property-brochure/references/build.md +270 -0
  13. package/payload/platform/plugins/brochures/skills/property-brochure/references/copy.md +211 -0
  14. package/payload/platform/plugins/brochures/skills/property-brochure/references/images.md +166 -0
  15. package/payload/platform/plugins/brochures/skills/property-brochure/references/index-landing.md +376 -0
  16. package/payload/platform/plugins/brochures/skills/property-brochure/references/index.html +1288 -0
  17. package/payload/platform/plugins/brochures/skills/property-brochure/references/placeholders.md +250 -0
  18. package/payload/platform/plugins/brochures/skills/property-brochure/references/registers.md +47 -0
  19. package/payload/platform/plugins/brochures/skills/property-brochure/references/seller-brief.md +56 -0
  20. package/payload/platform/plugins/brochures/skills/property-brochure/references/structure.md +249 -0
  21. package/payload/platform/plugins/brochures/skills/property-brochure/references/template.html +2370 -0
  22. package/payload/platform/plugins/brochures/skills/property-extract/SKILL.md +372 -0
  23. package/payload/platform/plugins/buyers/.claude-plugin/plugin.json +8 -0
  24. package/payload/platform/plugins/buyers/PLUGIN.md +35 -0
  25. package/payload/platform/plugins/buyers/skills/buyer-feedback/SKILL.md +109 -0
  26. package/payload/platform/plugins/buyers/skills/buyer-management/SKILL.md +42 -0
  27. package/payload/platform/plugins/buyers/skills/buyer-management/references/buyer-qualification-questions.md +16 -0
  28. package/payload/platform/plugins/buyers/skills/buyer-management/references/buyer-qualification.md +59 -0
  29. package/payload/platform/plugins/buyers/skills/buyer-management/references/buyer-scripts.md +63 -0
  30. package/payload/platform/plugins/buyers/skills/buyer-management/references/buyer-working-scripts.md +54 -0
  31. package/payload/platform/plugins/buyers/skills/buyer-management/references/feedback-collection.md +42 -0
  32. package/payload/platform/plugins/buyers/skills/buyer-management/references/offer-capture.md +38 -0
  33. package/payload/platform/plugins/buyers/skills/buyer-management/references/viewing-booking.md +32 -0
  34. package/payload/platform/plugins/buyers/skills/buyer-management/references/viewing-management.md +52 -0
  35. package/payload/platform/plugins/buyers/skills/buyer-seller-guides/SKILL.md +407 -0
  36. package/payload/platform/plugins/buyers/skills/buyer-seller-guides/references/care-fees-guide.md +68 -0
  37. package/payload/platform/plugins/buyers/skills/buyer-seller-guides/references/divorce-sales-guide.md +61 -0
  38. package/payload/platform/plugins/buyers/skills/buyer-seller-guides/references/downsizing-guide.md +45 -0
  39. package/payload/platform/plugins/buyers/skills/buyer-seller-guides/references/first-time-buyers.md +92 -0
  40. package/payload/platform/plugins/buyers/skills/buyer-seller-guides/references/first-time-sellers.md +78 -0
  41. package/payload/platform/plugins/buyers/skills/buyer-seller-guides/references/probate-guide.md +53 -0
  42. package/payload/platform/plugins/buyers/skills/buyer-seller-guides/references/upsizing-guide.md +41 -0
  43. package/payload/platform/plugins/buyers/skills/property-enquiry/SKILL.md +126 -0
  44. package/payload/platform/plugins/buyers/skills/viewing-management/SKILL.md +111 -0
  45. package/payload/platform/plugins/estate-business/.claude-plugin/plugin.json +8 -0
  46. package/payload/platform/plugins/estate-business/PLUGIN.md +65 -0
  47. package/payload/platform/plugins/estate-business/skills/business-growth/SKILL.md +133 -0
  48. package/payload/platform/plugins/estate-business/skills/business-growth/references/buy-back-your-time.md +37 -0
  49. package/payload/platform/plugins/estate-business/skills/business-growth/references/firewave-gost-scorecards.md +14 -0
  50. package/payload/platform/plugins/estate-business/skills/business-growth/references/keller-org-model.md +17 -0
  51. package/payload/platform/plugins/estate-business/skills/business-growth/references/lencioni-team-models.md +22 -0
  52. package/payload/platform/plugins/estate-business/skills/business-growth/references/listing-management-system.md +11 -0
  53. package/payload/platform/plugins/estate-business/skills/business-growth/references/net-figure-form.md +11 -0
  54. package/payload/platform/plugins/estate-business/skills/business-growth/references/serhant-bizinbox-notes.md +13 -0
  55. package/payload/platform/plugins/estate-business/skills/business-growth/references/team-roles-commission.md +14 -0
  56. package/payload/platform/plugins/estate-business/skills/business-growth/references/va-2026-ops.md +43 -0
  57. package/payload/platform/plugins/estate-business/skills/business-growth/references/wingman-structure.md +13 -0
  58. package/payload/platform/plugins/estate-business/skills/business-operations/SKILL.md +32 -0
  59. package/payload/platform/plugins/estate-business/skills/business-operations/references/crm-systems.md +57 -0
  60. package/payload/platform/plugins/estate-business/skills/business-operations/references/hiring-guide.md +59 -0
  61. package/payload/platform/plugins/estate-business/skills/business-operations/references/impact-framework.md +47 -0
  62. package/payload/platform/plugins/estate-business/skills/business-operations/references/minutes-equal-money.md +55 -0
  63. package/payload/platform/plugins/estate-business/skills/business-operations/references/team-management.md +48 -0
  64. package/payload/platform/plugins/estate-business/skills/commission-calculator/SKILL.md +40 -0
  65. package/payload/platform/plugins/estate-business/skills/exp-partnership/SKILL.md +52 -0
  66. package/payload/platform/plugins/estate-business/skills/exp-partnership/references/12-reasons.md +39 -0
  67. package/payload/platform/plugins/estate-business/skills/exp-partnership/references/95-5-system.md +66 -0
  68. package/payload/platform/plugins/estate-business/skills/exp-partnership/references/agent-attraction-scripts.md +90 -0
  69. package/payload/platform/plugins/estate-business/skills/exp-partnership/references/business-partnership.md +92 -0
  70. package/payload/platform/plugins/estate-business/skills/exp-partnership/references/exp-model-overview.md +66 -0
  71. package/payload/platform/plugins/estate-business/skills/exp-partnership/references/model-comparison.md +66 -0
  72. package/payload/platform/plugins/estate-business/skills/exp-partnership/references/revenue-share-explained.md +57 -0
  73. package/payload/platform/plugins/estate-business/skills/month-end-close/SKILL.md +69 -0
  74. package/payload/platform/plugins/estate-business/skills/payment-batch-stager/SKILL.md +42 -0
  75. package/payload/platform/plugins/estate-business/skills/period-reconciler/SKILL.md +42 -0
  76. package/payload/platform/plugins/estate-business/skills/personal-branding/SKILL.md +117 -0
  77. package/payload/platform/plugins/estate-business/skills/personal-branding/references/attraction-agent-notes.md +31 -0
  78. package/payload/platform/plugins/estate-business/skills/personal-branding/references/attraction-agent.md +58 -0
  79. package/payload/platform/plugins/estate-business/skills/personal-branding/references/authenticity-boundaries.md +28 -0
  80. package/payload/platform/plugins/estate-business/skills/personal-branding/references/become-a-brand-leader-notes.md +19 -0
  81. package/payload/platform/plugins/estate-business/skills/personal-branding/references/blast-formula.md +42 -0
  82. package/payload/platform/plugins/estate-business/skills/personal-branding/references/brand-leader.md +48 -0
  83. package/payload/platform/plugins/estate-business/skills/personal-branding/references/brand-strategy-system.md +59 -0
  84. package/payload/platform/plugins/estate-business/skills/personal-branding/references/content-engine.md +49 -0
  85. package/payload/platform/plugins/estate-business/skills/personal-branding/references/firewave-blast-and-blogging.md +23 -0
  86. package/payload/platform/plugins/estate-business/skills/personal-branding/references/gary-v-content.md +52 -0
  87. package/payload/platform/plugins/estate-business/skills/personal-branding/references/gary-v-principles.md +20 -0
  88. package/payload/platform/plugins/estate-business/skills/personal-branding/references/oversubscribed-positioning.md +18 -0
  89. package/payload/platform/plugins/estate-business/skills/personal-branding/references/platforms.md +41 -0
  90. package/payload/platform/plugins/estate-business/skills/personal-branding/references/priestley-oversubscribed.md +54 -0
  91. package/payload/platform/plugins/estate-business/skills/personal-branding/references/storeys-style-examples.md +25 -0
  92. package/payload/platform/plugins/estate-business/skills/personal-branding/references/visual-identity.md +27 -0
  93. package/payload/platform/plugins/estate-coaching/.claude-plugin/plugin.json +8 -0
  94. package/payload/platform/plugins/estate-coaching/PLUGIN.md +55 -0
  95. package/payload/platform/plugins/estate-coaching/skills/agent-performance/SKILL.md +371 -0
  96. package/payload/platform/plugins/estate-coaching/skills/agent-performance/references/atomic-habits.md +52 -0
  97. package/payload/platform/plugins/estate-coaching/skills/agent-performance/references/daily-routine-scorecard.md +104 -0
  98. package/payload/platform/plugins/estate-coaching/skills/agent-performance/references/hp6-model.md +63 -0
  99. package/payload/platform/plugins/estate-coaching/skills/agent-performance/references/twelve-week-year.md +71 -0
  100. package/payload/platform/plugins/estate-coaching/skills/bespoke-coaching/SKILL.md +36 -0
  101. package/payload/platform/plugins/estate-coaching/skills/bespoke-coaching/references/coaching-boundaries.md +56 -0
  102. package/payload/platform/plugins/estate-coaching/skills/bespoke-coaching/references/feedback-framework.md +61 -0
  103. package/payload/platform/plugins/estate-coaching/skills/bespoke-coaching/references/performance-framework.md +109 -0
  104. package/payload/platform/plugins/estate-coaching/skills/coaching-toolkit/SKILL.md +421 -0
  105. package/payload/platform/plugins/estate-coaching/skills/coaching-toolkit/references/coaching-exercises.md +86 -0
  106. package/payload/platform/plugins/estate-coaching/skills/coaching-toolkit/references/goal-setting.md +78 -0
  107. package/payload/platform/plugins/estate-coaching/skills/coaching-toolkit/references/one-to-one-framework.md +92 -0
  108. package/payload/platform/plugins/estate-coaching/skills/coaching-toolkit/references/soi-workbook.md +103 -0
  109. package/payload/platform/plugins/estate-coaching/skills/serhant-training/SKILL.md +410 -0
  110. package/payload/platform/plugins/estate-coaching/skills/serhant-training/references/agent-training-guide.md +70 -0
  111. package/payload/platform/plugins/estate-coaching/skills/serhant-training/references/business-in-a-box.md +72 -0
  112. package/payload/platform/plugins/estate-coaching/skills/serhant-training/references/buyers-guide.md +53 -0
  113. package/payload/platform/plugins/estate-coaching/skills/serhant-training/references/codo-method.md +72 -0
  114. package/payload/platform/plugins/estate-coaching/skills/serhant-training/references/website-planning-guide.md +79 -0
  115. package/payload/platform/plugins/estate-onboarding/.claude-plugin/plugin.json +8 -0
  116. package/payload/platform/plugins/estate-onboarding/PLUGIN.md +31 -0
  117. package/payload/platform/plugins/estate-onboarding/skills/bootstrap/SKILL.md +26 -0
  118. package/payload/platform/plugins/estate-onboarding/skills/bootstrap/references/onboarding-flow.md +63 -0
  119. package/payload/platform/plugins/estate-sales/.claude-plugin/plugin.json +8 -0
  120. package/payload/platform/plugins/estate-sales/PLUGIN.md +53 -0
  121. package/payload/platform/plugins/estate-sales/skills/chase-progression/SKILL.md +107 -0
  122. package/payload/platform/plugins/estate-sales/skills/negotiation/SKILL.md +35 -0
  123. package/payload/platform/plugins/estate-sales/skills/negotiation/references/deal-saving.md +47 -0
  124. package/payload/platform/plugins/estate-sales/skills/negotiation/references/negotiation-deep-guide.md +64 -0
  125. package/payload/platform/plugins/estate-sales/skills/negotiation/references/negotiation-prep-principles.md +29 -0
  126. package/payload/platform/plugins/estate-sales/skills/negotiation/references/negotiation-techniques.md +42 -0
  127. package/payload/platform/plugins/estate-sales/skills/negotiation/references/offer-presentation.md +43 -0
  128. package/payload/platform/plugins/estate-sales/skills/risk-scorer/SKILL.md +42 -0
  129. package/payload/platform/plugins/estate-sales/skills/sales-closer/SKILL.md +24 -0
  130. package/payload/platform/plugins/estate-sales/skills/sales-closer/references/serhant-emotion-stages.md +36 -0
  131. package/payload/platform/plugins/estate-sales/skills/sales-discovery/SKILL.md +30 -0
  132. package/payload/platform/plugins/estate-sales/skills/sales-discovery/references/chris-voss-discovery.md +88 -0
  133. package/payload/platform/plugins/estate-sales/skills/sales-discovery/references/firewave-gost-journey.md +68 -0
  134. package/payload/platform/plugins/estate-sales/skills/sales-discovery/references/phil-jones-openers.md +78 -0
  135. package/payload/platform/plugins/estate-sales/skills/sales-discovery/references/pre-listing-checklist.md +77 -0
  136. package/payload/platform/plugins/estate-sales/skills/sales-discovery/references/serhant-improv.md +22 -0
  137. package/payload/platform/plugins/estate-sales/skills/sales-discovery/references/tom-ferry-discovery.md +103 -0
  138. package/payload/platform/plugins/estate-sales/skills/sales-discovery/references/vendor-motivation-competitor.md +52 -0
  139. package/payload/platform/plugins/estate-sales/skills/sales-negotiation/SKILL.md +29 -0
  140. package/payload/platform/plugins/estate-sales/skills/sales-negotiation/references/chris-voss-negotiation.md +70 -0
  141. package/payload/platform/plugins/estate-sales/skills/sales-negotiation/references/phil-jones-price-words.md +40 -0
  142. package/payload/platform/plugins/estate-sales/skills/sales-negotiation/references/serhant-negotiation-plus.md +55 -0
  143. package/payload/platform/plugins/estate-sales/skills/sales-negotiation/references/tom-panos-commission-pricing.md +57 -0
  144. package/payload/platform/plugins/estate-sales/skills/sales-negotiation/references/tony-morris-questioning.md +54 -0
  145. package/payload/platform/plugins/estate-sales/skills/sales-progression/SKILL.md +27 -0
  146. package/payload/platform/plugins/estate-sales/skills/sales-progression/references/conveyancing-guide.md +54 -0
  147. package/payload/platform/plugins/estate-sales/skills/sales-progression/references/transaction-tracking.md +66 -0
  148. package/payload/platform/plugins/estate-teaching/.claude-plugin/plugin.json +8 -0
  149. package/payload/platform/plugins/estate-teaching/PLUGIN.md +31 -0
  150. package/payload/platform/plugins/estate-teaching/skills/content-directory/SKILL.md +39 -0
  151. package/payload/platform/plugins/estate-teaching/skills/content-directory/references/module-delivery.md +65 -0
  152. package/payload/platform/plugins/estate-teaching/skills/content-directory/references/progress-tracking.md +47 -0
  153. package/payload/platform/plugins/leads/.claude-plugin/plugin.json +8 -0
  154. package/payload/platform/plugins/leads/PLUGIN.md +62 -0
  155. package/payload/platform/plugins/leads/skills/chain-progression-tracker/SKILL.md +51 -0
  156. package/payload/platform/plugins/leads/skills/diary-builder/SKILL.md +38 -0
  157. package/payload/platform/plugins/leads/skills/enquiry-triage/SKILL.md +36 -0
  158. package/payload/platform/plugins/leads/skills/lead-nurturing/SKILL.md +137 -0
  159. package/payload/platform/plugins/leads/skills/lead-nurturing/references/buyer-search-letter.md +28 -0
  160. package/payload/platform/plugins/leads/skills/lead-nurturing/references/buyer-search-letters.md +37 -0
  161. package/payload/platform/plugins/leads/skills/lead-nurturing/references/database-reactivation.md +30 -0
  162. package/payload/platform/plugins/leads/skills/lead-nurturing/references/email-nurture-sequences.md +45 -0
  163. package/payload/platform/plugins/leads/skills/lead-nurturing/references/facebook-referrals.md +30 -0
  164. package/payload/platform/plugins/leads/skills/lead-nurturing/references/firewave-email-nurture-sequences.md +41 -0
  165. package/payload/platform/plugins/leads/skills/lead-nurturing/references/keller-33-touch.md +34 -0
  166. package/payload/platform/plugins/leads/skills/lead-nurturing/references/neighbour-letters.md +31 -0
  167. package/payload/platform/plugins/leads/skills/lead-nurturing/references/neighbour-notification-letter.md +20 -0
  168. package/payload/platform/plugins/leads/skills/lead-nurturing/references/ofi-follow-up-dialogue.md +22 -0
  169. package/payload/platform/plugins/leads/skills/lead-nurturing/references/ofi-follow-up.md +26 -0
  170. package/payload/platform/plugins/leads/skills/lead-nurturing/references/serhant-three-fs-plus.md +21 -0
  171. package/payload/platform/plugins/leads/skills/lead-nurturing/references/sharran-10x10x10.md +18 -0
  172. package/payload/platform/plugins/leads/skills/lead-nurturing/references/sms-templates.md +40 -0
  173. package/payload/platform/plugins/leads/skills/lead-nurturing/references/sphere-of-influence-notes.md +34 -0
  174. package/payload/platform/plugins/leads/skills/lead-nurturing/references/sphere-of-influence.md +60 -0
  175. package/payload/platform/plugins/leads/skills/lead-nurturing/references/tom-panos-sms-templates.md +59 -0
  176. package/payload/platform/plugins/leads/skills/morning-round/SKILL.md +72 -0
  177. package/payload/platform/plugins/leads/skills/prospecting/SKILL.md +33 -0
  178. package/payload/platform/plugins/leads/skills/prospecting/references/database-matching.md +30 -0
  179. package/payload/platform/plugins/leads/skills/prospecting/references/database-value.md +53 -0
  180. package/payload/platform/plugins/leads/skills/prospecting/references/prospecting-dialogues.md +24 -0
  181. package/payload/platform/plugins/leads/skills/prospecting/references/reactivation.md +34 -0
  182. package/payload/platform/plugins/listings/.claude-plugin/plugin.json +8 -0
  183. package/payload/platform/plugins/listings/PLUGIN.md +103 -0
  184. package/payload/platform/plugins/listings/skills/comparable-finder/SKILL.md +52 -0
  185. package/payload/platform/plugins/listings/skills/epc-checker/SKILL.md +38 -0
  186. package/payload/platform/plugins/listings/skills/home-preparation/SKILL.md +28 -0
  187. package/payload/platform/plugins/listings/skills/home-preparation/references/kerb-appeal.md +38 -0
  188. package/payload/platform/plugins/listings/skills/home-preparation/references/photo-day.md +59 -0
  189. package/payload/platform/plugins/listings/skills/home-preparation/references/situational-tips.md +50 -0
  190. package/payload/platform/plugins/listings/skills/home-preparation/references/staging-guide.md +52 -0
  191. package/payload/platform/plugins/listings/skills/listing-copy-writer/SKILL.md +55 -0
  192. package/payload/platform/plugins/listings/skills/listing-presentation/SKILL.md +286 -0
  193. package/payload/platform/plugins/listings/skills/listing-presentation/references/booking-script.md +51 -0
  194. package/payload/platform/plugins/listings/skills/listing-presentation/references/objection-scripts.md +193 -0
  195. package/payload/platform/plugins/listings/skills/listing-presentation/references/penhaul-presentation.md +123 -0
  196. package/payload/platform/plugins/listings/skills/listing-presentation/references/pre-listing-kit.md +139 -0
  197. package/payload/platform/plugins/listings/skills/listing-presentation/references/set-to-sell.md +55 -0
  198. package/payload/platform/plugins/listings/skills/listing-presentation/references/sharran-frameworks.md +107 -0
  199. package/payload/platform/plugins/listings/skills/local-market-stats/SKILL.md +33 -0
  200. package/payload/platform/plugins/listings/skills/new-instruction/SKILL.md +78 -0
  201. package/payload/platform/plugins/listings/skills/particulars-builder/SKILL.md +48 -0
  202. package/payload/platform/plugins/listings/skills/portal-launch-scheduler/SKILL.md +49 -0
  203. package/payload/platform/plugins/listings/skills/pricing-scenario-builder/SKILL.md +35 -0
  204. package/payload/platform/plugins/listings/skills/property-marketing/SKILL.md +337 -0
  205. package/payload/platform/plugins/listings/skills/property-marketing/references/auction-report-template.md +41 -0
  206. package/payload/platform/plugins/listings/skills/property-marketing/references/coming-soon-campaign.md +43 -0
  207. package/payload/platform/plugins/listings/skills/property-marketing/references/direct-mail-templates.md +121 -0
  208. package/payload/platform/plugins/listings/skills/property-marketing/references/eoi-form-template.md +62 -0
  209. package/payload/platform/plugins/listings/skills/property-marketing/references/monthly-scorecard.md +63 -0
  210. package/payload/platform/plugins/listings/skills/supplier-booker/SKILL.md +39 -0
  211. package/payload/platform/plugins/listings/skills/talk-track-composer/SKILL.md +36 -0
  212. package/payload/platform/plugins/listings/skills/terms-of-business-drafter/SKILL.md +54 -0
  213. package/payload/platform/plugins/listings/skills/valuation-prep/SKILL.md +69 -0
  214. package/payload/platform/plugins/loop/.claude-plugin/plugin.json +17 -0
  215. package/payload/platform/plugins/loop/PLUGIN.md +108 -0
  216. package/payload/platform/plugins/loop/mcp/dist/index.d.ts +2 -0
  217. package/payload/platform/plugins/loop/mcp/dist/index.d.ts.map +1 -0
  218. package/payload/platform/plugins/loop/mcp/dist/index.js +293 -0
  219. package/payload/platform/plugins/loop/mcp/dist/index.js.map +1 -0
  220. package/payload/platform/plugins/loop/mcp/dist/lib/crypto.d.ts +10 -0
  221. package/payload/platform/plugins/loop/mcp/dist/lib/crypto.d.ts.map +1 -0
  222. package/payload/platform/plugins/loop/mcp/dist/lib/crypto.js +88 -0
  223. package/payload/platform/plugins/loop/mcp/dist/lib/crypto.js.map +1 -0
  224. package/payload/platform/plugins/loop/mcp/dist/lib/loop-api.d.ts +82 -0
  225. package/payload/platform/plugins/loop/mcp/dist/lib/loop-api.d.ts.map +1 -0
  226. package/payload/platform/plugins/loop/mcp/dist/lib/loop-api.js +427 -0
  227. package/payload/platform/plugins/loop/mcp/dist/lib/loop-api.js.map +1 -0
  228. package/payload/platform/plugins/loop/mcp/dist/lib/neo4j.d.ts +5 -0
  229. package/payload/platform/plugins/loop/mcp/dist/lib/neo4j.d.ts.map +1 -0
  230. package/payload/platform/plugins/loop/mcp/dist/lib/neo4j.js +40 -0
  231. package/payload/platform/plugins/loop/mcp/dist/lib/neo4j.js.map +1 -0
  232. package/payload/platform/plugins/loop/mcp/dist/tools/customer-preferences.d.ts +10 -0
  233. package/payload/platform/plugins/loop/mcp/dist/tools/customer-preferences.d.ts.map +1 -0
  234. package/payload/platform/plugins/loop/mcp/dist/tools/customer-preferences.js +24 -0
  235. package/payload/platform/plugins/loop/mcp/dist/tools/customer-preferences.js.map +1 -0
  236. package/payload/platform/plugins/loop/mcp/dist/tools/feedback.d.ts +16 -0
  237. package/payload/platform/plugins/loop/mcp/dist/tools/feedback.d.ts.map +1 -0
  238. package/payload/platform/plugins/loop/mcp/dist/tools/feedback.js +35 -0
  239. package/payload/platform/plugins/loop/mcp/dist/tools/feedback.js.map +1 -0
  240. package/payload/platform/plugins/loop/mcp/dist/tools/key-deregister.d.ts +5 -0
  241. package/payload/platform/plugins/loop/mcp/dist/tools/key-deregister.d.ts.map +1 -0
  242. package/payload/platform/plugins/loop/mcp/dist/tools/key-deregister.js +19 -0
  243. package/payload/platform/plugins/loop/mcp/dist/tools/key-deregister.js.map +1 -0
  244. package/payload/platform/plugins/loop/mcp/dist/tools/key-list.d.ts +4 -0
  245. package/payload/platform/plugins/loop/mcp/dist/tools/key-list.d.ts.map +1 -0
  246. package/payload/platform/plugins/loop/mcp/dist/tools/key-list.js +14 -0
  247. package/payload/platform/plugins/loop/mcp/dist/tools/key-list.js.map +1 -0
  248. package/payload/platform/plugins/loop/mcp/dist/tools/key-register.d.ts +9 -0
  249. package/payload/platform/plugins/loop/mcp/dist/tools/key-register.d.ts.map +1 -0
  250. package/payload/platform/plugins/loop/mcp/dist/tools/key-register.js +60 -0
  251. package/payload/platform/plugins/loop/mcp/dist/tools/key-register.js.map +1 -0
  252. package/payload/platform/plugins/loop/mcp/dist/tools/marketing-enquiry.d.ts +13 -0
  253. package/payload/platform/plugins/loop/mcp/dist/tools/marketing-enquiry.d.ts.map +1 -0
  254. package/payload/platform/plugins/loop/mcp/dist/tools/marketing-enquiry.js +41 -0
  255. package/payload/platform/plugins/loop/mcp/dist/tools/marketing-enquiry.js.map +1 -0
  256. package/payload/platform/plugins/loop/mcp/dist/tools/marketing-match-batch.d.ts +9 -0
  257. package/payload/platform/plugins/loop/mcp/dist/tools/marketing-match-batch.d.ts.map +1 -0
  258. package/payload/platform/plugins/loop/mcp/dist/tools/marketing-match-batch.js +16 -0
  259. package/payload/platform/plugins/loop/mcp/dist/tools/marketing-match-batch.js.map +1 -0
  260. package/payload/platform/plugins/loop/mcp/dist/tools/marketing-match-request.d.ts +15 -0
  261. package/payload/platform/plugins/loop/mcp/dist/tools/marketing-match-request.d.ts.map +1 -0
  262. package/payload/platform/plugins/loop/mcp/dist/tools/marketing-match-request.js +11 -0
  263. package/payload/platform/plugins/loop/mcp/dist/tools/marketing-match-request.js.map +1 -0
  264. package/payload/platform/plugins/loop/mcp/dist/tools/marketing-match.d.ts +10 -0
  265. package/payload/platform/plugins/loop/mcp/dist/tools/marketing-match.d.ts.map +1 -0
  266. package/payload/platform/plugins/loop/mcp/dist/tools/marketing-match.js +39 -0
  267. package/payload/platform/plugins/loop/mcp/dist/tools/marketing-match.js.map +1 -0
  268. package/payload/platform/plugins/loop/mcp/dist/tools/people-detail.d.ts +9 -0
  269. package/payload/platform/plugins/loop/mcp/dist/tools/people-detail.d.ts.map +1 -0
  270. package/payload/platform/plugins/loop/mcp/dist/tools/people-detail.js +125 -0
  271. package/payload/platform/plugins/loop/mcp/dist/tools/people-detail.js.map +1 -0
  272. package/payload/platform/plugins/loop/mcp/dist/tools/people-search.d.ts +18 -0
  273. package/payload/platform/plugins/loop/mcp/dist/tools/people-search.d.ts.map +1 -0
  274. package/payload/platform/plugins/loop/mcp/dist/tools/people-search.js +87 -0
  275. package/payload/platform/plugins/loop/mcp/dist/tools/people-search.js.map +1 -0
  276. package/payload/platform/plugins/loop/mcp/dist/tools/property-detail.d.ts +10 -0
  277. package/payload/platform/plugins/loop/mcp/dist/tools/property-detail.d.ts.map +1 -0
  278. package/payload/platform/plugins/loop/mcp/dist/tools/property-detail.js +82 -0
  279. package/payload/platform/plugins/loop/mcp/dist/tools/property-detail.js.map +1 -0
  280. package/payload/platform/plugins/loop/mcp/dist/tools/property-listed.d.ts +12 -0
  281. package/payload/platform/plugins/loop/mcp/dist/tools/property-listed.d.ts.map +1 -0
  282. package/payload/platform/plugins/loop/mcp/dist/tools/property-listed.js +32 -0
  283. package/payload/platform/plugins/loop/mcp/dist/tools/property-listed.js.map +1 -0
  284. package/payload/platform/plugins/loop/mcp/dist/tools/property-request.d.ts +15 -0
  285. package/payload/platform/plugins/loop/mcp/dist/tools/property-request.d.ts.map +1 -0
  286. package/payload/platform/plugins/loop/mcp/dist/tools/property-request.js +11 -0
  287. package/payload/platform/plugins/loop/mcp/dist/tools/property-request.js.map +1 -0
  288. package/payload/platform/plugins/loop/mcp/dist/tools/property-search.d.ts +16 -0
  289. package/payload/platform/plugins/loop/mcp/dist/tools/property-search.d.ts.map +1 -0
  290. package/payload/platform/plugins/loop/mcp/dist/tools/property-search.js +41 -0
  291. package/payload/platform/plugins/loop/mcp/dist/tools/property-search.js.map +1 -0
  292. package/payload/platform/plugins/loop/mcp/dist/tools/supplier.d.ts +13 -0
  293. package/payload/platform/plugins/loop/mcp/dist/tools/supplier.d.ts.map +1 -0
  294. package/payload/platform/plugins/loop/mcp/dist/tools/supplier.js +49 -0
  295. package/payload/platform/plugins/loop/mcp/dist/tools/supplier.js.map +1 -0
  296. package/payload/platform/plugins/loop/mcp/dist/tools/team-availability.d.ts +7 -0
  297. package/payload/platform/plugins/loop/mcp/dist/tools/team-availability.d.ts.map +1 -0
  298. package/payload/platform/plugins/loop/mcp/dist/tools/team-availability.js +19 -0
  299. package/payload/platform/plugins/loop/mcp/dist/tools/team-availability.js.map +1 -0
  300. package/payload/platform/plugins/loop/mcp/dist/tools/team-info.d.ts +5 -0
  301. package/payload/platform/plugins/loop/mcp/dist/tools/team-info.d.ts.map +1 -0
  302. package/payload/platform/plugins/loop/mcp/dist/tools/team-info.js +32 -0
  303. package/payload/platform/plugins/loop/mcp/dist/tools/team-info.js.map +1 -0
  304. package/payload/platform/plugins/loop/mcp/dist/tools/viewing-create.d.ts +14 -0
  305. package/payload/platform/plugins/loop/mcp/dist/tools/viewing-create.d.ts.map +1 -0
  306. package/payload/platform/plugins/loop/mcp/dist/tools/viewing-create.js +11 -0
  307. package/payload/platform/plugins/loop/mcp/dist/tools/viewing-create.js.map +1 -0
  308. package/payload/platform/plugins/loop/mcp/dist/tools/viewing-detail.d.ts +9 -0
  309. package/payload/platform/plugins/loop/mcp/dist/tools/viewing-detail.d.ts.map +1 -0
  310. package/payload/platform/plugins/loop/mcp/dist/tools/viewing-detail.js +85 -0
  311. package/payload/platform/plugins/loop/mcp/dist/tools/viewing-detail.js.map +1 -0
  312. package/payload/platform/plugins/loop/mcp/dist/tools/viewing-search.d.ts +13 -0
  313. package/payload/platform/plugins/loop/mcp/dist/tools/viewing-search.d.ts.map +1 -0
  314. package/payload/platform/plugins/loop/mcp/dist/tools/viewing-search.js +44 -0
  315. package/payload/platform/plugins/loop/mcp/dist/tools/viewing-search.js.map +1 -0
  316. package/payload/platform/plugins/loop/mcp/dist/tools/viewing-update.d.ts +14 -0
  317. package/payload/platform/plugins/loop/mcp/dist/tools/viewing-update.d.ts.map +1 -0
  318. package/payload/platform/plugins/loop/mcp/dist/tools/viewing-update.js +18 -0
  319. package/payload/platform/plugins/loop/mcp/dist/tools/viewing-update.js.map +1 -0
  320. package/payload/platform/plugins/loop/mcp/package-lock.json +2549 -0
  321. package/payload/platform/plugins/loop/mcp/package.json +21 -0
  322. package/payload/platform/plugins/loop/mcp/src/__tests__/loop-swagger.snapshot.json +26467 -0
  323. package/payload/platform/plugins/loop/mcp/src/__tests__/swagger-write-coverage.test.ts +153 -0
  324. package/payload/platform/plugins/loop/mcp/src/index.ts +444 -0
  325. package/payload/platform/plugins/loop/mcp/src/lib/crypto.ts +105 -0
  326. package/payload/platform/plugins/loop/mcp/src/lib/loop-api.ts +604 -0
  327. package/payload/platform/plugins/loop/mcp/src/lib/neo4j.ts +51 -0
  328. package/payload/platform/plugins/loop/mcp/src/tools/customer-preferences.ts +66 -0
  329. package/payload/platform/plugins/loop/mcp/src/tools/feedback.ts +86 -0
  330. package/payload/platform/plugins/loop/mcp/src/tools/key-deregister.ts +27 -0
  331. package/payload/platform/plugins/loop/mcp/src/tools/key-list.ts +19 -0
  332. package/payload/platform/plugins/loop/mcp/src/tools/key-register.ts +95 -0
  333. package/payload/platform/plugins/loop/mcp/src/tools/marketing-enquiry.ts +113 -0
  334. package/payload/platform/plugins/loop/mcp/src/tools/marketing-match-batch.ts +53 -0
  335. package/payload/platform/plugins/loop/mcp/src/tools/marketing-match-request.ts +42 -0
  336. package/payload/platform/plugins/loop/mcp/src/tools/marketing-match.ts +84 -0
  337. package/payload/platform/plugins/loop/mcp/src/tools/people-detail.ts +245 -0
  338. package/payload/platform/plugins/loop/mcp/src/tools/people-search.ts +180 -0
  339. package/payload/platform/plugins/loop/mcp/src/tools/property-detail.ts +145 -0
  340. package/payload/platform/plugins/loop/mcp/src/tools/property-listed.ts +88 -0
  341. package/payload/platform/plugins/loop/mcp/src/tools/property-request.ts +42 -0
  342. package/payload/platform/plugins/loop/mcp/src/tools/property-search.ts +92 -0
  343. package/payload/platform/plugins/loop/mcp/src/tools/supplier.ts +129 -0
  344. package/payload/platform/plugins/loop/mcp/src/tools/team-availability.ts +52 -0
  345. package/payload/platform/plugins/loop/mcp/src/tools/team-info.ts +95 -0
  346. package/payload/platform/plugins/loop/mcp/src/tools/viewing-create.ts +41 -0
  347. package/payload/platform/plugins/loop/mcp/src/tools/viewing-detail.ts +171 -0
  348. package/payload/platform/plugins/loop/mcp/src/tools/viewing-search.ts +92 -0
  349. package/payload/platform/plugins/loop/mcp/src/tools/viewing-update.ts +53 -0
  350. package/payload/platform/plugins/loop/mcp/tsconfig.json +20 -0
  351. package/payload/platform/plugins/loop/mcp/vitest.config.ts +9 -0
  352. package/payload/platform/plugins/loop/skills/compliance-flag-checker/SKILL.md +53 -0
  353. package/payload/platform/plugins/loop/skills/priority-ranker/SKILL.md +40 -0
  354. package/payload/platform/plugins/loop/skills/tone-matched-drafter/SKILL.md +53 -0
  355. package/payload/platform/plugins/loop/skills/variance-narrator/SKILL.md +50 -0
  356. package/payload/platform/plugins/loop/skills/vendor-research/SKILL.md +54 -0
  357. package/payload/platform/plugins/teaching/.claude-plugin/plugin.json +8 -0
  358. package/payload/platform/plugins/teaching/PLUGIN.md +57 -0
  359. package/payload/platform/plugins/teaching/skills/interactive-tutor/SKILL.md +59 -0
  360. package/payload/platform/plugins/teaching/skills/interactive-tutor/references/assessment.md +70 -0
  361. package/payload/platform/plugins/teaching/skills/interactive-tutor/references/classroom-conduct.md +43 -0
  362. package/payload/platform/plugins/teaching/skills/interactive-tutor/references/teaching-modes.md +83 -0
  363. package/payload/platform/plugins/teaching/skills/lesson-planner/SKILL.md +48 -0
  364. package/payload/platform/plugins/teaching/skills/lesson-planner/references/context-gathering.md +41 -0
  365. package/payload/platform/plugins/teaching/skills/lesson-planner/references/plan-structure.md +94 -0
  366. package/payload/platform/plugins/teaching/skills/study-pack-builder/SKILL.md +52 -0
  367. package/payload/platform/plugins/teaching/skills/study-pack-builder/references/disaggregation.md +49 -0
  368. package/payload/platform/plugins/teaching/skills/study-pack-builder/references/materials.md +116 -0
  369. package/payload/platform/plugins/vendors/.claude-plugin/plugin.json +8 -0
  370. package/payload/platform/plugins/vendors/PLUGIN.md +34 -0
  371. package/payload/platform/plugins/vendors/skills/vendor-communication/SKILL.md +42 -0
  372. package/payload/platform/plugins/vendors/skills/vendor-communication/references/fee-protection-and-agenda.md +28 -0
  373. package/payload/platform/plugins/vendors/skills/vendor-communication/references/listing-scripts.md +44 -0
  374. package/payload/platform/plugins/vendors/skills/vendor-communication/references/negotiation-deep-guide.md +70 -0
  375. package/payload/platform/plugins/vendors/skills/vendor-communication/references/price-alignment-scripts.md +33 -0
  376. package/payload/platform/plugins/vendors/skills/vendor-communication/references/price-alignment.md +34 -0
  377. package/payload/platform/plugins/vendors/skills/vendor-communication/references/scenario-scripts.md +38 -0
  378. package/payload/platform/plugins/vendors/skills/vendor-communication/references/seller-engagement.md +51 -0
  379. package/payload/platform/plugins/vendors/skills/vendor-communication/references/valuation-booking.md +76 -0
  380. package/payload/platform/plugins/vendors/skills/vendor-communication/references/vendor-scripts.md +63 -0
  381. package/payload/platform/plugins/vendors/skills/vendor-communication/references/vendor-updates.md +41 -0
  382. package/payload/platform/plugins/vendors/skills/vendor-updates/SKILL.md +153 -0
  383. package/payload/platform/plugins/writer-craft/.claude-plugin/plugin.json +8 -0
  384. package/payload/platform/plugins/writer-craft/PLUGIN.md +87 -0
  385. package/payload/platform/plugins/writer-craft/agents/writer-craft--manuscript-reviewer.md +92 -0
  386. package/payload/platform/plugins/writer-craft/skills/citation-style/SKILL.md +94 -0
  387. package/payload/platform/plugins/writer-craft/skills/citation-style/references/book-and-chapter-models.md +77 -0
  388. package/payload/platform/plugins/writer-craft/skills/citation-style/references/citation-rules.md +103 -0
  389. package/payload/platform/plugins/writer-craft/skills/citation-style/references/journal-article-models.md +74 -0
  390. package/payload/platform/plugins/writer-craft/skills/citation-style/references/other-source-models.md +146 -0
  391. package/payload/platform/plugins/writer-craft/skills/citation-style/references/reference-list-rules.md +70 -0
  392. package/payload/platform/plugins/writer-craft/skills/editorial-practice/SKILL.md +108 -0
  393. package/payload/platform/plugins/writer-craft/skills/editorial-practice/references/copyediting.md +73 -0
  394. package/payload/platform/plugins/writer-craft/skills/editorial-practice/references/developmental-editing.md +85 -0
  395. package/payload/platform/plugins/writer-craft/skills/editorial-practice/references/genre-specific-editing.md +78 -0
  396. package/payload/platform/plugins/writer-craft/skills/editorial-practice/references/line-editing.md +55 -0
  397. package/payload/platform/plugins/writer-craft/skills/editorial-practice/references/self-editing.md +89 -0
  398. package/payload/platform/plugins/writer-craft/skills/persuasive-storytelling/SKILL.md +114 -0
  399. package/payload/platform/plugins/writer-craft/skills/persuasive-storytelling/references/audience-analysis.md +73 -0
  400. package/payload/platform/plugins/writer-craft/skills/persuasive-storytelling/references/crafting-persuasive-story.md +76 -0
  401. package/payload/platform/plugins/writer-craft/skills/persuasive-storytelling/references/persuasion-case-studies.md +67 -0
  402. package/payload/platform/plugins/writer-craft/skills/persuasive-storytelling/references/transformation-framework.md +86 -0
  403. package/payload/platform/plugins/writer-craft/skills/point-of-view/SKILL.md +97 -0
  404. package/payload/platform/plugins/writer-craft/skills/point-of-view/references/indirect-narration.md +72 -0
  405. package/payload/platform/plugins/writer-craft/skills/point-of-view/references/pov-types-and-voice.md +91 -0
  406. package/payload/platform/plugins/writer-craft/skills/point-of-view/references/protagonist-filter.md +71 -0
  407. package/payload/platform/plugins/writer-craft/skills/point-of-view/references/tense-and-person.md +85 -0
  408. package/payload/platform/plugins/writer-craft/skills/prose-craft/SKILL.md +100 -0
  409. package/payload/platform/plugins/writer-craft/skills/prose-craft/references/punctuation-and-grammar.md +72 -0
  410. package/payload/platform/plugins/writer-craft/skills/prose-craft/references/repetition.md +71 -0
  411. package/payload/platform/plugins/writer-craft/skills/prose-craft/references/sound-and-rhythm.md +64 -0
  412. package/payload/platform/plugins/writer-craft/skills/prose-craft/references/word-economy.md +93 -0
  413. package/payload/platform/plugins/writer-craft/skills/reader-engagement/SKILL.md +100 -0
  414. package/payload/platform/plugins/writer-craft/skills/reader-engagement/references/cause-effect-setup-payoff.md +79 -0
  415. package/payload/platform/plugins/writer-craft/skills/reader-engagement/references/conflict-escalation.md +81 -0
  416. package/payload/platform/plugins/writer-craft/skills/reader-engagement/references/hooking-readers.md +67 -0
  417. package/payload/platform/plugins/writer-craft/skills/reader-engagement/references/neurochemistry-of-engagement.md +94 -0
  418. package/payload/platform/plugins/writer-craft/skills/review-manuscript/SKILL.md +111 -0
  419. package/payload/platform/plugins/writer-craft/skills/review-manuscript/references/review-manuscript-checklist.md +119 -0
  420. package/payload/platform/plugins/writer-craft/skills/review-prose/SKILL.md +99 -0
  421. package/payload/platform/plugins/writer-craft/skills/review-prose/references/prose-review-checklist.md +112 -0
  422. package/payload/platform/plugins/writer-craft/skills/review-scene/SKILL.md +99 -0
  423. package/payload/platform/plugins/writer-craft/skills/review-scene/references/scene-analysis-framework.md +95 -0
  424. package/payload/platform/plugins/writer-craft/skills/story-architecture/SKILL.md +106 -0
  425. package/payload/platform/plugins/writer-craft/skills/story-architecture/references/blueprinting-and-scene-cards.md +118 -0
  426. package/payload/platform/plugins/writer-craft/skills/story-architecture/references/inner-issue-and-protagonist-goal.md +66 -0
  427. package/payload/platform/plugins/writer-craft/skills/story-architecture/references/misbelief-desire-worldview.md +87 -0
  428. package/payload/platform/plugins/writer-craft/skills/story-architecture/references/origin-scenes-and-escalation.md +82 -0
  429. package/payload/platform/plugins/writer-craft/skills/story-blueprint/SKILL.md +133 -0
  430. package/payload/platform/plugins/writer-craft/skills/story-blueprint/references/blueprinting-exercises.md +118 -0
  431. package/payload/platform/plugins/writer-craft/skills/story-blueprint/references/blueprinting-process.md +128 -0
  432. package/payload/platform/services/claude-session-manager/dist/config.d.ts +6 -0
  433. package/payload/platform/services/claude-session-manager/dist/config.d.ts.map +1 -1
  434. package/payload/platform/services/claude-session-manager/dist/config.js +60 -1
  435. package/payload/platform/services/claude-session-manager/dist/config.js.map +1 -1
  436. package/payload/platform/services/claude-session-manager/dist/http-server.d.ts +9 -0
  437. package/payload/platform/services/claude-session-manager/dist/http-server.d.ts.map +1 -1
  438. package/payload/platform/services/claude-session-manager/dist/http-server.js +34 -0
  439. package/payload/platform/services/claude-session-manager/dist/http-server.js.map +1 -1
  440. package/payload/platform/services/claude-session-manager/dist/index.js +12 -0
  441. package/payload/platform/services/claude-session-manager/dist/index.js.map +1 -1
  442. package/payload/platform/services/claude-session-manager/dist/public-tool-audit.d.ts +33 -0
  443. package/payload/platform/services/claude-session-manager/dist/public-tool-audit.d.ts.map +1 -0
  444. package/payload/platform/services/claude-session-manager/dist/public-tool-audit.js +149 -0
  445. package/payload/platform/services/claude-session-manager/dist/public-tool-audit.js.map +1 -0
  446. package/payload/platform/services/claude-session-manager/dist/spawn-rate-limiter.d.ts +28 -0
  447. package/payload/platform/services/claude-session-manager/dist/spawn-rate-limiter.d.ts.map +1 -0
  448. package/payload/platform/services/claude-session-manager/dist/spawn-rate-limiter.js +77 -0
  449. package/payload/platform/services/claude-session-manager/dist/spawn-rate-limiter.js.map +1 -0
@@ -0,0 +1,128 @@
1
+ # The Blueprinting Process — Step by Step
2
+
3
+ ## Overview
4
+
5
+ The blueprint is not a traditional outline. It is built scene by scene, grounded in the protagonist's internal story, and developed iteratively alongside drafting. Plot is the servant of story — external events exist to force the internal transformation.
6
+
7
+ The process starts with the internal architecture and builds outward.
8
+
9
+ ## Step 1: The What If
10
+
11
+ Every story begins with a premise. A story-worthy What If must contain three elements:
12
+
13
+ 1. **Context** — the specific world, circumstances, and relationships that make the situation meaningful
14
+ 2. **Conflict** — not just external obstacle, but the seed of internal struggle
15
+ 3. **A point** — the thematic question the story will interrogate
16
+
17
+ ### Testing Your What If
18
+ A neutral What If is not story-worthy:
19
+ - "What if a woman got a new job?" → neutral, no internal conflict implied
20
+ - "What if a woman who built her identity around being indispensable at work was promoted into a role where she has to delegate everything?" → story-worthy, implies collision between identity and situation
21
+
22
+ The What If is not a plot summary. It is closer to a thesis statement for the story's meaning.
23
+
24
+ ## Step 2: The Protagonist
25
+
26
+ The protagonist is not whoever the story happens to — it's the person whose internal change the story is about.
27
+
28
+ ### Key Questions
29
+ - Who has the most to lose internally?
30
+ - Whose worldview will be most challenged by the What If?
31
+ - Who will be forced to change or be destroyed by the attempt to avoid it?
32
+
33
+ ### Common Errors
34
+ - Introducing too many characters without a clear focal point
35
+ - Choosing a protagonist who is too passive or already enlightened
36
+ - Confusing the most active character with the most internally conflicted one
37
+
38
+ ## Step 3: Misbelief and Desire
39
+
40
+ ### The Misbelief
41
+ A false conclusion about how the world works, rooted in a specific past experience. Not a character flaw — a coping strategy. It protected the protagonist once; now it imprisons them.
42
+
43
+ Excavate until the misbelief is:
44
+ - Specific enough to state in one sentence
45
+ - Traceable to a concrete origin experience
46
+ - Active — currently shaping decisions
47
+ - In direct conflict with the desire
48
+
49
+ ### The Desire
50
+ Something the protagonist has wanted, perhaps for years. The misbelief prevents them from achieving it. Every time they move toward the desire, the misbelief sabotages them.
51
+
52
+ ## Step 4: The Origin Scene
53
+
54
+ Write the specific moment the misbelief formed. Not a summary — a full scene in the protagonist's subjective POV. The reader must see the emotional logic: how this conclusion made sense at the time.
55
+
56
+ ## Step 5: Escalating Backstory
57
+
58
+ Write 3-5 scenes from the protagonist's past showing the misbelief deepening:
59
+ - Each scene tests or activates the misbelief
60
+ - The protagonist acts on it, and the result appears to confirm it
61
+ - Each scene escalates in significance — the costs increase
62
+ - The pattern explains who the protagonist is on page one
63
+
64
+ ## Step 6: The Opening
65
+
66
+ The novel begins at the last possible moment — when the protagonist can no longer avoid confronting the thing the misbelief has protected them from.
67
+
68
+ The opening scene must accomplish:
69
+ 1. Establish the protagonist's internal state (desire, misbelief, the world they believe they're living in)
70
+ 2. Introduce the unavoidable external problem
71
+ 3. Plant seeds of major internal conflicts
72
+ 4. Establish a ticking clock
73
+
74
+ ### The Unavoidable External Problem Must:
75
+ - Directly threaten or challenge the misbelief
76
+ - Activate the long-standing desire
77
+ - Have a clear ticking clock
78
+ - Have a clear consequence the reader can anticipate from page one
79
+
80
+ Write a first-layer version. It will be rewritten many times. Use TK for elements not yet known.
81
+
82
+ ## Step 7: The Ending (The Aha Moment)
83
+
84
+ Determine the internal climax before constructing the middle.
85
+
86
+ The Aha moment is not the plot climax — it is the moment of internal change: when the protagonist confronts and dismantles (or fails to dismantle) their misbelief.
87
+
88
+ Requirements:
89
+ - **Earned** — pushed to the absolute edge
90
+ - **Specific** — a precise scene-level moment
91
+ - **Tied to the third rail** — causally connected to everything the plot has put them through
92
+
93
+ The ending will change as the story deepens. That is fine.
94
+
95
+ ## Step 8: Building Scene Cards
96
+
97
+ With opening and ending bookended, build Scene Cards connecting them.
98
+
99
+ For each scene:
100
+ - **External event**: What happens
101
+ - **Internal meaning**: How it forces the internal struggle forward
102
+ - **Urgency hook**: What question it raises for the reader
103
+ - **Cause**: What scene triggered this one
104
+ - **Effect**: What this scene triggers next
105
+
106
+ ### Using TK
107
+ "To come" — a placeholder for something that must be there but isn't yet known. TKs are not failures; they are honest markers of what needs excavation.
108
+
109
+ ### Mining the Past for Plot
110
+ Use backstory scenes to generate plot events. The protagonist's misbelief will predictably cause them to react in certain ways — those reactions generate consequences — those consequences become plot.
111
+
112
+ ### The Sixth Tick
113
+ The last thing that happens before the novel begins. The final moment of the "before" life. Usually the event that makes the unavoidable external problem unavoidable.
114
+
115
+ ## Step 9: Writing Forward
116
+
117
+ Stories grow in spirals:
118
+ - Write a scene → it reveals something about the past
119
+ - Revise earlier scenes → reveals something about the future
120
+ - Each pass deepens rather than merely extends
121
+
122
+ Draft and blueprint simultaneously. The two activities inform each other. Don't complete the blueprint before writing; don't write without blueprinting.
123
+
124
+ ### The Plot Trap
125
+ Once a plot is in motion, it is tempting to follow external events wherever they lead while the internal story quietly suffocates. For every external event, ask: does it force the internal struggle forward? If not, cut or replace.
126
+
127
+ ### Trust the Cards
128
+ When lost in a scene, return to the Scene Card. What is the internal meaning of this moment? What must the protagonist realise, resist, or choose?
@@ -1,4 +1,5 @@
1
1
  import type { HostContext } from './system-prompt.js';
2
+ import { type PublicSpawnLimits } from './spawn-rate-limiter.js';
2
3
  export interface HostResolution extends HostContext {
3
4
  /** Comma-separated list of detected interface names — non-null only when
4
5
  * lanIPv4 resolution failed. Surfaced as the `stderrTail` of a spawn
@@ -14,6 +15,11 @@ export interface ManagerConfig {
14
15
  killGraceMs: number;
15
16
  jsonlReadMaxBytes: number;
16
17
  host: HostResolution;
18
+ /** Task 013 — per-`role=public` spawn rate limit. Loaded from
19
+ * `brand.json.publicSpawnLimits` if present, else defaults; env vars
20
+ * `MAXY_PUBLIC_SPAWN_CAP` / `MAXY_PUBLIC_SPAWN_WINDOW_MS` override every
21
+ * per-channel bucket (operator escape hatch). */
22
+ publicSpawnLimits: PublicSpawnLimits;
17
23
  }
18
24
  export declare function loadConfig(env?: NodeJS.ProcessEnv): ManagerConfig;
19
25
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAErD,MAAM,WAAW,cAAe,SAAQ,WAAW;IACjD;;4DAEwD;IACxD,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAA;CACjC;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,mBAAmB,EAAE,MAAM,CAAA;IAC3B,WAAW,EAAE,MAAM,CAAA;IACnB,iBAAiB,EAAE,MAAM,CAAA;IACzB,IAAI,EAAE,cAAc,CAAA;CACrB;AAmED,wBAAgB,UAAU,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,aAAa,CAkC9E"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,EAGL,KAAK,iBAAiB,EACvB,MAAM,yBAAyB,CAAA;AAGhC,MAAM,WAAW,cAAe,SAAQ,WAAW;IACjD;;4DAEwD;IACxD,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAA;CACjC;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,mBAAmB,EAAE,MAAM,CAAA;IAC3B,WAAW,EAAE,MAAM,CAAA;IACnB,iBAAiB,EAAE,MAAM,CAAA;IACzB,IAAI,EAAE,cAAc,CAAA;IACpB;;;qDAGiD;IACjD,iBAAiB,EAAE,iBAAiB,CAAA;CACrC;AA6HD,wBAAgB,UAAU,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,aAAa,CAmC9E"}
@@ -1,11 +1,68 @@
1
1
  import { existsSync, readFileSync } from 'node:fs';
2
2
  import { homedir, hostname, networkInterfaces } from 'node:os';
3
3
  import { join } from 'node:path';
4
+ import { DEFAULT_PUBLIC_SPAWN_LIMITS, } from './spawn-rate-limiter.js';
4
5
  const DEFAULT_PORT = 19400;
5
6
  const DEFAULT_URL_TIMEOUT_MS = 30_000;
6
7
  const DEFAULT_KILL_GRACE_MS = 5_000;
7
8
  const DEFAULT_JSONL_READ_MAX_BYTES = 1 * 1024 * 1024;
8
9
  const DEFAULT_BRAND_PORT = 19200;
10
+ const CHANNELS_FOR_LIMITS = [
11
+ 'browser',
12
+ 'whatsapp',
13
+ 'telegram',
14
+ 'webchat',
15
+ 'email',
16
+ ];
17
+ function parseBucket(raw, fallback) {
18
+ if (!raw || typeof raw !== 'object')
19
+ return fallback;
20
+ const r = raw;
21
+ const cap = typeof r.cap === 'number' && Number.isInteger(r.cap) && r.cap > 0 ? r.cap : fallback.cap;
22
+ const windowMs = typeof r.windowMs === 'number' && Number.isInteger(r.windowMs) && r.windowMs > 0
23
+ ? r.windowMs
24
+ : fallback.windowMs;
25
+ return { cap, windowMs };
26
+ }
27
+ function parsePublicSpawnLimits(raw) {
28
+ const defaults = DEFAULT_PUBLIC_SPAWN_LIMITS;
29
+ if (!raw || typeof raw !== 'object')
30
+ return defaults;
31
+ const r = raw;
32
+ const perChannelRaw = (r.perChannel && typeof r.perChannel === 'object'
33
+ ? r.perChannel
34
+ : {});
35
+ const perChannel = {};
36
+ for (const ch of CHANNELS_FOR_LIMITS) {
37
+ perChannel[ch] = parseBucket(perChannelRaw[ch], defaults.perChannel[ch]);
38
+ }
39
+ return {
40
+ perChannel,
41
+ global: parseBucket(r.global, defaults.global),
42
+ };
43
+ }
44
+ function applyEnvOverride(limits, env) {
45
+ const capEnv = env.MAXY_PUBLIC_SPAWN_CAP;
46
+ const winEnv = env.MAXY_PUBLIC_SPAWN_WINDOW_MS;
47
+ const capN = capEnv ? Number(capEnv) : null;
48
+ const winN = winEnv ? Number(winEnv) : null;
49
+ if (capN === null && winN === null)
50
+ return limits;
51
+ const next = { perChannel: {}, global: { ...limits.global } };
52
+ const overrideCap = capN !== null && Number.isInteger(capN) && capN > 0 ? capN : null;
53
+ const overrideWindow = winN !== null && Number.isInteger(winN) && winN > 0 ? winN : null;
54
+ for (const ch of CHANNELS_FOR_LIMITS) {
55
+ next.perChannel[ch] = {
56
+ cap: overrideCap ?? limits.perChannel[ch].cap,
57
+ windowMs: overrideWindow ?? limits.perChannel[ch].windowMs,
58
+ };
59
+ }
60
+ if (overrideCap !== null)
61
+ next.global.cap = Math.max(next.global.cap, overrideCap * 3);
62
+ if (overrideWindow !== null)
63
+ next.global.windowMs = overrideWindow;
64
+ return next;
65
+ }
9
66
  function loadBrand(env) {
10
67
  const platformRoot = env.PLATFORM_ROOT ?? env.MAXY_PLATFORM_ROOT;
11
68
  if (!platformRoot) {
@@ -29,7 +86,8 @@ function loadBrand(env) {
29
86
  throw new Error(`[claude-session-manager] brand.json at ${brandPath} missing required field: hostname`);
30
87
  }
31
88
  const domain = typeof brand.domain === 'string' && brand.domain.length > 0 ? brand.domain : null;
32
- return { brandPath, fields: { hostname: hn, domain } };
89
+ const publicSpawnLimits = parsePublicSpawnLimits(brand.publicSpawnLimits);
90
+ return { brandPath, fields: { hostname: hn, domain, publicSpawnLimits } };
33
91
  }
34
92
  function resolveLanIPv4() {
35
93
  const ifaces = networkInterfaces();
@@ -85,6 +143,7 @@ export function loadConfig(env = process.env) {
85
143
  tunnelUrl,
86
144
  lanIPv4Diagnostic: lan.diagnostic,
87
145
  },
146
+ publicSpawnLimits: applyEnvOverride(brand.fields.publicSpawnLimits, env),
88
147
  };
89
148
  }
90
149
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAClD,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAC9D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAqBhC,MAAM,YAAY,GAAG,KAAK,CAAA;AAC1B,MAAM,sBAAsB,GAAG,MAAM,CAAA;AACrC,MAAM,qBAAqB,GAAG,KAAK,CAAA;AACnC,MAAM,4BAA4B,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAA;AACpD,MAAM,kBAAkB,GAAG,KAAK,CAAA;AAOhC,SAAS,SAAS,CAAC,GAAsB;IACvC,MAAM,YAAY,GAAG,GAAG,CAAC,aAAa,IAAI,GAAG,CAAC,kBAAkB,CAAA;IAChE,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CACb,yGAAyG;YACvG,kEAAkE,CACrE,CAAA;IACH,CAAC;IACD,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAA;IAC5D,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CACb,kDAAkD,SAAS,yEAAyE,CACrI,CAAA;IACH,CAAC;IACD,IAAI,KAA8B,CAAA;IAClC,IAAI,CAAC;QACH,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAA4B,CAAA;IACjF,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,MAAM,GAAG,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;QAC/E,MAAM,IAAI,KAAK,CAAC,0CAA0C,SAAS,kBAAkB,MAAM,EAAE,CAAC,CAAA;IAChG,CAAC;IACD,MAAM,EAAE,GAAG,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAA;IAClG,IAAI,CAAC,EAAE,EAAE,CAAC;QACR,MAAM,IAAI,KAAK,CACb,0CAA0C,SAAS,mCAAmC,CACvF,CAAA;IACH,CAAC;IACD,MAAM,MAAM,GACV,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAA;IACnF,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAA;AACxD,CAAC;AAED,SAAS,cAAc;IACrB,MAAM,MAAM,GAAG,iBAAiB,EAAE,CAAA;IAClC,KAAK,MAAM,CAAC,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC/C,IAAI,CAAC,KAAK;YAAE,SAAQ;QACpB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAC7C,OAAO,EAAE,EAAE,EAAE,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,CAAA;YAC/C,CAAC;QACH,CAAC;IACH,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,0BAA0B,CAAA;IACzE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,2CAA2C,KAAK,EAAE,EAAE,CAAA;AACrF,CAAC;AAED,SAAS,gBAAgB,CAAC,GAAsB;IAC9C,MAAM,GAAG,GAAG,GAAG,CAAC,eAAe,IAAI,GAAG,CAAC,IAAI,CAAA;IAC3C,IAAI,CAAC,GAAG;QAAE,OAAO,kBAAkB,CAAA;IACnC,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;IACrB,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK;QAAE,OAAO,kBAAkB,CAAA;IACzE,OAAO,CAAC,CAAA;AACV,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,MAAyB,OAAO,CAAC,GAAG;IAC7D,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,2BAA2B,IAAI,YAAY,CAAC,CAAA;IACpE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,KAAK,EAAE,CAAC;QACxD,MAAM,IAAI,KAAK,CAAC,wCAAwC,GAAG,CAAC,2BAA2B,EAAE,CAAC,CAAA;IAC5F,CAAC;IACD,MAAM,UAAU,GAAG,GAAG,CAAC,kCAAkC,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,CAAA;IACrF,MAAM,SAAS,GAAG,GAAG,CAAC,UAAU,IAAI,QAAQ,CAAA;IAC5C,MAAM,QAAQ,GAAG,GAAG,CAAC,gCAAgC,IAAI,OAAO,CAAC,GAAG,EAAE,CAAA;IAEtE,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,CAAA;IAC5B,MAAM,GAAG,GAAG,cAAc,EAAE,CAAA;IAC5B,MAAM,SAAS,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAA;IACvC,MAAM,MAAM,GAAG,QAAQ,EAAE,CAAA;IACzB,MAAM,QAAQ,GAAG,UAAU,KAAK,CAAC,MAAM,CAAC,QAAQ,UAAU,SAAS,EAAE,CAAA;IACrE,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM;QACnC,CAAC,CAAC,WAAW,KAAK,CAAC,MAAM,CAAC,QAAQ,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE;QAC3D,CAAC,CAAC,IAAI,CAAA;IAER,OAAO;QACL,IAAI;QACJ,UAAU;QACV,SAAS;QACT,QAAQ;QACR,mBAAmB,EAAE,sBAAsB;QAC3C,WAAW,EAAE,qBAAqB;QAClC,iBAAiB,EAAE,4BAA4B;QAC/C,IAAI,EAAE;YACJ,QAAQ,EAAE,MAAM;YAChB,OAAO,EAAE,GAAG,CAAC,EAAE;YACf,QAAQ;YACR,SAAS;YACT,iBAAiB,EAAE,GAAG,CAAC,UAAU;SAClC;KACF,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,19 @@
1
1
  import { Hono } from 'hono';
2
2
  import type { SessionStore } from './session-store.js';
3
3
  import { type SpawnDeps } from './pty-spawner.js';
4
+ import type { RateLimiter } from './spawn-rate-limiter.js';
5
+ import type { AuditRegistry } from './public-tool-audit.js';
4
6
  export interface HttpDeps extends Omit<SpawnDeps, 'store'> {
5
7
  store: SessionStore;
6
8
  killGraceMs: number;
7
9
  jsonlReadMaxBytes: number;
10
+ /** Task 013 — gates `POST /spawn role=public` on per-(senderId, channel)
11
+ * and global token buckets. `admin` spawns bypass entirely. */
12
+ publicSpawnLimiter: RateLimiter;
13
+ /** Task 013 — attaches a JSONL tail watcher to each `role=public` session
14
+ * so tool_use→tool_result pairs emit `tool-call` log lines without an
15
+ * operator having to parse the transcript by hand. */
16
+ publicToolAudit: AuditRegistry;
8
17
  }
9
18
  export declare function buildHttpApp(deps: HttpDeps): Hono;
10
19
  //# sourceMappingURL=http-server.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"http-server.d.ts","sourceRoot":"","sources":["../src/http-server.ts"],"names":[],"mappings":"AA0BA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAI3B,OAAO,KAAK,EAAE,YAAY,EAAiB,MAAM,oBAAoB,CAAA;AACrE,OAAO,EAA4E,KAAK,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAiB3H,MAAM,WAAW,QAAS,SAAQ,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC;IACxD,KAAK,EAAE,YAAY,CAAA;IACnB,WAAW,EAAE,MAAM,CAAA;IACnB,iBAAiB,EAAE,MAAM,CAAA;CAC1B;AAsDD,wBAAgB,YAAY,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,CAqfjD"}
1
+ {"version":3,"file":"http-server.d.ts","sourceRoot":"","sources":["../src/http-server.ts"],"names":[],"mappings":"AA0BA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAI3B,OAAO,KAAK,EAAE,YAAY,EAAiB,MAAM,oBAAoB,CAAA;AACrE,OAAO,EAA4E,KAAK,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAI3H,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AAc3D,MAAM,WAAW,QAAS,SAAQ,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC;IACxD,KAAK,EAAE,YAAY,CAAA;IACnB,WAAW,EAAE,MAAM,CAAA;IACnB,iBAAiB,EAAE,MAAM,CAAA;IACzB;oEACgE;IAChE,kBAAkB,EAAE,WAAW,CAAA;IAC/B;;2DAEuD;IACvD,eAAe,EAAE,aAAa,CAAA;CAC/B;AAmED,wBAAgB,YAAY,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,CA4gBjD"}
@@ -68,6 +68,20 @@ function resolveJsonlPath(deps, sessionId) {
68
68
  return { path, claudeSessionId: sessionId };
69
69
  return null;
70
70
  }
71
+ /** Task 013 — attach the audit watcher to a freshly-spawned public session.
72
+ * Idempotent on the claude session id, and arranges teardown via the PTY's
73
+ * onExit hook. No-op if we can't derive a jsonl path or claude id yet. */
74
+ function attachPublicAudit(deps, session) {
75
+ if (!session.jsonlPath || !session.url)
76
+ return;
77
+ const claudeSessionId = claudeSessionIdFromUrl(session.url);
78
+ if (!claudeSessionId)
79
+ return;
80
+ deps.publicToolAudit.attach(claudeSessionId, session.jsonlPath);
81
+ session.pty.onExit(() => {
82
+ deps.publicToolAudit.detach(claudeSessionId);
83
+ });
84
+ }
71
85
  export function buildHttpApp(deps) {
72
86
  const app = new Hono();
73
87
  // Task 029 — display-name resolution for alive rows shares the same
@@ -123,6 +137,20 @@ export function buildHttpApp(deps) {
123
137
  timed(deps.logger, 'POST', '/spawn', 400, Date.now() - start);
124
138
  return c.json({ error: 'invalid-arguments', detail: { senderId: !!senderId, role, channel } }, 400);
125
139
  }
140
+ // Task 013 — gate `role=public` spawns on the in-memory token buckets.
141
+ // Admin spawns are unthrottled. Rejection carries the bucket that tripped
142
+ // so the caller can distinguish channel-level abuse from cross-channel.
143
+ if (role === 'public') {
144
+ const decision = deps.publicSpawnLimiter.admit(senderId, channel);
145
+ if (!decision.admitted) {
146
+ deps.logger(`spawn-rate-limited senderId=${senderId} channel=${channel} scope=${decision.scope} window=${decision.windowMs} cap=${decision.cap}`);
147
+ timed(deps.logger, 'POST', '/spawn', 429, Date.now() - start);
148
+ return c.json({
149
+ error: 'too-many-spawns',
150
+ detail: { scope: decision.scope, cap: decision.cap, windowMs: decision.windowMs, channel },
151
+ }, 429);
152
+ }
153
+ }
126
154
  // Task 030 — `channels` is an optional string[]; non-string entries are
127
155
  // dropped silently. Empty / absent leaves the spawn argv unchanged.
128
156
  const channels = Array.isArray(body.channels)
@@ -158,6 +186,10 @@ export function buildHttpApp(deps) {
158
186
  timed(deps.logger, 'POST', '/spawn', 500, Date.now() - start);
159
187
  return c.json({ error: 'spawn-failed', reason: result.reason }, 500);
160
188
  }
189
+ // Task 013 — attach the public-tool audit watcher and arrange teardown
190
+ // when the PTY exits so we don't leak watchers across reused sessionIds.
191
+ if (result.session.role === 'public')
192
+ attachPublicAudit(deps, result.session);
161
193
  timed(deps.logger, 'POST', '/spawn', 200, Date.now() - start);
162
194
  return c.json(toLivePayload(result.session), 200);
163
195
  });
@@ -238,6 +270,8 @@ export function buildHttpApp(deps) {
238
270
  return c.json({ error: 'resume-failed', reason: result.reason }, 500);
239
271
  }
240
272
  deps.logger(`resume pid=${result.session.pid} sessionUrl=${result.session.url} resumeFrom=${claudeSessionId} latency-ms=${Date.now() - start}`);
273
+ if (result.session.role === 'public')
274
+ attachPublicAudit(deps, result.session);
241
275
  timed(deps.logger, 'POST', '/resume', 200, Date.now() - start);
242
276
  return c.json(toLivePayload(result.session), 200);
243
277
  });
@@ -1 +1 @@
1
- {"version":3,"file":"http-server.js","sourceRoot":"","sources":["../src/http-server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"http-server.js","sourceRoot":"","sources":["../src/http-server.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,8 @@ import { loadConfig } from './config.js';
5
5
  import { buildHttpApp } from './http-server.js';
6
6
  import { SessionStore } from './session-store.js';
7
7
  import { loadToolSurface, ToolSurfaceError } from './tool-surface.js';
8
+ import { createSpawnRateLimiter } from './spawn-rate-limiter.js';
9
+ import { createAuditRegistry } from './public-tool-audit.js';
8
10
  const TAG = '[claude-session-manager]';
9
11
  const log = (line) => console.log(`${TAG} ${line}`);
10
12
  function spawnPtyAdapter(cmd, args, env, cwd) {
@@ -53,6 +55,13 @@ async function main() {
53
55
  process.exit(1);
54
56
  }
55
57
  log(`tool-surface admin=${toolSurface.admin.size} public=${toolSurface.public.size}`);
58
+ // Task 013 — per-public-sender spawn throttle + per-call audit watcher.
59
+ const publicSpawnLimiter = createSpawnRateLimiter(config.publicSpawnLimits);
60
+ const publicToolAudit = createAuditRegistry({ logger: log });
61
+ log(`public-spawn-limits perChannelCap=${config.publicSpawnLimits.perChannel.whatsapp.cap}` +
62
+ ` perChannelWindowMs=${config.publicSpawnLimits.perChannel.whatsapp.windowMs}` +
63
+ ` globalCap=${config.publicSpawnLimits.global.cap}` +
64
+ ` globalWindowMs=${config.publicSpawnLimits.global.windowMs}`);
56
65
  const app = buildHttpApp({
57
66
  store,
58
67
  spawnCwd: config.spawnCwd,
@@ -64,12 +73,15 @@ async function main() {
64
73
  spawnPty: (cmd, args, env) => spawnPtyAdapter(cmd, args, env, config.spawnCwd),
65
74
  host: config.host,
66
75
  toolSurface,
76
+ publicSpawnLimiter,
77
+ publicToolAudit,
67
78
  });
68
79
  serve({ fetch: app.fetch, port: config.port, hostname: '127.0.0.1' }, (info) => {
69
80
  log(`listening address=127.0.0.1:${info.port}`);
70
81
  });
71
82
  const shutdown = (signal) => {
72
83
  log(`shutdown signal=${signal} sessions=${store.size()}`);
84
+ publicToolAudit.drain();
73
85
  for (const s of store.all()) {
74
86
  s.pty.kill('SIGTERM');
75
87
  log(`kill pid=${s.pid} reason=manager-shutdown exit-code=0`);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import type { Logger } from './types.js';
2
+ export interface AuditState {
3
+ /** Feed a single parsed JSONL line. Returns log lines to emit (zero or more). */
4
+ ingest(line: string, fallbackTsMs: number): string[];
5
+ /** Drop the watcher's pending state. Returns orphan log lines (tool_use with
6
+ * no matching tool_result by teardown). */
7
+ teardown(): string[];
8
+ }
9
+ interface AuditOptions {
10
+ sessionId: string;
11
+ logger: Logger;
12
+ }
13
+ export declare function createAuditState(opts: AuditOptions): AuditState;
14
+ export interface AuditHandle {
15
+ /** Stop watching, drain orphan log lines. Idempotent. */
16
+ stop(): void;
17
+ }
18
+ export interface AuditRegistry {
19
+ /** Attach a watcher for a public-role session. Idempotent on sessionId. */
20
+ attach(sessionId: string, jsonlPath: string): void;
21
+ /** Detach one session's watcher, draining orphans. */
22
+ detach(sessionId: string): void;
23
+ /** Detach all (manager shutdown). */
24
+ drain(): void;
25
+ }
26
+ export interface RegistryDeps {
27
+ logger: Logger;
28
+ /** Polling interval for `watchFile`. Default 250ms — same as `/log?follow=1`. */
29
+ pollIntervalMs?: number;
30
+ }
31
+ export declare function createAuditRegistry(deps: RegistryDeps): AuditRegistry;
32
+ export {};
33
+ //# sourceMappingURL=public-tool-audit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"public-tool-audit.d.ts","sourceRoot":"","sources":["../src/public-tool-audit.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAOxC,MAAM,WAAW,UAAU;IACzB,iFAAiF;IACjF,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IACpD;+CAC2C;IAC3C,QAAQ,IAAI,MAAM,EAAE,CAAA;CACrB;AAED,UAAU,YAAY;IACpB,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;CACf;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,YAAY,GAAG,UAAU,CA+D/D;AAED,MAAM,WAAW,WAAW;IAC1B,yDAAyD;IACzD,IAAI,IAAI,IAAI,CAAA;CACb;AAED,MAAM,WAAW,aAAa;IAC5B,2EAA2E;IAC3E,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IAClD,sDAAsD;IACtD,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IAC/B,qCAAqC;IACrC,KAAK,IAAI,IAAI,CAAA;CACd;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAA;IACd,iFAAiF;IACjF,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,YAAY,GAAG,aAAa,CAkErE"}