feat: add proto codegen pipeline with buf and connect-es

- Add llm-multiverse repo as git submodule for proto files
- Configure buf with @bufbuild/protoc-gen-es for TypeScript codegen
- Generate typed Connect service stubs to src/lib/proto/
- Add `generate` npm script for proto regeneration
- Exclude generated proto files from ESLint

Closes #2

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
shahondin1624
2026-03-12 11:14:11 +01:00
parent 0a46d2b95b
commit 2516c86002
16 changed files with 2758 additions and 1 deletions

3
.gitmodules vendored Normal file
View File

@@ -0,0 +1,3 @@
[submodule "proto/upstream"]
path = proto/upstream
url = https://git.shahondin1624.de/llm-multiverse/llm-multiverse.git

8
buf.gen.yaml Normal file
View File

@@ -0,0 +1,8 @@
version: v2
plugins:
- local: protoc-gen-es
out: src/lib/proto
opt:
- target=ts
inputs:
- directory: proto/upstream/proto

View File

@@ -18,6 +18,6 @@ export default ts.config(
}
},
{
ignores: ['build/', '.svelte-kit/', 'dist/']
ignores: ['build/', '.svelte-kit/', 'dist/', 'src/lib/proto/']
}
);

View File

@@ -3,3 +3,4 @@
| Issue | Title | Status | Plan |
| ----- | ------------------------------------------------------ | ------------ | ---------------------------- |
| #1 | Project scaffolding: SvelteKit + Tailwind + TypeScript | COMPLETED | [issue-001.md](issue-001.md) |
| #2 | Proto codegen pipeline for TypeScript gRPC-Web stubs | IMPLEMENTING | [issue-002.md](issue-002.md) |

View File

@@ -0,0 +1,49 @@
---
---
# Issue #2: Proto codegen pipeline for TypeScript gRPC-Web stubs
**Status:** IMPLEMENTING
**Issue:** https://git.shahondin1624.de/llm-multiverse/llm-multiverse-ui/issues/2
**Branch:** `feature/issue-2-proto-codegen`
## Summary
Set up buf + @connectrpc/connect-web to generate TypeScript client stubs from the llm-multiverse proto files. Use a git submodule to consume proto files. Output generated code to `src/lib/proto/`.
## Acceptance Criteria
- [ ] Codegen toolchain chosen and configured (buf + connect-es)
- [ ] Proto files from llm-multiverse repo consumed (git submodule)
- [ ] TypeScript gRPC-Web client stubs generated to `src/lib/proto/`
- [ ] `generate` npm script added to package.json
- [ ] Generated types are importable and type-safe
## Implementation Phases
### Phase 1: Add proto files via git submodule
Add the `llm-multiverse` repo as a git submodule at `proto/upstream` to keep proto files in sync.
### Phase 2: Configure buf for connect-es codegen
Install buf CLI dependencies and configure:
- `@bufbuild/protobuf` — runtime protobuf library
- `@connectrpc/connect` — Connect protocol runtime
- `@connectrpc/connect-web` — browser transport
- `@bufbuild/protoc-gen-es` — protobuf ES codegen plugin
- `@connectrpc/protoc-gen-connect-es` — Connect service codegen plugin
Create `buf.gen.yaml` in project root targeting `src/lib/proto/` output.
### Phase 3: Generate stubs and verify
Run `npx buf generate` and verify generated TypeScript files are importable and type-safe.
### Phase 4: Add npm script
Add `"generate": "buf generate proto/upstream/proto"` to package.json.
## Deviations
(none yet)

241
package-lock.json generated
View File

@@ -8,6 +8,11 @@
"name": "llm-multiverse-ui",
"version": "0.0.1",
"devDependencies": {
"@bufbuild/buf": "^1.66.1",
"@bufbuild/protobuf": "^2.11.0",
"@bufbuild/protoc-gen-es": "^2.11.0",
"@connectrpc/connect": "^2.1.1",
"@connectrpc/connect-web": "^2.1.1",
"@eslint/js": "^9.0.0",
"@sveltejs/adapter-auto": "^7.0.0",
"@sveltejs/kit": "^2.50.2",
@@ -26,6 +31,229 @@
"vite": "^7.3.1"
}
},
"node_modules/@bufbuild/buf": {
"version": "1.66.1",
"resolved": "https://registry.npmjs.org/@bufbuild/buf/-/buf-1.66.1.tgz",
"integrity": "sha512-TelMLptEDfdcl8D+WjKQLzGGYKAwOSVjCPJ21L9X9xT7KZHigTAhHP5idrTCtXKHHPPQB6Sq12wVnhWgFQ9s7w==",
"dev": true,
"hasInstallScript": true,
"license": "Apache-2.0",
"bin": {
"buf": "bin/buf",
"protoc-gen-buf-breaking": "bin/protoc-gen-buf-breaking",
"protoc-gen-buf-lint": "bin/protoc-gen-buf-lint"
},
"engines": {
"node": ">=12"
},
"optionalDependencies": {
"@bufbuild/buf-darwin-arm64": "1.66.1",
"@bufbuild/buf-darwin-x64": "1.66.1",
"@bufbuild/buf-linux-aarch64": "1.66.1",
"@bufbuild/buf-linux-armv7": "1.66.1",
"@bufbuild/buf-linux-x64": "1.66.1",
"@bufbuild/buf-win32-arm64": "1.66.1",
"@bufbuild/buf-win32-x64": "1.66.1"
}
},
"node_modules/@bufbuild/buf-darwin-arm64": {
"version": "1.66.1",
"resolved": "https://registry.npmjs.org/@bufbuild/buf-darwin-arm64/-/buf-darwin-arm64-1.66.1.tgz",
"integrity": "sha512-Yl7vvFhKrA87ctsIiwN2XWbJq34VxWoEzNBe9dhrutKLpy7hM7l/ylDCuctqPh+CGdSUijQfmHiA4bQgK8s2yQ==",
"cpu": [
"arm64"
],
"dev": true,
"license": "Apache-2.0",
"optional": true,
"os": [
"darwin"
],
"engines": {
"node": ">=12"
}
},
"node_modules/@bufbuild/buf-darwin-x64": {
"version": "1.66.1",
"resolved": "https://registry.npmjs.org/@bufbuild/buf-darwin-x64/-/buf-darwin-x64-1.66.1.tgz",
"integrity": "sha512-pRbu0l7jtbXBBCq/7wrs2ZUFzCkDBDGuT3xlQt04k1SgIoW1lznpDnUZ6vbQj1rIU94dCbnsuL7M6k+rCFafOA==",
"cpu": [
"x64"
],
"dev": true,
"license": "Apache-2.0",
"optional": true,
"os": [
"darwin"
],
"engines": {
"node": ">=12"
}
},
"node_modules/@bufbuild/buf-linux-aarch64": {
"version": "1.66.1",
"resolved": "https://registry.npmjs.org/@bufbuild/buf-linux-aarch64/-/buf-linux-aarch64-1.66.1.tgz",
"integrity": "sha512-V/dwOAcQ9r5B6BUEtUeVPvkpNxYhmHLILrJZmIqNdjpInVQWknpGm1Mmpy2xANuOhRh7O/Huq7kaoQvNjSdnWQ==",
"cpu": [
"arm64"
],
"dev": true,
"license": "Apache-2.0",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=12"
}
},
"node_modules/@bufbuild/buf-linux-armv7": {
"version": "1.66.1",
"resolved": "https://registry.npmjs.org/@bufbuild/buf-linux-armv7/-/buf-linux-armv7-1.66.1.tgz",
"integrity": "sha512-WDmspvGLq/lNVj4jAb2TDWVKLzG9l5nwhNsZOo1I5UKrE0PD2LdbM7YdnMne15AIg3qlUxHqq2Eg8pVyxHqCqw==",
"cpu": [
"arm"
],
"dev": true,
"license": "Apache-2.0",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=12"
}
},
"node_modules/@bufbuild/buf-linux-x64": {
"version": "1.66.1",
"resolved": "https://registry.npmjs.org/@bufbuild/buf-linux-x64/-/buf-linux-x64-1.66.1.tgz",
"integrity": "sha512-at0JeAlc+pquaNB/80R5F6bQs1gtdSuJRj+naei+lH2L2M1yQTiYU3f9dJnY4hVbq4/JbxSdxqJx2VOLPt1ztw==",
"cpu": [
"x64"
],
"dev": true,
"license": "Apache-2.0",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=12"
}
},
"node_modules/@bufbuild/buf-win32-arm64": {
"version": "1.66.1",
"resolved": "https://registry.npmjs.org/@bufbuild/buf-win32-arm64/-/buf-win32-arm64-1.66.1.tgz",
"integrity": "sha512-gb2LDuqkY1RSFIOMYJQTimTLIsW2/pqOvcPWBDApUZBOQS5CJdrAtuoBqRzpqrI02OF45uinKmqq+9dun/X92A==",
"cpu": [
"arm64"
],
"dev": true,
"license": "Apache-2.0",
"optional": true,
"os": [
"win32"
],
"engines": {
"node": ">=12"
}
},
"node_modules/@bufbuild/buf-win32-x64": {
"version": "1.66.1",
"resolved": "https://registry.npmjs.org/@bufbuild/buf-win32-x64/-/buf-win32-x64-1.66.1.tgz",
"integrity": "sha512-QzDiv9dAUr89HjHsKOrC5EQB+2aWVwKmhZFYzAGgHTt+ONAgz9RgLhwIm6LTtrLigB0LIHk/nLMIXB3sXUhyrg==",
"cpu": [
"x64"
],
"dev": true,
"license": "Apache-2.0",
"optional": true,
"os": [
"win32"
],
"engines": {
"node": ">=12"
}
},
"node_modules/@bufbuild/protobuf": {
"version": "2.11.0",
"resolved": "https://registry.npmjs.org/@bufbuild/protobuf/-/protobuf-2.11.0.tgz",
"integrity": "sha512-sBXGT13cpmPR5BMgHE6UEEfEaShh5Ror6rfN3yEK5si7QVrtZg8LEPQb0VVhiLRUslD2yLnXtnRzG035J/mZXQ==",
"dev": true,
"license": "(Apache-2.0 AND BSD-3-Clause)"
},
"node_modules/@bufbuild/protoc-gen-es": {
"version": "2.11.0",
"resolved": "https://registry.npmjs.org/@bufbuild/protoc-gen-es/-/protoc-gen-es-2.11.0.tgz",
"integrity": "sha512-VzQuwEQDXipbZ1soWUuAWm1Z0C3B/IDWGeysnbX6ogJ6As91C2mdvAND/ekQ4YIWgen4d5nqLfIBOWLqCCjYUA==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
"@bufbuild/protobuf": "2.11.0",
"@bufbuild/protoplugin": "2.11.0"
},
"bin": {
"protoc-gen-es": "bin/protoc-gen-es"
},
"engines": {
"node": ">=20"
},
"peerDependencies": {
"@bufbuild/protobuf": "2.11.0"
},
"peerDependenciesMeta": {
"@bufbuild/protobuf": {
"optional": true
}
}
},
"node_modules/@bufbuild/protoplugin": {
"version": "2.11.0",
"resolved": "https://registry.npmjs.org/@bufbuild/protoplugin/-/protoplugin-2.11.0.tgz",
"integrity": "sha512-lyZVNFUHArIOt4W0+dwYBe5GBwbKzbOy8ObaloEqsw9Mmiwv2O48TwddDoHN4itylC+BaEGqFdI1W8WQt2vWJQ==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
"@bufbuild/protobuf": "2.11.0",
"@typescript/vfs": "^1.6.2",
"typescript": "5.4.5"
}
},
"node_modules/@bufbuild/protoplugin/node_modules/typescript": {
"version": "5.4.5",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz",
"integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==",
"dev": true,
"license": "Apache-2.0",
"bin": {
"tsc": "bin/tsc",
"tsserver": "bin/tsserver"
},
"engines": {
"node": ">=14.17"
}
},
"node_modules/@connectrpc/connect": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/@connectrpc/connect/-/connect-2.1.1.tgz",
"integrity": "sha512-JzhkaTvM73m2K1URT6tv53k2RwngSmCXLZJgK580qNQOXRzZRR/BCMfZw3h+90JpnG6XksP5bYT+cz0rpUzUWQ==",
"dev": true,
"license": "Apache-2.0",
"peerDependencies": {
"@bufbuild/protobuf": "^2.7.0"
}
},
"node_modules/@connectrpc/connect-web": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/@connectrpc/connect-web/-/connect-web-2.1.1.tgz",
"integrity": "sha512-J8317Q2MaFRCT1jzVR1o06bZhDIBmU0UAzWx6xOIXzOq8+k71/+k7MUF7AwcBUX+34WIvbm5syRgC5HXQA8fOg==",
"dev": true,
"license": "Apache-2.0",
"peerDependencies": {
"@bufbuild/protobuf": "^2.7.0",
"@connectrpc/connect": "2.1.1"
}
},
"node_modules/@esbuild/aix-ppc64": {
"version": "0.27.3",
"resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.3.tgz",
@@ -1761,6 +1989,19 @@
"url": "https://opencollective.com/eslint"
}
},
"node_modules/@typescript/vfs": {
"version": "1.6.4",
"resolved": "https://registry.npmjs.org/@typescript/vfs/-/vfs-1.6.4.tgz",
"integrity": "sha512-PJFXFS4ZJKiJ9Qiuix6Dz/OwEIqHD7Dme1UwZhTK11vR+5dqW2ACbdndWQexBzCx+CPuMe5WBYQWCsFyGlQLlQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"debug": "^4.4.3"
},
"peerDependencies": {
"typescript": "*"
}
},
"node_modules/acorn": {
"version": "8.16.0",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz",

View File

@@ -10,10 +10,16 @@
"prepare": "svelte-kit sync || echo ''",
"check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json",
"check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch",
"generate": "buf generate",
"lint": "eslint .",
"format": "prettier --write ."
},
"devDependencies": {
"@bufbuild/buf": "^1.66.1",
"@bufbuild/protobuf": "^2.11.0",
"@bufbuild/protoc-gen-es": "^2.11.0",
"@connectrpc/connect": "^2.1.1",
"@connectrpc/connect-web": "^2.1.1",
"@eslint/js": "^9.0.0",
"@sveltejs/adapter-auto": "^7.0.0",
"@sveltejs/kit": "^2.50.2",

1
proto/upstream Submodule

Submodule proto/upstream added at aae98895d2

View File

@@ -0,0 +1,211 @@
// @generated by protoc-gen-es v2.11.0 with parameter "target=ts"
// @generated from file llm_multiverse/v1/audit.proto (package llm_multiverse.v1, syntax proto3)
/* eslint-disable */
import type { GenEnum, GenFile, GenMessage, GenService } from "@bufbuild/protobuf/codegenv2";
import { enumDesc, fileDesc, messageDesc, serviceDesc } from "@bufbuild/protobuf/codegenv2";
import type { Timestamp } from "@bufbuild/protobuf/wkt";
import { file_google_protobuf_timestamp } from "@bufbuild/protobuf/wkt";
import type { AgentLineage, AgentType, SessionContext } from "./common_pb";
import { file_llm_multiverse_v1_common } from "./common_pb";
import type { Message } from "@bufbuild/protobuf";
/**
* Describes the file llm_multiverse/v1/audit.proto.
*/
export const file_llm_multiverse_v1_audit: GenFile = /*@__PURE__*/
fileDesc("Ch1sbG1fbXVsdGl2ZXJzZS92MS9hdWRpdC5wcm90bxIRbGxtX211bHRpdmVyc2UudjEipAMKCkF1ZGl0RW50cnkSLQoJdGltZXN0YW1wGAEgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBISCgpzZXNzaW9uX2lkGAIgASgJEhAKCGFnZW50X2lkGAMgASgJEjAKCmFnZW50X3R5cGUYBCABKA4yHC5sbG1fbXVsdGl2ZXJzZS52MS5BZ2VudFR5cGUSMAoHbGluZWFnZRgFIAEoCzIfLmxsbV9tdWx0aXZlcnNlLnYxLkFnZW50TGluZWFnZRIuCgZhY3Rpb24YBiABKA4yHi5sbG1fbXVsdGl2ZXJzZS52MS5BdWRpdEFjdGlvbhIRCgl0b29sX25hbWUYByABKAkSEwoLcGFyYW1zX2hhc2gYCCABKAkSFQoNcmVzdWx0X3N0YXR1cxgJIAEoCRI9CghtZXRhZGF0YRgKIAMoCzIrLmxsbV9tdWx0aXZlcnNlLnYxLkF1ZGl0RW50cnkuTWV0YWRhdGFFbnRyeRovCg1NZXRhZGF0YUVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEicQoNQXBwZW5kUmVxdWVzdBIyCgdjb250ZXh0GAEgASgLMiEubGxtX211bHRpdmVyc2UudjEuU2Vzc2lvbkNvbnRleHQSLAoFZW50cnkYAiABKAsyHS5sbG1fbXVsdGl2ZXJzZS52MS5BdWRpdEVudHJ5Ik8KDkFwcGVuZFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSGgoNZXJyb3JfbWVzc2FnZRgCIAEoCUgAiAEBQhAKDl9lcnJvcl9tZXNzYWdlKrkCCgtBdWRpdEFjdGlvbhIcChhBVURJVF9BQ1RJT05fVU5TUEVDSUZJRUQQABIgChxBVURJVF9BQ1RJT05fVE9PTF9JTlZPQ0FUSU9OEAESIAocQVVESVRfQUNUSU9OX0JST0tFUl9ERUNJU0lPThACEhwKGEFVRElUX0FDVElPTl9NRU1PUllfUkVBRBADEh0KGUFVRElUX0FDVElPTl9NRU1PUllfV1JJVEUQBBIfChtBVURJVF9BQ1RJT05fU1VCQUdFTlRfU1BBV04QBRImCiJBVURJVF9BQ1RJT05fU0VTU0lPTl9DT05GSUdfQ0hBTkdFEAYSIgoeQVVESVRfQUNUSU9OX0lORkVSRU5DRV9SRVFVRVNUEAcSHgoaQVVESVRfQUNUSU9OX1NFQ1JFVF9BQ0NFU1MQCDJdCgxBdWRpdFNlcnZpY2USTQoGQXBwZW5kEiAubGxtX211bHRpdmVyc2UudjEuQXBwZW5kUmVxdWVzdBohLmxsbV9tdWx0aXZlcnNlLnYxLkFwcGVuZFJlc3BvbnNlYgZwcm90bzM", [file_google_protobuf_timestamp, file_llm_multiverse_v1_common]);
/**
* A single audit log entry.
*
* @generated from message llm_multiverse.v1.AuditEntry
*/
export type AuditEntry = Message<"llm_multiverse.v1.AuditEntry"> & {
/**
* @generated from field: google.protobuf.Timestamp timestamp = 1;
*/
timestamp?: Timestamp;
/**
* @generated from field: string session_id = 2;
*/
sessionId: string;
/**
* @generated from field: string agent_id = 3;
*/
agentId: string;
/**
* @generated from field: llm_multiverse.v1.AgentType agent_type = 4;
*/
agentType: AgentType;
/**
* @generated from field: llm_multiverse.v1.AgentLineage lineage = 5;
*/
lineage?: AgentLineage;
/**
* @generated from field: llm_multiverse.v1.AuditAction action = 6;
*/
action: AuditAction;
/**
* Tool name, if action is tool-related.
*
* @generated from field: string tool_name = 7;
*/
toolName: string;
/**
* Hash of parameters — never raw params to avoid logging credentials.
*
* @generated from field: string params_hash = 8;
*/
paramsHash: string;
/**
* Result of the action (allow/deny/success/failure).
*
* @generated from field: string result_status = 9;
*/
resultStatus: string;
/**
* Additional context as key-value pairs.
*
* @generated from field: map<string, string> metadata = 10;
*/
metadata: { [key: string]: string };
};
/**
* Describes the message llm_multiverse.v1.AuditEntry.
* Use `create(AuditEntrySchema)` to create a new message.
*/
export const AuditEntrySchema: GenMessage<AuditEntry> = /*@__PURE__*/
messageDesc(file_llm_multiverse_v1_audit, 0);
/**
* @generated from message llm_multiverse.v1.AppendRequest
*/
export type AppendRequest = Message<"llm_multiverse.v1.AppendRequest"> & {
/**
* @generated from field: llm_multiverse.v1.SessionContext context = 1;
*/
context?: SessionContext;
/**
* @generated from field: llm_multiverse.v1.AuditEntry entry = 2;
*/
entry?: AuditEntry;
};
/**
* Describes the message llm_multiverse.v1.AppendRequest.
* Use `create(AppendRequestSchema)` to create a new message.
*/
export const AppendRequestSchema: GenMessage<AppendRequest> = /*@__PURE__*/
messageDesc(file_llm_multiverse_v1_audit, 1);
/**
* @generated from message llm_multiverse.v1.AppendResponse
*/
export type AppendResponse = Message<"llm_multiverse.v1.AppendResponse"> & {
/**
* @generated from field: bool success = 1;
*/
success: boolean;
/**
* @generated from field: optional string error_message = 2;
*/
errorMessage?: string;
};
/**
* Describes the message llm_multiverse.v1.AppendResponse.
* Use `create(AppendResponseSchema)` to create a new message.
*/
export const AppendResponseSchema: GenMessage<AppendResponse> = /*@__PURE__*/
messageDesc(file_llm_multiverse_v1_audit, 2);
/**
* Action categories for audit log entries.
*
* @generated from enum llm_multiverse.v1.AuditAction
*/
export enum AuditAction {
/**
* @generated from enum value: AUDIT_ACTION_UNSPECIFIED = 0;
*/
UNSPECIFIED = 0,
/**
* @generated from enum value: AUDIT_ACTION_TOOL_INVOCATION = 1;
*/
TOOL_INVOCATION = 1,
/**
* @generated from enum value: AUDIT_ACTION_BROKER_DECISION = 2;
*/
BROKER_DECISION = 2,
/**
* @generated from enum value: AUDIT_ACTION_MEMORY_READ = 3;
*/
MEMORY_READ = 3,
/**
* @generated from enum value: AUDIT_ACTION_MEMORY_WRITE = 4;
*/
MEMORY_WRITE = 4,
/**
* @generated from enum value: AUDIT_ACTION_SUBAGENT_SPAWN = 5;
*/
SUBAGENT_SPAWN = 5,
/**
* @generated from enum value: AUDIT_ACTION_SESSION_CONFIG_CHANGE = 6;
*/
SESSION_CONFIG_CHANGE = 6,
/**
* @generated from enum value: AUDIT_ACTION_INFERENCE_REQUEST = 7;
*/
INFERENCE_REQUEST = 7,
/**
* @generated from enum value: AUDIT_ACTION_SECRET_ACCESS = 8;
*/
SECRET_ACCESS = 8,
}
/**
* Describes the enum llm_multiverse.v1.AuditAction.
*/
export const AuditActionSchema: GenEnum<AuditAction> = /*@__PURE__*/
enumDesc(file_llm_multiverse_v1_audit, 0);
/**
* Write-only append log for all service actions.
*
* @generated from service llm_multiverse.v1.AuditService
*/
export const AuditService: GenService<{
/**
* Append a single audit log entry. Write-only — no read RPC exposed.
*
* @generated from rpc llm_multiverse.v1.AuditService.Append
*/
append: {
methodKind: "unary";
input: typeof AppendRequestSchema;
output: typeof AppendResponseSchema;
},
}> = /*@__PURE__*/
serviceDesc(file_llm_multiverse_v1_audit, 0);

View File

@@ -0,0 +1,452 @@
// @generated by protoc-gen-es v2.11.0 with parameter "target=ts"
// @generated from file llm_multiverse/v1/common.proto (package llm_multiverse.v1, syntax proto3)
/* eslint-disable */
import type { GenEnum, GenFile, GenMessage } from "@bufbuild/protobuf/codegenv2";
import { enumDesc, fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv2";
import type { Timestamp } from "@bufbuild/protobuf/wkt";
import { file_google_protobuf_timestamp } from "@bufbuild/protobuf/wkt";
import type { Message } from "@bufbuild/protobuf";
/**
* Describes the file llm_multiverse/v1/common.proto.
*/
export const file_llm_multiverse_v1_common: GenFile = /*@__PURE__*/
fileDesc("Ch5sbG1fbXVsdGl2ZXJzZS92MS9jb21tb24ucHJvdG8SEWxsbV9tdWx0aXZlcnNlLnYxImoKD0FnZW50SWRlbnRpZmllchIQCghhZ2VudF9pZBgBIAEoCRIwCgphZ2VudF90eXBlGAIgASgOMhwubGxtX211bHRpdmVyc2UudjEuQWdlbnRUeXBlEhMKC3NwYXduX2RlcHRoGAMgASgNIkIKDEFnZW50TGluZWFnZRIyCgZhZ2VudHMYASADKAsyIi5sbG1fbXVsdGl2ZXJzZS52MS5BZ2VudElkZW50aWZpZXIi1wEKDlNlc3Npb25Db250ZXh0EhIKCnNlc3Npb25faWQYASABKAkSDwoHdXNlcl9pZBgCIAEoCRI2Cg1hZ2VudF9saW5lYWdlGAMgASgLMh8ubGxtX211bHRpdmVyc2UudjEuQWdlbnRMaW5lYWdlEjgKDm92ZXJyaWRlX2xldmVsGAQgASgOMiAubGxtX211bHRpdmVyc2UudjEuT3ZlcnJpZGVMZXZlbBIuCgpjcmVhdGVkX2F0GAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCKdAQoLRXJyb3JEZXRhaWwSDAoEY29kZRgBIAEoCRIPCgdtZXNzYWdlGAIgASgJEj4KCG1ldGFkYXRhGAMgAygLMiwubGxtX211bHRpdmVyc2UudjEuRXJyb3JEZXRhaWwuTWV0YWRhdGFFbnRyeRovCg1NZXRhZGF0YUVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEiZwoPTWVtb3J5Q2FuZGlkYXRlEg8KB2NvbnRlbnQYASABKAkSLwoGc291cmNlGAIgASgOMh8ubGxtX211bHRpdmVyc2UudjEuUmVzdWx0U291cmNlEhIKCmNvbmZpZGVuY2UYAyABKAIiwwIKDlN1YmFnZW50UmVzdWx0Ei8KBnN0YXR1cxgBIAEoDjIfLmxsbV9tdWx0aXZlcnNlLnYxLlJlc3VsdFN0YXR1cxIPCgdzdW1tYXJ5GAIgASgJEhEKCWFydGlmYWN0cxgDIAMoCRI4Cg5yZXN1bHRfcXVhbGl0eRgEIAEoDjIgLmxsbV9tdWx0aXZlcnNlLnYxLlJlc3VsdFF1YWxpdHkSLwoGc291cmNlGAUgASgOMh8ubGxtX211bHRpdmVyc2UudjEuUmVzdWx0U291cmNlEkEKFW5ld19tZW1vcnlfY2FuZGlkYXRlcxgGIAMoCzIiLmxsbV9tdWx0aXZlcnNlLnYxLk1lbW9yeUNhbmRpZGF0ZRIbCg5mYWlsdXJlX3JlYXNvbhgHIAEoCUgAiAEBQhEKD19mYWlsdXJlX3JlYXNvbiqoAQoJQWdlbnRUeXBlEhoKFkFHRU5UX1RZUEVfVU5TUEVDSUZJRUQQABIbChdBR0VOVF9UWVBFX09SQ0hFU1RSQVRPUhABEhkKFUFHRU5UX1RZUEVfUkVTRUFSQ0hFUhACEhQKEEFHRU5UX1RZUEVfQ09ERVIQAxIXChNBR0VOVF9UWVBFX1NZU0FETUlOEAQSGAoUQUdFTlRfVFlQRV9BU1NJU1RBTlQQBSr1AQoIVG9vbFR5cGUSGQoVVE9PTF9UWVBFX1VOU1BFQ0lGSUVEEAASGQoVVE9PTF9UWVBFX01FTU9SWV9SRUFEEAESGgoWVE9PTF9UWVBFX01FTU9SWV9XUklURRACEhgKFFRPT0xfVFlQRV9XRUJfU0VBUkNIEAMSFQoRVE9PTF9UWVBFX0ZTX1JFQUQQBBIWChJUT09MX1RZUEVfRlNfV1JJVEUQBRIWChJUT09MX1RZUEVfUlVOX0NPREUQBhIXChNUT09MX1RZUEVfUlVOX1NIRUxMEAcSHQoZVE9PTF9UWVBFX1BBQ0tBR0VfSU5TVEFMTBAIKnoKDU92ZXJyaWRlTGV2ZWwSHgoaT1ZFUlJJREVfTEVWRUxfVU5TUEVDSUZJRUQQABIXChNPVkVSUklERV9MRVZFTF9OT05FEAESGAoUT1ZFUlJJREVfTEVWRUxfUkVMQVgQAhIWChJPVkVSUklERV9MRVZFTF9BTEwQAyp9CgxSZXN1bHRTdGF0dXMSHQoZUkVTVUxUX1NUQVRVU19VTlNQRUNJRklFRBAAEhkKFVJFU1VMVF9TVEFUVVNfU1VDQ0VTUxABEhkKFVJFU1VMVF9TVEFUVVNfUEFSVElBTBACEhgKFFJFU1VMVF9TVEFUVVNfRkFJTEVEEAMqhwEKDVJlc3VsdFF1YWxpdHkSHgoaUkVTVUxUX1FVQUxJVFlfVU5TUEVDSUZJRUQQABIbChdSRVNVTFRfUVVBTElUWV9WRVJJRklFRBABEhsKF1JFU1VMVF9RVUFMSVRZX0lORkVSUkVEEAISHAoYUkVTVUxUX1FVQUxJVFlfVU5DRVJUQUlOEAMqhgEKDFJlc3VsdFNvdXJjZRIdChlSRVNVTFRfU09VUkNFX1VOU1BFQ0lGSUVEEAASHQoZUkVTVUxUX1NPVVJDRV9UT09MX09VVFBVVBABEiEKHVJFU1VMVF9TT1VSQ0VfTU9ERUxfS05PV0xFREdFEAISFQoRUkVTVUxUX1NPVVJDRV9XRUIQA2IGcHJvdG8z", [file_google_protobuf_timestamp]);
/**
* Identifies a single agent in the lineage chain.
*
* @generated from message llm_multiverse.v1.AgentIdentifier
*/
export type AgentIdentifier = Message<"llm_multiverse.v1.AgentIdentifier"> & {
/**
* @generated from field: string agent_id = 1;
*/
agentId: string;
/**
* @generated from field: llm_multiverse.v1.AgentType agent_type = 2;
*/
agentType: AgentType;
/**
* @generated from field: uint32 spawn_depth = 3;
*/
spawnDepth: number;
};
/**
* Describes the message llm_multiverse.v1.AgentIdentifier.
* Use `create(AgentIdentifierSchema)` to create a new message.
*/
export const AgentIdentifierSchema: GenMessage<AgentIdentifier> = /*@__PURE__*/
messageDesc(file_llm_multiverse_v1_common, 0);
/**
* Ordered chain of agents from orchestrator (index 0) to current agent.
* Used by the Tool Broker for lineage constraint enforcement.
*
* @generated from message llm_multiverse.v1.AgentLineage
*/
export type AgentLineage = Message<"llm_multiverse.v1.AgentLineage"> & {
/**
* @generated from field: repeated llm_multiverse.v1.AgentIdentifier agents = 1;
*/
agents: AgentIdentifier[];
};
/**
* Describes the message llm_multiverse.v1.AgentLineage.
* Use `create(AgentLineageSchema)` to create a new message.
*/
export const AgentLineageSchema: GenMessage<AgentLineage> = /*@__PURE__*/
messageDesc(file_llm_multiverse_v1_common, 1);
/**
* Carried in every gRPC request for audit trail and broker enforcement.
*
* @generated from message llm_multiverse.v1.SessionContext
*/
export type SessionContext = Message<"llm_multiverse.v1.SessionContext"> & {
/**
* @generated from field: string session_id = 1;
*/
sessionId: string;
/**
* @generated from field: string user_id = 2;
*/
userId: string;
/**
* @generated from field: llm_multiverse.v1.AgentLineage agent_lineage = 3;
*/
agentLineage?: AgentLineage;
/**
* @generated from field: llm_multiverse.v1.OverrideLevel override_level = 4;
*/
overrideLevel: OverrideLevel;
/**
* @generated from field: google.protobuf.Timestamp created_at = 5;
*/
createdAt?: Timestamp;
};
/**
* Describes the message llm_multiverse.v1.SessionContext.
* Use `create(SessionContextSchema)` to create a new message.
*/
export const SessionContextSchema: GenMessage<SessionContext> = /*@__PURE__*/
messageDesc(file_llm_multiverse_v1_common, 2);
/**
* Structured error detail for gRPC error responses.
*
* @generated from message llm_multiverse.v1.ErrorDetail
*/
export type ErrorDetail = Message<"llm_multiverse.v1.ErrorDetail"> & {
/**
* @generated from field: string code = 1;
*/
code: string;
/**
* @generated from field: string message = 2;
*/
message: string;
/**
* @generated from field: map<string, string> metadata = 3;
*/
metadata: { [key: string]: string };
};
/**
* Describes the message llm_multiverse.v1.ErrorDetail.
* Use `create(ErrorDetailSchema)` to create a new message.
*/
export const ErrorDetailSchema: GenMessage<ErrorDetail> = /*@__PURE__*/
messageDesc(file_llm_multiverse_v1_common, 3);
/**
* A candidate memory entry proposed by a subagent for persistence.
*
* @generated from message llm_multiverse.v1.MemoryCandidate
*/
export type MemoryCandidate = Message<"llm_multiverse.v1.MemoryCandidate"> & {
/**
* @generated from field: string content = 1;
*/
content: string;
/**
* @generated from field: llm_multiverse.v1.ResultSource source = 2;
*/
source: ResultSource;
/**
* @generated from field: float confidence = 3;
*/
confidence: number;
};
/**
* Describes the message llm_multiverse.v1.MemoryCandidate.
* Use `create(MemoryCandidateSchema)` to create a new message.
*/
export const MemoryCandidateSchema: GenMessage<MemoryCandidate> = /*@__PURE__*/
messageDesc(file_llm_multiverse_v1_common, 4);
/**
* Standardized return value from any subagent to its parent.
*
* @generated from message llm_multiverse.v1.SubagentResult
*/
export type SubagentResult = Message<"llm_multiverse.v1.SubagentResult"> & {
/**
* @generated from field: llm_multiverse.v1.ResultStatus status = 1;
*/
status: ResultStatus;
/**
* 3-sentence max summary of work performed.
*
* @generated from field: string summary = 2;
*/
summary: string;
/**
* @generated from field: repeated string artifacts = 3;
*/
artifacts: string[];
/**
* @generated from field: llm_multiverse.v1.ResultQuality result_quality = 4;
*/
resultQuality: ResultQuality;
/**
* @generated from field: llm_multiverse.v1.ResultSource source = 5;
*/
source: ResultSource;
/**
* @generated from field: repeated llm_multiverse.v1.MemoryCandidate new_memory_candidates = 6;
*/
newMemoryCandidates: MemoryCandidate[];
/**
* @generated from field: optional string failure_reason = 7;
*/
failureReason?: string;
};
/**
* Describes the message llm_multiverse.v1.SubagentResult.
* Use `create(SubagentResultSchema)` to create a new message.
*/
export const SubagentResultSchema: GenMessage<SubagentResult> = /*@__PURE__*/
messageDesc(file_llm_multiverse_v1_common, 5);
/**
* Agent types with distinct tool permission manifests.
*
* @generated from enum llm_multiverse.v1.AgentType
*/
export enum AgentType {
/**
* @generated from enum value: AGENT_TYPE_UNSPECIFIED = 0;
*/
UNSPECIFIED = 0,
/**
* @generated from enum value: AGENT_TYPE_ORCHESTRATOR = 1;
*/
ORCHESTRATOR = 1,
/**
* @generated from enum value: AGENT_TYPE_RESEARCHER = 2;
*/
RESEARCHER = 2,
/**
* @generated from enum value: AGENT_TYPE_CODER = 3;
*/
CODER = 3,
/**
* @generated from enum value: AGENT_TYPE_SYSADMIN = 4;
*/
SYSADMIN = 4,
/**
* @generated from enum value: AGENT_TYPE_ASSISTANT = 5;
*/
ASSISTANT = 5,
}
/**
* Describes the enum llm_multiverse.v1.AgentType.
*/
export const AgentTypeSchema: GenEnum<AgentType> = /*@__PURE__*/
enumDesc(file_llm_multiverse_v1_common, 0);
/**
* Tool categories enforced by the Tool Broker.
*
* @generated from enum llm_multiverse.v1.ToolType
*/
export enum ToolType {
/**
* @generated from enum value: TOOL_TYPE_UNSPECIFIED = 0;
*/
UNSPECIFIED = 0,
/**
* @generated from enum value: TOOL_TYPE_MEMORY_READ = 1;
*/
MEMORY_READ = 1,
/**
* @generated from enum value: TOOL_TYPE_MEMORY_WRITE = 2;
*/
MEMORY_WRITE = 2,
/**
* @generated from enum value: TOOL_TYPE_WEB_SEARCH = 3;
*/
WEB_SEARCH = 3,
/**
* @generated from enum value: TOOL_TYPE_FS_READ = 4;
*/
FS_READ = 4,
/**
* @generated from enum value: TOOL_TYPE_FS_WRITE = 5;
*/
FS_WRITE = 5,
/**
* @generated from enum value: TOOL_TYPE_RUN_CODE = 6;
*/
RUN_CODE = 6,
/**
* @generated from enum value: TOOL_TYPE_RUN_SHELL = 7;
*/
RUN_SHELL = 7,
/**
* @generated from enum value: TOOL_TYPE_PACKAGE_INSTALL = 8;
*/
PACKAGE_INSTALL = 8,
}
/**
* Describes the enum llm_multiverse.v1.ToolType.
*/
export const ToolTypeSchema: GenEnum<ToolType> = /*@__PURE__*/
enumDesc(file_llm_multiverse_v1_common, 1);
/**
* Session-level override for broker enforcement.
*
* @generated from enum llm_multiverse.v1.OverrideLevel
*/
export enum OverrideLevel {
/**
* @generated from enum value: OVERRIDE_LEVEL_UNSPECIFIED = 0;
*/
UNSPECIFIED = 0,
/**
* Full manifest + broker enforcement (default).
*
* @generated from enum value: OVERRIDE_LEVEL_NONE = 1;
*/
NONE = 1,
/**
* High-risk tools unlocked, lineage still enforced.
*
* @generated from enum value: OVERRIDE_LEVEL_RELAX = 2;
*/
RELAX = 2,
/**
* Broker passes everything through.
*
* @generated from enum value: OVERRIDE_LEVEL_ALL = 3;
*/
ALL = 3,
}
/**
* Describes the enum llm_multiverse.v1.OverrideLevel.
*/
export const OverrideLevelSchema: GenEnum<OverrideLevel> = /*@__PURE__*/
enumDesc(file_llm_multiverse_v1_common, 2);
/**
* Status of a subagent's result.
*
* @generated from enum llm_multiverse.v1.ResultStatus
*/
export enum ResultStatus {
/**
* @generated from enum value: RESULT_STATUS_UNSPECIFIED = 0;
*/
UNSPECIFIED = 0,
/**
* @generated from enum value: RESULT_STATUS_SUCCESS = 1;
*/
SUCCESS = 1,
/**
* @generated from enum value: RESULT_STATUS_PARTIAL = 2;
*/
PARTIAL = 2,
/**
* @generated from enum value: RESULT_STATUS_FAILED = 3;
*/
FAILED = 3,
}
/**
* Describes the enum llm_multiverse.v1.ResultStatus.
*/
export const ResultStatusSchema: GenEnum<ResultStatus> = /*@__PURE__*/
enumDesc(file_llm_multiverse_v1_common, 3);
/**
* Confidence level of a result.
*
* @generated from enum llm_multiverse.v1.ResultQuality
*/
export enum ResultQuality {
/**
* @generated from enum value: RESULT_QUALITY_UNSPECIFIED = 0;
*/
UNSPECIFIED = 0,
/**
* @generated from enum value: RESULT_QUALITY_VERIFIED = 1;
*/
VERIFIED = 1,
/**
* @generated from enum value: RESULT_QUALITY_INFERRED = 2;
*/
INFERRED = 2,
/**
* @generated from enum value: RESULT_QUALITY_UNCERTAIN = 3;
*/
UNCERTAIN = 3,
}
/**
* Describes the enum llm_multiverse.v1.ResultQuality.
*/
export const ResultQualitySchema: GenEnum<ResultQuality> = /*@__PURE__*/
enumDesc(file_llm_multiverse_v1_common, 4);
/**
* Provenance of a result.
*
* @generated from enum llm_multiverse.v1.ResultSource
*/
export enum ResultSource {
/**
* @generated from enum value: RESULT_SOURCE_UNSPECIFIED = 0;
*/
UNSPECIFIED = 0,
/**
* @generated from enum value: RESULT_SOURCE_TOOL_OUTPUT = 1;
*/
TOOL_OUTPUT = 1,
/**
* @generated from enum value: RESULT_SOURCE_MODEL_KNOWLEDGE = 2;
*/
MODEL_KNOWLEDGE = 2,
/**
* @generated from enum value: RESULT_SOURCE_WEB = 3;
*/
WEB = 3,
}
/**
* Describes the enum llm_multiverse.v1.ResultSource.
*/
export const ResultSourceSchema: GenEnum<ResultSource> = /*@__PURE__*/
enumDesc(file_llm_multiverse_v1_common, 5);

View File

@@ -0,0 +1,581 @@
// @generated by protoc-gen-es v2.11.0 with parameter "target=ts"
// @generated from file llm_multiverse/v1/memory.proto (package llm_multiverse.v1, syntax proto3)
/* eslint-disable */
import type { GenEnum, GenFile, GenMessage, GenService } from "@bufbuild/protobuf/codegenv2";
import { enumDesc, fileDesc, messageDesc, serviceDesc } from "@bufbuild/protobuf/codegenv2";
import type { Timestamp } from "@bufbuild/protobuf/wkt";
import { file_google_protobuf_timestamp } from "@bufbuild/protobuf/wkt";
import type { SessionContext } from "./common_pb";
import { file_llm_multiverse_v1_common } from "./common_pb";
import type { Message } from "@bufbuild/protobuf";
/**
* Describes the file llm_multiverse/v1/memory.proto.
*/
export const file_llm_multiverse_v1_memory: GenFile = /*@__PURE__*/
fileDesc("Ch5sbG1fbXVsdGl2ZXJzZS92MS9tZW1vcnkucHJvdG8SEWxsbV9tdWx0aXZlcnNlLnYxIu4CChJQcm92ZW5hbmNlTWV0YWRhdGESFwoPc291cmNlX2FnZW50X2lkGAEgASgJEhkKEXNvdXJjZV9zZXNzaW9uX2lkGAIgASgJEhUKDWNyZWF0aW9uX3Rvb2wYAyABKAkSPAoLdHJ1c3RfbGV2ZWwYBCABKA4yJy5sbG1fbXVsdGl2ZXJzZS52MS5Qcm92ZW5hbmNlVHJ1c3RMZXZlbBIZChFwYXJlbnRfbWVtb3J5X2lkcxgFIAMoCRISCgppc19yZXZva2VkGAYgASgIEh4KEXJldm9jYXRpb25fcmVhc29uGAcgASgJSACIAQESMwoKcmV2b2tlZF9hdBgIIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAYgBARIXCgpyZXZva2VkX2J5GAkgASgJSAKIAQFCFAoSX3Jldm9jYXRpb25fcmVhc29uQg0KC19yZXZva2VkX2F0Qg0KC19yZXZva2VkX2J5IroDCgtNZW1vcnlFbnRyeRIKCgJpZBgBIAEoCRIMCgRuYW1lGAIgASgJEhMKC2Rlc2NyaXB0aW9uGAMgASgJEgwKBHRhZ3MYBCADKAkSFwoPY29ycmVsYXRpbmdfaWRzGAUgAygJEg4KBmNvcnB1cxgGIAEoCRIWCg5uYW1lX2VtYmVkZGluZxgHIAEoDBIdChVkZXNjcmlwdGlvbl9lbWJlZGRpbmcYCCABKAwSGAoQY29ycHVzX2VtYmVkZGluZxgJIAEoDBIuCgpjcmVhdGVkX2F0GAogASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIxCg1sYXN0X2FjY2Vzc2VkGAsgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIUCgxhY2Nlc3NfY291bnQYDCABKA0SNwoKcHJvdmVuYW5jZRgNIAEoDjIjLmxsbV9tdWx0aXZlcnNlLnYxLk1lbW9yeVByb3ZlbmFuY2USQgoTcHJvdmVuYW5jZV9tZXRhZGF0YRgOIAEoCzIlLmxsbV9tdWx0aXZlcnNlLnYxLlByb3ZlbmFuY2VNZXRhZGF0YSLvAQoSUXVlcnlNZW1vcnlSZXF1ZXN0EjIKB2NvbnRleHQYASABKAsyIS5sbG1fbXVsdGl2ZXJzZS52MS5TZXNzaW9uQ29udGV4dBINCgVxdWVyeRgCIAEoCRITCgttZW1vcnlfdHlwZRgDIAEoCRINCgVsaW1pdBgEIAEoDRIXCg9za2lwX2V4dHJhY3Rpb24YBSABKAgSQAoPbWluX3RydXN0X2xldmVsGAYgASgOMicubGxtX211bHRpdmVyc2UudjEuUHJvdmVuYW5jZVRydXN0TGV2ZWwSFwoPaW5jbHVkZV9yZXZva2VkGAcgASgIIoICChNRdWVyeU1lbW9yeVJlc3BvbnNlEgwKBHJhbmsYASABKA0SLQoFZW50cnkYAiABKAsyHi5sbG1fbXVsdGl2ZXJzZS52MS5NZW1vcnlFbnRyeRIZChFjb3NpbmVfc2ltaWxhcml0eRgDIAEoAhIRCglpc19jYWNoZWQYBCABKAgSJQoYY2FjaGVkX2V4dHJhY3RlZF9zZWdtZW50GAUgASgJSACIAQESIgoVZXh0cmFjdGlvbl9jb25maWRlbmNlGAYgASgCSAGIAQFCGwoZX2NhY2hlZF9leHRyYWN0ZWRfc2VnbWVudEIYChZfZXh0cmFjdGlvbl9jb25maWRlbmNlIrABChJXcml0ZU1lbW9yeVJlcXVlc3QSMgoHY29udGV4dBgBIAEoCzIhLmxsbV9tdWx0aXZlcnNlLnYxLlNlc3Npb25Db250ZXh0Ei0KBWVudHJ5GAIgASgLMh4ubGxtX211bHRpdmVyc2UudjEuTWVtb3J5RW50cnkSNwoKcHJvdmVuYW5jZRgDIAEoDjIjLmxsbV9tdWx0aXZlcnNlLnYxLk1lbW9yeVByb3ZlbmFuY2UiZwoTV3JpdGVNZW1vcnlSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEhEKCW1lbW9yeV9pZBgCIAEoCRIaCg1lcnJvcl9tZXNzYWdlGAMgASgJSACIAQFCEAoOX2Vycm9yX21lc3NhZ2UidgoUR2V0Q29ycmVsYXRlZFJlcXVlc3QSMgoHY29udGV4dBgBIAEoCzIhLmxsbV9tdWx0aXZlcnNlLnYxLlNlc3Npb25Db250ZXh0EhEKCW1lbW9yeV9pZBgCIAEoCRIXCg9jb3JyZWxhdGluZ19pZHMYAyADKAkivgEKFUdldENvcnJlbGF0ZWRSZXNwb25zZRJQCgxjb3JyZWxhdGlvbnMYASADKAsyOi5sbG1fbXVsdGl2ZXJzZS52MS5HZXRDb3JyZWxhdGVkUmVzcG9uc2UuQ29ycmVsYXRpb25zRW50cnkaUwoRQ29ycmVsYXRpb25zRW50cnkSCwoDa2V5GAEgASgJEi0KBXZhbHVlGAIgASgLMh4ubGxtX211bHRpdmVyc2UudjEuTWVtb3J5RW50cnk6AjgBIm0KE1Jldm9rZU1lbW9yeVJlcXVlc3QSMgoHY29udGV4dBgBIAEoCzIhLmxsbV9tdWx0aXZlcnNlLnYxLlNlc3Npb25Db250ZXh0EhIKCm1lbW9yeV9pZHMYAiADKAkSDgoGcmVhc29uGAMgASgJImwKFFJldm9rZU1lbW9yeVJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSFQoNcmV2b2tlZF9jb3VudBgCIAEoDRIaCg1lcnJvcl9tZXNzYWdlGAMgASgJSACIAQFCEAoOX2Vycm9yX21lc3NhZ2UqdQoQTWVtb3J5UHJvdmVuYW5jZRIhCh1NRU1PUllfUFJPVkVOQU5DRV9VTlNQRUNJRklFRBAAEh4KGk1FTU9SWV9QUk9WRU5BTkNFX0lOVEVSTkFMEAESHgoaTUVNT1JZX1BST1ZFTkFOQ0VfRVhURVJOQUwQAirSAQoUUHJvdmVuYW5jZVRydXN0TGV2ZWwSJgoiUFJPVkVOQU5DRV9UUlVTVF9MRVZFTF9VTlNQRUNJRklFRBAAEiIKHlBST1ZFTkFOQ0VfVFJVU1RfTEVWRUxfVFJVU1RFRBABEiQKIFBST1ZFTkFOQ0VfVFJVU1RfTEVWRUxfU0FOSVRJWkVEEAISJAogUFJPVkVOQU5DRV9UUlVTVF9MRVZFTF9VTlRSVVNURUQQAxIiCh5QUk9WRU5BTkNFX1RSVVNUX0xFVkVMX1JFVk9LRUQQBDKSAwoNTWVtb3J5U2VydmljZRJeCgtRdWVyeU1lbW9yeRIlLmxsbV9tdWx0aXZlcnNlLnYxLlF1ZXJ5TWVtb3J5UmVxdWVzdBomLmxsbV9tdWx0aXZlcnNlLnYxLlF1ZXJ5TWVtb3J5UmVzcG9uc2UwARJcCgtXcml0ZU1lbW9yeRIlLmxsbV9tdWx0aXZlcnNlLnYxLldyaXRlTWVtb3J5UmVxdWVzdBomLmxsbV9tdWx0aXZlcnNlLnYxLldyaXRlTWVtb3J5UmVzcG9uc2USYgoNR2V0Q29ycmVsYXRlZBInLmxsbV9tdWx0aXZlcnNlLnYxLkdldENvcnJlbGF0ZWRSZXF1ZXN0GigubGxtX211bHRpdmVyc2UudjEuR2V0Q29ycmVsYXRlZFJlc3BvbnNlEl8KDFJldm9rZU1lbW9yeRImLmxsbV9tdWx0aXZlcnNlLnYxLlJldm9rZU1lbW9yeVJlcXVlc3QaJy5sbG1fbXVsdGl2ZXJzZS52MS5SZXZva2VNZW1vcnlSZXNwb25zZWIGcHJvdG8z", [file_google_protobuf_timestamp, file_llm_multiverse_v1_common]);
/**
* Detailed provenance metadata for a memory entry.
*
* @generated from message llm_multiverse.v1.ProvenanceMetadata
*/
export type ProvenanceMetadata = Message<"llm_multiverse.v1.ProvenanceMetadata"> & {
/**
* The agent ID that created this memory.
*
* @generated from field: string source_agent_id = 1;
*/
sourceAgentId: string;
/**
* The session ID during which this memory was created.
*
* @generated from field: string source_session_id = 2;
*/
sourceSessionId: string;
/**
* The tool that produced the content (e.g., "web_search", "fs_read", "model_inference").
*
* @generated from field: string creation_tool = 3;
*/
creationTool: string;
/**
* Trust level of this memory.
*
* @generated from field: llm_multiverse.v1.ProvenanceTrustLevel trust_level = 4;
*/
trustLevel: ProvenanceTrustLevel;
/**
* For derived memories: IDs of parent memories this was derived from.
*
* @generated from field: repeated string parent_memory_ids = 5;
*/
parentMemoryIds: string[];
/**
* Whether this memory has been administratively tainted/revoked.
*
* @generated from field: bool is_revoked = 6;
*/
isRevoked: boolean;
/**
* Reason for revocation (set by admin).
*
* @generated from field: optional string revocation_reason = 7;
*/
revocationReason?: string;
/**
* Timestamp when the memory was revoked.
*
* @generated from field: optional google.protobuf.Timestamp revoked_at = 8;
*/
revokedAt?: Timestamp;
/**
* The agent ID that revoked this memory (admin action).
*
* @generated from field: optional string revoked_by = 9;
*/
revokedBy?: string;
};
/**
* Describes the message llm_multiverse.v1.ProvenanceMetadata.
* Use `create(ProvenanceMetadataSchema)` to create a new message.
*/
export const ProvenanceMetadataSchema: GenMessage<ProvenanceMetadata> = /*@__PURE__*/
messageDesc(file_llm_multiverse_v1_memory, 0);
/**
* A single memory entry stored in DuckDB with VSS.
*
* @generated from message llm_multiverse.v1.MemoryEntry
*/
export type MemoryEntry = Message<"llm_multiverse.v1.MemoryEntry"> & {
/**
* @generated from field: string id = 1;
*/
id: string;
/**
* @generated from field: string name = 2;
*/
name: string;
/**
* @generated from field: string description = 3;
*/
description: string;
/**
* @generated from field: repeated string tags = 4;
*/
tags: string[];
/**
* @generated from field: repeated string correlating_ids = 5;
*/
correlatingIds: string[];
/**
* Full text content.
*
* @generated from field: string corpus = 6;
*/
corpus: string;
/**
* Embedding vectors (from nomic-embed-text).
*
* @generated from field: bytes name_embedding = 7;
*/
nameEmbedding: Uint8Array;
/**
* @generated from field: bytes description_embedding = 8;
*/
descriptionEmbedding: Uint8Array;
/**
* @generated from field: bytes corpus_embedding = 9;
*/
corpusEmbedding: Uint8Array;
/**
* @generated from field: google.protobuf.Timestamp created_at = 10;
*/
createdAt?: Timestamp;
/**
* @generated from field: google.protobuf.Timestamp last_accessed = 11;
*/
lastAccessed?: Timestamp;
/**
* @generated from field: uint32 access_count = 12;
*/
accessCount: number;
/**
* @generated from field: llm_multiverse.v1.MemoryProvenance provenance = 13;
*/
provenance: MemoryProvenance;
/**
* Detailed provenance metadata (source agent, trust level, revocation status).
*
* @generated from field: llm_multiverse.v1.ProvenanceMetadata provenance_metadata = 14;
*/
provenanceMetadata?: ProvenanceMetadata;
};
/**
* Describes the message llm_multiverse.v1.MemoryEntry.
* Use `create(MemoryEntrySchema)` to create a new message.
*/
export const MemoryEntrySchema: GenMessage<MemoryEntry> = /*@__PURE__*/
messageDesc(file_llm_multiverse_v1_memory, 1);
/**
* @generated from message llm_multiverse.v1.QueryMemoryRequest
*/
export type QueryMemoryRequest = Message<"llm_multiverse.v1.QueryMemoryRequest"> & {
/**
* @generated from field: llm_multiverse.v1.SessionContext context = 1;
*/
context?: SessionContext;
/**
* @generated from field: string query = 2;
*/
query: string;
/**
* Optional filter by memory type/tag.
*
* @generated from field: string memory_type = 3;
*/
memoryType: string;
/**
* Max results to return (default 5).
*
* @generated from field: uint32 limit = 4;
*/
limit: number;
/**
* When true, skip the extraction step for lower latency.
*
* @generated from field: bool skip_extraction = 5;
*/
skipExtraction: boolean;
/**
* Filter results by provenance trust level (only return entries at or above this level).
*
* @generated from field: llm_multiverse.v1.ProvenanceTrustLevel min_trust_level = 6;
*/
minTrustLevel: ProvenanceTrustLevel;
/**
* When true, include revoked memories in results (default: false, meaning revoked memories are excluded).
*
* @generated from field: bool include_revoked = 7;
*/
includeRevoked: boolean;
};
/**
* Describes the message llm_multiverse.v1.QueryMemoryRequest.
* Use `create(QueryMemoryRequestSchema)` to create a new message.
*/
export const QueryMemoryRequestSchema: GenMessage<QueryMemoryRequest> = /*@__PURE__*/
messageDesc(file_llm_multiverse_v1_memory, 2);
/**
* Streamed result for each matching memory entry.
*
* @generated from message llm_multiverse.v1.QueryMemoryResponse
*/
export type QueryMemoryResponse = Message<"llm_multiverse.v1.QueryMemoryResponse"> & {
/**
* @generated from field: uint32 rank = 1;
*/
rank: number;
/**
* @generated from field: llm_multiverse.v1.MemoryEntry entry = 2;
*/
entry?: MemoryEntry;
/**
* @generated from field: float cosine_similarity = 3;
*/
cosineSimilarity: number;
/**
* @generated from field: bool is_cached = 4;
*/
isCached: boolean;
/**
* Extracted relevant segment if cache hit.
*
* @generated from field: optional string cached_extracted_segment = 5;
*/
cachedExtractedSegment?: string;
/**
* Confidence of the extraction (0.0-1.0). Only set when extraction was performed.
*
* @generated from field: optional float extraction_confidence = 6;
*/
extractionConfidence?: number;
};
/**
* Describes the message llm_multiverse.v1.QueryMemoryResponse.
* Use `create(QueryMemoryResponseSchema)` to create a new message.
*/
export const QueryMemoryResponseSchema: GenMessage<QueryMemoryResponse> = /*@__PURE__*/
messageDesc(file_llm_multiverse_v1_memory, 3);
/**
* @generated from message llm_multiverse.v1.WriteMemoryRequest
*/
export type WriteMemoryRequest = Message<"llm_multiverse.v1.WriteMemoryRequest"> & {
/**
* @generated from field: llm_multiverse.v1.SessionContext context = 1;
*/
context?: SessionContext;
/**
* @generated from field: llm_multiverse.v1.MemoryEntry entry = 2;
*/
entry?: MemoryEntry;
/**
* @generated from field: llm_multiverse.v1.MemoryProvenance provenance = 3;
*/
provenance: MemoryProvenance;
};
/**
* Describes the message llm_multiverse.v1.WriteMemoryRequest.
* Use `create(WriteMemoryRequestSchema)` to create a new message.
*/
export const WriteMemoryRequestSchema: GenMessage<WriteMemoryRequest> = /*@__PURE__*/
messageDesc(file_llm_multiverse_v1_memory, 4);
/**
* @generated from message llm_multiverse.v1.WriteMemoryResponse
*/
export type WriteMemoryResponse = Message<"llm_multiverse.v1.WriteMemoryResponse"> & {
/**
* @generated from field: bool success = 1;
*/
success: boolean;
/**
* ID of the created or updated memory entry.
*
* @generated from field: string memory_id = 2;
*/
memoryId: string;
/**
* @generated from field: optional string error_message = 3;
*/
errorMessage?: string;
};
/**
* Describes the message llm_multiverse.v1.WriteMemoryResponse.
* Use `create(WriteMemoryResponseSchema)` to create a new message.
*/
export const WriteMemoryResponseSchema: GenMessage<WriteMemoryResponse> = /*@__PURE__*/
messageDesc(file_llm_multiverse_v1_memory, 5);
/**
* @generated from message llm_multiverse.v1.GetCorrelatedRequest
*/
export type GetCorrelatedRequest = Message<"llm_multiverse.v1.GetCorrelatedRequest"> & {
/**
* @generated from field: llm_multiverse.v1.SessionContext context = 1;
*/
context?: SessionContext;
/**
* @generated from field: string memory_id = 2;
*/
memoryId: string;
/**
* @generated from field: repeated string correlating_ids = 3;
*/
correlatingIds: string[];
};
/**
* Describes the message llm_multiverse.v1.GetCorrelatedRequest.
* Use `create(GetCorrelatedRequestSchema)` to create a new message.
*/
export const GetCorrelatedRequestSchema: GenMessage<GetCorrelatedRequest> = /*@__PURE__*/
messageDesc(file_llm_multiverse_v1_memory, 6);
/**
* @generated from message llm_multiverse.v1.GetCorrelatedResponse
*/
export type GetCorrelatedResponse = Message<"llm_multiverse.v1.GetCorrelatedResponse"> & {
/**
* Map of memory ID to entry (descriptions only, not full corpus).
*
* @generated from field: map<string, llm_multiverse.v1.MemoryEntry> correlations = 1;
*/
correlations: { [key: string]: MemoryEntry };
};
/**
* Describes the message llm_multiverse.v1.GetCorrelatedResponse.
* Use `create(GetCorrelatedResponseSchema)` to create a new message.
*/
export const GetCorrelatedResponseSchema: GenMessage<GetCorrelatedResponse> = /*@__PURE__*/
messageDesc(file_llm_multiverse_v1_memory, 7);
/**
* Request to mark memories as tainted/revoked (admin operation).
*
* @generated from message llm_multiverse.v1.RevokeMemoryRequest
*/
export type RevokeMemoryRequest = Message<"llm_multiverse.v1.RevokeMemoryRequest"> & {
/**
* @generated from field: llm_multiverse.v1.SessionContext context = 1;
*/
context?: SessionContext;
/**
* Memory IDs to revoke.
*
* @generated from field: repeated string memory_ids = 2;
*/
memoryIds: string[];
/**
* Reason for revocation.
*
* @generated from field: string reason = 3;
*/
reason: string;
};
/**
* Describes the message llm_multiverse.v1.RevokeMemoryRequest.
* Use `create(RevokeMemoryRequestSchema)` to create a new message.
*/
export const RevokeMemoryRequestSchema: GenMessage<RevokeMemoryRequest> = /*@__PURE__*/
messageDesc(file_llm_multiverse_v1_memory, 8);
/**
* @generated from message llm_multiverse.v1.RevokeMemoryResponse
*/
export type RevokeMemoryResponse = Message<"llm_multiverse.v1.RevokeMemoryResponse"> & {
/**
* @generated from field: bool success = 1;
*/
success: boolean;
/**
* Number of memories revoked.
*
* @generated from field: uint32 revoked_count = 2;
*/
revokedCount: number;
/**
* @generated from field: optional string error_message = 3;
*/
errorMessage?: string;
};
/**
* Describes the message llm_multiverse.v1.RevokeMemoryResponse.
* Use `create(RevokeMemoryResponseSchema)` to create a new message.
*/
export const RevokeMemoryResponseSchema: GenMessage<RevokeMemoryResponse> = /*@__PURE__*/
messageDesc(file_llm_multiverse_v1_memory, 9);
/**
* Provenance of a memory entry.
*
* @generated from enum llm_multiverse.v1.MemoryProvenance
*/
export enum MemoryProvenance {
/**
* @generated from enum value: MEMORY_PROVENANCE_UNSPECIFIED = 0;
*/
UNSPECIFIED = 0,
/**
* Generated internally by agents.
*
* @generated from enum value: MEMORY_PROVENANCE_INTERNAL = 1;
*/
INTERNAL = 1,
/**
* Sourced from external content (web, files). Tagged for poisoning protection.
*
* @generated from enum value: MEMORY_PROVENANCE_EXTERNAL = 2;
*/
EXTERNAL = 2,
}
/**
* Describes the enum llm_multiverse.v1.MemoryProvenance.
*/
export const MemoryProvenanceSchema: GenEnum<MemoryProvenance> = /*@__PURE__*/
enumDesc(file_llm_multiverse_v1_memory, 0);
/**
* Trust level for provenance-based filtering.
*
* @generated from enum llm_multiverse.v1.ProvenanceTrustLevel
*/
export enum ProvenanceTrustLevel {
/**
* @generated from enum value: PROVENANCE_TRUST_LEVEL_UNSPECIFIED = 0;
*/
UNSPECIFIED = 0,
/**
* Fully trusted (internal agent-generated content).
*
* @generated from enum value: PROVENANCE_TRUST_LEVEL_TRUSTED = 1;
*/
TRUSTED = 1,
/**
* External content that has been sanitized.
*
* @generated from enum value: PROVENANCE_TRUST_LEVEL_SANITIZED = 2;
*/
SANITIZED = 2,
/**
* External content, not yet sanitized.
*
* @generated from enum value: PROVENANCE_TRUST_LEVEL_UNTRUSTED = 3;
*/
UNTRUSTED = 3,
/**
* Administratively revoked/tainted.
*
* @generated from enum value: PROVENANCE_TRUST_LEVEL_REVOKED = 4;
*/
REVOKED = 4,
}
/**
* Describes the enum llm_multiverse.v1.ProvenanceTrustLevel.
*/
export const ProvenanceTrustLevelSchema: GenEnum<ProvenanceTrustLevel> = /*@__PURE__*/
enumDesc(file_llm_multiverse_v1_memory, 1);
/**
* Vector-backed memory storage with staged retrieval.
*
* @generated from service llm_multiverse.v1.MemoryService
*/
export const MemoryService: GenService<{
/**
* Query memory with staged coarse-to-fine retrieval. Server-streaming.
*
* @generated from rpc llm_multiverse.v1.MemoryService.QueryMemory
*/
queryMemory: {
methodKind: "server_streaming";
input: typeof QueryMemoryRequestSchema;
output: typeof QueryMemoryResponseSchema;
},
/**
* Write or update a memory entry.
*
* @generated from rpc llm_multiverse.v1.MemoryService.WriteMemory
*/
writeMemory: {
methodKind: "unary";
input: typeof WriteMemoryRequestSchema;
output: typeof WriteMemoryResponseSchema;
},
/**
* Get correlated memory entries by ID.
*
* @generated from rpc llm_multiverse.v1.MemoryService.GetCorrelated
*/
getCorrelated: {
methodKind: "unary";
input: typeof GetCorrelatedRequestSchema;
output: typeof GetCorrelatedResponseSchema;
},
/**
* Mark memories as tainted/revoked (admin operation).
*
* @generated from rpc llm_multiverse.v1.MemoryService.RevokeMemory
*/
revokeMemory: {
methodKind: "unary";
input: typeof RevokeMemoryRequestSchema;
output: typeof RevokeMemoryResponseSchema;
},
}> = /*@__PURE__*/
serviceDesc(file_llm_multiverse_v1_memory, 0);

View File

@@ -0,0 +1,339 @@
// @generated by protoc-gen-es v2.11.0 with parameter "target=ts"
// @generated from file llm_multiverse/v1/model_gateway.proto (package llm_multiverse.v1, syntax proto3)
/* eslint-disable */
import type { GenEnum, GenFile, GenMessage, GenService } from "@bufbuild/protobuf/codegenv2";
import { enumDesc, fileDesc, messageDesc, serviceDesc } from "@bufbuild/protobuf/codegenv2";
import type { SessionContext } from "./common_pb";
import { file_llm_multiverse_v1_common } from "./common_pb";
import type { Message } from "@bufbuild/protobuf";
/**
* Describes the file llm_multiverse/v1/model_gateway.proto.
*/
export const file_llm_multiverse_v1_model_gateway: GenFile = /*@__PURE__*/
fileDesc("CiVsbG1fbXVsdGl2ZXJzZS92MS9tb2RlbF9nYXRld2F5LnByb3RvEhFsbG1fbXVsdGl2ZXJzZS52MSKtAgoPSW5mZXJlbmNlUGFyYW1zEjIKB2NvbnRleHQYASABKAsyIS5sbG1fbXVsdGl2ZXJzZS52MS5TZXNzaW9uQ29udGV4dBIOCgZwcm9tcHQYAiABKAkSOgoPdGFza19jb21wbGV4aXR5GAMgASgOMiEubGxtX211bHRpdmVyc2UudjEuVGFza0NvbXBsZXhpdHkSEgoKbWF4X3Rva2VucxgEIAEoDRIYCgt0ZW1wZXJhdHVyZRgFIAEoAkgAiAEBEhIKBXRvcF9wGAYgASgCSAGIAQESFgoOc3RvcF9zZXF1ZW5jZXMYByADKAkSFwoKbW9kZWxfaGludBgIIAEoCUgCiAEBQg4KDF90ZW1wZXJhdHVyZUIICgZfdG9wX3BCDQoLX21vZGVsX2hpbnQiTAoWU3RyZWFtSW5mZXJlbmNlUmVxdWVzdBIyCgZwYXJhbXMYASABKAsyIi5sbG1fbXVsdGl2ZXJzZS52MS5JbmZlcmVuY2VQYXJhbXMiRgoQSW5mZXJlbmNlUmVxdWVzdBIyCgZwYXJhbXMYASABKAsyIi5sbG1fbXVsdGl2ZXJzZS52MS5JbmZlcmVuY2VQYXJhbXMiVgoXU3RyZWFtSW5mZXJlbmNlUmVzcG9uc2USDQoFdG9rZW4YASABKAkSGgoNZmluaXNoX3JlYXNvbhgCIAEoCUgAiAEBQhAKDl9maW5pc2hfcmVhc29uIk0KEUluZmVyZW5jZVJlc3BvbnNlEgwKBHRleHQYASABKAkSFQoNZmluaXNoX3JlYXNvbhgCIAEoCRITCgt0b2tlbnNfdXNlZBgDIAEoDSJ6ChhHZW5lcmF0ZUVtYmVkZGluZ1JlcXVlc3QSMgoHY29udGV4dBgBIAEoCzIhLmxsbV9tdWx0aXZlcnNlLnYxLlNlc3Npb25Db250ZXh0EgwKBHRleHQYAiABKAkSEgoFbW9kZWwYAyABKAlIAIgBAUIICgZfbW9kZWwiQgoZR2VuZXJhdGVFbWJlZGRpbmdSZXNwb25zZRIRCgllbWJlZGRpbmcYASADKAISEgoKZGltZW5zaW9ucxgCIAEoDSI9ChNJc01vZGVsUmVhZHlSZXF1ZXN0EhcKCm1vZGVsX25hbWUYASABKAlIAIgBAUINCgtfbW9kZWxfbmFtZSJtChRJc01vZGVsUmVhZHlSZXNwb25zZRINCgVyZWFkeRgBIAEoCBIYChBhdmFpbGFibGVfbW9kZWxzGAIgAygJEhoKDWVycm9yX21lc3NhZ2UYAyABKAlIAIgBAUIQCg5fZXJyb3JfbWVzc2FnZSpqCg5UYXNrQ29tcGxleGl0eRIfChtUQVNLX0NPTVBMRVhJVFlfVU5TUEVDSUZJRUQQABIaChZUQVNLX0NPTVBMRVhJVFlfU0lNUExFEAESGwoXVEFTS19DT01QTEVYSVRZX0NPTVBMRVgQAjKqAwoTTW9kZWxHYXRld2F5U2VydmljZRJqCg9TdHJlYW1JbmZlcmVuY2USKS5sbG1fbXVsdGl2ZXJzZS52MS5TdHJlYW1JbmZlcmVuY2VSZXF1ZXN0GioubGxtX211bHRpdmVyc2UudjEuU3RyZWFtSW5mZXJlbmNlUmVzcG9uc2UwARJWCglJbmZlcmVuY2USIy5sbG1fbXVsdGl2ZXJzZS52MS5JbmZlcmVuY2VSZXF1ZXN0GiQubGxtX211bHRpdmVyc2UudjEuSW5mZXJlbmNlUmVzcG9uc2USbgoRR2VuZXJhdGVFbWJlZGRpbmcSKy5sbG1fbXVsdGl2ZXJzZS52MS5HZW5lcmF0ZUVtYmVkZGluZ1JlcXVlc3QaLC5sbG1fbXVsdGl2ZXJzZS52MS5HZW5lcmF0ZUVtYmVkZGluZ1Jlc3BvbnNlEl8KDElzTW9kZWxSZWFkeRImLmxsbV9tdWx0aXZlcnNlLnYxLklzTW9kZWxSZWFkeVJlcXVlc3QaJy5sbG1fbXVsdGl2ZXJzZS52MS5Jc01vZGVsUmVhZHlSZXNwb25zZWIGcHJvdG8z", [file_llm_multiverse_v1_common]);
/**
* Shared inference parameters used by both streaming and unary RPCs.
*
* @generated from message llm_multiverse.v1.InferenceParams
*/
export type InferenceParams = Message<"llm_multiverse.v1.InferenceParams"> & {
/**
* @generated from field: llm_multiverse.v1.SessionContext context = 1;
*/
context?: SessionContext;
/**
* @generated from field: string prompt = 2;
*/
prompt: string;
/**
* @generated from field: llm_multiverse.v1.TaskComplexity task_complexity = 3;
*/
taskComplexity: TaskComplexity;
/**
* @generated from field: uint32 max_tokens = 4;
*/
maxTokens: number;
/**
* @generated from field: optional float temperature = 5;
*/
temperature?: number;
/**
* @generated from field: optional float top_p = 6;
*/
topP?: number;
/**
* @generated from field: repeated string stop_sequences = 7;
*/
stopSequences: string[];
/**
* Explicit model name or alias override. If set, bypasses task_complexity routing.
*
* @generated from field: optional string model_hint = 8;
*/
modelHint?: string;
};
/**
* Describes the message llm_multiverse.v1.InferenceParams.
* Use `create(InferenceParamsSchema)` to create a new message.
*/
export const InferenceParamsSchema: GenMessage<InferenceParams> = /*@__PURE__*/
messageDesc(file_llm_multiverse_v1_model_gateway, 0);
/**
* @generated from message llm_multiverse.v1.StreamInferenceRequest
*/
export type StreamInferenceRequest = Message<"llm_multiverse.v1.StreamInferenceRequest"> & {
/**
* @generated from field: llm_multiverse.v1.InferenceParams params = 1;
*/
params?: InferenceParams;
};
/**
* Describes the message llm_multiverse.v1.StreamInferenceRequest.
* Use `create(StreamInferenceRequestSchema)` to create a new message.
*/
export const StreamInferenceRequestSchema: GenMessage<StreamInferenceRequest> = /*@__PURE__*/
messageDesc(file_llm_multiverse_v1_model_gateway, 1);
/**
* @generated from message llm_multiverse.v1.InferenceRequest
*/
export type InferenceRequest = Message<"llm_multiverse.v1.InferenceRequest"> & {
/**
* @generated from field: llm_multiverse.v1.InferenceParams params = 1;
*/
params?: InferenceParams;
};
/**
* Describes the message llm_multiverse.v1.InferenceRequest.
* Use `create(InferenceRequestSchema)` to create a new message.
*/
export const InferenceRequestSchema: GenMessage<InferenceRequest> = /*@__PURE__*/
messageDesc(file_llm_multiverse_v1_model_gateway, 2);
/**
* Single token in a streaming response.
*
* @generated from message llm_multiverse.v1.StreamInferenceResponse
*/
export type StreamInferenceResponse = Message<"llm_multiverse.v1.StreamInferenceResponse"> & {
/**
* @generated from field: string token = 1;
*/
token: string;
/**
* @generated from field: optional string finish_reason = 2;
*/
finishReason?: string;
};
/**
* Describes the message llm_multiverse.v1.StreamInferenceResponse.
* Use `create(StreamInferenceResponseSchema)` to create a new message.
*/
export const StreamInferenceResponseSchema: GenMessage<StreamInferenceResponse> = /*@__PURE__*/
messageDesc(file_llm_multiverse_v1_model_gateway, 3);
/**
* Complete inference result.
*
* @generated from message llm_multiverse.v1.InferenceResponse
*/
export type InferenceResponse = Message<"llm_multiverse.v1.InferenceResponse"> & {
/**
* @generated from field: string text = 1;
*/
text: string;
/**
* @generated from field: string finish_reason = 2;
*/
finishReason: string;
/**
* @generated from field: uint32 tokens_used = 3;
*/
tokensUsed: number;
};
/**
* Describes the message llm_multiverse.v1.InferenceResponse.
* Use `create(InferenceResponseSchema)` to create a new message.
*/
export const InferenceResponseSchema: GenMessage<InferenceResponse> = /*@__PURE__*/
messageDesc(file_llm_multiverse_v1_model_gateway, 4);
/**
* @generated from message llm_multiverse.v1.GenerateEmbeddingRequest
*/
export type GenerateEmbeddingRequest = Message<"llm_multiverse.v1.GenerateEmbeddingRequest"> & {
/**
* @generated from field: llm_multiverse.v1.SessionContext context = 1;
*/
context?: SessionContext;
/**
* @generated from field: string text = 2;
*/
text: string;
/**
* Model to use (defaults to nomic-embed-text).
*
* @generated from field: optional string model = 3;
*/
model?: string;
};
/**
* Describes the message llm_multiverse.v1.GenerateEmbeddingRequest.
* Use `create(GenerateEmbeddingRequestSchema)` to create a new message.
*/
export const GenerateEmbeddingRequestSchema: GenMessage<GenerateEmbeddingRequest> = /*@__PURE__*/
messageDesc(file_llm_multiverse_v1_model_gateway, 5);
/**
* @generated from message llm_multiverse.v1.GenerateEmbeddingResponse
*/
export type GenerateEmbeddingResponse = Message<"llm_multiverse.v1.GenerateEmbeddingResponse"> & {
/**
* Raw embedding vector.
*
* @generated from field: repeated float embedding = 1;
*/
embedding: number[];
/**
* @generated from field: uint32 dimensions = 2;
*/
dimensions: number;
};
/**
* Describes the message llm_multiverse.v1.GenerateEmbeddingResponse.
* Use `create(GenerateEmbeddingResponseSchema)` to create a new message.
*/
export const GenerateEmbeddingResponseSchema: GenMessage<GenerateEmbeddingResponse> = /*@__PURE__*/
messageDesc(file_llm_multiverse_v1_model_gateway, 6);
/**
* @generated from message llm_multiverse.v1.IsModelReadyRequest
*/
export type IsModelReadyRequest = Message<"llm_multiverse.v1.IsModelReadyRequest"> & {
/**
* Specific model to check. If empty, checks all configured models.
*
* @generated from field: optional string model_name = 1;
*/
modelName?: string;
};
/**
* Describes the message llm_multiverse.v1.IsModelReadyRequest.
* Use `create(IsModelReadyRequestSchema)` to create a new message.
*/
export const IsModelReadyRequestSchema: GenMessage<IsModelReadyRequest> = /*@__PURE__*/
messageDesc(file_llm_multiverse_v1_model_gateway, 7);
/**
* @generated from message llm_multiverse.v1.IsModelReadyResponse
*/
export type IsModelReadyResponse = Message<"llm_multiverse.v1.IsModelReadyResponse"> & {
/**
* @generated from field: bool ready = 1;
*/
ready: boolean;
/**
* @generated from field: repeated string available_models = 2;
*/
availableModels: string[];
/**
* @generated from field: optional string error_message = 3;
*/
errorMessage?: string;
};
/**
* Describes the message llm_multiverse.v1.IsModelReadyResponse.
* Use `create(IsModelReadyResponseSchema)` to create a new message.
*/
export const IsModelReadyResponseSchema: GenMessage<IsModelReadyResponse> = /*@__PURE__*/
messageDesc(file_llm_multiverse_v1_model_gateway, 8);
/**
* Hint for model routing based on task complexity.
*
* @generated from enum llm_multiverse.v1.TaskComplexity
*/
export enum TaskComplexity {
/**
* @generated from enum value: TASK_COMPLEXITY_UNSPECIFIED = 0;
*/
UNSPECIFIED = 0,
/**
* Route to smaller models (3B/7B).
*
* @generated from enum value: TASK_COMPLEXITY_SIMPLE = 1;
*/
SIMPLE = 1,
/**
* Route to larger models (14B) for reasoning/code.
*
* @generated from enum value: TASK_COMPLEXITY_COMPLEX = 2;
*/
COMPLEX = 2,
}
/**
* Describes the enum llm_multiverse.v1.TaskComplexity.
*/
export const TaskComplexitySchema: GenEnum<TaskComplexity> = /*@__PURE__*/
enumDesc(file_llm_multiverse_v1_model_gateway, 0);
/**
* Wraps Ollama HTTP API, exposes inference via gRPC.
*
* @generated from service llm_multiverse.v1.ModelGatewayService
*/
export const ModelGatewayService: GenService<{
/**
* Streaming token-by-token inference.
*
* @generated from rpc llm_multiverse.v1.ModelGatewayService.StreamInference
*/
streamInference: {
methodKind: "server_streaming";
input: typeof StreamInferenceRequestSchema;
output: typeof StreamInferenceResponseSchema;
},
/**
* Synchronous full-text inference.
*
* @generated from rpc llm_multiverse.v1.ModelGatewayService.Inference
*/
inference: {
methodKind: "unary";
input: typeof InferenceRequestSchema;
output: typeof InferenceResponseSchema;
},
/**
* Generate embedding vector for text input.
*
* @generated from rpc llm_multiverse.v1.ModelGatewayService.GenerateEmbedding
*/
generateEmbedding: {
methodKind: "unary";
input: typeof GenerateEmbeddingRequestSchema;
output: typeof GenerateEmbeddingResponseSchema;
},
/**
* Check model availability.
*
* @generated from rpc llm_multiverse.v1.ModelGatewayService.IsModelReady
*/
isModelReady: {
methodKind: "unary";
input: typeof IsModelReadyRequestSchema;
output: typeof IsModelReadyResponseSchema;
},
}> = /*@__PURE__*/
serviceDesc(file_llm_multiverse_v1_model_gateway, 0);

View File

@@ -0,0 +1,272 @@
// @generated by protoc-gen-es v2.11.0 with parameter "target=ts"
// @generated from file llm_multiverse/v1/orchestrator.proto (package llm_multiverse.v1, syntax proto3)
/* eslint-disable */
import type { GenEnum, GenFile, GenMessage, GenService } from "@bufbuild/protobuf/codegenv2";
import { enumDesc, fileDesc, messageDesc, serviceDesc } from "@bufbuild/protobuf/codegenv2";
import type { AgentType, OverrideLevel, SessionContext, SubagentResult, ToolType } from "./common_pb";
import { file_llm_multiverse_v1_common } from "./common_pb";
import type { Message } from "@bufbuild/protobuf";
/**
* Describes the file llm_multiverse/v1/orchestrator.proto.
*/
export const file_llm_multiverse_v1_orchestrator: GenFile = /*@__PURE__*/
fileDesc("CiRsbG1fbXVsdGl2ZXJzZS92MS9vcmNoZXN0cmF0b3IucHJvdG8SEWxsbV9tdWx0aXZlcnNlLnYxIn4KDVNlc3Npb25Db25maWcSOAoOb3ZlcnJpZGVfbGV2ZWwYASABKA4yIC5sbG1fbXVsdGl2ZXJzZS52MS5PdmVycmlkZUxldmVsEhYKDmRpc2FibGVkX3Rvb2xzGAIgAygJEhsKE2dyYW50ZWRfcGVybWlzc2lvbnMYAyADKAkirwEKEVN1YnRhc2tEZWZpbml0aW9uEgoKAmlkGAEgASgJEhMKC2Rlc2NyaXB0aW9uGAIgASgJEjAKCmFnZW50X3R5cGUYAyABKA4yHC5sbG1fbXVsdGl2ZXJzZS52MS5BZ2VudFR5cGUSEgoKZGVwZW5kc19vbhgEIAMoCRIzCg50b29sc19yZXF1aXJlZBgFIAMoDjIbLmxsbV9tdWx0aXZlcnNlLnYxLlRvb2xUeXBlIoYCCg9TdWJhZ2VudFJlcXVlc3QSMgoHY29udGV4dBgBIAEoCzIhLmxsbV9tdWx0aXZlcnNlLnYxLlNlc3Npb25Db250ZXh0EhAKCGFnZW50X2lkGAIgASgJEjAKCmFnZW50X3R5cGUYAyABKA4yHC5sbG1fbXVsdGl2ZXJzZS52MS5BZ2VudFR5cGUSDAoEdGFzaxgEIAEoCRIfChdyZWxldmFudF9tZW1vcnlfY29udGV4dBgFIAMoCRISCgptYXhfdG9rZW5zGAYgASgNEjgKDnNlc3Npb25fY29uZmlnGAcgASgLMiAubGxtX211bHRpdmVyc2UudjEuU2Vzc2lvbkNvbmZpZyKTAQoVUHJvY2Vzc1JlcXVlc3RSZXF1ZXN0EhIKCnNlc3Npb25faWQYASABKAkSFAoMdXNlcl9tZXNzYWdlGAIgASgJEj0KDnNlc3Npb25fY29uZmlnGAMgASgLMiAubGxtX211bHRpdmVyc2UudjEuU2Vzc2lvbkNvbmZpZ0gAiAEBQhEKD19zZXNzaW9uX2NvbmZpZyLoAQoWUHJvY2Vzc1JlcXVlc3RSZXNwb25zZRI0CgVzdGF0ZRgBIAEoDjIlLmxsbV9tdWx0aXZlcnNlLnYxLk9yY2hlc3RyYXRpb25TdGF0ZRIPCgdtZXNzYWdlGAIgASgJEiAKE2ludGVybWVkaWF0ZV9yZXN1bHQYAyABKAlIAIgBARI8CgxmaW5hbF9yZXN1bHQYBCABKAsyIS5sbG1fbXVsdGl2ZXJzZS52MS5TdWJhZ2VudFJlc3VsdEgBiAEBQhYKFF9pbnRlcm1lZGlhdGVfcmVzdWx0Qg8KDV9maW5hbF9yZXN1bHQq7AEKEk9yY2hlc3RyYXRpb25TdGF0ZRIjCh9PUkNIRVNUUkFUSU9OX1NUQVRFX1VOU1BFQ0lGSUVEEAASIwofT1JDSEVTVFJBVElPTl9TVEFURV9ERUNPTVBPU0lORxABEiMKH09SQ0hFU1RSQVRJT05fU1RBVEVfRElTUEFUQ0hJTkcQAhIhCh1PUkNIRVNUUkFUSU9OX1NUQVRFX0VYRUNVVElORxADEiIKHk9SQ0hFU1RSQVRJT05fU1RBVEVfQ09NUEFDVElORxAEEiAKHE9SQ0hFU1RSQVRJT05fU1RBVEVfQ09NUExFVEUQBTJ+ChNPcmNoZXN0cmF0b3JTZXJ2aWNlEmcKDlByb2Nlc3NSZXF1ZXN0EigubGxtX211bHRpdmVyc2UudjEuUHJvY2Vzc1JlcXVlc3RSZXF1ZXN0GikubGxtX211bHRpdmVyc2UudjEuUHJvY2Vzc1JlcXVlc3RSZXNwb25zZTABYgZwcm90bzM", [file_llm_multiverse_v1_common]);
/**
* Per-session configuration for override control.
*
* @generated from message llm_multiverse.v1.SessionConfig
*/
export type SessionConfig = Message<"llm_multiverse.v1.SessionConfig"> & {
/**
* @generated from field: llm_multiverse.v1.OverrideLevel override_level = 1;
*/
overrideLevel: OverrideLevel;
/**
* Tools explicitly disabled for this session.
*
* @generated from field: repeated string disabled_tools = 2;
*/
disabledTools: string[];
/**
* Explicit grants in "agent_type:tool" format.
*
* @generated from field: repeated string granted_permissions = 3;
*/
grantedPermissions: string[];
};
/**
* Describes the message llm_multiverse.v1.SessionConfig.
* Use `create(SessionConfigSchema)` to create a new message.
*/
export const SessionConfigSchema: GenMessage<SessionConfig> = /*@__PURE__*/
messageDesc(file_llm_multiverse_v1_orchestrator, 0);
/**
* A subtask decomposed from a user request.
*
* @generated from message llm_multiverse.v1.SubtaskDefinition
*/
export type SubtaskDefinition = Message<"llm_multiverse.v1.SubtaskDefinition"> & {
/**
* @generated from field: string id = 1;
*/
id: string;
/**
* @generated from field: string description = 2;
*/
description: string;
/**
* @generated from field: llm_multiverse.v1.AgentType agent_type = 3;
*/
agentType: AgentType;
/**
* IDs of subtasks this depends on.
*
* @generated from field: repeated string depends_on = 4;
*/
dependsOn: string[];
/**
* @generated from field: repeated llm_multiverse.v1.ToolType tools_required = 5;
*/
toolsRequired: ToolType[];
};
/**
* Describes the message llm_multiverse.v1.SubtaskDefinition.
* Use `create(SubtaskDefinitionSchema)` to create a new message.
*/
export const SubtaskDefinitionSchema: GenMessage<SubtaskDefinition> = /*@__PURE__*/
messageDesc(file_llm_multiverse_v1_orchestrator, 1);
/**
* Internal request dispatched to a subagent.
*
* @generated from message llm_multiverse.v1.SubagentRequest
*/
export type SubagentRequest = Message<"llm_multiverse.v1.SubagentRequest"> & {
/**
* @generated from field: llm_multiverse.v1.SessionContext context = 1;
*/
context?: SessionContext;
/**
* @generated from field: string agent_id = 2;
*/
agentId: string;
/**
* @generated from field: llm_multiverse.v1.AgentType agent_type = 3;
*/
agentType: AgentType;
/**
* @generated from field: string task = 4;
*/
task: string;
/**
* Relevant memory summaries (max extracted segments only).
*
* @generated from field: repeated string relevant_memory_context = 5;
*/
relevantMemoryContext: string[];
/**
* @generated from field: uint32 max_tokens = 6;
*/
maxTokens: number;
/**
* @generated from field: llm_multiverse.v1.SessionConfig session_config = 7;
*/
sessionConfig?: SessionConfig;
};
/**
* Describes the message llm_multiverse.v1.SubagentRequest.
* Use `create(SubagentRequestSchema)` to create a new message.
*/
export const SubagentRequestSchema: GenMessage<SubagentRequest> = /*@__PURE__*/
messageDesc(file_llm_multiverse_v1_orchestrator, 2);
/**
* User-facing request to the orchestrator.
*
* @generated from message llm_multiverse.v1.ProcessRequestRequest
*/
export type ProcessRequestRequest = Message<"llm_multiverse.v1.ProcessRequestRequest"> & {
/**
* @generated from field: string session_id = 1;
*/
sessionId: string;
/**
* @generated from field: string user_message = 2;
*/
userMessage: string;
/**
* @generated from field: optional llm_multiverse.v1.SessionConfig session_config = 3;
*/
sessionConfig?: SessionConfig;
};
/**
* Describes the message llm_multiverse.v1.ProcessRequestRequest.
* Use `create(ProcessRequestRequestSchema)` to create a new message.
*/
export const ProcessRequestRequestSchema: GenMessage<ProcessRequestRequest> = /*@__PURE__*/
messageDesc(file_llm_multiverse_v1_orchestrator, 3);
/**
* Streamed orchestration progress.
*
* @generated from message llm_multiverse.v1.ProcessRequestResponse
*/
export type ProcessRequestResponse = Message<"llm_multiverse.v1.ProcessRequestResponse"> & {
/**
* @generated from field: llm_multiverse.v1.OrchestrationState state = 1;
*/
state: OrchestrationState;
/**
* User-facing status message or summary.
*
* @generated from field: string message = 2;
*/
message: string;
/**
* Intermediate result for UX feedback.
*
* @generated from field: optional string intermediate_result = 3;
*/
intermediateResult?: string;
/**
* Final subagent result when state is COMPLETE.
*
* @generated from field: optional llm_multiverse.v1.SubagentResult final_result = 4;
*/
finalResult?: SubagentResult;
};
/**
* Describes the message llm_multiverse.v1.ProcessRequestResponse.
* Use `create(ProcessRequestResponseSchema)` to create a new message.
*/
export const ProcessRequestResponseSchema: GenMessage<ProcessRequestResponse> = /*@__PURE__*/
messageDesc(file_llm_multiverse_v1_orchestrator, 4);
/**
* Orchestration lifecycle states.
*
* @generated from enum llm_multiverse.v1.OrchestrationState
*/
export enum OrchestrationState {
/**
* @generated from enum value: ORCHESTRATION_STATE_UNSPECIFIED = 0;
*/
UNSPECIFIED = 0,
/**
* @generated from enum value: ORCHESTRATION_STATE_DECOMPOSING = 1;
*/
DECOMPOSING = 1,
/**
* @generated from enum value: ORCHESTRATION_STATE_DISPATCHING = 2;
*/
DISPATCHING = 2,
/**
* @generated from enum value: ORCHESTRATION_STATE_EXECUTING = 3;
*/
EXECUTING = 3,
/**
* @generated from enum value: ORCHESTRATION_STATE_COMPACTING = 4;
*/
COMPACTING = 4,
/**
* @generated from enum value: ORCHESTRATION_STATE_COMPLETE = 5;
*/
COMPLETE = 5,
}
/**
* Describes the enum llm_multiverse.v1.OrchestrationState.
*/
export const OrchestrationStateSchema: GenEnum<OrchestrationState> = /*@__PURE__*/
enumDesc(file_llm_multiverse_v1_orchestrator, 0);
/**
* Entry point for user requests. Decomposes tasks and dispatches to subagents.
*
* @generated from service llm_multiverse.v1.OrchestratorService
*/
export const OrchestratorService: GenService<{
/**
* Process a user request. Server-streaming for progressive status updates.
*
* @generated from rpc llm_multiverse.v1.OrchestratorService.ProcessRequest
*/
processRequest: {
methodKind: "server_streaming";
input: typeof ProcessRequestRequestSchema;
output: typeof ProcessRequestResponseSchema;
},
}> = /*@__PURE__*/
serviceDesc(file_llm_multiverse_v1_orchestrator, 0);

View File

@@ -0,0 +1,133 @@
// @generated by protoc-gen-es v2.11.0 with parameter "target=ts"
// @generated from file llm_multiverse/v1/search.proto (package llm_multiverse.v1, syntax proto3)
/* eslint-disable */
import type { GenFile, GenMessage, GenService } from "@bufbuild/protobuf/codegenv2";
import { fileDesc, messageDesc, serviceDesc } from "@bufbuild/protobuf/codegenv2";
import type { SessionContext } from "./common_pb";
import { file_llm_multiverse_v1_common } from "./common_pb";
import type { Message } from "@bufbuild/protobuf";
/**
* Describes the file llm_multiverse/v1/search.proto.
*/
export const file_llm_multiverse_v1_search: GenFile = /*@__PURE__*/
fileDesc("Ch5sbG1fbXVsdGl2ZXJzZS92MS9zZWFyY2gucHJvdG8SEWxsbV9tdWx0aXZlcnNlLnYxImcKDVNlYXJjaFJlcXVlc3QSMgoHY29udGV4dBgBIAEoCzIhLmxsbV9tdWx0aXZlcnNlLnYxLlNlc3Npb25Db250ZXh0Eg0KBXF1ZXJ5GAIgASgJEhMKC251bV9yZXN1bHRzGAMgASgNImQKDFNlYXJjaFJlc3VsdBINCgVjbGFpbRgBIAEoCRISCgpzb3VyY2VfdXJsGAIgASgJEhIKCmNvbmZpZGVuY2UYAyABKAISDAoEZGF0ZRgEIAEoCRIPCgdzdW1tYXJ5GAUgASgJInAKDlNlYXJjaFJlc3BvbnNlEjAKB3Jlc3VsdHMYASADKAsyHy5sbG1fbXVsdGl2ZXJzZS52MS5TZWFyY2hSZXN1bHQSGgoNZXJyb3JfbWVzc2FnZRgCIAEoCUgAiAEBQhAKDl9lcnJvcl9tZXNzYWdlMl4KDVNlYXJjaFNlcnZpY2USTQoGU2VhcmNoEiAubGxtX211bHRpdmVyc2UudjEuU2VhcmNoUmVxdWVzdBohLmxsbV9tdWx0aXZlcnNlLnYxLlNlYXJjaFJlc3BvbnNlYgZwcm90bzM", [file_llm_multiverse_v1_common]);
/**
* @generated from message llm_multiverse.v1.SearchRequest
*/
export type SearchRequest = Message<"llm_multiverse.v1.SearchRequest"> & {
/**
* @generated from field: llm_multiverse.v1.SessionContext context = 1;
*/
context?: SessionContext;
/**
* @generated from field: string query = 2;
*/
query: string;
/**
* Number of results to return (default 5).
*
* @generated from field: uint32 num_results = 3;
*/
numResults: number;
};
/**
* Describes the message llm_multiverse.v1.SearchRequest.
* Use `create(SearchRequestSchema)` to create a new message.
*/
export const SearchRequestSchema: GenMessage<SearchRequest> = /*@__PURE__*/
messageDesc(file_llm_multiverse_v1_search, 0);
/**
* A single search result, summarized and structured.
*
* @generated from message llm_multiverse.v1.SearchResult
*/
export type SearchResult = Message<"llm_multiverse.v1.SearchResult"> & {
/**
* Key assertion extracted from the content.
*
* @generated from field: string claim = 1;
*/
claim: string;
/**
* @generated from field: string source_url = 2;
*/
sourceUrl: string;
/**
* Confidence score (0.0-1.0).
*
* @generated from field: float confidence = 3;
*/
confidence: number;
/**
* Publication or extraction date (ISO 8601).
*
* @generated from field: string date = 4;
*/
date: string;
/**
* Summarized content — never raw web content.
*
* @generated from field: string summary = 5;
*/
summary: string;
};
/**
* Describes the message llm_multiverse.v1.SearchResult.
* Use `create(SearchResultSchema)` to create a new message.
*/
export const SearchResultSchema: GenMessage<SearchResult> = /*@__PURE__*/
messageDesc(file_llm_multiverse_v1_search, 1);
/**
* @generated from message llm_multiverse.v1.SearchResponse
*/
export type SearchResponse = Message<"llm_multiverse.v1.SearchResponse"> & {
/**
* @generated from field: repeated llm_multiverse.v1.SearchResult results = 1;
*/
results: SearchResult[];
/**
* @generated from field: optional string error_message = 2;
*/
errorMessage?: string;
};
/**
* Describes the message llm_multiverse.v1.SearchResponse.
* Use `create(SearchResponseSchema)` to create a new message.
*/
export const SearchResponseSchema: GenMessage<SearchResponse> = /*@__PURE__*/
messageDesc(file_llm_multiverse_v1_search, 2);
/**
* Web search via local SearXNG instance with summarization pipeline.
*
* @generated from service llm_multiverse.v1.SearchService
*/
export const SearchService: GenService<{
/**
* Search the web. Returns summarized results — never raw web content.
*
* @generated from rpc llm_multiverse.v1.SearchService.Search
*/
search: {
methodKind: "unary";
input: typeof SearchRequestSchema;
output: typeof SearchResponseSchema;
},
}> = /*@__PURE__*/
serviceDesc(file_llm_multiverse_v1_search, 0);

View File

@@ -0,0 +1,84 @@
// @generated by protoc-gen-es v2.11.0 with parameter "target=ts"
// @generated from file llm_multiverse/v1/secrets.proto (package llm_multiverse.v1, syntax proto3)
/* eslint-disable */
import type { GenFile, GenMessage, GenService } from "@bufbuild/protobuf/codegenv2";
import { fileDesc, messageDesc, serviceDesc } from "@bufbuild/protobuf/codegenv2";
import type { SessionContext } from "./common_pb";
import { file_llm_multiverse_v1_common } from "./common_pb";
import type { Message } from "@bufbuild/protobuf";
/**
* Describes the file llm_multiverse/v1/secrets.proto.
*/
export const file_llm_multiverse_v1_secrets: GenFile = /*@__PURE__*/
fileDesc("Ch9sbG1fbXVsdGl2ZXJzZS92MS9zZWNyZXRzLnByb3RvEhFsbG1fbXVsdGl2ZXJzZS52MSJbChBHZXRTZWNyZXRSZXF1ZXN0EjIKB2NvbnRleHQYASABKAsyIS5sbG1fbXVsdGl2ZXJzZS52MS5TZXNzaW9uQ29udGV4dBITCgtzZWNyZXRfbmFtZRgCIAEoCSJQChFHZXRTZWNyZXRSZXNwb25zZRINCgV2YWx1ZRgBIAEoCRIaCg1lcnJvcl9tZXNzYWdlGAIgASgJSACIAQFCEAoOX2Vycm9yX21lc3NhZ2UyaAoOU2VjcmV0c1NlcnZpY2USVgoJR2V0U2VjcmV0EiMubGxtX211bHRpdmVyc2UudjEuR2V0U2VjcmV0UmVxdWVzdBokLmxsbV9tdWx0aXZlcnNlLnYxLkdldFNlY3JldFJlc3BvbnNlYgZwcm90bzM", [file_llm_multiverse_v1_common]);
/**
* @generated from message llm_multiverse.v1.GetSecretRequest
*/
export type GetSecretRequest = Message<"llm_multiverse.v1.GetSecretRequest"> & {
/**
* @generated from field: llm_multiverse.v1.SessionContext context = 1;
*/
context?: SessionContext;
/**
* Secret name as declared in tool definition placeholder.
*
* @generated from field: string secret_name = 2;
*/
secretName: string;
};
/**
* Describes the message llm_multiverse.v1.GetSecretRequest.
* Use `create(GetSecretRequestSchema)` to create a new message.
*/
export const GetSecretRequestSchema: GenMessage<GetSecretRequest> = /*@__PURE__*/
messageDesc(file_llm_multiverse_v1_secrets, 0);
/**
* @generated from message llm_multiverse.v1.GetSecretResponse
*/
export type GetSecretResponse = Message<"llm_multiverse.v1.GetSecretResponse"> & {
/**
* The actual credential value. Never exposed in logs or agent context.
*
* @generated from field: string value = 1;
*/
value: string;
/**
* @generated from field: optional string error_message = 2;
*/
errorMessage?: string;
};
/**
* Describes the message llm_multiverse.v1.GetSecretResponse.
* Use `create(GetSecretResponseSchema)` to create a new message.
*/
export const GetSecretResponseSchema: GenMessage<GetSecretResponse> = /*@__PURE__*/
messageDesc(file_llm_multiverse_v1_secrets, 1);
/**
* Credential retrieval via Linux Secret Service API.
* Only the Tool Broker is authorized to call this service.
*
* @generated from service llm_multiverse.v1.SecretsService
*/
export const SecretsService: GenService<{
/**
* Retrieve a secret by name. No list or write RPCs exposed.
*
* @generated from rpc llm_multiverse.v1.SecretsService.GetSecret
*/
getSecret: {
methodKind: "unary";
input: typeof GetSecretRequestSchema;
output: typeof GetSecretResponseSchema;
},
}> = /*@__PURE__*/
serviceDesc(file_llm_multiverse_v1_secrets, 0);

View File

@@ -0,0 +1,376 @@
// @generated by protoc-gen-es v2.11.0 with parameter "target=ts"
// @generated from file llm_multiverse/v1/tool_broker.proto (package llm_multiverse.v1, syntax proto3)
/* eslint-disable */
import type { GenEnum, GenFile, GenMessage, GenService } from "@bufbuild/protobuf/codegenv2";
import { enumDesc, fileDesc, messageDesc, serviceDesc } from "@bufbuild/protobuf/codegenv2";
import type { AgentType, SessionContext } from "./common_pb";
import { file_llm_multiverse_v1_common } from "./common_pb";
import type { Message } from "@bufbuild/protobuf";
/**
* Describes the file llm_multiverse/v1/tool_broker.proto.
*/
export const file_llm_multiverse_v1_tool_broker: GenFile = /*@__PURE__*/
fileDesc("CiNsbG1fbXVsdGl2ZXJzZS92MS90b29sX2Jyb2tlci5wcm90bxIRbGxtX211bHRpdmVyc2UudjEiYgoPUGFyYW1ldGVyU2NoZW1hEgwKBHR5cGUYASABKAkSEwoLZGVzY3JpcHRpb24YAiABKAkSGgoNZGVmYXVsdF92YWx1ZRgDIAEoCUgAiAEBQhAKDl9kZWZhdWx0X3ZhbHVlIqQCCg5Ub29sRGVmaW5pdGlvbhIMCgRuYW1lGAEgASgJEhMKC2Rlc2NyaXB0aW9uGAIgASgJEkUKCnBhcmFtZXRlcnMYAyADKAsyMS5sbG1fbXVsdGl2ZXJzZS52MS5Ub29sRGVmaW5pdGlvbi5QYXJhbWV0ZXJzRW50cnkSFwoPcmVxdWlyZWRfcGFyYW1zGAQgAygJEiAKE3JlcXVpcmVzX2NyZWRlbnRpYWwYBSABKAlIAIgBARpVCg9QYXJhbWV0ZXJzRW50cnkSCwoDa2V5GAEgASgJEjEKBXZhbHVlGAIgASgLMiIubGxtX211bHRpdmVyc2UudjEuUGFyYW1ldGVyU2NoZW1hOgI4AUIWChRfcmVxdWlyZXNfY3JlZGVudGlhbCKWAQoURGlzY292ZXJUb29sc1JlcXVlc3QSMgoHY29udGV4dBgBIAEoCzIhLmxsbV9tdWx0aXZlcnNlLnYxLlNlc3Npb25Db250ZXh0EjAKCmFnZW50X3R5cGUYAiABKA4yHC5sbG1fbXVsdGl2ZXJzZS52MS5BZ2VudFR5cGUSGAoQdGFza19kZXNjcmlwdGlvbhgDIAEoCSKBAQoVRGlzY292ZXJUb29sc1Jlc3BvbnNlEjoKD2F2YWlsYWJsZV90b29scxgBIAMoCzIhLmxsbV9tdWx0aXZlcnNlLnYxLlRvb2xEZWZpbml0aW9uEhoKDWVycm9yX21lc3NhZ2UYAiABKAlIAIgBAUIQCg5fZXJyb3JfbWVzc2FnZSKLAgoSRXhlY3V0ZVRvb2xSZXF1ZXN0EjIKB2NvbnRleHQYASABKAsyIS5sbG1fbXVsdGl2ZXJzZS52MS5TZXNzaW9uQ29udGV4dBIwCgphZ2VudF90eXBlGAIgASgOMhwubGxtX211bHRpdmVyc2UudjEuQWdlbnRUeXBlEhEKCXRvb2xfbmFtZRgDIAEoCRJJCgpwYXJhbWV0ZXJzGAQgAygLMjUubGxtX211bHRpdmVyc2UudjEuRXhlY3V0ZVRvb2xSZXF1ZXN0LlBhcmFtZXRlcnNFbnRyeRoxCg9QYXJhbWV0ZXJzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASKHAQoTRXhlY3V0ZVRvb2xSZXNwb25zZRIOCgZvdXRwdXQYASABKAkSMgoGc3RhdHVzGAIgASgOMiIubGxtX211bHRpdmVyc2UudjEuRXhlY3V0aW9uU3RhdHVzEhoKDWVycm9yX21lc3NhZ2UYAyABKAlIAIgBAUIQCg5fZXJyb3JfbWVzc2FnZSKNAgoTVmFsaWRhdGVDYWxsUmVxdWVzdBIyCgdjb250ZXh0GAEgASgLMiEubGxtX211bHRpdmVyc2UudjEuU2Vzc2lvbkNvbnRleHQSMAoKYWdlbnRfdHlwZRgCIAEoDjIcLmxsbV9tdWx0aXZlcnNlLnYxLkFnZW50VHlwZRIRCgl0b29sX25hbWUYAyABKAkSSgoKcGFyYW1ldGVycxgEIAMoCzI2LmxsbV9tdWx0aXZlcnNlLnYxLlZhbGlkYXRlQ2FsbFJlcXVlc3QuUGFyYW1ldGVyc0VudHJ5GjEKD1BhcmFtZXRlcnNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIpgBChRWYWxpZGF0ZUNhbGxSZXNwb25zZRISCgppc19hbGxvd2VkGAEgASgIEhoKDWRlbmlhbF9yZWFzb24YAiABKAlIAIgBARI+ChFlbmZvcmNlbWVudF9sYXllchgDIAEoDjIjLmxsbV9tdWx0aXZlcnNlLnYxLkVuZm9yY2VtZW50TGF5ZXJCEAoOX2RlbmlhbF9yZWFzb24qjQEKD0V4ZWN1dGlvblN0YXR1cxIgChxFWEVDVVRJT05fU1RBVFVTX1VOU1BFQ0lGSUVEEAASHAoYRVhFQ1VUSU9OX1NUQVRVU19SVU5OSU5HEAESHAoYRVhFQ1VUSU9OX1NUQVRVU19TVUNDRVNTEAISHAoYRVhFQ1VUSU9OX1NUQVRVU19GQUlMVVJFEAMq+QEKEEVuZm9yY2VtZW50TGF5ZXISIQodRU5GT1JDRU1FTlRfTEFZRVJfVU5TUEVDSUZJRUQQABImCiJFTkZPUkNFTUVOVF9MQVlFUl9TRVNTSU9OX09WRVJSSURFEAESJAogRU5GT1JDRU1FTlRfTEFZRVJfQUdFTlRfTUFOSUZFU1QQAhIoCiRFTkZPUkNFTUVOVF9MQVlFUl9MSU5FQUdFX0NPTlNUUkFJTlQQAxIkCiBFTkZPUkNFTUVOVF9MQVlFUl9QQVRIX0FMTE9XTElTVBAEEiQKIEVORk9SQ0VNRU5UX0xBWUVSX05FVFdPUktfRUdSRVNTEAUyuAIKEVRvb2xCcm9rZXJTZXJ2aWNlEmIKDURpc2NvdmVyVG9vbHMSJy5sbG1fbXVsdGl2ZXJzZS52MS5EaXNjb3ZlclRvb2xzUmVxdWVzdBooLmxsbV9tdWx0aXZlcnNlLnYxLkRpc2NvdmVyVG9vbHNSZXNwb25zZRJeCgtFeGVjdXRlVG9vbBIlLmxsbV9tdWx0aXZlcnNlLnYxLkV4ZWN1dGVUb29sUmVxdWVzdBomLmxsbV9tdWx0aXZlcnNlLnYxLkV4ZWN1dGVUb29sUmVzcG9uc2UwARJfCgxWYWxpZGF0ZUNhbGwSJi5sbG1fbXVsdGl2ZXJzZS52MS5WYWxpZGF0ZUNhbGxSZXF1ZXN0GicubGxtX211bHRpdmVyc2UudjEuVmFsaWRhdGVDYWxsUmVzcG9uc2ViBnByb3RvMw", [file_llm_multiverse_v1_common]);
/**
* Schema for a tool parameter.
*
* @generated from message llm_multiverse.v1.ParameterSchema
*/
export type ParameterSchema = Message<"llm_multiverse.v1.ParameterSchema"> & {
/**
* @generated from field: string type = 1;
*/
type: string;
/**
* @generated from field: string description = 2;
*/
description: string;
/**
* @generated from field: optional string default_value = 3;
*/
defaultValue?: string;
};
/**
* Describes the message llm_multiverse.v1.ParameterSchema.
* Use `create(ParameterSchemaSchema)` to create a new message.
*/
export const ParameterSchemaSchema: GenMessage<ParameterSchema> = /*@__PURE__*/
messageDesc(file_llm_multiverse_v1_tool_broker, 0);
/**
* Definition of a tool available through the broker.
*
* @generated from message llm_multiverse.v1.ToolDefinition
*/
export type ToolDefinition = Message<"llm_multiverse.v1.ToolDefinition"> & {
/**
* @generated from field: string name = 1;
*/
name: string;
/**
* @generated from field: string description = 2;
*/
description: string;
/**
* @generated from field: map<string, llm_multiverse.v1.ParameterSchema> parameters = 3;
*/
parameters: { [key: string]: ParameterSchema };
/**
* @generated from field: repeated string required_params = 4;
*/
requiredParams: string[];
/**
* Credential placeholder name, if tool requires a secret.
*
* @generated from field: optional string requires_credential = 5;
*/
requiresCredential?: string;
};
/**
* Describes the message llm_multiverse.v1.ToolDefinition.
* Use `create(ToolDefinitionSchema)` to create a new message.
*/
export const ToolDefinitionSchema: GenMessage<ToolDefinition> = /*@__PURE__*/
messageDesc(file_llm_multiverse_v1_tool_broker, 1);
/**
* @generated from message llm_multiverse.v1.DiscoverToolsRequest
*/
export type DiscoverToolsRequest = Message<"llm_multiverse.v1.DiscoverToolsRequest"> & {
/**
* @generated from field: llm_multiverse.v1.SessionContext context = 1;
*/
context?: SessionContext;
/**
* @generated from field: llm_multiverse.v1.AgentType agent_type = 2;
*/
agentType: AgentType;
/**
* Brief task description for tool selector model call.
*
* @generated from field: string task_description = 3;
*/
taskDescription: string;
};
/**
* Describes the message llm_multiverse.v1.DiscoverToolsRequest.
* Use `create(DiscoverToolsRequestSchema)` to create a new message.
*/
export const DiscoverToolsRequestSchema: GenMessage<DiscoverToolsRequest> = /*@__PURE__*/
messageDesc(file_llm_multiverse_v1_tool_broker, 2);
/**
* @generated from message llm_multiverse.v1.DiscoverToolsResponse
*/
export type DiscoverToolsResponse = Message<"llm_multiverse.v1.DiscoverToolsResponse"> & {
/**
* Filtered tools (typically 2-4) relevant to the agent and task.
*
* @generated from field: repeated llm_multiverse.v1.ToolDefinition available_tools = 1;
*/
availableTools: ToolDefinition[];
/**
* @generated from field: optional string error_message = 2;
*/
errorMessage?: string;
};
/**
* Describes the message llm_multiverse.v1.DiscoverToolsResponse.
* Use `create(DiscoverToolsResponseSchema)` to create a new message.
*/
export const DiscoverToolsResponseSchema: GenMessage<DiscoverToolsResponse> = /*@__PURE__*/
messageDesc(file_llm_multiverse_v1_tool_broker, 3);
/**
* @generated from message llm_multiverse.v1.ExecuteToolRequest
*/
export type ExecuteToolRequest = Message<"llm_multiverse.v1.ExecuteToolRequest"> & {
/**
* @generated from field: llm_multiverse.v1.SessionContext context = 1;
*/
context?: SessionContext;
/**
* @generated from field: llm_multiverse.v1.AgentType agent_type = 2;
*/
agentType: AgentType;
/**
* @generated from field: string tool_name = 3;
*/
toolName: string;
/**
* @generated from field: map<string, string> parameters = 4;
*/
parameters: { [key: string]: string };
};
/**
* Describes the message llm_multiverse.v1.ExecuteToolRequest.
* Use `create(ExecuteToolRequestSchema)` to create a new message.
*/
export const ExecuteToolRequestSchema: GenMessage<ExecuteToolRequest> = /*@__PURE__*/
messageDesc(file_llm_multiverse_v1_tool_broker, 4);
/**
* Streamed tool execution output. All results tagged [TOOL_RESULT: UNTRUSTED].
*
* @generated from message llm_multiverse.v1.ExecuteToolResponse
*/
export type ExecuteToolResponse = Message<"llm_multiverse.v1.ExecuteToolResponse"> & {
/**
* @generated from field: string output = 1;
*/
output: string;
/**
* @generated from field: llm_multiverse.v1.ExecutionStatus status = 2;
*/
status: ExecutionStatus;
/**
* @generated from field: optional string error_message = 3;
*/
errorMessage?: string;
};
/**
* Describes the message llm_multiverse.v1.ExecuteToolResponse.
* Use `create(ExecuteToolResponseSchema)` to create a new message.
*/
export const ExecuteToolResponseSchema: GenMessage<ExecuteToolResponse> = /*@__PURE__*/
messageDesc(file_llm_multiverse_v1_tool_broker, 5);
/**
* @generated from message llm_multiverse.v1.ValidateCallRequest
*/
export type ValidateCallRequest = Message<"llm_multiverse.v1.ValidateCallRequest"> & {
/**
* @generated from field: llm_multiverse.v1.SessionContext context = 1;
*/
context?: SessionContext;
/**
* @generated from field: llm_multiverse.v1.AgentType agent_type = 2;
*/
agentType: AgentType;
/**
* @generated from field: string tool_name = 3;
*/
toolName: string;
/**
* @generated from field: map<string, string> parameters = 4;
*/
parameters: { [key: string]: string };
};
/**
* Describes the message llm_multiverse.v1.ValidateCallRequest.
* Use `create(ValidateCallRequestSchema)` to create a new message.
*/
export const ValidateCallRequestSchema: GenMessage<ValidateCallRequest> = /*@__PURE__*/
messageDesc(file_llm_multiverse_v1_tool_broker, 6);
/**
* @generated from message llm_multiverse.v1.ValidateCallResponse
*/
export type ValidateCallResponse = Message<"llm_multiverse.v1.ValidateCallResponse"> & {
/**
* @generated from field: bool is_allowed = 1;
*/
isAllowed: boolean;
/**
* @generated from field: optional string denial_reason = 2;
*/
denialReason?: string;
/**
* Which enforcement layer would deny (for audit).
*
* @generated from field: llm_multiverse.v1.EnforcementLayer enforcement_layer = 3;
*/
enforcementLayer: EnforcementLayer;
};
/**
* Describes the message llm_multiverse.v1.ValidateCallResponse.
* Use `create(ValidateCallResponseSchema)` to create a new message.
*/
export const ValidateCallResponseSchema: GenMessage<ValidateCallResponse> = /*@__PURE__*/
messageDesc(file_llm_multiverse_v1_tool_broker, 7);
/**
* Execution status of a tool call.
*
* @generated from enum llm_multiverse.v1.ExecutionStatus
*/
export enum ExecutionStatus {
/**
* @generated from enum value: EXECUTION_STATUS_UNSPECIFIED = 0;
*/
UNSPECIFIED = 0,
/**
* @generated from enum value: EXECUTION_STATUS_RUNNING = 1;
*/
RUNNING = 1,
/**
* @generated from enum value: EXECUTION_STATUS_SUCCESS = 2;
*/
SUCCESS = 2,
/**
* @generated from enum value: EXECUTION_STATUS_FAILURE = 3;
*/
FAILURE = 3,
}
/**
* Describes the enum llm_multiverse.v1.ExecutionStatus.
*/
export const ExecutionStatusSchema: GenEnum<ExecutionStatus> = /*@__PURE__*/
enumDesc(file_llm_multiverse_v1_tool_broker, 0);
/**
* Which enforcement layer denied a tool call.
*
* @generated from enum llm_multiverse.v1.EnforcementLayer
*/
export enum EnforcementLayer {
/**
* @generated from enum value: ENFORCEMENT_LAYER_UNSPECIFIED = 0;
*/
UNSPECIFIED = 0,
/**
* @generated from enum value: ENFORCEMENT_LAYER_SESSION_OVERRIDE = 1;
*/
SESSION_OVERRIDE = 1,
/**
* @generated from enum value: ENFORCEMENT_LAYER_AGENT_MANIFEST = 2;
*/
AGENT_MANIFEST = 2,
/**
* @generated from enum value: ENFORCEMENT_LAYER_LINEAGE_CONSTRAINT = 3;
*/
LINEAGE_CONSTRAINT = 3,
/**
* @generated from enum value: ENFORCEMENT_LAYER_PATH_ALLOWLIST = 4;
*/
PATH_ALLOWLIST = 4,
/**
* @generated from enum value: ENFORCEMENT_LAYER_NETWORK_EGRESS = 5;
*/
NETWORK_EGRESS = 5,
}
/**
* Describes the enum llm_multiverse.v1.EnforcementLayer.
*/
export const EnforcementLayerSchema: GenEnum<EnforcementLayer> = /*@__PURE__*/
enumDesc(file_llm_multiverse_v1_tool_broker, 1);
/**
* Single enforcement point for all tool calls.
*
* @generated from service llm_multiverse.v1.ToolBrokerService
*/
export const ToolBrokerService: GenService<{
/**
* Discover available tools for an agent based on type, lineage, and task.
*
* @generated from rpc llm_multiverse.v1.ToolBrokerService.DiscoverTools
*/
discoverTools: {
methodKind: "unary";
input: typeof DiscoverToolsRequestSchema;
output: typeof DiscoverToolsResponseSchema;
},
/**
* Execute a tool through all enforcement layers. Server-streaming for progressive output.
*
* @generated from rpc llm_multiverse.v1.ToolBrokerService.ExecuteTool
*/
executeTool: {
methodKind: "server_streaming";
input: typeof ExecuteToolRequestSchema;
output: typeof ExecuteToolResponseSchema;
},
/**
* Dry-run validation of a tool call without execution.
*
* @generated from rpc llm_multiverse.v1.ToolBrokerService.ValidateCall
*/
validateCall: {
methodKind: "unary";
input: typeof ValidateCallRequestSchema;
output: typeof ValidateCallResponseSchema;
},
}> = /*@__PURE__*/
serviceDesc(file_llm_multiverse_v1_tool_broker, 0);