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.cjs
CHANGED
|
@@ -1666,7 +1666,10 @@ var init_discover = __esm({
|
|
|
1666
1666
|
`);
|
|
1667
1667
|
}
|
|
1668
1668
|
}, "diagnostic");
|
|
1669
|
-
DEFAULT_LIMITS = {
|
|
1669
|
+
DEFAULT_LIMITS = {
|
|
1670
|
+
current: 8,
|
|
1671
|
+
deep: 25
|
|
1672
|
+
};
|
|
1670
1673
|
FIELD_ORDER = [
|
|
1671
1674
|
"id",
|
|
1672
1675
|
"knowledge",
|
|
@@ -5630,6 +5633,267 @@ var init_user_identity = __esm({
|
|
|
5630
5633
|
}
|
|
5631
5634
|
});
|
|
5632
5635
|
|
|
5636
|
+
// core/knowledge/user-language.ts
|
|
5637
|
+
var user_language_exports = {};
|
|
5638
|
+
__export(user_language_exports, {
|
|
5639
|
+
DEFAULT_LANGUAGE: () => DEFAULT_LANGUAGE,
|
|
5640
|
+
DEFAULT_RESPONSE_LANGUAGE: () => DEFAULT_RESPONSE_LANGUAGE,
|
|
5641
|
+
DEFAULT_USER_LANGUAGE: () => DEFAULT_USER_LANGUAGE,
|
|
5642
|
+
LANGUAGE_DEFAULT: () => LANGUAGE_DEFAULT,
|
|
5643
|
+
LANGUAGE_PREFERENCE_FILE_NAME: () => LANGUAGE_PREFERENCE_FILE_NAME,
|
|
5644
|
+
PREFERENCES_FILE_NAME: () => PREFERENCES_FILE_NAME,
|
|
5645
|
+
USER_LANGUAGE_DEFAULT: () => USER_LANGUAGE_DEFAULT,
|
|
5646
|
+
USER_LANGUAGE_FILE_NAME: () => USER_LANGUAGE_FILE_NAME,
|
|
5647
|
+
USER_LANGUAGE_PREFERENCE_FILE_NAME: () => USER_LANGUAGE_PREFERENCE_FILE_NAME,
|
|
5648
|
+
USER_PREFERENCES_FILE_NAME: () => USER_PREFERENCES_FILE_NAME,
|
|
5649
|
+
getLanguagePreference: () => getLanguagePreference,
|
|
5650
|
+
getResponseLanguage: () => getResponseLanguage,
|
|
5651
|
+
getUserLanguage: () => getUserLanguage,
|
|
5652
|
+
getUserLanguagePreference: () => getUserLanguagePreference,
|
|
5653
|
+
isItalian: () => isItalian,
|
|
5654
|
+
language: () => language,
|
|
5655
|
+
languageTag: () => languageTag,
|
|
5656
|
+
loadLanguagePreference: () => loadLanguagePreference,
|
|
5657
|
+
loadUserLanguage: () => loadUserLanguage,
|
|
5658
|
+
loadUserLanguagePreference: () => loadUserLanguagePreference,
|
|
5659
|
+
preferredLanguage: () => preferredLanguage,
|
|
5660
|
+
readUserLanguage: () => readUserLanguage,
|
|
5661
|
+
resolveLanguage: () => resolveLanguage,
|
|
5662
|
+
resolveLanguagePath: () => resolveLanguagePath,
|
|
5663
|
+
resolveLanguagePreference: () => resolveLanguagePreference,
|
|
5664
|
+
resolveLanguagePreferencePath: () => resolveLanguagePreferencePath,
|
|
5665
|
+
resolveResponseLanguage: () => resolveResponseLanguage,
|
|
5666
|
+
resolveUserLanguage: () => resolveUserLanguage,
|
|
5667
|
+
resolveUserLanguagePath: () => resolveUserLanguagePath,
|
|
5668
|
+
resolveUserLanguagePreferencePath: () => resolveUserLanguagePreferencePath,
|
|
5669
|
+
responseLanguage: () => responseLanguage,
|
|
5670
|
+
saveLanguagePreference: () => saveLanguagePreference,
|
|
5671
|
+
saveUserLanguage: () => saveUserLanguage,
|
|
5672
|
+
setUserLanguage: () => setUserLanguage,
|
|
5673
|
+
userLanguage: () => userLanguage,
|
|
5674
|
+
writeUserLanguage: () => writeUserLanguage
|
|
5675
|
+
});
|
|
5676
|
+
function joinPath3(base, child) {
|
|
5677
|
+
const separator3 = process.platform === "win32" ? "\\" : "/";
|
|
5678
|
+
return `${base.replace(/[\\/]+/g, separator3)}${separator3}${child}`;
|
|
5679
|
+
}
|
|
5680
|
+
function resolveUserLanguagePath() {
|
|
5681
|
+
return joinPath3(resolveUserDotMemPath(), USER_LANGUAGE_FILE_NAME);
|
|
5682
|
+
}
|
|
5683
|
+
function resolveUserLanguagePreferencePath() {
|
|
5684
|
+
return resolveUserLanguagePath();
|
|
5685
|
+
}
|
|
5686
|
+
function resolveLanguagePath() {
|
|
5687
|
+
return resolveUserLanguagePath();
|
|
5688
|
+
}
|
|
5689
|
+
function resolveLanguagePreferencePath() {
|
|
5690
|
+
return resolveUserLanguagePath();
|
|
5691
|
+
}
|
|
5692
|
+
function readJsonFile(path) {
|
|
5693
|
+
const fs = getSyncFs();
|
|
5694
|
+
if (!fs) return null;
|
|
5695
|
+
let raw;
|
|
5696
|
+
try {
|
|
5697
|
+
raw = fs.readFileSync(path, "utf8");
|
|
5698
|
+
} catch {
|
|
5699
|
+
return null;
|
|
5700
|
+
}
|
|
5701
|
+
if (typeof raw !== "string") return null;
|
|
5702
|
+
if (raw.charCodeAt(0) === 65279) raw = raw.slice(1);
|
|
5703
|
+
try {
|
|
5704
|
+
return JSON.parse(raw);
|
|
5705
|
+
} catch {
|
|
5706
|
+
return null;
|
|
5707
|
+
}
|
|
5708
|
+
}
|
|
5709
|
+
function extractLanguage(value) {
|
|
5710
|
+
if (value === null || value === void 0) return null;
|
|
5711
|
+
if (typeof value === "string") {
|
|
5712
|
+
const trimmed = value.trim();
|
|
5713
|
+
return trimmed ? trimmed : null;
|
|
5714
|
+
}
|
|
5715
|
+
if (typeof value !== "object" || Array.isArray(value)) return null;
|
|
5716
|
+
for (const key of LANGUAGE_KEYS) {
|
|
5717
|
+
if (Object.prototype.hasOwnProperty.call(value, key)) {
|
|
5718
|
+
const candidate = extractLanguage(value[key]);
|
|
5719
|
+
if (candidate) return candidate;
|
|
5720
|
+
}
|
|
5721
|
+
}
|
|
5722
|
+
for (const containerKey of ["preferences", "user", "agent", "config", "settings", "storage"]) {
|
|
5723
|
+
if (Object.prototype.hasOwnProperty.call(value, containerKey)) {
|
|
5724
|
+
const candidate = extractLanguage(value[containerKey]);
|
|
5725
|
+
if (candidate) return candidate;
|
|
5726
|
+
}
|
|
5727
|
+
}
|
|
5728
|
+
return null;
|
|
5729
|
+
}
|
|
5730
|
+
function loadUserLanguage() {
|
|
5731
|
+
const fs = getSyncFs();
|
|
5732
|
+
const anchor = resolveUserDotMemPath();
|
|
5733
|
+
if (fs) {
|
|
5734
|
+
for (const name of LANGUAGE_FILE_NAMES) {
|
|
5735
|
+
const candidatePath = joinPath3(anchor, name);
|
|
5736
|
+
const parsed = readJsonFile(candidatePath);
|
|
5737
|
+
const language2 = extractLanguage(parsed);
|
|
5738
|
+
if (language2) return language2;
|
|
5739
|
+
}
|
|
5740
|
+
try {
|
|
5741
|
+
const govPath = joinPath3(joinPath3(anchor, "policy"), "identity-governance.json");
|
|
5742
|
+
const gov = readJsonFile(govPath);
|
|
5743
|
+
const language2 = extractLanguage(gov);
|
|
5744
|
+
if (language2) return language2;
|
|
5745
|
+
} catch {
|
|
5746
|
+
}
|
|
5747
|
+
try {
|
|
5748
|
+
const settingsPath = joinPath3(anchor, "dotmem.settings.json");
|
|
5749
|
+
const settings = readJsonFile(settingsPath);
|
|
5750
|
+
const language2 = extractLanguage(settings);
|
|
5751
|
+
if (language2) return language2;
|
|
5752
|
+
} catch {
|
|
5753
|
+
}
|
|
5754
|
+
}
|
|
5755
|
+
const env = globalThis?.process?.env;
|
|
5756
|
+
const envLang = env?.DOTMEM_LANGUAGE || env?.DOTMEM_RESPONSE_LANGUAGE || env?.DOTMEM_USER_LANGUAGE;
|
|
5757
|
+
if (typeof envLang === "string" && envLang.trim()) return envLang.trim();
|
|
5758
|
+
return DEFAULT_USER_LANGUAGE;
|
|
5759
|
+
}
|
|
5760
|
+
function readUserLanguage() {
|
|
5761
|
+
return loadUserLanguage();
|
|
5762
|
+
}
|
|
5763
|
+
function getUserLanguage() {
|
|
5764
|
+
return loadUserLanguage();
|
|
5765
|
+
}
|
|
5766
|
+
function resolveUserLanguage() {
|
|
5767
|
+
return loadUserLanguage();
|
|
5768
|
+
}
|
|
5769
|
+
function resolveLanguage() {
|
|
5770
|
+
return loadUserLanguage();
|
|
5771
|
+
}
|
|
5772
|
+
function loadLanguagePreference() {
|
|
5773
|
+
return loadUserLanguage();
|
|
5774
|
+
}
|
|
5775
|
+
function getLanguagePreference() {
|
|
5776
|
+
return loadUserLanguage();
|
|
5777
|
+
}
|
|
5778
|
+
function resolveLanguagePreference() {
|
|
5779
|
+
return loadUserLanguage();
|
|
5780
|
+
}
|
|
5781
|
+
function loadUserLanguagePreference() {
|
|
5782
|
+
return loadUserLanguage();
|
|
5783
|
+
}
|
|
5784
|
+
function getUserLanguagePreference() {
|
|
5785
|
+
return loadUserLanguage();
|
|
5786
|
+
}
|
|
5787
|
+
function resolveResponseLanguage() {
|
|
5788
|
+
return loadUserLanguage();
|
|
5789
|
+
}
|
|
5790
|
+
function getResponseLanguage() {
|
|
5791
|
+
return loadUserLanguage();
|
|
5792
|
+
}
|
|
5793
|
+
async function setUserLanguage(language2) {
|
|
5794
|
+
const fsMod = await import('fs/promises');
|
|
5795
|
+
const path = resolveUserLanguagePath();
|
|
5796
|
+
const dir = parentStoragePath(path);
|
|
5797
|
+
await fsMod.mkdir(dir, { recursive: true });
|
|
5798
|
+
const payload = { format: "dotmem.language", version: 1, language: String(language2).trim() };
|
|
5799
|
+
const temporary = `${path}.${process.pid}.${Date.now().toString(36)}.tmp`;
|
|
5800
|
+
await fsMod.writeFile(temporary, `${JSON.stringify(payload, null, 2)}
|
|
5801
|
+
`, "utf8");
|
|
5802
|
+
await fsMod.rename(temporary, path);
|
|
5803
|
+
return payload.language;
|
|
5804
|
+
}
|
|
5805
|
+
async function saveUserLanguage(language2) {
|
|
5806
|
+
return setUserLanguage(language2);
|
|
5807
|
+
}
|
|
5808
|
+
async function writeUserLanguage(language2) {
|
|
5809
|
+
return setUserLanguage(language2);
|
|
5810
|
+
}
|
|
5811
|
+
async function saveLanguagePreference(language2) {
|
|
5812
|
+
return setUserLanguage(language2);
|
|
5813
|
+
}
|
|
5814
|
+
function isItalian(language2) {
|
|
5815
|
+
const value = (language2 ?? loadUserLanguage()).toLowerCase();
|
|
5816
|
+
return value === "it" || value === "it-it" || value.startsWith("it-");
|
|
5817
|
+
}
|
|
5818
|
+
function languageTag() {
|
|
5819
|
+
return loadUserLanguage();
|
|
5820
|
+
}
|
|
5821
|
+
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;
|
|
5822
|
+
var init_user_language = __esm({
|
|
5823
|
+
"core/knowledge/user-language.ts"() {
|
|
5824
|
+
init_user_paths();
|
|
5825
|
+
init_storage_paths();
|
|
5826
|
+
USER_LANGUAGE_FILE_NAME = "language.json";
|
|
5827
|
+
USER_LANGUAGE_PREFERENCE_FILE_NAME = "user-language.json";
|
|
5828
|
+
LANGUAGE_PREFERENCE_FILE_NAME = "language-preference.json";
|
|
5829
|
+
USER_PREFERENCES_FILE_NAME = "user-preferences.json";
|
|
5830
|
+
PREFERENCES_FILE_NAME = "preferences.json";
|
|
5831
|
+
DEFAULT_USER_LANGUAGE = "it-IT";
|
|
5832
|
+
DEFAULT_LANGUAGE = "it-IT";
|
|
5833
|
+
USER_LANGUAGE_DEFAULT = "it-IT";
|
|
5834
|
+
LANGUAGE_DEFAULT = "it-IT";
|
|
5835
|
+
DEFAULT_RESPONSE_LANGUAGE = "it-IT";
|
|
5836
|
+
LANGUAGE_FILE_NAMES = [
|
|
5837
|
+
USER_LANGUAGE_FILE_NAME,
|
|
5838
|
+
USER_LANGUAGE_PREFERENCE_FILE_NAME,
|
|
5839
|
+
LANGUAGE_PREFERENCE_FILE_NAME,
|
|
5840
|
+
USER_PREFERENCES_FILE_NAME,
|
|
5841
|
+
PREFERENCES_FILE_NAME,
|
|
5842
|
+
"config.json",
|
|
5843
|
+
"user-config.json",
|
|
5844
|
+
"agent-config.json",
|
|
5845
|
+
"dotmem.config.json"
|
|
5846
|
+
];
|
|
5847
|
+
LANGUAGE_KEYS = [
|
|
5848
|
+
"language",
|
|
5849
|
+
"Language",
|
|
5850
|
+
"responseLanguage",
|
|
5851
|
+
"response_language",
|
|
5852
|
+
"preferredLanguage",
|
|
5853
|
+
"preferred_language",
|
|
5854
|
+
"userLanguage",
|
|
5855
|
+
"user_language",
|
|
5856
|
+
"defaultLanguage",
|
|
5857
|
+
"default_language",
|
|
5858
|
+
"locale",
|
|
5859
|
+
"lang",
|
|
5860
|
+
"uiLanguage",
|
|
5861
|
+
"ui_language",
|
|
5862
|
+
"conversationLanguage",
|
|
5863
|
+
"conversation_language"
|
|
5864
|
+
];
|
|
5865
|
+
__name(joinPath3, "joinPath");
|
|
5866
|
+
__name(resolveUserLanguagePath, "resolveUserLanguagePath");
|
|
5867
|
+
__name(resolveUserLanguagePreferencePath, "resolveUserLanguagePreferencePath");
|
|
5868
|
+
__name(resolveLanguagePath, "resolveLanguagePath");
|
|
5869
|
+
__name(resolveLanguagePreferencePath, "resolveLanguagePreferencePath");
|
|
5870
|
+
__name(readJsonFile, "readJsonFile");
|
|
5871
|
+
__name(extractLanguage, "extractLanguage");
|
|
5872
|
+
__name(loadUserLanguage, "loadUserLanguage");
|
|
5873
|
+
__name(readUserLanguage, "readUserLanguage");
|
|
5874
|
+
__name(getUserLanguage, "getUserLanguage");
|
|
5875
|
+
__name(resolveUserLanguage, "resolveUserLanguage");
|
|
5876
|
+
__name(resolveLanguage, "resolveLanguage");
|
|
5877
|
+
__name(loadLanguagePreference, "loadLanguagePreference");
|
|
5878
|
+
__name(getLanguagePreference, "getLanguagePreference");
|
|
5879
|
+
__name(resolveLanguagePreference, "resolveLanguagePreference");
|
|
5880
|
+
__name(loadUserLanguagePreference, "loadUserLanguagePreference");
|
|
5881
|
+
__name(getUserLanguagePreference, "getUserLanguagePreference");
|
|
5882
|
+
__name(resolveResponseLanguage, "resolveResponseLanguage");
|
|
5883
|
+
__name(getResponseLanguage, "getResponseLanguage");
|
|
5884
|
+
__name(setUserLanguage, "setUserLanguage");
|
|
5885
|
+
__name(saveUserLanguage, "saveUserLanguage");
|
|
5886
|
+
__name(writeUserLanguage, "writeUserLanguage");
|
|
5887
|
+
__name(saveLanguagePreference, "saveLanguagePreference");
|
|
5888
|
+
__name(isItalian, "isItalian");
|
|
5889
|
+
__name(languageTag, "languageTag");
|
|
5890
|
+
userLanguage = loadUserLanguage();
|
|
5891
|
+
language = loadUserLanguage();
|
|
5892
|
+
responseLanguage = loadUserLanguage();
|
|
5893
|
+
preferredLanguage = loadUserLanguage();
|
|
5894
|
+
}
|
|
5895
|
+
});
|
|
5896
|
+
|
|
5633
5897
|
// core/profile/ai.json
|
|
5634
5898
|
var ai_default;
|
|
5635
5899
|
var init_ai = __esm({
|
|
@@ -6286,12 +6550,12 @@ var init_staging = __esm({
|
|
|
6286
6550
|
});
|
|
6287
6551
|
|
|
6288
6552
|
// core/knowledge/loops.ts
|
|
6289
|
-
function
|
|
6553
|
+
function joinPath4(base, child) {
|
|
6290
6554
|
const separator3 = process.platform === "win32" ? "\\" : "/";
|
|
6291
6555
|
return `${base.replace(/[\\/]+/g, separator3)}${separator3}${child}`;
|
|
6292
6556
|
}
|
|
6293
6557
|
function resolveLoopsFilePath() {
|
|
6294
|
-
return
|
|
6558
|
+
return joinPath4(resolveUserDotMemPath(), LOOPS_FILE_NAME);
|
|
6295
6559
|
}
|
|
6296
6560
|
async function readFile(path) {
|
|
6297
6561
|
try {
|
|
@@ -6423,7 +6687,7 @@ var init_loops = __esm({
|
|
|
6423
6687
|
init_user_paths();
|
|
6424
6688
|
LOOPS_FILE_NAME = "loops.json";
|
|
6425
6689
|
LOOPS_FORMAT_VERSION = 1;
|
|
6426
|
-
__name(
|
|
6690
|
+
__name(joinPath4, "joinPath");
|
|
6427
6691
|
__name(resolveLoopsFilePath, "resolveLoopsFilePath");
|
|
6428
6692
|
__name(readFile, "readFile");
|
|
6429
6693
|
__name(writeFile, "writeFile");
|
|
@@ -6512,12 +6776,12 @@ var init_violations = __esm({
|
|
|
6512
6776
|
});
|
|
6513
6777
|
|
|
6514
6778
|
// core/knowledge/session.ts
|
|
6515
|
-
function
|
|
6779
|
+
function joinPath5(base, child) {
|
|
6516
6780
|
const separator3 = process.platform === "win32" ? "\\" : "/";
|
|
6517
6781
|
return `${base.replace(/[\\/]+/g, separator3)}${separator3}${child}`;
|
|
6518
6782
|
}
|
|
6519
6783
|
function resolveSessionFilePath() {
|
|
6520
|
-
return
|
|
6784
|
+
return joinPath5(resolveUserDotMemPath(), SESSION_FILE_NAME);
|
|
6521
6785
|
}
|
|
6522
6786
|
async function readFile2(path) {
|
|
6523
6787
|
try {
|
|
@@ -6550,7 +6814,7 @@ var init_session = __esm({
|
|
|
6550
6814
|
"core/knowledge/session.ts"() {
|
|
6551
6815
|
init_user_paths();
|
|
6552
6816
|
SESSION_FILE_NAME = "session.json";
|
|
6553
|
-
__name(
|
|
6817
|
+
__name(joinPath5, "joinPath");
|
|
6554
6818
|
__name(resolveSessionFilePath, "resolveSessionFilePath");
|
|
6555
6819
|
__name(readFile2, "readFile");
|
|
6556
6820
|
DEFAULT_SESSION = {
|
|
@@ -6565,12 +6829,12 @@ var init_session = __esm({
|
|
|
6565
6829
|
});
|
|
6566
6830
|
|
|
6567
6831
|
// core/knowledge/exemplars.ts
|
|
6568
|
-
function
|
|
6832
|
+
function joinPath6(base, child) {
|
|
6569
6833
|
const separator3 = process.platform === "win32" ? "\\" : "/";
|
|
6570
6834
|
return `${base.replace(/[\\/]+/g, separator3)}${separator3}${child}`;
|
|
6571
6835
|
}
|
|
6572
6836
|
function resolveExemplarsPath() {
|
|
6573
|
-
return
|
|
6837
|
+
return joinPath6(resolveUserDotMemPath(), EXEMPLARS_FILE_NAME);
|
|
6574
6838
|
}
|
|
6575
6839
|
async function readFile3(path) {
|
|
6576
6840
|
try {
|
|
@@ -6707,7 +6971,7 @@ var init_exemplars = __esm({
|
|
|
6707
6971
|
init_user_paths();
|
|
6708
6972
|
EXEMPLARS_FILE_NAME = "exemplars.json";
|
|
6709
6973
|
EXEMPLARS_FORMAT_VERSION = 1;
|
|
6710
|
-
__name(
|
|
6974
|
+
__name(joinPath6, "joinPath");
|
|
6711
6975
|
__name(resolveExemplarsPath, "resolveExemplarsPath");
|
|
6712
6976
|
__name(readFile3, "readFile");
|
|
6713
6977
|
__name(writeFile2, "writeFile");
|
|
@@ -6722,12 +6986,12 @@ var init_exemplars = __esm({
|
|
|
6722
6986
|
});
|
|
6723
6987
|
|
|
6724
6988
|
// core/knowledge/personality-anchor.ts
|
|
6725
|
-
function
|
|
6989
|
+
function joinPath7(base, child) {
|
|
6726
6990
|
const separator3 = process.platform === "win32" ? "\\" : "/";
|
|
6727
6991
|
return `${base.replace(/[\\/]+/g, separator3)}${separator3}${child}`;
|
|
6728
6992
|
}
|
|
6729
6993
|
function resolvePersonalityAnchorPath() {
|
|
6730
|
-
return
|
|
6994
|
+
return joinPath7(resolveUserDotMemPath(), PERSONALITY_ANCHOR_FILE_NAME);
|
|
6731
6995
|
}
|
|
6732
6996
|
async function readFile4(path) {
|
|
6733
6997
|
try {
|
|
@@ -6915,7 +7179,7 @@ var init_personality_anchor = __esm({
|
|
|
6915
7179
|
init_user_paths();
|
|
6916
7180
|
PERSONALITY_ANCHOR_FILE_NAME = "personality-anchor.json";
|
|
6917
7181
|
PERSONALITY_ANCHOR_FORMAT_VERSION = 1;
|
|
6918
|
-
__name(
|
|
7182
|
+
__name(joinPath7, "joinPath");
|
|
6919
7183
|
__name(resolvePersonalityAnchorPath, "resolvePersonalityAnchorPath");
|
|
6920
7184
|
__name(readFile4, "readFile");
|
|
6921
7185
|
__name(writeFile3, "writeFile");
|
|
@@ -6958,6 +7222,7 @@ var init_knowledge = __esm({
|
|
|
6958
7222
|
init_storage_location();
|
|
6959
7223
|
init_storage_settings();
|
|
6960
7224
|
init_user_identity();
|
|
7225
|
+
init_user_language();
|
|
6961
7226
|
init_identity_resolution();
|
|
6962
7227
|
init_identity_governance();
|
|
6963
7228
|
init_effective_contract();
|
|
@@ -10100,6 +10365,17 @@ var memory = {
|
|
|
10100
10365
|
return profile.get(id);
|
|
10101
10366
|
}
|
|
10102
10367
|
},
|
|
10368
|
+
/** Persistent default response language (canonical user config). */
|
|
10369
|
+
language: {
|
|
10370
|
+
async get() {
|
|
10371
|
+
const m = await Promise.resolve().then(() => (init_user_language(), user_language_exports));
|
|
10372
|
+
return m.resolveUserLanguage();
|
|
10373
|
+
},
|
|
10374
|
+
async set(value) {
|
|
10375
|
+
const m = await Promise.resolve().then(() => (init_user_language(), user_language_exports));
|
|
10376
|
+
return m.setUserLanguage(value);
|
|
10377
|
+
}
|
|
10378
|
+
},
|
|
10103
10379
|
/** Note surface: store and retrieve markdown files and text blocks. */
|
|
10104
10380
|
note: {
|
|
10105
10381
|
async add(opts) {
|
|
@@ -12699,12 +12975,12 @@ var GovernancePolicyError = class extends Error {
|
|
|
12699
12975
|
};
|
|
12700
12976
|
var requiredText3 = /* @__PURE__ */ __name((v) => typeof v === "string" && v.trim().length > 0, "requiredText");
|
|
12701
12977
|
var nowIso2 = /* @__PURE__ */ __name(() => (/* @__PURE__ */ new Date()).toISOString(), "nowIso");
|
|
12702
|
-
var
|
|
12978
|
+
var joinPath8 = /* @__PURE__ */ __name((base, child) => {
|
|
12703
12979
|
const sep = process.platform === "win32" ? "\\" : "/";
|
|
12704
12980
|
return `${base.replace(/[\\/]+/g, sep)}${sep}${child}`;
|
|
12705
12981
|
}, "joinPath");
|
|
12706
|
-
var resolveGovernanceDir = /* @__PURE__ */ __name((directory) => directory ??
|
|
12707
|
-
var resolveGovernanceFilePath = /* @__PURE__ */ __name((directory) =>
|
|
12982
|
+
var resolveGovernanceDir = /* @__PURE__ */ __name((directory) => directory ?? joinPath8(resolveUserDotMemPath(), "policy"), "resolveGovernanceDir");
|
|
12983
|
+
var resolveGovernanceFilePath = /* @__PURE__ */ __name((directory) => joinPath8(resolveGovernanceDir(directory), GOVERNANCE_FILE_NAME), "resolveGovernanceFilePath");
|
|
12708
12984
|
var ROLE_CAPABILITIES = {
|
|
12709
12985
|
"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"]),
|
|
12710
12986
|
"human-approver": /* @__PURE__ */ new Set(["policy.review", "policy.approve", "policy.reject", "governance.read", "governance.audit.read", "guardrail.stop.activate", "guardrail.stop.release"]),
|
|
@@ -13432,12 +13708,12 @@ var GuardrailError = class extends Error {
|
|
|
13432
13708
|
};
|
|
13433
13709
|
var requiredText4 = /* @__PURE__ */ __name((v) => typeof v === "string" && v.trim().length > 0, "requiredText");
|
|
13434
13710
|
var nowIso3 = /* @__PURE__ */ __name(() => (/* @__PURE__ */ new Date()).toISOString(), "nowIso");
|
|
13435
|
-
var
|
|
13711
|
+
var joinPath9 = /* @__PURE__ */ __name((base, child) => {
|
|
13436
13712
|
const sep = process.platform === "win32" ? "\\" : "/";
|
|
13437
13713
|
return `${base.replace(/[\\/]+/g, sep)}${sep}${child}`;
|
|
13438
13714
|
}, "joinPath");
|
|
13439
|
-
var resolveGuardrailDir = /* @__PURE__ */ __name((directory) => directory ??
|
|
13440
|
-
var resolveStopFilePath = /* @__PURE__ */ __name((directory) =>
|
|
13715
|
+
var resolveGuardrailDir = /* @__PURE__ */ __name((directory) => directory ?? joinPath9(resolveUserDotMemPath(), "policy"), "resolveGuardrailDir");
|
|
13716
|
+
var resolveStopFilePath = /* @__PURE__ */ __name((directory) => joinPath9(resolveGuardrailDir(directory), STOP_FILE_NAME), "resolveStopFilePath");
|
|
13441
13717
|
var ACTIONS_REQUIRING_TRUSTED_IDENTITY = /* @__PURE__ */ new Set([
|
|
13442
13718
|
"agent.execute",
|
|
13443
13719
|
"guardrail.stop.activate",
|
|
@@ -13904,7 +14180,7 @@ var EPITEMIC_STATUSES2 = [
|
|
|
13904
14180
|
|
|
13905
14181
|
// app.json
|
|
13906
14182
|
var app_default = {
|
|
13907
|
-
version: "0.1.
|
|
14183
|
+
version: "0.1.3"};
|
|
13908
14184
|
|
|
13909
14185
|
// index.ts
|
|
13910
14186
|
var dotmem = {
|