@codeam/shared 2.75.2 → 2.75.4

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/index.mjs CHANGED
@@ -322,12 +322,34 @@ var AGENT_REGISTRY = {
322
322
  displayName: "Gemini CLI",
323
323
  binaryName: "gemini",
324
324
  enabled: true,
325
- // OAuth via `gemini auth login` (captured by `codeam link gemini`
326
- // from ~/.gemini/oauth_creds.json) AND GEMINI_API_KEY are both
327
- // accepted by the backend's GeminiProvisioningStrategy and propagated
328
- // into codespace deploys.
329
- supportedAuthKinds: ["oauth_token", "api_key"],
330
- preferredAuthKind: "oauth_token",
325
+ // ⚠️ API KEY ONLY since 2026-06-18, when Google stopped Gemini CLI (and the
326
+ // Gemini Code Assist IDE extensions) serving requests for AI Pro, AI Ultra
327
+ // and free users, in the move to Antigravity CLI. Its announcement is
328
+ // explicit about what survives: "Gemini CLI will remain accessible via paid
329
+ // Gemini and Gemini Enterprise Agent Platform API keys."
330
+ //
331
+ // So the agent stays — `@google/gemini-cli` is NOT deprecated, it still
332
+ // ships weekly — but the OAuth door has to go: it captures a
333
+ // `~/.gemini/oauth_creds.json` from a CONSUMER Google account, which is
334
+ // exactly the tier that no longer serves requests. We used to PREFER that
335
+ // path, so it was the one we recommended first; on 2026-09-15 prod held 63
336
+ // Gemini links, 46 of them OAuth, 19 created after 2026-09-01 and the
337
+ // newest that same day. Three months of sending people through a bricked
338
+ // door — each one landing on `isGeminiIneligibleTier` at first use.
339
+ //
340
+ // ⚠️ Antigravity CLI is NOT a drop-in replacement for us: no official ACP
341
+ // mode (google-antigravity/antigravity-cli#31 open, 192 comments, zero
342
+ // `acp` hits in the repo as of 2026-09-15), and every third-party ACP
343
+ // adapter warns that driving `agy` that way matches what Google's FAQ calls
344
+ // a ToS violation — risking the USER's Google account. Our whole Gemini
345
+ // path is ACP, so adopting it would mean shipping that risk. Revisit only
346
+ // when #31 ships an official mode.
347
+ //
348
+ // Existing OAuth rows are NOT migrated: `supportedAuthMethods` gates the
349
+ // LINK call only, so the 46 stay readable and simply keep failing at the
350
+ // provider, where the ineligible-tier message already explains why.
351
+ supportedAuthKinds: ["api_key"],
352
+ preferredAuthKind: "api_key",
331
353
  // Not listed by `headroom wrap --help` — runs native.
332
354
  headroomWrappable: false,
333
355
  // Native ACP server: `gemini --skip-trust --acp`.
@@ -1585,6 +1607,16 @@ var INTEGRATION_REGISTRY = {
1585
1607
  // tools ourselves via a BUILT-IN MCP (delivery.builtin) against that admin
1586
1608
  // API — see apps/cli/src/integrations/convex-admin-mcp.ts. The user still
1587
1609
  // pastes a deploy key (Dashboard → Project Settings → Deploy Keys).
1610
+ //
1611
+ // ⚠️ That built-in ALSO owns `deploy`, and it is the only way an agent can
1612
+ // push `convex/` changes. Deploying is bundle + push, not a REST call, so
1613
+ // that one tool drives Convex's own CLI with the deploy key injected into
1614
+ // THAT CHILD's env — the agent's shell never sees the credential. Before
1615
+ // it existed the agent had the credential's power through the MCP but no
1616
+ // way to deploy, so it looped on `npx convex dev` (interactive login) and
1617
+ // asked the user to paste the token into the chat; the user ended up
1618
+ // re-entering the SAME key by hand in Environment Variables, after burning
1619
+ // real credits (2026-09-15).
1588
1620
  enabled: true,
1589
1621
  auth: {
1590
1622
  kind: "api_key",
@@ -2499,6 +2531,26 @@ var AGENT_STANDARD_TEXT = `# Working standard
2499
2531
 
2500
2532
  You are an AI coding agent working on the user's project through CodeAgent Mobile. Follow this standard on every task.
2501
2533
 
2534
+ ## How to answer \u2014 you are being read on a PHONE
2535
+
2536
+ Your reply is read on a narrow screen, often one-handed, often while the user is doing something else. Length is a cost they pay. Write accordingly.
2537
+
2538
+ - **Lead with the answer.** First line = the result, the decision, or what changed. No preamble, no restating the request, no "Great question!", no narrating what you are about to do.
2539
+ - **Default to a few sentences.** Most replies fit in 1-2 short paragraphs or 3-6 tight bullets. A long reply is a deliberate choice you make because the task genuinely needs it \u2014 not the default.
2540
+ - **Say it once.** No summary of the summary, no closing paragraph that repeats the opening, no "let me know if you need anything else".
2541
+ - **Cut every word that carries no information** \u2014 hedges, filler adverbs, throat-clearing, and praise for the question.
2542
+ - **Expand when asked.** "Explain in detail", "walk me through it", "why?" are requests for depth: give it fully. Brevity is the default, not a ceiling.
2543
+
2544
+ **Formatting for a narrow screen:**
2545
+ - Short paragraphs (1-3 sentences). Bullets over prose for anything that is a list. Never a wall of text.
2546
+ - **No wide tables** \u2014 they force horizontal scrolling and become unreadable. Use bullets, or at most two columns.
2547
+ - Code blocks only when the user needs the exact characters (a command to run, the changed lines). Show the relevant lines, not the whole file. Keep lines short so they don't wrap badly.
2548
+ - File references as \`path/to/file.ts:42\`, not pasted paths inside long prose.
2549
+ - Bold sparingly, for the one thing that matters in a block. Headings only when the reply genuinely has multiple sections.
2550
+ - No ASCII art, no banners, no decorative separators, no emoji unless the user uses them first.
2551
+
2552
+ **Compress evidence, don't drop it.** Report the outcome, not the transcript: "tests: 128/128 green", "build failed \u2014 \`TS2322\` in \`api/client.ts:80\`". Paste raw output only when the user needs to read it themselves, and only the relevant lines.
2553
+
2502
2554
  ## How to work
2503
2555
  - **Understand before acting.** Restate the goal, read the relevant code, and be clear on what "done" looks like before changing anything.
2504
2556
  - **Plan first for anything non-trivial** (3+ steps or a design decision): outline the approach and the files you'll touch, and share it before implementing. Skip the ceremony for small, obvious fixes.