@rubytech/create-realagent-code 0.1.15 → 0.1.17

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 (128) hide show
  1. package/dist/__tests__/plugin-install.test.js +105 -0
  2. package/dist/index.js +133 -0
  3. package/dist/lib/plugin-install.js +108 -0
  4. package/package.json +1 -1
  5. package/payload/platform/config/brand.json +6 -1
  6. package/payload/platform/plugins/.claude-plugin/marketplace.json +103 -0
  7. package/payload/platform/plugins/admin/.claude-plugin/plugin.json +17 -0
  8. package/payload/platform/plugins/anthropic/.claude-plugin/plugin.json +8 -0
  9. package/payload/platform/plugins/business-assistant/.claude-plugin/plugin.json +8 -0
  10. package/payload/platform/plugins/cloudflare/.claude-plugin/plugin.json +17 -0
  11. package/payload/platform/plugins/contacts/.claude-plugin/plugin.json +17 -0
  12. package/payload/platform/plugins/deep-research/.claude-plugin/plugin.json +8 -0
  13. package/payload/platform/plugins/docs/.claude-plugin/plugin.json +8 -0
  14. package/payload/platform/plugins/docs/references/deployment.md +50 -0
  15. package/payload/platform/plugins/docs/references/platform.md +1 -1
  16. package/payload/platform/plugins/email/.claude-plugin/plugin.json +17 -0
  17. package/payload/platform/plugins/linkedin-import/.claude-plugin/plugin.json +8 -0
  18. package/payload/platform/plugins/memory/.claude-plugin/plugin.json +17 -0
  19. package/payload/platform/plugins/outlook/.claude-plugin/plugin.json +17 -0
  20. package/payload/platform/plugins/projects/.claude-plugin/plugin.json +8 -0
  21. package/payload/platform/plugins/replicate/.claude-plugin/plugin.json +17 -0
  22. package/payload/platform/plugins/sales/.claude-plugin/plugin.json +8 -0
  23. package/payload/platform/plugins/scheduling/.claude-plugin/plugin.json +17 -0
  24. package/payload/platform/plugins/tasks/.claude-plugin/plugin.json +13 -13
  25. package/payload/platform/plugins/waitlist/.claude-plugin/plugin.json +17 -0
  26. package/payload/platform/plugins/whatsapp/.claude-plugin/plugin.json +17 -0
  27. package/payload/platform/plugins/workflows/.claude-plugin/plugin.json +13 -12
  28. package/payload/platform/services/claude-session-manager/dist/http-server.d.ts.map +1 -1
  29. package/payload/platform/services/claude-session-manager/dist/http-server.js +115 -34
  30. package/payload/platform/services/claude-session-manager/dist/http-server.js.map +1 -1
  31. package/payload/platform/services/claude-session-manager/dist/jsonl-enumerator.d.ts +9 -3
  32. package/payload/platform/services/claude-session-manager/dist/jsonl-enumerator.d.ts.map +1 -1
  33. package/payload/platform/services/claude-session-manager/dist/jsonl-enumerator.js +39 -11
  34. package/payload/platform/services/claude-session-manager/dist/jsonl-enumerator.js.map +1 -1
  35. package/payload/platform/services/claude-session-manager/dist/pty-spawner.d.ts +6 -0
  36. package/payload/platform/services/claude-session-manager/dist/pty-spawner.d.ts.map +1 -1
  37. package/payload/platform/services/claude-session-manager/dist/pty-spawner.js +9 -3
  38. package/payload/platform/services/claude-session-manager/dist/pty-spawner.js.map +1 -1
  39. package/payload/premium-plugins/.claude-plugin/marketplace.json +18 -0
  40. package/payload/premium-plugins/real-agency/plugins/.claude-plugin/marketplace.json +63 -0
  41. package/payload/premium-plugins/real-agency/plugins/brochures/.claude-plugin/plugin.json +8 -0
  42. package/payload/premium-plugins/real-agency/plugins/buyers/.claude-plugin/plugin.json +8 -0
  43. package/payload/premium-plugins/real-agency/plugins/estate-business/.claude-plugin/plugin.json +8 -0
  44. package/payload/premium-plugins/real-agency/plugins/estate-coaching/.claude-plugin/plugin.json +8 -0
  45. package/payload/premium-plugins/real-agency/plugins/estate-onboarding/.claude-plugin/plugin.json +8 -0
  46. package/payload/premium-plugins/real-agency/plugins/estate-sales/.claude-plugin/plugin.json +8 -0
  47. package/payload/premium-plugins/real-agency/plugins/estate-teaching/.claude-plugin/plugin.json +8 -0
  48. package/payload/premium-plugins/real-agency/plugins/leads/.claude-plugin/plugin.json +8 -0
  49. package/payload/premium-plugins/real-agency/plugins/listings/.claude-plugin/plugin.json +8 -0
  50. package/payload/premium-plugins/real-agency/plugins/loop/.claude-plugin/plugin.json +17 -0
  51. package/payload/premium-plugins/real-agency/plugins/vendors/.claude-plugin/plugin.json +8 -0
  52. package/payload/premium-plugins/teaching/.claude-plugin/plugin.json +8 -0
  53. package/payload/premium-plugins/writer-craft/.claude-plugin/plugin.json +8 -0
  54. package/payload/server/public/assets/{Checkbox-DFqSsy1T.js → Checkbox-nrf4ISU0.js} +1 -1
  55. package/payload/server/public/assets/admin-BctPxbjB.js +216 -0
  56. package/payload/server/public/assets/{architectureDiagram-Q4EWVU46-b4QyajX-.js → architectureDiagram-Q4EWVU46-DZI73ap7.js} +1 -1
  57. package/payload/server/public/assets/{blockDiagram-DXYQGD6D-TjqTrY-k.js → blockDiagram-DXYQGD6D-BQQz9YNZ.js} +1 -1
  58. package/payload/server/public/assets/{c4Diagram-AHTNJAMY-IgeoCF0t.js → c4Diagram-AHTNJAMY-gl8-XVLH.js} +1 -1
  59. package/payload/server/public/assets/channel-BIMyzzFT.js +1 -0
  60. package/payload/server/public/assets/{chunk-336JU56O-DRLMjGdl.js → chunk-336JU56O-839etdKR.js} +2 -2
  61. package/payload/server/public/assets/{chunk-426QAEUC-CI245oxY.js → chunk-426QAEUC-hyvaLE5p.js} +1 -1
  62. package/payload/server/public/assets/{chunk-4TB4RGXK-DyJxUUKk.js → chunk-4TB4RGXK-DEIYWdpd.js} +1 -1
  63. package/payload/server/public/assets/{chunk-5FUZZQ4R-BCjexSct.js → chunk-5FUZZQ4R-zWevOyjc.js} +1 -1
  64. package/payload/server/public/assets/{chunk-5PVQY5BW-Dt2cXTrU.js → chunk-5PVQY5BW-CL9KWSZH.js} +1 -1
  65. package/payload/server/public/assets/{chunk-EDXVE4YY-D0eTDJTf.js → chunk-EDXVE4YY-D91vGp64.js} +1 -1
  66. package/payload/server/public/assets/{chunk-ENJZ2VHE-D4jxc5I4.js → chunk-ENJZ2VHE-DApK4iuk.js} +1 -1
  67. package/payload/server/public/assets/{chunk-ICPOFSXX-BTunst6F.js → chunk-ICPOFSXX-BOjV-nTe.js} +1 -1
  68. package/payload/server/public/assets/{chunk-OYMX7WX6-Cl7mY7RV.js → chunk-OYMX7WX6-D3Cv5Z_Z.js} +1 -1
  69. package/payload/server/public/assets/{chunk-U2HBQHQK-C9vVnFZI.js → chunk-U2HBQHQK-C92E-iRU.js} +1 -1
  70. package/payload/server/public/assets/{chunk-X2U36JSP--IVQ7OVU.js → chunk-X2U36JSP-DohG6qWK.js} +1 -1
  71. package/payload/server/public/assets/{chunk-YZCP3GAM-ywH1X_Tf.js → chunk-YZCP3GAM-CyeLVSjf.js} +1 -1
  72. package/payload/server/public/assets/{chunk-ZZ45TVLE-s3MX30s0.js → chunk-ZZ45TVLE-D7R-lONY.js} +1 -1
  73. package/payload/server/public/assets/classDiagram-6PBFFD2Q-BAfXNwa9.js +1 -0
  74. package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-D5bE1GaW.js +1 -0
  75. package/payload/server/public/assets/clone-DOH_suVb.js +1 -0
  76. package/payload/server/public/assets/{dagre-Dlv3Pir3.js → dagre-DjhovTZd.js} +1 -1
  77. package/payload/server/public/assets/{dagre-KV5264BT-Clj745-c.js → dagre-KV5264BT-DFeRlQuy.js} +1 -1
  78. package/payload/server/public/assets/data-DzTaKq-r.js +1 -0
  79. package/payload/server/public/assets/{device-url-actions-CR1YA_Oh.js → device-url-actions-CE3A1UDw.js} +1 -1
  80. package/payload/server/public/assets/{diagram-5BDNPKRD-D9aWVQjq.js → diagram-5BDNPKRD-DsmRGnVL.js} +1 -1
  81. package/payload/server/public/assets/{diagram-G4DWMVQ6-CcmvhU_0.js → diagram-G4DWMVQ6-CVSK-mLR.js} +1 -1
  82. package/payload/server/public/assets/{diagram-MMDJMWI5-DqnEFZ_e.js → diagram-MMDJMWI5-DMN94Pe-.js} +1 -1
  83. package/payload/server/public/assets/{diagram-TYMM5635-DUgxM2Gy.js → diagram-TYMM5635-DaD4mLMc.js} +1 -1
  84. package/payload/server/public/assets/{erDiagram-SMLLAGMA-WEt2Ag_8.js → erDiagram-SMLLAGMA-BUkZ2Iq1.js} +1 -1
  85. package/payload/server/public/assets/{flowDiagram-DWJPFMVM-BxbLB9lI.js → flowDiagram-DWJPFMVM-DW8DX_ge.js} +1 -1
  86. package/payload/server/public/assets/{ganttDiagram-T4ZO3ILL-B8hZySN_.js → ganttDiagram-T4ZO3ILL-DWaRL6__.js} +1 -1
  87. package/payload/server/public/assets/{gitGraphDiagram-UUTBAWPF-DFKbwnDS.js → gitGraphDiagram-UUTBAWPF-BaPTFtVx.js} +1 -1
  88. package/payload/server/public/assets/graph-dgoq2zvY.js +1 -0
  89. package/payload/server/public/assets/{graph-labels-CZQ7yauJ.js → graph-labels-BRtJE9AE.js} +1 -1
  90. package/payload/server/public/assets/{graphlib-BKyj0Cse.js → graphlib-BUhb3hPU.js} +1 -1
  91. package/payload/server/public/assets/{infoDiagram-42DDH7IO-DIzJvPRa.js → infoDiagram-42DDH7IO-Ch6CE3GO.js} +1 -1
  92. package/payload/server/public/assets/{ishikawaDiagram-UXIWVN3A-CNZt3pNx.js → ishikawaDiagram-UXIWVN3A-DApFr2KO.js} +1 -1
  93. package/payload/server/public/assets/{journeyDiagram-VCZTEJTY-FmsjfNLl.js → journeyDiagram-VCZTEJTY-D72xl-VA.js} +1 -1
  94. package/payload/server/public/assets/jsx-runtime-BgXAk35j.css +1 -0
  95. package/payload/server/public/assets/{kanban-definition-6JOO6SKY-BIpnMJ9G.js → kanban-definition-6JOO6SKY-TuAvkCJU.js} +1 -1
  96. package/payload/server/public/assets/{line-2GljHzHI.js → line-Cr3lHgh8.js} +1 -1
  97. package/payload/server/public/assets/{mermaid-parser.core-QIsYQGqt.js → mermaid-parser.core-BvbEd4_6.js} +1 -1
  98. package/payload/server/public/assets/{mermaid.core-D90hdqDu.js → mermaid.core-CSIEcw1L.js} +3 -3
  99. package/payload/server/public/assets/{mindmap-definition-QFDTVHPH-DR9HoT0r.js → mindmap-definition-QFDTVHPH-CNLvqgk-.js} +1 -1
  100. package/payload/server/public/assets/{page-Dse1CCed.js → page-B_80xGrM.js} +1 -1
  101. package/payload/server/public/assets/{page-D_GkGEZd.js → page-BcnqM490.js} +1 -1
  102. package/payload/server/public/assets/{pieDiagram-DEJITSTG-BJDbihXx.js → pieDiagram-DEJITSTG-CSOsdFn6.js} +1 -1
  103. package/payload/server/public/assets/{public-B9ZvuNF5.js → public-DGrCAqZN.js} +3 -3
  104. package/payload/server/public/assets/{quadrantDiagram-34T5L4WZ-DFYpL3ec.js → quadrantDiagram-34T5L4WZ-Bsxz9S58.js} +1 -1
  105. package/payload/server/public/assets/{requirementDiagram-MS252O5E-B4UbnwOB.js → requirementDiagram-MS252O5E-BZRrlQlh.js} +1 -1
  106. package/payload/server/public/assets/{sankeyDiagram-XADWPNL6-BU0vNRlq.js → sankeyDiagram-XADWPNL6-C-W-Az7g.js} +1 -1
  107. package/payload/server/public/assets/{sequenceDiagram-FGHM5R23-BRO0b1BI.js → sequenceDiagram-FGHM5R23-DCZPAj4-.js} +1 -1
  108. package/payload/server/public/assets/{stateDiagram-FHFEXIEX-Dx-l8pbS.js → stateDiagram-FHFEXIEX-C3wODMGb.js} +1 -1
  109. package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-Ch6qbhpm.js +1 -0
  110. package/payload/server/public/assets/{timeline-definition-GMOUNBTQ-Bx9TjNwX.js → timeline-definition-GMOUNBTQ-TRzSKinM.js} +1 -1
  111. package/payload/server/public/assets/{vennDiagram-DHZGUBPP-BVp2vvoZ.js → vennDiagram-DHZGUBPP-DSKZVM8N.js} +1 -1
  112. package/payload/server/public/assets/{wardleyDiagram-NUSXRM2D-DpARz8Bt.js → wardleyDiagram-NUSXRM2D-BRXL08eb.js} +1 -1
  113. package/payload/server/public/assets/{xychartDiagram-5P7HB3ND-BOBkZXV8.js → xychartDiagram-5P7HB3ND-CgWMOf0l.js} +1 -1
  114. package/payload/server/public/data.html +5 -5
  115. package/payload/server/public/graph.html +6 -6
  116. package/payload/server/public/index.html +8 -8
  117. package/payload/server/public/public.html +5 -5
  118. package/payload/server/server.js +17 -0
  119. package/payload/server/public/assets/admin-NgHsUtY6.js +0 -216
  120. package/payload/server/public/assets/channel-CU1-25eR.js +0 -1
  121. package/payload/server/public/assets/classDiagram-6PBFFD2Q-QVML9AVf.js +0 -1
  122. package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-Df6FgGmh.js +0 -1
  123. package/payload/server/public/assets/clone-CjLmjIRX.js +0 -1
  124. package/payload/server/public/assets/data-BiL1coJh.js +0 -1
  125. package/payload/server/public/assets/graph-DZo2iSpd.js +0 -1
  126. package/payload/server/public/assets/jsx-runtime-TMDOFZ-Z.css +0 -1
  127. package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-DUpi6_fd.js +0 -1
  128. /package/payload/server/public/assets/{jsx-runtime-DFicnJNd.js → jsx-runtime-Bz7aoCi7.js} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"jsonl-enumerator.d.ts","sourceRoot":"","sources":["../src/jsonl-enumerator.ts"],"names":[],"mappings":"AAyBA,MAAM,WAAW,iBAAiB;IAChC,oEAAoE;IACpE,eAAe,EAAE,MAAM,CAAA;IACvB,0CAA0C;IAC1C,SAAS,EAAE,MAAM,CAAA;IACjB,8EAA8E;IAC9E,SAAS,EAAE,MAAM,CAAA;IACjB,6EAA6E;IAC7E,SAAS,EAAE,MAAM,CAAA;IACjB,+EAA+E;IAC/E,WAAW,EAAE,MAAM,CAAA;IACnB,iFAAiF;IACjF,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,uFAAuF;IACvF,SAAS,EAAE,MAAM,CAAA;IACjB,mFAAmF;IACnF,MAAM,EAAE,OAAO,CAAA;CAChB;AAmBD,MAAM,WAAW,cAAc;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAWpE;AAED,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAExD;AA2DD;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,GAAE,MAAgC,GAAG,iBAAiB,EAAE,CAiCvH;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI,CAmB1H"}
1
+ {"version":3,"file":"jsonl-enumerator.d.ts","sourceRoot":"","sources":["../src/jsonl-enumerator.ts"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAExC,MAAM,WAAW,iBAAiB;IAChC,oEAAoE;IACpE,eAAe,EAAE,MAAM,CAAA;IACvB,0CAA0C;IAC1C,SAAS,EAAE,MAAM,CAAA;IACjB,8EAA8E;IAC9E,SAAS,EAAE,MAAM,CAAA;IACjB,6EAA6E;IAC7E,SAAS,EAAE,MAAM,CAAA;IACjB,gFAAgF;IAChF,WAAW,EAAE,MAAM,CAAA;IACnB;;;8DAG0D;IAC1D,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,iFAAiF;IACjF,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,uFAAuF;IACvF,SAAS,EAAE,MAAM,CAAA;IACjB,mFAAmF;IACnF,MAAM,EAAE,OAAO,CAAA;CAChB;AA0BD,MAAM,WAAW,cAAc;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAWpE;AAED,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAExD;AAoED;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,EAChB,YAAY,GAAE,MAAgC,EAC9C,MAAM,CAAC,EAAE,MAAM,GACd,iBAAiB,EAAE,CAsCrB;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,MAAM,EAChB,eAAe,EAAE,MAAM,EACvB,YAAY,EAAE,MAAM,EACpB,MAAM,CAAC,EAAE,MAAM,GACd,iBAAiB,GAAG,IAAI,CAwB1B"}
@@ -21,6 +21,11 @@
21
21
  import { existsSync, openSync, closeSync, readSync, readdirSync, readFileSync, statSync } from 'node:fs';
22
22
  import { join, dirname, basename } from 'node:path';
23
23
  import { claudeStateRoot, projectSlugForCwd } from './jsonl-path.js';
24
+ // Task 029 — `ai-title-captured` log line fires once per JSONL path per process
25
+ // lifetime, the first time a tail parse extracts a non-null aiTitle for a path
26
+ // that had none before. Set is reset on process restart by design — the log is
27
+ // a state-transition signal, not a deduplicated identity registry.
28
+ const observedAiTitles = new Set();
24
29
  // Tail-parse cache. Key: `${path}|${mtimeMs}|${size}|${tailMaxBytes}`.
25
30
  // Invalidated implicitly on any append (mtime or size shifts).
26
31
  const tailCache = new Map();
@@ -57,7 +62,7 @@ function parseJsonlTail(jsonlPath, sizeBytes, tailMaxBytes) {
57
62
  const cacheKey = `${jsonlPath}|${statSync(jsonlPath).mtimeMs}|${sizeBytes}|${tailMaxBytes}`;
58
63
  const cached = tailCache.get(jsonlPath);
59
64
  if (cached && cached.key === cacheKey) {
60
- return { lastMessageAt: cached.lastMessageAt, turnCount: cached.turnCount, capped: cached.capped };
65
+ return { lastMessageAt: cached.lastMessageAt, turnCount: cached.turnCount, capped: cached.capped, aiTitle: cached.aiTitle };
61
66
  }
62
67
  const capped = sizeBytes > tailMaxBytes;
63
68
  const readBytes = Math.min(sizeBytes, tailMaxBytes);
@@ -81,6 +86,7 @@ function parseJsonlTail(jsonlPath, sizeBytes, tailMaxBytes) {
81
86
  }
82
87
  let turnCount = 0;
83
88
  let lastMessageAt = null;
89
+ let aiTitle = null;
84
90
  for (const line of chunk.split('\n')) {
85
91
  if (!line)
86
92
  continue;
@@ -92,15 +98,21 @@ function parseJsonlTail(jsonlPath, sizeBytes, tailMaxBytes) {
92
98
  continue;
93
99
  }
94
100
  const t = obj.type;
95
- if (t !== 'user' && t !== 'assistant')
101
+ if (t === 'user' || t === 'assistant') {
102
+ turnCount += 1;
103
+ if (typeof obj.timestamp === 'string')
104
+ lastMessageAt = obj.timestamp;
96
105
  continue;
97
- turnCount += 1;
98
- if (typeof obj.timestamp === 'string')
99
- lastMessageAt = obj.timestamp;
106
+ }
107
+ // Task 029 claude desktop writes one ai-title line per summary cycle.
108
+ // We surface the latest one in the parsed window.
109
+ if (t === 'ai-title' && typeof obj.aiTitle === 'string' && obj.aiTitle.trim()) {
110
+ aiTitle = obj.aiTitle.trim();
111
+ }
100
112
  }
101
- const entry = { key: cacheKey, lastMessageAt, turnCount, capped };
113
+ const entry = { key: cacheKey, lastMessageAt, turnCount, capped, aiTitle };
102
114
  tailCache.set(jsonlPath, entry);
103
- return { lastMessageAt, turnCount, capped };
115
+ return { lastMessageAt, turnCount, capped, aiTitle };
104
116
  }
105
117
  /**
106
118
  * List every JSONL file under `~/.claude/projects/<slug>/` where `<slug>`
@@ -112,7 +124,7 @@ function parseJsonlTail(jsonlPath, sizeBytes, tailMaxBytes) {
112
124
  * lastMessageAt enrichment. Callers driving /list polls pass the cheap
113
125
  * 64 KB default; the /meta route passes the full `jsonlReadMaxBytes`.
114
126
  */
115
- export function listJsonlSessions(spawnCwd, tailMaxBytes = DEFAULT_LIST_TAIL_BYTES) {
127
+ export function listJsonlSessions(spawnCwd, tailMaxBytes = DEFAULT_LIST_TAIL_BYTES, logger) {
116
128
  const slug = projectSlugForCwd(spawnCwd);
117
129
  const projectsDir = join(claudeStateRoot(), 'projects', slug);
118
130
  if (!existsSync(projectsDir))
@@ -135,14 +147,18 @@ export function listJsonlSessions(spawnCwd, tailMaxBytes = DEFAULT_LIST_TAIL_BYT
135
147
  continue;
136
148
  }
137
149
  const sidecar = readSidecar(jsonlPath);
138
- const displayName = sidecar?.displayName?.trim() || claudeSessionId.slice(0, 8);
139
150
  const tail = parseJsonlTail(jsonlPath, stat.size, tailMaxBytes);
151
+ maybeLogAiTitleCaptured(jsonlPath, claudeSessionId, tail.aiTitle, logger);
152
+ const displayName = sidecar?.displayName?.trim() ||
153
+ tail.aiTitle?.trim() ||
154
+ claudeSessionId.slice(0, 8);
140
155
  out.push({
141
156
  claudeSessionId,
142
157
  jsonlPath,
143
158
  startedAt: stat.mtime.toISOString(),
144
159
  sizeBytes: stat.size,
145
160
  displayName,
161
+ aiTitle: tail.aiTitle,
146
162
  lastMessageAt: tail.lastMessageAt,
147
163
  turnCount: tail.turnCount,
148
164
  capped: tail.capped,
@@ -155,7 +171,7 @@ export function listJsonlSessions(spawnCwd, tailMaxBytes = DEFAULT_LIST_TAIL_BYT
155
171
  * Find a single dehydrated row by claudeSessionId. Returns null if the JSONL
156
172
  * is missing. Used by /meta to avoid re-listing the full directory.
157
173
  */
158
- export function readJsonlSession(spawnCwd, claudeSessionId, tailMaxBytes) {
174
+ export function readJsonlSession(spawnCwd, claudeSessionId, tailMaxBytes, logger) {
159
175
  const slug = projectSlugForCwd(spawnCwd);
160
176
  const projectsDir = join(claudeStateRoot(), 'projects', slug);
161
177
  const jsonlPath = join(projectsDir, `${claudeSessionId}.jsonl`);
@@ -163,17 +179,29 @@ export function readJsonlSession(spawnCwd, claudeSessionId, tailMaxBytes) {
163
179
  return null;
164
180
  const stat = statSync(jsonlPath);
165
181
  const sidecar = readSidecar(jsonlPath);
166
- const displayName = sidecar?.displayName?.trim() || claudeSessionId.slice(0, 8);
167
182
  const tail = parseJsonlTail(jsonlPath, stat.size, tailMaxBytes);
183
+ maybeLogAiTitleCaptured(jsonlPath, claudeSessionId, tail.aiTitle, logger);
184
+ const displayName = sidecar?.displayName?.trim() ||
185
+ tail.aiTitle?.trim() ||
186
+ claudeSessionId.slice(0, 8);
168
187
  return {
169
188
  claudeSessionId,
170
189
  jsonlPath,
171
190
  startedAt: stat.mtime.toISOString(),
172
191
  sizeBytes: stat.size,
173
192
  displayName,
193
+ aiTitle: tail.aiTitle,
174
194
  lastMessageAt: tail.lastMessageAt,
175
195
  turnCount: tail.turnCount,
176
196
  capped: tail.capped,
177
197
  };
178
198
  }
199
+ function maybeLogAiTitleCaptured(jsonlPath, claudeSessionId, aiTitle, logger) {
200
+ if (!aiTitle)
201
+ return;
202
+ if (observedAiTitles.has(jsonlPath))
203
+ return;
204
+ observedAiTitles.add(jsonlPath);
205
+ logger?.(`ai-title-captured sessionId=${claudeSessionId.slice(0, 8)} aiTitle=${aiTitle.slice(0, 80)}`);
206
+ }
179
207
  //# sourceMappingURL=jsonl-enumerator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"jsonl-enumerator.js","sourceRoot":"","sources":["../src/jsonl-enumerator.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,qFAAqF;AACrF,4EAA4E;AAC5E,yEAAyE;AACzE,0EAA0E;AAC1E,4EAA4E;AAC5E,0EAA0E;AAC1E,4BAA4B;AAC5B,EAAE;AACF,wDAAwD;AACxD,4EAA4E;AAC5E,yEAAyE;AACzE,kBAAkB;AAClB,mEAAmE;AACnE,4EAA4E;AAC5E,EAAE;AACF,4EAA4E;AAC5E,6EAA6E;AAC7E,sEAAsE;AACtE,gEAAgE;AAEhE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AACxG,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AACnD,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AA4BpE,uEAAuE;AACvE,+DAA+D;AAC/D,MAAM,SAAS,GAAG,IAAI,GAAG,EAAsB,CAAA;AAE/C,MAAM,uBAAuB,GAAG,EAAE,GAAG,IAAI,CAAA;AAEzC,SAAS,WAAW,CAAC,SAAiB;IACpC,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,GAAG,YAAY,CAAC,CAAA;AAC/E,CAAC;AAMD,MAAM,UAAU,WAAW,CAAC,SAAiB;IAC3C,MAAM,CAAC,GAAG,WAAW,CAAC,SAAS,CAAC,CAAA;IAChC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,CAAA;IAC/B,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,YAAY,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;QACnC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAY,CAAA;QACzC,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAA;QACtD,OAAO,MAAwB,CAAA;IACjC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,SAAiB;IAC9C,OAAO,WAAW,CAAC,SAAS,CAAC,CAAA;AAC/B,CAAC;AAED;;;;;;GAMG;AACH,SAAS,cAAc,CAAC,SAAiB,EAAE,SAAiB,EAAE,YAAoB;IAKhF,MAAM,QAAQ,GAAG,GAAG,SAAS,IAAI,QAAQ,CAAC,SAAS,CAAC,CAAC,OAAO,IAAI,SAAS,IAAI,YAAY,EAAE,CAAA;IAC3F,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;IACvC,IAAI,MAAM,IAAI,MAAM,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;QACtC,OAAO,EAAE,aAAa,EAAE,MAAM,CAAC,aAAa,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAA;IACpG,CAAC;IAED,MAAM,MAAM,GAAG,SAAS,GAAG,YAAY,CAAA;IACvC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,YAAY,CAAC,CAAA;IACnD,MAAM,WAAW,GAAG,SAAS,GAAG,SAAS,CAAA;IACzC,IAAI,KAAK,GAAG,EAAE,CAAA;IACd,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;QAClB,MAAM,EAAE,GAAG,QAAQ,CAAC,SAAS,EAAE,GAAG,CAAC,CAAA;QACnC,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;YACnC,QAAQ,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,SAAS,EAAE,WAAW,CAAC,CAAA;YAC5C,KAAK,GAAG,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;QAC9B,CAAC;gBAAS,CAAC;YACT,SAAS,CAAC,EAAE,CAAC,CAAA;QACf,CAAC;IACH,CAAC;IACD,6DAA6D;IAC7D,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QAC9B,KAAK,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA;IAC9C,CAAC;IACD,IAAI,SAAS,GAAG,CAAC,CAAA;IACjB,IAAI,aAAa,GAAkB,IAAI,CAAA;IACvC,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACrC,IAAI,CAAC,IAAI;YAAE,SAAQ;QACnB,IAAI,GAA4C,CAAA;QAChD,IAAI,CAAC;YACH,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAA4C,CAAA;QACnE,CAAC;QAAC,MAAM,CAAC;YACP,SAAQ;QACV,CAAC;QACD,MAAM,CAAC,GAAG,GAAG,CAAC,IAAI,CAAA;QAClB,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,KAAK,WAAW;YAAE,SAAQ;QAC/C,SAAS,IAAI,CAAC,CAAA;QACd,IAAI,OAAO,GAAG,CAAC,SAAS,KAAK,QAAQ;YAAE,aAAa,GAAG,GAAG,CAAC,SAAS,CAAA;IACtE,CAAC;IACD,MAAM,KAAK,GAAe,EAAE,GAAG,EAAE,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,EAAE,CAAA;IAC7E,SAAS,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;IAC/B,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,EAAE,CAAA;AAC7C,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,iBAAiB,CAAC,QAAgB,EAAE,eAAuB,uBAAuB;IAChG,MAAM,IAAI,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAA;IACxC,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,CAAA;IAC7D,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;QAAE,OAAO,EAAE,CAAA;IACvC,MAAM,GAAG,GAAwB,EAAE,CAAA;IACnC,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,WAAW,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;QACtE,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;YAAE,SAAQ;QAC7B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAAE,SAAQ;QAC5C,MAAM,eAAe,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;QAC7D,IAAI,CAAC,eAAe;YAAE,SAAQ;QAC9B,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA;QAC/C,IAAI,IAAI,CAAA;QACR,IAAI,CAAC;YACH,IAAI,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAA;QAC5B,CAAC;QAAC,MAAM,CAAC;YACP,SAAQ;QACV,CAAC;QACD,MAAM,OAAO,GAAG,WAAW,CAAC,SAAS,CAAC,CAAA;QACtC,MAAM,WAAW,GAAG,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QAC/E,MAAM,IAAI,GAAG,cAAc,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAA;QAC/D,GAAG,CAAC,IAAI,CAAC;YACP,eAAe;YACf,SAAS;YACT,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;YACnC,SAAS,EAAE,IAAI,CAAC,IAAI;YACpB,WAAW;YACX,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC,CAAA;IACJ,CAAC;IACD,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACxD,OAAO,GAAG,CAAA;AACZ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,QAAgB,EAAE,eAAuB,EAAE,YAAoB;IAC9F,MAAM,IAAI,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAA;IACxC,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,CAAA;IAC7D,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,GAAG,eAAe,QAAQ,CAAC,CAAA;IAC/D,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,IAAI,CAAA;IACvC,MAAM,IAAI,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAA;IAChC,MAAM,OAAO,GAAG,WAAW,CAAC,SAAS,CAAC,CAAA;IACtC,MAAM,WAAW,GAAG,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IAC/E,MAAM,IAAI,GAAG,cAAc,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAA;IAC/D,OAAO;QACL,eAAe;QACf,SAAS;QACT,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;QACnC,SAAS,EAAE,IAAI,CAAC,IAAI;QACpB,WAAW;QACX,aAAa,EAAE,IAAI,CAAC,aAAa;QACjC,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,MAAM,EAAE,IAAI,CAAC,MAAM;KACpB,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"jsonl-enumerator.js","sourceRoot":"","sources":["../src/jsonl-enumerator.ts"],"names":[],"mappings":"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"}
@@ -24,6 +24,12 @@ export interface SpawnArgs {
24
24
  * `--resume <id>` to the argv so claude rehydrates the prior JSONL into
25
25
  * the new PTY. Task 018. */
26
26
  resumeClaudeSessionId?: string;
27
+ /** Task 030 — channel-plugin entries the spawned `claude` should attach
28
+ * to. Each entry is rendered as `--channels plugin:<name>@<marketplace>`
29
+ * on the spawn argv (e.g. `plugin:telegram@claude-plugins-official`).
30
+ * When omitted or empty, argv is byte-identical to today — existing
31
+ * Maxy installs with no channel plugins pay nothing for the addition. */
32
+ channels?: string[];
27
33
  }
28
34
  export declare function spawnClaudeSession(deps: SpawnDeps, args: SpawnArgs): Promise<SpawnResult>;
29
35
  export interface DeleteDeps {
@@ -1 +1 @@
1
- {"version":3,"file":"pty-spawner.d.ts","sourceRoot":"","sources":["../src/pty-spawner.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAElE,OAAO,EAAE,YAAY,EAAE,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAGrE,MAAM,MAAM,WAAW,GACnB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,aAAa,CAAA;CAAE,GACpC;IACE,EAAE,EAAE,KAAK,CAAA;IACT,MAAM,EAAE,wBAAwB,GAAG,kBAAkB,GAAG,qBAAqB,CAAA;IAC7E,UAAU,EAAE,MAAM,CAAA;CACnB,CAAA;AAEL,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,UAAU,KAAK,SAAS,CAAA;IAC5E,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,mBAAmB,EAAE,MAAM,CAAA;IAC3B,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,YAAY,CAAA;CACpB;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,IAAI,CAAA;IACV,OAAO,EAAE,OAAO,CAAA;IAChB;;gCAE4B;IAC5B,qBAAqB,CAAC,EAAE,MAAM,CAAA;CAC/B;AAED,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,CA0D/F;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,YAAY,CAAA;IACnB,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,MAAM,CAAA;CACf;AAED,wBAAsB,aAAa,CACjC,IAAI,EAAE,UAAU,EAChB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CAqBzC"}
1
+ {"version":3,"file":"pty-spawner.d.ts","sourceRoot":"","sources":["../src/pty-spawner.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAElE,OAAO,EAAE,YAAY,EAAE,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAGrE,MAAM,MAAM,WAAW,GACnB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,aAAa,CAAA;CAAE,GACpC;IACE,EAAE,EAAE,KAAK,CAAA;IACT,MAAM,EAAE,wBAAwB,GAAG,kBAAkB,GAAG,qBAAqB,CAAA;IAC7E,UAAU,EAAE,MAAM,CAAA;CACnB,CAAA;AAEL,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,UAAU,KAAK,SAAS,CAAA;IAC5E,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,mBAAmB,EAAE,MAAM,CAAA;IAC3B,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,YAAY,CAAA;CACpB;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,IAAI,CAAA;IACV,OAAO,EAAE,OAAO,CAAA;IAChB;;gCAE4B;IAC5B,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B;;;;8EAI0E;IAC1E,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;CACpB;AAED,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,CAgE/F;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,YAAY,CAAA;IACnB,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,MAAM,CAAA;CACf;AAED,wBAAsB,aAAa,CACjC,IAAI,EAAE,UAAU,EAChB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CAqBzC"}
@@ -15,9 +15,15 @@ export async function spawnClaudeSession(deps, args) {
15
15
  const sessionId = randomUUID();
16
16
  const startedAt = new Date().toISOString();
17
17
  const start = Date.now();
18
- const argv = args.resumeClaudeSessionId
19
- ? ['--verbose', '--remote-control', '--resume', args.resumeClaudeSessionId]
20
- : ['--verbose', '--remote-control'];
18
+ const argv = ['--verbose', '--remote-control'];
19
+ if (args.resumeClaudeSessionId) {
20
+ argv.push('--resume', args.resumeClaudeSessionId);
21
+ }
22
+ if (args.channels && args.channels.length > 0) {
23
+ for (const ch of args.channels) {
24
+ argv.push('--channels', ch);
25
+ }
26
+ }
21
27
  let pty;
22
28
  try {
23
29
  pty = deps.spawnPty(deps.claudeBin, argv, {
@@ -1 +1 @@
1
- {"version":3,"file":"pty-spawner.js","sourceRoot":"","sources":["../src/pty-spawner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pty-spawner.js","sourceRoot":"","sources":["../src/pty-spawner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ {
2
+ "name": "maxy-premium",
3
+ "owner": {
4
+ "name": "Rubytech LLC"
5
+ },
6
+ "plugins": [
7
+ {
8
+ "name": "teaching",
9
+ "source": "./teaching",
10
+ "version": "0.1.0"
11
+ },
12
+ {
13
+ "name": "writer-craft",
14
+ "source": "./writer-craft",
15
+ "version": "0.1.0"
16
+ }
17
+ ]
18
+ }
@@ -0,0 +1,63 @@
1
+ {
2
+ "name": "maxy-premium-real-agency",
3
+ "owner": {
4
+ "name": "Rubytech LLC"
5
+ },
6
+ "plugins": [
7
+ {
8
+ "name": "brochures",
9
+ "source": "./brochures",
10
+ "version": "0.1.0"
11
+ },
12
+ {
13
+ "name": "buyers",
14
+ "source": "./buyers",
15
+ "version": "0.1.0"
16
+ },
17
+ {
18
+ "name": "estate-business",
19
+ "source": "./estate-business",
20
+ "version": "0.1.0"
21
+ },
22
+ {
23
+ "name": "estate-coaching",
24
+ "source": "./estate-coaching",
25
+ "version": "0.1.0"
26
+ },
27
+ {
28
+ "name": "estate-onboarding",
29
+ "source": "./estate-onboarding",
30
+ "version": "0.1.0"
31
+ },
32
+ {
33
+ "name": "estate-sales",
34
+ "source": "./estate-sales",
35
+ "version": "0.1.0"
36
+ },
37
+ {
38
+ "name": "estate-teaching",
39
+ "source": "./estate-teaching",
40
+ "version": "0.1.0"
41
+ },
42
+ {
43
+ "name": "leads",
44
+ "source": "./leads",
45
+ "version": "0.1.0"
46
+ },
47
+ {
48
+ "name": "listings",
49
+ "source": "./listings",
50
+ "version": "0.1.0"
51
+ },
52
+ {
53
+ "name": "loop",
54
+ "source": "./loop",
55
+ "version": "0.1.0"
56
+ },
57
+ {
58
+ "name": "vendors",
59
+ "source": "./vendors",
60
+ "version": "0.1.0"
61
+ }
62
+ ]
63
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "name": "brochures",
3
+ "description": "End-to-end pipeline for producing print-ready A4 estate-agent property brochures, with a single-entry orchestrator that skips upstream steps whose outputs already exist: extract brand from the agent's website, extract property assets from the listing URL, lay out the brochure, and satisfy print constraints for pixel-perfect PDF.",
4
+ "version": "0.1.0",
5
+ "author": {
6
+ "name": "Rubytech LLC"
7
+ }
8
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "name": "real-agency-buyers",
3
+ "description": "Full buyer lifecycle — enquiry handling, qualification, viewing management, feedback collection, and educational guides for buyers and sellers.",
4
+ "version": "0.1.0",
5
+ "author": {
6
+ "name": "Rubytech LLC"
7
+ }
8
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "name": "real-agency-business",
3
+ "description": "Business growth, operations, personal branding, and partnership models for estate agency owners and team leaders.",
4
+ "version": "0.1.0",
5
+ "author": {
6
+ "name": "Rubytech LLC"
7
+ }
8
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "name": "real-agency-coaching",
3
+ "description": "Coaching, training, and performance management for estate agency teams — personalised feedback, goal-setting frameworks, and sales methodology training.",
4
+ "version": "0.1.0",
5
+ "author": {
6
+ "name": "Rubytech LLC"
7
+ }
8
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "name": "real-agency-onboarding",
3
+ "description": "First-run member onboarding — career stage assessment, profile capture, and starting content recommendation.",
4
+ "version": "0.1.0",
5
+ "author": {
6
+ "name": "Rubytech LLC"
7
+ }
8
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "name": "real-agency-sales",
3
+ "description": "Estate agency sales cycle — prospect qualification, closing techniques, negotiation frameworks, and sales progression tracking.",
4
+ "version": "0.1.0",
5
+ "author": {
6
+ "name": "Rubytech LLC"
7
+ }
8
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "name": "real-agency-teaching",
3
+ "description": "Structured education module browsing and delivery — curriculum navigation, module teaching, and learning progress tracking.",
4
+ "version": "0.1.0",
5
+ "author": {
6
+ "name": "Rubytech LLC"
7
+ }
8
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "name": "real-agency-leads",
3
+ "description": "Lead generation and pipeline building — systematic nurturing, database reactivation, and proactive prospecting for UK estate agents.",
4
+ "version": "0.1.0",
5
+ "author": {
6
+ "name": "Rubytech LLC"
7
+ }
8
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "name": "real-agency-listings",
3
+ "description": "Listing presentations, property marketing campaigns, and home preparation guidance for UK estate agents.",
4
+ "version": "0.1.0",
5
+ "author": {
6
+ "name": "Rubytech LLC"
7
+ }
8
+ }
@@ -0,0 +1,17 @@
1
+ {
2
+ "name": "real-agency-loop",
3
+ "description": "Loop CRM integration — full read/write access to all 8 resource groups: properties, people, viewings, feedback, team, marketing, customer preferences, and supplier operations. Cross-team aggregation with encrypted key storage.",
4
+ "version": "0.1.0",
5
+ "author": {
6
+ "name": "Rubytech LLC"
7
+ },
8
+ "mcpServers": {
9
+ "real-agency-loop": {
10
+ "type": "stdio",
11
+ "command": "node",
12
+ "args": [
13
+ "${CLAUDE_PLUGIN_ROOT}/mcp/dist/index.js"
14
+ ]
15
+ }
16
+ }
17
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "name": "real-agency-vendors",
3
+ "description": "Active vendor lifecycle management — communication, updates, valuation booking, and offer negotiation for UK estate agents.",
4
+ "version": "0.1.0",
5
+ "author": {
6
+ "name": "Rubytech LLC"
7
+ }
8
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "name": "teaching",
3
+ "description": "Interactive tutoring, lesson planning, and study pack generation. Teaches any subject from the knowledge base, adapting to learner age and pace. Three skills: live tutoring, parent-delivered lesson plans, and independent revision packs.",
4
+ "version": "0.1.0",
5
+ "author": {
6
+ "name": "Rubytech LLC"
7
+ }
8
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "name": "writer-craft",
3
+ "description": "Manuscript review and writing craft tools grounded in neuroscience-based story theory, professional editing practice, and prose technique. 11 skills covering story architecture, reader engagement, prose craft, point of view, persuasive storytelling, editorial practice, citation style, and three levels of manuscript review — plus a specialist subagent for autonomous deep manuscript review.",
4
+ "version": "0.1.0",
5
+ "author": {
6
+ "name": "Rubytech LLC"
7
+ }
8
+ }
@@ -1 +1 @@
1
- import{t as e}from"./jsx-runtime-DFicnJNd.js";var t=e();function n({checked:e,onChange:n,label:r,disabled:i}){return(0,t.jsxs)(`label`,{className:`maxy-checkbox${i?` maxy-checkbox--disabled`:``}`,children:[(0,t.jsx)(`input`,{type:`checkbox`,checked:e,onChange:e=>n(e.target.checked),disabled:i}),(0,t.jsx)(`span`,{className:`maxy-checkbox__box`,children:`✱`}),r&&(0,t.jsx)(`span`,{className:`maxy-checkbox__label`,children:r})]})}export{n as t};
1
+ import{t as e}from"./jsx-runtime-Bz7aoCi7.js";var t=e();function n({checked:e,onChange:n,label:r,disabled:i}){return(0,t.jsxs)(`label`,{className:`maxy-checkbox${i?` maxy-checkbox--disabled`:``}`,children:[(0,t.jsx)(`input`,{type:`checkbox`,checked:e,onChange:e=>n(e.target.checked),disabled:i}),(0,t.jsx)(`span`,{className:`maxy-checkbox__box`,children:`✱`}),r&&(0,t.jsx)(`span`,{className:`maxy-checkbox__label`,children:r})]})}export{n as t};