0xkobold 0.4.3 → 0.5.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 (130) hide show
  1. package/README.md +226 -383
  2. package/dist/package.json +13 -4
  3. package/dist/src/agent/DraconicCapabilityRouter.js +556 -0
  4. package/dist/src/agent/DraconicCapabilityRouter.js.map +1 -0
  5. package/dist/src/agent/DraconicErrorClassifier.js +606 -0
  6. package/dist/src/agent/DraconicErrorClassifier.js.map +1 -0
  7. package/dist/src/agent/DraconicRunRegistry.js +460 -0
  8. package/dist/src/agent/DraconicRunRegistry.js.map +1 -0
  9. package/dist/src/agent/DraconicTokenPredictor.js +500 -0
  10. package/dist/src/agent/DraconicTokenPredictor.js.map +1 -0
  11. package/dist/src/agent/embedded-runner.js +3 -2
  12. package/dist/src/agent/embedded-runner.js.map +1 -1
  13. package/dist/src/cli/commands/doctor.js +199 -0
  14. package/dist/src/cli/commands/doctor.js.map +1 -0
  15. package/dist/src/cli/commands/migrate-from-openclaw.js +39 -0
  16. package/dist/src/cli/commands/migrate-from-openclaw.js.map +1 -0
  17. package/dist/src/cli/commands/migrate.js +6 -4
  18. package/dist/src/cli/commands/migrate.js.map +1 -1
  19. package/dist/src/cli/program.js +3 -1
  20. package/dist/src/cli/program.js.map +1 -1
  21. package/dist/src/config/unified-config.js +195 -0
  22. package/dist/src/config/unified-config.js.map +1 -0
  23. package/dist/src/cron/notifications.js +1 -1
  24. package/dist/src/cron/notifications.js.map +1 -1
  25. package/dist/src/cron/runner.js +9 -3
  26. package/dist/src/cron/runner.js.map +1 -1
  27. package/dist/src/event-bus/index.js +3 -1
  28. package/dist/src/event-bus/index.js.map +1 -1
  29. package/dist/src/extensions/community/draconic-messenger-wrapper.js +35 -0
  30. package/dist/src/extensions/community/draconic-messenger-wrapper.js.map +1 -0
  31. package/dist/src/extensions/community/draconic-subagents-wrapper.js +115 -0
  32. package/dist/src/extensions/community/draconic-subagents-wrapper.js.map +1 -0
  33. package/dist/src/extensions/core/compaction-safeguard-v2.js +95 -0
  34. package/dist/src/extensions/core/compaction-safeguard-v2.js.map +1 -0
  35. package/dist/src/extensions/core/compaction-safeguard.js +206 -137
  36. package/dist/src/extensions/core/compaction-safeguard.js.map +1 -1
  37. package/dist/src/extensions/core/config-extension.js +122 -0
  38. package/dist/src/extensions/core/config-extension.js.map +1 -0
  39. package/dist/src/extensions/core/draconic-hoard-extension.js +194 -0
  40. package/dist/src/extensions/core/draconic-hoard-extension.js.map +1 -0
  41. package/dist/src/extensions/core/draconic-lair-extension.js +146 -0
  42. package/dist/src/extensions/core/draconic-lair-extension.js.map +1 -0
  43. package/dist/src/extensions/core/draconic-safety-extension.js +402 -0
  44. package/dist/src/extensions/core/draconic-safety-extension.js.map +1 -0
  45. package/dist/src/extensions/core/ext-manager.js +40 -0
  46. package/dist/src/extensions/core/ext-manager.js.map +1 -0
  47. package/dist/src/extensions/core/gateway-extension.js +413 -624
  48. package/dist/src/extensions/core/gateway-extension.js.map +1 -1
  49. package/dist/src/extensions/core/generative-agents-extension.js +704 -0
  50. package/dist/src/extensions/core/generative-agents-extension.js.map +1 -0
  51. package/dist/src/extensions/core/memory-bootstrap-extension.js +279 -0
  52. package/dist/src/extensions/core/memory-bootstrap-extension.js.map +1 -0
  53. package/dist/src/extensions/core/ollama-extension.js +442 -0
  54. package/dist/src/extensions/core/ollama-extension.js.map +1 -0
  55. package/dist/src/extensions/core/ollama-router-extension.js +34 -93
  56. package/dist/src/extensions/core/ollama-router-extension.js.map +1 -1
  57. package/dist/src/extensions/core/perennial-memory-extension.js +5 -2
  58. package/dist/src/extensions/core/perennial-memory-extension.js.map +1 -1
  59. package/dist/src/extensions/core/persona-loader-extension.js +41 -15
  60. package/dist/src/extensions/core/persona-loader-extension.js.map +1 -1
  61. package/dist/src/extensions/core/pi-notify-extension.js +6 -0
  62. package/dist/src/extensions/core/pi-notify-extension.js.map +1 -1
  63. package/dist/src/extensions/core/session-bridge-extension.js +8 -72
  64. package/dist/src/extensions/core/session-bridge-extension.js.map +1 -1
  65. package/dist/src/extensions/core/tui-integration-extension-fixed.js +3 -0
  66. package/dist/src/extensions/core/tui-integration-extension-fixed.js.map +1 -0
  67. package/dist/src/extensions/core/tui-integration-extension.js +984 -0
  68. package/dist/src/extensions/core/tui-integration-extension.js.map +1 -0
  69. package/dist/src/gateway/persistence/AgentStore.js +399 -0
  70. package/dist/src/gateway/persistence/AgentStore.js.map +1 -0
  71. package/dist/src/gateway/persistence/index.js +9 -0
  72. package/dist/src/gateway/persistence/index.js.map +1 -0
  73. package/dist/src/hoard/DraconicHoardSystem.js +465 -0
  74. package/dist/src/hoard/DraconicHoardSystem.js.map +1 -0
  75. package/dist/src/index.js +7 -5
  76. package/dist/src/index.js.map +1 -1
  77. package/dist/src/infra/DraconicConnectionPool.js +492 -0
  78. package/dist/src/infra/DraconicConnectionPool.js.map +1 -0
  79. package/dist/src/lair/DraconicLairSystem.js +387 -0
  80. package/dist/src/lair/DraconicLairSystem.js.map +1 -0
  81. package/dist/src/llm/ollama.js +143 -99
  82. package/dist/src/llm/ollama.js.map +1 -1
  83. package/dist/src/migration/openclaw.js +5 -5
  84. package/dist/src/migration/openclaw.js.map +1 -1
  85. package/dist/src/pi-config.js +52 -27
  86. package/dist/src/pi-config.js.map +1 -1
  87. package/dist/src/sessions/SessionManager.js +416 -0
  88. package/dist/src/sessions/SessionManager.js.map +1 -0
  89. package/dist/src/sessions/SessionStore.js +580 -0
  90. package/dist/src/sessions/SessionStore.js.map +1 -0
  91. package/dist/src/sessions/UnifiedSessionBridge.js +394 -0
  92. package/dist/src/sessions/UnifiedSessionBridge.js.map +1 -0
  93. package/dist/src/sessions/index.js +15 -0
  94. package/dist/src/sessions/index.js.map +1 -0
  95. package/dist/src/sessions/migration/index.js +156 -0
  96. package/dist/src/sessions/migration/index.js.map +1 -0
  97. package/dist/src/sessions/types.js +8 -0
  98. package/dist/src/sessions/types.js.map +1 -0
  99. package/dist/src/skills/framework.js +1 -1
  100. package/dist/src/skills/framework.js.map +1 -1
  101. package/dist/src/tui/commands/final-functions.js +39 -0
  102. package/dist/src/tui/commands/final-functions.js.map +1 -0
  103. package/dist/src/tui/commands/natural-language-commands.js +231 -0
  104. package/dist/src/tui/commands/natural-language-commands.js.map +1 -0
  105. package/dist/src/tui/commands/orchestration-commands.js +340 -0
  106. package/dist/src/tui/commands/orchestration-commands.js.map +1 -0
  107. package/dist/src/tui/commands/orchestration-final-section.js +84 -0
  108. package/dist/src/tui/commands/orchestration-final-section.js.map +1 -0
  109. package/dist/src/tui/components/agent-tree-overlay.js +210 -0
  110. package/dist/src/tui/components/agent-tree-overlay.js.map +1 -0
  111. package/dist/src/tui/components/agent-tree-panel.js +229 -0
  112. package/dist/src/tui/components/agent-tree-panel.js.map +1 -0
  113. package/dist/src/tui/components/sidebar.js +82 -0
  114. package/dist/src/tui/components/sidebar.js.map +1 -0
  115. package/dist/src/tui/components/status-bar.js +115 -0
  116. package/dist/src/tui/components/status-bar.js.map +1 -0
  117. package/dist/src/tui/components/tree-header.js +85 -0
  118. package/dist/src/tui/components/tree-header.js.map +1 -0
  119. package/dist/src/tui/draconic-tui.js +291 -0
  120. package/dist/src/tui/draconic-tui.js.map +1 -0
  121. package/dist/src/tui/index.js +93 -0
  122. package/dist/src/tui/index.js.map +1 -0
  123. package/dist/src/tui/pi-tui-integration.js +260 -0
  124. package/dist/src/tui/pi-tui-integration.js.map +1 -0
  125. package/dist/src/utils/nl-patterns.js +145 -0
  126. package/dist/src/utils/nl-patterns.js.map +1 -0
  127. package/package.json +13 -4
  128. package/scripts/migrate-from-openclaw.sh +498 -0
  129. package/HEARTBEAT.md +0 -121
  130. package/USAGE.md +0 -191
@@ -1 +1 @@
1
- {"version":3,"file":"compaction-safeguard.js","sourceRoot":"","sources":["../../../../src/extensions/core/compaction-safeguard.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compaction-safeguard.js","sourceRoot":"","sources":["../../../../src/extensions/core/compaction-safeguard.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,122 @@
1
+ /**
2
+ * Config Extension
3
+ *
4
+ * Unified configuration management for 0xKobold.
5
+ * All extensions use ~/.0xkobold/0xkobold.json
6
+ * Following OpenClaw convention (openclaw.json)
7
+ */
8
+ import { config } from "../../config/unified-config.js";
9
+ export default function configExtension(pi) {
10
+ console.log("[Config] Extension loaded");
11
+ // Show config
12
+ pi.registerCommand("config", {
13
+ description: "Show unified configuration",
14
+ handler: async (_args, ctx) => {
15
+ const cfg = config.get();
16
+ const path = config.path();
17
+ const lines = [
18
+ "⚙️ 0xKobold Configuration",
19
+ "───────────────────────────────",
20
+ `File: ${path}`,
21
+ `Version: ${cfg.version}`,
22
+ `Updated: ${new Date(cfg.updatedAt).toLocaleString()}`,
23
+ "",
24
+ "Sections:",
25
+ " • /config-ollama - Ollama settings",
26
+ " • /config-gateway - Gateway settings",
27
+ " • /config-discord - Discord settings",
28
+ "",
29
+ "Commands:",
30
+ " /config-edit - Open config in editor",
31
+ " /config-reset - Reset to defaults",
32
+ ];
33
+ ctx.ui?.notify?.(lines.join("\n"), "info");
34
+ },
35
+ });
36
+ // Show raw config
37
+ pi.registerCommand("config-show", {
38
+ description: "Show raw config file contents",
39
+ handler: async (_args, ctx) => {
40
+ const cfg = config.get();
41
+ const json = JSON.stringify(cfg, null, 2);
42
+ ctx.ui?.notify?.([
43
+ "📄 Config File Contents:",
44
+ "────────────────────────",
45
+ json.slice(0, 1000) + (json.length > 1000 ? "\n..." : ""),
46
+ ].join("\n"), "info");
47
+ },
48
+ });
49
+ // Ollama config
50
+ pi.registerCommand("config-ollama", {
51
+ description: "Show Ollama configuration",
52
+ handler: async (_args, ctx) => {
53
+ const ollama = config.get("ollama") || {};
54
+ ctx.ui?.notify?.([
55
+ "🤖 Ollama Configuration",
56
+ "────────────────────────",
57
+ `Base URL: ${ollama.baseUrl || "http://localhost:11434"}`,
58
+ `Cloud URL: ${ollama.cloudUrl || "https://ollama.com/api"}`,
59
+ `API Key: ${ollama.apiKey ? "••••" + ollama.apiKey.slice(-4) : "Not set"}`,
60
+ `Custom Models: ${ollama.customModels?.length || 0}`,
61
+ "",
62
+ "To change:",
63
+ " Edit ~/.0xkobold/config.json",
64
+ " Or use: /ollama-config",
65
+ ].join("\n"), "info");
66
+ },
67
+ });
68
+ // Gateway config
69
+ pi.registerCommand("config-gateway", {
70
+ description: "Show Gateway configuration",
71
+ handler: async (_args, ctx) => {
72
+ const gateway = config.get("gateway") || {};
73
+ ctx.ui?.notify?.([
74
+ "🌐 Gateway Configuration",
75
+ "────────────────────────",
76
+ `Port: ${gateway.port || 18789}`,
77
+ `Host: ${gateway.host || "127.0.0.1"}`,
78
+ `Auto-start: ${gateway.autoStart ?? true}`,
79
+ `Persist agents: ${gateway.persistAgents ?? true}`,
80
+ "",
81
+ "To change:",
82
+ " Edit ~/.0xkobold/config.json",
83
+ ].join("\n"), "info");
84
+ },
85
+ });
86
+ // Discord config (safe version - no token shown)
87
+ pi.registerCommand("config-discord", {
88
+ description: "Show Discord configuration (safe)",
89
+ handler: async (_args, ctx) => {
90
+ const discord = config.get("discord") || {};
91
+ ctx.ui?.notify?.([
92
+ "💬 Discord Configuration",
93
+ "────────────────────────",
94
+ `Enabled: ${discord.enabled ? "✅ Yes" : "❌ No"}`,
95
+ `Token: ${discord.token ? "✅ Configured" : "❌ Not set"}`,
96
+ `Auto-reply: ${discord.autoReply ?? true}`,
97
+ "",
98
+ "To configure:",
99
+ " Edit ~/.0xkobold/config.json",
100
+ ' Add: { "discord": { "token": "YOUR_TOKEN" } }',
101
+ ].join("\n"), "info");
102
+ },
103
+ });
104
+ // Reset config
105
+ pi.registerCommand("config-reset", {
106
+ description: "Reset configuration to defaults",
107
+ handler: async (_args, ctx) => {
108
+ ctx.ui?.notify?.("⚠️ This will reset ALL settings to defaults. Continue?", "warning");
109
+ // Note: In a real implementation, you'd prompt for confirmation
110
+ // For now, just show instructions
111
+ ctx.ui?.notify?.([
112
+ "To reset config:",
113
+ " rm ~/.0xkobold/config.json",
114
+ " /reload",
115
+ "",
116
+ "Or manually edit the file.",
117
+ ].join("\n"), "info");
118
+ },
119
+ });
120
+ console.log("[Config] Commands: /config, /config-show, /config-ollama, /config-gateway, /config-discord");
121
+ }
122
+ //# sourceMappingURL=config-extension.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-extension.js","sourceRoot":"","sources":["../../../../src/extensions/core/config-extension.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAC;AAExD,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,EAAgB;IACtD,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;IAEzC,cAAc;IACd,EAAE,CAAC,eAAe,CAAC,QAAQ,EAAE;QAC3B,WAAW,EAAE,4BAA4B;QACzC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;YAC5B,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC;YACzB,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;YAE3B,MAAM,KAAK,GAAG;gBACZ,2BAA2B;gBAC3B,iCAAiC;gBACjC,SAAS,IAAI,EAAE;gBACf,YAAY,GAAG,CAAC,OAAO,EAAE;gBACzB,YAAY,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,cAAc,EAAE,EAAE;gBACtD,EAAE;gBACF,WAAW;gBACX,uCAAuC;gBACvC,wCAAwC;gBACxC,wCAAwC;gBACxC,EAAE;gBACF,WAAW;gBACX,6CAA6C;gBAC7C,yCAAyC;aAC1C,CAAC;YAEF,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;QAC7C,CAAC;KACF,CAAC,CAAC;IAEH,kBAAkB;IAClB,EAAE,CAAC,eAAe,CAAC,aAAa,EAAE;QAChC,WAAW,EAAE,+BAA+B;QAC5C,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;YAC5B,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC;YACzB,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YAE1C,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,CACd;gBACE,0BAA0B;gBAC1B,0BAA0B;gBAC1B,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;aAC1D,CAAC,IAAI,CAAC,IAAI,CAAC,EACZ,MAAM,CACP,CAAC;QACJ,CAAC;KACF,CAAC,CAAC;IAEH,gBAAgB;IAChB,EAAE,CAAC,eAAe,CAAC,eAAe,EAAE;QAClC,WAAW,EAAE,2BAA2B;QACxC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;YAC5B,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YAE1C,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,CACd;gBACE,yBAAyB;gBACzB,0BAA0B;gBAC1B,aAAa,MAAM,CAAC,OAAO,IAAI,wBAAwB,EAAE;gBACzD,cAAc,MAAM,CAAC,QAAQ,IAAI,wBAAwB,EAAE;gBAC3D,YAAY,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE;gBAC1E,kBAAkB,MAAM,CAAC,YAAY,EAAE,MAAM,IAAI,CAAC,EAAE;gBACpD,EAAE;gBACF,YAAY;gBACZ,gCAAgC;gBAChC,0BAA0B;aAC3B,CAAC,IAAI,CAAC,IAAI,CAAC,EACZ,MAAM,CACP,CAAC;QACJ,CAAC;KACF,CAAC,CAAC;IAEH,iBAAiB;IACjB,EAAE,CAAC,eAAe,CAAC,gBAAgB,EAAE;QACnC,WAAW,EAAE,4BAA4B;QACzC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;YAC5B,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;YAE5C,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,CACd;gBACE,0BAA0B;gBAC1B,0BAA0B;gBAC1B,SAAS,OAAO,CAAC,IAAI,IAAI,KAAK,EAAE;gBAChC,SAAS,OAAO,CAAC,IAAI,IAAI,WAAW,EAAE;gBACtC,eAAe,OAAO,CAAC,SAAS,IAAI,IAAI,EAAE;gBAC1C,mBAAmB,OAAO,CAAC,aAAa,IAAI,IAAI,EAAE;gBAClD,EAAE;gBACF,YAAY;gBACZ,gCAAgC;aACjC,CAAC,IAAI,CAAC,IAAI,CAAC,EACZ,MAAM,CACP,CAAC;QACJ,CAAC;KACF,CAAC,CAAC;IAEH,iDAAiD;IACjD,EAAE,CAAC,eAAe,CAAC,gBAAgB,EAAE;QACnC,WAAW,EAAE,mCAAmC;QAChD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;YAC5B,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;YAE5C,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,CACd;gBACE,0BAA0B;gBAC1B,0BAA0B;gBAC1B,YAAY,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE;gBAChD,UAAU,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,WAAW,EAAE;gBACxD,eAAe,OAAO,CAAC,SAAS,IAAI,IAAI,EAAE;gBAC1C,EAAE;gBACF,eAAe;gBACf,gCAAgC;gBAChC,iDAAiD;aAClD,CAAC,IAAI,CAAC,IAAI,CAAC,EACZ,MAAM,CACP,CAAC;QACJ,CAAC;KACF,CAAC,CAAC;IAEH,eAAe;IACf,EAAE,CAAC,eAAe,CAAC,cAAc,EAAE;QACjC,WAAW,EAAE,iCAAiC;QAC9C,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;YAC5B,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,CACd,wDAAwD,EACxD,SAAS,CACV,CAAC;YAEF,gEAAgE;YAChE,kCAAkC;YAClC,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,CACd;gBACE,kBAAkB;gBAClB,8BAA8B;gBAC9B,WAAW;gBACX,EAAE;gBACF,4BAA4B;aAC7B,CAAC,IAAI,CAAC,IAAI,CAAC,EACZ,MAAM,CACP,CAAC;QACJ,CAAC;KACF,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,CAAC,4FAA4F,CAAC,CAAC;AAC5G,CAAC"}
@@ -0,0 +1,194 @@
1
+ /**
2
+ * 💎 Draconic Hoard Extension
3
+ *
4
+ * Provides /treasure commands for code snippet management
5
+ * Superior code treasure hoarding with semantic search
6
+ */
7
+ import { Type } from "@sinclair/typebox";
8
+ import { getDraconicHoardSystem, } from "../../hoard/DraconicHoardSystem";
9
+ // 💎 Hoard system singleton
10
+ let hoardSystem;
11
+ export default function register(pi) {
12
+ // Initialize
13
+ hoardSystem = getDraconicHoardSystem();
14
+ // ============================================================================
15
+ // TOOL: hoard_manage
16
+ // ============================================================================
17
+ pi.registerTool({
18
+ name: "hoard_manage",
19
+ label: "💎 Draconic Hoard Management",
20
+ description: "Manage code snippets (treasures) with semantic search",
21
+ parameters: Type.Object({
22
+ operation: Type.String({
23
+ description: "Operation: add, search, suggest, get, share, stats",
24
+ }),
25
+ name: Type.Optional(Type.String({ description: "Treasure name" })),
26
+ description: Type.Optional(Type.String({ description: "Treasure description" })),
27
+ code: Type.Optional(Type.String({ description: "Code snippet" })),
28
+ language: Type.Optional(Type.String({ description: "Programming language" })),
29
+ tags: Type.Optional(Type.Array(Type.String(), { description: "Tags" })),
30
+ query: Type.Optional(Type.String({ description: "Search query" })),
31
+ task: Type.Optional(Type.String({ description: "Task for suggestions" })),
32
+ treasureId: Type.Optional(Type.String({ description: "Treasure ID" })),
33
+ sessionKey: Type.Optional(Type.String({ description: "Session for sharing" })),
34
+ sourceFile: Type.Optional(Type.String({ description: "Source file path" })),
35
+ }),
36
+ async execute(_toolCallId, params, _signal, _onUpdate, ctx) {
37
+ const operation = params.operation;
38
+ switch (operation) {
39
+ case "add": {
40
+ const name = params.name;
41
+ const desc = params.description;
42
+ const code = params.code;
43
+ const language = params.language;
44
+ const tags = params.tags;
45
+ if (!name || !code) {
46
+ return { content: [{ type: "text", text: "❌ name and code required" }], details: { error: "missing_params" } };
47
+ }
48
+ const id = hoardSystem.treasure({
49
+ name,
50
+ description: desc || "",
51
+ code,
52
+ language: language || "text",
53
+ tags,
54
+ sourceFile: params.sourceFile,
55
+ sourceSession: ctx.sessionKey || "unknown",
56
+ createdBy: "user",
57
+ });
58
+ return {
59
+ content: [{ type: "text", text: `💎 Treasure added: ${id.slice(0, 8)}...\nName: ${name}` }],
60
+ details: { id, name },
61
+ };
62
+ }
63
+ case "search": {
64
+ const query = params.query;
65
+ if (!query) {
66
+ return { content: [{ type: "text", text: "❌ query required" }], details: { error: "missing_query" } };
67
+ }
68
+ const results = hoardSystem.search(query, { limit: 5 });
69
+ if (results.length === 0) {
70
+ return { content: [{ type: "text", text: "🔍 No treasures found" }], details: { results: [] } };
71
+ }
72
+ return {
73
+ content: [{
74
+ type: "text",
75
+ text: `🔍 Found ${results.length} treasures:\n\n${results.map((r, i) => `${i + 1}. ${r.treasure.name} (${r.treasure.language})\n Score: ${r.score.toFixed(2)}\n ${r.treasure.description.slice(0, 60)}...`).join("\n\n")}`,
76
+ }],
77
+ details: { results },
78
+ };
79
+ }
80
+ case "suggest": {
81
+ const task = params.task;
82
+ if (!task) {
83
+ return { content: [{ type: "text", text: "❌ task required" }], details: { error: "missing_task" } };
84
+ }
85
+ const suggestions = hoardSystem.suggestTreasures(task, { limit: 3 });
86
+ if (suggestions.length === 0) {
87
+ return { content: [{ type: "text", text: "💡 No relevant treasures found" }], details: { suggestions: [] } };
88
+ }
89
+ return {
90
+ content: [{
91
+ type: "text",
92
+ text: `💡 Suggested treasures for task:\n\n${suggestions.map((s, i) => `${i + 1}. ${s.treasure.name} (${s.treasure.language})\n Relevance: ${(s.relevance * 100).toFixed(0)}%\n ${s.reason}`).join("\n\n")}`,
93
+ }],
94
+ details: { suggestions },
95
+ };
96
+ }
97
+ case "get": {
98
+ const treasureId = params.treasureId;
99
+ if (!treasureId) {
100
+ return { content: [{ type: "text", text: "❌ treasureId required" }], details: { error: "missing_id" } };
101
+ }
102
+ const treasure = hoardSystem.get(treasureId);
103
+ if (!treasure) {
104
+ return { content: [{ type: "text", text: "❌ Treasure not found" }], details: { error: "not_found" } };
105
+ }
106
+ return {
107
+ content: [{
108
+ type: "text",
109
+ text: `💎 ${treasure.name}\nLanguage: ${treasure.language}\nQuality: ${treasure.quality}/10\nUsed: ${treasure.timesUsed} times\nTags: ${treasure.tags.join(", ")}\n\n\`\`\`${treasure.language}\n${treasure.code}\n\`\`\``,
110
+ }],
111
+ details: { treasure },
112
+ };
113
+ }
114
+ case "share": {
115
+ const treasureId = params.treasureId;
116
+ const sessionKey = params.sessionKey;
117
+ if (!treasureId || !sessionKey) {
118
+ return { content: [{ type: "text", text: "❌ treasureId and sessionKey required" }], details: { error: "missing_params" } };
119
+ }
120
+ const success = hoardSystem.shareTreasure(treasureId, sessionKey);
121
+ return {
122
+ content: [{ type: "text", text: success ? "✅ Treasure shared" : "❌ Failed to share" }],
123
+ details: { success },
124
+ };
125
+ }
126
+ case "stats": {
127
+ const stats = hoardSystem.getStats();
128
+ return {
129
+ content: [{
130
+ type: "text",
131
+ text: `💎 Hoard Statistics:\n\nTotal treasures: ${stats.totalTreasures}\nTotal usage: ${stats.totalUsage}\nAverage quality: ${stats.averageQuality.toFixed(1)}/10\nShared: ${stats.sharedTreasures}\n\nBy Language:\n${Object.entries(stats.byLanguage).map(([l, c]) => ` ${l}: ${c}`).join("\n")}`,
132
+ }],
133
+ details: stats,
134
+ };
135
+ }
136
+ default:
137
+ return { content: [{ type: "text", text: `❌ Unknown operation: ${operation}` }], details: { error: "unknown_op" } };
138
+ }
139
+ },
140
+ });
141
+ // ============================================================================
142
+ // COMMANDS
143
+ // ============================================================================
144
+ // /treasure <query>
145
+ pi.registerCommand("treasure", {
146
+ description: "Search treasures: /treasure <query>",
147
+ handler: async (args, ctx) => {
148
+ if (!args.trim()) {
149
+ ctx.ui.notify("❌ Usage: /treasure <search query>", "error");
150
+ return;
151
+ }
152
+ const results = hoardSystem.search(args, { limit: 5 });
153
+ if (results.length === 0) {
154
+ ctx.ui.notify("🔍 No treasures found", "info");
155
+ return;
156
+ }
157
+ ctx.ui.notify(`🔍 ${results.length} treasures:\n${results.map(r => `• ${r.treasure.name}`).join("\n")}`, "info");
158
+ },
159
+ });
160
+ // /treasure-add
161
+ pi.registerCommand("treasure-add", {
162
+ description: "Add treasure (interactive): /treasure-add",
163
+ handler: async (_args, ctx) => {
164
+ ctx.ui.notify("💎 Use hoard_manage tool to add treasures", "info");
165
+ },
166
+ });
167
+ // /treasure-stats
168
+ pi.registerCommand("treasure-stats", {
169
+ description: "Show hoard statistics",
170
+ handler: async (_args, ctx) => {
171
+ const stats = hoardSystem.getStats();
172
+ ctx.ui.notify(`💎 Hoard: ${stats.totalTreasures} treasures, ${stats.totalUsage} uses`, "info");
173
+ },
174
+ });
175
+ // /treasure-suggest <task>
176
+ pi.registerCommand("treasure-suggest", {
177
+ description: "Suggest treasures for task: /treasure-suggest <task>",
178
+ handler: async (args, ctx) => {
179
+ if (!args.trim()) {
180
+ ctx.ui.notify("❌ Usage: /treasure-suggest <task description>", "error");
181
+ return;
182
+ }
183
+ const suggestions = hoardSystem.suggestTreasures(args, { limit: 3 });
184
+ if (suggestions.length === 0) {
185
+ ctx.ui.notify("💡 No relevant treasures", "info");
186
+ return;
187
+ }
188
+ ctx.ui.notify(`💡 Suggestions:\n${suggestions.map(s => `• ${s.treasure.name} (${(s.relevance * 100).toFixed(0)}%)`).join("\n")}`, "info");
189
+ },
190
+ });
191
+ console.log("[💎 DraconicHoard] Extension loaded");
192
+ console.log(" Commands: /treasure, /treasure-stats, /treasure-suggest");
193
+ }
194
+ //# sourceMappingURL=draconic-hoard-extension.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"draconic-hoard-extension.js","sourceRoot":"","sources":["../../../../src/extensions/core/draconic-hoard-extension.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,146 @@
1
+ /**
2
+ * 🏰 Draconic Lair Extension
3
+ *
4
+ * Provides /lair commands for project workspace management
5
+ * Superior to agent-workspace-extension with auto-detection and per-file memory
6
+ */
7
+ import { Type } from "@sinclair/typebox";
8
+ import * as path from "node:path";
9
+ import { getDraconicLairSystem, } from "../../lair/DraconicLairSystem";
10
+ // 🏰 Lair system singleton
11
+ let lairSystem;
12
+ export default function register(pi) {
13
+ // Initialize
14
+ lairSystem = getDraconicLairSystem();
15
+ // ============================================================================
16
+ // TOOL: lair_manage
17
+ // ============================================================================
18
+ pi.registerTool({
19
+ name: "lair_manage",
20
+ label: "🏰 Draconic Lair Management",
21
+ description: "Manage project workspaces with auto-detection and file tracking",
22
+ parameters: Type.Object({
23
+ operation: Type.String({
24
+ description: "Operation: get, create, list, stats, add_agent, remove_agent, record_file",
25
+ }),
26
+ path: Type.Optional(Type.String({ description: "Project path" })),
27
+ lairId: Type.Optional(Type.String({ description: "Lair ID" })),
28
+ agentId: Type.Optional(Type.String({ description: "Agent ID" })),
29
+ filePath: Type.Optional(Type.String({ description: "File path" })),
30
+ fileOperation: Type.Optional(Type.String({ description: "File operation type" })),
31
+ description: Type.Optional(Type.String({ description: "Operation description" })),
32
+ }),
33
+ async execute(_toolCallId, params, _signal, _onUpdate, ctx) {
34
+ const operation = params.operation;
35
+ switch (operation) {
36
+ case "get": {
37
+ const projectPath = params.path;
38
+ if (!projectPath) {
39
+ return { content: [{ type: "text", text: "❌ path required" }], details: { error: "missing_path" } };
40
+ }
41
+ const lair = lairSystem.getLair(projectPath);
42
+ return {
43
+ content: [{
44
+ type: "text",
45
+ text: `🏰 Lair: ${lair.name}\nID: ${lair.id}\nType: ${lair.type}\nFramework: ${lair.framework}\nLanguage: ${lair.language}\n
46
+ Active Agents: ${lair.activeAgents.size}\nFile Memories: ${lair.fileMemories.size}\n\nSuggested Tools:\n${lair.suggestedTools.map(t => ` • ${t}`).join("\n")}`,
47
+ }],
48
+ details: { lair },
49
+ };
50
+ }
51
+ case "list": {
52
+ const lairs = lairSystem.listLairs();
53
+ const stats = lairSystem.getStats();
54
+ return {
55
+ content: [{
56
+ type: "text",
57
+ text: `🏰 All Lairs (${stats.totalLairs}):\n\n${lairs.map(l => `• ${l.name} (${l.type}, ${l.framework}) - ${l.activeAgents.size} agents`).join("\n")}`,
58
+ }],
59
+ details: { lairs, stats },
60
+ };
61
+ }
62
+ case "stats": {
63
+ const stats = lairSystem.getStats();
64
+ return {
65
+ content: [{
66
+ type: "text",
67
+ text: `🏰 Lair Statistics:\n\nTotal: ${stats.totalLairs}\nActive Agents: ${stats.totalAgents}\nFile Memories: ${stats.totalFileMemories}\n\nBy Type:\n${Object.entries(stats.byType).map(([k, v]) => ` ${k}: ${v}`).join("\n")}`,
68
+ }],
69
+ details: stats,
70
+ };
71
+ }
72
+ case "add_agent": {
73
+ const lairId = params.lairId;
74
+ const agentId = params.agentId;
75
+ if (!lairId || !agentId) {
76
+ return { content: [{ type: "text", text: "❌ lairId and agentId required" }], details: { error: "missing_params" } };
77
+ }
78
+ const success = lairSystem.addAgent(lairId, agentId);
79
+ return {
80
+ content: [{ type: "text", text: success ? `✅ Agent ${agentId} added to lair` : `❌ Failed to add agent` }],
81
+ details: { success, lairId, agentId },
82
+ };
83
+ }
84
+ case "record_file": {
85
+ const lairId = params.lairId;
86
+ const filePath = params.filePath;
87
+ const agentId = params.agentId;
88
+ const fileOp = params.fileOperation;
89
+ const desc = params.description;
90
+ if (!lairId || !filePath || !agentId) {
91
+ return { content: [{ type: "text", text: "❌ missing required params" }], details: { error: "missing_params" } };
92
+ }
93
+ lairSystem.recordFileOperation(lairId, filePath, agentId, fileOp, desc || "");
94
+ return {
95
+ content: [{ type: "text", text: `✅ Recorded ${fileOp} on ${path.basename(filePath)}` }],
96
+ details: { lairId, filePath, agentId, operation: fileOp },
97
+ };
98
+ }
99
+ default:
100
+ return { content: [{ type: "text", text: `❌ Unknown operation: ${operation}` }], details: { error: "unknown_op" } };
101
+ }
102
+ },
103
+ });
104
+ // ============================================================================
105
+ // COMMANDS
106
+ // ============================================================================
107
+ // /lair [path]
108
+ pi.registerCommand("lair", {
109
+ description: "Get or create lair: /lair [path]",
110
+ handler: async (args, ctx) => {
111
+ const projectPath = args.trim() || process.cwd();
112
+ const lair = lairSystem.getLair(projectPath);
113
+ ctx.ui.notify(`🏰 Lair: ${lair.name}\nType: ${lair.type}\nFramework: ${lair.framework}\nAgents: ${lair.activeAgents.size}`, "info");
114
+ },
115
+ });
116
+ // /lairs
117
+ pi.registerCommand("lairs", {
118
+ description: "List all lairs",
119
+ handler: async (_args, ctx) => {
120
+ const lairs = lairSystem.listLairs();
121
+ const stats = lairSystem.getStats();
122
+ ctx.ui.notify(`${stats.totalLairs} lairs:\n${lairs.slice(0, 10).map(l => `• ${l.name}`).join("\n")}`, "info");
123
+ },
124
+ });
125
+ // /lair-stats
126
+ pi.registerCommand("lair-stats", {
127
+ description: "Show lair statistics",
128
+ handler: async (_args, ctx) => {
129
+ const stats = lairSystem.getStats();
130
+ ctx.ui.notify(`🏰 Lair Stats:\nLairs: ${stats.totalLairs}\nActive Agents: ${stats.totalAgents}\nFile Memories: ${stats.totalFileMemories}`, "info");
131
+ },
132
+ });
133
+ // /lair-agents <lair-path>
134
+ pi.registerCommand("lair-agents", {
135
+ description: "Show agents in lair: /lair-agents <path>",
136
+ handler: async (args, ctx) => {
137
+ const projectPath = args.trim() || process.cwd();
138
+ const lair = lairSystem.getLair(projectPath);
139
+ const agents = Array.from(lair.activeAgents).join(", ") || "none";
140
+ ctx.ui.notify(`${lair.name} agents:\n${agents}`, "info");
141
+ },
142
+ });
143
+ console.log("[🏰 DraconicLair] Extension loaded");
144
+ console.log(" Commands: /lair, /lairs, /lair-stats, /lair-agents");
145
+ }
146
+ //# sourceMappingURL=draconic-lair-extension.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"draconic-lair-extension.js","sourceRoot":"","sources":["../../../../src/extensions/core/draconic-lair-extension.ts"],"names":[],"mappings":"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"}