openhorse 0.1.21 → 0.1.23
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/README.md +77 -420
- package/dist/cli.js +139 -23
- package/dist/cli.js.map +1 -1
- package/dist/commands/index.d.ts.map +1 -1
- package/dist/commands/index.js +117 -20
- package/dist/commands/index.js.map +1 -1
- package/dist/commands/types.d.ts +1 -0
- package/dist/commands/types.d.ts.map +1 -1
- package/dist/commands/types.js.map +1 -1
- package/dist/framework/index.d.ts +2 -2
- package/dist/framework/index.d.ts.map +1 -1
- package/dist/framework/index.js +6 -1
- package/dist/framework/index.js.map +1 -1
- package/dist/framework/prompt.d.ts +2 -0
- package/dist/framework/prompt.d.ts.map +1 -1
- package/dist/framework/prompt.js +9 -0
- package/dist/framework/prompt.js.map +1 -1
- package/dist/framework/query.d.ts +2 -0
- package/dist/framework/query.d.ts.map +1 -1
- package/dist/framework/query.js +5 -2
- package/dist/framework/query.js.map +1 -1
- package/dist/harness/assembler.d.ts +14 -2
- package/dist/harness/assembler.d.ts.map +1 -1
- package/dist/harness/assembler.js +167 -32
- package/dist/harness/assembler.js.map +1 -1
- package/dist/harness/capsule.d.ts +2 -1
- package/dist/harness/capsule.d.ts.map +1 -1
- package/dist/harness/capsule.js +64 -0
- package/dist/harness/capsule.js.map +1 -1
- package/dist/harness/context-harness.d.ts +28 -3
- package/dist/harness/context-harness.d.ts.map +1 -1
- package/dist/harness/context-harness.js +116 -7
- package/dist/harness/context-harness.js.map +1 -1
- package/dist/harness/contract.d.ts +2 -2
- package/dist/harness/contract.d.ts.map +1 -1
- package/dist/harness/contract.js +7 -3
- package/dist/harness/contract.js.map +1 -1
- package/dist/harness/evidence.d.ts +15 -0
- package/dist/harness/evidence.d.ts.map +1 -0
- package/dist/harness/evidence.js +171 -0
- package/dist/harness/evidence.js.map +1 -0
- package/dist/harness/index.d.ts +9 -3
- package/dist/harness/index.d.ts.map +1 -1
- package/dist/harness/index.js +15 -1
- package/dist/harness/index.js.map +1 -1
- package/dist/harness/intent.d.ts +4 -0
- package/dist/harness/intent.d.ts.map +1 -0
- package/dist/harness/intent.js +139 -0
- package/dist/harness/intent.js.map +1 -0
- package/dist/harness/state.d.ts +12 -0
- package/dist/harness/state.d.ts.map +1 -0
- package/dist/harness/state.js +84 -0
- package/dist/harness/state.js.map +1 -0
- package/dist/harness/turn-summary.d.ts +25 -0
- package/dist/harness/turn-summary.d.ts.map +1 -0
- package/dist/harness/turn-summary.js +120 -0
- package/dist/harness/turn-summary.js.map +1 -0
- package/dist/harness/types.d.ts +104 -1
- package/dist/harness/types.d.ts.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -1
- package/dist/index.js.map +1 -1
- package/dist/services/compact/auto-compact.d.ts +3 -1
- package/dist/services/compact/auto-compact.d.ts.map +1 -1
- package/dist/services/compact/auto-compact.js +10 -0
- package/dist/services/compact/auto-compact.js.map +1 -1
- package/dist/services/compact/compact.d.ts +5 -1
- package/dist/services/compact/compact.d.ts.map +1 -1
- package/dist/services/compact/compact.js +11 -1
- package/dist/services/compact/compact.js.map +1 -1
- package/dist/services/config-dir.d.ts +2 -0
- package/dist/services/config-dir.d.ts.map +1 -1
- package/dist/services/config-dir.js +5 -0
- package/dist/services/config-dir.js.map +1 -1
- package/dist/services/config.d.ts +3 -0
- package/dist/services/config.d.ts.map +1 -1
- package/dist/services/config.js +4 -2
- package/dist/services/config.js.map +1 -1
- package/dist/services/global-config.d.ts +1 -1
- package/dist/services/global-config.d.ts.map +1 -1
- package/dist/services/global-config.js +13 -8
- package/dist/services/global-config.js.map +1 -1
- package/dist/services/session-storage.d.ts +9 -1
- package/dist/services/session-storage.d.ts.map +1 -1
- package/dist/services/session-storage.js +88 -6
- package/dist/services/session-storage.js.map +1 -1
- package/dist/skills/index.d.ts +1 -0
- package/dist/skills/index.d.ts.map +1 -1
- package/dist/skills/index.js +1 -0
- package/dist/skills/index.js.map +1 -1
- package/dist/skills/loader.d.ts.map +1 -1
- package/dist/skills/loader.js +33 -15
- package/dist/skills/loader.js.map +1 -1
- package/dist/skills/runtime.d.ts +36 -0
- package/dist/skills/runtime.d.ts.map +1 -0
- package/dist/skills/runtime.js +102 -0
- package/dist/skills/runtime.js.map +1 -0
- package/dist/skills/types.d.ts +4 -0
- package/dist/skills/types.d.ts.map +1 -1
- package/dist/skills/types.js.map +1 -1
- package/dist/tools/git.d.ts.map +1 -1
- package/dist/tools/git.js +13 -10
- package/dist/tools/git.js.map +1 -1
- package/dist/tools/index.d.ts +8 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +38 -19
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/lsp.d.ts.map +1 -1
- package/dist/tools/lsp.js +33 -0
- package/dist/tools/lsp.js.map +1 -1
- package/dist/tools/mcp.d.ts +18 -5
- package/dist/tools/mcp.d.ts.map +1 -1
- package/dist/tools/mcp.js +160 -27
- package/dist/tools/mcp.js.map +1 -1
- package/dist/tools/todo.d.ts.map +1 -1
- package/dist/tools/todo.js +14 -6
- package/dist/tools/todo.js.map +1 -1
- package/dist/ui-v2/components/session-picker.d.ts +2 -0
- package/dist/ui-v2/components/session-picker.d.ts.map +1 -1
- package/dist/ui-v2/components/session-picker.js +34 -5
- package/dist/ui-v2/components/session-picker.js.map +1 -1
- package/dist/ui-v2/state/sessions.d.ts +1 -0
- package/dist/ui-v2/state/sessions.d.ts.map +1 -1
- package/dist/ui-v2/state/sessions.js +18 -0
- package/dist/ui-v2/state/sessions.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auto-compact.d.ts","sourceRoot":"","sources":["../../../src/services/compact/auto-compact.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAGtC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"auto-compact.d.ts","sourceRoot":"","sources":["../../../src/services/compact/auto-compact.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAGtC,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAMlE,MAAM,WAAW,iBAAiB;IAChC,8BAA8B;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uBAAuB;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,iBAAiB;IACjB,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE;QAAE,aAAa,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IACpG,gCAAgC;IAChC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,2BAA2B;IAC3B,iBAAiB,CAAC,EAAE,MAAM,cAAc,GAAG,SAAS,GAAG,IAAI,CAAC;IAC5D,2BAA2B;IAC3B,eAAe,CAAC,EAAE,MAAM,YAAY,GAAG,SAAS,GAAG,IAAI,CAAC;CACzD;AAMD,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAIZ;IACF,OAAO,CAAC,eAAe,CAAa;IACpC,OAAO,CAAC,YAAY,CAAa;IACjC,wBAAwB;IACxB,OAAO,CAAC,cAAc,CAAa;gBAEvB,MAAM,CAAC,EAAE,iBAAiB;IAatC;;;OAGG;IACH,SAAS,CAAC,MAAM,CAAC,EAAE,iBAAiB,GAAG,IAAI;IAY3C;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAI/B;;;;OAIG;IACG,eAAe,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAkDnF;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAY3B;;OAEG;IACH,aAAa,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,EAAE,GAAG,MAAM;IAIhE;;OAEG;IACG,YAAY,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAqB3D;;OAEG;IACH,QAAQ,IAAI;QACV,YAAY,EAAE,MAAM,CAAC;QACrB,eAAe,EAAE,MAAM,CAAC;QACxB,SAAS,EAAE,MAAM,CAAC;QAClB,mBAAmB,EAAE,MAAM,CAAC;QAC5B,OAAO,EAAE,OAAO,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,EAAE,MAAM,CAAC;KACpB;IAYD;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;CAGnC;AAQD,wBAAgB,cAAc,CAAC,MAAM,CAAC,EAAE,iBAAiB,GAAG,WAAW,CAOtE;AAED,wBAAgB,gBAAgB,IAAI,IAAI,CAEvC"}
|
|
@@ -28,6 +28,7 @@ class AutoCompact {
|
|
|
28
28
|
preCompactThreshold: config?.preCompactThreshold ?? 0.8,
|
|
29
29
|
onCompact: config?.onCompact,
|
|
30
30
|
getContextCapsule: config?.getContextCapsule,
|
|
31
|
+
getHarnessState: config?.getHarnessState,
|
|
31
32
|
};
|
|
32
33
|
}
|
|
33
34
|
/**
|
|
@@ -51,6 +52,8 @@ class AutoCompact {
|
|
|
51
52
|
this.config.onCompact = config.onCompact;
|
|
52
53
|
if (config.getContextCapsule !== undefined)
|
|
53
54
|
this.config.getContextCapsule = config.getContextCapsule;
|
|
55
|
+
if (config.getHarnessState !== undefined)
|
|
56
|
+
this.config.getHarnessState = config.getHarnessState;
|
|
54
57
|
}
|
|
55
58
|
/**
|
|
56
59
|
* 更新模型(切换模型时调用)
|
|
@@ -71,6 +74,9 @@ class AutoCompact {
|
|
|
71
74
|
const contextCapsule = ctxPercent >= this.config.preCompactThreshold * 100
|
|
72
75
|
? this.config.getContextCapsule?.() ?? undefined
|
|
73
76
|
: undefined;
|
|
77
|
+
const harnessState = ctxPercent >= this.config.preCompactThreshold * 100
|
|
78
|
+
? this.config.getHarnessState?.() ?? undefined
|
|
79
|
+
: undefined;
|
|
74
80
|
// 达到阈值才触发
|
|
75
81
|
if (ctxPercent < this.config.threshold * 100) {
|
|
76
82
|
return messages;
|
|
@@ -84,6 +90,8 @@ class AutoCompact {
|
|
|
84
90
|
const result = await (0, compact_1.compactMessages)(messages, {
|
|
85
91
|
maxMessages: this.config.maxMessages,
|
|
86
92
|
contextCapsule,
|
|
93
|
+
harnessState,
|
|
94
|
+
compactMode: 'auto_pre_turn',
|
|
87
95
|
});
|
|
88
96
|
// 更新状态
|
|
89
97
|
this.lastCompactTime = now;
|
|
@@ -125,6 +133,8 @@ class AutoCompact {
|
|
|
125
133
|
const result = await (0, compact_1.compactMessages)(messages, {
|
|
126
134
|
maxMessages: this.config.maxMessages,
|
|
127
135
|
contextCapsule: this.config.getContextCapsule?.() ?? undefined,
|
|
136
|
+
harnessState: this.config.getHarnessState?.() ?? undefined,
|
|
137
|
+
compactMode: 'manual',
|
|
128
138
|
});
|
|
129
139
|
this.compactCount++;
|
|
130
140
|
if (this.config.onCompact) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auto-compact.js","sourceRoot":"","sources":["../../../src/services/compact/auto-compact.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;
|
|
1
|
+
{"version":3,"file":"auto-compact.js","sourceRoot":"","sources":["../../../src/services/compact/auto-compact.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import type { Message } from '../llm';
|
|
8
8
|
import { type SummaryOptions } from './summary-generator';
|
|
9
|
-
import { type ContextCapsule } from '../../harness';
|
|
9
|
+
import { type ContextCapsule, type HarnessState } from '../../harness';
|
|
10
10
|
export interface CompactOptions {
|
|
11
11
|
/** 最大保留消息数 */
|
|
12
12
|
maxMessages?: number;
|
|
@@ -20,6 +20,10 @@ export interface CompactOptions {
|
|
|
20
20
|
summaryOptions?: SummaryOptions;
|
|
21
21
|
/** Harness capsule that must survive compaction */
|
|
22
22
|
contextCapsule?: ContextCapsule;
|
|
23
|
+
/** Full Context Harness state that must survive compaction */
|
|
24
|
+
harnessState?: HarnessState;
|
|
25
|
+
/** Why this compaction happened */
|
|
26
|
+
compactMode?: 'manual' | 'auto_pre_turn' | 'mid_turn';
|
|
23
27
|
}
|
|
24
28
|
export interface CompactResult {
|
|
25
29
|
/** 压缩后的消息列表 */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compact.d.ts","sourceRoot":"","sources":["../../../src/services/compact/compact.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAoB,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC5E,OAAO,
|
|
1
|
+
{"version":3,"file":"compact.d.ts","sourceRoot":"","sources":["../../../src/services/compact/compact.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAoB,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC5E,OAAO,EAAsD,KAAK,cAAc,EAAE,KAAK,YAAY,EAAE,MAAM,eAAe,CAAC;AAM3H,MAAM,WAAW,cAAc;IAC7B,cAAc;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe;IACf,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,eAAe;IACf,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,sBAAsB;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB;IAChB,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,mDAAmD;IACnD,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,8DAA8D;IAC9D,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,mCAAmC;IACnC,WAAW,CAAC,EAAE,QAAQ,GAAG,eAAe,GAAG,UAAU,CAAC;CACvD;AAED,MAAM,WAAW,aAAa;IAC5B,eAAe;IACf,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,aAAa;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa;IACb,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW;IACX,OAAO,EAAE,MAAM,CAAC;CACjB;AAiBD;;;;;;;GAOG;AACH,wBAAsB,eAAe,CACnC,QAAQ,EAAE,OAAO,EAAE,EACnB,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,aAAa,CAAC,CA+FxB;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAG7E;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,QAAQ,GAAE,MAAW,GAAG,OAAO,EAAE,CAiBlF;AAMD,OAAO,EAAE,cAAc,IAAI,aAAa,EAAE,aAAa,IAAI,iBAAiB,EAAE,CAAC"}
|
|
@@ -63,7 +63,17 @@ async function compactMessages(messages, options) {
|
|
|
63
63
|
compactedMessages.push(systemMessage);
|
|
64
64
|
}
|
|
65
65
|
// Preserve structured task state before the lossy natural-language summary.
|
|
66
|
-
if (opts.
|
|
66
|
+
if (opts.harnessState) {
|
|
67
|
+
compactedMessages.push({
|
|
68
|
+
role: 'user',
|
|
69
|
+
content: (0, harness_1.renderHarnessStateForCompact)(opts.harnessState, opts.compactMode ?? 'manual'),
|
|
70
|
+
});
|
|
71
|
+
compactedMessages.push({
|
|
72
|
+
role: 'assistant',
|
|
73
|
+
content: 'I will continue from this OpenHorse Context State and preserve its root objective, active instruction, constraints, and verification state.',
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
else if (opts.contextCapsule) {
|
|
67
77
|
compactedMessages.push({
|
|
68
78
|
role: 'user',
|
|
69
79
|
content: (0, harness_1.renderContextCapsule)(opts.contextCapsule),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compact.js","sourceRoot":"","sources":["../../../src/services/compact/compact.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;
|
|
1
|
+
{"version":3,"file":"compact.js","sourceRoot":"","sources":["../../../src/services/compact/compact.ts"],"names":[],"mappings":"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"}
|
|
@@ -44,6 +44,8 @@ export declare function ensureProjectDir(projectPath: string): void;
|
|
|
44
44
|
export declare function getProjectSessionMetaPath(projectPath: string, sessionId: string): string;
|
|
45
45
|
/** 项目内单个会话对话记录文件路径 */
|
|
46
46
|
export declare function getProjectSessionMessagesPath(projectPath: string, sessionId: string): string;
|
|
47
|
+
/** 项目内单个会话 Harness sidecar 路径 */
|
|
48
|
+
export declare function getProjectSessionHarnessPath(projectPath: string, sessionId: string): string;
|
|
47
49
|
/** 成本记录目录路径 */
|
|
48
50
|
export declare function getCostDir(): string;
|
|
49
51
|
/** 每日成本记录文件路径 */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-dir.d.ts","sourceRoot":"","sources":["../../src/services/config-dir.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAUH;;;GAGG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED,8BAA8B;AAC9B,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED;;;GAGG;AACH,wBAAgB,eAAe,IAAI,IAAI,CActC;AAMD,eAAe;AACf,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C;AAED,gBAAgB;AAChB,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAED,sBAAsB;AACtB,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED,uBAAuB;AACvB,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED,aAAa;AACb,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED,kBAAkB;AAClB,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAE5D;AAED,2BAA2B;AAC3B,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAEhE;AAED,eAAe;AACf,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED,6EAA6E;AAC7E,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAM7D;AAED,eAAe;AACf,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAEzD;AAED,eAAe;AACf,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAEjE;AAED,iBAAiB;AACjB,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAY1D;AAED,qBAAqB;AACrB,wBAAgB,yBAAyB,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAExF;AAED,sBAAsB;AACtB,wBAAgB,6BAA6B,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAE5F;AAED,eAAe;AACf,wBAAgB,UAAU,IAAI,MAAM,CAEnC;AAED,iBAAiB;AACjB,wBAAgB,gBAAgB,CAAC,IAAI,CAAC,EAAE,IAAI,GAAG,MAAM,CAIpD;AAED,aAAa;AACb,wBAAgB,WAAW,IAAI,MAAM,CAEpC;AAMD,gBAAgB;AAChB,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;AAEtD;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAWpE;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAK7D"}
|
|
1
|
+
{"version":3,"file":"config-dir.d.ts","sourceRoot":"","sources":["../../src/services/config-dir.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAUH;;;GAGG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED,8BAA8B;AAC9B,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED;;;GAGG;AACH,wBAAgB,eAAe,IAAI,IAAI,CActC;AAMD,eAAe;AACf,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C;AAED,gBAAgB;AAChB,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAED,sBAAsB;AACtB,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED,uBAAuB;AACvB,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED,aAAa;AACb,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED,kBAAkB;AAClB,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAE5D;AAED,2BAA2B;AAC3B,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAEhE;AAED,eAAe;AACf,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED,6EAA6E;AAC7E,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAM7D;AAED,eAAe;AACf,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAEzD;AAED,eAAe;AACf,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAEjE;AAED,iBAAiB;AACjB,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAY1D;AAED,qBAAqB;AACrB,wBAAgB,yBAAyB,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAExF;AAED,sBAAsB;AACtB,wBAAgB,6BAA6B,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAE5F;AAED,iCAAiC;AACjC,wBAAgB,4BAA4B,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAE3F;AAED,eAAe;AACf,wBAAgB,UAAU,IAAI,MAAM,CAEnC;AAED,iBAAiB;AACjB,wBAAgB,gBAAgB,CAAC,IAAI,CAAC,EAAE,IAAI,GAAG,MAAM,CAIpD;AAED,aAAa;AACb,wBAAgB,WAAW,IAAI,MAAM,CAEpC;AAMD,gBAAgB;AAChB,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;AAEtD;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAWpE;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAK7D"}
|
|
@@ -23,6 +23,7 @@ exports.getProjectSessionsDir = getProjectSessionsDir;
|
|
|
23
23
|
exports.ensureProjectDir = ensureProjectDir;
|
|
24
24
|
exports.getProjectSessionMetaPath = getProjectSessionMetaPath;
|
|
25
25
|
exports.getProjectSessionMessagesPath = getProjectSessionMessagesPath;
|
|
26
|
+
exports.getProjectSessionHarnessPath = getProjectSessionHarnessPath;
|
|
26
27
|
exports.getCostDir = getCostDir;
|
|
27
28
|
exports.getDailyCostPath = getDailyCostPath;
|
|
28
29
|
exports.getCacheDir = getCacheDir;
|
|
@@ -134,6 +135,10 @@ function getProjectSessionMetaPath(projectPath, sessionId) {
|
|
|
134
135
|
function getProjectSessionMessagesPath(projectPath, sessionId) {
|
|
135
136
|
return (0, path_1.join)(getProjectSessionsDir(projectPath), `${sessionId}.jsonl`);
|
|
136
137
|
}
|
|
138
|
+
/** 项目内单个会话 Harness sidecar 路径 */
|
|
139
|
+
function getProjectSessionHarnessPath(projectPath, sessionId) {
|
|
140
|
+
return (0, path_1.join)(getProjectSessionsDir(projectPath), `${sessionId}.harness.json`);
|
|
141
|
+
}
|
|
137
142
|
/** 成本记录目录路径 */
|
|
138
143
|
function getCostDir() {
|
|
139
144
|
return (0, path_1.join)(getConfigHome(), 'cost');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-dir.js","sourceRoot":"","sources":["../../src/services/config-dir.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAcH,sCAEC;AAGD,oCAEC;AAMD,0CAcC;AAOD,kDAEC;AAGD,0CAEC;AAGD,8CAEC;AAGD,wCAEC;AAGD,wCAEC;AAGD,gDAEC;AAGD,wDAEC;AAGD,wCAEC;AAGD,8CAMC;AAGD,sCAEC;AAGD,sDAEC;AAGD,4CAYC;AAGD,8DAEC;AAGD,sEAEC;AAGD,gCAEC;AAGD,4CAIC;AAGD,kCAEC;AAeD,sCAWC;AAMD,wDAKC;
|
|
1
|
+
{"version":3,"file":"config-dir.js","sourceRoot":"","sources":["../../src/services/config-dir.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,9 @@
|
|
|
8
8
|
* 2. ~/.openhorse/openhorse.json (GlobalConfig)
|
|
9
9
|
* 3. 环境变量
|
|
10
10
|
* 4. Agent 内部默认值
|
|
11
|
+
*
|
|
12
|
+
* UI renderer is intentionally not read from openhorse.json. The new UI is the
|
|
13
|
+
* default, and startup flags such as --ui legacy are the supported fallback.
|
|
11
14
|
*/
|
|
12
15
|
import { type ToolConfirmationPolicy, type UIConfig, type UIRenderer, type UIConfirmationMode, type WebSearchMcpConfig } from './global-config';
|
|
13
16
|
export type { ToolConfirmationPolicy, UIConfig, UIRenderer, UIConfirmationMode, WebSearchMcpConfig };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/services/config.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/services/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAGL,KAAK,sBAAsB,EAC3B,KAAK,QAAQ,EACb,KAAK,UAAU,EACf,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACxB,MAAM,iBAAiB,CAAC;AAEzB,YAAY,EAAE,sBAAsB,EAAE,QAAQ,EAAE,UAAU,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,CAAC;AAMrG;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IAEjC,kBAAkB;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,uBAAuB;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW;IACX,KAAK,EAAE,MAAM,CAAC;IACd,qBAAqB;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mEAAmE;IACnE,gBAAgB,EAAE,sBAAsB,CAAC;IACzC,6CAA6C;IAC7C,SAAS,CAAC,EAAE,kBAAkB,CAAC;IAC/B,sFAAsF;IACtF,EAAE,CAAC,EAAE,QAAQ,CAAC;IAGd,WAAW;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW;IACX,IAAI,EAAE,aAAa,GAAG,YAAY,CAAC;IACnC,WAAW;IACX,QAAQ,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;CAC/C;AAsGD;;;GAGG;AACH,wBAAgB,UAAU,CAAC,SAAS,GAAE,OAAO,CAAC,kBAAkB,CAAM,GAAG,kBAAkB,CA+B1F;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAEhE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,kBAAkB,GAAG,MAAM,EAAE,CAMpE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,kBAAkB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAenF"}
|
package/dist/services/config.js
CHANGED
|
@@ -9,6 +9,9 @@
|
|
|
9
9
|
* 2. ~/.openhorse/openhorse.json (GlobalConfig)
|
|
10
10
|
* 3. 环境变量
|
|
11
11
|
* 4. Agent 内部默认值
|
|
12
|
+
*
|
|
13
|
+
* UI renderer is intentionally not read from openhorse.json. The new UI is the
|
|
14
|
+
* default, and startup flags such as --ui legacy are the supported fallback.
|
|
12
15
|
*/
|
|
13
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
17
|
exports.loadConfig = loadConfig;
|
|
@@ -30,7 +33,7 @@ const INTERNAL_DEFAULTS = {
|
|
|
30
33
|
logLevel: 'info',
|
|
31
34
|
toolConfirmation: 'allow',
|
|
32
35
|
ui: {
|
|
33
|
-
renderer: '
|
|
36
|
+
renderer: 'v2',
|
|
34
37
|
confirmations: 'config',
|
|
35
38
|
},
|
|
36
39
|
};
|
|
@@ -92,7 +95,6 @@ function loadUIConfig(globalConfig, overrides) {
|
|
|
92
95
|
const envConfirmations = process.env.OPENHORSE_UI_CONFIRMATIONS;
|
|
93
96
|
return {
|
|
94
97
|
renderer: normalizeUIRenderer(overrides.ui?.renderer)
|
|
95
|
-
?? normalizeUIRenderer(globalConfig.ui?.renderer)
|
|
96
98
|
?? normalizeUIRenderer(envRenderer)
|
|
97
99
|
?? INTERNAL_DEFAULTS.ui.renderer,
|
|
98
100
|
confirmations: normalizeUIConfirmationMode(overrides.ui?.confirmations)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/services/config.ts"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/services/config.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;GAaG;;AAyJH,gCA+BC;AAKD,oCAEC;AAKD,0CAMC;AAKD,4CAeC;AA5ND,mDAQyB;AAuCzB,+EAA+E;AAC/E,sBAAsB;AACtB,+EAA+E;AAE/E,MAAM,iBAAiB,GAAG;IACxB,gCAAgC;IAChC,2CAA2C;IAC3C,yCAAyC;IACzC,0BAA0B;IAC1B,qCAAqC;IACrC,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,aAAa;IACnB,QAAQ,EAAE,MAAM;IAChB,gBAAgB,EAAE,OAAiC;IACnD,EAAE,EAAE;QACF,QAAQ,EAAE,IAAkB;QAC5B,aAAa,EAAE,QAA8B;KAC9C;CACO,CAAC;AAEX,SAAS,+BAA+B,CAAC,KAAc;IACrD,OAAO,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,MAAM;QAC7D,CAAC,CAAC,KAAK;QACP,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAc;IACzC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;QACzC,CAAC,CAAC,KAAK;QACP,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC;AAED,SAAS,2BAA2B,CAAC,KAAc;IACjD,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,aAAa;QAClD,CAAC,CAAC,KAAK;QACP,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAyB;IACjD,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7B,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC1C,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;AACpE,CAAC;AAED,SAAS,mBAAmB,CAC1B,YAA0B,EAC1B,SAAsC;IAEtC,MAAM,MAAM,GAAuB;QACjC,GAAG,YAAY,CAAC,SAAS;QACzB,GAAG,SAAS,CAAC,SAAS;KACvB,CAAC;IAEF,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC;IAC9D,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,2BAA2B,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;IACxF,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,4BAA4B,IAAI,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC;IAC1G,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC;IAC1D,MAAM,SAAS,GAAG,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;IACnF,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC;IAC3D,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC;IACpE,MAAM,gBAAgB,GAAG,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC;IAE7E,IAAI,QAAQ;QAAE,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;IACzC,IAAI,QAAQ;QAAE,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;IACzC,IAAI,MAAM;QAAE,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;IACnC,IAAI,QAAQ;QAAE,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;IACzC,IAAI,SAAS;QAAE,MAAM,CAAC,SAAS,GAAG,SAAS,CAAC;IAC5C,IAAI,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,OAAO,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;QAClG,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC7B,CAAC;IACD,IAAI,YAAY;QAAE,MAAM,CAAC,YAAY,GAAG,YAAY,CAAC;IACrD,IAAI,gBAAgB;QAAE,MAAM,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;IAEjE,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;AAC7D,CAAC;AAED,SAAS,YAAY,CACnB,YAA0B,EAC1B,SAAsC;IAEtC,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;IAClF,MAAM,gBAAgB,GAAG,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC;IAEhE,OAAO;QACL,QAAQ,EACN,mBAAmB,CAAC,SAAS,CAAC,EAAE,EAAE,QAAQ,CAAC;eACxC,mBAAmB,CAAC,WAAW,CAAC;eAChC,iBAAiB,CAAC,EAAE,CAAC,QAAQ;QAClC,aAAa,EACX,2BAA2B,CAAC,SAAS,CAAC,EAAE,EAAE,aAAa,CAAC;eACrD,2BAA2B,CAAC,YAAY,CAAC,EAAE,EAAE,aAAa,CAAC;eAC3D,2BAA2B,CAAC,gBAAgB,CAAC;eAC7C,iBAAiB,CAAC,EAAE,CAAC,aAAa;KACxC,CAAC;AACJ,CAAC;AAED,+EAA+E;AAC/E,OAAO;AACP,+EAA+E;AAE/E;;;GAGG;AACH,SAAgB,UAAU,CAAC,YAAyC,EAAE;IACpE,MAAM,YAAY,GAAG,IAAA,gCAAgB,GAAE,CAAC;IAExC,MAAM,MAAM,GAAuB;QACjC,SAAS;QACT,MAAM,EACJ,SAAS,CAAC,MAAM,IAAI,YAAY,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,EAAE;QAChF,UAAU,EACR,SAAS,CAAC,UAAU,IAAI,YAAY,CAAC,UAAU,IAAI,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,SAAS;QACtI,KAAK,EACH,SAAS,CAAC,KAAK,IAAI,YAAY,CAAC,YAAY,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,QAAQ;QACzF,aAAa,EACX,SAAS,CAAC,aAAa,IAAI,YAAY,CAAC,aAAa,IAAI,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAI,SAAS;QAC5G,gBAAgB,EACd,+BAA+B,CAAC,SAAS,CAAC,gBAAgB,CAAC;eACxD,+BAA+B,CAAC,YAAY,CAAC,gBAAgB,CAAC;eAC9D,+BAA+B,CAAC,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC;eACxE,iBAAiB,CAAC,gBAAgB;QACvC,SAAS,EAAE,mBAAmB,CAAC,YAAY,EAAE,SAAS,CAAC;QACvD,EAAE,EAAE,YAAY,CAAC,YAAY,EAAE,SAAS,CAAC;QAEzC,aAAa;QACb,IAAI,EACF,SAAS,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,iBAAiB,CAAC,IAAI;QACxE,IAAI,EACF,CAAC,SAAS,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,iBAAiB,CAAC,IAAI,CAAiC;QAC1G,QAAQ,EACN,CAAC,SAAS,CAAC,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,iBAAiB,CAAC,QAAQ,CAAmC;KAC1H,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,SAAgB,YAAY,CAAC,MAA0B;IACrD,OAAO,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAChC,CAAC;AAED;;GAEG;AACH,SAAgB,eAAe,CAAC,MAA0B;IACxD,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACnB,MAAM,CAAC,IAAI,CAAC,2FAA2F,CAAC,CAAC;IAC3G,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,SAAgB,gBAAgB,CAAC,MAA0B;IACzD,OAAO;QACL,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,QAAQ,EAAE,MAAM,CAAC,aAAa,IAAI,QAAQ;QAC1C,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,kBAAkB;QACnD,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW;QACvE,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;QACzC,EAAE,EAAE,GAAG,MAAM,CAAC,EAAE,EAAE,QAAQ,IAAI,iBAAiB,CAAC,EAAE,CAAC,QAAQ,IAAI,MAAM,CAAC,EAAE,EAAE,aAAa,IAAI,iBAAiB,CAAC,EAAE,CAAC,aAAa,EAAE;QAC/H,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,QAAQ,IAAI,MAAM,CAAC,SAAS,EAAE,MAAM,IAAI,MAAM,CAAC,SAAS,EAAE,QAAQ;YAC7F,CAAC,CAAC,YAAY;YACd,CAAC,CAAC,WAAW;KAChB,CAAC;AACJ,CAAC"}
|
|
@@ -24,7 +24,7 @@ export type UIRenderer = 'legacy' | 'v2';
|
|
|
24
24
|
export type UIConfirmationMode = 'config' | 'interactive';
|
|
25
25
|
/** Terminal UI configuration. */
|
|
26
26
|
export interface UIConfig {
|
|
27
|
-
/**
|
|
27
|
+
/** Runtime-only renderer override. This is ignored in openhorse.json. */
|
|
28
28
|
renderer?: UIRenderer;
|
|
29
29
|
/** Whether confirmations are handled by config fallback or interactive UI. */
|
|
30
30
|
confirmations?: UIConfirmationMode;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"global-config.d.ts","sourceRoot":"","sources":["../../src/services/global-config.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAWH,YAAY;AACZ,MAAM,WAAW,aAAa;IAC5B,cAAc;IACd,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,cAAc;IACd,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iBAAiB;IACjB,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC;AAED,kFAAkF;AAClF,MAAM,MAAM,sBAAsB,GAAG,KAAK,GAAG,OAAO,GAAG,MAAM,CAAC;AAE9D,sCAAsC;AACtC,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,IAAI,CAAC;AAEzC,mDAAmD;AACnD,MAAM,MAAM,kBAAkB,GAAG,QAAQ,GAAG,aAAa,CAAC;AAE1D,iCAAiC;AACjC,MAAM,WAAW,QAAQ;IACvB,
|
|
1
|
+
{"version":3,"file":"global-config.d.ts","sourceRoot":"","sources":["../../src/services/global-config.ts"],"names":[],"mappings":"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"}
|
|
@@ -29,14 +29,19 @@ const config_dir_1 = require("./config-dir");
|
|
|
29
29
|
const DEFAULT_CONFIG = {
|
|
30
30
|
defaultModel: 'gpt-4o',
|
|
31
31
|
toolConfirmation: 'allow',
|
|
32
|
-
ui: {
|
|
33
|
-
renderer: 'legacy',
|
|
34
|
-
confirmations: 'config',
|
|
35
|
-
},
|
|
36
32
|
totalSessions: 0,
|
|
37
33
|
totalTokens: 0,
|
|
38
34
|
totalCost: 0,
|
|
39
35
|
};
|
|
36
|
+
function sanitizeGlobalConfig(config) {
|
|
37
|
+
const { ui, ...rest } = config;
|
|
38
|
+
const sanitized = { ...rest };
|
|
39
|
+
// UI renderer is a runtime choice, not persisted global configuration.
|
|
40
|
+
if (ui?.confirmations && ui.confirmations !== 'config') {
|
|
41
|
+
sanitized.ui = { confirmations: ui.confirmations };
|
|
42
|
+
}
|
|
43
|
+
return sanitized;
|
|
44
|
+
}
|
|
40
45
|
// ============================================================================
|
|
41
46
|
// 加载/保存
|
|
42
47
|
// ============================================================================
|
|
@@ -48,15 +53,15 @@ function loadGlobalConfig() {
|
|
|
48
53
|
(0, config_dir_1.ensureConfigDir)();
|
|
49
54
|
const path = (0, config_dir_1.getGlobalConfigPath)();
|
|
50
55
|
if (!(0, fs_1.existsSync)(path)) {
|
|
51
|
-
return { ...DEFAULT_CONFIG };
|
|
56
|
+
return sanitizeGlobalConfig({ ...DEFAULT_CONFIG });
|
|
52
57
|
}
|
|
53
58
|
try {
|
|
54
59
|
const content = (0, fs_1.readFileSync)(path, 'utf-8');
|
|
55
60
|
const parsed = JSON.parse(content);
|
|
56
|
-
return { ...DEFAULT_CONFIG, ...parsed };
|
|
61
|
+
return sanitizeGlobalConfig({ ...DEFAULT_CONFIG, ...parsed });
|
|
57
62
|
}
|
|
58
63
|
catch {
|
|
59
|
-
return { ...DEFAULT_CONFIG };
|
|
64
|
+
return sanitizeGlobalConfig({ ...DEFAULT_CONFIG });
|
|
60
65
|
}
|
|
61
66
|
}
|
|
62
67
|
/**
|
|
@@ -65,7 +70,7 @@ function loadGlobalConfig() {
|
|
|
65
70
|
function saveGlobalConfig(config) {
|
|
66
71
|
(0, config_dir_1.ensureConfigDir)();
|
|
67
72
|
const path = (0, config_dir_1.getGlobalConfigPath)();
|
|
68
|
-
(0, fs_1.writeFileSync)(path, JSON.stringify(config, null, 2), { mode: 0o600 });
|
|
73
|
+
(0, fs_1.writeFileSync)(path, JSON.stringify(sanitizeGlobalConfig(config), null, 2), { mode: 0o600 });
|
|
69
74
|
}
|
|
70
75
|
/**
|
|
71
76
|
* 更新全局配置(部分更新)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"global-config.js","sourceRoot":"","sources":["../../src/services/global-config.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;
|
|
1
|
+
{"version":3,"file":"global-config.js","sourceRoot":"","sources":["../../src/services/global-config.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* 参考 OpenClaude 的 history.jsonl 和 sessions/ 目录。
|
|
6
6
|
*/
|
|
7
7
|
import type { Message } from './llm';
|
|
8
|
-
import type
|
|
8
|
+
import { type ContextCapsule, type HarnessState } from '../harness';
|
|
9
9
|
/** 工具调用记录(用于 assistant 消息) */
|
|
10
10
|
export interface ToolCallRecord {
|
|
11
11
|
/** 调用 ID */
|
|
@@ -42,6 +42,8 @@ export interface SessionMeta {
|
|
|
42
42
|
endTime?: number;
|
|
43
43
|
/** Number of recorded transcript messages */
|
|
44
44
|
messageCount?: number;
|
|
45
|
+
/** Size of the session transcript history file in bytes */
|
|
46
|
+
historySizeBytes?: number;
|
|
45
47
|
/** Optional human-readable name */
|
|
46
48
|
name?: string;
|
|
47
49
|
/** Git branch at session creation/resume time */
|
|
@@ -60,6 +62,8 @@ export interface SessionMeta {
|
|
|
60
62
|
harnessState?: HarnessState;
|
|
61
63
|
/** 最近一次可恢复上下文包 */
|
|
62
64
|
contextCapsule?: ContextCapsule;
|
|
65
|
+
/** Skills applied in this session. */
|
|
66
|
+
skillsUsed?: string[];
|
|
63
67
|
}
|
|
64
68
|
/** 历史记录条目 */
|
|
65
69
|
export interface HistoryEntry {
|
|
@@ -86,6 +90,8 @@ export interface SessionMessage {
|
|
|
86
90
|
toolCallId?: string;
|
|
87
91
|
/** 工具调用列表 (assistant role) */
|
|
88
92
|
tool_calls?: ToolCallRecord[];
|
|
93
|
+
/** Skills applied for this turn (usually stored on the user message). */
|
|
94
|
+
appliedSkills?: string[];
|
|
89
95
|
}
|
|
90
96
|
export interface ListSessionsOptions {
|
|
91
97
|
/** Filter sessions to this canonical project. */
|
|
@@ -135,6 +141,8 @@ export declare function resumeSession(sessionId: string): SessionMeta | null;
|
|
|
135
141
|
* 更新会话 Harness 状态。
|
|
136
142
|
*/
|
|
137
143
|
export declare function updateSessionHarnessState(sessionId: string, harnessState: HarnessState): void;
|
|
144
|
+
export declare function loadSessionHarnessState(sessionId: string): HarnessState | null;
|
|
145
|
+
export declare function updateSessionSkills(sessionId: string, skills: string[]): void;
|
|
138
146
|
/**
|
|
139
147
|
* 结束会话
|
|
140
148
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-storage.d.ts","sourceRoot":"","sources":["../../src/services/session-storage.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"session-storage.d.ts","sourceRoot":"","sources":["../../src/services/session-storage.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,6 +14,8 @@ exports.loadSessionMeta = loadSessionMeta;
|
|
|
14
14
|
exports.updateSessionStats = updateSessionStats;
|
|
15
15
|
exports.resumeSession = resumeSession;
|
|
16
16
|
exports.updateSessionHarnessState = updateSessionHarnessState;
|
|
17
|
+
exports.loadSessionHarnessState = loadSessionHarnessState;
|
|
18
|
+
exports.updateSessionSkills = updateSessionSkills;
|
|
17
19
|
exports.endSession = endSession;
|
|
18
20
|
exports.updateSessionSummary = updateSessionSummary;
|
|
19
21
|
exports.getLastSession = getLastSession;
|
|
@@ -36,6 +38,7 @@ const child_process_1 = require("child_process");
|
|
|
36
38
|
const path_1 = require("path");
|
|
37
39
|
const config_dir_1 = require("./config-dir");
|
|
38
40
|
const atomic_write_1 = require("./atomic-write");
|
|
41
|
+
const harness_1 = require("../harness");
|
|
39
42
|
// ============================================================================
|
|
40
43
|
// Project helpers
|
|
41
44
|
// ============================================================================
|
|
@@ -117,6 +120,7 @@ function normalizeSessionMeta(session) {
|
|
|
117
120
|
updatedAt,
|
|
118
121
|
updatedAtIso: session.updatedAtIso ?? new Date(updatedAt).toISOString(),
|
|
119
122
|
messageCount: session.messageCount ?? 0,
|
|
123
|
+
historySizeBytes: computeSessionHistorySizeBytes({ id: session.id, projectPath }),
|
|
120
124
|
tokenCount: session.tokenCount ?? 0,
|
|
121
125
|
cost: session.cost ?? 0,
|
|
122
126
|
gitBranch: session.gitBranch ?? getGitBranch(projectPath),
|
|
@@ -134,6 +138,16 @@ function parseSessionMetaFile(path) {
|
|
|
134
138
|
return null;
|
|
135
139
|
}
|
|
136
140
|
}
|
|
141
|
+
function parseHarnessSidecarFile(path) {
|
|
142
|
+
try {
|
|
143
|
+
const content = (0, fs_1.readFileSync)(path, 'utf-8');
|
|
144
|
+
const parsed = JSON.parse(content);
|
|
145
|
+
return parsed?.version === 2 && parsed.state ? parsed : null;
|
|
146
|
+
}
|
|
147
|
+
catch {
|
|
148
|
+
return null;
|
|
149
|
+
}
|
|
150
|
+
}
|
|
137
151
|
function upsertNewestSession(sessionsById, session) {
|
|
138
152
|
const existing = sessionsById.get(session.id);
|
|
139
153
|
const existingTime = existing ? existing.updatedAt ?? existing.startTime : 0;
|
|
@@ -145,6 +159,20 @@ function upsertNewestSession(sessionsById, session) {
|
|
|
145
159
|
function sortSessionsNewestFirst(sessions) {
|
|
146
160
|
return sessions.sort((a, b) => (b.updatedAt ?? b.startTime) - (a.updatedAt ?? a.startTime));
|
|
147
161
|
}
|
|
162
|
+
function safeFileSize(path) {
|
|
163
|
+
try {
|
|
164
|
+
return (0, fs_1.existsSync)(path) ? (0, fs_1.statSync)(path).size : null;
|
|
165
|
+
}
|
|
166
|
+
catch {
|
|
167
|
+
return null;
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
function computeSessionHistorySizeBytes(session) {
|
|
171
|
+
const projectSize = safeFileSize((0, config_dir_1.getProjectSessionMessagesPath)(session.projectPath, session.id));
|
|
172
|
+
if (projectSize !== null)
|
|
173
|
+
return projectSize;
|
|
174
|
+
return safeFileSize((0, config_dir_1.getSessionMessagesPath)(session.id)) ?? 0;
|
|
175
|
+
}
|
|
148
176
|
// ============================================================================
|
|
149
177
|
// 会话管理
|
|
150
178
|
// ============================================================================
|
|
@@ -252,8 +280,62 @@ function updateSessionHarnessState(sessionId, harnessState) {
|
|
|
252
280
|
const session = loadSessionMeta(sessionId);
|
|
253
281
|
if (!session)
|
|
254
282
|
return;
|
|
255
|
-
|
|
256
|
-
|
|
283
|
+
const fullState = (0, harness_1.upgradeHarnessState)(harnessState, { cwd: session.cwd ?? session.projectPath });
|
|
284
|
+
const sidecar = {
|
|
285
|
+
version: 2,
|
|
286
|
+
sessionId,
|
|
287
|
+
projectPath: session.projectPath,
|
|
288
|
+
state: fullState,
|
|
289
|
+
contextCapsule: fullState.capsule,
|
|
290
|
+
updatedAt: Date.now(),
|
|
291
|
+
diagnostics: fullState.diagnostics,
|
|
292
|
+
};
|
|
293
|
+
(0, config_dir_1.ensureProjectDir)(session.projectPath);
|
|
294
|
+
(0, atomic_write_1.atomicWriteFileSync)((0, config_dir_1.getProjectSessionHarnessPath)(session.projectPath, sessionId), JSON.stringify(sidecar, null, 2), { mode: 0o600 });
|
|
295
|
+
session.harnessState = (0, harness_1.summarizeHarnessStateForMeta)(fullState);
|
|
296
|
+
session.contextCapsule = fullState.capsule;
|
|
297
|
+
session.updatedAt = Date.now();
|
|
298
|
+
session.updatedAtIso = new Date(session.updatedAt).toISOString();
|
|
299
|
+
saveSessionMeta(session);
|
|
300
|
+
}
|
|
301
|
+
function loadSessionHarnessState(sessionId) {
|
|
302
|
+
const session = loadSessionMeta(sessionId);
|
|
303
|
+
if (!session)
|
|
304
|
+
return null;
|
|
305
|
+
const sidecarPath = (0, config_dir_1.getProjectSessionHarnessPath)(session.projectPath, sessionId);
|
|
306
|
+
if ((0, fs_1.existsSync)(sidecarPath)) {
|
|
307
|
+
const sidecar = parseHarnessSidecarFile(sidecarPath);
|
|
308
|
+
if (sidecar?.state) {
|
|
309
|
+
return (0, harness_1.upgradeHarnessState)(sidecar.state, {
|
|
310
|
+
cwd: session.cwd ?? session.projectPath,
|
|
311
|
+
messages: readSessionMessages(sessionId),
|
|
312
|
+
});
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
if (session.harnessState) {
|
|
316
|
+
return (0, harness_1.upgradeHarnessState)(session.harnessState, {
|
|
317
|
+
cwd: session.cwd ?? session.projectPath,
|
|
318
|
+
messages: readSessionMessages(sessionId),
|
|
319
|
+
});
|
|
320
|
+
}
|
|
321
|
+
const messages = readSessionMessages(sessionId);
|
|
322
|
+
if (messages.length > 0) {
|
|
323
|
+
return (0, harness_1.upgradeHarnessState)(null, {
|
|
324
|
+
cwd: session.cwd ?? session.projectPath,
|
|
325
|
+
messages,
|
|
326
|
+
});
|
|
327
|
+
}
|
|
328
|
+
return null;
|
|
329
|
+
}
|
|
330
|
+
function updateSessionSkills(sessionId, skills) {
|
|
331
|
+
if (skills.length === 0)
|
|
332
|
+
return;
|
|
333
|
+
const session = loadSessionMeta(sessionId);
|
|
334
|
+
if (!session)
|
|
335
|
+
return;
|
|
336
|
+
session.skillsUsed = [...new Set([...(session.skillsUsed || []), ...skills])];
|
|
337
|
+
session.updatedAt = Date.now();
|
|
338
|
+
session.updatedAtIso = new Date(session.updatedAt).toISOString();
|
|
257
339
|
saveSessionMeta(session);
|
|
258
340
|
}
|
|
259
341
|
/**
|
|
@@ -453,7 +535,7 @@ function listSessions(limit) {
|
|
|
453
535
|
const sessionsDir = (0, config_dir_1.getSessionsDir)();
|
|
454
536
|
const sessionsById = new Map();
|
|
455
537
|
if ((0, fs_1.existsSync)(sessionsDir)) {
|
|
456
|
-
const files = (0, fs_1.readdirSync)(sessionsDir).filter(f => f.endsWith('.json'));
|
|
538
|
+
const files = (0, fs_1.readdirSync)(sessionsDir).filter(f => f.endsWith('.json') && !f.endsWith('.harness.json'));
|
|
457
539
|
for (const file of files) {
|
|
458
540
|
const rawSession = parseSessionMetaFile((0, path_1.join)(sessionsDir, file));
|
|
459
541
|
if (rawSession) {
|
|
@@ -467,7 +549,7 @@ function listSessions(limit) {
|
|
|
467
549
|
const projectSessionsDir = (0, path_1.join)(projectsDir, projectKey, 'sessions');
|
|
468
550
|
if (!(0, fs_1.existsSync)(projectSessionsDir))
|
|
469
551
|
continue;
|
|
470
|
-
const files = (0, fs_1.readdirSync)(projectSessionsDir).filter(f => f.endsWith('.json'));
|
|
552
|
+
const files = (0, fs_1.readdirSync)(projectSessionsDir).filter(f => f.endsWith('.json') && !f.endsWith('.harness.json'));
|
|
471
553
|
for (const file of files) {
|
|
472
554
|
const rawSession = parseSessionMetaFile((0, path_1.join)(projectSessionsDir, file));
|
|
473
555
|
if (rawSession) {
|
|
@@ -487,7 +569,7 @@ function listProjectSessions(projectPath, limit) {
|
|
|
487
569
|
const sessionsById = new Map();
|
|
488
570
|
const projectSessionsDir = (0, config_dir_1.getProjectSessionsDir)(canonicalProjectPath);
|
|
489
571
|
if ((0, fs_1.existsSync)(projectSessionsDir)) {
|
|
490
|
-
const files = (0, fs_1.readdirSync)(projectSessionsDir).filter(f => f.endsWith('.json'));
|
|
572
|
+
const files = (0, fs_1.readdirSync)(projectSessionsDir).filter(f => f.endsWith('.json') && !f.endsWith('.harness.json'));
|
|
491
573
|
for (const file of files) {
|
|
492
574
|
const rawSession = parseSessionMetaFile((0, path_1.join)(projectSessionsDir, file));
|
|
493
575
|
if (rawSession) {
|
|
@@ -560,7 +642,7 @@ function deleteSession(sessionId) {
|
|
|
560
642
|
(0, config_dir_1.getSessionMessagesPath)(sessionId),
|
|
561
643
|
];
|
|
562
644
|
if (session) {
|
|
563
|
-
paths.push((0, config_dir_1.getProjectSessionMetaPath)(session.projectPath, sessionId), (0, config_dir_1.getProjectSessionMessagesPath)(session.projectPath, sessionId));
|
|
645
|
+
paths.push((0, config_dir_1.getProjectSessionMetaPath)(session.projectPath, sessionId), (0, config_dir_1.getProjectSessionMessagesPath)(session.projectPath, sessionId), (0, config_dir_1.getProjectSessionHarnessPath)(session.projectPath, sessionId));
|
|
564
646
|
}
|
|
565
647
|
let deleted = false;
|
|
566
648
|
for (const path of uniquePaths(paths)) {
|