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.
@@ -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, Antigravity and Gemini CLI. Then `verify` (its `evals` proposes behaviour cases: `references/evaluate.md`). To change it later, `analyze`, then a new `agent_edit`
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.
@@ -1,5 +1,5 @@
1
- import { $i as RequestCreatorActionInputSchema, Ao as resolveGitWorkflow, B as RoomIdSchema, Bi as ReadMemoryInputSchema, Bn as courseIdOf, Bo as ErrorCode, Br as qaProofKind, Ca as contentSize, Ci as CheckActionInputSchema, Cn as DelegateInputSchema, Cr as QUESTION_TOOL_VIA, Ct as MigrationStepIdSchema, D as DeviationIdInputSchema, Di as PUBLICATION_DOCS_DIR, Dn as CritiqueInputSchema, Dt as MERGE_ORDER_EVENT_TYPES, E as DEVIATION_EVENT_TYPES, Ea as plainLine, Ei as SESSION_EVENT_TYPES, En as CRITIQUE_EVENT_TYPES, Er as QuestionToolViaSchema, Et as GetMergeOrderInputSchema, F as deviationIdOf, Fi as MEMORY_EVENT_TYPES, Fo as ULID_PATTERN, Ga as AgentIdSchema, Gi as retroIdOf, Gr as REQUIREMENT_EVENT_TYPES, H as RoundTableInputSchema, Ha as StoryIdSchema, Hr as RecordCriterionInputSchema, I as ReviewTestsInputSchema, Ii as PROMOTION_TITLE, Ir as QA_COMMAND, J as AnswerStackInputSchema, K as flatTable, Ki as retroTitle, Kn as DOCUMENT_KINDS, L as TEST_CRITERIA, La as MAIN_SESSION_AGENT, Li as PromoteLessonInputSchema, Ln as COURSE_EVENT_TYPES, Lr as QA_EVENT_TYPES, M as ResolveDeviationInputSchema, Mn as critiquePathOf, Mt as LOOP_EVENT_TYPES, Na as compareStoryIds, Ni as LESSON_EVENT_TYPES, Nn as critiqueStepOf, Nt as LoopInputSchema, O as DeviationReasonSchema, Oa as DEFERRED_EVENT_TYPES, Oi as PUBLICATION_EXPORT_DIR, On as IDEA_VERSION, Ot as QualifyMergeConflictInputSchema, P as TracedRequirementInputSchema, Pn as hypothesisIdOf, Pr as AcceptanceQaInputSchema, Q as stackIdOf, Qr as REVIEW_EVENT_TYPES, R as TEST_REVIEW_EVENT_TYPES, Ra as NextInputSchema, Ri as ProposePromotionInputSchema, Rn as COURSE_KINDS, Rr as QA_PROOF_DIR, S as MeasureUsageInputSchema, Si as checkpointIdOf, Sn as DELEGATION_EVENT_TYPES, Sr as QUESTION_TOOL_NAME, St as METHOD_EVENT_TYPES, Ta as isSkillOverrideContent, Ti as RequestActionInputSchema, Tr as QuestionStackProofSchema, Tt as CONFLICT_OPTIONS, Ui as commonIdOf, Un as CREATOR_OWNER, Ur as criteriaInLine, Ut as HUMAN_EVENT_TYPES, V as RoomSchema, Vi as RecordLessonsInputSchema, Vr as CRITERION_EVENT_TYPES, W as TABLE_EVENT_TYPES, Wi as lessonIdOf, Wr as criterionId, X as OpenStackInputSchema, Xi as CreatorActionSchema, Xr as JUDGE_LENS, Y as AskStackInputSchema, Z as STACK_EVENT_TYPES, Za as DOMAIN_IDS, Zr as REVIEW_DOMAINS, _a as AgentContentSchema, _r as AnswerCheckpointInputSchema, _t as ReadSensitiveInputSchema, ar as INSTALL_EVENT_TYPES, at as READINESS_EVENT_TYPES, bi as RESOLUTION_DECISIONS, c as fromUtf8, ca as RunProofCommandInputSchema, ci as reviewIdOf, ct as ReadyInputSchema, d as utf8, do as TEST_FILE_MAX_LINES, fn as DEVICE_TRUST_EVENT_TYPES, fo as TOOL_IDS, gi as LIFTING_DECISIONS, hi as CheckpointIdSchema, i as randomBytes, ia as WRITE_TEXT_MAX, ii as TriageReviewInputSchema, j as ReportDeviationInputSchema, jn as critiqueIdOf, jt as HYPOTHESIS_KIND, k as GetTraceInputSchema, ki as countWords, ko as recommendedGitWorkflow, la as normalizedFolder, ln as ElicitationChannelSchema, lo as SemverSchema, lt as readinessIdOf, mn as RootPinSchema, mr as DecideCheckpointInputSchema, na as CheckWriteInputSchema, ni as StoryReviewInputSchema, no as PHASE_IDS, o as sha256Hex, oa as SkillOverrideSchema, oi as isSilentJudge, on as AskCreatorInputSchema, oo as RULE_ACTIONS, ot as READINESS_FIX_FIRST, pa as EnvironmentCheckIdSchema, pi as CHECKPOINT_EVENT_TYPES, po as TestSettingsSchema, pr as CHECKPOINT_DECIDED_EVENT_TYPES, q as roundTableStepOf, qi as scopeLabel, r as gitBlobId, ra as WRITE_GUARD_EVENT_TYPES, ri as SubmitReviewInputSchema, s as fromBase64url, sa as ProofsFileSchema, si as isSilentLens, sn as ELICITATION_EVENT_TYPES, so as RULE_VALUES, sr as CI_FORGES, st as READINESS_GO_ON, ti as StartReviewInputSchema, u as toHex, un as MAX_ELICITED_NOTE_LENGTH, uo as SkillNameSchema, ut as readinessStepOf, vr as CHAT_DECISIONS, w as USAGE_SOURCES, wa as isSkillContent, wi as RecordExternalReadInputSchema, wr as QuestionProofSchema, xa as SkillContentSchema, xr as MessageDigestSchema, xt as utf8Length, ya as REQUIRED_CONTENT_FIELDS, yr as CHAT_EVENT_TYPES, yt as WriteSensitiveInputSchema, z as TEST_ROWS, zi as ProposeRetrospectiveInputSchema, zn as CourseInputSchema, zr as qaProofBelongs } from "./webauthn.js";
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(METHOD_CONFIG_PATH)) return fail(methodNotInstalled());
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(METHOD_CONFIG_PATH)) return fail(methodNotInstalled());
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$4(value, max) {
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$4(text, FILE_BUDGET))}\n</output>`);
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$4(material.answer, ANSWER_BUDGET))}\n</output>`,
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(METHOD_CONFIG_PATH)) {
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(METHOD_CONFIG_PATH)) {
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(MODELS_PATH)) {
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 === METHOD_CONSTITUTION_PATH) await planPointer(plan, files, ROOT_CONSTITUTION_PATH, target, rootAgents);
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(METHOD_CONFIG_PATH)) {
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(METHOD_CONFIG_PATH)) return fail(methodNotInstalled());
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 course = courseNote(await currentState(context));
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
- const listing = await journal.list();
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 opened = await decryptFile(text, fileBinding(target.product, area, path), key.key);
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(encryptedFileKeyId(text) ?? "", key.keyId));
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.key, anchor.id, anchor.digest);
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.key, anchor.id, anchor.digest);
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.key, before, owed, batch.retired);
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.key, before, plan.kept.map(({ lesson, record, digest }) => ({
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(METHOD_CONFIG_PATH)) return fail(methodNotInstalled());
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(METHOD_CONFIG_PATH) !== text) throw conflict("error.migrate.config_changed", {
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(METHOD_CONFIG_PATH)) {
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(METHOD_CONFIG_PATH)) return fail(methodNotInstalled());
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(METHOD_CONFIG_PATH)) return fail(methodNotInstalled());
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(METHOD_CONFIG_PATH)) return methodNotInstalled();
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
  /**
@@ -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, {