@rubytech/create-maxy 1.0.497 → 1.0.498
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/package.json +1 -1
- package/payload/platform/scripts/seed-neo4j.sh +89 -0
- package/payload/premium-plugins/real-agency/plugins/real-agency-business/PLUGIN.md +1 -1
- package/payload/premium-plugins/real-agency/plugins/real-agency-buyers/PLUGIN.md +1 -1
- package/payload/premium-plugins/real-agency/plugins/real-agency-coaching/PLUGIN.md +1 -1
- package/payload/premium-plugins/real-agency/plugins/real-agency-leads/PLUGIN.md +1 -1
- package/payload/premium-plugins/real-agency/plugins/real-agency-listings/PLUGIN.md +1 -1
- package/payload/premium-plugins/real-agency/plugins/real-agency-loop/PLUGIN.md +1 -1
- package/payload/premium-plugins/real-agency/plugins/real-agency-onboarding/PLUGIN.md +1 -1
- package/payload/premium-plugins/real-agency/plugins/real-agency-sales/PLUGIN.md +1 -1
- package/payload/premium-plugins/real-agency/plugins/real-agency-teaching/PLUGIN.md +1 -1
- package/payload/premium-plugins/real-agency/plugins/real-agency-vendors/PLUGIN.md +1 -1
- package/payload/premium-plugins/teaching/PLUGIN.md +1 -1
- package/payload/premium-plugins/writer-craft/PLUGIN.md +1 -1
package/package.json
CHANGED
|
@@ -220,6 +220,95 @@ if [ -f "$ACCOUNT_DIR/account.json" ] && ! grep -q '"defaultAgent"' "$ACCOUNT_DI
|
|
|
220
220
|
fi
|
|
221
221
|
fi
|
|
222
222
|
|
|
223
|
+
# ------------------------------------------------------------------
|
|
224
|
+
# Seed enabledPlugins from brand.json plugins.defaultEnabled
|
|
225
|
+
# ------------------------------------------------------------------
|
|
226
|
+
# Fresh accounts: replaces the template's empty [] with defaultEnabled.
|
|
227
|
+
# Existing accounts: additive merge — adds missing defaultEnabled entries,
|
|
228
|
+
# never removes plugins the user enabled manually.
|
|
229
|
+
# Dependency validation: skips any defaultEnabled plugin whose PLUGIN.md
|
|
230
|
+
# `requires:` dependencies are not satisfied by core or defaultEnabled.
|
|
231
|
+
BRAND_JSON="$PROJECT_DIR/config/brand.json"
|
|
232
|
+
if [ -f "$BRAND_JSON" ] && [ -f "$ACCOUNT_DIR/account.json" ]; then
|
|
233
|
+
python3 -c "
|
|
234
|
+
import json, os, sys
|
|
235
|
+
|
|
236
|
+
brand_path = '$BRAND_JSON'
|
|
237
|
+
account_path = '$ACCOUNT_DIR/account.json'
|
|
238
|
+
plugins_dir = '$PROJECT_DIR/plugins'
|
|
239
|
+
|
|
240
|
+
with open(brand_path) as f:
|
|
241
|
+
brand = json.load(f)
|
|
242
|
+
|
|
243
|
+
plugins_cfg = brand.get('plugins', {})
|
|
244
|
+
default_enabled = plugins_cfg.get('defaultEnabled', [])
|
|
245
|
+
core = set(plugins_cfg.get('core', []))
|
|
246
|
+
|
|
247
|
+
if not default_enabled:
|
|
248
|
+
print(' [seed] no defaultEnabled plugins in brand.json — skipping')
|
|
249
|
+
sys.exit(0)
|
|
250
|
+
|
|
251
|
+
# Dependency validation: check each plugin's PLUGIN.md requires field.
|
|
252
|
+
# A dependency is satisfied if it appears in core or in defaultEnabled.
|
|
253
|
+
satisfied = core | set(default_enabled)
|
|
254
|
+
validated = []
|
|
255
|
+
for plugin in default_enabled:
|
|
256
|
+
plugin_md = os.path.join(plugins_dir, plugin, 'PLUGIN.md')
|
|
257
|
+
requires = []
|
|
258
|
+
if os.path.isfile(plugin_md):
|
|
259
|
+
in_frontmatter = False
|
|
260
|
+
in_requires = False
|
|
261
|
+
with open(plugin_md) as f:
|
|
262
|
+
for line in f:
|
|
263
|
+
stripped = line.rstrip()
|
|
264
|
+
if stripped == '---':
|
|
265
|
+
if in_frontmatter:
|
|
266
|
+
break
|
|
267
|
+
in_frontmatter = True
|
|
268
|
+
continue
|
|
269
|
+
if not in_frontmatter:
|
|
270
|
+
continue
|
|
271
|
+
if stripped.startswith('requires:'):
|
|
272
|
+
# Handle inline list: requires: [a, b]
|
|
273
|
+
inline = stripped.split(':', 1)[1].strip()
|
|
274
|
+
if inline.startswith('['):
|
|
275
|
+
requires = [x.strip().strip('\"').strip(\"'\") for x in inline.strip('[]').split(',') if x.strip()]
|
|
276
|
+
in_requires = False
|
|
277
|
+
else:
|
|
278
|
+
in_requires = True
|
|
279
|
+
continue
|
|
280
|
+
if in_requires:
|
|
281
|
+
if stripped.startswith(' - '):
|
|
282
|
+
requires.append(stripped.lstrip(' -').strip())
|
|
283
|
+
else:
|
|
284
|
+
in_requires = False
|
|
285
|
+
unmet = [r for r in requires if r not in satisfied]
|
|
286
|
+
if unmet:
|
|
287
|
+
print(f' [seed] WARNING: skipping defaultEnabled plugin \"{plugin}\" — unmet requires: {unmet}')
|
|
288
|
+
else:
|
|
289
|
+
validated.append(plugin)
|
|
290
|
+
|
|
291
|
+
with open(account_path) as f:
|
|
292
|
+
account = json.load(f)
|
|
293
|
+
|
|
294
|
+
existing = account.get('enabledPlugins', [])
|
|
295
|
+
existing_set = set(existing)
|
|
296
|
+
added = [p for p in validated if p not in existing_set]
|
|
297
|
+
account['enabledPlugins'] = existing + added
|
|
298
|
+
|
|
299
|
+
with open(account_path, 'w') as f:
|
|
300
|
+
json.dump(account, f, indent=2)
|
|
301
|
+
f.write('\n')
|
|
302
|
+
|
|
303
|
+
if not existing:
|
|
304
|
+
print(f' [seed] seeded enabledPlugins: {validated}')
|
|
305
|
+
elif added:
|
|
306
|
+
print(f' [seed] merged into enabledPlugins: +{added} (existing: {existing})')
|
|
307
|
+
else:
|
|
308
|
+
print(f' [seed] enabledPlugins already contains all defaultEnabled entries')
|
|
309
|
+
"
|
|
310
|
+
fi
|
|
311
|
+
|
|
223
312
|
echo " Account $ACCOUNT_ID at $ACCOUNT_DIR"
|
|
224
313
|
|
|
225
314
|
# ------------------------------------------------------------------
|
|
@@ -3,7 +3,7 @@ name: real-agency-business
|
|
|
3
3
|
description: "Business growth, operations, personal branding, and partnership models for estate agency owners and team leaders."
|
|
4
4
|
tools: []
|
|
5
5
|
always: false
|
|
6
|
-
metadata: {"
|
|
6
|
+
metadata: {"platform":{"optional":true,"embed":["admin"]}}
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
# Real Agency — Business
|
|
@@ -3,7 +3,7 @@ name: real-agency-buyers
|
|
|
3
3
|
description: "Full buyer lifecycle — enquiry handling, qualification, viewing management, feedback collection, and educational guides for buyers and sellers."
|
|
4
4
|
tools: []
|
|
5
5
|
always: false
|
|
6
|
-
metadata: {"
|
|
6
|
+
metadata: {"platform":{"optional":true,"embed":["public","admin"]}}
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
# Real Agency — Buyer Management
|
|
@@ -3,7 +3,7 @@ name: real-agency-coaching
|
|
|
3
3
|
description: "Coaching, training, and performance management for estate agency teams — personalised feedback, goal-setting frameworks, and sales methodology training."
|
|
4
4
|
tools: []
|
|
5
5
|
always: false
|
|
6
|
-
metadata: {"
|
|
6
|
+
metadata: {"platform":{"optional":true,"embed":["public","admin"]}}
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
# Real Agency — Coaching & Development
|
|
@@ -3,7 +3,7 @@ name: real-agency-leads
|
|
|
3
3
|
description: "Lead generation and pipeline building — systematic nurturing, database reactivation, and proactive prospecting for UK estate agents."
|
|
4
4
|
tools: []
|
|
5
5
|
always: false
|
|
6
|
-
metadata: {"
|
|
6
|
+
metadata: {"platform":{"optional":true,"embed":["admin"]}}
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
# Real Agency — Lead Generation
|
|
@@ -3,7 +3,7 @@ name: real-agency-listings
|
|
|
3
3
|
description: "Listing presentations, property marketing campaigns, and home preparation guidance for UK estate agents."
|
|
4
4
|
tools: []
|
|
5
5
|
always: false
|
|
6
|
-
metadata: {"
|
|
6
|
+
metadata: {"platform":{"optional":true,"embed":["admin"]}}
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
# Real Agency — Listings & Marketing
|
|
@@ -3,7 +3,7 @@ name: real-agency-onboarding
|
|
|
3
3
|
description: "First-run member onboarding — career stage assessment, profile capture, and starting content recommendation."
|
|
4
4
|
tools: []
|
|
5
5
|
always: false
|
|
6
|
-
metadata: {"
|
|
6
|
+
metadata: {"platform":{"optional":true,"embed":["public","admin"]}}
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
# Real Agency — Onboarding
|
|
@@ -3,7 +3,7 @@ name: real-agency-sales
|
|
|
3
3
|
description: "Estate agency sales cycle — prospect qualification, closing techniques, negotiation frameworks, and sales progression tracking."
|
|
4
4
|
tools: []
|
|
5
5
|
always: false
|
|
6
|
-
metadata: {"
|
|
6
|
+
metadata: {"platform":{"optional":true,"embed":["public","admin"]}}
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
# Real Agency — Sales
|
|
@@ -3,7 +3,7 @@ name: real-agency-teaching
|
|
|
3
3
|
description: "Structured education module browsing and delivery — curriculum navigation, module teaching, and learning progress tracking."
|
|
4
4
|
tools: []
|
|
5
5
|
always: false
|
|
6
|
-
metadata: {"
|
|
6
|
+
metadata: {"platform":{"optional":true,"embed":["public","admin"]}}
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
# Real Agency — Teaching & Content
|
|
@@ -3,7 +3,7 @@ name: real-agency-vendors
|
|
|
3
3
|
description: "Active vendor lifecycle management — communication, updates, valuation booking, and offer negotiation for UK estate agents."
|
|
4
4
|
tools: []
|
|
5
5
|
always: false
|
|
6
|
-
metadata: {"
|
|
6
|
+
metadata: {"platform":{"optional":true,"embed":["admin"]}}
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
# Real Agency — Vendor Management
|
|
@@ -4,7 +4,7 @@ description: "Interactive tutoring, lesson planning, and study pack generation.
|
|
|
4
4
|
icon: 🎓
|
|
5
5
|
tools: []
|
|
6
6
|
always: false
|
|
7
|
-
metadata: {"
|
|
7
|
+
metadata: {"platform":{"optional":true,"pluginKey":"teaching","embed":["public","admin"]}}
|
|
8
8
|
---
|
|
9
9
|
|
|
10
10
|
# Teaching
|
|
@@ -4,7 +4,7 @@ description: "Manuscript review and writing craft tools grounded in neuroscience
|
|
|
4
4
|
icon: ✍️
|
|
5
5
|
tools: []
|
|
6
6
|
always: false
|
|
7
|
-
metadata: {"
|
|
7
|
+
metadata: {"platform":{"optional":true,"pluginKey":"writer-craft","embed":["admin"]}}
|
|
8
8
|
---
|
|
9
9
|
|
|
10
10
|
# Writer Craft
|