harnery 0.34.0 → 0.35.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.
Files changed (212) hide show
  1. package/dist/commander.d.ts.map +1 -1
  2. package/dist/commander.js +2 -0
  3. package/dist/commands/agents.d.ts +15 -4
  4. package/dist/commands/agents.d.ts.map +1 -1
  5. package/dist/commands/agents.js +91 -162
  6. package/dist/commands/browse.d.ts.map +1 -1
  7. package/dist/commands/browse.js +26 -2
  8. package/dist/commands/decision.d.ts.map +1 -1
  9. package/dist/commands/decision.js +2 -2
  10. package/dist/commands/events.d.ts.map +1 -1
  11. package/dist/commands/events.js +18 -1
  12. package/dist/commands/presence.d.ts.map +1 -1
  13. package/dist/commands/presence.js +2 -2
  14. package/dist/commands/semantic.d.ts +4 -0
  15. package/dist/commands/semantic.d.ts.map +1 -0
  16. package/dist/commands/semantic.js +147 -0
  17. package/dist/commands/web.d.ts.map +1 -1
  18. package/dist/commands/web.js +17 -0
  19. package/dist/core/agents/canonical-emit.d.ts +3 -0
  20. package/dist/core/agents/canonical-emit.d.ts.map +1 -1
  21. package/dist/core/agents/canonical-emit.js +12 -0
  22. package/dist/core/agents/claim-path.d.ts +11 -0
  23. package/dist/core/agents/claim-path.d.ts.map +1 -0
  24. package/dist/core/agents/claim-path.js +22 -0
  25. package/dist/core/agents/coord-client.d.ts +29 -3
  26. package/dist/core/agents/coord-client.d.ts.map +1 -1
  27. package/dist/core/agents/coord-client.js +88 -9
  28. package/dist/core/agents/live-authority-v3.d.ts.map +1 -1
  29. package/dist/core/agents/live-authority-v3.js +1 -3
  30. package/dist/core/agents/live-lifecycle-v3.js +3 -3
  31. package/dist/core/agents/live-observation-v3.d.ts.map +1 -1
  32. package/dist/core/agents/live-observation-v3.js +2 -2
  33. package/dist/core/agents/render/prompt-context.js +12 -10
  34. package/dist/core/agents/rules/stop-hook.d.ts.map +1 -1
  35. package/dist/core/agents/rules/stop-hook.js +23 -11
  36. package/dist/core/agents/session-name-display.d.ts +2 -1
  37. package/dist/core/agents/session-name-display.d.ts.map +1 -1
  38. package/dist/core/agents/session-name-display.js +10 -3
  39. package/dist/core/agents/state/heartbeat-reader.d.ts +46 -0
  40. package/dist/core/agents/state/heartbeat-reader.d.ts.map +1 -0
  41. package/dist/core/agents/state/heartbeat-reader.js +25 -0
  42. package/dist/core/agents/state/heartbeat-writer.d.ts +3 -48
  43. package/dist/core/agents/state/heartbeat-writer.d.ts.map +1 -1
  44. package/dist/core/agents/state/heartbeat-writer.js +16 -34
  45. package/dist/core/agents/state/live-coordination-view.d.ts +1 -1
  46. package/dist/core/agents/state/live-coordination-view.d.ts.map +1 -1
  47. package/dist/core/agents/state/live-coordination-view.js +25 -1
  48. package/dist/core/agents/state/names.d.ts +9 -1
  49. package/dist/core/agents/state/names.d.ts.map +1 -1
  50. package/dist/core/agents/state/names.js +190 -182
  51. package/dist/core/agents/state/stale-sweep.d.ts.map +1 -1
  52. package/dist/core/agents/state/stale-sweep.js +23 -5
  53. package/dist/core/artifacts/constants.d.ts +5 -0
  54. package/dist/core/artifacts/constants.d.ts.map +1 -0
  55. package/dist/core/artifacts/constants.js +4 -0
  56. package/dist/core/artifacts/index.d.ts +3 -3
  57. package/dist/core/artifacts/index.d.ts.map +1 -1
  58. package/dist/core/artifacts/index.js +50 -7
  59. package/dist/core/events/v3/base-contract.d.ts +795 -0
  60. package/dist/core/events/v3/base-contract.d.ts.map +1 -1
  61. package/dist/core/events/v3/base-contract.js +33 -0
  62. package/dist/core/events/v3/capabilities.d.ts +11 -0
  63. package/dist/core/events/v3/capabilities.d.ts.map +1 -1
  64. package/dist/core/events/v3/capabilities.js +23 -0
  65. package/dist/core/events/v3/generated.d.ts +1 -1
  66. package/dist/core/events/v3/generated.js +1 -1
  67. package/dist/core/events/v3/index.d.ts +4 -3
  68. package/dist/core/events/v3/index.d.ts.map +1 -1
  69. package/dist/core/events/v3/index.js +4 -3
  70. package/dist/core/events/v3/latency.d.ts +31 -1
  71. package/dist/core/events/v3/latency.d.ts.map +1 -1
  72. package/dist/core/events/v3/latency.js +127 -3
  73. package/dist/core/events/v3/live-routing.d.ts +30 -0
  74. package/dist/core/events/v3/live-routing.d.ts.map +1 -1
  75. package/dist/core/events/v3/live-routing.js +109 -1
  76. package/dist/core/events/v3/producers/command-recorder.d.ts.map +1 -1
  77. package/dist/core/events/v3/producers/command-recorder.js +10 -1
  78. package/dist/core/events/v3/producers/coordination-recorder.d.ts.map +1 -1
  79. package/dist/core/events/v3/producers/coordination-recorder.js +14 -3
  80. package/dist/core/events/v3/producers/hook-base.d.ts +17 -1
  81. package/dist/core/events/v3/producers/hook-base.d.ts.map +1 -1
  82. package/dist/core/events/v3/producers/hook-base.js +82 -1
  83. package/dist/core/events/v3/producers/intake.d.ts +6 -0
  84. package/dist/core/events/v3/producers/intake.d.ts.map +1 -1
  85. package/dist/core/events/v3/producers/intake.js +11 -0
  86. package/dist/core/events/v3/producers/recorder.d.ts +62 -0
  87. package/dist/core/events/v3/producers/recorder.d.ts.map +1 -1
  88. package/dist/core/events/v3/producers/recorder.js +654 -18
  89. package/dist/core/events/v3/runtime-telemetry-capabilities.d.ts +51 -0
  90. package/dist/core/events/v3/runtime-telemetry-capabilities.d.ts.map +1 -0
  91. package/dist/core/events/v3/runtime-telemetry-capabilities.js +54 -0
  92. package/dist/core/events/v3/turn-telemetry.d.ts +9 -0
  93. package/dist/core/events/v3/turn-telemetry.d.ts.map +1 -1
  94. package/dist/core/hooks/adapter/parse.d.ts +3 -0
  95. package/dist/core/hooks/adapter/parse.d.ts.map +1 -1
  96. package/dist/core/hooks/adapter/parse.js +14 -0
  97. package/dist/core/hooks/adapter/runtime-telemetry.d.ts +119 -0
  98. package/dist/core/hooks/adapter/runtime-telemetry.d.ts.map +1 -0
  99. package/dist/core/hooks/adapter/runtime-telemetry.js +568 -0
  100. package/dist/core/hooks/cli.js +114 -38
  101. package/dist/core/hooks/remediation-cap.d.ts +34 -0
  102. package/dist/core/hooks/remediation-cap.d.ts.map +1 -0
  103. package/dist/core/hooks/remediation-cap.js +71 -0
  104. package/dist/core/hooks/resolve/transcript.d.ts +25 -9
  105. package/dist/core/hooks/resolve/transcript.d.ts.map +1 -1
  106. package/dist/core/hooks/resolve/transcript.js +35 -17
  107. package/dist/core/semantic/adapters.d.ts +34 -0
  108. package/dist/core/semantic/adapters.d.ts.map +1 -0
  109. package/dist/core/semantic/adapters.js +222 -0
  110. package/dist/core/semantic/contract.d.ts +588 -0
  111. package/dist/core/semantic/contract.d.ts.map +1 -0
  112. package/dist/core/semantic/contract.js +230 -0
  113. package/dist/core/semantic/evidence.d.ts +11 -0
  114. package/dist/core/semantic/evidence.d.ts.map +1 -0
  115. package/dist/core/semantic/evidence.js +262 -0
  116. package/dist/core/semantic/index.d.ts +10 -0
  117. package/dist/core/semantic/index.d.ts.map +1 -0
  118. package/dist/core/semantic/index.js +9 -0
  119. package/dist/core/semantic/once.d.ts +33 -0
  120. package/dist/core/semantic/once.d.ts.map +1 -0
  121. package/dist/core/semantic/once.js +293 -0
  122. package/dist/core/semantic/prompt.d.ts +12 -0
  123. package/dist/core/semantic/prompt.d.ts.map +1 -0
  124. package/dist/core/semantic/prompt.js +70 -0
  125. package/dist/core/semantic/scheduler.d.ts +16 -0
  126. package/dist/core/semantic/scheduler.d.ts.map +1 -0
  127. package/dist/core/semantic/scheduler.js +67 -0
  128. package/dist/core/semantic/service-status.d.ts +31 -0
  129. package/dist/core/semantic/service-status.d.ts.map +1 -0
  130. package/dist/core/semantic/service-status.js +84 -0
  131. package/dist/core/semantic/service.d.ts +51 -0
  132. package/dist/core/semantic/service.d.ts.map +1 -0
  133. package/dist/core/semantic/service.js +470 -0
  134. package/dist/core/semantic/storage.d.ts +71 -0
  135. package/dist/core/semantic/storage.d.ts.map +1 -0
  136. package/dist/core/semantic/storage.js +179 -0
  137. package/dist/core/semantic/validate.d.ts +16 -0
  138. package/dist/core/semantic/validate.d.ts.map +1 -0
  139. package/dist/core/semantic/validate.js +174 -0
  140. package/dist/lib/browser/client.d.ts +11 -0
  141. package/dist/lib/browser/client.d.ts.map +1 -1
  142. package/dist/lib/browser/client.js +13 -0
  143. package/dist/lib/browser/index.d.ts +1 -0
  144. package/dist/lib/browser/index.d.ts.map +1 -1
  145. package/dist/lib/browser/standalone-html.d.ts +25 -0
  146. package/dist/lib/browser/standalone-html.d.ts.map +1 -0
  147. package/dist/lib/browser/standalone-html.js +284 -0
  148. package/dist/lib/instructions/apply.d.ts.map +1 -1
  149. package/dist/lib/instructions/apply.js +1 -0
  150. package/dist/lib/instructions/templates.d.ts +2 -0
  151. package/dist/lib/instructions/templates.d.ts.map +1 -1
  152. package/dist/lib/instructions/templates.js +144 -4
  153. package/package.json +6 -1
  154. package/schemas/event-v3.schema.json +2758 -478
  155. package/src/commander.ts +2 -0
  156. package/src/commands/agents.ts +104 -152
  157. package/src/commands/browse.ts +25 -2
  158. package/src/commands/decision.ts +8 -2
  159. package/src/commands/events.ts +21 -1
  160. package/src/commands/presence.ts +7 -2
  161. package/src/commands/semantic.ts +179 -0
  162. package/src/commands/web.ts +15 -0
  163. package/src/core/agents/canonical-emit.ts +15 -0
  164. package/src/core/agents/claim-path.ts +23 -0
  165. package/src/core/agents/coord-client.ts +92 -8
  166. package/src/core/agents/live-authority-v3.ts +1 -4
  167. package/src/core/agents/live-lifecycle-v3.ts +8 -3
  168. package/src/core/agents/live-observation-v3.ts +7 -2
  169. package/src/core/agents/render/prompt-context.ts +13 -10
  170. package/src/core/agents/rules/stop-hook.ts +24 -11
  171. package/src/core/agents/session-name-display.ts +11 -3
  172. package/src/core/agents/state/heartbeat-reader.ts +69 -0
  173. package/src/core/agents/state/heartbeat-writer.ts +20 -84
  174. package/src/core/agents/state/live-coordination-view.ts +26 -1
  175. package/src/core/agents/state/names.ts +190 -182
  176. package/src/core/agents/state/stale-sweep.ts +25 -5
  177. package/src/core/artifacts/constants.ts +4 -0
  178. package/src/core/artifacts/index.ts +49 -7
  179. package/src/core/events/v3/base-contract.ts +39 -0
  180. package/src/core/events/v3/capabilities.ts +34 -0
  181. package/src/core/events/v3/generated.ts +1 -1
  182. package/src/core/events/v3/index.ts +21 -0
  183. package/src/core/events/v3/latency.ts +213 -2
  184. package/src/core/events/v3/live-routing.ts +120 -1
  185. package/src/core/events/v3/producers/command-recorder.ts +10 -1
  186. package/src/core/events/v3/producers/coordination-recorder.ts +17 -5
  187. package/src/core/events/v3/producers/hook-base.ts +115 -1
  188. package/src/core/events/v3/producers/intake.ts +18 -0
  189. package/src/core/events/v3/producers/recorder.ts +856 -21
  190. package/src/core/events/v3/runtime-telemetry-capabilities.ts +137 -0
  191. package/src/core/events/v3/turn-telemetry.ts +10 -0
  192. package/src/core/hooks/adapter/parse.ts +16 -0
  193. package/src/core/hooks/adapter/runtime-telemetry.ts +805 -0
  194. package/src/core/hooks/cli.ts +126 -41
  195. package/src/core/hooks/remediation-cap.ts +77 -0
  196. package/src/core/hooks/resolve/transcript.ts +49 -17
  197. package/src/core/semantic/adapters.ts +293 -0
  198. package/src/core/semantic/contract.ts +298 -0
  199. package/src/core/semantic/evidence.ts +336 -0
  200. package/src/core/semantic/index.ts +127 -0
  201. package/src/core/semantic/once.ts +410 -0
  202. package/src/core/semantic/prompt.ts +84 -0
  203. package/src/core/semantic/scheduler.ts +107 -0
  204. package/src/core/semantic/service-status.ts +118 -0
  205. package/src/core/semantic/service.ts +580 -0
  206. package/src/core/semantic/storage.ts +286 -0
  207. package/src/core/semantic/validate.ts +212 -0
  208. package/src/lib/browser/client.ts +21 -0
  209. package/src/lib/browser/index.ts +4 -0
  210. package/src/lib/browser/standalone-html.ts +312 -0
  211. package/src/lib/instructions/apply.ts +1 -0
  212. package/src/lib/instructions/templates.ts +149 -4
@@ -0,0 +1,51 @@
1
+ import type { Adapter } from "../../adapter.js";
2
+ import { type CapabilitySupportV3, type CursorExecutionModeV3 } from "./capabilities.js";
3
+ export type RuntimeTelemetryChannelV3 = "context_usage" | "wait_spans" | "wait_completeness" | "response_latency" | "inference_timing";
4
+ export type RuntimeTelemetryCompletenessV3 = "exact" | "lower_bound" | "unknown";
5
+ export interface RuntimeTelemetryCapabilityValueV3 {
6
+ support: Exclude<CapabilitySupportV3, "unsupported">;
7
+ source: string;
8
+ completeness: RuntimeTelemetryCompletenessV3;
9
+ }
10
+ export type RuntimeTelemetryCapabilityObservationV3 = {
11
+ state: "observed";
12
+ value: RuntimeTelemetryCapabilityValueV3;
13
+ attestation: "native" | "derived";
14
+ confidence: "exact" | "high";
15
+ } | {
16
+ state: "expected_but_missing";
17
+ capability: string;
18
+ reason: string;
19
+ } | {
20
+ state: "unsupported";
21
+ capability: string;
22
+ };
23
+ export type RuntimeContextCapabilityEvidenceV3 = {
24
+ state: "observed";
25
+ source: string;
26
+ attestation: "native" | "derived";
27
+ confidence: "exact" | "high";
28
+ } | {
29
+ state: "partial";
30
+ reason: string;
31
+ } | {
32
+ state: "unsupported";
33
+ };
34
+ export interface RuntimeTelemetryCapabilityEvidenceV3 {
35
+ adapter: Adapter;
36
+ cursor_mode?: CursorExecutionModeV3;
37
+ context: RuntimeContextCapabilityEvidenceV3;
38
+ canonical_turn_boundaries: boolean;
39
+ independent_wait_completeness?: boolean;
40
+ }
41
+ export type RuntimeTelemetryCapabilitiesV3 = Record<RuntimeTelemetryChannelV3, RuntimeTelemetryCapabilityObservationV3>;
42
+ /**
43
+ * Resolve the telemetry support that one runtime session can actually prove.
44
+ *
45
+ * This is deliberately separate from AdapterCapabilityProfileV3. The static
46
+ * profile gates the event contract; this projection describes effective
47
+ * session evidence without moving a genesis-approved digest when a local
48
+ * source is missing, late, or unreadable.
49
+ */
50
+ export declare function effectiveRuntimeTelemetryCapabilitiesV3(evidence: RuntimeTelemetryCapabilityEvidenceV3): RuntimeTelemetryCapabilitiesV3;
51
+ //# sourceMappingURL=runtime-telemetry-capabilities.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-telemetry-capabilities.d.ts","sourceRoot":"","sources":["../../../../src/core/events/v3/runtime-telemetry-capabilities.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAEL,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAC3B,MAAM,mBAAmB,CAAC;AAE3B,MAAM,MAAM,yBAAyB,GACjC,eAAe,GACf,YAAY,GACZ,mBAAmB,GACnB,kBAAkB,GAClB,kBAAkB,CAAC;AAEvB,MAAM,MAAM,8BAA8B,GAAG,OAAO,GAAG,aAAa,GAAG,SAAS,CAAC;AAEjF,MAAM,WAAW,iCAAiC;IAChD,OAAO,EAAE,OAAO,CAAC,mBAAmB,EAAE,aAAa,CAAC,CAAC;IACrD,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,8BAA8B,CAAC;CAC9C;AAED,MAAM,MAAM,uCAAuC,GAC/C;IACE,KAAK,EAAE,UAAU,CAAC;IAClB,KAAK,EAAE,iCAAiC,CAAC;IACzC,WAAW,EAAE,QAAQ,GAAG,SAAS,CAAC;IAClC,UAAU,EAAE,OAAO,GAAG,MAAM,CAAC;CAC9B,GACD;IAAE,KAAK,EAAE,sBAAsB,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACrE;IAAE,KAAK,EAAE,aAAa,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC;AAEjD,MAAM,MAAM,kCAAkC,GAC1C;IACE,KAAK,EAAE,UAAU,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,QAAQ,GAAG,SAAS,CAAC;IAClC,UAAU,EAAE,OAAO,GAAG,MAAM,CAAC;CAC9B,GACD;IAAE,KAAK,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACpC;IAAE,KAAK,EAAE,aAAa,CAAA;CAAE,CAAC;AAE7B,MAAM,WAAW,oCAAoC;IACnD,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,qBAAqB,CAAC;IACpC,OAAO,EAAE,kCAAkC,CAAC;IAC5C,yBAAyB,EAAE,OAAO,CAAC;IACnC,6BAA6B,CAAC,EAAE,OAAO,CAAC;CACzC;AAED,MAAM,MAAM,8BAA8B,GAAG,MAAM,CACjD,yBAAyB,EACzB,uCAAuC,CACxC,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,uCAAuC,CACrD,QAAQ,EAAE,oCAAoC,GAC7C,8BAA8B,CAYhC"}
@@ -0,0 +1,54 @@
1
+ import { adapterSignalSupportV3, } from "./capabilities.js";
2
+ /**
3
+ * Resolve the telemetry support that one runtime session can actually prove.
4
+ *
5
+ * This is deliberately separate from AdapterCapabilityProfileV3. The static
6
+ * profile gates the event contract; this projection describes effective
7
+ * session evidence without moving a genesis-approved digest when a local
8
+ * source is missing, late, or unreadable.
9
+ */
10
+ export function effectiveRuntimeTelemetryCapabilitiesV3(evidence) {
11
+ return {
12
+ context_usage: contextCapability(evidence.context),
13
+ wait_spans: waitSpanCapability(evidence.adapter, evidence.cursor_mode),
14
+ wait_completeness: evidence.independent_wait_completeness
15
+ ? observed("native", "runtime.wait_aggregate", "exact", "native", "exact")
16
+ : unsupported("wait_turn_completeness"),
17
+ response_latency: evidence.canonical_turn_boundaries
18
+ ? observed("derived", "canonical.event_clocks", "exact", "derived", "exact")
19
+ : missing("response_latency", "turn_boundaries_not_delivered"),
20
+ inference_timing: unsupported("provider_inference_timing"),
21
+ };
22
+ }
23
+ function contextCapability(evidence) {
24
+ if (evidence.state === "observed") {
25
+ return observed(evidence.attestation === "native" ? "native" : "derived", evidence.source, "exact", evidence.attestation, evidence.confidence);
26
+ }
27
+ if (evidence.state === "partial") {
28
+ return missing("context_usage", evidence.reason);
29
+ }
30
+ return unsupported("context_usage");
31
+ }
32
+ function waitSpanCapability(adapter, cursorMode) {
33
+ if (adapter === "cursor" && cursorMode === "cloud") {
34
+ return unsupported("wait_span_delivery");
35
+ }
36
+ const support = adapterSignalSupportV3(adapter, "permission");
37
+ if (support === "unsupported")
38
+ return unsupported("wait_span_delivery");
39
+ return observed(support, adapter === "cursor" ? "cursor.permission_hooks" : `${adapter}.permission_hooks`, "lower_bound", support === "native" ? "native" : "derived", support === "native" ? "exact" : "high");
40
+ }
41
+ function observed(support, source, completeness, attestation, confidence) {
42
+ return {
43
+ state: "observed",
44
+ value: { support, source, completeness },
45
+ attestation,
46
+ confidence,
47
+ };
48
+ }
49
+ function missing(capability, reason) {
50
+ return { state: "expected_but_missing", capability, reason };
51
+ }
52
+ function unsupported(capability) {
53
+ return { state: "unsupported", capability };
54
+ }
@@ -25,6 +25,15 @@ export interface TurnTelemetryV3 {
25
25
  usage: TelemetryObservationV3<TurnUsageV3>;
26
26
  inference: TelemetryObservationV3<TurnInferenceV3>;
27
27
  context: TelemetryObservationV3<ContextMeasurementV3>;
28
+ /** Private producer metadata; the context event persists only its safe fields. */
29
+ context_provenance?: ContextTelemetryProvenanceV3;
30
+ }
31
+ export interface ContextTelemetryProvenanceV3 {
32
+ source_event: string;
33
+ source_witness?: string;
34
+ runtime_version?: string;
35
+ attestation: "native" | "derived";
36
+ confidence: "exact" | "high";
28
37
  }
29
38
  export type TurnTelemetryCapabilitySupportV3 = Partial<Pick<Record<AdapterSignalV3, CapabilitySupportV3>, "model_usage" | "inference_timing" | "context_usage">>;
30
39
  export interface HarnessTimingAccumulatorV3 {
@@ -1 +1 @@
1
- {"version":3,"file":"turn-telemetry.d.ts","sourceRoot":"","sources":["../../../../src/core/events/v3/turn-telemetry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EACL,KAAK,eAAe,EAEpB,KAAK,mBAAmB,EACzB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEjF,MAAM,MAAM,sBAAsB,CAAC,CAAC,IAChC;IAAE,KAAK,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,CAAC,CAAC;IAAC,WAAW,EAAE,QAAQ,GAAG,SAAS,CAAC;IAAC,UAAU,EAAE,OAAO,GAAG,MAAM,CAAA;CAAE,GAChG;IAAE,KAAK,EAAE,aAAa,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAC5C;IAAE,KAAK,EAAE,sBAAsB,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAE1E,MAAM,WAAW,oBAAoB;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,sBAAsB,CAAC,WAAW,CAAC,CAAC;IAC3C,SAAS,EAAE,sBAAsB,CAAC,eAAe,CAAC,CAAC;IACnD,OAAO,EAAE,sBAAsB,CAAC,oBAAoB,CAAC,CAAC;CACvD;AAED,MAAM,MAAM,gCAAgC,GAAG,OAAO,CACpD,IAAI,CACF,MAAM,CAAC,eAAe,EAAE,mBAAmB,CAAC,EAC5C,aAAa,GAAG,kBAAkB,GAAG,eAAe,CACrD,CACF,CAAC;AAEF,MAAM,WAAW,0BAA0B;IACzC,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,2EAA2E;AAC3E,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,UAAU,SAA2B,EACrC,OAAO,GAAE,gCAAqC,GAC7C,eAAe,CAgFjB;AAwCD,wBAAgB,oBAAoB,IAAI,0BAA0B,CAEjE;AAED,wBAAgB,qBAAqB,CACnC,WAAW,EAAE,0BAA0B,EACvC,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,GACjB,0BAA0B,CAU5B;AAED,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,0BAA0B,GACtC,sBAAsB,CAAC,aAAa,CAAC,CAsBvC"}
1
+ {"version":3,"file":"turn-telemetry.d.ts","sourceRoot":"","sources":["../../../../src/core/events/v3/turn-telemetry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EACL,KAAK,eAAe,EAEpB,KAAK,mBAAmB,EACzB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEjF,MAAM,MAAM,sBAAsB,CAAC,CAAC,IAChC;IAAE,KAAK,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,CAAC,CAAC;IAAC,WAAW,EAAE,QAAQ,GAAG,SAAS,CAAC;IAAC,UAAU,EAAE,OAAO,GAAG,MAAM,CAAA;CAAE,GAChG;IAAE,KAAK,EAAE,aAAa,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAC5C;IAAE,KAAK,EAAE,sBAAsB,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAE1E,MAAM,WAAW,oBAAoB;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,sBAAsB,CAAC,WAAW,CAAC,CAAC;IAC3C,SAAS,EAAE,sBAAsB,CAAC,eAAe,CAAC,CAAC;IACnD,OAAO,EAAE,sBAAsB,CAAC,oBAAoB,CAAC,CAAC;IACtD,kFAAkF;IAClF,kBAAkB,CAAC,EAAE,4BAA4B,CAAC;CACnD;AAED,MAAM,WAAW,4BAA4B;IAC3C,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,QAAQ,GAAG,SAAS,CAAC;IAClC,UAAU,EAAE,OAAO,GAAG,MAAM,CAAC;CAC9B;AAED,MAAM,MAAM,gCAAgC,GAAG,OAAO,CACpD,IAAI,CACF,MAAM,CAAC,eAAe,EAAE,mBAAmB,CAAC,EAC5C,aAAa,GAAG,kBAAkB,GAAG,eAAe,CACrD,CACF,CAAC;AAEF,MAAM,WAAW,0BAA0B;IACzC,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,2EAA2E;AAC3E,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,UAAU,SAA2B,EACrC,OAAO,GAAE,gCAAqC,GAC7C,eAAe,CAgFjB;AAwCD,wBAAgB,oBAAoB,IAAI,0BAA0B,CAEjE;AAED,wBAAgB,qBAAqB,CACnC,WAAW,EAAE,0BAA0B,EACvC,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,GACjB,0BAA0B,CAU5B;AAED,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,0BAA0B,GACtC,sBAAsB,CAAC,aAAa,CAAC,CAsBvC"}
@@ -23,6 +23,9 @@ export interface ParsedPayload {
23
23
  cwd?: string;
24
24
  pid?: number;
25
25
  model?: string;
26
+ /** CC stamps the effective effort level ({level}) on tool hooks and Stop;
27
+ * absent on SessionStart/UserPromptSubmit and on models with no dial. */
28
+ effort?: string;
26
29
  source?: string;
27
30
  prompt?: string;
28
31
  agent_message?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../../../src/core/hooks/adapter/parse.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAEhD,MAAM,WAAW,aAAa;IAC5B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qFAAqF;IACrF,WAAW,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,SAAS,CAAC;IAC5C,uFAAuF;IACvF,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC9B;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,aAAa,GAAG,IAAI,CA4DhF;AAsCD;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,SAAS,EAAE,OAAO,GACjB,MAAM,GAAG,SAAS,CASpB;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAO7E;AAmBD;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,MAAM,GAChB;IAAE,UAAU,EAAE,mBAAmB,CAAC;IAAC,UAAU,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CAgCjE;AAED,MAAM,MAAM,mBAAmB,GAC3B,iBAAiB,GACjB,eAAe,GACf,cAAc,GACd,gBAAgB,GAChB,eAAe,GACf,iBAAiB,GACjB,gBAAgB,GAChB,cAAc,GACd,gBAAgB,GAChB,4BAA4B,GAC5B,8BAA8B,CAAC"}
1
+ {"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../../../src/core/hooks/adapter/parse.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAEhD,MAAM,WAAW,aAAa;IAC5B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;6EACyE;IACzE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qFAAqF;IACrF,WAAW,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,SAAS,CAAC;IAC5C,uFAAuF;IACvF,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC9B;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,aAAa,GAAG,IAAI,CA6DhF;AAkDD;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,SAAS,EAAE,OAAO,GACjB,MAAM,GAAG,SAAS,CASpB;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAO7E;AAmBD;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,MAAM,GAChB;IAAE,UAAU,EAAE,mBAAmB,CAAC;IAAC,UAAU,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CAgCjE;AAED,MAAM,MAAM,mBAAmB,GAC3B,iBAAiB,GACjB,eAAe,GACf,cAAc,GACd,gBAAgB,GAChB,eAAe,GACf,iBAAiB,GACjB,gBAAgB,GAChB,cAAc,GACd,gBAAgB,GAChB,4BAA4B,GAC5B,8BAA8B,CAAC"}
@@ -57,6 +57,7 @@ export function parsePayload(raw, adapter) {
57
57
  cwd: pickStr(json, "cwd"),
58
58
  pid: pickNum(json, "pid"),
59
59
  model: pickStr(json, "model"),
60
+ effort: pickEffortLevel(json),
60
61
  source: pickStr(json, "source"),
61
62
  prompt: pickStr(json, "prompt"),
62
63
  agent_message: pickStr(json, "agent_message"),
@@ -72,6 +73,19 @@ export function parsePayload(raw, adapter) {
72
73
  raw: normalizedRaw,
73
74
  };
74
75
  }
76
+ /** CC sends `effort` as an object ({"level":"high"}); tolerate a bare string
77
+ * in case an adapter flattens it. */
78
+ function pickEffortLevel(json) {
79
+ const effort = json.effort;
80
+ if (typeof effort === "string" && effort.length > 0)
81
+ return effort;
82
+ if (typeof effort === "object" && effort !== null && !Array.isArray(effort)) {
83
+ const level = effort.level;
84
+ if (typeof level === "string" && level.length > 0)
85
+ return level;
86
+ }
87
+ return undefined;
88
+ }
75
89
  /**
76
90
  * Cursor prefixes cloud/private-worker conversations with `bc-`. Current
77
91
  * sessionStart payloads also expose `is_background_agent`; either native
@@ -0,0 +1,119 @@
1
+ import type { Adapter } from "../../adapter.js";
2
+ export type RuntimeContextTelemetry = {
3
+ state: "observed";
4
+ used_tokens: number;
5
+ limit_tokens: number;
6
+ measured_at: string;
7
+ method: "codex_transcript_token_count";
8
+ source_event: string;
9
+ source_witness: string;
10
+ runtime_version?: string;
11
+ bytes_read: number;
12
+ io_duration_ms: number;
13
+ } | {
14
+ state: "partial";
15
+ reason: RuntimeContextMissingReason;
16
+ used_tokens?: number;
17
+ measured_at?: string;
18
+ bytes_read: number;
19
+ io_duration_ms: number;
20
+ } | {
21
+ state: "unsupported";
22
+ reason: RuntimeContextUnsupportedReason;
23
+ bytes_read: 0;
24
+ io_duration_ms: number;
25
+ };
26
+ export type RuntimeContextMissingReason = "codex_transcript_ambiguous" | "codex_transcript_session_mismatch" | "codex_transcript_unreadable" | "codex_transcript_turn_not_found" | "codex_transcript_turn_not_terminal" | "codex_transcript_token_count_missing" | "codex_transcript_sample_stale" | "context_used_tokens_not_reported" | "context_limit_tokens_not_reported" | "context_limit_tokens_invalid" | "claude_context_limit_tokens_not_reported" | "claude_transcript_session_mismatch" | "claude_transcript_turn_not_found" | "claude_transcript_unreadable";
27
+ export type RuntimeContextUnsupportedReason = "runtime_context_telemetry_unavailable" | "runtime_session_id_not_reported" | "runtime_turn_id_not_reported" | "runtime_adapter_not_supported";
28
+ export interface RuntimeContextRequest {
29
+ adapter: Adapter;
30
+ session_id?: string;
31
+ turn_id?: string;
32
+ transcript_path?: string;
33
+ /** Status callers may request the newest session sample without claiming turn attribution. */
34
+ mode: "turn" | "status";
35
+ }
36
+ export interface RuntimeTelemetryOptions {
37
+ codexRoots?: string[];
38
+ maxTailBytes?: number;
39
+ maxSampleAgeMs?: number;
40
+ }
41
+ /**
42
+ * Read privacy-safe context telemetry from a local runtime transcript.
43
+ *
44
+ * The returned union contains only numeric measurements, timestamps, bounded
45
+ * I/O counters, and a privacy-safe witness. Transcript bodies and paths never
46
+ * cross this interface.
47
+ */
48
+ export declare function readRuntimeContextTelemetry(request: RuntimeContextRequest, options?: RuntimeTelemetryOptions): RuntimeContextTelemetry;
49
+ /**
50
+ * Locate a Codex rollout transcript for a session when the hook payload
51
+ * carries no transcript_path. Codex omits the path on its hook events, which
52
+ * leaves transcript-backed evidence unavailable unless Harnery resolves the
53
+ * rollout itself. Discovery reuses the telemetry scanner's roots (native
54
+ * ~/.codex plus WSL-mounted Windows homes) and its process cache, and returns
55
+ * undefined on zero or ambiguous matches.
56
+ *
57
+ * Callers on repeated hook paths must retain the verified result in their
58
+ * owner-only session state. The process cache bounds repeated reads inside one
59
+ * process, but hook processes are intentionally short-lived.
60
+ */
61
+ export declare function discoverCodexSessionTranscript(sessionId: string | undefined, transcriptPath?: string, options?: RuntimeTelemetryOptions): string | undefined;
62
+ /** Status compatibility wrapper: exact pairs render; partial values do not. */
63
+ export declare function readRuntimeContextUsage(adapter: Adapter, sessionId: string, options?: RuntimeTelemetryOptions): {
64
+ used: number;
65
+ window: number;
66
+ } | null;
67
+ export declare function clearRuntimeTelemetryCachesForTest(): void;
68
+ export type RuntimeTuningMissingReason = "codex_transcript_ambiguous" | "codex_transcript_session_mismatch" | "codex_transcript_unreadable" | "codex_transcript_turn_context_missing" | "claude_transcript_unreadable" | "claude_transcript_assistant_row_missing";
69
+ /**
70
+ * Privacy-safe tuning identity read from a local runtime transcript.
71
+ *
72
+ * `observed` means the newest identity-bearing row was read: a Codex
73
+ * `turn_context` row or a CC assistant row with a real model id. An observed
74
+ * result with NO `effort` is itself evidence — CC omits the field exactly when
75
+ * the model has no effort dial — so callers must distinguish it from
76
+ * `partial`/`unsupported`, where nothing was established.
77
+ */
78
+ export type RuntimeTuningTelemetry = {
79
+ state: "observed";
80
+ model?: string;
81
+ effort?: string;
82
+ speed?: string;
83
+ measured_at?: string;
84
+ method: "codex_transcript_turn_context" | "claude_transcript_assistant_row";
85
+ source_event: string;
86
+ bytes_read: number;
87
+ io_duration_ms: number;
88
+ } | {
89
+ state: "partial";
90
+ reason: RuntimeTuningMissingReason;
91
+ bytes_read: number;
92
+ io_duration_ms: number;
93
+ } | {
94
+ state: "unsupported";
95
+ reason: RuntimeContextUnsupportedReason;
96
+ bytes_read: 0;
97
+ io_duration_ms: number;
98
+ };
99
+ export interface RuntimeTuningRequest {
100
+ adapter: Adapter;
101
+ session_id?: string;
102
+ transcript_path?: string;
103
+ }
104
+ /**
105
+ * Read the newest observed tuning (effort, and speed where reported) for a
106
+ * session from its local runtime transcript.
107
+ *
108
+ * Codex: the newest `turn_context` row carries the EFFECTIVE per-turn effort,
109
+ * including `-c model_reasoning_effort` overrides (the config default is
110
+ * deliberately not consulted — it is the default, not the effective value).
111
+ * CC: the newest assistant row carries effort at the row's top level and
112
+ * speed inside `message.usage`; model, effort, and speed are read from the
113
+ * SAME row so a mid-session model swap cannot blend two rows' values.
114
+ *
115
+ * Same bounded tail-read and privacy posture as `readRuntimeContextTelemetry`:
116
+ * only tokens, timestamps, and I/O counters cross this interface.
117
+ */
118
+ export declare function readRuntimeTuning(request: RuntimeTuningRequest, options?: RuntimeTelemetryOptions): RuntimeTuningTelemetry;
119
+ //# sourceMappingURL=runtime-telemetry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-telemetry.d.ts","sourceRoot":"","sources":["../../../../src/core/hooks/adapter/runtime-telemetry.ts"],"names":[],"mappings":"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"}