@mcsherrylabs/evolver-mcp 0.12.0 → 0.13.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 (124) hide show
  1. package/dist/application-signer.d.ts +16 -0
  2. package/dist/application-signer.d.ts.map +1 -0
  3. package/dist/application-signer.js +55 -0
  4. package/dist/application-signer.js.map +1 -0
  5. package/dist/approved-request.d.ts +30 -0
  6. package/dist/approved-request.d.ts.map +1 -0
  7. package/dist/approved-request.js +167 -0
  8. package/dist/approved-request.js.map +1 -0
  9. package/dist/attachment-tools.d.ts +3 -0
  10. package/dist/attachment-tools.d.ts.map +1 -0
  11. package/dist/attachment-tools.js +32 -0
  12. package/dist/attachment-tools.js.map +1 -0
  13. package/dist/attachments.d.ts +41 -0
  14. package/dist/attachments.d.ts.map +1 -0
  15. package/dist/attachments.js +458 -0
  16. package/dist/attachments.js.map +1 -0
  17. package/dist/content-file-tools.d.ts +3 -0
  18. package/dist/content-file-tools.d.ts.map +1 -0
  19. package/dist/content-file-tools.js +67 -0
  20. package/dist/content-file-tools.js.map +1 -0
  21. package/dist/content-files.d.ts +32 -0
  22. package/dist/content-files.d.ts.map +1 -0
  23. package/dist/content-files.js +79 -0
  24. package/dist/content-files.js.map +1 -0
  25. package/dist/content-ranges.d.ts +41 -0
  26. package/dist/content-ranges.d.ts.map +1 -0
  27. package/dist/content-ranges.js +75 -0
  28. package/dist/content-ranges.js.map +1 -0
  29. package/dist/content.d.ts +13 -0
  30. package/dist/content.d.ts.map +1 -1
  31. package/dist/content.js +5 -5
  32. package/dist/content.js.map +1 -1
  33. package/dist/files.d.ts +60 -0
  34. package/dist/files.d.ts.map +1 -0
  35. package/dist/files.js +355 -0
  36. package/dist/files.js.map +1 -0
  37. package/dist/group-crypto-tools.d.ts +3 -0
  38. package/dist/group-crypto-tools.d.ts.map +1 -0
  39. package/dist/group-crypto-tools.js +47 -0
  40. package/dist/group-crypto-tools.js.map +1 -0
  41. package/dist/group-crypto.d.ts +24 -0
  42. package/dist/group-crypto.d.ts.map +1 -0
  43. package/dist/group-crypto.js +135 -0
  44. package/dist/group-crypto.js.map +1 -0
  45. package/dist/group-key-provider.d.ts +30 -0
  46. package/dist/group-key-provider.d.ts.map +1 -0
  47. package/dist/group-key-provider.js +72 -0
  48. package/dist/group-key-provider.js.map +1 -0
  49. package/dist/group-keys.d.ts +34 -0
  50. package/dist/group-keys.d.ts.map +1 -0
  51. package/dist/group-keys.js +88 -0
  52. package/dist/group-keys.js.map +1 -0
  53. package/dist/group-ownership.d.ts.map +1 -1
  54. package/dist/group-ownership.js +5 -6
  55. package/dist/group-ownership.js.map +1 -1
  56. package/dist/http-profiles.d.ts +47 -0
  57. package/dist/http-profiles.d.ts.map +1 -0
  58. package/dist/http-profiles.js +161 -0
  59. package/dist/http-profiles.js.map +1 -0
  60. package/dist/human-approval.d.ts +14 -0
  61. package/dist/human-approval.d.ts.map +1 -0
  62. package/dist/human-approval.js +34 -0
  63. package/dist/human-approval.js.map +1 -0
  64. package/dist/index.d.ts +11 -0
  65. package/dist/index.d.ts.map +1 -1
  66. package/dist/index.js +93 -40
  67. package/dist/index.js.map +1 -1
  68. package/dist/login-profiles.d.ts +25 -0
  69. package/dist/login-profiles.d.ts.map +1 -0
  70. package/dist/login-profiles.js +77 -0
  71. package/dist/login-profiles.js.map +1 -0
  72. package/dist/login-tools.d.ts +3 -0
  73. package/dist/login-tools.d.ts.map +1 -0
  74. package/dist/login-tools.js +27 -0
  75. package/dist/login-tools.js.map +1 -0
  76. package/dist/login.d.ts +36 -0
  77. package/dist/login.d.ts.map +1 -0
  78. package/dist/login.js +144 -0
  79. package/dist/login.js.map +1 -0
  80. package/dist/node-transport.d.ts +14 -0
  81. package/dist/node-transport.d.ts.map +1 -0
  82. package/dist/node-transport.js +54 -0
  83. package/dist/node-transport.js.map +1 -0
  84. package/dist/p2p-tools.d.ts +3 -0
  85. package/dist/p2p-tools.d.ts.map +1 -0
  86. package/dist/p2p-tools.js +52 -0
  87. package/dist/p2p-tools.js.map +1 -0
  88. package/dist/p2p.d.ts +67 -0
  89. package/dist/p2p.d.ts.map +1 -0
  90. package/dist/p2p.js +326 -0
  91. package/dist/p2p.js.map +1 -0
  92. package/dist/proof-attempts.d.ts +19 -0
  93. package/dist/proof-attempts.d.ts.map +1 -0
  94. package/dist/proof-attempts.js +30 -0
  95. package/dist/proof-attempts.js.map +1 -0
  96. package/dist/signed-http-tools.d.ts +3 -0
  97. package/dist/signed-http-tools.d.ts.map +1 -0
  98. package/dist/signed-http-tools.js +33 -0
  99. package/dist/signed-http-tools.js.map +1 -0
  100. package/dist/signed-http.d.ts +30 -0
  101. package/dist/signed-http.d.ts.map +1 -0
  102. package/dist/signed-http.js +114 -0
  103. package/dist/signed-http.js.map +1 -0
  104. package/dist/tools.d.ts +26 -1
  105. package/dist/tools.d.ts.map +1 -1
  106. package/dist/tools.js +14 -0
  107. package/dist/tools.js.map +1 -1
  108. package/dist/transaction-interchange-tools.d.ts +3 -0
  109. package/dist/transaction-interchange-tools.d.ts.map +1 -0
  110. package/dist/transaction-interchange-tools.js +41 -0
  111. package/dist/transaction-interchange-tools.js.map +1 -0
  112. package/dist/transaction-interchange.d.ts +141 -0
  113. package/dist/transaction-interchange.d.ts.map +1 -0
  114. package/dist/transaction-interchange.js +502 -0
  115. package/dist/transaction-interchange.js.map +1 -0
  116. package/dist/transaction-policy.d.ts +32 -0
  117. package/dist/transaction-policy.d.ts.map +1 -0
  118. package/dist/transaction-policy.js +89 -0
  119. package/dist/transaction-policy.js.map +1 -0
  120. package/dist/write.d.ts +6 -0
  121. package/dist/write.d.ts.map +1 -1
  122. package/dist/write.js +16 -2
  123. package/dist/write.js.map +1 -1
  124. package/package.json +4 -3
@@ -0,0 +1,79 @@
1
+ // File-backed content is an explicit host-filesystem capability, never a model-context blob.
2
+ // The SDK still owns HTTP and streaming transport. The file layer owns byte bounds, incremental
3
+ // hashing and atomic output; neither this module nor the tools implement the node protocol.
4
+ import { parseAccess, OPEN_NOTE, RESTRICTED_NOTE } from "./content.js";
5
+ import { ContentHttpError } from "@mcsherrylabs/evolver-client";
6
+ import { FileAccessError, fileName } from "./files.js";
7
+ /** Deliberately do not echo exceptions/response text/host paths: a server can reflect content,
8
+ * and some TLS errors include certificate details. A completed HTTP refusal is not transport loss. */
9
+ export function contentFileFailure(e, url, operation) {
10
+ const aftermath = operation === "publish" ? "upload storage is unconfirmed" : "no completed output metadata returned";
11
+ if (e instanceof FileAccessError && e.code === "publication_unknown")
12
+ return { kind: "partial", what: operation, cause: "file_publication_unknown; target may exist or have been visible; this is NOT a no-write refusal. Do not retry or automatically delete the final target; operator inspection is required." +
13
+ (e.cleanupWarning ? " staging_cleanup_failed; protected staging may also remain." : "") };
14
+ if (e instanceof FileAccessError && e.code !== "transfer_failed")
15
+ return { kind: "partial", what: operation, cause: `file_${e.code}; ${aftermath}` +
16
+ (e.cleanupWarning ? "; staging_cleanup_failed; operator inspection of protected staging may be required" : "") };
17
+ if (e instanceof Error && e.name === "AbortError")
18
+ return { kind: "partial", what: operation, cause: `cancelled; ${aftermath}` };
19
+ const message = e instanceof Error ? e.message : "";
20
+ const status = e instanceof ContentHttpError ? String(e.status) :
21
+ /^(?:postContent(?:Stream)?|getContentStream): HTTP ([1-5][0-9]{2})\b/.exec(message)?.[1];
22
+ if (status)
23
+ return { kind: "partial", what: operation,
24
+ cause: `content_http_${status}; not complete, not retried or republished open; ${aftermath}` };
25
+ return { kind: "unreachable", chain: url, cause: `content_transfer_failed; ${aftermath}` +
26
+ (e instanceof FileAccessError && e.cleanupWarning ? "; staging_cleanup_failed; operator inspection of protected staging may be required" : "") };
27
+ }
28
+ export const contentFileDisabled = () => ({ kind: "misconfigured", what: "file content access is disabled",
29
+ fix: "operator must opt in with EVOLVER_FILE_ROOT (dedicated server-local0700 directory) and reload; client roots do not authorize host access" });
30
+ export async function publishFile(deps, req, signal) {
31
+ // Share the INLINE ACL parser; do not trim/filter a malformed grant into open publication.
32
+ const access = parseAccess(req.access, req.authorizedPrincipals);
33
+ if ("kind" in access)
34
+ return access;
35
+ if (!deps)
36
+ return contentFileDisabled();
37
+ try {
38
+ const file = fileName(req.file);
39
+ return await deps.files.transfer(files => files.withInput(file, async (input) => {
40
+ const result = await deps.client.postContentStream(input.stream, { size: input.size, signal: files.signal,
41
+ ...(access.mode === "restricted" ? { authorizedPrincipals: access.principals } : {}) });
42
+ const metadata = input.metadata();
43
+ if (result.size !== metadata.size || !/^[0-9a-f]{64}$/.test(result.key))
44
+ throw new FileAccessError("incomplete");
45
+ return { kind: "ok", value: { ...metadata, key: result.key, access: access.mode,
46
+ ...(access.mode === "restricted" ? { authorizedPrincipals: access.principals } : {}),
47
+ note: access.mode === "restricted" ? RESTRICTED_NOTE : OPEN_NOTE } };
48
+ }), signal);
49
+ }
50
+ catch (e) {
51
+ return contentFileFailure(e, deps.contentUrl, "publish");
52
+ }
53
+ }
54
+ export async function fetchFile(deps, req, signal) {
55
+ if (!deps)
56
+ return contentFileDisabled();
57
+ if (typeof req.key !== "string" || !/^[0-9a-f]{64}$/.test(req.key))
58
+ return { kind: "partial", what: "key", cause: "a content key must be exactly64 lowercase hex characters" };
59
+ const key = req.key;
60
+ try {
61
+ const file = fileName(req.file);
62
+ return await deps.files.transfer(async (files) => {
63
+ const result = await deps.client.getContentStream(key, { signal: files.signal });
64
+ if (result === null)
65
+ return { kind: "ok", value: null };
66
+ // A full-file tool never silently treats a partial response as the complete object.
67
+ if (result.status !== 200 || result.range !== null) {
68
+ await result.stream.cancel().catch(() => undefined);
69
+ throw new FileAccessError("incomplete");
70
+ }
71
+ const metadata = await files.writeNew(file, result.stream, result.size);
72
+ return { kind: "ok", value: { ...metadata, key } };
73
+ }, signal);
74
+ }
75
+ catch (e) {
76
+ return contentFileFailure(e, deps.contentUrl, "download");
77
+ }
78
+ }
79
+ //# sourceMappingURL=content-files.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content-files.js","sourceRoot":"","sources":["../src/content-files.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ import type { FileContentDeps } from "./content-files.js";
2
+ import type { FileCleanupWarning } from "./files.js";
3
+ import type { ToolResult } from "./result.js";
4
+ export interface ByteInterval {
5
+ readonly from: number;
6
+ readonly toInclusive: number;
7
+ }
8
+ export type FileRangeResult = {
9
+ readonly status: "range";
10
+ readonly key: string;
11
+ readonly file: string;
12
+ readonly size: number;
13
+ readonly sha256: string;
14
+ readonly hashScope: "served-range";
15
+ /** False refers to the ORIGINAL object, even if this interval happens to cover all of it. */
16
+ readonly complete: false;
17
+ readonly rangeComplete: true;
18
+ readonly fileComplete: true;
19
+ readonly requested: ByteInterval;
20
+ readonly served: ByteInterval & {
21
+ readonly totalSize: number;
22
+ };
23
+ readonly clipped: boolean;
24
+ readonly cleanupWarning?: FileCleanupWarning;
25
+ } | {
26
+ readonly status: "unsatisfiable";
27
+ readonly key: string;
28
+ readonly requested: ByteInterval;
29
+ readonly totalSize: number | null;
30
+ readonly complete: false;
31
+ readonly rangeComplete: false;
32
+ readonly fileComplete: false;
33
+ };
34
+ export declare function byteInterval(from: unknown, toInclusive: unknown, maxBytes: number): ByteInterval | ToolResult<never>;
35
+ export declare function fetchRangeFile(deps: FileContentDeps | undefined, req: {
36
+ key?: unknown;
37
+ file?: unknown;
38
+ from?: unknown;
39
+ toInclusive?: unknown;
40
+ }, signal?: AbortSignal): Promise<ToolResult<FileRangeResult | null>>;
41
+ //# sourceMappingURL=content-ranges.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content-ranges.d.ts","sourceRoot":"","sources":["../src/content-ranges.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAE1D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,MAAM,WAAW,YAAY;IAAG,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;CAAE;AACrF,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAC5F,QAAQ,CAAC,SAAS,EAAE,cAAc,CAAC;IACnC,6FAA6F;IAC7F,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC;IACzB,QAAQ,CAAC,aAAa,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,YAAY,EAAE,IAAI,CAAC;IAC1D,QAAQ,CAAC,SAAS,EAAE,YAAY,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,YAAY,GAAG;QAAE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/D,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,cAAc,CAAC,EAAE,kBAAkB,CAAC;CAC9C,GAAG;IACF,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,YAAY,CAAC;IACzF,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,aAAa,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,YAAY,EAAE,KAAK,CAAC;CACvF,CAAC;AAGF,wBAAgB,YAAY,CAAC,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,YAAY,GAAG,UAAU,CAAC,KAAK,CAAC,CAOpH;AAWD,wBAAsB,cAAc,CAAC,IAAI,EAAE,eAAe,GAAG,SAAS,EAAE,GAAG,EAAE;IAC3E,GAAG,CAAC,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,WAAW,CAAC,EAAE,OAAO,CAAC;CACtE,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,eAAe,GAAG,IAAI,CAAC,CAAC,CAyCpE"}
@@ -0,0 +1,75 @@
1
+ // Inclusive range semantics sit above the SDK's truthful HTTP metadata and reuse #11's
2
+ // exact-byte, atomic no-overwrite file boundary. No headers, HTTP request or wire encoder here.
3
+ import { contentFileDisabled, contentFileFailure } from "./content-files.js";
4
+ import { fileName } from "./files.js";
5
+ const nat = (value) => typeof value === "number" && Number.isSafeInteger(value) && value >= 0;
6
+ export function byteInterval(from, toInclusive, maxBytes) {
7
+ if (!nat(from) || !nat(toInclusive) || from > toInclusive)
8
+ return { kind: "partial", what: "range", cause: "invalid_range; inclusive bounds must be non-negative safe integers with from <= toInclusive" };
9
+ const count = toInclusive - from + 1;
10
+ if (!Number.isSafeInteger(count) || count > maxBytes)
11
+ return { kind: "partial", what: "range", cause: `range_too_large; requested inclusive interval must fit the ${maxBytes}-byte file bound` };
12
+ return { from, toInclusive };
13
+ }
14
+ /** SDK0.22 prerequisite: structured416, never regex-inferred from a transport exception.
15
+ * Unknown total stays null; malformed metadata is not an unsatisfiable interval result. */
16
+ function unsatisfiable(e) {
17
+ if (!(e instanceof Error) || e.name !== "ContentRangeError")
18
+ return undefined;
19
+ const value = e;
20
+ if (value.status !== 416 || (value.totalSize !== null && !nat(value.totalSize)))
21
+ return undefined;
22
+ return { totalSize: value.totalSize };
23
+ }
24
+ export async function fetchRangeFile(deps, req, signal) {
25
+ if (!deps)
26
+ return contentFileDisabled();
27
+ if (typeof req.key !== "string" || !/^[0-9a-f]{64}$/.test(req.key))
28
+ return { kind: "partial", what: "key", cause: "a content key must be exactly 64 lowercase hex characters" };
29
+ const key = req.key;
30
+ const requested = byteInterval(req.from, req.toInclusive, deps.files.maxBytes);
31
+ if ("kind" in requested)
32
+ return requested;
33
+ try {
34
+ const file = fileName(req.file);
35
+ return await deps.files.transfer(async (files) => {
36
+ let result;
37
+ try {
38
+ result = await deps.client.getContentStream(key, { range: requested, signal: files.signal });
39
+ }
40
+ catch (e) {
41
+ const refusal = unsatisfiable(e);
42
+ if (!refusal)
43
+ throw e;
44
+ return { kind: "ok", value: { status: "unsatisfiable", key, requested, totalSize: refusal.totalSize,
45
+ complete: false, rangeComplete: false, fileComplete: false } };
46
+ }
47
+ if (result === null)
48
+ return { kind: "ok", value: null };
49
+ if (result.status === 200) {
50
+ await result.stream.cancel().catch(() => undefined);
51
+ return { kind: "partial", what: "range", cause: "range_ignored; server returned a full object, discarded without writing or retry" };
52
+ }
53
+ const served = result.range;
54
+ // The SDK validates headers. Also refuse a collaborator lacking/corrupting that contract;
55
+ // a stream alone can never prove the node honored the requested range.
56
+ if (result.status !== 206 || !served || !nat(served.from) || !nat(served.toInclusive) ||
57
+ !nat(served.totalSize) || served.from > served.toInclusive || served.toInclusive >= served.totalSize ||
58
+ served.from !== requested.from || served.toInclusive !== Math.min(requested.toInclusive, served.totalSize - 1) ||
59
+ !nat(result.size) || result.size !== served.toInclusive - served.from + 1) {
60
+ await result.stream.cancel().catch(() => undefined);
61
+ return { kind: "partial", what: "range", cause: "range_metadata_invalid; validated SDK206/served interval/total/byte-count metadata is required; no output" };
62
+ }
63
+ const metadata = await files.writeNew(file, result.stream, result.size);
64
+ return { kind: "ok", value: { status: "range", key, file: metadata.file, size: metadata.size,
65
+ sha256: metadata.sha256, hashScope: "served-range", complete: false, rangeComplete: true, fileComplete: true,
66
+ requested, served: { from: served.from, toInclusive: served.toInclusive, totalSize: served.totalSize },
67
+ clipped: served.toInclusive !== requested.toInclusive,
68
+ ...(metadata.cleanupWarning ? { cleanupWarning: metadata.cleanupWarning } : {}) } };
69
+ }, signal);
70
+ }
71
+ catch (e) {
72
+ return contentFileFailure(e, deps.contentUrl, "range");
73
+ }
74
+ }
75
+ //# sourceMappingURL=content-ranges.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content-ranges.js","sourceRoot":"","sources":["../src/content-ranges.ts"],"names":[],"mappings":"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"}
package/dist/content.d.ts CHANGED
@@ -66,6 +66,18 @@ export type Fetched = {
66
66
  /** SHA-256 of the given bytes, hex-encoded. Computed locally via Web Crypto — never trusted from
67
67
  * the node (T-5-04). */
68
68
  export declare function sha256Hex(bytes: Uint8Array): Promise<string>;
69
+ export declare const OPEN_NOTE: string;
70
+ export declare const RESTRICTED_NOTE: string;
71
+ type Access = {
72
+ readonly mode: "open";
73
+ } | {
74
+ readonly mode: "restricted";
75
+ readonly principals: string[];
76
+ };
77
+ /** The access the caller DELIBERATELY asked for, or a refusal. Nothing is trimmed, filtered or
78
+ * defaulted: an entry the node would reinterpret (blank, whitespace, comma-joined) is refused,
79
+ * because the alternative is publishing to a set the caller did not name. */
80
+ export declare function parseAccess(access: unknown, grants: unknown): Access | ToolResult<never>;
69
81
  /** Publish text or binary to the content cache (READ-11, #8). `access` must be stated; a
70
82
  * restricted publication forwards its grants through the SDK's `authorizedPrincipals`. Every
71
83
  * refusal happens BEFORE any call. A node answer that is not 201 (e.g. HTTP 400 for an unknown
@@ -78,4 +90,5 @@ export declare function publishBytes(deps: ContentDeps, req: PublishRequest): Pr
78
90
  * short/overlong transfer is `unreachable`. Over `CONTENT_MAX_BYTES`, or not valid UTF-8 in text
79
91
  * mode, answers `partial` with NO content — never a preview, never a lossy decode. */
80
92
  export declare function fetchBytes(deps: ContentDeps, key: string, encoding?: unknown): Promise<ToolResult<Fetched | null>>;
93
+ export {};
81
94
  //# sourceMappingURL=content.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"content.d.ts","sourceRoot":"","sources":["../src/content.ts"],"names":[],"mappings":"AA8BA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,+EAA+E;AAC/E,eAAO,MAAM,iBAAiB,SAAU,CAAC;AACzC,gGAAgG;AAChG,eAAO,MAAM,wBAAwB,QAAuC,CAAC;AAC7E,iEAAiE;AACjE,eAAO,MAAM,sBAAsB,KAAK,CAAC;AAEzC;;;mFAGmF;AACnF,MAAM,WAAW,aAAa;IAC5B,WAAW,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE;QAAE,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACnH,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC,CAAC;CACrG;AAED;;;0CAG0C;AAC1C,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,wGAAwG;AACxG,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IACxC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED;;oBAEoB;AACpB,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ,CAAC;IACrC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,CAAC;IACvC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAClD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED;;kGAEkG;AAClG,MAAM,MAAM,OAAO,GAAG;IACpB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC;CACzB,GAAG,CAAC;IAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAEtH;yBACyB;AACzB,wBAAsB,SAAS,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAKlE;AA4ED;;;;0CAI0C;AAC1C,wBAAsB,YAAY,CAChC,IAAI,EAAE,WAAW,EACjB,GAAG,EAAE,cAAc,GAClB,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAmChC;AAED;;;;uFAIuF;AACvF,wBAAsB,UAAU,CAC9B,IAAI,EAAE,WAAW,EACjB,GAAG,EAAE,MAAM,EACX,QAAQ,GAAE,OAAgB,GACzB,OAAO,CAAC,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,CAiDrC"}
1
+ {"version":3,"file":"content.d.ts","sourceRoot":"","sources":["../src/content.ts"],"names":[],"mappings":"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"}
package/dist/content.js CHANGED
@@ -25,7 +25,7 @@
25
25
  // ⚠️ BOUNDS. Everything is inline in model context, so both directions are capped at
26
26
  // `CONTENT_MAX_BYTES` of ORIGINAL bytes. An over-bound GET returns NO content: there is no preview
27
27
  // and no truncated object reported as complete. Streaming/range reads are a follow-up.
28
- import { isValidPrincipalName } from "@mcsherrylabs/evolver-client";
28
+ import { ContentHttpError, isValidPrincipalName } from "@mcsherrylabs/evolver-client";
29
29
  import { unreachableFrom } from "./result.js";
30
30
  /** Inline bound on ORIGINAL (decoded) bytes, for both PUT and GET: 256 KiB. */
31
31
  export const CONTENT_MAX_BYTES = 262_144;
@@ -41,9 +41,9 @@ export async function sha256Hex(bytes) {
41
41
  .map((b) => b.toString(16).padStart(2, "0"))
42
42
  .join("");
43
43
  }
44
- const OPEN_NOTE = "OPEN: any peer node that can reach this node's content peer route and knows the key may read it. " +
44
+ export const OPEN_NOTE = "OPEN: any peer node that can reach this node's content peer route and knows the key may read it. " +
45
45
  "Not encryption; there is no retraction.";
46
- const RESTRICTED_NOTE = "RESTRICTED: remote reads are served only to authenticated peer NODES matching a granted identity, " +
46
+ export const RESTRICTED_NOTE = "RESTRICTED: remote reads are served only to authenticated peer NODES matching a granted identity, " +
47
47
  "or currently in/owning a granted group. The trusted local content listener is NOT restricted, the " +
48
48
  "storage operator and prior recipients are not excluded, and grants on identical bytes merge by union — " +
49
49
  "an earlier open or wider publication is not narrowed. Not encryption, not an availability guarantee.";
@@ -54,7 +54,7 @@ const LONE_SURROGATE = /[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[
54
54
  /** The access the caller DELIBERATELY asked for, or a refusal. Nothing is trimmed, filtered or
55
55
  * defaulted: an entry the node would reinterpret (blank, whitespace, comma-joined) is refused,
56
56
  * because the alternative is publishing to a set the caller did not name. */
57
- function parseAccess(access, grants) {
57
+ export function parseAccess(access, grants) {
58
58
  if (access === "open") {
59
59
  if (grants !== undefined)
60
60
  return { kind: "partial", what: "authorizedPrincipals",
@@ -131,7 +131,7 @@ export async function publishBytes(deps, req) {
131
131
  }
132
132
  catch (e) {
133
133
  const message = e instanceof Error ? e.message : String(e);
134
- const status = /^postContent: HTTP (\d{3})\b/.exec(message)?.[1];
134
+ const status = e instanceof ContentHttpError ? String(e.status) : /^postContent(?:Stream)?: HTTP (\d{3})\b/.exec(message)?.[1];
135
135
  if (status === undefined)
136
136
  return unreachableFrom(e, deps.contentUrl);
137
137
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"content.js","sourceRoot":"","sources":["../src/content.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"content.js","sourceRoot":"","sources":["../src/content.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,60 @@
1
+ export declare const FILE_DEFAULT_MAX_BYTES: number;
2
+ export declare const FILE_HARD_MAX_BYTES: number;
3
+ export declare const FILE_CHUNK_BYTES = 65536;
4
+ export type FileFailure = "disabled" | "invalid_name" | "unsafe_root" | "unsafe_file" | "not_found" | "not_regular" | "too_large" | "changed" | "exists" | "busy" | "cancelled" | "incomplete" | "transfer_failed" | "commit_unconfirmed" | "publication_unknown" | "io";
5
+ export type FileCleanupWarning = "staging_cleanup_failed";
6
+ export declare class FileAccessError extends Error {
7
+ readonly code: FileFailure;
8
+ cleanupWarning?: FileCleanupWarning;
9
+ constructor(code: FileFailure);
10
+ }
11
+ export interface FileMetadata {
12
+ file: string;
13
+ size: number;
14
+ sha256: string;
15
+ complete: true;
16
+ cleanupWarning?: FileCleanupWarning;
17
+ }
18
+ /** Host-only authorization, supplied by a key lease for plaintext output, never caller JSON. */
19
+ export interface FileCommitGuard {
20
+ check(): void;
21
+ commit(): void;
22
+ }
23
+ export interface FileInput {
24
+ readonly size: number;
25
+ readonly stream: ReadableStream<Uint8Array>;
26
+ /** Available only after EOF and stable-descriptor verification. Hashes actual streamed bytes. */
27
+ metadata(): FileMetadata;
28
+ }
29
+ export declare function fileName(value: unknown): string;
30
+ /** One bounded operation. The session permits an input-to-output transformation without
31
+ * reacquiring the root's single transfer slot (#12/#16/#18 reuse the same byte boundary). */
32
+ export declare class FileSession {
33
+ private readonly base;
34
+ readonly maxBytes: number;
35
+ readonly signal: AbortSignal;
36
+ private inputActive;
37
+ private outputActive;
38
+ constructor(base: string, maxBytes: number, signal: AbortSignal);
39
+ withInput<T>(name: unknown, job: (input: FileInput) => Promise<T>): Promise<T>;
40
+ /** Protected staging, incremental digest and no-overwrite atomic publication. Known sizes
41
+ * enforce exact counts; undefined is only for an authenticated transform whose EOF proves
42
+ * completeness, still bounded by maxBytes. Optional host guard spans the asynchronous link.
43
+ * A refusal AFTER linking is commit_unconfirmed, NOT a claim plaintext was never published. */
44
+ writeNew(name: unknown, stream: ReadableStream<Uint8Array>, size: number | undefined, authorization?: FileCommitGuard): Promise<FileMetadata>;
45
+ }
46
+ export declare class FileRoot {
47
+ private readonly handle;
48
+ readonly maxBytes: number;
49
+ private busy;
50
+ private closed;
51
+ private readonly lifetime;
52
+ private pending;
53
+ private constructor();
54
+ static open(path: string, maxBytes?: number, excludedPaths?: readonly string[]): Promise<FileRoot>;
55
+ transfer<T>(job: (files: FileSession) => Promise<T>, signal?: AbortSignal): Promise<T>;
56
+ close(): Promise<void>;
57
+ }
58
+ /** Unconfigured access is absent, not a cwd/home fallback. Invalid opt-in refuses startup. */
59
+ export declare function fileRootFromEnv(env: NodeJS.ProcessEnv, excludedPaths?: readonly string[]): Promise<FileRoot | undefined>;
60
+ //# sourceMappingURL=files.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../src/files.ts"],"names":[],"mappings":"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"}