0xkobold 0.0.1

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.
Files changed (258) hide show
  1. package/.agents/skills/nextjs-best-practices/SKILL.md +208 -0
  2. package/.agents/skills/sql-optimization-patterns/SKILL.md +509 -0
  3. package/HEARTBEAT.md +45 -0
  4. package/README.md +197 -0
  5. package/USAGE.md +191 -0
  6. package/dist/package.json +77 -0
  7. package/dist/src/agent/pi-adapter.js +307 -0
  8. package/dist/src/agent/pi-adapter.js.map +1 -0
  9. package/dist/src/agent/tool-adapter.js +86 -0
  10. package/dist/src/agent/tool-adapter.js.map +1 -0
  11. package/dist/src/approval/queue.js +114 -0
  12. package/dist/src/approval/queue.js.map +1 -0
  13. package/dist/src/ascii-kobold.js +76 -0
  14. package/dist/src/ascii-kobold.js.map +1 -0
  15. package/dist/src/cli/client.js +217 -0
  16. package/dist/src/cli/client.js.map +1 -0
  17. package/dist/src/cli/commands/agent.js +272 -0
  18. package/dist/src/cli/commands/agent.js.map +1 -0
  19. package/dist/src/cli/commands/chat.js +234 -0
  20. package/dist/src/cli/commands/chat.js.map +1 -0
  21. package/dist/src/cli/commands/config.js +202 -0
  22. package/dist/src/cli/commands/config.js.map +1 -0
  23. package/dist/src/cli/commands/daemon.js +203 -0
  24. package/dist/src/cli/commands/daemon.js.map +1 -0
  25. package/dist/src/cli/commands/gateway.js +184 -0
  26. package/dist/src/cli/commands/gateway.js.map +1 -0
  27. package/dist/src/cli/commands/init.js +175 -0
  28. package/dist/src/cli/commands/init.js.map +1 -0
  29. package/dist/src/cli/commands/kobold.js +21 -0
  30. package/dist/src/cli/commands/kobold.js.map +1 -0
  31. package/dist/src/cli/commands/logs.js +27 -0
  32. package/dist/src/cli/commands/logs.js.map +1 -0
  33. package/dist/src/cli/commands/mode.js +121 -0
  34. package/dist/src/cli/commands/mode.js.map +1 -0
  35. package/dist/src/cli/commands/persona.js +261 -0
  36. package/dist/src/cli/commands/persona.js.map +1 -0
  37. package/dist/src/cli/commands/start.js +66 -0
  38. package/dist/src/cli/commands/start.js.map +1 -0
  39. package/dist/src/cli/commands/status.js +117 -0
  40. package/dist/src/cli/commands/status.js.map +1 -0
  41. package/dist/src/cli/commands/stop.js +27 -0
  42. package/dist/src/cli/commands/stop.js.map +1 -0
  43. package/dist/src/cli/commands/system.js +128 -0
  44. package/dist/src/cli/commands/system.js.map +1 -0
  45. package/dist/src/cli/commands/tui.js +103 -0
  46. package/dist/src/cli/commands/tui.js.map +1 -0
  47. package/dist/src/cli/commands/update.js +133 -0
  48. package/dist/src/cli/commands/update.js.map +1 -0
  49. package/dist/src/cli/extensions/discord.js +113 -0
  50. package/dist/src/cli/extensions/discord.js.map +1 -0
  51. package/dist/src/cli/extensions/env.js +91 -0
  52. package/dist/src/cli/extensions/env.js.map +1 -0
  53. package/dist/src/cli/extensions/heartbeat.js +78 -0
  54. package/dist/src/cli/extensions/heartbeat.js.map +1 -0
  55. package/dist/src/cli/index.js +24 -0
  56. package/dist/src/cli/index.js.map +1 -0
  57. package/dist/src/cli/program.js +70 -0
  58. package/dist/src/cli/program.js.map +1 -0
  59. package/dist/src/cli/repl.js +184 -0
  60. package/dist/src/cli/repl.js.map +1 -0
  61. package/dist/src/cli/shared/discord-service.js +102 -0
  62. package/dist/src/cli/shared/discord-service.js.map +1 -0
  63. package/dist/src/config/index.js +10 -0
  64. package/dist/src/config/index.js.map +1 -0
  65. package/dist/src/config/loader.js +401 -0
  66. package/dist/src/config/loader.js.map +1 -0
  67. package/dist/src/config/paths.js +84 -0
  68. package/dist/src/config/paths.js.map +1 -0
  69. package/dist/src/config/types.js +8 -0
  70. package/dist/src/config/types.js.map +1 -0
  71. package/dist/src/context-detector.js +60 -0
  72. package/dist/src/context-detector.js.map +1 -0
  73. package/dist/src/discord/index.js +376 -0
  74. package/dist/src/discord/index.js.map +1 -0
  75. package/dist/src/event-bus/index.js +97 -0
  76. package/dist/src/event-bus/index.js.map +1 -0
  77. package/dist/src/extensions/command-args.js +68 -0
  78. package/dist/src/extensions/command-args.js.map +1 -0
  79. package/dist/src/extensions/core/agent-registry-extension.js +541 -0
  80. package/dist/src/extensions/core/agent-registry-extension.js.map +1 -0
  81. package/dist/src/extensions/core/agent-worker.js +148 -0
  82. package/dist/src/extensions/core/agent-worker.js.map +1 -0
  83. package/dist/src/extensions/core/compaction-safeguard.js +154 -0
  84. package/dist/src/extensions/core/compaction-safeguard.js.map +1 -0
  85. package/dist/src/extensions/core/confirm-destructive.js +43 -0
  86. package/dist/src/extensions/core/confirm-destructive.js.map +1 -0
  87. package/dist/src/extensions/core/context-aware-extension.js +124 -0
  88. package/dist/src/extensions/core/context-aware-extension.js.map +1 -0
  89. package/dist/src/extensions/core/context-pruning/extension.js +124 -0
  90. package/dist/src/extensions/core/context-pruning/extension.js.map +1 -0
  91. package/dist/src/extensions/core/context-pruning/pruner.js +312 -0
  92. package/dist/src/extensions/core/context-pruning/pruner.js.map +1 -0
  93. package/dist/src/extensions/core/context-pruning/runtime.js +48 -0
  94. package/dist/src/extensions/core/context-pruning/runtime.js.map +1 -0
  95. package/dist/src/extensions/core/context-pruning/settings.js +105 -0
  96. package/dist/src/extensions/core/context-pruning/settings.js.map +1 -0
  97. package/dist/src/extensions/core/dirty-repo-guard.js +42 -0
  98. package/dist/src/extensions/core/dirty-repo-guard.js.map +1 -0
  99. package/dist/src/extensions/core/discord-channel-extension.js +205 -0
  100. package/dist/src/extensions/core/discord-channel-extension.js.map +1 -0
  101. package/dist/src/extensions/core/discord-extension.js +142 -0
  102. package/dist/src/extensions/core/discord-extension.js.map +1 -0
  103. package/dist/src/extensions/core/env-loader-extension.js +157 -0
  104. package/dist/src/extensions/core/env-loader-extension.js.map +1 -0
  105. package/dist/src/extensions/core/fileops-extension.js +699 -0
  106. package/dist/src/extensions/core/fileops-extension.js.map +1 -0
  107. package/dist/src/extensions/core/gateway-extension.js +730 -0
  108. package/dist/src/extensions/core/gateway-extension.js.map +1 -0
  109. package/dist/src/extensions/core/git-checkpoint.js +46 -0
  110. package/dist/src/extensions/core/git-checkpoint.js.map +1 -0
  111. package/dist/src/extensions/core/handoff-extension.js +206 -0
  112. package/dist/src/extensions/core/handoff-extension.js.map +1 -0
  113. package/dist/src/extensions/core/heartbeat-extension.js +373 -0
  114. package/dist/src/extensions/core/heartbeat-extension.js.map +1 -0
  115. package/dist/src/extensions/core/mcp-extension.js +413 -0
  116. package/dist/src/extensions/core/mcp-extension.js.map +1 -0
  117. package/dist/src/extensions/core/mode-manager-extension.js +562 -0
  118. package/dist/src/extensions/core/mode-manager-extension.js.map +1 -0
  119. package/dist/src/extensions/core/multi-channel-extension.js +435 -0
  120. package/dist/src/extensions/core/multi-channel-extension.js.map +1 -0
  121. package/dist/src/extensions/core/ollama-provider-extension.js +66 -0
  122. package/dist/src/extensions/core/ollama-provider-extension.js.map +1 -0
  123. package/dist/src/extensions/core/onboarding-extension.js +122 -0
  124. package/dist/src/extensions/core/onboarding-extension.js.map +1 -0
  125. package/dist/src/extensions/core/persona-loader-extension.js +139 -0
  126. package/dist/src/extensions/core/persona-loader-extension.js.map +1 -0
  127. package/dist/src/extensions/core/pi-notify-extension.js +70 -0
  128. package/dist/src/extensions/core/pi-notify-extension.js.map +1 -0
  129. package/dist/src/extensions/core/protected-paths.js +24 -0
  130. package/dist/src/extensions/core/protected-paths.js.map +1 -0
  131. package/dist/src/extensions/core/questionnaire-extension.js +242 -0
  132. package/dist/src/extensions/core/questionnaire-extension.js.map +1 -0
  133. package/dist/src/extensions/core/self-update-extension.js +181 -0
  134. package/dist/src/extensions/core/self-update-extension.js.map +1 -0
  135. package/dist/src/extensions/core/session-bridge-extension.js +78 -0
  136. package/dist/src/extensions/core/session-bridge-extension.js.map +1 -0
  137. package/dist/src/extensions/core/session-manager-extension.js +319 -0
  138. package/dist/src/extensions/core/session-manager-extension.js.map +1 -0
  139. package/dist/src/extensions/core/session-name-extension.js +88 -0
  140. package/dist/src/extensions/core/session-name-extension.js.map +1 -0
  141. package/dist/src/extensions/core/session-pruning-extension.js +480 -0
  142. package/dist/src/extensions/core/session-pruning-extension.js.map +1 -0
  143. package/dist/src/extensions/core/task-manager-extension.js +661 -0
  144. package/dist/src/extensions/core/task-manager-extension.js.map +1 -0
  145. package/dist/src/extensions/core/update-extension.js +438 -0
  146. package/dist/src/extensions/core/update-extension.js.map +1 -0
  147. package/dist/src/extensions/core/websearch-extension.js +463 -0
  148. package/dist/src/extensions/core/websearch-extension.js.map +1 -0
  149. package/dist/src/extensions/index.js +5 -0
  150. package/dist/src/extensions/index.js.map +1 -0
  151. package/dist/src/extensions/loader.js +80 -0
  152. package/dist/src/extensions/loader.js.map +1 -0
  153. package/dist/src/gateway/index.js +353 -0
  154. package/dist/src/gateway/index.js.map +1 -0
  155. package/dist/src/index.js +150 -0
  156. package/dist/src/index.js.map +1 -0
  157. package/dist/src/llm/anthropic.js +86 -0
  158. package/dist/src/llm/anthropic.js.map +1 -0
  159. package/dist/src/llm/index.js +9 -0
  160. package/dist/src/llm/index.js.map +1 -0
  161. package/dist/src/llm/ollama.js +113 -0
  162. package/dist/src/llm/ollama.js.map +1 -0
  163. package/dist/src/llm/router.js +145 -0
  164. package/dist/src/llm/router.js.map +1 -0
  165. package/dist/src/llm/types.js +7 -0
  166. package/dist/src/llm/types.js.map +1 -0
  167. package/dist/src/memory/index.js +5 -0
  168. package/dist/src/memory/index.js.map +1 -0
  169. package/dist/src/memory/store.js +91 -0
  170. package/dist/src/memory/store.js.map +1 -0
  171. package/dist/src/pi-config.js +80 -0
  172. package/dist/src/pi-config.js.map +1 -0
  173. package/dist/src/skills/builtin/file.js +184 -0
  174. package/dist/src/skills/builtin/file.js.map +1 -0
  175. package/dist/src/skills/builtin/shell.js +100 -0
  176. package/dist/src/skills/builtin/shell.js.map +1 -0
  177. package/dist/src/skills/builtin/subagent.js +62 -0
  178. package/dist/src/skills/builtin/subagent.js.map +1 -0
  179. package/dist/src/skills/hello.js +42 -0
  180. package/dist/src/skills/hello.js.map +1 -0
  181. package/dist/src/skills/index.js +11 -0
  182. package/dist/src/skills/index.js.map +1 -0
  183. package/dist/src/skills/loader.js +382 -0
  184. package/dist/src/skills/loader.js.map +1 -0
  185. package/dist/src/skills/types.js +8 -0
  186. package/dist/src/skills/types.js.map +1 -0
  187. package/dist/src/utils/working-dir.js +71 -0
  188. package/dist/src/utils/working-dir.js.map +1 -0
  189. package/package.json +77 -0
  190. package/skills/1password/SKILL.md +70 -0
  191. package/skills/1password/references/cli-examples.md +29 -0
  192. package/skills/1password/references/get-started.md +17 -0
  193. package/skills/apple-notes/SKILL.md +77 -0
  194. package/skills/apple-reminders/SKILL.md +118 -0
  195. package/skills/bear-notes/SKILL.md +107 -0
  196. package/skills/blogwatcher/SKILL.md +69 -0
  197. package/skills/blucli/SKILL.md +47 -0
  198. package/skills/bluebubbles/SKILL.md +131 -0
  199. package/skills/camsnap/SKILL.md +45 -0
  200. package/skills/canvas/SKILL.md +198 -0
  201. package/skills/clawhub/SKILL.md +77 -0
  202. package/skills/coding-agent/SKILL.md +284 -0
  203. package/skills/discord/SKILL.md +197 -0
  204. package/skills/eightctl/SKILL.md +50 -0
  205. package/skills/food-order/SKILL.md +48 -0
  206. package/skills/gemini/SKILL.md +43 -0
  207. package/skills/gh-issues/SKILL.md +865 -0
  208. package/skills/gifgrep/SKILL.md +79 -0
  209. package/skills/github/SKILL.md +163 -0
  210. package/skills/gog/SKILL.md +116 -0
  211. package/skills/goplaces/SKILL.md +52 -0
  212. package/skills/healthcheck/SKILL.md +245 -0
  213. package/skills/himalaya/SKILL.md +257 -0
  214. package/skills/himalaya/references/configuration.md +184 -0
  215. package/skills/himalaya/references/message-composition.md +199 -0
  216. package/skills/imsg/SKILL.md +122 -0
  217. package/skills/mcporter/SKILL.md +61 -0
  218. package/skills/model-usage/SKILL.md +69 -0
  219. package/skills/model-usage/references/codexbar-cli.md +33 -0
  220. package/skills/model-usage/scripts/model_usage.py +310 -0
  221. package/skills/nano-banana-pro/SKILL.md +58 -0
  222. package/skills/nano-banana-pro/scripts/generate_image.py +184 -0
  223. package/skills/nano-pdf/SKILL.md +38 -0
  224. package/skills/notion/SKILL.md +172 -0
  225. package/skills/obsidian/SKILL.md +81 -0
  226. package/skills/openai-image-gen/SKILL.md +89 -0
  227. package/skills/openai-image-gen/scripts/gen.py +240 -0
  228. package/skills/openai-whisper/SKILL.md +38 -0
  229. package/skills/openai-whisper-api/SKILL.md +52 -0
  230. package/skills/openai-whisper-api/scripts/transcribe.sh +85 -0
  231. package/skills/openhue/SKILL.md +112 -0
  232. package/skills/oracle/SKILL.md +125 -0
  233. package/skills/ordercli/SKILL.md +78 -0
  234. package/skills/peekaboo/SKILL.md +190 -0
  235. package/skills/sag/SKILL.md +87 -0
  236. package/skills/session-logs/SKILL.md +115 -0
  237. package/skills/sherpa-onnx-tts/SKILL.md +103 -0
  238. package/skills/sherpa-onnx-tts/bin/sherpa-onnx-tts +178 -0
  239. package/skills/skill-creator/SKILL.md +370 -0
  240. package/skills/skill-creator/license.txt +202 -0
  241. package/skills/skill-creator/scripts/init_skill.py +378 -0
  242. package/skills/skill-creator/scripts/package_skill.py +111 -0
  243. package/skills/skill-creator/scripts/quick_validate.py +101 -0
  244. package/skills/slack/SKILL.md +144 -0
  245. package/skills/songsee/SKILL.md +49 -0
  246. package/skills/sonoscli/SKILL.md +46 -0
  247. package/skills/spotify-player/SKILL.md +64 -0
  248. package/skills/summarize/SKILL.md +87 -0
  249. package/skills/things-mac/SKILL.md +86 -0
  250. package/skills/tmux/SKILL.md +153 -0
  251. package/skills/tmux/scripts/find-sessions.sh +112 -0
  252. package/skills/tmux/scripts/wait-for-text.sh +83 -0
  253. package/skills/trello/SKILL.md +95 -0
  254. package/skills/video-frames/SKILL.md +46 -0
  255. package/skills/video-frames/scripts/frame.sh +81 -0
  256. package/skills/voice-call/SKILL.md +45 -0
  257. package/skills/wacli/SKILL.md +72 -0
  258. package/skills/weather/SKILL.md +112 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-manager-extension.js","sourceRoot":"","sources":["../../../../src/extensions/core/task-manager-extension.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,438 @@
1
+ /**
2
+ * Auto-Update Extension for 0xKobold
3
+ *
4
+ * Checks for pi-coding-agent updates with safe "install on next launch" workflow
5
+ *
6
+ * Workflow:
7
+ * 1. Check for updates on startup
8
+ * 2. If update available, store pending update info
9
+ * 3. On next launch, prompt user to install (if auto-install-next-launch is enabled)
10
+ * 4. Install and auto-restart if user confirms
11
+ */
12
+ import { existsSync, mkdirSync } from 'node:fs';
13
+ import { homedir } from 'node:os';
14
+ import { join } from 'node:path';
15
+ const PACKAGE_NAME = '@mariozechner/pi-coding-agent';
16
+ const CHECK_INTERVAL_MS = 60 * 60 * 1000; // Check once per hour
17
+ // Persistent state file for pending updates
18
+ const KOBOLD_DIR = join(homedir(), '.0xkobold');
19
+ const PENDING_UPDATE_FILE = join(KOBOLD_DIR, '.pending-update');
20
+ async function getCurrentVersion() {
21
+ try {
22
+ // Read from package.json
23
+ const packageJson = await Bun.file('package.json').json();
24
+ const depVersion = packageJson.dependencies?.[PACKAGE_NAME];
25
+ const devDepVersion = packageJson.devDependencies?.[PACKAGE_NAME];
26
+ const version = depVersion || devDepVersion || '0.55.4';
27
+ // Remove ^ or ~ prefix
28
+ return version.replace(/^[\^~]/, '');
29
+ }
30
+ catch {
31
+ return '0.55.4';
32
+ }
33
+ }
34
+ async function checkForUpdates() {
35
+ try {
36
+ const response = await fetch(`https://registry.npmjs.org/${PACKAGE_NAME}/latest`);
37
+ if (!response.ok) {
38
+ throw new Error(`HTTP ${response.status}`);
39
+ }
40
+ const data = await response.json();
41
+ const latestVersion = data.version;
42
+ const currentVersion = await getCurrentVersion();
43
+ // Compare versions (simple string comparison, could be improved with semver)
44
+ return {
45
+ hasUpdate: latestVersion !== currentVersion,
46
+ latestVersion,
47
+ currentVersion,
48
+ };
49
+ }
50
+ catch (err) {
51
+ console.log('[Update] Failed to check for updates:', err instanceof Error ? err.message : String(err));
52
+ return { hasUpdate: false, latestVersion: '', currentVersion: '' };
53
+ }
54
+ }
55
+ async function installUpdate(version) {
56
+ console.log(`[Update] Installing ${PACKAGE_NAME}@${version}...`);
57
+ try {
58
+ // Try local install first
59
+ const proc = Bun.spawn(['bun', 'install', `${PACKAGE_NAME}@${version}`], {
60
+ stdout: 'pipe',
61
+ stderr: 'pipe',
62
+ cwd: process.cwd(),
63
+ });
64
+ const exitCode = await proc.exited;
65
+ if (exitCode === 0) {
66
+ console.log('[Update] Successfully installed update');
67
+ return true;
68
+ }
69
+ // Read stderr for error details
70
+ const stderr = await new Response(proc.stderr).text();
71
+ console.error('[Update] Install failed:', stderr);
72
+ return false;
73
+ }
74
+ catch (err) {
75
+ console.error('[Update] Install error:', err instanceof Error ? err.message : String(err));
76
+ return false;
77
+ }
78
+ }
79
+ // Store pending update info
80
+ async function storePendingUpdate(version, previousVersion) {
81
+ try {
82
+ if (!existsSync(KOBOLD_DIR)) {
83
+ mkdirSync(KOBOLD_DIR, { recursive: true });
84
+ }
85
+ const pending = {
86
+ version,
87
+ previousVersion,
88
+ detectedAt: new Date().toISOString(),
89
+ };
90
+ await Bun.write(PENDING_UPDATE_FILE, JSON.stringify(pending, null, 2));
91
+ }
92
+ catch (err) {
93
+ console.error('[Update] Failed to store pending update:', err);
94
+ }
95
+ }
96
+ // Read pending update info
97
+ async function readPendingUpdate() {
98
+ try {
99
+ if (!existsSync(PENDING_UPDATE_FILE)) {
100
+ return null;
101
+ }
102
+ const content = await Bun.file(PENDING_UPDATE_FILE).text();
103
+ return JSON.parse(content);
104
+ }
105
+ catch {
106
+ return null;
107
+ }
108
+ }
109
+ // Clear pending update
110
+ async function clearPendingUpdate() {
111
+ try {
112
+ if (existsSync(PENDING_UPDATE_FILE)) {
113
+ await Bun.file(PENDING_UPDATE_FILE).delete();
114
+ }
115
+ }
116
+ catch {
117
+ // Ignore cleanup errors
118
+ }
119
+ }
120
+ // Restart the application
121
+ async function restartApplication() {
122
+ console.log('[Update] Restarting application...');
123
+ // Give a moment for logs to flush
124
+ await new Promise(r => setTimeout(r, 500));
125
+ // Spawn a new process and exit this one
126
+ const proc = Bun.spawn(['bun', 'run', 'src/index.ts'], {
127
+ cwd: process.cwd(),
128
+ detached: true,
129
+ stdio: ['ignore', 'ignore', 'ignore'],
130
+ });
131
+ // Unref so parent can exit
132
+ proc.unref?.();
133
+ // Exit current process
134
+ process.exit(0);
135
+ }
136
+ export default function updateExtension(pi) {
137
+ // Use flags for configuration
138
+ const checkOnStartup = pi.getFlag('update-check-on-startup') ?? true;
139
+ const autoInstall = pi.getFlag('update-auto-install') ?? false;
140
+ const autoInstallNextLaunch = pi.getFlag('update-auto-install-next-launch') ?? true;
141
+ let lastCheckTime = 0;
142
+ // Register flags for configuration
143
+ pi.registerFlag('update-check-on-startup', {
144
+ description: 'Check for updates on startup',
145
+ type: 'boolean',
146
+ default: true,
147
+ });
148
+ pi.registerFlag('update-auto-install', {
149
+ description: 'Auto-install updates immediately when available (not recommended)',
150
+ type: 'boolean',
151
+ default: false,
152
+ });
153
+ pi.registerFlag('update-auto-install-next-launch', {
154
+ description: 'Prompt to install updates on next launch (recommended)',
155
+ type: 'boolean',
156
+ default: true,
157
+ });
158
+ // Check for pending updates on startup FIRST (before checking for new updates)
159
+ // Only run in main process, not in subagents
160
+ pi.on('session_start', async () => {
161
+ // Skip in subagent sessions
162
+ const isSubagent = process.env.KOBOLD_SUBAGENT === 'true' || process.env.PI_SESSION_PARENT;
163
+ if (isSubagent) {
164
+ return;
165
+ }
166
+ // Skip if running with command flags (non-interactive)
167
+ const args = process.argv.slice(2);
168
+ if (args.includes('--command') || args.includes('-c')) {
169
+ return;
170
+ }
171
+ const pending = await readPendingUpdate();
172
+ if (pending) {
173
+ // We have a pending update from last time
174
+ const currentVersion = await getCurrentVersion();
175
+ // Check if it's already installed (version matches)
176
+ if (currentVersion === pending.version) {
177
+ console.log(`[Update] Already updated to ${pending.version}`);
178
+ await clearPendingUpdate();
179
+ }
180
+ else if (autoInstallNextLaunch) {
181
+ // Prompt user to install on this launch
182
+ // @ts-ignore sendMessage type
183
+ // @ts-ignore sendMessage type
184
+ // @ts-ignore sendMessage type
185
+ // @ts-ignore sendMessage type
186
+ // @ts-ignore Content type
187
+ pi.sendMessage({
188
+ customType: 'update.pending',
189
+ content: [{
190
+ type: 'text',
191
+ text: `📦 Update ready: ${pending.version} (current: ${currentVersion})\n\nRun /update:install to install and restart, or /update:skip to skip this update.`
192
+ }],
193
+ // @ts-ignore Content type
194
+ display: {
195
+ type: 'text',
196
+ text: `⏳ Update ready: ${pending.version} - /update:install to apply`
197
+ },
198
+ details: { pending, currentVersion },
199
+ });
200
+ console.log(`[Update] Pending update available: ${pending.version}. Run /update:install to apply.`);
201
+ }
202
+ }
203
+ });
204
+ async function performUpdateCheck(force = false) {
205
+ const now = Date.now();
206
+ if (!force && now - lastCheckTime < CHECK_INTERVAL_MS) {
207
+ return; // Too soon since last check
208
+ }
209
+ lastCheckTime = now;
210
+ const { hasUpdate, latestVersion, currentVersion } = await checkForUpdates();
211
+ if (!hasUpdate) {
212
+ console.log('[Update] Already on latest version');
213
+ // Clear any stale pending updates
214
+ await clearPendingUpdate();
215
+ return;
216
+ }
217
+ console.log(`[Update] New version available: ${latestVersion} (current: ${currentVersion})`);
218
+ if (autoInstall) {
219
+ // Immediate install (not recommended - interrupts workflow)
220
+ // @ts-ignore sendMessage type
221
+ // @ts-ignore sendMessage type
222
+ // @ts-ignore Content type
223
+ pi.sendMessage({
224
+ customType: 'update.installing',
225
+ content: [{ type: 'text', text: `Installing update to ${latestVersion}...` }],
226
+ // @ts-ignore Content type
227
+ display: { type: 'text', text: `Installing update to ${latestVersion}...` },
228
+ details: { latestVersion, currentVersion },
229
+ });
230
+ const success = await installUpdate(latestVersion);
231
+ if (success) {
232
+ // @ts-ignore sendMessage type
233
+ // @ts-ignore sendMessage type
234
+ // @ts-ignore sendMessage type
235
+ // @ts-ignore Content type
236
+ pi.sendMessage({
237
+ customType: 'update.installed',
238
+ content: [{ type: 'text', text: `Updated to ${latestVersion}. Please restart to apply changes.` }],
239
+ // @ts-ignore Content type
240
+ display: { type: 'text', text: `Updated to ${latestVersion}! Restart required.` },
241
+ details: { version: latestVersion, requiresRestart: true },
242
+ });
243
+ }
244
+ else {
245
+ // @ts-ignore sendMessage type
246
+ // @ts-ignore sendMessage type
247
+ // @ts-ignore sendMessage type
248
+ // @ts-ignore Content type
249
+ pi.sendMessage({
250
+ customType: 'update.failed',
251
+ content: [{ type: 'text', text: `Failed to install update ${latestVersion}. Check console for details.` }],
252
+ // @ts-ignore Content type
253
+ display: { type: 'text', text: `Update failed. See logs.` },
254
+ details: { latestVersion, currentVersion },
255
+ });
256
+ }
257
+ }
258
+ else {
259
+ // Store for next launch (recommended approach)
260
+ await storePendingUpdate(latestVersion, currentVersion);
261
+ // @ts-ignore sendMessage type
262
+ // @ts-ignore sendMessage type
263
+ // @ts-ignore Content type
264
+ pi.sendMessage({
265
+ customType: 'update.available',
266
+ content: [{
267
+ type: 'text',
268
+ text: `Update available: ${latestVersion} (current: ${currentVersion})\n\nThe update will be applied on your next launch (or run /update:install now).`
269
+ }],
270
+ // @ts-ignore Content type
271
+ display: { type: 'text', text: `Update: ${latestVersion} → next launch` },
272
+ details: { latestVersion, currentVersion, deferred: true },
273
+ });
274
+ console.log(`[Update] Update ${latestVersion} will be available on next launch`);
275
+ }
276
+ }
277
+ // Check on session start (with a delay to not block startup)
278
+ // Only run in main process, not in subagents
279
+ if (checkOnStartup) {
280
+ pi.on('session_start', async () => {
281
+ // Skip in subagent sessions
282
+ const isSubagent = process.env.KOBOLD_SUBAGENT === 'true' || process.env.PI_SESSION_PARENT;
283
+ if (isSubagent) {
284
+ return;
285
+ }
286
+ // Skip if running with command flags (non-interactive)
287
+ const args = process.argv.slice(2);
288
+ if (args.includes('--command') || args.includes('-c')) {
289
+ return;
290
+ }
291
+ setTimeout(async () => {
292
+ await performUpdateCheck(true);
293
+ }, 5000); // Wait 5 seconds after startup
294
+ });
295
+ }
296
+ // Register update:check command
297
+ pi.registerCommand('update:check', {
298
+ description: 'Check for pi-coding-agent updates',
299
+ handler: async () => {
300
+ await performUpdateCheck(true);
301
+ },
302
+ });
303
+ // Register update:install command (install pending update and restart)
304
+ pi.registerCommand('update:install', {
305
+ description: 'Install pending update and restart',
306
+ handler: async () => {
307
+ const pending = await readPendingUpdate();
308
+ if (!pending) {
309
+ // Check for updates first
310
+ const { hasUpdate, latestVersion } = await checkForUpdates();
311
+ if (!hasUpdate) {
312
+ // @ts-ignore sendMessage type
313
+ // @ts-ignore sendMessage type
314
+ // @ts-ignore sendMessage type
315
+ // @ts-ignore Content type
316
+ pi.sendMessage({
317
+ customType: 'update.none',
318
+ content: [{ type: 'text', text: 'No updates available.' }],
319
+ // @ts-ignore Content type
320
+ display: { type: 'text', text: 'No updates available' },
321
+ });
322
+ return;
323
+ }
324
+ // Install immediately
325
+ // @ts-ignore sendMessage type
326
+ // @ts-ignore sendMessage type
327
+ // @ts-ignore sendMessage type
328
+ // @ts-ignore Content type
329
+ pi.sendMessage({
330
+ customType: 'update.installing',
331
+ content: [{ type: 'text', text: `Installing ${latestVersion}...` }],
332
+ // @ts-ignore Content type
333
+ display: { type: 'text', text: `Installing ${latestVersion}...` },
334
+ });
335
+ const success = await installUpdate(latestVersion);
336
+ if (success) {
337
+ await clearPendingUpdate();
338
+ // @ts-ignore sendMessage type
339
+ // @ts-ignore sendMessage type
340
+ // @ts-ignore Content type
341
+ pi.sendMessage({
342
+ customType: 'update.restarting',
343
+ content: [{ type: 'text', text: 'Update installed. Restarting...' }],
344
+ // @ts-ignore Content type
345
+ display: { type: 'text', text: 'Restarting...' },
346
+ });
347
+ await restartApplication();
348
+ }
349
+ else {
350
+ // @ts-ignore sendMessage type
351
+ // @ts-ignore sendMessage type
352
+ // @ts-ignore Content type
353
+ pi.sendMessage({
354
+ customType: 'update.failed',
355
+ content: [{ type: 'text', text: 'Update failed. Check console.' }],
356
+ // @ts-ignore Content type
357
+ display: { type: 'text', text: 'Update failed' },
358
+ });
359
+ }
360
+ return;
361
+ }
362
+ // Install pending update
363
+ // @ts-ignore sendMessage type
364
+ // @ts-ignore sendMessage type
365
+ // @ts-ignore Content type
366
+ pi.sendMessage({
367
+ customType: 'update.installing',
368
+ content: [{ type: 'text', text: `Installing ${pending.version}...` }],
369
+ // @ts-ignore Content type
370
+ display: { type: 'text', text: `Installing ${pending.version}...` },
371
+ });
372
+ const success = await installUpdate(pending.version);
373
+ if (success) {
374
+ await clearPendingUpdate();
375
+ // @ts-ignore sendMessage type
376
+ // @ts-ignore sendMessage type
377
+ // @ts-ignore sendMessage type
378
+ // @ts-ignore Content type
379
+ pi.sendMessage({
380
+ customType: 'update.restarting',
381
+ content: [{ type: 'text', text: 'Update installed. Restarting...' }],
382
+ // @ts-ignore Content type
383
+ display: { type: 'text', text: 'Restarting...' },
384
+ });
385
+ await restartApplication();
386
+ }
387
+ else {
388
+ // @ts-ignore sendMessage type
389
+ // @ts-ignore sendMessage type
390
+ // @ts-ignore sendMessage type
391
+ // @ts-ignore Content type
392
+ pi.sendMessage({
393
+ customType: 'update.failed',
394
+ content: [{ type: 'text', text: 'Update failed. Check console.' }],
395
+ // @ts-ignore Content type
396
+ display: { type: 'text', text: 'Update failed' },
397
+ });
398
+ }
399
+ },
400
+ });
401
+ // Register update:skip command (skip pending update)
402
+ pi.registerCommand('update:skip', {
403
+ description: 'Skip the pending update',
404
+ handler: async () => {
405
+ const pending = await readPendingUpdate();
406
+ if (pending) {
407
+ await clearPendingUpdate();
408
+ // @ts-ignore sendMessage type
409
+ // @ts-ignore sendMessage type
410
+ // @ts-ignore sendMessage type
411
+ // @ts-ignore Content type
412
+ pi.sendMessage({
413
+ customType: 'update.skipped',
414
+ content: [{ type: 'text', text: `Skipped update to ${pending.version}` }],
415
+ // @ts-ignore Content type
416
+ display: { type: 'text', text: `Update skipped` },
417
+ });
418
+ console.log(`[Update] Skipped update to ${pending.version}`);
419
+ }
420
+ else {
421
+ // @ts-ignore sendMessage type
422
+ // @ts-ignore sendMessage type
423
+ // @ts-ignore sendMessage type
424
+ // @ts-ignore Content type
425
+ pi.sendMessage({
426
+ customType: 'update.none',
427
+ content: [{ type: 'text', text: 'No pending update to skip.' }],
428
+ // @ts-ignore Content type
429
+ display: { type: 'text', text: 'No pending update' },
430
+ });
431
+ }
432
+ },
433
+ });
434
+ console.log('[Update] Extension loaded (check: ' + (checkOnStartup ? 'on' : 'off') +
435
+ ', immediate-install: ' + (autoInstall ? 'on' : 'off') +
436
+ ', next-launch: ' + (autoInstallNextLaunch ? 'on' : 'off') + ')');
437
+ }
438
+ //# sourceMappingURL=update-extension.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-extension.js","sourceRoot":"","sources":["../../../../src/extensions/core/update-extension.ts"],"names":[],"mappings":"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"}