@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
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isPersonalTurnTextKey = exports.PersonalTurnFinalFailure = void 0;
4
+ exports.deliverPersonalTurnResult = deliverPersonalTurnResult;
5
+ const telegram_errors_js_1 = require("../gateways/telegram-errors.js");
6
+ /** Final product failures settle an autonomous input without a successful completion. */
7
+ class PersonalTurnFinalFailure extends Error {
8
+ }
9
+ exports.PersonalTurnFinalFailure = PersonalTurnFinalFailure;
10
+ const isPersonalTurnTextKey = (key) => key.startsWith('job:') || key.startsWith('notice:');
11
+ exports.isPersonalTurnTextKey = isPersonalTurnTextKey;
12
+ /** Native results, DM receipts and chat are independently durable for jobs and notices. */
13
+ async function deliverPersonalTurnResult(result, ports) {
14
+ if (ports.isClosed())
15
+ return;
16
+ if (ports.hasExchange()) {
17
+ await ports.completeIfCurrent();
18
+ return;
19
+ }
20
+ if (ports.isOffboarded())
21
+ throw new PersonalTurnFinalFailure(`${ports.label} person is no longer active`);
22
+ const text = result.response.trim();
23
+ // A confirmed send still owes its archive after suspension or a job revision.
24
+ if (text !== '[ack]' && ports.delivered(ports.key)) {
25
+ ports.archive(text);
26
+ await ports.completeIfCurrent();
27
+ return;
28
+ }
29
+ if (!ports.isActive())
30
+ throw new PersonalTurnFinalFailure(`${ports.label} person is no longer active`);
31
+ await ports.assertCurrent();
32
+ const access = ports.access();
33
+ if (!text)
34
+ throw new PersonalTurnFinalFailure(`${ports.label} returned no result; use [ack] when there is nothing to tell`);
35
+ if (text !== '[ack]') {
36
+ try {
37
+ if (!(await ports.send(access, text, ports.key)))
38
+ throw new Error(`${ports.label} DM delivery was not confirmed`);
39
+ }
40
+ catch (error) {
41
+ if (error instanceof telegram_errors_js_1.TelegramJobDeliveryRejected || (0, telegram_errors_js_1.isDefinitiveTelegramRejection)(error))
42
+ throw new PersonalTurnFinalFailure(`${ports.label} DM delivery was rejected`, {
43
+ cause: error,
44
+ });
45
+ throw error;
46
+ }
47
+ ports.archive(text);
48
+ }
49
+ await ports.complete(access);
50
+ }
51
+ //# sourceMappingURL=personal-turns.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"personal-turns.js","sourceRoot":"","sources":["../../src/runtime/personal-turns.ts"],"names":[],"mappings":";;;AAcA,8DAsDC;AAlED,uEAGwC;AAExC,yFAAyF;AACzF,MAAa,wBAAyB,SAAQ,KAAK;CAAG;AAAtD,4DAAsD;AAE/C,MAAM,qBAAqB,GAAG,CAAC,GAAW,EAAE,EAAE,CACnD,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;AADzC,QAAA,qBAAqB,yBACoB;AAEtD,2FAA2F;AACpF,KAAK,UAAU,yBAAyB,CAC7C,MAAwB,EACxB,KAcC;IAED,IAAI,KAAK,CAAC,QAAQ,EAAE;QAAE,OAAO;IAC7B,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;QACxB,MAAM,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAChC,OAAO;IACT,CAAC;IACD,IAAI,KAAK,CAAC,YAAY,EAAE;QACtB,MAAM,IAAI,wBAAwB,CAAC,GAAG,KAAK,CAAC,KAAK,6BAA6B,CAAC,CAAC;IAClF,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IACpC,8EAA8E;IAC9E,IAAI,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QACnD,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACpB,MAAM,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAChC,OAAO;IACT,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;QACnB,MAAM,IAAI,wBAAwB,CAAC,GAAG,KAAK,CAAC,KAAK,6BAA6B,CAAC,CAAC;IAClF,MAAM,KAAK,CAAC,aAAa,EAAE,CAAC;IAC5B,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;IAC9B,IAAI,CAAC,IAAI;QACP,MAAM,IAAI,wBAAwB,CAChC,GAAG,KAAK,CAAC,KAAK,8DAA8D,CAC7E,CAAC;IACJ,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;QACrB,IAAI,CAAC;YACH,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC9C,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,KAAK,gCAAgC,CAAC,CAAC;QACpE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,gDAA2B,IAAI,IAAA,kDAA6B,EAAC,KAAK,CAAC;gBACtF,MAAM,IAAI,wBAAwB,CAAC,GAAG,KAAK,CAAC,KAAK,2BAA2B,EAAE;oBAC5E,KAAK,EAAE,KAAK;iBACb,CAAC,CAAC;YACL,MAAM,KAAK,CAAC;QACd,CAAC;QACD,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;IACD,MAAM,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAC/B,CAAC"}
@@ -5,11 +5,19 @@ export declare function validateMemberMemoryGrant(scope: {
5
5
  scopeKind: string;
6
6
  scopeId: string;
7
7
  }, ownerAccess: JudgmentAccess): void;
8
+ export declare function roomChatFloor(access: JudgmentAccess): number | undefined;
8
9
  export interface PrincipalAccessOptions {
9
10
  adapter: DatabaseInstance;
10
11
  ownerAccess: JudgmentAccess;
11
12
  agentId: string;
13
+ sessionKey?: string;
14
+ /** The common channel; only a room there reads and changes owner policy. */
15
+ commonChannelId?: string;
12
16
  }
17
+ export declare function memberRoomSessionKey(principalId: string, channel: string): string;
18
+ export declare function memberRoomChannel(principalId: string, key?: string): string | undefined;
19
+ /** Set only by the host's session-key resolver, never by action input. */
20
+ export declare function roomChannel(access: JudgmentAccess): string | undefined;
13
21
  /** Registry-backed authority for future member turns; admission is wired separately. */
14
22
  export declare function resolvePrincipalAccess(principalId: string, options: PrincipalAccessOptions): JudgmentAccess;
15
23
  //# sourceMappingURL=principal-access.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"principal-access.d.ts","sourceRoot":"","sources":["../../src/runtime/principal-access.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAIvE,gGAAgG;AAChG,wBAAgB,yBAAyB,CACvC,KAAK,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,EAC7C,WAAW,EAAE,cAAc,GAC1B,IAAI,CASN;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,gBAAgB,CAAC;IAC1B,WAAW,EAAE,cAAc,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wFAAwF;AACxF,wBAAgB,sBAAsB,CACpC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,sBAAsB,GAC9B,cAAc,CAmDhB"}
1
+ {"version":3,"file":"principal-access.d.ts","sourceRoot":"","sources":["../../src/runtime/principal-access.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAMvE,gGAAgG;AAChG,wBAAgB,yBAAyB,CACvC,KAAK,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,EAC7C,WAAW,EAAE,cAAc,GAC1B,IAAI,CASN;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,GAAG,SAAS,CAExE;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,gBAAgB,CAAC;IAC1B,WAAW,EAAE,cAAc,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4EAA4E;IAC5E,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAEjF;AAED,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAKvF;AAED,0EAA0E;AAC1E,wBAAgB,WAAW,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,GAAG,SAAS,CAEtE;AAED,wFAAwF;AACxF,wBAAgB,sBAAsB,CACpC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,sBAAsB,GAC9B,cAAc,CA0IhB"}
@@ -1,19 +1,41 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.validateMemberMemoryGrant = validateMemberMemoryGrant;
4
+ exports.roomChatFloor = roomChatFloor;
5
+ exports.memberRoomSessionKey = memberRoomSessionKey;
6
+ exports.memberRoomChannel = memberRoomChannel;
7
+ exports.roomChannel = roomChannel;
4
8
  exports.resolvePrincipalAccess = resolvePrincipalAccess;
5
9
  const mama_core_1 = require("@jungjaehoon/mama-core");
6
10
  const action_surface_js_1 = require("./action-surface.js");
11
+ const member_lifecycle_js_1 = require("../api/member-lifecycle.js");
12
+ const owner_authority_js_1 = require("./owner-authority.js");
7
13
  /** A member grant must not expose the owner's default records or make boot/turn access fail. */
8
14
  function validateMemberMemoryGrant(scope, ownerAccess) {
9
15
  if ((ownerAccess.defaultScopes ?? ownerAccess.scopes).some((defaultScope) => defaultScope.kind === scope.scopeKind && defaultScope.id === scope.scopeId))
10
16
  throw new Error(`member memory grant overlaps owner default scope: ${scope.scopeKind}:${scope.scopeId}`);
11
17
  }
18
+ function roomChatFloor(access) {
19
+ return access.roomChatFloor;
20
+ }
21
+ function memberRoomSessionKey(principalId, channel) {
22
+ return `member:${principalId}:room:telegram:${channel}`;
23
+ }
24
+ function memberRoomChannel(principalId, key) {
25
+ const prefix = `member:${principalId}:room:telegram:`;
26
+ return key?.startsWith(prefix) && key.length > prefix.length
27
+ ? key.slice(prefix.length)
28
+ : undefined;
29
+ }
30
+ /** Set only by the host's session-key resolver, never by action input. */
31
+ function roomChannel(access) {
32
+ return access.roomChannel;
33
+ }
12
34
  /** Registry-backed authority for future member turns; admission is wired separately. */
13
35
  function resolvePrincipalAccess(principalId, options) {
14
36
  const { adapter, ownerAccess, agentId } = options;
15
37
  const principal = adapter
16
- .prepare('SELECT kind, status FROM principals WHERE principal_id = ?')
38
+ .prepare('SELECT kind, status, created_at FROM principals WHERE principal_id = ?')
17
39
  .get(principalId);
18
40
  if (!principal)
19
41
  throw new Error(`unknown principal: ${principalId}`);
@@ -31,12 +53,15 @@ function resolvePrincipalAccess(principalId, options) {
31
53
  if (identities.length !== 1)
32
54
  throw new Error(`member ${principalId} requires exactly one Telegram private identity`);
33
55
  const dmId = identities[0].external_id;
56
+ const room = memberRoomChannel(principalId, options.sessionKey);
57
+ const repository = (0, mama_core_1.createPrincipalRepository)(adapter);
58
+ const ownerRole = (0, owner_authority_js_1.holdsOwnerRole)(repository, principalId);
34
59
  // Unscoped owner work binds its defaults; partition write authority does not make a default.
35
60
  const readScopes = [];
36
61
  const connectors = new Set(['chat']);
37
62
  // chat-sources stores gateway channelKey under the transport prefix.
38
63
  const channels = { chat: [`telegram:${dmId}`] };
39
- for (const { scope } of (0, mama_core_1.createPrincipalRepository)(adapter).listActiveGrants(principalId)) {
64
+ for (const { scope } of repository.listActiveGrants(principalId)) {
40
65
  if (scope.kind === 'memory') {
41
66
  validateMemberMemoryGrant(scope, ownerAccess);
42
67
  readScopes.push({ kind: scope.scopeKind, id: scope.scopeId });
@@ -49,17 +74,87 @@ function resolvePrincipalAccess(principalId, options) {
49
74
  channels[scope.connector] = granted;
50
75
  }
51
76
  }
77
+ if (room !== undefined) {
78
+ const scopes = [
79
+ ...new Map(readScopes.map((scope) => [`${scope.kind}\0${scope.id}`, scope])).values(),
80
+ ];
81
+ return {
82
+ principalId,
83
+ agentId,
84
+ scopes,
85
+ readScopes: scopes,
86
+ defaultScopes: [],
87
+ connectors: [...connectors],
88
+ channels: { ...channels, chat: [`telegram:${room}`] },
89
+ destinations: [{ kind: 'telegram', id: room }],
90
+ actions: [
91
+ ...action_surface_js_1.MEMBER_ACTIONS.filter((action) => !action.startsWith('schedule.job.') &&
92
+ !action.startsWith('memory.checkpoint.') &&
93
+ // Skills include the person's own workflows, and core graph and provenance reads do
94
+ // not know the room's enrollment floor; the room's source reads apply it.
95
+ ![
96
+ 'memory.share',
97
+ 'records.export',
98
+ 'records.erase',
99
+ 'skill.list',
100
+ 'skill.read',
101
+ 'graph.query',
102
+ 'memory.read:provenance',
103
+ ].includes(action)),
104
+ 'work.create',
105
+ 'work.revise',
106
+ 'work.link',
107
+ 'work.no_update',
108
+ ...(room === options.commonChannelId ? ['manage.policy.read', 'manage.policy.update'] : []),
109
+ ],
110
+ roomChannel: room,
111
+ roomChatFloor: principal.created_at,
112
+ };
113
+ }
114
+ if (ownerRole) {
115
+ readScopes.push(...ownerAccess.scopes, ...(ownerAccess.readScopes ?? []));
116
+ for (const connector of ownerAccess.connectors ?? [])
117
+ connectors.add(connector);
118
+ // The shared authority never turns another person's Telegram DM into a common source.
119
+ const privateChannels = new Set(adapter
120
+ .prepare(`SELECT external_id FROM external_identities
121
+ WHERE connector = 'telegram' AND namespace = 'private' AND principal_id <> ?`)
122
+ .all(principalId).map(({ external_id }) => `telegram:${external_id}`));
123
+ for (const [connector, commonChannels] of Object.entries(ownerAccess.channels ?? {})) {
124
+ channels[connector] = [
125
+ ...new Set([
126
+ ...(channels[connector] ?? []),
127
+ ...commonChannels.filter((channel) => connector !== 'chat' || !privateChannels.has(channel)),
128
+ ]),
129
+ ];
130
+ }
131
+ }
52
132
  const personalScope = { kind: 'user', id: principalId };
53
133
  return {
54
134
  principalId,
55
135
  agentId,
56
136
  scopes: [personalScope],
57
137
  defaultScopes: [personalScope],
58
- readScopes,
138
+ readScopes: [
139
+ ...new Map(readScopes.map((scope) => [`${scope.kind}\0${scope.id}`, scope])).values(),
140
+ ],
59
141
  connectors: [...connectors],
60
142
  channels,
61
143
  destinations: [{ kind: 'telegram', id: dmId }],
62
- actions: action_surface_js_1.MEMBER_ACTIONS,
144
+ ...(ownerRole
145
+ ? {
146
+ connectorWideRead: (ownerAccess.connectorWideRead ?? []).filter((source) => source !== 'chat'),
147
+ }
148
+ : {}),
149
+ actions: ownerRole
150
+ ? [
151
+ ...action_surface_js_1.MEMBER_ACTIONS,
152
+ 'drive.read',
153
+ 'report.read',
154
+ ...member_lifecycle_js_1.MEMBER_MANAGEMENT_ACTIONS,
155
+ 'manage.member.enroll',
156
+ ]
157
+ : action_surface_js_1.MEMBER_ACTIONS,
63
158
  };
64
159
  }
65
160
  //# sourceMappingURL=principal-access.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"principal-access.js","sourceRoot":"","sources":["../../src/runtime/principal-access.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"principal-access.js","sourceRoot":"","sources":["../../src/runtime/principal-access.ts"],"names":[],"mappings":"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"}
@@ -5,18 +5,32 @@ interface SessionEntry {
5
5
  native: NativeSessionHandle & Partial<Pick<NativeSession, 'callAction'>>;
6
6
  delivery: ReplayClockDelivery;
7
7
  }
8
- /** One serial chain for complete owner/member turns; session state stays in each delivery. */
8
+ /** A serial chain for one principal's complete deliveries and host changes. */
9
9
  export declare function createSerialTurnChain(): (<T>(execute: () => Promise<T>) => Promise<T>) & {
10
10
  next: <T>(execute: () => Promise<T>) => Promise<T>;
11
+ afterCurrent: <T>(execute: () => Promise<T>) => Promise<T>;
12
+ isBusy: () => boolean;
13
+ current: () => Promise<void>;
14
+ directoryCurrent: () => Promise<void>;
15
+ releaseDirectoryWait: () => void;
16
+ idle: () => Promise<void>;
11
17
  hold: () => () => void;
12
18
  };
13
19
  export declare function createPrincipalSessions(ownerPrincipalId: string, unserved?: Pick<StimulusDelivery, 'onUncertain' | 'onDead'>, canRun?: (principalId: string) => boolean): {
14
20
  native: NativeSessionHandle;
15
21
  delivery: StimulusDelivery;
16
- turnChain: (<T>(execute: () => Promise<T>) => Promise<T>) & {
22
+ turnChain: (id: string) => (<T>(execute: () => Promise<T>) => Promise<T>) & {
17
23
  next: <T>(execute: () => Promise<T>) => Promise<T>;
24
+ afterCurrent: <T>(execute: () => Promise<T>) => Promise<T>;
25
+ isBusy: () => boolean;
26
+ current: () => Promise<void>;
27
+ directoryCurrent: () => Promise<void>;
28
+ releaseDirectoryWait: () => void;
29
+ idle: () => Promise<void>;
18
30
  hold: () => () => void;
19
31
  };
32
+ exclusive: <T>(execute: () => Promise<T>) => Promise<T>;
33
+ idle: () => Promise<void>;
20
34
  get: (id: string) => SessionEntry;
21
35
  add: (id: string, entry: SessionEntry) => void;
22
36
  remove: (id: string) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"principal-sessions.d.ts","sourceRoot":"","sources":["../../src/runtime/principal-sessions.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACtB,MAAM,wCAAwC,CAAC;AAChD,OAAO,KAAK,EAAwB,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAC/E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAElE,UAAU,YAAY;IACpB,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC,CAAC;IACzE,QAAQ,EAAE,mBAAmB,CAAC;CAC/B;AAED,8FAA8F;AAC9F,wBAAgB,qBAAqB,MA0Bb,CAAC,WAAW,MAAM,OAAO,CAAC,CAAC,CAAC;WACzC,CAAC,WAAW,MAAM,OAAO,CAAC,CAAC,CAAC;;EAYtC;AAED,wBAAgB,uBAAuB,CACrC,gBAAgB,EAAE,MAAM,EACxB,QAAQ,GAAE,IAAI,CAAC,gBAAgB,EAAE,aAAa,GAAG,QAAQ,CAAM,EAC/D,MAAM,GAAE,CAAC,WAAW,EAAE,MAAM,KAAK,OAAoB;;;iBAlB/B,CAAC,WAAW,MAAM,OAAO,CAAC,CAAC,CAAC;eACzC,CAAC,WAAW,MAAM,OAAO,CAAC,CAAC,CAAC;;;cAqBpB,MAAM,KAAG,YAAY;cAiE1B,MAAM,SAAS,YAAY;iBAIxB,MAAM;4BAIK,MAAM;EAEjC"}
1
+ {"version":3,"file":"principal-sessions.d.ts","sourceRoot":"","sources":["../../src/runtime/principal-sessions.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACtB,MAAM,wCAAwC,CAAC;AAChD,OAAO,KAAK,EAAwB,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAC/E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAElE,UAAU,YAAY;IACpB,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC,CAAC;IACzE,QAAQ,EAAE,mBAAmB,CAAC;CAC/B;AAED,+EAA+E;AAC/E,wBAAgB,qBAAqB,MAkDb,CAAC,WAAW,MAAM,OAAO,CAAC,CAAC,CAAC;WAEzC,CAAC,WAAW,MAAM,OAAO,CAAC,CAAC,CAAC;mBAEpB,CAAC,WAAW,MAAM,OAAO,CAAC,CAAC,CAAC;;;;;;;EAqB9C;AAED,wBAAgB,uBAAuB,CACrC,gBAAgB,EAAE,MAAM,EACxB,QAAQ,GAAE,IAAI,CAAC,gBAAgB,EAAE,aAAa,GAAG,QAAQ,CAAM,EAC/D,MAAM,GAAE,CAAC,WAAW,EAAE,MAAM,KAAK,OAAoB;;;oBAS9B,MAAM,OAvCP,CAAC,WAAW,MAAM,OAAO,CAAC,CAAC,CAAC;eAEzC,CAAC,WAAW,MAAM,OAAO,CAAC,CAAC,CAAC;uBAEpB,CAAC,WAAW,MAAM,OAAO,CAAC,CAAC,CAAC;;;;;;;;gBA+C1B,CAAC,WAAW,MAAM,OAAO,CAAC,CAAC,CAAC,KAAG,OAAO,CAAC,CAAC,CAAC;;cAmB3C,MAAM,KAAG,YAAY;cA+E1B,MAAM,SAAS,YAAY;iBAIxB,MAAM;4BAIK,MAAM;EAEjC"}
@@ -3,38 +3,71 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createSerialTurnChain = createSerialTurnChain;
4
4
  exports.createPrincipalSessions = createPrincipalSessions;
5
5
  const runtime_1 = require("@jungjaehoon/mama-core/runtime/runtime");
6
- /** One serial chain for complete owner/member turns; session state stays in each delivery. */
6
+ /** A serial chain for one principal's complete deliveries and host changes. */
7
7
  function createSerialTurnChain() {
8
8
  const queue = [];
9
+ const pending = new Set();
9
10
  let running = false;
10
11
  let holds = 0;
12
+ let current = Promise.resolve();
13
+ let directoryCurrent = Promise.resolve();
14
+ let releaseDirectoryWait = () => { };
11
15
  const pump = () => {
12
16
  if (running || holds || !queue.length)
13
17
  return;
14
18
  running = true;
15
- const work = queue.shift();
16
- void work().finally(() => {
19
+ const { work } = queue.shift();
20
+ let release;
21
+ directoryCurrent = new Promise((resolve) => {
22
+ release = resolve;
23
+ });
24
+ releaseDirectoryWait = release;
25
+ current = work().finally(() => {
26
+ release();
17
27
  running = false;
18
28
  pump();
19
29
  });
20
30
  };
21
- const add = (execute, next) => new Promise((resolve, reject) => {
22
- const work = async () => {
23
- try {
24
- resolve(await execute());
25
- }
26
- catch (error) {
27
- reject(error);
31
+ const add = (execute, position) => {
32
+ const result = new Promise((resolve, reject) => {
33
+ const work = async () => {
34
+ try {
35
+ resolve(await execute());
36
+ }
37
+ catch (error) {
38
+ reject(error);
39
+ }
40
+ };
41
+ const entry = { work, priority: position !== 'tail' };
42
+ if (position === 'next')
43
+ queue.unshift(entry);
44
+ else if (position === 'afterCurrent') {
45
+ const firstTurn = queue.findIndex((item) => !item.priority);
46
+ queue.splice(firstTurn === -1 ? queue.length : firstTurn, 0, entry);
28
47
  }
29
- };
30
- if (next)
31
- queue.unshift(work);
32
- else
33
- queue.push(work);
34
- pump();
35
- });
36
- return Object.assign((execute) => add(execute, false), {
37
- next: (execute) => add(execute, true),
48
+ else
49
+ queue.push(entry);
50
+ pump();
51
+ });
52
+ pending.add(result);
53
+ void result.then(() => pending.delete(result), () => pending.delete(result));
54
+ return result;
55
+ };
56
+ return Object.assign((execute) => add(execute, 'tail'), {
57
+ // P9 settlement jobs take the next member slot once the confirming turn releases its hold.
58
+ next: (execute) => add(execute, 'next'),
59
+ // Host changes retain arrival order but run before native turns waiting for this principal.
60
+ afterCurrent: (execute) => add(execute, 'afterCurrent'),
61
+ isBusy: () => running || holds > 0 || queue.length > 0,
62
+ current: () => current,
63
+ directoryCurrent: () => directoryCurrent,
64
+ // A host job whose native writers are retired can keep its principal reservation while
65
+ // letting unrelated member directory work pass its upload/delivery wait.
66
+ releaseDirectoryWait: () => releaseDirectoryWait(),
67
+ idle: async () => {
68
+ while (pending.size)
69
+ await Promise.allSettled([...pending]);
70
+ },
38
71
  hold: () => {
39
72
  holds++;
40
73
  let released = false;
@@ -50,7 +83,47 @@ function createSerialTurnChain() {
50
83
  }
51
84
  function createPrincipalSessions(ownerPrincipalId, unserved = {}, canRun = () => true) {
52
85
  const entries = new Map();
53
- const turnChain = createSerialTurnChain();
86
+ // Keep the chain when a session is retired/recreated: its cancelled waiters and host jobs
87
+ // must finish before the replacement session accepts a turn for the same principal.
88
+ const chains = new Map();
89
+ const directoryChanges = createSerialTurnChain();
90
+ const releases = new Map();
91
+ let exclusiveCount = 0;
92
+ const turnChain = (id) => {
93
+ let chain = chains.get(id);
94
+ if (!chain) {
95
+ chains.set(id, (chain = createSerialTurnChain()));
96
+ if (exclusiveCount && id !== ownerPrincipalId)
97
+ releases.set(id, chain.hold());
98
+ }
99
+ return chain;
100
+ };
101
+ // Enrollment and serving create new member paths; suspend/offboard set paths aside in
102
+ // .retired- archives; resume sets residual paths aside before creating a fresh environment.
103
+ // Hold member chains and drain their current work, including newly seen members. The common
104
+ // session denies both member roots wholesale, so it keeps running through these changes.
105
+ const exclusive = (execute) => {
106
+ if (exclusiveCount++ === 0)
107
+ for (const [id, chain] of chains)
108
+ if (id !== ownerPrincipalId)
109
+ releases.set(id, chain.hold());
110
+ const running = [...chains]
111
+ .filter(([id]) => id !== ownerPrincipalId)
112
+ .map(([, chain]) => chain.directoryCurrent());
113
+ return directoryChanges(async () => {
114
+ try {
115
+ await Promise.all(running);
116
+ return await execute();
117
+ }
118
+ finally {
119
+ if (--exclusiveCount === 0) {
120
+ const held = [...releases.values()];
121
+ releases.clear();
122
+ held.forEach((release) => release());
123
+ }
124
+ }
125
+ });
126
+ };
54
127
  const get = (id) => {
55
128
  const entry = entries.get(id);
56
129
  if (!entry)
@@ -61,7 +134,10 @@ function createPrincipalSessions(ownerPrincipalId, unserved = {}, canRun = () =>
61
134
  if (key === 'owner:runtime' || key === 'owner:replay')
62
135
  return get(ownerPrincipalId);
63
136
  for (const [id, entry] of entries)
64
- if (key === `member:${id}:runtime`)
137
+ if (key === `member:${id}:runtime` ||
138
+ key.startsWith(`member:${id}:job:`) ||
139
+ key.startsWith(`member:${id}:notice:`) ||
140
+ key.startsWith(`member:${id}:room:telegram:`))
65
141
  return entry;
66
142
  throw new Error(`Principal session key is not served: ${key}`);
67
143
  };
@@ -113,6 +189,13 @@ function createPrincipalSessions(ownerPrincipalId, unserved = {}, canRun = () =>
113
189
  native,
114
190
  delivery,
115
191
  turnChain,
192
+ exclusive,
193
+ idle: async () => {
194
+ await Promise.all([
195
+ directoryChanges.idle(),
196
+ ...[...chains.values()].map((chain) => chain.idle()),
197
+ ]);
198
+ },
116
199
  get,
117
200
  add: (id, entry) => {
118
201
  if (entries.has(id))
@@ -1 +1 @@
1
- {"version":3,"file":"principal-sessions.js","sourceRoot":"","sources":["../../src/runtime/principal-sessions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"principal-sessions.js","sourceRoot":"","sources":["../../src/runtime/principal-sessions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,86 @@
1
+ import { type DatabaseInstance, type MemoryRecord, type MemoryScopeRef } from '@jungjaehoon/mama-core';
2
+ export interface SkillPaths {
3
+ workspace(principalId: string): string;
4
+ toolsRoot?: string;
5
+ }
6
+ export interface SkillEntry {
7
+ id: string;
8
+ name: string;
9
+ description: string;
10
+ kind: 'workflow' | 'file';
11
+ scope: 'personal' | 'common';
12
+ topic?: string;
13
+ applies_when?: string;
14
+ path?: string;
15
+ error?: string;
16
+ revision?: string;
17
+ }
18
+ export declare function skillDenied(): Error;
19
+ export declare function createSkillStore(ports: {
20
+ adapter: DatabaseInstance;
21
+ commonPrincipalId: string;
22
+ commonScopes(): readonly MemoryScopeRef[];
23
+ paths?: SkillPaths;
24
+ }): {
25
+ list: (id: string) => Promise<SkillEntry[]>;
26
+ read: (id: string, skillId: string) => Promise<{
27
+ text: string;
28
+ files: {
29
+ path: string;
30
+ relativePath: string;
31
+ size: number;
32
+ }[];
33
+ id: string;
34
+ name: string;
35
+ description: string;
36
+ kind: "workflow" | "file";
37
+ scope: "personal" | "common";
38
+ topic?: string;
39
+ applies_when?: string;
40
+ path?: string;
41
+ error?: string;
42
+ revision?: string;
43
+ } | {
44
+ name: string;
45
+ description: string;
46
+ scope: "common" | "personal";
47
+ id: string;
48
+ topic: string;
49
+ kind: import("@jungjaehoon/mama-core").MemoryKind;
50
+ summary: string;
51
+ details: string;
52
+ applies_when?: string;
53
+ steps?: string[];
54
+ evidence_checks?: string[];
55
+ confidence: number;
56
+ status: import("@jungjaehoon/mama-core").MemoryStatus;
57
+ scopes: MemoryScopeRef[];
58
+ source: import("@jungjaehoon/mama-core").MemorySourceRef;
59
+ created_at: number | string;
60
+ updated_at: number | string;
61
+ event_date?: string | null;
62
+ event_datetime?: number | null;
63
+ outcome?: string | null;
64
+ reached_through?: import("@jungjaehoon/mama-core/memory/types").MemoryReachedThrough;
65
+ retrieval_diagnostics?: import("@jungjaehoon/mama-core").SearchHitDiagnostics;
66
+ }>;
67
+ workflows: (id: string) => Promise<MemoryRecord[]>;
68
+ workflowScopes: (id: string) => MemoryScopeRef[];
69
+ publish: (name: string) => {
70
+ name: string;
71
+ path: string;
72
+ status: "published";
73
+ };
74
+ unpublish: (name: string) => {
75
+ name: string;
76
+ status: "unpublished";
77
+ };
78
+ };
79
+ export type SkillStore = ReturnType<typeof createSkillStore>;
80
+ /**
81
+ * Full inventory is remembered locally; only capped names/descriptions reach a turn. `sources`,
82
+ * a DM's readable-sources line, goes with each full inventory: a new or stateless session and the
83
+ * first turn of each session after the host starts.
84
+ */
85
+ export declare function createSkillTurnContext(list: () => Promise<SkillEntry[]>, sources?: () => string): (isNewSession: boolean, stateless?: boolean, sessionKey?: string) => Promise<string>;
86
+ //# sourceMappingURL=skills.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../../src/runtime/skills.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,cAAc,EACpB,MAAM,wBAAwB,CAAC;AA0BhC,MAAM,WAAW,UAAU;IACzB,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAAC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AACD,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,UAAU,GAAG,MAAM,CAAC;IAC1B,KAAK,EAAE,UAAU,GAAG,QAAQ,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAuBD,wBAAgB,WAAW,IAAI,KAAK,CAEnC;AAkND,wBAAgB,gBAAgB,CAAC,KAAK,EAAE;IACtC,OAAO,EAAE,gBAAgB,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,IAAI,SAAS,cAAc,EAAE,CAAC;IAC1C,KAAK,CAAC,EAAE,UAAU,CAAC;CACpB;eA0DyB,MAAM,KAAG,OAAO,CAAC,UAAU,EAAE,CAAC;eAmE9B,MAAM,WAAW,MAAM;;;;;;;YAvX3C,MAAM;cACJ,MAAM;qBACC,MAAM;cACb,UAAU,GAAG,MAAM;eAClB,UAAU,GAAG,QAAQ;gBACpB,MAAM;uBACC,MAAM;eACd,MAAM;gBACL,MAAM;mBACH,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;oBA4PY,MAAM,KAAG,OAAO,CAAC,YAAY,EAAE,CAAC;yBARjC,MAAM,KAAG,cAAc,EAAE;oBAsL9B,MAAM;;;;;sBAoEJ,MAAM;;;;EAShC;AACD,MAAM,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE7D;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,MAAM,MAAM,IAG5F,cAAc,OAAO,EACrB,mBAAiB,EACjB,mBAAsB,KACrB,OAAO,CAAC,MAAM,CAAC,CAqDnB"}