0xkobold 0.5.2 → 0.6.0

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 (64) hide show
  1. package/README.md +88 -11
  2. package/dist/package.json +3 -3
  3. package/dist/skills/session-resume-skill.js +121 -0
  4. package/dist/skills/session-resume-skill.js.map +1 -0
  5. package/dist/src/agent/DraconicRunRegistry.js +0 -9
  6. package/dist/src/agent/DraconicRunRegistry.js.map +1 -1
  7. package/dist/src/agent/auth-profiles.js +290 -0
  8. package/dist/src/agent/auth-profiles.js.map +1 -0
  9. package/dist/src/agent/embedded-runner.js +115 -29
  10. package/dist/src/agent/embedded-runner.js.map +1 -1
  11. package/dist/src/agent/index.js +4 -0
  12. package/dist/src/agent/index.js.map +1 -1
  13. package/dist/src/agent/model-fallback.js +173 -0
  14. package/dist/src/agent/model-fallback.js.map +1 -0
  15. package/dist/src/agent/tools/spawn-agent.js.map +1 -1
  16. package/dist/src/cli/commands/gateway.js +4 -8
  17. package/dist/src/cli/commands/gateway.js.map +1 -1
  18. package/dist/src/cron/notifications.js +15 -5
  19. package/dist/src/cron/notifications.js.map +1 -1
  20. package/dist/src/cron/runner.js +15 -6
  21. package/dist/src/cron/runner.js.map +1 -1
  22. package/dist/src/event-bus/index.js.map +1 -1
  23. package/dist/src/extensions/core/gateway-status-extension.js +54 -0
  24. package/dist/src/extensions/core/gateway-status-extension.js.map +1 -0
  25. package/dist/src/gateway/gateway-server.js +383 -0
  26. package/dist/src/gateway/gateway-server.js.map +1 -0
  27. package/dist/src/gateway/index.js +15 -8
  28. package/dist/src/gateway/index.js.map +1 -1
  29. package/dist/src/gateway/methods/agent.js +348 -0
  30. package/dist/src/gateway/methods/agent.js.map +1 -0
  31. package/dist/src/gateway/methods/index.js +30 -0
  32. package/dist/src/gateway/methods/index.js.map +1 -0
  33. package/dist/src/gateway/methods/types.js +7 -0
  34. package/dist/src/gateway/methods/types.js.map +1 -0
  35. package/dist/src/gateway/persistence/AgentStore.js +6 -0
  36. package/dist/src/gateway/persistence/AgentStore.js.map +1 -1
  37. package/dist/src/gateway/protocol/frames.js +43 -0
  38. package/dist/src/gateway/protocol/frames.js.map +1 -0
  39. package/dist/src/gateway/protocol/index.js +5 -0
  40. package/dist/src/gateway/protocol/index.js.map +1 -0
  41. package/dist/src/gateway/quickstart.js +34 -0
  42. package/dist/src/gateway/quickstart.js.map +1 -0
  43. package/dist/src/index.js +33 -0
  44. package/dist/src/index.js.map +1 -1
  45. package/dist/src/memory/memory-integration.js +204 -0
  46. package/dist/src/memory/memory-integration.js.map +1 -0
  47. package/dist/src/memory/session-memory-bridge.js +177 -0
  48. package/dist/src/memory/session-memory-bridge.js.map +1 -0
  49. package/dist/src/memory/session-resume.js +265 -0
  50. package/dist/src/memory/session-resume.js.map +1 -0
  51. package/dist/src/memory/session-store.js +224 -0
  52. package/dist/src/memory/session-store.js.map +1 -0
  53. package/dist/src/skills/framework.js +104 -16
  54. package/dist/src/skills/framework.js.map +1 -1
  55. package/dist/src/tui/components/footer.js +106 -0
  56. package/dist/src/tui/components/footer.js.map +1 -0
  57. package/dist/src/tui/components/status-bar.js +82 -16
  58. package/dist/src/tui/components/status-bar.js.map +1 -1
  59. package/dist/src/tui/gateway-chat-client.js +218 -0
  60. package/dist/src/tui/gateway-chat-client.js.map +1 -0
  61. package/dist/src/tui/index.js +1 -0
  62. package/dist/src/tui/index.js.map +1 -1
  63. package/package.json +3 -3
  64. package/skills/session-resume-skill.ts +150 -0
@@ -0,0 +1,150 @@
1
+ /**
2
+ * Session Resume Skill
3
+ *
4
+ * Allows users to:
5
+ * - /sessions → List recent sessions with suggestions
6
+ * - /sessions search "query" → Search past sessions
7
+ * - /sessions resume <key> → Resume a specific session
8
+ * - Auto-suggests relevant sessions on startup
9
+ */
10
+
11
+ import { getSessionResumeSystem } from "../src/memory/session-resume";
12
+
13
+ export const sessionResumeSkill = {
14
+ name: "session_resume",
15
+ description: "Search and resume previous sessions",
16
+ risk: "safe",
17
+
18
+ toolDefinition: {
19
+ type: "function" as const,
20
+ function: {
21
+ name: "session_resume",
22
+ description: "Search through previous sessions or resume a specific one",
23
+ parameters: {
24
+ type: "object",
25
+ properties: {
26
+ action: {
27
+ type: "string",
28
+ enum: ["suggest", "search", "resume"],
29
+ description: "What to do: suggest (get recommendations), search (find by query), resume (continue session)"
30
+ },
31
+ query: {
32
+ type: "string",
33
+ description: "Search query for finding sessions (used with search action)"
34
+ },
35
+ sessionKey: {
36
+ type: "string",
37
+ description: "Session key or memory thread ID to resume"
38
+ },
39
+ context: {
40
+ type: "string",
41
+ description: "Current context for relevance matching"
42
+ }
43
+ },
44
+ required: ["action"]
45
+ }
46
+ }
47
+ },
48
+
49
+ async execute(args: {
50
+ action: "suggest" | "search" | "resume";
51
+ query?: string;
52
+ sessionKey?: string;
53
+ context?: string;
54
+ }) {
55
+ const system = getSessionResumeSystem();
56
+
57
+ switch (args.action) {
58
+ case "suggest": {
59
+ const suggestions = await system.getResumeSuggestions(args.context);
60
+
61
+ if (suggestions.length === 0) {
62
+ return {
63
+ success: true,
64
+ message: "No previous sessions found. Starting fresh!",
65
+ sessions: []
66
+ };
67
+ }
68
+
69
+ const formatted = suggestions.map((s, i) =>
70
+ `${i + 1}. **${s.sessionKey.slice(0, 8)}** (${s.timeAgo})\n` +
71
+ ` Reason: ${s.reason}\n` +
72
+ ` Last: "${s.lastMessage.slice(0, 50)}..."\n` +
73
+ ` To resume: \`/sessions resume ${s.sessionKey}\``
74
+ ).join("\n\n");
75
+
76
+ return {
77
+ success: true,
78
+ message: `💡 ${suggestions.length} session(s) you might want to resume:\n\n${formatted}`,
79
+ sessions: suggestions
80
+ };
81
+ }
82
+
83
+ case "search": {
84
+ if (!args.query) {
85
+ return { success: false, error: "Search requires a 'query' parameter" };
86
+ }
87
+
88
+ const results = await system.searchSessions(args.query);
89
+
90
+ if (results.length === 0) {
91
+ return {
92
+ success: true,
93
+ message: `No sessions found matching "${args.query}"`,
94
+ results: []
95
+ };
96
+ }
97
+
98
+ const formatted = results.map((r, i) =>
99
+ `${i + 1}. **${r.sessionKey.slice(0, 8)}** (${r.messageCount} msgs, ${Math.round(r.relevanceScore * 100)}% match)\n` +
100
+ ` Summary: ${r.summary?.slice(0, 60) || "No summary"}...\n` +
101
+ ` Thread: \`${r.memoryThreadId}\``
102
+ ).join("\n\n");
103
+
104
+ return {
105
+ success: true,
106
+ message: `🔍 Found ${results.length} session(s) for "${args.query}":\n\n${formatted}`,
107
+ results
108
+ };
109
+ }
110
+
111
+ case "resume": {
112
+ if (!args.sessionKey) {
113
+ return { success: false, error: "Resume requires a 'sessionKey' parameter" };
114
+ }
115
+
116
+ const result = await system.resumeSession(args.sessionKey);
117
+
118
+ if (!result.success) {
119
+ return { success: false, error: result.error };
120
+ }
121
+
122
+ return {
123
+ success: true,
124
+ message: `🔄 **Resumed session ${result.sessionKey?.slice(0, 8)}**\n\n${result.context || ""}`,
125
+ sessionKey: result.sessionKey,
126
+ context: result.context
127
+ };
128
+ }
129
+
130
+ default:
131
+ return { success: false, error: "Unknown action" };
132
+ }
133
+ }
134
+ };
135
+
136
+ // Auto-suggest on startup
137
+ export async function suggestOnStartup(context?: string) {
138
+ const system = getSessionResumeSystem();
139
+ const suggestions = await system.getResumeSuggestions(context);
140
+
141
+ if (suggestions.length > 0) {
142
+ console.log("\n🧠 [Session Resume] Recent sessions:");
143
+ for (const s of suggestions.slice(0, 3)) {
144
+ console.log(` • ${s.sessionKey.slice(0, 8)} - ${s.reason}`);
145
+ }
146
+ console.log(` Type "/sessions" to see more options\n`);
147
+ }
148
+ }
149
+
150
+ export default sessionResumeSkill;