@oh-my-pi/pi-coding-agent 17.2.5 → 17.2.7

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 (201) hide show
  1. package/CHANGELOG.md +35 -1
  2. package/dist/{CHANGELOG-q2w43aw3.md → CHANGELOG-1p8yvde7.md} +35 -1
  3. package/dist/cli.js +3340 -3339
  4. package/dist/types/advisor/advise-tool.d.ts +10 -4
  5. package/dist/types/autoresearch/tools/init-experiment.d.ts +19 -7
  6. package/dist/types/autoresearch/tools/log-experiment.d.ts +19 -11
  7. package/dist/types/autoresearch/tools/run-experiment.d.ts +4 -2
  8. package/dist/types/autoresearch/tools/update-notes.d.ts +5 -2
  9. package/dist/types/cli/gc-cli.d.ts +1 -0
  10. package/dist/types/commit/agentic/tools/analyze-file.d.ts +5 -2
  11. package/dist/types/commit/agentic/tools/git-file-diff.d.ts +5 -2
  12. package/dist/types/commit/agentic/tools/git-hunk.d.ts +6 -2
  13. package/dist/types/commit/agentic/tools/git-overview.d.ts +5 -2
  14. package/dist/types/commit/agentic/tools/propose-changelog.d.ts +29 -7
  15. package/dist/types/commit/agentic/tools/propose-commit.d.ts +14 -4
  16. package/dist/types/commit/agentic/tools/recent-commits.d.ts +4 -2
  17. package/dist/types/commit/agentic/tools/schemas.d.ts +7 -3
  18. package/dist/types/commit/agentic/tools/split-commit.d.ts +37 -10
  19. package/dist/types/commit/changelog/generate.d.ts +13 -3
  20. package/dist/types/commit/shared-llm.d.ts +13 -4
  21. package/dist/types/config/config-file.d.ts +1 -1
  22. package/dist/types/config/models-config-schema-bundle.d.ts +1992 -981
  23. package/dist/types/config/models-config-schema.d.ts +1201 -580
  24. package/dist/types/config/models-config.d.ts +355 -371
  25. package/dist/types/edit/hashline/params.d.ts +4 -2
  26. package/dist/types/edit/modes/apply-patch.d.ts +4 -2
  27. package/dist/types/edit/modes/patch.d.ts +16 -5
  28. package/dist/types/edit/modes/replace.d.ts +8 -3
  29. package/dist/types/eval/bridge-timeout.d.ts +5 -2
  30. package/dist/types/eval/completion-bridge.d.ts +13 -0
  31. package/dist/types/eval/py/tool-bridge.d.ts +12 -0
  32. package/dist/types/extensibility/custom-commands/types.d.ts +4 -4
  33. package/dist/types/extensibility/custom-tools/types.d.ts +4 -4
  34. package/dist/types/extensibility/extensions/types.d.ts +4 -4
  35. package/dist/types/extensibility/hooks/types.d.ts +4 -4
  36. package/dist/types/extensibility/legacy-pi-ai-shim.d.ts +1 -1
  37. package/dist/types/extensibility/legacy-pi-coding-agent-shim.d.ts +1 -1
  38. package/dist/types/extensibility/legacy-typebox.d.ts +8 -0
  39. package/dist/types/extensibility/plugins/legacy-pi-compat.d.ts +6 -13
  40. package/dist/types/goals/tools/goal-tool.d.ts +12 -4
  41. package/dist/types/launch/client.d.ts +9 -1
  42. package/dist/types/launch/protocol.d.ts +17 -0
  43. package/dist/types/lsp/index.d.ts +15 -5
  44. package/dist/types/lsp/types.d.ts +15 -5
  45. package/dist/types/modes/components/btw-panel.d.ts +3 -0
  46. package/dist/types/modes/controllers/btw-controller.d.ts +2 -0
  47. package/dist/types/modes/controllers/command-controller.d.ts +1 -0
  48. package/dist/types/modes/interactive-mode.d.ts +4 -1
  49. package/dist/types/modes/types.d.ts +3 -1
  50. package/dist/types/security/contracts/schemas.d.ts +1115 -537
  51. package/dist/types/security/publication.d.ts +92 -34
  52. package/dist/types/session/agent-session-types.d.ts +5 -0
  53. package/dist/types/session/agent-session.d.ts +26 -2
  54. package/dist/types/session/launch-completion.d.ts +10 -0
  55. package/dist/types/session/session-entries.d.ts +15 -1
  56. package/dist/types/session/session-manager.d.ts +7 -0
  57. package/dist/types/session/yield-queue.d.ts +6 -1
  58. package/dist/types/task/types.d.ts +63 -18
  59. package/dist/types/tools/ask.d.ts +34 -8
  60. package/dist/types/tools/ast-edit.d.ts +16 -4
  61. package/dist/types/tools/ast-grep.d.ts +12 -4
  62. package/dist/types/tools/bash.d.ts +20 -11
  63. package/dist/types/tools/browser.d.ts +64 -20
  64. package/dist/types/tools/checkpoint.d.ts +16 -8
  65. package/dist/types/tools/computer.d.ts +1 -1
  66. package/dist/types/tools/debug.d.ts +118 -48
  67. package/dist/types/tools/eval.d.ts +11 -5
  68. package/dist/types/tools/gh.d.ts +74 -26
  69. package/dist/types/tools/glob.d.ts +16 -6
  70. package/dist/types/tools/grep.d.ts +18 -6
  71. package/dist/types/tools/hub/index.d.ts +116 -46
  72. package/dist/types/tools/image-gen.d.ts +25 -8
  73. package/dist/types/tools/index.d.ts +9 -0
  74. package/dist/types/tools/inspect-image.d.ts +10 -4
  75. package/dist/types/tools/learn.d.ts +26 -8
  76. package/dist/types/tools/manage-skill.d.ts +16 -6
  77. package/dist/types/tools/memory-edit.d.ts +18 -6
  78. package/dist/types/tools/memory-recall.d.ts +8 -4
  79. package/dist/types/tools/memory-reflect.d.ts +10 -4
  80. package/dist/types/tools/memory-retain.d.ts +14 -4
  81. package/dist/types/tools/read.d.ts +8 -4
  82. package/dist/types/tools/security-scan.d.ts +82 -30
  83. package/dist/types/tools/todo.d.ts +30 -10
  84. package/dist/types/tools/tts.d.ts +12 -5
  85. package/dist/types/tools/vibe.d.ts +42 -18
  86. package/dist/types/tools/write.d.ts +10 -4
  87. package/dist/types/web/search/index.d.ts +20 -6
  88. package/package.json +13 -13
  89. package/scripts/legacy-pi-virtual-module.ts +2 -2
  90. package/src/advisor/advise-tool.ts +1 -1
  91. package/src/advisor/config.ts +1 -1
  92. package/src/autoresearch/tools/init-experiment.ts +1 -2
  93. package/src/autoresearch/tools/log-experiment.ts +1 -2
  94. package/src/autoresearch/tools/run-experiment.ts +1 -1
  95. package/src/autoresearch/tools/update-notes.ts +1 -1
  96. package/src/cli/gc-cli.ts +641 -21
  97. package/src/commit/agentic/tools/analyze-file.ts +1 -1
  98. package/src/commit/agentic/tools/git-file-diff.ts +1 -1
  99. package/src/commit/agentic/tools/git-hunk.ts +1 -1
  100. package/src/commit/agentic/tools/git-overview.ts +1 -1
  101. package/src/commit/agentic/tools/propose-changelog.ts +1 -1
  102. package/src/commit/agentic/tools/propose-commit.ts +1 -1
  103. package/src/commit/agentic/tools/recent-commits.ts +1 -1
  104. package/src/commit/agentic/tools/schemas.ts +1 -1
  105. package/src/commit/agentic/tools/split-commit.ts +1 -1
  106. package/src/commit/analysis/summary.ts +1 -1
  107. package/src/commit/changelog/generate.ts +1 -1
  108. package/src/config/config-file.ts +2 -2
  109. package/src/config/model-discovery.ts +14 -14
  110. package/src/config/model-registry.ts +10 -8
  111. package/src/config/models-config-schema-bundle.ts +1 -8
  112. package/src/config/settings.ts +1 -1
  113. package/src/discovery/codex.ts +22 -9
  114. package/src/edit/hashline/params.ts +1 -1
  115. package/src/edit/modes/apply-patch.ts +1 -1
  116. package/src/edit/modes/patch.ts +1 -1
  117. package/src/edit/modes/replace.ts +2 -1
  118. package/src/eval/agent-bridge.ts +4 -2
  119. package/src/eval/bridge-timeout.ts +5 -2
  120. package/src/eval/completion-bridge.ts +3 -2
  121. package/src/eval/executor-base.ts +20 -1
  122. package/src/eval/js/context-manager.ts +94 -6
  123. package/src/eval/py/tool-bridge.ts +29 -9
  124. package/src/export/html/index.ts +10 -3
  125. package/src/export/share.ts +4 -0
  126. package/src/extensibility/custom-commands/loader.ts +3 -3
  127. package/src/extensibility/custom-commands/types.ts +4 -4
  128. package/src/extensibility/custom-tools/loader.ts +3 -3
  129. package/src/extensibility/custom-tools/types.ts +5 -4
  130. package/src/extensibility/extensions/loader.ts +3 -3
  131. package/src/extensibility/extensions/types.ts +5 -4
  132. package/src/extensibility/hooks/loader.ts +3 -3
  133. package/src/extensibility/hooks/types.ts +4 -4
  134. package/src/extensibility/legacy-pi-ai-shim.ts +1 -1
  135. package/src/extensibility/legacy-pi-coding-agent-shim.ts +2 -2
  136. package/src/extensibility/legacy-typebox.ts +101 -0
  137. package/src/extensibility/plugins/legacy-pi-compat.ts +13 -22
  138. package/src/goals/tools/goal-tool.ts +1 -1
  139. package/src/launch/broker.ts +222 -6
  140. package/src/launch/client.ts +161 -9
  141. package/src/launch/protocol.ts +52 -0
  142. package/src/lsp/types.ts +1 -1
  143. package/src/main.ts +13 -6
  144. package/src/mcp/config-writer.ts +1 -1
  145. package/src/modes/components/btw-panel.ts +41 -4
  146. package/src/modes/controllers/btw-controller.ts +55 -7
  147. package/src/modes/controllers/command-controller.ts +31 -0
  148. package/src/modes/controllers/input-controller.ts +24 -7
  149. package/src/modes/interactive-mode.ts +16 -2
  150. package/src/modes/theme/theme.ts +3 -3
  151. package/src/modes/types.ts +8 -1
  152. package/src/prompts/session/launch-completion.md +1 -0
  153. package/src/sdk.ts +15 -0
  154. package/src/security/contracts/schemas.ts +202 -184
  155. package/src/security/contracts/validation.ts +6 -2
  156. package/src/security/publication.ts +1 -1
  157. package/src/security/store.ts +2 -2
  158. package/src/session/agent-session-types.ts +6 -0
  159. package/src/session/agent-session.ts +190 -14
  160. package/src/session/launch-completion.ts +37 -0
  161. package/src/session/session-context.ts +26 -0
  162. package/src/session/session-entries.ts +17 -1
  163. package/src/session/session-manager.ts +21 -0
  164. package/src/session/yield-queue.ts +121 -16
  165. package/src/slash-commands/builtin-registry.ts +10 -1
  166. package/src/task/types.ts +1 -1
  167. package/src/tools/ask.ts +1 -1
  168. package/src/tools/ast-edit.ts +1 -1
  169. package/src/tools/ast-grep.ts +1 -1
  170. package/src/tools/bash.ts +61 -3
  171. package/src/tools/browser/cmux/cmux-tab.ts +92 -4
  172. package/src/tools/browser.ts +1 -1
  173. package/src/tools/checkpoint.ts +1 -1
  174. package/src/tools/computer.ts +1 -1
  175. package/src/tools/debug.ts +1 -1
  176. package/src/tools/eval.ts +1 -1
  177. package/src/tools/gh.ts +1 -2
  178. package/src/tools/glob.ts +1 -1
  179. package/src/tools/grep.ts +1 -1
  180. package/src/tools/hub/index.ts +1 -1
  181. package/src/tools/hub/launch.ts +122 -6
  182. package/src/tools/image-gen.ts +1 -1
  183. package/src/tools/index.ts +9 -0
  184. package/src/tools/inspect-image.ts +1 -1
  185. package/src/tools/learn.ts +1 -1
  186. package/src/tools/manage-skill.ts +1 -1
  187. package/src/tools/memory-edit.ts +1 -1
  188. package/src/tools/memory-recall.ts +1 -1
  189. package/src/tools/memory-reflect.ts +1 -1
  190. package/src/tools/memory-retain.ts +1 -1
  191. package/src/tools/read.ts +1 -1
  192. package/src/tools/security-scan.ts +1 -1
  193. package/src/tools/todo.ts +1 -1
  194. package/src/tools/tts.ts +1 -1
  195. package/src/tools/vibe.ts +2 -1
  196. package/src/tools/write.ts +1 -1
  197. package/src/web/search/index.ts +2 -1
  198. package/dist/types/config/file-lock.d.ts +0 -29
  199. package/dist/types/extensibility/typebox.d.ts +0 -181
  200. package/src/config/file-lock.ts +0 -164
  201. package/src/extensibility/typebox.ts +0 -958
@@ -3,33 +3,59 @@ import { type CodexSecurityCloudConfiguration, type CodexSecurityCloudStats } fr
3
3
  import { type SecurityValidationStatus } from "../security/contracts/index.js";
4
4
  import type { SecurityOperationSnapshot } from "../security/coordinator.js";
5
5
  import type { ToolSession } from "./index.js";
6
- declare const securityScanSchema: import("arktype/internal/variants/object.ts").ObjectType<{
6
+ declare const securityScanSchema: import("@oh-my-pi/omptype").FluentType<{
7
7
  action: "cancel" | "cloud_pull" | "cloud_scans" | "cloud_start" | "cloud_status" | "preflight" | "start" | "status" | "validate";
8
- plan_id?: string | undefined;
9
- operation_id?: string | undefined;
10
- target_kind?: "ref_diff" | "repository" | "scoped_path" | "working_tree" | undefined;
11
- include_paths?: string[] | undefined;
12
- exclude_paths?: string[] | undefined;
8
+ archive_existing?: boolean | undefined;
13
9
  base_revision?: string | undefined;
10
+ cloud_configuration_id?: string | undefined;
11
+ credential_id?: number | undefined;
12
+ environment_id?: string | undefined;
13
+ exclude_paths?: string[] | undefined;
14
+ finding_id?: string | undefined;
14
15
  head_revision?: string | undefined;
16
+ include_paths?: string[] | undefined;
15
17
  knowledge_base_paths?: string[] | undefined;
18
+ lookback_days?: number | "all" | undefined;
19
+ operation_id?: string | undefined;
16
20
  output_root?: string | undefined;
17
- archive_existing?: boolean | undefined;
18
- credential_id?: number | undefined;
21
+ plan_id?: string | undefined;
22
+ repository_id?: string | undefined;
23
+ repository_url?: string | undefined;
19
24
  scan_id?: string | undefined;
20
- finding_id?: string | undefined;
21
- validation_status?: "error" | "partial" | "rejected" | "unvalidated" | "validated" | undefined;
22
- validation_summary?: string | undefined;
25
+ target_kind?: "ref_diff" | "repository" | "scoped_path" | "working_tree" | undefined;
23
26
  validation_evidence?: {
24
- label: string;
25
27
  explanation: string;
28
+ label: string;
26
29
  }[] | undefined;
30
+ validation_status?: "error" | "partial" | "rejected" | "unvalidated" | "validated" | undefined;
31
+ validation_summary?: string | undefined;
32
+ }, {
33
+ action: "cancel" | "cloud_pull" | "cloud_scans" | "cloud_start" | "cloud_status" | "preflight" | "start" | "status" | "validate";
34
+ archive_existing?: boolean | undefined;
35
+ base_revision?: string | undefined;
27
36
  cloud_configuration_id?: string | undefined;
28
- repository_id?: string | undefined;
29
- repository_url?: string | undefined;
37
+ credential_id?: number | undefined;
30
38
  environment_id?: string | undefined;
39
+ exclude_paths?: string[] | undefined;
40
+ finding_id?: string | undefined;
41
+ head_revision?: string | undefined;
42
+ include_paths?: string[] | undefined;
43
+ knowledge_base_paths?: string[] | undefined;
31
44
  lookback_days?: number | "all" | undefined;
32
- }, {}>;
45
+ operation_id?: string | undefined;
46
+ output_root?: string | undefined;
47
+ plan_id?: string | undefined;
48
+ repository_id?: string | undefined;
49
+ repository_url?: string | undefined;
50
+ scan_id?: string | undefined;
51
+ target_kind?: "ref_diff" | "repository" | "scoped_path" | "working_tree" | undefined;
52
+ validation_evidence?: {
53
+ explanation: string;
54
+ label: string;
55
+ }[] | undefined;
56
+ validation_status?: "error" | "partial" | "rejected" | "unvalidated" | "validated" | undefined;
57
+ validation_summary?: string | undefined;
58
+ }>;
33
59
  type SecurityScanParams = typeof securityScanSchema.infer;
34
60
  export interface SecurityScanToolDetails {
35
61
  action: SecurityScanParams["action"];
@@ -62,33 +88,59 @@ export declare class SecurityScanTool implements AgentTool<typeof securityScanSc
62
88
  readonly loadMode = "discoverable";
63
89
  readonly summary = "Run OMP-native scans and explicit Codex Security cloud operations";
64
90
  readonly description: string;
65
- readonly parameters: import("arktype/internal/variants/object.ts").ObjectType<{
91
+ readonly parameters: import("@oh-my-pi/omptype").FluentType<{
66
92
  action: "cancel" | "cloud_pull" | "cloud_scans" | "cloud_start" | "cloud_status" | "preflight" | "start" | "status" | "validate";
67
- plan_id?: string | undefined;
68
- operation_id?: string | undefined;
69
- target_kind?: "ref_diff" | "repository" | "scoped_path" | "working_tree" | undefined;
70
- include_paths?: string[] | undefined;
71
- exclude_paths?: string[] | undefined;
93
+ archive_existing?: boolean | undefined;
72
94
  base_revision?: string | undefined;
95
+ cloud_configuration_id?: string | undefined;
96
+ credential_id?: number | undefined;
97
+ environment_id?: string | undefined;
98
+ exclude_paths?: string[] | undefined;
99
+ finding_id?: string | undefined;
73
100
  head_revision?: string | undefined;
101
+ include_paths?: string[] | undefined;
74
102
  knowledge_base_paths?: string[] | undefined;
103
+ lookback_days?: number | "all" | undefined;
104
+ operation_id?: string | undefined;
75
105
  output_root?: string | undefined;
76
- archive_existing?: boolean | undefined;
77
- credential_id?: number | undefined;
106
+ plan_id?: string | undefined;
107
+ repository_id?: string | undefined;
108
+ repository_url?: string | undefined;
78
109
  scan_id?: string | undefined;
79
- finding_id?: string | undefined;
80
- validation_status?: "error" | "partial" | "rejected" | "unvalidated" | "validated" | undefined;
81
- validation_summary?: string | undefined;
110
+ target_kind?: "ref_diff" | "repository" | "scoped_path" | "working_tree" | undefined;
82
111
  validation_evidence?: {
83
- label: string;
84
112
  explanation: string;
113
+ label: string;
85
114
  }[] | undefined;
115
+ validation_status?: "error" | "partial" | "rejected" | "unvalidated" | "validated" | undefined;
116
+ validation_summary?: string | undefined;
117
+ }, {
118
+ action: "cancel" | "cloud_pull" | "cloud_scans" | "cloud_start" | "cloud_status" | "preflight" | "start" | "status" | "validate";
119
+ archive_existing?: boolean | undefined;
120
+ base_revision?: string | undefined;
86
121
  cloud_configuration_id?: string | undefined;
87
- repository_id?: string | undefined;
88
- repository_url?: string | undefined;
122
+ credential_id?: number | undefined;
89
123
  environment_id?: string | undefined;
124
+ exclude_paths?: string[] | undefined;
125
+ finding_id?: string | undefined;
126
+ head_revision?: string | undefined;
127
+ include_paths?: string[] | undefined;
128
+ knowledge_base_paths?: string[] | undefined;
90
129
  lookback_days?: number | "all" | undefined;
91
- }, {}>;
130
+ operation_id?: string | undefined;
131
+ output_root?: string | undefined;
132
+ plan_id?: string | undefined;
133
+ repository_id?: string | undefined;
134
+ repository_url?: string | undefined;
135
+ scan_id?: string | undefined;
136
+ target_kind?: "ref_diff" | "repository" | "scoped_path" | "working_tree" | undefined;
137
+ validation_evidence?: {
138
+ explanation: string;
139
+ label: string;
140
+ }[] | undefined;
141
+ validation_status?: "error" | "partial" | "rejected" | "unvalidated" | "validated" | undefined;
142
+ validation_summary?: string | undefined;
143
+ }>;
92
144
  readonly strict = true;
93
145
  constructor(session: ToolSession);
94
146
  execute(_toolCallId: string, params: SecurityScanParams, signal?: AbortSignal): Promise<AgentToolResult<SecurityScanToolDetails>>;
@@ -31,17 +31,27 @@ export interface TodoToolDetails {
31
31
  storage: "session" | "memory";
32
32
  completedTasks?: TodoCompletionTransition[];
33
33
  }
34
- declare const todoSchema: import("arktype/internal/variants/object.ts").ObjectType<{
35
- op: "append" | "block" | "done" | "drop" | "init" | "rm" | "start" | "unblock" | "view";
34
+ declare const todoSchema: import("@oh-my-pi/omptype").FluentType<{
35
+ items?: string[] | undefined;
36
36
  list?: {
37
- phase: string;
38
37
  items: string[];
38
+ phase: string;
39
39
  }[] | undefined;
40
- task?: string | undefined;
40
+ op: "append" | "block" | "done" | "drop" | "init" | "rm" | "start" | "unblock" | "view";
41
41
  phase?: string | undefined;
42
+ reason?: string | undefined;
43
+ task?: string | undefined;
44
+ }, {
42
45
  items?: string[] | undefined;
46
+ list?: {
47
+ items: string[];
48
+ phase: string;
49
+ }[] | undefined;
50
+ op: "append" | "block" | "done" | "drop" | "init" | "rm" | "start" | "unblock" | "view";
51
+ phase?: string | undefined;
43
52
  reason?: string | undefined;
44
- }, {}>;
53
+ task?: string | undefined;
54
+ }>;
45
55
  type TodoParams = TodoSchema;
46
56
  type TodoSchema = typeof todoSchema.infer;
47
57
  /** A single todo op entry (the params object itself). */
@@ -113,17 +123,27 @@ export declare class TodoTool implements AgentTool<typeof todoSchema, TodoToolDe
113
123
  readonly label = "Todo";
114
124
  readonly summary = "Write a structured todo list to track progress within a session";
115
125
  readonly description: string;
116
- readonly parameters: import("arktype/internal/variants/object.ts").ObjectType<{
117
- op: "append" | "block" | "done" | "drop" | "init" | "rm" | "start" | "unblock" | "view";
126
+ readonly parameters: import("@oh-my-pi/omptype").FluentType<{
127
+ items?: string[] | undefined;
118
128
  list?: {
119
- phase: string;
120
129
  items: string[];
130
+ phase: string;
121
131
  }[] | undefined;
122
- task?: string | undefined;
132
+ op: "append" | "block" | "done" | "drop" | "init" | "rm" | "start" | "unblock" | "view";
123
133
  phase?: string | undefined;
134
+ reason?: string | undefined;
135
+ task?: string | undefined;
136
+ }, {
124
137
  items?: string[] | undefined;
138
+ list?: {
139
+ items: string[];
140
+ phase: string;
141
+ }[] | undefined;
142
+ op: "append" | "block" | "done" | "drop" | "init" | "rm" | "start" | "unblock" | "view";
143
+ phase?: string | undefined;
125
144
  reason?: string | undefined;
126
- }, {}>;
145
+ task?: string | undefined;
146
+ }>;
127
147
  readonly concurrency = "exclusive";
128
148
  readonly strict = true;
129
149
  readonly lenientArgValidation = true;
@@ -1,14 +1,21 @@
1
1
  import type { CustomTool } from "../extensibility/custom-tools/types.js";
2
2
  type TtsCodec = "mp3" | "wav";
3
3
  type TtsBackend = "local" | "xai";
4
- declare const ttsSchema: import("arktype/internal/variants/object.ts").ObjectType<{
5
- text: string;
6
- voice_id: import("arktype/internal/attributes.ts").Default<string, "eve">;
7
- language: import("arktype/internal/attributes.ts").Default<string, "en">;
4
+ declare const ttsSchema: import("@oh-my-pi/omptype").FluentType<{
5
+ bit_rate?: number | undefined;
6
+ language: string;
8
7
  output_path: string;
9
8
  sample_rate?: number | undefined;
9
+ text: string;
10
+ voice_id: string;
11
+ }, {
10
12
  bit_rate?: number | undefined;
11
- }, {}>;
13
+ language?: string | undefined;
14
+ output_path: string;
15
+ sample_rate?: number | undefined;
16
+ text: string;
17
+ voice_id?: string | undefined;
18
+ }>;
12
19
  interface TtsToolDetails {
13
20
  bytes: number;
14
21
  voiceId: string;
@@ -17,23 +17,35 @@ import type { Theme } from "../modes/theme/theme.js";
17
17
  import { type VibeCli, type VibeKillOutcome, type VibeScreenSnapshot, type VibeSendOutcome } from "../vibe/runtime.js";
18
18
  import type { Tool, ToolSession } from "./index.js";
19
19
  export declare const VIBE_TOOL_NAMES: readonly ["vibe_spawn", "vibe_send", "vibe_wait", "vibe_kill", "vibe_list"];
20
- declare const vibeSpawnSchema: import("arktype/internal/variants/object.ts").ObjectType<{
20
+ declare const vibeSpawnSchema: import("@oh-my-pi/omptype").FluentType<{
21
21
  cli: "fast" | "good";
22
22
  name?: string | undefined;
23
23
  prompt: string;
24
- }, {}>;
25
- declare const vibeSendSchema: import("arktype/internal/variants/object.ts").ObjectType<{
24
+ }, {
25
+ cli: "fast" | "good";
26
+ name?: string | undefined;
27
+ prompt: string;
28
+ }>;
29
+ declare const vibeSendSchema: import("@oh-my-pi/omptype").FluentType<{
30
+ message: string;
26
31
  session: string;
32
+ }, {
27
33
  message: string;
28
- }, {}>;
29
- declare const vibeWaitSchema: import("arktype/internal/variants/object.ts").ObjectType<{
34
+ session: string;
35
+ }>;
36
+ declare const vibeWaitSchema: import("@oh-my-pi/omptype").FluentType<{
37
+ sessions?: string[] | undefined;
38
+ timeout?: number | undefined;
39
+ }, {
30
40
  sessions?: string[] | undefined;
31
41
  timeout?: number | undefined;
32
- }, {}>;
33
- declare const vibeKillSchema: import("arktype/internal/variants/object.ts").ObjectType<{
42
+ }>;
43
+ declare const vibeKillSchema: import("@oh-my-pi/omptype").FluentType<{
44
+ session: string;
45
+ }, {
34
46
  session: string;
35
- }, {}>;
36
- declare const vibeListSchema: import("arktype/internal/variants/object.ts").ObjectType<object, {}>;
47
+ }>;
48
+ declare const vibeListSchema: import("@oh-my-pi/omptype").FluentType<{}, {}>;
37
49
  type VibeOp = "spawn" | "send" | "wait" | "kill" | "list";
38
50
  /** Details payload shared by every vibe tool for TUI rendering. */
39
51
  export interface VibeToolDetails {
@@ -66,11 +78,15 @@ export declare class VibeSpawnTool implements AgentTool<typeof vibeSpawnSchema,
66
78
  readonly label = "Vibe Spawn";
67
79
  readonly summary = "Start a persistent fast/good worker session";
68
80
  readonly description: string;
69
- readonly parameters: import("arktype/internal/variants/object.ts").ObjectType<{
81
+ readonly parameters: import("@oh-my-pi/omptype").FluentType<{
70
82
  cli: "fast" | "good";
71
83
  name?: string | undefined;
72
84
  prompt: string;
73
- }, {}>;
85
+ }, {
86
+ cli: "fast" | "good";
87
+ name?: string | undefined;
88
+ prompt: string;
89
+ }>;
74
90
  readonly strict = true;
75
91
  constructor(session: ToolSession);
76
92
  execute(_toolCallId: string, params: typeof vibeSpawnSchema.infer): Promise<AgentToolResult<VibeToolDetails>>;
@@ -82,10 +98,13 @@ export declare class VibeSendTool implements AgentTool<typeof vibeSendSchema, Vi
82
98
  readonly label = "Vibe Send";
83
99
  readonly summary = "Message a worker session (steer or next turn)";
84
100
  readonly description: string;
85
- readonly parameters: import("arktype/internal/variants/object.ts").ObjectType<{
101
+ readonly parameters: import("@oh-my-pi/omptype").FluentType<{
102
+ message: string;
86
103
  session: string;
104
+ }, {
87
105
  message: string;
88
- }, {}>;
106
+ session: string;
107
+ }>;
89
108
  readonly strict = true;
90
109
  constructor(session: ToolSession);
91
110
  execute(_toolCallId: string, params: typeof vibeSendSchema.infer): Promise<AgentToolResult<VibeToolDetails>>;
@@ -97,10 +116,13 @@ export declare class VibeWaitTool implements AgentTool<typeof vibeWaitSchema, Vi
97
116
  readonly label = "Vibe Wait";
98
117
  readonly summary = "Block until a worker session finishes its turn";
99
118
  readonly description: string;
100
- readonly parameters: import("arktype/internal/variants/object.ts").ObjectType<{
119
+ readonly parameters: import("@oh-my-pi/omptype").FluentType<{
120
+ sessions?: string[] | undefined;
121
+ timeout?: number | undefined;
122
+ }, {
101
123
  sessions?: string[] | undefined;
102
124
  timeout?: number | undefined;
103
- }, {}>;
125
+ }>;
104
126
  readonly strict = true;
105
127
  readonly interruptible = true;
106
128
  constructor(session: ToolSession);
@@ -113,9 +135,11 @@ export declare class VibeKillTool implements AgentTool<typeof vibeKillSchema, Vi
113
135
  readonly label = "Vibe Kill";
114
136
  readonly summary = "Terminate a worker session";
115
137
  readonly description: string;
116
- readonly parameters: import("arktype/internal/variants/object.ts").ObjectType<{
138
+ readonly parameters: import("@oh-my-pi/omptype").FluentType<{
139
+ session: string;
140
+ }, {
117
141
  session: string;
118
- }, {}>;
142
+ }>;
119
143
  readonly strict = true;
120
144
  constructor(session: ToolSession);
121
145
  execute(_toolCallId: string, params: typeof vibeKillSchema.infer): Promise<AgentToolResult<VibeToolDetails>>;
@@ -127,7 +151,7 @@ export declare class VibeListTool implements AgentTool<typeof vibeListSchema, Vi
127
151
  readonly label = "Vibe List";
128
152
  readonly summary = "List worker sessions and their states";
129
153
  readonly description: string;
130
- readonly parameters: import("arktype/internal/variants/object.ts").ObjectType<object, {}>;
154
+ readonly parameters: import("@oh-my-pi/omptype").FluentType<{}, {}>;
131
155
  readonly strict = true;
132
156
  constructor(session: ToolSession);
133
157
  execute(): Promise<AgentToolResult<VibeToolDetails>>;
@@ -6,10 +6,13 @@ import { type Theme } from "../modes/theme/theme.js";
6
6
  import type { ToolSession } from "../sdk.js";
7
7
  import { type OutputMeta } from "./output-meta.js";
8
8
  import { type XdevDispatch } from "./xdev.js";
9
- declare const writeSchema: import("arktype/internal/variants/object.ts").ObjectType<{
9
+ declare const writeSchema: import("@oh-my-pi/omptype").FluentType<{
10
+ content: string;
10
11
  path: string;
12
+ }, {
11
13
  content: string;
12
- }, {}>;
14
+ path: string;
15
+ }>;
13
16
  export type WriteToolInput = typeof writeSchema.infer;
14
17
  /** Details returned by the write tool for TUI rendering */
15
18
  export interface WriteToolDetails {
@@ -37,10 +40,13 @@ export declare class WriteTool implements AgentTool<typeof writeSchema, WriteToo
37
40
  readonly formatApprovalDetails: (args: unknown) => string[];
38
41
  readonly label = "Write";
39
42
  readonly description: string;
40
- readonly parameters: import("arktype/internal/variants/object.ts").ObjectType<{
43
+ readonly parameters: import("@oh-my-pi/omptype").FluentType<{
44
+ content: string;
41
45
  path: string;
46
+ }, {
42
47
  content: string;
43
- }, {}>;
48
+ path: string;
49
+ }>;
44
50
  readonly strict = true;
45
51
  readonly concurrency = "exclusive";
46
52
  readonly loadMode = "essential";
@@ -12,14 +12,21 @@ import type { ToolSession } from "../../tools/index.js";
12
12
  import { type SearchRenderDetails } from "./render.js";
13
13
  import { type SearchProviderId } from "./types.js";
14
14
  /** Web search tool parameters schema */
15
- export declare const webSearchSchema: import("arktype/internal/variants/object.ts").ObjectType<{
15
+ export declare const webSearchSchema: import("@oh-my-pi/omptype").FluentType<{
16
+ limit?: number | undefined;
17
+ max_tokens?: number | undefined;
18
+ num_search_results?: number | undefined;
16
19
  query: string;
17
20
  recency?: "day" | "month" | "week" | "year" | undefined;
21
+ temperature?: number | undefined;
22
+ }, {
18
23
  limit?: number | undefined;
19
24
  max_tokens?: number | undefined;
20
- temperature?: number | undefined;
21
25
  num_search_results?: number | undefined;
22
- }, {}>;
26
+ query: string;
27
+ recency?: "day" | "month" | "week" | "year" | undefined;
28
+ temperature?: number | undefined;
29
+ }>;
23
30
  export type SearchToolParams = typeof webSearchSchema.infer;
24
31
  export interface SearchQueryParams extends SearchToolParams {
25
32
  provider?: SearchProviderId | "auto";
@@ -54,14 +61,21 @@ export declare class WebSearchTool implements AgentTool<typeof webSearchSchema,
54
61
  readonly approval: "read";
55
62
  readonly label = "Web Search";
56
63
  readonly description: string;
57
- readonly parameters: import("arktype/internal/variants/object.ts").ObjectType<{
64
+ readonly parameters: import("@oh-my-pi/omptype").FluentType<{
65
+ limit?: number | undefined;
66
+ max_tokens?: number | undefined;
67
+ num_search_results?: number | undefined;
58
68
  query: string;
59
69
  recency?: "day" | "month" | "week" | "year" | undefined;
70
+ temperature?: number | undefined;
71
+ }, {
60
72
  limit?: number | undefined;
61
73
  max_tokens?: number | undefined;
62
- temperature?: number | undefined;
63
74
  num_search_results?: number | undefined;
64
- }, {}>;
75
+ query: string;
76
+ recency?: "day" | "month" | "week" | "year" | undefined;
77
+ temperature?: number | undefined;
78
+ }>;
65
79
  readonly strict = true;
66
80
  readonly loadMode = "discoverable";
67
81
  readonly summary = "Search the web for up-to-date information";
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "type": "module",
3
3
  "name": "@oh-my-pi/pi-coding-agent",
4
- "version": "17.2.5",
4
+ "version": "17.2.7",
5
5
  "description": "Coding agent CLI with read, bash, edit, write tools and session management",
6
6
  "homepage": "https://omp.sh",
7
7
  "author": "Can Boluk",
@@ -52,17 +52,18 @@
52
52
  "@agentclientprotocol/sdk": "1.2.1",
53
53
  "@babel/parser": "^7.29.7",
54
54
  "@mozilla/readability": "^0.6.0",
55
- "@oh-my-pi/hashline": "17.2.5",
56
- "@oh-my-pi/omp-stats": "17.2.5",
57
- "@oh-my-pi/pi-agent-core": "17.2.5",
58
- "@oh-my-pi/pi-ai": "17.2.5",
59
- "@oh-my-pi/pi-catalog": "17.2.5",
60
- "@oh-my-pi/pi-mnemopi": "17.2.5",
61
- "@oh-my-pi/pi-natives": "17.2.5",
62
- "@oh-my-pi/pi-tui": "17.2.5",
63
- "@oh-my-pi/pi-utils": "17.2.5",
64
- "@oh-my-pi/pi-wire": "17.2.5",
65
- "@oh-my-pi/snapcompact": "17.2.5",
55
+ "@oh-my-pi/hashline": "17.2.7",
56
+ "@oh-my-pi/omp-stats": "17.2.7",
57
+ "@oh-my-pi/omptype": "17.2.7",
58
+ "@oh-my-pi/pi-agent-core": "17.2.7",
59
+ "@oh-my-pi/pi-ai": "17.2.7",
60
+ "@oh-my-pi/pi-catalog": "17.2.7",
61
+ "@oh-my-pi/pi-mnemopi": "17.2.7",
62
+ "@oh-my-pi/pi-natives": "17.2.7",
63
+ "@oh-my-pi/pi-tui": "17.2.7",
64
+ "@oh-my-pi/pi-utils": "17.2.7",
65
+ "@oh-my-pi/pi-wire": "17.2.7",
66
+ "@oh-my-pi/snapcompact": "17.2.7",
66
67
  "@opentelemetry/api": "^1.9.1",
67
68
  "@opentelemetry/api-logs": "^0.220.0",
68
69
  "@opentelemetry/context-async-hooks": "^2.9.0",
@@ -77,7 +78,6 @@
77
78
  "@puppeteer/browsers": "^3.0.6",
78
79
  "@types/turndown": "5.0.6",
79
80
  "@xterm/headless": "^6.0.0",
80
- "arktype": "2.2.3",
81
81
  "chalk": "^5.6.2",
82
82
  "fast-xml-parser": "^5.9.3",
83
83
  "handlebars": "^4.7.9",
@@ -24,7 +24,7 @@ const BUNDLED_PACKAGES: readonly BundledPackage[] = [
24
24
  ];
25
25
 
26
26
  const TYPEBOX_MODULE_KEY = "typebox";
27
- const TYPEBOX_SHIM = "typebox.ts";
27
+ const TYPEBOX_COMPAT_MODULE = "legacy-typebox.ts";
28
28
  const SKIPPED_WILDCARD_BASENAMES = new Set(["index"]);
29
29
  const MAIN_THREAD_UNSAFE_WILDCARD_BASENAMES = new Set(["worker-entry"]);
30
30
 
@@ -172,7 +172,7 @@ export async function collectBundledPiEntries(): Promise<BundledPiEntry[]> {
172
172
  }
173
173
  }
174
174
 
175
- addEntry(TYPEBOX_MODULE_KEY, "bundledTypeBoxShim", shimSpecifier(TYPEBOX_SHIM));
175
+ addEntry(TYPEBOX_MODULE_KEY, "bundledTypeBoxShim", shimSpecifier(TYPEBOX_COMPAT_MODULE));
176
176
  return entries;
177
177
  }
178
178
 
@@ -1,3 +1,4 @@
1
+ import { type } from "@oh-my-pi/omptype";
1
2
  import type {
2
3
  AgentIdentity,
3
4
  AgentTelemetryConfig,
@@ -7,7 +8,6 @@ import type {
7
8
  AgentToolUpdateCallback,
8
9
  } from "@oh-my-pi/pi-agent-core";
9
10
  import { escapeXmlAttribute, escapeXmlText } from "@oh-my-pi/pi-utils";
10
- import { type } from "arktype";
11
11
  import adviseDescription from "../prompts/advisor/advise-tool.md" with { type: "text" };
12
12
 
13
13
  const adviseSchema = type({
@@ -1,7 +1,7 @@
1
1
  import * as fs from "node:fs/promises";
2
2
  import * as path from "node:path";
3
+ import { type } from "@oh-my-pi/omptype";
3
4
  import { isEnoent, logger } from "@oh-my-pi/pi-utils";
4
- import { type } from "arktype";
5
5
  import { YAML } from "bun";
6
6
  import { expandAtImports } from "../discovery/at-imports";
7
7
  import { BUILTIN_TOOL_NAMES, normalizeToolNames } from "../tools/builtin-names";
@@ -1,7 +1,6 @@
1
1
  import * as path from "node:path";
2
-
2
+ import { type } from "@oh-my-pi/omptype";
3
3
  import { Text } from "@oh-my-pi/pi-tui";
4
- import { type } from "arktype";
5
4
  import type { ToolDefinition } from "../../extensibility/extensions";
6
5
  import type { Theme } from "../../modes/theme/theme";
7
6
  import { replaceTabs, truncateToWidth } from "../../tools/render-utils";
@@ -1,8 +1,7 @@
1
1
  import * as fs from "node:fs";
2
2
  import * as path from "node:path";
3
-
3
+ import { type } from "@oh-my-pi/omptype";
4
4
  import { Text } from "@oh-my-pi/pi-tui";
5
- import { type } from "arktype";
6
5
  import type { ToolDefinition } from "../../extensibility/extensions";
7
6
  import type { Theme } from "../../modes/theme/theme";
8
7
  import { replaceTabs, truncateToWidth } from "../../tools/render-utils";
@@ -1,8 +1,8 @@
1
1
  import * as fs from "node:fs";
2
2
  import * as path from "node:path";
3
+ import { type } from "@oh-my-pi/omptype";
3
4
  import { Text } from "@oh-my-pi/pi-tui";
4
5
  import { formatBytes } from "@oh-my-pi/pi-utils";
5
- import { type } from "arktype";
6
6
  import { executeBash } from "../../exec/bash-executor";
7
7
  import type { ToolDefinition } from "../../extensibility/extensions";
8
8
  import type { Theme } from "../../modes/theme/theme";
@@ -1,5 +1,5 @@
1
+ import { type } from "@oh-my-pi/omptype";
1
2
  import { Text } from "@oh-my-pi/pi-tui";
2
- import { type } from "arktype";
3
3
  import type { ToolDefinition } from "../../extensibility/extensions";
4
4
  import type { Theme } from "../../modes/theme/theme";
5
5
  import { replaceTabs, truncateToWidth } from "../../tools/render-utils";