@oh-my-pi/pi-coding-agent 16.1.13 → 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.
- package/CHANGELOG.md +27 -0
- package/dist/cli.js +5547 -2759
- package/dist/types/config/settings-schema.d.ts +44 -14
- package/dist/types/eval/__tests__/julia-prelude.test.d.ts +1 -0
- package/dist/types/eval/backend-helpers.d.ts +23 -0
- package/dist/types/eval/executor-base.d.ts +118 -0
- package/dist/types/eval/index.d.ts +2 -0
- package/dist/types/eval/jl/executor.d.ts +44 -0
- package/dist/types/eval/jl/index.d.ts +11 -0
- package/dist/types/eval/jl/kernel.d.ts +28 -0
- package/dist/types/eval/jl/prelude.d.ts +1 -0
- package/dist/types/eval/jl/runtime.d.ts +22 -0
- package/dist/types/eval/kernel-base.d.ts +105 -0
- package/dist/types/eval/py/kernel.d.ts +3 -61
- package/dist/types/eval/rb/executor.d.ts +77 -0
- package/dist/types/eval/rb/index.d.ts +11 -0
- package/dist/types/eval/rb/kernel.d.ts +31 -0
- package/dist/types/eval/rb/prelude.d.ts +1 -0
- package/dist/types/eval/rb/runtime.d.ts +23 -0
- package/dist/types/eval/runtime-env.d.ts +24 -0
- package/dist/types/eval/types.d.ts +3 -3
- package/dist/types/extensibility/extensions/runner.d.ts +2 -15
- package/dist/types/extensibility/hooks/loader.d.ts +1 -25
- package/dist/types/extensibility/session-handler-types.d.ts +23 -0
- package/dist/types/jsonrpc/message-framing.d.ts +35 -0
- package/dist/types/mnemopi/embed-client.d.ts +7 -24
- package/dist/types/modes/components/chat-transcript-builder.d.ts +1 -1
- package/dist/types/modes/components/custom-editor.d.ts +11 -0
- package/dist/types/modes/components/selector-helpers.d.ts +53 -0
- package/dist/types/modes/interactive-mode.d.ts +0 -2
- package/dist/types/modes/theme/theme.d.ts +8 -1
- package/dist/types/modes/types.d.ts +0 -2
- package/dist/types/modes/utils/copy-targets.d.ts +1 -1
- package/dist/types/modes/utils/interactive-context-helpers.d.ts +14 -0
- package/dist/types/modes/utils/transcript-render-helpers.d.ts +54 -0
- package/dist/types/sdk.d.ts +1 -1
- package/dist/types/session/agent-session.d.ts +2 -2
- package/dist/types/stt/asr-client.d.ts +3 -29
- package/dist/types/subprocess/worker-client.d.ts +149 -0
- package/dist/types/subprocess/worker-runtime.d.ts +107 -0
- package/dist/types/tiny/title-client.d.ts +14 -34
- package/dist/types/tools/eval-backends.d.ts +6 -3
- package/dist/types/tools/eval-render.d.ts +6 -5
- package/dist/types/tools/eval.d.ts +13 -15
- package/dist/types/tools/index.d.ts +3 -3
- package/dist/types/tts/tts-client.d.ts +3 -28
- package/dist/types/tui/code-cell.d.ts +7 -0
- package/dist/types/utils/file-display-mode.d.ts +1 -1
- package/dist/types/web/parallel.d.ts +6 -0
- package/package.json +12 -12
- package/src/config/settings-schema.ts +50 -18
- package/src/config/settings.ts +5 -0
- package/src/dap/client.ts +13 -107
- package/src/eval/__tests__/julia-prelude.test.ts +77 -0
- package/src/eval/backend-helpers.ts +48 -0
- package/src/eval/executor-base.ts +425 -0
- package/src/eval/index.ts +2 -0
- package/src/eval/jl/executor.ts +540 -0
- package/src/eval/jl/index.ts +54 -0
- package/src/eval/jl/kernel.ts +235 -0
- package/src/eval/jl/prelude.jl +930 -0
- package/src/eval/jl/prelude.ts +3 -0
- package/src/eval/jl/runner.jl +634 -0
- package/src/eval/jl/runtime.ts +118 -0
- package/src/eval/js/index.ts +3 -14
- package/src/eval/kernel-base.ts +569 -0
- package/src/eval/py/executor.ts +43 -252
- package/src/eval/py/index.ts +9 -20
- package/src/eval/py/kernel.ts +29 -544
- package/src/eval/rb/executor.ts +504 -0
- package/src/eval/rb/index.ts +54 -0
- package/src/eval/rb/kernel.ts +230 -0
- package/src/eval/rb/prelude.rb +721 -0
- package/src/eval/rb/prelude.ts +3 -0
- package/src/eval/rb/runner.rb +474 -0
- package/src/eval/rb/runtime.ts +132 -0
- package/src/eval/runtime-env.ts +104 -0
- package/src/eval/types.ts +3 -3
- package/src/extensibility/extensions/runner.ts +4 -11
- package/src/extensibility/hooks/loader.ts +3 -21
- package/src/extensibility/session-handler-types.ts +21 -0
- package/src/internal-urls/docs-index.generated.txt +1 -1
- package/src/jsonrpc/message-framing.ts +142 -0
- package/src/lsp/client.ts +13 -109
- package/src/mnemopi/embed-client.ts +43 -198
- package/src/modes/components/agent-dashboard.ts +17 -40
- package/src/modes/components/chat-transcript-builder.ts +18 -102
- package/src/modes/components/custom-editor.ts +19 -0
- package/src/modes/components/extensions/extension-dashboard.ts +4 -13
- package/src/modes/components/extensions/extension-list.ts +16 -44
- package/src/modes/components/history-search.ts +4 -16
- package/src/modes/components/selector-helpers.ts +129 -0
- package/src/modes/components/settings-selector.ts +7 -5
- package/src/modes/components/tree-selector.ts +13 -18
- package/src/modes/controllers/event-controller.ts +3 -9
- package/src/modes/controllers/input-controller.ts +32 -54
- package/src/modes/interactive-mode.ts +5 -7
- package/src/modes/theme/theme.ts +35 -0
- package/src/modes/types.ts +0 -2
- package/src/modes/utils/copy-targets.ts +3 -2
- package/src/modes/utils/interactive-context-helpers.ts +27 -0
- package/src/modes/utils/transcript-render-helpers.ts +157 -0
- package/src/modes/utils/ui-helpers.ts +21 -126
- package/src/prompts/system/system-prompt.md +10 -10
- package/src/prompts/tools/bash.md +0 -1
- package/src/prompts/tools/eval.md +6 -4
- package/src/prompts/tools/find.md +0 -4
- package/src/prompts/tools/read.md +1 -2
- package/src/prompts/tools/replace.md +1 -1
- package/src/prompts/tools/search.md +0 -1
- package/src/sdk.ts +13 -7
- package/src/session/agent-session.ts +9 -7
- package/src/stt/asr-client.ts +35 -215
- package/src/stt/asr-worker.ts +29 -181
- package/src/subprocess/worker-client.ts +297 -0
- package/src/subprocess/worker-runtime.ts +277 -0
- package/src/task/executor.ts +4 -4
- package/src/tiny/title-client.ts +53 -219
- package/src/tiny/worker.ts +29 -180
- package/src/tools/eval-backends.ts +10 -3
- package/src/tools/eval-render.ts +17 -8
- package/src/tools/eval.ts +187 -22
- package/src/tools/index.ts +51 -28
- package/src/tts/tts-client.ts +38 -206
- package/src/tts/tts-worker.ts +23 -97
- package/src/tui/code-cell.ts +12 -1
- package/src/utils/file-display-mode.ts +2 -3
- package/src/web/parallel.ts +43 -42
- 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 {
|
|
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
|
|
69
|
+
return parseParallelSearchPayload(payload, { parseMetadata: false });
|
|
159
70
|
},
|
|
160
71
|
{ signal: params.signal },
|
|
161
72
|
);
|