@framers/agentos 0.9.33 → 0.9.34

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/README.md CHANGED
@@ -267,7 +267,7 @@ Stages 2 and 3 reuse the Stage 1 classification, so the full pipeline costs **on
267
267
 
268
268
  | Category | Highlights |
269
269
  |---|---|
270
- | **LLM Providers** | 16: OpenAI, Anthropic, Gemini, Groq, Ollama, OpenRouter, Together, Mistral, xAI, Claude/Gemini CLI, + 5 image/video |
270
+ | **LLM Providers** | 11 (9 API-key + 2 local CLI): OpenAI, Anthropic, Gemini, Groq, Ollama, OpenRouter, Together, Mistral, xAI, Claude CLI, Gemini CLI. Plus image/video/audio generation providers. |
271
271
  | **Cognitive Memory** | 8 mechanisms: reconsolidation, retrieval-induced forgetting, involuntary recall, FOK, gist extraction, schema encoding, source decay, emotion regulation |
272
272
  | **HEXACO Personality** | 6 traits modulate memory, retrieval bias, response style |
273
273
  | **RAG Pipeline** | 7 vector backends * 4 retrieval strategies * GraphRAG * HyDE * Cohere rerank-v3.5 |
@@ -472,15 +472,38 @@ git clone https://github.com/framerslab/agentos.git && cd agentos
472
472
  pnpm install && pnpm build && pnpm test
473
473
  ```
474
474
 
475
- [Contributing Guide](https://github.com/framerslab/agentos/blob/master/CONTRIBUTING.md) * We use [Conventional Commits](https://www.conventionalcommits.org/).
475
+ We use [Conventional Commits](https://www.conventionalcommits.org/). Project guides:
476
+
477
+ | Guide | What |
478
+ |---|---|
479
+ | [Contributing](https://github.com/framerslab/agentos/blob/master/CONTRIBUTING.md) | Dev setup, PR checklist, commit conventions, contribution licensing |
480
+ | [Adding an LLM provider](https://github.com/framerslab/agentos/blob/master/docs/contributing/new-provider.md) | Provider interface, acceptance checklist, vendor-neutrality policy |
481
+ | [Maintainers](https://github.com/framerslab/agentos/blob/master/MAINTAINERS.md) | Who reviews and merges changes |
482
+ | [Code of Conduct](https://github.com/framerslab/agentos/blob/master/.github/CODE_OF_CONDUCT.md) | Community standards |
483
+ | [Security Policy](https://github.com/framerslab/agentos/blob/master/.github/SECURITY.md) | Reporting vulnerabilities privately |
484
+ | [Support](https://github.com/framerslab/agentos/blob/master/SUPPORT.md) | Where to get help |
485
+ | [Sponsors](https://github.com/framerslab/agentos/blob/master/SPONSORS.md) | Funding and the vendor-neutral placement policy |
476
486
 
477
487
  ---
478
488
 
479
- ## Sponsors
489
+ ## Startups & Partnerships
490
+
491
+ AgentOS is Apache-2.0 and free. The provider list is decided on technical merit and stays neutral, and placement there is never sold. Companies engage through partner startup programs, sponsorship, or a provider integration. See [SPONSORS.md](./SPONSORS.md).
492
+
493
+ ### Programs & partners
494
+
495
+ | Partner | Type | Provides | Since |
496
+ |:-:|:--|:--|:-:|
497
+ | [![Deepgram](https://img.shields.io/badge/Deepgram-13EF93?style=for-the-badge&logo=deepgram&logoColor=000000)](https://deepgram.com/startups) | Startup Program | Speech-to-text + text-to-speech credits, go-to-market | 2026 |
498
+
499
+ ### Ways to engage
480
500
 
481
- AgentOS is Apache-2.0 and free. Provider support is decided on technical merit and the provider list is neutral: placement and ordering are not for sale. If your company depends on AgentOS, you can support its maintenance through sponsorship. See [SPONSORS.md](./SPONSORS.md).
501
+ | Track | What it is | Where |
502
+ |:--|:--|:--|
503
+ | **Sponsor** | Fund development. Disclosed logo placement + release-notes credit. | [SPONSORS.md](./SPONSORS.md) |
504
+ | **Provider integration** | Ship your model or API as a supported provider. Free, on technical merit. | [Provider guide](./docs/contributing/new-provider.md) |
482
505
 
483
- Sponsor logos appear here, clearly labeled. No sponsors yet. To be the first, email team@frame.dev.
506
+ Interested? Email team@frame.dev.
484
507
 
485
508
  ---
486
509
 
@@ -0,0 +1,10 @@
1
+ import { type WikiPage } from './types.js';
2
+ /** Extract `[[wikilink]]` targets, trimmed and de-duplicated, order-preserving. */
3
+ export declare function extractWikiLinks(body: string): string[];
4
+ /** Parse a page file's content into a WikiPage. `id` is the caller-known relative id. */
5
+ export declare function parsePage(id: string, raw: string): WikiPage;
6
+ /** Serialize a WikiPage back to markdown with YAML frontmatter. */
7
+ export declare function serializePage(page: WikiPage): string;
8
+ /** Render index.md: pages grouped by type, each with a one-line summary and link. */
9
+ export declare function renderCatalog(pages: WikiPage[]): string;
10
+ //# sourceMappingURL=WikiPageCodec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WikiPageCodec.d.ts","sourceRoot":"","sources":["../../../../../src/cognition/substrate/memory/wiki/WikiPageCodec.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,QAAQ,EAAqC,MAAM,YAAY,CAAC;AAI9E,mFAAmF;AACnF,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAWvD;AAED,yFAAyF;AACzF,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,QAAQ,CAa3D;AAED,mEAAmE;AACnE,wBAAgB,aAAa,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAQpD;AAED,qFAAqF;AACrF,wBAAgB,aAAa,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,MAAM,CAqBvD"}
@@ -0,0 +1,75 @@
1
+ /** @fileoverview Parse/serialize wiki pages (gray-matter) and render the index.md catalog. */
2
+ import matter from 'gray-matter';
3
+ import { isWikiPageType } from './types.js';
4
+ const WIKILINK_RE = /\[\[\s*([^\]]+?)\s*\]\]/g;
5
+ /** Extract `[[wikilink]]` targets, trimmed and de-duplicated, order-preserving. */
6
+ export function extractWikiLinks(body) {
7
+ const out = [];
8
+ const seen = new Set();
9
+ for (const m of body.matchAll(WIKILINK_RE)) {
10
+ const target = m[1].trim();
11
+ if (target && !seen.has(target)) {
12
+ seen.add(target);
13
+ out.push(target);
14
+ }
15
+ }
16
+ return out;
17
+ }
18
+ /** Parse a page file's content into a WikiPage. `id` is the caller-known relative id. */
19
+ export function parsePage(id, raw) {
20
+ const { data, content } = matter(raw);
21
+ const type = isWikiPageType(data.type) ? data.type : inferTypeFromId(id);
22
+ const body = content.replace(/^\s+/, '');
23
+ return {
24
+ id,
25
+ type,
26
+ summary: typeof data.summary === 'string' ? data.summary : '',
27
+ updated: typeof data.updated === 'string' ? data.updated : '',
28
+ sources: Array.isArray(data.sources) ? data.sources.map(String) : [],
29
+ body,
30
+ links: extractWikiLinks(body),
31
+ };
32
+ }
33
+ /** Serialize a WikiPage back to markdown with YAML frontmatter. */
34
+ export function serializePage(page) {
35
+ return matter.stringify(page.body.endsWith('\n') ? page.body : page.body + '\n', {
36
+ id: page.id,
37
+ type: page.type,
38
+ summary: page.summary,
39
+ updated: page.updated,
40
+ sources: page.sources,
41
+ });
42
+ }
43
+ /** Render index.md: pages grouped by type, each with a one-line summary and link. */
44
+ export function renderCatalog(pages) {
45
+ const groups = { entity: [], concept: [], log: [] };
46
+ for (const p of pages)
47
+ groups[p.type].push(p);
48
+ const lines = ['# Memory Index', ''];
49
+ const headings = [
50
+ ['entity', '## Entities'],
51
+ ['concept', '## Concepts'],
52
+ ['log', '## Log'],
53
+ ];
54
+ for (const [type, heading] of headings) {
55
+ const list = groups[type];
56
+ if (list.length === 0)
57
+ continue;
58
+ lines.push(heading, '');
59
+ for (const p of list.sort((a, b) => a.id.localeCompare(b.id))) {
60
+ const name = p.id.split('/').pop() ?? p.id;
61
+ const summary = p.summary ? `: ${p.summary}` : '';
62
+ lines.push(`- [${name}](${p.id}.md)${summary}`);
63
+ }
64
+ lines.push('');
65
+ }
66
+ return lines.join('\n');
67
+ }
68
+ function inferTypeFromId(id) {
69
+ if (id.startsWith('entities/'))
70
+ return 'entity';
71
+ if (id.startsWith('log/'))
72
+ return 'log';
73
+ return 'concept';
74
+ }
75
+ //# sourceMappingURL=WikiPageCodec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WikiPageCodec.js","sourceRoot":"","sources":["../../../../../src/cognition/substrate/memory/wiki/WikiPageCodec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Guarantee a `memory/` directory exists in the workspace and return its path.
3
+ *
4
+ * - If `memory/` already exists, return it untouched (idempotent).
5
+ * - Else if `MEMORY.md` exists, seed `memory/index.md` from it. `MEMORY.md` is
6
+ * left on disk as a fallback.
7
+ * - Else create an empty `memory/` with a stub `index.md`.
8
+ *
9
+ * Always creates `.meta/index.json` if absent. Never modifies or deletes
10
+ * `MEMORY.md`.
11
+ *
12
+ * @param workspaceDir - The per-agent workspace directory.
13
+ * @returns Absolute path to the `memory/` directory.
14
+ */
15
+ export declare function ensureMemoryDir(workspaceDir: string): string;
16
+ //# sourceMappingURL=migrateMemoryMd.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrateMemoryMd.d.ts","sourceRoot":"","sources":["../../../../../src/cognition/substrate/memory/wiki/migrateMemoryMd.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CA0B5D"}
@@ -0,0 +1,42 @@
1
+ /** @fileoverview Non-destructive MEMORY.md → memory/ migration. Idempotent. */
2
+ import * as fs from 'node:fs';
3
+ import * as path from 'node:path';
4
+ /**
5
+ * Guarantee a `memory/` directory exists in the workspace and return its path.
6
+ *
7
+ * - If `memory/` already exists, return it untouched (idempotent).
8
+ * - Else if `MEMORY.md` exists, seed `memory/index.md` from it. `MEMORY.md` is
9
+ * left on disk as a fallback.
10
+ * - Else create an empty `memory/` with a stub `index.md`.
11
+ *
12
+ * Always creates `.meta/index.json` if absent. Never modifies or deletes
13
+ * `MEMORY.md`.
14
+ *
15
+ * @param workspaceDir - The per-agent workspace directory.
16
+ * @returns Absolute path to the `memory/` directory.
17
+ */
18
+ export function ensureMemoryDir(workspaceDir) {
19
+ const memoryDir = path.join(workspaceDir, 'memory');
20
+ const indexPath = path.join(memoryDir, 'index.md');
21
+ const metaDir = path.join(memoryDir, '.meta');
22
+ const metaPath = path.join(metaDir, 'index.json');
23
+ if (!fs.existsSync(memoryDir)) {
24
+ fs.mkdirSync(memoryDir, { recursive: true });
25
+ }
26
+ if (!fs.existsSync(indexPath)) {
27
+ const legacy = path.join(workspaceDir, 'MEMORY.md');
28
+ if (fs.existsSync(legacy)) {
29
+ const body = fs.readFileSync(legacy, 'utf8');
30
+ fs.writeFileSync(indexPath, `# Memory Index\n\n<!-- migrated from MEMORY.md -->\n\n${body}\n`);
31
+ }
32
+ else {
33
+ fs.writeFileSync(indexPath, '# Memory Index\n');
34
+ }
35
+ }
36
+ if (!fs.existsSync(metaPath)) {
37
+ fs.mkdirSync(metaDir, { recursive: true });
38
+ fs.writeFileSync(metaPath, JSON.stringify({ lastCompiledAt: null, pages: {} }, null, 2));
39
+ }
40
+ return memoryDir;
41
+ }
42
+ //# sourceMappingURL=migrateMemoryMd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrateMemoryMd.js","sourceRoot":"","sources":["../../../../../src/cognition/substrate/memory/wiki/migrateMemoryMd.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,eAAe,CAAC,YAAoB;IAClD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IACpD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IACnD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IAElD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9B,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;QACpD,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,GAAG,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAC7C,EAAE,CAAC,aAAa,CAAC,SAAS,EAAE,yDAAyD,IAAI,IAAI,CAAC,CAAC;QACjG,CAAC;aAAM,CAAC;YACN,EAAE,CAAC,aAAa,CAAC,SAAS,EAAE,kBAAkB,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IAED,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3C,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC3F,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -0,0 +1,47 @@
1
+ /** @fileoverview Shared types for the soul memory wiki. */
2
+ export declare const WIKI_PAGE_TYPES: readonly ["entity", "concept", "log"];
3
+ export type WikiPageType = (typeof WIKI_PAGE_TYPES)[number];
4
+ export declare function isWikiPageType(v: unknown): v is WikiPageType;
5
+ /** A single wiki page: parsed frontmatter + markdown body. */
6
+ export interface WikiPage {
7
+ /** Stable id = path relative to memory/ without extension, e.g. 'entities/johnny'. */
8
+ id: string;
9
+ type: WikiPageType;
10
+ /** One-line catalog summary. */
11
+ summary: string;
12
+ /** ISO8601 last-update timestamp. */
13
+ updated: string;
14
+ /** Provenance: ids of memory traces that fed this page. */
15
+ sources: string[];
16
+ /** Markdown body (frontmatter stripped). */
17
+ body: string;
18
+ /** Parsed `[[wikilink]]` targets found in the body. */
19
+ links: string[];
20
+ }
21
+ /** Persisted in `.meta/index.json`. */
22
+ export interface MetaIndex {
23
+ /** ISO8601 watermark: last successful compile. */
24
+ lastCompiledAt: string | null;
25
+ /** pageId → { hash, traceIds } so re-index only touches changed pages. */
26
+ pages: Record<string, {
27
+ hash: string;
28
+ traceIds: string[];
29
+ }>;
30
+ }
31
+ export interface IndexResult {
32
+ /** Page ids re-embedded this run. */
33
+ indexed: string[];
34
+ /** Unchanged page ids. */
35
+ skipped: string[];
36
+ /** Trace ids forgotten. */
37
+ removed: string[];
38
+ }
39
+ export interface CompileResult {
40
+ pagesWritten: string[];
41
+ tracesConsumed: number;
42
+ conflicts: Array<{
43
+ pageId: string;
44
+ note: string;
45
+ }>;
46
+ }
47
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/cognition/substrate/memory/wiki/types.ts"],"names":[],"mappings":"AAAA,2DAA2D;AAE3D,eAAO,MAAM,eAAe,uCAAwC,CAAC;AACrE,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC;AAE5D,wBAAgB,cAAc,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,YAAY,CAE5D;AAED,8DAA8D;AAC9D,MAAM,WAAW,QAAQ;IACvB,sFAAsF;IACtF,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,YAAY,CAAC;IACnB,gCAAgC;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,qCAAqC;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,2DAA2D;IAC3D,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,4CAA4C;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,uDAAuD;IACvD,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,uCAAuC;AACvC,MAAM,WAAW,SAAS;IACxB,kDAAkD;IAClD,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,0EAA0E;IAC1E,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;CAC7D;AAED,MAAM,WAAW,WAAW;IAC1B,qCAAqC;IACrC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,0BAA0B;IAC1B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,2BAA2B;IAC3B,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACpD"}
@@ -0,0 +1,6 @@
1
+ /** @fileoverview Shared types for the soul memory wiki. */
2
+ export const WIKI_PAGE_TYPES = ['entity', 'concept', 'log'];
3
+ export function isWikiPageType(v) {
4
+ return typeof v === 'string' && WIKI_PAGE_TYPES.includes(v);
5
+ }
6
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../src/cognition/substrate/memory/wiki/types.ts"],"names":[],"mappings":"AAAA,2DAA2D;AAE3D,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,QAAQ,EAAE,SAAS,EAAE,KAAK,CAAU,CAAC;AAGrE,MAAM,UAAU,cAAc,CAAC,CAAU;IACvC,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAK,eAAqC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACrF,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@framers/agentos",
3
- "version": "0.9.33",
3
+ "version": "0.9.34",
4
4
  "description": "AgentOS: open-source TypeScript framework for autonomous AI agents. Unified graph orchestration, cognitive memory, runtime tool forging, multi-tier guardrails, voice pipeline, and 11 LLM providers.",
5
5
  "homepage": "https://agentos.sh",
6
6
  "repository": {