crewly 1.20.142 → 1.20.143

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 (218) hide show
  1. package/config/runtime_scripts/runtime-config.json +7 -0
  2. package/config/skills/orchestrator/update-team-member/SKILL.md +2 -2
  3. package/dist/backend/backend/src/constants.d.ts +151 -0
  4. package/dist/backend/backend/src/constants.d.ts.map +1 -1
  5. package/dist/backend/backend/src/constants.js +173 -0
  6. package/dist/backend/backend/src/constants.js.map +1 -1
  7. package/dist/backend/backend/src/controllers/orchestrator/orchestrator.controller.d.ts.map +1 -1
  8. package/dist/backend/backend/src/controllers/orchestrator/orchestrator.controller.js +4 -3
  9. package/dist/backend/backend/src/controllers/orchestrator/orchestrator.controller.js.map +1 -1
  10. package/dist/backend/backend/src/controllers/project/project.controller.d.ts.map +1 -1
  11. package/dist/backend/backend/src/controllers/project/project.controller.js +13 -0
  12. package/dist/backend/backend/src/controllers/project/project.controller.js.map +1 -1
  13. package/dist/backend/backend/src/controllers/request-types.d.ts +2 -2
  14. package/dist/backend/backend/src/controllers/request-types.d.ts.map +1 -1
  15. package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts +22 -1
  16. package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
  17. package/dist/backend/backend/src/services/agent/agent-registration.service.js +128 -14
  18. package/dist/backend/backend/src/services/agent/agent-registration.service.js.map +1 -1
  19. package/dist/backend/backend/src/services/agent/antigravity-runtime.service.d.ts +267 -0
  20. package/dist/backend/backend/src/services/agent/antigravity-runtime.service.d.ts.map +1 -0
  21. package/dist/backend/backend/src/services/agent/antigravity-runtime.service.js +521 -0
  22. package/dist/backend/backend/src/services/agent/antigravity-runtime.service.js.map +1 -0
  23. package/dist/backend/backend/src/services/agent/oauth-relogin-monitor.service.d.ts.map +1 -1
  24. package/dist/backend/backend/src/services/agent/oauth-relogin-monitor.service.js +10 -0
  25. package/dist/backend/backend/src/services/agent/oauth-relogin-monitor.service.js.map +1 -1
  26. package/dist/backend/backend/src/services/agent/runtime-agent.service.abstract.d.ts.map +1 -1
  27. package/dist/backend/backend/src/services/agent/runtime-agent.service.abstract.js +12 -1
  28. package/dist/backend/backend/src/services/agent/runtime-agent.service.abstract.js.map +1 -1
  29. package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.d.ts.map +1 -1
  30. package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.js +3 -1
  31. package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.js.map +1 -1
  32. package/dist/backend/backend/src/services/agent/runtime-service.factory.d.ts.map +1 -1
  33. package/dist/backend/backend/src/services/agent/runtime-service.factory.js +9 -0
  34. package/dist/backend/backend/src/services/agent/runtime-service.factory.js.map +1 -1
  35. package/dist/backend/backend/src/services/agent/runtime-session-recovery.d.ts +57 -1
  36. package/dist/backend/backend/src/services/agent/runtime-session-recovery.d.ts.map +1 -1
  37. package/dist/backend/backend/src/services/agent/runtime-session-recovery.js +176 -2
  38. package/dist/backend/backend/src/services/agent/runtime-session-recovery.js.map +1 -1
  39. package/dist/backend/backend/src/services/agent/runtime-startup-blocked.error.d.ts +15 -3
  40. package/dist/backend/backend/src/services/agent/runtime-startup-blocked.error.d.ts.map +1 -1
  41. package/dist/backend/backend/src/services/agent/runtime-startup-blocked.error.js +2 -1
  42. package/dist/backend/backend/src/services/agent/runtime-startup-blocked.error.js.map +1 -1
  43. package/dist/backend/backend/src/services/harness/harness-api-key.service.d.ts +26 -0
  44. package/dist/backend/backend/src/services/harness/harness-api-key.service.d.ts.map +1 -1
  45. package/dist/backend/backend/src/services/harness/harness-api-key.service.js +65 -5
  46. package/dist/backend/backend/src/services/harness/harness-api-key.service.js.map +1 -1
  47. package/dist/backend/backend/src/services/harness/harness-credentials.store.d.ts +37 -6
  48. package/dist/backend/backend/src/services/harness/harness-credentials.store.d.ts.map +1 -1
  49. package/dist/backend/backend/src/services/harness/harness-credentials.store.js +57 -9
  50. package/dist/backend/backend/src/services/harness/harness-credentials.store.js.map +1 -1
  51. package/dist/backend/backend/src/services/harness/harness-install.service.d.ts +60 -7
  52. package/dist/backend/backend/src/services/harness/harness-install.service.d.ts.map +1 -1
  53. package/dist/backend/backend/src/services/harness/harness-install.service.js +154 -37
  54. package/dist/backend/backend/src/services/harness/harness-install.service.js.map +1 -1
  55. package/dist/backend/backend/src/services/harness/harness-registry.d.ts +46 -5
  56. package/dist/backend/backend/src/services/harness/harness-registry.d.ts.map +1 -1
  57. package/dist/backend/backend/src/services/harness/harness-registry.js +53 -8
  58. package/dist/backend/backend/src/services/harness/harness-registry.js.map +1 -1
  59. package/dist/backend/backend/src/services/harness/harness-status.service.d.ts +15 -1
  60. package/dist/backend/backend/src/services/harness/harness-status.service.d.ts.map +1 -1
  61. package/dist/backend/backend/src/services/harness/harness-status.service.js +34 -6
  62. package/dist/backend/backend/src/services/harness/harness-status.service.js.map +1 -1
  63. package/dist/backend/backend/src/services/harness/harness.types.d.ts +10 -3
  64. package/dist/backend/backend/src/services/harness/harness.types.d.ts.map +1 -1
  65. package/dist/backend/backend/src/services/harness/harness.types.js +4 -3
  66. package/dist/backend/backend/src/services/harness/harness.types.js.map +1 -1
  67. package/dist/backend/backend/src/services/mcp-tool-definitions.d.ts +1 -1
  68. package/dist/backend/backend/src/services/mcp-tool-definitions.js +1 -1
  69. package/dist/backend/backend/src/services/mcp-tool-definitions.js.map +1 -1
  70. package/dist/backend/backend/src/services/orchestrator/orchestrator-restart.service.d.ts.map +1 -1
  71. package/dist/backend/backend/src/services/orchestrator/orchestrator-restart.service.js +3 -2
  72. package/dist/backend/backend/src/services/orchestrator/orchestrator-restart.service.js.map +1 -1
  73. package/dist/backend/backend/src/services/runtime-adapter.d.ts +10 -1
  74. package/dist/backend/backend/src/services/runtime-adapter.d.ts.map +1 -1
  75. package/dist/backend/backend/src/services/runtime-adapter.js +12 -1
  76. package/dist/backend/backend/src/services/runtime-adapter.js.map +1 -1
  77. package/dist/backend/backend/src/services/settings/settings.service.d.ts.map +1 -1
  78. package/dist/backend/backend/src/services/settings/settings.service.js +1 -0
  79. package/dist/backend/backend/src/services/settings/settings.service.js.map +1 -1
  80. package/dist/backend/backend/src/types/index.d.ts +1 -1
  81. package/dist/backend/backend/src/types/index.d.ts.map +1 -1
  82. package/dist/backend/backend/src/types/settings.types.d.ts +1 -1
  83. package/dist/backend/backend/src/types/settings.types.d.ts.map +1 -1
  84. package/dist/backend/backend/src/types/settings.types.js +7 -1
  85. package/dist/backend/backend/src/types/settings.types.js.map +1 -1
  86. package/dist/backend/backend/src/types/solution-bundle.types.d.ts +1 -1
  87. package/dist/backend/backend/src/types/solution-bundle.types.d.ts.map +1 -1
  88. package/dist/backend/backend/src/types/team-template.types.d.ts +2 -2
  89. package/dist/backend/backend/src/types/team-template.types.d.ts.map +1 -1
  90. package/dist/backend/backend/src/types/team-template.types.js +1 -1
  91. package/dist/backend/backend/src/types/team-template.types.js.map +1 -1
  92. package/dist/backend/backend/src/utils/antigravity-settings.utils.d.ts +115 -0
  93. package/dist/backend/backend/src/utils/antigravity-settings.utils.d.ts.map +1 -0
  94. package/dist/backend/backend/src/utils/antigravity-settings.utils.js +181 -0
  95. package/dist/backend/backend/src/utils/antigravity-settings.utils.js.map +1 -0
  96. package/dist/backend/backend/src/utils/runtime-model-flags.utils.d.ts +3 -2
  97. package/dist/backend/backend/src/utils/runtime-model-flags.utils.d.ts.map +1 -1
  98. package/dist/backend/backend/src/utils/runtime-model-flags.utils.js +13 -3
  99. package/dist/backend/backend/src/utils/runtime-model-flags.utils.js.map +1 -1
  100. package/dist/backend/backend/src/utils/terminal-string-ops.d.ts +1 -0
  101. package/dist/backend/backend/src/utils/terminal-string-ops.d.ts.map +1 -1
  102. package/dist/backend/backend/src/utils/terminal-string-ops.js +29 -1
  103. package/dist/backend/backend/src/utils/terminal-string-ops.js.map +1 -1
  104. package/dist/backend/build-info.json +2 -2
  105. package/dist/cli/backend/src/constants.d.ts +151 -0
  106. package/dist/cli/backend/src/constants.d.ts.map +1 -1
  107. package/dist/cli/backend/src/constants.js +173 -0
  108. package/dist/cli/backend/src/constants.js.map +1 -1
  109. package/dist/cli/backend/src/services/agent/agent-registration.service.d.ts +22 -1
  110. package/dist/cli/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
  111. package/dist/cli/backend/src/services/agent/agent-registration.service.js +128 -14
  112. package/dist/cli/backend/src/services/agent/agent-registration.service.js.map +1 -1
  113. package/dist/cli/backend/src/services/agent/antigravity-runtime.service.d.ts +267 -0
  114. package/dist/cli/backend/src/services/agent/antigravity-runtime.service.d.ts.map +1 -0
  115. package/dist/cli/backend/src/services/agent/antigravity-runtime.service.js +521 -0
  116. package/dist/cli/backend/src/services/agent/antigravity-runtime.service.js.map +1 -0
  117. package/dist/cli/backend/src/services/agent/oauth-relogin-monitor.service.d.ts.map +1 -1
  118. package/dist/cli/backend/src/services/agent/oauth-relogin-monitor.service.js +10 -0
  119. package/dist/cli/backend/src/services/agent/oauth-relogin-monitor.service.js.map +1 -1
  120. package/dist/cli/backend/src/services/agent/runtime-agent.service.abstract.d.ts.map +1 -1
  121. package/dist/cli/backend/src/services/agent/runtime-agent.service.abstract.js +12 -1
  122. package/dist/cli/backend/src/services/agent/runtime-agent.service.abstract.js.map +1 -1
  123. package/dist/cli/backend/src/services/agent/runtime-exit-monitor.service.d.ts.map +1 -1
  124. package/dist/cli/backend/src/services/agent/runtime-exit-monitor.service.js +3 -1
  125. package/dist/cli/backend/src/services/agent/runtime-exit-monitor.service.js.map +1 -1
  126. package/dist/cli/backend/src/services/agent/runtime-service.factory.d.ts.map +1 -1
  127. package/dist/cli/backend/src/services/agent/runtime-service.factory.js +9 -0
  128. package/dist/cli/backend/src/services/agent/runtime-service.factory.js.map +1 -1
  129. package/dist/cli/backend/src/services/agent/runtime-session-recovery.d.ts +57 -1
  130. package/dist/cli/backend/src/services/agent/runtime-session-recovery.d.ts.map +1 -1
  131. package/dist/cli/backend/src/services/agent/runtime-session-recovery.js +176 -2
  132. package/dist/cli/backend/src/services/agent/runtime-session-recovery.js.map +1 -1
  133. package/dist/cli/backend/src/services/agent/runtime-startup-blocked.error.d.ts +15 -3
  134. package/dist/cli/backend/src/services/agent/runtime-startup-blocked.error.d.ts.map +1 -1
  135. package/dist/cli/backend/src/services/agent/runtime-startup-blocked.error.js +2 -1
  136. package/dist/cli/backend/src/services/agent/runtime-startup-blocked.error.js.map +1 -1
  137. package/dist/cli/backend/src/services/harness/harness-api-key.service.d.ts +26 -0
  138. package/dist/cli/backend/src/services/harness/harness-api-key.service.d.ts.map +1 -1
  139. package/dist/cli/backend/src/services/harness/harness-api-key.service.js +65 -5
  140. package/dist/cli/backend/src/services/harness/harness-api-key.service.js.map +1 -1
  141. package/dist/cli/backend/src/services/harness/harness-credentials.store.d.ts +37 -6
  142. package/dist/cli/backend/src/services/harness/harness-credentials.store.d.ts.map +1 -1
  143. package/dist/cli/backend/src/services/harness/harness-credentials.store.js +57 -9
  144. package/dist/cli/backend/src/services/harness/harness-credentials.store.js.map +1 -1
  145. package/dist/cli/backend/src/services/harness/harness-install.service.d.ts +60 -7
  146. package/dist/cli/backend/src/services/harness/harness-install.service.d.ts.map +1 -1
  147. package/dist/cli/backend/src/services/harness/harness-install.service.js +154 -37
  148. package/dist/cli/backend/src/services/harness/harness-install.service.js.map +1 -1
  149. package/dist/cli/backend/src/services/harness/harness-registry.d.ts +46 -5
  150. package/dist/cli/backend/src/services/harness/harness-registry.d.ts.map +1 -1
  151. package/dist/cli/backend/src/services/harness/harness-registry.js +53 -8
  152. package/dist/cli/backend/src/services/harness/harness-registry.js.map +1 -1
  153. package/dist/cli/backend/src/services/harness/harness-status.service.d.ts +15 -1
  154. package/dist/cli/backend/src/services/harness/harness-status.service.d.ts.map +1 -1
  155. package/dist/cli/backend/src/services/harness/harness-status.service.js +34 -6
  156. package/dist/cli/backend/src/services/harness/harness-status.service.js.map +1 -1
  157. package/dist/cli/backend/src/services/harness/harness.types.d.ts +10 -3
  158. package/dist/cli/backend/src/services/harness/harness.types.d.ts.map +1 -1
  159. package/dist/cli/backend/src/services/harness/harness.types.js +4 -3
  160. package/dist/cli/backend/src/services/harness/harness.types.js.map +1 -1
  161. package/dist/cli/backend/src/services/mcp-tool-definitions.d.ts +1 -1
  162. package/dist/cli/backend/src/services/mcp-tool-definitions.js +1 -1
  163. package/dist/cli/backend/src/services/mcp-tool-definitions.js.map +1 -1
  164. package/dist/cli/backend/src/services/orchestrator/orchestrator-restart.service.d.ts.map +1 -1
  165. package/dist/cli/backend/src/services/orchestrator/orchestrator-restart.service.js +3 -2
  166. package/dist/cli/backend/src/services/orchestrator/orchestrator-restart.service.js.map +1 -1
  167. package/dist/cli/backend/src/services/settings/settings.service.d.ts.map +1 -1
  168. package/dist/cli/backend/src/services/settings/settings.service.js +1 -0
  169. package/dist/cli/backend/src/services/settings/settings.service.js.map +1 -1
  170. package/dist/cli/backend/src/types/index.d.ts +1 -1
  171. package/dist/cli/backend/src/types/index.d.ts.map +1 -1
  172. package/dist/cli/backend/src/types/settings.types.d.ts +1 -1
  173. package/dist/cli/backend/src/types/settings.types.d.ts.map +1 -1
  174. package/dist/cli/backend/src/types/settings.types.js +7 -1
  175. package/dist/cli/backend/src/types/settings.types.js.map +1 -1
  176. package/dist/cli/backend/src/types/solution-bundle.types.d.ts +1 -1
  177. package/dist/cli/backend/src/types/solution-bundle.types.d.ts.map +1 -1
  178. package/dist/cli/backend/src/types/team-template.types.d.ts +2 -2
  179. package/dist/cli/backend/src/types/team-template.types.d.ts.map +1 -1
  180. package/dist/cli/backend/src/types/team-template.types.js +1 -1
  181. package/dist/cli/backend/src/types/team-template.types.js.map +1 -1
  182. package/dist/cli/backend/src/utils/antigravity-settings.utils.d.ts +115 -0
  183. package/dist/cli/backend/src/utils/antigravity-settings.utils.d.ts.map +1 -0
  184. package/dist/cli/backend/src/utils/antigravity-settings.utils.js +181 -0
  185. package/dist/cli/backend/src/utils/antigravity-settings.utils.js.map +1 -0
  186. package/dist/cli/backend/src/utils/runtime-model-flags.utils.d.ts +3 -2
  187. package/dist/cli/backend/src/utils/runtime-model-flags.utils.d.ts.map +1 -1
  188. package/dist/cli/backend/src/utils/runtime-model-flags.utils.js +13 -3
  189. package/dist/cli/backend/src/utils/runtime-model-flags.utils.js.map +1 -1
  190. package/dist/cli/backend/src/utils/terminal-string-ops.d.ts +1 -0
  191. package/dist/cli/backend/src/utils/terminal-string-ops.d.ts.map +1 -1
  192. package/dist/cli/backend/src/utils/terminal-string-ops.js +29 -1
  193. package/dist/cli/backend/src/utils/terminal-string-ops.js.map +1 -1
  194. package/dist/cli/cli/src/commands/doctor.d.ts +2 -2
  195. package/dist/cli/cli/src/commands/doctor.d.ts.map +1 -1
  196. package/dist/cli/cli/src/commands/doctor.js +6 -3
  197. package/dist/cli/cli/src/commands/doctor.js.map +1 -1
  198. package/dist/cli/cli/src/commands/harness-setup.d.ts +21 -1
  199. package/dist/cli/cli/src/commands/harness-setup.d.ts.map +1 -1
  200. package/dist/cli/cli/src/commands/harness-setup.js +53 -16
  201. package/dist/cli/cli/src/commands/harness-setup.js.map +1 -1
  202. package/dist/cli/cli/src/commands/harness.d.ts +2 -2
  203. package/dist/cli/cli/src/commands/harness.d.ts.map +1 -1
  204. package/dist/cli/cli/src/commands/harness.js +6 -5
  205. package/dist/cli/cli/src/commands/harness.js.map +1 -1
  206. package/dist/cli/cli/src/commands/onboard.d.ts +7 -5
  207. package/dist/cli/cli/src/commands/onboard.d.ts.map +1 -1
  208. package/dist/cli/cli/src/commands/onboard.js +6 -4
  209. package/dist/cli/cli/src/commands/onboard.js.map +1 -1
  210. package/dist/cli/cli/src/index.js +3 -3
  211. package/dist/cli/cli/src/index.js.map +1 -1
  212. package/dist/cli/cli/src/utils/runtime-auth.d.ts +42 -5
  213. package/dist/cli/cli/src/utils/runtime-auth.d.ts.map +1 -1
  214. package/dist/cli/cli/src/utils/runtime-auth.js +78 -6
  215. package/dist/cli/cli/src/utils/runtime-auth.js.map +1 -1
  216. package/frontend/dist/assets/{index-b4d5575e.js → index-e05af897.js} +271 -271
  217. package/frontend/dist/index.html +1 -1
  218. package/package.json +1 -1
@@ -0,0 +1,267 @@
1
+ import { RuntimeAgentService } from './runtime-agent.service.abstract.js';
2
+ import { RuntimeStartupBlockedError } from './runtime-startup-blocked.error.js';
3
+ import { SessionCommandHelper } from '../session/index.js';
4
+ import { type RuntimeType } from '../../constants.js';
5
+ import { type AntigravityProviderResult } from '../../utils/antigravity-settings.utils.js';
6
+ /** Injectable dependencies (tests). */
7
+ export interface AntigravityRuntimeDeps {
8
+ /** The Gemini API key the session will run with, or null when there is none */
9
+ resolveApiKey?: () => Promise<string | null>;
10
+ /** Switch agy to the Gemini API key provider and trust the given folders */
11
+ ensureProvider?: (trustedPaths: string[]) => Promise<AntigravityProviderResult>;
12
+ /** Crewly home dir (prompt files and skills live there) */
13
+ crewlyHome?: () => string;
14
+ /** System temp dir (skills write screenshots and artifacts there) */
15
+ tmpDir?: () => string;
16
+ }
17
+ /**
18
+ * The Gemini API key an Antigravity session gets: the key saved for
19
+ * Antigravity in Settings → Harness, else a Gemini key from Crewly settings
20
+ * (global or an antigravity-cli override), else GEMINI_API_KEY in the
21
+ * backend's environment.
22
+ *
23
+ * @returns The key, or null when none is available
24
+ */
25
+ export declare function resolveAntigravityApiKey(): Promise<string | null>;
26
+ /**
27
+ * Whether a marker is on screen, also when the terminal wrapped it: agy's
28
+ * plain-text messages (printed before the TUI starts) wrap at the PTY width,
29
+ * so the marker is searched in the text as shown and with line breaks
30
+ * removed.
31
+ *
32
+ * @param screen - Captured screen (ANSI already stripped)
33
+ * @param marker - Text to find
34
+ * @returns True when found
35
+ */
36
+ export declare function antigravityScreenIncludes(screen: string, marker: string): boolean;
37
+ /**
38
+ * Classify a screen that agy cannot get past without the user, or that
39
+ * Crewly must refuse (an account sign-in).
40
+ *
41
+ * @param screen - Captured screen
42
+ * @returns The blocking error to throw, or null
43
+ */
44
+ export declare function detectAntigravityStartupBlocker(screen: string): RuntimeStartupBlockedError | null;
45
+ /**
46
+ * Whether agy started on something other than the Gemini API key: its
47
+ * banner (`Antigravity CLI 1.2.11`) is on screen but the `Gemini API key`
48
+ * line that replaces the account email is not. Only meaningful once the
49
+ * screen is fully painted (the idle footer is up): the two lines are drawn
50
+ * together, but a capture can land between them while agy boots.
51
+ *
52
+ * @param screen - Captured screen (ANSI stripped)
53
+ * @returns True for an account session
54
+ */
55
+ export declare function isAntigravityAccountSession(screen: string): boolean;
56
+ /**
57
+ * Whether agy's folder-trust screen is showing.
58
+ *
59
+ * @param screen - Captured screen
60
+ * @returns True when the "Do you trust the contents of this project?" screen is up
61
+ */
62
+ export declare function isAntigravityTrustPrompt(screen: string): boolean;
63
+ /**
64
+ * The text currently typed in agy's prompt box: the lines between the last
65
+ * two horizontal rules, without the `>` marker. The accept-edits
66
+ * placeholder counts as empty.
67
+ *
68
+ * ```
69
+ * ───────────────────────────── ← top rule
70
+ * > Read the file at /x.md ← input (may wrap onto more lines)
71
+ * ───────────────────────────── ← bottom rule
72
+ * ? for shortcuts … ← footer
73
+ * ```
74
+ *
75
+ * @param screen - Captured screen
76
+ * @returns The typed text (whitespace-collapsed), '' when empty, or null when no prompt box is visible
77
+ */
78
+ export declare function getAntigravityInputBoxText(screen: string): string | null;
79
+ /**
80
+ * Whether a message is still sitting in agy's prompt box (typed, not
81
+ * submitted). Only the box counts: agy echoes every submitted message above
82
+ * it as `> text`, which must not read as "stuck".
83
+ *
84
+ * @param screen - Captured screen
85
+ * @param message - Message that was sent
86
+ * @returns True when its start is still in the prompt box
87
+ */
88
+ export declare function isTextInAntigravityInputBox(screen: string, message: string): boolean;
89
+ /**
90
+ * Google Antigravity CLI (`agy`) runtime service.
91
+ *
92
+ * Crewly drives agy's interactive TUI in a PTY, like the other harnesses.
93
+ * The one hard rule: agy runs **only on a Gemini API key**. Google does not
94
+ * allow third-party tools to use Antigravity (or Gemini CLI) product OAuth,
95
+ * so before every launch Crewly
96
+ *
97
+ * 1. refuses to launch without a Gemini API key (RuntimeStartupBlockedError
98
+ * `api_key_required`), and
99
+ * 2. writes `"modelProvider": "gemini"` into agy's settings file (with the
100
+ * agent's folder in `trustedWorkspaces`). The key reaches the session as
101
+ * `GEMINI_API_KEY` in its spawn environment (harnessEnvForAgents).
102
+ *
103
+ * With that provider agy "never establishes an account session", even when
104
+ * the machine has an account login in its keyring. If agy nevertheless shows
105
+ * an account sign-in screen, or starts without the `Gemini API key` header,
106
+ * the launch is refused (`account_login_refused`) instead of letting the
107
+ * owner sign in.
108
+ *
109
+ * Launch: `agy --dangerously-skip-permissions --mode=accept-edits`, plus
110
+ * `--add-dir` for the Crewly home (the init prompt file lives there) and the
111
+ * temp dir (skill artifacts), `--model` / `--effort` for the member, and
112
+ * `--conversation=<id>` to resume. `AGY_CLI_DISABLE_AUTO_UPDATE=true` keeps
113
+ * the self-updater from replacing the binary mid-task.
114
+ *
115
+ * Screen anatomy (agy 1.2.11, captured in a PTY):
116
+ *
117
+ * ```
118
+ * Antigravity CLI 1.2.11
119
+ * Gemini API key ← provider header
120
+ * Gemini 3.1 Pro (Low)
121
+ * ─────────────────────────────────────────────
122
+ * > Accept-edits mode: file edits auto-approved (shift+tab to cycle)
123
+ * ─────────────────────────────────────────────
124
+ * ? for shortcuts accept-edits · Gemini 3.1 Pro · low ← idle footer
125
+ *
126
+ * > say hello ← echo of a submitted message
127
+ * ⣯ Generating... ← busy
128
+ * ──────────────── > ────────────────
129
+ * esc to cancel accept-edits · … ← busy footer
130
+ * ```
131
+ *
132
+ * Detection is a passive screen scrape: Ctrl+C at the prompt arms "press
133
+ * ctrl+c again to exit" and `/` opens the command menu, so no key probes.
134
+ */
135
+ export declare class AntigravityRuntimeService extends RuntimeAgentService {
136
+ private readonly resolveApiKey;
137
+ private readonly ensureProvider;
138
+ private readonly crewlyHome;
139
+ private readonly tmpDir;
140
+ /**
141
+ * @param sessionHelper - PTY session helper
142
+ * @param projectRoot - Crewly install dir
143
+ * @param deps - Injectable dependencies (tests)
144
+ */
145
+ constructor(sessionHelper: SessionCommandHelper, projectRoot: string, deps?: AntigravityRuntimeDeps);
146
+ protected getRuntimeType(): RuntimeType;
147
+ /**
148
+ * Folders agy gets with `--add-dir` at launch: the Crewly home (the init
149
+ * prompt file and skills) and the temp dir (skill artifacts). agy's file
150
+ * tools otherwise stay inside the workspace.
151
+ *
152
+ * @returns Absolute paths
153
+ */
154
+ getLaunchWorkspaceDirs(): string[];
155
+ /**
156
+ * Make sure agy can only start on the Gemini API key, then launch it.
157
+ *
158
+ * Claude-only launch arguments (`--agent`, a prompt file) are dropped:
159
+ * agy has its own, unrelated `--agent` flag.
160
+ *
161
+ * @param sessionName - PTY session name
162
+ * @param targetPath - Working directory for the session
163
+ * @param runtimeFlags - Model / effort / resume flags
164
+ * @param _promptFilePath - Ignored (Claude Code only)
165
+ * @param _agentName - Ignored (Claude Code only)
166
+ * @param resumeSessionId - Conversation being resumed (its flag is in runtimeFlags)
167
+ * @throws RuntimeStartupBlockedError when no key is available or agy's settings cannot be set
168
+ */
169
+ executeRuntimeInitScript(sessionName: string, targetPath?: string, runtimeFlags?: string[], _promptFilePath?: string, _agentName?: string, resumeSessionId?: string): Promise<void>;
170
+ /**
171
+ * Pre-launch guard: a Gemini API key must exist and agy's settings must
172
+ * select the Gemini provider (trusting the agent's folders).
173
+ *
174
+ * @param targetPath - The session's working directory
175
+ * @throws RuntimeStartupBlockedError `api_key_required` | `settings_unreadable`
176
+ */
177
+ prepareLaunch(targetPath?: string): Promise<void>;
178
+ /**
179
+ * Wait for agy's idle prompt.
180
+ *
181
+ * Screens only the user may resolve (first-run terms, a missing key) and
182
+ * screens Crewly must refuse (account sign-in) fail fast with a
183
+ * RuntimeStartupBlockedError; an account session is also exited so it
184
+ * does no work. The folder-trust screen is answered with its
185
+ * pre-selected "Yes, I trust this folder" (the folder is normally
186
+ * pre-trusted, so this is a fallback).
187
+ *
188
+ * @param sessionName - PTY session name
189
+ * @param timeout - Overall timeout (ms)
190
+ * @param checkInterval - Poll interval (ms)
191
+ * @returns True when ready, false on timeout or a startup error
192
+ * @throws RuntimeStartupBlockedError when start-up is blocked on the user
193
+ */
194
+ waitForRuntimeReady(sessionName: string, timeout: number, checkInterval?: number): Promise<boolean>;
195
+ /**
196
+ * Leave agy (Ctrl+C twice: the first arms "press ctrl+c again to exit").
197
+ *
198
+ * @param sessionName - PTY session name
199
+ */
200
+ private exitAntigravity;
201
+ /**
202
+ * Passive detection: agy's footer (idle or busy) is the last thing on
203
+ * screen, with no exit hint after it.
204
+ *
205
+ * @param sessionName - PTY session name
206
+ * @returns True when agy is running
207
+ */
208
+ protected detectRuntimeSpecific(sessionName: string): Promise<boolean>;
209
+ /**
210
+ * Text on screen once agy is up and taking input (or already busy, e.g.
211
+ * a resumed conversation): the idle footer, the empty accept-edits
212
+ * placeholder, or the busy footer.
213
+ *
214
+ * @returns Ready patterns
215
+ */
216
+ protected getRuntimeReadyPatterns(): string[];
217
+ /**
218
+ * Markers that veto readiness while the idle footer may still be painted.
219
+ *
220
+ * @returns Lower-case markers
221
+ */
222
+ protected getNotReadyMarkers(): readonly string[];
223
+ /**
224
+ * Exit patterns for RuntimeExitMonitorService (matched against the raw
225
+ * output stream, which is not wrapped). agy prints its resume hint on
226
+ * every clean exit, and refuses to start without the key.
227
+ *
228
+ * @returns Exit patterns
229
+ */
230
+ protected getRuntimeExitPatterns(): RegExp[];
231
+ /**
232
+ * Start-up error patterns (fail waitForRuntimeReady fast). Kept short so
233
+ * an 80-column wrap cannot split them.
234
+ *
235
+ * @returns Error patterns
236
+ */
237
+ protected getRuntimeErrorPatterns(): string[];
238
+ /**
239
+ * Add folders to a running agy's workspace with `/add-dir <path>` (the
240
+ * orchestrator's project folders). The Crewly home and temp dir were
241
+ * added at launch. Waits for the idle prompt around each command so the
242
+ * registration kickoff cannot land in the middle of one.
243
+ *
244
+ * @param sessionName - PTY session name
245
+ * @param targetProjectPath - The session's working directory (already the workspace)
246
+ * @param additionalAllowlistPaths - Extra folders to add
247
+ */
248
+ postInitialize(sessionName: string, targetProjectPath?: string, additionalAllowlistPaths?: string[]): Promise<void>;
249
+ /**
250
+ * Add one folder to a running agy's workspace, but only while it is idle
251
+ * at its prompt: a slash command typed during a turn would be queued as a
252
+ * message. Used when a project is added while the orchestrator runs.
253
+ *
254
+ * @param sessionName - PTY session name
255
+ * @param dir - Folder to add
256
+ * @returns True when the command was sent, false when agy was busy or the path is unusable
257
+ */
258
+ addWorkspaceDir(sessionName: string, dir: string): Promise<boolean>;
259
+ /**
260
+ * Wait (bounded) until agy shows its idle prompt.
261
+ *
262
+ * @param sessionName - PTY session name
263
+ * @returns True when idle, false on timeout
264
+ */
265
+ private waitForIdlePrompt;
266
+ }
267
+ //# sourceMappingURL=antigravity-runtime.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"antigravity-runtime.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/agent/antigravity-runtime.service.ts"],"names":[],"mappings":"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"}