Files
WeiCHENandCursor 908d4bdb2e feat(agent): project asset upload and squad materials assembly
Register uploads via CAS, resolve project asset pools into task materials
with server-side extraction, and propagate asset_id through the bizdev/squad chain.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-13 02:50:22 +00:00

37 lines
690 B
Go

package squad
import (
"encoding/json"
"fmt"
"strconv"
)
// FlexSessionID 兼容历史 workspace.json 中 session_id 为数字 0 的格式。
type FlexSessionID string
func (f FlexSessionID) String() string {
return string(f)
}
func (f FlexSessionID) MarshalJSON() ([]byte, error) {
return json.Marshal(string(f))
}
func (f *FlexSessionID) UnmarshalJSON(b []byte) error {
var s string
if err := json.Unmarshal(b, &s); err == nil {
*f = FlexSessionID(s)
return nil
}
var n int64
if err := json.Unmarshal(b, &n); err == nil {
if n == 0 {
*f = ""
} else {
*f = FlexSessionID(strconv.FormatInt(n, 10))
}
return nil
}
return fmt.Errorf("invalid session_id")
}