diff --git a/README.md b/README.md index 59d6fbb..43e314f 100644 --- a/README.md +++ b/README.md @@ -76,7 +76,8 @@ cd cortex && npm install --omit=dev ## Tools -Cortex exposes 12 tools your agent can call directly: +Cortex exposes memory tools and explicit Company Brain tools your agent can call +directly: | Tool | Description | |------|-------------| @@ -92,6 +93,16 @@ Cortex exposes 12 tools your agent can call directly: | `cortex_add_open_loop` | Track an unresolved thread or topic | | `cortex_resolve_open_loop` | Mark an open loop as resolved | | `cortex_list_open_loops` | List unresolved threads | +| `company_brain_accounts_list` | Resolve Company Brain account/workspace IDs | +| `company_brain_account_brief` | Fetch source-backed account facts and action-readiness buckets | +| `company_brain_account_timeline` | Fetch artifact and claim events with citations | +| `company_brain_query` | Ask narrow account-scoped pilot questions with cited evidence | + +Company Brain tools are explicit and account-scoped. They call Cortex +`/api/v1/company-brain/*` over HTTP and preserve raw response fields including +`citations`, `verification_status`, `requires_approval`, `action_readiness`, +pagination, and `insufficient_evidence`. They do not inject generic always-on +Company Brain context and they do not write to shared plugin storage. ## How It Works diff --git a/dist/__tests__/company-brain-tools.test.d.ts b/dist/__tests__/company-brain-tools.test.d.ts new file mode 100644 index 0000000..a23ba30 --- /dev/null +++ b/dist/__tests__/company-brain-tools.test.d.ts @@ -0,0 +1,2 @@ +export {}; +//# sourceMappingURL=company-brain-tools.test.d.ts.map \ No newline at end of file diff --git a/dist/__tests__/company-brain-tools.test.d.ts.map b/dist/__tests__/company-brain-tools.test.d.ts.map new file mode 100644 index 0000000..8f3f8d6 --- /dev/null +++ b/dist/__tests__/company-brain-tools.test.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"company-brain-tools.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/company-brain-tools.test.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/dist/__tests__/company-brain-tools.test.js b/dist/__tests__/company-brain-tools.test.js new file mode 100644 index 0000000..11723c0 --- /dev/null +++ b/dist/__tests__/company-brain-tools.test.js @@ -0,0 +1,49 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const strict_1 = __importDefault(require("node:assert/strict")); +const index_1 = require("../index"); +{ + const cfg = (0, index_1.parseEvaMemoryConfig)({ ownerId: "company-acme" }); + strict_1.default.equal(cfg.ownerId, "company-acme"); +} +{ + const rendered = (0, index_1.formatCompanyBrainToolResult)("Company Brain query", { + ok: true, + evidence_status: "insufficient_evidence", + sections: [], + citations: [], + answer: "insufficient_evidence: no source-backed evidence matched this pilot query.", + }); + strict_1.default.match(rendered, /Company Brain query:/); + strict_1.default.match(rendered, /"evidence_status": "insufficient_evidence"/); + strict_1.default.match(rendered, /"citations": \[\]/); +} +{ + const rendered = (0, index_1.formatCompanyBrainToolResult)("Company Brain brief", { + ok: true, + evidence_status: "source_backed", + follow_ups: [ + { + claim_id: "claim_followup_551", + requires_approval: true, + action_readiness: "draft_ready", + verification_status: "source_backed", + source: { + artifact_id: "ba_gmail_thread_551", + source_system: "gmail", + }, + }, + ], + }); + strict_1.default.match(rendered, /"requires_approval": true/); + strict_1.default.match(rendered, /"action_readiness": "draft_ready"/); + strict_1.default.match(rendered, /"artifact_id": "ba_gmail_thread_551"/); +} +{ + strict_1.default.equal((0, index_1.formatCompanyBrainToolResult)("Company Brain accounts", null), "Company Brain accounts failed: Cortex returned no result."); +} +console.log("company-brain-tools tests passed"); +//# sourceMappingURL=company-brain-tools.test.js.map \ No newline at end of file diff --git a/dist/__tests__/company-brain-tools.test.js.map b/dist/__tests__/company-brain-tools.test.js.map new file mode 100644 index 0000000..388cd10 --- /dev/null +++ b/dist/__tests__/company-brain-tools.test.js.map @@ -0,0 +1 @@ +{"version":3,"file":"company-brain-tools.test.js","sourceRoot":"","sources":["../../src/__tests__/company-brain-tools.test.ts"],"names":[],"mappings":";;;;;AAAA,gEAAwC;AACxC,oCAA8E;AAE9E,CAAC;IACC,MAAM,GAAG,GAAG,IAAA,4BAAoB,EAAC,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC,CAAC;IAC9D,gBAAM,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;AAC5C,CAAC;AAED,CAAC;IACC,MAAM,QAAQ,GAAG,IAAA,oCAA4B,EAAC,qBAAqB,EAAE;QACnE,EAAE,EAAE,IAAI;QACR,eAAe,EAAE,uBAAuB;QACxC,QAAQ,EAAE,EAAE;QACZ,SAAS,EAAE,EAAE;QACb,MAAM,EAAE,4EAA4E;KACrF,CAAC,CAAC;IACH,gBAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,sBAAsB,CAAC,CAAC;IAC/C,gBAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,4CAA4C,CAAC,CAAC;IACrE,gBAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC;AAC9C,CAAC;AAED,CAAC;IACC,MAAM,QAAQ,GAAG,IAAA,oCAA4B,EAAC,qBAAqB,EAAE;QACnE,EAAE,EAAE,IAAI;QACR,eAAe,EAAE,eAAe;QAChC,UAAU,EAAE;YACV;gBACE,QAAQ,EAAE,oBAAoB;gBAC9B,iBAAiB,EAAE,IAAI;gBACvB,gBAAgB,EAAE,aAAa;gBAC/B,mBAAmB,EAAE,eAAe;gBACpC,MAAM,EAAE;oBACN,WAAW,EAAE,qBAAqB;oBAClC,aAAa,EAAE,OAAO;iBACvB;aACF;SACF;KACF,CAAC,CAAC;IACH,gBAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,2BAA2B,CAAC,CAAC;IACpD,gBAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,mCAAmC,CAAC,CAAC;IAC5D,gBAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,sCAAsC,CAAC,CAAC;AACjE,CAAC;AAED,CAAC;IACC,gBAAM,CAAC,KAAK,CACV,IAAA,oCAA4B,EAAC,wBAAwB,EAAE,IAAI,CAAC,EAC5D,2DAA2D,CAC5D,CAAC;AACJ,CAAC;AAED,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC"} \ No newline at end of file diff --git a/dist/index.d.ts b/dist/index.d.ts index 528be59..1ab29dc 100644 --- a/dist/index.d.ts +++ b/dist/index.d.ts @@ -66,12 +66,14 @@ interface RetrievedItem { }; provenance?: string; } +type CompanyBrainToolResult = Record; interface ProcessedItem { item: RetrievedItem; duplicateCount: number; conflictWithId?: string; relationHint?: string; } +export declare function formatCompanyBrainToolResult(label: string, result: CompanyBrainToolResult | null): string; declare function parseConfig(raw: unknown): EvaMemoryConfig; /** Session risk mode for dynamic threshold selection. */ type InjectionMode = "critical" | "technical" | "personal"; diff --git a/dist/index.d.ts.map b/dist/index.d.ts.map index f8b2a5a..ce510ae 100644 --- a/dist/index.d.ts.map +++ b/dist/index.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/index.js b/dist/index.js index a018fea..9445bca 100644 --- a/dist/index.js +++ b/dist/index.js @@ -24,6 +24,7 @@ * cortex_add_open_loop, cortex_resolve_open_loop, cortex_list_open_loops */ Object.defineProperty(exports, "__esModule", { value: true }); +exports.formatCompanyBrainToolResult = formatCompanyBrainToolResult; exports.parseEvaMemoryConfig = parseEvaMemoryConfig; exports.detectInjectionMode = detectInjectionMode; exports.screenInjectionCandidates = screenInjectionCandidates; @@ -40,6 +41,29 @@ try { catch { // node:sqlite not available — cache will be disabled } +function clampNumber(value, fallback, min, max) { + if (typeof value !== "number" || !Number.isFinite(value)) + return fallback; + return Math.max(min, Math.min(max, Math.trunc(value))); +} +function addOptionalParam(params, key, value) { + if (typeof value === "string" && value.trim()) + params.set(key, value.trim()); + if (typeof value === "number" && Number.isFinite(value)) + params.set(key, String(Math.trunc(value))); +} +function addOwnerParam(params, ownerId) { + // The Cortex API remains authoritative for ownership. Tenant/JWT callers cannot + // override auth owner; this explicit owner is for self-host and owner-bound API keys. + if (ownerId && ownerId !== "default") + params.set("owner_id", ownerId); +} +function formatCompanyBrainToolResult(label, result) { + if (!result) { + return `${label} failed: Cortex returned no result.`; + } + return `${label}:\n${JSON.stringify(result, null, 2)}`; +} // --- Config --- function resolveEnv(value) { return value.replace(/\$\{([^}]+)\}/g, (_, key) => process.env[key] ?? ""); @@ -280,6 +304,40 @@ class CortexClient { params.set("status", status); return this.get(`/api/v1/open-loops?${params}`); } + // --- Company Brain --- + async listCompanyBrainAccounts(options = {}) { + const params = new URLSearchParams(); + addOwnerParam(params, this.ownerId); + addOptionalParam(params, "search", options.search); + addOptionalParam(params, "workspace_id", options.workspaceId); + params.set("limit", String(clampNumber(options.limit, 50, 1, 200))); + params.set("offset", String(clampNumber(options.offset, 0, 0, 1000000))); + const query = params.toString(); + return this.get(`/api/v1/company-brain/accounts${query ? `?${query}` : ""}`); + } + async getCompanyBrainAccountBrief(accountId, options = {}) { + const params = new URLSearchParams(); + addOwnerParam(params, this.ownerId); + params.set("facts_limit", String(clampNumber(options.factsLimit, 50, 1, 200))); + params.set("facts_offset", String(clampNumber(options.factsOffset, 0, 0, 1000000))); + return this.get(`/api/v1/company-brain/accounts/${encodeURIComponent(accountId)}/brief?${params}`); + } + async getCompanyBrainAccountTimeline(accountId, options = {}) { + const params = new URLSearchParams(); + addOwnerParam(params, this.ownerId); + params.set("limit", String(clampNumber(options.limit, 50, 1, 200))); + params.set("offset", String(clampNumber(options.offset, 0, 0, 1000000))); + return this.get(`/api/v1/company-brain/accounts/${encodeURIComponent(accountId)}/timeline?${params}`); + } + async queryCompanyBrain(options) { + return this.post("/api/v1/company-brain/query", { + owner_id: this.ownerId && this.ownerId !== "default" ? this.ownerId : undefined, + account_id: options.accountId, + intent: options.intent ?? "auto", + question: options.question, + limit: clampNumber(options.limit, 10, 1, 50), + }); + } // --- Cornerstones --- async getCornerstones() { const params = new URLSearchParams({ owner_id: this.ownerId }); @@ -1477,6 +1535,109 @@ const cortexPlugin = { } }, }, { name: "cortex_insights" }); + api.registerTool({ + name: "company_brain_accounts_list", + label: "Company Brain Accounts List", + description: "List or search source-backed Company Brain accounts through the Cortex HTTP API. Use this first to resolve stable account IDs before brief, timeline, or query calls.", + parameters: typebox_1.Type.Object({ + search: typebox_1.Type.Optional(typebox_1.Type.String({ description: "Optional account/workspace search text" })), + workspace_id: typebox_1.Type.Optional(typebox_1.Type.String({ description: "Optional Cortex Company Brain workspace ID" })), + limit: typebox_1.Type.Optional(typebox_1.Type.Number({ description: "Max accounts to return, 1-200 (default: 50)" })), + offset: typebox_1.Type.Optional(typebox_1.Type.Number({ description: "Zero-based account offset (default: 0)" })), + }), + async execute(_toolCallId, params) { + const { search, workspace_id, limit, offset } = params; + try { + const result = await client.listCompanyBrainAccounts({ + search, + workspaceId: workspace_id, + limit, + offset, + }); + return { content: [{ type: "text", text: formatCompanyBrainToolResult("Company Brain accounts", result) }] }; + } + catch (err) { + return { content: [{ type: "text", text: `Company Brain account list failed: ${String(err)}` }] }; + } + }, + }, { name: "company_brain_accounts_list" }); + api.registerTool({ + name: "company_brain_account_brief", + label: "Company Brain Account Brief", + description: "Fetch a source-backed Company Brain account brief. `insufficient_evidence` is an honest successful result, not a tool failure.", + parameters: typebox_1.Type.Object({ + account_id: typebox_1.Type.String({ description: "Stable Company Brain account ID from company_brain_accounts_list" }), + facts_limit: typebox_1.Type.Optional(typebox_1.Type.Number({ description: "Max facts to return, 1-200 (default: 50)" })), + facts_offset: typebox_1.Type.Optional(typebox_1.Type.Number({ description: "Zero-based fact offset (default: 0)" })), + }), + async execute(_toolCallId, params) { + const { account_id, facts_limit, facts_offset } = params; + try { + const result = await client.getCompanyBrainAccountBrief(account_id, { + factsLimit: facts_limit, + factsOffset: facts_offset, + }); + return { content: [{ type: "text", text: formatCompanyBrainToolResult("Company Brain account brief", result) }] }; + } + catch (err) { + return { content: [{ type: "text", text: `Company Brain account brief failed: ${String(err)}` }] }; + } + }, + }, { name: "company_brain_account_brief" }); + api.registerTool({ + name: "company_brain_account_timeline", + label: "Company Brain Account Timeline", + description: "Fetch source artifact and claim events for one Company Brain account, preserving citations and timeline pagination.", + parameters: typebox_1.Type.Object({ + account_id: typebox_1.Type.String({ description: "Stable Company Brain account ID from company_brain_accounts_list" }), + limit: typebox_1.Type.Optional(typebox_1.Type.Number({ description: "Max timeline items to return, 1-200 (default: 50)" })), + offset: typebox_1.Type.Optional(typebox_1.Type.Number({ description: "Zero-based timeline offset (default: 0)" })), + }), + async execute(_toolCallId, params) { + const { account_id, limit, offset } = params; + try { + const result = await client.getCompanyBrainAccountTimeline(account_id, { limit, offset }); + return { content: [{ type: "text", text: formatCompanyBrainToolResult("Company Brain account timeline", result) }] }; + } + catch (err) { + return { content: [{ type: "text", text: `Company Brain account timeline failed: ${String(err)}` }] }; + } + }, + }, { name: "company_brain_account_timeline" }); + api.registerTool({ + name: "company_brain_query", + label: "Company Brain Query", + description: "Ask a narrow Company Brain pilot question for one resolved account. Answers must be source-cited or return `insufficient_evidence`; the tool never performs outbound action.", + parameters: typebox_1.Type.Object({ + account_id: typebox_1.Type.String({ description: "Stable Company Brain account ID from company_brain_accounts_list" }), + intent: typebox_1.Type.Optional(typebox_1.Type.Union([ + typebox_1.Type.Literal("auto"), + typebox_1.Type.Literal("account_brief"), + typebox_1.Type.Literal("daily_brief"), + typebox_1.Type.Literal("what_changed"), + typebox_1.Type.Literal("follow_ups"), + typebox_1.Type.Literal("blocked"), + typebox_1.Type.Literal("open_loops"), + ], { description: "Narrow deterministic Company Brain query intent" })), + question: typebox_1.Type.Optional(typebox_1.Type.String({ description: "Optional natural-language question for auto routing" })), + limit: typebox_1.Type.Optional(typebox_1.Type.Number({ description: "Max facts/events to cite, 1-50 (default: 10)" })), + }), + async execute(_toolCallId, params) { + const { account_id, intent, question, limit } = params; + try { + const result = await client.queryCompanyBrain({ + accountId: account_id, + intent, + question, + limit, + }); + return { content: [{ type: "text", text: formatCompanyBrainToolResult("Company Brain query", result) }] }; + } + catch (err) { + return { content: [{ type: "text", text: `Company Brain query failed: ${String(err)}` }] }; + } + }, + }, { name: "company_brain_query" }); api.registerTool({ name: "cortex_add_open_loop", label: "Cortex Add Open Loop", diff --git a/dist/index.js.map b/dist/index.js.map index b745ae5..e1fb0c4 100644 --- a/dist/index.js.map +++ b/dist/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/openclaw.plugin.json b/dist/openclaw.plugin.json index e16822b..7227341 100644 --- a/dist/openclaw.plugin.json +++ b/dist/openclaw.plugin.json @@ -15,6 +15,10 @@ "cortex_add_commitment", "cortex_update_commitment", "cortex_list_commitments", + "company_brain_accounts_list", + "company_brain_account_brief", + "company_brain_account_timeline", + "company_brain_query", "cortex_add_open_loop", "cortex_resolve_open_loop", "cortex_list_open_loops" @@ -67,4 +71,4 @@ }, "required": [] } -} \ No newline at end of file +} diff --git a/docs/company-brain-tools.md b/docs/company-brain-tools.md new file mode 100644 index 0000000..ad67cca --- /dev/null +++ b/docs/company-brain-tools.md @@ -0,0 +1,46 @@ +# Company Brain Plugin Tools + +This plugin exposes Company Brain only through explicit Cortex HTTP tools. It +does not inject generic always-on Company Brain memory and it does not read or +write shared MCP/plugin storage. + +## Tools + +| tool | purpose | +|------|---------| +| `company_brain_accounts_list` | Resolve stable account and workspace IDs. | +| `company_brain_account_brief` | Fetch source-backed account facts, contacts, open loops, follow-ups, and blockers. | +| `company_brain_account_timeline` | Fetch artifact and claim events with timeline pagination. | +| `company_brain_query` | Ask narrow pilot questions such as `what_changed`, `follow_ups`, `blocked`, and `daily_brief`. | + +The raw Cortex JSON response is returned as tool text so downstream agents keep +`citations`, `verification_status`, `requires_approval`, `action_readiness`, +pagination fields, and `insufficient_evidence` intact. + +## Owner Handling + +The tools call `/api/v1/company-brain/*` on the configured `cortexUrl`. The +configured `ownerId` is sent only as an explicit owner-bound selector for +self-hosted installs and owner-bound API-key deployments. Hosted Cortex remains +authoritative: non-admin/JWT callers cannot override the authenticated owner. + +Agents should call `company_brain_accounts_list` before account brief, timeline, +or query tools. Do not flatten Company Brain account context into generic +personal memory. Treat `insufficient_evidence` as a successful honest response, +not as a tool failure. + +## Canary + +Run the live canary against a local or staged Cortex endpoint: + +```bash +CORTEX_URL=http://localhost:8000 \ +CORTEX_API_KEY=... \ +CORTEX_OWNER_ID=company-acme \ +COMPANY_BRAIN_ACCOUNT_ID=optional-account-id \ +npm run company-brain:canary +``` + +If `COMPANY_BRAIN_ACCOUNT_ID` is omitted, the canary lists accounts and uses the +first returned account when one exists. A tenant with no accounts is accepted as +a route/auth smoke pass for the account-list stage. diff --git a/openclaw.plugin.json b/openclaw.plugin.json index ed8125d..e8719e1 100644 --- a/openclaw.plugin.json +++ b/openclaw.plugin.json @@ -16,6 +16,10 @@ "cortex_update_commitment", "cortex_list_commitments", "cortex_insights", + "company_brain_accounts_list", + "company_brain_account_brief", + "company_brain_account_timeline", + "company_brain_query", "cortex_add_open_loop", "cortex_resolve_open_loop", "cortex_list_open_loops" @@ -92,4 +96,4 @@ }, "required": [] } -} \ No newline at end of file +} diff --git a/package.json b/package.json index 22710f1..fd65c54 100644 --- a/package.json +++ b/package.json @@ -6,6 +6,8 @@ "types": "dist/index.d.ts", "scripts": { "build": "tsc", + "test": "npm run build && node dist/__tests__/memory-context-format.test.js && node dist/__tests__/company-brain-tools.test.js", + "company-brain:canary": "node scripts/company-brain-canary.mjs", "prepublishOnly": "npm run build" }, "files": [ diff --git a/scripts/company-brain-canary.mjs b/scripts/company-brain-canary.mjs new file mode 100755 index 0000000..d37c2ed --- /dev/null +++ b/scripts/company-brain-canary.mjs @@ -0,0 +1,96 @@ +#!/usr/bin/env node + +const cortexUrl = (process.env.CORTEX_URL || "http://localhost:8000").replace(/\/+$/, ""); +const apiKey = process.env.CORTEX_API_KEY || ""; +const ownerId = process.env.CORTEX_OWNER_ID || ""; +let accountId = process.env.COMPANY_BRAIN_ACCOUNT_ID || ""; + +function headers() { + const h = { "Content-Type": "application/json" }; + if (apiKey) h["X-API-Key"] = apiKey; + return h; +} + +function withOwner(params) { + if (ownerId) params.set("owner_id", ownerId); + return params; +} + +async function request(stage, path, options = {}) { + const res = await fetch(`${cortexUrl}${path}`, { + ...options, + headers: { ...headers(), ...(options.headers || {}) }, + }); + const text = await res.text(); + let body = null; + try { + body = text ? JSON.parse(text) : null; + } catch { + body = text; + } + if (!res.ok) { + throw new Error(`${stage} failed with HTTP ${res.status}: ${text}`); + } + return body; +} + +async function main() { + const stages = []; + const accountParams = withOwner(new URLSearchParams({ limit: "5", offset: "0" })); + const accounts = await request("account_resolution", `/api/v1/company-brain/accounts?${accountParams}`); + stages.push({ + stage: "account_resolution", + status: "passed", + total: accounts?.total ?? 0, + }); + + if (!accountId) { + accountId = accounts?.accounts?.[0]?.id || ""; + } + if (!accountId) { + console.log(JSON.stringify({ ok: true, stages, note: "no accounts found; account-list route/auth smoke passed" }, null, 2)); + return; + } + + const briefParams = withOwner(new URLSearchParams({ facts_limit: "10", facts_offset: "0" })); + const brief = await request("brief", `/api/v1/company-brain/accounts/${encodeURIComponent(accountId)}/brief?${briefParams}`); + stages.push({ + stage: "brief", + status: "passed", + evidence_status: brief?.evidence_status, + facts_total: brief?.facts_total ?? 0, + }); + + const timelineParams = withOwner(new URLSearchParams({ limit: "10", offset: "0" })); + const timeline = await request("timeline", `/api/v1/company-brain/accounts/${encodeURIComponent(accountId)}/timeline?${timelineParams}`); + stages.push({ + stage: "timeline", + status: "passed", + evidence_status: timeline?.evidence_status, + total: timeline?.total ?? 0, + }); + + const query = await request("query", "/api/v1/company-brain/query", { + method: "POST", + body: JSON.stringify({ + owner_id: ownerId || undefined, + account_id: accountId, + intent: "follow_ups", + question: "Who needs follow-up?", + limit: 5, + }), + }); + stages.push({ + stage: "query", + status: "passed", + evidence_status: query?.evidence_status, + citations: query?.citations?.length ?? 0, + }); + + console.log(JSON.stringify({ ok: true, stages }, null, 2)); +} + +main().catch((err) => { + console.error(JSON.stringify({ ok: false, error: String(err?.message || err) }, null, 2)); + process.exitCode = 1; +}); diff --git a/src/__tests__/company-brain-tools.test.ts b/src/__tests__/company-brain-tools.test.ts new file mode 100644 index 0000000..a259683 --- /dev/null +++ b/src/__tests__/company-brain-tools.test.ts @@ -0,0 +1,51 @@ +import assert from "node:assert/strict"; +import { formatCompanyBrainToolResult, parseEvaMemoryConfig } from "../index"; + +{ + const cfg = parseEvaMemoryConfig({ ownerId: "company-acme" }); + assert.equal(cfg.ownerId, "company-acme"); +} + +{ + const rendered = formatCompanyBrainToolResult("Company Brain query", { + ok: true, + evidence_status: "insufficient_evidence", + sections: [], + citations: [], + answer: "insufficient_evidence: no source-backed evidence matched this pilot query.", + }); + assert.match(rendered, /Company Brain query:/); + assert.match(rendered, /"evidence_status": "insufficient_evidence"/); + assert.match(rendered, /"citations": \[\]/); +} + +{ + const rendered = formatCompanyBrainToolResult("Company Brain brief", { + ok: true, + evidence_status: "source_backed", + follow_ups: [ + { + claim_id: "claim_followup_551", + requires_approval: true, + action_readiness: "draft_ready", + verification_status: "source_backed", + source: { + artifact_id: "ba_gmail_thread_551", + source_system: "gmail", + }, + }, + ], + }); + assert.match(rendered, /"requires_approval": true/); + assert.match(rendered, /"action_readiness": "draft_ready"/); + assert.match(rendered, /"artifact_id": "ba_gmail_thread_551"/); +} + +{ + assert.equal( + formatCompanyBrainToolResult("Company Brain accounts", null), + "Company Brain accounts failed: Cortex returned no result.", + ); +} + +console.log("company-brain-tools tests passed"); diff --git a/src/index.ts b/src/index.ts index 3e8b948..c785ef0 100644 --- a/src/index.ts +++ b/src/index.ts @@ -91,6 +91,17 @@ interface RetrievalResult { mode: string; } +type CompanyBrainQueryIntent = + | "auto" + | "account_brief" + | "daily_brief" + | "what_changed" + | "follow_ups" + | "blocked" + | "open_loops"; + +type CompanyBrainToolResult = Record; + interface ProcessedItem { item: RetrievedItem; duplicateCount: number; @@ -98,6 +109,29 @@ interface ProcessedItem { relationHint?: string; } +function clampNumber(value: unknown, fallback: number, min: number, max: number): number { + if (typeof value !== "number" || !Number.isFinite(value)) return fallback; + return Math.max(min, Math.min(max, Math.trunc(value))); +} + +function addOptionalParam(params: URLSearchParams, key: string, value: unknown): void { + if (typeof value === "string" && value.trim()) params.set(key, value.trim()); + if (typeof value === "number" && Number.isFinite(value)) params.set(key, String(Math.trunc(value))); +} + +function addOwnerParam(params: URLSearchParams, ownerId: string): void { + // The Cortex API remains authoritative for ownership. Tenant/JWT callers cannot + // override auth owner; this explicit owner is for self-host and owner-bound API keys. + if (ownerId && ownerId !== "default") params.set("owner_id", ownerId); +} + +export function formatCompanyBrainToolResult(label: string, result: CompanyBrainToolResult | null): string { + if (!result) { + return `${label} failed: Cortex returned no result.`; + } + return `${label}:\n${JSON.stringify(result, null, 2)}`; +} + // --- Config --- function resolveEnv(value: string): string { @@ -388,6 +422,62 @@ class CortexClient { return this.get<{ open_loops?: Record[]; total?: number }>(`/api/v1/open-loops?${params}`); } + // --- Company Brain --- + + async listCompanyBrainAccounts(options: { + search?: string; + workspaceId?: string; + limit?: number; + offset?: number; + } = {}) { + const params = new URLSearchParams(); + addOwnerParam(params, this.ownerId); + addOptionalParam(params, "search", options.search); + addOptionalParam(params, "workspace_id", options.workspaceId); + params.set("limit", String(clampNumber(options.limit, 50, 1, 200))); + params.set("offset", String(clampNumber(options.offset, 0, 0, 1000000))); + const query = params.toString(); + return this.get(`/api/v1/company-brain/accounts${query ? `?${query}` : ""}`); + } + + async getCompanyBrainAccountBrief(accountId: string, options: { factsLimit?: number; factsOffset?: number } = {}) { + const params = new URLSearchParams(); + addOwnerParam(params, this.ownerId); + params.set("facts_limit", String(clampNumber(options.factsLimit, 50, 1, 200))); + params.set("facts_offset", String(clampNumber(options.factsOffset, 0, 0, 1000000))); + return this.get( + `/api/v1/company-brain/accounts/${encodeURIComponent(accountId)}/brief?${params}`, + ); + } + + async getCompanyBrainAccountTimeline(accountId: string, options: { limit?: number; offset?: number } = {}) { + const params = new URLSearchParams(); + addOwnerParam(params, this.ownerId); + params.set("limit", String(clampNumber(options.limit, 50, 1, 200))); + params.set("offset", String(clampNumber(options.offset, 0, 0, 1000000))); + return this.get( + `/api/v1/company-brain/accounts/${encodeURIComponent(accountId)}/timeline?${params}`, + ); + } + + async queryCompanyBrain(options: { + accountId: string; + intent?: CompanyBrainQueryIntent; + question?: string; + limit?: number; + }) { + return this.post( + "/api/v1/company-brain/query", + { + owner_id: this.ownerId && this.ownerId !== "default" ? this.ownerId : undefined, + account_id: options.accountId, + intent: options.intent ?? "auto", + question: options.question, + limit: clampNumber(options.limit, 10, 1, 50), + }, + ); + } + // --- Cornerstones --- async getCornerstones(): Promise | null> { @@ -1744,6 +1834,139 @@ const cortexPlugin = { { name: "cortex_insights" }, ); + api.registerTool( + { + name: "company_brain_accounts_list", + label: "Company Brain Accounts List", + description: "List or search source-backed Company Brain accounts through the Cortex HTTP API. Use this first to resolve stable account IDs before brief, timeline, or query calls.", + parameters: Type.Object({ + search: Type.Optional(Type.String({ description: "Optional account/workspace search text" })), + workspace_id: Type.Optional(Type.String({ description: "Optional Cortex Company Brain workspace ID" })), + limit: Type.Optional(Type.Number({ description: "Max accounts to return, 1-200 (default: 50)" })), + offset: Type.Optional(Type.Number({ description: "Zero-based account offset (default: 0)" })), + }), + async execute(_toolCallId: string, params: unknown): Promise { + const { search, workspace_id, limit, offset } = params as { + search?: string; + workspace_id?: string; + limit?: number; + offset?: number; + }; + try { + const result = await client.listCompanyBrainAccounts({ + search, + workspaceId: workspace_id, + limit, + offset, + }); + return { content: [{ type: "text" as const, text: formatCompanyBrainToolResult("Company Brain accounts", result) }] }; + } catch (err) { + return { content: [{ type: "text" as const, text: `Company Brain account list failed: ${String(err)}` }] }; + } + }, + }, + { name: "company_brain_accounts_list" }, + ); + + api.registerTool( + { + name: "company_brain_account_brief", + label: "Company Brain Account Brief", + description: "Fetch a source-backed Company Brain account brief. `insufficient_evidence` is an honest successful result, not a tool failure.", + parameters: Type.Object({ + account_id: Type.String({ description: "Stable Company Brain account ID from company_brain_accounts_list" }), + facts_limit: Type.Optional(Type.Number({ description: "Max facts to return, 1-200 (default: 50)" })), + facts_offset: Type.Optional(Type.Number({ description: "Zero-based fact offset (default: 0)" })), + }), + async execute(_toolCallId: string, params: unknown): Promise { + const { account_id, facts_limit, facts_offset } = params as { + account_id: string; + facts_limit?: number; + facts_offset?: number; + }; + try { + const result = await client.getCompanyBrainAccountBrief(account_id, { + factsLimit: facts_limit, + factsOffset: facts_offset, + }); + return { content: [{ type: "text" as const, text: formatCompanyBrainToolResult("Company Brain account brief", result) }] }; + } catch (err) { + return { content: [{ type: "text" as const, text: `Company Brain account brief failed: ${String(err)}` }] }; + } + }, + }, + { name: "company_brain_account_brief" }, + ); + + api.registerTool( + { + name: "company_brain_account_timeline", + label: "Company Brain Account Timeline", + description: "Fetch source artifact and claim events for one Company Brain account, preserving citations and timeline pagination.", + parameters: Type.Object({ + account_id: Type.String({ description: "Stable Company Brain account ID from company_brain_accounts_list" }), + limit: Type.Optional(Type.Number({ description: "Max timeline items to return, 1-200 (default: 50)" })), + offset: Type.Optional(Type.Number({ description: "Zero-based timeline offset (default: 0)" })), + }), + async execute(_toolCallId: string, params: unknown): Promise { + const { account_id, limit, offset } = params as { + account_id: string; + limit?: number; + offset?: number; + }; + try { + const result = await client.getCompanyBrainAccountTimeline(account_id, { limit, offset }); + return { content: [{ type: "text" as const, text: formatCompanyBrainToolResult("Company Brain account timeline", result) }] }; + } catch (err) { + return { content: [{ type: "text" as const, text: `Company Brain account timeline failed: ${String(err)}` }] }; + } + }, + }, + { name: "company_brain_account_timeline" }, + ); + + api.registerTool( + { + name: "company_brain_query", + label: "Company Brain Query", + description: "Ask a narrow Company Brain pilot question for one resolved account. Answers must be source-cited or return `insufficient_evidence`; the tool never performs outbound action.", + parameters: Type.Object({ + account_id: Type.String({ description: "Stable Company Brain account ID from company_brain_accounts_list" }), + intent: Type.Optional(Type.Union([ + Type.Literal("auto"), + Type.Literal("account_brief"), + Type.Literal("daily_brief"), + Type.Literal("what_changed"), + Type.Literal("follow_ups"), + Type.Literal("blocked"), + Type.Literal("open_loops"), + ], { description: "Narrow deterministic Company Brain query intent" })), + question: Type.Optional(Type.String({ description: "Optional natural-language question for auto routing" })), + limit: Type.Optional(Type.Number({ description: "Max facts/events to cite, 1-50 (default: 10)" })), + }), + async execute(_toolCallId: string, params: unknown): Promise { + const { account_id, intent, question, limit } = params as { + account_id: string; + intent?: CompanyBrainQueryIntent; + question?: string; + limit?: number; + }; + try { + const result = await client.queryCompanyBrain({ + accountId: account_id, + intent, + question, + limit, + }); + return { content: [{ type: "text" as const, text: formatCompanyBrainToolResult("Company Brain query", result) }] }; + } catch (err) { + return { content: [{ type: "text" as const, text: `Company Brain query failed: ${String(err)}` }] }; + } + }, + }, + { name: "company_brain_query" }, + ); + api.registerTool( { name: "cortex_add_open_loop",