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.
Files changed (10) hide show
  1. package/README.md +5 -5
  2. package/cli.cjs +1334 -41
  3. package/cli.js +1334 -41
  4. package/global.cjs +286 -10
  5. package/global.js +286 -10
  6. package/index.cjs +296 -20
  7. package/index.js +296 -20
  8. package/mcp.cjs +300 -19
  9. package/mcp.js +300 -19
  10. 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 = { current: 5, deep: 25 };
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 joinPath3(base, child) {
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 joinPath3(resolveUserDotMemPath(), LOOPS_FILE_NAME);
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(joinPath3, "joinPath");
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 joinPath4(base, child) {
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 joinPath4(resolveUserDotMemPath(), SESSION_FILE_NAME);
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(joinPath4, "joinPath");
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 joinPath5(base, child) {
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 joinPath5(resolveUserDotMemPath(), EXEMPLARS_FILE_NAME);
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(joinPath5, "joinPath");
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 joinPath6(base, child) {
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 joinPath6(resolveUserDotMemPath(), PERSONALITY_ANCHOR_FILE_NAME);
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(joinPath6, "joinPath");
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 joinPath7 = /* @__PURE__ */ __name((base, child) => {
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 ?? joinPath7(resolveUserDotMemPath(), "policy"), "resolveGovernanceDir");
12707
- var resolveGovernanceFilePath = /* @__PURE__ */ __name((directory) => joinPath7(resolveGovernanceDir(directory), GOVERNANCE_FILE_NAME), "resolveGovernanceFilePath");
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 joinPath8 = /* @__PURE__ */ __name((base, child) => {
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 ?? joinPath8(resolveUserDotMemPath(), "policy"), "resolveGuardrailDir");
13440
- var resolveStopFilePath = /* @__PURE__ */ __name((directory) => joinPath8(resolveGuardrailDir(directory), STOP_FILE_NAME), "resolveStopFilePath");
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.2"};
14183
+ version: "0.1.3"};
13908
14184
 
13909
14185
  // index.ts
13910
14186
  var dotmem = {