@melihmucuk/pi-crew 1.0.15 → 1.0.17

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 (39) hide show
  1. package/README.md +8 -8
  2. package/agents/code-reviewer.md +32 -102
  3. package/agents/oracle.md +23 -29
  4. package/agents/planner.md +35 -116
  5. package/agents/quality-reviewer.md +39 -124
  6. package/agents/scout.md +21 -38
  7. package/agents/worker.md +27 -72
  8. package/extension/agent-catalog.ts +369 -0
  9. package/extension/agent-config-fields.ts +359 -0
  10. package/extension/agent-discovery.ts +49 -717
  11. package/extension/bootstrap-session.ts +2 -2
  12. package/extension/index.ts +5 -3
  13. package/extension/integration/crew-tool-actions.ts +306 -0
  14. package/extension/integration/crew-tool-executor.ts +109 -0
  15. package/extension/integration/register-renderers.ts +2 -2
  16. package/extension/integration/register-tools.ts +11 -3
  17. package/extension/integration/tool-presentation.ts +3 -23
  18. package/extension/integration/tools/crew-abort.ts +14 -84
  19. package/extension/integration/tools/crew-done.ts +7 -26
  20. package/extension/integration/tools/crew-list.ts +5 -61
  21. package/extension/integration/tools/crew-respond.ts +8 -29
  22. package/extension/integration/tools/crew-spawn.ts +16 -57
  23. package/extension/message-delivery-policy.ts +22 -0
  24. package/extension/runtime/crew-runtime.ts +60 -223
  25. package/extension/runtime/overflow-recovery.ts +1 -1
  26. package/extension/runtime/{delivery-coordinator.ts → owner-session-coordinator.ts} +44 -37
  27. package/extension/runtime/subagent-lifecycle.ts +203 -0
  28. package/extension/runtime/subagent-registry.ts +50 -6
  29. package/extension/runtime/subagent-transitions.ts +100 -0
  30. package/extension/status-widget.ts +2 -2
  31. package/extension/subagent-messages.ts +9 -17
  32. package/package.json +13 -11
  33. package/prompts/pi-crew-plan.md +34 -137
  34. package/prompts/pi-crew-review.md +36 -112
  35. package/skills/pi-crew/REFERENCE.md +82 -0
  36. package/skills/pi-crew/SKILL.md +33 -104
  37. package/extension/integration/tools/tool-deps.ts +0 -16
  38. package/extension/integration.ts +0 -13
  39. package/extension/runtime/subagent-state.ts +0 -59
@@ -1,16 +0,0 @@
1
- import type {
2
- ExtensionAPI,
3
- ExtensionContext,
4
- } from "@mariozechner/pi-coding-agent";
5
- import type { AgentDiscoveryWarning } from "../../agent-discovery.js";
6
- import type { CrewRuntime } from "../../runtime/crew-runtime.js";
7
-
8
- export interface CrewToolDeps {
9
- pi: ExtensionAPI;
10
- crew: CrewRuntime;
11
- extensionDir: string;
12
- notifyDiscoveryWarnings: (
13
- ctx: ExtensionContext,
14
- warnings: AgentDiscoveryWarning[],
15
- ) => void;
16
- }
@@ -1,13 +0,0 @@
1
- import type { ExtensionAPI } from "@mariozechner/pi-coding-agent";
2
- import type { CrewRuntime } from "./runtime/crew-runtime.js";
3
- import { registerCrewMessageRenderers } from "./integration/register-renderers.js";
4
- import { registerCrewTools } from "./integration/register-tools.js";
5
-
6
- export function registerCrewIntegration(
7
- pi: ExtensionAPI,
8
- crew: CrewRuntime,
9
- extensionDir: string,
10
- ): void {
11
- registerCrewTools(pi, crew, extensionDir);
12
- registerCrewMessageRenderers(pi);
13
- }
@@ -1,59 +0,0 @@
1
- import { randomBytes } from "node:crypto";
2
- import type { AgentSession } from "@mariozechner/pi-coding-agent";
3
- import type { AgentConfig } from "../agent-discovery.js";
4
- import type { SubagentStatus } from "../subagent-messages.js";
5
-
6
- export interface SubagentState {
7
- id: string;
8
- agentConfig: AgentConfig;
9
- task: string;
10
- status: SubagentStatus;
11
- ownerSessionId: string;
12
- session: AgentSession | null;
13
- turns: number;
14
- contextTokens: number;
15
- model: string | undefined;
16
- error?: string;
17
- result?: string;
18
- promptAbortController?: AbortController;
19
- unsubscribe?: () => void;
20
- }
21
-
22
- export interface ActiveAgentSummary {
23
- id: string;
24
- agentName: string;
25
- status: SubagentStatus;
26
- turns: number;
27
- contextTokens: number;
28
- model: string | undefined;
29
- }
30
-
31
- export function generateId(name: string, existingIds: Set<string>): string {
32
- for (let i = 0; i < 10; i++) {
33
- const id = `${name}-${randomBytes(4).toString("hex")}`;
34
- if (!existingIds.has(id)) return id;
35
- }
36
- return `${name}-${randomBytes(8).toString("hex")}`;
37
- }
38
-
39
- // Status may change externally via abort(). Standalone function avoids TS narrowing.
40
- export function isAborted(state: SubagentState): boolean {
41
- return state.status === "aborted";
42
- }
43
-
44
- export function isAbortableStatus(status: SubagentStatus): boolean {
45
- return status === "running" || status === "waiting";
46
- }
47
-
48
- export function buildActiveAgentSummary(
49
- state: SubagentState,
50
- ): ActiveAgentSummary {
51
- return {
52
- id: state.id,
53
- agentName: state.agentConfig.name,
54
- status: state.status,
55
- turns: state.turns,
56
- contextTokens: state.contextTokens,
57
- model: state.model,
58
- };
59
- }