xiaotime 0.5.5 → 0.5.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.
Files changed (50) hide show
  1. package/dist/session.d.ts.map +1 -1
  2. package/dist/session.js +5 -1
  3. package/dist/session.js.map +1 -1
  4. package/dist/sidebar.js +1 -1
  5. package/dist/sidebar.js.map +1 -1
  6. package/package.json +4 -4
  7. package/dist/__tests__/ansi_tags.test.d.ts +0 -9
  8. package/dist/__tests__/ansi_tags.test.d.ts.map +0 -1
  9. package/dist/__tests__/ansi_tags.test.js +0 -58
  10. package/dist/__tests__/ansi_tags.test.js.map +0 -1
  11. package/dist/__tests__/approval_menu.test.d.ts +0 -15
  12. package/dist/__tests__/approval_menu.test.d.ts.map +0 -1
  13. package/dist/__tests__/approval_menu.test.js +0 -107
  14. package/dist/__tests__/approval_menu.test.js.map +0 -1
  15. package/dist/__tests__/bot_name.test.d.ts +0 -2
  16. package/dist/__tests__/bot_name.test.d.ts.map +0 -1
  17. package/dist/__tests__/bot_name.test.js +0 -43
  18. package/dist/__tests__/bot_name.test.js.map +0 -1
  19. package/dist/__tests__/legacy_compat.test.d.ts +0 -2
  20. package/dist/__tests__/legacy_compat.test.d.ts.map +0 -1
  21. package/dist/__tests__/legacy_compat.test.js +0 -36
  22. package/dist/__tests__/legacy_compat.test.js.map +0 -1
  23. package/dist/__tests__/paste_transform_submit.test.d.ts +0 -2
  24. package/dist/__tests__/paste_transform_submit.test.d.ts.map +0 -1
  25. package/dist/__tests__/paste_transform_submit.test.js +0 -74
  26. package/dist/__tests__/paste_transform_submit.test.js.map +0 -1
  27. package/dist/__tests__/server_tool_render.test.d.ts +0 -17
  28. package/dist/__tests__/server_tool_render.test.d.ts.map +0 -1
  29. package/dist/__tests__/server_tool_render.test.js +0 -74
  30. package/dist/__tests__/server_tool_render.test.js.map +0 -1
  31. package/dist/__tests__/session_match.test.d.ts +0 -10
  32. package/dist/__tests__/session_match.test.d.ts.map +0 -1
  33. package/dist/__tests__/session_match.test.js +0 -55
  34. package/dist/__tests__/session_match.test.js.map +0 -1
  35. package/dist/__tests__/settings.test.d.ts +0 -16
  36. package/dist/__tests__/settings.test.d.ts.map +0 -1
  37. package/dist/__tests__/settings.test.js +0 -289
  38. package/dist/__tests__/settings.test.js.map +0 -1
  39. package/dist/__tests__/tool_result_client.test.d.ts +0 -20
  40. package/dist/__tests__/tool_result_client.test.d.ts.map +0 -1
  41. package/dist/__tests__/tool_result_client.test.js +0 -142
  42. package/dist/__tests__/tool_result_client.test.js.map +0 -1
  43. package/dist/__tests__/tools.test.d.ts +0 -17
  44. package/dist/__tests__/tools.test.d.ts.map +0 -1
  45. package/dist/__tests__/tools.test.js +0 -546
  46. package/dist/__tests__/tools.test.js.map +0 -1
  47. package/dist/__tests__/ui_state_listener_lifecycle.test.d.ts +0 -2
  48. package/dist/__tests__/ui_state_listener_lifecycle.test.d.ts.map +0 -1
  49. package/dist/__tests__/ui_state_listener_lifecycle.test.js +0 -152
  50. package/dist/__tests__/ui_state_listener_lifecycle.test.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"AAAA;;GAEG;AAUH,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;CACxB;AAmBD,wBAAsB,aAAa,CACjC,WAAW,CAAC,EAAE,MAAM,EACpB,GAAG,GAAE,MAAsB,GAC1B,OAAO,CAAC,OAAO,CAAC,CASlB;AAED,wBAAsB,YAAY,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,CAEvD;AAED,wBAAsB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAEpE;AAED,wBAAsB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAErE"}
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"AAAA;;GAEG;AAcH,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;CACxB;AAmBD,wBAAsB,aAAa,CACjC,WAAW,CAAC,EAAE,MAAM,EACpB,GAAG,GAAE,MAAsB,GAC1B,OAAO,CAAC,OAAO,CAAC,CASlB;AAED,wBAAsB,YAAY,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,CAEvD;AAED,wBAAsB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAEpE;AAED,wBAAsB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAErE"}
package/dist/session.js CHANGED
@@ -11,7 +11,11 @@ const config_js_1 = require("./config.js");
11
11
  const auth_js_1 = require("./auth.js");
12
12
  // Module-private: only the session REST calls below read this. Not exported
13
13
  // (no external consumer) — keeps the tenant resolution local to this client.
14
- const TENANT_ID = process.env.XIAOTIME_TENANT_ID || "craig";
14
+ // No hardcoded tenant fallback (portability audit). The server resolves the
15
+ // tenant from the operator's OAuth identity and ignores any client-supplied
16
+ // tenant_id (#6144), so this is only a hint — an empty default is correct and
17
+ // never leaks one tenant's id into another operator's requests.
18
+ const TENANT_ID = process.env.XIAOTIME_TENANT_ID || "";
15
19
  async function apiFetch(path, options = {}) {
16
20
  const url = `${config_js_1.ORCHESTRATOR_URL}${path}`;
17
21
  const res = await fetch(url, {
@@ -1 +1 @@
1
- {"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":";AAAA;;GAEG;;AAuCH,sCAYC;AAED,oCAEC;AAED,gCAEC;AAED,wCAEC;AA7DD,2CAA+C;AAC/C,uCAAqC;AAErC,4EAA4E;AAC5E,6EAA6E;AAC7E,MAAM,SAAS,GACb,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,OAAO,CAAC;AAc5C,KAAK,UAAU,QAAQ,CAAC,IAAY,EAAE,UAAuB,EAAE;IAC7D,MAAM,GAAG,GAAG,GAAG,4BAAgB,GAAG,IAAI,EAAE,CAAC;IACzC,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;QAC3B,GAAG,OAAO;QACV,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;YAClC,WAAW,EAAE,IAAA,kBAAQ,GAAE;YACvB,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;SAC3B;KACF,CAAC,CAAC;IACH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,QAAQ,GAAG,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC,CAAC;IACjD,CAAC;IACD,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC;AACpB,CAAC;AAEM,KAAK,UAAU,aAAa,CACjC,WAAoB,EACpB,MAAc,OAAO,CAAC,GAAG,EAAE;IAE3B,OAAO,QAAQ,CAAC,oBAAoB,EAAE;QACpC,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACnB,YAAY,EAAE,WAAW,IAAI,IAAI;YACjC,SAAS,EAAE,SAAS;YACpB,GAAG;SACJ,CAAC;KACH,CAAqB,CAAC;AACzB,CAAC;AAEM,KAAK,UAAU,YAAY;IAChC,OAAO,QAAQ,CAAC,gCAAgC,SAAS,EAAE,CAAuB,CAAC;AACrF,CAAC;AAEM,KAAK,UAAU,UAAU,CAAC,SAAiB;IAChD,OAAO,QAAQ,CAAC,sBAAsB,SAAS,EAAE,CAAqB,CAAC;AACzE,CAAC;AAEM,KAAK,UAAU,cAAc,CAAC,SAAiB;IACpD,MAAM,QAAQ,CAAC,sBAAsB,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;AAC1E,CAAC"}
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":";AAAA;;GAEG;;AA2CH,sCAYC;AAED,oCAEC;AAED,gCAEC;AAED,wCAEC;AAjED,2CAA+C;AAC/C,uCAAqC;AAErC,4EAA4E;AAC5E,6EAA6E;AAC7E,4EAA4E;AAC5E,4EAA4E;AAC5E,8EAA8E;AAC9E,gEAAgE;AAChE,MAAM,SAAS,GACb,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,EAAE,CAAC;AAcvC,KAAK,UAAU,QAAQ,CAAC,IAAY,EAAE,UAAuB,EAAE;IAC7D,MAAM,GAAG,GAAG,GAAG,4BAAgB,GAAG,IAAI,EAAE,CAAC;IACzC,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;QAC3B,GAAG,OAAO;QACV,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;YAClC,WAAW,EAAE,IAAA,kBAAQ,GAAE;YACvB,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;SAC3B;KACF,CAAC,CAAC;IACH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,QAAQ,GAAG,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC,CAAC;IACjD,CAAC;IACD,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC;AACpB,CAAC;AAEM,KAAK,UAAU,aAAa,CACjC,WAAoB,EACpB,MAAc,OAAO,CAAC,GAAG,EAAE;IAE3B,OAAO,QAAQ,CAAC,oBAAoB,EAAE;QACpC,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACnB,YAAY,EAAE,WAAW,IAAI,IAAI;YACjC,SAAS,EAAE,SAAS;YACpB,GAAG;SACJ,CAAC;KACH,CAAqB,CAAC;AACzB,CAAC;AAEM,KAAK,UAAU,YAAY;IAChC,OAAO,QAAQ,CAAC,gCAAgC,SAAS,EAAE,CAAuB,CAAC;AACrF,CAAC;AAEM,KAAK,UAAU,UAAU,CAAC,SAAiB;IAChD,OAAO,QAAQ,CAAC,sBAAsB,SAAS,EAAE,CAAqB,CAAC;AACzE,CAAC;AAEM,KAAK,UAAU,cAAc,CAAC,SAAiB;IACpD,MAAM,QAAQ,CAAC,sBAAsB,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;AAC1E,CAAC"}
package/dist/sidebar.js CHANGED
@@ -28,7 +28,7 @@ class SidebarLayout {
28
28
  statusBar;
29
29
  sidebarVisible = true;
30
30
  barState = {
31
- tenant: process.env.XIAOTIME_TENANT_ID ?? process.env.TENANT_ID ?? "craig",
31
+ tenant: process.env.XIAOTIME_TENANT_ID ?? process.env.TENANT_ID ?? "", // no hardcoded tenant (portability audit)
32
32
  sessionId: "",
33
33
  sessionName: null,
34
34
  connected: false,
@@ -1 +1 @@
1
- {"version":3,"file":"sidebar.js","sourceRoot":"","sources":["../src/sidebar.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sidebar.js","sourceRoot":"","sources":["../src/sidebar.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,16 +1,16 @@
1
1
  {
2
2
  "name": "xiaotime",
3
- "version": "0.5.5",
3
+ "version": "0.5.6",
4
4
  "description": "Xiaotime Developer — persistent-memory AI coding assistant",
5
5
  "bin": {
6
- "xiaotime": "./dist/index.js"
6
+ "xiaotime": "dist/index.js"
7
7
  },
8
- "main": "./dist/index.js",
8
+ "main": "dist/index.js",
9
9
  "files": [
10
10
  "dist/"
11
11
  ],
12
12
  "scripts": {
13
- "build": "tsc",
13
+ "build": "tsc -p tsconfig.build.json",
14
14
  "dev": "ts-node src/index.ts",
15
15
  "test": "vitest run",
16
16
  "test:watch": "vitest",
@@ -1,9 +0,0 @@
1
- /**
2
- * Tests for the ANSI → blessed {tags} converter.
3
- *
4
- * SPRINT-CLI-GRANDMA-UX (#8191 CodeReview follow-up):
5
- * - Pins the supported chalk palette mapping and asserts unrecognized escape
6
- * runs are stripped (never leaked as raw bytes into the blessed buffer).
7
- */
8
- export {};
9
- //# sourceMappingURL=ansi_tags.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ansi_tags.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/ansi_tags.test.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}
@@ -1,58 +0,0 @@
1
- "use strict";
2
- /**
3
- * Tests for the ANSI → blessed {tags} converter.
4
- *
5
- * SPRINT-CLI-GRANDMA-UX (#8191 CodeReview follow-up):
6
- * - Pins the supported chalk palette mapping and asserts unrecognized escape
7
- * runs are stripped (never leaked as raw bytes into the blessed buffer).
8
- */
9
- Object.defineProperty(exports, "__esModule", { value: true });
10
- const vitest_1 = require("vitest");
11
- const ansi_tags_js_1 = require("../ansi_tags.js");
12
- (0, vitest_1.describe)("ansiToBlessedTags", () => {
13
- (0, vitest_1.test)("translates the SGR reset", () => {
14
- (0, vitest_1.expect)((0, ansi_tags_js_1.ansiToBlessedTags)("hi\x1b[0m")).toBe("hi{/}");
15
- });
16
- (0, vitest_1.test)("translates bold and italic", () => {
17
- (0, vitest_1.expect)((0, ansi_tags_js_1.ansiToBlessedTags)("\x1b[1mb\x1b[0m")).toBe("{bold}b{/}");
18
- (0, vitest_1.expect)((0, ansi_tags_js_1.ansiToBlessedTags)("\x1b[3mi\x1b[0m")).toBe("{italic}i{/}");
19
- });
20
- (0, vitest_1.test)("translates dim to the muted grey", () => {
21
- (0, vitest_1.expect)((0, ansi_tags_js_1.ansiToBlessedTags)("\x1b[2mdim")).toBe("{#45475a-fg}dim");
22
- });
23
- (0, vitest_1.test)("translates the brand red truecolour", () => {
24
- (0, vitest_1.expect)((0, ansi_tags_js_1.ansiToBlessedTags)("\x1b[38;2;192;56;75mX\x1b[0m")).toBe("{#c0384b-fg}X{/}");
25
- });
26
- (0, vitest_1.test)("translates each supported truecolour foreground", () => {
27
- const cases = [
28
- ["\x1b[38;2;137;180;250m", "{#89b4fa-fg}"],
29
- ["\x1b[38;2;166;227;161m", "{#a6e3a1-fg}"],
30
- ["\x1b[38;2;243;139;168m", "{#f38ba8-fg}"],
31
- ["\x1b[38;2;148;226;213m", "{#94e2d5-fg}"],
32
- ["\x1b[38;2;249;226;175m", "{#f9e2af-fg}"],
33
- ["\x1b[38;2;205;214;244m", "{#cdd6f4-fg}"],
34
- ["\x1b[38;2;108;112;134m", "{#6c7086-fg}"],
35
- ];
36
- for (const [ansi, tag] of cases) {
37
- (0, vitest_1.expect)((0, ansi_tags_js_1.ansiToBlessedTags)(`${ansi}z`)).toBe(`${tag}z`);
38
- }
39
- });
40
- (0, vitest_1.test)("strips unrecognized SGR codes rather than leaking raw escapes", () => {
41
- // \x1b[22m (no-bold) is not mapped — it must be removed, not passed through.
42
- (0, vitest_1.expect)((0, ansi_tags_js_1.ansiToBlessedTags)("a\x1b[22mb")).toBe("ab");
43
- (0, vitest_1.expect)((0, ansi_tags_js_1.ansiToBlessedTags)("\x1b[38;5;200mq")).toBe("q");
44
- });
45
- (0, vitest_1.test)("leaves plain text untouched", () => {
46
- (0, vitest_1.expect)((0, ansi_tags_js_1.ansiToBlessedTags)("just words")).toBe("just words");
47
- });
48
- (0, vitest_1.test)("pins the current behavior for nested/overlapping sequences", () => {
49
- // The converter does NOT model nesting (documented in ansi_tags.ts) — each
50
- // recognized code maps independently. This locks in the observed output so
51
- // a future change to the mapping order surfaces in review.
52
- (0, vitest_1.expect)((0, ansi_tags_js_1.ansiToBlessedTags)("\x1b[1m\x1b[3mbold+italic\x1b[0m")).toBe("{bold}{italic}bold+italic{/}");
53
- // Partial reset (\x1b[22m no-bold) is unrecognized → stripped, leaving the
54
- // opening {bold} tag unclosed. This is a known limitation, pinned here.
55
- (0, vitest_1.expect)((0, ansi_tags_js_1.ansiToBlessedTags)("\x1b[1mbold\x1b[22mplain")).toBe("{bold}boldplain");
56
- });
57
- });
58
- //# sourceMappingURL=ansi_tags.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ansi_tags.test.js","sourceRoot":"","sources":["../../src/__tests__/ansi_tags.test.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;AAEH,mCAAgD;AAChD,kDAAoD;AAEpD,IAAA,iBAAQ,EAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,IAAA,aAAI,EAAC,0BAA0B,EAAE,GAAG,EAAE;QACpC,IAAA,eAAM,EAAC,IAAA,gCAAiB,EAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,IAAA,aAAI,EAAC,4BAA4B,EAAE,GAAG,EAAE;QACtC,IAAA,eAAM,EAAC,IAAA,gCAAiB,EAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAChE,IAAA,eAAM,EAAC,IAAA,gCAAiB,EAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACpE,CAAC,CAAC,CAAC;IAEH,IAAA,aAAI,EAAC,kCAAkC,EAAE,GAAG,EAAE;QAC5C,IAAA,eAAM,EAAC,IAAA,gCAAiB,EAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;IAEH,IAAA,aAAI,EAAC,qCAAqC,EAAE,GAAG,EAAE;QAC/C,IAAA,eAAM,EAAC,IAAA,gCAAiB,EAAC,8BAA8B,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IACrF,CAAC,CAAC,CAAC;IAEH,IAAA,aAAI,EAAC,iDAAiD,EAAE,GAAG,EAAE;QAC3D,MAAM,KAAK,GAA4B;YACrC,CAAC,wBAAwB,EAAE,cAAc,CAAC;YAC1C,CAAC,wBAAwB,EAAE,cAAc,CAAC;YAC1C,CAAC,wBAAwB,EAAE,cAAc,CAAC;YAC1C,CAAC,wBAAwB,EAAE,cAAc,CAAC;YAC1C,CAAC,wBAAwB,EAAE,cAAc,CAAC;YAC1C,CAAC,wBAAwB,EAAE,cAAc,CAAC;YAC1C,CAAC,wBAAwB,EAAE,cAAc,CAAC;SAC3C,CAAC;QACF,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,KAAK,EAAE,CAAC;YAChC,IAAA,eAAM,EAAC,IAAA,gCAAiB,EAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;QACxD,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,IAAA,aAAI,EAAC,+DAA+D,EAAE,GAAG,EAAE;QACzE,6EAA6E;QAC7E,IAAA,eAAM,EAAC,IAAA,gCAAiB,EAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnD,IAAA,eAAM,EAAC,IAAA,gCAAiB,EAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,IAAA,aAAI,EAAC,6BAA6B,EAAE,GAAG,EAAE;QACvC,IAAA,eAAM,EAAC,IAAA,gCAAiB,EAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,IAAA,aAAI,EAAC,4DAA4D,EAAE,GAAG,EAAE;QACtE,2EAA2E;QAC3E,2EAA2E;QAC3E,2DAA2D;QAC3D,IAAA,eAAM,EAAC,IAAA,gCAAiB,EAAC,kCAAkC,CAAC,CAAC,CAAC,IAAI,CAChE,8BAA8B,CAC/B,CAAC;QACF,2EAA2E;QAC3E,wEAAwE;QACxE,IAAA,eAAM,EAAC,IAAA,gCAAiB,EAAC,0BAA0B,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAChF,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,15 +0,0 @@
1
- /**
2
- * Approval-menu rendering + selection tests.
3
- *
4
- * SPRINT-CLI-APPROVAL-MENU-1 (#6509) PR1.
5
- *
6
- * The full echo-bug fix is structural: the rl is closed (its keypress
7
- * echo handler detached from stdin) for the duration of the menu, so
8
- * the bug is physically unreachable during promptApprovalMenu. These
9
- * tests verify the structure + the no-TTY fallback path. Full
10
- * keystroke-emission tests are in the manual PR-body walkthrough
11
- * because they require driving a real TTY (vitest's stdin is not a
12
- * TTY, so setRawMode throws — which we test).
13
- */
14
- export {};
15
- //# sourceMappingURL=approval_menu.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"approval_menu.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/approval_menu.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG"}
@@ -1,107 +0,0 @@
1
- "use strict";
2
- /**
3
- * Approval-menu rendering + selection tests.
4
- *
5
- * SPRINT-CLI-APPROVAL-MENU-1 (#6509) PR1.
6
- *
7
- * The full echo-bug fix is structural: the rl is closed (its keypress
8
- * echo handler detached from stdin) for the duration of the menu, so
9
- * the bug is physically unreachable during promptApprovalMenu. These
10
- * tests verify the structure + the no-TTY fallback path. Full
11
- * keystroke-emission tests are in the manual PR-body walkthrough
12
- * because they require driving a real TTY (vitest's stdin is not a
13
- * TTY, so setRawMode throws — which we test).
14
- */
15
- Object.defineProperty(exports, "__esModule", { value: true });
16
- const vitest_1 = require("vitest");
17
- const ui_state_js_1 = require("../ui_state.js");
18
- let writes;
19
- (0, vitest_1.beforeEach)(() => {
20
- writes = [];
21
- vitest_1.vi.spyOn(process.stdout, "write").mockImplementation((chunk) => {
22
- writes.push(typeof chunk === "string" ? chunk : chunk.toString());
23
- return true;
24
- });
25
- });
26
- (0, vitest_1.afterEach)(() => {
27
- vitest_1.vi.restoreAllMocks();
28
- });
29
- (0, vitest_1.describe)("SessionUI public surface", () => {
30
- (0, vitest_1.test)("exposes promptApprovalMenu", () => {
31
- const ui = new ui_state_js_1.SessionUI();
32
- (0, vitest_1.expect)(typeof ui.promptApprovalMenu).toBe("function");
33
- ui.getRl().close();
34
- });
35
- (0, vitest_1.test)("exposes onRlClose for persistent close-listener registration", () => {
36
- const ui = new ui_state_js_1.SessionUI();
37
- (0, vitest_1.expect)(typeof ui.onRlClose).toBe("function");
38
- ui.getRl().close();
39
- });
40
- (0, vitest_1.test)("no longer exposes promptApproval (pre-#6509 API)", () => {
41
- const ui = new ui_state_js_1.SessionUI();
42
- (0, vitest_1.expect)(ui.promptApproval).toBeUndefined();
43
- ui.getRl().close();
44
- });
45
- });
46
- (0, vitest_1.describe)("no-TTY fallback (vitest's stdin is not a TTY)", () => {
47
- (0, vitest_1.test)("returns reject result when setRawMode throws", async () => {
48
- // vitest's process.stdin.setRawMode throws because stdin is not a
49
- // TTY. promptApprovalMenu should catch + return reject (option 3)
50
- // with rejectReason "(no TTY)" rather than crash.
51
- const ui = new ui_state_js_1.SessionUI();
52
- const result = await ui.promptApprovalMenu();
53
- (0, vitest_1.expect)(result.approved).toBe(false);
54
- if (!result.approved) {
55
- // The rejection-reason prompt also fails in no-TTY mode (rl.once
56
- // line never fires); we don't run that path under vitest. The
57
- // important invariant is the fall-through returns a structurally
58
- // valid reject.
59
- (0, vitest_1.expect)(result.rejectReason).toBeDefined();
60
- }
61
- });
62
- });
63
- (0, vitest_1.describe)("rl close-and-recreate (structural echo-bug fix)", () => {
64
- (0, vitest_1.test)("getRl() returns a different rl object after promptApprovalMenu", async () => {
65
- const ui = new ui_state_js_1.SessionUI();
66
- const before = ui.getRl();
67
- await ui.promptApprovalMenu();
68
- const after = ui.getRl();
69
- // The rl was closed + recreated by promptApprovalMenu, so the
70
- // identity should differ. This is the structural guarantee that
71
- // readline's keypress echo cannot fire during the menu — the rl
72
- // object that owned the echo handler is gone.
73
- (0, vitest_1.expect)(after).not.toBe(before);
74
- });
75
- (0, vitest_1.test)("onRlClose listener is re-attached to the recreated rl", async () => {
76
- const ui = new ui_state_js_1.SessionUI();
77
- let fireCount = 0;
78
- ui.onRlClose(() => {
79
- fireCount++;
80
- });
81
- // First menu invocation closes + recreates the rl. The intra-menu
82
- // close is suppressed (removeAllListeners before close), so
83
- // fireCount should stay at 0 across the menu render.
84
- await ui.promptApprovalMenu();
85
- (0, vitest_1.expect)(fireCount).toBe(0);
86
- // After the menu, the recreated rl has the listener re-attached.
87
- // Closing it now should fire the listener exactly once.
88
- ui.getRl().close();
89
- (0, vitest_1.expect)(fireCount).toBe(1);
90
- });
91
- });
92
- (0, vitest_1.describe)("ApprovalMenuResult shape", () => {
93
- (0, vitest_1.test)("approved-result carries allowlistRequested bool", async () => {
94
- // Result shape is checked at the type level + the no-TTY fallback
95
- // already returns an instance — verify it satisfies the
96
- // discriminated union we exported.
97
- const ui = new ui_state_js_1.SessionUI();
98
- const result = await ui.promptApprovalMenu();
99
- if (result.approved) {
100
- (0, vitest_1.expect)(typeof result.allowlistRequested).toBe("boolean");
101
- }
102
- else {
103
- (0, vitest_1.expect)(typeof result.rejectReason).toBe("string");
104
- }
105
- });
106
- });
107
- //# sourceMappingURL=approval_menu.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"approval_menu.test.js","sourceRoot":"","sources":["../../src/__tests__/approval_menu.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=bot_name.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bot_name.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/bot_name.test.ts"],"names":[],"mappings":""}
@@ -1,43 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- /**
4
- * Assistant display-name tests.
5
- *
6
- * Guards the dynamic-name feature that replaced the hardcoded "Junior" leak:
7
- * - setBotName/getBotName round-trip
8
- * - empty/null/undefined are ignored (env/default stays)
9
- * - server-provided names are sanitized before they reach the terminal —
10
- * control / ANSI escape characters are stripped so a malicious or malformed
11
- * name can't inject terminal escape sequences (the #8249 review finding).
12
- */
13
- const vitest_1 = require("vitest");
14
- const display_js_1 = require("../display.js");
15
- (0, vitest_1.describe)("assistant name (bot name)", () => {
16
- (0, vitest_1.test)("setBotName / getBotName round-trips a clean name", () => {
17
- (0, display_js_1.setBotName)("DoctorWhiskers");
18
- (0, vitest_1.expect)((0, display_js_1.getBotName)()).toBe("DoctorWhiskers");
19
- });
20
- (0, vitest_1.test)("empty / null / undefined are ignored — prior value is kept", () => {
21
- (0, display_js_1.setBotName)("Keeper");
22
- (0, display_js_1.setBotName)("");
23
- (0, display_js_1.setBotName)(null);
24
- (0, display_js_1.setBotName)(undefined);
25
- (0, vitest_1.expect)((0, display_js_1.getBotName)()).toBe("Keeper");
26
- });
27
- (0, vitest_1.test)("strips control / ANSI escape characters (terminal-injection defense)", () => {
28
- (0, display_js_1.setBotName)("Evil\x1b[2J\x07Name");
29
- const n = (0, display_js_1.getBotName)();
30
- // No C0/C1 control character survives.
31
- // eslint-disable-next-line no-control-regex
32
- (0, vitest_1.expect)(n).not.toMatch(/[\u0000-\u001f\u007f-\u009f]/);
33
- // ESC (0x1b) + BEL (0x07) removed; the printable remainder is kept.
34
- (0, vitest_1.expect)(n).toBe("Evil[2JName");
35
- });
36
- (0, vitest_1.test)("collapses whitespace and caps length at 40", () => {
37
- (0, display_js_1.setBotName)(" Doctor Whiskers ");
38
- (0, vitest_1.expect)((0, display_js_1.getBotName)()).toBe("Doctor Whiskers");
39
- (0, display_js_1.setBotName)("x".repeat(100));
40
- (0, vitest_1.expect)((0, display_js_1.getBotName)()).toHaveLength(40);
41
- });
42
- });
43
- //# sourceMappingURL=bot_name.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bot_name.test.js","sourceRoot":"","sources":["../../src/__tests__/bot_name.test.ts"],"names":[],"mappings":";;AAAA;;;;;;;;;GASG;AACH,mCAAgD;AAChD,8CAAuD;AAEvD,IAAA,iBAAQ,EAAC,2BAA2B,EAAE,GAAG,EAAE;IACzC,IAAA,aAAI,EAAC,kDAAkD,EAAE,GAAG,EAAE;QAC5D,IAAA,uBAAU,EAAC,gBAAgB,CAAC,CAAC;QAC7B,IAAA,eAAM,EAAC,IAAA,uBAAU,GAAE,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,IAAA,aAAI,EAAC,4DAA4D,EAAE,GAAG,EAAE;QACtE,IAAA,uBAAU,EAAC,QAAQ,CAAC,CAAC;QACrB,IAAA,uBAAU,EAAC,EAAE,CAAC,CAAC;QACf,IAAA,uBAAU,EAAC,IAAI,CAAC,CAAC;QACjB,IAAA,uBAAU,EAAC,SAAS,CAAC,CAAC;QACtB,IAAA,eAAM,EAAC,IAAA,uBAAU,GAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,IAAA,aAAI,EAAC,sEAAsE,EAAE,GAAG,EAAE;QAChF,IAAA,uBAAU,EAAC,qBAAqB,CAAC,CAAC;QAClC,MAAM,CAAC,GAAG,IAAA,uBAAU,GAAE,CAAC;QACvB,uCAAuC;QACvC,4CAA4C;QAC5C,IAAA,eAAM,EAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,8BAA8B,CAAC,CAAC;QACtD,oEAAoE;QACpE,IAAA,eAAM,EAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,IAAA,aAAI,EAAC,4CAA4C,EAAE,GAAG,EAAE;QACtD,IAAA,uBAAU,EAAC,uBAAuB,CAAC,CAAC;QACpC,IAAA,eAAM,EAAC,IAAA,uBAAU,GAAE,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC7C,IAAA,uBAAU,EAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QAC5B,IAAA,eAAM,EAAC,IAAA,uBAAU,GAAE,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=legacy_compat.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"legacy_compat.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/legacy_compat.test.ts"],"names":[],"mappings":""}
@@ -1,36 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- /**
4
- * Legacy-compatibility / version-cutover tests.
5
- *
6
- * SPRINT-TERMINAL-CLIENT-OWNED-DISPATCH-1 (#6565) PR5.
7
- *
8
- * The hard cutover (decision D2) rejects CLI <0.4.0 at the WS auth
9
- * handshake: the CLI sends its `version`, the server gates on it.
10
- * These tests guard the CLI half of that contract — the version the
11
- * CLI advertises must be its real package version and at/above the
12
- * 0.4.0 client-owned-dispatch floor. The server-side rejection logic
13
- * is covered by tests/test_terminal_orchestrator_cli_version.py.
14
- */
15
- const vitest_1 = require("vitest");
16
- const config_js_1 = require("../config.js");
17
- // `require` (not `import`) so the tsc build doesn't flag package.json
18
- // as outside rootDir (TS6059); vitest resolves it fine at runtime.
19
- const pkg = require("../../package.json");
20
- (0, vitest_1.describe)("CLI version cutover (#6565 PR5)", () => {
21
- (0, vitest_1.test)("CLI_VERSION matches package.json — no drift", () => {
22
- // The server gates the WS handshake on the version the CLI sends.
23
- // If CLI_VERSION drifts from package.json the CLI would advertise
24
- // a version it isn't, silently defeating the cutover gate.
25
- (0, vitest_1.expect)(config_js_1.CLI_VERSION).toBe(pkg.version);
26
- });
27
- (0, vitest_1.test)("CLI_VERSION is a 3-part semver at or above the 0.4.0 floor", () => {
28
- const parts = config_js_1.CLI_VERSION.split(".").map((p) => Number.parseInt(p, 10));
29
- (0, vitest_1.expect)(parts).toHaveLength(3);
30
- (0, vitest_1.expect)(parts.every((n) => Number.isInteger(n))).toBe(true);
31
- const [major, minor] = parts;
32
- // >= 0.4.0 — the client-owned-dispatch cutover floor.
33
- (0, vitest_1.expect)(major > 0 || (major === 0 && minor >= 4)).toBe(true);
34
- });
35
- });
36
- //# sourceMappingURL=legacy_compat.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"legacy_compat.test.js","sourceRoot":"","sources":["../../src/__tests__/legacy_compat.test.ts"],"names":[],"mappings":";;AAAA;;;;;;;;;;;GAWG;AACH,mCAAgD;AAChD,4CAA2C;AAE3C,sEAAsE;AACtE,mEAAmE;AACnE,MAAM,GAAG,GAAG,OAAO,CAAC,oBAAoB,CAAwB,CAAC;AAEjE,IAAA,iBAAQ,EAAC,iCAAiC,EAAE,GAAG,EAAE;IAC/C,IAAA,aAAI,EAAC,6CAA6C,EAAE,GAAG,EAAE;QACvD,kEAAkE;QAClE,kEAAkE;QAClE,2DAA2D;QAC3D,IAAA,eAAM,EAAC,uBAAW,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,IAAA,aAAI,EAAC,4DAA4D,EAAE,GAAG,EAAE;QACtE,MAAM,KAAK,GAAG,uBAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QACxE,IAAA,eAAM,EAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC9B,IAAA,eAAM,EAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3D,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,KAAK,CAAC;QAC7B,sDAAsD;QACtD,IAAA,eAAM,EAAC,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=paste_transform_submit.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"paste_transform_submit.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/paste_transform_submit.test.ts"],"names":[],"mappings":""}
@@ -1,74 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- /**
4
- * PasteTransform submission + paste-collapsing tests.
5
- *
6
- * SPRINT-CLI-INPUT-ENTER-SUBMIT-FIX:
7
- * Guards the regression where a deliberate Enter (a lone CR/LF chunk) was
8
- * routed into the rapid-paste buffer and collapsed to a space by
9
- * _scheduleRapidFlush. readline never saw a line terminator, so NO prompt
10
- * ever submitted — every message in `xiaotime dev` hung at "ready".
11
- *
12
- * The contract pinned here:
13
- * - a bare Enter passes through unchanged → readline gets a line terminator
14
- * - a multi-line paste (one chunk or a fast burst) still collapses to a
15
- * single line with no embedded terminator
16
- */
17
- const vitest_1 = require("vitest");
18
- const ui_state_js_1 = require("../ui_state.js");
19
- /** Write each chunk into a fresh PasteTransform and resolve with everything
20
- * its `sink` emitted, after the rapid-flush idle window (60ms) has elapsed. */
21
- function feed(chunks, waitMs = 150) {
22
- return new Promise((resolve) => {
23
- const pt = new ui_state_js_1.PasteTransform();
24
- let out = "";
25
- pt.sink.on("data", (b) => {
26
- out += b.toString();
27
- });
28
- for (const c of chunks)
29
- pt.write(Buffer.from(c));
30
- setTimeout(() => resolve(out), waitMs);
31
- });
32
- }
33
- const hasTerminator = (s) => /[\r\n]/.test(s);
34
- (0, vitest_1.describe)("PasteTransform — Enter submits, pastes collapse", () => {
35
- (0, vitest_1.test)("a typed line followed by Enter passes a line terminator through", async () => {
36
- const out = await feed(["h", "e", "y", "\r"]);
37
- (0, vitest_1.expect)(out).toBe("hey\r");
38
- (0, vitest_1.expect)(hasTerminator(out)).toBe(true); // readline would emit `line` → submit
39
- });
40
- (0, vitest_1.test)("a lone Enter on an empty prompt still submits", async () => {
41
- const out = await feed(["\r"]);
42
- (0, vitest_1.expect)(hasTerminator(out)).toBe(true);
43
- });
44
- (0, vitest_1.test)("a bare LF (\\n) also passes through", async () => {
45
- const out = await feed(["\n"]);
46
- (0, vitest_1.expect)(hasTerminator(out)).toBe(true);
47
- });
48
- (0, vitest_1.test)("a multi-line paste in one chunk collapses to a single line", async () => {
49
- const out = await feed(["line1\nline2\n"]);
50
- (0, vitest_1.expect)(hasTerminator(out)).toBe(false); // newlines replaced with spaces
51
- (0, vitest_1.expect)(out).toBe("line1 line2 ");
52
- });
53
- (0, vitest_1.test)("a fast-typed line + Enter batched into ONE chunk submits on the first Enter", async () => {
54
- // SSH clients (Termius/mosh) batch the line and its trailing Enter into a
55
- // single read. The trailing \r must survive as a line terminator, or the
56
- // first Enter does nothing and you have to press Enter twice.
57
- const out = await feed(["hey junior\r"]);
58
- (0, vitest_1.expect)(out).toBe("hey junior\r");
59
- (0, vitest_1.expect)(hasTerminator(out)).toBe(true);
60
- });
61
- (0, vitest_1.test)("a multi-line paste WITH a trailing newline still does NOT submit", async () => {
62
- // An internal newline marks a genuine paste — it must collapse for review,
63
- // never auto-submit, even though it ends in a newline.
64
- const out = await feed(["alpha\nbeta\n"]);
65
- (0, vitest_1.expect)(hasTerminator(out)).toBe(false);
66
- (0, vitest_1.expect)(out).toBe("alpha beta ");
67
- });
68
- (0, vitest_1.test)("plain typed characters with no Enter pass straight through", async () => {
69
- const out = await feed(["h", "i"]);
70
- (0, vitest_1.expect)(out).toBe("hi");
71
- (0, vitest_1.expect)(hasTerminator(out)).toBe(false); // nothing submits until Enter
72
- });
73
- });
74
- //# sourceMappingURL=paste_transform_submit.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"paste_transform_submit.test.js","sourceRoot":"","sources":["../../src/__tests__/paste_transform_submit.test.ts"],"names":[],"mappings":"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"}
@@ -1,17 +0,0 @@
1
- /**
2
- * Server-tool-call visibility rendering.
3
- *
4
- * SPRINT-CLI-APPROVAL-MENU-1 (#6509) PR3.
5
- *
6
- * Tests the CLI side of the `server_tool_call` WS event: the
7
- * `printServerToolCall` helper writes a single dim log line matching
8
- * the visual style of the existing client-tool inline logs in
9
- * `cli/src/tools.ts`. The server-side payload-building logic (input
10
- * summary truncation, preferred-key selection per tool, newline
11
- * stripping) is tested in
12
- * `tests/test_terminal_orchestrator_main.py` — those tests
13
- * collectively validate the wire-shape of the `server_tool_call`
14
- * event (ISC-6509-009 + ISC-6509-010 emission contract).
15
- */
16
- export {};
17
- //# sourceMappingURL=server_tool_render.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"server_tool_render.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/server_tool_render.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG"}
@@ -1,74 +0,0 @@
1
- "use strict";
2
- /**
3
- * Server-tool-call visibility rendering.
4
- *
5
- * SPRINT-CLI-APPROVAL-MENU-1 (#6509) PR3.
6
- *
7
- * Tests the CLI side of the `server_tool_call` WS event: the
8
- * `printServerToolCall` helper writes a single dim log line matching
9
- * the visual style of the existing client-tool inline logs in
10
- * `cli/src/tools.ts`. The server-side payload-building logic (input
11
- * summary truncation, preferred-key selection per tool, newline
12
- * stripping) is tested in
13
- * `tests/test_terminal_orchestrator_main.py` — those tests
14
- * collectively validate the wire-shape of the `server_tool_call`
15
- * event (ISC-6509-009 + ISC-6509-010 emission contract).
16
- */
17
- Object.defineProperty(exports, "__esModule", { value: true });
18
- const vitest_1 = require("vitest");
19
- const display_js_1 = require("../display.js");
20
- let logs;
21
- (0, vitest_1.beforeEach)(() => {
22
- logs = [];
23
- vitest_1.vi.spyOn(console, "log").mockImplementation((msg) => {
24
- logs.push(typeof msg === "string" ? msg : String(msg));
25
- });
26
- });
27
- (0, vitest_1.afterEach)(() => {
28
- vitest_1.vi.restoreAllMocks();
29
- });
30
- (0, vitest_1.describe)("printServerToolCall (ISC-6509-009)", () => {
31
- (0, vitest_1.test)("renders ` [server:<name>] <input_summary>` for a typical call", () => {
32
- (0, display_js_1.printServerToolCall)("query_knowledge_base", "query=halock voice");
33
- (0, vitest_1.expect)(logs).toHaveLength(1);
34
- (0, vitest_1.expect)(logs[0]).toContain("[server:query_knowledge_base]");
35
- (0, vitest_1.expect)(logs[0]).toContain("query=halock voice");
36
- });
37
- (0, vitest_1.test)("drops the trailing space when inputSummary is empty", () => {
38
- // `librarian_list_collections` has no meaningful input to render
39
- // — the server returns "" for its summary, and the line should
40
- // collapse to just `[server:<name>]` with no trailing whitespace.
41
- (0, display_js_1.printServerToolCall)("librarian_list_collections", "");
42
- (0, vitest_1.expect)(logs).toHaveLength(1);
43
- // Strip ANSI escape codes (chalk wraps the text) for the suffix
44
- // check. The dim wrapper adds reset codes after the content.
45
- const stripped = logs[0].replace(/\x1b\[[^m]*m/g, "");
46
- (0, vitest_1.expect)(stripped).toBe(" [server:librarian_list_collections]");
47
- });
48
- (0, vitest_1.test)("each call produces exactly one log line", () => {
49
- (0, display_js_1.printServerToolCall)("search_entities", "query=foo");
50
- (0, display_js_1.printServerToolCall)("read_register", "register_type=control");
51
- (0, vitest_1.expect)(logs).toHaveLength(2);
52
- });
53
- (0, vitest_1.test)("renders the literal text regardless of chalk's TTY detection", () => {
54
- // chalk strips ANSI codes when stdout isn't detected as a TTY
55
- // (which is the case under vitest). The dim styling is a
56
- // visual-only concern verified via the manual walkthrough; the
57
- // load-bearing contract — the text content — is asserted here.
58
- (0, display_js_1.printServerToolCall)("task_create", "name=test, command=echo hi");
59
- const stripped = logs[0].replace(/\x1b\[[^m]*m/g, "");
60
- (0, vitest_1.expect)(stripped).toBe(" [server:task_create] name=test, command=echo hi");
61
- });
62
- (0, vitest_1.test)("handles special characters in tool name (#6550 CR-r1)", () => {
63
- // Tool names are server-controlled (defined by
64
- // terminal_orchestrator/tools.py TERMINAL_TOOLS) and won't
65
- // contain shell metacharacters in practice — but the render
66
- // helper shouldn't mangle the bytes if a future tool name
67
- // does contain `<>&` or similar. Pin the passthrough.
68
- (0, display_js_1.printServerToolCall)("tool<>&", "query=test");
69
- (0, vitest_1.expect)(logs).toHaveLength(1);
70
- const stripped = logs[0].replace(/\x1b\[[^m]*m/g, "");
71
- (0, vitest_1.expect)(stripped).toBe(" [server:tool<>&] query=test");
72
- });
73
- });
74
- //# sourceMappingURL=server_tool_render.test.js.map