@autohq/cli 0.1.563 → 0.1.565
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 +301 -222
- package/dist/index.js +803 -327
- package/package.json +1 -1
package/dist/agent-bridge.js
CHANGED
|
@@ -30870,7 +30870,7 @@ Object.assign(lookup, {
|
|
|
30870
30870
|
// package.json
|
|
30871
30871
|
var package_default = {
|
|
30872
30872
|
name: "@autohq/cli",
|
|
30873
|
-
version: "0.1.
|
|
30873
|
+
version: "0.1.565",
|
|
30874
30874
|
license: "SEE LICENSE IN README.md",
|
|
30875
30875
|
publishConfig: {
|
|
30876
30876
|
access: "public"
|
|
@@ -30973,7 +30973,8 @@ var AgentBridgeOutputAckTimeoutError = class extends Error {
|
|
|
30973
30973
|
this.name = "AgentBridgeOutputAckTimeoutError";
|
|
30974
30974
|
}
|
|
30975
30975
|
};
|
|
30976
|
-
var
|
|
30976
|
+
var AGENT_BRIDGE_TERMINAL_AUTH_DRAIN_NO_PROGRESS_TIMEOUT_MS = 6e4;
|
|
30977
|
+
var AGENT_BRIDGE_TERMINAL_AUTH_DRAIN_ABSOLUTE_TIMEOUT_MS = 30 * 6e4;
|
|
30977
30978
|
var AGENT_BRIDGE_TERMINAL_AUTH_DRAIN_REDIAL_MS = 1e3;
|
|
30978
30979
|
async function runAgentBridgeSocket(options) {
|
|
30979
30980
|
const socket = lookup(`${options.bridgeUrl}${RUNTIME_BRIDGE_NAMESPACE}`, {
|
|
@@ -31050,6 +31051,7 @@ async function runAgentBridgeSocket(options) {
|
|
|
31050
31051
|
onBootstrap: options.onBootstrap,
|
|
31051
31052
|
createHandler: (bootstrap) => options.createHandler({
|
|
31052
31053
|
emitOutput: (output) => emitOutputWithAck(socket, output, options.runtimeLogger),
|
|
31054
|
+
onOutputAckProgress: terminalAuthDrain.handleOutputAckProgress,
|
|
31053
31055
|
cycleSocket: () => {
|
|
31054
31056
|
options.writeOutput?.(
|
|
31055
31057
|
"agent_bridge_socket_cycle reason=output_ack_retries_exhausted"
|
|
@@ -31336,7 +31338,12 @@ function createTerminalAuthDrainController(input) {
|
|
|
31336
31338
|
if (!current) {
|
|
31337
31339
|
return;
|
|
31338
31340
|
}
|
|
31339
|
-
|
|
31341
|
+
if (current.absoluteTimeout) {
|
|
31342
|
+
clearTimeout(current.absoluteTimeout);
|
|
31343
|
+
}
|
|
31344
|
+
if (current.noProgressTimeout) {
|
|
31345
|
+
clearTimeout(current.noProgressTimeout);
|
|
31346
|
+
}
|
|
31340
31347
|
if (current.redialTimer) {
|
|
31341
31348
|
clearTimeout(current.redialTimer);
|
|
31342
31349
|
}
|
|
@@ -31362,6 +31369,34 @@ function createTerminalAuthDrainController(input) {
|
|
|
31362
31369
|
context
|
|
31363
31370
|
);
|
|
31364
31371
|
};
|
|
31372
|
+
const timeoutDrain = (current, input2) => {
|
|
31373
|
+
if (state !== current) {
|
|
31374
|
+
return;
|
|
31375
|
+
}
|
|
31376
|
+
logDroppedPendingOutputs(input2.reason);
|
|
31377
|
+
settle(() => current.reject(new Error(input2.error)));
|
|
31378
|
+
};
|
|
31379
|
+
const scheduleNoProgressTimeout = (current) => {
|
|
31380
|
+
if (current.noProgressTimeout) {
|
|
31381
|
+
clearTimeout(current.noProgressTimeout);
|
|
31382
|
+
}
|
|
31383
|
+
current.noProgressTimeout = setTimeout(() => {
|
|
31384
|
+
timeoutDrain(current, {
|
|
31385
|
+
reason: "drain_no_progress_timeout",
|
|
31386
|
+
error: `Timed out draining pending bridge output after terminal auth with no output ack progress for ${AGENT_BRIDGE_TERMINAL_AUTH_DRAIN_NO_PROGRESS_TIMEOUT_MS}ms`
|
|
31387
|
+
});
|
|
31388
|
+
}, AGENT_BRIDGE_TERMINAL_AUTH_DRAIN_NO_PROGRESS_TIMEOUT_MS);
|
|
31389
|
+
current.noProgressTimeout.unref?.();
|
|
31390
|
+
};
|
|
31391
|
+
const scheduleAbsoluteTimeout = (current) => {
|
|
31392
|
+
current.absoluteTimeout = setTimeout(() => {
|
|
31393
|
+
timeoutDrain(current, {
|
|
31394
|
+
reason: "drain_absolute_timeout",
|
|
31395
|
+
error: `Timed out draining pending bridge output after terminal auth at the ${AGENT_BRIDGE_TERMINAL_AUTH_DRAIN_ABSOLUTE_TIMEOUT_MS}ms absolute safety bound`
|
|
31396
|
+
});
|
|
31397
|
+
}, AGENT_BRIDGE_TERMINAL_AUTH_DRAIN_ABSOLUTE_TIMEOUT_MS);
|
|
31398
|
+
current.absoluteTimeout.unref?.();
|
|
31399
|
+
};
|
|
31365
31400
|
const scheduleRedial = () => {
|
|
31366
31401
|
const current = state;
|
|
31367
31402
|
if (!current || current.redialTimer) {
|
|
@@ -31401,25 +31436,18 @@ function createTerminalAuthDrainController(input) {
|
|
|
31401
31436
|
resolveDrain = resolve4;
|
|
31402
31437
|
rejectDrain = reject;
|
|
31403
31438
|
});
|
|
31404
|
-
const
|
|
31405
|
-
|
|
31406
|
-
|
|
31407
|
-
rejectDrain(
|
|
31408
|
-
new Error(
|
|
31409
|
-
`Timed out draining pending bridge output after terminal auth in ${AGENT_BRIDGE_TERMINAL_AUTH_DRAIN_TIMEOUT_MS}ms`
|
|
31410
|
-
)
|
|
31411
|
-
);
|
|
31412
|
-
});
|
|
31413
|
-
}, AGENT_BRIDGE_TERMINAL_AUTH_DRAIN_TIMEOUT_MS);
|
|
31414
|
-
timeout.unref?.();
|
|
31415
|
-
state = {
|
|
31439
|
+
const current = {
|
|
31440
|
+
absoluteTimeout: null,
|
|
31441
|
+
noProgressTimeout: null,
|
|
31416
31442
|
promise: promise2,
|
|
31417
31443
|
redialTimer: null,
|
|
31418
31444
|
reject: rejectDrain,
|
|
31419
31445
|
resolve: resolveDrain,
|
|
31420
|
-
startedAt
|
|
31421
|
-
timeout
|
|
31446
|
+
startedAt
|
|
31422
31447
|
};
|
|
31448
|
+
state = current;
|
|
31449
|
+
scheduleNoProgressTimeout(current);
|
|
31450
|
+
scheduleAbsoluteTimeout(current);
|
|
31423
31451
|
input.writeOutput?.("agent_bridge_terminal_auth_drain_started");
|
|
31424
31452
|
input.runtimeLogger?.warn("agent_bridge_terminal_auth_drain_started");
|
|
31425
31453
|
input.socket.auth = { token: input.token, terminalDrain: true };
|
|
@@ -31487,11 +31515,20 @@ function createTerminalAuthDrainController(input) {
|
|
|
31487
31515
|
}
|
|
31488
31516
|
return terminalAuthExit;
|
|
31489
31517
|
};
|
|
31518
|
+
const handleOutputAckProgress = () => {
|
|
31519
|
+
const current = state;
|
|
31520
|
+
if (!current) {
|
|
31521
|
+
return false;
|
|
31522
|
+
}
|
|
31523
|
+
scheduleNoProgressTimeout(current);
|
|
31524
|
+
return true;
|
|
31525
|
+
};
|
|
31490
31526
|
return {
|
|
31491
31527
|
begin,
|
|
31492
31528
|
handleConnected,
|
|
31493
31529
|
handleConnectError,
|
|
31494
31530
|
handleDisconnect,
|
|
31531
|
+
handleOutputAckProgress,
|
|
31495
31532
|
suppressesReconnect: () => terminalAuthExit || state !== null
|
|
31496
31533
|
};
|
|
31497
31534
|
}
|
|
@@ -38619,6 +38656,210 @@ var RuntimeRestartDiagnosticRecordSchema = external_exports.object({
|
|
|
38619
38656
|
createdAt: external_exports.string().datetime()
|
|
38620
38657
|
});
|
|
38621
38658
|
|
|
38659
|
+
// ../../packages/schemas/src/session-attribution-epochs.ts
|
|
38660
|
+
var ATTRIBUTION_GRADES = ["derived", "asserted"];
|
|
38661
|
+
var AttributionGradeSchema = external_exports.enum(ATTRIBUTION_GRADES);
|
|
38662
|
+
var AttributionRequesterSnapshotSchema = external_exports.object({
|
|
38663
|
+
origin: RequesterRootOriginSchema,
|
|
38664
|
+
userId: UserIdSchema.nullable()
|
|
38665
|
+
}).strict();
|
|
38666
|
+
var SessionAttributionEpochCreateSchema = external_exports.object({
|
|
38667
|
+
organizationId: OrganizationIdSchema,
|
|
38668
|
+
projectId: ProjectIdSchema.nullable(),
|
|
38669
|
+
sessionId: SessionIdSchema2,
|
|
38670
|
+
sourceCommandId: SessionCommandIdSchema2,
|
|
38671
|
+
requesterKey: external_exports.string().trim().min(1),
|
|
38672
|
+
requesterSnapshot: AttributionRequesterSnapshotSchema.nullable(),
|
|
38673
|
+
attributionGrade: AttributionGradeSchema,
|
|
38674
|
+
assertedByCommandId: SessionCommandIdSchema2.nullable(),
|
|
38675
|
+
assertedBySessionId: SessionIdSchema2.nullable(),
|
|
38676
|
+
assertedByAgentResourceId: external_exports.string().trim().min(1).nullable(),
|
|
38677
|
+
fundingSource: ModelCredentialFundingSourceSchema.nullable(),
|
|
38678
|
+
providerGrantId: ProviderGrantIdSchema.nullable(),
|
|
38679
|
+
userModelSubscriptionId: UserSubscriptionCredentialIdSchema.nullable()
|
|
38680
|
+
}).strict();
|
|
38681
|
+
var SessionAttributionEpochRecordSchema = SessionAttributionEpochCreateSchema.extend({
|
|
38682
|
+
id: SessionAttributionEpochIdSchema,
|
|
38683
|
+
createdAt: external_exports.string().datetime()
|
|
38684
|
+
}).strict();
|
|
38685
|
+
|
|
38686
|
+
// ../../packages/schemas/src/usage.ts
|
|
38687
|
+
var UsageHarnessSchema = external_exports.enum(AGENT_HARNESSES);
|
|
38688
|
+
var NonNegativeTokenCountSchema = external_exports.number().int().nonnegative();
|
|
38689
|
+
var NonNegativeUsdSchema2 = external_exports.number().nonnegative();
|
|
38690
|
+
var UsageEventSchema = external_exports.object({
|
|
38691
|
+
// Tenant + lineage attribution. projectId is nullable because a resource can
|
|
38692
|
+
// belong directly to an organization with no project.
|
|
38693
|
+
organizationId: OrganizationIdSchema,
|
|
38694
|
+
projectId: ProjectIdSchema.nullable(),
|
|
38695
|
+
sessionId: SessionIdSchema2,
|
|
38696
|
+
agentResourceId: external_exports.string().trim().min(1),
|
|
38697
|
+
harness: UsageHarnessSchema,
|
|
38698
|
+
// The concrete model id the call billed against (e.g. "claude-opus-4-8"),
|
|
38699
|
+
// taken from the response rather than any selection layer — a single run can
|
|
38700
|
+
// touch multiple models, so this is per-call, never per-run.
|
|
38701
|
+
model: external_exports.string().trim().min(1),
|
|
38702
|
+
inputTokens: NonNegativeTokenCountSchema,
|
|
38703
|
+
outputTokens: NonNegativeTokenCountSchema,
|
|
38704
|
+
cacheCreationTokens: NonNegativeTokenCountSchema,
|
|
38705
|
+
cacheReadTokens: NonNegativeTokenCountSchema,
|
|
38706
|
+
// The provider's own cost when it reports one, kept only for reconciliation.
|
|
38707
|
+
// Nullable/absent because it can be 0 or missing — never the billing source.
|
|
38708
|
+
providerCostUsd: NonNegativeUsdSchema2.nullable(),
|
|
38709
|
+
// Platform-derived cost and the rate-card version it was derived under, so a
|
|
38710
|
+
// later rate-card change never silently rewrites historical cost.
|
|
38711
|
+
derivedCostUsd: NonNegativeUsdSchema2,
|
|
38712
|
+
pricingVersion: external_exports.string().trim().min(1),
|
|
38713
|
+
// What this call debits from the organization's credit balance, and the fee
|
|
38714
|
+
// card it was derived under (see `./billing`). Required — a writer that
|
|
38715
|
+
// forgets it would silently record unbilled usage, so there is no default.
|
|
38716
|
+
billedCostUsd: NonNegativeUsdSchema2,
|
|
38717
|
+
billingFeeVersion: external_exports.string().trim().min(1),
|
|
38718
|
+
// Historical funding attribution for the model call. The provider grant id is
|
|
38719
|
+
// denormalized and nullable for platform-funded usage, matching the ledger's
|
|
38720
|
+
// no-FK audit-trail contract.
|
|
38721
|
+
fundingSource: ModelCredentialFundingSourceSchema.default("platform"),
|
|
38722
|
+
modelCredentialProviderGrantId: ProviderGrantIdSchema.nullable().default(null),
|
|
38723
|
+
// Optional during the cross-chunk rollout: B1 defines the attribution field
|
|
38724
|
+
// before B3 deploys its persistence column and D3 begins populating it.
|
|
38725
|
+
modelCredentialUserSubscriptionId: UserSubscriptionCredentialIdSchema.nullable().optional(),
|
|
38726
|
+
attributionEpochId: SessionAttributionEpochIdSchema.nullable().optional(),
|
|
38727
|
+
requesterKey: external_exports.string().trim().min(1).nullable().optional(),
|
|
38728
|
+
attributionGrade: AttributionGradeSchema.nullable().optional(),
|
|
38729
|
+
occurredAt: external_exports.string().datetime()
|
|
38730
|
+
});
|
|
38731
|
+
var UsageEventRecordSchema = UsageEventSchema.extend({
|
|
38732
|
+
id: external_exports.string().trim().min(1),
|
|
38733
|
+
attributionEpochId: SessionAttributionEpochIdSchema.nullable().default(null),
|
|
38734
|
+
requesterKey: external_exports.string().trim().min(1).nullable().default(null),
|
|
38735
|
+
attributionGrade: AttributionGradeSchema.nullable().default(null),
|
|
38736
|
+
// Set on append-only correction rows: this row replaces the pointed-at row's
|
|
38737
|
+
// amounts, and ledger readers exclude any row another row supersedes.
|
|
38738
|
+
supersedesUsageEventId: external_exports.string().trim().min(1).nullable().default(null),
|
|
38739
|
+
createdAt: external_exports.string().datetime()
|
|
38740
|
+
});
|
|
38741
|
+
var UsageTotalsSchema = external_exports.object({
|
|
38742
|
+
eventCount: NonNegativeTokenCountSchema,
|
|
38743
|
+
inputTokens: NonNegativeTokenCountSchema,
|
|
38744
|
+
outputTokens: NonNegativeTokenCountSchema,
|
|
38745
|
+
cacheCreationTokens: NonNegativeTokenCountSchema,
|
|
38746
|
+
cacheReadTokens: NonNegativeTokenCountSchema,
|
|
38747
|
+
totalTokens: NonNegativeTokenCountSchema,
|
|
38748
|
+
billedCostUsd: NonNegativeUsdSchema2
|
|
38749
|
+
});
|
|
38750
|
+
var SessionUsageModelSummarySchema = UsageTotalsSchema.extend({
|
|
38751
|
+
model: external_exports.string().trim().min(1)
|
|
38752
|
+
});
|
|
38753
|
+
var UsageFundingSummarySchema = UsageTotalsSchema.extend({
|
|
38754
|
+
fundingSource: ModelCredentialFundingSourceSchema,
|
|
38755
|
+
coveredInferenceCostUsd: NonNegativeUsdSchema2
|
|
38756
|
+
});
|
|
38757
|
+
var SessionModelFundingStateSchema = external_exports.object({
|
|
38758
|
+
fundingSource: ModelCredentialFundingSourceSchema,
|
|
38759
|
+
provider: external_exports.string().trim().min(1),
|
|
38760
|
+
// The subscription owner's display name for user_subscription funding, so
|
|
38761
|
+
// the session header can say whose key is being used. Optional for old
|
|
38762
|
+
// writers; null when the name cannot resolve.
|
|
38763
|
+
ownerDisplayName: external_exports.string().trim().min(1).nullable().optional()
|
|
38764
|
+
});
|
|
38765
|
+
var SessionUsageCurrentAttributionSchema = external_exports.object({
|
|
38766
|
+
requesterKey: external_exports.string().trim().min(1),
|
|
38767
|
+
requesterDisplayName: external_exports.string().trim().min(1).nullable(),
|
|
38768
|
+
attributionGrade: AttributionGradeSchema
|
|
38769
|
+
}).strip();
|
|
38770
|
+
var SessionUsageRequesterSummarySchema = external_exports.object({
|
|
38771
|
+
requesterKey: external_exports.string().trim().min(1).nullable(),
|
|
38772
|
+
requesterDisplayName: external_exports.string().trim().min(1).nullable(),
|
|
38773
|
+
billedCostUsd: NonNegativeUsdSchema2,
|
|
38774
|
+
attributionGrades: external_exports.array(AttributionGradeSchema)
|
|
38775
|
+
}).strip();
|
|
38776
|
+
var SessionUsageResponseSchema = external_exports.object({
|
|
38777
|
+
sessionId: SessionIdSchema2,
|
|
38778
|
+
totals: UsageTotalsSchema,
|
|
38779
|
+
models: external_exports.array(SessionUsageModelSummarySchema),
|
|
38780
|
+
byFundingSource: external_exports.array(UsageFundingSummarySchema),
|
|
38781
|
+
byRequester: external_exports.array(SessionUsageRequesterSummarySchema).optional().default([]),
|
|
38782
|
+
currentAttribution: SessionUsageCurrentAttributionSchema.nullable().optional().default(null),
|
|
38783
|
+
funding: SessionModelFundingStateSchema.nullable(),
|
|
38784
|
+
firstUsageAt: external_exports.string().datetime().nullable(),
|
|
38785
|
+
lastUsageAt: external_exports.string().datetime().nullable()
|
|
38786
|
+
}).strip();
|
|
38787
|
+
var PROJECT_USAGE_RANGE_KEYS = ["7d", "30d"];
|
|
38788
|
+
var ProjectUsageRangeKeySchema = external_exports.enum(PROJECT_USAGE_RANGE_KEYS);
|
|
38789
|
+
var UtcDateSchema = external_exports.string().regex(/^\d{4}-\d{2}-\d{2}$/);
|
|
38790
|
+
var ProjectUsageTotalsSchema = UsageTotalsSchema.extend({
|
|
38791
|
+
sessionCount: NonNegativeTokenCountSchema,
|
|
38792
|
+
// Share of all tokens served from prompt-cache reads (0..1); 0 when the
|
|
38793
|
+
// window has no tokens at all.
|
|
38794
|
+
cacheReadShare: external_exports.number().min(0).max(1)
|
|
38795
|
+
});
|
|
38796
|
+
var ProjectUsageAgentSummarySchema = UsageTotalsSchema.extend({
|
|
38797
|
+
agentResourceId: external_exports.string().trim().min(1),
|
|
38798
|
+
// Resolved from the agent resource (archived agents included); null only
|
|
38799
|
+
// when the agent row no longer exists at all — the ledger deliberately
|
|
38800
|
+
// outlives its attribution targets.
|
|
38801
|
+
agentName: external_exports.string().trim().min(1).nullable(),
|
|
38802
|
+
sessionCount: NonNegativeTokenCountSchema
|
|
38803
|
+
});
|
|
38804
|
+
var ProjectUsageModelSummarySchema = UsageTotalsSchema.extend({
|
|
38805
|
+
model: external_exports.string().trim().min(1)
|
|
38806
|
+
});
|
|
38807
|
+
var ProjectUsageSubscriptionSummarySchema = UsageTotalsSchema.extend({
|
|
38808
|
+
userSubscriptionId: UserSubscriptionCredentialIdSchema.nullable(),
|
|
38809
|
+
coveredInferenceCostUsd: NonNegativeUsdSchema2
|
|
38810
|
+
});
|
|
38811
|
+
var ProjectUsageSubscriptionSliceSchema = external_exports.object({
|
|
38812
|
+
totals: UsageTotalsSchema.extend({
|
|
38813
|
+
coveredInferenceCostUsd: NonNegativeUsdSchema2
|
|
38814
|
+
}),
|
|
38815
|
+
subscriptions: external_exports.array(ProjectUsageSubscriptionSummarySchema)
|
|
38816
|
+
});
|
|
38817
|
+
var ProjectUsageRequesterAttributionSchema = external_exports.object({
|
|
38818
|
+
requesterKey: external_exports.string().trim().min(1).nullable(),
|
|
38819
|
+
requesterDisplayName: external_exports.string().trim().min(1).nullable(),
|
|
38820
|
+
attributionEpochIds: external_exports.array(SessionAttributionEpochIdSchema),
|
|
38821
|
+
attributionGrades: external_exports.array(AttributionGradeSchema)
|
|
38822
|
+
});
|
|
38823
|
+
var ProjectUsageRequesterSummarySchema = UsageTotalsSchema.extend({
|
|
38824
|
+
...ProjectUsageRequesterAttributionSchema.shape,
|
|
38825
|
+
sessionCount: NonNegativeTokenCountSchema
|
|
38826
|
+
});
|
|
38827
|
+
var ProjectUsageDayAgentSliceSchema = external_exports.object({
|
|
38828
|
+
agentResourceId: external_exports.string().trim().min(1),
|
|
38829
|
+
billedCostUsd: NonNegativeUsdSchema2
|
|
38830
|
+
});
|
|
38831
|
+
var ProjectUsageDayModelSliceSchema = external_exports.object({
|
|
38832
|
+
model: external_exports.string().trim().min(1),
|
|
38833
|
+
billedCostUsd: NonNegativeUsdSchema2
|
|
38834
|
+
});
|
|
38835
|
+
var ProjectUsageDayPointSchema = UsageTotalsSchema.extend({
|
|
38836
|
+
date: UtcDateSchema,
|
|
38837
|
+
byAgent: external_exports.array(ProjectUsageDayAgentSliceSchema),
|
|
38838
|
+
byModel: external_exports.array(ProjectUsageDayModelSliceSchema)
|
|
38839
|
+
});
|
|
38840
|
+
var ProjectUsageResponseSchema = external_exports.object({
|
|
38841
|
+
organizationId: OrganizationIdSchema,
|
|
38842
|
+
projectId: ProjectIdSchema,
|
|
38843
|
+
range: external_exports.object({
|
|
38844
|
+
key: ProjectUsageRangeKeySchema,
|
|
38845
|
+
since: external_exports.string().datetime(),
|
|
38846
|
+
until: external_exports.string().datetime()
|
|
38847
|
+
}),
|
|
38848
|
+
totals: ProjectUsageTotalsSchema,
|
|
38849
|
+
taskThroughput: external_exports.object({
|
|
38850
|
+
created: external_exports.number().int().nonnegative(),
|
|
38851
|
+
completed: external_exports.number().int().nonnegative(),
|
|
38852
|
+
dropped: external_exports.number().int().nonnegative(),
|
|
38853
|
+
costPerCompletedTaskUsd: NonNegativeUsdSchema2.nullable()
|
|
38854
|
+
}).optional(),
|
|
38855
|
+
byAgent: external_exports.array(ProjectUsageAgentSummarySchema),
|
|
38856
|
+
byModel: external_exports.array(ProjectUsageModelSummarySchema),
|
|
38857
|
+
byFundingSource: external_exports.array(UsageFundingSummarySchema),
|
|
38858
|
+
subscriptionUsage: ProjectUsageSubscriptionSliceSchema,
|
|
38859
|
+
byRequester: external_exports.array(ProjectUsageRequesterSummarySchema),
|
|
38860
|
+
daily: external_exports.array(ProjectUsageDayPointSchema)
|
|
38861
|
+
});
|
|
38862
|
+
|
|
38622
38863
|
// ../../packages/schemas/src/session-introspection.ts
|
|
38623
38864
|
var TruncatedValueSchema = external_exports.object({
|
|
38624
38865
|
truncated: external_exports.literal(true),
|
|
@@ -38771,6 +39012,44 @@ var RunModelFallbackSchema = external_exports.object({
|
|
|
38771
39012
|
activatedAt: external_exports.string().datetime().nullable(),
|
|
38772
39013
|
fallbackModelId: external_exports.string().nullable()
|
|
38773
39014
|
});
|
|
39015
|
+
var RUN_USAGE_BREAKDOWN_LIMIT = 8;
|
|
39016
|
+
var RunUsageTotalsSchema = external_exports.object({
|
|
39017
|
+
eventCount: external_exports.number().int().nonnegative(),
|
|
39018
|
+
inputTokens: external_exports.number().int().nonnegative(),
|
|
39019
|
+
outputTokens: external_exports.number().int().nonnegative(),
|
|
39020
|
+
cacheCreationTokens: external_exports.number().int().nonnegative(),
|
|
39021
|
+
cacheReadTokens: external_exports.number().int().nonnegative(),
|
|
39022
|
+
/**
|
|
39023
|
+
* Stored rate-card-derived model cost; never recomputed by this read.
|
|
39024
|
+
* Omitted when the caller lacks `billing:read`.
|
|
39025
|
+
*/
|
|
39026
|
+
derivedCostUsd: external_exports.number().nonnegative().optional(),
|
|
39027
|
+
/**
|
|
39028
|
+
* Sum of provider-reported costs only when every included event reported
|
|
39029
|
+
* one; null for empty, legacy, or partially reported groups, and omitted
|
|
39030
|
+
* when the caller lacks `billing:read`.
|
|
39031
|
+
*/
|
|
39032
|
+
providerCostUsd: external_exports.number().nonnegative().nullable().optional()
|
|
39033
|
+
});
|
|
39034
|
+
var RunUsageHarnessModelSchema = RunUsageTotalsSchema.extend({
|
|
39035
|
+
harness: UsageHarnessSchema,
|
|
39036
|
+
model: external_exports.string().trim().min(1)
|
|
39037
|
+
});
|
|
39038
|
+
var RunUsageSummarySchema = external_exports.object({
|
|
39039
|
+
totals: RunUsageTotalsSchema,
|
|
39040
|
+
/**
|
|
39041
|
+
* Cache reads divided by prompt-side tokens: input + cache creation/write +
|
|
39042
|
+
* cache read. Output tokens are excluded; value is null when the exposed
|
|
39043
|
+
* denominator is zero.
|
|
39044
|
+
*/
|
|
39045
|
+
cacheReadRatio: external_exports.object({
|
|
39046
|
+
denominatorTokens: external_exports.number().int().nonnegative(),
|
|
39047
|
+
value: external_exports.number().min(0).max(1).nullable()
|
|
39048
|
+
}),
|
|
39049
|
+
/** Highest derived-cost harness/model groups, in descending spend order. */
|
|
39050
|
+
byHarnessModel: external_exports.array(RunUsageHarnessModelSchema).max(RUN_USAGE_BREAKDOWN_LIMIT),
|
|
39051
|
+
breakdownTruncated: external_exports.boolean()
|
|
39052
|
+
});
|
|
38774
39053
|
var RunSummarySchema = external_exports.object({
|
|
38775
39054
|
session: external_exports.object({
|
|
38776
39055
|
id: SessionIdSchema2,
|
|
@@ -38886,7 +39165,9 @@ var RunSummarySchema = external_exports.object({
|
|
|
38886
39165
|
recent: external_exports.array(RunRuntimeRestartSchema)
|
|
38887
39166
|
}),
|
|
38888
39167
|
/** Latest same-provider model-fallback activation for the session, if any. */
|
|
38889
|
-
modelFallback: RunModelFallbackSchema
|
|
39168
|
+
modelFallback: RunModelFallbackSchema,
|
|
39169
|
+
/** Current unsuperseded model usage for the session. */
|
|
39170
|
+
usage: RunUsageSummarySchema
|
|
38890
39171
|
});
|
|
38891
39172
|
|
|
38892
39173
|
// ../../packages/schemas/src/session-turns.ts
|
|
@@ -39183,33 +39464,6 @@ var SessionCommandDebounceRevertInputSchema = external_exports.object({
|
|
|
39183
39464
|
}).strip();
|
|
39184
39465
|
var RealtimeRunCursorSchema = external_exports.string().regex(/^rt:(0|[1-9]\d*)$/);
|
|
39185
39466
|
|
|
39186
|
-
// ../../packages/schemas/src/session-attribution-epochs.ts
|
|
39187
|
-
var ATTRIBUTION_GRADES = ["derived", "asserted"];
|
|
39188
|
-
var AttributionGradeSchema = external_exports.enum(ATTRIBUTION_GRADES);
|
|
39189
|
-
var AttributionRequesterSnapshotSchema = external_exports.object({
|
|
39190
|
-
origin: RequesterRootOriginSchema,
|
|
39191
|
-
userId: UserIdSchema.nullable()
|
|
39192
|
-
}).strict();
|
|
39193
|
-
var SessionAttributionEpochCreateSchema = external_exports.object({
|
|
39194
|
-
organizationId: OrganizationIdSchema,
|
|
39195
|
-
projectId: ProjectIdSchema.nullable(),
|
|
39196
|
-
sessionId: SessionIdSchema2,
|
|
39197
|
-
sourceCommandId: SessionCommandIdSchema2,
|
|
39198
|
-
requesterKey: external_exports.string().trim().min(1),
|
|
39199
|
-
requesterSnapshot: AttributionRequesterSnapshotSchema.nullable(),
|
|
39200
|
-
attributionGrade: AttributionGradeSchema,
|
|
39201
|
-
assertedByCommandId: SessionCommandIdSchema2.nullable(),
|
|
39202
|
-
assertedBySessionId: SessionIdSchema2.nullable(),
|
|
39203
|
-
assertedByAgentResourceId: external_exports.string().trim().min(1).nullable(),
|
|
39204
|
-
fundingSource: ModelCredentialFundingSourceSchema.nullable(),
|
|
39205
|
-
providerGrantId: ProviderGrantIdSchema.nullable(),
|
|
39206
|
-
userModelSubscriptionId: UserSubscriptionCredentialIdSchema.nullable()
|
|
39207
|
-
}).strict();
|
|
39208
|
-
var SessionAttributionEpochRecordSchema = SessionAttributionEpochCreateSchema.extend({
|
|
39209
|
-
id: SessionAttributionEpochIdSchema,
|
|
39210
|
-
createdAt: external_exports.string().datetime()
|
|
39211
|
-
}).strict();
|
|
39212
|
-
|
|
39213
39467
|
// ../../packages/schemas/src/spend-cap-runtime.ts
|
|
39214
39468
|
var SpendCapOverrideStateSchema = external_exports.object({
|
|
39215
39469
|
active: external_exports.boolean(),
|
|
@@ -39361,183 +39615,6 @@ var ResourceReconciliationScopeSchema = external_exports.object({
|
|
|
39361
39615
|
projectId: external_exports.string().trim().min(1).nullable()
|
|
39362
39616
|
}).strict();
|
|
39363
39617
|
|
|
39364
|
-
// ../../packages/schemas/src/usage.ts
|
|
39365
|
-
var UsageHarnessSchema = external_exports.enum(AGENT_HARNESSES);
|
|
39366
|
-
var NonNegativeTokenCountSchema = external_exports.number().int().nonnegative();
|
|
39367
|
-
var NonNegativeUsdSchema2 = external_exports.number().nonnegative();
|
|
39368
|
-
var UsageEventSchema = external_exports.object({
|
|
39369
|
-
// Tenant + lineage attribution. projectId is nullable because a resource can
|
|
39370
|
-
// belong directly to an organization with no project.
|
|
39371
|
-
organizationId: OrganizationIdSchema,
|
|
39372
|
-
projectId: ProjectIdSchema.nullable(),
|
|
39373
|
-
sessionId: SessionIdSchema2,
|
|
39374
|
-
agentResourceId: external_exports.string().trim().min(1),
|
|
39375
|
-
harness: UsageHarnessSchema,
|
|
39376
|
-
// The concrete model id the call billed against (e.g. "claude-opus-4-8"),
|
|
39377
|
-
// taken from the response rather than any selection layer — a single run can
|
|
39378
|
-
// touch multiple models, so this is per-call, never per-run.
|
|
39379
|
-
model: external_exports.string().trim().min(1),
|
|
39380
|
-
inputTokens: NonNegativeTokenCountSchema,
|
|
39381
|
-
outputTokens: NonNegativeTokenCountSchema,
|
|
39382
|
-
cacheCreationTokens: NonNegativeTokenCountSchema,
|
|
39383
|
-
cacheReadTokens: NonNegativeTokenCountSchema,
|
|
39384
|
-
// The provider's own cost when it reports one, kept only for reconciliation.
|
|
39385
|
-
// Nullable/absent because it can be 0 or missing — never the billing source.
|
|
39386
|
-
providerCostUsd: NonNegativeUsdSchema2.nullable(),
|
|
39387
|
-
// Platform-derived cost and the rate-card version it was derived under, so a
|
|
39388
|
-
// later rate-card change never silently rewrites historical cost.
|
|
39389
|
-
derivedCostUsd: NonNegativeUsdSchema2,
|
|
39390
|
-
pricingVersion: external_exports.string().trim().min(1),
|
|
39391
|
-
// What this call debits from the organization's credit balance, and the fee
|
|
39392
|
-
// card it was derived under (see `./billing`). Required — a writer that
|
|
39393
|
-
// forgets it would silently record unbilled usage, so there is no default.
|
|
39394
|
-
billedCostUsd: NonNegativeUsdSchema2,
|
|
39395
|
-
billingFeeVersion: external_exports.string().trim().min(1),
|
|
39396
|
-
// Historical funding attribution for the model call. The provider grant id is
|
|
39397
|
-
// denormalized and nullable for platform-funded usage, matching the ledger's
|
|
39398
|
-
// no-FK audit-trail contract.
|
|
39399
|
-
fundingSource: ModelCredentialFundingSourceSchema.default("platform"),
|
|
39400
|
-
modelCredentialProviderGrantId: ProviderGrantIdSchema.nullable().default(null),
|
|
39401
|
-
// Optional during the cross-chunk rollout: B1 defines the attribution field
|
|
39402
|
-
// before B3 deploys its persistence column and D3 begins populating it.
|
|
39403
|
-
modelCredentialUserSubscriptionId: UserSubscriptionCredentialIdSchema.nullable().optional(),
|
|
39404
|
-
attributionEpochId: SessionAttributionEpochIdSchema.nullable().optional(),
|
|
39405
|
-
requesterKey: external_exports.string().trim().min(1).nullable().optional(),
|
|
39406
|
-
attributionGrade: AttributionGradeSchema.nullable().optional(),
|
|
39407
|
-
occurredAt: external_exports.string().datetime()
|
|
39408
|
-
});
|
|
39409
|
-
var UsageEventRecordSchema = UsageEventSchema.extend({
|
|
39410
|
-
id: external_exports.string().trim().min(1),
|
|
39411
|
-
attributionEpochId: SessionAttributionEpochIdSchema.nullable().default(null),
|
|
39412
|
-
requesterKey: external_exports.string().trim().min(1).nullable().default(null),
|
|
39413
|
-
attributionGrade: AttributionGradeSchema.nullable().default(null),
|
|
39414
|
-
// Set on append-only correction rows: this row replaces the pointed-at row's
|
|
39415
|
-
// amounts, and ledger readers exclude any row another row supersedes.
|
|
39416
|
-
supersedesUsageEventId: external_exports.string().trim().min(1).nullable().default(null),
|
|
39417
|
-
createdAt: external_exports.string().datetime()
|
|
39418
|
-
});
|
|
39419
|
-
var UsageTotalsSchema = external_exports.object({
|
|
39420
|
-
eventCount: NonNegativeTokenCountSchema,
|
|
39421
|
-
inputTokens: NonNegativeTokenCountSchema,
|
|
39422
|
-
outputTokens: NonNegativeTokenCountSchema,
|
|
39423
|
-
cacheCreationTokens: NonNegativeTokenCountSchema,
|
|
39424
|
-
cacheReadTokens: NonNegativeTokenCountSchema,
|
|
39425
|
-
totalTokens: NonNegativeTokenCountSchema,
|
|
39426
|
-
billedCostUsd: NonNegativeUsdSchema2
|
|
39427
|
-
});
|
|
39428
|
-
var SessionUsageModelSummarySchema = UsageTotalsSchema.extend({
|
|
39429
|
-
model: external_exports.string().trim().min(1)
|
|
39430
|
-
});
|
|
39431
|
-
var UsageFundingSummarySchema = UsageTotalsSchema.extend({
|
|
39432
|
-
fundingSource: ModelCredentialFundingSourceSchema,
|
|
39433
|
-
coveredInferenceCostUsd: NonNegativeUsdSchema2
|
|
39434
|
-
});
|
|
39435
|
-
var SessionModelFundingStateSchema = external_exports.object({
|
|
39436
|
-
fundingSource: ModelCredentialFundingSourceSchema,
|
|
39437
|
-
provider: external_exports.string().trim().min(1),
|
|
39438
|
-
// The subscription owner's display name for user_subscription funding, so
|
|
39439
|
-
// the session header can say whose key is being used. Optional for old
|
|
39440
|
-
// writers; null when the name cannot resolve.
|
|
39441
|
-
ownerDisplayName: external_exports.string().trim().min(1).nullable().optional()
|
|
39442
|
-
});
|
|
39443
|
-
var SessionUsageCurrentAttributionSchema = external_exports.object({
|
|
39444
|
-
requesterKey: external_exports.string().trim().min(1),
|
|
39445
|
-
requesterDisplayName: external_exports.string().trim().min(1).nullable(),
|
|
39446
|
-
attributionGrade: AttributionGradeSchema
|
|
39447
|
-
}).strip();
|
|
39448
|
-
var SessionUsageRequesterSummarySchema = external_exports.object({
|
|
39449
|
-
requesterKey: external_exports.string().trim().min(1).nullable(),
|
|
39450
|
-
requesterDisplayName: external_exports.string().trim().min(1).nullable(),
|
|
39451
|
-
billedCostUsd: NonNegativeUsdSchema2,
|
|
39452
|
-
attributionGrades: external_exports.array(AttributionGradeSchema)
|
|
39453
|
-
}).strip();
|
|
39454
|
-
var SessionUsageResponseSchema = external_exports.object({
|
|
39455
|
-
sessionId: SessionIdSchema2,
|
|
39456
|
-
totals: UsageTotalsSchema,
|
|
39457
|
-
models: external_exports.array(SessionUsageModelSummarySchema),
|
|
39458
|
-
byFundingSource: external_exports.array(UsageFundingSummarySchema),
|
|
39459
|
-
byRequester: external_exports.array(SessionUsageRequesterSummarySchema).optional().default([]),
|
|
39460
|
-
currentAttribution: SessionUsageCurrentAttributionSchema.nullable().optional().default(null),
|
|
39461
|
-
funding: SessionModelFundingStateSchema.nullable(),
|
|
39462
|
-
firstUsageAt: external_exports.string().datetime().nullable(),
|
|
39463
|
-
lastUsageAt: external_exports.string().datetime().nullable()
|
|
39464
|
-
}).strip();
|
|
39465
|
-
var PROJECT_USAGE_RANGE_KEYS = ["7d", "30d"];
|
|
39466
|
-
var ProjectUsageRangeKeySchema = external_exports.enum(PROJECT_USAGE_RANGE_KEYS);
|
|
39467
|
-
var UtcDateSchema = external_exports.string().regex(/^\d{4}-\d{2}-\d{2}$/);
|
|
39468
|
-
var ProjectUsageTotalsSchema = UsageTotalsSchema.extend({
|
|
39469
|
-
sessionCount: NonNegativeTokenCountSchema,
|
|
39470
|
-
// Share of all tokens served from prompt-cache reads (0..1); 0 when the
|
|
39471
|
-
// window has no tokens at all.
|
|
39472
|
-
cacheReadShare: external_exports.number().min(0).max(1)
|
|
39473
|
-
});
|
|
39474
|
-
var ProjectUsageAgentSummarySchema = UsageTotalsSchema.extend({
|
|
39475
|
-
agentResourceId: external_exports.string().trim().min(1),
|
|
39476
|
-
// Resolved from the agent resource (archived agents included); null only
|
|
39477
|
-
// when the agent row no longer exists at all — the ledger deliberately
|
|
39478
|
-
// outlives its attribution targets.
|
|
39479
|
-
agentName: external_exports.string().trim().min(1).nullable(),
|
|
39480
|
-
sessionCount: NonNegativeTokenCountSchema
|
|
39481
|
-
});
|
|
39482
|
-
var ProjectUsageModelSummarySchema = UsageTotalsSchema.extend({
|
|
39483
|
-
model: external_exports.string().trim().min(1)
|
|
39484
|
-
});
|
|
39485
|
-
var ProjectUsageSubscriptionSummarySchema = UsageTotalsSchema.extend({
|
|
39486
|
-
userSubscriptionId: UserSubscriptionCredentialIdSchema.nullable(),
|
|
39487
|
-
coveredInferenceCostUsd: NonNegativeUsdSchema2
|
|
39488
|
-
});
|
|
39489
|
-
var ProjectUsageSubscriptionSliceSchema = external_exports.object({
|
|
39490
|
-
totals: UsageTotalsSchema.extend({
|
|
39491
|
-
coveredInferenceCostUsd: NonNegativeUsdSchema2
|
|
39492
|
-
}),
|
|
39493
|
-
subscriptions: external_exports.array(ProjectUsageSubscriptionSummarySchema)
|
|
39494
|
-
});
|
|
39495
|
-
var ProjectUsageRequesterAttributionSchema = external_exports.object({
|
|
39496
|
-
requesterKey: external_exports.string().trim().min(1).nullable(),
|
|
39497
|
-
requesterDisplayName: external_exports.string().trim().min(1).nullable(),
|
|
39498
|
-
attributionEpochIds: external_exports.array(SessionAttributionEpochIdSchema),
|
|
39499
|
-
attributionGrades: external_exports.array(AttributionGradeSchema)
|
|
39500
|
-
});
|
|
39501
|
-
var ProjectUsageRequesterSummarySchema = UsageTotalsSchema.extend({
|
|
39502
|
-
...ProjectUsageRequesterAttributionSchema.shape,
|
|
39503
|
-
sessionCount: NonNegativeTokenCountSchema
|
|
39504
|
-
});
|
|
39505
|
-
var ProjectUsageDayAgentSliceSchema = external_exports.object({
|
|
39506
|
-
agentResourceId: external_exports.string().trim().min(1),
|
|
39507
|
-
billedCostUsd: NonNegativeUsdSchema2
|
|
39508
|
-
});
|
|
39509
|
-
var ProjectUsageDayModelSliceSchema = external_exports.object({
|
|
39510
|
-
model: external_exports.string().trim().min(1),
|
|
39511
|
-
billedCostUsd: NonNegativeUsdSchema2
|
|
39512
|
-
});
|
|
39513
|
-
var ProjectUsageDayPointSchema = UsageTotalsSchema.extend({
|
|
39514
|
-
date: UtcDateSchema,
|
|
39515
|
-
byAgent: external_exports.array(ProjectUsageDayAgentSliceSchema),
|
|
39516
|
-
byModel: external_exports.array(ProjectUsageDayModelSliceSchema)
|
|
39517
|
-
});
|
|
39518
|
-
var ProjectUsageResponseSchema = external_exports.object({
|
|
39519
|
-
organizationId: OrganizationIdSchema,
|
|
39520
|
-
projectId: ProjectIdSchema,
|
|
39521
|
-
range: external_exports.object({
|
|
39522
|
-
key: ProjectUsageRangeKeySchema,
|
|
39523
|
-
since: external_exports.string().datetime(),
|
|
39524
|
-
until: external_exports.string().datetime()
|
|
39525
|
-
}),
|
|
39526
|
-
totals: ProjectUsageTotalsSchema,
|
|
39527
|
-
taskThroughput: external_exports.object({
|
|
39528
|
-
created: external_exports.number().int().nonnegative(),
|
|
39529
|
-
completed: external_exports.number().int().nonnegative(),
|
|
39530
|
-
dropped: external_exports.number().int().nonnegative(),
|
|
39531
|
-
costPerCompletedTaskUsd: NonNegativeUsdSchema2.nullable()
|
|
39532
|
-
}).optional(),
|
|
39533
|
-
byAgent: external_exports.array(ProjectUsageAgentSummarySchema),
|
|
39534
|
-
byModel: external_exports.array(ProjectUsageModelSummarySchema),
|
|
39535
|
-
byFundingSource: external_exports.array(UsageFundingSummarySchema),
|
|
39536
|
-
subscriptionUsage: ProjectUsageSubscriptionSliceSchema,
|
|
39537
|
-
byRequester: external_exports.array(ProjectUsageRequesterSummarySchema),
|
|
39538
|
-
daily: external_exports.array(ProjectUsageDayPointSchema)
|
|
39539
|
-
});
|
|
39540
|
-
|
|
39541
39618
|
// ../../packages/schemas/src/user-subscriptions.ts
|
|
39542
39619
|
var ATTRIBUTION_COLD_BOUNDARY_IDLE_MS = 5 * 6e4;
|
|
39543
39620
|
var USER_SUBSCRIPTION_PROVIDERS = ["openai"];
|
|
@@ -72602,6 +72679,7 @@ var AgentBridgeOutputBuffer = class {
|
|
|
72602
72679
|
if (isSuccessfulOutputAck(ack)) {
|
|
72603
72680
|
this.pendingOutputs.delete(output.outputSeq);
|
|
72604
72681
|
this.discardOnFailureOutputSeqs.delete(output.outputSeq);
|
|
72682
|
+
this.input.onOutputAckProgress?.();
|
|
72605
72683
|
this.input.runtimeLogger?.info(
|
|
72606
72684
|
"agent_bridge_output_buffer_emit_ready",
|
|
72607
72685
|
this.outputLogContext(output, {
|
|
@@ -77921,6 +77999,7 @@ function createHarnessCommandHandler(input) {
|
|
|
77921
77999
|
const config2 = resolveHarnessConfig(input.bootstrap);
|
|
77922
78000
|
const base = {
|
|
77923
78001
|
emitOutput: input.emitOutput,
|
|
78002
|
+
...input.onOutputAckProgress ? { onOutputAckProgress: input.onOutputAckProgress } : {},
|
|
77924
78003
|
...input.cycleSocket ? { cycleSocket: input.cycleSocket } : {},
|
|
77925
78004
|
...input.outputSeqStart !== void 0 ? { outputSeqStart: input.outputSeqStart } : {},
|
|
77926
78005
|
...input.runtimeLogger ? { runtimeLogger: input.runtimeLogger } : {},
|