poke-gate 0.0.4 → 0.0.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.
@@ -48,7 +48,7 @@ jobs:
48
48
  - name: Upload DMG to GitHub Release
49
49
  uses: softprops/action-gh-release@v2
50
50
  with:
51
- files: "build/release/Poke macOS Gate.dmg"
51
+ files: "build/release/Poke.macOS.Gate.dmg"
52
52
  name: Poke Gate ${{ steps.version.outputs.tag }}
53
53
  draft: false
54
54
  prerelease: false
@@ -56,7 +56,7 @@ jobs:
56
56
  body: |
57
57
  ## Installation
58
58
 
59
- 1. Download **Poke macOS Gate.dmg** below
59
+ 1. Download **Poke.macOS.Gate.dmg** below
60
60
  2. Open the DMG and drag **Poke macOS Gate** to Applications
61
61
  3. Since the app is not notarized, macOS may block it on first launch. Run:
62
62
 
@@ -80,7 +80,7 @@ jobs:
80
80
 
81
81
  - name: Compute DMG SHA256
82
82
  id: sha
83
- run: echo "sha256=$(shasum -a 256 'build/release/Poke macOS Gate.dmg' | awk '{print $1}')" >> "$GITHUB_OUTPUT"
83
+ run: echo "sha256=$(shasum -a 256 'build/release/Poke.macOS.Gate.dmg' | awk '{print $1}')" >> "$GITHUB_OUTPUT"
84
84
 
85
85
  - name: Update Homebrew Cask tap
86
86
  env:
@@ -96,7 +96,7 @@ jobs:
96
96
  version "${VERSION_NUM}"
97
97
  sha256 "${SHA256}"
98
98
 
99
- url "https://github.com/f/poke-gate/releases/download/${VERSION}/Poke%20macOS%20Gate.dmg"
99
+ url "https://github.com/f/poke-gate/releases/download/${VERSION}/Poke.macOS.Gate.dmg"
100
100
  name "Poke Gate"
101
101
  desc "macOS menu bar app to expose your machine to your Poke AI assistant"
102
102
  homepage "https://github.com/f/poke-gate"
package/README.md CHANGED
@@ -30,7 +30,7 @@ brew install f/tap/poke-gate
30
30
 
31
31
  **Manual download**
32
32
 
33
- Download the latest **Poke macOS Gate.dmg** from [Releases](https://github.com/f/poke-gate/releases), open it, and drag to Applications. Since the app is not notarized, you may need to run:
33
+ Download the latest **Poke.macOS.Gate.dmg** from [Releases](https://github.com/f/poke-gate/releases), open it, and drag to Applications. Since the app is not notarized, you may need to run:
34
34
 
35
35
  ```bash
36
36
  xattr -cr /Applications/Poke\ macOS\ Gate.app
package/build.sh CHANGED
@@ -9,7 +9,8 @@ RELEASE_DIR="${BUILD_DIR}/release"
9
9
  ARM64_DIR="${BUILD_DIR}/arm64"
10
10
  X86_DIR="${BUILD_DIR}/x86_64"
11
11
  UNIVERSAL_APP="${RELEASE_DIR}/${APP_NAME}.app"
12
- DMG_PATH="${RELEASE_DIR}/${APP_NAME}.dmg"
12
+ DMG_NAME="Poke.macOS.Gate.dmg"
13
+ DMG_PATH="${RELEASE_DIR}/${DMG_NAME}"
13
14
 
14
15
  rm -rf "$BUILD_DIR"
15
16
  mkdir -p "$RELEASE_DIR"
@@ -1,6 +1,5 @@
1
1
  import Foundation
2
2
  import Combine
3
- import ScreenCaptureKit
4
3
 
5
4
  @MainActor
6
5
  class GateService: ObservableObject {
@@ -35,22 +34,11 @@ class GateService: ObservableObject {
35
34
  func autoStartIfNeeded() {
36
35
  guard !hasAutoStarted else { return }
37
36
  hasAutoStarted = true
38
- requestScreenCapturePermission()
39
37
  if hasAPIKey {
40
38
  start()
41
39
  }
42
40
  }
43
41
 
44
- private func requestScreenCapturePermission() {
45
- Task {
46
- do {
47
- _ = try await SCShareableContent.current
48
- } catch {
49
- appendLog("Screen capture permission not granted yet.")
50
- }
51
- }
52
- }
53
-
54
42
  func start() {
55
43
  guard hasAPIKey else {
56
44
  status = .error
@@ -264,7 +264,7 @@
264
264
  "$(inherited)",
265
265
  "@executable_path/../Frameworks",
266
266
  );
267
- MARKETING_VERSION = 1.0;
267
+ MARKETING_VERSION = 0.0.5;
268
268
  PRODUCT_BUNDLE_IDENTIFIER = "dev.fka.Poke-macOS-Gate";
269
269
  PRODUCT_NAME = "$(TARGET_NAME)";
270
270
  REGISTER_APP_GROUPS = YES;
@@ -296,7 +296,7 @@
296
296
  "$(inherited)",
297
297
  "@executable_path/../Frameworks",
298
298
  );
299
- MARKETING_VERSION = 1.0;
299
+ MARKETING_VERSION = 0.0.5;
300
300
  PRODUCT_BUNDLE_IDENTIFIER = "dev.fka.Poke-macOS-Gate";
301
301
  PRODUCT_NAME = "$(TARGET_NAME)";
302
302
  REGISTER_APP_GROUPS = YES;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "poke-gate",
3
- "version": "0.0.4",
3
+ "version": "0.0.6",
4
4
  "description": "Expose your machine to your Poke AI assistant via MCP tunnel",
5
5
  "type": "module",
6
6
  "bin": {
package/src/app.js CHANGED
@@ -1,5 +1,6 @@
1
1
  import { startMcpServer, enableLogging } from "./mcp-server.js";
2
2
  import { startTunnel } from "./tunnel.js";
3
+ import { Poke } from "poke";
3
4
  import { readFileSync } from "node:fs";
4
5
  import { join } from "node:path";
5
6
  import { homedir } from "node:os";
@@ -50,6 +51,7 @@ async function main() {
50
51
  case "connected":
51
52
  log(`Tunnel connected (${data.connectionId})`);
52
53
  log("Ready — your Poke agent can now access this machine.");
54
+ notifyPoke(data.connectionId);
53
55
  break;
54
56
  case "disconnected":
55
57
  log("Tunnel disconnected. Reconnecting...");
@@ -72,6 +74,20 @@ async function main() {
72
74
  }
73
75
  }
74
76
 
77
+ async function notifyPoke(connectionId) {
78
+ try {
79
+ const poke = new Poke({ apiKey: API_KEY });
80
+ await poke.sendMessage(
81
+ `Poke macOS Gate is connected. Tunnel ID: ${connectionId}. ` +
82
+ `You now have access to this machine's terminal, files, and screen. ` +
83
+ `Use the available tools (run_command, read_file, write_file, list_directory, system_info, read_image, take_screenshot) to help the user.`
84
+ );
85
+ log("Notified Poke agent about connection.");
86
+ } catch (err) {
87
+ log(`Failed to notify Poke: ${err.message}`);
88
+ }
89
+ }
90
+
75
91
  process.on("SIGINT", () => {
76
92
  log("Shutting down...");
77
93
  process.exit(0);