pi-harness-runtime 1.1.408 → 1.1.410

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 (155) hide show
  1. package/harness/key-file-audit.ts +2 -2
  2. package/package.json +1 -1
  3. package/packages/a2a-adapter/package.json +1 -1
  4. package/packages/agent-policy/package.json +1 -1
  5. package/packages/architecture-generator/package.json +1 -1
  6. package/packages/auth/package.json +1 -1
  7. package/packages/autonomous-refactor/package.json +1 -1
  8. package/packages/autonomous-runtime/package.json +1 -1
  9. package/packages/cache-strategy/package.json +1 -1
  10. package/packages/capability-registry/package.json +1 -1
  11. package/packages/checkpoint/package.json +1 -1
  12. package/packages/cli-plugin-sdk/package.json +1 -1
  13. package/packages/clipboard/package.json +1 -1
  14. package/packages/clipboard-plugin/package.json +1 -1
  15. package/packages/code-generation/package.json +1 -1
  16. package/packages/code-review/package.json +1 -1
  17. package/packages/codex-adapter/package.json +1 -1
  18. package/packages/codex-watcher/package.json +1 -1
  19. package/packages/config-capture/package.json +1 -1
  20. package/packages/connection-runtime/package.json +1 -1
  21. package/packages/context-compiler/package.json +1 -1
  22. package/packages/context-discovery/package.json +1 -1
  23. package/packages/context-manager/package.json +1 -1
  24. package/packages/contracts/package.json +1 -1
  25. package/packages/cookie-sanitizer/package.json +1 -1
  26. package/packages/cost-optimizer/package.json +1 -1
  27. package/packages/dependency-analyzer/package.json +1 -1
  28. package/packages/django-plugin/package.json +1 -1
  29. package/packages/doc-generator/package.json +1 -1
  30. package/packages/durable-review/package.json +1 -1
  31. package/packages/e2e-tester/package.json +1 -1
  32. package/packages/evaluation-engine/package.json +1 -1
  33. package/packages/evaluation-runner/package.json +1 -1
  34. package/packages/event-bus/package.json +1 -1
  35. package/packages/event-sink/package.json +1 -1
  36. package/packages/event-store/package.json +1 -1
  37. package/packages/experience-replay/package.json +1 -1
  38. package/packages/feedback-collector/package.json +1 -1
  39. package/packages/file-copy-helper/package.json +1 -1
  40. package/packages/framework-detector/package.json +1 -1
  41. package/packages/framework-plugin-sdk/package.json +1 -1
  42. package/packages/frappe-plugin/package.json +1 -1
  43. package/packages/generic-web-plugin/package.json +1 -1
  44. package/packages/health-monitor/package.json +1 -1
  45. package/packages/intent-analyzer/package.json +1 -1
  46. package/packages/jev-judge/package.json +1 -1
  47. package/packages/knowledge-graph/package.json +1 -1
  48. package/packages/knowledge-retrieval/package.json +1 -1
  49. package/packages/laravel-plugin/package.json +1 -1
  50. package/packages/learning-engine/package.json +1 -1
  51. package/packages/logging/package.json +1 -1
  52. package/packages/mcp-adapter/package.json +1 -1
  53. package/packages/memory-engine/package.json +1 -1
  54. package/packages/milestone-manager/package.json +1 -1
  55. package/packages/model-registry/package.json +1 -1
  56. package/packages/nextjs-plugin/package.json +1 -1
  57. package/packages/notification/package.json +1 -1
  58. package/packages/observability/package.json +1 -1
  59. package/packages/okf-indexer/package.json +1 -1
  60. package/packages/paperclip-integration/package.json +1 -1
  61. package/packages/performance-optimizer/package.json +1 -1
  62. package/packages/permission-mode/package.json +1 -1
  63. package/packages/privilege-broker/package.json +1 -1
  64. package/packages/project-analyzer/package.json +1 -1
  65. package/packages/project-bootstrap/package.json +1 -1
  66. package/packages/projection-engine/package.json +1 -1
  67. package/packages/prompt-compiler/package.json +1 -1
  68. package/packages/prompt-versioning/package.json +1 -1
  69. package/packages/provider-adapter-sdk/package.json +1 -1
  70. package/packages/provider-router/package.json +1 -1
  71. package/packages/provider-selector/package.json +1 -1
  72. package/packages/providers/dist/adapters.d.ts +1 -1
  73. package/packages/providers/dist/adapters.d.ts.map +1 -1
  74. package/packages/providers/dist/deepagents-adapter.d.ts +22 -1
  75. package/packages/providers/dist/deepagents-adapter.d.ts.map +1 -1
  76. package/packages/providers/dist/deepagents-adapter.js +3 -8
  77. package/packages/providers/dist/deepagents-adapter.js.map +1 -1
  78. package/packages/providers/package.json +1 -1
  79. package/packages/providers/src/adapters.ts +1 -1
  80. package/packages/providers/src/deepagents-adapter.ts +28 -31
  81. package/packages/qdrant-skills/dist/embedder.d.ts +5 -1
  82. package/packages/qdrant-skills/dist/embedder.d.ts.map +1 -1
  83. package/packages/qdrant-skills/dist/embedder.js +52 -37
  84. package/packages/qdrant-skills/dist/embedder.js.map +1 -1
  85. package/packages/qdrant-skills/package.json +1 -1
  86. package/packages/qdrant-skills/src/embedder.ts +56 -40
  87. package/packages/qdrant-skills/test/embedder.test.ts +97 -0
  88. package/packages/quota-manager/dist/quota-manager.d.ts +1 -1
  89. package/packages/quota-manager/dist/quota-manager.d.ts.map +1 -1
  90. package/packages/quota-manager/dist/quota-manager.js +10 -8
  91. package/packages/quota-manager/dist/quota-manager.js.map +1 -1
  92. package/packages/quota-manager/dist/tui-usage-monitor.d.ts +5 -3
  93. package/packages/quota-manager/dist/tui-usage-monitor.d.ts.map +1 -1
  94. package/packages/quota-manager/dist/tui-usage-monitor.js +30 -10
  95. package/packages/quota-manager/dist/tui-usage-monitor.js.map +1 -1
  96. package/packages/quota-manager/package.json +1 -1
  97. package/packages/quota-manager/src/quota-manager.ts +10 -9
  98. package/packages/quota-manager/src/tui-usage-monitor.ts +40 -17
  99. package/packages/rate-limiter/package.json +1 -1
  100. package/packages/react-vite-plugin/package.json +1 -1
  101. package/packages/relay/package.json +1 -1
  102. package/packages/release-manager/package.json +1 -1
  103. package/packages/requirement-compiler/package.json +1 -1
  104. package/packages/runtime/package.json +1 -1
  105. package/packages/scheduler/package.json +1 -1
  106. package/packages/scheduler-adapter/package.json +1 -1
  107. package/packages/session/package.json +1 -1
  108. package/packages/session-api/package.json +1 -1
  109. package/packages/session-export/package.json +1 -1
  110. package/packages/shared-context/package.json +1 -1
  111. package/packages/skill-mcp-client/package.json +1 -1
  112. package/packages/skill-registry/package.json +1 -1
  113. package/packages/skills/dist/loader.d.ts.map +1 -1
  114. package/packages/skills/dist/loader.js +9 -6
  115. package/packages/skills/dist/loader.js.map +1 -1
  116. package/packages/skills/package.json +1 -1
  117. package/packages/skills/src/loader.ts +13 -6
  118. package/packages/sprint-planner/package.json +1 -1
  119. package/packages/subscription-engine/package.json +1 -1
  120. package/packages/task-compiler/package.json +1 -1
  121. package/packages/telegram/package.json +1 -1
  122. package/packages/tencentdb-memory/package.json +1 -1
  123. package/packages/tencentdb-sync/package.json +1 -1
  124. package/packages/test-data-generator/package.json +1 -1
  125. package/packages/test-generator/package.json +1 -1
  126. package/packages/todo-bd-sync/package.json +1 -1
  127. package/packages/token-estimation/package.json +1 -1
  128. package/packages/token-optimizer/package.json +1 -1
  129. package/packages/tooling-preference/package.json +1 -1
  130. package/packages/trajectory/package.json +1 -1
  131. package/packages/tui/package.json +1 -1
  132. package/packages/two-phase-review/package.json +1 -1
  133. package/packages/types/package.json +1 -1
  134. package/packages/voice-api/package.json +1 -1
  135. package/packages/webmcp-tester/package.json +1 -1
  136. package/packages/wiki/package.json +1 -1
  137. package/packages/workflow-events/package.json +1 -1
  138. package/packages/workspace-scanner/package.json +1 -1
  139. package/packages/worktree/dist/worktree.d.ts +1 -1
  140. package/packages/worktree/dist/worktree.d.ts.map +1 -1
  141. package/packages/worktree/package.json +1 -1
  142. package/packages/worktree/src/worktree.ts +1 -1
  143. package/packages/write-review/package.json +1 -1
  144. package/scripts/typecheck-packages.mjs +3 -3
  145. package/packages/providers/adapters.ts +0 -362
  146. package/packages/providers/deepagents-adapter.ts +0 -458
  147. package/packages/providers/glm-usage.ts +0 -248
  148. package/packages/providers/index.ts +0 -85
  149. package/packages/providers/openai-usage.ts +0 -263
  150. package/packages/trajectory/dist/test/store.test.d.ts +0 -2
  151. package/packages/trajectory/dist/test/store.test.d.ts.map +0 -1
  152. package/packages/trajectory/dist/test/store.test.js +0 -228
  153. package/packages/trajectory/dist/test/store.test.js.map +0 -1
  154. package/packages/types/src/agent-worker-types.d.ts +0 -206
  155. package/packages/types/src/agent-worker-types.js +0 -41
@@ -1,362 +0,0 @@
1
- /**
2
- * Provider Adapter — RFC-0002
3
- *
4
- * Normalizes provider-specific behavior for:
5
- * - model invocation
6
- * - error detection
7
- * - quota detection
8
- * - reset time discovery
9
- * - retry policy
10
- * - model capability metadata
11
- */
12
-
13
- import type {
14
- ProviderConfig,
15
- ProviderCapability,
16
- ProviderRequest,
17
- ProviderResponse,
18
- } from "../../packages/types/src/runtime-types.js";
19
-
20
- export interface AdapterConfig {
21
- provider: ProviderConfig;
22
- quotaSignalExtractor?: (error: unknown) => QuotaSignal | null;
23
- }
24
-
25
- export interface QuotaSignal {
26
- exhausted: boolean;
27
- resetsAt?: string;
28
- retryAfterMs?: number;
29
- }
30
-
31
- export interface AdapterResult {
32
- response: ProviderResponse;
33
- quotaSignal?: QuotaSignal;
34
- retryable: boolean;
35
- }
36
-
37
- export interface ProviderAdapter {
38
- readonly id: string;
39
- readonly name: string;
40
-
41
- invoke(request: ProviderRequest): Promise<AdapterResult>;
42
-
43
- parseError(error: unknown): {
44
- quotaExceeded: boolean;
45
- rateLimited: boolean;
46
- timeout: boolean;
47
- serverError: boolean;
48
- clientError: boolean;
49
- quotaSignal?: QuotaSignal;
50
- };
51
-
52
- getCapabilities(): ProviderCapability[];
53
-
54
- supportsModel(model: string): boolean;
55
-
56
- getDefaultModel(): string;
57
-
58
- getMaxTokens(model?: string): number;
59
- }
60
-
61
- /**
62
- * Base adapter with common functionality
63
- */
64
- export abstract class BaseProviderAdapter implements ProviderAdapter {
65
- abstract readonly id: string;
66
- abstract readonly name: string;
67
-
68
- constructor(protected config: ProviderConfig) {}
69
-
70
- abstract invoke(request: ProviderRequest): Promise<AdapterResult>;
71
-
72
- abstract parseError(error: unknown): {
73
- quotaExceeded: boolean;
74
- rateLimited: boolean;
75
- timeout: boolean;
76
- serverError: boolean;
77
- clientError: boolean;
78
- quotaSignal?: QuotaSignal;
79
- };
80
-
81
- getCapabilities(): ProviderCapability[] {
82
- return this.config.capabilities;
83
- }
84
-
85
- supportsModel(model: string): boolean {
86
- return this.config.models.includes(model);
87
- }
88
-
89
- getDefaultModel(): string {
90
- return this.config.models[0] ?? "default";
91
- }
92
-
93
- getMaxTokens(model?: string): number {
94
- // Default token limits per model family
95
- const limits: Record<string, number> = {
96
- "minimax/MiniMax-M3": 32768,
97
- "minimax/MiniMax-Text-01": 1000000,
98
- "anthropic/claude-3-5-sonnet": 200000,
99
- "openai/gpt-4o": 128000,
100
- "openai/gpt-4-turbo": 128000,
101
- };
102
- return limits[model ?? this.getDefaultModel()] ?? 4096;
103
- }
104
-
105
- /**
106
- * Parse usage from response
107
- */
108
- protected parseUsage(response: unknown): ProviderResponse["usage"] {
109
- const r = response as Record<string, unknown>;
110
- return {
111
- input: (r.input_tokens as number) ?? (r.prompt_tokens as number) ?? 0,
112
- output:
113
- (r.output_tokens as number) ?? (r.completion_tokens as number) ?? 0,
114
- cacheRead: (r.cache_read_tokens as number) ?? 0,
115
- cacheWrite: (r.cache_write_tokens as number) ?? 0,
116
- cost: (r.cost as number) ?? 0,
117
- };
118
- }
119
- }
120
-
121
- /**
122
- * MiniMax adapter
123
- */
124
- export class MiniMaxAdapter extends BaseProviderAdapter {
125
- readonly id = "minimax";
126
- readonly name = "MiniMax";
127
-
128
- async invoke(request: ProviderRequest): Promise<AdapterResult> {
129
- // In practice, this would call the MiniMax API
130
- // For now, return a mock response
131
- return {
132
- response: {
133
- content: "Mock response",
134
- usage: { input: 100, output: 200, cost: 0.001 },
135
- model: request.model,
136
- finishReason: "stop",
137
- },
138
- retryable: false,
139
- };
140
- }
141
-
142
- parseError(error: unknown): {
143
- quotaExceeded: boolean;
144
- rateLimited: boolean;
145
- timeout: boolean;
146
- serverError: boolean;
147
- clientError: boolean;
148
- quotaSignal?: QuotaSignal;
149
- } {
150
- const e = error as Record<string, unknown>;
151
- const msg = String(e.message ?? e.error ?? "").toLowerCase();
152
-
153
- return {
154
- quotaExceeded: msg.includes("2056") || msg.includes("quota"),
155
- rateLimited: msg.includes("rate limit") || msg.includes("429"),
156
- timeout: msg.includes("timeout") || msg.includes("timed out"),
157
- serverError:
158
- msg.includes("500") || msg.includes("502") || msg.includes("503"),
159
- clientError:
160
- msg.includes("400") || msg.includes("401") || msg.includes("403"),
161
- quotaSignal:
162
- msg.includes("quota") || msg.includes("2056")
163
- ? { exhausted: true, resetsAt: undefined }
164
- : undefined,
165
- };
166
- }
167
- }
168
-
169
- /**
170
- * OpenAI adapter
171
- */
172
- export class OpenAIAdapter extends BaseProviderAdapter {
173
- readonly id = "openai";
174
- readonly name = "OpenAI";
175
-
176
- async invoke(request: ProviderRequest): Promise<AdapterResult> {
177
- return {
178
- response: {
179
- content: "Mock response",
180
- usage: { input: 100, output: 200, cost: 0.002 },
181
- model: request.model,
182
- finishReason: "stop",
183
- },
184
- retryable: false,
185
- };
186
- }
187
-
188
- parseError(error: unknown): {
189
- quotaExceeded: boolean;
190
- rateLimited: boolean;
191
- timeout: boolean;
192
- serverError: boolean;
193
- clientError: boolean;
194
- quotaSignal?: QuotaSignal;
195
- } {
196
- const e = error as Record<string, unknown>;
197
- const msg = String(e.message ?? e.error ?? "").toLowerCase();
198
- const code = String(e.code ?? "");
199
-
200
- return {
201
- quotaExceeded:
202
- code === "insufficient_quota" || code === "context_length_exceeded",
203
- rateLimited: code === "rate_limit_exceeded" || msg.includes("429"),
204
- timeout: msg.includes("timeout"),
205
- serverError: code.startsWith("5"),
206
- clientError: code.startsWith("4"),
207
- quotaSignal:
208
- code === "insufficient_quota"
209
- ? { exhausted: true, resetsAt: undefined }
210
- : undefined,
211
- };
212
- }
213
- }
214
-
215
- /**
216
- * Claude adapter — Anthropic's Claude models
217
- */
218
- export class ClaudeAdapter extends BaseProviderAdapter {
219
- readonly id = "anthropic";
220
- readonly name = "Anthropic Claude";
221
-
222
- async invoke(request: ProviderRequest): Promise<AdapterResult> {
223
- // In practice, this would call the Claude API via Anthropic SDK
224
- // For now, return a mock response
225
- return {
226
- response: {
227
- content: "Mock response",
228
- usage: { input: 100, output: 200, cost: 0.003 },
229
- model: request.model,
230
- finishReason: "stop",
231
- },
232
- retryable: false,
233
- };
234
- }
235
-
236
- parseError(error: unknown): {
237
- quotaExceeded: boolean;
238
- rateLimited: boolean;
239
- timeout: boolean;
240
- serverError: boolean;
241
- clientError: boolean;
242
- quotaSignal?: QuotaSignal;
243
- } {
244
- const e = error as Record<string, unknown>;
245
- const msg = String(e.message ?? e.error ?? "").toLowerCase();
246
- const type = String(e.type ?? "");
247
- const errorCode = String(e.code ?? "");
248
-
249
- // Anthropic-specific error handling
250
- const isRateLimited =
251
- type.includes("rate_limit_error") ||
252
- msg.includes("rate limit") ||
253
- errorCode.includes("429");
254
-
255
- const isOverloaded =
256
- type.includes("overloaded_error") || msg.includes("overloaded");
257
-
258
- return {
259
- quotaExceeded:
260
- type.includes("quota_error") ||
261
- type.includes("insufficient_quota") ||
262
- msg.includes("quota exceeded"),
263
- rateLimited: isRateLimited || isOverloaded,
264
- timeout: type.includes("timeout") || msg.includes("timeout"),
265
- serverError: type.includes("api_error") || isOverloaded,
266
- clientError:
267
- type.includes("invalid_request_error") ||
268
- type.includes("authentication_error") ||
269
- type.includes("permission_error"),
270
- quotaSignal: type.includes("quota_error")
271
- ? { exhausted: true, resetsAt: undefined }
272
- : undefined,
273
- };
274
- }
275
-
276
- getDefaultModel(): string {
277
- return "anthropic/claude-3-5-sonnet-20240620";
278
- }
279
-
280
- getMaxTokens(model?: string): number {
281
- const limits: Record<string, number> = {
282
- "anthropic/claude-3-5-sonnet-20240620": 200000,
283
- "anthropic/claude-3-5-haiku-20240620": 200000,
284
- "anthropic/claude-3-opus-20240229": 200000,
285
- "anthropic/claude-3-sonnet-20240229": 200000,
286
- "anthropic/claude-3-haiku-20240307": 200000,
287
- "anthropic/claude-2.1": 200000,
288
- "anthropic/claude-2": 100000,
289
- "anthropic/claude-instant": 100000,
290
- };
291
- return limits[model ?? this.getDefaultModel()] ?? 200000;
292
- }
293
- }
294
-
295
- /**
296
- * Adapter registry
297
- */
298
- export class AdapterRegistry {
299
- private adapters: Map<string, ProviderAdapter> = new Map();
300
-
301
- register(adapter: ProviderAdapter): void {
302
- this.adapters.set(adapter.id, adapter);
303
- }
304
-
305
- get(id: string): ProviderAdapter | undefined {
306
- return this.adapters.get(id);
307
- }
308
-
309
- list(): ProviderAdapter[] {
310
- return Array.from(this.adapters.values());
311
- }
312
-
313
- /**
314
- * Create default registry with standard adapters
315
- */
316
- static createDefault(): AdapterRegistry {
317
- const registry = new AdapterRegistry();
318
-
319
- registry.register(
320
- new MiniMaxAdapter({
321
- id: "minimax",
322
- name: "MiniMax",
323
- models: ["minimax/MiniMax-M3", "minimax/MiniMax-Text-01"],
324
- capabilities: ["code", "review", "plan", "test"],
325
- rateLimits: {},
326
- }),
327
- );
328
-
329
- registry.register(
330
- new OpenAIAdapter({
331
- id: "openai",
332
- name: "OpenAI",
333
- models: ["openai/gpt-4o", "openai/gpt-4-turbo"],
334
- capabilities: ["code", "review", "plan", "test", "refactor"],
335
- rateLimits: {},
336
- }),
337
- );
338
-
339
- registry.register(
340
- new ClaudeAdapter({
341
- id: "anthropic",
342
- name: "Anthropic Claude",
343
- models: [
344
- "anthropic/claude-3-5-sonnet-20240620",
345
- "anthropic/claude-3-5-haiku-20240620",
346
- "anthropic/claude-3-opus-20240229",
347
- ],
348
- capabilities: [
349
- "code",
350
- "review",
351
- "plan",
352
- "test",
353
- "refactor",
354
- "analysis",
355
- ],
356
- rateLimits: {},
357
- }),
358
- );
359
-
360
- return registry;
361
- }
362
- }