@robota-sdk/agent-ui-web 3.0.7 → 3.1.2
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/CHANGELOG.md +80 -0
- package/dist/{node/index.cjs → index.cjs} +131 -113
- package/dist/index.d.cts.map +1 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/{node/index.js → index.js} +131 -113
- package/dist/index.js.map +1 -0
- package/package.json +18 -16
- package/src/components/SessionSidebar.tsx +17 -0
- package/dist/browser/index.d.ts.map +0 -1
- package/dist/browser/index.js +0 -8525
- package/dist/browser/index.js.map +0 -1
- package/dist/node/index.d.cts.map +0 -1
- package/dist/node/index.d.ts +0 -736
- package/dist/node/index.d.ts.map +0 -1
- package/dist/node/index.js.map +0 -1
- /package/dist/{node/index.d.cts → index.d.cts} +0 -0
- /package/dist/{browser/index.d.ts → index.d.ts} +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,85 @@
|
|
|
1
1
|
# @robota-sdk/agent-ui-web
|
|
2
2
|
|
|
3
|
+
## 3.1.2
|
|
4
|
+
### Patch Changes
|
|
5
|
+
|
|
6
|
+
- @robota-sdk/agent-interface-command@3.1.2
|
|
7
|
+
- @robota-sdk/agent-interface-execution@3.1.2
|
|
8
|
+
- @robota-sdk/agent-interface-session@3.1.2
|
|
9
|
+
- @robota-sdk/agent-interface-transport@3.1.2
|
|
10
|
+
- @robota-sdk/agent-transport@3.1.2
|
|
11
|
+
|
|
12
|
+
## 3.1.1
|
|
13
|
+
### Patch Changes
|
|
14
|
+
|
|
15
|
+
- @robota-sdk/agent-interface-command@3.1.1
|
|
16
|
+
- @robota-sdk/agent-interface-execution@3.1.1
|
|
17
|
+
- @robota-sdk/agent-interface-session@3.1.1
|
|
18
|
+
- @robota-sdk/agent-interface-transport@3.1.1
|
|
19
|
+
- @robota-sdk/agent-transport@3.1.1
|
|
20
|
+
|
|
21
|
+
## 3.1.0
|
|
22
|
+
### Minor Changes
|
|
23
|
+
|
|
24
|
+
- bc8de21: `TSessionLoadOutcome` gains a fifth status, `locked`: the record is there and sealed, and this
|
|
25
|
+
process cannot open it right now (`reason: 'no-keys'` when the store keeps its records `'plain'`,
|
|
26
|
+
`'changed'` when a held session's file changed since). `list()` leaves locked sessions out, since
|
|
27
|
+
there is no record to describe; the optional `scan()` returns the listing together with how many it
|
|
28
|
+
left out — `locked`, which an unlock would list, and an optional `noKeys` for those sealed with keys
|
|
29
|
+
this process does not have — and `scanSessionStore`/`listResumableSessions` in
|
|
30
|
+
`@robota-sdk/agent-framework` read it. `lockedSessionReason`, `lockedSessionMessage(id, reason)` and
|
|
31
|
+
`lockedSessionsNotice(locked, noKeys)` word a sealed session by why it does not open, so only locked
|
|
32
|
+
keys are ever met with "unlock"; resume, rename, hand-off, usage and the CLI's notices follow them. A
|
|
33
|
+
served session listing carries how many sealed sessions the host cannot open, its keys locked or
|
|
34
|
+
none that open them, as `lockedSessionCount`; the reason does not cross the wire, so the terminal
|
|
35
|
+
picker and the web session list say how many are sealed and not listed, never to unlock.
|
|
36
|
+
|
|
37
|
+
`@robota-sdk/agent-interface-analytics` adds an optional `IPersonalUsageCoverage.lockedSessions`, the
|
|
38
|
+
number of sealed sessions a usage report could not open (locked keys, or none that open them).
|
|
39
|
+
`@robota-sdk/agent-session-analytics` adds an optional `IPersonalUsageSnapshot.lockedSessionCount`,
|
|
40
|
+
which fills it, and the formatted report then reads `locked N` in its coverage line.
|
|
41
|
+
|
|
42
|
+
What to do: a `switch` over `outcome.status` handles `locked`; when you write, treat it like
|
|
43
|
+
`corrupt` (do not save over it). A surface that lists sessions can show `scan().locked` and
|
|
44
|
+
`scan().noKeys` so sealed sessions do not look deleted.
|
|
45
|
+
- a2d36ea: Move what touches a host out of the main entries of `@robota-sdk/agent-command` and `@robota-sdk/agent-preset` into new Node-only `./node` subpaths (`"browser": null`), so neither main entry names a Node module of its own. Both stay Node-only until the packages they import go neutral.
|
|
46
|
+
|
|
47
|
+
- `@robota-sdk/agent-command/node` (new) holds `/shell` and `/editor` (`createShellCommandModule`, `createEditorCommandModule` and their sources, entries, `execute*`, `resolveShell`, `resolveEditor` and `spawnInherited`), `createTerminalClientCommands` (an attached terminal runs `/shell` and `/editor` itself), `createNodeDoctorDeps` and `resolveCommandOnPath`, and the new `openFileInEditor`. Import these from `/node`.
|
|
48
|
+
- `createDefaultCommandModules` no longer builds `/shell` and `/editor`, and its `editorTemporaryDirectoryPrefix` option is gone: a Node product adds the two modules beside the default set, as `@robota-sdk/pack-coding` already does. The CLI's command list is unchanged.
|
|
49
|
+
- `/doctor` takes its probes and writers by injection. `createDoctorCommandModule(inputs, deps, display)` has no default for `deps` (pass `createNodeDoctorDeps` from `/node`), `IDoctorDeps` gains `ensureOwnerOnlyDirectory` and `writeSettings` for the confirmed repairs and a required `files: IFileSystem` that the plugin and skill probes read installed extensions through, and `createDefaultCommandModules` takes `doctorDeps`. Absent, `/doctor` is still listed and answers that it is unavailable on this host; nothing is probed or written.
|
|
50
|
+
- `/git` runs through an injected process. `createGitCommandModule({ port })` has no default `createGitProcess()` any more and `createDefaultCommandModules` takes `gitProcess`; absent, `/git` is still listed and answers that it is unavailable on this host, and no process starts. `@robota-sdk/agent-command` no longer re-exports `createGitProcess`, `gitEnvironment`, `ICreateGitProcessOptions`, `IGitProcessPort`, `IGitProcessRunOptions`, `TGitProcessFailureReason` or `TGitProcessOutcome`: import `createGitProcess`, `gitEnvironment` and `ICreateGitProcessOptions` from `@robota-sdk/agent-framework/node`, and the port and outcome types (`IGitProcessPort`, `IGitProcessRunOptions`, `TGitProcessFailureReason`, `TGitProcessOutcome`) from `@robota-sdk/agent-framework`, which owns them. `@robota-sdk/agent-cli` and `@robota-sdk/pack-coding` pass `createGitProcess()`.
|
|
51
|
+
- `/keybindings` opens its file through an injected `TOpenFileInEditor`: `createKeybindingsCommandModule(file, openInEditor)` and the new `keybindingsEditor` option of `createDefaultCommandModules` (pass `openFileInEditor` from `/node`). Absent, `/keybindings` answers that the editor is unavailable here and creates no file.
|
|
52
|
+
- `/provider` and `/model` read a `$ENV:` credential reference from the host's `env` snapshot only. Absent, the reference reads as unset (the setup says so and asks again); the live process environment is no longer consulted by the command itself.
|
|
53
|
+
- `/loop` takes its ids and per-loop offset from `randomId` and `sha256Hex` in `@robota-sdk/agent-core`; both read exactly as before.
|
|
54
|
+
- The `/doctor` check ids (`settings.<scope>.<family>`) read a project-relative path a Windows host joined with `\` as they read one joined with `/`.
|
|
55
|
+
- `@robota-sdk/agent-preset/node` (new) holds `loadExternalPresetsFromDir`. The main entry gains `loadExternalPresetsFromFiles` (`IExternalPresetFile` list of `{ fileName, read }`), which has the same per-file error rules over files a host hands it; only `*.json` names are read. Output-style file ids are read from the file name without `node:path`.
|
|
56
|
+
- `@robota-sdk/agent-cli` passes `createNodeDoctorDeps` and `openFileInEditor`, and reads the preset directory and runs the attached terminal's commands through the `/node` entries, so every command behaves as before. `@robota-sdk/pack-coding` and `@robota-sdk/agent-ui-terminal` (tests) import `/shell` and `/editor` from `@robota-sdk/agent-command/node`; `@robota-sdk/agent-ui-web` only has a test comment updated.
|
|
57
|
+
- b56b5a9: Ship one build per package. The platform-neutral entries moved from `dist/node` to `dist`, and the second
|
|
58
|
+
`dist/browser` build of `@robota-sdk/agent-core`, `@robota-sdk/agent-transport`,
|
|
59
|
+
`@robota-sdk/agent-ui-web` and `@robota-sdk/agent-transport-webrtc-web` is gone: a neutral entry runs
|
|
60
|
+
unchanged in every runtime, so a subpath's `exports` map `import` and `require` to the same files and no
|
|
61
|
+
longer a `node` or `browser` condition (a Node-only subpath keeps `"browser": null`). Import specifiers
|
|
62
|
+
and the code behind them are unchanged; only a deep import of `dist/node/*` or `dist/browser/*` breaks.
|
|
63
|
+
`@robota-sdk/agent-transport/client` also ships a CommonJS build now.
|
|
64
|
+
|
|
65
|
+
### Patch Changes
|
|
66
|
+
|
|
67
|
+
- Updated dependencies [bc8de21]
|
|
68
|
+
- Updated dependencies [eabce48]
|
|
69
|
+
- Updated dependencies [bc8de21]
|
|
70
|
+
- Updated dependencies [eabce48]
|
|
71
|
+
- Updated dependencies [eabce48]
|
|
72
|
+
- Updated dependencies [bc8de21]
|
|
73
|
+
- Updated dependencies [82663df]
|
|
74
|
+
- Updated dependencies [bc8de21]
|
|
75
|
+
- Updated dependencies [437ca9e]
|
|
76
|
+
- Updated dependencies [b56b5a9]
|
|
77
|
+
- @robota-sdk/agent-interface-session@3.1.0
|
|
78
|
+
- @robota-sdk/agent-interface-execution@3.1.0
|
|
79
|
+
- @robota-sdk/agent-transport@3.1.0
|
|
80
|
+
- @robota-sdk/agent-interface-transport@3.1.0
|
|
81
|
+
- @robota-sdk/agent-interface-command@3.1.0
|
|
82
|
+
|
|
3
83
|
## 3.0.7
|
|
4
84
|
### Patch Changes
|
|
5
85
|
|
|
@@ -4316,6 +4316,16 @@ function otherClients(session, isCurrent) {
|
|
|
4316
4316
|
return others >= 1 ? others : null;
|
|
4317
4317
|
}
|
|
4318
4318
|
/**
|
|
4319
|
+
* The line for sealed sessions the host cannot open: the listing leaves them out, so without it they
|
|
4320
|
+
* would read as gone. The host's keys may be locked or may not open them at all, and which does not
|
|
4321
|
+
* cross the wire, so it never says to unlock. Same wording as the terminal's for a host's listing,
|
|
4322
|
+
* which this package does not depend on.
|
|
4323
|
+
*/
|
|
4324
|
+
function lockedSessionsLine(count) {
|
|
4325
|
+
if (count === void 0 || count <= 0) return null;
|
|
4326
|
+
return count === 1 ? "1 saved session is sealed and not listed here." : `${count} saved sessions are sealed and not listed here.`;
|
|
4327
|
+
}
|
|
4328
|
+
/**
|
|
4319
4329
|
* #3189 — this workspace's sessions on the left of the conversation, as in Claude Code Desktop:
|
|
4320
4330
|
* start a new one, or click another to make it current. Rows the host could not read are listed,
|
|
4321
4331
|
* disabled, so a damaged session never looks deleted. A refused switch comes back as a notice.
|
|
@@ -4329,6 +4339,7 @@ function SessionSidebar({ state, brand, className }) {
|
|
|
4329
4339
|
const listing = state.sessionListing ?? null;
|
|
4330
4340
|
const current = listing?.currentSessionId ?? null;
|
|
4331
4341
|
const unreadable = listing?.unreadableSessionIds ?? [];
|
|
4342
|
+
const lockedLine = lockedSessionsLine(listing?.lockedSessionCount);
|
|
4332
4343
|
const failed = state.sessionsError?.code === "list_failed" ? state.sessionsError.message : null;
|
|
4333
4344
|
const connected = state.status === "connected";
|
|
4334
4345
|
const [menu, setMenu] = (0, react.useState)(null);
|
|
@@ -4429,121 +4440,128 @@ function SessionSidebar({ state, brand, className }) {
|
|
|
4429
4440
|
}) : null,
|
|
4430
4441
|
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("ul", {
|
|
4431
4442
|
className: "space-y-px",
|
|
4432
|
-
children: [
|
|
4433
|
-
|
|
4434
|
-
|
|
4435
|
-
|
|
4436
|
-
|
|
4437
|
-
|
|
4438
|
-
|
|
4439
|
-
|
|
4440
|
-
|
|
4441
|
-
|
|
4442
|
-
|
|
4443
|
-
|
|
4444
|
-
|
|
4445
|
-
|
|
4446
|
-
|
|
4447
|
-
|
|
4448
|
-
|
|
4449
|
-
|
|
4450
|
-
event.
|
|
4451
|
-
|
|
4452
|
-
|
|
4443
|
+
children: [
|
|
4444
|
+
rows.map((session) => {
|
|
4445
|
+
const isCurrent = session.id === current;
|
|
4446
|
+
const others = otherClients(session, isCurrent);
|
|
4447
|
+
const isRenaming = renamingId === session.id;
|
|
4448
|
+
const statusParts = [session.live === true ? "Live" : null, others !== null ? `${others} ${others === 1 ? "other" : "others"}` : null].filter((part) => part !== null);
|
|
4449
|
+
const statusId = `session-status-${session.id}`;
|
|
4450
|
+
const updatedId = `session-updated-${session.id}`;
|
|
4451
|
+
const describedBy = statusParts.length > 0 ? `${updatedId} ${statusId}` : updatedId;
|
|
4452
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("li", {
|
|
4453
|
+
className: "group relative",
|
|
4454
|
+
children: [isRenaming ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
|
|
4455
|
+
autoFocus: true,
|
|
4456
|
+
"aria-label": `Rename ${sessionTitle(session)}`,
|
|
4457
|
+
value: renameValue,
|
|
4458
|
+
onChange: (event) => setRenameValue(event.target.value),
|
|
4459
|
+
onBlur: () => saveRename(session),
|
|
4460
|
+
onKeyDown: (event) => {
|
|
4461
|
+
if (event.key === "Enter") {
|
|
4462
|
+
event.preventDefault();
|
|
4463
|
+
saveRename(session);
|
|
4464
|
+
} else if (event.key === "Escape") {
|
|
4465
|
+
event.preventDefault();
|
|
4466
|
+
setRenamingId(null);
|
|
4467
|
+
}
|
|
4468
|
+
},
|
|
4469
|
+
className: "w-full rounded-lg border border-accent bg-raised px-2.5 py-2 text-[14px] text-foreground outline-none"
|
|
4470
|
+
}) : /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("button", {
|
|
4471
|
+
type: "button",
|
|
4472
|
+
"aria-current": isCurrent ? "true" : void 0,
|
|
4473
|
+
"aria-label": sessionTitle(session),
|
|
4474
|
+
"aria-describedby": describedBy,
|
|
4475
|
+
title: connected ? session.preview || session.id : "Reconnecting…",
|
|
4476
|
+
disabled: !connected,
|
|
4477
|
+
onClick: () => {
|
|
4478
|
+
if (!isCurrent) state.switchSession?.(session.id);
|
|
4479
|
+
},
|
|
4480
|
+
onContextMenu: (event) => {
|
|
4453
4481
|
event.preventDefault();
|
|
4454
|
-
|
|
4455
|
-
}
|
|
4456
|
-
|
|
4457
|
-
|
|
4458
|
-
|
|
4459
|
-
|
|
4460
|
-
|
|
4461
|
-
|
|
4462
|
-
|
|
4463
|
-
|
|
4464
|
-
|
|
4465
|
-
|
|
4466
|
-
|
|
4467
|
-
|
|
4468
|
-
|
|
4469
|
-
|
|
4470
|
-
|
|
4471
|
-
|
|
4472
|
-
|
|
4473
|
-
|
|
4474
|
-
|
|
4475
|
-
|
|
4476
|
-
|
|
4477
|
-
|
|
4478
|
-
|
|
4479
|
-
|
|
4480
|
-
|
|
4481
|
-
|
|
4482
|
-
|
|
4482
|
+
openMenuAt(session.id, event.clientX, event.clientY);
|
|
4483
|
+
},
|
|
4484
|
+
className: `w-full rounded-lg py-2 pl-2.5 pr-8 text-left transition-colors disabled:cursor-not-allowed disabled:opacity-60 ${isCurrent ? "bg-raised" : "hover:bg-hover"}`,
|
|
4485
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
4486
|
+
className: `block truncate text-[14px] leading-snug ${isCurrent ? "font-medium text-foreground" : "text-foreground/85"}`,
|
|
4487
|
+
children: sessionTitle(session)
|
|
4488
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
|
|
4489
|
+
className: "mt-0.5 flex items-center gap-1.5 text-[12.5px] tabular-nums text-subtle",
|
|
4490
|
+
children: [
|
|
4491
|
+
session.live === true ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
4492
|
+
title: "Live in the host",
|
|
4493
|
+
className: "h-1.5 w-1.5 flex-shrink-0 rounded-full bg-accent",
|
|
4494
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
4495
|
+
className: "sr-only",
|
|
4496
|
+
children: "live"
|
|
4497
|
+
})
|
|
4498
|
+
}) : null,
|
|
4499
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
4500
|
+
id: updatedId,
|
|
4501
|
+
children: formatUpdatedAt(session.updatedAt)
|
|
4502
|
+
}),
|
|
4503
|
+
others !== null ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
4504
|
+
"aria-hidden": "true",
|
|
4505
|
+
children: "·"
|
|
4506
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
|
|
4507
|
+
className: "text-muted-foreground",
|
|
4508
|
+
children: [
|
|
4509
|
+
others,
|
|
4510
|
+
" ",
|
|
4511
|
+
others === 1 ? "other" : "others"
|
|
4512
|
+
]
|
|
4513
|
+
})] }) : null,
|
|
4514
|
+
statusParts.length > 0 ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
4515
|
+
id: statusId,
|
|
4483
4516
|
className: "sr-only",
|
|
4484
|
-
children: "
|
|
4485
|
-
})
|
|
4486
|
-
|
|
4487
|
-
|
|
4488
|
-
|
|
4489
|
-
|
|
4490
|
-
|
|
4491
|
-
|
|
4492
|
-
|
|
4493
|
-
|
|
4494
|
-
|
|
4495
|
-
|
|
4496
|
-
|
|
4497
|
-
|
|
4498
|
-
|
|
4499
|
-
|
|
4500
|
-
|
|
4501
|
-
|
|
4502
|
-
|
|
4503
|
-
|
|
4504
|
-
|
|
4505
|
-
|
|
4506
|
-
|
|
4507
|
-
|
|
4508
|
-
|
|
4509
|
-
|
|
4510
|
-
|
|
4511
|
-
|
|
4512
|
-
|
|
4513
|
-
|
|
4514
|
-
|
|
4515
|
-
|
|
4516
|
-
|
|
4517
|
-
|
|
4518
|
-
|
|
4519
|
-
|
|
4520
|
-
|
|
4521
|
-
|
|
4522
|
-
|
|
4523
|
-
|
|
4524
|
-
|
|
4525
|
-
|
|
4526
|
-
|
|
4527
|
-
|
|
4528
|
-
|
|
4529
|
-
|
|
4530
|
-
|
|
4531
|
-
|
|
4532
|
-
className: "cursor-pointer text-muted-foreground hover:text-foreground",
|
|
4533
|
-
children: [
|
|
4534
|
-
unreadable.length,
|
|
4535
|
-
" older ",
|
|
4536
|
-
unreadable.length === 1 ? "session" : "sessions",
|
|
4537
|
-
" in this folder can't be opened"
|
|
4538
|
-
]
|
|
4539
|
-
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("ul", {
|
|
4540
|
-
className: "mt-1.5 space-y-0.5 font-mono text-[11.5px]",
|
|
4541
|
-
children: unreadable.map((id) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("li", {
|
|
4542
|
-
className: "truncate",
|
|
4543
|
-
children: id
|
|
4544
|
-
}, id))
|
|
4545
|
-
})]
|
|
4546
|
-
}) })]
|
|
4517
|
+
children: statusParts.join(", ")
|
|
4518
|
+
}) : null
|
|
4519
|
+
]
|
|
4520
|
+
})]
|
|
4521
|
+
}), !isRenaming ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
4522
|
+
type: "button",
|
|
4523
|
+
ref: (el) => {
|
|
4524
|
+
if (el) moreButtonRefs.current.set(session.id, el);
|
|
4525
|
+
else moreButtonRefs.current.delete(session.id);
|
|
4526
|
+
},
|
|
4527
|
+
"aria-label": `More for ${sessionTitle(session)}`,
|
|
4528
|
+
"aria-haspopup": "menu",
|
|
4529
|
+
"aria-expanded": menu?.sessionId === session.id,
|
|
4530
|
+
onClick: (event) => {
|
|
4531
|
+
const rect = event.currentTarget.getBoundingClientRect();
|
|
4532
|
+
openMenuAt(session.id, rect.left, rect.bottom);
|
|
4533
|
+
},
|
|
4534
|
+
className: "absolute right-1 top-1/2 -translate-y-1/2 rounded-md p-1 text-muted-foreground opacity-0 hover:bg-hover hover:text-foreground focus-visible:opacity-100 group-hover:opacity-100",
|
|
4535
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(lucide_react.MoreHorizontal, {
|
|
4536
|
+
size: 15,
|
|
4537
|
+
strokeWidth: 1.75
|
|
4538
|
+
})
|
|
4539
|
+
}) : null]
|
|
4540
|
+
}, session.id);
|
|
4541
|
+
}),
|
|
4542
|
+
unreadable.length > 0 && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("li", { children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("details", {
|
|
4543
|
+
className: "px-2.5 py-2 text-[12.5px] text-subtle",
|
|
4544
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("summary", {
|
|
4545
|
+
className: "cursor-pointer text-muted-foreground hover:text-foreground",
|
|
4546
|
+
children: [
|
|
4547
|
+
unreadable.length,
|
|
4548
|
+
" older ",
|
|
4549
|
+
unreadable.length === 1 ? "session" : "sessions",
|
|
4550
|
+
" in this folder can't be opened"
|
|
4551
|
+
]
|
|
4552
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("ul", {
|
|
4553
|
+
className: "mt-1.5 space-y-0.5 font-mono text-[11.5px]",
|
|
4554
|
+
children: unreadable.map((id) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("li", {
|
|
4555
|
+
className: "truncate",
|
|
4556
|
+
children: id
|
|
4557
|
+
}, id))
|
|
4558
|
+
})]
|
|
4559
|
+
}) }),
|
|
4560
|
+
lockedLine !== null && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("li", {
|
|
4561
|
+
className: "px-2.5 py-2 text-[12.5px] text-subtle",
|
|
4562
|
+
children: lockedLine
|
|
4563
|
+
})
|
|
4564
|
+
]
|
|
4547
4565
|
})
|
|
4548
4566
|
]
|
|
4549
4567
|
}),
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.cts","names":[],"sources":["../src/app-view/types.ts","../src/client/ws-session-client.ts","../src/hooks/prompt-state.ts","../src/hooks/session-client-types.ts","../src/hooks/useSessionClient.ts","../src/hooks/use-session-directory.ts","../src/components/composer-attachments.ts","../src/components/Composer.tsx","../src/client/runtime-host.ts","../src/hooks/ui-intent-state.ts","../src/components/ConversationView.tsx","../src/components/AgentActivityPanel.tsx","../src/components/AgentSwitcherSheet.tsx","../src/components/PermissionPrompt.tsx","../src/components/personal-usage-dashboard-types.ts","../src/components/PersonalUsageDashboard.tsx","../src/components/SessionSurface.tsx","../src/components/SessionSidebar.tsx","../src/components/SessionMonitor.tsx","../src/components/Dialog.tsx","../src/components/SettingsScreen.tsx","../src/components/HelpSheet.tsx","../src/components/Brand.tsx","../src/product-identity.tsx"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":[],"sources":["../src/app-view/types.ts","../src/client/ws-session-client.ts","../src/hooks/prompt-state.ts","../src/hooks/session-client-types.ts","../src/hooks/useSessionClient.ts","../src/hooks/use-session-directory.ts","../src/components/composer-attachments.ts","../src/components/Composer.tsx","../src/client/runtime-host.ts","../src/hooks/ui-intent-state.ts","../src/components/ConversationView.tsx","../src/components/AgentActivityPanel.tsx","../src/components/AgentSwitcherSheet.tsx","../src/components/PermissionPrompt.tsx","../src/components/personal-usage-dashboard-types.ts","../src/components/PersonalUsageDashboard.tsx","../src/components/SessionSurface.tsx","../src/components/SessionSidebar.tsx","../src/components/SessionMonitor.tsx","../src/components/Dialog.tsx","../src/components/SettingsScreen.tsx","../src/components/HelpSheet.tsx","../src/components/Brand.tsx","../src/product-identity.tsx"],"mappings":"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"}
|