harnery 0.34.1 → 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.
- package/dist/commander.d.ts.map +1 -1
- package/dist/commander.js +2 -0
- package/dist/commands/agents.d.ts +15 -4
- package/dist/commands/agents.d.ts.map +1 -1
- package/dist/commands/agents.js +89 -175
- package/dist/commands/browse.d.ts.map +1 -1
- package/dist/commands/browse.js +26 -2
- package/dist/commands/decision.d.ts.map +1 -1
- package/dist/commands/decision.js +2 -2
- package/dist/commands/events.d.ts.map +1 -1
- package/dist/commands/events.js +18 -1
- package/dist/commands/presence.d.ts.map +1 -1
- package/dist/commands/presence.js +2 -2
- package/dist/commands/semantic.d.ts +4 -0
- package/dist/commands/semantic.d.ts.map +1 -0
- package/dist/commands/semantic.js +147 -0
- package/dist/commands/web.d.ts.map +1 -1
- package/dist/commands/web.js +17 -0
- package/dist/core/agents/canonical-emit.d.ts +3 -0
- package/dist/core/agents/canonical-emit.d.ts.map +1 -1
- package/dist/core/agents/canonical-emit.js +12 -0
- package/dist/core/agents/claim-path.d.ts +11 -0
- package/dist/core/agents/claim-path.d.ts.map +1 -0
- package/dist/core/agents/claim-path.js +22 -0
- package/dist/core/agents/coord-client.d.ts +29 -3
- package/dist/core/agents/coord-client.d.ts.map +1 -1
- package/dist/core/agents/coord-client.js +88 -9
- package/dist/core/agents/live-authority-v3.d.ts.map +1 -1
- package/dist/core/agents/live-authority-v3.js +1 -3
- package/dist/core/agents/live-lifecycle-v3.js +3 -3
- package/dist/core/agents/live-observation-v3.d.ts.map +1 -1
- package/dist/core/agents/live-observation-v3.js +2 -2
- package/dist/core/agents/render/prompt-context.js +12 -10
- package/dist/core/agents/rules/stop-hook.d.ts.map +1 -1
- package/dist/core/agents/rules/stop-hook.js +23 -11
- package/dist/core/agents/session-name-display.d.ts +1 -0
- package/dist/core/agents/session-name-display.d.ts.map +1 -1
- package/dist/core/agents/session-name-display.js +8 -1
- package/dist/core/agents/state/heartbeat-reader.d.ts +46 -0
- package/dist/core/agents/state/heartbeat-reader.d.ts.map +1 -0
- package/dist/core/agents/state/heartbeat-reader.js +25 -0
- package/dist/core/agents/state/heartbeat-writer.d.ts +3 -48
- package/dist/core/agents/state/heartbeat-writer.d.ts.map +1 -1
- package/dist/core/agents/state/heartbeat-writer.js +16 -34
- package/dist/core/agents/state/live-coordination-view.d.ts +1 -1
- package/dist/core/agents/state/live-coordination-view.d.ts.map +1 -1
- package/dist/core/agents/state/live-coordination-view.js +25 -1
- package/dist/core/agents/state/names.d.ts +9 -1
- package/dist/core/agents/state/names.d.ts.map +1 -1
- package/dist/core/agents/state/names.js +190 -182
- package/dist/core/agents/state/stale-sweep.d.ts.map +1 -1
- package/dist/core/agents/state/stale-sweep.js +23 -5
- package/dist/core/artifacts/constants.d.ts +5 -0
- package/dist/core/artifacts/constants.d.ts.map +1 -0
- package/dist/core/artifacts/constants.js +4 -0
- package/dist/core/artifacts/index.d.ts +3 -3
- package/dist/core/artifacts/index.d.ts.map +1 -1
- package/dist/core/artifacts/index.js +50 -7
- package/dist/core/events/v3/base-contract.d.ts +795 -0
- package/dist/core/events/v3/base-contract.d.ts.map +1 -1
- package/dist/core/events/v3/base-contract.js +33 -0
- package/dist/core/events/v3/capabilities.d.ts +11 -0
- package/dist/core/events/v3/capabilities.d.ts.map +1 -1
- package/dist/core/events/v3/capabilities.js +23 -0
- package/dist/core/events/v3/generated.d.ts +1 -1
- package/dist/core/events/v3/generated.js +1 -1
- package/dist/core/events/v3/index.d.ts +4 -3
- package/dist/core/events/v3/index.d.ts.map +1 -1
- package/dist/core/events/v3/index.js +4 -3
- package/dist/core/events/v3/latency.d.ts +31 -1
- package/dist/core/events/v3/latency.d.ts.map +1 -1
- package/dist/core/events/v3/latency.js +127 -3
- package/dist/core/events/v3/live-routing.d.ts +30 -0
- package/dist/core/events/v3/live-routing.d.ts.map +1 -1
- package/dist/core/events/v3/live-routing.js +109 -1
- package/dist/core/events/v3/producers/command-recorder.d.ts.map +1 -1
- package/dist/core/events/v3/producers/command-recorder.js +10 -1
- package/dist/core/events/v3/producers/coordination-recorder.d.ts.map +1 -1
- package/dist/core/events/v3/producers/coordination-recorder.js +14 -3
- package/dist/core/events/v3/producers/hook-base.d.ts +17 -1
- package/dist/core/events/v3/producers/hook-base.d.ts.map +1 -1
- package/dist/core/events/v3/producers/hook-base.js +82 -1
- package/dist/core/events/v3/producers/intake.d.ts +6 -0
- package/dist/core/events/v3/producers/intake.d.ts.map +1 -1
- package/dist/core/events/v3/producers/intake.js +11 -0
- package/dist/core/events/v3/producers/recorder.d.ts +62 -0
- package/dist/core/events/v3/producers/recorder.d.ts.map +1 -1
- package/dist/core/events/v3/producers/recorder.js +654 -18
- package/dist/core/events/v3/runtime-telemetry-capabilities.d.ts +51 -0
- package/dist/core/events/v3/runtime-telemetry-capabilities.d.ts.map +1 -0
- package/dist/core/events/v3/runtime-telemetry-capabilities.js +54 -0
- package/dist/core/events/v3/turn-telemetry.d.ts +9 -0
- package/dist/core/events/v3/turn-telemetry.d.ts.map +1 -1
- package/dist/core/hooks/adapter/parse.d.ts +3 -0
- package/dist/core/hooks/adapter/parse.d.ts.map +1 -1
- package/dist/core/hooks/adapter/parse.js +14 -0
- package/dist/core/hooks/adapter/runtime-telemetry.d.ts +119 -0
- package/dist/core/hooks/adapter/runtime-telemetry.d.ts.map +1 -0
- package/dist/core/hooks/adapter/runtime-telemetry.js +568 -0
- package/dist/core/hooks/cli.js +111 -36
- package/dist/core/hooks/remediation-cap.d.ts +34 -0
- package/dist/core/hooks/remediation-cap.d.ts.map +1 -0
- package/dist/core/hooks/remediation-cap.js +71 -0
- package/dist/core/hooks/resolve/transcript.d.ts +25 -9
- package/dist/core/hooks/resolve/transcript.d.ts.map +1 -1
- package/dist/core/hooks/resolve/transcript.js +22 -10
- package/dist/core/semantic/adapters.d.ts +34 -0
- package/dist/core/semantic/adapters.d.ts.map +1 -0
- package/dist/core/semantic/adapters.js +222 -0
- package/dist/core/semantic/contract.d.ts +588 -0
- package/dist/core/semantic/contract.d.ts.map +1 -0
- package/dist/core/semantic/contract.js +230 -0
- package/dist/core/semantic/evidence.d.ts +11 -0
- package/dist/core/semantic/evidence.d.ts.map +1 -0
- package/dist/core/semantic/evidence.js +262 -0
- package/dist/core/semantic/index.d.ts +10 -0
- package/dist/core/semantic/index.d.ts.map +1 -0
- package/dist/core/semantic/index.js +9 -0
- package/dist/core/semantic/once.d.ts +33 -0
- package/dist/core/semantic/once.d.ts.map +1 -0
- package/dist/core/semantic/once.js +293 -0
- package/dist/core/semantic/prompt.d.ts +12 -0
- package/dist/core/semantic/prompt.d.ts.map +1 -0
- package/dist/core/semantic/prompt.js +70 -0
- package/dist/core/semantic/scheduler.d.ts +16 -0
- package/dist/core/semantic/scheduler.d.ts.map +1 -0
- package/dist/core/semantic/scheduler.js +67 -0
- package/dist/core/semantic/service-status.d.ts +31 -0
- package/dist/core/semantic/service-status.d.ts.map +1 -0
- package/dist/core/semantic/service-status.js +84 -0
- package/dist/core/semantic/service.d.ts +51 -0
- package/dist/core/semantic/service.d.ts.map +1 -0
- package/dist/core/semantic/service.js +470 -0
- package/dist/core/semantic/storage.d.ts +71 -0
- package/dist/core/semantic/storage.d.ts.map +1 -0
- package/dist/core/semantic/storage.js +179 -0
- package/dist/core/semantic/validate.d.ts +16 -0
- package/dist/core/semantic/validate.d.ts.map +1 -0
- package/dist/core/semantic/validate.js +174 -0
- package/dist/lib/browser/client.d.ts +11 -0
- package/dist/lib/browser/client.d.ts.map +1 -1
- package/dist/lib/browser/client.js +13 -0
- package/dist/lib/browser/index.d.ts +1 -0
- package/dist/lib/browser/index.d.ts.map +1 -1
- package/dist/lib/browser/standalone-html.d.ts +25 -0
- package/dist/lib/browser/standalone-html.d.ts.map +1 -0
- package/dist/lib/browser/standalone-html.js +284 -0
- package/dist/lib/instructions/apply.d.ts.map +1 -1
- package/dist/lib/instructions/apply.js +1 -0
- package/dist/lib/instructions/templates.d.ts +2 -0
- package/dist/lib/instructions/templates.d.ts.map +1 -1
- package/dist/lib/instructions/templates.js +144 -4
- package/package.json +6 -1
- package/schemas/event-v3.schema.json +2758 -478
- package/src/commander.ts +2 -0
- package/src/commands/agents.ts +102 -167
- package/src/commands/browse.ts +25 -2
- package/src/commands/decision.ts +8 -2
- package/src/commands/events.ts +21 -1
- package/src/commands/presence.ts +7 -2
- package/src/commands/semantic.ts +179 -0
- package/src/commands/web.ts +15 -0
- package/src/core/agents/canonical-emit.ts +15 -0
- package/src/core/agents/claim-path.ts +23 -0
- package/src/core/agents/coord-client.ts +92 -8
- package/src/core/agents/live-authority-v3.ts +1 -4
- package/src/core/agents/live-lifecycle-v3.ts +8 -3
- package/src/core/agents/live-observation-v3.ts +7 -2
- package/src/core/agents/render/prompt-context.ts +13 -10
- package/src/core/agents/rules/stop-hook.ts +24 -11
- package/src/core/agents/session-name-display.ts +9 -1
- package/src/core/agents/state/heartbeat-reader.ts +69 -0
- package/src/core/agents/state/heartbeat-writer.ts +20 -84
- package/src/core/agents/state/live-coordination-view.ts +26 -1
- package/src/core/agents/state/names.ts +190 -182
- package/src/core/agents/state/stale-sweep.ts +25 -5
- package/src/core/artifacts/constants.ts +4 -0
- package/src/core/artifacts/index.ts +49 -7
- package/src/core/events/v3/base-contract.ts +39 -0
- package/src/core/events/v3/capabilities.ts +34 -0
- package/src/core/events/v3/generated.ts +1 -1
- package/src/core/events/v3/index.ts +21 -0
- package/src/core/events/v3/latency.ts +213 -2
- package/src/core/events/v3/live-routing.ts +120 -1
- package/src/core/events/v3/producers/command-recorder.ts +10 -1
- package/src/core/events/v3/producers/coordination-recorder.ts +17 -5
- package/src/core/events/v3/producers/hook-base.ts +115 -1
- package/src/core/events/v3/producers/intake.ts +18 -0
- package/src/core/events/v3/producers/recorder.ts +856 -21
- package/src/core/events/v3/runtime-telemetry-capabilities.ts +137 -0
- package/src/core/events/v3/turn-telemetry.ts +10 -0
- package/src/core/hooks/adapter/parse.ts +16 -0
- package/src/core/hooks/adapter/runtime-telemetry.ts +805 -0
- package/src/core/hooks/cli.ts +123 -39
- package/src/core/hooks/remediation-cap.ts +77 -0
- package/src/core/hooks/resolve/transcript.ts +37 -11
- package/src/core/semantic/adapters.ts +293 -0
- package/src/core/semantic/contract.ts +298 -0
- package/src/core/semantic/evidence.ts +336 -0
- package/src/core/semantic/index.ts +127 -0
- package/src/core/semantic/once.ts +410 -0
- package/src/core/semantic/prompt.ts +84 -0
- package/src/core/semantic/scheduler.ts +107 -0
- package/src/core/semantic/service-status.ts +118 -0
- package/src/core/semantic/service.ts +580 -0
- package/src/core/semantic/storage.ts +286 -0
- package/src/core/semantic/validate.ts +212 -0
- package/src/lib/browser/client.ts +21 -0
- package/src/lib/browser/index.ts +4 -0
- package/src/lib/browser/standalone-html.ts +312 -0
- package/src/lib/instructions/apply.ts +1 -0
- package/src/lib/instructions/templates.ts +149 -4
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
import type { Adapter } from "../../adapter.ts";
|
|
2
|
+
import {
|
|
3
|
+
adapterSignalSupportV3,
|
|
4
|
+
type CapabilitySupportV3,
|
|
5
|
+
type CursorExecutionModeV3,
|
|
6
|
+
} from "./capabilities.ts";
|
|
7
|
+
|
|
8
|
+
export type RuntimeTelemetryChannelV3 =
|
|
9
|
+
| "context_usage"
|
|
10
|
+
| "wait_spans"
|
|
11
|
+
| "wait_completeness"
|
|
12
|
+
| "response_latency"
|
|
13
|
+
| "inference_timing";
|
|
14
|
+
|
|
15
|
+
export type RuntimeTelemetryCompletenessV3 = "exact" | "lower_bound" | "unknown";
|
|
16
|
+
|
|
17
|
+
export interface RuntimeTelemetryCapabilityValueV3 {
|
|
18
|
+
support: Exclude<CapabilitySupportV3, "unsupported">;
|
|
19
|
+
source: string;
|
|
20
|
+
completeness: RuntimeTelemetryCompletenessV3;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export type RuntimeTelemetryCapabilityObservationV3 =
|
|
24
|
+
| {
|
|
25
|
+
state: "observed";
|
|
26
|
+
value: RuntimeTelemetryCapabilityValueV3;
|
|
27
|
+
attestation: "native" | "derived";
|
|
28
|
+
confidence: "exact" | "high";
|
|
29
|
+
}
|
|
30
|
+
| { state: "expected_but_missing"; capability: string; reason: string }
|
|
31
|
+
| { state: "unsupported"; capability: string };
|
|
32
|
+
|
|
33
|
+
export type RuntimeContextCapabilityEvidenceV3 =
|
|
34
|
+
| {
|
|
35
|
+
state: "observed";
|
|
36
|
+
source: string;
|
|
37
|
+
attestation: "native" | "derived";
|
|
38
|
+
confidence: "exact" | "high";
|
|
39
|
+
}
|
|
40
|
+
| { state: "partial"; reason: string }
|
|
41
|
+
| { state: "unsupported" };
|
|
42
|
+
|
|
43
|
+
export interface RuntimeTelemetryCapabilityEvidenceV3 {
|
|
44
|
+
adapter: Adapter;
|
|
45
|
+
cursor_mode?: CursorExecutionModeV3;
|
|
46
|
+
context: RuntimeContextCapabilityEvidenceV3;
|
|
47
|
+
canonical_turn_boundaries: boolean;
|
|
48
|
+
independent_wait_completeness?: boolean;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
export type RuntimeTelemetryCapabilitiesV3 = Record<
|
|
52
|
+
RuntimeTelemetryChannelV3,
|
|
53
|
+
RuntimeTelemetryCapabilityObservationV3
|
|
54
|
+
>;
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* Resolve the telemetry support that one runtime session can actually prove.
|
|
58
|
+
*
|
|
59
|
+
* This is deliberately separate from AdapterCapabilityProfileV3. The static
|
|
60
|
+
* profile gates the event contract; this projection describes effective
|
|
61
|
+
* session evidence without moving a genesis-approved digest when a local
|
|
62
|
+
* source is missing, late, or unreadable.
|
|
63
|
+
*/
|
|
64
|
+
export function effectiveRuntimeTelemetryCapabilitiesV3(
|
|
65
|
+
evidence: RuntimeTelemetryCapabilityEvidenceV3,
|
|
66
|
+
): RuntimeTelemetryCapabilitiesV3 {
|
|
67
|
+
return {
|
|
68
|
+
context_usage: contextCapability(evidence.context),
|
|
69
|
+
wait_spans: waitSpanCapability(evidence.adapter, evidence.cursor_mode),
|
|
70
|
+
wait_completeness: evidence.independent_wait_completeness
|
|
71
|
+
? observed("native", "runtime.wait_aggregate", "exact", "native", "exact")
|
|
72
|
+
: unsupported("wait_turn_completeness"),
|
|
73
|
+
response_latency: evidence.canonical_turn_boundaries
|
|
74
|
+
? observed("derived", "canonical.event_clocks", "exact", "derived", "exact")
|
|
75
|
+
: missing("response_latency", "turn_boundaries_not_delivered"),
|
|
76
|
+
inference_timing: unsupported("provider_inference_timing"),
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
function contextCapability(
|
|
81
|
+
evidence: RuntimeContextCapabilityEvidenceV3,
|
|
82
|
+
): RuntimeTelemetryCapabilityObservationV3 {
|
|
83
|
+
if (evidence.state === "observed") {
|
|
84
|
+
return observed(
|
|
85
|
+
evidence.attestation === "native" ? "native" : "derived",
|
|
86
|
+
evidence.source,
|
|
87
|
+
"exact",
|
|
88
|
+
evidence.attestation,
|
|
89
|
+
evidence.confidence,
|
|
90
|
+
);
|
|
91
|
+
}
|
|
92
|
+
if (evidence.state === "partial") {
|
|
93
|
+
return missing("context_usage", evidence.reason);
|
|
94
|
+
}
|
|
95
|
+
return unsupported("context_usage");
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
function waitSpanCapability(
|
|
99
|
+
adapter: Adapter,
|
|
100
|
+
cursorMode: CursorExecutionModeV3 | undefined,
|
|
101
|
+
): RuntimeTelemetryCapabilityObservationV3 {
|
|
102
|
+
if (adapter === "cursor" && cursorMode === "cloud") {
|
|
103
|
+
return unsupported("wait_span_delivery");
|
|
104
|
+
}
|
|
105
|
+
const support = adapterSignalSupportV3(adapter, "permission");
|
|
106
|
+
if (support === "unsupported") return unsupported("wait_span_delivery");
|
|
107
|
+
return observed(
|
|
108
|
+
support,
|
|
109
|
+
adapter === "cursor" ? "cursor.permission_hooks" : `${adapter}.permission_hooks`,
|
|
110
|
+
"lower_bound",
|
|
111
|
+
support === "native" ? "native" : "derived",
|
|
112
|
+
support === "native" ? "exact" : "high",
|
|
113
|
+
);
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
function observed(
|
|
117
|
+
support: Exclude<CapabilitySupportV3, "unsupported">,
|
|
118
|
+
source: string,
|
|
119
|
+
completeness: RuntimeTelemetryCompletenessV3,
|
|
120
|
+
attestation: "native" | "derived",
|
|
121
|
+
confidence: "exact" | "high",
|
|
122
|
+
): RuntimeTelemetryCapabilityObservationV3 {
|
|
123
|
+
return {
|
|
124
|
+
state: "observed",
|
|
125
|
+
value: { support, source, completeness },
|
|
126
|
+
attestation,
|
|
127
|
+
confidence,
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
function missing(capability: string, reason: string): RuntimeTelemetryCapabilityObservationV3 {
|
|
132
|
+
return { state: "expected_but_missing", capability, reason };
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
function unsupported(capability: string): RuntimeTelemetryCapabilityObservationV3 {
|
|
136
|
+
return { state: "unsupported", capability };
|
|
137
|
+
}
|
|
@@ -23,6 +23,16 @@ export interface TurnTelemetryV3 {
|
|
|
23
23
|
usage: TelemetryObservationV3<TurnUsageV3>;
|
|
24
24
|
inference: TelemetryObservationV3<TurnInferenceV3>;
|
|
25
25
|
context: TelemetryObservationV3<ContextMeasurementV3>;
|
|
26
|
+
/** Private producer metadata; the context event persists only its safe fields. */
|
|
27
|
+
context_provenance?: ContextTelemetryProvenanceV3;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export interface ContextTelemetryProvenanceV3 {
|
|
31
|
+
source_event: string;
|
|
32
|
+
source_witness?: string;
|
|
33
|
+
runtime_version?: string;
|
|
34
|
+
attestation: "native" | "derived";
|
|
35
|
+
confidence: "exact" | "high";
|
|
26
36
|
}
|
|
27
37
|
|
|
28
38
|
export type TurnTelemetryCapabilitySupportV3 = Partial<
|
|
@@ -25,6 +25,9 @@ export interface ParsedPayload {
|
|
|
25
25
|
cwd?: string;
|
|
26
26
|
pid?: number;
|
|
27
27
|
model?: string;
|
|
28
|
+
/** CC stamps the effective effort level ({level}) on tool hooks and Stop;
|
|
29
|
+
* absent on SessionStart/UserPromptSubmit and on models with no dial. */
|
|
30
|
+
effort?: string;
|
|
28
31
|
source?: string; // SessionStart: "startup" | "resume" | …
|
|
29
32
|
prompt?: string; // UserPromptSubmit / beforeSubmitPrompt
|
|
30
33
|
agent_message?: string; // Cursor PreToolUse: user-visible assistant text before the tool
|
|
@@ -92,6 +95,7 @@ export function parsePayload(raw: string, adapter: Adapter): ParsedPayload | nul
|
|
|
92
95
|
cwd: pickStr(json, "cwd"),
|
|
93
96
|
pid: pickNum(json, "pid"),
|
|
94
97
|
model: pickStr(json, "model"),
|
|
98
|
+
effort: pickEffortLevel(json),
|
|
95
99
|
source: pickStr(json, "source"),
|
|
96
100
|
prompt: pickStr(json, "prompt"),
|
|
97
101
|
agent_message: pickStr(json, "agent_message"),
|
|
@@ -108,6 +112,18 @@ export function parsePayload(raw: string, adapter: Adapter): ParsedPayload | nul
|
|
|
108
112
|
};
|
|
109
113
|
}
|
|
110
114
|
|
|
115
|
+
/** CC sends `effort` as an object ({"level":"high"}); tolerate a bare string
|
|
116
|
+
* in case an adapter flattens it. */
|
|
117
|
+
function pickEffortLevel(json: Record<string, unknown>): string | undefined {
|
|
118
|
+
const effort = json.effort;
|
|
119
|
+
if (typeof effort === "string" && effort.length > 0) return effort;
|
|
120
|
+
if (typeof effort === "object" && effort !== null && !Array.isArray(effort)) {
|
|
121
|
+
const level = (effort as Record<string, unknown>).level;
|
|
122
|
+
if (typeof level === "string" && level.length > 0) return level;
|
|
123
|
+
}
|
|
124
|
+
return undefined;
|
|
125
|
+
}
|
|
126
|
+
|
|
111
127
|
/**
|
|
112
128
|
* Cursor prefixes cloud/private-worker conversations with `bc-`. Current
|
|
113
129
|
* sessionStart payloads also expose `is_background_agent`; either native
|