@oh-my-pi/pi-coding-agent 16.1.12 → 16.1.14

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 (130) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/dist/cli.js +5650 -2860
  3. package/dist/types/config/settings-schema.d.ts +44 -14
  4. package/dist/types/cursor.d.ts +9 -9
  5. package/dist/types/eval/__tests__/julia-prelude.test.d.ts +1 -0
  6. package/dist/types/eval/backend-helpers.d.ts +23 -0
  7. package/dist/types/eval/executor-base.d.ts +118 -0
  8. package/dist/types/eval/index.d.ts +2 -0
  9. package/dist/types/eval/jl/executor.d.ts +44 -0
  10. package/dist/types/eval/jl/index.d.ts +11 -0
  11. package/dist/types/eval/jl/kernel.d.ts +28 -0
  12. package/dist/types/eval/jl/prelude.d.ts +1 -0
  13. package/dist/types/eval/jl/runtime.d.ts +22 -0
  14. package/dist/types/eval/kernel-base.d.ts +105 -0
  15. package/dist/types/eval/py/kernel.d.ts +3 -61
  16. package/dist/types/eval/rb/executor.d.ts +77 -0
  17. package/dist/types/eval/rb/index.d.ts +11 -0
  18. package/dist/types/eval/rb/kernel.d.ts +31 -0
  19. package/dist/types/eval/rb/prelude.d.ts +1 -0
  20. package/dist/types/eval/rb/runtime.d.ts +23 -0
  21. package/dist/types/eval/runtime-env.d.ts +24 -0
  22. package/dist/types/eval/types.d.ts +3 -3
  23. package/dist/types/extensibility/extensions/runner.d.ts +2 -15
  24. package/dist/types/extensibility/hooks/loader.d.ts +1 -25
  25. package/dist/types/extensibility/session-handler-types.d.ts +23 -0
  26. package/dist/types/jsonrpc/message-framing.d.ts +35 -0
  27. package/dist/types/mnemopi/embed-client.d.ts +7 -24
  28. package/dist/types/modes/components/chat-transcript-builder.d.ts +1 -1
  29. package/dist/types/modes/components/custom-editor.d.ts +11 -0
  30. package/dist/types/modes/components/selector-helpers.d.ts +53 -0
  31. package/dist/types/modes/interactive-mode.d.ts +0 -2
  32. package/dist/types/modes/theme/theme.d.ts +8 -1
  33. package/dist/types/modes/types.d.ts +0 -2
  34. package/dist/types/modes/utils/copy-targets.d.ts +1 -1
  35. package/dist/types/modes/utils/interactive-context-helpers.d.ts +14 -0
  36. package/dist/types/modes/utils/transcript-render-helpers.d.ts +54 -0
  37. package/dist/types/sdk.d.ts +1 -1
  38. package/dist/types/session/agent-session.d.ts +2 -2
  39. package/dist/types/stt/asr-client.d.ts +3 -29
  40. package/dist/types/subprocess/worker-client.d.ts +149 -0
  41. package/dist/types/subprocess/worker-runtime.d.ts +107 -0
  42. package/dist/types/tiny/title-client.d.ts +14 -34
  43. package/dist/types/tools/eval-backends.d.ts +6 -3
  44. package/dist/types/tools/eval-render.d.ts +6 -5
  45. package/dist/types/tools/eval.d.ts +13 -15
  46. package/dist/types/tools/index.d.ts +3 -3
  47. package/dist/types/tts/tts-client.d.ts +3 -28
  48. package/dist/types/tui/code-cell.d.ts +7 -0
  49. package/dist/types/utils/file-display-mode.d.ts +1 -1
  50. package/dist/types/web/parallel.d.ts +6 -0
  51. package/package.json +12 -12
  52. package/src/config/settings-schema.ts +50 -18
  53. package/src/config/settings.ts +5 -0
  54. package/src/dap/client.ts +13 -107
  55. package/src/eval/__tests__/julia-prelude.test.ts +77 -0
  56. package/src/eval/backend-helpers.ts +48 -0
  57. package/src/eval/executor-base.ts +425 -0
  58. package/src/eval/index.ts +2 -0
  59. package/src/eval/jl/executor.ts +540 -0
  60. package/src/eval/jl/index.ts +54 -0
  61. package/src/eval/jl/kernel.ts +235 -0
  62. package/src/eval/jl/prelude.jl +930 -0
  63. package/src/eval/jl/prelude.ts +3 -0
  64. package/src/eval/jl/runner.jl +634 -0
  65. package/src/eval/jl/runtime.ts +118 -0
  66. package/src/eval/js/index.ts +3 -14
  67. package/src/eval/kernel-base.ts +569 -0
  68. package/src/eval/py/executor.ts +43 -252
  69. package/src/eval/py/index.ts +9 -20
  70. package/src/eval/py/kernel.ts +29 -544
  71. package/src/eval/rb/executor.ts +504 -0
  72. package/src/eval/rb/index.ts +54 -0
  73. package/src/eval/rb/kernel.ts +230 -0
  74. package/src/eval/rb/prelude.rb +721 -0
  75. package/src/eval/rb/prelude.ts +3 -0
  76. package/src/eval/rb/runner.rb +474 -0
  77. package/src/eval/rb/runtime.ts +132 -0
  78. package/src/eval/runtime-env.ts +104 -0
  79. package/src/eval/types.ts +3 -3
  80. package/src/extensibility/extensions/runner.ts +4 -11
  81. package/src/extensibility/hooks/loader.ts +3 -21
  82. package/src/extensibility/session-handler-types.ts +21 -0
  83. package/src/internal-urls/docs-index.generated.txt +1 -1
  84. package/src/jsonrpc/message-framing.ts +142 -0
  85. package/src/lsp/client.ts +13 -109
  86. package/src/mnemopi/embed-client.ts +43 -198
  87. package/src/modes/components/agent-dashboard.ts +17 -40
  88. package/src/modes/components/chat-transcript-builder.ts +18 -102
  89. package/src/modes/components/custom-editor.ts +19 -0
  90. package/src/modes/components/extensions/extension-dashboard.ts +4 -13
  91. package/src/modes/components/extensions/extension-list.ts +16 -44
  92. package/src/modes/components/history-search.ts +4 -16
  93. package/src/modes/components/selector-helpers.ts +129 -0
  94. package/src/modes/components/settings-selector.ts +7 -5
  95. package/src/modes/components/tree-selector.ts +13 -18
  96. package/src/modes/controllers/event-controller.ts +3 -9
  97. package/src/modes/controllers/input-controller.ts +32 -54
  98. package/src/modes/interactive-mode.ts +5 -7
  99. package/src/modes/theme/theme.ts +35 -0
  100. package/src/modes/types.ts +0 -2
  101. package/src/modes/utils/copy-targets.ts +3 -2
  102. package/src/modes/utils/interactive-context-helpers.ts +27 -0
  103. package/src/modes/utils/transcript-render-helpers.ts +157 -0
  104. package/src/modes/utils/ui-helpers.ts +21 -126
  105. package/src/prompts/system/system-prompt.md +10 -10
  106. package/src/prompts/tools/bash.md +0 -1
  107. package/src/prompts/tools/eval.md +6 -4
  108. package/src/prompts/tools/find.md +0 -4
  109. package/src/prompts/tools/read.md +1 -2
  110. package/src/prompts/tools/replace.md +1 -1
  111. package/src/prompts/tools/search.md +0 -1
  112. package/src/sdk.ts +13 -7
  113. package/src/session/agent-session.ts +9 -7
  114. package/src/stt/asr-client.ts +35 -215
  115. package/src/stt/asr-worker.ts +29 -181
  116. package/src/subprocess/worker-client.ts +297 -0
  117. package/src/subprocess/worker-runtime.ts +277 -0
  118. package/src/task/executor.ts +4 -4
  119. package/src/tiny/title-client.ts +53 -219
  120. package/src/tiny/worker.ts +29 -180
  121. package/src/tools/eval-backends.ts +10 -3
  122. package/src/tools/eval-render.ts +17 -8
  123. package/src/tools/eval.ts +187 -22
  124. package/src/tools/index.ts +51 -28
  125. package/src/tts/tts-client.ts +38 -206
  126. package/src/tts/tts-worker.ts +23 -97
  127. package/src/tui/code-cell.ts +12 -1
  128. package/src/utils/file-display-mode.ts +2 -3
  129. package/src/web/parallel.ts +43 -42
  130. package/src/web/search/providers/parallel.ts +10 -99
@@ -1,7 +1,14 @@
1
1
  import { type ApiKey, type AuthStorage, type FetchImpl, getEnvApiKey, withAuth } from "@oh-my-pi/pi-ai";
2
2
  import type { SearchResponse } from "../../../web/search/types";
3
3
  import { SearchProviderError } from "../../../web/search/types";
4
- import { ParallelApiError, type ParallelSearchResult, type ParallelSearchSource } from "../../parallel";
4
+ import {
5
+ PARALLEL_BETA_HEADER,
6
+ PARALLEL_SEARCH_URL,
7
+ ParallelApiError,
8
+ type ParallelSearchResult,
9
+ parseParallelErrorResponse,
10
+ parseParallelSearchPayload,
11
+ } from "../../parallel";
5
12
  import { clampNumResults } from "../utils";
6
13
  import type { SearchParams } from "./base";
7
14
  import { SearchProvider } from "./base";
@@ -9,103 +16,6 @@ import { classifyProviderHttpError, toSearchSources, withHardTimeout } from "./u
9
16
 
10
17
  const DEFAULT_NUM_RESULTS = 10;
11
18
  const MAX_NUM_RESULTS = 40;
12
- const PARALLEL_SEARCH_URL = "https://api.parallel.ai/v1beta/search";
13
- const PARALLEL_BETA_HEADER = "search-extract-2025-10-10";
14
-
15
- function isObject(value: unknown): value is object {
16
- return typeof value === "object" && value !== null;
17
- }
18
-
19
- function getOwnValue(value: object, key: string): unknown {
20
- return Object.getOwnPropertyDescriptor(value, key)?.value;
21
- }
22
-
23
- function getString(value: object, key: string): string | undefined {
24
- const field = getOwnValue(value, key);
25
- return typeof field === "string" ? field : undefined;
26
- }
27
-
28
- function getObjectArray(value: object, key: string): object[] {
29
- const field = getOwnValue(value, key);
30
- return Array.isArray(field) ? field.filter(isObject) : [];
31
- }
32
-
33
- function getStringArray(value: object, key: string): string[] {
34
- const field = getOwnValue(value, key);
35
- return Array.isArray(field) ? field.filter((item): item is string => typeof item === "string") : [];
36
- }
37
-
38
- function extractParallelErrorMessage(payload: unknown): string | null {
39
- if (!isObject(payload)) return null;
40
-
41
- const directMessage = getString(payload, "message") ?? getString(payload, "detail") ?? getString(payload, "error");
42
- if (directMessage && directMessage.trim().length > 0) {
43
- return directMessage.trim();
44
- }
45
-
46
- const errorObject = getOwnValue(payload, "error");
47
- if (isObject(errorObject)) {
48
- const nestedMessage = getString(errorObject, "message") ?? getString(errorObject, "detail");
49
- if (nestedMessage && nestedMessage.trim().length > 0) {
50
- return nestedMessage.trim();
51
- }
52
- }
53
-
54
- return null;
55
- }
56
-
57
- function createParallelApiError(statusCode: number, detail?: string): ParallelApiError {
58
- return new ParallelApiError(
59
- detail ? `Parallel API error (${statusCode}): ${detail}` : `Parallel API error (${statusCode})`,
60
- statusCode,
61
- );
62
- }
63
-
64
- function parseParallelErrorResponse(statusCode: number, responseText: string): ParallelApiError {
65
- const trimmedResponseText = responseText.trim();
66
- if (trimmedResponseText.length === 0) {
67
- return createParallelApiError(statusCode);
68
- }
69
-
70
- try {
71
- const payload: unknown = JSON.parse(trimmedResponseText);
72
- return createParallelApiError(statusCode, extractParallelErrorMessage(payload) ?? trimmedResponseText);
73
- } catch {
74
- return createParallelApiError(statusCode, trimmedResponseText);
75
- }
76
- }
77
-
78
- function parseSearchPayload(payload: unknown): ParallelSearchResult {
79
- if (!isObject(payload)) {
80
- throw new ParallelApiError("Parallel search returned an invalid response payload.");
81
- }
82
-
83
- const requestId = getString(payload, "search_id") ?? "";
84
- const rawResults = getObjectArray(payload, "results");
85
- const sources: ParallelSearchSource[] = [];
86
-
87
- for (const item of rawResults) {
88
- const url = getString(item, "url");
89
- if (!url) continue;
90
-
91
- const excerpts = getStringArray(item, "excerpts");
92
- const snippet = excerpts.length > 0 ? excerpts.join("\n\n") : undefined;
93
- sources.push({
94
- title: getString(item, "title") ?? url,
95
- url,
96
- snippet,
97
- publishedDate: getString(item, "publish_date"),
98
- excerpts,
99
- });
100
- }
101
-
102
- return {
103
- requestId,
104
- sources,
105
- warnings: [],
106
- usage: [],
107
- };
108
- }
109
19
 
110
20
  async function searchWithAuthStorage(
111
21
  objective: string,
@@ -150,12 +60,13 @@ async function searchWithAuthStorage(
150
60
  }),
151
61
  signal: withHardTimeout(params.signal),
152
62
  });
63
+
153
64
  if (!response.ok) {
154
65
  throw parseParallelErrorResponse(response.status, await response.text());
155
66
  }
156
67
 
157
68
  const payload: unknown = await response.json();
158
- return parseSearchPayload(payload);
69
+ return parseParallelSearchPayload(payload, { parseMetadata: false });
159
70
  },
160
71
  { signal: params.signal },
161
72
  );