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.
- package/config/runtime_scripts/runtime-config.json +7 -0
- package/config/skills/orchestrator/update-team-member/SKILL.md +2 -2
- package/dist/backend/backend/src/constants.d.ts +151 -0
- package/dist/backend/backend/src/constants.d.ts.map +1 -1
- package/dist/backend/backend/src/constants.js +173 -0
- package/dist/backend/backend/src/constants.js.map +1 -1
- package/dist/backend/backend/src/controllers/orchestrator/orchestrator.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/orchestrator/orchestrator.controller.js +4 -3
- package/dist/backend/backend/src/controllers/orchestrator/orchestrator.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/project/project.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/project/project.controller.js +13 -0
- package/dist/backend/backend/src/controllers/project/project.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/request-types.d.ts +2 -2
- package/dist/backend/backend/src/controllers/request-types.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts +22 -1
- package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/agent-registration.service.js +128 -14
- package/dist/backend/backend/src/services/agent/agent-registration.service.js.map +1 -1
- package/dist/backend/backend/src/services/agent/antigravity-runtime.service.d.ts +267 -0
- package/dist/backend/backend/src/services/agent/antigravity-runtime.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/agent/antigravity-runtime.service.js +521 -0
- package/dist/backend/backend/src/services/agent/antigravity-runtime.service.js.map +1 -0
- package/dist/backend/backend/src/services/agent/oauth-relogin-monitor.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/oauth-relogin-monitor.service.js +10 -0
- package/dist/backend/backend/src/services/agent/oauth-relogin-monitor.service.js.map +1 -1
- package/dist/backend/backend/src/services/agent/runtime-agent.service.abstract.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/runtime-agent.service.abstract.js +12 -1
- package/dist/backend/backend/src/services/agent/runtime-agent.service.abstract.js.map +1 -1
- package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.js +3 -1
- package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.js.map +1 -1
- package/dist/backend/backend/src/services/agent/runtime-service.factory.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/runtime-service.factory.js +9 -0
- package/dist/backend/backend/src/services/agent/runtime-service.factory.js.map +1 -1
- package/dist/backend/backend/src/services/agent/runtime-session-recovery.d.ts +57 -1
- package/dist/backend/backend/src/services/agent/runtime-session-recovery.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/runtime-session-recovery.js +176 -2
- package/dist/backend/backend/src/services/agent/runtime-session-recovery.js.map +1 -1
- package/dist/backend/backend/src/services/agent/runtime-startup-blocked.error.d.ts +15 -3
- package/dist/backend/backend/src/services/agent/runtime-startup-blocked.error.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/runtime-startup-blocked.error.js +2 -1
- package/dist/backend/backend/src/services/agent/runtime-startup-blocked.error.js.map +1 -1
- package/dist/backend/backend/src/services/harness/harness-api-key.service.d.ts +26 -0
- package/dist/backend/backend/src/services/harness/harness-api-key.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/harness/harness-api-key.service.js +65 -5
- package/dist/backend/backend/src/services/harness/harness-api-key.service.js.map +1 -1
- package/dist/backend/backend/src/services/harness/harness-credentials.store.d.ts +37 -6
- package/dist/backend/backend/src/services/harness/harness-credentials.store.d.ts.map +1 -1
- package/dist/backend/backend/src/services/harness/harness-credentials.store.js +57 -9
- package/dist/backend/backend/src/services/harness/harness-credentials.store.js.map +1 -1
- package/dist/backend/backend/src/services/harness/harness-install.service.d.ts +60 -7
- package/dist/backend/backend/src/services/harness/harness-install.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/harness/harness-install.service.js +154 -37
- package/dist/backend/backend/src/services/harness/harness-install.service.js.map +1 -1
- package/dist/backend/backend/src/services/harness/harness-registry.d.ts +46 -5
- package/dist/backend/backend/src/services/harness/harness-registry.d.ts.map +1 -1
- package/dist/backend/backend/src/services/harness/harness-registry.js +53 -8
- package/dist/backend/backend/src/services/harness/harness-registry.js.map +1 -1
- package/dist/backend/backend/src/services/harness/harness-status.service.d.ts +15 -1
- package/dist/backend/backend/src/services/harness/harness-status.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/harness/harness-status.service.js +34 -6
- package/dist/backend/backend/src/services/harness/harness-status.service.js.map +1 -1
- package/dist/backend/backend/src/services/harness/harness.types.d.ts +10 -3
- package/dist/backend/backend/src/services/harness/harness.types.d.ts.map +1 -1
- package/dist/backend/backend/src/services/harness/harness.types.js +4 -3
- package/dist/backend/backend/src/services/harness/harness.types.js.map +1 -1
- package/dist/backend/backend/src/services/mcp-tool-definitions.d.ts +1 -1
- package/dist/backend/backend/src/services/mcp-tool-definitions.js +1 -1
- package/dist/backend/backend/src/services/mcp-tool-definitions.js.map +1 -1
- package/dist/backend/backend/src/services/orchestrator/orchestrator-restart.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/orchestrator/orchestrator-restart.service.js +3 -2
- package/dist/backend/backend/src/services/orchestrator/orchestrator-restart.service.js.map +1 -1
- package/dist/backend/backend/src/services/runtime-adapter.d.ts +10 -1
- package/dist/backend/backend/src/services/runtime-adapter.d.ts.map +1 -1
- package/dist/backend/backend/src/services/runtime-adapter.js +12 -1
- package/dist/backend/backend/src/services/runtime-adapter.js.map +1 -1
- package/dist/backend/backend/src/services/settings/settings.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/settings/settings.service.js +1 -0
- package/dist/backend/backend/src/services/settings/settings.service.js.map +1 -1
- package/dist/backend/backend/src/types/index.d.ts +1 -1
- package/dist/backend/backend/src/types/index.d.ts.map +1 -1
- package/dist/backend/backend/src/types/settings.types.d.ts +1 -1
- package/dist/backend/backend/src/types/settings.types.d.ts.map +1 -1
- package/dist/backend/backend/src/types/settings.types.js +7 -1
- package/dist/backend/backend/src/types/settings.types.js.map +1 -1
- package/dist/backend/backend/src/types/solution-bundle.types.d.ts +1 -1
- package/dist/backend/backend/src/types/solution-bundle.types.d.ts.map +1 -1
- package/dist/backend/backend/src/types/team-template.types.d.ts +2 -2
- package/dist/backend/backend/src/types/team-template.types.d.ts.map +1 -1
- package/dist/backend/backend/src/types/team-template.types.js +1 -1
- package/dist/backend/backend/src/types/team-template.types.js.map +1 -1
- package/dist/backend/backend/src/utils/antigravity-settings.utils.d.ts +115 -0
- package/dist/backend/backend/src/utils/antigravity-settings.utils.d.ts.map +1 -0
- package/dist/backend/backend/src/utils/antigravity-settings.utils.js +181 -0
- package/dist/backend/backend/src/utils/antigravity-settings.utils.js.map +1 -0
- package/dist/backend/backend/src/utils/runtime-model-flags.utils.d.ts +3 -2
- package/dist/backend/backend/src/utils/runtime-model-flags.utils.d.ts.map +1 -1
- package/dist/backend/backend/src/utils/runtime-model-flags.utils.js +13 -3
- package/dist/backend/backend/src/utils/runtime-model-flags.utils.js.map +1 -1
- package/dist/backend/backend/src/utils/terminal-string-ops.d.ts +1 -0
- package/dist/backend/backend/src/utils/terminal-string-ops.d.ts.map +1 -1
- package/dist/backend/backend/src/utils/terminal-string-ops.js +29 -1
- package/dist/backend/backend/src/utils/terminal-string-ops.js.map +1 -1
- package/dist/backend/build-info.json +2 -2
- package/dist/cli/backend/src/constants.d.ts +151 -0
- package/dist/cli/backend/src/constants.d.ts.map +1 -1
- package/dist/cli/backend/src/constants.js +173 -0
- package/dist/cli/backend/src/constants.js.map +1 -1
- package/dist/cli/backend/src/services/agent/agent-registration.service.d.ts +22 -1
- package/dist/cli/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/agent/agent-registration.service.js +128 -14
- package/dist/cli/backend/src/services/agent/agent-registration.service.js.map +1 -1
- package/dist/cli/backend/src/services/agent/antigravity-runtime.service.d.ts +267 -0
- package/dist/cli/backend/src/services/agent/antigravity-runtime.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/agent/antigravity-runtime.service.js +521 -0
- package/dist/cli/backend/src/services/agent/antigravity-runtime.service.js.map +1 -0
- package/dist/cli/backend/src/services/agent/oauth-relogin-monitor.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/agent/oauth-relogin-monitor.service.js +10 -0
- package/dist/cli/backend/src/services/agent/oauth-relogin-monitor.service.js.map +1 -1
- package/dist/cli/backend/src/services/agent/runtime-agent.service.abstract.d.ts.map +1 -1
- package/dist/cli/backend/src/services/agent/runtime-agent.service.abstract.js +12 -1
- package/dist/cli/backend/src/services/agent/runtime-agent.service.abstract.js.map +1 -1
- package/dist/cli/backend/src/services/agent/runtime-exit-monitor.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/agent/runtime-exit-monitor.service.js +3 -1
- package/dist/cli/backend/src/services/agent/runtime-exit-monitor.service.js.map +1 -1
- package/dist/cli/backend/src/services/agent/runtime-service.factory.d.ts.map +1 -1
- package/dist/cli/backend/src/services/agent/runtime-service.factory.js +9 -0
- package/dist/cli/backend/src/services/agent/runtime-service.factory.js.map +1 -1
- package/dist/cli/backend/src/services/agent/runtime-session-recovery.d.ts +57 -1
- package/dist/cli/backend/src/services/agent/runtime-session-recovery.d.ts.map +1 -1
- package/dist/cli/backend/src/services/agent/runtime-session-recovery.js +176 -2
- package/dist/cli/backend/src/services/agent/runtime-session-recovery.js.map +1 -1
- package/dist/cli/backend/src/services/agent/runtime-startup-blocked.error.d.ts +15 -3
- package/dist/cli/backend/src/services/agent/runtime-startup-blocked.error.d.ts.map +1 -1
- package/dist/cli/backend/src/services/agent/runtime-startup-blocked.error.js +2 -1
- package/dist/cli/backend/src/services/agent/runtime-startup-blocked.error.js.map +1 -1
- package/dist/cli/backend/src/services/harness/harness-api-key.service.d.ts +26 -0
- package/dist/cli/backend/src/services/harness/harness-api-key.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/harness/harness-api-key.service.js +65 -5
- package/dist/cli/backend/src/services/harness/harness-api-key.service.js.map +1 -1
- package/dist/cli/backend/src/services/harness/harness-credentials.store.d.ts +37 -6
- package/dist/cli/backend/src/services/harness/harness-credentials.store.d.ts.map +1 -1
- package/dist/cli/backend/src/services/harness/harness-credentials.store.js +57 -9
- package/dist/cli/backend/src/services/harness/harness-credentials.store.js.map +1 -1
- package/dist/cli/backend/src/services/harness/harness-install.service.d.ts +60 -7
- package/dist/cli/backend/src/services/harness/harness-install.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/harness/harness-install.service.js +154 -37
- package/dist/cli/backend/src/services/harness/harness-install.service.js.map +1 -1
- package/dist/cli/backend/src/services/harness/harness-registry.d.ts +46 -5
- package/dist/cli/backend/src/services/harness/harness-registry.d.ts.map +1 -1
- package/dist/cli/backend/src/services/harness/harness-registry.js +53 -8
- package/dist/cli/backend/src/services/harness/harness-registry.js.map +1 -1
- package/dist/cli/backend/src/services/harness/harness-status.service.d.ts +15 -1
- package/dist/cli/backend/src/services/harness/harness-status.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/harness/harness-status.service.js +34 -6
- package/dist/cli/backend/src/services/harness/harness-status.service.js.map +1 -1
- package/dist/cli/backend/src/services/harness/harness.types.d.ts +10 -3
- package/dist/cli/backend/src/services/harness/harness.types.d.ts.map +1 -1
- package/dist/cli/backend/src/services/harness/harness.types.js +4 -3
- package/dist/cli/backend/src/services/harness/harness.types.js.map +1 -1
- package/dist/cli/backend/src/services/mcp-tool-definitions.d.ts +1 -1
- package/dist/cli/backend/src/services/mcp-tool-definitions.js +1 -1
- package/dist/cli/backend/src/services/mcp-tool-definitions.js.map +1 -1
- package/dist/cli/backend/src/services/orchestrator/orchestrator-restart.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/orchestrator/orchestrator-restart.service.js +3 -2
- package/dist/cli/backend/src/services/orchestrator/orchestrator-restart.service.js.map +1 -1
- package/dist/cli/backend/src/services/settings/settings.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/settings/settings.service.js +1 -0
- package/dist/cli/backend/src/services/settings/settings.service.js.map +1 -1
- package/dist/cli/backend/src/types/index.d.ts +1 -1
- package/dist/cli/backend/src/types/index.d.ts.map +1 -1
- package/dist/cli/backend/src/types/settings.types.d.ts +1 -1
- package/dist/cli/backend/src/types/settings.types.d.ts.map +1 -1
- package/dist/cli/backend/src/types/settings.types.js +7 -1
- package/dist/cli/backend/src/types/settings.types.js.map +1 -1
- package/dist/cli/backend/src/types/solution-bundle.types.d.ts +1 -1
- package/dist/cli/backend/src/types/solution-bundle.types.d.ts.map +1 -1
- package/dist/cli/backend/src/types/team-template.types.d.ts +2 -2
- package/dist/cli/backend/src/types/team-template.types.d.ts.map +1 -1
- package/dist/cli/backend/src/types/team-template.types.js +1 -1
- package/dist/cli/backend/src/types/team-template.types.js.map +1 -1
- package/dist/cli/backend/src/utils/antigravity-settings.utils.d.ts +115 -0
- package/dist/cli/backend/src/utils/antigravity-settings.utils.d.ts.map +1 -0
- package/dist/cli/backend/src/utils/antigravity-settings.utils.js +181 -0
- package/dist/cli/backend/src/utils/antigravity-settings.utils.js.map +1 -0
- package/dist/cli/backend/src/utils/runtime-model-flags.utils.d.ts +3 -2
- package/dist/cli/backend/src/utils/runtime-model-flags.utils.d.ts.map +1 -1
- package/dist/cli/backend/src/utils/runtime-model-flags.utils.js +13 -3
- package/dist/cli/backend/src/utils/runtime-model-flags.utils.js.map +1 -1
- package/dist/cli/backend/src/utils/terminal-string-ops.d.ts +1 -0
- package/dist/cli/backend/src/utils/terminal-string-ops.d.ts.map +1 -1
- package/dist/cli/backend/src/utils/terminal-string-ops.js +29 -1
- package/dist/cli/backend/src/utils/terminal-string-ops.js.map +1 -1
- package/dist/cli/cli/src/commands/doctor.d.ts +2 -2
- package/dist/cli/cli/src/commands/doctor.d.ts.map +1 -1
- package/dist/cli/cli/src/commands/doctor.js +6 -3
- package/dist/cli/cli/src/commands/doctor.js.map +1 -1
- package/dist/cli/cli/src/commands/harness-setup.d.ts +21 -1
- package/dist/cli/cli/src/commands/harness-setup.d.ts.map +1 -1
- package/dist/cli/cli/src/commands/harness-setup.js +53 -16
- package/dist/cli/cli/src/commands/harness-setup.js.map +1 -1
- package/dist/cli/cli/src/commands/harness.d.ts +2 -2
- package/dist/cli/cli/src/commands/harness.d.ts.map +1 -1
- package/dist/cli/cli/src/commands/harness.js +6 -5
- package/dist/cli/cli/src/commands/harness.js.map +1 -1
- package/dist/cli/cli/src/commands/onboard.d.ts +7 -5
- package/dist/cli/cli/src/commands/onboard.d.ts.map +1 -1
- package/dist/cli/cli/src/commands/onboard.js +6 -4
- package/dist/cli/cli/src/commands/onboard.js.map +1 -1
- package/dist/cli/cli/src/index.js +3 -3
- package/dist/cli/cli/src/index.js.map +1 -1
- package/dist/cli/cli/src/utils/runtime-auth.d.ts +42 -5
- package/dist/cli/cli/src/utils/runtime-auth.d.ts.map +1 -1
- package/dist/cli/cli/src/utils/runtime-auth.js +78 -6
- package/dist/cli/cli/src/utils/runtime-auth.js.map +1 -1
- package/frontend/dist/assets/{index-b4d5575e.js → index-e05af897.js} +271 -271
- package/frontend/dist/index.html +1 -1
- 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":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC1E,OAAO,EAAE,0BAA0B,EAAE,MAAM,oCAAoC,CAAC;AAChF,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAKN,KAAK,WAAW,EAChB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAEN,KAAK,yBAAyB,EAC9B,MAAM,2CAA2C,CAAC;AAiBnD,uCAAuC;AACvC,MAAM,WAAW,sBAAsB;IACtC,+EAA+E;IAC/E,aAAa,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC7C,4EAA4E;IAC5E,cAAc,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,yBAAyB,CAAC,CAAC;IAChF,2DAA2D;IAC3D,UAAU,CAAC,EAAE,MAAM,MAAM,CAAC;IAC1B,qEAAqE;IACrE,MAAM,CAAC,EAAE,MAAM,MAAM,CAAC;CACtB;AAED;;;;;;;GAOG;AACH,wBAAsB,wBAAwB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAevE;AAED;;;;;;;;;GASG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAEjF;AAED;;;;;;GAMG;AACH,wBAAgB,+BAA+B,CAAC,MAAM,EAAE,MAAM,GAAG,0BAA0B,GAAG,IAAI,CAajG;AAED;;;;;;;;;GASG;AACH,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAEnE;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAGhE;AAaD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CA0BxE;AAED;;;;;;;;GAQG;AACH,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAKpF;AAYD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,qBAAa,yBAA0B,SAAQ,mBAAmB;IACjE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA+B;IAC7D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiE;IAChG,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAe;IAC1C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAe;IAEtC;;;;OAIG;gBACS,aAAa,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,GAAE,sBAA2B;IAQvG,SAAS,CAAC,cAAc,IAAI,WAAW;IAIvC;;;;;;OAMG;IACH,sBAAsB,IAAI,MAAM,EAAE;IAIlC;;;;;;;;;;;;;OAaG;IACG,wBAAwB,CAC7B,WAAW,EAAE,MAAM,EACnB,UAAU,CAAC,EAAE,MAAM,EACnB,YAAY,CAAC,EAAE,MAAM,EAAE,EACvB,eAAe,CAAC,EAAE,MAAM,EACxB,UAAU,CAAC,EAAE,MAAM,EACnB,eAAe,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,IAAI,CAAC;IAOhB;;;;;;OAMG;IACG,aAAa,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBvD;;;;;;;;;;;;;;;OAeG;IACG,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,GAAE,MAAa,GAAG,OAAO,CAAC,OAAO,CAAC;IAwD/G;;;;OAIG;YACW,eAAe;IAU7B;;;;;;OAMG;cACa,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAY5E;;;;;;OAMG;IACH,SAAS,CAAC,uBAAuB,IAAI,MAAM,EAAE;IAQ7C;;;;OAIG;IACH,SAAS,CAAC,kBAAkB,IAAI,SAAS,MAAM,EAAE;IAIjD;;;;;;OAMG;IACH,SAAS,CAAC,sBAAsB,IAAI,MAAM,EAAE;IAS5C;;;;;OAKG;IACH,SAAS,CAAC,uBAAuB,IAAI,MAAM,EAAE;IAS7C;;;;;;;;;OASG;IACG,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,iBAAiB,CAAC,EAAE,MAAM,EAAE,wBAAwB,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBzH;;;;;;;;OAQG;IACG,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAYzE;;;;;OAKG;YACW,iBAAiB;CAY/B"}
|