@mulmoclaude/core 3.12.0 → 3.13.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.
@@ -5,7 +5,7 @@ const require_root = require("../../../root-rPH6FGDT.cjs");
5
5
  const require_relPath = require("../../../relPath-CTAjGdCL.cjs");
6
6
  const require_utils_fetch = require("../../../utils/fetch.cjs");
7
7
  const require_discovery = require("../../../discovery-BsXiDZBR.cjs");
8
- const require_server = require("../../../server-BIKy55wo.cjs");
8
+ const require_server = require("../../../server-_g1rW-Uc.cjs");
9
9
  const require_templatePath = require("../../../templatePath-27vUZowm.cjs");
10
10
  const require_skill_bridge_index = require("../../../skill-bridge/index.cjs");
11
11
  const require_types = require("../../../types-CNqkLT4M.cjs");
@@ -3,7 +3,7 @@ import { n as writeFileAtomic } from "../../../root-BMroU_mB.js";
3
3
  import { n as toPosixRelPath } from "../../../relPath-DW8MC8VO.js";
4
4
  import { fetchWithTimeout } from "../../../utils/fetch.js";
5
5
  import { $ as collectionsRegistriesConfigPath, G as safeRecordId, ct as projectSkillsDir, mt as skillsStagingDir, nt as getWorkspaceRoot, ot as log, r as loadCollection, s as CollectionSchemaZ, t as acceptParsedSchema } from "../../../discovery-B9zdNkgW.js";
6
- import { g as ONE_SECOND_MS } from "../../../server-DkT40KgR.js";
6
+ import { g as ONE_SECOND_MS } from "../../../server-DGjmK9vU.js";
7
7
  import { t as isSafeActionTemplatePath } from "../../../templatePath-k_WNbL_Q.js";
8
8
  import { claudeSkillDir, dataSkillDir, mirrorSkillWrite } from "../../../skill-bridge/index.js";
9
9
  import { n as parseRegistryIndex, r as isRecord, t as OFFICIAL_REGISTRY_NAME } from "../../../types-BKVZrtyc.js";
@@ -2,7 +2,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  const require_root = require("../../root-rPH6FGDT.cjs");
3
3
  const require_itemId = require("../../itemId-Dzrr3vs5.cjs");
4
4
  const require_discovery = require("../../discovery-BsXiDZBR.cjs");
5
- const require_server = require("../../server-BIKy55wo.cjs");
5
+ const require_server = require("../../server-_g1rW-Uc.cjs");
6
6
  const require_templatePath = require("../../templatePath-27vUZowm.cjs");
7
7
  exports.APPS_COLLECTION = require_server.APPS_COLLECTION;
8
8
  exports.APP_MANIFEST_FILE = require_discovery.APP_MANIFEST_FILE;
@@ -1,6 +1,6 @@
1
1
  import { t as canonicalRoot } from "../../root-BMroU_mB.js";
2
2
  import { N as COMPUTED_TYPES } from "../../itemId-DfTm08jm.js";
3
3
  import { A as readItem, B as SCHEMA_FILE, C as CollectionQueryZ, D as generateItemId, E as deleteItem, F as loadAppManifest, G as safeRecordId, H as itemFilePath, I as parseAppManifest, J as isBackendUnavailable, K as safeSlugName, L as sharedItemsPath, M as writeItem, N as APP_MANIFEST_FILE, O as isRegularFile, P as appManifestReason, Q as collectionChangePayload, R as pageFromFullRead, S as compileJsonlQuery, T as MAX_QUERY_ROWS, U as resolveDataDir, V as isContainedInRoot, W as resolveTemplatePath, Y as COLLECTION_ROOT_REQUIRED, Z as collectionChangeKey, _ as dedupeByRecordId, a as toDetail, at as localCollectionKey, d as storeFor, dt as setFirestoreAccessor, et as configureCollectionHost, ft as setSharedCollectionsSupport, g as decodeCsvRecordId, h as csvRowToItem, i as resolvePrimaryField, j as resolveCreateItemId, k as listItems, l as collectionWritable, lt as publishCollectionChange, n as discoverCollections, nt as getWorkspaceRoot, o as toSummary, ot as log, p as MAX_CSV_ROWS, pt as sharedCollectionChangePayload, q as BackendUnavailableError, r as loadCollection, rt as hostSupportsSharedCollections, s as CollectionSchemaZ, st as peekWorkspaceRoot, t as acceptParsedSchema, tt as firestoreHandle, u as readOnlyRefusal, ut as setCollectionChangePublisher, v as encodeCsvRecordId, w as DEFAULT_QUERY_ROWS, x as compileCsvQuery, y as normalizeCsvValue, z as projectItemFields } from "../../discovery-B9zdNkgW.js";
4
- import { $ as AuthoredAppZ, A as runQueryOverRows, B as APPS_COLLECTION, C as STORE_UNREADABLE, D as recordFieldProblem, E as compileRecordZ, F as readCustomViewI18n, G as appSlugDoc, H as PUBLIC_CONFIG_DOC, I as readSkillTemplate, J as projectDeploy, K as appStagingPath, L as bindsSubmitterIdentity, M as buildCollectionActionSeedPrompt, N as promptPathsFor, O as runCollectionQuery, P as readCustomViewHtml, Q as APP_ROLES, R as promotedRoleProblems, S as MAX_RECORD_ISSUES, T as validateRecordObject, U as appConfigPath, V as APP_SLUGS_COLLECTION, W as appSchemasPath, X as promoteSchema, Y as projectPublish, Z as stagedRuleConfig, _ as computeCollectionIcon, a as deleteCollection, b as applyMutateAction, c as computeSuccessor, d as isTriggerDue, et as parseAuthoredApp, f as maybeSpawnSuccessor, h as successorId, i as deleteCustomView, j as buildActionSeedPrompt, k as enrichItems, l as daysInMonth, m as resolveEvery, n as MAX_UNSELECTIVE_ITEMS, o as deleteCollectionRefusalMessage, p as parseCivil, q as projectApp, r as makeManageCollectionTool, s as advanceTriggerDate, t as MAX_SCHEMA_ISSUES, u as formatCivil, v as buildWorkspaceOntology, w as validateCollectionRecords, x as firstMutateParamProblem, y as schemaRelations, z as publishProblems } from "../../server-DkT40KgR.js";
4
+ import { $ as AuthoredAppZ, A as runQueryOverRows, B as APPS_COLLECTION, C as STORE_UNREADABLE, D as recordFieldProblem, E as compileRecordZ, F as readCustomViewI18n, G as appSlugDoc, H as PUBLIC_CONFIG_DOC, I as readSkillTemplate, J as projectDeploy, K as appStagingPath, L as bindsSubmitterIdentity, M as buildCollectionActionSeedPrompt, N as promptPathsFor, O as runCollectionQuery, P as readCustomViewHtml, Q as APP_ROLES, R as promotedRoleProblems, S as MAX_RECORD_ISSUES, T as validateRecordObject, U as appConfigPath, V as APP_SLUGS_COLLECTION, W as appSchemasPath, X as promoteSchema, Y as projectPublish, Z as stagedRuleConfig, _ as computeCollectionIcon, a as deleteCollection, b as applyMutateAction, c as computeSuccessor, d as isTriggerDue, et as parseAuthoredApp, f as maybeSpawnSuccessor, h as successorId, i as deleteCustomView, j as buildActionSeedPrompt, k as enrichItems, l as daysInMonth, m as resolveEvery, n as MAX_UNSELECTIVE_ITEMS, o as deleteCollectionRefusalMessage, p as parseCivil, q as projectApp, r as makeManageCollectionTool, s as advanceTriggerDate, t as MAX_SCHEMA_ISSUES, u as formatCivil, v as buildWorkspaceOntology, w as validateCollectionRecords, x as firstMutateParamProblem, y as schemaRelations, z as publishProblems } from "../../server-DGjmK9vU.js";
5
5
  import { i as isSafeTemplatePath, n as isSafeCustomViewI18nPath, r as isSafeCustomViewPath, t as isSafeActionTemplatePath } from "../../templatePath-k_WNbL_Q.js";
6
6
  export { APPS_COLLECTION, APP_MANIFEST_FILE, APP_ROLES, APP_SLUGS_COLLECTION, AuthoredAppZ, BackendUnavailableError, COLLECTION_ROOT_REQUIRED, COMPUTED_TYPES, CollectionQueryZ, CollectionSchemaZ, DEFAULT_QUERY_ROWS, MAX_CSV_ROWS, MAX_QUERY_ROWS, MAX_RECORD_ISSUES, MAX_SCHEMA_ISSUES, MAX_UNSELECTIVE_ITEMS, PUBLIC_CONFIG_DOC, SCHEMA_FILE, STORE_UNREADABLE, acceptParsedSchema, advanceTriggerDate, appConfigPath, appManifestReason, appSchemasPath, appSlugDoc, appStagingPath, applyMutateAction, bindsSubmitterIdentity, buildActionSeedPrompt, buildCollectionActionSeedPrompt, buildWorkspaceOntology, canonicalRoot, collectionChangeKey, collectionChangePayload, collectionWritable, compileCsvQuery, compileJsonlQuery, compileRecordZ, computeCollectionIcon, computeSuccessor, configureCollectionHost, csvRowToItem, daysInMonth, decodeCsvRecordId, dedupeByRecordId, deleteCollection, deleteCollectionRefusalMessage, deleteCustomView, deleteItem, discoverCollections, encodeCsvRecordId, enrichItems, firestoreHandle, firstMutateParamProblem, formatCivil, generateItemId, getWorkspaceRoot, hostSupportsSharedCollections, isBackendUnavailable, isContainedInRoot, isRegularFile, isSafeActionTemplatePath, isSafeCustomViewI18nPath, isSafeCustomViewPath, isSafeTemplatePath, isTriggerDue, itemFilePath, listItems, loadAppManifest, loadCollection, localCollectionKey, log, makeManageCollectionTool, maybeSpawnSuccessor, normalizeCsvValue, pageFromFullRead, parseAppManifest, parseAuthoredApp, parseCivil, peekWorkspaceRoot, projectApp, projectDeploy, projectItemFields, projectPublish, promoteSchema, promotedRoleProblems, promptPathsFor, publishCollectionChange, publishProblems, readCustomViewHtml, readCustomViewI18n, readItem, readOnlyRefusal, readSkillTemplate, recordFieldProblem, resolveCreateItemId, resolveDataDir, resolveEvery, resolvePrimaryField, resolveTemplatePath, runCollectionQuery, runQueryOverRows, safeRecordId, safeSlugName, schemaRelations, setCollectionChangePublisher, setFirestoreAccessor, setSharedCollectionsSupport, sharedCollectionChangePayload, sharedItemsPath, stagedRuleConfig, storeFor, successorId, toDetail, toSummary, validateCollectionRecords, validateRecordObject, writeItem };
@@ -36,6 +36,7 @@ declare const CollectionConfigZ: z.ZodObject<{
36
36
  immutable: z.ZodOptional<z.ZodBoolean>;
37
37
  submitOnly: z.ZodOptional<z.ZodBoolean>;
38
38
  assigneeField: z.ZodOptional<z.ZodString>;
39
+ mirrorOf: z.ZodOptional<z.ZodString>;
39
40
  peerVisibility: z.ZodOptional<z.ZodEnum<{
40
41
  public: "public";
41
42
  hidden: "hidden";
@@ -65,11 +66,20 @@ declare const SubmitZ: z.ZodObject<{
65
66
  createFields: z.ZodArray<z.ZodString>;
66
67
  initialStatus: z.ZodOptional<z.ZodString>;
67
68
  idFrom: z.ZodOptional<z.ZodEnum<{
69
+ field: "field";
68
70
  auto: "auto";
69
71
  "auth.uid": "auth.uid";
70
72
  "auth.uid+field": "auth.uid+field";
71
73
  }>>;
72
74
  idField: z.ZodOptional<z.ZodString>;
75
+ idIn: z.ZodOptional<z.ZodObject<{
76
+ collection: z.ZodString;
77
+ where: z.ZodOptional<z.ZodObject<{
78
+ field: z.ZodString;
79
+ equals: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>;
80
+ }, z.core.$strict>>;
81
+ }, z.core.$strict>>;
82
+ mirror: z.ZodOptional<z.ZodString>;
73
83
  validate: z.ZodOptional<z.ZodObject<{
74
84
  required: z.ZodOptional<z.ZodArray<z.ZodString>>;
75
85
  keyFields: z.ZodOptional<z.ZodArray<z.ZodObject<{
@@ -85,6 +95,11 @@ declare const SubmitZ: z.ZodObject<{
85
95
  collection: z.ZodString;
86
96
  field: z.ZodString;
87
97
  }, z.core.$strict>>;
98
+ untilField: z.ZodOptional<z.ZodObject<{
99
+ ref: z.ZodString;
100
+ collection: z.ZodString;
101
+ field: z.ZodString;
102
+ }, z.core.$strict>>;
88
103
  }, z.core.$strict>>;
89
104
  stampField: z.ZodOptional<z.ZodString>;
90
105
  selfUpdate: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString>>>;
@@ -123,6 +138,7 @@ export declare const AuthoredAppZ: z.ZodObject<{
123
138
  immutable: z.ZodOptional<z.ZodBoolean>;
124
139
  submitOnly: z.ZodOptional<z.ZodBoolean>;
125
140
  assigneeField: z.ZodOptional<z.ZodString>;
141
+ mirrorOf: z.ZodOptional<z.ZodString>;
126
142
  peerVisibility: z.ZodOptional<z.ZodEnum<{
127
143
  public: "public";
128
144
  hidden: "hidden";
@@ -146,6 +162,10 @@ export declare const AuthoredAppZ: z.ZodObject<{
146
162
  public: z.ZodOptional<z.ZodObject<{
147
163
  enabled: z.ZodOptional<z.ZodBoolean>;
148
164
  read: z.ZodOptional<z.ZodArray<z.ZodString>>;
165
+ view: z.ZodOptional<z.ZodObject<{
166
+ path: z.ZodString;
167
+ collections: z.ZodArray<z.ZodString>;
168
+ }, z.core.$strict>>;
149
169
  submit: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
150
170
  auth: z.ZodEnum<{
151
171
  none: "none";
@@ -156,11 +176,20 @@ export declare const AuthoredAppZ: z.ZodObject<{
156
176
  createFields: z.ZodArray<z.ZodString>;
157
177
  initialStatus: z.ZodOptional<z.ZodString>;
158
178
  idFrom: z.ZodOptional<z.ZodEnum<{
179
+ field: "field";
159
180
  auto: "auto";
160
181
  "auth.uid": "auth.uid";
161
182
  "auth.uid+field": "auth.uid+field";
162
183
  }>>;
163
184
  idField: z.ZodOptional<z.ZodString>;
185
+ idIn: z.ZodOptional<z.ZodObject<{
186
+ collection: z.ZodString;
187
+ where: z.ZodOptional<z.ZodObject<{
188
+ field: z.ZodString;
189
+ equals: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>;
190
+ }, z.core.$strict>>;
191
+ }, z.core.$strict>>;
192
+ mirror: z.ZodOptional<z.ZodString>;
164
193
  validate: z.ZodOptional<z.ZodObject<{
165
194
  required: z.ZodOptional<z.ZodArray<z.ZodString>>;
166
195
  keyFields: z.ZodOptional<z.ZodArray<z.ZodObject<{
@@ -176,6 +205,11 @@ export declare const AuthoredAppZ: z.ZodObject<{
176
205
  collection: z.ZodString;
177
206
  field: z.ZodString;
178
207
  }, z.core.$strict>>;
208
+ untilField: z.ZodOptional<z.ZodObject<{
209
+ ref: z.ZodString;
210
+ collection: z.ZodString;
211
+ field: z.ZodString;
212
+ }, z.core.$strict>>;
179
213
  }, z.core.$strict>>;
180
214
  stampField: z.ZodOptional<z.ZodString>;
181
215
  selfUpdate: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString>>>;
@@ -80,6 +80,22 @@ export interface PublishedConfigDoc extends Record<string, unknown> {
80
80
  enabled: boolean;
81
81
  read: string[];
82
82
  submit: Record<string, Record<string, unknown>>;
83
+ /** That the app HAS a published view, and which datasets it asked for.
84
+ *
85
+ * This is the only place the public page can learn it: the rules' app
86
+ * document is reader-only and deliberately carries no view, and the HTML
87
+ * itself lands in a SEPARATE document (`config/view`) because a 1 MiB limit
88
+ * applies per document. Omitted here, the page has the HTML and no idea
89
+ * what to send it — the feature does not work at all.
90
+ *
91
+ * The authored PATH is deliberately not published. It names a file in the
92
+ * author's repository, which the browser cannot use and which nobody should
93
+ * be handed on a world-readable document; what the page needs is the
94
+ * dataset list, and `publishedAt` beside it is what pins this declaration
95
+ * to the HTML published in the same run. */
96
+ view?: {
97
+ collections: string[];
98
+ };
83
99
  publishedAt: number;
84
100
  }
85
101
  /** Everything one publish writes. Separate documents because they live at
@@ -4,7 +4,7 @@ const require_itemId = require("../itemId-Dzrr3vs5.cjs");
4
4
  const require_promptSafety = require("../promptSafety-CWqYq-NS.cjs");
5
5
  require("../collection/index.cjs");
6
6
  const require_discovery = require("../discovery-BsXiDZBR.cjs");
7
- const require_server = require("../server-BIKy55wo.cjs");
7
+ const require_server = require("../server-_g1rW-Uc.cjs");
8
8
  const require_notifier = require("../notifier-DZJj0sOh.cjs");
9
9
  let node_fs_promises = require("node:fs/promises");
10
10
  //#region src/collection-watchers/config.ts
@@ -3,7 +3,7 @@ import { B as fieldText, x as isValidCollectionName } from "../itemId-DfTm08jm.j
3
3
  import { E as whenMatches, f as itemIsDone } from "../promptSafety-CSdyp7RF.js";
4
4
  import "../collection/index.js";
5
5
  import { H as itemFilePath, Q as collectionChangePayload, d as storeFor, lt as publishCollectionChange, n as discoverCollections, pt as sharedCollectionChangePayload, r as loadCollection, st as peekWorkspaceRoot, tt as firestoreHandle } from "../discovery-B9zdNkgW.js";
6
- import { d as isTriggerDue, f as maybeSpawnSuccessor } from "../server-DkT40KgR.js";
6
+ import { d as isTriggerDue, f as maybeSpawnSuccessor } from "../server-DGjmK9vU.js";
7
7
  import { d as publish, m as updateForPlugin, n as clear, s as listAll } from "../notifier-DhnwR82U.js";
8
8
  import { access } from "node:fs/promises";
9
9
  //#region src/collection-watchers/config.ts
@@ -5,7 +5,7 @@ const require_root = require("../../root-rPH6FGDT.cjs");
5
5
  const require_itemId = require("../../itemId-Dzrr3vs5.cjs");
6
6
  const require_project = require("../../project-C1ep9pvo.cjs");
7
7
  const require_discovery = require("../../discovery-BsXiDZBR.cjs");
8
- const require_server = require("../../server-BIKy55wo.cjs");
8
+ const require_server = require("../../server-_g1rW-Uc.cjs");
9
9
  const require_feeds_paths = require("../paths.cjs");
10
10
  const require_ingestTypes = require("../../ingestTypes-B4XfrUoq.cjs");
11
11
  const require_notifier = require("../../notifier-DZJj0sOh.cjs");
@@ -3,7 +3,7 @@ import { t as canonicalRoot } from "../../root-BMroU_mB.js";
3
3
  import { F as INGEST_KINDS, P as FEED_SCHEDULES } from "../../itemId-DfTm08jm.js";
4
4
  import { t as mergeIntoExisting } from "../../project-B0j_Vf_Q.js";
5
5
  import { K as safeSlugName, U as resolveDataDir, _t as createHostSlot, d as storeFor, gt as createForwardingLogger, k as listItems, n as discoverCollections } from "../../discovery-B9zdNkgW.js";
6
- import { I as readSkillTemplate, M as buildCollectionActionSeedPrompt, N as promptPathsFor } from "../../server-DkT40KgR.js";
6
+ import { I as readSkillTemplate, M as buildCollectionActionSeedPrompt, N as promptPathsFor } from "../../server-DGjmK9vU.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-B312BwXg.js";
9
9
  import { d as publish, n as clear } from "../../notifier-DhnwR82U.js";