@stigmer/react 0.0.53 → 0.0.55
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/execution/ArtifactCard.d.ts +11 -1
- package/execution/ArtifactCard.d.ts.map +1 -1
- package/execution/ArtifactCard.js +22 -3
- package/execution/ArtifactCard.js.map +1 -1
- package/execution/ArtifactPreviewModal.d.ts.map +1 -1
- package/execution/ArtifactPreviewModal.js +1 -1
- package/execution/ArtifactPreviewModal.js.map +1 -1
- package/execution/ArtifactsWidget.d.ts +26 -19
- package/execution/ArtifactsWidget.d.ts.map +1 -1
- package/execution/ArtifactsWidget.js +32 -26
- package/execution/ArtifactsWidget.js.map +1 -1
- package/execution/MessageThread.d.ts +10 -1
- package/execution/MessageThread.d.ts.map +1 -1
- package/execution/MessageThread.js +21 -17
- package/execution/MessageThread.js.map +1 -1
- package/execution/SandboxContext.d.ts +32 -0
- package/execution/SandboxContext.d.ts.map +1 -0
- package/execution/SandboxContext.js +26 -0
- package/execution/SandboxContext.js.map +1 -0
- package/execution/SetupProgress.d.ts +23 -13
- package/execution/SetupProgress.d.ts.map +1 -1
- package/execution/SetupProgress.js +18 -12
- package/execution/SetupProgress.js.map +1 -1
- package/execution/ToolArgsView.d.ts.map +1 -1
- package/execution/ToolArgsView.js +3 -1
- package/execution/ToolArgsView.js.map +1 -1
- package/execution/ToolCallDetail.d.ts.map +1 -1
- package/execution/ToolCallDetail.js +3 -1
- package/execution/ToolCallDetail.js.map +1 -1
- package/execution/ToolCallItem.d.ts.map +1 -1
- package/execution/ToolCallItem.js +7 -1
- package/execution/ToolCallItem.js.map +1 -1
- package/execution/WriteBackCard.d.ts +34 -0
- package/execution/WriteBackCard.d.ts.map +1 -0
- package/execution/WriteBackCard.js +75 -0
- package/execution/WriteBackCard.js.map +1 -0
- package/execution/WriteBacksWidget.d.ts +49 -0
- package/execution/WriteBacksWidget.d.ts.map +1 -0
- package/execution/WriteBacksWidget.js +44 -0
- package/execution/WriteBacksWidget.js.map +1 -0
- package/execution/__tests__/file-path-resolver.test.d.ts +2 -0
- package/execution/__tests__/file-path-resolver.test.d.ts.map +1 -0
- package/execution/__tests__/file-path-resolver.test.js +180 -0
- package/execution/__tests__/file-path-resolver.test.js.map +1 -0
- package/execution/file-path-resolver.d.ts +3 -3
- package/execution/file-path-resolver.d.ts.map +1 -1
- package/execution/file-path-resolver.js +23 -12
- package/execution/file-path-resolver.js.map +1 -1
- package/execution/index.d.ts +9 -0
- package/execution/index.d.ts.map +1 -1
- package/execution/index.js +5 -0
- package/execution/index.js.map +1 -1
- package/execution/sandbox-path-normalizer.d.ts +46 -0
- package/execution/sandbox-path-normalizer.d.ts.map +1 -0
- package/execution/sandbox-path-normalizer.js +73 -0
- package/execution/sandbox-path-normalizer.js.map +1 -0
- package/execution/useArtifactContent.d.ts +5 -1
- package/execution/useArtifactContent.d.ts.map +1 -1
- package/execution/useArtifactContent.js +6 -2
- package/execution/useArtifactContent.js.map +1 -1
- package/execution/useWorkspaceWriteBacks.d.ts +40 -0
- package/execution/useWorkspaceWriteBacks.d.ts.map +1 -0
- package/execution/useWorkspaceWriteBacks.js +41 -0
- package/execution/useWorkspaceWriteBacks.js.map +1 -0
- package/github/GitHubRepoPicker.d.ts +5 -2
- package/github/GitHubRepoPicker.d.ts.map +1 -1
- package/github/GitHubRepoPicker.js +133 -36
- package/github/GitHubRepoPicker.js.map +1 -1
- package/github/index.d.ts +1 -0
- package/github/index.d.ts.map +1 -1
- package/github/index.js +1 -0
- package/github/index.js.map +1 -1
- package/github/useGitHubSearch.d.ts +20 -0
- package/github/useGitHubSearch.d.ts.map +1 -0
- package/github/useGitHubSearch.js +127 -0
- package/github/useGitHubSearch.js.map +1 -0
- package/index.d.ts +6 -6
- package/index.d.ts.map +1 -1
- package/index.js +3 -3
- package/index.js.map +1 -1
- package/package.json +4 -4
- package/session/index.d.ts +4 -0
- package/session/index.d.ts.map +1 -1
- package/session/index.js +2 -0
- package/session/index.js.map +1 -1
- package/session/useSessionArtifacts.d.ts +73 -0
- package/session/useSessionArtifacts.d.ts.map +1 -0
- package/session/useSessionArtifacts.js +95 -0
- package/session/useSessionArtifacts.js.map +1 -0
- package/session/useSessionWriteBacks.d.ts +56 -0
- package/session/useSessionWriteBacks.d.ts.map +1 -0
- package/session/useSessionWriteBacks.js +56 -0
- package/session/useSessionWriteBacks.js.map +1 -0
- package/src/execution/ArtifactCard.tsx +40 -0
- package/src/execution/ArtifactPreviewModal.tsx +2 -0
- package/src/execution/ArtifactsWidget.tsx +67 -43
- package/src/execution/MessageThread.tsx +23 -1
- package/src/execution/SandboxContext.ts +47 -0
- package/src/execution/SetupProgress.tsx +33 -14
- package/src/execution/ToolArgsView.tsx +3 -1
- package/src/execution/ToolCallDetail.tsx +3 -1
- package/src/execution/ToolCallItem.tsx +7 -1
- package/src/execution/WriteBackCard.tsx +210 -0
- package/src/execution/WriteBacksWidget.tsx +82 -0
- package/src/execution/__tests__/file-path-resolver.test.ts +295 -0
- package/src/execution/file-path-resolver.ts +24 -12
- package/src/execution/index.ts +13 -0
- package/src/execution/sandbox-path-normalizer.ts +80 -0
- package/src/execution/useArtifactContent.ts +6 -1
- package/src/execution/useWorkspaceWriteBacks.ts +56 -0
- package/src/github/GitHubRepoPicker.tsx +413 -108
- package/src/github/index.ts +5 -0
- package/src/github/useGitHubSearch.ts +162 -0
- package/src/index.ts +14 -0
- package/src/session/index.ts +12 -0
- package/src/session/useSessionArtifacts.ts +143 -0
- package/src/session/useSessionWriteBacks.ts +94 -0
- package/styles.css +1 -1
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
import { describe, it, expect } from "vitest";
|
|
2
|
+
import { create } from "@bufbuild/protobuf";
|
|
3
|
+
import { WorkspaceEntrySchema, WorkspaceSourceSchema, GitRepoSourceSchema, LocalPathSourceSchema, } from "@stigmer/protos/ai/stigmer/agentic/session/v1/workspace_pb";
|
|
4
|
+
import { classifyPath, resolveGitBrowseUrl, resolvePathAction, } from "../file-path-resolver";
|
|
5
|
+
// ---------------------------------------------------------------------------
|
|
6
|
+
// Factory helpers
|
|
7
|
+
// ---------------------------------------------------------------------------
|
|
8
|
+
function gitEntry(name, url, branch = "main") {
|
|
9
|
+
return create(WorkspaceEntrySchema, {
|
|
10
|
+
name,
|
|
11
|
+
source: create(WorkspaceSourceSchema, {
|
|
12
|
+
source: {
|
|
13
|
+
case: "gitRepo",
|
|
14
|
+
value: create(GitRepoSourceSchema, { url, branch, commit: "" }),
|
|
15
|
+
},
|
|
16
|
+
}),
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
function localEntry(name, path) {
|
|
20
|
+
return create(WorkspaceEntrySchema, {
|
|
21
|
+
name,
|
|
22
|
+
source: create(WorkspaceSourceSchema, {
|
|
23
|
+
source: {
|
|
24
|
+
case: "localPath",
|
|
25
|
+
value: create(LocalPathSourceSchema, { path }),
|
|
26
|
+
},
|
|
27
|
+
}),
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
// ---------------------------------------------------------------------------
|
|
31
|
+
// classifyPath
|
|
32
|
+
// ---------------------------------------------------------------------------
|
|
33
|
+
describe("classifyPath", () => {
|
|
34
|
+
it("classifies platform paths", () => {
|
|
35
|
+
expect(classifyPath(".stigmer/skills/foo.md")).toEqual({
|
|
36
|
+
kind: "platform",
|
|
37
|
+
subpath: "skills/foo.md",
|
|
38
|
+
});
|
|
39
|
+
});
|
|
40
|
+
it("classifies bare .stigmer directory", () => {
|
|
41
|
+
expect(classifyPath(".stigmer")).toEqual({
|
|
42
|
+
kind: "platform",
|
|
43
|
+
subpath: "",
|
|
44
|
+
});
|
|
45
|
+
});
|
|
46
|
+
it("strips leading slashes from platform paths", () => {
|
|
47
|
+
expect(classifyPath("/.stigmer/inputs/bar")).toEqual({
|
|
48
|
+
kind: "platform",
|
|
49
|
+
subpath: "inputs/bar",
|
|
50
|
+
});
|
|
51
|
+
});
|
|
52
|
+
it("classifies workspace paths", () => {
|
|
53
|
+
expect(classifyPath("src/main.go")).toEqual({
|
|
54
|
+
kind: "workspace",
|
|
55
|
+
remainder: "src/main.go",
|
|
56
|
+
});
|
|
57
|
+
});
|
|
58
|
+
it("strips leading slashes from workspace paths", () => {
|
|
59
|
+
expect(classifyPath("/src/main.go")).toEqual({
|
|
60
|
+
kind: "workspace",
|
|
61
|
+
remainder: "src/main.go",
|
|
62
|
+
});
|
|
63
|
+
});
|
|
64
|
+
});
|
|
65
|
+
// ---------------------------------------------------------------------------
|
|
66
|
+
// resolveGitBrowseUrl
|
|
67
|
+
// ---------------------------------------------------------------------------
|
|
68
|
+
describe("resolveGitBrowseUrl", () => {
|
|
69
|
+
it("constructs a correct GitHub blob URL", () => {
|
|
70
|
+
expect(resolveGitBrowseUrl("https://github.com/acme/app.git", "main", "", "src/index.ts")).toBe("https://github.com/acme/app/blob/main/src/index.ts");
|
|
71
|
+
});
|
|
72
|
+
it("prefers commit over branch", () => {
|
|
73
|
+
expect(resolveGitBrowseUrl("https://github.com/acme/app.git", "main", "abc123", "README.md")).toBe("https://github.com/acme/app/blob/abc123/README.md");
|
|
74
|
+
});
|
|
75
|
+
it("falls back to HEAD when both branch and commit are empty", () => {
|
|
76
|
+
expect(resolveGitBrowseUrl("https://github.com/acme/app.git", "", "", "README.md")).toBe("https://github.com/acme/app/blob/HEAD/README.md");
|
|
77
|
+
});
|
|
78
|
+
it("returns null for non-GitHub hosts", () => {
|
|
79
|
+
expect(resolveGitBrowseUrl("https://gitlab.com/acme/app.git", "main", "", "src/main.go")).toBeNull();
|
|
80
|
+
});
|
|
81
|
+
it("returns null for invalid URLs", () => {
|
|
82
|
+
expect(resolveGitBrowseUrl("not-a-url", "main", "", "file.txt")).toBeNull();
|
|
83
|
+
});
|
|
84
|
+
it("strips duplicate org/repo prefix from relPath", () => {
|
|
85
|
+
expect(resolveGitBrowseUrl("https://github.com/plantonhq/agent-fleet.git", "main", "", "plantonhq/agent-fleet/mcp-servers/mcp-server-planton.yaml")).toBe("https://github.com/plantonhq/agent-fleet/blob/main/mcp-servers/mcp-server-planton.yaml");
|
|
86
|
+
});
|
|
87
|
+
it("does not strip when relPath shares a partial prefix", () => {
|
|
88
|
+
expect(resolveGitBrowseUrl("https://github.com/acme/app.git", "main", "", "acme/other-thing/file.txt")).toBe("https://github.com/acme/app/blob/main/acme/other-thing/file.txt");
|
|
89
|
+
});
|
|
90
|
+
it("handles clone URLs without .git suffix", () => {
|
|
91
|
+
expect(resolveGitBrowseUrl("https://github.com/acme/app", "main", "", "src/lib.rs")).toBe("https://github.com/acme/app/blob/main/src/lib.rs");
|
|
92
|
+
});
|
|
93
|
+
});
|
|
94
|
+
// ---------------------------------------------------------------------------
|
|
95
|
+
// resolvePathAction — integration (exercises matchWorkspaceEntry internally)
|
|
96
|
+
// ---------------------------------------------------------------------------
|
|
97
|
+
describe("resolvePathAction", () => {
|
|
98
|
+
it("returns copy for empty path", () => {
|
|
99
|
+
const result = resolvePathAction("", []);
|
|
100
|
+
expect(result.action).toBe("copy");
|
|
101
|
+
});
|
|
102
|
+
it("returns copy for platform paths", () => {
|
|
103
|
+
const entries = [gitEntry("app", "https://github.com/acme/app.git")];
|
|
104
|
+
const result = resolvePathAction(".stigmer/skills/foo.md", entries);
|
|
105
|
+
expect(result.action).toBe("copy");
|
|
106
|
+
});
|
|
107
|
+
it("returns copy when no workspace entries", () => {
|
|
108
|
+
const result = resolvePathAction("src/main.go", []);
|
|
109
|
+
expect(result.action).toBe("copy");
|
|
110
|
+
});
|
|
111
|
+
describe("single git workspace entry", () => {
|
|
112
|
+
const entries = [
|
|
113
|
+
gitEntry("agent-fleet", "https://github.com/plantonhq/agent-fleet.git"),
|
|
114
|
+
];
|
|
115
|
+
it("produces a GitHub link for a relative path", () => {
|
|
116
|
+
const result = resolvePathAction("mcp-servers/mcp-server-planton.yaml", entries);
|
|
117
|
+
expect(result).toEqual({
|
|
118
|
+
action: "link",
|
|
119
|
+
url: "https://github.com/plantonhq/agent-fleet/blob/main/mcp-servers/mcp-server-planton.yaml",
|
|
120
|
+
tooltip: "Open on GitHub",
|
|
121
|
+
});
|
|
122
|
+
});
|
|
123
|
+
});
|
|
124
|
+
describe("multiple git workspace entries — first-segment match", () => {
|
|
125
|
+
const entries = [
|
|
126
|
+
gitEntry("mcp-server-planton", "https://github.com/plantonhq/mcp-server-planton.git"),
|
|
127
|
+
gitEntry("agent-fleet", "https://github.com/plantonhq/agent-fleet.git"),
|
|
128
|
+
];
|
|
129
|
+
it("matches entry by first path segment and strips it", () => {
|
|
130
|
+
const result = resolvePathAction("agent-fleet/mcp-servers/mcp-server-planton.yaml", entries);
|
|
131
|
+
expect(result).toEqual({
|
|
132
|
+
action: "link",
|
|
133
|
+
url: "https://github.com/plantonhq/agent-fleet/blob/main/mcp-servers/mcp-server-planton.yaml",
|
|
134
|
+
tooltip: "Open on GitHub",
|
|
135
|
+
});
|
|
136
|
+
});
|
|
137
|
+
});
|
|
138
|
+
describe("multiple git workspace entries — deep segment match (bug fix)", () => {
|
|
139
|
+
const entries = [
|
|
140
|
+
gitEntry("mcp-server-planton", "https://github.com/plantonhq/mcp-server-planton.git"),
|
|
141
|
+
gitEntry("agent-fleet", "https://github.com/plantonhq/agent-fleet.git"),
|
|
142
|
+
];
|
|
143
|
+
it("matches entry by deeper segment when org prefix is present", () => {
|
|
144
|
+
const result = resolvePathAction("plantonhq/agent-fleet/mcp-servers/mcp-server-planton.yaml", entries);
|
|
145
|
+
expect(result).toEqual({
|
|
146
|
+
action: "link",
|
|
147
|
+
url: "https://github.com/plantonhq/agent-fleet/blob/main/mcp-servers/mcp-server-planton.yaml",
|
|
148
|
+
tooltip: "Open on GitHub",
|
|
149
|
+
});
|
|
150
|
+
});
|
|
151
|
+
});
|
|
152
|
+
describe("fallback to first entry when no segment matches", () => {
|
|
153
|
+
const entries = [
|
|
154
|
+
gitEntry("my-app", "https://github.com/acme/my-app.git"),
|
|
155
|
+
gitEntry("my-lib", "https://github.com/acme/my-lib.git"),
|
|
156
|
+
];
|
|
157
|
+
it("falls back to entries[0] with full path as relPath", () => {
|
|
158
|
+
const result = resolvePathAction("unknown/path/file.txt", entries);
|
|
159
|
+
expect(result).toEqual({
|
|
160
|
+
action: "link",
|
|
161
|
+
url: "https://github.com/acme/my-app/blob/main/unknown/path/file.txt",
|
|
162
|
+
tooltip: "Open on GitHub",
|
|
163
|
+
});
|
|
164
|
+
});
|
|
165
|
+
});
|
|
166
|
+
describe("local path workspace entry", () => {
|
|
167
|
+
const entries = [
|
|
168
|
+
localEntry("my-app", "/Users/dev/projects/my-app"),
|
|
169
|
+
];
|
|
170
|
+
it("joins local path for copy action", () => {
|
|
171
|
+
const result = resolvePathAction("src/main.go", entries);
|
|
172
|
+
expect(result).toEqual({
|
|
173
|
+
action: "copy",
|
|
174
|
+
value: "/Users/dev/projects/my-app/src/main.go",
|
|
175
|
+
tooltip: "Copy path",
|
|
176
|
+
});
|
|
177
|
+
});
|
|
178
|
+
});
|
|
179
|
+
});
|
|
180
|
+
//# sourceMappingURL=file-path-resolver.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-path-resolver.test.js","sourceRoot":"","sources":["../../../src/execution/__tests__/file-path-resolver.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -52,9 +52,9 @@ export type ResolvedPathAction = {
|
|
|
52
52
|
* 1. **Platform paths** (`.stigmer/` prefix) → copy raw path.
|
|
53
53
|
* 2. **Workspace paths** → match against workspace entries:
|
|
54
54
|
* - Single entry: treat path as relative to that entry.
|
|
55
|
-
* - Multiple entries:
|
|
56
|
-
*
|
|
57
|
-
*
|
|
55
|
+
* - Multiple entries: scan path segments for an entry name match
|
|
56
|
+
* (handles org-prefixed paths like `plantonhq/agent-fleet/...`).
|
|
57
|
+
* Unmatched paths fall back to the first entry.
|
|
58
58
|
* 3. **Git source** → construct GitHub blob URL.
|
|
59
59
|
* 4. **Local source** → join with absolute local path for copy.
|
|
60
60
|
* 5. **Fallback** → copy the raw path.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-path-resolver.d.ts","sourceRoot":"","sources":["../../src/execution/file-path-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4DAA4D,CAAC;AAKjG;;;GAGG;AACH,MAAM,MAAM,kBAAkB,GAC1B;IAAE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAC1D;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAE5D;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,CAU7D;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,GACd,MAAM,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"file-path-resolver.d.ts","sourceRoot":"","sources":["../../src/execution/file-path-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4DAA4D,CAAC;AAKjG;;;GAGG;AACH,MAAM,MAAM,kBAAkB,GAC1B;IAAE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAC1D;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAE5D;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,CAU7D;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,GACd,MAAM,GAAG,IAAI,CA0Bf;AAED;;;GAGG;AACH,MAAM,MAAM,kBAAkB,GAC1B;IAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAC3E;IAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAElF;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,EACZ,gBAAgB,EAAE,SAAS,cAAc,EAAE,GAC1C,kBAAkB,CAqCpB"}
|
|
@@ -44,7 +44,14 @@ export function resolveGitBrowseUrl(gitUrl, branch, commit, relPath) {
|
|
|
44
44
|
if (!repoPath)
|
|
45
45
|
return null;
|
|
46
46
|
const ref = commit || branch || "HEAD";
|
|
47
|
-
|
|
47
|
+
let cleanRelPath = relPath.replace(/^\/+/, "");
|
|
48
|
+
// Guard against relPath that accidentally duplicates the org/repo
|
|
49
|
+
// already encoded in gitUrl (e.g. relPath = "acme/app/src/main.go"
|
|
50
|
+
// when repoPath is "acme/app"). Strip the redundant prefix so the
|
|
51
|
+
// final URL doesn't contain the repo path twice.
|
|
52
|
+
if (cleanRelPath.startsWith(repoPath + "/")) {
|
|
53
|
+
cleanRelPath = cleanRelPath.slice(repoPath.length + 1);
|
|
54
|
+
}
|
|
48
55
|
return `https://github.com/${repoPath}/blob/${ref}/${cleanRelPath}`;
|
|
49
56
|
}
|
|
50
57
|
/**
|
|
@@ -55,9 +62,9 @@ export function resolveGitBrowseUrl(gitUrl, branch, commit, relPath) {
|
|
|
55
62
|
* 1. **Platform paths** (`.stigmer/` prefix) → copy raw path.
|
|
56
63
|
* 2. **Workspace paths** → match against workspace entries:
|
|
57
64
|
* - Single entry: treat path as relative to that entry.
|
|
58
|
-
* - Multiple entries:
|
|
59
|
-
*
|
|
60
|
-
*
|
|
65
|
+
* - Multiple entries: scan path segments for an entry name match
|
|
66
|
+
* (handles org-prefixed paths like `plantonhq/agent-fleet/...`).
|
|
67
|
+
* Unmatched paths fall back to the first entry.
|
|
61
68
|
* 3. **Git source** → construct GitHub blob URL.
|
|
62
69
|
* 4. **Local source** → join with absolute local path for copy.
|
|
63
70
|
* 5. **Fallback** → copy the raw path.
|
|
@@ -94,19 +101,23 @@ export function resolvePathAction(path, workspaceEntries) {
|
|
|
94
101
|
/**
|
|
95
102
|
* Matches a workspace-relative path against entries. With a single
|
|
96
103
|
* entry the path is used as-is. With multiple entries the first path
|
|
97
|
-
* segment is tested against entry names
|
|
98
|
-
*
|
|
104
|
+
* segment is tested against entry names. When the first segment
|
|
105
|
+
* doesn't match, deeper segments are scanned — this handles tool-call
|
|
106
|
+
* paths that embed an org prefix (e.g. `plantonhq/agent-fleet/...`
|
|
107
|
+
* where the entry name is `agent-fleet`). Unmatched paths fall back
|
|
108
|
+
* to the first entry.
|
|
99
109
|
*/
|
|
100
110
|
function matchWorkspaceEntry(relPath, entries) {
|
|
101
111
|
if (entries.length === 1) {
|
|
102
112
|
return { entry: entries[0], relPath };
|
|
103
113
|
}
|
|
104
|
-
const
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
114
|
+
const segments = relPath.split("/");
|
|
115
|
+
for (let i = 0; i < segments.length; i++) {
|
|
116
|
+
for (const entry of entries) {
|
|
117
|
+
if (entry.name === segments[i]) {
|
|
118
|
+
const rest = segments.slice(i + 1).join("/");
|
|
119
|
+
return { entry, relPath: rest };
|
|
120
|
+
}
|
|
110
121
|
}
|
|
111
122
|
}
|
|
112
123
|
return { entry: entries[0], relPath };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-path-resolver.js","sourceRoot":"","sources":["../../src/execution/file-path-resolver.ts"],"names":[],"mappings":"AAEA,MAAM,eAAe,GAAG,WAAW,CAAC;AACpC,MAAM,iBAAiB,GAAG,UAAU,CAAC;AAUrC;;;;;;;GAOG;AACH,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAEvC,IAAI,KAAK,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;QACtC,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC;IAC5E,CAAC;IACD,IAAI,KAAK,KAAK,iBAAiB,EAAE,CAAC;QAChC,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IAC3C,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;AACjD,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,mBAAmB,CACjC,MAAc,EACd,MAAc,EACd,MAAc,EACd,OAAe;IAEf,IAAI,GAAQ,CAAC;IACb,IAAI,CAAC;QACH,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;IACxB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,GAAG,CAAC,QAAQ,KAAK,YAAY;QAAE,OAAO,IAAI,CAAC;IAE/C,mEAAmE;IACnE,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAC5E,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IAE3B,MAAM,GAAG,GAAG,MAAM,IAAI,MAAM,IAAI,MAAM,CAAC;IACvC,
|
|
1
|
+
{"version":3,"file":"file-path-resolver.js","sourceRoot":"","sources":["../../src/execution/file-path-resolver.ts"],"names":[],"mappings":"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"}
|
package/execution/index.d.ts
CHANGED
|
@@ -9,6 +9,10 @@ export { useExecutionArtifacts } from "./useExecutionArtifacts";
|
|
|
9
9
|
export type { UseExecutionArtifactsReturn } from "./useExecutionArtifacts";
|
|
10
10
|
export { useArtifactContent } from "./useArtifactContent";
|
|
11
11
|
export type { UseArtifactContentReturn } from "./useArtifactContent";
|
|
12
|
+
export { useWorkspaceWriteBacks } from "./useWorkspaceWriteBacks";
|
|
13
|
+
export type { UseWorkspaceWriteBacksReturn } from "./useWorkspaceWriteBacks";
|
|
14
|
+
export { WriteBackCard } from "./WriteBackCard";
|
|
15
|
+
export type { WriteBackCardProps } from "./WriteBackCard";
|
|
12
16
|
export { isTextArtifact, isArtifactExpired, formatArtifactSize, getArtifactExtension, getFileExtension, getArtifactRenderMode, } from "./artifact-utils";
|
|
13
17
|
export type { ArtifactRenderMode } from "./artifact-utils";
|
|
14
18
|
export { ExecutionPhaseBadge } from "./ExecutionPhaseBadge";
|
|
@@ -51,12 +55,17 @@ export { ArtifactPreviewModal } from "./ArtifactPreviewModal";
|
|
|
51
55
|
export type { ArtifactPreviewModalProps } from "./ArtifactPreviewModal";
|
|
52
56
|
export { ArtifactsWidget } from "./ArtifactsWidget";
|
|
53
57
|
export type { ArtifactsWidgetProps } from "./ArtifactsWidget";
|
|
58
|
+
export { WriteBacksWidget } from "./WriteBacksWidget";
|
|
59
|
+
export type { WriteBacksWidgetProps } from "./WriteBacksWidget";
|
|
54
60
|
export { resolveToolCategory, extractPrimaryArg, extractPrimaryArgFromPreview, humanizeToolName, } from "./tool-categories";
|
|
55
61
|
export type { ToolCategory, ToolCategoryInfo } from "./tool-categories";
|
|
56
62
|
export { FilePathLink } from "./FilePathLink";
|
|
57
63
|
export type { FilePathLinkProps } from "./FilePathLink";
|
|
58
64
|
export { FilePathContext } from "./FilePathContext";
|
|
59
65
|
export type { FilePathContextValue } from "./FilePathContext";
|
|
66
|
+
export { normalizeSandboxPaths } from "./sandbox-path-normalizer";
|
|
67
|
+
export { SandboxContext, useSandboxNormalize } from "./SandboxContext";
|
|
68
|
+
export type { SandboxContextValue } from "./SandboxContext";
|
|
60
69
|
export { classifyPath, resolveGitBrowseUrl, resolvePathAction } from "./file-path-resolver";
|
|
61
70
|
export type { PathClassification, ResolvedPathAction } from "./file-path-resolver";
|
|
62
71
|
export { useSessionVariables } from "./useSessionVariables";
|
package/execution/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/execution/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/execution/index.ts"],"names":[],"mappings":"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"}
|
package/execution/index.js
CHANGED
|
@@ -4,6 +4,8 @@ export { useExecutionStream } from "./useExecutionStream";
|
|
|
4
4
|
export { useExecutionUsage, aggregateUsage } from "./useExecutionUsage";
|
|
5
5
|
export { useExecutionArtifacts } from "./useExecutionArtifacts";
|
|
6
6
|
export { useArtifactContent } from "./useArtifactContent";
|
|
7
|
+
export { useWorkspaceWriteBacks } from "./useWorkspaceWriteBacks";
|
|
8
|
+
export { WriteBackCard } from "./WriteBackCard";
|
|
7
9
|
export { isTextArtifact, isArtifactExpired, formatArtifactSize, getArtifactExtension, getFileExtension, getArtifactRenderMode, } from "./artifact-utils";
|
|
8
10
|
export { ExecutionPhaseBadge } from "./ExecutionPhaseBadge";
|
|
9
11
|
export { SetupProgress } from "./SetupProgress";
|
|
@@ -25,9 +27,12 @@ export { ArtifactCard } from "./ArtifactCard";
|
|
|
25
27
|
export { ArtifactContentRenderer } from "./ArtifactContentRenderer";
|
|
26
28
|
export { ArtifactPreviewModal } from "./ArtifactPreviewModal";
|
|
27
29
|
export { ArtifactsWidget } from "./ArtifactsWidget";
|
|
30
|
+
export { WriteBacksWidget } from "./WriteBacksWidget";
|
|
28
31
|
export { resolveToolCategory, extractPrimaryArg, extractPrimaryArgFromPreview, humanizeToolName, } from "./tool-categories";
|
|
29
32
|
export { FilePathLink } from "./FilePathLink";
|
|
30
33
|
export { FilePathContext } from "./FilePathContext";
|
|
34
|
+
export { normalizeSandboxPaths } from "./sandbox-path-normalizer";
|
|
35
|
+
export { SandboxContext, useSandboxNormalize } from "./SandboxContext";
|
|
31
36
|
export { classifyPath, resolveGitBrowseUrl, resolvePathAction } from "./file-path-resolver";
|
|
32
37
|
export { useSessionVariables } from "./useSessionVariables";
|
|
33
38
|
export { SessionVariablesInput } from "./SessionVariablesInput";
|
package/execution/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/execution/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAOpE,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG1D,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAGxE,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAGhE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG1D,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAG5D,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGhD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGhD,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGlE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAG7F,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG9C,OAAO,EACL,eAAe,EACf,cAAc,EACd,oBAAoB,EACpB,YAAY,EACZ,aAAa,EACb,qBAAqB,EACrB,UAAU,EACV,YAAY,EACZ,QAAQ,EACR,cAAc,GACf,MAAM,6BAA6B,CAAC;AAOrC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG9C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGpD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG9C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGhD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGhD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAGxD,OAAO,EAAE,oBAAoB,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAG5F,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAGxD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG9C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG9C,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAGpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAG9D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGpD,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,4BAA4B,EAC5B,gBAAgB,GACjB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG9C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGpD,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAG5F,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAM5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/execution/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAOpE,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG1D,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAGxE,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAGhE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG1D,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAGlE,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGhD,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAG5D,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGhD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGhD,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGlE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAG7F,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG9C,OAAO,EACL,eAAe,EACf,cAAc,EACd,oBAAoB,EACpB,YAAY,EACZ,aAAa,EACb,qBAAqB,EACrB,UAAU,EACV,YAAY,EACZ,QAAQ,EACR,cAAc,GACf,MAAM,6BAA6B,CAAC;AAOrC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG9C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGpD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG9C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGhD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGhD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAGxD,OAAO,EAAE,oBAAoB,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAG5F,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAGxD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG9C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG9C,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAGpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAG9D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGtD,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,4BAA4B,EAC5B,gBAAgB,GACjB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG9C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAGvE,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAG5F,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAM5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Display-time normalization for sandbox workspace paths.
|
|
3
|
+
*
|
|
4
|
+
* Mirrors the Python `humanize_sandbox_paths` in
|
|
5
|
+
* `graphton.core.backends.platform_mount` — same semantics, same
|
|
6
|
+
* replacement order. The SDK version acts as a safety net for
|
|
7
|
+
* historical data (persisted before backend humanization was added)
|
|
8
|
+
* and streaming edge cases.
|
|
9
|
+
*
|
|
10
|
+
* @module
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* Replace absolute sandbox workspace paths with workspace-relative
|
|
14
|
+
* display paths.
|
|
15
|
+
*
|
|
16
|
+
* Performs three ordered replacements:
|
|
17
|
+
*
|
|
18
|
+
* 1. `workspaceRoot + "/"` → empty string (makes paths workspace-relative)
|
|
19
|
+
* 2. `workspaceRoot` (exact) → `"."` (the workspace root itself)
|
|
20
|
+
* 3. Parent of `workspaceRoot` (sandbox home) → `"~"` (Unix convention)
|
|
21
|
+
*
|
|
22
|
+
* Returns `text` unchanged when `workspaceRoot` is empty.
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* ```ts
|
|
26
|
+
* normalizeSandboxPaths(
|
|
27
|
+
* "ls /home/daytona/workspace/plantonhq/",
|
|
28
|
+
* "/home/daytona/workspace",
|
|
29
|
+
* );
|
|
30
|
+
* // => "ls plantonhq/"
|
|
31
|
+
*
|
|
32
|
+
* normalizeSandboxPaths(
|
|
33
|
+
* "cd /home/daytona/workspace && ls",
|
|
34
|
+
* "/home/daytona/workspace",
|
|
35
|
+
* );
|
|
36
|
+
* // => "cd . && ls"
|
|
37
|
+
*
|
|
38
|
+
* normalizeSandboxPaths(
|
|
39
|
+
* "cat /home/daytona/.bashrc",
|
|
40
|
+
* "/home/daytona/workspace",
|
|
41
|
+
* );
|
|
42
|
+
* // => "cat ~/.bashrc"
|
|
43
|
+
* ```
|
|
44
|
+
*/
|
|
45
|
+
export declare function normalizeSandboxPaths(text: string, workspaceRoot: string): string;
|
|
46
|
+
//# sourceMappingURL=sandbox-path-normalizer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sandbox-path-normalizer.d.ts","sourceRoot":"","sources":["../../src/execution/sandbox-path-normalizer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,MAAM,GACpB,MAAM,CAoBR"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Display-time normalization for sandbox workspace paths.
|
|
3
|
+
*
|
|
4
|
+
* Mirrors the Python `humanize_sandbox_paths` in
|
|
5
|
+
* `graphton.core.backends.platform_mount` — same semantics, same
|
|
6
|
+
* replacement order. The SDK version acts as a safety net for
|
|
7
|
+
* historical data (persisted before backend humanization was added)
|
|
8
|
+
* and streaming edge cases.
|
|
9
|
+
*
|
|
10
|
+
* @module
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* Replace absolute sandbox workspace paths with workspace-relative
|
|
14
|
+
* display paths.
|
|
15
|
+
*
|
|
16
|
+
* Performs three ordered replacements:
|
|
17
|
+
*
|
|
18
|
+
* 1. `workspaceRoot + "/"` → empty string (makes paths workspace-relative)
|
|
19
|
+
* 2. `workspaceRoot` (exact) → `"."` (the workspace root itself)
|
|
20
|
+
* 3. Parent of `workspaceRoot` (sandbox home) → `"~"` (Unix convention)
|
|
21
|
+
*
|
|
22
|
+
* Returns `text` unchanged when `workspaceRoot` is empty.
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* ```ts
|
|
26
|
+
* normalizeSandboxPaths(
|
|
27
|
+
* "ls /home/daytona/workspace/plantonhq/",
|
|
28
|
+
* "/home/daytona/workspace",
|
|
29
|
+
* );
|
|
30
|
+
* // => "ls plantonhq/"
|
|
31
|
+
*
|
|
32
|
+
* normalizeSandboxPaths(
|
|
33
|
+
* "cd /home/daytona/workspace && ls",
|
|
34
|
+
* "/home/daytona/workspace",
|
|
35
|
+
* );
|
|
36
|
+
* // => "cd . && ls"
|
|
37
|
+
*
|
|
38
|
+
* normalizeSandboxPaths(
|
|
39
|
+
* "cat /home/daytona/.bashrc",
|
|
40
|
+
* "/home/daytona/workspace",
|
|
41
|
+
* );
|
|
42
|
+
* // => "cat ~/.bashrc"
|
|
43
|
+
* ```
|
|
44
|
+
*/
|
|
45
|
+
export function normalizeSandboxPaths(text, workspaceRoot) {
|
|
46
|
+
if (!text || !workspaceRoot)
|
|
47
|
+
return text;
|
|
48
|
+
const wsRoot = workspaceRoot.replace(/\/+$/, "");
|
|
49
|
+
// 1) Strip workspace root prefix (with trailing slash) → workspace-relative
|
|
50
|
+
text = replaceAll(text, wsRoot + "/", "");
|
|
51
|
+
// 2) Replace bare workspace root → "."
|
|
52
|
+
text = replaceAll(text, wsRoot, ".");
|
|
53
|
+
// 3) Replace sandbox home prefix → "~"
|
|
54
|
+
const lastSlash = wsRoot.lastIndexOf("/");
|
|
55
|
+
if (lastSlash > 0) {
|
|
56
|
+
const sandboxHome = wsRoot.slice(0, lastSlash);
|
|
57
|
+
text = replaceAll(text, sandboxHome + "/", "~/");
|
|
58
|
+
text = replaceAll(text, sandboxHome, "~");
|
|
59
|
+
}
|
|
60
|
+
return text;
|
|
61
|
+
}
|
|
62
|
+
function replaceAll(text, search, replacement) {
|
|
63
|
+
if (!search)
|
|
64
|
+
return text;
|
|
65
|
+
let result = text;
|
|
66
|
+
let idx = result.indexOf(search);
|
|
67
|
+
while (idx !== -1) {
|
|
68
|
+
result = result.slice(0, idx) + replacement + result.slice(idx + search.length);
|
|
69
|
+
idx = result.indexOf(search, idx + replacement.length);
|
|
70
|
+
}
|
|
71
|
+
return result;
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=sandbox-path-normalizer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sandbox-path-normalizer.js","sourceRoot":"","sources":["../../src/execution/sandbox-path-normalizer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,MAAM,UAAU,qBAAqB,CACnC,IAAY,EACZ,aAAqB;IAErB,IAAI,CAAC,IAAI,IAAI,CAAC,aAAa;QAAE,OAAO,IAAI,CAAC;IAEzC,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAEjD,4EAA4E;IAC5E,IAAI,GAAG,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,EAAE,EAAE,CAAC,CAAC;IAE1C,uCAAuC;IACvC,IAAI,GAAG,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;IAErC,uCAAuC;IACvC,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAC1C,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;QAClB,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;QAC/C,IAAI,GAAG,UAAU,CAAC,IAAI,EAAE,WAAW,GAAG,GAAG,EAAE,IAAI,CAAC,CAAC;QACjD,IAAI,GAAG,UAAU,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,CAAC,CAAC;IAC5C,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,UAAU,CAAC,IAAY,EAAE,MAAc,EAAE,WAAmB;IACnE,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACzB,IAAI,MAAM,GAAG,IAAI,CAAC;IAClB,IAAI,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACjC,OAAO,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;QAClB,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;QAChF,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;IACzD,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -67,9 +67,13 @@ export interface UseArtifactContentReturn {
|
|
|
67
67
|
* @param storageKey - Storage key from `ExecutionArtifact.storageKey`, or `null` to skip.
|
|
68
68
|
* @param entryPath - For directory artifacts: relative path of a file within
|
|
69
69
|
* the archive to extract. `null` returns the full artifact (existing behavior).
|
|
70
|
+
* @param contentHash - SHA-256 hex digest from `ExecutionArtifact.contentHash`.
|
|
71
|
+
* When the same file is overwritten during execution, the `storageKey` stays
|
|
72
|
+
* stable but `contentHash` changes, triggering a re-fetch so the UI never
|
|
73
|
+
* shows stale content. Pass `undefined` or omit for backwards compatibility.
|
|
70
74
|
*
|
|
71
75
|
* @see useExecutionArtifacts — extracts artifact metadata from an execution
|
|
72
76
|
* @see isTextArtifact — heuristic for whether content is fetchable as text
|
|
73
77
|
*/
|
|
74
|
-
export declare function useArtifactContent(executionId: string | null, storageKey: string | null, entryPath?: string | null): UseArtifactContentReturn;
|
|
78
|
+
export declare function useArtifactContent(executionId: string | null, storageKey: string | null, entryPath?: string | null, contentHash?: string): UseArtifactContentReturn;
|
|
75
79
|
//# sourceMappingURL=useArtifactContent.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useArtifactContent.d.ts","sourceRoot":"","sources":["../../src/execution/useArtifactContent.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,wBAAwB;IACvC;;;;;OAKG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAEhC;;;OAGG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAEpC;;;;OAIG;IACH,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAE9B,qDAAqD;IACrD,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAE5B,0EAA0E;IAC1E,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAE9B;;;OAGG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC;CAC9B;AAED
|
|
1
|
+
{"version":3,"file":"useArtifactContent.d.ts","sourceRoot":"","sources":["../../src/execution/useArtifactContent.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,wBAAwB;IACvC;;;;;OAKG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAEhC;;;OAGG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAEpC;;;;OAIG;IACH,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAE9B,qDAAqD;IACrD,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAE5B,0EAA0E;IAC1E,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAE9B;;;OAGG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC;CAC9B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACH,wBAAgB,kBAAkB,CAChC,WAAW,EAAE,MAAM,GAAG,IAAI,EAC1B,UAAU,EAAE,MAAM,GAAG,IAAI,EACzB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,EACzB,WAAW,CAAC,EAAE,MAAM,GACnB,wBAAwB,CAiE1B"}
|
|
@@ -43,11 +43,15 @@ import { useStigmer } from "../hooks";
|
|
|
43
43
|
* @param storageKey - Storage key from `ExecutionArtifact.storageKey`, or `null` to skip.
|
|
44
44
|
* @param entryPath - For directory artifacts: relative path of a file within
|
|
45
45
|
* the archive to extract. `null` returns the full artifact (existing behavior).
|
|
46
|
+
* @param contentHash - SHA-256 hex digest from `ExecutionArtifact.contentHash`.
|
|
47
|
+
* When the same file is overwritten during execution, the `storageKey` stays
|
|
48
|
+
* stable but `contentHash` changes, triggering a re-fetch so the UI never
|
|
49
|
+
* shows stale content. Pass `undefined` or omit for backwards compatibility.
|
|
46
50
|
*
|
|
47
51
|
* @see useExecutionArtifacts — extracts artifact metadata from an execution
|
|
48
52
|
* @see isTextArtifact — heuristic for whether content is fetchable as text
|
|
49
53
|
*/
|
|
50
|
-
export function useArtifactContent(executionId, storageKey, entryPath) {
|
|
54
|
+
export function useArtifactContent(executionId, storageKey, entryPath, contentHash) {
|
|
51
55
|
const stigmer = useStigmer();
|
|
52
56
|
const [content, setContent] = useState(null);
|
|
53
57
|
const [contentType, setContentType] = useState(null);
|
|
@@ -96,7 +100,7 @@ export function useArtifactContent(executionId, storageKey, entryPath) {
|
|
|
96
100
|
return () => {
|
|
97
101
|
cancelled.current = true;
|
|
98
102
|
};
|
|
99
|
-
}, [executionId, storageKey, entryPath, stigmer, fetchKey]);
|
|
103
|
+
}, [executionId, storageKey, entryPath, contentHash, stigmer, fetchKey]);
|
|
100
104
|
return { content, contentType, isTruncated, isLoading, error, refetch };
|
|
101
105
|
}
|
|
102
106
|
//# sourceMappingURL=useArtifactContent.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useArtifactContent.js","sourceRoot":"","sources":["../../src/execution/useArtifactContent.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,WAAW,EAAE,SAAS,EAAU,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjE,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,+BAA+B,EAAE,MAAM,4DAA4D,CAAC;AAC7G,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAqCtC
|
|
1
|
+
{"version":3,"file":"useArtifactContent.js","sourceRoot":"","sources":["../../src/execution/useArtifactContent.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { AgentExecution } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/api_pb";
|
|
2
|
+
import type { WorkspaceWriteBack } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/writeback_pb";
|
|
3
|
+
export interface UseWorkspaceWriteBacksReturn {
|
|
4
|
+
/** Write-back outcomes for git-backed workspace entries, ordered by workspace entry name. */
|
|
5
|
+
readonly writeBacks: readonly WorkspaceWriteBack[];
|
|
6
|
+
/** `true` when the execution has at least one write-back entry. */
|
|
7
|
+
readonly hasWriteBacks: boolean;
|
|
8
|
+
/** Total number of write-back entries. */
|
|
9
|
+
readonly writeBackCount: number;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Pure derivation hook that extracts workspace write-back data from an
|
|
13
|
+
* {@link AgentExecution} snapshot.
|
|
14
|
+
*
|
|
15
|
+
* Follows the same `useMemo`-based derivation pattern as
|
|
16
|
+
* {@link useExecutionArtifacts}: no side effects, no data fetching.
|
|
17
|
+
* The execution object (typically from {@link useExecutionStream}) is
|
|
18
|
+
* the single input.
|
|
19
|
+
*
|
|
20
|
+
* Returns an empty array when the execution is `null` or has no
|
|
21
|
+
* write-backs, eliminating null-checking at every consumer call site.
|
|
22
|
+
*
|
|
23
|
+
* Each `WorkspaceWriteBack` entry corresponds to a git-backed workspace
|
|
24
|
+
* entry where the platform detected file changes and ran the automatic
|
|
25
|
+
* branch/commit/push/PR workflow.
|
|
26
|
+
*
|
|
27
|
+
* @example
|
|
28
|
+
* ```tsx
|
|
29
|
+
* const { execution } = useExecutionStream(executionId);
|
|
30
|
+
* const { writeBacks, hasWriteBacks } = useWorkspaceWriteBacks(execution);
|
|
31
|
+
*
|
|
32
|
+
* if (hasWriteBacks) {
|
|
33
|
+
* writeBacks.forEach((wb) => console.log(wb.workspaceEntryName, wb.pullRequestUrl));
|
|
34
|
+
* }
|
|
35
|
+
* ```
|
|
36
|
+
*
|
|
37
|
+
* @see useExecutionArtifacts — similar derivation hook for artifacts
|
|
38
|
+
*/
|
|
39
|
+
export declare function useWorkspaceWriteBacks(execution: AgentExecution | null): UseWorkspaceWriteBacksReturn;
|
|
40
|
+
//# sourceMappingURL=useWorkspaceWriteBacks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useWorkspaceWriteBacks.d.ts","sourceRoot":"","sources":["../../src/execution/useWorkspaceWriteBacks.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6DAA6D,CAAC;AAClG,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mEAAmE,CAAC;AAE5G,MAAM,WAAW,4BAA4B;IAC3C,6FAA6F;IAC7F,QAAQ,CAAC,UAAU,EAAE,SAAS,kBAAkB,EAAE,CAAC;IACnD,mEAAmE;IACnE,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,0CAA0C;IAC1C,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CACjC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,cAAc,GAAG,IAAI,GAC/B,4BAA4B,CAU9B"}
|