diff --git a/.gitignore b/.gitignore index b4d222c..ffb7a93 100644 --- a/.gitignore +++ b/.gitignore @@ -14,3 +14,5 @@ DerivedData/ **/xcuserdata/ *.xcuserstate *.profraw +*.xcodeproj +*.xcworkspace diff --git a/ios/PPGMobile/PPGMobile/App/ContentView.swift b/ios/PPGMobile/PPGMobile/App/ContentView.swift new file mode 100644 index 0000000..8dcab23 --- /dev/null +++ b/ios/PPGMobile/PPGMobile/App/ContentView.swift @@ -0,0 +1,17 @@ +import SwiftUI + +struct ContentView: View { + var body: some View { + VStack { + Image(systemName: "terminal") + .imageScale(.large) + .foregroundStyle(.tint) + Text("PPG Mobile") + } + .padding() + } +} + +#Preview { + ContentView() +} diff --git a/ios/PPGMobile/PPGMobile/App/PPGMobileApp.swift b/ios/PPGMobile/PPGMobile/App/PPGMobileApp.swift new file mode 100644 index 0000000..213c1b4 --- /dev/null +++ b/ios/PPGMobile/PPGMobile/App/PPGMobileApp.swift @@ -0,0 +1,10 @@ +import SwiftUI + +@main +struct PPGMobileApp: App { + var body: some Scene { + WindowGroup { + ContentView() + } + } +} diff --git a/ios/PPGMobile/PPGMobile/Assets.xcassets/AppIcon.appiconset/Contents.json b/ios/PPGMobile/PPGMobile/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..b121e3b --- /dev/null +++ b/ios/PPGMobile/PPGMobile/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,13 @@ +{ + "images": [ + { + "idiom": "universal", + "platform": "ios", + "size": "1024x1024" + } + ], + "info": { + "author": "xcode", + "version": 1 + } +} diff --git a/ios/PPGMobile/PPGMobile/Assets.xcassets/Contents.json b/ios/PPGMobile/PPGMobile/Assets.xcassets/Contents.json new file mode 100644 index 0000000..74d6a72 --- /dev/null +++ b/ios/PPGMobile/PPGMobile/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info": { + "author": "xcode", + "version": 1 + } +} diff --git a/ios/PPGMobile/project.yml b/ios/PPGMobile/project.yml new file mode 100644 index 0000000..d6c9ab0 --- /dev/null +++ b/ios/PPGMobile/project.yml @@ -0,0 +1,36 @@ +name: PPGMobile +options: + bundleIdPrefix: com.2witstudios + deploymentTarget: + iOS: "17.0" + xcodeVersion: "16.0" + generateEmptyDirectories: true + +settings: + base: + SWIFT_VERSION: "5.9" + +targets: + PPGMobile: + type: application + platform: iOS + sources: + - PPGMobile + settings: + base: + PRODUCT_BUNDLE_IDENTIFIER: com.2witstudios.ppg-mobile + INFOPLIST_GENERATION_MODE: GeneratedFile + MARKETING_VERSION: "1.0.0" + CURRENT_PROJECT_VERSION: "1" + GENERATE_INFOPLIST_FILE: true + INFOPLIST_KEY_UIApplicationSceneManifest_Generation: true + INFOPLIST_KEY_UILaunchScreen_Generation: true + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad: "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight" + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone: "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight" + SWIFT_EMIT_LOC_STRINGS: true + +schemes: + PPGMobile: + build: + targets: + PPGMobile: all diff --git a/src/commands/spawn.test.ts b/src/commands/spawn.test.ts index ee642c7..12ecbc8 100644 --- a/src/commands/spawn.test.ts +++ b/src/commands/spawn.test.ts @@ -7,6 +7,7 @@ import { spawnAgent } from '../core/agent.js'; import { getRepoRoot } from '../core/worktree.js'; import { agentId, sessionId } from '../lib/id.js'; import * as tmux from '../core/tmux.js'; +import type { Manifest } from '../types/manifest.js'; vi.mock('node:fs/promises', async () => { const actual = await vi.importActual('node:fs/promises'); @@ -79,7 +80,7 @@ const mockedEnsureSession = vi.mocked(tmux.ensureSession); const mockedCreateWindow = vi.mocked(tmux.createWindow); const mockedSplitPane = vi.mocked(tmux.splitPane); -function createManifest(tmuxWindow = '') { +function createManifest(tmuxWindow = ''): Manifest { return { version: 1 as const, projectRoot: '/tmp/repo', @@ -103,7 +104,7 @@ function createManifest(tmuxWindow = '') { } describe('spawnCommand', () => { - let manifestState = createManifest(); + let manifestState: Manifest = createManifest(); let nextAgent = 1; let nextSession = 1;