crewly 1.20.35 → 1.20.47

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 (139) hide show
  1. package/config/skills/_common/desktop-guards.sh +485 -0
  2. package/config/skills/_common/desktop-guards.test.sh +242 -0
  3. package/config/skills/_common/desktop-perceive.swift +530 -0
  4. package/config/skills/_common/desktop-presence.swift +343 -0
  5. package/config/skills/_common/lib.sh +6 -0
  6. package/config/skills/agent/_common/desktop-guards.sh +4 -0
  7. package/config/skills/agent/computer-use/SKILL.md +88 -0
  8. package/config/skills/agent/computer-use/execute.sh +249 -3
  9. package/config/skills/agent/core/calendar-create/SKILL.md +10 -0
  10. package/config/skills/agent/core/calendar-create/execute.sh +6 -0
  11. package/config/skills/agent/core/calendar-list/SKILL.md +10 -0
  12. package/config/skills/agent/core/calendar-list/execute.sh +6 -0
  13. package/config/skills/agent/core/docs-read/SKILL.md +10 -0
  14. package/config/skills/agent/core/docs-read/execute.sh +6 -1
  15. package/config/skills/agent/core/docs-write/SKILL.md +10 -0
  16. package/config/skills/agent/core/docs-write/execute.sh +6 -1
  17. package/config/skills/agent/core/drive-read/SKILL.md +10 -0
  18. package/config/skills/agent/core/drive-read/execute.sh +6 -1
  19. package/config/skills/agent/core/drive-search/SKILL.md +10 -0
  20. package/config/skills/agent/core/drive-search/execute.sh +6 -1
  21. package/config/skills/agent/core/drive-upload/SKILL.md +10 -0
  22. package/config/skills/agent/core/drive-upload/execute.sh +6 -1
  23. package/config/skills/agent/core/gmail-read/SKILL.md +10 -0
  24. package/config/skills/agent/core/gmail-read/execute.sh +6 -0
  25. package/config/skills/agent/core/gmail-search/SKILL.md +10 -0
  26. package/config/skills/agent/core/gmail-search/execute.sh +6 -0
  27. package/config/skills/agent/core/gmail-send/SKILL.md +10 -0
  28. package/config/skills/agent/core/gmail-send/execute.sh +6 -0
  29. package/config/skills/agent/core/sheets-read/SKILL.md +10 -0
  30. package/config/skills/agent/core/sheets-read/execute.sh +6 -1
  31. package/config/skills/agent/core/sheets-write/SKILL.md +10 -0
  32. package/config/skills/agent/core/sheets-write/execute.sh +6 -1
  33. package/config/skills/agent/core/slides-create/SKILL.md +10 -0
  34. package/config/skills/agent/core/slides-create/execute.sh +6 -1
  35. package/config/skills/agent/core/slides-read/SKILL.md +10 -0
  36. package/config/skills/agent/core/slides-read/execute.sh +6 -1
  37. package/config/skills/agent/desktop-app-control/SKILL.md +19 -0
  38. package/config/skills/agent/remote-browser/SKILL.md +19 -0
  39. package/config/slack-app-manifest.json +16 -9
  40. package/dist/backend/backend/src/constants.d.ts +18 -4
  41. package/dist/backend/backend/src/constants.d.ts.map +1 -1
  42. package/dist/backend/backend/src/constants.js +16 -4
  43. package/dist/backend/backend/src/constants.js.map +1 -1
  44. package/dist/backend/backend/src/controllers/desktop/desktop.controller.d.ts +105 -0
  45. package/dist/backend/backend/src/controllers/desktop/desktop.controller.d.ts.map +1 -0
  46. package/dist/backend/backend/src/controllers/desktop/desktop.controller.js +278 -0
  47. package/dist/backend/backend/src/controllers/desktop/desktop.controller.js.map +1 -0
  48. package/dist/backend/backend/src/controllers/desktop/desktop.routes.d.ts +21 -0
  49. package/dist/backend/backend/src/controllers/desktop/desktop.routes.d.ts.map +1 -0
  50. package/dist/backend/backend/src/controllers/desktop/desktop.routes.js +31 -0
  51. package/dist/backend/backend/src/controllers/desktop/desktop.routes.js.map +1 -0
  52. package/dist/backend/backend/src/controllers/google/google.controller.d.ts +8 -0
  53. package/dist/backend/backend/src/controllers/google/google.controller.d.ts.map +1 -1
  54. package/dist/backend/backend/src/controllers/google/google.controller.js +137 -37
  55. package/dist/backend/backend/src/controllers/google/google.controller.js.map +1 -1
  56. package/dist/backend/backend/src/controllers/google/google.routes.d.ts +2 -1
  57. package/dist/backend/backend/src/controllers/google/google.routes.d.ts.map +1 -1
  58. package/dist/backend/backend/src/controllers/google/google.routes.js +4 -2
  59. package/dist/backend/backend/src/controllers/google/google.routes.js.map +1 -1
  60. package/dist/backend/backend/src/controllers/slack/slack-error.utils.d.ts +46 -0
  61. package/dist/backend/backend/src/controllers/slack/slack-error.utils.d.ts.map +1 -0
  62. package/dist/backend/backend/src/controllers/slack/slack-error.utils.js +54 -0
  63. package/dist/backend/backend/src/controllers/slack/slack-error.utils.js.map +1 -0
  64. package/dist/backend/backend/src/controllers/slack/slack.controller.d.ts.map +1 -1
  65. package/dist/backend/backend/src/controllers/slack/slack.controller.js +5 -12
  66. package/dist/backend/backend/src/controllers/slack/slack.controller.js.map +1 -1
  67. package/dist/backend/backend/src/routes/api.routes.d.ts.map +1 -1
  68. package/dist/backend/backend/src/routes/api.routes.js +3 -0
  69. package/dist/backend/backend/src/routes/api.routes.js.map +1 -1
  70. package/dist/backend/backend/src/services/cloud/mobile-api-relay.service.d.ts.map +1 -1
  71. package/dist/backend/backend/src/services/cloud/mobile-api-relay.service.js +9 -0
  72. package/dist/backend/backend/src/services/cloud/mobile-api-relay.service.js.map +1 -1
  73. package/dist/backend/backend/src/services/google/google-api.client.d.ts +23 -2
  74. package/dist/backend/backend/src/services/google/google-api.client.d.ts.map +1 -1
  75. package/dist/backend/backend/src/services/google/google-api.client.js +5 -2
  76. package/dist/backend/backend/src/services/google/google-api.client.js.map +1 -1
  77. package/dist/backend/backend/src/services/google/google-workspace-token.service.d.ts +61 -11
  78. package/dist/backend/backend/src/services/google/google-workspace-token.service.d.ts.map +1 -1
  79. package/dist/backend/backend/src/services/google/google-workspace-token.service.js +108 -31
  80. package/dist/backend/backend/src/services/google/google-workspace-token.service.js.map +1 -1
  81. package/dist/backend/backend/src/services/slack/slack-team-channel.service.d.ts +24 -0
  82. package/dist/backend/backend/src/services/slack/slack-team-channel.service.d.ts.map +1 -1
  83. package/dist/backend/backend/src/services/slack/slack-team-channel.service.js +87 -5
  84. package/dist/backend/backend/src/services/slack/slack-team-channel.service.js.map +1 -1
  85. package/dist/backend/backend/src/services/slack/slack.service.d.ts +17 -0
  86. package/dist/backend/backend/src/services/slack/slack.service.d.ts.map +1 -1
  87. package/dist/backend/backend/src/services/slack/slack.service.js +32 -0
  88. package/dist/backend/backend/src/services/slack/slack.service.js.map +1 -1
  89. package/dist/backend/backend/src/types/slack.types.d.ts +10 -0
  90. package/dist/backend/backend/src/types/slack.types.d.ts.map +1 -1
  91. package/dist/backend/backend/src/types/slack.types.js.map +1 -1
  92. package/dist/backend/backend/src/utils/incomplete-turn.utils.d.ts +1 -1
  93. package/dist/backend/backend/src/utils/incomplete-turn.utils.d.ts.map +1 -1
  94. package/dist/backend/backend/src/utils/incomplete-turn.utils.js +4 -0
  95. package/dist/backend/backend/src/utils/incomplete-turn.utils.js.map +1 -1
  96. package/dist/backend/build-info.json +2 -2
  97. package/dist/cli/backend/src/constants.d.ts +18 -4
  98. package/dist/cli/backend/src/constants.d.ts.map +1 -1
  99. package/dist/cli/backend/src/constants.js +16 -4
  100. package/dist/cli/backend/src/constants.js.map +1 -1
  101. package/dist/cli/backend/src/services/slack/slack-team-channel.service.d.ts +24 -0
  102. package/dist/cli/backend/src/services/slack/slack-team-channel.service.d.ts.map +1 -1
  103. package/dist/cli/backend/src/services/slack/slack-team-channel.service.js +87 -5
  104. package/dist/cli/backend/src/services/slack/slack-team-channel.service.js.map +1 -1
  105. package/dist/cli/backend/src/services/slack/slack.service.d.ts +17 -0
  106. package/dist/cli/backend/src/services/slack/slack.service.d.ts.map +1 -1
  107. package/dist/cli/backend/src/services/slack/slack.service.js +32 -0
  108. package/dist/cli/backend/src/services/slack/slack.service.js.map +1 -1
  109. package/dist/cli/backend/src/types/slack.types.d.ts +10 -0
  110. package/dist/cli/backend/src/types/slack.types.d.ts.map +1 -1
  111. package/dist/cli/backend/src/types/slack.types.js.map +1 -1
  112. package/dist/cli/backend/src/utils/incomplete-turn.utils.d.ts +1 -1
  113. package/dist/cli/backend/src/utils/incomplete-turn.utils.d.ts.map +1 -1
  114. package/dist/cli/backend/src/utils/incomplete-turn.utils.js +4 -0
  115. package/dist/cli/backend/src/utils/incomplete-turn.utils.js.map +1 -1
  116. package/frontend/dist/assets/{index-e079a375.js → index-e7785269.js} +267 -267
  117. package/frontend/dist/index.html +1 -1
  118. package/package.json +1 -1
  119. package/packages/crewly-agent/src/eval/desktop/desktop-tasks.test.ts +96 -0
  120. package/packages/crewly-agent/src/eval/desktop/desktop-tasks.ts +226 -0
  121. package/packages/crewly-agent/src/runtime/agent-runner.service.test.ts +10 -1
  122. package/packages/crewly-agent/src/runtime/agent-runner.service.ts +199 -4
  123. package/packages/crewly-agent/src/runtime/computer.tool.test.ts +219 -0
  124. package/packages/crewly-agent/src/runtime/computer.tool.ts +405 -0
  125. package/packages/crewly-agent/src/runtime/desktop-checkpoint.test.ts +136 -0
  126. package/packages/crewly-agent/src/runtime/desktop-checkpoint.ts +231 -0
  127. package/packages/crewly-agent/src/runtime/desktop-recovery.test.ts +100 -0
  128. package/packages/crewly-agent/src/runtime/desktop-recovery.ts +195 -0
  129. package/packages/crewly-agent/src/runtime/desktop-task-runtime.test.ts +251 -0
  130. package/packages/crewly-agent/src/runtime/desktop-task-runtime.ts +423 -0
  131. package/packages/crewly-agent/src/runtime/desktop-task.tool.test.ts +218 -0
  132. package/packages/crewly-agent/src/runtime/desktop-task.tool.ts +343 -0
  133. package/packages/crewly-agent/src/runtime/text-tool-calls.test.ts +144 -0
  134. package/packages/crewly-agent/src/runtime/text-tool-calls.ts +316 -0
  135. package/packages/crewly-agent/src/runtime/text-tool-salvage.test.ts +190 -0
  136. package/packages/crewly-agent/src/runtime/tool-registry.test.ts +17 -0
  137. package/packages/crewly-agent/src/runtime/tool-registry.ts +54 -0
  138. package/packages/crewly-agent/src/runtime/types.ts +16 -1
  139. package/config/skills/agent/vnc-browser/SKILL.md +0 -140
@@ -59,3 +59,13 @@ pass `threadId` and `messageId` to `gmail-send`.
59
59
  `{"success":false,"reason":"not_connected","hint":"<connect URL>"}` (exit 1)
60
60
  when the owner has not connected Google Workspace; `reason` `google_error`
61
61
  with a 404 message when the id is unknown.
62
+
63
+ ## Choosing a Google account
64
+
65
+ Several Google accounts can be connected at once. Without `--account` the call uses the default one (the first you connected, or whichever you marked default on the Connections page). Name one explicitly when it matters:
66
+
67
+ ```bash
68
+ bash execute.sh --account work@company.com ...
69
+ ```
70
+
71
+ The account must be connected *for this product* — Google consent is per product (Gmail / Calendar / Drive), so an account connected only for Calendar cannot read Drive.
@@ -20,6 +20,7 @@ Usage:
20
20
 
21
21
  Options:
22
22
  --id | -i Gmail message id (required; from gmail-search)
23
+ --account Which connected Google account to act as (default: your primary)
23
24
  --help | -h Show this help
24
25
  EOF_USAGE
25
26
  }
@@ -32,9 +33,11 @@ if [[ $# -gt 0 && ${1:0:1} == '{' ]]; then
32
33
  shift || true
33
34
  fi
34
35
 
36
+ ACCOUNT=""
35
37
  while [[ $# -gt 0 ]]; do
36
38
  case "$1" in
37
39
  --id|-i) [ $# -ge 2 ] || error_exit "--id requires a value"; ID="$2"; shift 2 ;;
40
+ --account) [ $# -ge 2 ] || error_exit "--account requires a value"; ACCOUNT="$2"; shift 2 ;;
38
41
  --help|-h) print_usage; exit 0 ;;
39
42
  *) error_exit "Unknown option: $1" ;;
40
43
  esac
@@ -43,7 +46,10 @@ done
43
46
  if [ -n "$INPUT_JSON" ]; then
44
47
  INPUT=$(read_json_input "$INPUT_JSON")
45
48
  [ -z "$ID" ] && ID=$(printf '%s' "$INPUT" | jq -r '.id // .messageId // empty')
49
+ [ -z "$ACCOUNT" ] && ACCOUNT=$(printf '%s' "$INPUT" | jq -r '.account // empty')
46
50
  fi
51
+ # Route the call at one connected Google account; unset means the default.
52
+ [ -n "$ACCOUNT" ] && export CREWLY_GOOGLE_ACCOUNT="$ACCOUNT"
47
53
 
48
54
  require_param "id (--id)" "$ID"
49
55
 
@@ -62,3 +62,13 @@ Use the `id` with `gmail-read` to get the body; `threadId` + `gmail-read`'s
62
62
  `{"success":false,"reason":"not_connected","hint":"<connect URL>"}` — the
63
63
  owner has not connected Google Workspace yet; hand them the hint URL (or
64
64
  point them to Settings → Integrations → Google Workspace). Exit code 1.
65
+
66
+ ## Choosing a Google account
67
+
68
+ Several Google accounts can be connected at once. Without `--account` the call uses the default one (the first you connected, or whichever you marked default on the Connections page). Name one explicitly when it matters:
69
+
70
+ ```bash
71
+ bash execute.sh --account work@company.com ...
72
+ ```
73
+
74
+ The account must be connected *for this product* — Google consent is per product (Gmail / Calendar / Drive), so an account connected only for Calendar cannot read Drive.
@@ -23,6 +23,7 @@ Options:
23
23
  --query | -q Gmail search query (required)
24
24
  --max | -n Result cap (default 20, max 100)
25
25
  --help | -h Show this help
26
+ --account Which connected Google account to act as (default: your primary)
26
27
  EOF_USAGE
27
28
  }
28
29
 
@@ -35,10 +36,12 @@ if [[ $# -gt 0 && ${1:0:1} == '{' ]]; then
35
36
  shift || true
36
37
  fi
37
38
 
39
+ ACCOUNT=""
38
40
  while [[ $# -gt 0 ]]; do
39
41
  case "$1" in
40
42
  --query|-q) [ $# -ge 2 ] || error_exit "--query requires a value"; QUERY="$2"; shift 2 ;;
41
43
  --max|-n) [ $# -ge 2 ] || error_exit "--max requires a value"; MAX="$2"; shift 2 ;;
44
+ --account) [ $# -ge 2 ] || error_exit "--account requires a value"; ACCOUNT="$2"; shift 2 ;;
42
45
  --help|-h) print_usage; exit 0 ;;
43
46
  *) error_exit "Unknown option: $1" ;;
44
47
  esac
@@ -48,7 +51,10 @@ if [ -n "$INPUT_JSON" ]; then
48
51
  INPUT=$(read_json_input "$INPUT_JSON")
49
52
  [ -z "$QUERY" ] && QUERY=$(printf '%s' "$INPUT" | jq -r '.query // .q // empty')
50
53
  [ -z "$MAX" ] && MAX=$(printf '%s' "$INPUT" | jq -r '.max // empty')
54
+ [ -z "$ACCOUNT" ] && ACCOUNT=$(printf '%s' "$INPUT" | jq -r '.account // empty')
51
55
  fi
56
+ # Route the call at one connected Google account; unset means the default.
57
+ [ -n "$ACCOUNT" ] && export CREWLY_GOOGLE_ACCOUNT="$ACCOUNT"
52
58
 
53
59
  require_param "query (--query)" "$QUERY"
54
60
 
@@ -67,3 +67,13 @@ Dry run: `{"success":true,"dryRun":true,"preview":"To: …\nSubject: …\n\n<bod
67
67
 
68
68
  Missing `--to` / `--subject` / body → `{"error":"Missing required parameter: …"}` on stderr, exit 1, nothing sent.
69
69
  `{"success":false,"reason":"not_connected","hint":"<connect URL>"}` (exit 1) when the owner has not connected Google Workspace.
70
+
71
+ ## Choosing a Google account
72
+
73
+ Several Google accounts can be connected at once. Without `--account` the call uses the default one (the first you connected, or whichever you marked default on the Connections page). Name one explicitly when it matters:
74
+
75
+ ```bash
76
+ bash execute.sh --account work@company.com ...
77
+ ```
78
+
79
+ The account must be connected *for this product* — Google consent is per product (Gmail / Calendar / Drive), so an account connected only for Calendar cannot read Drive.
@@ -31,6 +31,7 @@ Options:
31
31
  --thread-id Reply inside this Gmail thread
32
32
  --in-reply-to Message-ID being answered (sets In-Reply-To / References)
33
33
  --dry-run Preview only; nothing is sent (also: CREWLY_GMAIL_SEND_DRY_RUN=1)
34
+ --account Which connected Google account to act as (default: your primary)
34
35
  --help | -h Show this help
35
36
  EOF_USAGE
36
37
  }
@@ -44,6 +45,7 @@ if [[ $# -gt 0 && ${1:0:1} == '{' ]]; then
44
45
  shift || true
45
46
  fi
46
47
 
48
+ ACCOUNT=""
47
49
  while [[ $# -gt 0 ]]; do
48
50
  case "$1" in
49
51
  --to) [ $# -ge 2 ] || error_exit "--to requires a value"; TO="$2"; shift 2 ;;
@@ -54,6 +56,7 @@ while [[ $# -gt 0 ]]; do
54
56
  --thread-id) [ $# -ge 2 ] || error_exit "--thread-id requires a value"; THREAD_ID="$2"; shift 2 ;;
55
57
  --in-reply-to) [ $# -ge 2 ] || error_exit "--in-reply-to requires a value"; IN_REPLY_TO="$2"; shift 2 ;;
56
58
  --dry-run) DRY_RUN=1; shift ;;
59
+ --account) [ $# -ge 2 ] || error_exit "--account requires a value"; ACCOUNT="$2"; shift 2 ;;
57
60
  --help|-h) print_usage; exit 0 ;;
58
61
  *) error_exit "Unknown option: $1" ;;
59
62
  esac
@@ -68,7 +71,10 @@ if [ -n "$INPUT_JSON" ]; then
68
71
  [ -z "$THREAD_ID" ] && THREAD_ID=$(printf '%s' "$INPUT" | jq -r '.threadId // empty')
69
72
  [ -z "$IN_REPLY_TO" ] && IN_REPLY_TO=$(printf '%s' "$INPUT" | jq -r '.inReplyTo // empty')
70
73
  [ -z "$DRY_RUN" ] && DRY_RUN=$(printf '%s' "$INPUT" | jq -r 'if .dryRun == true then "1" else "" end')
74
+ [ -z "$ACCOUNT" ] && ACCOUNT=$(printf '%s' "$INPUT" | jq -r '.account // empty')
71
75
  fi
76
+ # Route the call at one connected Google account; unset means the default.
77
+ [ -n "$ACCOUNT" ] && export CREWLY_GOOGLE_ACCOUNT="$ACCOUNT"
72
78
 
73
79
  if [ -n "$TEXT_FILE" ]; then
74
80
  [ -f "$TEXT_FILE" ] || error_exit "text file not found: $TEXT_FILE"
@@ -51,3 +51,13 @@ come back as numbers, dates as the sheet's formatted string.
51
51
  when the owner has not connected Google Workspace (Settings → Integrations).
52
52
  A `403` with `reason: "google_error"` on a write means the file was not
53
53
  created by Crewly — the grant only edits files Crewly made (`drive.file`).
54
+
55
+ ## Choosing a Google account
56
+
57
+ Several Google accounts can be connected at once. Without `--account` the call uses the default one (the first you connected, or whichever you marked default on the Connections page). Name one explicitly when it matters:
58
+
59
+ ```bash
60
+ bash execute.sh --account work@company.com ...
61
+ ```
62
+
63
+ The account must be connected *for this product* — Google consent is per product (Gmail / Calendar / Drive), so an account connected only for Calendar cannot read Drive.
@@ -24,6 +24,7 @@ Options:
24
24
  --id Spreadsheet id (or its URL)
25
25
  --range A1 range, e.g. "Q3!A1:D50" (default A1:Z1000 on the first tab)
26
26
  --info Print the title and tab names instead of values
27
+ --account Which connected Google account to act as (default: your primary)
27
28
  --help | -h Show this help
28
29
  EOF_USAGE
29
30
  }
@@ -52,12 +53,13 @@ if [[ $# -gt 0 && ${1:0:1} == '{' ]]; then
52
53
  INPUT_JSON="$1"
53
54
  shift || true
54
55
  fi
55
- ID=""; RANGE=""; INFO=""
56
+ ID=""; RANGE=""; INFO=""; ACCOUNT=""
56
57
  while [[ $# -gt 0 ]]; do
57
58
  case "$1" in
58
59
  --id) [ $# -ge 2 ] || error_exit "--id requires a value"; ID="$2"; shift 2 ;;
59
60
  --range) [ $# -ge 2 ] || error_exit "--range requires a value"; RANGE="$2"; shift 2 ;;
60
61
  --info) INFO=1; shift ;;
62
+ --account) [ $# -ge 2 ] || error_exit "--account requires a value"; ACCOUNT="$2"; shift 2 ;;
61
63
  --help|-h) print_usage; exit 0 ;;
62
64
  *) error_exit "Unknown option: $1" ;;
63
65
  esac
@@ -67,7 +69,10 @@ if [ -n "$INPUT_JSON" ]; then
67
69
  [ -z "$ID" ] && ID=$(printf '%s' "$INPUT" | jq -r '.id // .spreadsheetId // empty')
68
70
  [ -z "$RANGE" ] && RANGE=$(printf '%s' "$INPUT" | jq -r '.range // empty')
69
71
  [ -z "$INFO" ] && INFO=$(printf '%s' "$INPUT" | jq -r 'if .info == true then "1" else "" end')
72
+ [ -z "$ACCOUNT" ] && ACCOUNT=$(printf '%s' "$INPUT" | jq -r '.account // empty')
70
73
  fi
74
+ # Route the call at one connected Google account; unset means the default.
75
+ [ -n "$ACCOUNT" ] && export CREWLY_GOOGLE_ACCOUNT="$ACCOUNT"
71
76
  ID=$(printf '%s' "$ID" | sed -E 's#.*/spreadsheets/d/([^/?]+).*#\1#')
72
77
  require_param "id (--id)" "$ID"
73
78
  if [ -n "$INFO" ]; then
@@ -54,3 +54,13 @@ the owner made outside Crewly needs the Sheets write scope (`403 google_error`).
54
54
  when the owner has not connected Google Workspace (Settings → Integrations).
55
55
  A `403` with `reason: "google_error"` on a write means the file was not
56
56
  created by Crewly — the grant only edits files Crewly made (`drive.file`).
57
+
58
+ ## Choosing a Google account
59
+
60
+ Several Google accounts can be connected at once. Without `--account` the call uses the default one (the first you connected, or whichever you marked default on the Connections page). Name one explicitly when it matters:
61
+
62
+ ```bash
63
+ bash execute.sh --account work@company.com ...
64
+ ```
65
+
66
+ The account must be connected *for this product* — Google consent is per product (Gmail / Calendar / Drive), so an account connected only for Calendar cannot read Drive.
@@ -30,6 +30,7 @@ Options:
30
30
  --csv-file Rows from a CSV file (simple: comma-separated, quotes stripped)
31
31
  --range A1 anchor: the table to append to, or the top-left cell to overwrite (default A1)
32
32
  --mode append (default) | update
33
+ --account Which connected Google account to act as (default: your primary)
33
34
  --help | -h Show this help
34
35
  EOF_USAGE
35
36
  }
@@ -58,7 +59,7 @@ if [[ $# -gt 0 && ${1:0:1} == '{' ]]; then
58
59
  INPUT_JSON="$1"
59
60
  shift || true
60
61
  fi
61
- TITLE=""; SHEET=""; ID=""; ROWS=""; CSV_FILE=""; RANGE=""; MODE=""
62
+ TITLE=""; SHEET=""; ID=""; ROWS=""; CSV_FILE=""; RANGE=""; MODE=""; ACCOUNT=""
62
63
  while [[ $# -gt 0 ]]; do
63
64
  case "$1" in
64
65
  --title) [ $# -ge 2 ] || error_exit "--title requires a value"; TITLE="$2"; shift 2 ;;
@@ -68,6 +69,7 @@ while [[ $# -gt 0 ]]; do
68
69
  --csv-file) [ $# -ge 2 ] || error_exit "--csv-file requires a value"; CSV_FILE="$2"; shift 2 ;;
69
70
  --range) [ $# -ge 2 ] || error_exit "--range requires a value"; RANGE="$2"; shift 2 ;;
70
71
  --mode) [ $# -ge 2 ] || error_exit "--mode requires a value"; MODE="$2"; shift 2 ;;
72
+ --account) [ $# -ge 2 ] || error_exit "--account requires a value"; ACCOUNT="$2"; shift 2 ;;
71
73
  --help|-h) print_usage; exit 0 ;;
72
74
  *) error_exit "Unknown option: $1" ;;
73
75
  esac
@@ -80,7 +82,10 @@ if [ -n "$INPUT_JSON" ]; then
80
82
  [ -z "$ROWS" ] && ROWS=$(printf '%s' "$INPUT" | jq -c '.rows // empty')
81
83
  [ -z "$RANGE" ] && RANGE=$(printf '%s' "$INPUT" | jq -r '.range // empty')
82
84
  [ -z "$MODE" ] && MODE=$(printf '%s' "$INPUT" | jq -r '.mode // empty')
85
+ [ -z "$ACCOUNT" ] && ACCOUNT=$(printf '%s' "$INPUT" | jq -r '.account // empty')
83
86
  fi
87
+ # Route the call at one connected Google account; unset means the default.
88
+ [ -n "$ACCOUNT" ] && export CREWLY_GOOGLE_ACCOUNT="$ACCOUNT"
84
89
  if [ -n "$CSV_FILE" ]; then
85
90
  [ -f "$CSV_FILE" ] || error_exit "csv file not found: $CSV_FILE"
86
91
  ROWS=$(python3 -c 'import csv,json,sys; print(json.dumps(list(csv.reader(open(sys.argv[1], newline="")))))' "$CSV_FILE")
@@ -59,3 +59,13 @@ For designed decks (brand templates, images, video) use the Canva skills.
59
59
  when the owner has not connected Google Workspace (Settings → Integrations).
60
60
  A `403` with `reason: "google_error"` on a write means the file was not
61
61
  created by Crewly — the grant only edits files Crewly made (`drive.file`).
62
+
63
+ ## Choosing a Google account
64
+
65
+ Several Google accounts can be connected at once. Without `--account` the call uses the default one (the first you connected, or whichever you marked default on the Connections page). Name one explicitly when it matters:
66
+
67
+ ```bash
68
+ bash execute.sh --account work@company.com ...
69
+ ```
70
+
71
+ The account must be connected *for this product* — Google consent is per product (Gmail / Calendar / Drive), so an account connected only for Calendar cannot read Drive.
@@ -24,6 +24,7 @@ Options:
24
24
  --title Deck title (required)
25
25
  --slides JSON array of {title, bullets[]}
26
26
  --outline-file Markdown outline: each "# Heading" starts a slide, "-"/"*" lines are its bullets
27
+ --account Which connected Google account to act as (default: your primary)
27
28
  --help | -h Show this help
28
29
  EOF_USAGE
29
30
  }
@@ -52,12 +53,13 @@ if [[ $# -gt 0 && ${1:0:1} == '{' ]]; then
52
53
  INPUT_JSON="$1"
53
54
  shift || true
54
55
  fi
55
- TITLE=""; SLIDES=""; OUTLINE_FILE=""
56
+ TITLE=""; SLIDES=""; OUTLINE_FILE=""; ACCOUNT=""
56
57
  while [[ $# -gt 0 ]]; do
57
58
  case "$1" in
58
59
  --title) [ $# -ge 2 ] || error_exit "--title requires a value"; TITLE="$2"; shift 2 ;;
59
60
  --slides) [ $# -ge 2 ] || error_exit "--slides requires a value"; SLIDES="$2"; shift 2 ;;
60
61
  --outline-file) [ $# -ge 2 ] || error_exit "--outline-file requires a value"; OUTLINE_FILE="$2"; shift 2 ;;
62
+ --account) [ $# -ge 2 ] || error_exit "--account requires a value"; ACCOUNT="$2"; shift 2 ;;
61
63
  --help|-h) print_usage; exit 0 ;;
62
64
  *) error_exit "Unknown option: $1" ;;
63
65
  esac
@@ -66,7 +68,10 @@ if [ -n "$INPUT_JSON" ]; then
66
68
  INPUT=$(read_json_input "$INPUT_JSON")
67
69
  [ -z "$TITLE" ] && TITLE=$(printf '%s' "$INPUT" | jq -r '.title // empty')
68
70
  [ -z "$SLIDES" ] && SLIDES=$(printf '%s' "$INPUT" | jq -c '.slides // empty')
71
+ [ -z "$ACCOUNT" ] && ACCOUNT=$(printf '%s' "$INPUT" | jq -r '.account // empty')
69
72
  fi
73
+ # Route the call at one connected Google account; unset means the default.
74
+ [ -n "$ACCOUNT" ] && export CREWLY_GOOGLE_ACCOUNT="$ACCOUNT"
70
75
  if [ -n "$OUTLINE_FILE" ]; then
71
76
  [ -f "$OUTLINE_FILE" ] || error_exit "outline file not found: $OUTLINE_FILE"
72
77
  SLIDES=$(python3 - "$OUTLINE_FILE" <<'PY'
@@ -47,3 +47,13 @@ bash execute.sh --id 1AbC…
47
47
  when the owner has not connected Google Workspace (Settings → Integrations).
48
48
  A `403` with `reason: "google_error"` on a write means the file was not
49
49
  created by Crewly — the grant only edits files Crewly made (`drive.file`).
50
+
51
+ ## Choosing a Google account
52
+
53
+ Several Google accounts can be connected at once. Without `--account` the call uses the default one (the first you connected, or whichever you marked default on the Connections page). Name one explicitly when it matters:
54
+
55
+ ```bash
56
+ bash execute.sh --account work@company.com ...
57
+ ```
58
+
59
+ The account must be connected *for this product* — Google consent is per product (Gmail / Calendar / Drive), so an account connected only for Calendar cannot read Drive.
@@ -20,6 +20,7 @@ Usage:
20
20
 
21
21
  Options:
22
22
  --id Presentation id (or its URL)
23
+ --account Which connected Google account to act as (default: your primary)
23
24
  --help | -h Show this help
24
25
  EOF_USAGE
25
26
  }
@@ -48,10 +49,11 @@ if [[ $# -gt 0 && ${1:0:1} == '{' ]]; then
48
49
  INPUT_JSON="$1"
49
50
  shift || true
50
51
  fi
51
- ID=""
52
+ ID=""; ACCOUNT=""
52
53
  while [[ $# -gt 0 ]]; do
53
54
  case "$1" in
54
55
  --id) [ $# -ge 2 ] || error_exit "--id requires a value"; ID="$2"; shift 2 ;;
56
+ --account) [ $# -ge 2 ] || error_exit "--account requires a value"; ACCOUNT="$2"; shift 2 ;;
55
57
  --help|-h) print_usage; exit 0 ;;
56
58
  *) error_exit "Unknown option: $1" ;;
57
59
  esac
@@ -59,7 +61,10 @@ done
59
61
  if [ -n "$INPUT_JSON" ]; then
60
62
  INPUT=$(read_json_input "$INPUT_JSON")
61
63
  [ -z "$ID" ] && ID=$(printf '%s' "$INPUT" | jq -r '.id // .presentationId // empty')
64
+ [ -z "$ACCOUNT" ] && ACCOUNT=$(printf '%s' "$INPUT" | jq -r '.account // empty')
62
65
  fi
66
+ # Route the call at one connected Google account; unset means the default.
67
+ [ -n "$ACCOUNT" ] && export CREWLY_GOOGLE_ACCOUNT="$ACCOUNT"
63
68
  ID=$(printf '%s' "$ID" | sed -E 's#.*/presentation/d/([^/?]+).*#\1#')
64
69
  require_param "id (--id)" "$ID"
65
70
  RESPONSE=$(call GET "/google/slides/$(uri "$ID")") || { printf '%s\n' "$RESPONSE"; exit 1; }
@@ -142,3 +142,22 @@ bash execute.sh snapshot --session vscode --interactive
142
142
  - `agent-browser` (npm install -g agent-browser && agent-browser install)
143
143
  - macOS / Linux / Windows
144
144
  - Target apps must be relaunched with `--remote-debugging-port` flag
145
+
146
+ ## Which control surface to use
147
+
148
+ Crewly has three ways to act on a screen. Pick the **lowest** one that can do
149
+ the job — each step down costs more tokens, breaks more easily, and disturbs
150
+ the user more.
151
+
152
+ | Need | Use | Why |
153
+ |---|---|---|
154
+ | Anything a Crewly skill or connector already does (mail, Drive, Slack, calendar, git, files) | that skill | No screen at all. Fastest and cannot misclick. |
155
+ | Content of a web page, or acting as the signed-in user in Chrome | `remote-browser` | Real Chrome, real session, per-agent bound tab, and the user sees a takeover banner. |
156
+ | An Electron app (VS Code, Slack, Notion, Figma) | `desktop-app-control` | Accessibility snapshot with element refs — no coordinates. Needs the app started with a debug port. |
157
+ | Native macOS apps, system dialogs, anything the above cannot reach | `computer-use` | Last resort: screen coordinates and pixels. Slowest and most fragile. |
158
+
159
+ `computer-use` refuses destructive key combos, typing into password fields and
160
+ driving credential apps, holds a machine-wide lock while it works, and logs
161
+ every action to `~/.crewly/desktop-actions.jsonl`. Run
162
+ `{"action":"check-permissions"}` first — without Screen Recording and
163
+ Accessibility every action fails, and the refusal tells you what to grant.
@@ -176,3 +176,22 @@ bash execute.sh -a unbind-tab
176
176
  they block the extension until dismissed by hand.
177
177
  - Always `unbind-tab` when a job is done, or abandoned tabs accumulate in the
178
178
  user's window.
179
+
180
+ ## Which control surface to use
181
+
182
+ Crewly has three ways to act on a screen. Pick the **lowest** one that can do
183
+ the job — each step down costs more tokens, breaks more easily, and disturbs
184
+ the user more.
185
+
186
+ | Need | Use | Why |
187
+ |---|---|---|
188
+ | Anything a Crewly skill or connector already does (mail, Drive, Slack, calendar, git, files) | that skill | No screen at all. Fastest and cannot misclick. |
189
+ | Content of a web page, or acting as the signed-in user in Chrome | `remote-browser` | Real Chrome, real session, per-agent bound tab, and the user sees a takeover banner. |
190
+ | An Electron app (VS Code, Slack, Notion, Figma) | `desktop-app-control` | Accessibility snapshot with element refs — no coordinates. Needs the app started with a debug port. |
191
+ | Native macOS apps, system dialogs, anything the above cannot reach | `computer-use` | Last resort: screen coordinates and pixels. Slowest and most fragile. |
192
+
193
+ `computer-use` refuses destructive key combos, typing into password fields and
194
+ driving credential apps, holds a machine-wide lock while it works, and logs
195
+ every action to `~/.crewly/desktop-actions.jsonl`. Run
196
+ `{"action":"check-permissions"}` first — without Screen Recording and
197
+ Accessibility every action fails, and the refusal tells you what to grant.
@@ -12,22 +12,29 @@
12
12
  "oauth_config": {
13
13
  "scopes": {
14
14
  "bot": [
15
+ "app_mentions:read",
16
+ "channels:history",
17
+ "channels:join",
18
+ "channels:manage",
19
+ "channels:read",
15
20
  "chat:write",
21
+ "chat:write.customize",
22
+ "chat:write.public",
16
23
  "files:read",
17
24
  "files:write",
18
- "app_mentions:read",
19
- "channels:history",
20
25
  "groups:history",
26
+ "groups:read",
27
+ "groups:write",
21
28
  "im:history",
29
+ "im:read",
30
+ "im:write",
22
31
  "mpim:history",
23
- "users:read",
32
+ "mpim:read",
33
+ "mpim:write",
34
+ "reactions:read",
24
35
  "reactions:write",
25
- "channels:read",
26
- "channels:manage",
27
- "channels:join",
28
- "chat:write.customize",
29
- "chat:write.public",
30
- "im:write"
36
+ "users:read",
37
+ "users:read.email"
31
38
  ]
32
39
  }
33
40
  },
@@ -1714,18 +1714,32 @@ export declare const GOOGLE_OAUTH_CONSTANTS: {
1714
1714
  * instance fetches a short-lived access token from Cloud and talks to
1715
1715
  * Google directly so mail content never passes through Cloud.
1716
1716
  */
1717
+ /**
1718
+ * Google products a Crewly install connects independently.
1719
+ *
1720
+ * Consent is per product so a user who wants Calendar is not asked for their
1721
+ * whole mailbox, and so an install that never touches mail or files stays out
1722
+ * of Google's *restricted* scope tier (which requires a CASA security
1723
+ * assessment to verify). `drive` covers Docs, Sheets and Slides — those APIs
1724
+ * read through `drive.readonly` and write through `drive.file`.
1725
+ */
1726
+ export declare const GOOGLE_PRODUCTS: readonly ["gmail", "calendar", "drive"];
1727
+ /** One of {@link GOOGLE_PRODUCTS}. */
1728
+ export type GoogleProduct = (typeof GOOGLE_PRODUCTS)[number];
1717
1729
  export declare const GOOGLE_WORKSPACE_CONSTANTS: {
1718
1730
  /** Cloud API prefix for the Workspace grant (appended to the cloud URL) */
1719
1731
  readonly CLOUD_PATH: "/api/cloud/google/workspace";
1720
1732
  /** Cloud sub-paths under CLOUD_PATH */
1721
1733
  readonly CLOUD_ENDPOINTS: {
1722
- /** GET → { connected, email, scopes, grantedAt } */
1734
+ /** GET → { connected, connections[], email, scopes, grantedAt } */
1723
1735
  readonly STATUS: "/status";
1724
- /** GET → { accessToken, expiresAt, scopes, email } */
1736
+ /** GET ?email=&product= → { accessToken, expiresAt, scopes, email, products } */
1725
1737
  readonly TOKEN: "/token";
1726
- /** GET ?token=&returnUrl= → 302 to Google consent */
1738
+ /** GET ?token=&returnUrl=&products=&loginHint= → 302 to Google consent */
1727
1739
  readonly START: "/start";
1728
- /** DELETE CLOUD_PATH itself → { removed } */
1740
+ /** POST { email } → { updated }; choose the account used when none is named */
1741
+ readonly DEFAULT: "/default";
1742
+ /** DELETE CLOUD_PATH itself, optional ?email= → { removed } */
1729
1743
  readonly DISCONNECT: "";
1730
1744
  };
1731
1745
  /** Re-fetch the access token this long before Cloud's `expiresAt` (ms) */
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../backend/src/constants.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../backend/src/constants.ts"],"names":[],"mappings":"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"}
@@ -1490,18 +1490,30 @@ export const GOOGLE_OAUTH_CONSTANTS = {
1490
1490
  * instance fetches a short-lived access token from Cloud and talks to
1491
1491
  * Google directly so mail content never passes through Cloud.
1492
1492
  */
1493
+ /**
1494
+ * Google products a Crewly install connects independently.
1495
+ *
1496
+ * Consent is per product so a user who wants Calendar is not asked for their
1497
+ * whole mailbox, and so an install that never touches mail or files stays out
1498
+ * of Google's *restricted* scope tier (which requires a CASA security
1499
+ * assessment to verify). `drive` covers Docs, Sheets and Slides — those APIs
1500
+ * read through `drive.readonly` and write through `drive.file`.
1501
+ */
1502
+ export const GOOGLE_PRODUCTS = ['gmail', 'calendar', 'drive'];
1493
1503
  export const GOOGLE_WORKSPACE_CONSTANTS = {
1494
1504
  /** Cloud API prefix for the Workspace grant (appended to the cloud URL) */
1495
1505
  CLOUD_PATH: '/api/cloud/google/workspace',
1496
1506
  /** Cloud sub-paths under CLOUD_PATH */
1497
1507
  CLOUD_ENDPOINTS: {
1498
- /** GET → { connected, email, scopes, grantedAt } */
1508
+ /** GET → { connected, connections[], email, scopes, grantedAt } */
1499
1509
  STATUS: '/status',
1500
- /** GET → { accessToken, expiresAt, scopes, email } */
1510
+ /** GET ?email=&product= → { accessToken, expiresAt, scopes, email, products } */
1501
1511
  TOKEN: '/token',
1502
- /** GET ?token=&returnUrl= → 302 to Google consent */
1512
+ /** GET ?token=&returnUrl=&products=&loginHint= → 302 to Google consent */
1503
1513
  START: '/start',
1504
- /** DELETE CLOUD_PATH itself → { removed } */
1514
+ /** POST { email } → { updated }; choose the account used when none is named */
1515
+ DEFAULT: '/default',
1516
+ /** DELETE CLOUD_PATH itself, optional ?email= → { removed } */
1505
1517
  DISCONNECT: '',
1506
1518
  },
1507
1519
  /** Re-fetch the access token this long before Cloud's `expiresAt` (ms) */