@jungjaehoon/mama-os 0.74.0 → 0.76.0

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 (254) hide show
  1. package/CHANGELOG.md +84 -0
  2. package/README.md +6 -1
  3. package/dist/api/code-act-actions.d.ts +3 -1
  4. package/dist/api/code-act-actions.d.ts.map +1 -1
  5. package/dist/api/code-act-actions.js +16 -7
  6. package/dist/api/code-act-actions.js.map +1 -1
  7. package/dist/api/document-actions.d.ts +13 -0
  8. package/dist/api/document-actions.d.ts.map +1 -0
  9. package/dist/api/document-actions.js +55 -0
  10. package/dist/api/document-actions.js.map +1 -0
  11. package/dist/api/drive-actions.d.ts +3 -1
  12. package/dist/api/drive-actions.d.ts.map +1 -1
  13. package/dist/api/drive-actions.js +6 -1
  14. package/dist/api/drive-actions.js.map +1 -1
  15. package/dist/api/member-enrollment.d.ts +7 -4
  16. package/dist/api/member-enrollment.d.ts.map +1 -1
  17. package/dist/api/member-enrollment.js +65 -33
  18. package/dist/api/member-enrollment.js.map +1 -1
  19. package/dist/api/member-export.d.ts.map +1 -1
  20. package/dist/api/member-export.js +14 -6
  21. package/dist/api/member-export.js.map +1 -1
  22. package/dist/api/member-lifecycle.d.ts +23 -4
  23. package/dist/api/member-lifecycle.d.ts.map +1 -1
  24. package/dist/api/member-lifecycle.js +90 -19
  25. package/dist/api/member-lifecycle.js.map +1 -1
  26. package/dist/api/member-notice-actions.d.ts +18 -0
  27. package/dist/api/member-notice-actions.d.ts.map +1 -0
  28. package/dist/api/member-notice-actions.js +184 -0
  29. package/dist/api/member-notice-actions.js.map +1 -0
  30. package/dist/api/member-records.d.ts +17 -2
  31. package/dist/api/member-records.d.ts.map +1 -1
  32. package/dist/api/member-records.js +440 -82
  33. package/dist/api/member-records.js.map +1 -1
  34. package/dist/api/member-share-actions.d.ts +3 -3
  35. package/dist/api/member-share-actions.d.ts.map +1 -1
  36. package/dist/api/member-share-actions.js +49 -22
  37. package/dist/api/member-share-actions.js.map +1 -1
  38. package/dist/api/member-smoke-state.d.ts +3 -0
  39. package/dist/api/member-smoke-state.d.ts.map +1 -0
  40. package/dist/api/member-smoke-state.js +20 -0
  41. package/dist/api/member-smoke-state.js.map +1 -0
  42. package/dist/api/owner-policy-actions.d.ts +1 -0
  43. package/dist/api/owner-policy-actions.d.ts.map +1 -1
  44. package/dist/api/owner-policy-actions.js +8 -4
  45. package/dist/api/owner-policy-actions.js.map +1 -1
  46. package/dist/api/owner-timezone-actions.d.ts +3 -2
  47. package/dist/api/owner-timezone-actions.d.ts.map +1 -1
  48. package/dist/api/owner-timezone-actions.js +4 -6
  49. package/dist/api/owner-timezone-actions.js.map +1 -1
  50. package/dist/api/personal-job-actions.d.ts +6 -0
  51. package/dist/api/personal-job-actions.d.ts.map +1 -0
  52. package/dist/api/personal-job-actions.js +72 -0
  53. package/dist/api/personal-job-actions.js.map +1 -0
  54. package/dist/api/security-events.d.ts +6 -1
  55. package/dist/api/security-events.d.ts.map +1 -1
  56. package/dist/api/security-events.js +34 -15
  57. package/dist/api/security-events.js.map +1 -1
  58. package/dist/api/skill-actions.d.ts +5 -0
  59. package/dist/api/skill-actions.d.ts.map +1 -0
  60. package/dist/api/skill-actions.js +66 -0
  61. package/dist/api/skill-actions.js.map +1 -0
  62. package/dist/api/source-actions.d.ts.map +1 -1
  63. package/dist/api/source-actions.js +4 -2
  64. package/dist/api/source-actions.js.map +1 -1
  65. package/dist/api/stored-source-reader.d.ts.map +1 -1
  66. package/dist/api/stored-source-reader.js +9 -2
  67. package/dist/api/stored-source-reader.js.map +1 -1
  68. package/dist/api/trello-actions.d.ts +1 -1
  69. package/dist/api/trello-actions.d.ts.map +1 -1
  70. package/dist/api/trello-actions.js +19 -4
  71. package/dist/api/trello-actions.js.map +1 -1
  72. package/dist/api/work-actions.d.ts +12 -2
  73. package/dist/api/work-actions.d.ts.map +1 -1
  74. package/dist/api/work-actions.js +57 -10
  75. package/dist/api/work-actions.js.map +1 -1
  76. package/dist/cli/commands/daemon.d.ts +12 -2
  77. package/dist/cli/commands/daemon.d.ts.map +1 -1
  78. package/dist/cli/commands/daemon.js +80 -13
  79. package/dist/cli/commands/daemon.js.map +1 -1
  80. package/dist/cli/commands/init.d.ts +4 -0
  81. package/dist/cli/commands/init.d.ts.map +1 -1
  82. package/dist/cli/commands/init.js +27 -5
  83. package/dist/cli/commands/init.js.map +1 -1
  84. package/dist/cli/commands/register-owner.d.ts +14 -5
  85. package/dist/cli/commands/register-owner.d.ts.map +1 -1
  86. package/dist/cli/commands/register-owner.js +145 -42
  87. package/dist/cli/commands/register-owner.js.map +1 -1
  88. package/dist/cli/commands/tools.d.ts +12 -0
  89. package/dist/cli/commands/tools.d.ts.map +1 -0
  90. package/dist/cli/commands/tools.js +109 -0
  91. package/dist/cli/commands/tools.js.map +1 -0
  92. package/dist/cli/index.js +8 -4
  93. package/dist/cli/index.js.map +1 -1
  94. package/dist/connectors/framework/polling-scheduler.d.ts +6 -1
  95. package/dist/connectors/framework/polling-scheduler.d.ts.map +1 -1
  96. package/dist/connectors/framework/polling-scheduler.js +25 -3
  97. package/dist/connectors/framework/polling-scheduler.js.map +1 -1
  98. package/dist/connectors/framework/stored-index-read.d.ts +2 -2
  99. package/dist/connectors/framework/stored-index-read.d.ts.map +1 -1
  100. package/dist/connectors/framework/stored-index-read.js +10 -3
  101. package/dist/connectors/framework/stored-index-read.js.map +1 -1
  102. package/dist/gateways/base-gateway.d.ts +7 -0
  103. package/dist/gateways/base-gateway.d.ts.map +1 -1
  104. package/dist/gateways/base-gateway.js +24 -0
  105. package/dist/gateways/base-gateway.js.map +1 -1
  106. package/dist/gateways/discord.d.ts +4 -0
  107. package/dist/gateways/discord.d.ts.map +1 -1
  108. package/dist/gateways/discord.js +24 -6
  109. package/dist/gateways/discord.js.map +1 -1
  110. package/dist/gateways/slack.d.ts +3 -0
  111. package/dist/gateways/slack.d.ts.map +1 -1
  112. package/dist/gateways/slack.js +15 -2
  113. package/dist/gateways/slack.js.map +1 -1
  114. package/dist/gateways/telegram-errors.d.ts +3 -0
  115. package/dist/gateways/telegram-errors.d.ts.map +1 -1
  116. package/dist/gateways/telegram-errors.js +5 -0
  117. package/dist/gateways/telegram-errors.js.map +1 -1
  118. package/dist/gateways/telegram-message-ledger.d.ts +7 -0
  119. package/dist/gateways/telegram-message-ledger.d.ts.map +1 -1
  120. package/dist/gateways/telegram-message-ledger.js +27 -2
  121. package/dist/gateways/telegram-message-ledger.js.map +1 -1
  122. package/dist/gateways/telegram.d.ts +33 -7
  123. package/dist/gateways/telegram.d.ts.map +1 -1
  124. package/dist/gateways/telegram.js +297 -59
  125. package/dist/gateways/telegram.js.map +1 -1
  126. package/dist/gateways/turn-contract.d.ts +8 -0
  127. package/dist/gateways/turn-contract.d.ts.map +1 -1
  128. package/dist/runtime/action-surface.d.ts +28 -3
  129. package/dist/runtime/action-surface.d.ts.map +1 -1
  130. package/dist/runtime/action-surface.js +316 -39
  131. package/dist/runtime/action-surface.js.map +1 -1
  132. package/dist/runtime/backend-security.d.ts +4 -0
  133. package/dist/runtime/backend-security.d.ts.map +1 -1
  134. package/dist/runtime/backend-security.js +8 -1
  135. package/dist/runtime/backend-security.js.map +1 -1
  136. package/dist/runtime/config.d.ts +1 -1
  137. package/dist/runtime/config.d.ts.map +1 -1
  138. package/dist/runtime/config.js +18 -11
  139. package/dist/runtime/config.js.map +1 -1
  140. package/dist/runtime/connectors.js +1 -1
  141. package/dist/runtime/connectors.js.map +1 -1
  142. package/dist/runtime/egress-proxy.d.ts +3 -3
  143. package/dist/runtime/egress-proxy.d.ts.map +1 -1
  144. package/dist/runtime/egress-proxy.js +16 -3
  145. package/dist/runtime/egress-proxy.js.map +1 -1
  146. package/dist/runtime/member-paths.d.ts +9 -1
  147. package/dist/runtime/member-paths.d.ts.map +1 -1
  148. package/dist/runtime/member-paths.js +67 -5
  149. package/dist/runtime/member-paths.js.map +1 -1
  150. package/dist/runtime/member-session.d.ts +21 -21
  151. package/dist/runtime/member-session.d.ts.map +1 -1
  152. package/dist/runtime/member-session.js +289 -34
  153. package/dist/runtime/member-session.js.map +1 -1
  154. package/dist/runtime/member-system-prompt.d.ts +1 -0
  155. package/dist/runtime/member-system-prompt.d.ts.map +1 -1
  156. package/dist/runtime/member-system-prompt.js +26 -4
  157. package/dist/runtime/member-system-prompt.js.map +1 -1
  158. package/dist/runtime/native-session.d.ts +6 -0
  159. package/dist/runtime/native-session.d.ts.map +1 -1
  160. package/dist/runtime/native-session.js +80 -13
  161. package/dist/runtime/native-session.js.map +1 -1
  162. package/dist/runtime/outbound-attempts.d.ts +5 -2
  163. package/dist/runtime/outbound-attempts.d.ts.map +1 -1
  164. package/dist/runtime/outbound-attempts.js +3 -2
  165. package/dist/runtime/outbound-attempts.js.map +1 -1
  166. package/dist/runtime/owner-authority.d.ts +15 -13
  167. package/dist/runtime/owner-authority.d.ts.map +1 -1
  168. package/dist/runtime/owner-authority.js +164 -8
  169. package/dist/runtime/owner-authority.js.map +1 -1
  170. package/dist/runtime/owner-runtime.d.ts +19 -4
  171. package/dist/runtime/owner-runtime.d.ts.map +1 -1
  172. package/dist/runtime/owner-runtime.js +446 -44
  173. package/dist/runtime/owner-runtime.js.map +1 -1
  174. package/dist/runtime/owner-system-prompt.d.ts +3 -1
  175. package/dist/runtime/owner-system-prompt.d.ts.map +1 -1
  176. package/dist/runtime/owner-system-prompt.js +15 -5
  177. package/dist/runtime/owner-system-prompt.js.map +1 -1
  178. package/dist/runtime/personal-job-cron.d.ts +6 -0
  179. package/dist/runtime/personal-job-cron.d.ts.map +1 -0
  180. package/dist/runtime/personal-job-cron.js +154 -0
  181. package/dist/runtime/personal-job-cron.js.map +1 -0
  182. package/dist/runtime/personal-jobs.d.ts +107 -0
  183. package/dist/runtime/personal-jobs.d.ts.map +1 -0
  184. package/dist/runtime/personal-jobs.js +353 -0
  185. package/dist/runtime/personal-jobs.js.map +1 -0
  186. package/dist/runtime/personal-notices.d.ts +38 -0
  187. package/dist/runtime/personal-notices.d.ts.map +1 -0
  188. package/dist/runtime/personal-notices.js +137 -0
  189. package/dist/runtime/personal-notices.js.map +1 -0
  190. package/dist/runtime/personal-turns.d.ts +23 -0
  191. package/dist/runtime/personal-turns.d.ts.map +1 -0
  192. package/dist/runtime/personal-turns.js +51 -0
  193. package/dist/runtime/personal-turns.js.map +1 -0
  194. package/dist/runtime/principal-access.d.ts +8 -0
  195. package/dist/runtime/principal-access.d.ts.map +1 -1
  196. package/dist/runtime/principal-access.js +99 -4
  197. package/dist/runtime/principal-access.js.map +1 -1
  198. package/dist/runtime/principal-sessions.d.ts +16 -2
  199. package/dist/runtime/principal-sessions.d.ts.map +1 -1
  200. package/dist/runtime/principal-sessions.js +104 -21
  201. package/dist/runtime/principal-sessions.js.map +1 -1
  202. package/dist/runtime/skills.d.ts +86 -0
  203. package/dist/runtime/skills.d.ts.map +1 -0
  204. package/dist/runtime/skills.js +560 -0
  205. package/dist/runtime/skills.js.map +1 -0
  206. package/dist/runtime/stimulus-delivery.d.ts +22 -1
  207. package/dist/runtime/stimulus-delivery.d.ts.map +1 -1
  208. package/dist/runtime/stimulus-delivery.js +192 -19
  209. package/dist/runtime/stimulus-delivery.js.map +1 -1
  210. package/dist/runtime/tools-paths.d.ts +9 -0
  211. package/dist/runtime/tools-paths.d.ts.map +1 -0
  212. package/dist/runtime/tools-paths.js +98 -0
  213. package/dist/runtime/tools-paths.js.map +1 -0
  214. package/dist/runtime/turn-orders.d.ts +22 -2
  215. package/dist/runtime/turn-orders.d.ts.map +1 -1
  216. package/dist/runtime/turn-orders.js +60 -6
  217. package/dist/runtime/turn-orders.js.map +1 -1
  218. package/dist/storage/chat-sources.d.ts +21 -0
  219. package/dist/storage/chat-sources.d.ts.map +1 -1
  220. package/dist/storage/chat-sources.js +66 -4
  221. package/dist/storage/chat-sources.js.map +1 -1
  222. package/dist/storage/source-archive.d.ts +13 -0
  223. package/dist/storage/source-archive.d.ts.map +1 -1
  224. package/dist/storage/source-archive.js +103 -0
  225. package/dist/storage/source-archive.js.map +1 -1
  226. package/dist/tools/command-runner.d.ts +12 -0
  227. package/dist/tools/command-runner.d.ts.map +1 -0
  228. package/dist/tools/command-runner.js +65 -0
  229. package/dist/tools/command-runner.js.map +1 -0
  230. package/dist/tools/document-render.d.ts +24 -0
  231. package/dist/tools/document-render.d.ts.map +1 -0
  232. package/dist/tools/document-render.js +208 -0
  233. package/dist/tools/document-render.js.map +1 -0
  234. package/dist/tools/document-toolkit.d.ts +15 -0
  235. package/dist/tools/document-toolkit.d.ts.map +1 -0
  236. package/dist/tools/document-toolkit.js +501 -0
  237. package/dist/tools/document-toolkit.js.map +1 -0
  238. package/dist/tools/office-render.d.ts +28 -0
  239. package/dist/tools/office-render.d.ts.map +1 -0
  240. package/dist/tools/office-render.js +98 -0
  241. package/dist/tools/office-render.js.map +1 -0
  242. package/dist/tools/toolkit-process.d.ts +9 -0
  243. package/dist/tools/toolkit-process.d.ts.map +1 -0
  244. package/dist/tools/toolkit-process.js +148 -0
  245. package/dist/tools/toolkit-process.js.map +1 -0
  246. package/dist/tools/toolkit-state.d.ts +22 -0
  247. package/dist/tools/toolkit-state.d.ts.map +1 -0
  248. package/dist/tools/toolkit-state.js +116 -0
  249. package/dist/tools/toolkit-state.js.map +1 -0
  250. package/package.json +3 -2
  251. package/toolkit/inspect-office-zip.py +16 -0
  252. package/toolkit/rasterize.py +29 -0
  253. package/toolkit/requirements.lock +664 -0
  254. package/toolkit/smoke.py +32 -0
@@ -6,7 +6,10 @@ exports.createNativeSession = createNativeSession;
6
6
  const member_system_prompt_js_1 = require("./member-system-prompt.js");
7
7
  const backend_security_js_1 = require("./backend-security.js");
8
8
  const member_paths_js_1 = require("./member-paths.js");
9
+ const tools_paths_js_1 = require("./tools-paths.js");
10
+ const launch_files_js_1 = require("../cli/launch-files.js");
9
11
  const untrusted_content_js_1 = require("../utils/untrusted-content.js");
12
+ const node_crypto_1 = require("node:crypto");
10
13
  const node_fs_1 = require("node:fs");
11
14
  const node_path_1 = require("node:path");
12
15
  const native_turn_1 = require("@jungjaehoon/mama-core/runtime/native-turn");
@@ -52,15 +55,26 @@ function modelToolResult(name, result) {
52
55
  error: (0, untrusted_content_js_1.untrustedToolData)(name, result.error),
53
56
  };
54
57
  }
55
- function driverOptions(options, deniedReadPaths, bridge) {
56
- const path = process.env.PATH;
57
- if (options.backend === 'codex' && !path?.trim()) {
58
+ function driverOptions(options, deniedReadPaths, bridge, webTools) {
59
+ if (options.toolsRoot)
60
+ (0, tools_paths_js_1.assertToolsOwnership)(options.toolsRoot);
61
+ // Pin the stable path once the host owns the root; installation can fill it later.
62
+ const path = options.toolsRoot && (0, node_fs_1.existsSync)(options.toolsRoot)
63
+ ? `${(0, node_path_1.join)(options.toolsRoot, 'current', 'bin')}:${process.env.PATH ?? ''}`
64
+ : process.env.PATH;
65
+ const configDir = options.claudeConfigDir;
66
+ if (options.backend === 'codex' && !process.env.PATH?.trim()) {
58
67
  throw new Error('Owner Codex shell requires the host PATH');
59
68
  }
60
69
  return {
61
70
  backend: options.backend,
71
+ command: (0, launch_files_js_1.findExecutable)(options.backend),
72
+ ...(options.principal !== undefined && options.backend === 'claude' && configDir !== undefined
73
+ ? { beforeSpawn: () => removePersonalClaudeEmail(configDir) }
74
+ : {}),
62
75
  processEnv: {
63
76
  ...(0, backend_security_js_1.backendEnvironment)(),
77
+ ...(path === undefined ? {} : { PATH: path }),
64
78
  ...(options.principal === undefined ? {} : { TMPDIR: (0, node_path_1.join)(options.workspaceDir, '.tmp') }),
65
79
  // A member's own config dir keeps its sessions and CLI state out of the owner's. The
66
80
  // credential store follows the CLI's own key rule: an explicit store dir, else the config
@@ -83,7 +97,7 @@ function driverOptions(options, deniedReadPaths, bridge) {
83
97
  ...(options.backend === 'codex'
84
98
  ? {
85
99
  shellTool: true,
86
- webSearch: options.principal === undefined,
100
+ webSearch: webTools,
87
101
  // macOS login shells run path_helper and put the system Python before Homebrew.
88
102
  // Keep the daemon's toolchain PATH and the driver's isolated HOME; no user profiles.
89
103
  shellEnvironment: {
@@ -113,11 +127,51 @@ function driverOptions(options, deniedReadPaths, bridge) {
113
127
  function claudeTmpDir(options) {
114
128
  return options.principal === undefined
115
129
  ? (0, node_path_1.join)(options.workspaceDir, '.tmp')
116
- : (0, member_paths_js_1.memberClaudeTmpDir)(options.principal.principalId);
130
+ : (options.principal.tmpDir ?? (0, member_paths_js_1.memberClaudeTmpDir)(options.principal.principalId));
117
131
  }
118
- function createDriver(options, nativeOptions, bridge) {
132
+ /** The shared login is not the person in this session; the CLI reads this profile at startup. */
133
+ function removePersonalClaudeEmail(configDir) {
134
+ const configPath = (0, node_path_1.join)(configDir, '.claude.json');
135
+ let text;
136
+ try {
137
+ text = (0, node_fs_1.readFileSync)(configPath, 'utf8');
138
+ }
139
+ catch (error) {
140
+ if (error.code === 'ENOENT')
141
+ return;
142
+ throw error;
143
+ }
144
+ let config;
145
+ try {
146
+ config = JSON.parse(text);
147
+ }
148
+ catch (error) {
149
+ throw new Error(`Cannot remove the account email: ${configPath} is not valid JSON`, {
150
+ cause: error,
151
+ });
152
+ }
153
+ if (!config.oauthAccount || !Object.hasOwn(config.oauthAccount, 'emailAddress'))
154
+ return;
155
+ delete config.oauthAccount.emailAddress;
156
+ const temporary = (0, node_path_1.join)(configDir, `.claude-${(0, node_crypto_1.randomUUID)()}.tmp`);
157
+ try {
158
+ (0, node_fs_1.writeFileSync)(temporary, JSON.stringify(config, null, 2), {
159
+ encoding: 'utf8',
160
+ flag: 'wx',
161
+ mode: 0o600,
162
+ });
163
+ (0, node_fs_1.renameSync)(temporary, configPath);
164
+ }
165
+ finally {
166
+ (0, node_fs_1.rmSync)(temporary, { force: true });
167
+ }
168
+ }
169
+ function createDriver(options, nativeOptions, bridge, webTools) {
170
+ if (!nativeOptions.command)
171
+ throw new Error(`${options.backend} is missing from the host PATH`);
119
172
  if (options.backend === 'codex') {
120
173
  return new runtime_process_1.CodexRuntimeProcess({
174
+ command: nativeOptions.command,
121
175
  hostRootDir: options.runtimeRoot,
122
176
  model: options.model,
123
177
  cwd: nativeOptions.cwd,
@@ -151,16 +205,18 @@ function createDriver(options, nativeOptions, bridge) {
151
205
  allowedActions: options.principal?.prepareAccess().actions,
152
206
  });
153
207
  return new persistent_cli_adapter_1.PersistentCLIAdapter({
208
+ command: nativeOptions.command,
154
209
  workspaceDir: options.workspaceDir,
155
210
  model: options.model,
156
211
  mcpConfigPath,
157
212
  permissionMode: nativeOptions.permissionMode,
158
- allowedTools: (0, claude_native_tool_policy_js_1.claudeOwnerAllowedTools)(options.workspaceDir).filter((tool) => options.principal === undefined || !['WebFetch', 'WebSearch'].includes(tool)),
213
+ allowedTools: (0, claude_native_tool_policy_js_1.claudeOwnerAllowedTools)(options.workspaceDir).filter((tool) => webTools || !['WebFetch', 'WebSearch'].includes(tool)),
159
214
  disallowedTools: (options.principal === undefined
160
215
  ? claude_native_tool_policy_js_1.claudeOwnerDisallowedTools
161
216
  : claude_native_tool_policy_js_1.claudeMemberDisallowedTools)(nativeOptions.deniedReadPaths, options.workspaceDir),
162
217
  processEnv: nativeOptions.processEnv,
163
218
  env: { CLAUDE_CODE_TMPDIR: claudeTmpDir(options) },
219
+ beforeSpawn: nativeOptions.beforeSpawn,
164
220
  pluginDir: nativeOptions.pluginDir,
165
221
  requestTimeout: nativeOptions.requestTimeout,
166
222
  ...(nativeOptions.requestMaxMs === undefined
@@ -196,6 +252,10 @@ function createNativeSession(options) {
196
252
  const deniedReadPaths = options.principal === undefined
197
253
  ? [...new Set([...readPaths.map((path) => (0, node_path_1.resolve)(path)), ...(0, backend_security_js_1.normalizeReadPaths)(readPaths)])]
198
254
  : (0, backend_security_js_1.normalizeReadPaths)(readPaths);
255
+ if (options.toolsRoot)
256
+ (0, tools_paths_js_1.assertToolsReadable)(options.toolsRoot, deniedReadPaths);
257
+ if (options.backend === 'claude' && options.principal !== undefined)
258
+ (0, member_paths_js_1.ensureMemberClaudeTmpDir)(claudeTmpDir(options));
199
259
  if (options.backend === 'claude')
200
260
  (0, claude_caller_config_js_1.ensureClaudeCallerHook)(options.workspaceDir, deniedReadPaths, options.sandboxNetworkProxy, claudeTmpDir(options));
201
261
  const sessionKey = options.principal?.sessionKey ?? exports.OWNER_RUNTIME_SESSION_KEY;
@@ -231,13 +291,15 @@ function createNativeSession(options) {
231
291
  allowedActions: configuredMcpOptions.principal?.prepareAccess().actions,
232
292
  });
233
293
  }
234
- const nativeOptions = driverOptions(configuredMcpOptions, deniedReadPaths, bridge);
294
+ // Snapshot the registry roles supplied when this session is built; a new session reads them again.
295
+ const webTools = options.principal === undefined || options.principal.roles.includes('owner');
296
+ const nativeOptions = driverOptions(configuredMcpOptions, deniedReadPaths, bridge, webTools);
235
297
  const agent = configuredMcpOptions.agent ??
236
298
  configuredMcpOptions.createAgent?.(nativeOptions) ??
237
- createDriver(configuredMcpOptions, nativeOptions, bridge);
299
+ createDriver(configuredMcpOptions, nativeOptions, bridge, webTools);
238
300
  const sessionPool = options.sessionPool ?? (0, session_pool_1.getSessionPool)();
239
301
  const standingPrompt = options.principal?.systemPrompt ?? options.ownerSystemPrompt ?? '';
240
- const ownerPolicyProvider = options.principal === undefined ? options.ownerPolicyProvider : undefined;
302
+ const ownerPolicyProvider = options.ownerPolicyProvider;
241
303
  const emptyOwnerPolicy = {
242
304
  content: null,
243
305
  fingerprint: '',
@@ -258,7 +320,7 @@ function createNativeSession(options) {
258
320
  const systemPrompt = current?.systemPrompt ?? standingPrompt;
259
321
  const ownerPolicy = ownerPolicyProvider?.() ?? emptyOwnerPolicy;
260
322
  const requestedRole = current?.nativeRole ?? defaultRole;
261
- const role = options.principal === undefined
323
+ const role = webTools
262
324
  ? requestedRole
263
325
  : {
264
326
  ...requestedRole,
@@ -267,7 +329,7 @@ function createNativeSession(options) {
267
329
  const nativeTools = options.backend === 'claude' ? (0, claude_native_tool_policy_js_1.projectClaudeNativeTools)(role) : undefined;
268
330
  const layers = (policy) => options.principal === undefined
269
331
  ? ownerSystemLayers(systemPrompt, policy)
270
- : (0, member_system_prompt_js_1.memberSystemLayers)(systemPrompt);
332
+ : [...(0, member_system_prompt_js_1.memberSystemLayers)(systemPrompt), ...ownerSystemLayers('', policy)];
271
333
  const systemLayers = layers(ownerPolicy.content);
272
334
  const buildSystemLayers = async () => layers((ownerPolicyProvider?.() ?? emptyOwnerPolicy).content);
273
335
  return {
@@ -281,6 +343,11 @@ function createNativeSession(options) {
281
343
  nativeTools: nativeTools ?? null,
282
344
  systemPrompt,
283
345
  ownerPolicyFingerprint: ownerPolicy.fingerprint,
346
+ ...(options.principal?.scopeFingerprint === undefined
347
+ ? {}
348
+ : {
349
+ scopeFingerprint: options.principal.scopeFingerprint(),
350
+ }),
284
351
  }),
285
352
  ...(options.backend === 'codex' ? { nativeCwd: options.workspaceDir } : {}),
286
353
  ...(nativeTools === undefined ? {} : { nativeTools }),
@@ -320,7 +387,7 @@ function createNativeSession(options) {
320
387
  throw new Error('Native action call is missing its tool-call identity');
321
388
  }
322
389
  return modelToolResult(name, await options.actionSurface.hostToolCall(name, input, facts.gatewayCallId, {
323
- ...(options.principal === undefined ? {} : { access: memberAccess(context?.access) }),
390
+ ...(options.principal === undefined ? {} : { access: options.principal.prepareAccess() }),
324
391
  session: {
325
392
  ...(facts.modelRunId === undefined ? {} : { modelRunId: facts.modelRunId }),
326
393
  gatewayCallId: facts.gatewayCallId,
@@ -1 +1 @@
1
- {"version":3,"file":"native-session.js","sourceRoot":"","sources":["../../src/runtime/native-session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"native-session.js","sourceRoot":"","sources":["../../src/runtime/native-session.ts"],"names":[],"mappings":"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"}
@@ -7,8 +7,10 @@
7
7
  * clients in command position, not URL literals: a
8
8
  * script that reads a sheet full of links is not an attempt. They are a heuristic: a client they do
9
9
  * not name, or a script file written first and run after, is missed.
10
- * Member shell starts stay in tool_traces only: they are not proof of a refused connection.
11
- * Members have no web tools. Their bound sandbox proxy alone reports refusals to the owner.
10
+ * Plain-member shell starts stay in tool_traces only: they are not proof of a refused connection.
11
+ * Plain members have no web tools. Their bound sandbox proxy alone reports refusals to the
12
+ * common channel. Owner-role personal sessions have web tools; fetches and shell attempts alert
13
+ * only that person's DM. Shared storage keeps only who, what kind and when (2026-10-12).
12
14
  */
13
15
  import type { NativeEffectObserver } from '@jungjaehoon/mama-core/runtime/native-effect-observer';
14
16
  import type { OutboundAttemptEvent } from '../api/security-events.js';
@@ -21,5 +23,6 @@ export declare function outboundAttempt(name: string, input: Record<string, unkn
21
23
  export declare function withOutboundAttempts(inner: NativeEffectObserver, modelRunId: string, sink: (event: OutboundAttemptEvent) => void, principal?: {
22
24
  principalId: string;
23
25
  ownerPrincipalId: string;
26
+ ownerRole: boolean;
24
27
  }): NativeEffectObserver;
25
28
  //# sourceMappingURL=outbound-attempts.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"outbound-attempts.d.ts","sourceRoot":"","sources":["../../src/runtime/outbound-attempts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uDAAuD,CAAC;AAGlG,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAwDtE,iFAAiF;AACjF,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,UAAU,EAAE,MAAM,GACjB,oBAAoB,GAAG,IAAI,CA4B7B;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,oBAAoB,EAC3B,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,IAAI,EAC3C,SAAS,CAAC,EAAE;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,gBAAgB,EAAE,MAAM,CAAA;CAAE,GAC5D,oBAAoB,CAmBtB"}
1
+ {"version":3,"file":"outbound-attempts.d.ts","sourceRoot":"","sources":["../../src/runtime/outbound-attempts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uDAAuD,CAAC;AAGlG,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAwDtE,iFAAiF;AACjF,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,UAAU,EAAE,MAAM,GACjB,oBAAoB,GAAG,IAAI,CA4B7B;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,oBAAoB,EAC3B,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,IAAI,EAC3C,SAAS,CAAC,EAAE;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,gBAAgB,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,GAChF,oBAAoB,CAqBtB"}
@@ -96,7 +96,8 @@ function withOutboundAttempts(inner, modelRunId, sink, principal) {
96
96
  return {
97
97
  started(name, input) {
98
98
  inner.started(name, input);
99
- if (principal !== undefined && principal.principalId !== principal.ownerPrincipalId)
99
+ const personal = principal !== undefined && principal.principalId !== principal.ownerPrincipalId;
100
+ if (personal && !principal.ownerRole)
100
101
  return;
101
102
  const event = outboundAttempt(name, input, modelRunId);
102
103
  if (event === null)
@@ -106,7 +107,7 @@ function withOutboundAttempts(inner, modelRunId, sink, principal) {
106
107
  return;
107
108
  seen.add(event.callId);
108
109
  }
109
- sink(event);
110
+ sink(personal ? { ...event, principalId: principal.principalId } : event);
110
111
  },
111
112
  settled: (name, toolUseId, isError, outcome) => inner.settled(name, toolUseId, isError, outcome),
112
113
  interrupted: () => inner.interrupted(),
@@ -1 +1 @@
1
- {"version":3,"file":"outbound-attempts.js","sourceRoot":"","sources":["../../src/runtime/outbound-attempts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"outbound-attempts.js","sourceRoot":"","sources":["../../src/runtime/outbound-attempts.ts"],"names":[],"mappings":"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"}
@@ -1,26 +1,28 @@
1
- /**
2
- * Whose word a rule is (owner, 2026-10-01): the owner's own conversation carries authority, and
3
- * every connector message is observation, including the owner's own lines in a client room. A
4
- * rule (lesson, preference, constraint, workflow) written in an owner-chat turn is an owner rule,
5
- * and only an owner-chat turn replaces or retires it. Rules learned in other turns are memory too,
6
- * and any turn may add or change them.
7
- *
8
- * Authorship comes from the durable judgment command binding, and the message ref identifies
9
- * the chat turn. The mailbox drops handled rows after seven days while a rule lasts. A
10
- * subagent's calls carry `subagent:<thread>`: the agent that heard the owner records the correction.
11
- */
12
1
  import type { ActionContext, ActionRegistration, DatabaseInstance } from '@jungjaehoon/mama-core';
2
+ import { type PrincipalRepository } from '@jungjaehoon/mama-core';
3
+ export declare function holdsOwnerRole(repository: Pick<PrincipalRepository, 'listRoles'>, principalId: string): boolean;
13
4
  export declare const RULE_KINDS: readonly ["lesson", "preference", "constraint", "workflow"];
14
5
  export declare const POLICY_UPDATE_ACTION = "manage.policy.update";
15
6
  export declare function isOwnerChatRef(ref: unknown): boolean;
7
+ export interface OwnerMessageAuthority {
8
+ adapter: DatabaseInstance;
9
+ ownerPrincipalId: string;
10
+ isOwnerMessageTurn(sourceMessageRef: string, principalId: string): boolean;
11
+ }
12
+ /** The host's message binding names the person; the common session itself is no person. */
13
+ export declare function messageTurnCaller(context: ActionContext, ports: OwnerMessageAuthority): string | undefined;
14
+ /** Re-read status and role when the action executes, including after a target-chain wait. */
15
+ export declare function activeOwnerMessageCaller(context: ActionContext, ports: OwnerMessageAuthority): string | undefined;
16
16
  /**
17
17
  * Owner-authored chat rules among these ids. Migration 075 left earlier records without command
18
18
  * bindings; without authenticated authorship they remain learned rules, even with a chat ref.
19
19
  */
20
20
  export declare function ownerRuleIds(adapter: DatabaseInstance, ids: readonly string[], ownerPrincipalId: string): Set<string>;
21
- export declare function ownerSpeaking(context: ActionContext, ownerPrincipalId: string): boolean;
21
+ export declare function ownerSpeaking(context: ActionContext, ownerPrincipalId: string, commonChannelId?: string): boolean;
22
22
  /** The records a memory.save replaces, or the one a memory.retire retires. */
23
23
  export declare function amendedRecordIds(action: string, input: unknown): string[];
24
24
  /** Policy revisions have one writer; other owner rules change only in owner chat. */
25
- export declare function guardOwnerRules(registration: ActionRegistration, adapter: DatabaseInstance, ownerPrincipalId: string): ActionRegistration;
25
+ export declare function guardOwnerRules(registration: ActionRegistration, adapter: DatabaseInstance, ownerPrincipalId: string, commonChannelId?: string,
26
+ /** Whether the caller's own source reads (channels, enrollment floor) reach an observation. */
27
+ observationVisible?: (observationId: string, context: ActionContext) => boolean): ActionRegistration;
26
28
  //# sourceMappingURL=owner-authority.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"owner-authority.d.ts","sourceRoot":"","sources":["../../src/runtime/owner-authority.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAElG,eAAO,MAAM,UAAU,6DAA8D,CAAC;AACtF,eAAO,MAAM,oBAAoB,yBAAyB,CAAC;AAI3D,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAEpD;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAC1B,OAAO,EAAE,gBAAgB,EACzB,GAAG,EAAE,SAAS,MAAM,EAAE,EACtB,gBAAgB,EAAE,MAAM,GACvB,GAAG,CAAC,MAAM,CAAC,CAiCb;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAMvF;AAED,8EAA8E;AAC9E,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,MAAM,EAAE,CAWzE;AAED,qFAAqF;AACrF,wBAAgB,eAAe,CAC7B,YAAY,EAAE,kBAAkB,EAChC,OAAO,EAAE,gBAAgB,EACzB,gBAAgB,EAAE,MAAM,GACvB,kBAAkB,CAmDpB"}
1
+ {"version":3,"file":"owner-authority.d.ts","sourceRoot":"","sources":["../../src/runtime/owner-authority.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EACV,aAAa,EACb,kBAAkB,EAClB,gBAAgB,EAEjB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAA6B,KAAK,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAE7F,wBAAgB,cAAc,CAC5B,UAAU,EAAE,IAAI,CAAC,mBAAmB,EAAE,WAAW,CAAC,EAClD,WAAW,EAAE,MAAM,GAClB,OAAO,CAET;AAED,eAAO,MAAM,UAAU,6DAA8D,CAAC;AAGtF,eAAO,MAAM,oBAAoB,yBAAyB,CAAC;AAI3D,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAEpD;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,gBAAgB,CAAC;IAC1B,gBAAgB,EAAE,MAAM,CAAC;IACzB,kBAAkB,CAAC,gBAAgB,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC;CAC5E;AAED,2FAA2F;AAC3F,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,aAAa,EACtB,KAAK,EAAE,qBAAqB,GAC3B,MAAM,GAAG,SAAS,CAkBpB;AAED,6FAA6F;AAC7F,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,aAAa,EACtB,KAAK,EAAE,qBAAqB,GAC3B,MAAM,GAAG,SAAS,CAUpB;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAC1B,OAAO,EAAE,gBAAgB,EACzB,GAAG,EAAE,SAAS,MAAM,EAAE,EACtB,gBAAgB,EAAE,MAAM,GACvB,GAAG,CAAC,MAAM,CAAC,CAkCb;AAED,wBAAgB,aAAa,CAC3B,OAAO,EAAE,aAAa,EACtB,gBAAgB,EAAE,MAAM,EACxB,eAAe,CAAC,EAAE,MAAM,GACvB,OAAO,CAWT;AAED,8EAA8E;AAC9E,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,MAAM,EAAE,CAWzE;AAED,qFAAqF;AACrF,wBAAgB,eAAe,CAC7B,YAAY,EAAE,kBAAkB,EAChC,OAAO,EAAE,gBAAgB,EACzB,gBAAgB,EAAE,MAAM,EACxB,eAAe,CAAC,EAAE,MAAM;AACxB,+FAA+F;AAC/F,kBAAkB,GAAE,CAAC,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,KAAK,OAAqB,GAC3F,kBAAkB,CAkLpB"}
@@ -1,17 +1,68 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.POLICY_UPDATE_ACTION = exports.RULE_KINDS = void 0;
4
+ exports.holdsOwnerRole = holdsOwnerRole;
4
5
  exports.isOwnerChatRef = isOwnerChatRef;
6
+ exports.messageTurnCaller = messageTurnCaller;
7
+ exports.activeOwnerMessageCaller = activeOwnerMessageCaller;
5
8
  exports.ownerRuleIds = ownerRuleIds;
6
9
  exports.ownerSpeaking = ownerSpeaking;
7
10
  exports.amendedRecordIds = amendedRecordIds;
8
11
  exports.guardOwnerRules = guardOwnerRules;
12
+ /**
13
+ * Whose word a rule is (owner, 2026-10-01): the owner's own conversation carries authority, and
14
+ * every connector message is observation, including the owner's own lines in a client room. A
15
+ * rule (lesson, preference, constraint, workflow) written in an owner-chat turn is an owner rule,
16
+ * and only an owner-chat turn replaces or retires it. Rules learned in other turns are memory too,
17
+ * and any turn may add or change them.
18
+ *
19
+ * Authorship comes from the durable judgment command binding, and the message ref identifies
20
+ * the chat turn. The mailbox drops handled rows after seven days while a rule lasts. A
21
+ * subagent's calls carry `subagent:<thread>`: the agent that heard the owner records the correction.
22
+ */
23
+ const knowledge_1 = require("@jungjaehoon/mama-core/knowledge");
24
+ const principal_access_js_1 = require("./principal-access.js");
25
+ const mama_core_1 = require("@jungjaehoon/mama-core");
26
+ function holdsOwnerRole(repository, principalId) {
27
+ return repository.listRoles(principalId).some(({ role }) => role === 'owner');
28
+ }
9
29
  exports.RULE_KINDS = ['lesson', 'preference', 'constraint', 'workflow'];
30
+ const COMMON_RULE_TOOL = 'common-channel-rule';
10
31
  exports.POLICY_UPDATE_ACTION = 'manage.policy.update';
11
32
  const OWNER_CHAT_REF = /^(?:telegram|discord|slack):[^:]+:[^:]+$/;
12
33
  function isOwnerChatRef(ref) {
13
34
  return typeof ref === 'string' && OWNER_CHAT_REF.test(ref);
14
35
  }
36
+ /** The host's message binding names the person; the common session itself is no person. */
37
+ function messageTurnCaller(context, ports) {
38
+ const ref = context.session?.sourceMessageRef;
39
+ const principalId = context.access.principalId;
40
+ if (context.session?.replaySourceEndMs !== undefined ||
41
+ !isOwnerChatRef(ref) ||
42
+ !ports.isOwnerMessageTurn(ref, principalId))
43
+ return undefined;
44
+ if (principalId !== ports.ownerPrincipalId)
45
+ return principalId;
46
+ const row = ports.adapter
47
+ .prepare(`SELECT json_extract(payload_json, '$.senderPrincipalId') AS sender
48
+ FROM mailbox_inputs WHERE stimulus_id=? AND principal_id=? AND kind='owner_message'
49
+ ORDER BY id DESC LIMIT 1`)
50
+ .get(ref, principalId);
51
+ return row?.sender ?? undefined;
52
+ }
53
+ /** Re-read status and role when the action executes, including after a target-chain wait. */
54
+ function activeOwnerMessageCaller(context, ports) {
55
+ const caller = messageTurnCaller(context, ports);
56
+ if (!caller)
57
+ return undefined;
58
+ const repository = (0, mama_core_1.createPrincipalRepository)(ports.adapter);
59
+ const principal = repository.findById(caller);
60
+ return principal?.kind === 'member' &&
61
+ principal.status === 'active' &&
62
+ holdsOwnerRole(repository, caller)
63
+ ? caller
64
+ : undefined;
65
+ }
15
66
  /**
16
67
  * Owner-authored chat rules among these ids. Migration 075 left earlier records without command
17
68
  * bindings; without authenticated authorship they remain learned rules, even with a chat ref.
@@ -26,21 +77,27 @@ function ownerRuleIds(adapter, ids, ownerPrincipalId) {
26
77
  AND EXISTS (
27
78
  SELECT 1 FROM judgment_commands j
28
79
  JOIN command_bindings b ON b.command_id = j.command_id
29
- WHERE j.record_id = d.id AND b.principal_id = ?
80
+ WHERE j.record_id = d.id AND (b.principal_id = ? OR
81
+ json_extract(d.provenance_json, '$.tool_name') = ?)
30
82
  AND b.action = 'judgment.append' AND b.receipt_kind = 'judgment'
31
83
  AND b.receipt_key = d.id
32
84
  )`)
33
- .all(...ids, ownerPrincipalId);
85
+ .all(...ids, ownerPrincipalId, COMMON_RULE_TOOL);
34
86
  return new Set(rows
35
87
  .filter((row) => exports.RULE_KINDS.includes(row.kind) &&
36
88
  row.provenance_json !== null &&
37
89
  isOwnerChatRef(JSON.parse(row.provenance_json).source_message_ref))
38
90
  .map((row) => row.id));
39
91
  }
40
- function ownerSpeaking(context, ownerPrincipalId) {
41
- return (context.access.principalId === ownerPrincipalId &&
92
+ function ownerSpeaking(context, ownerPrincipalId, commonChannelId) {
93
+ const ref = context.session?.sourceMessageRef;
94
+ // With a common channel configured, owner policy changes come only from its messages: the
95
+ // common session's turn or a room session there, never another allowed group.
96
+ return ((context.access.principalId === ownerPrincipalId ||
97
+ (commonChannelId !== undefined && (0, principal_access_js_1.roomChannel)(context.access) === commonChannelId)) &&
98
+ (commonChannelId === undefined || ref?.startsWith(`telegram:${commonChannelId}:`) === true) &&
42
99
  context.session?.replaySourceEndMs === undefined &&
43
- isOwnerChatRef(context.session?.sourceMessageRef));
100
+ isOwnerChatRef(ref));
44
101
  }
45
102
  /** The records a memory.save replaces, or the one a memory.retire retires. */
46
103
  function amendedRecordIds(action, input) {
@@ -55,7 +112,9 @@ function amendedRecordIds(action, input) {
55
112
  return named.filter((id) => typeof id === 'string');
56
113
  }
57
114
  /** Policy revisions have one writer; other owner rules change only in owner chat. */
58
- function guardOwnerRules(registration, adapter, ownerPrincipalId) {
115
+ function guardOwnerRules(registration, adapter, ownerPrincipalId, commonChannelId,
116
+ /** Whether the caller's own source reads (channels, enrollment floor) reach an observation. */
117
+ observationVisible = () => false) {
59
118
  const action = registration.contract.name;
60
119
  return {
61
120
  ...registration,
@@ -78,14 +137,111 @@ function guardOwnerRules(registration, adapter, ownerPrincipalId) {
78
137
  error.name = 'denied';
79
138
  throw error;
80
139
  }
140
+ // Core checks only that a linked observation exists. Any caller other than the common
141
+ // session links an observation, or an edge with one at either end, only if its own source
142
+ // reads reach it.
143
+ if (context.access.principalId !== ownerPrincipalId) {
144
+ const links = input.links ?? [];
145
+ const linkedObservations = links.flatMap((link) => {
146
+ if (link.target.kind === 'observation')
147
+ return [link.target.id];
148
+ if (link.target.kind !== 'edge')
149
+ return [];
150
+ const edge = adapter
151
+ .prepare('SELECT subject_kind, subject_id, object_kind, object_id FROM twin_edges WHERE edge_id = ?')
152
+ .get(link.target.id);
153
+ if (!edge)
154
+ return [];
155
+ return [
156
+ ...(edge.subject_kind === 'observation' ? [edge.subject_id] : []),
157
+ ...(edge.object_kind === 'observation' ? [edge.object_id] : []),
158
+ ];
159
+ });
160
+ for (const id of linkedObservations) {
161
+ if (!observationVisible(id, context)) {
162
+ const error = new Error(`A judgment reference is unavailable: observation ${id}`);
163
+ error.name = 'denied';
164
+ throw error;
165
+ }
166
+ }
167
+ }
81
168
  const owned = ownerRuleIds(adapter, ids, ownerPrincipalId);
82
- if (owned.size > 0 && !ownerSpeaking(context, ownerPrincipalId)) {
169
+ if (owned.size > 0 && !ownerSpeaking(context, ownerPrincipalId, commonChannelId)) {
83
170
  const error = new Error(`${[...owned].join(', ')} ${owned.size === 1 ? 'is an owner rule' : 'are owner rules'}: ` +
84
- 'only the owner changes one, in an owner chat turn. Save what you learned as a lesson ' +
171
+ 'change it in the common channel. Save what you learned as a personal lesson ' +
85
172
  'without replacing it, or ask the owner in your reply or report.');
86
173
  error.name = 'denied';
87
174
  throw error;
88
175
  }
176
+ if (owned.size > 0 &&
177
+ context.access.principalId !== ownerPrincipalId &&
178
+ ownerSpeaking(context, ownerPrincipalId, commonChannelId)) {
179
+ const command = input;
180
+ if (ids.some((id) => !owned.has(id)) ||
181
+ (action === 'memory.save' && !exports.RULE_KINDS.includes(command.kind))) {
182
+ const error = new Error('Common rule corrections may replace or retire only owner rules and must keep a rule kind');
183
+ error.name = 'denied';
184
+ throw error;
185
+ }
186
+ // Check references under the original authority before admitting the rule targets.
187
+ // The common scope below authorizes only the named owner rules and the new rule.
188
+ for (const [refs, scopeIds] of [
189
+ [(command.links ?? []).map((link) => link.target), (0, knowledge_1.readableScopeIds)(context.access)],
190
+ [
191
+ (command.amends ?? []).map((amendment) => amendment.target),
192
+ (0, knowledge_1.admittedScopeIds)(context.access),
193
+ ],
194
+ ]) {
195
+ for (const ref of refs) {
196
+ if (!(0, knowledge_1.referenceExists)(adapter, ref, scopeIds)) {
197
+ const error = new Error(`A judgment reference is unavailable: ${ref.kind} ${ref.id}`);
198
+ error.name = 'denied';
199
+ throw error;
200
+ }
201
+ }
202
+ }
203
+ // A common rule's correction is common; a rule saved only in a partition keeps that
204
+ // partition instead of being promoted into the common records.
205
+ const common = { kind: 'user', id: ownerPrincipalId };
206
+ const bound = adapter
207
+ .prepare(`SELECT DISTINCT s.kind, s.external_id FROM memory_scope_bindings b
208
+ JOIN memory_scopes s ON s.id = b.scope_id
209
+ WHERE b.memory_id IN (${[...owned].map(() => '?').join(',')})`)
210
+ .all(...owned).map((row) => ({ kind: row.kind, id: row.external_id }));
211
+ const scopes = bound.length === 0 ||
212
+ bound.some((scope) => scope.kind === common.kind && scope.id === common.id)
213
+ ? [common]
214
+ : bound;
215
+ // A partition rule is corrected only by a room that still holds that partition.
216
+ if (scopes === bound &&
217
+ !bound.every((target) => context.access.scopes.some((scope) => scope.kind === target.kind && scope.id === target.id))) {
218
+ const error = new Error('The rule is bound to a project outside your grants');
219
+ error.name = 'denied';
220
+ throw error;
221
+ }
222
+ return await registration.exec(action === 'memory.save' ? { ...input, scopes } : input, {
223
+ ...context,
224
+ session: { ...context.session, toolName: COMMON_RULE_TOOL },
225
+ access: {
226
+ ...context.access,
227
+ scopes: [
228
+ ...context.access.scopes.filter((scope) => !scopes.some((target) => target.kind === scope.kind && target.id === scope.id)),
229
+ ...scopes,
230
+ ],
231
+ defaultScopes: scopes,
232
+ },
233
+ });
234
+ }
235
+ // Stamp the host-selected common-channel rule path, never a scope supplied by the caller.
236
+ const kind = input.kind;
237
+ if (action === 'memory.save' &&
238
+ exports.RULE_KINDS.includes(kind) &&
239
+ ownerSpeaking(context, ownerPrincipalId, commonChannelId)) {
240
+ return await registration.exec(input, {
241
+ ...context,
242
+ session: { ...context.session, toolName: COMMON_RULE_TOOL },
243
+ });
244
+ }
89
245
  return await registration.exec(input, context);
90
246
  },
91
247
  };