@jungjaehoon/mama-os 0.75.0 → 0.77.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 (260) hide show
  1. package/CHANGELOG.md +112 -0
  2. package/README.md +1 -1
  3. package/dist/api/attachment-actions.d.ts.map +1 -1
  4. package/dist/api/attachment-actions.js +8 -7
  5. package/dist/api/attachment-actions.js.map +1 -1
  6. package/dist/api/code-act-actions.d.ts +3 -1
  7. package/dist/api/code-act-actions.d.ts.map +1 -1
  8. package/dist/api/code-act-actions.js +21 -9
  9. package/dist/api/code-act-actions.js.map +1 -1
  10. package/dist/api/document-actions.d.ts +13 -0
  11. package/dist/api/document-actions.d.ts.map +1 -0
  12. package/dist/api/document-actions.js +55 -0
  13. package/dist/api/document-actions.js.map +1 -0
  14. package/dist/api/drive-actions.d.ts +4 -0
  15. package/dist/api/drive-actions.d.ts.map +1 -1
  16. package/dist/api/drive-actions.js +15 -7
  17. package/dist/api/drive-actions.js.map +1 -1
  18. package/dist/api/drive-delivery.d.ts.map +1 -1
  19. package/dist/api/drive-delivery.js +8 -3
  20. package/dist/api/drive-delivery.js.map +1 -1
  21. package/dist/api/member-enrollment.d.ts +9 -3
  22. package/dist/api/member-enrollment.d.ts.map +1 -1
  23. package/dist/api/member-enrollment.js +64 -16
  24. package/dist/api/member-enrollment.js.map +1 -1
  25. package/dist/api/member-export.d.ts.map +1 -1
  26. package/dist/api/member-export.js +14 -6
  27. package/dist/api/member-export.js.map +1 -1
  28. package/dist/api/member-lifecycle.d.ts +25 -4
  29. package/dist/api/member-lifecycle.d.ts.map +1 -1
  30. package/dist/api/member-lifecycle.js +88 -21
  31. package/dist/api/member-lifecycle.js.map +1 -1
  32. package/dist/api/member-notice-actions.d.ts +18 -0
  33. package/dist/api/member-notice-actions.d.ts.map +1 -0
  34. package/dist/api/member-notice-actions.js +184 -0
  35. package/dist/api/member-notice-actions.js.map +1 -0
  36. package/dist/api/member-records.d.ts +17 -2
  37. package/dist/api/member-records.d.ts.map +1 -1
  38. package/dist/api/member-records.js +440 -82
  39. package/dist/api/member-records.js.map +1 -1
  40. package/dist/api/member-share-actions.d.ts +3 -3
  41. package/dist/api/member-share-actions.d.ts.map +1 -1
  42. package/dist/api/member-share-actions.js +47 -20
  43. package/dist/api/member-share-actions.js.map +1 -1
  44. package/dist/api/owner-policy-actions.d.ts +1 -0
  45. package/dist/api/owner-policy-actions.d.ts.map +1 -1
  46. package/dist/api/owner-policy-actions.js +8 -4
  47. package/dist/api/owner-policy-actions.js.map +1 -1
  48. package/dist/api/owner-timezone-actions.d.ts +5 -2
  49. package/dist/api/owner-timezone-actions.d.ts.map +1 -1
  50. package/dist/api/owner-timezone-actions.js +4 -6
  51. package/dist/api/owner-timezone-actions.js.map +1 -1
  52. package/dist/api/personal-job-actions.d.ts +6 -0
  53. package/dist/api/personal-job-actions.d.ts.map +1 -0
  54. package/dist/api/personal-job-actions.js +72 -0
  55. package/dist/api/personal-job-actions.js.map +1 -0
  56. package/dist/api/security-events.d.ts +6 -1
  57. package/dist/api/security-events.d.ts.map +1 -1
  58. package/dist/api/security-events.js +34 -15
  59. package/dist/api/security-events.js.map +1 -1
  60. package/dist/api/skill-actions.d.ts +5 -0
  61. package/dist/api/skill-actions.d.ts.map +1 -0
  62. package/dist/api/skill-actions.js +66 -0
  63. package/dist/api/skill-actions.js.map +1 -0
  64. package/dist/api/source-actions.d.ts.map +1 -1
  65. package/dist/api/source-actions.js +4 -2
  66. package/dist/api/source-actions.js.map +1 -1
  67. package/dist/api/stored-source-reader.d.ts.map +1 -1
  68. package/dist/api/stored-source-reader.js +9 -2
  69. package/dist/api/stored-source-reader.js.map +1 -1
  70. package/dist/api/trello-actions.d.ts.map +1 -1
  71. package/dist/api/trello-actions.js +8 -2
  72. package/dist/api/trello-actions.js.map +1 -1
  73. package/dist/api/work-actions.d.ts +12 -2
  74. package/dist/api/work-actions.d.ts.map +1 -1
  75. package/dist/api/work-actions.js +57 -10
  76. package/dist/api/work-actions.js.map +1 -1
  77. package/dist/cli/commands/daemon.d.ts +12 -2
  78. package/dist/cli/commands/daemon.d.ts.map +1 -1
  79. package/dist/cli/commands/daemon.js +85 -13
  80. package/dist/cli/commands/daemon.js.map +1 -1
  81. package/dist/cli/commands/init.d.ts +4 -0
  82. package/dist/cli/commands/init.d.ts.map +1 -1
  83. package/dist/cli/commands/init.js +23 -0
  84. package/dist/cli/commands/init.js.map +1 -1
  85. package/dist/cli/commands/tools.d.ts +12 -0
  86. package/dist/cli/commands/tools.d.ts.map +1 -0
  87. package/dist/cli/commands/tools.js +109 -0
  88. package/dist/cli/commands/tools.js.map +1 -0
  89. package/dist/cli/index.js +6 -1
  90. package/dist/cli/index.js.map +1 -1
  91. package/dist/cli/runtime/claude-caller-config.d.ts +3 -1
  92. package/dist/cli/runtime/claude-caller-config.d.ts.map +1 -1
  93. package/dist/cli/runtime/claude-caller-config.js +14 -2
  94. package/dist/cli/runtime/claude-caller-config.js.map +1 -1
  95. package/dist/connectors/framework/polling-scheduler.d.ts +6 -1
  96. package/dist/connectors/framework/polling-scheduler.d.ts.map +1 -1
  97. package/dist/connectors/framework/polling-scheduler.js +25 -3
  98. package/dist/connectors/framework/polling-scheduler.js.map +1 -1
  99. package/dist/connectors/framework/stored-index-read.d.ts +2 -2
  100. package/dist/connectors/framework/stored-index-read.d.ts.map +1 -1
  101. package/dist/connectors/framework/stored-index-read.js +10 -3
  102. package/dist/connectors/framework/stored-index-read.js.map +1 -1
  103. package/dist/gateways/base-gateway.d.ts +7 -0
  104. package/dist/gateways/base-gateway.d.ts.map +1 -1
  105. package/dist/gateways/base-gateway.js +24 -0
  106. package/dist/gateways/base-gateway.js.map +1 -1
  107. package/dist/gateways/discord.d.ts +4 -0
  108. package/dist/gateways/discord.d.ts.map +1 -1
  109. package/dist/gateways/discord.js +24 -6
  110. package/dist/gateways/discord.js.map +1 -1
  111. package/dist/gateways/slack.d.ts +3 -0
  112. package/dist/gateways/slack.d.ts.map +1 -1
  113. package/dist/gateways/slack.js +15 -2
  114. package/dist/gateways/slack.js.map +1 -1
  115. package/dist/gateways/telegram-errors.d.ts +3 -0
  116. package/dist/gateways/telegram-errors.d.ts.map +1 -1
  117. package/dist/gateways/telegram-errors.js +5 -0
  118. package/dist/gateways/telegram-errors.js.map +1 -1
  119. package/dist/gateways/telegram-message-ledger.d.ts +7 -0
  120. package/dist/gateways/telegram-message-ledger.d.ts.map +1 -1
  121. package/dist/gateways/telegram-message-ledger.js +27 -2
  122. package/dist/gateways/telegram-message-ledger.js.map +1 -1
  123. package/dist/gateways/telegram.d.ts +24 -6
  124. package/dist/gateways/telegram.d.ts.map +1 -1
  125. package/dist/gateways/telegram.js +258 -44
  126. package/dist/gateways/telegram.js.map +1 -1
  127. package/dist/gateways/turn-contract.d.ts +6 -0
  128. package/dist/gateways/turn-contract.d.ts.map +1 -1
  129. package/dist/runtime/action-surface.d.ts +28 -3
  130. package/dist/runtime/action-surface.d.ts.map +1 -1
  131. package/dist/runtime/action-surface.js +316 -34
  132. package/dist/runtime/action-surface.js.map +1 -1
  133. package/dist/runtime/backend-security.d.ts +4 -0
  134. package/dist/runtime/backend-security.d.ts.map +1 -1
  135. package/dist/runtime/backend-security.js +8 -1
  136. package/dist/runtime/backend-security.js.map +1 -1
  137. package/dist/runtime/claude-caller-hook.d.ts +14 -0
  138. package/dist/runtime/claude-caller-hook.d.ts.map +1 -1
  139. package/dist/runtime/claude-caller-hook.js +21 -1
  140. package/dist/runtime/claude-caller-hook.js.map +1 -1
  141. package/dist/runtime/config.d.ts +6 -0
  142. package/dist/runtime/config.d.ts.map +1 -1
  143. package/dist/runtime/config.js +24 -0
  144. package/dist/runtime/config.js.map +1 -1
  145. package/dist/runtime/connectors.js +1 -1
  146. package/dist/runtime/connectors.js.map +1 -1
  147. package/dist/runtime/egress-proxy.d.ts +3 -3
  148. package/dist/runtime/egress-proxy.d.ts.map +1 -1
  149. package/dist/runtime/egress-proxy.js +16 -3
  150. package/dist/runtime/egress-proxy.js.map +1 -1
  151. package/dist/runtime/member-paths.d.ts +9 -1
  152. package/dist/runtime/member-paths.d.ts.map +1 -1
  153. package/dist/runtime/member-paths.js +67 -5
  154. package/dist/runtime/member-paths.js.map +1 -1
  155. package/dist/runtime/member-session.d.ts +21 -21
  156. package/dist/runtime/member-session.d.ts.map +1 -1
  157. package/dist/runtime/member-session.js +297 -34
  158. package/dist/runtime/member-session.js.map +1 -1
  159. package/dist/runtime/member-system-prompt.d.ts +3 -0
  160. package/dist/runtime/member-system-prompt.d.ts.map +1 -1
  161. package/dist/runtime/member-system-prompt.js +30 -4
  162. package/dist/runtime/member-system-prompt.js.map +1 -1
  163. package/dist/runtime/native-session.d.ts +8 -0
  164. package/dist/runtime/native-session.d.ts.map +1 -1
  165. package/dist/runtime/native-session.js +105 -17
  166. package/dist/runtime/native-session.js.map +1 -1
  167. package/dist/runtime/outbound-attempts.d.ts +5 -2
  168. package/dist/runtime/outbound-attempts.d.ts.map +1 -1
  169. package/dist/runtime/outbound-attempts.js +3 -2
  170. package/dist/runtime/outbound-attempts.js.map +1 -1
  171. package/dist/runtime/owner-authority.d.ts +16 -14
  172. package/dist/runtime/owner-authority.d.ts.map +1 -1
  173. package/dist/runtime/owner-authority.js +163 -7
  174. package/dist/runtime/owner-authority.js.map +1 -1
  175. package/dist/runtime/owner-runtime.d.ts +18 -5
  176. package/dist/runtime/owner-runtime.d.ts.map +1 -1
  177. package/dist/runtime/owner-runtime.js +429 -43
  178. package/dist/runtime/owner-runtime.js.map +1 -1
  179. package/dist/runtime/owner-system-prompt.d.ts +3 -1
  180. package/dist/runtime/owner-system-prompt.d.ts.map +1 -1
  181. package/dist/runtime/owner-system-prompt.js +16 -6
  182. package/dist/runtime/owner-system-prompt.js.map +1 -1
  183. package/dist/runtime/personal-job-cron.d.ts +6 -0
  184. package/dist/runtime/personal-job-cron.d.ts.map +1 -0
  185. package/dist/runtime/personal-job-cron.js +154 -0
  186. package/dist/runtime/personal-job-cron.js.map +1 -0
  187. package/dist/runtime/personal-jobs.d.ts +107 -0
  188. package/dist/runtime/personal-jobs.d.ts.map +1 -0
  189. package/dist/runtime/personal-jobs.js +353 -0
  190. package/dist/runtime/personal-jobs.js.map +1 -0
  191. package/dist/runtime/personal-notices.d.ts +38 -0
  192. package/dist/runtime/personal-notices.d.ts.map +1 -0
  193. package/dist/runtime/personal-notices.js +137 -0
  194. package/dist/runtime/personal-notices.js.map +1 -0
  195. package/dist/runtime/personal-turns.d.ts +23 -0
  196. package/dist/runtime/personal-turns.d.ts.map +1 -0
  197. package/dist/runtime/personal-turns.js +51 -0
  198. package/dist/runtime/personal-turns.js.map +1 -0
  199. package/dist/runtime/principal-access.d.ts +8 -0
  200. package/dist/runtime/principal-access.d.ts.map +1 -1
  201. package/dist/runtime/principal-access.js +70 -2
  202. package/dist/runtime/principal-access.js.map +1 -1
  203. package/dist/runtime/principal-sessions.d.ts +16 -2
  204. package/dist/runtime/principal-sessions.d.ts.map +1 -1
  205. package/dist/runtime/principal-sessions.js +104 -21
  206. package/dist/runtime/principal-sessions.js.map +1 -1
  207. package/dist/runtime/skills.d.ts +86 -0
  208. package/dist/runtime/skills.d.ts.map +1 -0
  209. package/dist/runtime/skills.js +560 -0
  210. package/dist/runtime/skills.js.map +1 -0
  211. package/dist/runtime/stimulus-delivery.d.ts +21 -1
  212. package/dist/runtime/stimulus-delivery.d.ts.map +1 -1
  213. package/dist/runtime/stimulus-delivery.js +185 -18
  214. package/dist/runtime/stimulus-delivery.js.map +1 -1
  215. package/dist/runtime/tools-paths.d.ts +9 -0
  216. package/dist/runtime/tools-paths.d.ts.map +1 -0
  217. package/dist/runtime/tools-paths.js +98 -0
  218. package/dist/runtime/tools-paths.js.map +1 -0
  219. package/dist/runtime/turn-orders.d.ts +22 -2
  220. package/dist/runtime/turn-orders.d.ts.map +1 -1
  221. package/dist/runtime/turn-orders.js +60 -6
  222. package/dist/runtime/turn-orders.js.map +1 -1
  223. package/dist/runtime/web-fetch-scope.d.ts +20 -0
  224. package/dist/runtime/web-fetch-scope.d.ts.map +1 -0
  225. package/dist/runtime/web-fetch-scope.js +68 -0
  226. package/dist/runtime/web-fetch-scope.js.map +1 -0
  227. package/dist/storage/chat-sources.d.ts +21 -0
  228. package/dist/storage/chat-sources.d.ts.map +1 -1
  229. package/dist/storage/chat-sources.js +65 -3
  230. package/dist/storage/chat-sources.js.map +1 -1
  231. package/dist/tools/command-runner.d.ts +12 -0
  232. package/dist/tools/command-runner.d.ts.map +1 -0
  233. package/dist/tools/command-runner.js +65 -0
  234. package/dist/tools/command-runner.js.map +1 -0
  235. package/dist/tools/document-render.d.ts +24 -0
  236. package/dist/tools/document-render.d.ts.map +1 -0
  237. package/dist/tools/document-render.js +208 -0
  238. package/dist/tools/document-render.js.map +1 -0
  239. package/dist/tools/document-toolkit.d.ts +15 -0
  240. package/dist/tools/document-toolkit.d.ts.map +1 -0
  241. package/dist/tools/document-toolkit.js +501 -0
  242. package/dist/tools/document-toolkit.js.map +1 -0
  243. package/dist/tools/office-render.d.ts +28 -0
  244. package/dist/tools/office-render.d.ts.map +1 -0
  245. package/dist/tools/office-render.js +101 -0
  246. package/dist/tools/office-render.js.map +1 -0
  247. package/dist/tools/toolkit-process.d.ts +9 -0
  248. package/dist/tools/toolkit-process.d.ts.map +1 -0
  249. package/dist/tools/toolkit-process.js +148 -0
  250. package/dist/tools/toolkit-process.js.map +1 -0
  251. package/dist/tools/toolkit-state.d.ts +22 -0
  252. package/dist/tools/toolkit-state.d.ts.map +1 -0
  253. package/dist/tools/toolkit-state.js +116 -0
  254. package/dist/tools/toolkit-state.js.map +1 -0
  255. package/package.json +3 -2
  256. package/toolkit/inspect-office-zip.py +16 -0
  257. package/toolkit/rasterize.py +29 -0
  258. package/toolkit/requirements.in +11 -0
  259. package/toolkit/requirements.lock +1643 -0
  260. 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;AAKvE,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,CAuFhB"}
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,CA2IhB"}
@@ -1,20 +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");
7
12
  const owner_authority_js_1 = require("./owner-authority.js");
8
13
  /** A member grant must not expose the owner's default records or make boot/turn access fail. */
9
14
  function validateMemberMemoryGrant(scope, ownerAccess) {
10
15
  if ((ownerAccess.defaultScopes ?? ownerAccess.scopes).some((defaultScope) => defaultScope.kind === scope.scopeKind && defaultScope.id === scope.scopeId))
11
16
  throw new Error(`member memory grant overlaps owner default scope: ${scope.scopeKind}:${scope.scopeId}`);
12
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
+ }
13
34
  /** Registry-backed authority for future member turns; admission is wired separately. */
14
35
  function resolvePrincipalAccess(principalId, options) {
15
36
  const { adapter, ownerAccess, agentId } = options;
16
37
  const principal = adapter
17
- .prepare('SELECT kind, status FROM principals WHERE principal_id = ?')
38
+ .prepare('SELECT kind, status, created_at FROM principals WHERE principal_id = ?')
18
39
  .get(principalId);
19
40
  if (!principal)
20
41
  throw new Error(`unknown principal: ${principalId}`);
@@ -32,6 +53,7 @@ function resolvePrincipalAccess(principalId, options) {
32
53
  if (identities.length !== 1)
33
54
  throw new Error(`member ${principalId} requires exactly one Telegram private identity`);
34
55
  const dmId = identities[0].external_id;
56
+ const room = memberRoomChannel(principalId, options.sessionKey);
35
57
  const repository = (0, mama_core_1.createPrincipalRepository)(adapter);
36
58
  const ownerRole = (0, owner_authority_js_1.holdsOwnerRole)(repository, principalId);
37
59
  // Unscoped owner work binds its defaults; partition write authority does not make a default.
@@ -52,6 +74,43 @@ function resolvePrincipalAccess(principalId, options) {
52
74
  channels[scope.connector] = granted;
53
75
  }
54
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
+ }
55
114
  if (ownerRole) {
56
115
  readScopes.push(...ownerAccess.scopes, ...(ownerAccess.readScopes ?? []));
57
116
  for (const connector of ownerAccess.connectors ?? [])
@@ -87,7 +146,16 @@ function resolvePrincipalAccess(principalId, options) {
87
146
  connectorWideRead: (ownerAccess.connectorWideRead ?? []).filter((source) => source !== 'chat'),
88
147
  }
89
148
  : {}),
90
- actions: ownerRole ? [...action_surface_js_1.MEMBER_ACTIONS, 'drive.read', 'report.read'] : action_surface_js_1.MEMBER_ACTIONS,
149
+ actions: ownerRole
150
+ ? [
151
+ ...action_surface_js_1.MEMBER_ACTIONS,
152
+ 'drive.read',
153
+ 'drive.download',
154
+ 'report.read',
155
+ ...member_lifecycle_js_1.MEMBER_MANAGEMENT_ACTIONS,
156
+ 'manage.member.enroll',
157
+ ]
158
+ : action_surface_js_1.MEMBER_ACTIONS,
91
159
  };
92
160
  }
93
161
  //# 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"}