@f5-sales-demo/xcsh 19.102.5 → 19.102.6
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/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"type": "module",
|
|
3
3
|
"name": "@f5-sales-demo/xcsh",
|
|
4
|
-
"version": "19.102.
|
|
4
|
+
"version": "19.102.6",
|
|
5
5
|
"description": "Coding agent CLI with read, bash, edit, write tools and session management",
|
|
6
6
|
"homepage": "https://github.com/f5-sales-demo/xcsh",
|
|
7
7
|
"author": "Can Boluk",
|
|
@@ -57,13 +57,13 @@
|
|
|
57
57
|
"dependencies": {
|
|
58
58
|
"@agentclientprotocol/sdk": "1.3.0",
|
|
59
59
|
"@mozilla/readability": "^0.6",
|
|
60
|
-
"@f5-sales-demo/xcsh-stats": "19.102.
|
|
61
|
-
"@f5-sales-demo/pi-agent-core": "19.102.
|
|
62
|
-
"@f5-sales-demo/pi-ai": "19.102.
|
|
63
|
-
"@f5-sales-demo/pi-natives": "19.102.
|
|
64
|
-
"@f5-sales-demo/pi-resource-management": "19.102.
|
|
65
|
-
"@f5-sales-demo/pi-tui": "19.102.
|
|
66
|
-
"@f5-sales-demo/pi-utils": "19.102.
|
|
60
|
+
"@f5-sales-demo/xcsh-stats": "19.102.6",
|
|
61
|
+
"@f5-sales-demo/pi-agent-core": "19.102.6",
|
|
62
|
+
"@f5-sales-demo/pi-ai": "19.102.6",
|
|
63
|
+
"@f5-sales-demo/pi-natives": "19.102.6",
|
|
64
|
+
"@f5-sales-demo/pi-resource-management": "19.102.6",
|
|
65
|
+
"@f5-sales-demo/pi-tui": "19.102.6",
|
|
66
|
+
"@f5-sales-demo/pi-utils": "19.102.6",
|
|
67
67
|
"@sinclair/typebox": "^0.34",
|
|
68
68
|
"@xterm/headless": "^6.0",
|
|
69
69
|
"ajv": "^8.20",
|
|
@@ -17,17 +17,17 @@ export interface BuildInfo {
|
|
|
17
17
|
}
|
|
18
18
|
|
|
19
19
|
export const BUILD_INFO: BuildInfo = {
|
|
20
|
-
"version": "19.102.
|
|
21
|
-
"commit": "
|
|
22
|
-
"shortCommit": "
|
|
20
|
+
"version": "19.102.6",
|
|
21
|
+
"commit": "983ca4f8d682745db27c890d634cb459fc7e3e32",
|
|
22
|
+
"shortCommit": "983ca4f",
|
|
23
23
|
"branch": "main",
|
|
24
|
-
"tag": "v19.102.
|
|
25
|
-
"commitDate": "2026-07-
|
|
26
|
-
"buildDate": "2026-07-
|
|
24
|
+
"tag": "v19.102.6",
|
|
25
|
+
"commitDate": "2026-07-31T01:44:23Z",
|
|
26
|
+
"buildDate": "2026-07-31T02:07:47.614Z",
|
|
27
27
|
"dirty": true,
|
|
28
28
|
"prNumber": "",
|
|
29
29
|
"repoUrl": "https://github.com/f5-sales-demo/xcsh",
|
|
30
30
|
"repoSlug": "f5-sales-demo/xcsh",
|
|
31
|
-
"commitUrl": "https://github.com/f5-sales-demo/xcsh/commit/
|
|
32
|
-
"releaseUrl": "https://github.com/f5-sales-demo/xcsh/releases/tag/v19.102.
|
|
31
|
+
"commitUrl": "https://github.com/f5-sales-demo/xcsh/commit/983ca4f8d682745db27c890d634cb459fc7e3e32",
|
|
32
|
+
"releaseUrl": "https://github.com/f5-sales-demo/xcsh/releases/tag/v19.102.6"
|
|
33
33
|
};
|
|
@@ -1,15 +1,8 @@
|
|
|
1
1
|
<workspace-boundary>
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
- Subdirectories may themselves be separate customers. Reachable does not mean in scope: work in
|
|
9
|
-
the one the task names, state the crossing when the task genuinely spans more than one, and
|
|
10
|
-
**MUST NOT** merge two customers' material into one artifact.
|
|
11
|
-
- A sandbox confines this session's file access, but its boundary is the working directory, not the
|
|
12
|
-
customer subdirectory: nothing refuses a sibling, so the rule above is yours to keep. When the
|
|
13
|
-
sandbox is active a path outside the working directory is refused — that is the boundary working,
|
|
14
|
-
not a tool failure. Say what you needed and why, and **MUST NOT** reach the same path another way.
|
|
2
|
+
Separate tenants may sit side by side — as subdirectories of the working directory, and anywhere
|
|
3
|
+
else you can reach when filesystem isolation is off. Reaching something is not the same as it being
|
|
4
|
+
in scope; keeping tenants apart is your judgment.
|
|
5
|
+
- Work in the one the task names, and say so when the task genuinely spans more than one.
|
|
6
|
+
- You **MUST NOT** open another tenant's material for context, examples, or precedent when the task
|
|
7
|
+
did not ask for it, and **MUST NOT** merge two tenants' material into one artifact.
|
|
15
8
|
</workspace-boundary>
|
|
@@ -543,7 +543,7 @@ export function buildContainmentFence(options: ContainmentOptions): ContainmentF
|
|
|
543
543
|
// ~30 carve-outs to make ordinary tooling work again — every one of them evidence the posture was wrong.
|
|
544
544
|
//
|
|
545
545
|
// What the walk still covers is the part that matters: every level between the workspace and home. With
|
|
546
|
-
// the workspace at `~/MEDDPICC/
|
|
546
|
+
// the workspace at `~/MEDDPICC/CUSTOMER-A`, `~/MEDDPICC` is denied so the `CUSTOMER-B` sibling is unreachable,
|
|
547
547
|
// and with `<container>/<tenant>/repo` every level up to home is denied, so the v19.100.1 cross-tenant
|
|
548
548
|
// regression does not return.
|
|
549
549
|
//
|
|
@@ -620,7 +620,7 @@ export function buildContainmentFence(options: ContainmentOptions): ContainmentF
|
|
|
620
620
|
}
|
|
621
621
|
|
|
622
622
|
// Top-level directories that hold somebody's files. Without these the fence covered only home and
|
|
623
|
-
// the workspace's ancestors, so with the workspace at `~/MEDDPICC/
|
|
623
|
+
// the workspace's ancestors, so with the workspace at `~/MEDDPICC/CUSTOMER-A` another operator's
|
|
624
624
|
// account, an external volume and `/data/globex` were all readable AND writable — measured. The
|
|
625
625
|
// command-text scan was refusing them on the way in, which is exactly why that scan could not
|
|
626
626
|
// simply be stood down (#2624).
|