@f5-sales-demo/xcsh 19.97.0 → 19.98.0
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.
|
|
4
|
+
"version": "19.98.0",
|
|
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.
|
|
61
|
-
"@f5-sales-demo/pi-agent-core": "19.
|
|
62
|
-
"@f5-sales-demo/pi-ai": "19.
|
|
63
|
-
"@f5-sales-demo/pi-natives": "19.
|
|
64
|
-
"@f5-sales-demo/pi-resource-management": "19.
|
|
65
|
-
"@f5-sales-demo/pi-tui": "19.
|
|
66
|
-
"@f5-sales-demo/pi-utils": "19.
|
|
60
|
+
"@f5-sales-demo/xcsh-stats": "19.98.0",
|
|
61
|
+
"@f5-sales-demo/pi-agent-core": "19.98.0",
|
|
62
|
+
"@f5-sales-demo/pi-ai": "19.98.0",
|
|
63
|
+
"@f5-sales-demo/pi-natives": "19.98.0",
|
|
64
|
+
"@f5-sales-demo/pi-resource-management": "19.98.0",
|
|
65
|
+
"@f5-sales-demo/pi-tui": "19.98.0",
|
|
66
|
+
"@f5-sales-demo/pi-utils": "19.98.0",
|
|
67
67
|
"@sinclair/typebox": "^0.34",
|
|
68
68
|
"@xterm/headless": "^6.0",
|
|
69
69
|
"ajv": "^8.20",
|
|
@@ -124,6 +124,7 @@ TOOLS: Discover the workbook before you answer, then reach for the tool that mat
|
|
|
124
124
|
- Use \`read_table\` for structured Excel Tables (it tracks the real extent), \`get_formulas\` to see the formulas behind cells, \`get_cell_metadata\` for cell types/number formats, and \`read_named_range\` to read a defined name.
|
|
125
125
|
- Use \`sort_filter_table\` to sort or filter a Table by column.
|
|
126
126
|
- Use \`read_range\`/\`write_range\` for arbitrary cell ranges (bare or sheet-qualified like Sheet2!A1:B10), and \`list_sheets\` when you only need the tab names.
|
|
127
|
+
- Use \`write_cells\` to fill a formatted template: it takes many single \`{address, value}\` pairs and applies them in one batch, which is what merged cells need (only the top-left of a merge may be written, so a range write fails). Prefer it over a loop of \`write_range\` calls whenever you are placing more than a handful of individual values.
|
|
127
128
|
- Use \`add_sheet\` to build a report on its own tab instead of overwriting the user's data. It is idempotent — an existing tab of that name is reused — so add first, then \`write_range\` block by block, and do not read the sheet back to confirm.
|
|
128
129
|
${OFFICE_NATIVE_TOOLS_NOTE}
|
|
129
130
|
|
|
@@ -17,17 +17,17 @@ export interface BuildInfo {
|
|
|
17
17
|
}
|
|
18
18
|
|
|
19
19
|
export const BUILD_INFO: BuildInfo = {
|
|
20
|
-
"version": "19.
|
|
21
|
-
"commit": "
|
|
22
|
-
"shortCommit": "
|
|
20
|
+
"version": "19.98.0",
|
|
21
|
+
"commit": "d99a5b00bc90410ad18f66eec44f064823087740",
|
|
22
|
+
"shortCommit": "d99a5b0",
|
|
23
23
|
"branch": "main",
|
|
24
|
-
"tag": "v19.
|
|
25
|
-
"commitDate": "2026-07-
|
|
26
|
-
"buildDate": "2026-07-
|
|
24
|
+
"tag": "v19.98.0",
|
|
25
|
+
"commitDate": "2026-07-28T00:35:02Z",
|
|
26
|
+
"buildDate": "2026-07-28T01:00:25.712Z",
|
|
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.
|
|
31
|
+
"commitUrl": "https://github.com/f5-sales-demo/xcsh/commit/d99a5b00bc90410ad18f66eec44f064823087740",
|
|
32
|
+
"releaseUrl": "https://github.com/f5-sales-demo/xcsh/releases/tag/v19.98.0"
|
|
33
33
|
};
|
|
@@ -46,13 +46,6 @@ export interface FleetDeps {
|
|
|
46
46
|
export const GOVERNANCE_REPO = "f5-sales-demo/docs-control";
|
|
47
47
|
export const GOVERNANCE_RELPATH = ".claude/governance.json";
|
|
48
48
|
|
|
49
|
-
/**
|
|
50
|
-
* The organization's pre-rename name. Reads still redirect from it, but pushes are
|
|
51
|
-
* rejected, so a clone left on the old slug looks healthy until the first push
|
|
52
|
-
* fails. Classification keys are bare repository names, so the org does not affect
|
|
53
|
-
* the lookup — but it is worth warning about where we notice it.
|
|
54
|
-
*/
|
|
55
|
-
export const LEGACY_ORG = "f5xc-salesdemos";
|
|
56
49
|
export const CURRENT_ORG = "f5-sales-demo";
|
|
57
50
|
|
|
58
51
|
/** Authority values the manifest may declare for a class. */
|
|
@@ -94,7 +87,7 @@ export interface RepoIdentity {
|
|
|
94
87
|
}
|
|
95
88
|
|
|
96
89
|
/** Organizations whose repository names the manifest is allowed to speak for. */
|
|
97
|
-
export const TRUSTED_ORGS: readonly string[] = [CURRENT_ORG
|
|
90
|
+
export const TRUSTED_ORGS: readonly string[] = [CURRENT_ORG];
|
|
98
91
|
|
|
99
92
|
/**
|
|
100
93
|
* Read `repo_classes` out of a governance.json payload. Returns null — never throws —
|
|
@@ -248,13 +241,7 @@ function authorityGuidance(authority: string): string[] {
|
|
|
248
241
|
}
|
|
249
242
|
}
|
|
250
243
|
|
|
251
|
-
function renderCurrentRepo(
|
|
252
|
-
slug: string | null,
|
|
253
|
-
identity: RepoIdentity | null,
|
|
254
|
-
verdict: RepoVerdict,
|
|
255
|
-
classes: RepoClasses | null,
|
|
256
|
-
legacyOrg: boolean,
|
|
257
|
-
): string[] {
|
|
244
|
+
function renderCurrentRepo(slug: string | null, verdict: RepoVerdict, classes: RepoClasses | null): string[] {
|
|
258
245
|
const lines = ["## This repository", ""];
|
|
259
246
|
|
|
260
247
|
if (!slug) {
|
|
@@ -306,18 +293,6 @@ function renderCurrentRepo(
|
|
|
306
293
|
lines.push(`Content surfaces: ${verdict.definition.surfaces.map(s => `\`${s}\``).join(", ")}`, "");
|
|
307
294
|
}
|
|
308
295
|
|
|
309
|
-
if (legacyOrg) {
|
|
310
|
-
lines.push(
|
|
311
|
-
`> **This clone points at the pre-rename organization \`${LEGACY_ORG}\`.** Reads redirect, but`,
|
|
312
|
-
"> **pushes are rejected**, so the branch will look fine until you try to publish it. Fix it first:",
|
|
313
|
-
">",
|
|
314
|
-
"> ```",
|
|
315
|
-
`> git remote set-url origin https://github.com/${CURRENT_ORG}/${identity?.name ?? ""}.git`,
|
|
316
|
-
"> ```",
|
|
317
|
-
"",
|
|
318
|
-
);
|
|
319
|
-
}
|
|
320
|
-
|
|
321
296
|
return lines;
|
|
322
297
|
}
|
|
323
298
|
|
|
@@ -409,16 +384,14 @@ function renderProvenance(origin: ManifestOrigin, classes: RepoClasses): string[
|
|
|
409
384
|
|
|
410
385
|
export function renderFleetDoc(
|
|
411
386
|
slug: string | null,
|
|
412
|
-
identity: RepoIdentity | null,
|
|
413
387
|
verdict: RepoVerdict,
|
|
414
388
|
classes: RepoClasses,
|
|
415
|
-
legacyOrg: boolean,
|
|
416
389
|
origin: ManifestOrigin = "local",
|
|
417
390
|
): string {
|
|
418
391
|
return [
|
|
419
392
|
"# Fleet — repository classes and your authority here",
|
|
420
393
|
"",
|
|
421
|
-
...renderCurrentRepo(slug,
|
|
394
|
+
...renderCurrentRepo(slug, verdict, classes),
|
|
422
395
|
...renderFleet(classes),
|
|
423
396
|
...renderProvenance(origin, classes),
|
|
424
397
|
...FOOTER,
|
|
@@ -458,14 +431,12 @@ export class FleetResolver {
|
|
|
458
431
|
|
|
459
432
|
let slug: string | null = null;
|
|
460
433
|
let identity: RepoIdentity | null = null;
|
|
461
|
-
let legacyOrg = false;
|
|
462
434
|
if (root) {
|
|
463
435
|
const origin = await this.#deps.repoOrigin(root);
|
|
464
436
|
const parsed = origin ? repoNameFromOrigin(origin) : null;
|
|
465
437
|
if (parsed) {
|
|
466
438
|
slug = `${parsed.org}/${parsed.name}`;
|
|
467
439
|
identity = parsed;
|
|
468
|
-
legacyOrg = parsed.org === LEGACY_ORG;
|
|
469
440
|
}
|
|
470
441
|
}
|
|
471
442
|
|
|
@@ -522,7 +493,7 @@ export class FleetResolver {
|
|
|
522
493
|
return renderUnavailable(reason, slug);
|
|
523
494
|
}
|
|
524
495
|
|
|
525
|
-
return renderFleetDoc(slug,
|
|
496
|
+
return renderFleetDoc(slug, classifyRepo(classes, identity), classes, origin);
|
|
526
497
|
}
|
|
527
498
|
}
|
|
528
499
|
|