@agentdeck/shared 0.2.0 → 0.2.3
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/adapter.d.ts +3 -1
- package/dist/adapter.d.ts.map +1 -1
- package/dist/adapter.js +24 -0
- package/dist/adapter.js.map +1 -1
- package/dist/command-builders.d.ts +7 -2
- package/dist/command-builders.d.ts.map +1 -1
- package/dist/command-builders.js +17 -2
- package/dist/command-builders.js.map +1 -1
- package/dist/connection-status.d.ts +42 -0
- package/dist/connection-status.d.ts.map +1 -0
- package/dist/connection-status.js +52 -0
- package/dist/connection-status.js.map +1 -0
- package/dist/d200h-layout.d.ts +131 -0
- package/dist/d200h-layout.d.ts.map +1 -0
- package/dist/d200h-layout.js +627 -0
- package/dist/d200h-layout.js.map +1 -0
- package/dist/design-tokens.d.ts +259 -0
- package/dist/design-tokens.d.ts.map +1 -0
- package/dist/design-tokens.js +156 -0
- package/dist/design-tokens.js.map +1 -0
- package/dist/eval-schema.d.ts +26 -2
- package/dist/eval-schema.d.ts.map +1 -1
- package/dist/eval-schema.js.map +1 -1
- package/dist/format-utils.d.ts +25 -0
- package/dist/format-utils.d.ts.map +1 -1
- package/dist/format-utils.js +45 -0
- package/dist/format-utils.js.map +1 -1
- package/dist/gateway-protocol.d.ts +1 -1
- package/dist/gateway-protocol.js +1 -1
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -1
- package/dist/llm-settings.d.ts +3 -3
- package/dist/llm-settings.d.ts.map +1 -1
- package/dist/llm-settings.js +3 -3
- package/dist/llm-settings.js.map +1 -1
- package/dist/net-utils.d.ts +2 -1
- package/dist/net-utils.d.ts.map +1 -1
- package/dist/net-utils.js +100 -3
- package/dist/net-utils.js.map +1 -1
- package/dist/pricing.d.ts +45 -0
- package/dist/pricing.d.ts.map +1 -0
- package/dist/pricing.js +93 -0
- package/dist/pricing.js.map +1 -0
- package/dist/protocol.d.ts +175 -5
- package/dist/protocol.d.ts.map +1 -1
- package/dist/protocol.js +11 -1
- package/dist/protocol.js.map +1 -1
- package/dist/sample.d.ts +152 -0
- package/dist/sample.d.ts.map +1 -0
- package/dist/sample.js +22 -0
- package/dist/sample.js.map +1 -0
- package/dist/session-utils.d.ts +82 -2
- package/dist/session-utils.d.ts.map +1 -1
- package/dist/session-utils.js +205 -10
- package/dist/session-utils.js.map +1 -1
- package/dist/state-colors.d.ts.map +1 -1
- package/dist/state-colors.js +2 -0
- package/dist/state-colors.js.map +1 -1
- package/dist/states.d.ts +1 -0
- package/dist/states.d.ts.map +1 -1
- package/dist/states.js +6 -1
- package/dist/states.js.map +1 -1
- package/dist/svg-renderers/agent-logos.d.ts +17 -5
- package/dist/svg-renderers/agent-logos.d.ts.map +1 -1
- package/dist/svg-renderers/agent-logos.js +177 -39
- package/dist/svg-renderers/agent-logos.js.map +1 -1
- package/dist/svg-renderers/session-slot-renderer.d.ts +59 -6
- package/dist/svg-renderers/session-slot-renderer.d.ts.map +1 -1
- package/dist/svg-renderers/session-slot-renderer.js +398 -209
- package/dist/svg-renderers/session-slot-renderer.js.map +1 -1
- package/dist/svg-renderers/text-utils.d.ts +14 -0
- package/dist/svg-renderers/text-utils.d.ts.map +1 -1
- package/dist/svg-renderers/text-utils.js +34 -0
- package/dist/svg-renderers/text-utils.js.map +1 -1
- package/dist/telemetry-envelope.d.ts +1 -1
- package/dist/telemetry-envelope.d.ts.map +1 -1
- package/dist/timeline-icons.d.ts +70 -0
- package/dist/timeline-icons.d.ts.map +1 -0
- package/dist/timeline-icons.js +161 -0
- package/dist/timeline-icons.js.map +1 -0
- package/dist/timeline-label.d.ts +38 -0
- package/dist/timeline-label.d.ts.map +1 -0
- package/dist/timeline-label.js +95 -0
- package/dist/timeline-label.js.map +1 -0
- package/dist/timeline-markdown.d.ts +80 -0
- package/dist/timeline-markdown.d.ts.map +1 -0
- package/dist/timeline-markdown.js +221 -0
- package/dist/timeline-markdown.js.map +1 -0
- package/dist/timeline-summarizer.d.ts +24 -0
- package/dist/timeline-summarizer.d.ts.map +1 -1
- package/dist/timeline-summarizer.js +55 -13
- package/dist/timeline-summarizer.js.map +1 -1
- package/dist/timeline.d.ts +72 -2
- package/dist/timeline.d.ts.map +1 -1
- package/dist/timeline.js +187 -10
- package/dist/timeline.js.map +1 -1
- package/package.json +1 -1
package/dist/session-utils.d.ts
CHANGED
|
@@ -11,13 +11,44 @@ export type SessionTier = 'attention' | 'active' | 'idle';
|
|
|
11
11
|
export declare function sessionTier(state: string | undefined): SessionTier;
|
|
12
12
|
/**
|
|
13
13
|
* Rank agent types for stable ordering.
|
|
14
|
-
* openclaw=0 (always first), claude-code=1, codex-cli=2,
|
|
14
|
+
* openclaw=0 (always first), claude-code=1, codex-cli=2, codex-app=3, opencode=4, antigravity=5, others=6.
|
|
15
15
|
*/
|
|
16
16
|
export declare function agentTypeRank(agentType: string | undefined): number;
|
|
17
|
+
export declare function naturalLabelCompare(a: string | undefined, b: string | undefined): number;
|
|
18
|
+
export interface GatewayVisibilityFlags {
|
|
19
|
+
/** TCP port 18789 reachable — a topology hint only, NOT proof commands route. */
|
|
20
|
+
gatewayAvailable?: boolean;
|
|
21
|
+
/** Gateway WS handshake + auth succeeded — proof commands can route. */
|
|
22
|
+
gatewayConnected?: boolean;
|
|
23
|
+
/** `openclaw doctor`/health reports an error. */
|
|
24
|
+
gatewayHasError?: boolean;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* SSOT: the daemon injects the virtual `openclaw` session iff this holds.
|
|
28
|
+
*
|
|
29
|
+
* "Active" = authenticated / can-route = the Gateway WS handshake+auth
|
|
30
|
+
* succeeded (`gatewayConnected`). Reachability (`gatewayAvailable`) and health
|
|
31
|
+
* (`gatewayHasError`) are topology/status hints only and MUST NOT materialize a
|
|
32
|
+
* session — surfacing them as a session is what made OpenClaw "stick" on
|
|
33
|
+
* devices after it was effectively off.
|
|
34
|
+
*
|
|
35
|
+
* Hand-mirrored in Swift `DashboardDataRules.isOpenClawSessionActive`
|
|
36
|
+
* (apple/AgentDeck/Model/Protocol.swift) and Kotlin `isOpenClawSessionActive`
|
|
37
|
+
* (android/.../ui/eink/EinkFormatUtils.kt) — keep all three in lockstep.
|
|
38
|
+
*/
|
|
39
|
+
export declare function isOpenClawSessionActive(flags: GatewayVisibilityFlags): boolean;
|
|
40
|
+
/**
|
|
41
|
+
* Consumer SSOT: render OpenClaw iff the daemon actually emitted the session.
|
|
42
|
+
* Consumers must NOT re-derive OpenClaw visibility from raw gateway flags;
|
|
43
|
+
* the daemon source is the single authority. Hand-mirrored in Swift/Kotlin.
|
|
44
|
+
*/
|
|
45
|
+
export declare function hasOpenClawSession<T extends {
|
|
46
|
+
agentType?: string;
|
|
47
|
+
}>(sessions: readonly T[]): boolean;
|
|
17
48
|
/**
|
|
18
49
|
* Sort sessions with stable ordering that does NOT jump on state changes.
|
|
19
50
|
*
|
|
20
|
-
* Order: agentType (openclaw first → claude-code → codex → opencode)
|
|
51
|
+
* Order: agentType (openclaw first → claude-code → codex → opencode → antigravity)
|
|
21
52
|
* → projectName alphabetically
|
|
22
53
|
* → startedAt ascending (oldest first) for stability
|
|
23
54
|
* → id as final tiebreaker
|
|
@@ -31,6 +62,23 @@ export declare function sortSessions<T extends {
|
|
|
31
62
|
startedAt?: string;
|
|
32
63
|
id?: string;
|
|
33
64
|
}>(sessions: T[]): T[];
|
|
65
|
+
export interface FoldableSession {
|
|
66
|
+
id: string;
|
|
67
|
+
projectName?: string;
|
|
68
|
+
agentType?: string;
|
|
69
|
+
state?: string;
|
|
70
|
+
startedAt?: string;
|
|
71
|
+
currentTool?: string;
|
|
72
|
+
groupSize?: number;
|
|
73
|
+
foldedSessionIds?: string[];
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Collapse Codex companion-task rows for the same project into one display
|
|
77
|
+
* session. Raw rows remain authoritative inside the daemon; every user-facing
|
|
78
|
+
* surface should count this folded shape so completed one-turn Codex threads do
|
|
79
|
+
* not look like simultaneously running sessions.
|
|
80
|
+
*/
|
|
81
|
+
export declare function foldCodexSessionsForDisplay<T extends FoldableSession>(sessions: T[]): T[];
|
|
34
82
|
export interface SessionDisplayInfo {
|
|
35
83
|
/** Original session (unmodified) */
|
|
36
84
|
session: {
|
|
@@ -59,4 +107,36 @@ export declare function assignDisplayNames<T extends {
|
|
|
59
107
|
}>(sessions: T[]): (SessionDisplayInfo & {
|
|
60
108
|
session: T;
|
|
61
109
|
})[];
|
|
110
|
+
/**
|
|
111
|
+
* Normalize a project name for grouping: strip any path to the basename and
|
|
112
|
+
* drop a trailing " #N" duplicate suffix so "Foo #1" / "Foo #2" compare equal.
|
|
113
|
+
* Mirrors office.cpp `normProject`.
|
|
114
|
+
*/
|
|
115
|
+
export declare function normalizeProjectForGrouping(project: string | undefined): string;
|
|
116
|
+
/**
|
|
117
|
+
* When two normalized project names belong to the same work group, return the
|
|
118
|
+
* shared group key (the common stem); otherwise null. Mirrors office.cpp
|
|
119
|
+
* `sameProjectGroup`:
|
|
120
|
+
* - exact (case-insensitive) match → group
|
|
121
|
+
* - one extends the other at a delimiter ("foo-bar" + "foo-bar-1") or they
|
|
122
|
+
* diverge after a shared delimiter-aligned stem ("…-broken-a" + "…-broken-b")
|
|
123
|
+
* - conservative: only long multi-token stems fuse (stem ≥ 14 chars with
|
|
124
|
+
* ≥ 2 delimiters on both sides), so short siblings like "agentdeck-ios" /
|
|
125
|
+
* "agentdeck-android" stay separate.
|
|
126
|
+
*/
|
|
127
|
+
export declare function projectGroupKey(a: string, b: string): string | null;
|
|
128
|
+
export interface ProjectGroup<T> {
|
|
129
|
+
/** Group label — the shared stem, or the (normalized) project name for singletons. */
|
|
130
|
+
key: string;
|
|
131
|
+
/** True when ≥2 members fused (render a group header); singletons render flat. */
|
|
132
|
+
grouped: boolean;
|
|
133
|
+
members: T[];
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Cluster an ordered session list into project groups, preserving the input
|
|
137
|
+
* order (first member's position anchors the group; members keep relative
|
|
138
|
+
* order). Greedy pairwise fusion with a growing group key, exactly like the
|
|
139
|
+
* office.cpp huddle builder.
|
|
140
|
+
*/
|
|
141
|
+
export declare function groupSessionsByProject<T>(items: readonly T[], projectOf: (item: T) => string | undefined): ProjectGroup<T>[];
|
|
62
142
|
//# sourceMappingURL=session-utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-utils.d.ts","sourceRoot":"","sources":["../src/session-utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH;;;GAGG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAU3D;AAID,MAAM,MAAM,WAAW,GAAG,WAAW,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE1D,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,WAAW,CAWlE;AAID;;;GAGG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"session-utils.d.ts","sourceRoot":"","sources":["../src/session-utils.ts"],"names":[],"mappings":"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"}
|
package/dist/session-utils.js
CHANGED
|
@@ -33,22 +33,51 @@ export function sessionTier(state) {
|
|
|
33
33
|
// ===== Agent Type Ranking (stable ordering by agent kind) =====
|
|
34
34
|
/**
|
|
35
35
|
* Rank agent types for stable ordering.
|
|
36
|
-
* openclaw=0 (always first), claude-code=1, codex-cli=2,
|
|
36
|
+
* openclaw=0 (always first), claude-code=1, codex-cli=2, codex-app=3, opencode=4, antigravity=5, others=6.
|
|
37
37
|
*/
|
|
38
38
|
export function agentTypeRank(agentType) {
|
|
39
39
|
switch (agentType) {
|
|
40
40
|
case 'openclaw': return 0;
|
|
41
41
|
case 'claude-code': return 1;
|
|
42
42
|
case 'codex-cli': return 2;
|
|
43
|
-
case '
|
|
44
|
-
|
|
43
|
+
case 'codex-app': return 3;
|
|
44
|
+
case 'opencode': return 4;
|
|
45
|
+
case 'antigravity': return 5;
|
|
46
|
+
default: return 6;
|
|
45
47
|
}
|
|
46
48
|
}
|
|
49
|
+
export function naturalLabelCompare(a, b) {
|
|
50
|
+
return (a || '').localeCompare(b || '', undefined, { numeric: true, sensitivity: 'base' });
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* SSOT: the daemon injects the virtual `openclaw` session iff this holds.
|
|
54
|
+
*
|
|
55
|
+
* "Active" = authenticated / can-route = the Gateway WS handshake+auth
|
|
56
|
+
* succeeded (`gatewayConnected`). Reachability (`gatewayAvailable`) and health
|
|
57
|
+
* (`gatewayHasError`) are topology/status hints only and MUST NOT materialize a
|
|
58
|
+
* session — surfacing them as a session is what made OpenClaw "stick" on
|
|
59
|
+
* devices after it was effectively off.
|
|
60
|
+
*
|
|
61
|
+
* Hand-mirrored in Swift `DashboardDataRules.isOpenClawSessionActive`
|
|
62
|
+
* (apple/AgentDeck/Model/Protocol.swift) and Kotlin `isOpenClawSessionActive`
|
|
63
|
+
* (android/.../ui/eink/EinkFormatUtils.kt) — keep all three in lockstep.
|
|
64
|
+
*/
|
|
65
|
+
export function isOpenClawSessionActive(flags) {
|
|
66
|
+
return flags.gatewayConnected === true;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Consumer SSOT: render OpenClaw iff the daemon actually emitted the session.
|
|
70
|
+
* Consumers must NOT re-derive OpenClaw visibility from raw gateway flags;
|
|
71
|
+
* the daemon source is the single authority. Hand-mirrored in Swift/Kotlin.
|
|
72
|
+
*/
|
|
73
|
+
export function hasOpenClawSession(sessions) {
|
|
74
|
+
return sessions.some(s => s.agentType === 'openclaw');
|
|
75
|
+
}
|
|
47
76
|
// ===== Sorting =====
|
|
48
77
|
/**
|
|
49
78
|
* Sort sessions with stable ordering that does NOT jump on state changes.
|
|
50
79
|
*
|
|
51
|
-
* Order: agentType (openclaw first → claude-code → codex → opencode)
|
|
80
|
+
* Order: agentType (openclaw first → claude-code → codex → opencode → antigravity)
|
|
52
81
|
* → projectName alphabetically
|
|
53
82
|
* → startedAt ascending (oldest first) for stability
|
|
54
83
|
* → id as final tiebreaker
|
|
@@ -61,11 +90,11 @@ export function sortSessions(sessions) {
|
|
|
61
90
|
const typeRank = agentTypeRank(a.agentType) - agentTypeRank(b.agentType);
|
|
62
91
|
if (typeRank !== 0)
|
|
63
92
|
return typeRank;
|
|
64
|
-
// 2. Project name alphabetically
|
|
65
|
-
// DashboardDataRules.
|
|
66
|
-
// and Android
|
|
67
|
-
//
|
|
68
|
-
const nameCompare = (a.projectName
|
|
93
|
+
// 2. Project name alphabetically with numeric chunks (Agent 2 before
|
|
94
|
+
// Agent 10). Must match Swift DashboardDataRules.naturalLabelCompare
|
|
95
|
+
// and Android naturalLabelCompare, otherwise numbered sessions render
|
|
96
|
+
// in different order on Stream Deck vs. Apple/Android.
|
|
97
|
+
const nameCompare = naturalLabelCompare(a.projectName, b.projectName);
|
|
69
98
|
if (nameCompare !== 0)
|
|
70
99
|
return nameCompare;
|
|
71
100
|
// 3. Start time ascending (oldest first = stable position)
|
|
@@ -75,8 +104,72 @@ export function sortSessions(sessions) {
|
|
|
75
104
|
return diff;
|
|
76
105
|
}
|
|
77
106
|
// 4. Session ID as final tiebreaker
|
|
78
|
-
return (a.id
|
|
107
|
+
return naturalLabelCompare(a.id, b.id);
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Collapse Codex companion-task rows for the same project into one display
|
|
112
|
+
* session. Raw rows remain authoritative inside the daemon; every user-facing
|
|
113
|
+
* surface should count this folded shape so completed one-turn Codex threads do
|
|
114
|
+
* not look like simultaneously running sessions.
|
|
115
|
+
*/
|
|
116
|
+
export function foldCodexSessionsForDisplay(sessions) {
|
|
117
|
+
const passthrough = [];
|
|
118
|
+
const codexByProject = new Map();
|
|
119
|
+
for (const session of sessions) {
|
|
120
|
+
const project = session.projectName?.trim();
|
|
121
|
+
if (!isCodexSession(session) || !project) {
|
|
122
|
+
passthrough.push(session);
|
|
123
|
+
continue;
|
|
124
|
+
}
|
|
125
|
+
const key = `${codexDisplayKind(session)}:${project.toLocaleLowerCase()}`;
|
|
126
|
+
const group = codexByProject.get(key);
|
|
127
|
+
if (group)
|
|
128
|
+
group.push(session);
|
|
129
|
+
else
|
|
130
|
+
codexByProject.set(key, [session]);
|
|
131
|
+
}
|
|
132
|
+
for (const group of codexByProject.values()) {
|
|
133
|
+
passthrough.push(foldCodexProjectGroup(group));
|
|
134
|
+
}
|
|
135
|
+
return passthrough;
|
|
136
|
+
}
|
|
137
|
+
function isCodexSession(session) {
|
|
138
|
+
return session.agentType === 'codex-cli' || session.agentType === 'codex-app' || session.id.startsWith('codex:');
|
|
139
|
+
}
|
|
140
|
+
function codexDisplayKind(session) {
|
|
141
|
+
return session.agentType === 'codex-app' ? 'codex-app' : 'codex-cli';
|
|
142
|
+
}
|
|
143
|
+
function foldCodexProjectGroup(group) {
|
|
144
|
+
if (group.length <= 1)
|
|
145
|
+
return group[0];
|
|
146
|
+
const ranked = [...group].sort((a, b) => {
|
|
147
|
+
const rankDiff = stateRank(a.state) - stateRank(b.state);
|
|
148
|
+
if (rankDiff !== 0)
|
|
149
|
+
return rankDiff;
|
|
150
|
+
const aStarted = a.startedAt ? new Date(a.startedAt).getTime() : Number.NEGATIVE_INFINITY;
|
|
151
|
+
const bStarted = b.startedAt ? new Date(b.startedAt).getTime() : Number.NEGATIVE_INFINITY;
|
|
152
|
+
if (aStarted !== bStarted)
|
|
153
|
+
return bStarted - aStarted;
|
|
154
|
+
return a.id.localeCompare(b.id);
|
|
79
155
|
});
|
|
156
|
+
const representative = ranked[0];
|
|
157
|
+
const foldedIds = group.flatMap(s => s.foldedSessionIds ?? [s.id]);
|
|
158
|
+
const groupSize = group.reduce((total, s) => total + (s.groupSize ?? 1), 0);
|
|
159
|
+
const currentTool = ranked.find(s => stateRank(s.state) === 0 && s.currentTool?.trim())?.currentTool;
|
|
160
|
+
const folded = {
|
|
161
|
+
...representative,
|
|
162
|
+
state: ranked[0].state,
|
|
163
|
+
groupSize,
|
|
164
|
+
foldedSessionIds: foldedIds,
|
|
165
|
+
};
|
|
166
|
+
if (currentTool) {
|
|
167
|
+
folded.currentTool = currentTool;
|
|
168
|
+
}
|
|
169
|
+
else {
|
|
170
|
+
delete folded.currentTool;
|
|
171
|
+
}
|
|
172
|
+
return folded;
|
|
80
173
|
}
|
|
81
174
|
/**
|
|
82
175
|
* Assign display names with #N suffixes for duplicate (projectName, agentType) tuples.
|
|
@@ -106,4 +199,106 @@ export function assignDisplayNames(sessions) {
|
|
|
106
199
|
};
|
|
107
200
|
});
|
|
108
201
|
}
|
|
202
|
+
// ===== Project-Prefix Grouping (IPS10 office huddle port) =====
|
|
203
|
+
//
|
|
204
|
+
// The IPS10 terrarium (esp32/src/ui/terrarium/office.cpp — normProject /
|
|
205
|
+
// sameProjectGroup) clusters sessions whose project names share a long
|
|
206
|
+
// delimiter-aligned prefix into one "work huddle": worktree/task folders like
|
|
207
|
+
// `xteink-x3-x4-japanese-broken-claude-glm` / `…-broken-codex` read as one
|
|
208
|
+
// unit of work, not N unrelated sessions. This is the SSOT port so the other
|
|
209
|
+
// dashboards' session lists (Android tablet SessionListPanel.kt, Apple
|
|
210
|
+
// SessionListPanel.swift — hand-mirrored, keep in lockstep) group the same way.
|
|
211
|
+
function isProjectDelim(c) {
|
|
212
|
+
return c === '-' || c === '_' || c === ' ' || c === '.';
|
|
213
|
+
}
|
|
214
|
+
function trimProjectTail(s) {
|
|
215
|
+
let n = s.length;
|
|
216
|
+
while (n > 0 && (isProjectDelim(s[n - 1]) || s[n - 1] === '#'))
|
|
217
|
+
n--;
|
|
218
|
+
return s.slice(0, n);
|
|
219
|
+
}
|
|
220
|
+
function projectDelimCount(s, len) {
|
|
221
|
+
let count = 0;
|
|
222
|
+
for (let i = 0; i < len && i < s.length; i++)
|
|
223
|
+
if (isProjectDelim(s[i]))
|
|
224
|
+
count++;
|
|
225
|
+
return count;
|
|
226
|
+
}
|
|
227
|
+
/**
|
|
228
|
+
* Normalize a project name for grouping: strip any path to the basename and
|
|
229
|
+
* drop a trailing " #N" duplicate suffix so "Foo #1" / "Foo #2" compare equal.
|
|
230
|
+
* Mirrors office.cpp `normProject`.
|
|
231
|
+
*/
|
|
232
|
+
export function normalizeProjectForGrouping(project) {
|
|
233
|
+
const raw = (project || '').trim();
|
|
234
|
+
const base = raw.split('/').filter(Boolean).pop() || raw;
|
|
235
|
+
const m = base.match(/^(.*?)\s*#\d+$/);
|
|
236
|
+
return trimProjectTail(m ? m[1] : base);
|
|
237
|
+
}
|
|
238
|
+
/**
|
|
239
|
+
* When two normalized project names belong to the same work group, return the
|
|
240
|
+
* shared group key (the common stem); otherwise null. Mirrors office.cpp
|
|
241
|
+
* `sameProjectGroup`:
|
|
242
|
+
* - exact (case-insensitive) match → group
|
|
243
|
+
* - one extends the other at a delimiter ("foo-bar" + "foo-bar-1") or they
|
|
244
|
+
* diverge after a shared delimiter-aligned stem ("…-broken-a" + "…-broken-b")
|
|
245
|
+
* - conservative: only long multi-token stems fuse (stem ≥ 14 chars with
|
|
246
|
+
* ≥ 2 delimiters on both sides), so short siblings like "agentdeck-ios" /
|
|
247
|
+
* "agentdeck-android" stay separate.
|
|
248
|
+
*/
|
|
249
|
+
export function projectGroupKey(a, b) {
|
|
250
|
+
let i = 0;
|
|
251
|
+
let lastDelim = -1;
|
|
252
|
+
const n = Math.min(a.length, b.length);
|
|
253
|
+
while (i < n && a[i].toLowerCase() === b[i].toLowerCase()) {
|
|
254
|
+
if (isProjectDelim(a[i]))
|
|
255
|
+
lastDelim = i;
|
|
256
|
+
i++;
|
|
257
|
+
}
|
|
258
|
+
if (i === a.length && i === b.length)
|
|
259
|
+
return a;
|
|
260
|
+
let stemLen = -1;
|
|
261
|
+
if (i === a.length && i < b.length && isProjectDelim(b[i]))
|
|
262
|
+
stemLen = i;
|
|
263
|
+
else if (i === b.length && i < a.length && isProjectDelim(a[i]))
|
|
264
|
+
stemLen = i;
|
|
265
|
+
else if (lastDelim > 0)
|
|
266
|
+
stemLen = lastDelim;
|
|
267
|
+
if (stemLen < 14 || projectDelimCount(a, stemLen) < 2 || projectDelimCount(b, stemLen) < 2) {
|
|
268
|
+
return null;
|
|
269
|
+
}
|
|
270
|
+
const key = trimProjectTail(a.slice(0, stemLen));
|
|
271
|
+
return key.length > 0 ? key : null;
|
|
272
|
+
}
|
|
273
|
+
/**
|
|
274
|
+
* Cluster an ordered session list into project groups, preserving the input
|
|
275
|
+
* order (first member's position anchors the group; members keep relative
|
|
276
|
+
* order). Greedy pairwise fusion with a growing group key, exactly like the
|
|
277
|
+
* office.cpp huddle builder.
|
|
278
|
+
*/
|
|
279
|
+
export function groupSessionsByProject(items, projectOf) {
|
|
280
|
+
const groups = [];
|
|
281
|
+
const done = new Array(items.length).fill(false);
|
|
282
|
+
for (let a = 0; a < items.length; a++) {
|
|
283
|
+
if (done[a])
|
|
284
|
+
continue;
|
|
285
|
+
const na = normalizeProjectForGrouping(projectOf(items[a]));
|
|
286
|
+
let key = na;
|
|
287
|
+
const members = [items[a]];
|
|
288
|
+
done[a] = true;
|
|
289
|
+
for (let b = a + 1; b < items.length; b++) {
|
|
290
|
+
if (done[b])
|
|
291
|
+
continue;
|
|
292
|
+
const nb = normalizeProjectForGrouping(projectOf(items[b]));
|
|
293
|
+
const nextKey = projectGroupKey(key, nb) ?? projectGroupKey(na, nb);
|
|
294
|
+
if (nextKey) {
|
|
295
|
+
key = nextKey;
|
|
296
|
+
members.push(items[b]);
|
|
297
|
+
done[b] = true;
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
groups.push({ key, grouped: members.length > 1, members });
|
|
301
|
+
}
|
|
302
|
+
return groups;
|
|
303
|
+
}
|
|
109
304
|
//# sourceMappingURL=session-utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-utils.js","sourceRoot":"","sources":["../src/session-utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,4BAA4B;AAE5B;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,KAAyB;IACjD,QAAQ,KAAK,EAAE,CAAC;QACd,KAAK,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC;QAC5B,KAAK,qBAAqB,CAAC;QAC3B,KAAK,iBAAiB,CAAC;QACvB,KAAK,eAAe,CAAC,CAAC,OAAO,CAAC,CAAC;QAC/B,KAAK,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC;QACtB,KAAK,cAAc,CAAC,CAAC,OAAO,CAAC,CAAC;QAC9B,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC;IACpB,CAAC;AACH,CAAC;AAMD,MAAM,UAAU,WAAW,CAAC,KAAyB;IACnD,QAAQ,KAAK,EAAE,CAAC;QACd,KAAK,qBAAqB,CAAC;QAC3B,KAAK,iBAAiB,CAAC;QACvB,KAAK,eAAe;YAClB,OAAO,WAAW,CAAC;QACrB,KAAK,YAAY;YACf,OAAO,QAAQ,CAAC;QAClB;YACE,OAAO,MAAM,CAAC;IAClB,CAAC;AACH,CAAC;AAED,iEAAiE;AAEjE;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,SAA6B;IACzD,QAAQ,SAAS,EAAE,CAAC;QAClB,KAAK,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC;QAC1B,KAAK,aAAa,CAAC,CAAC,OAAO,CAAC,CAAC;QAC7B,KAAK,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC;QAC3B,KAAK,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC;QAC1B,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC;IACpB,CAAC;AACH,CAAC;AAED,sBAAsB;AAEtB;;;;;;;;;GASG;AACH,MAAM,UAAU,YAAY,CAA0G,QAAa;IACjJ,OAAO,CAAC,GAAG,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACjC,2DAA2D;QAC3D,MAAM,QAAQ,GAAG,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QACzE,IAAI,QAAQ,KAAK,CAAC;YAAE,OAAO,QAAQ,CAAC;QAEpC,
|
|
1
|
+
{"version":3,"file":"session-utils.js","sourceRoot":"","sources":["../src/session-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state-colors.d.ts","sourceRoot":"","sources":["../src/state-colors.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAKpC,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAO9C,CAAC;AAEF,oFAAoF;AACpF,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAG5D;AAID,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"state-colors.d.ts","sourceRoot":"","sources":["../src/state-colors.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAKpC,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAO9C,CAAC;AAEF,oFAAoF;AACpF,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAG5D;AAID,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAQrD,CAAC;AAEF,oEAAoE;AACpE,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAErE;AAID,mEAAmE;AACnE,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAQ3D"}
|
package/dist/state-colors.js
CHANGED
|
@@ -25,7 +25,9 @@ export const AGENT_BRAND_COLORS = {
|
|
|
25
25
|
'claude-code': '#C07058', // terracotta
|
|
26
26
|
'openclaw': '#ff4d4d', // red
|
|
27
27
|
'codex-cli': '#6366f1', // indigo
|
|
28
|
+
'codex-app': '#6366f1', // indigo
|
|
28
29
|
'opencode': '#F1ECEC', // cream
|
|
30
|
+
'antigravity': '#5F6368', // Google gray
|
|
29
31
|
'monitor': '#94a3b8', // slate
|
|
30
32
|
};
|
|
31
33
|
/** Get agent brand color. Falls back to slate for unknown types. */
|
package/dist/state-colors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state-colors.js","sourceRoot":"","sources":["../src/state-colors.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAGpC,2BAA2B;AAE3B,MAAM,CAAC,MAAM,YAAY,GAA0B;IACjD,CAAC,KAAK,CAAC,IAAI,CAAC,EAAiB,SAAS,EAAG,QAAQ;IACjD,CAAC,KAAK,CAAC,UAAU,CAAC,EAAW,SAAS,EAAG,OAAO;IAChD,CAAC,KAAK,CAAC,mBAAmB,CAAC,EAAE,SAAS,EAAG,QAAQ;IACjD,CAAC,KAAK,CAAC,eAAe,CAAC,EAAM,SAAS,EAAG,QAAQ;IACjD,CAAC,KAAK,CAAC,aAAa,CAAC,EAAQ,SAAS,EAAG,QAAQ;IACjD,CAAC,KAAK,CAAC,YAAY,CAAC,EAAS,SAAS,EAAG,OAAO;CACjD,CAAC;AAEF,oFAAoF;AACpF,MAAM,UAAU,UAAU,CAAC,KAAyB;IAClD,IAAI,CAAC,KAAK;QAAE,OAAO,YAAY,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IACpD,OAAQ,YAAuC,CAAC,KAAK,CAAC,IAAI,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AACrF,CAAC;AAED,yDAAyD;AAEzD,MAAM,CAAC,MAAM,kBAAkB,GAA2B;IACxD,aAAa,EAAE,SAAS,EAAG,aAAa;IACxC,UAAU,EAAK,SAAS,EAAG,MAAM;IACjC,WAAW,EAAI,SAAS,EAAG,SAAS;IACpC,UAAU,EAAK,SAAS,EAAG,QAAQ;IACnC,SAAS,EAAM,SAAS,EAAG,QAAQ;CACpC,CAAC;AAEF,oEAAoE;AACpE,MAAM,UAAU,eAAe,CAAC,SAA6B;IAC3D,OAAO,kBAAkB,CAAC,SAAS,IAAI,EAAE,CAAC,IAAI,SAAS,CAAC;AAC1D,CAAC;AAED,8BAA8B;AAE9B,mEAAmE;AACnE,MAAM,UAAU,QAAQ,CAAC,GAAW,EAAE,KAAa;IACjD,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACxC,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACxC,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACxC,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;IACvC,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;IACvC,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;IACvC,OAAO,IAAI,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;AACtH,CAAC"}
|
|
1
|
+
{"version":3,"file":"state-colors.js","sourceRoot":"","sources":["../src/state-colors.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAGpC,2BAA2B;AAE3B,MAAM,CAAC,MAAM,YAAY,GAA0B;IACjD,CAAC,KAAK,CAAC,IAAI,CAAC,EAAiB,SAAS,EAAG,QAAQ;IACjD,CAAC,KAAK,CAAC,UAAU,CAAC,EAAW,SAAS,EAAG,OAAO;IAChD,CAAC,KAAK,CAAC,mBAAmB,CAAC,EAAE,SAAS,EAAG,QAAQ;IACjD,CAAC,KAAK,CAAC,eAAe,CAAC,EAAM,SAAS,EAAG,QAAQ;IACjD,CAAC,KAAK,CAAC,aAAa,CAAC,EAAQ,SAAS,EAAG,QAAQ;IACjD,CAAC,KAAK,CAAC,YAAY,CAAC,EAAS,SAAS,EAAG,OAAO;CACjD,CAAC;AAEF,oFAAoF;AACpF,MAAM,UAAU,UAAU,CAAC,KAAyB;IAClD,IAAI,CAAC,KAAK;QAAE,OAAO,YAAY,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IACpD,OAAQ,YAAuC,CAAC,KAAK,CAAC,IAAI,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AACrF,CAAC;AAED,yDAAyD;AAEzD,MAAM,CAAC,MAAM,kBAAkB,GAA2B;IACxD,aAAa,EAAE,SAAS,EAAG,aAAa;IACxC,UAAU,EAAK,SAAS,EAAG,MAAM;IACjC,WAAW,EAAI,SAAS,EAAG,SAAS;IACpC,WAAW,EAAI,SAAS,EAAG,SAAS;IACpC,UAAU,EAAK,SAAS,EAAG,QAAQ;IACnC,aAAa,EAAE,SAAS,EAAG,cAAc;IACzC,SAAS,EAAM,SAAS,EAAG,QAAQ;CACpC,CAAC;AAEF,oEAAoE;AACpE,MAAM,UAAU,eAAe,CAAC,SAA6B;IAC3D,OAAO,kBAAkB,CAAC,SAAS,IAAI,EAAE,CAAC,IAAI,SAAS,CAAC;AAC1D,CAAC;AAED,8BAA8B;AAE9B,mEAAmE;AACnE,MAAM,UAAU,QAAQ,CAAC,GAAW,EAAE,KAAa;IACjD,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACxC,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACxC,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACxC,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;IACvC,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;IACvC,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;IACvC,OAAO,IAAI,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;AACtH,CAAC"}
|
package/dist/states.d.ts
CHANGED
package/dist/states.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"states.d.ts","sourceRoot":"","sources":["../src/states.ts"],"names":[],"mappings":"AAAA,oBAAY,KAAK;IACf,YAAY,iBAAiB;IAC7B,IAAI,SAAS;IACb,UAAU,eAAe;IACzB,mBAAmB,wBAAwB;IAC3C,eAAe,oBAAoB;IACnC,aAAa,kBAAkB;CAChC;AAED,oBAAY,cAAc;IACxB,OAAO,YAAY;IACnB,IAAI,SAAS;IACb,YAAY,gBAAgB;IAC5B,QAAQ,YAAY;IACpB,kBAAkB,sBAAsB;CACzC;AAED,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,UAAU,CAAC;AAEpE,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,KAAK,GAAG,GAAG,CAAC;IAClB,EAAE,EAAE,KAAK,CAAC;IACV,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,gBAAgB,CAAC;CAC1B;AAED,eAAO,MAAM,WAAW,EAAE,eAAe,
|
|
1
|
+
{"version":3,"file":"states.d.ts","sourceRoot":"","sources":["../src/states.ts"],"names":[],"mappings":"AAAA,oBAAY,KAAK;IACf,YAAY,iBAAiB;IAC7B,IAAI,SAAS;IACb,UAAU,eAAe;IACzB,mBAAmB,wBAAwB;IAC3C,eAAe,oBAAoB;IACnC,aAAa,kBAAkB;CAChC;AAED,oBAAY,cAAc;IACxB,OAAO,YAAY;IACnB,IAAI,SAAS;IACb,YAAY,gBAAgB;IAC5B,QAAQ,YAAY;IACpB,kBAAkB,sBAAsB;CACzC;AAED,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,UAAU,CAAC;AAEpE,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,KAAK,GAAG,GAAG,CAAC;IAClB,EAAE,EAAE,KAAK,CAAC;IACV,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,gBAAgB,CAAC;CAC1B;AAED,eAAO,MAAM,WAAW,EAAE,eAAe,EAiCxC,CAAC;AAEF,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,QAAQ,GAAG,gBAAgB,CAAC;CACpC;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,KAAK,CAAC;IACb,cAAc,EAAE,cAAc,CAAC;IAC/B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,WAAW,EAAE,OAAO,eAAe,EAAE,WAAW,CAAC;IACjD,kBAAkB,EAAE,MAAM,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B"}
|
package/dist/states.js
CHANGED
|
@@ -39,7 +39,12 @@ export const transitions = [
|
|
|
39
39
|
{ from: State.AWAITING_PERMISSION, to: State.PROCESSING, trigger: 'spinner_start', source: 'pty' },
|
|
40
40
|
{ from: State.AWAITING_OPTION, to: State.PROCESSING, trigger: 'spinner_start', source: 'pty' },
|
|
41
41
|
{ from: State.AWAITING_DIFF, to: State.PROCESSING, trigger: 'spinner_start', source: 'pty' },
|
|
42
|
-
// stuck_timeout only
|
|
42
|
+
// stuck_timeout: only PROCESSING recovers after STUCK_TIMEOUT_MS (Claude hung).
|
|
43
|
+
// AWAITING_* intentionally have NO wall-clock backstop — an unanswered prompt
|
|
44
|
+
// is a genuine, indefinitely-valid wait (the user may be away); it only leaves
|
|
45
|
+
// via a real signal (spinner_start / idle_detected / user response / stop), and
|
|
46
|
+
// a truly-dead session is reaped by liveness, not a timer. A blind awaiting
|
|
47
|
+
// timer wrongly forced real prompts to IDLE and vanished them from dashboards.
|
|
43
48
|
{ from: State.PROCESSING, to: State.IDLE, trigger: 'stuck_timeout', source: 'internal' },
|
|
44
49
|
{ from: '*', to: State.DISCONNECTED, trigger: 'session_end', source: 'hook' },
|
|
45
50
|
{ from: '*', to: State.IDLE, trigger: 'interrupt', source: 'user' },
|
package/dist/states.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"states.js","sourceRoot":"","sources":["../src/states.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"states.js","sourceRoot":"","sources":["../src/states.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,17 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Agent
|
|
2
|
+
* Agent creature SVG fragments for session buttons.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
4
|
+
* The exported names are kept for plugin compatibility, but the rendered
|
|
5
|
+
* marks are the same AgentDeck creature language used by the terrarium:
|
|
6
|
+
* Claude = robot, Codex = cloud prompt, OpenClaw = crayfish, OpenCode =
|
|
7
|
+
* nested-square floater, Antigravity = peak/arc mark.
|
|
8
8
|
*/
|
|
9
9
|
import type { AgentType } from '../adapter.js';
|
|
10
|
+
export declare const ROBOT_CREATURE_PATH = "M20.998 10.949H24v3.102h-3v3.028h-1.487V20H18v-2.921h-1.487V20H15v-2.921H9V20H7.488v-2.921H6V20H4.487v-2.921H3V14.05H0v-3.1h3V5h17.998v5.949zM6 10.949h1.488V8.102H6v2.847zm10.51 0H18V8.102h-1.49v2.847z";
|
|
11
|
+
/** OpenCode mark (design/brand/opencode.svg): hollow nested-square ring. */
|
|
12
|
+
export declare const OPENCODE_RING_PATH = "M16 6H8v12h8V6zm4 16H4V2h16v20z";
|
|
13
|
+
/** Antigravity mark (design/brand/antigravity.svg): peak/arc. */
|
|
14
|
+
export declare const ANTIGRAVITY_PATH = "M21.751 22.607c1.34 1.005 3.35.335 1.508-1.508C17.73 15.74 18.904 1 12.037 1 5.17 1 6.342 15.74.815 21.1c-2.01 2.009.167 2.511 1.507 1.506 5.192-3.517 4.857-9.714 9.715-9.714 4.857 0 4.522 6.197 9.714 9.715z";
|
|
10
15
|
/** Claude Code creature asset: assets/logos/claude.svg. viewBox 0 0 24 24. */
|
|
11
16
|
export declare const CLAUDE_LOGO_PATH = "M4.709 15.955l4.72-2.647.08-.23-.08-.128H9.2l-.79-.048-2.698-.073-2.339-.097-2.266-.122-.571-.121L0 11.784l.055-.352.48-.321.686.06 1.52.103 2.278.158 1.652.097 2.449.255h.389l.055-.157-.134-.098-.103-.097-2.358-1.596-2.552-1.688-1.336-.972-.724-.491-.364-.462-.158-1.008.656-.722.881.06.225.061.893.686 1.908 1.476 2.491 1.833.365.304.145-.103.019-.073-.164-.274-1.355-2.446-1.446-2.49-.644-1.032-.17-.619a2.97 2.97 0 01-.104-.729L6.283.134 6.696 0l.996.134.42.364.62 1.414 1.002 2.229 1.555 3.03.456.898.243.832.091.255h.158V9.01l.128-1.706.237-2.095.23-2.695.08-.76.376-.91.747-.492.584.28.48.685-.067.444-.286 1.851-.559 2.903-.364 1.942h.212l.243-.242.985-1.306 1.652-2.064.73-.82.85-.904.547-.431h1.033l.76 1.129-.34 1.166-1.064 1.347-.881 1.142-1.264 1.7-.79 1.36.073.11.188-.02 2.856-.606 1.543-.28 1.841-.315.833.388.091.395-.328.807-1.969.486-2.309.462-3.439.813-.042.03.049.061 1.549.146.662.036h1.622l3.02.225.79.522.474.638-.079.485-1.215.62-1.64-.389-3.829-.91-1.312-.329h-.182v.11l1.093 1.068 2.006 1.81 2.509 2.33.127.578-.322.455-.34-.049-2.205-1.657-.851-.747-1.926-1.62h-.128v.17l.444.649 2.345 3.521.122 1.08-.17.353-.608.213-.668-.122-1.374-1.925-1.415-2.167-1.143-1.943-.14.08-.674 7.254-.316.37-.729.28-.607-.461-.322-.747.322-1.476.389-1.924.315-1.53.286-1.9.17-.632-.012-.042-.14.018-1.434 1.967-2.18 2.945-1.726 1.845-.414.164-.717-.37.067-.662.401-.589 2.388-3.036 1.44-1.882.93-1.086-.006-.158h-.055L4.132 18.56l-1.13.146-.487-.456.061-.746.231-.243 1.908-1.312-.006.006z";
|
|
12
17
|
/** Legacy OpenClaw paths kept for the Gateway preset mini-browser icon. */
|
|
@@ -17,6 +22,13 @@ export declare const OC_CLAW_R = "M100 45 C115 40 120 50 115 60 C110 70 100 65 9
|
|
|
17
22
|
export declare const CODEX_LOGO_PATH = "M8.086.457a6.105 6.105 0 013.046-.415c1.333.153 2.521.72 3.564 1.7a.117.117 0 00.107.029c1.408-.346 2.762-.224 4.061.366l.063.03.154.076c1.357.703 2.33 1.77 2.918 3.198.278.679.418 1.388.421 2.126a5.655 5.655 0 01-.18 1.631.167.167 0 00.04.155 5.982 5.982 0 011.578 2.891c.385 1.901-.01 3.615-1.183 5.14l-.182.22a6.063 6.063 0 01-2.934 1.851.162.162 0 00-.108.102c-.255.736-.511 1.364-.987 1.992-1.199 1.582-2.962 2.462-4.948 2.451-1.583-.008-2.986-.587-4.21-1.736a.145.145 0 00-.14-.032c-.518.167-1.04.191-1.604.185a5.924 5.924 0 01-2.595-.622 6.058 6.058 0 01-2.146-1.781c-.203-.269-.404-.522-.551-.821a7.74 7.74 0 01-.495-1.283 6.11 6.11 0 01-.017-3.064.166.166 0 00.008-.074.115.115 0 00-.037-.064 5.958 5.958 0 01-1.38-2.202 5.196 5.196 0 01-.333-1.589 6.915 6.915 0 01.188-2.132c.45-1.484 1.309-2.648 2.577-3.493.282-.188.55-.334.802-.438.286-.12.573-.22.861-.304a.129.129 0 00.087-.087A6.016 6.016 0 015.635 2.31C6.315 1.464 7.132.846 8.086.457zm-.804 7.85a.848.848 0 00-1.473.842l1.694 2.965-1.688 2.848a.849.849 0 001.46.864l1.94-3.272a.849.849 0 00.007-.854l-1.94-3.393zm5.446 6.24a.849.849 0 000 1.695h4.848a.849.849 0 000-1.696h-4.848z";
|
|
18
23
|
/** OpenClaw creature asset: assets/logos/openclaw.svg. viewBox 0 0 24 24. */
|
|
19
24
|
export declare const OPENCLAW_LOGO_PATHS: string[];
|
|
25
|
+
/**
|
|
26
|
+
* Render the agent's canonical brand mark as a 1-bit glyph: the path(s) filled
|
|
27
|
+
* with `ink` (evenodd so in-path holes — robot eyes, opencode ring, codex prompt —
|
|
28
|
+
* read as paper), plus any separate `paper` eye cutouts. 24-unit viewBox scaled to
|
|
29
|
+
* `size`, centered on (cx,cy). Used by the TRMNL e-ink layout; mirrored in Swift.
|
|
30
|
+
*/
|
|
31
|
+
export declare function agentGlyphMono(agent: string, cx: number, cy: number, size: number, ink: string, paper: string): string;
|
|
20
32
|
/**
|
|
21
33
|
* Render agent logo as a visible icon at top-center of button.
|
|
22
34
|
* Uses agent brand color (not state color) for consistent identification.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-logos.d.ts","sourceRoot":"","sources":["../../src/svg-renderers/agent-logos.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"agent-logos.d.ts","sourceRoot":"","sources":["../../src/svg-renderers/agent-logos.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAM/C,eAAO,MAAM,mBAAmB,8MAC6K,CAAC;AAE9M,4EAA4E;AAC5E,eAAO,MAAM,kBAAkB,oCAAoC,CAAC;AAEpE,iEAAiE;AACjE,eAAO,MAAM,gBAAgB,oNACsL,CAAC;AAEpN,8EAA8E;AAC9E,eAAO,MAAM,gBAAgB,g+CACk8C,CAAC;AAEh+C,2EAA2E;AAC3E,eAAO,MAAM,OAAO,kKAC6I,CAAC;AAClK,eAAO,MAAM,SAAS,kEAC2C,CAAC;AAClE,eAAO,MAAM,SAAS,4EACqD,CAAC;AAE5E,uFAAuF;AACvF,eAAO,MAAM,eAAe,goCACmmC,CAAC;AAEhoC,6EAA6E;AAC7E,eAAO,MAAM,mBAAmB,UAM/B,CAAC;AA6JF;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,MAAM,EACb,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,GACZ,MAAM,CASR;AAID;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,SAAS,EAChB,IAAI,SAAK,EACT,OAAO,SAAM,EACb,EAAE,SAAK,EACP,EAAE,SAAgB,GACjB,MAAM,CAgBR;AAID;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,SAAS,EAChB,MAAM,CAAC,EAAE,MAAM,EACf,OAAO,SAAO,GACb,MAAM,CAkBR"}
|