dotmem 0.1.2 → 0.1.3
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 +5 -5
- package/cli.cjs +1334 -41
- package/cli.js +1334 -41
- package/global.cjs +286 -10
- package/global.js +286 -10
- package/index.cjs +296 -20
- package/index.js +296 -20
- package/mcp.cjs +300 -19
- package/mcp.js +300 -19
- package/package.json +1 -1
package/index.js
CHANGED
|
@@ -1662,7 +1662,10 @@ var init_discover = __esm({
|
|
|
1662
1662
|
`);
|
|
1663
1663
|
}
|
|
1664
1664
|
}, "diagnostic");
|
|
1665
|
-
DEFAULT_LIMITS = {
|
|
1665
|
+
DEFAULT_LIMITS = {
|
|
1666
|
+
current: 8,
|
|
1667
|
+
deep: 25
|
|
1668
|
+
};
|
|
1666
1669
|
FIELD_ORDER = [
|
|
1667
1670
|
"id",
|
|
1668
1671
|
"knowledge",
|
|
@@ -5626,6 +5629,267 @@ var init_user_identity = __esm({
|
|
|
5626
5629
|
}
|
|
5627
5630
|
});
|
|
5628
5631
|
|
|
5632
|
+
// core/knowledge/user-language.ts
|
|
5633
|
+
var user_language_exports = {};
|
|
5634
|
+
__export(user_language_exports, {
|
|
5635
|
+
DEFAULT_LANGUAGE: () => DEFAULT_LANGUAGE,
|
|
5636
|
+
DEFAULT_RESPONSE_LANGUAGE: () => DEFAULT_RESPONSE_LANGUAGE,
|
|
5637
|
+
DEFAULT_USER_LANGUAGE: () => DEFAULT_USER_LANGUAGE,
|
|
5638
|
+
LANGUAGE_DEFAULT: () => LANGUAGE_DEFAULT,
|
|
5639
|
+
LANGUAGE_PREFERENCE_FILE_NAME: () => LANGUAGE_PREFERENCE_FILE_NAME,
|
|
5640
|
+
PREFERENCES_FILE_NAME: () => PREFERENCES_FILE_NAME,
|
|
5641
|
+
USER_LANGUAGE_DEFAULT: () => USER_LANGUAGE_DEFAULT,
|
|
5642
|
+
USER_LANGUAGE_FILE_NAME: () => USER_LANGUAGE_FILE_NAME,
|
|
5643
|
+
USER_LANGUAGE_PREFERENCE_FILE_NAME: () => USER_LANGUAGE_PREFERENCE_FILE_NAME,
|
|
5644
|
+
USER_PREFERENCES_FILE_NAME: () => USER_PREFERENCES_FILE_NAME,
|
|
5645
|
+
getLanguagePreference: () => getLanguagePreference,
|
|
5646
|
+
getResponseLanguage: () => getResponseLanguage,
|
|
5647
|
+
getUserLanguage: () => getUserLanguage,
|
|
5648
|
+
getUserLanguagePreference: () => getUserLanguagePreference,
|
|
5649
|
+
isItalian: () => isItalian,
|
|
5650
|
+
language: () => language,
|
|
5651
|
+
languageTag: () => languageTag,
|
|
5652
|
+
loadLanguagePreference: () => loadLanguagePreference,
|
|
5653
|
+
loadUserLanguage: () => loadUserLanguage,
|
|
5654
|
+
loadUserLanguagePreference: () => loadUserLanguagePreference,
|
|
5655
|
+
preferredLanguage: () => preferredLanguage,
|
|
5656
|
+
readUserLanguage: () => readUserLanguage,
|
|
5657
|
+
resolveLanguage: () => resolveLanguage,
|
|
5658
|
+
resolveLanguagePath: () => resolveLanguagePath,
|
|
5659
|
+
resolveLanguagePreference: () => resolveLanguagePreference,
|
|
5660
|
+
resolveLanguagePreferencePath: () => resolveLanguagePreferencePath,
|
|
5661
|
+
resolveResponseLanguage: () => resolveResponseLanguage,
|
|
5662
|
+
resolveUserLanguage: () => resolveUserLanguage,
|
|
5663
|
+
resolveUserLanguagePath: () => resolveUserLanguagePath,
|
|
5664
|
+
resolveUserLanguagePreferencePath: () => resolveUserLanguagePreferencePath,
|
|
5665
|
+
responseLanguage: () => responseLanguage,
|
|
5666
|
+
saveLanguagePreference: () => saveLanguagePreference,
|
|
5667
|
+
saveUserLanguage: () => saveUserLanguage,
|
|
5668
|
+
setUserLanguage: () => setUserLanguage,
|
|
5669
|
+
userLanguage: () => userLanguage,
|
|
5670
|
+
writeUserLanguage: () => writeUserLanguage
|
|
5671
|
+
});
|
|
5672
|
+
function joinPath3(base, child) {
|
|
5673
|
+
const separator3 = process.platform === "win32" ? "\\" : "/";
|
|
5674
|
+
return `${base.replace(/[\\/]+/g, separator3)}${separator3}${child}`;
|
|
5675
|
+
}
|
|
5676
|
+
function resolveUserLanguagePath() {
|
|
5677
|
+
return joinPath3(resolveUserDotMemPath(), USER_LANGUAGE_FILE_NAME);
|
|
5678
|
+
}
|
|
5679
|
+
function resolveUserLanguagePreferencePath() {
|
|
5680
|
+
return resolveUserLanguagePath();
|
|
5681
|
+
}
|
|
5682
|
+
function resolveLanguagePath() {
|
|
5683
|
+
return resolveUserLanguagePath();
|
|
5684
|
+
}
|
|
5685
|
+
function resolveLanguagePreferencePath() {
|
|
5686
|
+
return resolveUserLanguagePath();
|
|
5687
|
+
}
|
|
5688
|
+
function readJsonFile(path) {
|
|
5689
|
+
const fs = getSyncFs();
|
|
5690
|
+
if (!fs) return null;
|
|
5691
|
+
let raw;
|
|
5692
|
+
try {
|
|
5693
|
+
raw = fs.readFileSync(path, "utf8");
|
|
5694
|
+
} catch {
|
|
5695
|
+
return null;
|
|
5696
|
+
}
|
|
5697
|
+
if (typeof raw !== "string") return null;
|
|
5698
|
+
if (raw.charCodeAt(0) === 65279) raw = raw.slice(1);
|
|
5699
|
+
try {
|
|
5700
|
+
return JSON.parse(raw);
|
|
5701
|
+
} catch {
|
|
5702
|
+
return null;
|
|
5703
|
+
}
|
|
5704
|
+
}
|
|
5705
|
+
function extractLanguage(value) {
|
|
5706
|
+
if (value === null || value === void 0) return null;
|
|
5707
|
+
if (typeof value === "string") {
|
|
5708
|
+
const trimmed = value.trim();
|
|
5709
|
+
return trimmed ? trimmed : null;
|
|
5710
|
+
}
|
|
5711
|
+
if (typeof value !== "object" || Array.isArray(value)) return null;
|
|
5712
|
+
for (const key of LANGUAGE_KEYS) {
|
|
5713
|
+
if (Object.prototype.hasOwnProperty.call(value, key)) {
|
|
5714
|
+
const candidate = extractLanguage(value[key]);
|
|
5715
|
+
if (candidate) return candidate;
|
|
5716
|
+
}
|
|
5717
|
+
}
|
|
5718
|
+
for (const containerKey of ["preferences", "user", "agent", "config", "settings", "storage"]) {
|
|
5719
|
+
if (Object.prototype.hasOwnProperty.call(value, containerKey)) {
|
|
5720
|
+
const candidate = extractLanguage(value[containerKey]);
|
|
5721
|
+
if (candidate) return candidate;
|
|
5722
|
+
}
|
|
5723
|
+
}
|
|
5724
|
+
return null;
|
|
5725
|
+
}
|
|
5726
|
+
function loadUserLanguage() {
|
|
5727
|
+
const fs = getSyncFs();
|
|
5728
|
+
const anchor = resolveUserDotMemPath();
|
|
5729
|
+
if (fs) {
|
|
5730
|
+
for (const name of LANGUAGE_FILE_NAMES) {
|
|
5731
|
+
const candidatePath = joinPath3(anchor, name);
|
|
5732
|
+
const parsed = readJsonFile(candidatePath);
|
|
5733
|
+
const language2 = extractLanguage(parsed);
|
|
5734
|
+
if (language2) return language2;
|
|
5735
|
+
}
|
|
5736
|
+
try {
|
|
5737
|
+
const govPath = joinPath3(joinPath3(anchor, "policy"), "identity-governance.json");
|
|
5738
|
+
const gov = readJsonFile(govPath);
|
|
5739
|
+
const language2 = extractLanguage(gov);
|
|
5740
|
+
if (language2) return language2;
|
|
5741
|
+
} catch {
|
|
5742
|
+
}
|
|
5743
|
+
try {
|
|
5744
|
+
const settingsPath = joinPath3(anchor, "dotmem.settings.json");
|
|
5745
|
+
const settings = readJsonFile(settingsPath);
|
|
5746
|
+
const language2 = extractLanguage(settings);
|
|
5747
|
+
if (language2) return language2;
|
|
5748
|
+
} catch {
|
|
5749
|
+
}
|
|
5750
|
+
}
|
|
5751
|
+
const env = globalThis?.process?.env;
|
|
5752
|
+
const envLang = env?.DOTMEM_LANGUAGE || env?.DOTMEM_RESPONSE_LANGUAGE || env?.DOTMEM_USER_LANGUAGE;
|
|
5753
|
+
if (typeof envLang === "string" && envLang.trim()) return envLang.trim();
|
|
5754
|
+
return DEFAULT_USER_LANGUAGE;
|
|
5755
|
+
}
|
|
5756
|
+
function readUserLanguage() {
|
|
5757
|
+
return loadUserLanguage();
|
|
5758
|
+
}
|
|
5759
|
+
function getUserLanguage() {
|
|
5760
|
+
return loadUserLanguage();
|
|
5761
|
+
}
|
|
5762
|
+
function resolveUserLanguage() {
|
|
5763
|
+
return loadUserLanguage();
|
|
5764
|
+
}
|
|
5765
|
+
function resolveLanguage() {
|
|
5766
|
+
return loadUserLanguage();
|
|
5767
|
+
}
|
|
5768
|
+
function loadLanguagePreference() {
|
|
5769
|
+
return loadUserLanguage();
|
|
5770
|
+
}
|
|
5771
|
+
function getLanguagePreference() {
|
|
5772
|
+
return loadUserLanguage();
|
|
5773
|
+
}
|
|
5774
|
+
function resolveLanguagePreference() {
|
|
5775
|
+
return loadUserLanguage();
|
|
5776
|
+
}
|
|
5777
|
+
function loadUserLanguagePreference() {
|
|
5778
|
+
return loadUserLanguage();
|
|
5779
|
+
}
|
|
5780
|
+
function getUserLanguagePreference() {
|
|
5781
|
+
return loadUserLanguage();
|
|
5782
|
+
}
|
|
5783
|
+
function resolveResponseLanguage() {
|
|
5784
|
+
return loadUserLanguage();
|
|
5785
|
+
}
|
|
5786
|
+
function getResponseLanguage() {
|
|
5787
|
+
return loadUserLanguage();
|
|
5788
|
+
}
|
|
5789
|
+
async function setUserLanguage(language2) {
|
|
5790
|
+
const fsMod = await import('fs/promises');
|
|
5791
|
+
const path = resolveUserLanguagePath();
|
|
5792
|
+
const dir = parentStoragePath(path);
|
|
5793
|
+
await fsMod.mkdir(dir, { recursive: true });
|
|
5794
|
+
const payload = { format: "dotmem.language", version: 1, language: String(language2).trim() };
|
|
5795
|
+
const temporary = `${path}.${process.pid}.${Date.now().toString(36)}.tmp`;
|
|
5796
|
+
await fsMod.writeFile(temporary, `${JSON.stringify(payload, null, 2)}
|
|
5797
|
+
`, "utf8");
|
|
5798
|
+
await fsMod.rename(temporary, path);
|
|
5799
|
+
return payload.language;
|
|
5800
|
+
}
|
|
5801
|
+
async function saveUserLanguage(language2) {
|
|
5802
|
+
return setUserLanguage(language2);
|
|
5803
|
+
}
|
|
5804
|
+
async function writeUserLanguage(language2) {
|
|
5805
|
+
return setUserLanguage(language2);
|
|
5806
|
+
}
|
|
5807
|
+
async function saveLanguagePreference(language2) {
|
|
5808
|
+
return setUserLanguage(language2);
|
|
5809
|
+
}
|
|
5810
|
+
function isItalian(language2) {
|
|
5811
|
+
const value = (language2 ?? loadUserLanguage()).toLowerCase();
|
|
5812
|
+
return value === "it" || value === "it-it" || value.startsWith("it-");
|
|
5813
|
+
}
|
|
5814
|
+
function languageTag() {
|
|
5815
|
+
return loadUserLanguage();
|
|
5816
|
+
}
|
|
5817
|
+
var USER_LANGUAGE_FILE_NAME, USER_LANGUAGE_PREFERENCE_FILE_NAME, LANGUAGE_PREFERENCE_FILE_NAME, USER_PREFERENCES_FILE_NAME, PREFERENCES_FILE_NAME, DEFAULT_USER_LANGUAGE, DEFAULT_LANGUAGE, USER_LANGUAGE_DEFAULT, LANGUAGE_DEFAULT, DEFAULT_RESPONSE_LANGUAGE, LANGUAGE_FILE_NAMES, LANGUAGE_KEYS, userLanguage, language, responseLanguage, preferredLanguage;
|
|
5818
|
+
var init_user_language = __esm({
|
|
5819
|
+
"core/knowledge/user-language.ts"() {
|
|
5820
|
+
init_user_paths();
|
|
5821
|
+
init_storage_paths();
|
|
5822
|
+
USER_LANGUAGE_FILE_NAME = "language.json";
|
|
5823
|
+
USER_LANGUAGE_PREFERENCE_FILE_NAME = "user-language.json";
|
|
5824
|
+
LANGUAGE_PREFERENCE_FILE_NAME = "language-preference.json";
|
|
5825
|
+
USER_PREFERENCES_FILE_NAME = "user-preferences.json";
|
|
5826
|
+
PREFERENCES_FILE_NAME = "preferences.json";
|
|
5827
|
+
DEFAULT_USER_LANGUAGE = "it-IT";
|
|
5828
|
+
DEFAULT_LANGUAGE = "it-IT";
|
|
5829
|
+
USER_LANGUAGE_DEFAULT = "it-IT";
|
|
5830
|
+
LANGUAGE_DEFAULT = "it-IT";
|
|
5831
|
+
DEFAULT_RESPONSE_LANGUAGE = "it-IT";
|
|
5832
|
+
LANGUAGE_FILE_NAMES = [
|
|
5833
|
+
USER_LANGUAGE_FILE_NAME,
|
|
5834
|
+
USER_LANGUAGE_PREFERENCE_FILE_NAME,
|
|
5835
|
+
LANGUAGE_PREFERENCE_FILE_NAME,
|
|
5836
|
+
USER_PREFERENCES_FILE_NAME,
|
|
5837
|
+
PREFERENCES_FILE_NAME,
|
|
5838
|
+
"config.json",
|
|
5839
|
+
"user-config.json",
|
|
5840
|
+
"agent-config.json",
|
|
5841
|
+
"dotmem.config.json"
|
|
5842
|
+
];
|
|
5843
|
+
LANGUAGE_KEYS = [
|
|
5844
|
+
"language",
|
|
5845
|
+
"Language",
|
|
5846
|
+
"responseLanguage",
|
|
5847
|
+
"response_language",
|
|
5848
|
+
"preferredLanguage",
|
|
5849
|
+
"preferred_language",
|
|
5850
|
+
"userLanguage",
|
|
5851
|
+
"user_language",
|
|
5852
|
+
"defaultLanguage",
|
|
5853
|
+
"default_language",
|
|
5854
|
+
"locale",
|
|
5855
|
+
"lang",
|
|
5856
|
+
"uiLanguage",
|
|
5857
|
+
"ui_language",
|
|
5858
|
+
"conversationLanguage",
|
|
5859
|
+
"conversation_language"
|
|
5860
|
+
];
|
|
5861
|
+
__name(joinPath3, "joinPath");
|
|
5862
|
+
__name(resolveUserLanguagePath, "resolveUserLanguagePath");
|
|
5863
|
+
__name(resolveUserLanguagePreferencePath, "resolveUserLanguagePreferencePath");
|
|
5864
|
+
__name(resolveLanguagePath, "resolveLanguagePath");
|
|
5865
|
+
__name(resolveLanguagePreferencePath, "resolveLanguagePreferencePath");
|
|
5866
|
+
__name(readJsonFile, "readJsonFile");
|
|
5867
|
+
__name(extractLanguage, "extractLanguage");
|
|
5868
|
+
__name(loadUserLanguage, "loadUserLanguage");
|
|
5869
|
+
__name(readUserLanguage, "readUserLanguage");
|
|
5870
|
+
__name(getUserLanguage, "getUserLanguage");
|
|
5871
|
+
__name(resolveUserLanguage, "resolveUserLanguage");
|
|
5872
|
+
__name(resolveLanguage, "resolveLanguage");
|
|
5873
|
+
__name(loadLanguagePreference, "loadLanguagePreference");
|
|
5874
|
+
__name(getLanguagePreference, "getLanguagePreference");
|
|
5875
|
+
__name(resolveLanguagePreference, "resolveLanguagePreference");
|
|
5876
|
+
__name(loadUserLanguagePreference, "loadUserLanguagePreference");
|
|
5877
|
+
__name(getUserLanguagePreference, "getUserLanguagePreference");
|
|
5878
|
+
__name(resolveResponseLanguage, "resolveResponseLanguage");
|
|
5879
|
+
__name(getResponseLanguage, "getResponseLanguage");
|
|
5880
|
+
__name(setUserLanguage, "setUserLanguage");
|
|
5881
|
+
__name(saveUserLanguage, "saveUserLanguage");
|
|
5882
|
+
__name(writeUserLanguage, "writeUserLanguage");
|
|
5883
|
+
__name(saveLanguagePreference, "saveLanguagePreference");
|
|
5884
|
+
__name(isItalian, "isItalian");
|
|
5885
|
+
__name(languageTag, "languageTag");
|
|
5886
|
+
userLanguage = loadUserLanguage();
|
|
5887
|
+
language = loadUserLanguage();
|
|
5888
|
+
responseLanguage = loadUserLanguage();
|
|
5889
|
+
preferredLanguage = loadUserLanguage();
|
|
5890
|
+
}
|
|
5891
|
+
});
|
|
5892
|
+
|
|
5629
5893
|
// core/profile/ai.json
|
|
5630
5894
|
var ai_default;
|
|
5631
5895
|
var init_ai = __esm({
|
|
@@ -6282,12 +6546,12 @@ var init_staging = __esm({
|
|
|
6282
6546
|
});
|
|
6283
6547
|
|
|
6284
6548
|
// core/knowledge/loops.ts
|
|
6285
|
-
function
|
|
6549
|
+
function joinPath4(base, child) {
|
|
6286
6550
|
const separator3 = process.platform === "win32" ? "\\" : "/";
|
|
6287
6551
|
return `${base.replace(/[\\/]+/g, separator3)}${separator3}${child}`;
|
|
6288
6552
|
}
|
|
6289
6553
|
function resolveLoopsFilePath() {
|
|
6290
|
-
return
|
|
6554
|
+
return joinPath4(resolveUserDotMemPath(), LOOPS_FILE_NAME);
|
|
6291
6555
|
}
|
|
6292
6556
|
async function readFile(path) {
|
|
6293
6557
|
try {
|
|
@@ -6419,7 +6683,7 @@ var init_loops = __esm({
|
|
|
6419
6683
|
init_user_paths();
|
|
6420
6684
|
LOOPS_FILE_NAME = "loops.json";
|
|
6421
6685
|
LOOPS_FORMAT_VERSION = 1;
|
|
6422
|
-
__name(
|
|
6686
|
+
__name(joinPath4, "joinPath");
|
|
6423
6687
|
__name(resolveLoopsFilePath, "resolveLoopsFilePath");
|
|
6424
6688
|
__name(readFile, "readFile");
|
|
6425
6689
|
__name(writeFile, "writeFile");
|
|
@@ -6508,12 +6772,12 @@ var init_violations = __esm({
|
|
|
6508
6772
|
});
|
|
6509
6773
|
|
|
6510
6774
|
// core/knowledge/session.ts
|
|
6511
|
-
function
|
|
6775
|
+
function joinPath5(base, child) {
|
|
6512
6776
|
const separator3 = process.platform === "win32" ? "\\" : "/";
|
|
6513
6777
|
return `${base.replace(/[\\/]+/g, separator3)}${separator3}${child}`;
|
|
6514
6778
|
}
|
|
6515
6779
|
function resolveSessionFilePath() {
|
|
6516
|
-
return
|
|
6780
|
+
return joinPath5(resolveUserDotMemPath(), SESSION_FILE_NAME);
|
|
6517
6781
|
}
|
|
6518
6782
|
async function readFile2(path) {
|
|
6519
6783
|
try {
|
|
@@ -6546,7 +6810,7 @@ var init_session = __esm({
|
|
|
6546
6810
|
"core/knowledge/session.ts"() {
|
|
6547
6811
|
init_user_paths();
|
|
6548
6812
|
SESSION_FILE_NAME = "session.json";
|
|
6549
|
-
__name(
|
|
6813
|
+
__name(joinPath5, "joinPath");
|
|
6550
6814
|
__name(resolveSessionFilePath, "resolveSessionFilePath");
|
|
6551
6815
|
__name(readFile2, "readFile");
|
|
6552
6816
|
DEFAULT_SESSION = {
|
|
@@ -6561,12 +6825,12 @@ var init_session = __esm({
|
|
|
6561
6825
|
});
|
|
6562
6826
|
|
|
6563
6827
|
// core/knowledge/exemplars.ts
|
|
6564
|
-
function
|
|
6828
|
+
function joinPath6(base, child) {
|
|
6565
6829
|
const separator3 = process.platform === "win32" ? "\\" : "/";
|
|
6566
6830
|
return `${base.replace(/[\\/]+/g, separator3)}${separator3}${child}`;
|
|
6567
6831
|
}
|
|
6568
6832
|
function resolveExemplarsPath() {
|
|
6569
|
-
return
|
|
6833
|
+
return joinPath6(resolveUserDotMemPath(), EXEMPLARS_FILE_NAME);
|
|
6570
6834
|
}
|
|
6571
6835
|
async function readFile3(path) {
|
|
6572
6836
|
try {
|
|
@@ -6703,7 +6967,7 @@ var init_exemplars = __esm({
|
|
|
6703
6967
|
init_user_paths();
|
|
6704
6968
|
EXEMPLARS_FILE_NAME = "exemplars.json";
|
|
6705
6969
|
EXEMPLARS_FORMAT_VERSION = 1;
|
|
6706
|
-
__name(
|
|
6970
|
+
__name(joinPath6, "joinPath");
|
|
6707
6971
|
__name(resolveExemplarsPath, "resolveExemplarsPath");
|
|
6708
6972
|
__name(readFile3, "readFile");
|
|
6709
6973
|
__name(writeFile2, "writeFile");
|
|
@@ -6718,12 +6982,12 @@ var init_exemplars = __esm({
|
|
|
6718
6982
|
});
|
|
6719
6983
|
|
|
6720
6984
|
// core/knowledge/personality-anchor.ts
|
|
6721
|
-
function
|
|
6985
|
+
function joinPath7(base, child) {
|
|
6722
6986
|
const separator3 = process.platform === "win32" ? "\\" : "/";
|
|
6723
6987
|
return `${base.replace(/[\\/]+/g, separator3)}${separator3}${child}`;
|
|
6724
6988
|
}
|
|
6725
6989
|
function resolvePersonalityAnchorPath() {
|
|
6726
|
-
return
|
|
6990
|
+
return joinPath7(resolveUserDotMemPath(), PERSONALITY_ANCHOR_FILE_NAME);
|
|
6727
6991
|
}
|
|
6728
6992
|
async function readFile4(path) {
|
|
6729
6993
|
try {
|
|
@@ -6911,7 +7175,7 @@ var init_personality_anchor = __esm({
|
|
|
6911
7175
|
init_user_paths();
|
|
6912
7176
|
PERSONALITY_ANCHOR_FILE_NAME = "personality-anchor.json";
|
|
6913
7177
|
PERSONALITY_ANCHOR_FORMAT_VERSION = 1;
|
|
6914
|
-
__name(
|
|
7178
|
+
__name(joinPath7, "joinPath");
|
|
6915
7179
|
__name(resolvePersonalityAnchorPath, "resolvePersonalityAnchorPath");
|
|
6916
7180
|
__name(readFile4, "readFile");
|
|
6917
7181
|
__name(writeFile3, "writeFile");
|
|
@@ -6954,6 +7218,7 @@ var init_knowledge = __esm({
|
|
|
6954
7218
|
init_storage_location();
|
|
6955
7219
|
init_storage_settings();
|
|
6956
7220
|
init_user_identity();
|
|
7221
|
+
init_user_language();
|
|
6957
7222
|
init_identity_resolution();
|
|
6958
7223
|
init_identity_governance();
|
|
6959
7224
|
init_effective_contract();
|
|
@@ -10096,6 +10361,17 @@ var memory = {
|
|
|
10096
10361
|
return profile.get(id);
|
|
10097
10362
|
}
|
|
10098
10363
|
},
|
|
10364
|
+
/** Persistent default response language (canonical user config). */
|
|
10365
|
+
language: {
|
|
10366
|
+
async get() {
|
|
10367
|
+
const m = await Promise.resolve().then(() => (init_user_language(), user_language_exports));
|
|
10368
|
+
return m.resolveUserLanguage();
|
|
10369
|
+
},
|
|
10370
|
+
async set(value) {
|
|
10371
|
+
const m = await Promise.resolve().then(() => (init_user_language(), user_language_exports));
|
|
10372
|
+
return m.setUserLanguage(value);
|
|
10373
|
+
}
|
|
10374
|
+
},
|
|
10099
10375
|
/** Note surface: store and retrieve markdown files and text blocks. */
|
|
10100
10376
|
note: {
|
|
10101
10377
|
async add(opts) {
|
|
@@ -12695,12 +12971,12 @@ var GovernancePolicyError = class extends Error {
|
|
|
12695
12971
|
};
|
|
12696
12972
|
var requiredText3 = /* @__PURE__ */ __name((v) => typeof v === "string" && v.trim().length > 0, "requiredText");
|
|
12697
12973
|
var nowIso2 = /* @__PURE__ */ __name(() => (/* @__PURE__ */ new Date()).toISOString(), "nowIso");
|
|
12698
|
-
var
|
|
12974
|
+
var joinPath8 = /* @__PURE__ */ __name((base, child) => {
|
|
12699
12975
|
const sep = process.platform === "win32" ? "\\" : "/";
|
|
12700
12976
|
return `${base.replace(/[\\/]+/g, sep)}${sep}${child}`;
|
|
12701
12977
|
}, "joinPath");
|
|
12702
|
-
var resolveGovernanceDir = /* @__PURE__ */ __name((directory) => directory ??
|
|
12703
|
-
var resolveGovernanceFilePath = /* @__PURE__ */ __name((directory) =>
|
|
12978
|
+
var resolveGovernanceDir = /* @__PURE__ */ __name((directory) => directory ?? joinPath8(resolveUserDotMemPath(), "policy"), "resolveGovernanceDir");
|
|
12979
|
+
var resolveGovernanceFilePath = /* @__PURE__ */ __name((directory) => joinPath8(resolveGovernanceDir(directory), GOVERNANCE_FILE_NAME), "resolveGovernanceFilePath");
|
|
12704
12980
|
var ROLE_CAPABILITIES = {
|
|
12705
12981
|
"human-owner": /* @__PURE__ */ new Set(["policy.propose", "policy.review", "policy.approve", "policy.reject", "policy.activate", "policy.suspend", "policy.retire", "role.bind", "governance.read", "governance.audit.read", "agent.execute", "guardrail.stop.activate", "guardrail.stop.release"]),
|
|
12706
12982
|
"human-approver": /* @__PURE__ */ new Set(["policy.review", "policy.approve", "policy.reject", "governance.read", "governance.audit.read", "guardrail.stop.activate", "guardrail.stop.release"]),
|
|
@@ -13428,12 +13704,12 @@ var GuardrailError = class extends Error {
|
|
|
13428
13704
|
};
|
|
13429
13705
|
var requiredText4 = /* @__PURE__ */ __name((v) => typeof v === "string" && v.trim().length > 0, "requiredText");
|
|
13430
13706
|
var nowIso3 = /* @__PURE__ */ __name(() => (/* @__PURE__ */ new Date()).toISOString(), "nowIso");
|
|
13431
|
-
var
|
|
13707
|
+
var joinPath9 = /* @__PURE__ */ __name((base, child) => {
|
|
13432
13708
|
const sep = process.platform === "win32" ? "\\" : "/";
|
|
13433
13709
|
return `${base.replace(/[\\/]+/g, sep)}${sep}${child}`;
|
|
13434
13710
|
}, "joinPath");
|
|
13435
|
-
var resolveGuardrailDir = /* @__PURE__ */ __name((directory) => directory ??
|
|
13436
|
-
var resolveStopFilePath = /* @__PURE__ */ __name((directory) =>
|
|
13711
|
+
var resolveGuardrailDir = /* @__PURE__ */ __name((directory) => directory ?? joinPath9(resolveUserDotMemPath(), "policy"), "resolveGuardrailDir");
|
|
13712
|
+
var resolveStopFilePath = /* @__PURE__ */ __name((directory) => joinPath9(resolveGuardrailDir(directory), STOP_FILE_NAME), "resolveStopFilePath");
|
|
13437
13713
|
var ACTIONS_REQUIRING_TRUSTED_IDENTITY = /* @__PURE__ */ new Set([
|
|
13438
13714
|
"agent.execute",
|
|
13439
13715
|
"guardrail.stop.activate",
|
|
@@ -13900,7 +14176,7 @@ var EPITEMIC_STATUSES2 = [
|
|
|
13900
14176
|
|
|
13901
14177
|
// app.json
|
|
13902
14178
|
var app_default = {
|
|
13903
|
-
version: "0.1.
|
|
14179
|
+
version: "0.1.3"};
|
|
13904
14180
|
|
|
13905
14181
|
// index.ts
|
|
13906
14182
|
var dotmem = {
|