@cabane/companion 0.6.166 → 0.6.168

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/cli.js CHANGED
@@ -17323,6 +17323,10 @@ var CompanionSupervisor = class {
17323
17323
  heartbeated = false;
17324
17324
  recoveryCursor;
17325
17325
  recoveredTurns = /* @__PURE__ */ new Set();
17326
+ // Agents assigned here, as `workspaceId|agentId`, whose sign-in to Cabane is missing and
17327
+ // couldn't be had back on the last pull. A dispatch for one is dropped as `missing_credential`,
17328
+ // so the room names that cause rather than a roster miss. Rebuilt on every pull.
17329
+ uncredentialed = /* @__PURE__ */ new Set();
17326
17330
  heartbeatTimer = null;
17327
17331
  inFlightHeartbeat = null;
17328
17332
  pollTimer = null;
@@ -17618,6 +17622,9 @@ var CompanionSupervisor = class {
17618
17622
  if (it.credential) setCredential(device.id, it.agentId, it.credential);
17619
17623
  }
17620
17624
  items = await this.restoreMissingCredentials(device.id, items);
17625
+ this.uncredentialed = new Set(
17626
+ items.filter((it) => !it.credential && !getCredential(device.id, it.agentId)).map((it) => `${it.workspaceId}|${it.agentId}`)
17627
+ );
17621
17628
  const byWorkspace = /* @__PURE__ */ new Map();
17622
17629
  for (const it of items) {
17623
17630
  const list = byWorkspace.get(it.workspaceId) ?? [];
@@ -17726,7 +17733,7 @@ var CompanionSupervisor = class {
17726
17733
  if (!credential) {
17727
17734
  this.log.error(
17728
17735
  { workspaceId, agentId: it.agentId, username: it.agentUsername },
17729
- `Cannot run ${it.agentDisplayName}: its sign-in to Cabane is missing. Reassign it to this device in Cabane.`
17736
+ `Cannot run ${it.agentDisplayName}: its sign-in to Cabane is missing and Cabane didn't send a new one. Asking again on the next check.`
17730
17737
  );
17731
17738
  this.removeAgent(wr, it.agentId);
17732
17739
  this.hub.setAgent(workspaceId, {
@@ -18212,7 +18219,8 @@ var CompanionSupervisor = class {
18212
18219
  conversationId: payload.conversationId,
18213
18220
  agentId: payload.agentId,
18214
18221
  messageId: payload.messageId,
18215
- reason: "agent_not_on_device"
18222
+ reason: "agent_not_on_device",
18223
+ ...this.uncredentialed.has(`${workspaceId}|${payload.agentId}`) ? { detail: "missing_credential" } : {}
18216
18224
  });
18217
18225
  this.log.debug(
18218
18226
  {
package/dist/runtime.js CHANGED
@@ -13886,6 +13886,10 @@ var CompanionSupervisor = class {
13886
13886
  heartbeated = false;
13887
13887
  recoveryCursor;
13888
13888
  recoveredTurns = /* @__PURE__ */ new Set();
13889
+ // Agents assigned here, as `workspaceId|agentId`, whose sign-in to Cabane is missing and
13890
+ // couldn't be had back on the last pull. A dispatch for one is dropped as `missing_credential`,
13891
+ // so the room names that cause rather than a roster miss. Rebuilt on every pull.
13892
+ uncredentialed = /* @__PURE__ */ new Set();
13889
13893
  heartbeatTimer = null;
13890
13894
  inFlightHeartbeat = null;
13891
13895
  pollTimer = null;
@@ -14181,6 +14185,9 @@ var CompanionSupervisor = class {
14181
14185
  if (it.credential) setCredential(device.id, it.agentId, it.credential);
14182
14186
  }
14183
14187
  items = await this.restoreMissingCredentials(device.id, items);
14188
+ this.uncredentialed = new Set(
14189
+ items.filter((it) => !it.credential && !getCredential(device.id, it.agentId)).map((it) => `${it.workspaceId}|${it.agentId}`)
14190
+ );
14184
14191
  const byWorkspace = /* @__PURE__ */ new Map();
14185
14192
  for (const it of items) {
14186
14193
  const list = byWorkspace.get(it.workspaceId) ?? [];
@@ -14289,7 +14296,7 @@ var CompanionSupervisor = class {
14289
14296
  if (!credential) {
14290
14297
  this.log.error(
14291
14298
  { workspaceId, agentId: it.agentId, username: it.agentUsername },
14292
- `Cannot run ${it.agentDisplayName}: its sign-in to Cabane is missing. Reassign it to this device in Cabane.`
14299
+ `Cannot run ${it.agentDisplayName}: its sign-in to Cabane is missing and Cabane didn't send a new one. Asking again on the next check.`
14293
14300
  );
14294
14301
  this.removeAgent(wr, it.agentId);
14295
14302
  this.hub.setAgent(workspaceId, {
@@ -14775,7 +14782,8 @@ var CompanionSupervisor = class {
14775
14782
  conversationId: payload.conversationId,
14776
14783
  agentId: payload.agentId,
14777
14784
  messageId: payload.messageId,
14778
- reason: "agent_not_on_device"
14785
+ reason: "agent_not_on_device",
14786
+ ...this.uncredentialed.has(`${workspaceId}|${payload.agentId}`) ? { detail: "missing_credential" } : {}
14779
14787
  });
14780
14788
  this.log.debug(
14781
14789
  {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cabane/companion",
3
- "version": "0.6.166",
3
+ "version": "0.6.168",
4
4
  "type": "module",
5
5
  "description": "The Cabane Companion (headless): connect an agent on your machine to your Cabane workspace as a responder — drive work against your own codebase, files, and MCP servers without putting any of it in Cabane.",
6
6
  "license": "UNLICENSED",
@@ -30,10 +30,10 @@
30
30
  "prepublishOnly": "pnpm build"
31
31
  },
32
32
  "dependencies": {
33
- "@anthropic-ai/claude-agent-sdk": "0.3.289",
33
+ "@anthropic-ai/claude-agent-sdk": "0.3.296",
34
34
  "@anthropic-ai/sandbox-runtime": "0.0.77",
35
35
  "@clack/prompts": "1.8.1",
36
- "@openai/codex-sdk": "0.160.0",
36
+ "@openai/codex-sdk": "0.162.1",
37
37
  "@hono/node-server": "1.19.14",
38
38
  "commander": "12.1.0",
39
39
  "eventsource-parser": "3.0.8",