mirror of
https://github.com/hanzoai/tasks.git
synced 2026-11-03 03:56:04 +00:00
Full module path rebrand from Temporal to Hanzo Tasks: - go.mod module: github.com/hanzoai/tasks - All internal Go imports updated (1906 files) - cmd/server renamed to cmd/tasksd - Binary name: tasksd (was temporal-server) - Docker images: hanzoai/tasks (was temporalio/server) - README rewritten with Hanzo Tasks branding - LLM.md created with integration notes - Makefile, goreleaser, CI workflows updated - go.temporal.io/sdk and go.temporal.io/api imports preserved (separate repos) Fork of Temporal.io (MIT license).
43 lines
1.1 KiB
Go
43 lines
1.1 KiB
Go
package common
|
|
|
|
import (
|
|
"fmt"
|
|
"strconv"
|
|
"unicode"
|
|
|
|
workflowpb "go.temporal.io/api/workflow/v1"
|
|
"github.com/hanzoai/tasks/chasm"
|
|
"github.com/hanzoai/tasks/common/payload"
|
|
"github.com/hanzoai/tasks/common/searchattribute/sadefs"
|
|
)
|
|
|
|
func ArchetypeIDFromExecutionInfo(
|
|
executionInfo *workflowpb.WorkflowExecutionInfo,
|
|
) (chasm.ArchetypeID, error) {
|
|
indexedField := executionInfo.SearchAttributes.GetIndexedFields()
|
|
if indexedField == nil {
|
|
return chasm.WorkflowArchetypeID, nil
|
|
}
|
|
|
|
nsDivisionPayload, ok := indexedField[sadefs.TemporalNamespaceDivision]
|
|
if !ok {
|
|
return chasm.WorkflowArchetypeID, nil
|
|
}
|
|
|
|
var nsDivisionStr string
|
|
if err := payload.Decode(nsDivisionPayload, &nsDivisionStr); err != nil {
|
|
return chasm.UnspecifiedArchetypeID, fmt.Errorf("failed to decode TemporalNamespaceDivision field: %w", err)
|
|
}
|
|
|
|
if len(nsDivisionStr) == 0 || !unicode.IsDigit(rune(nsDivisionStr[0])) {
|
|
return chasm.WorkflowArchetypeID, nil
|
|
}
|
|
|
|
archetypeID, err := strconv.ParseUint(nsDivisionStr, 10, 32)
|
|
if err != nil {
|
|
return chasm.UnspecifiedArchetypeID, fmt.Errorf("failed to parse archetypeID: %w", err)
|
|
}
|
|
|
|
return chasm.ArchetypeID(archetypeID), nil
|
|
}
|