openhorse 0.2.12 → 0.2.13
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/commands/index.d.ts.map +1 -1
- package/dist/commands/index.js +597 -12
- package/dist/commands/index.js.map +1 -1
- package/dist/commands/types.d.ts +3 -1
- package/dist/commands/types.d.ts.map +1 -1
- package/dist/commands/types.js.map +1 -1
- package/dist/core/checkpoint.d.ts +1 -0
- package/dist/core/checkpoint.d.ts.map +1 -1
- package/dist/core/checkpoint.js +59 -10
- package/dist/core/checkpoint.js.map +1 -1
- package/dist/core/tool-artifacts.d.ts +10 -0
- package/dist/core/tool-artifacts.d.ts.map +1 -1
- package/dist/core/tool-artifacts.js +81 -3
- package/dist/core/tool-artifacts.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 +5 -1
- package/dist/framework/index.js.map +1 -1
- package/dist/framework/query.d.ts +87 -2
- package/dist/framework/query.d.ts.map +1 -1
- package/dist/framework/query.js +281 -14
- package/dist/framework/query.js.map +1 -1
- package/dist/framework/tool-scheduler.d.ts +9 -0
- package/dist/framework/tool-scheduler.d.ts.map +1 -1
- package/dist/framework/tool-scheduler.js +34 -0
- package/dist/framework/tool-scheduler.js.map +1 -1
- package/dist/ink-ui/components/StatusLine.d.ts.map +1 -1
- package/dist/ink-ui/components/StatusLine.js +7 -1
- package/dist/ink-ui/components/StatusLine.js.map +1 -1
- package/dist/runtime/agent-runtime-protocol.d.ts +13 -1
- package/dist/runtime/agent-runtime-protocol.d.ts.map +1 -1
- package/dist/runtime/agent-runtime-protocol.js +24 -0
- package/dist/runtime/agent-runtime-protocol.js.map +1 -1
- package/dist/runtime/chat-controller.d.ts +3 -0
- package/dist/runtime/chat-controller.d.ts.map +1 -1
- package/dist/runtime/chat-controller.js +907 -2
- package/dist/runtime/chat-controller.js.map +1 -1
- package/dist/runtime/loop-budget.d.ts +5 -0
- package/dist/runtime/loop-budget.d.ts.map +1 -0
- package/dist/runtime/loop-budget.js +77 -0
- package/dist/runtime/loop-budget.js.map +1 -0
- package/dist/runtime/ui-events.d.ts +34 -1
- package/dist/runtime/ui-events.d.ts.map +1 -1
- package/dist/runtime/ui-events.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 +4 -2
- package/dist/services/config.d.ts.map +1 -1
- package/dist/services/config.js +19 -0
- package/dist/services/config.js.map +1 -1
- package/dist/services/global-config.d.ts +17 -0
- package/dist/services/global-config.d.ts.map +1 -1
- package/dist/services/global-config.js.map +1 -1
- package/dist/services/llm.d.ts +16 -0
- package/dist/services/llm.d.ts.map +1 -1
- package/dist/services/llm.js +56 -11
- package/dist/services/llm.js.map +1 -1
- package/dist/services/redaction.d.ts +2 -0
- package/dist/services/redaction.d.ts.map +1 -0
- package/dist/services/redaction.js +27 -0
- package/dist/services/redaction.js.map +1 -0
- package/dist/services/session-index.d.ts.map +1 -1
- package/dist/services/session-index.js +7 -3
- package/dist/services/session-index.js.map +1 -1
- package/dist/services/session-storage.d.ts +98 -0
- package/dist/services/session-storage.d.ts.map +1 -1
- package/dist/services/session-storage.js +153 -2
- package/dist/services/session-storage.js.map +1 -1
- package/dist/services/verification-profile.d.ts +36 -0
- package/dist/services/verification-profile.d.ts.map +1 -0
- package/dist/services/verification-profile.js +239 -0
- package/dist/services/verification-profile.js.map +1 -0
- package/dist/services/workspace-state.d.ts +25 -0
- package/dist/services/workspace-state.d.ts.map +1 -0
- package/dist/services/workspace-state.js +115 -0
- package/dist/services/workspace-state.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export interface WorkspaceFileChange {
|
|
2
|
+
path: string;
|
|
3
|
+
status: string;
|
|
4
|
+
sizeBytes?: number;
|
|
5
|
+
mtimeMs?: number;
|
|
6
|
+
}
|
|
7
|
+
export interface WorkspaceSnapshot {
|
|
8
|
+
gitAvailable: boolean;
|
|
9
|
+
dirty: boolean;
|
|
10
|
+
branch?: string;
|
|
11
|
+
fileCount: number;
|
|
12
|
+
files: WorkspaceFileChange[];
|
|
13
|
+
error?: string;
|
|
14
|
+
}
|
|
15
|
+
export interface WorkspaceDelta {
|
|
16
|
+
preExistingFiles: string[];
|
|
17
|
+
filesAfterTurn: string[];
|
|
18
|
+
newFilesByTurn: string[];
|
|
19
|
+
changedByTurn: string[];
|
|
20
|
+
modifiedPreExistingByTurn: string[];
|
|
21
|
+
resolvedByTurn: string[];
|
|
22
|
+
}
|
|
23
|
+
export declare function captureWorkspaceSnapshot(cwd: string): WorkspaceSnapshot;
|
|
24
|
+
export declare function diffWorkspaceSnapshots(before: WorkspaceSnapshot, after: WorkspaceSnapshot): WorkspaceDelta;
|
|
25
|
+
//# sourceMappingURL=workspace-state.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workspace-state.d.ts","sourceRoot":"","sources":["../../src/services/workspace-state.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,iBAAiB;IAChC,YAAY,EAAE,OAAO,CAAC;IACtB,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,mBAAmB,EAAE,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,yBAAyB,EAAE,MAAM,EAAE,CAAC;IACpC,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B;AAsCD,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,MAAM,GAAG,iBAAiB,CA6CvE;AAYD,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,iBAAiB,EAAE,KAAK,EAAE,iBAAiB,GAAG,cAAc,CAkB1G"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.captureWorkspaceSnapshot = captureWorkspaceSnapshot;
|
|
4
|
+
exports.diffWorkspaceSnapshots = diffWorkspaceSnapshots;
|
|
5
|
+
const child_process_1 = require("child_process");
|
|
6
|
+
const fs_1 = require("fs");
|
|
7
|
+
const path_1 = require("path");
|
|
8
|
+
function runGit(cwd, args) {
|
|
9
|
+
return (0, child_process_1.execFileSync)('git', ['-C', cwd, ...args], {
|
|
10
|
+
encoding: 'utf8',
|
|
11
|
+
stdio: ['ignore', 'pipe', 'pipe'],
|
|
12
|
+
timeout: 5000,
|
|
13
|
+
}).trim();
|
|
14
|
+
}
|
|
15
|
+
function parsePorcelainLine(line) {
|
|
16
|
+
if (line.length < 4)
|
|
17
|
+
return null;
|
|
18
|
+
const status = line.slice(0, 2).trim() || line.slice(0, 2);
|
|
19
|
+
const rawPath = line.slice(2).trim();
|
|
20
|
+
if (!rawPath)
|
|
21
|
+
return null;
|
|
22
|
+
const renameParts = rawPath.split(' -> ');
|
|
23
|
+
const renameTarget = renameParts.length > 1 ? renameParts[renameParts.length - 1] : rawPath;
|
|
24
|
+
return {
|
|
25
|
+
status,
|
|
26
|
+
path: renameTarget.replace(/^"|"$/g, ''),
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
function attachFileMetadata(gitRoot, file) {
|
|
30
|
+
try {
|
|
31
|
+
const stat = (0, fs_1.statSync)((0, path_1.join)(gitRoot, file.path));
|
|
32
|
+
return {
|
|
33
|
+
...file,
|
|
34
|
+
sizeBytes: stat.isFile() ? stat.size : undefined,
|
|
35
|
+
mtimeMs: Math.floor(stat.mtimeMs),
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
catch {
|
|
39
|
+
return file;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
function captureWorkspaceSnapshot(cwd) {
|
|
43
|
+
let gitRoot;
|
|
44
|
+
try {
|
|
45
|
+
gitRoot = runGit(cwd, ['rev-parse', '--show-toplevel']);
|
|
46
|
+
}
|
|
47
|
+
catch (error) {
|
|
48
|
+
return {
|
|
49
|
+
gitAvailable: false,
|
|
50
|
+
dirty: false,
|
|
51
|
+
fileCount: 0,
|
|
52
|
+
files: [],
|
|
53
|
+
error: error instanceof Error ? error.message : String(error),
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
let branch;
|
|
57
|
+
try {
|
|
58
|
+
branch = runGit(cwd, ['rev-parse', '--abbrev-ref', 'HEAD']) || undefined;
|
|
59
|
+
}
|
|
60
|
+
catch {
|
|
61
|
+
branch = undefined;
|
|
62
|
+
}
|
|
63
|
+
try {
|
|
64
|
+
const output = runGit(cwd, ['status', '--porcelain=v1', '--untracked-files=all']);
|
|
65
|
+
const files = output
|
|
66
|
+
? output.split('\n').map(parsePorcelainLine).filter(Boolean)
|
|
67
|
+
.map(file => attachFileMetadata(gitRoot, file))
|
|
68
|
+
: [];
|
|
69
|
+
return {
|
|
70
|
+
gitAvailable: true,
|
|
71
|
+
dirty: files.length > 0,
|
|
72
|
+
branch,
|
|
73
|
+
fileCount: files.length,
|
|
74
|
+
files,
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
catch (error) {
|
|
78
|
+
return {
|
|
79
|
+
gitAvailable: true,
|
|
80
|
+
dirty: false,
|
|
81
|
+
branch,
|
|
82
|
+
fileCount: 0,
|
|
83
|
+
files: [],
|
|
84
|
+
error: error instanceof Error ? error.message : String(error),
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
function fileFingerprint(file) {
|
|
89
|
+
if (!file)
|
|
90
|
+
return '';
|
|
91
|
+
return [
|
|
92
|
+
file.status,
|
|
93
|
+
file.path,
|
|
94
|
+
file.sizeBytes ?? 'missing',
|
|
95
|
+
file.mtimeMs ?? 'missing',
|
|
96
|
+
].join('\0');
|
|
97
|
+
}
|
|
98
|
+
function diffWorkspaceSnapshots(before, after) {
|
|
99
|
+
const beforeByPath = new Map(before.files.map(file => [file.path, file]));
|
|
100
|
+
const afterByPath = new Map(after.files.map(file => [file.path, file]));
|
|
101
|
+
const beforeSet = new Set(beforeByPath.keys());
|
|
102
|
+
const afterSet = new Set(afterByPath.keys());
|
|
103
|
+
const changedByTurn = [...afterSet]
|
|
104
|
+
.filter(file => !beforeSet.has(file) || fileFingerprint(beforeByPath.get(file)) !== fileFingerprint(afterByPath.get(file)))
|
|
105
|
+
.sort();
|
|
106
|
+
return {
|
|
107
|
+
preExistingFiles: [...beforeSet].sort(),
|
|
108
|
+
filesAfterTurn: [...afterSet].sort(),
|
|
109
|
+
newFilesByTurn: changedByTurn.filter(file => !beforeSet.has(file)).sort(),
|
|
110
|
+
changedByTurn,
|
|
111
|
+
modifiedPreExistingByTurn: changedByTurn.filter(file => beforeSet.has(file)).sort(),
|
|
112
|
+
resolvedByTurn: [...beforeSet].filter(file => !afterSet.has(file)).sort(),
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
//# sourceMappingURL=workspace-state.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workspace-state.js","sourceRoot":"","sources":["../../src/services/workspace-state.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED