@autohq/cli 0.1.303 → 0.1.304

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.
@@ -23399,7 +23399,7 @@ Object.assign(lookup, {
23399
23399
  // package.json
23400
23400
  var package_default = {
23401
23401
  name: "@autohq/cli",
23402
- version: "0.1.303",
23402
+ version: "0.1.304",
23403
23403
  license: "SEE LICENSE IN README.md",
23404
23404
  publishConfig: {
23405
23405
  access: "public"
@@ -26769,877 +26769,877 @@ function isSetupCacheTtl(value2) {
26769
26769
  return /^[1-9][0-9]*(s|m|h|d)$/.test(value2);
26770
26770
  }
26771
26771
 
26772
- // ../../packages/schemas/src/live-events.ts
26773
- var LiveEntityEventEnvelopeSchema = external_exports.object({
26774
- // Replay cursor for this frame; the SSE `id:` mirrors it so reconnects resume
26775
- // from `sequence > cursor`.
26776
- sequence: external_exports.number().int().nonnegative(),
26777
- eventKey: external_exports.string().min(1),
26778
- // The event's `subjectKind`, surfaced as `entity` for client-side dispatch.
26779
- entity: external_exports.string().min(1),
26780
- subjectId: external_exports.string().min(1),
26781
- payload: JsonValueSchema2,
26782
- occurredAt: external_exports.string().min(1)
26783
- });
26784
-
26785
- // ../../packages/schemas/src/mcp.ts
26786
- var McpToolCallMessageSchema = external_exports.object({
26787
- method: external_exports.literal("tools/call"),
26788
- params: external_exports.object({
26789
- name: external_exports.string().trim().min(1)
26772
+ // ../../packages/schemas/src/singleton-refresh.ts
26773
+ var SINGLETON_RESPAWN_REASONS = ["refresh", "failure"];
26774
+ var SingletonRespawnReasonSchema = external_exports.enum(SINGLETON_RESPAWN_REASONS);
26775
+ var SingletonRespawnSchema = external_exports.object({
26776
+ reason: SingletonRespawnReasonSchema.default("refresh")
26777
+ }).strict();
26778
+ var SingletonRefreshEventPayloadSchema = external_exports.object({
26779
+ trigger: external_exports.literal("agent.refresh"),
26780
+ refresh: external_exports.object({
26781
+ reason: SingletonRespawnReasonSchema,
26782
+ agentResourceId: external_exports.string().trim().min(1),
26783
+ previousSessionId: external_exports.string().trim().min(1)
26790
26784
  })
26791
26785
  });
26792
- var McpJsonRpcMessageSchema = external_exports.object({
26793
- method: external_exports.string().optional()
26794
- }).passthrough();
26795
- var McpPostBodySchema = external_exports.union([McpJsonRpcMessageSchema, external_exports.array(McpJsonRpcMessageSchema)]).transform((body) => Array.isArray(body) ? body : [body]);
26796
-
26797
- // ../../packages/schemas/src/pricing.ts
26798
- var RATE_CARD_2026_06_23 = {
26799
- version: "2026-06-23",
26800
- effectiveAt: "2026-06-23T00:00:00.000Z",
26801
- models: {
26802
- "claude-opus-4-8": opusTier(),
26803
- "claude-opus-4-7": opusTier(),
26804
- "claude-opus-4-6": opusTier(),
26805
- "claude-sonnet-4-6": tier(3, 15),
26806
- "claude-haiku-4-5": tier(1, 5),
26807
- "claude-haiku-4-5-20251001": tier(1, 5),
26808
- "claude-fable-5": tier(10, 50),
26809
- // OpenAI gpt-5.3-codex, standard tier: input $1.75/Mtok, cached input
26810
- // $0.175/Mtok, output $14.00/Mtok. Source (verified 2026-06-23):
26811
- // https://developers.openai.com/api/docs/models/gpt-5.3-codex and
26812
- // https://developers.openai.com/api/docs/pricing (priority tier is 2x; we
26813
- // bill standard).
26814
- "gpt-5.3-codex": openAiTier({
26815
- input: 1.75,
26816
- cachedInput: 0.175,
26817
- output: 14
26818
- })
26819
- }
26820
- };
26821
- var PRICING_RATE_CARDS = {
26822
- [RATE_CARD_2026_06_23.version]: RATE_CARD_2026_06_23
26823
- };
26824
- var CURRENT_PRICING_VERSION = RATE_CARD_2026_06_23.version;
26825
- function tier(inputUsdPerMtok, outputUsdPerMtok) {
26826
- return {
26827
- inputUsdPerMtok,
26828
- outputUsdPerMtok,
26829
- cacheWrite5mUsdPerMtok: inputUsdPerMtok * 1.25,
26830
- cacheReadUsdPerMtok: inputUsdPerMtok * 0.1
26831
- };
26832
- }
26833
- function opusTier() {
26834
- return tier(5, 25);
26835
- }
26836
- function openAiTier(rates) {
26837
- return {
26838
- inputUsdPerMtok: rates.input,
26839
- outputUsdPerMtok: rates.output,
26840
- cacheWrite5mUsdPerMtok: rates.input,
26841
- cacheReadUsdPerMtok: rates.cachedInput
26842
- };
26843
- }
26844
-
26845
- // ../../packages/schemas/src/project-service-accounts.ts
26846
- var ProjectServiceAccountSchema = external_exports.object({
26847
- id: ServiceAccountIdSchema,
26848
- organizationId: OrganizationIdSchema,
26849
- projectId: ProjectIdSchema,
26850
- name: ResourceNameSchema,
26851
- scopes: external_exports.array(AuthScopeSchema),
26852
- createdAt: external_exports.string().datetime()
26853
- });
26854
- var ProjectServiceAccountCreateRequestSchema = external_exports.object({
26855
- name: ResourceNameSchema,
26856
- scopes: external_exports.array(AuthScopeSchema).min(1)
26857
- });
26858
- var ProjectServiceAccountUpdateRequestSchema = external_exports.object({
26859
- scopes: external_exports.array(AuthScopeSchema).min(1)
26860
- });
26861
- var ProjectServiceAccountTokenResponseSchema = external_exports.object({
26862
- serviceAccount: ProjectServiceAccountSchema,
26863
- token: external_exports.string().min(1)
26864
- });
26865
- var ProjectServiceAccountUpdateResponseSchema = external_exports.object({
26866
- serviceAccount: ProjectServiceAccountSchema
26867
- });
26868
- var ProjectServiceAccountRemoveResponseSchema = external_exports.object({
26869
- serviceAccount: ProjectServiceAccountSchema,
26870
- removed: external_exports.literal(true)
26871
- });
26872
- var ProjectServiceAccountListResponseSchema = external_exports.object({
26873
- serviceAccounts: external_exports.array(ProjectServiceAccountSchema)
26874
- });
26875
26786
 
26876
- // ../../packages/schemas/src/project-resources.ts
26877
- var EnvironmentApplyDocumentSchema = resourceApplyDocumentSchema(
26878
- RESOURCE_KIND_ENVIRONMENT,
26879
- EnvironmentApplyRequestSchema.shape.spec
26787
+ // ../../packages/schemas/src/session-commands.ts
26788
+ var SESSION_COMMAND_KINDS = [
26789
+ "message",
26790
+ "answer",
26791
+ "pause",
26792
+ "resume",
26793
+ "interrupt",
26794
+ "cancel",
26795
+ "stop"
26796
+ ];
26797
+ var SESSION_DISPATCH_COMMAND_KINDS = [
26798
+ "start",
26799
+ "startWithMessage",
26800
+ "message",
26801
+ "answer",
26802
+ "stop"
26803
+ ];
26804
+ var SESSION_PERSISTED_COMMAND_KINDS = [
26805
+ "message",
26806
+ "pause",
26807
+ "resume",
26808
+ "interrupt",
26809
+ "cancel",
26810
+ "stop",
26811
+ "start",
26812
+ "startWithMessage",
26813
+ "answer"
26814
+ ];
26815
+ var SESSION_LIFECYCLE_COMMAND_KINDS = [
26816
+ "pause",
26817
+ "resume",
26818
+ "interrupt",
26819
+ "cancel",
26820
+ "stop"
26821
+ ];
26822
+ var SESSION_COMMAND_STATUSES = [
26823
+ "pending",
26824
+ "dispatching",
26825
+ "accepted",
26826
+ "failed"
26827
+ ];
26828
+ var SESSION_DISPATCH_COMMAND_STATUSES = [
26829
+ "pending",
26830
+ "dispatching",
26831
+ "accepted",
26832
+ "failed"
26833
+ ];
26834
+ var SessionCommandKindSchema2 = external_exports.enum(SESSION_COMMAND_KINDS);
26835
+ var SessionPersistedCommandKindSchema = external_exports.enum(
26836
+ SESSION_PERSISTED_COMMAND_KINDS
26880
26837
  );
26881
- var IdentityApplyDocumentSchema = resourceApplyDocumentSchema(
26882
- RESOURCE_KIND_IDENTITY,
26883
- IdentityApplyRequestSchema.shape.spec
26838
+ var SessionDispatchCommandKindSchema = external_exports.enum(
26839
+ SESSION_DISPATCH_COMMAND_KINDS
26884
26840
  );
26885
- var AgentApplyDocumentSchema = resourceApplyDocumentSchema(
26886
- RESOURCE_KIND_AGENT,
26887
- AgentApplyRequestSchema.shape.spec
26841
+ var RunLifecycleCommandKindSchema = external_exports.enum(
26842
+ SESSION_LIFECYCLE_COMMAND_KINDS
26888
26843
  );
26889
- var ProjectApplyResourceSchema = external_exports.discriminatedUnion("kind", [
26890
- EnvironmentApplyDocumentSchema,
26891
- IdentityApplyDocumentSchema,
26892
- AgentApplyDocumentSchema
26844
+ var SessionCommandStatusSchema = external_exports.enum(SESSION_COMMAND_STATUSES);
26845
+ var SessionDispatchCommandStatusSchema = external_exports.enum(
26846
+ SESSION_DISPATCH_COMMAND_STATUSES
26847
+ );
26848
+ var SessionCommandSenderSchema = external_exports.discriminatedUnion("type", [
26849
+ external_exports.object({
26850
+ type: external_exports.literal("operator"),
26851
+ id: external_exports.string().trim().min(1).nullable().default(null),
26852
+ actor: AuthActorSchema.nullable().optional()
26853
+ }),
26854
+ external_exports.object({
26855
+ type: external_exports.literal("agent"),
26856
+ sessionId: SessionIdSchema2
26857
+ }),
26858
+ external_exports.object({
26859
+ type: external_exports.literal("system")
26860
+ })
26893
26861
  ]);
26894
- var PROJECT_RESOURCE_APPLY_ORDER = [
26895
- RESOURCE_KIND_CONNECTION,
26896
- RESOURCE_KIND_IDENTITY,
26897
- RESOURCE_KIND_ENVIRONMENT,
26898
- RESOURCE_KIND_AGENT
26899
- ];
26900
- var PROJECT_RESOURCE_KINDS = PROJECT_RESOURCE_APPLY_ORDER;
26901
- var PROJECT_APPLY_RESOURCE_KINDS = [
26902
- RESOURCE_KIND_IDENTITY,
26903
- RESOURCE_KIND_ENVIRONMENT,
26904
- RESOURCE_KIND_AGENT
26862
+ var MESSAGE_DELIVERY_MODES = ["interrupt", "deferred"];
26863
+ var MessageDeliveryModeSchema = external_exports.enum(MESSAGE_DELIVERY_MODES);
26864
+ var TRIGGER_INJECTION_MODALITIES = [
26865
+ "chat",
26866
+ "githubCheck",
26867
+ "githubCheckAction",
26868
+ "githubPullRequest",
26869
+ "other"
26905
26870
  ];
26906
- var PROJECT_APPLY_BUNDLE_VERSION = 1;
26907
- var MAX_PROJECT_APPLY_BUNDLE_BYTES = 64 * 1024 * 1024;
26908
- var PROJECT_APPLY_BUNDLE_CONTENT_TYPE = "application/vnd.auto.project-apply-bundle+json";
26909
- function projectApplyBundleStorageKey(sha256) {
26910
- return `project-apply-bundles/${sha256}.json`;
26911
- }
26912
- var ProjectDeleteResourceBaseSchema = external_exports.object({
26913
- name: external_exports.string().trim().min(1)
26914
- });
26915
- var ProjectDeleteResourceSchema = ProjectDeleteResourceBaseSchema.extend({
26916
- kind: external_exports.enum(PROJECT_APPLY_RESOURCE_KINDS)
26917
- });
26918
- var AVATAR_ASSET_CONTENT_TYPES = ["image/png", "image/jpeg"];
26919
- var MAX_AVATAR_ASSET_BASE64_LENGTH = Math.ceil(MAX_AVATAR_ASSET_BYTES / 3) * 4 + 4;
26920
- var ProjectApplyAssetSchema = external_exports.object({
26921
- sha256: external_exports.string().regex(/^[a-f0-9]{64}$/),
26922
- contentType: external_exports.enum(AVATAR_ASSET_CONTENT_TYPES),
26923
- dataBase64: external_exports.string().min(1).max(MAX_AVATAR_ASSET_BASE64_LENGTH).regex(/^[A-Za-z0-9+/]+={0,2}$/)
26924
- });
26925
- var ProjectApplyAssetsSchema = external_exports.record(
26926
- external_exports.string().refine(isAvatarAssetPathShapeValid, {
26927
- message: "asset keys must be relative paths under .auto/assets"
26928
- }),
26929
- ProjectApplyAssetSchema
26871
+ var TriggerInjectionModalitySchema = external_exports.enum(
26872
+ TRIGGER_INJECTION_MODALITIES
26930
26873
  );
26931
- var AvatarAssetUploadResponseSchema = external_exports.object({
26932
- sha256: external_exports.string().regex(/^[a-f0-9]{64}$/),
26933
- contentType: external_exports.enum(AVATAR_ASSET_CONTENT_TYPES),
26934
- sizeBytes: external_exports.number().int().positive()
26935
- });
26936
- var ApplyBundlePathSchema = external_exports.string().trim().min(1).max(4096).refine((path2) => !path2.startsWith("/") && !path2.includes("\0"), {
26937
- message: "apply bundle paths must be relative paths"
26938
- });
26939
- var ProjectApplyBundleFileSchema = external_exports.object({
26940
- path: ApplyBundlePathSchema,
26941
- contentBase64: external_exports.string().regex(/^[A-Za-z0-9+/]*={0,2}$/)
26942
- });
26943
- var ProjectApplyBundleSchema = external_exports.object({
26944
- version: external_exports.literal(PROJECT_APPLY_BUNDLE_VERSION),
26945
- files: external_exports.array(ProjectApplyBundleFileSchema).max(2e4)
26874
+ var RunMessageCommandPayloadSchema = external_exports.object({
26875
+ message: external_exports.string().trim().min(1),
26876
+ // Optional so existing payloads and direct operator/agent messages stay
26877
+ // valid without it; trigger routing sets "deferred" for GitHub check
26878
+ // events. An absent mode is treated as "interrupt" at the delivery
26879
+ // boundary (commandDeliveryPayload / the runtime handler), so the default
26880
+ // lives where the value is consumed rather than as a required field every
26881
+ // call site must construct.
26882
+ deliveryMode: MessageDeliveryModeSchema.optional(),
26883
+ metadata: JsonValueSchema2.optional()
26884
+ }).strict();
26885
+ var RunAnswerCommandPayloadSchema = external_exports.object({
26886
+ toolCallId: external_exports.string().trim().min(1),
26887
+ answers: external_exports.record(external_exports.string(), external_exports.string()),
26888
+ response: external_exports.string().trim().min(1).optional()
26889
+ }).strict().refine((value2) => Object.keys(value2.answers).length > 0 || value2.response, {
26890
+ message: "Provide at least one answer or a freeform response"
26946
26891
  });
26947
- var ProjectApplyBundleRefSchema = external_exports.object({
26948
- kind: external_exports.literal("vercel_blob"),
26949
- storageKey: external_exports.string().trim().min(1).max(1024),
26950
- sha256: external_exports.string().regex(SHA256_HEX_PATTERN),
26951
- sizeBytes: external_exports.number().int().positive().max(MAX_PROJECT_APPLY_BUNDLE_BYTES)
26952
- }).superRefine((ref, context) => {
26953
- const expectedStorageKey = projectApplyBundleStorageKey(ref.sha256);
26954
- if (ref.storageKey === expectedStorageKey) {
26955
- return;
26956
- }
26957
- context.addIssue({
26958
- code: "custom",
26959
- path: ["storageKey"],
26960
- message: "apply bundle storage key must match its sha256"
26961
- });
26892
+ var RunLifecycleCommandPayloadSchema = external_exports.object({
26893
+ reason: external_exports.string().trim().min(1).optional()
26894
+ }).strict();
26895
+ var RunStopCommandPayloadSchema = external_exports.object({
26896
+ reason: external_exports.string().trim().min(1).optional(),
26897
+ respawn: SingletonRespawnSchema.optional()
26898
+ }).strict();
26899
+ var SessionCommandPayloadSchema = external_exports.union([
26900
+ RunMessageCommandPayloadSchema,
26901
+ RunAnswerCommandPayloadSchema,
26902
+ RunLifecycleCommandPayloadSchema,
26903
+ RunStopCommandPayloadSchema
26904
+ ]);
26905
+ var CreateRunMessageCommandRequestSchema = external_exports.object({
26906
+ message: external_exports.string().trim().min(1),
26907
+ metadata: JsonValueSchema2.optional()
26962
26908
  });
26963
- var ProjectApplyBundleUploadRequestSchema = external_exports.object({
26964
- sha256: external_exports.string().regex(SHA256_HEX_PATTERN),
26965
- sizeBytes: external_exports.number().int().positive().max(MAX_PROJECT_APPLY_BUNDLE_BYTES)
26909
+ var CreateRunAnswerCommandRequestSchema = RunAnswerCommandPayloadSchema;
26910
+ var CreateRunLifecycleCommandRequestSchema = external_exports.object({
26911
+ reason: external_exports.string().trim().min(1).optional()
26966
26912
  });
26967
- var ProjectApplyBundleUploadResponseSchema = external_exports.object({
26968
- method: external_exports.literal("PUT"),
26969
- uploadUrl: external_exports.string().url(),
26970
- contentType: external_exports.literal(PROJECT_APPLY_BUNDLE_CONTENT_TYPE),
26971
- source: ProjectApplyBundleRefSchema
26913
+ var CreateRunStopCommandRequestSchema = external_exports.object({
26914
+ reason: external_exports.string().trim().min(1).optional(),
26915
+ respawn: SingletonRespawnSchema.optional()
26972
26916
  });
26973
- var ProjectApplyBundleDirectoryEntrypointSchema = external_exports.object({
26974
- kind: external_exports.literal("directory"),
26975
- resourceRoot: ApplyBundlePathSchema.default(".auto"),
26976
- displayResourceRoot: external_exports.string().trim().min(1).max(4096).optional()
26917
+ var CreateSessionCommandRequestSchema = external_exports.discriminatedUnion("kind", [
26918
+ external_exports.object({
26919
+ kind: external_exports.literal("message"),
26920
+ payload: CreateRunMessageCommandRequestSchema
26921
+ }).strict(),
26922
+ external_exports.object({
26923
+ kind: external_exports.literal("answer"),
26924
+ payload: CreateRunAnswerCommandRequestSchema
26925
+ }).strict(),
26926
+ external_exports.object({
26927
+ kind: external_exports.literal("pause"),
26928
+ payload: CreateRunLifecycleCommandRequestSchema
26929
+ }).strict(),
26930
+ external_exports.object({
26931
+ kind: external_exports.literal("resume"),
26932
+ payload: CreateRunLifecycleCommandRequestSchema
26933
+ }).strict(),
26934
+ external_exports.object({
26935
+ kind: external_exports.literal("interrupt"),
26936
+ payload: CreateRunLifecycleCommandRequestSchema
26937
+ }).strict(),
26938
+ external_exports.object({
26939
+ kind: external_exports.literal("cancel"),
26940
+ payload: CreateRunLifecycleCommandRequestSchema
26941
+ }).strict(),
26942
+ external_exports.object({
26943
+ kind: external_exports.literal("stop"),
26944
+ payload: CreateRunStopCommandRequestSchema
26945
+ }).strict()
26946
+ ]);
26947
+ var RunResolutionPolicySchema = external_exports.enum([
26948
+ "singletonLiveRun",
26949
+ "latestLiveRun",
26950
+ "latestRun"
26951
+ ]);
26952
+ var AgentAddressedCommandTargetSchema = external_exports.object({
26953
+ agentId: AgentIdSchema.optional(),
26954
+ agentName: external_exports.string().trim().min(1).optional(),
26955
+ resolutionPolicy: RunResolutionPolicySchema
26956
+ }).refine((value2) => Boolean(value2.agentId) !== Boolean(value2.agentName), {
26957
+ message: "Provide exactly one of agentId or agentName"
26977
26958
  });
26978
- var ProjectApplyBundleFileEntrypointSchema = external_exports.object({
26979
- kind: external_exports.literal("file"),
26980
- filePath: ApplyBundlePathSchema
26959
+ var SessionCommandRecordBaseSchema = external_exports.object({
26960
+ id: SessionCommandIdSchema2,
26961
+ sessionId: SessionIdSchema2,
26962
+ sender: SessionCommandSenderSchema,
26963
+ idempotencyKey: external_exports.string().min(1).nullable(),
26964
+ status: SessionCommandStatusSchema,
26965
+ attemptCount: external_exports.number().int().nonnegative(),
26966
+ nextAttemptAt: external_exports.string().datetime().nullable(),
26967
+ lastAttemptAt: external_exports.string().datetime().nullable(),
26968
+ acceptedAt: external_exports.string().datetime().nullable(),
26969
+ failedAt: external_exports.string().datetime().nullable(),
26970
+ error: JsonValueSchema2.nullable(),
26971
+ createdAt: external_exports.string().datetime(),
26972
+ updatedAt: external_exports.string().datetime()
26981
26973
  });
26982
- var ProjectApplyBundleEntrypointSchema = external_exports.discriminatedUnion("kind", [
26983
- ProjectApplyBundleDirectoryEntrypointSchema,
26984
- ProjectApplyBundleFileEntrypointSchema
26974
+ var RunStartCommandPayloadSchema = external_exports.object({
26975
+ kind: external_exports.literal("start")
26976
+ }).strict();
26977
+ var RunStartWithMessageCommandPayloadSchema = external_exports.object({
26978
+ kind: external_exports.literal("startWithMessage"),
26979
+ message: external_exports.string().trim().min(1)
26980
+ }).strict();
26981
+ var SessionPersistedCommandPayloadSchema = external_exports.union([
26982
+ RunMessageCommandPayloadSchema,
26983
+ RunAnswerCommandPayloadSchema,
26984
+ RunLifecycleCommandPayloadSchema,
26985
+ RunStopCommandPayloadSchema,
26986
+ RunStartCommandPayloadSchema,
26987
+ RunStartWithMessageCommandPayloadSchema
26985
26988
  ]);
26986
- var ProjectApplySourceSchema = external_exports.object({
26987
- kind: external_exports.literal("bundle"),
26988
- bundle: ProjectApplyBundleRefSchema,
26989
- entrypoint: ProjectApplyBundleEntrypointSchema
26989
+ var SessionCommandRecordSchema = external_exports.discriminatedUnion("kind", [
26990
+ SessionCommandRecordBaseSchema.extend({
26991
+ kind: external_exports.literal("message"),
26992
+ payload: RunMessageCommandPayloadSchema
26993
+ }),
26994
+ SessionCommandRecordBaseSchema.extend({
26995
+ kind: external_exports.literal("answer"),
26996
+ payload: RunAnswerCommandPayloadSchema
26997
+ }),
26998
+ SessionCommandRecordBaseSchema.extend({
26999
+ kind: external_exports.literal("pause"),
27000
+ payload: RunLifecycleCommandPayloadSchema
27001
+ }),
27002
+ SessionCommandRecordBaseSchema.extend({
27003
+ kind: external_exports.literal("resume"),
27004
+ payload: RunLifecycleCommandPayloadSchema
27005
+ }),
27006
+ SessionCommandRecordBaseSchema.extend({
27007
+ kind: external_exports.literal("interrupt"),
27008
+ payload: RunLifecycleCommandPayloadSchema
27009
+ }),
27010
+ SessionCommandRecordBaseSchema.extend({
27011
+ kind: external_exports.literal("cancel"),
27012
+ payload: RunLifecycleCommandPayloadSchema
27013
+ }),
27014
+ SessionCommandRecordBaseSchema.extend({
27015
+ kind: external_exports.literal("stop"),
27016
+ payload: RunStopCommandPayloadSchema
27017
+ }),
27018
+ SessionCommandRecordBaseSchema.extend({
27019
+ kind: external_exports.literal("start"),
27020
+ payload: RunStartCommandPayloadSchema
27021
+ }),
27022
+ SessionCommandRecordBaseSchema.extend({
27023
+ kind: external_exports.literal("startWithMessage"),
27024
+ payload: RunStartWithMessageCommandPayloadSchema
27025
+ })
27026
+ ]);
27027
+ var SessionDispatchMessageCommandPayloadSchema = external_exports.object({
27028
+ kind: external_exports.literal("message"),
27029
+ message: external_exports.string().trim().min(1)
27030
+ }).strict();
27031
+ var SessionDispatchAnswerCommandPayloadSchema = external_exports.object({
27032
+ kind: external_exports.literal("answer"),
27033
+ toolCallId: external_exports.string().trim().min(1),
27034
+ answers: external_exports.record(external_exports.string(), external_exports.string()),
27035
+ response: external_exports.string().trim().min(1).optional()
27036
+ }).strict();
27037
+ var SessionDispatchStopCommandPayloadSchema = external_exports.object({
27038
+ kind: external_exports.literal("stop"),
27039
+ reason: external_exports.string().trim().min(1).optional()
27040
+ }).strict();
27041
+ var SessionDispatchCommandPayloadSchema = external_exports.discriminatedUnion(
27042
+ "kind",
27043
+ [
27044
+ RunStartCommandPayloadSchema,
27045
+ RunStartWithMessageCommandPayloadSchema,
27046
+ SessionDispatchMessageCommandPayloadSchema,
27047
+ SessionDispatchAnswerCommandPayloadSchema,
27048
+ SessionDispatchStopCommandPayloadSchema
27049
+ ]
27050
+ );
27051
+ var SessionDispatchCommandRecordBaseSchema = external_exports.object({
27052
+ id: SessionCommandIdSchema2,
27053
+ sessionId: SessionIdSchema2,
27054
+ sender: SessionCommandSenderSchema,
27055
+ idempotencyKey: external_exports.string().min(1).nullable(),
27056
+ status: SessionDispatchCommandStatusSchema,
27057
+ attemptCount: external_exports.number().int().nonnegative(),
27058
+ nextAttemptAt: external_exports.string().datetime().nullable(),
27059
+ lastAttemptAt: external_exports.string().datetime().nullable(),
27060
+ acceptedAt: external_exports.string().datetime().nullable(),
27061
+ failedAt: external_exports.string().datetime().nullable(),
27062
+ error: JsonValueSchema2.nullable(),
27063
+ createdAt: external_exports.string().datetime(),
27064
+ updatedAt: external_exports.string().datetime()
26990
27065
  });
26991
- var ProjectApplySourceRequestSchema = external_exports.object({
26992
- source: ProjectApplySourceSchema,
26993
- delete: external_exports.array(ProjectDeleteResourceSchema).default([]),
26994
- dryRun: external_exports.boolean().default(false),
26995
- prune: external_exports.boolean().default(true)
27066
+ var SessionDispatchCommandRecordSchema = external_exports.discriminatedUnion("kind", [
27067
+ SessionDispatchCommandRecordBaseSchema.extend({
27068
+ kind: external_exports.literal("start"),
27069
+ payload: RunStartCommandPayloadSchema
27070
+ }),
27071
+ SessionDispatchCommandRecordBaseSchema.extend({
27072
+ kind: external_exports.literal("startWithMessage"),
27073
+ payload: RunStartWithMessageCommandPayloadSchema
27074
+ }),
27075
+ SessionDispatchCommandRecordBaseSchema.extend({
27076
+ kind: external_exports.literal("message"),
27077
+ payload: SessionDispatchMessageCommandPayloadSchema
27078
+ }),
27079
+ SessionDispatchCommandRecordBaseSchema.extend({
27080
+ kind: external_exports.literal("answer"),
27081
+ payload: SessionDispatchAnswerCommandPayloadSchema
27082
+ }),
27083
+ SessionDispatchCommandRecordBaseSchema.extend({
27084
+ kind: external_exports.literal("stop"),
27085
+ payload: SessionDispatchStopCommandPayloadSchema
27086
+ })
27087
+ ]);
27088
+
27089
+ // ../../packages/schemas/src/sessions.ts
27090
+ var SESSION_STATUSES = [
27091
+ "queued",
27092
+ "running",
27093
+ "awaiting",
27094
+ "failed",
27095
+ "stopped"
27096
+ ];
27097
+ var SESSION_RUNTIME_PHASES = [
27098
+ "building_image",
27099
+ "booting_container",
27100
+ "preparing_environment",
27101
+ "starting_runtime",
27102
+ "running"
27103
+ ];
27104
+ var SESSION_DISPLAY_TITLE_MAX_LENGTH = 64;
27105
+ var SESSION_MESSAGE_ROLES = ["system", "user", "assistant"];
27106
+ var SESSION_MESSAGE_STATUSES = [
27107
+ "in_progress",
27108
+ "completed",
27109
+ "failed"
27110
+ ];
27111
+ var SessionStatusSchema = external_exports.enum(SESSION_STATUSES);
27112
+ var SessionRuntimePhaseSchema = external_exports.enum(SESSION_RUNTIME_PHASES);
27113
+ var SessionMessageRoleSchema = external_exports.enum(SESSION_MESSAGE_ROLES);
27114
+ var SessionMessageStatusSchema = external_exports.enum(SESSION_MESSAGE_STATUSES);
27115
+ var RunDisplayTitleSchema = external_exports.string().trim().max(SESSION_DISPLAY_TITLE_MAX_LENGTH);
27116
+ var AmbientStatusSchema = external_exports.string().trim().min(1);
27117
+ var SESSION_CHECK_STATUSES = [
27118
+ "queued",
27119
+ "in_progress",
27120
+ "completed"
27121
+ ];
27122
+ var SESSION_CHECK_CONCLUSIONS = ["success", "failure"];
27123
+ var SESSION_CHECK_TIMEOUT_PHASES = ["begin", "complete"];
27124
+ var SessionCheckStatusSchema = external_exports.enum(SESSION_CHECK_STATUSES);
27125
+ var SessionCheckConclusionSchema = external_exports.enum(SESSION_CHECK_CONCLUSIONS);
27126
+ var SessionCheckTimeoutPhaseSchema = external_exports.enum(
27127
+ SESSION_CHECK_TIMEOUT_PHASES
27128
+ );
27129
+ var ManualSessionRequestSchema = external_exports.object({
27130
+ message: external_exports.string().trim().min(1).max(2e4).optional(),
27131
+ interactive: external_exports.boolean().optional(),
27132
+ /**
27133
+ * Deliver the agent's configured `initialPrompt` as the session's kickoff
27134
+ * message so the agent opens the conversation. Agents without an
27135
+ * `initialPrompt` fall back to the default manual say-hello message, so a
27136
+ * kickoff always pings the agent. The kickoff is delivered through the
27137
+ * session's one idempotent start command and never renders as a user chat
27138
+ * bubble; the agent's greeting is the first visible content.
27139
+ */
27140
+ kickoff: external_exports.boolean().optional()
26996
27141
  });
26997
- var ProjectApplyRequestSchema = external_exports.object({
26998
- delete: external_exports.array(ProjectDeleteResourceSchema).default([]),
26999
- dryRun: external_exports.boolean().default(false),
27000
- prune: external_exports.boolean().default(false),
27001
- resources: external_exports.array(ProjectApplyResourceSchema).default([]),
27002
- assets: ProjectApplyAssetsSchema.default({})
27142
+ var SessionArchiveRequestSchema = external_exports.object({
27143
+ archived: external_exports.boolean()
27144
+ });
27145
+ var SessionsArchiveRequestSchema = external_exports.object({
27146
+ session_ids: external_exports.array(SessionIdSchema2).min(1).max(100),
27147
+ archived: external_exports.boolean()
27148
+ });
27149
+ var SessionRecordSchema = external_exports.object({
27150
+ id: SessionIdSchema2,
27151
+ organizationId: external_exports.string().trim().min(1),
27152
+ projectId: external_exports.string().trim().min(1).nullable(),
27153
+ agentId: AgentIdSchema,
27154
+ runtimeId: RuntimeIdSchema2.nullable(),
27155
+ status: SessionStatusSchema,
27156
+ runtimePhase: SessionRuntimePhaseSchema.nullable(),
27157
+ idempotencyKey: external_exports.string().min(1).nullable(),
27158
+ correlationKey: external_exports.string().nullable(),
27159
+ workflowId: external_exports.string().min(1),
27160
+ displayTitle: RunDisplayTitleSchema,
27161
+ ambientStatus: AmbientStatusSchema.nullable(),
27162
+ ambientStatusUpdatedAt: external_exports.string().datetime().nullable(),
27163
+ starterActor: AuthActorSchema.nullable(),
27164
+ snapshot: AgentResourceSchema,
27165
+ environmentSnapshot: EnvironmentResourceSchema,
27166
+ toolSnapshots: external_exports.array(
27167
+ external_exports.object({
27168
+ source: external_exports.literal("inline"),
27169
+ alias: ToolAliasSchema,
27170
+ spec: RemoteMcpToolSchema.or(ConnectionBackedToolSchema).or(LocalToolSchema).or(GithubToolSchema)
27171
+ })
27172
+ ),
27173
+ input: JsonValueSchema2,
27174
+ createdAt: external_exports.string().datetime(),
27175
+ updatedAt: external_exports.string().datetime(),
27176
+ lastActivityAt: external_exports.string().datetime(),
27177
+ startedAt: external_exports.string().datetime().nullable(),
27178
+ finishedAt: external_exports.string().datetime().nullable(),
27179
+ archivedAt: external_exports.string().datetime().nullable(),
27180
+ error: JsonValueSchema2.nullable()
27003
27181
  });
27004
- var ProjectApplySystemConfigSchema = external_exports.object({
27005
- kind: external_exports.literal("system"),
27006
- metadata: external_exports.object({
27007
- name: external_exports.string().trim().min(1).optional()
27008
- }).optional(),
27009
- spec: ProjectApplyRequestSchema
27182
+ var SessionMessageOriginSchema = external_exports.object({
27183
+ eventKey: external_exports.string().trim().min(1),
27184
+ provider: external_exports.string().trim().min(1).nullable().default(null)
27010
27185
  });
27011
- var ProjectAppliedResourceSchema = external_exports.union([
27012
- ProjectConnectionAllocationResourceSchema,
27013
- EnvironmentResourceSchema,
27014
- IdentityResourceSchema,
27015
- AgentResourceSchema
27016
- ]);
27017
- var ProjectApplyDiagnosticSchema = external_exports.object({
27018
- // "info" is a non-blocking advisory (e.g. template-push capability/override
27019
- // notices); "error" remains the validation-failure severity. Coordinated
27020
- // shape with the optional-connection-gating work; whoever lands second rebases.
27021
- severity: external_exports.enum(["error", "info"]),
27022
- blocking: external_exports.boolean(),
27023
- code: external_exports.string().min(1),
27024
- message: external_exports.string().min(1),
27025
- action: external_exports.enum(["create", "update", "unchanged"]),
27026
- kind: external_exports.enum([
27027
- RESOURCE_KIND_CONNECTION,
27028
- RESOURCE_KIND_ENVIRONMENT,
27029
- RESOURCE_KIND_IDENTITY,
27030
- RESOURCE_KIND_AGENT
27031
- ]),
27032
- name: external_exports.string().min(1)
27186
+ var SessionUiMessageRecordSchema = external_exports.object({
27187
+ id: external_exports.string().trim().min(1),
27188
+ sessionId: SessionIdSchema2,
27189
+ sequence: external_exports.number().int().nonnegative(),
27190
+ messageId: external_exports.string().trim().min(1),
27191
+ commandId: external_exports.string().trim().min(1).nullable(),
27192
+ turnId: external_exports.string().trim().min(1).nullable(),
27193
+ role: SessionMessageRoleSchema,
27194
+ status: SessionMessageStatusSchema,
27195
+ message: JsonValueSchema2,
27196
+ // The sender of the command that carried this message into the session
27197
+ // (operator chat send, trigger delivery, or another agent's session), joined
27198
+ // from session_commands at read time. Null for messages that did not arrive
27199
+ // through a command, such as assistant output.
27200
+ sender: SessionCommandSenderSchema.nullable().default(null),
27201
+ // For trigger deliveries, the routed event behind the carrying command:
27202
+ // its event key plus the originating provider connection when known
27203
+ // (e.g. "slack" for a subscribed-thread reply, "github" for a check event).
27204
+ origin: SessionMessageOriginSchema.nullable().default(null),
27205
+ streamCursor: external_exports.number().int().positive().nullable().default(null),
27206
+ createdAt: external_exports.string().datetime(),
27207
+ updatedAt: external_exports.string().datetime(),
27208
+ completedAt: external_exports.string().datetime().nullable()
27033
27209
  });
27034
- var ProjectApplyResponsePrunedSchema = external_exports.object({
27035
- kind: external_exports.enum(PROJECT_RESOURCE_KINDS),
27036
- name: external_exports.string().min(1),
27037
- uid: external_exports.string().min(1),
27038
- heartbeatScheduleIds: external_exports.array(external_exports.string().min(1)).optional()
27210
+ var SessionListItemAgentSchema = external_exports.object({
27211
+ name: external_exports.string(),
27212
+ displayName: external_exports.string().nullable(),
27213
+ username: external_exports.string().nullable(),
27214
+ avatarSha256: external_exports.string().nullable()
27039
27215
  });
27040
- var ProjectApplyPlanDiffSchema = external_exports.object({
27041
- action: external_exports.enum(["add", "remove", "change"]),
27042
- path: external_exports.string().min(1)
27216
+ var SessionListItemSchema = external_exports.object({
27217
+ id: SessionIdSchema2,
27218
+ agentId: AgentIdSchema,
27219
+ status: SessionStatusSchema,
27220
+ runtimePhase: SessionRuntimePhaseSchema.nullable(),
27221
+ displayTitle: RunDisplayTitleSchema,
27222
+ summary: external_exports.string(),
27223
+ agent: SessionListItemAgentSchema,
27224
+ createdAt: external_exports.string().datetime(),
27225
+ updatedAt: external_exports.string().datetime(),
27226
+ archivedAt: external_exports.string().datetime().nullable(),
27227
+ lastActivityAt: external_exports.string().datetime()
27043
27228
  });
27044
- var ProjectApplyResponseSchema = external_exports.object({
27045
- dryRun: external_exports.boolean().default(false),
27046
- resources: external_exports.array(ProjectAppliedResourceSchema),
27047
- triggers: external_exports.array(ApplyTriggerReceiptSchema).default([]),
27048
- diagnostics: external_exports.array(ProjectApplyDiagnosticSchema).default([]),
27049
- plan: external_exports.array(
27050
- external_exports.object({
27051
- action: external_exports.enum(["create", "update", "unchanged", "archive"]),
27052
- kind: external_exports.enum(PROJECT_RESOURCE_KINDS),
27053
- name: external_exports.string().min(1),
27054
- uid: external_exports.string().min(1).optional(),
27055
- diff: external_exports.array(ProjectApplyPlanDiffSchema).optional(),
27056
- diffOmitted: external_exports.number().int().positive().optional()
27057
- })
27058
- ).default([]),
27059
- pruned: external_exports.array(ProjectApplyResponsePrunedSchema).default([])
27229
+ var SessionListResponseSchema = external_exports.object({
27230
+ sessions: external_exports.array(SessionListItemSchema),
27231
+ /**
27232
+ * Opaque keyset cursor for the next page, or `null` when the list is
27233
+ * exhausted. Replay it on the next request to append the following page; it is
27234
+ * minted for a specific sort and rejected against a different one.
27235
+ */
27236
+ nextCursor: external_exports.string().nullable(),
27237
+ hasMore: external_exports.boolean()
27060
27238
  });
27061
- var ProjectResourceApplyResultSchema = ProjectApplyResponseSchema.extend({
27062
- heartbeatSchedules: external_exports.array(
27063
- external_exports.object({
27064
- scheduleId: external_exports.string().trim().min(1),
27065
- cron: external_exports.string().trim().min(1),
27066
- timezone: external_exports.string().trim().min(1),
27067
- input: HeartbeatTickWorkflowInputSchema
27068
- })
27069
- ).default([]),
27070
- deletedHeartbeatScheduleIds: external_exports.array(external_exports.string().trim().min(1)).default([])
27239
+ var SessionsArchiveResponseSchema = external_exports.object({
27240
+ archived: external_exports.boolean(),
27241
+ sessions: external_exports.array(SessionRecordSchema)
27071
27242
  });
27072
- var ProjectResourceApplyAuditActionSchema = external_exports.enum([
27073
- "project_resources.apply",
27074
- "github_sync.apply"
27075
- ]);
27076
- var ProjectResourceApplyOperationIdSchema = external_exports.string().trim().min(1).max(512);
27077
- var ProjectResourceApplyTriggerArtifactSchema = external_exports.object({
27078
- type: external_exports.string().trim().min(1),
27079
- externalId: external_exports.string().trim().min(1),
27080
- payload: JsonValueSchema2.optional()
27081
- }).strict();
27082
- var ProjectResourceApplyWorkflowErrorSchema = external_exports.object({
27083
- name: external_exports.string().trim().min(1),
27084
- message: external_exports.string().trim().min(1)
27243
+
27244
+ // ../../packages/schemas/src/live-events.ts
27245
+ var LiveEntityEventEnvelopeSchema = external_exports.object({
27246
+ // Replay cursor for this frame; the SSE `id:` mirrors it so reconnects resume
27247
+ // from `sequence > cursor`.
27248
+ sequence: external_exports.number().int().nonnegative(),
27249
+ eventKey: external_exports.string().min(1),
27250
+ // The event's `subjectKind`, surfaced as `entity` for client-side dispatch.
27251
+ entity: external_exports.string().min(1),
27252
+ subjectId: external_exports.string().min(1),
27253
+ payload: JsonValueSchema2,
27254
+ occurredAt: external_exports.string().min(1)
27085
27255
  });
27086
- var ProjectResourceApplyWorkflowInputSchema = external_exports.object({
27087
- operationId: ProjectResourceApplyOperationIdSchema,
27088
- request: ProjectApplyRequestSchema.optional(),
27089
- sourceRequest: ProjectApplySourceRequestSchema.optional(),
27090
- organizationId: OrganizationIdSchema,
27091
- projectId: ProjectIdSchema.nullable().optional(),
27092
- actor: AuthActorSchema,
27093
- auditAction: ProjectResourceApplyAuditActionSchema,
27094
- triggerArtifact: ProjectResourceApplyTriggerArtifactSchema.optional()
27095
- }).superRefine((input, context) => {
27096
- if ((input.request ? 1 : 0) + (input.sourceRequest ? 1 : 0) !== 1) {
27097
- context.addIssue({
27098
- code: "custom",
27099
- path: ["request"],
27100
- message: "exactly one of request or sourceRequest is required"
27101
- });
27102
- }
27256
+
27257
+ // ../../packages/schemas/src/mcp.ts
27258
+ var McpToolCallMessageSchema = external_exports.object({
27259
+ method: external_exports.literal("tools/call"),
27260
+ params: external_exports.object({
27261
+ name: external_exports.string().trim().min(1)
27262
+ })
27103
27263
  });
27104
- var ProjectResourceApplyWorkflowResultSchema = external_exports.discriminatedUnion(
27105
- "status",
27106
- [
27107
- external_exports.object({
27108
- status: external_exports.literal("applied"),
27109
- result: ProjectResourceApplyResultSchema
27110
- }),
27111
- external_exports.object({
27112
- status: external_exports.literal("failed"),
27113
- error: ProjectResourceApplyWorkflowErrorSchema
27114
- })
27115
- ]
27116
- );
27264
+ var McpJsonRpcMessageSchema = external_exports.object({
27265
+ method: external_exports.string().optional()
27266
+ }).passthrough();
27267
+ var McpPostBodySchema = external_exports.union([McpJsonRpcMessageSchema, external_exports.array(McpJsonRpcMessageSchema)]).transform((body) => Array.isArray(body) ? body : [body]);
27117
27268
 
27118
- // ../../packages/schemas/src/session-diagnostics.ts
27119
- var SESSION_DIAGNOSTIC_REALTIME_EVENT = "session.diagnostic";
27120
- var SESSION_DIAGNOSTIC_LEVELS = [
27121
- "debug",
27122
- "info",
27123
- "warn",
27124
- "error"
27125
- ];
27126
- var SESSION_DIAGNOSTIC_SOURCES = [
27127
- "web",
27128
- "worker",
27129
- "activity",
27130
- "bridge",
27131
- "runtime"
27132
- ];
27133
- var SESSION_DIAGNOSTIC_PHASES = [
27134
- "dispatch",
27135
- "environment",
27136
- "bridge",
27137
- "delivery",
27138
- "command",
27139
- "runtime"
27140
- ];
27141
- var SESSION_DIAGNOSTIC_STATUSES = [
27142
- "started",
27143
- "succeeded",
27144
- "retrying",
27145
- "failed",
27146
- "skipped"
27147
- ];
27148
- var SessionDiagnosticLevelSchema = external_exports.enum(SESSION_DIAGNOSTIC_LEVELS);
27149
- var SessionDiagnosticSourceSchema = external_exports.enum(SESSION_DIAGNOSTIC_SOURCES);
27150
- var SessionDiagnosticPhaseSchema = external_exports.enum(SESSION_DIAGNOSTIC_PHASES);
27151
- var SessionDiagnosticStatusSchema = external_exports.enum(
27152
- SESSION_DIAGNOSTIC_STATUSES
27153
- );
27154
- var SessionDiagnosticEventSchema = external_exports.object({
27155
- type: external_exports.literal(SESSION_DIAGNOSTIC_REALTIME_EVENT),
27156
- id: external_exports.string().min(1),
27157
- sessionId: SessionIdSchema2,
27158
- level: SessionDiagnosticLevelSchema,
27159
- source: SessionDiagnosticSourceSchema,
27160
- phase: SessionDiagnosticPhaseSchema,
27161
- step: external_exports.string().trim().min(1),
27162
- status: SessionDiagnosticStatusSchema,
27163
- message: external_exports.string().trim().min(1),
27164
- commandId: SessionCommandIdSchema2.optional(),
27165
- runtimeId: RuntimeIdSchema2.optional(),
27166
- bridgeLeaseId: RuntimeBridgeLeaseIdSchema2.optional(),
27167
- attempt: external_exports.number().int().nonnegative().optional(),
27168
- durationMs: external_exports.number().nonnegative().optional(),
27169
- details: external_exports.record(external_exports.string(), JsonValueSchema2).optional(),
27269
+ // ../../packages/schemas/src/pricing.ts
27270
+ var RATE_CARD_2026_06_23 = {
27271
+ version: "2026-06-23",
27272
+ effectiveAt: "2026-06-23T00:00:00.000Z",
27273
+ models: {
27274
+ "claude-opus-4-8": opusTier(),
27275
+ "claude-opus-4-7": opusTier(),
27276
+ "claude-opus-4-6": opusTier(),
27277
+ "claude-sonnet-4-6": tier(3, 15),
27278
+ "claude-haiku-4-5": tier(1, 5),
27279
+ "claude-haiku-4-5-20251001": tier(1, 5),
27280
+ "claude-fable-5": tier(10, 50),
27281
+ // OpenAI gpt-5.3-codex, standard tier: input $1.75/Mtok, cached input
27282
+ // $0.175/Mtok, output $14.00/Mtok. Source (verified 2026-06-23):
27283
+ // https://developers.openai.com/api/docs/models/gpt-5.3-codex and
27284
+ // https://developers.openai.com/api/docs/pricing (priority tier is 2x; we
27285
+ // bill standard).
27286
+ "gpt-5.3-codex": openAiTier({
27287
+ input: 1.75,
27288
+ cachedInput: 0.175,
27289
+ output: 14
27290
+ })
27291
+ }
27292
+ };
27293
+ var PRICING_RATE_CARDS = {
27294
+ [RATE_CARD_2026_06_23.version]: RATE_CARD_2026_06_23
27295
+ };
27296
+ var CURRENT_PRICING_VERSION = RATE_CARD_2026_06_23.version;
27297
+ function tier(inputUsdPerMtok, outputUsdPerMtok) {
27298
+ return {
27299
+ inputUsdPerMtok,
27300
+ outputUsdPerMtok,
27301
+ cacheWrite5mUsdPerMtok: inputUsdPerMtok * 1.25,
27302
+ cacheReadUsdPerMtok: inputUsdPerMtok * 0.1
27303
+ };
27304
+ }
27305
+ function opusTier() {
27306
+ return tier(5, 25);
27307
+ }
27308
+ function openAiTier(rates) {
27309
+ return {
27310
+ inputUsdPerMtok: rates.input,
27311
+ outputUsdPerMtok: rates.output,
27312
+ cacheWrite5mUsdPerMtok: rates.input,
27313
+ cacheReadUsdPerMtok: rates.cachedInput
27314
+ };
27315
+ }
27316
+
27317
+ // ../../packages/schemas/src/project-service-accounts.ts
27318
+ var ProjectServiceAccountSchema = external_exports.object({
27319
+ id: ServiceAccountIdSchema,
27320
+ organizationId: OrganizationIdSchema,
27321
+ projectId: ProjectIdSchema,
27322
+ name: ResourceNameSchema,
27323
+ scopes: external_exports.array(AuthScopeSchema),
27170
27324
  createdAt: external_exports.string().datetime()
27171
27325
  });
27172
-
27173
- // ../../packages/schemas/src/singleton-refresh.ts
27174
- var SINGLETON_RESPAWN_REASONS = ["refresh", "failure"];
27175
- var SingletonRespawnReasonSchema = external_exports.enum(SINGLETON_RESPAWN_REASONS);
27176
- var SingletonRespawnSchema = external_exports.object({
27177
- reason: SingletonRespawnReasonSchema.default("refresh")
27178
- }).strict();
27179
- var SingletonRefreshEventPayloadSchema = external_exports.object({
27180
- trigger: external_exports.literal("agent.refresh"),
27181
- refresh: external_exports.object({
27182
- reason: SingletonRespawnReasonSchema,
27183
- agentResourceId: external_exports.string().trim().min(1),
27184
- previousSessionId: external_exports.string().trim().min(1)
27185
- })
27326
+ var ProjectServiceAccountCreateRequestSchema = external_exports.object({
27327
+ name: ResourceNameSchema,
27328
+ scopes: external_exports.array(AuthScopeSchema).min(1)
27329
+ });
27330
+ var ProjectServiceAccountUpdateRequestSchema = external_exports.object({
27331
+ scopes: external_exports.array(AuthScopeSchema).min(1)
27332
+ });
27333
+ var ProjectServiceAccountTokenResponseSchema = external_exports.object({
27334
+ serviceAccount: ProjectServiceAccountSchema,
27335
+ token: external_exports.string().min(1)
27336
+ });
27337
+ var ProjectServiceAccountUpdateResponseSchema = external_exports.object({
27338
+ serviceAccount: ProjectServiceAccountSchema
27339
+ });
27340
+ var ProjectServiceAccountRemoveResponseSchema = external_exports.object({
27341
+ serviceAccount: ProjectServiceAccountSchema,
27342
+ removed: external_exports.literal(true)
27343
+ });
27344
+ var ProjectServiceAccountListResponseSchema = external_exports.object({
27345
+ serviceAccounts: external_exports.array(ProjectServiceAccountSchema)
27186
27346
  });
27187
27347
 
27188
- // ../../packages/schemas/src/session-commands.ts
27189
- var SESSION_COMMAND_KINDS = [
27190
- "message",
27191
- "answer",
27192
- "pause",
27193
- "resume",
27194
- "interrupt",
27195
- "cancel",
27196
- "stop"
27197
- ];
27198
- var SESSION_DISPATCH_COMMAND_KINDS = [
27199
- "start",
27200
- "startWithMessage",
27201
- "message",
27202
- "answer",
27203
- "stop"
27204
- ];
27205
- var SESSION_PERSISTED_COMMAND_KINDS = [
27206
- "message",
27207
- "pause",
27208
- "resume",
27209
- "interrupt",
27210
- "cancel",
27211
- "stop",
27212
- "start",
27213
- "startWithMessage",
27214
- "answer"
27215
- ];
27216
- var SESSION_LIFECYCLE_COMMAND_KINDS = [
27217
- "pause",
27218
- "resume",
27219
- "interrupt",
27220
- "cancel",
27221
- "stop"
27222
- ];
27223
- var SESSION_COMMAND_STATUSES = [
27224
- "pending",
27225
- "dispatching",
27226
- "accepted",
27227
- "failed"
27228
- ];
27229
- var SESSION_DISPATCH_COMMAND_STATUSES = [
27230
- "pending",
27231
- "dispatching",
27232
- "accepted",
27233
- "failed"
27234
- ];
27235
- var SessionCommandKindSchema2 = external_exports.enum(SESSION_COMMAND_KINDS);
27236
- var SessionPersistedCommandKindSchema = external_exports.enum(
27237
- SESSION_PERSISTED_COMMAND_KINDS
27238
- );
27239
- var SessionDispatchCommandKindSchema = external_exports.enum(
27240
- SESSION_DISPATCH_COMMAND_KINDS
27348
+ // ../../packages/schemas/src/project-resources.ts
27349
+ var EnvironmentApplyDocumentSchema = resourceApplyDocumentSchema(
27350
+ RESOURCE_KIND_ENVIRONMENT,
27351
+ EnvironmentApplyRequestSchema.shape.spec
27241
27352
  );
27242
- var RunLifecycleCommandKindSchema = external_exports.enum(
27243
- SESSION_LIFECYCLE_COMMAND_KINDS
27353
+ var IdentityApplyDocumentSchema = resourceApplyDocumentSchema(
27354
+ RESOURCE_KIND_IDENTITY,
27355
+ IdentityApplyRequestSchema.shape.spec
27244
27356
  );
27245
- var SessionCommandStatusSchema = external_exports.enum(SESSION_COMMAND_STATUSES);
27246
- var SessionDispatchCommandStatusSchema = external_exports.enum(
27247
- SESSION_DISPATCH_COMMAND_STATUSES
27357
+ var AgentApplyDocumentSchema = resourceApplyDocumentSchema(
27358
+ RESOURCE_KIND_AGENT,
27359
+ AgentApplyRequestSchema.shape.spec
27248
27360
  );
27249
- var SessionCommandSenderSchema = external_exports.discriminatedUnion("type", [
27250
- external_exports.object({
27251
- type: external_exports.literal("operator"),
27252
- id: external_exports.string().trim().min(1).nullable().default(null),
27253
- actor: AuthActorSchema.nullable().optional()
27254
- }),
27255
- external_exports.object({
27256
- type: external_exports.literal("agent"),
27257
- sessionId: SessionIdSchema2
27258
- }),
27259
- external_exports.object({
27260
- type: external_exports.literal("system")
27261
- })
27361
+ var ProjectApplyResourceSchema = external_exports.discriminatedUnion("kind", [
27362
+ EnvironmentApplyDocumentSchema,
27363
+ IdentityApplyDocumentSchema,
27364
+ AgentApplyDocumentSchema
27262
27365
  ]);
27263
- var MESSAGE_DELIVERY_MODES = ["interrupt", "deferred"];
27264
- var MessageDeliveryModeSchema = external_exports.enum(MESSAGE_DELIVERY_MODES);
27265
- var TRIGGER_INJECTION_MODALITIES = [
27266
- "chat",
27267
- "githubCheck",
27268
- "githubCheckAction",
27269
- "githubPullRequest",
27270
- "other"
27366
+ var PROJECT_RESOURCE_APPLY_ORDER = [
27367
+ RESOURCE_KIND_CONNECTION,
27368
+ RESOURCE_KIND_IDENTITY,
27369
+ RESOURCE_KIND_ENVIRONMENT,
27370
+ RESOURCE_KIND_AGENT
27271
27371
  ];
27272
- var TriggerInjectionModalitySchema = external_exports.enum(
27273
- TRIGGER_INJECTION_MODALITIES
27372
+ var PROJECT_RESOURCE_KINDS = PROJECT_RESOURCE_APPLY_ORDER;
27373
+ var PROJECT_APPLY_RESOURCE_KINDS = [
27374
+ RESOURCE_KIND_IDENTITY,
27375
+ RESOURCE_KIND_ENVIRONMENT,
27376
+ RESOURCE_KIND_AGENT
27377
+ ];
27378
+ var PROJECT_APPLY_BUNDLE_VERSION = 1;
27379
+ var MAX_PROJECT_APPLY_BUNDLE_BYTES = 64 * 1024 * 1024;
27380
+ var PROJECT_APPLY_BUNDLE_CONTENT_TYPE = "application/vnd.auto.project-apply-bundle+json";
27381
+ function projectApplyBundleStorageKey(sha256) {
27382
+ return `project-apply-bundles/${sha256}.json`;
27383
+ }
27384
+ var ProjectDeleteResourceBaseSchema = external_exports.object({
27385
+ name: external_exports.string().trim().min(1)
27386
+ });
27387
+ var ProjectDeleteResourceSchema = ProjectDeleteResourceBaseSchema.extend({
27388
+ kind: external_exports.enum(PROJECT_APPLY_RESOURCE_KINDS)
27389
+ });
27390
+ var AVATAR_ASSET_CONTENT_TYPES = ["image/png", "image/jpeg"];
27391
+ var MAX_AVATAR_ASSET_BASE64_LENGTH = Math.ceil(MAX_AVATAR_ASSET_BYTES / 3) * 4 + 4;
27392
+ var ProjectApplyAssetSchema = external_exports.object({
27393
+ sha256: external_exports.string().regex(/^[a-f0-9]{64}$/),
27394
+ contentType: external_exports.enum(AVATAR_ASSET_CONTENT_TYPES),
27395
+ dataBase64: external_exports.string().min(1).max(MAX_AVATAR_ASSET_BASE64_LENGTH).regex(/^[A-Za-z0-9+/]+={0,2}$/)
27396
+ });
27397
+ var ProjectApplyAssetsSchema = external_exports.record(
27398
+ external_exports.string().refine(isAvatarAssetPathShapeValid, {
27399
+ message: "asset keys must be relative paths under .auto/assets"
27400
+ }),
27401
+ ProjectApplyAssetSchema
27274
27402
  );
27275
- var RunMessageCommandPayloadSchema = external_exports.object({
27276
- message: external_exports.string().trim().min(1),
27277
- // Optional so existing payloads and direct operator/agent messages stay
27278
- // valid without it; trigger routing sets "deferred" for GitHub check
27279
- // events. An absent mode is treated as "interrupt" at the delivery
27280
- // boundary (commandDeliveryPayload / the runtime handler), so the default
27281
- // lives where the value is consumed rather than as a required field every
27282
- // call site must construct.
27283
- deliveryMode: MessageDeliveryModeSchema.optional(),
27284
- metadata: JsonValueSchema2.optional()
27285
- }).strict();
27286
- var RunAnswerCommandPayloadSchema = external_exports.object({
27287
- toolCallId: external_exports.string().trim().min(1),
27288
- answers: external_exports.record(external_exports.string(), external_exports.string()),
27289
- response: external_exports.string().trim().min(1).optional()
27290
- }).strict().refine((value2) => Object.keys(value2.answers).length > 0 || value2.response, {
27291
- message: "Provide at least one answer or a freeform response"
27403
+ var AvatarAssetUploadResponseSchema = external_exports.object({
27404
+ sha256: external_exports.string().regex(/^[a-f0-9]{64}$/),
27405
+ contentType: external_exports.enum(AVATAR_ASSET_CONTENT_TYPES),
27406
+ sizeBytes: external_exports.number().int().positive()
27407
+ });
27408
+ var ApplyBundlePathSchema = external_exports.string().trim().min(1).max(4096).refine((path2) => !path2.startsWith("/") && !path2.includes("\0"), {
27409
+ message: "apply bundle paths must be relative paths"
27410
+ });
27411
+ var ProjectApplyBundleFileSchema = external_exports.object({
27412
+ path: ApplyBundlePathSchema,
27413
+ contentBase64: external_exports.string().regex(/^[A-Za-z0-9+/]*={0,2}$/)
27414
+ });
27415
+ var ProjectApplyBundleSchema = external_exports.object({
27416
+ version: external_exports.literal(PROJECT_APPLY_BUNDLE_VERSION),
27417
+ files: external_exports.array(ProjectApplyBundleFileSchema).max(2e4)
27418
+ });
27419
+ var ProjectApplyBundleRefSchema = external_exports.object({
27420
+ kind: external_exports.literal("vercel_blob"),
27421
+ storageKey: external_exports.string().trim().min(1).max(1024),
27422
+ sha256: external_exports.string().regex(SHA256_HEX_PATTERN),
27423
+ sizeBytes: external_exports.number().int().positive().max(MAX_PROJECT_APPLY_BUNDLE_BYTES)
27424
+ }).superRefine((ref, context) => {
27425
+ const expectedStorageKey = projectApplyBundleStorageKey(ref.sha256);
27426
+ if (ref.storageKey === expectedStorageKey) {
27427
+ return;
27428
+ }
27429
+ context.addIssue({
27430
+ code: "custom",
27431
+ path: ["storageKey"],
27432
+ message: "apply bundle storage key must match its sha256"
27433
+ });
27434
+ });
27435
+ var ProjectApplyBundleUploadRequestSchema = external_exports.object({
27436
+ sha256: external_exports.string().regex(SHA256_HEX_PATTERN),
27437
+ sizeBytes: external_exports.number().int().positive().max(MAX_PROJECT_APPLY_BUNDLE_BYTES)
27438
+ });
27439
+ var ProjectApplyBundleUploadResponseSchema = external_exports.object({
27440
+ method: external_exports.literal("PUT"),
27441
+ uploadUrl: external_exports.string().url(),
27442
+ contentType: external_exports.literal(PROJECT_APPLY_BUNDLE_CONTENT_TYPE),
27443
+ source: ProjectApplyBundleRefSchema
27292
27444
  });
27293
- var RunLifecycleCommandPayloadSchema = external_exports.object({
27294
- reason: external_exports.string().trim().min(1).optional()
27295
- }).strict();
27296
- var RunStopCommandPayloadSchema = external_exports.object({
27297
- reason: external_exports.string().trim().min(1).optional(),
27298
- respawn: SingletonRespawnSchema.optional()
27299
- }).strict();
27300
- var SessionCommandPayloadSchema = external_exports.union([
27301
- RunMessageCommandPayloadSchema,
27302
- RunAnswerCommandPayloadSchema,
27303
- RunLifecycleCommandPayloadSchema,
27304
- RunStopCommandPayloadSchema
27445
+ var ProjectApplyBundleDirectoryEntrypointSchema = external_exports.object({
27446
+ kind: external_exports.literal("directory"),
27447
+ resourceRoot: ApplyBundlePathSchema.default(".auto"),
27448
+ displayResourceRoot: external_exports.string().trim().min(1).max(4096).optional()
27449
+ });
27450
+ var ProjectApplyBundleFileEntrypointSchema = external_exports.object({
27451
+ kind: external_exports.literal("file"),
27452
+ filePath: ApplyBundlePathSchema
27453
+ });
27454
+ var ProjectApplyBundleEntrypointSchema = external_exports.discriminatedUnion("kind", [
27455
+ ProjectApplyBundleDirectoryEntrypointSchema,
27456
+ ProjectApplyBundleFileEntrypointSchema
27305
27457
  ]);
27306
- var CreateRunMessageCommandRequestSchema = external_exports.object({
27307
- message: external_exports.string().trim().min(1),
27308
- metadata: JsonValueSchema2.optional()
27458
+ var ProjectApplySourceSchema = external_exports.object({
27459
+ kind: external_exports.literal("bundle"),
27460
+ bundle: ProjectApplyBundleRefSchema,
27461
+ entrypoint: ProjectApplyBundleEntrypointSchema
27309
27462
  });
27310
- var CreateRunAnswerCommandRequestSchema = RunAnswerCommandPayloadSchema;
27311
- var CreateRunLifecycleCommandRequestSchema = external_exports.object({
27312
- reason: external_exports.string().trim().min(1).optional()
27463
+ var ProjectApplySourceRequestSchema = external_exports.object({
27464
+ source: ProjectApplySourceSchema,
27465
+ delete: external_exports.array(ProjectDeleteResourceSchema).default([]),
27466
+ dryRun: external_exports.boolean().default(false),
27467
+ prune: external_exports.boolean().default(true)
27313
27468
  });
27314
- var CreateRunStopCommandRequestSchema = external_exports.object({
27315
- reason: external_exports.string().trim().min(1).optional(),
27316
- respawn: SingletonRespawnSchema.optional()
27469
+ var ProjectApplyRequestSchema = external_exports.object({
27470
+ delete: external_exports.array(ProjectDeleteResourceSchema).default([]),
27471
+ dryRun: external_exports.boolean().default(false),
27472
+ prune: external_exports.boolean().default(false),
27473
+ resources: external_exports.array(ProjectApplyResourceSchema).default([]),
27474
+ assets: ProjectApplyAssetsSchema.default({})
27317
27475
  });
27318
- var CreateSessionCommandRequestSchema = external_exports.discriminatedUnion("kind", [
27319
- external_exports.object({
27320
- kind: external_exports.literal("message"),
27321
- payload: CreateRunMessageCommandRequestSchema
27322
- }).strict(),
27323
- external_exports.object({
27324
- kind: external_exports.literal("answer"),
27325
- payload: CreateRunAnswerCommandRequestSchema
27326
- }).strict(),
27327
- external_exports.object({
27328
- kind: external_exports.literal("pause"),
27329
- payload: CreateRunLifecycleCommandRequestSchema
27330
- }).strict(),
27331
- external_exports.object({
27332
- kind: external_exports.literal("resume"),
27333
- payload: CreateRunLifecycleCommandRequestSchema
27334
- }).strict(),
27335
- external_exports.object({
27336
- kind: external_exports.literal("interrupt"),
27337
- payload: CreateRunLifecycleCommandRequestSchema
27338
- }).strict(),
27339
- external_exports.object({
27340
- kind: external_exports.literal("cancel"),
27341
- payload: CreateRunLifecycleCommandRequestSchema
27342
- }).strict(),
27343
- external_exports.object({
27344
- kind: external_exports.literal("stop"),
27345
- payload: CreateRunStopCommandRequestSchema
27346
- }).strict()
27347
- ]);
27348
- var RunResolutionPolicySchema = external_exports.enum([
27349
- "singletonLiveRun",
27350
- "latestLiveRun",
27351
- "latestRun"
27476
+ var ProjectApplySystemConfigSchema = external_exports.object({
27477
+ kind: external_exports.literal("system"),
27478
+ metadata: external_exports.object({
27479
+ name: external_exports.string().trim().min(1).optional()
27480
+ }).optional(),
27481
+ spec: ProjectApplyRequestSchema
27482
+ });
27483
+ var ProjectAppliedResourceSchema = external_exports.union([
27484
+ ProjectConnectionAllocationResourceSchema,
27485
+ EnvironmentResourceSchema,
27486
+ IdentityResourceSchema,
27487
+ AgentResourceSchema
27352
27488
  ]);
27353
- var AgentAddressedCommandTargetSchema = external_exports.object({
27354
- agentId: AgentIdSchema.optional(),
27355
- agentName: external_exports.string().trim().min(1).optional(),
27356
- resolutionPolicy: RunResolutionPolicySchema
27357
- }).refine((value2) => Boolean(value2.agentId) !== Boolean(value2.agentName), {
27358
- message: "Provide exactly one of agentId or agentName"
27489
+ var ProjectApplyDiagnosticSchema = external_exports.object({
27490
+ // "info" is a non-blocking advisory (e.g. template-push capability/override
27491
+ // notices); "error" remains the validation-failure severity. Coordinated
27492
+ // shape with the optional-connection-gating work; whoever lands second rebases.
27493
+ severity: external_exports.enum(["error", "info"]),
27494
+ blocking: external_exports.boolean(),
27495
+ code: external_exports.string().min(1),
27496
+ message: external_exports.string().min(1),
27497
+ action: external_exports.enum(["create", "update", "unchanged"]),
27498
+ kind: external_exports.enum([
27499
+ RESOURCE_KIND_CONNECTION,
27500
+ RESOURCE_KIND_ENVIRONMENT,
27501
+ RESOURCE_KIND_IDENTITY,
27502
+ RESOURCE_KIND_AGENT
27503
+ ]),
27504
+ name: external_exports.string().min(1)
27359
27505
  });
27360
- var SessionCommandRecordBaseSchema = external_exports.object({
27361
- id: SessionCommandIdSchema2,
27362
- sessionId: SessionIdSchema2,
27363
- sender: SessionCommandSenderSchema,
27364
- idempotencyKey: external_exports.string().min(1).nullable(),
27365
- status: SessionCommandStatusSchema,
27366
- attemptCount: external_exports.number().int().nonnegative(),
27367
- nextAttemptAt: external_exports.string().datetime().nullable(),
27368
- lastAttemptAt: external_exports.string().datetime().nullable(),
27369
- acceptedAt: external_exports.string().datetime().nullable(),
27370
- failedAt: external_exports.string().datetime().nullable(),
27371
- error: JsonValueSchema2.nullable(),
27372
- createdAt: external_exports.string().datetime(),
27373
- updatedAt: external_exports.string().datetime()
27506
+ var ProjectApplyResponsePrunedSchema = external_exports.object({
27507
+ kind: external_exports.enum(PROJECT_RESOURCE_KINDS),
27508
+ name: external_exports.string().min(1),
27509
+ uid: external_exports.string().min(1),
27510
+ heartbeatScheduleIds: external_exports.array(external_exports.string().min(1)).optional()
27374
27511
  });
27375
- var RunStartCommandPayloadSchema = external_exports.object({
27376
- kind: external_exports.literal("start")
27377
- }).strict();
27378
- var RunStartWithMessageCommandPayloadSchema = external_exports.object({
27379
- kind: external_exports.literal("startWithMessage"),
27380
- message: external_exports.string().trim().min(1)
27381
- }).strict();
27382
- var SessionPersistedCommandPayloadSchema = external_exports.union([
27383
- RunMessageCommandPayloadSchema,
27384
- RunAnswerCommandPayloadSchema,
27385
- RunLifecycleCommandPayloadSchema,
27386
- RunStopCommandPayloadSchema,
27387
- RunStartCommandPayloadSchema,
27388
- RunStartWithMessageCommandPayloadSchema
27389
- ]);
27390
- var SessionCommandRecordSchema = external_exports.discriminatedUnion("kind", [
27391
- SessionCommandRecordBaseSchema.extend({
27392
- kind: external_exports.literal("message"),
27393
- payload: RunMessageCommandPayloadSchema
27394
- }),
27395
- SessionCommandRecordBaseSchema.extend({
27396
- kind: external_exports.literal("answer"),
27397
- payload: RunAnswerCommandPayloadSchema
27398
- }),
27399
- SessionCommandRecordBaseSchema.extend({
27400
- kind: external_exports.literal("pause"),
27401
- payload: RunLifecycleCommandPayloadSchema
27402
- }),
27403
- SessionCommandRecordBaseSchema.extend({
27404
- kind: external_exports.literal("resume"),
27405
- payload: RunLifecycleCommandPayloadSchema
27406
- }),
27407
- SessionCommandRecordBaseSchema.extend({
27408
- kind: external_exports.literal("interrupt"),
27409
- payload: RunLifecycleCommandPayloadSchema
27410
- }),
27411
- SessionCommandRecordBaseSchema.extend({
27412
- kind: external_exports.literal("cancel"),
27413
- payload: RunLifecycleCommandPayloadSchema
27414
- }),
27415
- SessionCommandRecordBaseSchema.extend({
27416
- kind: external_exports.literal("stop"),
27417
- payload: RunStopCommandPayloadSchema
27418
- }),
27419
- SessionCommandRecordBaseSchema.extend({
27420
- kind: external_exports.literal("start"),
27421
- payload: RunStartCommandPayloadSchema
27422
- }),
27423
- SessionCommandRecordBaseSchema.extend({
27424
- kind: external_exports.literal("startWithMessage"),
27425
- payload: RunStartWithMessageCommandPayloadSchema
27426
- })
27512
+ var ProjectApplyPlanDiffSchema = external_exports.object({
27513
+ action: external_exports.enum(["add", "remove", "change"]),
27514
+ path: external_exports.string().min(1)
27515
+ });
27516
+ var ProjectApplyResponseSchema = external_exports.object({
27517
+ dryRun: external_exports.boolean().default(false),
27518
+ resources: external_exports.array(ProjectAppliedResourceSchema),
27519
+ triggers: external_exports.array(ApplyTriggerReceiptSchema).default([]),
27520
+ diagnostics: external_exports.array(ProjectApplyDiagnosticSchema).default([]),
27521
+ plan: external_exports.array(
27522
+ external_exports.object({
27523
+ action: external_exports.enum(["create", "update", "unchanged", "archive"]),
27524
+ kind: external_exports.enum(PROJECT_RESOURCE_KINDS),
27525
+ name: external_exports.string().min(1),
27526
+ uid: external_exports.string().min(1).optional(),
27527
+ diff: external_exports.array(ProjectApplyPlanDiffSchema).optional(),
27528
+ diffOmitted: external_exports.number().int().positive().optional()
27529
+ })
27530
+ ).default([]),
27531
+ pruned: external_exports.array(ProjectApplyResponsePrunedSchema).default([])
27532
+ });
27533
+ var ProjectResourceApplyResultSchema = ProjectApplyResponseSchema.extend({
27534
+ heartbeatSchedules: external_exports.array(
27535
+ external_exports.object({
27536
+ scheduleId: external_exports.string().trim().min(1),
27537
+ cron: external_exports.string().trim().min(1),
27538
+ timezone: external_exports.string().trim().min(1),
27539
+ input: HeartbeatTickWorkflowInputSchema
27540
+ })
27541
+ ).default([]),
27542
+ deletedHeartbeatScheduleIds: external_exports.array(external_exports.string().trim().min(1)).default([])
27543
+ });
27544
+ var ProjectResourceApplyAuditActionSchema = external_exports.enum([
27545
+ "project_resources.apply",
27546
+ "github_sync.apply"
27427
27547
  ]);
27428
- var SessionDispatchMessageCommandPayloadSchema = external_exports.object({
27429
- kind: external_exports.literal("message"),
27430
- message: external_exports.string().trim().min(1)
27431
- }).strict();
27432
- var SessionDispatchAnswerCommandPayloadSchema = external_exports.object({
27433
- kind: external_exports.literal("answer"),
27434
- toolCallId: external_exports.string().trim().min(1),
27435
- answers: external_exports.record(external_exports.string(), external_exports.string()),
27436
- response: external_exports.string().trim().min(1).optional()
27437
- }).strict();
27438
- var SessionDispatchStopCommandPayloadSchema = external_exports.object({
27439
- kind: external_exports.literal("stop"),
27440
- reason: external_exports.string().trim().min(1).optional()
27548
+ var ProjectResourceApplyOperationIdSchema = external_exports.string().trim().min(1).max(512);
27549
+ var ProjectResourceApplyTriggerArtifactSchema = external_exports.object({
27550
+ type: external_exports.string().trim().min(1),
27551
+ externalId: external_exports.string().trim().min(1),
27552
+ payload: JsonValueSchema2.optional()
27441
27553
  }).strict();
27442
- var SessionDispatchCommandPayloadSchema = external_exports.discriminatedUnion(
27443
- "kind",
27554
+ var ProjectResourceApplyWorkflowErrorSchema = external_exports.object({
27555
+ name: external_exports.string().trim().min(1),
27556
+ message: external_exports.string().trim().min(1)
27557
+ });
27558
+ var ProjectResourceApplyWorkflowInputSchema = external_exports.object({
27559
+ operationId: ProjectResourceApplyOperationIdSchema,
27560
+ request: ProjectApplyRequestSchema.optional(),
27561
+ sourceRequest: ProjectApplySourceRequestSchema.optional(),
27562
+ organizationId: OrganizationIdSchema,
27563
+ projectId: ProjectIdSchema.nullable().optional(),
27564
+ actor: AuthActorSchema,
27565
+ auditAction: ProjectResourceApplyAuditActionSchema,
27566
+ triggerArtifact: ProjectResourceApplyTriggerArtifactSchema.optional()
27567
+ }).superRefine((input, context) => {
27568
+ if ((input.request ? 1 : 0) + (input.sourceRequest ? 1 : 0) !== 1) {
27569
+ context.addIssue({
27570
+ code: "custom",
27571
+ path: ["request"],
27572
+ message: "exactly one of request or sourceRequest is required"
27573
+ });
27574
+ }
27575
+ });
27576
+ var ProjectResourceApplyWorkflowResultSchema = external_exports.discriminatedUnion(
27577
+ "status",
27444
27578
  [
27445
- RunStartCommandPayloadSchema,
27446
- RunStartWithMessageCommandPayloadSchema,
27447
- SessionDispatchMessageCommandPayloadSchema,
27448
- SessionDispatchAnswerCommandPayloadSchema,
27449
- SessionDispatchStopCommandPayloadSchema
27579
+ external_exports.object({
27580
+ status: external_exports.literal("applied"),
27581
+ result: ProjectResourceApplyResultSchema
27582
+ }),
27583
+ external_exports.object({
27584
+ status: external_exports.literal("failed"),
27585
+ error: ProjectResourceApplyWorkflowErrorSchema
27586
+ })
27450
27587
  ]
27451
27588
  );
27452
- var SessionDispatchCommandRecordBaseSchema = external_exports.object({
27453
- id: SessionCommandIdSchema2,
27454
- sessionId: SessionIdSchema2,
27455
- sender: SessionCommandSenderSchema,
27456
- idempotencyKey: external_exports.string().min(1).nullable(),
27457
- status: SessionDispatchCommandStatusSchema,
27458
- attemptCount: external_exports.number().int().nonnegative(),
27459
- nextAttemptAt: external_exports.string().datetime().nullable(),
27460
- lastAttemptAt: external_exports.string().datetime().nullable(),
27461
- acceptedAt: external_exports.string().datetime().nullable(),
27462
- failedAt: external_exports.string().datetime().nullable(),
27463
- error: JsonValueSchema2.nullable(),
27464
- createdAt: external_exports.string().datetime(),
27465
- updatedAt: external_exports.string().datetime()
27466
- });
27467
- var SessionDispatchCommandRecordSchema = external_exports.discriminatedUnion("kind", [
27468
- SessionDispatchCommandRecordBaseSchema.extend({
27469
- kind: external_exports.literal("start"),
27470
- payload: RunStartCommandPayloadSchema
27471
- }),
27472
- SessionDispatchCommandRecordBaseSchema.extend({
27473
- kind: external_exports.literal("startWithMessage"),
27474
- payload: RunStartWithMessageCommandPayloadSchema
27475
- }),
27476
- SessionDispatchCommandRecordBaseSchema.extend({
27477
- kind: external_exports.literal("message"),
27478
- payload: SessionDispatchMessageCommandPayloadSchema
27479
- }),
27480
- SessionDispatchCommandRecordBaseSchema.extend({
27481
- kind: external_exports.literal("answer"),
27482
- payload: SessionDispatchAnswerCommandPayloadSchema
27483
- }),
27484
- SessionDispatchCommandRecordBaseSchema.extend({
27485
- kind: external_exports.literal("stop"),
27486
- payload: SessionDispatchStopCommandPayloadSchema
27487
- })
27488
- ]);
27489
27589
 
27490
- // ../../packages/schemas/src/sessions.ts
27491
- var SESSION_STATUSES = [
27492
- "queued",
27493
- "running",
27494
- "awaiting",
27495
- "failed",
27496
- "stopped"
27590
+ // ../../packages/schemas/src/session-diagnostics.ts
27591
+ var SESSION_DIAGNOSTIC_REALTIME_EVENT = "session.diagnostic";
27592
+ var SESSION_DIAGNOSTIC_LEVELS = [
27593
+ "debug",
27594
+ "info",
27595
+ "warn",
27596
+ "error"
27497
27597
  ];
27498
- var SESSION_RUNTIME_PHASES = [
27499
- "building_image",
27500
- "booting_container",
27501
- "preparing_environment",
27502
- "starting_runtime",
27503
- "running"
27598
+ var SESSION_DIAGNOSTIC_SOURCES = [
27599
+ "web",
27600
+ "worker",
27601
+ "activity",
27602
+ "bridge",
27603
+ "runtime"
27504
27604
  ];
27505
- var SESSION_DISPLAY_TITLE_MAX_LENGTH = 64;
27506
- var SESSION_MESSAGE_ROLES = ["system", "user", "assistant"];
27507
- var SESSION_MESSAGE_STATUSES = [
27508
- "in_progress",
27509
- "completed",
27510
- "failed"
27605
+ var SESSION_DIAGNOSTIC_PHASES = [
27606
+ "dispatch",
27607
+ "environment",
27608
+ "bridge",
27609
+ "delivery",
27610
+ "command",
27611
+ "runtime"
27511
27612
  ];
27512
- var SessionStatusSchema = external_exports.enum(SESSION_STATUSES);
27513
- var SessionRuntimePhaseSchema = external_exports.enum(SESSION_RUNTIME_PHASES);
27514
- var SessionMessageRoleSchema = external_exports.enum(SESSION_MESSAGE_ROLES);
27515
- var SessionMessageStatusSchema = external_exports.enum(SESSION_MESSAGE_STATUSES);
27516
- var RunDisplayTitleSchema = external_exports.string().trim().max(SESSION_DISPLAY_TITLE_MAX_LENGTH);
27517
- var AmbientStatusSchema = external_exports.string().trim().min(1);
27518
- var SESSION_CHECK_STATUSES = [
27519
- "queued",
27520
- "in_progress",
27521
- "completed"
27613
+ var SESSION_DIAGNOSTIC_STATUSES = [
27614
+ "started",
27615
+ "succeeded",
27616
+ "retrying",
27617
+ "failed",
27618
+ "skipped"
27522
27619
  ];
27523
- var SESSION_CHECK_CONCLUSIONS = ["success", "failure"];
27524
- var SESSION_CHECK_TIMEOUT_PHASES = ["begin", "complete"];
27525
- var SessionCheckStatusSchema = external_exports.enum(SESSION_CHECK_STATUSES);
27526
- var SessionCheckConclusionSchema = external_exports.enum(SESSION_CHECK_CONCLUSIONS);
27527
- var SessionCheckTimeoutPhaseSchema = external_exports.enum(
27528
- SESSION_CHECK_TIMEOUT_PHASES
27620
+ var SessionDiagnosticLevelSchema = external_exports.enum(SESSION_DIAGNOSTIC_LEVELS);
27621
+ var SessionDiagnosticSourceSchema = external_exports.enum(SESSION_DIAGNOSTIC_SOURCES);
27622
+ var SessionDiagnosticPhaseSchema = external_exports.enum(SESSION_DIAGNOSTIC_PHASES);
27623
+ var SessionDiagnosticStatusSchema = external_exports.enum(
27624
+ SESSION_DIAGNOSTIC_STATUSES
27529
27625
  );
27530
- var ManualSessionRequestSchema = external_exports.object({
27531
- message: external_exports.string().trim().min(1).max(2e4).optional(),
27532
- interactive: external_exports.boolean().optional(),
27533
- /**
27534
- * Deliver the agent's configured `initialPrompt` as the session's kickoff
27535
- * message so the agent opens the conversation. Agents without an
27536
- * `initialPrompt` fall back to the default manual say-hello message, so a
27537
- * kickoff always pings the agent. The kickoff is delivered through the
27538
- * session's one idempotent start command and never renders as a user chat
27539
- * bubble; the agent's greeting is the first visible content.
27540
- */
27541
- kickoff: external_exports.boolean().optional()
27542
- });
27543
- var SessionArchiveRequestSchema = external_exports.object({
27544
- archived: external_exports.boolean()
27545
- });
27546
- var SessionsArchiveRequestSchema = external_exports.object({
27547
- session_ids: external_exports.array(SessionIdSchema2).min(1).max(100),
27548
- archived: external_exports.boolean()
27549
- });
27550
- var SessionRecordSchema = external_exports.object({
27551
- id: SessionIdSchema2,
27552
- organizationId: external_exports.string().trim().min(1),
27553
- projectId: external_exports.string().trim().min(1).nullable(),
27554
- agentId: AgentIdSchema,
27555
- runtimeId: RuntimeIdSchema2.nullable(),
27556
- status: SessionStatusSchema,
27557
- runtimePhase: SessionRuntimePhaseSchema.nullable(),
27558
- idempotencyKey: external_exports.string().min(1).nullable(),
27559
- correlationKey: external_exports.string().nullable(),
27560
- workflowId: external_exports.string().min(1),
27561
- displayTitle: RunDisplayTitleSchema,
27562
- ambientStatus: AmbientStatusSchema.nullable(),
27563
- ambientStatusUpdatedAt: external_exports.string().datetime().nullable(),
27564
- starterActor: AuthActorSchema.nullable(),
27565
- snapshot: AgentResourceSchema,
27566
- environmentSnapshot: EnvironmentResourceSchema,
27567
- toolSnapshots: external_exports.array(
27568
- external_exports.object({
27569
- source: external_exports.literal("inline"),
27570
- alias: ToolAliasSchema,
27571
- spec: RemoteMcpToolSchema.or(ConnectionBackedToolSchema).or(LocalToolSchema).or(GithubToolSchema)
27572
- })
27573
- ),
27574
- input: JsonValueSchema2,
27575
- createdAt: external_exports.string().datetime(),
27576
- updatedAt: external_exports.string().datetime(),
27577
- lastActivityAt: external_exports.string().datetime(),
27578
- startedAt: external_exports.string().datetime().nullable(),
27579
- finishedAt: external_exports.string().datetime().nullable(),
27580
- archivedAt: external_exports.string().datetime().nullable(),
27581
- error: JsonValueSchema2.nullable()
27582
- });
27583
- var SessionMessageOriginSchema = external_exports.object({
27584
- eventKey: external_exports.string().trim().min(1),
27585
- provider: external_exports.string().trim().min(1).nullable().default(null)
27586
- });
27587
- var SessionUiMessageRecordSchema = external_exports.object({
27588
- id: external_exports.string().trim().min(1),
27626
+ var SessionDiagnosticEventSchema = external_exports.object({
27627
+ type: external_exports.literal(SESSION_DIAGNOSTIC_REALTIME_EVENT),
27628
+ id: external_exports.string().min(1),
27589
27629
  sessionId: SessionIdSchema2,
27590
- sequence: external_exports.number().int().nonnegative(),
27591
- messageId: external_exports.string().trim().min(1),
27592
- commandId: external_exports.string().trim().min(1).nullable(),
27593
- turnId: external_exports.string().trim().min(1).nullable(),
27594
- role: SessionMessageRoleSchema,
27595
- status: SessionMessageStatusSchema,
27596
- message: JsonValueSchema2,
27597
- // The sender of the command that carried this message into the session
27598
- // (operator chat send, trigger delivery, or another agent's session), joined
27599
- // from session_commands at read time. Null for messages that did not arrive
27600
- // through a command, such as assistant output.
27601
- sender: SessionCommandSenderSchema.nullable().default(null),
27602
- // For trigger deliveries, the routed event behind the carrying command:
27603
- // its event key plus the originating provider connection when known
27604
- // (e.g. "slack" for a subscribed-thread reply, "github" for a check event).
27605
- origin: SessionMessageOriginSchema.nullable().default(null),
27606
- streamCursor: external_exports.number().int().positive().nullable().default(null),
27607
- createdAt: external_exports.string().datetime(),
27608
- updatedAt: external_exports.string().datetime(),
27609
- completedAt: external_exports.string().datetime().nullable()
27610
- });
27611
- var SessionListItemAgentSchema = external_exports.object({
27612
- name: external_exports.string(),
27613
- displayName: external_exports.string().nullable(),
27614
- username: external_exports.string().nullable(),
27615
- avatarSha256: external_exports.string().nullable()
27616
- });
27617
- var SessionListItemSchema = external_exports.object({
27618
- id: SessionIdSchema2,
27619
- agentId: AgentIdSchema,
27620
- status: SessionStatusSchema,
27621
- runtimePhase: SessionRuntimePhaseSchema.nullable(),
27622
- displayTitle: RunDisplayTitleSchema,
27623
- summary: external_exports.string(),
27624
- agent: SessionListItemAgentSchema,
27625
- createdAt: external_exports.string().datetime(),
27626
- updatedAt: external_exports.string().datetime(),
27627
- archivedAt: external_exports.string().datetime().nullable(),
27628
- lastActivityAt: external_exports.string().datetime()
27629
- });
27630
- var SessionListResponseSchema = external_exports.object({
27631
- sessions: external_exports.array(SessionListItemSchema),
27632
- /**
27633
- * Opaque keyset cursor for the next page, or `null` when the list is
27634
- * exhausted. Replay it on the next request to append the following page; it is
27635
- * minted for a specific sort and rejected against a different one.
27636
- */
27637
- nextCursor: external_exports.string().nullable(),
27638
- hasMore: external_exports.boolean()
27639
- });
27640
- var SessionsArchiveResponseSchema = external_exports.object({
27641
- archived: external_exports.boolean(),
27642
- sessions: external_exports.array(SessionRecordSchema)
27630
+ level: SessionDiagnosticLevelSchema,
27631
+ source: SessionDiagnosticSourceSchema,
27632
+ phase: SessionDiagnosticPhaseSchema,
27633
+ step: external_exports.string().trim().min(1),
27634
+ status: SessionDiagnosticStatusSchema,
27635
+ message: external_exports.string().trim().min(1),
27636
+ commandId: SessionCommandIdSchema2.optional(),
27637
+ runtimeId: RuntimeIdSchema2.optional(),
27638
+ bridgeLeaseId: RuntimeBridgeLeaseIdSchema2.optional(),
27639
+ attempt: external_exports.number().int().nonnegative().optional(),
27640
+ durationMs: external_exports.number().nonnegative().optional(),
27641
+ details: external_exports.record(external_exports.string(), JsonValueSchema2).optional(),
27642
+ createdAt: external_exports.string().datetime()
27643
27643
  });
27644
27644
 
27645
27645
  // ../../packages/schemas/src/session-introspection.ts