@tandryio/opencode 0.1.0-alpha.3 → 0.1.0-alpha.5

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/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Tandry for OpenCode
2
2
 
3
- Native plugin for OpenCode 1.18.30. It registers nine `tandry_*` tools and five
3
+ Native plugin for OpenCode 1.18.30. It registers eleven `tandry_*` tools and five
4
4
  commands: `/tandry-join`, `/tandry-new-room`, `/tandry-leave`, `/tandry-members`,
5
5
  and `/tandry-status`.
6
6
 
@@ -704,7 +704,6 @@ Cloudflare-generated runtime declarations also retain their upstream headers.
704
704
  - [why-is-node-running@2.3.0](https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz) — MIT; [notice 6a134e51aa31](#license-6a134e51aa31)
705
705
  - [workerd@1.20260911.1](https://registry.npmjs.org/workerd/-/workerd-1.20260911.1.tgz) — Apache-2.0; [notice bb28c48e3e07](#license-bb28c48e3e07)
706
706
  - [workerd@1.20260916.1](https://registry.npmjs.org/workerd/-/workerd-1.20260916.1.tgz) — Apache-2.0; [notice bb28c48e3e07](#license-bb28c48e3e07)
707
- - [wrangler@4.131.1](https://registry.npmjs.org/wrangler/-/wrangler-4.131.1.tgz) — MIT OR Apache-2.0; [notice b30df9a48463](#license-b30df9a48463), [notice 9bb3b077cc86](#license-9bb3b077cc86)
708
707
  - [wrangler@4.133.0](https://registry.npmjs.org/wrangler/-/wrangler-4.133.0.tgz) — MIT OR Apache-2.0; [notice b30df9a48463](#license-b30df9a48463), [notice 9bb3b077cc86](#license-9bb3b077cc86)
709
708
  - [wrappy@1.0.2](https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz) — ISC; [notice 4ec3d4c66cd8](#license-4ec3d4c66cd8)
710
709
  - [ws@8.21.0](https://registry.npmjs.org/ws/-/ws-8.21.0.tgz) — MIT; [notice 2b29dcfe0d64](#license-2b29dcfe0d64)
@@ -11956,7 +11955,6 @@ SOFTWARE.
11956
11955
  - @cloudflare/vitest-plugin@1.1.11: https://raw.githubusercontent.com/cloudflare/workers-sdk/main/LICENSE-MIT
11957
11956
  - miniflare@5.20260911.0-alpha: https://raw.githubusercontent.com/cloudflare/workers-sdk/main/LICENSE-MIT
11958
11957
  - miniflare@5.20260916.0-alpha: https://raw.githubusercontent.com/cloudflare/workers-sdk/main/LICENSE-MIT
11959
- - wrangler@4.131.1: https://raw.githubusercontent.com/cloudflare/workers-sdk/main/LICENSE-MIT
11960
11958
  - wrangler@4.133.0: https://raw.githubusercontent.com/cloudflare/workers-sdk/main/LICENSE-MIT
11961
11959
 
11962
11960
  ```text
@@ -13372,7 +13370,6 @@ SOFTWARE.
13372
13370
 
13373
13371
  - @cloudflare/kv-asset-handler@0.5.0: https://raw.githubusercontent.com/cloudflare/workers-sdk/main/LICENSE-APACHE
13374
13372
  - @cloudflare/unenv-preset@2.16.1: https://raw.githubusercontent.com/cloudflare/workers-sdk/main/LICENSE-APACHE
13375
- - wrangler@4.131.1: https://raw.githubusercontent.com/cloudflare/workers-sdk/main/LICENSE-APACHE
13376
13373
  - wrangler@4.133.0: https://raw.githubusercontent.com/cloudflare/workers-sdk/main/LICENSE-APACHE
13377
13374
 
13378
13375
  ```text
package/dist/index.js CHANGED
@@ -21058,6 +21058,7 @@ function inactive(view) {
21058
21058
  if (!view.joined) return "This conversation has not joined a room.";
21059
21059
  if (view.ended) return view.ended.message && view.ended.reason === "upgrade_required" ? view.ended.message : ENDED[view.ended.reason];
21060
21060
  if (!view.connected) return "The connection to the Hub dropped; reconnecting. Operations still work.";
21061
+ if (!view.wakeable) return view.unwakeable ?? "This conversation cannot be woken while idle right now; mail waits for its next turn.";
21061
21062
  return null;
21062
21063
  }
21063
21064
 
@@ -21089,11 +21090,12 @@ function parseAddress(address) {
21089
21090
  const slash = address.indexOf("/");
21090
21091
  return { handle: address.slice(0, slash), name: address.slice(slash + 1) };
21091
21092
  }
21092
- var HostKind = external_exports.enum(["claude", "codex", "kimi", "pi", "opencode", "dsh", "claude-web", "chatgpt-web", "web"]);
21093
+ var HostKind = external_exports.enum(["claude", "codex", "grok", "kimi", "pi", "opencode", "dsh", "claude-web", "chatgpt-web", "web"]);
21093
21094
  var Tier = external_exports.enum(["push", "pull"]);
21094
21095
  var HOST_LABELS = {
21095
21096
  claude: "Claude Code",
21096
21097
  codex: "Codex",
21098
+ grok: "Grok Build",
21097
21099
  kimi: "Kimi Code",
21098
21100
  pi: "pi",
21099
21101
  opencode: "opencode",
@@ -21112,8 +21114,6 @@ var MemberState = external_exports.enum(["online", "offline"]);
21112
21114
  var Presence = external_exports.object({
21113
21115
  state: MemberState,
21114
21116
  tier: Tier,
21115
- /** Only meaningful for an online push member. */
21116
- wakeable: external_exports.boolean(),
21117
21117
  /** Reported by a connected push host; absent for pull hosts. */
21118
21118
  busy: external_exports.boolean().optional(),
21119
21119
  lastActiveAt: external_exports.number()
@@ -21320,7 +21320,7 @@ var new_room = operation({
21320
21320
  description: external_exports.string().trim().max(ROOM_DESCRIPTION_LIMIT)
21321
21321
  }),
21322
21322
  output: external_exports.object({ id: RoomId, name: external_exports.string(), code: external_exports.string() }),
21323
- errors: [...SIGNED_IN, "handle_required", "limit_reached"]
21323
+ errors: [...SIGNED_IN, "handle_required", "limit_reached", "not_in_room", "forbidden"]
21324
21324
  });
21325
21325
  var update_room = operation({
21326
21326
  name: "update_room",
@@ -21334,6 +21334,13 @@ var update_room = operation({
21334
21334
  output: RoomSummary,
21335
21335
  errors: [...SIGNED_IN, "no_such_room", "forbidden"]
21336
21336
  });
21337
+ var delete_room = operation({
21338
+ name: "delete_room",
21339
+ scope: "account",
21340
+ input: external_exports.object({ room: RoomId }),
21341
+ output: Empty,
21342
+ errors: [...SIGNED_IN, "forbidden"]
21343
+ });
21337
21344
  var join = operation({
21338
21345
  name: "join",
21339
21346
  scope: "account",
@@ -21465,6 +21472,7 @@ var operations = {
21465
21472
  revoke_device,
21466
21473
  new_room,
21467
21474
  update_room,
21475
+ delete_room,
21468
21476
  join,
21469
21477
  leave,
21470
21478
  rename,
@@ -21713,9 +21721,9 @@ Older messages exist. Call history with before: ${page.nextBefore}.` : "";
21713
21721
  ].join("\n") + more;
21714
21722
  }
21715
21723
  function renderPresence(presence, now) {
21716
- if (presence.state === "offline") return `offline, last active ${relativeTime(presence.lastActiveAt, now)}; reads it when its conversation is next opened`;
21724
+ if (presence.state === "offline") return `offline, last active ${relativeTime(presence.lastActiveAt, now)}; reads it when its owner is next back in that conversation`;
21717
21725
  if (presence.tier === "pull") return "online in a web chat; reads it at its next inbox check";
21718
- return presence.wakeable ? "online; told now" : "online, seen on next turn";
21726
+ return "online; told now";
21719
21727
  }
21720
21728
  function renderSent(result, now) {
21721
21729
  if (!result.recipients.length) return `Sent ${result.id}. On record in the room; nobody was told.`;
@@ -22513,7 +22521,15 @@ function createBridge(options) {
22513
22521
  waker.evaluate();
22514
22522
  },
22515
22523
  inactive() {
22516
- return inactive({ loggedIn: !!readCredentials(hub), bound: !!conversation, joined: !!marker, ended, connected: !!link?.connected });
22524
+ return inactive({
22525
+ loggedIn: !!readCredentials(hub),
22526
+ bound: !!conversation,
22527
+ joined: !!marker,
22528
+ ended,
22529
+ connected: !!link?.connected,
22530
+ wakeable: options.shell.wakeable(),
22531
+ unwakeable: options.shell.unwakeable?.() ?? null
22532
+ });
22517
22533
  },
22518
22534
  dispose() {
22519
22535
  disposed = true;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tandryio/opencode",
3
- "version": "0.1.0-alpha.3",
3
+ "version": "0.1.0-alpha.5",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "files": [