2.0.0: slug-based quests, scenarios and offers; environment carried by the token; regenerated models
Claude-Session: https://claude.ai/code/session_01SMCvdwDmuxoaqGgvGBLk1V
This commit is contained in:
+11
-11
@@ -101,7 +101,7 @@ public sealed class EffectsService
|
||||
var key = (effect.RunId, effect.NodeId);
|
||||
if (_seen.ContainsKey(key))
|
||||
continue;
|
||||
_seen[key] = effect.ScenarioId;
|
||||
_seen[key] = effect.ScenarioSlug;
|
||||
|
||||
if (string.Equals(effect.Type, EffectTypes.Wait, StringComparison.Ordinal))
|
||||
{
|
||||
@@ -126,7 +126,7 @@ public sealed class EffectsService
|
||||
"/sdk/v1/scenarios/callback",
|
||||
new HandleScenarioCallbackRequest
|
||||
{
|
||||
ScenarioId = source.ScenarioId,
|
||||
ScenarioSlug = source.ScenarioSlug,
|
||||
NodeId = source.NodeId,
|
||||
Handle = handle,
|
||||
RunId = source.RunId
|
||||
@@ -136,13 +136,13 @@ public sealed class EffectsService
|
||||
ForgetWait(source.RunId, source.NodeId);
|
||||
var next = ReadEffect(response?.Effect);
|
||||
if (next == null)
|
||||
Emit(OnScenarioCompleted, new ScenarioCompletedEffect(source.RunId, source.ScenarioId));
|
||||
Emit(OnScenarioCompleted, new ScenarioCompletedEffect(source.RunId, source.ScenarioSlug));
|
||||
else
|
||||
Ingest(new[] { next });
|
||||
}
|
||||
catch (Exception ex) when (IsDefinitiveRejection(ex))
|
||||
{
|
||||
DropRun(source.RunId, source.ScenarioId, source.NodeId, ex);
|
||||
DropRun(source.RunId, source.ScenarioSlug, source.NodeId, ex);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -159,7 +159,7 @@ public sealed class EffectsService
|
||||
"/sdk/v1/scenarios/counter",
|
||||
new UpdateScenarioCounterRequest
|
||||
{
|
||||
ScenarioId = source.ScenarioId,
|
||||
ScenarioSlug = source.ScenarioSlug,
|
||||
NodeId = source.NodeId,
|
||||
CounterKey = counterKey,
|
||||
Amount = amount,
|
||||
@@ -173,13 +173,13 @@ public sealed class EffectsService
|
||||
ForgetWait(source.RunId, source.NodeId);
|
||||
var next = ReadEffect(response.Effect);
|
||||
if (next == null)
|
||||
Emit(OnScenarioCompleted, new ScenarioCompletedEffect(source.RunId, source.ScenarioId));
|
||||
Emit(OnScenarioCompleted, new ScenarioCompletedEffect(source.RunId, source.ScenarioSlug));
|
||||
else
|
||||
Ingest(new[] { next });
|
||||
}
|
||||
catch (Exception ex) when (IsDefinitiveRejection(ex))
|
||||
{
|
||||
DropRun(source.RunId, source.ScenarioId, source.NodeId, ex);
|
||||
DropRun(source.RunId, source.ScenarioSlug, source.NodeId, ex);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
@@ -274,14 +274,14 @@ public sealed class EffectsService
|
||||
OnScenarioFailed,
|
||||
new ScenarioFailedEffect(
|
||||
effect.RunId,
|
||||
effect.ScenarioId,
|
||||
effect.ScenarioSlug,
|
||||
effect.NodeId,
|
||||
new Exception($"Unsupported scenario node type '{effect.Type}'")));
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private void DropRun(string runId, string scenarioId, string nodeId, Exception exception)
|
||||
private void DropRun(string runId, string scenarioSlug, string nodeId, Exception exception)
|
||||
{
|
||||
lock (_gate)
|
||||
{
|
||||
@@ -299,7 +299,7 @@ public sealed class EffectsService
|
||||
}
|
||||
}
|
||||
|
||||
Emit(OnScenarioFailed, new ScenarioFailedEffect(runId, scenarioId, nodeId, exception));
|
||||
Emit(OnScenarioFailed, new ScenarioFailedEffect(runId, scenarioSlug, nodeId, exception));
|
||||
}
|
||||
|
||||
private void Reconcile(IEnumerable<PendingEffect>? effects)
|
||||
@@ -424,7 +424,7 @@ internal sealed class EffectHandle
|
||||
|
||||
public string RunId => _effect.RunId;
|
||||
|
||||
public string ScenarioId => _effect.ScenarioId;
|
||||
public string ScenarioSlug => _effect.ScenarioSlug;
|
||||
|
||||
public string NodeId => _effect.NodeId;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user