opencode-viking-memory 0.1.5

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.
@@ -0,0 +1,88 @@
1
+ import type { MemoryType, ConversationMessage } from "../types/index.js";
2
+ export declare class VikingMemoryClient {
3
+ private client;
4
+ private getClient;
5
+ searchMemories(query: string, containerTag: string): Promise<{
6
+ success: true;
7
+ error?: undefined;
8
+ results: Array<{
9
+ id: string;
10
+ memory?: string;
11
+ chunk?: string;
12
+ similarity: number;
13
+ }>;
14
+ total: number;
15
+ timing: number;
16
+ } | {
17
+ success: false;
18
+ error: string;
19
+ results: never[];
20
+ total: number;
21
+ timing: number;
22
+ }>;
23
+ getProfile(containerTag: string, query?: string): Promise<{
24
+ success: true;
25
+ profile: {
26
+ static: string[];
27
+ dynamic: string[];
28
+ };
29
+ } | {
30
+ success: false;
31
+ error: string;
32
+ profile: null;
33
+ }>;
34
+ addMemory(content: string, containerTag: string, metadata?: {
35
+ type?: MemoryType;
36
+ tool?: string;
37
+ [key: string]: unknown;
38
+ }): Promise<{
39
+ [key: string]: unknown;
40
+ success: true;
41
+ id: string;
42
+ } | {
43
+ success: false;
44
+ error: string;
45
+ }>;
46
+ deleteMemory(memoryId: string): Promise<{
47
+ success: boolean;
48
+ error?: undefined;
49
+ } | {
50
+ success: boolean;
51
+ error: string;
52
+ }>;
53
+ listMemories(containerTag: string, limit?: number): Promise<{
54
+ success: true;
55
+ memories: Array<{
56
+ id: string;
57
+ summary: string;
58
+ createdAt: string;
59
+ metadata?: Record<string, unknown>;
60
+ }>;
61
+ pagination: {
62
+ currentPage: number;
63
+ totalItems: number;
64
+ totalPages: number;
65
+ };
66
+ } | {
67
+ success: false;
68
+ error: string;
69
+ memories: never[];
70
+ pagination: {
71
+ currentPage: number;
72
+ totalItems: number;
73
+ totalPages: number;
74
+ };
75
+ }>;
76
+ ingestConversation(conversationId: string, messages: ConversationMessage[], containerTags: string[], metadata?: Record<string, string | number | boolean>): Promise<{
77
+ success: false;
78
+ error: string;
79
+ } | {
80
+ id: string;
81
+ conversationId: string;
82
+ status: string;
83
+ success: true;
84
+ error?: undefined;
85
+ }>;
86
+ }
87
+ export declare const vikingMemoryClient: VikingMemoryClient;
88
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/services/client.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,UAAU,EACV,mBAAmB,EAEpB,MAAM,mBAAmB,CAAC;AAe3B,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAA6B;IAE3C,OAAO,CAAC,SAAS;IAcX,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM;;;;;kBAtB1B,CAAC;iBAAgB,CAAA;;;;;;;;;;;;IA+CzC,UAAU,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM;;;;;;;;;;;IAiB/C,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;;;;;;;;IA0BnE,YAAY,CAAC,QAAQ,EAAE,MAAM;;;;;;;IAgB7B,YAAY,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,SAAK;;;;;;oBA+D05B,CAAC;;;;;;;;;;;;;;;;;IA3Cx8B,kBAAkB,CACtB,cAAc,EAAE,MAAM,EACtB,QAAQ,EAAE,mBAAmB,EAAE,EAC/B,aAAa,EAAE,MAAM,EAAE,EACvB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;;;;;;;;;;CAoCvD;AAED,eAAO,MAAM,kBAAkB,oBAA2B,CAAC"}
@@ -0,0 +1,91 @@
1
+ interface TokenInfo {
2
+ input: number;
3
+ output: number;
4
+ cache: {
5
+ read: number;
6
+ write: number;
7
+ };
8
+ }
9
+ interface MessageInfo {
10
+ id: string;
11
+ role: string;
12
+ sessionID: string;
13
+ providerID?: string;
14
+ modelID?: string;
15
+ tokens?: TokenInfo;
16
+ summary?: boolean;
17
+ finish?: boolean;
18
+ }
19
+ export interface CompactionOptions {
20
+ threshold?: number;
21
+ getModelLimit?: (providerID: string, modelID: string) => number | undefined;
22
+ }
23
+ export interface CompactionContext {
24
+ directory: string;
25
+ client: {
26
+ session: {
27
+ summarize: (params: {
28
+ path: {
29
+ id: string;
30
+ };
31
+ body: {
32
+ providerID: string;
33
+ modelID: string;
34
+ };
35
+ query: {
36
+ directory: string;
37
+ };
38
+ }) => Promise<unknown>;
39
+ messages: (params: {
40
+ path: {
41
+ id: string;
42
+ };
43
+ query: {
44
+ directory: string;
45
+ };
46
+ }) => Promise<{
47
+ data?: Array<{
48
+ info: MessageInfo;
49
+ }>;
50
+ }>;
51
+ promptAsync: (params: {
52
+ path: {
53
+ id: string;
54
+ };
55
+ body: {
56
+ agent?: string;
57
+ parts: Array<{
58
+ type: string;
59
+ text: string;
60
+ }>;
61
+ };
62
+ query: {
63
+ directory: string;
64
+ };
65
+ }) => Promise<unknown>;
66
+ };
67
+ tui: {
68
+ showToast: (params: {
69
+ body: {
70
+ title: string;
71
+ message: string;
72
+ variant: string;
73
+ duration: number;
74
+ };
75
+ }) => Promise<unknown>;
76
+ };
77
+ };
78
+ }
79
+ export declare function createCompactionHook(ctx: CompactionContext, tags: {
80
+ user: string;
81
+ project: string;
82
+ }, options?: CompactionOptions): {
83
+ event({ event }: {
84
+ event: {
85
+ type: string;
86
+ properties?: unknown;
87
+ };
88
+ }): Promise<void>;
89
+ };
90
+ export {};
91
+ //# sourceMappingURL=compaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compaction.d.ts","sourceRoot":"","sources":["../../src/services/compaction.ts"],"names":[],"mappings":"AAsBA,UAAU,SAAS;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CACxC;AAED,UAAU,WAAW;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAgBD,MAAM,WAAW,iBAAiB;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;CAC7E;AAuLD,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE;QACN,OAAO,EAAE;YACP,SAAS,EAAE,CAAC,MAAM,EAAE;gBAAE,IAAI,EAAE;oBAAE,EAAE,EAAE,MAAM,CAAA;iBAAE,CAAC;gBAAC,IAAI,EAAE;oBAAE,UAAU,EAAE,MAAM,CAAC;oBAAC,OAAO,EAAE,MAAM,CAAA;iBAAE,CAAC;gBAAC,KAAK,EAAE;oBAAE,SAAS,EAAE,MAAM,CAAA;iBAAE,CAAA;aAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;YAC/I,QAAQ,EAAE,CAAC,MAAM,EAAE;gBAAE,IAAI,EAAE;oBAAE,EAAE,EAAE,MAAM,CAAA;iBAAE,CAAC;gBAAC,KAAK,EAAE;oBAAE,SAAS,EAAE,MAAM,CAAA;iBAAE,CAAA;aAAE,KAAK,OAAO,CAAC;gBAAE,IAAI,CAAC,EAAE,KAAK,CAAC;oBAAE,IAAI,EAAE,WAAW,CAAA;iBAAE,CAAC,CAAA;aAAE,CAAC,CAAC;YAC/H,WAAW,EAAE,CAAC,MAAM,EAAE;gBAAE,IAAI,EAAE;oBAAE,EAAE,EAAE,MAAM,CAAA;iBAAE,CAAC;gBAAC,IAAI,EAAE;oBAAE,KAAK,CAAC,EAAE,MAAM,CAAC;oBAAC,KAAK,EAAE,KAAK,CAAC;wBAAE,IAAI,EAAE,MAAM,CAAC;wBAAC,IAAI,EAAE,MAAM,CAAA;qBAAE,CAAC,CAAA;iBAAE,CAAC;gBAAC,KAAK,EAAE;oBAAE,SAAS,EAAE,MAAM,CAAA;iBAAE,CAAA;aAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;SAC3K,CAAC;QACF,GAAG,EAAE;YACH,SAAS,EAAE,CAAC,MAAM,EAAE;gBAAE,IAAI,EAAE;oBAAE,KAAK,EAAE,MAAM,CAAC;oBAAC,OAAO,EAAE,MAAM,CAAC;oBAAC,OAAO,EAAE,MAAM,CAAC;oBAAC,QAAQ,EAAE,MAAM,CAAA;iBAAE,CAAA;aAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;SAC1H,CAAC;KACH,CAAC;CACH;AAED,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,iBAAiB,EACtB,IAAI,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,EACvC,OAAO,CAAC,EAAE,iBAAiB;qBAqOF;QAAE,KAAK,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,UAAU,CAAC,EAAE,OAAO,CAAA;SAAE,CAAA;KAAE;EAgE3E"}
@@ -0,0 +1,17 @@
1
+ interface ProfileResponse {
2
+ profile?: {
3
+ static: string[];
4
+ dynamic: string[];
5
+ };
6
+ }
7
+ interface MemoryResultMinimal {
8
+ similarity: number;
9
+ memory?: string;
10
+ chunk?: string;
11
+ }
12
+ interface MemoriesResponseMinimal {
13
+ results?: MemoryResultMinimal[];
14
+ }
15
+ export declare function formatContextForPrompt(profile: ProfileResponse | null, userMemories: MemoriesResponseMinimal, projectMemories: MemoriesResponseMinimal): string;
16
+ export {};
17
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/services/context.ts"],"names":[],"mappings":"AAAA,UAAU,eAAe;IACvB,OAAO,CAAC,EAAE;QACR,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,OAAO,EAAE,MAAM,EAAE,CAAC;KACnB,CAAC;CACH;AAGD,UAAU,mBAAmB;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,uBAAuB;IAC/B,OAAO,CAAC,EAAE,mBAAmB,EAAE,CAAC;CACjC;AAED,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,eAAe,GAAG,IAAI,EAC/B,YAAY,EAAE,uBAAuB,EACrC,eAAe,EAAE,uBAAuB,GACvC,MAAM,CA8CR"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Strips comments from JSONC content while respecting string boundaries.
3
+ * Handles // and /* comments, URLs in strings, and escaped quotes.
4
+ * Also removes trailing commas to support more relaxed JSONC format.
5
+ */
6
+ export declare function stripJsoncComments(content: string): string;
7
+ //# sourceMappingURL=jsonc.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jsonc.d.ts","sourceRoot":"","sources":["../../src/services/jsonc.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CA+E1D"}
@@ -0,0 +1,2 @@
1
+ export declare function log(message: string, data?: unknown): void;
2
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/services/logger.ts"],"names":[],"mappings":"AAQA,wBAAgB,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,QAMlD"}
@@ -0,0 +1,4 @@
1
+ export declare function containsPrivateTag(content: string): boolean;
2
+ export declare function stripPrivateContent(content: string): string;
3
+ export declare function isFullyPrivate(content: string): boolean;
4
+ //# sourceMappingURL=privacy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"privacy.d.ts","sourceRoot":"","sources":["../../src/services/privacy.ts"],"names":[],"mappings":"AAAA,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAE3D;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE3D;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAGvD"}
@@ -0,0 +1,8 @@
1
+ export declare function getGitEmail(): string | null;
2
+ export declare function getUserTag(): string;
3
+ export declare function getProjectTag(directory: string): string;
4
+ export declare function getTags(directory: string): {
5
+ user: string;
6
+ project: string;
7
+ };
8
+ //# sourceMappingURL=tags.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tags.d.ts","sourceRoot":"","sources":["../../src/services/tags.ts"],"names":[],"mappings":"AAQA,wBAAgB,WAAW,IAAI,MAAM,GAAG,IAAI,CAO3C;AAED,wBAAgB,UAAU,IAAI,MAAM,CAOnC;AAED,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED,wBAAgB,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAK5E"}
@@ -0,0 +1,107 @@
1
+ export declare class VikingMemory {
2
+ private apiKey;
3
+ private url;
4
+ private resource_id;
5
+ constructor(options: {
6
+ apiKey: string;
7
+ url: string;
8
+ resource_id: string;
9
+ });
10
+ searchMemories(query: string, containerTag: string, // user_id
11
+ options?: {
12
+ threshold?: number;
13
+ limit?: number;
14
+ searchMode?: string;
15
+ }): Promise<{
16
+ success: true;
17
+ error?: undefined;
18
+ results: Array<{
19
+ id: string;
20
+ memory?: string;
21
+ chunk?: string;
22
+ similarity: number;
23
+ }>;
24
+ total: number;
25
+ timing: number;
26
+ } | {
27
+ success: false;
28
+ error: string;
29
+ results: [];
30
+ total: 0;
31
+ timing: 0;
32
+ }>;
33
+ getProfile(containerTag: string, query?: string): Promise<{
34
+ success: true;
35
+ profile: {
36
+ static: string[];
37
+ dynamic: string[];
38
+ };
39
+ } | {
40
+ success: false;
41
+ error: string;
42
+ profile: null;
43
+ }>;
44
+ addMemory(content: string, containerTag: string, metadata?: {
45
+ type?: string;
46
+ tool?: string;
47
+ [key: string]: unknown;
48
+ }): Promise<{
49
+ success: true;
50
+ id: string;
51
+ [key: string]: unknown;
52
+ } | {
53
+ success: false;
54
+ error: string;
55
+ }>;
56
+ deleteMemory(memoryId: string): Promise<{
57
+ success: true;
58
+ } | {
59
+ success: false;
60
+ error: string;
61
+ }>;
62
+ listMemories(containerTag: string, limit?: number, options?: {
63
+ order?: string;
64
+ sort?: string;
65
+ }): Promise<{
66
+ success: true;
67
+ memories: Array<{
68
+ id: string;
69
+ summary: string;
70
+ createdAt: string;
71
+ metadata?: Record<string, unknown>;
72
+ }>;
73
+ pagination: {
74
+ currentPage: number;
75
+ totalItems: number;
76
+ totalPages: number;
77
+ };
78
+ } | {
79
+ success: false;
80
+ error: string;
81
+ memories: [];
82
+ pagination: {
83
+ currentPage: 1;
84
+ totalItems: 0;
85
+ totalPages: 0;
86
+ };
87
+ }>;
88
+ ingestConversation(conversationId: string, messages: Array<{
89
+ role: string;
90
+ content: string | Array<{
91
+ type: string;
92
+ text?: string;
93
+ }>;
94
+ name?: string;
95
+ tool_calls?: unknown;
96
+ tool_call_id?: string;
97
+ }>, containerTags: string[], metadata?: Record<string, string | number | boolean>): Promise<{
98
+ success: true;
99
+ id: string;
100
+ conversationId: string;
101
+ status: string;
102
+ } | {
103
+ success: false;
104
+ error: string;
105
+ }>;
106
+ }
107
+ //# sourceMappingURL=vikingMemory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vikingMemory.d.ts","sourceRoot":"","sources":["../../src/services/vikingMemory.ts"],"names":[],"mappings":"AAEA,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,WAAW,CAAS;gBAEhB,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAC;IAMlE,cAAc,CAClB,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,MAAM,EAAE,UAAU;IAChC,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,GACpE,OAAO,CAAC;QACT,OAAO,EAAE,IAAI,CAAC;QACd,KAAK,CAAC,EAAE,SAAS,CAAC;QAClB,OAAO,EAAE,KAAK,CAAC;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,MAAM,CAAC,EAAE,MAAM,CAAC;YAAC,KAAK,CAAC,EAAE,MAAM,CAAC;YAAC,UAAU,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QACpF,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAChB,GAAG;QACF,OAAO,EAAE,KAAK,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,EAAE,CAAC;QACZ,KAAK,EAAE,CAAC,CAAC;QACT,MAAM,EAAE,CAAC,CAAC;KACX,CAAC;IA4DI,UAAU,CACd,YAAY,EAAE,MAAM,EACpB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC;QACT,OAAO,EAAE,IAAI,CAAC;QACd,OAAO,EAAE;YAAE,MAAM,EAAE,MAAM,EAAE,CAAC;YAAC,OAAO,EAAE,MAAM,EAAE,CAAA;SAAE,CAAC;KAClD,GAAG;QACF,OAAO,EAAE,KAAK,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,IAAI,CAAC;KACf,CAAC;IA+CI,SAAS,CACb,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,EACpB,QAAQ,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,GAClE,OAAO,CAAC;QACT,OAAO,EAAE,IAAI,CAAC;QACd,EAAE,EAAE,MAAM,CAAC;QACX,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,GAAG;QACF,OAAO,EAAE,KAAK,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IAyCI,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,IAAI,CAAA;KAAE,GAAG;QAAE,OAAO,EAAE,KAAK,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAyB9F,YAAY,CAChB,YAAY,EAAE,MAAM,EACpB,KAAK,SAAK,EACV,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GAC1C,OAAO,CAAC;QACT,OAAO,EAAE,IAAI,CAAC;QACd,QAAQ,EAAE,KAAK,CAAC;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAC;YAAC,SAAS,EAAE,MAAM,CAAC;YAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;SAAE,CAAC,CAAC;QACxG,UAAU,EAAE;YAAE,WAAW,EAAE,MAAM,CAAC;YAAC,UAAU,EAAE,MAAM,CAAC;YAAC,UAAU,EAAE,MAAM,CAAA;SAAE,CAAC;KAC7E,GAAG;QACF,OAAO,EAAE,KAAK,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,EAAE,CAAC;QACb,UAAU,EAAE;YAAE,WAAW,EAAE,CAAC,CAAC;YAAC,UAAU,EAAE,CAAC,CAAC;YAAC,UAAU,EAAE,CAAC,CAAA;SAAE,CAAC;KAC9D,CAAC;IAiEI,kBAAkB,CACtB,cAAc,EAAE,MAAM,EACtB,QAAQ,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,GAAG,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,OAAO,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,EACvJ,aAAa,EAAE,MAAM,EAAE,EACvB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,GACnD,OAAO,CAAC;QACT,OAAO,EAAE,IAAI,CAAC;QACd,EAAE,EAAE,MAAM,CAAC;QACX,cAAc,EAAE,MAAM,CAAC;QACvB,MAAM,EAAE,MAAM,CAAC;KAChB,GAAG;QACF,OAAO,EAAE,KAAK,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;CAmCH"}
@@ -0,0 +1,33 @@
1
+ export type MemoryScope = "user" | "project";
2
+ export type MemoryType = "project-config" | "architecture" | "error-solution" | "preference" | "learned-pattern" | "conversation";
3
+ export type ConversationRole = "user" | "assistant" | "system" | "tool";
4
+ export type ConversationContentPart = {
5
+ type: "text";
6
+ text: string;
7
+ } | {
8
+ type: "image_url";
9
+ imageUrl: {
10
+ url: string;
11
+ };
12
+ };
13
+ export interface ConversationToolCall {
14
+ id: string;
15
+ type: "function";
16
+ function: {
17
+ name: string;
18
+ arguments: string;
19
+ };
20
+ }
21
+ export interface ConversationMessage {
22
+ role: ConversationRole;
23
+ content: string | ConversationContentPart[];
24
+ name?: string;
25
+ tool_calls?: ConversationToolCall[];
26
+ tool_call_id?: string;
27
+ }
28
+ export interface ConversationIngestResponse {
29
+ id: string;
30
+ conversationId: string;
31
+ status: string;
32
+ }
33
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,SAAS,CAAC;AAE7C,MAAM,MAAM,UAAU,GAClB,gBAAgB,GAChB,cAAc,GACd,gBAAgB,GAChB,YAAY,GACZ,iBAAiB,GACjB,cAAc,CAAC;AAEnB,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,WAAW,GAAG,QAAQ,GAAG,MAAM,CAAC;AAExE,MAAM,MAAM,uBAAuB,GAC/B;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC9B;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,QAAQ,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAC;AAErD,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,gBAAgB,CAAC;IACvB,OAAO,EAAE,MAAM,GAAG,uBAAuB,EAAE,CAAC;IAC5C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,oBAAoB,EAAE,CAAC;IACpC,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,0BAA0B;IACzC,EAAE,EAAE,MAAM,CAAC;IACX,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;CAChB"}
package/package.json ADDED
@@ -0,0 +1,47 @@
1
+ {
2
+ "name": "opencode-viking-memory",
3
+ "version": "0.1.5",
4
+ "description": "OpenCode plugin that gives coding agents persistent memory using VikingMemory",
5
+ "type": "module",
6
+ "main": "dist/index.js",
7
+ "types": "dist/index.d.ts",
8
+ "bin": {
9
+ "opencode-viking-memory": "./dist/cli.js"
10
+ },
11
+ "scripts": {
12
+ "build": "bun build ./src/index.ts --outdir ./dist --target node && bun build ./src/cli.ts --outfile ./dist/cli.js --target node && tsc --emitDeclarationOnly",
13
+ "dev": "tsc --watch",
14
+ "typecheck": "tsc --noEmit"
15
+ },
16
+ "keywords": [
17
+ "opencode",
18
+ "plugin",
19
+ "viking_memory",
20
+ "memory",
21
+ "ai",
22
+ "coding-agent"
23
+ ],
24
+ "author": "Volcengine VikingMemory",
25
+ "license": "MIT",
26
+ "repository": {
27
+ "type": "git",
28
+ "url": "https://github.com/volcengine/opencode-viking-memory"
29
+ },
30
+ "dependencies": {
31
+ "@opencode-ai/plugin": "^1.0.162"
32
+ },
33
+ "devDependencies": {
34
+ "@types/bun": "latest",
35
+ "typescript": "^5.7.3"
36
+ },
37
+ "opencode": {
38
+ "type": "plugin",
39
+ "hooks": [
40
+ "chat.message",
41
+ "event"
42
+ ]
43
+ },
44
+ "files": [
45
+ "dist"
46
+ ]
47
+ }