@oh-my-pi/pi-coding-agent 16.1.13 → 16.1.15

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 (153) hide show
  1. package/CHANGELOG.md +48 -0
  2. package/dist/cli.js +5615 -2833
  3. package/dist/types/advisor/runtime.d.ts +3 -0
  4. package/dist/types/config/settings-schema.d.ts +64 -14
  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/export/share.d.ts +8 -1
  24. package/dist/types/extensibility/extensions/runner.d.ts +2 -15
  25. package/dist/types/extensibility/hooks/loader.d.ts +1 -25
  26. package/dist/types/extensibility/session-handler-types.d.ts +23 -0
  27. package/dist/types/jsonrpc/message-framing.d.ts +35 -0
  28. package/dist/types/mcp/transports/stdio.d.ts +12 -1
  29. package/dist/types/mnemopi/embed-client.d.ts +7 -24
  30. package/dist/types/modes/components/chat-transcript-builder.d.ts +1 -1
  31. package/dist/types/modes/components/custom-editor.d.ts +11 -0
  32. package/dist/types/modes/components/selector-helpers.d.ts +53 -0
  33. package/dist/types/modes/components/status-line/context-thresholds.d.ts +4 -3
  34. package/dist/types/modes/components/status-line/types.d.ts +1 -0
  35. package/dist/types/modes/interactive-mode.d.ts +0 -2
  36. package/dist/types/modes/theme/theme.d.ts +8 -1
  37. package/dist/types/modes/types.d.ts +0 -2
  38. package/dist/types/modes/utils/copy-targets.d.ts +1 -1
  39. package/dist/types/modes/utils/interactive-context-helpers.d.ts +14 -0
  40. package/dist/types/modes/utils/transcript-render-helpers.d.ts +54 -0
  41. package/dist/types/sdk.d.ts +1 -1
  42. package/dist/types/secrets/obfuscator.d.ts +3 -3
  43. package/dist/types/session/agent-session.d.ts +2 -2
  44. package/dist/types/stt/asr-client.d.ts +3 -29
  45. package/dist/types/subprocess/worker-client.d.ts +149 -0
  46. package/dist/types/subprocess/worker-runtime.d.ts +107 -0
  47. package/dist/types/tiny/title-client.d.ts +14 -34
  48. package/dist/types/tools/eval-backends.d.ts +6 -3
  49. package/dist/types/tools/eval-render.d.ts +6 -5
  50. package/dist/types/tools/eval.d.ts +13 -15
  51. package/dist/types/tools/index.d.ts +3 -3
  52. package/dist/types/tts/tts-client.d.ts +3 -28
  53. package/dist/types/tui/code-cell.d.ts +7 -0
  54. package/dist/types/utils/file-display-mode.d.ts +1 -1
  55. package/dist/types/utils/shell-snapshot.d.ts +10 -0
  56. package/dist/types/web/parallel.d.ts +6 -0
  57. package/dist/types/web/search/providers/perplexity.d.ts +17 -3
  58. package/package.json +12 -12
  59. package/src/advisor/__tests__/advisor.test.ts +114 -0
  60. package/src/advisor/runtime.ts +129 -1
  61. package/src/config/model-registry.ts +12 -4
  62. package/src/config/settings-schema.ts +74 -18
  63. package/src/config/settings.ts +5 -0
  64. package/src/dap/client.ts +13 -107
  65. package/src/eval/__tests__/julia-prelude.test.ts +77 -0
  66. package/src/eval/backend-helpers.ts +48 -0
  67. package/src/eval/executor-base.ts +425 -0
  68. package/src/eval/index.ts +2 -0
  69. package/src/eval/jl/executor.ts +540 -0
  70. package/src/eval/jl/index.ts +54 -0
  71. package/src/eval/jl/kernel.ts +235 -0
  72. package/src/eval/jl/prelude.jl +930 -0
  73. package/src/eval/jl/prelude.ts +3 -0
  74. package/src/eval/jl/runner.jl +634 -0
  75. package/src/eval/jl/runtime.ts +118 -0
  76. package/src/eval/js/index.ts +3 -14
  77. package/src/eval/kernel-base.ts +569 -0
  78. package/src/eval/py/executor.ts +43 -252
  79. package/src/eval/py/index.ts +9 -20
  80. package/src/eval/py/kernel.ts +29 -544
  81. package/src/eval/rb/executor.ts +504 -0
  82. package/src/eval/rb/index.ts +54 -0
  83. package/src/eval/rb/kernel.ts +230 -0
  84. package/src/eval/rb/prelude.rb +721 -0
  85. package/src/eval/rb/prelude.ts +3 -0
  86. package/src/eval/rb/runner.rb +474 -0
  87. package/src/eval/rb/runtime.ts +132 -0
  88. package/src/eval/runtime-env.ts +104 -0
  89. package/src/eval/types.ts +3 -3
  90. package/src/exec/bash-executor.ts +44 -0
  91. package/src/export/share.ts +51 -28
  92. package/src/extensibility/extensions/runner.ts +4 -11
  93. package/src/extensibility/hooks/loader.ts +3 -21
  94. package/src/extensibility/session-handler-types.ts +21 -0
  95. package/src/internal-urls/docs-index.generated.txt +1 -1
  96. package/src/jsonrpc/message-framing.ts +142 -0
  97. package/src/lsp/client.ts +13 -109
  98. package/src/mcp/transports/stdio.ts +20 -4
  99. package/src/mnemopi/embed-client.ts +43 -198
  100. package/src/modes/components/agent-dashboard.ts +17 -40
  101. package/src/modes/components/chat-transcript-builder.ts +18 -102
  102. package/src/modes/components/custom-editor.test.ts +22 -0
  103. package/src/modes/components/custom-editor.ts +29 -1
  104. package/src/modes/components/extensions/extension-dashboard.ts +4 -13
  105. package/src/modes/components/extensions/extension-list.ts +16 -44
  106. package/src/modes/components/footer.ts +4 -3
  107. package/src/modes/components/history-search.ts +4 -16
  108. package/src/modes/components/selector-helpers.ts +129 -0
  109. package/src/modes/components/settings-selector.ts +7 -5
  110. package/src/modes/components/status-line/component.ts +5 -1
  111. package/src/modes/components/status-line/context-thresholds.ts +11 -3
  112. package/src/modes/components/status-line/segments.ts +1 -1
  113. package/src/modes/components/status-line/types.ts +1 -0
  114. package/src/modes/components/tree-selector.ts +13 -18
  115. package/src/modes/controllers/command-controller.ts +1 -0
  116. package/src/modes/controllers/event-controller.ts +3 -9
  117. package/src/modes/controllers/input-controller.ts +32 -54
  118. package/src/modes/interactive-mode.ts +5 -7
  119. package/src/modes/theme/theme.ts +35 -0
  120. package/src/modes/types.ts +0 -2
  121. package/src/modes/utils/copy-targets.ts +3 -2
  122. package/src/modes/utils/interactive-context-helpers.ts +27 -0
  123. package/src/modes/utils/transcript-render-helpers.ts +157 -0
  124. package/src/modes/utils/ui-helpers.ts +21 -126
  125. package/src/prompts/system/system-prompt.md +5 -5
  126. package/src/prompts/tools/bash.md +2 -3
  127. package/src/prompts/tools/eval.md +6 -4
  128. package/src/prompts/tools/find.md +0 -4
  129. package/src/prompts/tools/read.md +1 -2
  130. package/src/prompts/tools/replace.md +1 -1
  131. package/src/sdk.ts +13 -7
  132. package/src/secrets/obfuscator.ts +3 -9
  133. package/src/session/agent-session.ts +42 -9
  134. package/src/slash-commands/builtin-registry.ts +2 -1
  135. package/src/stt/asr-client.ts +35 -215
  136. package/src/stt/asr-worker.ts +29 -181
  137. package/src/subprocess/worker-client.ts +297 -0
  138. package/src/subprocess/worker-runtime.ts +277 -0
  139. package/src/task/executor.ts +4 -4
  140. package/src/tiny/title-client.ts +53 -219
  141. package/src/tiny/worker.ts +29 -180
  142. package/src/tools/eval-backends.ts +10 -3
  143. package/src/tools/eval-render.ts +17 -8
  144. package/src/tools/eval.ts +187 -22
  145. package/src/tools/index.ts +51 -28
  146. package/src/tts/tts-client.ts +38 -206
  147. package/src/tts/tts-worker.ts +23 -97
  148. package/src/tui/code-cell.ts +12 -1
  149. package/src/utils/file-display-mode.ts +2 -3
  150. package/src/utils/shell-snapshot.ts +63 -1
  151. package/src/web/parallel.ts +43 -42
  152. package/src/web/search/providers/parallel.ts +10 -99
  153. package/src/web/search/providers/perplexity.ts +18 -6
@@ -0,0 +1,118 @@
1
+ /**
2
+ * Julia runtime resolution utilities.
3
+ */
4
+ import { createEnvFilter, enumerateRuntimes, resolveExplicitPath, resolveRuntime } from "../runtime-env";
5
+
6
+ const DEFAULT_ENV_ALLOWLIST = [
7
+ "PATH",
8
+ "HOME",
9
+ "USER",
10
+ "USERNAME",
11
+ "LOGNAME",
12
+ "SHELL",
13
+ "TERM",
14
+ "LANG",
15
+ "SYSTEMROOT",
16
+ "WINDIR",
17
+ "COMSPEC",
18
+ "PATHEXT",
19
+ "TEMP",
20
+ "TMP",
21
+ "TERM_PROGRAM",
22
+ "TERM_PROGRAM_VERSION",
23
+ "SSH_AUTH_SOCK",
24
+ "SSH_AGENT_PID",
25
+ "SSH_CONNECTION",
26
+ "SSH_CLIENT",
27
+ "SSH_TTY",
28
+ "DISPLAY",
29
+ "XAUTHORITY",
30
+ "TZ",
31
+ "LD_LIBRARY_PATH",
32
+ "DYLD_LIBRARY_PATH",
33
+ ];
34
+
35
+ const WINDOWS_ENV_ALLOWLIST = [
36
+ "ALLUSERSPROFILE",
37
+ "APPDATA",
38
+ "COMMONPROGRAMFILES",
39
+ "COMMONPROGRAMFILES(X86)",
40
+ "COMMONPROGRAMW6432",
41
+ "COMPUTERNAME",
42
+ "HOMEDRIVE",
43
+ "HOMEPATH",
44
+ "LOCALAPPDATA",
45
+ "NUMBER_OF_PROCESSORS",
46
+ "OS",
47
+ "PROCESSOR_ARCHITECTURE",
48
+ "PROCESSOR_IDENTIFIER",
49
+ "PROCESSOR_LEVEL",
50
+ "PROCESSOR_REVISION",
51
+ "PROGRAMDATA",
52
+ "PROGRAMFILES",
53
+ "PROGRAMFILES(X86)",
54
+ "PROGRAMW6432",
55
+ "PUBLIC",
56
+ "SESSIONNAME",
57
+ "SYSTEMDRIVE",
58
+ "USERDOMAIN",
59
+ "USERDOMAIN_ROAMING_PC",
60
+ "USERPROFILE",
61
+ ];
62
+
63
+ const DEFAULT_ENV_DENYLIST = ["PI_API_KEY", "PI_TOKEN", "PI_PASSWORD", "PI_SESSION", "PI_TOOL_BRIDGE_TOKEN"];
64
+
65
+ // Julia version managers and package layout live behind these prefixes; passing them
66
+ // through lets Julia discover packages and configure its runtime consistently.
67
+ const DEFAULT_ENV_ALLOW_PREFIXES = ["LC_", "XDG_", "PI_", "JULIA_", "OPENBLAS_", "MKL_"];
68
+
69
+ export interface JuliaRuntime {
70
+ /** Path to the julia executable. */
71
+ juliaPath: string;
72
+ /** Filtered environment variables. */
73
+ env: Record<string, string | undefined>;
74
+ }
75
+
76
+ export const filterEnv = createEnvFilter({
77
+ allowList: DEFAULT_ENV_ALLOWLIST,
78
+ windowsAllowList: WINDOWS_ENV_ALLOWLIST,
79
+ denyList: DEFAULT_ENV_DENYLIST,
80
+ allowPrefixes: DEFAULT_ENV_ALLOW_PREFIXES,
81
+ });
82
+
83
+ /**
84
+ * Resolve an explicitly configured interpreter (`julia.interpreter`) into a
85
+ * runtime, bypassing discovery. Does not probe the executable.
86
+ * `~` expands to the home directory and relative paths resolve against `cwd`.
87
+ */
88
+ export function resolveExplicitJuliaRuntime(
89
+ interpreter: string,
90
+ cwd: string,
91
+ baseEnv: Record<string, string | undefined>,
92
+ ): JuliaRuntime {
93
+ const juliaPath = resolveExplicitPath(interpreter, cwd);
94
+ return { juliaPath, env: { ...baseEnv } };
95
+ }
96
+
97
+ /**
98
+ * Enumerate candidate Julia runtimes in priority order. With an explicit
99
+ * interpreter that is the only candidate; otherwise the first `julia` on PATH.
100
+ */
101
+ export function enumerateJuliaRuntimes(
102
+ cwd: string,
103
+ baseEnv: Record<string, string | undefined>,
104
+ interpreter?: string,
105
+ ): JuliaRuntime[] {
106
+ return enumerateRuntimes(cwd, baseEnv, "julia", (juliaPath, env) => ({ juliaPath, env }), interpreter);
107
+ }
108
+
109
+ /**
110
+ * Resolve the highest-priority Julia runtime. Throws when none exists.
111
+ */
112
+ export function resolveJuliaRuntime(
113
+ cwd: string,
114
+ baseEnv: Record<string, string | undefined>,
115
+ interpreter?: string,
116
+ ): JuliaRuntime {
117
+ return resolveRuntime(cwd, baseEnv, "julia", (juliaPath, env) => ({ juliaPath, env }), interpreter);
118
+ }
@@ -5,14 +5,14 @@ import {
5
5
  type ExecutorBackendResult,
6
6
  resolveEvalUrlRoots,
7
7
  } from "../backend";
8
+ import { namespaceSessionId as sharedNamespace, toExecutorBackendResult } from "../backend-helpers";
8
9
  import { executeJs } from "./executor";
9
10
 
10
11
  const JS_SESSION_PREFIX = "js:";
11
12
 
12
13
  export function namespaceSessionId(sessionId: string): string {
13
- return sessionId.startsWith(JS_SESSION_PREFIX) ? sessionId : `${JS_SESSION_PREFIX}${sessionId}`;
14
+ return sharedNamespace(sessionId, JS_SESSION_PREFIX);
14
15
  }
15
-
16
16
  export default {
17
17
  id: "js",
18
18
  label: "JavaScript",
@@ -35,17 +35,6 @@ export default {
35
35
  session: opts.session,
36
36
  localRoots: resolveEvalUrlRoots(opts.session),
37
37
  });
38
- return {
39
- output: result.output,
40
- exitCode: result.exitCode,
41
- cancelled: result.cancelled,
42
- truncated: result.truncated,
43
- artifactId: result.artifactId,
44
- totalLines: result.totalLines,
45
- totalBytes: result.totalBytes,
46
- outputLines: result.outputLines,
47
- outputBytes: result.outputBytes,
48
- displayOutputs: result.displayOutputs,
49
- };
38
+ return toExecutorBackendResult(result);
50
39
  },
51
40
  } satisfies ExecutorBackend;