@ghostpaw/questlog 0.2.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +226 -431
- package/dist/index.js +226 -431
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -3753,71 +3753,42 @@ var manageRepeatableTool = defineQuestlogTool({
|
|
|
3753
3753
|
now: "Evaluation or spawn timestamp for previewing or materializing due anchors."
|
|
3754
3754
|
},
|
|
3755
3755
|
outputDescription: "Returns the changed repeatable quest, due anchor preview items, or spawned quest details for the selected recurrence action. Empty previews and empty spawns return structured success or no-op results, and repeatable hiding is now intentionally routed through `retire_work`.",
|
|
3756
|
-
inputSchema:
|
|
3757
|
-
|
|
3758
|
-
|
|
3759
|
-
|
|
3760
|
-
|
|
3761
|
-
|
|
3762
|
-
|
|
3763
|
-
|
|
3764
|
-
|
|
3765
|
-
|
|
3766
|
-
|
|
3767
|
-
objectSchema(
|
|
3768
|
-
{
|
|
3769
|
-
action: enumSchema("Action to perform.", ["create"]),
|
|
3770
|
-
repeatableQuest: objectSchema(
|
|
3771
|
-
{
|
|
3772
|
-
title: stringSchema("Title for the new repeatable quest."),
|
|
3773
|
-
objective: stringSchema("Objective for the new repeatable quest."),
|
|
3774
|
-
rrule: stringSchema("RRULE describing recurrence."),
|
|
3775
|
-
anchorAt: integerSchema("Recurrence anchor timestamp.")
|
|
3776
|
-
},
|
|
3777
|
-
["title", "objective", "rrule", "anchorAt"]
|
|
3778
|
-
)
|
|
3779
|
-
},
|
|
3780
|
-
["action", "repeatableQuest"]
|
|
3781
|
-
),
|
|
3782
|
-
objectSchema(
|
|
3783
|
-
{
|
|
3784
|
-
action: enumSchema("Action to perform.", ["preview_due"]),
|
|
3785
|
-
now: integerSchema("Evaluation timestamp for due anchors.")
|
|
3786
|
-
},
|
|
3787
|
-
["action"]
|
|
3788
|
-
),
|
|
3789
|
-
objectSchema(
|
|
3756
|
+
inputSchema: objectSchema(
|
|
3757
|
+
{
|
|
3758
|
+
action: enumSchema("Action to perform.", [
|
|
3759
|
+
"archive",
|
|
3760
|
+
"create",
|
|
3761
|
+
"preview_due",
|
|
3762
|
+
"spawn_due",
|
|
3763
|
+
"update"
|
|
3764
|
+
]),
|
|
3765
|
+
repeatableQuestId: integerSchema("Repeatable quest to archive or update."),
|
|
3766
|
+
repeatableQuest: objectSchema(
|
|
3790
3767
|
{
|
|
3791
|
-
|
|
3792
|
-
|
|
3768
|
+
title: stringSchema("Title for the new repeatable quest."),
|
|
3769
|
+
objective: stringSchema("Objective for the new repeatable quest."),
|
|
3770
|
+
rrule: stringSchema("RRULE describing recurrence."),
|
|
3771
|
+
anchorAt: integerSchema("Recurrence anchor timestamp.")
|
|
3793
3772
|
},
|
|
3794
|
-
["
|
|
3773
|
+
["title", "objective", "rrule", "anchorAt"]
|
|
3795
3774
|
),
|
|
3796
|
-
|
|
3797
|
-
|
|
3798
|
-
|
|
3799
|
-
|
|
3800
|
-
|
|
3801
|
-
|
|
3802
|
-
|
|
3803
|
-
|
|
3804
|
-
|
|
3805
|
-
|
|
3806
|
-
|
|
3807
|
-
|
|
3808
|
-
|
|
3809
|
-
|
|
3810
|
-
|
|
3811
|
-
|
|
3812
|
-
|
|
3813
|
-
archivedAt: integerSchema("Optional archive timestamp."),
|
|
3814
|
-
now: integerSchema("Optional update timestamp.")
|
|
3815
|
-
},
|
|
3816
|
-
["action", "repeatableQuestId"]
|
|
3817
|
-
)
|
|
3818
|
-
],
|
|
3819
|
-
description: "Manage repeatable quest definitions and due materialization."
|
|
3820
|
-
},
|
|
3775
|
+
title: stringSchema("Optional new title for the update action."),
|
|
3776
|
+
objective: stringSchema("Optional new objective for the update action."),
|
|
3777
|
+
questlineId: integerSchema("Optional new questline id."),
|
|
3778
|
+
rrule: stringSchema("Optional new RRULE."),
|
|
3779
|
+
anchorAt: integerSchema("Optional new recurrence anchor timestamp."),
|
|
3780
|
+
notBeforeOffsetSeconds: integerSchema("Optional new not-before offset in seconds."),
|
|
3781
|
+
dueOffsetSeconds: integerSchema("Optional new due offset in seconds."),
|
|
3782
|
+
scheduledStartOffsetSeconds: integerSchema("Optional new scheduled-start offset in seconds."),
|
|
3783
|
+
scheduledEndOffsetSeconds: integerSchema("Optional new scheduled-end offset in seconds."),
|
|
3784
|
+
allDay: booleanSchema("Whether future schedules are all-day."),
|
|
3785
|
+
estimateSeconds: integerSchema("Optional new effort estimate."),
|
|
3786
|
+
archivedAt: integerSchema("Optional archive timestamp."),
|
|
3787
|
+
now: integerSchema("Evaluation or update timestamp.")
|
|
3788
|
+
},
|
|
3789
|
+
["action"],
|
|
3790
|
+
"Manage repeatable quest definitions and due materialization."
|
|
3791
|
+
),
|
|
3821
3792
|
handler: manageRepeatableToolHandler
|
|
3822
3793
|
});
|
|
3823
3794
|
|
|
@@ -4021,60 +3992,29 @@ var organizeWorkTool = defineQuestlogTool({
|
|
|
4021
3992
|
now: "Optional timestamp for unlock changes."
|
|
4022
3993
|
},
|
|
4023
3994
|
outputDescription: "Returns the updated questline detail or target quest detail after grouping or dependency changes. Repeated equivalent changes return structured no-op results.",
|
|
4024
|
-
inputSchema:
|
|
4025
|
-
|
|
4026
|
-
|
|
4027
|
-
|
|
4028
|
-
|
|
4029
|
-
|
|
4030
|
-
|
|
4031
|
-
|
|
4032
|
-
|
|
4033
|
-
|
|
4034
|
-
|
|
4035
|
-
),
|
|
4036
|
-
|
|
4037
|
-
|
|
4038
|
-
|
|
4039
|
-
|
|
4040
|
-
|
|
4041
|
-
|
|
4042
|
-
|
|
4043
|
-
|
|
4044
|
-
|
|
4045
|
-
|
|
4046
|
-
|
|
4047
|
-
fromQuestId: integerSchema("Prerequisite quest id."),
|
|
4048
|
-
now: integerSchema("Optional timestamp for the unlock change."),
|
|
4049
|
-
toQuestId: integerSchema("Quest whose blockers should change.")
|
|
4050
|
-
},
|
|
4051
|
-
["action", "fromQuestId", "toQuestId"]
|
|
4052
|
-
),
|
|
4053
|
-
objectSchema(
|
|
4054
|
-
{
|
|
4055
|
-
action: enumSchema("Action to perform.", ["replace_unlocks"]),
|
|
4056
|
-
fromQuestIds: arraySchema(integerSchema("Quest id."), "Full prerequisite quest id set."),
|
|
4057
|
-
now: integerSchema("Optional timestamp for the unlock change."),
|
|
4058
|
-
toQuestId: integerSchema("Quest whose blockers should change.")
|
|
4059
|
-
},
|
|
4060
|
-
["action", "fromQuestIds", "toQuestId"]
|
|
4061
|
-
),
|
|
4062
|
-
objectSchema(
|
|
4063
|
-
{
|
|
4064
|
-
action: enumSchema("Action to perform.", ["set_questline_fields"]),
|
|
4065
|
-
questlineId: integerSchema("Questline to update."),
|
|
4066
|
-
title: stringSchema("Optional new questline title."),
|
|
4067
|
-
description: stringSchema("Optional new questline description."),
|
|
4068
|
-
startsAt: integerSchema("Optional questline start timestamp."),
|
|
4069
|
-
dueAt: integerSchema("Optional questline due timestamp."),
|
|
4070
|
-
archivedAt: integerSchema("Optional archive timestamp."),
|
|
4071
|
-
now: integerSchema("Optional update timestamp.")
|
|
4072
|
-
},
|
|
4073
|
-
["action", "questlineId"]
|
|
4074
|
-
)
|
|
4075
|
-
],
|
|
4076
|
-
description: "Organize questline fields and unlock dependencies."
|
|
4077
|
-
},
|
|
3995
|
+
inputSchema: objectSchema(
|
|
3996
|
+
{
|
|
3997
|
+
action: enumSchema("Action to perform.", [
|
|
3998
|
+
"add_unlock",
|
|
3999
|
+
"archive_questline",
|
|
4000
|
+
"remove_unlock",
|
|
4001
|
+
"replace_unlocks",
|
|
4002
|
+
"set_questline_fields"
|
|
4003
|
+
]),
|
|
4004
|
+
questlineId: integerSchema("Questline to update or archive."),
|
|
4005
|
+
title: stringSchema("Optional new questline title."),
|
|
4006
|
+
description: stringSchema("Optional new questline description."),
|
|
4007
|
+
startsAt: integerSchema("Optional questline start timestamp."),
|
|
4008
|
+
dueAt: integerSchema("Optional questline due timestamp."),
|
|
4009
|
+
archivedAt: integerSchema("Optional archive timestamp."),
|
|
4010
|
+
toQuestId: integerSchema("Quest whose blockers should change."),
|
|
4011
|
+
fromQuestId: integerSchema("Prerequisite quest id."),
|
|
4012
|
+
fromQuestIds: arraySchema(integerSchema("Quest id."), "Full prerequisite quest id set."),
|
|
4013
|
+
now: integerSchema("Optional timestamp.")
|
|
4014
|
+
},
|
|
4015
|
+
["action"],
|
|
4016
|
+
"Organize questline fields and unlock dependencies."
|
|
4017
|
+
),
|
|
4078
4018
|
handler: organizeWorkToolHandler
|
|
4079
4019
|
});
|
|
4080
4020
|
|
|
@@ -4164,35 +4104,22 @@ var planQuestTool = defineQuestlogTool({
|
|
|
4164
4104
|
now: "Optional timestamp for updating the quest."
|
|
4165
4105
|
},
|
|
4166
4106
|
outputDescription: "Returns the updated quest detail after objective or planning changes. If the requested planning state is already present, the tool returns a structured no-op result.",
|
|
4167
|
-
inputSchema:
|
|
4168
|
-
|
|
4169
|
-
|
|
4170
|
-
|
|
4171
|
-
|
|
4172
|
-
|
|
4173
|
-
|
|
4174
|
-
|
|
4175
|
-
|
|
4176
|
-
|
|
4177
|
-
|
|
4178
|
-
)
|
|
4179
|
-
|
|
4180
|
-
|
|
4181
|
-
|
|
4182
|
-
|
|
4183
|
-
notBeforeAt: integerSchema("Optional earliest actionable timestamp."),
|
|
4184
|
-
dueAt: integerSchema("Optional latest acceptable completion timestamp."),
|
|
4185
|
-
scheduledStartAt: integerSchema("Optional planned schedule window start."),
|
|
4186
|
-
scheduledEndAt: integerSchema("Optional planned schedule window end."),
|
|
4187
|
-
allDay: booleanSchema("Whether the planned schedule window is all-day."),
|
|
4188
|
-
estimateSeconds: integerSchema("Optional active-effort estimate in seconds."),
|
|
4189
|
-
now: integerSchema("Optional update timestamp.")
|
|
4190
|
-
},
|
|
4191
|
-
["action", "questId"]
|
|
4192
|
-
)
|
|
4193
|
-
],
|
|
4194
|
-
description: "Refine a quest objective or planning state."
|
|
4195
|
-
},
|
|
4107
|
+
inputSchema: objectSchema(
|
|
4108
|
+
{
|
|
4109
|
+
action: enumSchema("Action to perform.", ["revise_objective", "set_time"]),
|
|
4110
|
+
questId: integerSchema("The quest to refine."),
|
|
4111
|
+
objective: stringSchema("The new quest objective text. Required for revise_objective."),
|
|
4112
|
+
notBeforeAt: integerSchema("Optional earliest actionable timestamp."),
|
|
4113
|
+
dueAt: integerSchema("Optional latest acceptable completion timestamp."),
|
|
4114
|
+
scheduledStartAt: integerSchema("Optional planned schedule window start."),
|
|
4115
|
+
scheduledEndAt: integerSchema("Optional planned schedule window end."),
|
|
4116
|
+
allDay: booleanSchema("Whether the planned schedule window is all-day."),
|
|
4117
|
+
estimateSeconds: integerSchema("Optional active-effort estimate in seconds."),
|
|
4118
|
+
now: integerSchema("Optional update timestamp.")
|
|
4119
|
+
},
|
|
4120
|
+
["action", "questId"],
|
|
4121
|
+
"Refine a quest objective or planning state."
|
|
4122
|
+
),
|
|
4196
4123
|
handler: planQuestToolHandler
|
|
4197
4124
|
});
|
|
4198
4125
|
|
|
@@ -4748,105 +4675,46 @@ var rewardWorkTool = defineQuestlogTool({
|
|
|
4748
4675
|
now: "Optional timestamp for removing a reward or replacing repeatable reward templates."
|
|
4749
4676
|
},
|
|
4750
4677
|
outputDescription: "Returns the updated or claimed reward when one concrete reward changes, or a structured success result for repeatable future template replacement. Already-claimed rewards return a structured no-op for claim and an error for invalid update or remove attempts.",
|
|
4751
|
-
inputSchema:
|
|
4752
|
-
|
|
4753
|
-
|
|
4754
|
-
|
|
4678
|
+
inputSchema: objectSchema(
|
|
4679
|
+
{
|
|
4680
|
+
action: enumSchema("Action to perform.", [
|
|
4681
|
+
"add",
|
|
4682
|
+
"claim",
|
|
4683
|
+
"remove",
|
|
4684
|
+
"replace_repeatable_template",
|
|
4685
|
+
"update"
|
|
4686
|
+
]),
|
|
4687
|
+
target: objectSchema(
|
|
4755
4688
|
{
|
|
4756
|
-
|
|
4757
|
-
|
|
4758
|
-
{
|
|
4759
|
-
kind: stringSchema("Reward kind."),
|
|
4760
|
-
name: stringSchema("Reward name.")
|
|
4761
|
-
},
|
|
4762
|
-
["kind", "name"]
|
|
4763
|
-
),
|
|
4764
|
-
target: objectSchema(
|
|
4765
|
-
{
|
|
4766
|
-
id: integerSchema("Quest id."),
|
|
4767
|
-
kind: enumSchema("Target kind.", ["quest"])
|
|
4768
|
-
},
|
|
4769
|
-
["id", "kind"]
|
|
4770
|
-
)
|
|
4689
|
+
id: integerSchema("Target entity id."),
|
|
4690
|
+
kind: enumSchema("Target kind.", ["quest", "reward", "repeatable_quest"])
|
|
4771
4691
|
},
|
|
4772
|
-
["
|
|
4692
|
+
["id", "kind"]
|
|
4773
4693
|
),
|
|
4774
|
-
objectSchema(
|
|
4694
|
+
reward: objectSchema(
|
|
4775
4695
|
{
|
|
4776
|
-
|
|
4777
|
-
|
|
4778
|
-
|
|
4779
|
-
{
|
|
4780
|
-
id: integerSchema("Reward id."),
|
|
4781
|
-
kind: enumSchema("Target kind.", ["reward"])
|
|
4782
|
-
},
|
|
4783
|
-
["id", "kind"]
|
|
4784
|
-
)
|
|
4696
|
+
kind: stringSchema("Reward kind."),
|
|
4697
|
+
name: stringSchema("Reward name."),
|
|
4698
|
+
now: integerSchema("Optional update timestamp for the update action.")
|
|
4785
4699
|
},
|
|
4786
|
-
[
|
|
4700
|
+
[]
|
|
4787
4701
|
),
|
|
4788
|
-
|
|
4789
|
-
|
|
4790
|
-
|
|
4791
|
-
|
|
4792
|
-
|
|
4793
|
-
|
|
4794
|
-
|
|
4795
|
-
|
|
4796
|
-
|
|
4797
|
-
["id", "kind"]
|
|
4798
|
-
)
|
|
4799
|
-
},
|
|
4800
|
-
["action", "target"]
|
|
4801
|
-
),
|
|
4802
|
-
objectSchema(
|
|
4803
|
-
{
|
|
4804
|
-
action: enumSchema("Action to perform.", ["replace_repeatable_template"]),
|
|
4805
|
-
now: integerSchema("Optional timestamp for replacing templates."),
|
|
4806
|
-
rewards: arraySchema(
|
|
4807
|
-
objectSchema(
|
|
4808
|
-
{
|
|
4809
|
-
kind: stringSchema("Reward kind."),
|
|
4810
|
-
name: stringSchema("Reward name.")
|
|
4811
|
-
},
|
|
4812
|
-
["kind", "name"]
|
|
4813
|
-
),
|
|
4814
|
-
"Full future reward template set."
|
|
4815
|
-
),
|
|
4816
|
-
target: objectSchema(
|
|
4817
|
-
{
|
|
4818
|
-
id: integerSchema("Repeatable quest id."),
|
|
4819
|
-
kind: enumSchema("Target kind.", ["repeatable_quest"])
|
|
4820
|
-
},
|
|
4821
|
-
["id", "kind"]
|
|
4822
|
-
)
|
|
4823
|
-
},
|
|
4824
|
-
["action", "target", "rewards"]
|
|
4702
|
+
rewards: arraySchema(
|
|
4703
|
+
objectSchema(
|
|
4704
|
+
{
|
|
4705
|
+
kind: stringSchema("Reward kind."),
|
|
4706
|
+
name: stringSchema("Reward name.")
|
|
4707
|
+
},
|
|
4708
|
+
["kind", "name"]
|
|
4709
|
+
),
|
|
4710
|
+
"Full future reward template set. Required for replace_repeatable_template."
|
|
4825
4711
|
),
|
|
4826
|
-
|
|
4827
|
-
|
|
4828
|
-
|
|
4829
|
-
|
|
4830
|
-
|
|
4831
|
-
|
|
4832
|
-
name: stringSchema("Optional reward name."),
|
|
4833
|
-
now: integerSchema("Optional update timestamp.")
|
|
4834
|
-
},
|
|
4835
|
-
[]
|
|
4836
|
-
),
|
|
4837
|
-
target: objectSchema(
|
|
4838
|
-
{
|
|
4839
|
-
id: integerSchema("Reward id."),
|
|
4840
|
-
kind: enumSchema("Target kind.", ["reward"])
|
|
4841
|
-
},
|
|
4842
|
-
["id", "kind"]
|
|
4843
|
-
)
|
|
4844
|
-
},
|
|
4845
|
-
["action", "target", "reward"]
|
|
4846
|
-
)
|
|
4847
|
-
],
|
|
4848
|
-
description: "Manage quest rewards and repeatable reward templates."
|
|
4849
|
-
},
|
|
4712
|
+
claimedAt: integerSchema("Optional claim timestamp."),
|
|
4713
|
+
now: integerSchema("Optional timestamp for removal or template replacement.")
|
|
4714
|
+
},
|
|
4715
|
+
["action", "target"],
|
|
4716
|
+
"Manage quest rewards and repeatable reward templates."
|
|
4717
|
+
),
|
|
4850
4718
|
handler: rewardWorkToolHandler
|
|
4851
4719
|
});
|
|
4852
4720
|
|
|
@@ -5002,66 +4870,39 @@ var runQuestTool = defineQuestlogTool({
|
|
|
5002
4870
|
followups: "Follow-up quest creation inputs used only for the abandon-and-spawn-followups action."
|
|
5003
4871
|
},
|
|
5004
4872
|
outputDescription: "Returns the updated quest detail after the selected lifecycle action, plus purpose-shaped primary, updated, and created refs when follow-up work is spawned. Safe repeated starts return structured no-op results.",
|
|
5005
|
-
inputSchema:
|
|
5006
|
-
|
|
5007
|
-
|
|
5008
|
-
|
|
5009
|
-
|
|
5010
|
-
|
|
5011
|
-
|
|
5012
|
-
|
|
5013
|
-
|
|
5014
|
-
|
|
5015
|
-
|
|
5016
|
-
|
|
5017
|
-
|
|
5018
|
-
{
|
|
5019
|
-
action: enumSchema("Action to perform.", ["abandon_and_spawn_followups"]),
|
|
5020
|
-
followups: arraySchema(
|
|
5021
|
-
objectSchema(
|
|
5022
|
-
{
|
|
5023
|
-
title: stringSchema("Title for a follow-up quest."),
|
|
5024
|
-
objective: stringSchema("Objective for a follow-up quest.")
|
|
5025
|
-
},
|
|
5026
|
-
["title", "objective"]
|
|
5027
|
-
),
|
|
5028
|
-
"Follow-up quests to create atomically."
|
|
5029
|
-
),
|
|
5030
|
-
outcome: stringSchema("Terminal outcome text."),
|
|
5031
|
-
questId: integerSchema("Quest to abandon."),
|
|
5032
|
-
resolvedAt: integerSchema("Optional resolved timestamp.")
|
|
5033
|
-
},
|
|
5034
|
-
["action", "questId", "outcome", "followups"]
|
|
4873
|
+
inputSchema: objectSchema(
|
|
4874
|
+
{
|
|
4875
|
+
action: enumSchema("Action to perform.", [
|
|
4876
|
+
"start",
|
|
4877
|
+
"log_effort",
|
|
4878
|
+
"finish",
|
|
4879
|
+
"abandon",
|
|
4880
|
+
"abandon_and_spawn_followups"
|
|
4881
|
+
]),
|
|
4882
|
+
questId: integerSchema("Quest whose execution state should change."),
|
|
4883
|
+
startedAt: integerSchema("Optional start timestamp for the start action."),
|
|
4884
|
+
effortSeconds: integerSchema(
|
|
4885
|
+
"Positive active-effort increment in seconds. Required for log_effort."
|
|
5035
4886
|
),
|
|
5036
|
-
|
|
5037
|
-
|
|
5038
|
-
|
|
5039
|
-
outcome: stringSchema("Terminal outcome text."),
|
|
5040
|
-
questId: integerSchema("Quest to finish."),
|
|
5041
|
-
resolvedAt: integerSchema("Optional resolved timestamp.")
|
|
5042
|
-
},
|
|
5043
|
-
["action", "questId", "outcome"]
|
|
4887
|
+
now: integerSchema("Optional effort-log timestamp."),
|
|
4888
|
+
outcome: stringSchema(
|
|
4889
|
+
"Terminal outcome text. Required for finish, abandon, and abandon_and_spawn_followups."
|
|
5044
4890
|
),
|
|
5045
|
-
|
|
5046
|
-
|
|
5047
|
-
|
|
5048
|
-
|
|
5049
|
-
|
|
5050
|
-
|
|
5051
|
-
|
|
5052
|
-
|
|
5053
|
-
|
|
5054
|
-
|
|
5055
|
-
{
|
|
5056
|
-
action: enumSchema("Action to perform.", ["start"]),
|
|
5057
|
-
questId: integerSchema("Quest to start."),
|
|
5058
|
-
startedAt: integerSchema("Optional start timestamp.")
|
|
5059
|
-
},
|
|
5060
|
-
["action", "questId"]
|
|
4891
|
+
resolvedAt: integerSchema("Optional resolved timestamp for finish or abandon actions."),
|
|
4892
|
+
followups: arraySchema(
|
|
4893
|
+
objectSchema(
|
|
4894
|
+
{
|
|
4895
|
+
title: stringSchema("Title for a follow-up quest."),
|
|
4896
|
+
objective: stringSchema("Objective for a follow-up quest.")
|
|
4897
|
+
},
|
|
4898
|
+
["title", "objective"]
|
|
4899
|
+
),
|
|
4900
|
+
"Follow-up quests to create atomically. Required for abandon_and_spawn_followups."
|
|
5061
4901
|
)
|
|
5062
|
-
|
|
5063
|
-
|
|
5064
|
-
|
|
4902
|
+
},
|
|
4903
|
+
["action", "questId"],
|
|
4904
|
+
"Run quest lifecycle actions."
|
|
4905
|
+
),
|
|
5065
4906
|
handler: runQuestToolHandler
|
|
5066
4907
|
});
|
|
5067
4908
|
|
|
@@ -5393,8 +5234,8 @@ function shapeWorkToolHandler(db, input) {
|
|
|
5393
5234
|
}
|
|
5394
5235
|
var shapeWorkTool = defineQuestlogTool({
|
|
5395
5236
|
name: shapeWorkToolName,
|
|
5396
|
-
description: "
|
|
5397
|
-
whenToUse: "Use this when deciding what real work exists and how it should be grouped before or around execution.",
|
|
5237
|
+
description: "Create a quest (with timing, tags, and objective in one call), create a questline, settle a rumor into concrete work, or manage quest-questline membership. Use create_quest for clear commitments \u2014 include tags and timing directly to avoid follow-up calls.",
|
|
5238
|
+
whenToUse: "Use this when deciding what real work exists and how it should be grouped before or around execution. Prefer a single create_quest call with all fields over separate create + plan_quest + tag_work calls.",
|
|
5398
5239
|
whenNotToUse: "Do not use this for quest execution steps like starting, finishing, abandoning, or logging effort.",
|
|
5399
5240
|
sideEffects: "writes_state",
|
|
5400
5241
|
readOnly: false,
|
|
@@ -5403,104 +5244,96 @@ var shapeWorkTool = defineQuestlogTool({
|
|
|
5403
5244
|
inputDescriptions: {
|
|
5404
5245
|
action: "Which structure-shaping action to perform, such as settling a rumor, creating a quest, or attaching a quest to a questline.",
|
|
5405
5246
|
rumorId: "The rumor to dismiss, reopen, or settle when the action targets intake.",
|
|
5406
|
-
questline: "Questline creation data used when creating a questline directly or as part of rumor settlement.",
|
|
5407
|
-
quests: "Concrete quest creation inputs
|
|
5247
|
+
questline: "Questline creation data used when creating a questline directly or as part of rumor settlement. Include description for context.",
|
|
5248
|
+
quests: "Concrete quest creation inputs when settling a rumor into real work. Each quest supports the same fields as the quest property \u2014 include timing and tags directly.",
|
|
5408
5249
|
settledAt: "Optional settlement timestamp for rumor settlement.",
|
|
5409
|
-
quest: "Quest creation input
|
|
5250
|
+
quest: "Quest creation input when directly creating one concrete quest. Include timing fields (dueAt, scheduledStartAt, etc.), tags, and rewards to create a fully specified quest in one call.",
|
|
5410
5251
|
questId: "The concrete quest being attached to or detached from a questline.",
|
|
5411
5252
|
questlineId: "The questline that should receive the quest for attach actions.",
|
|
5412
5253
|
dismissedAt: "Optional dismissal timestamp for dismissing a rumor.",
|
|
5413
5254
|
now: "Optional timestamp for reopen or questline membership changes."
|
|
5414
5255
|
},
|
|
5415
5256
|
outputDescription: "Returns the changed or created rumor, quest, questline, or created quest set for the selected shape-work action, plus purpose-shaped primary and created or updated refs. Repeated safe actions return structured no-op results, and rumor settlement can ask for missing structure instead of failing.",
|
|
5416
|
-
inputSchema:
|
|
5417
|
-
|
|
5418
|
-
|
|
5419
|
-
|
|
5420
|
-
|
|
5421
|
-
|
|
5422
|
-
|
|
5423
|
-
|
|
5424
|
-
|
|
5425
|
-
|
|
5426
|
-
|
|
5427
|
-
),
|
|
5428
|
-
|
|
5429
|
-
|
|
5430
|
-
action: enumSchema("Action to perform.", ["create_quest"]),
|
|
5431
|
-
quest: objectSchema(
|
|
5432
|
-
{
|
|
5433
|
-
title: stringSchema("Title for the new quest."),
|
|
5434
|
-
objective: stringSchema("Objective for the new quest.")
|
|
5435
|
-
},
|
|
5436
|
-
["title", "objective"]
|
|
5437
|
-
)
|
|
5438
|
-
},
|
|
5439
|
-
["action", "quest"]
|
|
5440
|
-
),
|
|
5441
|
-
objectSchema(
|
|
5442
|
-
{
|
|
5443
|
-
action: enumSchema("Action to perform.", ["create_questline"]),
|
|
5444
|
-
questline: objectSchema(
|
|
5445
|
-
{
|
|
5446
|
-
title: stringSchema("Title for the new questline.")
|
|
5447
|
-
},
|
|
5448
|
-
["title"]
|
|
5449
|
-
)
|
|
5450
|
-
},
|
|
5451
|
-
["action", "questline"]
|
|
5452
|
-
),
|
|
5453
|
-
objectSchema(
|
|
5454
|
-
{
|
|
5455
|
-
action: enumSchema("Action to perform.", ["detach_quest_from_questline"]),
|
|
5456
|
-
now: integerSchema("Optional timestamp for the membership change."),
|
|
5457
|
-
questId: integerSchema("Quest to detach.")
|
|
5458
|
-
},
|
|
5459
|
-
["action", "questId"]
|
|
5460
|
-
),
|
|
5461
|
-
objectSchema(
|
|
5257
|
+
inputSchema: objectSchema(
|
|
5258
|
+
{
|
|
5259
|
+
action: enumSchema("Action to perform.", [
|
|
5260
|
+
"attach_quest_to_questline",
|
|
5261
|
+
"create_quest",
|
|
5262
|
+
"create_questline",
|
|
5263
|
+
"detach_quest_from_questline",
|
|
5264
|
+
"dismiss_rumor",
|
|
5265
|
+
"reopen_rumor",
|
|
5266
|
+
"settle_rumor"
|
|
5267
|
+
]),
|
|
5268
|
+
questId: integerSchema("Quest to attach or detach."),
|
|
5269
|
+
questlineId: integerSchema("Questline that should receive the quest."),
|
|
5270
|
+
quest: objectSchema(
|
|
5462
5271
|
{
|
|
5463
|
-
|
|
5464
|
-
|
|
5465
|
-
|
|
5272
|
+
title: stringSchema("Title for the new quest."),
|
|
5273
|
+
objective: stringSchema("Objective for the new quest."),
|
|
5274
|
+
questlineId: integerSchema("Optional questline to place the quest in."),
|
|
5275
|
+
tags: arraySchema(stringSchema("Tag name."), "Optional tags to apply at creation."),
|
|
5276
|
+
rewards: arraySchema(
|
|
5277
|
+
objectSchema(
|
|
5278
|
+
{
|
|
5279
|
+
kind: stringSchema("Reward kind."),
|
|
5280
|
+
name: stringSchema("Reward name.")
|
|
5281
|
+
},
|
|
5282
|
+
["kind", "name"]
|
|
5283
|
+
),
|
|
5284
|
+
"Optional rewards to attach at creation."
|
|
5285
|
+
),
|
|
5286
|
+
dueAt: integerSchema("Optional latest acceptable completion timestamp."),
|
|
5287
|
+
notBeforeAt: integerSchema("Optional earliest actionable timestamp."),
|
|
5288
|
+
scheduledStartAt: integerSchema("Optional planned schedule window start."),
|
|
5289
|
+
scheduledEndAt: integerSchema("Optional planned schedule window end."),
|
|
5290
|
+
allDay: booleanSchema("Whether the scheduled window is all-day."),
|
|
5291
|
+
estimateSeconds: integerSchema("Optional active-effort estimate in seconds.")
|
|
5466
5292
|
},
|
|
5467
|
-
["
|
|
5293
|
+
["title", "objective"]
|
|
5468
5294
|
),
|
|
5469
|
-
objectSchema(
|
|
5295
|
+
questline: objectSchema(
|
|
5470
5296
|
{
|
|
5471
|
-
|
|
5472
|
-
|
|
5473
|
-
rumorId: integerSchema("Rumor to reopen.")
|
|
5297
|
+
title: stringSchema("Questline title."),
|
|
5298
|
+
description: stringSchema("Optional questline description.")
|
|
5474
5299
|
},
|
|
5475
|
-
[
|
|
5300
|
+
[]
|
|
5476
5301
|
),
|
|
5477
|
-
|
|
5478
|
-
|
|
5479
|
-
|
|
5480
|
-
|
|
5481
|
-
|
|
5482
|
-
|
|
5483
|
-
|
|
5484
|
-
|
|
5485
|
-
|
|
5486
|
-
|
|
5487
|
-
|
|
5488
|
-
|
|
5489
|
-
|
|
5490
|
-
|
|
5491
|
-
|
|
5492
|
-
|
|
5493
|
-
|
|
5494
|
-
|
|
5302
|
+
rumorId: integerSchema("Rumor to settle, dismiss, or reopen."),
|
|
5303
|
+
dismissedAt: integerSchema("Optional dismissal timestamp."),
|
|
5304
|
+
settledAt: integerSchema("Optional settlement timestamp."),
|
|
5305
|
+
quests: arraySchema(
|
|
5306
|
+
objectSchema(
|
|
5307
|
+
{
|
|
5308
|
+
title: stringSchema("Title for a created quest."),
|
|
5309
|
+
objective: stringSchema("Objective for a created quest."),
|
|
5310
|
+
tags: arraySchema(stringSchema("Tag name."), "Optional tags to apply at creation."),
|
|
5311
|
+
rewards: arraySchema(
|
|
5312
|
+
objectSchema(
|
|
5313
|
+
{
|
|
5314
|
+
kind: stringSchema("Reward kind."),
|
|
5315
|
+
name: stringSchema("Reward name.")
|
|
5316
|
+
},
|
|
5317
|
+
["kind", "name"]
|
|
5318
|
+
),
|
|
5319
|
+
"Optional rewards to attach at creation."
|
|
5495
5320
|
),
|
|
5496
|
-
"Optional
|
|
5497
|
-
|
|
5498
|
-
|
|
5499
|
-
|
|
5500
|
-
|
|
5501
|
-
|
|
5502
|
-
|
|
5503
|
-
|
|
5321
|
+
dueAt: integerSchema("Optional latest acceptable completion timestamp."),
|
|
5322
|
+
notBeforeAt: integerSchema("Optional earliest actionable timestamp."),
|
|
5323
|
+
scheduledStartAt: integerSchema("Optional planned schedule window start."),
|
|
5324
|
+
scheduledEndAt: integerSchema("Optional planned schedule window end."),
|
|
5325
|
+
allDay: booleanSchema("Whether the scheduled window is all-day."),
|
|
5326
|
+
estimateSeconds: integerSchema("Optional active-effort estimate in seconds.")
|
|
5327
|
+
},
|
|
5328
|
+
["title", "objective"]
|
|
5329
|
+
),
|
|
5330
|
+
"Quests to create during rumor settlement. Include timing and tags directly."
|
|
5331
|
+
),
|
|
5332
|
+
now: integerSchema("Optional timestamp for membership or reopen changes.")
|
|
5333
|
+
},
|
|
5334
|
+
["action"],
|
|
5335
|
+
"Create quests with timing and tags, create questlines, settle rumors into work, or manage quest-questline membership."
|
|
5336
|
+
),
|
|
5504
5337
|
handler: shapeWorkToolHandler
|
|
5505
5338
|
});
|
|
5506
5339
|
|
|
@@ -5700,60 +5533,22 @@ var tagWorkTool = defineQuestlogTool({
|
|
|
5700
5533
|
now: "Optional timestamp for the tag mutation."
|
|
5701
5534
|
},
|
|
5702
5535
|
outputDescription: "Returns the normalized final tag set for the target after the selected tag action. Repeated equivalent changes return structured no-op results.",
|
|
5703
|
-
inputSchema:
|
|
5704
|
-
|
|
5705
|
-
|
|
5706
|
-
objectSchema(
|
|
5707
|
-
{
|
|
5708
|
-
action: enumSchema("Action to perform.", ["add"]),
|
|
5709
|
-
now: integerSchema("Optional timestamp for the tag mutation."),
|
|
5710
|
-
tagNames: arraySchema(stringSchema("Tag name."), "Tags to add."),
|
|
5711
|
-
target: objectSchema(
|
|
5712
|
-
{
|
|
5713
|
-
id: integerSchema("Quest id."),
|
|
5714
|
-
kind: enumSchema("Target kind.", ["quest"])
|
|
5715
|
-
},
|
|
5716
|
-
["id", "kind"]
|
|
5717
|
-
)
|
|
5718
|
-
},
|
|
5719
|
-
["action", "target", "tagNames"]
|
|
5720
|
-
),
|
|
5721
|
-
objectSchema(
|
|
5536
|
+
inputSchema: objectSchema(
|
|
5537
|
+
{
|
|
5538
|
+
action: enumSchema("Action to perform.", ["add", "remove", "replace"]),
|
|
5539
|
+
target: objectSchema(
|
|
5722
5540
|
{
|
|
5723
|
-
|
|
5724
|
-
|
|
5725
|
-
tagNames: arraySchema(stringSchema("Tag name."), "Tags to remove."),
|
|
5726
|
-
target: objectSchema(
|
|
5727
|
-
{
|
|
5728
|
-
id: integerSchema("Quest id."),
|
|
5729
|
-
kind: enumSchema("Target kind.", ["quest"])
|
|
5730
|
-
},
|
|
5731
|
-
["id", "kind"]
|
|
5732
|
-
)
|
|
5541
|
+
id: integerSchema("Target entity id."),
|
|
5542
|
+
kind: enumSchema("Target kind.", ["quest", "repeatable_quest"])
|
|
5733
5543
|
},
|
|
5734
|
-
["
|
|
5544
|
+
["id", "kind"]
|
|
5735
5545
|
),
|
|
5736
|
-
|
|
5737
|
-
|
|
5738
|
-
|
|
5739
|
-
|
|
5740
|
-
|
|
5741
|
-
|
|
5742
|
-
"Tags to make the full replacement set."
|
|
5743
|
-
),
|
|
5744
|
-
target: objectSchema(
|
|
5745
|
-
{
|
|
5746
|
-
id: integerSchema("Target id."),
|
|
5747
|
-
kind: enumSchema("Target kind.", ["quest", "repeatable_quest"])
|
|
5748
|
-
},
|
|
5749
|
-
["id", "kind"]
|
|
5750
|
-
)
|
|
5751
|
-
},
|
|
5752
|
-
["action", "target", "tagNames"]
|
|
5753
|
-
)
|
|
5754
|
-
],
|
|
5755
|
-
description: "Mutate tags on quests or repeatable quests."
|
|
5756
|
-
},
|
|
5546
|
+
tagNames: arraySchema(stringSchema("Tag name."), "Tag names to add, remove, or replace."),
|
|
5547
|
+
now: integerSchema("Optional timestamp for the tag mutation.")
|
|
5548
|
+
},
|
|
5549
|
+
["action", "target", "tagNames"],
|
|
5550
|
+
"Mutate tags on quests or repeatable quests."
|
|
5551
|
+
),
|
|
5757
5552
|
handler: tagWorkToolHandler
|
|
5758
5553
|
});
|
|
5759
5554
|
|