@autohq/cli 0.1.187 → 0.1.195
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agent-bridge.js +216 -87
- package/dist/index.js +464 -193
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -16491,12 +16491,13 @@ var init_connections = __esm({
|
|
|
16491
16491
|
});
|
|
16492
16492
|
|
|
16493
16493
|
// ../../packages/schemas/src/github-sync.ts
|
|
16494
|
-
var GITHUB_SYNC_AUTO_PATH, GithubSyncRepositoryFullNameSchema, GithubSyncProductionBranchSchema, GithubSyncBindingSchema, GithubSyncBindingCreateRequestSchema, GithubSyncBindingCreateResponseSchema, GithubSyncBindingListResponseSchema, GithubSyncWorkflowInputSchema, GithubSyncWorkflowResultSchema;
|
|
16494
|
+
var GITHUB_SYNC_AUTO_PATH, GithubSyncRepositoryFullNameSchema, GithubSyncProductionBranchSchema, GithubSyncBindingSchema, GithubSyncBindingCreateRequestSchema, GithubSyncBindingCreateResponseSchema, GithubSyncBindingListResponseSchema, GithubSyncTriggerArtifactSchema, GithubSyncWorkflowInputSchema, GithubSyncWorkflowResultSchema;
|
|
16495
16495
|
var init_github_sync = __esm({
|
|
16496
16496
|
"../../packages/schemas/src/github-sync.ts"() {
|
|
16497
16497
|
"use strict";
|
|
16498
16498
|
init_zod();
|
|
16499
16499
|
init_ids();
|
|
16500
|
+
init_primitives();
|
|
16500
16501
|
GITHUB_SYNC_AUTO_PATH = ".auto";
|
|
16501
16502
|
GithubSyncRepositoryFullNameSchema = external_exports.string().trim().min(1).regex(/^[^/\s]+\/[^/\s]+$/, {
|
|
16502
16503
|
message: "repository must be in owner/name form"
|
|
@@ -16533,6 +16534,11 @@ var init_github_sync = __esm({
|
|
|
16533
16534
|
GithubSyncBindingListResponseSchema = external_exports.object({
|
|
16534
16535
|
bindings: external_exports.array(GithubSyncBindingSchema)
|
|
16535
16536
|
});
|
|
16537
|
+
GithubSyncTriggerArtifactSchema = external_exports.object({
|
|
16538
|
+
type: external_exports.string().trim().min(1),
|
|
16539
|
+
externalId: external_exports.string().trim().min(1),
|
|
16540
|
+
payload: JsonValueSchema.optional()
|
|
16541
|
+
}).strict();
|
|
16536
16542
|
GithubSyncWorkflowInputSchema = external_exports.discriminatedUnion("kind", [
|
|
16537
16543
|
external_exports.object({
|
|
16538
16544
|
kind: external_exports.literal("pull_request"),
|
|
@@ -16548,7 +16554,8 @@ var init_github_sync = __esm({
|
|
|
16548
16554
|
pullRequestNumber: external_exports.number().int().positive(),
|
|
16549
16555
|
headSha: external_exports.string().trim().min(1),
|
|
16550
16556
|
baseSha: external_exports.string().trim().min(1).optional(),
|
|
16551
|
-
baseRef: GithubSyncProductionBranchSchema
|
|
16557
|
+
baseRef: GithubSyncProductionBranchSchema,
|
|
16558
|
+
triggerArtifact: GithubSyncTriggerArtifactSchema.optional()
|
|
16552
16559
|
}),
|
|
16553
16560
|
external_exports.object({
|
|
16554
16561
|
kind: external_exports.literal("push"),
|
|
@@ -16564,7 +16571,8 @@ var init_github_sync = __esm({
|
|
|
16564
16571
|
ref: external_exports.string().trim().min(1),
|
|
16565
16572
|
branch: GithubSyncProductionBranchSchema,
|
|
16566
16573
|
before: external_exports.string().trim().min(1).optional(),
|
|
16567
|
-
after: external_exports.string().trim().min(1)
|
|
16574
|
+
after: external_exports.string().trim().min(1),
|
|
16575
|
+
triggerArtifact: GithubSyncTriggerArtifactSchema.optional()
|
|
16568
16576
|
})
|
|
16569
16577
|
]);
|
|
16570
16578
|
GithubSyncWorkflowResultSchema = external_exports.discriminatedUnion("status", [
|
|
@@ -17147,6 +17155,84 @@ var init_trigger_router = __esm({
|
|
|
17147
17155
|
});
|
|
17148
17156
|
|
|
17149
17157
|
// ../../packages/schemas/src/agents.ts
|
|
17158
|
+
function refineNoPayloadPrefixedTemplateTokens(value, context) {
|
|
17159
|
+
if (value === void 0) {
|
|
17160
|
+
return;
|
|
17161
|
+
}
|
|
17162
|
+
const offending = new Set(
|
|
17163
|
+
[...value.matchAll(PAYLOAD_PREFIXED_TEMPLATE_TOKEN)].map(
|
|
17164
|
+
(match) => match[0]
|
|
17165
|
+
)
|
|
17166
|
+
);
|
|
17167
|
+
if (offending.size > 0) {
|
|
17168
|
+
context.addIssue({
|
|
17169
|
+
code: external_exports.ZodIssueCode.custom,
|
|
17170
|
+
message: `Template renders against the event payload; drop the "payload." prefix (use "{{github.\u2026}}", not "{{payload.github.\u2026}}"). Offending tokens: ${[...offending].join(", ")}`
|
|
17171
|
+
});
|
|
17172
|
+
}
|
|
17173
|
+
}
|
|
17174
|
+
function templateField(guard) {
|
|
17175
|
+
const field = external_exports.string().trim().min(1).max(2e4).optional();
|
|
17176
|
+
return guard === "authoring" ? field.superRefine(refineNoPayloadPrefixedTemplateTokens) : field;
|
|
17177
|
+
}
|
|
17178
|
+
function triggerSharedFields(guard) {
|
|
17179
|
+
return {
|
|
17180
|
+
message: templateField(guard),
|
|
17181
|
+
checks: TriggerChecksField,
|
|
17182
|
+
routing: TriggerRoutingSchema
|
|
17183
|
+
};
|
|
17184
|
+
}
|
|
17185
|
+
function triggerBaseSchema(guard) {
|
|
17186
|
+
return external_exports.object({
|
|
17187
|
+
event: TriggerEventSchema,
|
|
17188
|
+
...triggerSharedFields(guard),
|
|
17189
|
+
...TriggerEventSourceFields
|
|
17190
|
+
}).strict().superRefine((trigger, context) => {
|
|
17191
|
+
validateTriggerChecks(trigger, context, [trigger.event]);
|
|
17192
|
+
});
|
|
17193
|
+
}
|
|
17194
|
+
function triggerDefinitionBaseSchema(guard) {
|
|
17195
|
+
return external_exports.object({
|
|
17196
|
+
event: TriggerEventSchema.optional(),
|
|
17197
|
+
events: TriggerEventsSchema.optional(),
|
|
17198
|
+
...triggerSharedFields(guard),
|
|
17199
|
+
...TriggerEventSourceFields
|
|
17200
|
+
}).strict().superRefine((trigger, context) => {
|
|
17201
|
+
if (trigger.event && trigger.events) {
|
|
17202
|
+
context.addIssue({
|
|
17203
|
+
code: external_exports.ZodIssueCode.custom,
|
|
17204
|
+
path: ["events"],
|
|
17205
|
+
message: "Use either event or events, not both"
|
|
17206
|
+
});
|
|
17207
|
+
}
|
|
17208
|
+
if (!trigger.event && !trigger.events) {
|
|
17209
|
+
context.addIssue({
|
|
17210
|
+
code: external_exports.ZodIssueCode.custom,
|
|
17211
|
+
path: ["event"],
|
|
17212
|
+
message: "Trigger requires event or events"
|
|
17213
|
+
});
|
|
17214
|
+
}
|
|
17215
|
+
validateTriggerChecks(
|
|
17216
|
+
trigger,
|
|
17217
|
+
context,
|
|
17218
|
+
trigger.event ? [trigger.event] : trigger.events ?? []
|
|
17219
|
+
);
|
|
17220
|
+
});
|
|
17221
|
+
}
|
|
17222
|
+
function heartbeatTriggerBaseSchema(guard) {
|
|
17223
|
+
return external_exports.object({
|
|
17224
|
+
kind: external_exports.literal("heartbeat"),
|
|
17225
|
+
event: external_exports.never().optional(),
|
|
17226
|
+
connection: external_exports.never().optional(),
|
|
17227
|
+
endpoint: external_exports.never().optional(),
|
|
17228
|
+
auth: external_exports.never().optional(),
|
|
17229
|
+
cron: external_exports.string().trim().min(1).max(512),
|
|
17230
|
+
timezone: external_exports.string().trim().min(1).max(128).default("UTC"),
|
|
17231
|
+
...triggerSharedFields(guard)
|
|
17232
|
+
}).strict().superRefine((trigger, context) => {
|
|
17233
|
+
validateTriggerChecks(trigger, context, ["heartbeat"]);
|
|
17234
|
+
});
|
|
17235
|
+
}
|
|
17150
17236
|
function avatarAssetDimensions(bytes) {
|
|
17151
17237
|
return pngDimensions(bytes) ?? jpegDimensions(bytes);
|
|
17152
17238
|
}
|
|
@@ -17363,7 +17449,7 @@ function isChatMessageEvent(trigger) {
|
|
|
17363
17449
|
function hasFilterValue(trigger, path2, expected) {
|
|
17364
17450
|
return trigger.where?.[path2] === expected;
|
|
17365
17451
|
}
|
|
17366
|
-
var RESOURCE_KIND_AGENT, AGENT_HARNESSES, TriggerFilterScalarSchema, TriggerFilterPathSchema, TriggerFilterClauseSchema, TriggerFilterSchema, TriggerCheckTimeoutSchema, TriggerEventSchema, TriggerEventsSchema,
|
|
17452
|
+
var RESOURCE_KIND_AGENT, AGENT_HARNESSES, TriggerFilterScalarSchema, TriggerFilterPathSchema, TriggerFilterClauseSchema, TriggerFilterSchema, TriggerCheckTimeoutSchema, TriggerEventSchema, TriggerEventsSchema, PAYLOAD_PREFIXED_TEMPLATE_TOKEN, TriggerChecksField, TriggerEventSourceFields, TriggerSchema, ApplyTriggerSchema, HeartbeatTriggerSchema, ApplyHeartbeatTriggerSchema, TriggerDefinitionSchema, ApplyTriggerDefinitionSchema, TriggersSchema, ApplyTriggersSchema, AVATAR_ASSET_EXTENSIONS, MAX_AVATAR_ASSET_BYTES, MIN_AVATAR_ASSET_DIMENSION_PX, MAX_AVATAR_ASSET_DIMENSION_PX, PNG_SIGNATURE, AGENT_IDENTITY_DESCRIPTION_MAX_LENGTH, SHA256_HEX_PATTERN, AgentIdentitySchema, AgentSpecFieldsSchema, AgentSpecSchema, AgentApplySpecSchema, AgentStatusSchema, AgentResourceSchema, AgentApplyRequestSchema, ApplyTriggerReceiptSchema, AgentApplyResponseSchema, AGENT_TELEGRAM_IDENTITY_STATUSES, AgentTelegramIdentityStatusSchema, AgentPresenceIdentitySchema, AgentPresenceResponseSchema, AgentPresenceConnectRequestSchema, AgentPresenceConnectPendingSchema, AgentPresenceConnectResponseSchema, AgentPresenceIconRequestSchema, AgentPresenceIconResponseSchema, AgentPresenceCompleteResponseSchema;
|
|
17367
17453
|
var init_agents = __esm({
|
|
17368
17454
|
"../../packages/schemas/src/agents.ts"() {
|
|
17369
17455
|
"use strict";
|
|
@@ -17427,29 +17513,26 @@ var init_agents = __esm({
|
|
|
17427
17513
|
seen.add(event);
|
|
17428
17514
|
}
|
|
17429
17515
|
});
|
|
17430
|
-
|
|
17431
|
-
|
|
17432
|
-
|
|
17433
|
-
|
|
17434
|
-
|
|
17435
|
-
|
|
17436
|
-
|
|
17437
|
-
|
|
17438
|
-
|
|
17439
|
-
|
|
17440
|
-
|
|
17441
|
-
|
|
17442
|
-
|
|
17443
|
-
|
|
17444
|
-
|
|
17445
|
-
|
|
17446
|
-
|
|
17447
|
-
|
|
17448
|
-
|
|
17449
|
-
|
|
17450
|
-
).optional(),
|
|
17451
|
-
routing: TriggerRoutingSchema
|
|
17452
|
-
};
|
|
17516
|
+
PAYLOAD_PREFIXED_TEMPLATE_TOKEN = /\{\{\s*(payload(?:\.[A-Za-z0-9_.-]+)?)\s*\}\}/g;
|
|
17517
|
+
TriggerChecksField = external_exports.array(
|
|
17518
|
+
external_exports.object({
|
|
17519
|
+
name: ResourceNameSchema,
|
|
17520
|
+
displayName: external_exports.string().trim().min(1).max(256),
|
|
17521
|
+
description: external_exports.string().trim().min(1).max(65535),
|
|
17522
|
+
instructions: external_exports.string().trim().min(1).max(2e4).optional(),
|
|
17523
|
+
timeout: TriggerCheckTimeoutSchema.optional(),
|
|
17524
|
+
beginTimeout: TriggerCheckTimeoutSchema.optional(),
|
|
17525
|
+
completeTimeout: TriggerCheckTimeoutSchema.optional()
|
|
17526
|
+
}).strict().superRefine((check2, context) => {
|
|
17527
|
+
if (check2.timeout && check2.beginTimeout) {
|
|
17528
|
+
context.addIssue({
|
|
17529
|
+
code: external_exports.ZodIssueCode.custom,
|
|
17530
|
+
path: ["beginTimeout"],
|
|
17531
|
+
message: "Use either timeout or beginTimeout for the creation-to-begin timeout, not both"
|
|
17532
|
+
});
|
|
17533
|
+
}
|
|
17534
|
+
})
|
|
17535
|
+
).optional();
|
|
17453
17536
|
TriggerEventSourceFields = {
|
|
17454
17537
|
connection: ConnectionNameSchema.optional(),
|
|
17455
17538
|
endpoint: external_exports.string().trim().min(1).optional(),
|
|
@@ -17467,67 +17550,28 @@ var init_agents = __esm({
|
|
|
17467
17550
|
})
|
|
17468
17551
|
]).optional()
|
|
17469
17552
|
};
|
|
17470
|
-
|
|
17471
|
-
event: TriggerEventSchema,
|
|
17472
|
-
...TriggerSharedFields,
|
|
17473
|
-
...TriggerEventSourceFields
|
|
17474
|
-
}).strict().superRefine((trigger, context) => {
|
|
17475
|
-
validateTriggerChecks(trigger, context, [trigger.event]);
|
|
17476
|
-
});
|
|
17477
|
-
TriggerDefinitionBaseSchema = external_exports.object({
|
|
17478
|
-
event: TriggerEventSchema.optional(),
|
|
17479
|
-
events: TriggerEventsSchema.optional(),
|
|
17480
|
-
...TriggerSharedFields,
|
|
17481
|
-
...TriggerEventSourceFields
|
|
17482
|
-
}).strict().superRefine((trigger, context) => {
|
|
17483
|
-
if (trigger.event && trigger.events) {
|
|
17484
|
-
context.addIssue({
|
|
17485
|
-
code: external_exports.ZodIssueCode.custom,
|
|
17486
|
-
path: ["events"],
|
|
17487
|
-
message: "Use either event or events, not both"
|
|
17488
|
-
});
|
|
17489
|
-
}
|
|
17490
|
-
if (!trigger.event && !trigger.events) {
|
|
17491
|
-
context.addIssue({
|
|
17492
|
-
code: external_exports.ZodIssueCode.custom,
|
|
17493
|
-
path: ["event"],
|
|
17494
|
-
message: "Trigger requires event or events"
|
|
17495
|
-
});
|
|
17496
|
-
}
|
|
17497
|
-
validateTriggerChecks(
|
|
17498
|
-
trigger,
|
|
17499
|
-
context,
|
|
17500
|
-
trigger.event ? [trigger.event] : trigger.events ?? []
|
|
17501
|
-
);
|
|
17502
|
-
});
|
|
17503
|
-
TriggerSchema = TriggerBaseSchema.extend({
|
|
17553
|
+
TriggerSchema = triggerBaseSchema("stored").extend({
|
|
17504
17554
|
where: external_exports.record(external_exports.string(), JsonValueSchema).default({})
|
|
17505
17555
|
});
|
|
17506
|
-
ApplyTriggerSchema =
|
|
17556
|
+
ApplyTriggerSchema = triggerBaseSchema("authoring").extend({
|
|
17507
17557
|
where: TriggerFilterSchema
|
|
17508
17558
|
});
|
|
17509
|
-
|
|
17510
|
-
|
|
17511
|
-
|
|
17512
|
-
connection: external_exports.never().optional(),
|
|
17513
|
-
endpoint: external_exports.never().optional(),
|
|
17514
|
-
auth: external_exports.never().optional(),
|
|
17515
|
-
cron: external_exports.string().trim().min(1).max(512),
|
|
17516
|
-
timezone: external_exports.string().trim().min(1).max(128).default("UTC"),
|
|
17517
|
-
...TriggerSharedFields
|
|
17518
|
-
}).strict().superRefine((trigger, context) => {
|
|
17519
|
-
validateTriggerChecks(trigger, context, ["heartbeat"]);
|
|
17520
|
-
});
|
|
17521
|
-
HeartbeatTriggerSchema = HeartbeatTriggerBaseSchema.extend({
|
|
17559
|
+
HeartbeatTriggerSchema = heartbeatTriggerBaseSchema(
|
|
17560
|
+
"stored"
|
|
17561
|
+
).extend({
|
|
17522
17562
|
where: external_exports.record(external_exports.string(), JsonValueSchema).default({})
|
|
17523
17563
|
});
|
|
17524
|
-
ApplyHeartbeatTriggerSchema =
|
|
17564
|
+
ApplyHeartbeatTriggerSchema = heartbeatTriggerBaseSchema(
|
|
17565
|
+
"authoring"
|
|
17566
|
+
).extend({
|
|
17525
17567
|
where: TriggerFilterSchema
|
|
17526
17568
|
});
|
|
17527
|
-
TriggerDefinitionSchema =
|
|
17569
|
+
TriggerDefinitionSchema = triggerDefinitionBaseSchema("stored").extend({
|
|
17528
17570
|
where: external_exports.record(external_exports.string(), JsonValueSchema).default({})
|
|
17529
17571
|
});
|
|
17530
|
-
ApplyTriggerDefinitionSchema =
|
|
17572
|
+
ApplyTriggerDefinitionSchema = triggerDefinitionBaseSchema(
|
|
17573
|
+
"authoring"
|
|
17574
|
+
).extend({
|
|
17531
17575
|
where: TriggerFilterSchema
|
|
17532
17576
|
});
|
|
17533
17577
|
TriggersSchema = external_exports.array(external_exports.union([TriggerDefinitionSchema, HeartbeatTriggerSchema])).transform(expandTriggerDefinitions).superRefine(validateAttributedRunsTriggerPairing);
|
|
@@ -17565,7 +17609,7 @@ var init_agents = __esm({
|
|
|
17565
17609
|
systemPrompt: external_exports.string().trim().min(1).max(1e5).optional(),
|
|
17566
17610
|
environment: ResourceNameSchema.optional(),
|
|
17567
17611
|
identity: external_exports.union([ResourceNameSchema, AgentIdentitySchema]).optional(),
|
|
17568
|
-
initialPrompt:
|
|
17612
|
+
initialPrompt: templateField("stored"),
|
|
17569
17613
|
env: SecretEnvSchema.default({}),
|
|
17570
17614
|
mounts: external_exports.array(AgentMountSchema).default([]),
|
|
17571
17615
|
triggers: TriggersSchema.default([]),
|
|
@@ -17576,6 +17620,7 @@ var init_agents = __esm({
|
|
|
17576
17620
|
validateRunnableConfig
|
|
17577
17621
|
);
|
|
17578
17622
|
AgentApplySpecSchema = AgentSpecFieldsSchema.extend({
|
|
17623
|
+
initialPrompt: templateField("authoring"),
|
|
17579
17624
|
triggers: ApplyTriggersSchema.default([])
|
|
17580
17625
|
}).superRefine(validateRunnableConfig);
|
|
17581
17626
|
AgentStatusSchema = external_exports.object({
|
|
@@ -17888,7 +17933,7 @@ var init_project_service_accounts = __esm({
|
|
|
17888
17933
|
function projectApplyBundleStorageKey(sha256) {
|
|
17889
17934
|
return `project-apply-bundles/${sha256}.json`;
|
|
17890
17935
|
}
|
|
17891
|
-
var EnvironmentApplyDocumentSchema, IdentityApplyDocumentSchema, AgentApplyDocumentSchema, ProjectApplyResourceSchema, PROJECT_RESOURCE_APPLY_ORDER, PROJECT_RESOURCE_KINDS, PROJECT_APPLY_RESOURCE_KINDS, PROJECT_APPLY_BUNDLE_VERSION, MAX_PROJECT_APPLY_BUNDLE_BYTES, PROJECT_APPLY_BUNDLE_CONTENT_TYPE, ProjectDeleteResourceBaseSchema, ProjectDeleteResourceSchema, AVATAR_ASSET_CONTENT_TYPES, MAX_AVATAR_ASSET_BASE64_LENGTH, ProjectApplyAssetSchema, ProjectApplyAssetsSchema, AvatarAssetUploadResponseSchema, ApplyBundlePathSchema, ProjectApplyBundleFileSchema, ProjectApplyBundleSchema, ProjectApplyBundleRefSchema, ProjectApplyBundleUploadRequestSchema, ProjectApplyBundleUploadResponseSchema, ProjectApplyBundleDirectoryEntrypointSchema, ProjectApplyBundleFileEntrypointSchema, ProjectApplyBundleEntrypointSchema, ProjectApplySourceSchema, ProjectApplySourceRequestSchema, ProjectApplyRequestSchema, ProjectApplySystemConfigSchema, ProjectAppliedResourceSchema, ProjectApplyDiagnosticSchema, ProjectApplyResponsePrunedSchema, ProjectApplyPlanDiffSchema, ProjectApplyResponseSchema, ProjectResourceApplyResultSchema, ProjectResourceApplyAuditActionSchema, ProjectResourceApplyOperationIdSchema, ProjectResourceApplyWorkflowErrorSchema, ProjectResourceApplyWorkflowInputSchema, ProjectResourceApplyWorkflowResultSchema;
|
|
17936
|
+
var EnvironmentApplyDocumentSchema, IdentityApplyDocumentSchema, AgentApplyDocumentSchema, ProjectApplyResourceSchema, PROJECT_RESOURCE_APPLY_ORDER, PROJECT_RESOURCE_KINDS, PROJECT_APPLY_RESOURCE_KINDS, PROJECT_APPLY_BUNDLE_VERSION, MAX_PROJECT_APPLY_BUNDLE_BYTES, PROJECT_APPLY_BUNDLE_CONTENT_TYPE, ProjectDeleteResourceBaseSchema, ProjectDeleteResourceSchema, AVATAR_ASSET_CONTENT_TYPES, MAX_AVATAR_ASSET_BASE64_LENGTH, ProjectApplyAssetSchema, ProjectApplyAssetsSchema, AvatarAssetUploadResponseSchema, ApplyBundlePathSchema, ProjectApplyBundleFileSchema, ProjectApplyBundleSchema, ProjectApplyBundleRefSchema, ProjectApplyBundleUploadRequestSchema, ProjectApplyBundleUploadResponseSchema, ProjectApplyBundleDirectoryEntrypointSchema, ProjectApplyBundleFileEntrypointSchema, ProjectApplyBundleEntrypointSchema, ProjectApplySourceSchema, ProjectApplySourceRequestSchema, ProjectApplyRequestSchema, ProjectApplySystemConfigSchema, ProjectAppliedResourceSchema, ProjectApplyDiagnosticSchema, ProjectApplyResponsePrunedSchema, ProjectApplyPlanDiffSchema, ProjectApplyResponseSchema, ProjectResourceApplyResultSchema, ProjectResourceApplyAuditActionSchema, ProjectResourceApplyOperationIdSchema, ProjectResourceApplyTriggerArtifactSchema, ProjectResourceApplyWorkflowErrorSchema, ProjectResourceApplyWorkflowInputSchema, ProjectResourceApplyWorkflowResultSchema;
|
|
17892
17937
|
var init_project_resources = __esm({
|
|
17893
17938
|
"../../packages/schemas/src/project-resources.ts"() {
|
|
17894
17939
|
"use strict";
|
|
@@ -17899,6 +17944,7 @@ var init_project_resources = __esm({
|
|
|
17899
17944
|
init_environments();
|
|
17900
17945
|
init_identities();
|
|
17901
17946
|
init_ids();
|
|
17947
|
+
init_primitives();
|
|
17902
17948
|
init_resources();
|
|
17903
17949
|
init_trigger_router();
|
|
17904
17950
|
EnvironmentApplyDocumentSchema = resourceApplyDocumentSchema(
|
|
@@ -18095,6 +18141,11 @@ var init_project_resources = __esm({
|
|
|
18095
18141
|
"github_sync.apply"
|
|
18096
18142
|
]);
|
|
18097
18143
|
ProjectResourceApplyOperationIdSchema = external_exports.string().trim().min(1).max(512);
|
|
18144
|
+
ProjectResourceApplyTriggerArtifactSchema = external_exports.object({
|
|
18145
|
+
type: external_exports.string().trim().min(1),
|
|
18146
|
+
externalId: external_exports.string().trim().min(1),
|
|
18147
|
+
payload: JsonValueSchema.optional()
|
|
18148
|
+
}).strict();
|
|
18098
18149
|
ProjectResourceApplyWorkflowErrorSchema = external_exports.object({
|
|
18099
18150
|
name: external_exports.string().trim().min(1),
|
|
18100
18151
|
message: external_exports.string().trim().min(1)
|
|
@@ -18106,7 +18157,8 @@ var init_project_resources = __esm({
|
|
|
18106
18157
|
organizationId: OrganizationIdSchema,
|
|
18107
18158
|
projectId: ProjectIdSchema.nullable().optional(),
|
|
18108
18159
|
actor: AuthActorSchema,
|
|
18109
|
-
auditAction: ProjectResourceApplyAuditActionSchema
|
|
18160
|
+
auditAction: ProjectResourceApplyAuditActionSchema,
|
|
18161
|
+
triggerArtifact: ProjectResourceApplyTriggerArtifactSchema.optional()
|
|
18110
18162
|
}).superRefine((input, context) => {
|
|
18111
18163
|
if ((input.request ? 1 : 0) + (input.sourceRequest ? 1 : 0) !== 1) {
|
|
18112
18164
|
context.addIssue({
|
|
@@ -18502,7 +18554,7 @@ var init_session_introspection = __esm({
|
|
|
18502
18554
|
});
|
|
18503
18555
|
|
|
18504
18556
|
// ../../packages/schemas/src/session-commands.ts
|
|
18505
|
-
var SESSION_COMMAND_KINDS, SESSION_DISPATCH_COMMAND_KINDS, SESSION_PERSISTED_COMMAND_KINDS, SESSION_LIFECYCLE_COMMAND_KINDS, SESSION_COMMAND_STATUSES, SESSION_DISPATCH_COMMAND_STATUSES, SessionCommandKindSchema, SessionPersistedCommandKindSchema, SessionDispatchCommandKindSchema, RunLifecycleCommandKindSchema, SessionCommandStatusSchema, SessionDispatchCommandStatusSchema, SessionCommandSenderSchema, RunMessageCommandPayloadSchema, RunAnswerCommandPayloadSchema, RunLifecycleCommandPayloadSchema, SessionCommandPayloadSchema, CreateRunMessageCommandRequestSchema, CreateRunAnswerCommandRequestSchema, CreateRunLifecycleCommandRequestSchema, CreateSessionCommandRequestSchema, RunResolutionPolicySchema, AgentAddressedCommandTargetSchema, SessionCommandRecordBaseSchema, RunStartCommandPayloadSchema, RunStartWithMessageCommandPayloadSchema, SessionPersistedCommandPayloadSchema, SessionCommandRecordSchema, SessionDispatchMessageCommandPayloadSchema, SessionDispatchAnswerCommandPayloadSchema, SessionDispatchStopCommandPayloadSchema, SessionDispatchCommandPayloadSchema, SessionDispatchCommandRecordBaseSchema, SessionDispatchCommandRecordSchema;
|
|
18557
|
+
var SESSION_COMMAND_KINDS, SESSION_DISPATCH_COMMAND_KINDS, SESSION_PERSISTED_COMMAND_KINDS, SESSION_LIFECYCLE_COMMAND_KINDS, SESSION_COMMAND_STATUSES, SESSION_DISPATCH_COMMAND_STATUSES, SessionCommandKindSchema, SessionPersistedCommandKindSchema, SessionDispatchCommandKindSchema, RunLifecycleCommandKindSchema, SessionCommandStatusSchema, SessionDispatchCommandStatusSchema, SessionCommandSenderSchema, MESSAGE_DELIVERY_MODES, MessageDeliveryModeSchema, TRIGGER_INJECTION_MODALITIES, TriggerInjectionModalitySchema, RunMessageCommandPayloadSchema, RunAnswerCommandPayloadSchema, RunLifecycleCommandPayloadSchema, SessionCommandPayloadSchema, CreateRunMessageCommandRequestSchema, CreateRunAnswerCommandRequestSchema, CreateRunLifecycleCommandRequestSchema, CreateSessionCommandRequestSchema, RunResolutionPolicySchema, AgentAddressedCommandTargetSchema, SessionCommandRecordBaseSchema, RunStartCommandPayloadSchema, RunStartWithMessageCommandPayloadSchema, SessionPersistedCommandPayloadSchema, SessionCommandRecordSchema, SessionDispatchMessageCommandPayloadSchema, SessionDispatchAnswerCommandPayloadSchema, SessionDispatchStopCommandPayloadSchema, SessionDispatchCommandPayloadSchema, SessionDispatchCommandRecordBaseSchema, SessionDispatchCommandRecordSchema;
|
|
18506
18558
|
var init_session_commands = __esm({
|
|
18507
18559
|
"../../packages/schemas/src/session-commands.ts"() {
|
|
18508
18560
|
"use strict";
|
|
@@ -18584,8 +18636,27 @@ var init_session_commands = __esm({
|
|
|
18584
18636
|
type: external_exports.literal("system")
|
|
18585
18637
|
})
|
|
18586
18638
|
]);
|
|
18639
|
+
MESSAGE_DELIVERY_MODES = ["interrupt", "deferred"];
|
|
18640
|
+
MessageDeliveryModeSchema = external_exports.enum(MESSAGE_DELIVERY_MODES);
|
|
18641
|
+
TRIGGER_INJECTION_MODALITIES = [
|
|
18642
|
+
"chat",
|
|
18643
|
+
"githubCheck",
|
|
18644
|
+
"githubCheckAction",
|
|
18645
|
+
"githubPullRequest",
|
|
18646
|
+
"other"
|
|
18647
|
+
];
|
|
18648
|
+
TriggerInjectionModalitySchema = external_exports.enum(
|
|
18649
|
+
TRIGGER_INJECTION_MODALITIES
|
|
18650
|
+
);
|
|
18587
18651
|
RunMessageCommandPayloadSchema = external_exports.object({
|
|
18588
18652
|
message: external_exports.string().trim().min(1),
|
|
18653
|
+
// Optional so existing payloads and direct operator/agent messages stay
|
|
18654
|
+
// valid without it; trigger routing sets "deferred" for GitHub check
|
|
18655
|
+
// events. An absent mode is treated as "interrupt" at the delivery
|
|
18656
|
+
// boundary (commandDeliveryPayload / the runtime handler), so the default
|
|
18657
|
+
// lives where the value is consumed rather than as a required field every
|
|
18658
|
+
// call site must construct.
|
|
18659
|
+
deliveryMode: MessageDeliveryModeSchema.optional(),
|
|
18589
18660
|
metadata: JsonValueSchema.optional()
|
|
18590
18661
|
}).strict();
|
|
18591
18662
|
RunAnswerCommandPayloadSchema = external_exports.object({
|
|
@@ -21194,6 +21265,7 @@ function renderOAuthLoopbackPage(input) {
|
|
|
21194
21265
|
).join("");
|
|
21195
21266
|
const hasDetails = detailRows.length > 0;
|
|
21196
21267
|
const statusLabel = input.status === "success" ? "Authorization received" : "Authorization failed";
|
|
21268
|
+
const badge = input.eyebrow ?? statusLabel;
|
|
21197
21269
|
return `<!doctype html>
|
|
21198
21270
|
<html lang="en">
|
|
21199
21271
|
<head>
|
|
@@ -21202,151 +21274,251 @@ function renderOAuthLoopbackPage(input) {
|
|
|
21202
21274
|
<title>${escapeHtml(input.title)} | Auto</title>
|
|
21203
21275
|
<style>
|
|
21204
21276
|
:root {
|
|
21205
|
-
color-scheme: light
|
|
21206
|
-
|
|
21207
|
-
|
|
21208
|
-
|
|
21277
|
+
color-scheme: light;
|
|
21278
|
+
--ease-out-strong: cubic-bezier(0.23, 1, 0.32, 1);
|
|
21279
|
+
--canvas: #f9f9f6;
|
|
21280
|
+
--ink: #262323;
|
|
21281
|
+
--ink-80: rgba(38, 35, 35, 0.8);
|
|
21282
|
+
--ink-70: rgba(38, 35, 35, 0.7);
|
|
21283
|
+
--ink-43: rgba(38, 35, 35, 0.43);
|
|
21284
|
+
--surface: #ffffff;
|
|
21285
|
+
--surface-muted: #f8f8f7;
|
|
21286
|
+
--hairline: #ebebeb;
|
|
21287
|
+
--hairline-strong: #dedede;
|
|
21288
|
+
--text-muted: #656362;
|
|
21289
|
+
--danger: #b42318;
|
|
21290
|
+
--danger-border: rgba(180, 35, 24, 0.3);
|
|
21291
|
+
--danger-surface: rgba(180, 35, 24, 0.05);
|
|
21292
|
+
--success: #297a3a;
|
|
21293
|
+
--success-border: rgba(41, 122, 58, 0.3);
|
|
21294
|
+
--radius-panel: 7px;
|
|
21295
|
+
--radius-pill: 27px;
|
|
21296
|
+
--font-sans: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
|
|
21297
|
+
--font-mono: ui-monospace, "SFMono-Regular", Consolas, "Liberation Mono", monospace;
|
|
21298
|
+
background: var(--canvas);
|
|
21299
|
+
color: var(--ink);
|
|
21300
|
+
font-family: var(--font-sans);
|
|
21209
21301
|
}
|
|
21210
21302
|
* {
|
|
21211
21303
|
box-sizing: border-box;
|
|
21212
21304
|
}
|
|
21213
21305
|
body {
|
|
21214
21306
|
min-height: 100vh;
|
|
21307
|
+
min-height: 100dvh;
|
|
21215
21308
|
margin: 0;
|
|
21216
|
-
|
|
21217
|
-
|
|
21218
|
-
|
|
21219
|
-
|
|
21220
|
-
|
|
21221
|
-
|
|
21222
|
-
|
|
21223
|
-
|
|
21224
|
-
|
|
21225
|
-
|
|
21226
|
-
|
|
21227
|
-
|
|
21228
|
-
|
|
21229
|
-
|
|
21230
|
-
|
|
21231
|
-
|
|
21232
|
-
|
|
21309
|
+
background: var(--canvas);
|
|
21310
|
+
color: var(--ink);
|
|
21311
|
+
font-family: var(--font-sans);
|
|
21312
|
+
}
|
|
21313
|
+
.page {
|
|
21314
|
+
min-height: 100vh;
|
|
21315
|
+
min-height: 100dvh;
|
|
21316
|
+
padding: 118px 28px 128px;
|
|
21317
|
+
}
|
|
21318
|
+
.content {
|
|
21319
|
+
display: flex;
|
|
21320
|
+
flex-direction: column;
|
|
21321
|
+
align-items: flex-start;
|
|
21322
|
+
width: min(560px, 100%);
|
|
21323
|
+
margin: 0 auto;
|
|
21324
|
+
animation: riseIn 600ms var(--ease-out-strong) backwards;
|
|
21325
|
+
}
|
|
21326
|
+
.header {
|
|
21327
|
+
display: flex;
|
|
21328
|
+
align-items: center;
|
|
21329
|
+
justify-content: space-between;
|
|
21330
|
+
gap: 24px;
|
|
21331
|
+
width: 100%;
|
|
21332
|
+
margin-bottom: 30px;
|
|
21333
|
+
}
|
|
21334
|
+
.logoLockup {
|
|
21233
21335
|
display: inline-flex;
|
|
21234
21336
|
align-items: center;
|
|
21235
|
-
gap:
|
|
21236
|
-
|
|
21237
|
-
|
|
21238
|
-
|
|
21239
|
-
|
|
21337
|
+
gap: 4px;
|
|
21338
|
+
color: var(--ink);
|
|
21339
|
+
text-decoration: none;
|
|
21340
|
+
}
|
|
21341
|
+
.logoMark {
|
|
21342
|
+
display: block;
|
|
21343
|
+
width: 54px;
|
|
21344
|
+
height: 54px;
|
|
21345
|
+
transform: translateY(3px);
|
|
21346
|
+
}
|
|
21347
|
+
.wordmark {
|
|
21348
|
+
color: var(--ink);
|
|
21349
|
+
font: 500 50px / 1 var(--font-mono);
|
|
21240
21350
|
letter-spacing: 0;
|
|
21241
|
-
|
|
21351
|
+
transform: translateY(-2.4px);
|
|
21242
21352
|
}
|
|
21243
|
-
.
|
|
21244
|
-
|
|
21245
|
-
|
|
21246
|
-
|
|
21247
|
-
|
|
21248
|
-
box-shadow: 0 0 0 6px ${input.status === "success" ? "rgba(34, 134, 58, 0.14)" : "rgba(180, 35, 24, 0.14)"};
|
|
21353
|
+
.heading {
|
|
21354
|
+
display: flex;
|
|
21355
|
+
flex-direction: column;
|
|
21356
|
+
align-items: flex-start;
|
|
21357
|
+
margin-bottom: 22px;
|
|
21249
21358
|
}
|
|
21250
|
-
|
|
21251
|
-
|
|
21252
|
-
|
|
21253
|
-
|
|
21254
|
-
|
|
21359
|
+
.badge {
|
|
21360
|
+
display: inline-flex;
|
|
21361
|
+
align-items: center;
|
|
21362
|
+
justify-content: center;
|
|
21363
|
+
height: 22px;
|
|
21364
|
+
padding: 0 12px;
|
|
21365
|
+
border: 0.5px solid var(--ink-43);
|
|
21366
|
+
border-radius: var(--radius-pill);
|
|
21367
|
+
background: linear-gradient(
|
|
21368
|
+
to top,
|
|
21369
|
+
var(--surface-muted),
|
|
21370
|
+
var(--surface) 93.3%
|
|
21371
|
+
);
|
|
21372
|
+
color: var(--ink-43);
|
|
21373
|
+
font: 400 12px / 1 var(--font-sans);
|
|
21255
21374
|
letter-spacing: 0;
|
|
21256
21375
|
}
|
|
21257
|
-
|
|
21258
|
-
margin:
|
|
21259
|
-
|
|
21260
|
-
|
|
21261
|
-
|
|
21262
|
-
|
|
21376
|
+
h1 {
|
|
21377
|
+
margin: 16px 0 0;
|
|
21378
|
+
color: var(--ink-80);
|
|
21379
|
+
font: 400 29px / 1.2 var(--font-sans);
|
|
21380
|
+
letter-spacing: 0;
|
|
21381
|
+
text-wrap: balance;
|
|
21382
|
+
}
|
|
21383
|
+
.body {
|
|
21384
|
+
display: flex;
|
|
21385
|
+
flex-direction: column;
|
|
21386
|
+
align-items: flex-start;
|
|
21387
|
+
gap: 20px;
|
|
21388
|
+
width: 100%;
|
|
21389
|
+
}
|
|
21390
|
+
.feedback {
|
|
21391
|
+
display: flex;
|
|
21392
|
+
align-items: flex-start;
|
|
21393
|
+
gap: 10px;
|
|
21394
|
+
width: 100%;
|
|
21395
|
+
margin: 0;
|
|
21396
|
+
padding: 12px 14px;
|
|
21397
|
+
border: 1px solid var(--hairline-strong);
|
|
21398
|
+
border-radius: var(--radius-panel);
|
|
21399
|
+
background: var(--surface);
|
|
21400
|
+
color: var(--ink-70);
|
|
21401
|
+
font: 400 15px / 22px var(--font-sans);
|
|
21402
|
+
}
|
|
21403
|
+
.feedbackIcon {
|
|
21404
|
+
display: flex;
|
|
21405
|
+
flex-shrink: 0;
|
|
21406
|
+
margin-top: 3px;
|
|
21407
|
+
color: var(--ink-43);
|
|
21408
|
+
}
|
|
21409
|
+
.feedback[data-status="success"] {
|
|
21410
|
+
border-color: var(--success-border);
|
|
21411
|
+
color: var(--success);
|
|
21412
|
+
}
|
|
21413
|
+
.feedback[data-status="failure"] {
|
|
21414
|
+
border-color: var(--danger-border);
|
|
21415
|
+
background: var(--danger-surface);
|
|
21416
|
+
color: var(--danger);
|
|
21263
21417
|
}
|
|
21264
21418
|
dl {
|
|
21265
|
-
|
|
21266
|
-
|
|
21267
|
-
|
|
21268
|
-
border-
|
|
21419
|
+
width: 100%;
|
|
21420
|
+
margin: 4px 0 0;
|
|
21421
|
+
border-top: 1px solid var(--hairline);
|
|
21422
|
+
border-bottom: 1px solid var(--surface);
|
|
21269
21423
|
}
|
|
21270
21424
|
.detail {
|
|
21271
21425
|
display: grid;
|
|
21272
|
-
grid-template-columns: minmax(
|
|
21426
|
+
grid-template-columns: minmax(120px, 0.42fr) minmax(0, 1fr);
|
|
21273
21427
|
gap: 18px;
|
|
21274
|
-
padding:
|
|
21275
|
-
border-
|
|
21276
|
-
|
|
21277
|
-
.detail:last-child {
|
|
21278
|
-
border-bottom: 0;
|
|
21428
|
+
padding: 12px 0;
|
|
21429
|
+
border-top: 1px solid var(--surface);
|
|
21430
|
+
border-bottom: 1px solid var(--hairline);
|
|
21279
21431
|
}
|
|
21280
21432
|
dt {
|
|
21281
|
-
color:
|
|
21282
|
-
font
|
|
21433
|
+
color: var(--text-muted);
|
|
21434
|
+
font: 400 13px / 19px var(--font-sans);
|
|
21283
21435
|
}
|
|
21284
21436
|
dd {
|
|
21285
21437
|
margin: 0;
|
|
21286
21438
|
min-width: 0;
|
|
21287
21439
|
overflow-wrap: anywhere;
|
|
21288
|
-
|
|
21440
|
+
color: var(--ink-80);
|
|
21441
|
+
font: 500 14px / 19px var(--font-sans);
|
|
21289
21442
|
}
|
|
21290
21443
|
.footer {
|
|
21291
|
-
|
|
21292
|
-
|
|
21293
|
-
|
|
21444
|
+
max-width: 58ch;
|
|
21445
|
+
margin: 0;
|
|
21446
|
+
color: var(--text-muted);
|
|
21447
|
+
font: 400 13px / 19px var(--font-sans);
|
|
21294
21448
|
}
|
|
21295
|
-
@
|
|
21296
|
-
|
|
21297
|
-
|
|
21298
|
-
|
|
21299
|
-
main {
|
|
21300
|
-
padding: 24px;
|
|
21301
|
-
}
|
|
21302
|
-
h1 {
|
|
21303
|
-
max-width: none;
|
|
21304
|
-
font-size: 34px;
|
|
21305
|
-
}
|
|
21306
|
-
.detail {
|
|
21307
|
-
grid-template-columns: 1fr;
|
|
21308
|
-
gap: 4px;
|
|
21449
|
+
@keyframes riseIn {
|
|
21450
|
+
from {
|
|
21451
|
+
opacity: 0;
|
|
21452
|
+
transform: translateY(12px);
|
|
21309
21453
|
}
|
|
21310
21454
|
}
|
|
21311
|
-
@media (prefers-
|
|
21312
|
-
|
|
21313
|
-
|
|
21314
|
-
|
|
21455
|
+
@media (prefers-reduced-motion: reduce) {
|
|
21456
|
+
.content {
|
|
21457
|
+
animation-name: fadeOnly;
|
|
21458
|
+
animation-duration: 300ms;
|
|
21459
|
+
animation-timing-function: ease;
|
|
21315
21460
|
}
|
|
21316
|
-
|
|
21317
|
-
|
|
21318
|
-
|
|
21319
|
-
|
|
21320
|
-
#10120f;
|
|
21461
|
+
}
|
|
21462
|
+
@keyframes fadeOnly {
|
|
21463
|
+
from {
|
|
21464
|
+
opacity: 0;
|
|
21321
21465
|
}
|
|
21322
|
-
|
|
21323
|
-
|
|
21324
|
-
|
|
21325
|
-
|
|
21466
|
+
}
|
|
21467
|
+
@media (max-width: 640px) {
|
|
21468
|
+
.page {
|
|
21469
|
+
padding: 78px 24px 96px;
|
|
21326
21470
|
}
|
|
21327
|
-
|
|
21328
|
-
|
|
21471
|
+
.header {
|
|
21472
|
+
margin-bottom: 28px;
|
|
21329
21473
|
}
|
|
21330
|
-
|
|
21331
|
-
|
|
21474
|
+
h1 {
|
|
21475
|
+
font-size: 26px;
|
|
21332
21476
|
}
|
|
21333
21477
|
.detail {
|
|
21334
|
-
|
|
21478
|
+
grid-template-columns: 1fr;
|
|
21479
|
+
gap: 4px;
|
|
21335
21480
|
}
|
|
21336
21481
|
}
|
|
21337
21482
|
</style>
|
|
21338
21483
|
</head>
|
|
21339
21484
|
<body>
|
|
21340
|
-
<
|
|
21341
|
-
<
|
|
21342
|
-
|
|
21343
|
-
|
|
21344
|
-
|
|
21345
|
-
|
|
21346
|
-
|
|
21485
|
+
<div class="page">
|
|
21486
|
+
<main class="content">
|
|
21487
|
+
<header class="header">
|
|
21488
|
+
<div class="logoLockup" aria-label="Auto">
|
|
21489
|
+
${AUTO_LOGO_SVG}
|
|
21490
|
+
<span class="wordmark">auto</span>
|
|
21491
|
+
</div>
|
|
21492
|
+
</header>
|
|
21493
|
+
<div class="heading">
|
|
21494
|
+
<span class="badge">${escapeHtml(badge)}</span>
|
|
21495
|
+
<h1>${escapeHtml(input.title)}</h1>
|
|
21496
|
+
</div>
|
|
21497
|
+
<div class="body">
|
|
21498
|
+
<p class="feedback" data-status="${input.status}">
|
|
21499
|
+
<span class="feedbackIcon">${renderStatusIcon(input.status)}</span>
|
|
21500
|
+
<span>${escapeHtml(input.message)}</span>
|
|
21501
|
+
</p>
|
|
21502
|
+
${hasDetails ? `<dl>${detailRows}</dl>` : ""}
|
|
21503
|
+
<p class="footer">You can close this window and return to Auto.</p>
|
|
21504
|
+
</div>
|
|
21505
|
+
</main>
|
|
21506
|
+
</div>
|
|
21347
21507
|
</body>
|
|
21348
21508
|
</html>`;
|
|
21349
21509
|
}
|
|
21510
|
+
function renderStatusIcon(status) {
|
|
21511
|
+
if (status === "success") {
|
|
21512
|
+
return `<svg width="16" height="16" viewBox="0 0 20 20" fill="none" aria-hidden="true">
|
|
21513
|
+
<path d="M4.167 10.833 8.125 14.79l7.708-9.583" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round"/>
|
|
21514
|
+
</svg>`;
|
|
21515
|
+
}
|
|
21516
|
+
return `<svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true">
|
|
21517
|
+
<circle cx="8" cy="8" r="6.75" stroke="currentColor" stroke-width="1.25"/>
|
|
21518
|
+
<path d="M8 7.25v3.5" stroke="currentColor" stroke-width="1.25" stroke-linecap="round"/>
|
|
21519
|
+
<circle cx="8" cy="5.125" r="0.875" fill="currentColor"/>
|
|
21520
|
+
</svg>`;
|
|
21521
|
+
}
|
|
21350
21522
|
function resolveHtml(html, result) {
|
|
21351
21523
|
return typeof html === "function" ? html(result) : html;
|
|
21352
21524
|
}
|
|
@@ -21398,11 +21570,50 @@ async function listen(server, port) {
|
|
|
21398
21570
|
server.listen(port, "127.0.0.1");
|
|
21399
21571
|
});
|
|
21400
21572
|
}
|
|
21401
|
-
var DEFAULT_CALLBACK_PORT;
|
|
21573
|
+
var DEFAULT_CALLBACK_PORT, AUTO_LOGO_SVG;
|
|
21402
21574
|
var init_loopback = __esm({
|
|
21403
21575
|
"src/lib/oauth/loopback.ts"() {
|
|
21404
21576
|
"use strict";
|
|
21405
21577
|
DEFAULT_CALLBACK_PORT = 4670;
|
|
21578
|
+
AUTO_LOGO_SVG = `<svg class="logoMark" width="54" height="54" viewBox="0 0 54 54" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true">
|
|
21579
|
+
<path d="M7.59195 13.5C7.12791 13.5063 6.75454 13.8839 6.75666 14.348V39.6605C6.76299 40.1182 7.13213 40.4895 7.59195 40.4937H46.409H46.4069C46.8709 40.4958 47.2485 40.1225 47.2548 39.6605V14.348C47.2548 14.1223 47.1662 13.9071 47.008 13.7468C46.8477 13.5886 46.6326 13.5 46.4069 13.5L7.59195 13.5ZM20.2523 15.1812H21.9398V16.8687H23.6273V15.1812H27.0023V16.8687H28.6898V15.1812H33.7523V16.8687H35.4398V15.1812H45.5603V38.8125H32.0648V37.125H30.3773V38.8125H25.3148V37.125H23.6273V38.8125H21.9398V37.125H20.2523V38.8125H18.5648V37.125H20.2523V35.4375H18.5648V33.75H20.2523V32.0625H18.5648V30.375H20.2523V28.6875H18.5648V27H20.2523V25.3125H18.5648V23.625H20.2523V21.9375H18.5648V20.25H20.2523V18.5625H18.5648V16.8686H20.2523V15.1812Z" fill="#0D8CF3"/>
|
|
21580
|
+
<path d="M20.25 16.875H21.9375V18.5625H20.25V16.875Z" fill="#0D8CF3"/>
|
|
21581
|
+
<path d="M20.25 20.25H21.9375V21.9375H20.25V20.25Z" fill="#0D8CF3"/>
|
|
21582
|
+
<path d="M20.25 23.625H21.9375V25.3125H20.25V23.625Z" fill="#0D8CF3"/>
|
|
21583
|
+
<path d="M20.25 27H21.9375V28.6875H20.25V27Z" fill="#0D8CF3"/>
|
|
21584
|
+
<path d="M20.25 30.375H21.9375V32.0625H20.25V30.375Z" fill="#0D8CF3"/>
|
|
21585
|
+
<path d="M20.25 33.75H21.9375V35.4375H20.25V33.75Z" fill="#0D8CF3"/>
|
|
21586
|
+
<path d="M21.9375 21.9375H23.625V23.625H21.9375V21.9375Z" fill="#0D8CF3"/>
|
|
21587
|
+
<path d="M21.9375 28.6875H23.625V30.375H21.9375V28.6875Z" fill="#0D8CF3"/>
|
|
21588
|
+
<path d="M21.9375 35.4375H23.625V37.125H21.9375V35.4375Z" fill="#0D8CF3"/>
|
|
21589
|
+
<path d="M21.9375 18.5625H23.625V20.25H21.9375V18.5625Z" fill="#0D8CF3"/>
|
|
21590
|
+
<path d="M21.9375 25.3125H23.625V27H21.9375V25.3125Z" fill="#0D8CF3"/>
|
|
21591
|
+
<path d="M21.9375 32.0625H23.625V33.75H21.9375V32.0625Z" fill="#0D8CF3"/>
|
|
21592
|
+
<path d="M23.625 16.875H25.3125V18.5625H23.625V16.875Z" fill="#0D8CF3"/>
|
|
21593
|
+
<path d="M23.625 23.625H25.3125V25.3125H23.625V23.625Z" fill="#0D8CF3"/>
|
|
21594
|
+
<path d="M23.625 30.375H25.3125V32.0625H23.625V30.375Z" fill="#0D8CF3"/>
|
|
21595
|
+
<path d="M23.625 20.25H25.3125V21.9375H23.625V20.25Z" fill="#0D8CF3"/>
|
|
21596
|
+
<path d="M23.625 27H25.3125V28.6875H23.625V27Z" fill="#0D8CF3"/>
|
|
21597
|
+
<path d="M23.625 33.75H25.3125V35.4375H23.625V33.75Z" fill="#0D8CF3"/>
|
|
21598
|
+
<path d="M27 18.5625H28.6875V20.25H27V18.5625Z" fill="#0D8CF3"/>
|
|
21599
|
+
<path d="M27 21.9375H28.6875V23.625H27V21.9375Z" fill="#0D8CF3"/>
|
|
21600
|
+
<path d="M27 25.3125H28.6875V27H27V25.3125Z" fill="#0D8CF3"/>
|
|
21601
|
+
<path d="M27 28.6875H28.6875V30.375H27V28.6875Z" fill="#0D8CF3"/>
|
|
21602
|
+
<path d="M27 32.0625H28.6875V33.75H27V32.0625Z" fill="#0D8CF3"/>
|
|
21603
|
+
<path d="M27 35.4375H28.6875V37.125H27V35.4375Z" fill="#0D8CF3"/>
|
|
21604
|
+
<path d="M30.375 16.875H32.0625V18.5625H30.375V16.875Z" fill="#0D8CF3"/>
|
|
21605
|
+
<path d="M30.375 20.25H32.0625V21.9375H30.375V20.25Z" fill="#0D8CF3"/>
|
|
21606
|
+
<path d="M30.375 23.625H32.0625V25.3125H30.375V23.625Z" fill="#0D8CF3"/>
|
|
21607
|
+
<path d="M30.375 27H32.0625V28.6875H30.375V27Z" fill="#0D8CF3"/>
|
|
21608
|
+
<path d="M30.375 30.375H32.0625V32.0625H30.375V30.375Z" fill="#0D8CF3"/>
|
|
21609
|
+
<path d="M30.375 33.75H32.0625V35.4375H30.375V33.75Z" fill="#0D8CF3"/>
|
|
21610
|
+
<path d="M33.75 18.5625H35.4375V20.25H33.75V18.5625Z" fill="#0D8CF3"/>
|
|
21611
|
+
<path d="M33.75 21.9375H35.4375V23.625H33.75V21.9375Z" fill="#0D8CF3"/>
|
|
21612
|
+
<path d="M33.75 25.3125H35.4375V27H33.75V25.3125Z" fill="#0D8CF3"/>
|
|
21613
|
+
<path d="M33.75 28.6875H35.4375V30.375H33.75V28.6875Z" fill="#0D8CF3"/>
|
|
21614
|
+
<path d="M33.75 32.0625H35.4375V33.75H33.75V32.0625Z" fill="#0D8CF3"/>
|
|
21615
|
+
<path d="M33.75 35.4375H35.4375V37.125H33.75V35.4375Z" fill="#0D8CF3"/>
|
|
21616
|
+
</svg>`;
|
|
21406
21617
|
}
|
|
21407
21618
|
});
|
|
21408
21619
|
|
|
@@ -21412,7 +21623,7 @@ var init_package = __esm({
|
|
|
21412
21623
|
"package.json"() {
|
|
21413
21624
|
package_default = {
|
|
21414
21625
|
name: "@autohq/cli",
|
|
21415
|
-
version: "0.1.
|
|
21626
|
+
version: "0.1.195",
|
|
21416
21627
|
license: "SEE LICENSE IN README.md",
|
|
21417
21628
|
publishConfig: {
|
|
21418
21629
|
access: "public"
|
|
@@ -23932,14 +24143,14 @@ async function login(input) {
|
|
|
23932
24143
|
const callback = await createOAuthLoopbackCallback({
|
|
23933
24144
|
successHtml: () => renderOAuthLoopbackPage({
|
|
23934
24145
|
status: "success",
|
|
23935
|
-
eyebrow: "
|
|
24146
|
+
eyebrow: "CLI login",
|
|
23936
24147
|
title: "Login authorized",
|
|
23937
24148
|
message: "Auto received the browser authorization. The CLI will finish signing you in from your terminal.",
|
|
23938
24149
|
details: [{ label: "Server", value: serverUrl }]
|
|
23939
24150
|
}),
|
|
23940
24151
|
failureHtml: () => renderOAuthLoopbackPage({
|
|
23941
24152
|
status: "failure",
|
|
23942
|
-
eyebrow: "
|
|
24153
|
+
eyebrow: "CLI login",
|
|
23943
24154
|
title: "Login failed",
|
|
23944
24155
|
message: "The browser authorization did not complete. Return to your terminal to retry or inspect the error.",
|
|
23945
24156
|
details: [{ label: "Server", value: serverUrl }]
|
|
@@ -31796,6 +32007,10 @@ var ClaudeAgentBridgeSessionImpl = class {
|
|
|
31796
32007
|
activeTurnCount = 0;
|
|
31797
32008
|
interruptInFlight = null;
|
|
31798
32009
|
exitReported = false;
|
|
32010
|
+
// Messages delivered in "deferred" mode while a turn is in flight. They are
|
|
32011
|
+
// held here instead of injected mid-turn (which would reject a pending
|
|
32012
|
+
// tool_use) and flushed once the turn ends and the session is idle.
|
|
32013
|
+
deferredMessages = [];
|
|
31799
32014
|
constructor(input) {
|
|
31800
32015
|
const optionsStartedAt = Date.now();
|
|
31801
32016
|
this.input = input;
|
|
@@ -31838,13 +32053,17 @@ var ClaudeAgentBridgeSessionImpl = class {
|
|
|
31838
32053
|
throw error51;
|
|
31839
32054
|
}
|
|
31840
32055
|
}
|
|
31841
|
-
async sendMessage(message) {
|
|
32056
|
+
async sendMessage(message, options) {
|
|
32057
|
+
const mode = options?.mode ?? "interrupt";
|
|
32058
|
+
if (mode === "deferred" && this.hasInterruptibleTurn()) {
|
|
32059
|
+
this.deferredMessages.push(message);
|
|
32060
|
+
this.input.writeOutput?.(
|
|
32061
|
+
`agent_bridge_claude_message_deferred active_turn_count=${this.activeTurnCount}`
|
|
32062
|
+
);
|
|
32063
|
+
return;
|
|
32064
|
+
}
|
|
31842
32065
|
await this.interruptActiveTurnBeforeMessage();
|
|
31843
|
-
this.
|
|
31844
|
-
this.activeTurnCount += 1;
|
|
31845
|
-
void this.ensureRunningQuery().catch((error51) => {
|
|
31846
|
-
void this.input.onError(error51);
|
|
31847
|
-
});
|
|
32066
|
+
this.enqueueUserMessage(message);
|
|
31848
32067
|
}
|
|
31849
32068
|
close() {
|
|
31850
32069
|
const previousState = this.state;
|
|
@@ -31853,6 +32072,12 @@ var ClaudeAgentBridgeSessionImpl = class {
|
|
|
31853
32072
|
}
|
|
31854
32073
|
this.state = { kind: "closed" };
|
|
31855
32074
|
this.activeTurnCount = 0;
|
|
32075
|
+
if (this.deferredMessages.length > 0) {
|
|
32076
|
+
this.input.writeOutput?.(
|
|
32077
|
+
`agent_bridge_claude_deferred_dropped count=${this.deferredMessages.length} reason=session_closed`
|
|
32078
|
+
);
|
|
32079
|
+
this.deferredMessages.length = 0;
|
|
32080
|
+
}
|
|
31856
32081
|
this.stderr.flush();
|
|
31857
32082
|
this.inputQueue.close();
|
|
31858
32083
|
if (previousState.kind === "started") {
|
|
@@ -31937,6 +32162,9 @@ var ClaudeAgentBridgeSessionImpl = class {
|
|
|
31937
32162
|
for await (const message of query) {
|
|
31938
32163
|
if (isClaudeAgentTurnResult(message)) {
|
|
31939
32164
|
this.activeTurnCount = Math.max(0, this.activeTurnCount - 1);
|
|
32165
|
+
if (this.activeTurnCount === 0) {
|
|
32166
|
+
this.flushDeferredMessages();
|
|
32167
|
+
}
|
|
31940
32168
|
}
|
|
31941
32169
|
const failure = probeClaudeAgentMessage(
|
|
31942
32170
|
message,
|
|
@@ -31965,14 +32193,45 @@ var ClaudeAgentBridgeSessionImpl = class {
|
|
|
31965
32193
|
}
|
|
31966
32194
|
})();
|
|
31967
32195
|
}
|
|
32196
|
+
// Queue a user message as a fresh turn. Pushing before ensureRunningQuery()
|
|
32197
|
+
// lets injection work while the SDK session is still starting; the queue
|
|
32198
|
+
// drains once the query attaches. Startup failures surface through onError
|
|
32199
|
+
// instead of failing injection.
|
|
32200
|
+
enqueueUserMessage(message) {
|
|
32201
|
+
this.inputQueue.push(claudeAgentUserMessage(message));
|
|
32202
|
+
this.activeTurnCount += 1;
|
|
32203
|
+
void this.ensureRunningQuery().catch((error51) => {
|
|
32204
|
+
void this.input.onError(error51);
|
|
32205
|
+
});
|
|
32206
|
+
}
|
|
32207
|
+
// A turn the SDK is actively running, so a new user message would either
|
|
32208
|
+
// interrupt it or land mid-turn. Startup/idle states have nothing to disturb.
|
|
32209
|
+
hasInterruptibleTurn() {
|
|
32210
|
+
return this.activeTurnCount > 0 && this.state.kind === "running";
|
|
32211
|
+
}
|
|
32212
|
+
flushDeferredMessages() {
|
|
32213
|
+
if (this.deferredMessages.length === 0) {
|
|
32214
|
+
return;
|
|
32215
|
+
}
|
|
32216
|
+
const pending = this.deferredMessages.splice(0);
|
|
32217
|
+
this.input.writeOutput?.(
|
|
32218
|
+
`agent_bridge_claude_deferred_flush count=${pending.length}`
|
|
32219
|
+
);
|
|
32220
|
+
for (const message of pending) {
|
|
32221
|
+
this.enqueueUserMessage(message);
|
|
32222
|
+
}
|
|
32223
|
+
}
|
|
31968
32224
|
async interruptActiveTurnBeforeMessage() {
|
|
31969
|
-
if (this.
|
|
32225
|
+
if (!this.hasInterruptibleTurn()) {
|
|
31970
32226
|
return;
|
|
31971
32227
|
}
|
|
31972
32228
|
if (this.interruptInFlight) {
|
|
31973
32229
|
await this.interruptInFlight;
|
|
31974
32230
|
return;
|
|
31975
32231
|
}
|
|
32232
|
+
if (this.state.kind !== "running") {
|
|
32233
|
+
return;
|
|
32234
|
+
}
|
|
31976
32235
|
const query = this.state.query;
|
|
31977
32236
|
const startedAt = Date.now();
|
|
31978
32237
|
this.input.writeOutput?.(
|
|
@@ -32249,7 +32508,9 @@ var ClaudeCodeCommandHandler = class {
|
|
|
32249
32508
|
}
|
|
32250
32509
|
}
|
|
32251
32510
|
});
|
|
32252
|
-
await this.ensureAgentSession().sendMessage(message
|
|
32511
|
+
await this.ensureAgentSession().sendMessage(message, {
|
|
32512
|
+
mode: deliveryMode(delivery)
|
|
32513
|
+
});
|
|
32253
32514
|
} catch (error51) {
|
|
32254
32515
|
this.injectedCommands.delete(delivery.commandId);
|
|
32255
32516
|
return commandAck({
|
|
@@ -32495,6 +32756,16 @@ function deliveryMessage(delivery) {
|
|
|
32495
32756
|
}
|
|
32496
32757
|
return null;
|
|
32497
32758
|
}
|
|
32759
|
+
function deliveryMode(delivery) {
|
|
32760
|
+
const payload = delivery.payload;
|
|
32761
|
+
if (payload && typeof payload === "object" && "deliveryMode" in payload) {
|
|
32762
|
+
const parsed = MessageDeliveryModeSchema.safeParse(payload.deliveryMode);
|
|
32763
|
+
if (parsed.success) {
|
|
32764
|
+
return parsed.data;
|
|
32765
|
+
}
|
|
32766
|
+
}
|
|
32767
|
+
return "interrupt";
|
|
32768
|
+
}
|
|
32498
32769
|
|
|
32499
32770
|
// src/commands/agent-bridge/entrypoint.ts
|
|
32500
32771
|
async function runAgentBridgeProcess(input) {
|