@hippodid/openclaw-plugin 1.0.8 → 1.0.10

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/dist/index.js CHANGED
@@ -1,4 +1,5 @@
1
1
  import { readFile } from 'node:fs/promises';
2
+ import { createRequire } from 'node:module';
2
3
  import { resolve } from 'node:path';
3
4
  import { createClient } from './hippodid-client.js';
4
5
  import { createFileSync } from './file-sync.js';
@@ -8,23 +9,29 @@ import { createMemoryFlushHook } from './hooks/memory-flush.js';
8
9
  import { createSessionHooks } from './hooks/session-lifecycle.js';
9
10
  import { createAutoRecallHook } from './hooks/auto-recall.js';
10
11
  import { createAutoCaptureHook } from './hooks/auto-capture.js';
11
- const VERSION = '1.0.0';
12
+ const require = createRequire(import.meta.url);
13
+ const VERSION = (require('../package.json').version) ?? '0.0.0-dev';
14
+ let hasInitialized = false;
12
15
  export default {
13
16
  id: 'hippodid',
14
17
  register(api) {
15
18
  try {
16
- const config = resolveConfig(api.pluginConfig ?? {});
19
+ if (hasInitialized) {
20
+ return;
21
+ }
22
+ const config = resolveConfig(api.pluginConfig ?? api.config ?? {});
17
23
  const logger = api.logger ?? {
18
24
  info: (msg) => console.log(msg),
19
25
  warn: (msg) => console.warn(msg),
20
26
  error: (msg) => console.error(msg),
21
27
  };
22
- const apiKey = config?.apiKey?.trim() ?? '';
23
- const characterId = config?.characterId?.trim() ?? '';
28
+ const apiKey = config.apiKey.trim();
29
+ const characterId = config.characterId.trim();
24
30
  if (!apiKey || !characterId) {
25
31
  logger.warn('HippoDid: apiKey and characterId required — configure in openclaw.json');
26
32
  return;
27
33
  }
34
+ hasInitialized = true;
28
35
  const client = createClient(apiKey, config.baseUrl);
29
36
  const tierManager = createTierManager(client, characterId, logger);
30
37
  const watchPaths = resolveWatchPaths(config);
@@ -92,36 +99,134 @@ function resolveConfig(raw) {
92
99
  };
93
100
  }
94
101
  function registerCommands(api, config, client, fileSync, tierManager, logger) {
95
- api.registerTool('hippodid:status', {
96
- description: 'Show HippoDid tier, sync status, and watched paths',
97
- handler: async () => {
98
- const tier = tierManager.getCurrentTier();
99
- const statusResult = await client.getSyncStatus(config.characterId);
100
- logger.info(`--- HippoDid Status ---`);
101
- logger.info(`Character: ${config.characterId}`);
102
- logger.info(`Tier: ${tier.tier}`);
103
- logger.info(`Auto-Recall: ${tier.features.autoRecallAvailable ? 'available' : 'unavailable'} (config: ${config.autoRecall ? 'ON' : 'OFF'})`);
104
- logger.info(`Auto-Capture: ${tier.features.autoCaptureAvailable ? 'available' : 'unavailable'} (config: ${config.autoCapture ? 'ON' : 'OFF'})`);
105
- if (statusResult.ok) {
106
- logger.info(`Synced sources: ${statusResult.value.entries.length}`);
107
- for (const entry of statusResult.value.entries) {
108
- logger.info(` ${entry.sourcePath} (${entry.label}) — last sync: ${entry.lastSyncedAt}`);
102
+ const getStatusText = async () => {
103
+ const tier = tierManager.getCurrentTier();
104
+ const statusResult = await client.getSyncStatus(config.characterId);
105
+ const lines = [
106
+ 'HippoDid status:',
107
+ `- Character: ${config.characterId}`,
108
+ `- Tier: ${tier.tier}`,
109
+ `- Auto-Recall: ${tier.features.autoRecallAvailable ? 'available' : 'unavailable'} (config: ${config.autoRecall ? 'ON' : 'OFF'})`,
110
+ `- Auto-Capture: ${tier.features.autoCaptureAvailable ? 'available' : 'unavailable'} (config: ${config.autoCapture ? 'ON' : 'OFF'})`,
111
+ ];
112
+ if (statusResult.ok) {
113
+ lines.push(`- Synced sources: ${statusResult.value.entries.length}`);
114
+ for (const entry of statusResult.value.entries) {
115
+ lines.push(` - ${entry.sourcePath} (${entry.label}) — last sync: ${entry.lastSyncedAt}`);
116
+ }
117
+ }
118
+ else {
119
+ lines.push(`- Sync status: unavailable (${statusResult.error.message})`);
120
+ }
121
+ return lines.join('\n');
122
+ };
123
+ const runImport = async (workspaceOverride) => {
124
+ const { readdir } = await import('node:fs/promises');
125
+ const { join, extname } = await import('node:path');
126
+ const { createHash } = await import('node:crypto');
127
+ const workspacePath = workspaceOverride
128
+ ? resolve(workspaceOverride)
129
+ : resolve(process.cwd());
130
+ const memoryDir = join(workspacePath, 'memory');
131
+ const memoryMd = join(workspacePath, 'MEMORY.md');
132
+ const filesToImport = [];
133
+ try {
134
+ const entries = await readdir(memoryDir);
135
+ for (const entry of entries) {
136
+ if (extname(entry) === '.md') {
137
+ filesToImport.push({
138
+ path: join(memoryDir, entry),
139
+ label: 'workspace-memory',
140
+ });
109
141
  }
110
142
  }
111
- else {
112
- logger.warn(`Could not fetch sync status: ${statusResult.error.message}`);
143
+ }
144
+ catch {
145
+ // memory dir may not exist
146
+ }
147
+ try {
148
+ await readFile(memoryMd);
149
+ filesToImport.push({ path: memoryMd, label: 'MEMORY.md' });
150
+ }
151
+ catch {
152
+ // MEMORY.md may not exist
153
+ }
154
+ if (filesToImport.length === 0) {
155
+ return 'hippodid: no memory files found to import';
156
+ }
157
+ logger.info(`hippodid: importing ${filesToImport.length} files from ${workspacePath}...`);
158
+ let imported = 0;
159
+ for (const file of filesToImport) {
160
+ try {
161
+ const content = await readFile(file.path);
162
+ const hash = createHash('sha256').update(content).digest('hex');
163
+ const base64 = content.toString('base64');
164
+ const result = await client.syncFile(config.characterId, file.path, file.label, base64, hash);
165
+ if (result.ok)
166
+ imported++;
167
+ }
168
+ catch (e) {
169
+ logger.warn(`hippodid: import failed for ${file.path}: ${e instanceof Error ? e.message : 'unknown'}`);
170
+ }
171
+ }
172
+ return `hippodid: import complete — ${imported}/${filesToImport.length} files imported`;
173
+ };
174
+ api.registerCommand({
175
+ name: 'hippodid',
176
+ description: 'Show HippoDid status and run sync/import actions.',
177
+ acceptsArgs: true,
178
+ handler: async (ctx) => {
179
+ const args = ctx?.args?.trim() ?? '';
180
+ const [action = 'status', ...rest] = args.split(/\s+/).filter(Boolean);
181
+ if (action === 'status') {
182
+ return { text: await getStatusText() };
183
+ }
184
+ if (action === 'sync') {
185
+ logger.info('hippodid: manual sync triggered...');
186
+ const { synced, changed } = await fileSync.flushNow();
187
+ return {
188
+ text: `hippodid: manual sync complete — ${synced} files (${changed} changed)`,
189
+ };
190
+ }
191
+ if (action === 'import') {
192
+ const workspace = rest.join(' ').trim() || undefined;
193
+ return { text: await runImport(workspace) };
194
+ }
195
+ return {
196
+ text: [
197
+ 'HippoDid commands:',
198
+ '',
199
+ '/hippodid status',
200
+ '/hippodid sync',
201
+ '/hippodid import [workspace-path]',
202
+ ].join('\n'),
203
+ };
204
+ },
205
+ });
206
+ api.registerTool({
207
+ name: 'hippodid:status',
208
+ description: 'Show HippoDid tier, sync status, and watched paths',
209
+ execute: async () => {
210
+ const text = await getStatusText();
211
+ for (const line of text.split('\n')) {
212
+ logger.info(line);
113
213
  }
214
+ return text;
114
215
  },
115
216
  });
116
- api.registerTool('hippodid:sync', {
217
+ api.registerTool({
218
+ name: 'hippodid:sync',
117
219
  description: 'Trigger immediate sync of all watched files',
118
- handler: async () => {
220
+ execute: async () => {
119
221
  logger.info('hippodid: manual sync triggered...');
120
222
  const { synced, changed } = await fileSync.flushNow();
121
- logger.info(`hippodid: manual sync complete — ${synced} files (${changed} changed)`);
223
+ const text = `hippodid: manual sync complete — ${synced} files (${changed} changed)`;
224
+ logger.info(text);
225
+ return text;
122
226
  },
123
227
  });
124
- api.registerTool('hippodid:import', {
228
+ api.registerTool({
229
+ name: 'hippodid:import',
125
230
  description: 'Import existing workspace memory into HippoDid character',
126
231
  args: [
127
232
  {
@@ -130,57 +235,10 @@ function registerCommands(api, config, client, fileSync, tierManager, logger) {
130
235
  required: false,
131
236
  },
132
237
  ],
133
- handler: async (args) => {
134
- const { readdir } = await import('node:fs/promises');
135
- const { join, extname } = await import('node:path');
136
- const { createHash } = await import('node:crypto');
137
- const workspacePath = args['workspace']
138
- ? resolve(args['workspace'])
139
- : resolve(process.cwd());
140
- const memoryDir = join(workspacePath, 'memory');
141
- const memoryMd = join(workspacePath, 'MEMORY.md');
142
- const filesToImport = [];
143
- try {
144
- const entries = await readdir(memoryDir);
145
- for (const entry of entries) {
146
- if (extname(entry) === '.md') {
147
- filesToImport.push({
148
- path: join(memoryDir, entry),
149
- label: 'workspace-memory',
150
- });
151
- }
152
- }
153
- }
154
- catch {
155
- // memory dir may not exist
156
- }
157
- try {
158
- await readFile(memoryMd);
159
- filesToImport.push({ path: memoryMd, label: 'MEMORY.md' });
160
- }
161
- catch {
162
- // MEMORY.md may not exist
163
- }
164
- if (filesToImport.length === 0) {
165
- logger.info('hippodid: no memory files found to import');
166
- return;
167
- }
168
- logger.info(`hippodid: importing ${filesToImport.length} files from ${workspacePath}...`);
169
- let imported = 0;
170
- for (const file of filesToImport) {
171
- try {
172
- const content = await readFile(file.path);
173
- const hash = createHash('sha256').update(content).digest('hex');
174
- const base64 = content.toString('base64');
175
- const result = await client.syncFile(config.characterId, file.path, file.label, base64, hash);
176
- if (result.ok)
177
- imported++;
178
- }
179
- catch (e) {
180
- logger.warn(`hippodid: import failed for ${file.path}: ${e instanceof Error ? e.message : 'unknown'}`);
181
- }
182
- }
183
- logger.info(`hippodid: import complete — ${imported}/${filesToImport.length} files imported`);
238
+ execute: async (args) => {
239
+ const text = await runImport(args['workspace']);
240
+ logger.info(text);
241
+ return text;
184
242
  },
185
243
  });
186
244
  }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"tier-manager.d.ts","sourceRoot":"","sources":["../src/tier-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,MAAM,WAAW,WAAW;IAC1B,UAAU,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC;IAChC,cAAc,IAAI,QAAQ,CAAC;IAC3B,mBAAmB,CAAC,kBAAkB,EAAE,OAAO,GAAG,OAAO,CAAC;IAC1D,qBAAqB,CAAC,iBAAiB,EAAE,OAAO,GAAG,OAAO,CAAC;IAC3D,sBAAsB,CAAC,kBAAkB,EAAE,OAAO,GAAG,OAAO,CAAC;IAC7D,oBAAoB,CAAC,iBAAiB,EAAE,OAAO,GAAG,OAAO,CAAC;IAC1D,wBAAwB,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,CAAC;CAC1D;AAWD,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,cAAc,EACtB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE;IAAE,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GAC3D,WAAW,CA2Db"}
1
+ {"version":3,"file":"tier-manager.d.ts","sourceRoot":"","sources":["../src/tier-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,MAAM,WAAW,WAAW;IAC1B,UAAU,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC;IAChC,cAAc,IAAI,QAAQ,CAAC;IAC3B,mBAAmB,CAAC,kBAAkB,EAAE,OAAO,GAAG,OAAO,CAAC;IAC1D,qBAAqB,CAAC,iBAAiB,EAAE,OAAO,GAAG,OAAO,CAAC;IAC3D,sBAAsB,CAAC,kBAAkB,EAAE,OAAO,GAAG,OAAO,CAAC;IAC7D,oBAAoB,CAAC,iBAAiB,EAAE,OAAO,GAAG,OAAO,CAAC;IAC1D,wBAAwB,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,CAAC;CAC1D;AAWD,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,cAAc,EACtB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE;IAAE,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GAC3D,WAAW,CAyDb"}
@@ -25,10 +25,7 @@ export function createTierManager(client, characterId, logger) {
25
25
  return currentTier;
26
26
  },
27
27
  shouldMountFileSync(autoCaptureEnabled) {
28
- const isFree = !isPaidTier(currentTier);
29
- if (isFree)
30
- return true;
31
- return !autoCaptureEnabled;
28
+ return !this.shouldMountAutoCapture(autoCaptureEnabled);
32
29
  },
33
30
  shouldMountAutoRecall(autoRecallEnabled) {
34
31
  return (isPaidTier(currentTier) &&
@@ -44,7 +41,7 @@ export function createTierManager(client, characterId, logger) {
44
41
  const isFree = !isPaidTier(currentTier);
45
42
  if (isFree)
46
43
  return true;
47
- return !autoRecallEnabled;
44
+ return !this.shouldMountAutoRecall(autoRecallEnabled);
48
45
  },
49
46
  getEffectiveSyncInterval(configInterval) {
50
47
  return Math.max(configInterval, currentTier.features.minSyncIntervalSeconds);
@@ -1 +1 @@
1
- {"version":3,"file":"tier-manager.js","sourceRoot":"","sources":["../src/tier-manager.ts"],"names":[],"mappings":"AAaA,MAAM,kBAAkB,GAAa;IACnC,IAAI,EAAE,MAAM;IACZ,QAAQ,EAAE;QACR,mBAAmB,EAAE,KAAK;QAC1B,oBAAoB,EAAE,KAAK;QAC3B,sBAAsB,EAAE,EAAE;KAC3B;CACF,CAAC;AAEF,MAAM,UAAU,iBAAiB,CAC/B,MAAsB,EACtB,WAAmB,EACnB,MAA4D;IAE5D,IAAI,WAAW,GAAa,kBAAkB,CAAC;IAE/C,OAAO;QACL,KAAK,CAAC,UAAU;YACd,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YAEjD,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;gBACd,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC;YAC7B,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,CACT,uDAAuD,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAC9E,CAAC;gBACF,WAAW,GAAG,kBAAkB,CAAC;YACnC,CAAC;YAED,MAAM,CAAC,IAAI,CACT,kBAAkB,WAAW,CAAC,IAAI,gBAAgB,WAAW,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa,iBAAiB,WAAW,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa,EAAE,CACnN,CAAC;YAEF,OAAO,WAAW,CAAC;QACrB,CAAC;QAED,cAAc;YACZ,OAAO,WAAW,CAAC;QACrB,CAAC;QAED,mBAAmB,CAAC,kBAA2B;YAC7C,MAAM,MAAM,GAAG,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;YACxC,IAAI,MAAM;gBAAE,OAAO,IAAI,CAAC;YACxB,OAAO,CAAC,kBAAkB,CAAC;QAC7B,CAAC;QAED,qBAAqB,CAAC,iBAA0B;YAC9C,OAAO,CACL,UAAU,CAAC,WAAW,CAAC;gBACvB,iBAAiB;gBACjB,WAAW,CAAC,QAAQ,CAAC,mBAAmB,CACzC,CAAC;QACJ,CAAC;QAED,sBAAsB,CAAC,kBAA2B;YAChD,OAAO,CACL,UAAU,CAAC,WAAW,CAAC;gBACvB,kBAAkB;gBAClB,WAAW,CAAC,QAAQ,CAAC,oBAAoB,CAC1C,CAAC;QACJ,CAAC;QAED,oBAAoB,CAAC,iBAA0B;YAC7C,MAAM,MAAM,GAAG,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;YACxC,IAAI,MAAM;gBAAE,OAAO,IAAI,CAAC;YACxB,OAAO,CAAC,iBAAiB,CAAC;QAC5B,CAAC;QAED,wBAAwB,CAAC,cAAsB;YAC7C,OAAO,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,WAAW,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC;QAC/E,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CAAC,IAAc;IAChC,OAAO,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC;AAC9B,CAAC"}
1
+ {"version":3,"file":"tier-manager.js","sourceRoot":"","sources":["../src/tier-manager.ts"],"names":[],"mappings":"AAaA,MAAM,kBAAkB,GAAa;IACnC,IAAI,EAAE,MAAM;IACZ,QAAQ,EAAE;QACR,mBAAmB,EAAE,KAAK;QAC1B,oBAAoB,EAAE,KAAK;QAC3B,sBAAsB,EAAE,EAAE;KAC3B;CACF,CAAC;AAEF,MAAM,UAAU,iBAAiB,CAC/B,MAAsB,EACtB,WAAmB,EACnB,MAA4D;IAE5D,IAAI,WAAW,GAAa,kBAAkB,CAAC;IAE/C,OAAO;QACL,KAAK,CAAC,UAAU;YACd,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YAEjD,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;gBACd,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC;YAC7B,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,CACT,uDAAuD,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAC9E,CAAC;gBACF,WAAW,GAAG,kBAAkB,CAAC;YACnC,CAAC;YAED,MAAM,CAAC,IAAI,CACT,kBAAkB,WAAW,CAAC,IAAI,gBAAgB,WAAW,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa,iBAAiB,WAAW,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa,EAAE,CACnN,CAAC;YAEF,OAAO,WAAW,CAAC;QACrB,CAAC;QAED,cAAc;YACZ,OAAO,WAAW,CAAC;QACrB,CAAC;QAED,mBAAmB,CAAC,kBAA2B;YAC7C,OAAO,CAAC,IAAI,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,CAAC;QAC1D,CAAC;QAED,qBAAqB,CAAC,iBAA0B;YAC9C,OAAO,CACL,UAAU,CAAC,WAAW,CAAC;gBACvB,iBAAiB;gBACjB,WAAW,CAAC,QAAQ,CAAC,mBAAmB,CACzC,CAAC;QACJ,CAAC;QAED,sBAAsB,CAAC,kBAA2B;YAChD,OAAO,CACL,UAAU,CAAC,WAAW,CAAC;gBACvB,kBAAkB;gBAClB,WAAW,CAAC,QAAQ,CAAC,oBAAoB,CAC1C,CAAC;QACJ,CAAC;QAED,oBAAoB,CAAC,iBAA0B;YAC7C,MAAM,MAAM,GAAG,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;YACxC,IAAI,MAAM;gBAAE,OAAO,IAAI,CAAC;YACxB,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,iBAAiB,CAAC,CAAC;QACxD,CAAC;QAED,wBAAwB,CAAC,cAAsB;YAC7C,OAAO,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,WAAW,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC;QAC/E,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CAAC,IAAc;IAChC,OAAO,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC;AAC9B,CAAC"}
package/dist/types.d.ts CHANGED
@@ -41,9 +41,12 @@ export interface TierInfo {
41
41
  export interface TierApiResponse {
42
42
  tier: string;
43
43
  features: {
44
- auto_recall_available: boolean;
45
- auto_capture_available: boolean;
46
- min_sync_interval_seconds: number;
44
+ auto_recall_available?: boolean;
45
+ auto_capture_available?: boolean;
46
+ min_sync_interval_seconds?: number;
47
+ autoRecallAvailable?: boolean;
48
+ autoCaptureAvailable?: boolean;
49
+ minSyncIntervalSeconds?: number;
47
50
  };
48
51
  }
49
52
  export interface SyncResponse {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hippodid/openclaw-plugin",
3
- "version": "1.0.8",
3
+ "version": "1.0.10",
4
4
  "description": "Cloud sync for MEMORY.md with structured character memory. Survives context compaction.",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -16,7 +16,17 @@
16
16
  "hippodid",
17
17
  "ai-memory"
18
18
  ],
19
- "main": "src/index.ts",
19
+ "type": "module",
20
+ "main": "dist/index.js",
21
+ "types": "dist/index.d.ts",
22
+ "exports": {
23
+ ".": "./dist/index.js"
24
+ },
25
+ "openclaw": {
26
+ "extensions": [
27
+ "./dist/index.js"
28
+ ]
29
+ },
20
30
  "files": [
21
31
  "dist",
22
32
  "src",
@@ -26,6 +36,8 @@
26
36
  "README.md"
27
37
  ],
28
38
  "scripts": {
39
+ "build": "tsc -p tsconfig.json",
40
+ "prepack": "npm run build",
29
41
  "typecheck": "tsc --noEmit",
30
42
  "test": "vitest run",
31
43
  "test:watch": "vitest",
@@ -36,10 +48,5 @@
36
48
  "@vitest/coverage-v8": "^3.2.4",
37
49
  "typescript": "^5.7.0",
38
50
  "vitest": "^3.0.0"
39
- },
40
- "openclaw": {
41
- "extensions": [
42
- "./dist/index.js"
43
- ]
44
51
  }
45
52
  }
@@ -9,10 +9,10 @@ HippoDid stores memories in the cloud so they survive context compaction and per
9
9
 
10
10
  ## When to use this skill
11
11
 
12
- - User says "remember", "save this", "don't forget", "note that" call hippodid:remember
13
- - User asks "what do you know about me", "do you remember", "recall" call hippodid:recall
14
- - You need context from previous sessions at the start of a task call hippodid:recall
15
- - User wants to sync their memory files call hippodid:sync
12
+ - User says "remember", "save this", "don't forget", "note that" -> call hippodid:remember
13
+ - User asks "what do you know about me", "do you remember", "recall" -> call hippodid:recall
14
+ - You need context from previous sessions at the start of a task -> call hippodid:recall
15
+ - User wants to sync their memory files -> call hippodid:sync
16
16
 
17
17
  ## Tools
18
18
 
@@ -54,6 +54,7 @@ export function createClient(apiKey: string, baseUrl: string): HippoDidClient {
54
54
 
55
55
  function headers(): Record<string, string> {
56
56
  return {
57
+ Authorization: `Bearer ${apiKey}`,
57
58
  'X-Api-Key': apiKey,
58
59
  'Content-Type': 'application/json',
59
60
  };
@@ -135,9 +136,18 @@ export function createClient(apiKey: string, baseUrl: string): HippoDidClient {
135
136
  return {
136
137
  tier: raw.tier,
137
138
  features: {
138
- autoRecallAvailable: raw.features.auto_recall_available,
139
- autoCaptureAvailable: raw.features.auto_capture_available,
140
- minSyncIntervalSeconds: raw.features.min_sync_interval_seconds,
139
+ autoRecallAvailable:
140
+ raw.features.autoRecallAvailable ??
141
+ raw.features.auto_recall_available ??
142
+ false,
143
+ autoCaptureAvailable:
144
+ raw.features.autoCaptureAvailable ??
145
+ raw.features.auto_capture_available ??
146
+ false,
147
+ minSyncIntervalSeconds:
148
+ raw.features.minSyncIntervalSeconds ??
149
+ raw.features.min_sync_interval_seconds ??
150
+ 60,
141
151
  },
142
152
  };
143
153
  }
@@ -191,8 +201,10 @@ export function createClient(apiKey: string, baseUrl: string): HippoDidClient {
191
201
  'POST',
192
202
  `/v1/characters/${encodeURIComponent(characterId)}/sync`,
193
203
  {
204
+ filePath: sourcePath,
194
205
  source_path: sourcePath,
195
206
  label,
207
+ fileContent: fileContent,
196
208
  file_content: fileContent,
197
209
  checksum,
198
210
  },
@@ -7,29 +7,69 @@ export function createAutoCaptureHook(
7
7
  logger: { info(msg: string): void; warn(msg: string): void },
8
8
  ): (api: any) => void {
9
9
  return (api: any) => {
10
- api.registerHook(
11
- 'agent_end',
12
- async (ctx: any) => {
13
- try {
14
- const user = ctx?.userMessage ?? ctx?.prompt ?? ctx?.input ?? '';
15
- const assistant = ctx?.assistantMessage ?? ctx?.response ?? ctx?.output ?? '';
16
- if (!user && !assistant) return;
10
+ api.on('agent_end', async (ctx: any) => {
11
+ try {
12
+ const user =
13
+ ctx?.userMessage ??
14
+ ctx?.message ??
15
+ ctx?.prompt ??
16
+ ctx?.input ??
17
+ ctx?.finalUserMessage ??
18
+ '';
19
+ const assistant =
20
+ ctx?.assistantMessage ??
21
+ ctx?.response ??
22
+ ctx?.output ??
23
+ ctx?.finalResponse ??
24
+ '';
25
+ if (!user && !assistant) return;
17
26
 
18
- const content = [
19
- user ? `User: ${user}` : '',
20
- assistant ? `Assistant: ${assistant}` : '',
21
- ].filter(Boolean).join('\n');
27
+ const content = [
28
+ user ? `User: ${user}` : '',
29
+ assistant ? `Assistant: ${assistant}` : '',
30
+ ]
31
+ .filter(Boolean)
32
+ .join('\n');
22
33
 
23
- const result = await client.addMemory(config.characterId, content);
24
- if (result.ok) {
25
- logger.info('hippodid: captured conversation turn');
26
- }
27
- } catch (e) {
28
- logger.warn(`hippodid: capture error: ${e instanceof Error ? e.message : String(e)}`);
34
+ const result = await client.addMemory(config.characterId, content);
35
+ if (result.ok) {
36
+ logger.info('hippodid: captured conversation turn');
29
37
  }
38
+ } catch (e) {
39
+ logger.warn(
40
+ `hippodid: capture error: ${e instanceof Error ? e.message : String(e)}`,
41
+ );
42
+ }
43
+ });
44
+
45
+ api.registerTool({
46
+ name: 'hippodid:remember',
47
+ description:
48
+ 'Save important information to HippoDid character memory. Call this to store facts, decisions, preferences, or context that should persist across sessions.',
49
+ args: [
50
+ {
51
+ name: 'content',
52
+ description: 'The information to remember',
53
+ required: true,
54
+ },
55
+ ],
56
+ execute: async (args: Record<string, string>) => {
57
+ const content = args['content'] ?? '';
58
+ if (!content) return 'Nothing to remember.';
59
+
60
+ const result = await client.addMemory(config.characterId, content);
61
+ if (result.ok) {
62
+ logger.info(`hippodid: captured memory: ${content.slice(0, 80)}...`);
63
+ return 'Remembered.';
64
+ }
65
+
66
+ logger.warn(`hippodid: capture failed: ${result.error.message}`);
67
+ return `Failed to remember: ${result.error.message}`;
30
68
  },
31
- { name: 'hippodid.agent-end', description: 'Capture conversation to HippoDid after agent responds' },
69
+ });
70
+
71
+ logger.info(
72
+ 'hippodid: auto-capture hook + hippodid:remember tool registered',
32
73
  );
33
- logger.info('hippodid: auto-capture hook registered (agent_end)');
34
74
  };
35
75
  }
@@ -7,28 +7,56 @@ export function createAutoRecallHook(
7
7
  logger: { info(msg: string): void; warn(msg: string): void },
8
8
  ): (api: any) => void {
9
9
  return (api: any) => {
10
- api.registerHook(
11
- 'before_agent_start',
12
- async (ctx: any) => {
13
- try {
14
- const query = ctx?.prompt ?? ctx?.message ?? ctx?.input ?? '';
15
- if (!query) return;
10
+ api.on('before_agent_start', async (ctx: any) => {
11
+ try {
12
+ const query = ctx?.prompt ?? ctx?.message ?? ctx?.input ?? '';
13
+ if (!query || query.length < 5) {
14
+ return;
15
+ }
16
+
17
+ const result = await client.searchMemories(config.characterId, query);
18
+ if (result.ok && result.value?.length > 0) {
19
+ const memories = result.value
20
+ .map((m: any) => m.content ?? m.text ?? m.body ?? '')
21
+ .filter(Boolean)
22
+ .join('\n---\n');
16
23
 
17
- const result = await client.searchMemories(config.characterId, query);
18
- if (result.ok && result.value?.length > 0) {
19
- const memories = result.value
20
- .map((m: any) => m.content ?? m.text ?? m.body ?? '')
21
- .filter(Boolean)
22
- .join('\n---\n');
23
- ctx.prependContext?.(`## HippoDid Memories\n${memories}\n`);
24
- logger.info(`hippodid: recalled ${result.value.length} memories`);
25
- }
26
- } catch (e) {
27
- logger.warn(`hippodid: recall error: ${e instanceof Error ? e.message : String(e)}`);
24
+ logger.info(`hippodid: recalled ${result.value.length} memories`);
25
+ return {
26
+ prependContext: `## HippoDid Memories\n${memories}\n`,
27
+ };
28
28
  }
29
+ } catch (e) {
30
+ logger.warn(
31
+ `hippodid: recall error: ${e instanceof Error ? e.message : String(e)}`,
32
+ );
33
+ }
34
+ });
35
+
36
+ api.registerTool({
37
+ name: 'hippodid:recall',
38
+ description:
39
+ 'Search HippoDid character memory and return relevant context. Call this at the start of a task to recall relevant memories.',
40
+ args: [
41
+ {
42
+ name: 'query',
43
+ description: 'What to search for in memory',
44
+ required: true,
45
+ },
46
+ ],
47
+ execute: async (args: Record<string, string>) => {
48
+ const query = args['query'] ?? '';
49
+ const result = await client.searchMemories(config.characterId, query);
50
+ if (result.ok && result.value.length > 0) {
51
+ logger.info(
52
+ `hippodid: recalled ${result.value.length} memories for query: ${query}`,
53
+ );
54
+ return result.value.map((m) => m.content).join('\n\n');
55
+ }
56
+ return 'No memories found.';
29
57
  },
30
- { name: 'hippodid.before-agent-start', description: 'Inject HippoDid memories before agent responds' },
31
- );
32
- logger.info('hippodid: auto-recall hook registered (before_agent_start)');
58
+ });
59
+
60
+ logger.info('hippodid: auto-recall hook + hippodid:recall tool registered');
33
61
  };
34
62
  }