@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.
Files changed (38) hide show
  1. package/.claude-plugin/plugin.json +1 -1
  2. package/node_modules/@quantiya/codevibe-core/dist/appsync/appsync-client.d.ts +124 -3
  3. package/node_modules/@quantiya/codevibe-core/dist/appsync/queries.d.ts +6 -0
  4. package/node_modules/@quantiya/codevibe-core/dist/index.js +629 -510
  5. package/node_modules/@quantiya/codevibe-core/dist/local-executor/agentic-resolver-flag.d.ts +4 -7
  6. package/node_modules/@quantiya/codevibe-core/dist/local-executor/class-b-consumer.d.ts +10 -1
  7. package/node_modules/@quantiya/codevibe-core/dist/local-executor/descendant-reaper.d.ts +81 -0
  8. package/node_modules/@quantiya/codevibe-core/dist/local-executor/index.d.ts +1 -1
  9. package/node_modules/@quantiya/codevibe-core/dist/local-executor/local-executor-impl.d.ts +15 -1
  10. package/node_modules/@quantiya/codevibe-core/dist/local-executor/merge-train.d.ts +1 -1
  11. package/node_modules/@quantiya/codevibe-core/dist/local-executor/process-tree.d.ts +6 -0
  12. package/node_modules/@quantiya/codevibe-core/dist/local-executor/reviewer-rationale-flag.d.ts +3 -8
  13. package/node_modules/@quantiya/codevibe-core/dist/local-executor/snapshot-merge.d.ts +10 -0
  14. package/node_modules/@quantiya/codevibe-core/dist/local-executor/spawn.d.ts +1 -1
  15. package/node_modules/@quantiya/codevibe-core/dist/local-executor/team-execution-flag.d.ts +0 -6
  16. package/node_modules/@quantiya/codevibe-core/dist/local-executor/types.d.ts +16 -0
  17. package/node_modules/@quantiya/codevibe-core/dist/local-model/manager.d.ts +5 -3
  18. package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/cli.js +46310 -44043
  19. package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/components/ImplementorSetupWizard.d.ts +10 -0
  20. package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/components/LiveProgressLine.d.ts +4 -0
  21. package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/components/OrchestrationApp.d.ts +13 -0
  22. package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/implementor-preference.d.ts +24 -0
  23. package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/index.d.ts +97 -18
  24. package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/non-tty-fallback.d.ts +2 -3
  25. package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/prompt-reply-router.d.ts +53 -0
  26. package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/quorum-loop.d.ts +163 -40
  27. package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/slash-routes/implementors.d.ts +17 -0
  28. package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/task-lifecycle-lines.d.ts +29 -0
  29. package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/task-progress.d.ts +1 -0
  30. package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/team-decompose.d.ts +9 -8
  31. package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/types.d.ts +96 -1
  32. package/node_modules/@quantiya/codevibe-core/dist/planner/types.d.ts +2 -2
  33. package/node_modules/@quantiya/codevibe-core/dist/substrate/command-runner.d.ts +2 -0
  34. package/node_modules/@quantiya/codevibe-core/dist/substrate/types.d.ts +5 -0
  35. package/node_modules/@quantiya/codevibe-core/dist/substrate-launch/engage-substrate.d.ts +2 -0
  36. package/node_modules/@quantiya/codevibe-core/dist/tool-activity/types.d.ts +12 -12
  37. package/node_modules/@quantiya/codevibe-core/package.json +1 -1
  38. package/package.json +2 -2
@@ -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>;
@@ -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;
@@ -87,6 +87,7 @@ export type TaskProgressEvent = ({
87
87
  message: string;
88
88
  }) & {
89
89
  epoch?: number;
90
+ progressTaskId?: string;
90
91
  tokens?: number;
91
92
  };
92
93
  /** The callback the QuorumLoop invokes on each progress phase. */
@@ -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
- * Validate + normalize each work item's `implementorAgent` against the active
224
- * detected agent set (§3.C — v1 is DETECTED-ONLY; NO capability-health
225
- * filtering, NO per-spawn auth-recheck). For each item:
226
- * `.toUpperCase()`-normalize the suggested agent; keep it if active +
227
- * detected; else SUBSTITUTE the first active detected agent. If NO active
228
- * agent is detected `null` (the caller falls back to single). Returns NEW
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 — 'running' at dispatch, flipped terminal
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" | "merge_gate_pending" | "in_progress" | "awaiting_user" | "awaiting_review";
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" | "merge_gate_pending" | "in_progress" | "awaiting_user" | "awaiting_review";
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;
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@quantiya/codevibe-core",
3
- "version": "2.0.38",
3
+ "version": "2.0.40",
4
4
  "description": "Core library for CodeVibe plugins - shared keychain, crypto, AppSync, and auth functionality",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@quantiya/codevibe-claude-plugin",
3
- "version": "2.0.43",
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.38",
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",