@1mbrain/sdk 0.1.0 → 0.1.3
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.
- package/README.md +15 -0
- package/dist/.tsbuildinfo +1 -1
- package/dist/chunk-TLPCKSTS.js +211 -0
- package/dist/chunk-TLPCKSTS.js.map +1 -0
- package/dist/hermes.cjs +429 -0
- package/dist/hermes.cjs.map +1 -0
- package/dist/hermes.js +210 -245
- package/dist/hermes.js.map +1 -1
- package/dist/index.cjs +239 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.js +10 -176
- package/dist/index.js.map +1 -1
- package/package.json +10 -6
- package/dist/hermes.d.ts +0 -185
- package/dist/hermes.d.ts.map +0 -1
- package/dist/index.d.ts +0 -99
- package/dist/index.d.ts.map +0 -1
package/dist/hermes.d.ts
DELETED
|
@@ -1,185 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @1mbrain/hermes-adapter
|
|
3
|
-
*
|
|
4
|
-
* NOTE: This is an optional convenience wrapper tailored specifically for the Hermes
|
|
5
|
-
* agent framework. It serves as a reference/blueprint. For other frameworks or gateways,
|
|
6
|
-
* use the generic `OneMBrainClient` directly from '@1mbrain/sdk'.
|
|
7
|
-
*
|
|
8
|
-
* Hermes context objects are automatically mapped to the correct 1MBrain memory type,
|
|
9
|
-
* importance score, and metadata tags, so you never have to think about them in your
|
|
10
|
-
* agent code.
|
|
11
|
-
*
|
|
12
|
-
* Quick start:
|
|
13
|
-
*
|
|
14
|
-
* ```ts
|
|
15
|
-
* import { HermesMemoryAdapter } from '@1mbrain/sdk/hermes';
|
|
16
|
-
*
|
|
17
|
-
* const memory = new HermesMemoryAdapter({
|
|
18
|
-
* apiUrl: process.env.ONEMILLION_API_URL!,
|
|
19
|
-
* apiKey: process.env.ONEMILLION_API_KEY!,
|
|
20
|
-
* agentId: 'hermes-agent-1', // your instance name/namespace
|
|
21
|
-
* defaultImportance: 0.6,
|
|
22
|
-
* });
|
|
23
|
-
*
|
|
24
|
-
* // Store an episodic memory from a conversation turn
|
|
25
|
-
* await memory.rememberTurn({
|
|
26
|
-
* userMessage: "What is VibeAman pricing?",
|
|
27
|
-
* assistantReply: "VibeAman starts at Rp 150k/month.",
|
|
28
|
-
* });
|
|
29
|
-
*
|
|
30
|
-
* // Store a persistent user preference
|
|
31
|
-
* await memory.rememberPreference('preferred_language', 'Bahasa Indonesia');
|
|
32
|
-
*
|
|
33
|
-
* // Store a procedural pattern
|
|
34
|
-
* await memory.rememberProcedure('push_to_github', 'Create PRD → push markdown deliverable');
|
|
35
|
-
*
|
|
36
|
-
* // Recall with automatic context enrichment
|
|
37
|
-
* const results = await memory.recall('pricing');
|
|
38
|
-
* ```
|
|
39
|
-
*/
|
|
40
|
-
import type { AssociateInput, Memory, SearchResult } from './index.js';
|
|
41
|
-
export interface HermesMemoryAdapterConfig {
|
|
42
|
-
apiUrl: string;
|
|
43
|
-
apiKey: string;
|
|
44
|
-
agentId?: string;
|
|
45
|
-
/** Default importance score for new memories (0–1). Defaults to 0.6. */
|
|
46
|
-
defaultImportance?: number;
|
|
47
|
-
/** Custom fetch implementation (useful in Cloudflare Workers / Edge). */
|
|
48
|
-
fetch?: typeof fetch;
|
|
49
|
-
}
|
|
50
|
-
export interface HermesTurn {
|
|
51
|
-
/** The raw user message from the current conversation turn. */
|
|
52
|
-
userMessage: string;
|
|
53
|
-
/** The assistant reply that was generated for this turn. */
|
|
54
|
-
assistantReply?: string;
|
|
55
|
-
/** Optional topic tags to attach to this episodic memory. */
|
|
56
|
-
topics?: string[];
|
|
57
|
-
/** Optional conversation / session ID for grouping. */
|
|
58
|
-
sessionId?: string;
|
|
59
|
-
}
|
|
60
|
-
export interface HermesRecallOptions {
|
|
61
|
-
/** Maximum number of results (default: 8). */
|
|
62
|
-
limit?: number;
|
|
63
|
-
/**
|
|
64
|
-
* Restrict recall to a specific memory type.
|
|
65
|
-
* When omitted, all types are searched.
|
|
66
|
-
*/
|
|
67
|
-
type?: 'episodic' | 'semantic' | 'procedural' | 'entity' | 'warning';
|
|
68
|
-
/** Filter by tags. */
|
|
69
|
-
tags?: string[];
|
|
70
|
-
/** Number of graph hops for spreading activation (default: 2). */
|
|
71
|
-
maxHops?: number;
|
|
72
|
-
/**
|
|
73
|
-
* If provided, override the default agentId for this call.
|
|
74
|
-
* Useful when querying another Hermes instance's memory.
|
|
75
|
-
*/
|
|
76
|
-
agentId?: string;
|
|
77
|
-
}
|
|
78
|
-
export declare class HermesMemoryAdapter {
|
|
79
|
-
private readonly client;
|
|
80
|
-
private readonly defaultImportance;
|
|
81
|
-
private readonly agentId?;
|
|
82
|
-
constructor(config: HermesMemoryAdapterConfig);
|
|
83
|
-
/**
|
|
84
|
-
* Store a conversation turn as an episodic memory.
|
|
85
|
-
* The content is formatted as a Q&A pair for rich recall later.
|
|
86
|
-
*/
|
|
87
|
-
rememberTurn(turn: HermesTurn, agentId?: string): Promise<Memory>;
|
|
88
|
-
/**
|
|
89
|
-
* Store a durable user preference as a semantic memory.
|
|
90
|
-
* Semantic memories don't decay as fast and are weighted higher on recall.
|
|
91
|
-
*/
|
|
92
|
-
rememberPreference(key: string, value: string, agentId?: string): Promise<Memory>;
|
|
93
|
-
/**
|
|
94
|
-
* Store a learned behavioural pattern or workflow as a procedural memory.
|
|
95
|
-
* Procedural memories carry high importance by default.
|
|
96
|
-
*/
|
|
97
|
-
rememberProcedure(name: string, pattern: string, agentId?: string): Promise<Memory>;
|
|
98
|
-
/**
|
|
99
|
-
* General-purpose remember — uses sensible Hermes defaults.
|
|
100
|
-
* Delegates directly to the underlying SDK client.
|
|
101
|
-
*/
|
|
102
|
-
remember(content: string, options?: {
|
|
103
|
-
type?: 'episodic' | 'semantic' | 'procedural';
|
|
104
|
-
importance?: number;
|
|
105
|
-
tags?: string[];
|
|
106
|
-
agentId?: string;
|
|
107
|
-
}): Promise<Memory>;
|
|
108
|
-
/**
|
|
109
|
-
* Recall memories relevant to the given query.
|
|
110
|
-
* Automatically uses spreading activation (2 hops) for richer results.
|
|
111
|
-
*/
|
|
112
|
-
recall(query: string, options?: HermesRecallOptions): Promise<SearchResult[]>;
|
|
113
|
-
/**
|
|
114
|
-
* Recall only episodic memories (conversation history).
|
|
115
|
-
*/
|
|
116
|
-
recallHistory(query: string, limit?: number, agentId?: string): Promise<SearchResult[]>;
|
|
117
|
-
/**
|
|
118
|
-
* Recall only semantic memories (facts & preferences).
|
|
119
|
-
*/
|
|
120
|
-
recallFacts(query: string, limit?: number, agentId?: string): Promise<SearchResult[]>;
|
|
121
|
-
/**
|
|
122
|
-
* Recall only procedural memories (learned workflows).
|
|
123
|
-
*/
|
|
124
|
-
recallProcedures(query: string, limit?: number, agentId?: string): Promise<SearchResult[]>;
|
|
125
|
-
/** Hard-delete a memory by ID. */
|
|
126
|
-
forget(memoryId: string, agentId?: string): Promise<boolean>;
|
|
127
|
-
/** Create an explicit association between two memories. */
|
|
128
|
-
associate(sourceId: string, targetId: string, strength?: number, agentId?: string, relationType?: AssociateInput['relationType']): Promise<boolean>;
|
|
129
|
-
/**
|
|
130
|
-
* Build a formatted memory context block for injection into an LLM system prompt.
|
|
131
|
-
*
|
|
132
|
-
* Returns a markdown-formatted string listing the most relevant memories
|
|
133
|
-
* so Hermes can surface them to the model without manual formatting.
|
|
134
|
-
*
|
|
135
|
-
* @example
|
|
136
|
-
* const ctx = await memory.buildContext('user preferences');
|
|
137
|
-
* systemPrompt = `${baseSystemPrompt}\n\n${ctx}`;
|
|
138
|
-
*/
|
|
139
|
-
buildContext(query: string, limit?: number, agentId?: string): Promise<string>;
|
|
140
|
-
/**
|
|
141
|
-
* Ingest a web page URL and store its factual content as memories.
|
|
142
|
-
*
|
|
143
|
-
* The server-side pipeline automatically:
|
|
144
|
-
* 1. Fetches the URL
|
|
145
|
-
* 2. Converts HTML → Markdown (noise stripped)
|
|
146
|
-
* 3. Chunks the content
|
|
147
|
-
* 4. Extracts factual claims via LLM (using your configured provider)
|
|
148
|
-
* 5. Stores facts with type/importance/metadata auto-set
|
|
149
|
-
* 6. Deduplicates (won't re-ingest the same page content twice)
|
|
150
|
-
*
|
|
151
|
-
* Works from any gateway: Telegram, Discord, browser extension, CLI.
|
|
152
|
-
*
|
|
153
|
-
* @example
|
|
154
|
-
* // Telegram bot handler
|
|
155
|
-
* if (message.startsWith('/learn ')) {
|
|
156
|
-
* const url = message.slice(7).trim();
|
|
157
|
-
* const result = await memory.learnFromUrl(url);
|
|
158
|
-
* return `✅ Learned ${result.storedCount} facts from "${result.title}"`;
|
|
159
|
-
* }
|
|
160
|
-
*/
|
|
161
|
-
learnFromUrl(url: string, options?: {
|
|
162
|
-
agentId?: string;
|
|
163
|
-
confidenceThreshold?: number;
|
|
164
|
-
maxChunkChars?: number;
|
|
165
|
-
deduplicate?: boolean;
|
|
166
|
-
}): Promise<{
|
|
167
|
-
ok: boolean;
|
|
168
|
-
title: string;
|
|
169
|
-
url: string;
|
|
170
|
-
storedCount: number;
|
|
171
|
-
deduplicated: boolean;
|
|
172
|
-
memoryIds: string[];
|
|
173
|
-
error?: string;
|
|
174
|
-
}>;
|
|
175
|
-
/**
|
|
176
|
-
* Recall memories that were ingested from a specific source domain or URL pattern.
|
|
177
|
-
*
|
|
178
|
-
* Uses the `domain:` tag automatically added during ingestion.
|
|
179
|
-
*
|
|
180
|
-
* @example
|
|
181
|
-
* const newsFromKompas = await memory.recallFromSource('kompas.com', 'AI regulation');
|
|
182
|
-
*/
|
|
183
|
-
recallFromSource(domain: string, query: string, limit?: number, agentId?: string): Promise<SearchResult[]>;
|
|
184
|
-
}
|
|
185
|
-
//# sourceMappingURL=hermes.d.ts.map
|
package/dist/hermes.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"hermes.d.ts","sourceRoot":"","sources":["../src/hermes.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
DELETED
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
import type { CreateAssociationInput, CreateMemoryInput, Memory, SearchMemoryInput, SearchResult } from '@1mbrain/core';
|
|
2
|
-
export interface OneMBrainClientConfig {
|
|
3
|
-
apiUrl: string;
|
|
4
|
-
apiKey: string;
|
|
5
|
-
agentId?: string;
|
|
6
|
-
fetch?: typeof fetch;
|
|
7
|
-
}
|
|
8
|
-
export type RememberInput = Omit<CreateMemoryInput, 'agentId'> & {
|
|
9
|
-
agentId?: string;
|
|
10
|
-
};
|
|
11
|
-
export type RecallInput = Omit<SearchMemoryInput, 'agentId'> & {
|
|
12
|
-
agentId?: string;
|
|
13
|
-
};
|
|
14
|
-
export type AssociateInput = Omit<CreateAssociationInput, 'sourceId' | 'agentId'> & {
|
|
15
|
-
agentId?: string;
|
|
16
|
-
};
|
|
17
|
-
export interface IngestUrlOptions {
|
|
18
|
-
agentId?: string;
|
|
19
|
-
confidenceThreshold?: number;
|
|
20
|
-
maxChunkChars?: number;
|
|
21
|
-
deduplicate?: boolean;
|
|
22
|
-
}
|
|
23
|
-
export interface IngestResult {
|
|
24
|
-
title: string;
|
|
25
|
-
url: string;
|
|
26
|
-
sourceHash: string;
|
|
27
|
-
chunkCount: number;
|
|
28
|
-
extractedCount: number;
|
|
29
|
-
storedCount: number;
|
|
30
|
-
skippedCount: number;
|
|
31
|
-
errorCount: number;
|
|
32
|
-
deduplicated: boolean;
|
|
33
|
-
memoryIds: string[];
|
|
34
|
-
}
|
|
35
|
-
export interface ConsolidateOptions {
|
|
36
|
-
agentId?: string;
|
|
37
|
-
dryRun?: boolean;
|
|
38
|
-
clusterStrategy?: 'tags' | 'graph' | 'hybrid';
|
|
39
|
-
}
|
|
40
|
-
export interface ConsolidationResult {
|
|
41
|
-
agentId: string;
|
|
42
|
-
triggerReason: 'sleep-cycle' | 'threshold';
|
|
43
|
-
dryRun: boolean;
|
|
44
|
-
storedCount: number;
|
|
45
|
-
archivedCount: number;
|
|
46
|
-
clustersProcessed: number;
|
|
47
|
-
skipped: {
|
|
48
|
-
noCandidates: number;
|
|
49
|
-
tooSmallClusters: number;
|
|
50
|
-
summarizationFailed: number;
|
|
51
|
-
dryRun: number;
|
|
52
|
-
};
|
|
53
|
-
errors: string[];
|
|
54
|
-
summaryIds: string[];
|
|
55
|
-
}
|
|
56
|
-
export interface ApiEnvelope<T> {
|
|
57
|
-
success: boolean;
|
|
58
|
-
data: T;
|
|
59
|
-
meta?: Record<string, unknown>;
|
|
60
|
-
message?: string;
|
|
61
|
-
}
|
|
62
|
-
export declare class OneMBrainError extends Error {
|
|
63
|
-
readonly status: number;
|
|
64
|
-
readonly details?: unknown | undefined;
|
|
65
|
-
constructor(message: string, status: number, details?: unknown | undefined);
|
|
66
|
-
}
|
|
67
|
-
export declare class OneMBrainClient {
|
|
68
|
-
private readonly apiUrl;
|
|
69
|
-
private readonly apiKey;
|
|
70
|
-
private readonly agentId?;
|
|
71
|
-
private readonly fetchFn;
|
|
72
|
-
constructor(config: OneMBrainClientConfig);
|
|
73
|
-
remember(input: RememberInput): Promise<Memory>;
|
|
74
|
-
recall(input: RecallInput): Promise<SearchResult[]>;
|
|
75
|
-
forget(id: string, options?: {
|
|
76
|
-
agentId?: string;
|
|
77
|
-
}): Promise<boolean>;
|
|
78
|
-
associate(sourceId: string, input: AssociateInput): Promise<boolean>;
|
|
79
|
-
/**
|
|
80
|
-
* Ingest a web page URL into memory.
|
|
81
|
-
*
|
|
82
|
-
* The server-side pipeline will:
|
|
83
|
-
* 1. Fetch the page HTML
|
|
84
|
-
* 2. Extract main content → Markdown
|
|
85
|
-
* 3. Chunk and extract factual claims via LLM
|
|
86
|
-
* 4. Store facts as memories (type, importance, metadata auto-set)
|
|
87
|
-
*
|
|
88
|
-
* Works from any gateway: Telegram, Discord, browser extension, CLI.
|
|
89
|
-
*
|
|
90
|
-
* @param url - The URL to ingest
|
|
91
|
-
* @param options - Optional overrides (agentId, confidenceThreshold, etc.)
|
|
92
|
-
*/
|
|
93
|
-
ingestUrl(url: string, options?: IngestUrlOptions): Promise<IngestResult>;
|
|
94
|
-
consolidate(options?: ConsolidateOptions): Promise<ConsolidationResult>;
|
|
95
|
-
private resolveAgentId;
|
|
96
|
-
private request;
|
|
97
|
-
}
|
|
98
|
-
export type { Memory, SearchResult };
|
|
99
|
-
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|