@quantiya/codevibe-claude-plugin 2.0.35 → 2.0.36

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.
@@ -23,7 +23,8 @@ export declare const COMPACTION_KEEP_HOT_RECENT_ITEMS = 16;
23
23
  export declare const CONTEXT_ITEMS_RETENTION_MS: number;
24
24
  /**
25
25
  * The rendered session-context section's own budget (inside the F6 total) for
26
- * the implementor dispatch block and the brainstorm panel: 2,000 chars, every
26
+ * the implementor dispatch block (the brainstorm panel uses
27
+ * `SESSION_CONTEXT_SECTION_MAX_CHARS_BRAINSTORM` below): 2,000 chars, every
27
28
  * line capped by `capForRender`, stop at the first line that does not fit — the
28
29
  * shipped behaviour. The planner's classification render uses
29
30
  * `SESSION_CONTEXT_SECTION_MAX_CHARS_CLASSIFY` below (Stage-1 r1 F5 / r2 F2,
@@ -34,10 +35,16 @@ export declare const SESSION_CONTEXT_SECTION_MAX_CHARS = 2000;
34
35
  * The planner's CLASSIFICATION render (2026-09-12): hot turns render WHOLE inside
35
36
  * a 6,000-char section under the local runner's explicit 16K-token window.
36
37
  * Stage-1 r1 F5 — this applies ONLY to `purpose: 'classification'`: the implementor
37
- * dispatch block (hard 4,800-char total, `DISPATCH_CONTEXT_MAX_CHARS`) and the
38
- * brainstorm panel keep the 2,000-char section and the per-line cap above.
38
+ * dispatch block (hard 4,800-char total, `DISPATCH_CONTEXT_MAX_CHARS`) keeps the
39
+ * 2,000-char section and the per-line cap above.
39
40
  */
40
41
  export declare const SESSION_CONTEXT_SECTION_MAX_CHARS_CLASSIFY = 6000;
42
+ /**
43
+ * The BRAINSTORM panel render: hot turns render WHOLE inside a 4,800-char section
44
+ * (aligns with MAX_WORKFLOW_HANDOFF_TOTAL_CHARS). Prevents 400-char sentence-cutting
45
+ * between multi-agent deliberation turns while preserving the overall budget.
46
+ */
47
+ export declare const SESSION_CONTEXT_SECTION_MAX_CHARS_BRAINSTORM = 4800;
41
48
  /**
42
49
  * A1f Stage-1 R1 HIGH + Stage-2 R1 (H1/M2/M3/M5) — one distilled FACT:
43
50
  * - `body` — the source item's COMPLETE typed payload, verbatim (M3:
@@ -489,6 +489,7 @@ export declare function routeReadOnlyAgentMention(args: {
489
489
  shellArgs: RunOrchestrationShellArgs;
490
490
  intent: AgentMentionIntent;
491
491
  advisoryBrief: string;
492
+ retainedPage?: RetainedBrowsePage | null;
492
493
  /**
493
494
  * [#637] This turn's validated image attachments + the ordered `[Image #N]`
494
495
  * chip-path list — the SAME `turnAttachments`/`turnImagePaths` pair the /task
@@ -998,8 +999,19 @@ export declare function tokenizeCommandLine(input: string): {
998
999
  error?: string;
999
1000
  };
1000
1001
  export declare function handleShellUserInput(deps: HandleShellUserInputDeps): Promise<void>;
1002
+ /**
1003
+ * TTL bounding for retained browse pages (15 minutes).
1004
+ * Follow-up mentions within 15 minutes receive the retained page; older pages
1005
+ * expire and are cleared to prevent leaking stale web data into unrelated future turns.
1006
+ */
1007
+ export declare const RETAINED_PAGE_MAX_AGE_MS: number;
1008
+ export declare function getFreshRetainedBrowsePage(pages: Map<string, RetainedBrowsePage>, sessionId: string, now?: number): RetainedBrowsePage | null;
1001
1009
  /** Test seam — clear the per-session retained pages between cases. */
1002
1010
  export declare function resetRetainedBrowsePagesForTests(): void;
1011
+ /** Test seam — set a per-session retained page for tests. */
1012
+ export declare function setRetainedBrowsePageForTests(sessionId: string, page: RetainedBrowsePage): void;
1013
+ /** Test seam — get a per-session retained page for tests. */
1014
+ export declare function getRetainedBrowsePageForTests(sessionId: string): RetainedBrowsePage | null;
1003
1015
  /**
1004
1016
  * [A1g] Stage-2 round-4 (Codex round-3 MEDIUM) — the EXPLICIT per-turn panel-
1005
1017
  * ownership token. `serializeShellSubmissions` mints ONE fresh object per
@@ -33,7 +33,21 @@ export interface RouteBrowseDeps {
33
33
  guardedFetchFn?: typeof guardedFetch;
34
34
  /** Dependency injection for webSearch (for tests / isolation). */
35
35
  webSearchFn?: typeof webSearch;
36
+ /**
37
+ * Optional delegation callback when an `@agent` mention is routed through browse.
38
+ * If provided, browse fetches the page(s) and delegates answering to the mentioned agent.
39
+ * Returns true if successfully handled.
40
+ */
41
+ delegateAnswer?: (args: {
42
+ header: string;
43
+ page?: RetainedBrowsePage;
44
+ }) => Promise<boolean>;
36
45
  }
46
+ /**
47
+ * Strip leading agent mention tokens, common command/browse noise, redact paths,
48
+ * terminal-sanitize, and cap at 200 characters for fallback public web search queries.
49
+ */
50
+ export declare function deriveSanitizedFallbackSearchQuery(prompt: string): string;
37
51
  /**
38
52
  * Orchestrate a `browse` route. Fetch an explicit URL, or run a web
39
53
  * search and read the top results in parallel, then answer via local Gemma. Mirrors
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@quantiya/codevibe-core",
3
- "version": "2.0.30",
3
+ "version": "2.0.31",
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.35",
3
+ "version": "2.0.36",
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.30",
51
+ "@quantiya/codevibe-core": "^2.0.31",
52
52
  "@quantiya/quorum-core": "^1.0.1",
53
53
  "dotenv": "^16.6.1",
54
54
  "express": "^5.1.0",