@mulmoclaude/core 1.9.0 → 1.11.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/error-recovery.md +85 -0
- package/assets/helps/google-calendar-collection.md +41 -18
- package/dist/collection/core/schemaZ.d.ts +10 -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-_fjsluLx.js → discovery-B4CZvrXR.js} +11 -3
- package/dist/{discovery-_fjsluLx.js.map → discovery-B4CZvrXR.js.map} +1 -1
- package/dist/{discovery-DYcR83qx.cjs → discovery-NRy3tyUA.cjs} +11 -3
- package/dist/{discovery-DYcR83qx.cjs.map → discovery-NRy3tyUA.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 +9 -0
- package/dist/google/calendarLock.d.ts +16 -0
- package/dist/google/calendarPushState.d.ts +1 -1
- package/dist/google/collectionProjection.d.ts +18 -0
- package/dist/google/collectionPush.d.ts +62 -0
- package/dist/google/collectionSync.d.ts +51 -23
- package/dist/google/index.cjs +833 -567
- package/dist/google/index.cjs.map +1 -1
- package/dist/google/index.d.ts +4 -2
- package/dist/google/index.js +825 -568
- package/dist/google/index.js.map +1 -1
- package/dist/google/pushPlan.d.ts +1 -1
- package/dist/remote-host/health.d.ts +13 -0
- package/dist/remote-host/index.cjs +11 -30
- package/dist/remote-host/index.d.ts +2 -0
- package/dist/remote-host/index.js +2 -24
- package/dist/remote-host/server/index.cjs +223 -8
- package/dist/remote-host/server/index.cjs.map +1 -1
- package/dist/remote-host/server/index.d.ts +4 -0
- package/dist/remote-host/server/index.js +214 -5
- package/dist/remote-host/server/index.js.map +1 -1
- package/dist/remote-host/server/presenceProbe.d.ts +23 -0
- package/dist/remote-host/server/resilientRunner.d.ts +24 -0
- package/dist/remote-host-D_BRFHcI.js +36 -0
- package/dist/remote-host-D_BRFHcI.js.map +1 -0
- package/dist/remote-host-DkDVxNim.cjs +95 -0
- package/dist/remote-host-DkDVxNim.cjs.map +1 -0
- package/dist/{server-l4TZ5Lbf.cjs → server-7U-3DE2e.cjs} +2 -2
- package/dist/{server-l4TZ5Lbf.cjs.map → server-7U-3DE2e.cjs.map} +1 -1
- package/dist/{server-BlIrtGKl.js → server-DdyIvFhz.js} +2 -2
- package/dist/{server-BlIrtGKl.js.map → server-DdyIvFhz.js.map} +1 -1
- package/package.json +5 -5
- package/dist/remote-host/index.cjs.map +0 -1
- package/dist/remote-host/index.js.map +0 -1
|
@@ -225,6 +225,91 @@ shipped registry repo's README. Common rejections:
|
|
|
225
225
|
- `name` reuses the reserved value `official`.
|
|
226
226
|
- `name` doesn't match `[A-Za-z0-9][A-Za-z0-9_-]{0,31}`.
|
|
227
227
|
|
|
228
|
+
## A hand-placed custom role never appears in the list
|
|
229
|
+
|
|
230
|
+
### Symptoms
|
|
231
|
+
|
|
232
|
+
- The user put a file in `config/roles/` themselves (not via Settings →
|
|
233
|
+
Roles / `manageRoles`) and the role is absent from the role list.
|
|
234
|
+
- Nothing failed in tool output — `manageRoles` with `action: "list"`
|
|
235
|
+
simply doesn't include it.
|
|
236
|
+
|
|
237
|
+
### Cause + fix
|
|
238
|
+
|
|
239
|
+
The loader reads **`config/roles/<id>.json` only**, and a file it cannot
|
|
240
|
+
use is skipped rather than fatal — so one broken file can't take the
|
|
241
|
+
whole list down. The reason is in the server log as a `[roles]` warning
|
|
242
|
+
naming the file:
|
|
243
|
+
|
|
244
|
+
- `role file is not valid JSON, skipping` — trailing comma, single
|
|
245
|
+
quotes, unquoted key.
|
|
246
|
+
- `role file does not match the role schema, skipping` — the `issues`
|
|
247
|
+
field names each field, e.g. `icon: Invalid input: expected string,
|
|
248
|
+
received undefined`. All of `id`, `name`, `icon`, `prompt`,
|
|
249
|
+
`availablePlugins` are required; `availablePlugins` must be an array
|
|
250
|
+
even for one entry.
|
|
251
|
+
- `role file is empty, skipping` — zero-length or whitespace only.
|
|
252
|
+
- `role file could not be read, skipping` — permissions, or the path is
|
|
253
|
+
a directory.
|
|
254
|
+
- `role file disappeared while loading, skipping` — the file was renamed
|
|
255
|
+
or deleted while the list was being read, or it is a broken symlink.
|
|
256
|
+
Re-running the load is enough if the file is there now.
|
|
257
|
+
- `ignoring entries that are not .json files` — a `.md` / `.jsonc` /
|
|
258
|
+
`.json.txt` file is never read as a role.
|
|
259
|
+
|
|
260
|
+
Ask the user for that warning line (or the file's contents) rather than
|
|
261
|
+
guessing which of the six it is. Writing the role through
|
|
262
|
+
`manageRoles` instead sidesteps all of them — it serializes the role, so
|
|
263
|
+
the file is always valid.
|
|
264
|
+
|
|
265
|
+
## A custom role is in the list but delete / update says it doesn't exist
|
|
266
|
+
|
|
267
|
+
### Symptoms
|
|
268
|
+
|
|
269
|
+
- `manageRoles` with `action: "list"` includes the role, but `delete` or
|
|
270
|
+
`update` on that same id returns `Role '<id>' not found.`
|
|
271
|
+
- Or: `Cannot delete built-in roles.` for a role the user created.
|
|
272
|
+
- Or: the user edited a role and the change had no effect, because
|
|
273
|
+
another file with the same id is the one that id resolves to.
|
|
274
|
+
|
|
275
|
+
### Cause + fix
|
|
276
|
+
|
|
277
|
+
The list shows the `id` from **inside** the file, while delete / update
|
|
278
|
+
address the role by its **file name** — so `config/roles/designer.json`
|
|
279
|
+
containing `"id": "myrole"` is listed as `myrole` but delete / update
|
|
280
|
+
only accept `designer`. Two `[roles]` warnings in the server log name
|
|
281
|
+
it:
|
|
282
|
+
|
|
283
|
+
- `role id does not match its file name` — `fileName` and `id` are both in
|
|
284
|
+
the warning. Which repair is safe depends on which side is malformed:
|
|
285
|
+
role ids must match `[a-zA-Z0-9_-]+`, and nothing enforces that on a
|
|
286
|
+
hand-placed file. **Follow the variant the warning gives you** rather
|
|
287
|
+
than picking a repair yourself — the wrong one can leave the role
|
|
288
|
+
reachable under no name at all:
|
|
289
|
+
- no extra clause — both names are usable. Rename the file to
|
|
290
|
+
`<id>.json`, or change the `id` to the file's own name. Until then the
|
|
291
|
+
**file name** is a working handle: `delete <file name>` removes it.
|
|
292
|
+
- `… the file name is not a usable role id either` — e.g.
|
|
293
|
+
`my role.json`, rejected as `Invalid role id 'my role'.` Neither name
|
|
294
|
+
reaches the role. Renaming is the only fix.
|
|
295
|
+
- `… the id is not a usable role id` — the reverse, e.g. `"id": "my
|
|
296
|
+
role"` in `designer.json`. `delete designer` still works, and renaming
|
|
297
|
+
to `my role.json` would take that away. Change the `id`.
|
|
298
|
+
- `… neither is a usable role id` — pick one id that matches the pattern
|
|
299
|
+
and use it for the file name and the `id` together.
|
|
300
|
+
- an inner `id` equal to a built-in role's id — the file also shadows
|
|
301
|
+
that built-in, and `delete` on the listed id refuses it as built-in.
|
|
302
|
+
Renaming is the way out.
|
|
303
|
+
- `more than one role file declares the same id` — both files load and
|
|
304
|
+
both appear in the list; `used` is the one that id resolves to
|
|
305
|
+
(readdir order, not a choice the user made) and `ignored` lists the
|
|
306
|
+
rest. Give each role a distinct id, or remove the extra file.
|
|
307
|
+
|
|
308
|
+
Ask the user for the warning line rather than guessing which of the two
|
|
309
|
+
it is. Both only happen to hand-placed or hand-renamed files:
|
|
310
|
+
`manageRoles` writes `config/roles/<role.id>.json`, so file name and
|
|
311
|
+
`id` always agree.
|
|
312
|
+
|
|
228
313
|
## Marp slide PDF — empty / image / font issues
|
|
229
314
|
|
|
230
315
|
### Symptoms
|
|
@@ -10,17 +10,22 @@ for deleting events, use the `google` tool — see
|
|
|
10
10
|
[The `google` tool](google.md). There is no bundled calendar collection: you
|
|
11
11
|
author the schema when the user asks for one.
|
|
12
12
|
|
|
13
|
-
## Both directions
|
|
13
|
+
## Both directions
|
|
14
14
|
|
|
15
15
|
| Direction | How | When it runs |
|
|
16
16
|
| --- | --- | --- |
|
|
17
17
|
| Google → collection | the `googleCalendar` block | hourly, on creation, and on the **Sync** button |
|
|
18
|
-
| collection → Google | the **Push to Google** button
|
|
18
|
+
| collection → Google | the **Push to Google** button | whenever the user clicks it |
|
|
19
|
+
| collection → Google | `"autoPush": true` in the block | hourly, immediately before each pull |
|
|
19
20
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
21
|
+
When a user asks for "two-way sync", `autoPush` is the answer: set it and each
|
|
22
|
+
scheduled run pushes local edits up and then pulls Google's changes down, as one
|
|
23
|
+
cycle. Without it the pull is automatic and the push is a button they must
|
|
24
|
+
remember to press — which is why the order used to matter so much.
|
|
25
|
+
|
|
26
|
+
It is **opt-in and off by default**, and that is deliberate: a push writes to a
|
|
27
|
+
calendar other people may be reading, so turning it on is the user's call. Ask
|
|
28
|
+
before you add it.
|
|
24
29
|
|
|
25
30
|
## Requirements
|
|
26
31
|
|
|
@@ -45,7 +50,8 @@ it isn't, sync silently does nothing until they link it in settings.
|
|
|
45
50
|
|
|
46
51
|
"googleCalendar": {
|
|
47
52
|
"calendarId": "primary",
|
|
48
|
-
"map": { "title": "summary", "on": "start", "until": "end" }
|
|
53
|
+
"map": { "title": "summary", "on": "start", "until": "end" },
|
|
54
|
+
"autoPush": true
|
|
49
55
|
}
|
|
50
56
|
}
|
|
51
57
|
```
|
|
@@ -58,9 +64,20 @@ it isn't, sync silently does nothing until they link it in settings.
|
|
|
58
64
|
names suit the collection; the map absorbs the difference. Map at least one
|
|
59
65
|
field: an empty map syncs records that carry only the event id, so the user
|
|
60
66
|
would see rows with no content.
|
|
67
|
+
- `autoPush` — push local edits on the sync schedule, just before each pull.
|
|
68
|
+
Omit it (the default) and the push stays a button. See "Both directions".
|
|
69
|
+
|
|
70
|
+
Mappable event fields: `summary`, `start`, `end`, `description`, `location`,
|
|
71
|
+
`htmlLink`, `colorId`, `status`.
|
|
72
|
+
|
|
73
|
+
`description` is the event body, and Google stores limited **HTML** in it. It is
|
|
74
|
+
kept verbatim — mirroring it through a plain-text field and pushing it back would
|
|
75
|
+
strip the user's formatting. Give it a `text` field, and do not "clean it up" on
|
|
76
|
+
the way in.
|
|
61
77
|
|
|
62
|
-
|
|
63
|
-
`
|
|
78
|
+
Mapping a column the user already filled by hand (a `notes` column, say) onto
|
|
79
|
+
`description` means the next push sends that text to Google. That is usually what
|
|
80
|
+
they want, but say so before you write the map.
|
|
64
81
|
|
|
65
82
|
## The primary field is the event id
|
|
66
83
|
|
|
@@ -82,8 +99,10 @@ the calendar day view then draws each record as a proportional time block.
|
|
|
82
99
|
|
|
83
100
|
## What sync does
|
|
84
101
|
|
|
85
|
-
- New or edited events are written, keyed by event id
|
|
86
|
-
|
|
102
|
+
- New or edited events are written, keyed by event id. Only the mapped columns
|
|
103
|
+
are overwritten: a column the map does not name (a local note the user keeps
|
|
104
|
+
next to the event) survives the pull. The flip side is that a field you REMOVE
|
|
105
|
+
from `map` keeps its last synced value rather than disappearing.
|
|
87
106
|
- Events deleted in Google are **deleted** from the collection.
|
|
88
107
|
- Only what changed since the last run is fetched, so a big calendar stays
|
|
89
108
|
cheap after the first sync.
|
|
@@ -100,10 +119,10 @@ them like any other.
|
|
|
100
119
|
The collection view has a **Push to Google** button next to Sync. It creates
|
|
101
120
|
events for records added locally and updates events for records edited locally.
|
|
102
121
|
|
|
103
|
-
**Order matters
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
122
|
+
**Order matters when the push is manual.** A pull overwrites a locally edited
|
|
123
|
+
record as soon as Google reports any change to that event, so: push first, then
|
|
124
|
+
sync. Syncing first can discard the edit that was waiting to be pushed. This is
|
|
125
|
+
exactly the trap `autoPush` closes — it runs the two in that order for the user.
|
|
107
126
|
|
|
108
127
|
What the button does and deliberately does not do:
|
|
109
128
|
|
|
@@ -115,9 +134,13 @@ What the button does and deliberately does not do:
|
|
|
115
134
|
The count is reported so the user knows it was skipped; deleting for real is
|
|
116
135
|
the `google` tool's `calendarDeleteEvent`, after confirming with them.
|
|
117
136
|
- **Skips a record edited on both sides** and reports it, rather than picking a
|
|
118
|
-
winner. The user resolves it by editing one side to match.
|
|
119
|
-
|
|
120
|
-
|
|
137
|
+
winner. The user resolves it by editing one side to match. Under `autoPush`
|
|
138
|
+
the pull that follows leaves that record alone too, so the local edit is not
|
|
139
|
+
destroyed while it waits — the cost is that the record stays behind Google
|
|
140
|
+
until someone resolves it, and the host logs which records those are.
|
|
141
|
+
- Pushes `summary`, `start`, `end`, `description`, `location` and `colorId` —
|
|
142
|
+
everything the pull can read except `htmlLink` and `status`, which are
|
|
143
|
+
read-only in Google, so a column mapped to either is ignored.
|
|
121
144
|
|
|
122
145
|
Reasons a record can be reported as skipped:
|
|
123
146
|
|
|
@@ -504,7 +504,7 @@ export declare const AgentIngestZ: z.ZodObject<{
|
|
|
504
504
|
/** The Google event fields a collection may pull from. `id` is absent on
|
|
505
505
|
* purpose — it always lands in the primary field, since upsert-by-event-id
|
|
506
506
|
* is what makes the sync idempotent. */
|
|
507
|
-
export declare const GOOGLE_CALENDAR_SOURCE_FIELDS: readonly ["summary", "start", "end", "htmlLink", "colorId", "status"];
|
|
507
|
+
export declare const GOOGLE_CALENDAR_SOURCE_FIELDS: readonly ["summary", "start", "end", "htmlLink", "colorId", "status", "description", "location"];
|
|
508
508
|
/** Marks a collection as the destination of the LLM-free Google Calendar
|
|
509
509
|
* sync (#2095). `map` is collectionField → Google event field, so the user's
|
|
510
510
|
* collection keeps whatever field names it already uses. */
|
|
@@ -517,7 +517,10 @@ export declare const GoogleCalendarSyncZ: z.ZodObject<{
|
|
|
517
517
|
htmlLink: "htmlLink";
|
|
518
518
|
colorId: "colorId";
|
|
519
519
|
status: "status";
|
|
520
|
+
description: "description";
|
|
521
|
+
location: "location";
|
|
520
522
|
}>>;
|
|
523
|
+
autoPush: z.ZodOptional<z.ZodBoolean>;
|
|
521
524
|
}, z.core.$strip>;
|
|
522
525
|
/** `ingest` is a discriminated union on `kind`: the three declarative
|
|
523
526
|
* retrievers fetch-and-map; `agent` dispatches a hidden worker. Optional on
|
|
@@ -1102,7 +1105,10 @@ declare const CollectionObjectZ: z.ZodObject<{
|
|
|
1102
1105
|
htmlLink: "htmlLink";
|
|
1103
1106
|
colorId: "colorId";
|
|
1104
1107
|
status: "status";
|
|
1108
|
+
description: "description";
|
|
1109
|
+
location: "location";
|
|
1105
1110
|
}>>;
|
|
1111
|
+
autoPush: z.ZodOptional<z.ZodBoolean>;
|
|
1106
1112
|
}, z.core.$strip>>;
|
|
1107
1113
|
dynamicIcon: z.ZodOptional<z.ZodObject<{
|
|
1108
1114
|
source: z.ZodObject<{
|
|
@@ -1578,7 +1584,10 @@ export declare const CollectionSchemaZ: z.ZodPreprocess<z.ZodObject<{
|
|
|
1578
1584
|
htmlLink: "htmlLink";
|
|
1579
1585
|
colorId: "colorId";
|
|
1580
1586
|
status: "status";
|
|
1587
|
+
description: "description";
|
|
1588
|
+
location: "location";
|
|
1581
1589
|
}>>;
|
|
1590
|
+
autoPush: z.ZodOptional<z.ZodBoolean>;
|
|
1582
1591
|
}, z.core.$strip>>;
|
|
1583
1592
|
dynamicIcon: z.ZodOptional<z.ZodObject<{
|
|
1584
1593
|
source: z.ZodObject<{
|
|
@@ -4,9 +4,9 @@ const require_dist = require("../../../dist-pWpC-b04.cjs");
|
|
|
4
4
|
const require_atomic = require("../../../atomic-C_7YpMiM.cjs");
|
|
5
5
|
const require_relPath = require("../../../relPath-CgGi4-Nv.cjs");
|
|
6
6
|
const require_utils_fetch = require("../../../utils/fetch.cjs");
|
|
7
|
-
const require_discovery = require("../../../discovery-
|
|
7
|
+
const require_discovery = require("../../../discovery-NRy3tyUA.cjs");
|
|
8
8
|
const require_templatePath = require("../../../templatePath-27vUZowm.cjs");
|
|
9
|
-
const require_server = require("../../../server-
|
|
9
|
+
const require_server = require("../../../server-7U-3DE2e.cjs");
|
|
10
10
|
const require_skill_bridge_index = require("../../../skill-bridge/index.cjs");
|
|
11
11
|
const require_types = require("../../../types-CNqkLT4M.cjs");
|
|
12
12
|
let node_fs = require("node:fs");
|
|
@@ -2,9 +2,9 @@ import { t as errorMessage } from "../../../dist-Cwk0e12G.js";
|
|
|
2
2
|
import { t as writeFileAtomic } from "../../../atomic-DPpdrJzO.js";
|
|
3
3
|
import { n as toPosixRelPath } from "../../../relPath-DW8MC8VO.js";
|
|
4
4
|
import { fetchWithTimeout } from "../../../utils/fetch.js";
|
|
5
|
-
import { K as collectionsRegistriesConfigPath, U as safeRecordId, X as log, r as loadCollection, s as CollectionSchemaZ, t as acceptParsedSchema } from "../../../discovery-
|
|
5
|
+
import { K as collectionsRegistriesConfigPath, U as safeRecordId, X as log, r as loadCollection, s as CollectionSchemaZ, t as acceptParsedSchema } from "../../../discovery-B4CZvrXR.js";
|
|
6
6
|
import { t as isSafeActionTemplatePath } from "../../../templatePath-k_WNbL_Q.js";
|
|
7
|
-
import { g as ONE_SECOND_MS } from "../../../server-
|
|
7
|
+
import { g as ONE_SECOND_MS } from "../../../server-DdyIvFhz.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";
|
|
10
10
|
import { readFileSync } from "node:fs";
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
const require_calendarGrid = require("../../calendarGrid-CaS9er8i.cjs");
|
|
3
|
-
const require_discovery = require("../../discovery-
|
|
3
|
+
const require_discovery = require("../../discovery-NRy3tyUA.cjs");
|
|
4
4
|
const require_templatePath = require("../../templatePath-27vUZowm.cjs");
|
|
5
|
-
const require_server = require("../../server-
|
|
5
|
+
const require_server = require("../../server-7U-3DE2e.cjs");
|
|
6
6
|
exports.BackendUnavailableError = require_discovery.BackendUnavailableError;
|
|
7
7
|
exports.COMPUTED_TYPES = require_calendarGrid.COMPUTED_TYPES;
|
|
8
8
|
exports.CollectionQueryZ = require_discovery.CollectionQueryZ;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { S as COMPUTED_TYPES } from "../../calendarGrid-CrGxeCOG.js";
|
|
2
|
-
import { A as deleteItem, B as itemFilePath, C as compileCsvQuery, D as MAX_QUERY_ROWS, E as DEFAULT_QUERY_ROWS, F as resolveCreateItemId, H as resolveTemplatePath, I as writeItem, J as getWorkspaceRoot, L as SCHEMA_FILE, M as isRegularFile, N as listItems, O as BackendUnavailableError, P as readItem, Q as setCollectionChangePublisher, R as isContainedInRoot, T as CollectionQueryZ, U as safeRecordId, V as resolveDataDir, W as safeSlugName, X as log, Z as publishCollectionChange, _ as csvRowToItem, a as toDetail, b as encodeCsvRecordId, d as storeFor, h as MAX_CSV_ROWS, i as resolvePrimaryField, j as generateItemId, k as isBackendUnavailable, l as collectionWritable, m as projectItemFields, n as discoverCollections, o as toSummary, p as pageFromFullRead, q as configureCollectionHost, r as loadCollection, s as CollectionSchemaZ, t as acceptParsedSchema, u as readOnlyRefusal, v as decodeCsvRecordId, w as compileJsonlQuery, x as normalizeCsvValue, y as dedupeByRecordId, z as isContainedInWorkspace } from "../../discovery-
|
|
2
|
+
import { A as deleteItem, B as itemFilePath, C as compileCsvQuery, D as MAX_QUERY_ROWS, E as DEFAULT_QUERY_ROWS, F as resolveCreateItemId, H as resolveTemplatePath, I as writeItem, J as getWorkspaceRoot, L as SCHEMA_FILE, M as isRegularFile, N as listItems, O as BackendUnavailableError, P as readItem, Q as setCollectionChangePublisher, R as isContainedInRoot, T as CollectionQueryZ, U as safeRecordId, V as resolveDataDir, W as safeSlugName, X as log, Z as publishCollectionChange, _ as csvRowToItem, a as toDetail, b as encodeCsvRecordId, d as storeFor, h as MAX_CSV_ROWS, i as resolvePrimaryField, j as generateItemId, k as isBackendUnavailable, l as collectionWritable, m as projectItemFields, n as discoverCollections, o as toSummary, p as pageFromFullRead, q as configureCollectionHost, r as loadCollection, s as CollectionSchemaZ, t as acceptParsedSchema, u as readOnlyRefusal, v as decodeCsvRecordId, w as compileJsonlQuery, x as normalizeCsvValue, y as dedupeByRecordId, z as isContainedInWorkspace } from "../../discovery-B4CZvrXR.js";
|
|
3
3
|
import { i as isSafeTemplatePath, n as isSafeCustomViewI18nPath, r as isSafeCustomViewPath, t as isSafeActionTemplatePath } from "../../templatePath-k_WNbL_Q.js";
|
|
4
|
-
import { A as buildCollectionActionSeedPrompt, C as validateRecordObject, D as enrichItems, E as runCollectionQuery, M as readCustomViewHtml, N as readCustomViewI18n, O as runQueryOverRows, P as readSkillTemplate, S as validateCollectionRecords, T as recordFieldProblem, _ as computeCollectionIcon, a as deleteCollection, b as applyMutateAction, c as computeSuccessor, d as isTriggerDue, f as maybeSpawnSuccessor, h as successorId, i as deleteCustomView, j as promptPathsFor, k as buildActionSeedPrompt, l as daysInMonth, m as resolveEvery, n as MAX_UNSELECTIVE_ITEMS, o as deleteCollectionRefusalMessage, p as parseCivil, r as makeManageCollectionTool, s as advanceTriggerDate, t as MAX_SCHEMA_ISSUES, u as formatCivil, v as buildWorkspaceOntology, w as compileRecordZ, x as firstMutateParamProblem, y as schemaRelations } from "../../server-
|
|
4
|
+
import { A as buildCollectionActionSeedPrompt, C as validateRecordObject, D as enrichItems, E as runCollectionQuery, M as readCustomViewHtml, N as readCustomViewI18n, O as runQueryOverRows, P as readSkillTemplate, S as validateCollectionRecords, T as recordFieldProblem, _ as computeCollectionIcon, a as deleteCollection, b as applyMutateAction, c as computeSuccessor, d as isTriggerDue, f as maybeSpawnSuccessor, h as successorId, i as deleteCustomView, j as promptPathsFor, k as buildActionSeedPrompt, l as daysInMonth, m as resolveEvery, n as MAX_UNSELECTIVE_ITEMS, o as deleteCollectionRefusalMessage, p as parseCivil, r as makeManageCollectionTool, s as advanceTriggerDate, t as MAX_SCHEMA_ISSUES, u as formatCivil, v as buildWorkspaceOntology, w as compileRecordZ, x as firstMutateParamProblem, y as schemaRelations } from "../../server-DdyIvFhz.js";
|
|
5
5
|
export { BackendUnavailableError, COMPUTED_TYPES, CollectionQueryZ, CollectionSchemaZ, DEFAULT_QUERY_ROWS, MAX_CSV_ROWS, MAX_QUERY_ROWS, MAX_SCHEMA_ISSUES, MAX_UNSELECTIVE_ITEMS, SCHEMA_FILE, acceptParsedSchema, advanceTriggerDate, applyMutateAction, buildActionSeedPrompt, buildCollectionActionSeedPrompt, buildWorkspaceOntology, collectionWritable, compileCsvQuery, compileJsonlQuery, compileRecordZ, computeCollectionIcon, computeSuccessor, configureCollectionHost, csvRowToItem, daysInMonth, decodeCsvRecordId, dedupeByRecordId, deleteCollection, deleteCollectionRefusalMessage, deleteCustomView, deleteItem, discoverCollections, encodeCsvRecordId, enrichItems, firstMutateParamProblem, formatCivil, generateItemId, getWorkspaceRoot, isBackendUnavailable, isContainedInRoot, isContainedInWorkspace, isRegularFile, isSafeActionTemplatePath, isSafeCustomViewI18nPath, isSafeCustomViewPath, isSafeTemplatePath, isTriggerDue, itemFilePath, listItems, loadCollection, log, makeManageCollectionTool, maybeSpawnSuccessor, normalizeCsvValue, pageFromFullRead, parseCivil, projectItemFields, promptPathsFor, publishCollectionChange, readCustomViewHtml, readCustomViewI18n, readItem, readOnlyRefusal, readSkillTemplate, recordFieldProblem, resolveCreateItemId, resolveDataDir, resolveEvery, resolvePrimaryField, resolveTemplatePath, runCollectionQuery, runQueryOverRows, safeRecordId, safeSlugName, schemaRelations, setCollectionChangePublisher, storeFor, successorId, toDetail, toSummary, validateCollectionRecords, validateRecordObject, writeItem };
|
|
@@ -2,8 +2,8 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
|
2
2
|
const require_calendarGrid = require("../calendarGrid-CaS9er8i.cjs");
|
|
3
3
|
const require_promptSafety = require("../promptSafety-FD8cQn3e.cjs");
|
|
4
4
|
require("../collection/index.cjs");
|
|
5
|
-
const require_discovery = require("../discovery-
|
|
6
|
-
const require_server = require("../server-
|
|
5
|
+
const require_discovery = require("../discovery-NRy3tyUA.cjs");
|
|
6
|
+
const require_server = require("../server-7U-3DE2e.cjs");
|
|
7
7
|
const require_notifier = require("../notifier-tMsAXyXp.cjs");
|
|
8
8
|
let node_fs_promises = require("node:fs/promises");
|
|
9
9
|
//#region src/collection-watchers/config.ts
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { k as fieldText } from "../calendarGrid-CrGxeCOG.js";
|
|
2
2
|
import { E as whenMatches, f as itemIsDone } from "../promptSafety-C--op_6a.js";
|
|
3
3
|
import "../collection/index.js";
|
|
4
|
-
import { B as itemFilePath, Z as publishCollectionChange, d as storeFor, n as discoverCollections, r as loadCollection } from "../discovery-
|
|
5
|
-
import { d as isTriggerDue, f as maybeSpawnSuccessor } from "../server-
|
|
4
|
+
import { B as itemFilePath, Z as publishCollectionChange, d as storeFor, n as discoverCollections, r as loadCollection } from "../discovery-B4CZvrXR.js";
|
|
5
|
+
import { d as isTriggerDue, f as maybeSpawnSuccessor } from "../server-DdyIvFhz.js";
|
|
6
6
|
import { d as publish, m as updateForPlugin, n as clear, s as listAll } from "../notifier-BdA5qzhe.js";
|
|
7
7
|
import { access } from "node:fs/promises";
|
|
8
8
|
//#region src/collection-watchers/config.ts
|
|
@@ -2183,8 +2183,16 @@ var GoogleCalendarSyncZ = z.object({
|
|
|
2183
2183
|
"end",
|
|
2184
2184
|
"htmlLink",
|
|
2185
2185
|
"colorId",
|
|
2186
|
-
"status"
|
|
2187
|
-
|
|
2186
|
+
"status",
|
|
2187
|
+
"description",
|
|
2188
|
+
"location"
|
|
2189
|
+
])).refine((map) => Object.keys(map).length > 0, { message: "map at least one field — a `googleCalendar` sync with an empty map writes records that carry only the event id" }),
|
|
2190
|
+
/** Run the push on the sync schedule too, immediately before each pull, so
|
|
2191
|
+
* local edits reach Google without anyone pressing a button (#2620).
|
|
2192
|
+
*
|
|
2193
|
+
* Opt-in and absent by default: a push writes to a calendar other people may
|
|
2194
|
+
* read, so turning it on is the user's decision, not a default. */
|
|
2195
|
+
autoPush: z.boolean().optional()
|
|
2188
2196
|
});
|
|
2189
2197
|
/** `ingest` is a discriminated union on `kind`: the three declarative
|
|
2190
2198
|
* retrievers fetch-and-map; `agent` dispatches a hidden worker. Optional on
|
|
@@ -2666,4 +2674,4 @@ function toDetail(collection) {
|
|
|
2666
2674
|
//#endregion
|
|
2667
2675
|
export { skillsStagingDir as $, deleteItem as A, itemFilePath as B, compileCsvQuery as C, MAX_QUERY_ROWS as D, DEFAULT_QUERY_ROWS as E, resolveCreateItemId as F, archiveDir as G, resolveTemplatePath as H, writeItem as I, getWorkspaceRoot as J, collectionsRegistriesConfigPath as K, SCHEMA_FILE as L, isRegularFile as M, listItems as N, BackendUnavailableError as O, readItem as P, setCollectionChangePublisher as Q, isContainedInRoot as R, queryCsv as S, CollectionQueryZ as T, safeRecordId as U, resolveDataDir as V, safeSlugName as W, log as X, isPresetSlug as Y, publishCollectionChange as Z, csvRowToItem as _, toDetail as a, encodeCsvRecordId as b, resolveMutateSet as c, storeFor as d, createForwardingLogger as et, checkpointSqliteDatabase as f, cacheDir as g, MAX_CSV_ROWS as h, resolvePrimaryField as i, generateItemId as j, isBackendUnavailable as k, collectionWritable as l, projectItemFields as m, discoverCollections as n, toSummary as o, pageFromFullRead as p, configureCollectionHost as q, loadCollection as r, CollectionSchemaZ as s, acceptParsedSchema as t, createHostSlot as tt, readOnlyRefusal as u, decodeCsvRecordId as v, compileJsonlQuery as w, normalizeCsvValue as x, dedupeByRecordId as y, isContainedInWorkspace as z };
|
|
2668
2676
|
|
|
2669
|
-
//# sourceMappingURL=discovery-
|
|
2677
|
+
//# sourceMappingURL=discovery-B4CZvrXR.js.map
|