@isaacthoman/pulpo 0.124.3 → 0.126.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/index.js +83 -7
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -14527,6 +14527,40 @@ function date4(params) {
|
|
|
14527
14527
|
// ../../node_modules/zod/v4/classic/external.js
|
|
14528
14528
|
config(en_default());
|
|
14529
14529
|
|
|
14530
|
+
// ../../packages/contracts/dist/response-timing.js
|
|
14531
|
+
function record2(value) {
|
|
14532
|
+
return value !== null && typeof value === "object" ? value : void 0;
|
|
14533
|
+
}
|
|
14534
|
+
function hasAssistantReplyText(output) {
|
|
14535
|
+
return Array.isArray(output) && output.some((raw) => {
|
|
14536
|
+
const item = record2(raw);
|
|
14537
|
+
if (item?.type !== "message" || item.role && item.role !== "assistant")
|
|
14538
|
+
return false;
|
|
14539
|
+
if (typeof item.content === "string")
|
|
14540
|
+
return Boolean(item.content.trim());
|
|
14541
|
+
return Array.isArray(item.content) && item.content.some((rawPart) => {
|
|
14542
|
+
const part = record2(rawPart);
|
|
14543
|
+
const text = typeof rawPart === "string" ? rawPart : part?.text ?? part?.content ?? part?.refusal;
|
|
14544
|
+
return typeof text === "string" && Boolean(text.trim());
|
|
14545
|
+
});
|
|
14546
|
+
});
|
|
14547
|
+
}
|
|
14548
|
+
function eventHasAssistantReplyText(type, payload) {
|
|
14549
|
+
const value = record2(payload);
|
|
14550
|
+
if (!value)
|
|
14551
|
+
return false;
|
|
14552
|
+
if (type === "response.output_text.delta" || type === "response.output_text.done" || type === "response.refusal.delta" || type === "response.refusal.done") {
|
|
14553
|
+
const text = value.delta ?? value.text ?? value.refusal;
|
|
14554
|
+
return typeof text === "string" && Boolean(text.trim());
|
|
14555
|
+
}
|
|
14556
|
+
if (type === "response.output_item.added" || type === "response.output_item.done")
|
|
14557
|
+
return hasAssistantReplyText([value.item]);
|
|
14558
|
+
if (type === "response.content_part.added" || type === "response.content_part.done") {
|
|
14559
|
+
return hasAssistantReplyText([{ type: "message", content: [value.part] }]);
|
|
14560
|
+
}
|
|
14561
|
+
return type.startsWith("response.") && hasAssistantReplyText(record2(value.response)?.output);
|
|
14562
|
+
}
|
|
14563
|
+
|
|
14530
14564
|
// ../../packages/contracts/dist/composer.js
|
|
14531
14565
|
var composerDraftIdSchema = external_exports.union([external_exports.literal("new"), external_exports.uuid()]);
|
|
14532
14566
|
var composerAttachmentSchema = external_exports.object({
|
|
@@ -16318,6 +16352,31 @@ var CHAT_PRESET_ICON_NAMES = [
|
|
|
16318
16352
|
"zoom-out"
|
|
16319
16353
|
];
|
|
16320
16354
|
|
|
16355
|
+
// ../../packages/contracts/dist/shelf.js
|
|
16356
|
+
var shelfContentSchema = external_exports.object({
|
|
16357
|
+
content: external_exports.string().max(1e6),
|
|
16358
|
+
attachmentIds: external_exports.array(external_exports.uuid()).max(100)
|
|
16359
|
+
});
|
|
16360
|
+
var shelvedDraftSchema = external_exports.object({
|
|
16361
|
+
id: external_exports.uuid(),
|
|
16362
|
+
content: external_exports.string(),
|
|
16363
|
+
attachments: external_exports.array(composerAttachmentSchema),
|
|
16364
|
+
position: external_exports.number().int(),
|
|
16365
|
+
revision: external_exports.number().int().nonnegative(),
|
|
16366
|
+
createdAt: external_exports.string(),
|
|
16367
|
+
updatedAt: external_exports.string()
|
|
16368
|
+
});
|
|
16369
|
+
var savedDraft = shelfContentSchema.extend({ id: external_exports.uuid() });
|
|
16370
|
+
var shelfMutationSchema = external_exports.object({
|
|
16371
|
+
operationId: external_exports.uuid(),
|
|
16372
|
+
action: external_exports.discriminatedUnion("type", [
|
|
16373
|
+
external_exports.object({ type: external_exports.literal("save"), draft: savedDraft }),
|
|
16374
|
+
external_exports.object({ type: external_exports.literal("restore"), id: external_exports.uuid(), replacement: savedDraft.optional() }),
|
|
16375
|
+
external_exports.object({ type: external_exports.literal("delete"), id: external_exports.uuid() }),
|
|
16376
|
+
external_exports.object({ type: external_exports.literal("reorder"), id: external_exports.uuid(), targetId: external_exports.uuid(), edge: external_exports.enum(["before", "after"]) })
|
|
16377
|
+
])
|
|
16378
|
+
});
|
|
16379
|
+
|
|
16321
16380
|
// ../../packages/contracts/dist/index.js
|
|
16322
16381
|
var idSchema = external_exports.uuid();
|
|
16323
16382
|
var isoDateSchema = external_exports.iso.datetime();
|
|
@@ -16619,6 +16678,8 @@ var responseUsageSchema = external_exports.object({
|
|
|
16619
16678
|
totalTokens: external_exports.number().int().nonnegative()
|
|
16620
16679
|
});
|
|
16621
16680
|
var storedResponseSchema = external_exports.object({
|
|
16681
|
+
requestReceivedAt: isoDateSchema.nullable().optional(),
|
|
16682
|
+
firstReplyTextAt: isoDateSchema.nullable().optional(),
|
|
16622
16683
|
id: idSchema,
|
|
16623
16684
|
chatId: idSchema,
|
|
16624
16685
|
userId: idSchema,
|
|
@@ -16635,6 +16696,8 @@ var storedResponseSchema = external_exports.object({
|
|
|
16635
16696
|
completedAt: isoDateSchema.nullable()
|
|
16636
16697
|
});
|
|
16637
16698
|
var responseEventSchema = external_exports.object({
|
|
16699
|
+
requestReceivedAt: isoDateSchema.nullable().optional(),
|
|
16700
|
+
firstReplyTextAt: isoDateSchema.nullable().optional(),
|
|
16638
16701
|
responseId: idSchema,
|
|
16639
16702
|
sequence: external_exports.number().int().positive(),
|
|
16640
16703
|
type: external_exports.string().min(1),
|
|
@@ -16677,6 +16740,8 @@ var recallItemSchema = external_exports.object({
|
|
|
16677
16740
|
sources: external_exports.array(recallSourceSchema).max(5)
|
|
16678
16741
|
});
|
|
16679
16742
|
var responseSnapshotSchema = external_exports.object({
|
|
16743
|
+
requestReceivedAt: isoDateSchema.nullable().optional(),
|
|
16744
|
+
firstReplyTextAt: isoDateSchema.nullable().optional(),
|
|
16680
16745
|
responseId: idSchema,
|
|
16681
16746
|
status: responseStatusSchema,
|
|
16682
16747
|
sequence: external_exports.number().int().nonnegative(),
|
|
@@ -16826,12 +16891,22 @@ function applyResponseEventToSnapshot(snapshot, event) {
|
|
|
16826
16891
|
status: snapshot.status === "queued" ? "in_progress" : snapshot.status,
|
|
16827
16892
|
sequence: event.sequence,
|
|
16828
16893
|
output,
|
|
16894
|
+
requestReceivedAt: snapshot.requestReceivedAt ?? event.requestReceivedAt,
|
|
16895
|
+
firstReplyTextAt: snapshot.firstReplyTextAt ?? event.firstReplyTextAt ?? (eventHasAssistantReplyText(event.type, event.payload) ? event.emittedAt : void 0),
|
|
16829
16896
|
updatedAt: event.emittedAt
|
|
16830
16897
|
};
|
|
16831
16898
|
}
|
|
16832
16899
|
function mergeResponseSnapshots(current, incoming) {
|
|
16833
16900
|
if (incoming.sequence < current.sequence)
|
|
16834
16901
|
return current;
|
|
16902
|
+
const requestReceivedAt = current.requestReceivedAt ?? incoming.requestReceivedAt;
|
|
16903
|
+
const firstReplyTextAt = current.firstReplyTextAt ?? incoming.firstReplyTextAt;
|
|
16904
|
+
if (current.requestReceivedAt !== requestReceivedAt || current.firstReplyTextAt !== firstReplyTextAt) {
|
|
16905
|
+
current = { ...current, requestReceivedAt, firstReplyTextAt };
|
|
16906
|
+
}
|
|
16907
|
+
if (incoming.requestReceivedAt !== requestReceivedAt || incoming.firstReplyTextAt !== firstReplyTextAt) {
|
|
16908
|
+
incoming = { ...incoming, requestReceivedAt, firstReplyTextAt };
|
|
16909
|
+
}
|
|
16835
16910
|
if (incoming.sequence === current.sequence) {
|
|
16836
16911
|
const currentTerminal = current.status !== "queued" && current.status !== "in_progress";
|
|
16837
16912
|
const incomingTerminal = incoming.status !== "queued" && incoming.status !== "in_progress";
|
|
@@ -17387,6 +17462,7 @@ var managementAccountSettingsSchema = external_exports.object({
|
|
|
17387
17462
|
composerSyncEnabled: external_exports.boolean().default(true),
|
|
17388
17463
|
sendWithEnter: external_exports.boolean().default(true),
|
|
17389
17464
|
streamResponses: external_exports.boolean().default(true),
|
|
17465
|
+
showPromptSuggestions: external_exports.boolean().default(true),
|
|
17390
17466
|
showReasoning: external_exports.boolean().default(true),
|
|
17391
17467
|
showResponseCost: external_exports.boolean().default(false),
|
|
17392
17468
|
chatWidth: external_exports.enum(["full", "narrow"]).default("narrow"),
|
|
@@ -17678,7 +17754,7 @@ var syncRequestSchema = external_exports.object({
|
|
|
17678
17754
|
activeChatId: idSchema.optional(),
|
|
17679
17755
|
responseCursors: external_exports.record(idSchema, external_exports.number().int().nonnegative())
|
|
17680
17756
|
});
|
|
17681
|
-
var stateInvalidationScopeSchema = external_exports.enum(["chats", "folders", "models", "usage", "settings", "friends", "pool", "billing"]);
|
|
17757
|
+
var stateInvalidationScopeSchema = external_exports.enum(["chats", "folders", "models", "usage", "settings", "friends", "pool", "billing", "shelved-drafts"]);
|
|
17682
17758
|
var syncResultSchema = external_exports.object({
|
|
17683
17759
|
accountRevision: external_exports.number().int().nonnegative(),
|
|
17684
17760
|
invalidate: external_exports.array(stateInvalidationScopeSchema),
|
|
@@ -18315,7 +18391,7 @@ async function runModelTest(input) {
|
|
|
18315
18391
|
}
|
|
18316
18392
|
|
|
18317
18393
|
// src/index.ts
|
|
18318
|
-
var CLI_VERSION = true ? "0.
|
|
18394
|
+
var CLI_VERSION = true ? "0.126.0" : "0.1.0";
|
|
18319
18395
|
var CLI_BUNDLED = true;
|
|
18320
18396
|
var commandIo = /* @__PURE__ */ new WeakMap();
|
|
18321
18397
|
var commandClientFactory = /* @__PURE__ */ new WeakMap();
|
|
@@ -18384,13 +18460,13 @@ var SECRET_INPUT_KEYS = /* @__PURE__ */ new Set(["apiKey", "password", "secret",
|
|
|
18384
18460
|
function resolveEnvironmentReferences(value, path = "") {
|
|
18385
18461
|
if (Array.isArray(value)) return value.map((item, index) => resolveEnvironmentReferences(item, `${path}[${index}]`));
|
|
18386
18462
|
if (!value || typeof value !== "object") return value;
|
|
18387
|
-
const
|
|
18388
|
-
if (Object.keys(
|
|
18389
|
-
const secret = process.env[
|
|
18390
|
-
if (secret === void 0) throw new Error(`Environment variable ${
|
|
18463
|
+
const record3 = value;
|
|
18464
|
+
if (Object.keys(record3).length === 1 && typeof record3.fromEnv === "string") {
|
|
18465
|
+
const secret = process.env[record3.fromEnv];
|
|
18466
|
+
if (secret === void 0) throw new Error(`Environment variable ${record3.fromEnv} is not set`);
|
|
18391
18467
|
return secret;
|
|
18392
18468
|
}
|
|
18393
|
-
return Object.fromEntries(Object.entries(
|
|
18469
|
+
return Object.fromEntries(Object.entries(record3).map(([key, item]) => {
|
|
18394
18470
|
const itemPath = path ? `${path}.${key}` : key;
|
|
18395
18471
|
if (SECRET_INPUT_KEYS.has(key) && typeof item === "string") {
|
|
18396
18472
|
throw new Error(`${itemPath} must use { "fromEnv": "NAME" } instead of a plaintext JSON secret`);
|