spidersan 0.5.0 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +46 -48
- package/README.md +241 -4
- package/dist/bin/spidersan.d.ts.map +1 -1
- package/dist/bin/spidersan.js +13 -1
- package/dist/bin/spidersan.js.map +1 -1
- package/dist/commands/abandon.d.ts.map +1 -1
- package/dist/commands/abandon.js +1 -9
- package/dist/commands/abandon.js.map +1 -1
- package/dist/commands/ai.d.ts +15 -0
- package/dist/commands/ai.d.ts.map +1 -0
- package/dist/commands/ai.js +498 -0
- package/dist/commands/ai.js.map +1 -0
- package/dist/commands/auto.d.ts.map +1 -1
- package/dist/commands/auto.js +2 -1
- package/dist/commands/auto.js.map +1 -1
- package/dist/commands/bot.d.ts +16 -0
- package/dist/commands/bot.d.ts.map +1 -0
- package/dist/commands/bot.js +398 -0
- package/dist/commands/bot.js.map +1 -0
- package/dist/commands/conflicts.d.ts.map +1 -1
- package/dist/commands/conflicts.js +264 -313
- package/dist/commands/conflicts.js.map +1 -1
- package/dist/commands/context.d.ts +8 -0
- package/dist/commands/context.d.ts.map +1 -0
- package/dist/commands/context.js +104 -0
- package/dist/commands/context.js.map +1 -0
- package/dist/commands/cross-conflicts.d.ts.map +1 -1
- package/dist/commands/cross-conflicts.js +1 -38
- package/dist/commands/cross-conflicts.js.map +1 -1
- package/dist/commands/depends.d.ts.map +1 -1
- package/dist/commands/depends.js +1 -9
- package/dist/commands/depends.js.map +1 -1
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +117 -59
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/fleet-status.d.ts +14 -0
- package/dist/commands/fleet-status.d.ts.map +1 -0
- package/dist/commands/fleet-status.js +127 -0
- package/dist/commands/fleet-status.js.map +1 -0
- package/dist/commands/git-watch.d.ts +24 -0
- package/dist/commands/git-watch.d.ts.map +1 -0
- package/dist/commands/git-watch.js +84 -0
- package/dist/commands/git-watch.js.map +1 -0
- package/dist/commands/index.d.ts +5 -0
- package/dist/commands/index.d.ts.map +1 -1
- package/dist/commands/index.js +7 -0
- package/dist/commands/index.js.map +1 -1
- package/dist/commands/merge-order.d.ts.map +1 -1
- package/dist/commands/merge-order.js +18 -67
- package/dist/commands/merge-order.js.map +1 -1
- package/dist/commands/merged.d.ts.map +1 -1
- package/dist/commands/merged.js +1 -9
- package/dist/commands/merged.js.map +1 -1
- package/dist/commands/pulse.d.ts.map +1 -1
- package/dist/commands/pulse.js +137 -74
- package/dist/commands/pulse.js.map +1 -1
- package/dist/commands/queen.d.ts.map +1 -1
- package/dist/commands/queen.js +36 -19
- package/dist/commands/queen.js.map +1 -1
- package/dist/commands/ready-check.d.ts +2 -1
- package/dist/commands/ready-check.d.ts.map +1 -1
- package/dist/commands/ready-check.js +6 -30
- package/dist/commands/ready-check.js.map +1 -1
- package/dist/commands/register.d.ts.map +1 -1
- package/dist/commands/register.js +7 -29
- package/dist/commands/register.js.map +1 -1
- package/dist/commands/stale.d.ts +1 -9
- package/dist/commands/stale.d.ts.map +1 -1
- package/dist/commands/stale.js +1 -42
- package/dist/commands/stale.js.map +1 -1
- package/dist/commands/torrent.d.ts.map +1 -1
- package/dist/commands/torrent.js +29 -18
- package/dist/commands/torrent.js.map +1 -1
- package/dist/commands/watch.d.ts.map +1 -1
- package/dist/commands/watch.js +13 -34
- package/dist/commands/watch.js.map +1 -1
- package/dist/lib/agent-errors.js +2 -2
- package/dist/lib/agent-errors.js.map +1 -1
- package/dist/lib/ai/context-builder.d.ts +16 -0
- package/dist/lib/ai/context-builder.d.ts.map +1 -0
- package/dist/lib/ai/context-builder.js +216 -0
- package/dist/lib/ai/context-builder.js.map +1 -0
- package/dist/lib/ai/event-handler.d.ts +21 -0
- package/dist/lib/ai/event-handler.d.ts.map +1 -0
- package/dist/lib/ai/event-handler.js +98 -0
- package/dist/lib/ai/event-handler.js.map +1 -0
- package/dist/lib/ai/index.d.ts +13 -0
- package/dist/lib/ai/index.d.ts.map +1 -0
- package/dist/lib/ai/index.js +11 -0
- package/dist/lib/ai/index.js.map +1 -0
- package/dist/lib/ai/llm-client.d.ts +37 -0
- package/dist/lib/ai/llm-client.d.ts.map +1 -0
- package/dist/lib/ai/llm-client.js +225 -0
- package/dist/lib/ai/llm-client.js.map +1 -0
- package/dist/lib/ai/reasoner.d.ts +11 -0
- package/dist/lib/ai/reasoner.d.ts.map +1 -0
- package/dist/lib/ai/reasoner.js +246 -0
- package/dist/lib/ai/reasoner.js.map +1 -0
- package/dist/lib/ai/setup.d.ts +40 -0
- package/dist/lib/ai/setup.d.ts.map +1 -0
- package/dist/lib/ai/setup.js +154 -0
- package/dist/lib/ai/setup.js.map +1 -0
- package/dist/lib/ai/types.d.ts +135 -0
- package/dist/lib/ai/types.d.ts.map +1 -0
- package/dist/lib/ai/types.js +39 -0
- package/dist/lib/ai/types.js.map +1 -0
- package/dist/lib/colony-subscriber.d.ts +15 -12
- package/dist/lib/colony-subscriber.d.ts.map +1 -1
- package/dist/lib/colony-subscriber.js +146 -65
- package/dist/lib/colony-subscriber.js.map +1 -1
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +18 -4
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/conflict-analyzer.d.ts +33 -0
- package/dist/lib/conflict-analyzer.d.ts.map +1 -0
- package/dist/lib/conflict-analyzer.js +114 -0
- package/dist/lib/conflict-analyzer.js.map +1 -0
- package/dist/lib/conflict-renderer.d.ts +7 -0
- package/dist/lib/conflict-renderer.d.ts.map +1 -0
- package/dist/lib/conflict-renderer.js +162 -0
- package/dist/lib/conflict-renderer.js.map +1 -0
- package/dist/lib/conflict-tier.d.ts +20 -0
- package/dist/lib/conflict-tier.d.ts.map +1 -0
- package/dist/lib/conflict-tier.js +49 -0
- package/dist/lib/conflict-tier.js.map +1 -0
- package/dist/lib/crypto.js +1 -1
- package/dist/lib/crypto.js.map +1 -1
- package/dist/lib/daily-bridge.d.ts.map +1 -1
- package/dist/lib/daily-bridge.js +3 -2
- package/dist/lib/daily-bridge.js.map +1 -1
- package/dist/lib/git-events-subscriber.d.ts +59 -0
- package/dist/lib/git-events-subscriber.d.ts.map +1 -0
- package/dist/lib/git-events-subscriber.js +779 -0
- package/dist/lib/git-events-subscriber.js.map +1 -0
- package/dist/lib/git.d.ts +15 -0
- package/dist/lib/git.d.ts.map +1 -0
- package/dist/lib/git.js +180 -0
- package/dist/lib/git.js.map +1 -0
- package/dist/lib/github.d.ts.map +1 -1
- package/dist/lib/github.js +14 -9
- package/dist/lib/github.js.map +1 -1
- package/dist/lib/graph.d.ts +23 -0
- package/dist/lib/graph.d.ts.map +1 -0
- package/dist/lib/graph.js +134 -0
- package/dist/lib/graph.js.map +1 -0
- package/dist/lib/hub.d.ts +31 -0
- package/dist/lib/hub.d.ts.map +1 -0
- package/dist/lib/hub.js +92 -0
- package/dist/lib/hub.js.map +1 -0
- package/dist/lib/regex-utils.d.ts +6 -0
- package/dist/lib/regex-utils.d.ts.map +1 -0
- package/dist/lib/regex-utils.js +24 -0
- package/dist/lib/regex-utils.js.map +1 -0
- package/dist/lib/remote-drift.d.ts +60 -0
- package/dist/lib/remote-drift.d.ts.map +1 -0
- package/dist/lib/remote-drift.js +225 -0
- package/dist/lib/remote-drift.js.map +1 -0
- package/dist/lib/repo-scanner.d.ts +0 -4
- package/dist/lib/repo-scanner.d.ts.map +1 -1
- package/dist/lib/repo-scanner.js +2 -1
- package/dist/lib/repo-scanner.js.map +1 -1
- package/dist/lib/salvage-analyzer.d.ts.map +1 -1
- package/dist/lib/salvage-analyzer.js +2 -3
- package/dist/lib/salvage-analyzer.js.map +1 -1
- package/dist/lib/security.d.ts +17 -0
- package/dist/lib/security.d.ts.map +1 -1
- package/dist/lib/security.js +34 -1
- package/dist/lib/security.js.map +1 -1
- package/dist/lib/session-logger.d.ts +54 -0
- package/dist/lib/session-logger.d.ts.map +1 -0
- package/dist/lib/session-logger.js +136 -0
- package/dist/lib/session-logger.js.map +1 -0
- package/dist/storage/adapter.d.ts +4 -0
- package/dist/storage/adapter.d.ts.map +1 -1
- package/dist/storage/branch-registry-store.d.ts +13 -0
- package/dist/storage/branch-registry-store.d.ts.map +1 -0
- package/dist/storage/branch-registry-store.js +2 -0
- package/dist/storage/branch-registry-store.js.map +1 -0
- package/dist/storage/factory.d.ts +4 -0
- package/dist/storage/factory.d.ts.map +1 -1
- package/dist/storage/factory.js +25 -9
- package/dist/storage/factory.js.map +1 -1
- package/dist/storage/index.d.ts +5 -5
- package/dist/storage/index.d.ts.map +1 -1
- package/dist/storage/index.js +5 -6
- package/dist/storage/index.js.map +1 -1
- package/dist/storage/json-branch-registry-store.d.ts +19 -0
- package/dist/storage/json-branch-registry-store.d.ts.map +1 -0
- package/dist/storage/json-branch-registry-store.js +112 -0
- package/dist/storage/json-branch-registry-store.js.map +1 -0
- package/dist/storage/local.d.ts +2 -6
- package/dist/storage/local.d.ts.map +1 -1
- package/dist/storage/local.js +13 -76
- package/dist/storage/local.js.map +1 -1
- package/dist/storage/memory-branch-registry-store.d.ts +16 -0
- package/dist/storage/memory-branch-registry-store.d.ts.map +1 -0
- package/dist/storage/memory-branch-registry-store.js +65 -0
- package/dist/storage/memory-branch-registry-store.js.map +1 -0
- package/dist/storage/mycmail-adapter.d.ts.map +1 -1
- package/dist/storage/mycmail-adapter.js +4 -6
- package/dist/storage/mycmail-adapter.js.map +1 -1
- package/dist/storage/supabase-registry-sync-client-impl.d.ts +46 -0
- package/dist/storage/supabase-registry-sync-client-impl.d.ts.map +1 -0
- package/dist/storage/supabase-registry-sync-client-impl.js +322 -0
- package/dist/storage/supabase-registry-sync-client-impl.js.map +1 -0
- package/dist/storage/supabase-registry-sync-client.d.ts +9 -0
- package/dist/storage/supabase-registry-sync-client.d.ts.map +1 -0
- package/dist/storage/supabase-registry-sync-client.js +2 -0
- package/dist/storage/supabase-registry-sync-client.js.map +1 -0
- package/dist/storage/supabase.d.ts +8 -46
- package/dist/storage/supabase.d.ts.map +1 -1
- package/dist/storage/supabase.js +30 -342
- package/dist/storage/supabase.js.map +1 -1
- package/dist/tui/screen.d.ts.map +1 -1
- package/dist/tui/screen.js +5 -3
- package/dist/tui/screen.js.map +1 -1
- package/package.json +1 -1
package/dist/storage/local.js
CHANGED
|
@@ -1,103 +1,40 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Local JSON Storage Adapter
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
* This is the default free-tier storage.
|
|
4
|
+
* Thin compatibility wrapper over JsonBranchRegistryStore.
|
|
6
5
|
*/
|
|
7
|
-
import {
|
|
8
|
-
import { existsSync } from 'fs';
|
|
9
|
-
import { join } from 'path';
|
|
10
|
-
const SPIDERSAN_DIR = '.spidersan';
|
|
11
|
-
const REGISTRY_FILE = 'registry.json';
|
|
12
|
-
const REGISTRY_VERSION = '1.0';
|
|
6
|
+
import { JsonBranchRegistryStore } from './json-branch-registry-store.js';
|
|
13
7
|
export class LocalStorage {
|
|
14
|
-
|
|
15
|
-
registryPath;
|
|
8
|
+
store;
|
|
16
9
|
constructor(basePath = process.cwd()) {
|
|
17
|
-
this.
|
|
18
|
-
this.registryPath = join(basePath, SPIDERSAN_DIR, REGISTRY_FILE);
|
|
10
|
+
this.store = new JsonBranchRegistryStore(basePath);
|
|
19
11
|
}
|
|
20
12
|
async init() {
|
|
21
|
-
|
|
22
|
-
if (!existsSync(dir)) {
|
|
23
|
-
await mkdir(dir, { recursive: true });
|
|
24
|
-
}
|
|
25
|
-
if (!existsSync(this.registryPath)) {
|
|
26
|
-
await this.save({ branches: {}, version: REGISTRY_VERSION });
|
|
27
|
-
}
|
|
13
|
+
await this.store.init();
|
|
28
14
|
}
|
|
29
15
|
async isInitialized() {
|
|
30
|
-
return
|
|
31
|
-
}
|
|
32
|
-
async load() {
|
|
33
|
-
try {
|
|
34
|
-
const data = await readFile(this.registryPath, 'utf-8');
|
|
35
|
-
return JSON.parse(data);
|
|
36
|
-
}
|
|
37
|
-
catch {
|
|
38
|
-
return { branches: {}, version: REGISTRY_VERSION };
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
async save(registry) {
|
|
42
|
-
await writeFile(this.registryPath, JSON.stringify(registry, null, 2));
|
|
16
|
+
return this.store.isInitialized();
|
|
43
17
|
}
|
|
44
18
|
async list() {
|
|
45
|
-
|
|
46
|
-
return Object.values(registry.branches);
|
|
19
|
+
return this.store.list();
|
|
47
20
|
}
|
|
48
21
|
async register(branch) {
|
|
49
|
-
|
|
50
|
-
const newBranch = {
|
|
51
|
-
...branch,
|
|
52
|
-
registeredAt: new Date(),
|
|
53
|
-
};
|
|
54
|
-
registry.branches[branch.name] = newBranch;
|
|
55
|
-
await this.save(registry);
|
|
56
|
-
return newBranch;
|
|
22
|
+
return this.store.register(branch);
|
|
57
23
|
}
|
|
58
24
|
async update(name, updates) {
|
|
59
|
-
|
|
60
|
-
if (!registry.branches[name])
|
|
61
|
-
return null;
|
|
62
|
-
registry.branches[name] = {
|
|
63
|
-
...registry.branches[name],
|
|
64
|
-
...updates,
|
|
65
|
-
name, // ensure name doesn't change
|
|
66
|
-
};
|
|
67
|
-
await this.save(registry);
|
|
68
|
-
return registry.branches[name];
|
|
25
|
+
return this.store.update(name, updates);
|
|
69
26
|
}
|
|
70
27
|
async unregister(name) {
|
|
71
|
-
|
|
72
|
-
if (!registry.branches[name])
|
|
73
|
-
return false;
|
|
74
|
-
delete registry.branches[name];
|
|
75
|
-
await this.save(registry);
|
|
76
|
-
return true;
|
|
28
|
+
return this.store.unregister(name);
|
|
77
29
|
}
|
|
78
30
|
async get(name) {
|
|
79
|
-
|
|
80
|
-
return registry.branches[name] || null;
|
|
31
|
+
return this.store.get(name);
|
|
81
32
|
}
|
|
82
33
|
async findByFiles(files) {
|
|
83
|
-
|
|
84
|
-
// Performance: Convert array to Set outside the loop to reduce O(N*M) to O(N+M)
|
|
85
|
-
const fileSet = new Set(files);
|
|
86
|
-
return branches.filter(branch => branch.files.some(file => fileSet.has(file)));
|
|
34
|
+
return this.store.findByFiles(files);
|
|
87
35
|
}
|
|
88
36
|
async cleanup(olderThan) {
|
|
89
|
-
|
|
90
|
-
const removedNames = [];
|
|
91
|
-
for (const [name, branch] of Object.entries(registry.branches)) {
|
|
92
|
-
if (new Date(branch.registeredAt) < olderThan) {
|
|
93
|
-
delete registry.branches[name];
|
|
94
|
-
removedNames.push(name);
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
if (removedNames.length > 0) {
|
|
98
|
-
await this.save(registry);
|
|
99
|
-
}
|
|
100
|
-
return removedNames;
|
|
37
|
+
return this.store.cleanup(olderThan);
|
|
101
38
|
}
|
|
102
39
|
}
|
|
103
40
|
//# sourceMappingURL=local.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local.js","sourceRoot":"","sources":["../../src/storage/local.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"local.js","sourceRoot":"","sources":["../../src/storage/local.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAE1E,MAAM,OAAO,YAAY;IACb,KAAK,CAA0B;IAEvC,YAAY,WAAmB,OAAO,CAAC,GAAG,EAAE;QACxC,IAAI,CAAC,KAAK,GAAG,IAAI,uBAAuB,CAAC,QAAQ,CAAC,CAAC;IACvD,CAAC;IAED,KAAK,CAAC,IAAI;QACN,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,aAAa;QACf,OAAO,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,MAAoC;QAC/C,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAY,EAAE,OAAwB;QAC/C,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,IAAY;QACzB,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,IAAY;QAClB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,KAAe;QAC7B,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,SAAe;QACzB,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACzC,CAAC;CACJ"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { Branch } from './adapter.js';
|
|
2
|
+
import type { BranchRegistryStore } from './branch-registry-store.js';
|
|
3
|
+
export declare class MemoryBranchRegistryStore implements BranchRegistryStore {
|
|
4
|
+
private initialized;
|
|
5
|
+
private branches;
|
|
6
|
+
init(): Promise<void>;
|
|
7
|
+
isInitialized(): Promise<boolean>;
|
|
8
|
+
list(): Promise<Branch[]>;
|
|
9
|
+
register(branch: Omit<Branch, 'registeredAt'>): Promise<Branch>;
|
|
10
|
+
update(name: string, updates: Partial<Branch>): Promise<Branch | null>;
|
|
11
|
+
unregister(name: string): Promise<boolean>;
|
|
12
|
+
get(name: string): Promise<Branch | null>;
|
|
13
|
+
findByFiles(files: string[]): Promise<Branch[]>;
|
|
14
|
+
cleanup(olderThan: Date): Promise<string[]>;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=memory-branch-registry-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory-branch-registry-store.d.ts","sourceRoot":"","sources":["../../src/storage/memory-branch-registry-store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAUtE,qBAAa,yBAA0B,YAAW,mBAAmB;IACjE,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,QAAQ,CAA6B;IAEvC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAIrB,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC;IAIjC,IAAI,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAIzB,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAS/D,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAetE,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAI1C,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAKzC,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAO/C,OAAO,CAAC,SAAS,EAAE,IAAI,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;CAUpD"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
function cloneBranch(branch) {
|
|
2
|
+
return {
|
|
3
|
+
...branch,
|
|
4
|
+
files: [...branch.files],
|
|
5
|
+
registeredAt: new Date(branch.registeredAt),
|
|
6
|
+
};
|
|
7
|
+
}
|
|
8
|
+
export class MemoryBranchRegistryStore {
|
|
9
|
+
initialized = false;
|
|
10
|
+
branches = new Map();
|
|
11
|
+
async init() {
|
|
12
|
+
this.initialized = true;
|
|
13
|
+
}
|
|
14
|
+
async isInitialized() {
|
|
15
|
+
return this.initialized;
|
|
16
|
+
}
|
|
17
|
+
async list() {
|
|
18
|
+
return Array.from(this.branches.values()).map(cloneBranch);
|
|
19
|
+
}
|
|
20
|
+
async register(branch) {
|
|
21
|
+
const created = {
|
|
22
|
+
...branch,
|
|
23
|
+
registeredAt: new Date(),
|
|
24
|
+
};
|
|
25
|
+
this.branches.set(branch.name, created);
|
|
26
|
+
return cloneBranch(created);
|
|
27
|
+
}
|
|
28
|
+
async update(name, updates) {
|
|
29
|
+
const existing = this.branches.get(name);
|
|
30
|
+
if (!existing) {
|
|
31
|
+
return null;
|
|
32
|
+
}
|
|
33
|
+
const updated = {
|
|
34
|
+
...existing,
|
|
35
|
+
...updates,
|
|
36
|
+
name,
|
|
37
|
+
};
|
|
38
|
+
this.branches.set(name, updated);
|
|
39
|
+
return cloneBranch(updated);
|
|
40
|
+
}
|
|
41
|
+
async unregister(name) {
|
|
42
|
+
return this.branches.delete(name);
|
|
43
|
+
}
|
|
44
|
+
async get(name) {
|
|
45
|
+
const branch = this.branches.get(name);
|
|
46
|
+
return branch ? cloneBranch(branch) : null;
|
|
47
|
+
}
|
|
48
|
+
async findByFiles(files) {
|
|
49
|
+
const fileSet = new Set(files);
|
|
50
|
+
return Array.from(this.branches.values())
|
|
51
|
+
.filter((branch) => branch.files.some((file) => fileSet.has(file)))
|
|
52
|
+
.map(cloneBranch);
|
|
53
|
+
}
|
|
54
|
+
async cleanup(olderThan) {
|
|
55
|
+
const removed = [];
|
|
56
|
+
for (const [name, branch] of this.branches.entries()) {
|
|
57
|
+
if (branch.registeredAt < olderThan) {
|
|
58
|
+
this.branches.delete(name);
|
|
59
|
+
removed.push(name);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
return removed;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=memory-branch-registry-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory-branch-registry-store.js","sourceRoot":"","sources":["../../src/storage/memory-branch-registry-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mycmail-adapter.d.ts","sourceRoot":"","sources":["../../src/storage/mycmail-adapter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EACR,qBAAqB,EACrB,OAAO,EACP,gBAAgB,EAChB,YAAY,EACZ,UAAU,EAEb,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"mycmail-adapter.d.ts","sourceRoot":"","sources":["../../src/storage/mycmail-adapter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EACR,qBAAqB,EACrB,OAAO,EACP,gBAAgB,EAChB,YAAY,EACZ,UAAU,EAEb,MAAM,sBAAsB,CAAC;AAa9B,qBAAa,cAAe,YAAW,qBAAqB;IACxD,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,gBAAgB,CAAwB;IAChD,OAAO,CAAC,iBAAiB,CAAwB;gBAErC,OAAO,CAAC,EAAE,MAAM;IAK5B,OAAO,IAAI,MAAM;IAIjB,WAAW,IAAI,MAAM;IAIrB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAe1B;;OAEG;YACW,mBAAmB;IA6B3B,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAO/B,SAAS,IAAI,OAAO,CAAC,UAAU,CAAC;IAqCtC;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAgBzB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA0ClB,IAAI,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;IA6C/C,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAsDtE,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IA2ChD,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAKtD"}
|
|
@@ -14,10 +14,6 @@ function validateAgentId(agentId) {
|
|
|
14
14
|
}
|
|
15
15
|
return agentId;
|
|
16
16
|
}
|
|
17
|
-
function sanitizeText(text) {
|
|
18
|
-
// Remove shell metacharacters but allow normal text
|
|
19
|
-
return text.replace(/[`$(){}[\]|;&<>]/g, '');
|
|
20
|
-
}
|
|
21
17
|
export class MycmailAdapter {
|
|
22
18
|
agentId;
|
|
23
19
|
mycmailAvailable = null;
|
|
@@ -176,9 +172,11 @@ export class MycmailAdapter {
|
|
|
176
172
|
async send(input) {
|
|
177
173
|
const safeFrom = validateAgentId(input.from);
|
|
178
174
|
const safeTo = validateAgentId(input.to);
|
|
179
|
-
|
|
175
|
+
// Security Pattern: Subject and body are passed via argument arrays in spawnSync,
|
|
176
|
+
// safely preventing shell injection while preserving data integrity
|
|
177
|
+
const safeSubject = input.subject;
|
|
180
178
|
const fullMessage = this.formatMessageBody(input);
|
|
181
|
-
const safeMessage =
|
|
179
|
+
const safeMessage = fullMessage;
|
|
182
180
|
const args = ['send', safeTo, safeSubject, '--message', safeMessage];
|
|
183
181
|
if (input.encrypted) {
|
|
184
182
|
args.push('--encrypt');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mycmail-adapter.js","sourceRoot":"","sources":["../../src/storage/mycmail-adapter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AASxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEzD,6BAA6B;AAC7B,MAAM,cAAc,GAAG,6BAA6B,CAAC;AAErD,SAAS,eAAe,CAAC,OAAe;IACpC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,sBAAsB,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,yCAAyC,CAAC,CAAC;IACzG,CAAC;IACD,OAAO,OAAO,CAAC;AACnB,CAAC;AAED,
|
|
1
|
+
{"version":3,"file":"mycmail-adapter.js","sourceRoot":"","sources":["../../src/storage/mycmail-adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import type { Branch } from './adapter.js';
|
|
2
|
+
import type { SupabaseRegistrySyncClient } from './supabase-registry-sync-client.js';
|
|
3
|
+
import type { CrossMachineConflict, MachineIdentity, MachineRegistryView, RegistryStatus, RegistrySyncResult } from '../types/cloud.js';
|
|
4
|
+
export interface SupabaseRegistrySyncClientConfig {
|
|
5
|
+
url: string;
|
|
6
|
+
key: string;
|
|
7
|
+
projectId?: string;
|
|
8
|
+
fetchFn?: typeof fetch;
|
|
9
|
+
}
|
|
10
|
+
export interface SupabaseBranchRow {
|
|
11
|
+
id: string;
|
|
12
|
+
branch_name: string;
|
|
13
|
+
created_by_session: string | null;
|
|
14
|
+
created_by_agent: string | null;
|
|
15
|
+
parent_branch: string;
|
|
16
|
+
state: string;
|
|
17
|
+
depends_on: string[] | null;
|
|
18
|
+
conflict_with: string[] | null;
|
|
19
|
+
files_changed: string[] | null;
|
|
20
|
+
description: string | null;
|
|
21
|
+
pr_number: number | null;
|
|
22
|
+
created_at: string;
|
|
23
|
+
updated_at: string;
|
|
24
|
+
}
|
|
25
|
+
export declare class SupabaseRegistrySyncClientImpl implements SupabaseRegistrySyncClient {
|
|
26
|
+
private url;
|
|
27
|
+
private key;
|
|
28
|
+
private projectId;
|
|
29
|
+
private fetchFn;
|
|
30
|
+
constructor(config: SupabaseRegistrySyncClientConfig);
|
|
31
|
+
push(machine: MachineIdentity, repoName: string, repoPath: string, branches: Branch[]): Promise<RegistrySyncResult>;
|
|
32
|
+
pull(repoName: string, excludeMachine?: string): Promise<MachineRegistryView[]>;
|
|
33
|
+
getStatus(repoName?: string): Promise<RegistryStatus[]>;
|
|
34
|
+
detectCrossMachineConflicts(repoName: string, excludeMachine?: string): Promise<CrossMachineConflict[]>;
|
|
35
|
+
setDependencies(name: string, dependsOn: string[]): Promise<void>;
|
|
36
|
+
setConflicts(name: string, conflictsWith: string[]): Promise<void>;
|
|
37
|
+
markMerged(name: string, prNumber?: number): Promise<void>;
|
|
38
|
+
getStale(): Promise<Branch[]>;
|
|
39
|
+
getRaw(name: string): Promise<SupabaseBranchRow | null>;
|
|
40
|
+
pushGitHubBranches(rows: unknown[]): Promise<number>;
|
|
41
|
+
init(): Promise<void>;
|
|
42
|
+
isInitialized(): Promise<boolean>;
|
|
43
|
+
private rowToBranch;
|
|
44
|
+
private fetchFromSupabase;
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=supabase-registry-sync-client-impl.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"supabase-registry-sync-client-impl.d.ts","sourceRoot":"","sources":["../../src/storage/supabase-registry-sync-client-impl.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,oCAAoC,CAAC;AACrF,OAAO,KAAK,EACR,oBAAoB,EACpB,eAAe,EACf,mBAAmB,EACnB,cAAc,EACd,kBAAkB,EACrB,MAAM,mBAAmB,CAAC;AAE3B,MAAM,WAAW,gCAAgC;IAC7C,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,KAAK,CAAC;CAC1B;AAED,MAAM,WAAW,iBAAiB;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC5B,aAAa,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC/B,aAAa,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC/B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACtB;AAwBD,qBAAa,8BAA+B,YAAW,0BAA0B;IAC7E,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,OAAO,CAAe;gBAElB,MAAM,EAAE,gCAAgC;IAO9C,IAAI,CACN,OAAO,EAAE,eAAe,EACxB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAAE,GACnB,OAAO,CAAC,kBAAkB,CAAC;IA2ExB,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC;IA8C/E,SAAS,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAmDvD,2BAA2B,CAC7B,QAAQ,EAAE,MAAM,EAChB,cAAc,CAAC,EAAE,MAAM,GACxB,OAAO,CAAC,oBAAoB,EAAE,CAAC;IA8C5B,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAOjE,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAOlE,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAY1D,QAAQ,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAU7B,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAYvD,kBAAkB,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAkBpD,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAWrB,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC;IASvC,OAAO,CAAC,WAAW;YAeL,iBAAiB;CAyDlC"}
|