@mulmoclaude/core 3.5.0 → 3.6.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.
- package/assets/helps/collection-skills.md +49 -1
- package/assets/helps/error-recovery.md +53 -0
- package/dist/calendarGrid-CQ8MVSRb.js.map +1 -1
- package/dist/calendarGrid-DGILaVxI.cjs.map +1 -1
- package/dist/collection/core/schema.d.ts +8 -1
- package/dist/collection/core/schemaZ.d.ts +36 -26
- package/dist/collection/firestore.cjs +51 -0
- package/dist/collection/firestore.cjs.map +1 -0
- package/dist/collection/firestore.d.ts +1 -0
- package/dist/collection/firestore.js +50 -0
- package/dist/collection/firestore.js.map +1 -0
- package/dist/collection/registry/server/index.cjs +2 -2
- package/dist/collection/registry/server/index.js +2 -2
- package/dist/collection/server/appManifest.d.ts +53 -0
- package/dist/collection/server/delete.d.ts +10 -0
- package/dist/collection/server/discoveredCollection.d.ts +10 -0
- package/dist/collection/server/discovery.d.ts +1 -0
- package/dist/collection/server/firestoreDocs.d.ts +39 -0
- package/dist/collection/server/firestoreStore.d.ts +14 -0
- package/dist/collection/server/host.d.ts +41 -0
- package/dist/collection/server/index.cjs +9 -2
- package/dist/collection/server/index.d.ts +4 -1
- package/dist/collection/server/index.js +3 -3
- package/dist/collection-watchers/index.cjs +132 -41
- package/dist/collection-watchers/index.cjs.map +1 -1
- package/dist/collection-watchers/index.js +132 -41
- package/dist/collection-watchers/index.js.map +1 -1
- package/dist/collection-watchers/reconciler.d.ts +1 -1
- package/dist/{discovery-DH9wweuj.js → discovery-CdkaURVY.js} +368 -57
- package/dist/discovery-CdkaURVY.js.map +1 -0
- package/dist/{discovery-Ck4AqikY.cjs → discovery-Cw5xWzZD.cjs} +407 -54
- package/dist/discovery-Cw5xWzZD.cjs.map +1 -0
- package/dist/feeds/server/index.cjs +2 -2
- package/dist/feeds/server/index.js +2 -2
- package/dist/google/index.cjs +1 -1
- package/dist/google/index.js +1 -1
- package/dist/{server-5EMj3naj.cjs → server-9mFaGLdq.cjs} +23 -4
- package/dist/server-9mFaGLdq.cjs.map +1 -0
- package/dist/{server-BiRLLMpW.js → server-DdHaX_Uu.js} +23 -4
- package/dist/server-DdHaX_Uu.js.map +1 -0
- package/package.json +7 -1
- package/dist/discovery-Ck4AqikY.cjs.map +0 -1
- package/dist/discovery-DH9wweuj.js.map +0 -1
- package/dist/server-5EMj3naj.cjs.map +0 -1
- package/dist/server-BiRLLMpW.js.map +0 -1
|
@@ -4,8 +4,8 @@ const require_dist = require("../../dist-CsgSfWwR.cjs");
|
|
|
4
4
|
const require_root = require("../../root-rPH6FGDT.cjs");
|
|
5
5
|
const require_calendarGrid = require("../../calendarGrid-DGILaVxI.cjs");
|
|
6
6
|
const require_project = require("../../project-C1ep9pvo.cjs");
|
|
7
|
-
const require_discovery = require("../../discovery-
|
|
8
|
-
const require_server = require("../../server-
|
|
7
|
+
const require_discovery = require("../../discovery-Cw5xWzZD.cjs");
|
|
8
|
+
const require_server = require("../../server-9mFaGLdq.cjs");
|
|
9
9
|
const require_feeds_paths = require("../paths.cjs");
|
|
10
10
|
const require_ingestTypes = require("../../ingestTypes-iaiq33Ph.cjs");
|
|
11
11
|
const require_notifier = require("../../notifier-DZJj0sOh.cjs");
|
|
@@ -2,8 +2,8 @@ import { a as isErrorWithCode, l as isUnknownArray, s as isRecord$1 } from "../.
|
|
|
2
2
|
import { t as canonicalRoot } from "../../root-BMroU_mB.js";
|
|
3
3
|
import { M as FEED_SCHEDULES, N as INGEST_KINDS } from "../../calendarGrid-CQ8MVSRb.js";
|
|
4
4
|
import { t as mergeIntoExisting } from "../../project-B0j_Vf_Q.js";
|
|
5
|
-
import {
|
|
6
|
-
import { A as buildCollectionActionSeedPrompt, P as readSkillTemplate, j as promptPathsFor } from "../../server-
|
|
5
|
+
import { K as safeSlugName, U as resolveDataDir, d as storeFor, ht as createHostSlot, k as listItems, mt as createForwardingLogger, n as discoverCollections } from "../../discovery-CdkaURVY.js";
|
|
6
|
+
import { A as buildCollectionActionSeedPrompt, P as readSkillTemplate, j as promptPathsFor } from "../../server-DdHaX_Uu.js";
|
|
7
7
|
import { FEEDS_DIR, feedDir, feedStatePath, feedsRoot, ingestStateDir, ingestStatePath } from "../paths.js";
|
|
8
8
|
import { n as DEFAULT_FEED_MAX_ITEMS, r as isFeedSchedule, t as AGENT_INGEST_KIND } from "../../ingestTypes-CEi-Ot7F.js";
|
|
9
9
|
import { d as publish, n as clear } from "../../notifier-DhnwR82U.js";
|
package/dist/google/index.cjs
CHANGED
|
@@ -6,7 +6,7 @@ const require_root = require("../root-rPH6FGDT.cjs");
|
|
|
6
6
|
const require_utils_fetch = require("../utils/fetch.cjs");
|
|
7
7
|
const require_calendarGrid = require("../calendarGrid-DGILaVxI.cjs");
|
|
8
8
|
const require_project = require("../project-C1ep9pvo.cjs");
|
|
9
|
-
const require_discovery = require("../discovery-
|
|
9
|
+
const require_discovery = require("../discovery-Cw5xWzZD.cjs");
|
|
10
10
|
const require_paths = require("../paths-ClV946_f.cjs");
|
|
11
11
|
let node_fs = require("node:fs");
|
|
12
12
|
let node_path = require("node:path");
|
package/dist/google/index.js
CHANGED
|
@@ -4,7 +4,7 @@ import { n as writeFileAtomic } from "../root-BMroU_mB.js";
|
|
|
4
4
|
import { fetchWithTimeout } from "../utils/fetch.js";
|
|
5
5
|
import { l as parseIsoDate, u as parseIsoDateTime } from "../calendarGrid-CQ8MVSRb.js";
|
|
6
6
|
import { t as mergeIntoExisting } from "../project-B0j_Vf_Q.js";
|
|
7
|
-
import {
|
|
7
|
+
import { d as storeFor, ht as createHostSlot, mt as createForwardingLogger, n as discoverCollections, nt as getWorkspaceRoot } from "../discovery-CdkaURVY.js";
|
|
8
8
|
import { t as mulmoConfigDir } from "../paths-CkJxNZ7T.js";
|
|
9
9
|
import { promises } from "node:fs";
|
|
10
10
|
import path, { join } from "node:path";
|
|
@@ -4,7 +4,7 @@ const require_root = require("./root-rPH6FGDT.cjs");
|
|
|
4
4
|
const require_relPath = require("./relPath-CTAjGdCL.cjs");
|
|
5
5
|
const require_calendarGrid = require("./calendarGrid-DGILaVxI.cjs");
|
|
6
6
|
const require_promptSafety = require("./promptSafety-NNGViiCr.cjs");
|
|
7
|
-
const require_discovery = require("./discovery-
|
|
7
|
+
const require_discovery = require("./discovery-Cw5xWzZD.cjs");
|
|
8
8
|
const require_feeds_paths = require("./feeds/paths.cjs");
|
|
9
9
|
const require_skill_bridge_index = require("./skill-bridge/index.cjs");
|
|
10
10
|
let node_path = require("node:path");
|
|
@@ -1024,7 +1024,8 @@ function deleteCollectionRefusalMessage(result) {
|
|
|
1024
1024
|
"user-scope": `collection '${slug}' is user-scope (~/.claude/skills/) and is read-only from MulmoClaude`,
|
|
1025
1025
|
preset: `collection '${slug}' is a preset (mc-*) and re-seeds on restart; unstar it from the catalog instead`,
|
|
1026
1026
|
"unsafe-data-path": `collection '${slug}' declares a dataPath outside its own data/${slug}/ subtree; refusing to delete`,
|
|
1027
|
-
"path-escape": `a directory for collection '${slug}' escapes the workspace
|
|
1027
|
+
"path-escape": `a directory for collection '${slug}' escapes the workspace`,
|
|
1028
|
+
"unsupported-backend": `collection '${slug}' is a shared collection — its records are documents of its app, which this delete can neither archive nor remove, and other members read the same documents. Removing its records first does NOT unlock it. To retire the whole app, a Firestore project administrator deletes it recursively (\`firebase firestore:delete "apps/<aid>" --recursive\`, children first); the app owner's client credentials cannot do it.`
|
|
1028
1029
|
}[result.kind];
|
|
1029
1030
|
}
|
|
1030
1031
|
async function pathExists(target) {
|
|
@@ -1080,6 +1081,10 @@ function isDataDirSafe(dataDir, slug, workspaceRoot) {
|
|
|
1080
1081
|
* `dataSource` collection has no record files to copy (its rows live in
|
|
1081
1082
|
* the external data file, which the delete never touches). */
|
|
1082
1083
|
function restoreRecordsStep(schema) {
|
|
1084
|
+
if (schema.storage?.type === "firestore") return `2. Records: NOT archived. This is a shared collection: its records are
|
|
1085
|
+
documents at \`apps/<aid>/collections/<cid>/items\`, which this delete did
|
|
1086
|
+
not touch or export. They are still there, and other members still read
|
|
1087
|
+
them.`;
|
|
1083
1088
|
if (schema.storage !== void 0) return `2. Records: copy the archived database file
|
|
1084
1089
|
\`${node_path.default.basename(schema.storage.path)}\` (next to this document) back to
|
|
1085
1090
|
\`${schema.storage.path}\` (workspace-relative, \`cp\`). It holds every
|
|
@@ -1138,9 +1143,16 @@ ${restoreRecordsStep(schema)}
|
|
|
1138
1143
|
|
|
1139
1144
|
- slug: \`${slug}\`
|
|
1140
1145
|
- title: ${schema.title}
|
|
1141
|
-
- dataPath: \`${schema.dataPath ?? (schema
|
|
1146
|
+
- dataPath: \`${schema.dataPath ?? recordLocationLabel(schema)}\`
|
|
1142
1147
|
`;
|
|
1143
1148
|
}
|
|
1149
|
+
/** Where a non-`dataPath` collection's records live, for the restore doc's
|
|
1150
|
+
* header line. */
|
|
1151
|
+
function recordLocationLabel(schema) {
|
|
1152
|
+
if (schema.storage?.type === "firestore") return "(storage) shared app";
|
|
1153
|
+
if (schema.storage !== void 0) return `(storage) ${schema.storage.path}`;
|
|
1154
|
+
return `(dataSource) ${schema.dataSource?.path}`;
|
|
1155
|
+
}
|
|
1144
1156
|
/** Copy one skill copy + the records + RESTORE.md into `archiveDir`. */
|
|
1145
1157
|
async function writeArchive(collection, archiveDir, workspaceRoot) {
|
|
1146
1158
|
const staging = require_discovery.stagingSkillDir(workspaceRoot, collection.slug);
|
|
@@ -1198,6 +1210,13 @@ async function deleteCollection(collection, opts = {}) {
|
|
|
1198
1210
|
kind: "preset",
|
|
1199
1211
|
slug
|
|
1200
1212
|
};
|
|
1213
|
+
if (collection.schema.storage?.type === "firestore") {
|
|
1214
|
+
require_discovery.log.warn("collections", "deleteCollection refused: a shared collection's records can be neither archived nor removed here", { slug });
|
|
1215
|
+
return {
|
|
1216
|
+
kind: "unsupported-backend",
|
|
1217
|
+
slug
|
|
1218
|
+
};
|
|
1219
|
+
}
|
|
1201
1220
|
if (!isDataDirSafe(collection.dataDir, slug, workspaceRoot)) {
|
|
1202
1221
|
require_discovery.log.warn("collections", "deleteCollection refused: dataDir is not under the per-collection root", {
|
|
1203
1222
|
slug,
|
|
@@ -2255,4 +2274,4 @@ Object.defineProperty(exports, "validateRecordObject", {
|
|
|
2255
2274
|
}
|
|
2256
2275
|
});
|
|
2257
2276
|
|
|
2258
|
-
//# sourceMappingURL=server-
|
|
2277
|
+
//# sourceMappingURL=server-9mFaGLdq.cjs.map
|