@peasant-labs/schema 0.28.0 → 0.29.0

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.
@@ -1,8 +1,8 @@
1
1
  export declare function sessionGraphCapabilityFixtures(): {
2
2
  readonly requiredNames: {
3
- readonly derivation: readonly ["legacy-empty", "root-null", "usage-null", "model-only", "source-ref-only", "count-only-zero", "count-only-positive", "root-only", "purpose-only-interaction", "purpose-only-delegated", "purpose-only-helper", "purpose-only-unknown", "relationship-only", "main-deeper-provenance", "folded-call-provenance", "folded-result-provenance", "earlier-only", "earlier-nested-tool-native-usage-model", "navigation-only-read", "retained-accumulates-all"];
3
+ readonly derivation: readonly ["legacy-empty", "root-null", "usage-null", "model-only", "source-ref-only", "count-only-zero", "count-only-positive", "root-only", "purpose-only-interaction", "purpose-only-delegated", "purpose-only-helper", "purpose-only-unknown", "relationship-only", "main-deeper-provenance", "folded-call-provenance", "folded-result-provenance", "earlier-only", "earlier-nested-tool-native-usage-model", "navigation-only-read", "retained-accumulates-all", "thinking-level-session-seed", "thinking-level-raw-only-seed", "thinking-level-root-turn", "thinking-level-earlier-nested-turn", "thinking-level-absent-needs-no-token"];
4
4
  readonly reader: readonly ["advertisement-omitted", "advertisement-empty", "advertisement-null", "advertisement-unknown-duplicate-unordered", "advertisement-future-suffix", "advertisement-retained-duplicate"];
5
- readonly producer: readonly ["producer-canonical-four", "producer-unsorted-four", "producer-duplicate", "producer-unknown", "producer-canonical-retained", "producer-unsorted-retained", "producer-duplicate-retained"];
5
+ readonly producer: readonly ["producer-canonical-four", "producer-unsorted-four", "producer-duplicate", "producer-unknown", "producer-canonical-retained", "producer-unsorted-retained", "producer-duplicate-retained", "producer-canonical-thinking-level", "producer-unsorted-thinking-level"];
6
6
  };
7
7
  readonly derivation: {
8
8
  readonly cases: readonly [{
@@ -16,10 +16,10 @@ export declare function sessionGraphCapabilityFixtures(): {
16
16
  readonly description: "Retained evidence accumulates every existing preservation requirement";
17
17
  };
18
18
  readonly input: {
19
- readonly detailJSON: "{\"id\":\"fixture-session\",\"harness\":\"pi\",\"startTime\":\"2020-01-01T00:00:00Z\",\"endTime\":\"2020-01-01T00:00:00Z\",\"durationMins\":0,\"totalTokens\":0,\"tokensIn\":0,\"tokensOut\":0,\"turnCount\":1,\"toolCallCount\":1,\"purpose\":\"interaction\",\"turns\":[{\"index\":0,\"role\":\"assistant\",\"depth\":0,\"content\":\"\",\"timestamp\":\"2020-01-01T00:00:00Z\",\"sourceEntryRef\":\"e1\",\"observedModel\":\"provider/model\",\"usage\":{\"ownerId\":\"u1\",\"sourceEntryRef\":\"e1\",\"scope\":\"assistant\",\"completeness\":\"unknown\"},\"toolCalls\":[{\"id\":\"t1\",\"name\":\"tool\",\"namespace\":\"extension\",\"arguments\":\"\",\"result\":\"\"}]}],\"nativeMetadata\":[{\"id\":\"n1\",\"kind\":\"pi.custom.data\",\"source\":{\"entryRef\":\"custom1\",\"sourceType\":\"pi.custom\"},\"customType\":\"extension\",\"data\":{}}],\"diagnostics\":{\"partial\":true},\"retainedUnknown\":[{\"sourceRef\":\"source-0\",\"recordIndex\":2,\"position\":4,\"pointer\":\"\",\"namespace\":\"record\",\"kind\":\"future\",\"payload\":\"{\\\"type\\\":\\\"future\\\"}\"}]}";
19
+ readonly detailJSON: "{\"id\":\"fixture-session\",\"harness\":\"pi\",\"startTime\":\"2020-01-01T00:00:00Z\",\"endTime\":\"2020-01-01T00:00:00Z\",\"durationMins\":0,\"totalTokens\":0,\"tokensIn\":0,\"tokensOut\":0,\"turnCount\":1,\"toolCallCount\":1,\"purpose\":\"interaction\",\"turns\":[{\"index\":0,\"role\":\"assistant\",\"depth\":0,\"content\":\"\",\"timestamp\":\"2020-01-01T00:00:00Z\",\"sourceEntryRef\":\"e1\",\"observedModel\":\"provider/model\",\"thinkingLevel\":\"ultra\",\"thinkingLevelRaw\":\"custom\",\"usage\":{\"ownerId\":\"u1\",\"sourceEntryRef\":\"e1\",\"scope\":\"assistant\",\"completeness\":\"unknown\"},\"toolCalls\":[{\"id\":\"t1\",\"name\":\"tool\",\"namespace\":\"extension\",\"arguments\":\"\",\"result\":\"\"}]}],\"nativeMetadata\":[{\"id\":\"n1\",\"kind\":\"pi.custom.data\",\"source\":{\"entryRef\":\"custom1\",\"sourceType\":\"pi.custom\"},\"customType\":\"extension\",\"data\":{}}],\"diagnostics\":{\"partial\":true},\"retainedUnknown\":[{\"sourceRef\":\"source-0\",\"recordIndex\":2,\"position\":4,\"pointer\":\"\",\"namespace\":\"record\",\"kind\":\"future\",\"payload\":\"{\\\"type\\\":\\\"future\\\"}\"}]}";
20
20
  };
21
21
  readonly expected: {
22
- readonly capabilities: readonly ["detailed_usage_v1", "native_metadata_v1", "observed_model_v1", "retained_unknown_v1", "session_graph_provenance_v1", "tool_namespace_v1"];
22
+ readonly capabilities: readonly ["detailed_usage_v1", "native_metadata_v1", "observed_model_v1", "retained_unknown_v1", "session_graph_provenance_v1", "thinking_level_v1", "tool_namespace_v1"];
23
23
  };
24
24
  }, {
25
25
  readonly name: "legacy-empty";
@@ -315,6 +315,84 @@ export declare function sessionGraphCapabilityFixtures(): {
315
315
  readonly rejectedDurableJSON: "{\"id\":\"fixture-session\",\"startTime\":\"2020-01-01T00:00:00Z\",\"endTime\":\"2020-01-01T00:00:00Z\",\"durationMins\":0,\"totalTokens\":0,\"tokensIn\":0,\"tokensOut\":0,\"turnCount\":0,\"toolCallCount\":0,\"harness\":\"claude-code\",\"outcome\":\"resolved\",\"sessionOrigin\":\"unknown\",\"turns\":[],\"relationshipNavigation\":[]}";
316
316
  };
317
317
  readonly expected: {};
318
+ }, {
319
+ readonly name: "thinking-level-session-seed";
320
+ readonly classification: "must-pass";
321
+ readonly provenance: {
322
+ readonly source: "requirement";
323
+ readonly ref: "content-capability-negotiation thinking_level_v1";
324
+ };
325
+ readonly mutation: {
326
+ readonly description: "adds only the session-level thinking level seed";
327
+ };
328
+ readonly input: {
329
+ readonly detailJSON: "{\"id\":\"fixture-session\",\"startTime\":\"2020-01-01T00:00:00Z\",\"endTime\":\"2020-01-01T00:00:00Z\",\"durationMins\":0,\"totalTokens\":0,\"tokensIn\":0,\"tokensOut\":0,\"turnCount\":0,\"toolCallCount\":0,\"harness\":\"codex\",\"outcome\":\"resolved\",\"sessionOrigin\":\"unknown\",\"thinkingLevel\":\"high\",\"turns\":[]}";
330
+ };
331
+ readonly expected: {
332
+ readonly capabilities: readonly ["thinking_level_v1"];
333
+ };
334
+ }, {
335
+ readonly name: "thinking-level-raw-only-seed";
336
+ readonly classification: "must-pass";
337
+ readonly provenance: {
338
+ readonly source: "requirement";
339
+ readonly ref: "content-capability-negotiation thinking_level_v1";
340
+ };
341
+ readonly mutation: {
342
+ readonly description: "adds only an unmapped raw session spelling";
343
+ };
344
+ readonly input: {
345
+ readonly detailJSON: "{\"id\":\"fixture-session\",\"startTime\":\"2020-01-01T00:00:00Z\",\"endTime\":\"2020-01-01T00:00:00Z\",\"durationMins\":0,\"totalTokens\":0,\"tokensIn\":0,\"tokensOut\":0,\"turnCount\":0,\"toolCallCount\":0,\"harness\":\"codex\",\"outcome\":\"resolved\",\"sessionOrigin\":\"unknown\",\"thinkingLevelRaw\":\"custom\",\"turns\":[]}";
346
+ };
347
+ readonly expected: {
348
+ readonly capabilities: readonly ["thinking_level_v1"];
349
+ };
350
+ }, {
351
+ readonly name: "thinking-level-root-turn";
352
+ readonly classification: "must-pass";
353
+ readonly provenance: {
354
+ readonly source: "requirement";
355
+ readonly ref: "content-capability-negotiation thinking_level_v1";
356
+ };
357
+ readonly mutation: {
358
+ readonly description: "adds a level on a root assistant turn";
359
+ };
360
+ readonly input: {
361
+ readonly detailJSON: "{\"id\":\"fixture-session\",\"startTime\":\"2020-01-01T00:00:00Z\",\"endTime\":\"2020-01-01T00:00:00Z\",\"durationMins\":0,\"totalTokens\":0,\"tokensIn\":0,\"tokensOut\":0,\"turnCount\":1,\"toolCallCount\":0,\"harness\":\"codex\",\"outcome\":\"resolved\",\"sessionOrigin\":\"unknown\",\"turns\":[{\"index\":0,\"role\":\"assistant\",\"content\":\"\",\"depth\":0,\"thinkingLevel\":\"off\",\"thinkingLevelRaw\":\"none\",\"timestamp\":\"2020-01-01T00:00:00Z\"}]}";
362
+ };
363
+ readonly expected: {
364
+ readonly capabilities: readonly ["thinking_level_v1"];
365
+ };
366
+ }, {
367
+ readonly name: "thinking-level-earlier-nested-turn";
368
+ readonly classification: "must-pass";
369
+ readonly provenance: {
370
+ readonly source: "requirement";
371
+ readonly ref: "content-capability-negotiation thinking_level_v1";
372
+ };
373
+ readonly mutation: {
374
+ readonly description: "adds a level on a nested earlier-history assistant turn";
375
+ };
376
+ readonly input: {
377
+ readonly detailJSON: "{\"id\":\"fixture-session\",\"startTime\":\"2020-01-01T00:00:00Z\",\"endTime\":\"2020-01-01T00:00:00Z\",\"durationMins\":0,\"totalTokens\":0,\"tokensIn\":0,\"tokensOut\":0,\"turnCount\":0,\"toolCallCount\":0,\"harness\":\"codex\",\"outcome\":\"resolved\",\"sessionOrigin\":\"unknown\",\"turns\":[],\"earlierHistory\":[{\"state\":\"uncertain_migrated\",\"turns\":[{\"index\":0,\"role\":\"assistant\",\"content\":\"\",\"depth\":0,\"timestamp\":\"2020-01-01T00:00:00Z\"},{\"index\":1,\"role\":\"assistant\",\"content\":\"\",\"depth\":1,\"parentIndex\":0,\"thinkingLevel\":\"medium\",\"timestamp\":\"2020-01-01T00:00:00Z\"}]}]}";
378
+ };
379
+ readonly expected: {
380
+ readonly capabilities: readonly ["session_graph_provenance_v1", "thinking_level_v1"];
381
+ };
382
+ }, {
383
+ readonly name: "thinking-level-absent-needs-no-token";
384
+ readonly classification: "must-pass";
385
+ readonly provenance: {
386
+ readonly source: "requirement";
387
+ readonly ref: "content-capability-negotiation thinking_level_v1";
388
+ };
389
+ readonly mutation: {
390
+ readonly description: "omits every thinking level field";
391
+ };
392
+ readonly input: {
393
+ readonly detailJSON: "{\"id\":\"fixture-session\",\"startTime\":\"2020-01-01T00:00:00Z\",\"endTime\":\"2020-01-01T00:00:00Z\",\"durationMins\":0,\"totalTokens\":0,\"tokensIn\":0,\"tokensOut\":0,\"turnCount\":1,\"toolCallCount\":0,\"harness\":\"codex\",\"outcome\":\"resolved\",\"sessionOrigin\":\"unknown\",\"turns\":[{\"index\":0,\"role\":\"assistant\",\"content\":\"\",\"depth\":0,\"timestamp\":\"2020-01-01T00:00:00Z\"}]}";
394
+ };
395
+ readonly expected: {};
318
396
  }];
319
397
  };
320
398
  readonly reader: {
@@ -529,6 +607,38 @@ export declare function sessionGraphCapabilityFixtures(): {
529
607
  readonly expected: {
530
608
  readonly errorContains: "unknown token";
531
609
  };
610
+ }, {
611
+ readonly name: "producer-canonical-thinking-level";
612
+ readonly classification: "must-pass";
613
+ readonly provenance: {
614
+ readonly source: "requirement";
615
+ readonly ref: "content-capability-negotiation";
616
+ };
617
+ readonly mutation: {
618
+ readonly description: "Emits the full sorted inventory including thinking_level_v1";
619
+ };
620
+ readonly input: {
621
+ readonly tokens: readonly ["detailed_usage_v1", "native_metadata_v1", "observed_model_v1", "retained_unknown_v1", "session_graph_provenance_v1", "thinking_level_v1", "tool_namespace_v1"];
622
+ };
623
+ readonly expected: {
624
+ readonly accepted: true;
625
+ };
626
+ }, {
627
+ readonly name: "producer-unsorted-thinking-level";
628
+ readonly classification: "must-fail";
629
+ readonly provenance: {
630
+ readonly source: "boundary";
631
+ readonly ref: "content-capability-negotiation";
632
+ };
633
+ readonly mutation: {
634
+ readonly description: "Places thinking_level_v1 after tool_namespace_v1";
635
+ };
636
+ readonly input: {
637
+ readonly tokens: readonly ["tool_namespace_v1", "thinking_level_v1"];
638
+ };
639
+ readonly expected: {
640
+ readonly errorContains: "canonical lexicographic order";
641
+ };
532
642
  }];
533
643
  };
534
644
  };
@@ -14,6 +14,7 @@ export declare const KnownContentCapability: Readonly<{
14
14
  readonly ObservedModelV1: "observed_model_v1";
15
15
  readonly RetainedUnknownV1: "retained_unknown_v1";
16
16
  readonly SessionGraphProvenanceV1: "session_graph_provenance_v1";
17
+ readonly ThinkingLevelV1: "thinking_level_v1";
17
18
  readonly ToolNamespaceV1: "tool_namespace_v1";
18
19
  }>;
19
20
  export type KnownContentCapability = (typeof KnownContentCapability)[keyof typeof KnownContentCapability];
@@ -13,9 +13,10 @@ export const KnownContentCapability = Object.freeze({
13
13
  ObservedModelV1: "observed_model_v1",
14
14
  RetainedUnknownV1: "retained_unknown_v1",
15
15
  SessionGraphProvenanceV1: "session_graph_provenance_v1",
16
+ ThinkingLevelV1: "thinking_level_v1",
16
17
  ToolNamespaceV1: "tool_namespace_v1",
17
18
  });
18
- export const AllContentCapabilities = Object.freeze([KnownContentCapability.DetailedUsageV1, KnownContentCapability.NativeMetadataV1, KnownContentCapability.ObservedModelV1, KnownContentCapability.RetainedUnknownV1, KnownContentCapability.SessionGraphProvenanceV1, KnownContentCapability.ToolNamespaceV1]);
19
+ export const AllContentCapabilities = Object.freeze([KnownContentCapability.DetailedUsageV1, KnownContentCapability.NativeMetadataV1, KnownContentCapability.ObservedModelV1, KnownContentCapability.RetainedUnknownV1, KnownContentCapability.SessionGraphProvenanceV1, KnownContentCapability.ThinkingLevelV1, KnownContentCapability.ToolNamespaceV1]);
19
20
  export function isContentCapability(value) {
20
21
  return typeof value === "string" && AllContentCapabilities.includes(value);
21
22
  }
@@ -42,6 +43,8 @@ function visitTurns(turns, found) {
42
43
  for (const turn of turns ?? []) {
43
44
  if ((turn.observedModel ?? "") !== "")
44
45
  found.add(KnownContentCapability.ObservedModelV1);
46
+ if ((turn.thinkingLevel ?? "") !== "" || (turn.thinkingLevelRaw ?? "") !== "")
47
+ found.add(KnownContentCapability.ThinkingLevelV1);
45
48
  if (turn.toolCalls?.some((tool) => tool.namespace !== undefined))
46
49
  found.add(KnownContentCapability.ToolNamespaceV1);
47
50
  if (turn.usage != null || turn.toolCalls?.some((tool) => tool.usage != null))
@@ -56,6 +59,8 @@ export function requiredContentCapabilities(detail) {
56
59
  found.add(KnownContentCapability.SessionGraphProvenanceV1);
57
60
  if ((detail.nativeMetadata?.length ?? 0) > 0)
58
61
  found.add(KnownContentCapability.NativeMetadataV1);
62
+ if ((detail.thinkingLevel ?? "") !== "" || (detail.thinkingLevelRaw ?? "") !== "")
63
+ found.add(KnownContentCapability.ThinkingLevelV1);
59
64
  if ((detail.retainedUnknown?.length ?? 0) > 0 || detail.diagnostics !== undefined)
60
65
  found.add(KnownContentCapability.RetainedUnknownV1);
61
66
  visitTurns(detail.turns, found);
@@ -479,7 +479,7 @@ export type Confidence = z.infer<typeof zConfidence>;
479
479
  /**
480
480
  * Content Capability
481
481
  *
482
- * Opaque, forward-open revision token in the deployment-specific content-capability set. Clients use exact set membership, never parse _v1 as Semantic Versioning or infer ranges, ignore unknown tokens, and tolerate duplicate or unordered input. Servers emit only their pinned known inventory, reject duplicates, and serialize lexicographically; token meanings are immutable. observed_model_v1 is required iff any root or nested assistant turn has observedModel, not for session model alone, and guarantees assistant-only value validation before persistence with no invalid DB/blob side effects plus byte-exact accepted observedModel strings through storage, typed migration, rewrite, serving, and pull; JSON whitespace and key order are excluded.
482
+ * Opaque, forward-open revision token in the deployment-specific content-capability set. Clients use exact set membership, never parse _v1 as Semantic Versioning or infer ranges, ignore unknown tokens, and tolerate duplicate or unordered input. Servers emit only their pinned known inventory, reject duplicates, and serialize lexicographically; token meanings are immutable. observed_model_v1 is required iff any root or nested assistant turn has observedModel, not for session model alone, and guarantees assistant-only value validation before persistence with no invalid DB/blob side effects plus byte-exact accepted observedModel strings through storage, typed migration, rewrite, serving, and pull; JSON whitespace and key order are excluded. thinking_level_v1 is required iff the session detail carries thinkingLevel, thinkingLevelRaw, or a non-empty thinkingLevelHistory, or any main or earlier-history turn carries thinkingLevel or thinkingLevelRaw, and guarantees canonical, raw-bound, and assistant-only validation before persistence with no invalid side effects plus byte-exact preservation of the values, their history order, and their absence through storage, typed migration, rewrite, serving, and pull.
483
483
  */
484
484
  export declare const zContentCapability: z.ZodString;
485
485
  export type ContentCapability = z.infer<typeof zContentCapability>;
@@ -3979,6 +3979,45 @@ export declare const zProjectTasksPayload: z.ZodObject<{
3979
3979
  }, z.core.$strip>>>;
3980
3980
  }, z.core.$strip>;
3981
3981
  export type ProjectTasksPayload = z.infer<typeof zProjectTasksPayload>;
3982
+ /**
3983
+ * Thinking Level
3984
+ *
3985
+ * Canonical reasoning-effort level of assistant-generated output: off, minimal, low, medium, high, xhigh, max, ultra, ultracode. off is the single disabled state, ultra is above max, and ultracode is a distinct level. Omit the field when the level is unknown; never infer it from token budgets.
3986
+ */
3987
+ export declare const zThinkingLevel: z.ZodEnum<{
3988
+ max: "max";
3989
+ high: "high";
3990
+ low: "low";
3991
+ medium: "medium";
3992
+ off: "off";
3993
+ minimal: "minimal";
3994
+ xhigh: "xhigh";
3995
+ ultra: "ultra";
3996
+ ultracode: "ultracode";
3997
+ }>;
3998
+ export type ThinkingLevel = z.infer<typeof zThinkingLevel>;
3999
+ /**
4000
+ * Thinking Level Raw
4001
+ *
4002
+ * Exact native thinking-level spelling observed when it differs from the emitted canonical thinkingLevel, including when no canonical level could be mapped. Source evidence, never a canonical value; numeric budgets are never raw. Non-empty, valid UTF-8, at most 128 encoded UTF-8 bytes, and no Unicode White_Space code point at either edge. Omit when nothing was observed or the native spelling is canonical.
4003
+ */
4004
+ export declare const zThinkingLevelRaw: z.ZodString;
4005
+ export type ThinkingLevelRaw = z.infer<typeof zThinkingLevelRaw>;
4006
+ export declare const zThinkingLevelChange: z.ZodIntersection<z.ZodUnknown, z.ZodObject<{
4007
+ level: z.ZodOptional<z.ZodEnum<{
4008
+ max: "max";
4009
+ high: "high";
4010
+ low: "low";
4011
+ medium: "medium";
4012
+ off: "off";
4013
+ minimal: "minimal";
4014
+ xhigh: "xhigh";
4015
+ ultra: "ultra";
4016
+ ultracode: "ultracode";
4017
+ }>>;
4018
+ raw: z.ZodOptional<z.ZodString>;
4019
+ }, z.core.$strip>>;
4020
+ export type ThinkingLevelChange = z.infer<typeof zThinkingLevelChange>;
3982
4021
  export declare const zTimelineSessionRef: z.ZodObject<{
3983
4022
  harness: z.ZodEnum<{
3984
4023
  strike: "strike";
@@ -5572,6 +5611,32 @@ export declare const zUnifiedMetadata: z.ZodObject<{
5572
5611
  parentUuid: z.ZodString;
5573
5612
  sessionId: z.ZodString;
5574
5613
  }, z.core.$strip>>>;
5614
+ thinkingLevel: z.ZodOptional<z.ZodEnum<{
5615
+ max: "max";
5616
+ high: "high";
5617
+ low: "low";
5618
+ medium: "medium";
5619
+ off: "off";
5620
+ minimal: "minimal";
5621
+ xhigh: "xhigh";
5622
+ ultra: "ultra";
5623
+ ultracode: "ultracode";
5624
+ }>>;
5625
+ thinkingLevelHistory: z.ZodOptional<z.ZodArray<z.ZodIntersection<z.ZodUnknown, z.ZodObject<{
5626
+ level: z.ZodOptional<z.ZodEnum<{
5627
+ max: "max";
5628
+ high: "high";
5629
+ low: "low";
5630
+ medium: "medium";
5631
+ off: "off";
5632
+ minimal: "minimal";
5633
+ xhigh: "xhigh";
5634
+ ultra: "ultra";
5635
+ ultracode: "ultracode";
5636
+ }>>;
5637
+ raw: z.ZodOptional<z.ZodString>;
5638
+ }, z.core.$strip>>>>;
5639
+ thinkingLevelRaw: z.ZodOptional<z.ZodString>;
5575
5640
  timestamp: z.ZodObject<{
5576
5641
  end: z.ZodCoercedBigInt<unknown>;
5577
5642
  ingested: z.ZodOptional<z.ZodNullable<z.ZodInt>>;
@@ -6071,6 +6136,18 @@ export declare const zTurnDetail: z.ZodObject<{
6071
6136
  max_turn_requests: "max_turn_requests";
6072
6137
  refusal: "refusal";
6073
6138
  }>>>;
6139
+ thinkingLevel: z.ZodOptional<z.ZodEnum<{
6140
+ max: "max";
6141
+ high: "high";
6142
+ low: "low";
6143
+ medium: "medium";
6144
+ off: "off";
6145
+ minimal: "minimal";
6146
+ xhigh: "xhigh";
6147
+ ultra: "ultra";
6148
+ ultracode: "ultracode";
6149
+ }>>;
6150
+ thinkingLevelRaw: z.ZodOptional<z.ZodString>;
6074
6151
  timestamp: z.ZodISODateTime;
6075
6152
  tokensIn: z.ZodOptional<z.ZodNullable<z.ZodInt>>;
6076
6153
  tokensOut: z.ZodOptional<z.ZodNullable<z.ZodInt>>;
@@ -6378,6 +6455,18 @@ export declare const zEarlierHistorySection: z.ZodObject<{
6378
6455
  max_turn_requests: "max_turn_requests";
6379
6456
  refusal: "refusal";
6380
6457
  }>>>;
6458
+ thinkingLevel: z.ZodOptional<z.ZodEnum<{
6459
+ max: "max";
6460
+ high: "high";
6461
+ low: "low";
6462
+ medium: "medium";
6463
+ off: "off";
6464
+ minimal: "minimal";
6465
+ xhigh: "xhigh";
6466
+ ultra: "ultra";
6467
+ ultracode: "ultracode";
6468
+ }>>;
6469
+ thinkingLevelRaw: z.ZodOptional<z.ZodString>;
6381
6470
  timestamp: z.ZodISODateTime;
6382
6471
  tokensIn: z.ZodOptional<z.ZodNullable<z.ZodInt>>;
6383
6472
  tokensOut: z.ZodOptional<z.ZodNullable<z.ZodInt>>;
@@ -6696,6 +6785,18 @@ export declare const zSessionDetailPayload: z.ZodObject<{
6696
6785
  max_turn_requests: "max_turn_requests";
6697
6786
  refusal: "refusal";
6698
6787
  }>>>;
6788
+ thinkingLevel: z.ZodOptional<z.ZodEnum<{
6789
+ max: "max";
6790
+ high: "high";
6791
+ low: "low";
6792
+ medium: "medium";
6793
+ off: "off";
6794
+ minimal: "minimal";
6795
+ xhigh: "xhigh";
6796
+ ultra: "ultra";
6797
+ ultracode: "ultracode";
6798
+ }>>;
6799
+ thinkingLevelRaw: z.ZodOptional<z.ZodString>;
6699
6800
  timestamp: z.ZodISODateTime;
6700
6801
  tokensIn: z.ZodOptional<z.ZodNullable<z.ZodInt>>;
6701
6802
  tokensOut: z.ZodOptional<z.ZodNullable<z.ZodInt>>;
@@ -7012,6 +7113,32 @@ export declare const zSessionDetailPayload: z.ZodObject<{
7012
7113
  source: z.ZodOptional<z.ZodString>;
7013
7114
  startTime: z.ZodISODateTime;
7014
7115
  status: z.ZodOptional<z.ZodString>;
7116
+ thinkingLevel: z.ZodOptional<z.ZodEnum<{
7117
+ max: "max";
7118
+ high: "high";
7119
+ low: "low";
7120
+ medium: "medium";
7121
+ off: "off";
7122
+ minimal: "minimal";
7123
+ xhigh: "xhigh";
7124
+ ultra: "ultra";
7125
+ ultracode: "ultracode";
7126
+ }>>;
7127
+ thinkingLevelHistory: z.ZodOptional<z.ZodArray<z.ZodIntersection<z.ZodUnknown, z.ZodObject<{
7128
+ level: z.ZodOptional<z.ZodEnum<{
7129
+ max: "max";
7130
+ high: "high";
7131
+ low: "low";
7132
+ medium: "medium";
7133
+ off: "off";
7134
+ minimal: "minimal";
7135
+ xhigh: "xhigh";
7136
+ ultra: "ultra";
7137
+ ultracode: "ultracode";
7138
+ }>>;
7139
+ raw: z.ZodOptional<z.ZodString>;
7140
+ }, z.core.$strip>>>>;
7141
+ thinkingLevelRaw: z.ZodOptional<z.ZodString>;
7015
7142
  tokensIn: z.ZodInt;
7016
7143
  tokensOut: z.ZodInt;
7017
7144
  toolCallCount: z.ZodInt;
@@ -7101,6 +7228,18 @@ export declare const zSessionDetailPayload: z.ZodObject<{
7101
7228
  max_turn_requests: "max_turn_requests";
7102
7229
  refusal: "refusal";
7103
7230
  }>>>;
7231
+ thinkingLevel: z.ZodOptional<z.ZodEnum<{
7232
+ max: "max";
7233
+ high: "high";
7234
+ low: "low";
7235
+ medium: "medium";
7236
+ off: "off";
7237
+ minimal: "minimal";
7238
+ xhigh: "xhigh";
7239
+ ultra: "ultra";
7240
+ ultracode: "ultracode";
7241
+ }>>;
7242
+ thinkingLevelRaw: z.ZodOptional<z.ZodString>;
7104
7243
  timestamp: z.ZodISODateTime;
7105
7244
  tokensIn: z.ZodOptional<z.ZodNullable<z.ZodInt>>;
7106
7245
  tokensOut: z.ZodOptional<z.ZodNullable<z.ZodInt>>;
@@ -7420,6 +7559,18 @@ export declare const zSessionDetailReadPayload: z.ZodObject<{
7420
7559
  max_turn_requests: "max_turn_requests";
7421
7560
  refusal: "refusal";
7422
7561
  }>>>;
7562
+ thinkingLevel: z.ZodOptional<z.ZodEnum<{
7563
+ max: "max";
7564
+ high: "high";
7565
+ low: "low";
7566
+ medium: "medium";
7567
+ off: "off";
7568
+ minimal: "minimal";
7569
+ xhigh: "xhigh";
7570
+ ultra: "ultra";
7571
+ ultracode: "ultracode";
7572
+ }>>;
7573
+ thinkingLevelRaw: z.ZodOptional<z.ZodString>;
7423
7574
  timestamp: z.ZodISODateTime;
7424
7575
  tokensIn: z.ZodOptional<z.ZodNullable<z.ZodInt>>;
7425
7576
  tokensOut: z.ZodOptional<z.ZodNullable<z.ZodInt>>;
@@ -7761,6 +7912,32 @@ export declare const zSessionDetailReadPayload: z.ZodObject<{
7761
7912
  source: z.ZodOptional<z.ZodString>;
7762
7913
  startTime: z.ZodOptional<z.ZodISODateTime>;
7763
7914
  status: z.ZodOptional<z.ZodString>;
7915
+ thinkingLevel: z.ZodOptional<z.ZodEnum<{
7916
+ max: "max";
7917
+ high: "high";
7918
+ low: "low";
7919
+ medium: "medium";
7920
+ off: "off";
7921
+ minimal: "minimal";
7922
+ xhigh: "xhigh";
7923
+ ultra: "ultra";
7924
+ ultracode: "ultracode";
7925
+ }>>;
7926
+ thinkingLevelHistory: z.ZodOptional<z.ZodArray<z.ZodIntersection<z.ZodUnknown, z.ZodObject<{
7927
+ level: z.ZodOptional<z.ZodEnum<{
7928
+ max: "max";
7929
+ high: "high";
7930
+ low: "low";
7931
+ medium: "medium";
7932
+ off: "off";
7933
+ minimal: "minimal";
7934
+ xhigh: "xhigh";
7935
+ ultra: "ultra";
7936
+ ultracode: "ultracode";
7937
+ }>>;
7938
+ raw: z.ZodOptional<z.ZodString>;
7939
+ }, z.core.$strip>>>>;
7940
+ thinkingLevelRaw: z.ZodOptional<z.ZodString>;
7764
7941
  tokensIn: z.ZodOptional<z.ZodInt>;
7765
7942
  tokensOut: z.ZodOptional<z.ZodInt>;
7766
7943
  toolCallCount: z.ZodOptional<z.ZodInt>;
@@ -7850,6 +8027,18 @@ export declare const zSessionDetailReadPayload: z.ZodObject<{
7850
8027
  max_turn_requests: "max_turn_requests";
7851
8028
  refusal: "refusal";
7852
8029
  }>>>;
8030
+ thinkingLevel: z.ZodOptional<z.ZodEnum<{
8031
+ max: "max";
8032
+ high: "high";
8033
+ low: "low";
8034
+ medium: "medium";
8035
+ off: "off";
8036
+ minimal: "minimal";
8037
+ xhigh: "xhigh";
8038
+ ultra: "ultra";
8039
+ ultracode: "ultracode";
8040
+ }>>;
8041
+ thinkingLevelRaw: z.ZodOptional<z.ZodString>;
7853
8042
  timestamp: z.ZodISODateTime;
7854
8043
  tokensIn: z.ZodOptional<z.ZodNullable<z.ZodInt>>;
7855
8044
  tokensOut: z.ZodOptional<z.ZodNullable<z.ZodInt>>;
@@ -8174,6 +8363,18 @@ export declare const zTranscriptContent: z.ZodObject<{
8174
8363
  max_turn_requests: "max_turn_requests";
8175
8364
  refusal: "refusal";
8176
8365
  }>>>;
8366
+ thinkingLevel: z.ZodOptional<z.ZodEnum<{
8367
+ max: "max";
8368
+ high: "high";
8369
+ low: "low";
8370
+ medium: "medium";
8371
+ off: "off";
8372
+ minimal: "minimal";
8373
+ xhigh: "xhigh";
8374
+ ultra: "ultra";
8375
+ ultracode: "ultracode";
8376
+ }>>;
8377
+ thinkingLevelRaw: z.ZodOptional<z.ZodString>;
8177
8378
  timestamp: z.ZodISODateTime;
8178
8379
  tokensIn: z.ZodOptional<z.ZodNullable<z.ZodInt>>;
8179
8380
  tokensOut: z.ZodOptional<z.ZodNullable<z.ZodInt>>;
@@ -8490,6 +8691,32 @@ export declare const zTranscriptContent: z.ZodObject<{
8490
8691
  source: z.ZodOptional<z.ZodString>;
8491
8692
  startTime: z.ZodISODateTime;
8492
8693
  status: z.ZodOptional<z.ZodString>;
8694
+ thinkingLevel: z.ZodOptional<z.ZodEnum<{
8695
+ max: "max";
8696
+ high: "high";
8697
+ low: "low";
8698
+ medium: "medium";
8699
+ off: "off";
8700
+ minimal: "minimal";
8701
+ xhigh: "xhigh";
8702
+ ultra: "ultra";
8703
+ ultracode: "ultracode";
8704
+ }>>;
8705
+ thinkingLevelHistory: z.ZodOptional<z.ZodArray<z.ZodIntersection<z.ZodUnknown, z.ZodObject<{
8706
+ level: z.ZodOptional<z.ZodEnum<{
8707
+ max: "max";
8708
+ high: "high";
8709
+ low: "low";
8710
+ medium: "medium";
8711
+ off: "off";
8712
+ minimal: "minimal";
8713
+ xhigh: "xhigh";
8714
+ ultra: "ultra";
8715
+ ultracode: "ultracode";
8716
+ }>>;
8717
+ raw: z.ZodOptional<z.ZodString>;
8718
+ }, z.core.$strip>>>>;
8719
+ thinkingLevelRaw: z.ZodOptional<z.ZodString>;
8493
8720
  tokensIn: z.ZodInt;
8494
8721
  tokensOut: z.ZodInt;
8495
8722
  toolCallCount: z.ZodInt;
@@ -8579,6 +8806,18 @@ export declare const zTranscriptContent: z.ZodObject<{
8579
8806
  max_turn_requests: "max_turn_requests";
8580
8807
  refusal: "refusal";
8581
8808
  }>>>;
8809
+ thinkingLevel: z.ZodOptional<z.ZodEnum<{
8810
+ max: "max";
8811
+ high: "high";
8812
+ low: "low";
8813
+ medium: "medium";
8814
+ off: "off";
8815
+ minimal: "minimal";
8816
+ xhigh: "xhigh";
8817
+ ultra: "ultra";
8818
+ ultracode: "ultracode";
8819
+ }>>;
8820
+ thinkingLevelRaw: z.ZodOptional<z.ZodString>;
8582
8821
  timestamp: z.ZodISODateTime;
8583
8822
  tokensIn: z.ZodOptional<z.ZodNullable<z.ZodInt>>;
8584
8823
  tokensOut: z.ZodOptional<z.ZodNullable<z.ZodInt>>;
@@ -401,7 +401,7 @@ export const zConfidence = z.enum([
401
401
  /**
402
402
  * Content Capability
403
403
  *
404
- * Opaque, forward-open revision token in the deployment-specific content-capability set. Clients use exact set membership, never parse _v1 as Semantic Versioning or infer ranges, ignore unknown tokens, and tolerate duplicate or unordered input. Servers emit only their pinned known inventory, reject duplicates, and serialize lexicographically; token meanings are immutable. observed_model_v1 is required iff any root or nested assistant turn has observedModel, not for session model alone, and guarantees assistant-only value validation before persistence with no invalid DB/blob side effects plus byte-exact accepted observedModel strings through storage, typed migration, rewrite, serving, and pull; JSON whitespace and key order are excluded.
404
+ * Opaque, forward-open revision token in the deployment-specific content-capability set. Clients use exact set membership, never parse _v1 as Semantic Versioning or infer ranges, ignore unknown tokens, and tolerate duplicate or unordered input. Servers emit only their pinned known inventory, reject duplicates, and serialize lexicographically; token meanings are immutable. observed_model_v1 is required iff any root or nested assistant turn has observedModel, not for session model alone, and guarantees assistant-only value validation before persistence with no invalid DB/blob side effects plus byte-exact accepted observedModel strings through storage, typed migration, rewrite, serving, and pull; JSON whitespace and key order are excluded. thinking_level_v1 is required iff the session detail carries thinkingLevel, thinkingLevelRaw, or a non-empty thinkingLevelHistory, or any main or earlier-history turn carries thinkingLevel or thinkingLevelRaw, and guarantees canonical, raw-bound, and assistant-only validation before persistence with no invalid side effects plus byte-exact preservation of the values, their history order, and their absence through storage, typed migration, rewrite, serving, and pull.
405
405
  */
406
406
  export const zContentCapability = z.string();
407
407
  /**
@@ -2109,6 +2109,32 @@ export const zProjectTasksPayload = z.object({
2109
2109
  projectHash: zProjectHash,
2110
2110
  tasks: z.array(zTaskSummary).nullable()
2111
2111
  });
2112
+ /**
2113
+ * Thinking Level
2114
+ *
2115
+ * Canonical reasoning-effort level of assistant-generated output: off, minimal, low, medium, high, xhigh, max, ultra, ultracode. off is the single disabled state, ultra is above max, and ultracode is a distinct level. Omit the field when the level is unknown; never infer it from token budgets.
2116
+ */
2117
+ export const zThinkingLevel = z.enum([
2118
+ 'off',
2119
+ 'minimal',
2120
+ 'low',
2121
+ 'medium',
2122
+ 'high',
2123
+ 'xhigh',
2124
+ 'max',
2125
+ 'ultra',
2126
+ 'ultracode'
2127
+ ]);
2128
+ /**
2129
+ * Thinking Level Raw
2130
+ *
2131
+ * Exact native thinking-level spelling observed when it differs from the emitted canonical thinkingLevel, including when no canonical level could be mapped. Source evidence, never a canonical value; numeric budgets are never raw. Non-empty, valid UTF-8, at most 128 encoded UTF-8 bytes, and no Unicode White_Space code point at either edge. Omit when nothing was observed or the native spelling is canonical.
2132
+ */
2133
+ export const zThinkingLevelRaw = z.string().min(1).max(128).regex(/^(?:|[^\s])(?:[\s\S]*(?:|[^\s]))?$/).refine((value) => !/[\uD800-\uDFFF]/u.test(value) && new TextEncoder().encode(value).length <= 128, { error: "ThinkingLevelRaw is invalid UTF-8 or exceeds 128 bytes" }).refine((value) => { const edge = (text) => text === "\uFEFF" || (!/\s/u.test(text) && text !== "\u0085"); return edge(value.charAt(0)) && edge(value.charAt(value.length - 1)); }, { error: "ThinkingLevelRaw must not begin or end with whitespace" });
2134
+ export const zThinkingLevelChange = z.intersection(z.unknown(), z.object({
2135
+ level: zThinkingLevel.optional(),
2136
+ raw: zThinkingLevelRaw.optional()
2137
+ })).refine((value) => value.level !== undefined || value.raw !== undefined, { error: "ThinkingLevelChange must carry level or raw" });
2112
2138
  export const zTimelineSessionRef = z.object({
2113
2139
  harness: zHarness,
2114
2140
  hasCommitBinding: z.boolean(),
@@ -2400,6 +2426,9 @@ export const zUnifiedMetadata = z.object({
2400
2426
  source: zSourceInfo,
2401
2427
  stats: zSessionStats,
2402
2428
  subagents: z.array(zSubagentRef).nullable(),
2429
+ thinkingLevel: zThinkingLevel.optional(),
2430
+ thinkingLevelHistory: z.array(zThinkingLevelChange).optional(),
2431
+ thinkingLevelRaw: zThinkingLevelRaw.optional(),
2403
2432
  timestamp: zTimestampInfo,
2404
2433
  version: z.string()
2405
2434
  });
@@ -2490,6 +2519,8 @@ export const zTurnDetail = z.object({
2490
2519
  role: zRole,
2491
2520
  sourceEntryRef: zSourceEntryRef.optional(),
2492
2521
  stopReason: zStopReason.nullish(),
2522
+ thinkingLevel: zThinkingLevel.optional(),
2523
+ thinkingLevelRaw: zThinkingLevelRaw.optional(),
2493
2524
  timestamp: z.iso.datetime(),
2494
2525
  tokensIn: z.int().nullish(),
2495
2526
  tokensOut: z.int().nullish(),
@@ -2527,6 +2558,9 @@ export const zSessionDetailPayload = z.object({
2527
2558
  source: z.string().optional(),
2528
2559
  startTime: z.iso.datetime(),
2529
2560
  status: z.string().optional(),
2561
+ thinkingLevel: zThinkingLevel.optional(),
2562
+ thinkingLevelHistory: z.array(zThinkingLevelChange).optional(),
2563
+ thinkingLevelRaw: zThinkingLevelRaw.optional(),
2530
2564
  tokensIn: z.int(),
2531
2565
  tokensOut: z.int(),
2532
2566
  toolCallCount: z.int(),
@@ -2562,6 +2596,9 @@ export const zSessionDetailReadPayload = z.object({
2562
2596
  source: z.string().optional(),
2563
2597
  startTime: z.iso.datetime().optional(),
2564
2598
  status: z.string().optional(),
2599
+ thinkingLevel: zThinkingLevel.optional(),
2600
+ thinkingLevelHistory: z.array(zThinkingLevelChange).optional(),
2601
+ thinkingLevelRaw: zThinkingLevelRaw.optional(),
2565
2602
  tokensIn: z.int().optional(),
2566
2603
  tokensOut: z.int().optional(),
2567
2604
  toolCallCount: z.int().optional(),
@@ -87,6 +87,7 @@ import { type LocalSettingKind as LocalSettingKindContract } from "./contract/zo
87
87
  import { type AutoPublishEvent as AutoPublishEventContract } from "./contract/zod.gen.js";
88
88
  import { type AutoPublishHookStatus as AutoPublishHookStatusContract } from "./contract/zod.gen.js";
89
89
  import { type AutoPublishRuleKind as AutoPublishRuleKindContract } from "./contract/zod.gen.js";
90
+ import { type ThinkingLevel as ThinkingLevelContract } from "./contract/zod.gen.js";
90
91
  export type PublishOperationKind = PublishOperationKindContract;
91
92
  export declare const PublishOperationKind: Readonly<{
92
93
  readonly Preserve: "replace" | "append" | "preserve";
@@ -892,3 +893,17 @@ export declare const AutoPublishRuleKind: Readonly<{
892
893
  }>;
893
894
  export declare const AllAutoPublishRuleKinds: readonly AutoPublishRuleKind[];
894
895
  export declare function isAutoPublishRuleKind(value: unknown): value is AutoPublishRuleKind;
896
+ export type ThinkingLevel = ThinkingLevelContract;
897
+ export declare const ThinkingLevel: Readonly<{
898
+ readonly Off: "max" | "high" | "low" | "medium" | "off" | "minimal" | "xhigh" | "ultra" | "ultracode";
899
+ readonly Minimal: "max" | "high" | "low" | "medium" | "off" | "minimal" | "xhigh" | "ultra" | "ultracode";
900
+ readonly Low: "max" | "high" | "low" | "medium" | "off" | "minimal" | "xhigh" | "ultra" | "ultracode";
901
+ readonly Medium: "max" | "high" | "low" | "medium" | "off" | "minimal" | "xhigh" | "ultra" | "ultracode";
902
+ readonly High: "max" | "high" | "low" | "medium" | "off" | "minimal" | "xhigh" | "ultra" | "ultracode";
903
+ readonly XHigh: "max" | "high" | "low" | "medium" | "off" | "minimal" | "xhigh" | "ultra" | "ultracode";
904
+ readonly Max: "max" | "high" | "low" | "medium" | "off" | "minimal" | "xhigh" | "ultra" | "ultracode";
905
+ readonly Ultra: "max" | "high" | "low" | "medium" | "off" | "minimal" | "xhigh" | "ultra" | "ultracode";
906
+ readonly Ultracode: "max" | "high" | "low" | "medium" | "off" | "minimal" | "xhigh" | "ultra" | "ultracode";
907
+ }>;
908
+ export declare const AllThinkingLevels: readonly ThinkingLevel[];
909
+ export declare function isThinkingLevel(value: unknown): value is ThinkingLevel;