🎩 You're Invited:Meet the Socket team at Black Hat in Las Vegas, August 3-6.RSVP
Sign In

faf-cli

Package Overview
Dependencies
Maintainers
1
Versions
158
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

faf-cli - npm Package Compare versions

Comparing version
7.1.4
to
7.2.0
+14
dist/fafm/from-claude-dir.d.ts
/**
* fromClaudeDir — Claude Code memory store → knowledge Soul.
* Cite: claude-fafm-sdk 1.0 / fafm-engine serialize_memory approach.
* Not the proof convert_md_to_fafm (entries/v1.0 anti-pattern).
*/
import { Soul } from './soul.js';
export declare const DEFAULT_SKIP: Set<string>;
/**
* Convert a Claude Code memory directory into a knowledge Soul.
*/
export declare function fromClaudeDir(path: string, opts?: {
namepoint?: string;
skip?: Set<string>;
}): Soul;
/** .fafm knowledge-profile library (TS) — INTEROP with claude-fafm-sdk 1.0 */
export { PRIORITY_ORDER, PRIORITY_RANK, KNOWLEDGE_TYPES, type Fact, type Priority, type Profile, type SoulDoc, } from './types.js';
export { Soul, utcNow, canonicalPriority, factFromObj, factToObj, } from './soul.js';
export { fromClaudeDir, DEFAULT_SKIP } from './from-claude-dir.js';
/**
* Soul — local .fafm model (TS mirror of claude-fafm-sdk 1.0 Soul).
* INTEROP: load/save fidelity, residual preserve, recall SoT.
*/
import { type Fact, type SoulDoc } from './types.js';
export declare function utcNow(): string;
export declare function canonicalPriority(p: string | null | undefined): string;
export declare function factFromObj(obj: unknown): Fact;
export declare function factToObj(f: Fact): unknown;
export declare class Soul {
namepoint: string;
profile: string;
retention: string;
created: string;
last_etched: string;
private _facts;
private _byId;
private _index;
private _sessions;
private _preferences;
private _custom;
private _extra;
private _memoryExtra;
constructor(namepoint: string, opts?: {
profile?: string;
facts?: Fact[];
retention?: string;
created?: string | null;
index?: string[];
sessions?: unknown[];
preferences?: Record<string, unknown>;
custom?: Record<string, unknown>;
extra?: Record<string, unknown>;
memoryExtra?: Record<string, unknown>;
});
get facts(): Fact[];
get index(): string[];
get sessions(): unknown[];
get preferences(): Record<string, unknown>;
get custom(): Record<string, unknown>;
get extra(): Record<string, unknown>;
get memoryExtra(): Record<string, unknown>;
static load(path: string): Soul;
static fromFile(path: string): Soul;
toDoc(): SoulDoc;
toYaml(): string;
rebuildIndex(width?: number): string[];
save(path: string, opts?: {
reindex?: boolean;
}): string;
toFile(path: string, opts?: {
reindex?: boolean;
}): string;
add(fact: Fact): Fact;
etch(text: string, opts?: {
id?: string;
type?: string;
priority?: string;
tags?: string[];
links?: string[];
source?: string;
}): Fact;
recall(query?: string | null, opts?: {
tags?: string[];
type?: string;
minPriority?: string;
limit?: number | null;
}): Fact[];
getFact(id: string): Fact | null;
deleteFact(id: string): boolean;
}
/**
* .fafm types — INTEROP-aligned with claude-fafm-sdk 1.0.0
* application/vnd.fafm+yaml v1.1
*/
export declare const PRIORITY_ORDER: readonly ["ephemeral", "standard", "high", "critical"];
export type Priority = (typeof PRIORITY_ORDER)[number];
export declare const PRIORITY_RANK: Record<string, number>;
export declare const KNOWLEDGE_TYPES: Set<string>;
export declare const KNOWN_DOC_KEYS: Set<string>;
export declare const KNOWN_MEMORY_KEYS: Set<string>;
export declare const LEGACY_PRIORITY: Record<string, Priority>;
export interface Fact {
text: string;
id?: string | null;
type?: string | null;
priority: Priority | string;
tags: string[];
links: string[];
timestamp?: string | null;
source?: string | null;
/** Unknown fact fields (INTEROP §4) */
extra: Record<string, unknown>;
}
export type Profile = 'voice' | 'knowledge';
export interface SoulDoc {
version: string;
profile: string;
namepoint: string;
created: string;
last_etched: string;
retention: string;
index: string[];
memory: {
facts: unknown[];
sessions: unknown[];
preferences: Record<string, unknown>;
custom: Record<string, unknown>;
[key: string]: unknown;
};
[key: string]: unknown;
}
+2
-0

@@ -11,2 +11,4 @@ export type { SlotState, SlotCategory, SlotDef, KernelScoreResult, ScoreResult, TierInfo, FafData, FafbInfo, DetectedFramework, FrameworkSignature, Signal, SignalType, } from './core/types.js';

export type { ServerCardOptions } from './interop/servercard.js';
export { Soul as FafmSoul, fromClaudeDir, canonicalPriority, utcNow, PRIORITY_ORDER, PRIORITY_RANK, KNOWLEDGE_TYPES, } from './fafm/index.js';
export type { Fact as FafmFact, SoulDoc, Profile as FafmProfile } from './fafm/index.js';
export type { InterviewQuestion, InterviewOption, HumanSlotPath, SourcedSlotPath, GoalSeed, TableOf8, TableOf8Row, BoxStatus } from './core/interview.js';

@@ -13,0 +15,0 @@ export { INTERVIEW, SIX_WS_INTERVIEW, STACK_INTERVIEW, INTERVIEW_BY_PATH, INTERVIEW_PATHS, INTERVIEW_VERSION, questionForSlot, interviewForMissing, seedSixWsFromGoal, buildTableOf8, } from './core/interview.js';

+6
-3
{
"name": "faf-cli",
"version": "7.1.4",
"description": "Persistent AI Context Standard — project DNA for AI. IANA-registered. Anthropic-merged.",
"version": "7.2.0",
"description": "Persistent AI context + memory — .faf and .fafm, IANA-registered. Anthropic-merged.",
"type": "module",

@@ -56,3 +56,6 @@ "icon": "https://faf.one/orange-smiley.svg",

"codex",
"windsurf"
"windsurf",
"fafm",
"ai-memory",
"agents"
],

@@ -59,0 +62,0 @@ "author": "wolfejam <wolfejam@faf.one>",

@@ -108,2 +108,3 @@ <!-- faf: faf-cli | TypeScript | cli | CLI for the .faf and .fafm IANA-registered formats — AI context + memory that versions with your code -->

| `faf sync` | Bi-directional `.faf` ↔ `CLAUDE.md` |
| `faf memory` | `.fafm` soul ops — convert Claude memory, etch, recall, ls, show |
| `faf diff` / `log` | Semantic context diff + score timeline across git history |

@@ -119,2 +120,16 @@ | `faf hooks --install` | Pre-commit guard against context regression |

### Memory (`.fafm`) — new in 7.2.0
Portable agent memory in the IANA-registered [`.fafm`](https://www.iana.org/assignments/media-types/application/vnd.fafm+yaml) format. Same INTEROP as [claude-fafm-sdk 1.0](https://pypi.org/project/claude-fafm-sdk/).
```bash
# Claude Code memory dir → soul.fafm
faf memory convert ~/.claude/projects/.../memory -o soul.fafm
faf memory ls # ranked facts
faf memory recall "your query" # deterministic filter + rank
faf memory etch "a durable fact" --id my-fact
faf memory show
```
---

@@ -121,0 +136,0 @@

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet