@mulmoclaude/core 4.9.4 → 5.0.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 +6 -3
- package/assets/helps/custom-view-remote.md +14 -4
- package/assets/helps/custom-view.md +31 -10
- package/assets/helps/google-calendar-collection.md +23 -4
- package/dist/collection/core/schemaZ.d.ts +40 -11
- package/dist/collection/core/viewChatPolicy.d.ts +13 -0
- package/dist/collection/index.cjs +17 -0
- package/dist/collection/index.cjs.map +1 -1
- package/dist/collection/index.d.ts +1 -0
- package/dist/collection/index.js +17 -1
- package/dist/collection/index.js.map +1 -1
- package/dist/collection/registry/server/index.cjs +2 -2
- package/dist/collection/registry/server/index.js +2 -2
- package/dist/collection/server/index.cjs +2 -2
- package/dist/collection/server/index.js +2 -2
- package/dist/collection-watchers/index.cjs +2 -2
- package/dist/collection-watchers/index.js +2 -2
- package/dist/{discovery-BkIKvdh0.js → discovery-CBjI1lx9.js} +11 -4
- package/dist/{discovery-BkIKvdh0.js.map → discovery-CBjI1lx9.js.map} +1 -1
- package/dist/{discovery-tvFo-bUJ.cjs → discovery-DCMW05Bp.cjs} +11 -4
- package/dist/{discovery-tvFo-bUJ.cjs.map → discovery-DCMW05Bp.cjs.map} +1 -1
- package/dist/feeds/server/index.cjs +2 -2
- package/dist/feeds/server/index.js +2 -2
- package/dist/google/calendar.d.ts +21 -0
- package/dist/google/index.cjs +35 -10
- package/dist/google/index.cjs.map +1 -1
- package/dist/google/index.js +35 -10
- package/dist/google/index.js.map +1 -1
- package/dist/google/pushPlan.d.ts +8 -4
- package/dist/remote-view/index.cjs +9 -4
- package/dist/remote-view/index.cjs.map +1 -1
- package/dist/remote-view/index.d.ts +4 -1
- package/dist/remote-view/index.js +9 -4
- package/dist/remote-view/index.js.map +1 -1
- package/dist/{server-Dk9x1VLG.js → server-BMZ_BcPH.js} +2 -2
- package/dist/{server-Dk9x1VLG.js.map → server-BMZ_BcPH.js.map} +1 -1
- package/dist/{server-Div1i_k5.cjs → server-rA9FSkl2.cjs} +2 -2
- package/dist/{server-Div1i_k5.cjs.map → server-rA9FSkl2.cjs.map} +1 -1
- package/package.json +3 -3
|
@@ -4,8 +4,8 @@ const require_dist = require("../../dist-Gj7ygaW2.cjs");
|
|
|
4
4
|
const require_root = require("../../root-BvwBUcol.cjs");
|
|
5
5
|
const require_itemId = require("../../itemId-CGT2J7YK.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-DCMW05Bp.cjs");
|
|
8
|
+
const require_server = require("../../server-rA9FSkl2.cjs");
|
|
9
9
|
const require_feeds_paths = require("../paths.cjs");
|
|
10
10
|
const require_ingestTypes = require("../../ingestTypes-DsVH9BYy.cjs");
|
|
11
11
|
const require_notifier = require("../../notifier-B65Mvngb.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-BcS4-Kge.js";
|
|
3
3
|
import { G as INGEST_KINDS, W as FEED_SCHEDULES } from "../../itemId-4P9S_ehz.js";
|
|
4
4
|
import { t as mergeIntoExisting } from "../../project-B0j_Vf_Q.js";
|
|
5
|
-
import { W as resolveDataDir, _t as createForwardingLogger, d as storeFor, k as listItems, n as discoverCollections, q as safeSlugName, vt as createHostSlot } from "../../discovery-
|
|
6
|
-
import { F as buildCollectionActionSeedPrompt, I as promptPathsFor, z as readSkillTemplate } from "../../server-
|
|
5
|
+
import { W as resolveDataDir, _t as createForwardingLogger, d as storeFor, k as listItems, n as discoverCollections, q as safeSlugName, vt as createHostSlot } from "../../discovery-CBjI1lx9.js";
|
|
6
|
+
import { F as buildCollectionActionSeedPrompt, I as promptPathsFor, z as readSkillTemplate } from "../../server-BMZ_BcPH.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-GkG7bJdB.js";
|
|
9
9
|
import { d as publish, n as clear } from "../../notifier-vAp5t6wL.js";
|
|
@@ -96,6 +96,27 @@ export interface CalendarEventSummary {
|
|
|
96
96
|
* belongs to whatever displays it. */
|
|
97
97
|
description: string;
|
|
98
98
|
location: string;
|
|
99
|
+
/** The series an expanded instance belongs to, "" for a one-off. The sync
|
|
100
|
+
* expands recurrences, so a weekly meeting arrives once per occurrence; with
|
|
101
|
+
* no key pointing back, one edit to the series is indistinguishable from a
|
|
102
|
+
* batch of unrelated changes. */
|
|
103
|
+
recurringEventId: string;
|
|
104
|
+
/** Where an expanded instance sat BEFORE anyone moved it, so a dragged
|
|
105
|
+
* occurrence reads as a move rather than a delete plus an insert. Flattened
|
|
106
|
+
* to the instant like `start`/`end`, so an all-day series yields the date. */
|
|
107
|
+
originalStartTime: string;
|
|
108
|
+
/** Google's last-modified time (RFC3339). Google sets it on every write, so
|
|
109
|
+
* it is readable and never pushable. */
|
|
110
|
+
updated: string;
|
|
111
|
+
/** "transparent" when the event does not consume the attendee's time. Google
|
|
112
|
+
* omits the default, so "" reads as opaque. */
|
|
113
|
+
transparency: string;
|
|
114
|
+
/** Which KIND of entry this is, and how the ones Google generates get kept out
|
|
115
|
+
* of a mirror. Google's whole set: "default", "birthday", "focusTime",
|
|
116
|
+
* "fromGmail", "outOfOffice", "workingLocation". */
|
|
117
|
+
eventType: string;
|
|
118
|
+
/** Google Meet URL, "" when nothing is attached. */
|
|
119
|
+
hangoutLink: string;
|
|
99
120
|
}
|
|
100
121
|
export interface CalendarSummary {
|
|
101
122
|
id: string;
|
package/dist/google/index.cjs
CHANGED
|
@@ -7,7 +7,7 @@ const require_root = require("../root-BvwBUcol.cjs");
|
|
|
7
7
|
const require_utils_fetch = require("../utils/fetch.cjs");
|
|
8
8
|
const require_itemId = require("../itemId-CGT2J7YK.cjs");
|
|
9
9
|
const require_project = require("../project-C1ep9pvo.cjs");
|
|
10
|
-
const require_discovery = require("../discovery-
|
|
10
|
+
const require_discovery = require("../discovery-DCMW05Bp.cjs");
|
|
11
11
|
const require_paths = require("../paths-C8-jxR0s.cjs");
|
|
12
12
|
let node_fs = require("node:fs");
|
|
13
13
|
let node_path = require("node:path");
|
|
@@ -633,7 +633,13 @@ var toEventSummary = (value) => {
|
|
|
633
633
|
status: stringField(record, "status"),
|
|
634
634
|
colorId: stringField(record, "colorId"),
|
|
635
635
|
description: stringField(record, "description"),
|
|
636
|
-
location: stringField(record, "location")
|
|
636
|
+
location: stringField(record, "location"),
|
|
637
|
+
recurringEventId: stringField(record, "recurringEventId"),
|
|
638
|
+
originalStartTime: eventTime$1(record.originalStartTime),
|
|
639
|
+
updated: stringField(record, "updated"),
|
|
640
|
+
transparency: stringField(record, "transparency"),
|
|
641
|
+
eventType: stringField(record, "eventType"),
|
|
642
|
+
hangoutLink: stringField(record, "hangoutLink")
|
|
637
643
|
};
|
|
638
644
|
};
|
|
639
645
|
var toCalendarSummary = (value) => {
|
|
@@ -1439,10 +1445,14 @@ function toCollectionRecord(event, map, primaryKey, fields) {
|
|
|
1439
1445
|
}
|
|
1440
1446
|
//#endregion
|
|
1441
1447
|
//#region src/google/pushPlan.ts
|
|
1442
|
-
/** The event fields Google lets a caller write
|
|
1443
|
-
* read
|
|
1444
|
-
*
|
|
1445
|
-
* invalidating it.
|
|
1448
|
+
/** The event fields Google lets a caller write — a SUBSET of what the pull can
|
|
1449
|
+
* read (`GOOGLE_CALENDAR_SOURCE_FIELDS`). A column mapped to one of the
|
|
1450
|
+
* pull-only fields is ignored here rather than rejected: the mapping was
|
|
1451
|
+
* authored for the pull, and a push has no business invalidating it.
|
|
1452
|
+
*
|
|
1453
|
+
* `satisfies` is what keeps the two lists honest. A field pushable but not
|
|
1454
|
+
* pullable could never have its baseline rebuilt from a pull, so "unchanged"
|
|
1455
|
+
* would stop meaning anything — this fails the build instead of shipping. */
|
|
1446
1456
|
var PUSHABLE_SOURCE_FIELDS = [
|
|
1447
1457
|
"summary",
|
|
1448
1458
|
"start",
|
|
@@ -1500,13 +1510,28 @@ var comparableText = (value) => {
|
|
|
1500
1510
|
const text = fieldText(value);
|
|
1501
1511
|
return SECONDLESS_DATETIME_RE.test(text) ? `${text}${WHOLE_MINUTE}` : text;
|
|
1502
1512
|
};
|
|
1513
|
+
/** The event fields a baseline does NOT carry, because none of them is pushable
|
|
1514
|
+
* — the baseline exists to answer "did the local side change a field we could
|
|
1515
|
+
* send?", and a pull-only field is by definition not one.
|
|
1516
|
+
*
|
|
1517
|
+
* Typed as the exact complement of `ShadowEvent` + `id`, so a field added to
|
|
1518
|
+
* `CalendarEventSummary` without being made pushable must be zeroed here or
|
|
1519
|
+
* the build fails. */
|
|
1520
|
+
var UNPUSHABLE_EVENT_FIELDS = {
|
|
1521
|
+
htmlLink: "",
|
|
1522
|
+
status: "",
|
|
1523
|
+
recurringEventId: "",
|
|
1524
|
+
originalStartTime: "",
|
|
1525
|
+
updated: "",
|
|
1526
|
+
transparency: "",
|
|
1527
|
+
eventType: "",
|
|
1528
|
+
hangoutLink: ""
|
|
1529
|
+
};
|
|
1503
1530
|
/** A baseline shaped as the event it came from, so the comparison can run
|
|
1504
|
-
* through the very projection that wrote the record.
|
|
1505
|
-
* never pushable, so their absence from the baseline cannot matter. */
|
|
1531
|
+
* through the very projection that wrote the record. */
|
|
1506
1532
|
var asEventSummary = (eventId, shadow) => ({
|
|
1507
1533
|
id: eventId,
|
|
1508
|
-
|
|
1509
|
-
status: "",
|
|
1534
|
+
...UNPUSHABLE_EVENT_FIELDS,
|
|
1510
1535
|
...shadow
|
|
1511
1536
|
});
|
|
1512
1537
|
/** What the record WOULD hold if nobody had edited it since the baseline.
|