@quantiya/codevibe-codex-plugin 2.0.68 → 2.0.70

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.
@@ -11713,8 +11713,8 @@ var AppSyncClient = class _AppSyncClient {
11713
11713
  }
11714
11714
  },
11715
11715
  getToken: async (requestSignal) => {
11716
- if (this.assertSyncAccount(userId), this.tokens && this.tokens.expiresAt <= Date.now() && await this.refreshTokens(this.tokens, requestSignal), this.assertSyncAccount(userId), !this.tokens?.idToken) throw new SyncEventClientError("SYNC_IDENTITY_UNAVAILABLE");
11717
- return this.tokens.idToken;
11716
+ if (this.assertSyncAccount(userId), this.tokens && this.tokens.expiresAt <= Date.now() && await this.refreshTokens(this.tokens, requestSignal), this.assertSyncAccount(userId), !this.tokens?.accessToken) throw new SyncEventClientError("SYNC_IDENTITY_UNAVAILABLE");
11717
+ return this.tokens.accessToken;
11718
11718
  }
11719
11719
  });
11720
11720
  }
@@ -77748,7 +77748,7 @@ async function runOrchestrationShell(args) {
77748
77748
  await durableDecisionEffectDispatcher.dispatch(resolution);
77749
77749
  }, settleInitialSubscription = () => {
77750
77750
  }, rejectInitialSubscription = () => {
77751
- }, initialSubscriptionSettled = !startupReadinessRequired, initialSubscriptionTimer = null, initialSubscriptionReady = startupReadinessRequired ? new Promise((resolve28, reject) => {
77751
+ }, initialSubscriptionSettled = !startupReadinessRequired, initialCatchUpStarted = !1, initialSubscriptionTimer = null, initialSubscriptionReady = startupReadinessRequired ? new Promise((resolve28, reject) => {
77752
77752
  settleInitialSubscription = () => {
77753
77753
  initialSubscriptionSettled || (initialSubscriptionSettled = !0, resolve28());
77754
77754
  }, rejectInitialSubscription = (error) => {
@@ -77864,7 +77864,7 @@ async function runOrchestrationShell(args) {
77864
77864
  // an event actually arrives (async) — never during this synchronous setup.
77865
77865
  subscribedEventDispatcher,
77866
77866
  (err) => {
77867
- rejectInitialSubscription(err), logger.warn("[orchestration-shell] subscribeToEvents error", {
77867
+ initialCatchUpStarted && rejectInitialSubscription(err), logger.warn("[orchestration-shell] subscribeToEvents error", {
77868
77868
  error: err.message
77869
77869
  });
77870
77870
  },
@@ -77885,7 +77885,7 @@ async function runOrchestrationShell(args) {
77885
77885
  classifyDurableGateResolution(event, args.session.sessionId) && subscribedEventDispatcher(event);
77886
77886
  },
77887
77887
  onSubscribed: (isReconnect) => {
77888
- catchUpDurableGateTimeline(isReconnect).then(() => settleInitialSubscription()).catch((error) => {
77888
+ initialCatchUpStarted = !0, catchUpDurableGateTimeline(isReconnect).then(() => settleInitialSubscription()).catch((error) => {
77889
77889
  initialSubscriptionSettled ? (logger.error("[orchestration-shell] durable gate catch-up failed", {
77890
77890
  error: error instanceof Error ? error.message : String(error)
77891
77891
  }), store.dispatch({
@@ -39,3 +39,6 @@ export declare function parseInteractivePrompt(snapshot: string, options?: {
39
39
  * so the parser can match option lines inside boxes.
40
40
  */
41
41
  export declare function normalizeSnapshot(snapshot: string): string;
42
+ export declare function countUnescapedBackticks(str: string): number;
43
+ export declare function isMcpHeadingLine(line: string): boolean;
44
+ export declare function isPromptHeadingLine(line: string): boolean;
@@ -16,7 +16,8 @@ export declare function selectTerminalMenuOption(identity: string, number: strin
16
16
  }): Promise<TerminalMenuDelivery>;
17
17
  /**
18
18
  * Recognize a bottom-pane numbered selector, never a bare numbered list.
19
- * Requires a styled title, exactly one selected option, and a separate terminal
20
- * footer. Labels are data: there is no dialog-title or approval-phrase allowlist.
19
+ * Recognizes styled (bold) titles or prompt heading patterns (with bounded
20
+ * parameter regions for MCP tool approval dialogs), exactly one selected option,
21
+ * and a separate terminal footer with key hints.
21
22
  */
22
23
  export declare function parseActiveTerminalMenu(snapshot: string): TerminalMenu | null;
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@quantiya/codevibe-core",
3
- "version": "2.0.60",
3
+ "version": "2.0.62",
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-codex-plugin",
3
- "version": "2.0.68",
3
+ "version": "2.0.70",
4
4
  "description": "Control OpenAI Codex CLI 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": {
@@ -47,7 +47,7 @@
47
47
  "node": ">=22.0.0"
48
48
  },
49
49
  "dependencies": {
50
- "@quantiya/codevibe-core": "^2.0.60",
50
+ "@quantiya/codevibe-core": "^2.0.62",
51
51
  "@quantiya/quorum-core": "^1.0.1",
52
52
  "chokidar": "^4.0.0",
53
53
  "dotenv": "^16.6.1",