usebeeline 0.1.24 → 0.1.25

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.
@@ -16843,6 +16843,7 @@ var SquireTaskRelay = class {
16843
16843
  authorize;
16844
16844
  makeClient;
16845
16845
  onApprovalDecided;
16846
+ onSessionEnded;
16846
16847
  server;
16847
16848
  url;
16848
16849
  token = randomUUID3();
@@ -16863,6 +16864,7 @@ var SquireTaskRelay = class {
16863
16864
  log: callbacks.onDiagnostic,
16864
16865
  onNotification: callbacks.onNotification
16865
16866
  }), onApprovalDecided = () => {
16867
+ }, onSessionEnded = () => {
16866
16868
  }) {
16867
16869
  this.agentId = agentId;
16868
16870
  this.roomId = roomId;
@@ -16870,6 +16872,11 @@ var SquireTaskRelay = class {
16870
16872
  this.authorize = authorize;
16871
16873
  this.makeClient = makeClient;
16872
16874
  this.onApprovalDecided = onApprovalDecided;
16875
+ this.onSessionEnded = onSessionEnded;
16876
+ }
16877
+ ended(ids) {
16878
+ for (const id of ids)
16879
+ this.onSessionEnded(id);
16873
16880
  }
16874
16881
  async listen() {
16875
16882
  if (this.closed)
@@ -17011,6 +17018,7 @@ var SquireTaskRelay = class {
17011
17018
  sessionId: redactedSessionId(task.sessions.values().next().value)
17012
17019
  });
17013
17020
  forgetSquireSessions(task.sessions);
17021
+ this.ended(task.sessions);
17014
17022
  task.sessions.clear();
17015
17023
  task.pendingApprovals.clear();
17016
17024
  }
@@ -17062,6 +17070,7 @@ var SquireTaskRelay = class {
17062
17070
  });
17063
17071
  this.task.client.close();
17064
17072
  forgetSquireSessions(this.task.sessions);
17073
+ this.ended(this.task.sessions);
17065
17074
  this.task.sessions.clear();
17066
17075
  this.task.pendingApprovals.clear();
17067
17076
  this.task = void 0;
@@ -17145,6 +17154,7 @@ var SquireTaskRelay = class {
17145
17154
  for (const id of requestedIds)
17146
17155
  task.sessions.delete(id);
17147
17156
  forgetSquireSessions(requestedIds);
17157
+ this.ended(requestedIds);
17148
17158
  this.releasePendingApprovals(task, requestedIds);
17149
17159
  this.log("call-error", task, {
17150
17160
  method: input.method,
@@ -17160,6 +17170,7 @@ var SquireTaskRelay = class {
17160
17170
  for (const id of requestedIds)
17161
17171
  task.sessions.delete(id);
17162
17172
  forgetSquireSessions(requestedIds);
17173
+ this.ended(requestedIds);
17163
17174
  this.releasePendingApprovals(task, requestedIds);
17164
17175
  } else if (usingOwnConnection) {
17165
17176
  const created = sessionIds(result);
@@ -17209,6 +17220,7 @@ var SquireTaskRelay = class {
17209
17220
  } catch (error) {
17210
17221
  if (error instanceof Error && /timed out/.test(error.message)) {
17211
17222
  task.dead = true;
17223
+ this.ended(task.sessions);
17212
17224
  task.sessions.clear();
17213
17225
  task.pendingApprovals.clear();
17214
17226
  task.client.close();
@@ -32599,7 +32611,7 @@ Follow your own owner first, then this Workspace's owner and admins, then member
32599
32611
 
32600
32612
  A **tool** is something you can use once a human adds it; a **key** is the credential that tool holds for that human. You spend a key through the mounted connector and never see the credential itself.
32601
32613
 
32602
- The tools this build knows, what each is for, and which the owner of this machine already has are one call away: beeline-agent connectors_status. That read is the Connectors page for the machine and owner you actually run on, not the person who asked. Connected apps are listed once per app with a stable ID. Their sign-in and credentials stay with the server. Trusty Squire signs up and signs in to any website hands-off for the person; its vault holds keys when needed. operate_drive drives a whole flow, and flat steps (operate_click, operate_type, operate_select, operate_press, operate_scroll, operate_wait, operate_navigate, operate_read_inbox, operate_extract, and the rest of its flat operate_* actions) handle one action at a time. Tailscale installs its CLI on the selected helper and opens Tailscale's own browser sign-in; once connected, use the CLI for tailnet resources and tailscale file cp or tailscale file get for Taildrop. The wallet is created only from the Connectors page. When you cannot reach a tool, say: I can't reach X on this machine because Y; to fix it, Z. Give one explanation, then take or offer Z.
32614
+ The tools this build knows, what each is for, and which the owner of this machine already has are one call away: beeline-agent connectors_status. That read is the Connectors page for the machine and owner you actually run on, not the person who asked. Connected apps are listed once per app with a stable ID. Their sign-in and credentials stay with the server. Trusty Squire signs up and signs in to any website hands-off for the person; its vault holds keys when needed. operate_drive drives a whole flow, and flat steps (operate_click, operate_type, operate_select, operate_press, operate_scroll, operate_wait, operate_navigate, operate_read_inbox, operate_extract, and the rest of its flat operate_* actions) handle one action at a time. When you are stuck in an existing browser, call share_browser. The call waits for a person to hand the browser back; do not touch the browser again until that call returns. Tailscale installs its CLI on the selected helper and opens Tailscale's own browser sign-in; once connected, use the CLI for tailnet resources and tailscale file cp or tailscale file get for Taildrop. The wallet is created only from the Connectors page. When you cannot reach a tool, say: I can't reach X on this machine because Y; to fix it, Z. Give one explanation, then take or offer Z.
32603
32615
 
32604
32616
  **Inspect your own host before answering.** When a question is about a system on the machine you run on, inspect its live state with the tools you have: processes, logs, local endpoints or service status. Say what you checked. Memory and Room history are not evidence of current state.
32605
32617
 
@@ -43190,6 +43202,9 @@ var MonolithRoomTurnLoop = class {
43190
43202
  })).allowed, options.config.operatorHome ?? homedir17(), void 0, (decision2) => {
43191
43203
  options.api.execute("postSquireApprovalDecision", { roomId: options.roomId, ...decision2 }).catch(() => {
43192
43204
  });
43205
+ }, (sessionId) => {
43206
+ options.api.execute("endComputerSession", { roomId: options.roomId, sessionId }).catch(() => {
43207
+ });
43193
43208
  });
43194
43209
  this.options = { ...options, api: this.commandContext.bind(options.api) };
43195
43210
  options.grantRunner?.register(options.roomId, {
@@ -45359,6 +45374,9 @@ var MonolithCornerTurnLoop = class {
45359
45374
  })).allowed, options.config.operatorHome ?? homedir18(), void 0, (decision2) => {
45360
45375
  options.api.execute("postSquireApprovalDecision", { roomId: options.cornerId, ...decision2 }).catch(() => {
45361
45376
  });
45377
+ }, (sessionId) => {
45378
+ options.api.execute("endComputerSession", { roomId: options.cornerId, sessionId }).catch(() => {
45379
+ });
45362
45380
  });
45363
45381
  this.options = { ...options, api: this.commandContext.bind(options.api) };
45364
45382
  options.grantRunner?.register(options.cornerId, {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "usebeeline",
3
- "version": "0.1.24",
3
+ "version": "0.1.25",
4
4
  "description": "Connect an AI coding agent to Beeline with one command.",
5
5
  "homepage": "https://usebeeline.app",
6
6
  "bugs": {