@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,181 +0,0 @@
1
- /**
2
- * In-memory run accumulator across hooks.
3
- *
4
- * Maintains a Map<RunId, PartialRun> that collects data from multiple
5
- * hooks (llm_input, after_tool_call, llm_output) within a single agent run.
6
- * A secondary Map<SessionKey, RunId> correlates hooks that don't carry runId.
7
- */
8
-
9
- import { hashText } from "../../../../src/memory/internal.js";
10
- import type { PartialRun, CompletedRun, ToolCallRecord, RunId, SessionKey } from "../types.js";
11
-
12
- export type RunTracker = ReturnType<typeof createRunTracker>;
13
-
14
- export function createRunTracker() {
15
- const runs = new Map<RunId, PartialRun>();
16
- const sessionToRun = new Map<SessionKey, RunId>();
17
-
18
- function getOrCreate(runId: RunId): PartialRun {
19
- let run = runs.get(runId);
20
- if (!run) {
21
- run = {
22
- runId,
23
- toolCalls: [],
24
- startedAt: Date.now(),
25
- };
26
- runs.set(runId, run);
27
- }
28
- return run;
29
- }
30
-
31
- function bindSession(sessionKey: SessionKey, runId: RunId): void {
32
- sessionToRun.set(sessionKey, runId);
33
- }
34
-
35
- function getRunIdForSession(sessionKey: SessionKey): RunId | undefined {
36
- return sessionToRun.get(sessionKey);
37
- }
38
-
39
- /**
40
- * Called from llm_input hook. Captures run start metadata.
41
- */
42
- function onLlmInput(params: {
43
- runId: string;
44
- sessionId: string;
45
- provider: string;
46
- model: string;
47
- prompt: string;
48
- sessionKey?: string;
49
- agentId?: string;
50
- }): void {
51
- const run = getOrCreate(params.runId);
52
- run.sessionId = params.sessionId;
53
- run.provider = params.provider;
54
- run.model = params.model;
55
- run.promptHash = hashText(params.prompt);
56
- run.promptLength = params.prompt.length;
57
- run.agentId = params.agentId;
58
- if (params.sessionKey) {
59
- run.sessionKey = params.sessionKey;
60
- bindSession(params.sessionKey, params.runId);
61
- }
62
- }
63
-
64
- /**
65
- * Called from llm_output hook. Captures usage and response data.
66
- */
67
- function onLlmOutput(params: {
68
- runId: string;
69
- sessionId: string;
70
- assistantTexts: string[];
71
- usage?: {
72
- input?: number;
73
- output?: number;
74
- cacheRead?: number;
75
- cacheWrite?: number;
76
- total?: number;
77
- };
78
- }): void {
79
- const run = getOrCreate(params.runId);
80
- run.responseLength = params.assistantTexts.reduce((sum, t) => sum + t.length, 0);
81
- run.usage = params.usage ?? {};
82
- }
83
-
84
- /**
85
- * Called from after_tool_call hook. Captures tool call traces.
86
- */
87
- function onToolCall(params: {
88
- toolName: string;
89
- durationMs?: number;
90
- success: boolean;
91
- error?: string;
92
- paramHash: string;
93
- sessionKey?: string;
94
- }): void {
95
- // Find the run by session key
96
- const runId = params.sessionKey ? sessionToRun.get(params.sessionKey) : undefined;
97
- if (!runId) return;
98
-
99
- const run = runs.get(runId);
100
- if (!run) return;
101
-
102
- const record: ToolCallRecord = {
103
- toolName: params.toolName,
104
- durationMs: params.durationMs ?? null,
105
- success: params.success,
106
- error: params.error ?? null,
107
- paramHash: params.paramHash,
108
- };
109
- run.toolCalls.push(record);
110
- run.responseToolCallCount = (run.responseToolCallCount ?? 0) + 1;
111
- }
112
-
113
- /**
114
- * Called from agent_end hook. Finalizes the run and returns a CompletedRun
115
- * if all required fields are present, otherwise null.
116
- */
117
- function finalize(params: {
118
- sessionKey?: string;
119
- agentId?: string;
120
- sessionId?: string;
121
- success: boolean;
122
- error?: string;
123
- durationMs?: number;
124
- }): CompletedRun | null {
125
- const runId = params.sessionKey ? sessionToRun.get(params.sessionKey) : undefined;
126
- if (!runId) return null;
127
-
128
- const run = runs.get(runId);
129
- if (!run) return null;
130
-
131
- // Must have captured llm_input at minimum
132
- if (!run.provider || !run.model || !run.promptHash) return null;
133
-
134
- const completed: CompletedRun = {
135
- runId: run.runId,
136
- sessionId: run.sessionId ?? params.sessionId ?? "",
137
- sessionKey: run.sessionKey ?? params.sessionKey ?? "",
138
- agentId: run.agentId ?? params.agentId ?? "",
139
- provider: run.provider,
140
- model: run.model,
141
- promptHash: run.promptHash,
142
- promptLength: run.promptLength ?? 0,
143
- responseLength: run.responseLength ?? 0,
144
- responseToolCallCount: run.responseToolCallCount ?? 0,
145
- usage: run.usage ?? {},
146
- toolCalls: run.toolCalls,
147
- success: params.success,
148
- error: params.error ?? null,
149
- durationMs: params.durationMs ?? Date.now() - run.startedAt,
150
- startedAt: run.startedAt,
151
- completedAt: Date.now(),
152
- };
153
-
154
- // Clean up
155
- runs.delete(runId);
156
- if (params.sessionKey) {
157
- sessionToRun.delete(params.sessionKey);
158
- }
159
-
160
- return completed;
161
- }
162
-
163
- function getActiveRunCount(): number {
164
- return runs.size;
165
- }
166
-
167
- function clear(): void {
168
- runs.clear();
169
- sessionToRun.clear();
170
- }
171
-
172
- return {
173
- onLlmInput,
174
- onLlmOutput,
175
- onToolCall,
176
- finalize,
177
- getActiveRunCount,
178
- getRunIdForSession,
179
- clear,
180
- };
181
- }
@@ -1,74 +0,0 @@
1
- /**
2
- * Data normalization utilities for captured run data.
3
- */
4
-
5
- import type { CompletedRun, RunRow, ToolCallRow, UsageData } from "../types.js";
6
-
7
- /**
8
- * Normalize usage data, clamping negative values to 0.
9
- */
10
- export function normalizeUsage(usage: UsageData | undefined): UsageData {
11
- if (!usage) return { input: 0, output: 0, cacheRead: 0, cacheWrite: 0, total: 0 };
12
- return {
13
- input: Math.max(0, usage.input ?? 0),
14
- output: Math.max(0, usage.output ?? 0),
15
- cacheRead: Math.max(0, usage.cacheRead ?? 0),
16
- cacheWrite: Math.max(0, usage.cacheWrite ?? 0),
17
- total: Math.max(0, usage.total ?? 0),
18
- };
19
- }
20
-
21
- /**
22
- * Reconstruct a CompletedRun from DB rows.
23
- */
24
- export function reconstructCompletedRun(row: RunRow, toolCalls: ToolCallRow[]): CompletedRun {
25
- return {
26
- runId: row.run_id,
27
- sessionId: row.session_id,
28
- sessionKey: row.session_key,
29
- agentId: row.agent_id,
30
- provider: row.provider,
31
- model: row.model,
32
- promptHash: row.prompt_hash,
33
- promptLength: row.prompt_length,
34
- responseLength: row.response_length,
35
- responseToolCallCount: row.response_tool_call_count,
36
- usage: {
37
- input: row.usage_input,
38
- output: row.usage_output,
39
- cacheRead: row.usage_cache_read,
40
- cacheWrite: row.usage_cache_write,
41
- total: row.usage_total,
42
- },
43
- toolCalls: toolCalls.map((tc) => ({
44
- toolName: tc.tool_name,
45
- durationMs: tc.duration_ms,
46
- success: Boolean(tc.success),
47
- error: tc.error,
48
- paramHash: tc.param_hash,
49
- })),
50
- success: Boolean(row.success),
51
- error: row.error,
52
- durationMs: row.duration_ms,
53
- startedAt: row.started_at,
54
- completedAt: row.completed_at,
55
- };
56
- }
57
-
58
- /**
59
- * Normalize a completed run, ensuring all numeric fields are non-negative
60
- * and strings are trimmed.
61
- */
62
- export function normalizeCompletedRun(run: CompletedRun): CompletedRun {
63
- return {
64
- ...run,
65
- provider: run.provider.trim(),
66
- model: run.model.trim(),
67
- promptLength: Math.max(0, run.promptLength),
68
- responseLength: Math.max(0, run.responseLength),
69
- responseToolCallCount: Math.max(0, run.responseToolCallCount),
70
- durationMs: Math.max(0, run.durationMs),
71
- usage: normalizeUsage(run.usage),
72
- error: run.error?.trim() || null,
73
- };
74
- }