@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.
- package/README.md +130 -141
- package/dist/index.js +147 -138
- package/dist/index.js.map +1 -1
- package/dist/setup-api.js +2 -2
- package/dist/setup-entry.js +2 -2
- package/dist/setup-entry.js.map +1 -1
- package/dist/src/account-fields.js +7 -3
- package/dist/src/account-fields.js.map +1 -1
- package/dist/src/actions.js +73 -52
- package/dist/src/actions.js.map +1 -1
- package/dist/src/channel.js +51 -39
- package/dist/src/channel.js.map +1 -1
- package/dist/src/channel.runtime.js +61 -32
- package/dist/src/channel.runtime.js.map +1 -1
- package/dist/src/config-schema.js +24 -4
- package/dist/src/config-schema.js.map +1 -1
- package/dist/src/effective-owner.js.map +1 -1
- package/dist/src/gateway-status.js +55 -7
- package/dist/src/gateway-status.js.map +1 -1
- package/dist/src/monitor/approval.js +71 -62
- package/dist/src/monitor/approval.js.map +1 -1
- package/dist/src/monitor/command-auth.js +7 -7
- package/dist/src/monitor/command-auth.js.map +1 -1
- package/dist/src/monitor/command-bridge.js +3 -2
- package/dist/src/monitor/command-bridge.js.map +1 -1
- package/dist/src/monitor/computing-presence.js +76 -12
- package/dist/src/monitor/computing-presence.js.map +1 -1
- package/dist/src/monitor/discovery.js +16 -9
- package/dist/src/monitor/discovery.js.map +1 -1
- package/dist/src/monitor/history.js +58 -26
- package/dist/src/monitor/history.js.map +1 -1
- package/dist/src/monitor/index.js +2771 -2483
- package/dist/src/monitor/index.js.map +1 -1
- package/dist/src/monitor/media.js +106 -78
- package/dist/src/monitor/media.js.map +1 -1
- package/dist/src/monitor/nudge-runner.js +36 -27
- package/dist/src/monitor/nudge-runner.js.map +1 -1
- package/dist/src/monitor/nudge-state.js +7 -11
- package/dist/src/monitor/nudge-state.js.map +1 -1
- package/dist/src/monitor/owner-reply-persistence.js +27 -26
- package/dist/src/monitor/owner-reply-persistence.js.map +1 -1
- package/dist/src/monitor/processed-messages.js.map +1 -1
- package/dist/src/monitor/settings-sync.js +1 -8
- package/dist/src/monitor/settings-sync.js.map +1 -1
- package/dist/src/monitor/utils.js +77 -71
- package/dist/src/monitor/utils.js.map +1 -1
- package/dist/src/nudge-decision.js +40 -43
- package/dist/src/nudge-decision.js.map +1 -1
- package/dist/src/nudge-messages.js +9 -9
- package/dist/src/nudge-scheduler.js.map +1 -1
- package/dist/src/owner-listen-command.js +38 -28
- package/dist/src/owner-listen-command.js.map +1 -1
- package/dist/src/pending-nudge.js.map +1 -1
- package/dist/src/runtime.js +10 -6
- package/dist/src/runtime.js.map +1 -1
- package/dist/src/session-roles.js +2 -1
- package/dist/src/session-roles.js.map +1 -1
- package/dist/src/settings.js +233 -102
- package/dist/src/settings.js.map +1 -1
- package/dist/src/setup-core.js +32 -32
- package/dist/src/setup-core.js.map +1 -1
- package/dist/src/setup-surface.js +19 -19
- package/dist/src/setup-surface.js.map +1 -1
- package/dist/src/shared-state.js +46 -0
- package/dist/src/shared-state.js.map +1 -0
- package/dist/src/targets.js +17 -10
- package/dist/src/targets.js.map +1 -1
- package/dist/src/telemetry.js +17 -14
- package/dist/src/telemetry.js.map +1 -1
- package/dist/src/tlon-binary.js +20 -12
- package/dist/src/tlon-binary.js.map +1 -1
- package/dist/src/tlon-tool-guard.js +5 -5
- package/dist/src/tool-trace.js +17 -13
- package/dist/src/tool-trace.js.map +1 -1
- package/dist/src/types.js +30 -12
- package/dist/src/types.js.map +1 -1
- package/dist/src/urbit/api-client.js +16 -12
- package/dist/src/urbit/api-client.js.map +1 -1
- package/dist/src/urbit/auth.js +9 -9
- package/dist/src/urbit/auth.js.map +1 -1
- package/dist/src/urbit/base-url.js +11 -11
- package/dist/src/urbit/base-url.js.map +1 -1
- package/dist/src/urbit/channel-ops.js +25 -19
- package/dist/src/urbit/channel-ops.js.map +1 -1
- package/dist/src/urbit/context.js +8 -8
- package/dist/src/urbit/context.js.map +1 -1
- package/dist/src/urbit/errors.js +33 -7
- package/dist/src/urbit/errors.js.map +1 -1
- package/dist/src/urbit/fetch.js +3 -3
- package/dist/src/urbit/fetch.js.map +1 -1
- package/dist/src/urbit/http-poke.js +10 -10
- package/dist/src/urbit/http-poke.js.map +1 -1
- package/dist/src/urbit/send.js +27 -23
- package/dist/src/urbit/send.js.map +1 -1
- package/dist/src/urbit/sse-client.js +45 -41
- package/dist/src/urbit/sse-client.js.map +1 -1
- package/dist/src/urbit/story.js +31 -30
- package/dist/src/urbit/story.js.map +1 -1
- package/dist/src/urbit/upload.js +8 -8
- package/dist/src/urbit/upload.js.map +1 -1
- package/dist/src/version.generated.js +2 -1
- package/dist/src/version.generated.js.map +1 -1
- package/openclaw.plugin.json +37 -0
- package/package.json +35 -15
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processed-messages.js","sourceRoot":"","sources":["../../../src/monitor/processed-messages.ts"],"names":[],"mappings":"AAMA,MAAM,UAAU,6BAA6B,
|
|
1
|
+
{"version":3,"file":"processed-messages.js","sourceRoot":"","sources":["../../../src/monitor/processed-messages.ts"],"names":[],"mappings":"AAMA,MAAM,UAAU,6BAA6B,CAC3C,KAAK,GAAG,IAAI;IAEZ,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,MAAM,IAAI,GAAG,CAAC,EAAkB,EAAE,EAAE;QAClC,MAAM,OAAO,GAAG,EAAE,EAAE,IAAI,EAAE,CAAC;QAC3B,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YACtB,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAClB,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACpB,IAAI,KAAK,CAAC,MAAM,GAAG,KAAK,EAAE,CAAC;YACzB,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC;YACtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;gBACrC,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;gBAC7B,IAAI,MAAM,EAAE,CAAC;oBACX,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBACtB,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IAEF,MAAM,GAAG,GAAG,CAAC,EAAkB,EAAE,EAAE;QACjC,MAAM,OAAO,GAAG,EAAE,EAAE,IAAI,EAAE,CAAC;QAC3B,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC,CAAC;IAEF,OAAO;QACL,IAAI;QACJ,GAAG;QACH,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI;KACtB,CAAC;AACJ,CAAC"}
|
|
@@ -1,11 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
* Pure helper for settings mirror synchronization.
|
|
3
|
-
*
|
|
4
|
-
* Detects ownerShip and pendingNudge transitions from the settings mirror.
|
|
5
|
-
* The scheduler no longer routes through this helper for lastNudgeStage —
|
|
6
|
-
* the authoritative stage lives in a fresh scry plus a local shadow.
|
|
7
|
-
*/
|
|
8
|
-
import { normalizeShip } from "../targets.js";
|
|
1
|
+
import { normalizeShip } from '../targets.js';
|
|
9
2
|
export function resolveSettingsMirrorSync(params) {
|
|
10
3
|
const { prevSettings, newSettings, fileConfigOwnerShip } = params;
|
|
11
4
|
// ownerShip: compare string values (normalize for comparison)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings-sync.js","sourceRoot":"","sources":["../../../src/monitor/settings-sync.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"settings-sync.js","sourceRoot":"","sources":["../../../src/monitor/settings-sync.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAS9C,MAAM,UAAU,yBAAyB,CAAC,MAIzC;IACC,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,mBAAmB,EAAE,GAAG,MAAM,CAAC;IAElE,8DAA8D;IAC9D,MAAM,SAAS,GAAG,YAAY,CAAC,SAAS,CAAC;IACzC,MAAM,QAAQ,GAAG,WAAW,CAAC,SAAS,CAAC;IACvC,MAAM,mBAAmB,GAAG,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACxE,MAAM,kBAAkB,GAAG,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACrE,MAAM,gBAAgB,GAAG,mBAAmB,KAAK,kBAAkB,CAAC;IACpE,MAAM,kBAAkB,GACtB,kBAAkB,IAAI,mBAAmB,CAAC;IAE5C,iFAAiF;IACjF,MAAM,mBAAmB,GACvB,YAAY,CAAC,YAAY,KAAK,WAAW,CAAC,YAAY,CAAC;IACzD,MAAM,YAAY,GAAwB,WAAW,CAAC,YAAY,IAAI,IAAI,CAAC;IAE3E,OAAO;QACL,gBAAgB;QAChB,kBAAkB;QAClB,mBAAmB;QACnB,YAAY;KACb,CAAC;AACJ,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { normalizeShip } from
|
|
1
|
+
import { normalizeShip } from '../targets.js';
|
|
2
2
|
// Extract all cites from message content
|
|
3
3
|
export function extractCites(content) {
|
|
4
4
|
if (!content || !Array.isArray(content)) {
|
|
@@ -6,32 +6,32 @@ export function extractCites(content) {
|
|
|
6
6
|
}
|
|
7
7
|
const cites = [];
|
|
8
8
|
for (const verse of content) {
|
|
9
|
-
if (verse?.block?.cite && typeof verse.block.cite ===
|
|
9
|
+
if (verse?.block?.cite && typeof verse.block.cite === 'object') {
|
|
10
10
|
const cite = verse.block.cite;
|
|
11
|
-
if (cite.chan && typeof cite.chan ===
|
|
11
|
+
if (cite.chan && typeof cite.chan === 'object') {
|
|
12
12
|
const { nest, where } = cite.chan;
|
|
13
13
|
const whereMatch = where?.match(/\/msg\/(~[a-z-]+)\/(.+)/);
|
|
14
14
|
cites.push({
|
|
15
|
-
type:
|
|
15
|
+
type: 'chan',
|
|
16
16
|
nest,
|
|
17
17
|
where,
|
|
18
18
|
author: whereMatch?.[1],
|
|
19
19
|
postId: whereMatch?.[2],
|
|
20
20
|
});
|
|
21
21
|
}
|
|
22
|
-
else if (cite.group && typeof cite.group ===
|
|
23
|
-
cites.push({ type:
|
|
22
|
+
else if (cite.group && typeof cite.group === 'string') {
|
|
23
|
+
cites.push({ type: 'group', group: cite.group });
|
|
24
24
|
}
|
|
25
|
-
else if (cite.desk && typeof cite.desk ===
|
|
25
|
+
else if (cite.desk && typeof cite.desk === 'object') {
|
|
26
26
|
cites.push({
|
|
27
|
-
type:
|
|
27
|
+
type: 'desk',
|
|
28
28
|
flag: cite.desk.flag,
|
|
29
29
|
where: cite.desk.where,
|
|
30
30
|
});
|
|
31
31
|
}
|
|
32
|
-
else if (cite.bait && typeof cite.bait ===
|
|
32
|
+
else if (cite.bait && typeof cite.bait === 'object') {
|
|
33
33
|
cites.push({
|
|
34
|
-
type:
|
|
34
|
+
type: 'bait',
|
|
35
35
|
group: cite.bait.group,
|
|
36
36
|
nest: cite.bait.graph,
|
|
37
37
|
where: cite.bait.where,
|
|
@@ -43,27 +43,29 @@ export function extractCites(content) {
|
|
|
43
43
|
}
|
|
44
44
|
export function formatModelName(modelString) {
|
|
45
45
|
if (!modelString) {
|
|
46
|
-
return
|
|
46
|
+
return 'AI';
|
|
47
47
|
}
|
|
48
|
-
const modelName = modelString.includes(
|
|
48
|
+
const modelName = modelString.includes('/')
|
|
49
|
+
? modelString.split('/')[1]
|
|
50
|
+
: modelString;
|
|
49
51
|
const modelMappings = {
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
52
|
+
'claude-opus-4-5': 'Claude Opus 4.5',
|
|
53
|
+
'claude-sonnet-4-5': 'Claude Sonnet 4.5',
|
|
54
|
+
'claude-sonnet-3-5': 'Claude Sonnet 3.5',
|
|
55
|
+
'gpt-4o': 'GPT-4o',
|
|
56
|
+
'gpt-4-turbo': 'GPT-4 Turbo',
|
|
57
|
+
'gpt-4': 'GPT-4',
|
|
58
|
+
'gemini-2.0-flash': 'Gemini 2.0 Flash',
|
|
59
|
+
'gemini-pro': 'Gemini Pro',
|
|
58
60
|
};
|
|
59
61
|
if (modelMappings[modelName]) {
|
|
60
62
|
return modelMappings[modelName];
|
|
61
63
|
}
|
|
62
64
|
return modelName
|
|
63
|
-
.replace(/-/g,
|
|
64
|
-
.split(
|
|
65
|
+
.replace(/-/g, ' ')
|
|
66
|
+
.split(' ')
|
|
65
67
|
.map((word) => word.charAt(0).toUpperCase() + word.slice(1))
|
|
66
|
-
.join(
|
|
68
|
+
.join(' ');
|
|
67
69
|
}
|
|
68
70
|
export function isBotMentioned(messageText, botShipName, nickname) {
|
|
69
71
|
if (!messageText || !botShipName) {
|
|
@@ -71,15 +73,15 @@ export function isBotMentioned(messageText, botShipName, nickname) {
|
|
|
71
73
|
}
|
|
72
74
|
// Check for ship mention
|
|
73
75
|
const normalizedBotShip = normalizeShip(botShipName);
|
|
74
|
-
const escapedShip = normalizedBotShip.replace(/[.*+?^${}()|[\]\\]/g,
|
|
75
|
-
const mentionPattern = new RegExp(`(^|\\s)${escapedShip}(?=\\s|$)`,
|
|
76
|
+
const escapedShip = normalizedBotShip.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
77
|
+
const mentionPattern = new RegExp(`(^|\\s)${escapedShip}(?=\\s|$)`, 'i');
|
|
76
78
|
if (mentionPattern.test(messageText)) {
|
|
77
79
|
return true;
|
|
78
80
|
}
|
|
79
81
|
// Check for nickname mention (case-insensitive, word boundary)
|
|
80
82
|
if (nickname) {
|
|
81
|
-
const escapedNickname = nickname.replace(/[.*+?^${}()|[\]\\]/g,
|
|
82
|
-
const nicknamePattern = new RegExp(`(^|\\s)${escapedNickname}(?=\\s|$|[,!?.])`,
|
|
83
|
+
const escapedNickname = nickname.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
84
|
+
const nicknamePattern = new RegExp(`(^|\\s)${escapedNickname}(?=\\s|$|[,!?.])`, 'i');
|
|
83
85
|
if (nicknamePattern.test(messageText)) {
|
|
84
86
|
return true;
|
|
85
87
|
}
|
|
@@ -98,25 +100,25 @@ export function isBotMentioned(messageText, botShipName, nickname) {
|
|
|
98
100
|
*/
|
|
99
101
|
export function shouldEngageInGroup(opts) {
|
|
100
102
|
if (opts.mentioned) {
|
|
101
|
-
return { engage: true, reason:
|
|
103
|
+
return { engage: true, reason: 'mention' };
|
|
102
104
|
}
|
|
103
105
|
if (opts.inParticipatedThread) {
|
|
104
|
-
return { engage: true, reason:
|
|
106
|
+
return { engage: true, reason: 'thread' };
|
|
105
107
|
}
|
|
106
108
|
if (opts.isOwnerBlob) {
|
|
107
|
-
return { engage: true, reason:
|
|
109
|
+
return { engage: true, reason: 'owner-blob' };
|
|
108
110
|
}
|
|
109
111
|
if (!opts.ownerListenEnabled) {
|
|
110
|
-
return { engage: false, reason:
|
|
112
|
+
return { engage: false, reason: 'skip' };
|
|
111
113
|
}
|
|
112
114
|
const isOwner = opts.ownerShip !== null && opts.senderShip === opts.ownerShip;
|
|
113
115
|
const isOwned = opts.groupHost !== null &&
|
|
114
116
|
(opts.groupHost === opts.ownerShip || opts.groupHost === opts.botShipName);
|
|
115
117
|
const disabled = opts.ownerListenDisabledChannels.has(opts.channelNest);
|
|
116
118
|
if (isOwner && isOwned && !disabled) {
|
|
117
|
-
return { engage: true, reason:
|
|
119
|
+
return { engage: true, reason: 'owner-owned' };
|
|
118
120
|
}
|
|
119
|
-
return { engage: false, reason:
|
|
121
|
+
return { engage: false, reason: 'skip' };
|
|
120
122
|
}
|
|
121
123
|
/** Parse "tlon:group:<nest>" → "<nest>", else null. */
|
|
122
124
|
export function nestFromCtxFrom(from) {
|
|
@@ -138,14 +140,16 @@ export function stripBotMention(messageText, botShipName) {
|
|
|
138
140
|
if (!messageText || !botShipName) {
|
|
139
141
|
return messageText;
|
|
140
142
|
}
|
|
141
|
-
return messageText.replace(normalizeShip(botShipName),
|
|
143
|
+
return messageText.replace(normalizeShip(botShipName), '').trim();
|
|
142
144
|
}
|
|
143
145
|
export function isDmAllowed(senderShip, allowlist) {
|
|
144
146
|
if (!allowlist || allowlist.length === 0) {
|
|
145
147
|
return false;
|
|
146
148
|
}
|
|
147
149
|
const normalizedSender = normalizeShip(senderShip);
|
|
148
|
-
return allowlist
|
|
150
|
+
return allowlist
|
|
151
|
+
.map((ship) => normalizeShip(ship))
|
|
152
|
+
.some((ship) => ship === normalizedSender);
|
|
149
153
|
}
|
|
150
154
|
/**
|
|
151
155
|
* Check if a group invite from a ship should be auto-accepted.
|
|
@@ -160,24 +164,26 @@ export function isGroupInviteAllowed(inviterShip, allowlist) {
|
|
|
160
164
|
return false;
|
|
161
165
|
}
|
|
162
166
|
const normalizedInviter = normalizeShip(inviterShip);
|
|
163
|
-
return allowlist
|
|
167
|
+
return allowlist
|
|
168
|
+
.map((ship) => normalizeShip(ship))
|
|
169
|
+
.some((ship) => ship === normalizedInviter);
|
|
164
170
|
}
|
|
165
171
|
// Helper to recursively extract text from inline content
|
|
166
172
|
function extractInlineText(items) {
|
|
167
173
|
return items
|
|
168
174
|
.map((item) => {
|
|
169
|
-
if (typeof item ===
|
|
175
|
+
if (typeof item === 'string') {
|
|
170
176
|
return item;
|
|
171
177
|
}
|
|
172
|
-
if (item && typeof item ===
|
|
178
|
+
if (item && typeof item === 'object') {
|
|
173
179
|
if (item.ship) {
|
|
174
180
|
return item.ship;
|
|
175
181
|
}
|
|
176
|
-
if (
|
|
177
|
-
return `@${item.sect ||
|
|
182
|
+
if ('sect' in item) {
|
|
183
|
+
return `@${item.sect || 'all'}`;
|
|
178
184
|
}
|
|
179
|
-
if (item[
|
|
180
|
-
return `\`${item[
|
|
185
|
+
if (item['inline-code']) {
|
|
186
|
+
return `\`${item['inline-code']}\``;
|
|
181
187
|
}
|
|
182
188
|
if (item.code) {
|
|
183
189
|
return `\`${item.code}\``;
|
|
@@ -195,13 +201,13 @@ function extractInlineText(items) {
|
|
|
195
201
|
return `~~${extractInlineText(item.strike)}~~`;
|
|
196
202
|
}
|
|
197
203
|
}
|
|
198
|
-
return
|
|
204
|
+
return '';
|
|
199
205
|
})
|
|
200
|
-
.join(
|
|
206
|
+
.join('');
|
|
201
207
|
}
|
|
202
208
|
export function extractMessageText(content) {
|
|
203
209
|
if (!content || !Array.isArray(content)) {
|
|
204
|
-
return
|
|
210
|
+
return '';
|
|
205
211
|
}
|
|
206
212
|
return content
|
|
207
213
|
.map((verse) => {
|
|
@@ -209,26 +215,26 @@ export function extractMessageText(content) {
|
|
|
209
215
|
if (verse.inline && Array.isArray(verse.inline)) {
|
|
210
216
|
return verse.inline
|
|
211
217
|
.map((item) => {
|
|
212
|
-
if (typeof item ===
|
|
218
|
+
if (typeof item === 'string') {
|
|
213
219
|
return item;
|
|
214
220
|
}
|
|
215
|
-
if (item && typeof item ===
|
|
221
|
+
if (item && typeof item === 'object') {
|
|
216
222
|
if (item.ship) {
|
|
217
223
|
return item.ship;
|
|
218
224
|
}
|
|
219
225
|
// Handle sect (role mentions like @all)
|
|
220
|
-
if (
|
|
221
|
-
return `@${item.sect ||
|
|
226
|
+
if ('sect' in item) {
|
|
227
|
+
return `@${item.sect || 'all'}`;
|
|
222
228
|
}
|
|
223
229
|
if (item.break !== undefined) {
|
|
224
|
-
return
|
|
230
|
+
return '\n';
|
|
225
231
|
}
|
|
226
232
|
if (item.link && item.link.href) {
|
|
227
233
|
return item.link.href;
|
|
228
234
|
}
|
|
229
235
|
// Handle inline code (Tlon uses "inline-code" key)
|
|
230
|
-
if (item[
|
|
231
|
-
return `\`${item[
|
|
236
|
+
if (item['inline-code']) {
|
|
237
|
+
return `\`${item['inline-code']}\``;
|
|
232
238
|
}
|
|
233
239
|
if (item.code) {
|
|
234
240
|
return `\`${item.code}\``;
|
|
@@ -248,36 +254,36 @@ export function extractMessageText(content) {
|
|
|
248
254
|
return `> ${extractInlineText(item.blockquote)}`;
|
|
249
255
|
}
|
|
250
256
|
}
|
|
251
|
-
return
|
|
257
|
+
return '';
|
|
252
258
|
})
|
|
253
|
-
.join(
|
|
259
|
+
.join('');
|
|
254
260
|
}
|
|
255
261
|
// Handle block content (images, code blocks, etc.)
|
|
256
|
-
if (verse.block && typeof verse.block ===
|
|
262
|
+
if (verse.block && typeof verse.block === 'object') {
|
|
257
263
|
const block = verse.block;
|
|
258
264
|
// Image blocks
|
|
259
265
|
if (block.image && block.image.src) {
|
|
260
|
-
const alt = block.image.alt ? ` (${block.image.alt})` :
|
|
266
|
+
const alt = block.image.alt ? ` (${block.image.alt})` : '';
|
|
261
267
|
return `\n${block.image.src}${alt}\n`;
|
|
262
268
|
}
|
|
263
269
|
// Code blocks
|
|
264
|
-
if (block.code && typeof block.code ===
|
|
265
|
-
const lang = block.code.lang ||
|
|
266
|
-
const code = block.code.code ||
|
|
270
|
+
if (block.code && typeof block.code === 'object') {
|
|
271
|
+
const lang = block.code.lang || '';
|
|
272
|
+
const code = block.code.code || '';
|
|
267
273
|
return `\n\`\`\`${lang}\n${code}\n\`\`\`\n`;
|
|
268
274
|
}
|
|
269
275
|
// Header blocks
|
|
270
|
-
if (block.header && typeof block.header ===
|
|
276
|
+
if (block.header && typeof block.header === 'object') {
|
|
271
277
|
const text = block.header.content
|
|
272
|
-
?.map((item) => (typeof item ===
|
|
273
|
-
.join(
|
|
278
|
+
?.map((item) => (typeof item === 'string' ? item : ''))
|
|
279
|
+
.join('') || '';
|
|
274
280
|
return `\n## ${text}\n`;
|
|
275
281
|
}
|
|
276
282
|
// Cite/quote blocks - parse the reference structure
|
|
277
|
-
if (block.cite && typeof block.cite ===
|
|
283
|
+
if (block.cite && typeof block.cite === 'object') {
|
|
278
284
|
const cite = block.cite;
|
|
279
285
|
// ChanCite - reference to a channel message
|
|
280
|
-
if (cite.chan && typeof cite.chan ===
|
|
286
|
+
if (cite.chan && typeof cite.chan === 'object') {
|
|
281
287
|
const { nest, where } = cite.chan;
|
|
282
288
|
// where is typically /msg/~author/timestamp
|
|
283
289
|
const whereMatch = where?.match(/\/msg\/(~[a-z-]+)\/(.+)/);
|
|
@@ -288,23 +294,23 @@ export function extractMessageText(content) {
|
|
|
288
294
|
return `\n> [quoted from ${nest}]\n`;
|
|
289
295
|
}
|
|
290
296
|
// GroupCite - reference to a group
|
|
291
|
-
if (cite.group && typeof cite.group ===
|
|
297
|
+
if (cite.group && typeof cite.group === 'string') {
|
|
292
298
|
return `\n> [ref: group ${cite.group}]\n`;
|
|
293
299
|
}
|
|
294
300
|
// DeskCite - reference to an app/desk
|
|
295
|
-
if (cite.desk && typeof cite.desk ===
|
|
301
|
+
if (cite.desk && typeof cite.desk === 'object') {
|
|
296
302
|
return `\n> [ref: ${cite.desk.flag}]\n`;
|
|
297
303
|
}
|
|
298
304
|
// BaitCite - reference with group+graph context
|
|
299
|
-
if (cite.bait && typeof cite.bait ===
|
|
305
|
+
if (cite.bait && typeof cite.bait === 'object') {
|
|
300
306
|
return `\n> [ref: ${cite.bait.graph} in ${cite.bait.group}]\n`;
|
|
301
307
|
}
|
|
302
308
|
return `\n> [quoted message]\n`;
|
|
303
309
|
}
|
|
304
310
|
}
|
|
305
|
-
return
|
|
311
|
+
return '';
|
|
306
312
|
})
|
|
307
|
-
.join(
|
|
313
|
+
.join('\n')
|
|
308
314
|
.trim();
|
|
309
315
|
}
|
|
310
316
|
export function isSummarizationRequest(messageText) {
|
|
@@ -342,9 +348,9 @@ export function sanitizeMessageText(text) {
|
|
|
342
348
|
return text;
|
|
343
349
|
}
|
|
344
350
|
// Strip [BLOCK_USER: ~ship | reason] directives entirely
|
|
345
|
-
let sanitized = text.replace(/\[BLOCK_USER:\s*~[\w-]+\s*\|\s*.+?\]/gi,
|
|
351
|
+
let sanitized = text.replace(/\[BLOCK_USER:\s*~[\w-]+\s*\|\s*.+?\]/gi, '');
|
|
346
352
|
// Convert role tags from [brackets] to (parentheses)
|
|
347
|
-
sanitized = sanitized.replace(/\[(owner|user|admin|system)\]/gi,
|
|
353
|
+
sanitized = sanitized.replace(/\[(owner|user|admin|system)\]/gi, '($1)');
|
|
348
354
|
return sanitized;
|
|
349
355
|
}
|
|
350
356
|
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/monitor/utils.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/monitor/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
* All functions here are deterministic and do not perform I/O. The
|
|
5
|
-
* scheduler uses them to compute whether a tick should send anything.
|
|
6
|
-
*/
|
|
7
|
-
export const DEFAULT_ACTIVE_HOURS_START = "09:00";
|
|
8
|
-
export const DEFAULT_ACTIVE_HOURS_END = "21:00";
|
|
9
|
-
export const DEFAULT_ACTIVE_HOURS_TIMEZONE = "America/New_York";
|
|
1
|
+
export const DEFAULT_ACTIVE_HOURS_START = '09:00';
|
|
2
|
+
export const DEFAULT_ACTIVE_HOURS_END = '21:00';
|
|
3
|
+
export const DEFAULT_ACTIVE_HOURS_TIMEZONE = 'America/New_York';
|
|
10
4
|
const ONE_DAY_MS = 24 * 60 * 60 * 1000;
|
|
11
5
|
/** Whole 24-hour days between two absolute instants. */
|
|
12
6
|
export function daysBetween(earlierMs, laterMs) {
|
|
@@ -39,11 +33,11 @@ export function computeTargetStage(daysIdle) {
|
|
|
39
33
|
const ACTIVE_HOURS_TIME_PATTERN = /^(?:([01]\d|2[0-3]):([0-5]\d)|24:00)$/;
|
|
40
34
|
function resolveUserTimezone(cfg) {
|
|
41
35
|
const configured = cfg?.agents?.defaults?.userTimezone;
|
|
42
|
-
if (typeof configured ===
|
|
36
|
+
if (typeof configured === 'string') {
|
|
43
37
|
const trimmed = configured.trim();
|
|
44
38
|
if (trimmed) {
|
|
45
39
|
try {
|
|
46
|
-
new Intl.DateTimeFormat(
|
|
40
|
+
new Intl.DateTimeFormat('en-US', { timeZone: trimmed }).format(new Date());
|
|
47
41
|
return trimmed;
|
|
48
42
|
}
|
|
49
43
|
catch {
|
|
@@ -51,18 +45,18 @@ function resolveUserTimezone(cfg) {
|
|
|
51
45
|
}
|
|
52
46
|
}
|
|
53
47
|
}
|
|
54
|
-
return Intl.DateTimeFormat().resolvedOptions().timeZone?.trim() ||
|
|
48
|
+
return Intl.DateTimeFormat().resolvedOptions().timeZone?.trim() || 'UTC';
|
|
55
49
|
}
|
|
56
50
|
function resolveActiveHoursTimezone(cfg, raw) {
|
|
57
|
-
const trimmed = typeof raw ===
|
|
58
|
-
if (!trimmed || trimmed ===
|
|
51
|
+
const trimmed = typeof raw === 'string' ? raw.trim() : '';
|
|
52
|
+
if (!trimmed || trimmed === 'user') {
|
|
59
53
|
return resolveUserTimezone(cfg);
|
|
60
54
|
}
|
|
61
|
-
if (trimmed ===
|
|
62
|
-
return Intl.DateTimeFormat().resolvedOptions().timeZone?.trim() ||
|
|
55
|
+
if (trimmed === 'local') {
|
|
56
|
+
return Intl.DateTimeFormat().resolvedOptions().timeZone?.trim() || 'UTC';
|
|
63
57
|
}
|
|
64
58
|
try {
|
|
65
|
-
new Intl.DateTimeFormat(
|
|
59
|
+
new Intl.DateTimeFormat('en-US', { timeZone: trimmed }).format(new Date());
|
|
66
60
|
return trimmed;
|
|
67
61
|
}
|
|
68
62
|
catch {
|
|
@@ -70,14 +64,14 @@ function resolveActiveHoursTimezone(cfg, raw) {
|
|
|
70
64
|
}
|
|
71
65
|
}
|
|
72
66
|
function parseActiveHoursTime(raw, opts) {
|
|
73
|
-
if (typeof raw !==
|
|
67
|
+
if (typeof raw !== 'string') {
|
|
74
68
|
return null;
|
|
75
69
|
}
|
|
76
70
|
const trimmed = raw.trim();
|
|
77
71
|
if (!ACTIVE_HOURS_TIME_PATTERN.test(trimmed)) {
|
|
78
72
|
return null;
|
|
79
73
|
}
|
|
80
|
-
const [hourStr, minuteStr] = trimmed.split(
|
|
74
|
+
const [hourStr, minuteStr] = trimmed.split(':');
|
|
81
75
|
const hour = Number(hourStr);
|
|
82
76
|
const minute = Number(minuteStr);
|
|
83
77
|
if (!Number.isFinite(hour) || !Number.isFinite(minute)) {
|
|
@@ -98,7 +92,7 @@ function parseActiveHoursTime(raw, opts) {
|
|
|
98
92
|
* precedence tier's value for that field.
|
|
99
93
|
*/
|
|
100
94
|
function overlayActiveHoursTime(raw, opts) {
|
|
101
|
-
if (typeof raw !==
|
|
95
|
+
if (typeof raw !== 'string') {
|
|
102
96
|
return null;
|
|
103
97
|
}
|
|
104
98
|
const trimmed = raw.trim();
|
|
@@ -117,21 +111,21 @@ function overlayActiveHoursTime(raw, opts) {
|
|
|
117
111
|
* caller falls through to the baseline timezone in that case.
|
|
118
112
|
*/
|
|
119
113
|
function overlayActiveHoursTimezone(cfg, raw) {
|
|
120
|
-
if (typeof raw !==
|
|
114
|
+
if (typeof raw !== 'string') {
|
|
121
115
|
return null;
|
|
122
116
|
}
|
|
123
117
|
const trimmed = raw.trim();
|
|
124
118
|
if (!trimmed) {
|
|
125
119
|
return null;
|
|
126
120
|
}
|
|
127
|
-
if (trimmed ===
|
|
121
|
+
if (trimmed === 'user') {
|
|
128
122
|
return resolveUserTimezone(cfg);
|
|
129
123
|
}
|
|
130
|
-
if (trimmed ===
|
|
124
|
+
if (trimmed === 'local') {
|
|
131
125
|
return Intl.DateTimeFormat().resolvedOptions().timeZone?.trim() || null;
|
|
132
126
|
}
|
|
133
127
|
try {
|
|
134
|
-
new Intl.DateTimeFormat(
|
|
128
|
+
new Intl.DateTimeFormat('en-US', { timeZone: trimmed }).format(new Date());
|
|
135
129
|
return trimmed;
|
|
136
130
|
}
|
|
137
131
|
catch {
|
|
@@ -142,8 +136,8 @@ function activeHoursFromShape(cfg, raw) {
|
|
|
142
136
|
if (!raw) {
|
|
143
137
|
return null;
|
|
144
138
|
}
|
|
145
|
-
const start = typeof raw.start ===
|
|
146
|
-
const end = typeof raw.end ===
|
|
139
|
+
const start = typeof raw.start === 'string' ? raw.start.trim() : undefined;
|
|
140
|
+
const end = typeof raw.end === 'string' ? raw.end.trim() : undefined;
|
|
147
141
|
if (!start || !end) {
|
|
148
142
|
return null;
|
|
149
143
|
}
|
|
@@ -159,15 +153,16 @@ function activeHoursFromShape(cfg, raw) {
|
|
|
159
153
|
}
|
|
160
154
|
function activeHoursFromChannelsTlon(cfg) {
|
|
161
155
|
const tlon = cfg?.channels?.tlon;
|
|
162
|
-
const raw = tlon
|
|
163
|
-
|
|
156
|
+
const raw = tlon
|
|
157
|
+
?.nudgeActiveHours;
|
|
158
|
+
if (!raw || typeof raw !== 'object') {
|
|
164
159
|
return null;
|
|
165
160
|
}
|
|
166
161
|
return activeHoursFromShape(cfg, raw);
|
|
167
162
|
}
|
|
168
163
|
function activeHoursFromFileConfig(cfg) {
|
|
169
164
|
const agentsDefaults = cfg?.agents?.defaults?.heartbeat?.activeHours;
|
|
170
|
-
if (!agentsDefaults || typeof agentsDefaults !==
|
|
165
|
+
if (!agentsDefaults || typeof agentsDefaults !== 'object') {
|
|
171
166
|
return null;
|
|
172
167
|
}
|
|
173
168
|
return activeHoursFromShape(cfg, agentsDefaults);
|
|
@@ -200,7 +195,9 @@ export function resolveActiveHours(settings, cfg) {
|
|
|
200
195
|
end: DEFAULT_ACTIVE_HOURS_END,
|
|
201
196
|
timezone: DEFAULT_ACTIVE_HOURS_TIMEZONE,
|
|
202
197
|
};
|
|
203
|
-
const startOverride = overlayActiveHoursTime(settings.nudgeActiveHoursStart, {
|
|
198
|
+
const startOverride = overlayActiveHoursTime(settings.nudgeActiveHoursStart, {
|
|
199
|
+
allow24: false,
|
|
200
|
+
});
|
|
204
201
|
const endOverride = overlayActiveHoursTime(settings.nudgeActiveHoursEnd, {
|
|
205
202
|
allow24: true,
|
|
206
203
|
});
|
|
@@ -215,33 +212,33 @@ export function resolveActiveHours(settings, cfg) {
|
|
|
215
212
|
* Derive "HH:MM" for `date` in the given IANA timezone.
|
|
216
213
|
*/
|
|
217
214
|
function formatLocalHhMm(date, timezone) {
|
|
218
|
-
const fmt = new Intl.DateTimeFormat(
|
|
215
|
+
const fmt = new Intl.DateTimeFormat('en-GB', {
|
|
219
216
|
timeZone: timezone,
|
|
220
|
-
hour:
|
|
221
|
-
minute:
|
|
217
|
+
hour: '2-digit',
|
|
218
|
+
minute: '2-digit',
|
|
222
219
|
hour12: false,
|
|
223
220
|
});
|
|
224
221
|
const parts = fmt.formatToParts(date);
|
|
225
|
-
let hh =
|
|
226
|
-
let mm =
|
|
222
|
+
let hh = '00';
|
|
223
|
+
let mm = '00';
|
|
227
224
|
for (const part of parts) {
|
|
228
|
-
if (part.type ===
|
|
225
|
+
if (part.type === 'hour') {
|
|
229
226
|
hh = part.value;
|
|
230
227
|
}
|
|
231
|
-
if (part.type ===
|
|
228
|
+
if (part.type === 'minute') {
|
|
232
229
|
mm = part.value;
|
|
233
230
|
}
|
|
234
231
|
}
|
|
235
232
|
// `Intl.DateTimeFormat` with `hour12: false` can yield "24:00" at midnight
|
|
236
233
|
// on some engines; normalize to "00:00" for comparison consistency.
|
|
237
|
-
if (hh ===
|
|
238
|
-
hh =
|
|
234
|
+
if (hh === '24') {
|
|
235
|
+
hh = '00';
|
|
239
236
|
}
|
|
240
237
|
return `${hh}:${mm}`;
|
|
241
238
|
}
|
|
242
239
|
function resolveMinutesInTimeZone(date, timezone) {
|
|
243
240
|
const local = formatLocalHhMm(date, timezone);
|
|
244
|
-
const [hourStr, minuteStr] = local.split(
|
|
241
|
+
const [hourStr, minuteStr] = local.split(':');
|
|
245
242
|
const hour = Number(hourStr);
|
|
246
243
|
const minute = Number(minuteStr);
|
|
247
244
|
if (!Number.isFinite(hour) || !Number.isFinite(minute)) {
|
|
@@ -282,13 +279,13 @@ export function inActiveHours(date, activeHours) {
|
|
|
282
279
|
* message and cannot lag behind a subscription-delivered clear.
|
|
283
280
|
*/
|
|
284
281
|
export function resolveLastOwnerInstant(shadow, settings) {
|
|
285
|
-
if (shadow && typeof shadow.at ===
|
|
282
|
+
if (shadow && typeof shadow.at === 'number' && Number.isFinite(shadow.at)) {
|
|
286
283
|
return shadow.at;
|
|
287
284
|
}
|
|
288
|
-
if (typeof settings.lastOwnerMessageAt ===
|
|
285
|
+
if (typeof settings.lastOwnerMessageAt === 'number') {
|
|
289
286
|
return settings.lastOwnerMessageAt;
|
|
290
287
|
}
|
|
291
|
-
if (typeof settings.lastOwnerMessageDate ===
|
|
288
|
+
if (typeof settings.lastOwnerMessageDate === 'string') {
|
|
292
289
|
const parsed = Date.parse(settings.lastOwnerMessageDate);
|
|
293
290
|
return Number.isFinite(parsed) ? parsed : null;
|
|
294
291
|
}
|