feat(api): invoke saved private agents through one Session API
- Dominant language
- TypeScript
- Stars
- 147
- Forks
- 26
- Avg merge
- 5h 6m
- Merged PRs (30d)
- 40
Description
Parent: https://github.com/langgenius/mosoo/issues/582
Status: owner-approved delivery slice. Human cost/legacy/release decisions remain explicit gates where listed.
## Blocked by
None. Existing configuration-freeze commit 265e702d76 is a prerequisite already implemented locally.
## Acceptance criteria
- [ ] A Project key invokes a saved private Agent at its latest configuration without Publish, version selection, mandatory end-user identity, or Environment selection; admission freezes the full configuration for that Session.
- [ ] Create with optional input/files; retrieve state, replay/stream events, read usage, and download artifacts through the Session handle. Session access does not depend on creation channel or current publication state.
- [ ] Continue through the same Session, reject busy input, and cancel the active turn without a public Run handle. Failure and checkpoint readiness retain their truthful outcomes.
- [ ] Cross-Project denial remains enforced. Tests exercise the external HTTP boundary and existing Session kernel. Local fixtures are explicitly not live-runtime evidence.
- [ ] Record the public Session wire contract and v1 compatibility strategy; include an executable create/read/events/artifacts/follow-up/cancel example using one existing conversation ID (for example `thread.id`), without requiring a public Run ID. This is the shared contract fixture for the typed client, CLI, and documentation synchronization in #640. Keep deterministic fixtures separate from live-runtime acceptance.
## Verified starting point — September 18, 2026
Existing groundwork: Session kernel, file handling, event history/SSE, busy rejection, cancellation, and checkpoint gates already exist. Current public access still requires published/live Agents and public-api metadata. Local commit 265e702d76 freezes additional admitted configuration but is not merged or deployed.
## Owner clarification — September 18, 2026
Preserve compatible Thread routes, resource IDs, Run result fields, and retry behavior. Session is the durable execution contract, not a mandatory endpoint/field rename. Assess genuine semantic changes (including latest-saved admission) under the existing v1 compatibility policy; a naming-only sunset is not required.
Contributor guide
Research direction
Start with the existing Session kernel and external HTTP boundary, then inspect configuration-freeze commit 265e702d76 and the compatibility constraints in this issue. Trace create, state, events, artifacts, follow-up, and cancel behavior, including cross-Project denial and busy rejection. Done means the acceptance criteria are covered by boundary tests and the public wire contract and executable example are synchronized for the typed client, CLI, and documentation.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- api, backend, documentation
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100