@isaacthoman/pulpo 0.149.0 → 0.150.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 +177 -7
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -14773,6 +14773,50 @@ var avatarCropSettingsSchema = external_exports.object({
|
|
|
14773
14773
|
offsetY: external_exports.number()
|
|
14774
14774
|
});
|
|
14775
14775
|
|
|
14776
|
+
// ../../packages/contracts/dist/admin-analytics.js
|
|
14777
|
+
var clientPlatformSchema = external_exports.enum(["web", "desktop", "ios", "android", "cli", "api", "unknown"]);
|
|
14778
|
+
var analyticsRangeSchema = external_exports.enum(["1h", "24h", "7d", "30d", "90d", "all", "custom"]);
|
|
14779
|
+
var analyticsBucketSchema = external_exports.enum(["hour", "day"]);
|
|
14780
|
+
function validTimeZone(value) {
|
|
14781
|
+
try {
|
|
14782
|
+
new Intl.DateTimeFormat("en-US", { timeZone: value }).format();
|
|
14783
|
+
return true;
|
|
14784
|
+
} catch {
|
|
14785
|
+
return false;
|
|
14786
|
+
}
|
|
14787
|
+
}
|
|
14788
|
+
var booleanFilter = external_exports.enum(["true", "false"]).optional();
|
|
14789
|
+
var csvFilter = external_exports.string().trim().max(500).optional();
|
|
14790
|
+
var analyticsRangeQuerySchema = external_exports.object({
|
|
14791
|
+
range: analyticsRangeSchema.default("24h"),
|
|
14792
|
+
from: external_exports.iso.datetime({ offset: true }).optional(),
|
|
14793
|
+
to: external_exports.iso.datetime({ offset: true }).optional(),
|
|
14794
|
+
timeZone: external_exports.string().trim().min(1).max(100).refine(validTimeZone, "Invalid time zone").default("UTC")
|
|
14795
|
+
}).refine((value) => value.range !== "custom" || Boolean(value.from), {
|
|
14796
|
+
message: "Custom ranges need a start time",
|
|
14797
|
+
path: ["from"]
|
|
14798
|
+
});
|
|
14799
|
+
var adminRequestFiltersSchema = external_exports.object({
|
|
14800
|
+
status: csvFilter,
|
|
14801
|
+
origin: csvFilter,
|
|
14802
|
+
platform: csvFilter,
|
|
14803
|
+
model: csvFilter,
|
|
14804
|
+
userId: external_exports.uuid().optional(),
|
|
14805
|
+
apiKeyId: external_exports.uuid().optional(),
|
|
14806
|
+
errorCategory: csvFilter,
|
|
14807
|
+
retry: booleanFilter,
|
|
14808
|
+
fallback: booleanFilter,
|
|
14809
|
+
agent: booleanFilter,
|
|
14810
|
+
ocr: booleanFilter
|
|
14811
|
+
});
|
|
14812
|
+
var adminRequestSortSchema = external_exports.enum(["newest", "slowest", "costliest"]);
|
|
14813
|
+
var insightsFiltersSchema = external_exports.object({
|
|
14814
|
+
platform: csvFilter,
|
|
14815
|
+
plan: csvFilter,
|
|
14816
|
+
origin: csvFilter,
|
|
14817
|
+
model: csvFilter
|
|
14818
|
+
});
|
|
14819
|
+
|
|
14776
14820
|
// ../../packages/contracts/dist/attachment-limits.js
|
|
14777
14821
|
var MAX_MESSAGE_ATTACHMENTS = 500;
|
|
14778
14822
|
var DEFAULT_MAX_INLINE_IMAGES = 5;
|
|
@@ -16595,6 +16639,98 @@ var shelfMutationSchema = external_exports.object({
|
|
|
16595
16639
|
])
|
|
16596
16640
|
});
|
|
16597
16641
|
|
|
16642
|
+
// ../../packages/contracts/dist/files.js
|
|
16643
|
+
var FILE_NAME_MAX_LENGTH = 255;
|
|
16644
|
+
function normalizeFileName(value) {
|
|
16645
|
+
return value.normalize("NFC").trim();
|
|
16646
|
+
}
|
|
16647
|
+
function fileNameError(name) {
|
|
16648
|
+
if (!name)
|
|
16649
|
+
return "empty";
|
|
16650
|
+
if ([...name].length > FILE_NAME_MAX_LENGTH)
|
|
16651
|
+
return "too_long";
|
|
16652
|
+
if (name === "." || name === "..")
|
|
16653
|
+
return "reserved";
|
|
16654
|
+
for (const character of name) {
|
|
16655
|
+
const code = character.charCodeAt(0);
|
|
16656
|
+
if (character === "/" || code < 32 || code === 127)
|
|
16657
|
+
return "invalid_character";
|
|
16658
|
+
}
|
|
16659
|
+
return null;
|
|
16660
|
+
}
|
|
16661
|
+
var fileNameSchema = external_exports.string().max(4 * FILE_NAME_MAX_LENGTH).transform(normalizeFileName).superRefine((name, context) => {
|
|
16662
|
+
const error51 = fileNameError(name);
|
|
16663
|
+
if (error51)
|
|
16664
|
+
context.addIssue({ code: "custom", message: `Invalid file name (${error51})` });
|
|
16665
|
+
});
|
|
16666
|
+
var fileNodeKindSchema = external_exports.enum(["folder", "doc", "blob"]);
|
|
16667
|
+
var fileNodeStatusSchema = external_exports.enum(["pending", "ready"]);
|
|
16668
|
+
var fileNodeSchema = external_exports.object({
|
|
16669
|
+
id: external_exports.uuid(),
|
|
16670
|
+
parentId: external_exports.uuid().nullable(),
|
|
16671
|
+
kind: fileNodeKindSchema,
|
|
16672
|
+
name: external_exports.string(),
|
|
16673
|
+
status: fileNodeStatusSchema,
|
|
16674
|
+
mimeType: external_exports.string().nullable(),
|
|
16675
|
+
sizeBytes: external_exports.number().int().nonnegative(),
|
|
16676
|
+
revision: external_exports.number().int().nonnegative(),
|
|
16677
|
+
trashedAt: external_exports.string().nullable(),
|
|
16678
|
+
createdAt: external_exports.string(),
|
|
16679
|
+
updatedAt: external_exports.string()
|
|
16680
|
+
});
|
|
16681
|
+
var createFileFolderSchema = external_exports.object({
|
|
16682
|
+
parentId: external_exports.uuid().nullable().default(null),
|
|
16683
|
+
name: fileNameSchema
|
|
16684
|
+
});
|
|
16685
|
+
var FILE_DOC_MAX_MARKDOWN_LENGTH = 2e6;
|
|
16686
|
+
var createFileDocSchema = external_exports.object({
|
|
16687
|
+
parentId: external_exports.uuid().nullable().default(null),
|
|
16688
|
+
name: fileNameSchema.optional(),
|
|
16689
|
+
/** Initial content, e.g. when importing an uploaded .md file. */
|
|
16690
|
+
markdown: external_exports.string().max(FILE_DOC_MAX_MARKDOWN_LENGTH).optional()
|
|
16691
|
+
});
|
|
16692
|
+
var updateFileNodeSchema = external_exports.object({
|
|
16693
|
+
name: fileNameSchema.optional(),
|
|
16694
|
+
parentId: external_exports.uuid().nullable().optional(),
|
|
16695
|
+
expectedRevision: external_exports.number().int().nonnegative().optional()
|
|
16696
|
+
}).refine((input) => input.name !== void 0 || input.parentId !== void 0, { message: "Nothing to update" });
|
|
16697
|
+
var FILE_BATCH_MAX_ITEMS = 500;
|
|
16698
|
+
var fileIdsSchema = external_exports.array(external_exports.uuid()).min(1).max(FILE_BATCH_MAX_ITEMS);
|
|
16699
|
+
var fileNodeIdsSchema = external_exports.object({ ids: fileIdsSchema });
|
|
16700
|
+
var moveFileNodesSchema = external_exports.object({
|
|
16701
|
+
items: external_exports.array(external_exports.object({
|
|
16702
|
+
id: external_exports.uuid(),
|
|
16703
|
+
parentId: external_exports.uuid().nullable(),
|
|
16704
|
+
/** Optional target name, e.g. when undoing a move that had to rename. */
|
|
16705
|
+
name: fileNameSchema.optional()
|
|
16706
|
+
})).min(1).max(FILE_BATCH_MAX_ITEMS)
|
|
16707
|
+
});
|
|
16708
|
+
var saveAttachmentToFilesSchema = external_exports.object({
|
|
16709
|
+
parentId: external_exports.uuid().nullable().default(null),
|
|
16710
|
+
name: fileNameSchema.optional(),
|
|
16711
|
+
replaceId: external_exports.uuid().optional()
|
|
16712
|
+
});
|
|
16713
|
+
var copyFileNodesSchema = external_exports.object({
|
|
16714
|
+
ids: fileIdsSchema,
|
|
16715
|
+
parentId: external_exports.uuid().nullable()
|
|
16716
|
+
});
|
|
16717
|
+
var reserveFileUploadSchema = external_exports.object({
|
|
16718
|
+
parentId: external_exports.uuid().nullable().default(null),
|
|
16719
|
+
name: fileNameSchema,
|
|
16720
|
+
mimeType: external_exports.string().min(1).max(255),
|
|
16721
|
+
// The per-file cap is an admin setting enforced when the upload is reserved.
|
|
16722
|
+
sizeBytes: external_exports.number().int().nonnegative().max(Number.MAX_SAFE_INTEGER)
|
|
16723
|
+
});
|
|
16724
|
+
var fileGridPositionSchema = external_exports.object({
|
|
16725
|
+
x: external_exports.number().int().min(0).max(1e6),
|
|
16726
|
+
y: external_exports.number().int().min(0).max(1e6)
|
|
16727
|
+
});
|
|
16728
|
+
var updateFileFolderLayoutSchema = external_exports.object({
|
|
16729
|
+
folderId: external_exports.uuid().nullable(),
|
|
16730
|
+
snapToGrid: external_exports.boolean().optional(),
|
|
16731
|
+
positions: external_exports.record(external_exports.uuid(), fileGridPositionSchema.nullable()).refine((positions) => Object.keys(positions).length <= 5e3, { message: "Too many positions" }).optional()
|
|
16732
|
+
});
|
|
16733
|
+
|
|
16598
16734
|
// ../../packages/contracts/dist/index.js
|
|
16599
16735
|
var idSchema = external_exports.uuid();
|
|
16600
16736
|
var isoDateSchema = external_exports.iso.datetime();
|
|
@@ -16853,6 +16989,13 @@ var poolInvitationSchema = external_exports.object({
|
|
|
16853
16989
|
memberCount: external_exports.number().int().min(1).max(6),
|
|
16854
16990
|
createdAt: isoDateSchema
|
|
16855
16991
|
});
|
|
16992
|
+
var usageLimitBarSchema = external_exports.object({
|
|
16993
|
+
remainingPercentage: external_exports.number().int().min(0).max(100),
|
|
16994
|
+
availableBarPercentage: external_exports.number().min(0).max(100),
|
|
16995
|
+
pendingMicros: external_exports.number().int().nonnegative(),
|
|
16996
|
+
pendingBarPercentage: external_exports.number().min(0).max(100),
|
|
16997
|
+
resetsAt: isoDateSchema.nullable()
|
|
16998
|
+
});
|
|
16856
16999
|
var poolSummarySchema = external_exports.object({
|
|
16857
17000
|
accountBalanceMicros: external_exports.number().int().nonnegative(),
|
|
16858
17001
|
pool: external_exports.object({
|
|
@@ -16860,7 +17003,13 @@ var poolSummarySchema = external_exports.object({
|
|
|
16860
17003
|
ownerUserId: idSchema,
|
|
16861
17004
|
pooledBalanceMicros: external_exports.number().int().nonnegative(),
|
|
16862
17005
|
members: external_exports.array(poolMemberSchema).max(6),
|
|
16863
|
-
pendingInvitations: external_exports.array(poolInvitationSchema)
|
|
17006
|
+
pendingInvitations: external_exports.array(poolInvitationSchema),
|
|
17007
|
+
/** Shared weekly usage from Fat subscribers in the pool; null when nobody shares. */
|
|
17008
|
+
sharedUsage: external_exports.object({
|
|
17009
|
+
total: usageLimitBarSchema,
|
|
17010
|
+
/** The viewer's own five-hour limit on drawing from others' shared usage. */
|
|
17011
|
+
fiveHour: usageLimitBarSchema.nullable()
|
|
17012
|
+
}).nullable()
|
|
16864
17013
|
}).nullable(),
|
|
16865
17014
|
incomingInvitations: external_exports.array(poolInvitationSchema)
|
|
16866
17015
|
});
|
|
@@ -17236,6 +17385,9 @@ var modelPreferencesPatchSchema = external_exports.object({
|
|
|
17236
17385
|
providerOrder: orderedPreferenceIdsSchema.optional()
|
|
17237
17386
|
});
|
|
17238
17387
|
var sidebarPinsSchema = external_exports.object({
|
|
17388
|
+
// Shown by default; saved preferences that predate these keys keep them visible.
|
|
17389
|
+
searchChats: external_exports.boolean().default(true),
|
|
17390
|
+
files: external_exports.boolean().default(true),
|
|
17239
17391
|
usage: external_exports.boolean().default(false),
|
|
17240
17392
|
billing: external_exports.boolean().default(false),
|
|
17241
17393
|
friends: external_exports.boolean().default(false),
|
|
@@ -17646,6 +17798,7 @@ var authSettingsSchema = external_exports.object({
|
|
|
17646
17798
|
pendingMessage: external_exports.string().max(2e3).default("Your account is pending approval. An admin will review it shortly."),
|
|
17647
17799
|
defaultSignupRole: external_exports.enum(["pending", "user"]).default("pending"),
|
|
17648
17800
|
apiKeysEnabled: external_exports.boolean().default(true),
|
|
17801
|
+
filesEnabled: external_exports.boolean().default(true),
|
|
17649
17802
|
inviteCodesEnabled: external_exports.boolean().default(false),
|
|
17650
17803
|
newAccountModelDefaults: newAccountModelDefaultsSchema.default(() => newAccountModelDefaultsSchema.parse({}))
|
|
17651
17804
|
});
|
|
@@ -17738,6 +17891,7 @@ var instanceOcrSettingsSchema = external_exports.object({
|
|
|
17738
17891
|
var accountPreferenceIdsSchema = external_exports.array(external_exports.string().trim().min(1).max(200)).max(500).transform((ids) => [...new Set(ids)]);
|
|
17739
17892
|
var automaticChatExpirationSchema = external_exports.enum(["disabled", "24h", "7d"]);
|
|
17740
17893
|
var newChatAutoExpireSchema = external_exports.boolean().default(false);
|
|
17894
|
+
var chatSortModeSchema = external_exports.enum(["default", "recent"]);
|
|
17741
17895
|
var ANIMATION_SPEED_MIN = 0.01;
|
|
17742
17896
|
var ANIMATION_SPEED_MAX = 5;
|
|
17743
17897
|
var DEFAULT_ANIMATION_SPEED = 1;
|
|
@@ -17776,6 +17930,7 @@ var managementAccountSettingsSchema = external_exports.object({
|
|
|
17776
17930
|
trashRetention: external_exports.enum(["instant", "24h", "7d", "30d", "90d", "indefinite"]).default("30d"),
|
|
17777
17931
|
automaticChatExpiration: automaticChatExpirationSchema.default("24h"),
|
|
17778
17932
|
newChatAutoExpire: newChatAutoExpireSchema,
|
|
17933
|
+
chatSortMode: chatSortModeSchema.default("default"),
|
|
17779
17934
|
defaultModelId: external_exports.string().max(120).nullable().default(null),
|
|
17780
17935
|
generation: external_exports.record(external_exports.string(), external_exports.record(external_exports.string(), external_exports.string())).default({}),
|
|
17781
17936
|
favoriteModelIds: accountPreferenceIdsSchema.default([]),
|
|
@@ -17937,6 +18092,9 @@ var updateApiKeySchema = external_exports.object({
|
|
|
17937
18092
|
}).refine((input) => Object.values(input).some((value) => value !== void 0), {
|
|
17938
18093
|
message: "Provide at least one API key setting"
|
|
17939
18094
|
});
|
|
18095
|
+
var FILE_SCOPE_ROOT = "root";
|
|
18096
|
+
var MAX_CHAT_FILE_SCOPES = 20;
|
|
18097
|
+
var fileScopeIdsSchema = external_exports.array(external_exports.union([external_exports.literal(FILE_SCOPE_ROOT), idSchema])).max(MAX_CHAT_FILE_SCOPES).transform((ids) => [...new Set(ids.map((id) => id.toLowerCase()))]);
|
|
17940
18098
|
var chatSummarySchema = external_exports.object({
|
|
17941
18099
|
id: idSchema,
|
|
17942
18100
|
title: external_exports.string(),
|
|
@@ -17945,6 +18103,7 @@ var chatSummarySchema = external_exports.object({
|
|
|
17945
18103
|
folderId: idSchema.nullable(),
|
|
17946
18104
|
sortOrder: external_exports.number().int().optional(),
|
|
17947
18105
|
temporary: external_exports.boolean(),
|
|
18106
|
+
fileScopeIds: external_exports.array(external_exports.string()).default([]),
|
|
17948
18107
|
expiresAt: isoDateSchema.nullable().optional(),
|
|
17949
18108
|
updatedAt: isoDateSchema,
|
|
17950
18109
|
activeResponseId: idSchema.nullable(),
|
|
@@ -17959,7 +18118,9 @@ var createChatSchema = external_exports.object({
|
|
|
17959
18118
|
modelId: external_exports.string().min(1),
|
|
17960
18119
|
title: external_exports.string().trim().min(1).max(200).optional(),
|
|
17961
18120
|
temporary: external_exports.boolean().default(false),
|
|
17962
|
-
autoExpire: external_exports.boolean().default(false)
|
|
18121
|
+
autoExpire: external_exports.boolean().default(false),
|
|
18122
|
+
/** Files items the agent may read and edit in this chat. */
|
|
18123
|
+
fileScopeIds: fileScopeIdsSchema.default([])
|
|
17963
18124
|
});
|
|
17964
18125
|
var updateChatSchema = external_exports.object({
|
|
17965
18126
|
title: external_exports.string().trim().min(1).max(200).optional(),
|
|
@@ -17967,7 +18128,8 @@ var updateChatSchema = external_exports.object({
|
|
|
17967
18128
|
folderId: idSchema.nullable().optional(),
|
|
17968
18129
|
modelId: external_exports.string().min(1).optional(),
|
|
17969
18130
|
sortOrder: external_exports.number().int().optional(),
|
|
17970
|
-
autoExpire: external_exports.boolean().optional()
|
|
18131
|
+
autoExpire: external_exports.boolean().optional(),
|
|
18132
|
+
fileScopeIds: fileScopeIdsSchema.optional()
|
|
17971
18133
|
});
|
|
17972
18134
|
var attachmentIdListSchema = external_exports.array(idSchema).max(MAX_MESSAGE_ATTACHMENTS).refine((ids) => new Set(ids).size === ids.length, { message: "Attachment ids must be unique" });
|
|
17973
18135
|
var timeZoneSchema = external_exports.string().trim().min(1).max(100).refine((value) => {
|
|
@@ -17990,7 +18152,9 @@ var createChatResponseSchema = external_exports.object({
|
|
|
17990
18152
|
maxOutputTokens: external_exports.number().int().positive().optional(),
|
|
17991
18153
|
presetSelections: external_exports.record(external_exports.string(), external_exports.string()).default({}),
|
|
17992
18154
|
attachmentIds: attachmentIdListSchema.default([]),
|
|
17993
|
-
agentMode: external_exports.boolean().default(false)
|
|
18155
|
+
agentMode: external_exports.boolean().default(false),
|
|
18156
|
+
/** Analytics only: whether dictation produced any of the message text. */
|
|
18157
|
+
usedDictation: external_exports.boolean().optional()
|
|
17994
18158
|
}).refine((value) => value.input.length > 0 || value.attachmentIds.length > 0, {
|
|
17995
18159
|
message: "Message must include text or attachments",
|
|
17996
18160
|
path: ["input"]
|
|
@@ -18032,7 +18196,9 @@ var createQueuedMessageSchema = external_exports.object({
|
|
|
18032
18196
|
modelId: external_exports.string().min(1),
|
|
18033
18197
|
presetSelections: external_exports.record(external_exports.string(), external_exports.string()).default({}),
|
|
18034
18198
|
attachmentIds: attachmentIdListSchema.default([]),
|
|
18035
|
-
agentMode: external_exports.boolean().default(false)
|
|
18199
|
+
agentMode: external_exports.boolean().default(false),
|
|
18200
|
+
/** Analytics only: whether dictation produced any of the message text. */
|
|
18201
|
+
usedDictation: external_exports.boolean().optional()
|
|
18036
18202
|
}).refine((value) => value.input.length > 0 || value.attachmentIds.length > 0, {
|
|
18037
18203
|
message: "Message must include text or attachments",
|
|
18038
18204
|
path: ["input"]
|
|
@@ -18067,7 +18233,7 @@ var syncRequestSchema = external_exports.object({
|
|
|
18067
18233
|
activeChatId: idSchema.optional(),
|
|
18068
18234
|
responseCursors: external_exports.record(idSchema, external_exports.number().int().nonnegative())
|
|
18069
18235
|
});
|
|
18070
|
-
var stateInvalidationScopeSchema = external_exports.enum(["chats", "folders", "models", "usage", "settings", "friends", "pool", "billing", "shelved-drafts"]);
|
|
18236
|
+
var stateInvalidationScopeSchema = external_exports.enum(["chats", "folders", "models", "usage", "settings", "friends", "pool", "billing", "shelved-drafts", "files"]);
|
|
18071
18237
|
var syncResultSchema = external_exports.object({
|
|
18072
18238
|
accountRevision: external_exports.number().int().nonnegative(),
|
|
18073
18239
|
invalidate: external_exports.array(stateInvalidationScopeSchema),
|
|
@@ -18075,6 +18241,10 @@ var syncResultSchema = external_exports.object({
|
|
|
18075
18241
|
events: external_exports.array(responseEventSchema)
|
|
18076
18242
|
});
|
|
18077
18243
|
|
|
18244
|
+
// ../../packages/client-core/dist/dictation.js
|
|
18245
|
+
var NOISE_FLOOR_DECIBELS = -60;
|
|
18246
|
+
var NOISE_FLOOR_AMPLITUDE = 10 ** (NOISE_FLOOR_DECIBELS / 20);
|
|
18247
|
+
|
|
18078
18248
|
// ../../node_modules/marked/lib/marked.esm.js
|
|
18079
18249
|
function _getDefaults() {
|
|
18080
18250
|
return {
|
|
@@ -20846,7 +21016,7 @@ async function runModelTest(input) {
|
|
|
20846
21016
|
}
|
|
20847
21017
|
|
|
20848
21018
|
// src/index.ts
|
|
20849
|
-
var CLI_VERSION = true ? "0.
|
|
21019
|
+
var CLI_VERSION = true ? "0.150.0" : "0.1.0";
|
|
20850
21020
|
var CLI_BUNDLED = true;
|
|
20851
21021
|
var commandIo = /* @__PURE__ */ new WeakMap();
|
|
20852
21022
|
var commandClientFactory = /* @__PURE__ */ new WeakMap();
|