ホストの設定
アプリで使う memory は、ホストが保存先と権限を設定して作ります。ローカルで試す場合は、次の初期化を memory.mjs として保存してください。
mjs
import { MemoryHost, LocalAuthority } from 'atom-memory';
// Configure the example's local host once; application code imports memory.
const authority = new LocalAuthority();
const auth = authority.issue({
subject: 'support-app',
readPolicies: ['notes'],
writePolicies: ['notes'],
canIngestSource: true,
});
const host = new MemoryHost({ authority });
export const memory = host.connect({
auth,
writePolicy: 'notes',
actor: { type: 'human' },
});アプリ側ではこのファイルからクライアントを読み込みます。
ts
import { memory } from './memory.mjs';
await memory.write('招待リンクの有効期限は24時間です。');設定するのは次の三つです。
| 設定 | この例での意味 |
|---|---|
LocalAuthority と auth | support-app に notes への読み書きを許可する |
MemoryHost | プロセス内の保存先を用意する |
connect | この許可と、人間の入力という書き手の情報をクライアントに束縛する |
notes はアクセス権の名前です。内容を分類するラベルではなく、検索時に指定する必要はありません。認証と書き手はアプリのホストで設定し、モデルには選ばせません。
保存先と書き手を変える
ファイルに残すなら SQLiteを設定します。入力アダプターから投入する資料は actor: { type: 'input-adapter' }、モデルが作る説明は actor: { type: 'agent', generatedOrigin: 'organization' } を使います。
同じホストから複数のクライアントを発行できるので、入力アダプターと Writer は同じ記憶を扱えます。Writer の例を参照してください。
アプリの認証につなぐ
LocalAuthority はプロセス内の認証を試す実装です。継続運用するアプリでは、ログイン済みユーザーと権限をホスト側の Authorizer へ接続します。再起動をまたいで参照や cursor を使う場合は、安定した認証ハンドルを解決できるようにします。
この初期化を一度済ませたら、アプリは 保存・検索・読取を内容だけで呼べます。