agentplugged 1.0.6 → 1.2.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/README.md +3 -4
- package/dist/agent-commands.js +6446 -499
- package/dist/forge-follow.js +3 -3
- package/dist/{webauthn.js → hash.js} +3463 -564
- package/dist/helpers.js +723 -294
- package/dist/launcher.js +1 -1
- package/dist/main.js +336 -40
- package/dist/method/models.yaml +0 -11
- package/dist/method/skills/workshop/references/create.md +1 -1
- package/dist/product-root.js +88 -116
- package/dist/rolldown-runtime.js +1 -1
- package/dist/webauthn-verify.js +112 -1
- package/dist/webauthn-verify2.js +1 -107
- package/package.json +10 -10
package/dist/method/models.yaml
CHANGED
|
@@ -51,17 +51,6 @@ antigravity:
|
|
|
51
51
|
multimodal:
|
|
52
52
|
model: pro
|
|
53
53
|
|
|
54
|
-
# Gemini CLI, the predecessor of Antigravity CLI, for older installations.
|
|
55
|
-
gemini-cli:
|
|
56
|
-
reasoning:
|
|
57
|
-
model: inherit
|
|
58
|
-
code:
|
|
59
|
-
model: inherit
|
|
60
|
-
fast:
|
|
61
|
-
model: inherit
|
|
62
|
-
multimodal:
|
|
63
|
-
model: inherit
|
|
64
|
-
|
|
65
54
|
cursor:
|
|
66
55
|
reasoning:
|
|
67
56
|
model: inherit
|
|
@@ -41,5 +41,5 @@ every tool by `sync`, outside the creator's text.
|
|
|
41
41
|
|
|
42
42
|
The engine writes `.agentplugged/agents/<id>/` (`SKILL.md`, `agent.yaml`) or `.agentplugged/skills/<id>/`
|
|
43
43
|
(`SKILL.md`, `references/`) and runs `sync`: the same render as the shipped ones, for Claude Code, Codex,
|
|
44
|
-
Cursor
|
|
44
|
+
Cursor and Antigravity CLI. Then `verify` (its `evals` proposes behaviour cases: `references/evaluate.md`). To change it later, `analyze`, then a new `agent_edit`
|
|
45
45
|
with the whole corrected `content`, shown and approved the same way.
|
package/dist/product-root.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { $
|
|
2
|
-
import { $ as deferredCommand, $a as CURSOR_RULE_PATH, $c as openStack, $i as retroSummary, $l as RENAMED_AGENTS, $n as knownIds, $r as gestureOwner, $s as storyReviewDone, $t as workspacePath, $u as ROOT_CONSTITUTION_PATH, A as invalidField, Aa as loadDefinitions, Ac as findDeviation, Ad as deviceIdMatchesKey, Ai as isLockfile, Al as validatedStories, Ao as renderConstitution, Ar as AgentSession, As as existingCi, At as forcedFiles, Au as CREATOR_ACTION_DECISIONS, B as readSprintStories, Ba as subcommands, Bc as critiqueById, Bi as activeLessonIds, Bl as loadMethodConfig, Bn as terminalCommand, Bs as parseDiff, Bt as isReadableCode, Ca as fail, Cc as statusCounts, Cd as codexSessionIdOf, Ci as changeFacts, Cl as storyIn, Co as parseModelTable, Cr as leaveFastTrackCommand, Cs as formDigest, Ct as currentOrder, Cu as delegationVerdict, D as requirementAgentCommands, Da as roleForbidden, Dc as tracedStoryStatus, Dd as encryptFile, Di as findingRefs, Dl as sprintStories, Dn as engineUpdateOf, Do as isRecord, Dr as branchHead, Dt as CONFLICT_OPTION_TEXT, Du as checkpointPayload, E as itemOf, Ea as compareSemver, Ec as tracedRequirements, Ed as decryptFile, Ei as creatorStack, El as sprintStatus, Eo as planShippedCopy, Er as syncLateNotices, Es as skipWarning, Et as queueOrder, Eu as byOpening, F as journeyView, Fa as isEngineCommand, Fc as proofDecisions, Fi as planReaders, Fl as isBlobOf, Fn as creatorActionCheckpoint, Fo as isRuleValue, Fr as newUlid, Fs as currentPass, Ft as duplicateFindings, Fu as resolutionProblem, Ga as GEMINI_MD_PATH, Gc as documentRisk, Gi as lessonRecord, Gl as writeEngineVersion, Gn as parseDeclaredLine, Gr as checkAnnounced, Gs as reviewLoopReached, Gt as memoryInvalid, Gu as methodSection, H as knownOwners, Hc as critiqueOffer, Hi as approved, Hl as parseMethodConfig, Hn as isSecretVariable, Hs as passNumberFor, Ht as sourceWords, Hu as unavailable$1, I as gitView, Ia as isNetworkCommand, Ic as proofRequestOpen, Id as isReopenable, Ii as readerPasses, Il as readWorkingBytes, In as creatorActionSummary, Io as lockOf, Is as findFinding, It as isReuseReport, J as usageView, Ja as withEngineCommand, Jc as hypothesisById, Ji as overflows, Jl as GENERATED_HEADER_HASH, Jn as dryRunFileAction, Jo as loadSkillLayers, Jr as projectionKey, Js as securityReasons, Jt as readLessonFile, Ju as METHOD_DIR, Ka as engineCommand, Kc as hypothesesDue, Ki as lessonStatuses, Kl as writeTools, Kn as runsCriteria, Ko as checkSkillOverrideRequest, Kr as forgetProductKey, Ks as reviewOf, Kt as openCommonKey, Ku as METHOD_CONFIG_PATH, L as criteriaTrace, La as matchesAny, Lc as standingOf, Li as stackText, Ll as reviewsSince, Ln as isCreatorActionKind, Lo as ruleLocked, Lr as localeSigner, Ls as isStoryDeveloper, Lt as reuseLines, Lu as statusAt, M as isValidatedPublication, Ma as commandForms, Mc as openDeviations, Mi as lensDiff, Mo as DEFAULT_RULES, Mr as sessionTrust, Ms as isWorkflowFile, Mu as blocksInForce, N as sentBackPublications, Na as commandMatches, Nc as storyDeveloper, Nd as ANTIGRAVITY_POLICY_PATH, Ni as lensDiffPathOf, Nl as SECURITY_REVIEWER, Nn as actionStory, No as allowedValues, Nr as usableId, Ns as mergeHold, Nt as weighedStoriesOf, Nu as liftsBlocks, O as readRegistry, Oa as activeAgentNames, Oc as agentMayResolve, Od as encryptedFileKeyId, Oi as findingSeverities, Ol as sprintsOf, Oo as isStrings, Or as checkCiCommand, Os as GITHUB_WORKFLOWS_DIR, Ot as analyseConflict, Ou as truncate, P as withoutHeader, Pa as engineCommandOnly, Pc as commandsToAccept, Pd as ANTIGRAVITY_UNCHECKED_REASON, Pi as mergeLensReports, Pl as designSecurityReviewGap, Pn as contentPreview, Po as isRuleAction, Pr as createUlidFactory, Ps as storyCiStatus, Pt as weightDrift, Q as deferredAgentCommands, Qa as fallbacksFor, Qc as normalizedPath, Qi as retroOfCheckpoint, Ql as withPointerBlock, Qo as significantWords, Qr as computeProjectionDetailed, Qs as stackEntryOf, Qt as fileBinding, Qu as POINTER_FILES, R as unprovenCriteria, Ra as patternOf, Rc as correctionLines, Ri as validateJudge, Rl as parseDocumentFile, Rn as journalActionProblem, Rs as needsSecurity, Rt as reuseOf, S as resolveInstallSettings, Sa as defineCommand, Sc as measureResult, Sd as codexHookCommands, Si as isMergeCheckpoint, Sl as storiesIn$1, So as inheritClients, Ss as decisionPrompt, St as takePendingMerge, Su as delegationOf, T as invalid$13, Tc as traceSummaries, Ti as chooseLenses, Tl as latestSprint, Tn as engineUpdateRecordOf, To as renderModelsFile, Tr as noticeBranchOf, Ts as withNote, Tt as mergeWaits, Tu as pointsView, U as readDocumentFiles, Ua as CLAUDE_SETTINGS_PATH, Uc as critiqueStack, Ui as batchesOf, Ul as renderMethodConfig, Un as lineForCriterion, Ur as productIdMismatch, Us as passOutcome, Ut as isReservedMemoryPath, Uu as unexpected, V as docsCommand, Va as CODEX_CONFIG_PATH, Vc as critiqueOfDocument, Vi as anchorsOf, Vl as methodConfigInvalid, Vn as proofCommandLine, Vs as passComplete, Vt as isTestPath$1, Vu as AgentPluggedError, W as readMockupFiles, Wa as parsePolicy, Wc as deliveredAfter, Wi as dueScopes, Wl as stringifyMethodDocument, Wn as parseCommandLine, Wr as announcedKey, Ws as refutedOf, Wt as lessonFileIds, Wu as resolveValidationSettings, X as countSpec, Xa as loadManifest, Xc as keptObjections, Xi as recordDigest, Xl as normalizeText, Xo as costOf, Xs as silentOf, Xt as writeLessonFile, Xu as METHOD_SUBDIRS, Y as SPEC_PATH, Ya as SYNC_MANIFEST_PATH, Yc as ideaOffer, Yi as promotionSummary, Yl as isGenerated, Yn as isFileAction, Yo as overrideCostWithFiles, Yr as readHeldProductKey, Ys as sensitivePath, Yt as writeCommonEntry, Yu as METHOD_GITIGNORE_PATH, Z as currentState, Za as syncInputsFingerprint, Zc as mentionsSensitiveData, Zi as refusedRetro, Zl as pointerStyleOf, Zn as agentCommand, Zo as overlap, Zr as computeProjection, Zs as stackEntriesOf, Zt as checkSensitivePath, Zu as MODELS_PATH, _ as lines, _a as isPositioning, _d as cursorSessionIdOf, _i as judgedKey, _l as criterionStatus, _n as evaluateChecks, _o as writeValidationMode, _t as mergesOn, _u as skippedPhases, a as invalidInput, aa as attemptsView, ac as safeObserved, ai as validateRecall, al as validateSettle$1, an as executionStateProblem, ao as profileCommand, ar as verify, as as isDeveloper, at as keyCommand, au as STORY_BUILDERS, b as approvedArchitecture, ba as readScope, bd as CODEX_POLICY_PATH, bi as openConflict, bl as isTestPath, bo as writeGitWorkflow, bs as DECISION_FORM_FIELDS, bt as pendingMergeOf, bu as KNOWLEDGE_BASE_INDEX_PATH, c as project$1, ca as loopVerdict, cc as computeImpact, cd as isHookedClient, ci as readStackReply, cl as wasOffered, cn as isForgeAction, co as validateInstallMode, cr as recordGitWorkflow, cs as parseDefinition, ct as trustProblem, cu as isDocumentReview, d as measureProduct, da as triedLines, dc as courseNote, dd as refOf, di as stackItems, dl as mergedStoriesOf, do as validateProfile, dr as openPullRequestCommand, dt as installProductKey, du as refusedDocumentReview, ea as retrosOf, ec as unpublishedKinds, ed as decisionChannels, ei as isDocsPath, el as passageFound, en as actionUnchanged, eo as targetedTools, er as workshopKnown, et as verified, eu as RETIRED_DEVELOPERS, f as journalFacts, fa as tryProblem, fc as handoffs, fd as sameProject, fi as stackProblem, fl as pathKey, fn as syncJournal, fo as validateValidationMode, fs as checkpointsOf$1, ft as mergeHead, g as count, ga as POSITIONING_PATH, gd as CURSOR_UNREADABLE_REASON, gi as isJudgedKey, gl as storiesOf, gn as environmentChecks, go as writeProfile, gr as storyJournalView, gs as loadHumanKey, gt as mergedEvent, gu as isSkipped, h as antigravityTraceInfo, ha as checkDocuments, hc as validateDecisions, hd as CURSOR_UNCHECKED_REASON, hi as stackPromptItem, hl as validatedVersions, hn as diagnoseFailure, ho as writePoints, hr as storyCommand, hs as openDeferred, ht as mergeStory, hu as documentProblemIsWarning, i as defined, ia as attemptLimitCheckpoint, ic as reportProblems, id as citedKey, ii as validateProposal$1, il as validateProposal, in as executionProblem, io as methodNotInstalled, ir as bodySize, is as overridePath, it as installHumanKey, iu as PHASE_CLOSERS, j as isPublication, ja as syncCommand, jc as openDeviation, jd as canonicalBytes, ji as isSensitiveChange, jl as ARCHITECTURE_PATH, jn as updateAvailableOf, jo as renderConstitutionReferenceFiles, jr as readSource, js as heldMergeCheckpoint, ju as answerable, k as decodeStrict, ka as activeDefinitions, kc as deviationResolutionProblem, kd as wipeBytes, ki as isDocumentPath, kl as storyDoneAt, kn as isEngineUpdatePoint, ko as constitutionTarget, kr as ciUnavailable, ks as ciGreen, kt as conflictSummary, l as projectWithKey, la as parseHypothesis, lc as courseById, ld as matchQuote, li as selectionOutsideStack, ll as blobIdsOf, lo as validatePermissionMode, lr as deliveryRemote, lt as trustedCreator, lu as openDocumentReview, m as antigravityPlace, ma as budgetThresholdsOf, mc as openCourse, md as CURSOR_POLICY_PATH, mi as stackPromptDigest, ml as staleKnowledgeStories, mn as FailureSchema, mo as writePermissionMode, mr as startStoryCommand, ms as deferredView, mt as mergeFailed, n as agentEventCommand, na as scopeStatus, nc as looksLikeProof, nd as chatClientOf, ni as tableOffer, nl as validateClose, nn as currentRisk, no as detectTools, nr as definitionDir, ns as AGENT_OVERRIDES_DIR, nt as humanKeyMissing, nu as documentOwner, o as planSprintCommand, oa as hypothesisProblem, oc as fastTrackHold, oi as stacksOf, ol as validateShow, on as higherRisk, or as invalidArgument, os as SKILL_FILE, ot as reviewCommand, ou as activePhases, p as antigravityModelAt, pa as turnEvent, pc as leftLines, pd as CURSOR_HOOK_NAME, pi as stackPrompt, pl as staleKnowledgeSources, pn as environmentFixRecordOf, po as writeInstallMode, pr as parallelLimitProblem, ps as deferredLocks, pt as afterMerge, pu as inactiveAgents, q as usageSessionsOf, qa as mcpLaunch, qc as hypothesesOf, qi as memoryOf$1, ql as GENERATED_HEADER, qn as contentProblem, qr as productKeyMissing, qs as reviewVerdictOf, qt as readCommonEntry, qu as METHOD_CONSTITUTION_PATH, r as agentWriteContext, ra as targetsOf$1, rc as qaLine, rd as chatHookPath, ri as validateClosing, rl as validateCritiqueReport, rn as executionEvent, ro as resolveRules, rr as analyze, rs as loadOverrides, rt as humanTarget, s as planned, sa as loopStateOf, sc as checkCourse, si as parseStackReply, sl as versionsOf$1, sn as forgeRecordOf, ss as definitionFolders, st as reviewNotInteractive, su as approvedAt, t as agentActivityCommands, ta as scopeFinished, tc as untriagedFindings, td as isDecisionHook, ti as tableCandidate, tl as refsOf, tn as afterExecution, to as toolsFromDetection, tr as buildFromContent, tt as datedAfter, tu as currentDeveloper, u as provenanceOf, ua as ruledOutLines, uc as courseIsCoherent, ud as proofSessionOf, ul as knowledgePagesOf, uo as validatePoints, ur as oneLine$1, us as reasonHolds, ut as writeHuman, uu as phaseProgress, v as readClaudeTranscript, va as blockOf, vc as forgeRepositoryOf, vd as CODEX_HOOK_DEFINITIONS, vi as readinessOf, vl as missingLine, vn as runDoctor, vo as repositoryOnForge, vt as notRecorded, vu as skippedSteps, w as citingTests, wa as ok, wc as traceRequirement, wi as changeFiles, wl as currentSprint, wn as readDoctorCatalog, wo as readShippedTable, wr as storyFiles, ws as readReply, wt as filesByStory, wu as pointKindOf, x as plannedDependencies, xa as CommandRegistry, xd as CODEX_UNCHECKED_REASON, xi as refreshedMergeSummary, xl as testReferences, xn as isAutomatic, xo as effectiveTable, xs as canonicalJson, xu as deciderFor, y as skillNameOf, ya as outgrown, yd as CODEX_HOOK_NAME, yi as conflictNote, yo as validateGitWorkflow, ys as readMachineKey, yt as notePendingMerge, yu as skippedWithItsPhase, z as storyText, za as scriptParts, zc as critiquable, zi as validateLensReports, zl as editedMethodText, zn as notReserved, zo as provideToolManual, zr as journalProduct, zs as openMergeCheckpoint, zt as isCodePath, zu as waiverExpired } from "./agent-commands.js";
|
|
1
|
+
import { $ as readinessIdOf, $i as lessonIdOf, $r as criterionId, A as RoomIdSchema, Aa as SkillContentSchema, An as COURSE_EVENT_TYPES, B as OpenStackInputSchema, Bo as recommendedGitWorkflow, Co as TestSettingsSchema, D as TEST_CRITERIA, Dn as hypothesisIdOf, Dr as AnswerCheckpointInputSchema, Dt as LoopInputSchema, E as ReviewTestsInputSchema, Ea as AgentContentSchema, En as critiqueStepOf, Et as LOOP_EVENT_TYPES, Fa as plainLine, Fi as SESSION_EVENT_TYPES, Fr as QuestionStackProofSchema, Gi as PROMOTION_TITLE, Gr as QA_COMMAND, H as stackIdOf, Ha as compareStoryIds, Hi as LESSON_EVENT_TYPES, I as flatTable, Ii as PUBLICATION_DOCS_DIR, In as CREATOR_OWNER, Ir as QuestionToolViaSchema, Ji as ProposeRetrospectiveInputSchema, Jr as qaProofBelongs, Ka as MAIN_SESSION_AGENT, Ki as PromoteLessonInputSchema, Ko as ULID_PATTERN, Kr as QA_EVENT_TYPES, L as roundTableStepOf, La as DEFERRED_EVENT_TYPES, Li as PUBLICATION_EXPORT_DIR, Lt as HUMAN_EVENT_TYPES, M as RoundTableInputSchema, Ma as contentSize, Mi as CheckActionInputSchema, Mn as CourseInputSchema, Mr as QUESTION_TOOL_NAME, Na as isSkillContent, Ni as RecordExternalReadInputSchema, Nn as courseIdOf, Nr as QUESTION_TOOL_VIA, O as TEST_REVIEW_EVENT_TYPES, Oa as REQUIRED_CONTENT_FIELDS, Or as CHAT_DECISIONS, P as TABLE_EVENT_TYPES, Pa as isSkillOverrideContent, Pi as RequestActionInputSchema, Pr as QuestionProofSchema, Q as ReadyInputSchema, Qi as commonIdOf, Qn as INSTALL_EVENT_TYPES, Qr as criteriaInLine, R as AnswerStackInputSchema, Ri as countWords, S as MeasureUsageInputSchema, Sa as EnvironmentCheckIdSchema, Si as CHECKPOINT_EVENT_TYPES, So as TOOL_IDS, Ti as LIFTING_DECISIONS, Tn as critiquePathOf, Tt as HYPOTHESIS_KIND, Ur as AcceptanceQaInputSchema, V as STACK_EVENT_TYPES, Vo as resolveGitWorkflow, Wi as MEMORY_EVENT_TYPES, X as READINESS_FIX_FIRST, Xi as RecordLessonsInputSchema, Xr as CRITERION_EVENT_TYPES, Y as READINESS_EVENT_TYPES, Yi as ReadMemoryInputSchema, Yr as qaProofKind, Z as READINESS_GO_ON, Za as StoryIdSchema, Zo as ErrorCode, Zr as RecordCriterionInputSchema, _a as RunProofCommandInputSchema, _i as reviewIdOf, _o as RULE_VALUES, a as fromBase64url, aa as CreatorActionSchema, ai as JUDGE_LENS, an as DEVIATION_EVENT_TYPES, bn as CritiqueInputSchema, bo as SkillNameSchema, bt as MERGE_ORDER_EVENT_TYPES, c as toHex, ca as RequestCreatorActionInputSchema, cn as GetTraceInputSchema, da as CheckWriteInputSchema, di as StoryReviewInputSchema, dn as ResolveDeviationInputSchema, do as PHASE_IDS, dt as WriteSensitiveInputSchema, ea as retroIdOf, ei as REQUIREMENT_EVENT_TYPES, en as AskCreatorInputSchema, eo as AgentIdSchema, er as CI_FORGES, et as readinessStepOf, fa as WRITE_GUARD_EVENT_TYPES, fi as SubmitReviewInputSchema, fr as WEB_ANSWER_EVENT_TYPES, ga as ProofsFileSchema, gi as isSilentLens, gn as DelegateInputSchema, go as RULE_ACTIONS, gr as DEVICE_TRUST_EVENT_TYPES, gt as MigrationStepIdSchema, ha as SkillOverrideSchema, hi as isSilentJudge, hn as DELEGATION_EVENT_TYPES, ht as METHOD_EVENT_TYPES, i as sha256Hex, in as MAX_ELICITED_NOTE_LENGTH, j as RoomSchema, ji as checkpointIdOf, jn as COURSE_KINDS, jr as MessageDigestSchema, k as TEST_ROWS, ki as RESOLUTION_DECISIONS, kr as CHAT_EVENT_TYPES, l as utf8, lt as ReadSensitiveInputSchema, mn as deviationIdOf, n as randomBytes, na as scopeLabel, o as fromUtf8, oi as REVIEW_DOMAINS, on as DeviationIdInputSchema, oo as DOMAIN_IDS, or as CHECKPOINT_DECIDED_EVENT_TYPES, pa as WRITE_TEXT_MAX, pi as TriageReviewInputSchema, pn as TracedRequirementInputSchema, pt as utf8Length, qa as NextInputSchema, qi as ProposePromotionInputSchema, qr as QA_PROOF_DIR, rn as ElicitationChannelSchema, si as REVIEW_EVENT_TYPES, sn as DeviationReasonSchema, sr as DecideCheckpointInputSchema, t as gitBlobId, ta as retroTitle, tn as ELICITATION_EVENT_TYPES, u as historyCsv, ui as StartReviewInputSchema, un as ReportDeviationInputSchema, va as normalizedFolder, vr as RootPinSchema, vt as CONFLICT_OPTIONS, w as USAGE_SOURCES, wi as CheckpointIdSchema, wn as critiqueIdOf, xn as IDEA_VERSION, xo as TEST_FILE_MAX_LINES, xt as QualifyMergeConflictInputSchema, yn as CRITIQUE_EVENT_TYPES, yo as SemverSchema, yt as GetMergeOrderInputSchema, z as AskStackInputSchema, zn as DOCUMENT_KINDS } from "./hash.js";
|
|
2
|
+
import { $ as deferredAgentCommands, $a as SYNC_MANIFEST_PATH, $c as keptObjections, $i as recordDigest, $l as normalizeText, $o as costOf, $r as writingKey, $s as silentOf, $t as fileBinding, $u as MODELS_PATH, A as invalidField, Aa as roleForbidden, Ac as tracedStoryStatus, Ad as encryptedFileKeyId, Ai as findingRefs, Al as sprintStories, An as isEngineUpdatePoint, Ao as isRecord, Ar as ciUnavailable, At as conflictSummary, Au as truncate, B as readSprintStories, Ba as matchesAny, Bc as standingOf, Bi as stackText, Bl as reviewsSince, Bn as notReserved, Bo as ruleLocked, Br as journalProduct, Bs as isStoryDeveloper, Bt as isCodePath, Ca as readScope, Cd as CODEX_UNCHECKED_REASON, Ci as openConflict, Cl as isTestPath, Co as writeGitWorkflow, Cs as DECISION_FORM_FIELDS, Ct as takePendingMerge, Cu as KNOWLEDGE_BASE_INDEX_PATH, D as requirementAgentCommands, Da as ok, Dc as traceRequirement, Di as changeFiles, Dl as currentSprint, Do as readShippedTable, Dr as syncLateNotices, Ds as readReply, Dt as queueOrder, Du as pointsView, E as itemOf, Ea as fail, Ec as statusCounts, Ei as changeFacts, El as storyIn, En as engineUpdateRecordOf, Eo as parseModelTable, Er as noticeBranchOf, Es as formDigest, Et as mergeWaits, Eu as delegationVerdict, F as journeyView, Fa as commandForms, Fc as openDeviations, Fd as ANTIGRAVITY_POLICY_PATH, Fi as lensDiff, Fn as contentPreview, Fo as DEFAULT_RULES, Fr as createUlidFactory, Fs as isWorkflowFile, Ft as weightDrift, Fu as liftsBlocks, G as readMockupFiles, Gc as critiqueOffer, Gi as approved, Gl as parseMethodConfig, Gn as parseCommandLine, Gr as adoptRotatedKey, Gs as passNumberFor, Gt as lessonFileIds, Gu as unexpected, H as docsCommand, Ha as scriptParts, Hc as critiquable, Hi as validateLensReports, Hl as editedMethodText, Hn as proofCommandLine, Ho as provideToolManual, Hs as openMergeCheckpoint, Ht as isTestPath$1, I as gitView, Ia as commandMatches, Ic as storyDeveloper, Id as ANTIGRAVITY_UNCHECKED_REASON, Ii as lensDiffPathOf, Il as SECURITY_REVIEWER, In as creatorActionCheckpoint, Io as allowedValues, Ir as newUlid, Is as mergeHold, It as duplicateFindings, J as usageSessionsOf, Ja as GEMINI_MD_PATH, Jc as documentRisk, Ji as lessonRecord, Jl as writeEngineVersion, Jn as contentProblem, Jr as productKeyById, Js as reviewLoopReached, Jt as readCommonEntry, Ju as METHOD_CONFIG_PATH, Ka as CLAUDE_SETTINGS_PATH, Kc as critiqueStack, Ki as batchesOf, Kl as renderMethodConfig, Kn as parseDeclaredLine, Kr as announcedKey, Ks as passOutcome, Kt as memoryInvalid, Ku as resolveValidationSettings, L as criteriaTrace, La as engineCommandOnly, Lc as commandsToAccept, Li as mergeLensReports, Ll as designSecurityReviewGap, Ln as creatorActionSummary, Lo as isRuleAction, Ls as storyCiStatus, Lt as isReuseReport, Lu as resolutionProblem, M as isValidatedPublication, Ma as activeDefinitions, Mc as deviationResolutionProblem, Md as canonicalBytes, Mi as isDocumentPath, Ml as storyDoneAt, Mn as updateAvailableOf, Mo as constitutionTarget, Mr as readSource, Ms as ciGreen, Mu as CREATOR_ACTION_DECISIONS, N as sentBackPublications, Na as loadDefinitions, Nc as findDeviation, Ni as isLockfile, Nl as validatedStories, No as renderConstitution, Nr as sessionTrust, Ns as existingCi, Nu as answerable, O as readRegistry, Oc as traceSummaries, Od as decryptFile, Oi as chooseLenses, Ol as latestSprint, On as engineUpdateOf, Oo as renderModelsFile, Or as branchHead, Os as withNote, Ot as CONFLICT_OPTION_TEXT, Ou as byOpening, P as withoutHeader, Pa as syncCommand, Pc as openDeviation, Pd as deviceIdMatchesKey, Pi as isSensitiveChange, Pl as ARCHITECTURE_PATH, Pn as actionStory, Po as renderConstitutionReferenceFiles, Pr as usableId, Ps as heldMergeCheckpoint, Pt as weighedStoriesOf, Pu as blocksInForce, Q as currentState, Qa as withEngineCommand, Qc as ideaOffer, Qi as promotionSummary, Ql as isGenerated, Qn as agentCommand, Qo as overrideCostWithFiles, Qs as sensitivePath, Qt as checkSensitivePath, Qu as METHOD_SUBDIRS, R as unprovenCriteria, Ra as isEngineCommand, Rc as proofDecisions, Rd as isReopenable, Ri as planReaders, Rl as isBlobOf, Rn as isCreatorActionKind, Ro as isRuleValue, Rr as localeSigner, Rs as currentPass, Rt as reuseLines, S as resolveInstallSettings, Sa as outgrown, Sd as CODEX_POLICY_PATH, Si as conflictNote, Sn as isAutomatic, So as validateGitWorkflow, Ss as readMachineKey, Su as skippedWithItsPhase, T as invalid$13, Ta as defineCommand, Tc as measureResult, Td as codexSessionIdOf, Ti as isMergeCheckpoint, Tl as storiesIn$1, Tn as readDoctorCatalog, To as inheritClients, Tr as storyFiles, Ts as decisionPrompt, Tt as filesByStory, Tu as delegationOf, U as knownOwners, Ua as subcommands, Uc as critiqueById, Ui as activeLessonIds, Ul as loadMethodConfig, Un as isSecretVariable, Us as parseDiff, Ut as sourceWords, Uu as AgentPluggedError, V as DOCUMENT_PATHS, Va as patternOf, Vc as correctionLines, Vi as validateJudge, Vl as parseDocumentFile, Vn as terminalCommand, Vs as needsSecurity, Vt as isReadableCode, Vu as waiverExpired, W as readDocumentFiles, Wa as CODEX_CONFIG_PATH, Wc as critiqueOfDocument, Wi as anchorsOf, Wl as methodConfigInvalid, Wn as lineForCriterion, Wr as productIdMismatch, Ws as passComplete, Wt as isReservedMemoryPath, Wu as unavailable$1, X as SPEC_PATH, Xa as engineCommand, Xc as hypothesesOf, Xi as memoryOf$1, Xl as GENERATED_HEADER, Xn as isFileAction, Xr as projectionKey, Xs as reviewVerdictOf, Xt as writeCommonEntry, Xu as METHOD_DIR, Y as usageView, Ya as syncInputsFingerprint, Yc as hypothesesDue, Yi as lessonStatuses, Yl as writeTools, Yn as dryRunFileAction, Yo as checkSkillOverrideRequest, Yr as productKeyMissing, Ys as reviewOf, Yt as readLessonFile, Z as countSpec, Za as mcpLaunch, Zc as hypothesisById, Zi as overflows, Zl as GENERATED_HEADER_HASH, Zo as loadSkillLayers, Zr as readHeldProductKey, Zs as securityReasons, Zt as writeLessonFile, Zu as METHOD_GITIGNORE_PATH, _ as lines, _a as budgetThresholdsOf, _c as openCourse, _d as CURSOR_UNCHECKED_REASON, _i as stackPromptDigest, _l as staleKnowledgeStories, _n as environmentChecks, _o as writePermissionMode, _r as storyJournalView, _s as deferredView, _t as mergedEvent, a as invalidInput, aa as scopeStatus, ac as looksLikeProof, ad as chatHookPath, ai as tableOffer, al as validateClose, an as executionProblem, ao as detectTools, ar as bodySize, as as AGENT_OVERRIDES_DIR, at as installHumanKey, au as documentOwner, b as approvedArchitecture, ba as isPositioning, bd as CODEX_HOOK_DEFINITIONS, bi as judgedKey, bl as criterionStatus, bo as writeValidationMode, bt as notePendingMerge, bu as skippedPhases, c as project$1, ca as attemptsView, cc as safeObserved, ci as validateRecall, cl as validateSettle$1, cn as forgeRecordOf, co as profileCommand, cs as isDeveloper, ct as reviewNotInteractive, cu as STORY_BUILDERS, d as measureProduct, da as loopVerdict, dc as computeImpact, dd as matchQuote, di as readStackReply, dl as wasOffered, do as validateInstallMode, dr as oneLine$1, ds as parseDefinition, dt as writeHuman, du as isDocumentReview, ea as refusedRetro, ec as stackEntriesOf, ed as POINTER_FILES, ei as computeProjection, el as mentionsSensitiveData, en as workspacePath, eo as loadManifest, er as knownIds, es as overlap, et as deferredCommand, eu as pointerStyleOf, f as journalFacts, fa as parseHypothesis, fc as courseById, fd as proofSessionOf, fi as selectionOutsideStack, fl as blobIdsOf, fo as validatePermissionMode, fr as openPullRequestCommand, ft as installProductKey, fu as openDocumentReview, g as count, ga as turnEvent, gc as leftLines, gd as CURSOR_POLICY_PATH, gi as stackPrompt, gl as staleKnowledgeSources, gn as diagnoseFailure, go as writeInstallMode, gr as storyCommand, gs as deferredLocks, gt as mergeStory, gu as inactiveAgents, h as antigravityTraceInfo, ha as tryProblem, hc as handoffs, hd as CURSOR_HOOK_NAME, hi as stackProblem, hl as pathKey, hn as FailureSchema, ho as validateValidationMode, hr as startStoryCommand, hs as checkpointsOf$1, ht as mergeFailed, i as defined, ia as scopeFinished, ic as untriagedFindings, id as chatClientOf, ii as tableCandidate, il as refsOf, in as executionEvent, io as toolsFromDetection, ir as analyze, it as humanTarget, iu as currentDeveloper, j as isPublication, ja as activeAgentNames, jc as agentMayResolve, jd as wipeBytes, ji as findingSeverities, jl as sprintsOf, jo as isStrings, jr as AgentSession, js as GITHUB_WORKFLOWS_DIR, jt as forcedFiles, k as decodeStrict, ka as compareSemver, kc as tracedRequirements, kd as encryptFile, ki as creatorStack, kl as sprintStatus, ko as planShippedCopy, kr as checkCiCommand, ks as skipWarning, kt as analyseConflict, ku as checkpointPayload, l as projectWithKey, la as hypothesisProblem, lc as fastTrackHold, li as stacksOf, ll as validateShow, ln as isForgeAction, lr as recordGitWorkflow, ls as SKILL_FILE, lt as trustProblem, lu as activePhases, m as antigravityPlace, ma as triedLines, mc as courseNote, md as sameProject, mi as stackItems, ml as mergedStoriesOf, mn as environmentFixRecordOf, mo as validateProfile, mr as parallelLimitProblem, mt as afterMerge, mu as refusedDocumentReview, n as agentEventCommand, na as retroSummary, nc as storyReviewDone, nd as decisionChannels, ni as gestureOwner, nl as openStack, nn as afterExecution, no as CURSOR_RULE_PATH, nr as buildFromContent, nt as datedAfter, nu as RENAMED_AGENTS, o as planSprintCommand, oa as targetsOf$1, oc as qaLine, od as citedKey, oi as validateClosing, ol as validateCritiqueReport, on as executionStateProblem, oo as resolveRules, or as verify, os as loadOverrides, ot as keyCommand, p as antigravityModelAt, pa as ruledOutLines, pc as courseIsCoherent, pd as refOf, pl as knowledgePagesOf, pn as syncJournal, po as validatePoints, ps as reasonHolds, pt as mergeHead, pu as phaseProgress, qa as parsePolicy, qc as deliveredAfter, qi as dueScopes, ql as stringifyMethodDocument, qn as runsCriteria, qr as forgetProductKey, qs as refutedOf, qt as openCommonKey, qu as methodSection, r as agentWriteContext, ra as retrosOf, rc as unpublishedKinds, rd as isDecisionHook, ri as isDocsPath, rl as passageFound, rn as currentRisk, ro as targetedTools, rr as definitionDir, rt as humanKeyMissing, ru as RETIRED_DEVELOPERS, s as planned, sa as attemptLimitCheckpoint, sc as reportProblems, si as validateProposal$1, sl as validateProposal, sn as higherRisk, so as methodNotInstalled, sr as invalidArgument, ss as overridePath, st as reviewCommand, su as PHASE_CLOSERS, t as agentActivityCommands, ta as retroOfCheckpoint, tc as stackEntryOf, td as ROOT_CONSTITUTION_PATH, ti as computeProjectionDetailed, tl as normalizedPath, tn as actionUnchanged, to as fallbacksFor, tr as workshopKnown, ts as significantWords, tt as verified, tu as withPointerBlock, u as provenanceOf, ua as loopStateOf, uc as checkCourse, ud as isHookedClient, ui as parseStackReply, ul as versionsOf$1, ur as deliveryRemote, us as definitionFolders, ut as trustedCreator, uu as approvedAt, v as readClaudeTranscript, va as checkDocuments, vc as validateDecisions, vd as CURSOR_UNREADABLE_REASON, vi as stackPromptItem, vl as validatedVersions, vn as evaluateChecks, vo as writePoints, vs as openDeferred, vt as mergesOn, vu as documentProblemIsWarning, w as citingTests, wa as CommandRegistry, wd as codexHookCommands, wi as refreshedMergeSummary, wl as testReferences, wo as effectiveTable, wr as leaveFastTrackCommand, ws as canonicalJson, wt as currentOrder, wu as deciderFor, x as plannedDependencies, xa as blockOf, xc as forgeRepositoryOf, xd as CODEX_HOOK_NAME, xi as readinessOf, xl as missingLine, xo as repositoryOnForge, xt as pendingMergeOf, xu as skippedSteps, y as skillNameOf, ya as POSITIONING_PATH, yd as cursorSessionIdOf, yi as isJudgedKey, yl as storiesOf, yn as runDoctor, yo as writeProfile, ys as loadHumanKey, yt as notRecorded, yu as isSkipped, z as storyText, za as isNetworkCommand, zc as proofRequestOpen, zd as pointKindOf, zi as readerPasses, zl as readWorkingBytes, zn as journalActionProblem, zo as lockOf, zs as findFinding, zt as reuseOf, zu as statusAt } from "./agent-commands.js";
|
|
3
3
|
import { constants, existsSync, readFileSync } from "node:fs";
|
|
4
4
|
import { access, copyFile, lstat, mkdir, mkdtemp, open, readFile, readdir, readlink, realpath, rm, stat, symlink, utimes, writeFile } from "node:fs/promises";
|
|
5
5
|
import { execFile, spawn } from "node:child_process";
|
|
@@ -1062,7 +1062,7 @@ const usageCommand = defineCommand({
|
|
|
1062
1062
|
async run(context, input) {
|
|
1063
1063
|
const ask = parseUsageAsk(input);
|
|
1064
1064
|
if (ask instanceof AgentPluggedError) return fail(ask);
|
|
1065
|
-
if (!await context.files.exists(
|
|
1065
|
+
if (!await context.files.exists(".agentplugged/method.yaml")) return fail(methodNotInstalled());
|
|
1066
1066
|
const loaded = await loadMethodConfig(context.files);
|
|
1067
1067
|
if (loaded instanceof AgentPluggedError) return fail(loaded);
|
|
1068
1068
|
if (context.journal === void 0) return fail(methodNotInstalled());
|
|
@@ -3294,7 +3294,7 @@ const ciCommand = defineCommand({
|
|
|
3294
3294
|
if (action !== "setup" || extra !== void 0) return fail(invalid$11(`ci ${String(action ?? "")} (ci setup [--forge github|gitlab])`.trim()));
|
|
3295
3295
|
if (asked !== void 0 && !CI_FORGES.includes(asked)) return fail(invalid$11(`--forge ${String(asked)} (github, gitlab)`));
|
|
3296
3296
|
const { files } = context;
|
|
3297
|
-
if (!await files.exists(
|
|
3297
|
+
if (!await files.exists(".agentplugged/method.yaml")) return fail(methodNotInstalled());
|
|
3298
3298
|
const loaded = await loadMethodConfig(files);
|
|
3299
3299
|
if (loaded instanceof AgentPluggedError) return fail(loaded);
|
|
3300
3300
|
const flow = resolveGitWorkflow(loaded.config.git);
|
|
@@ -4329,12 +4329,12 @@ const FILE_BUDGET = 3e3;
|
|
|
4329
4329
|
const MAX_FILES = 6;
|
|
4330
4330
|
/** Data between markers can never close them. */
|
|
4331
4331
|
const tame = (value) => value.replaceAll("<output", "<output").replaceAll("</output", "</output");
|
|
4332
|
-
function cut$
|
|
4332
|
+
function cut$5(value, max) {
|
|
4333
4333
|
return value.length <= max ? value : `${value.slice(0, max)}\n[cut: ${value.length - max} more characters]`;
|
|
4334
4334
|
}
|
|
4335
4335
|
/** The prompt of the judge: the rubric, the output as data, the closed format of the answer. */
|
|
4336
4336
|
function graderPrompt({ input, rubric, material }) {
|
|
4337
|
-
const files = [...material.files.entries()].slice(0, MAX_FILES).map(([path, text]) => `<output file="${path.replace(/[^\w./-]/gu, "_").slice(0, 120)}">\n${tame(cut$
|
|
4337
|
+
const files = [...material.files.entries()].slice(0, MAX_FILES).map(([path, text]) => `<output file="${path.replace(/[^\w./-]/gu, "_").slice(0, 120)}">\n${tame(cut$5(text, FILE_BUDGET))}\n</output>`);
|
|
4338
4338
|
const calls = material.calls.map((call) => call.name);
|
|
4339
4339
|
return [
|
|
4340
4340
|
"You judge one output of an AI agent against a rubric. You run nothing, fix nothing, rewrite nothing.",
|
|
@@ -4353,7 +4353,7 @@ function graderPrompt({ input, rubric, material }) {
|
|
|
4353
4353
|
...rubric.map((line, index) => `${index + 1}. ${line}`),
|
|
4354
4354
|
"",
|
|
4355
4355
|
"The output:",
|
|
4356
|
-
`<output kind="answer">\n${tame(cut$
|
|
4356
|
+
`<output kind="answer">\n${tame(cut$5(material.answer, ANSWER_BUDGET))}\n</output>`,
|
|
4357
4357
|
...files,
|
|
4358
4358
|
`Calls the agent made, in order: ${calls.length === 0 ? "none" : calls.join(", ")}`,
|
|
4359
4359
|
"",
|
|
@@ -6031,31 +6031,6 @@ const delegateCommand = agentEventCommand({
|
|
|
6031
6031
|
});
|
|
6032
6032
|
//#endregion
|
|
6033
6033
|
//#region ../../packages/core/dist/history/history.js
|
|
6034
|
-
/** The columns of the CSV export, in order: the fields of `HistoryEntry`. */
|
|
6035
|
-
const HISTORY_COLUMNS = [
|
|
6036
|
-
"at",
|
|
6037
|
-
"author",
|
|
6038
|
-
"author_trust",
|
|
6039
|
-
"author_endorsed_at",
|
|
6040
|
-
"source",
|
|
6041
|
-
"decision",
|
|
6042
|
-
"option",
|
|
6043
|
-
"waiver_until",
|
|
6044
|
-
"assurance",
|
|
6045
|
-
"locale_on_high_risk",
|
|
6046
|
-
"checkpoint",
|
|
6047
|
-
"checkpoint_type",
|
|
6048
|
-
"checkpoint_risk",
|
|
6049
|
-
"checkpoint_title",
|
|
6050
|
-
"story",
|
|
6051
|
-
"event",
|
|
6052
|
-
"checkpoint_phase",
|
|
6053
|
-
"quote",
|
|
6054
|
-
"relayed_by",
|
|
6055
|
-
"channel",
|
|
6056
|
-
"stack",
|
|
6057
|
-
"via"
|
|
6058
|
-
];
|
|
6059
6034
|
/** The decisions `--decision` filters on: the resolutions, and `reopened`. */
|
|
6060
6035
|
const HISTORY_DECISIONS = [...RESOLUTION_DECISIONS, "reopened"];
|
|
6061
6036
|
/** The events that answer a checkpoint: at the terminal, from the chat, by the engine. */
|
|
@@ -6066,7 +6041,8 @@ const ANSWER_TYPES = /* @__PURE__ */ new Set([
|
|
|
6066
6041
|
CHAT_EVENT_TYPES.reopened,
|
|
6067
6042
|
CHECKPOINT_DECIDED_EVENT_TYPES.decided,
|
|
6068
6043
|
ELICITATION_EVENT_TYPES.answered,
|
|
6069
|
-
STACK_EVENT_TYPES.answered
|
|
6044
|
+
STACK_EVENT_TYPES.answered,
|
|
6045
|
+
WEB_ANSWER_EVENT_TYPES.answered
|
|
6070
6046
|
]);
|
|
6071
6047
|
function invalid$7(reason) {
|
|
6072
6048
|
return new AgentPluggedError(ErrorCode.INVALID_ARGUMENTS, "error.invalid_arguments", { reason });
|
|
@@ -6269,64 +6245,6 @@ function historyJson(entries, ignored = null) {
|
|
|
6269
6245
|
ignored
|
|
6270
6246
|
}))}\n`;
|
|
6271
6247
|
}
|
|
6272
|
-
/** The CSV export's columns: those of `HistoryEntry`, then the reason of an ignored answer. */
|
|
6273
|
-
const HISTORY_CSV_COLUMNS = [...HISTORY_COLUMNS, "ignored_reason"];
|
|
6274
|
-
/** The UTF-8 byte order mark: spreadsheets then read the accents right. */
|
|
6275
|
-
const BOM = String.fromCharCode(65279);
|
|
6276
|
-
/** Starts a spreadsheet formula when a cell begins with it. */
|
|
6277
|
-
const FORMULA_START = /^[=+\-@\t\r]/;
|
|
6278
|
-
/**
|
|
6279
|
-
* One CSV field (RFC 4180): quoted when it holds a comma, a quote or a line break. A text a
|
|
6280
|
-
* spreadsheet would run as a formula (`=`, `+`, `-`, `@`, tab, CR first) is prefixed with `'`.
|
|
6281
|
-
*/
|
|
6282
|
-
function csvField(value) {
|
|
6283
|
-
let text = value === null ? "" : String(value);
|
|
6284
|
-
if (FORMULA_START.test(text)) text = `'${text}`;
|
|
6285
|
-
return /[",\r\n]/.test(text) ? `"${text.replaceAll("\"", "\"\"")}"` : text;
|
|
6286
|
-
}
|
|
6287
|
-
function ignoredRow(item) {
|
|
6288
|
-
return {
|
|
6289
|
-
at: item.at,
|
|
6290
|
-
author: item.author,
|
|
6291
|
-
author_trust: null,
|
|
6292
|
-
author_endorsed_at: null,
|
|
6293
|
-
source: null,
|
|
6294
|
-
decision: item.decision,
|
|
6295
|
-
option: null,
|
|
6296
|
-
waiver_until: null,
|
|
6297
|
-
assurance: null,
|
|
6298
|
-
locale_on_high_risk: null,
|
|
6299
|
-
checkpoint: item.checkpoint,
|
|
6300
|
-
checkpoint_type: null,
|
|
6301
|
-
checkpoint_risk: null,
|
|
6302
|
-
checkpoint_title: null,
|
|
6303
|
-
story: item.story,
|
|
6304
|
-
checkpoint_phase: null,
|
|
6305
|
-
quote: null,
|
|
6306
|
-
relayed_by: null,
|
|
6307
|
-
channel: null,
|
|
6308
|
-
stack: null,
|
|
6309
|
-
via: null,
|
|
6310
|
-
event: item.event,
|
|
6311
|
-
ignored_reason: item.reason
|
|
6312
|
-
};
|
|
6313
|
-
}
|
|
6314
|
-
/**
|
|
6315
|
-
* The CSV export, for spreadsheets (RFC 4180, UTF-8 with a byte order mark so that accents read
|
|
6316
|
-
* right): a header of the English field names, then one record per entry, then (`--all`) one per
|
|
6317
|
-
* ignored answer with its `ignored_reason` (empty for the valid ones). Each line ends with CRLF; a
|
|
6318
|
-
* null is an empty field; formulas are neutralised (`csvField`), so the JSON export is the exact
|
|
6319
|
-
* one.
|
|
6320
|
-
*/
|
|
6321
|
-
function historyCsv(entries, ignored = null) {
|
|
6322
|
-
const rows = [...entries.map((entry) => ({
|
|
6323
|
-
...entry,
|
|
6324
|
-
ignored_reason: null
|
|
6325
|
-
})), ...(ignored ?? []).map(ignoredRow)];
|
|
6326
|
-
const lines = [HISTORY_CSV_COLUMNS.join(",")];
|
|
6327
|
-
for (const row of rows) lines.push(HISTORY_CSV_COLUMNS.map((column) => csvField(row[column])).join(","));
|
|
6328
|
-
return `${BOM}${lines.map((line) => `${line}\r\n`).join("")}`;
|
|
6329
|
-
}
|
|
6330
6248
|
//#endregion
|
|
6331
6249
|
//#region ../../packages/core/dist/history/history-command.js
|
|
6332
6250
|
function invalid$6(reason) {
|
|
@@ -6365,7 +6283,7 @@ const historyCommand$1 = defineCommand({
|
|
|
6365
6283
|
} else if (force === true) return fail(invalid$6("--force (with --export only)"));
|
|
6366
6284
|
if (context.journal === void 0) return fail(unexpected("no journal is available here"));
|
|
6367
6285
|
let productId;
|
|
6368
|
-
if (await context.files.exists(
|
|
6286
|
+
if (await context.files.exists(".agentplugged/method.yaml")) {
|
|
6369
6287
|
const loaded = await loadMethodConfig(context.files);
|
|
6370
6288
|
if (loaded instanceof AgentPluggedError) return fail(loaded);
|
|
6371
6289
|
productId = loaded.config.product_id;
|
|
@@ -6670,7 +6588,7 @@ const initCommand = defineCommand({
|
|
|
6670
6588
|
chosenTools = TOOL_IDS.filter((id) => list.includes(id));
|
|
6671
6589
|
}
|
|
6672
6590
|
let loaded;
|
|
6673
|
-
if (await files.exists(
|
|
6591
|
+
if (await files.exists(".agentplugged/method.yaml")) {
|
|
6674
6592
|
const result = await loadMethodConfig(files);
|
|
6675
6593
|
if (result instanceof AgentPluggedError) return fail(result);
|
|
6676
6594
|
loaded = result;
|
|
@@ -6680,7 +6598,7 @@ const initCommand = defineCommand({
|
|
|
6680
6598
|
const shippedModels = await readShippedTable(method);
|
|
6681
6599
|
if (shippedModels instanceof AgentPluggedError) return fail(shippedModels);
|
|
6682
6600
|
let table = shippedModels.table;
|
|
6683
|
-
if (await files.exists(
|
|
6601
|
+
if (await files.exists(".agentplugged/models.yaml")) {
|
|
6684
6602
|
const current = await files.readText(MODELS_PATH);
|
|
6685
6603
|
if (!isGenerated(current, "# Generated by agentplugged. Do not edit: changes are overwritten.")) {
|
|
6686
6604
|
const own = parseModelTable(MODELS_PATH, current);
|
|
@@ -6796,7 +6714,7 @@ const initCommand = defineCommand({
|
|
|
6796
6714
|
content: withEngineCommand(file.content, engine)
|
|
6797
6715
|
}));
|
|
6798
6716
|
const { target, rootAgents } = await constitutionTarget(files);
|
|
6799
|
-
if (target ===
|
|
6717
|
+
if (target === ".agentplugged/AGENTS.md") await planPointer(plan, files, ROOT_CONSTITUTION_PATH, target, rootAgents);
|
|
6800
6718
|
await planGeneratedFile(plan, files, target, constitution, GENERATED_HEADER);
|
|
6801
6719
|
for (const file of reference) await planGeneratedFile(plan, files, file.path, file.content, GENERATED_HEADER);
|
|
6802
6720
|
for (const path of POINTER_FILES) if (targeted.includes(POINTER_TOOLS[path])) await planPointer(plan, files, path, target);
|
|
@@ -6875,7 +6793,11 @@ async function projectState(journal, files, options = {}) {
|
|
|
6875
6793
|
allowTestTypes: options.allowTestTypes === true
|
|
6876
6794
|
};
|
|
6877
6795
|
const written = await computeProjectionDetailed(listing.events, base);
|
|
6878
|
-
const access = await projectionKey(options.keys === void 0 ? {} : { keys: options.keys }, options.productId ?? journalProduct(listing.events)?.product
|
|
6796
|
+
const access = await projectionKey(options.keys === void 0 ? {} : { keys: options.keys }, options.productId ?? journalProduct(listing.events)?.product, {
|
|
6797
|
+
events: listing.events,
|
|
6798
|
+
problems: listing.problems,
|
|
6799
|
+
allowTestTypes: options.allowTestTypes === true
|
|
6800
|
+
});
|
|
6879
6801
|
let shown = written;
|
|
6880
6802
|
if (access.key !== void 0) try {
|
|
6881
6803
|
shown = await computeProjectionDetailed(listing.events, {
|
|
@@ -6945,7 +6867,7 @@ const journalCommand = defineCommand({
|
|
|
6945
6867
|
if (recreate !== void 0) return fail(invalid$5("journal status: --recreate-remote"));
|
|
6946
6868
|
if (context.journal === void 0) return fail(unavailable("journal"));
|
|
6947
6869
|
let productId;
|
|
6948
|
-
if (await context.files.exists(
|
|
6870
|
+
if (await context.files.exists(".agentplugged/method.yaml")) {
|
|
6949
6871
|
const loaded = await loadMethodConfig(context.files);
|
|
6950
6872
|
if (loaded instanceof AgentPluggedError) return fail(loaded);
|
|
6951
6873
|
productId = loaded.config.product_id;
|
|
@@ -8560,6 +8482,45 @@ function withIndependence(state, docs, config) {
|
|
|
8560
8482
|
};
|
|
8561
8483
|
}
|
|
8562
8484
|
//#endregion
|
|
8485
|
+
//#region ../../packages/core/dist/next/web-answers.js
|
|
8486
|
+
/** How long an answer is told: older, nobody is waiting for it. */
|
|
8487
|
+
const TELL_FOR_MS = 864e5;
|
|
8488
|
+
/** The most answers told at once (the newest): the agent reads the rest with `state.get`. */
|
|
8489
|
+
const MOST = 3;
|
|
8490
|
+
/** Longest title and reason told, in characters: the full text is one `state.get` away. */
|
|
8491
|
+
const TITLE_MAX$1 = 120;
|
|
8492
|
+
const NOTE_MAX = 300;
|
|
8493
|
+
const cut$4 = (text, max) => text.length <= max ? text : `${text.slice(0, max - 1)}…`;
|
|
8494
|
+
/**
|
|
8495
|
+
* The answers from the web view that an agent has not acted on yet: the points it opened, answered
|
|
8496
|
+
* with `source: web` or `source: mobile`, whose answer is later than its last event of any kind. A story's merge is left out
|
|
8497
|
+
* (its own step tells the developer what to do, and an approved one is merged).
|
|
8498
|
+
*/
|
|
8499
|
+
function webAnswersNote(state, now) {
|
|
8500
|
+
const agents = state.agents ?? {};
|
|
8501
|
+
const told = [];
|
|
8502
|
+
for (const point of Object.values(checkpointsOf$1(state))) {
|
|
8503
|
+
const resolution = point.resolution ?? null;
|
|
8504
|
+
if (point.status !== "resolved" || resolution === null) continue;
|
|
8505
|
+
if (resolution.source !== "web" && resolution.source !== "mobile") continue;
|
|
8506
|
+
const agent = point.opened_by;
|
|
8507
|
+
if (agent === null || agent === void 0 || isMergeCheckpoint(point)) continue;
|
|
8508
|
+
const at = Date.parse(resolution.at);
|
|
8509
|
+
if (!(now - at < TELL_FOR_MS)) continue;
|
|
8510
|
+
if (!(at > (Object.hasOwn(agents, agent) ? Date.parse(agents[agent].last_signal_at) : Number.NEGATIVE_INFINITY))) continue;
|
|
8511
|
+
told.push({
|
|
8512
|
+
agent,
|
|
8513
|
+
checkpoint: point.id,
|
|
8514
|
+
title: cut$4(point.title, TITLE_MAX$1),
|
|
8515
|
+
decision: resolution.decision,
|
|
8516
|
+
...resolution.option === null ? {} : { option: resolution.option },
|
|
8517
|
+
...resolution.note === null ? {} : { note: cut$4(resolution.note, NOTE_MAX) },
|
|
8518
|
+
at
|
|
8519
|
+
});
|
|
8520
|
+
}
|
|
8521
|
+
return told.sort((a, b) => b.at - a.at).slice(0, MOST).map(({ at: _at, ...answer }) => answer);
|
|
8522
|
+
}
|
|
8523
|
+
//#endregion
|
|
8563
8524
|
//#region ../../packages/core/dist/next/next-command.js
|
|
8564
8525
|
const DOCS_DIR = `${METHOD_DIR}/docs`;
|
|
8565
8526
|
const EPICS_DIR = `${METHOD_DIR}/epics`;
|
|
@@ -8703,7 +8664,7 @@ const nextCommand = defineCommand({
|
|
|
8703
8664
|
const extra = Object.keys(input)[0];
|
|
8704
8665
|
if (extra !== void 0) return fail(new AgentPluggedError(ErrorCode.INVALID_ARGUMENTS, "error.invalid_arguments", { reason: extra }));
|
|
8705
8666
|
const { files } = context;
|
|
8706
|
-
if (!await files.exists(
|
|
8667
|
+
if (!await files.exists(".agentplugged/method.yaml")) return fail(methodNotInstalled());
|
|
8707
8668
|
const loaded = await loadMethodConfig(files);
|
|
8708
8669
|
if (loaded instanceof AgentPluggedError) return fail(loaded);
|
|
8709
8670
|
const { config } = loaded;
|
|
@@ -8809,7 +8770,7 @@ const nextCommand = defineCommand({
|
|
|
8809
8770
|
const nextAgentCommand = defineCommand({
|
|
8810
8771
|
name: "next",
|
|
8811
8772
|
audience: "agent",
|
|
8812
|
-
description: "Read the product's next step: the step, the active agent to call and in which tool, the story or checkpoint it concerns, the open checkpoints (`waiting`), where the creator answers (`answer`: `chat`, or `terminal` with its `answer_reason`: `strict`, a high risk at the strict level only) and `decisions`: the checkpoints waiting for the creator in the order to present them one at a time (by risk, then by the actions they block, then oldest first), each with its recommendation. `validation` says how the creator is asked right now: `channels` (`available`: the ways to click an answer, in the order the engine tries them, then `chat`; call ask_creator or ask_stack when it holds more than `chat`), `elicitation` (the form alone is usable), `mode` and `proof`; it is read at each call, so read it before each decision, never from an earlier reading; `validation.points` says which points the creator keeps (`fixed`) and which the agents decide (`delegated`). `validation.unpublished` (when not null) says the local main branch holds commits not published to the remote, the creator's settings among them, which apply anyway: Noah offers once to publish them with request_creator_action `forge_push_main` (never forced), one « oui », never a command to type. The step `point_decision` hands a point the creator did not keep to the agent it names (decide_checkpoint). `independent: true` marks work that does not depend on the points waiting for the creator: do it; `stop: true`: nothing independent is left, stop. `pile` is the single stack of everything waiting (open_stack with `pile.stack`), and `morning` the summary of what happened since the creator last answered. `journey.skipped` lists the steps of the proposed journey the creator skipped: they are never errors, never proposed again, and the creator may take one up again (`step_resume`); never skip a step yourself, the creator says it. `update_available` / `engine_update`: a newer engine to propose once (request_creator_action `engine_update`). `background`, when present, is Zoé's update of the knowledge base pages that are behind, to run beside the step (in another session, never in place of it, never holding a developer). `critique`, when present (`kind`, `why`), is the critique of the structuring document the creator is about to validate, at risk: offer it in one line, once (review.critique `propose` records it; never impose it); `kind: idea` offers to test the idea or write the press release first. `table`, when present (`format: three_views`, `story`, `agents`: product, delivery, quality), offers the three views of a sensitive story whose merge waits for the creator: one line, once per story (chat.table with `table` {`story`} alone records it; never impose it). `hypotheses_due` lists the open hypotheses an evidence arrived for (a proof, a merged story): show them in one line each and let the creator close them or keep them open. `spec_path`, when present, is the short path (one spec instead of the brief, the PRD and the architecture): `choose` (a new product at its framing: propose the path, once, after `docs path`), `grow` (the spec outgrew it, `spec_path_why` says why: offer the full path in one line), `risk` (the spec speaks of sensitive data its scope does not declare: same line) or `carry` (the full path is on again while a spec stands: `docs grow` carries it over). `late_pages` lists knowledge base pages that are behind the code and carry no late notice (the creator's Git settings give the engine no commit): treat them as late, never rely on them. It writes nothing but, where the creator's Git settings allow it, a commit of its own adding the late notice to a knowledge base page.",
|
|
8773
|
+
description: "Read the product's next step: the step, the active agent to call and in which tool, the story or checkpoint it concerns, the open checkpoints (`waiting`), where the creator answers (`answer`: `chat`, or `terminal` with its `answer_reason`: `strict`, a high risk at the strict level only) and `decisions`: the checkpoints waiting for the creator in the order to present them one at a time (by risk, then by the actions they block, then oldest first), each with its recommendation. `validation` says how the creator is asked right now: `channels` (`available`: the ways to click an answer, in the order the engine tries them, then `chat`; call ask_creator or ask_stack when it holds more than `chat`), `elicitation` (the form alone is usable), `mode` and `proof`; it is read at each call, so read it before each decision, never from an earlier reading; `validation.points` says which points the creator keeps (`fixed`) and which the agents decide (`delegated`). `validation.unpublished` (when not null) says the local main branch holds commits not published to the remote, the creator's settings among them, which apply anyway: Noah offers once to publish them with request_creator_action `forge_push_main` (never forced), one « oui », never a command to type. The step `point_decision` hands a point the creator did not keep to the agent it names (decide_checkpoint). `independent: true` marks work that does not depend on the points waiting for the creator: do it; `stop: true`: nothing independent is left, stop. `pile` is the single stack of everything waiting (open_stack with `pile.stack`), and `morning` the summary of what happened since the creator last answered. `journey.skipped` lists the steps of the proposed journey the creator skipped: they are never errors, never proposed again, and the creator may take one up again (`step_resume`); never skip a step yourself, the creator says it. `update_available` / `engine_update`: a newer engine to propose once (request_creator_action `engine_update`). `background`, when present, is Zoé's update of the knowledge base pages that are behind, to run beside the step (in another session, never in place of it, never holding a developer). `critique`, when present (`kind`, `why`), is the critique of the structuring document the creator is about to validate, at risk: offer it in one line, once (review.critique `propose` records it; never impose it); `kind: idea` offers to test the idea or write the press release first. `table`, when present (`format: three_views`, `story`, `agents`: product, delivery, quality), offers the three views of a sensitive story whose merge waits for the creator: one line, once per story (chat.table with `table` {`story`} alone records it; never impose it). `hypotheses_due` lists the open hypotheses an evidence arrived for (a proof, a merged story): show them in one line each and let the creator close them or keep them open. `spec_path`, when present, is the short path (one spec instead of the brief, the PRD and the architecture): `choose` (a new product at its framing: propose the path, once, after `docs path`), `grow` (the spec outgrew it, `spec_path_why` says why: offer the full path in one line), `risk` (the spec speaks of sensitive data its scope does not declare: same line) or `carry` (the full path is on again while a spec stands: `docs grow` carries it over). `web_answers`: answers given in the web cockpit to your points (yours = `agent`), until you write something: apply like a chat answer.`late_pages` lists knowledge base pages that are behind the code and carry no late notice (the creator's Git settings give the engine no commit): treat them as late, never rely on them. It writes nothing but, where the creator's Git settings allow it, a commit of its own adding the late notice to a knowledge base page.",
|
|
8813
8774
|
inputSchema: NextInputSchema,
|
|
8814
8775
|
allowsOlderEngine: () => true,
|
|
8815
8776
|
async run(context, input) {
|
|
@@ -8829,12 +8790,15 @@ const nextAgentCommand = defineCommand({
|
|
|
8829
8790
|
const table = await tableNext(context, step.value).catch(() => ({}));
|
|
8830
8791
|
const path = await specNext(context, step.value).catch(() => ({}));
|
|
8831
8792
|
const readiness = await readinessNext(context, step.value).catch(() => ({}));
|
|
8832
|
-
const
|
|
8793
|
+
const state = await currentState(context);
|
|
8794
|
+
const course = courseNote(state);
|
|
8795
|
+
const answers = webAnswersNote(state, (context.now ?? Date.now)());
|
|
8833
8796
|
return ok({
|
|
8834
8797
|
...step.value,
|
|
8835
8798
|
...critique,
|
|
8836
8799
|
...table,
|
|
8837
8800
|
...course === void 0 ? {} : { course },
|
|
8801
|
+
...answers.length === 0 ? {} : { web_answers: answers },
|
|
8838
8802
|
...path,
|
|
8839
8803
|
...readiness,
|
|
8840
8804
|
validation: {
|
|
@@ -9151,11 +9115,16 @@ const loopAgentCommands = [defineCommand({
|
|
|
9151
9115
|
*/
|
|
9152
9116
|
async function sensitiveKey(context, journal, product) {
|
|
9153
9117
|
const keys = context.keys ?? context.human?.keys;
|
|
9118
|
+
const listing = keys === void 0 ? void 0 : await journal.list();
|
|
9119
|
+
if (keys !== void 0 && listing !== void 0) await forgetProductKey(await adoptRotatedKey(keys, product, {
|
|
9120
|
+
events: listing.events,
|
|
9121
|
+
problems: listing.problems,
|
|
9122
|
+
allowTestTypes: context.allowTestTypes === true
|
|
9123
|
+
}).catch(() => void 0));
|
|
9154
9124
|
const key = keys === void 0 ? void 0 : await readHeldProductKey(keys, product);
|
|
9155
|
-
if (key === void 0) throw productKeyMissing(product);
|
|
9125
|
+
if (key === void 0 || listing === void 0) throw productKeyMissing(product);
|
|
9156
9126
|
try {
|
|
9157
|
-
|
|
9158
|
-
checkAnnounced(await announcedKey(listing.events, {
|
|
9127
|
+
return await writingKey(await announcedKey(listing.events, {
|
|
9159
9128
|
product,
|
|
9160
9129
|
productKey: key,
|
|
9161
9130
|
problems: listing.problems,
|
|
@@ -9165,7 +9134,6 @@ async function sensitiveKey(context, journal, product) {
|
|
|
9165
9134
|
await forgetProductKey(key);
|
|
9166
9135
|
throw error;
|
|
9167
9136
|
}
|
|
9168
|
-
return key;
|
|
9169
9137
|
}
|
|
9170
9138
|
/** `INVALID_ARGUMENTS` on the `path` of `command`. */
|
|
9171
9139
|
function badPath(command, reason) {
|
|
@@ -9208,9 +9176,12 @@ const sensitiveCommands = [defineCommand({
|
|
|
9208
9176
|
path
|
|
9209
9177
|
}));
|
|
9210
9178
|
key = await sensitiveKey(context, target.journal, target.product);
|
|
9211
|
-
const
|
|
9179
|
+
const fileKeyId = encryptedFileKeyId(text) ?? "";
|
|
9180
|
+
const fileKey = await productKeyById(key, fileKeyId);
|
|
9181
|
+
if (fileKey === void 0) return fail(fileKeyMismatch(fileKeyId, key.keyId));
|
|
9182
|
+
const opened = await decryptFile(text, fileBinding(target.product, area, path), fileKey.key);
|
|
9212
9183
|
if (!opened.ok) {
|
|
9213
|
-
if (opened.reason === "other_key") return fail(fileKeyMismatch(
|
|
9184
|
+
if (opened.reason === "other_key") return fail(fileKeyMismatch(fileKeyId, key.keyId));
|
|
9214
9185
|
return fail(new AgentPluggedError(ErrorCode.UNEXPECTED, "error.unexpected", { reason: `read_sensitive: ${area}/${path} does not decrypt (altered, or moved from another path or product)` }));
|
|
9215
9186
|
}
|
|
9216
9187
|
if (utf8Length(opened.content) > 262144) return fail(badPath("read_sensitive", "the file is larger than 256 KiB"));
|
|
@@ -9428,7 +9399,7 @@ const promoteLessonCommand = defineCommand({
|
|
|
9428
9399
|
});
|
|
9429
9400
|
}
|
|
9430
9401
|
if (anchor === void 0) return fail(memoryInvalid("lesson_unknown", { lesson: plan.lesson }));
|
|
9431
|
-
const read = await readLessonFile(context, target.product, key
|
|
9402
|
+
const read = await readLessonFile(context, target.product, key, anchor.id, anchor.digest);
|
|
9432
9403
|
if (!read.ok) return fail(memoryInvalid("lesson_altered", { lesson: plan.lesson }));
|
|
9433
9404
|
let recorded;
|
|
9434
9405
|
let promotedAt;
|
|
@@ -9636,7 +9607,7 @@ const readMemoryCommand = defineCommand({
|
|
|
9636
9607
|
const altered = [];
|
|
9637
9608
|
for (const anchor of Object.values(anchors)) {
|
|
9638
9609
|
if (status.get(anchor.id) !== "active") continue;
|
|
9639
|
-
const read = await readLessonFile(context, target.product, key
|
|
9610
|
+
const read = await readLessonFile(context, target.product, key, anchor.id, anchor.digest);
|
|
9640
9611
|
if (!read.ok) {
|
|
9641
9612
|
(read.reason === "missing" ? missing : altered).push(anchor.id);
|
|
9642
9613
|
continue;
|
|
@@ -9912,7 +9883,7 @@ const memoryCommands = [
|
|
|
9912
9883
|
record: lessonRecord(retro, lesson),
|
|
9913
9884
|
digest: anchors[lesson.id]?.digest ?? ""
|
|
9914
9885
|
}));
|
|
9915
|
-
const repaired = await materialize(context, target.product, key
|
|
9886
|
+
const repaired = await materialize(context, target.product, key, before, owed, batch.retired);
|
|
9916
9887
|
return ok({
|
|
9917
9888
|
id: done.event,
|
|
9918
9889
|
type: LESSON_EVENT_TYPES.recorded,
|
|
@@ -9929,7 +9900,7 @@ const memoryCommands = [
|
|
|
9929
9900
|
const written = await events.run(context, input);
|
|
9930
9901
|
if (!written.ok) return fail(written.error);
|
|
9931
9902
|
try {
|
|
9932
|
-
await materialize(context, target.product, key
|
|
9903
|
+
await materialize(context, target.product, key, before, plan.kept.map(({ lesson, record, digest }) => ({
|
|
9933
9904
|
id: lesson.id,
|
|
9934
9905
|
record,
|
|
9935
9906
|
digest
|
|
@@ -10686,7 +10657,7 @@ async function migrate(context, input) {
|
|
|
10686
10657
|
if (check !== void 0 && typeof check !== "boolean") return fail(invalidArgument("error.invalid_arguments", { reason: "migrate: --check" }));
|
|
10687
10658
|
if (check !== true && context.interactive !== true) return fail(reviewNotInteractive("migrate"));
|
|
10688
10659
|
const { files, journal } = context;
|
|
10689
|
-
if (!await files.exists(
|
|
10660
|
+
if (!await files.exists(".agentplugged/method.yaml")) return fail(methodNotInstalled());
|
|
10690
10661
|
const text = await files.readText(METHOD_CONFIG_PATH);
|
|
10691
10662
|
const from = readFormat(text);
|
|
10692
10663
|
if (from instanceof AgentPluggedError) return fail(from);
|
|
@@ -10776,7 +10747,7 @@ async function migrate(context, input) {
|
|
|
10776
10747
|
provenance: "trusted",
|
|
10777
10748
|
payload
|
|
10778
10749
|
}], { precondition: async (current) => {
|
|
10779
|
-
if (await files.readText(
|
|
10750
|
+
if (await files.readText(".agentplugged/method.yaml") !== text) throw conflict("error.migrate.config_changed", {
|
|
10780
10751
|
reason: "config_changed",
|
|
10781
10752
|
path: METHOD_CONFIG_PATH
|
|
10782
10753
|
});
|
|
@@ -10836,7 +10807,7 @@ function invalid$4(field, why, translated) {
|
|
|
10836
10807
|
async function checkpointsOf(context) {
|
|
10837
10808
|
if (context.journal === void 0) throw new AgentPluggedError(ErrorCode.UNEXPECTED, "error.unexpected", { reason: "no journal is available here" });
|
|
10838
10809
|
let product;
|
|
10839
|
-
if (await context.files.exists(
|
|
10810
|
+
if (await context.files.exists(".agentplugged/method.yaml")) {
|
|
10840
10811
|
const loaded = await loadMethodConfig(context.files);
|
|
10841
10812
|
if (loaded instanceof AgentPluggedError) throw loaded;
|
|
10842
10813
|
product = loaded.config.product_id;
|
|
@@ -14332,7 +14303,7 @@ const rulesCommand = defineCommand({
|
|
|
14332
14303
|
if (wanted !== void 0 && !allowedValues(wanted.action).includes(wanted.value)) return fail(ruleLocked(wanted.action, wanted.value));
|
|
14333
14304
|
if (action !== "show" && context.interactive !== true) return fail(reviewNotInteractive(`rules ${action}`));
|
|
14334
14305
|
const { files } = context;
|
|
14335
|
-
if (!await files.exists(
|
|
14306
|
+
if (!await files.exists(".agentplugged/method.yaml")) return fail(methodNotInstalled());
|
|
14336
14307
|
const loaded = await loadMethodConfig(files);
|
|
14337
14308
|
if (loaded instanceof AgentPluggedError) return fail(loaded);
|
|
14338
14309
|
let config = loaded.config;
|
|
@@ -15065,7 +15036,7 @@ const testsCommand = defineCommand({
|
|
|
15065
15036
|
if (runner !== void 0 && !isApiRunner(runner)) return fail(invalid$1(`--runner ${String(runner)} (${API_RUNNERS.join(", ")})`));
|
|
15066
15037
|
if (e2e !== void 0 && e2e !== "none" && !isE2eRunner(e2e)) return fail(invalid$1(`--e2e ${String(e2e)} (${E2E_RUNNERS.join(", ")}, none)`));
|
|
15067
15038
|
const { files } = context;
|
|
15068
|
-
if (!await files.exists(
|
|
15039
|
+
if (!await files.exists(".agentplugged/method.yaml")) return fail(methodNotInstalled());
|
|
15069
15040
|
const plan = await testPlan(files, {
|
|
15070
15041
|
...runner === void 0 ? {} : { runner },
|
|
15071
15042
|
...e2e === void 0 ? {} : { e2e }
|
|
@@ -15288,7 +15259,7 @@ async function readTests$1(context) {
|
|
|
15288
15259
|
* one `requirement` (`REQUIREMENT_NOT_FOUND` when no `prd` document defines it).
|
|
15289
15260
|
*/
|
|
15290
15261
|
async function readTrace(context, requirement) {
|
|
15291
|
-
if (!await context.files.exists(
|
|
15262
|
+
if (!await context.files.exists(".agentplugged/method.yaml")) return methodNotInstalled();
|
|
15292
15263
|
const loaded = await loadMethodConfig(context.files);
|
|
15293
15264
|
if (loaded instanceof AgentPluggedError) return loaded;
|
|
15294
15265
|
const documents = (await readDocumentFiles(context.files, true)).map((file) => parseDocumentFile(file.path, file.text));
|
|
@@ -18584,6 +18555,7 @@ const checkWriteCommand = defineCommand({
|
|
|
18584
18555
|
return ok({});
|
|
18585
18556
|
}
|
|
18586
18557
|
});
|
|
18558
|
+
DOCUMENT_PATHS.find((dir) => dir.endsWith("/stories"));
|
|
18587
18559
|
//#endregion
|
|
18588
18560
|
//#region ../../packages/core/dist/git/detect-workflow.js
|
|
18589
18561
|
/**
|
package/dist/rolldown-runtime.js
CHANGED
|
@@ -12,7 +12,7 @@ var __esmMin = (fn, res, err) => () => {
|
|
|
12
12
|
throw err = [e], e;
|
|
13
13
|
}
|
|
14
14
|
};
|
|
15
|
-
var __commonJSMin = (cb, mod) => () => (mod || (cb((mod = { exports: {} }).exports, mod), cb = null), mod.exports);
|
|
15
|
+
var __commonJSMin = (cb, mod) => () => (mod || (cb((mod = { exports: {} }).exports, mod, mod.exports), cb = null), mod.exports);
|
|
16
16
|
var __exportAll = (all, no_symbols) => {
|
|
17
17
|
let target = {};
|
|
18
18
|
for (var name in all) __defProp(target, name, {
|