@jungjaehoon/mama-os 0.73.0 → 0.75.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.
- package/CHANGELOG.md +44 -0
- package/README.md +6 -1
- package/dist/api/drive-actions.d.ts +3 -1
- package/dist/api/drive-actions.d.ts.map +1 -1
- package/dist/api/drive-actions.js +6 -1
- package/dist/api/drive-actions.js.map +1 -1
- package/dist/api/file-delivery.d.ts +1 -0
- package/dist/api/file-delivery.d.ts.map +1 -1
- package/dist/api/file-delivery.js +3 -3
- package/dist/api/file-delivery.js.map +1 -1
- package/dist/api/member-enrollment.d.ts +0 -1
- package/dist/api/member-enrollment.d.ts.map +1 -1
- package/dist/api/member-enrollment.js +4 -20
- package/dist/api/member-enrollment.js.map +1 -1
- package/dist/api/member-export.d.ts +32 -0
- package/dist/api/member-export.d.ts.map +1 -0
- package/dist/api/member-export.js +232 -0
- package/dist/api/member-export.js.map +1 -0
- package/dist/api/member-lifecycle.d.ts +2 -0
- package/dist/api/member-lifecycle.d.ts.map +1 -1
- package/dist/api/member-lifecycle.js +26 -4
- package/dist/api/member-lifecycle.js.map +1 -1
- package/dist/api/member-records.d.ts +38 -0
- package/dist/api/member-records.d.ts.map +1 -0
- package/dist/api/member-records.js +379 -0
- package/dist/api/member-records.js.map +1 -0
- package/dist/api/member-share-actions.js +2 -2
- package/dist/api/member-share-actions.js.map +1 -1
- package/dist/api/member-smoke-state.d.ts +3 -0
- package/dist/api/member-smoke-state.d.ts.map +1 -0
- package/dist/api/member-smoke-state.js +20 -0
- package/dist/api/member-smoke-state.js.map +1 -0
- package/dist/api/trello-actions.d.ts +1 -1
- package/dist/api/trello-actions.d.ts.map +1 -1
- package/dist/api/trello-actions.js +12 -3
- package/dist/api/trello-actions.js.map +1 -1
- package/dist/cli/commands/daemon.d.ts +1 -0
- package/dist/cli/commands/daemon.d.ts.map +1 -1
- package/dist/cli/commands/daemon.js +16 -4
- package/dist/cli/commands/daemon.js.map +1 -1
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +4 -5
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/register-owner.d.ts +14 -5
- package/dist/cli/commands/register-owner.d.ts.map +1 -1
- package/dist/cli/commands/register-owner.js +145 -42
- package/dist/cli/commands/register-owner.js.map +1 -1
- package/dist/cli/index.js +3 -4
- package/dist/cli/index.js.map +1 -1
- package/dist/gateways/telegram-message-ledger.d.ts +4 -0
- package/dist/gateways/telegram-message-ledger.d.ts.map +1 -1
- package/dist/gateways/telegram-message-ledger.js +21 -0
- package/dist/gateways/telegram-message-ledger.js.map +1 -1
- package/dist/gateways/telegram.d.ts +18 -5
- package/dist/gateways/telegram.d.ts.map +1 -1
- package/dist/gateways/telegram.js +138 -72
- package/dist/gateways/telegram.js.map +1 -1
- package/dist/gateways/turn-contract.d.ts +7 -0
- package/dist/gateways/turn-contract.d.ts.map +1 -1
- package/dist/runtime/action-surface.d.ts +6 -3
- package/dist/runtime/action-surface.d.ts.map +1 -1
- package/dist/runtime/action-surface.js +17 -5
- package/dist/runtime/action-surface.js.map +1 -1
- package/dist/runtime/config.d.ts +0 -1
- package/dist/runtime/config.d.ts.map +1 -1
- package/dist/runtime/config.js +7 -11
- package/dist/runtime/config.js.map +1 -1
- package/dist/runtime/member-system-prompt.d.ts.map +1 -1
- package/dist/runtime/member-system-prompt.js +5 -1
- package/dist/runtime/member-system-prompt.js.map +1 -1
- package/dist/runtime/owner-authority.d.ts +2 -0
- package/dist/runtime/owner-authority.d.ts.map +1 -1
- package/dist/runtime/owner-authority.js +5 -1
- package/dist/runtime/owner-authority.js.map +1 -1
- package/dist/runtime/owner-runtime.d.ts +10 -0
- package/dist/runtime/owner-runtime.d.ts.map +1 -1
- package/dist/runtime/owner-runtime.js +120 -25
- package/dist/runtime/owner-runtime.js.map +1 -1
- package/dist/runtime/principal-access.d.ts.map +1 -1
- package/dist/runtime/principal-access.js +31 -3
- package/dist/runtime/principal-access.js.map +1 -1
- package/dist/runtime/principal-sessions.d.ts +10 -4
- package/dist/runtime/principal-sessions.d.ts.map +1 -1
- package/dist/runtime/principal-sessions.js +44 -14
- package/dist/runtime/principal-sessions.js.map +1 -1
- package/dist/runtime/stimulus-delivery.d.ts +1 -0
- package/dist/runtime/stimulus-delivery.d.ts.map +1 -1
- package/dist/runtime/stimulus-delivery.js +7 -1
- package/dist/runtime/stimulus-delivery.js.map +1 -1
- package/dist/storage/chat-sources.js +1 -1
- package/dist/storage/chat-sources.js.map +1 -1
- package/dist/storage/source-archive.d.ts +16 -0
- package/dist/storage/source-archive.d.ts.map +1 -1
- package/dist/storage/source-archive.js +132 -0
- package/dist/storage/source-archive.js.map +1 -1
- package/package.json +5 -4
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,50 @@ 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.75.0] - 2026-10-12
|
|
9
|
+
|
|
10
|
+
### Changed
|
|
11
|
+
|
|
12
|
+
- Owners are members. Telegram admits a private chat by the registry into that member's own
|
|
13
|
+
session, also when the chat is listed in `allowed_chats`; a group in `allowed_chats` admits only
|
|
14
|
+
active members with the `owner` role, into the common session, with the sender stored on the
|
|
15
|
+
input and the chat item. DM attachments go to the sender's downloads folder, and DM replies,
|
|
16
|
+
interruption notices and their recovery go to that person's DM and chat (#473).
|
|
17
|
+
- An owner's DM session is a member session with no web tools; the `owner` role adds reads of the
|
|
18
|
+
common scopes, connectors and channels (never another person's DM), `drive.read`, all Trello
|
|
19
|
+
boards, `report.read` and the help topics. Common changes are refused there and made in the
|
|
20
|
+
common channel. `manage.member.*` refuses owner-role targets; enrollment is unavailable for now
|
|
21
|
+
(#473).
|
|
22
|
+
- Breaking: `telegram.owner_user_ids` is refused and `telegram.owner_chat_id` must be a group or
|
|
23
|
+
supergroup id; `mama init` asks for the common group. `mama register-owner <telegram id>` (daemon
|
|
24
|
+
stopped) registers each owner as a member with the `owner` role, moves the first owner's DM chat
|
|
25
|
+
and checkpoints to that person and resets the common Codex thread (#473).
|
|
26
|
+
|
|
27
|
+
## [0.74.0] - 2026-10-11
|
|
28
|
+
|
|
29
|
+
### Added
|
|
30
|
+
|
|
31
|
+
- `records.export` and `records.erase` for members (own message turn only; no principal input;
|
|
32
|
+
owner, delta, scheduled, replay and subagent turns are denied). An export runs after its turn and
|
|
33
|
+
sends one zip to the member's registered DM (50 MiB): the member's core and chat records and the
|
|
34
|
+
files of its runtime, temp and retired trees, never credentials or host account files; links that
|
|
35
|
+
leave the member's trees are named and left out; one export per member at a time. `records.erase`
|
|
36
|
+
previews counts and issues a single-use token; a later member message confirms it. After that turn
|
|
37
|
+
settles the host retires the member, sends the export and, once Telegram accepts it and the files
|
|
38
|
+
are unchanged, deletes the member's trees, chat index, core records (B1), chat raw rows and DM
|
|
39
|
+
ledger entries, then serves the member again and records a plain receipt in its chat. Failed,
|
|
40
|
+
oversized or uncertain deliveries erase nothing (#471).
|
|
41
|
+
- Host receipts to a registered member DM (`TelegramGateway.sendMemberText`) (#471).
|
|
42
|
+
- Dependency `fflate` 0.8.3 for the export zip (#471).
|
|
43
|
+
|
|
44
|
+
### Changed
|
|
45
|
+
|
|
46
|
+
- The owner's conversation record keeps each enrollment selection and its receipt (#468).
|
|
47
|
+
- `manage.member.list` returns `recentEnrollments` (#469) with owner-local times and the zone
|
|
48
|
+
named (#470).
|
|
49
|
+
- The shared turn chain can run host work next and hold its slot until an input settles; only an
|
|
50
|
+
erasure pauses claims while it runs (#471).
|
|
51
|
+
|
|
8
52
|
## [0.73.0] - 2026-10-10
|
|
9
53
|
|
|
10
54
|
### 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.
|
|
7
|
+
Current manifest: **0.75.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
|
|
@@ -19,6 +19,11 @@ From a checkout, run `pnpm install` and `pnpm build`, then use
|
|
|
19
19
|
with echo off. It writes configuration and optional launchd files; backend login and service
|
|
20
20
|
startup are separate steps.
|
|
21
21
|
|
|
22
|
+
For Telegram's common session, create a group with the bot, even for a solo owner, and enter
|
|
23
|
+
its negative group or supergroup ID in `mama init`. Private chats always enter personal sessions.
|
|
24
|
+
Before starting the daemon, set `member_root` outside HOME in `config.yaml` and run
|
|
25
|
+
`mama register-owner <telegram id>` for each owner's positive user ID.
|
|
26
|
+
|
|
22
27
|
| Command | Purpose |
|
|
23
28
|
| --------------------------------------------- | ------------------------------------------------ |
|
|
24
29
|
| `mama init` | Set up the owner, backend and connectors |
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type ActionContext, type ActionRegistration } from '@jungjaehoon/mama-core';
|
|
2
|
+
import type { DatabaseInstance } from '@jungjaehoon/mama-core/db-manager';
|
|
2
3
|
import { type GwsCallOptions } from '../connectors/framework/gws-utils.js';
|
|
3
4
|
export type GwsCall = (args: string[], options?: GwsCallOptions) => Promise<unknown>;
|
|
4
5
|
export interface DriveActionPorts {
|
|
6
|
+
adapter: DatabaseInstance;
|
|
5
7
|
ownerPrincipalId: string;
|
|
6
8
|
downloadsDir?: string;
|
|
7
9
|
gws?: GwsCall;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drive-actions.d.ts","sourceRoot":"","sources":["../../src/api/drive-actions.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"drive-actions.d.ts","sourceRoot":"","sources":["../../src/api/drive-actions.ts"],"names":[],"mappings":"AAQA,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACxB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAE1E,OAAO,EAAgB,KAAK,cAAc,EAAE,MAAM,sCAAsC,CAAC;AAIzF,MAAM,MAAM,OAAO,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,cAAc,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;AAErF,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,gBAAgB,CAAC;IAC1B,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AA0CD,wBAAgB,SAAS,CACvB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,aAAa,CAAC,QAAQ,CAAC,EAC/B,gBAAgB,EAAE,MAAM,QAMzB;AAED,6FAA6F;AAC7F,wBAAgB,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAa7D;AAsBD,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,gBAAgB,GAAG,kBAAkB,EAAE,CAgRtF"}
|
|
@@ -11,8 +11,10 @@ exports.driveActionRegistrations = driveActionRegistrations;
|
|
|
11
11
|
*/
|
|
12
12
|
const node_fs_1 = require("node:fs");
|
|
13
13
|
const node_path_1 = require("node:path");
|
|
14
|
+
const mama_core_1 = require("@jungjaehoon/mama-core");
|
|
14
15
|
const gws_utils_js_1 = require("../connectors/framework/gws-utils.js");
|
|
15
16
|
const attachment_actions_js_1 = require("./attachment-actions.js");
|
|
17
|
+
const owner_authority_js_1 = require("../runtime/owner-authority.js");
|
|
16
18
|
const FOLDER = 'application/vnd.google-apps.folder';
|
|
17
19
|
const FILE_FIELDS = 'id,name,mimeType,size,modifiedTime,lastModifyingUser(displayName),parents,driveId,webViewLink';
|
|
18
20
|
const LIST_BUFFER = 16 * 1024 * 1024;
|
|
@@ -81,6 +83,7 @@ function fileView(file) {
|
|
|
81
83
|
};
|
|
82
84
|
}
|
|
83
85
|
function driveActionRegistrations(ports) {
|
|
86
|
+
let principals;
|
|
84
87
|
const gws = ports.gws ?? gws_utils_js_1.execGwsAsync;
|
|
85
88
|
/**
|
|
86
89
|
* Pages until `max` entries or the end, because Drive may return short or empty pages before
|
|
@@ -171,7 +174,9 @@ function driveActionRegistrations(ports) {
|
|
|
171
174
|
],
|
|
172
175
|
},
|
|
173
176
|
exec: async (input, context) => {
|
|
174
|
-
|
|
177
|
+
if (context.access.principalId !== ports.ownerPrincipalId &&
|
|
178
|
+
!(0, owner_authority_js_1.holdsOwnerRole)((principals ??= (0, mama_core_1.createPrincipalRepository)(ports.adapter)), context.access.principalId))
|
|
179
|
+
ownerOnly('drive.read', context.access, ports.ownerPrincipalId);
|
|
175
180
|
const values = input;
|
|
176
181
|
switch (values.view) {
|
|
177
182
|
case 'drives': {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drive-actions.js","sourceRoot":"","sources":["../../src/api/drive-actions.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"drive-actions.js","sourceRoot":"","sources":["../../src/api/drive-actions.ts"],"names":[],"mappings":"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"}
|
|
@@ -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;
|
|
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
|
-
|
|
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":";;;AAuDA,0DA0BC;AAED,sDASC;AAMD,8CAgDC;AAGD,8CAWC;AAED,sDAYC;AA9KD,qCAUiB;AACjB,6CAAyC;AACzC,yCAA2E;AAG3E,iGAAiG;AACjG,sCAAsC;
|
|
1
|
+
{"version":3,"file":"file-delivery.js","sourceRoot":"","sources":["../../src/api/file-delivery.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"member-enrollment.d.ts","sourceRoot":"","sources":["../../src/api/member-enrollment.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"member-enrollment.d.ts","sourceRoot":"","sources":["../../src/api/member-enrollment.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,KAAK,cAAc,EACpB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAI1E,+EAA+E;AAC/E,MAAM,WAAW,eAAe;IAC9B,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,qBAAqB;IACpC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1D,WAAW,CAAC,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CACzC;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE;IAC9C,OAAO,EAAE,gBAAgB,CAAC;IAC1B,gBAAgB,EAAE,MAAM,CAAC;IACzB,kBAAkB,CAAC,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC;IACtD,WAAW,IAAI,cAAc,CAAC;IAC9B,KAAK,CAAC,EAAE,qBAAqB,CAAC;CAC/B;;0BAsG+B,eAAe,YAAY,gBAAgB;EAgB1E"}
|
|
@@ -2,11 +2,8 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.createMemberEnrollment = createMemberEnrollment;
|
|
4
4
|
const node_crypto_1 = require("node:crypto");
|
|
5
|
-
const node_fs_1 = require("node:fs");
|
|
6
|
-
const node_path_1 = require("node:path");
|
|
7
5
|
const mama_core_1 = require("@jungjaehoon/mama-core");
|
|
8
|
-
const
|
|
9
|
-
const member_paths_js_1 = require("../runtime/member-paths.js");
|
|
6
|
+
const member_smoke_state_js_1 = require("./member-smoke-state.js");
|
|
10
7
|
const principal_access_js_1 = require("../runtime/principal-access.js");
|
|
11
8
|
function createMemberEnrollment(options) {
|
|
12
9
|
// A completion exists only while a host-issued dispatcher operation is executing.
|
|
@@ -14,7 +11,7 @@ function createMemberEnrollment(options) {
|
|
|
14
11
|
const registration = {
|
|
15
12
|
contract: {
|
|
16
13
|
name: 'manage.member.enroll',
|
|
17
|
-
summary: "
|
|
14
|
+
summary: "Enrollment requires the Choose member button in an owner's Telegram DM and is not available now. Requires member_root and a daemon restart after configuring it. The host registers the selected identity; this action accepts no person, chat or grants. Returns pending; enrollment grants no shared access. Active members' own messages are admitted by the registry.",
|
|
18
15
|
inputSchema: { type: 'object', additionalProperties: false, properties: {} },
|
|
19
16
|
examples: [{ title: 'Ask the owner to choose a member', input: {} }],
|
|
20
17
|
},
|
|
@@ -24,9 +21,7 @@ function createMemberEnrollment(options) {
|
|
|
24
21
|
context.session?.replaySourceEndMs !== undefined ||
|
|
25
22
|
!ref ||
|
|
26
23
|
!options.isOwnerMessageTurn(ref)) {
|
|
27
|
-
throw Object.assign(new Error(
|
|
28
|
-
name: 'denied',
|
|
29
|
-
});
|
|
24
|
+
throw Object.assign(new Error("Enrollment requires the Choose member button in an owner's Telegram DM and is not available now."), { name: 'denied' });
|
|
30
25
|
}
|
|
31
26
|
const ports = options.ports;
|
|
32
27
|
if (!ports)
|
|
@@ -53,8 +48,6 @@ function createMemberEnrollment(options) {
|
|
|
53
48
|
});
|
|
54
49
|
if (selection.userId === selection.ownerUserId)
|
|
55
50
|
return receipt('refused', options.ownerPrincipalId, "The owner's own identity cannot be enrolled");
|
|
56
|
-
if (ports.ownerUserIds.includes(selection.userId))
|
|
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
51
|
if (current && current.status !== 'active')
|
|
59
52
|
return receipt('refused', current.principalId, `The selected principal is ${current.status}`);
|
|
60
53
|
if (current?.kind === 'member') {
|
|
@@ -81,16 +74,7 @@ function createMemberEnrollment(options) {
|
|
|
81
74
|
ownerAccess: options.ownerAccess(),
|
|
82
75
|
agentId: `member-agent:${id}`,
|
|
83
76
|
});
|
|
84
|
-
|
|
85
|
-
const paths = (0, member_paths_js_1.ensureMemberPaths)(ports.memberRoot, id);
|
|
86
|
-
const temp = (0, member_paths_js_1.memberClaudeTmpDir)(id);
|
|
87
|
-
const expectedTemp = (0, node_path_1.join)((0, backend_security_js_1.physicalReadPath)((0, node_path_1.dirname)(backend_security_js_1.MEMBER_CLAUDE_TMP_PARENT)), (0, node_path_1.basename)(backend_security_js_1.MEMBER_CLAUDE_TMP_PARENT), (0, node_path_1.basename)(temp));
|
|
88
|
-
if ((0, backend_security_js_1.physicalReadPath)(temp) !== expectedTemp)
|
|
89
|
-
throw new Error('Member temp path must not be a symlink');
|
|
90
|
-
(0, node_fs_1.rmSync)(paths.runtimeRoot, { recursive: true, force: true });
|
|
91
|
-
(0, node_fs_1.rmSync)(temp, { recursive: true, force: true });
|
|
92
|
-
(0, member_paths_js_1.ensureMemberPaths)(ports.memberRoot, id);
|
|
93
|
-
(0, node_fs_1.mkdirSync)(temp, { recursive: true, mode: 0o700 });
|
|
77
|
+
(0, member_smoke_state_js_1.clearMemberSmokeState)(ports.memberRoot, id);
|
|
94
78
|
return id;
|
|
95
79
|
});
|
|
96
80
|
ports.serveMember?.(principalId);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"member-enrollment.js","sourceRoot":"","sources":["../../src/api/member-enrollment.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"member-enrollment.js","sourceRoot":"","sources":["../../src/api/member-enrollment.ts"],"names":[],"mappings":"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"}
|
|
@@ -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
|