@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.
- package/README.md +1 -1
- package/dist/core/agent-session-skill-block.test.d.ts +2 -0
- package/dist/core/agent-session-skill-block.test.d.ts.map +1 -0
- package/dist/core/agent-session-skill-block.test.js +20 -0
- package/dist/core/agent-session-skill-block.test.js.map +1 -0
- package/dist/core/agent-session.d.ts +7 -4
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +22 -12
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/skills.d.ts.map +1 -1
- package/dist/core/skills.js +1 -1
- package/dist/core/skills.js.map +1 -1
- package/dist/data/capabilities.d.ts +48 -0
- package/dist/data/capabilities.d.ts.map +1 -0
- package/dist/data/capabilities.js +282 -0
- package/dist/data/capabilities.js.map +1 -0
- package/dist/data/navigation.d.ts +3 -0
- package/dist/data/navigation.d.ts.map +1 -0
- package/dist/data/navigation.js +90 -0
- package/dist/data/navigation.js.map +1 -0
- package/dist/extensions/inline-skills.test.ts +96 -0
- package/dist/extensions/inline-skills.ts +92 -0
- package/dist/extensions/package.json +1 -0
- package/dist/extensions/pi-powerline-footer/tests/tps.test.ts +39 -0
- package/dist/extensions/pi-powerline-footer/tps.ts +172 -113
- package/dist/extensions/pi-subagents/src/tui/fleet.ts +0 -4
- package/dist/extensions/pi-subagents/test/integration/slash-commands.test.ts +1 -1
- package/dist/extensions/pi-subagents/test/unit/fleet.test.ts +1 -1
- package/dist/extensions/question/batch.ts +89 -25
- package/dist/extensions/question/constants.ts +1 -1
- package/dist/extensions/question/helpers.ts +34 -78
- package/dist/extensions/question/index.ts +327 -564
- package/dist/extensions/question/package.json +2 -1
- package/dist/extensions/question/question-list.ts +21 -14
- package/dist/extensions/question/row-layout.ts +2 -2
- package/dist/extensions/question/schemas.ts +33 -47
- package/dist/extensions/question/selection-mode.ts +5 -7
- package/dist/extensions/question/tests/batch.test.ts +65 -16
- package/dist/extensions/question/tests/helpers.test.ts +31 -156
- package/dist/extensions/question/tests/question-list.test.ts +17 -3
- package/dist/extensions/question/tests/row-layout.test.ts +4 -4
- package/dist/extensions/question/tests/schemas.test.ts +30 -0
- package/dist/extensions/question/tests/wizard.test.ts +99 -0
- package/dist/extensions/question/types.ts +65 -66
- package/dist/extensions/workflow/adapter.ts +20 -77
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +10 -10
- package/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/dist/skills/workflow-creation/SKILL.md +2 -2
- package/docs/skills.md +8 -0
- package/docs/workflows.md +4 -4
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -64,7 +64,7 @@ Selesai includes a workflow engine with three modes:
|
|
|
64
64
|
| `quick` | grill → plan → reuse → handoff → build/review loop → audit | Smaller prototypes with less ceremony |
|
|
65
65
|
| `task` | plan → reuse → handoff → build/review loop | Direct implementation work |
|
|
66
66
|
|
|
67
|
-
Workflows persist their state and phase artifacts on disk, can be resumed explicitly, and require an explicit close step.
|
|
67
|
+
Workflows persist their state and phase artifacts on disk, can be resumed explicitly, and require an explicit close step. Users start and resume them directly with `/workflow-prototype`, `/workflow-quick`, or `/workflow-task`; the agent cannot initiate a workflow.
|
|
68
68
|
|
|
69
69
|
### Web research
|
|
70
70
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-session-skill-block.test.d.ts","sourceRoot":"","sources":["../../src/core/agent-session-skill-block.test.ts"],"names":[],"mappings":"","sourcesContent":["import { describe, expect, it } from \"vitest\";\nimport { parseSkillBlock, parseSkillBlocks } from \"./agent-session.ts\";\n\nconst research = '<skill name=\"research\" location=\"/skills/research/SKILL.md\">\\nResearch instructions.\\n</skill>';\nconst grill = '<skill name=\"batch-grill-me\" location=\"/skills/batch-grill-me/SKILL.md\">\\nGrill instructions.\\n</skill>';\n\ndescribe(\"skill block parsing\", () => {\n\tit(\"parses multiple skill blocks followed by the original prompt\", () => {\n\t\texpect(parseSkillBlocks(`${research}\\n\\n${grill}\\n\\nPlan with #research and #batch-grill-me`)).toEqual({\n\t\t\tskills: [\n\t\t\t\t{ name: \"research\", location: \"/skills/research/SKILL.md\", content: \"Research instructions.\", userMessage: undefined },\n\t\t\t\t{ name: \"batch-grill-me\", location: \"/skills/batch-grill-me/SKILL.md\", content: \"Grill instructions.\", userMessage: undefined },\n\t\t\t],\n\t\t\tuserMessage: \"Plan with #research and #batch-grill-me\",\n\t\t});\n\t});\n\n\tit(\"retains singular parser behavior\", () => {\n\t\texpect(parseSkillBlock(`${research}\\n\\nDo research`)).toMatchObject({ name: \"research\", userMessage: \"Do research\" });\n\t\texpect(parseSkillBlock(`${research}\\n\\n${grill}`)).toBeNull();\n\t});\n});\n"]}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { describe, expect, it } from "vitest";
|
|
2
|
+
import { parseSkillBlock, parseSkillBlocks } from "./agent-session.js";
|
|
3
|
+
const research = '<skill name="research" location="/skills/research/SKILL.md">\nResearch instructions.\n</skill>';
|
|
4
|
+
const grill = '<skill name="batch-grill-me" location="/skills/batch-grill-me/SKILL.md">\nGrill instructions.\n</skill>';
|
|
5
|
+
describe("skill block parsing", () => {
|
|
6
|
+
it("parses multiple skill blocks followed by the original prompt", () => {
|
|
7
|
+
expect(parseSkillBlocks(`${research}\n\n${grill}\n\nPlan with #research and #batch-grill-me`)).toEqual({
|
|
8
|
+
skills: [
|
|
9
|
+
{ name: "research", location: "/skills/research/SKILL.md", content: "Research instructions.", userMessage: undefined },
|
|
10
|
+
{ name: "batch-grill-me", location: "/skills/batch-grill-me/SKILL.md", content: "Grill instructions.", userMessage: undefined },
|
|
11
|
+
],
|
|
12
|
+
userMessage: "Plan with #research and #batch-grill-me",
|
|
13
|
+
});
|
|
14
|
+
});
|
|
15
|
+
it("retains singular parser behavior", () => {
|
|
16
|
+
expect(parseSkillBlock(`${research}\n\nDo research`)).toMatchObject({ name: "research", userMessage: "Do research" });
|
|
17
|
+
expect(parseSkillBlock(`${research}\n\n${grill}`)).toBeNull();
|
|
18
|
+
});
|
|
19
|
+
});
|
|
20
|
+
//# sourceMappingURL=agent-session-skill-block.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-session-skill-block.test.js","sourceRoot":"","sources":["../../src/core/agent-session-skill-block.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEvE,MAAM,QAAQ,GAAG,gGAAgG,CAAC;AAClH,MAAM,KAAK,GAAG,yGAAyG,CAAC;AAExH,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE,CAAC;IACrC,EAAE,CAAC,8DAA8D,EAAE,GAAG,EAAE,CAAC;QACxE,MAAM,CAAC,gBAAgB,CAAC,GAAG,QAAQ,OAAO,KAAK,6CAA6C,CAAC,CAAC,CAAC,OAAO,CAAC;YACtG,MAAM,EAAE;gBACP,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,2BAA2B,EAAE,OAAO,EAAE,wBAAwB,EAAE,WAAW,EAAE,SAAS,EAAE;gBACtH,EAAE,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,iCAAiC,EAAE,OAAO,EAAE,qBAAqB,EAAE,WAAW,EAAE,SAAS,EAAE;aAC/H;YACD,WAAW,EAAE,yCAAyC;SACtD,CAAC,CAAC;IAAA,CACH,CAAC,CAAC;IAEH,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE,CAAC;QAC5C,MAAM,CAAC,eAAe,CAAC,GAAG,QAAQ,iBAAiB,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,aAAa,EAAE,CAAC,CAAC;QACtH,MAAM,CAAC,eAAe,CAAC,GAAG,QAAQ,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;IAAA,CAC9D,CAAC,CAAC;AAAA,CACH,CAAC,CAAC","sourcesContent":["import { describe, expect, it } from \"vitest\";\nimport { parseSkillBlock, parseSkillBlocks } from \"./agent-session.ts\";\n\nconst research = '<skill name=\"research\" location=\"/skills/research/SKILL.md\">\\nResearch instructions.\\n</skill>';\nconst grill = '<skill name=\"batch-grill-me\" location=\"/skills/batch-grill-me/SKILL.md\">\\nGrill instructions.\\n</skill>';\n\ndescribe(\"skill block parsing\", () => {\n\tit(\"parses multiple skill blocks followed by the original prompt\", () => {\n\t\texpect(parseSkillBlocks(`${research}\\n\\n${grill}\\n\\nPlan with #research and #batch-grill-me`)).toEqual({\n\t\t\tskills: [\n\t\t\t\t{ name: \"research\", location: \"/skills/research/SKILL.md\", content: \"Research instructions.\", userMessage: undefined },\n\t\t\t\t{ name: \"batch-grill-me\", location: \"/skills/batch-grill-me/SKILL.md\", content: \"Grill instructions.\", userMessage: undefined },\n\t\t\t],\n\t\t\tuserMessage: \"Plan with #research and #batch-grill-me\",\n\t\t});\n\t});\n\n\tit(\"retains singular parser behavior\", () => {\n\t\texpect(parseSkillBlock(`${research}\\n\\nDo research`)).toMatchObject({ name: \"research\", userMessage: \"Do research\" });\n\t\texpect(parseSkillBlock(`${research}\\n\\n${grill}`)).toBeNull();\n\t});\n});\n"]}
|
|
@@ -31,10 +31,13 @@ export interface ParsedSkillBlock {
|
|
|
31
31
|
content: string;
|
|
32
32
|
userMessage: string | undefined;
|
|
33
33
|
}
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
34
|
+
export interface ParsedSkillBlocks {
|
|
35
|
+
skills: ParsedSkillBlock[];
|
|
36
|
+
userMessage: string | undefined;
|
|
37
|
+
}
|
|
38
|
+
/** Parse consecutive skill blocks at the start of a user message. */
|
|
39
|
+
export declare function parseSkillBlocks(text: string): ParsedSkillBlocks | null;
|
|
40
|
+
/** Parse one skill block, retained for API compatibility. */
|
|
38
41
|
export declare function parseSkillBlock(text: string): ParsedSkillBlock | null;
|
|
39
42
|
/** Session-specific events that extend the core AgentEvent */
|
|
40
43
|
export type AgentSessionEvent = Exclude<AgentEvent, {
|