@quantiya/codevibe-gemini-plugin 1.0.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 (66) hide show
  1. package/.env.example +28 -0
  2. package/README.md +117 -0
  3. package/bin/codevibe-gemini +238 -0
  4. package/dist/appsync-client.d.ts +66 -0
  5. package/dist/appsync-client.d.ts.map +1 -0
  6. package/dist/appsync-client.js +819 -0
  7. package/dist/appsync-client.js.map +1 -0
  8. package/dist/auth-cli.d.ts +18 -0
  9. package/dist/auth-cli.d.ts.map +1 -0
  10. package/dist/auth-cli.js +472 -0
  11. package/dist/auth-cli.js.map +1 -0
  12. package/dist/command-executor.d.ts +20 -0
  13. package/dist/command-executor.d.ts.map +1 -0
  14. package/dist/command-executor.js +127 -0
  15. package/dist/command-executor.js.map +1 -0
  16. package/dist/config.d.ts +25 -0
  17. package/dist/config.d.ts.map +1 -0
  18. package/dist/config.js +106 -0
  19. package/dist/config.js.map +1 -0
  20. package/dist/crypto-service.d.ts +115 -0
  21. package/dist/crypto-service.d.ts.map +1 -0
  22. package/dist/crypto-service.js +278 -0
  23. package/dist/crypto-service.js.map +1 -0
  24. package/dist/http-api.d.ts +63 -0
  25. package/dist/http-api.d.ts.map +1 -0
  26. package/dist/http-api.js +582 -0
  27. package/dist/http-api.js.map +1 -0
  28. package/dist/key-manager.d.ts +87 -0
  29. package/dist/key-manager.d.ts.map +1 -0
  30. package/dist/key-manager.js +287 -0
  31. package/dist/key-manager.js.map +1 -0
  32. package/dist/logger.d.ts +2 -0
  33. package/dist/logger.d.ts.map +1 -0
  34. package/dist/logger.js +18 -0
  35. package/dist/logger.js.map +1 -0
  36. package/dist/prompt-responder.d.ts +22 -0
  37. package/dist/prompt-responder.d.ts.map +1 -0
  38. package/dist/prompt-responder.js +132 -0
  39. package/dist/prompt-responder.js.map +1 -0
  40. package/dist/server.d.ts +2 -0
  41. package/dist/server.d.ts.map +1 -0
  42. package/dist/server.js +1422 -0
  43. package/dist/server.js.map +1 -0
  44. package/dist/token-storage.d.ts +39 -0
  45. package/dist/token-storage.d.ts.map +1 -0
  46. package/dist/token-storage.js +169 -0
  47. package/dist/token-storage.js.map +1 -0
  48. package/dist/transcript-watcher.d.ts +111 -0
  49. package/dist/transcript-watcher.d.ts.map +1 -0
  50. package/dist/transcript-watcher.js +324 -0
  51. package/dist/transcript-watcher.js.map +1 -0
  52. package/dist/types.d.ts +119 -0
  53. package/dist/types.d.ts.map +1 -0
  54. package/dist/types.js +16 -0
  55. package/dist/types.js.map +1 -0
  56. package/gemini-extension.json +84 -0
  57. package/hooks/after-agent.sh +122 -0
  58. package/hooks/after-tool.sh +71 -0
  59. package/hooks/before-agent.sh +46 -0
  60. package/hooks/before-tool.sh +17 -0
  61. package/hooks/common.sh +220 -0
  62. package/hooks/hooks.json +81 -0
  63. package/hooks/notification.sh +32 -0
  64. package/hooks/session-end.sh +70 -0
  65. package/hooks/session-start.sh +72 -0
  66. package/package.json +73 -0
@@ -0,0 +1,72 @@
1
+ #!/bin/bash
2
+
3
+ # Gemini CLI SessionStart hook
4
+ # Called when a Gemini session starts
5
+ #
6
+ # Input (JSON via stdin):
7
+ # {
8
+ # "session_id": "uuid",
9
+ # "cwd": "/current/working/directory",
10
+ # "hook_event_name": "SessionStart",
11
+ # "source": "startup" | "resume" | "clear",
12
+ # ...
13
+ # }
14
+
15
+ # Get script directory and source common utilities
16
+ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
17
+ source "$SCRIPT_DIR/common.sh"
18
+
19
+ log "INFO" "SessionStart hook triggered"
20
+
21
+ # Read JSON input from stdin
22
+ INPUT=$(read_json_input)
23
+
24
+ if [ -z "$INPUT" ]; then
25
+ log "ERROR" "No input received"
26
+ exit 0 # Exit gracefully so Gemini continues
27
+ fi
28
+
29
+ log "DEBUG" "Received input: $INPUT"
30
+
31
+ # Extract fields
32
+ SESSION_ID=$(echo "$INPUT" | jq -r '.session_id // empty')
33
+ CWD=$(echo "$INPUT" | jq -r '.cwd // empty')
34
+ SOURCE=$(echo "$INPUT" | jq -r '.source // "startup"')
35
+
36
+ if [ -z "$SESSION_ID" ]; then
37
+ log "ERROR" "No session_id in input"
38
+ exit 0
39
+ fi
40
+
41
+ log "INFO" "Session ID: $SESSION_ID, source: $SOURCE"
42
+
43
+ # Check if MCP server is running
44
+ if ! check_mcp_server "$SESSION_ID"; then
45
+ log "WARN" "MCP server not running, session events will not be synced"
46
+ exit 0
47
+ fi
48
+
49
+ # Build event payload with geminiSessionId in metadata
50
+ EVENT_PAYLOAD=$(jq -n \
51
+ --arg session_id "$SESSION_ID" \
52
+ --arg cwd "$CWD" \
53
+ --arg source "$SOURCE" \
54
+ '{
55
+ session_id: $session_id,
56
+ hook_event_name: "SessionStart",
57
+ type: "NOTIFICATION",
58
+ source: "DESKTOP",
59
+ content: "Session started via hook",
60
+ metadata: {
61
+ hook_event_name: "SessionStart",
62
+ cwd: $cwd,
63
+ source: $source,
64
+ geminiSessionId: $session_id
65
+ }
66
+ }')
67
+
68
+ # Send to MCP server
69
+ send_to_mcp "event" "$EVENT_PAYLOAD" "$SESSION_ID"
70
+
71
+ log "INFO" "SessionStart hook completed"
72
+ exit 0
package/package.json ADDED
@@ -0,0 +1,73 @@
1
+ {
2
+ "name": "@quantiya/codevibe-gemini-plugin",
3
+ "version": "1.0.0",
4
+ "description": "Mobile companion for Gemini CLI - monitor and control your Gemini CLI sessions from your iPhone",
5
+ "main": "dist/server.js",
6
+ "bin": {
7
+ "codevibe-gemini": "./bin/codevibe-gemini"
8
+ },
9
+ "files": [
10
+ "dist",
11
+ "bin",
12
+ "hooks",
13
+ "gemini-extension.json",
14
+ "README.md",
15
+ ".env.example"
16
+ ],
17
+ "scripts": {
18
+ "build": "tsc",
19
+ "prepack": "node scripts/prepare-publish.js && npm run build",
20
+ "postpack": "node scripts/restore-dev.js",
21
+ "dev": "ts-node src/server.ts",
22
+ "start": "node dist/server.js",
23
+ "watch": "tsc --watch",
24
+ "test": "echo \"Error: no test specified\" && exit 1"
25
+ },
26
+ "repository": {
27
+ "type": "git",
28
+ "url": "git+https://github.com/hendryyeh/quantiya-codevibe-gemini-plugin.git"
29
+ },
30
+ "keywords": [
31
+ "gemini",
32
+ "gemini-cli",
33
+ "google",
34
+ "plugin",
35
+ "extension",
36
+ "mobile",
37
+ "ios",
38
+ "codevibe",
39
+ "companion",
40
+ "remote-control",
41
+ "ai",
42
+ "developer-tools"
43
+ ],
44
+ "author": "Quantiya <support@quantiya.ai>",
45
+ "license": "MIT",
46
+ "bugs": {
47
+ "url": "https://github.com/hendryyeh/quantiya-codevibe-gemini-plugin/issues"
48
+ },
49
+ "homepage": "https://github.com/hendryyeh/quantiya-codevibe-gemini-plugin#readme",
50
+ "engines": {
51
+ "node": ">=18.0.0"
52
+ },
53
+ "os": [
54
+ "darwin"
55
+ ],
56
+ "dependencies": {
57
+ "@quantiya/codevibe-core": "^1.0.0",
58
+ "chokidar": "^5.0.0",
59
+ "dotenv": "^16.6.1",
60
+ "express": "^5.1.0",
61
+ "graphql": "^16.12.0",
62
+ "uuid": "^13.0.0",
63
+ "ws": "^8.18.3"
64
+ },
65
+ "devDependencies": {
66
+ "@types/express": "^5.0.5",
67
+ "@types/node": "^24.10.1",
68
+ "@types/uuid": "^10.0.0",
69
+ "@types/ws": "^8.18.1",
70
+ "ts-node": "^10.9.2",
71
+ "typescript": "^5.9.3"
72
+ }
73
+ }