@jskit-ai/agent-docs 0.1.42 → 0.1.44

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.
@@ -287,8 +287,6 @@ import { createRouter, createWebHistory } from "vue-router/auto";
287
287
  import { routes } from "vue-router/auto-routes";
288
288
  import "vuetify/styles";
289
289
  import { createVuetify } from "vuetify";
290
- import * as components from "vuetify/components";
291
- import * as directives from "vuetify/directives";
292
290
  import { aliases as mdiAliases, mdi } from "vuetify/iconsets/mdi-svg";
293
291
  import { createSurfaceRuntime } from "@jskit-ai/kernel/shared/surface/runtime";
294
292
  import {
@@ -326,8 +324,6 @@ const { router, fallbackRoute } = createShellRouter({
326
324
  });
327
325
 
328
326
  const vuetify = createVuetify({
329
- components,
330
- directives,
331
327
  theme: {
332
328
  defaultTheme: "light"
333
329
  },
@@ -422,7 +418,7 @@ In the starter app, with only `home`, this is almost boring. It mostly means:
422
418
 
423
419
  In the plain starter scaffold there are still no package-defined client stores to use yet. Pinia is already there so later packages can add them without changing the app bootstrap. In the next chapters, `shell-web` adds shell stores such as `useShellLayoutStore()`, and `auth-web` later adds `useAuthStore()`.
424
420
 
425
- `createVuetify(...)` is the ordinary UI plugin setup. There is nothing especially JSKIT-specific there; it just makes Vuetify components, directives, theme settings, and icon aliases available to the app before the router is mounted.
421
+ `createVuetify(...)` is the ordinary UI plugin setup. There is nothing especially JSKIT-specific there; it configures theme settings and icon aliases before the router is mounted. Vuetify components are auto-imported by `vite-plugin-vuetify`, so the scaffold does not register the full Vuetify component namespace in the client bundle.
426
422
 
427
423
  `bootInstalledClientModules` is the extension seam, meaning "this is the point where later-installed JSKIT packages get to join client startup". The confusing part is that it is not a normal file in your app. In `src/main.js` you import it from:
428
424
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jskit-ai/agent-docs",
3
- "version": "0.1.42",
3
+ "version": "0.1.44",
4
4
  "description": "Distributed JSKIT agent references, prompts, guides, and generated reference maps.",
5
5
  "type": "module",
6
6
  "files": [
@@ -238,7 +238,7 @@ Exports
238
238
 
239
239
  ### `src/client/composables/records/useView.js`
240
240
  Exports
241
- - `useView({ ownershipFilter = ROUTE_VISIBILITY_WORKSPACE, surfaceId = "", access = "auto", apiSuffix = "", queryKeyFactory = null, viewPermissions = [], readMethod = "GET", readEnabled = true, transport = null, placementSource = "users-web.view", fallbackLoadError = "Unable to load resource.", notFoundStatuses = [404], notFoundMessage = "Record not found.", model, mapLoadedToModel, requestQueryParams = null, recordIdParam = "recordId", routeParams = null, routeRecordId = null, apiUrlTemplate = "", listUrlTemplate = "", editUrlTemplate = "", includeRecordIdInQueryKey = false, realtime = undefined, adapter = null } = {})`
241
+ - `useView({ resource = null, ownershipFilter = ROUTE_VISIBILITY_WORKSPACE, surfaceId = "", access = "auto", apiSuffix = "", queryKeyFactory = null, viewPermissions = [], readMethod = "GET", readEnabled = true, transport = null, placementSource = "users-web.view", fallbackLoadError = "Unable to load resource.", notFoundStatuses = [404], notFoundMessage = "Record not found.", model, mapLoadedToModel, requestQueryParams = null, recordIdParam = "recordId", routeParams = null, routeRecordId = null, apiUrlTemplate = "", listUrlTemplate = "", editUrlTemplate = "", includeRecordIdInQueryKey = false, realtime = undefined, adapter = null } = {})`
242
242
 
243
243
  ### `src/client/composables/runtime/addEditUiRuntime.js`
244
244
  Exports
@@ -682,6 +682,10 @@ Local functions
682
682
  - `resolveStepInputs({ inlineOptions = {}, io = {}, cwd, sessionId })`
683
683
  - `normalizeStepOptions(inlineOptions = {})`
684
684
  - `resolveListArchiveOption(options = {})`
685
+ - `runSessionStepCommand({ cwd, inlineOptions = {}, io = {}, sessionId })`
686
+ - `runNextSessionStep({ cwd, sessionId })`
687
+ - `runSkipSessionStep({ cwd, inlineOptions = {}, io = {}, sessionId })`
688
+ - `runDeslopSessionStep({ cwd, sessionId })`
685
689
 
686
690
  ### `src/server/commandHandlers/shared.js`
687
691
  Exports
@@ -814,6 +818,7 @@ Exports
814
818
  - `STEP_IDS`
815
819
  - `STEP_PRECONDITION_NAMES`
816
820
  - `abandonSession({ targetRoot = process.cwd(), sessionId } = {})`
821
+ - `advanceSessionStep({ targetRoot = process.cwd(), sessionId } = {})`
817
822
  - `adoptDependenciesInstalled({ targetRoot = process.cwd(), sessionId, message = "" } = {})`
818
823
  - `adoptCodexThreadId({ targetRoot = process.cwd(), sessionId, codexThreadId } = {})`
819
824
  - `buildSessionResponse`
@@ -822,8 +827,6 @@ Exports
822
827
  - `createSessionId`
823
828
  - `extractIssueTitle(value = "")`
824
829
  - `extractIssueText(value = "")`
825
- - `extractIssueDetails(value = "")`
826
- - `extractPlanText(value = "")`
827
830
  - `inspectSession({ targetRoot = process.cwd(), sessionId } = {})`
828
831
  - `inspectSessionDiff({ targetRoot = process.cwd(), sessionId } = {})`
829
832
  - `inspectSessionDetails({ targetRoot = process.cwd(), sessionId } = {})`
@@ -834,28 +837,16 @@ Exports
834
837
  - `rewindSession({ targetRoot = process.cwd(), sessionId, stepId } = {})`
835
838
  - `resolveSessionPaths`
836
839
  - `runSessionStep({ targetRoot = process.cwd(), sessionId, options = {} } = {})`
840
+ - `runSessionStepAction({ targetRoot = process.cwd(), sessionId, action, options = {} } = {})`
837
841
  Local functions
838
842
  - `invalidSessionIdError(sessionId = "")`
839
843
  - `invalidSessionIdResponse({ targetRoot, sessionId })`
840
844
  - `existingSessionContext({ targetRoot = process.cwd(), sessionId } = {})`
841
845
  - `withExistingSession(input, handler)`
842
846
  - `extractMarkedText(value = "", marker = "")`
843
- - `extractMarkedField(value = "", fieldName = "")`
844
- - `extractIssueCategory(value = "")`
845
- - `extractUiImpact(value = "")`
846
- - `extractAgentDecisions(value = "")`
847
- - `normalizeIssueCategory(value = "")`
848
- - `normalizeUiImpact(value = "")`
849
847
  - `writePromptArtifact(paths, fileName, prompt)`
850
- - `codexResultPath(paths, stepId)`
851
- - `codexResponseContractForStep(stepId)`
852
- - `requireCodexStepResult(paths, stepId, result, preconditions = [], contractOverride = null)`
853
848
  - `commandText(command, args = [])`
854
849
  - `cycleRootPath(paths, cycle)`
855
- - `cyclePlanPath(paths, cycle)`
856
- - `cyclePlanPromptFileName(cycle)`
857
- - `cyclePlanExecutionPromptFileName(cycle)`
858
- - `readCurrentPlan(paths)`
859
850
  - `commandOutputSummary(output = "")`
860
851
  - `appendCommandLog(paths, { args = [], command, cwd = "", kind = "command", result } = {})`
861
852
  - `runLoggedCommand(paths, kind, command, args = [], options = {})`
@@ -864,37 +855,33 @@ Local functions
864
855
  - `packageScriptCommandForWorktree(worktree, scriptName, { preferredPackageManager = "" } = {})`
865
856
  - `sessionPackageScriptEnv(paths, scriptName)`
866
857
  - `packageScriptRepairCommand(paths, command, args)`
867
- - `packageScriptReceiptName(scriptName)`
868
- - `writeSessionHookReceipt(paths, scriptName, message)`
858
+ - `packageScriptRecordName(scriptName)`
859
+ - `writeSessionHookRecord(paths, scriptName, message)`
869
860
  - `runOptionalSessionPackageScript(paths, { failureCode, failureMessage, kind, preferredPackageManager = "", preconditions = [], scriptName, timeout = 1000 * 60 * 10 } = {})`
870
861
  - `runSessionFinalizationGuard(paths, preconditions = [])`
871
862
  - `runSessionProvisioningHook(paths, { preferredPackageManager = "", preconditions = [] } = {})`
872
- - `readIssueMetadata(paths)`
873
- - `writeIssueMetadata(paths, metadata = {})`
874
863
  - `readGithubComments(paths)`
875
864
  - `writeGithubComments(paths, comments = {})`
876
865
  - `commentOnIssueOnce(paths, { bodyFile, issueUrl, purpose })`
877
- - `appendAgentDecisions(paths, decisions = "")`
878
- - `appendAgentDecisionsInput(paths, options = {})`
879
- - `recordIssueInAgentDecisions(paths, issueUrl = "")`
880
866
  - `issueMetadataFromUrl(issueUrl = "")`
881
- - `nextCycleNumber(cycle = "001")`
867
+ - `writeIssueMetadataFiles(paths, { issueTitle = "", issueUrl = "" } = {})`
882
868
  - `normalizeArchiveFilter(archive = "active")`
883
869
  - `emptySessionDetails(response)`
884
870
  - `removeEmptyStaleWorktreeDirectory(paths)`
885
871
  - `createWorktree(paths, _options = {}, context = {})`
872
+ - `recordDependencyInstallResult(paths, { message = "Installed Node dependencies in the session worktree.", preconditions = [] } = {})`
886
873
  - `parsePackageManager(value = "")`
887
874
  - `hasWorktreeFile(worktree, fileName)`
888
875
  - `dependencyInstallCommandForWorktree(worktree)`
889
876
  - `installDependencies(paths, _options = {}, context = {})`
890
- - `renderIssuePrompt(paths, options = {})`
891
- - `draftIssue(paths, options = {})`
877
+ - `issueDefinitionPrompt(userInput, context)`
878
+ - `renderIssuePrompt(paths, options = {}, context = {})`
892
879
  - `titleFromIssue(issueText)`
893
880
  - `createIssue(paths, _options = {}, context = {})`
894
- - `renderIssueDetailsPrompt(paths, _options = {}, context = {})`
895
- - `saveIssueDetails(paths, options = {}, context = {})`
896
- - `makePlan(paths, options = {}, context = {})`
897
- - `renderPlanExecutionPrompt(paths, options = {}, context = {})`
881
+ - `submitIssue(paths, _options = {}, context = {})`
882
+ - `renderIssueFilePrompt(paths, context = {})`
883
+ - `makePlan(paths, _options = {}, context = {})`
884
+ - `renderPlanExecutionPrompt(paths, _options = {}, context = {})`
898
885
  - `worktreeStatus(worktree)`
899
886
  - `untrackedFiles(worktree)`
900
887
  - `untrackedFileDiff(worktree, filePath)`
@@ -903,16 +890,16 @@ Local functions
903
890
  - `removeSessionRootFile(paths, fileName)`
904
891
  - `removePromptArtifact(paths, fileName)`
905
892
  - `removeGlobalCodexResult(paths, stepId)`
893
+ - `removeCycleCodexResults(paths, stepId)`
894
+ - `removeCodexResult(paths, stepId)`
906
895
  - `removeGithubCommentPurpose(paths, purpose)`
907
- - `removeIssueDetailsMetadata(paths)`
908
896
  - `removeCycleDirectories(paths)`
909
- - `removeCyclePromptArtifacts(paths)`
910
- - `cancelAllCycleState(paths)`
911
- - `targetRequiresCycleReset(stepId)`
897
+ - `removePlanArtifacts(paths)`
898
+ - `removePlanExecutionArtifacts(paths)`
912
899
  - `targetIsAllowedRewindStep(stepId)`
913
900
  - `deletedStepIdsForRewindTarget(stepId)`
914
- - `removeReceiptsForDeletedSteps(paths, deletedStepIds)`
915
- - `cancelDeletedStepArtifacts(paths, deletedStepIds, { cycleReset = false } = {})`
901
+ - `removeStepRecordsForDeletedSteps(paths, deletedStepIds)`
902
+ - `cancelDeletedStepArtifacts(paths, deletedStepIds)`
916
903
  - `commitWorktree(paths, { message, allowNoChanges = false } = {})`
917
904
  - `uniqueChangedFileList(entries = [])`
918
905
  - `changedFilesInWorktree(paths)`
@@ -932,23 +919,34 @@ Local functions
932
919
  - `writeReviewPassJson(paths, pass, fileName, payload)`
933
920
  - `currentHead(paths)`
934
921
  - `renderReviewPrompt(paths)`
935
- - `acceptReviewChanges(paths, options = {})`
936
- - `runAutomatedChecks(paths, { stepId, label }, options = {}, context = {})`
922
+ - `renderResolveDeslopPrompt(paths, context = {})`
923
+ - `acceptReviewChanges(paths, options = {}, context = {})`
924
+ - `runAutomatedChecks(paths, { stepId }, _options = {}, context = {})`
937
925
  - `writeUiCheckJson(paths, fileName, payload)`
938
- - `runDeepUiCheck(paths, { stepId, label, phase }, options = {}, context = {})`
926
+ - `runDeepUiCheck(paths, { stepId, phase }, _options = {}, context = {})`
939
927
  - `userCheck(paths, options = {})`
940
928
  - `readAcceptedChangesCommit(paths)`
941
929
  - `commitAcceptedChanges(paths, _options = {}, context = {})`
942
- - `updateBlueprint(paths, options = {}, context = {})`
930
+ - `updateBlueprint(paths, _options = {}, context = {})`
943
931
  - `readPackageJson(root)`
944
932
  - `doctorCommandForWorktree(worktree)`
945
933
  - `commitLinesSinceBase(paths)`
946
934
  - `readCheckSummaries(paths)`
947
935
  - `readUiCheckSummaries(paths)`
948
936
  - `readReviewPassSummaries(paths)`
949
- - `createFinalReport(paths, _options = {}, context = {})`
937
+ - `renderPullRequestFilePrompt(paths, context = {})`
938
+ - `createPullRequestFile(paths, _options = {}, context = {})`
950
939
  - `issueNumberFromUrl(issueUrl)`
951
940
  - `parseJsonObject(value)`
941
+ - `booleanOption(options = {}, ...names)`
942
+ - `skipStepRequested(options = {})`
943
+ - `skipStepReason(options = {}, stepId = "")`
944
+ - `writeJsonFile(filePath, payload)`
945
+ - `writeTextIfMissing(filePath, value)`
946
+ - `writeSkippedIssueDraft(paths, reason)`
947
+ - `writeSkippedReviewPass(paths, reason)`
948
+ - `writeSkippedStepArtifacts(paths, stepId, reason)`
949
+ - `skipCurrentStep(paths, stepId, options = {})`
952
950
  - `readPrState(paths, prUrl)`
953
951
  - `readCurrentBranchPrState(paths)`
954
952
  - `prStateIsMerged(prState)`
@@ -963,12 +961,14 @@ Local functions
963
961
  - `updateLocalBaseBranch(paths, baseBranch = "")`
964
962
  - `syncMainCheckout(paths, options = {}, context = {})`
965
963
  - `updateHelperMapBeforePr(paths)`
966
- - `createPr(paths)`
967
- - `closePrWithoutMerge(paths, prUrl, options = {})`
964
+ - `createPr(paths, _options = {}, context = {})`
968
965
  - `preparePrMerge(paths, options = {}, context = {})`
969
966
  - `finalizePr(paths, options = {}, context = {})`
970
967
  - `finishSession(paths)`
971
968
  - `runNamedPreconditions(paths, names = [])`
969
+ - `sessionStepError(paths, { code, message, repairCommand = "" } = {})`
970
+ - `createIssueFileAction(paths, options = {}, context = {})`
971
+ - `createGithubIssueAction(paths, options = {}, context = {})`
972
972
 
973
973
  ### `src/server/sessionRuntime/appReadiness.js`
974
974
  Exports
@@ -983,6 +983,7 @@ Exports
983
983
  - `SESSION_ID_PATTERN`
984
984
  - `SESSION_STATUS`
985
985
  - `SESSION_WORKFLOW_VERSION`
986
+ - `DEPENDENCIES_INSTALL_RESULT_FILE`
986
987
  - `REVIEW_PASS_LIMIT`
987
988
  - `CYCLE_STEP_IDS`
988
989
  - `STEP_DEFINITION_BY_ID`
@@ -990,19 +991,21 @@ Exports
990
991
  - `STEP_IDS`
991
992
  - `STEP_LABEL_BY_ID`
992
993
  - `STEP_PRECONDITION_NAMES`
993
- - `ISSUE_DETAILS_CODEX_HANDOFF`
994
+ - `ISSUE_DEFINITION_CODEX_HANDOFF`
995
+ - `ISSUE_FILE_CODEX_HANDOFF`
996
+ - `PLAN_CODEX_HANDOFF`
994
997
  - `PLAN_EXECUTION_CODEX_HANDOFF`
995
998
  - `REVIEW_EXECUTION_CODEX_HANDOFF`
999
+ - `RESOLVE_DESLOP_CODEX_HANDOFF`
996
1000
  - `DEEP_UI_CHECK_CODEX_HANDOFF`
997
1001
  - `AUTOMATED_CHECK_REPAIR_CODEX_HANDOFF`
998
1002
  - `BLUEPRINT_CODEX_HANDOFF`
1003
+ - `PR_FILE_CODEX_HANDOFF`
999
1004
  - `PR_MERGE_PREP_CODEX_HANDOFF`
1000
1005
  - `JSKIT_CLI_SHELL_COMMAND`
1001
- - `JSKIT_CLI_SHELL_RULE`
1002
1006
  - `SESSION_STATE_RELATIVE_PATH`
1003
1007
  Local functions
1004
- - `fieldResponseContract(outputDefinitions)`
1005
- - `codexHandoff(outputDefinition, { autoInject = false, promptActionLabel = "", promptIntroText = "", promptWaitingText = "", responseContract = undefined } = {})`
1008
+ - `codexHandoff({ promptActionLabel = "", promptIntroText = "", promptWaitingText = "", sendPrompt = false } = {})`
1006
1009
  - `stepAutomationFor({ codex = undefined, id, kind, requiresExplicitRun = false })`
1007
1010
  - `defineStep({ buttonLabel, codex = undefined, description, id, input = INPUT_NONE, kind = "automatic", label, nextCommandTemplate = DEFAULT_NEXT_COMMAND_TEMPLATE, preconditions = [], requiresExplicitRun = false, submitOptions = {}, automation = undefined, utilityActions = [], displayGroupId = "", displayGroupLabel = "" })`
1008
1011
 
@@ -1015,7 +1018,7 @@ Exports
1015
1018
  - `runCommand(command, args = [], { cwd, env = {}, timeout = 30000 } = {})`
1016
1019
  - `runGit(targetRoot, args = [], options = {})`
1017
1020
  - `runGitInWorktree(worktree, args = [], options = {})`
1018
- - `timestampForReceipt(now = new Date())`
1021
+ - `timestampForStepRecord(now = new Date())`
1019
1022
  - `writeTextFile(filePath, value)`
1020
1023
 
1021
1024
  ### `src/server/sessionRuntime/paths.js`
@@ -1037,21 +1040,19 @@ Exports
1037
1040
  - `assertAcceptedChangesCommitted(paths)`
1038
1041
  - `assertActiveCycleExists(paths)`
1039
1042
  - `assertActiveCycleUserCheckPassed(paths)`
1043
+ - `assertUserCheckPassed(paths)`
1040
1044
  - `assertBlueprintUpdateSatisfied(paths)`
1041
1045
  - `assertDeepUiCheckSatisfied(paths)`
1042
1046
  - `assertDependenciesInstalled(paths)`
1043
- - `assertFinalReportExists(paths)`
1047
+ - `assertPullRequestFileExists(paths)`
1044
1048
  - `assertGhAuth(targetRoot)`
1045
1049
  - `assertGitCurrentBranch(targetRoot)`
1046
1050
  - `assertGitRepository(targetRoot)`
1047
1051
  - `assertGithubOrigin(targetRoot)`
1048
- - `assertIssueMetadataExists(paths)`
1049
1052
  - `assertIssueTextExists(paths)`
1050
1053
  - `assertIssueUrlExists(paths)`
1051
1054
  - `assertAutomatedChecksPassed(paths)`
1052
- - `assertIssueDetailsExists(paths)`
1053
1055
  - `assertMainCheckoutSyncSatisfied(paths)`
1054
- - `assertPlanTextExists(paths)`
1055
1056
  - `assertPrUrlExists(paths)`
1056
1057
  - `assertReadyJskitApp(paths)`
1057
1058
  - `assertSessionExists(paths)`
@@ -1063,14 +1064,13 @@ Local functions
1063
1064
  - `jskitCommand(args = "")`
1064
1065
  - `resolveGitCommonDirectory(targetRoot)`
1065
1066
  - `pathExists(filePath)`
1066
- - `assertActiveCycleStepReceipt(paths, { code, id, message, stepId })`
1067
+ - `assertActiveCycleStepRecord(paths, { code, id, message, stepId })`
1067
1068
 
1068
1069
  ### `src/server/sessionRuntime/promptRenderer.js`
1069
1070
  Exports
1070
1071
  - `readPromptTemplate(targetRoot, name)`
1071
1072
  - `renderPrompt(paths, templateName, values = {})`
1072
1073
  - `renderTemplate(source, values = {})`
1073
- - `withShellCommandRule(template)`
1074
1074
 
1075
1075
  ### `src/server/sessionRuntime/responses.js`
1076
1076
  Exports
@@ -1084,16 +1084,16 @@ Exports
1084
1084
  - `markStatus(paths, status)`
1085
1085
  - `normalizeReviewPassNumber(value = "")`
1086
1086
  - `readActiveCycle(paths)`
1087
- - `readReceiptSteps(paths)`
1087
+ - `readStepRecords(paths)`
1088
1088
  - `readReviewPasses(paths)`
1089
1089
  - `readSessionArtifacts(paths)`
1090
1090
  - `reviewPassDirectoryName(pass = DEFAULT_REVIEW_PASS)`
1091
1091
  - `reviewPassRoot(paths, pass)`
1092
- - `writeActiveCycle(paths, cycle)`
1093
- - `writeCycleReceipt(paths, receiptName, message, { cycle = "" } = {})`
1094
- - `writeReceipt(paths, stepId, message)`
1092
+ - `writeCycleStepRecord(paths, recordName, message, { cycle = "" } = {})`
1093
+ - `writeStepRecord(paths, stepId, message)`
1095
1094
  Local functions
1096
1095
  - `createWarning({ code, message, repairCommand = "" })`
1096
+ - `issueNumberFromUrl(issueUrl = "")`
1097
1097
  - `normalizeStepId(stepId)`
1098
1098
  - `stepIndex(stepId)`
1099
1099
  - `normalizeKnownStepIds(stepIds = [])`
@@ -1104,9 +1104,6 @@ Local functions
1104
1104
  - `readWorkflowVersion(paths)`
1105
1105
  - `cycleStepsRoot(paths, cycle)`
1106
1106
  - `cycleRoot(paths, cycle)`
1107
- - `cyclePlanPath(paths, cycle)`
1108
- - `cyclePlanPromptFileName(cycle)`
1109
- - `cyclePlanExecutionPromptFileName(cycle)`
1110
1107
  - `parseJsonFileIfExists(filePath)`
1111
1108
  - `readReviewPassNumbers(paths)`
1112
1109
  - `readReviewPassInfo(paths, pass)`
@@ -1114,7 +1111,6 @@ Local functions
1114
1111
  - `latestReviewPassIsPrompted(artifacts = {})`
1115
1112
  - `readPromptFromAbsolutePath(filePath = "")`
1116
1113
  - `readReviewPromptForStep(paths, artifacts = {})`
1117
- - `promptArtifactForStep(paths, stepId)`
1118
1114
  - `readPromptForStep(paths, stepId, artifacts = {})`
1119
1115
  - `readStepFileNames(stepsRoot)`
1120
1116
  - `readCompletedSteps(paths)`
@@ -1132,14 +1128,14 @@ Local functions
1132
1128
  - `stepRepeatabilityContract(stepId)`
1133
1129
  - `publicStepDefinition(step, index)`
1134
1130
  - `stepIsRetryableWhenBlocked(stepId)`
1135
- - `stepIsConditional(stepId)`
1136
- - `activeCycleInfoFromArtifacts(artifacts = {})`
1137
1131
  - `uiCheckPromptedForStep(artifacts = {}, stepId = "")`
1138
1132
  - `skipReasonForStep(stepId, artifacts = {})`
1139
1133
  - `buildCurrentStepAction(stepId, artifacts = {})`
1140
1134
  - `rawCodexHandoff(stepId, artifacts = {})`
1141
1135
  - `buildCodexHandoff(stepId, artifacts = {})`
1142
- - `buildNextCommand(sessionId, stepId)`
1136
+ - `stepCanExposeNextCommand(stepId, artifacts = {})`
1137
+ - `buildNextCommand(sessionId, stepId, artifacts = {})`
1138
+ - `buildStepActionCommands(sessionId, stepId, artifacts = {})`
1143
1139
 
1144
1140
  ### `src/server/sessionRuntime/worktrees.js`
1145
1141
  Exports