@quantiya/codevibe-claude-plugin 2.0.76 → 2.0.77
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 +41 -10
- package/node_modules/@quantiya/codevibe-core/dist/appsync/queries.d.ts +4 -0
- package/node_modules/@quantiya/codevibe-core/dist/appsync/session-freshness.d.ts +12 -0
- package/node_modules/@quantiya/codevibe-core/dist/index.js +643 -562
- package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/brainstorm-context.d.ts +11 -0
- package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/cli.d.ts +11 -1
- package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/cli.js +55627 -53046
- package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/conductor-reply.d.ts +37 -0
- package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/context-items.d.ts +64 -0
- package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/index.d.ts +44 -2
- package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/resume-modal.d.ts +19 -0
- package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/slash-router.d.ts +2 -0
- package/node_modules/@quantiya/codevibe-core/dist/orchestration-shell/types.d.ts +48 -2
- package/node_modules/@quantiya/codevibe-core/dist/session/pending-session-create.d.ts +31 -0
- package/node_modules/@quantiya/codevibe-core/dist/session-resume/ResumePicker.d.ts +21 -0
- package/node_modules/@quantiya/codevibe-core/dist/session-resume/carry-over.d.ts +81 -0
- package/node_modules/@quantiya/codevibe-core/dist/session-resume/clean-exit.d.ts +33 -0
- package/node_modules/@quantiya/codevibe-core/dist/session-resume/cli-resume.d.ts +41 -0
- package/node_modules/@quantiya/codevibe-core/dist/session-resume/completeness-copy.d.ts +52 -0
- package/node_modules/@quantiya/codevibe-core/dist/session-resume/create-outcome.d.ts +43 -0
- package/node_modules/@quantiya/codevibe-core/dist/session-resume/e2e-fault.d.ts +28 -0
- package/node_modules/@quantiya/codevibe-core/dist/session-resume/hosted-loader.d.ts +88 -0
- package/node_modules/@quantiya/codevibe-core/dist/session-resume/local-completeness.d.ts +10 -0
- package/node_modules/@quantiya/codevibe-core/dist/session-resume/local-records.d.ts +121 -0
- package/node_modules/@quantiya/codevibe-core/dist/session-resume/picker-rows.d.ts +17 -0
- package/node_modules/@quantiya/codevibe-core/dist/session-resume/publish-retire.d.ts +40 -0
- package/node_modules/@quantiya/codevibe-core/dist/session-resume/relaunch.d.ts +72 -0
- package/node_modules/@quantiya/codevibe-core/dist/session-resume/restore-conversation.d.ts +27 -0
- package/node_modules/@quantiya/codevibe-core/dist/session-resume/resume-candidates.d.ts +52 -0
- package/node_modules/@quantiya/codevibe-core/dist/session-resume/resume-chosen.d.ts +103 -0
- package/node_modules/@quantiya/codevibe-core/dist/session-resume/resume-create.d.ts +121 -0
- package/node_modules/@quantiya/codevibe-core/dist/session-resume/resume-entry.d.ts +87 -0
- package/node_modules/@quantiya/codevibe-core/dist/session-resume/resume-header.d.ts +25 -0
- package/node_modules/@quantiya/codevibe-core/dist/session-resume/resume-io.d.ts +34 -0
- package/node_modules/@quantiya/codevibe-core/dist/session-resume/resume-ledger.d.ts +107 -0
- package/node_modules/@quantiya/codevibe-core/dist/session-resume/resume-messages.d.ts +68 -0
- package/node_modules/@quantiya/codevibe-core/dist/session-resume/resume-rows.d.ts +24 -0
- package/node_modules/@quantiya/codevibe-core/dist/session-resume/resume-target.d.ts +65 -0
- package/node_modules/@quantiya/codevibe-core/dist/session-resume/shell-resume-io.d.ts +25 -0
- package/node_modules/@quantiya/codevibe-core/dist/session-resume/shell-resume.d.ts +34 -0
- package/node_modules/@quantiya/codevibe-core/dist/session-resume/source-choice.d.ts +37 -0
- package/node_modules/@quantiya/codevibe-core/dist/session-resume/successor-carry-over.d.ts +54 -0
- package/node_modules/@quantiya/codevibe-core/dist/session-resume/will-retire.d.ts +24 -0
- package/node_modules/@quantiya/codevibe-core/dist/types/session.d.ts +67 -0
- package/node_modules/@quantiya/codevibe-core/package.json +1 -1
- package/package.json +2 -2
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "codevibe-claude",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.77",
|
|
4
4
|
"description": "Sync Claude Code sessions with iOS mobile app via AWS backend. Control Claude Code from your phone with real-time bidirectional synchronization.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "CodeVibe Team"
|
|
@@ -7,6 +7,7 @@ import { DurableDesktopSyncWriter, type DesktopSyncSessionScope } from './sync-o
|
|
|
7
7
|
import { DesktopSyncReadClient } from './sync-read-client';
|
|
8
8
|
import { DesktopSyncLiveConnection } from './sync-live-connection';
|
|
9
9
|
import { type DurableDesktopSyncReader } from './sync-desktop-registration';
|
|
10
|
+
import type { ContextItemPage, ResumableSessionPage, ResumeDetails } from '../types/session';
|
|
10
11
|
import type { PromptReRaiseDisposition } from './sync-prompt-retention';
|
|
11
12
|
import { type ResolveDesktopSyncPromptInput, type SyncPromptResolutionReceipt } from './sync-prompt-resolution';
|
|
12
13
|
import { type ConfirmDesktopSyncRetirementInput, type SyncSessionRetirementReceipt } from './sync-session-retirement';
|
|
@@ -422,18 +423,16 @@ export interface DownloadUrlResponse {
|
|
|
422
423
|
expiresAt: string;
|
|
423
424
|
}
|
|
424
425
|
/**
|
|
425
|
-
*
|
|
426
|
-
* `errorType` and `extensions` fields, alongside the human-readable
|
|
427
|
-
* `message`. Stage 2 r1's `graphqlRequest()` threw a plain
|
|
428
|
-
* `Error("GraphQL error: <message>")` and silently dropped
|
|
429
|
-
* `errorType`, which broke `BackendPlannerClient.classifyTransportError`
|
|
430
|
-
* (it discriminates on `err.errorType` to separate
|
|
431
|
-
* `BudgetExceeded` / `TierGateRejected` from provider-health failures).
|
|
426
|
+
* The P61 old-backend retry's trigger: the server's schema lacks an input field the update sent.
|
|
432
427
|
*
|
|
433
|
-
*
|
|
434
|
-
*
|
|
435
|
-
* the
|
|
428
|
+
* AppSync answers a variable carrying an undefined input field with a GraphQL error whose message is
|
|
429
|
+
* exactly "The variables input contains a field that is not defined for input object type
|
|
430
|
+
* 'UpdateSessionInput'" — no `errorType`, and the field is not named (observed against Development on
|
|
431
|
+
* 2026-10-15, P61B-S1-F8; Phase B assumption PB-12). The caller retries only when the request carried
|
|
432
|
+
* clean-exit fields, and the retry removes only those, so a different unknown field still fails.
|
|
433
|
+
* The older validation-error shape that names a clean-exit field is kept as a second form.
|
|
436
434
|
*/
|
|
435
|
+
export declare function isUnknownCleanExitFieldError(error: unknown): boolean;
|
|
437
436
|
export declare class AppSyncGraphQLError extends Error {
|
|
438
437
|
readonly responseMessage: string;
|
|
439
438
|
readonly errorType?: string;
|
|
@@ -1014,6 +1013,12 @@ export declare class AppSyncClient {
|
|
|
1014
1013
|
* Create a session
|
|
1015
1014
|
*/
|
|
1016
1015
|
createSession(input: CreateSessionInput): Promise<Session>;
|
|
1016
|
+
/**
|
|
1017
|
+
* P61 — the resume create (B-15). The same mutation as `createSession`, with
|
|
1018
|
+
* `resumedFromSessionId` selected so the caller can prove the server resumed
|
|
1019
|
+
* the predecessor. Used only on resume paths.
|
|
1020
|
+
*/
|
|
1021
|
+
createResumedSession(input: CreateSessionInput): Promise<Session>;
|
|
1017
1022
|
/**
|
|
1018
1023
|
* Blind-hold one canonical ContextItem. The mutation is idempotent only for
|
|
1019
1024
|
* an exact ciphertext+routing replay; a conflicting rewrite is rejected by
|
|
@@ -1098,6 +1103,18 @@ export declare class AppSyncClient {
|
|
|
1098
1103
|
createdAt: string | null;
|
|
1099
1104
|
updatedAt: string | null;
|
|
1100
1105
|
}>>;
|
|
1106
|
+
/** One page of the caller's resumable sessions (creation order; amendment A-1). */
|
|
1107
|
+
listResumableSessions(limit?: number, nextToken?: string | null): Promise<ResumableSessionPage>;
|
|
1108
|
+
/**
|
|
1109
|
+
* Every resumable session (S1R1-F23: never just the first screen). The
|
|
1110
|
+
* 7-day window bounds the set; the page cap only stops a server that never
|
|
1111
|
+
* ends its token chain.
|
|
1112
|
+
*/
|
|
1113
|
+
listAllResumableSessions(maxPages?: number): Promise<ResumeDetails[]>;
|
|
1114
|
+
/** One owner-only row in any status (null when absent or not owned). */
|
|
1115
|
+
getResumeDetails(sessionId: string): Promise<ResumeDetails | null>;
|
|
1116
|
+
/** One page of a session's hosted ContextItem rows (routing ids + ciphertext). */
|
|
1117
|
+
listContextItems(sessionId: string, nextToken?: string | null): Promise<ContextItemPage>;
|
|
1101
1118
|
/**
|
|
1102
1119
|
* Mark stale ACTIVE sessions of a given agentType INACTIVE so they
|
|
1103
1120
|
* stop appearing in the mobile app's session list. Called at daemon
|
|
@@ -1128,6 +1145,20 @@ export declare class AppSyncClient {
|
|
|
1128
1145
|
staleThresholdMs?: number;
|
|
1129
1146
|
excludeSessionIds?: string[];
|
|
1130
1147
|
}): Promise<number>;
|
|
1148
|
+
/**
|
|
1149
|
+
* P61 pre-listing retire (SESSION-RESUME-DESIGN.md §6.2 step 3; Phase B
|
|
1150
|
+
* B-5). Retires exactly the rows of the caller's own step-1 read for which
|
|
1151
|
+
* `willRetire` holds, so the `--continue` comparison and the retirement can
|
|
1152
|
+
* never disagree. Immediately before each retire the row is re-read
|
|
1153
|
+
* strongly, and it is skipped if it is no longer ACTIVE or its heartbeat
|
|
1154
|
+
* moved since the step-1 read (a live shell elsewhere). Returns the retired
|
|
1155
|
+
* IDs (step 4 merges them through `getResumeDetails`). Best effort: a failed
|
|
1156
|
+
* read or update leaves that row as it is.
|
|
1157
|
+
*/
|
|
1158
|
+
sweepOrphanSessionsFromRows<T extends {
|
|
1159
|
+
sessionId: string;
|
|
1160
|
+
lastHeartbeatAt?: string | null;
|
|
1161
|
+
}>(rows: readonly T[], willRetire: (row: T) => boolean): Promise<string[]>;
|
|
1131
1162
|
/**
|
|
1132
1163
|
* List user device keys
|
|
1133
1164
|
*/
|
|
@@ -17,6 +17,9 @@ export declare const queries: {
|
|
|
17
17
|
* whose creator died before its first heartbeat.
|
|
18
18
|
*/
|
|
19
19
|
listSessions: string;
|
|
20
|
+
listResumableSessions: string;
|
|
21
|
+
getResumeDetails: string;
|
|
22
|
+
listContextItems: string;
|
|
20
23
|
getSubscriptionStatus: string;
|
|
21
24
|
queryAudit: string;
|
|
22
25
|
verifyContinuationPacketWritten: string;
|
|
@@ -33,6 +36,7 @@ export declare const mutations: {
|
|
|
33
36
|
recordExecutionEvent: string;
|
|
34
37
|
putContextItem: string;
|
|
35
38
|
createSession: string;
|
|
39
|
+
createResumedSession: string;
|
|
36
40
|
updateSession: string;
|
|
37
41
|
updateEvent: string;
|
|
38
42
|
createEvent: string;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The one freshness rule shared by the plain-launch orphan sweep and the P61
|
|
3
|
+
* pre-listing retire (SESSION-RESUME-DESIGN.md §6.2 step 3): a row's age is
|
|
4
|
+
* `now − max(lastHeartbeatAt, createdAt, updatedAt)`, ignoring unparsable
|
|
5
|
+
* values. A row with no parsable value has no age, and is never swept on age.
|
|
6
|
+
*/
|
|
7
|
+
export interface SessionFreshnessFields {
|
|
8
|
+
lastHeartbeatAt?: string | null;
|
|
9
|
+
createdAt?: string | null;
|
|
10
|
+
updatedAt?: string | null;
|
|
11
|
+
}
|
|
12
|
+
export declare function sessionFreshnessAgeMs(row: SessionFreshnessFields, nowMs: number): number | null;
|