@jskit-ai/agent-docs 0.1.43 → 0.1.45
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.
|
@@ -28,20 +28,7 @@ npx @jskit-ai/create-app exampleapp --target . --force --tenancy-mode <mode>
|
|
|
28
28
|
npm install
|
|
29
29
|
```
|
|
30
30
|
|
|
31
|
-
After that promotion, the overwritten app `AGENTS.md` stays deliberately small. Use
|
|
32
|
-
|
|
33
|
-
Issue sessions are executable workflow state, not prose instructions. The important durable files are:
|
|
34
|
-
|
|
35
|
-
- `issue.md` and `issue_title` for the approved GitHub issue.
|
|
36
|
-
- `plan_details.md` for the confirmed implementation details gathered before planning.
|
|
37
|
-
- `plan.md` for the approved implementation plan.
|
|
38
|
-
- `agent_decisions.md` for concise decisions and why they were made.
|
|
39
|
-
- `.jskit/APP_BLUEPRINT.md` for durable app/product/architecture memory that grows across issues.
|
|
40
|
-
- `review_passes/`, `checks/`, `ui_checks/`, and `command_log.jsonl` for review, verification, UI check, and command receipts.
|
|
41
|
-
|
|
42
|
-
The Deep UI Check steps use the saved issue classification: server-only work can be skipped with a receipt, possible UI work can be skipped only with an explicit reason, and definite UI work must run. If the User Check fails, JSKIT starts a new cycle under `cycles/cycle_###/` and cycle-scoped receipts under `steps/cycle_###/`; do not delete older cycle receipts.
|
|
43
|
-
|
|
44
|
-
Studio and other tools should read `jskit session <session_id> --json` rather than scraping those files directly. Manual agents should follow the current `jskit session <session_id> step` output and avoid recreating the old workboard workflow.
|
|
31
|
+
After that promotion, the overwritten app `AGENTS.md` stays deliberately small. Use it with the distributed JSKIT agent docs when planning or implementing app changes. The durable app memory lives in `.jskit/APP_BLUEPRINT.md` and should describe product and architecture decisions, not become an implementation task list.
|
|
45
32
|
|
|
46
33
|
After creating the real app scaffolding (the base shell, not the seed wrapper), you will need to run `npm install` to install dependencies.
|
|
47
34
|
|
package/package.json
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jskit-ai/agent-docs",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.45",
|
|
4
4
|
"description": "Distributed JSKIT agent references, prompts, guides, and generated reference maps.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"files": [
|
|
7
|
-
"DISTR_AGENT.md",
|
|
8
7
|
"guide",
|
|
9
8
|
"patterns",
|
|
10
9
|
"reference",
|
|
@@ -23,7 +22,6 @@
|
|
|
23
22
|
"keywords": [
|
|
24
23
|
"jskit",
|
|
25
24
|
"agent",
|
|
26
|
-
"docs"
|
|
27
|
-
"session"
|
|
25
|
+
"docs"
|
|
28
26
|
]
|
|
29
27
|
}
|
|
@@ -1532,5 +1532,6 @@ Exports
|
|
|
1532
1532
|
- `loadInstalledPackageDescriptor({ appRoot, packageId, installedPackageState, required = false })`
|
|
1533
1533
|
- `resolveDescriptorPathForInstalledPackage({ appRoot, packageId, installedPackageState, required = false })`
|
|
1534
1534
|
Local functions
|
|
1535
|
+
- `resolveNodeModulesDescriptorCandidatePaths({ appRoot, packageId })`
|
|
1535
1536
|
- `resolveDescriptorCandidatePaths({ appRoot, packageId, installedPackageState })`
|
|
1536
1537
|
- `normalizeDescriptorPayload(descriptorModule)`
|
|
@@ -25,6 +25,7 @@ Exports
|
|
|
25
25
|
### `src/server/appBlueprint.js`
|
|
26
26
|
Exports
|
|
27
27
|
- `APP_BLUEPRINT_RELATIVE_PATH`
|
|
28
|
+
- `APP_BLUEPRINT_PROMPT_DIRECTORY`
|
|
28
29
|
- `APP_PROMPT_OVERRIDE_RELATIVE_ROOT`
|
|
29
30
|
- `extractAppBlueprintText(value = "")`
|
|
30
31
|
- `readAppBlueprint({ targetRoot = process.cwd() } = {})`
|
|
@@ -33,6 +34,11 @@ Exports
|
|
|
33
34
|
- `resolveAppBlueprintPaths(targetRoot = process.cwd())`
|
|
34
35
|
- `writeAppBlueprint({ targetRoot = process.cwd(), appBlueprint = "" } = {})`
|
|
35
36
|
Local functions
|
|
37
|
+
- `normalizeText(value)`
|
|
38
|
+
- `fileExists(filePath)`
|
|
39
|
+
- `readTextIfExists(filePath)`
|
|
40
|
+
- `writeTextFile(filePath, value)`
|
|
41
|
+
- `renderTemplate(source, values = {})`
|
|
36
42
|
- `readAppPromptTemplate(paths, templateName)`
|
|
37
43
|
|
|
38
44
|
### `src/server/cliEntrypoint.js`
|
|
@@ -670,23 +676,6 @@ Local functions
|
|
|
670
676
|
Exports
|
|
671
677
|
- `runPackageUpdateCommand(ctx = {}, { positional, options, cwd, io }, { runCommandAdd })`
|
|
672
678
|
|
|
673
|
-
### `src/server/commandHandlers/session.js`
|
|
674
|
-
Exports
|
|
675
|
-
- `createSessionCommands()`
|
|
676
|
-
Local functions
|
|
677
|
-
- `writeJson(stdout, payload)`
|
|
678
|
-
- `writeSessionText(stdout, payload)`
|
|
679
|
-
- `readStream(stream)`
|
|
680
|
-
- `resolveInputFilePath(cwd, filePath)`
|
|
681
|
-
- `resolveTextInput({ codePrefix, fileOption, inlineOptions = {}, io = {}, repairCommand, cwd, stdinOption, textOption, sessionId })`
|
|
682
|
-
- `resolveStepInputs({ inlineOptions = {}, io = {}, cwd, sessionId })`
|
|
683
|
-
- `normalizeStepOptions(inlineOptions = {})`
|
|
684
|
-
- `resolveListArchiveOption(options = {})`
|
|
685
|
-
- `runSessionStepCommand({ cwd, inlineOptions = {}, io = {}, sessionId })`
|
|
686
|
-
- `runNextSessionStep({ cwd, sessionId })`
|
|
687
|
-
- `runSkipSessionStep({ cwd, inlineOptions = {}, io = {}, sessionId })`
|
|
688
|
-
- `runDeslopSessionStep({ cwd, sessionId })`
|
|
689
|
-
|
|
690
679
|
### `src/server/commandHandlers/shared.js`
|
|
691
680
|
Exports
|
|
692
681
|
- `createCommandHandlerShared(ctx = {})`
|
|
@@ -781,24 +770,34 @@ Local functions
|
|
|
781
770
|
Exports
|
|
782
771
|
- `HELPER_MAP_JSON_RELATIVE_PATH`
|
|
783
772
|
- `HELPER_MAP_MARKDOWN_RELATIVE_PATH`
|
|
784
|
-
- `buildHelperMap({ targetRoot })`
|
|
773
|
+
- `buildHelperMap({ targetRoot, previousMap = null })`
|
|
785
774
|
- `readHelperMap({ targetRoot })`
|
|
786
775
|
- `updateHelperMap({ targetRoot })`
|
|
787
776
|
Local functions
|
|
788
777
|
- `pathExists(filePath)`
|
|
789
778
|
- `readJsonFile(filePath)`
|
|
779
|
+
- `readFileHash(filePath)`
|
|
790
780
|
- `normalizePackageDependencies(packageJson = {})`
|
|
791
781
|
- `classifySymbol(name = "")`
|
|
792
782
|
- `createExportAnalysisProject()`
|
|
793
|
-
- `kindFromDeclaration(declaration, exportName = "")`
|
|
794
783
|
- `addSymbol(symbols, symbol)`
|
|
784
|
+
- `compilerNodeHasModifier(node, modifierKind)`
|
|
785
|
+
- `exportedDeclarationName(node)`
|
|
786
|
+
- `addExportedDeclarationSymbol(symbols, node, kind = "export")`
|
|
787
|
+
- `bindingNameTexts(bindingName, names = [])`
|
|
788
|
+
- `addVariableStatementExports(symbols, statement)`
|
|
789
|
+
- `addNamedExportSymbols(symbols, exportClause)`
|
|
795
790
|
- `extractExportedSymbols(sourceFile)`
|
|
796
791
|
- `extractVueScriptSource(source = "", filePath = "")`
|
|
797
792
|
- `addCodeFileToProject(project, file)`
|
|
798
793
|
- `walkCodeFiles(rootPath, relativeRoot = "")`
|
|
799
794
|
- `collectAppExports(targetRoot)`
|
|
800
795
|
- `flattenPackageExports(exportsField)`
|
|
801
|
-
- `
|
|
796
|
+
- `packageExportTargetRecords(packageRoot, exportTargets = [])`
|
|
797
|
+
- `packageExportFingerprint({ installedPackageJson = {}, packageName = "", targetRecords = [] } = {})`
|
|
798
|
+
- `cachedPackageExports(previousPackagesByName = new Map(), packageName = "", fingerprint = "")`
|
|
799
|
+
- `previousPackageMap(previousMap = null)`
|
|
800
|
+
- `collectJskitPackageExports(targetRoot, packageJson = {}, previousMap = null)`
|
|
802
801
|
- `renderExportList(symbols = [])`
|
|
803
802
|
- `renderHelperMapMarkdown(map)`
|
|
804
803
|
|
|
@@ -811,337 +810,6 @@ Exports
|
|
|
811
810
|
Exports
|
|
812
811
|
- `runCli`
|
|
813
812
|
|
|
814
|
-
### `src/server/sessionRuntime.js`
|
|
815
|
-
Exports
|
|
816
|
-
- `SESSION_STATUS`
|
|
817
|
-
- `STEP_DEFINITIONS`
|
|
818
|
-
- `STEP_IDS`
|
|
819
|
-
- `STEP_PRECONDITION_NAMES`
|
|
820
|
-
- `abandonSession({ targetRoot = process.cwd(), sessionId } = {})`
|
|
821
|
-
- `advanceSessionStep({ targetRoot = process.cwd(), sessionId } = {})`
|
|
822
|
-
- `adoptDependenciesInstalled({ targetRoot = process.cwd(), sessionId, message = "" } = {})`
|
|
823
|
-
- `adoptCodexThreadId({ targetRoot = process.cwd(), sessionId, codexThreadId } = {})`
|
|
824
|
-
- `buildSessionResponse`
|
|
825
|
-
- `buildSessionErrorResponse`
|
|
826
|
-
- `createSession({ targetRoot = process.cwd(), sessionId = "", now = new Date() } = {})`
|
|
827
|
-
- `createSessionId`
|
|
828
|
-
- `extractIssueTitle(value = "")`
|
|
829
|
-
- `extractIssueText(value = "")`
|
|
830
|
-
- `inspectSession({ targetRoot = process.cwd(), sessionId } = {})`
|
|
831
|
-
- `inspectSessionDiff({ targetRoot = process.cwd(), sessionId } = {})`
|
|
832
|
-
- `inspectSessionDetails({ targetRoot = process.cwd(), sessionId } = {})`
|
|
833
|
-
- `isValidSessionId`
|
|
834
|
-
- `listSessions({ targetRoot = process.cwd(), archive = "active" } = {})`
|
|
835
|
-
- `renderTemplate`
|
|
836
|
-
- `recordDependenciesInstalled(paths, { message = "Installed Node dependencies in the session worktree.", preconditions = [] } = {})`
|
|
837
|
-
- `rewindSession({ targetRoot = process.cwd(), sessionId, stepId } = {})`
|
|
838
|
-
- `resolveSessionPaths`
|
|
839
|
-
- `runSessionStep({ targetRoot = process.cwd(), sessionId, options = {} } = {})`
|
|
840
|
-
- `runSessionStepAction({ targetRoot = process.cwd(), sessionId, action, options = {} } = {})`
|
|
841
|
-
Local functions
|
|
842
|
-
- `invalidSessionIdError(sessionId = "")`
|
|
843
|
-
- `invalidSessionIdResponse({ targetRoot, sessionId })`
|
|
844
|
-
- `existingSessionContext({ targetRoot = process.cwd(), sessionId } = {})`
|
|
845
|
-
- `withExistingSession(input, handler)`
|
|
846
|
-
- `extractMarkedText(value = "", marker = "")`
|
|
847
|
-
- `writePromptArtifact(paths, fileName, prompt)`
|
|
848
|
-
- `commandText(command, args = [])`
|
|
849
|
-
- `cycleRootPath(paths, cycle)`
|
|
850
|
-
- `commandOutputSummary(output = "")`
|
|
851
|
-
- `appendCommandLog(paths, { args = [], command, cwd = "", kind = "command", result } = {})`
|
|
852
|
-
- `runLoggedCommand(paths, kind, command, args = [], options = {})`
|
|
853
|
-
- `readWorktreePackageJson(worktree)`
|
|
854
|
-
- `packageScriptRunArgs(packageManager, scriptName)`
|
|
855
|
-
- `packageScriptCommandForWorktree(worktree, scriptName, { preferredPackageManager = "" } = {})`
|
|
856
|
-
- `sessionPackageScriptEnv(paths, scriptName)`
|
|
857
|
-
- `packageScriptRepairCommand(paths, command, args)`
|
|
858
|
-
- `packageScriptRecordName(scriptName)`
|
|
859
|
-
- `writeSessionHookRecord(paths, scriptName, message)`
|
|
860
|
-
- `runOptionalSessionPackageScript(paths, { failureCode, failureMessage, kind, preferredPackageManager = "", preconditions = [], scriptName, timeout = 1000 * 60 * 10 } = {})`
|
|
861
|
-
- `runSessionFinalizationGuard(paths, preconditions = [])`
|
|
862
|
-
- `runSessionProvisioningHook(paths, { preferredPackageManager = "", preconditions = [] } = {})`
|
|
863
|
-
- `readGithubComments(paths)`
|
|
864
|
-
- `writeGithubComments(paths, comments = {})`
|
|
865
|
-
- `commentOnIssueOnce(paths, { bodyFile, issueUrl, purpose })`
|
|
866
|
-
- `issueMetadataFromUrl(issueUrl = "")`
|
|
867
|
-
- `writeIssueMetadataFiles(paths, { issueTitle = "", issueUrl = "" } = {})`
|
|
868
|
-
- `normalizeArchiveFilter(archive = "active")`
|
|
869
|
-
- `emptySessionDetails(response)`
|
|
870
|
-
- `removeEmptyStaleWorktreeDirectory(paths)`
|
|
871
|
-
- `createWorktree(paths, _options = {}, context = {})`
|
|
872
|
-
- `recordDependencyInstallResult(paths, { message = "Installed Node dependencies in the session worktree.", preconditions = [] } = {})`
|
|
873
|
-
- `parsePackageManager(value = "")`
|
|
874
|
-
- `hasWorktreeFile(worktree, fileName)`
|
|
875
|
-
- `dependencyInstallCommandForWorktree(worktree)`
|
|
876
|
-
- `installDependencies(paths, _options = {}, context = {})`
|
|
877
|
-
- `issueDefinitionPrompt(userInput, context)`
|
|
878
|
-
- `renderIssuePrompt(paths, options = {}, context = {})`
|
|
879
|
-
- `titleFromIssue(issueText)`
|
|
880
|
-
- `createIssue(paths, _options = {}, context = {})`
|
|
881
|
-
- `submitIssue(paths, _options = {}, context = {})`
|
|
882
|
-
- `renderIssueFilePrompt(paths, context = {})`
|
|
883
|
-
- `makePlan(paths, _options = {}, context = {})`
|
|
884
|
-
- `renderPlanExecutionPrompt(paths, _options = {}, context = {})`
|
|
885
|
-
- `worktreeStatus(worktree)`
|
|
886
|
-
- `untrackedFiles(worktree)`
|
|
887
|
-
- `untrackedFileDiff(worktree, filePath)`
|
|
888
|
-
- `untrackedFilesDiff(worktree)`
|
|
889
|
-
- `removeSessionPath(paths, ...parts)`
|
|
890
|
-
- `removeSessionRootFile(paths, fileName)`
|
|
891
|
-
- `removePromptArtifact(paths, fileName)`
|
|
892
|
-
- `removeGlobalCodexResult(paths, stepId)`
|
|
893
|
-
- `removeCycleCodexResults(paths, stepId)`
|
|
894
|
-
- `removeCodexResult(paths, stepId)`
|
|
895
|
-
- `removeGithubCommentPurpose(paths, purpose)`
|
|
896
|
-
- `removeCycleDirectories(paths)`
|
|
897
|
-
- `removePlanArtifacts(paths)`
|
|
898
|
-
- `removePlanExecutionArtifacts(paths)`
|
|
899
|
-
- `targetIsAllowedRewindStep(stepId)`
|
|
900
|
-
- `deletedStepIdsForRewindTarget(stepId)`
|
|
901
|
-
- `removeStepRecordsForDeletedSteps(paths, deletedStepIds)`
|
|
902
|
-
- `cancelDeletedStepArtifacts(paths, deletedStepIds)`
|
|
903
|
-
- `commitWorktree(paths, { message, allowNoChanges = false } = {})`
|
|
904
|
-
- `uniqueChangedFileList(entries = [])`
|
|
905
|
-
- `changedFilesInWorktree(paths)`
|
|
906
|
-
- `blueprintBaselinePath(paths)`
|
|
907
|
-
- `isBlueprintRelativePath(filePath = "")`
|
|
908
|
-
- `nonBlueprintChangedFiles(files = [])`
|
|
909
|
-
- `hashWorktreeFile(paths, filePath)`
|
|
910
|
-
- `buildDirtyFileSnapshot(paths, files = [])`
|
|
911
|
-
- `writeBlueprintBaseline(paths)`
|
|
912
|
-
- `readBlueprintBaseline(paths)`
|
|
913
|
-
- `unexpectedBlueprintStepChanges(paths, changedFiles = [])`
|
|
914
|
-
- `changedFilesSinceBase(paths)`
|
|
915
|
-
- `nextReviewPassNumber(pass = "")`
|
|
916
|
-
- `readCurrentReviewPass(paths)`
|
|
917
|
-
- `writeCurrentReviewPass(paths, pass)`
|
|
918
|
-
- `resolveReviewPassForPrompt(paths)`
|
|
919
|
-
- `writeReviewPassJson(paths, pass, fileName, payload)`
|
|
920
|
-
- `currentHead(paths)`
|
|
921
|
-
- `renderReviewPrompt(paths)`
|
|
922
|
-
- `renderResolveDeslopPrompt(paths, context = {})`
|
|
923
|
-
- `acceptReviewChanges(paths, options = {}, context = {})`
|
|
924
|
-
- `runAutomatedChecks(paths, { stepId }, _options = {}, context = {})`
|
|
925
|
-
- `writeUiCheckJson(paths, fileName, payload)`
|
|
926
|
-
- `runDeepUiCheck(paths, { stepId, phase }, _options = {}, context = {})`
|
|
927
|
-
- `userCheck(paths, options = {})`
|
|
928
|
-
- `readAcceptedChangesCommit(paths)`
|
|
929
|
-
- `commitAcceptedChanges(paths, _options = {}, context = {})`
|
|
930
|
-
- `updateBlueprint(paths, _options = {}, context = {})`
|
|
931
|
-
- `readPackageJson(root)`
|
|
932
|
-
- `doctorCommandForWorktree(worktree)`
|
|
933
|
-
- `commitLinesSinceBase(paths)`
|
|
934
|
-
- `readCheckSummaries(paths)`
|
|
935
|
-
- `readUiCheckSummaries(paths)`
|
|
936
|
-
- `readReviewPassSummaries(paths)`
|
|
937
|
-
- `renderPullRequestFilePrompt(paths, context = {})`
|
|
938
|
-
- `createPullRequestFile(paths, _options = {}, context = {})`
|
|
939
|
-
- `issueNumberFromUrl(issueUrl)`
|
|
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 = {})`
|
|
950
|
-
- `readPrState(paths, prUrl)`
|
|
951
|
-
- `readCurrentBranchPrState(paths)`
|
|
952
|
-
- `prStateIsMerged(prState)`
|
|
953
|
-
- `prStateIsClosed(prState)`
|
|
954
|
-
- `currentTargetBranch(targetRoot)`
|
|
955
|
-
- `assertTargetRootCleanForBaseUpdate(paths)`
|
|
956
|
-
- `removeSessionWorktree(paths)`
|
|
957
|
-
- `writePrOutcome(paths, outcome)`
|
|
958
|
-
- `mainCheckoutSyncPath(paths)`
|
|
959
|
-
- `writeMainCheckoutSync(paths, payload = {})`
|
|
960
|
-
- `assertTargetRootCanUpdateBase(paths, branch)`
|
|
961
|
-
- `updateLocalBaseBranch(paths, baseBranch = "")`
|
|
962
|
-
- `syncMainCheckout(paths, options = {}, context = {})`
|
|
963
|
-
- `updateHelperMapBeforePr(paths)`
|
|
964
|
-
- `createPr(paths, _options = {}, context = {})`
|
|
965
|
-
- `preparePrMerge(paths, options = {}, context = {})`
|
|
966
|
-
- `finalizePr(paths, options = {}, context = {})`
|
|
967
|
-
- `finishSession(paths)`
|
|
968
|
-
- `runNamedPreconditions(paths, names = [])`
|
|
969
|
-
- `sessionStepError(paths, { code, message, repairCommand = "" } = {})`
|
|
970
|
-
- `createIssueFileAction(paths, options = {}, context = {})`
|
|
971
|
-
- `createGithubIssueAction(paths, options = {}, context = {})`
|
|
972
|
-
|
|
973
|
-
### `src/server/sessionRuntime/appReadiness.js`
|
|
974
|
-
Exports
|
|
975
|
-
- `inspectReadyJskitAppRoot(rootPath)`
|
|
976
|
-
Local functions
|
|
977
|
-
- `pathExists(filePath)`
|
|
978
|
-
- `directoryExists(filePath)`
|
|
979
|
-
|
|
980
|
-
### `src/server/sessionRuntime/constants.js`
|
|
981
|
-
Exports
|
|
982
|
-
- `PROMPT_DIRECTORY`
|
|
983
|
-
- `SESSION_ID_PATTERN`
|
|
984
|
-
- `SESSION_STATUS`
|
|
985
|
-
- `SESSION_WORKFLOW_VERSION`
|
|
986
|
-
- `DEPENDENCIES_INSTALL_RESULT_FILE`
|
|
987
|
-
- `REVIEW_PASS_LIMIT`
|
|
988
|
-
- `CYCLE_STEP_IDS`
|
|
989
|
-
- `STEP_DEFINITION_BY_ID`
|
|
990
|
-
- `STEP_DEFINITIONS`
|
|
991
|
-
- `STEP_IDS`
|
|
992
|
-
- `STEP_LABEL_BY_ID`
|
|
993
|
-
- `STEP_PRECONDITION_NAMES`
|
|
994
|
-
- `ISSUE_DEFINITION_CODEX_HANDOFF`
|
|
995
|
-
- `ISSUE_FILE_CODEX_HANDOFF`
|
|
996
|
-
- `PLAN_CODEX_HANDOFF`
|
|
997
|
-
- `PLAN_EXECUTION_CODEX_HANDOFF`
|
|
998
|
-
- `REVIEW_EXECUTION_CODEX_HANDOFF`
|
|
999
|
-
- `RESOLVE_DESLOP_CODEX_HANDOFF`
|
|
1000
|
-
- `DEEP_UI_CHECK_CODEX_HANDOFF`
|
|
1001
|
-
- `AUTOMATED_CHECK_REPAIR_CODEX_HANDOFF`
|
|
1002
|
-
- `BLUEPRINT_CODEX_HANDOFF`
|
|
1003
|
-
- `PR_FILE_CODEX_HANDOFF`
|
|
1004
|
-
- `PR_MERGE_PREP_CODEX_HANDOFF`
|
|
1005
|
-
- `JSKIT_CLI_SHELL_COMMAND`
|
|
1006
|
-
- `SESSION_STATE_RELATIVE_PATH`
|
|
1007
|
-
Local functions
|
|
1008
|
-
- `codexHandoff({ promptActionLabel = "", promptIntroText = "", promptWaitingText = "", sendPrompt = false } = {})`
|
|
1009
|
-
- `stepAutomationFor({ codex = undefined, id, kind, requiresExplicitRun = false })`
|
|
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 = "" })`
|
|
1011
|
-
|
|
1012
|
-
### `src/server/sessionRuntime/io.js`
|
|
1013
|
-
Exports
|
|
1014
|
-
- `fileExists(filePath)`
|
|
1015
|
-
- `normalizeText(value)`
|
|
1016
|
-
- `readTextIfExists(filePath)`
|
|
1017
|
-
- `readTrimmedFile(filePath)`
|
|
1018
|
-
- `runCommand(command, args = [], { cwd, env = {}, timeout = 30000 } = {})`
|
|
1019
|
-
- `runGit(targetRoot, args = [], options = {})`
|
|
1020
|
-
- `runGitInWorktree(worktree, args = [], options = {})`
|
|
1021
|
-
- `timestampForStepRecord(now = new Date())`
|
|
1022
|
-
- `writeTextFile(filePath, value)`
|
|
1023
|
-
|
|
1024
|
-
### `src/server/sessionRuntime/paths.js`
|
|
1025
|
-
Exports
|
|
1026
|
-
- `archiveSession(paths, archive)`
|
|
1027
|
-
- `createAvailableSessionId(targetRoot, now = new Date())`
|
|
1028
|
-
- `createSessionId(now = new Date())`
|
|
1029
|
-
- `isValidSessionId(sessionId = "")`
|
|
1030
|
-
- `normalizeSessionId(sessionId = "")`
|
|
1031
|
-
- `resolveExistingSessionRoot(paths)`
|
|
1032
|
-
- `resolveSessionPaths({ targetRoot, sessionId = "" } = {})`
|
|
1033
|
-
- `pathsForExistingSession(paths)`
|
|
1034
|
-
Local functions
|
|
1035
|
-
- `formatDatePart(value)`
|
|
1036
|
-
|
|
1037
|
-
### `src/server/sessionRuntime/preconditions.js`
|
|
1038
|
-
Exports
|
|
1039
|
-
- `applyPreconditions(paths, checks = [])`
|
|
1040
|
-
- `assertAcceptedChangesCommitted(paths)`
|
|
1041
|
-
- `assertActiveCycleExists(paths)`
|
|
1042
|
-
- `assertActiveCycleUserCheckPassed(paths)`
|
|
1043
|
-
- `assertUserCheckPassed(paths)`
|
|
1044
|
-
- `assertBlueprintUpdateSatisfied(paths)`
|
|
1045
|
-
- `assertDeepUiCheckSatisfied(paths)`
|
|
1046
|
-
- `assertDependenciesInstalled(paths)`
|
|
1047
|
-
- `assertPullRequestFileExists(paths)`
|
|
1048
|
-
- `assertGhAuth(targetRoot)`
|
|
1049
|
-
- `assertGitCurrentBranch(targetRoot)`
|
|
1050
|
-
- `assertGitRepository(targetRoot)`
|
|
1051
|
-
- `assertGithubOrigin(targetRoot)`
|
|
1052
|
-
- `assertIssueTextExists(paths)`
|
|
1053
|
-
- `assertIssueUrlExists(paths)`
|
|
1054
|
-
- `assertAutomatedChecksPassed(paths)`
|
|
1055
|
-
- `assertMainCheckoutSyncSatisfied(paths)`
|
|
1056
|
-
- `assertPrUrlExists(paths)`
|
|
1057
|
-
- `assertReadyJskitApp(paths)`
|
|
1058
|
-
- `assertSessionExists(paths)`
|
|
1059
|
-
- `assertTargetRootWritable(targetRoot)`
|
|
1060
|
-
- `assertWorktreeExists(paths)`
|
|
1061
|
-
- `ensureStudioGitExclude(targetRoot)`
|
|
1062
|
-
- `hasWorktree`
|
|
1063
|
-
Local functions
|
|
1064
|
-
- `jskitCommand(args = "")`
|
|
1065
|
-
- `resolveGitCommonDirectory(targetRoot)`
|
|
1066
|
-
- `pathExists(filePath)`
|
|
1067
|
-
- `assertActiveCycleStepRecord(paths, { code, id, message, stepId })`
|
|
1068
|
-
|
|
1069
|
-
### `src/server/sessionRuntime/promptRenderer.js`
|
|
1070
|
-
Exports
|
|
1071
|
-
- `readPromptTemplate(targetRoot, name)`
|
|
1072
|
-
- `renderPrompt(paths, templateName, values = {})`
|
|
1073
|
-
- `renderTemplate(source, values = {})`
|
|
1074
|
-
|
|
1075
|
-
### `src/server/sessionRuntime/responses.js`
|
|
1076
|
-
Exports
|
|
1077
|
-
- `buildSessionErrorResponse({ targetRoot = process.cwd(), sessionId = "", code, message, repairCommand = "", status = SESSION_STATUS.BLOCKED, preconditions = [], errors = undefined } = {})`
|
|
1078
|
-
- `buildSessionResponse(paths, { codex = undefined, ok = true, errors = [], preconditions = [], prompt = undefined, status = undefined, warnings = [] } = {})`
|
|
1079
|
-
- `buildStepDefinitions()`
|
|
1080
|
-
- `createError({ code, message, repairCommand = "" })`
|
|
1081
|
-
- `createPrecondition({ id, ok, message })`
|
|
1082
|
-
- `failSession(paths, { code, message, repairCommand = "", preconditions = [], status = SESSION_STATUS.BLOCKED, prompt = "", codex = undefined })`
|
|
1083
|
-
- `markCurrentStep(paths, stepId)`
|
|
1084
|
-
- `markStatus(paths, status)`
|
|
1085
|
-
- `normalizeReviewPassNumber(value = "")`
|
|
1086
|
-
- `readActiveCycle(paths)`
|
|
1087
|
-
- `readStepRecords(paths)`
|
|
1088
|
-
- `readReviewPasses(paths)`
|
|
1089
|
-
- `readSessionArtifacts(paths)`
|
|
1090
|
-
- `reviewPassDirectoryName(pass = DEFAULT_REVIEW_PASS)`
|
|
1091
|
-
- `reviewPassRoot(paths, pass)`
|
|
1092
|
-
- `writeCycleStepRecord(paths, recordName, message, { cycle = "" } = {})`
|
|
1093
|
-
- `writeStepRecord(paths, stepId, message)`
|
|
1094
|
-
Local functions
|
|
1095
|
-
- `createWarning({ code, message, repairCommand = "" })`
|
|
1096
|
-
- `issueNumberFromUrl(issueUrl = "")`
|
|
1097
|
-
- `normalizeStepId(stepId)`
|
|
1098
|
-
- `stepIndex(stepId)`
|
|
1099
|
-
- `normalizeKnownStepIds(stepIds = [])`
|
|
1100
|
-
- `stepCanExposeStoredPrompt(stepId)`
|
|
1101
|
-
- `normalizeCycleNumber(value = "")`
|
|
1102
|
-
- `cycleDirectoryName(cycle = DEFAULT_ACTIVE_CYCLE)`
|
|
1103
|
-
- `isCycleStepId(stepId = "")`
|
|
1104
|
-
- `readWorkflowVersion(paths)`
|
|
1105
|
-
- `cycleStepsRoot(paths, cycle)`
|
|
1106
|
-
- `cycleRoot(paths, cycle)`
|
|
1107
|
-
- `parseJsonFileIfExists(filePath)`
|
|
1108
|
-
- `readReviewPassNumbers(paths)`
|
|
1109
|
-
- `readReviewPassInfo(paths, pass)`
|
|
1110
|
-
- `latestReviewPass(artifacts = {})`
|
|
1111
|
-
- `latestReviewPassIsPrompted(artifacts = {})`
|
|
1112
|
-
- `readPromptFromAbsolutePath(filePath = "")`
|
|
1113
|
-
- `readReviewPromptForStep(paths, artifacts = {})`
|
|
1114
|
-
- `readPromptForStep(paths, stepId, artifacts = {})`
|
|
1115
|
-
- `readStepFileNames(stepsRoot)`
|
|
1116
|
-
- `readCompletedSteps(paths)`
|
|
1117
|
-
- `applyReviewPassCompletionOverlay(paths, completedSteps = [])`
|
|
1118
|
-
- `readCycleInfo(paths, cycle)`
|
|
1119
|
-
- `readCycles(paths, activeCycle)`
|
|
1120
|
-
- `readStructuredChecks(paths)`
|
|
1121
|
-
- `readStructuredUiChecks(paths)`
|
|
1122
|
-
- `readWorktreeStatus(paths, worktreeReady)`
|
|
1123
|
-
- `resolveNextStep(completedSteps = [])`
|
|
1124
|
-
- `cloneContractValue(value)`
|
|
1125
|
-
- `normalizeWarning(warning)`
|
|
1126
|
-
- `mergeWarnings(...warningLists)`
|
|
1127
|
-
- `publicCodexContract(codex = null)`
|
|
1128
|
-
- `stepRepeatabilityContract(stepId)`
|
|
1129
|
-
- `publicStepDefinition(step, index)`
|
|
1130
|
-
- `stepIsRetryableWhenBlocked(stepId)`
|
|
1131
|
-
- `uiCheckPromptedForStep(artifacts = {}, stepId = "")`
|
|
1132
|
-
- `skipReasonForStep(stepId, artifacts = {})`
|
|
1133
|
-
- `buildCurrentStepAction(stepId, artifacts = {})`
|
|
1134
|
-
- `rawCodexHandoff(stepId, artifacts = {})`
|
|
1135
|
-
- `buildCodexHandoff(stepId, artifacts = {})`
|
|
1136
|
-
- `stepCanExposeNextCommand(stepId, artifacts = {})`
|
|
1137
|
-
- `buildNextCommand(sessionId, stepId, artifacts = {})`
|
|
1138
|
-
- `buildStepActionCommands(sessionId, stepId, artifacts = {})`
|
|
1139
|
-
|
|
1140
|
-
### `src/server/sessionRuntime/worktrees.js`
|
|
1141
|
-
Exports
|
|
1142
|
-
- `hasWorktree(paths = {})`
|
|
1143
|
-
- `parseGitWorktreeList(output = "")`
|
|
1144
|
-
|
|
1145
813
|
### `src/server/shared/cliError.js`
|
|
1146
814
|
Exports
|
|
1147
815
|
- `createCliError(message, { showUsage = false, exitCode = 1, renderUsage = null } = {})`
|
|
@@ -15,7 +15,7 @@ Preferred execution mode:
|
|
|
15
15
|
|
|
16
16
|
## Read First
|
|
17
17
|
|
|
18
|
-
Use the current
|
|
18
|
+
Use the user request, current diff, and app-local instructions as the source of truth for the review scope.
|
|
19
19
|
|
|
20
20
|
Read these on demand:
|
|
21
21
|
|
|
@@ -24,11 +24,6 @@ Read these on demand:
|
|
|
24
24
|
- `../../guide/agent/index.md`
|
|
25
25
|
- `../../site/guide/index.md` when compressed guidance is ambiguous
|
|
26
26
|
|
|
27
|
-
Inspect app-local session files when they exist:
|
|
28
|
-
|
|
29
|
-
- `.jskit/sessions/active/<session_id>/prompt.md`
|
|
30
|
-
- `.jskit/sessions/active/<session_id>/issue.md`
|
|
31
|
-
|
|
32
27
|
## Review target
|
|
33
28
|
|
|
34
29
|
Determine whether the target is:
|
|
@@ -36,8 +31,6 @@ Determine whether the target is:
|
|
|
36
31
|
- the current chunk
|
|
37
32
|
- or the whole changeset
|
|
38
33
|
|
|
39
|
-
Use the active `jskit session` state to determine the current pass when available.
|
|
40
|
-
|
|
41
34
|
## Required passes
|
|
42
35
|
|
|
43
36
|
1. Deslop review
|
package/templates/app/AGENTS.md
CHANGED
|
@@ -1,13 +1,10 @@
|
|
|
1
1
|
# App Agent Instructions
|
|
2
2
|
|
|
3
|
-
Use JSKIT
|
|
3
|
+
Use the JSKIT agent docs and the local app scaffold as the source of truth for app work.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
Recommended references:
|
|
6
6
|
|
|
7
|
-
- `jskit
|
|
8
|
-
- `jskit
|
|
9
|
-
- `jskit session <session_id>`
|
|
10
|
-
- `jskit session <session_id> step`
|
|
11
|
-
- `jskit session <session_id> step --json` for tools and UIs
|
|
7
|
+
- `node_modules/@jskit-ai/agent-docs/guide/agent/index.md`
|
|
8
|
+
- `node_modules/@jskit-ai/agent-docs/patterns/INDEX.md`
|
|
12
9
|
|
|
13
|
-
|
|
10
|
+
Keep changes scoped to the user request and verify runtime behavior with tests or explicit checks.
|