@fdcn/sourcefed 0.2.9 → 0.3.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/README.md +2 -2
- package/dist/{chunk-QHT4DCW7.js → chunk-QPDTUNFA.js} +19 -1
- package/dist/cli.js +19 -1
- package/dist/daemon.js +19 -1
- package/dist/mcp.js +1 -1
- package/dist/opencode.js +139 -12545
- package/dist/pi.js +1 -1
- package/dist/tui-compiled.mjs +141 -124
- package/dist.dts/adapters/opencode/bridge.d.ts +4 -5
- package/dist.dts/adapters/opencode/index.d.ts +4 -3
- package/dist.dts/adapters/opencode/tools/monitor_create.d.ts +52 -2
- package/dist.dts/adapters/opencode/tools/monitor_list.d.ts +13 -2
- package/dist.dts/adapters/opencode/tools/monitor_start.d.ts +19 -2
- package/dist.dts/adapters/opencode/tools/monitor_status.d.ts +19 -2
- package/dist.dts/adapters/opencode/tools/monitor_stop.d.ts +19 -2
- package/dist.dts/adapters/opencode/tui/plugin.d.ts +2 -2
- package/dist.dts/adapters/opencode/tui/sidebar.d.ts +8 -3
- package/dist.dts/adapters/opencode/tui.d.ts +3 -2
- package/dist.dts/index.d.ts +1 -1
- package/dist.dts/packages/daemon/src/daemon.d.ts +2 -0
- package/dist.dts/packages/sourcefed/src/server.d.ts +2 -6
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -33,12 +33,12 @@ OpenCode loads this package as both a server and a TUI plugin:
|
|
|
33
33
|
|
|
34
34
|
```json
|
|
35
35
|
// opencode.json
|
|
36
|
-
{ "plugin": ["@fdcn/sourcefed@0.
|
|
36
|
+
{ "plugin": ["@fdcn/sourcefed@0.3.0"] }
|
|
37
37
|
```
|
|
38
38
|
|
|
39
39
|
```json
|
|
40
40
|
// tui.json
|
|
41
|
-
{ "plugin": ["@fdcn/sourcefed@0.
|
|
41
|
+
{ "plugin": ["@fdcn/sourcefed@0.3.0"] }
|
|
42
42
|
```
|
|
43
43
|
|
|
44
44
|
The package exposes `./server`, `./tui`, `./opencode`, `./opencode/tui`, and `./pi` entrypoints for hosts that load them directly.
|
|
@@ -11605,6 +11605,7 @@ var SourcefedDaemon = class {
|
|
|
11605
11605
|
if (!monitor) return { ok: false, error: `monitor ${id} was not found for this target` };
|
|
11606
11606
|
const stopped = await this.service.stop(id);
|
|
11607
11607
|
if ("error" in stopped) return { ok: false, error: stopped.error };
|
|
11608
|
+
await this.purgeMonitorEvents(monitor.target, id);
|
|
11608
11609
|
return { ok: true, monitor: monitorView(stopped) };
|
|
11609
11610
|
}
|
|
11610
11611
|
async startMonitor(target, id) {
|
|
@@ -11618,6 +11619,7 @@ var SourcefedDaemon = class {
|
|
|
11618
11619
|
const monitor = await ownedMonitor(this.service, id, target);
|
|
11619
11620
|
if (!monitor) return { ok: false, error: `monitor ${id} was not found for this target` };
|
|
11620
11621
|
await this.service.remove(id);
|
|
11622
|
+
await this.purgeMonitorEvents(monitor.target, id);
|
|
11621
11623
|
return { ok: true, removed: true };
|
|
11622
11624
|
}
|
|
11623
11625
|
async readEvents(target) {
|
|
@@ -11691,6 +11693,8 @@ var SourcefedDaemon = class {
|
|
|
11691
11693
|
async deliver(key, target, listeners) {
|
|
11692
11694
|
const queued = await this.queue.read(target);
|
|
11693
11695
|
if (queued.length === 0) return;
|
|
11696
|
+
const enabled = new Set((await this.service.list()).filter((monitor) => monitor.enabled).map((monitor) => monitor.id));
|
|
11697
|
+
await this.dropQueued(target, queued.filter((event) => !enabled.has(event.monitorID)).map((event) => event.id));
|
|
11694
11698
|
let receivedByListener = this.received.get(key);
|
|
11695
11699
|
if (!receivedByListener) {
|
|
11696
11700
|
receivedByListener = /* @__PURE__ */ new Map();
|
|
@@ -11700,7 +11704,7 @@ var SourcefedDaemon = class {
|
|
|
11700
11704
|
for (const received of receivedByListener.values()) {
|
|
11701
11705
|
for (const id of received) claimed.add(id);
|
|
11702
11706
|
}
|
|
11703
|
-
const fresh = queued.filter((event) => !claimed.has(event.id));
|
|
11707
|
+
const fresh = queued.filter((event) => enabled.has(event.monitorID) && !claimed.has(event.id));
|
|
11704
11708
|
if (fresh.length === 0) return;
|
|
11705
11709
|
for (const listener of [...listeners]) {
|
|
11706
11710
|
let received = receivedByListener.get(listener);
|
|
@@ -11719,6 +11723,20 @@ var SourcefedDaemon = class {
|
|
|
11719
11723
|
}
|
|
11720
11724
|
}
|
|
11721
11725
|
}
|
|
11726
|
+
async dropQueued(target, eventIDs) {
|
|
11727
|
+
if (eventIDs.length === 0) return;
|
|
11728
|
+
await this.queue.acknowledge(target, eventIDs);
|
|
11729
|
+
const receivedByListener = this.received.get(targetKey(target));
|
|
11730
|
+
if (!receivedByListener) return;
|
|
11731
|
+
const ids = new Set(eventIDs);
|
|
11732
|
+
for (const received of receivedByListener.values()) {
|
|
11733
|
+
for (const id of ids) received.delete(id);
|
|
11734
|
+
}
|
|
11735
|
+
}
|
|
11736
|
+
async purgeMonitorEvents(target, monitorID) {
|
|
11737
|
+
const queued = await this.queue.read(target);
|
|
11738
|
+
await this.dropQueued(target, queued.filter((event) => event.monitorID === monitorID).map((event) => event.id));
|
|
11739
|
+
}
|
|
11722
11740
|
};
|
|
11723
11741
|
function monitorView(monitor) {
|
|
11724
11742
|
const definition = sourceDefinition(monitor.source);
|
package/dist/cli.js
CHANGED
|
@@ -11528,6 +11528,7 @@ var SourcefedDaemon = class {
|
|
|
11528
11528
|
if (!monitor) return { ok: false, error: `monitor ${id} was not found for this target` };
|
|
11529
11529
|
const stopped = await this.service.stop(id);
|
|
11530
11530
|
if ("error" in stopped) return { ok: false, error: stopped.error };
|
|
11531
|
+
await this.purgeMonitorEvents(monitor.target, id);
|
|
11531
11532
|
return { ok: true, monitor: monitorView(stopped) };
|
|
11532
11533
|
}
|
|
11533
11534
|
async startMonitor(target, id) {
|
|
@@ -11541,6 +11542,7 @@ var SourcefedDaemon = class {
|
|
|
11541
11542
|
const monitor = await ownedMonitor(this.service, id, target);
|
|
11542
11543
|
if (!monitor) return { ok: false, error: `monitor ${id} was not found for this target` };
|
|
11543
11544
|
await this.service.remove(id);
|
|
11545
|
+
await this.purgeMonitorEvents(monitor.target, id);
|
|
11544
11546
|
return { ok: true, removed: true };
|
|
11545
11547
|
}
|
|
11546
11548
|
async readEvents(target) {
|
|
@@ -11614,6 +11616,8 @@ var SourcefedDaemon = class {
|
|
|
11614
11616
|
async deliver(key, target, listeners) {
|
|
11615
11617
|
const queued = await this.queue.read(target);
|
|
11616
11618
|
if (queued.length === 0) return;
|
|
11619
|
+
const enabled = new Set((await this.service.list()).filter((monitor) => monitor.enabled).map((monitor) => monitor.id));
|
|
11620
|
+
await this.dropQueued(target, queued.filter((event) => !enabled.has(event.monitorID)).map((event) => event.id));
|
|
11617
11621
|
let receivedByListener = this.received.get(key);
|
|
11618
11622
|
if (!receivedByListener) {
|
|
11619
11623
|
receivedByListener = /* @__PURE__ */ new Map();
|
|
@@ -11623,7 +11627,7 @@ var SourcefedDaemon = class {
|
|
|
11623
11627
|
for (const received of receivedByListener.values()) {
|
|
11624
11628
|
for (const id of received) claimed.add(id);
|
|
11625
11629
|
}
|
|
11626
|
-
const fresh = queued.filter((event) => !claimed.has(event.id));
|
|
11630
|
+
const fresh = queued.filter((event) => enabled.has(event.monitorID) && !claimed.has(event.id));
|
|
11627
11631
|
if (fresh.length === 0) return;
|
|
11628
11632
|
for (const listener of [...listeners]) {
|
|
11629
11633
|
let received = receivedByListener.get(listener);
|
|
@@ -11642,6 +11646,20 @@ var SourcefedDaemon = class {
|
|
|
11642
11646
|
}
|
|
11643
11647
|
}
|
|
11644
11648
|
}
|
|
11649
|
+
async dropQueued(target, eventIDs) {
|
|
11650
|
+
if (eventIDs.length === 0) return;
|
|
11651
|
+
await this.queue.acknowledge(target, eventIDs);
|
|
11652
|
+
const receivedByListener = this.received.get(targetKey(target));
|
|
11653
|
+
if (!receivedByListener) return;
|
|
11654
|
+
const ids = new Set(eventIDs);
|
|
11655
|
+
for (const received of receivedByListener.values()) {
|
|
11656
|
+
for (const id of ids) received.delete(id);
|
|
11657
|
+
}
|
|
11658
|
+
}
|
|
11659
|
+
async purgeMonitorEvents(target, monitorID) {
|
|
11660
|
+
const queued = await this.queue.read(target);
|
|
11661
|
+
await this.dropQueued(target, queued.filter((event) => event.monitorID === monitorID).map((event) => event.id));
|
|
11662
|
+
}
|
|
11645
11663
|
};
|
|
11646
11664
|
function monitorView(monitor) {
|
|
11647
11665
|
const definition = sourceDefinition(monitor.source);
|
package/dist/daemon.js
CHANGED
|
@@ -11630,6 +11630,7 @@ var SourcefedDaemon = class {
|
|
|
11630
11630
|
if (!monitor) return { ok: false, error: `monitor ${id} was not found for this target` };
|
|
11631
11631
|
const stopped = await this.service.stop(id);
|
|
11632
11632
|
if ("error" in stopped) return { ok: false, error: stopped.error };
|
|
11633
|
+
await this.purgeMonitorEvents(monitor.target, id);
|
|
11633
11634
|
return { ok: true, monitor: monitorView(stopped) };
|
|
11634
11635
|
}
|
|
11635
11636
|
async startMonitor(target, id) {
|
|
@@ -11643,6 +11644,7 @@ var SourcefedDaemon = class {
|
|
|
11643
11644
|
const monitor = await ownedMonitor(this.service, id, target);
|
|
11644
11645
|
if (!monitor) return { ok: false, error: `monitor ${id} was not found for this target` };
|
|
11645
11646
|
await this.service.remove(id);
|
|
11647
|
+
await this.purgeMonitorEvents(monitor.target, id);
|
|
11646
11648
|
return { ok: true, removed: true };
|
|
11647
11649
|
}
|
|
11648
11650
|
async readEvents(target) {
|
|
@@ -11716,6 +11718,8 @@ var SourcefedDaemon = class {
|
|
|
11716
11718
|
async deliver(key, target, listeners) {
|
|
11717
11719
|
const queued = await this.queue.read(target);
|
|
11718
11720
|
if (queued.length === 0) return;
|
|
11721
|
+
const enabled = new Set((await this.service.list()).filter((monitor) => monitor.enabled).map((monitor) => monitor.id));
|
|
11722
|
+
await this.dropQueued(target, queued.filter((event) => !enabled.has(event.monitorID)).map((event) => event.id));
|
|
11719
11723
|
let receivedByListener = this.received.get(key);
|
|
11720
11724
|
if (!receivedByListener) {
|
|
11721
11725
|
receivedByListener = /* @__PURE__ */ new Map();
|
|
@@ -11725,7 +11729,7 @@ var SourcefedDaemon = class {
|
|
|
11725
11729
|
for (const received of receivedByListener.values()) {
|
|
11726
11730
|
for (const id of received) claimed.add(id);
|
|
11727
11731
|
}
|
|
11728
|
-
const fresh = queued.filter((event) => !claimed.has(event.id));
|
|
11732
|
+
const fresh = queued.filter((event) => enabled.has(event.monitorID) && !claimed.has(event.id));
|
|
11729
11733
|
if (fresh.length === 0) return;
|
|
11730
11734
|
for (const listener of [...listeners]) {
|
|
11731
11735
|
let received = receivedByListener.get(listener);
|
|
@@ -11744,6 +11748,20 @@ var SourcefedDaemon = class {
|
|
|
11744
11748
|
}
|
|
11745
11749
|
}
|
|
11746
11750
|
}
|
|
11751
|
+
async dropQueued(target, eventIDs) {
|
|
11752
|
+
if (eventIDs.length === 0) return;
|
|
11753
|
+
await this.queue.acknowledge(target, eventIDs);
|
|
11754
|
+
const receivedByListener = this.received.get(targetKey(target));
|
|
11755
|
+
if (!receivedByListener) return;
|
|
11756
|
+
const ids = new Set(eventIDs);
|
|
11757
|
+
for (const received of receivedByListener.values()) {
|
|
11758
|
+
for (const id of ids) received.delete(id);
|
|
11759
|
+
}
|
|
11760
|
+
}
|
|
11761
|
+
async purgeMonitorEvents(target, monitorID) {
|
|
11762
|
+
const queued = await this.queue.read(target);
|
|
11763
|
+
await this.dropQueued(target, queued.filter((event) => event.monitorID === monitorID).map((event) => event.id));
|
|
11764
|
+
}
|
|
11747
11765
|
};
|
|
11748
11766
|
function monitorView(monitor) {
|
|
11749
11767
|
const definition = sourceDefinition(monitor.source);
|