@tloncorp/openclaw 0.4.3 → 0.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.
Files changed (104) hide show
  1. package/README.md +130 -141
  2. package/dist/index.js +147 -138
  3. package/dist/index.js.map +1 -1
  4. package/dist/setup-api.js +2 -2
  5. package/dist/setup-entry.js +2 -2
  6. package/dist/setup-entry.js.map +1 -1
  7. package/dist/src/account-fields.js +7 -3
  8. package/dist/src/account-fields.js.map +1 -1
  9. package/dist/src/actions.js +73 -52
  10. package/dist/src/actions.js.map +1 -1
  11. package/dist/src/channel.js +51 -39
  12. package/dist/src/channel.js.map +1 -1
  13. package/dist/src/channel.runtime.js +61 -32
  14. package/dist/src/channel.runtime.js.map +1 -1
  15. package/dist/src/config-schema.js +24 -4
  16. package/dist/src/config-schema.js.map +1 -1
  17. package/dist/src/effective-owner.js.map +1 -1
  18. package/dist/src/gateway-status.js +55 -7
  19. package/dist/src/gateway-status.js.map +1 -1
  20. package/dist/src/monitor/approval.js +71 -62
  21. package/dist/src/monitor/approval.js.map +1 -1
  22. package/dist/src/monitor/command-auth.js +7 -7
  23. package/dist/src/monitor/command-auth.js.map +1 -1
  24. package/dist/src/monitor/command-bridge.js +3 -2
  25. package/dist/src/monitor/command-bridge.js.map +1 -1
  26. package/dist/src/monitor/computing-presence.js +76 -12
  27. package/dist/src/monitor/computing-presence.js.map +1 -1
  28. package/dist/src/monitor/discovery.js +16 -9
  29. package/dist/src/monitor/discovery.js.map +1 -1
  30. package/dist/src/monitor/history.js +58 -26
  31. package/dist/src/monitor/history.js.map +1 -1
  32. package/dist/src/monitor/index.js +2771 -2483
  33. package/dist/src/monitor/index.js.map +1 -1
  34. package/dist/src/monitor/media.js +106 -78
  35. package/dist/src/monitor/media.js.map +1 -1
  36. package/dist/src/monitor/nudge-runner.js +36 -27
  37. package/dist/src/monitor/nudge-runner.js.map +1 -1
  38. package/dist/src/monitor/nudge-state.js +7 -11
  39. package/dist/src/monitor/nudge-state.js.map +1 -1
  40. package/dist/src/monitor/owner-reply-persistence.js +27 -26
  41. package/dist/src/monitor/owner-reply-persistence.js.map +1 -1
  42. package/dist/src/monitor/processed-messages.js.map +1 -1
  43. package/dist/src/monitor/settings-sync.js +1 -8
  44. package/dist/src/monitor/settings-sync.js.map +1 -1
  45. package/dist/src/monitor/utils.js +77 -71
  46. package/dist/src/monitor/utils.js.map +1 -1
  47. package/dist/src/nudge-decision.js +40 -43
  48. package/dist/src/nudge-decision.js.map +1 -1
  49. package/dist/src/nudge-messages.js +9 -9
  50. package/dist/src/nudge-scheduler.js.map +1 -1
  51. package/dist/src/owner-listen-command.js +38 -28
  52. package/dist/src/owner-listen-command.js.map +1 -1
  53. package/dist/src/pending-nudge.js.map +1 -1
  54. package/dist/src/runtime.js +10 -6
  55. package/dist/src/runtime.js.map +1 -1
  56. package/dist/src/session-roles.js +2 -1
  57. package/dist/src/session-roles.js.map +1 -1
  58. package/dist/src/settings.js +233 -102
  59. package/dist/src/settings.js.map +1 -1
  60. package/dist/src/setup-core.js +32 -32
  61. package/dist/src/setup-core.js.map +1 -1
  62. package/dist/src/setup-surface.js +19 -19
  63. package/dist/src/setup-surface.js.map +1 -1
  64. package/dist/src/shared-state.js +46 -0
  65. package/dist/src/shared-state.js.map +1 -0
  66. package/dist/src/targets.js +17 -10
  67. package/dist/src/targets.js.map +1 -1
  68. package/dist/src/telemetry.js +17 -14
  69. package/dist/src/telemetry.js.map +1 -1
  70. package/dist/src/tlon-binary.js +20 -12
  71. package/dist/src/tlon-binary.js.map +1 -1
  72. package/dist/src/tlon-tool-guard.js +5 -5
  73. package/dist/src/tool-trace.js +17 -13
  74. package/dist/src/tool-trace.js.map +1 -1
  75. package/dist/src/types.js +30 -12
  76. package/dist/src/types.js.map +1 -1
  77. package/dist/src/urbit/api-client.js +16 -12
  78. package/dist/src/urbit/api-client.js.map +1 -1
  79. package/dist/src/urbit/auth.js +9 -9
  80. package/dist/src/urbit/auth.js.map +1 -1
  81. package/dist/src/urbit/base-url.js +11 -11
  82. package/dist/src/urbit/base-url.js.map +1 -1
  83. package/dist/src/urbit/channel-ops.js +25 -19
  84. package/dist/src/urbit/channel-ops.js.map +1 -1
  85. package/dist/src/urbit/context.js +8 -8
  86. package/dist/src/urbit/context.js.map +1 -1
  87. package/dist/src/urbit/errors.js +33 -7
  88. package/dist/src/urbit/errors.js.map +1 -1
  89. package/dist/src/urbit/fetch.js +3 -3
  90. package/dist/src/urbit/fetch.js.map +1 -1
  91. package/dist/src/urbit/http-poke.js +10 -10
  92. package/dist/src/urbit/http-poke.js.map +1 -1
  93. package/dist/src/urbit/send.js +27 -23
  94. package/dist/src/urbit/send.js.map +1 -1
  95. package/dist/src/urbit/sse-client.js +45 -41
  96. package/dist/src/urbit/sse-client.js.map +1 -1
  97. package/dist/src/urbit/story.js +31 -30
  98. package/dist/src/urbit/story.js.map +1 -1
  99. package/dist/src/urbit/upload.js +8 -8
  100. package/dist/src/urbit/upload.js.map +1 -1
  101. package/dist/src/version.generated.js +2 -1
  102. package/dist/src/version.generated.js.map +1 -1
  103. package/openclaw.plugin.json +37 -0
  104. package/package.json +35 -15
@@ -1,15 +1,125 @@
1
- /**
2
- * Settings Store integration for hot-reloading Tlon plugin config.
3
- *
4
- * Settings are stored in Urbit's %settings agent under:
5
- * desk: "moltbot"
6
- * bucket: "tlon"
7
- *
8
- * This allows config changes via poke from any Landscape client
9
- * without requiring a gateway restart.
10
- */
11
- const SETTINGS_DESK = "moltbot";
12
- const SETTINGS_BUCKET = "tlon";
1
+ const SETTINGS_DESK = 'moltbot';
2
+ const SETTINGS_BUCKET = 'tlon';
3
+ export const APPROVAL_TTL_MS = 48 * 60 * 60 * 1000;
4
+ /** Sentinel preview used for DM-invite approvals that have no message body yet. */
5
+ export const DM_INVITE_PREVIEW = '(DM invite - no message yet)';
6
+ function isPendingApprovalExpired(approval, now = Date.now()) {
7
+ return now - approval.timestamp > APPROVAL_TTL_MS;
8
+ }
9
+ function hasUsableOriginalMessage(approval) {
10
+ if (approval.type === 'group') {
11
+ return true;
12
+ }
13
+ if (approval.type === 'dm' && approval.messagePreview === DM_INVITE_PREVIEW) {
14
+ return true;
15
+ }
16
+ const message = approval.originalMessage;
17
+ return Boolean(message &&
18
+ typeof message.messageId === 'string' &&
19
+ typeof message.messageText === 'string' &&
20
+ typeof message.timestamp === 'number');
21
+ }
22
+ function summarizePendingApproval(approval) {
23
+ return {
24
+ id: approval.id,
25
+ type: approval.type,
26
+ requestingShip: approval.requestingShip,
27
+ ...(approval.channelNest ? { channelNest: approval.channelNest } : {}),
28
+ ...(approval.groupFlag ? { groupFlag: approval.groupFlag } : {}),
29
+ timestamp: approval.timestamp,
30
+ ...(approval.notificationMessageId
31
+ ? { notificationMessageId: approval.notificationMessageId }
32
+ : {}),
33
+ };
34
+ }
35
+ function summarizeSettingsForLog(settings) {
36
+ const pendingApprovals = settings.pendingApprovals ?? [];
37
+ return {
38
+ ...(settings.groupChannels
39
+ ? { groupChannels: settings.groupChannels.length }
40
+ : {}),
41
+ ...(settings.dmAllowlist
42
+ ? { dmAllowlist: settings.dmAllowlist.length }
43
+ : {}),
44
+ ...(settings.autoDiscover !== undefined
45
+ ? { autoDiscover: settings.autoDiscover }
46
+ : {}),
47
+ ...(settings.showModelSig !== undefined
48
+ ? { showModelSig: settings.showModelSig }
49
+ : {}),
50
+ ...(settings.autoAcceptDmInvites !== undefined
51
+ ? { autoAcceptDmInvites: settings.autoAcceptDmInvites }
52
+ : {}),
53
+ ...(settings.autoDiscoverChannels !== undefined
54
+ ? { autoDiscoverChannels: settings.autoDiscoverChannels }
55
+ : {}),
56
+ ...(settings.autoAcceptGroupInvites !== undefined
57
+ ? { autoAcceptGroupInvites: settings.autoAcceptGroupInvites }
58
+ : {}),
59
+ ...(settings.groupInviteAllowlist
60
+ ? { groupInviteAllowlist: settings.groupInviteAllowlist.length }
61
+ : {}),
62
+ ...(settings.channelRules
63
+ ? { channelRules: Object.keys(settings.channelRules).length }
64
+ : {}),
65
+ ...(settings.defaultAuthorizedShips
66
+ ? { defaultAuthorizedShips: settings.defaultAuthorizedShips.length }
67
+ : {}),
68
+ ...(settings.ownerShip ? { ownerShip: settings.ownerShip } : {}),
69
+ ...(pendingApprovals.length
70
+ ? { pendingApprovals: pendingApprovals.map(summarizePendingApproval) }
71
+ : { pendingApprovals: 0 }),
72
+ ...(settings.lastOwnerMessageAt !== undefined
73
+ ? { lastOwnerMessageAt: settings.lastOwnerMessageAt }
74
+ : {}),
75
+ ...(settings.lastOwnerMessageDate
76
+ ? { lastOwnerMessageDate: settings.lastOwnerMessageDate }
77
+ : {}),
78
+ ...(settings.pendingNudge
79
+ ? {
80
+ pendingNudge: {
81
+ sentAt: settings.pendingNudge.sentAt,
82
+ stage: settings.pendingNudge.stage,
83
+ ownerShip: settings.pendingNudge.ownerShip,
84
+ accountId: settings.pendingNudge.accountId,
85
+ },
86
+ }
87
+ : {}),
88
+ ...(settings.lastNudgeStage !== undefined
89
+ ? { lastNudgeStage: settings.lastNudgeStage }
90
+ : {}),
91
+ ...(settings.nudgeActiveHoursStart
92
+ ? { nudgeActiveHoursStart: settings.nudgeActiveHoursStart }
93
+ : {}),
94
+ ...(settings.nudgeActiveHoursEnd
95
+ ? { nudgeActiveHoursEnd: settings.nudgeActiveHoursEnd }
96
+ : {}),
97
+ ...(settings.nudgeActiveHoursTimezone
98
+ ? { nudgeActiveHoursTimezone: settings.nudgeActiveHoursTimezone }
99
+ : {}),
100
+ ...(settings.ownerListenEnabled !== undefined
101
+ ? { ownerListenEnabled: settings.ownerListenEnabled }
102
+ : {}),
103
+ ...(settings.ownerListenDisabledChannels
104
+ ? {
105
+ ownerListenDisabledChannels: settings.ownerListenDisabledChannels.length,
106
+ }
107
+ : {}),
108
+ };
109
+ }
110
+ function formatSettingsForLog(settings) {
111
+ return JSON.stringify(summarizeSettingsForLog(settings));
112
+ }
113
+ function formatSettingsUpdateValueForLog(key, value) {
114
+ if (key === 'pendingApprovals') {
115
+ const approvals = parsePendingApprovals(value) ?? [];
116
+ return JSON.stringify({
117
+ count: approvals.length,
118
+ items: approvals.map(summarizePendingApproval),
119
+ });
120
+ }
121
+ return JSON.stringify(value);
122
+ }
13
123
  /**
14
124
  * Parse channelRules - handles both JSON string and object formats.
15
125
  * Settings-store doesn't support nested objects, so we store as JSON string.
@@ -19,7 +129,7 @@ function parseChannelRules(value) {
19
129
  return undefined;
20
130
  }
21
131
  // If it's a string, try to parse as JSON
22
- if (typeof value === "string") {
132
+ if (typeof value === 'string') {
23
133
  try {
24
134
  const parsed = JSON.parse(value);
25
135
  if (isChannelRulesObject(parsed)) {
@@ -45,7 +155,7 @@ function parsePendingNudge(value) {
45
155
  return undefined;
46
156
  }
47
157
  let parsed = value;
48
- if (typeof value === "string") {
158
+ if (typeof value === 'string') {
49
159
  try {
50
160
  parsed = JSON.parse(value);
51
161
  }
@@ -53,13 +163,13 @@ function parsePendingNudge(value) {
53
163
  return undefined;
54
164
  }
55
165
  }
56
- if (!parsed || typeof parsed !== "object") {
166
+ if (!parsed || typeof parsed !== 'object') {
57
167
  return undefined;
58
168
  }
59
169
  const obj = parsed;
60
- if (typeof obj.sentAt !== "number" ||
61
- typeof obj.ownerShip !== "string" ||
62
- typeof obj.accountId !== "string" ||
170
+ if (typeof obj.sentAt !== 'number' ||
171
+ typeof obj.ownerShip !== 'string' ||
172
+ typeof obj.accountId !== 'string' ||
63
173
  !(obj.stage === 1 || obj.stage === 2 || obj.stage === 3)) {
64
174
  return undefined;
65
175
  }
@@ -69,7 +179,7 @@ function parsePendingNudge(value) {
69
179
  ownerShip: obj.ownerShip,
70
180
  accountId: obj.accountId,
71
181
  };
72
- if (typeof obj.content === "string") {
182
+ if (typeof obj.content === 'string') {
73
183
  base.content = obj.content;
74
184
  }
75
185
  return base;
@@ -78,7 +188,7 @@ function parsePendingNudge(value) {
78
188
  * Parse lastNudgeStage — accepts number or numeric string, must be 1, 2, or 3.
79
189
  */
80
190
  function parseLastNudgeStage(value) {
81
- const num = typeof value === "string" ? Number(value) : value;
191
+ const num = typeof value === 'string' ? Number(value) : value;
82
192
  if (num === 1 || num === 2 || num === 3) {
83
193
  return num;
84
194
  }
@@ -89,60 +199,74 @@ function parseLastNudgeStage(value) {
89
199
  * The response shape is: { [bucket]: { [key]: value } }
90
200
  */
91
201
  export function parseSettingsResponse(raw) {
92
- if (!raw || typeof raw !== "object") {
202
+ if (!raw || typeof raw !== 'object') {
93
203
  return {};
94
204
  }
95
205
  const desk = raw;
96
206
  const bucket = desk[SETTINGS_BUCKET];
97
- if (!bucket || typeof bucket !== "object") {
207
+ if (!bucket || typeof bucket !== 'object') {
98
208
  return {};
99
209
  }
100
210
  const settings = bucket;
101
211
  return {
102
212
  groupChannels: Array.isArray(settings.groupChannels)
103
- ? settings.groupChannels.filter((x) => typeof x === "string")
213
+ ? settings.groupChannels.filter((x) => typeof x === 'string')
104
214
  : undefined,
105
215
  dmAllowlist: Array.isArray(settings.dmAllowlist)
106
- ? settings.dmAllowlist.filter((x) => typeof x === "string")
216
+ ? settings.dmAllowlist.filter((x) => typeof x === 'string')
217
+ : undefined,
218
+ autoDiscover: typeof settings.autoDiscover === 'boolean'
219
+ ? settings.autoDiscover
107
220
  : undefined,
108
- autoDiscover: typeof settings.autoDiscover === "boolean" ? settings.autoDiscover : undefined,
109
- showModelSig: typeof settings.showModelSig === "boolean" ? settings.showModelSig : undefined,
110
- autoAcceptDmInvites: typeof settings.autoAcceptDmInvites === "boolean" ? settings.autoAcceptDmInvites : undefined,
111
- autoAcceptGroupInvites: typeof settings.autoAcceptGroupInvites === "boolean"
221
+ showModelSig: typeof settings.showModelSig === 'boolean'
222
+ ? settings.showModelSig
223
+ : undefined,
224
+ autoAcceptDmInvites: typeof settings.autoAcceptDmInvites === 'boolean'
225
+ ? settings.autoAcceptDmInvites
226
+ : undefined,
227
+ autoAcceptGroupInvites: typeof settings.autoAcceptGroupInvites === 'boolean'
112
228
  ? settings.autoAcceptGroupInvites
113
229
  : undefined,
114
230
  groupInviteAllowlist: Array.isArray(settings.groupInviteAllowlist)
115
- ? settings.groupInviteAllowlist.filter((x) => typeof x === "string")
231
+ ? settings.groupInviteAllowlist.filter((x) => typeof x === 'string')
116
232
  : undefined,
117
233
  channelRules: parseChannelRules(settings.channelRules),
118
234
  defaultAuthorizedShips: Array.isArray(settings.defaultAuthorizedShips)
119
- ? settings.defaultAuthorizedShips.filter((x) => typeof x === "string")
235
+ ? settings.defaultAuthorizedShips.filter((x) => typeof x === 'string')
120
236
  : undefined,
121
- ownerShip: typeof settings.ownerShip === "string" ? settings.ownerShip : undefined,
237
+ ownerShip: typeof settings.ownerShip === 'string' ? settings.ownerShip : undefined,
122
238
  pendingApprovals: parsePendingApprovals(settings.pendingApprovals),
123
- lastOwnerMessageAt: typeof settings.lastOwnerMessageAt === "number" ? settings.lastOwnerMessageAt : undefined,
124
- lastOwnerMessageDate: typeof settings.lastOwnerMessageDate === "string" ? settings.lastOwnerMessageDate : undefined,
239
+ lastOwnerMessageAt: typeof settings.lastOwnerMessageAt === 'number'
240
+ ? settings.lastOwnerMessageAt
241
+ : undefined,
242
+ lastOwnerMessageDate: typeof settings.lastOwnerMessageDate === 'string'
243
+ ? settings.lastOwnerMessageDate
244
+ : undefined,
125
245
  pendingNudge: parsePendingNudge(settings.pendingNudge),
126
246
  lastNudgeStage: parseLastNudgeStage(settings.lastNudgeStage),
127
- nudgeActiveHoursStart: typeof settings.nudgeActiveHoursStart === "string"
247
+ nudgeActiveHoursStart: typeof settings.nudgeActiveHoursStart === 'string'
128
248
  ? settings.nudgeActiveHoursStart
129
249
  : undefined,
130
- nudgeActiveHoursEnd: typeof settings.nudgeActiveHoursEnd === "string" ? settings.nudgeActiveHoursEnd : undefined,
131
- nudgeActiveHoursTimezone: typeof settings.nudgeActiveHoursTimezone === "string"
250
+ nudgeActiveHoursEnd: typeof settings.nudgeActiveHoursEnd === 'string'
251
+ ? settings.nudgeActiveHoursEnd
252
+ : undefined,
253
+ nudgeActiveHoursTimezone: typeof settings.nudgeActiveHoursTimezone === 'string'
132
254
  ? settings.nudgeActiveHoursTimezone
133
255
  : undefined,
134
- ownerListenEnabled: typeof settings.ownerListenEnabled === "boolean" ? settings.ownerListenEnabled : undefined,
256
+ ownerListenEnabled: typeof settings.ownerListenEnabled === 'boolean'
257
+ ? settings.ownerListenEnabled
258
+ : undefined,
135
259
  ownerListenDisabledChannels: Array.isArray(settings.ownerListenDisabledChannels)
136
- ? settings.ownerListenDisabledChannels.filter((x) => typeof x === "string")
260
+ ? settings.ownerListenDisabledChannels.filter((x) => typeof x === 'string')
137
261
  : undefined,
138
262
  };
139
263
  }
140
264
  function isChannelRulesObject(val) {
141
- if (!val || typeof val !== "object" || Array.isArray(val)) {
265
+ if (!val || typeof val !== 'object' || Array.isArray(val)) {
142
266
  return false;
143
267
  }
144
268
  for (const [, rule] of Object.entries(val)) {
145
- if (!rule || typeof rule !== "object") {
269
+ if (!rule || typeof rule !== 'object') {
146
270
  return false;
147
271
  }
148
272
  }
@@ -158,7 +282,7 @@ function parsePendingApprovals(value) {
158
282
  }
159
283
  // If it's a string, try to parse as JSON
160
284
  let parsed = value;
161
- if (typeof value === "string") {
285
+ if (typeof value === 'string') {
162
286
  try {
163
287
  parsed = JSON.parse(value);
164
288
  }
@@ -170,49 +294,53 @@ function parsePendingApprovals(value) {
170
294
  if (!Array.isArray(parsed)) {
171
295
  return undefined;
172
296
  }
173
- // Filter to valid PendingApproval objects
297
+ // Filter to valid, unexpired PendingApproval objects.
174
298
  return parsed.filter((item) => {
175
- if (!item || typeof item !== "object") {
299
+ if (!item || typeof item !== 'object') {
176
300
  return false;
177
301
  }
178
302
  const obj = item;
179
- return (typeof obj.id === "string" &&
180
- (obj.type === "dm" || obj.type === "channel" || obj.type === "group") &&
181
- typeof obj.requestingShip === "string" &&
182
- typeof obj.timestamp === "number");
303
+ const valid = typeof obj.id === 'string' &&
304
+ (obj.type === 'dm' || obj.type === 'channel' || obj.type === 'group') &&
305
+ typeof obj.requestingShip === 'string' &&
306
+ typeof obj.timestamp === 'number';
307
+ const approval = obj;
308
+ return (valid &&
309
+ hasUsableOriginalMessage(approval) &&
310
+ !isPendingApprovalExpired(approval));
183
311
  });
184
312
  }
185
313
  /**
186
314
  * Parse a single settings entry update event.
187
315
  */
188
316
  function parseSettingsEvent(event) {
189
- if (!event || typeof event !== "object") {
317
+ if (!event || typeof event !== 'object') {
190
318
  return null;
191
319
  }
192
320
  let evt = event;
193
321
  // Unwrap "settings-event" wrapper if present
194
- if (evt["settings-event"] && typeof evt["settings-event"] === "object") {
195
- evt = evt["settings-event"];
322
+ if (evt['settings-event'] && typeof evt['settings-event'] === 'object') {
323
+ evt = evt['settings-event'];
196
324
  }
197
325
  // Handle put-entry events
198
- if (evt["put-entry"]) {
199
- const put = evt["put-entry"];
200
- if (put.desk !== SETTINGS_DESK || put["bucket-key"] !== SETTINGS_BUCKET) {
326
+ if (evt['put-entry']) {
327
+ const put = evt['put-entry'];
328
+ if (put.desk !== SETTINGS_DESK || put['bucket-key'] !== SETTINGS_BUCKET) {
201
329
  return null;
202
330
  }
203
331
  return {
204
- key: String(put["entry-key"] ?? ""),
332
+ key: String(put['entry-key'] ?? ''),
205
333
  value: put.value,
206
334
  };
207
335
  }
208
336
  // Handle del-entry events
209
- if (evt["del-entry"]) {
210
- const del = evt["del-entry"];
211
- if (del.desk !== SETTINGS_DESK || del["bucket-key"] !== SETTINGS_BUCKET) {
337
+ if (evt['del-entry']) {
338
+ const del = evt['del-entry'];
339
+ if (del.desk !== SETTINGS_DESK || del['bucket-key'] !== SETTINGS_BUCKET) {
212
340
  return null;
213
341
  }
214
342
  return {
215
- key: String(del["entry-key"] ?? ""),
343
+ key: String(del['entry-key'] ?? ''),
216
344
  value: undefined,
217
345
  };
218
346
  }
@@ -224,74 +352,77 @@ function parseSettingsEvent(event) {
224
352
  export function applySettingsUpdate(current, key, value) {
225
353
  const next = { ...current };
226
354
  switch (key) {
227
- case "groupChannels":
355
+ case 'groupChannels':
228
356
  next.groupChannels = Array.isArray(value)
229
- ? value.filter((x) => typeof x === "string")
357
+ ? value.filter((x) => typeof x === 'string')
230
358
  : undefined;
231
359
  break;
232
- case "dmAllowlist":
360
+ case 'dmAllowlist':
233
361
  next.dmAllowlist = Array.isArray(value)
234
- ? value.filter((x) => typeof x === "string")
362
+ ? value.filter((x) => typeof x === 'string')
235
363
  : undefined;
236
364
  break;
237
- case "autoDiscover":
238
- next.autoDiscover = typeof value === "boolean" ? value : undefined;
365
+ case 'autoDiscover':
366
+ next.autoDiscover = typeof value === 'boolean' ? value : undefined;
239
367
  break;
240
- case "showModelSig":
241
- next.showModelSig = typeof value === "boolean" ? value : undefined;
368
+ case 'showModelSig':
369
+ next.showModelSig = typeof value === 'boolean' ? value : undefined;
242
370
  break;
243
- case "autoAcceptDmInvites":
244
- next.autoAcceptDmInvites = typeof value === "boolean" ? value : undefined;
371
+ case 'autoAcceptDmInvites':
372
+ next.autoAcceptDmInvites = typeof value === 'boolean' ? value : undefined;
245
373
  break;
246
- case "autoAcceptGroupInvites":
247
- next.autoAcceptGroupInvites = typeof value === "boolean" ? value : undefined;
374
+ case 'autoAcceptGroupInvites':
375
+ next.autoAcceptGroupInvites =
376
+ typeof value === 'boolean' ? value : undefined;
248
377
  break;
249
- case "groupInviteAllowlist":
378
+ case 'groupInviteAllowlist':
250
379
  next.groupInviteAllowlist = Array.isArray(value)
251
- ? value.filter((x) => typeof x === "string")
380
+ ? value.filter((x) => typeof x === 'string')
252
381
  : undefined;
253
382
  break;
254
- case "channelRules":
383
+ case 'channelRules':
255
384
  next.channelRules = parseChannelRules(value);
256
385
  break;
257
- case "defaultAuthorizedShips":
386
+ case 'defaultAuthorizedShips':
258
387
  next.defaultAuthorizedShips = Array.isArray(value)
259
- ? value.filter((x) => typeof x === "string")
388
+ ? value.filter((x) => typeof x === 'string')
260
389
  : undefined;
261
390
  break;
262
- case "ownerShip":
263
- next.ownerShip = typeof value === "string" ? value : undefined;
391
+ case 'ownerShip':
392
+ next.ownerShip = typeof value === 'string' ? value : undefined;
264
393
  break;
265
- case "pendingApprovals":
394
+ case 'pendingApprovals':
266
395
  next.pendingApprovals = parsePendingApprovals(value);
267
396
  break;
268
- case "lastOwnerMessageAt":
269
- next.lastOwnerMessageAt = typeof value === "number" ? value : undefined;
397
+ case 'lastOwnerMessageAt':
398
+ next.lastOwnerMessageAt = typeof value === 'number' ? value : undefined;
270
399
  break;
271
- case "lastOwnerMessageDate":
272
- next.lastOwnerMessageDate = typeof value === "string" ? value : undefined;
400
+ case 'lastOwnerMessageDate':
401
+ next.lastOwnerMessageDate = typeof value === 'string' ? value : undefined;
273
402
  break;
274
- case "pendingNudge":
403
+ case 'pendingNudge':
275
404
  next.pendingNudge = parsePendingNudge(value);
276
405
  break;
277
- case "lastNudgeStage":
406
+ case 'lastNudgeStage':
278
407
  next.lastNudgeStage = parseLastNudgeStage(value);
279
408
  break;
280
- case "nudgeActiveHoursStart":
281
- next.nudgeActiveHoursStart = typeof value === "string" ? value : undefined;
409
+ case 'nudgeActiveHoursStart':
410
+ next.nudgeActiveHoursStart =
411
+ typeof value === 'string' ? value : undefined;
282
412
  break;
283
- case "nudgeActiveHoursEnd":
284
- next.nudgeActiveHoursEnd = typeof value === "string" ? value : undefined;
413
+ case 'nudgeActiveHoursEnd':
414
+ next.nudgeActiveHoursEnd = typeof value === 'string' ? value : undefined;
285
415
  break;
286
- case "nudgeActiveHoursTimezone":
287
- next.nudgeActiveHoursTimezone = typeof value === "string" ? value : undefined;
416
+ case 'nudgeActiveHoursTimezone':
417
+ next.nudgeActiveHoursTimezone =
418
+ typeof value === 'string' ? value : undefined;
288
419
  break;
289
- case "ownerListenEnabled":
290
- next.ownerListenEnabled = typeof value === "boolean" ? value : undefined;
420
+ case 'ownerListenEnabled':
421
+ next.ownerListenEnabled = typeof value === 'boolean' ? value : undefined;
291
422
  break;
292
- case "ownerListenDisabledChannels":
423
+ case 'ownerListenDisabledChannels':
293
424
  next.ownerListenDisabledChannels = Array.isArray(value)
294
- ? value.filter((x) => typeof x === "string")
425
+ ? value.filter((x) => typeof x === 'string')
295
426
  : undefined;
296
427
  break;
297
428
  }
@@ -306,7 +437,7 @@ export function applySettingsUpdate(current, key, value) {
306
437
  * settings.subscribe((newSettings) => { ... });
307
438
  */
308
439
  export function createSettingsManager(api, logger) {
309
- let state = {
440
+ const state = {
310
441
  current: {},
311
442
  loaded: false,
312
443
  };
@@ -339,13 +470,13 @@ export function createSettingsManager(api, logger) {
339
470
  */
340
471
  async load() {
341
472
  try {
342
- const raw = await api.scry("/settings/all.json");
473
+ const raw = await api.scry('/settings/all.json');
343
474
  // Response shape: { all: { [desk]: { [bucket]: { [key]: value } } } }
344
475
  const allData = raw;
345
476
  const deskData = allData?.all?.[SETTINGS_DESK];
346
477
  state.current = parseSettingsResponse(deskData ?? {});
347
478
  state.loaded = true;
348
- logger?.log?.(`[settings] Loaded: ${JSON.stringify(state.current)}`);
479
+ logger?.log?.(`[settings] Loaded: ${formatSettingsForLog(state.current)}`);
349
480
  return { settings: state.current, fresh: true };
350
481
  }
351
482
  catch (err) {
@@ -361,14 +492,14 @@ export function createSettingsManager(api, logger) {
361
492
  */
362
493
  async startSubscription() {
363
494
  await api.subscribe({
364
- app: "settings",
365
- path: "/desk/" + SETTINGS_DESK,
495
+ app: 'settings',
496
+ path: '/desk/' + SETTINGS_DESK,
366
497
  event: (event) => {
367
498
  const update = parseSettingsEvent(event);
368
499
  if (!update) {
369
500
  return;
370
501
  }
371
- logger?.log?.(`[settings] Update: ${update.key} = ${JSON.stringify(update.value)}`);
502
+ logger?.log?.(`[settings] Update: ${update.key} = ${formatSettingsUpdateValueForLog(update.key, update.value)}`);
372
503
  state.current = applySettingsUpdate(state.current, update.key, update.value);
373
504
  notify();
374
505
  },
@@ -376,10 +507,10 @@ export function createSettingsManager(api, logger) {
376
507
  logger?.error?.(`[settings] Subscription error: ${String(error)}`);
377
508
  },
378
509
  quit: () => {
379
- logger?.log?.("[settings] Subscription ended");
510
+ logger?.log?.('[settings] Subscription ended');
380
511
  },
381
512
  });
382
- logger?.log?.("[settings] Subscribed to settings updates");
513
+ logger?.log?.('[settings] Subscribed to settings updates');
383
514
  },
384
515
  /**
385
516
  * Register a listener for settings changes.
@@ -1 +1 @@
1
- {"version":3,"file":"settings.js","sourceRoot":"","sources":["../../src/settings.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"settings.js","sourceRoot":"","sources":["../../src/settings.ts"],"names":[],"mappings":"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"}