oc-solomemory-dev 1.0.6-dev.70f1ae5 → 1.0.6-dev.ba8a727
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.
Potentially problematic release.
This version of oc-solomemory-dev might be problematic. Click here for more details.
- package/dist/cli.js +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +108 -11
- package/dist/services/client-types.d.ts +19 -0
- package/dist/services/client-types.d.ts.map +1 -1
- package/dist/services/client.d.ts +3 -1
- package/dist/services/client.d.ts.map +1 -1
- package/dist/tools.d.ts +3 -1
- package/dist/tools.d.ts.map +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/cli.js
CHANGED
|
@@ -339,7 +339,7 @@ var OPENCODE_COMMAND_DIR = path2.join(OPENCODE_CONFIG_DIR, "command");
|
|
|
339
339
|
var JSON_INDENT_SPACES = 2;
|
|
340
340
|
var SEPARATOR_WIDTH = 50;
|
|
341
341
|
function getPluginTag() {
|
|
342
|
-
return "1.0.6-dev.
|
|
342
|
+
return "1.0.6-dev.ba8a727".includes("-dev.") ? "dev" : "latest";
|
|
343
343
|
}
|
|
344
344
|
function getPluginName() {
|
|
345
345
|
return `oc-solomemory@${getPluginTag()}`;
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAe,MAAM,qBAAqB,CAAC;AAwO/D,eAAO,MAAM,gBAAgB,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAe,MAAM,qBAAqB,CAAC;AAwO/D,eAAO,MAAM,gBAAgB,EAAE,MAuC9B,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -12625,6 +12625,11 @@ function isJobStatusResponse(data) {
|
|
|
12625
12625
|
return false;
|
|
12626
12626
|
return "id" in data && typeof data.id === "string" && "status" in data && typeof data.status === "string" && "progress" in data && typeof data.progress === "number";
|
|
12627
12627
|
}
|
|
12628
|
+
function isProjectsResponse(data) {
|
|
12629
|
+
if (!isObject2(data))
|
|
12630
|
+
return false;
|
|
12631
|
+
return "projects" in data && Array.isArray(data.projects) && "count" in data;
|
|
12632
|
+
}
|
|
12628
12633
|
function toErrorMessage(error45) {
|
|
12629
12634
|
return error45 instanceof Error ? error45.message : String(error45);
|
|
12630
12635
|
}
|
|
@@ -12891,6 +12896,35 @@ class SolomemoryClient {
|
|
|
12891
12896
|
return searchFailure(msg);
|
|
12892
12897
|
}
|
|
12893
12898
|
}
|
|
12899
|
+
async listGlobalMemories(limit = DEFAULT_PAGE_SIZE) {
|
|
12900
|
+
log("listGlobalMemories: start", { limit });
|
|
12901
|
+
try {
|
|
12902
|
+
const body = { limit, order: "desc", sort: "createdAt" };
|
|
12903
|
+
const result = await post("/memories/list", body);
|
|
12904
|
+
if (!isListMemoriesResponse(result))
|
|
12905
|
+
throw new Error("Invalid list response format");
|
|
12906
|
+
log("listGlobalMemories: success", { count: result.memories.length });
|
|
12907
|
+
return { success: true, ...result };
|
|
12908
|
+
} catch (error45) {
|
|
12909
|
+
const msg = toErrorMessage(error45);
|
|
12910
|
+
log("listGlobalMemories: error", { error: msg });
|
|
12911
|
+
return listFailure(msg);
|
|
12912
|
+
}
|
|
12913
|
+
}
|
|
12914
|
+
async listProjects() {
|
|
12915
|
+
log("listProjects: start");
|
|
12916
|
+
try {
|
|
12917
|
+
const result = await get("/projects");
|
|
12918
|
+
if (!isProjectsResponse(result))
|
|
12919
|
+
throw new Error("Invalid projects response format");
|
|
12920
|
+
log("listProjects: success", { count: result.projects.length });
|
|
12921
|
+
return { success: true, projects: result.projects };
|
|
12922
|
+
} catch (error45) {
|
|
12923
|
+
const msg = toErrorMessage(error45);
|
|
12924
|
+
log("listProjects: error", { error: msg });
|
|
12925
|
+
return { success: false, error: msg, projects: [] };
|
|
12926
|
+
}
|
|
12927
|
+
}
|
|
12894
12928
|
async searchGlobal(query, options) {
|
|
12895
12929
|
log("searchGlobal: start");
|
|
12896
12930
|
try {
|
|
@@ -13505,6 +13539,13 @@ async function handleSessionIdle(input) {
|
|
|
13505
13539
|
var PERCENT_MULTIPLIER2 = 100;
|
|
13506
13540
|
var DEFAULT_LIST_LIMIT = 20;
|
|
13507
13541
|
var DEFAULT_SEARCH_LIMIT = 10;
|
|
13542
|
+
function resolveProjectTag(args, defaultTag) {
|
|
13543
|
+
if (args.containerTag)
|
|
13544
|
+
return args.containerTag;
|
|
13545
|
+
if (args.path)
|
|
13546
|
+
return getRepositoryTag(args.path) ?? getProjectTag(args.path);
|
|
13547
|
+
return defaultTag;
|
|
13548
|
+
}
|
|
13508
13549
|
function errorResponse(message) {
|
|
13509
13550
|
return JSON.stringify({ success: false, error: message });
|
|
13510
13551
|
}
|
|
@@ -13529,22 +13570,28 @@ function handleHelp() {
|
|
|
13529
13570
|
{
|
|
13530
13571
|
command: "search",
|
|
13531
13572
|
description: "Search memories by semantic query",
|
|
13532
|
-
args: ["query", "scope?", "limit?"]
|
|
13573
|
+
args: ["query", "scope?", "limit?", "path?", "containerTag?"]
|
|
13533
13574
|
},
|
|
13534
13575
|
{
|
|
13535
13576
|
command: "list",
|
|
13536
13577
|
description: "List all memories in scope",
|
|
13537
|
-
args: ["scope?", "limit?"]
|
|
13578
|
+
args: ["scope?", "limit?", "path?", "containerTag?"]
|
|
13538
13579
|
},
|
|
13539
13580
|
{
|
|
13540
13581
|
command: "profile",
|
|
13541
13582
|
description: "View user profile and preferences",
|
|
13542
13583
|
args: ["query?"]
|
|
13584
|
+
},
|
|
13585
|
+
{
|
|
13586
|
+
command: "projects",
|
|
13587
|
+
description: "List all known projects with metadata",
|
|
13588
|
+
args: []
|
|
13543
13589
|
}
|
|
13544
13590
|
],
|
|
13545
13591
|
scopes: {
|
|
13546
13592
|
user: "Cross-project preferences and knowledge",
|
|
13547
|
-
project: "Project-specific knowledge (default)"
|
|
13593
|
+
project: "Project-specific knowledge (default)",
|
|
13594
|
+
global: "Search across ALL projects for the tenant"
|
|
13548
13595
|
}
|
|
13549
13596
|
});
|
|
13550
13597
|
}
|
|
@@ -13561,10 +13608,18 @@ async function handleProfile(query) {
|
|
|
13561
13608
|
}
|
|
13562
13609
|
});
|
|
13563
13610
|
}
|
|
13611
|
+
async function listByScope(scope, projectScopeTag, limit) {
|
|
13612
|
+
if (scope === "user")
|
|
13613
|
+
return solomemoryClient.listUserMemories(limit);
|
|
13614
|
+
if (scope === "global")
|
|
13615
|
+
return solomemoryClient.listGlobalMemories(limit);
|
|
13616
|
+
return solomemoryClient.listMemories(projectScopeTag, limit);
|
|
13617
|
+
}
|
|
13564
13618
|
async function handleList(args, projectScopeTag) {
|
|
13565
13619
|
const scope = args.scope ?? "project";
|
|
13566
13620
|
const limit = args.limit ?? DEFAULT_LIST_LIMIT;
|
|
13567
|
-
const
|
|
13621
|
+
const tag = resolveProjectTag(args, projectScopeTag);
|
|
13622
|
+
const result = await listByScope(scope, tag, limit);
|
|
13568
13623
|
if (!result.success) {
|
|
13569
13624
|
return errorResponse(result.error);
|
|
13570
13625
|
}
|
|
@@ -13621,18 +13676,45 @@ async function searchBothScopes(query, tag, limit) {
|
|
|
13621
13676
|
}))
|
|
13622
13677
|
});
|
|
13623
13678
|
}
|
|
13679
|
+
async function searchGlobalScope(query, limit) {
|
|
13680
|
+
const result = await solomemoryClient.searchGlobal(query, { limit });
|
|
13681
|
+
if (!result.success) {
|
|
13682
|
+
return errorResponse(result.error);
|
|
13683
|
+
}
|
|
13684
|
+
return formatSearchResults({ query, scope: "global", results: result.results, limit });
|
|
13685
|
+
}
|
|
13624
13686
|
async function handleSearch(args, projectScopeTag) {
|
|
13625
13687
|
if (args.query === undefined) {
|
|
13626
13688
|
return errorResponse("query parameter is required for search mode");
|
|
13627
13689
|
}
|
|
13628
13690
|
const limit = args.limit ?? DEFAULT_SEARCH_LIMIT;
|
|
13691
|
+
const tag = resolveProjectTag(args, projectScopeTag);
|
|
13629
13692
|
if (args.scope === "user") {
|
|
13630
13693
|
return searchUserScope(args.query, limit);
|
|
13631
13694
|
}
|
|
13632
13695
|
if (args.scope === "project") {
|
|
13633
|
-
return searchProjectScope(args.query,
|
|
13696
|
+
return searchProjectScope(args.query, tag, limit);
|
|
13697
|
+
}
|
|
13698
|
+
if (args.scope === "global") {
|
|
13699
|
+
return searchGlobalScope(args.query, limit);
|
|
13700
|
+
}
|
|
13701
|
+
return searchBothScopes(args.query, tag, limit);
|
|
13702
|
+
}
|
|
13703
|
+
async function handleProjects() {
|
|
13704
|
+
const result = await solomemoryClient.listProjects();
|
|
13705
|
+
if (!result.success) {
|
|
13706
|
+
return errorResponse(result.error);
|
|
13634
13707
|
}
|
|
13635
|
-
return
|
|
13708
|
+
return JSON.stringify({
|
|
13709
|
+
success: true,
|
|
13710
|
+
count: result.projects.length,
|
|
13711
|
+
projects: result.projects.map((p) => ({
|
|
13712
|
+
containerTag: p.containerTag,
|
|
13713
|
+
projectId: p.projectId,
|
|
13714
|
+
repository: p.repository ?? null,
|
|
13715
|
+
workspace: p.workspace ?? null
|
|
13716
|
+
}))
|
|
13717
|
+
});
|
|
13636
13718
|
}
|
|
13637
13719
|
async function executeTool(args, projectScopeTag) {
|
|
13638
13720
|
if (!isConfigured()) {
|
|
@@ -13653,6 +13735,9 @@ async function executeTool(args, projectScopeTag) {
|
|
|
13653
13735
|
case "list": {
|
|
13654
13736
|
return await handleList(args, projectScopeTag);
|
|
13655
13737
|
}
|
|
13738
|
+
case "projects": {
|
|
13739
|
+
return await handleProjects();
|
|
13740
|
+
}
|
|
13656
13741
|
default: {
|
|
13657
13742
|
return errorResponse(`Unknown mode: ${mode}`);
|
|
13658
13743
|
}
|
|
@@ -13673,12 +13758,22 @@ MODES:
|
|
|
13673
13758
|
- search: Semantic search for relevant memories. Requires: query. Optional: scope, limit.
|
|
13674
13759
|
- profile: User identity and preferences (static facts + recent context).
|
|
13675
13760
|
- list: Browse all memories in scope (no search, just listing).
|
|
13761
|
+
- projects: List all known projects with their container tags and metadata.
|
|
13676
13762
|
|
|
13677
13763
|
SCOPES:
|
|
13678
13764
|
- project (default): This directory's knowledge - build commands, architecture, conventions.
|
|
13679
13765
|
- user: Cross-project knowledge - coding style, preferences, expertise.
|
|
13766
|
+
- global: Search across ALL projects for the tenant - find knowledge from any project.
|
|
13767
|
+
|
|
13768
|
+
CROSS-PROJECT:
|
|
13769
|
+
- Use path to search/list memories from a different local project directory.
|
|
13770
|
+
- Use containerTag to target a project by its tag (from projects mode output).
|
|
13771
|
+
- Use projects mode to discover available projects and their container tags.
|
|
13680
13772
|
|
|
13681
|
-
EXAMPLE: {mode: "search", query: "how to run tests", scope: "project"}
|
|
13773
|
+
EXAMPLE: {mode: "search", query: "how to run tests", scope: "project"}
|
|
13774
|
+
EXAMPLE: {mode: "search", query: "auth patterns", scope: "project", path: "/home/user/other-repo"}
|
|
13775
|
+
EXAMPLE: {mode: "projects"}
|
|
13776
|
+
EXAMPLE: {mode: "search", query: "db schema", scope: "project", containerTag: "opencode_repo_a1b2c3d4"}`;
|
|
13682
13777
|
|
|
13683
13778
|
// src/index.ts
|
|
13684
13779
|
var CONTEXT_PREVIEW_LENGTH = 100;
|
|
@@ -13807,7 +13902,7 @@ async function handleEvent(event, context) {
|
|
|
13807
13902
|
}
|
|
13808
13903
|
}
|
|
13809
13904
|
function initPlugin(ctx) {
|
|
13810
|
-
const version2 = "1.0.6-dev.
|
|
13905
|
+
const version2 = "1.0.6-dev.ba8a727";
|
|
13811
13906
|
const { directory } = ctx;
|
|
13812
13907
|
const tags = getTags(directory);
|
|
13813
13908
|
const projectScopeTag = tags.repository ?? tags.project;
|
|
@@ -13842,10 +13937,12 @@ var SolomemoryPlugin = (ctx) => {
|
|
|
13842
13937
|
solomemory: tool({
|
|
13843
13938
|
description: TOOL_DESCRIPTION,
|
|
13844
13939
|
args: {
|
|
13845
|
-
mode: tool.schema.enum(["search", "profile", "list", "help"]).optional(),
|
|
13940
|
+
mode: tool.schema.enum(["search", "profile", "list", "projects", "help"]).optional(),
|
|
13846
13941
|
query: tool.schema.string().optional(),
|
|
13847
|
-
scope: tool.schema.enum(["user", "project"]).optional(),
|
|
13848
|
-
limit: tool.schema.number().optional()
|
|
13942
|
+
scope: tool.schema.enum(["user", "project", "global"]).optional(),
|
|
13943
|
+
limit: tool.schema.number().optional(),
|
|
13944
|
+
path: tool.schema.string().optional(),
|
|
13945
|
+
containerTag: tool.schema.string().optional()
|
|
13849
13946
|
},
|
|
13850
13947
|
execute(args) {
|
|
13851
13948
|
return executeTool(args, projectScopeTag);
|
|
@@ -110,12 +110,31 @@ export type GetJobStatusResult = {
|
|
|
110
110
|
success: false;
|
|
111
111
|
error: string;
|
|
112
112
|
};
|
|
113
|
+
export interface ProjectInfo {
|
|
114
|
+
containerTag: string;
|
|
115
|
+
projectId: string;
|
|
116
|
+
repository?: string;
|
|
117
|
+
workspace?: string;
|
|
118
|
+
}
|
|
119
|
+
export interface ProjectsResponse {
|
|
120
|
+
projects: ProjectInfo[];
|
|
121
|
+
count: number;
|
|
122
|
+
}
|
|
123
|
+
export type ListProjectsResult = {
|
|
124
|
+
success: true;
|
|
125
|
+
projects: ProjectInfo[];
|
|
126
|
+
} | {
|
|
127
|
+
success: false;
|
|
128
|
+
error: string;
|
|
129
|
+
projects: [];
|
|
130
|
+
};
|
|
113
131
|
export declare function isSearchResponse(data: unknown): data is SearchResponse;
|
|
114
132
|
export declare function isProfileResponse(data: unknown): data is ProfileResponse;
|
|
115
133
|
export declare function isAddMemoryResponse(data: unknown): data is AddMemoryResponse;
|
|
116
134
|
export declare function isListMemoriesResponse(data: unknown): data is ListMemoriesResponse;
|
|
117
135
|
export declare function isIngestResponse(data: unknown): data is ConversationIngestResponse;
|
|
118
136
|
export declare function isJobStatusResponse(data: unknown): data is JobStatus;
|
|
137
|
+
export declare function isProjectsResponse(data: unknown): data is ProjectsResponse;
|
|
119
138
|
export declare function toErrorMessage(error: unknown): string;
|
|
120
139
|
export declare function searchFailure(error: string): SearchMemoriesResult;
|
|
121
140
|
export declare function listFailure(error: string): ListMemoriesResult;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client-types.d.ts","sourceRoot":"","sources":["../../src/services/client-types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"client-types.d.ts","sourceRoot":"","sources":["../../src/services/client-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { MemoryType, MetadataFilter } from "../types/index.js";
|
|
2
|
-
import type { AddMemoryResult, DeleteMemoryResult, GetJobStatusResult, IngestConversationResult, IngestPayload, ListMemoriesResult, MetadataSearchOptions, ProfileResult, SearchMemoriesResult } from "./client-types.js";
|
|
2
|
+
import type { AddMemoryResult, DeleteMemoryResult, GetJobStatusResult, IngestConversationResult, IngestPayload, ListMemoriesResult, ListProjectsResult, MetadataSearchOptions, ProfileResult, SearchMemoriesResult } from "./client-types.js";
|
|
3
3
|
export declare class SolomemoryClient {
|
|
4
4
|
searchMemories(query: string, containerTag: string, options?: {
|
|
5
5
|
metadataFilters?: MetadataFilter[];
|
|
@@ -20,6 +20,8 @@ export declare class SolomemoryClient {
|
|
|
20
20
|
ingestConversation(payload: IngestPayload): Promise<IngestConversationResult>;
|
|
21
21
|
getJobStatus(jobId: string): Promise<GetJobStatusResult>;
|
|
22
22
|
searchByMetadata(options: MetadataSearchOptions): Promise<SearchMemoriesResult>;
|
|
23
|
+
listGlobalMemories(limit?: number): Promise<ListMemoriesResult>;
|
|
24
|
+
listProjects(): Promise<ListProjectsResult>;
|
|
23
25
|
searchGlobal(query: string, options?: {
|
|
24
26
|
metadataFilters?: MetadataFilter[];
|
|
25
27
|
limit?: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/services/client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,KAAK,EACV,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,wBAAwB,EACxB,aAAa,EACb,kBAAkB,EAClB,qBAAqB,EACrB,aAAa,EACb,oBAAoB,EACrB,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/services/client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,KAAK,EACV,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,wBAAwB,EACxB,aAAa,EACb,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB,EACrB,aAAa,EACb,oBAAoB,EACrB,MAAM,mBAAmB,CAAC;AAkE3B,qBAAa,gBAAgB;IACrB,cAAc,CAClB,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,MAAM,EACpB,OAAO,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,cAAc,EAAE,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAC/D,OAAO,CAAC,oBAAoB,CAAC;IAgB1B,UAAU,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAkBlD,kBAAkB,CACtB,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAC3B,OAAO,CAAC,oBAAoB,CAAC;IAkB1B,gBAAgB,CAAC,KAAK,SAAoB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAcxE,SAAS,CACb,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,EACpB,QAAQ,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,UAAU,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,GACtE,OAAO,CAAC,eAAe,CAAC;IAcrB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAa3D,YAAY,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,SAAoB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAgB1F,kBAAkB,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAsB7E,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAUxD,gBAAgB,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAmB/E,kBAAkB,CAAC,KAAK,SAAoB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAe1E,YAAY,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAc3C,YAAY,CAChB,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,cAAc,EAAE,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAC/D,OAAO,CAAC,oBAAoB,CAAC;CAcjC;AAED,eAAO,MAAM,gBAAgB,kBAAyB,CAAC"}
|
package/dist/tools.d.ts
CHANGED
|
@@ -4,7 +4,9 @@ export interface ToolArgs {
|
|
|
4
4
|
query?: string;
|
|
5
5
|
scope?: MemoryScope;
|
|
6
6
|
limit?: number;
|
|
7
|
+
path?: string;
|
|
8
|
+
containerTag?: string;
|
|
7
9
|
}
|
|
8
10
|
export declare function executeTool(args: ToolArgs, projectScopeTag: string): Promise<string>;
|
|
9
|
-
export declare const TOOL_DESCRIPTION = "Long-term memory system for user preferences, project knowledge, and past context. Memories are auto-saved from conversations.\n\nUSE THIS TOOL WHEN:\n- User asks \"what do you know about X\" or \"do you remember Y\"\n- You need context not in current conversation (past decisions, preferences, patterns)\n- Looking up project-specific conventions, build commands, or architecture decisions\n- Checking user's coding style, preferences, or expertise areas\n\nMODES:\n- search: Semantic search for relevant memories. Requires: query. Optional: scope, limit.\n- profile: User identity and preferences (static facts + recent context).\n- list: Browse all memories in scope (no search, just listing).\n\nSCOPES:\n- project (default): This directory's knowledge - build commands, architecture, conventions.\n- user: Cross-project knowledge - coding style, preferences, expertise.\n\nEXAMPLE: {mode: \"search\", query: \"how to run tests\", scope: \"project\"}";
|
|
11
|
+
export declare const TOOL_DESCRIPTION = "Long-term memory system for user preferences, project knowledge, and past context. Memories are auto-saved from conversations.\n\nUSE THIS TOOL WHEN:\n- User asks \"what do you know about X\" or \"do you remember Y\"\n- You need context not in current conversation (past decisions, preferences, patterns)\n- Looking up project-specific conventions, build commands, or architecture decisions\n- Checking user's coding style, preferences, or expertise areas\n\nMODES:\n- search: Semantic search for relevant memories. Requires: query. Optional: scope, limit.\n- profile: User identity and preferences (static facts + recent context).\n- list: Browse all memories in scope (no search, just listing).\n- projects: List all known projects with their container tags and metadata.\n\nSCOPES:\n- project (default): This directory's knowledge - build commands, architecture, conventions.\n- user: Cross-project knowledge - coding style, preferences, expertise.\n- global: Search across ALL projects for the tenant - find knowledge from any project.\n\nCROSS-PROJECT:\n- Use path to search/list memories from a different local project directory.\n- Use containerTag to target a project by its tag (from projects mode output).\n- Use projects mode to discover available projects and their container tags.\n\nEXAMPLE: {mode: \"search\", query: \"how to run tests\", scope: \"project\"}\nEXAMPLE: {mode: \"search\", query: \"auth patterns\", scope: \"project\", path: \"/home/user/other-repo\"}\nEXAMPLE: {mode: \"projects\"}\nEXAMPLE: {mode: \"search\", query: \"db schema\", scope: \"project\", containerTag: \"opencode_repo_a1b2c3d4\"}";
|
|
10
12
|
//# sourceMappingURL=tools.d.ts.map
|
package/dist/tools.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAMpD,MAAM,WAAW,QAAQ;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AA4ND,wBAAsB,WAAW,CAAC,IAAI,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAiC1F;AAED,eAAO,MAAM,gBAAgB,8lDA2B2E,CAAC"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -5,7 +5,7 @@ export type Result<T, E = string> = {
|
|
|
5
5
|
success: false;
|
|
6
6
|
error: E;
|
|
7
7
|
};
|
|
8
|
-
export type MemoryScope = "user" | "project";
|
|
8
|
+
export type MemoryScope = "user" | "project" | "global";
|
|
9
9
|
export type MemoryType = "project-config" | "architecture" | "error-solution" | "preference" | "learned-pattern" | "conversation";
|
|
10
10
|
export interface Memory {
|
|
11
11
|
id: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,IAAI;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,CAAC,CAAA;CAAE,GAAG;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,CAAC,CAAA;CAAE,CAAC;AAE9F,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,IAAI;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,CAAC,CAAA;CAAE,GAAG;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,CAAC,CAAA;CAAE,CAAC;AAE9F,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,CAAC;AAExD,MAAM,MAAM,UAAU,GAClB,gBAAgB,GAChB,cAAc,GACd,gBAAgB,GAChB,YAAY,GACZ,iBAAiB,GACjB,cAAc,CAAC;AAEnB,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;CACtD;AAED,MAAM,WAAW,0BAA0B;IACzC,EAAE,EAAE,MAAM,CAAC;IACX,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,SAAS,GAAG,YAAY,GAAG,WAAW,GAAG,QAAQ,CAAC;IAC1D,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IACjC,QAAQ,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,UAAU,CAAC;CACrC"}
|
package/package.json
CHANGED