@orion-agents/orion-code 0.3.0 → 0.3.2
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/CHANGELOG.md +85 -0
- package/README.md +45 -18
- package/README.zh-CN.md +39 -18
- package/dist/commands/model-command-handlers.d.ts.map +1 -1
- package/dist/commands/model-command-handlers.js +59 -14
- package/dist/commands/model-command-handlers.js.map +1 -1
- package/dist/commands/types.d.ts +6 -0
- package/dist/commands/types.d.ts.map +1 -1
- package/dist/commands/types.js.map +1 -1
- package/dist/commands/workflow-command-handlers.d.ts +1 -1
- package/dist/commands/workflow-command-handlers.d.ts.map +1 -1
- package/dist/commands/workflow-command-handlers.js +42 -3
- package/dist/commands/workflow-command-handlers.js.map +1 -1
- package/dist/commands/workflow-commands.d.ts.map +1 -1
- package/dist/commands/workflow-commands.js +2 -2
- package/dist/commands/workflow-commands.js.map +1 -1
- package/dist/core/tool-artifacts.d.ts +2 -0
- package/dist/core/tool-artifacts.d.ts.map +1 -1
- package/dist/core/tool-artifacts.js +27 -1
- package/dist/core/tool-artifacts.js.map +1 -1
- package/dist/runtime/agent-runtime-controller.d.ts +16 -2
- package/dist/runtime/agent-runtime-controller.d.ts.map +1 -1
- package/dist/runtime/agent-runtime-controller.js +116 -8
- package/dist/runtime/agent-runtime-controller.js.map +1 -1
- package/dist/runtime/agent-runtime-protocol.d.ts +7 -0
- package/dist/runtime/agent-runtime-protocol.d.ts.map +1 -1
- package/dist/runtime/agent-runtime-protocol.js.map +1 -1
- package/dist/runtime/agent-runtime-runner.d.ts +8 -0
- package/dist/runtime/agent-runtime-runner.d.ts.map +1 -1
- package/dist/runtime/durable-tool-receipt-reader.d.ts +32 -0
- package/dist/runtime/durable-tool-receipt-reader.d.ts.map +1 -0
- package/dist/runtime/durable-tool-receipt-reader.js +130 -0
- package/dist/runtime/durable-tool-receipt-reader.js.map +1 -0
- package/dist/runtime/legacy-thread-materializer.d.ts +14 -1
- package/dist/runtime/legacy-thread-materializer.d.ts.map +1 -1
- package/dist/runtime/legacy-thread-materializer.js +44 -5
- package/dist/runtime/legacy-thread-materializer.js.map +1 -1
- package/dist/runtime/orion-session-runner.d.ts +4 -0
- package/dist/runtime/orion-session-runner.d.ts.map +1 -1
- package/dist/runtime/orion-session-runner.js +15 -0
- package/dist/runtime/orion-session-runner.js.map +1 -1
- package/dist/runtime/plan-review.d.ts +38 -0
- package/dist/runtime/plan-review.d.ts.map +1 -0
- package/dist/runtime/plan-review.js +173 -0
- package/dist/runtime/plan-review.js.map +1 -0
- package/dist/runtime/product-bootstrap.d.ts.map +1 -1
- package/dist/runtime/product-bootstrap.js +28 -6
- package/dist/runtime/product-bootstrap.js.map +1 -1
- package/dist/runtime/product-orion-runtime.d.ts.map +1 -1
- package/dist/runtime/product-orion-runtime.js +14 -35
- package/dist/runtime/product-orion-runtime.js.map +1 -1
- package/dist/runtime/protocol/runtime-protocol-v1.d.ts +73 -0
- package/dist/runtime/protocol/runtime-protocol-v1.d.ts.map +1 -1
- package/dist/runtime/protocol/runtime-protocol-v1.js +37 -0
- package/dist/runtime/protocol/runtime-protocol-v1.js.map +1 -1
- package/dist/runtime/release-receipts.d.ts +8 -3
- package/dist/runtime/release-receipts.d.ts.map +1 -1
- package/dist/runtime/release-receipts.js +88 -4
- package/dist/runtime/release-receipts.js.map +1 -1
- package/dist/runtime/session-composer-control.d.ts +136 -0
- package/dist/runtime/session-composer-control.d.ts.map +1 -0
- package/dist/runtime/session-composer-control.js +532 -0
- package/dist/runtime/session-composer-control.js.map +1 -0
- package/dist/runtime/thread-event-store.d.ts +62 -9
- package/dist/runtime/thread-event-store.d.ts.map +1 -1
- package/dist/runtime/thread-event-store.js +363 -31
- package/dist/runtime/thread-event-store.js.map +1 -1
- package/dist/runtime/thread-projection.d.ts +17 -0
- package/dist/runtime/thread-projection.d.ts.map +1 -1
- package/dist/runtime/thread-projection.js +87 -0
- package/dist/runtime/thread-projection.js.map +1 -1
- package/dist/runtime/thread-session-index.d.ts +84 -0
- package/dist/runtime/thread-session-index.d.ts.map +1 -0
- package/dist/runtime/thread-session-index.js +503 -0
- package/dist/runtime/thread-session-index.js.map +1 -0
- package/dist/runtime/thread-session-view.d.ts +31 -13
- package/dist/runtime/thread-session-view.d.ts.map +1 -1
- package/dist/runtime/thread-session-view.js +116 -61
- package/dist/runtime/thread-session-view.js.map +1 -1
- package/dist/runtime/thread-ui-adapter.d.ts.map +1 -1
- package/dist/runtime/thread-ui-adapter.js +18 -58
- package/dist/runtime/thread-ui-adapter.js.map +1 -1
- package/dist/runtime/tool-detail-repository.d.ts.map +1 -1
- package/dist/runtime/tool-detail-repository.js +23 -19
- package/dist/runtime/tool-detail-repository.js.map +1 -1
- package/dist/runtime/tool-receipt-validator.d.ts +21 -0
- package/dist/runtime/tool-receipt-validator.d.ts.map +1 -0
- package/dist/runtime/tool-receipt-validator.js +157 -0
- package/dist/runtime/tool-receipt-validator.js.map +1 -0
- package/dist/runtime/ui-events.d.ts +6 -1
- package/dist/runtime/ui-events.d.ts.map +1 -1
- package/dist/runtime/ui-events.js.map +1 -1
- package/dist/services/redaction.d.ts +4 -0
- package/dist/services/redaction.d.ts.map +1 -1
- package/dist/services/redaction.js +63 -0
- package/dist/services/redaction.js.map +1 -1
- package/dist/services/session-index.d.ts +16 -0
- package/dist/services/session-index.d.ts.map +1 -1
- package/dist/services/session-index.js +45 -36
- package/dist/services/session-index.js.map +1 -1
- package/dist/services/session-storage.d.ts +36 -0
- package/dist/services/session-storage.d.ts.map +1 -1
- package/dist/services/session-storage.js +80 -7
- package/dist/services/session-storage.js.map +1 -1
- package/dist/services/workspace-registry.d.ts +42 -0
- package/dist/services/workspace-registry.d.ts.map +1 -0
- package/dist/services/workspace-registry.js +222 -0
- package/dist/services/workspace-registry.js.map +1 -0
- package/dist/web/errors.d.ts +6 -0
- package/dist/web/errors.d.ts.map +1 -0
- package/dist/web/errors.js +13 -0
- package/dist/web/errors.js.map +1 -0
- package/dist/web/event-hub.d.ts +4 -0
- package/dist/web/event-hub.d.ts.map +1 -1
- package/dist/web/event-hub.js +81 -11
- package/dist/web/event-hub.js.map +1 -1
- package/dist/web/file-read-service.d.ts +64 -0
- package/dist/web/file-read-service.d.ts.map +1 -0
- package/dist/web/file-read-service.js +409 -0
- package/dist/web/file-read-service.js.map +1 -0
- package/dist/web/git-read-model-service.d.ts +85 -0
- package/dist/web/git-read-model-service.d.ts.map +1 -0
- package/dist/web/git-read-model-service.js +657 -0
- package/dist/web/git-read-model-service.js.map +1 -0
- package/dist/web/protocol.d.ts +205 -1
- package/dist/web/protocol.d.ts.map +1 -1
- package/dist/web/protocol.js +229 -1
- package/dist/web/protocol.js.map +1 -1
- package/dist/web/review-service.d.ts +38 -0
- package/dist/web/review-service.d.ts.map +1 -0
- package/dist/web/review-service.js +74 -0
- package/dist/web/review-service.js.map +1 -0
- package/dist/web/server.d.ts.map +1 -1
- package/dist/web/server.js +312 -29
- package/dist/web/server.js.map +1 -1
- package/dist/web/terminal-manager.d.ts +156 -0
- package/dist/web/terminal-manager.d.ts.map +1 -0
- package/dist/web/terminal-manager.js +760 -0
- package/dist/web/terminal-manager.js.map +1 -0
- package/dist/web/terminal-server.d.ts +8 -0
- package/dist/web/terminal-server.d.ts.map +1 -0
- package/dist/web/terminal-server.js +275 -0
- package/dist/web/terminal-server.js.map +1 -0
- package/dist/web/workbench-controller.d.ts +71 -18
- package/dist/web/workbench-controller.d.ts.map +1 -1
- package/dist/web/workbench-controller.js +1187 -178
- package/dist/web/workbench-controller.js.map +1 -1
- package/dist/web-client/assets/DiffViewer-eaQNsnCh.js +5 -0
- package/dist/web-client/assets/FilesPanel-DYs1MhoM.js +2 -0
- package/dist/web-client/assets/GitPanel-CnU4XVr7.js +1 -0
- package/dist/web-client/assets/ReviewPanel-BDxG670T.js +1 -0
- package/dist/web-client/assets/TerminalPanel-DLuoa74B.css +1 -0
- package/dist/web-client/assets/TerminalPanel-Q5mSSsoK.js +23 -0
- package/dist/web-client/assets/index-BWV5sIvw.css +1 -0
- package/dist/web-client/assets/index-VVUKj6FE.js +17 -0
- package/dist/web-client/index.html +2 -2
- package/docs/architecture/agent-mode-permission-contract.md +87 -0
- package/docs/architecture/v0.3.0-web-api.yaml +44 -13
- package/docs/architecture/v0.3.1-web-api.yaml +2338 -0
- package/docs/architecture/v0.3.2-web-api.yaml +3029 -0
- package/docs/migration/v0.3.0-to-v0.3.1.md +88 -0
- package/docs/migration/v0.3.1-to-v0.3.2.md +94 -0
- package/docs/plan/v0.3.0-web-workbench-plan.md +58 -7
- package/docs/plan/v0.3.1-web-workbench-professional-shell-plan.md +848 -0
- package/docs/plan/v0.3.2-web-workbench-layout-and-composer-plan.md +869 -0
- package/docs/readme.md +20 -0
- package/docs/test/v0.3.1-web-workbench-e2e-plan.md +140 -0
- package/docs/test/v0.3.2-web-workbench-e2e-plan.md +100 -0
- package/npm-shrinkwrap.json +185 -354
- package/package.json +21 -4
- package/dist/web-client/assets/index-BAEO71Gp.css +0 -1
- package/dist/web-client/assets/index-DSkFy7gM.js +0 -13
|
@@ -0,0 +1,409 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FileReadServiceV1 = void 0;
|
|
4
|
+
const crypto_1 = require("crypto");
|
|
5
|
+
const fs_1 = require("fs");
|
|
6
|
+
const path_1 = require("path");
|
|
7
|
+
const util_1 = require("util");
|
|
8
|
+
const redaction_1 = require("../services/redaction");
|
|
9
|
+
const errors_1 = require("./errors");
|
|
10
|
+
const ROOT_NODE_ID = 'workspace-root';
|
|
11
|
+
const DEFAULT_PAGE_SIZE = 100;
|
|
12
|
+
const MAX_PAGE_SIZE = 200;
|
|
13
|
+
const DEFAULT_CONTENT_BYTES = 64 * 1024;
|
|
14
|
+
const MAX_CONTENT_BYTES = 256 * 1024;
|
|
15
|
+
const MAX_CURSOR_BYTES = 4096;
|
|
16
|
+
const IGNORED_NAMES = new Set([
|
|
17
|
+
'.git',
|
|
18
|
+
'.hg',
|
|
19
|
+
'.svn',
|
|
20
|
+
'.next',
|
|
21
|
+
'.orion',
|
|
22
|
+
'.orion-code',
|
|
23
|
+
'node_modules',
|
|
24
|
+
'coverage',
|
|
25
|
+
'dist',
|
|
26
|
+
'build',
|
|
27
|
+
'target',
|
|
28
|
+
]);
|
|
29
|
+
/** Safe, lazy, read-only projection of one active Workspace filesystem. */
|
|
30
|
+
class FileReadServiceV1 {
|
|
31
|
+
constructor(workspace) {
|
|
32
|
+
this.secret = (0, crypto_1.randomBytes)(32);
|
|
33
|
+
this.pathById = new Map([[ROOT_NODE_ID, '']]);
|
|
34
|
+
this.idByPath = new Map([['', ROOT_NODE_ID]]);
|
|
35
|
+
this.performance = { readOperations: 0, bytesRead: 0, itemsParsed: 0 };
|
|
36
|
+
this.root = canonicalDirectory(workspace);
|
|
37
|
+
}
|
|
38
|
+
get rootId() {
|
|
39
|
+
return ROOT_NODE_ID;
|
|
40
|
+
}
|
|
41
|
+
performanceCounters() {
|
|
42
|
+
return Object.freeze({ ...this.performance });
|
|
43
|
+
}
|
|
44
|
+
identifyRelativePath(relativePath) {
|
|
45
|
+
const normalized = normalizeRelativePath(relativePath);
|
|
46
|
+
this.resolveRelative(normalized);
|
|
47
|
+
return this.remember(normalized);
|
|
48
|
+
}
|
|
49
|
+
list(input = {}) {
|
|
50
|
+
this.performance.readOperations += 1;
|
|
51
|
+
const parentId = input.parentId ?? ROOT_NODE_ID;
|
|
52
|
+
const pageSize = boundedPageSize(input.pageSize ?? DEFAULT_PAGE_SIZE);
|
|
53
|
+
const parent = this.resolveNode(parentId);
|
|
54
|
+
if (!parent.stat.isDirectory()) {
|
|
55
|
+
throw new errors_1.WebWorkbenchError(409, 'File node is not a directory.', 'file_not_directory');
|
|
56
|
+
}
|
|
57
|
+
const revision = fingerprintStat(parent.stat);
|
|
58
|
+
const offset = input.cursor
|
|
59
|
+
? this.decodeCursor(input.cursor, 'tree', parentId, revision).offset
|
|
60
|
+
: 0;
|
|
61
|
+
const directory = (0, fs_1.opendirSync)(parent.canonicalPath);
|
|
62
|
+
const items = [];
|
|
63
|
+
let visibleIndex = 0;
|
|
64
|
+
let hasMore = false;
|
|
65
|
+
try {
|
|
66
|
+
for (;;) {
|
|
67
|
+
const entry = directory.readSync();
|
|
68
|
+
if (!entry)
|
|
69
|
+
break;
|
|
70
|
+
this.performance.itemsParsed += 1;
|
|
71
|
+
if (IGNORED_NAMES.has(entry.name))
|
|
72
|
+
continue;
|
|
73
|
+
if (visibleIndex < offset) {
|
|
74
|
+
visibleIndex += 1;
|
|
75
|
+
continue;
|
|
76
|
+
}
|
|
77
|
+
if (items.length >= pageSize) {
|
|
78
|
+
hasMore = true;
|
|
79
|
+
break;
|
|
80
|
+
}
|
|
81
|
+
visibleIndex += 1;
|
|
82
|
+
const childRelative = parent.relativePath
|
|
83
|
+
? `${parent.relativePath}/${entry.name}`
|
|
84
|
+
: entry.name;
|
|
85
|
+
items.push(this.projectNode(childRelative));
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
finally {
|
|
89
|
+
directory.closeSync();
|
|
90
|
+
}
|
|
91
|
+
const after = this.resolveNode(parentId);
|
|
92
|
+
if (fingerprintStat(after.stat) !== revision) {
|
|
93
|
+
throw new errors_1.WebWorkbenchError(409, 'Directory changed while it was being read.', 'file_revision_conflict');
|
|
94
|
+
}
|
|
95
|
+
return Object.freeze({
|
|
96
|
+
parentId,
|
|
97
|
+
revision,
|
|
98
|
+
items: Object.freeze(items),
|
|
99
|
+
nextCursor: hasMore
|
|
100
|
+
? this.encodeCursor({
|
|
101
|
+
version: 1,
|
|
102
|
+
kind: 'tree',
|
|
103
|
+
nodeId: parentId,
|
|
104
|
+
revision,
|
|
105
|
+
offset: offset + items.length,
|
|
106
|
+
})
|
|
107
|
+
: null,
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
readContent(input) {
|
|
111
|
+
this.performance.readOperations += 1;
|
|
112
|
+
const limitBytes = boundedContentBytes(input.limitBytes ?? DEFAULT_CONTENT_BYTES);
|
|
113
|
+
const node = this.resolveNode(input.fileId);
|
|
114
|
+
if (!node.stat.isFile()) {
|
|
115
|
+
throw new errors_1.WebWorkbenchError(409, 'File node is not a regular file.', 'file_not_regular');
|
|
116
|
+
}
|
|
117
|
+
const sensitive = (0, redaction_1.isSensitiveFilePath)(node.relativePath);
|
|
118
|
+
if (sensitive) {
|
|
119
|
+
throw new errors_1.WebWorkbenchError(403, 'Sensitive file content is not available in the Web Workbench.', 'sensitive_file_blocked');
|
|
120
|
+
}
|
|
121
|
+
const revision = fingerprintStat(node.stat);
|
|
122
|
+
const offset = input.cursor
|
|
123
|
+
? this.decodeCursor(input.cursor, 'content', input.fileId, revision).offset
|
|
124
|
+
: 0;
|
|
125
|
+
if (offset > Number(node.stat.size)) {
|
|
126
|
+
throw new errors_1.WebWorkbenchError(409, 'File content cursor is stale.', 'file_revision_conflict');
|
|
127
|
+
}
|
|
128
|
+
const descriptor = (0, fs_1.openSync)(node.canonicalPath, fs_1.constants.O_RDONLY | fs_1.constants.O_NOFOLLOW);
|
|
129
|
+
try {
|
|
130
|
+
const before = (0, fs_1.fstatSync)(descriptor, { bigint: true });
|
|
131
|
+
if (fingerprintStat(before) !== revision) {
|
|
132
|
+
throw new errors_1.WebWorkbenchError(409, 'File changed before it was read.', 'file_revision_conflict');
|
|
133
|
+
}
|
|
134
|
+
const sample = Buffer.alloc(Math.min(8192, Number(before.size)));
|
|
135
|
+
if (sample.length > 0) {
|
|
136
|
+
this.performance.bytesRead += (0, fs_1.readSync)(descriptor, sample, 0, sample.length, 0);
|
|
137
|
+
}
|
|
138
|
+
const binary = isBinary(sample);
|
|
139
|
+
if (binary) {
|
|
140
|
+
return Object.freeze({
|
|
141
|
+
fileId: input.fileId,
|
|
142
|
+
name: (0, path_1.basename)(node.relativePath),
|
|
143
|
+
revision,
|
|
144
|
+
sizeBytes: Number(before.size),
|
|
145
|
+
binary: true,
|
|
146
|
+
sensitive: false,
|
|
147
|
+
mediaType: 'application/octet-stream',
|
|
148
|
+
offsetBytes: 0,
|
|
149
|
+
nextCursor: null,
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
const remaining = Math.max(0, Number(before.size) - offset);
|
|
153
|
+
const page = readLineSafePage(descriptor, offset, remaining, limitBytes);
|
|
154
|
+
this.performance.bytesRead += page.bytesRead;
|
|
155
|
+
const contentBuffer = validUtf8Prefix(page.content);
|
|
156
|
+
if (page.consumedBytes > 0 && contentBuffer.length === 0) {
|
|
157
|
+
throw new errors_1.WebWorkbenchError(415, 'File is not valid UTF-8 text.', 'file_binary');
|
|
158
|
+
}
|
|
159
|
+
const nextOffset = offset + page.consumedBytes;
|
|
160
|
+
const after = (0, fs_1.fstatSync)(descriptor, { bigint: true });
|
|
161
|
+
if (fingerprintStat(after) !== revision) {
|
|
162
|
+
throw new errors_1.WebWorkbenchError(409, 'File changed while it was read.', 'file_revision_conflict');
|
|
163
|
+
}
|
|
164
|
+
return Object.freeze({
|
|
165
|
+
fileId: input.fileId,
|
|
166
|
+
name: (0, path_1.basename)(node.relativePath),
|
|
167
|
+
revision,
|
|
168
|
+
sizeBytes: Number(before.size),
|
|
169
|
+
binary: false,
|
|
170
|
+
sensitive: false,
|
|
171
|
+
mediaType: 'text/plain',
|
|
172
|
+
offsetBytes: offset,
|
|
173
|
+
content: (0, redaction_1.redactTraceText)(new util_1.TextDecoder('utf-8', { fatal: true }).decode(contentBuffer)),
|
|
174
|
+
nextCursor: nextOffset < Number(before.size)
|
|
175
|
+
? this.encodeCursor({
|
|
176
|
+
version: 1,
|
|
177
|
+
kind: 'content',
|
|
178
|
+
nodeId: input.fileId,
|
|
179
|
+
revision,
|
|
180
|
+
offset: nextOffset,
|
|
181
|
+
})
|
|
182
|
+
: null,
|
|
183
|
+
});
|
|
184
|
+
}
|
|
185
|
+
finally {
|
|
186
|
+
(0, fs_1.closeSync)(descriptor);
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
projectNode(relativePath) {
|
|
190
|
+
const lexicalPath = (0, path_1.resolve)(this.root, relativePath);
|
|
191
|
+
const lexicalStat = (0, fs_1.lstatSync)(lexicalPath, { bigint: true });
|
|
192
|
+
const symlink = lexicalStat.isSymbolicLink();
|
|
193
|
+
let readable = true;
|
|
194
|
+
let effectiveStat = lexicalStat;
|
|
195
|
+
if (symlink) {
|
|
196
|
+
try {
|
|
197
|
+
const canonicalPath = (0, fs_1.realpathSync)(lexicalPath);
|
|
198
|
+
readable = isWithinRoot(canonicalPath, this.root);
|
|
199
|
+
if (readable)
|
|
200
|
+
effectiveStat = (0, fs_1.statSync)(canonicalPath, { bigint: true });
|
|
201
|
+
}
|
|
202
|
+
catch {
|
|
203
|
+
readable = false;
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
return Object.freeze({
|
|
207
|
+
id: this.remember(relativePath),
|
|
208
|
+
name: (0, path_1.basename)(relativePath),
|
|
209
|
+
displayPath: normalizeRelativePath(relativePath),
|
|
210
|
+
kind: symlink ? 'symlink' : effectiveStat.isDirectory() ? 'directory' : 'file',
|
|
211
|
+
...(effectiveStat.isFile() ? { sizeBytes: Number(effectiveStat.size) } : {}),
|
|
212
|
+
modifiedAt: new Date(Number(effectiveStat.mtimeMs)).toISOString(),
|
|
213
|
+
sensitive: (0, redaction_1.isSensitiveFilePath)(relativePath),
|
|
214
|
+
readable,
|
|
215
|
+
});
|
|
216
|
+
}
|
|
217
|
+
resolveNode(id) {
|
|
218
|
+
const relativePath = this.pathById.get(id);
|
|
219
|
+
if (relativePath === undefined) {
|
|
220
|
+
throw new errors_1.WebWorkbenchError(404, 'File node was not found.', 'file_not_found');
|
|
221
|
+
}
|
|
222
|
+
return this.resolveRelative(relativePath, id);
|
|
223
|
+
}
|
|
224
|
+
resolveRelative(relativePath, id = this.remember(relativePath)) {
|
|
225
|
+
const normalized = normalizeRelativePath(relativePath);
|
|
226
|
+
const root = canonicalDirectory(this.root);
|
|
227
|
+
const lexicalPath = (0, path_1.resolve)(root, normalized || '.');
|
|
228
|
+
if (!isWithinRoot(lexicalPath, root)) {
|
|
229
|
+
throw new errors_1.WebWorkbenchError(403, 'File node escaped the Workspace.', 'file_outside_workspace');
|
|
230
|
+
}
|
|
231
|
+
let canonicalPath;
|
|
232
|
+
let lexicalStat;
|
|
233
|
+
try {
|
|
234
|
+
lexicalStat = (0, fs_1.lstatSync)(lexicalPath, { bigint: true });
|
|
235
|
+
canonicalPath = (0, fs_1.realpathSync)(lexicalPath);
|
|
236
|
+
}
|
|
237
|
+
catch {
|
|
238
|
+
throw new errors_1.WebWorkbenchError(404, 'File node no longer exists.', 'file_not_found');
|
|
239
|
+
}
|
|
240
|
+
if (!isWithinRoot(canonicalPath, root)) {
|
|
241
|
+
throw new errors_1.WebWorkbenchError(403, 'Symbolic link points outside the active Workspace.', 'file_outside_workspace');
|
|
242
|
+
}
|
|
243
|
+
const stat = (0, fs_1.statSync)(canonicalPath, { bigint: true });
|
|
244
|
+
return Object.freeze({
|
|
245
|
+
id,
|
|
246
|
+
relativePath: normalized,
|
|
247
|
+
lexicalPath,
|
|
248
|
+
canonicalPath,
|
|
249
|
+
stat,
|
|
250
|
+
symlink: lexicalStat.isSymbolicLink(),
|
|
251
|
+
});
|
|
252
|
+
}
|
|
253
|
+
remember(relativePath) {
|
|
254
|
+
const normalized = normalizeRelativePath(relativePath);
|
|
255
|
+
const existing = this.idByPath.get(normalized);
|
|
256
|
+
if (existing)
|
|
257
|
+
return existing;
|
|
258
|
+
const id = `file_${(0, crypto_1.createHmac)('sha256', this.secret)
|
|
259
|
+
.update(normalized)
|
|
260
|
+
.digest('base64url')
|
|
261
|
+
.slice(0, 32)}`;
|
|
262
|
+
this.idByPath.set(normalized, id);
|
|
263
|
+
this.pathById.set(id, normalized);
|
|
264
|
+
return id;
|
|
265
|
+
}
|
|
266
|
+
encodeCursor(payload) {
|
|
267
|
+
const body = Buffer.from(JSON.stringify(payload)).toString('base64url');
|
|
268
|
+
const signature = (0, crypto_1.createHmac)('sha256', this.secret).update(body).digest('base64url');
|
|
269
|
+
return `${body}.${signature}`;
|
|
270
|
+
}
|
|
271
|
+
decodeCursor(cursor, kind, nodeId, revision) {
|
|
272
|
+
if (!cursor || cursor.length > MAX_CURSOR_BYTES)
|
|
273
|
+
return invalidCursor();
|
|
274
|
+
const [body, encodedSignature, extra] = cursor.split('.');
|
|
275
|
+
if (!body || !encodedSignature || extra)
|
|
276
|
+
return invalidCursor();
|
|
277
|
+
const expected = (0, crypto_1.createHmac)('sha256', this.secret).update(body).digest();
|
|
278
|
+
let actual;
|
|
279
|
+
try {
|
|
280
|
+
actual = Buffer.from(encodedSignature, 'base64url');
|
|
281
|
+
}
|
|
282
|
+
catch {
|
|
283
|
+
return invalidCursor();
|
|
284
|
+
}
|
|
285
|
+
if (actual.length !== expected.length || !(0, crypto_1.timingSafeEqual)(actual, expected)) {
|
|
286
|
+
return invalidCursor();
|
|
287
|
+
}
|
|
288
|
+
try {
|
|
289
|
+
const parsed = JSON.parse(Buffer.from(body, 'base64url').toString('utf8'));
|
|
290
|
+
if (parsed.version !== 1 ||
|
|
291
|
+
parsed.kind !== kind ||
|
|
292
|
+
parsed.nodeId !== nodeId ||
|
|
293
|
+
!Number.isSafeInteger(parsed.offset) ||
|
|
294
|
+
parsed.offset < 0) {
|
|
295
|
+
return invalidCursor();
|
|
296
|
+
}
|
|
297
|
+
if (parsed.revision !== revision) {
|
|
298
|
+
throw new errors_1.WebWorkbenchError(409, 'File cursor revision is stale.', 'file_revision_conflict');
|
|
299
|
+
}
|
|
300
|
+
return parsed;
|
|
301
|
+
}
|
|
302
|
+
catch (error) {
|
|
303
|
+
if (error instanceof errors_1.WebWorkbenchError)
|
|
304
|
+
throw error;
|
|
305
|
+
return invalidCursor();
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
exports.FileReadServiceV1 = FileReadServiceV1;
|
|
310
|
+
function readLineSafePage(descriptor, offset, remaining, requestedBytes) {
|
|
311
|
+
if (remaining === 0)
|
|
312
|
+
return { content: Buffer.alloc(0), consumedBytes: 0, bytesRead: 0 };
|
|
313
|
+
// Redaction rules are label-aware. Never split a logical line across pages or a caller could
|
|
314
|
+
// request `token=` and its value in separate pages. A line larger than the bounded service
|
|
315
|
+
// budget fails closed instead of returning an unsafe fragment.
|
|
316
|
+
const budget = Math.min(MAX_CONTENT_BYTES, remaining);
|
|
317
|
+
const buffer = Buffer.alloc(budget);
|
|
318
|
+
const bytesRead = (0, fs_1.readSync)(descriptor, buffer, 0, budget, offset);
|
|
319
|
+
const content = buffer.subarray(0, bytesRead);
|
|
320
|
+
const target = Math.min(requestedBytes, bytesRead);
|
|
321
|
+
const atEnd = offset + bytesRead >= offset + remaining;
|
|
322
|
+
if (target === bytesRead && atEnd)
|
|
323
|
+
return { content, consumedBytes: bytesRead, bytesRead };
|
|
324
|
+
const lastNewline = content.lastIndexOf(0x0a, Math.max(0, target - 1));
|
|
325
|
+
if (lastNewline >= 0) {
|
|
326
|
+
const consumedBytes = lastNewline + 1;
|
|
327
|
+
return { content: content.subarray(0, consumedBytes), consumedBytes, bytesRead };
|
|
328
|
+
}
|
|
329
|
+
const nextNewline = content.indexOf(0x0a, target);
|
|
330
|
+
if (nextNewline >= 0) {
|
|
331
|
+
const consumedBytes = nextNewline + 1;
|
|
332
|
+
return { content: content.subarray(0, consumedBytes), consumedBytes, bytesRead };
|
|
333
|
+
}
|
|
334
|
+
if (atEnd)
|
|
335
|
+
return { content, consumedBytes: bytesRead, bytesRead };
|
|
336
|
+
throw new errors_1.WebWorkbenchError(413, 'A text line exceeds the safe Web preview limit.', 'file_line_too_long');
|
|
337
|
+
}
|
|
338
|
+
function canonicalDirectory(path) {
|
|
339
|
+
try {
|
|
340
|
+
const canonical = (0, fs_1.realpathSync)((0, path_1.resolve)(path));
|
|
341
|
+
if (!(0, fs_1.statSync)(canonical).isDirectory())
|
|
342
|
+
throw new Error('not a directory');
|
|
343
|
+
return canonical;
|
|
344
|
+
}
|
|
345
|
+
catch {
|
|
346
|
+
throw new errors_1.WebWorkbenchError(400, 'Workspace directory is unavailable.');
|
|
347
|
+
}
|
|
348
|
+
}
|
|
349
|
+
function normalizeRelativePath(path) {
|
|
350
|
+
if (typeof path !== 'string' || path.includes('\0') || path.length > 4096 || (0, path_1.isAbsolute)(path)) {
|
|
351
|
+
throw new errors_1.WebWorkbenchError(400, 'File path is invalid.', 'file_path_invalid');
|
|
352
|
+
}
|
|
353
|
+
const normalized = path.replace(/\\/gu, '/').replace(/^\.\//u, '');
|
|
354
|
+
if (normalized === '..' || normalized.startsWith('../') || normalized.includes('/../')) {
|
|
355
|
+
throw new errors_1.WebWorkbenchError(400, 'File path is invalid.', 'file_path_invalid');
|
|
356
|
+
}
|
|
357
|
+
return normalized === '.' ? '' : normalized;
|
|
358
|
+
}
|
|
359
|
+
function isWithinRoot(candidate, root) {
|
|
360
|
+
const rel = (0, path_1.relative)(root, candidate);
|
|
361
|
+
return rel === '' || (!rel.startsWith(`..${path_1.sep}`) && rel !== '..' && !(0, path_1.isAbsolute)(rel));
|
|
362
|
+
}
|
|
363
|
+
function fingerprintStat(stat) {
|
|
364
|
+
return (0, crypto_1.createHash)('sha256')
|
|
365
|
+
.update([stat.dev, stat.ino, stat.mode, stat.size, stat.mtimeNs, stat.ctimeNs]
|
|
366
|
+
.map(value => value.toString())
|
|
367
|
+
.join(':'))
|
|
368
|
+
.digest('hex');
|
|
369
|
+
}
|
|
370
|
+
function boundedPageSize(value) {
|
|
371
|
+
if (!Number.isSafeInteger(value) || value < 1 || value > MAX_PAGE_SIZE) {
|
|
372
|
+
throw new errors_1.WebWorkbenchError(400, `pageSize must be an integer from 1 through ${MAX_PAGE_SIZE}.`);
|
|
373
|
+
}
|
|
374
|
+
return value;
|
|
375
|
+
}
|
|
376
|
+
function boundedContentBytes(value) {
|
|
377
|
+
if (!Number.isSafeInteger(value) || value < 1 || value > MAX_CONTENT_BYTES) {
|
|
378
|
+
throw new errors_1.WebWorkbenchError(400, `limitBytes must be an integer from 1 through ${MAX_CONTENT_BYTES}.`);
|
|
379
|
+
}
|
|
380
|
+
return value;
|
|
381
|
+
}
|
|
382
|
+
function isBinary(buffer) {
|
|
383
|
+
if (buffer.includes(0))
|
|
384
|
+
return true;
|
|
385
|
+
try {
|
|
386
|
+
new util_1.TextDecoder('utf-8', { fatal: true }).decode(buffer);
|
|
387
|
+
return false;
|
|
388
|
+
}
|
|
389
|
+
catch {
|
|
390
|
+
return true;
|
|
391
|
+
}
|
|
392
|
+
}
|
|
393
|
+
function validUtf8Prefix(buffer) {
|
|
394
|
+
for (let trim = 0; trim <= Math.min(3, buffer.length); trim += 1) {
|
|
395
|
+
const candidate = buffer.subarray(0, buffer.length - trim);
|
|
396
|
+
try {
|
|
397
|
+
new util_1.TextDecoder('utf-8', { fatal: true }).decode(candidate);
|
|
398
|
+
return candidate;
|
|
399
|
+
}
|
|
400
|
+
catch {
|
|
401
|
+
// A bounded read may end inside one UTF-8 code point.
|
|
402
|
+
}
|
|
403
|
+
}
|
|
404
|
+
return Buffer.alloc(0);
|
|
405
|
+
}
|
|
406
|
+
function invalidCursor() {
|
|
407
|
+
throw new errors_1.WebWorkbenchError(400, 'File cursor is invalid.', 'file_cursor_invalid');
|
|
408
|
+
}
|
|
409
|
+
//# sourceMappingURL=file-read-service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-read-service.js","sourceRoot":"","sources":["../../src/web/file-read-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
export interface WebGitFileV1 {
|
|
2
|
+
readonly fileId: string;
|
|
3
|
+
readonly path: string;
|
|
4
|
+
readonly indexStatus: string;
|
|
5
|
+
readonly worktreeStatus: string;
|
|
6
|
+
readonly renamedFrom?: string;
|
|
7
|
+
}
|
|
8
|
+
export interface WebGitStatusV1 {
|
|
9
|
+
readonly isRepository: boolean;
|
|
10
|
+
readonly repositoryRevision: string;
|
|
11
|
+
readonly rootLabel?: string;
|
|
12
|
+
readonly branch: string | null;
|
|
13
|
+
readonly detached: boolean;
|
|
14
|
+
readonly head: string | null;
|
|
15
|
+
readonly upstream: string | null;
|
|
16
|
+
readonly ahead: number;
|
|
17
|
+
readonly behind: number;
|
|
18
|
+
readonly clean: boolean;
|
|
19
|
+
readonly staged: readonly WebGitFileV1[];
|
|
20
|
+
readonly unstaged: readonly WebGitFileV1[];
|
|
21
|
+
readonly untracked: readonly WebGitFileV1[];
|
|
22
|
+
readonly conflicted: readonly WebGitFileV1[];
|
|
23
|
+
readonly totalFiles: number;
|
|
24
|
+
readonly truncated: boolean;
|
|
25
|
+
readonly nextCursor: string | null;
|
|
26
|
+
}
|
|
27
|
+
export interface WebGitCommitV1 {
|
|
28
|
+
readonly id: string;
|
|
29
|
+
readonly shortId: string;
|
|
30
|
+
readonly authoredAt: string;
|
|
31
|
+
readonly authorName: string;
|
|
32
|
+
readonly subject: string;
|
|
33
|
+
}
|
|
34
|
+
export interface WebGitLogPageV1 {
|
|
35
|
+
readonly repositoryRevision: string;
|
|
36
|
+
readonly items: readonly WebGitCommitV1[];
|
|
37
|
+
readonly nextCursor: string | null;
|
|
38
|
+
}
|
|
39
|
+
export interface WebGitDiffPageV1 {
|
|
40
|
+
readonly fileId: string;
|
|
41
|
+
readonly path: string;
|
|
42
|
+
readonly repositoryRevision: string;
|
|
43
|
+
readonly binary: boolean;
|
|
44
|
+
readonly lines: readonly string[];
|
|
45
|
+
readonly nextCursor: string | null;
|
|
46
|
+
readonly truncated: boolean;
|
|
47
|
+
}
|
|
48
|
+
export interface WebGitPerformanceCountersV1 {
|
|
49
|
+
readonly processCount: number;
|
|
50
|
+
readonly bytesRead: number;
|
|
51
|
+
readonly itemsParsed: number;
|
|
52
|
+
}
|
|
53
|
+
/** Bounded argv-only Git status/log/diff projection for one active Workspace. */
|
|
54
|
+
export declare class GitReadModelServiceV1 {
|
|
55
|
+
private readonly workspace;
|
|
56
|
+
private readonly secret;
|
|
57
|
+
private readonly pathById;
|
|
58
|
+
private readonly idByPath;
|
|
59
|
+
private repositoryRoot?;
|
|
60
|
+
private readonly performance;
|
|
61
|
+
constructor(workspace: string);
|
|
62
|
+
performanceCounters(): WebGitPerformanceCountersV1;
|
|
63
|
+
status(input?: {
|
|
64
|
+
readonly cursor?: string;
|
|
65
|
+
readonly pageSize?: number;
|
|
66
|
+
}): Promise<WebGitStatusV1>;
|
|
67
|
+
log(input?: {
|
|
68
|
+
readonly cursor?: string;
|
|
69
|
+
readonly pageSize?: number;
|
|
70
|
+
}): Promise<WebGitLogPageV1>;
|
|
71
|
+
diff(input: {
|
|
72
|
+
readonly fileId: string;
|
|
73
|
+
readonly cursor?: string;
|
|
74
|
+
readonly lineLimit?: number;
|
|
75
|
+
readonly byteLimit?: number;
|
|
76
|
+
}): Promise<WebGitDiffPageV1>;
|
|
77
|
+
private capture;
|
|
78
|
+
private projectFile;
|
|
79
|
+
private rememberPath;
|
|
80
|
+
private runGit;
|
|
81
|
+
private tryGit;
|
|
82
|
+
private encodeCursor;
|
|
83
|
+
private decodeCursor;
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=git-read-model-service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"git-read-model-service.d.ts","sourceRoot":"","sources":["../../src/web/git-read-model-service.ts"],"names":[],"mappings":"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"}
|