@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.
- package/dist/__tests__/plugin-install.test.js +105 -0
- package/dist/index.js +133 -0
- package/dist/lib/plugin-install.js +108 -0
- package/package.json +1 -1
- package/payload/platform/config/brand.json +6 -1
- package/payload/platform/plugins/.claude-plugin/marketplace.json +103 -0
- package/payload/platform/plugins/admin/.claude-plugin/plugin.json +17 -0
- package/payload/platform/plugins/anthropic/.claude-plugin/plugin.json +8 -0
- package/payload/platform/plugins/business-assistant/.claude-plugin/plugin.json +8 -0
- package/payload/platform/plugins/cloudflare/.claude-plugin/plugin.json +17 -0
- package/payload/platform/plugins/contacts/.claude-plugin/plugin.json +17 -0
- package/payload/platform/plugins/deep-research/.claude-plugin/plugin.json +8 -0
- package/payload/platform/plugins/docs/.claude-plugin/plugin.json +8 -0
- package/payload/platform/plugins/docs/references/deployment.md +50 -0
- package/payload/platform/plugins/docs/references/platform.md +1 -1
- package/payload/platform/plugins/email/.claude-plugin/plugin.json +17 -0
- package/payload/platform/plugins/linkedin-import/.claude-plugin/plugin.json +8 -0
- package/payload/platform/plugins/memory/.claude-plugin/plugin.json +17 -0
- package/payload/platform/plugins/outlook/.claude-plugin/plugin.json +17 -0
- package/payload/platform/plugins/projects/.claude-plugin/plugin.json +8 -0
- package/payload/platform/plugins/replicate/.claude-plugin/plugin.json +17 -0
- package/payload/platform/plugins/sales/.claude-plugin/plugin.json +8 -0
- package/payload/platform/plugins/scheduling/.claude-plugin/plugin.json +17 -0
- package/payload/platform/plugins/tasks/.claude-plugin/plugin.json +13 -13
- package/payload/platform/plugins/waitlist/.claude-plugin/plugin.json +17 -0
- package/payload/platform/plugins/whatsapp/.claude-plugin/plugin.json +17 -0
- package/payload/platform/plugins/workflows/.claude-plugin/plugin.json +13 -12
- package/payload/platform/services/claude-session-manager/dist/http-server.d.ts.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/http-server.js +115 -34
- package/payload/platform/services/claude-session-manager/dist/http-server.js.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/jsonl-enumerator.d.ts +9 -3
- package/payload/platform/services/claude-session-manager/dist/jsonl-enumerator.d.ts.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/jsonl-enumerator.js +39 -11
- package/payload/platform/services/claude-session-manager/dist/jsonl-enumerator.js.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/pty-spawner.d.ts +6 -0
- package/payload/platform/services/claude-session-manager/dist/pty-spawner.d.ts.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/pty-spawner.js +9 -3
- package/payload/platform/services/claude-session-manager/dist/pty-spawner.js.map +1 -1
- package/payload/premium-plugins/.claude-plugin/marketplace.json +18 -0
- package/payload/premium-plugins/real-agency/plugins/.claude-plugin/marketplace.json +63 -0
- package/payload/premium-plugins/real-agency/plugins/brochures/.claude-plugin/plugin.json +8 -0
- package/payload/premium-plugins/real-agency/plugins/buyers/.claude-plugin/plugin.json +8 -0
- package/payload/premium-plugins/real-agency/plugins/estate-business/.claude-plugin/plugin.json +8 -0
- package/payload/premium-plugins/real-agency/plugins/estate-coaching/.claude-plugin/plugin.json +8 -0
- package/payload/premium-plugins/real-agency/plugins/estate-onboarding/.claude-plugin/plugin.json +8 -0
- package/payload/premium-plugins/real-agency/plugins/estate-sales/.claude-plugin/plugin.json +8 -0
- package/payload/premium-plugins/real-agency/plugins/estate-teaching/.claude-plugin/plugin.json +8 -0
- package/payload/premium-plugins/real-agency/plugins/leads/.claude-plugin/plugin.json +8 -0
- package/payload/premium-plugins/real-agency/plugins/listings/.claude-plugin/plugin.json +8 -0
- package/payload/premium-plugins/real-agency/plugins/loop/.claude-plugin/plugin.json +17 -0
- package/payload/premium-plugins/real-agency/plugins/vendors/.claude-plugin/plugin.json +8 -0
- package/payload/premium-plugins/teaching/.claude-plugin/plugin.json +8 -0
- package/payload/premium-plugins/writer-craft/.claude-plugin/plugin.json +8 -0
- package/payload/server/public/assets/{Checkbox-DFqSsy1T.js → Checkbox-nrf4ISU0.js} +1 -1
- package/payload/server/public/assets/admin-BctPxbjB.js +216 -0
- package/payload/server/public/assets/{architectureDiagram-Q4EWVU46-b4QyajX-.js → architectureDiagram-Q4EWVU46-DZI73ap7.js} +1 -1
- package/payload/server/public/assets/{blockDiagram-DXYQGD6D-TjqTrY-k.js → blockDiagram-DXYQGD6D-BQQz9YNZ.js} +1 -1
- package/payload/server/public/assets/{c4Diagram-AHTNJAMY-IgeoCF0t.js → c4Diagram-AHTNJAMY-gl8-XVLH.js} +1 -1
- package/payload/server/public/assets/channel-BIMyzzFT.js +1 -0
- package/payload/server/public/assets/{chunk-336JU56O-DRLMjGdl.js → chunk-336JU56O-839etdKR.js} +2 -2
- package/payload/server/public/assets/{chunk-426QAEUC-CI245oxY.js → chunk-426QAEUC-hyvaLE5p.js} +1 -1
- package/payload/server/public/assets/{chunk-4TB4RGXK-DyJxUUKk.js → chunk-4TB4RGXK-DEIYWdpd.js} +1 -1
- package/payload/server/public/assets/{chunk-5FUZZQ4R-BCjexSct.js → chunk-5FUZZQ4R-zWevOyjc.js} +1 -1
- package/payload/server/public/assets/{chunk-5PVQY5BW-Dt2cXTrU.js → chunk-5PVQY5BW-CL9KWSZH.js} +1 -1
- package/payload/server/public/assets/{chunk-EDXVE4YY-D0eTDJTf.js → chunk-EDXVE4YY-D91vGp64.js} +1 -1
- package/payload/server/public/assets/{chunk-ENJZ2VHE-D4jxc5I4.js → chunk-ENJZ2VHE-DApK4iuk.js} +1 -1
- package/payload/server/public/assets/{chunk-ICPOFSXX-BTunst6F.js → chunk-ICPOFSXX-BOjV-nTe.js} +1 -1
- package/payload/server/public/assets/{chunk-OYMX7WX6-Cl7mY7RV.js → chunk-OYMX7WX6-D3Cv5Z_Z.js} +1 -1
- package/payload/server/public/assets/{chunk-U2HBQHQK-C9vVnFZI.js → chunk-U2HBQHQK-C92E-iRU.js} +1 -1
- package/payload/server/public/assets/{chunk-X2U36JSP--IVQ7OVU.js → chunk-X2U36JSP-DohG6qWK.js} +1 -1
- package/payload/server/public/assets/{chunk-YZCP3GAM-ywH1X_Tf.js → chunk-YZCP3GAM-CyeLVSjf.js} +1 -1
- package/payload/server/public/assets/{chunk-ZZ45TVLE-s3MX30s0.js → chunk-ZZ45TVLE-D7R-lONY.js} +1 -1
- package/payload/server/public/assets/classDiagram-6PBFFD2Q-BAfXNwa9.js +1 -0
- package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-D5bE1GaW.js +1 -0
- package/payload/server/public/assets/clone-DOH_suVb.js +1 -0
- package/payload/server/public/assets/{dagre-Dlv3Pir3.js → dagre-DjhovTZd.js} +1 -1
- package/payload/server/public/assets/{dagre-KV5264BT-Clj745-c.js → dagre-KV5264BT-DFeRlQuy.js} +1 -1
- package/payload/server/public/assets/data-DzTaKq-r.js +1 -0
- package/payload/server/public/assets/{device-url-actions-CR1YA_Oh.js → device-url-actions-CE3A1UDw.js} +1 -1
- package/payload/server/public/assets/{diagram-5BDNPKRD-D9aWVQjq.js → diagram-5BDNPKRD-DsmRGnVL.js} +1 -1
- package/payload/server/public/assets/{diagram-G4DWMVQ6-CcmvhU_0.js → diagram-G4DWMVQ6-CVSK-mLR.js} +1 -1
- package/payload/server/public/assets/{diagram-MMDJMWI5-DqnEFZ_e.js → diagram-MMDJMWI5-DMN94Pe-.js} +1 -1
- package/payload/server/public/assets/{diagram-TYMM5635-DUgxM2Gy.js → diagram-TYMM5635-DaD4mLMc.js} +1 -1
- package/payload/server/public/assets/{erDiagram-SMLLAGMA-WEt2Ag_8.js → erDiagram-SMLLAGMA-BUkZ2Iq1.js} +1 -1
- package/payload/server/public/assets/{flowDiagram-DWJPFMVM-BxbLB9lI.js → flowDiagram-DWJPFMVM-DW8DX_ge.js} +1 -1
- package/payload/server/public/assets/{ganttDiagram-T4ZO3ILL-B8hZySN_.js → ganttDiagram-T4ZO3ILL-DWaRL6__.js} +1 -1
- package/payload/server/public/assets/{gitGraphDiagram-UUTBAWPF-DFKbwnDS.js → gitGraphDiagram-UUTBAWPF-BaPTFtVx.js} +1 -1
- package/payload/server/public/assets/graph-dgoq2zvY.js +1 -0
- package/payload/server/public/assets/{graph-labels-CZQ7yauJ.js → graph-labels-BRtJE9AE.js} +1 -1
- package/payload/server/public/assets/{graphlib-BKyj0Cse.js → graphlib-BUhb3hPU.js} +1 -1
- package/payload/server/public/assets/{infoDiagram-42DDH7IO-DIzJvPRa.js → infoDiagram-42DDH7IO-Ch6CE3GO.js} +1 -1
- package/payload/server/public/assets/{ishikawaDiagram-UXIWVN3A-CNZt3pNx.js → ishikawaDiagram-UXIWVN3A-DApFr2KO.js} +1 -1
- package/payload/server/public/assets/{journeyDiagram-VCZTEJTY-FmsjfNLl.js → journeyDiagram-VCZTEJTY-D72xl-VA.js} +1 -1
- package/payload/server/public/assets/jsx-runtime-BgXAk35j.css +1 -0
- package/payload/server/public/assets/{kanban-definition-6JOO6SKY-BIpnMJ9G.js → kanban-definition-6JOO6SKY-TuAvkCJU.js} +1 -1
- package/payload/server/public/assets/{line-2GljHzHI.js → line-Cr3lHgh8.js} +1 -1
- package/payload/server/public/assets/{mermaid-parser.core-QIsYQGqt.js → mermaid-parser.core-BvbEd4_6.js} +1 -1
- package/payload/server/public/assets/{mermaid.core-D90hdqDu.js → mermaid.core-CSIEcw1L.js} +3 -3
- package/payload/server/public/assets/{mindmap-definition-QFDTVHPH-DR9HoT0r.js → mindmap-definition-QFDTVHPH-CNLvqgk-.js} +1 -1
- package/payload/server/public/assets/{page-Dse1CCed.js → page-B_80xGrM.js} +1 -1
- package/payload/server/public/assets/{page-D_GkGEZd.js → page-BcnqM490.js} +1 -1
- package/payload/server/public/assets/{pieDiagram-DEJITSTG-BJDbihXx.js → pieDiagram-DEJITSTG-CSOsdFn6.js} +1 -1
- package/payload/server/public/assets/{public-B9ZvuNF5.js → public-DGrCAqZN.js} +3 -3
- package/payload/server/public/assets/{quadrantDiagram-34T5L4WZ-DFYpL3ec.js → quadrantDiagram-34T5L4WZ-Bsxz9S58.js} +1 -1
- package/payload/server/public/assets/{requirementDiagram-MS252O5E-B4UbnwOB.js → requirementDiagram-MS252O5E-BZRrlQlh.js} +1 -1
- package/payload/server/public/assets/{sankeyDiagram-XADWPNL6-BU0vNRlq.js → sankeyDiagram-XADWPNL6-C-W-Az7g.js} +1 -1
- package/payload/server/public/assets/{sequenceDiagram-FGHM5R23-BRO0b1BI.js → sequenceDiagram-FGHM5R23-DCZPAj4-.js} +1 -1
- package/payload/server/public/assets/{stateDiagram-FHFEXIEX-Dx-l8pbS.js → stateDiagram-FHFEXIEX-C3wODMGb.js} +1 -1
- package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-Ch6qbhpm.js +1 -0
- package/payload/server/public/assets/{timeline-definition-GMOUNBTQ-Bx9TjNwX.js → timeline-definition-GMOUNBTQ-TRzSKinM.js} +1 -1
- package/payload/server/public/assets/{vennDiagram-DHZGUBPP-BVp2vvoZ.js → vennDiagram-DHZGUBPP-DSKZVM8N.js} +1 -1
- package/payload/server/public/assets/{wardleyDiagram-NUSXRM2D-DpARz8Bt.js → wardleyDiagram-NUSXRM2D-BRXL08eb.js} +1 -1
- package/payload/server/public/assets/{xychartDiagram-5P7HB3ND-BOBkZXV8.js → xychartDiagram-5P7HB3ND-CgWMOf0l.js} +1 -1
- package/payload/server/public/data.html +5 -5
- package/payload/server/public/graph.html +6 -6
- package/payload/server/public/index.html +8 -8
- package/payload/server/public/public.html +5 -5
- package/payload/server/server.js +17 -0
- package/payload/server/public/assets/admin-NgHsUtY6.js +0 -216
- package/payload/server/public/assets/channel-CU1-25eR.js +0 -1
- package/payload/server/public/assets/classDiagram-6PBFFD2Q-QVML9AVf.js +0 -1
- package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-Df6FgGmh.js +0 -1
- package/payload/server/public/assets/clone-CjLmjIRX.js +0 -1
- package/payload/server/public/assets/data-BiL1coJh.js +0 -1
- package/payload/server/public/assets/graph-DZo2iSpd.js +0 -1
- package/payload/server/public/assets/jsx-runtime-TMDOFZ-Z.css +0 -1
- package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-DUpi6_fd.js +0 -1
- /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":"
|
|
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
|
|
101
|
+
if (t === 'user' || t === 'assistant') {
|
|
102
|
+
turnCount += 1;
|
|
103
|
+
if (typeof obj.timestamp === 'string')
|
|
104
|
+
lastMessageAt = obj.timestamp;
|
|
96
105
|
continue;
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
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;
|
|
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;
|
|
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 =
|
|
19
|
-
|
|
20
|
-
|
|
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":"AAAA,yEAAyE;AACzE,yEAAyE;AACzE,0DAA0D;AAC1D,0EAA0E;AAC1E,2EAA2E;AAC3E,eAAe;AACf,EAAE;AACF,0EAA0E;AAC1E,0EAA0E;AAC1E,iEAAiE;AAEjE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAExC,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAElD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;
|
|
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
|
+
}
|
package/payload/premium-plugins/real-agency/plugins/estate-coaching/.claude-plugin/plugin.json
ADDED
|
@@ -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,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": "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-
|
|
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};
|