run402 4.33.2 → 4.34.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/lib/claims.mjs +2 -1
- package/lib/harness-context.mjs +201 -0
- package/lib/messages.mjs +14 -5
- package/lib/rooms-context.mjs +38 -9
- package/lib/rooms.mjs +21 -3
- package/package.json +1 -1
- package/sdk/dist/namespaces/rooms.d.ts.map +1 -1
- package/sdk/dist/namespaces/rooms.js +10 -0
- package/sdk/dist/namespaces/rooms.js.map +1 -1
- package/sdk/dist/namespaces/rooms.types.d.ts +31 -3
- package/sdk/dist/namespaces/rooms.types.d.ts.map +1 -1
package/lib/claims.mjs
CHANGED
|
@@ -86,13 +86,14 @@ async function create(args) {
|
|
|
86
86
|
org: flagValue(a, "--org"), room: flagValue(a, "--room"), project: flagValue(a, "--project"),
|
|
87
87
|
});
|
|
88
88
|
try {
|
|
89
|
-
const created = await withPresenceRetry(room.orgId, room.roomKey, (presenceId) =>
|
|
89
|
+
const created = await withPresenceRetry(room.orgId, room.roomKey, (presenceId, sessionKey) =>
|
|
90
90
|
getSdk().rooms.createClaim(room.orgId, room.roomKey, {
|
|
91
91
|
resource: positionals[0],
|
|
92
92
|
mode,
|
|
93
93
|
ttlSeconds: ttl != null ? parseIntegerFlag("--ttl", ttl, { min: 1, max: 86400 }) : undefined,
|
|
94
94
|
note: flagValue(a, "--note") ?? undefined,
|
|
95
95
|
presenceId: presenceId ?? undefined,
|
|
96
|
+
sessionKey,
|
|
96
97
|
}));
|
|
97
98
|
console.log(JSON.stringify(created, null, 2));
|
|
98
99
|
const conflicts = Array.isArray(created.conflicts) ? created.conflicts : [];
|
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Best-effort session + task identity sourced from the AI harness running
|
|
3
|
+
* this CLI invocation (Claude Code or Codex) — no network call, every source
|
|
4
|
+
* optional, the chain always terminates. Backs coordination-room presence
|
|
5
|
+
* resumption in rooms-context.mjs (run402-private's
|
|
6
|
+
* presence-naming-ergonomics, tasks 2.2 / 3.1-3.2).
|
|
7
|
+
*
|
|
8
|
+
* Session identity is what makes a presence RESUMABLE across a lost local
|
|
9
|
+
* cache (a fresh checkout, a wiped .run402/, a restarted machine): the
|
|
10
|
+
* gateway resumes a presence bound to the SAME session_key no matter how
|
|
11
|
+
* long its TTL has silently decayed, so a session that can re-derive its OWN
|
|
12
|
+
* key independently of any local file needs no cache at all to pick up where
|
|
13
|
+
* it left off. Two genuinely concurrent sessions must NEVER derive the same
|
|
14
|
+
* key — that would be the #663 regression this design exists to avoid (see
|
|
15
|
+
* run402-private's agent-presence.ts, resolvePresence's own comment) — so
|
|
16
|
+
* every source below is either a value the harness itself guarantees is
|
|
17
|
+
* unique per session, or a value generated here and persisted only for THIS
|
|
18
|
+
* checkout.
|
|
19
|
+
*/
|
|
20
|
+
import { existsSync, mkdirSync, readdirSync, readFileSync, writeFileSync } from "node:fs";
|
|
21
|
+
import { homedir } from "node:os";
|
|
22
|
+
import { join } from "node:path";
|
|
23
|
+
import { randomBytes } from "node:crypto";
|
|
24
|
+
|
|
25
|
+
export const SESSION_KEY_OVERRIDE_ENV = "RUN402_SESSION_KEY";
|
|
26
|
+
export const TASK_FROM_TITLE_OPT_OUT_ENV = "RUN402_NO_TASK_FROM_TITLE";
|
|
27
|
+
const SESSION_KEY_CACHE_RELATIVE_PATH = ".run402/session-key.json";
|
|
28
|
+
const CLAUDE_SESSIONS_DIR_PARTS = ["Library", "Application Support", "Claude", "claude-code-sessions"];
|
|
29
|
+
const CODEX_STATE_DB_PARTS = [".codex", "state_5.sqlite"];
|
|
30
|
+
const MAX_TITLE_SEARCH_DIRS = 2000;
|
|
31
|
+
const TASK_MAX_LENGTH = 500; // mirrors the gateway's own validateMeta cap — never send what it would reject.
|
|
32
|
+
|
|
33
|
+
function isTruthyEnvValue(raw) {
|
|
34
|
+
const v = (raw ?? "").trim().toLowerCase();
|
|
35
|
+
return v === "1" || v === "true" || v === "yes";
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Resolve THIS session's opaque identity as an ordered chain with no network
|
|
40
|
+
* call: explicit override -> Claude Code's own session id -> Codex's own
|
|
41
|
+
* thread id -> a locally generated key persisted for this checkout. No
|
|
42
|
+
* source is load-bearing — a harness that sets neither env var, or a
|
|
43
|
+
* filesystem that refuses the write, still yields a usable key for this run.
|
|
44
|
+
*/
|
|
45
|
+
export function resolveSessionKey({
|
|
46
|
+
env = process.env,
|
|
47
|
+
cwd = process.cwd(),
|
|
48
|
+
existsSyncImpl = existsSync,
|
|
49
|
+
readFileSyncImpl = readFileSync,
|
|
50
|
+
writeFileSyncImpl = writeFileSync,
|
|
51
|
+
mkdirSyncImpl = mkdirSync,
|
|
52
|
+
randomBytesImpl = randomBytes,
|
|
53
|
+
} = {}) {
|
|
54
|
+
const override = env[SESSION_KEY_OVERRIDE_ENV]?.trim();
|
|
55
|
+
if (override) return { key: override, source: "env_override" };
|
|
56
|
+
|
|
57
|
+
const claudeId = env.CLAUDE_CODE_SESSION_ID?.trim();
|
|
58
|
+
if (claudeId) return { key: claudeId, source: "claude_code_session_id" };
|
|
59
|
+
|
|
60
|
+
const codexId = env.CODEX_THREAD_ID?.trim();
|
|
61
|
+
if (codexId) return { key: codexId, source: "codex_thread_id" };
|
|
62
|
+
|
|
63
|
+
const keyPath = join(cwd, SESSION_KEY_CACHE_RELATIVE_PATH);
|
|
64
|
+
try {
|
|
65
|
+
if (existsSyncImpl(keyPath)) {
|
|
66
|
+
const parsed = JSON.parse(readFileSyncImpl(keyPath, "utf8"));
|
|
67
|
+
if (typeof parsed?.session_key === "string" && parsed.session_key) {
|
|
68
|
+
return { key: parsed.session_key, source: "generated_cached" };
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
} catch {
|
|
72
|
+
// Malformed or unreadable cache: fall through to generating a fresh one.
|
|
73
|
+
}
|
|
74
|
+
const generated = randomBytesImpl(16).toString("hex");
|
|
75
|
+
try {
|
|
76
|
+
mkdirSyncImpl(join(cwd, ".run402"), { recursive: true });
|
|
77
|
+
writeFileSyncImpl(keyPath, `${JSON.stringify({ session_key: generated }, null, 2)}\n`);
|
|
78
|
+
} catch {
|
|
79
|
+
// Best-effort persistence: an unwritable checkout still gets a usable
|
|
80
|
+
// (if not durable-across-invocations) key for this one run.
|
|
81
|
+
}
|
|
82
|
+
return { key: generated, source: "generated" };
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* Bounded-depth search for a file named `filename` under `root`. Stops at
|
|
87
|
+
* the first match, or after MAX_TITLE_SEARCH_DIRS directories visited,
|
|
88
|
+
* whichever comes first — this is best-effort enrichment, not a guarantee,
|
|
89
|
+
* and must never become an unbounded walk of the user's home directory.
|
|
90
|
+
*/
|
|
91
|
+
function findFileByName(root, filename, { existsSyncImpl, readdirSyncImpl, maxDepth = 4 }) {
|
|
92
|
+
if (!existsSyncImpl(root)) return null;
|
|
93
|
+
const stack = [{ dir: root, depth: 0 }];
|
|
94
|
+
let visited = 0;
|
|
95
|
+
while (stack.length && visited < MAX_TITLE_SEARCH_DIRS) {
|
|
96
|
+
const { dir, depth } = stack.pop();
|
|
97
|
+
visited += 1;
|
|
98
|
+
let entries;
|
|
99
|
+
try {
|
|
100
|
+
entries = readdirSyncImpl(dir, { withFileTypes: true });
|
|
101
|
+
} catch {
|
|
102
|
+
continue;
|
|
103
|
+
}
|
|
104
|
+
for (const entry of entries) {
|
|
105
|
+
if (entry.isFile() && entry.name === filename) return join(dir, entry.name);
|
|
106
|
+
if (entry.isDirectory() && depth < maxDepth) stack.push({ dir: join(dir, entry.name), depth: depth + 1 });
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
return null;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
/**
|
|
113
|
+
* Claude Code's own per-session metadata store — one JSON file named
|
|
114
|
+
* `<CLAUDE_CODE_HOST_SESSION_ID>.json`, holding (among other fields) `title`:
|
|
115
|
+
* the human-meaningful, user-renamable thread title shown in the app. Its
|
|
116
|
+
* exact parent directories are two harness-assigned ids this function does
|
|
117
|
+
* not try to predict; it searches for the leaf filename instead, bounded and
|
|
118
|
+
* best-effort.
|
|
119
|
+
*/
|
|
120
|
+
function readClaudeCodeThreadTitle({ env, existsSyncImpl, readFileSyncImpl, readdirSyncImpl, homedirImpl }) {
|
|
121
|
+
const hostId = env.CLAUDE_CODE_HOST_SESSION_ID?.trim();
|
|
122
|
+
if (!hostId) return null;
|
|
123
|
+
const root = join(homedirImpl(), ...CLAUDE_SESSIONS_DIR_PARTS);
|
|
124
|
+
const found = findFileByName(root, `${hostId}.json`, { existsSyncImpl, readdirSyncImpl });
|
|
125
|
+
if (!found) return null;
|
|
126
|
+
try {
|
|
127
|
+
const parsed = JSON.parse(readFileSyncImpl(found, "utf8"));
|
|
128
|
+
const title = parsed?.title;
|
|
129
|
+
return typeof title === "string" && title.trim() ? title.trim() : null;
|
|
130
|
+
} catch {
|
|
131
|
+
return null;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
/**
|
|
136
|
+
* Codex's own local thread store (a SQLite file under its home directory) —
|
|
137
|
+
* `threads.title` for the id `CODEX_THREAD_ID` names. Read via Node's
|
|
138
|
+
* built-in `node:sqlite`; guarded by dynamic import so an older runtime that
|
|
139
|
+
* lacks it — or any other read failure — degrades to "no title" rather than
|
|
140
|
+
* a crash. Opened read-only: this must never create a WAL file or take a
|
|
141
|
+
* write lock on a store Codex itself may be actively writing to.
|
|
142
|
+
*/
|
|
143
|
+
async function readCodexThreadTitle({ env, existsSyncImpl, homedirImpl }) {
|
|
144
|
+
const threadId = env.CODEX_THREAD_ID?.trim();
|
|
145
|
+
if (!threadId) return null;
|
|
146
|
+
const dbPath = join(homedirImpl(), ...CODEX_STATE_DB_PARTS);
|
|
147
|
+
if (!existsSyncImpl(dbPath)) return null;
|
|
148
|
+
try {
|
|
149
|
+
const { DatabaseSync } = await import("node:sqlite");
|
|
150
|
+
const db = new DatabaseSync(dbPath, { readOnly: true });
|
|
151
|
+
try {
|
|
152
|
+
const row = db.prepare("SELECT title FROM threads WHERE id = ?").get(threadId);
|
|
153
|
+
const title = row?.title;
|
|
154
|
+
return typeof title === "string" && title.trim() ? title.trim() : null;
|
|
155
|
+
} finally {
|
|
156
|
+
db.close();
|
|
157
|
+
}
|
|
158
|
+
} catch {
|
|
159
|
+
return null;
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
/**
|
|
164
|
+
* Best-effort "what is this session working on", sourced from the harness's
|
|
165
|
+
* own thread title when the caller did not pass an explicit `task`. Design
|
|
166
|
+
* D1a (presence-naming-ergonomics): the thread title is the best
|
|
167
|
+
* "what am I working on" string in the system — automatic, human-meaningful,
|
|
168
|
+
* already maintained by the user — and the schema already has the right
|
|
169
|
+
* slot for it (`task` is display-only and already refreshed on every
|
|
170
|
+
* coordination call).
|
|
171
|
+
*
|
|
172
|
+
* Never throws and never blocks meaningfully on a slow or failing read:
|
|
173
|
+
* every source here is either a fast env-var check or a single best-effort
|
|
174
|
+
* file/DB read, and any failure just leaves the explicit `task` (possibly
|
|
175
|
+
* absent) untouched.
|
|
176
|
+
*
|
|
177
|
+
* A thread title is user-authored prose this publishes into a shared org
|
|
178
|
+
* room the instant it is sent — `RUN402_NO_TASK_FROM_TITLE=1` opts out
|
|
179
|
+
* entirely, matching design task 3.2's "never send a title for a room the
|
|
180
|
+
* session did not deliberately join".
|
|
181
|
+
*/
|
|
182
|
+
export async function resolveTaskLabel({
|
|
183
|
+
explicitTask,
|
|
184
|
+
env = process.env,
|
|
185
|
+
existsSyncImpl = existsSync,
|
|
186
|
+
readFileSyncImpl = readFileSync,
|
|
187
|
+
readdirSyncImpl = readdirSync,
|
|
188
|
+
homedirImpl = homedir,
|
|
189
|
+
} = {}) {
|
|
190
|
+
const trimmed = typeof explicitTask === "string" ? explicitTask.trim() : "";
|
|
191
|
+
if (trimmed) return { task: trimmed, source: "explicit" };
|
|
192
|
+
if (isTruthyEnvValue(env[TASK_FROM_TITLE_OPT_OUT_ENV])) return { task: null, source: "opted_out" };
|
|
193
|
+
|
|
194
|
+
const claude = readClaudeCodeThreadTitle({ env, existsSyncImpl, readFileSyncImpl, readdirSyncImpl, homedirImpl });
|
|
195
|
+
if (claude) return { task: claude.slice(0, TASK_MAX_LENGTH), source: "claude_code_thread_title" };
|
|
196
|
+
|
|
197
|
+
const codex = await readCodexThreadTitle({ env, existsSyncImpl, homedirImpl });
|
|
198
|
+
if (codex) return { task: codex.slice(0, TASK_MAX_LENGTH), source: "codex_thread_title" };
|
|
199
|
+
|
|
200
|
+
return { task: null, source: "none" };
|
|
201
|
+
}
|
package/lib/messages.mjs
CHANGED
|
@@ -33,6 +33,7 @@ import {
|
|
|
33
33
|
getRoomState,
|
|
34
34
|
updateRoomState,
|
|
35
35
|
} from "./rooms-context.mjs";
|
|
36
|
+
import { resolveTaskLabel } from "./harness-context.mjs";
|
|
36
37
|
|
|
37
38
|
export const IMPORTANCE = ["normal", "high"];
|
|
38
39
|
|
|
@@ -57,6 +58,10 @@ Notes:
|
|
|
57
58
|
message. --ack asks the recipient to confirm they saw it.
|
|
58
59
|
- Messages are durable. An agent that is not running now reads them when it
|
|
59
60
|
next wakes.
|
|
61
|
+
- send carries this session's identity like \`rooms join\` does: it resumes
|
|
62
|
+
your existing presence (no rename) when one is resolvable, and --task —
|
|
63
|
+
or, if omitted, your harness's own thread title — refreshes what the room
|
|
64
|
+
sees you working on.
|
|
60
65
|
- The room itself — arriving, leaving, seeing who is live — is \`run402 rooms\`.
|
|
61
66
|
`;
|
|
62
67
|
|
|
@@ -112,7 +117,8 @@ async function send(args) {
|
|
|
112
117
|
org: flagValue(a, "--org"), room: flagValue(a, "--room"), project: flagValue(a, "--project"),
|
|
113
118
|
});
|
|
114
119
|
try {
|
|
115
|
-
const
|
|
120
|
+
const { task } = await resolveTaskLabel({ explicitTask: flagValue(a, "--task") });
|
|
121
|
+
const result = await withPresenceRetry(room.orgId, room.roomKey, (presenceId, sessionKey) =>
|
|
116
122
|
getSdk().rooms.sendMessage(room.orgId, room.roomKey, {
|
|
117
123
|
body: positionals[0],
|
|
118
124
|
to: splitNames(flagValue(a, "--to")),
|
|
@@ -122,10 +128,11 @@ async function send(args) {
|
|
|
122
128
|
ackRequired: a.includes("--ack"),
|
|
123
129
|
idempotencyKey: flagValue(a, "--idempotency-key") ?? undefined,
|
|
124
130
|
presenceId: presenceId ?? undefined,
|
|
131
|
+
sessionKey,
|
|
125
132
|
requestedName: flagValue(a, "--name") ?? undefined,
|
|
126
|
-
task:
|
|
133
|
+
task: task ?? undefined,
|
|
127
134
|
}),
|
|
128
|
-
{ name: flagValue(a, "--name"), task
|
|
135
|
+
{ name: flagValue(a, "--name"), task });
|
|
129
136
|
rememberPresence(room.orgId, room.roomKey, result.sender_presence, flagValue(a, "--name"));
|
|
130
137
|
console.log(JSON.stringify(result, null, 2));
|
|
131
138
|
} catch (err) {
|
|
@@ -149,12 +156,13 @@ async function list(args) {
|
|
|
149
156
|
const stored = getRoomState(room.orgId, room.roomKey).cursor;
|
|
150
157
|
const cursor = flagValue(a, "--cursor") ?? (before ? undefined : (typeof stored === "string" ? stored : undefined));
|
|
151
158
|
try {
|
|
152
|
-
const page = await withPresenceRetry(room.orgId, room.roomKey, (presenceId) =>
|
|
159
|
+
const page = await withPresenceRetry(room.orgId, room.roomKey, (presenceId, sessionKey) =>
|
|
153
160
|
getSdk().rooms.listMessages(room.orgId, room.roomKey, {
|
|
154
161
|
...(before ? { order: "desc", before } : cursor ? { cursor } : {}),
|
|
155
162
|
threadId: flagValue(a, "--thread") ?? undefined,
|
|
156
163
|
...(unread ? { addressedTo: "me", unread: true } : {}),
|
|
157
164
|
presenceId: presenceId ?? undefined,
|
|
165
|
+
sessionKey,
|
|
158
166
|
limit: limit != null ? parseIntegerFlag("--limit", limit, { min: 1, max: 200 }) : undefined,
|
|
159
167
|
}));
|
|
160
168
|
// NOTE: an unread/addressed_to=me read needs a resolvable "me"; the retry
|
|
@@ -197,9 +205,10 @@ async function ack(args) {
|
|
|
197
205
|
org: flagValue(a, "--org"), room: flagValue(a, "--room"), project: flagValue(a, "--project"),
|
|
198
206
|
});
|
|
199
207
|
try {
|
|
200
|
-
const result = await withPresenceRetry(room.orgId, room.roomKey, (presenceId) =>
|
|
208
|
+
const result = await withPresenceRetry(room.orgId, room.roomKey, (presenceId, sessionKey) =>
|
|
201
209
|
getSdk().rooms.ackMessage(room.orgId, room.roomKey, positionals[0], {
|
|
202
210
|
presenceId: presenceId ?? undefined,
|
|
211
|
+
sessionKey,
|
|
203
212
|
}));
|
|
204
213
|
console.log(JSON.stringify(result, null, 2));
|
|
205
214
|
} catch (err) {
|
package/lib/rooms-context.mjs
CHANGED
|
@@ -30,6 +30,7 @@ import { getSdk } from "./sdk.mjs";
|
|
|
30
30
|
import { resolveOrg } from "./org-context.mjs";
|
|
31
31
|
import { findBindingKey } from "./wallet-context.mjs";
|
|
32
32
|
import { nextAction } from "./next-actions.mjs";
|
|
33
|
+
import { resolveSessionKey } from "./harness-context.mjs";
|
|
33
34
|
|
|
34
35
|
export const ROOM_ENV = "RUN402_ROOM";
|
|
35
36
|
export const PRESENCE_ENV = "RUN402_PRESENCE_ID";
|
|
@@ -173,34 +174,62 @@ function cachedRequestedName(orgId, roomKey) {
|
|
|
173
174
|
return typeof cached === "string" && cached ? cached : null;
|
|
174
175
|
}
|
|
175
176
|
|
|
177
|
+
/**
|
|
178
|
+
* This process's session identity, resolved once and reused for every
|
|
179
|
+
* coordination call the process makes (see harness-context.mjs — explicit
|
|
180
|
+
* override, then the harness's own session id, then a locally generated and
|
|
181
|
+
* persisted key). Memoized because `resolveSessionKey` touches the
|
|
182
|
+
* filesystem on its slowest path and every caller in one invocation is
|
|
183
|
+
* asking about the same session.
|
|
184
|
+
*/
|
|
185
|
+
let mySessionKeyMemo;
|
|
186
|
+
function mySessionKey() {
|
|
187
|
+
if (mySessionKeyMemo === undefined) mySessionKeyMemo = resolveSessionKey().key;
|
|
188
|
+
return mySessionKeyMemo;
|
|
189
|
+
}
|
|
190
|
+
|
|
176
191
|
/**
|
|
177
192
|
* Register a NEW session presence and make it this checkout's presence.
|
|
178
193
|
* `name` is the name to ask for — honored when free, honestly suffixed when
|
|
179
194
|
* taken (names are never recycled, so a replacement for `Fable` becomes
|
|
180
|
-
* `Fable-2`, and the caller is told).
|
|
195
|
+
* `Fable-2`, and the caller is told). Carries this session's resolved
|
|
196
|
+
* identity, so a session presenting the SAME key it used before RESUMES its
|
|
197
|
+
* existing presence here instead of registering a stranger under a fresh
|
|
198
|
+
* name — the response says `resumed: true` and `name`/`renamed`/`why` are
|
|
199
|
+
* absent, because nothing about naming happened.
|
|
181
200
|
*/
|
|
182
201
|
export async function registerFreshPresence(orgId, roomKey, { name, task } = {}) {
|
|
183
202
|
const requestedName = name ?? cachedRequestedName(orgId, roomKey);
|
|
184
203
|
const registration = await getSdk().rooms.registerPresence(orgId, roomKey, {
|
|
185
204
|
...(requestedName ? { requestedName } : {}),
|
|
186
205
|
...(task ? { task } : {}),
|
|
206
|
+
sessionKey: mySessionKey(),
|
|
187
207
|
});
|
|
188
208
|
rememberPresence(orgId, roomKey, registration, requestedName);
|
|
189
209
|
return registration;
|
|
190
210
|
}
|
|
191
211
|
|
|
192
212
|
/**
|
|
193
|
-
* Run a room call carrying this session's presence.
|
|
194
|
-
*
|
|
195
|
-
*
|
|
196
|
-
*
|
|
197
|
-
*
|
|
198
|
-
*
|
|
213
|
+
* Run a room call carrying this session's presence. Every call carries this
|
|
214
|
+
* session's resolved identity ALONGSIDE any cached `presence_id` — the
|
|
215
|
+
* gateway tries the session identity first, so a presence whose TTL lapsed
|
|
216
|
+
* between calls REVIVES under its own name via that path rather than 410ing;
|
|
217
|
+
* the retry below is now reached only when no resolvable session identity
|
|
218
|
+
* exists (a harness this couldn't identify, RUN402_PRESENCE_ID pinned to a
|
|
219
|
+
* stale id) or the presence aged past the 90-day retention sweep, not on an
|
|
220
|
+
* ordinary hour of silence. On PRESENCE_EXPIRED (410) drop the cache,
|
|
221
|
+
* REGISTER a replacement, and retry ONCE with it. The registration is
|
|
222
|
+
* explicit on purpose: a bare call cannot mean "me" from the credential
|
|
223
|
+
* alone, because the server cannot tell one credential's concurrent sessions
|
|
224
|
+
* apart — it would either guess (adopting a sibling session's presence,
|
|
225
|
+
* run402-private#663) or refuse. Asking — by session identity when we have
|
|
226
|
+
* one, by explicit (re-)registration when we don't — is unambiguous.
|
|
199
227
|
*/
|
|
200
228
|
export async function withPresenceRetry(orgId, roomKey, call, { name, task } = {}) {
|
|
201
229
|
const presenceId = cachedPresenceId(orgId, roomKey);
|
|
230
|
+
const sessionKey = mySessionKey();
|
|
202
231
|
try {
|
|
203
|
-
return await call(presenceId);
|
|
232
|
+
return await call(presenceId, sessionKey);
|
|
204
233
|
} catch (err) {
|
|
205
234
|
const code = err?.body?.code ?? err?.code;
|
|
206
235
|
if (code === "PRESENCE_EXPIRED" && presenceId) {
|
|
@@ -209,7 +238,7 @@ export async function withPresenceRetry(orgId, roomKey, call, { name, task } = {
|
|
|
209
238
|
if (replacement?.renamed) {
|
|
210
239
|
console.error(`Your presence expired; you are now ${replacement.name}.`);
|
|
211
240
|
}
|
|
212
|
-
return call(replacement?.presence_id ?? null);
|
|
241
|
+
return call(replacement?.presence_id ?? null, sessionKey);
|
|
213
242
|
}
|
|
214
243
|
throw err;
|
|
215
244
|
}
|
package/lib/rooms.mjs
CHANGED
|
@@ -34,6 +34,7 @@ import {
|
|
|
34
34
|
getRoomState,
|
|
35
35
|
updateRoomState,
|
|
36
36
|
} from "./rooms-context.mjs";
|
|
37
|
+
import { resolveTaskLabel } from "./harness-context.mjs";
|
|
37
38
|
|
|
38
39
|
export const IMPORTANCE = ["normal", "high"];
|
|
39
40
|
|
|
@@ -53,6 +54,20 @@ Addressing:
|
|
|
53
54
|
Notes:
|
|
54
55
|
- join registers this session's presence and returns who else is live, what
|
|
55
56
|
they are working on, and what they have claimed — the arrive-and-look call.
|
|
57
|
+
- A quiet session's presence now resumes automatically across an idle gap
|
|
58
|
+
or a lost local cache: join derives a stable session identity from your
|
|
59
|
+
harness (Claude Code's own session id, Codex's own thread id, or a
|
|
60
|
+
generated key persisted in ./.run402/) and the gateway revives the same
|
|
61
|
+
presence under the same name no matter how long it was silent — the ~1h
|
|
62
|
+
TTL only decays liveness, never that binding. Override with
|
|
63
|
+
RUN402_SESSION_KEY. Two genuinely concurrent sessions never resume each
|
|
64
|
+
other's presence.
|
|
65
|
+
- --task is worth passing even without a name collision: on a taken name
|
|
66
|
+
it now qualifies your name from your task instead of a bare counter
|
|
67
|
+
(Opus taken + --task "mpp triage" -> Opus-mpp-triage, not Opus-2), and
|
|
68
|
+
the output says why. Omit --task and join best-effort fills it from your
|
|
69
|
+
harness's own thread title (Claude Code or Codex) — set
|
|
70
|
+
RUN402_NO_TASK_FROM_TITLE=1 to opt out.
|
|
56
71
|
- Presence expires after ~1h of silence. Releasing it early (\`rooms leave\`),
|
|
57
72
|
enumerating reachable rooms, and inspecting one are not here yet — each
|
|
58
73
|
needs a gateway route that does not exist. Filed as follow-ups.
|
|
@@ -96,7 +111,8 @@ async function who(args) {
|
|
|
96
111
|
org: flagValue(a, "--org"), room: flagValue(a, "--room"), project: flagValue(a, "--project"),
|
|
97
112
|
});
|
|
98
113
|
try {
|
|
99
|
-
const
|
|
114
|
+
const { task } = await resolveTaskLabel({ explicitTask: flagValue(a, "--task") });
|
|
115
|
+
const me = await ensurePresence(room, { name: flagValue(a, "--name"), task });
|
|
100
116
|
const page = await getSdk().rooms.listPresences(room.orgId, room.roomKey, {
|
|
101
117
|
includeExpired: a.includes("--all"),
|
|
102
118
|
});
|
|
@@ -108,8 +124,10 @@ async function who(args) {
|
|
|
108
124
|
you: me,
|
|
109
125
|
...page,
|
|
110
126
|
}, null, 2));
|
|
111
|
-
if (me.registered && me.
|
|
112
|
-
console.error(`
|
|
127
|
+
if (me.registered && me.resumed) {
|
|
128
|
+
console.error(`Welcome back — resumed as ${me.name}.`);
|
|
129
|
+
} else if (me.registered && me.renamed) {
|
|
130
|
+
console.error(me.why ?? `You are ${me.name} — ${me.requested_name} was taken.`);
|
|
113
131
|
}
|
|
114
132
|
} catch (err) {
|
|
115
133
|
reportSdkError(err);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "run402",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.34.0",
|
|
4
4
|
"description": "CLI for Run402 — full-stack backend infrastructure for AI agents: Postgres, auth, storage, serverless functions and atomic deploys. Paid with x402/MPP. Includes $0.03 image generation.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rooms.d.ts","sourceRoot":"","sources":["../../src/namespaces/rooms.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C,OAAO,KAAK,EACV,qBAAqB,EACrB,gBAAgB,EAChB,oBAAoB,EACpB,oBAAoB,EACpB,qBAAqB,EACrB,uBAAuB,EACvB,oBAAoB,EACpB,uBAAuB,EACvB,aAAa,EACb,aAAa,EACb,sBAAsB,EACtB,WAAW,EACX,eAAe,EACf,YAAY,EACZ,gBAAgB,EAChB,oBAAoB,EACpB,eAAe,EAChB,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"rooms.d.ts","sourceRoot":"","sources":["../../src/namespaces/rooms.ts"],"names":[],"mappings":"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"}
|
|
@@ -57,6 +57,8 @@ function messagesQuery(opts = {}) {
|
|
|
57
57
|
params.set("unread", String(opts.unread));
|
|
58
58
|
if (opts.presenceId !== undefined)
|
|
59
59
|
params.set("presence_id", opts.presenceId);
|
|
60
|
+
if (opts.sessionKey !== undefined)
|
|
61
|
+
params.set("session_key", opts.sessionKey);
|
|
60
62
|
if (opts.limit !== undefined)
|
|
61
63
|
params.set("limit", String(opts.limit));
|
|
62
64
|
const qs = params.toString();
|
|
@@ -100,6 +102,8 @@ export class Rooms {
|
|
|
100
102
|
body.program = opts.program;
|
|
101
103
|
if (opts.model !== undefined)
|
|
102
104
|
body.model = opts.model;
|
|
105
|
+
if (opts.sessionKey !== undefined)
|
|
106
|
+
body.session_key = opts.sessionKey;
|
|
103
107
|
return this.client.request(`${roomPath(orgId, roomKey)}/presences`, {
|
|
104
108
|
method: "POST",
|
|
105
109
|
body,
|
|
@@ -178,6 +182,8 @@ export class Rooms {
|
|
|
178
182
|
body.requested_name = input.requestedName;
|
|
179
183
|
if (input.task !== undefined)
|
|
180
184
|
body.task = input.task;
|
|
185
|
+
if (input.sessionKey !== undefined)
|
|
186
|
+
body.session_key = input.sessionKey;
|
|
181
187
|
return this.client.request(`${roomPath(orgId, roomKey)}/messages`, {
|
|
182
188
|
method: "POST",
|
|
183
189
|
body,
|
|
@@ -237,6 +243,8 @@ export class Rooms {
|
|
|
237
243
|
const body = {};
|
|
238
244
|
if (opts.presenceId !== undefined)
|
|
239
245
|
body.presence_id = opts.presenceId;
|
|
246
|
+
if (opts.sessionKey !== undefined)
|
|
247
|
+
body.session_key = opts.sessionKey;
|
|
240
248
|
return this.client.request(`${roomPath(orgId, roomKey)}/messages/${encodeURIComponent(messageId)}/ack`, { method: "POST", body, context: "acknowledging room message" });
|
|
241
249
|
}
|
|
242
250
|
/**
|
|
@@ -268,6 +276,8 @@ export class Rooms {
|
|
|
268
276
|
body.note = input.note;
|
|
269
277
|
if (input.presenceId !== undefined)
|
|
270
278
|
body.presence_id = input.presenceId;
|
|
279
|
+
if (input.sessionKey !== undefined)
|
|
280
|
+
body.session_key = input.sessionKey;
|
|
271
281
|
return this.client.request(`${roomPath(orgId, roomKey)}/claims`, {
|
|
272
282
|
method: "POST",
|
|
273
283
|
body,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rooms.js","sourceRoot":"","sources":["../../src/namespaces/rooms.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"rooms.js","sourceRoot":"","sources":["../../src/namespaces/rooms.ts"],"names":[],"mappings":"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"}
|
|
@@ -59,22 +59,32 @@ export interface RoomPresence {
|
|
|
59
59
|
* name-resolution report and the platform's suggested next call.
|
|
60
60
|
*/
|
|
61
61
|
export interface PresenceRegistration extends RoomPresence {
|
|
62
|
-
/**
|
|
62
|
+
/**
|
|
63
|
+
* True when `sessionKey` matched an existing live-or-revivable presence:
|
|
64
|
+
* this call resumed it rather than creating a new one. A resumption keeps
|
|
65
|
+
* its existing `name` — `requested_name`/`renamed`/`why` are never present
|
|
66
|
+
* alongside `resumed: true`, because nothing about naming happened.
|
|
67
|
+
*/
|
|
68
|
+
resumed?: boolean;
|
|
69
|
+
/** Echo of the name you asked for. Present only when `requestedName` was sent AND this was not a resumption. */
|
|
63
70
|
requested_name?: string;
|
|
64
71
|
/**
|
|
65
72
|
* True when the room's forever-unique name index suffixed your requested
|
|
66
73
|
* name (`Opus` → `Opus-2`); `name` carries the resolved result.
|
|
67
74
|
*/
|
|
68
75
|
renamed?: boolean;
|
|
76
|
+
/** Plain-language reason for the naming outcome, present only when `renamed` is true. */
|
|
77
|
+
why?: string;
|
|
69
78
|
next_actions?: RoomNextAction[];
|
|
70
79
|
}
|
|
71
|
-
/** Options for {@link Rooms.registerPresence}.
|
|
80
|
+
/** Options for {@link Rooms.registerPresence}. */
|
|
72
81
|
export interface RegisterPresenceOptions {
|
|
73
82
|
/**
|
|
74
83
|
* Self-chosen name — honored verbatim when free, else deterministically
|
|
75
84
|
* suffixed against the room's forever-unique index (reported via
|
|
76
85
|
* `renamed: true`, never an error). Omit for a server-assigned memorable
|
|
77
|
-
* name.
|
|
86
|
+
* name. Ignored when `sessionKey` resumes an existing presence — an
|
|
87
|
+
* existing presence keeps its existing name, full stop.
|
|
78
88
|
*/
|
|
79
89
|
requestedName?: string;
|
|
80
90
|
/** What you're working on — shown to the other presences. */
|
|
@@ -83,6 +93,16 @@ export interface RegisterPresenceOptions {
|
|
|
83
93
|
program?: string;
|
|
84
94
|
/** Model label, e.g. `fable-5`. */
|
|
85
95
|
model?: string;
|
|
96
|
+
/**
|
|
97
|
+
* Opaque, client-resolved session identity (1-128 chars) — never a
|
|
98
|
+
* credential, never guessed server-side. Presenting the SAME key later
|
|
99
|
+
* resumes this exact presence, restoring its liveness and refreshing
|
|
100
|
+
* `task`/`program`/`model`, no matter how long it was silent: the TTL
|
|
101
|
+
* decays liveness only, never this binding. Omit it and the presence is
|
|
102
|
+
* reachable only by its returned `presence_id`, exactly as before this
|
|
103
|
+
* field existed.
|
|
104
|
+
*/
|
|
105
|
+
sessionKey?: string;
|
|
86
106
|
}
|
|
87
107
|
/** Options for {@link Rooms.listPresences}. */
|
|
88
108
|
export interface ListPresencesOptions {
|
|
@@ -159,6 +179,8 @@ export interface SendRoomMessageInput {
|
|
|
159
179
|
requestedName?: string;
|
|
160
180
|
/** Task metadata for the implicit presence-creation case. */
|
|
161
181
|
task?: string;
|
|
182
|
+
/** Resume as this session (see {@link RegisterPresenceOptions.sessionKey}) instead of registering a fresh presence when no `presenceId` is cached. */
|
|
183
|
+
sessionKey?: string;
|
|
162
184
|
}
|
|
163
185
|
/**
|
|
164
186
|
* Response of {@link Rooms.sendMessage} — the stored message plus send-time
|
|
@@ -194,6 +216,8 @@ export interface ListRoomMessagesOptions {
|
|
|
194
216
|
unread?: boolean;
|
|
195
217
|
/** Read as this presence (`prs_…`) when your credential holds several. */
|
|
196
218
|
presenceId?: string;
|
|
219
|
+
/** Resolve "you" via this session (see {@link RegisterPresenceOptions.sessionKey}) instead of `presenceId`. */
|
|
220
|
+
sessionKey?: string;
|
|
197
221
|
/** Page size (server default 50, max 200). */
|
|
198
222
|
limit?: number;
|
|
199
223
|
}
|
|
@@ -220,6 +244,8 @@ export interface RoomMessagePage {
|
|
|
220
244
|
export interface AckRoomMessageOptions {
|
|
221
245
|
/** Ack as this presence (`prs_…`) when your credential holds several. */
|
|
222
246
|
presenceId?: string;
|
|
247
|
+
/** Resolve "you" via this session (see {@link RegisterPresenceOptions.sessionKey}) instead of `presenceId`. */
|
|
248
|
+
sessionKey?: string;
|
|
223
249
|
}
|
|
224
250
|
/** Response of {@link Rooms.ackMessage}. Idempotent — a replay reports the ORIGINAL `acked_at`. */
|
|
225
251
|
export interface RoomAckResult {
|
|
@@ -273,6 +299,8 @@ export interface CreateRoomClaimInput {
|
|
|
273
299
|
note?: string;
|
|
274
300
|
/** Claim as this presence (`prs_…`). Omitting it REGISTERS a fresh session presence — it never adopts one. */
|
|
275
301
|
presenceId?: string;
|
|
302
|
+
/** Resume as this session (see {@link RegisterPresenceOptions.sessionKey}) instead of registering a fresh presence when no `presenceId` is cached. */
|
|
303
|
+
sessionKey?: string;
|
|
276
304
|
}
|
|
277
305
|
/** Options for {@link Rooms.listClaims}. */
|
|
278
306
|
export interface ListRoomClaimsOptions {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rooms.types.d.ts","sourceRoot":"","sources":["../../src/namespaces/rooms.types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,iFAAiF;AACjF,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,8CAA8C;AAC9C,MAAM,WAAW,YAAY;IAC3B,oCAAoC;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,gHAAgH;IAChH,IAAI,EAAE,MAAM,CAAC;IACb,wDAAwD;IACxD,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,wEAAwE;IACxE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,yCAAyC;IACzC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,+GAA+G;IAC/G,KAAK,EAAE,MAAM,CAAC;IACd,0DAA0D;IAC1D,WAAW,EAAE,MAAM,CAAC;IACpB,0EAA0E;IAC1E,UAAU,EAAE,MAAM,CAAC;IACnB,qEAAqE;IACrE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;;GAGG;AACH,MAAM,WAAW,oBAAqB,SAAQ,YAAY;IACxD,
|
|
1
|
+
{"version":3,"file":"rooms.types.d.ts","sourceRoot":"","sources":["../../src/namespaces/rooms.types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,iFAAiF;AACjF,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,8CAA8C;AAC9C,MAAM,WAAW,YAAY;IAC3B,oCAAoC;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,gHAAgH;IAChH,IAAI,EAAE,MAAM,CAAC;IACb,wDAAwD;IACxD,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,wEAAwE;IACxE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,yCAAyC;IACzC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,+GAA+G;IAC/G,KAAK,EAAE,MAAM,CAAC;IACd,0DAA0D;IAC1D,WAAW,EAAE,MAAM,CAAC;IACpB,0EAA0E;IAC1E,UAAU,EAAE,MAAM,CAAC;IACnB,qEAAqE;IACrE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;;GAGG;AACH,MAAM,WAAW,oBAAqB,SAAQ,YAAY;IACxD;;;;;OAKG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,gHAAgH;IAChH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,yFAAyF;IACzF,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,cAAc,EAAE,CAAC;CACjC;AAED,kDAAkD;AAClD,MAAM,WAAW,uBAAuB;IACtC;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,6DAA6D;IAC7D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iDAAiD;IACjD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mCAAmC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;;;;OAQG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,+CAA+C;AAC/C,MAAM,WAAW,oBAAoB;IACnC,+DAA+D;IAC/D,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,yBAAyB;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,+CAA+C;AAC/C,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,YAAY,EAAE,CAAC;IAC1B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,yDAAyD;AACzD,MAAM,WAAW,oBAAoB;IACnC,+BAA+B;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,8DAA8D;IAC9D,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAClB,YAAY,EAAE,OAAO,CAAC;IACtB,0CAA0C;IAC1C,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;;;;GAKG;AACH,MAAM,WAAW,WAAW;IAC1B,mCAAmC;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,8FAA8F;IAC9F,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,4BAA4B;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,mCAAmC;IACnC,YAAY,EAAE,MAAM,CAAC;IACrB,8DAA8D;IAC9D,cAAc,EAAE,OAAO,CAAC;IACxB,mDAAmD;IACnD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,EAAE,QAAQ,GAAG,MAAM,CAAC;IAC9B,oDAAoD;IACpD,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,oBAAoB,EAAE,CAAC;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,2CAA2C;AAC3C,MAAM,WAAW,oBAAoB;IACnC,8EAA8E;IAC9E,IAAI,EAAE,MAAM,CAAC;IACb,iFAAiF;IACjF,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC;IACd,uCAAuC;IACvC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC;IACd,4BAA4B;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC;IAC/B,oEAAoE;IACpE,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,sHAAsH;IACtH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yGAAyG;IACzG,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,6DAA6D;IAC7D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,sJAAsJ;IACtJ,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;GAIG;AACH,MAAM,WAAW,eAAgB,SAAQ,WAAW;IAClD,8GAA8G;IAC9G,YAAY,EAAE,OAAO,CAAC;IACtB,0DAA0D;IAC1D,eAAe,EAAE,YAAY,CAAC;IAC9B,yEAAyE;IACzE,cAAc,EAAE,YAAY,EAAE,CAAC;IAC/B,YAAY,EAAE,cAAc,EAAE,CAAC;CAChC;AAED,8CAA8C;AAC9C,MAAM,WAAW,uBAAuB;IACtC;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,+EAA+E;IAC/E,KAAK,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IACvB,uFAAuF;IACvF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8BAA8B;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kFAAkF;IAClF,WAAW,CAAC,EAAE,IAAI,CAAC;IACnB,mFAAmF;IACnF,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,0EAA0E;IAC1E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,+GAA+G;IAC/G,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,8CAA8C;IAC9C,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,gEAAgE;AAChE,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,gHAAgH;IAChH,MAAM,EAAE,MAAM,CAAC;IACf,uEAAuE;IACvE,QAAQ,EAAE,OAAO,CAAC;IAClB;;;;OAIG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,6FAA6F;IAC7F,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iGAAiG;IACjG,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,4CAA4C;AAC5C,MAAM,WAAW,qBAAqB;IACpC,yEAAyE;IACzE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,+GAA+G;IAC/G,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,mGAAmG;AACnG,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,oFAAoF;IACpF,aAAa,EAAE,OAAO,CAAC;IACvB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;;GAGG;AACH,MAAM,WAAW,SAAS;IACxB,iCAAiC;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,WAAW,GAAG,QAAQ,CAAC;IAC7B,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,8BAA8B;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,+CAA+C;IAC/C,UAAU,EAAE,MAAM,CAAC;IACnB,qGAAqG;IACrG,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAiB,SAAQ,SAAS;IACjD,2GAA2G;IAC3G,SAAS,EAAE,SAAS,EAAE,CAAC;CACxB;AAED,2CAA2C;AAC3C,MAAM,WAAW,oBAAoB;IACnC,8FAA8F;IAC9F,QAAQ,EAAE,MAAM,CAAC;IACjB,6GAA6G;IAC7G,IAAI,EAAE,WAAW,GAAG,QAAQ,CAAC;IAC7B,kEAAkE;IAClE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iDAAiD;IACjD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,8GAA8G;IAC9G,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,sJAAsJ;IACtJ,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,4CAA4C;AAC5C,MAAM,WAAW,qBAAqB;IACpC,uEAAuE;IACvE,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,4CAA4C;AAC5C,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,+FAA+F;AAC/F,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,mEAAmE;IACnE,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,qDAAqD;IACrD,gBAAgB,EAAE,OAAO,CAAC;IAC1B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB"}
|