@sentry/junior 0.148.0 → 0.149.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-VAUYT6PD.js → agent-hooks-CWMCXAMT.js} +10 -10
- package/dist/api/conversations/aggregate.d.ts +2 -0
- package/dist/api/conversations/create.d.ts +1 -1
- package/dist/api/conversations/pending-messages.d.ts +15 -0
- package/dist/api/people/shared.d.ts +2 -0
- package/dist/api/schema/conversation.d.ts +78 -4
- package/dist/api/schema.d.ts +2 -2
- package/dist/api/schema.js +7 -1
- package/dist/api.js +182 -33
- package/dist/app.js +92 -133
- package/dist/{catalog-runtime-WADOZVTB.js → catalog-runtime-GAW5APVI.js} +5 -5
- package/dist/chat/api-turns/work.d.ts +6 -1
- package/dist/chat/app/services.d.ts +1 -1
- package/dist/chat/runtime/reply-executor.d.ts +0 -2
- package/dist/chat/services/conversation-memory.d.ts +2 -2
- package/dist/chat/services/conversation-title.d.ts +20 -0
- package/dist/chat/slack/assistant-thread/title.d.ts +10 -27
- package/dist/chat/state/conversation.d.ts +1 -0
- package/dist/{chunk-2B3PT3V2.js → chunk-25SC7D6Z.js} +1 -1
- package/dist/{chunk-POSZWRGL.js → chunk-2JHKISQA.js} +1 -1
- package/dist/{chunk-VY6W3T43.js → chunk-2P6BQQER.js} +4 -4
- package/dist/{chunk-4GXJUYJV.js → chunk-32CXPIZE.js} +2 -2
- package/dist/{chunk-VRHTNBA6.js → chunk-3GYZ5YEH.js} +3 -3
- package/dist/{chunk-D3WPMGEX.js → chunk-3I2IVWSZ.js} +1 -1
- package/dist/{chunk-45LOR4PU.js → chunk-3JVUWLR7.js} +45 -1
- package/dist/{chunk-LE5H7LMT.js → chunk-3KGQOKIG.js} +1 -1
- package/dist/{chunk-4AQZYNHM.js → chunk-4JGM7FXO.js} +2 -2
- package/dist/{chunk-IL4EDBMV.js → chunk-4YKPOYRV.js} +5 -5
- package/dist/{chunk-ZPL2RR7F.js → chunk-5CWUQXXT.js} +28 -20
- package/dist/{chunk-LAZGHEYU.js → chunk-6G5RCDKP.js} +1 -1
- package/dist/{chunk-ULAU5ZGU.js → chunk-75DSYFFB.js} +24 -24
- package/dist/{chunk-ZCHIC2GM.js → chunk-7BH46NB4.js} +6 -6
- package/dist/{chunk-7OEIXFC3.js → chunk-ALJG73MQ.js} +1 -1
- package/dist/{chunk-LNVEIJ2L.js → chunk-ART7P442.js} +5 -5
- package/dist/{chunk-VMNRXKAH.js → chunk-DK5UT6PQ.js} +24 -26
- package/dist/{chunk-VCYSOXON.js → chunk-EW2LNCRL.js} +545 -7
- package/dist/{chunk-DUY5CDAM.js → chunk-EXW76GW4.js} +1 -1
- package/dist/{chunk-WCN4YSH7.js → chunk-JMH3DBM5.js} +6 -6
- package/dist/{chunk-HLPLT3NY.js → chunk-JMSMXXED.js} +8 -4
- package/dist/{chunk-WOONT5ZP.js → chunk-MEMURSBG.js} +1 -1
- package/dist/{chunk-QOWHHM3F.js → chunk-QIW7OQEO.js} +1 -1
- package/dist/{chunk-XJ42NBP5.js → chunk-RB26T3LU.js} +8 -8
- package/dist/{chunk-EAI67NTM.js → chunk-RLVZIWNQ.js} +1 -1
- package/dist/{chunk-V2FXMOEA.js → chunk-SWHPVZBV.js} +2 -2
- package/dist/{chunk-D6YX4NNN.js → chunk-TFBNBXPU.js} +4 -4
- package/dist/{chunk-GXYDVZKM.js → chunk-URDCZAL4.js} +5 -5
- package/dist/{chunk-RRJV5UR5.js → chunk-UZGASGOD.js} +11 -337
- package/dist/{chunk-OJCP3C3J.js → chunk-W7UONUIZ.js} +6 -6
- package/dist/{chunk-HWQGBIH7.js → chunk-X22XXSZA.js} +1 -1
- package/dist/{chunk-EINWQFXI.js → chunk-XPYWWMHR.js} +5 -5
- package/dist/{chunk-55F4QU2V.js → chunk-ZYMYLLWG.js} +1 -1
- package/dist/cli/chat.js +30 -31
- package/dist/cli/check.js +6 -6
- package/dist/cli/plugins.js +13 -13
- package/dist/cli/snapshot-create.js +9 -9
- package/dist/cli/upgrade.js +7 -7
- package/dist/{db-XUKZRFFK.js → db-JBZLRIVY.js} +7 -7
- package/dist/instrumentation.js +4 -4
- package/dist/nitro.js +2 -2
- package/dist/{oauth-callback-server-LPZMMGFI.js → oauth-callback-server-MNTVYY2I.js} +23 -24
- package/dist/{runner-DGKUTMPX.js → runner-K24BWZSZ.js} +21 -22
- package/dist/{skills-P7YUFSXM.js → skills-AU5ST2CG.js} +6 -6
- package/dist/spawn-6PO7CVJ6.js +38 -0
- package/dist/{validation-S7U5M5NR.js → validation-IXGZCFRO.js} +6 -6
- package/dist/version.js +1 -1
- package/dist/{work-GAA7TVAD.js → work-WCZIYILX.js} +17 -17
- package/dist/{worker-JXPJH3QB.js → worker-U2AACBEY.js} +11 -11
- package/package.json +5 -5
- package/dist/chunk-4EA2SFK2.js +0 -137
- package/dist/spawn-DSK3ZEVD.js +0 -38
package/dist/api.js
CHANGED
|
@@ -13,6 +13,7 @@ import {
|
|
|
13
13
|
conversationFeedQuerySchema,
|
|
14
14
|
conversationFeedSchema,
|
|
15
15
|
conversationParamsSchema,
|
|
16
|
+
conversationPendingMessagesReportSchema,
|
|
16
17
|
conversationReportEventSchema,
|
|
17
18
|
conversationStatsReportSchema,
|
|
18
19
|
createConversationBodySchema,
|
|
@@ -32,7 +33,7 @@ import {
|
|
|
32
33
|
taskListSchema,
|
|
33
34
|
taskParamsSchema,
|
|
34
35
|
taskRunListSchema
|
|
35
|
-
} from "./chunk-
|
|
36
|
+
} from "./chunk-3JVUWLR7.js";
|
|
36
37
|
import {
|
|
37
38
|
appendAndEnqueueApiConversationMessage,
|
|
38
39
|
createAndEnqueueApiConversation,
|
|
@@ -40,11 +41,13 @@ import {
|
|
|
40
41
|
readHealthReport,
|
|
41
42
|
resolveSlackConversationContextFromThreadId,
|
|
42
43
|
webActorFromEmail
|
|
43
|
-
} from "./chunk-
|
|
44
|
+
} from "./chunk-5CWUQXXT.js";
|
|
44
45
|
import {
|
|
45
46
|
buildSentryConversationUrl
|
|
46
47
|
} from "./chunk-4CODA7P5.js";
|
|
47
|
-
import
|
|
48
|
+
import {
|
|
49
|
+
getConversation
|
|
50
|
+
} from "./chunk-JMSMXXED.js";
|
|
48
51
|
import {
|
|
49
52
|
readTaskExecutionByConversationId,
|
|
50
53
|
readTaskExecutionDays,
|
|
@@ -52,8 +55,8 @@ import {
|
|
|
52
55
|
readTaskExecutionSummaries,
|
|
53
56
|
readTaskExecutions,
|
|
54
57
|
readTaskRuns
|
|
55
|
-
} from "./chunk-
|
|
56
|
-
import "./chunk-
|
|
58
|
+
} from "./chunk-UZGASGOD.js";
|
|
59
|
+
import "./chunk-4YKPOYRV.js";
|
|
57
60
|
import {
|
|
58
61
|
healthReportSchema,
|
|
59
62
|
pluginOperationalReportFeedSchema,
|
|
@@ -77,18 +80,16 @@ import {
|
|
|
77
80
|
listPublicEventTasksForTeams,
|
|
78
81
|
listPublicScheduledTasksForTeams,
|
|
79
82
|
readStats
|
|
80
|
-
} from "./chunk-
|
|
83
|
+
} from "./chunk-URDCZAL4.js";
|
|
81
84
|
import {
|
|
82
85
|
parseSlackThreadId
|
|
83
|
-
} from "./chunk-
|
|
84
|
-
import {
|
|
85
|
-
fallbackShortTitle
|
|
86
|
-
} from "./chunk-4EA2SFK2.js";
|
|
86
|
+
} from "./chunk-MEMURSBG.js";
|
|
87
87
|
import {
|
|
88
88
|
agentTurnUsageSchema,
|
|
89
|
+
fallbackShortTitle,
|
|
89
90
|
hasAgentTurnUsage,
|
|
90
91
|
renderJuniorNativeConversationEvent
|
|
91
|
-
} from "./chunk-
|
|
92
|
+
} from "./chunk-EW2LNCRL.js";
|
|
92
93
|
import "./chunk-3Y47VMHV.js";
|
|
93
94
|
import "./chunk-PDO5BLNM.js";
|
|
94
95
|
import {
|
|
@@ -97,11 +98,11 @@ import {
|
|
|
97
98
|
listConversationAnnotations,
|
|
98
99
|
renderPluginConversationEvent,
|
|
99
100
|
resolveViewerUser
|
|
100
|
-
} from "./chunk-
|
|
101
|
+
} from "./chunk-7BH46NB4.js";
|
|
101
102
|
import {
|
|
102
103
|
getSlackClient,
|
|
103
104
|
withSlackRetries
|
|
104
|
-
} from "./chunk-
|
|
105
|
+
} from "./chunk-SWHPVZBV.js";
|
|
105
106
|
import {
|
|
106
107
|
decodeStoredConversationEvent,
|
|
107
108
|
getConversationStore,
|
|
@@ -109,23 +110,23 @@ import {
|
|
|
109
110
|
getSqlExecutor,
|
|
110
111
|
locationFromRow,
|
|
111
112
|
parseSessionSource
|
|
112
|
-
} from "./chunk-
|
|
113
|
+
} from "./chunk-3GYZ5YEH.js";
|
|
113
114
|
import {
|
|
114
115
|
juniorApiTokens,
|
|
115
116
|
juniorConversationEvents,
|
|
116
117
|
juniorConversations,
|
|
117
118
|
juniorIdentities,
|
|
118
119
|
juniorUsers
|
|
119
|
-
} from "./chunk-
|
|
120
|
+
} from "./chunk-3I2IVWSZ.js";
|
|
120
121
|
import "./chunk-EM225ITJ.js";
|
|
121
|
-
import "./chunk-
|
|
122
|
-
import "./chunk-
|
|
122
|
+
import "./chunk-25SC7D6Z.js";
|
|
123
|
+
import "./chunk-32CXPIZE.js";
|
|
123
124
|
import {
|
|
124
125
|
juniorDestinations
|
|
125
126
|
} from "./chunk-VFUK3X5B.js";
|
|
126
127
|
import {
|
|
127
128
|
canExposeConversationPayload
|
|
128
|
-
} from "./chunk-
|
|
129
|
+
} from "./chunk-3KGQOKIG.js";
|
|
129
130
|
import "./chunk-RUIXF3YQ.js";
|
|
130
131
|
import "./chunk-HZF5P5UN.js";
|
|
131
132
|
import {
|
|
@@ -135,10 +136,10 @@ import {
|
|
|
135
136
|
} from "./chunk-F3B2YJ76.js";
|
|
136
137
|
import {
|
|
137
138
|
logException
|
|
138
|
-
} from "./chunk-
|
|
139
|
+
} from "./chunk-RLVZIWNQ.js";
|
|
139
140
|
import "./chunk-6GWA276C.js";
|
|
140
|
-
import "./chunk-
|
|
141
|
-
import "./chunk-
|
|
141
|
+
import "./chunk-6G5RCDKP.js";
|
|
142
|
+
import "./chunk-ZYMYLLWG.js";
|
|
142
143
|
import "./chunk-MLKGABMK.js";
|
|
143
144
|
|
|
144
145
|
// src/api.ts
|
|
@@ -290,7 +291,8 @@ async function createConversationForViewer(viewer, body) {
|
|
|
290
291
|
{
|
|
291
292
|
actor: actorFromViewer(viewer),
|
|
292
293
|
idempotencyKey: body.idempotencyKey,
|
|
293
|
-
message: body.message
|
|
294
|
+
message: body.message,
|
|
295
|
+
...body.visibility ? { visibility: body.visibility } : {}
|
|
294
296
|
},
|
|
295
297
|
{
|
|
296
298
|
conversationStore: getConversationStore(),
|
|
@@ -827,6 +829,7 @@ function reportEventData(args) {
|
|
|
827
829
|
type: "message",
|
|
828
830
|
messageId: data.messageId,
|
|
829
831
|
role: data.role,
|
|
832
|
+
...data.meta?.source === "web" ? { source: "web" } : {},
|
|
830
833
|
...actorIdentity ? { actorIdentity } : {},
|
|
831
834
|
...typeof data.meta?.eventType === "string" ? { eventType: data.meta.eventType } : {},
|
|
832
835
|
...args.canExposePayload ? { text: data.text } : { redacted: true }
|
|
@@ -2335,12 +2338,132 @@ async function readConversationEvents(conversationId, beforeValue, options = {})
|
|
|
2335
2338
|
});
|
|
2336
2339
|
}
|
|
2337
2340
|
|
|
2341
|
+
// src/api/conversations/pending-messages.ts
|
|
2342
|
+
import { z as z4 } from "zod";
|
|
2343
|
+
var apiTurnMailboxMetadataSchema = z4.object({
|
|
2344
|
+
authorEmail: z4.string().email(),
|
|
2345
|
+
authorFullName: z4.string().min(1).optional(),
|
|
2346
|
+
authorUserId: z4.string().min(1),
|
|
2347
|
+
authorUserName: z4.string().min(1).optional(),
|
|
2348
|
+
kind: z4.literal("api_turn"),
|
|
2349
|
+
messageId: z4.string().min(1)
|
|
2350
|
+
}).strict();
|
|
2351
|
+
var slackMailboxAuthorSchema = z4.object({
|
|
2352
|
+
userId: z4.string(),
|
|
2353
|
+
userName: z4.string().optional(),
|
|
2354
|
+
fullName: z4.string().optional(),
|
|
2355
|
+
isMe: z4.boolean().optional()
|
|
2356
|
+
}).passthrough();
|
|
2357
|
+
var slackMailboxMessageSchema = z4.object({
|
|
2358
|
+
author: slackMailboxAuthorSchema,
|
|
2359
|
+
id: z4.string().min(1)
|
|
2360
|
+
}).passthrough();
|
|
2361
|
+
var slackMailboxMetadataSchema = z4.object({
|
|
2362
|
+
message: slackMailboxMessageSchema,
|
|
2363
|
+
platform: z4.literal("slack")
|
|
2364
|
+
}).passthrough();
|
|
2365
|
+
function isoFromMs(value) {
|
|
2366
|
+
return new Date(value).toISOString();
|
|
2367
|
+
}
|
|
2368
|
+
function actorIdentityFromApiMetadata(metadata2) {
|
|
2369
|
+
return {
|
|
2370
|
+
email: metadata2.authorEmail.trim().toLowerCase(),
|
|
2371
|
+
...metadata2.authorFullName ? { fullName: metadata2.authorFullName } : {}
|
|
2372
|
+
};
|
|
2373
|
+
}
|
|
2374
|
+
function actorIdentityFromSlackMetadata(metadata2) {
|
|
2375
|
+
if (metadata2.message.author.isMe === true) return void 0;
|
|
2376
|
+
const slackUserId = metadata2.message.author.userId.trim();
|
|
2377
|
+
if (!slackUserId) return void 0;
|
|
2378
|
+
const slackUserName = metadata2.message.author.userName?.trim();
|
|
2379
|
+
const fullName = metadata2.message.author.fullName?.trim();
|
|
2380
|
+
return {
|
|
2381
|
+
slackUserId,
|
|
2382
|
+
...slackUserName ? { slackUserName } : {},
|
|
2383
|
+
...fullName ? { fullName } : {}
|
|
2384
|
+
};
|
|
2385
|
+
}
|
|
2386
|
+
function projectPendingMessage(message2, canExposePayload) {
|
|
2387
|
+
if (message2.source === "web") {
|
|
2388
|
+
const metadata2 = apiTurnMailboxMetadataSchema.safeParse(
|
|
2389
|
+
message2.input.metadata
|
|
2390
|
+
);
|
|
2391
|
+
if (!metadata2.success) return void 0;
|
|
2392
|
+
const text = message2.input.text.trim();
|
|
2393
|
+
if (!text) return void 0;
|
|
2394
|
+
return {
|
|
2395
|
+
createdAt: isoFromMs(message2.createdAtMs),
|
|
2396
|
+
delivery: message2.delivery,
|
|
2397
|
+
inboundMessageId: message2.inboundMessageId,
|
|
2398
|
+
messageId: metadata2.data.messageId,
|
|
2399
|
+
receivedAt: isoFromMs(message2.receivedAtMs),
|
|
2400
|
+
role: "user",
|
|
2401
|
+
source: "web",
|
|
2402
|
+
...canExposePayload ? {
|
|
2403
|
+
actorIdentity: actorIdentityFromApiMetadata(metadata2.data),
|
|
2404
|
+
text
|
|
2405
|
+
} : { redacted: true }
|
|
2406
|
+
};
|
|
2407
|
+
}
|
|
2408
|
+
if (message2.source === "slack") {
|
|
2409
|
+
const metadata2 = slackMailboxMetadataSchema.safeParse(
|
|
2410
|
+
message2.input.metadata
|
|
2411
|
+
);
|
|
2412
|
+
if (!metadata2.success) return void 0;
|
|
2413
|
+
if (metadata2.data.message.author.isMe === true) return void 0;
|
|
2414
|
+
const text = message2.input.text.trim();
|
|
2415
|
+
if (!text) return void 0;
|
|
2416
|
+
const actorIdentity = actorIdentityFromSlackMetadata(metadata2.data);
|
|
2417
|
+
return {
|
|
2418
|
+
createdAt: isoFromMs(message2.createdAtMs),
|
|
2419
|
+
delivery: message2.delivery,
|
|
2420
|
+
inboundMessageId: message2.inboundMessageId,
|
|
2421
|
+
messageId: metadata2.data.message.id,
|
|
2422
|
+
receivedAt: isoFromMs(message2.receivedAtMs),
|
|
2423
|
+
role: "user",
|
|
2424
|
+
source: "slack",
|
|
2425
|
+
...canExposePayload ? {
|
|
2426
|
+
...actorIdentity ? { actorIdentity } : {},
|
|
2427
|
+
text
|
|
2428
|
+
} : { redacted: true }
|
|
2429
|
+
};
|
|
2430
|
+
}
|
|
2431
|
+
return void 0;
|
|
2432
|
+
}
|
|
2433
|
+
async function readConversationPendingMessages(conversationId, options = {}) {
|
|
2434
|
+
const conversation = await getConversationStore().get({ conversationId });
|
|
2435
|
+
if (!conversation) return void 0;
|
|
2436
|
+
const access = (await readConversationAccessFromSql(getDb(), [conversationId], options.viewer)).get(conversationId);
|
|
2437
|
+
const canExposePayload = access?.canViewPrivateContent ?? false;
|
|
2438
|
+
const work = await getConversation({ conversationId });
|
|
2439
|
+
const messages = (work?.execution.pendingMessages ?? []).map((message2) => projectPendingMessage(message2, canExposePayload)).filter(
|
|
2440
|
+
(message2) => Boolean(message2)
|
|
2441
|
+
);
|
|
2442
|
+
return conversationPendingMessagesReportSchema.parse({
|
|
2443
|
+
conversationId,
|
|
2444
|
+
generatedAt: (/* @__PURE__ */ new Date()).toISOString(),
|
|
2445
|
+
messages
|
|
2446
|
+
});
|
|
2447
|
+
}
|
|
2448
|
+
async function requireConversationPendingMessages(conversationId, options = {}) {
|
|
2449
|
+
const report = await readConversationPendingMessages(conversationId, options);
|
|
2450
|
+
if (!report) throwApiError(404, "Conversation not found.");
|
|
2451
|
+
return report;
|
|
2452
|
+
}
|
|
2453
|
+
|
|
2338
2454
|
// src/api/conversations/stats.query.ts
|
|
2339
2455
|
import { and as and8, eq as eq9, gte, isNull as isNull4, lte, sql as sql6 } from "drizzle-orm";
|
|
2340
2456
|
import { alias as alias4 } from "drizzle-orm/pg-core";
|
|
2341
2457
|
|
|
2342
2458
|
// src/api/conversations/aggregate.ts
|
|
2343
2459
|
import { sql as sql5 } from "drizzle-orm";
|
|
2460
|
+
function usageTokenValue(source, field) {
|
|
2461
|
+
return sql5`CASE
|
|
2462
|
+
WHEN ${source.usage}->>${field} IS NOT NULL
|
|
2463
|
+
THEN (${source.usage}->>${field})::double precision
|
|
2464
|
+
ELSE NULL
|
|
2465
|
+
END`;
|
|
2466
|
+
}
|
|
2344
2467
|
function tokenValue(source) {
|
|
2345
2468
|
return sql5`
|
|
2346
2469
|
CASE
|
|
@@ -2388,11 +2511,13 @@ function conversationAggregateColumns(sources) {
|
|
|
2388
2511
|
WHERE ${roots.executionStatus} NOT IN ('idle', 'failed')
|
|
2389
2512
|
)::integer`,
|
|
2390
2513
|
conversations: sql5`${conversationCount}::integer`,
|
|
2514
|
+
cachedInputTokens: sql5`SUM(${usageTokenValue(metrics, "cachedInputTokens")})::double precision`,
|
|
2391
2515
|
costUsd: sql5`SUM(${costValue(metrics)})::double precision`,
|
|
2392
2516
|
durationMs: sql5`COALESCE(SUM(${metrics.durationMs}), 0)::double precision`,
|
|
2393
2517
|
failed: sql5`${conversationCount} FILTER (
|
|
2394
2518
|
WHERE ${roots.executionStatus} = 'failed'
|
|
2395
2519
|
)::integer`,
|
|
2520
|
+
inputTokens: sql5`SUM(${usageTokenValue(metrics, "inputTokens")})::double precision`,
|
|
2396
2521
|
tokens: sql5`SUM(${tokenValue(metrics)})::double precision`
|
|
2397
2522
|
};
|
|
2398
2523
|
}
|
|
@@ -2498,7 +2623,9 @@ function metricDays(rows, endMs) {
|
|
|
2498
2623
|
conversations: row?.conversations ?? 0,
|
|
2499
2624
|
date,
|
|
2500
2625
|
durationMs: row?.durationMs ?? 0,
|
|
2626
|
+
...row?.cachedInputTokens !== null && row?.cachedInputTokens !== void 0 ? { cachedInputTokens: row.cachedInputTokens } : {},
|
|
2501
2627
|
...row?.costUsd !== null && row?.costUsd !== void 0 ? { costUsd: addUsd(void 0, row.costUsd) } : {},
|
|
2628
|
+
...row?.inputTokens !== null && row?.inputTokens !== void 0 ? { inputTokens: row.inputTokens } : {},
|
|
2502
2629
|
...row?.tokens !== null && row?.tokens !== void 0 ? { tokens: row.tokens } : {}
|
|
2503
2630
|
});
|
|
2504
2631
|
}
|
|
@@ -2609,10 +2736,12 @@ async function aggregateStats(db, start, end) {
|
|
|
2609
2736
|
juniorDestinations.visibility
|
|
2610
2737
|
),
|
|
2611
2738
|
db.select({
|
|
2739
|
+
cachedInputTokens: treeAggregateColumns.cachedInputTokens,
|
|
2612
2740
|
conversations: treeAggregateColumns.conversations,
|
|
2613
2741
|
costUsd: treeAggregateColumns.costUsd,
|
|
2614
2742
|
date: activityDate,
|
|
2615
2743
|
durationMs: treeAggregateColumns.durationMs,
|
|
2744
|
+
inputTokens: treeAggregateColumns.inputTokens,
|
|
2616
2745
|
tokens: treeAggregateColumns.tokens
|
|
2617
2746
|
}).from(juniorConversations).innerJoin(
|
|
2618
2747
|
treeConversation,
|
|
@@ -2668,6 +2797,7 @@ async function readConversationStatsFromSql() {
|
|
|
2668
2797
|
}
|
|
2669
2798
|
return {
|
|
2670
2799
|
active: totals?.active ?? 0,
|
|
2800
|
+
...totals?.cachedInputTokens !== null && totals?.cachedInputTokens !== void 0 ? { cachedInputTokens: totals.cachedInputTokens } : {},
|
|
2671
2801
|
conversations: totals?.conversations ?? 0,
|
|
2672
2802
|
durationMs: totals?.durationMs ?? 0,
|
|
2673
2803
|
failed: totals?.failed ?? 0,
|
|
@@ -2678,6 +2808,7 @@ async function readConversationStatsFromSql() {
|
|
|
2678
2808
|
actors: statsItems(actors),
|
|
2679
2809
|
source: "conversation_index",
|
|
2680
2810
|
...totals?.costUsd !== null && totals?.costUsd !== void 0 ? { costUsd: addUsd(void 0, totals.costUsd) } : {},
|
|
2811
|
+
...totals?.inputTokens !== null && totals?.inputTokens !== void 0 ? { inputTokens: totals.inputTokens } : {},
|
|
2681
2812
|
...totals?.tokens !== null && totals?.tokens !== void 0 ? { tokens: totals.tokens } : {},
|
|
2682
2813
|
windowEnd: end.toISOString(),
|
|
2683
2814
|
windowStart: start.toISOString()
|
|
@@ -2802,6 +2933,24 @@ function createConversationRoutes() {
|
|
|
2802
2933
|
return jsonResponse(conversationEventPageSchema, report);
|
|
2803
2934
|
}
|
|
2804
2935
|
);
|
|
2936
|
+
app.get(
|
|
2937
|
+
"/:conversationId/pending-messages",
|
|
2938
|
+
validateRequest(
|
|
2939
|
+
"param",
|
|
2940
|
+
conversationParamsSchema,
|
|
2941
|
+
"Invalid route parameters."
|
|
2942
|
+
),
|
|
2943
|
+
async (context) => {
|
|
2944
|
+
const { conversationId } = context.req.valid("param");
|
|
2945
|
+
const viewer = context.get("viewer");
|
|
2946
|
+
return jsonResponse(
|
|
2947
|
+
conversationPendingMessagesReportSchema,
|
|
2948
|
+
await requireConversationPendingMessages(conversationId, {
|
|
2949
|
+
viewer
|
|
2950
|
+
})
|
|
2951
|
+
);
|
|
2952
|
+
}
|
|
2953
|
+
);
|
|
2805
2954
|
app.get(
|
|
2806
2955
|
"/:conversationId",
|
|
2807
2956
|
validateRequest(
|
|
@@ -3957,7 +4106,7 @@ function createPersonalTokenRoutes() {
|
|
|
3957
4106
|
|
|
3958
4107
|
// src/api/user-pages/routes.ts
|
|
3959
4108
|
import { Hono as Hono5 } from "hono";
|
|
3960
|
-
import { z as
|
|
4109
|
+
import { z as z5 } from "zod";
|
|
3961
4110
|
import {
|
|
3962
4111
|
pluginUserPageContentSchema as pluginUserPageContentSchema2,
|
|
3963
4112
|
pluginUserPageInputSchema,
|
|
@@ -4023,20 +4172,20 @@ async function readPluginUserPage(input) {
|
|
|
4023
4172
|
}
|
|
4024
4173
|
|
|
4025
4174
|
// src/api/user-pages/routes.ts
|
|
4026
|
-
var userPageQuerySchema =
|
|
4027
|
-
cursor:
|
|
4175
|
+
var userPageQuerySchema = z5.object({
|
|
4176
|
+
cursor: z5.preprocess(
|
|
4028
4177
|
(value) => value || void 0,
|
|
4029
4178
|
pluginUserPageInputSchema.shape.cursor
|
|
4030
4179
|
),
|
|
4031
|
-
filter:
|
|
4180
|
+
filter: z5.preprocess(
|
|
4032
4181
|
(value) => value || void 0,
|
|
4033
4182
|
pluginUserPageInputSchema.shape.filter
|
|
4034
4183
|
),
|
|
4035
|
-
limit:
|
|
4184
|
+
limit: z5.preprocess(
|
|
4036
4185
|
(value) => value === "" ? void 0 : value,
|
|
4037
|
-
|
|
4186
|
+
z5.coerce.number().int().min(1).max(50).default(20)
|
|
4038
4187
|
),
|
|
4039
|
-
q:
|
|
4188
|
+
q: z5.preprocess(
|
|
4040
4189
|
(value) => value || void 0,
|
|
4041
4190
|
pluginUserPageInputSchema.shape.query
|
|
4042
4191
|
)
|
|
@@ -4160,7 +4309,7 @@ function readDescriptionText(home) {
|
|
|
4160
4309
|
}
|
|
4161
4310
|
}
|
|
4162
4311
|
async function readSkillReports() {
|
|
4163
|
-
const { discoverSkills } = await import("./skills-
|
|
4312
|
+
const { discoverSkills } = await import("./skills-AU5ST2CG.js");
|
|
4164
4313
|
const skills = await discoverSkills();
|
|
4165
4314
|
return skillReportsSchema.parse(
|
|
4166
4315
|
skills.map((skill) => ({
|
|
@@ -4170,7 +4319,7 @@ async function readSkillReports() {
|
|
|
4170
4319
|
);
|
|
4171
4320
|
}
|
|
4172
4321
|
async function readPlugins() {
|
|
4173
|
-
const { pluginCatalogRuntime } = await import("./catalog-runtime-
|
|
4322
|
+
const { pluginCatalogRuntime } = await import("./catalog-runtime-GAW5APVI.js");
|
|
4174
4323
|
return pluginsSchema.parse(
|
|
4175
4324
|
pluginCatalogRuntime.getProviders().map((plugin) => ({
|
|
4176
4325
|
configKeys: plugin.manifest.configKeys ?? [],
|
|
@@ -4183,7 +4332,7 @@ async function readPlugins() {
|
|
|
4183
4332
|
async function readRuntimeInfoReport() {
|
|
4184
4333
|
const [{ homeDir }, { pluginCatalogRuntime }, plugins, skills] = await Promise.all([
|
|
4185
4334
|
import("./discovery-GUFTFBTL.js"),
|
|
4186
|
-
import("./catalog-runtime-
|
|
4335
|
+
import("./catalog-runtime-GAW5APVI.js"),
|
|
4187
4336
|
readPlugins(),
|
|
4188
4337
|
readSkillReports()
|
|
4189
4338
|
]);
|
|
@@ -4199,7 +4348,7 @@ async function readRuntimeInfoReport() {
|
|
|
4199
4348
|
}
|
|
4200
4349
|
async function readPluginOperationalReportFeed() {
|
|
4201
4350
|
const nowMs = Date.now();
|
|
4202
|
-
const { getPluginOperationalReports } = await import("./agent-hooks-
|
|
4351
|
+
const { getPluginOperationalReports } = await import("./agent-hooks-CWMCXAMT.js");
|
|
4203
4352
|
return pluginOperationalReportFeedSchema.parse({
|
|
4204
4353
|
source: "plugins",
|
|
4205
4354
|
generatedAt: new Date(nowMs).toISOString(),
|