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 @@
1
+ {"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../../../src/core/semantic/contract.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,230 @@
1
+ import { Type } from "@sinclair/typebox";
2
+ export const SEMANTIC_EVIDENCE_SCHEMA_VERSION = 1;
3
+ export const SEMANTIC_READ_MODEL_SCHEMA_VERSION = 2;
4
+ export const SEMANTIC_EVIDENCE_CONTRACT_VERSION = 1;
5
+ export const SEMANTIC_PROMPT_CONTRACT_VERSION = 3;
6
+ const StrictObject = (properties) => Type.Object(properties, { additionalProperties: false });
7
+ const Timestamp = Type.String({
8
+ pattern: "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$",
9
+ });
10
+ const Sha256 = Type.String({ pattern: "^sha256:[a-f0-9]{64}$" });
11
+ const SafeToken = Type.String({ pattern: "^[a-zA-Z0-9][a-zA-Z0-9._:+-]{0,127}$" });
12
+ const uuidV7Pattern = "[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}";
13
+ const EventId = Type.String({ pattern: `^evt_${uuidV7Pattern}$` });
14
+ const GenerationId = Type.String({ pattern: `^gen_${uuidV7Pattern}$` });
15
+ const InstanceId = Type.String({ pattern: "^inst_[a-zA-Z0-9._-]{1,128}$" });
16
+ export const SEMANTIC_HARNESSES = ["claude-code", "codex", "cursor"];
17
+ export const SEMANTIC_CONFIGURED_MODELS = ["haiku-4.5", "gpt-5.6-luna", "composer-2.5"];
18
+ export const SEMANTIC_PHASES = [
19
+ "orienting",
20
+ "researching",
21
+ "planning",
22
+ "implementing",
23
+ "verifying",
24
+ "coordinating",
25
+ "waiting",
26
+ "recovering",
27
+ "wrapping-up",
28
+ "unknown",
29
+ ];
30
+ /**
31
+ * Model-synthesized presentation cues. Authoritative operational expressions
32
+ * such as blocked, waiting, alert, recovering, compacting, observing, strained,
33
+ * and conducting remain deterministic Codec projections and are excluded.
34
+ */
35
+ export const SEMANTIC_EXPRESSION_CUES = [
36
+ "focused",
37
+ "curious",
38
+ "deliberating",
39
+ "investigating",
40
+ "building",
41
+ "coordinating",
42
+ "planning",
43
+ "verifying",
44
+ "weighing",
45
+ "wrapping-up",
46
+ ];
47
+ export const SEMANTIC_TAGS = [
48
+ "research",
49
+ "planning",
50
+ "implementation",
51
+ "verification",
52
+ "coordination",
53
+ "waiting",
54
+ "recovery",
55
+ "delivery",
56
+ "documentation",
57
+ "infrastructure",
58
+ ];
59
+ export const SEMANTIC_EVIDENCE_KINDS = [
60
+ "task",
61
+ "lifecycle",
62
+ "intent",
63
+ "operation",
64
+ "wait",
65
+ "progress",
66
+ "artifact",
67
+ "action",
68
+ "terminal",
69
+ "error",
70
+ "recovery",
71
+ "claim-conflict",
72
+ ];
73
+ const HarnessSchema = Type.Union(SEMANTIC_HARNESSES.map((value) => Type.Literal(value)));
74
+ const ConfiguredModelSchema = Type.Union(SEMANTIC_CONFIGURED_MODELS.map((value) => Type.Literal(value)));
75
+ const PhaseSchema = Type.Union(SEMANTIC_PHASES.map((value) => Type.Literal(value)));
76
+ const ExpressionCueSchema = Type.Union(SEMANTIC_EXPRESSION_CUES.map((value) => Type.Literal(value)));
77
+ const TagSchema = Type.Union(SEMANTIC_TAGS.map((value) => Type.Literal(value)));
78
+ const EvidenceKindSchema = Type.Union(SEMANTIC_EVIDENCE_KINDS.map((value) => Type.Literal(value)));
79
+ const ConfidenceSchema = Type.Union([
80
+ Type.Literal("high"),
81
+ Type.Literal("medium"),
82
+ Type.Literal("low"),
83
+ ]);
84
+ function SemanticFieldSchema(value, options = {}) {
85
+ const kind = options.kind ?? "synthesis";
86
+ return StrictObject({
87
+ value,
88
+ basis: Type.Literal(kind === "prediction" ? "prediction" : "model-synthesis"),
89
+ confidence: kind === "prediction"
90
+ ? Type.Literal("low")
91
+ : kind === "expression"
92
+ ? Type.Union([Type.Literal("medium"), Type.Literal("low")])
93
+ : ConfidenceSchema,
94
+ evidence_event_ids: Type.Array(EventId, {
95
+ minItems: options.allowEmptyCitations ? 0 : 1,
96
+ maxItems: 16,
97
+ uniqueItems: true,
98
+ }),
99
+ });
100
+ }
101
+ export const SemanticEvidenceObservationV1Schema = StrictObject({
102
+ kind: EvidenceKindSchema,
103
+ event_id: EventId,
104
+ observed_at: Timestamp,
105
+ label: Type.Optional(Type.String({ minLength: 1, maxLength: 120 })),
106
+ outcome: Type.Optional(SafeToken),
107
+ error_class: Type.Optional(SafeToken),
108
+ });
109
+ export const SemanticEvidenceV1Schema = StrictObject({
110
+ schema_version: Type.Literal(SEMANTIC_EVIDENCE_SCHEMA_VERSION),
111
+ evidence_contract_version: Type.Literal(SEMANTIC_EVIDENCE_CONTRACT_VERSION),
112
+ instance_id: InstanceId,
113
+ generation_id: GenerationId,
114
+ source_harness: HarnessSchema,
115
+ source: StrictObject({
116
+ ledger_genesis_id: Type.String({ pattern: "^gex_[a-zA-Z0-9._-]{1,128}$" }),
117
+ observed_through_event_id: EventId,
118
+ observed_through_ts: Timestamp,
119
+ }),
120
+ task: Type.Optional(StrictObject({ value: Type.String({ minLength: 1, maxLength: 200 }), event_id: EventId })),
121
+ lifecycle: Type.Optional(StrictObject({ state: SafeToken, event_id: EventId })),
122
+ intent: Type.Optional(StrictObject({ kind: SafeToken, event_id: EventId })),
123
+ operation: Type.Optional(StrictObject({
124
+ category: SafeToken,
125
+ label: Type.String({ minLength: 1, maxLength: 80 }),
126
+ event_id: EventId,
127
+ })),
128
+ waits: Type.Array(StrictObject({ kind: SafeToken, event_id: EventId, started_at: Timestamp }), {
129
+ maxItems: 8,
130
+ }),
131
+ recent: Type.Array(SemanticEvidenceObservationV1Schema, { maxItems: 8 }),
132
+ attention: Type.Optional(SemanticEvidenceObservationV1Schema),
133
+ relationships: Type.Optional(StrictObject({
134
+ parent_generation_id: Type.Optional(GenerationId),
135
+ dependency_ids: Type.Array(SafeToken, { maxItems: 16, uniqueItems: true }),
136
+ })),
137
+ evidence_event_ids: Type.Array(EventId, { minItems: 1, maxItems: 64, uniqueItems: true }),
138
+ evidence_digest: Sha256,
139
+ });
140
+ export const SemanticMeaningV2Schema = StrictObject({
141
+ headline: SemanticFieldSchema(Type.String({ minLength: 1, maxLength: 60 })),
142
+ summary: SemanticFieldSchema(Type.String({ minLength: 1, maxLength: 240 })),
143
+ phase: SemanticFieldSchema(PhaseSchema),
144
+ expression_cue: Type.Optional(SemanticFieldSchema(ExpressionCueSchema, { kind: "expression" })),
145
+ purpose: Type.Optional(SemanticFieldSchema(Type.String({ minLength: 1, maxLength: 180 }))),
146
+ recent_result: Type.Optional(SemanticFieldSchema(Type.String({ minLength: 1, maxLength: 180 }))),
147
+ attention: Type.Optional(SemanticFieldSchema(Type.String({ minLength: 1, maxLength: 180 }))),
148
+ next_step: Type.Optional(SemanticFieldSchema(Type.String({ minLength: 1, maxLength: 180 }), {
149
+ kind: "prediction",
150
+ })),
151
+ tags: Type.Optional(SemanticFieldSchema(Type.Array(TagSchema, { maxItems: 8, uniqueItems: true }), {
152
+ allowEmptyCitations: true,
153
+ })),
154
+ });
155
+ export const SemanticModelReplyV2Schema = StrictObject({
156
+ schema_version: Type.Literal(SEMANTIC_READ_MODEL_SCHEMA_VERSION),
157
+ generation_id: GenerationId,
158
+ evidence_digest: Sha256,
159
+ meaning: SemanticMeaningV2Schema,
160
+ });
161
+ /** Native structured-output schema bound to one evidence request. */
162
+ export function semanticModelReplyV2SchemaFor(expected) {
163
+ return StrictObject({
164
+ schema_version: Type.Literal(SEMANTIC_READ_MODEL_SCHEMA_VERSION),
165
+ generation_id: Type.Literal(expected.generation_id),
166
+ evidence_digest: Type.Literal(expected.evidence_digest),
167
+ meaning: SemanticMeaningV2Schema,
168
+ });
169
+ }
170
+ const ReaderCommon = {
171
+ harness: HarnessSchema,
172
+ configured_model: ConfiguredModelSchema,
173
+ prompt_contract_version: Type.Literal(SEMANTIC_PROMPT_CONTRACT_VERSION),
174
+ };
175
+ const UnresolvedReaderSchema = StrictObject(ReaderCommon);
176
+ const ResolvedReaderSchema = StrictObject({
177
+ ...ReaderCommon,
178
+ resolved_model_id: Type.String({ minLength: 1, maxLength: 160 }),
179
+ model_attestation: Type.Union([Type.Literal("verified"), Type.Literal("requested-only")]),
180
+ });
181
+ const ReaderSchema = Type.Union([UnresolvedReaderSchema, ResolvedReaderSchema]);
182
+ const ReadModelBase = {
183
+ schema_version: Type.Literal(SEMANTIC_READ_MODEL_SCHEMA_VERSION),
184
+ instance_id: InstanceId,
185
+ generation_id: GenerationId,
186
+ source: StrictObject({
187
+ ledger_genesis_id: Type.String({ pattern: "^gex_[a-zA-Z0-9._-]{1,128}$" }),
188
+ evidence_digest: Sha256,
189
+ observed_through_event_id: EventId,
190
+ observed_through_ts: Timestamp,
191
+ }),
192
+ generated_at: Timestamp,
193
+ };
194
+ export const SemanticAcceptedReadModelV2Schema = StrictObject({
195
+ ...ReadModelBase,
196
+ reader_outcome: Type.Literal("accepted"),
197
+ reader: ResolvedReaderSchema,
198
+ meaning: SemanticMeaningV2Schema,
199
+ });
200
+ export const SemanticUnavailableReadModelV2Schema = StrictObject({
201
+ ...ReadModelBase,
202
+ reader_outcome: Type.Literal("unavailable"),
203
+ reader: ReaderSchema,
204
+ receipt: StrictObject({
205
+ reason_code: Type.Union([
206
+ Type.Literal("harness_unavailable"),
207
+ Type.Literal("authentication_unavailable"),
208
+ Type.Literal("model_unavailable"),
209
+ Type.Literal("model_mismatch"),
210
+ ]),
211
+ }),
212
+ });
213
+ export const SemanticInvalidReadModelV2Schema = StrictObject({
214
+ ...ReadModelBase,
215
+ reader_outcome: Type.Literal("invalid"),
216
+ reader: ResolvedReaderSchema,
217
+ receipt: StrictObject({ reason_code: Type.Literal("invalid_output") }),
218
+ });
219
+ export const SemanticDeferredReadModelV2Schema = StrictObject({
220
+ ...ReadModelBase,
221
+ reader_outcome: Type.Literal("deferred"),
222
+ reader: ReaderSchema,
223
+ receipt: StrictObject({ reason_code: Type.Literal("rate_cap"), eligible_after: Timestamp }),
224
+ });
225
+ export const SemanticAgentReadModelV2Schema = Type.Union([
226
+ SemanticAcceptedReadModelV2Schema,
227
+ SemanticUnavailableReadModelV2Schema,
228
+ SemanticInvalidReadModelV2Schema,
229
+ SemanticDeferredReadModelV2Schema,
230
+ ]);
@@ -0,0 +1,11 @@
1
+ import type { V3HeartbeatMaterialization } from "../agents/state/live-coordination-view.js";
2
+ import { type CoordinationViewV3 } from "../events/v3/coordination-view.js";
3
+ import { type ReadLedgerV3Result } from "../events/v3/reader.js";
4
+ import { type SemanticEvidenceV1 } from "./contract.js";
5
+ export declare const SEMANTIC_RECENTLY_ENDED_WINDOW_MS: number;
6
+ /** Read canonical V3 authority and project one privacy-safe envelope per active generation. */
7
+ export declare function buildSemanticEvidenceV1(coordRoot: string, nowMs?: number): SemanticEvidenceV1[];
8
+ /** Pure projection seam used by replay and contract tests. */
9
+ export declare function projectSemanticEvidenceV1(read: ReadLedgerV3Result, liveRows?: readonly V3HeartbeatMaterialization[], nowMs?: number): SemanticEvidenceV1[];
10
+ export declare function projectSemanticEvidenceFromViewV1(read: ReadLedgerV3Result, view: CoordinationViewV3, liveRows?: readonly V3HeartbeatMaterialization[], nowMs?: number): SemanticEvidenceV1[];
11
+ //# sourceMappingURL=evidence.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evidence.d.ts","sourceRoot":"","sources":["../../../src/core/semantic/evidence.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,2CAA2C,CAAC;AAG5F,OAAO,EAEL,KAAK,kBAAkB,EAExB,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EAAE,KAAK,kBAAkB,EAAgB,MAAM,wBAAwB,CAAC;AAE/E,OAAO,EAIL,KAAK,kBAAkB,EAExB,MAAM,eAAe,CAAC;AAIvB,eAAO,MAAM,iCAAiC,QAAc,CAAC;AAE7D,+FAA+F;AAC/F,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,MAAM,EACjB,KAAK,SAAa,GACjB,kBAAkB,EAAE,CAItB;AAED,8DAA8D;AAC9D,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,kBAAkB,EACxB,QAAQ,GAAE,SAAS,0BAA0B,EAAO,EACpD,KAAK,SAAa,GACjB,kBAAkB,EAAE,CAKtB;AAED,wBAAgB,iCAAiC,CAC/C,IAAI,EAAE,kBAAkB,EACxB,IAAI,EAAE,kBAAkB,EACxB,QAAQ,GAAE,SAAS,0BAA0B,EAAO,EACpD,KAAK,SAAa,GACjB,kBAAkB,EAAE,CA2BtB"}
@@ -0,0 +1,262 @@
1
+ import { readLiveCoordinationRows } from "../agents/state/live-coordination-view.js";
2
+ import { projectCoordinationViewV3, } from "../events/v3/coordination-view.js";
3
+ import { canonicalJsonV3, sha256V3 } from "../events/v3/index.js";
4
+ import { readLedgerV3 } from "../events/v3/reader.js";
5
+ import { projectPresenceCodecDigests } from "../presence/codec-digest.js";
6
+ import { SEMANTIC_EVIDENCE_CONTRACT_VERSION, SEMANTIC_EVIDENCE_SCHEMA_VERSION, } from "./contract.js";
7
+ import { isSemanticPrivacySafe, validateSemanticEvidencePrivacy } from "./validate.js";
8
+ const MAX_RECENT = 8;
9
+ export const SEMANTIC_RECENTLY_ENDED_WINDOW_MS = 30 * 60_000;
10
+ /** Read canonical V3 authority and project one privacy-safe envelope per active generation. */
11
+ export function buildSemanticEvidenceV1(coordRoot, nowMs = Date.now()) {
12
+ const read = readLedgerV3(coordRoot, { authority: "active" });
13
+ if (!read.complete || !read.genesis_id)
14
+ return [];
15
+ return projectSemanticEvidenceV1(read, readLiveCoordinationRows(coordRoot), nowMs);
16
+ }
17
+ /** Pure projection seam used by replay and contract tests. */
18
+ export function projectSemanticEvidenceV1(read, liveRows = [], nowMs = Date.now()) {
19
+ if (!read.complete || !read.genesis_id)
20
+ return [];
21
+ const view = projectCoordinationViewV3(read);
22
+ if (!view.authority_safe)
23
+ return [];
24
+ return projectSemanticEvidenceFromViewV1(read, view, liveRows, nowMs);
25
+ }
26
+ export function projectSemanticEvidenceFromViewV1(read, view, liveRows = [], nowMs = Date.now()) {
27
+ if (!read.complete || !read.genesis_id || !view.authority_safe)
28
+ return [];
29
+ const events = read.events.map(({ event }) => event);
30
+ const codec = projectPresenceCodecDigests(events);
31
+ const rows = new Map(liveRows.map((row) => [row.v3_generation_id, row]));
32
+ const recentTerminal = Object.values(view.terminal_generations).filter((generation) => {
33
+ const endedAt = Date.parse(generation.terminal?.observed_at ?? "");
34
+ return (generation.evidence_complete &&
35
+ Number.isFinite(endedAt) &&
36
+ nowMs - endedAt >= 0 &&
37
+ nowMs - endedAt <= SEMANTIC_RECENTLY_ENDED_WINDOW_MS);
38
+ });
39
+ return [...Object.values(view.instances), ...recentTerminal]
40
+ .filter((generation) => generation.authority_eligible || generation.phase === "terminal")
41
+ .sort((left, right) => left.generation_id.localeCompare(right.generation_id))
42
+ .flatMap((generation) => {
43
+ const evidence = projectGeneration(read.genesis_id, generation, events.filter((event) => eventGenerationId(event) === generation.generation_id), rows.get(generation.generation_id), codec.get(generation.instance_id));
44
+ return evidence ? [evidence] : [];
45
+ });
46
+ }
47
+ function projectGeneration(genesisId, generation, events, row, codec) {
48
+ const start = events.find((event) => event.event_type === "session.started");
49
+ if (!start || start.event_type !== "session.started")
50
+ return undefined;
51
+ const harness = observedHarness(start.payload.runtime_attestation.adapter);
52
+ if (!harness)
53
+ return undefined;
54
+ const latestTask = latest(events, "coord.task_changed");
55
+ const latestLifecycle = latest(events, "coord.lifecycle_changed");
56
+ const latestIntent = latest(events, "turn.started");
57
+ const task = latestTask && row?.task && row.v3_task_state === "set" && isSemanticPrivacySafe(row.task)
58
+ ? { value: row.task.slice(0, 200), event_id: latestTask.event_id }
59
+ : undefined;
60
+ const lifecycle = latestLifecycle
61
+ ? { state: latestLifecycle.payload.new_state, event_id: latestLifecycle.event_id }
62
+ : undefined;
63
+ const intent = latestIntent
64
+ ? { kind: latestIntent.payload.intent_kind, event_id: latestIntent.event_id }
65
+ : undefined;
66
+ const operation = codec?.operation && isSemanticPrivacySafe(codec.operation.label)
67
+ ? {
68
+ category: codec.operation.category,
69
+ label: codec.operation.label,
70
+ event_id: codec.operation.event_id,
71
+ }
72
+ : undefined;
73
+ const waits = generation.waits.slice(0, 8).map((wait) => ({
74
+ kind: wait.kind,
75
+ event_id: wait.started_event_id,
76
+ started_at: wait.started_at,
77
+ }));
78
+ const recent = events.flatMap(toRecentObservation).slice(-MAX_RECENT);
79
+ const attention = attentionObservation(generation, events, recent);
80
+ const dependencyIds = generation.waits
81
+ .map((wait) => wait.authority_reference)
82
+ .filter((value) => Boolean(value))
83
+ .filter((value) => /^[a-zA-Z0-9][a-zA-Z0-9._:+-]{0,127}$/.test(value))
84
+ .slice(0, 16);
85
+ const relationships = generation.parent_generation_id || dependencyIds.length
86
+ ? {
87
+ ...(generation.parent_generation_id
88
+ ? { parent_generation_id: generation.parent_generation_id }
89
+ : {}),
90
+ dependency_ids: [...new Set(dependencyIds)],
91
+ }
92
+ : undefined;
93
+ const evidenceEventIds = unique([
94
+ start.event_id,
95
+ task?.event_id,
96
+ lifecycle?.event_id,
97
+ intent?.event_id,
98
+ operation?.event_id,
99
+ ...waits.map((wait) => wait.event_id),
100
+ ...recent.map((item) => item.event_id),
101
+ attention?.event_id,
102
+ ]).slice(0, 64);
103
+ const observedThrough = newestEvidenceEvent(events, evidenceEventIds) ?? start;
104
+ const unsigned = {
105
+ schema_version: SEMANTIC_EVIDENCE_SCHEMA_VERSION,
106
+ evidence_contract_version: SEMANTIC_EVIDENCE_CONTRACT_VERSION,
107
+ instance_id: generation.instance_id,
108
+ generation_id: generation.generation_id,
109
+ source_harness: harness,
110
+ source: {
111
+ ledger_genesis_id: genesisId,
112
+ observed_through_event_id: observedThrough.event_id,
113
+ observed_through_ts: observedThrough.time.observed_at,
114
+ },
115
+ ...(task ? { task } : {}),
116
+ ...(lifecycle ? { lifecycle } : {}),
117
+ ...(intent ? { intent } : {}),
118
+ ...(operation ? { operation } : {}),
119
+ waits,
120
+ recent,
121
+ ...(attention ? { attention } : {}),
122
+ ...(relationships ? { relationships } : {}),
123
+ evidence_event_ids: evidenceEventIds,
124
+ };
125
+ const evidence = {
126
+ ...unsigned,
127
+ evidence_digest: sha256V3(canonicalJsonV3(unsigned)),
128
+ };
129
+ return validateSemanticEvidencePrivacy(evidence).ok ? evidence : undefined;
130
+ }
131
+ function toRecentObservation(event) {
132
+ const base = { event_id: event.event_id, observed_at: event.time.observed_at };
133
+ switch (event.event_type) {
134
+ case "progress.observed":
135
+ return [
136
+ {
137
+ ...base,
138
+ kind: "progress",
139
+ label: progressLabel(event.payload.kind),
140
+ outcome: "succeeded",
141
+ },
142
+ ];
143
+ case "artifact.observed":
144
+ return [
145
+ {
146
+ ...base,
147
+ kind: "artifact",
148
+ label: artifactLabel(event.payload.operation),
149
+ outcome: "succeeded",
150
+ },
151
+ ];
152
+ case "tool.completed":
153
+ return [
154
+ {
155
+ ...base,
156
+ kind: event.payload.outcome === "failed" ? "error" : "action",
157
+ label: event.payload.outcome === "succeeded" ? "Tool action succeeded" : "Tool action ended",
158
+ outcome: event.payload.outcome,
159
+ ...(event.payload.error?.class ? { error_class: event.payload.error.class } : {}),
160
+ },
161
+ ];
162
+ case "command.completed":
163
+ return [
164
+ {
165
+ ...base,
166
+ kind: event.payload.outcome === "failed" ? "error" : "action",
167
+ label: event.payload.outcome === "succeeded" ? "Command succeeded" : "Command ended",
168
+ outcome: event.payload.outcome,
169
+ ...(event.payload.error_class ? { error_class: event.payload.error_class } : {}),
170
+ },
171
+ ];
172
+ case "turn.completed":
173
+ return [{ ...base, kind: "action", label: "Turn completed", outcome: event.payload.outcome }];
174
+ case "session.ended":
175
+ return [
176
+ { ...base, kind: "terminal", label: "Session ended", outcome: event.payload.outcome },
177
+ ];
178
+ case "session.resumed":
179
+ case "lifecycle.recovered":
180
+ return [{ ...base, kind: "recovery", label: "Work recovered", outcome: "succeeded" }];
181
+ case "coord.claim_changed":
182
+ return event.payload.operation === "denied"
183
+ ? [{ ...base, kind: "claim-conflict", label: "Write claim conflicted", outcome: "denied" }]
184
+ : [];
185
+ default:
186
+ return [];
187
+ }
188
+ }
189
+ function attentionObservation(generation, events, recent) {
190
+ const activeWait = generation.waits.at(-1);
191
+ if (activeWait) {
192
+ return {
193
+ kind: "wait",
194
+ event_id: activeWait.started_event_id,
195
+ observed_at: activeWait.started_at,
196
+ label: `Waiting for ${waitLabel(activeWait.kind)}`,
197
+ };
198
+ }
199
+ const lifecycle = latest(events, "coord.lifecycle_changed");
200
+ if (lifecycle?.payload.new_state === "blocked") {
201
+ return {
202
+ kind: "lifecycle",
203
+ event_id: lifecycle.event_id,
204
+ observed_at: lifecycle.time.observed_at,
205
+ label: "Work is explicitly blocked",
206
+ };
207
+ }
208
+ return [...recent]
209
+ .reverse()
210
+ .find((item) => item.kind === "error" || item.kind === "claim-conflict");
211
+ }
212
+ function observedHarness(observation) {
213
+ if (observation.state !== "observed")
214
+ return undefined;
215
+ const id = observation.value.id;
216
+ return id === "claude-code" || id === "codex" || id === "cursor" ? id : undefined;
217
+ }
218
+ function latest(events, eventType) {
219
+ return [...events].reverse().find((event) => event.event_type === eventType);
220
+ }
221
+ function eventGenerationId(event) {
222
+ return "generation_id" in event.scope ? event.scope.generation_id : undefined;
223
+ }
224
+ function newestEvidenceEvent(events, ids) {
225
+ const allowed = new Set(ids);
226
+ return [...events].reverse().find((event) => allowed.has(event.event_id));
227
+ }
228
+ function unique(values) {
229
+ return [...new Set(values.filter((value) => Boolean(value)))];
230
+ }
231
+ function progressLabel(kind) {
232
+ return ({
233
+ write: "Files changed",
234
+ test: "Tests observed",
235
+ commit: "Commit observed",
236
+ deploy: "Deployment observed",
237
+ publication: "Publication observed",
238
+ review: "Review observed",
239
+ artifact: "Artifact observed",
240
+ }[kind] ?? "Progress observed");
241
+ }
242
+ function artifactLabel(operation) {
243
+ return ({
244
+ created: "Artifact created",
245
+ updated: "Artifact updated",
246
+ viewed: "Artifact viewed",
247
+ published: "Artifact published",
248
+ }[operation] ?? "Artifact observed");
249
+ }
250
+ function waitLabel(kind) {
251
+ return ({
252
+ permission: "permission",
253
+ needs_input: "input",
254
+ operator_input: "operator input",
255
+ approval: "approval",
256
+ decision: "a decision",
257
+ dependency: "a dependency",
258
+ scheduled: "a scheduled time",
259
+ rate_limit: "a rate limit",
260
+ unknown: "attention",
261
+ }[kind] ?? "attention");
262
+ }
@@ -0,0 +1,10 @@
1
+ export { createSemanticAdapters, discoverSemanticReaders, SEMANTIC_READER_ROUTES, type SemanticAdapter, type SemanticAdapterFailure, type SemanticAdapterResult, type SemanticAdapterSuccess, type SemanticReaderRoute, } from "./adapters.js";
2
+ export { SEMANTIC_CONFIGURED_MODELS, SEMANTIC_EVIDENCE_CONTRACT_VERSION, SEMANTIC_EVIDENCE_KINDS, SEMANTIC_EVIDENCE_SCHEMA_VERSION, SEMANTIC_EXPRESSION_CUES, SEMANTIC_HARNESSES, SEMANTIC_PHASES, SEMANTIC_PROMPT_CONTRACT_VERSION, SEMANTIC_READ_MODEL_SCHEMA_VERSION, SEMANTIC_TAGS, type SemanticAcceptedReadModelV2, SemanticAcceptedReadModelV2Schema, type SemanticAgentReadModelV2, SemanticAgentReadModelV2Schema, type SemanticBasis, type SemanticConfidence, type SemanticConfiguredModel, SemanticDeferredReadModelV2Schema, type SemanticEvidenceKind, type SemanticEvidenceObservationV1, SemanticEvidenceObservationV1Schema, type SemanticEvidenceV1, SemanticEvidenceV1Schema, type SemanticExpressionCue, type SemanticField, type SemanticHarness, SemanticInvalidReadModelV2Schema, type SemanticMeaningV2, SemanticMeaningV2Schema, type SemanticModelReplyV2, SemanticModelReplyV2Schema, type SemanticPhase, type SemanticTag, SemanticUnavailableReadModelV2Schema, } from "./contract.js";
3
+ export { buildSemanticEvidenceV1, projectSemanticEvidenceFromViewV1, projectSemanticEvidenceV1, SEMANTIC_RECENTLY_ENDED_WINDOW_MS, } from "./evidence.js";
4
+ export { type RunSemanticOnceInput, runSemanticOnce, type SemanticOnceOutcome, type SemanticOnceReport, } from "./once.js";
5
+ export { buildSemanticPrompt, extractSemanticJson, SEMANTIC_MAX_REQUEST_BYTES, type SemanticPromptEnvelope, } from "./prompt.js";
6
+ export { activeSemanticCallHistory, enqueueSemanticPending, SEMANTIC_HARD_CALLS_PER_HOUR, SEMANTIC_INVALID_RETRY_COOLDOWN_MS, SEMANTIC_MIN_GENERATION_CALL_INTERVAL_MS, selectSemanticPending, semanticDocumentEligible, semanticGenerationCallEligible, semanticPriorityBand, semanticRateCap, } from "./scheduler.js";
7
+ export { acquireSemanticServiceLease, type EnsureSemanticServiceDependencies, type EnsureSemanticServiceResult, type EnsureSemanticServiceState, ensureSemanticServiceRunning, type RunSemanticServiceDaemonInput, readSemanticServiceStatus, requestSemanticServiceStop, runSemanticServiceDaemon, SEMANTIC_SERVICE_DEFAULT_DEBOUNCE_MS, SEMANTIC_SERVICE_DEFAULT_HEARTBEAT_MS, SEMANTIC_SERVICE_DEFAULT_WAKE_MS, SEMANTIC_SERVICE_STATUS_SCHEMA_VERSION, type SemanticServiceErrorCode, type SemanticServiceState, type SemanticServiceStatus, type SemanticServiceStatusRecord, spawnSemanticService, } from "./service.js";
8
+ export { inspectSemanticDocument, invalidateSemanticDerivedState, listSemanticAgentDocuments, pruneSemanticStorage, readSemanticAgentDocument, readSemanticCache, readSemanticManifest, SEMANTIC_MANIFEST_SCHEMA_VERSION, type SemanticCacheIdentity, type SemanticCallReceipt, type SemanticManifestV2, type SemanticPendingItem, type SemanticReaderResolution, semanticCacheKey, semanticConfigurationDigest, semanticPaths, writeSemanticAgentDocument, writeSemanticCache, writeSemanticManifest, } from "./storage.js";
9
+ export { isSemanticPrivacySafe, type SemanticValidationFailure, type SemanticValidationResult, type SemanticValidationSuccess, semanticPrivacyIssue, validateSemanticEvidencePrivacy, validateSemanticModelReply, validateSemanticReadModel, } from "./validate.js";
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/semantic/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,sBAAsB,EACtB,KAAK,eAAe,EACpB,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAC3B,KAAK,mBAAmB,GACzB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,0BAA0B,EAC1B,kCAAkC,EAClC,uBAAuB,EACvB,gCAAgC,EAChC,wBAAwB,EACxB,kBAAkB,EAClB,eAAe,EACf,gCAAgC,EAChC,kCAAkC,EAClC,aAAa,EACb,KAAK,2BAA2B,EAChC,iCAAiC,EACjC,KAAK,wBAAwB,EAC7B,8BAA8B,EAC9B,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,EAC5B,iCAAiC,EACjC,KAAK,oBAAoB,EACzB,KAAK,6BAA6B,EAClC,mCAAmC,EACnC,KAAK,kBAAkB,EACvB,wBAAwB,EACxB,KAAK,qBAAqB,EAC1B,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,gCAAgC,EAChC,KAAK,iBAAiB,EACtB,uBAAuB,EACvB,KAAK,oBAAoB,EACzB,0BAA0B,EAC1B,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,oCAAoC,GACrC,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,uBAAuB,EACvB,iCAAiC,EACjC,yBAAyB,EACzB,iCAAiC,GAClC,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,KAAK,oBAAoB,EACzB,eAAe,EACf,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,GACxB,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,0BAA0B,EAC1B,KAAK,sBAAsB,GAC5B,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,yBAAyB,EACzB,sBAAsB,EACtB,4BAA4B,EAC5B,kCAAkC,EAClC,wCAAwC,EACxC,qBAAqB,EACrB,wBAAwB,EACxB,8BAA8B,EAC9B,oBAAoB,EACpB,eAAe,GAChB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,2BAA2B,EAC3B,KAAK,iCAAiC,EACtC,KAAK,2BAA2B,EAChC,KAAK,0BAA0B,EAC/B,4BAA4B,EAC5B,KAAK,6BAA6B,EAClC,yBAAyB,EACzB,0BAA0B,EAC1B,wBAAwB,EACxB,oCAAoC,EACpC,qCAAqC,EACrC,gCAAgC,EAChC,sCAAsC,EACtC,KAAK,wBAAwB,EAC7B,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC1B,KAAK,2BAA2B,EAChC,oBAAoB,GACrB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,uBAAuB,EACvB,8BAA8B,EAC9B,0BAA0B,EAC1B,oBAAoB,EACpB,yBAAyB,EACzB,iBAAiB,EACjB,oBAAoB,EACpB,gCAAgC,EAChC,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,wBAAwB,EAC7B,gBAAgB,EAChB,2BAA2B,EAC3B,aAAa,EACb,0BAA0B,EAC1B,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,qBAAqB,EACrB,KAAK,yBAAyB,EAC9B,KAAK,wBAAwB,EAC7B,KAAK,yBAAyB,EAC9B,oBAAoB,EACpB,+BAA+B,EAC/B,0BAA0B,EAC1B,yBAAyB,GAC1B,MAAM,eAAe,CAAC"}
@@ -0,0 +1,9 @@
1
+ export { createSemanticAdapters, discoverSemanticReaders, SEMANTIC_READER_ROUTES, } from "./adapters.js";
2
+ export { SEMANTIC_CONFIGURED_MODELS, SEMANTIC_EVIDENCE_CONTRACT_VERSION, SEMANTIC_EVIDENCE_KINDS, SEMANTIC_EVIDENCE_SCHEMA_VERSION, SEMANTIC_EXPRESSION_CUES, SEMANTIC_HARNESSES, SEMANTIC_PHASES, SEMANTIC_PROMPT_CONTRACT_VERSION, SEMANTIC_READ_MODEL_SCHEMA_VERSION, SEMANTIC_TAGS, SemanticAcceptedReadModelV2Schema, SemanticAgentReadModelV2Schema, SemanticDeferredReadModelV2Schema, SemanticEvidenceObservationV1Schema, SemanticEvidenceV1Schema, SemanticInvalidReadModelV2Schema, SemanticMeaningV2Schema, SemanticModelReplyV2Schema, SemanticUnavailableReadModelV2Schema, } from "./contract.js";
3
+ export { buildSemanticEvidenceV1, projectSemanticEvidenceFromViewV1, projectSemanticEvidenceV1, SEMANTIC_RECENTLY_ENDED_WINDOW_MS, } from "./evidence.js";
4
+ export { runSemanticOnce, } from "./once.js";
5
+ export { buildSemanticPrompt, extractSemanticJson, SEMANTIC_MAX_REQUEST_BYTES, } from "./prompt.js";
6
+ export { activeSemanticCallHistory, enqueueSemanticPending, SEMANTIC_HARD_CALLS_PER_HOUR, SEMANTIC_INVALID_RETRY_COOLDOWN_MS, SEMANTIC_MIN_GENERATION_CALL_INTERVAL_MS, selectSemanticPending, semanticDocumentEligible, semanticGenerationCallEligible, semanticPriorityBand, semanticRateCap, } from "./scheduler.js";
7
+ export { acquireSemanticServiceLease, ensureSemanticServiceRunning, readSemanticServiceStatus, requestSemanticServiceStop, runSemanticServiceDaemon, SEMANTIC_SERVICE_DEFAULT_DEBOUNCE_MS, SEMANTIC_SERVICE_DEFAULT_HEARTBEAT_MS, SEMANTIC_SERVICE_DEFAULT_WAKE_MS, SEMANTIC_SERVICE_STATUS_SCHEMA_VERSION, spawnSemanticService, } from "./service.js";
8
+ export { inspectSemanticDocument, invalidateSemanticDerivedState, listSemanticAgentDocuments, pruneSemanticStorage, readSemanticAgentDocument, readSemanticCache, readSemanticManifest, SEMANTIC_MANIFEST_SCHEMA_VERSION, semanticCacheKey, semanticConfigurationDigest, semanticPaths, writeSemanticAgentDocument, writeSemanticCache, writeSemanticManifest, } from "./storage.js";
9
+ export { isSemanticPrivacySafe, semanticPrivacyIssue, validateSemanticEvidencePrivacy, validateSemanticModelReply, validateSemanticReadModel, } from "./validate.js";
@@ -0,0 +1,33 @@
1
+ import { type SemanticAdapter } from "./adapters.js";
2
+ import { type SemanticEvidenceV1, type SemanticHarness } from "./contract.js";
3
+ export interface SemanticOnceOutcome {
4
+ generation_id: string;
5
+ source_harness: SemanticHarness;
6
+ action: "unchanged" | "cached" | "accepted" | "unavailable" | "invalid" | "deferred";
7
+ model_call: boolean;
8
+ duration_ms?: number;
9
+ input_bytes?: number;
10
+ output_bytes?: number;
11
+ }
12
+ export interface SemanticOnceReport {
13
+ schema_version: 1;
14
+ ledger_genesis_id?: string;
15
+ evidence_count: number;
16
+ evidence_by_harness: Record<SemanticHarness, number>;
17
+ model_calls: number;
18
+ cache_hits: number;
19
+ outcomes: SemanticOnceOutcome[];
20
+ completed_at: string;
21
+ }
22
+ export interface RunSemanticOnceInput {
23
+ coordRoot: string;
24
+ evidence?: SemanticEvidenceV1[];
25
+ adapters?: Record<SemanticHarness, SemanticAdapter>;
26
+ now?: () => Date;
27
+ callsPerHour?: number;
28
+ debounceMs?: number;
29
+ minimumGenerationCallIntervalMs?: number;
30
+ shouldStop?: () => boolean;
31
+ }
32
+ export declare function runSemanticOnce(input: RunSemanticOnceInput): Promise<SemanticOnceReport>;
33
+ //# sourceMappingURL=once.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"once.d.ts","sourceRoot":"","sources":["../../../src/core/semantic/once.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,eAAe,EAErB,MAAM,eAAe,CAAC;AACvB,OAAO,EAIL,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACrB,MAAM,eAAe,CAAC;AA4BvB,MAAM,WAAW,mBAAmB;IAClC,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,eAAe,CAAC;IAChC,MAAM,EAAE,WAAW,GAAG,QAAQ,GAAG,UAAU,GAAG,aAAa,GAAG,SAAS,GAAG,UAAU,CAAC;IACrF,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,kBAAkB;IACjC,cAAc,EAAE,CAAC,CAAC;IAClB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,mBAAmB,EAAE,MAAM,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;IACrD,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,mBAAmB,EAAE,CAAC;IAChC,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC;IACpD,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,+BAA+B,CAAC,EAAE,MAAM,CAAC;IACzC,UAAU,CAAC,EAAE,MAAM,OAAO,CAAC;CAC5B;AAED,wBAAsB,eAAe,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAmL9F"}