Skip to content

ホストの設定

アプリで使う 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時間です。');

設定するのは次の三つです。

設定この例での意味
LocalAuthorityauthsupport-appnotes への読み書きを許可する
MemoryHostプロセス内の保存先を用意する
connectこの許可と、人間の入力という書き手の情報をクライアントに束縛する

notes はアクセス権の名前です。内容を分類するラベルではなく、検索時に指定する必要はありません。認証と書き手はアプリのホストで設定し、モデルには選ばせません。

保存先と書き手を変える

ファイルに残すなら SQLiteを設定します。入力アダプターから投入する資料は actor: { type: 'input-adapter' }、モデルが作る説明は actor: { type: 'agent', generatedOrigin: 'organization' } を使います。

同じホストから複数のクライアントを発行できるので、入力アダプターと Writer は同じ記憶を扱えます。Writer の例を参照してください。

アプリの認証につなぐ

LocalAuthority はプロセス内の認証を試す実装です。継続運用するアプリでは、ログイン済みユーザーと権限をホスト側の Authorizer へ接続します。再起動をまたいで参照や cursor を使う場合は、安定した認証ハンドルを解決できるようにします。

この初期化を一度済ませたら、アプリは 保存・検索・読取を内容だけで呼べます。

MIT License · TypeScript / Node.js