antechamber 1.0.1 → 1.0.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/CHANGELOG.md +19 -0
- package/README.md +30 -9
- package/dist/sessions.d.ts +1 -0
- package/dist/sessions.js +13 -4
- package/dist/v2.js +9 -1
- package/extensions/omo-compat/README.md +5 -2
- package/extensions/omo-compat/package.json +1 -1
- package/extensions/omo-dag/README.md +10 -8
- package/extensions/omo-dag/package.json +1 -1
- package/extensions/omo-work/README.md +6 -3
- package/extensions/omo-work/package.json +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,25 @@ and this project uses [Semantic Versioning](https://semver.org/).
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [1.0.3] - 2026-10-20
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
|
|
14
|
+
- The OpenChamber extensions install by Git URL, and OpenChamber offers each release under
|
|
15
|
+
**Update** in Settings → Extensions: every release commits them to the `extension/omo-graph`,
|
|
16
|
+
`extension/omo-work` and `extension/omo-compat` branches, so add
|
|
17
|
+
`https://github.com/eliottness/antechamber#extension/omo-graph` (or `#extension/omo-work`,
|
|
18
|
+
`#extension/omo-compat`). The bare repository URL keeps failing with OpenChamber's "panel.id must
|
|
19
|
+
be kebab-case" toast, because it points at antechamber itself. ZIP installs still work but are
|
|
20
|
+
never updated.
|
|
21
|
+
|
|
22
|
+
## [1.0.2] - 2026-10-20
|
|
23
|
+
|
|
24
|
+
### Fixed
|
|
25
|
+
|
|
26
|
+
- Restore main-session costs before listing sessions after a restart, and keep live usage totals cumulative
|
|
27
|
+
across assistant steps.
|
|
28
|
+
|
|
10
29
|
## [1.0.1] - 2026-10-20
|
|
11
30
|
|
|
12
31
|
### Added
|
package/README.md
CHANGED
|
@@ -228,13 +228,14 @@ source fits where OpenChamber runs:
|
|
|
228
228
|
| OpenChamber runs | Add | Value |
|
|
229
229
|
|---|---|---|
|
|
230
230
|
| on the machine where antechamber is installed | **Folder** | the path `antechamber setup` prints: `$(npm root -g)/antechamber/extensions/omo-dag` for npm installs, `<checkout>/extensions/omo-dag` after `npm run build` from source |
|
|
231
|
-
| anywhere (remote host, browser-only access) | **URL** | `https://github.com/eliottness/antechamber/
|
|
232
|
-
| anywhere, offline | **ZIP file** |
|
|
231
|
+
| anywhere (remote host, browser-only access) | **URL** | `https://github.com/eliottness/antechamber#extension/omo-graph`, a Git install that OpenChamber offers to update after each release |
|
|
232
|
+
| anywhere, offline | **ZIP file** | `antechamber-omo-graph.zip` from a GitHub release, or built with `npm run build && npm run pack:extension -- antechamber-omo-graph.zip`. OpenChamber never updates ZIP installs |
|
|
233
233
|
|
|
234
234
|
Then approve its two permissions (follow sessions, run the local service) and
|
|
235
|
-
open it from the rail icon.
|
|
236
|
-
|
|
237
|
-
extension, and
|
|
235
|
+
open it from the rail icon. Keep the `#extension/omo-graph` part of the URL:
|
|
236
|
+
the bare repository URL makes OpenChamber clone antechamber itself, whose
|
|
237
|
+
`package.json` is not an extension, and OpenChamber words that rejection as
|
|
238
|
+
"panel.id must be kebab-case". Details:
|
|
238
239
|
[extensions/omo-dag/README.md](extensions/omo-dag/README.md).
|
|
239
240
|
|
|
240
241
|
## OpenChamber extension: OmO Work
|
|
@@ -248,8 +249,8 @@ with a Fire now button. On 2.x, monitors appear here instead of as subagent
|
|
|
248
249
|
sessions.
|
|
249
250
|
|
|
250
251
|
Add it like OmO Graph: the folder `antechamber setup` prints
|
|
251
|
-
(`.../extensions/omo-work`, built by `npm run build`), or
|
|
252
|
-
`https://github.com/eliottness/antechamber/
|
|
252
|
+
(`.../extensions/omo-work`, built by `npm run build`), or the URL
|
|
253
|
+
`https://github.com/eliottness/antechamber#extension/omo-work`.
|
|
253
254
|
Approve its local service. It needs an antechamber version that writes a
|
|
254
255
|
work-status token into its run record (this release or newer) and an
|
|
255
256
|
OpenChamber restart after upgrading. Details:
|
|
@@ -262,11 +263,31 @@ or newer. It tells OpenChamber how to display OmO tool calls that antechamber
|
|
|
262
263
|
maps onto OpenChamber's cards; today it heads eval cells with `JS Eval` or
|
|
263
264
|
`Python Eval` and the cell's summary. Add it the same way as OmO Graph: the
|
|
264
265
|
folder `antechamber setup` prints (`.../extensions/omo-compat`, no build
|
|
265
|
-
needed), or the
|
|
266
|
-
`https://github.com/eliottness/antechamber/
|
|
266
|
+
needed), or the URL
|
|
267
|
+
`https://github.com/eliottness/antechamber#extension/omo-compat`.
|
|
267
268
|
It asks for no permissions. Details:
|
|
268
269
|
[extensions/omo-compat/README.md](extensions/omo-compat/README.md).
|
|
269
270
|
|
|
271
|
+
## Upgrading the OpenChamber extensions
|
|
272
|
+
|
|
273
|
+
Every antechamber release ships the three extensions at its own version. How
|
|
274
|
+
an installed extension moves to a new release depends on how it was added:
|
|
275
|
+
|
|
276
|
+
- **Git URL** (`https://github.com/eliottness/antechamber#extension/...`):
|
|
277
|
+
Settings → Extensions shows **Update available** once a release is out
|
|
278
|
+
(OpenChamber checks at most hourly; **Check for updates** checks now).
|
|
279
|
+
**Update** replaces it in place and keeps its approvals and settings.
|
|
280
|
+
- **Folder**: the folder belongs to the antechamber installation, so it
|
|
281
|
+
changes with `antechamber upgrade` (or `git pull && npm ci && npm run build`
|
|
282
|
+
in a checkout). Toggle the extension off and on to restart its service.
|
|
283
|
+
- **ZIP** (file or release URL): OpenChamber never checks these. Add the new
|
|
284
|
+
archive and choose **Reinstall**, or switch to the Git URL once: remove the
|
|
285
|
+
extension, then add it by URL.
|
|
286
|
+
|
|
287
|
+
Each extension is built against the antechamber of the same release, so
|
|
288
|
+
upgrade antechamber too and restart OpenChamber to run it; `antechamber
|
|
289
|
+
doctor` shows the running version.
|
|
290
|
+
|
|
270
291
|
## Configuration
|
|
271
292
|
|
|
272
293
|
Connector settings use the `ANTECHAMBER_` prefix; the deprecated `OCPI_`
|
package/dist/sessions.d.ts
CHANGED
|
@@ -119,6 +119,7 @@ export declare class SessionManager {
|
|
|
119
119
|
* global/recent view; `list(directory)` stays the per-project source of truth.
|
|
120
120
|
*/
|
|
121
121
|
listAll(): OCSession[];
|
|
122
|
+
private sessionInfo;
|
|
122
123
|
get(sessionId: string): ManagedSession | undefined;
|
|
123
124
|
remove(sessionId: string): Promise<boolean>;
|
|
124
125
|
private removeLive;
|
package/dist/sessions.js
CHANGED
|
@@ -312,10 +312,10 @@ export class SessionManager {
|
|
|
312
312
|
this.subagents.restoreAll();
|
|
313
313
|
if (directory !== undefined) {
|
|
314
314
|
this.ensureScanned(directory);
|
|
315
|
-
return [...this.sessions.values()].
|
|
315
|
+
return [...this.sessions.values()].filter((s) => s.info.directory === directory).map((s) => this.sessionInfo(s));
|
|
316
316
|
}
|
|
317
317
|
// Unfiltered: keep the old semantics — live sessions only.
|
|
318
|
-
return [...this.sessions.values()].filter((s) => s.restored === undefined).map((s) => s
|
|
318
|
+
return [...this.sessions.values()].filter((s) => s.restored === undefined).map((s) => this.sessionInfo(s));
|
|
319
319
|
}
|
|
320
320
|
/**
|
|
321
321
|
* Every restorable session on disk (all directories) plus live ones. Backs the
|
|
@@ -326,7 +326,12 @@ export class SessionManager {
|
|
|
326
326
|
this.refreshNativeTitles();
|
|
327
327
|
this.ensureAllScanned();
|
|
328
328
|
this.subagents.restoreAll();
|
|
329
|
-
return [...this.sessions.values()].map((s) => s
|
|
329
|
+
return [...this.sessions.values()].map((s) => this.sessionInfo(s));
|
|
330
|
+
}
|
|
331
|
+
sessionInfo(s) {
|
|
332
|
+
if (s.restored !== undefined)
|
|
333
|
+
this.ensureMessages(s);
|
|
334
|
+
return s.info;
|
|
330
335
|
}
|
|
331
336
|
get(sessionId) {
|
|
332
337
|
if (this.disposed)
|
|
@@ -334,9 +339,13 @@ export class SessionManager {
|
|
|
334
339
|
const live = this.sessions.get(sessionId);
|
|
335
340
|
if (live !== undefined) {
|
|
336
341
|
this.refreshNativeTitles();
|
|
342
|
+
this.sessionInfo(live);
|
|
337
343
|
return live;
|
|
338
344
|
}
|
|
339
|
-
|
|
345
|
+
const restored = this.subagents.restore(sessionId) ?? this.resolveRestored(sessionId);
|
|
346
|
+
if (restored !== undefined)
|
|
347
|
+
this.sessionInfo(restored);
|
|
348
|
+
return restored;
|
|
340
349
|
}
|
|
341
350
|
async remove(sessionId) {
|
|
342
351
|
return this.lifecycle.run(() => this.removeLive(sessionId));
|
package/dist/v2.js
CHANGED
|
@@ -282,6 +282,15 @@ export class V2EventTranslator {
|
|
|
282
282
|
? [this.frame(directory, "session.metadata.updated", { sessionID: info.id, metadata: info.metadata })]
|
|
283
283
|
: []),
|
|
284
284
|
this.frame(directory, "session.agent.selected", { sessionID: info.id, agent: info.agent ?? getAgentName() }),
|
|
285
|
+
...(info.cost !== undefined
|
|
286
|
+
? [
|
|
287
|
+
this.frame(directory, "session.usage.updated", {
|
|
288
|
+
sessionID: info.id,
|
|
289
|
+
cost: info.cost,
|
|
290
|
+
tokens: info.tokens ?? zeroTokens(),
|
|
291
|
+
}),
|
|
292
|
+
]
|
|
293
|
+
: []),
|
|
285
294
|
];
|
|
286
295
|
}
|
|
287
296
|
case "session.diff":
|
|
@@ -462,7 +471,6 @@ export class V2EventTranslator {
|
|
|
462
471
|
return [];
|
|
463
472
|
st.ended = true;
|
|
464
473
|
return [
|
|
465
|
-
this.frame(directory, "session.usage.updated", { sessionID: st.sessionID, cost: st.cost, tokens: st.tokens }),
|
|
466
474
|
st.finish === "error"
|
|
467
475
|
? this.frame(directory, "session.step.failed", {
|
|
468
476
|
sessionID: st.sessionID,
|
|
@@ -31,8 +31,11 @@ In OpenChamber, open **Settings → Extensions → Add**:
|
|
|
31
31
|
`$(npm root -g)/antechamber/extensions/omo-compat` for an npm install, or
|
|
32
32
|
`<checkout>/extensions/omo-compat` from a source checkout. It needs no build.
|
|
33
33
|
- **URL**, from anywhere:
|
|
34
|
-
`https://github.com/eliottness/antechamber/
|
|
35
|
-
|
|
34
|
+
`https://github.com/eliottness/antechamber#extension/omo-compat`, a Git
|
|
35
|
+
install that OpenChamber offers to update after each release. Every GitHub
|
|
36
|
+
release also attaches
|
|
37
|
+
`https://github.com/eliottness/antechamber/releases/latest/download/antechamber-omo-compat.zip`,
|
|
38
|
+
which installs by URL too, but OpenChamber never updates ZIP installs.
|
|
36
39
|
|
|
37
40
|
There is nothing to approve and no rail icon. Reload open chats after
|
|
38
41
|
installing so their cards pick up the new header.
|
|
@@ -58,16 +58,18 @@ fits where OpenChamber runs:
|
|
|
58
58
|
- source checkout: `<checkout>/extensions/omo-dag`, after `npm run build`
|
|
59
59
|
(which also writes `panel/main.js` and `service/main.js`).
|
|
60
60
|
- **URL**, from anywhere, including a remote OpenChamber you only reach in a
|
|
61
|
-
browser:
|
|
62
|
-
`
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
61
|
+
browser: `https://github.com/eliottness/antechamber#extension/omo-graph`.
|
|
62
|
+
Every release commits the built extension to the `extension/omo-graph`
|
|
63
|
+
branch, so OpenChamber offers it under **Update** in Settings → Extensions.
|
|
64
|
+
To pin a version instead, install its release archive by URL,
|
|
65
|
+
`https://github.com/eliottness/antechamber/releases/download/vX.Y.Z/antechamber-omo-graph.zip`;
|
|
66
|
+
OpenChamber never updates ZIP installs.
|
|
67
|
+
- **ZIP file**, for offline hosts: that archive, downloaded, or built with
|
|
67
68
|
`npm run build && npm run pack:extension -- antechamber-omo-graph.zip`.
|
|
68
69
|
|
|
69
|
-
|
|
70
|
-
which is antechamber itself, and rejects it as
|
|
70
|
+
Keep the `#extension/omo-graph` part of the URL. Without it OpenChamber clones
|
|
71
|
+
the repository root, which is antechamber itself, and rejects it as
|
|
72
|
+
`invalid-manifest`, which its toast words as "panel.id must be kebab-case".
|
|
71
73
|
|
|
72
74
|
Approve the request. The extension asks for two things:
|
|
73
75
|
|
|
@@ -31,9 +31,12 @@ In OpenChamber, open **Settings → Extensions → Add**:
|
|
|
31
31
|
installed: the path `antechamber setup` prints,
|
|
32
32
|
`$(npm root -g)/antechamber/extensions/omo-work` for npm installs or
|
|
33
33
|
`<checkout>/extensions/omo-work` after `npm run build`.
|
|
34
|
-
- **URL**:
|
|
35
|
-
|
|
36
|
-
|
|
34
|
+
- **URL**: `https://github.com/eliottness/antechamber#extension/omo-work`, a
|
|
35
|
+
Git install that OpenChamber offers to update after each release. The
|
|
36
|
+
release archive,
|
|
37
|
+
`https://github.com/eliottness/antechamber/releases/latest/download/antechamber-omo-work.zip`,
|
|
38
|
+
also installs by URL, but OpenChamber never updates ZIP installs.
|
|
39
|
+
- **ZIP file**: that archive, or
|
|
37
40
|
`npm run build && npm run pack:work-extension -- antechamber-omo-work.zip`.
|
|
38
41
|
|
|
39
42
|
Approve its **local service**. The section then appears in the Work Status
|