@bibobonking/opensol 3.1.4 → 3.1.6

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 (73) hide show
  1. package/CHANGELOG.md +14 -12
  2. package/LICENSE +21 -0
  3. package/desktop/src-tauri/icons/128x128.png +0 -0
  4. package/desktop/src-tauri/icons/128x128@2x.png +0 -0
  5. package/desktop/src-tauri/icons/32x32.png +0 -0
  6. package/desktop/src-tauri/icons/64x64.png +0 -0
  7. package/desktop/src-tauri/icons/Square107x107Logo.png +0 -0
  8. package/desktop/src-tauri/icons/Square142x142Logo.png +0 -0
  9. package/desktop/src-tauri/icons/Square150x150Logo.png +0 -0
  10. package/desktop/src-tauri/icons/Square284x284Logo.png +0 -0
  11. package/desktop/src-tauri/icons/Square30x30Logo.png +0 -0
  12. package/desktop/src-tauri/icons/Square310x310Logo.png +0 -0
  13. package/desktop/src-tauri/icons/Square44x44Logo.png +0 -0
  14. package/desktop/src-tauri/icons/Square71x71Logo.png +0 -0
  15. package/desktop/src-tauri/icons/Square89x89Logo.png +0 -0
  16. package/desktop/src-tauri/icons/StoreLogo.png +0 -0
  17. package/desktop/src-tauri/icons/icon.icns +0 -0
  18. package/desktop/src-tauri/icons/icon.ico +0 -0
  19. package/desktop/src-tauri/icons/icon.png +0 -0
  20. package/dist/assets/index-BUVnnhRH.js +281 -0
  21. package/dist/assets/index-CxNPLBg7.css +1 -0
  22. package/dist/favicon.svg +18 -15
  23. package/dist/index.html +2 -2
  24. package/package.json +6 -3
  25. package/public/favicon.svg +18 -15
  26. package/server/daemon.mjs +66 -49
  27. package/server/lib/deploy.mjs +222 -121
  28. package/server/lib/providers.mjs +23 -1
  29. package/server/lib/skills.mjs +385 -100
  30. package/server/lib/tools.mjs +0 -40
  31. package/src/agent/adapters/openai-responses.ts +1 -5
  32. package/src/agent/adapters/openai.ts +4 -11
  33. package/src/agent/prompt.ts +7 -14
  34. package/src/agent/subagent.ts +3 -14
  35. package/src/agent/tools.ts +2 -0
  36. package/src/components/ChatView.tsx +2 -1
  37. package/src/components/Composer.tsx +2 -1
  38. package/src/components/ContextBar.tsx +10 -0
  39. package/src/components/DeployModal.tsx +266 -252
  40. package/src/components/FileIcon.tsx +391 -99
  41. package/src/components/HomeDashboard.tsx +5 -10
  42. package/src/components/Logo.tsx +9 -11
  43. package/src/components/ModelDeck.tsx +8 -11
  44. package/src/components/SettingsModal.tsx +160 -122
  45. package/src/components/Sidebar.tsx +4 -3
  46. package/src/components/SystemPromptButton.tsx +198 -0
  47. package/src/components/ToolCallCard.tsx +2 -0
  48. package/src/components/TopBar.tsx +2 -19
  49. package/src/components/WorkspacePanel.tsx +76 -93
  50. package/src/core/plugins/tools/skill.ts +19 -76
  51. package/src/core/services/agent-loop.ts +16 -31
  52. package/src/core/services/subagents.ts +2 -2
  53. package/src/core/services/system-prompt.ts +17 -23
  54. package/src/core/services/tools.ts +0 -1
  55. package/src/lib/boot.ts +2 -0
  56. package/src/lib/credits.ts +33 -0
  57. package/src/lib/daemon.ts +40 -19
  58. package/src/lib/permissions.ts +1 -1
  59. package/src/lib/retry.test.mjs +40 -12
  60. package/src/lib/retry.ts +41 -8
  61. package/src/lib/system-prompt.ts +23 -0
  62. package/src/lib/usage.ts +8 -13
  63. package/src/store/chats.ts +0 -1
  64. package/src/store/settings.ts +12 -44
  65. package/src/store/skills.ts +79 -0
  66. package/src/store/ui.ts +3 -1
  67. package/src/types.ts +30 -15
  68. package/tsconfig.tsbuildinfo +1 -1
  69. package/dist/assets/index-B1pQC9Fe.js +0 -288
  70. package/dist/assets/index-qLr4aZVC.css +0 -1
  71. package/src/components/SystemPromptModal.tsx +0 -168
  72. package/src/lib/skills.test.mjs +0 -22
  73. package/src/lib/skills.ts +0 -93
package/src/types.ts CHANGED
@@ -38,6 +38,8 @@ export interface ModelInfo {
38
38
  apiKind: ApiKind
39
39
  free?: boolean
40
40
  canonicalId?: string
41
+ /** USD per 1M tokens, when the provider or catalog publishes it. */
42
+ pricing?: { input: number; output: number }
41
43
  note?: string
42
44
  }
43
45
 
@@ -113,19 +115,18 @@ export interface ToolSetting {
113
115
 
114
116
  export type SearchProvider = 'duckduckgo' | 'tavily' | 'brave' | 'serper'
115
117
 
116
- export interface Skill {
117
- id: string
118
+ /** A skill folder installed on the daemon (SKILL.md + bundled files). */
119
+ export interface InstalledSkill {
118
120
  name: string
121
+ title: string
119
122
  description: string
120
- instructions: string
121
123
  enabled: boolean
122
- builtIn?: boolean
123
- /** Where the skill came from. Folder skills keep their uploaded files. */
124
- source?: 'folder' | 'npm'
125
- package?: string
126
- version?: string
127
- /** Text files from the folder, keyed by relative path (SKILL.md included). */
128
- files?: Record<string, string>
124
+ /** 'upload' | 'folder' | 'legacy' | `npm:<spec>` */
125
+ source: string
126
+ installedAt: string
127
+ fileCount: number
128
+ size: number
129
+ path: string
129
130
  }
130
131
 
131
132
  export interface AppSettings {
@@ -136,12 +137,11 @@ export interface AppSettings {
136
137
  temperature: number
137
138
  maxTokens: number
138
139
  systemPrompt: string
139
- /** Per-workspace system prompt overrides, keyed by workspace root. */
140
+ /** Custom base prompts per workspace folder (absolute root path). Missing = use the shared prompt. */
140
141
  workspacePrompts: Record<string, string>
141
142
  providers: Record<string, ProviderCredentials>
142
143
  searchProvider: SearchProvider
143
144
  tools: Record<BuiltinToolName, ToolSetting>
144
- skills: Skill[]
145
145
  theme: ThemeId
146
146
  showTokenEstimate: boolean
147
147
  mode: AgentMode
@@ -195,6 +195,8 @@ export interface AssistantMessage {
195
195
  model?: string
196
196
  provider?: ProviderId
197
197
  usage?: { input?: number; output?: number; cost?: number }
198
+ /** Credits spent on this reply (provider-reported, else tokens × model price). */
199
+ cost?: number
198
200
  error?: string
199
201
  stopped?: boolean
200
202
  durationMs?: number
@@ -236,10 +238,10 @@ export interface ChatSession {
236
238
  mode?: AgentMode
237
239
  /** Workspace folder the session was started in. */
238
240
  workspace?: string
239
- /** Per-session system prompt. Empty means the workspace or shared prompt is used. */
240
- systemPrompt?: string
241
241
  /** Who last set the title; only 'auto' titles may be replaced by the AI. */
242
242
  titleSource?: 'auto' | 'ai' | 'user'
243
+ /** Custom base prompt for this session only. Undefined = inherit (workspace prompt, else the shared one). */
244
+ systemPrompt?: string
243
245
  }
244
246
 
245
247
  export type McpStatus = 'disabled' | 'disconnected' | 'connecting' | 'connected' | 'needs_auth' | 'error'
@@ -286,7 +288,7 @@ export interface McpServer {
286
288
  export interface Usage {
287
289
  input?: number
288
290
  output?: number
289
- /** Cost/credits reported by the provider, when it reports one. */
291
+ /** Credits/USD the provider itself reported for this request. */
290
292
  cost?: number
291
293
  }
292
294
 
@@ -379,6 +381,18 @@ export interface DeployRequest {
379
381
  mode?: AgentMode
380
382
  }
381
383
 
384
+ export interface DeployDetection {
385
+ path: string
386
+ name: string
387
+ framework: string
388
+ packageManager: string
389
+ hasNodeModules: boolean
390
+ buildCommand: string
391
+ outputDir: string
392
+ expectedOutputDir: string
393
+ built: boolean
394
+ }
395
+
382
396
  export interface DeployResult {
383
397
  provider: DeployProviderId
384
398
  url: string
@@ -388,6 +402,7 @@ export interface DeployResult {
388
402
 
389
403
  export type DeployEvent =
390
404
  | { type: 'start'; provider: DeployProviderId; path?: string }
405
+ | { type: 'step'; id: string; label: string }
391
406
  | { type: 'log'; stream: 'stdout' | 'stderr' | 'meta'; text: string }
392
407
  | { type: 'done'; result: DeployResult }
393
408
  | { type: 'error'; message: string; code?: string }
@@ -1 +1 @@
1
- {"root":["./src/App.tsx","./src/main.tsx","./src/types.ts","./src/vite-env.d.ts","./src/agent/approval.ts","./src/agent/compact.ts","./src/agent/index.ts","./src/agent/model.ts","./src/agent/prompt.ts","./src/agent/queue.ts","./src/agent/subagent.ts","./src/agent/tools.ts","./src/agent/adapters/anthropic.ts","./src/agent/adapters/gemini.ts","./src/agent/adapters/openai-responses.ts","./src/agent/adapters/openai.ts","./src/agent/adapters/shared.ts","./src/components/ChatView.tsx","./src/components/CommandPalette.tsx","./src/components/Composer.tsx","./src/components/ContextBar.tsx","./src/components/DeployModal.tsx","./src/components/DiffView.tsx","./src/components/ErrorBoundary.tsx","./src/components/FileIcon.tsx","./src/components/HomeDashboard.tsx","./src/components/Logo.tsx","./src/components/Markdown.tsx","./src/components/McpPanel.tsx","./src/components/MessageItem.tsx","./src/components/ModelDeck.tsx","./src/components/PixleSol.tsx","./src/components/PluginBuilder.tsx","./src/components/PluginManager.tsx","./src/components/PreviewPane.tsx","./src/components/SessionsTab.tsx","./src/components/SettingsModal.tsx","./src/components/Sidebar.tsx","./src/components/Splash.tsx","./src/components/SystemPromptModal.tsx","./src/components/ToolCallCard.tsx","./src/components/TopBar.tsx","./src/components/TrajectoryView.tsx","./src/components/WorkspacePanel.tsx","./src/components/ui.tsx","./src/core/kernel.ts","./src/core/mcp-tools.ts","./src/core/types.ts","./src/core/plugins/tools/fs.ts","./src/core/plugins/tools/git.ts","./src/core/plugins/tools/grep.ts","./src/core/plugins/tools/shell.ts","./src/core/plugins/tools/skill.ts","./src/core/plugins/tools/subagent.ts","./src/core/plugins/tools/web.ts","./src/core/services/agent-loop.ts","./src/core/services/approval.ts","./src/core/services/compaction.ts","./src/core/services/llm.ts","./src/core/services/sessions.ts","./src/core/services/subagents.ts","./src/core/services/system-prompt.ts","./src/core/services/titles.ts","./src/core/services/tools.ts","./src/core/services/ui.ts","./src/data/providers.ts","./src/lib/boot.ts","./src/lib/context.ts","./src/lib/conversation.ts","./src/lib/daemon.ts","./src/lib/diff.ts","./src/lib/hooks.ts","./src/lib/mcp-config.ts","./src/lib/permissions.ts","./src/lib/pixlesol.ts","./src/lib/plugin-folder.ts","./src/lib/reasoning.ts","./src/lib/retry.ts","./src/lib/skills.ts","./src/lib/sse.ts","./src/lib/themes.ts","./src/lib/usage.ts","./src/lib/utils.ts","./src/plugins/api.ts","./src/plugins/bridge.d.mts","./src/plugins/index.ts","./src/plugins/preview.ts","./src/plugins/runtime.ts","./src/plugins/types.ts","./src/store/chats.ts","./src/store/mcp.ts","./src/store/models.ts","./src/store/settings.ts","./src/store/ui.ts","./src/store/workspace.ts"],"version":"5.9.3"}
1
+ {"root":["./src/App.tsx","./src/main.tsx","./src/types.ts","./src/vite-env.d.ts","./src/agent/approval.ts","./src/agent/compact.ts","./src/agent/index.ts","./src/agent/model.ts","./src/agent/prompt.ts","./src/agent/queue.ts","./src/agent/subagent.ts","./src/agent/tools.ts","./src/agent/adapters/anthropic.ts","./src/agent/adapters/gemini.ts","./src/agent/adapters/openai-responses.ts","./src/agent/adapters/openai.ts","./src/agent/adapters/shared.ts","./src/components/ChatView.tsx","./src/components/CommandPalette.tsx","./src/components/Composer.tsx","./src/components/ContextBar.tsx","./src/components/DeployModal.tsx","./src/components/DiffView.tsx","./src/components/ErrorBoundary.tsx","./src/components/FileIcon.tsx","./src/components/HomeDashboard.tsx","./src/components/Logo.tsx","./src/components/Markdown.tsx","./src/components/McpPanel.tsx","./src/components/MessageItem.tsx","./src/components/ModelDeck.tsx","./src/components/PixleSol.tsx","./src/components/PluginBuilder.tsx","./src/components/PluginManager.tsx","./src/components/PreviewPane.tsx","./src/components/SessionsTab.tsx","./src/components/SettingsModal.tsx","./src/components/Sidebar.tsx","./src/components/Splash.tsx","./src/components/SystemPromptButton.tsx","./src/components/ToolCallCard.tsx","./src/components/TopBar.tsx","./src/components/TrajectoryView.tsx","./src/components/WorkspacePanel.tsx","./src/components/ui.tsx","./src/core/kernel.ts","./src/core/mcp-tools.ts","./src/core/types.ts","./src/core/plugins/tools/fs.ts","./src/core/plugins/tools/git.ts","./src/core/plugins/tools/grep.ts","./src/core/plugins/tools/shell.ts","./src/core/plugins/tools/skill.ts","./src/core/plugins/tools/subagent.ts","./src/core/plugins/tools/web.ts","./src/core/services/agent-loop.ts","./src/core/services/approval.ts","./src/core/services/compaction.ts","./src/core/services/llm.ts","./src/core/services/sessions.ts","./src/core/services/subagents.ts","./src/core/services/system-prompt.ts","./src/core/services/titles.ts","./src/core/services/tools.ts","./src/core/services/ui.ts","./src/data/providers.ts","./src/lib/boot.ts","./src/lib/context.ts","./src/lib/conversation.ts","./src/lib/credits.ts","./src/lib/daemon.ts","./src/lib/diff.ts","./src/lib/hooks.ts","./src/lib/mcp-config.ts","./src/lib/permissions.ts","./src/lib/pixlesol.ts","./src/lib/plugin-folder.ts","./src/lib/reasoning.ts","./src/lib/retry.ts","./src/lib/sse.ts","./src/lib/system-prompt.ts","./src/lib/themes.ts","./src/lib/usage.ts","./src/lib/utils.ts","./src/plugins/api.ts","./src/plugins/bridge.d.mts","./src/plugins/index.ts","./src/plugins/preview.ts","./src/plugins/runtime.ts","./src/plugins/types.ts","./src/store/chats.ts","./src/store/mcp.ts","./src/store/models.ts","./src/store/settings.ts","./src/store/skills.ts","./src/store/ui.ts","./src/store/workspace.ts"],"version":"5.9.3"}