chore: initialize go-sip repository

This commit is contained in:
2026-09-21 08:56:04 +08:00
commit 643b11b21f
309 changed files with 40521 additions and 0 deletions
@@ -0,0 +1,37 @@
# W02 Unary Proto baseline decision
## Decision
Create the first project-owned `agent.v1.AgentControlService` Unary gRPC contract from
the already-confirmed R01–R03/R05/R07–R13 responsibilities. The contract is
kept in `proto/agent/v1/agent.proto` and generated Go output is produced by
Buf using the official Go protobuf and grpc plugins.
## Included responsibilities
`GetAgentStatus`, `ActivateAgent`, `GetBootstrap`, `SetAdmissionState`,
`Execute`, `GetExecutionPermit`, `ApplyTaskControl`, `QueryExecution`,
`ReportExecutionEvent`, `RequestUpload`, and `CompleteUpload`.
R04/R06 online runtime publication remains out of this P1 baseline. Static SIP
publication is represented by config references and applied snapshots, not a
new online management API.
## Safety rules encoded by the baseline
- Every request has request/trace/operation identity and a deadline.
- Target identity includes agent/cell/boot/session generation; the Dispatcher
owns the binding and the Agent cannot self-select a target.
- Execute carries the approved external command bytes plus an execution binding;
it does not accept arbitrary SIP endpoints, credentials or AI URLs.
- Permit and control operations carry revision/epoch/reservation information;
accepted is not applied, and unknown results are reconciled under the original
identity rather than retried as a new call.
- Facts carry a stable ID, content digest, observed time, boot and source
sequence. Recording upload messages carry metadata/grants only, never audio.
- Failure codes align with the documented gRPC classes; transport deadlines do
not change business deadlines.
This is a project implementation baseline, not a modification of the parent
SaaS contract. Any later field-number or semantic change requires a versioned
Proto review and compatibility check.