pi-mono/packages/coding-agent/examples/plugins/pi-example-plugin/src/session.ts
Armin Ronacher 86bac52f94 feat: add delta-backed replicated state
Track mutable provider state and publish immutable operation batches. Keep path codecs isolated per client subscription and state member.
2026-08-31 14:04:42 +02:00

23 lines
704 B
TypeScript

import { defineFacet } from "@earendil-works/chord";
import { BACKGROUND_CONTEXT } from "@earendil-works/chord/context";
import { ExampleFacetService } from "./contract.ts";
export default defineFacet({
id: "@earendil-works/pi-example-plugin/session",
setup(env) {
const workerActivations = env.replicatedState({ count: 0 });
env.provide(ExampleFacetService, {
workerActivations,
async greet({ name }) {
return {
message: `Hello ${name} from the bundled Session worker facet!!!`,
workerActivations: workerActivations.value.count,
};
},
});
env.onActivate(() => {
workerActivations.state.count += 1;
workerActivations.publish(BACKGROUND_CONTEXT);
});
},
});