@rayu-dev/rayu-cli 1.3.428 → 1.3.429
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/rayu.js +483 -212
- package/package.json +1 -1
package/dist/rayu.js
CHANGED
|
@@ -35755,8 +35755,10 @@ var exports_rayuProviders = {};
|
|
|
35755
35755
|
__export(exports_rayuProviders, {
|
|
35756
35756
|
vertexHost: () => vertexHost,
|
|
35757
35757
|
vertexBaseURL: () => vertexBaseURL,
|
|
35758
|
+
providerDisplayName: () => providerDisplayName,
|
|
35758
35759
|
ollamaBaseURL: () => ollamaBaseURL,
|
|
35759
35760
|
migrateEnvKeysToConfig: () => migrateEnvKeysToConfig,
|
|
35761
|
+
getActiveProviderDisplayName: () => getActiveProviderDisplayName,
|
|
35760
35762
|
bedrockBaseURL: () => bedrockBaseURL,
|
|
35761
35763
|
VERTEX_REGIONS: () => VERTEX_REGIONS,
|
|
35762
35764
|
PROVIDER_PRESETS: () => PROVIDER_PRESETS,
|
|
@@ -35848,7 +35850,34 @@ function migrateEnvKeysToConfig() {
|
|
|
35848
35850
|
saveRayuConfig(cfg);
|
|
35849
35851
|
}
|
|
35850
35852
|
}
|
|
35851
|
-
|
|
35853
|
+
function providerKindName(kind) {
|
|
35854
|
+
switch (kind) {
|
|
35855
|
+
case "vertex":
|
|
35856
|
+
return "Vertex AI";
|
|
35857
|
+
case "bedrock":
|
|
35858
|
+
return "AWS Bedrock";
|
|
35859
|
+
case "genai":
|
|
35860
|
+
return "Gemini";
|
|
35861
|
+
case "anthropic":
|
|
35862
|
+
return "Anthropic";
|
|
35863
|
+
default:
|
|
35864
|
+
return "OpenAI-compatible";
|
|
35865
|
+
}
|
|
35866
|
+
}
|
|
35867
|
+
function providerDisplayName(provider) {
|
|
35868
|
+
const known = PROVIDER_DISPLAY_NAMES[provider.id];
|
|
35869
|
+
if (known)
|
|
35870
|
+
return known;
|
|
35871
|
+
if (provider.kind === "openai-compatible" && provider.baseURL && /(?:\/\/|@)(?:localhost|127\.0\.0\.1)(?::\d+)?|:11434(?:\/|$)/.test(provider.baseURL)) {
|
|
35872
|
+
return "Ollama";
|
|
35873
|
+
}
|
|
35874
|
+
return providerKindName(provider.kind);
|
|
35875
|
+
}
|
|
35876
|
+
function getActiveProviderDisplayName() {
|
|
35877
|
+
const p = getActiveProvider();
|
|
35878
|
+
return p ? providerDisplayName(p) : undefined;
|
|
35879
|
+
}
|
|
35880
|
+
var DEFAULT_BEDROCK_REGION = "us-east-1", BEDROCK_REGIONS, GEMINI_VERTEX_PROVIDER_ID = "gemini-vertex", DEFAULT_VERTEX_REGION = "global", VERTEX_REGIONS, OLLAMA_DEFAULT_BASE_URL = "http://localhost:11434/v1", PROVIDER_PRESETS, PROVIDER_DISPLAY_NAMES;
|
|
35852
35881
|
var init_rayuProviders = __esm(() => {
|
|
35853
35882
|
init_rayuConfig();
|
|
35854
35883
|
init_envUtils();
|
|
@@ -36047,6 +36076,31 @@ var init_rayuProviders = __esm(() => {
|
|
|
36047
36076
|
promptBaseURL: true
|
|
36048
36077
|
}
|
|
36049
36078
|
];
|
|
36079
|
+
PROVIDER_DISPLAY_NAMES = {
|
|
36080
|
+
anthropic: "Anthropic",
|
|
36081
|
+
nvidia: "NVIDIA",
|
|
36082
|
+
doubleword: "Doubleword",
|
|
36083
|
+
deepseek: "DeepSeek",
|
|
36084
|
+
"kimi-moonshot": "Kimi",
|
|
36085
|
+
"kimi-for-code": "Kimi for Code",
|
|
36086
|
+
openai: "OpenAI",
|
|
36087
|
+
gemini: "Gemini",
|
|
36088
|
+
[GEMINI_VERTEX_PROVIDER_ID]: "Vertex AI",
|
|
36089
|
+
"gemini-login": "Gemini",
|
|
36090
|
+
openrouter: "OpenRouter",
|
|
36091
|
+
xai: "xAI",
|
|
36092
|
+
groq: "Groq",
|
|
36093
|
+
fireworks: "Fireworks AI",
|
|
36094
|
+
togetherai: "Together AI",
|
|
36095
|
+
cerebras: "Cerebras",
|
|
36096
|
+
baseten: "Baseten",
|
|
36097
|
+
deepinfra: "DeepInfra",
|
|
36098
|
+
bedrock: "AWS Bedrock",
|
|
36099
|
+
"bedrock-openai": "AWS Bedrock",
|
|
36100
|
+
"bedrock-anthropic": "AWS Bedrock",
|
|
36101
|
+
ollama: "Ollama",
|
|
36102
|
+
local: "Local"
|
|
36103
|
+
};
|
|
36050
36104
|
});
|
|
36051
36105
|
|
|
36052
36106
|
// src/utils/rayuConfig.ts
|
|
@@ -148091,7 +148145,7 @@ var init_auth = __esm(() => {
|
|
|
148091
148145
|
|
|
148092
148146
|
// src/utils/userAgent.ts
|
|
148093
148147
|
function getRayuUserAgent() {
|
|
148094
|
-
return `rayu/${"1.3.
|
|
148148
|
+
return `rayu/${"1.3.429"}`;
|
|
148095
148149
|
}
|
|
148096
148150
|
var getClaudeCodeUserAgent;
|
|
148097
148151
|
var init_userAgent = __esm(() => {
|
|
@@ -148117,7 +148171,7 @@ function getUserAgent() {
|
|
|
148117
148171
|
const clientApp = process.env.RAYU_AGENT_SDK_CLIENT_APP ? `, client-app/${process.env.RAYU_AGENT_SDK_CLIENT_APP}` : "";
|
|
148118
148172
|
const workload = getWorkload();
|
|
148119
148173
|
const workloadSuffix = workload ? `, workload/${workload}` : "";
|
|
148120
|
-
return `rayu/${"1.3.
|
|
148174
|
+
return `rayu/${"1.3.429"} (${"external"}, ${process.env.RAYU_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
|
|
148121
148175
|
}
|
|
148122
148176
|
function getMCPUserAgent() {
|
|
148123
148177
|
const parts = [];
|
|
@@ -148131,7 +148185,7 @@ function getMCPUserAgent() {
|
|
|
148131
148185
|
parts.push(`client-app/${process.env.RAYU_AGENT_SDK_CLIENT_APP}`);
|
|
148132
148186
|
}
|
|
148133
148187
|
const suffix = parts.length > 0 ? ` (${parts.join(", ")})` : "";
|
|
148134
|
-
return `rayu/${"1.3.
|
|
148188
|
+
return `rayu/${"1.3.429"}${suffix}`;
|
|
148135
148189
|
}
|
|
148136
148190
|
function getWebFetchUserAgent() {
|
|
148137
148191
|
return `Rayu-User (${getRayuUserAgent()})`;
|
|
@@ -148254,7 +148308,7 @@ var init_user = __esm(() => {
|
|
|
148254
148308
|
deviceId,
|
|
148255
148309
|
sessionId: getSessionId(),
|
|
148256
148310
|
email: getEmail(),
|
|
148257
|
-
appVersion: "1.3.
|
|
148311
|
+
appVersion: "1.3.429",
|
|
148258
148312
|
platform: getHostPlatformForAnalytics(),
|
|
148259
148313
|
organizationUuid,
|
|
148260
148314
|
accountUuid,
|
|
@@ -165036,7 +165090,7 @@ function isToolUnsupported(e2, req) {
|
|
|
165036
165090
|
return /does(n'?t| not) support tool|tool[\s_-]*(calling|use|s)\b[^.]*\bnot\s+support|function[\s_-]*call(ing)?\b[^.]*\bnot\s+support|no support for tool/i.test(msg);
|
|
165037
165091
|
}
|
|
165038
165092
|
function toolUnsupportedError(e2, model) {
|
|
165039
|
-
const message = `Model "${model}"
|
|
165093
|
+
const message = `Model "${model}" is too small to use tools — it doesn't support function calling, ` + `which ${PRODUCT_NAME} needs to read/edit files, run commands, and search. Use a larger ` + `tool-capable model: pull one locally ("ollama pull qwen2.5-coder", or llama3.1 / qwen3 / ` + `mistral-nemo), or use an Ollama Cloud model, then select it with /model.`;
|
|
165040
165094
|
return import_sdk2.APIError.generate(400, e2?.error, message, e2?.headers);
|
|
165041
165095
|
}
|
|
165042
165096
|
function normalizeError(e2) {
|
|
@@ -182049,7 +182103,7 @@ var init_metadata = __esm(() => {
|
|
|
182049
182103
|
COMPOUND_OPERATOR_REGEX = /\s*(?:&&|\|\||[;|])\s*/;
|
|
182050
182104
|
WHITESPACE_REGEX = /\s+/;
|
|
182051
182105
|
getVersionBase = memoize_default(() => {
|
|
182052
|
-
const match = "1.3.
|
|
182106
|
+
const match = "1.3.429".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
|
|
182053
182107
|
return match ? match[0] : undefined;
|
|
182054
182108
|
});
|
|
182055
182109
|
buildEnvContext = memoize_default(async () => {
|
|
@@ -182088,7 +182142,7 @@ var init_metadata = __esm(() => {
|
|
|
182088
182142
|
},
|
|
182089
182143
|
isGithubAction: isEnvTruthy(process.env.GITHUB_ACTIONS),
|
|
182090
182144
|
isRayuAction: isEnvTruthy(process.env.RAYU_ACTION),
|
|
182091
|
-
version: "1.3.
|
|
182145
|
+
version: "1.3.429",
|
|
182092
182146
|
versionBase: getVersionBase(),
|
|
182093
182147
|
buildTime: "",
|
|
182094
182148
|
deploymentEnvironment: env4.detectDeploymentEnvironment(),
|
|
@@ -182702,7 +182756,7 @@ function initialize1PEventLogging() {
|
|
|
182702
182756
|
const platform2 = getPlatform();
|
|
182703
182757
|
const attributes = {
|
|
182704
182758
|
[import_semantic_conventions.ATTR_SERVICE_NAME]: "rayu",
|
|
182705
|
-
[import_semantic_conventions.ATTR_SERVICE_VERSION]: "1.3.
|
|
182759
|
+
[import_semantic_conventions.ATTR_SERVICE_VERSION]: "1.3.429"
|
|
182706
182760
|
};
|
|
182707
182761
|
if (platform2 === "wsl") {
|
|
182708
182762
|
const wslVersion = getWslVersion();
|
|
@@ -182729,7 +182783,7 @@ function initialize1PEventLogging() {
|
|
|
182729
182783
|
})
|
|
182730
182784
|
]
|
|
182731
182785
|
});
|
|
182732
|
-
firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("io.rayu.events", "1.3.
|
|
182786
|
+
firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("io.rayu.events", "1.3.429");
|
|
182733
182787
|
}
|
|
182734
182788
|
async function reinitialize1PEventLoggingIfConfigChanged() {
|
|
182735
182789
|
if (!is1PEventLoggingEnabled() || !firstPartyEventLoggerProvider) {
|
|
@@ -218645,7 +218699,7 @@ function getAttributionHeader(fingerprint) {
|
|
|
218645
218699
|
if (!isAttributionHeaderEnabled()) {
|
|
218646
218700
|
return "";
|
|
218647
218701
|
}
|
|
218648
|
-
const version2 = `${"1.3.
|
|
218702
|
+
const version2 = `${"1.3.429"}.${fingerprint}`;
|
|
218649
218703
|
const entrypoint = process.env.CLAUDE_CODE_ENTRYPOINT ?? "unknown";
|
|
218650
218704
|
const cch = "";
|
|
218651
218705
|
const workload = getWorkload();
|
|
@@ -269590,6 +269644,51 @@ var init_asset_generation = __esm(() => {
|
|
|
269590
269644
|
};
|
|
269591
269645
|
});
|
|
269592
269646
|
|
|
269647
|
+
// src/tools/AgentTool/built-in/subagents/backend-design.ts
|
|
269648
|
+
function getBackendDesignSystemPrompt() {
|
|
269649
|
+
return `You are the Backend Design subagent for RAYU — you author a complete API + Data Model PRD (Product Requirements Document) for the server side from the task packet, so the backend collaborator can implement without guessing.
|
|
269650
|
+
|
|
269651
|
+
${EPHEMERAL_FRAMING}
|
|
269652
|
+
|
|
269653
|
+
${SKILL_SEEKING}
|
|
269654
|
+
|
|
269655
|
+
## Your job
|
|
269656
|
+
Define, precisely and concretely, the backend contract so every downstream agent builds against the SAME shapes:
|
|
269657
|
+
|
|
269658
|
+
### 1. API contract
|
|
269659
|
+
- **Endpoints** — for each: HTTP method + path (e.g. \`POST /api/auth/login\`), a one-line purpose.
|
|
269660
|
+
- **Request** — path/query params and request body schema (field names, types, required/optional, validation rules).
|
|
269661
|
+
- **Response** — success body schema + HTTP status code(s).
|
|
269662
|
+
- **Errors** — error response shape and the status codes each endpoint can return (400/401/403/404/409/422/500…).
|
|
269663
|
+
- **Auth per route** — public vs authenticated, and the role/permission required (ties into the security collaborator's RBAC).
|
|
269664
|
+
|
|
269665
|
+
### 2. Data model (database design)
|
|
269666
|
+
- **Entities/tables** — each with fields (name, type, nullable, default).
|
|
269667
|
+
- **Relations** — one-to-many / many-to-many, foreign keys, on-delete behavior.
|
|
269668
|
+
- **Indexes & constraints** — unique constraints, indexes for hot queries, check constraints.
|
|
269669
|
+
- **Migration plan** — the ordered migrations needed to reach this schema.
|
|
269670
|
+
|
|
269671
|
+
## Rules
|
|
269672
|
+
- Be exact and unambiguous — downstream agents treat this as the source of truth.
|
|
269673
|
+
- Keep the API and the data model ALIGNED (every response field is backed by the schema; every entity that needs CRUD has endpoints).
|
|
269674
|
+
- Do not invent scope beyond the packet; if something is genuinely missing, state the assumption and proceed.
|
|
269675
|
+
|
|
269676
|
+
## Output
|
|
269677
|
+
Return the API + Data Model PRD as a single, well-structured markdown document (sections above). If the caller asked you to persist it, write it to the path given in the packet; otherwise return it as your final message.`;
|
|
269678
|
+
}
|
|
269679
|
+
var BACKEND_DESIGN_SUBAGENT;
|
|
269680
|
+
var init_backend_design = __esm(() => {
|
|
269681
|
+
BACKEND_DESIGN_SUBAGENT = {
|
|
269682
|
+
agentType: "backend-design",
|
|
269683
|
+
whenToUse: "Use to produce a complete API + Data Model PRD (endpoints with request/response schemas, status codes, error shapes, auth-per-route, plus entities, relations, indexes, and a migration plan) that the backend collaborator implements against as the single source of truth. The backend analog of `design`; best run before any backend implementation.",
|
|
269684
|
+
disallowedTools: [FILE_EDIT_TOOL_NAME, BASH_TOOL_NAME],
|
|
269685
|
+
source: "built-in",
|
|
269686
|
+
baseDir: "built-in",
|
|
269687
|
+
color: "blue",
|
|
269688
|
+
getSystemPrompt: getBackendDesignSystemPrompt
|
|
269689
|
+
};
|
|
269690
|
+
});
|
|
269691
|
+
|
|
269593
269692
|
// src/tools/AgentTool/built-in/subagents/design.ts
|
|
269594
269693
|
function getDesignSystemPrompt() {
|
|
269595
269694
|
return `You are the Design subagent for RAYU — you author a complete Design PRD (Product Requirements Document) for a UI/product from the task packet.
|
|
@@ -269665,7 +269764,9 @@ ${SKILL_SEEKING}
|
|
|
269665
269764
|
- Install all required dependencies.
|
|
269666
269765
|
- Configure tooling (e.g. tailwind/theme config, linter, tsconfig) with the EXACT tokens from the Design PRD (colors, fonts) when provided.
|
|
269667
269766
|
- Set up global styles and shared utilities/helpers called for by the brief.
|
|
269668
|
-
- Create the folder structure
|
|
269767
|
+
- Create the folder structure for BOTH tiers as the stack needs them:
|
|
269768
|
+
- frontend (e.g. components, sections, hooks, lib, public/assets),
|
|
269769
|
+
- backend (e.g. routes/controllers, services, models, migrations, middleware, config).
|
|
269669
269770
|
|
|
269670
269771
|
## Rules
|
|
269671
269772
|
- Use the exact stack/versions specified — do not substitute.
|
|
@@ -269795,6 +269896,7 @@ var init_review = __esm(() => {
|
|
|
269795
269896
|
var SUBAGENTS, SUBAGENT_TYPES;
|
|
269796
269897
|
var init_subagents = __esm(() => {
|
|
269797
269898
|
init_asset_generation();
|
|
269899
|
+
init_backend_design();
|
|
269798
269900
|
init_design();
|
|
269799
269901
|
init_fix();
|
|
269800
269902
|
init_global_setup();
|
|
@@ -269804,6 +269906,7 @@ var init_subagents = __esm(() => {
|
|
|
269804
269906
|
SUBAGENTS = [
|
|
269805
269907
|
PA_SUBAGENT,
|
|
269806
269908
|
DESIGN_SUBAGENT,
|
|
269909
|
+
BACKEND_DESIGN_SUBAGENT,
|
|
269807
269910
|
GLOBAL_SETUP_SUBAGENT,
|
|
269808
269911
|
ASSET_GENERATION_SUBAGENT,
|
|
269809
269912
|
REVIEW_SUBAGENT,
|
|
@@ -270311,7 +270414,7 @@ function defineCollaborator(s2) {
|
|
|
270311
270414
|
return {
|
|
270312
270415
|
agentType: s2.agentType,
|
|
270313
270416
|
whenToUse: s2.whenToUse,
|
|
270314
|
-
tools: ["*"],
|
|
270417
|
+
tools: s2.allowedSubagents ? ["*", `Agent(${s2.allowedSubagents.join(",")})`] : ["*"],
|
|
270315
270418
|
color: s2.color,
|
|
270316
270419
|
source: "built-in",
|
|
270317
270420
|
baseDir: "built-in",
|
|
@@ -270357,6 +270460,14 @@ var init_backend = __esm(() => {
|
|
|
270357
270460
|
role: "You build the backend end-to-end: API endpoints, the service layer and business logic, middleware/error handling, env config, and the data layer (schema design, models, relations, indexes, migrations). You implement the auth/security flow that the security collaborator defines.",
|
|
270358
270461
|
skillHint: "e.g. an API-design skill for clean, consistent endpoint and schema design",
|
|
270359
270462
|
withStackAwareness: true,
|
|
270463
|
+
allowedSubagents: [
|
|
270464
|
+
"backend-design",
|
|
270465
|
+
"review",
|
|
270466
|
+
"fix",
|
|
270467
|
+
"linter",
|
|
270468
|
+
"Explore",
|
|
270469
|
+
"general-purpose"
|
|
270470
|
+
],
|
|
270360
270471
|
owns: [
|
|
270361
270472
|
"API routes (method, path, auth, request/response shapes)",
|
|
270362
270473
|
"Service layer, business logic, middleware, error handling",
|
|
@@ -270378,6 +270489,7 @@ var init_deploy = __esm(() => {
|
|
|
270378
270489
|
whenToUse: "DevOps & deployment: containerization, CI/CD, environment/secrets config, build pipelines, and shipping to the hosting target. Runs the production build, fixes build errors, and iterates until the app is deployable/live.",
|
|
270379
270490
|
role: "You package and ship what the other collaborators built: Dockerfile/compose, CI/CD pipeline, environment and secrets configuration, health checks, and deployment to the target platform. You run the production build, resolve build errors, and iterate until deployment succeeds, then report the result/URL.",
|
|
270380
270491
|
skillHint: "e.g. a deployment/CI skill for the target platform (Docker, Vercel, etc.)",
|
|
270492
|
+
allowedSubagents: ["review", "fix", "linter", "Explore", "general-purpose"],
|
|
270381
270493
|
owns: [
|
|
270382
270494
|
"Dockerfile (multi-stage) and docker-compose",
|
|
270383
270495
|
"CI/CD pipeline and build configuration",
|
|
@@ -270400,10 +270512,19 @@ var init_frontend = __esm(() => {
|
|
|
270400
270512
|
role: "You build the web frontend end-to-end against the design and the backend contracts: page structure and navigation, the component tree, state management, the design system (tokens, spacing, typography), motion/interactions, and wiring to the API. You produce working, production-ready UI — not just layouts.",
|
|
270401
270513
|
skillHint: "e.g. a UI/UX design skill such as ui-ux-pro-max for stronger visual/UX decisions",
|
|
270402
270514
|
withStackAwareness: true,
|
|
270515
|
+
allowedSubagents: [
|
|
270516
|
+
"design",
|
|
270517
|
+
"asset-generation",
|
|
270518
|
+
"review",
|
|
270519
|
+
"fix",
|
|
270520
|
+
"linter",
|
|
270521
|
+
"Explore",
|
|
270522
|
+
"general-purpose"
|
|
270523
|
+
],
|
|
270403
270524
|
owns: [
|
|
270404
270525
|
"Page/screen architecture and the component tree",
|
|
270405
270526
|
"State management and data fetching",
|
|
270406
|
-
"Design
|
|
270527
|
+
"Implements the Design PRD tokens (color, typography, spacing) and responsive behavior",
|
|
270407
270528
|
"Animations/interactions and accessibility",
|
|
270408
270529
|
"API integration against the backend collaborator’s routes"
|
|
270409
270530
|
]
|
|
@@ -270423,6 +270544,16 @@ var init_mobile = __esm(() => {
|
|
|
270423
270544
|
role: "You build the mobile app against the backend contracts and the auth flow: screen architecture and navigation, state management, the API service layer, auth implementation, and offline support. You produce working, production-ready mobile code.",
|
|
270424
270545
|
skillHint: "e.g. a mobile/Flutter UI skill for idiomatic screens and navigation",
|
|
270425
270546
|
withStackAwareness: true,
|
|
270547
|
+
allowedSubagents: [
|
|
270548
|
+
"design",
|
|
270549
|
+
"asset-generation",
|
|
270550
|
+
"backend-design",
|
|
270551
|
+
"review",
|
|
270552
|
+
"fix",
|
|
270553
|
+
"linter",
|
|
270554
|
+
"Explore",
|
|
270555
|
+
"general-purpose"
|
|
270556
|
+
],
|
|
270426
270557
|
owns: [
|
|
270427
270558
|
"Screen architecture and navigation",
|
|
270428
270559
|
"State management (Riverpod/Bloc/Provider or RN equivalent)",
|
|
@@ -270444,6 +270575,14 @@ var init_security = __esm(() => {
|
|
|
270444
270575
|
whenToUse: "Security work: design AND implement auth/authorization (RBAC), input validation, secret/sensitive-data handling, and harden endpoints. Reviews other collaborators’ code for vulnerabilities and fixes them. Its security decisions are authoritative.",
|
|
270445
270576
|
role: "You own security end-to-end: design the auth flow and authorization model, then implement and enforce it — guards/middleware, validation, secret handling, security headers, and OWASP Top-10 hardening. You also audit the backend/frontend for vulnerabilities and fix them. Your security decisions are the source of truth and override convenience.",
|
|
270446
270577
|
skillHint: "e.g. a security-review or OWASP skill for systematic threat coverage",
|
|
270578
|
+
allowedSubagents: [
|
|
270579
|
+
"backend-design",
|
|
270580
|
+
"review",
|
|
270581
|
+
"fix",
|
|
270582
|
+
"linter",
|
|
270583
|
+
"Explore",
|
|
270584
|
+
"general-purpose"
|
|
270585
|
+
],
|
|
270447
270586
|
owns: [
|
|
270448
270587
|
"Authentication + authorization (RBAC) design and implementation",
|
|
270449
270588
|
"Input validation and sensitive-data (hash/encrypt) handling",
|
|
@@ -303250,7 +303389,7 @@ function getTelemetryAttributes() {
|
|
|
303250
303389
|
attributes["session.id"] = sessionId;
|
|
303251
303390
|
}
|
|
303252
303391
|
if (shouldIncludeAttribute("OTEL_METRICS_INCLUDE_VERSION")) {
|
|
303253
|
-
attributes["app.version"] = "1.3.
|
|
303392
|
+
attributes["app.version"] = "1.3.429";
|
|
303254
303393
|
}
|
|
303255
303394
|
const oauthAccount = getOauthAccountInfo();
|
|
303256
303395
|
if (oauthAccount) {
|
|
@@ -413560,7 +413699,7 @@ function getInstallationEnv() {
|
|
|
413560
413699
|
return;
|
|
413561
413700
|
}
|
|
413562
413701
|
function getClaudeCodeVersion() {
|
|
413563
|
-
return "1.3.
|
|
413702
|
+
return "1.3.429";
|
|
413564
413703
|
}
|
|
413565
413704
|
async function getInstalledVSCodeExtensionVersion(command) {
|
|
413566
413705
|
const { stdout } = await execFileNoThrow(command, ["--list-extensions", "--show-versions"], {
|
|
@@ -418798,7 +418937,7 @@ async function setupSdkMcpClients(sdkMcpConfigs, sendMcpMessage) {
|
|
|
418798
418937
|
const client4 = new Client({
|
|
418799
418938
|
name: "claude-code",
|
|
418800
418939
|
title: "RAYU",
|
|
418801
|
-
version: "1.3.
|
|
418940
|
+
version: "1.3.429",
|
|
418802
418941
|
description: "Anthropic's agentic coding tool",
|
|
418803
418942
|
websiteUrl: PRODUCT_URL
|
|
418804
418943
|
}, {
|
|
@@ -419115,7 +419254,7 @@ var init_client7 = __esm(() => {
|
|
|
419115
419254
|
const client4 = new Client({
|
|
419116
419255
|
name: "claude-code",
|
|
419117
419256
|
title: "RAYU",
|
|
419118
|
-
version: "1.3.
|
|
419257
|
+
version: "1.3.429",
|
|
419119
419258
|
description: "Anthropic's agentic coding tool",
|
|
419120
419259
|
websiteUrl: PRODUCT_URL
|
|
419121
419260
|
}, {
|
|
@@ -433920,7 +434059,7 @@ function computeFingerprint(messageText, version2) {
|
|
|
433920
434059
|
}
|
|
433921
434060
|
function computeFingerprintFromMessages(messages) {
|
|
433922
434061
|
const firstMessageText = extractFirstMessageText(messages);
|
|
433923
|
-
return computeFingerprint(firstMessageText, "1.3.
|
|
434062
|
+
return computeFingerprint(firstMessageText, "1.3.429");
|
|
433924
434063
|
}
|
|
433925
434064
|
var FINGERPRINT_SALT = "59cf53e54c78";
|
|
433926
434065
|
var init_fingerprint = () => {};
|
|
@@ -433962,7 +434101,7 @@ async function sideQuery(opts) {
|
|
|
433962
434101
|
betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
|
|
433963
434102
|
}
|
|
433964
434103
|
const messageText = extractFirstUserMessageText(messages);
|
|
433965
|
-
const fingerprint = computeFingerprint(messageText, "1.3.
|
|
434104
|
+
const fingerprint = computeFingerprint(messageText, "1.3.429");
|
|
433966
434105
|
const attributionHeader = getAttributionHeader(fingerprint);
|
|
433967
434106
|
const systemBlocks = [
|
|
433968
434107
|
attributionHeader ? { type: "text", text: attributionHeader } : null,
|
|
@@ -434110,13 +434249,21 @@ function resolveAgentTools(agentDefinition, availableTools, isAsync3 = false, is
|
|
|
434110
434249
|
return toolName2;
|
|
434111
434250
|
}) ?? []);
|
|
434112
434251
|
const allowedAvailableTools = filteredAvailableTools.filter((tool) => !disallowedToolSet.has(tool.name));
|
|
434113
|
-
const hasWildcard = agentTools === undefined || agentTools.
|
|
434252
|
+
const hasWildcard = agentTools === undefined || agentTools.some((t2) => t2 === "*");
|
|
434114
434253
|
if (hasWildcard) {
|
|
434254
|
+
let wildcardAllowedAgentTypes;
|
|
434255
|
+
for (const toolSpec of agentTools ?? []) {
|
|
434256
|
+
const { toolName: toolName2, ruleContent } = permissionRuleValueFromString(toolSpec);
|
|
434257
|
+
if (toolName2 === AGENT_TOOL_NAME && ruleContent) {
|
|
434258
|
+
wildcardAllowedAgentTypes = ruleContent.split(",").map((s2) => s2.trim());
|
|
434259
|
+
}
|
|
434260
|
+
}
|
|
434115
434261
|
return {
|
|
434116
434262
|
hasWildcard: true,
|
|
434117
434263
|
validTools: [],
|
|
434118
434264
|
invalidTools: [],
|
|
434119
|
-
resolvedTools: allowedAvailableTools
|
|
434265
|
+
resolvedTools: allowedAvailableTools,
|
|
434266
|
+
allowedAgentTypes: wildcardAllowedAgentTypes
|
|
434120
434267
|
};
|
|
434121
434268
|
}
|
|
434122
434269
|
const availableToolMap = new Map;
|
|
@@ -490902,6 +491049,7 @@ var init_ExitPlanModeV2Tool = __esm(() => {
|
|
|
490902
491049
|
}
|
|
490903
491050
|
return {
|
|
490904
491051
|
...prev,
|
|
491052
|
+
swarmMode: true,
|
|
490905
491053
|
toolPermissionContext: {
|
|
490906
491054
|
...baseContext,
|
|
490907
491055
|
mode: restoreMode,
|
|
@@ -491072,7 +491220,7 @@ function AskUserQuestionResultMessage(t0) {
|
|
|
491072
491220
|
]
|
|
491073
491221
|
}, undefined, true, undefined, this),
|
|
491074
491222
|
/* @__PURE__ */ jsx_dev_runtime139.jsxDEV(ThemedText, {
|
|
491075
|
-
children: "User answered
|
|
491223
|
+
children: "User answered Rayu's questions:"
|
|
491076
491224
|
}, undefined, false, undefined, this)
|
|
491077
491225
|
]
|
|
491078
491226
|
}, undefined, true, undefined, this);
|
|
@@ -502831,6 +502979,7 @@ function getDefaultAppState() {
|
|
|
502831
502979
|
snapshotSequence: 0
|
|
502832
502980
|
},
|
|
502833
502981
|
pendingFileChanges: [],
|
|
502982
|
+
swarmMode: false,
|
|
502834
502983
|
attribution: createEmptyAttributionState(),
|
|
502835
502984
|
mcp: {
|
|
502836
502985
|
clients: [],
|
|
@@ -509254,6 +509403,19 @@ You have exited plan mode. You can now make edits, run tools, and take actions.$
|
|
|
509254
509403
|
createUserMessage({ content, isMeta: true })
|
|
509255
509404
|
]);
|
|
509256
509405
|
}
|
|
509406
|
+
case "swarm_mode": {
|
|
509407
|
+
const content = `## Collaborator-swarm mode is ON
|
|
509408
|
+
|
|
509409
|
+
You are the ORCHESTRATOR — coordinate, do not implement yourself. Run the 3-phase build flow:
|
|
509410
|
+
1. SCOPE & RESEARCH — clarify the request's detail and scope; ask the user for their preferred tech stack (offer recommendations with rationale). For open implementation choices (e.g. payment: Stripe / bank / ABA), dispatch the PA subagent to research the real options and present them for the user to choose.
|
|
509411
|
+
2. ALIGNED PLAN — have PA produce ONE coherent plan, explicitly aligned across backend AND frontend (shared API contract, data model, auth); get the user's confirmation.
|
|
509412
|
+
3. DELEGATE BY SPECIALTY — decompose into backend / frontend / mobile subtasks and delegate to the matching collaborators (run independent work in parallel). Each collaborator may use only its allowed subagents.
|
|
509413
|
+
|
|
509414
|
+
The user can return to normal mode with /normal.`;
|
|
509415
|
+
return wrapMessagesInSystemReminder([
|
|
509416
|
+
createUserMessage({ content, isMeta: true })
|
|
509417
|
+
]);
|
|
509418
|
+
}
|
|
509257
509419
|
case "auto_mode": {
|
|
509258
509420
|
return getAutoModeInstructions(attachment);
|
|
509259
509421
|
}
|
|
@@ -512468,6 +512630,7 @@ async function getAttachments(input, toolUseContext, ideSelection, queuedCommand
|
|
|
512468
512630
|
maybe("skill_listing", () => getSkillListingAttachments(context)),
|
|
512469
512631
|
maybe("plan_mode", () => getPlanModeAttachments(messages, toolUseContext)),
|
|
512470
512632
|
maybe("plan_mode_exit", () => getPlanModeExitAttachment(toolUseContext)),
|
|
512633
|
+
maybe("swarm_mode", () => getSwarmModeAttachment(messages, toolUseContext)),
|
|
512471
512634
|
...[],
|
|
512472
512635
|
maybe("todo_reminders", () => isTodoV2Enabled() ? getTaskReminderAttachments(messages, toolUseContext) : getTodoReminderAttachments(messages, toolUseContext)),
|
|
512473
512636
|
...isAgentSwarmsEnabled() ? [
|
|
@@ -512653,6 +512816,22 @@ async function getPlanModeAttachments(messages, toolUseContext) {
|
|
|
512653
512816
|
});
|
|
512654
512817
|
return attachments;
|
|
512655
512818
|
}
|
|
512819
|
+
async function getSwarmModeAttachment(messages, toolUseContext) {
|
|
512820
|
+
if (toolUseContext.agentId) {
|
|
512821
|
+
return [];
|
|
512822
|
+
}
|
|
512823
|
+
if (!toolUseContext.getAppState().swarmMode) {
|
|
512824
|
+
return [];
|
|
512825
|
+
}
|
|
512826
|
+
if (messages && messages.length > 0) {
|
|
512827
|
+
const last2 = messages[messages.length - 1];
|
|
512828
|
+
const isHumanTurn2 = last2?.type === "user" && !last2.isMeta && !hasToolResultContent(last2.message.content);
|
|
512829
|
+
if (!isHumanTurn2) {
|
|
512830
|
+
return [];
|
|
512831
|
+
}
|
|
512832
|
+
}
|
|
512833
|
+
return [{ type: "swarm_mode" }];
|
|
512834
|
+
}
|
|
512656
512835
|
async function getPlanModeExitAttachment(toolUseContext) {
|
|
512657
512836
|
if (!needsPlanModeExitAttachment()) {
|
|
512658
512837
|
return [];
|
|
@@ -528900,7 +529079,7 @@ function Feedback({
|
|
|
528900
529079
|
platform: env4.platform,
|
|
528901
529080
|
gitRepo: envInfo.isGit,
|
|
528902
529081
|
terminal: env4.terminal,
|
|
528903
|
-
version: "1.3.
|
|
529082
|
+
version: "1.3.429",
|
|
528904
529083
|
transcript: normalizeMessagesForAPI(messages),
|
|
528905
529084
|
errors: sanitizedErrors,
|
|
528906
529085
|
lastApiRequest: getLastAPIRequest(),
|
|
@@ -529092,7 +529271,7 @@ function Feedback({
|
|
|
529092
529271
|
", ",
|
|
529093
529272
|
env4.terminal,
|
|
529094
529273
|
", v",
|
|
529095
|
-
"1.3.
|
|
529274
|
+
"1.3.429"
|
|
529096
529275
|
]
|
|
529097
529276
|
}, undefined, true, undefined, this)
|
|
529098
529277
|
]
|
|
@@ -529198,7 +529377,7 @@ ${sanitizedDescription}
|
|
|
529198
529377
|
` + `**Environment Info**
|
|
529199
529378
|
` + `- Platform: ${env4.platform}
|
|
529200
529379
|
` + `- Terminal: ${env4.terminal}
|
|
529201
|
-
` + `- Version: ${"1.3.
|
|
529380
|
+
` + `- Version: ${"1.3.429"}
|
|
529202
529381
|
` + `- Feedback ID: ${feedbackId}
|
|
529203
529382
|
` + `
|
|
529204
529383
|
**Errors**
|
|
@@ -530486,6 +530665,7 @@ async function clearConversation({
|
|
|
530486
530665
|
snapshotSequence: 0
|
|
530487
530666
|
},
|
|
530488
530667
|
pendingFileChanges: [],
|
|
530668
|
+
swarmMode: false,
|
|
530489
530669
|
mcp: {
|
|
530490
530670
|
clients: [],
|
|
530491
530671
|
tools: [],
|
|
@@ -532037,9 +532217,9 @@ async function assertMinVersion() {
|
|
|
532037
532217
|
if (false) {}
|
|
532038
532218
|
try {
|
|
532039
532219
|
const versionConfig = await getDynamicConfig_BLOCKS_ON_INIT("tengu_version_config", { minVersion: "0.0.0" });
|
|
532040
|
-
if (versionConfig.minVersion && lt("1.3.
|
|
532220
|
+
if (versionConfig.minVersion && lt("1.3.429", versionConfig.minVersion)) {
|
|
532041
532221
|
console.error(`
|
|
532042
|
-
It looks like your version of RAYU (${"1.3.
|
|
532222
|
+
It looks like your version of RAYU (${"1.3.429"}) needs an update.
|
|
532043
532223
|
A newer version (${versionConfig.minVersion} or higher) is required to continue.
|
|
532044
532224
|
|
|
532045
532225
|
To update, please run:
|
|
@@ -532265,7 +532445,7 @@ async function installGlobalPackage(specificVersion) {
|
|
|
532265
532445
|
logError2(new AutoUpdaterError("Another process is currently installing an update"));
|
|
532266
532446
|
logEvent("tengu_auto_updater_lock_contention", {
|
|
532267
532447
|
pid: process.pid,
|
|
532268
|
-
currentVersion: "1.3.
|
|
532448
|
+
currentVersion: "1.3.429"
|
|
532269
532449
|
});
|
|
532270
532450
|
return "in_progress";
|
|
532271
532451
|
}
|
|
@@ -532274,7 +532454,7 @@ async function installGlobalPackage(specificVersion) {
|
|
|
532274
532454
|
if (!env4.isRunningWithBun() && env4.isNpmFromWindowsPath()) {
|
|
532275
532455
|
logError2(new Error("Windows NPM detected in WSL environment"));
|
|
532276
532456
|
logEvent("tengu_auto_updater_windows_npm_in_wsl", {
|
|
532277
|
-
currentVersion: "1.3.
|
|
532457
|
+
currentVersion: "1.3.429"
|
|
532278
532458
|
});
|
|
532279
532459
|
console.error(`
|
|
532280
532460
|
Error: Windows NPM detected in WSL
|
|
@@ -532810,7 +532990,7 @@ function detectLinuxGlobPatternWarnings() {
|
|
|
532810
532990
|
}
|
|
532811
532991
|
async function getDoctorDiagnostic() {
|
|
532812
532992
|
const installationType = await getCurrentInstallationType();
|
|
532813
|
-
const version2 = typeof MACRO !== "undefined" ? "1.3.
|
|
532993
|
+
const version2 = typeof MACRO !== "undefined" ? "1.3.429" : "unknown";
|
|
532814
532994
|
const installationPath = await getInstallationPath();
|
|
532815
532995
|
const invokedBinary = getInvokedBinary();
|
|
532816
532996
|
const multipleInstallations = await detectMultipleInstallations();
|
|
@@ -533605,8 +533785,8 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
|
|
|
533605
533785
|
const maxVersion = await getMaxVersion();
|
|
533606
533786
|
if (maxVersion && gt(version2, maxVersion)) {
|
|
533607
533787
|
logForDebugging(`Native installer: maxVersion ${maxVersion} is set, capping update from ${version2} to ${maxVersion}`);
|
|
533608
|
-
if (gte("1.3.
|
|
533609
|
-
logForDebugging(`Native installer: current version ${"1.3.
|
|
533788
|
+
if (gte("1.3.429", maxVersion)) {
|
|
533789
|
+
logForDebugging(`Native installer: current version ${"1.3.429"} is already at or above maxVersion ${maxVersion}, skipping update`);
|
|
533610
533790
|
logEvent("tengu_native_update_skipped_max_version", {
|
|
533611
533791
|
latency_ms: Date.now() - startTime,
|
|
533612
533792
|
max_version: maxVersion,
|
|
@@ -533617,7 +533797,7 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
|
|
|
533617
533797
|
version2 = maxVersion;
|
|
533618
533798
|
}
|
|
533619
533799
|
}
|
|
533620
|
-
if (!forceReinstall && version2 === "1.3.
|
|
533800
|
+
if (!forceReinstall && version2 === "1.3.429" && await versionIsAvailable(version2) && await isPossibleClaudeBinary(executablePath)) {
|
|
533621
533801
|
logForDebugging(`Found ${version2} at ${executablePath}, skipping install`);
|
|
533622
533802
|
logEvent("tengu_native_update_complete", {
|
|
533623
533803
|
latency_ms: Date.now() - startTime,
|
|
@@ -534813,7 +534993,7 @@ function buildPrimarySection() {
|
|
|
534813
534993
|
}, undefined, false, undefined, this);
|
|
534814
534994
|
return [{
|
|
534815
534995
|
label: "Version",
|
|
534816
|
-
value: "1.3.
|
|
534996
|
+
value: "1.3.429"
|
|
534817
534997
|
}, {
|
|
534818
534998
|
label: "Session name",
|
|
534819
534999
|
value: nameValue
|
|
@@ -538504,7 +538684,7 @@ function Config({
|
|
|
538504
538684
|
}
|
|
538505
538685
|
}, undefined, false, undefined, this)
|
|
538506
538686
|
}, undefined, false, undefined, this) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_dev_runtime170.jsxDEV(ChannelDowngradeDialog, {
|
|
538507
|
-
currentVersion: "1.3.
|
|
538687
|
+
currentVersion: "1.3.429",
|
|
538508
538688
|
onChoice: (choice) => {
|
|
538509
538689
|
setShowSubmenu(null);
|
|
538510
538690
|
setTabsHidden(false);
|
|
@@ -538516,7 +538696,7 @@ function Config({
|
|
|
538516
538696
|
autoUpdatesChannel: "stable"
|
|
538517
538697
|
};
|
|
538518
538698
|
if (choice === "stay") {
|
|
538519
|
-
newSettings.minimumVersion = "1.3.
|
|
538699
|
+
newSettings.minimumVersion = "1.3.429";
|
|
538520
538700
|
}
|
|
538521
538701
|
updateSettingsForSource("userSettings", newSettings);
|
|
538522
538702
|
setSettingsData((prev_27) => ({
|
|
@@ -546578,7 +546758,7 @@ function HelpV2(t0) {
|
|
|
546578
546758
|
let t6;
|
|
546579
546759
|
if ($3[31] !== tabs) {
|
|
546580
546760
|
t6 = /* @__PURE__ */ jsx_dev_runtime197.jsxDEV(Tabs, {
|
|
546581
|
-
title: `Rayu-CLI v${"1.3.
|
|
546761
|
+
title: `Rayu-CLI v${"1.3.429"}`,
|
|
546582
546762
|
color: "professionalBlue",
|
|
546583
546763
|
defaultTab: "general",
|
|
546584
546764
|
children: tabs
|
|
@@ -547942,18 +548122,27 @@ After writing the skill file(s), inform the user:
|
|
|
547942
548122
|
init_verifiers_default = command4;
|
|
547943
548123
|
});
|
|
547944
548124
|
|
|
548125
|
+
// src/utils/swarmMode.ts
|
|
548126
|
+
function getSwarmMode(state) {
|
|
548127
|
+
return state.swarmMode === true;
|
|
548128
|
+
}
|
|
548129
|
+
function setSwarmModeUpdater(value) {
|
|
548130
|
+
return (prev) => prev.swarmMode === value ? prev : { ...prev, swarmMode: value };
|
|
548131
|
+
}
|
|
548132
|
+
|
|
547945
548133
|
// src/commands/collaborator-swarm/index.ts
|
|
547946
548134
|
var command5, collaborator_swarm_default;
|
|
547947
548135
|
var init_collaborator_swarm = __esm(() => {
|
|
547948
548136
|
command5 = {
|
|
547949
548137
|
type: "prompt",
|
|
547950
548138
|
name: "collaborator_swarm",
|
|
547951
|
-
description: "
|
|
548139
|
+
description: "Enter collaborator_swarm mode: orchestrate a complex build via the 3-phase flow (scope & research → aligned plan → delegate to specialist collaborators). /normal exits.",
|
|
547952
548140
|
argumentHint: "[task description]",
|
|
547953
548141
|
contentLength: 0,
|
|
547954
548142
|
progressMessage: "coordinating the collaborator swarm",
|
|
547955
548143
|
source: "builtin",
|
|
547956
|
-
async getPromptForCommand(args) {
|
|
548144
|
+
async getPromptForCommand(args, context2) {
|
|
548145
|
+
context2?.setAppState?.(setSwarmModeUpdater(true));
|
|
547957
548146
|
const task = (args ?? "").trim();
|
|
547958
548147
|
const taskLine = task ? `The task to coordinate:
|
|
547959
548148
|
|
|
@@ -547974,9 +548163,19 @@ HARD RULE: if a Collaborator or Subagent stalls, errors, or doesn't respond, you
|
|
|
547974
548163
|
Keep going until the task is fully resolved; state assumptions and continue — don't stop for approval unless genuinely blocked. (If the task is actually trivial, say so and suggest the user just ask normally instead of the swarm — but if you proceed here, you proceed as orchestrator: delegating and verifying, not coding.)
|
|
547975
548164
|
|
|
547976
548165
|
## The three tiers
|
|
547977
|
-
- **You (Orchestrator)** —
|
|
547978
|
-
- **Collaborators (Tier 2)** — semi-persistent domain implementers you delegate to: \`frontend\`, \`backend\` (incl. database), \`mobile\`, \`security\`, \`deploy\`. Spawn each as a NAMED BACKGROUND agent (run_in_background:true, stable lowercase name) so you can resume it with SendMessage instead of respawning. They have full tools and may
|
|
547979
|
-
- **Subagents (Tier 3)** — ephemeral one-shot helpers
|
|
548166
|
+
- **You (Orchestrator)** — scope, plan, own SharedContext, coordinate, integrate. You delegate all implementation; you call only the orchestrator-level subagents directly.
|
|
548167
|
+
- **Collaborators (Tier 2)** — semi-persistent domain implementers you delegate to: \`frontend\`, \`backend\` (incl. database), \`mobile\`, \`security\`, \`deploy\`. Spawn each as a NAMED BACKGROUND agent (run_in_background:true, stable lowercase name) so you can resume it with SendMessage instead of respawning. They have full tools and may dispatch ONLY their allowed subagents (see the matrix).
|
|
548168
|
+
- **Subagents (Tier 3)** — ephemeral one-shot helpers: \`PA\` (deep plan/research — orchestrator only), \`design\` (UI/UX + component PRD), \`backend-design\` (API + Data Model PRD), \`global-setup\` (scaffold — orchestrator only), \`asset-generation\` (images), \`review\` (audit → Fix List), \`fix\` (apply Fix List), \`linter\`, plus \`Explore\` and \`general-purpose\` (research).
|
|
548169
|
+
|
|
548170
|
+
## Subagent specialization matrix (who may call what)
|
|
548171
|
+
Domain-locked so each agent uses only what fits its specialty:
|
|
548172
|
+
- **You (Orchestrator):** PA, global-setup, design, backend-design, asset-generation, review, fix, linter, Explore, general-purpose.
|
|
548173
|
+
- **frontend:** design, asset-generation, review, fix, linter, Explore, general-purpose. (NOT backend-design.)
|
|
548174
|
+
- **backend:** backend-design, review, fix, linter, Explore, general-purpose. (NOT design or asset-generation.)
|
|
548175
|
+
- **mobile:** design, asset-generation, backend-design, review, fix, linter, Explore, general-purpose.
|
|
548176
|
+
- **security:** backend-design, review, fix, linter, Explore, general-purpose.
|
|
548177
|
+
- **deploy:** review, fix, linter, Explore, general-purpose.
|
|
548178
|
+
\`PA\` and \`global-setup\` are ORCHESTRATOR-ONLY — collaborators implement; they never re-plan or re-scaffold. (These limits are also enforced in code.)
|
|
547980
548179
|
|
|
547981
548180
|
## DEFAULT TO PARALLEL (the single most important rule)
|
|
547982
548181
|
Parallel execution is ~3–5x faster than sequential. Unless one call genuinely needs another's output, dispatch independent agents/tools TOGETHER in ONE assistant message (multiple Agent calls), not one-per-message. Plan all the calls you'll need upfront, then fire them together. Cap each batch at ~3–5 calls to avoid timeouts. Sequential is the exception, allowed ONLY on a true dependency. One-per-message dispatch is the #1 cause of slow swarm runs — avoid it.
|
|
@@ -547985,33 +548184,43 @@ Parallel execution is ~3–5x faster than sequential. Unless one call genuinely
|
|
|
547985
548184
|
- Run ALL **Subagents in the FOREGROUND** — do NOT set \`run_in_background\` on a subagent. Their work and \`thinking…\` then stream INLINE so the user can watch them. This applies whether YOU (the orchestrator) dispatch the subagent OR a collaborator does (a collaborator's subagents appear inside that collaborator's view).
|
|
547986
548185
|
- Spawn **Collaborators in the BACKGROUND** (\`run_in_background:true\`, stable lowercase name). Background is the ONLY mode that is resumable via \`SendMessage\`, so semi-persistent collaborators MUST be background. The user watches a collaborator's detailed work by entering its view (↓ then Enter); the task panel shows each collaborator's high-level status (including \`thinking…\`).
|
|
547987
548186
|
|
|
547988
|
-
##
|
|
547989
|
-
|
|
547990
|
-
|
|
547991
|
-
|
|
547992
|
-
|
|
547993
|
-
|
|
547994
|
-
|
|
547995
|
-
|
|
548187
|
+
## The 3-phase build flow
|
|
548188
|
+
### Phase 1 — Scope & Research (you + PA, in the foreground)
|
|
548189
|
+
- Clarify the request: ask the user for the missing DETAIL and SCOPE, and ask their PREFERRED TECH STACK — offer 2–3 concrete recommendations with a one-line rationale each (don't make them guess).
|
|
548190
|
+
- For any OPEN implementation choice (e.g. a payment provider — Stripe vs a bank gateway vs ABA), dispatch the \`PA\` subagent to RESEARCH the real, available options for THIS project and return a short comparison; present those options to the user and let them choose. Loop until you have everything you need.
|
|
548191
|
+
|
|
548192
|
+
### Phase 2 — One aligned plan (PA → you → user)
|
|
548193
|
+
- Hand the gathered context to \`PA\` for a deep, reasoned plan. PA must produce ONE coherent plan that is explicitly ALIGNED across backend AND frontend (shared API contract, data model, auth flow) — never two disjoint plans.
|
|
548194
|
+
- Relay PA's plan to the user for FINAL confirmation. (In plan mode, that's the ExitPlanMode approval — confirming auto-enters swarm execution.)
|
|
548195
|
+
|
|
548196
|
+
### Phase 3 — Build (decompose by specialty; run as a dependency graph, not fixed waves)
|
|
548197
|
+
1. **Setup gate (one short step):** for a new project, run \`global-setup\` to scaffold the FE+BE folder structure + tooling.
|
|
548198
|
+
2. **Design block — 3-way PARALLEL (one message):** dispatch together \`global-setup\` (if not already done) ∥ \`design\` (UI/UX + component PRD) ∥ \`backend-design\` (API + Data Model PRD). They're independent — each derives from the plan, not from each other.
|
|
548199
|
+
\`\`\`
|
|
548200
|
+
Agent(subagent_type:"design", prompt:"<UI/UX + component PRD from the plan>")
|
|
548201
|
+
Agent(subagent_type:"backend-design", prompt:"<API contract + data model from the plan>")
|
|
548202
|
+
\`\`\`
|
|
548203
|
+
3. **Implement — parallel where independent:** dispatch \`backend\` (builds API+DB from the backend-design PRD) ∥ \`security\` (auth/RBAC) together; then \`frontend\` ∥ \`mobile\` (integrate against the backend contract + the Design PRD) together. Each collaborator uses ONLY its allowed subagents.
|
|
547996
548204
|
\`\`\`
|
|
547997
548205
|
Agent(subagent_type:"backend", run_in_background:true, name:"backend", prompt:"<task + contracts>")
|
|
547998
548206
|
Agent(subagent_type:"security", run_in_background:true, name:"security", prompt:"<task + contracts>")
|
|
547999
548207
|
\`\`\`
|
|
548000
|
-
|
|
548001
|
-
|
|
548002
|
-
|
|
548003
|
-
|
|
548208
|
+
4. **Coordinate via SharedContext, not by re-typing.** Each collaborator reads the shared brief (\`.rayu/swarm/shared.json\`: goal/stack/flow/constraints/needs) + its dependency sections and writes its own \`.rayu/swarm/<domain>.md\`. Keep the brief tight (< ~500 tokens) and set "needs" to ONLY the domains this task requires. Always use \`.rayu/swarm/\` — NEVER a \`.claude/\` directory.
|
|
548209
|
+
5. **Resume, don't respawn.** For a follow-up in a domain that already ran, SendMessage to that collaborator's name; spawn fresh only for a new domain.
|
|
548210
|
+
6. **Audit & fix (verification gate):** after a build wave, run \`review\` (→ Fix List), then \`fix\` (or the owning collaborator) to apply it; re-review until clean. Don't report done until build/tests pass and the review→fix loop is clean.
|
|
548211
|
+
7. **Ship:** the \`deploy\` collaborator runs the production build and deploys.
|
|
548004
548212
|
|
|
548005
548213
|
## Rules
|
|
548006
|
-
- Do NOT use TaskCreate / task-list tools to coordinate the swarm — track
|
|
548214
|
+
- Do NOT use TaskCreate / task-list tools to coordinate the swarm — track progress inline in your messages; the collaborator/subagent dispatches ARE the units of work.
|
|
548007
548215
|
- Security and the chosen architecture are authoritative — collaborators build within them.
|
|
548008
|
-
-
|
|
548216
|
+
- Respect the subagent matrix: never route a job to a collaborator outside its specialty (e.g. don't ask \`backend\` for UI/images, or \`frontend\` for the data model).
|
|
548217
|
+
- Maximize parallelism for independent work; go sequential only on a true dependency.
|
|
548009
548218
|
- Be autonomous: keep going until done; only pause if truly blocked. Report concisely and high-signal — don't narrate every step.
|
|
548010
548219
|
|
|
548011
548220
|
## Finish
|
|
548012
548221
|
Integrate the collaborators' outputs into one coherent result, crediting which collaborator produced what, and report concisely to the user — only after the verification gate (build/tests pass, review→fix clean).
|
|
548013
548222
|
|
|
548014
|
-
|
|
548223
|
+
This session is now in collaborator_swarm mode (it stays on for the whole session; the user exits with /normal). Begin with PHASE 1: state your understanding, ask the user for the missing scope + preferred tech stack (with recommendations), and dispatch \`PA\` for any implementation-option research the request needs.`
|
|
548015
548224
|
}
|
|
548016
548225
|
];
|
|
548017
548226
|
}
|
|
@@ -548019,6 +548228,34 @@ Begin by stating your analysis/plan step (read the project and discuss with the
|
|
|
548019
548228
|
collaborator_swarm_default = command5;
|
|
548020
548229
|
});
|
|
548021
548230
|
|
|
548231
|
+
// src/commands/normal/normal.ts
|
|
548232
|
+
var exports_normal = {};
|
|
548233
|
+
__export(exports_normal, {
|
|
548234
|
+
call: () => call17
|
|
548235
|
+
});
|
|
548236
|
+
var call17 = async (_args, context2) => {
|
|
548237
|
+
const wasOn = getSwarmMode(context2.getAppState());
|
|
548238
|
+
context2.setAppState(setSwarmModeUpdater(false));
|
|
548239
|
+
return {
|
|
548240
|
+
type: "text",
|
|
548241
|
+
value: wasOn ? "Exited collaborator_swarm mode — back to normal mode." : "Already in normal mode."
|
|
548242
|
+
};
|
|
548243
|
+
};
|
|
548244
|
+
var init_normal = () => {};
|
|
548245
|
+
|
|
548246
|
+
// src/commands/normal/index.ts
|
|
548247
|
+
var normal, normal_default;
|
|
548248
|
+
var init_normal2 = __esm(() => {
|
|
548249
|
+
normal = {
|
|
548250
|
+
type: "local",
|
|
548251
|
+
name: "normal",
|
|
548252
|
+
description: "Exit collaborator_swarm mode (return to normal mode)",
|
|
548253
|
+
supportsNonInteractive: false,
|
|
548254
|
+
load: () => Promise.resolve().then(() => (init_normal(), exports_normal))
|
|
548255
|
+
};
|
|
548256
|
+
normal_default = normal;
|
|
548257
|
+
});
|
|
548258
|
+
|
|
548022
548259
|
// src/keybindings/template.ts
|
|
548023
548260
|
function filterReservedShortcuts(blocks) {
|
|
548024
548261
|
const reservedKeys = new Set(NON_REBINDABLE.map((r2) => normalizeKeyForComparison(r2.key)));
|
|
@@ -548050,11 +548287,11 @@ var init_template2 = __esm(() => {
|
|
|
548050
548287
|
// src/commands/keybindings/keybindings.ts
|
|
548051
548288
|
var exports_keybindings = {};
|
|
548052
548289
|
__export(exports_keybindings, {
|
|
548053
|
-
call: () =>
|
|
548290
|
+
call: () => call18
|
|
548054
548291
|
});
|
|
548055
548292
|
import { mkdir as mkdir34, writeFile as writeFile37 } from "fs/promises";
|
|
548056
548293
|
import { dirname as dirname58 } from "path";
|
|
548057
|
-
async function
|
|
548294
|
+
async function call18() {
|
|
548058
548295
|
if (!isKeybindingCustomizationEnabled()) {
|
|
548059
548296
|
return {
|
|
548060
548297
|
type: "text",
|
|
@@ -548113,9 +548350,9 @@ var init_keybindings2 = __esm(() => {
|
|
|
548113
548350
|
// src/commands/keep/keep.ts
|
|
548114
548351
|
var exports_keep = {};
|
|
548115
548352
|
__export(exports_keep, {
|
|
548116
|
-
call: () =>
|
|
548353
|
+
call: () => call19
|
|
548117
548354
|
});
|
|
548118
|
-
var
|
|
548355
|
+
var call19 = async (args, context2) => {
|
|
548119
548356
|
return {
|
|
548120
548357
|
type: "text",
|
|
548121
548358
|
value: keepPendingFileChanges(context2, args)
|
|
@@ -562161,7 +562398,7 @@ var init_PluginSettings = __esm(() => {
|
|
|
562161
562398
|
// src/commands/mcp/mcp.tsx
|
|
562162
562399
|
var exports_mcp = {};
|
|
562163
562400
|
__export(exports_mcp, {
|
|
562164
|
-
call: () =>
|
|
562401
|
+
call: () => call20
|
|
562165
562402
|
});
|
|
562166
562403
|
function MCPToggle(t0) {
|
|
562167
562404
|
const $3 = import_compiler_runtime170.c(7);
|
|
@@ -562214,7 +562451,7 @@ function _temp239(c4) {
|
|
|
562214
562451
|
function _temp98(s2) {
|
|
562215
562452
|
return s2.mcp.clients;
|
|
562216
562453
|
}
|
|
562217
|
-
async function
|
|
562454
|
+
async function call20(onDone, _context, args) {
|
|
562218
562455
|
if (args) {
|
|
562219
562456
|
const parts = args.trim().split(/\s+/);
|
|
562220
562457
|
if (parts[0] === "no-redirect") {
|
|
@@ -564861,7 +565098,7 @@ var API_BASE2 = "https://api.telegram.org", MAX_MESSAGE_CHARS = 4096;
|
|
|
564861
565098
|
// src/commands/telegram-bot/telegram-bot.tsx
|
|
564862
565099
|
var exports_telegram_bot = {};
|
|
564863
565100
|
__export(exports_telegram_bot, {
|
|
564864
|
-
call: () =>
|
|
565101
|
+
call: () => call21
|
|
564865
565102
|
});
|
|
564866
565103
|
import { randomUUID as randomUUID31 } from "crypto";
|
|
564867
565104
|
function TokenInputStep({ onTokenSaved }) {
|
|
@@ -565048,7 +565285,7 @@ function TelegramBotConnect({ onDone }) {
|
|
|
565048
565285
|
onDone
|
|
565049
565286
|
}, undefined, false, undefined, this);
|
|
565050
565287
|
}
|
|
565051
|
-
async function
|
|
565288
|
+
async function call21(onDone) {
|
|
565052
565289
|
return /* @__PURE__ */ jsx_dev_runtime224.jsxDEV(TelegramBotConnect, {
|
|
565053
565290
|
onDone
|
|
565054
565291
|
}, undefined, false, undefined, this);
|
|
@@ -565080,9 +565317,9 @@ var init_telegram_bot2 = __esm(() => {
|
|
|
565080
565317
|
// src/commands/telegram-bot/disconnect.ts
|
|
565081
565318
|
var exports_disconnect = {};
|
|
565082
565319
|
__export(exports_disconnect, {
|
|
565083
|
-
call: () =>
|
|
565320
|
+
call: () => call22
|
|
565084
565321
|
});
|
|
565085
|
-
async function
|
|
565322
|
+
async function call22() {
|
|
565086
565323
|
const config5 = readTelegramConfig();
|
|
565087
565324
|
if (!config5.linkedChatId) {
|
|
565088
565325
|
return { type: "text", value: "Telegram bot is not currently linked." };
|
|
@@ -565667,9 +565904,9 @@ var init_createSession = __esm(() => {
|
|
|
565667
565904
|
// src/commands/rename/rename.ts
|
|
565668
565905
|
var exports_rename = {};
|
|
565669
565906
|
__export(exports_rename, {
|
|
565670
|
-
call: () =>
|
|
565907
|
+
call: () => call23
|
|
565671
565908
|
});
|
|
565672
|
-
async function
|
|
565909
|
+
async function call23(onDone, context2, args) {
|
|
565673
565910
|
if (isTeammate()) {
|
|
565674
565911
|
onDone("Cannot rename: This session is a swarm teammate. Teammate names are set by the team leader.", { display: "system" });
|
|
565675
565912
|
return null;
|
|
@@ -565905,9 +566142,9 @@ var init_ReviewDetailDialog = __esm(() => {
|
|
|
565905
566142
|
// src/commands/review-detial/review-detial.tsx
|
|
565906
566143
|
var exports_review_detial = {};
|
|
565907
566144
|
__export(exports_review_detial, {
|
|
565908
|
-
call: () =>
|
|
566145
|
+
call: () => call24
|
|
565909
566146
|
});
|
|
565910
|
-
var jsx_dev_runtime226,
|
|
566147
|
+
var jsx_dev_runtime226, call24 = async (onDone, context2, args) => {
|
|
565911
566148
|
const result = resolvePendingFileChangeReview(context2, args ?? "");
|
|
565912
566149
|
if (result.type === "message") {
|
|
565913
566150
|
onDone(result.message, { display: "system" });
|
|
@@ -566553,7 +566790,7 @@ function getRecentReleaseNotes(currentVersion, previousVersion, changelogContent
|
|
|
566553
566790
|
}
|
|
566554
566791
|
return [];
|
|
566555
566792
|
}
|
|
566556
|
-
async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.3.
|
|
566793
|
+
async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.3.429") {
|
|
566557
566794
|
if (false) {}
|
|
566558
566795
|
const cachedChangelog = await getStoredChangelog();
|
|
566559
566796
|
if (lastSeenVersion !== currentVersion || !cachedChangelog) {
|
|
@@ -566566,7 +566803,7 @@ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.3.428")
|
|
|
566566
566803
|
releaseNotes
|
|
566567
566804
|
};
|
|
566568
566805
|
}
|
|
566569
|
-
function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.3.
|
|
566806
|
+
function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.3.429") {
|
|
566570
566807
|
if (false) {}
|
|
566571
566808
|
const releaseNotes = getRecentReleaseNotes(currentVersion, lastSeenVersion);
|
|
566572
566809
|
return {
|
|
@@ -566694,11 +566931,11 @@ function getRecentActivitySync() {
|
|
|
566694
566931
|
return cachedActivity;
|
|
566695
566932
|
}
|
|
566696
566933
|
function getLogoDisplayData() {
|
|
566697
|
-
const version2 = process.env.DEMO_VERSION ?? "1.3.
|
|
566934
|
+
const version2 = process.env.DEMO_VERSION ?? "1.3.429";
|
|
566698
566935
|
const serverUrl = getDirectConnectServerUrl();
|
|
566699
566936
|
const displayPath = process.env.DEMO_VERSION ? "/code/claude" : getDisplayPath(getCwd());
|
|
566700
566937
|
const cwd2 = serverUrl ? `${displayPath} in ${serverUrl.replace(/^https?:\/\//, "")}` : displayPath;
|
|
566701
|
-
const billingType = isClaudeAISubscriber() ? getSubscriptionName() : "API Usage Billing";
|
|
566938
|
+
const billingType = isClaudeAISubscriber() ? getSubscriptionName() : getActiveProviderDisplayName() ?? "API Usage Billing";
|
|
566702
566939
|
const agentName = getInitialSettings().agent;
|
|
566703
566940
|
return {
|
|
566704
566941
|
version: version2,
|
|
@@ -566755,6 +566992,7 @@ var init_logoV2Utils = __esm(() => {
|
|
|
566755
566992
|
init_file2();
|
|
566756
566993
|
init_format();
|
|
566757
566994
|
init_releaseNotes();
|
|
566995
|
+
init_rayuProviders();
|
|
566758
566996
|
init_sessionStorage();
|
|
566759
566997
|
init_settings2();
|
|
566760
566998
|
cachedActivity = [];
|
|
@@ -566776,12 +567014,12 @@ var init_Clawd = __esm(() => {
|
|
|
566776
567014
|
init_ink2();
|
|
566777
567015
|
jsx_dev_runtime228 = __toESM(require_jsx_dev_runtime(), 1);
|
|
566778
567016
|
RAYU_BANNER = [
|
|
566779
|
-
["██████╗ █████╗ ██╗ ██╗██╗ ██╗", "#
|
|
566780
|
-
["██╔══██╗██╔══██╗╚██╗ ██╔╝██║ ██║", "#
|
|
567017
|
+
["██████╗ █████╗ ██╗ ██╗██╗ ██╗", "#ff7cda"],
|
|
567018
|
+
["██╔══██╗██╔══██╗╚██╗ ██╔╝██║ ██║", "#a35bf5"],
|
|
566781
567019
|
["██████╔╝███████║ ╚████╔╝ ██║ ██║", "#3DE877"],
|
|
566782
|
-
["██╔══██╗██╔══██║ ╚██╔╝ ██║ ██║", "#
|
|
566783
|
-
["██║ ██║██║ ██║ ██║ ╚██████╔╝", "#
|
|
566784
|
-
["╚═╝ ╚═╝╚═╝ ╚═╝ ╚═╝ ╚═════╝ ", "#
|
|
567020
|
+
["██╔══██╗██╔══██║ ╚██╔╝ ██║ ██║", "#2822d0"],
|
|
567021
|
+
["██║ ██║██║ ██║ ██║ ╚██████╔╝", "#84b815"],
|
|
567022
|
+
["╚═╝ ╚═╝╚═╝ ╚═╝ ╚═╝ ╚═════╝ ", "#9b0e84"]
|
|
566785
567023
|
];
|
|
566786
567024
|
});
|
|
566787
567025
|
|
|
@@ -567986,7 +568224,7 @@ function LogoV2() {
|
|
|
567986
568224
|
if ($3[2] === Symbol.for("react.memo_cache_sentinel")) {
|
|
567987
568225
|
t2 = () => {
|
|
567988
568226
|
const currentConfig = getGlobalConfig();
|
|
567989
|
-
if (currentConfig.lastReleaseNotesSeen === "1.3.
|
|
568227
|
+
if (currentConfig.lastReleaseNotesSeen === "1.3.429") {
|
|
567990
568228
|
return;
|
|
567991
568229
|
}
|
|
567992
568230
|
saveGlobalConfig(_temp327);
|
|
@@ -568464,7 +568702,7 @@ function LogoV2() {
|
|
|
568464
568702
|
t24 = $3[61];
|
|
568465
568703
|
}
|
|
568466
568704
|
const _latestNpm = getCachedLatestNpmVersionSync();
|
|
568467
|
-
const _updateFeeds = _latestNpm && gt(_latestNpm, "1.3.
|
|
568705
|
+
const _updateFeeds = _latestNpm && gt(_latestNpm, "1.3.429") ? [createUpdateAvailableFeed("1.3.429", _latestNpm)] : [];
|
|
568468
568706
|
const t25 = layoutMode === "horizontal" && /* @__PURE__ */ jsx_dev_runtime239.jsxDEV(FeedColumn, {
|
|
568469
568707
|
feeds: showOnboarding ? [createProjectOnboardingFeed(getSteps()), createRecentActivityFeed(activities)] : showGuestPassesUpsell ? [createRecentActivityFeed(activities), createGuestPassesFeed()] : showOverageCreditUpsell ? [createRecentActivityFeed(activities), createOverageCreditFeed()] : [createRecentActivityFeed(activities), ..._updateFeeds, createWhatsNewFeed(changelog)],
|
|
568470
568708
|
maxWidth: rightWidth
|
|
@@ -568664,12 +568902,12 @@ function LogoV2() {
|
|
|
568664
568902
|
return t41;
|
|
568665
568903
|
}
|
|
568666
568904
|
function _temp327(current) {
|
|
568667
|
-
if (current.lastReleaseNotesSeen === "1.3.
|
|
568905
|
+
if (current.lastReleaseNotesSeen === "1.3.429") {
|
|
568668
568906
|
return current;
|
|
568669
568907
|
}
|
|
568670
568908
|
return {
|
|
568671
568909
|
...current,
|
|
568672
|
-
lastReleaseNotesSeen: "1.3.
|
|
568910
|
+
lastReleaseNotesSeen: "1.3.429"
|
|
568673
568911
|
};
|
|
568674
568912
|
}
|
|
568675
568913
|
function _temp241(s_0) {
|
|
@@ -569208,6 +569446,7 @@ var init_nullRenderingAttachments = __esm(() => {
|
|
|
569208
569446
|
"plan_mode",
|
|
569209
569447
|
"plan_mode_exit",
|
|
569210
569448
|
"plan_mode_reentry",
|
|
569449
|
+
"swarm_mode",
|
|
569211
569450
|
"structured_output",
|
|
569212
569451
|
"team_context",
|
|
569213
569452
|
"todo_reminder",
|
|
@@ -574431,7 +574670,7 @@ var init_crossProjectResume = __esm(() => {
|
|
|
574431
574670
|
var exports_resume = {};
|
|
574432
574671
|
__export(exports_resume, {
|
|
574433
574672
|
filterResumableSessions: () => filterResumableSessions,
|
|
574434
|
-
call: () =>
|
|
574673
|
+
call: () => call25
|
|
574435
574674
|
});
|
|
574436
574675
|
function resumeHelpMessage(result) {
|
|
574437
574676
|
switch (result.resultType) {
|
|
@@ -574616,7 +574855,7 @@ function ResumeCommand({
|
|
|
574616
574855
|
function filterResumableSessions(logs, currentSessionId) {
|
|
574617
574856
|
return logs.filter((l3) => !l3.isSidechain && getSessionIdFromLog(l3) !== currentSessionId);
|
|
574618
574857
|
}
|
|
574619
|
-
var import_compiler_runtime191, React80, jsx_dev_runtime253,
|
|
574858
|
+
var import_compiler_runtime191, React80, jsx_dev_runtime253, call25 = async (onDone, context2, args) => {
|
|
574620
574859
|
const onResume = async (sessionId, log3, entrypoint) => {
|
|
574621
574860
|
try {
|
|
574622
574861
|
await context2.resume?.(sessionId, log3, entrypoint);
|
|
@@ -575079,7 +575318,7 @@ var init_UltrareviewOverageDialog = __esm(() => {
|
|
|
575079
575318
|
// src/commands/review/ultrareviewCommand.tsx
|
|
575080
575319
|
var exports_ultrareviewCommand = {};
|
|
575081
575320
|
__export(exports_ultrareviewCommand, {
|
|
575082
|
-
call: () =>
|
|
575321
|
+
call: () => call26
|
|
575083
575322
|
});
|
|
575084
575323
|
function contentBlocksToString(blocks) {
|
|
575085
575324
|
return blocks.map((b3) => b3.type === "text" ? b3.text : "").filter(Boolean).join(`
|
|
@@ -575099,7 +575338,7 @@ async function launchAndDone(args, context2, onDone, billingNote, signal) {
|
|
|
575099
575338
|
});
|
|
575100
575339
|
}
|
|
575101
575340
|
}
|
|
575102
|
-
var jsx_dev_runtime255,
|
|
575341
|
+
var jsx_dev_runtime255, call26 = async (onDone, context2, args) => {
|
|
575103
575342
|
const gate = await checkOverageGate();
|
|
575104
575343
|
if (gate.kind === "not-enabled") {
|
|
575105
575344
|
onDone("Free ultrareviews used. Enable Extra Usage at https://claude.ai/settings/billing to continue.", {
|
|
@@ -575397,7 +575636,7 @@ var init_image_video = __esm(() => {
|
|
|
575397
575636
|
// src/commands/session/session.tsx
|
|
575398
575637
|
var exports_session = {};
|
|
575399
575638
|
__export(exports_session, {
|
|
575400
|
-
call: () =>
|
|
575639
|
+
call: () => call27
|
|
575401
575640
|
});
|
|
575402
575641
|
function SessionInfo(t0) {
|
|
575403
575642
|
const $3 = import_compiler_runtime193.c(19);
|
|
@@ -575570,7 +575809,7 @@ function _temp247(e2) {
|
|
|
575570
575809
|
function _temp118(s2) {
|
|
575571
575810
|
return s2.remoteSessionUrl;
|
|
575572
575811
|
}
|
|
575573
|
-
var import_compiler_runtime193, import_react154, jsx_dev_runtime256,
|
|
575812
|
+
var import_compiler_runtime193, import_react154, jsx_dev_runtime256, call27 = async (onDone) => {
|
|
575574
575813
|
return /* @__PURE__ */ jsx_dev_runtime256.jsxDEV(SessionInfo, {
|
|
575575
575814
|
onDone
|
|
575576
575815
|
}, undefined, false, undefined, this);
|
|
@@ -575922,9 +576161,9 @@ var init_SkillsMenu = __esm(() => {
|
|
|
575922
576161
|
// src/commands/skills/skills.tsx
|
|
575923
576162
|
var exports_skills2 = {};
|
|
575924
576163
|
__export(exports_skills2, {
|
|
575925
|
-
call: () =>
|
|
576164
|
+
call: () => call28
|
|
575926
576165
|
});
|
|
575927
|
-
async function
|
|
576166
|
+
async function call28(onDone, context2) {
|
|
575928
576167
|
return /* @__PURE__ */ jsx_dev_runtime258.jsxDEV(SkillsMenu, {
|
|
575929
576168
|
onExit: onDone,
|
|
575930
576169
|
commands: context2.options.commands
|
|
@@ -575951,9 +576190,9 @@ var init_skills5 = __esm(() => {
|
|
|
575951
576190
|
// src/commands/status/status.tsx
|
|
575952
576191
|
var exports_status = {};
|
|
575953
576192
|
__export(exports_status, {
|
|
575954
|
-
call: () =>
|
|
576193
|
+
call: () => call29
|
|
575955
576194
|
});
|
|
575956
|
-
async function
|
|
576195
|
+
async function call29(onDone, context2) {
|
|
575957
576196
|
return /* @__PURE__ */ jsx_dev_runtime259.jsxDEV(Settings, {
|
|
575958
576197
|
onClose: onDone,
|
|
575959
576198
|
context: context2,
|
|
@@ -576564,7 +576803,7 @@ ${reasons}`,
|
|
|
576564
576803
|
} : prev);
|
|
576565
576804
|
}
|
|
576566
576805
|
}
|
|
576567
|
-
var ULTRAPLAN_TIMEOUT_MS, CCR_TERMS_URL2 = "https://code.claude.com/docs/en/claude-code-on-the-web", _rawPrompt, DEFAULT_INSTRUCTIONS, ULTRAPLAN_INSTRUCTIONS,
|
|
576806
|
+
var ULTRAPLAN_TIMEOUT_MS, CCR_TERMS_URL2 = "https://code.claude.com/docs/en/claude-code-on-the-web", _rawPrompt, DEFAULT_INSTRUCTIONS, ULTRAPLAN_INSTRUCTIONS, call30 = async (onDone, context2, args) => {
|
|
576568
576807
|
const blurb = args.trim();
|
|
576569
576808
|
if (!blurb) {
|
|
576570
576809
|
const msg = await launchUltraplan2({
|
|
@@ -576627,7 +576866,7 @@ var init_ultraplan = __esm(() => {
|
|
|
576627
576866
|
argumentHint: "<prompt>",
|
|
576628
576867
|
isEnabled: () => false,
|
|
576629
576868
|
load: () => Promise.resolve({
|
|
576630
|
-
call:
|
|
576869
|
+
call: call30
|
|
576631
576870
|
})
|
|
576632
576871
|
};
|
|
576633
576872
|
});
|
|
@@ -581398,9 +581637,9 @@ var init_BackgroundTasksDialog = __esm(() => {
|
|
|
581398
581637
|
// src/commands/tasks/tasks.tsx
|
|
581399
581638
|
var exports_tasks = {};
|
|
581400
581639
|
__export(exports_tasks, {
|
|
581401
|
-
call: () =>
|
|
581640
|
+
call: () => call31
|
|
581402
581641
|
});
|
|
581403
|
-
async function
|
|
581642
|
+
async function call31(onDone, context2) {
|
|
581404
581643
|
return /* @__PURE__ */ jsx_dev_runtime270.jsxDEV(BackgroundTasksDialog, {
|
|
581405
581644
|
toolUseContext: context2,
|
|
581406
581645
|
onDone
|
|
@@ -581679,9 +581918,9 @@ var init_terminalSetup2 = __esm(() => {
|
|
|
581679
581918
|
// src/commands/undo/undo.ts
|
|
581680
581919
|
var exports_undo = {};
|
|
581681
581920
|
__export(exports_undo, {
|
|
581682
|
-
call: () =>
|
|
581921
|
+
call: () => call32
|
|
581683
581922
|
});
|
|
581684
|
-
var
|
|
581923
|
+
var call32 = async (args, context2) => {
|
|
581685
581924
|
const isAll = args.trim().toLowerCase() === "all";
|
|
581686
581925
|
return {
|
|
581687
581926
|
type: "text",
|
|
@@ -581709,7 +581948,7 @@ var init_undo3 = __esm(() => {
|
|
|
581709
581948
|
// src/commands/theme/theme.tsx
|
|
581710
581949
|
var exports_theme = {};
|
|
581711
581950
|
__export(exports_theme, {
|
|
581712
|
-
call: () =>
|
|
581951
|
+
call: () => call33
|
|
581713
581952
|
});
|
|
581714
581953
|
function ThemePickerCommand(t0) {
|
|
581715
581954
|
const $3 = import_compiler_runtime204.c(8);
|
|
@@ -581759,7 +581998,7 @@ function ThemePickerCommand(t0) {
|
|
|
581759
581998
|
}
|
|
581760
581999
|
return t3;
|
|
581761
582000
|
}
|
|
581762
|
-
var import_compiler_runtime204, jsx_dev_runtime271,
|
|
582001
|
+
var import_compiler_runtime204, jsx_dev_runtime271, call33 = async (onDone, _context) => {
|
|
581763
582002
|
return /* @__PURE__ */ jsx_dev_runtime271.jsxDEV(ThemePickerCommand, {
|
|
581764
582003
|
onDone
|
|
581765
582004
|
}, undefined, false, undefined, this);
|
|
@@ -581787,9 +582026,9 @@ var init_theme4 = __esm(() => {
|
|
|
581787
582026
|
// src/commands/vim/vim.ts
|
|
581788
582027
|
var exports_vim = {};
|
|
581789
582028
|
__export(exports_vim, {
|
|
581790
|
-
call: () =>
|
|
582029
|
+
call: () => call34
|
|
581791
582030
|
});
|
|
581792
|
-
var
|
|
582031
|
+
var call34 = async () => {
|
|
581793
582032
|
const config5 = getGlobalConfig();
|
|
581794
582033
|
let currentMode = config5.editorMode || "normal";
|
|
581795
582034
|
if (currentMode === "emacs") {
|
|
@@ -581831,7 +582070,7 @@ var init_vim2 = __esm(() => {
|
|
|
581831
582070
|
var exports_thinkback = {};
|
|
581832
582071
|
__export(exports_thinkback, {
|
|
581833
582072
|
playAnimation: () => playAnimation,
|
|
581834
|
-
call: () =>
|
|
582073
|
+
call: () => call35
|
|
581835
582074
|
});
|
|
581836
582075
|
import { readFile as readFile47 } from "fs/promises";
|
|
581837
582076
|
import { join as join136 } from "path";
|
|
@@ -582368,7 +582607,7 @@ function ThinkbackFlow(t0) {
|
|
|
582368
582607
|
}
|
|
582369
582608
|
return t8;
|
|
582370
582609
|
}
|
|
582371
|
-
async function
|
|
582610
|
+
async function call35(onDone) {
|
|
582372
582611
|
return /* @__PURE__ */ jsx_dev_runtime272.jsxDEV(ThinkbackFlow, {
|
|
582373
582612
|
onDone
|
|
582374
582613
|
}, undefined, false, undefined, this);
|
|
@@ -582416,14 +582655,14 @@ var init_thinkback2 = __esm(() => {
|
|
|
582416
582655
|
// src/commands/thinkback-play/thinkback-play.ts
|
|
582417
582656
|
var exports_thinkback_play = {};
|
|
582418
582657
|
__export(exports_thinkback_play, {
|
|
582419
|
-
call: () =>
|
|
582658
|
+
call: () => call36
|
|
582420
582659
|
});
|
|
582421
582660
|
import { join as join137 } from "path";
|
|
582422
582661
|
function getPluginId2() {
|
|
582423
582662
|
const marketplaceName = OFFICIAL_MARKETPLACE_NAME;
|
|
582424
582663
|
return `thinkback@${marketplaceName}`;
|
|
582425
582664
|
}
|
|
582426
|
-
async function
|
|
582665
|
+
async function call36() {
|
|
582427
582666
|
const v2Data = loadInstalledPluginsV2();
|
|
582428
582667
|
const pluginId = getPluginId2();
|
|
582429
582668
|
const installations = v2Data.plugins[pluginId];
|
|
@@ -584919,9 +585158,9 @@ var init_PermissionRuleList = __esm(() => {
|
|
|
584919
585158
|
// src/commands/permissions/permissions.tsx
|
|
584920
585159
|
var exports_permissions2 = {};
|
|
584921
585160
|
__export(exports_permissions2, {
|
|
584922
|
-
call: () =>
|
|
585161
|
+
call: () => call37
|
|
584923
585162
|
});
|
|
584924
|
-
var jsx_dev_runtime280,
|
|
585163
|
+
var jsx_dev_runtime280, call37 = async (onDone, context2) => {
|
|
584925
585164
|
return /* @__PURE__ */ jsx_dev_runtime280.jsxDEV(PermissionRuleList, {
|
|
584926
585165
|
onExit: onDone,
|
|
584927
585166
|
onRetryDenials: (commands) => {
|
|
@@ -584951,7 +585190,7 @@ var init_permissions5 = __esm(() => {
|
|
|
584951
585190
|
// src/commands/plan/plan.tsx
|
|
584952
585191
|
var exports_plan = {};
|
|
584953
585192
|
__export(exports_plan, {
|
|
584954
|
-
call: () =>
|
|
585193
|
+
call: () => call38
|
|
584955
585194
|
});
|
|
584956
585195
|
function PlanDisplay(t0) {
|
|
584957
585196
|
const $3 = import_compiler_runtime213.c(11);
|
|
@@ -585039,7 +585278,7 @@ function PlanDisplay(t0) {
|
|
|
585039
585278
|
}
|
|
585040
585279
|
return t5;
|
|
585041
585280
|
}
|
|
585042
|
-
async function
|
|
585281
|
+
async function call38(onDone, context2, args) {
|
|
585043
585282
|
const {
|
|
585044
585283
|
getAppState,
|
|
585045
585284
|
setAppState
|
|
@@ -586877,9 +587116,9 @@ var init_HooksConfigMenu = __esm(() => {
|
|
|
586877
587116
|
// src/commands/hooks/hooks.tsx
|
|
586878
587117
|
var exports_hooks = {};
|
|
586879
587118
|
__export(exports_hooks, {
|
|
586880
|
-
call: () =>
|
|
587119
|
+
call: () => call39
|
|
586881
587120
|
});
|
|
586882
|
-
var jsx_dev_runtime287,
|
|
587121
|
+
var jsx_dev_runtime287, call39 = async (onDone, context2) => {
|
|
586883
587122
|
logEvent("tengu_hooks_command", {});
|
|
586884
587123
|
const appState = context2.getAppState();
|
|
586885
587124
|
const permissionContext = appState.toolPermissionContext;
|
|
@@ -586912,10 +587151,10 @@ var init_hooks3 = __esm(() => {
|
|
|
586912
587151
|
// src/commands/files/files.ts
|
|
586913
587152
|
var exports_files4 = {};
|
|
586914
587153
|
__export(exports_files4, {
|
|
586915
|
-
call: () =>
|
|
587154
|
+
call: () => call40
|
|
586916
587155
|
});
|
|
586917
587156
|
import { relative as relative31 } from "path";
|
|
586918
|
-
async function
|
|
587157
|
+
async function call40(_args, context2) {
|
|
586919
587158
|
const files2 = context2.readFileState ? cacheKeys(context2.readFileState) : [];
|
|
586920
587159
|
if (files2.length === 0) {
|
|
586921
587160
|
return { type: "text", value: "No files in context" };
|
|
@@ -586948,7 +587187,7 @@ var init_files8 = __esm(() => {
|
|
|
586948
587187
|
var exports_branch = {};
|
|
586949
587188
|
__export(exports_branch, {
|
|
586950
587189
|
deriveFirstPrompt: () => deriveFirstPrompt,
|
|
586951
|
-
call: () =>
|
|
587190
|
+
call: () => call41
|
|
586952
587191
|
});
|
|
586953
587192
|
import { randomUUID as randomUUID33 } from "crypto";
|
|
586954
587193
|
import { mkdir as mkdir36, readFile as readFile48, writeFile as writeFile41 } from "fs/promises";
|
|
@@ -587054,7 +587293,7 @@ async function getUniqueForkName(baseName) {
|
|
|
587054
587293
|
}
|
|
587055
587294
|
return `${baseName} (Branch ${nextNumber})`;
|
|
587056
587295
|
}
|
|
587057
|
-
async function
|
|
587296
|
+
async function call41(onDone, context2, args) {
|
|
587058
587297
|
const customTitle = args?.trim() || undefined;
|
|
587059
587298
|
const originalSessionId = getSessionId();
|
|
587060
587299
|
try {
|
|
@@ -593093,9 +593332,9 @@ var init_AgentsMenu = __esm(() => {
|
|
|
593093
593332
|
// src/commands/agents/agents.tsx
|
|
593094
593333
|
var exports_agents2 = {};
|
|
593095
593334
|
__export(exports_agents2, {
|
|
593096
|
-
call: () =>
|
|
593335
|
+
call: () => call42
|
|
593097
593336
|
});
|
|
593098
|
-
async function
|
|
593337
|
+
async function call42(onDone, context2) {
|
|
593099
593338
|
const appState = context2.getAppState();
|
|
593100
593339
|
const permissionContext = appState.toolPermissionContext;
|
|
593101
593340
|
const tools = getTools(permissionContext);
|
|
@@ -593126,9 +593365,9 @@ var init_agents3 = __esm(() => {
|
|
|
593126
593365
|
// src/commands/plugin/plugin.tsx
|
|
593127
593366
|
var exports_plugin = {};
|
|
593128
593367
|
__export(exports_plugin, {
|
|
593129
|
-
call: () =>
|
|
593368
|
+
call: () => call43
|
|
593130
593369
|
});
|
|
593131
|
-
async function
|
|
593370
|
+
async function call43(onDone, _context, args) {
|
|
593132
593371
|
return /* @__PURE__ */ jsx_dev_runtime313.jsxDEV(PluginSettings, {
|
|
593133
593372
|
onComplete: onDone,
|
|
593134
593373
|
args
|
|
@@ -593296,12 +593535,12 @@ var init_refresh = __esm(() => {
|
|
|
593296
593535
|
// src/commands/reload-plugins/reload-plugins.ts
|
|
593297
593536
|
var exports_reload_plugins = {};
|
|
593298
593537
|
__export(exports_reload_plugins, {
|
|
593299
|
-
call: () =>
|
|
593538
|
+
call: () => call44
|
|
593300
593539
|
});
|
|
593301
593540
|
function n2(count4, noun) {
|
|
593302
593541
|
return `${count4} ${plural(count4, noun)}`;
|
|
593303
593542
|
}
|
|
593304
|
-
var
|
|
593543
|
+
var call44 = async (_args, context2) => {
|
|
593305
593544
|
if (false) {}
|
|
593306
593545
|
const r2 = await refreshActivePlugins(context2.setAppState);
|
|
593307
593546
|
const parts = [
|
|
@@ -593344,9 +593583,9 @@ var init_reload_plugins2 = __esm(() => {
|
|
|
593344
593583
|
// src/commands/rewind/rewind.ts
|
|
593345
593584
|
var exports_rewind = {};
|
|
593346
593585
|
__export(exports_rewind, {
|
|
593347
|
-
call: () =>
|
|
593586
|
+
call: () => call45
|
|
593348
593587
|
});
|
|
593349
|
-
async function
|
|
593588
|
+
async function call45(_args, context2) {
|
|
593350
593589
|
if (context2.openMessageSelector) {
|
|
593351
593590
|
context2.openMessageSelector();
|
|
593352
593591
|
}
|
|
@@ -593461,7 +593700,7 @@ async function captureMemoryDiagnostics(trigger, dumpNumber = 0) {
|
|
|
593461
593700
|
smapsRollup,
|
|
593462
593701
|
platform: process.platform,
|
|
593463
593702
|
nodeVersion: process.version,
|
|
593464
|
-
ccVersion: "1.3.
|
|
593703
|
+
ccVersion: "1.3.429"
|
|
593465
593704
|
};
|
|
593466
593705
|
}
|
|
593467
593706
|
async function performHeapDump(trigger = "manual", dumpNumber = 0) {
|
|
@@ -593532,9 +593771,9 @@ var init_heapDumpService = __esm(() => {
|
|
|
593532
593771
|
// src/commands/heapdump/heapdump.ts
|
|
593533
593772
|
var exports_heapdump = {};
|
|
593534
593773
|
__export(exports_heapdump, {
|
|
593535
|
-
call: () =>
|
|
593774
|
+
call: () => call46
|
|
593536
593775
|
});
|
|
593537
|
-
async function
|
|
593776
|
+
async function call46() {
|
|
593538
593777
|
const result = await performHeapDump();
|
|
593539
593778
|
if (!result.success) {
|
|
593540
593779
|
return {
|
|
@@ -593841,7 +594080,7 @@ var USAGE = `/bridge-kick <subcommand>
|
|
|
593841
594080
|
reconnect-session fail next POST /bridge/reconnect fails
|
|
593842
594081
|
heartbeat <status> next heartbeat throws BridgeFatalError(status)
|
|
593843
594082
|
reconnect call reconnectEnvironmentWithSession directly
|
|
593844
|
-
status print bridge state`,
|
|
594083
|
+
status print bridge state`, call47 = async (args) => {
|
|
593845
594084
|
const h3 = getBridgeDebugHandle();
|
|
593846
594085
|
if (!h3) {
|
|
593847
594086
|
return {
|
|
@@ -593974,16 +594213,16 @@ var init_bridge_kick = __esm(() => {
|
|
|
593974
594213
|
description: "Inject bridge failure states for manual recovery testing",
|
|
593975
594214
|
isEnabled: () => false,
|
|
593976
594215
|
supportsNonInteractive: false,
|
|
593977
|
-
load: () => Promise.resolve({ call:
|
|
594216
|
+
load: () => Promise.resolve({ call: call47 })
|
|
593978
594217
|
};
|
|
593979
594218
|
bridge_kick_default = bridgeKick;
|
|
593980
594219
|
});
|
|
593981
594220
|
|
|
593982
594221
|
// src/commands/version.ts
|
|
593983
|
-
var
|
|
594222
|
+
var call48 = async () => {
|
|
593984
594223
|
return {
|
|
593985
594224
|
type: "text",
|
|
593986
|
-
value: "1.3.
|
|
594225
|
+
value: "1.3.429"
|
|
593987
594226
|
};
|
|
593988
594227
|
}, version2, version_default;
|
|
593989
594228
|
var init_version = __esm(() => {
|
|
@@ -593993,7 +594232,7 @@ var init_version = __esm(() => {
|
|
|
593993
594232
|
description: "Print the version this session is running (not what autoupdate downloaded)",
|
|
593994
594233
|
isEnabled: () => false,
|
|
593995
594234
|
supportsNonInteractive: true,
|
|
593996
|
-
load: () => Promise.resolve({ call:
|
|
594235
|
+
load: () => Promise.resolve({ call: call48 })
|
|
593997
594236
|
};
|
|
593998
594237
|
version_default = version2;
|
|
593999
594238
|
});
|
|
@@ -595127,10 +595366,10 @@ var init_SandboxSettings = __esm(() => {
|
|
|
595127
595366
|
// src/commands/sandbox-toggle/sandbox-toggle.tsx
|
|
595128
595367
|
var exports_sandbox_toggle = {};
|
|
595129
595368
|
__export(exports_sandbox_toggle, {
|
|
595130
|
-
call: () =>
|
|
595369
|
+
call: () => call49
|
|
595131
595370
|
});
|
|
595132
595371
|
import { relative as relative32 } from "path";
|
|
595133
|
-
async function
|
|
595372
|
+
async function call49(onDone, _context, args) {
|
|
595134
595373
|
const settings = getSettings_DEPRECATED();
|
|
595135
595374
|
const themeName = settings.theme || "light";
|
|
595136
595375
|
const platform4 = getPlatform();
|
|
@@ -595237,9 +595476,9 @@ var init_sandbox_toggle2 = __esm(() => {
|
|
|
595237
595476
|
// src/commands/contactMe/contactMe.ts
|
|
595238
595477
|
var exports_contactMe = {};
|
|
595239
595478
|
__export(exports_contactMe, {
|
|
595240
|
-
call: () =>
|
|
595479
|
+
call: () => call50
|
|
595241
595480
|
});
|
|
595242
|
-
async function
|
|
595481
|
+
async function call50() {
|
|
595243
595482
|
const linkedinOk = await openBrowser(LINKEDIN_URL);
|
|
595244
595483
|
const githubOk = await openBrowser(GITHUB_URL);
|
|
595245
595484
|
if (linkedinOk && githubOk) {
|
|
@@ -595276,7 +595515,7 @@ var init_contactMe2 = __esm(() => {
|
|
|
595276
595515
|
});
|
|
595277
595516
|
|
|
595278
595517
|
// src/commands/advisor.ts
|
|
595279
|
-
var
|
|
595518
|
+
var call51 = async (args, context2) => {
|
|
595280
595519
|
const arg = args.trim().toLowerCase();
|
|
595281
595520
|
const baseModel = parseUserSpecifiedModel(context2.getAppState().mainLoopModel ?? getDefaultMainLoopModelSetting());
|
|
595282
595521
|
if (!arg) {
|
|
@@ -595362,7 +595601,7 @@ var init_advisor2 = __esm(() => {
|
|
|
595362
595601
|
return !canUserConfigureAdvisor();
|
|
595363
595602
|
},
|
|
595364
595603
|
supportsNonInteractive: true,
|
|
595365
|
-
load: () => Promise.resolve({ call:
|
|
595604
|
+
load: () => Promise.resolve({ call: call51 })
|
|
595366
595605
|
};
|
|
595367
595606
|
advisor_default = advisor;
|
|
595368
595607
|
});
|
|
@@ -595770,12 +596009,12 @@ var init_ExitFlow = __esm(() => {
|
|
|
595770
596009
|
// src/commands/exit/exit.tsx
|
|
595771
596010
|
var exports_exit = {};
|
|
595772
596011
|
__export(exports_exit, {
|
|
595773
|
-
call: () =>
|
|
596012
|
+
call: () => call52
|
|
595774
596013
|
});
|
|
595775
596014
|
function getRandomGoodbyeMessage2() {
|
|
595776
596015
|
return sample_default(GOODBYE_MESSAGES2) ?? "Goodbye!";
|
|
595777
596016
|
}
|
|
595778
|
-
async function
|
|
596017
|
+
async function call52(onDone) {
|
|
595779
596018
|
if (false) {}
|
|
595780
596019
|
const showWorktree = getCurrentWorktreeSession() !== null;
|
|
595781
596020
|
if (showWorktree) {
|
|
@@ -596069,7 +596308,7 @@ var exports_export = {};
|
|
|
596069
596308
|
__export(exports_export, {
|
|
596070
596309
|
sanitizeFilename: () => sanitizeFilename,
|
|
596071
596310
|
extractFirstPrompt: () => extractFirstPrompt,
|
|
596072
|
-
call: () =>
|
|
596311
|
+
call: () => call53
|
|
596073
596312
|
});
|
|
596074
596313
|
import { join as join142 } from "path";
|
|
596075
596314
|
function formatTimestamp(date6) {
|
|
@@ -596110,7 +596349,7 @@ async function exportWithReactRenderer(context2) {
|
|
|
596110
596349
|
const tools = context2.options.tools || [];
|
|
596111
596350
|
return renderMessagesToPlainText(context2.messages, tools);
|
|
596112
596351
|
}
|
|
596113
|
-
async function
|
|
596352
|
+
async function call53(onDone, context2, args) {
|
|
596114
596353
|
const content = await exportWithReactRenderer(context2);
|
|
596115
596354
|
const filename = args.trim();
|
|
596116
596355
|
if (filename) {
|
|
@@ -597296,7 +597535,7 @@ var init_SearchableModelPicker = __esm(() => {
|
|
|
597296
597535
|
// src/commands/connect/connect.tsx
|
|
597297
597536
|
var exports_connect = {};
|
|
597298
597537
|
__export(exports_connect, {
|
|
597299
|
-
call: () =>
|
|
597538
|
+
call: () => call54
|
|
597300
597539
|
});
|
|
597301
597540
|
function ConnectFlow({ onDone }) {
|
|
597302
597541
|
const [phase, setPhase] = React100.useState("setup");
|
|
@@ -597309,7 +597548,7 @@ function ConnectFlow({ onDone }) {
|
|
|
597309
597548
|
onDone
|
|
597310
597549
|
}, undefined, false, undefined, this);
|
|
597311
597550
|
}
|
|
597312
|
-
var React100, jsx_dev_runtime327,
|
|
597551
|
+
var React100, jsx_dev_runtime327, call54 = async (onDone, _context, _args) => {
|
|
597313
597552
|
return /* @__PURE__ */ jsx_dev_runtime327.jsxDEV(ConnectFlow, {
|
|
597314
597553
|
onDone
|
|
597315
597554
|
}, undefined, false, undefined, this);
|
|
@@ -597335,7 +597574,7 @@ var init_connect2 = __esm(() => {
|
|
|
597335
597574
|
// src/commands/install-skill/install-skill.tsx
|
|
597336
597575
|
var exports_install_skill = {};
|
|
597337
597576
|
__export(exports_install_skill, {
|
|
597338
|
-
call: () =>
|
|
597577
|
+
call: () => call55
|
|
597339
597578
|
});
|
|
597340
597579
|
function InstallSkillFlow({
|
|
597341
597580
|
source,
|
|
@@ -597430,7 +597669,7 @@ function InstallSkillFlow({
|
|
|
597430
597669
|
]
|
|
597431
597670
|
}, undefined, true, undefined, this);
|
|
597432
597671
|
}
|
|
597433
|
-
var import_react181, jsx_dev_runtime328,
|
|
597672
|
+
var import_react181, jsx_dev_runtime328, call55 = async (onDone, _context, args) => {
|
|
597434
597673
|
const tokens = (args ?? "").trim().split(/\s+/).filter(Boolean);
|
|
597435
597674
|
const overwrite = tokens.includes("--overwrite");
|
|
597436
597675
|
const source = tokens.filter((t2) => t2 !== "--overwrite").join(" ").trim();
|
|
@@ -597481,7 +597720,7 @@ var init_immediateCommand = __esm(() => {
|
|
|
597481
597720
|
// src/commands/model/model.tsx
|
|
597482
597721
|
var exports_model2 = {};
|
|
597483
597722
|
__export(exports_model2, {
|
|
597484
|
-
call: () =>
|
|
597723
|
+
call: () => call56
|
|
597485
597724
|
});
|
|
597486
597725
|
function ModelPickerWrapper(t0) {
|
|
597487
597726
|
const $3 = import_compiler_runtime244.c(17);
|
|
@@ -597731,7 +597970,7 @@ function renderModelLabel(model) {
|
|
|
597731
597970
|
const rendered = renderDefaultModelSetting(model ?? getDefaultMainLoopModelSetting());
|
|
597732
597971
|
return model === null ? `${rendered} (default)` : rendered;
|
|
597733
597972
|
}
|
|
597734
|
-
var import_compiler_runtime244, React102, jsx_dev_runtime329,
|
|
597973
|
+
var import_compiler_runtime244, React102, jsx_dev_runtime329, call56 = async (onDone, _context, args) => {
|
|
597735
597974
|
args = args?.trim() || "";
|
|
597736
597975
|
if (COMMON_INFO_ARGS.includes(args)) {
|
|
597737
597976
|
logEvent("tengu_model_command_inline_help", {
|
|
@@ -597808,7 +598047,7 @@ var init_model3 = __esm(() => {
|
|
|
597808
598047
|
// src/commands/model-subagent/command.tsx
|
|
597809
598048
|
var exports_command = {};
|
|
597810
598049
|
__export(exports_command, {
|
|
597811
|
-
call: () =>
|
|
598050
|
+
call: () => call57
|
|
597812
598051
|
});
|
|
597813
598052
|
function resolveAgentType(token) {
|
|
597814
598053
|
const t2 = token.trim().toLowerCase();
|
|
@@ -597816,7 +598055,7 @@ function resolveAgentType(token) {
|
|
|
597816
598055
|
return;
|
|
597817
598056
|
return SUBAGENT_TYPES.find((a2) => a2.toLowerCase() === t2);
|
|
597818
598057
|
}
|
|
597819
|
-
var jsx_dev_runtime330, COST_TIP = "Tip: subagents run frequently — a large model here costs more and is usually overkill for small subtasks. Prefer an instant/small model (e.g. Claude Opus 4.8 as a subagent is overkill).", SUBCOMMANDS,
|
|
598058
|
+
var jsx_dev_runtime330, COST_TIP = "Tip: subagents run frequently — a large model here costs more and is usually overkill for small subtasks. Prefer an instant/small model (e.g. Claude Opus 4.8 as a subagent is overkill).", SUBCOMMANDS, call57 = async (onDone, _context, args) => {
|
|
597820
598059
|
const tokens = (args ?? "").trim().split(/\s+/).filter(Boolean);
|
|
597821
598060
|
let agentType;
|
|
597822
598061
|
let sub = "";
|
|
@@ -597889,7 +598128,7 @@ var init_model_subagent = __esm(() => {
|
|
|
597889
598128
|
// src/commands/collaborator-model/command.tsx
|
|
597890
598129
|
var exports_command2 = {};
|
|
597891
598130
|
__export(exports_command2, {
|
|
597892
|
-
call: () =>
|
|
598131
|
+
call: () => call58
|
|
597893
598132
|
});
|
|
597894
598133
|
function resolveCollaborator(token) {
|
|
597895
598134
|
const t2 = token.trim().toLowerCase();
|
|
@@ -597897,7 +598136,7 @@ function resolveCollaborator(token) {
|
|
|
597897
598136
|
return;
|
|
597898
598137
|
return COLLABORATOR_AGENT_TYPES.find((a2) => a2.toLowerCase() === t2);
|
|
597899
598138
|
}
|
|
597900
|
-
var jsx_dev_runtime331, COST_TIP2 = "Collaborators implement and iterate, so they benefit from a capable model. By default they inherit the main agent’s model; set a specific one here if you want a collaborator on a different/cheaper provider.", SUBCOMMANDS2,
|
|
598139
|
+
var jsx_dev_runtime331, COST_TIP2 = "Collaborators implement and iterate, so they benefit from a capable model. By default they inherit the main agent’s model; set a specific one here if you want a collaborator on a different/cheaper provider.", SUBCOMMANDS2, call58 = async (onDone, _context, args) => {
|
|
597901
598140
|
const tokens = (args ?? "").trim().split(/\s+/).filter(Boolean);
|
|
597902
598141
|
let collaborator;
|
|
597903
598142
|
let sub = "";
|
|
@@ -597992,7 +598231,7 @@ var init_collaborator_model = __esm(() => {
|
|
|
597992
598231
|
// src/commands/model-image-generation/command.tsx
|
|
597993
598232
|
var exports_command3 = {};
|
|
597994
598233
|
__export(exports_command3, {
|
|
597995
|
-
call: () =>
|
|
598234
|
+
call: () => call59
|
|
597996
598235
|
});
|
|
597997
598236
|
function backendLabel(provider) {
|
|
597998
598237
|
return provider === "vertex" ? "Vertex (Imagen)" : "NVIDIA";
|
|
@@ -598035,7 +598274,7 @@ function ImageModelPicker({
|
|
|
598035
598274
|
]
|
|
598036
598275
|
}, undefined, true, undefined, this);
|
|
598037
598276
|
}
|
|
598038
|
-
var jsx_dev_runtime332,
|
|
598277
|
+
var jsx_dev_runtime332, call59 = async (onDone) => {
|
|
598039
598278
|
return /* @__PURE__ */ jsx_dev_runtime332.jsxDEV(ImageModelPicker, {
|
|
598040
598279
|
onDone
|
|
598041
598280
|
}, undefined, false, undefined, this);
|
|
@@ -598066,7 +598305,7 @@ var init_model_image_generation = __esm(() => {
|
|
|
598066
598305
|
// src/commands/model-video-generation/command.tsx
|
|
598067
598306
|
var exports_command4 = {};
|
|
598068
598307
|
__export(exports_command4, {
|
|
598069
|
-
call: () =>
|
|
598308
|
+
call: () => call60
|
|
598070
598309
|
});
|
|
598071
598310
|
function backendLabel2(backend) {
|
|
598072
598311
|
if (backend === "vertex")
|
|
@@ -598113,7 +598352,7 @@ function VideoModelPicker({
|
|
|
598113
598352
|
]
|
|
598114
598353
|
}, undefined, true, undefined, this);
|
|
598115
598354
|
}
|
|
598116
|
-
var jsx_dev_runtime333,
|
|
598355
|
+
var jsx_dev_runtime333, call60 = async (onDone) => {
|
|
598117
598356
|
return /* @__PURE__ */ jsx_dev_runtime333.jsxDEV(VideoModelPicker, {
|
|
598118
598357
|
onDone
|
|
598119
598358
|
}, undefined, false, undefined, this);
|
|
@@ -598144,7 +598383,7 @@ var init_model_video_generation = __esm(() => {
|
|
|
598144
598383
|
// src/commands/tag/tag.tsx
|
|
598145
598384
|
var exports_tag = {};
|
|
598146
598385
|
__export(exports_tag, {
|
|
598147
|
-
call: () =>
|
|
598386
|
+
call: () => call61
|
|
598148
598387
|
});
|
|
598149
598388
|
function ConfirmRemoveTag(t0) {
|
|
598150
598389
|
const $3 = import_compiler_runtime245.c(11);
|
|
@@ -598368,7 +598607,7 @@ Examples:
|
|
|
598368
598607
|
React103.useEffect(t1, t2);
|
|
598369
598608
|
return null;
|
|
598370
598609
|
}
|
|
598371
|
-
async function
|
|
598610
|
+
async function call61(onDone, _context, args) {
|
|
598372
598611
|
args = args?.trim() || "";
|
|
598373
598612
|
if (COMMON_INFO_ARGS.includes(args) || COMMON_HELP_ARGS.includes(args)) {
|
|
598374
598613
|
return /* @__PURE__ */ jsx_dev_runtime334.jsxDEV(ShowHelp, {
|
|
@@ -598417,9 +598656,9 @@ var init_tag2 = __esm(() => {
|
|
|
598417
598656
|
// src/commands/output-style/output-style.tsx
|
|
598418
598657
|
var exports_output_style = {};
|
|
598419
598658
|
__export(exports_output_style, {
|
|
598420
|
-
call: () =>
|
|
598659
|
+
call: () => call62
|
|
598421
598660
|
});
|
|
598422
|
-
async function
|
|
598661
|
+
async function call62(onDone) {
|
|
598423
598662
|
onDone("/output-style has been deprecated. Use /config to change your output style, or set it in your settings file. Changes take effect on the next session.", {
|
|
598424
598663
|
display: "system"
|
|
598425
598664
|
});
|
|
@@ -598468,7 +598707,7 @@ var exports_effort = {};
|
|
|
598468
598707
|
__export(exports_effort, {
|
|
598469
598708
|
showCurrentEffort: () => showCurrentEffort,
|
|
598470
598709
|
executeEffort: () => executeEffort,
|
|
598471
|
-
call: () =>
|
|
598710
|
+
call: () => call63
|
|
598472
598711
|
});
|
|
598473
598712
|
function setEffortValue(effortValue) {
|
|
598474
598713
|
const persistable = toPersistableEffort(effortValue);
|
|
@@ -598619,7 +598858,7 @@ function ApplyEffortAndClose(t0) {
|
|
|
598619
598858
|
React104.useEffect(t1, t2);
|
|
598620
598859
|
return null;
|
|
598621
598860
|
}
|
|
598622
|
-
async function
|
|
598861
|
+
async function call63(onDone, _context, args) {
|
|
598623
598862
|
args = args?.trim() || "";
|
|
598624
598863
|
if (COMMON_HELP_ARGS2.includes(args)) {
|
|
598625
598864
|
onDone(`Usage: /effort [low|medium|high|max|auto]
|
|
@@ -601528,9 +601767,9 @@ var init_Stats = __esm(() => {
|
|
|
601528
601767
|
// src/commands/stats/stats.tsx
|
|
601529
601768
|
var exports_stats = {};
|
|
601530
601769
|
__export(exports_stats, {
|
|
601531
|
-
call: () =>
|
|
601770
|
+
call: () => call64
|
|
601532
601771
|
});
|
|
601533
|
-
var jsx_dev_runtime337,
|
|
601772
|
+
var jsx_dev_runtime337, call64 = async (onDone) => {
|
|
601534
601773
|
return /* @__PURE__ */ jsx_dev_runtime337.jsxDEV(Stats2, {
|
|
601535
601774
|
onClose: onDone
|
|
601536
601775
|
}, undefined, false, undefined, this);
|
|
@@ -603022,7 +603261,7 @@ function generateHtmlReport(data, insights) {
|
|
|
603022
603261
|
</html>`;
|
|
603023
603262
|
}
|
|
603024
603263
|
function buildExportData(data, insights, facets, remoteStats) {
|
|
603025
|
-
const version3 = typeof MACRO !== "undefined" ? "1.3.
|
|
603264
|
+
const version3 = typeof MACRO !== "undefined" ? "1.3.429" : "unknown";
|
|
603026
603265
|
const remote_hosts_collected = remoteStats?.hosts.filter((h3) => h3.sessionCount > 0).map((h3) => h3.name);
|
|
603027
603266
|
const facets_summary = {
|
|
603028
603267
|
total: facets.size,
|
|
@@ -603765,6 +604004,7 @@ var init_commands2 = __esm(() => {
|
|
|
603765
604004
|
init_init2();
|
|
603766
604005
|
init_init_verifiers();
|
|
603767
604006
|
init_collaborator_swarm();
|
|
604007
|
+
init_normal2();
|
|
603768
604008
|
init_keybindings2();
|
|
603769
604009
|
init_keep2();
|
|
603770
604010
|
init_mcp3();
|
|
@@ -603907,6 +604147,7 @@ var init_commands2 = __esm(() => {
|
|
|
603907
604147
|
feedback_default,
|
|
603908
604148
|
review_default,
|
|
603909
604149
|
collaborator_swarm_default,
|
|
604150
|
+
normal_default,
|
|
603910
604151
|
ultraplan_local_default,
|
|
603911
604152
|
ultrareview_local_default,
|
|
603912
604153
|
generate_image_default,
|
|
@@ -606922,7 +607163,7 @@ var init_sessionStorage = __esm(() => {
|
|
|
606922
607163
|
init_settings2();
|
|
606923
607164
|
init_slowOperations();
|
|
606924
607165
|
init_uuid();
|
|
606925
|
-
VERSION6 = typeof MACRO !== "undefined" ? "1.3.
|
|
607166
|
+
VERSION6 = typeof MACRO !== "undefined" ? "1.3.429" : "unknown";
|
|
606926
607167
|
MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
|
|
606927
607168
|
SKIP_FIRST_PROMPT_PATTERN = /^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;
|
|
606928
607169
|
EPHEMERAL_PROGRESS_TYPES = new Set([
|
|
@@ -608143,7 +608384,7 @@ var init_filesystem = __esm(() => {
|
|
|
608143
608384
|
});
|
|
608144
608385
|
getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
|
|
608145
608386
|
const nonce = randomBytes18(16).toString("hex");
|
|
608146
|
-
return join150(getClaudeTempDir(), "bundled-skills", "1.3.
|
|
608387
|
+
return join150(getClaudeTempDir(), "bundled-skills", "1.3.429", nonce);
|
|
608147
608388
|
});
|
|
608148
608389
|
getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
|
|
608149
608390
|
});
|
|
@@ -613258,7 +613499,7 @@ __export(exports_update, {
|
|
|
613258
613499
|
import { execFileSync as execFileSync3 } from "node:child_process";
|
|
613259
613500
|
import { homedir as homedir33 } from "os";
|
|
613260
613501
|
async function update() {
|
|
613261
|
-
writeToStdout(`Current version: ${"1.3.
|
|
613502
|
+
writeToStdout(`Current version: ${"1.3.429"}
|
|
613262
613503
|
`);
|
|
613263
613504
|
const isBundled = isInBundledMode();
|
|
613264
613505
|
if (isBundled) {
|
|
@@ -613284,13 +613525,13 @@ Manual check: npm view ${"@rayu-dev/rayu-cli"} version
|
|
|
613284
613525
|
process.exit(1);
|
|
613285
613526
|
return;
|
|
613286
613527
|
}
|
|
613287
|
-
if (latestVersion === "1.3.
|
|
613528
|
+
if (latestVersion === "1.3.429") {
|
|
613288
613529
|
writeToStdout(source_default.green(`
|
|
613289
|
-
Rayu CLI is up to date (${"1.3.
|
|
613530
|
+
Rayu CLI is up to date (${"1.3.429"})
|
|
613290
613531
|
`));
|
|
613291
613532
|
process.exit(0);
|
|
613292
613533
|
}
|
|
613293
|
-
writeToStdout(`New version available: ${latestVersion} (current: ${"1.3.
|
|
613534
|
+
writeToStdout(`New version available: ${latestVersion} (current: ${"1.3.429"})
|
|
613294
613535
|
`);
|
|
613295
613536
|
writeToStdout(`Installing update...
|
|
613296
613537
|
|
|
@@ -613314,7 +613555,7 @@ Try manually:
|
|
|
613314
613555
|
return;
|
|
613315
613556
|
}
|
|
613316
613557
|
writeToStdout(source_default.green(`
|
|
613317
|
-
Successfully updated from ${"1.3.
|
|
613558
|
+
Successfully updated from ${"1.3.429"} to ${latestVersion}
|
|
613318
613559
|
`));
|
|
613319
613560
|
process.exit(0);
|
|
613320
613561
|
}
|
|
@@ -613328,14 +613569,14 @@ async function updateNativeBinary() {
|
|
|
613328
613569
|
} catch {
|
|
613329
613570
|
latestVersion = "";
|
|
613330
613571
|
}
|
|
613331
|
-
if (latestVersion && latestVersion === "1.3.
|
|
613572
|
+
if (latestVersion && latestVersion === "1.3.429") {
|
|
613332
613573
|
writeToStdout(source_default.green(`
|
|
613333
|
-
Rayu CLI is up to date (1.3.
|
|
613574
|
+
Rayu CLI is up to date (1.3.429)
|
|
613334
613575
|
`));
|
|
613335
613576
|
process.exit(0);
|
|
613336
613577
|
}
|
|
613337
613578
|
if (latestVersion) {
|
|
613338
|
-
writeToStdout(`New version available: ${latestVersion} (current: 1.3.
|
|
613579
|
+
writeToStdout(`New version available: ${latestVersion} (current: 1.3.429)
|
|
613339
613580
|
`);
|
|
613340
613581
|
}
|
|
613341
613582
|
writeToStdout(`Downloading and installing update...
|
|
@@ -613350,13 +613591,13 @@ Rayu CLI is up to date (1.3.428)
|
|
|
613350
613591
|
return;
|
|
613351
613592
|
}
|
|
613352
613593
|
writeToStdout(source_default.green(`
|
|
613353
|
-
Rayu CLI is up to date (1.3.
|
|
613594
|
+
Rayu CLI is up to date (1.3.429)
|
|
613354
613595
|
`));
|
|
613355
613596
|
process.exit(0);
|
|
613356
613597
|
}
|
|
613357
613598
|
const updatedTo = result.latestVersion ?? latestVersion ?? "latest";
|
|
613358
613599
|
writeToStdout(source_default.green(`
|
|
613359
|
-
Successfully updated from 1.3.
|
|
613600
|
+
Successfully updated from 1.3.429 to ${updatedTo}
|
|
613360
613601
|
`));
|
|
613361
613602
|
writeToStdout(`Restart your terminal to use the new version.
|
|
613362
613603
|
`);
|
|
@@ -613387,7 +613628,7 @@ __export(exports_uninstall, {
|
|
|
613387
613628
|
import { execFileSync as execFileSync4 } from "node:child_process";
|
|
613388
613629
|
import { homedir as homedir34 } from "os";
|
|
613389
613630
|
async function uninstall() {
|
|
613390
|
-
writeToStdout(`Uninstalling Rayu CLI (${"1.3.
|
|
613631
|
+
writeToStdout(`Uninstalling Rayu CLI (${"1.3.429"})...
|
|
613391
613632
|
`);
|
|
613392
613633
|
writeToStdout(`Running: npm uninstall -g ${"@rayu-dev/rayu-cli"}
|
|
613393
613634
|
|
|
@@ -613410,7 +613651,7 @@ Try running manually:
|
|
|
613410
613651
|
process.exit(1);
|
|
613411
613652
|
}
|
|
613412
613653
|
writeToStdout(source_default.green(`
|
|
613413
|
-
Successfully uninstalled ${"@rayu-dev/rayu-cli"} ${"1.3.
|
|
613654
|
+
Successfully uninstalled ${"@rayu-dev/rayu-cli"} ${"1.3.429"}
|
|
613414
613655
|
`));
|
|
613415
613656
|
writeToStdout(`Thanks for using Rayu CLI!
|
|
613416
613657
|
`);
|
|
@@ -613462,7 +613703,7 @@ function showFirstRunWelcome() {
|
|
|
613462
613703
|
`);
|
|
613463
613704
|
try {
|
|
613464
613705
|
mkdirSync13(getRayuConfigHomeDir(), { recursive: true });
|
|
613465
|
-
writeFileSync15(markerPath(), "1.3.
|
|
613706
|
+
writeFileSync15(markerPath(), "1.3.429", "utf8");
|
|
613466
613707
|
} catch {}
|
|
613467
613708
|
}
|
|
613468
613709
|
var init_firstRun = __esm(() => {
|
|
@@ -625305,7 +625546,7 @@ async function initializeBetaTracing(resource) {
|
|
|
625305
625546
|
});
|
|
625306
625547
|
import_api_logs.logs.setGlobalLoggerProvider(loggerProvider);
|
|
625307
625548
|
setLoggerProvider(loggerProvider);
|
|
625308
|
-
const eventLogger = import_api_logs.logs.getLogger("com.anthropic.claude_code.events", "1.3.
|
|
625549
|
+
const eventLogger = import_api_logs.logs.getLogger("com.anthropic.claude_code.events", "1.3.429");
|
|
625309
625550
|
setEventLogger(eventLogger);
|
|
625310
625551
|
process.on("beforeExit", async () => {
|
|
625311
625552
|
await loggerProvider?.forceFlush();
|
|
@@ -625345,7 +625586,7 @@ async function initializeTelemetry() {
|
|
|
625345
625586
|
const platform4 = getPlatform();
|
|
625346
625587
|
const baseAttributes = {
|
|
625347
625588
|
[import_semantic_conventions2.ATTR_SERVICE_NAME]: "claude-code",
|
|
625348
|
-
[import_semantic_conventions2.ATTR_SERVICE_VERSION]: "1.3.
|
|
625589
|
+
[import_semantic_conventions2.ATTR_SERVICE_VERSION]: "1.3.429"
|
|
625349
625590
|
};
|
|
625350
625591
|
if (platform4 === "wsl") {
|
|
625351
625592
|
const wslVersion = getWslVersion();
|
|
@@ -625390,7 +625631,7 @@ async function initializeTelemetry() {
|
|
|
625390
625631
|
} catch {}
|
|
625391
625632
|
};
|
|
625392
625633
|
registerCleanup(shutdownTelemetry2);
|
|
625393
|
-
return meterProvider2.getMeter("com.anthropic.claude_code", "1.3.
|
|
625634
|
+
return meterProvider2.getMeter("com.anthropic.claude_code", "1.3.429");
|
|
625394
625635
|
}
|
|
625395
625636
|
const meterProvider = new import_sdk_metrics2.MeterProvider({
|
|
625396
625637
|
resource,
|
|
@@ -625410,7 +625651,7 @@ async function initializeTelemetry() {
|
|
|
625410
625651
|
});
|
|
625411
625652
|
import_api_logs.logs.setGlobalLoggerProvider(loggerProvider);
|
|
625412
625653
|
setLoggerProvider(loggerProvider);
|
|
625413
|
-
const eventLogger = import_api_logs.logs.getLogger("com.anthropic.claude_code.events", "1.3.
|
|
625654
|
+
const eventLogger = import_api_logs.logs.getLogger("com.anthropic.claude_code.events", "1.3.429");
|
|
625414
625655
|
setEventLogger(eventLogger);
|
|
625415
625656
|
logForDebugging("[3P telemetry] Event logger set successfully");
|
|
625416
625657
|
process.on("beforeExit", async () => {
|
|
@@ -625472,7 +625713,7 @@ Current timeout: ${timeoutMs}ms
|
|
|
625472
625713
|
}
|
|
625473
625714
|
};
|
|
625474
625715
|
registerCleanup(shutdownTelemetry);
|
|
625475
|
-
return meterProvider.getMeter("com.anthropic.claude_code", "1.3.
|
|
625716
|
+
return meterProvider.getMeter("com.anthropic.claude_code", "1.3.429");
|
|
625476
625717
|
}
|
|
625477
625718
|
async function flushTelemetry() {
|
|
625478
625719
|
const meterProvider = getMeterProvider();
|
|
@@ -626985,7 +627226,7 @@ function buildSystemInitMessage(inputs) {
|
|
|
626985
627226
|
slash_commands: inputs.commands.filter((c4) => c4.userInvocable !== false).map((c4) => c4.name),
|
|
626986
627227
|
apiKeySource: getAnthropicApiKeyWithSource().source,
|
|
626987
627228
|
betas: getSdkBetas(),
|
|
626988
|
-
claude_code_version: "1.3.
|
|
627229
|
+
claude_code_version: "1.3.429",
|
|
626989
627230
|
output_style: outputStyle2,
|
|
626990
627231
|
agents: inputs.agents.map((agent) => agent.agentType),
|
|
626991
627232
|
skills: inputs.skills.filter((s2) => s2.userInvocable !== false).map((skill) => skill.name),
|
|
@@ -643194,7 +643435,7 @@ var init_useVoiceEnabled = __esm(() => {
|
|
|
643194
643435
|
function getSemverPart(version3) {
|
|
643195
643436
|
return `${import_semver12.major(version3, { loose: true })}.${import_semver12.minor(version3, { loose: true })}.${import_semver12.patch(version3, { loose: true })}`;
|
|
643196
643437
|
}
|
|
643197
|
-
function useUpdateNotification(updatedVersion, initialVersion = "1.3.
|
|
643438
|
+
function useUpdateNotification(updatedVersion, initialVersion = "1.3.429") {
|
|
643198
643439
|
const [lastNotifiedSemver, setLastNotifiedSemver] = import_react218.useState(() => getSemverPart(initialVersion));
|
|
643199
643440
|
if (!updatedVersion) {
|
|
643200
643441
|
return null;
|
|
@@ -643234,7 +643475,7 @@ function AutoUpdater({
|
|
|
643234
643475
|
return;
|
|
643235
643476
|
}
|
|
643236
643477
|
if (false) {}
|
|
643237
|
-
const currentVersion = "1.3.
|
|
643478
|
+
const currentVersion = "1.3.429";
|
|
643238
643479
|
const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
|
|
643239
643480
|
let latestVersion = await getLatestVersion(channel);
|
|
643240
643481
|
const isDisabled = isAutoUpdaterDisabled();
|
|
@@ -643447,12 +643688,12 @@ function NativeAutoUpdater({
|
|
|
643447
643688
|
logEvent("tengu_native_auto_updater_start", {});
|
|
643448
643689
|
try {
|
|
643449
643690
|
const maxVersion = await getMaxVersion();
|
|
643450
|
-
if (maxVersion && gt("1.3.
|
|
643691
|
+
if (maxVersion && gt("1.3.429", maxVersion)) {
|
|
643451
643692
|
const msg = await getMaxVersionMessage();
|
|
643452
643693
|
setMaxVersionIssue(msg ?? "affects your version");
|
|
643453
643694
|
}
|
|
643454
643695
|
const result = await installLatest(channel);
|
|
643455
|
-
const currentVersion = "1.3.
|
|
643696
|
+
const currentVersion = "1.3.429";
|
|
643456
643697
|
const latencyMs = Date.now() - startTime;
|
|
643457
643698
|
if (result.lockFailed) {
|
|
643458
643699
|
logEvent("tengu_native_auto_updater_lock_contention", {
|
|
@@ -643589,17 +643830,17 @@ function PackageManagerAutoUpdater(t0) {
|
|
|
643589
643830
|
const maxVersion = await getMaxVersion();
|
|
643590
643831
|
if (maxVersion && latest && gt(latest, maxVersion)) {
|
|
643591
643832
|
logForDebugging(`PackageManagerAutoUpdater: maxVersion ${maxVersion} is set, capping update from ${latest} to ${maxVersion}`);
|
|
643592
|
-
if (gte("1.3.
|
|
643593
|
-
logForDebugging(`PackageManagerAutoUpdater: current version ${"1.3.
|
|
643833
|
+
if (gte("1.3.429", maxVersion)) {
|
|
643834
|
+
logForDebugging(`PackageManagerAutoUpdater: current version ${"1.3.429"} is already at or above maxVersion ${maxVersion}, skipping update`);
|
|
643594
643835
|
setUpdateAvailable(false);
|
|
643595
643836
|
return;
|
|
643596
643837
|
}
|
|
643597
643838
|
latest = maxVersion;
|
|
643598
643839
|
}
|
|
643599
|
-
const hasUpdate = latest && !gte("1.3.
|
|
643840
|
+
const hasUpdate = latest && !gte("1.3.429", latest) && !shouldSkipVersion(latest);
|
|
643600
643841
|
setUpdateAvailable(!!hasUpdate);
|
|
643601
643842
|
if (hasUpdate) {
|
|
643602
|
-
logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.3.
|
|
643843
|
+
logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.3.429"} -> ${latest}`);
|
|
643603
643844
|
}
|
|
643604
643845
|
};
|
|
643605
643846
|
$3[0] = t1;
|
|
@@ -643633,7 +643874,7 @@ function PackageManagerAutoUpdater(t0) {
|
|
|
643633
643874
|
wrap: "truncate",
|
|
643634
643875
|
children: [
|
|
643635
643876
|
"currentVersion: ",
|
|
643636
|
-
"1.3.
|
|
643877
|
+
"1.3.429"
|
|
643637
643878
|
]
|
|
643638
643879
|
}, undefined, true, undefined, this);
|
|
643639
643880
|
$3[3] = verbose;
|
|
@@ -651798,7 +652039,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
|
|
|
651798
652039
|
project_dir: getOriginalCwd(),
|
|
651799
652040
|
added_dirs: addedDirs
|
|
651800
652041
|
},
|
|
651801
|
-
version: "1.3.
|
|
652042
|
+
version: "1.3.429",
|
|
651802
652043
|
output_style: {
|
|
651803
652044
|
name: outputStyleName
|
|
651804
652045
|
},
|
|
@@ -653083,6 +653324,7 @@ function ModeIndicator({
|
|
|
653083
653324
|
} = useTerminalSize();
|
|
653084
653325
|
const modeCycleShortcut = useShortcutDisplay("chat:cycleMode", "Chat", "shift+tab");
|
|
653085
653326
|
const tasks2 = useAppState((s2) => s2.tasks);
|
|
653327
|
+
const swarmMode = useAppState((s_sw) => s_sw.swarmMode);
|
|
653086
653328
|
const teamContext = useAppState((s_0) => s_0.teamContext);
|
|
653087
653329
|
const store = useAppStateStore();
|
|
653088
653330
|
const [remoteSessionUrl] = import_react245.useState(() => store.getState().remoteSessionUrl);
|
|
@@ -653126,7 +653368,7 @@ function ModeIndicator({
|
|
|
653126
653368
|
const isViewingTeammate = viewSelectionMode === "viewing-agent" && viewedTask?.type === "in_process_teammate";
|
|
653127
653369
|
const isViewingCompletedTeammate = isViewingTeammate && viewedTask != null && viewedTask.status !== "running";
|
|
653128
653370
|
const hasBackgroundTasks = runningTaskCount > 0 || isViewingTeammate;
|
|
653129
|
-
const primaryItemCount = (isCoordinator || hasActiveMode ? 1 : 0) + (hasBackgroundTasks ? 1 : 0) + (hasTeams ? 1 : 0);
|
|
653371
|
+
const primaryItemCount = (isCoordinator || hasActiveMode ? 1 : 0) + (hasBackgroundTasks ? 1 : 0) + (hasTeams ? 1 : 0) + (swarmMode ? 1 : 0);
|
|
653130
653372
|
const shouldShowPrStatus = isPrStatusEnabled() && prStatus.number !== null && prStatus.reviewState !== null && prStatus.url !== null && primaryItemCount < 2 && (primaryItemCount === 0 || columns >= 80);
|
|
653131
653373
|
const shouldShowModeHint = primaryItemCount < 2;
|
|
653132
653374
|
const hasInProcessTeammates = !showSpinnerTree && hasBackgroundTasks && Object.values(tasks2).some((t_1) => t_1.type === "in_process_teammate");
|
|
@@ -653151,7 +653393,18 @@ function ModeIndicator({
|
|
|
653151
653393
|
}, undefined, true, undefined, this)
|
|
653152
653394
|
]
|
|
653153
653395
|
}, "mode", true, undefined, this) : null;
|
|
653396
|
+
const swarmPart = swarmMode ? /* @__PURE__ */ jsx_dev_runtime415.jsxDEV(ThemedText, {
|
|
653397
|
+
color: "permission",
|
|
653398
|
+
children: [
|
|
653399
|
+
"⚡ collaborator_swarm mode",
|
|
653400
|
+
/* @__PURE__ */ jsx_dev_runtime415.jsxDEV(ThemedText, {
|
|
653401
|
+
dimColor: true,
|
|
653402
|
+
children: " · /normal to exit"
|
|
653403
|
+
}, undefined, false, undefined, this)
|
|
653404
|
+
]
|
|
653405
|
+
}, "swarm-mode", true, undefined, this) : null;
|
|
653154
653406
|
const parts = [
|
|
653407
|
+
...swarmPart ? [swarmPart] : [],
|
|
653155
653408
|
...remoteSessionUrl ? [/* @__PURE__ */ jsx_dev_runtime415.jsxDEV(Link, {
|
|
653156
653409
|
url: remoteSessionUrl,
|
|
653157
653410
|
children: /* @__PURE__ */ jsx_dev_runtime415.jsxDEV(ThemedText, {
|
|
@@ -663168,7 +663421,7 @@ async function submitTranscriptShare(messages, trigger, appearanceId) {
|
|
|
663168
663421
|
} catch {}
|
|
663169
663422
|
const data = {
|
|
663170
663423
|
trigger,
|
|
663171
|
-
version: "1.3.
|
|
663424
|
+
version: "1.3.429",
|
|
663172
663425
|
platform: process.platform,
|
|
663173
663426
|
transcript,
|
|
663174
663427
|
subagentTranscripts: Object.keys(subagentTranscripts).length > 0 ? subagentTranscripts : undefined,
|
|
@@ -665698,7 +665951,7 @@ var init_tipRegistry = __esm(() => {
|
|
|
665698
665951
|
id: "mobile-app",
|
|
665699
665952
|
content: async () => "/mobile to use RAYU from the Claude app on your phone",
|
|
665700
665953
|
cooldownSessions: 15,
|
|
665701
|
-
isRelevant: async () =>
|
|
665954
|
+
isRelevant: async () => false
|
|
665702
665955
|
},
|
|
665703
665956
|
{
|
|
665704
665957
|
id: "opusplan-mode-reminder",
|
|
@@ -675217,7 +675470,22 @@ function WelcomeV2() {
|
|
|
675217
675470
|
dimColor: true,
|
|
675218
675471
|
children: [
|
|
675219
675472
|
"v",
|
|
675220
|
-
"1.3.
|
|
675473
|
+
"1.3.429"
|
|
675474
|
+
]
|
|
675475
|
+
}, undefined, true, undefined, this)
|
|
675476
|
+
]
|
|
675477
|
+
}, undefined, true, undefined, this),
|
|
675478
|
+
/* @__PURE__ */ jsx_dev_runtime456.jsxDEV(ThemedBox_default, {
|
|
675479
|
+
paddingLeft: 2,
|
|
675480
|
+
children: [
|
|
675481
|
+
/* @__PURE__ */ jsx_dev_runtime456.jsxDEV(AnimatedAsterisk, {
|
|
675482
|
+
char: UP_ARROW
|
|
675483
|
+
}, undefined, false, undefined, this),
|
|
675484
|
+
/* @__PURE__ */ jsx_dev_runtime456.jsxDEV(ThemedText, {
|
|
675485
|
+
dimColor: true,
|
|
675486
|
+
children: [
|
|
675487
|
+
" ",
|
|
675488
|
+
"Welcome!, Thank You For Choosing Rayu!"
|
|
675221
675489
|
]
|
|
675222
675490
|
}, undefined, true, undefined, this)
|
|
675223
675491
|
]
|
|
@@ -675228,6 +675496,8 @@ function WelcomeV2() {
|
|
|
675228
675496
|
var jsx_dev_runtime456, RAYU_BANNER2;
|
|
675229
675497
|
var init_WelcomeV2 = __esm(() => {
|
|
675230
675498
|
init_ink2();
|
|
675499
|
+
init_AnimatedAsterisk();
|
|
675500
|
+
init_figures2();
|
|
675231
675501
|
jsx_dev_runtime456 = __toESM(require_jsx_dev_runtime(), 1);
|
|
675232
675502
|
RAYU_BANNER2 = [
|
|
675233
675503
|
["██████╗ █████╗ ██╗ ██╗██╗ ██╗", "#cfff7c"],
|
|
@@ -676934,7 +677204,7 @@ function completeOnboarding() {
|
|
|
676934
677204
|
saveGlobalConfig((current) => ({
|
|
676935
677205
|
...current,
|
|
676936
677206
|
hasCompletedOnboarding: true,
|
|
676937
|
-
lastOnboardingVersion: "1.3.
|
|
677207
|
+
lastOnboardingVersion: "1.3.429"
|
|
676938
677208
|
}));
|
|
676939
677209
|
}
|
|
676940
677210
|
function showDialog(root2, renderer) {
|
|
@@ -681234,7 +681504,7 @@ function appendToLog(path30, message) {
|
|
|
681234
681504
|
cwd: getFsImplementation().cwd(),
|
|
681235
681505
|
userType: "external",
|
|
681236
681506
|
sessionId: getSessionId(),
|
|
681237
|
-
version: "1.3.
|
|
681507
|
+
version: "1.3.429"
|
|
681238
681508
|
};
|
|
681239
681509
|
getLogWriter(path30).write(messageWithTimestamp);
|
|
681240
681510
|
}
|
|
@@ -685342,8 +685612,8 @@ async function getEnvLessBridgeConfig() {
|
|
|
685342
685612
|
}
|
|
685343
685613
|
async function checkEnvLessBridgeMinVersion() {
|
|
685344
685614
|
const cfg = await getEnvLessBridgeConfig();
|
|
685345
|
-
if (cfg.min_version && lt("1.3.
|
|
685346
|
-
return `Your version of RAYU (${"1.3.
|
|
685615
|
+
if (cfg.min_version && lt("1.3.429", cfg.min_version)) {
|
|
685616
|
+
return `Your version of RAYU (${"1.3.429"}) is too old for Remote Control.
|
|
685347
685617
|
Version ${cfg.min_version} or higher is required. Run \`claude update\` to update.`;
|
|
685348
685618
|
}
|
|
685349
685619
|
return null;
|
|
@@ -685817,7 +686087,7 @@ async function initBridgeCore(params) {
|
|
|
685817
686087
|
const rawApi = createBridgeApiClient({
|
|
685818
686088
|
baseUrl,
|
|
685819
686089
|
getAccessToken,
|
|
685820
|
-
runnerVersion: "1.3.
|
|
686090
|
+
runnerVersion: "1.3.429",
|
|
685821
686091
|
onDebug: logForDebugging,
|
|
685822
686092
|
onAuth401,
|
|
685823
686093
|
getTrustedDeviceToken
|
|
@@ -691179,7 +691449,7 @@ async function startMCPServer(cwd3, debug4, verbose) {
|
|
|
691179
691449
|
setCwd(cwd3);
|
|
691180
691450
|
const server = new Server({
|
|
691181
691451
|
name: "claude/tengu",
|
|
691182
|
-
version: "1.3.
|
|
691452
|
+
version: "1.3.429"
|
|
691183
691453
|
}, {
|
|
691184
691454
|
capabilities: {
|
|
691185
691455
|
tools: {}
|
|
@@ -693705,7 +693975,7 @@ ${customInstructions}` : customInstructions;
|
|
|
693705
693975
|
}
|
|
693706
693976
|
}
|
|
693707
693977
|
logForDiagnosticsNoPII("info", "started", {
|
|
693708
|
-
version: "1.3.
|
|
693978
|
+
version: "1.3.429",
|
|
693709
693979
|
is_native_binary: isInBundledMode()
|
|
693710
693980
|
});
|
|
693711
693981
|
registerCleanup(async () => {
|
|
@@ -694008,6 +694278,7 @@ ${customInstructions}` : customInstructions;
|
|
|
694008
694278
|
snapshotSequence: 0
|
|
694009
694279
|
},
|
|
694010
694280
|
pendingFileChanges: [],
|
|
694281
|
+
swarmMode: false,
|
|
694011
694282
|
attribution: createEmptyAttributionState(),
|
|
694012
694283
|
thinkingEnabled,
|
|
694013
694284
|
promptSuggestionEnabled: shouldEnablePromptSuggestion(),
|
|
@@ -694423,7 +694694,7 @@ Usage: rayu --remote "your task description"`, () => gracefulShutdown(1));
|
|
|
694423
694694
|
pendingHookMessages
|
|
694424
694695
|
}, renderAndRun);
|
|
694425
694696
|
}
|
|
694426
|
-
}).version("1.3.
|
|
694697
|
+
}).version("1.3.429 (Rayu-CLI)", "-v, --version", "Output the version number");
|
|
694427
694698
|
program.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
|
|
694428
694699
|
program.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
|
|
694429
694700
|
if (canUserConfigureAdvisor()) {
|
|
@@ -694889,7 +695160,7 @@ if (false) {}
|
|
|
694889
695160
|
async function main2() {
|
|
694890
695161
|
const args = process.argv.slice(2);
|
|
694891
695162
|
if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
|
|
694892
|
-
console.log(`${"1.3.
|
|
695163
|
+
console.log(`${"1.3.429"} (Rayu-CLI)`);
|
|
694893
695164
|
return;
|
|
694894
695165
|
}
|
|
694895
695166
|
const {
|