crewly 1.20.181 → 1.20.182
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/dist/backend/backend/src/constants.d.ts +66 -1
- package/dist/backend/backend/src/constants.d.ts.map +1 -1
- package/dist/backend/backend/src/constants.js +75 -1
- package/dist/backend/backend/src/constants.js.map +1 -1
- package/dist/backend/backend/src/controllers/system/runtime-fallback.controller.d.ts +11 -1
- package/dist/backend/backend/src/controllers/system/runtime-fallback.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/system/runtime-fallback.controller.js +44 -9
- package/dist/backend/backend/src/controllers/system/runtime-fallback.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/system/runtime-terms.controller.d.ts +31 -0
- package/dist/backend/backend/src/controllers/system/runtime-terms.controller.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/system/runtime-terms.controller.js +99 -0
- package/dist/backend/backend/src/controllers/system/runtime-terms.controller.js.map +1 -0
- package/dist/backend/backend/src/index.d.ts.map +1 -1
- package/dist/backend/backend/src/index.js +4 -0
- package/dist/backend/backend/src/index.js.map +1 -1
- package/dist/backend/backend/src/routes/modules/system.routes.d.ts.map +1 -1
- package/dist/backend/backend/src/routes/modules/system.routes.js +3 -0
- package/dist/backend/backend/src/routes/modules/system.routes.js.map +1 -1
- package/dist/backend/backend/src/services/agent/antigravity-runtime.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/antigravity-runtime.service.js +5 -0
- package/dist/backend/backend/src/services/agent/antigravity-runtime.service.js.map +1 -1
- package/dist/backend/backend/src/services/decisions/decision-card.d.ts +14 -4
- package/dist/backend/backend/src/services/decisions/decision-card.d.ts.map +1 -1
- package/dist/backend/backend/src/services/decisions/decision-card.js +31 -10
- package/dist/backend/backend/src/services/decisions/decision-card.js.map +1 -1
- package/dist/backend/backend/src/services/decisions/decision.service.d.ts +40 -2
- package/dist/backend/backend/src/services/decisions/decision.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/decisions/decision.service.js +100 -8
- package/dist/backend/backend/src/services/decisions/decision.service.js.map +1 -1
- package/dist/backend/backend/src/services/decisions/decision.wiring.d.ts.map +1 -1
- package/dist/backend/backend/src/services/decisions/decision.wiring.js +7 -0
- package/dist/backend/backend/src/services/decisions/decision.wiring.js.map +1 -1
- package/dist/backend/backend/src/services/runtime-fallback/runtime-availability.d.ts +8 -0
- package/dist/backend/backend/src/services/runtime-fallback/runtime-availability.d.ts.map +1 -1
- package/dist/backend/backend/src/services/runtime-fallback/runtime-availability.js +5 -0
- package/dist/backend/backend/src/services/runtime-fallback/runtime-availability.js.map +1 -1
- package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.service.d.ts +2 -0
- package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.service.js +4 -0
- package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.service.js.map +1 -1
- package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.types.d.ts +2 -0
- package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.types.d.ts.map +1 -1
- package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.types.js.map +1 -1
- package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.wiring.d.ts.map +1 -1
- package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.wiring.js +3 -0
- package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.wiring.js.map +1 -1
- package/dist/backend/backend/src/services/runtime-fallback/runtime-smoke-test.service.d.ts +15 -1
- package/dist/backend/backend/src/services/runtime-fallback/runtime-smoke-test.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/runtime-fallback/runtime-smoke-test.service.js +13 -2
- package/dist/backend/backend/src/services/runtime-fallback/runtime-smoke-test.service.js.map +1 -1
- package/dist/backend/backend/src/services/runtime-terms/antigravity-terms-driver.d.ts +92 -0
- package/dist/backend/backend/src/services/runtime-terms/antigravity-terms-driver.d.ts.map +1 -0
- package/dist/backend/backend/src/services/runtime-terms/antigravity-terms-driver.js +199 -0
- package/dist/backend/backend/src/services/runtime-terms/antigravity-terms-driver.js.map +1 -0
- package/dist/backend/backend/src/services/runtime-terms/antigravity-terms-screens.d.ts +79 -0
- package/dist/backend/backend/src/services/runtime-terms/antigravity-terms-screens.d.ts.map +1 -0
- package/dist/backend/backend/src/services/runtime-terms/antigravity-terms-screens.js +145 -0
- package/dist/backend/backend/src/services/runtime-terms/antigravity-terms-screens.js.map +1 -0
- package/dist/backend/backend/src/services/runtime-terms/fake-agy-tui.fixture.d.ts +75 -0
- package/dist/backend/backend/src/services/runtime-terms/fake-agy-tui.fixture.d.ts.map +1 -0
- package/dist/backend/backend/src/services/runtime-terms/fake-agy-tui.fixture.js +218 -0
- package/dist/backend/backend/src/services/runtime-terms/fake-agy-tui.fixture.js.map +1 -0
- package/dist/backend/backend/src/services/runtime-terms/runtime-terms-consent.service.d.ts +245 -0
- package/dist/backend/backend/src/services/runtime-terms/runtime-terms-consent.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/runtime-terms/runtime-terms-consent.service.js +428 -0
- package/dist/backend/backend/src/services/runtime-terms/runtime-terms-consent.service.js.map +1 -0
- package/dist/backend/backend/src/services/runtime-terms/runtime-terms.store.d.ts +67 -0
- package/dist/backend/backend/src/services/runtime-terms/runtime-terms.store.d.ts.map +1 -0
- package/dist/backend/backend/src/services/runtime-terms/runtime-terms.store.js +78 -0
- package/dist/backend/backend/src/services/runtime-terms/runtime-terms.store.js.map +1 -0
- package/dist/backend/backend/src/services/runtime-terms/runtime-terms.wiring.d.ts +39 -0
- package/dist/backend/backend/src/services/runtime-terms/runtime-terms.wiring.d.ts.map +1 -0
- package/dist/backend/backend/src/services/runtime-terms/runtime-terms.wiring.js +161 -0
- package/dist/backend/backend/src/services/runtime-terms/runtime-terms.wiring.js.map +1 -0
- package/dist/backend/backend/src/types/decision.types.d.ts +29 -5
- package/dist/backend/backend/src/types/decision.types.d.ts.map +1 -1
- package/dist/backend/build-info.json +2 -2
- package/dist/cli/backend/src/constants.d.ts +66 -1
- package/dist/cli/backend/src/constants.d.ts.map +1 -1
- package/dist/cli/backend/src/constants.js +75 -1
- package/dist/cli/backend/src/constants.js.map +1 -1
- package/dist/cli/backend/src/services/agent/antigravity-runtime.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/agent/antigravity-runtime.service.js +5 -0
- package/dist/cli/backend/src/services/agent/antigravity-runtime.service.js.map +1 -1
- package/dist/cli/backend/src/services/decisions/decision-card.d.ts +165 -0
- package/dist/cli/backend/src/services/decisions/decision-card.d.ts.map +1 -0
- package/dist/cli/backend/src/services/decisions/decision-card.js +358 -0
- package/dist/cli/backend/src/services/decisions/decision-card.js.map +1 -0
- package/dist/cli/backend/src/services/decisions/decision-contract.d.ts +83 -0
- package/dist/cli/backend/src/services/decisions/decision-contract.d.ts.map +1 -0
- package/dist/cli/backend/src/services/decisions/decision-contract.js +226 -0
- package/dist/cli/backend/src/services/decisions/decision-contract.js.map +1 -0
- package/dist/cli/backend/src/services/decisions/decision-store.d.ts +80 -0
- package/dist/cli/backend/src/services/decisions/decision-store.d.ts.map +1 -0
- package/dist/cli/backend/src/services/decisions/decision-store.js +151 -0
- package/dist/cli/backend/src/services/decisions/decision-store.js.map +1 -0
- package/dist/cli/backend/src/services/decisions/decision.service.d.ts +376 -0
- package/dist/cli/backend/src/services/decisions/decision.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/decisions/decision.service.js +821 -0
- package/dist/cli/backend/src/services/decisions/decision.service.js.map +1 -0
- package/dist/cli/backend/src/services/decisions/ticket-thread-store.d.ts +97 -0
- package/dist/cli/backend/src/services/decisions/ticket-thread-store.d.ts.map +1 -0
- package/dist/cli/backend/src/services/decisions/ticket-thread-store.js +137 -0
- package/dist/cli/backend/src/services/decisions/ticket-thread-store.js.map +1 -0
- package/dist/cli/backend/src/services/runtime-fallback/runtime-fallback.types.d.ts +136 -0
- package/dist/cli/backend/src/services/runtime-fallback/runtime-fallback.types.d.ts.map +1 -0
- package/dist/cli/backend/src/services/runtime-fallback/runtime-fallback.types.js +152 -0
- package/dist/cli/backend/src/services/runtime-fallback/runtime-fallback.types.js.map +1 -0
- package/dist/cli/backend/src/services/runtime-fallback/runtime-smoke-test.service.d.ts +217 -0
- package/dist/cli/backend/src/services/runtime-fallback/runtime-smoke-test.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/runtime-fallback/runtime-smoke-test.service.js +430 -0
- package/dist/cli/backend/src/services/runtime-fallback/runtime-smoke-test.service.js.map +1 -0
- package/dist/cli/backend/src/services/runtime-terms/antigravity-terms-driver.d.ts +92 -0
- package/dist/cli/backend/src/services/runtime-terms/antigravity-terms-driver.d.ts.map +1 -0
- package/dist/cli/backend/src/services/runtime-terms/antigravity-terms-driver.js +199 -0
- package/dist/cli/backend/src/services/runtime-terms/antigravity-terms-driver.js.map +1 -0
- package/dist/cli/backend/src/services/runtime-terms/antigravity-terms-screens.d.ts +79 -0
- package/dist/cli/backend/src/services/runtime-terms/antigravity-terms-screens.d.ts.map +1 -0
- package/dist/cli/backend/src/services/runtime-terms/antigravity-terms-screens.js +145 -0
- package/dist/cli/backend/src/services/runtime-terms/antigravity-terms-screens.js.map +1 -0
- package/dist/cli/backend/src/services/runtime-terms/runtime-terms-consent.service.d.ts +245 -0
- package/dist/cli/backend/src/services/runtime-terms/runtime-terms-consent.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/runtime-terms/runtime-terms-consent.service.js +428 -0
- package/dist/cli/backend/src/services/runtime-terms/runtime-terms-consent.service.js.map +1 -0
- package/dist/cli/backend/src/services/runtime-terms/runtime-terms.store.d.ts +67 -0
- package/dist/cli/backend/src/services/runtime-terms/runtime-terms.store.d.ts.map +1 -0
- package/dist/cli/backend/src/services/runtime-terms/runtime-terms.store.js +78 -0
- package/dist/cli/backend/src/services/runtime-terms/runtime-terms.store.js.map +1 -0
- package/dist/cli/backend/src/types/decision.types.d.ts +192 -0
- package/dist/cli/backend/src/types/decision.types.d.ts.map +1 -0
- package/dist/cli/backend/src/types/decision.types.js +13 -0
- package/dist/cli/backend/src/types/decision.types.js.map +1 -0
- package/dist/cli/cli/src/commands/harness-setup.js +2 -2
- package/frontend/dist/assets/{index-4271e95e.js → index-9c91de50.js} +138 -138
- package/frontend/dist/index.html +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Antigravity CLI first-run screens, read from screen text (pure).
|
|
3
|
+
*
|
|
4
|
+
* What agy 1.2.14 paints on its first interactive launch (captured in a PTY,
|
|
5
|
+
* focus marked by `> `, a chosen colour scheme by `* `, a focused button
|
|
6
|
+
* drawn without its brackets):
|
|
7
|
+
*
|
|
8
|
+
* ```
|
|
9
|
+
* Welcome to Antigravity CLI!
|
|
10
|
+
* Choose your color scheme: ╭──── preview ────╮
|
|
11
|
+
* > terminal │ … │
|
|
12
|
+
* light │ … │
|
|
13
|
+
* …
|
|
14
|
+
* Migration options: ← only when Gemini CLI extensions exist
|
|
15
|
+
* > [ ] Import extensions from Gemini CLI (1 found: …)
|
|
16
|
+
* [Next] ← focused: "> Next"
|
|
17
|
+
*
|
|
18
|
+
* Terms of Service & Data Use
|
|
19
|
+
* > [x] Yes, I agree to help improve Antigravity CLI by allowing …
|
|
20
|
+
* [Previous] [Done] ← focused: "> Previous" / "> Done"
|
|
21
|
+
* ↑/↓ Navigate · enter Toggle
|
|
22
|
+
* ```
|
|
23
|
+
*
|
|
24
|
+
* Every field is derived from text, never from a key count, so the driver
|
|
25
|
+
* can check the screen before and after each key.
|
|
26
|
+
* specs/2026-10-01-runtime-terms-consent.md
|
|
27
|
+
*
|
|
28
|
+
* @module services/runtime-terms/antigravity-terms-screens
|
|
29
|
+
*/
|
|
30
|
+
import { ANTIGRAVITY_CONSTANTS, RUNTIME_TERMS_CONSTANTS } from '../../constants.js';
|
|
31
|
+
import { stripAnsiCodes } from '../../utils/terminal-string-ops.js';
|
|
32
|
+
const A = RUNTIME_TERMS_CONSTANTS.ANTIGRAVITY;
|
|
33
|
+
/**
|
|
34
|
+
* The left column of a line (the colour list shares lines with the preview box).
|
|
35
|
+
*
|
|
36
|
+
* @param line - Screen line
|
|
37
|
+
* @returns Text before the preview box border
|
|
38
|
+
*/
|
|
39
|
+
function leftColumn(line) {
|
|
40
|
+
const cut = line.search(/[│╭╰]/);
|
|
41
|
+
return (cut >= 0 ? line.slice(0, cut) : line).replace(/\s+$/, '');
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Parse the colour-scheme screen.
|
|
45
|
+
*
|
|
46
|
+
* @param lines - Screen lines
|
|
47
|
+
* @returns Parsed screen
|
|
48
|
+
*/
|
|
49
|
+
function parseColorScheme(lines) {
|
|
50
|
+
let focus = null;
|
|
51
|
+
let chosenScheme = null;
|
|
52
|
+
let importChecked = null;
|
|
53
|
+
let migration = false;
|
|
54
|
+
for (const raw of lines) {
|
|
55
|
+
const line = leftColumn(raw);
|
|
56
|
+
const scheme = /^\s*([>*])?\s*(.+?)\s*$/.exec(line);
|
|
57
|
+
if (scheme && A.COLOR_SCHEMES.includes(scheme[2])) {
|
|
58
|
+
if (scheme[1] === '>')
|
|
59
|
+
focus = { type: 'scheme', name: scheme[2] };
|
|
60
|
+
if (scheme[1] === '*')
|
|
61
|
+
chosenScheme = scheme[2];
|
|
62
|
+
continue;
|
|
63
|
+
}
|
|
64
|
+
if (raw.includes(A.MIGRATION_TITLE))
|
|
65
|
+
migration = true;
|
|
66
|
+
if (raw.includes(A.IMPORT_ITEM)) {
|
|
67
|
+
const m = /^\s*(>)?\s*\[([ xX])\]/.exec(raw);
|
|
68
|
+
if (m) {
|
|
69
|
+
importChecked = m[2].toLowerCase() === 'x';
|
|
70
|
+
if (m[1])
|
|
71
|
+
focus = { type: 'import', checked: importChecked };
|
|
72
|
+
}
|
|
73
|
+
continue;
|
|
74
|
+
}
|
|
75
|
+
if (new RegExp(`^\\s*>\\s+${A.NEXT_BUTTON}\\s*$`).test(raw))
|
|
76
|
+
focus = { type: 'next' };
|
|
77
|
+
}
|
|
78
|
+
return { kind: 'color_scheme', focus, chosenScheme, migration, importChecked };
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Parse the Terms screen.
|
|
82
|
+
*
|
|
83
|
+
* @param lines - Screen lines
|
|
84
|
+
* @returns Parsed screen
|
|
85
|
+
*/
|
|
86
|
+
function parseTerms(lines) {
|
|
87
|
+
let focus = null;
|
|
88
|
+
let dataChecked = null;
|
|
89
|
+
let dataLines = 0;
|
|
90
|
+
for (const raw of lines) {
|
|
91
|
+
if (raw.includes(A.DATA_ITEM)) {
|
|
92
|
+
dataLines += 1;
|
|
93
|
+
const m = /^\s*(>)?\s*\[([ xX])\]\s/.exec(raw);
|
|
94
|
+
if (m) {
|
|
95
|
+
dataChecked = m[2].toLowerCase() === 'x';
|
|
96
|
+
if (m[1])
|
|
97
|
+
focus = 'data';
|
|
98
|
+
}
|
|
99
|
+
continue;
|
|
100
|
+
}
|
|
101
|
+
if (raw.includes(A.PREVIOUS_BUTTON) && raw.includes(A.DONE_BUTTON)) {
|
|
102
|
+
if (new RegExp(`>\\s+${A.PREVIOUS_BUTTON}\\b`).test(raw))
|
|
103
|
+
focus = 'previous';
|
|
104
|
+
else if (new RegExp(`>\\s+${A.DONE_BUTTON}\\b`).test(raw))
|
|
105
|
+
focus = 'done';
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
// Two copies of the item would make "the" checkbox ambiguous.
|
|
109
|
+
if (dataLines !== 1)
|
|
110
|
+
dataChecked = null;
|
|
111
|
+
return { kind: 'terms', focus, dataChecked };
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Parse an Antigravity CLI screen.
|
|
115
|
+
*
|
|
116
|
+
* @param screen - Captured screen (ANSI is stripped here)
|
|
117
|
+
* @returns What is on screen
|
|
118
|
+
*/
|
|
119
|
+
export function parseAntigravityTermsScreen(screen) {
|
|
120
|
+
const clean = stripAnsiCodes(screen);
|
|
121
|
+
const lines = clean.split(/\r?\n/);
|
|
122
|
+
if (clean.includes(A.TERMS_TITLE))
|
|
123
|
+
return parseTerms(lines);
|
|
124
|
+
if (clean.includes(A.COLOR_SCHEME_TITLE))
|
|
125
|
+
return parseColorScheme(lines);
|
|
126
|
+
const S = ANTIGRAVITY_CONSTANTS.SCREEN;
|
|
127
|
+
if (clean.includes(S.TRUST_PROMPT) && clean.includes(S.TRUST_ACCEPT_OPTION))
|
|
128
|
+
return { kind: 'trust' };
|
|
129
|
+
if (S.ACCOUNT_LOGIN_MARKERS.some((m) => clean.includes(m)))
|
|
130
|
+
return { kind: 'login' };
|
|
131
|
+
if (clean.includes(S.IDLE_FOOTER))
|
|
132
|
+
return { kind: 'main_prompt' };
|
|
133
|
+
return { kind: 'unknown' };
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Whether a screen shows the first-run (colour scheme / Terms) screens.
|
|
137
|
+
*
|
|
138
|
+
* @param screen - Captured screen
|
|
139
|
+
* @returns True on either first-run screen
|
|
140
|
+
*/
|
|
141
|
+
export function isAntigravityFirstRunScreen(screen) {
|
|
142
|
+
const kind = parseAntigravityTermsScreen(screen).kind;
|
|
143
|
+
return kind === 'terms' || kind === 'color_scheme';
|
|
144
|
+
}
|
|
145
|
+
//# sourceMappingURL=antigravity-terms-screens.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"antigravity-terms-screens.js","sourceRoot":"","sources":["../../../../../../backend/src/services/runtime-terms/antigravity-terms-screens.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tests-only fake of Antigravity CLI's first-run TUI (agy 1.2.14): a
|
|
3
|
+
* scripted terminal that takes the raw bytes a PTY would get, renders the
|
|
4
|
+
* screens the real binary paints (same text, same focus markers) and
|
|
5
|
+
* records every key, so a test can check exactly what was pressed and the
|
|
6
|
+
* resulting checkbox state.
|
|
7
|
+
*
|
|
8
|
+
* Behaviour copied from the real binary:
|
|
9
|
+
* - colour list: ↑/↓ move (wrapping inside the list), Enter chooses (`* name`);
|
|
10
|
+
* without Gemini CLI extensions Enter goes straight to the Terms screen,
|
|
11
|
+
* with them the focus moves to "Import extensions…" (↑ from there returns
|
|
12
|
+
* to the bottom of the list and un-chooses the scheme), then Next;
|
|
13
|
+
* - Terms: the data item starts checked; Enter / Space toggle it; ↓ moves to
|
|
14
|
+
* the buttons ([Previous] first), ←/→ between them, ↑ back to the item;
|
|
15
|
+
* Enter on Previous goes back, Enter on Done accepts and shows the prompt.
|
|
16
|
+
*
|
|
17
|
+
* @module services/runtime-terms/fake-agy-tui.fixture
|
|
18
|
+
*/
|
|
19
|
+
import type { TermsTerminal } from './antigravity-terms-driver.js';
|
|
20
|
+
/** Keys decoded from the bytes received. */
|
|
21
|
+
export type FakeKey = 'Up' | 'Down' | 'Left' | 'Right' | 'Enter' | 'Space' | 'CtrlC' | 'Other';
|
|
22
|
+
/** Options. */
|
|
23
|
+
export interface FakeAgyOptions {
|
|
24
|
+
/** Gemini CLI extensions exist (shows "Migration options") */
|
|
25
|
+
migration?: boolean;
|
|
26
|
+
/** Start on the prompt (terms already accepted) */
|
|
27
|
+
alreadyAccepted?: boolean;
|
|
28
|
+
/** Paint a different Terms screen (wording changed in a new version) */
|
|
29
|
+
changedTerms?: boolean;
|
|
30
|
+
/** Paint an account sign-in instead of the setup screens */
|
|
31
|
+
accountLogin?: boolean;
|
|
32
|
+
/** Toggling the data box does nothing (a stuck TUI) */
|
|
33
|
+
stuckCheckbox?: boolean;
|
|
34
|
+
/** Starting focus in the colour list */
|
|
35
|
+
startScheme?: string;
|
|
36
|
+
}
|
|
37
|
+
/** The fake. */
|
|
38
|
+
export declare class FakeAgyTui implements TermsTerminal {
|
|
39
|
+
private readonly opts;
|
|
40
|
+
/** Every key received, in order */
|
|
41
|
+
readonly keys: FakeKey[];
|
|
42
|
+
screenName: 'color' | 'terms' | 'main' | 'exited' | 'login';
|
|
43
|
+
focusZone: 'list' | 'import' | 'next';
|
|
44
|
+
focusIdx: number;
|
|
45
|
+
chosen: string | null;
|
|
46
|
+
importChecked: boolean;
|
|
47
|
+
termsFocus: 'data' | 'previous' | 'done';
|
|
48
|
+
dataChecked: boolean;
|
|
49
|
+
/** What Done accepted, once pressed */
|
|
50
|
+
accepted: {
|
|
51
|
+
scheme: string | null;
|
|
52
|
+
importExtensions: boolean;
|
|
53
|
+
dataSharing: boolean;
|
|
54
|
+
} | null;
|
|
55
|
+
/** Times Done was pressed */
|
|
56
|
+
doneCount: number;
|
|
57
|
+
/**
|
|
58
|
+
* @param opts - Scenario
|
|
59
|
+
*/
|
|
60
|
+
constructor(opts?: FakeAgyOptions);
|
|
61
|
+
/**
|
|
62
|
+
* Receive bytes as a PTY would.
|
|
63
|
+
*
|
|
64
|
+
* @param data - Raw bytes
|
|
65
|
+
*/
|
|
66
|
+
write(data: string): void;
|
|
67
|
+
private press;
|
|
68
|
+
private pressColor;
|
|
69
|
+
private pressTerms;
|
|
70
|
+
/** @returns The screen as text */
|
|
71
|
+
capture(): string;
|
|
72
|
+
private renderColor;
|
|
73
|
+
private renderTerms;
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=fake-agy-tui.fixture.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fake-agy-tui.fixture.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/runtime-terms/fake-agy-tui.fixture.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAInE,4CAA4C;AAC5C,MAAM,MAAM,OAAO,GAAG,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;AAY/F,eAAe;AACf,MAAM,WAAW,cAAc;IAC9B,8DAA8D;IAC9D,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,mDAAmD;IACnD,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,wEAAwE;IACxE,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,4DAA4D;IAC5D,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,uDAAuD;IACvD,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,wCAAwC;IACxC,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,gBAAgB;AAChB,qBAAa,UAAW,YAAW,aAAa;IAkBnC,OAAO,CAAC,QAAQ,CAAC,IAAI;IAjBjC,mCAAmC;IACnC,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,CAAM;IAC9B,UAAU,EAAE,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAW;IACtE,SAAS,EAAE,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAU;IAC/C,QAAQ,SAAK;IACb,MAAM,EAAE,MAAM,GAAG,IAAI,CAAQ;IAC7B,aAAa,UAAS;IACtB,UAAU,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM,CAAU;IAClD,WAAW,UAAQ;IACnB,uCAAuC;IACvC,QAAQ,EAAE;QAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,gBAAgB,EAAE,OAAO,CAAC;QAAC,WAAW,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAQ;IACnG,6BAA6B;IAC7B,SAAS,SAAK;IAEd;;OAEG;gBAC0B,IAAI,GAAE,cAAmB;IAMtD;;;;OAIG;IACH,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAWzB,OAAO,CAAC,KAAK;IASb,OAAO,CAAC,UAAU;IA0BlB,OAAO,CAAC,UAAU;IAqBlB,kCAAkC;IAClC,OAAO,IAAI,MAAM;IAsBjB,OAAO,CAAC,WAAW;IAqBnB,OAAO,CAAC,WAAW;CAmCnB"}
|
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tests-only fake of Antigravity CLI's first-run TUI (agy 1.2.14): a
|
|
3
|
+
* scripted terminal that takes the raw bytes a PTY would get, renders the
|
|
4
|
+
* screens the real binary paints (same text, same focus markers) and
|
|
5
|
+
* records every key, so a test can check exactly what was pressed and the
|
|
6
|
+
* resulting checkbox state.
|
|
7
|
+
*
|
|
8
|
+
* Behaviour copied from the real binary:
|
|
9
|
+
* - colour list: ↑/↓ move (wrapping inside the list), Enter chooses (`* name`);
|
|
10
|
+
* without Gemini CLI extensions Enter goes straight to the Terms screen,
|
|
11
|
+
* with them the focus moves to "Import extensions…" (↑ from there returns
|
|
12
|
+
* to the bottom of the list and un-chooses the scheme), then Next;
|
|
13
|
+
* - Terms: the data item starts checked; Enter / Space toggle it; ↓ moves to
|
|
14
|
+
* the buttons ([Previous] first), ←/→ between them, ↑ back to the item;
|
|
15
|
+
* Enter on Previous goes back, Enter on Done accepts and shows the prompt.
|
|
16
|
+
*
|
|
17
|
+
* @module services/runtime-terms/fake-agy-tui.fixture
|
|
18
|
+
*/
|
|
19
|
+
const SCHEMES = ['terminal', 'light', 'solarized light', 'colorblind-friendly light', 'dark', 'solarized dark', 'colorblind-friendly dark', 'tokyo night'];
|
|
20
|
+
const BYTES = {
|
|
21
|
+
'\x1b[A': 'Up',
|
|
22
|
+
'\x1b[B': 'Down',
|
|
23
|
+
'\x1b[C': 'Right',
|
|
24
|
+
'\x1b[D': 'Left',
|
|
25
|
+
'\r': 'Enter',
|
|
26
|
+
' ': 'Space',
|
|
27
|
+
'\x03': 'CtrlC',
|
|
28
|
+
};
|
|
29
|
+
/** The fake. */
|
|
30
|
+
export class FakeAgyTui {
|
|
31
|
+
opts;
|
|
32
|
+
/** Every key received, in order */
|
|
33
|
+
keys = [];
|
|
34
|
+
screenName = 'color';
|
|
35
|
+
focusZone = 'list';
|
|
36
|
+
focusIdx = 0;
|
|
37
|
+
chosen = null;
|
|
38
|
+
importChecked = false;
|
|
39
|
+
termsFocus = 'data';
|
|
40
|
+
dataChecked = true;
|
|
41
|
+
/** What Done accepted, once pressed */
|
|
42
|
+
accepted = null;
|
|
43
|
+
/** Times Done was pressed */
|
|
44
|
+
doneCount = 0;
|
|
45
|
+
/**
|
|
46
|
+
* @param opts - Scenario
|
|
47
|
+
*/
|
|
48
|
+
constructor(opts = {}) {
|
|
49
|
+
this.opts = opts;
|
|
50
|
+
if (opts.alreadyAccepted)
|
|
51
|
+
this.screenName = 'main';
|
|
52
|
+
if (opts.accountLogin)
|
|
53
|
+
this.screenName = 'login';
|
|
54
|
+
if (opts.startScheme)
|
|
55
|
+
this.focusIdx = Math.max(0, SCHEMES.indexOf(opts.startScheme));
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Receive bytes as a PTY would.
|
|
59
|
+
*
|
|
60
|
+
* @param data - Raw bytes
|
|
61
|
+
*/
|
|
62
|
+
write(data) {
|
|
63
|
+
let rest = data;
|
|
64
|
+
while (rest.length > 0) {
|
|
65
|
+
const seq = Object.keys(BYTES).find((b) => rest.startsWith(b));
|
|
66
|
+
const key = seq ? BYTES[seq] : 'Other';
|
|
67
|
+
rest = rest.slice(seq ? seq.length : 1);
|
|
68
|
+
this.keys.push(key);
|
|
69
|
+
this.press(key);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
press(key) {
|
|
73
|
+
if (key === 'CtrlC') {
|
|
74
|
+
this.screenName = 'exited';
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
if (this.screenName === 'color')
|
|
78
|
+
this.pressColor(key);
|
|
79
|
+
else if (this.screenName === 'terms')
|
|
80
|
+
this.pressTerms(key);
|
|
81
|
+
}
|
|
82
|
+
pressColor(key) {
|
|
83
|
+
const migration = Boolean(this.opts.migration);
|
|
84
|
+
if (this.focusZone === 'list') {
|
|
85
|
+
if (key === 'Up')
|
|
86
|
+
this.focusIdx = (this.focusIdx + SCHEMES.length - 1) % SCHEMES.length;
|
|
87
|
+
else if (key === 'Down')
|
|
88
|
+
this.focusIdx = (this.focusIdx + 1) % SCHEMES.length;
|
|
89
|
+
else if (key === 'Enter') {
|
|
90
|
+
this.chosen = SCHEMES[this.focusIdx];
|
|
91
|
+
if (migration)
|
|
92
|
+
this.focusZone = 'import';
|
|
93
|
+
else
|
|
94
|
+
this.screenName = 'terms';
|
|
95
|
+
}
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
if (this.focusZone === 'import') {
|
|
99
|
+
if (key === 'Enter' || key === 'Space')
|
|
100
|
+
this.importChecked = !this.importChecked;
|
|
101
|
+
else if (key === 'Down')
|
|
102
|
+
this.focusZone = 'next';
|
|
103
|
+
else if (key === 'Up') {
|
|
104
|
+
this.focusZone = 'list';
|
|
105
|
+
this.focusIdx = SCHEMES.length - 1;
|
|
106
|
+
this.chosen = null;
|
|
107
|
+
}
|
|
108
|
+
return;
|
|
109
|
+
}
|
|
110
|
+
if (key === 'Up')
|
|
111
|
+
this.focusZone = 'import';
|
|
112
|
+
else if (key === 'Enter')
|
|
113
|
+
this.screenName = 'terms';
|
|
114
|
+
}
|
|
115
|
+
pressTerms(key) {
|
|
116
|
+
if (this.termsFocus === 'data') {
|
|
117
|
+
if ((key === 'Enter' || key === 'Space') && !this.opts.stuckCheckbox)
|
|
118
|
+
this.dataChecked = !this.dataChecked;
|
|
119
|
+
else if (key === 'Down')
|
|
120
|
+
this.termsFocus = 'previous';
|
|
121
|
+
return;
|
|
122
|
+
}
|
|
123
|
+
if (key === 'Up')
|
|
124
|
+
this.termsFocus = 'data';
|
|
125
|
+
else if (key === 'Right')
|
|
126
|
+
this.termsFocus = 'done';
|
|
127
|
+
else if (key === 'Left')
|
|
128
|
+
this.termsFocus = 'previous';
|
|
129
|
+
else if (key === 'Enter') {
|
|
130
|
+
if (this.termsFocus === 'previous') {
|
|
131
|
+
this.screenName = 'color';
|
|
132
|
+
this.focusZone = 'list';
|
|
133
|
+
return;
|
|
134
|
+
}
|
|
135
|
+
this.doneCount += 1;
|
|
136
|
+
this.accepted = { scheme: this.chosen, importExtensions: this.importChecked, dataSharing: this.dataChecked };
|
|
137
|
+
this.screenName = 'main';
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
/** @returns The screen as text */
|
|
141
|
+
capture() {
|
|
142
|
+
switch (this.screenName) {
|
|
143
|
+
case 'main':
|
|
144
|
+
return [
|
|
145
|
+
' Antigravity CLI 1.2.14',
|
|
146
|
+
' Gemini API key',
|
|
147
|
+
'─'.repeat(60),
|
|
148
|
+
'> Accept-edits mode: file edits auto-approved (shift+tab to cycle)',
|
|
149
|
+
'─'.repeat(60),
|
|
150
|
+
'? for shortcuts accept-edits · Gemini 3.1 Pro · low',
|
|
151
|
+
].join('\n');
|
|
152
|
+
case 'exited':
|
|
153
|
+
return '$ ';
|
|
154
|
+
case 'login':
|
|
155
|
+
return ' Welcome to the Antigravity CLI. You are currently not signed in.\n\n Select login method:\n > 1. Google OAuth\n 2. Use a Google Cloud project';
|
|
156
|
+
case 'terms':
|
|
157
|
+
return this.renderTerms();
|
|
158
|
+
default:
|
|
159
|
+
return this.renderColor();
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
renderColor() {
|
|
163
|
+
const box = '│ > you: add a greeting function │';
|
|
164
|
+
const lines = [' ▄▀▀▄', '', 'Welcome to Antigravity CLI!', '', 'Choose your color scheme: ╭──────────────────────────╮'];
|
|
165
|
+
SCHEMES.forEach((name, i) => {
|
|
166
|
+
const focused = this.focusZone === 'list' && i === this.focusIdx;
|
|
167
|
+
const marker = focused ? '>' : this.chosen === name ? '*' : ' ';
|
|
168
|
+
lines.push(` ${marker} ${name}`.padEnd(33) + box);
|
|
169
|
+
});
|
|
170
|
+
lines.push(' ╰──────────────────────────╯', '');
|
|
171
|
+
if (this.opts.migration) {
|
|
172
|
+
lines.push('Migration options:');
|
|
173
|
+
const f = this.focusZone === 'import' ? '>' : ' ';
|
|
174
|
+
lines.push(` ${f} [${this.importChecked ? 'x' : ' '}] Import extensions from Gemini CLI (1 found: google-workspace)`, '');
|
|
175
|
+
lines.push(this.focusZone === 'next' ? ' > Next' : ' [Next]');
|
|
176
|
+
}
|
|
177
|
+
else {
|
|
178
|
+
lines.push(' [Next]');
|
|
179
|
+
}
|
|
180
|
+
lines.push('', ` ↑/↓ Navigate · enter ${this.focusZone === 'import' ? 'Toggle' : 'Confirm'}`);
|
|
181
|
+
return lines.join('\n');
|
|
182
|
+
}
|
|
183
|
+
renderTerms() {
|
|
184
|
+
const title = 'Terms of Service & Data Use';
|
|
185
|
+
const item = this.opts.changedTerms
|
|
186
|
+
? 'Allow Google to use my Interactions data to improve its products.'
|
|
187
|
+
: 'Yes, I agree to help improve Antigravity CLI by allowing';
|
|
188
|
+
const f = this.termsFocus === 'data' ? '>' : ' ';
|
|
189
|
+
const buttons = this.termsFocus === 'previous' ? ' > Previous [Done]' : this.termsFocus === 'done' ? ' [Previous] > Done' : ' [Previous] [Done]';
|
|
190
|
+
return [
|
|
191
|
+
' ▄▀▀▄',
|
|
192
|
+
'',
|
|
193
|
+
title,
|
|
194
|
+
'',
|
|
195
|
+
'AI coding agents are known to have certain security risks, including autonomous code execution, data exfiltration,',
|
|
196
|
+
'prompt injection and supply chain risks. Ensure that you monitor and verify all actions taken by the agent.',
|
|
197
|
+
'',
|
|
198
|
+
'-'.repeat(120),
|
|
199
|
+
'',
|
|
200
|
+
` ${f} [${this.dataChecked ? 'x' : ' '}] ${item}`,
|
|
201
|
+
' Google to collect and use my Interactions data,',
|
|
202
|
+
' subject to the Google Antigravity CLI Terms of Service',
|
|
203
|
+
' and Google Privacy Policy. I understand I can',
|
|
204
|
+
' choose to opt out later whenever I want via my',
|
|
205
|
+
' settings.',
|
|
206
|
+
'',
|
|
207
|
+
' Links:',
|
|
208
|
+
' - Terms of Service: https://antigravity.google/terms',
|
|
209
|
+
' - Privacy Policy: https://policies.google.com/privacy',
|
|
210
|
+
'',
|
|
211
|
+
buttons,
|
|
212
|
+
'',
|
|
213
|
+
'',
|
|
214
|
+
' ↑/↓ Navigate · enter Toggle',
|
|
215
|
+
].join('\n');
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
//# sourceMappingURL=fake-agy-tui.fixture.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fake-agy-tui.fixture.js","sourceRoot":"","sources":["../../../../../../backend/src/services/runtime-terms/fake-agy-tui.fixture.ts"],"names":[],"mappings":"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"}
|