@rubytech/create-maxy-code 0.1.559 → 0.1.560

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rubytech/create-maxy-code",
3
- "version": "0.1.559",
3
+ "version": "0.1.560",
4
4
  "description": "Install Maxy — AI for Productive People",
5
5
  "bin": {
6
6
  "create-maxy-code": "./dist/index.js"
@@ -190,14 +190,28 @@ catch (err) {
190
190
  // authored specialists and leave their roster lines standing; that deletion
191
191
  // emits no event and does not reproduce on demand, so this walk on every spawn
192
192
  // is the only surface that can see it.
193
+ //
194
+ // Task 2417 — `undurable` is the same walk in the third direction: a live
195
+ // specialist whose filename is in none of the four durable roots is
196
+ // dispatchable now and unrecoverable if anything removes it. The premium root
197
+ // is recomputed here rather than reused from the catalogue census above, whose
198
+ // `premiumRoot` is scoped to its own try block.
193
199
  if (ACCOUNT_ID) {
194
200
  try {
195
201
  const accountDir = getAccountDir();
202
+ const premiumRootForCensus = resolve(PLATFORM_ROOT, "..", "premium-plugins");
196
203
  const roster = runRosterCensus({
197
204
  agentsMdPath: resolve(accountDir, "agents", "admin", "AGENTS.md"),
198
205
  specialistsAgentsDir: resolve(accountDir, "specialists", "agents"),
206
+ durableDirs: [resolve(PLATFORM_ROOT, "templates", "specialists", "agents")],
207
+ durablePluginRoots: [
208
+ resolve(accountDir, "plugins"),
209
+ resolve(PLATFORM_ROOT, "plugins"),
210
+ premiumRootForCensus,
211
+ ],
212
+ premiumPluginsDir: premiumRootForCensus,
199
213
  });
200
- process.stderr.write(`[roster-census] declared=${roster.declared} dispatchable=${roster.dispatchable} orphaned=${roster.orphaned.join(",")}\n`);
214
+ process.stderr.write(`[roster-census] declared=${roster.declared} dispatchable=${roster.dispatchable} orphaned=${roster.orphaned.join(",")} undurable=${roster.undurable.join(",")} bundle-orphans=${roster.bundleOrphans.join(",")}\n`);
201
215
  }
202
216
  catch (err) {
203
217
  process.stderr.write(`[roster-census] error reason=${err.message}\n`);