lua-cli 3.15.0 → 3.15.1
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/cli/command-definitions.d.ts.map +1 -1
- package/dist/cli/command-definitions.js +46 -0
- package/dist/cli/command-definitions.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +70 -83
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/push.d.ts.map +1 -1
- package/dist/commands/push.js +87 -11
- package/dist/commands/push.js.map +1 -1
- package/dist/commands/pushBackup.d.ts +58 -4
- package/dist/commands/pushBackup.d.ts.map +1 -1
- package/dist/commands/pushBackup.js +202 -125
- package/dist/commands/pushBackup.js.map +1 -1
- package/dist/commands/source.d.ts +72 -0
- package/dist/commands/source.d.ts.map +1 -0
- package/dist/commands/source.js +124 -0
- package/dist/commands/source.js.map +1 -0
- package/dist/instances/user.instance.d.ts +2 -1
- package/dist/instances/user.instance.d.ts.map +1 -1
- package/dist/instances/user.instance.js.map +1 -1
- package/dist/interfaces/backup.d.ts +24 -0
- package/dist/interfaces/backup.d.ts.map +1 -1
- package/dist/interfaces/chat.d.ts +1 -21
- package/dist/interfaces/chat.d.ts.map +1 -1
- package/dist/types/api-contracts.d.ts +4 -3
- package/dist/types/api-contracts.d.ts.map +1 -1
- package/dist/types/yaml.types.d.ts +6 -0
- package/dist/types/yaml.types.d.ts.map +1 -1
- package/dist/utils/build-manifest-from-disk.d.ts +17 -0
- package/dist/utils/build-manifest-from-disk.d.ts.map +1 -0
- package/dist/utils/build-manifest-from-disk.js +111 -0
- package/dist/utils/build-manifest-from-disk.js.map +1 -0
- package/node_modules/@lua/shared-types/dist/index.d.mts +64 -1
- package/node_modules/@lua/shared-types/dist/index.d.ts +64 -1
- package/node_modules/@lua/shared-types/dist/index.js +74 -2
- package/node_modules/@lua/shared-types/dist/index.mjs +71 -1
- package/node_modules/@lua/shared-types/src/chat-history.types.ts +112 -0
- package/node_modules/@lua/shared-types/src/index.ts +1 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pushBackup.js","sourceRoot":"","sources":["../../src/commands/pushBackup.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"pushBackup.js","sourceRoot":"","sources":["../../src/commands/pushBackup.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Source Commands
|
|
3
|
+
*
|
|
4
|
+
* User-facing commands for inspecting and rolling back to historical
|
|
5
|
+
* source backup versions. Backed by the Phase 1 versioned-manifest
|
|
6
|
+
* endpoints on the server.
|
|
7
|
+
*
|
|
8
|
+
* - `lua source list` — list backup versions for the agent
|
|
9
|
+
* - `lua source rollback --version N` — restore version N's files locally
|
|
10
|
+
* and append them as a new version
|
|
11
|
+
*
|
|
12
|
+
* The rollback command intentionally does NOT mutate the historical
|
|
13
|
+
* record. It downloads v<N>'s files, overwrites the local working copy,
|
|
14
|
+
* and then runs a fresh push that creates v<latest+1>. Append-only
|
|
15
|
+
* history means rolling back is always safe and auditable.
|
|
16
|
+
*/
|
|
17
|
+
import type { BackupManifest } from '../interfaces/backup.js';
|
|
18
|
+
interface ManifestVersionSummary {
|
|
19
|
+
version: number;
|
|
20
|
+
createdAt: string;
|
|
21
|
+
createdBy: string;
|
|
22
|
+
triggeredBy?: string;
|
|
23
|
+
projectHash: string;
|
|
24
|
+
}
|
|
25
|
+
interface ListResponse {
|
|
26
|
+
versions: ManifestVersionSummary[];
|
|
27
|
+
}
|
|
28
|
+
export interface SourceListOptions {
|
|
29
|
+
all: boolean;
|
|
30
|
+
limit: number;
|
|
31
|
+
/** Test seam — bypasses HTTP. */
|
|
32
|
+
fetchVersions?: (apiKey: string, agentId: string, all: boolean) => Promise<ListResponse>;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* List historical backup versions for the current agent. Active version
|
|
36
|
+
* is marked with a `*` next to its number. Default cap 50; pass --all
|
|
37
|
+
* to show full history.
|
|
38
|
+
*/
|
|
39
|
+
export declare function sourceListCommand(opts: SourceListOptions): Promise<void>;
|
|
40
|
+
interface RollbackManifestResponse {
|
|
41
|
+
files: BackupManifest['files'];
|
|
42
|
+
activeVersion?: number;
|
|
43
|
+
[key: string]: unknown;
|
|
44
|
+
}
|
|
45
|
+
export interface SourceRollbackOptions {
|
|
46
|
+
version: number;
|
|
47
|
+
force: boolean;
|
|
48
|
+
/** Test seam — bypasses HTTP. */
|
|
49
|
+
fetchManifest?: (apiKey: string, agentId: string, version: number) => Promise<RollbackManifestResponse>;
|
|
50
|
+
/** Test seam — bypasses HTTP. */
|
|
51
|
+
fetchUrls?: (apiKey: string, agentId: string, hashes: string[]) => Promise<{
|
|
52
|
+
urls: Record<string, string>;
|
|
53
|
+
}>;
|
|
54
|
+
/** Test seam — bypasses S3 download. */
|
|
55
|
+
downloadBlobs?: (urls: Record<string, string>) => Promise<Map<string, Buffer>>;
|
|
56
|
+
/** Test seam — bypasses disk writes. */
|
|
57
|
+
restoreFiles?: (manifest: RollbackManifestResponse, blobs: Map<string, Buffer>, targetDir: string) => void;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Roll back to a historical backup version.
|
|
61
|
+
*
|
|
62
|
+
* Append-only history: this does NOT mutate v<N>. It downloads v<N>'s
|
|
63
|
+
* files, overwrites the local working copy, then runs `runBackupPush`
|
|
64
|
+
* with `fresh=true` so the server creates v<latest+1> with v<N>'s
|
|
65
|
+
* contents. Blobs already exist on S3 (content-addressed dedup), so
|
|
66
|
+
* the only new write is the manifest itself.
|
|
67
|
+
*/
|
|
68
|
+
export declare function sourceRollbackCommand(opts: SourceRollbackOptions): Promise<{
|
|
69
|
+
newActiveVersion: number;
|
|
70
|
+
}>;
|
|
71
|
+
export {};
|
|
72
|
+
//# sourceMappingURL=source.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"source.d.ts","sourceRoot":"","sources":["../../src/commands/source.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAUH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE9D,UAAU,sBAAsB;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,UAAU,YAAY;IACpB,QAAQ,EAAE,sBAAsB,EAAE,CAAC;CACpC;AAED,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,OAAO,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,iCAAiC;IACjC,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC;CAC1F;AAED;;;;GAIG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAgC9E;AAcD,UAAU,wBAAwB;IAChC,KAAK,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;IAC/B,aAAa,CAAC,EAAE,MAAM,CAAC;IAGvB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,OAAO,CAAC;IACf,iCAAiC;IACjC,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,wBAAwB,CAAC,CAAC;IACxG,iCAAiC;IACjC,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,CAAC,CAAC;IAC7G,wCAAwC;IACxC,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC/E,wCAAwC;IACxC,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,wBAAwB,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;CAC5G;AAED;;;;;;;;GAQG;AACH,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAAC;IAAE,gBAAgB,EAAE,MAAM,CAAA;CAAE,CAAC,CA2C9G"}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Source Commands
|
|
3
|
+
*
|
|
4
|
+
* User-facing commands for inspecting and rolling back to historical
|
|
5
|
+
* source backup versions. Backed by the Phase 1 versioned-manifest
|
|
6
|
+
* endpoints on the server.
|
|
7
|
+
*
|
|
8
|
+
* - `lua source list` — list backup versions for the agent
|
|
9
|
+
* - `lua source rollback --version N` — restore version N's files locally
|
|
10
|
+
* and append them as a new version
|
|
11
|
+
*
|
|
12
|
+
* The rollback command intentionally does NOT mutate the historical
|
|
13
|
+
* record. It downloads v<N>'s files, overwrites the local working copy,
|
|
14
|
+
* and then runs a fresh push that creates v<latest+1>. Append-only
|
|
15
|
+
* history means rolling back is always safe and auditable.
|
|
16
|
+
*/
|
|
17
|
+
import axios from 'axios';
|
|
18
|
+
import inquirer from 'inquirer';
|
|
19
|
+
import { requireAuthOrExit } from '../utils/command-utils.js';
|
|
20
|
+
import { readYamlConfig } from '../utils/files.js';
|
|
21
|
+
import { writeError } from '../utils/cli.js';
|
|
22
|
+
import { BASE_URLS } from '../config/constants.js';
|
|
23
|
+
import { downloadBlobsParallel, restoreProjectFromBackup } from '../utils/backup-helpers.js';
|
|
24
|
+
import { runBackupPush } from './pushBackup.js';
|
|
25
|
+
/**
|
|
26
|
+
* List historical backup versions for the current agent. Active version
|
|
27
|
+
* is marked with a `*` next to its number. Default cap 50; pass --all
|
|
28
|
+
* to show full history.
|
|
29
|
+
*/
|
|
30
|
+
export async function sourceListCommand(opts) {
|
|
31
|
+
const apiKey = requireAuthOrExit(true);
|
|
32
|
+
const config = readYamlConfig();
|
|
33
|
+
const agentId = config?.agent?.agentId;
|
|
34
|
+
const activeVersion = config?.backup?.activeVersion;
|
|
35
|
+
if (!agentId) {
|
|
36
|
+
writeError('No agentId in lua.skill.yaml. Run `lua init` first.');
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
const fetcher = opts.fetchVersions ?? defaultFetchVersions;
|
|
40
|
+
const { versions } = await fetcher(apiKey, agentId, opts.all);
|
|
41
|
+
if (versions.length === 0) {
|
|
42
|
+
console.log('(no source versions yet — push to create one)');
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
// `--all` controls server-side fetch (lifts the default 50-cap on the
|
|
46
|
+
// /versions endpoint). `--limit` always applies as a display cap on top
|
|
47
|
+
// of whatever the server returned. `--all --limit 100` = "fetch full
|
|
48
|
+
// history, show me up to 100"; `--limit 30` (no --all) = "fetch the
|
|
49
|
+
// server default, show me up to 30 of those".
|
|
50
|
+
const slice = versions.slice(0, opts.limit);
|
|
51
|
+
console.log('VERSION CREATED BY TRIGGERED BY HASH');
|
|
52
|
+
for (const v of slice) {
|
|
53
|
+
const active = v.version === activeVersion ? ' *' : '';
|
|
54
|
+
const date = new Date(v.createdAt).toISOString().slice(0, 16).replace('T', ' ');
|
|
55
|
+
const trig = (v.triggeredBy ?? '').slice(0, 30).padEnd(30, ' ');
|
|
56
|
+
const hash = v.projectHash.slice(0, 8) + '...';
|
|
57
|
+
console.log(`v${v.version}${active}\t${date}\t${v.createdBy}\t${trig}\t${hash}`);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
async function defaultFetchVersions(apiKey, agentId, all) {
|
|
61
|
+
const { data } = await axios.get(`${BASE_URLS.API}/developer/agents/${encodeURIComponent(agentId)}/backup/versions${all ? '?all=true' : ''}`, { headers: { Authorization: `Bearer ${apiKey}` } });
|
|
62
|
+
return data;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Roll back to a historical backup version.
|
|
66
|
+
*
|
|
67
|
+
* Append-only history: this does NOT mutate v<N>. It downloads v<N>'s
|
|
68
|
+
* files, overwrites the local working copy, then runs `runBackupPush`
|
|
69
|
+
* with `fresh=true` so the server creates v<latest+1> with v<N>'s
|
|
70
|
+
* contents. Blobs already exist on S3 (content-addressed dedup), so
|
|
71
|
+
* the only new write is the manifest itself.
|
|
72
|
+
*/
|
|
73
|
+
export async function sourceRollbackCommand(opts) {
|
|
74
|
+
const apiKey = requireAuthOrExit(true);
|
|
75
|
+
const config = readYamlConfig();
|
|
76
|
+
const agentId = config?.agent?.agentId;
|
|
77
|
+
if (!agentId)
|
|
78
|
+
throw new Error('No agentId in lua.skill.yaml. Run `lua init` first.');
|
|
79
|
+
const fetchM = opts.fetchManifest ?? defaultFetchManifest;
|
|
80
|
+
const fetchU = opts.fetchUrls ?? defaultFetchUrls;
|
|
81
|
+
const dlBlobs = opts.downloadBlobs ?? downloadBlobsParallel;
|
|
82
|
+
const restore = opts.restoreFiles ?? defaultRestore;
|
|
83
|
+
if (!opts.force) {
|
|
84
|
+
const { confirm } = await inquirer.prompt([
|
|
85
|
+
{
|
|
86
|
+
type: 'confirm',
|
|
87
|
+
name: 'confirm',
|
|
88
|
+
message: `Rolling back to v${opts.version} will overwrite local files and create a new version. Continue?`,
|
|
89
|
+
default: false,
|
|
90
|
+
},
|
|
91
|
+
]);
|
|
92
|
+
if (!confirm)
|
|
93
|
+
return { newActiveVersion: config?.backup?.activeVersion ?? 0 };
|
|
94
|
+
}
|
|
95
|
+
const manifest = await fetchM(apiKey, agentId, opts.version);
|
|
96
|
+
const urlsResponse = await fetchU(apiKey, agentId, manifest.files.map((f) => f.hash));
|
|
97
|
+
const blobs = await dlBlobs(urlsResponse.urls);
|
|
98
|
+
restore(manifest, blobs, process.cwd());
|
|
99
|
+
// Append the rolled-back state as a new version. Server creates
|
|
100
|
+
// v<latest+1> referencing v<N>'s blobs (already on S3) — no re-upload.
|
|
101
|
+
const result = await runBackupPush({
|
|
102
|
+
apiKey,
|
|
103
|
+
agentId,
|
|
104
|
+
force: true,
|
|
105
|
+
fresh: true,
|
|
106
|
+
triggeredBy: `rollback to v${opts.version}`,
|
|
107
|
+
});
|
|
108
|
+
return { newActiveVersion: result.activeVersion };
|
|
109
|
+
}
|
|
110
|
+
async function defaultFetchManifest(apiKey, agentId, version) {
|
|
111
|
+
const { data } = await axios.get(`${BASE_URLS.API}/developer/agents/${encodeURIComponent(agentId)}/backup/manifest?version=${version}`, { headers: { Authorization: `Bearer ${apiKey}` } });
|
|
112
|
+
return data;
|
|
113
|
+
}
|
|
114
|
+
async function defaultFetchUrls(apiKey, agentId, hashes) {
|
|
115
|
+
const { data } = await axios.post(`${BASE_URLS.API}/developer/agents/${encodeURIComponent(agentId)}/backup/blob-urls`, { hashes }, { headers: { Authorization: `Bearer ${apiKey}` } });
|
|
116
|
+
return data;
|
|
117
|
+
}
|
|
118
|
+
function defaultRestore(manifest, blobs, targetDir) {
|
|
119
|
+
// restoreProjectFromBackup expects a BackupManifest. The rollback
|
|
120
|
+
// response has the same `files` shape; cast through unknown because
|
|
121
|
+
// the metadata fields we don't consume aren't worth round-tripping.
|
|
122
|
+
restoreProjectFromBackup(manifest, blobs, targetDir, { overwrite: true });
|
|
123
|
+
}
|
|
124
|
+
//# sourceMappingURL=source.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"source.js","sourceRoot":"","sources":["../../src/commands/source.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Message } from '../interfaces/message.js';
|
|
2
2
|
import { UserDataAPI } from '../types/index.js';
|
|
3
3
|
import { ImmutableUserProfile, UserAgentData } from '../interfaces/user.js';
|
|
4
|
+
import type { ChatHistoryMessage } from '@lua/shared-types';
|
|
4
5
|
/**
|
|
5
6
|
* User data instance class providing a fluent API for managing user data
|
|
6
7
|
* Provides methods for updating and clearing data
|
|
@@ -50,6 +51,6 @@ export default class UserDataInstance {
|
|
|
50
51
|
* @throws Error if the message sending fails or the request is unsuccessful
|
|
51
52
|
*/
|
|
52
53
|
send(messages: Message[]): Promise<any>;
|
|
53
|
-
getChatHistory(): Promise<
|
|
54
|
+
getChatHistory(): Promise<ChatHistoryMessage[]>;
|
|
54
55
|
}
|
|
55
56
|
//# sourceMappingURL=user.instance.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user.instance.d.ts","sourceRoot":"","sources":["../../src/instances/user.instance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"user.instance.d.ts","sourceRoot":"","sources":["../../src/instances/user.instance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC5E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAE5D;;;;GAIG;AACH,MAAM,CAAC,OAAO,OAAO,gBAAgB;IACnC,IAAI,EAAE,aAAa,CAAC;IACpB,OAAO,CAAC,OAAO,CAAe;IAC9B,WAAW,EAAG,oBAAoB,CAAC;IAGnC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;IAEnB;;;;;;OAMG;gBACS,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,oBAAoB;IAiGvE;;;OAGG;IACH,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAY7B;;;;;OAKG;IACG,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC;IAUrD;;;;OAIG;IACG,KAAK,IAAI,OAAO,CAAC,OAAO,CAAC;IAS/B;;;;OAIG;IACG,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC;IAS9B;;;;;OAKG;IACG,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC;IAUvC,cAAc,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;CAOtD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user.instance.js","sourceRoot":"","sources":["../../src/instances/user.instance.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"user.instance.js","sourceRoot":"","sources":["../../src/instances/user.instance.ts"],"names":[],"mappings":"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"}
|
|
@@ -64,6 +64,23 @@ export interface SaveManifestRequest {
|
|
|
64
64
|
files: BackupFileRef[];
|
|
65
65
|
/** Semantic version from lua.skill.yaml (optional) */
|
|
66
66
|
version?: string;
|
|
67
|
+
/**
|
|
68
|
+
* Optional creator label. Server defaults to the API key's user id when
|
|
69
|
+
* unset; CLI can override (e.g. `'cli'`) for telemetry attribution.
|
|
70
|
+
*/
|
|
71
|
+
createdBy?: string;
|
|
72
|
+
/**
|
|
73
|
+
* Optional organization id. Server can derive it from the API key, but
|
|
74
|
+
* the CLI passes it through when known so the V2 saveManifest path can
|
|
75
|
+
* skip a lookup.
|
|
76
|
+
*/
|
|
77
|
+
orgId?: string;
|
|
78
|
+
/**
|
|
79
|
+
* Free-form description of what triggered this backup
|
|
80
|
+
* (e.g. `'manual lua push backup'`, `'push skill mySkill'`,
|
|
81
|
+
* `'batch push'`). Captured server-side for audit/debug.
|
|
82
|
+
*/
|
|
83
|
+
triggeredBy?: string;
|
|
67
84
|
}
|
|
68
85
|
/**
|
|
69
86
|
* Request for getting presigned download URLs
|
|
@@ -93,6 +110,13 @@ export interface BackupMetadata {
|
|
|
93
110
|
version?: string;
|
|
94
111
|
createdBy: string;
|
|
95
112
|
createdAt: string;
|
|
113
|
+
/**
|
|
114
|
+
* Server-assigned monotonically-increasing manifest version. Set by the
|
|
115
|
+
* Phase 1 V2 saveManifest path (BackupService.saveManifestV2), so the
|
|
116
|
+
* CLI can persist it into `lua.skill.yaml` and detect cross-machine
|
|
117
|
+
* drift via CAS. Optional because legacy V1 records don't have it.
|
|
118
|
+
*/
|
|
119
|
+
activeVersion?: number;
|
|
96
120
|
}
|
|
97
121
|
/**
|
|
98
122
|
* Response for backup manifest (includes file refs, no content)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backup.d.ts","sourceRoot":"","sources":["../../src/interfaces/backup.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B;;;;;;;;;;;OAWG;IACH,YAAY,EAAE,MAAM,CAAC;IACrB,4CAA4C;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,oCAAoC;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,+BAA+B;IAC/B,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;IACpC;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAMD;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,uCAAuC;IACvC,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,4CAA4C;IAC5C,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,sCAAsC;IACtC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,oCAAoC;IACpC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAMD;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,yCAAyC;IACzC,WAAW,EAAE,MAAM,CAAC;IACpB,4CAA4C;IAC5C,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,sDAAsD;IACtD,OAAO,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"backup.d.ts","sourceRoot":"","sources":["../../src/interfaces/backup.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B;;;;;;;;;;;OAWG;IACH,YAAY,EAAE,MAAM,CAAC;IACrB,4CAA4C;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,oCAAoC;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,+BAA+B;IAC/B,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;IACpC;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAMD;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,uCAAuC;IACvC,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,4CAA4C;IAC5C,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,sCAAsC;IACtC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,oCAAoC;IACpC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAMD;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,yCAAyC;IACzC,WAAW,EAAE,MAAM,CAAC;IACpB,4CAA4C;IAC5C,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,sDAAsD;IACtD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAMD;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,8CAA8C;IAC9C,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,sCAAsC;IACtC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,qCAAqC;IACrC,SAAS,EAAE,MAAM,CAAC;CACnB;AAMD;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB;;;;;OAKG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,cAAe,SAAQ,cAAc;IACpD,KAAK,EAAE,aAAa,EAAE,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,OAAO,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAMD;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,iCAAiC;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oCAAoC;IACpC,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB"}
|
|
@@ -94,25 +94,5 @@ export interface DetailedChatResponse {
|
|
|
94
94
|
steps: any[];
|
|
95
95
|
sources: any[];
|
|
96
96
|
}
|
|
97
|
-
|
|
98
|
-
* Chat history message content item
|
|
99
|
-
*/
|
|
100
|
-
export interface ChatHistoryContent {
|
|
101
|
-
type: 'text' | 'image' | 'file';
|
|
102
|
-
text?: string;
|
|
103
|
-
url?: string;
|
|
104
|
-
filename?: string;
|
|
105
|
-
}
|
|
106
|
-
/**
|
|
107
|
-
* Chat history message from conversation
|
|
108
|
-
*/
|
|
109
|
-
export interface ChatHistoryMessage {
|
|
110
|
-
role: 'user' | 'assistant';
|
|
111
|
-
id: string;
|
|
112
|
-
createdAt: string;
|
|
113
|
-
resourceId: string;
|
|
114
|
-
threadId: string;
|
|
115
|
-
type: string;
|
|
116
|
-
content: ChatHistoryContent[];
|
|
117
|
-
}
|
|
97
|
+
export type { ChatHistoryMessage, ChatHistoryContent } from '@lua/shared-types';
|
|
118
98
|
//# sourceMappingURL=chat.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../src/interfaces/chat.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD;;;GAGG;AAQH,MAAM,MAAM,WAAW,GAAG,WAAW,GAAG,YAAY,GAAG,WAAW,CAAC;AAEnE,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB;AACD;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IACpC,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,QAAQ,EAAE,OAAO,CAAC;IAClB,aAAa,EAAE,aAAa,EAAE,CAAC;IAC/B,oBAAoB,CAAC,EAAE,oBAAoB,EAAE,CAAC;IAC9C,qBAAqB,CAAC,EAAE,qBAAqB,EAAE,CAAC;IAChD,eAAe,CAAC,EAAE,WAAW,CAAC;IAC9B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,cAAc,CAAC,EAAE,GAAG,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,GAAG,EAAE,CAAC;IACb,gBAAgB,EAAE,GAAG,EAAE,CAAC;IACxB,SAAS,EAAE,GAAG,EAAE,CAAC;IACjB,WAAW,EAAE,GAAG,EAAE,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE;QACL,YAAY,EAAE,MAAM,CAAC;QACrB,gBAAgB,EAAE,MAAM,CAAC;QACzB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,QAAQ,EAAE,GAAG,EAAE,CAAC;IAChB,OAAO,EAAE,GAAG,CAAC;IACb,QAAQ,EAAE,GAAG,CAAC;IACd,KAAK,EAAE,GAAG,EAAE,CAAC;IACb,OAAO,EAAE,GAAG,EAAE,CAAC;CAChB;
|
|
1
|
+
{"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../src/interfaces/chat.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD;;;GAGG;AAQH,MAAM,MAAM,WAAW,GAAG,WAAW,GAAG,YAAY,GAAG,WAAW,CAAC;AAEnE,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB;AACD;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IACpC,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,QAAQ,EAAE,OAAO,CAAC;IAClB,aAAa,EAAE,aAAa,EAAE,CAAC;IAC/B,oBAAoB,CAAC,EAAE,oBAAoB,EAAE,CAAC;IAC9C,qBAAqB,CAAC,EAAE,qBAAqB,EAAE,CAAC;IAChD,eAAe,CAAC,EAAE,WAAW,CAAC;IAC9B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,cAAc,CAAC,EAAE,GAAG,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,GAAG,EAAE,CAAC;IACb,gBAAgB,EAAE,GAAG,EAAE,CAAC;IACxB,SAAS,EAAE,GAAG,EAAE,CAAC;IACjB,WAAW,EAAE,GAAG,EAAE,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE;QACL,YAAY,EAAE,MAAM,CAAC;QACrB,gBAAgB,EAAE,MAAM,CAAC;QACzB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,QAAQ,EAAE,GAAG,EAAE,CAAC;IAChB,OAAO,EAAE,GAAG,CAAC;IACb,QAAQ,EAAE,GAAG,CAAC;IACd,KAAK,EAAE,GAAG,EAAE,CAAC;IACb,OAAO,EAAE,GAAG,EAAE,CAAC;CAChB;AAMD,YAAY,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -2,6 +2,7 @@ import { Message } from '../interfaces/message.js';
|
|
|
2
2
|
import { GetCustomDataResponse, UpdateCustomDataResponse, DeleteCustomDataResponse } from '../interfaces/custom.data.js';
|
|
3
3
|
import { UserLookupOptions } from '../interfaces/user.js';
|
|
4
4
|
import DataEntryInstance from '../instances/data.entry.instance.js';
|
|
5
|
+
import type { ChatHistoryMessage } from '@lua/shared-types';
|
|
5
6
|
/**
|
|
6
7
|
* API Contract Interfaces
|
|
7
8
|
* TypeScript interfaces that API service classes must implement
|
|
@@ -40,10 +41,10 @@ export interface UserDataAPI {
|
|
|
40
41
|
*/
|
|
41
42
|
sendMessage(messages: Message[]): Promise<any>;
|
|
42
43
|
/**
|
|
43
|
-
* Gets chat history.
|
|
44
|
-
* @returns Promise resolving to chat
|
|
44
|
+
* Gets chat history for the current user and agent.
|
|
45
|
+
* @returns Promise resolving to an array of chat-history messages
|
|
45
46
|
*/
|
|
46
|
-
getChatHistory(): Promise<
|
|
47
|
+
getChatHistory(): Promise<ChatHistoryMessage[]>;
|
|
47
48
|
}
|
|
48
49
|
/**
|
|
49
50
|
* Product API contract.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-contracts.d.ts","sourceRoot":"","sources":["../../src/types/api-contracts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,EACL,qBAAqB,EACrB,wBAAwB,EACxB,wBAAwB,EACzB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,iBAAiB,MAAM,qCAAqC,CAAC;
|
|
1
|
+
{"version":3,"file":"api-contracts.d.ts","sourceRoot":"","sources":["../../src/types/api-contracts.ts"],"names":[],"mappings":"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"}
|
|
@@ -67,6 +67,12 @@ export interface YamlConfigBackup {
|
|
|
67
67
|
lastHash?: string;
|
|
68
68
|
/** Timestamp of last backup push */
|
|
69
69
|
lastPushedAt?: string;
|
|
70
|
+
/**
|
|
71
|
+
* Active server-side manifest version this machine last reconciled with.
|
|
72
|
+
* Phase 2 (S3 backup hardening) writes this on every successful push and
|
|
73
|
+
* after `lua init` restore so the CLI can detect cross-machine drift.
|
|
74
|
+
*/
|
|
75
|
+
activeVersion?: number;
|
|
70
76
|
}
|
|
71
77
|
export interface YamlConfig {
|
|
72
78
|
skill?: LegacyYamlConfigSkill;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"yaml.types.d.ts","sourceRoot":"","sources":["../../src/types/yaml.types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,GAAG,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,GAAG,CAAC;CAChB;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,gBAAgB;IAC/B,iCAAiC;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oCAAoC;IACpC,YAAY,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"yaml.types.d.ts","sourceRoot":"","sources":["../../src/types/yaml.types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,GAAG,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,GAAG,CAAC;CAChB;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,gBAAgB;IAC/B,iCAAiC;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oCAAoC;IACpC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,CAAC,EAAE,qBAAqB,CAAC;IAC9B,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,MAAM,CAAC,EAAE,eAAe,EAAE,CAAC;IAC3B,QAAQ,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAC/B,IAAI,CAAC,EAAE,aAAa,EAAE,CAAC;IACvB,aAAa,CAAC,EAAE,sBAAsB,EAAE,CAAC;IACzC,cAAc,CAAC,EAAE,uBAAuB,EAAE,CAAC;IAC3C,UAAU,CAAC,EAAE,mBAAmB,EAAE,CAAC;IACnC,OAAO,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC7B,cAAc,CAAC,EAAE,uBAAuB,EAAE,CAAC;IAC3C,kCAAkC;IAClC,MAAM,CAAC,EAAE,gBAAgB,CAAC;CAC3B"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* buildManifestFromDisk
|
|
3
|
+
*
|
|
4
|
+
* Walk a project directory, hash every file we'd consider "source", and
|
|
5
|
+
* return a fresh BackupManifest. Replaces the broken
|
|
6
|
+
* `reconcileManifestWithDisk` (in backup-helpers.ts), which only re-hashed
|
|
7
|
+
* files already present in the compiled `manifest.json` — so files
|
|
8
|
+
* written by the Builder (or any out-of-band write that bypasses
|
|
9
|
+
* `lua compile`) never made it into the backup.
|
|
10
|
+
*
|
|
11
|
+
* Used by `runBackupPush({ fresh: true })` so auto-backup-push after every
|
|
12
|
+
* primitive push captures everything currently on disk, not just what
|
|
13
|
+
* the most recent compile happened to know about.
|
|
14
|
+
*/
|
|
15
|
+
import type { BackupManifest } from '../interfaces/backup.js';
|
|
16
|
+
export declare function buildManifestFromDisk(projectPath: string, agentId: string): BackupManifest;
|
|
17
|
+
//# sourceMappingURL=build-manifest-from-disk.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build-manifest-from-disk.d.ts","sourceRoot":"","sources":["../../src/utils/build-manifest-from-disk.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,OAAO,KAAK,EAAE,cAAc,EAAiB,MAAM,yBAAyB,CAAC;AAa7E,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,cAAc,CA6B1F"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* buildManifestFromDisk
|
|
3
|
+
*
|
|
4
|
+
* Walk a project directory, hash every file we'd consider "source", and
|
|
5
|
+
* return a fresh BackupManifest. Replaces the broken
|
|
6
|
+
* `reconcileManifestWithDisk` (in backup-helpers.ts), which only re-hashed
|
|
7
|
+
* files already present in the compiled `manifest.json` — so files
|
|
8
|
+
* written by the Builder (or any out-of-band write that bypasses
|
|
9
|
+
* `lua compile`) never made it into the backup.
|
|
10
|
+
*
|
|
11
|
+
* Used by `runBackupPush({ fresh: true })` so auto-backup-push after every
|
|
12
|
+
* primitive push captures everything currently on disk, not just what
|
|
13
|
+
* the most recent compile happened to know about.
|
|
14
|
+
*/
|
|
15
|
+
import { readdirSync, readFileSync, statSync } from 'fs';
|
|
16
|
+
import { join, sep } from 'path';
|
|
17
|
+
import { hashContent, shouldSkipFile, shouldSkipDirectory } from '../compiler/utils/common.js';
|
|
18
|
+
import { calculateProjectHash } from './backup-helpers.js';
|
|
19
|
+
// Reuse the compiler's `shouldSkipFile` / `shouldSkipDirectory` helpers to
|
|
20
|
+
// keep the fresh-from-disk file set identical to the compiled-manifest path.
|
|
21
|
+
// Otherwise dotfiles (`.eslintrc`, `.vscode/`, `.prettierrc`), test files
|
|
22
|
+
// (`*.test.ts`, `*.spec.ts`, `__tests__/`), `.d.ts`, `.map`, and lockfiles
|
|
23
|
+
// would land in fresh manifests but not compiled ones, producing a different
|
|
24
|
+
// projectHash for identical content and triggering false out-of-sync flags
|
|
25
|
+
// every time the user toggled between the two modes.
|
|
26
|
+
const MAX_FILE_BYTES = 256 * 1024;
|
|
27
|
+
export function buildManifestFromDisk(projectPath, agentId) {
|
|
28
|
+
const files = [];
|
|
29
|
+
walk(projectPath, '', files);
|
|
30
|
+
files.sort((a, b) => a.relativePath.localeCompare(b.relativePath));
|
|
31
|
+
// Use the SAME hash + projectHash function as the compiled-manifest path
|
|
32
|
+
// (`prepareFileRefs` + `calculateProjectHash` in backup-helpers.ts). Otherwise
|
|
33
|
+
// blob dedup breaks across paths — the same file content uploaded under a
|
|
34
|
+
// 16-char hash via the compiled path is invisible when looked up under a
|
|
35
|
+
// 64-char hash via the fresh path. Same goes for projectHash: switching
|
|
36
|
+
// between fresh and non-fresh modes must produce the same hash for
|
|
37
|
+
// identical content, otherwise `isBackupOutOfSync` flags every push.
|
|
38
|
+
const projectFiles = files.map((f) => ({ relativePath: f.relativePath, hash: f.hash }));
|
|
39
|
+
const totalSize = files.reduce((acc, f) => acc + f.size, 0);
|
|
40
|
+
return {
|
|
41
|
+
agentId,
|
|
42
|
+
// orgId is unknown at this layer; the caller (runBackupPush) supplies
|
|
43
|
+
// it when sending to the server. The disk-side manifest just needs the
|
|
44
|
+
// shape to satisfy the type.
|
|
45
|
+
orgId: '',
|
|
46
|
+
projectHash: calculateProjectHash(projectFiles),
|
|
47
|
+
fileCount: files.length,
|
|
48
|
+
totalSize,
|
|
49
|
+
createdBy: 'cli',
|
|
50
|
+
createdAt: new Date().toISOString(),
|
|
51
|
+
files,
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
function walk(root, relPrefix, out) {
|
|
55
|
+
const dir = relPrefix ? join(root, relPrefix) : root;
|
|
56
|
+
const entries = readdirSync(dir, { withFileTypes: true });
|
|
57
|
+
for (const entry of entries) {
|
|
58
|
+
if (entry.isDirectory()) {
|
|
59
|
+
// Two-pass directory skip:
|
|
60
|
+
// - shouldSkipDirectory covers the curated build/cache list
|
|
61
|
+
// (node_modules / dist / dist-v2 / .git / .lua / .temp /
|
|
62
|
+
// coverage / .next / .turbo)
|
|
63
|
+
// - shouldSkipFile also rejects `__tests__/`, dotted dirs,
|
|
64
|
+
// and any path containing `node_modules` / `__tests__` —
|
|
65
|
+
// applying it to the directory NAME catches those branches
|
|
66
|
+
// and keeps the compiled path's exclusion set in lockstep.
|
|
67
|
+
if (shouldSkipDirectory(entry.name))
|
|
68
|
+
continue;
|
|
69
|
+
if (shouldSkipFile(entry.name))
|
|
70
|
+
continue;
|
|
71
|
+
walk(root, relPrefix ? `${relPrefix}${sep}${entry.name}` : entry.name, out);
|
|
72
|
+
continue;
|
|
73
|
+
}
|
|
74
|
+
if (!entry.isFile())
|
|
75
|
+
continue;
|
|
76
|
+
// shouldSkipFile covers dotfiles, test files, .d.ts/.map, lockfiles,
|
|
77
|
+
// and node_modules paths — keeping the fresh manifest file set
|
|
78
|
+
// identical to the compiled path's so projectHash matches across modes.
|
|
79
|
+
if (shouldSkipFile(entry.name))
|
|
80
|
+
continue;
|
|
81
|
+
const rel = (relPrefix ? `${relPrefix}${sep}${entry.name}` : entry.name).split(sep).join('/');
|
|
82
|
+
const abs = join(root, rel);
|
|
83
|
+
const stat = statSync(abs);
|
|
84
|
+
if (stat.size > MAX_FILE_BYTES)
|
|
85
|
+
continue;
|
|
86
|
+
let content;
|
|
87
|
+
try {
|
|
88
|
+
content = readFileSync(abs);
|
|
89
|
+
}
|
|
90
|
+
catch {
|
|
91
|
+
continue;
|
|
92
|
+
}
|
|
93
|
+
const hash = hashContent(content.toString('utf-8'));
|
|
94
|
+
out.push({
|
|
95
|
+
relativePath: rel,
|
|
96
|
+
hash,
|
|
97
|
+
size: stat.size,
|
|
98
|
+
type: classifyFile(rel),
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
function classifyFile(relPath) {
|
|
103
|
+
if (relPath.endsWith('.ts') || relPath.endsWith('.tsx') || relPath.endsWith('.js') || relPath.endsWith('.jsx')) {
|
|
104
|
+
return 'source';
|
|
105
|
+
}
|
|
106
|
+
if (relPath.endsWith('.yaml') || relPath.endsWith('.yml') || relPath.endsWith('.json') || relPath.endsWith('.toml')) {
|
|
107
|
+
return 'config';
|
|
108
|
+
}
|
|
109
|
+
return 'other';
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=build-manifest-from-disk.js.map
|