@codeam/shared 2.76.15 → 2.76.17
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.d.mts +116 -2
- package/dist/index.d.ts +116 -2
- package/dist/index.js +47 -3
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +42 -3
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.d.mts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
|
|
1
3
|
/**
|
|
2
4
|
* Protocol-level types for TUI chrome steps and interactive selectors.
|
|
3
5
|
*
|
|
@@ -1502,6 +1504,22 @@ interface PreviewScriptCandidate {
|
|
|
1502
1504
|
}
|
|
1503
1505
|
type PreviewState = 'idle' | 'detection_pending' | 'detection_ready' | 'starting' | 'running' | 'error';
|
|
1504
1506
|
type PreviewErrorStage = 'detection' | 'spawn' | 'tunnel' | 'ready_timeout' | 'unsupported';
|
|
1507
|
+
/**
|
|
1508
|
+
* Machine-readable code on a `preview_error`, for errors the apps route to a
|
|
1509
|
+
* specific action instead of "Try again". `CREDITS_EXHAUSTED` = the managed
|
|
1510
|
+
* agent's detect one-shot was refused by our agent-proxy with a 402 (prepaid
|
|
1511
|
+
* wallet at 0) — the apps open top-up; a retry would hit the same 402.
|
|
1512
|
+
* Additive: older CLIs omit it.
|
|
1513
|
+
*/
|
|
1514
|
+
type PreviewErrorCode = 'CREDITS_EXHAUSTED';
|
|
1515
|
+
/**
|
|
1516
|
+
* WHY a `stage: 'detection'` / `'unsupported'` preview_error happened —
|
|
1517
|
+
* telemetry only (`preview_lifecycle.error_reason`), never user copy, never
|
|
1518
|
+
* the agent's raw output. Each value has a different fix, which is the point:
|
|
1519
|
+
* five unexplained detection failures in a row (codeagent-qrk1) could not be
|
|
1520
|
+
* told apart.
|
|
1521
|
+
*/
|
|
1522
|
+
type PreviewErrorReason = 'empty_project' | 'no_oneshot' | 'timeout' | 'no_output' | 'no_json' | 'missing_fields' | 'provider_credits' | 'credits_exhausted' | 'unsupported';
|
|
1505
1523
|
/**
|
|
1506
1524
|
* Un servicio que el proyecto necesita y que NO pudimos levantarle.
|
|
1507
1525
|
*
|
|
@@ -1543,6 +1561,7 @@ interface PreviewStatus {
|
|
|
1543
1561
|
error?: {
|
|
1544
1562
|
stage: PreviewErrorStage;
|
|
1545
1563
|
message: string;
|
|
1564
|
+
code?: PreviewErrorCode;
|
|
1546
1565
|
};
|
|
1547
1566
|
/**
|
|
1548
1567
|
* Servicios que el proyecto pide y no estan sirviendo.
|
|
@@ -1890,6 +1909,12 @@ interface StartTaskPayload {
|
|
|
1890
1909
|
}>;
|
|
1891
1910
|
/** Internal runtime id. Present + ≠ active agent → the runner swaps before running. */
|
|
1892
1911
|
agentId?: string;
|
|
1912
|
+
/**
|
|
1913
|
+
* The app's device locale (BCP-47, e.g. `es-CO`, `id-ID`). Optional — older
|
|
1914
|
+
* apps omit it. The CLI tells the agent to reply in that language on its
|
|
1915
|
+
* first turn, so the user doesn't spend a task stating it.
|
|
1916
|
+
*/
|
|
1917
|
+
locale?: string;
|
|
1893
1918
|
}
|
|
1894
1919
|
/**
|
|
1895
1920
|
* `result` of a `start_task` acked `failed` (POST /api/commands/result).
|
|
@@ -2141,7 +2166,16 @@ interface StarterPrompt {
|
|
|
2141
2166
|
label: string;
|
|
2142
2167
|
prompt: string;
|
|
2143
2168
|
}
|
|
2144
|
-
/**
|
|
2169
|
+
/**
|
|
2170
|
+
* Composer starters for an empty scratch Box session (D12/§4.3).
|
|
2171
|
+
*
|
|
2172
|
+
* Every starter must BUILD something on its first turn and end with the
|
|
2173
|
+
* preview open: on FREE each send is one of 3 daily tasks, and a starter that
|
|
2174
|
+
* only asks a question or lists ideas spends one with nothing to show
|
|
2175
|
+
* (replays 2026-10-05: "give me three quick ideas" → ideas + "Which one?"
|
|
2176
|
+
* (shokhanahmadi61); "ask me the business name first" → "I'll need a business
|
|
2177
|
+
* name" (deepak.namdeo81)). Ask for details AFTER the first build, not before.
|
|
2178
|
+
*/
|
|
2145
2179
|
declare const SCRATCH_STARTER_PROMPTS: readonly StarterPrompt[];
|
|
2146
2180
|
declare const SCRATCH_ZIP_FREE_LIMIT_BYTES = 104857600;
|
|
2147
2181
|
declare const SCRATCH_ZIP_WIFI_HINT_BYTES = 209715200;
|
|
@@ -2167,6 +2201,46 @@ type ScratchExportResult = {
|
|
|
2167
2201
|
}>;
|
|
2168
2202
|
};
|
|
2169
2203
|
|
|
2204
|
+
/**
|
|
2205
|
+
* Session blocker — a TYPED tag on the terminal chat bubble of a turn that
|
|
2206
|
+
* cannot run ("you're out of credits", "Cursor needs a paid plan", …).
|
|
2207
|
+
*
|
|
2208
|
+
* The bubble itself stays prose (every client renders it as markdown). This
|
|
2209
|
+
* tag rides NEXT to it on the `{type:'text', done:true}` output chunk as
|
|
2210
|
+
* `blocker`, so mobile/web can attach the right escape-route buttons from the
|
|
2211
|
+
* kind instead of regex-matching the CLI's wording — which drifted silently:
|
|
2212
|
+
* the apps matched "reached your daily CodeAgent Cloud limit" while the CLI
|
|
2213
|
+
* had long been saying "You’ve reached today’s agent usage limit", so the
|
|
2214
|
+
* CLI-built house-limit bubble never got its buttons (codeagent-gfip).
|
|
2215
|
+
*
|
|
2216
|
+
* CANONICAL WIRE OWNER: this file. The apps keep their regex only as the
|
|
2217
|
+
* fallback for chunks from CLIs that predate the tag.
|
|
2218
|
+
*/
|
|
2219
|
+
declare const SESSION_BLOCKER_KINDS: readonly ["house_agent_limit", "house_agent_unavailable", "agent_plan_required", "agent_auth_failed", "credits_exhausted", "provider_credits_exhausted", "agent_startup_failed"];
|
|
2220
|
+
type SessionBlockerKind = (typeof SESSION_BLOCKER_KINDS)[number];
|
|
2221
|
+
interface SessionBlocker {
|
|
2222
|
+
kind: SessionBlockerKind;
|
|
2223
|
+
/** Agent the blocker is about (registry id or label), when known. */
|
|
2224
|
+
agentId?: string;
|
|
2225
|
+
/** Provider name for `provider_credits_exhausted` (e.g. `OpenRouter`). */
|
|
2226
|
+
provider?: string;
|
|
2227
|
+
}
|
|
2228
|
+
declare const SessionBlockerSchema: z.ZodObject<{
|
|
2229
|
+
kind: z.ZodEnum<{
|
|
2230
|
+
credits_exhausted: "credits_exhausted";
|
|
2231
|
+
house_agent_limit: "house_agent_limit";
|
|
2232
|
+
house_agent_unavailable: "house_agent_unavailable";
|
|
2233
|
+
agent_plan_required: "agent_plan_required";
|
|
2234
|
+
agent_auth_failed: "agent_auth_failed";
|
|
2235
|
+
provider_credits_exhausted: "provider_credits_exhausted";
|
|
2236
|
+
agent_startup_failed: "agent_startup_failed";
|
|
2237
|
+
}>;
|
|
2238
|
+
agentId: z.ZodOptional<z.ZodString>;
|
|
2239
|
+
provider: z.ZodOptional<z.ZodString>;
|
|
2240
|
+
}, z.core.$strip>;
|
|
2241
|
+
/** Validate an untrusted `blocker` field off the wire; `null` when absent or malformed. */
|
|
2242
|
+
declare function toSessionBlocker(raw: unknown): SessionBlocker | null;
|
|
2243
|
+
|
|
2170
2244
|
/**
|
|
2171
2245
|
* Prompt the CLI sends to the user's linked agent (Claude, Codex, …)
|
|
2172
2246
|
* in a headless one-shot to detect how to start the project's dev
|
|
@@ -2179,4 +2253,44 @@ type ScratchExportResult = {
|
|
|
2179
2253
|
*/
|
|
2180
2254
|
declare const PREVIEW_DETECT_PROMPT: string;
|
|
2181
2255
|
|
|
2182
|
-
|
|
2256
|
+
/**
|
|
2257
|
+
* The agents report — `POST /api/plugin/agents` (plugin → backend) and
|
|
2258
|
+
* `GET /api/plugin/agents?pluginId=` (app → backend).
|
|
2259
|
+
*
|
|
2260
|
+
* CANONICAL WIRE OWNER: this file (`@codeam/shared`), per the cross-repo rule.
|
|
2261
|
+
* The backend stores each entry verbatim and hands it back to the app.
|
|
2262
|
+
*/
|
|
2263
|
+
/**
|
|
2264
|
+
* Whether the reported agent can actually answer a prompt on this host.
|
|
2265
|
+
*
|
|
2266
|
+
* WHY (codeagent-04jp, 2026-10-02): a local session whose agent could not run
|
|
2267
|
+
* (Claude Code not signed in on the user's computer) read "The host isn't
|
|
2268
|
+
* responding" in the app — the only signal was silence. The plugin now says
|
|
2269
|
+
* what it knows, so the app can offer the real fix ("sign in on your computer"
|
|
2270
|
+
* or "use CodeAgent credits instead").
|
|
2271
|
+
*
|
|
2272
|
+
* - `ready` — the agent started and accepted a session.
|
|
2273
|
+
* - `not_installed` — the agent's binary/adapter is missing on the host.
|
|
2274
|
+
* - `not_signed_in` — the agent is installed but has no usable login/key.
|
|
2275
|
+
* - `failed` — it was installed and signed in, and still failed to start.
|
|
2276
|
+
*
|
|
2277
|
+
* Optional on the wire: older plugins never send it, and its absence means
|
|
2278
|
+
* "unknown", never `ready`.
|
|
2279
|
+
*/
|
|
2280
|
+
declare const PLUGIN_AGENT_STATUSES: readonly ["ready", "not_installed", "not_signed_in", "failed"];
|
|
2281
|
+
type PluginAgentStatus = (typeof PLUGIN_AGENT_STATUSES)[number];
|
|
2282
|
+
declare function isPluginAgentStatus(x: unknown): x is PluginAgentStatus;
|
|
2283
|
+
/** One entry of the agents report. */
|
|
2284
|
+
interface PluginAgentReport {
|
|
2285
|
+
/** Runtime agent id (`claude`, `codex`, …) — NOT the public linked id. */
|
|
2286
|
+
id: string;
|
|
2287
|
+
name: string;
|
|
2288
|
+
/** Icon key — the apps key their logo map by agent id. */
|
|
2289
|
+
icon: string;
|
|
2290
|
+
installed: boolean;
|
|
2291
|
+
isTerminal?: boolean;
|
|
2292
|
+
/** See {@link PluginAgentStatus}. Absent = unknown (older plugin). */
|
|
2293
|
+
status?: PluginAgentStatus;
|
|
2294
|
+
}
|
|
2295
|
+
|
|
2296
|
+
export { AGENT_REGISTRY, AGENT_STANDARD_BLOCK, AGENT_STANDARD_MARKER, AGENT_STANDARD_TEXT, type AgentAuth, type AgentAuthKind, type AgentId, type AgentMetadata, type AgentMode, type AgentModel, type AgentReviewFinding, type AgentReviewPlan, type AgentReviewReport, type AnswerResolvedEvent, type AwaitingAnswerEvent, type AwaitingAnswerOption, type BeadsActionCommand, type BeadsActionKind, type BeadsActionPayload, type BeadsActionRequest, type BeadsActionType, type BeadsConfigureAction, type BeadsDependencyDto, type BeadsDependencyKind, type BeadsIngestPayload, type BeadsIssueDto, type BeadsIssueStatus, type BeadsMemoryDto, type BeadsProjectDto, type BeadsProvisioningPayload, type BeadsProvisioningStatus, type BeadsSnapshotDto, type BeadsStatus, type BeadsStatusState, type BeadsStatusSummary, type BlameLineWire, type BrokeredIntegrationToken, CODER_PROMPT, type ChromeStep, type ChromeToolType, type CommitEntryWire, DEFAULT_API_BASE_URL, DEFAULT_GUARDRAIL_POLICY, DEPLOY_CHOICE_ORDER, DEP_TO_INTEGRATION, DEV_API_BASE_URL, type DeployChoice, type DerivedCredentialSource, type EnvVar, type FileBlameEvent, type FileChangeStatus, type FileChangedEvent, type FileHistoryEvent, type FileReviewStatus, GUARDRAIL_CATEGORIES, GUARDRAIL_CATEGORY_META, GUARDRAIL_CONFIGURE_COMMAND, GUARDRAIL_DISPOSITIONS, type GuardrailCategory, type GuardrailCategoryMeta, type GuardrailDisposition, type GuardrailPolicy, HANDOFF_FENCE_TAG, HEARTBEAT_INTERVAL_MS_DEFAULT, HOUSE_AGENT_ID, HOUSE_AGENT_NAME, HOUSE_AGENT_PROVIDER, HOUSE_AGENT_SUBTITLE, HOUSE_AGENT_VENDOR, type HandoffProposal, type HandoffResolution, type HunkLineType, INSTALL_SNIPPETS, INTEGRATION_BRANDING, INTEGRATION_REGISTRY, INTERNAL_TO_PUBLIC, type InputSuggestionChunk, type IntegrationApiKeyField, type IntegrationAuthKind, type IntegrationBranding, type IntegrationCategory, type IntegrationDefinition, type IntegrationDelivery, type IntegrationHealth, type IntegrationId, type IntegrationMcpDelivery, type IntegrationStatus, type IntegrationsManifest, type IntegrationsManifestEntry, LINKED_AGENT_IDS, type LinkedAgentId, MANAGED_AGENT_ENV, MANAGED_AGENT_SUBTITLE, MANAGED_PROVIDER_DISPLAY_NAMES, MANAGED_PROVIDER_IDS, MAX_PACK_FINDINGS, MODEL_CONTEXT_WINDOW, MODEL_PRICING, type ManagedProviderId, type MissingService, type ModelPricing, type NormalizedMessage, OBSERVER_BRIDGE_PORT, PACK_ACTION_COMMAND, PACK_FINDINGS_FILE, PACK_HANDOFF_HEADING, PACK_REGISTRY, PACK_START_COMMAND, PACK_STATUS_COMMAND, PACK_WORKFLOW_ARTICLE, PLUGIN_AGENT_STATUSES, PREVIEW_DETECT_PROMPT, PROTOCOL_VERSION, PUBLIC_TO_INTERNAL, type PackActionKind, type PackActionPayload, type PackDefinition, type PackFinding, type PackFindingResolution, type PackFindingSeverity, type PackFindingsParseResult, type PackHandoffRecord, type PackId, type PackPendingControl, type PackRunState, type PackRunStatus, type PackStageDef, type PackStageState, type PackStageStatus, type PackStartPayload, type ParsedPackFindings, type PendingReviewHunkEvent, type PendingReviewHunkLine, type PluginAgentReport, type PluginAgentStatus, type PrCheck, type PrRef, type PrReviewEntry, type PrReviewVerdict, type PreviewAgentHighlight, type PreviewDetection, type PreviewErrorCode, type PreviewErrorReason, type PreviewErrorStage, type PreviewOrigin, type PreviewScriptCandidate, type PreviewState, type PreviewStatus, type PullRequestDetail, type PullRequestSummary, QA_PROMPT, REVIEWER_PROMPT, type RemoteCommand, type RepoStack, type RepoStackDetection, SCRATCH_STARTER_PROMPTS, SCRATCH_ZIP_FREE_LIMIT_BYTES, SCRATCH_ZIP_WIFI_HINT_BYTES, SESSION_BLOCKER_KINDS, SKILL_REGISTRY, SPECIFIER_PROMPT, SQUAD_CONFIGURE_COMMAND, SQUAD_HOP_BUDGET_DEFAULT, SQUAD_HOP_BUDGET_MAX, SQUAD_HOP_BUDGET_MIN, SQUAD_SPECIALTIES, SQUAD_STATS_COMMAND, SSE_SOCKET_TIMEOUT_MS, STACK_TO_RECOMMENDED, SWITCH_AGENT_COMMAND, type ScratchExportResult, type ScratchProjectState, type ScratchSavedVia, type SelectPrompt, type SessionBlocker, type SessionBlockerKind, SessionBlockerSchema, type SkillDefinition, type SkillDelivery, type SkillFileDelivery, type SkillId, type SkillRail, type SkillsManifest, type SkillsManifestEntry, type SquadAutoConfig, type SquadConfigurePayload, type SquadConfigureResult, type SquadMemberActivity, type SquadRosterAgent, type SquadRosterData, type SquadStatsResult, type StartTaskFailedResult, type StartTaskPayload, type StarterPrompt, type StreamingChunkEvent, type StreamingChunkKind, type SwitchAgentCommand, type SwitchAgentResult, type SwitchAgentStatus, type SwitchAgentStep, TERMINAL_AGENT_PREFIX, UNKNOWN_MODEL_PRICING, UPCOMING_INTEGRATION_IDS, USER_EVENTS, type UserEventName, clampHopBudget, classifyStack, detectedIntegrationsFromDeps, extractHandoffSection, getAgent, getContextWindow, getEnabledAgents, getEnabledIntegrations, getIntegration, getIntegrationBranding, getIntegrationsByCategory, getPackDefinition, getPricing, getSkillDefinition, installableAgentIds, internalToPublic, isGuardrailDisposition, isKnownAgentId, isKnownIntegrationId, isKnownModel, isLinkedAgentId, isManagedProviderId, isNoopInstallSnippet, isPackId, isPluginAgentStatus, isSkillId, normalizeAgentId, normalizeGuardrailPolicy, orderDeployChoices, parsePackFindings, publicToInternal, recommendForDeps, renderToLines, resolveApiBaseUrl, skillHasRail, toRemoteCommand, toSessionBlocker, tryGetContextWindow };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
|
|
1
3
|
/**
|
|
2
4
|
* Protocol-level types for TUI chrome steps and interactive selectors.
|
|
3
5
|
*
|
|
@@ -1502,6 +1504,22 @@ interface PreviewScriptCandidate {
|
|
|
1502
1504
|
}
|
|
1503
1505
|
type PreviewState = 'idle' | 'detection_pending' | 'detection_ready' | 'starting' | 'running' | 'error';
|
|
1504
1506
|
type PreviewErrorStage = 'detection' | 'spawn' | 'tunnel' | 'ready_timeout' | 'unsupported';
|
|
1507
|
+
/**
|
|
1508
|
+
* Machine-readable code on a `preview_error`, for errors the apps route to a
|
|
1509
|
+
* specific action instead of "Try again". `CREDITS_EXHAUSTED` = the managed
|
|
1510
|
+
* agent's detect one-shot was refused by our agent-proxy with a 402 (prepaid
|
|
1511
|
+
* wallet at 0) — the apps open top-up; a retry would hit the same 402.
|
|
1512
|
+
* Additive: older CLIs omit it.
|
|
1513
|
+
*/
|
|
1514
|
+
type PreviewErrorCode = 'CREDITS_EXHAUSTED';
|
|
1515
|
+
/**
|
|
1516
|
+
* WHY a `stage: 'detection'` / `'unsupported'` preview_error happened —
|
|
1517
|
+
* telemetry only (`preview_lifecycle.error_reason`), never user copy, never
|
|
1518
|
+
* the agent's raw output. Each value has a different fix, which is the point:
|
|
1519
|
+
* five unexplained detection failures in a row (codeagent-qrk1) could not be
|
|
1520
|
+
* told apart.
|
|
1521
|
+
*/
|
|
1522
|
+
type PreviewErrorReason = 'empty_project' | 'no_oneshot' | 'timeout' | 'no_output' | 'no_json' | 'missing_fields' | 'provider_credits' | 'credits_exhausted' | 'unsupported';
|
|
1505
1523
|
/**
|
|
1506
1524
|
* Un servicio que el proyecto necesita y que NO pudimos levantarle.
|
|
1507
1525
|
*
|
|
@@ -1543,6 +1561,7 @@ interface PreviewStatus {
|
|
|
1543
1561
|
error?: {
|
|
1544
1562
|
stage: PreviewErrorStage;
|
|
1545
1563
|
message: string;
|
|
1564
|
+
code?: PreviewErrorCode;
|
|
1546
1565
|
};
|
|
1547
1566
|
/**
|
|
1548
1567
|
* Servicios que el proyecto pide y no estan sirviendo.
|
|
@@ -1890,6 +1909,12 @@ interface StartTaskPayload {
|
|
|
1890
1909
|
}>;
|
|
1891
1910
|
/** Internal runtime id. Present + ≠ active agent → the runner swaps before running. */
|
|
1892
1911
|
agentId?: string;
|
|
1912
|
+
/**
|
|
1913
|
+
* The app's device locale (BCP-47, e.g. `es-CO`, `id-ID`). Optional — older
|
|
1914
|
+
* apps omit it. The CLI tells the agent to reply in that language on its
|
|
1915
|
+
* first turn, so the user doesn't spend a task stating it.
|
|
1916
|
+
*/
|
|
1917
|
+
locale?: string;
|
|
1893
1918
|
}
|
|
1894
1919
|
/**
|
|
1895
1920
|
* `result` of a `start_task` acked `failed` (POST /api/commands/result).
|
|
@@ -2141,7 +2166,16 @@ interface StarterPrompt {
|
|
|
2141
2166
|
label: string;
|
|
2142
2167
|
prompt: string;
|
|
2143
2168
|
}
|
|
2144
|
-
/**
|
|
2169
|
+
/**
|
|
2170
|
+
* Composer starters for an empty scratch Box session (D12/§4.3).
|
|
2171
|
+
*
|
|
2172
|
+
* Every starter must BUILD something on its first turn and end with the
|
|
2173
|
+
* preview open: on FREE each send is one of 3 daily tasks, and a starter that
|
|
2174
|
+
* only asks a question or lists ideas spends one with nothing to show
|
|
2175
|
+
* (replays 2026-10-05: "give me three quick ideas" → ideas + "Which one?"
|
|
2176
|
+
* (shokhanahmadi61); "ask me the business name first" → "I'll need a business
|
|
2177
|
+
* name" (deepak.namdeo81)). Ask for details AFTER the first build, not before.
|
|
2178
|
+
*/
|
|
2145
2179
|
declare const SCRATCH_STARTER_PROMPTS: readonly StarterPrompt[];
|
|
2146
2180
|
declare const SCRATCH_ZIP_FREE_LIMIT_BYTES = 104857600;
|
|
2147
2181
|
declare const SCRATCH_ZIP_WIFI_HINT_BYTES = 209715200;
|
|
@@ -2167,6 +2201,46 @@ type ScratchExportResult = {
|
|
|
2167
2201
|
}>;
|
|
2168
2202
|
};
|
|
2169
2203
|
|
|
2204
|
+
/**
|
|
2205
|
+
* Session blocker — a TYPED tag on the terminal chat bubble of a turn that
|
|
2206
|
+
* cannot run ("you're out of credits", "Cursor needs a paid plan", …).
|
|
2207
|
+
*
|
|
2208
|
+
* The bubble itself stays prose (every client renders it as markdown). This
|
|
2209
|
+
* tag rides NEXT to it on the `{type:'text', done:true}` output chunk as
|
|
2210
|
+
* `blocker`, so mobile/web can attach the right escape-route buttons from the
|
|
2211
|
+
* kind instead of regex-matching the CLI's wording — which drifted silently:
|
|
2212
|
+
* the apps matched "reached your daily CodeAgent Cloud limit" while the CLI
|
|
2213
|
+
* had long been saying "You’ve reached today’s agent usage limit", so the
|
|
2214
|
+
* CLI-built house-limit bubble never got its buttons (codeagent-gfip).
|
|
2215
|
+
*
|
|
2216
|
+
* CANONICAL WIRE OWNER: this file. The apps keep their regex only as the
|
|
2217
|
+
* fallback for chunks from CLIs that predate the tag.
|
|
2218
|
+
*/
|
|
2219
|
+
declare const SESSION_BLOCKER_KINDS: readonly ["house_agent_limit", "house_agent_unavailable", "agent_plan_required", "agent_auth_failed", "credits_exhausted", "provider_credits_exhausted", "agent_startup_failed"];
|
|
2220
|
+
type SessionBlockerKind = (typeof SESSION_BLOCKER_KINDS)[number];
|
|
2221
|
+
interface SessionBlocker {
|
|
2222
|
+
kind: SessionBlockerKind;
|
|
2223
|
+
/** Agent the blocker is about (registry id or label), when known. */
|
|
2224
|
+
agentId?: string;
|
|
2225
|
+
/** Provider name for `provider_credits_exhausted` (e.g. `OpenRouter`). */
|
|
2226
|
+
provider?: string;
|
|
2227
|
+
}
|
|
2228
|
+
declare const SessionBlockerSchema: z.ZodObject<{
|
|
2229
|
+
kind: z.ZodEnum<{
|
|
2230
|
+
credits_exhausted: "credits_exhausted";
|
|
2231
|
+
house_agent_limit: "house_agent_limit";
|
|
2232
|
+
house_agent_unavailable: "house_agent_unavailable";
|
|
2233
|
+
agent_plan_required: "agent_plan_required";
|
|
2234
|
+
agent_auth_failed: "agent_auth_failed";
|
|
2235
|
+
provider_credits_exhausted: "provider_credits_exhausted";
|
|
2236
|
+
agent_startup_failed: "agent_startup_failed";
|
|
2237
|
+
}>;
|
|
2238
|
+
agentId: z.ZodOptional<z.ZodString>;
|
|
2239
|
+
provider: z.ZodOptional<z.ZodString>;
|
|
2240
|
+
}, z.core.$strip>;
|
|
2241
|
+
/** Validate an untrusted `blocker` field off the wire; `null` when absent or malformed. */
|
|
2242
|
+
declare function toSessionBlocker(raw: unknown): SessionBlocker | null;
|
|
2243
|
+
|
|
2170
2244
|
/**
|
|
2171
2245
|
* Prompt the CLI sends to the user's linked agent (Claude, Codex, …)
|
|
2172
2246
|
* in a headless one-shot to detect how to start the project's dev
|
|
@@ -2179,4 +2253,44 @@ type ScratchExportResult = {
|
|
|
2179
2253
|
*/
|
|
2180
2254
|
declare const PREVIEW_DETECT_PROMPT: string;
|
|
2181
2255
|
|
|
2182
|
-
|
|
2256
|
+
/**
|
|
2257
|
+
* The agents report — `POST /api/plugin/agents` (plugin → backend) and
|
|
2258
|
+
* `GET /api/plugin/agents?pluginId=` (app → backend).
|
|
2259
|
+
*
|
|
2260
|
+
* CANONICAL WIRE OWNER: this file (`@codeam/shared`), per the cross-repo rule.
|
|
2261
|
+
* The backend stores each entry verbatim and hands it back to the app.
|
|
2262
|
+
*/
|
|
2263
|
+
/**
|
|
2264
|
+
* Whether the reported agent can actually answer a prompt on this host.
|
|
2265
|
+
*
|
|
2266
|
+
* WHY (codeagent-04jp, 2026-10-02): a local session whose agent could not run
|
|
2267
|
+
* (Claude Code not signed in on the user's computer) read "The host isn't
|
|
2268
|
+
* responding" in the app — the only signal was silence. The plugin now says
|
|
2269
|
+
* what it knows, so the app can offer the real fix ("sign in on your computer"
|
|
2270
|
+
* or "use CodeAgent credits instead").
|
|
2271
|
+
*
|
|
2272
|
+
* - `ready` — the agent started and accepted a session.
|
|
2273
|
+
* - `not_installed` — the agent's binary/adapter is missing on the host.
|
|
2274
|
+
* - `not_signed_in` — the agent is installed but has no usable login/key.
|
|
2275
|
+
* - `failed` — it was installed and signed in, and still failed to start.
|
|
2276
|
+
*
|
|
2277
|
+
* Optional on the wire: older plugins never send it, and its absence means
|
|
2278
|
+
* "unknown", never `ready`.
|
|
2279
|
+
*/
|
|
2280
|
+
declare const PLUGIN_AGENT_STATUSES: readonly ["ready", "not_installed", "not_signed_in", "failed"];
|
|
2281
|
+
type PluginAgentStatus = (typeof PLUGIN_AGENT_STATUSES)[number];
|
|
2282
|
+
declare function isPluginAgentStatus(x: unknown): x is PluginAgentStatus;
|
|
2283
|
+
/** One entry of the agents report. */
|
|
2284
|
+
interface PluginAgentReport {
|
|
2285
|
+
/** Runtime agent id (`claude`, `codex`, …) — NOT the public linked id. */
|
|
2286
|
+
id: string;
|
|
2287
|
+
name: string;
|
|
2288
|
+
/** Icon key — the apps key their logo map by agent id. */
|
|
2289
|
+
icon: string;
|
|
2290
|
+
installed: boolean;
|
|
2291
|
+
isTerminal?: boolean;
|
|
2292
|
+
/** See {@link PluginAgentStatus}. Absent = unknown (older plugin). */
|
|
2293
|
+
status?: PluginAgentStatus;
|
|
2294
|
+
}
|
|
2295
|
+
|
|
2296
|
+
export { AGENT_REGISTRY, AGENT_STANDARD_BLOCK, AGENT_STANDARD_MARKER, AGENT_STANDARD_TEXT, type AgentAuth, type AgentAuthKind, type AgentId, type AgentMetadata, type AgentMode, type AgentModel, type AgentReviewFinding, type AgentReviewPlan, type AgentReviewReport, type AnswerResolvedEvent, type AwaitingAnswerEvent, type AwaitingAnswerOption, type BeadsActionCommand, type BeadsActionKind, type BeadsActionPayload, type BeadsActionRequest, type BeadsActionType, type BeadsConfigureAction, type BeadsDependencyDto, type BeadsDependencyKind, type BeadsIngestPayload, type BeadsIssueDto, type BeadsIssueStatus, type BeadsMemoryDto, type BeadsProjectDto, type BeadsProvisioningPayload, type BeadsProvisioningStatus, type BeadsSnapshotDto, type BeadsStatus, type BeadsStatusState, type BeadsStatusSummary, type BlameLineWire, type BrokeredIntegrationToken, CODER_PROMPT, type ChromeStep, type ChromeToolType, type CommitEntryWire, DEFAULT_API_BASE_URL, DEFAULT_GUARDRAIL_POLICY, DEPLOY_CHOICE_ORDER, DEP_TO_INTEGRATION, DEV_API_BASE_URL, type DeployChoice, type DerivedCredentialSource, type EnvVar, type FileBlameEvent, type FileChangeStatus, type FileChangedEvent, type FileHistoryEvent, type FileReviewStatus, GUARDRAIL_CATEGORIES, GUARDRAIL_CATEGORY_META, GUARDRAIL_CONFIGURE_COMMAND, GUARDRAIL_DISPOSITIONS, type GuardrailCategory, type GuardrailCategoryMeta, type GuardrailDisposition, type GuardrailPolicy, HANDOFF_FENCE_TAG, HEARTBEAT_INTERVAL_MS_DEFAULT, HOUSE_AGENT_ID, HOUSE_AGENT_NAME, HOUSE_AGENT_PROVIDER, HOUSE_AGENT_SUBTITLE, HOUSE_AGENT_VENDOR, type HandoffProposal, type HandoffResolution, type HunkLineType, INSTALL_SNIPPETS, INTEGRATION_BRANDING, INTEGRATION_REGISTRY, INTERNAL_TO_PUBLIC, type InputSuggestionChunk, type IntegrationApiKeyField, type IntegrationAuthKind, type IntegrationBranding, type IntegrationCategory, type IntegrationDefinition, type IntegrationDelivery, type IntegrationHealth, type IntegrationId, type IntegrationMcpDelivery, type IntegrationStatus, type IntegrationsManifest, type IntegrationsManifestEntry, LINKED_AGENT_IDS, type LinkedAgentId, MANAGED_AGENT_ENV, MANAGED_AGENT_SUBTITLE, MANAGED_PROVIDER_DISPLAY_NAMES, MANAGED_PROVIDER_IDS, MAX_PACK_FINDINGS, MODEL_CONTEXT_WINDOW, MODEL_PRICING, type ManagedProviderId, type MissingService, type ModelPricing, type NormalizedMessage, OBSERVER_BRIDGE_PORT, PACK_ACTION_COMMAND, PACK_FINDINGS_FILE, PACK_HANDOFF_HEADING, PACK_REGISTRY, PACK_START_COMMAND, PACK_STATUS_COMMAND, PACK_WORKFLOW_ARTICLE, PLUGIN_AGENT_STATUSES, PREVIEW_DETECT_PROMPT, PROTOCOL_VERSION, PUBLIC_TO_INTERNAL, type PackActionKind, type PackActionPayload, type PackDefinition, type PackFinding, type PackFindingResolution, type PackFindingSeverity, type PackFindingsParseResult, type PackHandoffRecord, type PackId, type PackPendingControl, type PackRunState, type PackRunStatus, type PackStageDef, type PackStageState, type PackStageStatus, type PackStartPayload, type ParsedPackFindings, type PendingReviewHunkEvent, type PendingReviewHunkLine, type PluginAgentReport, type PluginAgentStatus, type PrCheck, type PrRef, type PrReviewEntry, type PrReviewVerdict, type PreviewAgentHighlight, type PreviewDetection, type PreviewErrorCode, type PreviewErrorReason, type PreviewErrorStage, type PreviewOrigin, type PreviewScriptCandidate, type PreviewState, type PreviewStatus, type PullRequestDetail, type PullRequestSummary, QA_PROMPT, REVIEWER_PROMPT, type RemoteCommand, type RepoStack, type RepoStackDetection, SCRATCH_STARTER_PROMPTS, SCRATCH_ZIP_FREE_LIMIT_BYTES, SCRATCH_ZIP_WIFI_HINT_BYTES, SESSION_BLOCKER_KINDS, SKILL_REGISTRY, SPECIFIER_PROMPT, SQUAD_CONFIGURE_COMMAND, SQUAD_HOP_BUDGET_DEFAULT, SQUAD_HOP_BUDGET_MAX, SQUAD_HOP_BUDGET_MIN, SQUAD_SPECIALTIES, SQUAD_STATS_COMMAND, SSE_SOCKET_TIMEOUT_MS, STACK_TO_RECOMMENDED, SWITCH_AGENT_COMMAND, type ScratchExportResult, type ScratchProjectState, type ScratchSavedVia, type SelectPrompt, type SessionBlocker, type SessionBlockerKind, SessionBlockerSchema, type SkillDefinition, type SkillDelivery, type SkillFileDelivery, type SkillId, type SkillRail, type SkillsManifest, type SkillsManifestEntry, type SquadAutoConfig, type SquadConfigurePayload, type SquadConfigureResult, type SquadMemberActivity, type SquadRosterAgent, type SquadRosterData, type SquadStatsResult, type StartTaskFailedResult, type StartTaskPayload, type StarterPrompt, type StreamingChunkEvent, type StreamingChunkKind, type SwitchAgentCommand, type SwitchAgentResult, type SwitchAgentStatus, type SwitchAgentStep, TERMINAL_AGENT_PREFIX, UNKNOWN_MODEL_PRICING, UPCOMING_INTEGRATION_IDS, USER_EVENTS, type UserEventName, clampHopBudget, classifyStack, detectedIntegrationsFromDeps, extractHandoffSection, getAgent, getContextWindow, getEnabledAgents, getEnabledIntegrations, getIntegration, getIntegrationBranding, getIntegrationsByCategory, getPackDefinition, getPricing, getSkillDefinition, installableAgentIds, internalToPublic, isGuardrailDisposition, isKnownAgentId, isKnownIntegrationId, isKnownModel, isLinkedAgentId, isManagedProviderId, isNoopInstallSnippet, isPackId, isPluginAgentStatus, isSkillId, normalizeAgentId, normalizeGuardrailPolicy, orderDeployChoices, parsePackFindings, publicToInternal, recommendForDeps, renderToLines, resolveApiBaseUrl, skillHasRail, toRemoteCommand, toSessionBlocker, tryGetContextWindow };
|
package/dist/index.js
CHANGED
|
@@ -61,6 +61,7 @@ __export(index_exports, {
|
|
|
61
61
|
PACK_START_COMMAND: () => PACK_START_COMMAND,
|
|
62
62
|
PACK_STATUS_COMMAND: () => PACK_STATUS_COMMAND,
|
|
63
63
|
PACK_WORKFLOW_ARTICLE: () => PACK_WORKFLOW_ARTICLE,
|
|
64
|
+
PLUGIN_AGENT_STATUSES: () => PLUGIN_AGENT_STATUSES,
|
|
64
65
|
PREVIEW_DETECT_PROMPT: () => PREVIEW_DETECT_PROMPT,
|
|
65
66
|
PROTOCOL_VERSION: () => PROTOCOL_VERSION,
|
|
66
67
|
PUBLIC_TO_INTERNAL: () => PUBLIC_TO_INTERNAL,
|
|
@@ -69,6 +70,7 @@ __export(index_exports, {
|
|
|
69
70
|
SCRATCH_STARTER_PROMPTS: () => SCRATCH_STARTER_PROMPTS,
|
|
70
71
|
SCRATCH_ZIP_FREE_LIMIT_BYTES: () => SCRATCH_ZIP_FREE_LIMIT_BYTES,
|
|
71
72
|
SCRATCH_ZIP_WIFI_HINT_BYTES: () => SCRATCH_ZIP_WIFI_HINT_BYTES,
|
|
73
|
+
SESSION_BLOCKER_KINDS: () => SESSION_BLOCKER_KINDS,
|
|
72
74
|
SKILL_REGISTRY: () => SKILL_REGISTRY,
|
|
73
75
|
SPECIFIER_PROMPT: () => SPECIFIER_PROMPT,
|
|
74
76
|
SQUAD_CONFIGURE_COMMAND: () => SQUAD_CONFIGURE_COMMAND,
|
|
@@ -80,6 +82,7 @@ __export(index_exports, {
|
|
|
80
82
|
SSE_SOCKET_TIMEOUT_MS: () => SSE_SOCKET_TIMEOUT_MS,
|
|
81
83
|
STACK_TO_RECOMMENDED: () => STACK_TO_RECOMMENDED,
|
|
82
84
|
SWITCH_AGENT_COMMAND: () => SWITCH_AGENT_COMMAND,
|
|
85
|
+
SessionBlockerSchema: () => SessionBlockerSchema,
|
|
83
86
|
TERMINAL_AGENT_PREFIX: () => TERMINAL_AGENT_PREFIX,
|
|
84
87
|
UNKNOWN_MODEL_PRICING: () => UNKNOWN_MODEL_PRICING,
|
|
85
88
|
UPCOMING_INTEGRATION_IDS: () => UPCOMING_INTEGRATION_IDS,
|
|
@@ -108,6 +111,7 @@ __export(index_exports, {
|
|
|
108
111
|
isManagedProviderId: () => isManagedProviderId,
|
|
109
112
|
isNoopInstallSnippet: () => isNoopInstallSnippet,
|
|
110
113
|
isPackId: () => isPackId,
|
|
114
|
+
isPluginAgentStatus: () => isPluginAgentStatus,
|
|
111
115
|
isSkillId: () => isSkillId,
|
|
112
116
|
normalizeAgentId: () => normalizeAgentId,
|
|
113
117
|
normalizeGuardrailPolicy: () => normalizeGuardrailPolicy,
|
|
@@ -119,6 +123,7 @@ __export(index_exports, {
|
|
|
119
123
|
resolveApiBaseUrl: () => resolveApiBaseUrl,
|
|
120
124
|
skillHasRail: () => skillHasRail,
|
|
121
125
|
toRemoteCommand: () => toRemoteCommand,
|
|
126
|
+
toSessionBlocker: () => toSessionBlocker,
|
|
122
127
|
tryGetContextWindow: () => tryGetContextWindow
|
|
123
128
|
});
|
|
124
129
|
module.exports = __toCommonJS(index_exports);
|
|
@@ -3208,7 +3213,7 @@ function orderDeployChoices(githubLinked) {
|
|
|
3208
3213
|
var SCRATCH_STARTER_PROMPTS = [
|
|
3209
3214
|
{
|
|
3210
3215
|
label: "Landing page",
|
|
3211
|
-
prompt: "Build a simple, good-looking landing page for
|
|
3216
|
+
prompt: "Build a simple, good-looking landing page for a business, using a placeholder business name I can change later. Build it and open the preview."
|
|
3212
3217
|
},
|
|
3213
3218
|
{
|
|
3214
3219
|
label: "To-do app",
|
|
@@ -3219,13 +3224,41 @@ var SCRATCH_STARTER_PROMPTS = [
|
|
|
3219
3224
|
prompt: "Build a small game that runs in the browser, then open the preview."
|
|
3220
3225
|
},
|
|
3221
3226
|
{
|
|
3222
|
-
label: "
|
|
3223
|
-
prompt: "
|
|
3227
|
+
label: "Surprise me",
|
|
3228
|
+
prompt: "Pick one small, useful app you can build quickly, build it right away without asking me first, then open the preview and tell me what I can change."
|
|
3224
3229
|
}
|
|
3225
3230
|
];
|
|
3226
3231
|
var SCRATCH_ZIP_FREE_LIMIT_BYTES = 104857600;
|
|
3227
3232
|
var SCRATCH_ZIP_WIFI_HINT_BYTES = 209715200;
|
|
3228
3233
|
|
|
3234
|
+
// src/types/session-blocker.ts
|
|
3235
|
+
var import_zod2 = require("zod");
|
|
3236
|
+
var SESSION_BLOCKER_KINDS = [
|
|
3237
|
+
/** CodeAgent Cloud usage ceiling — PRO lifts it. */
|
|
3238
|
+
"house_agent_limit",
|
|
3239
|
+
/** CodeAgent Cloud down on OUR side — nothing to buy. */
|
|
3240
|
+
"house_agent_unavailable",
|
|
3241
|
+
/** The vendor (e.g. Cursor) needs a paid plan to run its agent. */
|
|
3242
|
+
"agent_plan_required",
|
|
3243
|
+
/** The user's own agent credentials are invalid/expired. */
|
|
3244
|
+
"agent_auth_failed",
|
|
3245
|
+
/** The prepaid CodeAgent wallet is empty. */
|
|
3246
|
+
"credits_exhausted",
|
|
3247
|
+
/** The user's OWN provider key (OpenRouter, …) has no balance. */
|
|
3248
|
+
"provider_credits_exhausted",
|
|
3249
|
+
/** The agent process died before it could open a session. */
|
|
3250
|
+
"agent_startup_failed"
|
|
3251
|
+
];
|
|
3252
|
+
var SessionBlockerSchema = import_zod2.z.object({
|
|
3253
|
+
kind: import_zod2.z.enum(SESSION_BLOCKER_KINDS),
|
|
3254
|
+
agentId: import_zod2.z.string().min(1).max(64).optional(),
|
|
3255
|
+
provider: import_zod2.z.string().min(1).max(120).optional()
|
|
3256
|
+
});
|
|
3257
|
+
function toSessionBlocker(raw) {
|
|
3258
|
+
const parsed = SessionBlockerSchema.safeParse(raw);
|
|
3259
|
+
return parsed.success ? parsed.data : null;
|
|
3260
|
+
}
|
|
3261
|
+
|
|
3229
3262
|
// src/preview-prompts.ts
|
|
3230
3263
|
var PREVIEW_DETECT_PROMPT = `
|
|
3231
3264
|
Analyze the project in the current working directory and return how to start
|
|
@@ -3272,6 +3305,12 @@ CRITICAL \u2014 setup_commands:
|
|
|
3272
3305
|
|
|
3273
3306
|
OUTPUT JSON ONLY. NO MARKDOWN. NO COMMENTARY.
|
|
3274
3307
|
`.trim();
|
|
3308
|
+
|
|
3309
|
+
// src/types/plugin-agents.ts
|
|
3310
|
+
var PLUGIN_AGENT_STATUSES = ["ready", "not_installed", "not_signed_in", "failed"];
|
|
3311
|
+
function isPluginAgentStatus(x) {
|
|
3312
|
+
return typeof x === "string" && PLUGIN_AGENT_STATUSES.includes(x);
|
|
3313
|
+
}
|
|
3275
3314
|
// Annotate the CommonJS export names for ESM import in node:
|
|
3276
3315
|
0 && (module.exports = {
|
|
3277
3316
|
AGENT_REGISTRY,
|
|
@@ -3315,6 +3354,7 @@ OUTPUT JSON ONLY. NO MARKDOWN. NO COMMENTARY.
|
|
|
3315
3354
|
PACK_START_COMMAND,
|
|
3316
3355
|
PACK_STATUS_COMMAND,
|
|
3317
3356
|
PACK_WORKFLOW_ARTICLE,
|
|
3357
|
+
PLUGIN_AGENT_STATUSES,
|
|
3318
3358
|
PREVIEW_DETECT_PROMPT,
|
|
3319
3359
|
PROTOCOL_VERSION,
|
|
3320
3360
|
PUBLIC_TO_INTERNAL,
|
|
@@ -3323,6 +3363,7 @@ OUTPUT JSON ONLY. NO MARKDOWN. NO COMMENTARY.
|
|
|
3323
3363
|
SCRATCH_STARTER_PROMPTS,
|
|
3324
3364
|
SCRATCH_ZIP_FREE_LIMIT_BYTES,
|
|
3325
3365
|
SCRATCH_ZIP_WIFI_HINT_BYTES,
|
|
3366
|
+
SESSION_BLOCKER_KINDS,
|
|
3326
3367
|
SKILL_REGISTRY,
|
|
3327
3368
|
SPECIFIER_PROMPT,
|
|
3328
3369
|
SQUAD_CONFIGURE_COMMAND,
|
|
@@ -3334,6 +3375,7 @@ OUTPUT JSON ONLY. NO MARKDOWN. NO COMMENTARY.
|
|
|
3334
3375
|
SSE_SOCKET_TIMEOUT_MS,
|
|
3335
3376
|
STACK_TO_RECOMMENDED,
|
|
3336
3377
|
SWITCH_AGENT_COMMAND,
|
|
3378
|
+
SessionBlockerSchema,
|
|
3337
3379
|
TERMINAL_AGENT_PREFIX,
|
|
3338
3380
|
UNKNOWN_MODEL_PRICING,
|
|
3339
3381
|
UPCOMING_INTEGRATION_IDS,
|
|
@@ -3362,6 +3404,7 @@ OUTPUT JSON ONLY. NO MARKDOWN. NO COMMENTARY.
|
|
|
3362
3404
|
isManagedProviderId,
|
|
3363
3405
|
isNoopInstallSnippet,
|
|
3364
3406
|
isPackId,
|
|
3407
|
+
isPluginAgentStatus,
|
|
3365
3408
|
isSkillId,
|
|
3366
3409
|
normalizeAgentId,
|
|
3367
3410
|
normalizeGuardrailPolicy,
|
|
@@ -3373,6 +3416,7 @@ OUTPUT JSON ONLY. NO MARKDOWN. NO COMMENTARY.
|
|
|
3373
3416
|
resolveApiBaseUrl,
|
|
3374
3417
|
skillHasRail,
|
|
3375
3418
|
toRemoteCommand,
|
|
3419
|
+
toSessionBlocker,
|
|
3376
3420
|
tryGetContextWindow
|
|
3377
3421
|
});
|
|
3378
3422
|
//# sourceMappingURL=index.js.map
|