@selesai/code 0.5.21 → 0.5.23

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 (56) hide show
  1. package/README.md +1 -1
  2. package/dist/core/agent-session-skill-block.test.d.ts +2 -0
  3. package/dist/core/agent-session-skill-block.test.d.ts.map +1 -0
  4. package/dist/core/agent-session-skill-block.test.js +20 -0
  5. package/dist/core/agent-session-skill-block.test.js.map +1 -0
  6. package/dist/core/agent-session.d.ts +7 -4
  7. package/dist/core/agent-session.d.ts.map +1 -1
  8. package/dist/core/agent-session.js +22 -12
  9. package/dist/core/agent-session.js.map +1 -1
  10. package/dist/core/skills.d.ts.map +1 -1
  11. package/dist/core/skills.js +1 -1
  12. package/dist/core/skills.js.map +1 -1
  13. package/dist/data/capabilities.d.ts +48 -0
  14. package/dist/data/capabilities.d.ts.map +1 -0
  15. package/dist/data/capabilities.js +282 -0
  16. package/dist/data/capabilities.js.map +1 -0
  17. package/dist/data/navigation.d.ts +3 -0
  18. package/dist/data/navigation.d.ts.map +1 -0
  19. package/dist/data/navigation.js +90 -0
  20. package/dist/data/navigation.js.map +1 -0
  21. package/dist/extensions/inline-skills.test.ts +96 -0
  22. package/dist/extensions/inline-skills.ts +92 -0
  23. package/dist/extensions/package.json +1 -0
  24. package/dist/extensions/pi-powerline-footer/tests/tps.test.ts +39 -0
  25. package/dist/extensions/pi-powerline-footer/tps.ts +172 -113
  26. package/dist/extensions/pi-subagents/src/tui/fleet.ts +0 -4
  27. package/dist/extensions/pi-subagents/test/integration/slash-commands.test.ts +1 -1
  28. package/dist/extensions/pi-subagents/test/unit/fleet.test.ts +1 -1
  29. package/dist/extensions/question/batch.ts +89 -25
  30. package/dist/extensions/question/constants.ts +1 -1
  31. package/dist/extensions/question/helpers.ts +34 -78
  32. package/dist/extensions/question/index.ts +327 -564
  33. package/dist/extensions/question/package.json +2 -1
  34. package/dist/extensions/question/question-list.ts +21 -14
  35. package/dist/extensions/question/row-layout.ts +2 -2
  36. package/dist/extensions/question/schemas.ts +33 -47
  37. package/dist/extensions/question/selection-mode.ts +5 -7
  38. package/dist/extensions/question/tests/batch.test.ts +65 -16
  39. package/dist/extensions/question/tests/helpers.test.ts +31 -156
  40. package/dist/extensions/question/tests/question-list.test.ts +17 -3
  41. package/dist/extensions/question/tests/row-layout.test.ts +4 -4
  42. package/dist/extensions/question/tests/schemas.test.ts +30 -0
  43. package/dist/extensions/question/tests/wizard.test.ts +99 -0
  44. package/dist/extensions/question/types.ts +65 -66
  45. package/dist/extensions/workflow/adapter.ts +20 -77
  46. package/dist/index.d.ts +1 -1
  47. package/dist/index.d.ts.map +1 -1
  48. package/dist/index.js +1 -1
  49. package/dist/index.js.map +1 -1
  50. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  51. package/dist/modes/interactive/interactive-mode.js +10 -10
  52. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  53. package/dist/skills/workflow-creation/SKILL.md +2 -2
  54. package/docs/skills.md +8 -0
  55. package/docs/workflows.md +4 -4
  56. package/package.json +1 -1
@@ -38,20 +38,30 @@ import { createLocalBashOperations } from "./tools/bash.js";
38
38
  import { createAllToolDefinitions } from "./tools/index.js";
39
39
  import { createToolDefinitionFromAgentTool } from "./tools/tool-definition-wrapper.js";
40
40
  import { addUsageToTotals, createUsageTotals } from "./usage-totals.js";
41
- /**
42
- * Parse a skill block from message text.
43
- * Returns null if the text doesn't contain a skill block.
44
- */
41
+ /** Parse consecutive skill blocks at the start of a user message. */
42
+ export function parseSkillBlocks(text) {
43
+ const skills = [];
44
+ let remaining = text;
45
+ while (remaining.startsWith("<skill ")) {
46
+ const match = remaining.match(/^<skill name="([^"]+)" location="([^"]+)">\n([\s\S]*?)\n<\/skill>(?=\n\n|$)/);
47
+ if (!match)
48
+ return null;
49
+ skills.push({ name: match[1], location: match[2], content: match[3], userMessage: undefined });
50
+ remaining = remaining.slice(match[0].length);
51
+ if (remaining.startsWith("\n\n"))
52
+ remaining = remaining.slice(2);
53
+ }
54
+ if (skills.length === 0)
55
+ return null;
56
+ const userMessage = remaining.trim() || undefined;
57
+ return { skills, userMessage };
58
+ }
59
+ /** Parse one skill block, retained for API compatibility. */
45
60
  export function parseSkillBlock(text) {
46
- const match = text.match(/^<skill name="([^"]+)" location="([^"]+)">\n([\s\S]*?)\n<\/skill>(?:\n\n([\s\S]+))?$/);
47
- if (!match)
61
+ const parsed = parseSkillBlocks(text);
62
+ if (!parsed || parsed.skills.length !== 1)
48
63
  return null;
49
- return {
50
- name: match[1],
51
- location: match[2],
52
- content: match[3],
53
- userMessage: match[4]?.trim() || undefined,
54
- };
64
+ return { ...parsed.skills[0], userMessage: parsed.userMessage };
55
65
  }
56
66
  // ============================================================================
57
67
  // Types