@sentry/junior 0.101.0 → 0.102.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/dist/{agent-hooks-V6KU7PQN.js → agent-hooks-I4I2DHSW.js} +7 -7
- package/dist/api/people/schema.d.ts +13 -0
- package/dist/api/schema.d.ts +1 -1
- package/dist/api/schema.js +1 -1
- package/dist/api.js +14 -14
- package/dist/app.js +64 -53
- package/dist/{catalog-runtime-PFHVMHDR.js → catalog-runtime-5CVM2DOF.js} +2 -2
- package/dist/chat/agent/prompt.d.ts +1 -1
- package/dist/chat/agent-dispatch/validation.d.ts +1 -1
- package/dist/chat/conversation-privacy.d.ts +2 -6
- package/dist/chat/credentials/context.d.ts +33 -6
- package/dist/chat/credentials/subject.d.ts +15 -1
- package/dist/chat/logging.d.ts +4 -2
- package/dist/chat/mcp/tool-manager.d.ts +1 -1
- package/dist/chat/sandbox/egress/schemas.d.ts +13 -2
- package/dist/chat/services/context-compaction-marker.d.ts +8 -0
- package/dist/{chunk-XJA7BPHS.js → chunk-3OABPOHR.js} +3 -3
- package/dist/{chunk-EBFJOOUE.js → chunk-3UK5DFKW.js} +2 -2
- package/dist/{chunk-DBPLXSBK.js → chunk-4YN2ZXKB.js} +9 -1
- package/dist/{chunk-XVR4O24H.js → chunk-5K4N73TP.js} +4 -4
- package/dist/{chunk-LMJPRYHP.js → chunk-77LHNQK4.js} +32 -8
- package/dist/{chunk-I35CTGPO.js → chunk-AEWZ7F65.js} +41 -17
- package/dist/{chunk-IQIBZXGB.js → chunk-B5QS4AVO.js} +2 -2
- package/dist/{chunk-L2JIOAA2.js → chunk-DTUSCR2Y.js} +8 -11
- package/dist/{chunk-GEUUJRQF.js → chunk-E4EMFKGB.js} +1 -1
- package/dist/{chunk-VVIXK2BX.js → chunk-EMUZSROX.js} +2 -2
- package/dist/{chunk-IVXL57YF.js → chunk-EOB77KME.js} +4 -4
- package/dist/{chunk-PGGEOCQY.js → chunk-F4CQEUTP.js} +1 -1
- package/dist/{chunk-FP5N5OWZ.js → chunk-IQ36I3DF.js} +2 -2
- package/dist/{chunk-JSAANELJ.js → chunk-LJB2TLVT.js} +3 -3
- package/dist/{chunk-D5KZYS4T.js → chunk-MJSJAHBW.js} +1 -1
- package/dist/{chunk-VFBFK6EY.js → chunk-MR6H67P2.js} +2 -2
- package/dist/{chunk-5VGJJSSV.js → chunk-NSP6OGL2.js} +5 -5
- package/dist/{chunk-VHRM6GNH.js → chunk-QZGVPPIJ.js} +27 -3
- package/dist/{chunk-LVA4I4H7.js → chunk-RT5BUHR5.js} +15 -44
- package/dist/{chunk-A7X2FDUO.js → chunk-SHBPSE7A.js} +88 -66
- package/dist/{chunk-CM5EZD5F.js → chunk-UIE3R5XU.js} +1 -1
- package/dist/{chunk-JPQISMMJ.js → chunk-VSAFV2GI.js} +7 -6
- package/dist/{chunk-3ECW2K2O.js → chunk-WR7H7VLJ.js} +2 -2
- package/dist/{chunk-TPTJEHUE.js → chunk-X2IPNCB5.js} +61 -25
- package/dist/{chunk-UWGTSF5O.js → chunk-ZIX4PNBI.js} +129 -91
- package/dist/{chunk-PWC24W5F.js → chunk-ZSHL44IQ.js} +2 -2
- package/dist/cli/chat.js +21 -21
- package/dist/cli/check.js +3 -3
- package/dist/cli/plugins.js +9 -9
- package/dist/cli/snapshot-warmup.js +5 -5
- package/dist/cli/upgrade.js +85 -13
- package/dist/db/postgres-json.d.ts +5 -0
- package/dist/{db-RCZB7KNM.js → db-6QP6HY7U.js} +4 -4
- package/dist/{detail-4EPUMSDU.js → detail-OEIVZYXS.js} +11 -11
- package/dist/{detail-CD4SPJ4K.js → detail-U6IP2Z4N.js} +6 -6
- package/dist/instrumentation.js +2 -2
- package/dist/{legacy-import-VCYLWT2V.js → legacy-import-R3BMM2GH.js} +5 -5
- package/dist/{list-J6ROVH56.js → list-AJ6RWBOG.js} +7 -7
- package/dist/list-UMZKA5AI.js +121 -0
- package/dist/{list-7L5LY2WU.js → list-Z3CC52CZ.js} +6 -6
- package/dist/{plugin-conversations-JANXC4GA.js → plugin-conversations-F3IBVNFX.js} +7 -7
- package/dist/{profile-6NRWEKMZ.js → profile-CQMPFKED.js} +7 -7
- package/dist/{runner-CZIKSWGC.js → runner-C2ZTIOUD.js} +12 -12
- package/dist/{skills-MAZXZ2KE.js → skills-722AXRV5.js} +3 -3
- package/dist/{stats-Q5FRUXLY.js → stats-ZYFQFCTL.js} +5 -5
- package/dist/{subagent-YIINCFAS.js → subagent-X3ZWJHR4.js} +10 -10
- package/dist/{validation-FMEAEKCY.js → validation-EUI2UFRM.js} +3 -3
- package/package.json +5 -5
- package/dist/list-DA2ATOM4.js +0 -80
package/dist/cli/plugins.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
validatePluginEgressCredentialHooks,
|
|
3
3
|
validatePluginRegistrations
|
|
4
|
-
} from "../chunk-
|
|
4
|
+
} from "../chunk-MJSJAHBW.js";
|
|
5
5
|
import {
|
|
6
6
|
pluginCatalogConfigFromPluginSet,
|
|
7
7
|
pluginCliRegistrationsFromPluginSet,
|
|
@@ -13,24 +13,24 @@ import {
|
|
|
13
13
|
import {
|
|
14
14
|
setPlugins,
|
|
15
15
|
validatePlugins
|
|
16
|
-
} from "../chunk-
|
|
17
|
-
import "../chunk-
|
|
16
|
+
} from "../chunk-X2IPNCB5.js";
|
|
17
|
+
import "../chunk-IQ36I3DF.js";
|
|
18
18
|
import {
|
|
19
19
|
createPluginLogger
|
|
20
|
-
} from "../chunk-
|
|
20
|
+
} from "../chunk-ZSHL44IQ.js";
|
|
21
21
|
import {
|
|
22
22
|
getDb
|
|
23
|
-
} from "../chunk-
|
|
23
|
+
} from "../chunk-QZGVPPIJ.js";
|
|
24
24
|
import "../chunk-G3E7SCME.js";
|
|
25
25
|
import "../chunk-4ZNGQH7C.js";
|
|
26
|
-
import "../chunk-
|
|
26
|
+
import "../chunk-SHBPSE7A.js";
|
|
27
27
|
import "../chunk-FXFQNHRU.js";
|
|
28
|
-
import "../chunk-
|
|
28
|
+
import "../chunk-RT5BUHR5.js";
|
|
29
29
|
import "../chunk-B7PUBQQM.js";
|
|
30
30
|
import {
|
|
31
31
|
pluginCatalogRuntime
|
|
32
|
-
} from "../chunk-
|
|
33
|
-
import "../chunk-
|
|
32
|
+
} from "../chunk-77LHNQK4.js";
|
|
33
|
+
import "../chunk-AEWZ7F65.js";
|
|
34
34
|
import "../chunk-OB42YVAE.js";
|
|
35
35
|
import "../chunk-6GWA276C.js";
|
|
36
36
|
import "../chunk-B3IT5END.js";
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import {
|
|
2
2
|
resolveRuntimeDependencySnapshot
|
|
3
|
-
} from "../chunk-
|
|
3
|
+
} from "../chunk-3OABPOHR.js";
|
|
4
4
|
import "../chunk-G3E7SCME.js";
|
|
5
5
|
import "../chunk-4ZNGQH7C.js";
|
|
6
6
|
import {
|
|
7
7
|
disconnectStateAdapter
|
|
8
|
-
} from "../chunk-
|
|
9
|
-
import "../chunk-
|
|
8
|
+
} from "../chunk-SHBPSE7A.js";
|
|
9
|
+
import "../chunk-RT5BUHR5.js";
|
|
10
10
|
import {
|
|
11
11
|
pluginCatalogRuntime
|
|
12
|
-
} from "../chunk-
|
|
13
|
-
import "../chunk-
|
|
12
|
+
} from "../chunk-77LHNQK4.js";
|
|
13
|
+
import "../chunk-AEWZ7F65.js";
|
|
14
14
|
import "../chunk-OB42YVAE.js";
|
|
15
15
|
import "../chunk-6GWA276C.js";
|
|
16
16
|
import "../chunk-B3IT5END.js";
|
package/dist/cli/upgrade.js
CHANGED
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
recordConversationActivity,
|
|
5
5
|
recordConversationExecution,
|
|
6
6
|
requestConversationWork
|
|
7
|
-
} from "../chunk-
|
|
7
|
+
} from "../chunk-3UK5DFKW.js";
|
|
8
8
|
import {
|
|
9
9
|
defineJuniorPlugins,
|
|
10
10
|
pluginCatalogConfigFromEnv,
|
|
@@ -18,11 +18,11 @@ import {
|
|
|
18
18
|
import {
|
|
19
19
|
addAgentTurnUsage,
|
|
20
20
|
listAgentTurnSessionSummariesForConversations
|
|
21
|
-
} from "../chunk-
|
|
22
|
-
import "../chunk-
|
|
21
|
+
} from "../chunk-EOB77KME.js";
|
|
22
|
+
import "../chunk-B5QS4AVO.js";
|
|
23
23
|
import {
|
|
24
24
|
importConversationFromLegacy
|
|
25
|
-
} from "../chunk-
|
|
25
|
+
} from "../chunk-VSAFV2GI.js";
|
|
26
26
|
import "../chunk-PDO5BLNM.js";
|
|
27
27
|
import {
|
|
28
28
|
loadAppPluginSet
|
|
@@ -30,28 +30,28 @@ import {
|
|
|
30
30
|
import {
|
|
31
31
|
createPluginLogger,
|
|
32
32
|
createPluginState
|
|
33
|
-
} from "../chunk-
|
|
33
|
+
} from "../chunk-ZSHL44IQ.js";
|
|
34
34
|
import {
|
|
35
35
|
createJuniorSqlExecutor,
|
|
36
36
|
createSqlConversationMessageStore,
|
|
37
37
|
createSqlStore,
|
|
38
38
|
getDb
|
|
39
|
-
} from "../chunk-
|
|
39
|
+
} from "../chunk-QZGVPPIJ.js";
|
|
40
40
|
import {
|
|
41
41
|
disconnectStateAdapter,
|
|
42
42
|
getChatConfig,
|
|
43
43
|
getConnectedStateContext
|
|
44
|
-
} from "../chunk-
|
|
44
|
+
} from "../chunk-SHBPSE7A.js";
|
|
45
45
|
import "../chunk-FXFQNHRU.js";
|
|
46
|
-
import "../chunk-
|
|
46
|
+
import "../chunk-RT5BUHR5.js";
|
|
47
47
|
import {
|
|
48
48
|
parseDestination,
|
|
49
49
|
sameDestination
|
|
50
50
|
} from "../chunk-B7PUBQQM.js";
|
|
51
51
|
import {
|
|
52
52
|
pluginCatalogRuntime
|
|
53
|
-
} from "../chunk-
|
|
54
|
-
import "../chunk-
|
|
53
|
+
} from "../chunk-77LHNQK4.js";
|
|
54
|
+
import "../chunk-AEWZ7F65.js";
|
|
55
55
|
import {
|
|
56
56
|
isRecord,
|
|
57
57
|
toOptionalNumber,
|
|
@@ -450,6 +450,7 @@ var pluginStorageMigration = {
|
|
|
450
450
|
// src/chat/plugins/migrations.ts
|
|
451
451
|
import { createHash } from "crypto";
|
|
452
452
|
import { readMigrationFiles as readMigrationFiles2 } from "drizzle-orm/migrator";
|
|
453
|
+
var LEGACY_SCHEDULER_BASELINE_HASH = "d1d2f712181dd3a0557808f0fc67fd0722691d25f4c8cfb816b77c71d19e1e42";
|
|
453
454
|
function migrationTable(pluginName) {
|
|
454
455
|
const label = pluginName.toLowerCase().replace(/[^a-z0-9]+/g, "_").replace(/^_+|_+$/g, "").slice(0, 32);
|
|
455
456
|
const hash = createHash("sha256").update(pluginName).digest("hex").slice(0, 8);
|
|
@@ -487,7 +488,7 @@ async function legacyMigrationHashes(executor, pluginName) {
|
|
|
487
488
|
);
|
|
488
489
|
return new Set(rows.map((row) => row.checksum));
|
|
489
490
|
}
|
|
490
|
-
function adoptedMigration(migrations, legacyHashes) {
|
|
491
|
+
function adoptedMigration(migrations, legacyHashes, pluginName) {
|
|
491
492
|
let adopted;
|
|
492
493
|
for (const migration of migrations) {
|
|
493
494
|
if (!legacyHashes.has(migration.hash)) {
|
|
@@ -495,7 +496,7 @@ function adoptedMigration(migrations, legacyHashes) {
|
|
|
495
496
|
}
|
|
496
497
|
adopted = migration;
|
|
497
498
|
}
|
|
498
|
-
if (!adopted &&
|
|
499
|
+
if (!adopted && pluginName === "scheduler" && legacyHashes.has(LEGACY_SCHEDULER_BASELINE_HASH)) {
|
|
499
500
|
return migrations[0];
|
|
500
501
|
}
|
|
501
502
|
return adopted;
|
|
@@ -505,7 +506,11 @@ async function adoptLegacyMigrationState2(args) {
|
|
|
505
506
|
args.executor,
|
|
506
507
|
args.pluginName
|
|
507
508
|
);
|
|
508
|
-
const migration = adoptedMigration(
|
|
509
|
+
const migration = adoptedMigration(
|
|
510
|
+
args.migrations,
|
|
511
|
+
legacyHashes,
|
|
512
|
+
args.pluginName
|
|
513
|
+
);
|
|
509
514
|
if (!migration) {
|
|
510
515
|
return void 0;
|
|
511
516
|
}
|
|
@@ -1127,12 +1132,65 @@ import { THREAD_STATE_TTL_MS } from "chat";
|
|
|
1127
1132
|
var AGENT_TURN_SESSION_PREFIX2 = "junior:agent_turn_session";
|
|
1128
1133
|
var AGENT_TURN_SESSION_INDEX_KEY2 = `${AGENT_TURN_SESSION_PREFIX2}:index`;
|
|
1129
1134
|
var AGENT_TURN_SESSION_INDEX_MAX_LENGTH = 5e3;
|
|
1135
|
+
var REDIS_SCAN_COUNT = 500;
|
|
1130
1136
|
function conversationIndexKey(conversationId) {
|
|
1131
1137
|
return `${AGENT_TURN_SESSION_PREFIX2}:conversation:${conversationId}:index`;
|
|
1132
1138
|
}
|
|
1133
1139
|
function sessionRecordKey(conversationId, sessionId) {
|
|
1134
1140
|
return `${AGENT_TURN_SESSION_PREFIX2}:${conversationId}:${sessionId}`;
|
|
1135
1141
|
}
|
|
1142
|
+
function logicalConversationIndexPrefix() {
|
|
1143
|
+
const prefix = getChatConfig().state.keyPrefix;
|
|
1144
|
+
return [
|
|
1145
|
+
...prefix ? [prefix] : [],
|
|
1146
|
+
`${AGENT_TURN_SESSION_PREFIX2}:conversation:`
|
|
1147
|
+
].join(":");
|
|
1148
|
+
}
|
|
1149
|
+
function conversationIdFromRedisListKey(key) {
|
|
1150
|
+
const marker = `:list:${logicalConversationIndexPrefix()}`;
|
|
1151
|
+
const markerIndex = key.indexOf(marker);
|
|
1152
|
+
if (markerIndex < 0 || !key.endsWith(":index")) {
|
|
1153
|
+
return void 0;
|
|
1154
|
+
}
|
|
1155
|
+
return toOptionalString(
|
|
1156
|
+
key.slice(markerIndex + marker.length, -":index".length)
|
|
1157
|
+
);
|
|
1158
|
+
}
|
|
1159
|
+
async function discoverRedisConversationIds(redisStateAdapter) {
|
|
1160
|
+
const client = redisStateAdapter?.getClient();
|
|
1161
|
+
if (!client) {
|
|
1162
|
+
return [];
|
|
1163
|
+
}
|
|
1164
|
+
const conversationIds = /* @__PURE__ */ new Set();
|
|
1165
|
+
const match = `*:list:${logicalConversationIndexPrefix()}*:index`;
|
|
1166
|
+
let cursor = "0";
|
|
1167
|
+
do {
|
|
1168
|
+
const reply = await client.sendCommand([
|
|
1169
|
+
"SCAN",
|
|
1170
|
+
cursor,
|
|
1171
|
+
"MATCH",
|
|
1172
|
+
match,
|
|
1173
|
+
"COUNT",
|
|
1174
|
+
String(REDIS_SCAN_COUNT)
|
|
1175
|
+
]);
|
|
1176
|
+
if (!Array.isArray(reply) || reply.length !== 2 || typeof reply[0] !== "string" && typeof reply[0] !== "number" || !Array.isArray(reply[1])) {
|
|
1177
|
+
throw new Error(
|
|
1178
|
+
"Unexpected Redis SCAN response while migrating turn sessions"
|
|
1179
|
+
);
|
|
1180
|
+
}
|
|
1181
|
+
cursor = String(reply[0]);
|
|
1182
|
+
for (const key of reply[1]) {
|
|
1183
|
+
if (typeof key !== "string") {
|
|
1184
|
+
continue;
|
|
1185
|
+
}
|
|
1186
|
+
const conversationId = conversationIdFromRedisListKey(key);
|
|
1187
|
+
if (conversationId) {
|
|
1188
|
+
conversationIds.add(conversationId);
|
|
1189
|
+
}
|
|
1190
|
+
}
|
|
1191
|
+
} while (cursor !== "0");
|
|
1192
|
+
return [...conversationIds];
|
|
1193
|
+
}
|
|
1136
1194
|
function migrateRequesterToActor(value) {
|
|
1137
1195
|
if (!isRecord(value) || value.requester === void 0) {
|
|
1138
1196
|
return { changed: false, value };
|
|
@@ -1191,6 +1249,11 @@ async function migrateAgentTurnSessionActor(context) {
|
|
|
1191
1249
|
result.migrated += global.migrated;
|
|
1192
1250
|
const conversations = /* @__PURE__ */ new Set();
|
|
1193
1251
|
const sessions = /* @__PURE__ */ new Set();
|
|
1252
|
+
for (const conversationId of await discoverRedisConversationIds(
|
|
1253
|
+
context.redisStateAdapter
|
|
1254
|
+
)) {
|
|
1255
|
+
conversations.add(conversationId);
|
|
1256
|
+
}
|
|
1194
1257
|
for (const value of global.values) {
|
|
1195
1258
|
if (!isRecord(value)) {
|
|
1196
1259
|
continue;
|
|
@@ -1212,6 +1275,15 @@ async function migrateAgentTurnSessionActor(context) {
|
|
|
1212
1275
|
});
|
|
1213
1276
|
result.scanned += conversation.values.length;
|
|
1214
1277
|
result.migrated += conversation.migrated;
|
|
1278
|
+
for (const value of conversation.values) {
|
|
1279
|
+
if (!isRecord(value)) {
|
|
1280
|
+
continue;
|
|
1281
|
+
}
|
|
1282
|
+
const sessionId = toOptionalString(value.sessionId);
|
|
1283
|
+
if (sessionId) {
|
|
1284
|
+
sessions.add(`${conversationId}\0${sessionId}`);
|
|
1285
|
+
}
|
|
1286
|
+
}
|
|
1215
1287
|
}
|
|
1216
1288
|
for (const session of sessions) {
|
|
1217
1289
|
const separator = session.indexOf("\0");
|
|
@@ -6,12 +6,12 @@ import {
|
|
|
6
6
|
getConversationStore,
|
|
7
7
|
getDb,
|
|
8
8
|
getSqlExecutor
|
|
9
|
-
} from "./chunk-
|
|
10
|
-
import "./chunk-
|
|
9
|
+
} from "./chunk-QZGVPPIJ.js";
|
|
10
|
+
import "./chunk-SHBPSE7A.js";
|
|
11
11
|
import "./chunk-FXFQNHRU.js";
|
|
12
|
-
import "./chunk-
|
|
12
|
+
import "./chunk-RT5BUHR5.js";
|
|
13
13
|
import "./chunk-B7PUBQQM.js";
|
|
14
|
-
import "./chunk-
|
|
14
|
+
import "./chunk-AEWZ7F65.js";
|
|
15
15
|
import "./chunk-OB42YVAE.js";
|
|
16
16
|
import "./chunk-6GWA276C.js";
|
|
17
17
|
import "./chunk-7FBGKXPE.js";
|
|
@@ -1,30 +1,30 @@
|
|
|
1
1
|
import {
|
|
2
2
|
buildConversationDetail
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-NSP6OGL2.js";
|
|
4
4
|
import {
|
|
5
5
|
readConversationRecordFromSql
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-LJB2TLVT.js";
|
|
7
7
|
import {
|
|
8
8
|
conversationDetailReportSchema
|
|
9
9
|
} from "./chunk-HYDQULR2.js";
|
|
10
10
|
import "./chunk-LVUKF5CE.js";
|
|
11
|
-
import "./chunk-
|
|
11
|
+
import "./chunk-EMUZSROX.js";
|
|
12
12
|
import {
|
|
13
13
|
listBoundedAgentTurnSessionSummariesForConversation
|
|
14
|
-
} from "./chunk-
|
|
15
|
-
import "./chunk-
|
|
16
|
-
import "./chunk-
|
|
14
|
+
} from "./chunk-EOB77KME.js";
|
|
15
|
+
import "./chunk-B5QS4AVO.js";
|
|
16
|
+
import "./chunk-VSAFV2GI.js";
|
|
17
17
|
import "./chunk-PDO5BLNM.js";
|
|
18
|
-
import "./chunk-
|
|
19
|
-
import "./chunk-
|
|
18
|
+
import "./chunk-IQ36I3DF.js";
|
|
19
|
+
import "./chunk-QZGVPPIJ.js";
|
|
20
20
|
import "./chunk-4ZNGQH7C.js";
|
|
21
|
-
import "./chunk-
|
|
21
|
+
import "./chunk-SHBPSE7A.js";
|
|
22
22
|
import "./chunk-FXFQNHRU.js";
|
|
23
|
-
import "./chunk-
|
|
23
|
+
import "./chunk-RT5BUHR5.js";
|
|
24
24
|
import "./chunk-B7PUBQQM.js";
|
|
25
25
|
import {
|
|
26
26
|
logException
|
|
27
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-AEWZ7F65.js";
|
|
28
28
|
import "./chunk-OB42YVAE.js";
|
|
29
29
|
import "./chunk-6GWA276C.js";
|
|
30
30
|
import "./chunk-7FBGKXPE.js";
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
import {
|
|
2
2
|
readLocationDetailFromSql
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-MR6H67P2.js";
|
|
4
4
|
import "./chunk-QOZOJNSE.js";
|
|
5
|
-
import "./chunk-
|
|
5
|
+
import "./chunk-F4CQEUTP.js";
|
|
6
6
|
import {
|
|
7
7
|
locationDetailReportSchema
|
|
8
8
|
} from "./chunk-HNIT4HXU.js";
|
|
9
9
|
import "./chunk-HYDQULR2.js";
|
|
10
10
|
import "./chunk-PDO5BLNM.js";
|
|
11
|
-
import "./chunk-
|
|
12
|
-
import "./chunk-
|
|
11
|
+
import "./chunk-QZGVPPIJ.js";
|
|
12
|
+
import "./chunk-SHBPSE7A.js";
|
|
13
13
|
import "./chunk-FXFQNHRU.js";
|
|
14
|
-
import "./chunk-
|
|
14
|
+
import "./chunk-RT5BUHR5.js";
|
|
15
15
|
import "./chunk-B7PUBQQM.js";
|
|
16
|
-
import "./chunk-
|
|
16
|
+
import "./chunk-AEWZ7F65.js";
|
|
17
17
|
import "./chunk-OB42YVAE.js";
|
|
18
18
|
import "./chunk-6GWA276C.js";
|
|
19
19
|
import "./chunk-7FBGKXPE.js";
|
package/dist/instrumentation.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
consumePrivateTraceResultMarker
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-UIE3R5XU.js";
|
|
4
4
|
import {
|
|
5
5
|
getCurrentConversationPrivacy
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-RT5BUHR5.js";
|
|
7
7
|
import "./chunk-OB42YVAE.js";
|
|
8
8
|
import {
|
|
9
9
|
getClient,
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
2
|
ensureLegacyConversationImport,
|
|
3
3
|
importConversationFromLegacy
|
|
4
|
-
} from "./chunk-
|
|
5
|
-
import "./chunk-
|
|
6
|
-
import "./chunk-
|
|
4
|
+
} from "./chunk-VSAFV2GI.js";
|
|
5
|
+
import "./chunk-QZGVPPIJ.js";
|
|
6
|
+
import "./chunk-SHBPSE7A.js";
|
|
7
7
|
import "./chunk-FXFQNHRU.js";
|
|
8
|
-
import "./chunk-
|
|
8
|
+
import "./chunk-RT5BUHR5.js";
|
|
9
9
|
import "./chunk-B7PUBQQM.js";
|
|
10
|
-
import "./chunk-
|
|
10
|
+
import "./chunk-AEWZ7F65.js";
|
|
11
11
|
import "./chunk-OB42YVAE.js";
|
|
12
12
|
import "./chunk-6GWA276C.js";
|
|
13
13
|
import "./chunk-7FBGKXPE.js";
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
import {
|
|
2
2
|
readConversationFeedFromSql
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-LJB2TLVT.js";
|
|
4
4
|
import {
|
|
5
5
|
conversationFeedSchema
|
|
6
6
|
} from "./chunk-HYDQULR2.js";
|
|
7
|
-
import "./chunk-
|
|
7
|
+
import "./chunk-EMUZSROX.js";
|
|
8
8
|
import "./chunk-PDO5BLNM.js";
|
|
9
|
-
import "./chunk-
|
|
10
|
-
import "./chunk-
|
|
9
|
+
import "./chunk-IQ36I3DF.js";
|
|
10
|
+
import "./chunk-QZGVPPIJ.js";
|
|
11
11
|
import "./chunk-4ZNGQH7C.js";
|
|
12
|
-
import "./chunk-
|
|
12
|
+
import "./chunk-SHBPSE7A.js";
|
|
13
13
|
import "./chunk-FXFQNHRU.js";
|
|
14
|
-
import "./chunk-
|
|
14
|
+
import "./chunk-RT5BUHR5.js";
|
|
15
15
|
import "./chunk-B7PUBQQM.js";
|
|
16
|
-
import "./chunk-
|
|
16
|
+
import "./chunk-AEWZ7F65.js";
|
|
17
17
|
import "./chunk-OB42YVAE.js";
|
|
18
18
|
import "./chunk-6GWA276C.js";
|
|
19
19
|
import "./chunk-7FBGKXPE.js";
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import {
|
|
2
|
+
verifiedActorWhere
|
|
3
|
+
} from "./chunk-E4EMFKGB.js";
|
|
4
|
+
import {
|
|
5
|
+
conversationActiveDaysColumn,
|
|
6
|
+
conversationAggregateColumns,
|
|
7
|
+
conversationRangeColumns
|
|
8
|
+
} from "./chunk-F4CQEUTP.js";
|
|
9
|
+
import {
|
|
10
|
+
actorDirectoryReportSchema
|
|
11
|
+
} from "./chunk-4YN2ZXKB.js";
|
|
12
|
+
import "./chunk-HYDQULR2.js";
|
|
13
|
+
import "./chunk-PDO5BLNM.js";
|
|
14
|
+
import {
|
|
15
|
+
getDb,
|
|
16
|
+
juniorConversations,
|
|
17
|
+
juniorIdentities,
|
|
18
|
+
juniorUsers
|
|
19
|
+
} from "./chunk-QZGVPPIJ.js";
|
|
20
|
+
import "./chunk-SHBPSE7A.js";
|
|
21
|
+
import "./chunk-FXFQNHRU.js";
|
|
22
|
+
import "./chunk-RT5BUHR5.js";
|
|
23
|
+
import "./chunk-B7PUBQQM.js";
|
|
24
|
+
import "./chunk-AEWZ7F65.js";
|
|
25
|
+
import "./chunk-OB42YVAE.js";
|
|
26
|
+
import "./chunk-6GWA276C.js";
|
|
27
|
+
import "./chunk-7FBGKXPE.js";
|
|
28
|
+
import "./chunk-MLKGABMK.js";
|
|
29
|
+
|
|
30
|
+
// src/api/people/list.query.ts
|
|
31
|
+
import { and, eq, gte, sql } from "drizzle-orm";
|
|
32
|
+
var DIRECTORY_ACTIVITY_DAYS = 90;
|
|
33
|
+
function activityWindow(nowMs) {
|
|
34
|
+
const end = new Date(nowMs);
|
|
35
|
+
end.setUTCHours(0, 0, 0, 0);
|
|
36
|
+
const start = new Date(end);
|
|
37
|
+
start.setUTCDate(start.getUTCDate() - (DIRECTORY_ACTIVITY_DAYS - 1));
|
|
38
|
+
return { end, start };
|
|
39
|
+
}
|
|
40
|
+
function directoryActivityDays(rows, nowMs) {
|
|
41
|
+
const days = new Map(rows.map((row) => [row.date, row]));
|
|
42
|
+
const { end, start } = activityWindow(nowMs);
|
|
43
|
+
const items = [];
|
|
44
|
+
for (const cursor = new Date(start); cursor.getTime() <= end.getTime(); cursor.setUTCDate(cursor.getUTCDate() + 1)) {
|
|
45
|
+
const date = cursor.toISOString().slice(0, 10);
|
|
46
|
+
items.push(days.get(date) ?? { activePeople: 0, conversations: 0, date });
|
|
47
|
+
}
|
|
48
|
+
return items;
|
|
49
|
+
}
|
|
50
|
+
async function readPeopleListFromSql() {
|
|
51
|
+
const nowMs = Date.now();
|
|
52
|
+
const { end, start } = activityWindow(nowMs);
|
|
53
|
+
const activityDate = sql`TO_CHAR(
|
|
54
|
+
${juniorConversations.lastActivityAt} AT TIME ZONE 'UTC',
|
|
55
|
+
'YYYY-MM-DD'
|
|
56
|
+
)`;
|
|
57
|
+
const [rows, activityRows] = await Promise.all([
|
|
58
|
+
getDb().select({
|
|
59
|
+
email: juniorUsers.primaryEmailNormalized,
|
|
60
|
+
fullName: juniorUsers.displayName,
|
|
61
|
+
slackUserId: sql`MAX(${juniorIdentities.providerSubjectId})`,
|
|
62
|
+
slackUserName: sql`MAX(${juniorIdentities.handle})`,
|
|
63
|
+
activeDays: conversationActiveDaysColumn(),
|
|
64
|
+
...conversationAggregateColumns(),
|
|
65
|
+
...conversationRangeColumns()
|
|
66
|
+
}).from(juniorConversations).innerJoin(
|
|
67
|
+
juniorIdentities,
|
|
68
|
+
eq(juniorIdentities.id, juniorConversations.actorIdentityId)
|
|
69
|
+
).innerJoin(juniorUsers, eq(juniorUsers.id, juniorIdentities.userId)).where(verifiedActorWhere()).groupBy(juniorUsers.primaryEmailNormalized, juniorUsers.displayName),
|
|
70
|
+
getDb().select({
|
|
71
|
+
activePeople: sql`COUNT(DISTINCT ${juniorUsers.id})::int`,
|
|
72
|
+
conversations: sql`COUNT(*)::int`,
|
|
73
|
+
date: activityDate
|
|
74
|
+
}).from(juniorConversations).innerJoin(
|
|
75
|
+
juniorIdentities,
|
|
76
|
+
eq(juniorIdentities.id, juniorConversations.actorIdentityId)
|
|
77
|
+
).innerJoin(juniorUsers, eq(juniorUsers.id, juniorIdentities.userId)).where(
|
|
78
|
+
and(
|
|
79
|
+
verifiedActorWhere(),
|
|
80
|
+
gte(juniorConversations.lastActivityAt, start)
|
|
81
|
+
)
|
|
82
|
+
).groupBy(activityDate)
|
|
83
|
+
]);
|
|
84
|
+
const people = rows.map((row) => {
|
|
85
|
+
const actor = {
|
|
86
|
+
email: row.email,
|
|
87
|
+
...row.fullName ? { fullName: row.fullName } : {},
|
|
88
|
+
...row.slackUserId ? { slackUserId: row.slackUserId } : {},
|
|
89
|
+
...row.slackUserName ? { slackUserName: row.slackUserName } : {}
|
|
90
|
+
};
|
|
91
|
+
return {
|
|
92
|
+
active: row.active,
|
|
93
|
+
activeDays: row.activeDays,
|
|
94
|
+
conversations: row.conversations,
|
|
95
|
+
durationMs: row.durationMs,
|
|
96
|
+
failed: row.failed,
|
|
97
|
+
firstSeenAt: row.firstSeenAt.toISOString(),
|
|
98
|
+
lastSeenAt: row.lastSeenAt.toISOString(),
|
|
99
|
+
actor,
|
|
100
|
+
...row.tokens !== null ? { tokens: row.tokens } : {}
|
|
101
|
+
};
|
|
102
|
+
});
|
|
103
|
+
return {
|
|
104
|
+
activityDays: directoryActivityDays(activityRows, nowMs),
|
|
105
|
+
generatedAt: new Date(nowMs).toISOString(),
|
|
106
|
+
people: people.sort(
|
|
107
|
+
(left, right) => Date.parse(right.lastSeenAt) - Date.parse(left.lastSeenAt) || right.conversations - left.conversations || left.actor.email.localeCompare(right.actor.email)
|
|
108
|
+
),
|
|
109
|
+
source: "conversation_index",
|
|
110
|
+
windowEnd: end.toISOString(),
|
|
111
|
+
windowStart: start.toISOString()
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
// src/api/people/list.ts
|
|
116
|
+
async function readPeopleList() {
|
|
117
|
+
return actorDirectoryReportSchema.parse(await readPeopleListFromSql());
|
|
118
|
+
}
|
|
119
|
+
export {
|
|
120
|
+
readPeopleList
|
|
121
|
+
};
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
import {
|
|
2
2
|
readLocationDirectoryFromSql
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-MR6H67P2.js";
|
|
4
4
|
import "./chunk-QOZOJNSE.js";
|
|
5
|
-
import "./chunk-
|
|
5
|
+
import "./chunk-F4CQEUTP.js";
|
|
6
6
|
import {
|
|
7
7
|
locationDirectoryReportSchema
|
|
8
8
|
} from "./chunk-HNIT4HXU.js";
|
|
9
9
|
import "./chunk-HYDQULR2.js";
|
|
10
10
|
import "./chunk-PDO5BLNM.js";
|
|
11
|
-
import "./chunk-
|
|
12
|
-
import "./chunk-
|
|
11
|
+
import "./chunk-QZGVPPIJ.js";
|
|
12
|
+
import "./chunk-SHBPSE7A.js";
|
|
13
13
|
import "./chunk-FXFQNHRU.js";
|
|
14
|
-
import "./chunk-
|
|
14
|
+
import "./chunk-RT5BUHR5.js";
|
|
15
15
|
import "./chunk-B7PUBQQM.js";
|
|
16
|
-
import "./chunk-
|
|
16
|
+
import "./chunk-AEWZ7F65.js";
|
|
17
17
|
import "./chunk-OB42YVAE.js";
|
|
18
18
|
import "./chunk-6GWA276C.js";
|
|
19
19
|
import "./chunk-7FBGKXPE.js";
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import {
|
|
2
2
|
readConversationFeedFromSql
|
|
3
|
-
} from "./chunk-
|
|
4
|
-
import "./chunk-
|
|
5
|
-
import "./chunk-
|
|
6
|
-
import "./chunk-
|
|
3
|
+
} from "./chunk-LJB2TLVT.js";
|
|
4
|
+
import "./chunk-EMUZSROX.js";
|
|
5
|
+
import "./chunk-IQ36I3DF.js";
|
|
6
|
+
import "./chunk-QZGVPPIJ.js";
|
|
7
7
|
import "./chunk-4ZNGQH7C.js";
|
|
8
|
-
import "./chunk-
|
|
8
|
+
import "./chunk-SHBPSE7A.js";
|
|
9
9
|
import "./chunk-FXFQNHRU.js";
|
|
10
|
-
import "./chunk-
|
|
10
|
+
import "./chunk-RT5BUHR5.js";
|
|
11
11
|
import "./chunk-B7PUBQQM.js";
|
|
12
|
-
import "./chunk-
|
|
12
|
+
import "./chunk-AEWZ7F65.js";
|
|
13
13
|
import "./chunk-OB42YVAE.js";
|
|
14
14
|
import "./chunk-6GWA276C.js";
|
|
15
15
|
import "./chunk-7FBGKXPE.js";
|
|
@@ -11,14 +11,14 @@ import {
|
|
|
11
11
|
recentActorRows,
|
|
12
12
|
statsItems,
|
|
13
13
|
verifiedActorWhere
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-E4EMFKGB.js";
|
|
15
15
|
import {
|
|
16
16
|
conversationActiveDaysColumn,
|
|
17
17
|
conversationAggregateColumns
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-F4CQEUTP.js";
|
|
19
19
|
import {
|
|
20
20
|
actorProfileReportSchema
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-4YN2ZXKB.js";
|
|
22
22
|
import "./chunk-HYDQULR2.js";
|
|
23
23
|
import "./chunk-PDO5BLNM.js";
|
|
24
24
|
import {
|
|
@@ -26,14 +26,14 @@ import {
|
|
|
26
26
|
juniorConversations,
|
|
27
27
|
juniorIdentities,
|
|
28
28
|
juniorUsers
|
|
29
|
-
} from "./chunk-
|
|
30
|
-
import "./chunk-
|
|
29
|
+
} from "./chunk-QZGVPPIJ.js";
|
|
30
|
+
import "./chunk-SHBPSE7A.js";
|
|
31
31
|
import {
|
|
32
32
|
juniorDestinations
|
|
33
33
|
} from "./chunk-FXFQNHRU.js";
|
|
34
|
-
import "./chunk-
|
|
34
|
+
import "./chunk-RT5BUHR5.js";
|
|
35
35
|
import "./chunk-B7PUBQQM.js";
|
|
36
|
-
import "./chunk-
|
|
36
|
+
import "./chunk-AEWZ7F65.js";
|
|
37
37
|
import "./chunk-OB42YVAE.js";
|
|
38
38
|
import "./chunk-6GWA276C.js";
|
|
39
39
|
import "./chunk-7FBGKXPE.js";
|