@geteigen/cli 0.0.0-stage → 3.0.0

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 (168) hide show
  1. package/README.md +154 -2
  2. package/dist/agent.d.ts +32 -0
  3. package/dist/agent.js +246 -0
  4. package/dist/auth.d.ts +5 -0
  5. package/dist/auth.js +33 -0
  6. package/dist/cli/src/agent.d.ts +24 -0
  7. package/dist/cli/src/agent.js +260 -0
  8. package/dist/cli/src/agentTools.d.ts +10 -0
  9. package/dist/cli/src/agentTools.js +70 -0
  10. package/dist/cli/src/auth.d.ts +5 -0
  11. package/dist/cli/src/auth.js +33 -0
  12. package/dist/cli/src/config.d.ts +11 -0
  13. package/dist/cli/src/config.js +51 -0
  14. package/dist/cli/src/cursorAuth.d.ts +10 -0
  15. package/dist/cli/src/cursorAuth.js +92 -0
  16. package/dist/cli/src/index.d.ts +2 -0
  17. package/dist/cli/src/index.js +244 -0
  18. package/dist/cli/src/listModels.d.ts +14 -0
  19. package/dist/cli/src/listModels.js +196 -0
  20. package/dist/cli/src/listSessions.d.ts +9 -0
  21. package/dist/cli/src/listSessions.js +37 -0
  22. package/dist/cli/src/machineConfig.d.ts +20 -0
  23. package/dist/cli/src/machineConfig.js +66 -0
  24. package/dist/cli/src/pickFolder.d.ts +5 -0
  25. package/dist/cli/src/pickFolder.js +65 -0
  26. package/dist/cli/src/proc.d.ts +23 -0
  27. package/dist/cli/src/proc.js +77 -0
  28. package/dist/cli/src/service.d.ts +17 -0
  29. package/dist/cli/src/service.js +246 -0
  30. package/dist/cli/src/workRoots.d.ts +30 -0
  31. package/dist/cli/src/workRoots.js +221 -0
  32. package/dist/cli/src/worker.d.ts +8 -0
  33. package/dist/cli/src/worker.js +51 -0
  34. package/dist/cli/src/workerCore.d.ts +47 -0
  35. package/dist/cli/src/workerCore.js +702 -0
  36. package/dist/cli/src/workspace.d.ts +8 -0
  37. package/dist/cli/src/workspace.js +269 -0
  38. package/dist/config.d.ts +11 -0
  39. package/dist/config.js +51 -0
  40. package/dist/cursorAuth.d.ts +10 -0
  41. package/dist/cursorAuth.js +95 -0
  42. package/dist/index.d.ts +2 -0
  43. package/dist/index.js +108 -0
  44. package/dist/listModels.d.ts +6 -0
  45. package/dist/listModels.js +62 -0
  46. package/dist/listSessions.d.ts +9 -0
  47. package/dist/listSessions.js +37 -0
  48. package/dist/pickFolder.d.ts +5 -0
  49. package/dist/pickFolder.js +65 -0
  50. package/dist/shared/actionDrafts.d.ts +83 -0
  51. package/dist/shared/actionDrafts.js +169 -0
  52. package/dist/shared/agentArtifacts.d.ts +49 -0
  53. package/dist/shared/agentArtifacts.js +169 -0
  54. package/dist/shared/agentLabel.d.ts +18 -0
  55. package/dist/shared/agentLabel.js +22 -0
  56. package/dist/shared/agentMentions.d.ts +38 -0
  57. package/dist/shared/agentMentions.js +110 -0
  58. package/dist/shared/agentRepos.d.ts +28 -0
  59. package/dist/shared/agentRepos.js +60 -0
  60. package/dist/shared/agentRunStatus.d.ts +12 -0
  61. package/dist/shared/agentRunStatus.js +17 -0
  62. package/dist/shared/agentUsage.d.ts +24 -0
  63. package/dist/shared/agentUsage.js +139 -0
  64. package/dist/shared/approvals.d.ts +44 -0
  65. package/dist/shared/approvals.js +97 -0
  66. package/dist/shared/askEigen.d.ts +190 -0
  67. package/dist/shared/askEigen.js +76 -0
  68. package/dist/shared/attribution.d.ts +25 -0
  69. package/dist/shared/attribution.js +63 -0
  70. package/dist/shared/automations.d.ts +136 -0
  71. package/dist/shared/automations.js +546 -0
  72. package/dist/shared/backends/claudeCode.d.ts +42 -0
  73. package/dist/shared/backends/claudeCode.js +540 -0
  74. package/dist/shared/backends/codex.d.ts +15 -0
  75. package/dist/shared/backends/codex.js +287 -0
  76. package/dist/shared/backends/cursor.d.ts +102 -0
  77. package/dist/shared/backends/cursor.js +1197 -0
  78. package/dist/shared/backends/index.d.ts +18 -0
  79. package/dist/shared/backends/index.js +58 -0
  80. package/dist/shared/backends/opencode.d.ts +40 -0
  81. package/dist/shared/backends/opencode.js +397 -0
  82. package/dist/shared/backends/types.d.ts +171 -0
  83. package/dist/shared/backends/types.js +19 -0
  84. package/dist/shared/backends/usage.d.ts +8 -0
  85. package/dist/shared/backends/usage.js +71 -0
  86. package/dist/shared/billingPlans.d.ts +60 -0
  87. package/dist/shared/billingPlans.js +262 -0
  88. package/dist/shared/brain.d.ts +353 -0
  89. package/dist/shared/brain.js +487 -0
  90. package/dist/shared/clarifyingQuestions.d.ts +13 -0
  91. package/dist/shared/clarifyingQuestions.js +207 -0
  92. package/dist/shared/claudeModels.d.ts +10 -0
  93. package/dist/shared/claudeModels.js +52 -0
  94. package/dist/shared/cloudBackends.d.ts +21 -0
  95. package/dist/shared/cloudBackends.js +29 -0
  96. package/dist/shared/codexModels.d.ts +10 -0
  97. package/dist/shared/codexModels.js +28 -0
  98. package/dist/shared/contextWindows.d.ts +2 -0
  99. package/dist/shared/contextWindows.js +30 -0
  100. package/dist/shared/cursorMcpConfig.d.ts +14 -0
  101. package/dist/shared/cursorMcpConfig.js +43 -0
  102. package/dist/shared/cursorProjectMcp.d.ts +10 -0
  103. package/dist/shared/cursorProjectMcp.js +42 -0
  104. package/dist/shared/docs.d.ts +59 -0
  105. package/dist/shared/docs.js +87 -0
  106. package/dist/shared/events.d.ts +929 -0
  107. package/dist/shared/events.js +59 -0
  108. package/dist/shared/integrations.d.ts +266 -0
  109. package/dist/shared/integrations.js +449 -0
  110. package/dist/shared/issueTranscript.d.ts +64 -0
  111. package/dist/shared/issueTranscript.js +387 -0
  112. package/dist/shared/issues.d.ts +139 -0
  113. package/dist/shared/issues.js +217 -0
  114. package/dist/shared/machines.d.ts +115 -0
  115. package/dist/shared/machines.js +58 -0
  116. package/dist/shared/markdownMedia.d.ts +13 -0
  117. package/dist/shared/markdownMedia.js +41 -0
  118. package/dist/shared/notificationText.d.ts +6 -0
  119. package/dist/shared/notificationText.js +38 -0
  120. package/dist/shared/opencodeModels.d.ts +19 -0
  121. package/dist/shared/opencodeModels.js +62 -0
  122. package/dist/shared/opencodeSession.d.ts +7 -0
  123. package/dist/shared/opencodeSession.js +30 -0
  124. package/dist/shared/orchestration.d.ts +58 -0
  125. package/dist/shared/orchestration.js +12 -0
  126. package/dist/shared/orgs.d.ts +47 -0
  127. package/dist/shared/orgs.js +49 -0
  128. package/dist/shared/personalOrg.d.ts +5 -0
  129. package/dist/shared/personalOrg.js +12 -0
  130. package/dist/shared/plans.d.ts +3 -0
  131. package/dist/shared/plans.js +19 -0
  132. package/dist/shared/providerModels.d.ts +40 -0
  133. package/dist/shared/providerModels.js +503 -0
  134. package/dist/shared/roomAttention.d.ts +17 -0
  135. package/dist/shared/roomAttention.js +36 -0
  136. package/dist/shared/roomContext.d.ts +120 -0
  137. package/dist/shared/roomContext.js +133 -0
  138. package/dist/shared/roomPermissions.d.ts +56 -0
  139. package/dist/shared/roomPermissions.js +133 -0
  140. package/dist/shared/sessionSeats.d.ts +29 -0
  141. package/dist/shared/sessionSeats.js +57 -0
  142. package/dist/shared/slashCommands.d.ts +39 -0
  143. package/dist/shared/slashCommands.js +166 -0
  144. package/dist/shared/space.d.ts +33 -0
  145. package/dist/shared/space.js +54 -0
  146. package/dist/shared/spaceFeed.d.ts +78 -0
  147. package/dist/shared/spaceFeed.js +194 -0
  148. package/dist/shared/stringifyUnknown.d.ts +1 -0
  149. package/dist/shared/stringifyUnknown.js +1 -0
  150. package/dist/shared/swarm.d.ts +320 -0
  151. package/dist/shared/swarm.js +328 -0
  152. package/dist/shared/swarmVisual.d.ts +79 -0
  153. package/dist/shared/swarmVisual.js +212 -0
  154. package/dist/shared/terminalFilter.d.ts +13 -0
  155. package/dist/shared/terminalFilter.js +46 -0
  156. package/dist/shared/toolIntegration.d.ts +56 -0
  157. package/dist/shared/toolIntegration.js +180 -0
  158. package/dist/shared/typing.d.ts +9 -0
  159. package/dist/shared/typing.js +37 -0
  160. package/dist/shared/uploads.d.ts +31 -0
  161. package/dist/shared/uploads.js +65 -0
  162. package/dist/shared/voiceApprovals.d.ts +36 -0
  163. package/dist/shared/voiceApprovals.js +229 -0
  164. package/dist/shared/workspace.d.ts +47 -0
  165. package/dist/shared/workspace.js +40 -0
  166. package/dist/worker.d.ts +1 -0
  167. package/dist/worker.js +266 -0
  168. package/package.json +51 -4
@@ -0,0 +1,12 @@
1
+ export const ORCHESTRATION_BATCH_KINDS = [
2
+ "linear_import",
3
+ "spawn_issue",
4
+ "spawn_room_agent",
5
+ ];
6
+ export const ORCHESTRATION_ITEM_OUTCOMES = [
7
+ "created",
8
+ "skipped",
9
+ "spawned",
10
+ "assigned",
11
+ "error",
12
+ ];
@@ -0,0 +1,47 @@
1
+ export type OrgRole = "owner" | "admin" | "member";
2
+ export interface OrgInfo {
3
+ id: string;
4
+ name: string;
5
+ slug: string;
6
+ /** Comma-separated email domains that may auto-join (e.g. "acme.com,acme.io"). */
7
+ allowedDomains: string[];
8
+ createdBy: string;
9
+ createdAt: number;
10
+ /** Current user's role in this org. */
11
+ role: OrgRole;
12
+ memberCount: number;
13
+ /** Masked Cursor key hint when an org shared key is configured. */
14
+ cursorKeyHint?: string | null;
15
+ cursorKeyConfigured: boolean;
16
+ /** Masked Anthropic key hint when an org shared key is configured. */
17
+ anthropicKeyHint?: string | null;
18
+ anthropicKeyConfigured: boolean;
19
+ /** Auto-created solo workspace (sidebar “Personal”). */
20
+ isPersonal?: boolean;
21
+ }
22
+ export interface OrgMemberInfo {
23
+ userId: string;
24
+ email: string;
25
+ name: string;
26
+ role: OrgRole;
27
+ createdAt: number;
28
+ avatarUrl?: string | null;
29
+ }
30
+ export interface OrgInviteInfo {
31
+ code: string;
32
+ orgId: string;
33
+ createdBy: string;
34
+ role: OrgRole;
35
+ createdAt: number;
36
+ maxUses: number | null;
37
+ useCount: number;
38
+ expiresAt: number | null;
39
+ }
40
+ export declare function normalizeEmailDomain(email: string): string;
41
+ export declare function parseAllowedDomains(raw: string | null | undefined): string[];
42
+ export declare function formatAllowedDomains(domains: string[]): string;
43
+ export declare function canManageOrg(role: OrgRole | null | undefined): boolean;
44
+ export declare function orgRoleLabel(role: OrgRole): string;
45
+ /** Short permission blurb for the team settings UI. */
46
+ export declare function orgRoleDescription(role: OrgRole): string;
47
+ export declare function slugifyOrgName(name: string): string;
@@ -0,0 +1,49 @@
1
+ export function normalizeEmailDomain(email) {
2
+ const at = email.lastIndexOf("@");
3
+ if (at < 0)
4
+ return "";
5
+ return email.slice(at + 1).trim().toLowerCase();
6
+ }
7
+ export function parseAllowedDomains(raw) {
8
+ if (!raw?.trim())
9
+ return [];
10
+ return raw
11
+ .split(/[,\s]+/)
12
+ .map((d) => d.trim().toLowerCase().replace(/^@/, ""))
13
+ .filter(Boolean);
14
+ }
15
+ export function formatAllowedDomains(domains) {
16
+ return domains
17
+ .map((d) => d.trim().toLowerCase().replace(/^@/, ""))
18
+ .filter(Boolean)
19
+ .join(",");
20
+ }
21
+ export function canManageOrg(role) {
22
+ return role === "owner" || role === "admin";
23
+ }
24
+ export function orgRoleLabel(role) {
25
+ if (role === "owner")
26
+ return "Owner";
27
+ if (role === "admin")
28
+ return "Admin";
29
+ return "Member";
30
+ }
31
+ /** Short permission blurb for the team settings UI. */
32
+ export function orgRoleDescription(role) {
33
+ if (role === "owner") {
34
+ return "Full control — transfer ownership and delete the team";
35
+ }
36
+ if (role === "admin") {
37
+ return "Manage keys, invites, and member roles";
38
+ }
39
+ return "Create and join team sessions";
40
+ }
41
+ export function slugifyOrgName(name) {
42
+ const base = name
43
+ .trim()
44
+ .toLowerCase()
45
+ .replace(/[^a-z0-9]+/g, "-")
46
+ .replace(/^-+|-+$/g, "")
47
+ .slice(0, 48);
48
+ return base || "team";
49
+ }
@@ -0,0 +1,5 @@
1
+ /** Default solo workspace — a real org row, not a null org_id. */
2
+ export declare const PERSONAL_ORG_ID_PREFIX = "pers_";
3
+ export declare function personalOrganizationId(userId: string): string;
4
+ export declare function isPersonalOrganizationId(orgId: string | null | undefined): boolean;
5
+ export declare function personalOrganizationSlug(userId: string): string;
@@ -0,0 +1,12 @@
1
+ /** Default solo workspace — a real org row, not a null org_id. */
2
+ export const PERSONAL_ORG_ID_PREFIX = "pers_";
3
+ export function personalOrganizationId(userId) {
4
+ return `${PERSONAL_ORG_ID_PREFIX}${userId}`;
5
+ }
6
+ export function isPersonalOrganizationId(orgId) {
7
+ return Boolean(orgId?.startsWith(PERSONAL_ORG_ID_PREFIX));
8
+ }
9
+ export function personalOrganizationSlug(userId) {
10
+ const safe = userId.toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-|-$/g, "");
11
+ return `personal-${safe || "user"}`.slice(0, 80);
12
+ }
@@ -0,0 +1,3 @@
1
+ /** Whether an assistant reply looks like a finished plan document. */
2
+ export declare function looksLikePlan(content: string): boolean;
3
+ export declare function planImplementPrompt(plan: string): string;
@@ -0,0 +1,19 @@
1
+ /** Whether an assistant reply looks like a finished plan document. */
2
+ export function looksLikePlan(content) {
3
+ const t = content.trim();
4
+ if (t.length < 80)
5
+ return false;
6
+ if (/^#{1,3}\s/m.test(t))
7
+ return true;
8
+ if (/\b(plan|steps?|implementation|proposal|approach)\b/i.test(t))
9
+ return true;
10
+ return t.length >= 240;
11
+ }
12
+ export function planImplementPrompt(plan) {
13
+ return [
14
+ "The plan below was approved by the room. Exit plan/read-only mode and implement it now.",
15
+ "Do not ask for approval again for this plan. Start making the changes.",
16
+ "",
17
+ plan.trim(),
18
+ ].join("\n");
19
+ }
@@ -0,0 +1,40 @@
1
+ import type { ModelInfo } from "./events.js";
2
+ export declare function displayNameFromId(id: string): string;
3
+ /** First list wins id + display name; later lists only append new ids. */
4
+ export declare function mergeModelLists(...lists: Array<ModelInfo[] | undefined | null>): ModelInfo[];
5
+ /** Keep a currently-selected id visible in the picker even if the catalog moved on. */
6
+ export declare function ensureModelPresent(models: ModelInfo[], modelId?: string | null): ModelInfo[];
7
+ export declare function parseAnthropicModelsResponse(json: unknown): ModelInfo[];
8
+ export declare function parseOpenaiModelsResponse(json: unknown): ModelInfo[];
9
+ /** Parse `codex debug models` — JSON, "id — label" lines, or bare ids. */
10
+ export declare function parseCodexDebugModels(stdout: string): ModelInfo[];
11
+ export declare function fetchAnthropicModels(apiKey: string): Promise<ModelInfo[]>;
12
+ export declare function fetchOpenaiCodingModels(apiKey: string): Promise<ModelInfo[]>;
13
+ export interface OpencodeCatalog {
14
+ models: ModelInfo[];
15
+ /**
16
+ * `provider/model` ids that run with no API key at all: the zero-cost
17
+ * models served by OpenCode's own gateway (the `opencode` provider).
18
+ */
19
+ keylessModelIds: Set<string>;
20
+ }
21
+ /** Sync peek for keyless checks in hot paths (null until the first fetch). */
22
+ export declare function cachedOpencodeCatalog(): OpencodeCatalog | null;
23
+ export declare function parseModelsDevCatalog(json: unknown): OpencodeCatalog;
24
+ /**
25
+ * models.dev keeps free gateway models long after OpenCode retires them, and
26
+ * the CLI answers those with "Unexpected server error". Keep only the free
27
+ * ones the gateway still lists.
28
+ */
29
+ export declare function applyOpencodeZenModels(catalog: OpencodeCatalog, zenIds: string[] | null): OpencodeCatalog;
30
+ /** Full OpenCode model database (models.dev), cached 6 h and stale-safe. */
31
+ export declare function fetchOpencodeCatalog(): Promise<OpencodeCatalog>;
32
+ /** Underlying lab for an `opencode/<slug>` free model. */
33
+ export declare function opencodeFreeModelGroup(id: string): string;
34
+ /**
35
+ * Preferred free defaults on OpenCode's own gateway (no API key).
36
+ */
37
+ export declare const OPENCODE_FREE_PICKER_PREFERENCES: string[];
38
+ export declare function firstKeylessFreeOpencodeModel(): string | null;
39
+ /** Only OpenCode-gateway free models, grouped by provider. */
40
+ export declare function opencodePickerModels(catalog: OpencodeCatalog): ModelInfo[];