@claudexor/schema 4.7.0 → 4.8.1
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/account-resources.d.ts +37 -37
- package/dist/account-routing-evidence.d.ts +14 -14
- package/dist/attachment.d.ts +178 -0
- package/dist/attachment.d.ts.map +1 -1
- package/dist/attachment.js +46 -0
- package/dist/attachment.js.map +1 -1
- package/dist/captured-run-start.d.ts +1105 -0
- package/dist/captured-run-start.d.ts.map +1 -0
- package/dist/captured-run-start.js +41 -0
- package/dist/captured-run-start.js.map +1 -0
- package/dist/command-summary.d.ts +1 -1
- package/dist/command-summary.d.ts.map +1 -1
- package/dist/command-summary.js +1 -0
- package/dist/command-summary.js.map +1 -1
- package/dist/control-harness-models.js +1 -1
- package/dist/control-harness-models.js.map +1 -1
- package/dist/control-operation-responses.d.ts +201 -9
- package/dist/control-operation-responses.d.ts.map +1 -1
- package/dist/control-operation-responses.js +7 -1
- package/dist/control-operation-responses.js.map +1 -1
- package/dist/control-run-detail.d.ts +277 -19
- package/dist/control-run-detail.d.ts.map +1 -1
- package/dist/control-run-detail.js +2 -0
- package/dist/control-run-detail.js.map +1 -1
- package/dist/control-run-failure.d.ts +29 -4
- package/dist/control-run-failure.d.ts.map +1 -1
- package/dist/control-run-failure.js +3 -0
- package/dist/control-run-failure.js.map +1 -1
- package/dist/control-run-retry.d.ts +31 -0
- package/dist/control-run-retry.d.ts.map +1 -1
- package/dist/control-run-retry.js +12 -1
- package/dist/control-run-retry.js.map +1 -1
- package/dist/control.d.ts +69 -5
- package/dist/control.d.ts.map +1 -1
- package/dist/control.js +3 -7
- package/dist/control.js.map +1 -1
- package/dist/credential-profile-snapshot.d.ts +28 -28
- package/dist/credential-profile.d.ts +1 -1
- package/dist/credential-profile.js +2 -2
- package/dist/credential-profile.js.map +1 -1
- package/dist/credential-store.d.ts +3 -2
- package/dist/credential-store.d.ts.map +1 -1
- package/dist/credential-store.js +5 -4
- package/dist/credential-store.js.map +1 -1
- package/dist/deferred-message.d.ts +2450 -0
- package/dist/deferred-message.d.ts.map +1 -0
- package/dist/deferred-message.js +186 -0
- package/dist/deferred-message.js.map +1 -0
- package/dist/events.d.ts +3 -3
- package/dist/events.js +1 -1
- package/dist/events.js.map +1 -1
- package/dist/harness-input.d.ts +15 -0
- package/dist/harness-input.d.ts.map +1 -1
- package/dist/harness-input.js +10 -1
- package/dist/harness-input.js.map +1 -1
- package/dist/harness-model.d.ts +65 -0
- package/dist/harness-model.d.ts.map +1 -1
- package/dist/harness-model.js +42 -0
- package/dist/harness-model.js.map +1 -1
- package/dist/harness-quota.d.ts +3 -3
- package/dist/harness.d.ts +61 -9
- package/dist/harness.d.ts.map +1 -1
- package/dist/harness.js +2 -2
- package/dist/harness.js.map +1 -1
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -1
- package/dist/mcp-run-result.d.ts +356 -12
- package/dist/mcp-run-result.d.ts.map +1 -1
- package/dist/mcp-run-result.js +5 -0
- package/dist/mcp-run-result.js.map +1 -1
- package/dist/mcp-run-wait.d.ts +133 -0
- package/dist/mcp-run-wait.d.ts.map +1 -1
- package/dist/mcp-run-wait.js +4 -0
- package/dist/mcp-run-wait.js.map +1 -1
- package/dist/mcp-upload.d.ts +133 -0
- package/dist/mcp-upload.d.ts.map +1 -0
- package/dist/mcp-upload.js +40 -0
- package/dist/mcp-upload.js.map +1 -0
- package/dist/quota-read.d.ts +8 -8
- package/dist/quota.d.ts +26 -20
- package/dist/quota.d.ts.map +1 -1
- package/dist/quota.js +11 -1
- package/dist/quota.js.map +1 -1
- package/dist/run-observation.d.ts +189 -0
- package/dist/run-observation.d.ts.map +1 -0
- package/dist/run-observation.js +93 -0
- package/dist/run-observation.js.map +1 -0
- package/dist/setup-login.d.ts +5 -5
- package/dist/setup.d.ts +63 -63
- package/dist/setup.d.ts.map +1 -1
- package/dist/setup.js +1 -1
- package/dist/setup.js.map +1 -1
- package/dist/task-group-runs.d.ts +257 -0
- package/dist/task-group-runs.d.ts.map +1 -0
- package/dist/task-group-runs.js +91 -0
- package/dist/task-group-runs.js.map +1 -0
- package/dist/task-group.d.ts +23 -0
- package/dist/task-group.d.ts.map +1 -0
- package/dist/task-group.js +38 -0
- package/dist/task-group.js.map +1 -0
- package/dist/telemetry.d.ts +136 -8
- package/dist/telemetry.d.ts.map +1 -1
- package/dist/telemetry.js +2 -5
- package/dist/telemetry.js.map +1 -1
- package/dist/thread-history.d.ts +12553 -0
- package/dist/thread-history.d.ts.map +1 -0
- package/dist/thread-history.js +291 -0
- package/dist/thread-history.js.map +1 -0
- package/generated/ControlAccountResetResponse.schema.json +1 -0
- package/generated/ControlAccountResourcesFreshnessResponse.schema.json +1 -0
- package/generated/ControlAccountResourcesResponse.schema.json +1 -0
- package/generated/ControlCredentialProfileCreateRequest.schema.json +1 -1
- package/generated/ControlCredentialProfilesQueryResponse.schema.json +1 -0
- package/generated/ControlCredentialProfilesResourcesResponse.schema.json +1 -0
- package/generated/ControlCredentialProfilesSnapshotResponse.schema.json +1 -0
- package/generated/ControlQueuedRunInfo.schema.json +10 -0
- package/generated/ControlQuotaFreshnessResponse.schema.json +1 -0
- package/generated/ControlQuotaQueryResponse.schema.json +1 -0
- package/generated/ControlQuotaResponse.schema.json +1 -0
- package/generated/ControlRunAgainDraft.schema.json +5 -0
- package/generated/ControlRunControlResponse.schema.json +169 -0
- package/generated/ControlRunDetail.schema.json +208 -1
- package/generated/ControlRunListResponse.schema.json +31 -1
- package/generated/ControlRunRetryResponse.schema.json +10 -0
- package/generated/ControlRunStartInfo.schema.json +10 -0
- package/generated/ControlRunStartRequest.schema.json +5 -0
- package/generated/ControlRunStartResponse.schema.json +18 -0
- package/generated/ControlRunSummary.schema.json +31 -1
- package/generated/ControlSetupJob.schema.json +2 -1
- package/generated/ControlSetupJobCreateRequest.schema.json +2 -1
- package/generated/ControlSetupJobEvent.schema.json +2 -1
- package/generated/ControlSetupJobListFilter.schema.json +2 -1
- package/generated/ControlSetupJobListResponse.schema.json +2 -1
- package/generated/ControlSetupJobSnapshot.schema.json +2 -1
- package/generated/ControlUploadImport.schema.json +124 -0
- package/generated/ControlUploadImportRequest.schema.json +66 -0
- package/generated/DeferredMessageCall.schema.json +331 -0
- package/generated/DeferredMessageDetail.schema.json +917 -0
- package/generated/DeferredMessageMutation.schema.json +315 -0
- package/generated/DeferredMessageProjection.schema.json +177 -0
- package/generated/DeferredMessageReadInput.schema.json +20 -0
- package/generated/DeferredMessageReadResult.schema.json +399 -0
- package/generated/DeferredMessageReceipt.schema.json +193 -0
- package/generated/HarnessEvent.schema.json +75 -1
- package/generated/McpAccountsToolResult.schema.json +1 -0
- package/generated/McpRunHandleResult.schema.json +226 -19
- package/generated/McpRunToolResult.schema.json +228 -11
- package/generated/McpRunWaitResult.schema.json +180 -2
- package/generated/McpStoreIdentityInput.schema.json +11 -0
- package/generated/McpUploadCreateInput.schema.json +54 -0
- package/generated/McpUploadFinalizeInput.schema.json +40 -0
- package/generated/McpUploadImportInput.schema.json +52 -0
- package/generated/McpUploadImportLocalInput.schema.json +27 -0
- package/generated/McpUploadImportLocalResult.schema.json +45 -0
- package/generated/McpUploadTargetInput.schema.json +20 -0
- package/generated/ResourceAttachmentRef.schema.json +21 -0
- package/generated/RoutePrimaryDivergedPayload.schema.json +23 -14
- package/generated/RunFailure.schema.json +31 -1
- package/generated/RunObservationRecord.schema.json +64 -0
- package/generated/RunTelemetry.schema.json +83 -1
- package/generated/RunWaitManyInput.schema.json +47 -0
- package/generated/RunWaitManyResult.schema.json +110 -0
- package/generated/RunWaitManySummary.schema.json +75 -0
- package/generated/TaskGroupId.schema.json +11 -0
- package/generated/TaskGroupReceipt.schema.json +26 -0
- package/generated/TaskGroupRunsInput.schema.json +46 -0
- package/generated/TaskGroupRunsResult.schema.json +162 -0
- package/generated/ThreadHistoryInput.schema.json +48 -0
- package/generated/ThreadHistoryPage.schema.json +2857 -0
- package/generated/ThreadPromptPart.schema.json +57 -0
- package/generated/ThreadPromptPartInput.schema.json +41 -0
- package/package.json +2 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"thread-history.d.ts","sourceRoot":"","sources":["../src/thread-history.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAa3B,eAAO,MAAM,wBAAwB,KAAK,CAAC;AAC3C,eAAO,MAAM,2BAA2B,QAAS,CAAC;AAClD,eAAO,MAAM,2BAA2B,QAAS,CAAC;AAClD,eAAO,MAAM,4BAA4B,OAAQ,CAAC;AAClD,eAAO,MAAM,yBAAyB,UAAY,CAAC;AACnD,eAAO,MAAM,wBAAwB,SAAU,CAAC;AAChD,eAAO,MAAM,2BAA2B,QAAS,CAAC;AAClD,eAAO,MAAM,6BAA6B,QAAS,CAAC;AACpD,eAAO,MAAM,4BAA4B,KAAK,CAAC;AAC/C,eAAO,MAAM,yBAAyB,UAAY,CAAC;AACnD,eAAO,MAAM,0BAA0B,SAAU,CAAC;AAMlD,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgB5B,CAAC;AACJ,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAEpE,0EAA0E;AAC1E,eAAO,MAAM,qBAAqB;;;;;;;;;EAUvB,CAAC;AACZ,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAE1E,eAAO,MAAM,sBAAsB;;;;;;;;;;;;EAQxB,CAAC;AACZ,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;EAEtB,CAAC;AAQX,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgClB,CAAC;AACZ,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAChE,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAIzB,CAAC;AACZ,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwG1B,CAAC;AACL,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAElE,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;EAavB,CAAC;AACZ,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAC1E,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAc1B,CAAC;AACJ,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAEhE,0EAA0E;AAC1E,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2B7B,CAAC;AACJ,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AACtE,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,KAAK,CAOzF;AACD,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,mBAAmB,GAAG,MAAM,CAK5E;AACD,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,MAAM,GAAG,mBAAmB,CAiB1E"}
|
|
@@ -0,0 +1,291 @@
|
|
|
1
|
+
import { z } from "zod/v3";
|
|
2
|
+
import { ControlSession, ControlThread, ControlThreadTurn, ControlTurnRunCard, ControlRunSummary, ControlRunState, } from "./control.js";
|
|
3
|
+
import { ControlPrimaryOutput, ControlRunDetail } from "./control-run-detail.js";
|
|
4
|
+
import { ControlRunEventPart } from "./control-run-event-part.js";
|
|
5
|
+
import { ControlHandshakeResponse } from "./operation.js";
|
|
6
|
+
export const THREAD_HISTORY_MAX_TURNS = 20;
|
|
7
|
+
export const THREAD_HISTORY_PROMPT_BYTES = 32_768;
|
|
8
|
+
export const THREAD_HISTORY_ANSWER_BYTES = 65_536;
|
|
9
|
+
export const THREAD_HISTORY_FAILURE_BYTES = 8_192;
|
|
10
|
+
export const THREAD_HISTORY_PAGE_BYTES = 2_097_152;
|
|
11
|
+
export const THREAD_HISTORY_ROW_BYTES = 851_968;
|
|
12
|
+
export const THREAD_HISTORY_HEADER_BYTES = 32_768;
|
|
13
|
+
export const THREAD_HISTORY_METADATA_BYTES = 32_768;
|
|
14
|
+
export const THREAD_HISTORY_SESSION_LIMIT = 16;
|
|
15
|
+
export const THREAD_HISTORY_FACT_BYTES = 1_048_576;
|
|
16
|
+
export const THREAD_HISTORY_EVENT_BYTES = 262_144;
|
|
17
|
+
const id = ControlThread.shape.id.max(256);
|
|
18
|
+
const ordinal = z.number().int().nonnegative().max(Number.MAX_SAFE_INTEGER);
|
|
19
|
+
const cursor = z.string().min(1).max(2048);
|
|
20
|
+
const storeId = ControlHandshakeResponse.shape.storeId.unwrap();
|
|
21
|
+
export const ThreadHistoryInput = z
|
|
22
|
+
.object({
|
|
23
|
+
threadId: id,
|
|
24
|
+
limit: z.number().int().min(1).max(THREAD_HISTORY_MAX_TURNS).default(THREAD_HISTORY_MAX_TURNS),
|
|
25
|
+
cursor: cursor.optional(),
|
|
26
|
+
beforeTurnId: id.optional(),
|
|
27
|
+
afterTurnId: id.optional(),
|
|
28
|
+
aroundTurnId: id.optional(),
|
|
29
|
+
expectedStoreId: storeId.optional(),
|
|
30
|
+
})
|
|
31
|
+
.strict()
|
|
32
|
+
.refine((v) => [v.cursor, v.beforeTurnId, v.afterTurnId, v.aroundTurnId].filter((v) => v !== undefined)
|
|
33
|
+
.length <= 1, "choose at most one cursor, beforeTurnId, afterTurnId or aroundTurnId");
|
|
34
|
+
/** An observation order, not a turn ordinal or a wall-clock timestamp. */
|
|
35
|
+
export const ThreadHistoryRevision = z
|
|
36
|
+
.object({
|
|
37
|
+
epoch: z
|
|
38
|
+
.string()
|
|
39
|
+
.uuid()
|
|
40
|
+
.describe("Read-owner incarnation; compare sequence only within this epoch."),
|
|
41
|
+
sequence: ordinal.describe("Allocated before synchronous projection. A later snapshot always has a greater sequence."),
|
|
42
|
+
})
|
|
43
|
+
.strict();
|
|
44
|
+
export const ThreadHistoryTextFacts = z
|
|
45
|
+
.object({
|
|
46
|
+
textBytes: ordinal,
|
|
47
|
+
totalTextBytes: ordinal
|
|
48
|
+
.nullable()
|
|
49
|
+
.describe("Complete redacted UTF-8 length, only when known; never an estimated remainder."),
|
|
50
|
+
truncated: z.boolean(),
|
|
51
|
+
})
|
|
52
|
+
.strict();
|
|
53
|
+
export const ThreadHistoryOutput = ControlPrimaryOutput.extend(ThreadHistoryTextFacts.shape).strict();
|
|
54
|
+
const count = z
|
|
55
|
+
.object({
|
|
56
|
+
value: ordinal.nullable(),
|
|
57
|
+
coverage: z.enum(["complete", "partial", "unavailable"]),
|
|
58
|
+
})
|
|
59
|
+
.strict();
|
|
60
|
+
const runStatus = z.enum(["available", "unbound", "not_retained"]);
|
|
61
|
+
export const ThreadHistoryRun = ControlTurnRunCard.extend({
|
|
62
|
+
...ControlRunSummary.pick({
|
|
63
|
+
runDir: true,
|
|
64
|
+
authRoute: true,
|
|
65
|
+
harnesses: true,
|
|
66
|
+
primaryHarness: true,
|
|
67
|
+
startedAt: true,
|
|
68
|
+
createdAt: true,
|
|
69
|
+
spendEstimated: true,
|
|
70
|
+
route: true,
|
|
71
|
+
}).shape,
|
|
72
|
+
...ControlRunDetail.pick({
|
|
73
|
+
budget: true,
|
|
74
|
+
failure: true,
|
|
75
|
+
applyEligibility: true,
|
|
76
|
+
requiredActions: true,
|
|
77
|
+
planReadiness: true,
|
|
78
|
+
planQuestions: true,
|
|
79
|
+
outcomeBanner: true,
|
|
80
|
+
operatorDecision: true,
|
|
81
|
+
runFacts: true,
|
|
82
|
+
}).shape,
|
|
83
|
+
applyEligibilityCoverage: z.enum(["complete", "unavailable"]),
|
|
84
|
+
operatorDecisionCoverage: z.enum(["complete", "unavailable"]),
|
|
85
|
+
unverifiedOperatorDecision: ControlRunDetail.shape.operatorDecision.describe("Recorded decision whose exact evidence exceeds the history read bound. Never grants authority."),
|
|
86
|
+
failureMessageInfo: ThreadHistoryTextFacts.nullable(),
|
|
87
|
+
toolCount: count,
|
|
88
|
+
fileCount: count.describe("File-kind tool calls, not distinct paths or the WorkProduct diffstat."),
|
|
89
|
+
}).strict();
|
|
90
|
+
export const ThreadHistoryPlanAnswer = ControlThreadTurn.pick({ id: true, prompt: true })
|
|
91
|
+
.extend({
|
|
92
|
+
promptInfo: ThreadHistoryTextFacts,
|
|
93
|
+
})
|
|
94
|
+
.strict();
|
|
95
|
+
export const ThreadHistoryTurn = ControlThreadTurn.omit({ run: true })
|
|
96
|
+
.extend({
|
|
97
|
+
ordinal,
|
|
98
|
+
revision: ThreadHistoryRevision,
|
|
99
|
+
promptInfo: ThreadHistoryTextFacts,
|
|
100
|
+
run: ThreadHistoryRun.nullable(),
|
|
101
|
+
runStatus,
|
|
102
|
+
primaryOutput: ThreadHistoryOutput.nullable(),
|
|
103
|
+
primaryOutputStatus: z.enum(["available", "none", "not_retained"]),
|
|
104
|
+
answeredByTurnId: id.nullable(),
|
|
105
|
+
answeredByPrompt: ThreadHistoryPlanAnswer.nullable(),
|
|
106
|
+
planAnswerComplete: z.boolean(),
|
|
107
|
+
})
|
|
108
|
+
.strict();
|
|
109
|
+
export const ThreadHistoryHeader = z
|
|
110
|
+
.object({
|
|
111
|
+
thread: ControlThread.omit({ runIds: true }).strict(),
|
|
112
|
+
latestTurnId: id.nullable(),
|
|
113
|
+
latestOrdinal: ordinal
|
|
114
|
+
.nullable()
|
|
115
|
+
.describe("Latest stored turn ordinal, including runless turns; null only for an empty thread."),
|
|
116
|
+
latestAdmission: ControlThreadTurn.pick({ id: true, runId: true, enqueueError: true })
|
|
117
|
+
.extend({ jobId: id.nullable(), state: ControlRunState.nullable() })
|
|
118
|
+
.strict()
|
|
119
|
+
.nullable(),
|
|
120
|
+
headRun: z.object({ runId: id, run: ControlTurnRunCard }).strict().nullable(),
|
|
121
|
+
headRunStatus: runStatus,
|
|
122
|
+
sessions: z.array(ControlSession).max(THREAD_HISTORY_SESSION_LIMIT),
|
|
123
|
+
sessionsComplete: z.boolean(),
|
|
124
|
+
})
|
|
125
|
+
.strict();
|
|
126
|
+
export const ThreadHistoryPage = z
|
|
127
|
+
.object({
|
|
128
|
+
storeId,
|
|
129
|
+
threadId: id,
|
|
130
|
+
epoch: z.string().min(1).max(256),
|
|
131
|
+
revision: ThreadHistoryRevision,
|
|
132
|
+
header: ThreadHistoryHeader,
|
|
133
|
+
turns: z.array(ThreadHistoryTurn).max(THREAD_HISTORY_MAX_TURNS),
|
|
134
|
+
hasOlder: z.boolean(),
|
|
135
|
+
hasNewer: z.boolean(),
|
|
136
|
+
olderCursor: cursor.nullable(),
|
|
137
|
+
newerCursor: cursor.nullable(),
|
|
138
|
+
replayCursor: cursor.nullable(),
|
|
139
|
+
replayNextCursor: cursor
|
|
140
|
+
.nullable()
|
|
141
|
+
.describe("Continue the original replay membership if current facts no longer fit one page; merge every segment before declaring the refresh complete."),
|
|
142
|
+
limitedBy: z.enum(["turns", "bytes"]).nullable(),
|
|
143
|
+
})
|
|
144
|
+
.strict()
|
|
145
|
+
.superRefine((v, ctx) => {
|
|
146
|
+
const issue = (message) => ctx.addIssue({ code: z.ZodIssueCode.custom, message });
|
|
147
|
+
if (Buffer.byteLength(JSON.stringify(v)) > THREAD_HISTORY_PAGE_BYTES)
|
|
148
|
+
issue("history page exceeds byte limit");
|
|
149
|
+
if (Buffer.byteLength(JSON.stringify(v.header)) > THREAD_HISTORY_HEADER_BYTES)
|
|
150
|
+
issue("history header exceeds byte limit");
|
|
151
|
+
if (v.hasOlder !== (v.olderCursor !== null) || v.hasNewer !== (v.newerCursor !== null))
|
|
152
|
+
issue("history edge cursor disagrees with coverage");
|
|
153
|
+
const statusFor = (id, facts) => !id ? "unbound" : facts ? "available" : "not_retained";
|
|
154
|
+
if (v.header.headRunStatus !== statusFor(v.header.thread.headRunId, v.header.headRun))
|
|
155
|
+
issue("head run status disagrees with retained facts");
|
|
156
|
+
for (const [i, row] of v.turns.entries()) {
|
|
157
|
+
if (row.runStatus !== statusFor(row.runId, row.run) ||
|
|
158
|
+
row.primaryOutputStatus !==
|
|
159
|
+
(row.runStatus === "not_retained"
|
|
160
|
+
? "not_retained"
|
|
161
|
+
: row.primaryOutput
|
|
162
|
+
? "available"
|
|
163
|
+
: "none"))
|
|
164
|
+
issue("row status disagrees with retained facts");
|
|
165
|
+
if (row.threadId !== v.threadId ||
|
|
166
|
+
row.revision.epoch !== v.revision.epoch ||
|
|
167
|
+
row.revision.sequence !== v.revision.sequence)
|
|
168
|
+
issue("row does not belong to this observation");
|
|
169
|
+
if (i > 0 && row.ordinal <= v.turns[i - 1].ordinal)
|
|
170
|
+
issue("turns must ascend by ordinal");
|
|
171
|
+
if (Buffer.byteLength(row.prompt) > THREAD_HISTORY_PROMPT_BYTES ||
|
|
172
|
+
row.promptInfo.textBytes !== Buffer.byteLength(row.prompt))
|
|
173
|
+
issue("invalid prompt byte count");
|
|
174
|
+
if (row.primaryOutput &&
|
|
175
|
+
(row.primaryOutput.textBytes !== Buffer.byteLength(row.primaryOutput.text ?? "") ||
|
|
176
|
+
row.primaryOutput.textBytes > THREAD_HISTORY_ANSWER_BYTES))
|
|
177
|
+
issue("invalid answer byte count");
|
|
178
|
+
if (row.run?.failure &&
|
|
179
|
+
(!row.run.failureMessageInfo ||
|
|
180
|
+
row.run.failureMessageInfo.textBytes !== Buffer.byteLength(row.run.failure.safeMessage) ||
|
|
181
|
+
row.run.failureMessageInfo.textBytes > THREAD_HISTORY_FAILURE_BYTES))
|
|
182
|
+
issue("invalid failure preview byte count");
|
|
183
|
+
if (row.run &&
|
|
184
|
+
((row.run.applyEligibilityCoverage === "unavailable" &&
|
|
185
|
+
row.run.applyEligibility !== null) ||
|
|
186
|
+
(row.run.operatorDecisionCoverage === "unavailable" &&
|
|
187
|
+
(row.run.operatorDecision !== null || !row.run.unverifiedOperatorDecision)) ||
|
|
188
|
+
(row.run.operatorDecisionCoverage === "complete" &&
|
|
189
|
+
row.run.unverifiedOperatorDecision !== null)))
|
|
190
|
+
issue("unavailable apply evidence must not grant authority");
|
|
191
|
+
if (row.answeredByPrompt &&
|
|
192
|
+
(row.answeredByPrompt.id !== row.answeredByTurnId ||
|
|
193
|
+
Buffer.byteLength(row.answeredByPrompt.prompt) > THREAD_HISTORY_PROMPT_BYTES ||
|
|
194
|
+
row.answeredByPrompt.promptInfo.textBytes !==
|
|
195
|
+
Buffer.byteLength(row.answeredByPrompt.prompt)))
|
|
196
|
+
issue("invalid plan answer preview");
|
|
197
|
+
for (const facts of [
|
|
198
|
+
row.promptInfo,
|
|
199
|
+
row.primaryOutput,
|
|
200
|
+
row.answeredByPrompt?.promptInfo,
|
|
201
|
+
row.run?.failureMessageInfo,
|
|
202
|
+
]) {
|
|
203
|
+
if (facts &&
|
|
204
|
+
facts.totalTextBytes !== null &&
|
|
205
|
+
(facts.totalTextBytes < facts.textBytes ||
|
|
206
|
+
(!facts.truncated && facts.totalTextBytes !== facts.textBytes)))
|
|
207
|
+
issue("invalid total text bytes");
|
|
208
|
+
}
|
|
209
|
+
if (Buffer.byteLength(JSON.stringify(row)) > THREAD_HISTORY_ROW_BYTES)
|
|
210
|
+
issue("history row exceeds byte limit");
|
|
211
|
+
}
|
|
212
|
+
});
|
|
213
|
+
export const ThreadPromptPartInput = z
|
|
214
|
+
.object({
|
|
215
|
+
threadId: id,
|
|
216
|
+
turnId: id,
|
|
217
|
+
offset: ordinal.default(0),
|
|
218
|
+
maxBytes: z
|
|
219
|
+
.number()
|
|
220
|
+
.int()
|
|
221
|
+
.min(4)
|
|
222
|
+
.max(THREAD_HISTORY_ANSWER_BYTES)
|
|
223
|
+
.default(THREAD_HISTORY_PROMPT_BYTES),
|
|
224
|
+
expectedStoreId: storeId.optional(),
|
|
225
|
+
})
|
|
226
|
+
.strict();
|
|
227
|
+
export const ThreadPromptPart = ControlRunEventPart.omit({ runId: true, seq: true, type: true })
|
|
228
|
+
.extend({
|
|
229
|
+
threadId: id,
|
|
230
|
+
turnId: id,
|
|
231
|
+
totalBytes: ordinal,
|
|
232
|
+
})
|
|
233
|
+
.strict()
|
|
234
|
+
.refine((v) => v.offset <= v.nextOffset &&
|
|
235
|
+
v.nextOffset <= v.totalBytes &&
|
|
236
|
+
v.nextOffset - v.offset === Buffer.byteLength(v.text) &&
|
|
237
|
+
Buffer.byteLength(v.text) <= THREAD_HISTORY_ANSWER_BYTES, "invalid prompt byte interval");
|
|
238
|
+
/** Internal cursor payload; callers treat its wire encoding as opaque. */
|
|
239
|
+
export const ThreadHistoryCursor = z
|
|
240
|
+
.object({
|
|
241
|
+
version: z.literal(1),
|
|
242
|
+
storeId,
|
|
243
|
+
epoch: z.string().min(1).max(256),
|
|
244
|
+
threadId: id,
|
|
245
|
+
limit: z.number().int().min(1).max(THREAD_HISTORY_MAX_TURNS),
|
|
246
|
+
direction: z.enum(["older", "newer", "replay"]),
|
|
247
|
+
low: ordinal,
|
|
248
|
+
high: ordinal,
|
|
249
|
+
ceiling: ordinal,
|
|
250
|
+
after: ordinal.optional(),
|
|
251
|
+
inclusive: z
|
|
252
|
+
.literal(true)
|
|
253
|
+
.optional()
|
|
254
|
+
.describe("Reverse navigation from an empty boundary includes the selector edge; no emitted row is skipped."),
|
|
255
|
+
})
|
|
256
|
+
.strict()
|
|
257
|
+
.refine((v) => v.low <= v.high &&
|
|
258
|
+
v.high <= v.ceiling &&
|
|
259
|
+
(v.inclusive === undefined || (v.direction !== "replay" && v.low === v.high)) &&
|
|
260
|
+
(v.after === undefined || (v.direction === "replay" && v.after >= v.low && v.after < v.high)), "invalid cursor interval");
|
|
261
|
+
export function threadHistoryProblem(code, status, message) {
|
|
262
|
+
return Object.assign(new Error(message), {
|
|
263
|
+
code,
|
|
264
|
+
status,
|
|
265
|
+
retryable: status === 503,
|
|
266
|
+
requiredActions: status === 409 ? ["resnapshot"] : [],
|
|
267
|
+
});
|
|
268
|
+
}
|
|
269
|
+
export function encodeThreadHistoryCursor(value) {
|
|
270
|
+
const wire = Buffer.from(JSON.stringify(ThreadHistoryCursor.parse(value))).toString("base64url");
|
|
271
|
+
if (wire.length > 2048)
|
|
272
|
+
throw threadHistoryProblem("invalid_thread_history_cursor", 400, "cursor exceeds limit");
|
|
273
|
+
return wire;
|
|
274
|
+
}
|
|
275
|
+
export function decodeThreadHistoryCursor(raw) {
|
|
276
|
+
try {
|
|
277
|
+
if (raw.length > 2048 || !/^[A-Za-z0-9_-]+$/.test(raw))
|
|
278
|
+
throw new Error();
|
|
279
|
+
const bytes = Buffer.from(raw, "base64url");
|
|
280
|
+
if (bytes.toString("base64url") !== raw)
|
|
281
|
+
throw new Error();
|
|
282
|
+
const parsed = ThreadHistoryCursor.parse(JSON.parse(new TextDecoder("utf-8", { fatal: true }).decode(bytes)));
|
|
283
|
+
if (encodeThreadHistoryCursor(parsed) !== raw)
|
|
284
|
+
throw new Error();
|
|
285
|
+
return parsed;
|
|
286
|
+
}
|
|
287
|
+
catch {
|
|
288
|
+
throw threadHistoryProblem("invalid_thread_history_cursor", 400, "malformed thread history cursor");
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
//# sourceMappingURL=thread-history.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"thread-history.js","sourceRoot":"","sources":["../src/thread-history.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"harnessId": {
|
|
8
8
|
"type": "string",
|
|
9
9
|
"minLength": 1,
|
|
10
|
-
"description": "Harness family (agy | claude | codex | cursor) for the config-dir login profile."
|
|
10
|
+
"description": "Harness family (agy | claude | codex | cursor | grok) for the config-dir login profile."
|
|
11
11
|
},
|
|
12
12
|
"profileId": {
|
|
13
13
|
"type": "string",
|
|
@@ -4,6 +4,16 @@
|
|
|
4
4
|
"ControlQueuedRunInfo": {
|
|
5
5
|
"type": "object",
|
|
6
6
|
"properties": {
|
|
7
|
+
"taskGroupId": {
|
|
8
|
+
"type": "string",
|
|
9
|
+
"format": "uuid",
|
|
10
|
+
"description": "Caller-generated UUID saved before launching the first member. Each job still needs its own idempotency key; the group grants no execution authority."
|
|
11
|
+
},
|
|
12
|
+
"storeId": {
|
|
13
|
+
"type": "string",
|
|
14
|
+
"minLength": 1,
|
|
15
|
+
"description": "Identity of the durable engine store that accepted this group member, stable across restarts."
|
|
16
|
+
},
|
|
7
17
|
"jobId": {
|
|
8
18
|
"type": "string",
|
|
9
19
|
"description": "Daemon job id."
|
|
@@ -50,6 +50,11 @@
|
|
|
50
50
|
"description": "Canonical run mode: ask and plan are read-only, agent writes. Strategy controls are separate schema-owned fields, never modes.",
|
|
51
51
|
"default": "agent"
|
|
52
52
|
},
|
|
53
|
+
"taskGroupId": {
|
|
54
|
+
"type": "string",
|
|
55
|
+
"format": "uuid",
|
|
56
|
+
"description": "Caller-generated UUID saved before launching the first member. Each job still needs its own idempotency key; the group grants no execution authority."
|
|
57
|
+
},
|
|
53
58
|
"scope": {
|
|
54
59
|
"anyOf": [
|
|
55
60
|
{
|
|
@@ -35,6 +35,175 @@
|
|
|
35
35
|
"message": {
|
|
36
36
|
"type": "string",
|
|
37
37
|
"description": "Human-readable detail."
|
|
38
|
+
},
|
|
39
|
+
"deferredMessage": {
|
|
40
|
+
"type": "object",
|
|
41
|
+
"properties": {
|
|
42
|
+
"draftId": {
|
|
43
|
+
"$ref": "#/definitions/ControlRunControlResponse/properties/runId"
|
|
44
|
+
},
|
|
45
|
+
"revision": {
|
|
46
|
+
"type": "integer",
|
|
47
|
+
"exclusiveMinimum": 0,
|
|
48
|
+
"maximum": 9007199254740991
|
|
49
|
+
},
|
|
50
|
+
"state": {
|
|
51
|
+
"type": "string",
|
|
52
|
+
"enum": [
|
|
53
|
+
"waiting",
|
|
54
|
+
"held",
|
|
55
|
+
"dispatched",
|
|
56
|
+
"cleared"
|
|
57
|
+
]
|
|
58
|
+
},
|
|
59
|
+
"predecessorJobId": {
|
|
60
|
+
"$ref": "#/definitions/ControlRunControlResponse/properties/runId"
|
|
61
|
+
},
|
|
62
|
+
"predecessorRunId": {
|
|
63
|
+
"anyOf": [
|
|
64
|
+
{
|
|
65
|
+
"$ref": "#/definitions/ControlRunControlResponse/properties/runId"
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
"type": "null"
|
|
69
|
+
}
|
|
70
|
+
],
|
|
71
|
+
"description": "Non-empty identifier string."
|
|
72
|
+
},
|
|
73
|
+
"predecessorResult": {
|
|
74
|
+
"type": "string",
|
|
75
|
+
"description": "Existing addressed run-detail/result path; no duplicate result store."
|
|
76
|
+
},
|
|
77
|
+
"hold": {
|
|
78
|
+
"anyOf": [
|
|
79
|
+
{
|
|
80
|
+
"type": "object",
|
|
81
|
+
"properties": {
|
|
82
|
+
"code": {
|
|
83
|
+
"type": "string",
|
|
84
|
+
"enum": [
|
|
85
|
+
"predecessor_failed",
|
|
86
|
+
"predecessor_cancelled",
|
|
87
|
+
"predecessor_interrupted",
|
|
88
|
+
"predecessor_needs_input",
|
|
89
|
+
"predecessor_incomplete",
|
|
90
|
+
"predecessor_facts_unavailable",
|
|
91
|
+
"predecessor_work_unverified",
|
|
92
|
+
"predecessor_checks_failed",
|
|
93
|
+
"predecessor_review_blocked",
|
|
94
|
+
"predecessor_output_unavailable",
|
|
95
|
+
"settlement_unknown",
|
|
96
|
+
"stop_requested",
|
|
97
|
+
"shutdown",
|
|
98
|
+
"restart_requires_controller",
|
|
99
|
+
"partition_retired",
|
|
100
|
+
"admission_refused"
|
|
101
|
+
]
|
|
102
|
+
},
|
|
103
|
+
"problem": {
|
|
104
|
+
"type": "object",
|
|
105
|
+
"properties": {
|
|
106
|
+
"message": {
|
|
107
|
+
"type": "string",
|
|
108
|
+
"description": "Human-readable refusal message."
|
|
109
|
+
},
|
|
110
|
+
"code": {
|
|
111
|
+
"type": [
|
|
112
|
+
"string",
|
|
113
|
+
"null"
|
|
114
|
+
],
|
|
115
|
+
"default": null,
|
|
116
|
+
"description": "Machine-readable refusal code carried from the throwing gate; null when the failure had no typed code."
|
|
117
|
+
},
|
|
118
|
+
"retryable": {
|
|
119
|
+
"type": "boolean",
|
|
120
|
+
"default": true,
|
|
121
|
+
"description": "True when retry can replay this turn (a job was recorded before the failure); false when no job exists to replay."
|
|
122
|
+
},
|
|
123
|
+
"required_actions": {
|
|
124
|
+
"type": "array",
|
|
125
|
+
"items": {
|
|
126
|
+
"type": "string",
|
|
127
|
+
"minLength": 1,
|
|
128
|
+
"maxLength": 512
|
|
129
|
+
},
|
|
130
|
+
"maxItems": 16,
|
|
131
|
+
"default": [],
|
|
132
|
+
"description": "Bounded user actions that may make an exact retry succeed."
|
|
133
|
+
},
|
|
134
|
+
"context": {
|
|
135
|
+
"type": "object",
|
|
136
|
+
"additionalProperties": {},
|
|
137
|
+
"default": {},
|
|
138
|
+
"description": "Bounded typed recovery context; never arbitrary provider or environment output."
|
|
139
|
+
}
|
|
140
|
+
},
|
|
141
|
+
"required": [
|
|
142
|
+
"message"
|
|
143
|
+
],
|
|
144
|
+
"additionalProperties": false,
|
|
145
|
+
"description": "Typed, sanitized problem for a thread turn that could not start."
|
|
146
|
+
}
|
|
147
|
+
},
|
|
148
|
+
"required": [
|
|
149
|
+
"code"
|
|
150
|
+
],
|
|
151
|
+
"additionalProperties": false,
|
|
152
|
+
"description": "Stable hold. Editing, observation and readiness restoration never rearm it; inspect the predecessor result and clear before an ordinary continuation."
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
"type": "null"
|
|
156
|
+
}
|
|
157
|
+
],
|
|
158
|
+
"description": "Stable hold. Editing, observation and readiness restoration never rearm it; inspect the predecessor result and clear before an ordinary continuation."
|
|
159
|
+
},
|
|
160
|
+
"dispatchedRevision": {
|
|
161
|
+
"anyOf": [
|
|
162
|
+
{
|
|
163
|
+
"$ref": "#/definitions/ControlRunControlResponse/properties/deferredMessage/properties/revision"
|
|
164
|
+
},
|
|
165
|
+
{
|
|
166
|
+
"type": "null"
|
|
167
|
+
}
|
|
168
|
+
]
|
|
169
|
+
},
|
|
170
|
+
"successorJobId": {
|
|
171
|
+
"anyOf": [
|
|
172
|
+
{
|
|
173
|
+
"$ref": "#/definitions/ControlRunControlResponse/properties/runId"
|
|
174
|
+
},
|
|
175
|
+
{
|
|
176
|
+
"type": "null"
|
|
177
|
+
}
|
|
178
|
+
],
|
|
179
|
+
"description": "Non-empty identifier string."
|
|
180
|
+
},
|
|
181
|
+
"successorRunId": {
|
|
182
|
+
"anyOf": [
|
|
183
|
+
{
|
|
184
|
+
"$ref": "#/definitions/ControlRunControlResponse/properties/runId"
|
|
185
|
+
},
|
|
186
|
+
{
|
|
187
|
+
"type": "null"
|
|
188
|
+
}
|
|
189
|
+
],
|
|
190
|
+
"description": "Non-empty identifier string."
|
|
191
|
+
}
|
|
192
|
+
},
|
|
193
|
+
"required": [
|
|
194
|
+
"draftId",
|
|
195
|
+
"revision",
|
|
196
|
+
"state",
|
|
197
|
+
"predecessorJobId",
|
|
198
|
+
"predecessorRunId",
|
|
199
|
+
"predecessorResult",
|
|
200
|
+
"hold",
|
|
201
|
+
"dispatchedRevision",
|
|
202
|
+
"successorJobId",
|
|
203
|
+
"successorRunId"
|
|
204
|
+
],
|
|
205
|
+
"additionalProperties": false,
|
|
206
|
+
"description": "The run's latest next-message draft after this cancel: a waiting draft is held by the same call; an already accepted successor is named, not cancelled."
|
|
38
207
|
}
|
|
39
208
|
},
|
|
40
209
|
"required": [
|