Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions dist/__tests__/plugin-manifest-parity.test.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
export {};
//# sourceMappingURL=plugin-manifest-parity.test.d.ts.map
1 change: 1 addition & 0 deletions dist/__tests__/plugin-manifest-parity.test.d.ts.map

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

25 changes: 25 additions & 0 deletions dist/__tests__/plugin-manifest-parity.test.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions dist/__tests__/plugin-manifest-parity.test.js.map

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

61 changes: 59 additions & 2 deletions dist/openclaw.plugin.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"id": "cortex",
"name": "Memory (Cortex)",
"description": "Cortex memory engine \u2014 retrieval, storage, and lifecycle management for evaOS",
"description": "Cortex memory engine retrieval, storage, and lifecycle management for evaOS",
"version": "1.0.0",
"kind": "memory",
"main": "index.js",
Expand All @@ -15,6 +15,7 @@
"cortex_add_commitment",
"cortex_update_commitment",
"cortex_list_commitments",
"cortex_insights",
"company_brain_accounts_list",
"company_brain_account_brief",
"company_brain_account_timeline",
Expand Down Expand Up @@ -49,7 +50,7 @@
},
"shadowMode": {
"type": "boolean",
"description": "Shadow mode \u2014 capture runs extraction but skips storage (dry-run, default: false)"
"description": "Shadow mode capture runs extraction but skips storage (dry-run, default: false)"
},
"retrievalBudget": {
"type": "number",
Expand All @@ -67,6 +68,62 @@
"thorough"
],
"description": "Retrieval mode for memory search (default: fast)"
},
"injectionFormat": {
"type": "string",
"enum": [
"v1",
"v2"
],
"default": "v1",
"description": "Memory injection format version"
},
"showConflicts": {
"type": "boolean",
"default": true,
"description": "Show conflict markers in v2 format"
},
"showRelations": {
"type": "boolean",
"default": true,
"description": "Show relation hints in v2 format"
},
"dedup": {
"type": "boolean",
"default": true,
"description": "Deduplicate similar memories in v2 format"
},
"companyBrainContextMode": {
"type": "string",
"enum": [
"off",
"auto"
],
"default": "off",
"description": "Opt-in account-scoped Company Brain context injection mode"
},
"companyBrainContextAccountId": {
"type": "string",
"description": "Stable Company Brain account ID to inject when companyBrainContextMode is auto"
},
"companyBrainContextSearch": {
"type": "string",
"description": "Account search text used with company_brain_accounts_list when no account ID is configured"
},
"companyBrainContextFactsLimit": {
"type": "number",
"default": 25,
"description": "Max account facts to request for Company Brain context"
},
"companyBrainContextEventsLimit": {
"type": "number",
"default": 10,
"description": "Max action-readiness events to request for Company Brain context"
},
"companyBrainContextMaxChars": {
"type": "number",
"default": 6000,
"description": "Max characters for the Company Brain context block"
}
},
"required": []
Expand Down
4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@
"main": "dist/index.js",
"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 && node dist/__tests__/company-brain-context-format.test.js",
"build": "tsc && node scripts/sync-dist-manifest.mjs",
"test": "npm run build && node dist/__tests__/memory-context-format.test.js && node dist/__tests__/company-brain-tools.test.js && node dist/__tests__/company-brain-context-format.test.js && node dist/__tests__/plugin-manifest-parity.test.js",
"company-brain:canary": "node scripts/company-brain-canary.mjs",
"prepublishOnly": "npm run build"
},
Expand Down
8 changes: 8 additions & 0 deletions scripts/sync-dist-manifest.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
import { readFileSync, writeFileSync } from "node:fs";

const manifest = JSON.parse(readFileSync("openclaw.plugin.json", "utf8"));

writeFileSync(
"dist/openclaw.plugin.json",
`${JSON.stringify({ ...manifest, main: "index.js" }, null, 2)}\n`,
);
30 changes: 30 additions & 0 deletions src/__tests__/plugin-manifest-parity.test.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
import assert from "node:assert/strict";
import fs from "node:fs";

const rootManifest = JSON.parse(fs.readFileSync("openclaw.plugin.json", "utf8"));
const distManifest = JSON.parse(fs.readFileSync("dist/openclaw.plugin.json", "utf8"));

assert.deepEqual(distManifest.tools, rootManifest.tools);
assert.deepEqual(distManifest.configSchema, rootManifest.configSchema);
assert.equal(distManifest.main, "index.js");

for (const property of [
"companyBrainContextMode",
"companyBrainContextAccountId",
"companyBrainContextSearch",
"companyBrainContextFactsLimit",
"companyBrainContextEventsLimit",
"companyBrainContextMaxChars",
]) {
assert.ok(
distManifest.configSchema.properties[property],
`dist manifest is missing ${property}`,
);
}

assert.ok(
distManifest.tools.includes("cortex_insights"),
"dist manifest is missing cortex_insights",
);

console.log("plugin-manifest-parity tests passed");
Loading