omp-fabric 1.3.1 → 1.3.3
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 +26 -0
- package/dist/fabric-runtime-state.d.ts.map +1 -1
- package/dist/fabric-runtime-state.js +37 -21
- package/dist/fabric-runtime-state.js.map +3 -3
- package/dist/providers/omp-tools-provider.d.ts +6 -0
- package/dist/providers/omp-tools-provider.d.ts.map +1 -1
- package/dist/providers/write-preview.d.ts +2 -2
- package/dist/providers/write-preview.d.ts.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,31 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 1.3.3
|
|
4
|
+
|
|
5
|
+
### Fixed
|
|
6
|
+
|
|
7
|
+
- **A `local://` write and a `local://` read still disagreed after 1.3.2.** Delegating to the host write tool stopped the literal `local:` directory, but the two sides derived different roots. `resolveLocalRoot` prefers `getArtifactsDir()` and falls back to `<tmp>/omp-local/<sessionId>`; the read path takes its options from the main session in the global agent registry, so it always used the real artifacts directory, while Fabric's core tools ran on a synthetic session that supplied neither accessor and landed in the fallback. Measured: the write reported success at `/tmp/omp-local/session/rt.md`, the file existed there, and reading the same URL raised `Local file not found`.
|
|
8
|
+
|
|
9
|
+
Fabric's synthetic session now carries the host session's identity, so `omp.read` and `omp.write` resolve one `local://` URL to one path. Verified live: the write lands in the session artifacts directory and the read returns the bytes.
|
|
10
|
+
|
|
11
|
+
### Notes
|
|
12
|
+
|
|
13
|
+
- 1.3.2 was released as verified on a smoke test whose read-back had been dropped from the probe, so only half the round-trip was exercised. The first attempt at that smoke did surface the mismatch and filed it, and the report was not read before shipping.
|
|
14
|
+
|
|
15
|
+
## 1.3.2
|
|
16
|
+
|
|
17
|
+
### Fixed
|
|
18
|
+
|
|
19
|
+
- **`omp.write` never resolved an internal URL, so `local://` writes landed in a literal `local:` directory.** Fabric replaces the host's write tool with its own implementation to attach diff previews, and that replacement carried no internal-URL handling: `resolve(cwd, "local://notes.md")` collapses the scheme into a path segment and produced `<cwd>/local:/notes.md`. Subagents are instructed to exchange findings through `local://` files, so a real project accumulated one of these directories with five files in it. Meanwhile `omp.read` resolves `local://` correctly, because Fabric binds the host's read tool unchanged, so a write and a read of the same URL disagreed about where the file was.
|
|
20
|
+
|
|
21
|
+
URI-like write targets are now delegated to the host's write tool, which resolves them: `local://round-trip.md` writes to the session's local root under `omp-local`, `xd://` reports that no device is mounted, `artifact://` reports that it is read-only for writes, and an unknown scheme keeps the host's own guidance. Ordinary filesystem writes keep the diff preview.
|
|
22
|
+
|
|
23
|
+
1.3.0 turned the silent mis-write into a refusal, which stopped the stray directories but left agents unable to write `local://` at all under full code mode, since the top-level write tool only accepts `local://` during plan mode. This completes that fix.
|
|
24
|
+
|
|
25
|
+
### Notes
|
|
26
|
+
|
|
27
|
+
- A directory literally named `local:` inside a project is the signature of this defect from any Fabric before 1.3.0. Its contents are real files and can be moved or deleted; nothing reads them at that path.
|
|
28
|
+
|
|
3
29
|
## 1.3.1
|
|
4
30
|
|
|
5
31
|
### Fixed
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fabric-runtime-state.d.ts","sourceRoot":"","sources":["../src/fabric-runtime-state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAOlE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAG9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAGvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAIlE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAA0B,MAAM,sBAAsB,CAAC;AACnF,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAEL,KAAK,wBAAwB,EAC9B,MAAM,gCAAgC,CAAC;AASxC,OAAO,KAAK,EACV,yBAAyB,EACzB,oBAAoB,EAErB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAGL,KAAK,YAAY,EACjB,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACtB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,cAAc,EAGf,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAqD,MAAM,8BAA8B,CAAC;AAGpH,OAAO,EAAE,sBAAsB,EAAE,KAAK,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC5F,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAiBvD,OAAO,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AAKzE,OAAO,EAAE,SAAS,EAAqB,MAAM,iBAAiB,CAAC;AAE/D,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAGrE,OAAO,KAAK,EACV,qBAAqB,EACrB,4BAA4B,EAC5B,cAAc,EACf,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAIL,KAAK,oBAAoB,EAC1B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,EAGL,KAAK,0BAA0B,EAC/B,KAAK,wBAAwB,EAC7B,KAAK,mBAAmB,EACzB,MAAM,iBAAiB,CAAC;AAmBzB,OAAO,EAML,KAAK,cAAc,EAEpB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGnD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAqB7D,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,EAAE,mBAAmB,CAAC;IAC/B,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B,YAAY,CAAC,EAAE,mBAAmB,CAAC;IACnC,gBAAgB,CAAC,EAAE,sBAAsB,CAAC;IAC1C,KAAK,CAAC,EAAE,kBAAkB,CAAC;CAC5B;AAED,qBAAa,kBAAkB;;IAwC3B,QAAQ,CAAC,GAAG,EAAE,YAAY;IAC1B,QAAQ,CAAC,aAAa,EAAE,mBAAmB;IAX7C,QAAQ,CAAC,gBAAgB,yBAAgC;IACzD,QAAQ,CAAC,QAAQ,EAAE,mBAAmB,CAAC;IACvC,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAC;IACpC,QAAQ,CAAC,YAAY,EAAE,mBAAmB,CAAC;IAC3C,QAAQ,CAAC,gBAAgB,EAAE,sBAAsB,CAAC;gBAMvC,GAAG,EAAE,YAAY,EACjB,aAAa,EAAE,mBAAmB,EAC3C,OAAO,GAAE,yBAA8B;IASzC,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED,IAAI,iBAAiB,IAAI,MAAM,CAE9B;IAED,IAAI,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAElC;IAED,IAAI,GAAG,IAAI,MAAM,GAAG,SAAS,CAE5B;IAED,IAAI,MAAM,IAAI,YAAY,CAGzB;IAED,8EAA8E;IAC9E,IAAI,cAAc,IAAI,0BAA0B,GAAG,SAAS,CAE3D;IAED,mFAAmF;IACnF,gBAAgB,IAAI,IAAI;IA2FxB,IAAI,QAAQ,IAAI,cAAc,CAG7B;IAED,IAAI,UAAU,IAAI,qBAAqB,CAGtC;IAED,IAAI,SAAS,IAAI,sBAAsB,CAGtC;IAED,IAAI,MAAM,IAAI,YAAY,CAGzB;IAED,IAAI,MAAM,IAAI,cAAc,CAG3B;IAED,IAAI,YAAY,IAAI,mBAAmB,CAGtC;IAED,IAAI,IAAI,IAAI,SAAS,CAGpB;IAED,aAAa,CAAC,OAAO,CAAC,EAAE,gBAAgB,GAAG,mBAAmB;IAK9D,SAAS,IAAI,cAAc,EAAE;IAI7B,cAAc,IAAI,oBAAoB;IAItC,aAAa,IAAI,wBAAwB,EAAE;IAI3C,gBAAgB,CAAC,OAAO,GAAE,4BAAiC,GAAG,qBAAqB,EAAE;IAI/E,gBAAgB,CACpB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,0BAA0B,GACnC,OAAO,CAAC,wBAAwB,CAAC;IAU9B,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKzD,IAAI,OAAO,IAAI,iBAAiB,CAG/B;IAED,IAAI,OAAO,IAAI,cAAc,CAG5B;IAEK,UAAU,CAAC,OAAO,EAAE,gBAAgB,EAAE,eAAe,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"fabric-runtime-state.d.ts","sourceRoot":"","sources":["../src/fabric-runtime-state.ts"],"names":[],"mappings":"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"}
|
|
@@ -9761,6 +9761,7 @@ import { homedir } from "node:os";
|
|
|
9761
9761
|
import { dirname, isAbsolute, resolve, win32 } from "node:path";
|
|
9762
9762
|
import { mkdir, readFile as readFile2, stat, writeFile } from "node:fs/promises";
|
|
9763
9763
|
import { Type as Type4 } from "@oh-my-pi/pi-coding-agent/extensibility/legacy-typebox";
|
|
9764
|
+
import { WriteTool } from "@oh-my-pi/pi-coding-agent/tools/write";
|
|
9764
9765
|
var mutationQueues = /* @__PURE__ */ new Map();
|
|
9765
9766
|
var withFileMutationQueue = async (path20, operation) => {
|
|
9766
9767
|
const previous = mutationQueues.get(path20) ?? Promise.resolve();
|
|
@@ -9778,29 +9779,18 @@ var withFileMutationQueue = async (path20, operation) => {
|
|
|
9778
9779
|
}
|
|
9779
9780
|
};
|
|
9780
9781
|
var URI_LIKE_WRITE_TARGET_RE = /^([a-z][a-z0-9+.-]*):\/{1,2}/i;
|
|
9781
|
-
var
|
|
9782
|
-
path;
|
|
9783
|
-
constructor(message2, path20) {
|
|
9784
|
-
super(message2);
|
|
9785
|
-
this.name = "OmpWriteUriTargetError";
|
|
9786
|
-
this.path = path20;
|
|
9787
|
-
}
|
|
9788
|
-
};
|
|
9789
|
-
var assertFilesystemWriteTarget = (candidate, reported) => {
|
|
9782
|
+
var uriLikeScheme = (candidate) => {
|
|
9790
9783
|
const trimmed = candidate.trim();
|
|
9791
|
-
if (win32.isAbsolute(trimmed)) return;
|
|
9792
|
-
|
|
9793
|
-
|
|
9794
|
-
|
|
9795
|
-
|
|
9796
|
-
|
|
9797
|
-
reported
|
|
9798
|
-
);
|
|
9784
|
+
if (win32.isAbsolute(trimmed)) return void 0;
|
|
9785
|
+
return URI_LIKE_WRITE_TARGET_RE.exec(trimmed)?.[1]?.toLowerCase();
|
|
9786
|
+
};
|
|
9787
|
+
var isUriLikeWriteTarget = (filePath) => {
|
|
9788
|
+
const expanded = filePath.startsWith("@") ? filePath.slice(1) : filePath;
|
|
9789
|
+
return uriLikeScheme(expanded.replace(/[\u00a0\u2000-\u200a\u202f\u205f\u3000]/g, " ")) !== void 0;
|
|
9799
9790
|
};
|
|
9800
9791
|
var resolvePreviewPath = (filePath, cwd) => {
|
|
9801
9792
|
let expanded = filePath.startsWith("@") ? filePath.slice(1) : filePath;
|
|
9802
9793
|
expanded = expanded.replace(/[\u00a0\u2000-\u200a\u202f\u205f\u3000]/g, " ");
|
|
9803
|
-
assertFilesystemWriteTarget(expanded, filePath);
|
|
9804
9794
|
if (expanded === "~") expanded = homedir();
|
|
9805
9795
|
else if (expanded.startsWith("~/")) expanded = homedir() + expanded.slice(1);
|
|
9806
9796
|
return isAbsolute(expanded) ? expanded : resolve(cwd, expanded);
|
|
@@ -9837,7 +9827,7 @@ var readExistingFileForPreview = async (filePath, cwd, nextContent) => {
|
|
|
9837
9827
|
return skipped("previous content unavailable", fileStat.size);
|
|
9838
9828
|
}
|
|
9839
9829
|
};
|
|
9840
|
-
var createPreviewWriteToolDefinition = (cwd) => {
|
|
9830
|
+
var createPreviewWriteToolDefinition = (cwd, session) => {
|
|
9841
9831
|
const original = {
|
|
9842
9832
|
name: "write",
|
|
9843
9833
|
label: "Write",
|
|
@@ -9849,6 +9839,21 @@ var createPreviewWriteToolDefinition = (cwd) => {
|
|
|
9849
9839
|
...original,
|
|
9850
9840
|
async execute(_toolCallId, params, signal) {
|
|
9851
9841
|
const { path: path20, content } = params;
|
|
9842
|
+
if (isUriLikeWriteTarget(path20)) {
|
|
9843
|
+
if (session === void 0) {
|
|
9844
|
+
throw new Error(
|
|
9845
|
+
`Refusing to write '${path20}': URI-like targets need a host session to resolve. Prefix the path with './' to create a literal file by that name.`
|
|
9846
|
+
);
|
|
9847
|
+
}
|
|
9848
|
+
return await new WriteTool(session).execute(
|
|
9849
|
+
_toolCallId,
|
|
9850
|
+
params,
|
|
9851
|
+
signal,
|
|
9852
|
+
(() => {
|
|
9853
|
+
}),
|
|
9854
|
+
{ signal }
|
|
9855
|
+
);
|
|
9856
|
+
}
|
|
9852
9857
|
const absolutePath = resolvePreviewPath(path20, cwd);
|
|
9853
9858
|
return withFileMutationQueue(absolutePath, async () => {
|
|
9854
9859
|
const throwIfAborted2 = () => {
|
|
@@ -9879,13 +9884,19 @@ var createPreviewWriteToolDefinition = (cwd) => {
|
|
|
9879
9884
|
var MAX_RENDERER_ARGUMENT_CHARS = 2e5;
|
|
9880
9885
|
var GUEST_READ_LINE_LIMIT = 1e5;
|
|
9881
9886
|
var MAX_REPLACE_ALL_FILE_CHARS = 2e6;
|
|
9887
|
+
var sessionIdentity;
|
|
9888
|
+
var setOmpSessionIdentity = (identity) => {
|
|
9889
|
+
sessionIdentity = identity;
|
|
9890
|
+
};
|
|
9882
9891
|
var createNativeSession = (cwd, artifactPaths) => {
|
|
9883
9892
|
const artifactRoot = artifactPaths ? mkdtempSync(path14.join(os2.tmpdir(), "omp-fabric-bash-")) : void 0;
|
|
9884
9893
|
return {
|
|
9885
9894
|
cwd,
|
|
9886
9895
|
hasUI: false,
|
|
9887
9896
|
hasEditTool: false,
|
|
9888
|
-
getSessionFile: () => null,
|
|
9897
|
+
getSessionFile: () => sessionIdentity?.getSessionFile?.() ?? null,
|
|
9898
|
+
getSessionId: () => sessionIdentity?.getSessionId?.() ?? null,
|
|
9899
|
+
getArtifactsDir: () => sessionIdentity?.getArtifactsDir?.() ?? null,
|
|
9889
9900
|
getSessionSpawns: () => null,
|
|
9890
9901
|
settings: Settings.isolated({
|
|
9891
9902
|
readLineNumbers: false,
|
|
@@ -10444,7 +10455,7 @@ var OmpToolsProvider = class _OmpToolsProvider {
|
|
|
10444
10455
|
read: createNativeReadToolDefinition(cwd),
|
|
10445
10456
|
bash: createNativeBashToolDefinition(cwd, this.#artifactPaths),
|
|
10446
10457
|
edit: createNativeReplaceEditToolDefinition(cwd),
|
|
10447
|
-
write: createPreviewWriteToolDefinition(cwd),
|
|
10458
|
+
write: createPreviewWriteToolDefinition(cwd, createNativeSession(cwd)),
|
|
10448
10459
|
grep: createGrepDefinitionWithSkip(cwd),
|
|
10449
10460
|
find: createFindDefinitionWithFilters(cwd),
|
|
10450
10461
|
ls: createLsToolDefinition(cwd)
|
|
@@ -14162,6 +14173,11 @@ var FabricRuntimeState = class {
|
|
|
14162
14173
|
const effectiveFullCodeMode = this.#config.fullCodeMode || enforceSchema;
|
|
14163
14174
|
const capturedToolsProvider = effectiveFullCodeMode && (this.#config.capture.enabled || enforceSchema) ? new CapturedToolsProvider(this.capturedTools) : void 0;
|
|
14164
14175
|
if (effectiveFullCodeMode) {
|
|
14176
|
+
setOmpSessionIdentity({
|
|
14177
|
+
getSessionId: () => context.sessionManager.getSessionId(),
|
|
14178
|
+
getArtifactsDir: () => context.sessionManager.getArtifactsDir(),
|
|
14179
|
+
getSessionFile: () => context.sessionManager.getSessionFile() ?? null
|
|
14180
|
+
});
|
|
14165
14181
|
await installBuiltin(createProviderComponent({
|
|
14166
14182
|
provider: "omp",
|
|
14167
14183
|
description: "OMP core tools adapter",
|