Commit graph

4 commits

Author SHA1 Message Date
Ajax Davis
5ac3beab37 fix(omega-mac): fix enter-to-send, duplicate messages, search parsing + new features
- Replace TextEditor+onKeyPress with NSTextView that properly intercepts
  Return (send) vs Shift+Return (newline)
- Only show streaming content and live tool calls while isStreaming is true,
  preventing duplicate rendering after messages are persisted
- Fix registry search JSON parsing: API returns env as [String] not objects
- Add importUrl from search API response instead of constructing it
- Add message count badge to sidebar conversation rows
- Add "Copy JSON" toolbar button (Cmd+Shift+C) to export full conversation
  with all messages and tool call results as JSON
2026-02-09 22:48:13 +10:00
Ajax Davis
894f9842d1 fix(omega-mac): support macOS 14 by replacing macOS 15-only APIs
- Add `indirect` to recursive JSONSchemaAdditional enum
- Replace `.accent` ShapeStyle (macOS 15+) with `Color.accentColor`
- Add .gitignore for .build directory
2026-02-09 22:32:37 +10:00
Ajax Davis
dda28d642c ci: add GitHub Actions workflow to build Omega Mac app
Adds a manually-triggered workflow that builds the SwiftUI app on a
macOS 15 runner with Xcode 16, packages it as a .app bundle, and
uploads it as a downloadable artifact. Also lowers the deployment
target to macOS 14 so it runs on Sonoma.
2026-02-09 22:27:21 +10:00
Thomas Davis
1cd44b4e97 feat: add Omega Mac native macOS SwiftUI chat app
Native macOS counterpart to the web Omega agent, connecting directly
to the OpenAI API and TPMJS tool registry (1M+ AI-ready tools).

- SwiftUI app targeting macOS 15+ with dark theme
- Full agentic loop: auto-discover tools via BM25, stream OpenAI
  responses, execute tools via remote sandbox, loop up to 10x
- SwiftData persistence for conversations, messages, tool runs
- Keychain storage for API keys and environment variables
- SSE streaming via URLSession.bytes with custom parser
- Actor-based services (OpenAIService, TPMJSRegistryService)
- NavigationSplitView layout with sidebar + chat detail
- MarkdownUI for rendering assistant responses
- Settings: API key, model picker, env vars, custom system prompt
- Keyboard shortcuts: Cmd+N new chat, Cmd+, settings, Enter send

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 21:29:39 +10:00