virtualcode 2.2.7 → 2.2.8

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/tui.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"tui.d.ts","sourceRoot":"","sources":["../src/tui.ts"],"names":[],"mappings":"AAgFA,QAAA,MAAM,SAAS;;aAEE,GAAG;CAuEnB,CAAA;AAED,eAAe,SAAS,CAAA"}
1
+ {"version":3,"file":"tui.d.ts","sourceRoot":"","sources":["../src/tui.ts"],"names":[],"mappings":"AA8HA,QAAA,MAAM,SAAS;;aAEE,GAAG;CAyCnB,CAAA;AAED,eAAe,SAAS,CAAA"}
package/dist/tui.js CHANGED
@@ -94,12 +94,81 @@ function saveTokenAtomic(token) {
94
94
  }
95
95
  safeChmod(TOKEN_FILE);
96
96
  }
97
+ function openSetupDialog(api) {
98
+ if (!api.ui?.dialog?.replace || !api.ui?.DialogPrompt) {
99
+ fileLog("WARN", "TUI dialog API missing; cannot open setup");
100
+ return;
101
+ }
102
+ api.ui.dialog.replace(() => api.ui.DialogPrompt({
103
+ title: "Telegram Setup",
104
+ placeholder: "Paste your BotFather token here",
105
+ onConfirm(token) {
106
+ try {
107
+ if (typeof token !== "string")
108
+ return;
109
+ const trimmed = token.trim().slice(0, MAX_TOKEN_LEN);
110
+ if (!trimmed)
111
+ return;
112
+ if (!TOKEN_REGEX.test(trimmed)) {
113
+ try {
114
+ api.ui?.toast?.({
115
+ title: "Telegram",
116
+ message: sanitizeTUI("Invalid token format. Expected: 1234567890:ABC-DEF..."),
117
+ variant: "error",
118
+ duration: 4000,
119
+ });
120
+ }
121
+ catch { }
122
+ return;
123
+ }
124
+ saveTokenAtomic(trimmed);
125
+ try {
126
+ api.ui?.toast?.({
127
+ title: "Telegram",
128
+ message: sanitizeTUI("Token saved! Bot will connect on next message."),
129
+ variant: "success",
130
+ duration: 4000,
131
+ });
132
+ }
133
+ catch { }
134
+ try {
135
+ api.ui?.dialog?.clear?.();
136
+ }
137
+ catch { }
138
+ }
139
+ catch (err) {
140
+ fileLog("ERROR", "onConfirm failed:", err instanceof Error ? err.message : String(err));
141
+ }
142
+ },
143
+ onCancel() {
144
+ try {
145
+ api.ui?.dialog?.clear?.();
146
+ }
147
+ catch { }
148
+ },
149
+ }));
150
+ }
97
151
  const TuiPlugin = {
98
152
  id: "virtualcode/tui",
99
153
  async tui(api) {
100
154
  try {
155
+ if (typeof api?.command?.register === "function") {
156
+ api.command.register(() => [
157
+ {
158
+ title: "/telegram",
159
+ value: "telegram.setup",
160
+ description: "Setup or change your Telegram bot token",
161
+ category: "Telegram",
162
+ slash: { name: "telegram" },
163
+ onSelect() {
164
+ openSetupDialog(api);
165
+ },
166
+ },
167
+ ]);
168
+ return;
169
+ }
101
170
  if (!api?.keymap?.registerLayer) {
102
- fileLog("WARN", "OpenCode TUI API missing keymap.registerLayer; plugin disabled");
171
+ fileLog("WARN", "No supported TUI API found; plugin disabled");
103
172
  return;
104
173
  }
105
174
  api.keymap.registerLayer({
@@ -112,70 +181,14 @@ const TuiPlugin = {
112
181
  desc: "Setup or change your Telegram bot token",
113
182
  category: "Telegram",
114
183
  run() {
115
- try {
116
- if (!api.ui?.dialog?.replace || !api.ui?.DialogPrompt) {
117
- fileLog("WARN", "OpenCode TUI dialog API missing; cannot open setup");
118
- return;
119
- }
120
- api.ui.dialog.replace(() => api.ui.DialogPrompt({
121
- title: "Telegram Setup",
122
- placeholder: "Paste your BotFather token here",
123
- onConfirm(token) {
124
- try {
125
- if (typeof token !== "string")
126
- return;
127
- const trimmed = token.trim().slice(0, MAX_TOKEN_LEN);
128
- if (!trimmed)
129
- return;
130
- if (!TOKEN_REGEX.test(trimmed)) {
131
- try {
132
- api.ui?.toast?.({
133
- title: "Telegram",
134
- message: sanitizeTUI("Invalid token format. Expected: 1234567890:ABC-DEF..."),
135
- variant: "error",
136
- duration: 4000,
137
- });
138
- }
139
- catch { }
140
- return;
141
- }
142
- saveTokenAtomic(trimmed);
143
- try {
144
- api.ui?.toast?.({
145
- title: "Telegram",
146
- message: sanitizeTUI("Token saved! Bot will connect on next message."),
147
- variant: "success",
148
- duration: 4000,
149
- });
150
- }
151
- catch { }
152
- try {
153
- api.ui?.dialog?.clear?.();
154
- }
155
- catch { }
156
- }
157
- catch (err) {
158
- fileLog("ERROR", "onConfirm failed:", err instanceof Error ? err.message : String(err));
159
- }
160
- },
161
- onCancel() {
162
- try {
163
- api.ui?.dialog?.clear?.();
164
- }
165
- catch { }
166
- },
167
- }));
168
- }
169
- catch (err) {
170
- fileLog("ERROR", "palette run failed:", err instanceof Error ? err.message : String(err));
171
- }
184
+ openSetupDialog(api);
172
185
  },
173
186
  },
174
187
  ],
175
188
  });
176
189
  }
177
190
  catch (err) {
178
- fileLog("ERROR", "registerLayer failed:", err instanceof Error ? err.message : String(err));
191
+ fileLog("ERROR", "TUI registration failed:", err instanceof Error ? err.message : String(err));
179
192
  }
180
193
  },
181
194
  };
package/dist/tui.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"tui.js","sourceRoot":"","sources":["../src/tui.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tui.js","sourceRoot":"","sources":["../src/tui.ts"],"names":[],"mappings":"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"}
package/install.js CHANGED
@@ -32,7 +32,7 @@ const TOOLS = [
32
32
  configDir: join(homedir(), ".config", "kilo"),
33
33
  bin: "kilo",
34
34
  configs: [
35
- { file: "kilo.jsonc", json: false, stripJsonc: true },
35
+ { file: "kilo.jsonc", json: false, stripJsonc: true, entries: ["virtualcode", "virtualcode/tui"] },
36
36
  ],
37
37
  },
38
38
  ]
@@ -93,7 +93,8 @@ function stripJsonc(src) {
93
93
  return out
94
94
  }
95
95
 
96
- function tryAddConfig(filename, parser, targetDir) {
96
+ function tryAddConfig(filename, parser, targetDir, entries) {
97
+ if (!entries) entries = ["virtualcode"]
97
98
  const searchNames = [
98
99
  join(".opencode", filename),
99
100
  join(".kilocode", filename),
@@ -111,8 +112,9 @@ function tryAddConfig(filename, parser, targetDir) {
111
112
  }
112
113
  }
113
114
  if (!Array.isArray(config.plugin)) config.plugin = []
114
- if (config.plugin.includes("virtualcode")) return
115
- config.plugin.unshift("virtualcode")
115
+ const toAdd = entries.filter((e) => !config.plugin.includes(e))
116
+ if (toAdd.length === 0) return
117
+ config.plugin.unshift(...toAdd)
116
118
  mkdirSync(dirname(path), { recursive: true })
117
119
  const serialized = JSON.stringify(config, null, 2)
118
120
  if (raw && filename.endsWith("jsonc")) {
@@ -141,11 +143,11 @@ function installForTool(tool) {
141
143
  const targetDir = tool.configDir
142
144
  for (const cfg of tool.configs) {
143
145
  const parser = cfg.stripJsonc ? (raw) => JSON.parse(stripJsonc(raw)) : (raw) => JSON.parse(raw)
144
- tryAddConfig(cfg.file, parser, targetDir)
146
+ tryAddConfig(cfg.file, parser, targetDir, cfg.entries)
145
147
  }
146
148
  if (tool.tui) {
147
149
  const parser = tool.tui.stripJsonc ? (raw) => JSON.parse(stripJsonc(raw)) : (raw) => JSON.parse(raw)
148
- tryAddConfig(tool.tui.file, parser, targetDir)
150
+ tryAddConfig(tool.tui.file, parser, targetDir, tool.tui.entries)
149
151
  }
150
152
  }
151
153
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "virtualcode",
3
- "version": "2.2.7",
3
+ "version": "2.2.8",
4
4
  "description": "OpenCode & Kilo Code plugin that bridges your terminal sessions with Telegram",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -49,14 +49,14 @@
49
49
  "mobile"
50
50
  ],
51
51
  "dependencies": {
52
- "@opencode-ai/plugin": "^1.17.8",
52
+ "@opencode-ai/plugin": "^1.17.10",
53
53
  "telegraf": "^4.16.3"
54
54
  },
55
55
  "optionalDependencies": {
56
- "@kilocode/plugin": "^7.0.0"
56
+ "@kilocode/plugin": "^7.3.54"
57
57
  },
58
58
  "devDependencies": {
59
- "@types/node": "^22.0.0",
60
- "typescript": "^5.8.0"
59
+ "@types/node": "^22.20.0",
60
+ "typescript": "^5.9.3"
61
61
  }
62
62
  }