openhorse 0.2.11 → 0.2.13

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 (105) hide show
  1. package/dist/commands/index.d.ts.map +1 -1
  2. package/dist/commands/index.js +681 -6
  3. package/dist/commands/index.js.map +1 -1
  4. package/dist/commands/types.d.ts +3 -1
  5. package/dist/commands/types.d.ts.map +1 -1
  6. package/dist/commands/types.js.map +1 -1
  7. package/dist/core/checkpoint.d.ts +1 -0
  8. package/dist/core/checkpoint.d.ts.map +1 -1
  9. package/dist/core/checkpoint.js +59 -10
  10. package/dist/core/checkpoint.js.map +1 -1
  11. package/dist/core/tool-artifacts.d.ts +10 -0
  12. package/dist/core/tool-artifacts.d.ts.map +1 -1
  13. package/dist/core/tool-artifacts.js +81 -3
  14. package/dist/core/tool-artifacts.js.map +1 -1
  15. package/dist/framework/index.d.ts +2 -2
  16. package/dist/framework/index.d.ts.map +1 -1
  17. package/dist/framework/index.js +5 -1
  18. package/dist/framework/index.js.map +1 -1
  19. package/dist/framework/query.d.ts +104 -1
  20. package/dist/framework/query.d.ts.map +1 -1
  21. package/dist/framework/query.js +454 -18
  22. package/dist/framework/query.js.map +1 -1
  23. package/dist/framework/store.d.ts +5 -0
  24. package/dist/framework/store.d.ts.map +1 -1
  25. package/dist/framework/store.js +4 -0
  26. package/dist/framework/store.js.map +1 -1
  27. package/dist/framework/tool-scheduler.d.ts +9 -0
  28. package/dist/framework/tool-scheduler.d.ts.map +1 -1
  29. package/dist/framework/tool-scheduler.js +34 -0
  30. package/dist/framework/tool-scheduler.js.map +1 -1
  31. package/dist/ink-ui/components/StatusLine.d.ts.map +1 -1
  32. package/dist/ink-ui/components/StatusLine.js +7 -1
  33. package/dist/ink-ui/components/StatusLine.js.map +1 -1
  34. package/dist/runtime/agent-runtime-protocol.d.ts +13 -1
  35. package/dist/runtime/agent-runtime-protocol.d.ts.map +1 -1
  36. package/dist/runtime/agent-runtime-protocol.js +24 -0
  37. package/dist/runtime/agent-runtime-protocol.js.map +1 -1
  38. package/dist/runtime/chat-controller.d.ts +3 -0
  39. package/dist/runtime/chat-controller.d.ts.map +1 -1
  40. package/dist/runtime/chat-controller.js +930 -5
  41. package/dist/runtime/chat-controller.js.map +1 -1
  42. package/dist/runtime/loop-budget.d.ts +5 -0
  43. package/dist/runtime/loop-budget.d.ts.map +1 -0
  44. package/dist/runtime/loop-budget.js +77 -0
  45. package/dist/runtime/loop-budget.js.map +1 -0
  46. package/dist/runtime/ui-events.d.ts +39 -1
  47. package/dist/runtime/ui-events.d.ts.map +1 -1
  48. package/dist/runtime/ui-events.js.map +1 -1
  49. package/dist/services/config-dir.d.ts +2 -0
  50. package/dist/services/config-dir.d.ts.map +1 -1
  51. package/dist/services/config-dir.js +5 -0
  52. package/dist/services/config-dir.js.map +1 -1
  53. package/dist/services/config.d.ts +4 -2
  54. package/dist/services/config.d.ts.map +1 -1
  55. package/dist/services/config.js +19 -0
  56. package/dist/services/config.js.map +1 -1
  57. package/dist/services/doctor.d.ts.map +1 -1
  58. package/dist/services/doctor.js +34 -4
  59. package/dist/services/doctor.js.map +1 -1
  60. package/dist/services/global-config.d.ts +17 -0
  61. package/dist/services/global-config.d.ts.map +1 -1
  62. package/dist/services/global-config.js.map +1 -1
  63. package/dist/services/llm.d.ts +18 -0
  64. package/dist/services/llm.d.ts.map +1 -1
  65. package/dist/services/llm.js +175 -163
  66. package/dist/services/llm.js.map +1 -1
  67. package/dist/services/provider-diagnostics.d.ts +30 -0
  68. package/dist/services/provider-diagnostics.d.ts.map +1 -0
  69. package/dist/services/provider-diagnostics.js +308 -0
  70. package/dist/services/provider-diagnostics.js.map +1 -0
  71. package/dist/services/redaction.d.ts +2 -0
  72. package/dist/services/redaction.d.ts.map +1 -0
  73. package/dist/services/redaction.js +27 -0
  74. package/dist/services/redaction.js.map +1 -0
  75. package/dist/services/session-index.d.ts.map +1 -1
  76. package/dist/services/session-index.js +7 -3
  77. package/dist/services/session-index.js.map +1 -1
  78. package/dist/services/session-storage.d.ts +100 -0
  79. package/dist/services/session-storage.d.ts.map +1 -1
  80. package/dist/services/session-storage.js +154 -3
  81. package/dist/services/session-storage.js.map +1 -1
  82. package/dist/services/verification-profile.d.ts +36 -0
  83. package/dist/services/verification-profile.d.ts.map +1 -0
  84. package/dist/services/verification-profile.js +239 -0
  85. package/dist/services/verification-profile.js.map +1 -0
  86. package/dist/services/workspace-state.d.ts +25 -0
  87. package/dist/services/workspace-state.d.ts.map +1 -0
  88. package/dist/services/workspace-state.js +115 -0
  89. package/dist/services/workspace-state.js.map +1 -0
  90. package/dist/skills/loader.d.ts +5 -1
  91. package/dist/skills/loader.d.ts.map +1 -1
  92. package/dist/skills/loader.js +34 -0
  93. package/dist/skills/loader.js.map +1 -1
  94. package/dist/skills/registry.d.ts +5 -1
  95. package/dist/skills/registry.d.ts.map +1 -1
  96. package/dist/skills/registry.js +23 -0
  97. package/dist/skills/registry.js.map +1 -1
  98. package/dist/skills/runtime.d.ts +6 -0
  99. package/dist/skills/runtime.d.ts.map +1 -1
  100. package/dist/skills/runtime.js +88 -4
  101. package/dist/skills/runtime.js.map +1 -1
  102. package/dist/skills/types.d.ts +19 -0
  103. package/dist/skills/types.d.ts.map +1 -1
  104. package/dist/skills/types.js.map +1 -1
  105. package/package.json +1 -1
@@ -0,0 +1,308 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LLMProviderError = void 0;
4
+ exports.redactProviderSecrets = redactProviderSecrets;
5
+ exports.diagnoseProviderError = diagnoseProviderError;
6
+ exports.toLLMProviderError = toLLMProviderError;
7
+ exports.formatProviderErrorMessage = formatProviderErrorMessage;
8
+ exports.diagnoseProviderConfig = diagnoseProviderConfig;
9
+ const model_context_1 = require("./model-context");
10
+ class LLMProviderError extends Error {
11
+ constructor(diagnostic) {
12
+ super(formatProviderErrorMessage(diagnostic));
13
+ this.name = 'LLMProviderError';
14
+ this.diagnostic = diagnostic;
15
+ }
16
+ }
17
+ exports.LLMProviderError = LLMProviderError;
18
+ function isRecord(value) {
19
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
20
+ }
21
+ function stringValue(value) {
22
+ return typeof value === 'string' && value.trim().length > 0 ? value : undefined;
23
+ }
24
+ function numberValue(value) {
25
+ return typeof value === 'number' && Number.isFinite(value) ? value : undefined;
26
+ }
27
+ function codeValue(value) {
28
+ if (typeof value === 'string' && value.trim().length > 0)
29
+ return value;
30
+ if (typeof value === 'number' && Number.isFinite(value))
31
+ return String(value);
32
+ return undefined;
33
+ }
34
+ function redactProviderSecrets(input) {
35
+ return input
36
+ .replace(/\b(https?:\/\/)([^/\s@]+)@/gi, '$1[REDACTED]@')
37
+ .replace(/([?&](?:api[_-]?key|key|token|secret|authorization)=)[^&\s#]+/gi, '$1[REDACTED]')
38
+ .replace(/\bsk-[A-Za-z0-9_-]{8,}\b/g, 'sk-***')
39
+ .replace(/\bBearer\s+[A-Za-z0-9._~+/=-]{8,}/gi, 'Bearer [REDACTED]')
40
+ .replace(/\b(api[_-]?key|token|secret|authorization)\s*[:=]\s*["']?[^"'\s,;]+/gi, '$1=[REDACTED]');
41
+ }
42
+ function compactProviderMessage(input) {
43
+ const compact = redactProviderSecrets(input).replace(/\s+/g, ' ').trim();
44
+ return compact.length > 600 ? `${compact.slice(0, 597)}...` : compact;
45
+ }
46
+ function extractErrorParts(error) {
47
+ const messages = [];
48
+ let status;
49
+ let code;
50
+ let type;
51
+ if (error instanceof Error) {
52
+ messages.push(error.message);
53
+ }
54
+ else if (typeof error === 'string') {
55
+ messages.push(error);
56
+ }
57
+ if (isRecord(error)) {
58
+ status = numberValue(error.status) ?? numberValue(error.statusCode);
59
+ code = codeValue(error.code);
60
+ type = stringValue(error.type);
61
+ const topLevelMessage = stringValue(error.message);
62
+ if (topLevelMessage)
63
+ messages.push(topLevelMessage);
64
+ const response = isRecord(error.response) ? error.response : undefined;
65
+ status = status ?? numberValue(response?.status);
66
+ const body = isRecord(error.error)
67
+ ? error.error
68
+ : isRecord(error.body)
69
+ ? error.body
70
+ : undefined;
71
+ const nestedError = isRecord(body?.error) ? body.error : undefined;
72
+ code = code ?? codeValue(body?.code) ?? codeValue(nestedError?.code);
73
+ type = type ?? stringValue(body?.type) ?? stringValue(nestedError?.type);
74
+ const bodyMessage = stringValue(body?.message) ?? stringValue(nestedError?.message);
75
+ if (bodyMessage)
76
+ messages.push(bodyMessage);
77
+ }
78
+ if (messages.length === 0) {
79
+ messages.push(String(error));
80
+ }
81
+ return {
82
+ status,
83
+ code,
84
+ type,
85
+ message: compactProviderMessage([...new Set(messages)].join(' | ')),
86
+ };
87
+ }
88
+ function matchesAny(text, patterns) {
89
+ return patterns.some(pattern => pattern.test(text));
90
+ }
91
+ function hintFor(type) {
92
+ switch (type) {
93
+ case 'model_not_found':
94
+ return 'Model was not found by the provider. Check OPENHORSE_MODEL and the provider model ID.';
95
+ case 'invalid_endpoint':
96
+ return 'Endpoint appears invalid or unreachable. Check OPENHORSE_API_BASE_URL and use the provider OpenAI-compatible base URL.';
97
+ case 'auth_failed':
98
+ return 'Provider authentication failed. Check OPENHORSE_API_KEY and make sure it matches the configured endpoint.';
99
+ case 'quota_or_credit_exhausted':
100
+ return 'Provider quota or credit appears insufficient. Recharge the provider account or switch model/provider.';
101
+ case 'rate_limit':
102
+ return 'Provider rate limit was reached. Wait before retrying, reduce request rate, or switch model/provider.';
103
+ case 'provider_busy':
104
+ return 'Provider is busy or overloaded. Retry later or configure OPENHORSE_FALLBACK_MODEL.';
105
+ case 'unknown_provider_error':
106
+ return 'Provider request failed. Check provider status and model/endpoint configuration.';
107
+ }
108
+ }
109
+ function retryableFor(type, status, message) {
110
+ if (type === 'rate_limit' || type === 'provider_busy')
111
+ return true;
112
+ if (type === 'auth_failed' || type === 'quota_or_credit_exhausted' || type === 'model_not_found')
113
+ return false;
114
+ if (type === 'invalid_endpoint')
115
+ return false;
116
+ if (status === 500 || status === 502 || status === 503 || status === 504)
117
+ return true;
118
+ if (!message)
119
+ return false;
120
+ return matchesAny(message.toLowerCase(), [
121
+ /\btimeout\b/,
122
+ /\beconnreset\b/,
123
+ /\bconnection\b/,
124
+ /\bepipe\b/,
125
+ /\bnetwork\b/,
126
+ /\btemporarily unavailable\b/,
127
+ ]);
128
+ }
129
+ function diagnoseProviderError(error) {
130
+ const parts = extractErrorParts(error);
131
+ const text = [parts.message, parts.code, parts.type].filter(Boolean).join(' ').toLowerCase();
132
+ const code = parts.code?.toLowerCase();
133
+ let type = 'unknown_provider_error';
134
+ if (code === 'model_not_found'
135
+ || matchesAny(text, [
136
+ /\bmodel_not_found\b/,
137
+ /\bmodel not found\b/,
138
+ /\bmodel .*not found\b/,
139
+ /\bmodel .*does not exist\b/,
140
+ /\bunknown model\b/,
141
+ ])) {
142
+ type = 'model_not_found';
143
+ }
144
+ else if (code === '11210'
145
+ || matchesAny(text, [
146
+ /\bnotenoughcverror\b/,
147
+ /\bnot enough cverror\b/,
148
+ /\bcode:\s*11210\b/,
149
+ /\binsufficient_quota\b/,
150
+ /\binsufficient quota\b/,
151
+ /\bquota exceeded\b/,
152
+ /\bcredit exhausted\b/,
153
+ /\binsufficient credit\b/,
154
+ /\bbilling hard limit\b/,
155
+ ])) {
156
+ type = 'quota_or_credit_exhausted';
157
+ }
158
+ else if (code === 'invalid_api_key'
159
+ || parts.status === 401
160
+ || parts.status === 403
161
+ || matchesAny(text, [
162
+ /\binvalid api key\b/,
163
+ /\binvalid_api_key\b/,
164
+ /\bauthentication\b/,
165
+ /\bauthorization failed\b/,
166
+ /\bunauthorized\b/,
167
+ /\bforbidden\b/,
168
+ /\baccess denied\b/,
169
+ /\btoken expired\b/,
170
+ ])) {
171
+ type = 'auth_failed';
172
+ }
173
+ else if (parts.status === 429
174
+ || matchesAny(text, [
175
+ /\brate limit\b/,
176
+ /\btoo many requests\b/,
177
+ /\bapi-limit\b/,
178
+ /\bapi_limit\b/,
179
+ /\bapi limit\b/,
180
+ /\brequest limit\b/,
181
+ /\brequests per minute\b/,
182
+ /\btokens per minute\b/,
183
+ /\btemporarily throttled\b/,
184
+ /\b429\b/,
185
+ ])) {
186
+ type = 'rate_limit';
187
+ }
188
+ else if (parts.status === 529
189
+ || matchesAny(text, [
190
+ /\bcode:\s*10012\b/,
191
+ /\bengineinternalerror\b/,
192
+ /\bsystem is busy\b/,
193
+ /\bservice is busy\b/,
194
+ /\bserver is busy\b/,
195
+ /\boverloaded\b/,
196
+ /\btry again later\b/,
197
+ ])) {
198
+ type = 'provider_busy';
199
+ }
200
+ else if (parts.status === 404
201
+ || matchesAny(text, [
202
+ /\binvalid url\b/,
203
+ /\berr_invalid_url\b/,
204
+ /\bunsupported protocol\b/,
205
+ /\bgetaddrinfo enotfound\b/,
206
+ /\benotfound\b/,
207
+ /\beconnrefused\b/,
208
+ /\bfetch failed\b/,
209
+ ])) {
210
+ type = 'invalid_endpoint';
211
+ }
212
+ return {
213
+ type,
214
+ retryable: retryableFor(type, parts.status, text),
215
+ status: parts.status,
216
+ code: parts.code,
217
+ providerMessage: parts.message,
218
+ hint: hintFor(type),
219
+ };
220
+ }
221
+ function toLLMProviderError(error) {
222
+ if (error instanceof LLMProviderError)
223
+ return error;
224
+ if (error instanceof Error && error.name === 'AbortError')
225
+ return error;
226
+ return new LLMProviderError(diagnoseProviderError(error));
227
+ }
228
+ function formatProviderErrorMessage(diagnostic) {
229
+ const status = diagnostic.status ? ` status=${diagnostic.status}` : '';
230
+ const code = diagnostic.code ? ` code=${diagnostic.code}` : '';
231
+ return `LLM provider error [${diagnostic.type}${status}${code}]: ${diagnostic.hint}`;
232
+ }
233
+ function endpointDiagnostics(baseUrl) {
234
+ if (!baseUrl) {
235
+ return {
236
+ status: 'ok',
237
+ endpoint: '(default OpenAI-compatible endpoint)',
238
+ detail: ['endpoint=(default OpenAI-compatible endpoint)'],
239
+ };
240
+ }
241
+ const endpoint = compactProviderMessage(baseUrl);
242
+ let url;
243
+ try {
244
+ url = new URL(baseUrl);
245
+ }
246
+ catch {
247
+ return {
248
+ status: 'fail',
249
+ endpoint,
250
+ detail: [`endpoint=${endpoint}`, 'endpointStatus=invalid URL'],
251
+ };
252
+ }
253
+ if (url.protocol !== 'http:' && url.protocol !== 'https:') {
254
+ return {
255
+ status: 'fail',
256
+ endpoint,
257
+ detail: [`endpoint=${endpoint}`, `endpointStatus=unsupported protocol ${url.protocol}`],
258
+ };
259
+ }
260
+ if (/\/(?:chat\/completions|responses|messages)\/?$/i.test(url.pathname)) {
261
+ return {
262
+ status: 'warn',
263
+ endpoint,
264
+ detail: [
265
+ `endpoint=${endpoint}`,
266
+ 'endpointStatus=looks like a request path; configure the provider base URL instead',
267
+ ],
268
+ };
269
+ }
270
+ return {
271
+ status: 'ok',
272
+ endpoint,
273
+ detail: [`endpoint=${endpoint}`, 'endpointStatus=valid URL syntax'],
274
+ };
275
+ }
276
+ function worseStatus(left, right) {
277
+ if (left === 'fail' || right === 'fail')
278
+ return 'fail';
279
+ if (left === 'warn' || right === 'warn')
280
+ return 'warn';
281
+ return 'ok';
282
+ }
283
+ function diagnoseProviderConfig(input) {
284
+ const model = input.model.trim() || '(not set)';
285
+ const modelContext = (0, model_context_1.resolveModelContext)(model);
286
+ const endpoint = endpointDiagnostics(input.baseUrl);
287
+ const modelStatus = model === '(not set)' || modelContext.source === 'default' ? 'warn' : 'ok';
288
+ const keyStatus = input.apiKey ? 'ok' : 'fail';
289
+ const status = worseStatus(worseStatus(endpoint.status, modelStatus), keyStatus);
290
+ const provider = modelContext.provider ?? 'unknown';
291
+ return {
292
+ status,
293
+ summary: `${model} via ${provider}, endpoint ${endpoint.endpoint}`,
294
+ detail: [
295
+ `model=${model}`,
296
+ `provider=${provider}`,
297
+ `modelSource=${modelContext.source}`,
298
+ `matchedModel=${modelContext.matchedId}`,
299
+ `contextWindow=${modelContext.contextWindow}`,
300
+ `maxOutputTokens=${modelContext.maxOutputTokens ?? '(unknown)'}`,
301
+ ...endpoint.detail,
302
+ `apiKey=${input.apiKey ? 'configured' : 'missing'}`,
303
+ `fallbackModel=${input.fallbackModel || '(none)'}`,
304
+ 'networkCheck=skipped',
305
+ ],
306
+ };
307
+ }
308
+ //# sourceMappingURL=provider-diagnostics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-diagnostics.js","sourceRoot":"","sources":["../../src/services/provider-diagnostics.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function redactTraceText(text: string): string;
2
+ //# sourceMappingURL=redaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redaction.d.ts","sourceRoot":"","sources":["../../src/services/redaction.ts"],"names":[],"mappings":"AAqBA,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAKpD"}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.redactTraceText = redactTraceText;
4
+ const SECRET_PATTERNS = [
5
+ [
6
+ /\b(authorization\s*[:=]\s*)(["']?)(?:Bearer\s+)?[^\s"',;]+/gi,
7
+ '$1$2[REDACTED_SECRET]',
8
+ ],
9
+ [
10
+ /\b((?:api[_-]?key|access[_-]?token|auth[_-]?token|password|secret)\s*[:=]\s*)(["']?)[^\s"',;]+/gi,
11
+ '$1$2[REDACTED_SECRET]',
12
+ ],
13
+ [
14
+ /(["'](?:api[_-]?key|access[_-]?token|auth[_-]?token|password|secret)["']\s*:\s*)(["'])(?:[^"']+)(["'])/gi,
15
+ '$1$2[REDACTED_SECRET]$3',
16
+ ],
17
+ [
18
+ /\b((?:OPENAI_API_KEY|DASHSCOPE_API_KEY|ANTHROPIC_API_KEY|XAI_API_KEY)\s*=\s*)(["']?)[^\s"',;]+/g,
19
+ '$1$2[REDACTED_SECRET]',
20
+ ],
21
+ [/\bsk-[A-Za-z0-9_-]{8,}\b/g, '[REDACTED_SECRET]'],
22
+ [/\bBearer\s+[A-Za-z0-9._~+/=-]{8,}/gi, 'Bearer [REDACTED_SECRET]'],
23
+ ];
24
+ function redactTraceText(text) {
25
+ return SECRET_PATTERNS.reduce((current, [pattern, replacement]) => current.replace(pattern, replacement), text);
26
+ }
27
+ //# sourceMappingURL=redaction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redaction.js","sourceRoot":"","sources":["../../src/services/redaction.ts"],"names":[],"mappings":";;AAqBA,0CAKC;AA1BD,MAAM,eAAe,GAA4B;IAC/C;QACE,8DAA8D;QAC9D,uBAAuB;KACxB;IACD;QACE,kGAAkG;QAClG,uBAAuB;KACxB;IACD;QACE,0GAA0G;QAC1G,yBAAyB;KAC1B;IACD;QACE,iGAAiG;QACjG,uBAAuB;KACxB;IACD,CAAC,2BAA2B,EAAE,mBAAmB,CAAC;IAClD,CAAC,qCAAqC,EAAE,0BAA0B,CAAC;CACpE,CAAC;AAEF,SAAgB,eAAe,CAAC,IAAY;IAC1C,OAAO,eAAe,CAAC,MAAM,CAC3B,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,WAAW,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,WAAW,CAAC,EAC1E,IAAI,CACL,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"session-index.d.ts","sourceRoot":"","sources":["../../src/services/session-index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAUH,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,sBAAsB;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;CACrB;AAMD;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE;IACP,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,SAAS,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC,CAAC;CACvE,GACA,IAAI,CAwCN;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAU5F;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,IAAI,CAWlG;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAU/E;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAAE,GACnB,MAAM,EAAE,CAAC;AACZ,wBAAgB,cAAc,CAC5B,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,sBAAsB,EAAE,GACnC,MAAM,EAAE,CAAC"}
1
+ {"version":3,"file":"session-index.d.ts","sourceRoot":"","sources":["../../src/services/session-index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAWH,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,sBAAsB;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;CACrB;AAMD;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE;IACP,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,SAAS,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC,CAAC;CACvE,GACA,IAAI,CA0CN;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAU5F;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,IAAI,CAWlG;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAU/E;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAAE,GACnB,MAAM,EAAE,CAAC;AACZ,wBAAgB,cAAc,CAC5B,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,sBAAsB,EAAE,GACnC,MAAM,EAAE,CAAC"}
@@ -47,6 +47,7 @@ exports.searchSessions = searchSessions;
47
47
  const fs = __importStar(require("fs"));
48
48
  const path = __importStar(require("path"));
49
49
  const config_dir_1 = require("./config-dir");
50
+ const redaction_1 = require("./redaction");
50
51
  // ============================================================================
51
52
  // Index Management
52
53
  // ============================================================================
@@ -58,7 +59,7 @@ function updateSessionIndex(sessionId, projectPath, message) {
58
59
  const index = loadSessionIndex(sessionId, projectPath) ?? createEmptyIndex(sessionId);
59
60
  // Track user topics
60
61
  if (message.role === 'user' && message.content) {
61
- const topic = message.content.slice(0, 50).trim();
62
+ const topic = (0, redaction_1.redactTraceText)(message.content).slice(0, 50).trim();
62
63
  if (topic && !index.topics.includes(topic)) {
63
64
  index.topics.push(topic);
64
65
  // Keep only last 20 topics
@@ -76,8 +77,11 @@ function updateSessionIndex(sessionId, projectPath, message) {
76
77
  try {
77
78
  const args = JSON.parse(tc.function.arguments);
78
79
  const filePath = args.path || args.file || args.file_path;
79
- if (filePath && typeof filePath === 'string' && !index.files.includes(filePath)) {
80
- index.files.push(filePath);
80
+ if (filePath && typeof filePath === 'string') {
81
+ const safeFilePath = (0, redaction_1.redactTraceText)(filePath);
82
+ if (index.files.includes(safeFilePath))
83
+ continue;
84
+ index.files.push(safeFilePath);
81
85
  // Keep only last 100 files
82
86
  if (index.files.length > 100) {
83
87
  index.files = index.files.slice(-100);
@@ -1 +1 @@
1
- {"version":3,"file":"session-index.js","sourceRoot":"","sources":["../../src/services/session-index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-index.js","sourceRoot":"","sources":["../../src/services/session-index.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@
4
4
  * 使用 JSONL 格式存储会话历史和对话记录。
5
5
  * 参考 OpenClaude 的 history.jsonl 和 sessions/ 目录。
6
6
  */
7
+ import type { LoopContinuationAction, LoopFinishReason } from '../framework/query';
7
8
  import type { Message } from './llm';
8
9
  import { type ContextCapsule, type HarnessState } from '../harness';
9
10
  /** 工具调用记录(用于 assistant 消息) */
@@ -86,6 +87,8 @@ export interface SessionMessage {
86
87
  role: 'user' | 'assistant' | 'system' | 'tool';
87
88
  /** 内容 */
88
89
  content: string;
90
+ /** Compact content used when restoring this message into model context. */
91
+ modelVisibleContent?: string;
89
92
  /** 时间戳 (ms) */
90
93
  timestamp: number;
91
94
  /** 工具调用 ID (tool role) */
@@ -95,6 +98,98 @@ export interface SessionMessage {
95
98
  /** Skills applied for this turn (usually stored on the user message). */
96
99
  appliedSkills?: string[];
97
100
  }
101
+ export type SessionTraceEventType = 'turn_start' | 'request_start' | 'provider_retry' | 'provider_fallback' | 'prompt_assembly' | 'assistant_tool_calls' | 'checkpoint' | 'tool_call' | 'permission_decision' | 'tool_result' | 'strategy_exhausted' | 'message' | 'complete' | 'local_fast_path' | 'workspace_snapshot' | 'workspace_delta' | 'verification_profile' | 'verification_result' | 'verification_summary' | 'aborted' | 'error';
102
+ export interface SessionTraceEvent {
103
+ sessionId: string;
104
+ turnId: string;
105
+ timestamp: number;
106
+ type: SessionTraceEventType;
107
+ model?: string;
108
+ turn?: number;
109
+ name?: string;
110
+ callId?: string;
111
+ argsSummary?: string;
112
+ argsArtifactId?: string;
113
+ argsBytes?: number;
114
+ batchCount?: number;
115
+ batchIndex?: number;
116
+ permissionBehavior?: string;
117
+ permissionApproved?: boolean;
118
+ permissionSource?: string;
119
+ permissionReason?: string;
120
+ permissionDuration?: number;
121
+ success?: boolean;
122
+ duration?: number;
123
+ inputBytes?: number;
124
+ contentBytes?: number;
125
+ outputBytes?: number;
126
+ modelVisibleBytes?: number;
127
+ toolCallCount?: number;
128
+ artifactId?: string;
129
+ checkpointId?: string;
130
+ checkpointFileCount?: number;
131
+ checkpointFiles?: string[];
132
+ promptModelId?: string;
133
+ promptEstimatedTokens?: number;
134
+ promptBudgetTokens?: number;
135
+ promptCoreTokens?: number;
136
+ promptEvidenceBudgetTokens?: number;
137
+ promptRecentTurnBudgetTokens?: number;
138
+ promptSections?: string[];
139
+ promptIncludedEvidence?: string[];
140
+ promptOmittedEvidence?: string[];
141
+ promptIncludedEvidenceCount?: number;
142
+ promptOmittedEvidenceCount?: number;
143
+ finishReason?: LoopFinishReason;
144
+ llmRequests?: number;
145
+ toolCalls?: number;
146
+ readOnlyToolCalls?: number;
147
+ unsafeToolCalls?: number;
148
+ loopBudgetSource?: string;
149
+ loopBudgetBaseProfile?: string;
150
+ loopBudgetMaxLlmRequests?: number;
151
+ loopBudgetMaxToolCalls?: number;
152
+ loopBudgetMaxReadOnlyFragmentation?: number;
153
+ loopBudgetMaxModelVisibleBytes?: number;
154
+ loopBudgetConfigOverride?: boolean;
155
+ budgetExceededReason?: string;
156
+ localFastPathUsed?: boolean;
157
+ providerRetryCount?: number;
158
+ providerRetryDelayMs?: number;
159
+ providerRetryErrorTypes?: string[];
160
+ providerLastRetryErrorType?: string;
161
+ providerLastRetryStatus?: number;
162
+ providerFallbackCount?: number;
163
+ providerFallbackFromModel?: string;
164
+ providerFallbackToModel?: string;
165
+ providerFinalModel?: string;
166
+ providerUsingFallback?: boolean;
167
+ continuationActions?: LoopContinuationAction[];
168
+ continuationHint?: string;
169
+ workspacePhase?: 'pre_turn' | 'post_turn';
170
+ workspaceGitAvailable?: boolean;
171
+ workspaceDirty?: boolean;
172
+ workspaceBranch?: string;
173
+ workspaceFileCount?: number;
174
+ workspaceFiles?: string[];
175
+ workspaceNewByTurn?: string[];
176
+ workspaceChangedByTurn?: string[];
177
+ workspaceModifiedPreExistingByTurn?: string[];
178
+ workspaceResolvedByTurn?: string[];
179
+ verificationProfile?: string;
180
+ verificationRequired?: boolean;
181
+ verificationCommands?: string[];
182
+ verificationChangedFiles?: string[];
183
+ verificationCommand?: string;
184
+ verificationPassed?: boolean;
185
+ verificationClaimAllowed?: boolean;
186
+ verificationPassedCommands?: string[];
187
+ verificationFailedCommands?: string[];
188
+ verificationMissingCommands?: string[];
189
+ error?: string;
190
+ note?: string;
191
+ }
192
+ export { redactTraceText } from './redaction';
98
193
  export interface ListSessionsOptions {
99
194
  /** Filter sessions to this canonical project. */
100
195
  projectPath?: string;
@@ -146,6 +241,7 @@ export declare function updateSessionHarnessState(sessionId: string, harnessStat
146
241
  export declare function loadSessionHarnessState(sessionId: string): HarnessState | null;
147
242
  export declare function updateSessionSkills(sessionId: string, skills: string[]): void;
148
243
  export declare function markSessionTranscriptDisplayStart(sessionId: string, timestamp?: number): SessionMeta | null;
244
+ export declare function persistSessionCompactHistory(sessionId: string, messages: Message[], timestamp?: number): SessionMeta | null;
149
245
  /**
150
246
  * 结束会话
151
247
  */
@@ -194,6 +290,10 @@ export declare function removeLastIncompleteAssistantMessage(sessionId: string):
194
290
  * 读取会话消息
195
291
  */
196
292
  export declare function readSessionMessages(sessionId: string): SessionMessage[];
293
+ export declare function appendSessionTraceEvent(sessionId: string, event: Omit<SessionTraceEvent, 'sessionId' | 'timestamp'> & {
294
+ timestamp?: number;
295
+ }): SessionTraceEvent | null;
296
+ export declare function readSessionTraceEvents(sessionId: string): SessionTraceEvent[];
197
297
  /**
198
298
  * 读取会话消息并转换为 Message 格式(用于恢复对话历史)
199
299
  * 包含完整的 tool_calls 信息,确保 LLM 能理解之前的工具调用
@@ -1 +1 @@
1
- {"version":3,"file":"session-storage.d.ts","sourceRoot":"","sources":["../../src/services/session-storage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-storage.d.ts","sourceRoot":"","sources":["../../src/services/session-storage.ts"],"names":[],"mappings":"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"}