@jungjaehoon/mama-os 0.72.0 → 0.74.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 (59) hide show
  1. package/CHANGELOG.md +42 -0
  2. package/README.md +1 -1
  3. package/dist/api/file-delivery.d.ts +1 -0
  4. package/dist/api/file-delivery.d.ts.map +1 -1
  5. package/dist/api/file-delivery.js +3 -3
  6. package/dist/api/file-delivery.js.map +1 -1
  7. package/dist/api/member-enrollment.js +1 -1
  8. package/dist/api/member-enrollment.js.map +1 -1
  9. package/dist/api/member-export.d.ts +32 -0
  10. package/dist/api/member-export.d.ts.map +1 -0
  11. package/dist/api/member-export.js +232 -0
  12. package/dist/api/member-export.js.map +1 -0
  13. package/dist/api/member-lifecycle.d.ts +20 -0
  14. package/dist/api/member-lifecycle.d.ts.map +1 -0
  15. package/dist/api/member-lifecycle.js +187 -0
  16. package/dist/api/member-lifecycle.js.map +1 -0
  17. package/dist/api/member-records.d.ts +38 -0
  18. package/dist/api/member-records.d.ts.map +1 -0
  19. package/dist/api/member-records.js +379 -0
  20. package/dist/api/member-records.js.map +1 -0
  21. package/dist/cli/commands/daemon.d.ts +1 -0
  22. package/dist/cli/commands/daemon.d.ts.map +1 -1
  23. package/dist/cli/commands/daemon.js +10 -1
  24. package/dist/cli/commands/daemon.js.map +1 -1
  25. package/dist/gateways/telegram-message-ledger.d.ts +4 -0
  26. package/dist/gateways/telegram-message-ledger.d.ts.map +1 -1
  27. package/dist/gateways/telegram-message-ledger.js +21 -0
  28. package/dist/gateways/telegram-message-ledger.js.map +1 -1
  29. package/dist/gateways/telegram.d.ts +7 -2
  30. package/dist/gateways/telegram.d.ts.map +1 -1
  31. package/dist/gateways/telegram.js +93 -49
  32. package/dist/gateways/telegram.js.map +1 -1
  33. package/dist/gateways/turn-contract.d.ts +5 -0
  34. package/dist/gateways/turn-contract.d.ts.map +1 -1
  35. package/dist/runtime/action-surface.d.ts +8 -3
  36. package/dist/runtime/action-surface.d.ts.map +1 -1
  37. package/dist/runtime/action-surface.js +20 -0
  38. package/dist/runtime/action-surface.js.map +1 -1
  39. package/dist/runtime/member-paths.d.ts +5 -0
  40. package/dist/runtime/member-paths.d.ts.map +1 -1
  41. package/dist/runtime/member-paths.js +25 -0
  42. package/dist/runtime/member-paths.js.map +1 -1
  43. package/dist/runtime/owner-runtime.d.ts +6 -0
  44. package/dist/runtime/owner-runtime.d.ts.map +1 -1
  45. package/dist/runtime/owner-runtime.js +145 -15
  46. package/dist/runtime/owner-runtime.js.map +1 -1
  47. package/dist/runtime/principal-access.d.ts +5 -0
  48. package/dist/runtime/principal-access.d.ts.map +1 -1
  49. package/dist/runtime/principal-access.js +7 -3
  50. package/dist/runtime/principal-access.js.map +1 -1
  51. package/dist/runtime/principal-sessions.d.ts +10 -4
  52. package/dist/runtime/principal-sessions.d.ts.map +1 -1
  53. package/dist/runtime/principal-sessions.js +44 -14
  54. package/dist/runtime/principal-sessions.js.map +1 -1
  55. package/dist/storage/source-archive.d.ts +3 -0
  56. package/dist/storage/source-archive.d.ts.map +1 -1
  57. package/dist/storage/source-archive.js +29 -0
  58. package/dist/storage/source-archive.js.map +1 -1
  59. package/package.json +5 -4
package/CHANGELOG.md CHANGED
@@ -5,6 +5,48 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [0.74.0] - 2026-10-11
9
+
10
+ ### Added
11
+
12
+ - `records.export` and `records.erase` for members (own message turn only; no principal input;
13
+ owner, delta, scheduled, replay and subagent turns are denied). An export runs after its turn and
14
+ sends one zip to the member's registered DM (50 MiB): the member's core and chat records and the
15
+ files of its runtime, temp and retired trees, never credentials or host account files; links that
16
+ leave the member's trees are named and left out; one export per member at a time. `records.erase`
17
+ previews counts and issues a single-use token; a later member message confirms it. After that turn
18
+ settles the host retires the member, sends the export and, once Telegram accepts it and the files
19
+ are unchanged, deletes the member's trees, chat index, core records (B1), chat raw rows and DM
20
+ ledger entries, then serves the member again and records a plain receipt in its chat. Failed,
21
+ oversized or uncertain deliveries erase nothing (#471).
22
+ - Host receipts to a registered member DM (`TelegramGateway.sendMemberText`) (#471).
23
+ - Dependency `fflate` 0.8.3 for the export zip (#471).
24
+
25
+ ### Changed
26
+
27
+ - The owner's conversation record keeps each enrollment selection and its receipt (#468).
28
+ - `manage.member.list` returns `recentEnrollments` (#469) with owner-local times and the zone
29
+ named (#470).
30
+ - The shared turn chain can run host work next and hold its slot until an input settles; only an
31
+ erasure pauses claims while it runs (#471).
32
+
33
+ ## [0.73.0] - 2026-10-10
34
+
35
+ ### Added
36
+
37
+ - Owner member management (owner message turn only; targets must be registry members, so the owner
38
+ and co-owners are refused; refused without `member_root`): `manage.member.grant` and `.revoke`
39
+ (project-partition memory reads; reset the member's session, keep its files), `.suspend` and
40
+ `.offboard` (cancel queued inputs, reset and stop the session, set the runtime directory aside
41
+ under `member_root` and the temp directory under the member temp root), `.resume` (fresh
42
+ environment with the remaining grants) and `.list` (principal, status, grants; no transport id).
43
+ Retries finish an interrupted cleanup (#466).
44
+
45
+ ### Changed
46
+
47
+ - The enrollment keyboard prompt says where the button is; an id in `owner_user_ids` is refused as
48
+ an owner (#465).
49
+
8
50
  ## [0.72.0] - 2026-10-10
9
51
 
10
52
  ### Added
package/README.md CHANGED
@@ -4,7 +4,7 @@ One owner agent on Claude or Codex watches connected work, keeps task revisions
4
4
  answers on Telegram, publishes reports and a board, and recalls corrections.
5
5
  [mama-core](../mama-core/README.md) supplies the shared engine.
6
6
 
7
- Current manifest: **0.72.0**. Install with `npm install -g @jungjaehoon/mama-os` (Node.js 22.13+)
7
+ Current manifest: **0.74.0**. Install with `npm install -g @jungjaehoon/mama-os` (Node.js 22.13+)
8
8
  and follow [owner setup](../../docs/start/owner-setup.md).
9
9
 
10
10
  ## Start and operate
@@ -1,4 +1,5 @@
1
1
  import type { JudgmentAccess } from '@jungjaehoon/mama-core';
2
+ export declare const O_NOFOLLOW_ANY = 536870912;
2
3
  export declare const OWNER_FILE_MAX_UPLOAD_BYTES: number;
3
4
  export declare const TELEGRAM_MAX_UPLOAD_BYTES: number;
4
5
  export declare const TELEGRAM_MAX_PHOTO_BYTES: number;
@@ -1 +1 @@
1
- {"version":3,"file":"file-delivery.d.ts","sourceRoot":"","sources":["../../src/api/file-delivery.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAM7D,eAAO,MAAM,2BAA2B,QAAmB,CAAC;AAC5D,eAAO,MAAM,yBAAyB,QAA8B,CAAC;AACrE,eAAO,MAAM,wBAAwB,QAAmB,CAAC;AACzD,eAAO,MAAM,yBAAyB,aAAsD,CAAC;AAE7F,MAAM,WAAW,uBAAuB;IACtC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,MAAM,EAAE,OAAO,GAAG,UAAU,CAAC;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CACN,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,WAAW,EAAE,MAAM,EACnB,MAAM,CAAC,EAAE,yBAAyB,GACjC,OAAO,CAAC,0BAA0B,CAAC,CAAC;CACxC;AAED,mFAAmF;AACnF,MAAM,WAAW,yBAAyB;IACxC,MAAM,EAAE,cAAc,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,MAAM,0BAA0B,GAAG,uBAAuB,CAAC;AACjE,MAAM,MAAM,kBAAkB,GAAG,eAAe,CAAC;AAEjD,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,GAAG,UAAU,CAAC;CAC9B;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CA0B5D;AAED,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,MAAM,UAAQ,GACb,sBAAsB,CAIxB;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,MAAM,UAAQ,GACb,sBAAsB,GAAG;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,CA2CzC;AAED,kGAAkG;AAClG,wBAAuB,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,CAW3E;AAED,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAY1E"}
1
+ {"version":3,"file":"file-delivery.d.ts","sourceRoot":"","sources":["../../src/api/file-delivery.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAI7D,eAAO,MAAM,cAAc,YAAa,CAAC;AAEzC,eAAO,MAAM,2BAA2B,QAAmB,CAAC;AAC5D,eAAO,MAAM,yBAAyB,QAA8B,CAAC;AACrE,eAAO,MAAM,wBAAwB,QAAmB,CAAC;AACzD,eAAO,MAAM,yBAAyB,aAAsD,CAAC;AAE7F,MAAM,WAAW,uBAAuB;IACtC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,MAAM,EAAE,OAAO,GAAG,UAAU,CAAC;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CACN,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,WAAW,EAAE,MAAM,EACnB,MAAM,CAAC,EAAE,yBAAyB,GACjC,OAAO,CAAC,0BAA0B,CAAC,CAAC;CACxC;AAED,mFAAmF;AACnF,MAAM,WAAW,yBAAyB;IACxC,MAAM,EAAE,cAAc,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,MAAM,0BAA0B,GAAG,uBAAuB,CAAC;AACjE,MAAM,MAAM,kBAAkB,GAAG,eAAe,CAAC;AAEjD,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,GAAG,UAAU,CAAC;CAC9B;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CA0B5D;AAED,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,MAAM,UAAQ,GACb,sBAAsB,CAIxB;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,MAAM,UAAQ,GACb,sBAAsB,GAAG;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,CA2CzC;AAED,kGAAkG;AAClG,wBAAuB,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,CAW3E;AAED,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAY1E"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TELEGRAM_IMAGE_EXTENSIONS = exports.TELEGRAM_MAX_PHOTO_BYTES = exports.TELEGRAM_MAX_UPLOAD_BYTES = exports.OWNER_FILE_MAX_UPLOAD_BYTES = void 0;
3
+ exports.TELEGRAM_IMAGE_EXTENSIONS = exports.TELEGRAM_MAX_PHOTO_BYTES = exports.TELEGRAM_MAX_UPLOAD_BYTES = exports.OWNER_FILE_MAX_UPLOAD_BYTES = exports.O_NOFOLLOW_ANY = void 0;
4
4
  exports.openMemberWorkspaceFile = openMemberWorkspaceFile;
5
5
  exports.validateWorkspaceFile = validateWorkspaceFile;
6
6
  exports.openWorkspaceFile = openWorkspaceFile;
@@ -11,7 +11,7 @@ const node_crypto_1 = require("node:crypto");
11
11
  const node_path_1 = require("node:path");
12
12
  // macOS <sys/fcntl.h>: reject symlinks in every path component, the last included. Combined with
13
13
  // O_NOFOLLOW, open fails with EINVAL.
14
- const O_NOFOLLOW_ANY = 0x20000000;
14
+ exports.O_NOFOLLOW_ANY = 0x20000000;
15
15
  exports.OWNER_FILE_MAX_UPLOAD_BYTES = 50 * 1024 * 1024;
16
16
  exports.TELEGRAM_MAX_UPLOAD_BYTES = exports.OWNER_FILE_MAX_UPLOAD_BYTES;
17
17
  exports.TELEGRAM_MAX_PHOTO_BYTES = 10 * 1024 * 1024;
@@ -20,7 +20,7 @@ function openMemberWorkspaceFile(real) {
20
20
  let fd;
21
21
  if (process.platform === 'darwin') {
22
22
  try {
23
- fd = (0, node_fs_1.openSync)(real, node_fs_1.constants.O_RDONLY | O_NOFOLLOW_ANY);
23
+ fd = (0, node_fs_1.openSync)(real, node_fs_1.constants.O_RDONLY | exports.O_NOFOLLOW_ANY);
24
24
  }
25
25
  catch (error) {
26
26
  if (error.code === 'ELOOP') {
@@ -1 +1 @@
1
- {"version":3,"file":"file-delivery.js","sourceRoot":"","sources":["../../src/api/file-delivery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"file-delivery.js","sourceRoot":"","sources":["../../src/api/file-delivery.ts"],"names":[],"mappings":"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"}
@@ -54,7 +54,7 @@ function createMemberEnrollment(options) {
54
54
  if (selection.userId === selection.ownerUserId)
55
55
  return receipt('refused', options.ownerPrincipalId, "The owner's own identity cannot be enrolled");
56
56
  if (ports.ownerUserIds.includes(selection.userId))
57
- return receipt('refused', current?.principalId ?? null, 'Remove the selected identity from Telegram owner_user_ids and restart the daemon first');
57
+ return receipt('refused', current?.principalId ?? null, 'The selected identity is an owner listed in Telegram owner_user_ids; an owner is not enrolled as a member');
58
58
  if (current && current.status !== 'active')
59
59
  return receipt('refused', current.principalId, `The selected principal is ${current.status}`);
60
60
  if (current?.kind === 'member') {
@@ -1 +1 @@
1
- {"version":3,"file":"member-enrollment.js","sourceRoot":"","sources":["../../src/api/member-enrollment.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"member-enrollment.js","sourceRoot":"","sources":["../../src/api/member-enrollment.ts"],"names":[],"mappings":";;AA6BA,wDA4IC;AAzKD,6CAAyC;AACzC,qCAA4C;AAC5C,yCAAoD;AACpD,sDAMgC;AAEhC,wEAA4F;AAC5F,gEAAmF;AACnF,wEAAwE;AAgBxE,SAAgB,sBAAsB,CAAC,OAMtC;IACC,kFAAkF;IAClF,MAAM,WAAW,GAAG,IAAI,GAAG,EAA2B,CAAC;IACvD,MAAM,YAAY,GAAuB;QACvC,QAAQ,EAAE;YACR,IAAI,EAAE,sBAAsB;YAC5B,OAAO,EACL,gbAAgb;YAClb,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,oBAAoB,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,EAAE;YAC5E,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,kCAAkC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;SACrE;QACD,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,OAAsB,EAAE,EAAE;YAC7C,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,EAAE,gBAAgB,CAAC;YAC9C,IACE,OAAO,CAAC,MAAM,CAAC,WAAW,KAAK,OAAO,CAAC,gBAAgB;gBACvD,OAAO,CAAC,OAAO,EAAE,iBAAiB,KAAK,SAAS;gBAChD,CAAC,GAAG;gBACJ,CAAC,OAAO,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAChC,CAAC;gBACD,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,uDAAuD,CAAC,EAAE;oBACtF,IAAI,EAAE,QAAQ;iBACf,CAAC,CAAC;YACL,CAAC;YACD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;YAC5B,IAAI,CAAC,KAAK;gBACR,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,uDAAuD,CAAC,EAAE;oBACtF,IAAI,EAAE,QAAQ;iBACf,CAAC,CAAC;YACL,IAAI,CAAC,KAAK,CAAC,UAAU;gBACnB,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,0DAA0D,CAAC,EAAE;oBACzF,IAAI,EAAE,QAAQ;iBACf,CAAC,CAAC;YACL,MAAM,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACzF,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,MAAM,KAAK,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;gBAClC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;YAC/B,CAAC;YACD,MAAM,IAAI,GAAG,IAAA,qCAAyB,EAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACxD,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,SAAS,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;YAChF,MAAM,OAAO,GAAG,CACd,MAAwC,EACxC,WAA0B,EAC1B,OAAgB,EAChB,EAAE,CAAC,CAAC;gBACJ,MAAM;gBACN,WAAW;gBACX,SAAS,EAAE,UAAU;gBACrB,SAAS,EAAE,SAAS;gBACpB,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAChC,CAAC,CAAC;YACH,IAAI,SAAS,CAAC,MAAM,KAAK,SAAS,CAAC,WAAW;gBAC5C,OAAO,OAAO,CACZ,SAAS,EACT,OAAO,CAAC,gBAAgB,EACxB,6CAA6C,CAC9C,CAAC;YACJ,IAAI,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC;gBAC/C,OAAO,OAAO,CACZ,SAAS,EACT,OAAO,EAAE,WAAW,IAAI,IAAI,EAC5B,2GAA2G,CAC5G,CAAC;YACJ,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,QAAQ;gBACxC,OAAO,OAAO,CACZ,SAAS,EACT,OAAO,CAAC,WAAW,EACnB,6BAA6B,OAAO,CAAC,MAAM,EAAE,CAC9C,CAAC;YACJ,IAAI,OAAO,EAAE,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC/B,KAAK,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;gBACzC,OAAO,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;YAChD,CAAC;YACD,IAAI,OAAO,IAAI,OAAO,CAAC,WAAW,KAAK,OAAO,CAAC,gBAAgB;gBAC7D,OAAO,OAAO,CACZ,SAAS,EACT,OAAO,CAAC,WAAW,EACnB,gDAAgD,CACjD,CAAC;YACJ,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE;gBACnD,MAAM,QAAQ,GAAG;oBACf,SAAS,EAAE,UAAU;oBACrB,SAAS,EAAE,SAAS;oBACpB,UAAU,EAAE,SAAS,CAAC,MAAM;oBAC5B,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE;iBAChB,CAAC;gBACF,MAAM,EAAE,GAAG,OAAO;oBAChB,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC;wBACxB,GAAG,QAAQ;wBACX,mBAAmB,EAAE,OAAO,CAAC,gBAAgB;qBAC9C,CAAC;oBACJ,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;gBAClC,IAAA,4CAAsB,EAAC,EAAE,EAAE;oBACzB,OAAO,EAAE,OAAO,CAAC,OAAO;oBACxB,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE;oBAClC,OAAO,EAAE,gBAAgB,EAAE,EAAE;iBAC9B,CAAC,CAAC;gBACH,wFAAwF;gBACxF,MAAM,KAAK,GAAG,IAAA,mCAAiB,EAAC,KAAK,CAAC,UAAW,EAAE,EAAE,CAAC,CAAC;gBACvD,MAAM,IAAI,GAAG,IAAA,oCAAkB,EAAC,EAAE,CAAC,CAAC;gBACpC,MAAM,YAAY,GAAG,IAAA,gBAAI,EACvB,IAAA,sCAAgB,EAAC,IAAA,mBAAO,EAAC,8CAAwB,CAAC,CAAC,EACnD,IAAA,oBAAQ,EAAC,8CAAwB,CAAC,EAClC,IAAA,oBAAQ,EAAC,IAAI,CAAC,CACf,CAAC;gBACF,IAAI,IAAA,sCAAgB,EAAC,IAAI,CAAC,KAAK,YAAY;oBACzC,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;gBAC5D,IAAA,gBAAM,EAAC,KAAK,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC5D,IAAA,gBAAM,EAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC/C,IAAA,mCAAiB,EAAC,KAAK,CAAC,UAAW,EAAE,EAAE,CAAC,CAAC;gBACzC,IAAA,mBAAS,EAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;gBAClD,OAAO,EAAE,CAAC;YACZ,CAAC,CAAC,CAAC;YACH,KAAK,CAAC,WAAW,EAAE,CAAC,WAAW,CAAC,CAAC;YACjC,OAAO,OAAO,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QACzC,CAAC;KACF,CAAC;IACF,OAAO;QACL,YAAY;QACZ,QAAQ,EAAE,KAAK,EAAE,SAA0B,EAAE,QAA0B,EAAE,EAAE;YACzE,MAAM,WAAW,GAAG,qBAAqB,IAAA,wBAAU,GAAE,EAAE,CAAC;YACxD,WAAW,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;YACxC,IAAI,CAAC;gBACH,OAAO,MAAM,QAAQ,CACnB,EAAE,MAAM,EAAE,YAAY,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,WAAW,EAAE,EAC9D;oBACE,MAAM,EAAE,OAAO,CAAC,WAAW,EAAE;oBAC7B,OAAO,EAAE,EAAE,gBAAgB,EAAE,SAAS,CAAC,gBAAgB,EAAE;iBAC1D,CACF,CAAC;YACJ,CAAC;oBAAS,CAAC;gBACT,WAAW,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YAClC,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,32 @@
1
+ export declare function memberTrees(root: string, id: string): string[];
2
+ export interface MemberExportFile {
3
+ path: string;
4
+ name: string;
5
+ size: number;
6
+ dev: number;
7
+ ino: number;
8
+ mtimeMs: number;
9
+ nlink: number;
10
+ eligible: boolean;
11
+ privateManaged: boolean;
12
+ }
13
+ export declare function memberFileInventory(root: string, id: string): {
14
+ trees: string[];
15
+ allFiles: MemberExportFile[];
16
+ files: MemberExportFile[];
17
+ omittedFiles: string[];
18
+ links: Map<string, number>;
19
+ };
20
+ /** Include files left out of the ZIP: erasure removes those links and managed files too. */
21
+ export declare function memberInventorySnapshot(inventory: ReturnType<typeof memberFileInventory>, omittedFiles?: readonly string[]): string;
22
+ /** Build a bounded archive off the model turn. The caller owns delivery and final removal. */
23
+ export declare function buildMemberExport(root: string, id: string, core: unknown, product: unknown): Promise<{
24
+ path: string;
25
+ filesRoot: string;
26
+ size: number;
27
+ fileCount: number;
28
+ fileBytes: number;
29
+ omittedFiles: string[];
30
+ fileSnapshot: string;
31
+ }>;
32
+ //# sourceMappingURL=member-export.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"member-export.d.ts","sourceRoot":"","sources":["../../src/api/member-export.ts"],"names":[],"mappings":"AAgCA,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,CAmB9D;AACD,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;IAClB,cAAc,EAAE,OAAO,CAAC;CACzB;AAKD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM;;;;;;EA+E3D;AAED,4FAA4F;AAC5F,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC,EACjD,YAAY,GAAE,SAAS,MAAM,EAA2B,GACvD,MAAM,CAOR;AAMD,8FAA8F;AAC9F,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO;;;;;;;;GAwGhG"}
@@ -0,0 +1,232 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.memberTrees = memberTrees;
4
+ exports.memberFileInventory = memberFileInventory;
5
+ exports.memberInventorySnapshot = memberInventorySnapshot;
6
+ exports.buildMemberExport = buildMemberExport;
7
+ const node_crypto_1 = require("node:crypto");
8
+ const node_fs_1 = require("node:fs");
9
+ const node_path_1 = require("node:path");
10
+ const fflate_1 = require("fflate");
11
+ const member_paths_js_1 = require("../runtime/member-paths.js");
12
+ const backend_security_js_1 = require("../runtime/backend-security.js");
13
+ const file_delivery_js_1 = require("./file-delivery.js");
14
+ const archiveSuffix = '[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}';
15
+ /** Installed Claude 2.1.293's history storage rewrites history.jsonl; installed Codex's
16
+ * codex_message_history (message-history/src/lib.rs) writes history.jsonl under CODEX_HOME.
17
+ * Config homes are assigned in native-session.ts. No account/config/credential file is admitted. */
18
+ const managedHistoryFiles = new Set([
19
+ 'claude-config/history.jsonl',
20
+ '.codex/history.jsonl',
21
+ 'runtime/client-journal.jsonl',
22
+ ]);
23
+ const managedRoots = new Set(['claude-config', '.codex', 'codex-runtime', 'runtime']);
24
+ function memberTrees(root, id) {
25
+ const temp = (0, member_paths_js_1.memberClaudeTmpDir)(id);
26
+ const escaped = (value) => value.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
27
+ const archives = (parent, identity) => (0, node_fs_1.existsSync)(parent)
28
+ ? (0, node_fs_1.readdirSync)(parent)
29
+ .filter((name) => new RegExp(`^\\.retired-${escaped(identity)}-${archiveSuffix}$`).test(name))
30
+ .map((name) => (0, node_path_1.join)(parent, name))
31
+ : [];
32
+ return [
33
+ (0, member_paths_js_1.memberPaths)(root, id).runtimeRoot,
34
+ temp,
35
+ ...archives(root, id),
36
+ ...archives((0, node_path_1.dirname)(temp), (0, node_path_1.basename)(temp)),
37
+ ]
38
+ .filter(node_fs_1.existsSync)
39
+ .map((path) => (0, node_path_1.join)((0, backend_security_js_1.physicalReadPath)((0, node_path_1.dirname)(path)), (0, node_path_1.basename)(path)));
40
+ }
41
+ // Every ZIP entry costs at least its local and central headers (30 + 46 bytes) and its name twice,
42
+ // so a tree whose entries alone pass the upload limit cannot be exported. Charging every walked
43
+ // entry that cost bounds the walk before it holds an unbounded inventory.
44
+ const ZIP_ENTRY_HEADER_BYTES = 30 + 46;
45
+ function memberFileInventory(root, id) {
46
+ const allFiles = [];
47
+ const symlinks = [];
48
+ let walked = 0;
49
+ const walk = (path, name, runtimeRoot) => {
50
+ walked += ZIP_ENTRY_HEADER_BYTES + 2 * Buffer.byteLength(name);
51
+ if (walked > file_delivery_js_1.OWNER_FILE_MAX_UPLOAD_BYTES)
52
+ throw new Error(`Member files hold too many entries for one export (over ${file_delivery_js_1.OWNER_FILE_MAX_UPLOAD_BYTES} bytes of ZIP headers alone)`);
53
+ const stat = (0, node_fs_1.lstatSync)(path);
54
+ if (stat.isSymbolicLink()) {
55
+ // Never followed; named so the member knows the export left it out.
56
+ symlinks.push(name);
57
+ return;
58
+ }
59
+ if (stat.isDirectory()) {
60
+ for (const entry of (0, node_fs_1.readdirSync)(path).sort())
61
+ walk((0, node_path_1.join)(path, entry), `${name}/${entry}`, runtimeRoot);
62
+ }
63
+ else if (stat.isFile()) {
64
+ const local = runtimeRoot === undefined ? undefined : (0, node_path_1.relative)(runtimeRoot, path);
65
+ let eligible = true;
66
+ let privateManaged = false;
67
+ if (local !== undefined) {
68
+ if (managedRoots.has(local.split('/')[0])) {
69
+ eligible =
70
+ managedHistoryFiles.has(local) ||
71
+ local.startsWith('claude-config/projects/') ||
72
+ local.startsWith('.codex/sessions/');
73
+ privateManaged = !eligible;
74
+ }
75
+ else if (local === 'workspace/.tmp' || local.startsWith('workspace/.tmp/'))
76
+ eligible = false;
77
+ else if (new RegExp(`^workspace/files/member-export-${archiveSuffix}\\.zip$`).test(local))
78
+ eligible = false;
79
+ }
80
+ allFiles.push({
81
+ path,
82
+ name,
83
+ size: stat.size,
84
+ dev: stat.dev,
85
+ ino: stat.ino,
86
+ mtimeMs: stat.mtimeMs,
87
+ nlink: stat.nlink,
88
+ eligible,
89
+ privateManaged,
90
+ });
91
+ }
92
+ // Never follow a link or try to open a socket/FIFO found by the walk.
93
+ };
94
+ const live = (0, member_paths_js_1.memberPaths)(root, id).runtimeRoot;
95
+ const trees = memberTrees(root, id);
96
+ for (const tree of trees)
97
+ walk(tree, `files/${(0, node_path_1.basename)(tree)}`, tree === live ? tree : (0, node_path_1.dirname)(tree) === root ? (0, node_path_1.join)(tree, 'runtime') : undefined);
98
+ const links = new Map();
99
+ for (const file of allFiles) {
100
+ const key = `${file.dev}:${file.ino}`;
101
+ links.set(key, (links.get(key) ?? 0) + 1);
102
+ }
103
+ // A workspace alias of an account/credential inode must obey the managed-directory deny.
104
+ const privateInodes = new Set(allFiles.filter((file) => file.privateManaged).map((file) => `${file.dev}:${file.ino}`));
105
+ const omittedFiles = [...symlinks];
106
+ const files = allFiles.filter((file) => {
107
+ if (!file.eligible)
108
+ return false;
109
+ if ((links.get(`${file.dev}:${file.ino}`) ?? 0) < file.nlink ||
110
+ privateInodes.has(`${file.dev}:${file.ino}`)) {
111
+ omittedFiles.push(file.name);
112
+ return false;
113
+ }
114
+ return true;
115
+ });
116
+ return { trees, allFiles, files, omittedFiles, links };
117
+ }
118
+ /** Include files left out of the ZIP: erasure removes those links and managed files too. */
119
+ function memberInventorySnapshot(inventory, omittedFiles = inventory.omittedFiles) {
120
+ return JSON.stringify({
121
+ files: inventory.allFiles
122
+ .map(({ path, dev, ino, size, mtimeMs, nlink }) => ({ path, dev, ino, size, mtimeMs, nlink }))
123
+ .sort((a, b) => a.path.localeCompare(b.path)),
124
+ omittedFiles: [...omittedFiles].sort(),
125
+ });
126
+ }
127
+ const oversized = (size) => new Error(`Member export is ${size} bytes; Telegram limit is ${file_delivery_js_1.OWNER_FILE_MAX_UPLOAD_BYTES} bytes (50 MiB)`);
128
+ /** Build a bounded archive off the model turn. The caller owns delivery and final removal. */
129
+ async function buildMemberExport(root, id, core, product) {
130
+ const inventory = memberFileInventory(root, id);
131
+ const json = [
132
+ ['core.json', (0, fflate_1.strToU8)(JSON.stringify(core))],
133
+ ['product.json', (0, fflate_1.strToU8)(JSON.stringify(product))],
134
+ ];
135
+ const predicted = inventory.files.reduce((n, file) => n + file.size, 0) +
136
+ json.reduce((n, [, bytes]) => n + bytes.length, 0);
137
+ if (predicted > file_delivery_js_1.OWNER_FILE_MAX_UPLOAD_BYTES)
138
+ throw oversized(predicted);
139
+ const filesRoot = (0, node_path_1.join)((0, member_paths_js_1.memberPaths)(root, id).workspaceDir, 'files');
140
+ if ((0, backend_security_js_1.physicalReadPath)(filesRoot) !== (0, node_path_1.resolve)(filesRoot))
141
+ throw new Error('Member export output directory must not be a symlink');
142
+ (0, node_fs_1.mkdirSync)(filesRoot, { recursive: true, mode: 0o700 });
143
+ const path = (0, node_path_1.join)(filesRoot, `member-export-${(0, node_crypto_1.randomUUID)()}.zip`);
144
+ // Refuse a link in any component at creation, not only in the file name: the directory was
145
+ // checked above, but a swapped ancestor would otherwise place the archive outside the member.
146
+ const output = (0, node_fs_1.openSync)(path, node_fs_1.constants.O_WRONLY |
147
+ node_fs_1.constants.O_CREAT |
148
+ node_fs_1.constants.O_EXCL |
149
+ (process.platform === 'darwin' ? file_delivery_js_1.O_NOFOLLOW_ANY : node_fs_1.constants.O_NOFOLLOW), 0o600);
150
+ if (process.platform === 'linux' && (0, node_fs_1.readlinkSync)(`/proc/self/fd/${output}`) !== path) {
151
+ (0, node_fs_1.closeSync)(output);
152
+ throw new Error('Member export output directory changed while the archive was created');
153
+ }
154
+ let size = 0, finished = false, fileCount = 0, fileBytes = 0;
155
+ const omittedFiles = [...inventory.omittedFiles];
156
+ const zip = new fflate_1.Zip((error, chunk, final) => {
157
+ if (error)
158
+ throw error;
159
+ if (size + chunk.length > file_delivery_js_1.OWNER_FILE_MAX_UPLOAD_BYTES)
160
+ throw oversized(size + chunk.length);
161
+ let offset = 0;
162
+ while (offset < chunk.length) {
163
+ const written = (0, node_fs_1.writeSync)(output, chunk, offset, chunk.length - offset);
164
+ if (written <= 0)
165
+ throw new Error('Member export write made no progress');
166
+ offset += written;
167
+ size += written;
168
+ }
169
+ finished = final;
170
+ });
171
+ try {
172
+ for (const [name, bytes] of json) {
173
+ const entry = new fflate_1.ZipDeflate(name, { level: 6 });
174
+ zip.add(entry);
175
+ entry.push(bytes, true);
176
+ }
177
+ const buffer = Buffer.alloc(64 * 1024);
178
+ for (const file of inventory.files) {
179
+ // Darwin rejects O_NOFOLLOW + O_NOFOLLOW_ANY together. ANY supplies the stronger deny,
180
+ // like file-delivery.ts; O_NONBLOCK prevents a raced-in FIFO from waiting for a writer.
181
+ const flags = node_fs_1.constants.O_RDONLY |
182
+ node_fs_1.constants.O_NONBLOCK |
183
+ (process.platform === 'darwin' ? file_delivery_js_1.O_NOFOLLOW_ANY : node_fs_1.constants.O_NOFOLLOW);
184
+ const input = (0, node_fs_1.openSync)(file.path, flags);
185
+ try {
186
+ if (process.platform === 'linux' && (0, node_fs_1.readlinkSync)(`/proc/self/fd/${input}`) !== file.path)
187
+ throw new Error(`Member export file path changed: ${file.name}`);
188
+ const stat = (0, node_fs_1.fstatSync)(input);
189
+ if (!stat.isFile() || stat.dev !== file.dev || stat.ino !== file.ino)
190
+ throw new Error(`Member export file changed: ${file.name}`);
191
+ if (stat.nlink > (inventory.links.get(`${file.dev}:${file.ino}`) ?? 0)) {
192
+ omittedFiles.push(file.name);
193
+ continue;
194
+ }
195
+ const entry = new fflate_1.ZipPassThrough(file.name);
196
+ zip.add(entry);
197
+ let count, bytes = 0;
198
+ while ((count = (0, node_fs_1.readSync)(input, buffer, 0, buffer.length, null)) > 0) {
199
+ entry.push(buffer.subarray(0, count));
200
+ bytes += count;
201
+ await new Promise((resume) => setImmediate(resume));
202
+ }
203
+ entry.push(new Uint8Array(), true);
204
+ fileCount++;
205
+ fileBytes += bytes;
206
+ }
207
+ finally {
208
+ (0, node_fs_1.closeSync)(input);
209
+ }
210
+ }
211
+ zip.end();
212
+ if (!finished)
213
+ throw new Error('Member export zip did not finish');
214
+ return {
215
+ path,
216
+ filesRoot,
217
+ size,
218
+ fileCount,
219
+ fileBytes,
220
+ omittedFiles,
221
+ fileSnapshot: memberInventorySnapshot(inventory, omittedFiles),
222
+ };
223
+ }
224
+ catch (error) {
225
+ (0, node_fs_1.rmSync)(path, { force: true });
226
+ throw error;
227
+ }
228
+ finally {
229
+ (0, node_fs_1.closeSync)(output);
230
+ }
231
+ }
232
+ //# sourceMappingURL=member-export.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"member-export.js","sourceRoot":"","sources":["../../src/api/member-export.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import { type ActionRegistration, type JudgmentAccess } from '@jungjaehoon/mama-core';
2
+ import type { DatabaseInstance } from '@jungjaehoon/mama-core/db-manager';
3
+ import type { TimeZoneSetting } from '../runtime/timezone.js';
4
+ export declare const MEMBER_MANAGEMENT_ACTIONS: readonly ["manage.member.grant", "manage.member.revoke", "manage.member.suspend", "manage.member.resume", "manage.member.offboard", "manage.member.list"];
5
+ export interface MemberLifecyclePorts {
6
+ resetSession(principalId: string): Promise<void>;
7
+ retire(principalId: string): Promise<void>;
8
+ resume(principalId: string): Promise<void>;
9
+ cancelQueued(principalId: string, reason: string): number;
10
+ }
11
+ /** Host lifecycle effects execute inside the owner's already-held shared serial turn slot. */
12
+ export declare function memberLifecycleRegistrations(options: {
13
+ adapter: DatabaseInstance;
14
+ ownerPrincipalId: string;
15
+ ownerAccess(): JudgmentAccess;
16
+ isOwnerMessageTurn(sourceMessageRef: string): boolean;
17
+ timeZone: TimeZoneSetting;
18
+ ports?: MemberLifecyclePorts;
19
+ }): ActionRegistration[];
20
+ //# sourceMappingURL=member-lifecycle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"member-lifecycle.d.ts","sourceRoot":"","sources":["../../src/api/member-lifecycle.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,kBAAkB,EAEvB,KAAK,cAAc,EACpB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAE1E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9D,eAAO,MAAM,yBAAyB,2JAO5B,CAAC;AAEX,MAAM,WAAW,oBAAoB;IACnC,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjD,MAAM,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3C,MAAM,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3C,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;CAC3D;AAED,8FAA8F;AAC9F,wBAAgB,4BAA4B,CAAC,OAAO,EAAE;IACpD,OAAO,EAAE,gBAAgB,CAAC;IAC1B,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,IAAI,cAAc,CAAC;IAC9B,kBAAkB,CAAC,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC;IACtD,QAAQ,EAAE,eAAe,CAAC;IAC1B,KAAK,CAAC,EAAE,oBAAoB,CAAC;CAC9B,GAAG,kBAAkB,EAAE,CA6LvB"}