@symerian/symi 3.0.18 → 3.0.19

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 (116) hide show
  1. package/dist/build-info.json +3 -3
  2. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  3. package/package.json +1 -1
  4. package/extensions/copilot-proxy/README.md +0 -24
  5. package/extensions/copilot-proxy/index.ts +0 -154
  6. package/extensions/copilot-proxy/node_modules/.bin/symi +0 -21
  7. package/extensions/copilot-proxy/package.json +0 -15
  8. package/extensions/copilot-proxy/symi.plugin.json +0 -9
  9. package/extensions/device-pair/index.ts +0 -642
  10. package/extensions/device-pair/symi.plugin.json +0 -20
  11. package/extensions/diagnostics-otel/index.ts +0 -15
  12. package/extensions/diagnostics-otel/node_modules/.bin/acorn +0 -21
  13. package/extensions/diagnostics-otel/node_modules/.bin/symi +0 -21
  14. package/extensions/diagnostics-otel/package.json +0 -27
  15. package/extensions/diagnostics-otel/src/service.test.ts +0 -290
  16. package/extensions/diagnostics-otel/src/service.ts +0 -666
  17. package/extensions/diagnostics-otel/symi.plugin.json +0 -8
  18. package/extensions/google-antigravity-auth/README.md +0 -24
  19. package/extensions/google-antigravity-auth/index.ts +0 -424
  20. package/extensions/google-antigravity-auth/node_modules/.bin/symi +0 -21
  21. package/extensions/google-antigravity-auth/package.json +0 -15
  22. package/extensions/google-antigravity-auth/symi.plugin.json +0 -9
  23. package/extensions/google-gemini-cli-auth/README.md +0 -35
  24. package/extensions/google-gemini-cli-auth/index.ts +0 -75
  25. package/extensions/google-gemini-cli-auth/node_modules/.bin/symi +0 -21
  26. package/extensions/google-gemini-cli-auth/oauth.test.ts +0 -162
  27. package/extensions/google-gemini-cli-auth/oauth.ts +0 -636
  28. package/extensions/google-gemini-cli-auth/package.json +0 -15
  29. package/extensions/google-gemini-cli-auth/symi.plugin.json +0 -9
  30. package/extensions/learning-loop/index.ts +0 -159
  31. package/extensions/learning-loop/node_modules/.bin/symi +0 -21
  32. package/extensions/learning-loop/package.json +0 -18
  33. package/extensions/learning-loop/src/analytics/gateway-methods.ts +0 -230
  34. package/extensions/learning-loop/src/analytics/metrics-aggregator.ts +0 -153
  35. package/extensions/learning-loop/src/capture/run-tracker.ts +0 -181
  36. package/extensions/learning-loop/src/capture/serializer.ts +0 -74
  37. package/extensions/learning-loop/src/db.ts +0 -583
  38. package/extensions/learning-loop/src/feedback/explicit-feedback.ts +0 -58
  39. package/extensions/learning-loop/src/feedback/implicit-signals.ts +0 -89
  40. package/extensions/learning-loop/src/graph/edge-inference.ts +0 -189
  41. package/extensions/learning-loop/src/graph/graph-retrieval.ts +0 -144
  42. package/extensions/learning-loop/src/graph/graph-store.ts +0 -183
  43. package/extensions/learning-loop/src/hooks.ts +0 -244
  44. package/extensions/learning-loop/src/injection/cache.ts +0 -73
  45. package/extensions/learning-loop/src/injection/context-injector.ts +0 -104
  46. package/extensions/learning-loop/src/injection/prompt-builder.ts +0 -43
  47. package/extensions/learning-loop/src/learning/embedding-bridge.ts +0 -54
  48. package/extensions/learning-loop/src/learning/learning-extractor.ts +0 -217
  49. package/extensions/learning-loop/src/learning/learning-store.ts +0 -158
  50. package/extensions/learning-loop/src/learning/retrieval.ts +0 -87
  51. package/extensions/learning-loop/src/math/confidence-intervals.ts +0 -62
  52. package/extensions/learning-loop/src/math/ewma.ts +0 -51
  53. package/extensions/learning-loop/src/math/weighted-scorer.ts +0 -42
  54. package/extensions/learning-loop/src/schema.ts +0 -176
  55. package/extensions/learning-loop/src/scoring/normalization.ts +0 -32
  56. package/extensions/learning-loop/src/scoring/quality-engine.ts +0 -78
  57. package/extensions/learning-loop/src/scoring/signal-extractors.ts +0 -155
  58. package/extensions/learning-loop/src/test/context-injector.test.ts +0 -142
  59. package/extensions/learning-loop/src/test/fixes.test.ts +0 -1286
  60. package/extensions/learning-loop/src/test/graph.test.ts +0 -711
  61. package/extensions/learning-loop/src/test/integration.test.ts +0 -312
  62. package/extensions/learning-loop/src/test/learning-store.test.ts +0 -191
  63. package/extensions/learning-loop/src/test/math.test.ts +0 -148
  64. package/extensions/learning-loop/src/test/quality-engine.test.ts +0 -231
  65. package/extensions/learning-loop/src/test/run-tracker.test.ts +0 -143
  66. package/extensions/learning-loop/src/types.ts +0 -281
  67. package/extensions/learning-loop/symi.plugin.json +0 -46
  68. package/extensions/llm-task/README.md +0 -97
  69. package/extensions/llm-task/index.ts +0 -6
  70. package/extensions/llm-task/package.json +0 -12
  71. package/extensions/llm-task/src/llm-task-tool.test.ts +0 -138
  72. package/extensions/llm-task/src/llm-task-tool.ts +0 -249
  73. package/extensions/llm-task/symi.plugin.json +0 -21
  74. package/extensions/memory-lancedb/config.ts +0 -161
  75. package/extensions/memory-lancedb/index.test.ts +0 -330
  76. package/extensions/memory-lancedb/index.ts +0 -670
  77. package/extensions/memory-lancedb/node_modules/.bin/arrow2csv +0 -21
  78. package/extensions/memory-lancedb/node_modules/.bin/openai +0 -21
  79. package/extensions/memory-lancedb/node_modules/.bin/symi +0 -21
  80. package/extensions/memory-lancedb/package.json +0 -20
  81. package/extensions/memory-lancedb/symi.plugin.json +0 -71
  82. package/extensions/minimax-portal-auth/README.md +0 -33
  83. package/extensions/minimax-portal-auth/index.ts +0 -161
  84. package/extensions/minimax-portal-auth/node_modules/.bin/symi +0 -21
  85. package/extensions/minimax-portal-auth/oauth.ts +0 -247
  86. package/extensions/minimax-portal-auth/package.json +0 -15
  87. package/extensions/minimax-portal-auth/symi.plugin.json +0 -9
  88. package/extensions/model-equalizer/index.ts +0 -80
  89. package/extensions/model-equalizer/skills/model-equalizer/SKILL.md +0 -58
  90. package/extensions/model-equalizer/src/detection.ts +0 -62
  91. package/extensions/model-equalizer/src/enhancer.ts +0 -63
  92. package/extensions/model-equalizer/src/test/detection.test.ts +0 -218
  93. package/extensions/model-equalizer/src/test/enhancer.test.ts +0 -137
  94. package/extensions/model-equalizer/src/test/integration.test.ts +0 -185
  95. package/extensions/model-equalizer/src/types.ts +0 -24
  96. package/extensions/model-equalizer/symi.plugin.json +0 -12
  97. package/extensions/phone-control/index.ts +0 -421
  98. package/extensions/phone-control/symi.plugin.json +0 -10
  99. package/extensions/pipeline/README.md +0 -75
  100. package/extensions/pipeline/SKILL.md +0 -97
  101. package/extensions/pipeline/index.ts +0 -18
  102. package/extensions/pipeline/package.json +0 -11
  103. package/extensions/pipeline/src/pipeline-tool.test.ts +0 -345
  104. package/extensions/pipeline/src/pipeline-tool.ts +0 -266
  105. package/extensions/pipeline/src/windows-spawn.test.ts +0 -148
  106. package/extensions/pipeline/src/windows-spawn.ts +0 -193
  107. package/extensions/pipeline/symi.plugin.json +0 -10
  108. package/extensions/qwen-portal-auth/README.md +0 -24
  109. package/extensions/qwen-portal-auth/index.ts +0 -134
  110. package/extensions/qwen-portal-auth/oauth.ts +0 -190
  111. package/extensions/qwen-portal-auth/symi.plugin.json +0 -9
  112. package/extensions/talk-voice/index.ts +0 -150
  113. package/extensions/talk-voice/symi.plugin.json +0 -10
  114. package/extensions/thread-ownership/index.test.ts +0 -180
  115. package/extensions/thread-ownership/index.ts +0 -133
  116. package/extensions/thread-ownership/symi.plugin.json +0 -28
@@ -1,162 +0,0 @@
1
- import { join, parse } from "node:path";
2
- import { describe, expect, it, vi, beforeEach, afterEach } from "vitest";
3
-
4
- vi.mock("symi/plugin-sdk", () => ({
5
- isWSL2Sync: () => false,
6
- }));
7
-
8
- // Mock fs module before importing the module under test
9
- const mockExistsSync = vi.fn();
10
- const mockReadFileSync = vi.fn();
11
- const mockRealpathSync = vi.fn();
12
- const mockReaddirSync = vi.fn();
13
-
14
- vi.mock("node:fs", async (importOriginal) => {
15
- const actual = await importOriginal<typeof import("node:fs")>();
16
- return {
17
- ...actual,
18
- existsSync: (...args: Parameters<typeof actual.existsSync>) => mockExistsSync(...args),
19
- readFileSync: (...args: Parameters<typeof actual.readFileSync>) => mockReadFileSync(...args),
20
- realpathSync: (...args: Parameters<typeof actual.realpathSync>) => mockRealpathSync(...args),
21
- readdirSync: (...args: Parameters<typeof actual.readdirSync>) => mockReaddirSync(...args),
22
- };
23
- });
24
-
25
- describe("extractGeminiCliCredentials", () => {
26
- const normalizePath = (value: string) =>
27
- value.replace(/\\/g, "/").replace(/\/+$/, "").toLowerCase();
28
- const rootDir = parse(process.cwd()).root || "/";
29
- const FAKE_CLIENT_ID = "123456789-abcdef.apps.googleusercontent.com";
30
- const FAKE_CLIENT_SECRET = "GOCSPX-FakeSecretValue123";
31
- const FAKE_OAUTH2_CONTENT = `
32
- const clientId = "${FAKE_CLIENT_ID}";
33
- const clientSecret = "${FAKE_CLIENT_SECRET}";
34
- `;
35
-
36
- let originalPath: string | undefined;
37
-
38
- function makeFakeLayout() {
39
- const binDir = join(rootDir, "fake", "bin");
40
- const geminiPath = join(binDir, "gemini");
41
- const resolvedPath = join(
42
- rootDir,
43
- "fake",
44
- "lib",
45
- "node_modules",
46
- "@google",
47
- "gemini-cli",
48
- "dist",
49
- "index.js",
50
- );
51
- const oauth2Path = join(
52
- rootDir,
53
- "fake",
54
- "lib",
55
- "node_modules",
56
- "@google",
57
- "gemini-cli",
58
- "node_modules",
59
- "@google",
60
- "gemini-cli-core",
61
- "dist",
62
- "src",
63
- "code_assist",
64
- "oauth2.js",
65
- );
66
-
67
- return { binDir, geminiPath, resolvedPath, oauth2Path };
68
- }
69
-
70
- function installGeminiLayout(params: {
71
- oauth2Exists?: boolean;
72
- oauth2Content?: string;
73
- readdir?: string[];
74
- }) {
75
- const layout = makeFakeLayout();
76
- process.env.PATH = layout.binDir;
77
-
78
- mockExistsSync.mockImplementation((p: string) => {
79
- const normalized = normalizePath(p);
80
- if (normalized === normalizePath(layout.geminiPath)) {
81
- return true;
82
- }
83
- if (params.oauth2Exists && normalized === normalizePath(layout.oauth2Path)) {
84
- return true;
85
- }
86
- return false;
87
- });
88
- mockRealpathSync.mockReturnValue(layout.resolvedPath);
89
- if (params.oauth2Content !== undefined) {
90
- mockReadFileSync.mockReturnValue(params.oauth2Content);
91
- }
92
- if (params.readdir) {
93
- mockReaddirSync.mockReturnValue(params.readdir);
94
- }
95
-
96
- return layout;
97
- }
98
-
99
- beforeEach(async () => {
100
- vi.clearAllMocks();
101
- originalPath = process.env.PATH;
102
- });
103
-
104
- afterEach(() => {
105
- process.env.PATH = originalPath;
106
- });
107
-
108
- it("returns null when gemini binary is not in PATH", async () => {
109
- process.env.PATH = "/nonexistent";
110
- mockExistsSync.mockReturnValue(false);
111
-
112
- const { extractGeminiCliCredentials, clearCredentialsCache } = await import("./oauth.js");
113
- clearCredentialsCache();
114
- expect(extractGeminiCliCredentials()).toBeNull();
115
- });
116
-
117
- it("extracts credentials from oauth2.js in known path", async () => {
118
- installGeminiLayout({ oauth2Exists: true, oauth2Content: FAKE_OAUTH2_CONTENT });
119
-
120
- const { extractGeminiCliCredentials, clearCredentialsCache } = await import("./oauth.js");
121
- clearCredentialsCache();
122
- const result = extractGeminiCliCredentials();
123
-
124
- expect(result).toEqual({
125
- clientId: FAKE_CLIENT_ID,
126
- clientSecret: FAKE_CLIENT_SECRET,
127
- });
128
- });
129
-
130
- it("returns null when oauth2.js cannot be found", async () => {
131
- installGeminiLayout({ oauth2Exists: false, readdir: [] });
132
-
133
- const { extractGeminiCliCredentials, clearCredentialsCache } = await import("./oauth.js");
134
- clearCredentialsCache();
135
- expect(extractGeminiCliCredentials()).toBeNull();
136
- });
137
-
138
- it("returns null when oauth2.js lacks credentials", async () => {
139
- installGeminiLayout({ oauth2Exists: true, oauth2Content: "// no credentials here" });
140
-
141
- const { extractGeminiCliCredentials, clearCredentialsCache } = await import("./oauth.js");
142
- clearCredentialsCache();
143
- expect(extractGeminiCliCredentials()).toBeNull();
144
- });
145
-
146
- it("caches credentials after first extraction", async () => {
147
- installGeminiLayout({ oauth2Exists: true, oauth2Content: FAKE_OAUTH2_CONTENT });
148
-
149
- const { extractGeminiCliCredentials, clearCredentialsCache } = await import("./oauth.js");
150
- clearCredentialsCache();
151
-
152
- // First call
153
- const result1 = extractGeminiCliCredentials();
154
- expect(result1).not.toBeNull();
155
-
156
- // Second call should use cache (readFileSync not called again)
157
- const readCount = mockReadFileSync.mock.calls.length;
158
- const result2 = extractGeminiCliCredentials();
159
- expect(result2).toEqual(result1);
160
- expect(mockReadFileSync.mock.calls.length).toBe(readCount);
161
- });
162
- });