@autohq/cli 0.1.493 → 0.1.494

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.
@@ -30866,7 +30866,7 @@ Object.assign(lookup, {
30866
30866
  // package.json
30867
30867
  var package_default = {
30868
30868
  name: "@autohq/cli",
30869
- version: "0.1.493",
30869
+ version: "0.1.494",
30870
30870
  license: "SEE LICENSE IN README.md",
30871
30871
  publishConfig: {
30872
30872
  access: "public"
@@ -31552,6 +31552,7 @@ var ExternalAccountIdSchema = OpaqueIdSchema2.brand();
31552
31552
  var OrganizationIdSchema = OpaqueIdSchema2.brand();
31553
31553
  var ProjectIdSchema = OpaqueIdSchema2.brand();
31554
31554
  var ProviderGrantIdSchema = OpaqueIdSchema2.brand();
31555
+ var UserSubscriptionCredentialIdSchema = OpaqueIdSchema2.brand();
31555
31556
  var ServiceAccountIdSchema = OpaqueIdSchema2.brand();
31556
31557
  var AgentIdSchema = OpaqueIdSchema2.brand();
31557
31558
  var SessionIdSchema2 = OpaqueIdSchema2.brand();
@@ -32213,8 +32214,13 @@ var ChatHistoryMessageSchema = external_exports.object({
32213
32214
  author: JsonValueSchema2.optional(),
32214
32215
  attachments: external_exports.array(ChatAttachmentSchema).optional()
32215
32216
  });
32217
+ var ChatHistoryContextSchema = external_exports.object({
32218
+ channelName: external_exports.string().trim().min(1).optional(),
32219
+ firstMessageUrl: external_exports.string().url().optional()
32220
+ });
32216
32221
  var ChatHistoryToolOutputSchema = external_exports.object({
32217
- messages: external_exports.array(ChatHistoryMessageSchema)
32222
+ messages: external_exports.array(ChatHistoryMessageSchema),
32223
+ context: ChatHistoryContextSchema.optional()
32218
32224
  });
32219
32225
  var ChatAttachmentDownloadAllowedMimeTypes = [
32220
32226
  // Images
@@ -32445,6 +32451,79 @@ var ChatSearchToolOutputSchema = external_exports.object({
32445
32451
  warnings: external_exports.array(external_exports.string().trim().min(1)).default([])
32446
32452
  });
32447
32453
 
32454
+ // ../../packages/schemas/src/chatgpt-codex.ts
32455
+ var CHATGPT_CODEX_BACKEND_BASE_URL = "https://chatgpt.com/backend-api/codex";
32456
+ var CHATGPT_CODEX_RESPONSES_ENDPOINT = `${CHATGPT_CODEX_BACKEND_BASE_URL}/responses`;
32457
+ var CHATGPT_CODEX_SSE_EVENT_SEQUENCE = [
32458
+ "response.created",
32459
+ "output_text.delta",
32460
+ "response.completed"
32461
+ ];
32462
+ var ChatGptCodexSseEventSchema = external_exports.enum(
32463
+ CHATGPT_CODEX_SSE_EVENT_SEQUENCE
32464
+ );
32465
+ var ChatGptCodexStreamingRequestSchema = external_exports.object({ stream: external_exports.literal(true) }).passthrough();
32466
+ var CHATGPT_CODEX_ELIGIBLE_MODELS = [
32467
+ "gpt-5.6-sol",
32468
+ "gpt-5.6-terra",
32469
+ "gpt-5.6-luna",
32470
+ "gpt-5.5"
32471
+ ];
32472
+ var ChatGptCodexEligibleModelSchema = external_exports.enum(
32473
+ CHATGPT_CODEX_ELIGIBLE_MODELS
32474
+ );
32475
+ var ChatGptCodexCompletionUsageSchema = external_exports.object({
32476
+ input_tokens: external_exports.number().int().nonnegative(),
32477
+ input_tokens_details: external_exports.object({
32478
+ cached_tokens: external_exports.number().int().nonnegative(),
32479
+ cache_write_tokens: external_exports.number().int().nonnegative()
32480
+ }).strict(),
32481
+ output_tokens: external_exports.number().int().nonnegative(),
32482
+ output_tokens_details: external_exports.object({
32483
+ reasoning_tokens: external_exports.number().int().nonnegative()
32484
+ }).strict()
32485
+ }).strict();
32486
+ var ChatGptCodexErrorResponseSchema = external_exports.object({ detail: external_exports.string() }).strict();
32487
+ var CHATGPT_CODEX_ERROR_KINDS = [
32488
+ "stream_required",
32489
+ "model_not_supported",
32490
+ "authentication_failed",
32491
+ "quota_exhausted",
32492
+ "refresh_failed"
32493
+ ];
32494
+ var ChatGptCodexErrorKindSchema = external_exports.enum(CHATGPT_CODEX_ERROR_KINDS);
32495
+ var ChatGptCodexQuotaWindowSchema = external_exports.object({
32496
+ usedPercent: external_exports.number().nonnegative().nullable(),
32497
+ windowMinutes: external_exports.number().int().nonnegative().nullable(),
32498
+ resetAfterSeconds: external_exports.number().int().nonnegative().nullable(),
32499
+ resetAt: external_exports.string().trim().min(1).nullable()
32500
+ }).strict();
32501
+ var ChatGptCodexQuotaMetadataSchema = external_exports.object({
32502
+ planType: external_exports.string().trim().min(1).nullable(),
32503
+ primary: ChatGptCodexQuotaWindowSchema.nullable(),
32504
+ secondary: ChatGptCodexQuotaWindowSchema.nullable(),
32505
+ credits: external_exports.record(external_exports.string().startsWith("x-codex-credits-"), external_exports.string()).default({})
32506
+ }).strict();
32507
+ var CHATGPT_CODEX_OAUTH_CLIENT_ID = "app_EMoamEEZ73f0CkXaXp7hrann";
32508
+ var CHATGPT_CODEX_OAUTH_SCOPE = "openid profile email";
32509
+ var ChatGptCodexRefreshRequestSchema = external_exports.object({
32510
+ client_id: external_exports.literal(CHATGPT_CODEX_OAUTH_CLIENT_ID),
32511
+ grant_type: external_exports.literal("refresh_token"),
32512
+ refresh_token: external_exports.string().trim().min(1),
32513
+ scope: external_exports.literal(CHATGPT_CODEX_OAUTH_SCOPE)
32514
+ }).strict();
32515
+ var ChatGptCodexRefreshResponseSchema = external_exports.object({
32516
+ access_token: external_exports.string().trim().min(1),
32517
+ expires_in: external_exports.number().int().positive(),
32518
+ id_token: external_exports.string().trim().min(1),
32519
+ refresh_token: external_exports.string().trim().min(1),
32520
+ earliest_refresh_at: external_exports.union([external_exports.string().trim().min(1), external_exports.number().int().nonnegative()]).optional()
32521
+ }).strict();
32522
+ var ChatGptCodexAccessTokenAuthClaimSchema = external_exports.object({
32523
+ chatgpt_account_id: external_exports.string().trim().min(1),
32524
+ chatgpt_plan_type: external_exports.string().trim().min(1)
32525
+ }).passthrough();
32526
+
32448
32527
  // ../../packages/schemas/src/conversation.ts
32449
32528
  var CONVERSATION_ROLES = [
32450
32529
  "system",
@@ -77293,7 +77372,8 @@ var ResourceReconciliationScopeSchema = external_exports.object({
77293
77372
  var UsageHarnessSchema = external_exports.enum(AGENT_HARNESSES);
77294
77373
  var ModelCredentialFundingSourceSchema = external_exports.enum([
77295
77374
  "platform",
77296
- "tenant_provider_grant"
77375
+ "tenant_provider_grant",
77376
+ "user_subscription"
77297
77377
  ]);
77298
77378
  var NonNegativeTokenCountSchema = external_exports.number().int().nonnegative();
77299
77379
  var NonNegativeUsdSchema2 = external_exports.number().nonnegative();
@@ -77330,6 +77410,9 @@ var UsageEventSchema = external_exports.object({
77330
77410
  // no-FK audit-trail contract.
77331
77411
  fundingSource: ModelCredentialFundingSourceSchema.default("platform"),
77332
77412
  modelCredentialProviderGrantId: ProviderGrantIdSchema.nullable().default(null),
77413
+ // Optional during the cross-chunk rollout: B1 defines the attribution field
77414
+ // before B3 deploys its persistence column and D3 begins populating it.
77415
+ modelCredentialUserSubscriptionId: UserSubscriptionCredentialIdSchema.nullable().optional(),
77333
77416
  occurredAt: external_exports.string().datetime()
77334
77417
  });
77335
77418
  var UsageEventRecordSchema = UsageEventSchema.extend({
@@ -77405,6 +77488,112 @@ var ProjectUsageResponseSchema = external_exports.object({
77405
77488
  daily: external_exports.array(ProjectUsageDayPointSchema)
77406
77489
  });
77407
77490
 
77491
+ // ../../packages/schemas/src/user-subscriptions.ts
77492
+ var USER_SUBSCRIPTION_PROVIDERS = ["openai"];
77493
+ var UserSubscriptionProviderSchema = external_exports.enum(
77494
+ USER_SUBSCRIPTION_PROVIDERS
77495
+ );
77496
+ var USER_SUBSCRIPTION_CREDENTIAL_STATUSES = [
77497
+ "active",
77498
+ "unusable"
77499
+ ];
77500
+ var UserSubscriptionCredentialStatusSchema = external_exports.enum(
77501
+ USER_SUBSCRIPTION_CREDENTIAL_STATUSES
77502
+ );
77503
+ var OpenAiUserSubscriptionCredentialSecretSchema = external_exports.object({
77504
+ accessToken: external_exports.string().trim().min(1),
77505
+ refreshToken: external_exports.string().trim().min(1),
77506
+ idToken: external_exports.string().trim().min(1)
77507
+ }).strict();
77508
+ var UserSubscriptionCredentialSchema = external_exports.object({
77509
+ id: UserSubscriptionCredentialIdSchema,
77510
+ userId: UserIdSchema,
77511
+ provider: external_exports.literal("openai"),
77512
+ accountId: external_exports.string().trim().min(1),
77513
+ planType: external_exports.string().trim().min(1),
77514
+ status: UserSubscriptionCredentialStatusSchema,
77515
+ accessTokenExpiresAt: external_exports.string().datetime(),
77516
+ earliestRefreshAt: external_exports.string().datetime().nullable(),
77517
+ secret: OpenAiUserSubscriptionCredentialSecretSchema
77518
+ }).strict();
77519
+ var USER_SUBSCRIPTION_POLICY_MODES = [
77520
+ "own_sessions",
77521
+ "own_and_automations",
77522
+ "all_sessions"
77523
+ ];
77524
+ var UserSubscriptionPolicyModeSchema = external_exports.enum(
77525
+ USER_SUBSCRIPTION_POLICY_MODES
77526
+ );
77527
+ var UserSubscriptionPolicySchema = external_exports.object({
77528
+ credentialId: UserSubscriptionCredentialIdSchema,
77529
+ organizationId: OrganizationIdSchema,
77530
+ projectId: ProjectIdSchema.nullable(),
77531
+ mode: UserSubscriptionPolicyModeSchema
77532
+ }).strict();
77533
+ var UserSubscriptionFundingCandidateSchema = external_exports.object({
77534
+ credentialId: UserSubscriptionCredentialIdSchema,
77535
+ ownerUserId: UserIdSchema,
77536
+ status: UserSubscriptionCredentialStatusSchema,
77537
+ policyMode: UserSubscriptionPolicyModeSchema,
77538
+ ownerIsScopeMember: external_exports.boolean()
77539
+ }).strict();
77540
+ var UserSubscriptionFundingDecisionInputSchema = external_exports.object({
77541
+ harness: external_exports.enum(AGENT_HARNESSES),
77542
+ provider: ModelApiTokenProviderSchema,
77543
+ model: external_exports.string().trim().min(1),
77544
+ requester: RequesterSchema.nullable(),
77545
+ automationOwnerUserId: UserIdSchema.nullable(),
77546
+ organizationMemberCount: external_exports.number().int().positive(),
77547
+ userSubscription: UserSubscriptionFundingCandidateSchema.nullable(),
77548
+ tenantProviderGrantId: ProviderGrantIdSchema.nullable()
77549
+ }).strict();
77550
+ var USER_SUBSCRIPTION_REJECTION_REASONS = [
77551
+ "subscription_unavailable",
77552
+ "credential_unusable",
77553
+ "owner_not_scope_member",
77554
+ "ineligible_harness",
77555
+ "ineligible_provider",
77556
+ "ineligible_model",
77557
+ "policy_not_applicable"
77558
+ ];
77559
+ var UserSubscriptionRejectionReasonSchema = external_exports.enum(
77560
+ USER_SUBSCRIPTION_REJECTION_REASONS
77561
+ );
77562
+ var USER_SUBSCRIPTION_SELECTION_REASONS = [
77563
+ "requester_owner",
77564
+ "owned_automation",
77565
+ "sole_member_all_sessions"
77566
+ ];
77567
+ var UserSubscriptionSelectionReasonSchema = external_exports.enum(
77568
+ USER_SUBSCRIPTION_SELECTION_REASONS
77569
+ );
77570
+ var UserSubscriptionFundingDecisionSchema = external_exports.discriminatedUnion(
77571
+ "fundingSource",
77572
+ [
77573
+ external_exports.object({
77574
+ fundingSource: external_exports.literal("user_subscription"),
77575
+ userSubscriptionCredentialId: UserSubscriptionCredentialIdSchema,
77576
+ modelCredentialProviderGrantId: external_exports.null(),
77577
+ selectionReason: UserSubscriptionSelectionReasonSchema,
77578
+ subscriptionRejectionReason: external_exports.null()
77579
+ }),
77580
+ external_exports.object({
77581
+ fundingSource: external_exports.literal("tenant_provider_grant"),
77582
+ userSubscriptionCredentialId: external_exports.null(),
77583
+ modelCredentialProviderGrantId: ProviderGrantIdSchema,
77584
+ selectionReason: external_exports.null(),
77585
+ subscriptionRejectionReason: UserSubscriptionRejectionReasonSchema
77586
+ }),
77587
+ external_exports.object({
77588
+ fundingSource: external_exports.literal("platform"),
77589
+ userSubscriptionCredentialId: external_exports.null(),
77590
+ modelCredentialProviderGrantId: external_exports.null(),
77591
+ selectionReason: external_exports.null(),
77592
+ subscriptionRejectionReason: UserSubscriptionRejectionReasonSchema
77593
+ })
77594
+ ]
77595
+ );
77596
+
77408
77597
  // ../../packages/schemas/src/webhook-endpoints.ts
77409
77598
  var WEBHOOK_BIND_KEY_MAX_LENGTH = 200;
77410
77599
  var WebhookBindKeySchema = external_exports.string().trim().min(1).max(WEBHOOK_BIND_KEY_MAX_LENGTH).regex(
package/dist/index.js CHANGED
@@ -15170,7 +15170,7 @@ var init_zod = __esm({
15170
15170
  });
15171
15171
 
15172
15172
  // ../../packages/schemas/src/ids.ts
15173
- var OpaqueIdSchema, ProfileIdSchema, EnvironmentIdSchema, IdentityIdSchema, ConnectionIdSchema, ExternalAccountIdSchema, OrganizationIdSchema, ProjectIdSchema, ProviderGrantIdSchema, ServiceAccountIdSchema, AgentIdSchema, SessionIdSchema, SessionCommandIdSchema, SessionParkIdSchema, RuntimeIdSchema, RuntimeBridgeLeaseIdSchema, EnvironmentSetupTemplateIdSchema, UserIdSchema;
15173
+ var OpaqueIdSchema, ProfileIdSchema, EnvironmentIdSchema, IdentityIdSchema, ConnectionIdSchema, ExternalAccountIdSchema, OrganizationIdSchema, ProjectIdSchema, ProviderGrantIdSchema, UserSubscriptionCredentialIdSchema, ServiceAccountIdSchema, AgentIdSchema, SessionIdSchema, SessionCommandIdSchema, SessionParkIdSchema, RuntimeIdSchema, RuntimeBridgeLeaseIdSchema, EnvironmentSetupTemplateIdSchema, UserIdSchema;
15174
15174
  var init_ids = __esm({
15175
15175
  "../../packages/schemas/src/ids.ts"() {
15176
15176
  "use strict";
@@ -15184,6 +15184,7 @@ var init_ids = __esm({
15184
15184
  OrganizationIdSchema = OpaqueIdSchema.brand();
15185
15185
  ProjectIdSchema = OpaqueIdSchema.brand();
15186
15186
  ProviderGrantIdSchema = OpaqueIdSchema.brand();
15187
+ UserSubscriptionCredentialIdSchema = OpaqueIdSchema.brand();
15187
15188
  ServiceAccountIdSchema = OpaqueIdSchema.brand();
15188
15189
  AgentIdSchema = OpaqueIdSchema.brand();
15189
15190
  SessionIdSchema = OpaqueIdSchema.brand();
@@ -15577,7 +15578,7 @@ var init_auth = __esm({
15577
15578
  });
15578
15579
 
15579
15580
  // ../../packages/schemas/src/chat.ts
15580
- var ChatMessageKindSchema, ChatMessageRefSchema, ChatToolBindingSchema, ChatMessageEventPayloadSchema, ChatMessageEditedEventPayloadSchema, ChatReactionEventPayloadSchema, ChatMessageContentSchema, ChatThreadSelectorSchema, SlackChatDestinationSchema, LinearChatDestinationSchema, TelegramChatDestinationSchema, DiscordChatDestinationSchema, ChatDestinationSchema, SlackChatRecipientSchema, LinearChatRecipientSchema, TelegramChatRecipientSchema, DiscordChatRecipientSchema, ChatRecipientSchema, SlackChatAddressSchema, LinearChatAddressSchema, TelegramChatAddressSchema, DiscordChatAddressSchema, ChatAddressSchema, ChatToolDefaultsSchema, ChatSendToolInputSchema, ChatSendToolOutputSchema, ChatHistoryToolInputSchema, ChatAttachmentSchema, ChatHistoryMessageSchema, ChatHistoryToolOutputSchema, ChatAttachmentDownloadAllowedMimeTypes, ChatAttachmentDownloadAllowedMimeTypeSchema, ChatAttachmentDownloadMaxSizeBytesByType, ChatAttachmentDownloadMaxSizeBytes, ChatAttachmentDownloadToolInputSchema, ChatAttachmentDownloadToolOutputSchema, ChatIssueParticipantSchema, ChatIssueNamedRefSchema, ChatIssueRefSchema, ChatIssueSchema, ChatIssueGetToolInputSchema, ChatIssueGetToolOutputSchema, ChatIssueUpdateToolInputSchema, ChatIssueUpdateToolOutputSchema, ChatReplyToolInputSchema, ChatReplyToolOutputSchema, ChatReactionToolInputSchema, ChatReactionToolOutputSchema, ChatSearchResultTypeSchema, ChatSearchToolInputSchema, ChatSearchWorkspaceSchema, SlackChatSearchResultSchema, DiscordChatSearchResultSchema, ChatSearchResultSchema, ChatSearchToolOutputSchema;
15581
+ var ChatMessageKindSchema, ChatMessageRefSchema, ChatToolBindingSchema, ChatMessageEventPayloadSchema, ChatMessageEditedEventPayloadSchema, ChatReactionEventPayloadSchema, ChatMessageContentSchema, ChatThreadSelectorSchema, SlackChatDestinationSchema, LinearChatDestinationSchema, TelegramChatDestinationSchema, DiscordChatDestinationSchema, ChatDestinationSchema, SlackChatRecipientSchema, LinearChatRecipientSchema, TelegramChatRecipientSchema, DiscordChatRecipientSchema, ChatRecipientSchema, SlackChatAddressSchema, LinearChatAddressSchema, TelegramChatAddressSchema, DiscordChatAddressSchema, ChatAddressSchema, ChatToolDefaultsSchema, ChatSendToolInputSchema, ChatSendToolOutputSchema, ChatHistoryToolInputSchema, ChatAttachmentSchema, ChatHistoryMessageSchema, ChatHistoryContextSchema, ChatHistoryToolOutputSchema, ChatAttachmentDownloadAllowedMimeTypes, ChatAttachmentDownloadAllowedMimeTypeSchema, ChatAttachmentDownloadMaxSizeBytesByType, ChatAttachmentDownloadMaxSizeBytes, ChatAttachmentDownloadToolInputSchema, ChatAttachmentDownloadToolOutputSchema, ChatIssueParticipantSchema, ChatIssueNamedRefSchema, ChatIssueRefSchema, ChatIssueSchema, ChatIssueGetToolInputSchema, ChatIssueGetToolOutputSchema, ChatIssueUpdateToolInputSchema, ChatIssueUpdateToolOutputSchema, ChatReplyToolInputSchema, ChatReplyToolOutputSchema, ChatReactionToolInputSchema, ChatReactionToolOutputSchema, ChatSearchResultTypeSchema, ChatSearchToolInputSchema, ChatSearchWorkspaceSchema, SlackChatSearchResultSchema, DiscordChatSearchResultSchema, ChatSearchResultSchema, ChatSearchToolOutputSchema;
15581
15582
  var init_chat = __esm({
15582
15583
  "../../packages/schemas/src/chat.ts"() {
15583
15584
  "use strict";
@@ -15886,8 +15887,13 @@ var init_chat = __esm({
15886
15887
  author: JsonValueSchema.optional(),
15887
15888
  attachments: external_exports.array(ChatAttachmentSchema).optional()
15888
15889
  });
15890
+ ChatHistoryContextSchema = external_exports.object({
15891
+ channelName: external_exports.string().trim().min(1).optional(),
15892
+ firstMessageUrl: external_exports.string().url().optional()
15893
+ });
15889
15894
  ChatHistoryToolOutputSchema = external_exports.object({
15890
- messages: external_exports.array(ChatHistoryMessageSchema)
15895
+ messages: external_exports.array(ChatHistoryMessageSchema),
15896
+ context: ChatHistoryContextSchema.optional()
15891
15897
  });
15892
15898
  ChatAttachmentDownloadAllowedMimeTypes = [
15893
15899
  // Images
@@ -16120,6 +16126,86 @@ var init_chat = __esm({
16120
16126
  }
16121
16127
  });
16122
16128
 
16129
+ // ../../packages/schemas/src/chatgpt-codex.ts
16130
+ var CHATGPT_CODEX_BACKEND_BASE_URL, CHATGPT_CODEX_RESPONSES_ENDPOINT, CHATGPT_CODEX_SSE_EVENT_SEQUENCE, ChatGptCodexSseEventSchema, ChatGptCodexStreamingRequestSchema, CHATGPT_CODEX_ELIGIBLE_MODELS, ChatGptCodexEligibleModelSchema, ChatGptCodexCompletionUsageSchema, ChatGptCodexErrorResponseSchema, CHATGPT_CODEX_ERROR_KINDS, ChatGptCodexErrorKindSchema, ChatGptCodexQuotaWindowSchema, ChatGptCodexQuotaMetadataSchema, CHATGPT_CODEX_OAUTH_CLIENT_ID, CHATGPT_CODEX_OAUTH_SCOPE, ChatGptCodexRefreshRequestSchema, ChatGptCodexRefreshResponseSchema, ChatGptCodexAccessTokenAuthClaimSchema;
16131
+ var init_chatgpt_codex = __esm({
16132
+ "../../packages/schemas/src/chatgpt-codex.ts"() {
16133
+ "use strict";
16134
+ init_zod();
16135
+ CHATGPT_CODEX_BACKEND_BASE_URL = "https://chatgpt.com/backend-api/codex";
16136
+ CHATGPT_CODEX_RESPONSES_ENDPOINT = `${CHATGPT_CODEX_BACKEND_BASE_URL}/responses`;
16137
+ CHATGPT_CODEX_SSE_EVENT_SEQUENCE = [
16138
+ "response.created",
16139
+ "output_text.delta",
16140
+ "response.completed"
16141
+ ];
16142
+ ChatGptCodexSseEventSchema = external_exports.enum(
16143
+ CHATGPT_CODEX_SSE_EVENT_SEQUENCE
16144
+ );
16145
+ ChatGptCodexStreamingRequestSchema = external_exports.object({ stream: external_exports.literal(true) }).passthrough();
16146
+ CHATGPT_CODEX_ELIGIBLE_MODELS = [
16147
+ "gpt-5.6-sol",
16148
+ "gpt-5.6-terra",
16149
+ "gpt-5.6-luna",
16150
+ "gpt-5.5"
16151
+ ];
16152
+ ChatGptCodexEligibleModelSchema = external_exports.enum(
16153
+ CHATGPT_CODEX_ELIGIBLE_MODELS
16154
+ );
16155
+ ChatGptCodexCompletionUsageSchema = external_exports.object({
16156
+ input_tokens: external_exports.number().int().nonnegative(),
16157
+ input_tokens_details: external_exports.object({
16158
+ cached_tokens: external_exports.number().int().nonnegative(),
16159
+ cache_write_tokens: external_exports.number().int().nonnegative()
16160
+ }).strict(),
16161
+ output_tokens: external_exports.number().int().nonnegative(),
16162
+ output_tokens_details: external_exports.object({
16163
+ reasoning_tokens: external_exports.number().int().nonnegative()
16164
+ }).strict()
16165
+ }).strict();
16166
+ ChatGptCodexErrorResponseSchema = external_exports.object({ detail: external_exports.string() }).strict();
16167
+ CHATGPT_CODEX_ERROR_KINDS = [
16168
+ "stream_required",
16169
+ "model_not_supported",
16170
+ "authentication_failed",
16171
+ "quota_exhausted",
16172
+ "refresh_failed"
16173
+ ];
16174
+ ChatGptCodexErrorKindSchema = external_exports.enum(CHATGPT_CODEX_ERROR_KINDS);
16175
+ ChatGptCodexQuotaWindowSchema = external_exports.object({
16176
+ usedPercent: external_exports.number().nonnegative().nullable(),
16177
+ windowMinutes: external_exports.number().int().nonnegative().nullable(),
16178
+ resetAfterSeconds: external_exports.number().int().nonnegative().nullable(),
16179
+ resetAt: external_exports.string().trim().min(1).nullable()
16180
+ }).strict();
16181
+ ChatGptCodexQuotaMetadataSchema = external_exports.object({
16182
+ planType: external_exports.string().trim().min(1).nullable(),
16183
+ primary: ChatGptCodexQuotaWindowSchema.nullable(),
16184
+ secondary: ChatGptCodexQuotaWindowSchema.nullable(),
16185
+ credits: external_exports.record(external_exports.string().startsWith("x-codex-credits-"), external_exports.string()).default({})
16186
+ }).strict();
16187
+ CHATGPT_CODEX_OAUTH_CLIENT_ID = "app_EMoamEEZ73f0CkXaXp7hrann";
16188
+ CHATGPT_CODEX_OAUTH_SCOPE = "openid profile email";
16189
+ ChatGptCodexRefreshRequestSchema = external_exports.object({
16190
+ client_id: external_exports.literal(CHATGPT_CODEX_OAUTH_CLIENT_ID),
16191
+ grant_type: external_exports.literal("refresh_token"),
16192
+ refresh_token: external_exports.string().trim().min(1),
16193
+ scope: external_exports.literal(CHATGPT_CODEX_OAUTH_SCOPE)
16194
+ }).strict();
16195
+ ChatGptCodexRefreshResponseSchema = external_exports.object({
16196
+ access_token: external_exports.string().trim().min(1),
16197
+ expires_in: external_exports.number().int().positive(),
16198
+ id_token: external_exports.string().trim().min(1),
16199
+ refresh_token: external_exports.string().trim().min(1),
16200
+ earliest_refresh_at: external_exports.union([external_exports.string().trim().min(1), external_exports.number().int().nonnegative()]).optional()
16201
+ }).strict();
16202
+ ChatGptCodexAccessTokenAuthClaimSchema = external_exports.object({
16203
+ chatgpt_account_id: external_exports.string().trim().min(1),
16204
+ chatgpt_plan_type: external_exports.string().trim().min(1)
16205
+ }).passthrough();
16206
+ }
16207
+ });
16208
+
16123
16209
  // ../../packages/schemas/src/conversation.ts
16124
16210
  var CONVERSATION_ROLES, CONVERSATION_ENTRY_KINDS, CONVERSATION_ENTRY_STATUSES, UNKNOWN_MESSAGE_ID, ConversationRoleSchema, ConversationEntryKindSchema, ConversationEntryStatusSchema, ConversationTextContentPartSchema, ConversationReasoningContentPartSchema, ConversationToolCallContentPartSchema, ConversationToolErrorSchema, ConversationToolResultContentPartSchema, ConversationQuestionOptionSchema, ConversationQuestionSchema, ConversationQuestionContentPartSchema, ConversationUiMessageContentPartSchema, ConversationContentPartSchema, ConversationEntryContentSchema, ConversationEntryEventSchema, ConversationTextDeltaSchema, ConversationReasoningDeltaSchema, ConversationDeltaSchema, ConversationDeltaEventSchema, ConversationUiMessageChunkEventSchema, ConversationRealtimeEventSchema;
16125
16211
  var init_conversation = __esm({
@@ -61863,7 +61949,8 @@ var init_usage = __esm({
61863
61949
  UsageHarnessSchema = external_exports.enum(AGENT_HARNESSES);
61864
61950
  ModelCredentialFundingSourceSchema = external_exports.enum([
61865
61951
  "platform",
61866
- "tenant_provider_grant"
61952
+ "tenant_provider_grant",
61953
+ "user_subscription"
61867
61954
  ]);
61868
61955
  NonNegativeTokenCountSchema = external_exports.number().int().nonnegative();
61869
61956
  NonNegativeUsdSchema2 = external_exports.number().nonnegative();
@@ -61900,6 +61987,9 @@ var init_usage = __esm({
61900
61987
  // no-FK audit-trail contract.
61901
61988
  fundingSource: ModelCredentialFundingSourceSchema.default("platform"),
61902
61989
  modelCredentialProviderGrantId: ProviderGrantIdSchema.nullable().default(null),
61990
+ // Optional during the cross-chunk rollout: B1 defines the attribution field
61991
+ // before B3 deploys its persistence column and D3 begins populating it.
61992
+ modelCredentialUserSubscriptionId: UserSubscriptionCredentialIdSchema.nullable().optional(),
61903
61993
  occurredAt: external_exports.string().datetime()
61904
61994
  });
61905
61995
  UsageEventRecordSchema = UsageEventSchema.extend({
@@ -61977,6 +62067,124 @@ var init_usage = __esm({
61977
62067
  }
61978
62068
  });
61979
62069
 
62070
+ // ../../packages/schemas/src/user-subscriptions.ts
62071
+ var USER_SUBSCRIPTION_PROVIDERS, UserSubscriptionProviderSchema, USER_SUBSCRIPTION_CREDENTIAL_STATUSES, UserSubscriptionCredentialStatusSchema, OpenAiUserSubscriptionCredentialSecretSchema, UserSubscriptionCredentialSchema, USER_SUBSCRIPTION_POLICY_MODES, UserSubscriptionPolicyModeSchema, UserSubscriptionPolicySchema, UserSubscriptionFundingCandidateSchema, UserSubscriptionFundingDecisionInputSchema, USER_SUBSCRIPTION_REJECTION_REASONS, UserSubscriptionRejectionReasonSchema, USER_SUBSCRIPTION_SELECTION_REASONS, UserSubscriptionSelectionReasonSchema, UserSubscriptionFundingDecisionSchema;
62072
+ var init_user_subscriptions = __esm({
62073
+ "../../packages/schemas/src/user-subscriptions.ts"() {
62074
+ "use strict";
62075
+ init_zod();
62076
+ init_agents();
62077
+ init_chatgpt_codex();
62078
+ init_ids();
62079
+ init_model_selection();
62080
+ init_requester();
62081
+ USER_SUBSCRIPTION_PROVIDERS = ["openai"];
62082
+ UserSubscriptionProviderSchema = external_exports.enum(
62083
+ USER_SUBSCRIPTION_PROVIDERS
62084
+ );
62085
+ USER_SUBSCRIPTION_CREDENTIAL_STATUSES = [
62086
+ "active",
62087
+ "unusable"
62088
+ ];
62089
+ UserSubscriptionCredentialStatusSchema = external_exports.enum(
62090
+ USER_SUBSCRIPTION_CREDENTIAL_STATUSES
62091
+ );
62092
+ OpenAiUserSubscriptionCredentialSecretSchema = external_exports.object({
62093
+ accessToken: external_exports.string().trim().min(1),
62094
+ refreshToken: external_exports.string().trim().min(1),
62095
+ idToken: external_exports.string().trim().min(1)
62096
+ }).strict();
62097
+ UserSubscriptionCredentialSchema = external_exports.object({
62098
+ id: UserSubscriptionCredentialIdSchema,
62099
+ userId: UserIdSchema,
62100
+ provider: external_exports.literal("openai"),
62101
+ accountId: external_exports.string().trim().min(1),
62102
+ planType: external_exports.string().trim().min(1),
62103
+ status: UserSubscriptionCredentialStatusSchema,
62104
+ accessTokenExpiresAt: external_exports.string().datetime(),
62105
+ earliestRefreshAt: external_exports.string().datetime().nullable(),
62106
+ secret: OpenAiUserSubscriptionCredentialSecretSchema
62107
+ }).strict();
62108
+ USER_SUBSCRIPTION_POLICY_MODES = [
62109
+ "own_sessions",
62110
+ "own_and_automations",
62111
+ "all_sessions"
62112
+ ];
62113
+ UserSubscriptionPolicyModeSchema = external_exports.enum(
62114
+ USER_SUBSCRIPTION_POLICY_MODES
62115
+ );
62116
+ UserSubscriptionPolicySchema = external_exports.object({
62117
+ credentialId: UserSubscriptionCredentialIdSchema,
62118
+ organizationId: OrganizationIdSchema,
62119
+ projectId: ProjectIdSchema.nullable(),
62120
+ mode: UserSubscriptionPolicyModeSchema
62121
+ }).strict();
62122
+ UserSubscriptionFundingCandidateSchema = external_exports.object({
62123
+ credentialId: UserSubscriptionCredentialIdSchema,
62124
+ ownerUserId: UserIdSchema,
62125
+ status: UserSubscriptionCredentialStatusSchema,
62126
+ policyMode: UserSubscriptionPolicyModeSchema,
62127
+ ownerIsScopeMember: external_exports.boolean()
62128
+ }).strict();
62129
+ UserSubscriptionFundingDecisionInputSchema = external_exports.object({
62130
+ harness: external_exports.enum(AGENT_HARNESSES),
62131
+ provider: ModelApiTokenProviderSchema,
62132
+ model: external_exports.string().trim().min(1),
62133
+ requester: RequesterSchema.nullable(),
62134
+ automationOwnerUserId: UserIdSchema.nullable(),
62135
+ organizationMemberCount: external_exports.number().int().positive(),
62136
+ userSubscription: UserSubscriptionFundingCandidateSchema.nullable(),
62137
+ tenantProviderGrantId: ProviderGrantIdSchema.nullable()
62138
+ }).strict();
62139
+ USER_SUBSCRIPTION_REJECTION_REASONS = [
62140
+ "subscription_unavailable",
62141
+ "credential_unusable",
62142
+ "owner_not_scope_member",
62143
+ "ineligible_harness",
62144
+ "ineligible_provider",
62145
+ "ineligible_model",
62146
+ "policy_not_applicable"
62147
+ ];
62148
+ UserSubscriptionRejectionReasonSchema = external_exports.enum(
62149
+ USER_SUBSCRIPTION_REJECTION_REASONS
62150
+ );
62151
+ USER_SUBSCRIPTION_SELECTION_REASONS = [
62152
+ "requester_owner",
62153
+ "owned_automation",
62154
+ "sole_member_all_sessions"
62155
+ ];
62156
+ UserSubscriptionSelectionReasonSchema = external_exports.enum(
62157
+ USER_SUBSCRIPTION_SELECTION_REASONS
62158
+ );
62159
+ UserSubscriptionFundingDecisionSchema = external_exports.discriminatedUnion(
62160
+ "fundingSource",
62161
+ [
62162
+ external_exports.object({
62163
+ fundingSource: external_exports.literal("user_subscription"),
62164
+ userSubscriptionCredentialId: UserSubscriptionCredentialIdSchema,
62165
+ modelCredentialProviderGrantId: external_exports.null(),
62166
+ selectionReason: UserSubscriptionSelectionReasonSchema,
62167
+ subscriptionRejectionReason: external_exports.null()
62168
+ }),
62169
+ external_exports.object({
62170
+ fundingSource: external_exports.literal("tenant_provider_grant"),
62171
+ userSubscriptionCredentialId: external_exports.null(),
62172
+ modelCredentialProviderGrantId: ProviderGrantIdSchema,
62173
+ selectionReason: external_exports.null(),
62174
+ subscriptionRejectionReason: UserSubscriptionRejectionReasonSchema
62175
+ }),
62176
+ external_exports.object({
62177
+ fundingSource: external_exports.literal("platform"),
62178
+ userSubscriptionCredentialId: external_exports.null(),
62179
+ modelCredentialProviderGrantId: external_exports.null(),
62180
+ selectionReason: external_exports.null(),
62181
+ subscriptionRejectionReason: UserSubscriptionRejectionReasonSchema
62182
+ })
62183
+ ]
62184
+ );
62185
+ }
62186
+ });
62187
+
61980
62188
  // ../../packages/schemas/src/webhook-endpoints.ts
61981
62189
  var WEBHOOK_BIND_KEY_MAX_LENGTH, WebhookBindKeySchema;
61982
62190
  var init_webhook_endpoints = __esm({
@@ -61998,6 +62206,7 @@ var init_src = __esm({
61998
62206
  init_account();
61999
62207
  init_auth();
62000
62208
  init_chat();
62209
+ init_chatgpt_codex();
62001
62210
  init_claude_code();
62002
62211
  init_codex();
62003
62212
  init_conversation();
@@ -62055,6 +62264,7 @@ var init_src = __esm({
62055
62264
  init_trigger_router();
62056
62265
  init_url_slugs();
62057
62266
  init_usage();
62267
+ init_user_subscriptions();
62058
62268
  init_validation_diagnostics();
62059
62269
  init_webhook_endpoints();
62060
62270
  init_work_provenance();
@@ -64815,7 +65025,7 @@ var init_package = __esm({
64815
65025
  "package.json"() {
64816
65026
  package_default = {
64817
65027
  name: "@autohq/cli",
64818
- version: "0.1.493",
65028
+ version: "0.1.494",
64819
65029
  license: "SEE LICENSE IN README.md",
64820
65030
  publishConfig: {
64821
65031
  access: "public"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@autohq/cli",
3
- "version": "0.1.493",
3
+ "version": "0.1.494",
4
4
  "license": "SEE LICENSE IN README.md",
5
5
  "publishConfig": {
6
6
  "access": "public"