@mulmoclaude/core 4.4.2 → 4.5.0

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 (75) hide show
  1. package/assets/helps/bug-report-faq.md +13 -0
  2. package/assets/helps/business.md +4 -0
  3. package/assets/helps/error-recovery.md +71 -0
  4. package/assets/helps/gemini.md +1 -1
  5. package/assets/helps/mulmoscript.md +71 -1
  6. package/assets/helps/presentation-deck.md +4 -1
  7. package/assets/helps/storyteller.md +7 -0
  8. package/dist/collection/core/accentColor.d.ts +23 -0
  9. package/dist/collection/core/iconGlyph.d.ts +26 -0
  10. package/dist/collection/core/schema.d.ts +9 -0
  11. package/dist/collection/core/schemaZ.d.ts +18 -0
  12. package/dist/collection/core/shortcutInfo.d.ts +14 -0
  13. package/dist/collection/core/uiTypes.d.ts +6 -0
  14. package/dist/collection/index.cjs +22 -2
  15. package/dist/collection/index.cjs.map +1 -1
  16. package/dist/collection/index.d.ts +3 -0
  17. package/dist/collection/index.js +17 -3
  18. package/dist/collection/index.js.map +1 -1
  19. package/dist/collection/registry/server/index.cjs +3 -3
  20. package/dist/collection/registry/server/index.js +3 -3
  21. package/dist/collection/server/index.cjs +5 -4
  22. package/dist/collection/server/index.js +5 -5
  23. package/dist/collection/server/paths.d.ts +10 -0
  24. package/dist/collection-watchers/index.cjs +5 -5
  25. package/dist/collection-watchers/index.js +5 -5
  26. package/dist/{discovery-Dl9nRa-m.cjs → discovery-2TvulIz8.cjs} +25 -5
  27. package/dist/discovery-2TvulIz8.cjs.map +1 -0
  28. package/dist/{discovery-P64fgtuD.js → discovery-BY-nMCuh.js} +20 -6
  29. package/dist/discovery-BY-nMCuh.js.map +1 -0
  30. package/dist/feeds/index.cjs +2 -2
  31. package/dist/feeds/index.js +2 -2
  32. package/dist/feeds/server/index.cjs +5 -5
  33. package/dist/feeds/server/index.js +5 -5
  34. package/dist/files/atomic.d.ts +4 -0
  35. package/dist/files/index.cjs +1 -1
  36. package/dist/files/index.js +1 -1
  37. package/dist/google/index.cjs +3 -3
  38. package/dist/google/index.js +3 -3
  39. package/dist/iconGlyph-D8JeNg7R.js +59 -0
  40. package/dist/iconGlyph-D8JeNg7R.js.map +1 -0
  41. package/dist/iconGlyph-fSBp6k4J.cjs +70 -0
  42. package/dist/iconGlyph-fSBp6k4J.cjs.map +1 -0
  43. package/dist/{ingestTypes-CaX7_s-K.cjs → ingestTypes-DsVH9BYy.cjs} +2 -2
  44. package/dist/{ingestTypes-CaX7_s-K.cjs.map → ingestTypes-DsVH9BYy.cjs.map} +1 -1
  45. package/dist/{ingestTypes-CIy1lHjf.js → ingestTypes-GkG7bJdB.js} +2 -2
  46. package/dist/{ingestTypes-CIy1lHjf.js.map → ingestTypes-GkG7bJdB.js.map} +1 -1
  47. package/dist/{itemId-BY2YPBkT.js → itemId-4P9S_ehz.js} +48 -2
  48. package/dist/itemId-4P9S_ehz.js.map +1 -0
  49. package/dist/{itemId-CEQdK01z.cjs → itemId-CGT2J7YK.cjs} +65 -1
  50. package/dist/itemId-CGT2J7YK.cjs.map +1 -0
  51. package/dist/plugin-vue/IconGlyph.d.ts +27 -0
  52. package/dist/plugin-vue/index.cjs +117 -201
  53. package/dist/plugin-vue/index.cjs.map +1 -1
  54. package/dist/plugin-vue/index.d.ts +1 -0
  55. package/dist/plugin-vue/index.js +118 -203
  56. package/dist/plugin-vue/index.js.map +1 -1
  57. package/dist/{promptSafety-Bp780ezk.js → promptSafety-Bte62OvU.js} +2 -2
  58. package/dist/{promptSafety-Bp780ezk.js.map → promptSafety-Bte62OvU.js.map} +1 -1
  59. package/dist/{promptSafety-C0BWDsfT.cjs → promptSafety-Cv-SoTd4.cjs} +2 -2
  60. package/dist/{promptSafety-C0BWDsfT.cjs.map → promptSafety-Cv-SoTd4.cjs.map} +1 -1
  61. package/dist/{root-BMroU_mB.js → root-BcS4-Kge.js} +12 -2
  62. package/dist/root-BcS4-Kge.js.map +1 -0
  63. package/dist/{root-rPH6FGDT.cjs → root-BvwBUcol.cjs} +12 -2
  64. package/dist/root-BvwBUcol.cjs.map +1 -0
  65. package/dist/{server-BvXO49Vj.js → server-BENtFplH.js} +47 -18
  66. package/dist/{server-BvXO49Vj.js.map → server-BENtFplH.js.map} +1 -1
  67. package/dist/{server-CF1qllGV.cjs → server-Wz4_ALLl.cjs} +47 -18
  68. package/dist/{server-CF1qllGV.cjs.map → server-Wz4_ALLl.cjs.map} +1 -1
  69. package/package.json +8 -8
  70. package/dist/discovery-Dl9nRa-m.cjs.map +0 -1
  71. package/dist/discovery-P64fgtuD.js.map +0 -1
  72. package/dist/itemId-BY2YPBkT.js.map +0 -1
  73. package/dist/itemId-CEQdK01z.cjs.map +0 -1
  74. package/dist/root-BMroU_mB.js.map +0 -1
  75. package/dist/root-rPH6FGDT.cjs.map +0 -1
@@ -1,6 +1,6 @@
1
1
  import { a as isErrorWithCode, l as isUnknownArray, r as hasNumberProp, s as isRecord } from "./dist-D8zokgGo.js";
2
- import { n as writeFileAtomic, t as canonicalRoot } from "./root-BMroU_mB.js";
3
- import { B as COMPUTED_TYPES, G as isReadOnlySchema, H as INGEST_KINDS, I as isSafeRecordId, J as fieldTextOrNull, K as storageKindFor, L as isSafeSlug, M as sharedCollectionKey, N as SAFE_RECORD_ID_PATTERN, O as isValidCollectionName, P as SAFE_SLUG_PATTERN, V as FEED_SCHEDULES, _ as decodeRecordTimes, k as localCollectionKeyOf, q as fieldText, t as newItemId, y as encodeRecordTimes, z as AGENT_INGEST_KIND } from "./itemId-BY2YPBkT.js";
2
+ import { n as writeFileAtomic, t as canonicalRoot } from "./root-BcS4-Kge.js";
3
+ import { B as isSafeSlug, F as sharedCollectionKey, G as INGEST_KINDS, H as AGENT_INGEST_KIND, I as SAFE_RECORD_ID_PATTERN, J as isReadOnlySchema, L as SAFE_SLUG_PATTERN, M as localCollectionKeyOf, S as encodeRecordTimes, U as COMPUTED_TYPES, W as FEED_SCHEDULES, X as fieldText, Y as storageKindFor, Z as fieldTextOrNull, _ as ACCENT_COLORS, b as decodeRecordTimes, j as isValidCollectionName, t as newItemId, z as isSafeRecordId } from "./itemId-4P9S_ehz.js";
4
4
  import { n as projectRecordFields } from "./project-B0j_Vf_Q.js";
5
5
  import { n as backoffDelayMs, r as classifyListenerError } from "./listen-D5av7GzB.js";
6
6
  import { n as isSafeCustomViewI18nPath, r as isSafeCustomViewPath, t as isSafeActionTemplatePath } from "./templatePath-k_WNbL_Q.js";
@@ -321,8 +321,20 @@ function isContainedInRoot(absPath, rootPath) {
321
321
  }
322
322
  const ancestorReal = realpathClosestAncestor(absPath);
323
323
  if (ancestorReal === null) return false;
324
- if (ancestorReal === rootReal) return true;
325
- return ancestorReal.startsWith(rootReal + path.sep);
324
+ return isUnderRealRoot(ancestorReal, rootReal);
325
+ }
326
+ /** The containment comparison itself, on two paths a caller has ALREADY
327
+ * canonicalised. Exported because a caller holding a resolved path must not
328
+ * re-derive it: `isContainedInRoot` canonicalises with `realpathSync`, and a
329
+ * path resolved by a DIFFERENT api can be a different string for the same
330
+ * file — on Windows `fs/promises.realpath` expands an 8.3 short name that
331
+ * `realpathSync` leaves alone, so `C:\Users\runneradmin\…` was compared
332
+ * against `C:\Users\RUNNER~1\…` and every file under the workspace looked
333
+ * like it was outside it (#2972). Canonicalise both sides the same way, then
334
+ * come here. */
335
+ function isUnderRealRoot(realPath, realRoot) {
336
+ if (realPath === realRoot) return true;
337
+ return realPath.startsWith(realRoot + path.sep);
326
338
  }
327
339
  /** Resolve a schema-declared dataPath against `rootPath` (default:
328
340
  * the live workspace), refusing anything that escapes — absolute
@@ -2840,6 +2852,7 @@ var StorageZ = z.discriminatedUnion("type", [z.object({
2840
2852
  }), z.object({ type: z.literal("firestore") }).strict()]);
2841
2853
  var BareCollectionSchemaZ = z.object({
2842
2854
  title: z.string().min(1),
2855
+ color: z.enum(ACCENT_COLORS).optional().catch(void 0),
2843
2856
  icon: z.string().min(1),
2844
2857
  dataPath: z.string().min(1).optional(),
2845
2858
  dataSource: DataSourceZ.optional(),
@@ -3319,6 +3332,7 @@ function toSummary(collection) {
3319
3332
  slug: collection.slug,
3320
3333
  title: collection.schema.title,
3321
3334
  icon: collection.schema.icon,
3335
+ ...collection.schema.color !== void 0 ? { color: collection.schema.color } : {},
3322
3336
  source: collection.source,
3323
3337
  ...collection.schema.dataSource !== void 0 ? { readonly: true } : {},
3324
3338
  ...collection.appId !== void 0 ? { appId: collection.appId } : {}
@@ -3331,6 +3345,6 @@ function toDetail(collection) {
3331
3345
  };
3332
3346
  }
3333
3347
  //#endregion
3334
- export { collectionsRegistriesConfigPath as $, readItem as A, SCHEMA_FILE as B, CollectionQueryZ as C, generateItemId as D, deleteItem as E, loadAppManifest as F, safeRecordId as G, itemFilePath as H, parseAppManifest as I, isBackendUnavailable as J, safeSlugName as K, sharedItemsPath as L, writeItem as M, APP_MANIFEST_FILE as N, isRegularFile as O, appManifestReason as P, collectionChangePayload as Q, pageFromFullRead as R, compileJsonlQuery as S, MAX_QUERY_ROWS as T, resolveDataDir as U, isContainedInRoot as V, resolveTemplatePath as W, archiveDir as X, COLLECTION_ROOT_REQUIRED as Y, collectionChangeKey as Z, dedupeByRecordId as _, createHostSlot as _t, toDetail as a, localCollectionKey as at, queryCsv as b, resolveMutateSet as c, projectSkillsDir as ct, storeFor as d, setFirestoreAccessor as dt, configureCollectionHost as et, checkpointSqliteDatabase as f, setSharedCollectionsSupport as ft, decodeCsvRecordId as g, createForwardingLogger as gt, csvRowToItem as h, stagingSkillDir as ht, resolvePrimaryField as i, isPresetSlug as it, resolveCreateItemId as j, listItems as k, collectionWritable as l, publishCollectionChange as lt, cacheDir as m, skillsStagingDir as mt, discoverCollections as n, getWorkspaceRoot as nt, toSummary as o, log as ot, MAX_CSV_ROWS as p, sharedCollectionChangePayload as pt, BackendUnavailableError as q, loadCollection as r, hostSupportsSharedCollections as rt, CollectionSchemaZ as s, peekWorkspaceRoot as st, acceptParsedSchema as t, firestoreHandle as tt, readOnlyRefusal as u, setCollectionChangePublisher as ut, encodeCsvRecordId as v, DEFAULT_QUERY_ROWS as w, compileCsvQuery as x, normalizeCsvValue as y, projectItemFields as z };
3348
+ export { collectionChangePayload as $, readItem as A, SCHEMA_FILE as B, CollectionQueryZ as C, generateItemId as D, deleteItem as E, loadAppManifest as F, resolveTemplatePath as G, isUnderRealRoot as H, parseAppManifest as I, BackendUnavailableError as J, safeRecordId as K, sharedItemsPath as L, writeItem as M, APP_MANIFEST_FILE as N, isRegularFile as O, appManifestReason as P, collectionChangeKey as Q, pageFromFullRead as R, compileJsonlQuery as S, MAX_QUERY_ROWS as T, itemFilePath as U, isContainedInRoot as V, resolveDataDir as W, COLLECTION_ROOT_REQUIRED as X, isBackendUnavailable as Y, archiveDir as Z, dedupeByRecordId as _, createForwardingLogger as _t, toDetail as a, isPresetSlug as at, queryCsv as b, resolveMutateSet as c, peekWorkspaceRoot as ct, storeFor as d, setCollectionChangePublisher as dt, collectionsRegistriesConfigPath as et, checkpointSqliteDatabase as f, setFirestoreAccessor as ft, decodeCsvRecordId as g, stagingSkillDir as gt, csvRowToItem as h, skillsStagingDir as ht, resolvePrimaryField as i, hostSupportsSharedCollections as it, resolveCreateItemId as j, listItems as k, collectionWritable as l, projectSkillsDir as lt, cacheDir as m, sharedCollectionChangePayload as mt, discoverCollections as n, firestoreHandle as nt, toSummary as o, localCollectionKey as ot, MAX_CSV_ROWS as p, setSharedCollectionsSupport as pt, safeSlugName as q, loadCollection as r, getWorkspaceRoot as rt, CollectionSchemaZ as s, log as st, acceptParsedSchema as t, configureCollectionHost as tt, readOnlyRefusal as u, publishCollectionChange as ut, encodeCsvRecordId as v, createHostSlot as vt, DEFAULT_QUERY_ROWS as w, compileCsvQuery as x, normalizeCsvValue as y, projectItemFields as z };
3335
3349
 
3336
- //# sourceMappingURL=discovery-P64fgtuD.js.map
3350
+ //# sourceMappingURL=discovery-BY-nMCuh.js.map