qlogicagent 2.18.4 → 2.18.6

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 (32) hide show
  1. package/dist/agent.js +2 -2
  2. package/dist/cli.js +1 -1
  3. package/dist/index.js +525 -501
  4. package/dist/protocol.js +1 -1
  5. package/dist/types/agent/tool-loop.d.ts +7 -0
  6. package/dist/types/agent/types.d.ts +6 -0
  7. package/dist/types/cli/dream-host-adapter.d.ts +1 -0
  8. package/dist/types/cli/handlers/agents-handler.d.ts +33 -0
  9. package/dist/types/cli/handlers/dream-handler.d.ts +4 -0
  10. package/dist/types/cli/handlers/memory-handler.d.ts +0 -1
  11. package/dist/types/cli/handlers/turn-handler.d.ts +10 -0
  12. package/dist/types/cli/media-inline.d.ts +17 -0
  13. package/dist/types/cli/orchestration-memory-context.d.ts +22 -0
  14. package/dist/types/cli/turn-core.d.ts +2 -0
  15. package/dist/types/orchestration/agent-instance.d.ts +5 -0
  16. package/dist/types/orchestration/goal-mode-adapters.d.ts +4 -0
  17. package/dist/types/orchestration/planner-memory-brief.d.ts +39 -0
  18. package/dist/types/orchestration/solo-spec-builder.d.ts +3 -0
  19. package/dist/types/protocol/wire/agent-methods.d.ts +0 -1
  20. package/dist/types/protocol/wire/gateway-rpc.d.ts +10 -14
  21. package/dist/types/protocol/wire/index.d.ts +1 -1
  22. package/dist/types/protocol/wire/memory-provider-lifecycle.d.ts +0 -16
  23. package/dist/types/runtime/execution/memory-decay.d.ts +1 -1
  24. package/dist/types/runtime/ports/index.d.ts +1 -1
  25. package/dist/types/runtime/ports/memory-provider.d.ts +1 -7
  26. package/dist/types/runtime/session/session-catalog.d.ts +12 -0
  27. package/dist/types/runtime/session/session-persistence.d.ts +1 -1
  28. package/dist/types/skills/memory/local-memory-provider.d.ts +3 -6
  29. package/dist/types/skills/memory/local-store.d.ts +37 -6
  30. package/dist/types/skills/memory/memdir.d.ts +6 -1
  31. package/dist/types/skills/tools/image-generate-tool.d.ts +1 -1
  32. package/package.json +1 -1
@@ -8,7 +8,7 @@
8
8
  * - With embedding API configured: hybrid search (FTS + vector)
9
9
  * - Without embedding: FTS-only search (still useful for exact/keyword matches)
10
10
  */
11
- import type { MemoryProvider, MemorySearchResult, MemorySearchOptions, MemoryIngestMessage, MemoryIngestOptions } from "../../protocol/wire/index.js";
11
+ import type { MemoryProvider, MemorySearchResult, MemorySearchOptions, MemoryIngestOptions } from "../../protocol/wire/index.js";
12
12
  import type { MemoryClaimRecord, MemoryConflictRecord, MemoryProposalRecord, MemoryUpdateInput, SqliteDatabase } from "./local-store.js";
13
13
  import { type AdoptedAttachment } from "./memory-attachment-store.js";
14
14
  import { type LocalEmbeddingConfig } from "./local-embedding.js";
@@ -71,7 +71,6 @@ export declare class LocalMemoryProvider implements MemoryProvider {
71
71
  private noteEmbeddingFailure;
72
72
  private buildEmbedding;
73
73
  search(query: string, userId: string, options?: MemorySearchOptions): Promise<MemorySearchResult[]>;
74
- ingest(messages: MemoryIngestMessage[], userId: string, options?: MemoryIngestOptions): Promise<void>;
75
74
  /** Public embedding access for task-distillation signatures (R3). Null when
76
75
  * the embedding provider is unavailable — callers must degrade, not throw. */
77
76
  embedText(text: string): Promise<Float32Array | null>;
@@ -216,9 +215,6 @@ export declare class LocalMemoryProvider implements MemoryProvider {
216
215
  pageSize?: number;
217
216
  activeOnly?: boolean;
218
217
  }): import("./local-store-records.js").MemoryRecord[];
219
- /**
220
- * Find memories by event date (+/- tolerance). For temporal context retrieval.
221
- */
222
218
  /**
223
219
  * Return the final atlas payload: a bounded interactive record window plus
224
220
  * whole-history buckets/clusters for large timelines.
@@ -232,7 +228,8 @@ export declare class LocalMemoryProvider implements MemoryProvider {
232
228
  clusterLimit?: number;
233
229
  activeOnly?: boolean;
234
230
  }): import("./local-store-records.js").MemoryAtlasResult;
235
- findByEventDate(userId: string, targetDate: string, toleranceDays?: number): import("./local-store-records.js").MemorySearchHit[];
231
+ /** Complete tag-scoped listing (resident refresh / onboarding purge) — see store.listByTag. */
232
+ listMemoriesByTag(userId: string, tag: string): import("./local-store-records.js").MemoryRecord[];
236
233
  /**
237
234
  * Find related memories (event continuity detection).
238
235
  * Given a new memory, finds existing memories that are semantically related
@@ -69,13 +69,39 @@ export declare class LocalMemoryStore {
69
69
  */
70
70
  searchVector(queryEmbedding: Float32Array, userId: string, limit?: number, minScore?: number, expectedModel?: string): MemorySearchHit[];
71
71
  /**
72
- * Hybrid search: FTS5 + vector similarity, de-duplicated and merged.
72
+ * Hybrid search: FTS5 + vector similarity, fused by rank-tempered RRF.
73
+ *
74
+ * Two currencies, each carrying signal the other cannot:
75
+ * - channel scores (0-1, isomorphic across FTS/vector) carry MAGNITUDE —
76
+ * an exact lexical hit must beat weak-consensus noise, which pure rank
77
+ * fusion cannot guarantee (rank ignores how strong a match is);
78
+ * - reciprocal ranks carry CONSENSUS and are scale-invariant — as the
79
+ * store grows, BM25 inflates until squashed top scores compress to
80
+ * near-ties and the two channels' score distributions drift apart;
81
+ * ranks keep differentiating where magnitudes saturate.
82
+ * fused = (1-w)*magnitude + w*rrfNorm keeps both properties. Magnitude of a
83
+ * dual hit is the stronger channel plus a fraction of the weaker (consensus
84
+ * also rewarded in score space); rrfNorm is the reciprocal-rank sum
85
+ * normalized so a dual #1 hit = 1.0. FTS ranks follow BM25 order, vector
86
+ * ranks follow the blended channel order — each channel's own relevance
87
+ * ordering. Rows found by FTS only (e.g. no embedding) compete in the same
88
+ * fused domain and remain reachable, not buried.
73
89
  */
74
90
  searchHybrid(query: string, queryEmbedding: Float32Array | null, userId: string, limit?: number, expectedModel?: string): MemorySearchHit[];
75
91
  /**
76
92
  * Get all memories for a user (paginated).
77
93
  */
78
94
  listByUser(userId: string, page?: number, pageSize?: number, activeOnly?: boolean): MemoryRecord[];
95
+ /**
96
+ * All active memories carrying a tag (LIKE match on the quoted JSON-array
97
+ * element). Tag consumers (resident refresh / onboarding replace-purge) need
98
+ * the COMPLETE tag set regardless of age — the windowed atlas read silently
99
+ * truncated them once history outgrew one page/time window. No LIMIT by
100
+ * design: a capped "complete" read is the same bug at a higher threshold
101
+ * (a purge that misses rows resurrects stale memories). Tag sets are small
102
+ * (one origin/resident group), and this is not a hot path.
103
+ */
104
+ listByTag(userId: string, tag: string): MemoryRecord[];
79
105
  /**
80
106
  * Return a windowed atlas payload for large-history visualization.
81
107
  *
@@ -141,6 +167,16 @@ export declare class LocalMemoryStore {
141
167
  * observation_ids (referenced rows are live audit evidence and stay).
142
168
  */
143
169
  decayObservations(userId: string, retentionDays?: number): number;
170
+ /**
171
+ * Resolved-proposal retention: terminal rows (accepted/merged/rejected/
172
+ * expired) are processing history, not memory — past the window they only
173
+ * grow the table. Rows carrying an idempotency_key are KEPT FOREVER: they
174
+ * are the crash-safe ledger that stops feedback distillation from
175
+ * re-proposing the same evidence cluster (deleting them would re-open the
176
+ * exact duplicate-write hole the key exists to close). Pending rows are
177
+ * never touched here — the consumer owns their TTL (status=expired).
178
+ */
179
+ decayResolvedProposals(userId: string, retentionDays?: number): number;
144
180
  /**
145
181
  * Run all decay strategies. Returns total affected count.
146
182
  */
@@ -217,11 +253,6 @@ export declare class LocalMemoryStore {
217
253
  date: string;
218
254
  }>;
219
255
  };
220
- /**
221
- * Find memories related to a specific event date (±tolerance).
222
- * Used for temporal context retrieval, such as finding memories around a requested date.
223
- */
224
- findByEventDate(userId: string, targetDate: string, toleranceDays?: number): MemorySearchHit[];
225
256
  /**
226
257
  * Record an access (for importance/relevance boosting).
227
258
  */
@@ -87,7 +87,12 @@ export declare class Memdir {
87
87
  }>;
88
88
  /** Delete a topic file. INDEX.md cannot be deleted. */
89
89
  deleteFile(name: string): Promise<MemdirResult>;
90
- /** Search all memory files for keyword matches. Returns matching snippets. */
90
+ /**
91
+ * Search all memory files for keyword matches. Returns matching snippets.
92
+ * Tokenization shares fts-segment (latin words + CJK bigrams) with the L2
93
+ * keyword index — the old whitespace split treated a whole Chinese sentence
94
+ * as one "word", so multi-term Chinese queries scored all-or-nothing.
95
+ */
91
96
  searchLocal(query: string): Promise<Array<{
92
97
  file: string;
93
98
  snippet: string;
@@ -29,7 +29,7 @@ export declare const IMAGE_GENERATE_TOOL_SCHEMA: {
29
29
  };
30
30
  readonly size: {
31
31
  readonly type: "string";
32
- readonly description: "Dimensions: e.g. '1024x1792' (portrait), '1792x1024' (landscape), '1024x1024' (square). Default: '1024x1024'.";
32
+ readonly description: string;
33
33
  };
34
34
  readonly image_url: {
35
35
  readonly type: "string";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "qlogicagent",
3
- "version": "2.18.4",
3
+ "version": "2.18.6",
4
4
  "description": "XiaozhiClaw Agent CLI — subprocess architecture (JSON-RPC over stdio)",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",