@agent-native/core 0.2.3 → 0.2.7
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/README.md +122 -0
- package/dist/adapters/firestore/adapter.d.ts +47 -0
- package/dist/adapters/firestore/adapter.d.ts.map +1 -0
- package/dist/adapters/firestore/adapter.js +45 -0
- package/dist/adapters/firestore/adapter.js.map +1 -0
- package/dist/adapters/firestore/index.d.ts +3 -3
- package/dist/adapters/firestore/index.d.ts.map +1 -1
- package/dist/adapters/firestore/index.js +2 -3
- package/dist/adapters/firestore/index.js.map +1 -1
- package/dist/adapters/neon/adapter.d.ts +28 -0
- package/dist/adapters/neon/adapter.d.ts.map +1 -0
- package/dist/adapters/neon/adapter.js +119 -0
- package/dist/adapters/neon/adapter.js.map +1 -0
- package/dist/adapters/neon/index.d.ts +3 -0
- package/dist/adapters/neon/index.d.ts.map +1 -0
- package/dist/adapters/neon/index.js +3 -0
- package/dist/adapters/neon/index.js.map +1 -0
- package/dist/adapters/supabase/adapter.d.ts +42 -0
- package/dist/adapters/supabase/adapter.d.ts.map +1 -0
- package/dist/adapters/supabase/adapter.js +126 -0
- package/dist/adapters/supabase/adapter.js.map +1 -0
- package/dist/adapters/supabase/index.d.ts +3 -0
- package/dist/adapters/supabase/index.d.ts.map +1 -0
- package/dist/adapters/supabase/index.js +3 -0
- package/dist/adapters/supabase/index.js.map +1 -0
- package/dist/adapters/{firestore → sync}/config.d.ts +1 -1
- package/dist/adapters/sync/config.d.ts.map +1 -0
- package/dist/adapters/{firestore → sync}/config.js +1 -1
- package/dist/adapters/sync/config.js.map +1 -0
- package/dist/adapters/{firestore/sync.d.ts → sync/file-sync.d.ts} +6 -37
- package/dist/adapters/sync/file-sync.d.ts.map +1 -0
- package/dist/adapters/{firestore/sync.js → sync/file-sync.js} +45 -59
- package/dist/adapters/sync/file-sync.js.map +1 -0
- package/dist/adapters/sync/index.d.ts +5 -0
- package/dist/adapters/sync/index.d.ts.map +1 -0
- package/dist/adapters/sync/index.js +4 -0
- package/dist/adapters/sync/index.js.map +1 -0
- package/dist/adapters/sync/merge.d.ts.map +1 -0
- package/dist/adapters/sync/merge.js.map +1 -0
- package/dist/adapters/sync/types.d.ts +28 -0
- package/dist/adapters/sync/types.d.ts.map +1 -0
- package/dist/adapters/sync/types.js +2 -0
- package/dist/adapters/sync/types.js.map +1 -0
- package/dist/cli/create.d.ts.map +1 -1
- package/dist/cli/create.js +41 -3
- package/dist/cli/create.js.map +1 -1
- package/dist/cli/index.js +12 -9
- package/dist/cli/index.js.map +1 -1
- package/dist/client/components/ApiKeySettings.d.ts +12 -0
- package/dist/client/components/ApiKeySettings.d.ts.map +1 -0
- package/dist/client/components/ApiKeySettings.js +203 -0
- package/dist/client/components/ApiKeySettings.js.map +1 -0
- package/dist/client/components/MissingKeyCard.d.ts +7 -0
- package/dist/client/components/MissingKeyCard.d.ts.map +1 -0
- package/dist/client/components/MissingKeyCard.js +27 -0
- package/dist/client/components/MissingKeyCard.js.map +1 -0
- package/dist/client/index.d.ts +1 -0
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +1 -0
- package/dist/client/index.js.map +1 -1
- package/dist/client/use-file-watcher.d.ts.map +1 -1
- package/dist/client/use-file-watcher.js +24 -14
- package/dist/client/use-file-watcher.js.map +1 -1
- package/dist/index.browser.d.ts +1 -1
- package/dist/index.browser.d.ts.map +1 -1
- package/dist/index.browser.js +1 -1
- package/dist/index.browser.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/scripts/runner.js +1 -1
- package/dist/scripts/runner.js.map +1 -1
- package/dist/server/create-server.d.ts +11 -0
- package/dist/server/create-server.d.ts.map +1 -1
- package/dist/server/create-server.js +102 -0
- package/dist/server/create-server.js.map +1 -1
- package/dist/server/index.d.ts +2 -1
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +1 -0
- package/dist/server/index.js.map +1 -1
- package/dist/server/missing-key.d.ts +17 -0
- package/dist/server/missing-key.d.ts.map +1 -0
- package/dist/server/missing-key.js +17 -0
- package/dist/server/missing-key.js.map +1 -0
- package/dist/shared/agent-env.d.ts +23 -0
- package/dist/shared/agent-env.d.ts.map +1 -0
- package/dist/shared/agent-env.js +36 -0
- package/dist/shared/agent-env.js.map +1 -0
- package/dist/shared/index.d.ts +1 -0
- package/dist/shared/index.d.ts.map +1 -1
- package/dist/shared/index.js +1 -0
- package/dist/shared/index.js.map +1 -1
- package/dist/vite/client.d.ts.map +1 -1
- package/dist/vite/client.js +31 -0
- package/dist/vite/client.js.map +1 -1
- package/package.json +24 -3
- package/src/templates/default/.claude/settings.json +68 -0
- package/src/templates/default/AGENTS.md +4 -0
- package/src/templates/default/data/.gitkeep +0 -0
- package/src/templates/default/learnings.md +0 -0
- package/dist/adapters/firestore/config.d.ts.map +0 -1
- package/dist/adapters/firestore/config.js.map +0 -1
- package/dist/adapters/firestore/merge.d.ts.map +0 -1
- package/dist/adapters/firestore/merge.js.map +0 -1
- package/dist/adapters/firestore/sync.d.ts.map +0 -1
- package/dist/adapters/firestore/sync.js.map +0 -1
- /package/dist/adapters/{firestore → sync}/merge.d.ts +0 -0
- /package/dist/adapters/{firestore → sync}/merge.js +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/adapters/sync/config.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,UAAU;IACzB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,uBAAuB,EAAE,MAAM,EAAE,CAAC;CACnC;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,UAAU,CAiB9D;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAiB5E;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEhE"}
|
|
@@ -41,7 +41,7 @@ export function shouldSyncFile(filePath, patterns) {
|
|
|
41
41
|
return true;
|
|
42
42
|
}
|
|
43
43
|
/**
|
|
44
|
-
* Generate a deterministic
|
|
44
|
+
* Generate a deterministic doc ID from a file path.
|
|
45
45
|
* Prefixed with the app ID, path separators replaced with `__`.
|
|
46
46
|
*/
|
|
47
47
|
export function getDocId(appId, filePath) {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/adapters/sync/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAOtC;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,UAAmB;IAChD,MAAM,QAAQ,GACZ,UAAU,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,0BAA0B,CAAC,CAAC;IACxE,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC/B,OAAO;YACL,gBAAgB,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC;gBACtD,CAAC,CAAC,MAAM,CAAC,gBAAgB;gBACzB,CAAC,CAAC,EAAE;YACN,uBAAuB,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,uBAAuB,CAAC;gBACpE,CAAC,CAAC,MAAM,CAAC,uBAAuB;gBAChC,CAAC,CAAC,EAAE;SACP,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,gBAAgB,EAAE,EAAE,EAAE,uBAAuB,EAAE,EAAE,EAAE,CAAC;IAC/D,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,QAAgB,EAAE,QAAkB;IACjE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAExC,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5D,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;IAE7D,MAAM,eAAe,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAC3C,SAAS,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CACtC,CAAC;IACF,IAAI,CAAC,eAAe;QAAE,OAAO,KAAK,CAAC;IAEnC,MAAM,eAAe,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAC3C,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAC/C,CAAC;IACF,IAAI,eAAe;QAAE,OAAO,KAAK,CAAC;IAElC,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAa,EAAE,QAAgB;IACtD,OAAO,GAAG,KAAK,KAAK,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC;AACtD,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { EventEmitter } from "events";
|
|
2
|
+
import type { FileSyncAdapter } from "./types.js";
|
|
2
3
|
export interface FileSyncOptions {
|
|
3
4
|
/** Unique app identifier (e.g. "content-workspace") */
|
|
4
5
|
appId: string;
|
|
@@ -6,42 +7,11 @@ export interface FileSyncOptions {
|
|
|
6
7
|
ownerId: string;
|
|
7
8
|
/** Root directory for synced content */
|
|
8
9
|
contentRoot: string;
|
|
9
|
-
/**
|
|
10
|
-
|
|
10
|
+
/** Database adapter for file sync operations */
|
|
11
|
+
adapter: FileSyncAdapter;
|
|
11
12
|
/** Path to sync-config.json. Default: <contentRoot>/sync-config.json */
|
|
12
13
|
syncConfigPath?: string;
|
|
13
14
|
}
|
|
14
|
-
/** Minimal Firestore collection interface (avoids hard firebase-admin dependency) */
|
|
15
|
-
export interface FirestoreCollection {
|
|
16
|
-
doc(id: string): FirestoreDocRef;
|
|
17
|
-
where(field: string, op: string, value: any): FirestoreQuery;
|
|
18
|
-
}
|
|
19
|
-
export interface FirestoreDocRef {
|
|
20
|
-
get(): Promise<FirestoreDocSnapshot>;
|
|
21
|
-
set(data: any, options?: {
|
|
22
|
-
merge?: boolean;
|
|
23
|
-
}): Promise<any>;
|
|
24
|
-
delete(): Promise<any>;
|
|
25
|
-
collection(name: string): FirestoreCollection;
|
|
26
|
-
}
|
|
27
|
-
export interface FirestoreQuery {
|
|
28
|
-
where(field: string, op: string, value: any): FirestoreQuery;
|
|
29
|
-
get(): Promise<FirestoreQuerySnapshot>;
|
|
30
|
-
onSnapshot(onNext: (snapshot: FirestoreQuerySnapshot) => void, onError: (error: any) => void): () => void;
|
|
31
|
-
}
|
|
32
|
-
export interface FirestoreDocSnapshot {
|
|
33
|
-
exists: boolean;
|
|
34
|
-
id: string;
|
|
35
|
-
data(): any;
|
|
36
|
-
}
|
|
37
|
-
export interface FirestoreQuerySnapshot {
|
|
38
|
-
docs: FirestoreDocSnapshot[];
|
|
39
|
-
size: number;
|
|
40
|
-
docChanges(): Array<{
|
|
41
|
-
type: "added" | "modified" | "removed";
|
|
42
|
-
doc: FirestoreDocSnapshot;
|
|
43
|
-
}>;
|
|
44
|
-
}
|
|
45
15
|
export type SyncEvent = {
|
|
46
16
|
type: "conflict-resolved";
|
|
47
17
|
path: string;
|
|
@@ -68,7 +38,7 @@ export declare class FileSync {
|
|
|
68
38
|
constructor(options: FileSyncOptions);
|
|
69
39
|
/**
|
|
70
40
|
* Initialize the shared sync channel.
|
|
71
|
-
* Runs startup sync, starts
|
|
41
|
+
* Runs startup sync, starts remote listener, and starts file watcher.
|
|
72
42
|
*/
|
|
73
43
|
initFileSync(): Promise<void>;
|
|
74
44
|
/**
|
|
@@ -82,10 +52,9 @@ export declare class FileSync {
|
|
|
82
52
|
private readLocalFile;
|
|
83
53
|
private writeSyncedFile;
|
|
84
54
|
private docId;
|
|
85
|
-
private collection;
|
|
86
55
|
private resolveConflict;
|
|
87
56
|
private initStartupSync;
|
|
88
|
-
private
|
|
57
|
+
private startRemoteListener;
|
|
89
58
|
private startFileWatcher;
|
|
90
59
|
}
|
|
91
|
-
//# sourceMappingURL=sync.d.ts.map
|
|
60
|
+
//# sourceMappingURL=file-sync.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-sync.d.ts","sourceRoot":"","sources":["../../../src/adapters/sync/file-sync.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAItC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAMlD,MAAM,WAAW,eAAe;IAC9B,uDAAuD;IACvD,KAAK,EAAE,MAAM,CAAC;IACd,+CAA+C;IAC/C,OAAO,EAAE,MAAM,CAAC;IAChB,wCAAwC;IACxC,WAAW,EAAE,MAAM,CAAC;IACpB,gDAAgD;IAChD,OAAO,EAAE,eAAe,CAAC;IACzB,wEAAwE;IACxE,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,MAAM,SAAS,GACjB;IACE,IAAI,EAAE,mBAAmB,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,YAAY,GAAG,YAAY,GAAG,aAAa,CAAC;CACvD,GACD;IACE,IAAI,EAAE,oBAAoB,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;CACvB,GACD;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,CAAC;AAQnE,qBAAa,QAAQ;IAUP,OAAO,CAAC,OAAO;IAT3B,OAAO,CAAC,cAAc,CAA6B;IACnD,OAAO,CAAC,cAAc,CAA6B;IACnD,OAAO,CAAC,iBAAiB,CAA6B;IACtD,OAAO,CAAC,qBAAqB,CAAS;IACtC,OAAO,CAAC,sBAAsB,CAAS;IACvC,OAAO,CAAC,UAAU,CAA+C;IAEjE,QAAQ,CAAC,UAAU,wBAAsB;gBAErB,OAAO,EAAE,eAAe;IAI5C;;;OAGG;IACG,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAoBnC;;OAEG;IACG,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBrD,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,SAAS;IAUjB,OAAO,CAAC,eAAe;IAYvB,OAAO,CAAC,aAAa;IAQrB,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,KAAK;IAMb,OAAO,CAAC,eAAe;YA4DT,eAAe;IAiF7B,OAAO,CAAC,mBAAmB;IAgE3B,OAAO,CAAC,gBAAgB;CAsEzB"}
|
|
@@ -20,10 +20,10 @@ export class FileSync {
|
|
|
20
20
|
constructor(options) {
|
|
21
21
|
this.options = options;
|
|
22
22
|
}
|
|
23
|
-
//
|
|
23
|
+
// -- Public API -----------------------------------------------------------
|
|
24
24
|
/**
|
|
25
25
|
* Initialize the shared sync channel.
|
|
26
|
-
* Runs startup sync, starts
|
|
26
|
+
* Runs startup sync, starts remote listener, and starts file watcher.
|
|
27
27
|
*/
|
|
28
28
|
async initFileSync() {
|
|
29
29
|
if (this.sharedSyncInitialized)
|
|
@@ -38,7 +38,7 @@ export class FileSync {
|
|
|
38
38
|
console.log(`[file-sync:shared] Initializing with ${patterns.length} pattern(s)`);
|
|
39
39
|
this.startPurgeTimer();
|
|
40
40
|
await this.initStartupSync(patterns, this.options.ownerId, "shared");
|
|
41
|
-
this.
|
|
41
|
+
this.startRemoteListener(patterns, this.options.ownerId, "shared");
|
|
42
42
|
this.startFileWatcher(patterns, this.options.ownerId, "shared");
|
|
43
43
|
}
|
|
44
44
|
/**
|
|
@@ -56,10 +56,10 @@ export class FileSync {
|
|
|
56
56
|
}
|
|
57
57
|
console.log(`[file-sync:private] Initializing private sync for user ${userUid.slice(0, 8)}...`);
|
|
58
58
|
await this.initStartupSync(patterns, userUid, "private");
|
|
59
|
-
this.
|
|
59
|
+
this.startRemoteListener(patterns, userUid, "private");
|
|
60
60
|
this.startFileWatcher(patterns, userUid, "private");
|
|
61
61
|
}
|
|
62
|
-
//
|
|
62
|
+
// -- Private helpers ------------------------------------------------------
|
|
63
63
|
emitSyncEvent(event) {
|
|
64
64
|
this.syncEvents.emit("sync", event);
|
|
65
65
|
}
|
|
@@ -106,10 +106,7 @@ export class FileSync {
|
|
|
106
106
|
docId(filePath) {
|
|
107
107
|
return getDocId(this.options.appId, filePath);
|
|
108
108
|
}
|
|
109
|
-
|
|
110
|
-
return this.options.getFileCollection();
|
|
111
|
-
}
|
|
112
|
-
// ── Conflict resolution ─────────────────────────────────────────────
|
|
109
|
+
// -- Conflict resolution --------------------------------------------------
|
|
113
110
|
resolveConflict(filePath, absPath, localContent, remoteContent, ownerId) {
|
|
114
111
|
const base = this.lastSyncedContent.get(filePath);
|
|
115
112
|
if (base !== undefined) {
|
|
@@ -117,15 +114,14 @@ export class FileSync {
|
|
|
117
114
|
if (result.success && result.merged !== null) {
|
|
118
115
|
this.writeSyncedFile(filePath, absPath, result.merged);
|
|
119
116
|
const now = Date.now();
|
|
120
|
-
this.
|
|
121
|
-
.
|
|
122
|
-
.set({
|
|
117
|
+
this.options.adapter
|
|
118
|
+
.set(this.docId(filePath), {
|
|
123
119
|
path: filePath,
|
|
124
120
|
content: result.merged,
|
|
125
121
|
app: this.options.appId,
|
|
126
122
|
ownerId,
|
|
127
123
|
lastUpdated: now,
|
|
128
|
-
}
|
|
124
|
+
})
|
|
129
125
|
.then(() => this.markRecent(this.recentlyPushed, filePath))
|
|
130
126
|
.catch((err) => console.error(`[file-sync] Failed to push merged ${filePath}:`, err));
|
|
131
127
|
this.emitSyncEvent({
|
|
@@ -137,7 +133,7 @@ export class FileSync {
|
|
|
137
133
|
return;
|
|
138
134
|
}
|
|
139
135
|
}
|
|
140
|
-
// Auto-merge failed or no base
|
|
136
|
+
// Auto-merge failed or no base -- write .conflict sidecar
|
|
141
137
|
const conflictPath = absPath + ".conflict";
|
|
142
138
|
fs.writeFileSync(conflictPath, remoteContent, "utf-8");
|
|
143
139
|
console.log(`[file-sync] conflict in ${filePath} - wrote ${filePath}.conflict`);
|
|
@@ -153,68 +149,63 @@ export class FileSync {
|
|
|
153
149
|
remoteSnippet: remoteContent.slice(0, 500),
|
|
154
150
|
});
|
|
155
151
|
}
|
|
156
|
-
//
|
|
152
|
+
// -- Startup sync ---------------------------------------------------------
|
|
157
153
|
async initStartupSync(patterns, ownerId, label) {
|
|
158
154
|
if (patterns.length === 0)
|
|
159
155
|
return;
|
|
160
156
|
console.log(`[file-sync:${label}] Running full startup sync...`);
|
|
161
|
-
const
|
|
162
|
-
.where("app", "==", this.options.appId)
|
|
163
|
-
.where("ownerId", "==", ownerId);
|
|
164
|
-
const snapshot = await baseQuery.get();
|
|
157
|
+
const rows = await this.options.adapter.query(this.options.appId, ownerId);
|
|
165
158
|
const docsByPath = new Map();
|
|
166
159
|
const orphanedDocIds = [];
|
|
167
|
-
for (const
|
|
168
|
-
const filePath =
|
|
160
|
+
for (const row of rows) {
|
|
161
|
+
const filePath = row.data.path;
|
|
169
162
|
const canonicalId = this.docId(filePath);
|
|
170
|
-
if (
|
|
171
|
-
orphanedDocIds.push(
|
|
163
|
+
if (row.id !== canonicalId) {
|
|
164
|
+
orphanedDocIds.push(row.id);
|
|
172
165
|
continue;
|
|
173
166
|
}
|
|
174
|
-
docsByPath.set(filePath,
|
|
167
|
+
docsByPath.set(filePath, row);
|
|
175
168
|
}
|
|
176
169
|
if (orphanedDocIds.length > 0) {
|
|
177
170
|
console.log(`[file-sync:${label}] Cleaning up ${orphanedDocIds.length} orphaned doc(s)...`);
|
|
178
171
|
for (const id of orphanedDocIds) {
|
|
179
|
-
await this.
|
|
172
|
+
await this.options.adapter.delete(id).catch(() => { });
|
|
180
173
|
}
|
|
181
174
|
}
|
|
182
175
|
const projectRoot = path.resolve(this.options.contentRoot, "..");
|
|
183
176
|
let syncedCount = 0;
|
|
184
|
-
for (const [filePath,
|
|
185
|
-
const data =
|
|
177
|
+
for (const [filePath, row] of docsByPath) {
|
|
178
|
+
const data = row.data;
|
|
186
179
|
if (!shouldSyncFile(filePath, patterns))
|
|
187
180
|
continue;
|
|
188
181
|
const absPath = path.resolve(projectRoot, filePath);
|
|
189
|
-
const
|
|
182
|
+
const remoteContent = data.content ?? "";
|
|
190
183
|
const localContent = this.readLocalFile(absPath);
|
|
191
184
|
if (localContent === null) {
|
|
192
|
-
this.writeSyncedFile(filePath, absPath,
|
|
185
|
+
this.writeSyncedFile(filePath, absPath, remoteContent);
|
|
193
186
|
syncedCount++;
|
|
194
187
|
}
|
|
195
|
-
else if (localContent !==
|
|
196
|
-
const
|
|
188
|
+
else if (localContent !== remoteContent) {
|
|
189
|
+
const remoteMs = data.lastUpdated ?? 0;
|
|
197
190
|
let localMs = 0;
|
|
198
191
|
try {
|
|
199
192
|
localMs = fs.statSync(absPath).mtimeMs;
|
|
200
193
|
}
|
|
201
194
|
catch { }
|
|
202
|
-
if (
|
|
203
|
-
this.writeSyncedFile(filePath, absPath,
|
|
195
|
+
if (remoteMs > localMs) {
|
|
196
|
+
this.writeSyncedFile(filePath, absPath, remoteContent);
|
|
204
197
|
syncedCount++;
|
|
205
198
|
}
|
|
206
199
|
else {
|
|
207
200
|
const now = Date.now();
|
|
208
|
-
await this.
|
|
209
|
-
.doc(this.docId(filePath))
|
|
210
|
-
.set({
|
|
201
|
+
await this.options.adapter.set(this.docId(filePath), {
|
|
211
202
|
path: filePath,
|
|
212
203
|
content: localContent,
|
|
213
204
|
app: this.options.appId,
|
|
214
205
|
ownerId,
|
|
215
206
|
lastUpdated: now,
|
|
216
207
|
createdAt: data.createdAt ?? now,
|
|
217
|
-
}
|
|
208
|
+
});
|
|
218
209
|
this.lastSyncedContent.set(filePath, localContent);
|
|
219
210
|
this.markRecent(this.recentlyPushed, filePath);
|
|
220
211
|
syncedCount++;
|
|
@@ -226,23 +217,20 @@ export class FileSync {
|
|
|
226
217
|
}
|
|
227
218
|
console.log(`[file-sync:${label}] Startup sync complete - ${syncedCount} file(s) synced`);
|
|
228
219
|
}
|
|
229
|
-
//
|
|
230
|
-
|
|
220
|
+
// -- Remote -> disk listener ----------------------------------------------
|
|
221
|
+
startRemoteListener(patterns, ownerId, label) {
|
|
231
222
|
if (patterns.length === 0)
|
|
232
223
|
return;
|
|
233
|
-
console.log(`[file-sync:${label}] Listening for
|
|
224
|
+
console.log(`[file-sync:${label}] Listening for remote changes...`);
|
|
234
225
|
const projectRoot = path.resolve(this.options.contentRoot, "..");
|
|
235
|
-
this.
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
.onSnapshot((snapshot) => {
|
|
239
|
-
for (const change of snapshot.docChanges()) {
|
|
240
|
-
const data = change.doc.data();
|
|
226
|
+
this.options.adapter.subscribe(this.options.appId, ownerId, (changes) => {
|
|
227
|
+
for (const change of changes) {
|
|
228
|
+
const data = change.data;
|
|
241
229
|
const filePath = data.path;
|
|
242
230
|
if (!shouldSyncFile(filePath, patterns))
|
|
243
231
|
continue;
|
|
244
232
|
if (change.type === "added" || change.type === "modified") {
|
|
245
|
-
if (change.
|
|
233
|
+
if (change.id !== this.docId(filePath))
|
|
246
234
|
continue;
|
|
247
235
|
if (this.wasRecent(this.recentlyPushed, filePath))
|
|
248
236
|
continue;
|
|
@@ -274,10 +262,10 @@ export class FileSync {
|
|
|
274
262
|
}
|
|
275
263
|
}
|
|
276
264
|
}, (err) => {
|
|
277
|
-
console.error(`[file-sync:${label}]
|
|
265
|
+
console.error(`[file-sync:${label}] Remote listener error:`, err);
|
|
278
266
|
});
|
|
279
267
|
}
|
|
280
|
-
//
|
|
268
|
+
// -- Disk -> remote watcher -----------------------------------------------
|
|
281
269
|
startFileWatcher(patterns, ownerId, label) {
|
|
282
270
|
if (patterns.length === 0)
|
|
283
271
|
return;
|
|
@@ -295,9 +283,8 @@ export class FileSync {
|
|
|
295
283
|
const content = this.readLocalFile(absPath);
|
|
296
284
|
if (content === null)
|
|
297
285
|
return;
|
|
298
|
-
const
|
|
299
|
-
|
|
300
|
-
if (existing.exists && existing.data()?.content === content)
|
|
286
|
+
const existing = await this.options.adapter.get(this.docId(relPath));
|
|
287
|
+
if (existing && existing.data?.content === content)
|
|
301
288
|
return;
|
|
302
289
|
const now = Date.now();
|
|
303
290
|
const payload = {
|
|
@@ -307,11 +294,11 @@ export class FileSync {
|
|
|
307
294
|
ownerId,
|
|
308
295
|
lastUpdated: now,
|
|
309
296
|
};
|
|
310
|
-
if (!existing
|
|
297
|
+
if (!existing) {
|
|
311
298
|
payload.createdAt = now;
|
|
312
299
|
}
|
|
313
|
-
|
|
314
|
-
.set(
|
|
300
|
+
this.options.adapter
|
|
301
|
+
.set(this.docId(relPath), payload)
|
|
315
302
|
.then(() => {
|
|
316
303
|
this.lastSyncedContent.set(relPath, content);
|
|
317
304
|
this.markRecent(this.recentlyPushed, relPath);
|
|
@@ -323,9 +310,8 @@ export class FileSync {
|
|
|
323
310
|
const relPath = path.relative(projectRoot, absPath);
|
|
324
311
|
if (!shouldSyncFile(relPath, patterns))
|
|
325
312
|
return;
|
|
326
|
-
this.
|
|
327
|
-
.
|
|
328
|
-
.delete()
|
|
313
|
+
this.options.adapter
|
|
314
|
+
.delete(this.docId(relPath))
|
|
329
315
|
.then(() => {
|
|
330
316
|
this.lastSyncedContent.delete(relPath);
|
|
331
317
|
console.log(`[file-sync:${label}] -> deleted ${relPath}`);
|
|
@@ -337,4 +323,4 @@ export class FileSync {
|
|
|
337
323
|
watcher.on("unlink", handleDelete);
|
|
338
324
|
}
|
|
339
325
|
}
|
|
340
|
-
//# sourceMappingURL=sync.js.map
|
|
326
|
+
//# sourceMappingURL=file-sync.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-sync.js","sourceRoot":"","sources":["../../../src/adapters/sync/file-sync.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { FileSync, type FileSyncOptions, type SyncEvent } from "./file-sync.js";
|
|
2
|
+
export { threeWayMerge, type MergeResult } from "./merge.js";
|
|
3
|
+
export { loadSyncConfig, shouldSyncFile, getDocId, type SyncConfig } from "./config.js";
|
|
4
|
+
export type { FileSyncAdapter, FileRecord, FileChange, Unsubscribe } from "./types.js";
|
|
5
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/adapters/sync/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,KAAK,eAAe,EAAE,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChF,OAAO,EAAE,aAAa,EAAE,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,QAAQ,EAAE,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AACxF,YAAY,EAAE,eAAe,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/adapters/sync/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAwC,MAAM,gBAAgB,CAAC;AAChF,OAAO,EAAE,aAAa,EAAoB,MAAM,YAAY,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,QAAQ,EAAmB,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"merge.d.ts","sourceRoot":"","sources":["../../../src/adapters/sync/merge.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GACb,WAAW,CAiCb"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"merge.js","sourceRoot":"","sources":["../../../src/adapters/sync/merge.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export interface FileRecord {
|
|
2
|
+
path: string;
|
|
3
|
+
content: string;
|
|
4
|
+
app: string;
|
|
5
|
+
ownerId: string;
|
|
6
|
+
lastUpdated: number;
|
|
7
|
+
createdAt?: number;
|
|
8
|
+
}
|
|
9
|
+
export interface FileChange {
|
|
10
|
+
type: "added" | "modified" | "removed";
|
|
11
|
+
id: string;
|
|
12
|
+
data: FileRecord;
|
|
13
|
+
}
|
|
14
|
+
export type Unsubscribe = () => void;
|
|
15
|
+
export interface FileSyncAdapter {
|
|
16
|
+
query(appId: string, ownerId: string): Promise<{
|
|
17
|
+
id: string;
|
|
18
|
+
data: FileRecord;
|
|
19
|
+
}[]>;
|
|
20
|
+
get(id: string): Promise<{
|
|
21
|
+
id: string;
|
|
22
|
+
data: FileRecord;
|
|
23
|
+
} | null>;
|
|
24
|
+
set(id: string, record: Partial<FileRecord>): Promise<void>;
|
|
25
|
+
delete(id: string): Promise<void>;
|
|
26
|
+
subscribe(appId: string, ownerId: string, onChange: (changes: FileChange[]) => void, onError: (error: any) => void): Unsubscribe;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/adapters/sync/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,OAAO,GAAG,UAAU,GAAG,SAAS,CAAC;IACvC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,UAAU,CAAC;CAClB;AAED,MAAM,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC;AAErC,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,UAAU,CAAA;KAAE,EAAE,CAAC,CAAC;IACnF,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,UAAU,CAAA;KAAE,GAAG,IAAI,CAAC,CAAC;IAClE,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5D,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClC,SAAS,CACP,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,KAAK,IAAI,EACzC,OAAO,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,GAC5B,WAAW,CAAC;CAChB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/adapters/sync/types.ts"],"names":[],"mappings":""}
|
package/dist/cli/create.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../src/cli/create.ts"],"names":[],"mappings":"AAQA;;GAEG;AACH,wBAAgB,SAAS,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../src/cli/create.ts"],"names":[],"mappings":"AAQA;;GAEG;AACH,wBAAgB,SAAS,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAuG7C"}
|
package/dist/cli/create.js
CHANGED
|
@@ -63,6 +63,23 @@ export function createApp(name) {
|
|
|
63
63
|
if (fs.existsSync(gitignoreSrc)) {
|
|
64
64
|
fs.renameSync(gitignoreSrc, gitignoreDst);
|
|
65
65
|
}
|
|
66
|
+
// Ensure .claude/skills -> .agents/skills symlink exists for Claude Code discovery.
|
|
67
|
+
// The template includes this symlink tracked in git, but recreate it as a safety net
|
|
68
|
+
// (e.g. if git didn't preserve the symlink on Windows).
|
|
69
|
+
const agentsSkills = path.join(targetDir, ".agents", "skills");
|
|
70
|
+
const claudeDir = path.join(targetDir, ".claude");
|
|
71
|
+
const claudeSkills = path.join(claudeDir, "skills");
|
|
72
|
+
if (fs.existsSync(agentsSkills) && !fs.existsSync(claudeSkills)) {
|
|
73
|
+
fs.mkdirSync(claudeDir, { recursive: true });
|
|
74
|
+
const rel = path.relative(claudeDir, agentsSkills);
|
|
75
|
+
const type = process.platform === "win32" ? "junction" : "dir";
|
|
76
|
+
try {
|
|
77
|
+
fs.symlinkSync(rel, claudeSkills, type);
|
|
78
|
+
}
|
|
79
|
+
catch {
|
|
80
|
+
copyDir(agentsSkills, claudeSkills);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
66
83
|
console.log(`\nDone! Created ${name} at ${targetDir}\n`);
|
|
67
84
|
console.log(`Next steps:`);
|
|
68
85
|
console.log(` cd ${name}`);
|
|
@@ -70,14 +87,35 @@ export function createApp(name) {
|
|
|
70
87
|
console.log(` pnpm dev # Start dev server at http://localhost:8080`);
|
|
71
88
|
console.log(` pnpm build # Build for production`);
|
|
72
89
|
console.log(` pnpm start # Start production server`);
|
|
90
|
+
console.log(``);
|
|
91
|
+
console.log(`Your app includes agent skills in .agents/skills/.`);
|
|
92
|
+
console.log(`These teach the AI agent how to work within the framework's architecture.`);
|
|
73
93
|
}
|
|
74
|
-
function copyDir(src, dest) {
|
|
94
|
+
function copyDir(src, dest, root) {
|
|
95
|
+
const resolvedRoot = root ?? path.resolve(src);
|
|
75
96
|
fs.mkdirSync(dest, { recursive: true });
|
|
76
97
|
for (const entry of fs.readdirSync(src, { withFileTypes: true })) {
|
|
77
98
|
const srcPath = path.join(src, entry.name);
|
|
78
99
|
const destPath = path.join(dest, entry.name);
|
|
79
|
-
if (entry.
|
|
80
|
-
|
|
100
|
+
if (entry.isSymbolicLink()) {
|
|
101
|
+
const target = fs.readlinkSync(srcPath);
|
|
102
|
+
// Resolve one level (path math only, no disk follow) to check
|
|
103
|
+
// whether the symlink stays inside the template tree.
|
|
104
|
+
const resolvedTarget = path.resolve(path.dirname(srcPath), target);
|
|
105
|
+
if (resolvedTarget.startsWith(resolvedRoot)) {
|
|
106
|
+
// Internal symlink (e.g. .claude/skills -> ../.agents/skills) — preserve it
|
|
107
|
+
fs.symlinkSync(target, destPath);
|
|
108
|
+
}
|
|
109
|
+
else if (fs.statSync(srcPath).isDirectory()) {
|
|
110
|
+
// External symlink to directory — dereference and copy contents
|
|
111
|
+
copyDir(srcPath, destPath, resolvedRoot);
|
|
112
|
+
}
|
|
113
|
+
else {
|
|
114
|
+
fs.copyFileSync(srcPath, destPath);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
else if (entry.isDirectory()) {
|
|
118
|
+
copyDir(srcPath, destPath, resolvedRoot);
|
|
81
119
|
}
|
|
82
120
|
else {
|
|
83
121
|
fs.copyFileSync(srcPath, destPath);
|
package/dist/cli/create.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/cli/create.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/cli/create.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/index.js
CHANGED
|
@@ -2,6 +2,16 @@
|
|
|
2
2
|
import { execSync, spawn } from "child_process";
|
|
3
3
|
import path from "path";
|
|
4
4
|
import fs from "fs";
|
|
5
|
+
import { fileURLToPath } from "url";
|
|
6
|
+
// Resolve version once at module scope — used by both --version and --help
|
|
7
|
+
let _version = "unknown";
|
|
8
|
+
try {
|
|
9
|
+
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
10
|
+
// dist/cli/index.js → ../../package.json
|
|
11
|
+
const pkg = JSON.parse(fs.readFileSync(path.resolve(__dirname, "../../package.json"), "utf-8"));
|
|
12
|
+
_version = pkg.version;
|
|
13
|
+
}
|
|
14
|
+
catch { }
|
|
5
15
|
const command = process.argv[2];
|
|
6
16
|
// Filter out bare "--" separators that pnpm inserts between its args and script args
|
|
7
17
|
const args = process.argv.slice(3).filter((a) => a !== "--");
|
|
@@ -79,20 +89,13 @@ switch (command) {
|
|
|
79
89
|
}
|
|
80
90
|
case "--version":
|
|
81
91
|
case "-v": {
|
|
82
|
-
|
|
83
|
-
try {
|
|
84
|
-
const pkg = JSON.parse(fs.readFileSync(pkgPath, "utf-8"));
|
|
85
|
-
console.log(pkg.version);
|
|
86
|
-
}
|
|
87
|
-
catch {
|
|
88
|
-
console.log("unknown");
|
|
89
|
-
}
|
|
92
|
+
console.log(_version);
|
|
90
93
|
break;
|
|
91
94
|
}
|
|
92
95
|
case "--help":
|
|
93
96
|
case "-h":
|
|
94
97
|
case undefined:
|
|
95
|
-
console.log(`agent-native
|
|
98
|
+
console.log(`agent-native v${_version}
|
|
96
99
|
|
|
97
100
|
Usage:
|
|
98
101
|
agent-native dev Start development server
|
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
interface ApiKeySettingsProps {
|
|
2
|
+
/** Path to the settings page (used for linking). Default: "/settings" */
|
|
3
|
+
settingsPath?: string;
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* Reusable component that shows the status of configured API keys
|
|
7
|
+
* and lets users enter missing ones. Fetches from /api/env-status
|
|
8
|
+
* and saves via POST /api/env-vars.
|
|
9
|
+
*/
|
|
10
|
+
export declare function ApiKeySettings({ settingsPath: _settingsPath }: ApiKeySettingsProps): import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=ApiKeySettings.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ApiKeySettings.d.ts","sourceRoot":"","sources":["../../../src/client/components/ApiKeySettings.tsx"],"names":[],"mappings":"AASA,UAAU,mBAAmB;IAC3B,yEAAyE;IACzE,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,EAAE,YAAY,EAAE,aAA2B,EAAE,EAAE,mBAAmB,2CA+JhG"}
|