From b02e40c1a53f021d8022f0e6413bfed8c593eb78 Mon Sep 17 00:00:00 2001 From: Eva Date: Wed, 27 May 2026 05:20:47 +0700 Subject: [PATCH] feat: scope Company Brain context by account key --- README.md | 19 ++++++- .../company-brain-context-format.test.js | 25 ++++++++- .../company-brain-context-format.test.js.map | 2 +- dist/__tests__/company-brain-tools.test.js | 12 ++++ .../__tests__/company-brain-tools.test.js.map | 2 +- dist/__tests__/plugin-manifest-parity.test.js | 2 + .../plugin-manifest-parity.test.js.map | 2 +- dist/index.d.ts | 14 +++++ dist/index.d.ts.map | 2 +- dist/index.js | 45 ++++++++++++--- dist/index.js.map | 2 +- dist/openclaw.plugin.json | 12 ++++ docs/company-brain-tools.md | 31 ++++++++-- openclaw.plugin.json | 12 ++++ scripts/company-brain-canary.mjs | 12 +++- .../company-brain-context-format.test.ts | 30 +++++++++- src/__tests__/company-brain-tools.test.ts | 14 +++++ src/__tests__/plugin-manifest-parity.test.ts | 2 + src/index.ts | 56 ++++++++++++++++--- 19 files changed, 265 insertions(+), 31 deletions(-) diff --git a/README.md b/README.md index 4722043..5b16a63 100644 --- a/README.md +++ b/README.md @@ -76,6 +76,8 @@ cd cortex && npm install --omit=dev | `retrievalMode` | `string` | `fast` | Retrieval mode: `auto`, `fast`, or `thorough` | | `companyBrainContextMode` | `string` | `off` | Opt-in Company Brain context injection: `off` or `auto` | | `companyBrainContextAccountId` | `string` | — | Stable account ID for account-scoped Company Brain context | +| `companyBrainContextAccountKey` | `string` | — | Stable business account key, for example `company:electricsheep-internal` | +| `companyBrainContextSourceScope` | `string` | — | Optional account scope filter: `internal` or `customer_accounts` | | `companyBrainContextSearch` | `string` | — | Account search text used when no account ID is configured | | `companyBrainContextFactsLimit` | `number` | `25` | Max account facts requested for Company Brain context | | `companyBrainContextEventsLimit` | `number` | `10` | Max action-readiness events requested for Company Brain context | @@ -138,9 +140,20 @@ memory tools. Use `cortex_entities_list` first to resolve entity IDs, then For customer/account workspaces, `companyBrainContextMode: "auto"` enables a separate `` block. The block is distinct from ``, resolves the account through the Company Brain account -path even when a stable account ID is configured, preserves cited evidence and -action-readiness metadata, surfaces open follow-ups, and marks approval-gated -items as read-only operator-review candidates rather than executable actions. +path even when a stable account ID or account key is configured, preserves cited +evidence and action-readiness metadata, surfaces open follow-ups, and marks +approval-gated items as read-only operator-review candidates rather than +executable actions. + +For the ElectricSheep internal beta, configure the internal account explicitly: + +```jsonc +{ + "companyBrainContextMode": "auto", + "companyBrainContextSourceScope": "internal", + "companyBrainContextAccountKey": "company:electricsheep-internal" +} +``` ## How It Works diff --git a/dist/__tests__/company-brain-context-format.test.js b/dist/__tests__/company-brain-context-format.test.js index c7ca862..ef6282b 100644 --- a/dist/__tests__/company-brain-context-format.test.js +++ b/dist/__tests__/company-brain-context-format.test.js @@ -9,6 +9,8 @@ const index_1 = require("../index"); const cfg = (0, index_1.parseEvaMemoryConfig)({ companyBrainContextMode: "auto", companyBrainContextAccountId: "acct_acme", + companyBrainContextAccountKey: "company:acme", + companyBrainContextSourceScope: "customer_accounts", companyBrainContextSearch: "Acme Clinic", companyBrainContextFactsLimit: 12, companyBrainContextEventsLimit: 7, @@ -16,6 +18,8 @@ const index_1 = require("../index"); }); strict_1.default.equal(cfg.companyBrainContextMode, "auto"); strict_1.default.equal(cfg.companyBrainContextAccountId, "acct_acme"); + strict_1.default.equal(cfg.companyBrainContextAccountKey, "company:acme"); + strict_1.default.equal(cfg.companyBrainContextSourceScope, "customer_accounts"); strict_1.default.equal(cfg.companyBrainContextSearch, "Acme Clinic"); strict_1.default.equal(cfg.companyBrainContextFactsLimit, 12); strict_1.default.equal(cfg.companyBrainContextEventsLimit, 7); @@ -25,17 +29,21 @@ const index_1 = require("../index"); const resolved = (0, index_1.resolveCompanyBrainAccountFromAccountsList)({ accounts: [ { id: "acct_other", name: "Other Clinic" }, - { id: "acct_acme", name: "Acme Clinic", visibility_scope: "account" }, + { id: "acct_acme", name: "Acme Clinic", account_key: "company:acme", visibility_scope: "account" }, ], total: 2, }, { configuredAccountId: "acct_acme", + accountKey: "company:acme", + sourceScope: "customer_accounts", search: "acct_acme", }); strict_1.default.equal(resolved?.accountId, "acct_acme"); strict_1.default.equal(resolved?.account.name, "Acme Clinic"); strict_1.default.equal(resolved?.resolution.source, "company_brain_accounts_list"); strict_1.default.equal(resolved?.resolution.configured_account_id, "acct_acme"); + strict_1.default.equal(resolved?.resolution.account_key, "company:acme"); + strict_1.default.equal(resolved?.resolution.source_scope, "customer_accounts"); } { const resolved = (0, index_1.resolveCompanyBrainAccountFromAccountsList)({ @@ -49,6 +57,21 @@ const index_1 = require("../index"); }); strict_1.default.equal(resolved, null); } +{ + const resolved = (0, index_1.resolveCompanyBrainAccountFromAccountsList)({ + accounts: [ + { id: "acct_internal", name: "ElectricSheep Internal", account_key: "company:electricsheep-internal" }, + { id: "acct_customer", name: "Customer Account", account_key: "company:customer" }, + ], + total: 2, + }, { + accountKey: "company:electricsheep-internal", + sourceScope: "internal", + }); + strict_1.default.equal(resolved?.accountId, "acct_internal"); + strict_1.default.equal(resolved?.resolution.account_key, "company:electricsheep-internal"); + strict_1.default.equal(resolved?.resolution.source_scope, "internal"); +} { const rendered = (0, index_1.formatCompanyBrainContext)({ account: { diff --git a/dist/__tests__/company-brain-context-format.test.js.map b/dist/__tests__/company-brain-context-format.test.js.map index 0932629..73e6b8f 100644 --- a/dist/__tests__/company-brain-context-format.test.js.map +++ b/dist/__tests__/company-brain-context-format.test.js.map @@ -1 +1 @@ -{"version":3,"file":"company-brain-context-format.test.js","sourceRoot":"","sources":["../../src/__tests__/company-brain-context-format.test.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"company-brain-context-format.test.js","sourceRoot":"","sources":["../../src/__tests__/company-brain-context-format.test.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/__tests__/company-brain-tools.test.js b/dist/__tests__/company-brain-tools.test.js index 11723c0..d911bc9 100644 --- a/dist/__tests__/company-brain-tools.test.js +++ b/dist/__tests__/company-brain-tools.test.js @@ -9,6 +9,18 @@ const index_1 = require("../index"); const cfg = (0, index_1.parseEvaMemoryConfig)({ ownerId: "company-acme" }); strict_1.default.equal(cfg.ownerId, "company-acme"); } +{ + const cfg = (0, index_1.parseEvaMemoryConfig)({ + companyBrainContextAccountKey: "company:electricsheep-internal", + companyBrainContextSourceScope: "internal", + }); + strict_1.default.equal(cfg.companyBrainContextAccountKey, "company:electricsheep-internal"); + strict_1.default.equal(cfg.companyBrainContextSourceScope, "internal"); +} +{ + const cfg = (0, index_1.parseEvaMemoryConfig)({ companyBrainContextSourceScope: "wrong" }); + strict_1.default.equal(cfg.companyBrainContextSourceScope, ""); +} { const rendered = (0, index_1.formatCompanyBrainToolResult)("Company Brain query", { ok: true, diff --git a/dist/__tests__/company-brain-tools.test.js.map b/dist/__tests__/company-brain-tools.test.js.map index 388cd10..51e4c55 100644 --- a/dist/__tests__/company-brain-tools.test.js.map +++ b/dist/__tests__/company-brain-tools.test.js.map @@ -1 +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 +{"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,GAAG,GAAG,IAAA,4BAAoB,EAAC;QAC/B,6BAA6B,EAAE,gCAAgC;QAC/D,8BAA8B,EAAE,UAAU;KAC3C,CAAC,CAAC;IACH,gBAAM,CAAC,KAAK,CAAC,GAAG,CAAC,6BAA6B,EAAE,gCAAgC,CAAC,CAAC;IAClF,gBAAM,CAAC,KAAK,CAAC,GAAG,CAAC,8BAA8B,EAAE,UAAU,CAAC,CAAC;AAC/D,CAAC;AAED,CAAC;IACC,MAAM,GAAG,GAAG,IAAA,4BAAoB,EAAC,EAAE,8BAA8B,EAAE,OAAO,EAAE,CAAC,CAAC;IAC9E,gBAAM,CAAC,KAAK,CAAC,GAAG,CAAC,8BAA8B,EAAE,EAAE,CAAC,CAAC;AACvD,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/__tests__/plugin-manifest-parity.test.js b/dist/__tests__/plugin-manifest-parity.test.js index ae8805e..eb186aa 100644 --- a/dist/__tests__/plugin-manifest-parity.test.js +++ b/dist/__tests__/plugin-manifest-parity.test.js @@ -14,6 +14,8 @@ for (const property of [ "ownerIdMode", "companyBrainContextMode", "companyBrainContextAccountId", + "companyBrainContextAccountKey", + "companyBrainContextSourceScope", "companyBrainContextSearch", "companyBrainContextFactsLimit", "companyBrainContextEventsLimit", diff --git a/dist/__tests__/plugin-manifest-parity.test.js.map b/dist/__tests__/plugin-manifest-parity.test.js.map index 653770e..872d8bb 100644 --- a/dist/__tests__/plugin-manifest-parity.test.js.map +++ b/dist/__tests__/plugin-manifest-parity.test.js.map @@ -1 +1 @@ -{"version":3,"file":"plugin-manifest-parity.test.js","sourceRoot":"","sources":["../../src/__tests__/plugin-manifest-parity.test.ts"],"names":[],"mappings":";;;;;AAAA,gEAAwC;AACxC,sDAAyB;AAEzB,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAE,CAAC,YAAY,CAAC,sBAAsB,EAAE,MAAM,CAAC,CAAC,CAAC;AACjF,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAE,CAAC,YAAY,CAAC,2BAA2B,EAAE,MAAM,CAAC,CAAC,CAAC;AAEtF,gBAAM,CAAC,SAAS,CAAC,YAAY,CAAC,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC;AACzD,gBAAM,CAAC,SAAS,CAAC,YAAY,CAAC,YAAY,EAAE,YAAY,CAAC,YAAY,CAAC,CAAC;AACvE,gBAAM,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;AAE5C,KAAK,MAAM,QAAQ,IAAI;IACrB,aAAa;IACb,yBAAyB;IACzB,8BAA8B;IAC9B,2BAA2B;IAC3B,+BAA+B;IAC/B,gCAAgC;IAChC,6BAA6B;CAC9B,EAAE,CAAC;IACF,gBAAM,CAAC,EAAE,CACP,YAAY,CAAC,YAAY,CAAC,UAAU,CAAC,QAAQ,CAAC,EAC9C,4BAA4B,QAAQ,EAAE,CACvC,CAAC;AACJ,CAAC;AAED,gBAAM,CAAC,EAAE,CACP,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAC9C,0CAA0C,CAC3C,CAAC;AAEF,KAAK,MAAM,QAAQ,IAAI;IACrB,sBAAsB;IACtB,sBAAsB;IACtB,oBAAoB;CACrB,EAAE,CAAC;IACF,gBAAM,CAAC,EAAE,CACP,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,EACrC,4BAA4B,QAAQ,EAAE,CACvC,CAAC;AACJ,CAAC;AAED,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC"} \ No newline at end of file +{"version":3,"file":"plugin-manifest-parity.test.js","sourceRoot":"","sources":["../../src/__tests__/plugin-manifest-parity.test.ts"],"names":[],"mappings":";;;;;AAAA,gEAAwC;AACxC,sDAAyB;AAEzB,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAE,CAAC,YAAY,CAAC,sBAAsB,EAAE,MAAM,CAAC,CAAC,CAAC;AACjF,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAE,CAAC,YAAY,CAAC,2BAA2B,EAAE,MAAM,CAAC,CAAC,CAAC;AAEtF,gBAAM,CAAC,SAAS,CAAC,YAAY,CAAC,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC;AACzD,gBAAM,CAAC,SAAS,CAAC,YAAY,CAAC,YAAY,EAAE,YAAY,CAAC,YAAY,CAAC,CAAC;AACvE,gBAAM,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;AAE5C,KAAK,MAAM,QAAQ,IAAI;IACrB,aAAa;IACb,yBAAyB;IACzB,8BAA8B;IAC9B,+BAA+B;IAC/B,gCAAgC;IAChC,2BAA2B;IAC3B,+BAA+B;IAC/B,gCAAgC;IAChC,6BAA6B;CAC9B,EAAE,CAAC;IACF,gBAAM,CAAC,EAAE,CACP,YAAY,CAAC,YAAY,CAAC,UAAU,CAAC,QAAQ,CAAC,EAC9C,4BAA4B,QAAQ,EAAE,CACvC,CAAC;AACJ,CAAC;AAED,gBAAM,CAAC,EAAE,CACP,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAC9C,0CAA0C,CAC3C,CAAC;AAEF,KAAK,MAAM,QAAQ,IAAI;IACrB,sBAAsB;IACtB,sBAAsB;IACtB,oBAAoB;CACrB,EAAE,CAAC;IACF,gBAAM,CAAC,EAAE,CACP,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,EACrC,4BAA4B,QAAQ,EAAE,CACvC,CAAC;AACJ,CAAC;AAED,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC"} \ No newline at end of file diff --git a/dist/index.d.ts b/dist/index.d.ts index dca8674..2a3e66b 100644 --- a/dist/index.d.ts +++ b/dist/index.d.ts @@ -25,6 +25,7 @@ */ import type { OpenClawPluginApi } from "openclaw/plugin-sdk"; export type OwnerContextMode = "server_resolved" | "configured"; +type CompanyBrainSourceScope = "" | "internal" | "customer_accounts"; interface EvaMemoryConfig { cortexUrl: string; apiKey: string; @@ -51,6 +52,8 @@ interface EvaMemoryConfig { injectionPersonalThreshold: number; companyBrainContextMode: "off" | "auto"; companyBrainContextAccountId: string; + companyBrainContextAccountKey: string; + companyBrainContextSourceScope: CompanyBrainSourceScope; companyBrainContextSearch: string; companyBrainContextFactsLimit: number; companyBrainContextEventsLimit: number; @@ -106,6 +109,8 @@ export declare function formatCompanyBrainContext(payload: CompanyBrainContextPa declare function parseConfig(raw: unknown): EvaMemoryConfig; export declare function resolveCompanyBrainAccountFromAccountsList(accountsResult: CompanyBrainToolResult | null, options?: { configuredAccountId?: string; + accountKey?: string; + sourceScope?: CompanyBrainSourceScope; search?: string; }): CompanyBrainResolvedAccount | null; /** Session risk mode for dynamic threshold selection. */ @@ -239,6 +244,15 @@ declare const cortexPlugin: { type: string; description: string; }; + companyBrainContextAccountKey: { + type: string; + description: string; + }; + companyBrainContextSourceScope: { + type: string; + enum: string[]; + description: string; + }; companyBrainContextSearch: { type: string; description: string; diff --git a/dist/index.d.ts.map b/dist/index.d.ts.map index de9f759..3be7135 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":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAGH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAc7D,MAAM,MAAM,gBAAgB,GAAG,iBAAiB,GAAG,YAAY,CAAC;AAEhE,UAAU,eAAe;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,gBAAgB,CAAC;IAC9B,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,UAAU,EAAE,OAAO,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,eAAe,EAAE,IAAI,GAAG,IAAI,CAAC;IAC7B,aAAa,EAAE,OAAO,CAAC;IACvB,aAAa,EAAE,OAAO,CAAC;IACvB,KAAK,EAAE,OAAO,CAAC;IAEf,wBAAwB,EAAE,OAAO,CAAC;IAClC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,0BAA0B,EAAE,MAAM,CAAC;IACnC,2BAA2B,EAAE,MAAM,CAAC;IACpC,0BAA0B,EAAE,MAAM,CAAC;IACnC,uBAAuB,EAAE,KAAK,GAAG,MAAM,CAAC;IACxC,4BAA4B,EAAE,MAAM,CAAC;IACrC,yBAAyB,EAAE,MAAM,CAAC;IAClC,6BAA6B,EAAE,MAAM,CAAC;IACtC,8BAA8B,EAAE,MAAM,CAAC;IACvC,2BAA2B,EAAE,MAAM,CAAC;CACrC;AAED,UAAU,aAAa;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE;QACT,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAkBD,KAAK,sBAAsB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AACtD,KAAK,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEhD,UAAU,0BAA0B;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACzC,KAAK,CAAC,EAAE,sBAAsB,GAAG,IAAI,CAAC;IACtC,eAAe,CAAC,EAAE,sBAAsB,GAAG,IAAI,CAAC;IAChD,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CAC7C;AAED,MAAM,WAAW,2BAA2B;IAC1C,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACrC;AAED,UAAU,aAAa;IACrB,IAAI,EAAE,aAAa,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAYD,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,gBAAgB,GAAG,OAAO,CAEjG;AAED,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACnE,IAAI,EAAE,CAAC,EACP,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,gBAAgB,GAC5B,CAAC,GAAG;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,CAG3B;AAQD,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,sBAAsB,GAAG,IAAI,GAAG,MAAM,CAKzG;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,GAAG,IAAI,GAAG,MAAM,CAK7F;AAoHD,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,0BAA0B,EACnC,OAAO,GAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAO,GAClC,MAAM,CAkCR;AAQD,iBAAS,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,eAAe,CAwElD;AA0aD,wBAAgB,0CAA0C,CACxD,cAAc,EAAE,sBAAsB,GAAG,IAAI,EAC7C,OAAO,GAAE;IACP,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;CACZ,GACL,2BAA2B,GAAG,IAAI,CAwBpC;AAmhBD,yDAAyD;AACzD,KAAK,aAAa,GAAG,UAAU,GAAG,WAAW,GAAG,UAAU,CAAC;AAW3D,uEAAuE;AACvE,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,OAAO,GAAG,eAAe,CAElE;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,aAAa,CAQrE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,aAAa,EAAE,EACtB,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,IAAI,CAAC,eAAe,EAAE,oBAAoB,GAAG,4BAA4B,GAAG,6BAA6B,GAAG,4BAA4B,CAAC,EAC9I,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GAC1B,aAAa,EAAE,CAqEjB;AA8ED,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,aAAa,EAAE,EACtB,OAAO,EAAE,IAAI,CAAC,eAAe,EAAE,eAAe,GAAG,eAAe,GAAG,OAAO,CAAC,GAC1E,aAAa,EAAE,CA2DjB;AA6GD,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,aAAa,EAAE,EACtB,QAAQ,EAAE,MAAM,EAChB,UAAU,SAAe,EACzB,QAAQ,SAAI,EACZ,QAAQ,SAAO,EACf,OAAO,GAAE,IAAI,CAAC,eAAe,EAAE,iBAAiB,GAAG,eAAe,GAAG,eAAe,GAAG,OAAO,CAK7F,GACA,MAAM,CAIR;AAkDD,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAkDF,iBAAiB;CA45BhC,CAAC;AAEF,eAAe,YAAY,CAAC"} \ 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 ca8eac7..f6999ca 100644 --- a/dist/index.js +++ b/dist/index.js @@ -247,6 +247,8 @@ function parseConfig(raw) { injectionPersonalThreshold: 0.45, companyBrainContextMode: "off", companyBrainContextAccountId: "", + companyBrainContextAccountKey: "", + companyBrainContextSourceScope: "", companyBrainContextSearch: "", companyBrainContextFactsLimit: 25, companyBrainContextEventsLimit: 10, @@ -261,6 +263,9 @@ function parseConfig(raw) { : defaults.retrievalMode; const parsedInjectionFormat = c.injectionFormat === "v2" ? "v2" : defaults.injectionFormat; const parsedCompanyBrainContextMode = c.companyBrainContextMode === "auto" ? "auto" : defaults.companyBrainContextMode; + const parsedCompanyBrainContextSourceScope = c.companyBrainContextSourceScope === "internal" || c.companyBrainContextSourceScope === "customer_accounts" + ? c.companyBrainContextSourceScope + : defaults.companyBrainContextSourceScope; const parsedOwnerIdMode = c.ownerIdMode === "configured" ? "configured" : defaults.ownerIdMode; return { cortexUrl: typeof c.cortexUrl === "string" ? resolveEnv(c.cortexUrl) : defaults.cortexUrl, @@ -288,6 +293,8 @@ function parseConfig(raw) { injectionPersonalThreshold: typeof c.injectionPersonalThreshold === "number" ? c.injectionPersonalThreshold : defaults.injectionPersonalThreshold, companyBrainContextMode: parsedCompanyBrainContextMode, companyBrainContextAccountId: typeof c.companyBrainContextAccountId === "string" ? c.companyBrainContextAccountId.trim() : defaults.companyBrainContextAccountId, + companyBrainContextAccountKey: typeof c.companyBrainContextAccountKey === "string" ? c.companyBrainContextAccountKey.trim() : defaults.companyBrainContextAccountKey, + companyBrainContextSourceScope: parsedCompanyBrainContextSourceScope, companyBrainContextSearch: typeof c.companyBrainContextSearch === "string" ? c.companyBrainContextSearch.trim() : defaults.companyBrainContextSearch, companyBrainContextFactsLimit: clampNumber(c.companyBrainContextFactsLimit, defaults.companyBrainContextFactsLimit, 1, 200), companyBrainContextEventsLimit: clampNumber(c.companyBrainContextEventsLimit, defaults.companyBrainContextEventsLimit, 1, 50), @@ -523,6 +530,8 @@ class CortexClient { const params = new URLSearchParams(); addOwnerParam(params, this.ownerId, this.ownerIdMode); addOptionalParam(params, "search", options.search); + addOptionalParam(params, "source_scope", options.sourceScope); + addOptionalParam(params, "account_key", options.accountKey); 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))); @@ -589,7 +598,7 @@ const COMPANY_BRAIN_CONTEXT_KEYWORDS = /\b(company brain|customer|client|account function shouldAttemptCompanyBrainContext(prompt, cfg) { if (cfg.companyBrainContextMode !== "auto") return false; - if (cfg.companyBrainContextAccountId || cfg.companyBrainContextSearch) + if (cfg.companyBrainContextAccountId || cfg.companyBrainContextAccountKey || cfg.companyBrainContextSearch) return true; return COMPANY_BRAIN_CONTEXT_KEYWORDS.test(prompt ?? ""); } @@ -604,12 +613,19 @@ function normalizeCompanyBrainAccounts(result) { function companyBrainAccountId(account) { return firstString(account, ["id", "account_id", "customer_id"]); } +function companyBrainAccountKey(account) { + return firstString(account, ["account_key", "external_id", "source_external_id", "customer_key"]); +} function resolveCompanyBrainAccountFromAccountsList(accountsResult, options = {}) { const accounts = normalizeCompanyBrainAccounts(accountsResult); const configuredAccountId = options.configuredAccountId?.trim(); - const candidates = configuredAccountId - ? accounts.filter(account => companyBrainAccountId(account) === configuredAccountId) + const accountKey = options.accountKey?.trim(); + let candidates = accountKey + ? accounts.filter(account => companyBrainAccountKey(account) === accountKey) : accounts; + if (configuredAccountId) { + candidates = candidates.filter(account => companyBrainAccountId(account) === configuredAccountId); + } if (candidates.length !== 1) return null; const account = candidates[0]; @@ -623,22 +639,28 @@ function resolveCompanyBrainAccountFromAccountsList(accountsResult, options = {} source: "company_brain_accounts_list", search: options.search, configured_account_id: configuredAccountId || undefined, + account_key: accountKey || undefined, + source_scope: options.sourceScope || undefined, total: accountsResult?.total, resolved_count: candidates.length, }, }; } async function resolveCompanyBrainAccountForContext(client, cfg, prompt) { + const hasStableResolver = Boolean(cfg.companyBrainContextAccountId || cfg.companyBrainContextAccountKey); const search = cfg.companyBrainContextSearch || - cfg.companyBrainContextAccountId || - (prompt ?? "").slice(0, 240); + (!hasStableResolver ? (prompt ?? "").slice(0, 240) : ""); const accountsResult = await client.listCompanyBrainAccounts({ search, - limit: cfg.companyBrainContextAccountId ? 20 : 2, + sourceScope: cfg.companyBrainContextSourceScope, + accountKey: cfg.companyBrainContextAccountKey, + limit: cfg.companyBrainContextAccountId || cfg.companyBrainContextAccountKey ? 20 : 2, offset: 0, }); return resolveCompanyBrainAccountFromAccountsList(accountsResult, { configuredAccountId: cfg.companyBrainContextAccountId, + accountKey: cfg.companyBrainContextAccountKey, + sourceScope: cfg.companyBrainContextSourceScope, search, }); } @@ -1511,6 +1533,8 @@ const cortexPlugin = { injectionPersonalThreshold: { type: "number", description: "Min score in personal/casual mode (default: 0.45)" }, companyBrainContextMode: { type: "string", enum: ["off", "auto"], description: "Opt-in Company Brain context injection mode. Default: off." }, companyBrainContextAccountId: { type: "string", description: "Stable Company Brain account ID to inject when companyBrainContextMode is auto." }, + companyBrainContextAccountKey: { type: "string", description: "Stable business account key to resolve when companyBrainContextMode is auto, for example company:electricsheep-internal." }, + companyBrainContextSourceScope: { type: "string", enum: ["internal", "customer_accounts"], description: "Optional Company Brain source scope filter for context injection." }, companyBrainContextSearch: { type: "string", description: "Account search text used with company_brain_accounts_list when no account ID is configured." }, companyBrainContextFactsLimit: { type: "number", description: "Max account facts to request for Company Brain context (default: 25)." }, companyBrainContextEventsLimit: { type: "number", description: "Max action-readiness events to request for Company Brain context (default: 10)." }, @@ -1899,15 +1923,22 @@ const cortexPlugin = { 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" })), + source_scope: typebox_1.Type.Optional(typebox_1.Type.Union([ + typebox_1.Type.Literal("internal"), + typebox_1.Type.Literal("customer_accounts"), + ], { description: "Optional Company Brain account source scope filter" })), + account_key: typebox_1.Type.Optional(typebox_1.Type.String({ description: "Optional stable business account key, for example company:electricsheep-internal" })), 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; + const { search, source_scope, account_key, workspace_id, limit, offset } = params; try { const result = await client.listCompanyBrainAccounts({ search, + sourceScope: source_scope, + accountKey: account_key, workspaceId: workspace_id, limit, offset, diff --git a/dist/index.js.map b/dist/index.js.map index 226e299..7823aeb 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 91049ac..d2d2b09 100644 --- a/dist/openclaw.plugin.json +++ b/dist/openclaw.plugin.json @@ -118,6 +118,18 @@ "type": "string", "description": "Stable Company Brain account ID to inject when companyBrainContextMode is auto" }, + "companyBrainContextAccountKey": { + "type": "string", + "description": "Stable business account key to resolve when companyBrainContextMode is auto, for example company:electricsheep-internal" + }, + "companyBrainContextSourceScope": { + "type": "string", + "enum": [ + "internal", + "customer_accounts" + ], + "description": "Optional Company Brain source scope filter for context injection" + }, "companyBrainContextSearch": { "type": "string", "description": "Account search text used with company_brain_accounts_list when no account ID is configured" diff --git a/docs/company-brain-tools.md b/docs/company-brain-tools.md index 9c3780d..40ce54d 100644 --- a/docs/company-brain-tools.md +++ b/docs/company-brain-tools.md @@ -25,20 +25,37 @@ 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. +or query tools. The account-list tool accepts optional `source_scope` and +`account_key` filters so internal beta context can resolve +`source_scope=internal` plus `account_key=company:electricsheep-internal` +without scanning the customer-account directory. Do not flatten Company Brain +account context into generic personal memory. Treat `insufficient_evidence` as a +successful honest response, not as a tool failure. ## Account-Scoped Context Injection Company Brain context injection is opt-in. Set `companyBrainContextMode` to -`auto` and either provide `companyBrainContextAccountId` or -`companyBrainContextSearch`. If no account ID is configured, the plugin uses -the same account-list implementation path as `company_brain_accounts_list` and +`auto` and provide one of `companyBrainContextAccountId`, +`companyBrainContextAccountKey`, or `companyBrainContextSearch`. Use +`companyBrainContextSourceScope` to restrict context to `internal` or +`customer_accounts`. If no account ID/key is configured, the plugin uses the +same account-list implementation path as `company_brain_accounts_list` and injects context only when it resolves one account. When an account ID is configured, the plugin still resolves it through the account-list path and injects only if the returned account list contains that exact stable ID. +When an account key is configured, the plugin resolves the key through the +account-list path and injects only if exactly one returned account matches it. + +ElectricSheep internal beta context should use: + +```jsonc +{ + "companyBrainContextMode": "auto", + "companyBrainContextSourceScope": "internal", + "companyBrainContextAccountKey": "company:electricsheep-internal" +} +``` Injected Company Brain context uses a distinct `` block, not ``. It is account-scoped business context and @@ -63,6 +80,8 @@ Run the live canary against a local or staged Cortex endpoint: CORTEX_URL=http://localhost:8000 \ CORTEX_API_KEY=... \ CORTEX_OWNER_ID=company-acme \ +COMPANY_BRAIN_SOURCE_SCOPE=internal \ +COMPANY_BRAIN_ACCOUNT_KEY=company:electricsheep-internal \ COMPANY_BRAIN_ACCOUNT_ID=optional-account-id \ npm run company-brain:canary ``` diff --git a/openclaw.plugin.json b/openclaw.plugin.json index c4ddf5b..b46fe32 100644 --- a/openclaw.plugin.json +++ b/openclaw.plugin.json @@ -118,6 +118,18 @@ "type": "string", "description": "Stable Company Brain account ID to inject when companyBrainContextMode is auto" }, + "companyBrainContextAccountKey": { + "type": "string", + "description": "Stable business account key to resolve when companyBrainContextMode is auto, for example company:electricsheep-internal" + }, + "companyBrainContextSourceScope": { + "type": "string", + "enum": [ + "internal", + "customer_accounts" + ], + "description": "Optional Company Brain source scope filter for context injection" + }, "companyBrainContextSearch": { "type": "string", "description": "Account search text used with company_brain_accounts_list when no account ID is configured" diff --git a/scripts/company-brain-canary.mjs b/scripts/company-brain-canary.mjs index ab49e22..22c7ad4 100755 --- a/scripts/company-brain-canary.mjs +++ b/scripts/company-brain-canary.mjs @@ -4,6 +4,8 @@ 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 || ""; +const accountKey = process.env.COMPANY_BRAIN_ACCOUNT_KEY || ""; +const sourceScope = process.env.COMPANY_BRAIN_SOURCE_SCOPE || ""; function headers() { const h = { "Content-Type": "application/json" }; @@ -61,15 +63,23 @@ async function request(stage, path, options = {}) { async function main() { const stages = []; const accountParams = withOwner(new URLSearchParams({ limit: "5", offset: "0" })); + if (accountKey) accountParams.set("account_key", accountKey); + if (sourceScope) accountParams.set("source_scope", sourceScope); const accounts = await request("account_resolution", `/api/v1/company-brain/accounts?${accountParams}`); stages.push({ stage: "account_resolution", status: "passed", total: accounts?.total ?? 0, + account_key: accountKey || undefined, + source_scope: sourceScope || undefined, }); if (!accountId) { - accountId = accounts?.accounts?.[0]?.id || ""; + const listedAccounts = Array.isArray(accounts?.accounts) ? accounts.accounts : []; + const matchingAccount = accountKey + ? listedAccounts.find((account) => account?.account_key === accountKey || account?.external_id === accountKey) + : listedAccounts[0]; + accountId = matchingAccount?.id || matchingAccount?.account_id || ""; } if (!accountId) { console.log(JSON.stringify({ ok: true, stages, note: "no accounts found; account-list route/auth smoke passed" }, null, 2)); diff --git a/src/__tests__/company-brain-context-format.test.ts b/src/__tests__/company-brain-context-format.test.ts index e599b98..c176eca 100644 --- a/src/__tests__/company-brain-context-format.test.ts +++ b/src/__tests__/company-brain-context-format.test.ts @@ -9,6 +9,8 @@ import { const cfg = parseEvaMemoryConfig({ companyBrainContextMode: "auto", companyBrainContextAccountId: "acct_acme", + companyBrainContextAccountKey: "company:acme", + companyBrainContextSourceScope: "customer_accounts", companyBrainContextSearch: "Acme Clinic", companyBrainContextFactsLimit: 12, companyBrainContextEventsLimit: 7, @@ -17,6 +19,8 @@ import { assert.equal(cfg.companyBrainContextMode, "auto"); assert.equal(cfg.companyBrainContextAccountId, "acct_acme"); + assert.equal(cfg.companyBrainContextAccountKey, "company:acme"); + assert.equal(cfg.companyBrainContextSourceScope, "customer_accounts"); assert.equal(cfg.companyBrainContextSearch, "Acme Clinic"); assert.equal(cfg.companyBrainContextFactsLimit, 12); assert.equal(cfg.companyBrainContextEventsLimit, 7); @@ -28,12 +32,14 @@ import { { accounts: [ { id: "acct_other", name: "Other Clinic" }, - { id: "acct_acme", name: "Acme Clinic", visibility_scope: "account" }, + { id: "acct_acme", name: "Acme Clinic", account_key: "company:acme", visibility_scope: "account" }, ], total: 2, }, { configuredAccountId: "acct_acme", + accountKey: "company:acme", + sourceScope: "customer_accounts", search: "acct_acme", }, ); @@ -42,6 +48,8 @@ import { assert.equal(resolved?.account.name, "Acme Clinic"); assert.equal(resolved?.resolution.source, "company_brain_accounts_list"); assert.equal(resolved?.resolution.configured_account_id, "acct_acme"); + assert.equal(resolved?.resolution.account_key, "company:acme"); + assert.equal(resolved?.resolution.source_scope, "customer_accounts"); } { @@ -61,6 +69,26 @@ import { assert.equal(resolved, null); } +{ + const resolved = resolveCompanyBrainAccountFromAccountsList( + { + accounts: [ + { id: "acct_internal", name: "ElectricSheep Internal", account_key: "company:electricsheep-internal" }, + { id: "acct_customer", name: "Customer Account", account_key: "company:customer" }, + ], + total: 2, + }, + { + accountKey: "company:electricsheep-internal", + sourceScope: "internal", + }, + ); + + assert.equal(resolved?.accountId, "acct_internal"); + assert.equal(resolved?.resolution.account_key, "company:electricsheep-internal"); + assert.equal(resolved?.resolution.source_scope, "internal"); +} + { const rendered = formatCompanyBrainContext({ account: { diff --git a/src/__tests__/company-brain-tools.test.ts b/src/__tests__/company-brain-tools.test.ts index a259683..1359964 100644 --- a/src/__tests__/company-brain-tools.test.ts +++ b/src/__tests__/company-brain-tools.test.ts @@ -6,6 +6,20 @@ import { formatCompanyBrainToolResult, parseEvaMemoryConfig } from "../index"; assert.equal(cfg.ownerId, "company-acme"); } +{ + const cfg = parseEvaMemoryConfig({ + companyBrainContextAccountKey: "company:electricsheep-internal", + companyBrainContextSourceScope: "internal", + }); + assert.equal(cfg.companyBrainContextAccountKey, "company:electricsheep-internal"); + assert.equal(cfg.companyBrainContextSourceScope, "internal"); +} + +{ + const cfg = parseEvaMemoryConfig({ companyBrainContextSourceScope: "wrong" }); + assert.equal(cfg.companyBrainContextSourceScope, ""); +} + { const rendered = formatCompanyBrainToolResult("Company Brain query", { ok: true, diff --git a/src/__tests__/plugin-manifest-parity.test.ts b/src/__tests__/plugin-manifest-parity.test.ts index 7d51c6e..c009cdf 100644 --- a/src/__tests__/plugin-manifest-parity.test.ts +++ b/src/__tests__/plugin-manifest-parity.test.ts @@ -12,6 +12,8 @@ for (const property of [ "ownerIdMode", "companyBrainContextMode", "companyBrainContextAccountId", + "companyBrainContextAccountKey", + "companyBrainContextSourceScope", "companyBrainContextSearch", "companyBrainContextFactsLimit", "companyBrainContextEventsLimit", diff --git a/src/index.ts b/src/index.ts index b26a5a7..82250c7 100644 --- a/src/index.ts +++ b/src/index.ts @@ -40,6 +40,7 @@ try { // --- Types --- export type OwnerContextMode = "server_resolved" | "configured"; +type CompanyBrainSourceScope = "" | "internal" | "customer_accounts"; interface EvaMemoryConfig { cortexUrl: string; @@ -68,6 +69,8 @@ interface EvaMemoryConfig { injectionPersonalThreshold: number; // default 0.45 companyBrainContextMode: "off" | "auto"; companyBrainContextAccountId: string; + companyBrainContextAccountKey: string; + companyBrainContextSourceScope: CompanyBrainSourceScope; companyBrainContextSearch: string; companyBrainContextFactsLimit: number; companyBrainContextEventsLimit: number; @@ -362,6 +365,8 @@ function parseConfig(raw: unknown): EvaMemoryConfig { injectionPersonalThreshold: 0.45, companyBrainContextMode: "off", companyBrainContextAccountId: "", + companyBrainContextAccountKey: "", + companyBrainContextSourceScope: "", companyBrainContextSearch: "", companyBrainContextFactsLimit: 25, companyBrainContextEventsLimit: 10, @@ -375,6 +380,10 @@ function parseConfig(raw: unknown): EvaMemoryConfig { : defaults.retrievalMode; const parsedInjectionFormat = c.injectionFormat === "v2" ? "v2" : defaults.injectionFormat; const parsedCompanyBrainContextMode = c.companyBrainContextMode === "auto" ? "auto" : defaults.companyBrainContextMode; + const parsedCompanyBrainContextSourceScope: CompanyBrainSourceScope = + c.companyBrainContextSourceScope === "internal" || c.companyBrainContextSourceScope === "customer_accounts" + ? c.companyBrainContextSourceScope + : defaults.companyBrainContextSourceScope; const parsedOwnerIdMode = c.ownerIdMode === "configured" ? "configured" : defaults.ownerIdMode; return { cortexUrl: typeof c.cortexUrl === "string" ? resolveEnv(c.cortexUrl) : defaults.cortexUrl, @@ -402,6 +411,8 @@ function parseConfig(raw: unknown): EvaMemoryConfig { injectionPersonalThreshold: typeof c.injectionPersonalThreshold === "number" ? c.injectionPersonalThreshold : defaults.injectionPersonalThreshold, companyBrainContextMode: parsedCompanyBrainContextMode, companyBrainContextAccountId: typeof c.companyBrainContextAccountId === "string" ? c.companyBrainContextAccountId.trim() : defaults.companyBrainContextAccountId, + companyBrainContextAccountKey: typeof c.companyBrainContextAccountKey === "string" ? c.companyBrainContextAccountKey.trim() : defaults.companyBrainContextAccountKey, + companyBrainContextSourceScope: parsedCompanyBrainContextSourceScope, companyBrainContextSearch: typeof c.companyBrainContextSearch === "string" ? c.companyBrainContextSearch.trim() : defaults.companyBrainContextSearch, companyBrainContextFactsLimit: clampNumber(c.companyBrainContextFactsLimit, defaults.companyBrainContextFactsLimit, 1, 200), companyBrainContextEventsLimit: clampNumber(c.companyBrainContextEventsLimit, defaults.companyBrainContextEventsLimit, 1, 50), @@ -718,6 +729,8 @@ class CortexClient { async listCompanyBrainAccounts(options: { search?: string; + sourceScope?: CompanyBrainSourceScope; + accountKey?: string; workspaceId?: string; limit?: number; offset?: number; @@ -725,6 +738,8 @@ class CortexClient { const params = new URLSearchParams(); addOwnerParam(params, this.ownerId, this.ownerIdMode); addOptionalParam(params, "search", options.search); + addOptionalParam(params, "source_scope", options.sourceScope); + addOptionalParam(params, "account_key", options.accountKey); 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))); @@ -817,7 +832,7 @@ const COMPANY_BRAIN_CONTEXT_KEYWORDS = /\b(company brain|customer|client|account function shouldAttemptCompanyBrainContext(prompt: string | undefined, cfg: EvaMemoryConfig): boolean { if (cfg.companyBrainContextMode !== "auto") return false; - if (cfg.companyBrainContextAccountId || cfg.companyBrainContextSearch) return true; + if (cfg.companyBrainContextAccountId || cfg.companyBrainContextAccountKey || cfg.companyBrainContextSearch) return true; return COMPANY_BRAIN_CONTEXT_KEYWORDS.test(prompt ?? ""); } @@ -833,18 +848,28 @@ function companyBrainAccountId(account: Record): string { return firstString(account, ["id", "account_id", "customer_id"]); } +function companyBrainAccountKey(account: Record): string { + return firstString(account, ["account_key", "external_id", "source_external_id", "customer_key"]); +} + export function resolveCompanyBrainAccountFromAccountsList( accountsResult: CompanyBrainToolResult | null, options: { configuredAccountId?: string; + accountKey?: string; + sourceScope?: CompanyBrainSourceScope; search?: string; } = {}, ): CompanyBrainResolvedAccount | null { const accounts = normalizeCompanyBrainAccounts(accountsResult); const configuredAccountId = options.configuredAccountId?.trim(); - const candidates = configuredAccountId - ? accounts.filter(account => companyBrainAccountId(account) === configuredAccountId) + const accountKey = options.accountKey?.trim(); + let candidates = accountKey + ? accounts.filter(account => companyBrainAccountKey(account) === accountKey) : accounts; + if (configuredAccountId) { + candidates = candidates.filter(account => companyBrainAccountId(account) === configuredAccountId); + } if (candidates.length !== 1) return null; @@ -859,6 +884,8 @@ export function resolveCompanyBrainAccountFromAccountsList( source: "company_brain_accounts_list", search: options.search, configured_account_id: configuredAccountId || undefined, + account_key: accountKey || undefined, + source_scope: options.sourceScope || undefined, total: accountsResult?.total, resolved_count: candidates.length, }, @@ -870,16 +897,20 @@ async function resolveCompanyBrainAccountForContext( cfg: EvaMemoryConfig, prompt: string | undefined, ): Promise { + const hasStableResolver = Boolean(cfg.companyBrainContextAccountId || cfg.companyBrainContextAccountKey); const search = cfg.companyBrainContextSearch || - cfg.companyBrainContextAccountId || - (prompt ?? "").slice(0, 240); + (!hasStableResolver ? (prompt ?? "").slice(0, 240) : ""); const accountsResult = await client.listCompanyBrainAccounts({ search, - limit: cfg.companyBrainContextAccountId ? 20 : 2, + sourceScope: cfg.companyBrainContextSourceScope, + accountKey: cfg.companyBrainContextAccountKey, + limit: cfg.companyBrainContextAccountId || cfg.companyBrainContextAccountKey ? 20 : 2, offset: 0, }); return resolveCompanyBrainAccountFromAccountsList(accountsResult, { configuredAccountId: cfg.companyBrainContextAccountId, + accountKey: cfg.companyBrainContextAccountKey, + sourceScope: cfg.companyBrainContextSourceScope, search, }); } @@ -1868,6 +1899,8 @@ const cortexPlugin = { injectionPersonalThreshold: { type: "number", description: "Min score in personal/casual mode (default: 0.45)" }, companyBrainContextMode: { type: "string", enum: ["off", "auto"], description: "Opt-in Company Brain context injection mode. Default: off." }, companyBrainContextAccountId: { type: "string", description: "Stable Company Brain account ID to inject when companyBrainContextMode is auto." }, + companyBrainContextAccountKey: { type: "string", description: "Stable business account key to resolve when companyBrainContextMode is auto, for example company:electricsheep-internal." }, + companyBrainContextSourceScope: { type: "string", enum: ["internal", "customer_accounts"], description: "Optional Company Brain source scope filter for context injection." }, companyBrainContextSearch: { type: "string", description: "Account search text used with company_brain_accounts_list when no account ID is configured." }, companyBrainContextFactsLimit: { type: "number", description: "Max account facts to request for Company Brain context (default: 25)." }, companyBrainContextEventsLimit: { type: "number", description: "Max action-readiness events to request for Company Brain context (default: 10)." }, @@ -2310,13 +2343,20 @@ const cortexPlugin = { 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" })), + source_scope: Type.Optional(Type.Union([ + Type.Literal("internal"), + Type.Literal("customer_accounts"), + ], { description: "Optional Company Brain account source scope filter" })), + account_key: Type.Optional(Type.String({ description: "Optional stable business account key, for example company:electricsheep-internal" })), 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 { + const { search, source_scope, account_key, workspace_id, limit, offset } = params as { search?: string; + source_scope?: CompanyBrainSourceScope; + account_key?: string; workspace_id?: string; limit?: number; offset?: number; @@ -2324,6 +2364,8 @@ const cortexPlugin = { try { const result = await client.listCompanyBrainAccounts({ search, + sourceScope: source_scope, + accountKey: account_key, workspaceId: workspace_id, limit, offset,