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
|
@@ -5,6 +5,14 @@
|
|
|
5
5
|
* Layout invariant: 260 entries (10 per starting letter A..Z). Counter N
|
|
6
6
|
* picks COORD_NAMES[N % 260]; wraps to A at N=260.
|
|
7
7
|
*
|
|
8
|
+
* Gender invariant: within each 26-name pass the names alternate female/male
|
|
9
|
+
* letter by letter, so every pass is 13 female and 13 male. Five passes start
|
|
10
|
+
* female at A (1, 3, 5, 7, 9) and five start male (2, 4, 6, 8, 10), which gives
|
|
11
|
+
* each letter exactly five names of each gender and the pool 130/130 overall.
|
|
12
|
+
* This exists so a fixed set of 13 female and 13 male portraits can dress one
|
|
13
|
+
* whole pass. Adding or reordering a name must preserve it; the expected
|
|
14
|
+
* pattern is pinned in tests/unit/names-pool.test.ts.
|
|
15
|
+
*
|
|
8
16
|
* Durable persistence: `.harnery/.name-history` (JSONL, one row per assignment)
|
|
9
17
|
* + `.harnery/.name-counter` (current counter, atomic temp+rename).
|
|
10
18
|
*
|
|
@@ -22,274 +30,274 @@ import { existsSync, mkdirSync, readFileSync, renameSync, writeFileSync } from "
|
|
|
22
30
|
import { dirname, join } from "node:path";
|
|
23
31
|
/** All 260 names. */
|
|
24
32
|
export const COORD_NAMES = [
|
|
25
|
-
// Pass 1
|
|
33
|
+
// Pass 1 — female-first (A=female), alternating to Z
|
|
26
34
|
"Anna",
|
|
27
35
|
"Bob",
|
|
28
|
-
"
|
|
29
|
-
"
|
|
36
|
+
"Carmen",
|
|
37
|
+
"Dorian",
|
|
30
38
|
"Erika",
|
|
31
39
|
"Fred",
|
|
32
40
|
"Gemma",
|
|
33
41
|
"Hank",
|
|
34
42
|
"Imelda",
|
|
35
43
|
"Jerry",
|
|
36
|
-
"
|
|
37
|
-
"
|
|
38
|
-
"
|
|
44
|
+
"Karen",
|
|
45
|
+
"Lorenzo",
|
|
46
|
+
"Mindy",
|
|
39
47
|
"Nate",
|
|
40
|
-
"
|
|
41
|
-
"
|
|
42
|
-
"
|
|
48
|
+
"Odette",
|
|
49
|
+
"Peter",
|
|
50
|
+
"Quinn",
|
|
43
51
|
"Rafael",
|
|
44
52
|
"Sara",
|
|
45
53
|
"Tony",
|
|
46
|
-
"
|
|
47
|
-
"
|
|
54
|
+
"Ursula",
|
|
55
|
+
"Vinson",
|
|
48
56
|
"Whitney",
|
|
49
57
|
"Xander",
|
|
50
58
|
"Yara",
|
|
51
|
-
"
|
|
52
|
-
// Pass 2
|
|
53
|
-
"
|
|
59
|
+
"Zane",
|
|
60
|
+
// Pass 2 — male-first (A=male), alternating to Z
|
|
61
|
+
"Alex",
|
|
54
62
|
"Bertha",
|
|
55
|
-
"
|
|
56
|
-
"
|
|
57
|
-
"
|
|
63
|
+
"Carlos",
|
|
64
|
+
"Dalia",
|
|
65
|
+
"Ernesto",
|
|
58
66
|
"Francine",
|
|
59
|
-
"
|
|
67
|
+
"Gordon",
|
|
60
68
|
"Helene",
|
|
61
|
-
"
|
|
69
|
+
"Isaias",
|
|
62
70
|
"Joyce",
|
|
63
|
-
"
|
|
64
|
-
"
|
|
65
|
-
"
|
|
71
|
+
"Kirk",
|
|
72
|
+
"Lucia",
|
|
73
|
+
"Milton",
|
|
66
74
|
"Nadine",
|
|
67
|
-
"
|
|
68
|
-
"
|
|
69
|
-
"
|
|
75
|
+
"Oscar",
|
|
76
|
+
"Patty",
|
|
77
|
+
"Quentin",
|
|
70
78
|
"Rebekah",
|
|
71
79
|
"Sean",
|
|
72
80
|
"Tammy",
|
|
73
|
-
"
|
|
74
|
-
"
|
|
81
|
+
"Ulrik",
|
|
82
|
+
"Valerie",
|
|
75
83
|
"Wallace",
|
|
76
84
|
"Xanthe",
|
|
77
85
|
"Yusuf",
|
|
78
|
-
"
|
|
79
|
-
// Pass 3
|
|
80
|
-
"
|
|
86
|
+
"Zara",
|
|
87
|
+
// Pass 3 — female-first (A=female), alternating to Z
|
|
88
|
+
"Adelaide",
|
|
89
|
+
"Bruno",
|
|
90
|
+
"Cora",
|
|
91
|
+
"Damon",
|
|
92
|
+
"Edna",
|
|
93
|
+
"Felix",
|
|
94
|
+
"Greta",
|
|
95
|
+
"Hugo",
|
|
96
|
+
"Ines",
|
|
97
|
+
"Jasper",
|
|
98
|
+
"Kaia",
|
|
99
|
+
"Larry",
|
|
100
|
+
"Maxine",
|
|
101
|
+
"Nicholas",
|
|
102
|
+
"Olive",
|
|
103
|
+
"Paxton",
|
|
104
|
+
"Querida",
|
|
105
|
+
"Roman",
|
|
106
|
+
"Stella",
|
|
107
|
+
"Tobias",
|
|
108
|
+
"Una",
|
|
109
|
+
"Virgil",
|
|
110
|
+
"Willow",
|
|
111
|
+
"Xavier",
|
|
112
|
+
"Yolanda",
|
|
113
|
+
"Zephyr",
|
|
114
|
+
// Pass 4 — male-first (A=male), alternating to Z
|
|
115
|
+
"Aaron",
|
|
81
116
|
"Beatrice",
|
|
82
117
|
"Cyrus",
|
|
83
118
|
"Delia",
|
|
84
|
-
"
|
|
119
|
+
"Elias",
|
|
85
120
|
"Florence",
|
|
86
|
-
"
|
|
121
|
+
"Galileo",
|
|
87
122
|
"Hester",
|
|
88
|
-
"
|
|
123
|
+
"Ian",
|
|
89
124
|
"Jenna",
|
|
90
125
|
"Klaus",
|
|
91
|
-
"
|
|
92
|
-
"
|
|
93
|
-
"
|
|
126
|
+
"Linda",
|
|
127
|
+
"Marco",
|
|
128
|
+
"Nora",
|
|
94
129
|
"Otto",
|
|
95
|
-
"
|
|
130
|
+
"Paulette",
|
|
96
131
|
"Quill",
|
|
97
132
|
"Renee",
|
|
98
|
-
"
|
|
133
|
+
"Sebastian",
|
|
99
134
|
"Theresa",
|
|
100
135
|
"Umberto",
|
|
101
|
-
"
|
|
102
|
-
"
|
|
103
|
-
"
|
|
104
|
-
"
|
|
105
|
-
"
|
|
106
|
-
// Pass
|
|
136
|
+
"Vera",
|
|
137
|
+
"Walter",
|
|
138
|
+
"Xena",
|
|
139
|
+
"Yves",
|
|
140
|
+
"Zoe",
|
|
141
|
+
// Pass 5 — female-first (A=female), alternating to Z
|
|
107
142
|
"Anita",
|
|
108
|
-
"
|
|
109
|
-
"
|
|
110
|
-
"
|
|
143
|
+
"Beau",
|
|
144
|
+
"Celeste",
|
|
145
|
+
"Dexter",
|
|
111
146
|
"Edith",
|
|
112
|
-
"
|
|
147
|
+
"Fitz",
|
|
113
148
|
"Gloria",
|
|
114
|
-
"
|
|
149
|
+
"Hadley",
|
|
115
150
|
"Iris",
|
|
116
|
-
"Jasper",
|
|
117
|
-
"Kaia",
|
|
118
|
-
"Linda",
|
|
119
|
-
"Marco",
|
|
120
|
-
"Nora",
|
|
121
|
-
"Olive",
|
|
122
|
-
"Petra",
|
|
123
|
-
"Querida",
|
|
124
|
-
"Roman",
|
|
125
|
-
"Sebastian",
|
|
126
|
-
"Tobias",
|
|
127
|
-
"Una",
|
|
128
|
-
"Vera",
|
|
129
|
-
"Walter",
|
|
130
|
-
"Xena",
|
|
131
|
-
"Yusra",
|
|
132
|
-
"Zelda",
|
|
133
|
-
// Pass 5
|
|
134
|
-
"Aaron",
|
|
135
|
-
"Bonnie",
|
|
136
|
-
"Caleb",
|
|
137
|
-
"Daphne",
|
|
138
|
-
"Elias",
|
|
139
|
-
"Fiona",
|
|
140
|
-
"Galileo",
|
|
141
|
-
"Hugo",
|
|
142
|
-
"Ian",
|
|
143
151
|
"Jude",
|
|
144
|
-
"
|
|
152
|
+
"Kira",
|
|
145
153
|
"Leo",
|
|
146
154
|
"Maya",
|
|
147
155
|
"Nash",
|
|
148
|
-
"
|
|
149
|
-
"
|
|
156
|
+
"Olga",
|
|
157
|
+
"Phillip",
|
|
150
158
|
"Quetzal",
|
|
151
|
-
"
|
|
159
|
+
"Royce",
|
|
152
160
|
"Sage",
|
|
153
|
-
"
|
|
154
|
-
"
|
|
161
|
+
"Trent",
|
|
162
|
+
"Uma",
|
|
155
163
|
"Vincent",
|
|
156
|
-
"
|
|
157
|
-
"
|
|
164
|
+
"Wynne",
|
|
165
|
+
"Xerxes",
|
|
158
166
|
"Yvette",
|
|
159
|
-
"
|
|
160
|
-
// Pass 6
|
|
161
|
-
"
|
|
162
|
-
"
|
|
163
|
-
"
|
|
164
|
-
"
|
|
167
|
+
"Zoltan",
|
|
168
|
+
// Pass 6 — male-first (A=male), alternating to Z
|
|
169
|
+
"Andre",
|
|
170
|
+
"Bonnie",
|
|
171
|
+
"Caleb",
|
|
172
|
+
"Daphne",
|
|
165
173
|
"Ezra",
|
|
166
|
-
"
|
|
167
|
-
"
|
|
168
|
-
"
|
|
169
|
-
"
|
|
170
|
-
"
|
|
171
|
-
"
|
|
174
|
+
"Fiona",
|
|
175
|
+
"Gibson",
|
|
176
|
+
"Holly",
|
|
177
|
+
"Ivan",
|
|
178
|
+
"Juno",
|
|
179
|
+
"Knox",
|
|
172
180
|
"Lila",
|
|
173
181
|
"Mason",
|
|
174
182
|
"Nila",
|
|
175
|
-
"
|
|
176
|
-
"
|
|
183
|
+
"Owen",
|
|
184
|
+
"Petra",
|
|
177
185
|
"Quincy",
|
|
178
|
-
"
|
|
186
|
+
"Rosa",
|
|
179
187
|
"Sterling",
|
|
180
|
-
"
|
|
181
|
-
"
|
|
188
|
+
"Talia",
|
|
189
|
+
"Uri",
|
|
182
190
|
"Violet",
|
|
183
|
-
"
|
|
184
|
-
"
|
|
185
|
-
"
|
|
186
|
-
"
|
|
187
|
-
// Pass 7
|
|
188
|
-
"
|
|
189
|
-
"
|
|
190
|
-
"
|
|
191
|
-
"
|
|
191
|
+
"Wesley",
|
|
192
|
+
"Ximena",
|
|
193
|
+
"Yuri",
|
|
194
|
+
"Zelda",
|
|
195
|
+
// Pass 7 — female-first (A=female), alternating to Z
|
|
196
|
+
"Astrid",
|
|
197
|
+
"Boris",
|
|
198
|
+
"Cassidy",
|
|
199
|
+
"Davis",
|
|
192
200
|
"Esme",
|
|
193
|
-
"
|
|
194
|
-
"
|
|
195
|
-
"
|
|
196
|
-
"
|
|
197
|
-
"
|
|
198
|
-
"
|
|
201
|
+
"Forrest",
|
|
202
|
+
"Genevieve",
|
|
203
|
+
"Henry",
|
|
204
|
+
"Imogen",
|
|
205
|
+
"Joaquin",
|
|
206
|
+
"Kestrel",
|
|
199
207
|
"Luther",
|
|
200
208
|
"Margot",
|
|
201
209
|
"Nigel",
|
|
202
|
-
"
|
|
203
|
-
"
|
|
210
|
+
"Ophelia",
|
|
211
|
+
"Percy",
|
|
204
212
|
"Quenby",
|
|
205
213
|
"Reagan",
|
|
206
214
|
"Sienna",
|
|
207
|
-
"
|
|
208
|
-
"
|
|
209
|
-
"
|
|
210
|
-
"
|
|
211
|
-
"
|
|
212
|
-
"
|
|
213
|
-
"
|
|
214
|
-
// Pass 8
|
|
215
|
-
"
|
|
216
|
-
"
|
|
217
|
-
"
|
|
218
|
-
"
|
|
215
|
+
"Truman",
|
|
216
|
+
"Undine",
|
|
217
|
+
"Voss",
|
|
218
|
+
"Wren",
|
|
219
|
+
"Xan",
|
|
220
|
+
"Yael",
|
|
221
|
+
"Zia",
|
|
222
|
+
// Pass 8 — male-first (A=male), alternating to Z
|
|
223
|
+
"Arthur",
|
|
224
|
+
"Bianca",
|
|
225
|
+
"Cody",
|
|
226
|
+
"Dahlia",
|
|
219
227
|
"Evander",
|
|
220
|
-
"
|
|
221
|
-
"
|
|
222
|
-
"
|
|
223
|
-
"
|
|
224
|
-
"
|
|
225
|
-
"
|
|
228
|
+
"Fern",
|
|
229
|
+
"Gustavo",
|
|
230
|
+
"Harriet",
|
|
231
|
+
"Ira",
|
|
232
|
+
"Josephine",
|
|
233
|
+
"Kendrick",
|
|
226
234
|
"Lainey",
|
|
227
235
|
"Miles",
|
|
228
236
|
"Naomi",
|
|
229
|
-
"
|
|
230
|
-
"
|
|
237
|
+
"Orion",
|
|
238
|
+
"Pearl",
|
|
231
239
|
"Quark",
|
|
232
240
|
"Rylie",
|
|
233
241
|
"Saul",
|
|
234
|
-
"
|
|
235
|
-
"
|
|
236
|
-
"
|
|
237
|
-
"
|
|
238
|
-
"
|
|
239
|
-
"
|
|
240
|
-
"
|
|
241
|
-
// Pass 9
|
|
242
|
-
"
|
|
243
|
-
"
|
|
244
|
-
"
|
|
245
|
-
"
|
|
242
|
+
"Tessa",
|
|
243
|
+
"Ulysses",
|
|
244
|
+
"Vesper",
|
|
245
|
+
"Wyatt",
|
|
246
|
+
"Xiomara",
|
|
247
|
+
"Yancy",
|
|
248
|
+
"Zinnia",
|
|
249
|
+
// Pass 9 — female-first (A=female), alternating to Z
|
|
250
|
+
"Amelia",
|
|
251
|
+
"Barnaby",
|
|
252
|
+
"Calliope",
|
|
253
|
+
"Drake",
|
|
246
254
|
"Estelle",
|
|
247
|
-
"
|
|
248
|
-
"
|
|
249
|
-
"
|
|
250
|
-
"
|
|
251
|
-
"
|
|
252
|
-
"
|
|
253
|
-
"
|
|
255
|
+
"Foster",
|
|
256
|
+
"Greer",
|
|
257
|
+
"Hollis",
|
|
258
|
+
"Irene",
|
|
259
|
+
"Jericho",
|
|
260
|
+
"Klara",
|
|
261
|
+
"Logan",
|
|
254
262
|
"Mavis",
|
|
255
263
|
"Nico",
|
|
256
|
-
"
|
|
257
|
-
"
|
|
258
|
-
"
|
|
264
|
+
"Oakley",
|
|
265
|
+
"Pascal",
|
|
266
|
+
"Quito",
|
|
259
267
|
"Rhett",
|
|
260
268
|
"Scout",
|
|
261
|
-
"
|
|
269
|
+
"Theron",
|
|
262
270
|
"Unity",
|
|
263
|
-
"
|
|
264
|
-
"
|
|
265
|
-
"
|
|
266
|
-
"
|
|
271
|
+
"Vance",
|
|
272
|
+
"Winifred",
|
|
273
|
+
"Xola",
|
|
274
|
+
"Yvonne",
|
|
267
275
|
"Zev",
|
|
268
|
-
// Pass 10
|
|
276
|
+
// Pass 10 — male-first (A=male), alternating to Z
|
|
269
277
|
"Atticus",
|
|
270
|
-
"
|
|
271
|
-
"
|
|
272
|
-
"
|
|
278
|
+
"Brenda",
|
|
279
|
+
"Crispin",
|
|
280
|
+
"Dolores",
|
|
273
281
|
"Eustace",
|
|
274
|
-
"
|
|
282
|
+
"Felicity",
|
|
275
283
|
"Granger",
|
|
276
|
-
"
|
|
277
|
-
"
|
|
278
|
-
"
|
|
279
|
-
"
|
|
280
|
-
"
|
|
284
|
+
"Hazel",
|
|
285
|
+
"Idris",
|
|
286
|
+
"Jovi",
|
|
287
|
+
"Kasper",
|
|
288
|
+
"Lyric",
|
|
281
289
|
"Magnus",
|
|
282
290
|
"Noor",
|
|
283
|
-
"
|
|
284
|
-
"
|
|
285
|
-
"
|
|
291
|
+
"Otis",
|
|
292
|
+
"Phoebe",
|
|
293
|
+
"Querubin",
|
|
286
294
|
"Rosalind",
|
|
287
|
-
"
|
|
288
|
-
"
|
|
295
|
+
"Silas",
|
|
296
|
+
"Tatum",
|
|
289
297
|
"Upton",
|
|
290
|
-
"
|
|
298
|
+
"Vivian",
|
|
291
299
|
"Wendell",
|
|
292
|
-
"
|
|
300
|
+
"Xuxa",
|
|
293
301
|
"Yann",
|
|
294
302
|
"Zora",
|
|
295
303
|
];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stale-sweep.d.ts","sourceRoot":"","sources":["../../../../src/core/agents/state/stale-sweep.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;
|
|
1
|
+
{"version":3,"file":"stale-sweep.d.ts","sourceRoot":"","sources":["../../../../src/core/agents/state/stale-sweep.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAuEH,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG;IAC7C,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;CAC3B,CA8IA"}
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
import { existsSync, readdirSync, readFileSync, statSync, unlinkSync } from "node:fs";
|
|
13
13
|
import { join } from "node:path";
|
|
14
14
|
import { coordFreshnessSeconds } from "../../config.js";
|
|
15
|
+
import { writeProducerDiagnosticV3 } from "../../events/v3/producers/intake.js";
|
|
15
16
|
import { recordLiveSweepObservationV3 } from "../live-lifecycle-v3.js";
|
|
16
17
|
/** platform → adapter, for the swept-event envelope (mirrors heartbeat-writer's adapterOf). */
|
|
17
18
|
function adapterFromPlatform(platform) {
|
|
@@ -21,7 +22,15 @@ function adapterFromPlatform(platform) {
|
|
|
21
22
|
return "codex";
|
|
22
23
|
return "claude-code";
|
|
23
24
|
}
|
|
24
|
-
/**
|
|
25
|
+
/**
|
|
26
|
+
* Record the sweep before deleting disposable cache state.
|
|
27
|
+
*
|
|
28
|
+
* A joinable generation owns the canonical provisional observation. Once that
|
|
29
|
+
* generation is terminal or unavailable, it must not be reopened merely to
|
|
30
|
+
* authorize cache housekeeping. Preserve the failed observation in the V3
|
|
31
|
+
* diagnostics spool instead. If neither durable record can be written, fail
|
|
32
|
+
* closed and keep the file.
|
|
33
|
+
*/
|
|
25
34
|
function emitSwept(coordRoot, instanceId, adapter, sessionId, reason, ageSecs) {
|
|
26
35
|
try {
|
|
27
36
|
recordLiveSweepObservationV3({
|
|
@@ -38,8 +47,16 @@ function emitSwept(coordRoot, instanceId, adapter, sessionId, reason, ageSecs) {
|
|
|
38
47
|
});
|
|
39
48
|
return true;
|
|
40
49
|
}
|
|
41
|
-
catch {
|
|
42
|
-
return
|
|
50
|
+
catch (error) {
|
|
51
|
+
return Boolean(writeProducerDiagnosticV3(coordRoot, "heartbeat_sweep_unrecorded", {
|
|
52
|
+
adapter,
|
|
53
|
+
instance_id: instanceId,
|
|
54
|
+
signal: "lifecycle.sweep_observed",
|
|
55
|
+
reason: error instanceof Error ? error.message : String(error),
|
|
56
|
+
state: "cache_cleanup_pending",
|
|
57
|
+
observation: reason,
|
|
58
|
+
age_ms: Math.max(0, (ageSecs ?? 0) * 1_000),
|
|
59
|
+
}));
|
|
43
60
|
}
|
|
44
61
|
}
|
|
45
62
|
/** File mtime in epoch-seconds, or +Infinity if it can't be read (treat as fresh → don't reap). */
|
|
@@ -70,8 +87,9 @@ export function staleSweep(coordRoot) {
|
|
|
70
87
|
// a transient (mid-write / partial read), and deleting it would nuke a
|
|
71
88
|
// LIVE agent's heartbeat, the worst possible outcome. So: never reap a
|
|
72
89
|
// fresh file on a content failure.
|
|
73
|
-
// Every deletion
|
|
74
|
-
//
|
|
90
|
+
// Every deletion leaves durable audit evidence. A joinable generation gets
|
|
91
|
+
// lifecycle.sweep_observed; a terminal or unavailable generation gets a
|
|
92
|
+
// heartbeat_sweep_unrecorded producer diagnostic without being resurrected.
|
|
75
93
|
const liveInstanceIds = new Set();
|
|
76
94
|
const d = join(coordRoot, ".harnery", "active");
|
|
77
95
|
if (existsSync(d)) {
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/** Read-only artifact layout constants safe for browser-side server modules. */
|
|
2
|
+
export declare const ARTIFACTS_DIR = ".harnery/artifacts";
|
|
3
|
+
export declare const ARTIFACT_MANIFEST = ".harnery-artifact.json";
|
|
4
|
+
export declare const ARTIFACT_SCHEMA_VERSION: 1;
|
|
5
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/core/artifacts/constants.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,eAAO,MAAM,aAAa,uBAAuB,CAAC;AAClD,eAAO,MAAM,iBAAiB,2BAA2B,CAAC;AAC1D,eAAO,MAAM,uBAAuB,EAAG,CAAU,CAAC"}
|
|
@@ -7,9 +7,8 @@
|
|
|
7
7
|
* managed unit with a small manifest. Cleanup fails closed: only a valid,
|
|
8
8
|
* expired, inactive, untracked managed unit is deletable.
|
|
9
9
|
*/
|
|
10
|
-
|
|
11
|
-
export
|
|
12
|
-
export declare const ARTIFACT_SCHEMA_VERSION: 1;
|
|
10
|
+
import { ARTIFACT_SCHEMA_VERSION } from "./constants.js";
|
|
11
|
+
export { ARTIFACT_MANIFEST, ARTIFACT_SCHEMA_VERSION, ARTIFACTS_DIR } from "./constants.js";
|
|
13
12
|
export interface ArtifactActor {
|
|
14
13
|
instance_id: string;
|
|
15
14
|
session_id?: string;
|
|
@@ -42,6 +41,7 @@ export interface ArtifactInventoryEntry {
|
|
|
42
41
|
artifact_id: string | null;
|
|
43
42
|
slug: string | null;
|
|
44
43
|
created_at: string | null;
|
|
44
|
+
last_modified_at: string | null;
|
|
45
45
|
expires_at: string | null;
|
|
46
46
|
owner_instance_id: string | null;
|
|
47
47
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/artifacts/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/artifacts/index.ts"],"names":[],"mappings":"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"}
|