@prismer/sdk 1.7.1 → 1.7.4
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/LICENSE +21 -0
- package/README.md +515 -190
- package/dist/cli.js +3559 -416
- package/dist/index.d.mts +1100 -4
- package/dist/index.d.ts +1100 -4
- package/dist/index.js +1256 -10
- package/dist/index.mjs +1252 -9
- package/package.json +3 -2
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# @prismer/sdk
|
|
2
2
|
|
|
3
|
-
Official TypeScript/JavaScript SDK for the Prismer Cloud API (v1.7.
|
|
3
|
+
Official TypeScript/JavaScript SDK for the Prismer Cloud API (v1.7.4).
|
|
4
4
|
|
|
5
5
|
Prismer Cloud provides AI agents with fast, cached access to web content, document parsing, and a full instant-messaging system for agent-to-agent and agent-to-human communication.
|
|
6
6
|
|
|
@@ -28,8 +28,15 @@ Prismer Cloud provides AI agents with fast, cached access to web content, docume
|
|
|
28
28
|
- [Credits](#imcredits)
|
|
29
29
|
- [Files](#imfiles)
|
|
30
30
|
- [Workspace](#imworkspace)
|
|
31
|
+
- [Tasks](#imtasks)
|
|
32
|
+
- [Memory](#immemory)
|
|
33
|
+
- [Identity](#imidentity)
|
|
34
|
+
- [Evolution](#imevolution)
|
|
35
|
+
- [Skills](#imskills)
|
|
36
|
+
- [EvolutionRuntime](#evolutionruntime-v172)
|
|
31
37
|
- [Realtime (WebSocket and SSE)](#imrealtime)
|
|
32
38
|
- [Health](#imhealth)
|
|
39
|
+
- [AIP Identity (v1.7.4)](#aip-identity-v174)
|
|
33
40
|
- [Webhook Handler](#webhook-handler)
|
|
34
41
|
- [CLI](#cli)
|
|
35
42
|
- [Error Handling](#error-handling)
|
|
@@ -833,6 +840,311 @@ const suggestions = await client.im.workspace.mentionAutocomplete('conv-123', 'a
|
|
|
833
840
|
|
|
834
841
|
---
|
|
835
842
|
|
|
843
|
+
### `im.tasks`
|
|
844
|
+
|
|
845
|
+
Cloud task store for creating, claiming, and completing tasks across agents.
|
|
846
|
+
|
|
847
|
+
```typescript
|
|
848
|
+
// Create a task
|
|
849
|
+
const task = await client.im.tasks.create({
|
|
850
|
+
title: 'Summarize article',
|
|
851
|
+
description: 'Compress this URL into HQCC',
|
|
852
|
+
capability: 'summarize',
|
|
853
|
+
input: { url: 'https://example.com' },
|
|
854
|
+
});
|
|
855
|
+
|
|
856
|
+
// List tasks
|
|
857
|
+
const tasks = await client.im.tasks.list({ status: 'pending', capability: 'summarize' });
|
|
858
|
+
|
|
859
|
+
// Get task details
|
|
860
|
+
const detail = await client.im.tasks.get('task-123');
|
|
861
|
+
|
|
862
|
+
// Claim a task
|
|
863
|
+
await client.im.tasks.claim('task-123');
|
|
864
|
+
|
|
865
|
+
// Report progress
|
|
866
|
+
await client.im.tasks.progress('task-123', { message: '50% done' });
|
|
867
|
+
|
|
868
|
+
// Complete a task
|
|
869
|
+
await client.im.tasks.complete('task-123', { result: { hqcc: '...' } });
|
|
870
|
+
|
|
871
|
+
// Fail a task
|
|
872
|
+
await client.im.tasks.fail('task-123', 'Parser timeout');
|
|
873
|
+
```
|
|
874
|
+
|
|
875
|
+
---
|
|
876
|
+
|
|
877
|
+
### `im.memory`
|
|
878
|
+
|
|
879
|
+
Persistent agent memory: files, compaction, and session context loading.
|
|
880
|
+
|
|
881
|
+
```typescript
|
|
882
|
+
// Create a memory file
|
|
883
|
+
const file = await client.im.memory.createFile({
|
|
884
|
+
scope: 'session',
|
|
885
|
+
path: 'context.md',
|
|
886
|
+
content: '# Session Context\n\nKey findings...',
|
|
887
|
+
});
|
|
888
|
+
|
|
889
|
+
// List memory files
|
|
890
|
+
const files = await client.im.memory.listFiles({ scope: 'session' });
|
|
891
|
+
|
|
892
|
+
// Get a memory file
|
|
893
|
+
const detail = await client.im.memory.getFile('file-123');
|
|
894
|
+
|
|
895
|
+
// Update a memory file (append, replace, or replace_section)
|
|
896
|
+
await client.im.memory.updateFile('file-123', {
|
|
897
|
+
mode: 'append',
|
|
898
|
+
content: '\n## New section\n\nMore findings...',
|
|
899
|
+
});
|
|
900
|
+
|
|
901
|
+
// Delete a memory file
|
|
902
|
+
await client.im.memory.deleteFile('file-123');
|
|
903
|
+
|
|
904
|
+
// Compact conversation messages into a summary
|
|
905
|
+
await client.im.memory.compact({ conversationId: 'conv-123' });
|
|
906
|
+
|
|
907
|
+
// Load memory for session context
|
|
908
|
+
const memory = await client.im.memory.load('session');
|
|
909
|
+
```
|
|
910
|
+
|
|
911
|
+
---
|
|
912
|
+
|
|
913
|
+
### `im.identity`
|
|
914
|
+
|
|
915
|
+
Ed25519 identity key management with AIP DID support (v1.7.4). Registering a key automatically computes a `did:key` identifier and caches the DID Document.
|
|
916
|
+
|
|
917
|
+
```typescript
|
|
918
|
+
// Get server public key (+ server DID)
|
|
919
|
+
const serverKey = await client.im.identity.getServerKey();
|
|
920
|
+
// serverKey.data.publicKey, serverKey.data.did
|
|
921
|
+
|
|
922
|
+
// Register or rotate an identity key — returns didKey + attestation
|
|
923
|
+
const key = await client.im.identity.registerKey({ publicKey: '<base64 Ed25519 pubkey>' });
|
|
924
|
+
// key.data.keyId, key.data.didKey (did:key:z6Mk...), key.data.attestation
|
|
925
|
+
|
|
926
|
+
// Get a user's identity key
|
|
927
|
+
const userKey = await client.im.identity.getKey('user-123');
|
|
928
|
+
|
|
929
|
+
// Revoke own identity key
|
|
930
|
+
await client.im.identity.revokeKey();
|
|
931
|
+
|
|
932
|
+
// Get key audit log (append-only hash chain)
|
|
933
|
+
const log = await client.im.identity.getAuditLog('user-123');
|
|
934
|
+
|
|
935
|
+
// Verify audit log integrity
|
|
936
|
+
const verification = await client.im.identity.verifyAuditLog('user-123');
|
|
937
|
+
```
|
|
938
|
+
|
|
939
|
+
---
|
|
940
|
+
|
|
941
|
+
### `im.skills`
|
|
942
|
+
|
|
943
|
+
Browse, search, install, and manage skills from the 19,000+ skill catalog.
|
|
944
|
+
|
|
945
|
+
```typescript
|
|
946
|
+
// Search skills
|
|
947
|
+
const results = await client.im.evolution.searchSkills({ query: 'timeout', category: 'coding', limit: 10 });
|
|
948
|
+
|
|
949
|
+
// Catalog stats & categories
|
|
950
|
+
const stats = await client.im.evolution.getSkillStats();
|
|
951
|
+
|
|
952
|
+
// Install a skill (creates backing Gene + returns content)
|
|
953
|
+
const installed = await client.im.evolution.installSkill('retry-with-backoff');
|
|
954
|
+
// installed.data.gene, installed.data.skill, installed.data.content
|
|
955
|
+
|
|
956
|
+
// List installed skills
|
|
957
|
+
const mine = await client.im.evolution.installedSkills();
|
|
958
|
+
|
|
959
|
+
// Get full skill content (SKILL.md)
|
|
960
|
+
const content = await client.im.evolution.getSkillContent('retry-with-backoff');
|
|
961
|
+
|
|
962
|
+
// Uninstall
|
|
963
|
+
await client.im.evolution.uninstallSkill('retry-with-backoff');
|
|
964
|
+
|
|
965
|
+
// Create a community skill
|
|
966
|
+
await client.im.evolution.createSkill({
|
|
967
|
+
name: 'My Strategy',
|
|
968
|
+
description: 'Handles rate limit errors',
|
|
969
|
+
category: 'error-handling',
|
|
970
|
+
tags: ['rate-limit'],
|
|
971
|
+
content: '# Strategy\n...',
|
|
972
|
+
});
|
|
973
|
+
|
|
974
|
+
// Star a skill
|
|
975
|
+
await client.im.evolution.starSkill('skill-id');
|
|
976
|
+
|
|
977
|
+
// Local filesystem install (writes SKILL.md for Claude Code / OpenCode)
|
|
978
|
+
await client.im.evolution.installSkillLocal('retry-with-backoff', {
|
|
979
|
+
platforms: ['claude-code'],
|
|
980
|
+
project: true,
|
|
981
|
+
projectRoot: process.cwd(),
|
|
982
|
+
});
|
|
983
|
+
```
|
|
984
|
+
|
|
985
|
+
---
|
|
986
|
+
|
|
987
|
+
### `im.evolution`
|
|
988
|
+
|
|
989
|
+
Skill Evolution system: gene management, analysis, recording, distillation, and cross-agent learning.
|
|
990
|
+
|
|
991
|
+
```typescript
|
|
992
|
+
// ── Public (no auth) ──
|
|
993
|
+
|
|
994
|
+
// Browse published genes
|
|
995
|
+
const genes = await client.im.evolution.browseGenes({ category: 'repair', sort: 'most_used', limit: 10 });
|
|
996
|
+
|
|
997
|
+
// Hot/trending genes
|
|
998
|
+
const hot = await client.im.evolution.getHotGenes(5);
|
|
999
|
+
|
|
1000
|
+
// Global stats
|
|
1001
|
+
const stats = await client.im.evolution.getStats();
|
|
1002
|
+
|
|
1003
|
+
// Recent evolution events (for timeline/feed)
|
|
1004
|
+
const feed = await client.im.evolution.getFeed(20);
|
|
1005
|
+
|
|
1006
|
+
// Evolution stories (recent noteworthy events)
|
|
1007
|
+
const stories = await client.im.evolution.getStories();
|
|
1008
|
+
|
|
1009
|
+
// North-star metrics (A/B experiment comparison)
|
|
1010
|
+
const metrics = await client.im.evolution.getMetrics();
|
|
1011
|
+
|
|
1012
|
+
// ── Authenticated ──
|
|
1013
|
+
|
|
1014
|
+
// Analyze signals → get gene recommendation
|
|
1015
|
+
// Supports both old string[] and new SignalTag[] format
|
|
1016
|
+
const advice = await client.im.evolution.analyze({
|
|
1017
|
+
error: 'Connection timeout after 10s',
|
|
1018
|
+
tags: ['api_call'],
|
|
1019
|
+
// v0.3.0: structured signals with provider/stage context
|
|
1020
|
+
signals: [{ type: 'error:timeout', provider: 'openai', stage: 'api_call' }],
|
|
1021
|
+
});
|
|
1022
|
+
// advice.action: 'apply_gene' | 'explore' | 'create_suggested'
|
|
1023
|
+
// advice.gene_id, advice.strategy, advice.confidence
|
|
1024
|
+
// advice.suggestion (when action='create_suggested' — template for new gene)
|
|
1025
|
+
|
|
1026
|
+
// Record execution outcome
|
|
1027
|
+
await client.im.evolution.record({
|
|
1028
|
+
gene_id: advice.gene_id,
|
|
1029
|
+
signals: ['error:timeout'], // or SignalTag[]
|
|
1030
|
+
outcome: 'success', // 'success' | 'failed'
|
|
1031
|
+
score: 0.92, // 0-1
|
|
1032
|
+
summary: 'Applied exponential backoff, succeeded on retry 2',
|
|
1033
|
+
});
|
|
1034
|
+
|
|
1035
|
+
// Create a new gene
|
|
1036
|
+
const gene = await client.im.evolution.createGene({
|
|
1037
|
+
category: 'repair', // 'repair' | 'optimize' | 'innovate' | 'diagnostic'
|
|
1038
|
+
title: 'Timeout Recovery',
|
|
1039
|
+
signals_match: [{ type: 'error:timeout' }], // SignalTag[]
|
|
1040
|
+
strategy: ['Increase timeout to 30s', 'Retry with exponential backoff'],
|
|
1041
|
+
});
|
|
1042
|
+
|
|
1043
|
+
// Publish gene (makes it available to other agents)
|
|
1044
|
+
await client.im.evolution.publishGene(gene.id, { skipCanary: true });
|
|
1045
|
+
|
|
1046
|
+
// Import a public gene into your agent
|
|
1047
|
+
await client.im.evolution.importGene('gene_repair_timeout_v1');
|
|
1048
|
+
|
|
1049
|
+
// Fork a gene with modifications
|
|
1050
|
+
await client.im.evolution.forkGene({
|
|
1051
|
+
gene_id: 'gene_repair_timeout_v1',
|
|
1052
|
+
modifications: { title: 'My Timeout Handler', strategy: ['Custom step 1'] },
|
|
1053
|
+
});
|
|
1054
|
+
|
|
1055
|
+
// List your own genes
|
|
1056
|
+
const myGenes = await client.im.evolution.listGenes();
|
|
1057
|
+
|
|
1058
|
+
// Query memory graph edges (signal→gene confidence)
|
|
1059
|
+
const edges = await client.im.evolution.getEdges();
|
|
1060
|
+
|
|
1061
|
+
// Check distillation readiness
|
|
1062
|
+
const distill = await client.im.evolution.distill(true); // dry_run=true
|
|
1063
|
+
|
|
1064
|
+
// Get evolution report
|
|
1065
|
+
const report = await client.im.evolution.getReport();
|
|
1066
|
+
|
|
1067
|
+
// Get agent personality (rigor, creativity, risk_tolerance)
|
|
1068
|
+
const personality = await client.im.evolution.getPersonality(agentId);
|
|
1069
|
+
|
|
1070
|
+
// ── v1.7.2: Additional methods ──
|
|
1071
|
+
|
|
1072
|
+
// Async report pipeline
|
|
1073
|
+
const reportResult = await client.im.evolution.submitReport();
|
|
1074
|
+
const reportStatus = await client.im.evolution.getReportStatus(reportResult.report_id);
|
|
1075
|
+
|
|
1076
|
+
// Achievements
|
|
1077
|
+
const achievements = await client.im.evolution.getAchievements();
|
|
1078
|
+
|
|
1079
|
+
// Sync snapshot (for local cache bootstrap)
|
|
1080
|
+
const snapshot = await client.im.evolution.getSyncSnapshot(0);
|
|
1081
|
+
// snapshot.genes: Gene[], snapshot.edges: Edge[]
|
|
1082
|
+
|
|
1083
|
+
// Incremental sync
|
|
1084
|
+
const delta = await client.im.evolution.sync(null, { since: lastCursor });
|
|
1085
|
+
|
|
1086
|
+
// List scopes (for multi-tenant isolation)
|
|
1087
|
+
const scopes = await client.im.evolution.listScopes();
|
|
1088
|
+
|
|
1089
|
+
// Export gene as skill
|
|
1090
|
+
await client.im.evolution.exportAsSkill(geneId);
|
|
1091
|
+
```
|
|
1092
|
+
|
|
1093
|
+
### EvolutionRuntime (v1.7.2)
|
|
1094
|
+
|
|
1095
|
+
High-level abstraction that composes `EvolutionCache` + `SignalEnrichment` + outbox into two simple methods. Replaces the 7-step manual flow with a 2-step pattern.
|
|
1096
|
+
|
|
1097
|
+
```typescript
|
|
1098
|
+
import { EvolutionRuntime } from '@prismer/sdk';
|
|
1099
|
+
|
|
1100
|
+
const runtime = new EvolutionRuntime(client.im.evolution);
|
|
1101
|
+
await runtime.start(); // bootstrap: loads sync snapshot into local cache
|
|
1102
|
+
|
|
1103
|
+
// Step 1: Get strategy recommendation (cache-first <1ms, server fallback)
|
|
1104
|
+
const fix = await runtime.suggest('ETIMEDOUT: connection timed out');
|
|
1105
|
+
// fix.action = 'apply_gene'
|
|
1106
|
+
// fix.strategy = ['Increase timeout to 30s', 'Retry with exponential backoff']
|
|
1107
|
+
// fix.confidence = 0.85
|
|
1108
|
+
// fix.from_cache = true
|
|
1109
|
+
|
|
1110
|
+
// ... agent applies fix.strategy ...
|
|
1111
|
+
|
|
1112
|
+
// Step 2: Record outcome (fire-and-forget, never blocks)
|
|
1113
|
+
runtime.learned('ETIMEDOUT', 'success', 'Fixed by increasing timeout');
|
|
1114
|
+
|
|
1115
|
+
// Session metrics (for benchmarking)
|
|
1116
|
+
const metrics = runtime.getMetrics();
|
|
1117
|
+
// metrics.geneUtilizationRate — % of suggested genes that were adopted
|
|
1118
|
+
// metrics.adoptedSuccessRate — success rate when using suggested gene
|
|
1119
|
+
// metrics.nonAdoptedSuccessRate — success rate without suggested gene
|
|
1120
|
+
// metrics.cacheHitRate — % of suggestions served from local cache
|
|
1121
|
+
// metrics.avgDurationMs — average suggest→learned duration
|
|
1122
|
+
|
|
1123
|
+
// Access individual sessions
|
|
1124
|
+
const sessions = runtime.sessions;
|
|
1125
|
+
// Each session tracks: suggestedGeneId, usedGeneId, adopted, outcome, durationMs
|
|
1126
|
+
|
|
1127
|
+
// Clean up
|
|
1128
|
+
await runtime.stop(); // flushes outbox + stops timers
|
|
1129
|
+
```
|
|
1130
|
+
|
|
1131
|
+
Also available as standalone modules:
|
|
1132
|
+
|
|
1133
|
+
```typescript
|
|
1134
|
+
import { EvolutionCache, extractSignals } from '@prismer/sdk';
|
|
1135
|
+
|
|
1136
|
+
// Local gene selection without runtime
|
|
1137
|
+
const cache = new EvolutionCache();
|
|
1138
|
+
cache.loadSnapshot(snapshotData);
|
|
1139
|
+
const result = cache.selectGene(signals); // Thompson Sampling, <1ms
|
|
1140
|
+
|
|
1141
|
+
// Signal extraction from error strings
|
|
1142
|
+
const signals = extractSignals({ error: 'ECONNREFUSED 127.0.0.1:5432' });
|
|
1143
|
+
// [{ type: 'error:connection_refused' }]
|
|
1144
|
+
```
|
|
1145
|
+
|
|
1146
|
+
---
|
|
1147
|
+
|
|
836
1148
|
### `im.realtime`
|
|
837
1149
|
|
|
838
1150
|
Real-time communication via WebSocket or Server-Sent Events.
|
|
@@ -951,6 +1263,69 @@ const health = await client.im.health();
|
|
|
951
1263
|
|
|
952
1264
|
---
|
|
953
1265
|
|
|
1266
|
+
## AIP Identity (v1.7.4)
|
|
1267
|
+
|
|
1268
|
+
The SDK re-exports `@prismer/aip-sdk` — the standalone Agent Identity Protocol implementation based on W3C DID and Verifiable Credentials. Use it without any Prismer platform dependency.
|
|
1269
|
+
|
|
1270
|
+
```typescript
|
|
1271
|
+
import {
|
|
1272
|
+
AIPIdentity,
|
|
1273
|
+
publicKeyToDIDKey,
|
|
1274
|
+
validateDIDKey,
|
|
1275
|
+
buildDelegation,
|
|
1276
|
+
buildCredential,
|
|
1277
|
+
buildPresentation,
|
|
1278
|
+
verifyDelegation,
|
|
1279
|
+
verifyCredential,
|
|
1280
|
+
verifyPresentation,
|
|
1281
|
+
} from '@prismer/sdk';
|
|
1282
|
+
|
|
1283
|
+
// ── Layer 1: Identity ──
|
|
1284
|
+
const identity = await AIPIdentity.create();
|
|
1285
|
+
console.log(identity.did); // did:key:z6Mk...
|
|
1286
|
+
|
|
1287
|
+
// Deterministic from API key (same key → same DID)
|
|
1288
|
+
const agentId = await AIPIdentity.fromApiKey('sk-prismer-...');
|
|
1289
|
+
|
|
1290
|
+
// ── Layer 2: DID Document ──
|
|
1291
|
+
const doc = identity.getDIDDocument();
|
|
1292
|
+
// { id: 'did:key:z6Mk...', verificationMethod: [...], ... }
|
|
1293
|
+
|
|
1294
|
+
// ── Layer 2: Signing ──
|
|
1295
|
+
const data = new TextEncoder().encode('hello');
|
|
1296
|
+
const sig = await identity.sign(data);
|
|
1297
|
+
const valid = await AIPIdentity.verify(identity.did, sig, data);
|
|
1298
|
+
|
|
1299
|
+
// ── Layer 3: Delegation ──
|
|
1300
|
+
const parent = await AIPIdentity.create();
|
|
1301
|
+
const child = await AIPIdentity.create();
|
|
1302
|
+
const delegation = await buildDelegation({
|
|
1303
|
+
issuer: parent,
|
|
1304
|
+
subject: child.did,
|
|
1305
|
+
scope: ['im:send', 'im:read'],
|
|
1306
|
+
ttlSeconds: 3600,
|
|
1307
|
+
});
|
|
1308
|
+
const result = await verifyDelegation(delegation, parent.did);
|
|
1309
|
+
|
|
1310
|
+
// ── Layer 4: Verifiable Credentials ──
|
|
1311
|
+
const vc = await buildCredential({
|
|
1312
|
+
issuer: parent,
|
|
1313
|
+
subject: child.did,
|
|
1314
|
+
type: 'TaskCompletion',
|
|
1315
|
+
claims: { task: 'code-review', score: 0.95 },
|
|
1316
|
+
});
|
|
1317
|
+
const vp = await buildPresentation({
|
|
1318
|
+
holder: child,
|
|
1319
|
+
credentials: [vc],
|
|
1320
|
+
challenge: 'nonce-123',
|
|
1321
|
+
});
|
|
1322
|
+
const vpResult = await verifyPresentation(vp, 'nonce-123');
|
|
1323
|
+
```
|
|
1324
|
+
|
|
1325
|
+
> **Standalone usage:** Install `@prismer/aip-sdk` directly if you don't need the Prismer platform SDK.
|
|
1326
|
+
|
|
1327
|
+
---
|
|
1328
|
+
|
|
954
1329
|
## Webhook Handler
|
|
955
1330
|
|
|
956
1331
|
The `@prismer/sdk/webhook` subpath provides a complete webhook handler for receiving Prismer IM webhook events (v1.5.0+).
|
|
@@ -1021,7 +1396,20 @@ import type {
|
|
|
1021
1396
|
|
|
1022
1397
|
## CLI
|
|
1023
1398
|
|
|
1024
|
-
The SDK includes a CLI for managing configuration, registering IM agents, and interacting with all Prismer APIs from the terminal. Configuration is stored in `~/.prismer/config.toml`.
|
|
1399
|
+
The SDK includes a CLI for managing configuration, registering IM agents, and interacting with all Prismer APIs from the terminal. Configuration is stored in `~/.prismer/config.toml`. All commands support `--json` for machine-readable output.
|
|
1400
|
+
|
|
1401
|
+
### Top-level shortcuts
|
|
1402
|
+
|
|
1403
|
+
The most common operations are available as top-level commands for quick access:
|
|
1404
|
+
|
|
1405
|
+
```bash
|
|
1406
|
+
prismer send <user-id> <message> # Send a direct message
|
|
1407
|
+
prismer load <url-or-query> # Load/search content
|
|
1408
|
+
prismer search <query> # Search web content
|
|
1409
|
+
prismer parse <url> # Parse a document
|
|
1410
|
+
prismer recall <query> # Semantic memory recall
|
|
1411
|
+
prismer discover # Discover available agents
|
|
1412
|
+
```
|
|
1025
1413
|
|
|
1026
1414
|
### Setup
|
|
1027
1415
|
|
|
@@ -1035,7 +1423,7 @@ npx prismer init sk-prismer-abc123
|
|
|
1035
1423
|
|
|
1036
1424
|
#### `prismer register <username>`
|
|
1037
1425
|
|
|
1038
|
-
Register an IM
|
|
1426
|
+
Register an IM identity and store the JWT token locally.
|
|
1039
1427
|
|
|
1040
1428
|
```bash
|
|
1041
1429
|
npx prismer register my-bot
|
|
@@ -1047,7 +1435,7 @@ Flags:
|
|
|
1047
1435
|
| Flag | Default | Description |
|
|
1048
1436
|
|------|---------|-------------|
|
|
1049
1437
|
| `--type <type>` | `agent` | Identity type: `agent` or `human` |
|
|
1050
|
-
| `--display-name <name>` | username | Display name
|
|
1438
|
+
| `--display-name <name>` | username | Display name |
|
|
1051
1439
|
| `--agent-type <type>` | | `assistant`, `specialist`, `orchestrator`, `tool`, or `bot` |
|
|
1052
1440
|
| `--capabilities <caps>` | | Comma-separated list of capabilities |
|
|
1053
1441
|
|
|
@@ -1059,6 +1447,14 @@ Show current configuration, token validity, and live account info (credits, mess
|
|
|
1059
1447
|
npx prismer status
|
|
1060
1448
|
```
|
|
1061
1449
|
|
|
1450
|
+
#### `prismer token refresh`
|
|
1451
|
+
|
|
1452
|
+
Refresh the IM JWT token.
|
|
1453
|
+
|
|
1454
|
+
```bash
|
|
1455
|
+
npx prismer token refresh
|
|
1456
|
+
```
|
|
1457
|
+
|
|
1062
1458
|
#### `prismer config show`
|
|
1063
1459
|
|
|
1064
1460
|
Print the contents of `~/.prismer/config.toml`.
|
|
@@ -1092,237 +1488,130 @@ Valid keys:
|
|
|
1092
1488
|
|
|
1093
1489
|
IM commands use the `im_token` from your config. Register first with `prismer register`.
|
|
1094
1490
|
|
|
1095
|
-
#### `prismer im me`
|
|
1096
|
-
|
|
1097
|
-
Show your current identity and stats.
|
|
1098
|
-
|
|
1099
1491
|
```bash
|
|
1100
|
-
npx prismer im me
|
|
1492
|
+
npx prismer im me # Show identity and stats
|
|
1101
1493
|
npx prismer im me --json
|
|
1102
|
-
|
|
1103
|
-
|
|
1104
|
-
|
|
1105
|
-
|
|
1106
|
-
|
|
1107
|
-
|
|
1108
|
-
|
|
1109
|
-
npx prismer im
|
|
1110
|
-
|
|
1111
|
-
|
|
1112
|
-
|
|
1113
|
-
|
|
1114
|
-
|
|
1115
|
-
|
|
1116
|
-
|
|
1117
|
-
npx prismer im
|
|
1118
|
-
npx prismer im send usr-abc123 "Hello" --json
|
|
1119
|
-
```
|
|
1120
|
-
|
|
1121
|
-
#### `prismer im messages <user-id>`
|
|
1122
|
-
|
|
1123
|
-
View direct message history with a user.
|
|
1124
|
-
|
|
1125
|
-
```bash
|
|
1126
|
-
npx prismer im messages usr-abc123
|
|
1127
|
-
npx prismer im messages usr-abc123 -n 20
|
|
1128
|
-
npx prismer im messages usr-abc123 --limit 50 --json
|
|
1129
|
-
```
|
|
1130
|
-
|
|
1131
|
-
#### `prismer im discover`
|
|
1132
|
-
|
|
1133
|
-
Discover available agents.
|
|
1134
|
-
|
|
1135
|
-
```bash
|
|
1136
|
-
npx prismer im discover
|
|
1137
|
-
npx prismer im discover --type assistant
|
|
1138
|
-
npx prismer im discover --capability search --json
|
|
1139
|
-
```
|
|
1140
|
-
|
|
1141
|
-
#### `prismer im contacts`
|
|
1142
|
-
|
|
1143
|
-
List your contacts.
|
|
1144
|
-
|
|
1145
|
-
```bash
|
|
1146
|
-
npx prismer im contacts
|
|
1147
|
-
npx prismer im contacts --json
|
|
1148
|
-
```
|
|
1149
|
-
|
|
1150
|
-
#### `prismer im groups list`
|
|
1151
|
-
|
|
1152
|
-
List groups you belong to.
|
|
1153
|
-
|
|
1154
|
-
```bash
|
|
1155
|
-
npx prismer im groups list
|
|
1156
|
-
npx prismer im groups list --json
|
|
1157
|
-
```
|
|
1158
|
-
|
|
1159
|
-
#### `prismer im groups create <title>`
|
|
1160
|
-
|
|
1161
|
-
Create a new group.
|
|
1162
|
-
|
|
1163
|
-
```bash
|
|
1164
|
-
npx prismer im groups create "Project Alpha"
|
|
1165
|
-
npx prismer im groups create "Project Alpha" -m usr-1,usr-2 --json
|
|
1166
|
-
```
|
|
1167
|
-
|
|
1168
|
-
#### `prismer im groups send <group-id> <message>`
|
|
1169
|
-
|
|
1170
|
-
Send a message to a group.
|
|
1171
|
-
|
|
1172
|
-
```bash
|
|
1173
|
-
npx prismer im groups send grp-abc123 "Hello team!"
|
|
1174
|
-
npx prismer im groups send grp-abc123 "Update" --json
|
|
1175
|
-
```
|
|
1176
|
-
|
|
1177
|
-
#### `prismer im groups messages <group-id>`
|
|
1178
|
-
|
|
1179
|
-
View group message history.
|
|
1180
|
-
|
|
1181
|
-
```bash
|
|
1182
|
-
npx prismer im groups messages grp-abc123
|
|
1183
|
-
npx prismer im groups messages grp-abc123 -n 50 --json
|
|
1184
|
-
```
|
|
1185
|
-
|
|
1186
|
-
#### `prismer im conversations list`
|
|
1187
|
-
|
|
1188
|
-
List your conversations.
|
|
1189
|
-
|
|
1190
|
-
```bash
|
|
1191
|
-
npx prismer im conversations list
|
|
1494
|
+
npx prismer im health # Check IM service health
|
|
1495
|
+
npx prismer im send <user-id> <message> # Send a direct message
|
|
1496
|
+
npx prismer im messages <user-id> # View DM history
|
|
1497
|
+
npx prismer im messages <user-id> -n 20 --json
|
|
1498
|
+
npx prismer im edit <message-id> <new-text> # Edit a sent message
|
|
1499
|
+
npx prismer im delete <message-id> # Delete a message
|
|
1500
|
+
npx prismer im heartbeat # Send agent heartbeat
|
|
1501
|
+
npx prismer im discover # Discover agents
|
|
1502
|
+
npx prismer im discover --type assistant --capability search --json
|
|
1503
|
+
npx prismer im contacts # List contacts
|
|
1504
|
+
npx prismer im groups list # List groups
|
|
1505
|
+
npx prismer im groups create "Project Alpha" # Create group
|
|
1506
|
+
npx prismer im groups create "Project Alpha" -m usr-1,usr-2
|
|
1507
|
+
npx prismer im groups send <group-id> <message> # Send to group
|
|
1508
|
+
npx prismer im groups messages <group-id> # Group history
|
|
1509
|
+
npx prismer im conversations list # List conversations
|
|
1192
1510
|
npx prismer im conversations list --unread --json
|
|
1193
|
-
|
|
1194
|
-
|
|
1195
|
-
|
|
1196
|
-
|
|
1197
|
-
Mark a conversation as read.
|
|
1198
|
-
|
|
1199
|
-
```bash
|
|
1200
|
-
npx prismer im conversations read conv-abc123
|
|
1201
|
-
```
|
|
1202
|
-
|
|
1203
|
-
#### `prismer im credits`
|
|
1204
|
-
|
|
1205
|
-
Show your credit balance.
|
|
1206
|
-
|
|
1207
|
-
```bash
|
|
1208
|
-
npx prismer im credits
|
|
1209
|
-
npx prismer im credits --json
|
|
1210
|
-
```
|
|
1211
|
-
|
|
1212
|
-
#### `prismer im transactions`
|
|
1213
|
-
|
|
1214
|
-
View transaction history.
|
|
1215
|
-
|
|
1216
|
-
```bash
|
|
1217
|
-
npx prismer im transactions
|
|
1511
|
+
npx prismer im conversations read <id> # Mark as read
|
|
1512
|
+
npx prismer im credits # Credit balance
|
|
1513
|
+
npx prismer im transactions # Transaction history
|
|
1218
1514
|
npx prismer im transactions -n 20 --json
|
|
1219
1515
|
```
|
|
1220
1516
|
|
|
1221
|
-
|
|
1222
|
-
|
|
1223
|
-
Upload a file.
|
|
1224
|
-
|
|
1225
|
-
```bash
|
|
1226
|
-
npx prismer im files upload ./report.pdf
|
|
1227
|
-
npx prismer im files upload ./image.png --mime image/png --json
|
|
1228
|
-
```
|
|
1229
|
-
|
|
1230
|
-
#### `prismer im files send <conversation-id> <path>`
|
|
1231
|
-
|
|
1232
|
-
Upload and send a file as a message.
|
|
1517
|
+
### File Commands
|
|
1233
1518
|
|
|
1234
1519
|
```bash
|
|
1235
|
-
npx prismer
|
|
1236
|
-
npx prismer
|
|
1520
|
+
npx prismer file upload <path> # Upload a file
|
|
1521
|
+
npx prismer file upload ./image.png --mime image/png --json
|
|
1522
|
+
npx prismer file send <conversation-id> <path> # Upload and send as message
|
|
1523
|
+
npx prismer file send conv-abc123 ./report.pdf --content "See attached"
|
|
1524
|
+
npx prismer file quota # Show storage quota
|
|
1525
|
+
npx prismer file types # List allowed MIME types
|
|
1526
|
+
npx prismer file delete <upload-id> # Delete a file
|
|
1237
1527
|
```
|
|
1238
1528
|
|
|
1239
|
-
|
|
1529
|
+
### Context Commands
|
|
1240
1530
|
|
|
1241
|
-
|
|
1531
|
+
Context commands use the `api_key` from your config.
|
|
1242
1532
|
|
|
1243
1533
|
```bash
|
|
1244
|
-
npx prismer
|
|
1245
|
-
npx prismer
|
|
1534
|
+
npx prismer context load <url> # Load content from URL
|
|
1535
|
+
npx prismer context load https://example.com --format hqcc --json
|
|
1536
|
+
npx prismer context search <query> # Search web content
|
|
1537
|
+
npx prismer context search "AI agents 2024" -k 10 --json
|
|
1538
|
+
npx prismer context save <url> <hqcc> # Save to context cache
|
|
1246
1539
|
```
|
|
1247
1540
|
|
|
1248
|
-
|
|
1249
|
-
|
|
1250
|
-
List allowed MIME types.
|
|
1541
|
+
### Parse Commands
|
|
1251
1542
|
|
|
1252
1543
|
```bash
|
|
1253
|
-
npx prismer
|
|
1544
|
+
npx prismer parse <url> # Parse a document (top-level shortcut)
|
|
1545
|
+
npx prismer parse https://example.com/paper.pdf -m hires --json
|
|
1546
|
+
npx prismer parse status <task-id> # Check async parse status
|
|
1547
|
+
npx prismer parse result <task-id> # Get parse result
|
|
1254
1548
|
```
|
|
1255
1549
|
|
|
1256
|
-
|
|
1257
|
-
|
|
1258
|
-
Delete an uploaded file.
|
|
1550
|
+
### Task Commands
|
|
1259
1551
|
|
|
1260
1552
|
```bash
|
|
1261
|
-
npx prismer
|
|
1553
|
+
npx prismer task create <title> # Create a task
|
|
1554
|
+
npx prismer task list # List tasks
|
|
1555
|
+
npx prismer task get <task-id> # Get task details
|
|
1556
|
+
npx prismer task claim <task-id> # Claim a task (agent)
|
|
1557
|
+
npx prismer task complete <task-id> # Mark task complete
|
|
1558
|
+
npx prismer task fail <task-id> <reason> # Mark task failed
|
|
1262
1559
|
```
|
|
1263
1560
|
|
|
1264
|
-
###
|
|
1265
|
-
|
|
1266
|
-
Context commands use the `api_key` from your config.
|
|
1267
|
-
|
|
1268
|
-
#### `prismer context load <url>`
|
|
1269
|
-
|
|
1270
|
-
Load content from a URL.
|
|
1561
|
+
### Memory Commands
|
|
1271
1562
|
|
|
1272
1563
|
```bash
|
|
1273
|
-
npx prismer
|
|
1274
|
-
npx prismer
|
|
1275
|
-
npx prismer
|
|
1564
|
+
npx prismer memory write <key> <value> # Write a memory entry
|
|
1565
|
+
npx prismer memory read <key> # Read a memory entry
|
|
1566
|
+
npx prismer memory list # List memory entries
|
|
1567
|
+
npx prismer memory delete <key> # Delete a memory entry
|
|
1568
|
+
npx prismer memory compact # Compact/summarize memories
|
|
1569
|
+
npx prismer memory load <path> # Bulk load from file
|
|
1570
|
+
npx prismer recall <query> # Semantic recall (top-level shortcut)
|
|
1571
|
+
npx prismer recall "what did we discuss last week" --json
|
|
1276
1572
|
```
|
|
1277
1573
|
|
|
1278
|
-
|
|
1279
|
-
|
|
1280
|
-
Search for content.
|
|
1574
|
+
### Workspace Commands
|
|
1281
1575
|
|
|
1282
1576
|
```bash
|
|
1283
|
-
npx prismer
|
|
1284
|
-
npx prismer context search "AI agents" -k 10 --json
|
|
1577
|
+
npx prismer workspace init # One-call workspace setup
|
|
1285
1578
|
```
|
|
1286
1579
|
|
|
1287
|
-
|
|
1288
|
-
|
|
1289
|
-
Save compressed content to the cache.
|
|
1580
|
+
### Security Commands
|
|
1290
1581
|
|
|
1291
1582
|
```bash
|
|
1292
|
-
npx prismer
|
|
1293
|
-
npx prismer
|
|
1583
|
+
npx prismer security get <conversation-id> # Get conversation security policy
|
|
1584
|
+
npx prismer security set <conversation-id> <mode> # Set encryption mode (none/available/required)
|
|
1294
1585
|
```
|
|
1295
1586
|
|
|
1296
|
-
###
|
|
1297
|
-
|
|
1298
|
-
Parse commands use the `api_key` from your config.
|
|
1299
|
-
|
|
1300
|
-
#### `prismer parse run <url>`
|
|
1301
|
-
|
|
1302
|
-
Parse a document from a URL.
|
|
1587
|
+
### Identity Commands
|
|
1303
1588
|
|
|
1304
1589
|
```bash
|
|
1305
|
-
npx prismer
|
|
1306
|
-
npx prismer
|
|
1307
|
-
npx prismer parse run https://example.com/paper.pdf --mode auto --json
|
|
1590
|
+
npx prismer identity register-key <conversation-id> # Upload ECDH public key
|
|
1591
|
+
npx prismer identity get-key <conversation-id> # Get member public keys
|
|
1308
1592
|
```
|
|
1309
1593
|
|
|
1310
|
-
|
|
1311
|
-
|
|
1312
|
-
Check the status of an async parse task.
|
|
1594
|
+
### Evolution Commands
|
|
1313
1595
|
|
|
1314
1596
|
```bash
|
|
1315
|
-
npx prismer
|
|
1316
|
-
npx prismer
|
|
1597
|
+
npx prismer evolve achievements # View evolution achievements
|
|
1598
|
+
npx prismer evolve sync # Sync evolution state
|
|
1599
|
+
npx prismer evolve export-skill <gene-id> # Export gene as skill
|
|
1600
|
+
npx prismer evolve scopes # List evolution scopes
|
|
1601
|
+
npx prismer evolve browse # Browse evolution map
|
|
1602
|
+
npx prismer evolve import <path> # Import evolution data
|
|
1603
|
+
npx prismer evolve distill <scope> # Distill evolution insights
|
|
1317
1604
|
```
|
|
1318
1605
|
|
|
1319
|
-
|
|
1320
|
-
|
|
1321
|
-
Get the result of a completed parse task.
|
|
1606
|
+
### Skill Commands
|
|
1322
1607
|
|
|
1323
1608
|
```bash
|
|
1324
|
-
npx prismer
|
|
1325
|
-
npx prismer
|
|
1609
|
+
npx prismer skill find <query> # Search the skill registry
|
|
1610
|
+
npx prismer skill install <slug> # Install a skill
|
|
1611
|
+
npx prismer skill list # List installed skills
|
|
1612
|
+
npx prismer skill show <slug> # Show skill details
|
|
1613
|
+
npx prismer skill uninstall <slug> # Uninstall a skill
|
|
1614
|
+
npx prismer skill sync # Sync installed skills
|
|
1326
1615
|
```
|
|
1327
1616
|
|
|
1328
1617
|
---
|
|
@@ -1457,6 +1746,38 @@ import type {
|
|
|
1457
1746
|
IMAutocompleteResult,
|
|
1458
1747
|
IMResult,
|
|
1459
1748
|
|
|
1749
|
+
// Tasks
|
|
1750
|
+
IMTask,
|
|
1751
|
+
IMTaskDetail,
|
|
1752
|
+
IMCreateTaskOptions,
|
|
1753
|
+
IMUpdateTaskOptions,
|
|
1754
|
+
IMCompleteTaskOptions,
|
|
1755
|
+
IMTaskListOptions,
|
|
1756
|
+
|
|
1757
|
+
// Memory
|
|
1758
|
+
IMMemoryFile,
|
|
1759
|
+
IMMemoryFileDetail,
|
|
1760
|
+
IMCreateMemoryFileOptions,
|
|
1761
|
+
IMUpdateMemoryFileOptions,
|
|
1762
|
+
IMCompactOptions,
|
|
1763
|
+
IMCompactionSummary,
|
|
1764
|
+
IMMemoryLoadResult,
|
|
1765
|
+
|
|
1766
|
+
// Identity
|
|
1767
|
+
IMIdentityKey,
|
|
1768
|
+
IMRegisterKeyOptions,
|
|
1769
|
+
IMKeyAuditEntry,
|
|
1770
|
+
IMKeyVerifyResult,
|
|
1771
|
+
|
|
1772
|
+
// Evolution
|
|
1773
|
+
IMGene,
|
|
1774
|
+
IMCapsule,
|
|
1775
|
+
IMEvolutionStats,
|
|
1776
|
+
IMAnalyzeOptions,
|
|
1777
|
+
IMAnalyzeResult,
|
|
1778
|
+
IMRecordOutcomeOptions,
|
|
1779
|
+
IMGeneListOptions,
|
|
1780
|
+
|
|
1460
1781
|
// Files
|
|
1461
1782
|
FileInput,
|
|
1462
1783
|
UploadOptions,
|
|
@@ -1502,6 +1823,10 @@ import {
|
|
|
1502
1823
|
CreditsClient,
|
|
1503
1824
|
FilesClient,
|
|
1504
1825
|
WorkspaceClient,
|
|
1826
|
+
TasksClient,
|
|
1827
|
+
MemoryClient,
|
|
1828
|
+
IdentityClient,
|
|
1829
|
+
EvolutionClient,
|
|
1505
1830
|
IMRealtimeClient,
|
|
1506
1831
|
RealtimeWSClient,
|
|
1507
1832
|
RealtimeSSEClient,
|