pi-soly 1.12.1 → 1.12.2

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/ask/index.ts CHANGED
@@ -71,7 +71,7 @@ export default function piAskExtension(pi: ExtensionAPI) {
71
71
  name: "ask_pro",
72
72
  label: "soly · ask_pro",
73
73
  description:
74
- "Ask the user one or more questions at once via a tabbed picker (≤6 questions); returns all answers in one call. USE WHEN: (a) you have 2+ related questions to gather in one batch, OR (b) you have ONE simple choice among 2-4 options where each option is a short label + 1-2 sentence description (no per-option code, no pros/cons). For ONE architectural/design comparison where each option needs its own code + pros/cons card on a full screen, use `decision_deck` instead. Per question: single-select (default), `multiSelect` (+ `minSelect`/`maxSelect`), `allowOther` (free-text 'Other…'), or `freeText` (typed answer, no options). Per option: `recommended` (⭐) and `preview` (side panel, fenced code highlighted). User can skip (`s`) or note (`n`). Prefer this over one-by-one questions.",
74
+ "Ask the user one or more questions at once via a tabbed picker (≤6 questions); returns all answers in one call. USE WHEN: (a) you have 2+ related questions to gather in one batch, OR (b) the choice is local — a sub-question inside an already-decided theme, or a simple label-vs-label «или/или» that doesn't justify a full-screen deck. Each option is a short label + 1-2 sentence description (no per-option code, no pros/cons). For a global architectural fork with real counterweight between options, use `decision_deck` instead. Per question: single-select (default), `multiSelect` (+ `minSelect`/`maxSelect`), `allowOther` (free-text 'Other…'), or `freeText` (typed answer, no options). Per option: `recommended` (⭐) and `preview` (side panel, fenced code highlighted). User can skip (`s`) or note (`n`). Prefer this over one-by-one questions.",
75
75
  parameters: Type.Object({
76
76
  questions: Type.Array(
77
77
  Type.Object({
package/deck/index.ts CHANGED
@@ -24,7 +24,7 @@ export default function piDeckExtension(pi: ExtensionAPI) {
24
24
  name: "decision_deck",
25
25
  label: "soly · decision_deck",
26
26
  description:
27
- "Present ONE design/architecture decision as a full-screen deck of cards (one per option) the user flips through (←/→ or 1-N) and picks with Enter. Use when 2-6 options each need their own card with code + pros/cons to be properly compared (e.g. architectural forks, API shapes, data-model choices). STRICTLY ONE question per call — for 2+ related questions in one batch, use `ask_pro` instead. Each option SHOULD carry either a non-trivial code snippet or explicit pros/cons; for plain label-vs-label choices, `ask_pro` is lighter. The user can attach a free-text note (rationale, caveats) via `n`; it's returned in the result. Native TUI. Returns the chosen option.",
27
+ "Present ONE design/architecture decision as a full-screen deck of cards (one per option) the user flips through (←/→ or 1-N) and picks with Enter. Use when comparing global architectural forks (architecture, API shape, data model) where each option needs its own card with code + pros/cons to be properly weighed against its counterweight — trade-offs that genuinely pull in different directions (e.g. consistency vs availability, sync vs async). STRICTLY ONE question per call — for 2+ related questions in one batch, use `ask_pro` instead. For local sub-questions inside an already-decided theme, or simple label-vs-label «или/или», `ask_pro` is lighter. Default to `ask_pro` unless the stakes are global. The user can attach a free-text note (rationale, caveats) via `n`; it's returned in the result. Native TUI. Returns the chosen option.",
28
28
  parameters: Type.Object({
29
29
  title: Type.Optional(Type.String({ description: "Decision title." })),
30
30
  prompt: Type.Optional(Type.String({ description: "Question shown above the cards." })),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pi-soly",
3
- "version": "1.12.1",
3
+ "version": "1.12.2",
4
4
  "description": "Project management + workflow framework for pi-coding-agent. Plans, state, MANDATORY rules, self-review, multi-question picker, native footer + welcome chrome — one npm install, zero config. The LLM drives execution and delegates to a worker subagent when available.",
5
5
  "type": "module",
6
6
  "main": "index.ts",
package/tool-hints.ts CHANGED
@@ -52,7 +52,7 @@ export function buildToolHintSection(h: ToolHint): string | null {
52
52
  if (h.artifact)
53
53
  bits.push("- Examples / a table / a visual result: **ask the user first** — render it in the browser as an artifact (`html_artifact`), or just as text here? Then proceed accordingly.");
54
54
  if (h.deck)
55
- bits.push("- Comparing 2-6 options: if it's ONE question and each option needs code + pros/cons on its own card → use `decision_deck`. If it's 2+ related questions in one batch → use `ask_pro`. **Default to `ask_pro` unless you have explicit code or trade-offs per option.** Never use `decision_deck` for 2+ questions.");
55
+ bits.push("- Comparing 2-6 options: if it's a global architectural fork with real counterweight (trade-offs pulling in different directions) and each option needs code + pros/cons on its own card → use `decision_deck`. If it's 2+ related questions OR a local sub-question → use `ask_pro`. **Default to `ask_pro` unless the stakes are global.** Never use `decision_deck` for 2+ questions.");
56
56
  if (h.ask)
57
57
  bits.push("- Several things to clarify → use `ask_pro` (one batched picker). `decision_deck` does NOT support multi-question — never reach for it here.");
58
58
  if (bits.length === 0) return null;