@quantiya/codevibe-claude-plugin 2.0.43 → 2.0.45
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/.claude-plugin/plugin.json +1 -1
- package/node_modules/@quantiya/codevibe-core/dist/appsync/appsync-client.d.ts +124 -3
- package/node_modules/@quantiya/codevibe-core/dist/appsync/queries.d.ts +6 -0
- package/node_modules/@quantiya/codevibe-core/dist/index.js +629 -510
- package/node_modules/@quantiya/codevibe-core/dist/local-executor/agentic-resolver-flag.d.ts +4 -7
- package/node_modules/@quantiya/codevibe-core/dist/local-executor/class-b-consumer.d.ts +10 -1
- package/node_modules/@quantiya/codevibe-core/dist/local-executor/descendant-reaper.d.ts +81 -0
- package/node_modules/@quantiya/codevibe-core/dist/local-executor/index.d.ts +1 -1
- package/node_modules/@quantiya/codevibe-core/dist/local-executor/local-executor-impl.d.ts +15 -1
- package/node_modules/@quantiya/codevibe-core/dist/local-executor/merge-train.d.ts +1 -1
- package/node_modules/@quantiya/codevibe-core/dist/local-executor/process-tree.d.ts +6 -0
- package/node_modules/@quantiya/codevibe-core/dist/local-executor/reviewer-rationale-flag.d.ts +3 -8
- package/node_modules/@quantiya/codevibe-core/dist/local-executor/snapshot-merge.d.ts +10 -0
- package/node_modules/@quantiya/codevibe-core/dist/local-executor/spawn.d.ts +1 -1
- package/node_modules/@quantiya/codevibe-core/dist/local-executor/team-execution-flag.d.ts +0 -6
- package/node_modules/@quantiya/codevibe-core/dist/local-executor/types.d.ts +16 -0
- package/node_modules/@quantiya/codevibe-core/dist/local-model/manager.d.ts +5 -3
- package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/cli.js +46310 -44043
- package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/components/ImplementorSetupWizard.d.ts +10 -0
- package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/components/LiveProgressLine.d.ts +4 -0
- package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/components/OrchestrationApp.d.ts +13 -0
- package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/implementor-preference.d.ts +24 -0
- package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/index.d.ts +97 -18
- package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/non-tty-fallback.d.ts +2 -3
- package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/prompt-reply-router.d.ts +53 -0
- package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/quorum-loop.d.ts +163 -40
- package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/slash-routes/implementors.d.ts +17 -0
- package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/task-lifecycle-lines.d.ts +29 -0
- package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/task-progress.d.ts +1 -0
- package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/team-decompose.d.ts +9 -8
- package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/types.d.ts +96 -1
- package/node_modules/@quantiya/codevibe-core/dist/planner/types.d.ts +2 -2
- package/node_modules/@quantiya/codevibe-core/dist/substrate/command-runner.d.ts +2 -0
- package/node_modules/@quantiya/codevibe-core/dist/substrate/types.d.ts +5 -0
- package/node_modules/@quantiya/codevibe-core/dist/substrate-launch/engage-substrate.d.ts +2 -0
- package/node_modules/@quantiya/codevibe-core/dist/tool-activity/types.d.ts +12 -12
- package/node_modules/@quantiya/codevibe-core/package.json +1 -1
- package/package.json +2 -2
package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/slash-routes/implementors.d.ts
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { AgentKind } from '../../local-executor/types';
|
|
2
|
+
import type { Tier } from '../types';
|
|
3
|
+
import { detectInstalledAgents } from '../../orchestration';
|
|
4
|
+
import { type ImplementorPreference, readImplementorPreferenceSync } from '../implementor-preference';
|
|
5
|
+
export declare function displayAgentName(agent: string): string;
|
|
6
|
+
/**
|
|
7
|
+
* Human-readable, ANSI-free rendering of implementor preference & multi-track allocation.
|
|
8
|
+
*/
|
|
9
|
+
export declare function formatImplementorPolicy(detected: readonly AgentKind[], pref: ImplementorPreference, tier?: Tier): string;
|
|
10
|
+
/**
|
|
11
|
+
* Synchronously formats the user's implementor policy. Never throws.
|
|
12
|
+
*/
|
|
13
|
+
export declare function runImplementorsCli(detectFn?: typeof detectInstalledAgents, readPrefFn?: typeof readImplementorPreferenceSync, tier?: Tier): string;
|
|
14
|
+
/**
|
|
15
|
+
* Handles CLI invocation of `/implementor-setup <args>`.
|
|
16
|
+
*/
|
|
17
|
+
export declare function runImplementorSetupCli(args: string, detectFn?: typeof detectInstalledAgents): Promise<string>;
|
package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/task-lifecycle-lines.d.ts
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/** The never-started halt reasons of `QUEUED_WORK_ENDED` (engine `halted_reason`). */
|
|
2
|
+
export type QueuedTaskEndReason = 'user_cancelled_queued_task' | 'tier_changed' | 'queued_task_expired';
|
|
3
|
+
/** `#4` → `4`, `#4 retry` → `4`, `#5.2` → `5.2`; anything else unchanged. */
|
|
4
|
+
export declare function labelNumber(label: string): string;
|
|
5
|
+
/** Desktop answer to a queued START (§3.7). */
|
|
6
|
+
export declare function queuedDesktopLine(label: string, info: {
|
|
7
|
+
runningTracks?: number;
|
|
8
|
+
trackBudget?: number;
|
|
9
|
+
}): string;
|
|
10
|
+
/** Phone line for a queued START (§3.13 item 1). */
|
|
11
|
+
export declare function queuedPhoneLine(label: string, info: {
|
|
12
|
+
runningTracks?: number;
|
|
13
|
+
trackBudget?: number;
|
|
14
|
+
}): string;
|
|
15
|
+
/** Phone line for every single-task start, immediate or from the queue. */
|
|
16
|
+
export declare function startedPhoneLine(label: string, agent: string): string;
|
|
17
|
+
/** Desktop line when a queued task starts because a slot freed. */
|
|
18
|
+
export declare function startedFromQueueDesktopLine(label: string, agent: string): string;
|
|
19
|
+
/** Phone line when a team starts (§3.13 item 1). */
|
|
20
|
+
export declare function teamStartedPhoneLine(label: string, running: number, waiting: number): string;
|
|
21
|
+
/** Phone line when a team track that waited starts later (`#5.4`). */
|
|
22
|
+
export declare function trackStartedPhoneLine(trackLabel: string): string;
|
|
23
|
+
/**
|
|
24
|
+
* The line (desktop and phone) for a task that never started and was halted.
|
|
25
|
+
* An unknown reason renders the neutral form.
|
|
26
|
+
*/
|
|
27
|
+
export declare function cancelledLine(label: string, reason: string): string;
|
|
28
|
+
/** `/status` phase for a cancelled task: `cancelled (reason)`. */
|
|
29
|
+
export declare function cancelledStatusLabel(reason?: string): string;
|
|
@@ -197,6 +197,8 @@ export interface RunLocalDecomposerDeps {
|
|
|
197
197
|
localExecutor: LocalExecutor;
|
|
198
198
|
/** Canonicalized real working dir (the repo) — the decomposer reads the tree. */
|
|
199
199
|
workingDir: string;
|
|
200
|
+
/** Optional user priority order. Defaults to DEFAULT_IMPLEMENTOR_PRIORITY. */
|
|
201
|
+
priorityOrder?: readonly AgentKind[];
|
|
200
202
|
}
|
|
201
203
|
/**
|
|
202
204
|
* Run the local decomposition pass (§3.B). Spawns the FIRST available agent in
|
|
@@ -220,12 +222,11 @@ export declare function runLocalDecomposer(deps: RunLocalDecomposerDeps, brief:
|
|
|
220
222
|
*/
|
|
221
223
|
repoContext?: string): Promise<DecomposerResult>;
|
|
222
224
|
/**
|
|
223
|
-
*
|
|
224
|
-
* detected
|
|
225
|
-
*
|
|
226
|
-
*
|
|
227
|
-
*
|
|
228
|
-
*
|
|
229
|
-
* work items (does not mutate the inputs).
|
|
225
|
+
* §3.C / §3.E — availability-validate the parsed agent strings against the
|
|
226
|
+
* host's detected list.
|
|
227
|
+
* Allocates tracks across detected agents according to the user's priority order
|
|
228
|
+
* and in-flight busy agents, matching multi-track allocation.
|
|
229
|
+
* If no supported active agent is detected → `null` (the caller falls back to single).
|
|
230
|
+
* Returns NEW work items (does not mutate the inputs).
|
|
230
231
|
*/
|
|
231
|
-
export declare function validateAgentAvailability(workItems: DecomposerWorkItem[], detected: AgentKind[]): DecomposerWorkItem[] | null;
|
|
232
|
+
export declare function validateAgentAvailability(workItems: DecomposerWorkItem[], detected: AgentKind[], priorityOrder?: readonly AgentKind[] | null, inFlightAgents?: readonly AgentKind[]): DecomposerWorkItem[] | null;
|
|
@@ -3,6 +3,9 @@ import type { StructuralSummary } from '../structural-summary/types';
|
|
|
3
3
|
import type { GatePromptEnvelope, ReviewSummaryPanelModel } from './gate-prompts';
|
|
4
4
|
import type { TaskProgressEvent } from './task-progress';
|
|
5
5
|
import type { ReviewerAgentSpec } from '../types/reviewer';
|
|
6
|
+
import type { ImplementorPreference } from './implementor-preference';
|
|
7
|
+
import type { AgentKind as LocalExecutorAgentKind } from '../local-executor/types';
|
|
8
|
+
import type { WorkItemInput } from '../local-executor/task-group-types';
|
|
6
9
|
/**
|
|
7
10
|
* Engine's reply to `applyUserDecision`. Surfaced by the SDK as
|
|
8
11
|
* `Promise<PostDecisionAction>`. Discriminated by `kind`; payload
|
|
@@ -134,6 +137,8 @@ export interface PlannerDecision {
|
|
|
134
137
|
* locks shape.
|
|
135
138
|
*/
|
|
136
139
|
gateRequest?: Record<string, unknown>;
|
|
140
|
+
/** Task start confirmation metadata when ask_user is confirming a start_task. */
|
|
141
|
+
startConfirmation?: TaskStartConfirmationState;
|
|
137
142
|
}
|
|
138
143
|
export interface BrainstormContextMetadata {
|
|
139
144
|
needsRepositoryContext: boolean;
|
|
@@ -172,7 +177,8 @@ export interface SessionTaskRecord {
|
|
|
172
177
|
/** 'single' = TASK_LIFECYCLE-tracked; 'team' = Agent Teams track. */
|
|
173
178
|
origin: 'single' | 'team';
|
|
174
179
|
/**
|
|
175
|
-
* Singles: the lifecycle status — '
|
|
180
|
+
* Singles: the lifecycle status — 'queued' while a START waits for a
|
|
181
|
+
* running-track slot (P46b), 'running' at dispatch, flipped terminal
|
|
176
182
|
* by the task-end CLOSER progress events (promoted → 'completed',
|
|
177
183
|
* discarded → 'cancelled', round_failed → 'failed'; Stage-2 r1 Codex
|
|
178
184
|
* MED-2 — no production TASK_LIFECYCLE dispatch ever carries a terminal
|
|
@@ -451,6 +457,24 @@ export interface QueuedTask {
|
|
|
451
457
|
* resolves the most recent question and re-routes through
|
|
452
458
|
* `classifyPlannerPrompt` with the full `clarifications` array.
|
|
453
459
|
*/
|
|
460
|
+
/**
|
|
461
|
+
* Metadata stored on PendingClarification when confirmBeforeStart prompts the user.
|
|
462
|
+
*/
|
|
463
|
+
export interface TaskStartConfirmationState {
|
|
464
|
+
kind?: 'single' | 'team';
|
|
465
|
+
agent?: LocalExecutorAgentKind;
|
|
466
|
+
decision: PlannerDecision;
|
|
467
|
+
brief: string;
|
|
468
|
+
attachments?: ImageAttachment[];
|
|
469
|
+
teamSpec?: {
|
|
470
|
+
workItems: WorkItemInput[];
|
|
471
|
+
briefsByTrackIndex: Map<number, string>;
|
|
472
|
+
groupIdempotencyKey: string;
|
|
473
|
+
decomposeAttachments?: ImageAttachment[];
|
|
474
|
+
decomposeAttachmentPaths?: string[];
|
|
475
|
+
singleFallbackBrief?: string;
|
|
476
|
+
};
|
|
477
|
+
}
|
|
454
478
|
export interface PendingClarification {
|
|
455
479
|
originalPrompt: string;
|
|
456
480
|
rounds: Array<{
|
|
@@ -474,6 +498,12 @@ export interface PendingClarification {
|
|
|
474
498
|
* both resolve to the correct ref. Grows by exactly this turn's `imagePaths` each turn.
|
|
475
499
|
*/
|
|
476
500
|
attachmentPaths?: string[];
|
|
501
|
+
/**
|
|
502
|
+
* Task start confirmation metadata when `confirmBeforeStart: true`.
|
|
503
|
+
* When present, user's subsequent input is intercepted as confirmation ("yes" starts,
|
|
504
|
+
* anything else cancels) without calling the planner classifier.
|
|
505
|
+
*/
|
|
506
|
+
startConfirmation?: TaskStartConfirmationState;
|
|
477
507
|
}
|
|
478
508
|
/**
|
|
479
509
|
* A1a #3/#4 — one numbered choice in a `PendingPlannerOffer`. Contract-ready
|
|
@@ -560,6 +590,24 @@ export interface PendingApplyConflict {
|
|
|
560
590
|
}>;
|
|
561
591
|
/** True when this menu follows the one automatic retry's own promote failure. */
|
|
562
592
|
readonly autoRetried: boolean;
|
|
593
|
+
/**
|
|
594
|
+
* P46b §3.10 — `group` when the failed promote was a team's (`taskId` is then
|
|
595
|
+
* the `taskGroupId`; retry reissues the team from its retained launch spec).
|
|
596
|
+
* Absent = a single task (P46a).
|
|
597
|
+
*/
|
|
598
|
+
readonly kind?: 'single' | 'group';
|
|
599
|
+
/** P46b §3.9 — counts only: how many paths each cause failed. */
|
|
600
|
+
readonly counts?: {
|
|
601
|
+
readonly sessionTask: number;
|
|
602
|
+
readonly external: number;
|
|
603
|
+
readonly writeErrors: number;
|
|
604
|
+
};
|
|
605
|
+
/**
|
|
606
|
+
* P46b §3.9 (ID-20) — the engine retry prompt's gate id once
|
|
607
|
+
* `openApplyRetryOffer` succeeded: the phone can answer this menu, and it is
|
|
608
|
+
* resolved with the user's choice. Absent = the desktop-local menu only.
|
|
609
|
+
*/
|
|
610
|
+
readonly offerGateId?: string;
|
|
563
611
|
/** The `advisory` conversation entry that rendered the numbered options. */
|
|
564
612
|
readonly conversationEntryId: string;
|
|
565
613
|
/** The composed retry brief (original request + files changed since + reviewed contents). */
|
|
@@ -680,6 +728,11 @@ export interface LiveProgress {
|
|
|
680
728
|
updatedAt: string;
|
|
681
729
|
/** ISO — when THIS busy window opened; the wall-clock timer anchor. */
|
|
682
730
|
startedAt: string;
|
|
731
|
+
/**
|
|
732
|
+
* P46b §3.7 — the task this line belongs to (from `emitProgressForTask`);
|
|
733
|
+
* undefined for a classify/familiarize/advisory window.
|
|
734
|
+
*/
|
|
735
|
+
taskId?: string;
|
|
683
736
|
/**
|
|
684
737
|
* The per-TASK origin epoch of the event that opened/last-refreshed this window
|
|
685
738
|
* (§2/§3). Undefined ONLY for the direct-dispatched classify/familiarize windows
|
|
@@ -781,6 +834,13 @@ export interface OrchestrationState {
|
|
|
781
834
|
* Companion sessions never dispatch `TASK_PROGRESS`, so this stays null.
|
|
782
835
|
*/
|
|
783
836
|
progress: LiveProgress | null;
|
|
837
|
+
/**
|
|
838
|
+
* `[ADDITIVE WIDENING — P46b §3.7]` One live line per single task that is
|
|
839
|
+
* busy right now, keyed by task id, under the same epoch/closer rules as
|
|
840
|
+
* `progress` applied per task. Team tracks are excluded (their rows live in
|
|
841
|
+
* `MultiTrackStatusNode`). Optional so pre-P46b state literals stay valid.
|
|
842
|
+
*/
|
|
843
|
+
progressByTask?: Map<string, LiveProgress>;
|
|
784
844
|
/**
|
|
785
845
|
* `[ADDITIVE WIDENING — /reviewer-setup wizard, 2026-06-29]` The active
|
|
786
846
|
* interactive reviewer-panel setup modal, or `null` when no wizard is open
|
|
@@ -792,6 +852,12 @@ export interface OrchestrationState {
|
|
|
792
852
|
* keyboard focus. Non-team / Companion / CP-1.a sessions never open it.
|
|
793
853
|
*/
|
|
794
854
|
reviewerWizard: ReviewerWizardState | null;
|
|
855
|
+
/**
|
|
856
|
+
* `/implementor-setup` interactive wizard. OPEN sets the state; cleared
|
|
857
|
+
* on save/cancel (`IMPLEMENTOR_WIZARD_CLOSE`). While non-null,
|
|
858
|
+
* `<OrchestrationApp>` renders `<ImplementorSetupWizard>` in place of `<InputBar>`.
|
|
859
|
+
*/
|
|
860
|
+
implementorWizard: ImplementorWizardState | null;
|
|
795
861
|
/**
|
|
796
862
|
* `[ADDITIVE WIDENING — O1 C1 (#652)]` per
|
|
797
863
|
* PHASE-O1-C1-SAFETY-OBSERVABILITY-DESIGN.md §3.1 item 1: the shell used to
|
|
@@ -876,6 +942,13 @@ export interface ReviewerWizardState {
|
|
|
876
942
|
installedAgents: Array<'CLAUDE' | 'GEMINI' | 'CODEX' | 'ANTIGRAVITY'>;
|
|
877
943
|
currentSeats: ReviewerAgentSpec[] | null;
|
|
878
944
|
}
|
|
945
|
+
/**
|
|
946
|
+
* `/implementor-setup` interactive wizard state.
|
|
947
|
+
*/
|
|
948
|
+
export interface ImplementorWizardState {
|
|
949
|
+
installedAgents: AgentKind[];
|
|
950
|
+
currentPreference: ImplementorPreference;
|
|
951
|
+
}
|
|
879
952
|
/**
|
|
880
953
|
* §5.1 LOCK lines 502-513. Discriminated union over every state
|
|
881
954
|
* transition the reducer covers. `attachedTaskId` / `ATTACH` / `DETACH`
|
|
@@ -917,6 +990,7 @@ export type OrchestrationAction = {
|
|
|
917
990
|
decision: PlannerDecision;
|
|
918
991
|
taskId?: string;
|
|
919
992
|
brainstorm?: BrainstormContextMetadata;
|
|
993
|
+
startConfirmation?: TaskStartConfirmationState;
|
|
920
994
|
} | {
|
|
921
995
|
type: 'EVENT_RECEIVED';
|
|
922
996
|
event: EventStreamEntry;
|
|
@@ -967,6 +1041,22 @@ export type OrchestrationAction = {
|
|
|
967
1041
|
} | {
|
|
968
1042
|
type: 'CLEAR_PENDING_APPLY_CONFLICT';
|
|
969
1043
|
taskId?: string;
|
|
1044
|
+
} | {
|
|
1045
|
+
type: 'APPLY_CONFLICT_OFFER_OPENED';
|
|
1046
|
+
taskId: string;
|
|
1047
|
+
gateId: string;
|
|
1048
|
+
} | {
|
|
1049
|
+
type: 'SINGLE_TASK_QUEUED';
|
|
1050
|
+
taskId: string;
|
|
1051
|
+
agentKind: string;
|
|
1052
|
+
queuedAt: string;
|
|
1053
|
+
} | {
|
|
1054
|
+
type: 'SINGLE_TASK_QUEUE_ENDED';
|
|
1055
|
+
taskId: string;
|
|
1056
|
+
reason: string;
|
|
1057
|
+
} | {
|
|
1058
|
+
type: 'GATE_PROMPT_ACTIVATED';
|
|
1059
|
+
promptEntryId: string;
|
|
970
1060
|
} | {
|
|
971
1061
|
type: 'STRUCTURAL_SUMMARY_GENERATED';
|
|
972
1062
|
summary: StructuralSummary;
|
|
@@ -1071,6 +1161,11 @@ export type OrchestrationAction = {
|
|
|
1071
1161
|
wizard: ReviewerWizardState;
|
|
1072
1162
|
} | {
|
|
1073
1163
|
type: 'REVIEWER_WIZARD_CLOSE';
|
|
1164
|
+
} | {
|
|
1165
|
+
type: 'IMPLEMENTOR_WIZARD_OPEN';
|
|
1166
|
+
wizard: ImplementorWizardState;
|
|
1167
|
+
} | {
|
|
1168
|
+
type: 'IMPLEMENTOR_WIZARD_CLOSE';
|
|
1074
1169
|
} | {
|
|
1075
1170
|
type: 'AUDIT_FLAG_INDEX_RETAINED';
|
|
1076
1171
|
index: AuditFlagIndex;
|
|
@@ -19,14 +19,14 @@ export declare const SessionContextSchema: z.ZodObject<{
|
|
|
19
19
|
sessionId: string;
|
|
20
20
|
userId: string;
|
|
21
21
|
tier: "FREE" | "PRO" | "MAX";
|
|
22
|
-
currentTaskState: "none" | "
|
|
22
|
+
currentTaskState: "none" | "in_progress" | "awaiting_user" | "awaiting_review" | "merge_gate_pending";
|
|
23
23
|
structuralSummaryDigest: string;
|
|
24
24
|
recentEventCount: number;
|
|
25
25
|
}, {
|
|
26
26
|
sessionId: string;
|
|
27
27
|
userId: string;
|
|
28
28
|
tier: "FREE" | "PRO" | "MAX";
|
|
29
|
-
currentTaskState: "none" | "
|
|
29
|
+
currentTaskState: "none" | "in_progress" | "awaiting_user" | "awaiting_review" | "merge_gate_pending";
|
|
30
30
|
structuralSummaryDigest: string;
|
|
31
31
|
recentEventCount: number;
|
|
32
32
|
}>;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { CommandResult, CommandRunner, RunnerProc } from './types';
|
|
2
2
|
import type { WorkspaceRootAuthority } from '../local-executor/workspace-authority';
|
|
3
|
+
import type { HostDescendantReap } from '../local-executor/descendant-reaper';
|
|
3
4
|
/**
|
|
4
5
|
* The production `CommandRunner` — runs `docker` / `sandbox-exec` via
|
|
5
6
|
* `node:child_process`. No shell is used (argv is passed directly to
|
|
@@ -18,5 +19,6 @@ export declare class ChildProcessCommandRunner implements CommandRunner {
|
|
|
18
19
|
cwd?: string;
|
|
19
20
|
cwdAuthority?: WorkspaceRootAuthority;
|
|
20
21
|
launchPathAuthorities?: readonly WorkspaceRootAuthority[];
|
|
22
|
+
descendantReap?: HostDescendantReap;
|
|
21
23
|
}): RunnerProc;
|
|
22
24
|
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { Readable, Writable } from "node:stream";
|
|
2
2
|
import type { WorkspaceRootAuthority } from "../local-executor/workspace-authority";
|
|
3
|
+
import type { HostDescendantReap } from "../local-executor/descendant-reaper";
|
|
3
4
|
/**
|
|
4
5
|
* Isolation backend for a substrate. `firecracker` is [DEF →
|
|
5
6
|
* A3-after-C2] — declared so the union admits the hosted runner without
|
|
@@ -173,6 +174,8 @@ export interface SubstrateHandle {
|
|
|
173
174
|
stdinTty: boolean;
|
|
174
175
|
timeoutMs?: number;
|
|
175
176
|
signal?: AbortSignal;
|
|
177
|
+
/** P46b ID-31 — the descendant sweep the process host runs if the desktop dies first. */
|
|
178
|
+
descendantReap?: HostDescendantReap;
|
|
176
179
|
}): Promise<SubstrateProc>;
|
|
177
180
|
/** Idempotent; MUST destroy the sandbox + its fs view. */
|
|
178
181
|
teardown(): Promise<void>;
|
|
@@ -276,5 +279,7 @@ export interface CommandRunner {
|
|
|
276
279
|
* they are not its cwd (for example Claude's private scratch root).
|
|
277
280
|
*/
|
|
278
281
|
launchPathAuthorities?: readonly WorkspaceRootAuthority[];
|
|
282
|
+
/** P46b ID-31 — the descendant sweep the process host runs if the desktop dies first. */
|
|
283
|
+
descendantReap?: HostDescendantReap;
|
|
279
284
|
}): RunnerProc;
|
|
280
285
|
}
|
|
@@ -41,6 +41,8 @@ export interface EngageSubstrateInput {
|
|
|
41
41
|
* legacy behavior for every existing caller.
|
|
42
42
|
*/
|
|
43
43
|
requireConfined?: boolean;
|
|
44
|
+
/** F-P46a-4 — the implementor spawn's process-tree id (descendant reaping marker). */
|
|
45
|
+
processTreeId?: string;
|
|
44
46
|
/** Ladder deps (injectable for tests). */
|
|
45
47
|
ladderDeps?: FallbackLadderDeps;
|
|
46
48
|
/** Broker upstream client override (tests inject a stub; default real fetch). */
|
|
@@ -66,11 +66,11 @@ export declare const ToolActivityGroupSchema: z.ZodObject<{
|
|
|
66
66
|
}>, "many">>;
|
|
67
67
|
}, "strip", z.ZodTypeAny, {
|
|
68
68
|
count: number;
|
|
69
|
-
tool: string;
|
|
70
69
|
occurrences: {
|
|
71
70
|
id: string;
|
|
72
71
|
ts: string;
|
|
73
72
|
}[];
|
|
73
|
+
tool: string;
|
|
74
74
|
target?: string | undefined;
|
|
75
75
|
detail?: {
|
|
76
76
|
i: number;
|
|
@@ -78,11 +78,11 @@ export declare const ToolActivityGroupSchema: z.ZodObject<{
|
|
|
78
78
|
}[] | undefined;
|
|
79
79
|
}, {
|
|
80
80
|
count: number;
|
|
81
|
-
tool: string;
|
|
82
81
|
occurrences: {
|
|
83
82
|
id: string;
|
|
84
83
|
ts: string;
|
|
85
84
|
}[];
|
|
85
|
+
tool: string;
|
|
86
86
|
target?: string | undefined;
|
|
87
87
|
detail?: {
|
|
88
88
|
i: number;
|
|
@@ -130,11 +130,11 @@ export declare const ToolActivityManifestSchema: z.ZodObject<{
|
|
|
130
130
|
}>, "many">>;
|
|
131
131
|
}, "strip", z.ZodTypeAny, {
|
|
132
132
|
count: number;
|
|
133
|
-
tool: string;
|
|
134
133
|
occurrences: {
|
|
135
134
|
id: string;
|
|
136
135
|
ts: string;
|
|
137
136
|
}[];
|
|
137
|
+
tool: string;
|
|
138
138
|
target?: string | undefined;
|
|
139
139
|
detail?: {
|
|
140
140
|
i: number;
|
|
@@ -142,11 +142,11 @@ export declare const ToolActivityManifestSchema: z.ZodObject<{
|
|
|
142
142
|
}[] | undefined;
|
|
143
143
|
}, {
|
|
144
144
|
count: number;
|
|
145
|
-
tool: string;
|
|
146
145
|
occurrences: {
|
|
147
146
|
id: string;
|
|
148
147
|
ts: string;
|
|
149
148
|
}[];
|
|
149
|
+
tool: string;
|
|
150
150
|
target?: string | undefined;
|
|
151
151
|
detail?: {
|
|
152
152
|
i: number;
|
|
@@ -157,11 +157,11 @@ export declare const ToolActivityManifestSchema: z.ZodObject<{
|
|
|
157
157
|
}, "strip", z.ZodTypeAny, {
|
|
158
158
|
groups: {
|
|
159
159
|
count: number;
|
|
160
|
-
tool: string;
|
|
161
160
|
occurrences: {
|
|
162
161
|
id: string;
|
|
163
162
|
ts: string;
|
|
164
163
|
}[];
|
|
164
|
+
tool: string;
|
|
165
165
|
target?: string | undefined;
|
|
166
166
|
detail?: {
|
|
167
167
|
i: number;
|
|
@@ -176,11 +176,11 @@ export declare const ToolActivityManifestSchema: z.ZodObject<{
|
|
|
176
176
|
}, {
|
|
177
177
|
groups: {
|
|
178
178
|
count: number;
|
|
179
|
-
tool: string;
|
|
180
179
|
occurrences: {
|
|
181
180
|
id: string;
|
|
182
181
|
ts: string;
|
|
183
182
|
}[];
|
|
183
|
+
tool: string;
|
|
184
184
|
target?: string | undefined;
|
|
185
185
|
detail?: {
|
|
186
186
|
i: number;
|
|
@@ -247,11 +247,11 @@ export declare const ToolActivityOutboxEnvelopeSchema: z.ZodObject<{
|
|
|
247
247
|
}>, "many">>;
|
|
248
248
|
}, "strip", z.ZodTypeAny, {
|
|
249
249
|
count: number;
|
|
250
|
-
tool: string;
|
|
251
250
|
occurrences: {
|
|
252
251
|
id: string;
|
|
253
252
|
ts: string;
|
|
254
253
|
}[];
|
|
254
|
+
tool: string;
|
|
255
255
|
target?: string | undefined;
|
|
256
256
|
detail?: {
|
|
257
257
|
i: number;
|
|
@@ -259,11 +259,11 @@ export declare const ToolActivityOutboxEnvelopeSchema: z.ZodObject<{
|
|
|
259
259
|
}[] | undefined;
|
|
260
260
|
}, {
|
|
261
261
|
count: number;
|
|
262
|
-
tool: string;
|
|
263
262
|
occurrences: {
|
|
264
263
|
id: string;
|
|
265
264
|
ts: string;
|
|
266
265
|
}[];
|
|
266
|
+
tool: string;
|
|
267
267
|
target?: string | undefined;
|
|
268
268
|
detail?: {
|
|
269
269
|
i: number;
|
|
@@ -274,11 +274,11 @@ export declare const ToolActivityOutboxEnvelopeSchema: z.ZodObject<{
|
|
|
274
274
|
}, "strip", z.ZodTypeAny, {
|
|
275
275
|
groups: {
|
|
276
276
|
count: number;
|
|
277
|
-
tool: string;
|
|
278
277
|
occurrences: {
|
|
279
278
|
id: string;
|
|
280
279
|
ts: string;
|
|
281
280
|
}[];
|
|
281
|
+
tool: string;
|
|
282
282
|
target?: string | undefined;
|
|
283
283
|
detail?: {
|
|
284
284
|
i: number;
|
|
@@ -293,11 +293,11 @@ export declare const ToolActivityOutboxEnvelopeSchema: z.ZodObject<{
|
|
|
293
293
|
}, {
|
|
294
294
|
groups: {
|
|
295
295
|
count: number;
|
|
296
|
-
tool: string;
|
|
297
296
|
occurrences: {
|
|
298
297
|
id: string;
|
|
299
298
|
ts: string;
|
|
300
299
|
}[];
|
|
300
|
+
tool: string;
|
|
301
301
|
target?: string | undefined;
|
|
302
302
|
detail?: {
|
|
303
303
|
i: number;
|
|
@@ -317,11 +317,11 @@ export declare const ToolActivityOutboxEnvelopeSchema: z.ZodObject<{
|
|
|
317
317
|
manifest: {
|
|
318
318
|
groups: {
|
|
319
319
|
count: number;
|
|
320
|
-
tool: string;
|
|
321
320
|
occurrences: {
|
|
322
321
|
id: string;
|
|
323
322
|
ts: string;
|
|
324
323
|
}[];
|
|
324
|
+
tool: string;
|
|
325
325
|
target?: string | undefined;
|
|
326
326
|
detail?: {
|
|
327
327
|
i: number;
|
|
@@ -343,11 +343,11 @@ export declare const ToolActivityOutboxEnvelopeSchema: z.ZodObject<{
|
|
|
343
343
|
manifest: {
|
|
344
344
|
groups: {
|
|
345
345
|
count: number;
|
|
346
|
-
tool: string;
|
|
347
346
|
occurrences: {
|
|
348
347
|
id: string;
|
|
349
348
|
ts: string;
|
|
350
349
|
}[];
|
|
350
|
+
tool: string;
|
|
351
351
|
target?: string | undefined;
|
|
352
352
|
detail?: {
|
|
353
353
|
i: number;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@quantiya/codevibe-claude-plugin",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.45",
|
|
4
4
|
"description": "Control Claude Code from your iPhone and Android — real-time sync, approve file edits, send prompts by voice. Part of CodeVibe.",
|
|
5
5
|
"main": "dist/server.js",
|
|
6
6
|
"codevibe": {
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
"node": ">=22.0.0"
|
|
49
49
|
},
|
|
50
50
|
"dependencies": {
|
|
51
|
-
"@quantiya/codevibe-core": "^2.0.
|
|
51
|
+
"@quantiya/codevibe-core": "^2.0.40",
|
|
52
52
|
"@quantiya/quorum-core": "^1.0.1",
|
|
53
53
|
"dotenv": "^16.6.1",
|
|
54
54
|
"express": "^5.1.0",
|