bingocode 1.1.147 → 1.1.149
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/.claude/settings.local.json +1 -33
- package/package.json +1 -1
- package/src/manager/CliMenuManager.tsx +5 -17
- package/src/utils/betas.ts +13 -1
- package/.claude/skills/leanchy/docs/core-protocol.md +0 -27
- package/.claude/skills/leanchy/docs/diagnostic-protocol.md +0 -25
- package/.claude/skills/leanchy/docs/system-evolution.md +0 -22
|
@@ -1,39 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"permissions": {
|
|
3
3
|
"allow": [
|
|
4
|
-
"
|
|
5
|
-
"Bash(dir \"F:\\\\Leanchy\\\\VirtuosAgent\\\\BingoCode\\\\src\\\\server\\\\proxy\")",
|
|
6
|
-
"Bash(ls src/**/)",
|
|
7
|
-
"Bash(cat config/*.json)",
|
|
8
|
-
"Bash(git:*)",
|
|
9
|
-
"WebFetch(domain:docs.anthropic.com)",
|
|
10
|
-
"WebSearch",
|
|
11
|
-
"WebFetch(domain:www.anthropic.com)",
|
|
12
|
-
"Bash(grep -v \"node_modules\\\\|bun:\\\\|bun/\\\\|bun@\\\\|\\\\.bun\\\\|bunfig\\\\|bundl\\\\|bunny\\\\|abun\\\\|debug\\\\|comment\\\\|//.*bun\\\\|bunta\\\\|buno\")",
|
|
13
|
-
"Bash(grep:*)",
|
|
14
|
-
"Bash(node:*)",
|
|
15
|
-
"WebFetch(domain:www.npmjs.com)",
|
|
16
|
-
"WebFetch(domain:raw.githubusercontent.com)",
|
|
17
|
-
"WebFetch(domain:anthropic.com)",
|
|
18
|
-
"WebFetch(domain:unpkg.com)",
|
|
19
|
-
"WebFetch(domain:registry.npmjs.org)",
|
|
20
|
-
"Bash(npm info:*)",
|
|
21
|
-
"Bash(cd /tmp)",
|
|
22
|
-
"Bash(npm pack:*)",
|
|
23
|
-
"Bash(ls -lh *.tgz)",
|
|
24
|
-
"Bash(tar xzf:*)",
|
|
25
|
-
"Bash(mkdir -p /tmp/old-pkg)",
|
|
26
|
-
"Read(//tmp/old-pkg/**)",
|
|
27
|
-
"Bash(mkdir -p /tmp/old-v1)",
|
|
28
|
-
"Bash(/dev/null ls:*)",
|
|
29
|
-
"Bash(find F:LeanchyVirtuosAgentBingoCode -maxdepth 3 -type f -name *.ts -o -name *.js -o -name *.json)",
|
|
30
|
-
"Bash(find F:LeanchyVirtuosAgentBingoCodesrc -name yoloClassifier* -o -name *yolo*)",
|
|
31
|
-
"Bash(bun --print \"import {feature} from ''bun:bundle''; console.log\\(feature\\(''TRANSCRIPT_CLASSIFIER''\\)\\)\")",
|
|
32
|
-
"Bash(bun:*)",
|
|
33
|
-
"Bash(find F:LeanchyVirtuosAgentBingoCode -name *.plugin.* -o -name *plugin.ts)",
|
|
34
|
-
"Bash(find F:LeanchyVirtuosAgentBingoCodesrc -name globalConfig* -o -name *.globalConfig*)",
|
|
35
|
-
"Read(//f/Leanchy/VirtuosAgent/BingoCode/**)",
|
|
36
|
-
"Bash(python -c \"import json,sys; d=json.load\\(sys.stdin\\); print\\(list\\(d.keys\\(\\)\\)[:20]\\)\")"
|
|
4
|
+
"Bash(bun run:*)"
|
|
37
5
|
]
|
|
38
6
|
}
|
|
39
7
|
}
|
package/package.json
CHANGED
|
@@ -590,11 +590,7 @@ export const CliMenuManager: React.FC = () => {
|
|
|
590
590
|
const langOrder: Lang[] = ['en', 'zh', 'ja'];
|
|
591
591
|
const nextLang = langOrder[(langOrder.indexOf(lang) + 1) % langOrder.length];
|
|
592
592
|
setLang(nextLang);
|
|
593
|
-
try {
|
|
594
|
-
const cfg = getGlobalConfig();
|
|
595
|
-
cfg.language = nextLang;
|
|
596
|
-
saveGlobalConfig(cfg);
|
|
597
|
-
} catch {}
|
|
593
|
+
try { saveGlobalConfig(current => ({ ...current, language: nextLang })); } catch {}
|
|
598
594
|
return;
|
|
599
595
|
}
|
|
600
596
|
|
|
@@ -605,11 +601,7 @@ export const CliMenuManager: React.FC = () => {
|
|
|
605
601
|
const idx = Math.max(0, order.indexOf(curr as any));
|
|
606
602
|
const next = order[(idx + 1) % order.length];
|
|
607
603
|
setTheme(next as any);
|
|
608
|
-
try {
|
|
609
|
-
const cfg = getGlobalConfig();
|
|
610
|
-
cfg.theme = next as any;
|
|
611
|
-
saveGlobalConfig(cfg);
|
|
612
|
-
} catch {}
|
|
604
|
+
try { saveGlobalConfig(current => ({ ...current, theme: next as any })); } catch {}
|
|
613
605
|
return;
|
|
614
606
|
}
|
|
615
607
|
|
|
@@ -617,7 +609,7 @@ export const CliMenuManager: React.FC = () => {
|
|
|
617
609
|
if (input === 'o' || input === 'O') {
|
|
618
610
|
setAnimEnabled(v => {
|
|
619
611
|
const next = !v;
|
|
620
|
-
try {
|
|
612
|
+
try { saveGlobalConfig(current => ({ ...current, uiAnimEnabled: next })); } catch {}
|
|
621
613
|
return next;
|
|
622
614
|
});
|
|
623
615
|
return;
|
|
@@ -626,7 +618,7 @@ export const CliMenuManager: React.FC = () => {
|
|
|
626
618
|
if (input === 't' || input === 'T') {
|
|
627
619
|
setTipsEnabled(v => {
|
|
628
620
|
const next = !v;
|
|
629
|
-
try {
|
|
621
|
+
try { saveGlobalConfig(current => ({ ...current, uiTipsEnabled: next })); } catch {}
|
|
630
622
|
return next;
|
|
631
623
|
});
|
|
632
624
|
return;
|
|
@@ -1259,11 +1251,7 @@ export const CliMenuManager: React.FC = () => {
|
|
|
1259
1251
|
initialIndex={tS.langOptions.findIndex(o => o.value === lang)}
|
|
1260
1252
|
onSelect={(item: { label: string; value: Lang }) => {
|
|
1261
1253
|
setLang(item.value);
|
|
1262
|
-
try {
|
|
1263
|
-
const cfg = getGlobalConfig();
|
|
1264
|
-
cfg.language = item.value;
|
|
1265
|
-
saveGlobalConfig(cfg);
|
|
1266
|
-
} catch {}
|
|
1254
|
+
try { saveGlobalConfig(current => ({ ...current, language: item.value })); } catch {}
|
|
1267
1255
|
setSettingsStage('list');
|
|
1268
1256
|
}}
|
|
1269
1257
|
/>
|
package/src/utils/betas.ts
CHANGED
|
@@ -163,7 +163,19 @@ export function modelSupportsAutoMode(model: string): boolean {
|
|
|
163
163
|
// External: firstParty-only at launch (PI probes not wired for
|
|
164
164
|
// Bedrock/Vertex/Foundry yet). Checked before allowModels so the GB
|
|
165
165
|
// override can't enable auto mode on unsupported providers.
|
|
166
|
-
|
|
166
|
+
// NOTE(leanchy): For BingoCode fork, bypass the provider check when
|
|
167
|
+
// the user has explicitly opted into auto mode AND set the env var.
|
|
168
|
+
// Original: if (process.env.USER_TYPE !== 'ant' && getAPIProvider() !== 'firstParty')
|
|
169
|
+
const autoModeOptIn = getFeatureValue_CACHED_MAY_BE_STALE<{ enabled?: string }>(
|
|
170
|
+
'tengu_auto_mode_config',
|
|
171
|
+
{},
|
|
172
|
+
)
|
|
173
|
+
if (
|
|
174
|
+
process.env.USER_TYPE !== 'ant' &&
|
|
175
|
+
getAPIProvider() !== 'firstParty' &&
|
|
176
|
+
!isEnvTruthy(process.env.CLAUDE_CODE_ENABLE_AUTO_WITH_ANY_PROVIDER) &&
|
|
177
|
+
autoModeOptIn?.enabled !== 'enabled'
|
|
178
|
+
) {
|
|
167
179
|
return false
|
|
168
180
|
}
|
|
169
181
|
// GrowthBook override: tengu_auto_mode_config.allowModels force-enables
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: core-protocol
|
|
3
|
-
description: 核心协议:定义终态导向、信息性价比、全权授权与知识沉淀的闭环逻辑。
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# 核心协议 (Core Protocol)
|
|
7
|
-
|
|
8
|
-
## 1. 终态逆向 (Inverse Engineering)
|
|
9
|
-
- **定义**:从交付终态倒推执行路径。
|
|
10
|
-
- **准则**:
|
|
11
|
-
- 启动即确认验收标准(Definition of Done)。
|
|
12
|
-
- 中间步骤若无法被终态验证,视作无效动作。
|
|
13
|
-
- 进度汇报仅包含:当前状态 -> 距终态剩余缺口。
|
|
14
|
-
|
|
15
|
-
## 2. 信息性价比 (Information Density)
|
|
16
|
-
- **定义**:MAX(信息量 / 字符占用)。
|
|
17
|
-
- **准则**:
|
|
18
|
-
- 禁止废话、过渡句、礼貌语。
|
|
19
|
-
- 结论前置,逻辑后附。
|
|
20
|
-
- 沟通即协议:将重复性共识固化为 Skill 记录。
|
|
21
|
-
|
|
22
|
-
## 3. 授权与沉淀 (Delegation & Accumulation)
|
|
23
|
-
- **定义**:一次性协议定义撬动无限次高质量执行。
|
|
24
|
-
- **准则**:
|
|
25
|
-
- **全权委托**:在协议框架内拥有修改、删除、重写权,无需小碎步确认。
|
|
26
|
-
- **纠错即协议**:凡被纠正,立即将正确逻辑沉淀至 Skill,禁止二次触发同类纠错。
|
|
27
|
-
- **角色分层**:AI 作为高度抽象的执行引擎,用户作为终态验收器。
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: diagnostic-protocol
|
|
3
|
-
description: 诊断与修改协议:定义证据驱动、最小侵入与可控熵减的防御性编程逻辑。
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# 诊断协议 (Diagnostic Protocol)
|
|
7
|
-
|
|
8
|
-
## 1. 证据驱动 (Evidence-Driven)
|
|
9
|
-
- **路径**:观察事实 -> 提取证据 -> 定位根因 -> 输出方案 -> 执行。
|
|
10
|
-
- **准则**:
|
|
11
|
-
- 无证据禁止修改。
|
|
12
|
-
- 严禁猜测、体感修复或盲目重试。
|
|
13
|
-
- 日志、调用链、内存快照是唯一修改合法性证明。
|
|
14
|
-
|
|
15
|
-
## 2. 可控熵减 (Controlled Entropy)
|
|
16
|
-
- **逻辑**:视“不必要的变化”为系统威胁。
|
|
17
|
-
- **准则**:
|
|
18
|
-
- **最小侵入**:改动范围限制在根因点,禁止扩大化重构(除非显式要求)。
|
|
19
|
-
- **反向溯源**:报错点非故障源,必须跨层级追踪至控制流源头。
|
|
20
|
-
- **风险前置**:先写测试/探针验证猜想,风险闭环后再应用补丁。
|
|
21
|
-
|
|
22
|
-
## 3. 状态闭环 (State Closure)
|
|
23
|
-
- **准则**:
|
|
24
|
-
- 任何临时调试代码必须在交付前物理清除。
|
|
25
|
-
- 修改后必须通过环境拉取验证,确保持续集成有效。
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: evolution-protocol
|
|
3
|
-
description: 演进协议:定义动态解耦、系统抽象与协议优先的架构逻辑。
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# 演进协议 (Evolution Protocol)
|
|
7
|
-
|
|
8
|
-
## 1. 动态解耦 (Dynamic Decoupling)
|
|
9
|
-
- **准则**:
|
|
10
|
-
- 禁止硬编码:业务逻辑与配置物理隔离。
|
|
11
|
-
- 路径依赖最小化:所有资源定位应具备动态发现或配置注入能力。
|
|
12
|
-
|
|
13
|
-
## 2. 系统抽象 (Abstration First)
|
|
14
|
-
- **逻辑**:不解决具体问题,解决此类问题的模式。
|
|
15
|
-
- **准则**:
|
|
16
|
-
- 发现两次重复逻辑即进行接口/配置化抽象。
|
|
17
|
-
- 复用优先:修改前先通过全量检索确认是否存在已有组件或工具类。
|
|
18
|
-
|
|
19
|
-
## 3. 协议语义化 (Semantic Protocol)
|
|
20
|
-
- **准则**:
|
|
21
|
-
- 模块间调用必须有清晰的契约(Interface/Type)。
|
|
22
|
-
- 代码即文档:通过自解释命名和逻辑分层减少外部文档依赖。
|