antechamber 1.0.12 → 1.0.13

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 CHANGED
@@ -7,6 +7,15 @@ and this project uses [Semantic Versioning](https://semver.org/).
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [1.0.13] - 2026-10-22
11
+
12
+ ### Fixed
13
+
14
+ - Show the effort (thinking level) picker again in OpenChamber 2.x: `/api/model` and `/api/model/default`
15
+ now list each model's thinking levels in `variants` instead of an empty array.
16
+ - Keep a session's effort when OpenChamber 2.x reopens it on another device: the v2 session record now reports
17
+ the thinking level actually applied, instead of a stale one that the next prompt sent back.
18
+
10
19
  ## [1.0.12] - 2026-10-21
11
20
 
12
21
  ### Fixed
@@ -176,6 +176,11 @@ export declare class SessionManager {
176
176
  */
177
177
  setModel(sessionId: string, ref: ModelSelection): Promise<OCModelRef>;
178
178
  private setModelLive;
179
+ /**
180
+ * On a device with no saved pick, OpenChamber 2.x restores a reopened session's effort from this
181
+ * record and resends it with the next prompt, so a stale level silently resets the user's choice.
182
+ */
183
+ private syncRecordVariant;
179
184
  /**
180
185
  * Single funnel for "pi is now running this model": adopt it, persist it for
181
186
  * the next cold start, and tell the UI. Returns whether anything changed.
package/dist/sessions.js CHANGED
@@ -837,6 +837,7 @@ export class SessionManager {
837
837
  // not cost a round-trip nor emit a phantom "model switched" marker.
838
838
  if (s.model !== undefined && s.model.providerID === ref.providerID && s.model.modelID === ref.modelID) {
839
839
  await setThinkingLevel(s, pi, ref.variant);
840
+ this.syncRecordVariant(s);
840
841
  return s.model;
841
842
  }
842
843
  const res = await pi.command({
@@ -868,8 +869,17 @@ export class SessionManager {
868
869
  };
869
870
  this.applyPiModel(s, resolved.providerID, resolved.modelID);
870
871
  await setThinkingLevel(s, pi, ref.variant);
872
+ this.syncRecordVariant(s);
871
873
  return resolved;
872
874
  }
875
+ /**
876
+ * On a device with no saved pick, OpenChamber 2.x restores a reopened session's effort from this
877
+ * record and resends it with the next prompt, so a stale level silently resets the user's choice.
878
+ */
879
+ syncRecordVariant(s) {
880
+ if (s.info.model !== undefined)
881
+ s.info.model = { ...s.info.model, variant: s.thinkingLevel ?? "default" };
882
+ }
873
883
  /**
874
884
  * Single funnel for "pi is now running this model": adopt it, persist it for
875
885
  * the next cold start, and tell the UI. Returns whether anything changed.
package/dist/v2.d.ts CHANGED
@@ -86,6 +86,8 @@ interface CatalogModelLike {
86
86
  context: number;
87
87
  output: number;
88
88
  };
89
+ /** Thinking levels keyed by id, the v1 shape. */
90
+ variants?: Record<string, Record<string, unknown>>;
89
91
  }
90
92
  interface CatalogProviderLike {
91
93
  id: string;
package/dist/v2.js CHANGED
@@ -44,7 +44,8 @@ function toV2Model(m) {
44
44
  providerID: m.providerID,
45
45
  name: m.name,
46
46
  capabilities: { tools: true, input: inputs.length > 0 ? inputs : ["text"], output: ["text"] },
47
- variants: [],
47
+ // OpenChamber 2.x reads a model's efforts only from this array; empty hides the picker.
48
+ variants: Object.entries(m.variants ?? {}).map(([id, settings]) => ({ id, settings })),
48
49
  time: { released: 0 },
49
50
  cost: [
50
51
  { input: m.cost.input, output: m.cost.output, cache: { read: m.cost.cache.read, write: m.cost.cache.write } },
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "antechamber-omo-compat",
3
- "version": "1.0.12",
3
+ "version": "1.0.13",
4
4
  "description": "OpenChamber extension: displays OmO tool calls the way OmO means them when OpenChamber runs on antechamber",
5
5
  "private": true,
6
6
  "type": "module",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "antechamber-omo-graph",
3
- "version": "1.0.12",
3
+ "version": "1.0.13",
4
4
  "description": "OpenChamber extension: live, interactive graph of the OmO sub-agents behind the current session",
5
5
  "private": true,
6
6
  "type": "module",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "antechamber-omo-work",
3
- "version": "1.0.12",
3
+ "version": "1.0.13",
4
4
  "description": "OpenChamber 2.x Work Status section: OmO todo phases, monitors, eval cells and background work of the current session",
5
5
  "private": true,
6
6
  "type": "module",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "antechamber",
3
- "version": "1.0.12",
3
+ "version": "1.0.13",
4
4
  "description": "OpenCode-compatible HTTP/SSE server that lets OpenChamber drive the pi coding agent (and OmO) over RPC",
5
5
  "type": "module",
6
6
  "license": "MIT",