Add AgentOS daemon control plane and maintenance tooling

This commit is contained in:
-Puter
2026-07-19 06:29:51 +05:30
parent a37e0cc3c9
commit ec84c52155
621 changed files with 97578 additions and 15 deletions

View File

@@ -0,0 +1,22 @@
{
"name": "@code/primitives",
"version": "0.0.0",
"private": true,
"type": "module",
"exports": {
".": "./src/index.ts",
"./agent-os": "./src/agent-os.ts"
},
"scripts": {
"check-types": "tsc --noEmit"
},
"dependencies": {
"@rivet-dev/agentos": "^0.2.7",
"effect": "4.0.0-beta.99"
},
"devDependencies": {
"@code/config": "workspace:*",
"@types/node": "^22.13.14",
"typescript": "^6"
}
}

View File

@@ -0,0 +1,64 @@
import {
agentOS as createAgentOsActor,
type AgentOSConfigInput,
} from "@rivet-dev/agentos";
import { Context, Effect, Layer, Schema } from "effect";
export class AgentOsError extends Schema.TaggedErrorClass<AgentOsError>()(
"AgentOsError",
{
cause: Schema.Defect(),
}
) {}
export interface AgentOsOptions {
readonly config?: AgentOSConfigInput<undefined>;
}
export class AgentOs extends Context.Service<
AgentOs,
{
readonly createActor: (
config?: AgentOSConfigInput<undefined>
) => Effect.Effect<
ReturnType<typeof createAgentOsActor<undefined>>,
AgentOsError
>;
}
>()("@code/primitives/agent-os/AgentOs") {
static readonly layer = Layer.succeed(
AgentOs,
AgentOs.of({
createActor: Effect.fn("AgentOs.createActor")(function* (
config: AgentOSConfigInput<undefined> = {}
) {
return yield* Effect.try({
try: () => createAgentOsActor<undefined>(config),
catch: (cause) => new AgentOsError({ cause }),
});
}),
})
);
}
export const makeAgentOsLayer = (options: AgentOsOptions = {}) =>
Layer.succeed(
AgentOs,
AgentOs.of({
createActor: Effect.fn("AgentOs.createActor")(function* (
config: AgentOSConfigInput<undefined> = options.config ?? {}
) {
return yield* Effect.try({
try: () => createAgentOsActor<undefined>(config),
catch: (cause) => new AgentOsError({ cause }),
});
}),
})
);
export const createAgentOsActorEffect = Effect.fn("createAgentOsActorEffect")(
function* (config?: AgentOSConfigInput<undefined>) {
const agentOs = yield* AgentOs;
return yield* agentOs.createActor(config);
}
);

View File

@@ -0,0 +1 @@
export * from "./agent-os";

View File

@@ -0,0 +1,5 @@
{
"extends": "@code/config/tsconfig.base.json",
"include": ["src/**/*.ts"],
"exclude": ["dist"]
}