@oh-my-pi/pi-coding-agent 15.8.3 → 15.9.0

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 (112) hide show
  1. package/CHANGELOG.md +74 -31
  2. package/dist/types/capability/skill.d.ts +7 -0
  3. package/dist/types/config/settings-schema.d.ts +36 -22
  4. package/dist/types/debug/protocol-probe.d.ts +38 -0
  5. package/dist/types/debug/terminal-info.d.ts +34 -0
  6. package/dist/types/export/html/template.generated.d.ts +1 -1
  7. package/dist/types/extensibility/custom-tools/types.d.ts +1 -1
  8. package/dist/types/extensibility/extensions/types.d.ts +11 -0
  9. package/dist/types/extensibility/shared-events.d.ts +1 -1
  10. package/dist/types/index.d.ts +1 -0
  11. package/dist/types/mcp/transports/stdio.d.ts +16 -7
  12. package/dist/types/modes/components/assistant-message.d.ts +3 -2
  13. package/dist/types/modes/components/hook-selector.d.ts +11 -0
  14. package/dist/types/modes/components/todo-reminder.d.ts +1 -1
  15. package/dist/types/modes/components/transcript-container.d.ts +36 -0
  16. package/dist/types/modes/interactive-mode.d.ts +2 -1
  17. package/dist/types/modes/rpc/rpc-types.d.ts +1 -1
  18. package/dist/types/modes/theme/theme.d.ts +20 -1
  19. package/dist/types/plan-mode/plan-handoff.d.ts +20 -0
  20. package/dist/types/session/agent-session.d.ts +1 -1
  21. package/dist/types/session/indexed-session-storage.d.ts +59 -0
  22. package/dist/types/session/redis-session-storage.d.ts +12 -85
  23. package/dist/types/session/session-manager.d.ts +20 -0
  24. package/dist/types/session/session-storage.d.ts +5 -7
  25. package/dist/types/session/sql-session-storage.d.ts +16 -85
  26. package/dist/types/task/executor.d.ts +9 -0
  27. package/dist/types/task/index.d.ts +3 -1
  28. package/dist/types/telemetry-export.d.ts +19 -0
  29. package/dist/types/tiny/compiled-runtime.d.ts +35 -0
  30. package/dist/types/tools/ask.d.ts +1 -0
  31. package/dist/types/tools/index.d.ts +4 -2
  32. package/dist/types/tools/path-utils.d.ts +1 -1
  33. package/dist/types/tools/search.d.ts +2 -2
  34. package/dist/types/tools/{todo-write.d.ts → todo.d.ts} +18 -18
  35. package/dist/types/utils/session-color.d.ts +7 -2
  36. package/dist/types/web/search/index.d.ts +1 -1
  37. package/dist/types/web/search/provider.d.ts +2 -2
  38. package/dist/types/web/search/types.d.ts +65 -1
  39. package/package.json +15 -9
  40. package/scripts/build-binary.ts +12 -0
  41. package/src/capability/skill.ts +7 -0
  42. package/src/cli/args.ts +1 -1
  43. package/src/config/settings-schema.ts +22 -55
  44. package/src/debug/index.ts +67 -1
  45. package/src/debug/protocol-probe.ts +267 -0
  46. package/src/debug/terminal-info.ts +127 -0
  47. package/src/export/html/template.generated.ts +1 -1
  48. package/src/export/html/template.js +3 -3
  49. package/src/extensibility/custom-tools/types.ts +1 -1
  50. package/src/extensibility/extensions/types.ts +11 -0
  51. package/src/extensibility/shared-events.ts +1 -1
  52. package/src/extensibility/skills.ts +3 -3
  53. package/src/index.ts +1 -0
  54. package/src/internal-urls/docs-index.generated.ts +7 -7
  55. package/src/main.ts +12 -0
  56. package/src/mcp/transports/stdio.ts +37 -12
  57. package/src/modes/acp/acp-event-mapper.ts +7 -7
  58. package/src/modes/components/assistant-message.ts +3 -2
  59. package/src/modes/components/hook-selector.ts +149 -14
  60. package/src/modes/components/session-selector.ts +36 -5
  61. package/src/modes/components/status-line/segments.ts +2 -1
  62. package/src/modes/components/status-line.ts +1 -1
  63. package/src/modes/components/tips.txt +1 -1
  64. package/src/modes/components/todo-reminder.ts +1 -1
  65. package/src/modes/components/tool-execution.ts +9 -4
  66. package/src/modes/components/transcript-container.ts +91 -0
  67. package/src/modes/controllers/event-controller.ts +12 -7
  68. package/src/modes/controllers/extension-ui-controller.ts +3 -0
  69. package/src/modes/controllers/todo-command-controller.ts +1 -1
  70. package/src/modes/interactive-mode.ts +18 -6
  71. package/src/modes/print-mode.ts +5 -0
  72. package/src/modes/rpc/rpc-types.ts +1 -1
  73. package/src/modes/theme/theme.ts +48 -8
  74. package/src/modes/utils/ui-helpers.ts +1 -0
  75. package/src/plan-mode/plan-handoff.ts +37 -0
  76. package/src/priority.json +4 -0
  77. package/src/prompts/goals/goal-continuation.md +1 -1
  78. package/src/prompts/system/eager-todo.md +3 -3
  79. package/src/prompts/system/orchestrate-notice.md +5 -5
  80. package/src/prompts/system/plan-mode-approved.md +14 -17
  81. package/src/prompts/system/plan-mode-reference.md +3 -6
  82. package/src/prompts/system/subagent-system-prompt.md +11 -0
  83. package/src/prompts/system/workflow-notice.md +1 -1
  84. package/src/prompts/tools/browser.md +5 -2
  85. package/src/prompts/tools/search.md +1 -1
  86. package/src/prompts/tools/task.md +3 -1
  87. package/src/prompts/tools/{todo-write.md → todo.md} +5 -5
  88. package/src/sdk.ts +1 -0
  89. package/src/session/agent-session.ts +14 -14
  90. package/src/session/indexed-session-storage.ts +430 -0
  91. package/src/session/redis-session-storage.ts +66 -377
  92. package/src/session/session-manager.ts +102 -22
  93. package/src/session/session-storage.ts +148 -68
  94. package/src/session/sql-session-storage.ts +131 -382
  95. package/src/slash-commands/helpers/todo.ts +2 -2
  96. package/src/task/executor.ts +9 -1
  97. package/src/task/index.ts +51 -1
  98. package/src/telemetry-export.ts +126 -0
  99. package/src/tiny/compiled-runtime.ts +179 -0
  100. package/src/tiny/worker.ts +24 -2
  101. package/src/tools/ask.ts +133 -87
  102. package/src/tools/fetch.ts +17 -4
  103. package/src/tools/find.ts +2 -2
  104. package/src/tools/index.ts +6 -4
  105. package/src/tools/path-utils.ts +16 -7
  106. package/src/tools/renderers.ts +2 -2
  107. package/src/tools/search.ts +6 -3
  108. package/src/tools/{todo-write.ts → todo.ts} +32 -35
  109. package/src/utils/session-color.ts +39 -14
  110. package/src/web/search/index.ts +1 -1
  111. package/src/web/search/provider.ts +18 -34
  112. package/src/web/search/types.ts +73 -32
@@ -981,8 +981,8 @@
981
981
  return out;
982
982
  }
983
983
 
984
- function renderTodoWrite(name, args, result, ctx) {
985
- let html = toolHead('todo_write');
984
+ function renderTodo(name, args, result, ctx) {
985
+ let html = toolHead('todo');
986
986
  const ops = Array.isArray(args.ops) ? args.ops : null;
987
987
  if (ops) {
988
988
  html += '<div class="tool-args">';
@@ -1520,7 +1520,7 @@
1520
1520
  search: renderSearch,
1521
1521
  find: renderFind,
1522
1522
  lsp: renderLsp,
1523
- todo_write: renderTodoWrite,
1523
+ todo: renderTodo,
1524
1524
  task: renderTask,
1525
1525
  web_search: renderWebSearch,
1526
1526
  fetch: renderFetch,
@@ -21,7 +21,7 @@ import type { ExecOptions, ExecResult } from "../../exec/exec";
21
21
  import type { HookUIContext } from "../../extensibility/hooks/types";
22
22
  import type { Theme } from "../../modes/theme/theme";
23
23
  import type { ReadonlySessionManager } from "../../session/session-manager";
24
- import type { TodoItem } from "../../tools/todo-write";
24
+ import type { TodoItem } from "../../tools/todo";
25
25
 
26
26
  /** Alias for clarity */
27
27
  export type CustomToolUIContext = HookUIContext;
@@ -124,6 +124,17 @@ export interface ExtensionUIDialogOptions {
124
124
  onExternalEditor?: () => void;
125
125
  /** Optional footer hint text rendered by interactive selector */
126
126
  helpText?: string;
127
+ /** Render a leading radio/checkbox marker before each markable option in
128
+ * select dialogs (matches the ask transcript). "radio" fills the cursor row
129
+ * for single-choice; "checkbox" reflects `checkedIndices` per row for
130
+ * multi-select. Options beyond `markableCount` keep the plain cursor. */
131
+ selectionMarker?: "radio" | "checkbox";
132
+ /** For `selectionMarker: "checkbox"`: option indices currently checked. */
133
+ checkedIndices?: readonly number[];
134
+ /** Number of leading options that receive a selection marker; the remaining
135
+ * trailing options (e.g. "Other"/"Done" actions) keep the plain cursor.
136
+ * Defaults to all options when `selectionMarker` is set. */
137
+ markableCount?: number;
127
138
  }
128
139
 
129
140
  /** Raw terminal input listener for extensions. */
@@ -18,7 +18,7 @@ import type { ImageContent, TextContent, ToolResultMessage } from "@oh-my-pi/pi-
18
18
  import type { Rule } from "../capability/rule";
19
19
  import type { Goal, GoalModeState } from "../goals/state";
20
20
  import type { BranchSummaryEntry, CompactionEntry, SessionEntry } from "../session/session-manager";
21
- import type { TodoItem } from "../tools/todo-write";
21
+ import type { TodoItem } from "../tools/todo";
22
22
 
23
23
  // ============================================================================
24
24
  // Session Events
@@ -82,7 +82,7 @@ export async function loadSkillsFromDir(options: LoadSkillsFromDirOptions): Prom
82
82
  filePath: capSkill.path,
83
83
  baseDir: capSkill.path.replace(/[\\/]SKILL\.md$/, ""),
84
84
  source: options.source,
85
- hide: capSkill.frontmatter?.hide === true,
85
+ hide: capSkill.frontmatter?.hide === true || capSkill.frontmatter?.disableModelInvocation === true,
86
86
  _source: capSkill._source,
87
87
  })),
88
88
  warnings: (result.warnings ?? []).map(message => ({ skillPath: options.dir, message })),
@@ -197,7 +197,7 @@ export async function loadSkills(options: LoadSkillsOptions = {}): Promise<LoadS
197
197
  filePath: capSkill.path,
198
198
  baseDir: capSkill.path.replace(/[\\/]SKILL\.md$/, ""),
199
199
  source: `${capSkill._source.provider}:${capSkill.level}`,
200
- hide: capSkill.frontmatter?.hide === true,
200
+ hide: capSkill.frontmatter?.hide === true || capSkill.frontmatter?.disableModelInvocation === true,
201
201
  _source: capSkill._source,
202
202
  });
203
203
  realPathSet.add(resolvedPath);
@@ -234,7 +234,7 @@ export async function loadSkills(options: LoadSkillsOptions = {}): Promise<LoadS
234
234
  filePath: capSkill.path,
235
235
  baseDir: capSkill.path.replace(/[\\/]SKILL\.md$/, ""),
236
236
  source: "custom:user",
237
- hide: capSkill.frontmatter?.hide === true,
237
+ hide: capSkill.frontmatter?.hide === true || capSkill.frontmatter?.disableModelInvocation === true,
238
238
  _source: { ...capSkill._source, providerName: "Custom" },
239
239
  },
240
240
  path: capSkill.path,
package/src/index.ts CHANGED
@@ -39,6 +39,7 @@ export * from "./sdk";
39
39
  export * from "./session/agent-session";
40
40
  // Auth and model registry
41
41
  export * from "./session/auth-storage";
42
+ export * from "./session/indexed-session-storage";
42
43
  export * from "./session/messages";
43
44
  export * from "./session/redis-session-storage";
44
45
  export * from "./session/session-dump-format";