@cortexkit/aft-bridge 0.57.2 → 0.58.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/dist/bash-hints.d.ts +22 -3
- package/dist/bash-hints.d.ts.map +1 -1
- package/dist/bash-hints.js +28 -9
- package/dist/bash-hints.js.map +1 -1
- package/dist/bash-host-fallback.js +1 -1
- package/dist/bash-host-fallback.js.map +1 -1
- package/dist/binary-identity.d.ts +109 -0
- package/dist/binary-identity.d.ts.map +1 -0
- package/dist/binary-identity.js +295 -0
- package/dist/binary-identity.js.map +1 -0
- package/dist/bridge.d.ts +10 -1
- package/dist/bridge.d.ts.map +1 -1
- package/dist/bridge.js +50 -14
- package/dist/bridge.js.map +1 -1
- package/dist/child-process.d.ts +37 -0
- package/dist/child-process.d.ts.map +1 -0
- package/dist/child-process.js +62 -0
- package/dist/child-process.js.map +1 -0
- package/dist/coerce.d.ts +2 -0
- package/dist/coerce.d.ts.map +1 -1
- package/dist/coerce.js +29 -0
- package/dist/coerce.js.map +1 -1
- package/dist/config-error.d.ts +71 -0
- package/dist/config-error.d.ts.map +1 -0
- package/dist/config-error.js +112 -0
- package/dist/config-error.js.map +1 -0
- package/dist/downloader.d.ts +4 -2
- package/dist/downloader.d.ts.map +1 -1
- package/dist/downloader.js +41 -20
- package/dist/downloader.js.map +1 -1
- package/dist/durable-log.d.ts +7 -0
- package/dist/durable-log.d.ts.map +1 -1
- package/dist/durable-log.js +47 -4
- package/dist/durable-log.js.map +1 -1
- package/dist/feature-config.d.ts +192 -0
- package/dist/feature-config.d.ts.map +1 -0
- package/dist/feature-config.js +657 -0
- package/dist/feature-config.js.map +1 -0
- package/dist/index.d.ts +17 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +17 -6
- package/dist/index.js.map +1 -1
- package/dist/message-detach.d.ts +25 -0
- package/dist/message-detach.d.ts.map +1 -0
- package/dist/message-detach.js +34 -0
- package/dist/message-detach.js.map +1 -0
- package/dist/migration-notices.d.ts +29 -0
- package/dist/migration-notices.d.ts.map +1 -0
- package/dist/migration-notices.js +114 -0
- package/dist/migration-notices.js.map +1 -0
- package/dist/migration.d.ts +1 -1
- package/dist/migration.d.ts.map +1 -1
- package/dist/migration.js +1 -1
- package/dist/migration.js.map +1 -1
- package/dist/npm-resolver.d.ts +1 -1
- package/dist/npm-resolver.d.ts.map +1 -1
- package/dist/npm-resolver.js +1 -1
- package/dist/npm-resolver.js.map +1 -1
- package/dist/onnx-probe.d.ts +44 -0
- package/dist/onnx-probe.d.ts.map +1 -0
- package/dist/onnx-probe.js +167 -0
- package/dist/onnx-probe.js.map +1 -0
- package/dist/onnx-runtime.d.ts +19 -4
- package/dist/onnx-runtime.d.ts.map +1 -1
- package/dist/onnx-runtime.js +146 -34
- package/dist/onnx-runtime.js.map +1 -1
- package/dist/path-lookup.d.ts +22 -0
- package/dist/path-lookup.d.ts.map +1 -0
- package/dist/path-lookup.js +51 -0
- package/dist/path-lookup.js.map +1 -0
- package/dist/resolver.d.ts +47 -21
- package/dist/resolver.d.ts.map +1 -1
- package/dist/resolver.js +254 -159
- package/dist/resolver.js.map +1 -1
- package/dist/revivable-transport.d.ts.map +1 -1
- package/dist/revivable-transport.js +12 -0
- package/dist/revivable-transport.js.map +1 -1
- package/dist/semantic-status.d.ts +10 -1
- package/dist/semantic-status.d.ts.map +1 -1
- package/dist/semantic-status.js +50 -2
- package/dist/semantic-status.js.map +1 -1
- package/dist/storage-paths.d.ts +9 -0
- package/dist/storage-paths.d.ts.map +1 -1
- package/dist/storage-paths.js +18 -1
- package/dist/storage-paths.js.map +1 -1
- package/dist/subc-transport.d.ts +58 -1
- package/dist/subc-transport.d.ts.map +1 -1
- package/dist/subc-transport.js +291 -35
- package/dist/subc-transport.js.map +1 -1
- package/dist/tar-executable.js +1 -1
- package/dist/tar-executable.js.map +1 -1
- package/dist/transport-factory.d.ts +14 -2
- package/dist/transport-factory.d.ts.map +1 -1
- package/dist/transport-factory.js +24 -16
- package/dist/transport-factory.js.map +1 -1
- package/dist/version-probe.d.ts +33 -0
- package/dist/version-probe.d.ts.map +1 -0
- package/dist/version-probe.js +108 -0
- package/dist/version-probe.js.map +1 -0
- package/package.json +1 -1
- package/dist/bash-timeout.d.ts +0 -19
- package/dist/bash-timeout.d.ts.map +0 -1
- package/dist/bash-timeout.js +0 -26
- package/dist/bash-timeout.js.map +0 -1
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The "config error" state shared by every plugin host.
|
|
3
|
+
*
|
|
4
|
+
* When AFT's configuration cannot be used (a rejected retired key, a config
|
|
5
|
+
* file that does not parse, a subc connection file that does not exist, ...)
|
|
6
|
+
* the plugins used to throw during initialization. Hosts react to that by not
|
|
7
|
+
* loading the plugin at all and recording the reason only in their own log
|
|
8
|
+
* file, so neither the user nor the model learns that AFT is missing.
|
|
9
|
+
*
|
|
10
|
+
* Instead, a plugin in this state still loads and registers AFT's tool
|
|
11
|
+
* surface, but every tool call fails with the configuration error and its fix.
|
|
12
|
+
* Nothing runs in AFT's place: no bridge is spawned, no binary is resolved and
|
|
13
|
+
* no host tool is substituted, so the failure stays visible.
|
|
14
|
+
*/
|
|
15
|
+
import type { BridgeToolCallRuntime } from "./pool.js";
|
|
16
|
+
import type { AftProjectTransport, AftTransportPool, ToolCallArguments, ToolCallOptions, ToolCallResult } from "./transport.js";
|
|
17
|
+
/**
|
|
18
|
+
* Appended to every config error. The plugins read their configuration once,
|
|
19
|
+
* at startup, so fixing the file does not take effect until the host restarts.
|
|
20
|
+
*/
|
|
21
|
+
export declare const CONFIG_ERROR_RESTART_NOTE = "AFT reads its config only at startup, so restart the host after fixing it.";
|
|
22
|
+
/** The full text a config-error tool call fails with: the error, its fix, and the restart note. */
|
|
23
|
+
export declare function formatConfigErrorMessage(detail: string): string;
|
|
24
|
+
/**
|
|
25
|
+
* Where a configured `subc.connection_file` points: `~` and relative paths are
|
|
26
|
+
* resolved against the home directory, never the project, because the file is
|
|
27
|
+
* a per-machine daemon endpoint. Shared by the transport factory and `doctor`.
|
|
28
|
+
*/
|
|
29
|
+
export declare function resolveSubcConnectionFilePath(raw: string, home?: string): string;
|
|
30
|
+
/** The error for a configured subc connection file that does not exist, with its fix. */
|
|
31
|
+
export declare function formatSubcConnectionMissingMessage(raw: string, resolved: string): string;
|
|
32
|
+
/**
|
|
33
|
+
* Every configuration condition that puts a plugin in the config error state,
|
|
34
|
+
* named the same way by the plugins and by `doctor`.
|
|
35
|
+
*/
|
|
36
|
+
export type ConfigErrorCode = "config_parse_error" | "config_rejected" | "subc_connection_missing";
|
|
37
|
+
/** Error text for a config file that does not parse, as the plugins and `doctor` report it. */
|
|
38
|
+
export declare function formatConfigParseErrorMessage(configPath: string, errorMessage: string): string;
|
|
39
|
+
/** One-line form for a status bar or sidebar row. */
|
|
40
|
+
export declare function formatConfigErrorStatusLine(message: string): string;
|
|
41
|
+
/**
|
|
42
|
+
* The status payload a plugin's status endpoint returns in the config error
|
|
43
|
+
* state. `status` is not `not_initialized`, so status clients render it rather
|
|
44
|
+
* than treating it as a placeholder and looking for another server.
|
|
45
|
+
*/
|
|
46
|
+
export declare function configErrorStatusSnapshot(message: string): Record<string, unknown>;
|
|
47
|
+
/** Thrown by every tool call and every bridge request made in the config error state. */
|
|
48
|
+
export declare class AftConfigError extends Error {
|
|
49
|
+
constructor(message: string);
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* A transport pool that never starts anything. Requests that would need a
|
|
53
|
+
* bridge fail with the config error; lookups of live bridges report none, and
|
|
54
|
+
* lifecycle calls do nothing, so host hooks that probe the pool stay quiet.
|
|
55
|
+
*/
|
|
56
|
+
export declare class ConfigErrorTransportPool implements AftTransportPool {
|
|
57
|
+
readonly message: string;
|
|
58
|
+
constructor(message: string);
|
|
59
|
+
private fail;
|
|
60
|
+
getBridge(_projectRoot: string): AftProjectTransport;
|
|
61
|
+
getActiveBridgeForRoot(_projectRoot: string): AftProjectTransport | null;
|
|
62
|
+
activeBridges(): AftProjectTransport[];
|
|
63
|
+
toolCall(_projectRoot: string, _runtime: BridgeToolCallRuntime, _name: string, _rawArgs?: ToolCallArguments, _options?: ToolCallOptions): Promise<ToolCallResult>;
|
|
64
|
+
setConfigureOverride(_key: string, _value: unknown): void;
|
|
65
|
+
reconfigure(_projectRoot: string, _overrides: Record<string, unknown>): Promise<void>;
|
|
66
|
+
replaceBinary(_path: string): Promise<string>;
|
|
67
|
+
isShutdown(): boolean;
|
|
68
|
+
shutdown(_reason?: string): Promise<void>;
|
|
69
|
+
closeSession(_projectRoot: string, _session: string): Promise<void>;
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=config-error.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-error.d.ts","sourceRoot":"","sources":["../src/config-error.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAKH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,KAAK,EACV,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,cAAc,EACf,MAAM,gBAAgB,CAAC;AAExB;;;GAGG;AACH,eAAO,MAAM,yBAAyB,+EACwC,CAAC;AAE/E,mGAAmG;AACnG,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAI/D;AAED;;;;GAIG;AACH,wBAAgB,6BAA6B,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,GAAE,MAAkB,GAAG,MAAM,CAK3F;AAED,yFAAyF;AACzF,wBAAgB,kCAAkC,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAMxF;AAED;;;GAGG;AACH,MAAM,MAAM,eAAe,GAAG,oBAAoB,GAAG,iBAAiB,GAAG,yBAAyB,CAAC;AAEnG,+FAA+F;AAC/F,wBAAgB,6BAA6B,CAAC,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAK9F;AAED,qDAAqD;AACrD,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEnE;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAOlF;AAED,yFAAyF;AACzF,qBAAa,cAAe,SAAQ,KAAK;gBAC3B,OAAO,EAAE,MAAM;CAI5B;AAED;;;;GAIG;AACH,qBAAa,wBAAyB,YAAW,gBAAgB;IACnD,QAAQ,CAAC,OAAO,EAAE,MAAM;gBAAf,OAAO,EAAE,MAAM;IAEpC,OAAO,CAAC,IAAI;IAIZ,SAAS,CAAC,YAAY,EAAE,MAAM,GAAG,mBAAmB;IAIpD,sBAAsB,CAAC,YAAY,EAAE,MAAM,GAAG,mBAAmB,GAAG,IAAI;IAIxE,aAAa,IAAI,mBAAmB,EAAE;IAIhC,QAAQ,CACZ,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,qBAAqB,EAC/B,KAAK,EAAE,MAAM,EACb,QAAQ,CAAC,EAAE,iBAAiB,EAC5B,QAAQ,CAAC,EAAE,eAAe,GACzB,OAAO,CAAC,cAAc,CAAC;IAI1B,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI;IAEnD,WAAW,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAErF,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAInD,UAAU,IAAI,OAAO;IAIf,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAEzC,YAAY,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAC1E"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The "config error" state shared by every plugin host.
|
|
3
|
+
*
|
|
4
|
+
* When AFT's configuration cannot be used (a rejected retired key, a config
|
|
5
|
+
* file that does not parse, a subc connection file that does not exist, ...)
|
|
6
|
+
* the plugins used to throw during initialization. Hosts react to that by not
|
|
7
|
+
* loading the plugin at all and recording the reason only in their own log
|
|
8
|
+
* file, so neither the user nor the model learns that AFT is missing.
|
|
9
|
+
*
|
|
10
|
+
* Instead, a plugin in this state still loads and registers AFT's tool
|
|
11
|
+
* surface, but every tool call fails with the configuration error and its fix.
|
|
12
|
+
* Nothing runs in AFT's place: no bridge is spawned, no binary is resolved and
|
|
13
|
+
* no host tool is substituted, so the failure stays visible.
|
|
14
|
+
*/
|
|
15
|
+
import { homedir } from "node:os";
|
|
16
|
+
import { isAbsolute, join } from "node:path";
|
|
17
|
+
/**
|
|
18
|
+
* Appended to every config error. The plugins read their configuration once,
|
|
19
|
+
* at startup, so fixing the file does not take effect until the host restarts.
|
|
20
|
+
*/
|
|
21
|
+
export const CONFIG_ERROR_RESTART_NOTE = "AFT reads its config only at startup, so restart the host after fixing it.";
|
|
22
|
+
/** The full text a config-error tool call fails with: the error, its fix, and the restart note. */
|
|
23
|
+
export function formatConfigErrorMessage(detail) {
|
|
24
|
+
const trimmed = detail.trim();
|
|
25
|
+
const sentence = /[.!?]$/.test(trimmed) ? trimmed : `${trimmed}.`;
|
|
26
|
+
return `${sentence} ${CONFIG_ERROR_RESTART_NOTE}`;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Where a configured `subc.connection_file` points: `~` and relative paths are
|
|
30
|
+
* resolved against the home directory, never the project, because the file is
|
|
31
|
+
* a per-machine daemon endpoint. Shared by the transport factory and `doctor`.
|
|
32
|
+
*/
|
|
33
|
+
export function resolveSubcConnectionFilePath(raw, home = homedir()) {
|
|
34
|
+
const trimmed = raw.trim();
|
|
35
|
+
if (trimmed.startsWith("~"))
|
|
36
|
+
return join(home, trimmed.slice(1).replace(/^[/\\]/, ""));
|
|
37
|
+
if (isAbsolute(trimmed))
|
|
38
|
+
return trimmed;
|
|
39
|
+
return join(home, trimmed);
|
|
40
|
+
}
|
|
41
|
+
/** The error for a configured subc connection file that does not exist, with its fix. */
|
|
42
|
+
export function formatSubcConnectionMissingMessage(raw, resolved) {
|
|
43
|
+
return (`subc.connection_file is set to "${raw.trim()}" (resolved: ${resolved}) but no subc ` +
|
|
44
|
+
`connection file exists there. Start the Subconscious daemon, correct the path, ` +
|
|
45
|
+
`or remove subc.connection_file from your user config to use the standalone bridge.`);
|
|
46
|
+
}
|
|
47
|
+
/** Error text for a config file that does not parse, as the plugins and `doctor` report it. */
|
|
48
|
+
export function formatConfigParseErrorMessage(configPath, errorMessage) {
|
|
49
|
+
return (`AFT config at ${configPath} failed to parse: ${errorMessage}. ` +
|
|
50
|
+
"Fix the JSONC syntax in that file, or run `npx @cortexkit/aft doctor`.");
|
|
51
|
+
}
|
|
52
|
+
/** One-line form for a status bar or sidebar row. */
|
|
53
|
+
export function formatConfigErrorStatusLine(message) {
|
|
54
|
+
return `AFT config error: ${message.replace(/\s+/g, " ").trim()}`;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* The status payload a plugin's status endpoint returns in the config error
|
|
58
|
+
* state. `status` is not `not_initialized`, so status clients render it rather
|
|
59
|
+
* than treating it as a placeholder and looking for another server.
|
|
60
|
+
*/
|
|
61
|
+
export function configErrorStatusSnapshot(message) {
|
|
62
|
+
return {
|
|
63
|
+
success: true,
|
|
64
|
+
status: "config_error",
|
|
65
|
+
config_error: message,
|
|
66
|
+
message: formatConfigErrorStatusLine(message),
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
/** Thrown by every tool call and every bridge request made in the config error state. */
|
|
70
|
+
export class AftConfigError extends Error {
|
|
71
|
+
constructor(message) {
|
|
72
|
+
super(message);
|
|
73
|
+
this.name = "AftConfigError";
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* A transport pool that never starts anything. Requests that would need a
|
|
78
|
+
* bridge fail with the config error; lookups of live bridges report none, and
|
|
79
|
+
* lifecycle calls do nothing, so host hooks that probe the pool stay quiet.
|
|
80
|
+
*/
|
|
81
|
+
export class ConfigErrorTransportPool {
|
|
82
|
+
message;
|
|
83
|
+
constructor(message) {
|
|
84
|
+
this.message = message;
|
|
85
|
+
}
|
|
86
|
+
fail() {
|
|
87
|
+
throw new AftConfigError(this.message);
|
|
88
|
+
}
|
|
89
|
+
getBridge(_projectRoot) {
|
|
90
|
+
return this.fail();
|
|
91
|
+
}
|
|
92
|
+
getActiveBridgeForRoot(_projectRoot) {
|
|
93
|
+
return null;
|
|
94
|
+
}
|
|
95
|
+
activeBridges() {
|
|
96
|
+
return [];
|
|
97
|
+
}
|
|
98
|
+
async toolCall(_projectRoot, _runtime, _name, _rawArgs, _options) {
|
|
99
|
+
return this.fail();
|
|
100
|
+
}
|
|
101
|
+
setConfigureOverride(_key, _value) { }
|
|
102
|
+
async reconfigure(_projectRoot, _overrides) { }
|
|
103
|
+
async replaceBinary(_path) {
|
|
104
|
+
return this.fail();
|
|
105
|
+
}
|
|
106
|
+
isShutdown() {
|
|
107
|
+
return false;
|
|
108
|
+
}
|
|
109
|
+
async shutdown(_reason) { }
|
|
110
|
+
async closeSession(_projectRoot, _session) { }
|
|
111
|
+
}
|
|
112
|
+
//# sourceMappingURL=config-error.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-error.js","sourceRoot":"","sources":["../src/config-error.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAW7C;;;GAGG;AACH,MAAM,CAAC,MAAM,yBAAyB,GACpC,4EAA4E,CAAC;AAE/E,mGAAmG;AACnG,MAAM,UAAU,wBAAwB,CAAC,MAAc;IACrD,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;IAC9B,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,GAAG,CAAC;IAClE,OAAO,GAAG,QAAQ,IAAI,yBAAyB,EAAE,CAAC;AACpD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,6BAA6B,CAAC,GAAW,EAAE,OAAe,OAAO,EAAE;IACjF,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IAC3B,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;IACvF,IAAI,UAAU,CAAC,OAAO,CAAC;QAAE,OAAO,OAAO,CAAC;IACxC,OAAO,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAC7B,CAAC;AAED,yFAAyF;AACzF,MAAM,UAAU,kCAAkC,CAAC,GAAW,EAAE,QAAgB;IAC9E,OAAO,CACL,mCAAmC,GAAG,CAAC,IAAI,EAAE,gBAAgB,QAAQ,gBAAgB;QACrF,iFAAiF;QACjF,oFAAoF,CACrF,CAAC;AACJ,CAAC;AAQD,+FAA+F;AAC/F,MAAM,UAAU,6BAA6B,CAAC,UAAkB,EAAE,YAAoB;IACpF,OAAO,CACL,iBAAiB,UAAU,qBAAqB,YAAY,IAAI;QAChE,wEAAwE,CACzE,CAAC;AACJ,CAAC;AAED,qDAAqD;AACrD,MAAM,UAAU,2BAA2B,CAAC,OAAe;IACzD,OAAO,qBAAqB,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;AACpE,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,yBAAyB,CAAC,OAAe;IACvD,OAAO;QACL,OAAO,EAAE,IAAI;QACb,MAAM,EAAE,cAAc;QACtB,YAAY,EAAE,OAAO;QACrB,OAAO,EAAE,2BAA2B,CAAC,OAAO,CAAC;KAC9C,CAAC;AACJ,CAAC;AAED,yFAAyF;AACzF,MAAM,OAAO,cAAe,SAAQ,KAAK;IACvC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;IAC/B,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,OAAO,wBAAwB;IACd;IAArB,YAAqB,OAAe;QAAf,YAAO,GAAP,OAAO,CAAQ;IAAG,CAAC;IAEhC,IAAI;QACV,MAAM,IAAI,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACzC,CAAC;IAED,SAAS,CAAC,YAAoB;QAC5B,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC;IACrB,CAAC;IAED,sBAAsB,CAAC,YAAoB;QACzC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,aAAa;QACX,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,KAAK,CAAC,QAAQ,CACZ,YAAoB,EACpB,QAA+B,EAC/B,KAAa,EACb,QAA4B,EAC5B,QAA0B;QAE1B,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC;IACrB,CAAC;IAED,oBAAoB,CAAC,IAAY,EAAE,MAAe,IAAS,CAAC;IAE5D,KAAK,CAAC,WAAW,CAAC,YAAoB,EAAE,UAAmC,IAAkB,CAAC;IAE9F,KAAK,CAAC,aAAa,CAAC,KAAa;QAC/B,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC;IACrB,CAAC;IAED,UAAU;QACR,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,OAAgB,IAAkB,CAAC;IAElD,KAAK,CAAC,YAAY,CAAC,YAAoB,EAAE,QAAgB,IAAkB,CAAC;CAC7E"}
|
package/dist/downloader.d.ts
CHANGED
|
@@ -15,8 +15,10 @@
|
|
|
15
15
|
* `--version`. Returns the bare version (e.g. `"0.22.1"`) without the
|
|
16
16
|
* leading `v` or the `aft` prefix, or `null` if the invocation fails.
|
|
17
17
|
*
|
|
18
|
-
*
|
|
19
|
-
* binary
|
|
18
|
+
* BLOCKING: the calling thread waits in `posix_spawn` until the child is
|
|
19
|
+
* loaded, which for a cold binary under memory pressure has taken close to a
|
|
20
|
+
* minute. Only command-line tools may call this. Plugin hosts must use the
|
|
21
|
+
* identity sidecar (`isTrustedCachedBinary`) or `readBinaryVersionOffThread`.
|
|
20
22
|
*/
|
|
21
23
|
export declare function readBinaryVersion(binaryPath: string): string | null;
|
|
22
24
|
/** Keep getCacheDir as an alias for getAftBinaryCacheDir so existing callers using the older name continue to work. */
|
package/dist/downloader.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"downloader.d.ts","sourceRoot":"","sources":["../src/downloader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;
|
|
1
|
+
{"version":3,"file":"downloader.d.ts","sourceRoot":"","sources":["../src/downloader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AA4CH;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAgBnE;AA4BD,uHAAuH;AACvH,OAAO,EAAE,oBAAoB,IAAI,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEvE,4CAA4C;AAC5C,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED;;;sFAGsF;AACtF,wBAAgB,mBAAmB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAInE;AAED;;;;;;;GAOG;AACH,wBAAsB,cAAc,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAwO7E;AAUD;;;;;;;;;GASG;AACH,wBAAsB,YAAY,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAiC3E;AAED,KAAK,kBAAkB,GAAG;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AA8FF,iBAAe,mBAAmB,CAChC,QAAQ,EAAE,MAAM,EAChB,MAAM,GAAE,kBAAuB,GAC9B,OAAO,CAAC,MAAM,IAAI,CAAC,CA+CrB;AAwCD,eAAO,MAAM,QAAQ;;CAEpB,CAAC"}
|
package/dist/downloader.js
CHANGED
|
@@ -10,7 +10,6 @@
|
|
|
10
10
|
*
|
|
11
11
|
* Cache dir respects XDG_CACHE_HOME on Linux/macOS and LOCALAPPDATA on Windows.
|
|
12
12
|
*/
|
|
13
|
-
import { spawnSync } from "node:child_process";
|
|
14
13
|
import { createHash, randomUUID } from "node:crypto";
|
|
15
14
|
import { chmodSync, closeSync, copyFileSync, createWriteStream, existsSync, mkdirSync, openSync, readdirSync, readFileSync, renameSync, rmSync, statSync, unlinkSync, writeSync, } from "node:fs";
|
|
16
15
|
import { hostname } from "node:os";
|
|
@@ -18,8 +17,11 @@ import { join } from "node:path";
|
|
|
18
17
|
import { Readable } from "node:stream";
|
|
19
18
|
import { pipeline } from "node:stream/promises";
|
|
20
19
|
import { error, log, warn } from "./active-logger.js";
|
|
20
|
+
import { isTrustedCachedBinary, recordBinaryIdentity, removeBinaryIdentitySidecar, writeBinaryIdentitySidecar, } from "./binary-identity.js";
|
|
21
21
|
import { getAftBinaryCacheDir } from "./cache-paths.js";
|
|
22
|
+
import { spawnSync } from "./child-process.js";
|
|
22
23
|
import { PLATFORM_ARCH_MAP, PLATFORM_ASSET_MAP } from "./platform.js";
|
|
24
|
+
import { parseAftVersionOutput, readBinaryVersionOffThread } from "./version-probe.js";
|
|
23
25
|
const REPO = "cortexkit/aft";
|
|
24
26
|
const DOWNLOAD_TIMEOUT_MS = 300_000;
|
|
25
27
|
const LATEST_TAG_TIMEOUT_MS = 30_000;
|
|
@@ -33,8 +35,10 @@ const DOWNLOAD_LOCK_TIMEOUT_MS = DOWNLOAD_LOCK_STALE_MS + 30_000;
|
|
|
33
35
|
* `--version`. Returns the bare version (e.g. `"0.22.1"`) without the
|
|
34
36
|
* leading `v` or the `aft` prefix, or `null` if the invocation fails.
|
|
35
37
|
*
|
|
36
|
-
*
|
|
37
|
-
* binary
|
|
38
|
+
* BLOCKING: the calling thread waits in `posix_spawn` until the child is
|
|
39
|
+
* loaded, which for a cold binary under memory pressure has taken close to a
|
|
40
|
+
* minute. Only command-line tools may call this. Plugin hosts must use the
|
|
41
|
+
* identity sidecar (`isTrustedCachedBinary`) or `readBinaryVersionOffThread`.
|
|
38
42
|
*/
|
|
39
43
|
export function readBinaryVersion(binaryPath) {
|
|
40
44
|
try {
|
|
@@ -43,19 +47,12 @@ export function readBinaryVersion(binaryPath) {
|
|
|
43
47
|
stdio: ["pipe", "pipe", "pipe"],
|
|
44
48
|
// macOS assesses an executable once per inode, and a just-downloaded
|
|
45
49
|
// binary is always a new one. That first exec has been measured at
|
|
46
|
-
// seconds —
|
|
47
|
-
//
|
|
48
|
-
//
|
|
49
|
-
// return in milliseconds, so this budget is only ever paid once.
|
|
50
|
+
// seconds — far worse under memory pressure — so a five-second cap
|
|
51
|
+
// would report a perfectly good binary as unreadable and trigger a
|
|
52
|
+
// needless re-download.
|
|
50
53
|
timeout: 60_000,
|
|
51
54
|
});
|
|
52
|
-
|
|
53
|
-
const stderrVersion = result.stderr?.trim();
|
|
54
|
-
const rawVersion = stdoutVersion || stderrVersion;
|
|
55
|
-
if (!rawVersion)
|
|
56
|
-
return null;
|
|
57
|
-
// `aft --version` outputs "aft 0.9.0" — extract just the version number
|
|
58
|
-
return rawVersion.replace(/^aft\s+/, "");
|
|
55
|
+
return parseAftVersionOutput(result.stdout ?? "", result.stderr ?? "");
|
|
59
56
|
}
|
|
60
57
|
catch {
|
|
61
58
|
return null;
|
|
@@ -64,11 +61,23 @@ export function readBinaryVersion(binaryPath) {
|
|
|
64
61
|
function expectedVersionFromTag(tag) {
|
|
65
62
|
return tag.startsWith("v") ? tag.slice(1) : tag;
|
|
66
63
|
}
|
|
67
|
-
|
|
64
|
+
/**
|
|
65
|
+
* Decide whether the cached binary at `binaryPath` is the release `tag`
|
|
66
|
+
* without executing it on the calling thread. A matching identity sidecar is
|
|
67
|
+
* enough. An entry without one (written before sidecars existed) or whose
|
|
68
|
+
* sidecar no longer matches the file is asked for its version on a worker
|
|
69
|
+
* thread; when that confirms the version, a fresh sidecar is recorded in the
|
|
70
|
+
* background so later lookups are stat-only.
|
|
71
|
+
*/
|
|
72
|
+
async function isExpectedCachedBinary(binaryPath, tag) {
|
|
68
73
|
const expected = expectedVersionFromTag(tag);
|
|
69
|
-
|
|
70
|
-
if (actual === expected)
|
|
74
|
+
if (isTrustedCachedBinary(binaryPath, expected))
|
|
71
75
|
return true;
|
|
76
|
+
const actual = await readBinaryVersionOffThread(binaryPath);
|
|
77
|
+
if (actual === expected) {
|
|
78
|
+
void recordBinaryIdentity(binaryPath, expected);
|
|
79
|
+
return true;
|
|
80
|
+
}
|
|
72
81
|
warn(`Cached binary at ${binaryPath} reports ${actual ?? "no version"}, expected ${expected}; refreshing cache entry`);
|
|
73
82
|
return false;
|
|
74
83
|
}
|
|
@@ -127,7 +136,7 @@ export async function downloadBinary(version) {
|
|
|
127
136
|
// Already cached for this version. Probe the binary itself before trusting
|
|
128
137
|
// the cache directory name; stale hot-swap entries can otherwise shadow a
|
|
129
138
|
// freshly requested compatible version forever.
|
|
130
|
-
if (existsSync(binaryPath) && isExpectedCachedBinary(binaryPath, tag)) {
|
|
139
|
+
if (existsSync(binaryPath) && (await isExpectedCachedBinary(binaryPath, tag))) {
|
|
131
140
|
return binaryPath;
|
|
132
141
|
}
|
|
133
142
|
const downloadUrl = `https://github.com/${REPO}/releases/download/${tag}/${assetName}`;
|
|
@@ -183,7 +192,7 @@ export async function downloadBinary(version) {
|
|
|
183
192
|
// Another process may have completed the same version while we waited.
|
|
184
193
|
// Re-probe here too because a stale owner might have left a mismatched
|
|
185
194
|
// binary in the versioned directory before this process acquired the lock.
|
|
186
|
-
if (existsSync(binaryPath) && isExpectedCachedBinary(binaryPath, tag)) {
|
|
195
|
+
if (existsSync(binaryPath) && (await isExpectedCachedBinary(binaryPath, tag))) {
|
|
187
196
|
return binaryPath;
|
|
188
197
|
}
|
|
189
198
|
// Download binary and checksum file in parallel
|
|
@@ -247,6 +256,9 @@ export async function downloadBinary(version) {
|
|
|
247
256
|
"The binary may have been tampered with.");
|
|
248
257
|
}
|
|
249
258
|
log(`Checksum verified (SHA-256: ${actualHash.slice(0, 16)}...)`);
|
|
259
|
+
// Drop the old entry's sidecar first so no reader pairs it with the new
|
|
260
|
+
// bytes; the stat check would reject that pairing anyway.
|
|
261
|
+
removeBinaryIdentitySidecar(binaryPath);
|
|
250
262
|
// Atomic rename (POSIX) or copy (Windows — renameSync fails with EEXIST
|
|
251
263
|
// when target exists). On Windows, copyFileSync overwrites the target;
|
|
252
264
|
// if it fails the original binary at binaryPath is preserved.
|
|
@@ -257,6 +269,15 @@ export async function downloadBinary(version) {
|
|
|
257
269
|
chmodSync(tmpPath, 0o755);
|
|
258
270
|
renameSync(tmpPath, binaryPath);
|
|
259
271
|
}
|
|
272
|
+
// The bytes matched the release checksum for `tag`, so the version is
|
|
273
|
+
// known without running the binary. Recorded only once the binary is in
|
|
274
|
+
// its final place, so the sidecar describes that exact file.
|
|
275
|
+
try {
|
|
276
|
+
writeBinaryIdentitySidecar(binaryPath, tag, actualHash);
|
|
277
|
+
}
|
|
278
|
+
catch (err) {
|
|
279
|
+
warn(`Could not record identity for ${binaryPath}: ${err instanceof Error ? err.message : String(err)}`);
|
|
280
|
+
}
|
|
260
281
|
// Binary was replaced successfully. Clean up the temp file best-effort;
|
|
261
282
|
// a cleanup failure should NOT propagate as a download failure.
|
|
262
283
|
try {
|
|
@@ -321,7 +342,7 @@ export async function ensureBinary(version) {
|
|
|
321
342
|
// Do NOT fall back to legacy flat cache — it may contain a different version,
|
|
322
343
|
// causing an infinite spawn-check-replace loop.
|
|
323
344
|
const versionCached = getCachedBinaryPath(tag);
|
|
324
|
-
if (versionCached && isExpectedCachedBinary(versionCached, tag)) {
|
|
345
|
+
if (versionCached && (await isExpectedCachedBinary(versionCached, tag))) {
|
|
325
346
|
log(`Found cached binary for ${tag}: ${versionCached}`);
|
|
326
347
|
return versionCached;
|
|
327
348
|
}
|
package/dist/downloader.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"downloader.js","sourceRoot":"","sources":["../src/downloader.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"downloader.js","sourceRoot":"","sources":["../src/downloader.ts"],"names":[],"mappings":"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"}
|
package/dist/durable-log.d.ts
CHANGED
|
@@ -2,6 +2,13 @@
|
|
|
2
2
|
export declare const DEFAULT_LOG_BYTES: number;
|
|
3
3
|
/** Retention hygiene keeps one backup generation and no numbered chain. */
|
|
4
4
|
export declare const DEFAULT_LOG_GENERATIONS = 1;
|
|
5
|
+
/**
|
|
6
|
+
* Log lines can quote paths, commands and server output, so the log directory
|
|
7
|
+
* is owner-only and log files are owner read/write, matching the Rust daemon's
|
|
8
|
+
* logs in the same directory. POSIX only: Windows ignores these modes.
|
|
9
|
+
*/
|
|
10
|
+
export declare const LOG_DIR_MODE = 448;
|
|
11
|
+
export declare const LOG_FILE_MODE = 384;
|
|
5
12
|
import { resolveAftLogPath, resolveAftStorageRoot } from "./storage-paths.js";
|
|
6
13
|
export { resolveAftLogPath, resolveAftStorageRoot };
|
|
7
14
|
export interface RotatingLogOptions {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"durable-log.d.ts","sourceRoot":"","sources":["../src/durable-log.ts"],"names":[],"mappings":"AAGA,iFAAiF;AACjF,eAAO,MAAM,iBAAiB,QAAmB,CAAC;AAClD,2EAA2E;AAC3E,eAAO,MAAM,uBAAuB,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"durable-log.d.ts","sourceRoot":"","sources":["../src/durable-log.ts"],"names":[],"mappings":"AAGA,iFAAiF;AACjF,eAAO,MAAM,iBAAiB,QAAmB,CAAC;AAClD,2EAA2E;AAC3E,eAAO,MAAM,uBAAuB,IAAI,CAAC;AACzC;;;;GAIG;AACH,eAAO,MAAM,YAAY,MAAQ,CAAC;AAClC,eAAO,MAAM,aAAa,MAAQ,CAAC;AAEnC,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAE9E,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,CAAC;AAEpD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;GAKG;AACH,qBAAa,eAAe;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,cAAc,CAAuB;IAC7C,OAAO,CAAC,KAAK,CAAoC;IACjD,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,eAAe,CAAS;gBAEpB,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,kBAAuB;IAM1D,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAmB1B,qEAAqE;IAC/D,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YAId,KAAK;YAgCL,MAAM;CAarB"}
|
package/dist/durable-log.js
CHANGED
|
@@ -1,9 +1,16 @@
|
|
|
1
|
-
import { appendFile, mkdir, rename, rm, stat } from "node:fs/promises";
|
|
1
|
+
import { appendFile, chmod, mkdir, rename, rm, stat } from "node:fs/promises";
|
|
2
2
|
import { dirname } from "node:path";
|
|
3
3
|
/** Maximum size of the active plugin log before its single backup rotates in. */
|
|
4
4
|
export const DEFAULT_LOG_BYTES = 32 * 1024 * 1024;
|
|
5
5
|
/** Retention hygiene keeps one backup generation and no numbered chain. */
|
|
6
6
|
export const DEFAULT_LOG_GENERATIONS = 1;
|
|
7
|
+
/**
|
|
8
|
+
* Log lines can quote paths, commands and server output, so the log directory
|
|
9
|
+
* is owner-only and log files are owner read/write, matching the Rust daemon's
|
|
10
|
+
* logs in the same directory. POSIX only: Windows ignores these modes.
|
|
11
|
+
*/
|
|
12
|
+
export const LOG_DIR_MODE = 0o700;
|
|
13
|
+
export const LOG_FILE_MODE = 0o600;
|
|
7
14
|
import { resolveAftLogPath, resolveAftStorageRoot } from "./storage-paths.js";
|
|
8
15
|
export { resolveAftLogPath, resolveAftStorageRoot };
|
|
9
16
|
/**
|
|
@@ -48,8 +55,23 @@ export class RotatingLogSink {
|
|
|
48
55
|
await this.queue;
|
|
49
56
|
}
|
|
50
57
|
async write(data) {
|
|
51
|
-
|
|
58
|
+
const dir = dirname(this.path);
|
|
59
|
+
await mkdir(dirname(dir), { recursive: true });
|
|
60
|
+
try {
|
|
61
|
+
await mkdir(dir, { mode: LOG_DIR_MODE });
|
|
62
|
+
}
|
|
63
|
+
catch (error) {
|
|
64
|
+
if (!hasCode(error, "EEXIST"))
|
|
65
|
+
throw error;
|
|
66
|
+
}
|
|
52
67
|
if (this.estimatedBytes === null) {
|
|
68
|
+
// First write from this sink: tighten a directory and files left over
|
|
69
|
+
// from before logs were private. Later files are created owner-only.
|
|
70
|
+
await tightenIfOwned(dir, LOG_DIR_MODE);
|
|
71
|
+
await tightenIfOwned(this.path, LOG_FILE_MODE);
|
|
72
|
+
for (let generation = 1; generation <= this.generations; generation += 1) {
|
|
73
|
+
await tightenIfOwned(`${this.path}.${generation}`, LOG_FILE_MODE);
|
|
74
|
+
}
|
|
53
75
|
try {
|
|
54
76
|
this.estimatedBytes = (await stat(this.path)).size;
|
|
55
77
|
}
|
|
@@ -63,7 +85,7 @@ export class RotatingLogSink {
|
|
|
63
85
|
if (this.estimatedBytes > 0 && this.estimatedBytes + bytes > this.maxBytes) {
|
|
64
86
|
await this.rotate();
|
|
65
87
|
}
|
|
66
|
-
await appendFile(this.path, data, "utf8");
|
|
88
|
+
await appendFile(this.path, data, { encoding: "utf8", mode: LOG_FILE_MODE });
|
|
67
89
|
this.estimatedBytes = (this.estimatedBytes ?? 0) + bytes;
|
|
68
90
|
}
|
|
69
91
|
async rotate() {
|
|
@@ -81,7 +103,28 @@ export class RotatingLogSink {
|
|
|
81
103
|
}
|
|
82
104
|
}
|
|
83
105
|
function isMissing(error) {
|
|
84
|
-
return
|
|
106
|
+
return hasCode(error, "ENOENT");
|
|
107
|
+
}
|
|
108
|
+
function hasCode(error, code) {
|
|
109
|
+
return typeof error === "object" && error !== null && "code" in error && error.code === code;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Drop group/other permission bits when the current user owns `path`. Best
|
|
113
|
+
* effort: a missing path, another owner, or a failed chmod leaves it as is
|
|
114
|
+
* rather than disabling the log.
|
|
115
|
+
*/
|
|
116
|
+
async function tightenIfOwned(path, mode) {
|
|
117
|
+
if (process.platform === "win32" || typeof process.getuid !== "function")
|
|
118
|
+
return;
|
|
119
|
+
try {
|
|
120
|
+
const info = await stat(path);
|
|
121
|
+
if (info.uid !== process.getuid() || (info.mode & 0o777 & ~mode) === 0)
|
|
122
|
+
return;
|
|
123
|
+
await chmod(path, mode);
|
|
124
|
+
}
|
|
125
|
+
catch {
|
|
126
|
+
// Best effort; see above.
|
|
127
|
+
}
|
|
85
128
|
}
|
|
86
129
|
async function removeIfPresent(path) {
|
|
87
130
|
try {
|
package/dist/durable-log.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"durable-log.js","sourceRoot":"","sources":["../src/durable-log.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"durable-log.js","sourceRoot":"","sources":["../src/durable-log.ts"],"names":[],"mappings":"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"}
|