@tloncorp/openclaw 0.4.2 → 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 (110) hide show
  1. package/README.md +130 -141
  2. package/dist/index.js +157 -132
  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 +43 -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 +130 -21
  31. package/dist/src/monitor/history.js.map +1 -1
  32. package/dist/src/monitor/index.js +2766 -2310
  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 +123 -67
  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 +84 -0
  52. package/dist/src/owner-listen-command.js.map +1 -0
  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 +239 -96
  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 +34 -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 +40 -11
  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 +312 -2
  104. package/package.json +37 -7
  105. package/dist/src/heartbeat-telemetry.js +0 -155
  106. package/dist/src/heartbeat-telemetry.js.map +0 -1
  107. package/dist/src/nudge-candidate.js +0 -109
  108. package/dist/src/nudge-candidate.js.map +0 -1
  109. package/dist/src/onboarding.js +0 -178
  110. package/dist/src/onboarding.js.map +0 -1
@@ -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,56 +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')
107
217
  : 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"
218
+ autoDiscover: typeof settings.autoDiscover === 'boolean'
219
+ ? settings.autoDiscover
220
+ : undefined,
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,
256
+ ownerListenEnabled: typeof settings.ownerListenEnabled === 'boolean'
257
+ ? settings.ownerListenEnabled
258
+ : undefined,
259
+ ownerListenDisabledChannels: Array.isArray(settings.ownerListenDisabledChannels)
260
+ ? settings.ownerListenDisabledChannels.filter((x) => typeof x === 'string')
261
+ : undefined,
134
262
  };
135
263
  }
136
264
  function isChannelRulesObject(val) {
137
- if (!val || typeof val !== "object" || Array.isArray(val)) {
265
+ if (!val || typeof val !== 'object' || Array.isArray(val)) {
138
266
  return false;
139
267
  }
140
268
  for (const [, rule] of Object.entries(val)) {
141
- if (!rule || typeof rule !== "object") {
269
+ if (!rule || typeof rule !== 'object') {
142
270
  return false;
143
271
  }
144
272
  }
@@ -154,7 +282,7 @@ function parsePendingApprovals(value) {
154
282
  }
155
283
  // If it's a string, try to parse as JSON
156
284
  let parsed = value;
157
- if (typeof value === "string") {
285
+ if (typeof value === 'string') {
158
286
  try {
159
287
  parsed = JSON.parse(value);
160
288
  }
@@ -166,49 +294,53 @@ function parsePendingApprovals(value) {
166
294
  if (!Array.isArray(parsed)) {
167
295
  return undefined;
168
296
  }
169
- // Filter to valid PendingApproval objects
297
+ // Filter to valid, unexpired PendingApproval objects.
170
298
  return parsed.filter((item) => {
171
- if (!item || typeof item !== "object") {
299
+ if (!item || typeof item !== 'object') {
172
300
  return false;
173
301
  }
174
302
  const obj = item;
175
- return (typeof obj.id === "string" &&
176
- (obj.type === "dm" || obj.type === "channel" || obj.type === "group") &&
177
- typeof obj.requestingShip === "string" &&
178
- 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));
179
311
  });
180
312
  }
181
313
  /**
182
314
  * Parse a single settings entry update event.
183
315
  */
184
316
  function parseSettingsEvent(event) {
185
- if (!event || typeof event !== "object") {
317
+ if (!event || typeof event !== 'object') {
186
318
  return null;
187
319
  }
188
320
  let evt = event;
189
321
  // Unwrap "settings-event" wrapper if present
190
- if (evt["settings-event"] && typeof evt["settings-event"] === "object") {
191
- evt = evt["settings-event"];
322
+ if (evt['settings-event'] && typeof evt['settings-event'] === 'object') {
323
+ evt = evt['settings-event'];
192
324
  }
193
325
  // Handle put-entry events
194
- if (evt["put-entry"]) {
195
- const put = evt["put-entry"];
196
- 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) {
197
329
  return null;
198
330
  }
199
331
  return {
200
- key: String(put["entry-key"] ?? ""),
332
+ key: String(put['entry-key'] ?? ''),
201
333
  value: put.value,
202
334
  };
203
335
  }
204
336
  // Handle del-entry events
205
- if (evt["del-entry"]) {
206
- const del = evt["del-entry"];
207
- 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) {
208
340
  return null;
209
341
  }
210
342
  return {
211
- key: String(del["entry-key"] ?? ""),
343
+ key: String(del['entry-key'] ?? ''),
212
344
  value: undefined,
213
345
  };
214
346
  }
@@ -220,67 +352,78 @@ function parseSettingsEvent(event) {
220
352
  export function applySettingsUpdate(current, key, value) {
221
353
  const next = { ...current };
222
354
  switch (key) {
223
- case "groupChannels":
355
+ case 'groupChannels':
224
356
  next.groupChannels = Array.isArray(value)
225
- ? value.filter((x) => typeof x === "string")
357
+ ? value.filter((x) => typeof x === 'string')
226
358
  : undefined;
227
359
  break;
228
- case "dmAllowlist":
360
+ case 'dmAllowlist':
229
361
  next.dmAllowlist = Array.isArray(value)
230
- ? value.filter((x) => typeof x === "string")
362
+ ? value.filter((x) => typeof x === 'string')
231
363
  : undefined;
232
364
  break;
233
- case "autoDiscover":
234
- next.autoDiscover = typeof value === "boolean" ? value : undefined;
365
+ case 'autoDiscover':
366
+ next.autoDiscover = typeof value === 'boolean' ? value : undefined;
235
367
  break;
236
- case "showModelSig":
237
- next.showModelSig = typeof value === "boolean" ? value : undefined;
368
+ case 'showModelSig':
369
+ next.showModelSig = typeof value === 'boolean' ? value : undefined;
238
370
  break;
239
- case "autoAcceptDmInvites":
240
- next.autoAcceptDmInvites = typeof value === "boolean" ? value : undefined;
371
+ case 'autoAcceptDmInvites':
372
+ next.autoAcceptDmInvites = typeof value === 'boolean' ? value : undefined;
241
373
  break;
242
- case "autoAcceptGroupInvites":
243
- next.autoAcceptGroupInvites = typeof value === "boolean" ? value : undefined;
374
+ case 'autoAcceptGroupInvites':
375
+ next.autoAcceptGroupInvites =
376
+ typeof value === 'boolean' ? value : undefined;
244
377
  break;
245
- case "groupInviteAllowlist":
378
+ case 'groupInviteAllowlist':
246
379
  next.groupInviteAllowlist = Array.isArray(value)
247
- ? value.filter((x) => typeof x === "string")
380
+ ? value.filter((x) => typeof x === 'string')
248
381
  : undefined;
249
382
  break;
250
- case "channelRules":
383
+ case 'channelRules':
251
384
  next.channelRules = parseChannelRules(value);
252
385
  break;
253
- case "defaultAuthorizedShips":
386
+ case 'defaultAuthorizedShips':
254
387
  next.defaultAuthorizedShips = Array.isArray(value)
255
- ? value.filter((x) => typeof x === "string")
388
+ ? value.filter((x) => typeof x === 'string')
256
389
  : undefined;
257
390
  break;
258
- case "ownerShip":
259
- next.ownerShip = typeof value === "string" ? value : undefined;
391
+ case 'ownerShip':
392
+ next.ownerShip = typeof value === 'string' ? value : undefined;
260
393
  break;
261
- case "pendingApprovals":
394
+ case 'pendingApprovals':
262
395
  next.pendingApprovals = parsePendingApprovals(value);
263
396
  break;
264
- case "lastOwnerMessageAt":
265
- next.lastOwnerMessageAt = typeof value === "number" ? value : undefined;
397
+ case 'lastOwnerMessageAt':
398
+ next.lastOwnerMessageAt = typeof value === 'number' ? value : undefined;
266
399
  break;
267
- case "lastOwnerMessageDate":
268
- next.lastOwnerMessageDate = typeof value === "string" ? value : undefined;
400
+ case 'lastOwnerMessageDate':
401
+ next.lastOwnerMessageDate = typeof value === 'string' ? value : undefined;
269
402
  break;
270
- case "pendingNudge":
403
+ case 'pendingNudge':
271
404
  next.pendingNudge = parsePendingNudge(value);
272
405
  break;
273
- case "lastNudgeStage":
406
+ case 'lastNudgeStage':
274
407
  next.lastNudgeStage = parseLastNudgeStage(value);
275
408
  break;
276
- case "nudgeActiveHoursStart":
277
- next.nudgeActiveHoursStart = typeof value === "string" ? value : undefined;
409
+ case 'nudgeActiveHoursStart':
410
+ next.nudgeActiveHoursStart =
411
+ typeof value === 'string' ? value : undefined;
278
412
  break;
279
- case "nudgeActiveHoursEnd":
280
- next.nudgeActiveHoursEnd = typeof value === "string" ? value : undefined;
413
+ case 'nudgeActiveHoursEnd':
414
+ next.nudgeActiveHoursEnd = typeof value === 'string' ? value : undefined;
281
415
  break;
282
- case "nudgeActiveHoursTimezone":
283
- next.nudgeActiveHoursTimezone = typeof value === "string" ? value : undefined;
416
+ case 'nudgeActiveHoursTimezone':
417
+ next.nudgeActiveHoursTimezone =
418
+ typeof value === 'string' ? value : undefined;
419
+ break;
420
+ case 'ownerListenEnabled':
421
+ next.ownerListenEnabled = typeof value === 'boolean' ? value : undefined;
422
+ break;
423
+ case 'ownerListenDisabledChannels':
424
+ next.ownerListenDisabledChannels = Array.isArray(value)
425
+ ? value.filter((x) => typeof x === 'string')
426
+ : undefined;
284
427
  break;
285
428
  }
286
429
  return next;
@@ -294,7 +437,7 @@ export function applySettingsUpdate(current, key, value) {
294
437
  * settings.subscribe((newSettings) => { ... });
295
438
  */
296
439
  export function createSettingsManager(api, logger) {
297
- let state = {
440
+ const state = {
298
441
  current: {},
299
442
  loaded: false,
300
443
  };
@@ -327,13 +470,13 @@ export function createSettingsManager(api, logger) {
327
470
  */
328
471
  async load() {
329
472
  try {
330
- const raw = await api.scry("/settings/all.json");
473
+ const raw = await api.scry('/settings/all.json');
331
474
  // Response shape: { all: { [desk]: { [bucket]: { [key]: value } } } }
332
475
  const allData = raw;
333
476
  const deskData = allData?.all?.[SETTINGS_DESK];
334
477
  state.current = parseSettingsResponse(deskData ?? {});
335
478
  state.loaded = true;
336
- logger?.log?.(`[settings] Loaded: ${JSON.stringify(state.current)}`);
479
+ logger?.log?.(`[settings] Loaded: ${formatSettingsForLog(state.current)}`);
337
480
  return { settings: state.current, fresh: true };
338
481
  }
339
482
  catch (err) {
@@ -349,14 +492,14 @@ export function createSettingsManager(api, logger) {
349
492
  */
350
493
  async startSubscription() {
351
494
  await api.subscribe({
352
- app: "settings",
353
- path: "/desk/" + SETTINGS_DESK,
495
+ app: 'settings',
496
+ path: '/desk/' + SETTINGS_DESK,
354
497
  event: (event) => {
355
498
  const update = parseSettingsEvent(event);
356
499
  if (!update) {
357
500
  return;
358
501
  }
359
- logger?.log?.(`[settings] Update: ${update.key} = ${JSON.stringify(update.value)}`);
502
+ logger?.log?.(`[settings] Update: ${update.key} = ${formatSettingsUpdateValueForLog(update.key, update.value)}`);
360
503
  state.current = applySettingsUpdate(state.current, update.key, update.value);
361
504
  notify();
362
505
  },
@@ -364,10 +507,10 @@ export function createSettingsManager(api, logger) {
364
507
  logger?.error?.(`[settings] Subscription error: ${String(error)}`);
365
508
  },
366
509
  quit: () => {
367
- logger?.log?.("[settings] Subscription ended");
510
+ logger?.log?.('[settings] Subscription ended');
368
511
  },
369
512
  });
370
- logger?.log?.("[settings] Subscribed to settings updates");
513
+ logger?.log?.('[settings] Subscribed to settings updates');
371
514
  },
372
515
  /**
373
516
  * Register a listener for settings changes.
@@ -1 +1 @@
1
- {"version":3,"file":"settings.js","sourceRoot":"","sources":["../../src/settings.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAyEH,MAAM,aAAa,GAAG,SAAS,CAAC;AAChC,MAAM,eAAe,GAAG,MAAM,CAAC;AAE/B;;;GAGG;AACH,SAAS,iBAAiB,CACxB,KAAc;IAEd,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,yCAAyC;IACzC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACjC,IAAI,oBAAoB,CAAC,MAAM,CAAC,EAAE,CAAC;gBACjC,OAAO,MAAM,CAAC;YAChB,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAED,0CAA0C;IAC1C,IAAI,oBAAoB,CAAC,KAAK,CAAC,EAAE,CAAC;QAChC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;GAGG;AACH,SAAS,iBAAiB,CAAC,KAAc;IACvC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,MAAM,GAAY,KAAK,CAAC;IAC5B,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,IAAI,CAAC;YACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAED,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC1C,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,GAAG,GAAG,MAAiC,CAAC;IAC9C,IACE,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ;QAC9B,OAAO,GAAG,CAAC,SAAS,KAAK,QAAQ;QACjC,OAAO,GAAG,CAAC,SAAS,KAAK,QAAQ;QACjC,CAAC,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,GAAG,CAAC,KAAK,KAAK,CAAC,CAAC,EACxD,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,IAAI,GAAiB;QACzB,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,SAAS,EAAE,GAAG,CAAC,SAAS;QACxB,SAAS,EAAE,GAAG,CAAC,SAAS;KACzB,CAAC;IACF,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;QACpC,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;IAC7B,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,SAAS,mBAAmB,CAAC,KAAc;IACzC,MAAM,GAAG,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAC9D,IAAI,GAAG,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC;QACxC,OAAO,GAAG,CAAC;IACb,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CAAC,GAAY;IAChD,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QACpC,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,IAAI,GAAG,GAA8B,CAAC;IAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC;IACrC,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC1C,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,QAAQ,GAAG,MAAiC,CAAC;IAEnD,OAAO;QACL,aAAa,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC;YAClD,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC;YAC1E,CAAC,CAAC,SAAS;QACb,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC;YAC9C,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC;YACxE,CAAC,CAAC,SAAS;QACb,YAAY,EAAE,OAAO,QAAQ,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS;QAC5F,YAAY,EAAE,OAAO,QAAQ,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS;QAC5F,mBAAmB,EACjB,OAAO,QAAQ,CAAC,mBAAmB,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAC,SAAS;QAC9F,sBAAsB,EACpB,OAAO,QAAQ,CAAC,sBAAsB,KAAK,SAAS;YAClD,CAAC,CAAC,QAAQ,CAAC,sBAAsB;YACjC,CAAC,CAAC,SAAS;QACf,oBAAoB,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAC;YAChE,CAAC,CAAC,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC;YACjF,CAAC,CAAC,SAAS;QACb,YAAY,EAAE,iBAAiB,CAAC,QAAQ,CAAC,YAAY,CAAC;QACtD,sBAAsB,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAC;YACpE,CAAC,CAAC,QAAQ,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC;YACnF,CAAC,CAAC,SAAS;QACb,SAAS,EAAE,OAAO,QAAQ,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;QAClF,gBAAgB,EAAE,qBAAqB,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QAClE,kBAAkB,EAChB,OAAO,QAAQ,CAAC,kBAAkB,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,CAAC,SAAS;QAC3F,oBAAoB,EAClB,OAAO,QAAQ,CAAC,oBAAoB,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,CAAC,SAAS;QAC/F,YAAY,EAAE,iBAAiB,CAAC,QAAQ,CAAC,YAAY,CAAC;QACtD,cAAc,EAAE,mBAAmB,CAAC,QAAQ,CAAC,cAAc,CAAC;QAC5D,qBAAqB,EACnB,OAAO,QAAQ,CAAC,qBAAqB,KAAK,QAAQ;YAChD,CAAC,CAAC,QAAQ,CAAC,qBAAqB;YAChC,CAAC,CAAC,SAAS;QACf,mBAAmB,EACjB,OAAO,QAAQ,CAAC,mBAAmB,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAC,SAAS;QAC7F,wBAAwB,EACtB,OAAO,QAAQ,CAAC,wBAAwB,KAAK,QAAQ;YACnD,CAAC,CAAC,QAAQ,CAAC,wBAAwB;YACnC,CAAC,CAAC,SAAS;KAChB,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAC3B,GAAY;IAEZ,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1D,OAAO,KAAK,CAAC;IACf,CAAC;IACD,KAAK,MAAM,CAAC,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAC3C,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtC,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,SAAS,qBAAqB,CAAC,KAAc;IAC3C,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,yCAAyC;IACzC,IAAI,MAAM,GAAY,KAAK,CAAC;IAC5B,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,IAAI,CAAC;YACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAED,yBAAyB;IACzB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,0CAA0C;IAC1C,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAA2B,EAAE;QACrD,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtC,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,GAAG,GAAG,IAA+B,CAAC;QAC5C,OAAO,CACL,OAAO,GAAG,CAAC,EAAE,KAAK,QAAQ;YAC1B,CAAC,GAAG,CAAC,IAAI,KAAK,IAAI,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,CAAC;YACrE,OAAO,GAAG,CAAC,cAAc,KAAK,QAAQ;YACtC,OAAO,GAAG,CAAC,SAAS,KAAK,QAAQ,CAClC,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,SAAS,kBAAkB,CAAC,KAAc;IACxC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACxC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,GAAG,GAAG,KAAgC,CAAC;IAE3C,6CAA6C;IAC7C,IAAI,GAAG,CAAC,gBAAgB,CAAC,IAAI,OAAO,GAAG,CAAC,gBAAgB,CAAC,KAAK,QAAQ,EAAE,CAAC;QACvE,GAAG,GAAG,GAAG,CAAC,gBAAgB,CAA4B,CAAC;IACzD,CAAC;IAED,0BAA0B;IAC1B,IAAI,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;QACrB,MAAM,GAAG,GAAG,GAAG,CAAC,WAAW,CAA4B,CAAC;QACxD,IAAI,GAAG,CAAC,IAAI,KAAK,aAAa,IAAI,GAAG,CAAC,YAAY,CAAC,KAAK,eAAe,EAAE,CAAC;YACxE,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO;YACL,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;YACnC,KAAK,EAAE,GAAG,CAAC,KAAK;SACjB,CAAC;IACJ,CAAC;IAED,0BAA0B;IAC1B,IAAI,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;QACrB,MAAM,GAAG,GAAG,GAAG,CAAC,WAAW,CAA4B,CAAC;QACxD,IAAI,GAAG,CAAC,IAAI,KAAK,aAAa,IAAI,GAAG,CAAC,YAAY,CAAC,KAAK,eAAe,EAAE,CAAC;YACxE,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO;YACL,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;YACnC,KAAK,EAAE,SAAS;SACjB,CAAC;IACJ,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CACjC,OAA0B,EAC1B,GAAW,EACX,KAAc;IAEd,MAAM,IAAI,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC;IAE5B,QAAQ,GAAG,EAAE,CAAC;QACZ,KAAK,eAAe;YAClB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;gBACvC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC;gBACzD,CAAC,CAAC,SAAS,CAAC;YACd,MAAM;QACR,KAAK,aAAa;YAChB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;gBACrC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC;gBACzD,CAAC,CAAC,SAAS,CAAC;YACd,MAAM;QACR,KAAK,cAAc;YACjB,IAAI,CAAC,YAAY,GAAG,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;YACnE,MAAM;QACR,KAAK,cAAc;YACjB,IAAI,CAAC,YAAY,GAAG,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;YACnE,MAAM;QACR,KAAK,qBAAqB;YACxB,IAAI,CAAC,mBAAmB,GAAG,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;YAC1E,MAAM;QACR,KAAK,wBAAwB;YAC3B,IAAI,CAAC,sBAAsB,GAAG,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;YAC7E,MAAM;QACR,KAAK,sBAAsB;YACzB,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;gBAC9C,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC;gBACzD,CAAC,CAAC,SAAS,CAAC;YACd,MAAM;QACR,KAAK,cAAc;YACjB,IAAI,CAAC,YAAY,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;YAC7C,MAAM;QACR,KAAK,wBAAwB;YAC3B,IAAI,CAAC,sBAAsB,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;gBAChD,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC;gBACzD,CAAC,CAAC,SAAS,CAAC;YACd,MAAM;QACR,KAAK,WAAW;YACd,IAAI,CAAC,SAAS,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;YAC/D,MAAM;QACR,KAAK,kBAAkB;YACrB,IAAI,CAAC,gBAAgB,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;YACrD,MAAM;QACR,KAAK,oBAAoB;YACvB,IAAI,CAAC,kBAAkB,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;YACxE,MAAM;QACR,KAAK,sBAAsB;YACzB,IAAI,CAAC,oBAAoB,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;YAC1E,MAAM;QACR,KAAK,cAAc;YACjB,IAAI,CAAC,YAAY,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;YAC7C,MAAM;QACR,KAAK,gBAAgB;YACnB,IAAI,CAAC,cAAc,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;YACjD,MAAM;QACR,KAAK,uBAAuB;YAC1B,IAAI,CAAC,qBAAqB,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;YAC3E,MAAM;QACR,KAAK,qBAAqB;YACxB,IAAI,CAAC,mBAAmB,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;YACzE,MAAM;QACR,KAAK,0BAA0B;YAC7B,IAAI,CAAC,wBAAwB,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;YAC9E,MAAM;IACV,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAOD;;;;;;;GAOG;AACH,MAAM,UAAU,qBAAqB,CAAC,GAAmB,EAAE,MAAuB;IAChF,IAAI,KAAK,GAAsB;QAC7B,OAAO,EAAE,EAAE;QACX,MAAM,EAAE,KAAK;KACd,CAAC;IAEF,MAAM,SAAS,GAAG,IAAI,GAAG,EAAyC,CAAC;IAEnE,MAAM,MAAM,GAAG,GAAG,EAAE;QAClB,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,IAAI,CAAC;gBACH,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC1B,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,EAAE,KAAK,EAAE,CAAC,8BAA8B,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC/D,CAAC;QACH,CAAC;IACH,CAAC,CAAC;IAEF,OAAO;QACL;;WAEG;QACH,IAAI,OAAO;YACT,OAAO,KAAK,CAAC,OAAO,CAAC;QACvB,CAAC;QAED;;WAEG;QACH,IAAI,MAAM;YACR,OAAO,KAAK,CAAC,MAAM,CAAC;QACtB,CAAC;QAED;;WAEG;QACH,KAAK,CAAC,IAAI;YACR,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;gBACjD,sEAAsE;gBACtE,MAAM,OAAO,GAAG,GAAwD,CAAC;gBACzE,MAAM,QAAQ,GAAG,OAAO,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC;gBAC/C,KAAK,CAAC,OAAO,GAAG,qBAAqB,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;gBACtD,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;gBACpB,MAAM,EAAE,GAAG,EAAE,CAAC,sBAAsB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBACrE,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;YAClD,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,sEAAsE;gBACtE,wEAAwE;gBACxE,MAAM,EAAE,GAAG,EAAE,CAAC,uDAAuD,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBACpF,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;gBACpB,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;YACnD,CAAC;QACH,CAAC;QAED;;WAEG;QACH,KAAK,CAAC,iBAAiB;YACrB,MAAM,GAAG,CAAC,SAAS,CAAC;gBAClB,GAAG,EAAE,UAAU;gBACf,IAAI,EAAE,QAAQ,GAAG,aAAa;gBAC9B,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;oBACf,MAAM,MAAM,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;oBACzC,IAAI,CAAC,MAAM,EAAE,CAAC;wBACZ,OAAO;oBACT,CAAC;oBAED,MAAM,EAAE,GAAG,EAAE,CAAC,sBAAsB,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;oBACpF,KAAK,CAAC,OAAO,GAAG,mBAAmB,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;oBAC7E,MAAM,EAAE,CAAC;gBACX,CAAC;gBACD,GAAG,EAAE,CAAC,KAAK,EAAE,EAAE;oBACb,MAAM,EAAE,KAAK,EAAE,CAAC,kCAAkC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBACrE,CAAC;gBACD,IAAI,EAAE,GAAG,EAAE;oBACT,MAAM,EAAE,GAAG,EAAE,CAAC,+BAA+B,CAAC,CAAC;gBACjD,CAAC;aACF,CAAC,CAAC;YACH,MAAM,EAAE,GAAG,EAAE,CAAC,2CAA2C,CAAC,CAAC;QAC7D,CAAC;QAED;;WAEG;QACH,QAAQ,CAAC,QAA+C;YACtD,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACxB,OAAO,GAAG,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC1C,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"settings.js","sourceRoot":"","sources":["../../src/settings.ts"],"names":[],"mappings":"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"}