@opentag/core 0.3.1 → 0.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -220,7 +220,7 @@ var OPEN_TAG_PLATFORM_CAPABILITIES = {
220
220
  supportsRichPresentation: true,
221
221
  supportsActionReplies: false,
222
222
  requiresExplicitAddressing: true,
223
- livenessStrategy: "thread_reply"
223
+ livenessStrategy: "source_receipt"
224
224
  },
225
225
  telegram: {
226
226
  id: "telegram",
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/action.ts","../src/capability.ts","../src/json-schema.ts","../src/schema.ts","../src/mention.ts","../src/presentation.ts","../src/project-target.ts","../src/protocol.ts","../src/request-body.ts"],"sourcesContent":["import type { MutationIntent, OpenTagRunResult, SuggestedChangesSnapshot } from \"./schema.js\";\n\nexport type ThreadActionVerb = \"approve\" | \"apply\" | \"continue\" | \"reject\";\n\nexport type ThreadActionSelection =\n | { kind: \"latest\" }\n | { kind: \"all\" }\n | { kind: \"index\"; index: number }\n | { kind: \"proposal\"; proposalId: string }\n | { kind: \"intent\"; intentId: string }\n | { kind: \"domain\"; domain: string };\n\nexport type ThreadActionCommand = {\n verb: ThreadActionVerb;\n selection: ThreadActionSelection;\n rawText: string;\n reason?: string;\n};\n\nexport type SuggestedActionCandidate = {\n index: number;\n proposalId: string;\n proposalSummary: string;\n proposalPreconditions?: string[];\n intent: MutationIntent;\n};\n\nexport type ActionReceiptState = \"ready_to_apply\" | \"needs_approval\" | \"needs_setup\" | \"unsupported\";\nexport type ActionReceiptDecision = \"apply\" | \"approve\" | \"reject\" | \"continue\";\nexport type ActionReceiptPrimaryDecision = \"apply\" | \"continue\" | \"none\";\n\nexport type ActionReceiptCapability = {\n state?: ActionReceiptState;\n targetLabel?: string;\n setupReason?: string;\n visibleDecisions?: ActionReceiptDecision[];\n primaryDecision?: ActionReceiptPrimaryDecision;\n};\n\nexport type ActionReceiptContext = {\n capabilityByIntentId?: Record<string, ActionReceiptCapability>;\n};\n\nexport type ActionReceipt = {\n candidate: SuggestedActionCandidate;\n state: ActionReceiptState;\n targetLabel: string;\n setupReason?: string;\n visibleDecisions: ActionReceiptDecision[];\n primaryDecision: ActionReceiptPrimaryDecision;\n};\n\nconst ENGLISH_VERBS: Record<string, ThreadActionVerb> = {\n approve: \"approve\",\n approved: \"approve\",\n ok: \"approve\",\n okay: \"approve\",\n apply: \"apply\",\n continue: \"continue\",\n proceed: \"continue\",\n reject: \"reject\",\n decline: \"reject\"\n};\n\nconst CHINESE_VERBS: Array<{ pattern: RegExp; verb: ThreadActionVerb }> = [\n { pattern: /^(批准|同意)/, verb: \"approve\" },\n { pattern: /^(应用|套用|执行)/, verb: \"apply\" },\n { pattern: /^(继续执行|继续这个|继续此|继续)/, verb: \"continue\" },\n { pattern: /^(拒绝|不同意|驳回)/, verb: \"reject\" }\n];\n\nconst DOMAIN_ALIASES: Record<string, string> = {\n label: \"labels\",\n labels: \"labels\",\n status: \"status\",\n assignee: \"assignee\",\n assignees: \"assignee\",\n priority: \"priority\",\n review: \"review\",\n reviews: \"review\",\n artifact: \"artifact_links\",\n artifacts: \"artifact_links\",\n pr: \"pull_request\",\n prs: \"pull_request\",\n pull_request: \"pull_request\",\n pull_requests: \"pull_request\"\n};\n\nfunction normalizeToken(token: string): string {\n return token.trim().replace(/[.,;:!?,。;:!?]+$/u, \"\");\n}\n\nfunction escapeRegExp(value: string): string {\n return value.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n}\n\nfunction parseSelection(tokens: string[]): ThreadActionSelection {\n const normalized = tokens.map(normalizeToken).filter(Boolean);\n const first = normalized[0];\n if (!first) return { kind: \"latest\" };\n if (first.toLowerCase() === \"all\" || first === \"全部\") return { kind: \"all\" };\n if (/^\\d+$/.test(first)) return { kind: \"index\", index: Number(first) };\n if (first.startsWith(\"proposal_\")) return { kind: \"proposal\", proposalId: first };\n if (first.startsWith(\"intent_\")) return { kind: \"intent\", intentId: first };\n\n const maybeProposal = normalized.find((token) => token.startsWith(\"proposal_\"));\n if (maybeProposal) return { kind: \"proposal\", proposalId: maybeProposal };\n const maybeIntent = normalized.find((token) => token.startsWith(\"intent_\"));\n if (maybeIntent) return { kind: \"intent\", intentId: maybeIntent };\n\n const domain = DOMAIN_ALIASES[first.toLowerCase()];\n return domain ? { kind: \"domain\", domain } : { kind: \"latest\" };\n}\n\nfunction reasonAfterSelection(rest: string, selection: ThreadActionSelection): string | undefined {\n if (!rest.trim()) return undefined;\n if (selection.kind === \"all\") {\n const stripped = rest.replace(/^\\s*(?:all|全部)\\s*/iu, \"\").trim();\n return stripped.length > 0 ? stripped : undefined;\n }\n if (selection.kind === \"latest\") return rest.trim();\n const selectionText =\n selection.kind === \"index\"\n ? String(selection.index)\n : selection.kind === \"proposal\"\n ? escapeRegExp(selection.proposalId)\n : selection.kind === \"intent\"\n ? escapeRegExp(selection.intentId)\n : Object.keys(DOMAIN_ALIASES).join(\"|\");\n const pattern = new RegExp(`^\\\\s*(?:${selectionText})\\\\b\\\\s*`, \"i\");\n const stripped = rest.replace(pattern, \"\").trim();\n return stripped.length > 0 ? stripped : undefined;\n}\n\nexport function parseThreadActionCommand(rawText: string): ThreadActionCommand | null {\n const text = rawText.trim();\n if (!text) return null;\n\n for (const candidate of CHINESE_VERBS) {\n const match = text.match(candidate.pattern);\n if (!match) continue;\n const verbText = match[0] ?? \"\";\n const rest = text.slice(verbText.length).trim();\n const selection = parseSelection(rest.split(/\\s+/u));\n const reason = reasonAfterSelection(rest, selection);\n return {\n verb: candidate.verb,\n selection,\n rawText: text,\n ...(reason ? { reason } : {})\n };\n }\n\n const [verbTokenRaw = \"\", ...restTokens] = text.split(/\\s+/u);\n const verbToken = normalizeToken(verbTokenRaw).toLowerCase();\n const verb = ENGLISH_VERBS[verbToken];\n if (!verb) return null;\n const rest = restTokens.join(\" \");\n const selection = parseSelection(restTokens);\n const reason = reasonAfterSelection(rest, selection);\n return {\n verb,\n selection,\n rawText: text,\n ...(reason ? { reason } : {})\n };\n}\n\nexport function suggestedActionCandidatesFromSnapshots(\n snapshots: SuggestedChangesSnapshot[],\n startIndex = 1\n): SuggestedActionCandidate[] {\n const candidates: SuggestedActionCandidate[] = [];\n let index = startIndex;\n for (const snapshot of snapshots) {\n for (const intent of snapshot.intents) {\n candidates.push({\n index,\n proposalId: snapshot.proposalId,\n proposalSummary: snapshot.summary,\n ...(snapshot.preconditions?.length ? { proposalPreconditions: snapshot.preconditions } : {}),\n intent\n });\n index += 1;\n }\n }\n return candidates;\n}\n\nexport function suggestedActionCandidatesFromResult(result: OpenTagRunResult): SuggestedActionCandidate[] {\n return suggestedActionCandidatesFromSnapshots(result.suggestedChanges ?? []);\n}\n\nfunction defaultActionTargetLabel(intent: MutationIntent): string {\n if (intent.action === \"create_pull_request\") return \"GitHub pull request\";\n if (intent.domain === \"labels\") return \"GitHub labels\";\n if (intent.domain === \"assignee\" || intent.domain === \"assignees\") return \"GitHub assignees\";\n if (intent.domain === \"review\") return \"GitHub review request\";\n if (intent.domain === \"artifact_links\") return \"Artifact link\";\n if (intent.domain === \"follow_up\") return \"OpenTag follow-up run\";\n return `${intent.domain} / ${intent.action}`;\n}\n\nfunction defaultVisibleDecisionsForState(state: ActionReceiptState): ActionReceiptDecision[] {\n if (state === \"ready_to_apply\") return [\"apply\", \"reject\"];\n if (state === \"needs_approval\") return [\"approve\", \"reject\"];\n if (state === \"needs_setup\") return [\"continue\", \"reject\"];\n return [\"continue\", \"reject\"];\n}\n\nfunction defaultPrimaryDecisionForState(state: ActionReceiptState): ActionReceiptPrimaryDecision {\n if (state === \"ready_to_apply\") return \"apply\";\n if (state === \"needs_setup\" || state === \"unsupported\") return \"continue\";\n return \"none\";\n}\n\nexport function actionReceiptHeading(receipts: ActionReceipt[]): string {\n const states = new Set(receipts.map((receipt) => receipt.state));\n if (states.size === 1 && states.has(\"ready_to_apply\")) return \"Ready to apply\";\n if (states.size > 1) return mixedActionReceiptHeading(receipts);\n if (states.has(\"needs_setup\")) return \"Needs setup\";\n if (states.has(\"unsupported\")) return \"Needs attention\";\n return \"Needs approval\";\n}\n\nfunction countedActionPhrase(count: number, singular: string, plural: string): string {\n return `${count} ${count === 1 ? \"action\" : \"actions\"} ${count === 1 ? singular : plural}`;\n}\n\nfunction mixedActionReceiptHeading(receipts: ActionReceipt[]): string {\n const counts: Record<ActionReceiptState, number> = {\n ready_to_apply: 0,\n needs_approval: 0,\n needs_setup: 0,\n unsupported: 0\n };\n for (const receipt of receipts) {\n counts[receipt.state] += 1;\n }\n return [\n counts.ready_to_apply > 0 ? countedActionPhrase(counts.ready_to_apply, \"ready to apply\", \"ready to apply\") : undefined,\n counts.needs_setup > 0 ? countedActionPhrase(counts.needs_setup, \"needs setup\", \"need setup\") : undefined,\n counts.needs_approval > 0 ? countedActionPhrase(counts.needs_approval, \"needs approval\", \"need approval\") : undefined,\n counts.unsupported > 0 ? countedActionPhrase(counts.unsupported, \"needs attention\", \"need attention\") : undefined\n ]\n .filter((phrase): phrase is string => Boolean(phrase))\n .join(\", \");\n}\n\nexport function buildActionReceipt(candidate: SuggestedActionCandidate, context: ActionReceiptContext = {}): ActionReceipt {\n const capability = context.capabilityByIntentId?.[candidate.intent.intentId];\n const state = capability?.state ?? \"needs_approval\";\n return {\n candidate,\n state,\n targetLabel: capability?.targetLabel ?? defaultActionTargetLabel(candidate.intent),\n ...(capability?.setupReason ? { setupReason: capability.setupReason } : {}),\n visibleDecisions: capability?.visibleDecisions ?? defaultVisibleDecisionsForState(state),\n primaryDecision: capability?.primaryDecision ?? defaultPrimaryDecisionForState(state)\n };\n}\n\nexport function buildActionReceiptsFromResult(result: OpenTagRunResult, context: ActionReceiptContext = {}): ActionReceipt[] {\n return suggestedActionCandidatesFromResult(result).map((candidate) => buildActionReceipt(candidate, context));\n}\n","export type OpenTagPlatformId = \"github\" | \"gitlab\" | \"slack\" | \"lark\" | \"telegram\";\n\nexport type PlatformLivenessStrategy = \"source_receipt\" | \"status_update\" | \"thread_reply\" | \"pull_status\";\n\nexport type PlatformCapabilityDescriptor = {\n id: OpenTagPlatformId;\n receivesEvents: boolean;\n repliesToSourceThread: boolean;\n supportsStatusUpdates: boolean;\n supportsRichPresentation: boolean;\n supportsActionReplies: boolean;\n requiresExplicitAddressing: boolean;\n livenessStrategy: PlatformLivenessStrategy;\n};\n\nexport const OPEN_TAG_PLATFORM_CAPABILITIES: Record<OpenTagPlatformId, PlatformCapabilityDescriptor> = {\n github: {\n id: \"github\",\n receivesEvents: true,\n repliesToSourceThread: true,\n supportsStatusUpdates: true,\n supportsRichPresentation: false,\n supportsActionReplies: true,\n requiresExplicitAddressing: true,\n livenessStrategy: \"status_update\"\n },\n gitlab: {\n id: \"gitlab\",\n receivesEvents: true,\n repliesToSourceThread: true,\n supportsStatusUpdates: false,\n supportsRichPresentation: false,\n supportsActionReplies: true,\n requiresExplicitAddressing: true,\n livenessStrategy: \"thread_reply\"\n },\n slack: {\n id: \"slack\",\n receivesEvents: true,\n repliesToSourceThread: true,\n supportsStatusUpdates: true,\n supportsRichPresentation: true,\n supportsActionReplies: true,\n requiresExplicitAddressing: true,\n livenessStrategy: \"source_receipt\"\n },\n lark: {\n id: \"lark\",\n receivesEvents: true,\n repliesToSourceThread: true,\n supportsStatusUpdates: false,\n supportsRichPresentation: true,\n supportsActionReplies: false,\n requiresExplicitAddressing: true,\n livenessStrategy: \"thread_reply\"\n },\n telegram: {\n id: \"telegram\",\n receivesEvents: true,\n repliesToSourceThread: true,\n supportsStatusUpdates: false,\n supportsRichPresentation: false,\n supportsActionReplies: false,\n requiresExplicitAddressing: false,\n livenessStrategy: \"thread_reply\"\n }\n};\n\nexport function isOpenTagPlatformId(value: string): value is OpenTagPlatformId {\n return Object.prototype.hasOwnProperty.call(OPEN_TAG_PLATFORM_CAPABILITIES, value);\n}\n\nexport function platformCapabilityForProvider(provider: string): PlatformCapabilityDescriptor | undefined {\n return isOpenTagPlatformId(provider) ? OPEN_TAG_PLATFORM_CAPABILITIES[provider] : undefined;\n}\n\nexport function shouldDeliverCallbackRunStatus(provider: string): boolean {\n const strategy = platformCapabilityForProvider(provider)?.livenessStrategy;\n if (!strategy) return true;\n return strategy === \"status_update\" || strategy === \"thread_reply\";\n}\n\nexport function shouldDeliverCallbackProgress(provider: string): boolean {\n const strategy = platformCapabilityForProvider(provider)?.livenessStrategy;\n if (!strategy) return true;\n return strategy === \"status_update\";\n}\n\nexport function shouldDeliverSourceReceipt(provider: string): boolean {\n return platformCapabilityForProvider(provider)?.livenessStrategy === \"source_receipt\";\n}\n","import { zodToJsonSchema } from \"zod-to-json-schema\";\nimport {\n ActionHintSchema,\n AdapterMutationMappingSchema,\n ApplyIntentOutcomeSchema,\n ApplyPlanSchema,\n ApprovalDecisionSchema,\n ArtifactKindSchema,\n CapabilityContractSchema,\n CanonicalMutationDomainSchema,\n ContextPacketSchema,\n ConversationAnchorSchema,\n FollowUpRequestSchema,\n MutationIntentSchema,\n OpenTagEventSchema,\n OpenTagRunResultSchema,\n OpenTagRunSchema,\n ProposalLineageSchema,\n RunAdmissionDecisionSchema,\n RunEventImportanceSchema,\n RunEventSchema,\n RunEventVisibilitySchema,\n PolicyResolutionSchema,\n SuggestedChangesSnapshotSchema,\n SuccessMetricNameSchema,\n WorkItemReferenceSchema,\n WorkThreadSchema\n} from \"./schema.js\";\n\nexport const OpenTagJsonSchemas = {\n OpenTagEvent: zodToJsonSchema(OpenTagEventSchema, \"OpenTagEvent\"),\n OpenTagRun: zodToJsonSchema(OpenTagRunSchema, \"OpenTagRun\"),\n OpenTagRunResult: zodToJsonSchema(OpenTagRunResultSchema, \"OpenTagRunResult\"),\n RunAdmissionDecision: zodToJsonSchema(RunAdmissionDecisionSchema, \"RunAdmissionDecision\"),\n FollowUpRequest: zodToJsonSchema(FollowUpRequestSchema, \"FollowUpRequest\"),\n WorkItemReference: zodToJsonSchema(WorkItemReferenceSchema, \"WorkItemReference\"),\n ConversationAnchor: zodToJsonSchema(ConversationAnchorSchema, \"ConversationAnchor\"),\n WorkThread: zodToJsonSchema(WorkThreadSchema, \"WorkThread\"),\n ContextPacket: zodToJsonSchema(ContextPacketSchema, \"ContextPacket\"),\n RunEventVisibility: zodToJsonSchema(RunEventVisibilitySchema, \"RunEventVisibility\"),\n RunEventImportance: zodToJsonSchema(RunEventImportanceSchema, \"RunEventImportance\"),\n RunEvent: zodToJsonSchema(RunEventSchema, \"RunEvent\"),\n ArtifactKind: zodToJsonSchema(ArtifactKindSchema, \"ArtifactKind\"),\n AdapterMutationMapping: zodToJsonSchema(AdapterMutationMappingSchema, \"AdapterMutationMapping\"),\n CapabilityContract: zodToJsonSchema(CapabilityContractSchema, \"CapabilityContract\"),\n PolicyResolution: zodToJsonSchema(PolicyResolutionSchema, \"PolicyResolution\"),\n ProposalLineage: zodToJsonSchema(ProposalLineageSchema, \"ProposalLineage\"),\n SuccessMetricName: zodToJsonSchema(SuccessMetricNameSchema, \"SuccessMetricName\"),\n ActionHint: zodToJsonSchema(ActionHintSchema, \"ActionHint\"),\n CanonicalMutationDomain: zodToJsonSchema(CanonicalMutationDomainSchema, \"CanonicalMutationDomain\"),\n MutationIntent: zodToJsonSchema(MutationIntentSchema, \"MutationIntent\"),\n SuggestedChangesSnapshot: zodToJsonSchema(SuggestedChangesSnapshotSchema, \"SuggestedChangesSnapshot\"),\n ApprovalDecision: zodToJsonSchema(ApprovalDecisionSchema, \"ApprovalDecision\"),\n ApplyPlan: zodToJsonSchema(ApplyPlanSchema, \"ApplyPlan\"),\n ApplyIntentOutcome: zodToJsonSchema(ApplyIntentOutcomeSchema, \"ApplyIntentOutcome\")\n} as const;\n","import { z } from \"zod\";\n\nexport const ProviderSchema = z.string().min(1);\nexport const SourceSchema = ProviderSchema;\nexport const ContextPointerKindSchema = z.string().min(1).refine((kind) => !kind.includes(\".\"), {\n message: \"Context pointer kind must not include a provider prefix; use the provider field instead.\"\n});\nexport const ExecutorHintSchema = z.enum([\"claude-code\", \"codex\", \"hermes\", \"openclaw\", \"custom\"]);\nexport const PermissionScopeSchema = z.string().min(1);\nexport const CommandArgValueSchema = z.union([z.string(), z.boolean(), z.number()]);\nexport const CommandFlagValueSchema = z.union([CommandArgValueSchema, z.array(CommandArgValueSchema)]);\n\nexport const CommandReferenceSchema = z.object({\n kind: z.enum([\"file\", \"path\", \"line\", \"range\", \"url\", \"text\"]),\n uri: z.string().min(1),\n line: z.number().int().positive().optional(),\n startLine: z.number().int().positive().optional(),\n endLine: z.number().int().positive().optional(),\n title: z.string().min(1).optional()\n});\n\nexport const CommandParseDiagnosticSchema = z.object({\n level: z.enum([\"warning\", \"error\"]),\n code: z.string().min(1),\n message: z.string().min(1),\n token: z.string().min(1).optional()\n});\n\nexport const ParsedOpenTagCommandSchema = z.object({\n version: z.literal(\"v1\"),\n prompt: z.string(),\n flags: z.record(CommandFlagValueSchema),\n references: z.array(CommandReferenceSchema),\n requestedScopes: z.array(PermissionScopeSchema),\n approval: z.enum([\"auto\", \"required\", \"never\"]).optional(),\n network: z.enum([\"restricted\"]).optional(),\n executorHint: ExecutorHintSchema.optional(),\n diagnostics: z.array(CommandParseDiagnosticSchema)\n});\n\nexport const ActorIdentitySchema = z.object({\n provider: ProviderSchema,\n providerUserId: z.string().min(1),\n handle: z.string().min(1).optional(),\n displayName: z.string().min(1).optional(),\n organizationId: z.string().min(1).optional()\n});\n\nexport const AgentTargetSchema = z.object({\n mention: z.string().min(1),\n agentId: z.string().min(1),\n executorHint: ExecutorHintSchema.optional(),\n workspaceHint: z.string().min(1).optional()\n});\n\nexport const OpenTagCommandSchema = z.object({\n rawText: z.string(),\n intent: z.enum([\"fix\", \"review\", \"investigate\", \"explain\", \"run\", \"unknown\"]),\n args: z.record(CommandArgValueSchema),\n parsed: ParsedOpenTagCommandSchema.optional()\n});\n\nexport const ContextPointerSchema = z.object({\n provider: ProviderSchema.optional(),\n kind: ContextPointerKindSchema,\n uri: z.string().min(1),\n line: z.number().int().positive().optional(),\n startLine: z.number().int().positive().optional(),\n endLine: z.number().int().positive().optional(),\n title: z.string().min(1).optional(),\n visibility: z.enum([\"public\", \"private\", \"organization\"])\n});\n\nexport const ContextPacketAssemblyStageSchema = z.enum([\"collect\", \"classify\", \"filter\", \"preserve\", \"summarize\", \"budget\", \"emit\"]);\n\nexport const ContextPacketIntentSchema = z.object({\n rawText: z.string().min(1),\n normalizedIntent: z.string().min(1),\n requestedBy: ActorIdentitySchema\n});\n\nexport const ContextPacketSourceRoleSchema = z.enum([\"primary\", \"supporting\", \"background\"]);\n\nexport const ContextPacketSourceSchema = z.object({\n pointer: ContextPointerSchema,\n role: ContextPacketSourceRoleSchema,\n included: z.boolean(),\n reason: z.string().min(1)\n});\n\nexport const ContextPacketFactConfidenceSchema = z.enum([\"observed\", \"inferred\", \"uncertain\"]);\n\nexport const ContextPacketSchema = z.object({\n summary: z.string().min(1),\n sourcePointers: z.array(ContextPointerSchema),\n intent: ContextPacketIntentSchema.optional(),\n sources: z.array(ContextPacketSourceSchema).optional(),\n facts: z\n .array(\n z.object({\n text: z.string().min(1),\n sourceUri: z.string().min(1).optional(),\n source: ContextPointerSchema.optional(),\n confidence: ContextPacketFactConfidenceSchema.optional()\n })\n )\n .optional(),\n risks: z.array(z.string().min(1)).optional(),\n exclusions: z.array(z.string().min(1)).optional(),\n mustPreserve: z.array(z.string().min(1)).optional(),\n redactions: z\n .array(\n z.object({\n reason: z.string().min(1),\n sourceUri: z.string().min(1).optional()\n })\n )\n .optional(),\n assembly: z\n .object({\n stages: z.array(ContextPacketAssemblyStageSchema),\n budgetTokens: z.number().int().positive().optional(),\n emittedAt: z.string().datetime().optional()\n })\n .optional()\n});\n\nexport const PermissionGrantSchema = z.object({\n scope: PermissionScopeSchema,\n reason: z.string().min(1),\n expiresAt: z.string().datetime().optional()\n});\n\nexport const CapabilityClassSchema = z.enum([\"read_only\", \"callback\", \"external_write\"]);\n\nexport const CapabilityContractSchema = z.object({\n id: z.string().min(1),\n semanticAction: z.string().min(1),\n capabilityClass: CapabilityClassSchema,\n requiresExplicitIntent: z.boolean(),\n mayAutoApplyByPolicy: z.boolean(),\n adapterTargets: z.array(z.string().min(1)).optional(),\n requiredPermissionScopes: z.array(PermissionGrantSchema.shape.scope),\n requiredExecutorConditions: z.array(z.string().min(1)).optional()\n});\n\nexport const PolicyScopeSchema = z.enum([\n \"organization_default\",\n \"adapter_surface_default\",\n \"work_context_owner_container\",\n \"work_item_override\",\n \"primary_anchor_override\"\n]);\n\nexport const PolicyEffectSchema = z.enum([\"allow\", \"deny\"]);\n\nexport const PolicyRuleSchema = z.object({\n id: z.string().min(1),\n scope: PolicyScopeSchema,\n effect: PolicyEffectSchema,\n capabilityId: z.string().min(1).optional(),\n mutationDomain: z.string().min(1).optional(),\n reason: z.string().min(1)\n});\n\nexport const PolicyResolutionSchema = z.object({\n capabilityId: z.string().min(1),\n decision: PolicyEffectSchema,\n resolvedBy: PolicyScopeSchema,\n rules: z.array(PolicyRuleSchema),\n reason: z.string().min(1)\n});\n\nexport const AdapterMutationMappingSchema = z.object({\n id: z.string().min(1),\n adapter: z.string().min(1),\n domain: z.string().min(1),\n strategy: z.string().min(1),\n values: z.record(z.string().min(1)),\n description: z.string().min(1).optional()\n});\n\nexport const SuccessMetricNameSchema = z.enum([\n \"time_to_first_useful_artifact\",\n \"thread_noise_ratio\",\n \"artifact_acceptance_rate\",\n \"context_reuse_rate\",\n \"external_write_approval_rate\",\n \"stale_proposal_rate\"\n]);\n\nexport const CallbackRouteSchema = z.object({\n provider: ProviderSchema,\n uri: z.string().min(1),\n threadKey: z.string().min(1).optional()\n});\n\nexport const WorkItemReferenceSchema = z.object({\n provider: z.string().min(1),\n kind: z.string().min(1),\n externalId: z.string().min(1),\n uri: z.string().min(1),\n title: z.string().min(1).optional(),\n ownerContainer: z\n .object({\n provider: z.string().min(1),\n id: z.string().min(1),\n uri: z.string().min(1).optional()\n })\n .optional(),\n metadata: z.record(z.unknown()).optional()\n});\n\nexport const ConversationAnchorSchema = z.object({\n provider: ProviderSchema,\n kind: z.string().min(1),\n externalId: z.string().min(1),\n uri: z.string().min(1),\n threadKey: z.string().min(1).optional(),\n controlPlane: z.boolean().optional(),\n canApprove: z.boolean().optional(),\n metadata: z.record(z.unknown()).optional()\n});\n\nexport const WorkThreadSchema = z.object({\n id: z.string().min(1).optional(),\n workItemReference: WorkItemReferenceSchema,\n primaryAnchor: ConversationAnchorSchema,\n secondaryAnchors: z.array(ConversationAnchorSchema).optional()\n});\n\nexport const RunAdmissionActionSchema = z.enum([\n \"start\",\n \"drop_duplicate\",\n \"queue_follow_up\",\n \"attach_to_active_run\",\n \"needs_human_decision\"\n]);\n\nexport const RunAdmissionReasonCodeSchema = z.enum([\n \"new_event\",\n \"duplicate_source_event\",\n \"duplicate_source_delivery\",\n \"active_run_same_thread\",\n \"active_write_run_same_thread\",\n \"scope_change_requires_decision\",\n \"policy_rejected\",\n \"repo_context_missing\",\n \"repo_not_bound\",\n \"actor_not_allowed_for_write\",\n \"agent_access_profile_denied\"\n]);\n\nexport const RunAdmissionDecisionSchema = z.object({\n action: RunAdmissionActionSchema,\n reason: z.string().min(1),\n reasonCode: RunAdmissionReasonCodeSchema,\n decidedAt: z.string().datetime(),\n activeRunId: z.string().min(1).optional(),\n eventId: z.string().min(1).optional()\n});\n\nexport const FollowUpRequestStatusSchema = z.enum([\"queued\", \"promoting\", \"promoted\", \"cancelled\"]);\n\nexport const FollowUpRequestSchema = z.object({\n id: z.string().min(1),\n sourceEventId: z.string().min(1),\n conversationKey: z.string().min(1),\n activeRunId: z.string().min(1).optional(),\n event: z.lazy(() => OpenTagEventSchema),\n decision: RunAdmissionDecisionSchema,\n status: FollowUpRequestStatusSchema,\n createdRunId: z.string().min(1).optional(),\n createdAt: z.string().datetime(),\n updatedAt: z.string().datetime()\n});\n\nexport const RunEventVisibilitySchema = z.enum([\"human\", \"audit\", \"debug\"]);\nexport const RunEventImportanceSchema = z.enum([\"low\", \"normal\", \"high\", \"blocking\"]);\n\nexport const RunEventSchema = z.object({\n id: z.union([z.string().min(1), z.number().int().nonnegative()]).optional(),\n runId: z.string().min(1),\n type: z.string().min(1),\n createdAt: z.string().datetime(),\n visibility: RunEventVisibilitySchema,\n importance: RunEventImportanceSchema,\n message: z.string().min(1).optional(),\n payload: z.unknown().optional(),\n sourcePointer: ContextPointerSchema.optional()\n});\n\nexport const ArtifactKindSchema = z.enum([\n \"root_cause_note\",\n \"suggested_changes_snapshot\",\n \"verification_summary\",\n \"patch\",\n \"pull_request\",\n \"risk_note\",\n \"follow_up_task\",\n \"audit_trail\",\n \"decision_record\"\n]);\n\nexport const ActionHintSchema = z.object({\n kind: z.enum([\n \"apply_suggested_changes\",\n \"generate_patch\",\n \"request_human_decision\",\n \"link_to_work_item\",\n \"request_review\",\n \"create_pull_request\",\n \"none\"\n ]),\n targetId: z.string().min(1).optional(),\n selectedIntentIds: z.array(z.string().min(1)).optional(),\n metadata: z.record(z.unknown()).optional()\n});\n\nexport const NextActionSchema = z.union([\n z.string().min(1),\n z.object({\n summary: z.string().min(1),\n hint: ActionHintSchema\n })\n]);\n\nexport const CanonicalMutationDomainSchema = z.enum([\n \"status\",\n \"assignee\",\n \"priority\",\n \"labels\",\n \"schedule\",\n \"review\",\n \"artifact_links\",\n \"pull_request\"\n]);\n\nexport const MutationIntentSchema = z.object({\n intentId: z.string().min(1),\n domain: z.union([CanonicalMutationDomainSchema, z.string().min(1)]),\n action: z.string().min(1),\n summary: z.string().min(1),\n params: z.record(z.unknown()).optional(),\n supersedesIntentIds: z.array(z.string().min(1)).optional(),\n sourcePointer: ContextPointerSchema.optional()\n});\n\nexport const SuggestedChangesSnapshotSchema = z.object({\n proposalId: z.string().min(1),\n createdAt: z.string().datetime(),\n sourceRunId: z.string().min(1).optional(),\n workThread: WorkThreadSchema.optional(),\n summary: z.string().min(1),\n intents: z.array(MutationIntentSchema).min(1),\n preconditions: z.array(z.string().min(1)).optional(),\n supersedesProposalIds: z.array(z.string().min(1)).optional(),\n metadata: z.record(z.unknown()).optional()\n});\n\nexport const MutationIntentActionabilitySchema = z.object({\n proposalId: z.string().min(1),\n intentId: z.string().min(1),\n domain: z.union([CanonicalMutationDomainSchema, z.string().min(1)]),\n status: z.enum([\"current\", \"superseded\", \"stale\", \"conflicted\"]),\n supersededByProposalId: z.string().min(1).optional(),\n supersededByIntentId: z.string().min(1).optional(),\n reason: z.string().min(1).optional()\n});\n\nexport const ProposalLineageSchema = z.object({\n scopeKey: z.string().min(1),\n entries: z.array(MutationIntentActionabilitySchema)\n});\n\nexport const ApprovalDecisionSchema = z.object({\n id: z.string().min(1),\n proposalId: z.string().min(1),\n approvedIntentIds: z.array(z.string().min(1)),\n rejectedIntentIds: z.array(z.string().min(1)).optional(),\n approvedBy: ActorIdentitySchema,\n approvedAt: z.string().datetime(),\n scope: z.enum([\"manual\", \"policy\"]),\n reason: z.string().min(1).optional(),\n metadata: z.record(z.unknown()).optional()\n});\n\nexport const ApplyIntentOutcomeSchema = z.object({\n intentId: z.string().min(1),\n outcome: z.enum([\"applied\", \"skipped\", \"failed\", \"stale\", \"unsupported\"]),\n message: z.string().min(1).optional(),\n externalUri: z.string().min(1).optional(),\n error: z.string().min(1).optional()\n});\n\nexport const ApplyPlanSchema = z.object({\n id: z.string().min(1),\n proposalId: z.string().min(1),\n approvalDecisionId: z.string().min(1),\n selectedIntentIds: z.array(z.string().min(1)),\n mode: z.enum([\"preflight_then_per_intent\", \"atomic\"]).default(\"preflight_then_per_intent\"),\n adapter: z.string().min(1).optional(),\n adapterPlan: z.unknown().optional(),\n outcomes: z.array(ApplyIntentOutcomeSchema).optional()\n});\n\nexport const OpenTagEventSchema = z.object({\n id: z.string().min(1),\n source: SourceSchema,\n sourceEventId: z.string().min(1),\n receivedAt: z.string().datetime(),\n actor: ActorIdentitySchema,\n target: AgentTargetSchema,\n command: OpenTagCommandSchema,\n context: z.array(ContextPointerSchema),\n workItem: WorkItemReferenceSchema.optional(),\n permissions: z.array(PermissionGrantSchema),\n callback: CallbackRouteSchema,\n metadata: z.record(z.unknown())\n});\n\nexport const ResultArtifactSchema = z.object({\n kind: ArtifactKindSchema.optional(),\n title: z.string(),\n uri: z.string(),\n metadata: z.record(z.unknown()).optional()\n});\n\nexport const OpenTagRunResultSchema = z.object({\n conclusion: z.enum([\"success\", \"failure\", \"cancelled\", \"interrupted\", \"timed_out\", \"needs_human\"]),\n summary: z.string(),\n changedFiles: z.array(z.string()).optional(),\n createdPullRequestUrl: z.string().url().optional(),\n artifacts: z.array(ResultArtifactSchema).optional(),\n suggestedChanges: z.array(SuggestedChangesSnapshotSchema).optional(),\n approvalDecision: ApprovalDecisionSchema.optional(),\n applyPlan: ApplyPlanSchema.optional(),\n verification: z\n .array(\n z.object({\n command: z.string(),\n outcome: z.enum([\"passed\", \"failed\", \"not_run\"]),\n excerpt: z.string().optional()\n })\n )\n .optional(),\n nextAction: NextActionSchema.optional()\n});\n\nexport const OpenTagRunSchema = z.object({\n id: z.string().min(1),\n eventId: z.string().min(1),\n status: z.enum([\"queued\", \"assigned\", \"running\", \"needs_approval\", \"succeeded\", \"failed\", \"cancelled\", \"interrupted\", \"timed_out\"]),\n thread: WorkThreadSchema.optional(),\n parentRunId: z.string().min(1).optional(),\n triggeredByAction: ActionHintSchema.optional(),\n sourceProposalId: z.string().min(1).optional(),\n sourceApplyPlanId: z.string().min(1).optional(),\n contextPacket: ContextPacketSchema.optional(),\n assignedRunnerId: z.string().min(1).optional(),\n executor: z.string().min(1).optional(),\n createdAt: z.string().datetime(),\n updatedAt: z.string().datetime(),\n result: OpenTagRunResultSchema.optional()\n});\n\nexport type ActorIdentity = z.infer<typeof ActorIdentitySchema>;\nexport type AgentTarget = z.infer<typeof AgentTargetSchema>;\nexport type OpenTagCommand = z.infer<typeof OpenTagCommandSchema>;\nexport type ParsedOpenTagCommand = z.infer<typeof ParsedOpenTagCommandSchema>;\nexport type CommandParseDiagnostic = z.infer<typeof CommandParseDiagnosticSchema>;\nexport type CommandReference = z.infer<typeof CommandReferenceSchema>;\nexport type ContextPointer = z.infer<typeof ContextPointerSchema>;\nexport type ContextPacketAssemblyStage = z.infer<typeof ContextPacketAssemblyStageSchema>;\nexport type ContextPacketIntent = z.infer<typeof ContextPacketIntentSchema>;\nexport type ContextPacketSourceRole = z.infer<typeof ContextPacketSourceRoleSchema>;\nexport type ContextPacketSource = z.infer<typeof ContextPacketSourceSchema>;\nexport type ContextPacketFactConfidence = z.infer<typeof ContextPacketFactConfidenceSchema>;\nexport type ContextPacket = z.infer<typeof ContextPacketSchema>;\nexport type PermissionGrant = z.infer<typeof PermissionGrantSchema>;\nexport type CapabilityClass = z.infer<typeof CapabilityClassSchema>;\nexport type CapabilityContract = z.infer<typeof CapabilityContractSchema>;\nexport type PolicyScope = z.infer<typeof PolicyScopeSchema>;\nexport type PolicyEffect = z.infer<typeof PolicyEffectSchema>;\nexport type PolicyRule = z.infer<typeof PolicyRuleSchema>;\nexport type PolicyResolution = z.infer<typeof PolicyResolutionSchema>;\nexport type AdapterMutationMapping = z.infer<typeof AdapterMutationMappingSchema>;\nexport type SuccessMetricName = z.infer<typeof SuccessMetricNameSchema>;\nexport type CallbackRoute = z.infer<typeof CallbackRouteSchema>;\nexport type WorkItemReference = z.infer<typeof WorkItemReferenceSchema>;\nexport type ConversationAnchor = z.infer<typeof ConversationAnchorSchema>;\nexport type WorkThread = z.infer<typeof WorkThreadSchema>;\nexport type RunAdmissionAction = z.infer<typeof RunAdmissionActionSchema>;\nexport type RunAdmissionReasonCode = z.infer<typeof RunAdmissionReasonCodeSchema>;\nexport type RunAdmissionDecision = z.infer<typeof RunAdmissionDecisionSchema>;\nexport type FollowUpRequestStatus = z.infer<typeof FollowUpRequestStatusSchema>;\nexport type FollowUpRequest = z.infer<typeof FollowUpRequestSchema>;\nexport type RunEventVisibility = z.infer<typeof RunEventVisibilitySchema>;\nexport type RunEventImportance = z.infer<typeof RunEventImportanceSchema>;\nexport type RunEvent = z.infer<typeof RunEventSchema>;\nexport type ArtifactKind = z.infer<typeof ArtifactKindSchema>;\nexport type ActionHint = z.infer<typeof ActionHintSchema>;\nexport type NextAction = z.infer<typeof NextActionSchema>;\nexport type CanonicalMutationDomain = z.infer<typeof CanonicalMutationDomainSchema>;\nexport type MutationIntent = z.infer<typeof MutationIntentSchema>;\nexport type SuggestedChangesSnapshot = z.infer<typeof SuggestedChangesSnapshotSchema>;\nexport type MutationIntentActionability = z.infer<typeof MutationIntentActionabilitySchema>;\nexport type ProposalLineage = z.infer<typeof ProposalLineageSchema>;\nexport type ApprovalDecision = z.infer<typeof ApprovalDecisionSchema>;\nexport type ApplyIntentOutcome = z.infer<typeof ApplyIntentOutcomeSchema>;\nexport type ApplyPlan = z.infer<typeof ApplyPlanSchema>;\nexport type ResultArtifact = z.infer<typeof ResultArtifactSchema>;\nexport type OpenTagEvent = z.infer<typeof OpenTagEventSchema>;\nexport type OpenTagRun = z.infer<typeof OpenTagRunSchema>;\nexport type OpenTagRunResult = z.infer<typeof OpenTagRunResultSchema>;\n","import type {\n AgentTarget,\n CommandParseDiagnostic,\n CommandReference,\n OpenTagCommand,\n PermissionGrant\n} from \"./schema.js\";\n\ntype MentionMatch = { matched: false } | ({ matched: true } & OpenTagCommand);\ntype KnownIntent = Exclude<OpenTagCommand[\"intent\"], \"unknown\">;\ntype CommandArgValue = OpenTagCommand[\"args\"][string];\ntype CommandFlagValue = CommandArgValue | CommandArgValue[];\n\nconst INTENTS: KnownIntent[] = [\"fix\", \"review\", \"investigate\", \"explain\", \"run\"];\nconst KNOWN_FLAGS = new Set([\n \"approval\",\n \"executor\",\n \"file\",\n \"label\",\n \"line\",\n \"network\",\n \"path\",\n \"range\",\n \"runner\",\n \"scope\",\n \"timeout\",\n \"url\"\n]);\nconst SINGLE_VALUE_FLAGS = new Set([\"approval\", \"executor\", \"line\", \"network\", \"range\", \"runner\", \"timeout\"]);\nconst APPROVAL_VALUES = new Set<NonNullable<NonNullable<OpenTagCommand[\"parsed\"]>[\"approval\"]>>([\"auto\", \"required\", \"never\"]);\nconst EXECUTOR_HINTS = new Set<AgentTarget[\"executorHint\"]>([\"claude-code\", \"codex\", \"hermes\", \"openclaw\", \"custom\"]);\nconst PERMISSION_SCOPES = new Set<PermissionGrant[\"scope\"]>([\n \"repo:read\",\n \"repo:write\",\n \"issue:comment\",\n \"chat:postMessage\",\n \"reactions:write\",\n \"pr:create\",\n \"pr:update\",\n \"runner:local\",\n \"network:restricted\"\n]);\n\nexport function commandFromRawText(rawText: string): OpenTagCommand {\n const normalizedRawText = rawText.trim();\n const parsed = parseCommandText(normalizedRawText);\n\n return {\n rawText: normalizedRawText,\n intent: parsed.intent,\n args: parsed.args,\n parsed: parsed.command\n };\n}\n\nexport function parseOpenTagMention(body: string, mention = \"@opentag\"): MentionMatch {\n const escaped = mention.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n const pattern = new RegExp(`${escaped}(?=[\\\\s:,.!?]|$)`, \"i\");\n const match = body.match(pattern);\n\n if (typeof match?.index !== \"number\") {\n return { matched: false };\n }\n\n const rawText = extractCommandText(body.slice(match.index + match[0].length), mention);\n if (!rawText) {\n return { matched: false };\n }\n\n return {\n matched: true,\n ...commandFromRawText(rawText)\n };\n}\n\nfunction parseCommandText(rawText: string): { intent: OpenTagCommand[\"intent\"]; args: OpenTagCommand[\"args\"]; command: NonNullable<OpenTagCommand[\"parsed\"]> } {\n const diagnostics: CommandParseDiagnostic[] = [];\n const { tokens, diagnostics: tokenDiagnostics } = tokenizeCommand(rawText);\n diagnostics.push(...tokenDiagnostics);\n\n const firstToken = tokens[0]?.toLowerCase();\n const intent = firstToken && isKnownIntent(firstToken) ? firstToken : \"unknown\";\n const commandTokens = intent === \"unknown\" ? tokens : tokens.slice(1);\n const parsed = parseCommandTokens(commandTokens, diagnostics);\n const references = referencesFromFlags(parsed.flags, diagnostics);\n const requestedScopes = requestedScopesFromFlags(parsed.flags, diagnostics);\n const network = stringValuesForFlag(parsed.flags, \"network\")[0]?.toLowerCase();\n if (network && network !== \"restricted\") {\n diagnostics.push({\n level: \"warning\",\n code: \"invalid_network_policy\",\n message: `Unsupported network policy '${network}'. V1 only supports 'restricted'.`,\n token: network\n });\n }\n const approval = enumValueForFlag(parsed.flags, \"approval\", APPROVAL_VALUES, diagnostics);\n const executorHint = executorHintFromFlags(parsed.flags, diagnostics);\n const normalizedNetwork = network === \"restricted\" ? \"restricted\" : undefined;\n\n if (normalizedNetwork === \"restricted\" && !requestedScopes.includes(\"network:restricted\")) {\n requestedScopes.push(\"network:restricted\");\n }\n\n const args = argsFromParsed(parsed.prompt, parsed.flags);\n if (approval) {\n args.approval = approval;\n }\n if (normalizedNetwork) {\n args.network = normalizedNetwork;\n }\n if (executorHint) {\n args.executor = executorHint;\n }\n\n if (tokens.length === 0) {\n diagnostics.push({\n level: \"error\",\n code: \"empty_command\",\n message: \"The OpenTag command is empty.\"\n });\n }\n\n const command: NonNullable<OpenTagCommand[\"parsed\"]> = {\n version: \"v1\",\n prompt: parsed.prompt,\n flags: parsed.flags,\n references,\n requestedScopes,\n diagnostics\n };\n if (approval) {\n command.approval = approval;\n }\n if (normalizedNetwork) {\n command.network = normalizedNetwork;\n }\n if (executorHint) {\n command.executorHint = executorHint;\n }\n\n return { intent, args, command };\n}\n\nfunction extractCommandText(afterMention: string, mention: string): string | null {\n const normalized = afterMention.replace(/\\r\\n/g, \"\\n\").replace(/\\r/g, \"\\n\").replace(/^[ \\t]*[:,-]?[ \\t]*/, \"\");\n const [firstLineRaw = \"\", ...remainingLines] = normalized.split(\"\\n\");\n const firstLine = firstLineRaw.trim();\n\n if (firstLine.length > 0) {\n const lines = [stripContinuationMarker(firstLine)];\n if (shouldConsumeContinuation(firstLine, remainingLines)) {\n lines.push(...collectContinuationLines(remainingLines, mention));\n }\n return joinCommandLines(lines);\n }\n\n return joinCommandLines(collectContinuationLines(remainingLines, mention, true));\n}\n\nfunction shouldConsumeContinuation(firstLine: string, remainingLines: string[]): boolean {\n if (!remainingLines.some((line) => line.trim().length > 0)) {\n return false;\n }\n\n const nextNonBlank = remainingLines.find((line) => line.trim().length > 0)?.trim();\n return (\n firstLine.trimEnd().endsWith(\"\\\\\") ||\n nextNonBlank?.startsWith(\"--\") === true\n );\n}\n\nfunction collectContinuationLines(lines: string[], mention: string, skipLeadingBlank = false): string[] {\n const collected: string[] = [];\n let started = !skipLeadingBlank;\n const mentionPattern = new RegExp(`^${mention.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\")}(?=[\\\\s:,.!?]|$)`, \"i\");\n\n for (const line of lines) {\n const trimmed = line.trim();\n started = true;\n if (mentionPattern.test(trimmed)) {\n break;\n }\n collected.push(trimmed.length === 0 ? \"\" : stripContinuationMarker(trimmed));\n }\n\n return collected;\n}\n\nfunction stripContinuationMarker(line: string): string {\n return line.trimEnd().replace(/\\\\$/, \"\").trim();\n}\n\nfunction joinCommandLines(lines: string[]): string | null {\n const joined = lines.join(\"\\n\").trim();\n return joined.length > 0 ? joined : null;\n}\n\nfunction tokenizeCommand(rawText: string): { tokens: string[]; diagnostics: CommandParseDiagnostic[] } {\n const tokens: string[] = [];\n const diagnostics: CommandParseDiagnostic[] = [];\n let current = \"\";\n let quote: '\"' | \"'\" | null = null;\n let escaped = false;\n\n for (const char of rawText) {\n if (escaped) {\n current += char;\n escaped = false;\n continue;\n }\n\n if (char === \"\\\\\") {\n escaped = true;\n continue;\n }\n\n if (quote) {\n if (char === quote) {\n quote = null;\n } else {\n current += char;\n }\n continue;\n }\n\n if (char === '\"' || char === \"'\") {\n quote = char;\n continue;\n }\n\n if (/\\s/.test(char)) {\n if (current.length > 0) {\n tokens.push(current);\n current = \"\";\n }\n continue;\n }\n\n current += char;\n }\n\n if (escaped) {\n current += \"\\\\\";\n }\n\n if (current.length > 0) {\n tokens.push(current);\n }\n\n if (quote) {\n diagnostics.push({\n level: \"warning\",\n code: \"unterminated_quote\",\n message: `Command contains an unterminated ${quote} quote.`\n });\n }\n\n return { tokens, diagnostics };\n}\n\nfunction parseCommandTokens(\n tokens: string[],\n diagnostics: CommandParseDiagnostic[]\n): { prompt: string; flags: Record<string, CommandFlagValue> } {\n const promptTokens: string[] = [];\n const flags: Record<string, CommandFlagValue> = {};\n\n for (let index = 0; index < tokens.length; index += 1) {\n const token = tokens[index];\n if (!token) continue;\n\n if (!token.startsWith(\"--\") || token === \"--\") {\n promptTokens.push(token);\n continue;\n }\n\n const withoutPrefix = token.slice(2);\n const equalsIndex = withoutPrefix.indexOf(\"=\");\n const rawName = equalsIndex >= 0 ? withoutPrefix.slice(0, equalsIndex) : withoutPrefix;\n const name = normalizeFlagName(rawName);\n if (!name) {\n diagnostics.push({\n level: \"warning\",\n code: \"empty_flag\",\n message: \"Command contains an empty flag name.\",\n token\n });\n continue;\n }\n\n if (!KNOWN_FLAGS.has(name)) {\n diagnostics.push({\n level: \"warning\",\n code: \"unknown_flag\",\n message: `Unknown OpenTag command flag '--${name}'.`,\n token\n });\n }\n\n let value: CommandArgValue = true;\n if (equalsIndex >= 0) {\n value = parseFlagValue(withoutPrefix.slice(equalsIndex + 1));\n } else {\n const nextToken = tokens[index + 1];\n if (nextToken && !nextToken.startsWith(\"--\")) {\n value = parseFlagValue(nextToken);\n index += 1;\n }\n }\n\n if (flags[name] !== undefined && SINGLE_VALUE_FLAGS.has(name)) {\n diagnostics.push({\n level: \"warning\",\n code: \"duplicate_flag\",\n message: `Flag '--${name}' was provided more than once; later consumers should treat the last value as authoritative.`,\n token\n });\n }\n appendFlagValue(flags, name, value);\n }\n\n return { prompt: promptTokens.join(\" \").trim(), flags };\n}\n\nfunction normalizeFlagName(name: string): string {\n return name.trim().toLowerCase();\n}\n\nfunction parseFlagValue(value: string): CommandArgValue {\n const trimmed = value.trim();\n if (/^-?\\d+(\\.\\d+)?$/.test(trimmed)) {\n return Number(trimmed);\n }\n if (trimmed.toLowerCase() === \"true\") return true;\n if (trimmed.toLowerCase() === \"false\") return false;\n return trimmed;\n}\n\nfunction appendFlagValue(flags: Record<string, CommandFlagValue>, name: string, value: CommandArgValue): void {\n const existing = flags[name];\n if (existing === undefined) {\n flags[name] = value;\n } else if (Array.isArray(existing)) {\n existing.push(value);\n } else {\n flags[name] = [existing, value];\n }\n}\n\nfunction argsFromParsed(prompt: string, flags: Record<string, CommandFlagValue>): OpenTagCommand[\"args\"] {\n const args: OpenTagCommand[\"args\"] = {};\n if (prompt.length > 0) {\n args.prompt = prompt;\n }\n\n for (const [name, value] of Object.entries(flags)) {\n args[name] = collapseArgValue(value);\n }\n\n return args;\n}\n\nfunction collapseArgValue(value: CommandFlagValue): CommandArgValue {\n if (!Array.isArray(value)) {\n return value;\n }\n return value.map((entry) => String(entry)).join(\",\");\n}\n\nfunction referencesFromFlags(flags: Record<string, CommandFlagValue>, diagnostics: CommandParseDiagnostic[]): CommandReference[] {\n const references: CommandReference[] = [];\n const line = lineFromFlag(flags, diagnostics);\n const range = rangeFromFlag(flags, diagnostics);\n\n for (const uri of stringValuesForFlag(flags, \"file\")) {\n references.push(commandReference(\"file\", uri, line, range));\n }\n for (const uri of stringValuesForFlag(flags, \"path\")) {\n references.push(commandReference(\"path\", uri, line, range));\n }\n for (const uri of stringValuesForFlag(flags, \"url\")) {\n references.push(commandReference(\"url\", uri, undefined, undefined));\n }\n\n if (references.length === 0 && line !== undefined) {\n references.push(commandReference(\"line\", String(line), line, undefined));\n }\n if (references.length === 0 && range !== undefined) {\n references.push(commandReference(\"range\", `${range.startLine}-${range.endLine}`, undefined, range));\n }\n\n return references;\n}\n\nfunction commandReference(\n kind: CommandReference[\"kind\"],\n uri: string,\n line: number | undefined,\n range: { startLine: number; endLine: number } | undefined\n): CommandReference {\n const reference: CommandReference = { kind, uri };\n if (line !== undefined) {\n reference.line = line;\n }\n if (range !== undefined) {\n reference.startLine = range.startLine;\n reference.endLine = range.endLine;\n }\n return reference;\n}\n\nfunction requestedScopesFromFlags(\n flags: Record<string, CommandFlagValue>,\n diagnostics: CommandParseDiagnostic[]\n): PermissionGrant[\"scope\"][] {\n const requestedScopes: PermissionGrant[\"scope\"][] = [];\n\n for (const scope of stringValuesForFlag(flags, \"scope\")) {\n if (PERMISSION_SCOPES.has(scope as PermissionGrant[\"scope\"])) {\n appendUnique(requestedScopes, scope as PermissionGrant[\"scope\"]);\n } else {\n diagnostics.push({\n level: \"warning\",\n code: \"invalid_scope\",\n message: `Unsupported permission scope '${scope}'.`,\n token: scope\n });\n }\n }\n\n return requestedScopes;\n}\n\nfunction enumValueForFlag<T extends string>(\n flags: Record<string, CommandFlagValue>,\n name: string,\n allowed: Set<T>,\n diagnostics: CommandParseDiagnostic[]\n): T | undefined {\n const value = stringValuesForFlag(flags, name).at(-1)?.toLowerCase();\n if (!value) return undefined;\n if (allowed.has(value as T)) {\n return value as T;\n }\n diagnostics.push({\n level: \"warning\",\n code: `invalid_${name}`,\n message: `Unsupported ${name} value '${value}'.`,\n token: value\n });\n return undefined;\n}\n\nfunction executorHintFromFlags(\n flags: Record<string, CommandFlagValue>,\n diagnostics: CommandParseDiagnostic[]\n): AgentTarget[\"executorHint\"] | undefined {\n const value = stringValuesForFlag(flags, \"executor\").at(-1)?.toLowerCase();\n if (!value) return undefined;\n if (EXECUTOR_HINTS.has(value as AgentTarget[\"executorHint\"])) {\n return value as AgentTarget[\"executorHint\"];\n }\n diagnostics.push({\n level: \"warning\",\n code: \"invalid_executor\",\n message: `Unsupported executor hint '${value}'.`,\n token: value\n });\n return undefined;\n}\n\nfunction lineFromFlag(flags: Record<string, CommandFlagValue>, diagnostics: CommandParseDiagnostic[]): number | undefined {\n const value = valuesForFlag(flags, \"line\").at(-1);\n if (value === undefined) return undefined;\n const line = typeof value === \"number\" ? value : Number(value);\n if (Number.isInteger(line) && line > 0) {\n return line;\n }\n diagnostics.push({\n level: \"warning\",\n code: \"invalid_line\",\n message: `Line must be a positive integer; received '${String(value)}'.`,\n token: String(value)\n });\n return undefined;\n}\n\nfunction rangeFromFlag(\n flags: Record<string, CommandFlagValue>,\n diagnostics: CommandParseDiagnostic[]\n): { startLine: number; endLine: number } | undefined {\n const value = valuesForFlag(flags, \"range\").at(-1);\n if (value === undefined) return undefined;\n const match = String(value).match(/^(\\d+)-(\\d+)$/);\n if (!match?.[1] || !match[2]) {\n diagnostics.push({\n level: \"warning\",\n code: \"invalid_range\",\n message: `Range must look like '10-20'; received '${String(value)}'.`,\n token: String(value)\n });\n return undefined;\n }\n\n const startLine = Number(match[1]);\n const endLine = Number(match[2]);\n if (startLine > 0 && endLine >= startLine) {\n return { startLine, endLine };\n }\n\n diagnostics.push({\n level: \"warning\",\n code: \"invalid_range\",\n message: `Range start must be less than or equal to range end; received '${String(value)}'.`,\n token: String(value)\n });\n return undefined;\n}\n\nfunction stringValuesForFlag(flags: Record<string, CommandFlagValue>, name: string): string[] {\n return valuesForFlag(flags, name).map((value) => String(value)).filter((value) => value.length > 0);\n}\n\nfunction valuesForFlag(flags: Record<string, CommandFlagValue>, name: string): CommandArgValue[] {\n const value = flags[name];\n if (value === undefined) return [];\n return Array.isArray(value) ? value : [value];\n}\n\nfunction appendUnique<T>(values: T[], value: T): void {\n if (!values.includes(value)) {\n values.push(value);\n }\n}\n\nfunction isKnownIntent(value: string): value is KnownIntent {\n return INTENTS.includes(value as KnownIntent);\n}\n","import { z } from \"zod\";\nimport {\n actionReceiptHeading,\n buildActionReceiptsFromResult,\n type ActionReceipt,\n type ActionReceiptContext,\n type ActionReceiptDecision,\n type ActionReceiptPrimaryDecision,\n type ActionReceiptState\n} from \"./action.js\";\nimport { OpenTagRunResultSchema, type OpenTagRunResult } from \"./schema.js\";\n\nexport const OpenTagPresentationActionSchema = z.object({\n index: z.number().int().positive(),\n proposalId: z.string().min(1).optional(),\n intentId: z.string().min(1).optional(),\n title: z.string().min(1),\n state: z.enum([\"ready_to_apply\", \"needs_approval\", \"needs_setup\", \"unsupported\"]),\n targetLabel: z.string().min(1),\n visibleDecisions: z.array(z.enum([\"apply\", \"approve\", \"reject\", \"continue\"])),\n primaryDecision: z.enum([\"apply\", \"continue\", \"none\"]),\n setupReason: z.string().min(1).optional(),\n details: z.array(z.string().min(1)).optional(),\n detailRows: z.array(z.object({ label: z.string().min(1), value: z.string().min(1) })).optional()\n});\n\nexport const OpenTagRunStatusPresentationSchema = z.object({\n kind: z.literal(\"run_status\"),\n runId: z.string().min(1),\n state: z.enum([\"received\", \"queued\", \"running\", \"waiting_for_approval\", \"completed\", \"failed\", \"cancelled\", \"interrupted\", \"timed_out\"]),\n message: z.string().min(1).optional(),\n nextAction: z.string().min(1).optional(),\n detailVisibility: z.enum([\"source_thread\", \"audit\"]).optional()\n});\n\nexport const OpenTagDoctorCheckPresentationSchema = z.object({\n status: z.enum([\"ok\", \"warn\", \"fail\", \"unknown\"]),\n name: z.string().min(1),\n message: z.string().min(1).optional()\n});\n\nexport const OpenTagDoctorSummaryPresentationSchema = z.object({\n kind: z.literal(\"doctor_summary\"),\n title: z.string().min(1),\n checks: z.array(OpenTagDoctorCheckPresentationSchema)\n});\n\nexport const OpenTagSourceThreadStatusRunSchema = z.object({\n id: z.string().min(1),\n status: z.string().min(1),\n updatedAt: z.string().min(1).optional()\n});\n\nexport const OpenTagSourceThreadQueuedFollowUpSchema = z.object({\n id: z.string().min(1),\n status: z.string().min(1).optional(),\n command: z.string().min(1).optional()\n});\n\nexport const OpenTagSourceThreadStatusPresentationSchema = z.object({\n kind: z.literal(\"source_thread_status\"),\n title: z.string().min(1),\n sourceContainer: z.string().min(1).optional(),\n projectTarget: z.string().min(1).optional(),\n bindingState: z.enum([\"bound\", \"unbound\"]),\n activeRun: OpenTagSourceThreadStatusRunSchema.optional(),\n queuedFollowUps: z.array(OpenTagSourceThreadQueuedFollowUpSchema),\n queuedFollowUpsTotal: z.number().int().nonnegative().optional(),\n currentCommand: z.string().min(1).optional(),\n nextAction: z.string().min(1),\n stopHint: z.string().min(1).optional(),\n detailHint: z.string().min(1).optional()\n});\n\nexport const OpenTagActionReceiptPresentationSchema = z.object({\n kind: z.literal(\"action_receipt\"),\n title: z.string().min(1),\n actions: z.array(OpenTagPresentationActionSchema),\n auditRunId: z.string().min(1).optional()\n});\n\nexport const OpenTagFinalSummaryPresentationSchema = z.object({\n kind: z.literal(\"final_summary\"),\n outcome: z.string().min(1),\n summary: z.string().min(1),\n changedFiles: z.array(z.string().min(1)).optional(),\n verification: OpenTagRunResultSchema.shape.verification,\n nextActions: z.array(z.string().min(1)).optional(),\n actionReceiptTitle: z.string().min(1).optional(),\n actions: z.array(OpenTagPresentationActionSchema).optional(),\n auditRunId: z.string().min(1).optional(),\n result: OpenTagRunResultSchema\n});\n\nexport const OpenTagPresentationSchema = z.discriminatedUnion(\"kind\", [\n OpenTagRunStatusPresentationSchema,\n OpenTagDoctorSummaryPresentationSchema,\n OpenTagSourceThreadStatusPresentationSchema,\n OpenTagActionReceiptPresentationSchema,\n OpenTagFinalSummaryPresentationSchema\n]);\n\nexport type OpenTagPresentationAction = z.infer<typeof OpenTagPresentationActionSchema>;\nexport type OpenTagRunStatusPresentation = z.infer<typeof OpenTagRunStatusPresentationSchema>;\nexport type OpenTagDoctorCheckPresentation = z.infer<typeof OpenTagDoctorCheckPresentationSchema>;\nexport type OpenTagDoctorSummaryPresentation = z.infer<typeof OpenTagDoctorSummaryPresentationSchema>;\nexport type OpenTagSourceThreadStatusRun = z.infer<typeof OpenTagSourceThreadStatusRunSchema>;\nexport type OpenTagSourceThreadQueuedFollowUp = z.infer<typeof OpenTagSourceThreadQueuedFollowUpSchema>;\nexport type OpenTagSourceThreadStatusPresentation = z.infer<typeof OpenTagSourceThreadStatusPresentationSchema>;\nexport type OpenTagActionReceiptPresentation = z.infer<typeof OpenTagActionReceiptPresentationSchema>;\nexport type OpenTagFinalSummaryPresentation = z.infer<typeof OpenTagFinalSummaryPresentationSchema>;\nexport type OpenTagPresentation = z.infer<typeof OpenTagPresentationSchema>;\n\nfunction nextActionSummary(result: OpenTagRunResult): string | undefined {\n if (!result.nextAction) return undefined;\n if (typeof result.nextAction === \"string\") return result.nextAction;\n return result.nextAction.summary;\n}\n\nfunction presentationActionFromReceipt(receipt: ActionReceipt): OpenTagPresentationAction {\n const details = presentationActionDetailsFromReceipt(receipt);\n const detailRows = presentationActionDetailRowsFromReceipt(receipt);\n return {\n index: receipt.candidate.index,\n proposalId: receipt.candidate.proposalId,\n intentId: receipt.candidate.intent.intentId,\n title: receipt.candidate.intent.summary,\n state: receipt.state as ActionReceiptState,\n targetLabel: receipt.targetLabel,\n visibleDecisions: receipt.visibleDecisions as ActionReceiptDecision[],\n primaryDecision: receipt.primaryDecision as ActionReceiptPrimaryDecision,\n ...(receipt.setupReason ? { setupReason: receipt.setupReason } : {}),\n ...(details.length ? { details } : {}),\n ...(detailRows.length ? { detailRows } : {})\n };\n}\n\nfunction stringParam(params: Record<string, unknown> | undefined, key: string): string | undefined {\n const value = params?.[key];\n return typeof value === \"string\" && value.length > 0 ? value : undefined;\n}\n\nfunction stringArrayParam(params: Record<string, unknown> | undefined, key: string): string[] {\n const value = params?.[key];\n if (!Array.isArray(value)) return [];\n return value.filter((item): item is string => typeof item === \"string\" && item.length > 0);\n}\n\nfunction inlineCode(value: string): string {\n return `\\`${value.replace(/`/g, \"\\\\`\")}\\``;\n}\n\nfunction listValue(values: string[]): string {\n return values.join(\"\\n\");\n}\n\nfunction actionDecisionCommand(decision: ActionReceiptDecision, index: number): string {\n return `${decision} ${index}`;\n}\n\nfunction renderVerificationParams(params: Record<string, unknown> | undefined): string[] {\n const value = params?.[\"verification\"];\n if (!Array.isArray(value)) return [];\n return value\n .map((item) => {\n if (!item || typeof item !== \"object\" || Array.isArray(item)) return undefined;\n const command = (item as Record<string, unknown>)[\"command\"];\n const outcome = (item as Record<string, unknown>)[\"outcome\"];\n const summary = (item as Record<string, unknown>)[\"summary\"];\n if (typeof outcome !== \"string\") return undefined;\n const prefix = typeof command === \"string\" && command.length > 0 ? `${inlineCode(command)}: ${outcome}` : outcome;\n return typeof summary === \"string\" && summary.length > 0 ? `${prefix} - ${summary}` : prefix;\n })\n .filter((line): line is string => Boolean(line));\n}\n\nfunction presentationActionDetailsFromReceipt(receipt: ActionReceipt): string[] {\n const details: string[] = [];\n const params = receipt.candidate.intent.params;\n if (receipt.candidate.intent.action === \"create_pull_request\") {\n const head = stringParam(params, \"head\") ?? stringParam(params, \"branch\");\n const base = stringParam(params, \"base\") ?? stringParam(params, \"baseBranch\");\n const changedFiles = stringArrayParam(params, \"changedFiles\");\n if (head || base) details.push(`Branch: \\`${head ?? \"unknown\"}\\` -> \\`${base ?? \"main\"}\\``);\n if (changedFiles.length > 0) details.push(`Changed files: ${changedFiles.map((file) => `\\`${file}\\``).join(\", \")}`);\n }\n if (receipt.candidate.proposalPreconditions?.length) {\n details.push(`Preconditions: ${receipt.candidate.proposalPreconditions.length} check(s) in the audit log.`);\n }\n return details;\n}\n\nfunction presentationActionDetailRowsFromReceipt(receipt: ActionReceipt): Array<{ label: string; value: string }> {\n const candidate = receipt.candidate;\n const params = candidate.intent.params;\n const rows: Array<{ label: string; value: string }> = [{ label: \"Target\", value: receipt.targetLabel }];\n if (receipt.setupReason) rows.push({ label: \"Status\", value: receipt.setupReason });\n if (candidate.intent.action === \"create_pull_request\") {\n const title = stringParam(params, \"title\");\n const head = stringParam(params, \"head\") ?? stringParam(params, \"branch\");\n const base = stringParam(params, \"base\") ?? stringParam(params, \"baseBranch\");\n const changedFiles = stringArrayParam(params, \"changedFiles\");\n const risks = stringArrayParam(params, \"risks\");\n const verification = renderVerificationParams(params);\n if (title) rows.push({ label: \"Title\", value: title });\n if (head || base) rows.push({ label: \"Branch\", value: `${inlineCode(head ?? \"unknown\")} -> ${inlineCode(base ?? \"main\")}` });\n if (changedFiles.length > 0) rows.push({ label: \"Changed files\", value: changedFiles.map(inlineCode).join(\", \") });\n if (verification.length > 0) rows.push({ label: \"Verification\", value: listValue(verification) });\n if (risks.length > 0) rows.push({ label: \"Risks\", value: listValue(risks) });\n }\n if (candidate.proposalPreconditions?.length) {\n rows.push({ label: \"Preconditions\", value: listValue(candidate.proposalPreconditions) });\n }\n return rows;\n}\n\nexport function createRunStatusPresentation(input: {\n runId: string;\n state: OpenTagRunStatusPresentation[\"state\"];\n message?: string;\n nextAction?: string;\n detailVisibility?: OpenTagRunStatusPresentation[\"detailVisibility\"];\n}): OpenTagRunStatusPresentation {\n return OpenTagRunStatusPresentationSchema.parse({\n kind: \"run_status\",\n runId: input.runId,\n state: input.state,\n ...(input.message ? { message: input.message } : {}),\n ...(input.nextAction ? { nextAction: input.nextAction } : {}),\n ...(input.detailVisibility ? { detailVisibility: input.detailVisibility } : {})\n });\n}\n\nexport function createDoctorSummaryPresentation(input: {\n title?: string;\n checks: OpenTagDoctorCheckPresentation[];\n}): OpenTagDoctorSummaryPresentation {\n return OpenTagDoctorSummaryPresentationSchema.parse({\n kind: \"doctor_summary\",\n title: input.title ?? \"OpenTag doctor\",\n checks: input.checks.map((check) => ({\n status: check.status,\n name: check.name,\n ...(check.message ? { message: check.message } : {})\n }))\n });\n}\n\nexport function createSourceThreadStatusPresentation(input: {\n title?: string;\n sourceContainer?: string;\n projectTarget?: string;\n bindingState: OpenTagSourceThreadStatusPresentation[\"bindingState\"];\n activeRun?: OpenTagSourceThreadStatusRun;\n queuedFollowUps?: OpenTagSourceThreadQueuedFollowUp[];\n queuedFollowUpsTotal?: number;\n currentCommand?: string;\n nextAction: string;\n stopHint?: string;\n detailHint?: string;\n}): OpenTagSourceThreadStatusPresentation {\n return OpenTagSourceThreadStatusPresentationSchema.parse({\n kind: \"source_thread_status\",\n title: input.title ?? \"OpenTag status\",\n ...(input.sourceContainer ? { sourceContainer: input.sourceContainer } : {}),\n ...(input.projectTarget ? { projectTarget: input.projectTarget } : {}),\n bindingState: input.bindingState,\n ...(input.activeRun ? { activeRun: input.activeRun } : {}),\n queuedFollowUps: input.queuedFollowUps ?? [],\n ...(input.queuedFollowUpsTotal !== undefined ? { queuedFollowUpsTotal: input.queuedFollowUpsTotal } : {}),\n ...(input.currentCommand ? { currentCommand: input.currentCommand } : {}),\n nextAction: input.nextAction,\n ...(input.stopHint ? { stopHint: input.stopHint } : {}),\n ...(input.detailHint ? { detailHint: input.detailHint } : {})\n });\n}\n\nexport function createActionReceiptPresentation(input: {\n result: OpenTagRunResult;\n receiptContext?: ActionReceiptContext;\n auditRunId?: string;\n}): OpenTagActionReceiptPresentation | null {\n const receipts = buildActionReceiptsFromResult(input.result, input.receiptContext);\n if (receipts.length === 0) return null;\n return OpenTagActionReceiptPresentationSchema.parse({\n kind: \"action_receipt\",\n title: actionReceiptHeading(receipts),\n actions: receipts.map(presentationActionFromReceipt),\n ...(input.auditRunId ? { auditRunId: input.auditRunId } : {})\n });\n}\n\nexport function createFinalSummaryPresentation(input: {\n result: OpenTagRunResult;\n receiptContext?: ActionReceiptContext;\n auditRunId?: string;\n}): OpenTagFinalSummaryPresentation {\n const actionReceipt = createActionReceiptPresentation(input);\n const nextAction = nextActionSummary(input.result);\n return OpenTagFinalSummaryPresentationSchema.parse({\n kind: \"final_summary\",\n outcome: input.result.conclusion,\n summary: input.result.summary,\n ...(input.result.changedFiles?.length ? { changedFiles: input.result.changedFiles } : {}),\n ...(input.result.verification?.length ? { verification: input.result.verification } : {}),\n ...(nextAction ? { nextActions: [nextAction] } : {}),\n ...(actionReceipt ? { actionReceiptTitle: actionReceipt.title, actions: actionReceipt.actions } : {}),\n ...(input.auditRunId ? { auditRunId: input.auditRunId } : {}),\n result: input.result\n });\n}\n\nexport function renderOpenTagPresentationPlainText(presentation: OpenTagPresentation): string {\n if (presentation.kind === \"run_status\") {\n return [\n `Run ${presentation.runId}: ${presentation.state}`,\n ...(presentation.message ? [`Message: ${presentation.message}`] : []),\n ...(presentation.nextAction ? [`Next action: ${presentation.nextAction}`] : [])\n ].join(\"\\n\");\n }\n if (presentation.kind === \"doctor_summary\") {\n return [\n presentation.title,\n ...presentation.checks.map((check) => `${check.status.toUpperCase()} ${check.name}${check.message ? `: ${check.message}` : \"\"}`)\n ].join(\"\\n\");\n }\n if (presentation.kind === \"source_thread_status\") {\n const queuedTotal = presentation.queuedFollowUpsTotal ?? presentation.queuedFollowUps.length;\n const queuedOverflow = Math.max(queuedTotal - presentation.queuedFollowUps.length, 0);\n const queuedIds = presentation.queuedFollowUps.map((followUp) => {\n const status = followUp.status ? ` (${followUp.status})` : \"\";\n const command = followUp.command ? `: ${followUp.command}` : \"\";\n return `${followUp.id}${status}${command}`;\n });\n const queuedDetail =\n queuedIds.length > 0 ? ` (${queuedIds.join(\", \")}${queuedOverflow > 0 ? `, +${queuedOverflow} more` : \"\"})` : \"\";\n const queuedFollowUps =\n queuedTotal === 0\n ? \"none\"\n : `${queuedTotal}${queuedDetail}`;\n const activeRun = presentation.activeRun\n ? `${presentation.activeRun.id} (${presentation.activeRun.status})${presentation.activeRun.updatedAt ? `, updated ${presentation.activeRun.updatedAt}` : \"\"}`\n : \"none\";\n return [\n presentation.title,\n ...(presentation.sourceContainer ? [`Source container: ${presentation.sourceContainer}`] : []),\n `Project Target: ${presentation.projectTarget ?? \"not bound\"}`,\n `Active run: ${activeRun}`,\n ...(presentation.currentCommand ? [`Command: ${presentation.currentCommand}`] : []),\n `Queued follow-ups: ${queuedFollowUps}`,\n `Next action: ${presentation.nextAction}`,\n ...(presentation.stopHint ? [`Stop/timeout: ${presentation.stopHint}`] : []),\n ...(presentation.detailHint ? [`Details: ${presentation.detailHint}`] : [])\n ].join(\"\\n\");\n }\n if (presentation.kind === \"action_receipt\") {\n const lines = [presentation.title];\n for (const action of presentation.actions) {\n lines.push(`${action.index}. ${action.title}`);\n lines.push(`Target: ${action.targetLabel}`);\n if (action.setupReason) lines.push(`Status: ${action.setupReason}`);\n if (action.details?.length) lines.push(...action.details);\n lines.push(`Actions: ${action.visibleDecisions.map((decision) => actionDecisionCommand(decision, action.index)).join(\", \")}`);\n }\n if (presentation.auditRunId) lines.push(`Audit: opentag status --run ${presentation.auditRunId}`);\n return lines.join(\"\\n\");\n }\n return [\n `Finished: ${presentation.outcome}`,\n presentation.summary,\n ...(presentation.changedFiles?.length ? [\"Changed files:\", ...presentation.changedFiles.map((file) => `- ${file}`)] : []),\n ...(presentation.verification?.length ? [\"Verification:\", ...presentation.verification.map((check) => `- ${check.command}: ${check.outcome}`)] : []),\n ...(presentation.nextActions?.length ? [\"Next actions:\", ...presentation.nextActions.map((action) => `- ${action}`)] : []),\n ...(presentation.actions?.length\n ? [\n presentation.actionReceiptTitle ?? \"Suggested actions\",\n ...presentation.actions.flatMap((action) => [\n `${action.index}. ${action.title}`,\n `Target: ${action.targetLabel}`,\n ...(action.setupReason ? [`Status: ${action.setupReason}`] : []),\n ...(action.details?.length ? action.details : []),\n `Actions: ${action.visibleDecisions.map((decision) => actionDecisionCommand(decision, action.index)).join(\", \")}`\n ])\n ]\n : []),\n ...(presentation.auditRunId ? [`Audit: opentag status --run ${presentation.auditRunId}`] : [])\n ].join(\"\\n\");\n}\n","export type ProjectTargetRef = {\n provider: string;\n owner: string;\n repo: string;\n};\n\nexport type EventMetadataWithProjectTarget = {\n metadata?: Record<string, unknown>;\n};\n\nconst PROJECT_TARGET_REF_PATTERN = /^(?:([\\w-]+):)?([\\w.-]+)\\/([\\w.-]+)$/;\n\nfunction normalizeLocalPath(path: string): string {\n const normalized = path.trim().replace(/\\\\/g, \"/\").replace(/\\/+$/, \"\");\n return normalized || \"/\";\n}\n\nfunction safeProjectSegment(value: string, fallback: string): string {\n const safe = value\n .trim()\n .replace(/[^\\w.-]+/g, \"-\")\n .replace(/^-+|-+$/g, \"\");\n return safe || fallback;\n}\n\nfunction basename(path: string): string {\n const segments = normalizeLocalPath(path).split(\"/\").filter(Boolean);\n return segments.at(-1) ?? \"project\";\n}\n\nfunction stableHash(value: string): string {\n let first = 0xdeadbeef ^ value.length;\n let second = 0x41c6ce57 ^ value.length;\n\n for (let index = 0; index < value.length; index += 1) {\n const code = value.charCodeAt(index);\n first = Math.imul(first ^ code, 2654435761);\n second = Math.imul(second ^ code, 1597334677);\n }\n\n first = Math.imul(first ^ (first >>> 16), 2246822507) ^ Math.imul(second ^ (second >>> 13), 3266489909);\n second = Math.imul(second ^ (second >>> 16), 2246822507) ^ Math.imul(first ^ (first >>> 13), 3266489909);\n\n return `${(second >>> 0).toString(36)}${(first >>> 0).toString(36)}`.slice(0, 12);\n}\n\nexport function formatProjectTargetRef(ref: ProjectTargetRef): string {\n return `${ref.provider}:${ref.owner}/${ref.repo}`;\n}\n\nexport function parseProjectTargetRef(value: string): ProjectTargetRef {\n const match = value.match(PROJECT_TARGET_REF_PATTERN);\n if (!match) {\n throw new Error(`Invalid Project Target ref: ${value}`);\n }\n return {\n provider: match[1] ?? \"github\",\n owner: match[2] as string,\n repo: match[3] as string\n };\n}\n\nfunction nonBlankMetadataString(value: unknown): string | null {\n if (typeof value !== \"string\") return null;\n const trimmed = value.trim();\n return trimmed.length > 0 ? trimmed : null;\n}\n\nexport function projectTargetRefFromEvent(input: EventMetadataWithProjectTarget | null | undefined): ProjectTargetRef | null {\n const metadata = input?.metadata;\n if (!metadata) return null;\n\n const owner = nonBlankMetadataString(metadata[\"owner\"]);\n const repo = nonBlankMetadataString(metadata[\"repo\"]);\n if (!owner || !repo) return null;\n\n const rawProvider = metadata[\"repoProvider\"];\n const provider = rawProvider === undefined ? \"github\" : nonBlankMetadataString(rawProvider);\n if (!provider) return null;\n\n return {\n provider,\n owner,\n repo\n };\n}\n\nexport function projectTargetRefFromLocalPath(path: string): ProjectTargetRef {\n const normalizedPath = normalizeLocalPath(path);\n return {\n provider: \"local\",\n owner: `path_${stableHash(normalizedPath)}`,\n repo: safeProjectSegment(basename(path), \"project\")\n };\n}\n","import type {\n ApplyIntentOutcome,\n CapabilityContract,\n ContextPacket,\n ContextPacketFactConfidence,\n ContextPointer,\n ConversationAnchor,\n MutationIntent,\n OpenTagEvent,\n PermissionGrant,\n PolicyResolution,\n PolicyRule,\n PolicyScope,\n WorkItemReference,\n WorkThread\n} from \"./schema.js\";\n\nconst CONTEXT_PACKET_STAGES = [\"collect\", \"classify\", \"filter\", \"preserve\", \"summarize\", \"budget\", \"emit\"] as const;\nconst POLICY_SCOPE_ORDER: PolicyScope[] = [\n \"organization_default\",\n \"adapter_surface_default\",\n \"work_context_owner_container\",\n \"work_item_override\",\n \"primary_anchor_override\"\n];\n\nexport type ContextSourceClassification = \"primary_evidence\" | \"supporting_context\" | \"background_noise\" | \"sensitive_material\";\n\nexport type ClassifiedContextPointer = {\n pointer: ContextPointer;\n classification: ContextSourceClassification;\n reason: string;\n};\n\nfunction contextPacketSourceRole(classification: ContextSourceClassification): \"primary\" | \"supporting\" | \"background\" {\n switch (classification) {\n case \"primary_evidence\":\n return \"primary\";\n case \"supporting_context\":\n return \"supporting\";\n case \"background_noise\":\n case \"sensitive_material\":\n return \"background\";\n }\n}\n\nexport function contextPointerLabel(pointer: ContextPointer): string {\n return pointer.provider ? `${pointer.provider}.${pointer.kind}` : pointer.kind;\n}\n\nexport type ContextPacketAssemblyOptions = {\n budgetTokens?: number;\n risks?: string[];\n exclusions?: string[];\n redactions?: Array<{ reason: string; sourceUri?: string }>;\n hooks?: ContextPacketAssemblyHooks;\n};\n\nexport type ContextPacketAssemblyHooks = {\n collect?(input: { event: OpenTagEvent; pointers: ContextPointer[] }): ContextPointer[];\n classify?(input: { event: OpenTagEvent; classified: ClassifiedContextPointer[] }): ClassifiedContextPointer[];\n filter?(input: { event: OpenTagEvent; classified: ClassifiedContextPointer[] }): ClassifiedContextPointer[];\n preserve?(input: { event: OpenTagEvent; facts: ContextPacketFact[] }): ContextPacketFact[];\n summarize?(input: { event: OpenTagEvent; summary: string }): string;\n budget?(input: {\n event: OpenTagEvent;\n classified: ClassifiedContextPointer[];\n budgetTokens?: number;\n }): ClassifiedContextPointer[];\n emit?(input: { event: OpenTagEvent; packet: ContextPacket }): ContextPacket;\n};\n\nexport type AdapterMutationCompilation<TOperation = unknown> =\n | {\n ok: true;\n adapter: string;\n intentId: string;\n operation: TOperation;\n }\n | {\n ok: false;\n adapter: string;\n outcome: ApplyIntentOutcome;\n };\n\nexport type AdapterMutationCompiler<TOperation = unknown> = {\n adapter: string;\n compile(intent: MutationIntent): AdapterMutationCompilation<TOperation>;\n};\n\nexport type AdapterMutationCompilerRegistry = {\n register<TOperation>(compiler: AdapterMutationCompiler<TOperation>): void;\n get(adapter: string): AdapterMutationCompiler | undefined;\n compile(adapter: string, intents: MutationIntent[]): AdapterMutationCompilation[];\n};\n\nexport function createAdapterMutationCompilerRegistry(compilers: AdapterMutationCompiler[] = []): AdapterMutationCompilerRegistry {\n const byAdapter = new Map(compilers.map((compiler) => [compiler.adapter, compiler]));\n return {\n register(compiler) {\n byAdapter.set(compiler.adapter, compiler);\n },\n get(adapter) {\n return byAdapter.get(adapter);\n },\n compile(adapter, intents) {\n const compiler = byAdapter.get(adapter);\n if (!compiler) {\n return intents.map((intent) => ({\n ok: false,\n adapter,\n outcome: {\n intentId: intent.intentId,\n outcome: \"unsupported\",\n message: `No adapter mutation compiler is registered for ${adapter}.`\n }\n }));\n }\n return intents.map((intent) => compiler.compile(intent));\n }\n };\n}\n\nfunction classifyContextPointer(pointer: ContextPointer): ClassifiedContextPointer {\n if (pointer.kind === \"text\") {\n return { pointer, classification: \"primary_evidence\", reason: \"Original user-authored text is primary evidence.\" };\n }\n if ([\"issue\", \"pull_request\", \"comment\", \"thread\", \"message\"].includes(pointer.kind)) {\n return { pointer, classification: \"primary_evidence\", reason: `${contextPointerLabel(pointer)} is directly attached to the invocation.` };\n }\n if ([\"repo\", \"file\", \"url\"].includes(pointer.kind)) {\n return { pointer, classification: \"supporting_context\", reason: `${contextPointerLabel(pointer)} supports execution but is not itself the request.` };\n }\n return { pointer, classification: \"supporting_context\", reason: \"Pointer is relevant context.\" };\n}\n\nexport function collectContextPointers(event: OpenTagEvent): ContextPointer[] {\n return event.context;\n}\n\nexport function classifyContextPointers(pointers: ContextPointer[]): ClassifiedContextPointer[] {\n return pointers.map((pointer) => classifyContextPointer(pointer));\n}\n\nexport function filterClassifiedContextPointers(classified: ClassifiedContextPointer[]): ClassifiedContextPointer[] {\n return classified.filter((entry) => entry.classification !== \"background_noise\" && entry.classification !== \"sensitive_material\");\n}\n\ntype ContextPacketFact = { text: string; sourceUri?: string; source?: ContextPointer; confidence?: ContextPacketFactConfidence };\n\nfunction metadataString(event: OpenTagEvent, key: string): string | undefined {\n const value = event.metadata[key];\n return typeof value === \"string\" && value.length > 0 ? value : undefined;\n}\n\nfunction metadataStringArray(event: OpenTagEvent, key: string): string[] {\n const value = event.metadata[key];\n if (!Array.isArray(value)) return [];\n return value.filter((item): item is string => typeof item === \"string\" && item.length > 0);\n}\n\nfunction preserveActionLoopFacts(event: OpenTagEvent): ContextPacketFact[] {\n const facts: ContextPacketFact[] = [];\n const threadActionVerb = metadataString(event, \"threadActionVerb\");\n const parentRunId = metadataString(event, \"parentRunId\");\n const sourceProposalId = metadataString(event, \"sourceProposalId\");\n const approvalDecisionId = metadataString(event, \"approvalDecisionId\");\n const sourceApplyPlanId = metadataString(event, \"sourceApplyPlanId\");\n const previousRunSummary = metadataString(event, \"previousRunSummary\");\n const fallbackReason = metadataString(event, \"fallbackReason\");\n const selectedIntentIds = metadataStringArray(event, \"selectedIntentIds\");\n\n if (threadActionVerb) facts.push({ text: `Action loop thread action: ${threadActionVerb}`, confidence: \"observed\" });\n if (parentRunId) facts.push({ text: `Action loop parent run: ${parentRunId}`, confidence: \"observed\" });\n if (sourceProposalId) facts.push({ text: `Action loop proposal: ${sourceProposalId}`, confidence: \"observed\" });\n if (approvalDecisionId) facts.push({ text: `Action loop approval decision: ${approvalDecisionId}`, confidence: \"observed\" });\n if (sourceApplyPlanId) facts.push({ text: `Action loop apply plan: ${sourceApplyPlanId}`, confidence: \"observed\" });\n if (selectedIntentIds.length > 0) facts.push({ text: `Action loop selected intents: ${selectedIntentIds.join(\", \")}`, confidence: \"observed\" });\n if (previousRunSummary) facts.push({ text: `Action loop previous result: ${previousRunSummary}`, confidence: \"observed\" });\n if (fallbackReason) facts.push({ text: `Action loop fallback reason: ${fallbackReason}`, confidence: \"observed\" });\n\n return facts;\n}\n\nexport function preserveContextFacts(event: OpenTagEvent, classified: ClassifiedContextPointer[]): ContextPacketFact[] {\n const sourceUri = classified[0]?.pointer.uri;\n return [\n {\n text: `Requested intent: ${event.command.intent}`,\n ...(sourceUri ? { sourceUri } : {}),\n ...(classified[0]?.pointer ? { source: classified[0].pointer } : {}),\n confidence: \"observed\"\n },\n ...preserveActionLoopFacts(event),\n ...classified.map((entry) => ({\n text: `${entry.classification}: ${contextPointerLabel(entry.pointer)}`,\n sourceUri: entry.pointer.uri,\n source: entry.pointer,\n confidence: \"observed\" as const\n }))\n ];\n}\n\nexport function summarizeContextPacket(event: OpenTagEvent): string {\n // A whitespace-only rawText is functionally empty, so fall back to the derived\n // request label rather than emitting a blank summary.\n return event.command.rawText.trim() || `OpenTag ${event.command.intent} request`;\n}\n\nexport function budgetContextPointers(classified: ClassifiedContextPointer[], budgetTokens?: number): ClassifiedContextPointer[] {\n if (!budgetTokens) return classified;\n const maxPointers = Math.max(1, Math.floor(budgetTokens / 500));\n return classified.slice(0, maxPointers);\n}\n\nexport function assembleContextPacketFromEvent(\n event: OpenTagEvent,\n emittedAt = event.receivedAt,\n options: ContextPacketAssemblyOptions = {}\n): ContextPacket {\n const collected = options.hooks?.collect?.({ event, pointers: collectContextPointers(event) }) ?? collectContextPointers(event);\n const classified = options.hooks?.classify?.({ event, classified: classifyContextPointers(collected) }) ?? classifyContextPointers(collected);\n const filtered =\n options.hooks?.filter?.({ event, classified: filterClassifiedContextPointers(classified) }) ??\n filterClassifiedContextPointers(classified);\n const budgeted =\n options.hooks?.budget?.({\n event,\n classified: budgetContextPointers(filtered, options.budgetTokens),\n ...(options.budgetTokens ? { budgetTokens: options.budgetTokens } : {})\n }) ??\n budgetContextPointers(filtered, options.budgetTokens);\n const writeScopes = event.permissions\n .map((permission) => permission.scope)\n .filter((scope) => scope === \"repo:write\" || scope === \"pr:create\" || scope === \"pr:update\");\n const summary = options.hooks?.summarize?.({ event, summary: summarizeContextPacket(event) }) ?? summarizeContextPacket(event);\n const facts = options.hooks?.preserve?.({ event, facts: preserveContextFacts(event, budgeted) }) ?? preserveContextFacts(event, budgeted);\n const packet = {\n summary,\n sourcePointers: budgeted.map((entry) => entry.pointer),\n intent: {\n // OpenTagCommandSchema.rawText permits an empty string, but\n // ContextPacketIntentSchema.rawText requires min length 1. A\n // whitespace-only rawText is functionally empty, so trim before the\n // emptiness check and fall back to the (always non-empty) summary. The\n // original, untrimmed rawText is preserved whenever it has real content,\n // keeping the emitted packet schema-valid so the store does not accept the\n // run on write and then throw on read.\n rawText: event.command.rawText.trim() ? event.command.rawText : summary,\n normalizedIntent: event.command.intent,\n requestedBy: event.actor\n },\n sources: budgeted.map((entry) => ({\n pointer: entry.pointer,\n role: contextPacketSourceRole(entry.classification),\n included: true,\n reason: entry.reason\n })),\n facts,\n risks:\n options.risks ??\n (writeScopes.length > 0\n ? [`External write-capable scopes were requested: ${writeScopes.join(\", \")}.`]\n : [\"No external write-capable scopes were requested.\"]),\n exclusions: options.exclusions ?? [\"Do not mutate external state unless an explicit capability and policy allow it.\"],\n mustPreserve: [summary],\n ...(options.redactions?.length ? { redactions: options.redactions } : {}),\n assembly: {\n stages: [...CONTEXT_PACKET_STAGES],\n ...(options.budgetTokens ? { budgetTokens: options.budgetTokens } : {}),\n emittedAt\n }\n };\n return options.hooks?.emit?.({ event, packet }) ?? packet;\n}\n\nexport function defaultRunEventMetadata(type: string): {\n visibility: \"human\" | \"audit\" | \"debug\";\n importance: \"low\" | \"normal\" | \"high\" | \"blocking\";\n} {\n const visibility = type.startsWith(\"callback.\") ? \"human\" : type.startsWith(\"executor.log\") ? \"debug\" : \"audit\";\n const importance =\n type === \"run.waiting_for_permission\"\n ? \"blocking\"\n : type === \"run.completed\" || type.startsWith(\"callback.final\")\n ? \"high\"\n : type === \"run.created\"\n ? \"low\"\n : \"normal\";\n return { visibility, importance };\n}\n\nexport const DefaultCapabilityContracts = [\n {\n id: \"reply_thread\",\n semanticAction: \"reply_thread\",\n capabilityClass: \"callback\",\n requiresExplicitIntent: false,\n mayAutoApplyByPolicy: true,\n requiredPermissionScopes: [\"issue:comment\", \"chat:postMessage\"]\n },\n {\n id: \"attach_artifact\",\n semanticAction: \"attach_artifact\",\n capabilityClass: \"callback\",\n requiresExplicitIntent: false,\n mayAutoApplyByPolicy: true,\n requiredPermissionScopes: [\"issue:comment\", \"chat:postMessage\"]\n },\n {\n id: \"create_pr\",\n semanticAction: \"create_pull_request\",\n capabilityClass: \"external_write\",\n requiresExplicitIntent: true,\n mayAutoApplyByPolicy: true,\n requiredPermissionScopes: [\"pr:create\"],\n requiredExecutorConditions: [\"isolated branch exists\"]\n },\n {\n id: \"set_status\",\n semanticAction: \"transition_status\",\n capabilityClass: \"external_write\",\n requiresExplicitIntent: true,\n mayAutoApplyByPolicy: true,\n requiredPermissionScopes: [\"repo:write\"]\n },\n {\n id: \"set_assignee\",\n semanticAction: \"set_assignee\",\n capabilityClass: \"external_write\",\n requiresExplicitIntent: true,\n mayAutoApplyByPolicy: true,\n requiredPermissionScopes: [\"repo:write\"]\n },\n {\n id: \"set_priority\",\n semanticAction: \"set_priority\",\n capabilityClass: \"external_write\",\n requiresExplicitIntent: true,\n mayAutoApplyByPolicy: true,\n requiredPermissionScopes: [\"repo:write\"]\n },\n {\n id: \"set_labels\",\n semanticAction: \"set_labels\",\n capabilityClass: \"external_write\",\n requiresExplicitIntent: true,\n mayAutoApplyByPolicy: true,\n requiredPermissionScopes: [\"repo:write\"]\n },\n {\n id: \"request_review\",\n semanticAction: \"request_review\",\n capabilityClass: \"external_write\",\n requiresExplicitIntent: true,\n mayAutoApplyByPolicy: true,\n adapterTargets: [\"github\"],\n requiredPermissionScopes: [\"pr:update\"]\n }\n] satisfies CapabilityContract[];\n\nfunction firstContextUri(event: OpenTagEvent, input: { provider?: string; kind: string }): string | undefined {\n return event.context.find((pointer) => pointer.kind === input.kind && (!input.provider || pointer.provider === input.provider))?.uri;\n}\n\nexport function workItemReferenceFromEvent(event: OpenTagEvent): WorkItemReference | undefined {\n return event.workItem;\n}\n\nexport function primaryConversationAnchorFromEvent(event: OpenTagEvent): ConversationAnchor {\n const sourcePointer =\n firstContextUri(event, { provider: event.callback.provider, kind: \"comment\" }) ??\n firstContextUri(event, { provider: event.callback.provider, kind: \"message\" }) ??\n firstContextUri(event, { provider: event.callback.provider, kind: \"thread\" }) ??\n firstContextUri(event, { kind: \"url\" });\n return {\n provider: event.callback.provider,\n kind: event.callback.threadKey ? \"thread\" : `${event.callback.provider}_thread`,\n externalId: event.callback.threadKey ?? event.callback.uri,\n uri: sourcePointer ?? event.callback.uri,\n controlPlane: true,\n canApprove: true,\n ...(event.callback.threadKey ? { threadKey: event.callback.threadKey } : {})\n };\n}\n\nfunction callbackConversationKey(callback: OpenTagEvent[\"callback\"]): string {\n return `${callback.provider}:${callback.threadKey ?? callback.uri}`;\n}\n\nfunction metadataRecordString(metadata: Record<string, unknown>, key: string): string | undefined {\n const value = metadata[key];\n return typeof value === \"string\" && value.length > 0 ? value : undefined;\n}\n\nfunction metadataIssueNumber(metadata: Record<string, unknown>): string | undefined {\n const value = metadata[\"issueNumber\"];\n if (typeof value === \"number\" && Number.isInteger(value) && value > 0) return String(value);\n if (typeof value === \"string\" && /^[1-9]\\d*$/.test(value)) return value;\n return undefined;\n}\n\nfunction legacyGitHubIssueConversationKey(event: OpenTagEvent): string | undefined {\n if (event.callback.provider !== \"github\") return undefined;\n const owner = metadataRecordString(event.metadata, \"owner\");\n const repo = metadataRecordString(event.metadata, \"repo\");\n const issueNumber = metadataIssueNumber(event.metadata);\n if (!owner || !repo || !issueNumber) return undefined;\n if (event.callback.threadKey !== `${owner}/${repo}#${issueNumber}`) return undefined;\n return `github:${owner}/${repo}`;\n}\n\nexport function conversationKeyFromEvent(event: OpenTagEvent): string {\n return callbackConversationKey(event.callback);\n}\n\nexport function conversationKeysFromEvent(event: OpenTagEvent): string[] {\n return [...new Set([conversationKeyFromEvent(event), legacyGitHubIssueConversationKey(event)].filter((key): key is string => Boolean(key)))];\n}\n\nexport function workThreadFromEvent(event: OpenTagEvent): WorkThread | undefined {\n const workItemReference = workItemReferenceFromEvent(event);\n if (!workItemReference) return undefined;\n\n const primaryAnchor = primaryConversationAnchorFromEvent(event);\n return {\n id: `thread_${workItemReference.provider}_${workItemReference.externalId}_${primaryAnchor.externalId}`,\n workItemReference,\n primaryAnchor\n };\n}\n\nexport function contextPacketFromEvent(event: OpenTagEvent, emittedAt = event.receivedAt): ContextPacket {\n return assembleContextPacketFromEvent(event, emittedAt);\n}\n\nexport function protocolRunFieldsFromEvent(\n event: OpenTagEvent,\n emittedAt = event.receivedAt\n): { thread?: WorkThread; contextPacket: ContextPacket } {\n const thread = workThreadFromEvent(event);\n const contextPacket = contextPacketFromEvent(event, emittedAt);\n return {\n ...(thread ? { thread } : {}),\n contextPacket\n };\n}\n\nexport function capabilityForMutationIntent(\n intent: MutationIntent,\n capabilities: readonly CapabilityContract[] = DefaultCapabilityContracts\n): CapabilityContract | undefined {\n const capabilityId =\n intent.action === \"create_pull_request\"\n ? \"create_pr\"\n : intent.action === \"request_review\"\n ? \"request_review\"\n : intent.action === \"link_artifact\"\n ? \"attach_artifact\"\n : intent.domain === \"status\"\n ? \"set_status\"\n : intent.domain === \"assignee\"\n ? \"set_assignee\"\n : intent.domain === \"priority\"\n ? \"set_priority\"\n : intent.domain === \"labels\"\n ? \"set_labels\"\n : undefined;\n\n return capabilityId ? capabilities.find((capability) => capability.id === capabilityId) : undefined;\n}\n\nexport function resolvePolicy(input: {\n capabilityId: string;\n mutationDomain?: string;\n rules: PolicyRule[];\n defaultDecision?: \"allow\" | \"deny\";\n}): PolicyResolution {\n const matchingRules = input.rules.filter(\n (rule) =>\n (!rule.capabilityId || rule.capabilityId === input.capabilityId) &&\n (!rule.mutationDomain || rule.mutationDomain === input.mutationDomain)\n );\n const sortedRules = [...matchingRules].sort((left, right) => {\n const scopeDelta = POLICY_SCOPE_ORDER.indexOf(right.scope) - POLICY_SCOPE_ORDER.indexOf(left.scope);\n if (scopeDelta !== 0) return scopeDelta;\n if (left.effect === right.effect) return 0;\n return left.effect === \"deny\" ? -1 : 1;\n });\n const winningRule = sortedRules[0];\n if (winningRule) {\n return {\n capabilityId: input.capabilityId,\n decision: winningRule.effect,\n resolvedBy: winningRule.scope,\n rules: matchingRules,\n reason: winningRule.reason\n };\n }\n\n return {\n capabilityId: input.capabilityId,\n decision: input.defaultDecision ?? \"deny\",\n resolvedBy: \"organization_default\",\n rules: [],\n reason: input.defaultDecision === \"allow\" ? \"Allowed by default policy.\" : \"Denied by default policy.\"\n };\n}\n\nexport function permissionScopesAllowCapability(permissions: PermissionGrant[], capability: CapabilityContract): boolean {\n const grantedScopes = new Set(permissions.map((permission) => permission.scope));\n return capability.requiredPermissionScopes.some((scope) => grantedScopes.has(scope));\n}\n\nexport function preflightMutationIntent(input: {\n intent: MutationIntent;\n permissions: PermissionGrant[];\n policyRules: PolicyRule[];\n adapter?: string;\n executorConditions?: string[];\n capabilities?: readonly CapabilityContract[];\n}): { capability?: CapabilityContract; policyResolution?: PolicyResolution; outcome: ApplyIntentOutcome } {\n const capability = capabilityForMutationIntent(input.intent, input.capabilities);\n if (!capability) {\n return {\n outcome: {\n intentId: input.intent.intentId,\n outcome: \"unsupported\",\n message: `No capability contract maps mutation action ${input.intent.action}.`\n }\n };\n }\n\n if (!permissionScopesAllowCapability(input.permissions, capability)) {\n return {\n capability,\n outcome: {\n intentId: input.intent.intentId,\n outcome: \"unsupported\",\n message: `Missing platform permission for capability ${capability.id}.`\n }\n };\n }\n if (input.adapter && capability.adapterTargets && !capability.adapterTargets.includes(input.adapter)) {\n return {\n capability,\n outcome: {\n intentId: input.intent.intentId,\n outcome: \"unsupported\",\n message: `Capability ${capability.id} cannot be applied by adapter ${input.adapter}.`\n }\n };\n }\n const missingConditions = (capability.requiredExecutorConditions ?? []).filter(\n (condition) => !(input.executorConditions ?? []).includes(condition)\n );\n if (missingConditions.length > 0) {\n return {\n capability,\n outcome: {\n intentId: input.intent.intentId,\n outcome: \"unsupported\",\n message: `Missing executor condition(s) for capability ${capability.id}: ${missingConditions.join(\", \")}.`\n }\n };\n }\n\n const policyResolution = resolvePolicy({\n capabilityId: capability.id,\n mutationDomain: input.intent.domain,\n rules: input.policyRules,\n defaultDecision: capability.capabilityClass === \"external_write\" ? \"deny\" : \"allow\"\n });\n if (policyResolution.decision === \"deny\") {\n return {\n capability,\n policyResolution,\n outcome: {\n intentId: input.intent.intentId,\n outcome: \"unsupported\",\n message: `OpenTag policy denied capability ${capability.id}: ${policyResolution.reason}`\n }\n };\n }\n\n return {\n capability,\n policyResolution,\n outcome: {\n intentId: input.intent.intentId,\n outcome: \"skipped\",\n message: `Preflight passed for ${capability.id}; adapter execution is not implemented in this protocol slice.`\n }\n };\n}\n","export const DEFAULT_MAX_REQUEST_BODY_BYTES = 1024 * 1024;\nexport const DEFAULT_REQUEST_BODY_READ_TIMEOUT_MS = 10_000;\n\nexport class RequestBodyTooLargeError extends Error {\n readonly maxBytes: number;\n readonly contentLength?: number;\n\n constructor(input: { maxBytes: number; contentLength?: number }) {\n super(`Request body exceeds ${input.maxBytes} byte(s).`);\n this.name = \"RequestBodyTooLargeError\";\n this.maxBytes = input.maxBytes;\n if (input.contentLength !== undefined) {\n this.contentLength = input.contentLength;\n }\n }\n}\n\nexport class RequestBodyReadTimeoutError extends Error {\n readonly timeoutMs: number;\n\n constructor(input: { timeoutMs: number }) {\n super(`Request body read timed out after ${input.timeoutMs}ms.`);\n this.name = \"RequestBodyReadTimeoutError\";\n this.timeoutMs = input.timeoutMs;\n }\n}\n\nasync function readChunkWithTimeout(\n reader: ReadableStreamDefaultReader<Uint8Array>,\n remainingMs: number,\n configuredTimeoutMs: number\n): Promise<ReadableStreamReadResult<Uint8Array>> {\n if (remainingMs <= 0) {\n await reader.cancel();\n throw new RequestBodyReadTimeoutError({ timeoutMs: configuredTimeoutMs });\n }\n let timeout: ReturnType<typeof setTimeout> | undefined;\n try {\n return await Promise.race([\n reader.read(),\n new Promise<never>((_, reject) => {\n timeout = setTimeout(() => {\n void reader.cancel();\n reject(new RequestBodyReadTimeoutError({ timeoutMs: configuredTimeoutMs }));\n }, remainingMs);\n })\n ]);\n } finally {\n if (timeout) clearTimeout(timeout);\n }\n}\n\nexport async function readRequestTextWithLimit(\n request: Request,\n input: { maxBytes?: number; timeoutMs?: number } = {}\n): Promise<string> {\n const maxBytes = input.maxBytes ?? DEFAULT_MAX_REQUEST_BODY_BYTES;\n const timeoutMs = input.timeoutMs ?? DEFAULT_REQUEST_BODY_READ_TIMEOUT_MS;\n const deadlineAt = Date.now() + timeoutMs;\n const contentLength = request.headers.get(\"content-length\");\n if (contentLength) {\n const parsedLength = Number(contentLength);\n if (Number.isFinite(parsedLength) && parsedLength > maxBytes) {\n throw new RequestBodyTooLargeError({ maxBytes, contentLength: parsedLength });\n }\n }\n\n const stream = request.body;\n if (!stream) return \"\";\n\n const reader = stream.getReader();\n const chunks: Uint8Array[] = [];\n let totalBytes = 0;\n try {\n while (true) {\n const { done, value } = await readChunkWithTimeout(reader, deadlineAt - Date.now(), timeoutMs);\n if (done) break;\n if (!value) continue;\n totalBytes += value.byteLength;\n if (totalBytes > maxBytes) {\n await reader.cancel();\n throw new RequestBodyTooLargeError({ maxBytes });\n }\n chunks.push(value);\n }\n } finally {\n reader.releaseLock();\n }\n\n const bytes = new Uint8Array(totalBytes);\n let offset = 0;\n for (const chunk of chunks) {\n bytes.set(chunk, offset);\n offset += chunk.byteLength;\n }\n return new TextDecoder().decode(bytes);\n}\n"],"mappings":"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","names":["stripped","rest","selection","reason","z","z"]}
1
+ {"version":3,"sources":["../src/action.ts","../src/capability.ts","../src/json-schema.ts","../src/schema.ts","../src/mention.ts","../src/presentation.ts","../src/project-target.ts","../src/protocol.ts","../src/request-body.ts"],"sourcesContent":["import type { MutationIntent, OpenTagRunResult, SuggestedChangesSnapshot } from \"./schema.js\";\n\nexport type ThreadActionVerb = \"approve\" | \"apply\" | \"continue\" | \"reject\";\n\nexport type ThreadActionSelection =\n | { kind: \"latest\" }\n | { kind: \"all\" }\n | { kind: \"index\"; index: number }\n | { kind: \"proposal\"; proposalId: string }\n | { kind: \"intent\"; intentId: string }\n | { kind: \"domain\"; domain: string };\n\nexport type ThreadActionCommand = {\n verb: ThreadActionVerb;\n selection: ThreadActionSelection;\n rawText: string;\n reason?: string;\n};\n\nexport type SuggestedActionCandidate = {\n index: number;\n proposalId: string;\n proposalSummary: string;\n proposalPreconditions?: string[];\n intent: MutationIntent;\n};\n\nexport type ActionReceiptState = \"ready_to_apply\" | \"needs_approval\" | \"needs_setup\" | \"unsupported\";\nexport type ActionReceiptDecision = \"apply\" | \"approve\" | \"reject\" | \"continue\";\nexport type ActionReceiptPrimaryDecision = \"apply\" | \"continue\" | \"none\";\n\nexport type ActionReceiptCapability = {\n state?: ActionReceiptState;\n targetLabel?: string;\n setupReason?: string;\n visibleDecisions?: ActionReceiptDecision[];\n primaryDecision?: ActionReceiptPrimaryDecision;\n};\n\nexport type ActionReceiptContext = {\n capabilityByIntentId?: Record<string, ActionReceiptCapability>;\n};\n\nexport type ActionReceipt = {\n candidate: SuggestedActionCandidate;\n state: ActionReceiptState;\n targetLabel: string;\n setupReason?: string;\n visibleDecisions: ActionReceiptDecision[];\n primaryDecision: ActionReceiptPrimaryDecision;\n};\n\nconst ENGLISH_VERBS: Record<string, ThreadActionVerb> = {\n approve: \"approve\",\n approved: \"approve\",\n ok: \"approve\",\n okay: \"approve\",\n apply: \"apply\",\n continue: \"continue\",\n proceed: \"continue\",\n reject: \"reject\",\n decline: \"reject\"\n};\n\nconst CHINESE_VERBS: Array<{ pattern: RegExp; verb: ThreadActionVerb }> = [\n { pattern: /^(批准|同意)/, verb: \"approve\" },\n { pattern: /^(应用|套用|执行)/, verb: \"apply\" },\n { pattern: /^(继续执行|继续这个|继续此|继续)/, verb: \"continue\" },\n { pattern: /^(拒绝|不同意|驳回)/, verb: \"reject\" }\n];\n\nconst DOMAIN_ALIASES: Record<string, string> = {\n label: \"labels\",\n labels: \"labels\",\n status: \"status\",\n assignee: \"assignee\",\n assignees: \"assignee\",\n priority: \"priority\",\n review: \"review\",\n reviews: \"review\",\n artifact: \"artifact_links\",\n artifacts: \"artifact_links\",\n pr: \"pull_request\",\n prs: \"pull_request\",\n pull_request: \"pull_request\",\n pull_requests: \"pull_request\"\n};\n\nfunction normalizeToken(token: string): string {\n return token.trim().replace(/[.,;:!?,。;:!?]+$/u, \"\");\n}\n\nfunction escapeRegExp(value: string): string {\n return value.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n}\n\nfunction parseSelection(tokens: string[]): ThreadActionSelection {\n const normalized = tokens.map(normalizeToken).filter(Boolean);\n const first = normalized[0];\n if (!first) return { kind: \"latest\" };\n if (first.toLowerCase() === \"all\" || first === \"全部\") return { kind: \"all\" };\n if (/^\\d+$/.test(first)) return { kind: \"index\", index: Number(first) };\n if (first.startsWith(\"proposal_\")) return { kind: \"proposal\", proposalId: first };\n if (first.startsWith(\"intent_\")) return { kind: \"intent\", intentId: first };\n\n const maybeProposal = normalized.find((token) => token.startsWith(\"proposal_\"));\n if (maybeProposal) return { kind: \"proposal\", proposalId: maybeProposal };\n const maybeIntent = normalized.find((token) => token.startsWith(\"intent_\"));\n if (maybeIntent) return { kind: \"intent\", intentId: maybeIntent };\n\n const domain = DOMAIN_ALIASES[first.toLowerCase()];\n return domain ? { kind: \"domain\", domain } : { kind: \"latest\" };\n}\n\nfunction reasonAfterSelection(rest: string, selection: ThreadActionSelection): string | undefined {\n if (!rest.trim()) return undefined;\n if (selection.kind === \"all\") {\n const stripped = rest.replace(/^\\s*(?:all|全部)\\s*/iu, \"\").trim();\n return stripped.length > 0 ? stripped : undefined;\n }\n if (selection.kind === \"latest\") return rest.trim();\n const selectionText =\n selection.kind === \"index\"\n ? String(selection.index)\n : selection.kind === \"proposal\"\n ? escapeRegExp(selection.proposalId)\n : selection.kind === \"intent\"\n ? escapeRegExp(selection.intentId)\n : Object.keys(DOMAIN_ALIASES).join(\"|\");\n const pattern = new RegExp(`^\\\\s*(?:${selectionText})\\\\b\\\\s*`, \"i\");\n const stripped = rest.replace(pattern, \"\").trim();\n return stripped.length > 0 ? stripped : undefined;\n}\n\nexport function parseThreadActionCommand(rawText: string): ThreadActionCommand | null {\n const text = rawText.trim();\n if (!text) return null;\n\n for (const candidate of CHINESE_VERBS) {\n const match = text.match(candidate.pattern);\n if (!match) continue;\n const verbText = match[0] ?? \"\";\n const rest = text.slice(verbText.length).trim();\n const selection = parseSelection(rest.split(/\\s+/u));\n const reason = reasonAfterSelection(rest, selection);\n return {\n verb: candidate.verb,\n selection,\n rawText: text,\n ...(reason ? { reason } : {})\n };\n }\n\n const [verbTokenRaw = \"\", ...restTokens] = text.split(/\\s+/u);\n const verbToken = normalizeToken(verbTokenRaw).toLowerCase();\n const verb = ENGLISH_VERBS[verbToken];\n if (!verb) return null;\n const rest = restTokens.join(\" \");\n const selection = parseSelection(restTokens);\n const reason = reasonAfterSelection(rest, selection);\n return {\n verb,\n selection,\n rawText: text,\n ...(reason ? { reason } : {})\n };\n}\n\nexport function suggestedActionCandidatesFromSnapshots(\n snapshots: SuggestedChangesSnapshot[],\n startIndex = 1\n): SuggestedActionCandidate[] {\n const candidates: SuggestedActionCandidate[] = [];\n let index = startIndex;\n for (const snapshot of snapshots) {\n for (const intent of snapshot.intents) {\n candidates.push({\n index,\n proposalId: snapshot.proposalId,\n proposalSummary: snapshot.summary,\n ...(snapshot.preconditions?.length ? { proposalPreconditions: snapshot.preconditions } : {}),\n intent\n });\n index += 1;\n }\n }\n return candidates;\n}\n\nexport function suggestedActionCandidatesFromResult(result: OpenTagRunResult): SuggestedActionCandidate[] {\n return suggestedActionCandidatesFromSnapshots(result.suggestedChanges ?? []);\n}\n\nfunction defaultActionTargetLabel(intent: MutationIntent): string {\n if (intent.action === \"create_pull_request\") return \"GitHub pull request\";\n if (intent.domain === \"labels\") return \"GitHub labels\";\n if (intent.domain === \"assignee\" || intent.domain === \"assignees\") return \"GitHub assignees\";\n if (intent.domain === \"review\") return \"GitHub review request\";\n if (intent.domain === \"artifact_links\") return \"Artifact link\";\n if (intent.domain === \"follow_up\") return \"OpenTag follow-up run\";\n return `${intent.domain} / ${intent.action}`;\n}\n\nfunction defaultVisibleDecisionsForState(state: ActionReceiptState): ActionReceiptDecision[] {\n if (state === \"ready_to_apply\") return [\"apply\", \"reject\"];\n if (state === \"needs_approval\") return [\"approve\", \"reject\"];\n if (state === \"needs_setup\") return [\"continue\", \"reject\"];\n return [\"continue\", \"reject\"];\n}\n\nfunction defaultPrimaryDecisionForState(state: ActionReceiptState): ActionReceiptPrimaryDecision {\n if (state === \"ready_to_apply\") return \"apply\";\n if (state === \"needs_setup\" || state === \"unsupported\") return \"continue\";\n return \"none\";\n}\n\nexport function actionReceiptHeading(receipts: ActionReceipt[]): string {\n const states = new Set(receipts.map((receipt) => receipt.state));\n if (states.size === 1 && states.has(\"ready_to_apply\")) return \"Ready to apply\";\n if (states.size > 1) return mixedActionReceiptHeading(receipts);\n if (states.has(\"needs_setup\")) return \"Needs setup\";\n if (states.has(\"unsupported\")) return \"Needs attention\";\n return \"Needs approval\";\n}\n\nfunction countedActionPhrase(count: number, singular: string, plural: string): string {\n return `${count} ${count === 1 ? \"action\" : \"actions\"} ${count === 1 ? singular : plural}`;\n}\n\nfunction mixedActionReceiptHeading(receipts: ActionReceipt[]): string {\n const counts: Record<ActionReceiptState, number> = {\n ready_to_apply: 0,\n needs_approval: 0,\n needs_setup: 0,\n unsupported: 0\n };\n for (const receipt of receipts) {\n counts[receipt.state] += 1;\n }\n return [\n counts.ready_to_apply > 0 ? countedActionPhrase(counts.ready_to_apply, \"ready to apply\", \"ready to apply\") : undefined,\n counts.needs_setup > 0 ? countedActionPhrase(counts.needs_setup, \"needs setup\", \"need setup\") : undefined,\n counts.needs_approval > 0 ? countedActionPhrase(counts.needs_approval, \"needs approval\", \"need approval\") : undefined,\n counts.unsupported > 0 ? countedActionPhrase(counts.unsupported, \"needs attention\", \"need attention\") : undefined\n ]\n .filter((phrase): phrase is string => Boolean(phrase))\n .join(\", \");\n}\n\nexport function buildActionReceipt(candidate: SuggestedActionCandidate, context: ActionReceiptContext = {}): ActionReceipt {\n const capability = context.capabilityByIntentId?.[candidate.intent.intentId];\n const state = capability?.state ?? \"needs_approval\";\n return {\n candidate,\n state,\n targetLabel: capability?.targetLabel ?? defaultActionTargetLabel(candidate.intent),\n ...(capability?.setupReason ? { setupReason: capability.setupReason } : {}),\n visibleDecisions: capability?.visibleDecisions ?? defaultVisibleDecisionsForState(state),\n primaryDecision: capability?.primaryDecision ?? defaultPrimaryDecisionForState(state)\n };\n}\n\nexport function buildActionReceiptsFromResult(result: OpenTagRunResult, context: ActionReceiptContext = {}): ActionReceipt[] {\n return suggestedActionCandidatesFromResult(result).map((candidate) => buildActionReceipt(candidate, context));\n}\n","export type OpenTagPlatformId = \"github\" | \"gitlab\" | \"slack\" | \"lark\" | \"telegram\";\n\nexport type PlatformLivenessStrategy = \"source_receipt\" | \"status_update\" | \"thread_reply\" | \"pull_status\";\n\nexport type PlatformCapabilityDescriptor = {\n id: OpenTagPlatformId;\n receivesEvents: boolean;\n repliesToSourceThread: boolean;\n supportsStatusUpdates: boolean;\n supportsRichPresentation: boolean;\n supportsActionReplies: boolean;\n requiresExplicitAddressing: boolean;\n livenessStrategy: PlatformLivenessStrategy;\n};\n\nexport const OPEN_TAG_PLATFORM_CAPABILITIES: Record<OpenTagPlatformId, PlatformCapabilityDescriptor> = {\n github: {\n id: \"github\",\n receivesEvents: true,\n repliesToSourceThread: true,\n supportsStatusUpdates: true,\n supportsRichPresentation: false,\n supportsActionReplies: true,\n requiresExplicitAddressing: true,\n livenessStrategy: \"status_update\"\n },\n gitlab: {\n id: \"gitlab\",\n receivesEvents: true,\n repliesToSourceThread: true,\n supportsStatusUpdates: false,\n supportsRichPresentation: false,\n supportsActionReplies: true,\n requiresExplicitAddressing: true,\n livenessStrategy: \"thread_reply\"\n },\n slack: {\n id: \"slack\",\n receivesEvents: true,\n repliesToSourceThread: true,\n supportsStatusUpdates: true,\n supportsRichPresentation: true,\n supportsActionReplies: true,\n requiresExplicitAddressing: true,\n livenessStrategy: \"source_receipt\"\n },\n lark: {\n id: \"lark\",\n receivesEvents: true,\n repliesToSourceThread: true,\n supportsStatusUpdates: false,\n supportsRichPresentation: true,\n supportsActionReplies: false,\n requiresExplicitAddressing: true,\n livenessStrategy: \"source_receipt\"\n },\n telegram: {\n id: \"telegram\",\n receivesEvents: true,\n repliesToSourceThread: true,\n supportsStatusUpdates: false,\n supportsRichPresentation: false,\n supportsActionReplies: false,\n requiresExplicitAddressing: false,\n livenessStrategy: \"thread_reply\"\n }\n};\n\nexport function isOpenTagPlatformId(value: string): value is OpenTagPlatformId {\n return Object.prototype.hasOwnProperty.call(OPEN_TAG_PLATFORM_CAPABILITIES, value);\n}\n\nexport function platformCapabilityForProvider(provider: string): PlatformCapabilityDescriptor | undefined {\n return isOpenTagPlatformId(provider) ? OPEN_TAG_PLATFORM_CAPABILITIES[provider] : undefined;\n}\n\nexport function shouldDeliverCallbackRunStatus(provider: string): boolean {\n const strategy = platformCapabilityForProvider(provider)?.livenessStrategy;\n if (!strategy) return true;\n return strategy === \"status_update\" || strategy === \"thread_reply\";\n}\n\nexport function shouldDeliverCallbackProgress(provider: string): boolean {\n const strategy = platformCapabilityForProvider(provider)?.livenessStrategy;\n if (!strategy) return true;\n return strategy === \"status_update\";\n}\n\nexport function shouldDeliverSourceReceipt(provider: string): boolean {\n return platformCapabilityForProvider(provider)?.livenessStrategy === \"source_receipt\";\n}\n","import { zodToJsonSchema } from \"zod-to-json-schema\";\nimport {\n ActionHintSchema,\n AdapterMutationMappingSchema,\n ApplyIntentOutcomeSchema,\n ApplyPlanSchema,\n ApprovalDecisionSchema,\n ArtifactKindSchema,\n CapabilityContractSchema,\n CanonicalMutationDomainSchema,\n ContextPacketSchema,\n ConversationAnchorSchema,\n FollowUpRequestSchema,\n MutationIntentSchema,\n OpenTagEventSchema,\n OpenTagRunResultSchema,\n OpenTagRunSchema,\n ProposalLineageSchema,\n RunAdmissionDecisionSchema,\n RunEventImportanceSchema,\n RunEventSchema,\n RunEventVisibilitySchema,\n PolicyResolutionSchema,\n SuggestedChangesSnapshotSchema,\n SuccessMetricNameSchema,\n WorkItemReferenceSchema,\n WorkThreadSchema\n} from \"./schema.js\";\n\nexport const OpenTagJsonSchemas = {\n OpenTagEvent: zodToJsonSchema(OpenTagEventSchema, \"OpenTagEvent\"),\n OpenTagRun: zodToJsonSchema(OpenTagRunSchema, \"OpenTagRun\"),\n OpenTagRunResult: zodToJsonSchema(OpenTagRunResultSchema, \"OpenTagRunResult\"),\n RunAdmissionDecision: zodToJsonSchema(RunAdmissionDecisionSchema, \"RunAdmissionDecision\"),\n FollowUpRequest: zodToJsonSchema(FollowUpRequestSchema, \"FollowUpRequest\"),\n WorkItemReference: zodToJsonSchema(WorkItemReferenceSchema, \"WorkItemReference\"),\n ConversationAnchor: zodToJsonSchema(ConversationAnchorSchema, \"ConversationAnchor\"),\n WorkThread: zodToJsonSchema(WorkThreadSchema, \"WorkThread\"),\n ContextPacket: zodToJsonSchema(ContextPacketSchema, \"ContextPacket\"),\n RunEventVisibility: zodToJsonSchema(RunEventVisibilitySchema, \"RunEventVisibility\"),\n RunEventImportance: zodToJsonSchema(RunEventImportanceSchema, \"RunEventImportance\"),\n RunEvent: zodToJsonSchema(RunEventSchema, \"RunEvent\"),\n ArtifactKind: zodToJsonSchema(ArtifactKindSchema, \"ArtifactKind\"),\n AdapterMutationMapping: zodToJsonSchema(AdapterMutationMappingSchema, \"AdapterMutationMapping\"),\n CapabilityContract: zodToJsonSchema(CapabilityContractSchema, \"CapabilityContract\"),\n PolicyResolution: zodToJsonSchema(PolicyResolutionSchema, \"PolicyResolution\"),\n ProposalLineage: zodToJsonSchema(ProposalLineageSchema, \"ProposalLineage\"),\n SuccessMetricName: zodToJsonSchema(SuccessMetricNameSchema, \"SuccessMetricName\"),\n ActionHint: zodToJsonSchema(ActionHintSchema, \"ActionHint\"),\n CanonicalMutationDomain: zodToJsonSchema(CanonicalMutationDomainSchema, \"CanonicalMutationDomain\"),\n MutationIntent: zodToJsonSchema(MutationIntentSchema, \"MutationIntent\"),\n SuggestedChangesSnapshot: zodToJsonSchema(SuggestedChangesSnapshotSchema, \"SuggestedChangesSnapshot\"),\n ApprovalDecision: zodToJsonSchema(ApprovalDecisionSchema, \"ApprovalDecision\"),\n ApplyPlan: zodToJsonSchema(ApplyPlanSchema, \"ApplyPlan\"),\n ApplyIntentOutcome: zodToJsonSchema(ApplyIntentOutcomeSchema, \"ApplyIntentOutcome\")\n} as const;\n","import { z } from \"zod\";\n\nexport const ProviderSchema = z.string().min(1);\nexport const SourceSchema = ProviderSchema;\nexport const ContextPointerKindSchema = z.string().min(1).refine((kind) => !kind.includes(\".\"), {\n message: \"Context pointer kind must not include a provider prefix; use the provider field instead.\"\n});\nexport const ExecutorHintSchema = z.enum([\"claude-code\", \"codex\", \"hermes\", \"openclaw\", \"custom\"]);\nexport const PermissionScopeSchema = z.string().min(1);\nexport const CommandArgValueSchema = z.union([z.string(), z.boolean(), z.number()]);\nexport const CommandFlagValueSchema = z.union([CommandArgValueSchema, z.array(CommandArgValueSchema)]);\n\nexport const CommandReferenceSchema = z.object({\n kind: z.enum([\"file\", \"path\", \"line\", \"range\", \"url\", \"text\"]),\n uri: z.string().min(1),\n line: z.number().int().positive().optional(),\n startLine: z.number().int().positive().optional(),\n endLine: z.number().int().positive().optional(),\n title: z.string().min(1).optional()\n});\n\nexport const CommandParseDiagnosticSchema = z.object({\n level: z.enum([\"warning\", \"error\"]),\n code: z.string().min(1),\n message: z.string().min(1),\n token: z.string().min(1).optional()\n});\n\nexport const ParsedOpenTagCommandSchema = z.object({\n version: z.literal(\"v1\"),\n prompt: z.string(),\n flags: z.record(CommandFlagValueSchema),\n references: z.array(CommandReferenceSchema),\n requestedScopes: z.array(PermissionScopeSchema),\n approval: z.enum([\"auto\", \"required\", \"never\"]).optional(),\n network: z.enum([\"restricted\"]).optional(),\n executorHint: ExecutorHintSchema.optional(),\n diagnostics: z.array(CommandParseDiagnosticSchema)\n});\n\nexport const ActorIdentitySchema = z.object({\n provider: ProviderSchema,\n providerUserId: z.string().min(1),\n handle: z.string().min(1).optional(),\n displayName: z.string().min(1).optional(),\n organizationId: z.string().min(1).optional()\n});\n\nexport const AgentTargetSchema = z.object({\n mention: z.string().min(1),\n agentId: z.string().min(1),\n executorHint: ExecutorHintSchema.optional(),\n workspaceHint: z.string().min(1).optional()\n});\n\nexport const OpenTagCommandSchema = z.object({\n rawText: z.string(),\n intent: z.enum([\"fix\", \"review\", \"investigate\", \"explain\", \"run\", \"unknown\"]),\n args: z.record(CommandArgValueSchema),\n parsed: ParsedOpenTagCommandSchema.optional()\n});\n\nexport const ContextPointerSchema = z.object({\n provider: ProviderSchema.optional(),\n kind: ContextPointerKindSchema,\n uri: z.string().min(1),\n line: z.number().int().positive().optional(),\n startLine: z.number().int().positive().optional(),\n endLine: z.number().int().positive().optional(),\n title: z.string().min(1).optional(),\n visibility: z.enum([\"public\", \"private\", \"organization\"])\n});\n\nexport const ContextPacketAssemblyStageSchema = z.enum([\"collect\", \"classify\", \"filter\", \"preserve\", \"summarize\", \"budget\", \"emit\"]);\n\nexport const ContextPacketIntentSchema = z.object({\n rawText: z.string().min(1),\n normalizedIntent: z.string().min(1),\n requestedBy: ActorIdentitySchema\n});\n\nexport const ContextPacketSourceRoleSchema = z.enum([\"primary\", \"supporting\", \"background\"]);\n\nexport const ContextPacketSourceSchema = z.object({\n pointer: ContextPointerSchema,\n role: ContextPacketSourceRoleSchema,\n included: z.boolean(),\n reason: z.string().min(1)\n});\n\nexport const ContextPacketFactConfidenceSchema = z.enum([\"observed\", \"inferred\", \"uncertain\"]);\n\nexport const ContextPacketSchema = z.object({\n summary: z.string().min(1),\n sourcePointers: z.array(ContextPointerSchema),\n intent: ContextPacketIntentSchema.optional(),\n sources: z.array(ContextPacketSourceSchema).optional(),\n facts: z\n .array(\n z.object({\n text: z.string().min(1),\n sourceUri: z.string().min(1).optional(),\n source: ContextPointerSchema.optional(),\n confidence: ContextPacketFactConfidenceSchema.optional()\n })\n )\n .optional(),\n risks: z.array(z.string().min(1)).optional(),\n exclusions: z.array(z.string().min(1)).optional(),\n mustPreserve: z.array(z.string().min(1)).optional(),\n redactions: z\n .array(\n z.object({\n reason: z.string().min(1),\n sourceUri: z.string().min(1).optional()\n })\n )\n .optional(),\n assembly: z\n .object({\n stages: z.array(ContextPacketAssemblyStageSchema),\n budgetTokens: z.number().int().positive().optional(),\n emittedAt: z.string().datetime().optional()\n })\n .optional()\n});\n\nexport const PermissionGrantSchema = z.object({\n scope: PermissionScopeSchema,\n reason: z.string().min(1),\n expiresAt: z.string().datetime().optional()\n});\n\nexport const CapabilityClassSchema = z.enum([\"read_only\", \"callback\", \"external_write\"]);\n\nexport const CapabilityContractSchema = z.object({\n id: z.string().min(1),\n semanticAction: z.string().min(1),\n capabilityClass: CapabilityClassSchema,\n requiresExplicitIntent: z.boolean(),\n mayAutoApplyByPolicy: z.boolean(),\n adapterTargets: z.array(z.string().min(1)).optional(),\n requiredPermissionScopes: z.array(PermissionGrantSchema.shape.scope),\n requiredExecutorConditions: z.array(z.string().min(1)).optional()\n});\n\nexport const PolicyScopeSchema = z.enum([\n \"organization_default\",\n \"adapter_surface_default\",\n \"work_context_owner_container\",\n \"work_item_override\",\n \"primary_anchor_override\"\n]);\n\nexport const PolicyEffectSchema = z.enum([\"allow\", \"deny\"]);\n\nexport const PolicyRuleSchema = z.object({\n id: z.string().min(1),\n scope: PolicyScopeSchema,\n effect: PolicyEffectSchema,\n capabilityId: z.string().min(1).optional(),\n mutationDomain: z.string().min(1).optional(),\n reason: z.string().min(1)\n});\n\nexport const PolicyResolutionSchema = z.object({\n capabilityId: z.string().min(1),\n decision: PolicyEffectSchema,\n resolvedBy: PolicyScopeSchema,\n rules: z.array(PolicyRuleSchema),\n reason: z.string().min(1)\n});\n\nexport const AdapterMutationMappingSchema = z.object({\n id: z.string().min(1),\n adapter: z.string().min(1),\n domain: z.string().min(1),\n strategy: z.string().min(1),\n values: z.record(z.string().min(1)),\n description: z.string().min(1).optional()\n});\n\nexport const SuccessMetricNameSchema = z.enum([\n \"time_to_first_useful_artifact\",\n \"thread_noise_ratio\",\n \"artifact_acceptance_rate\",\n \"context_reuse_rate\",\n \"external_write_approval_rate\",\n \"stale_proposal_rate\"\n]);\n\nexport const CallbackRouteSchema = z.object({\n provider: ProviderSchema,\n uri: z.string().min(1),\n threadKey: z.string().min(1).optional()\n});\n\nexport const WorkItemReferenceSchema = z.object({\n provider: z.string().min(1),\n kind: z.string().min(1),\n externalId: z.string().min(1),\n uri: z.string().min(1),\n title: z.string().min(1).optional(),\n ownerContainer: z\n .object({\n provider: z.string().min(1),\n id: z.string().min(1),\n uri: z.string().min(1).optional()\n })\n .optional(),\n metadata: z.record(z.unknown()).optional()\n});\n\nexport const ConversationAnchorSchema = z.object({\n provider: ProviderSchema,\n kind: z.string().min(1),\n externalId: z.string().min(1),\n uri: z.string().min(1),\n threadKey: z.string().min(1).optional(),\n controlPlane: z.boolean().optional(),\n canApprove: z.boolean().optional(),\n metadata: z.record(z.unknown()).optional()\n});\n\nexport const WorkThreadSchema = z.object({\n id: z.string().min(1).optional(),\n workItemReference: WorkItemReferenceSchema,\n primaryAnchor: ConversationAnchorSchema,\n secondaryAnchors: z.array(ConversationAnchorSchema).optional()\n});\n\nexport const RunAdmissionActionSchema = z.enum([\n \"start\",\n \"drop_duplicate\",\n \"queue_follow_up\",\n \"attach_to_active_run\",\n \"needs_human_decision\"\n]);\n\nexport const RunAdmissionReasonCodeSchema = z.enum([\n \"new_event\",\n \"duplicate_source_event\",\n \"duplicate_source_delivery\",\n \"active_run_same_thread\",\n \"active_write_run_same_thread\",\n \"scope_change_requires_decision\",\n \"policy_rejected\",\n \"repo_context_missing\",\n \"repo_not_bound\",\n \"actor_not_allowed_for_write\",\n \"agent_access_profile_denied\"\n]);\n\nexport const RunAdmissionDecisionSchema = z.object({\n action: RunAdmissionActionSchema,\n reason: z.string().min(1),\n reasonCode: RunAdmissionReasonCodeSchema,\n decidedAt: z.string().datetime(),\n activeRunId: z.string().min(1).optional(),\n eventId: z.string().min(1).optional()\n});\n\nexport const FollowUpRequestStatusSchema = z.enum([\"queued\", \"promoting\", \"promoted\", \"cancelled\"]);\n\nexport const FollowUpRequestSchema = z.object({\n id: z.string().min(1),\n sourceEventId: z.string().min(1),\n conversationKey: z.string().min(1),\n activeRunId: z.string().min(1).optional(),\n event: z.lazy(() => OpenTagEventSchema),\n decision: RunAdmissionDecisionSchema,\n status: FollowUpRequestStatusSchema,\n createdRunId: z.string().min(1).optional(),\n createdAt: z.string().datetime(),\n updatedAt: z.string().datetime()\n});\n\nexport const RunEventVisibilitySchema = z.enum([\"human\", \"audit\", \"debug\"]);\nexport const RunEventImportanceSchema = z.enum([\"low\", \"normal\", \"high\", \"blocking\"]);\n\nexport const RunEventSchema = z.object({\n id: z.union([z.string().min(1), z.number().int().nonnegative()]).optional(),\n runId: z.string().min(1),\n type: z.string().min(1),\n createdAt: z.string().datetime(),\n visibility: RunEventVisibilitySchema,\n importance: RunEventImportanceSchema,\n message: z.string().min(1).optional(),\n payload: z.unknown().optional(),\n sourcePointer: ContextPointerSchema.optional()\n});\n\nexport const ArtifactKindSchema = z.enum([\n \"root_cause_note\",\n \"suggested_changes_snapshot\",\n \"verification_summary\",\n \"patch\",\n \"pull_request\",\n \"risk_note\",\n \"follow_up_task\",\n \"audit_trail\",\n \"decision_record\"\n]);\n\nexport const ActionHintSchema = z.object({\n kind: z.enum([\n \"apply_suggested_changes\",\n \"generate_patch\",\n \"request_human_decision\",\n \"link_to_work_item\",\n \"request_review\",\n \"create_pull_request\",\n \"none\"\n ]),\n targetId: z.string().min(1).optional(),\n selectedIntentIds: z.array(z.string().min(1)).optional(),\n metadata: z.record(z.unknown()).optional()\n});\n\nexport const NextActionSchema = z.union([\n z.string().min(1),\n z.object({\n summary: z.string().min(1),\n hint: ActionHintSchema\n })\n]);\n\nexport const CanonicalMutationDomainSchema = z.enum([\n \"status\",\n \"assignee\",\n \"priority\",\n \"labels\",\n \"schedule\",\n \"review\",\n \"artifact_links\",\n \"pull_request\"\n]);\n\nexport const MutationIntentSchema = z.object({\n intentId: z.string().min(1),\n domain: z.union([CanonicalMutationDomainSchema, z.string().min(1)]),\n action: z.string().min(1),\n summary: z.string().min(1),\n params: z.record(z.unknown()).optional(),\n supersedesIntentIds: z.array(z.string().min(1)).optional(),\n sourcePointer: ContextPointerSchema.optional()\n});\n\nexport const SuggestedChangesSnapshotSchema = z.object({\n proposalId: z.string().min(1),\n createdAt: z.string().datetime(),\n sourceRunId: z.string().min(1).optional(),\n workThread: WorkThreadSchema.optional(),\n summary: z.string().min(1),\n intents: z.array(MutationIntentSchema).min(1),\n preconditions: z.array(z.string().min(1)).optional(),\n supersedesProposalIds: z.array(z.string().min(1)).optional(),\n metadata: z.record(z.unknown()).optional()\n});\n\nexport const MutationIntentActionabilitySchema = z.object({\n proposalId: z.string().min(1),\n intentId: z.string().min(1),\n domain: z.union([CanonicalMutationDomainSchema, z.string().min(1)]),\n status: z.enum([\"current\", \"superseded\", \"stale\", \"conflicted\"]),\n supersededByProposalId: z.string().min(1).optional(),\n supersededByIntentId: z.string().min(1).optional(),\n reason: z.string().min(1).optional()\n});\n\nexport const ProposalLineageSchema = z.object({\n scopeKey: z.string().min(1),\n entries: z.array(MutationIntentActionabilitySchema)\n});\n\nexport const ApprovalDecisionSchema = z.object({\n id: z.string().min(1),\n proposalId: z.string().min(1),\n approvedIntentIds: z.array(z.string().min(1)),\n rejectedIntentIds: z.array(z.string().min(1)).optional(),\n approvedBy: ActorIdentitySchema,\n approvedAt: z.string().datetime(),\n scope: z.enum([\"manual\", \"policy\"]),\n reason: z.string().min(1).optional(),\n metadata: z.record(z.unknown()).optional()\n});\n\nexport const ApplyIntentOutcomeSchema = z.object({\n intentId: z.string().min(1),\n outcome: z.enum([\"applied\", \"skipped\", \"failed\", \"stale\", \"unsupported\"]),\n message: z.string().min(1).optional(),\n externalUri: z.string().min(1).optional(),\n error: z.string().min(1).optional()\n});\n\nexport const ApplyPlanSchema = z.object({\n id: z.string().min(1),\n proposalId: z.string().min(1),\n approvalDecisionId: z.string().min(1),\n selectedIntentIds: z.array(z.string().min(1)),\n mode: z.enum([\"preflight_then_per_intent\", \"atomic\"]).default(\"preflight_then_per_intent\"),\n adapter: z.string().min(1).optional(),\n adapterPlan: z.unknown().optional(),\n outcomes: z.array(ApplyIntentOutcomeSchema).optional()\n});\n\nexport const OpenTagEventSchema = z.object({\n id: z.string().min(1),\n source: SourceSchema,\n sourceEventId: z.string().min(1),\n receivedAt: z.string().datetime(),\n actor: ActorIdentitySchema,\n target: AgentTargetSchema,\n command: OpenTagCommandSchema,\n context: z.array(ContextPointerSchema),\n workItem: WorkItemReferenceSchema.optional(),\n permissions: z.array(PermissionGrantSchema),\n callback: CallbackRouteSchema,\n metadata: z.record(z.unknown())\n});\n\nexport const ResultArtifactSchema = z.object({\n kind: ArtifactKindSchema.optional(),\n title: z.string(),\n uri: z.string(),\n metadata: z.record(z.unknown()).optional()\n});\n\nexport const OpenTagRunResultSchema = z.object({\n conclusion: z.enum([\"success\", \"failure\", \"cancelled\", \"interrupted\", \"timed_out\", \"needs_human\"]),\n summary: z.string(),\n changedFiles: z.array(z.string()).optional(),\n createdPullRequestUrl: z.string().url().optional(),\n artifacts: z.array(ResultArtifactSchema).optional(),\n suggestedChanges: z.array(SuggestedChangesSnapshotSchema).optional(),\n approvalDecision: ApprovalDecisionSchema.optional(),\n applyPlan: ApplyPlanSchema.optional(),\n verification: z\n .array(\n z.object({\n command: z.string(),\n outcome: z.enum([\"passed\", \"failed\", \"not_run\"]),\n excerpt: z.string().optional()\n })\n )\n .optional(),\n nextAction: NextActionSchema.optional()\n});\n\nexport const OpenTagRunSchema = z.object({\n id: z.string().min(1),\n eventId: z.string().min(1),\n status: z.enum([\"queued\", \"assigned\", \"running\", \"needs_approval\", \"succeeded\", \"failed\", \"cancelled\", \"interrupted\", \"timed_out\"]),\n thread: WorkThreadSchema.optional(),\n parentRunId: z.string().min(1).optional(),\n triggeredByAction: ActionHintSchema.optional(),\n sourceProposalId: z.string().min(1).optional(),\n sourceApplyPlanId: z.string().min(1).optional(),\n contextPacket: ContextPacketSchema.optional(),\n assignedRunnerId: z.string().min(1).optional(),\n executor: z.string().min(1).optional(),\n createdAt: z.string().datetime(),\n updatedAt: z.string().datetime(),\n result: OpenTagRunResultSchema.optional()\n});\n\nexport type ActorIdentity = z.infer<typeof ActorIdentitySchema>;\nexport type AgentTarget = z.infer<typeof AgentTargetSchema>;\nexport type OpenTagCommand = z.infer<typeof OpenTagCommandSchema>;\nexport type ParsedOpenTagCommand = z.infer<typeof ParsedOpenTagCommandSchema>;\nexport type CommandParseDiagnostic = z.infer<typeof CommandParseDiagnosticSchema>;\nexport type CommandReference = z.infer<typeof CommandReferenceSchema>;\nexport type ContextPointer = z.infer<typeof ContextPointerSchema>;\nexport type ContextPacketAssemblyStage = z.infer<typeof ContextPacketAssemblyStageSchema>;\nexport type ContextPacketIntent = z.infer<typeof ContextPacketIntentSchema>;\nexport type ContextPacketSourceRole = z.infer<typeof ContextPacketSourceRoleSchema>;\nexport type ContextPacketSource = z.infer<typeof ContextPacketSourceSchema>;\nexport type ContextPacketFactConfidence = z.infer<typeof ContextPacketFactConfidenceSchema>;\nexport type ContextPacket = z.infer<typeof ContextPacketSchema>;\nexport type PermissionGrant = z.infer<typeof PermissionGrantSchema>;\nexport type CapabilityClass = z.infer<typeof CapabilityClassSchema>;\nexport type CapabilityContract = z.infer<typeof CapabilityContractSchema>;\nexport type PolicyScope = z.infer<typeof PolicyScopeSchema>;\nexport type PolicyEffect = z.infer<typeof PolicyEffectSchema>;\nexport type PolicyRule = z.infer<typeof PolicyRuleSchema>;\nexport type PolicyResolution = z.infer<typeof PolicyResolutionSchema>;\nexport type AdapterMutationMapping = z.infer<typeof AdapterMutationMappingSchema>;\nexport type SuccessMetricName = z.infer<typeof SuccessMetricNameSchema>;\nexport type CallbackRoute = z.infer<typeof CallbackRouteSchema>;\nexport type WorkItemReference = z.infer<typeof WorkItemReferenceSchema>;\nexport type ConversationAnchor = z.infer<typeof ConversationAnchorSchema>;\nexport type WorkThread = z.infer<typeof WorkThreadSchema>;\nexport type RunAdmissionAction = z.infer<typeof RunAdmissionActionSchema>;\nexport type RunAdmissionReasonCode = z.infer<typeof RunAdmissionReasonCodeSchema>;\nexport type RunAdmissionDecision = z.infer<typeof RunAdmissionDecisionSchema>;\nexport type FollowUpRequestStatus = z.infer<typeof FollowUpRequestStatusSchema>;\nexport type FollowUpRequest = z.infer<typeof FollowUpRequestSchema>;\nexport type RunEventVisibility = z.infer<typeof RunEventVisibilitySchema>;\nexport type RunEventImportance = z.infer<typeof RunEventImportanceSchema>;\nexport type RunEvent = z.infer<typeof RunEventSchema>;\nexport type ArtifactKind = z.infer<typeof ArtifactKindSchema>;\nexport type ActionHint = z.infer<typeof ActionHintSchema>;\nexport type NextAction = z.infer<typeof NextActionSchema>;\nexport type CanonicalMutationDomain = z.infer<typeof CanonicalMutationDomainSchema>;\nexport type MutationIntent = z.infer<typeof MutationIntentSchema>;\nexport type SuggestedChangesSnapshot = z.infer<typeof SuggestedChangesSnapshotSchema>;\nexport type MutationIntentActionability = z.infer<typeof MutationIntentActionabilitySchema>;\nexport type ProposalLineage = z.infer<typeof ProposalLineageSchema>;\nexport type ApprovalDecision = z.infer<typeof ApprovalDecisionSchema>;\nexport type ApplyIntentOutcome = z.infer<typeof ApplyIntentOutcomeSchema>;\nexport type ApplyPlan = z.infer<typeof ApplyPlanSchema>;\nexport type ResultArtifact = z.infer<typeof ResultArtifactSchema>;\nexport type OpenTagEvent = z.infer<typeof OpenTagEventSchema>;\nexport type OpenTagRun = z.infer<typeof OpenTagRunSchema>;\nexport type OpenTagRunResult = z.infer<typeof OpenTagRunResultSchema>;\n","import type {\n AgentTarget,\n CommandParseDiagnostic,\n CommandReference,\n OpenTagCommand,\n PermissionGrant\n} from \"./schema.js\";\n\ntype MentionMatch = { matched: false } | ({ matched: true } & OpenTagCommand);\ntype KnownIntent = Exclude<OpenTagCommand[\"intent\"], \"unknown\">;\ntype CommandArgValue = OpenTagCommand[\"args\"][string];\ntype CommandFlagValue = CommandArgValue | CommandArgValue[];\n\nconst INTENTS: KnownIntent[] = [\"fix\", \"review\", \"investigate\", \"explain\", \"run\"];\nconst KNOWN_FLAGS = new Set([\n \"approval\",\n \"executor\",\n \"file\",\n \"label\",\n \"line\",\n \"network\",\n \"path\",\n \"range\",\n \"runner\",\n \"scope\",\n \"timeout\",\n \"url\"\n]);\nconst SINGLE_VALUE_FLAGS = new Set([\"approval\", \"executor\", \"line\", \"network\", \"range\", \"runner\", \"timeout\"]);\nconst APPROVAL_VALUES = new Set<NonNullable<NonNullable<OpenTagCommand[\"parsed\"]>[\"approval\"]>>([\"auto\", \"required\", \"never\"]);\nconst EXECUTOR_HINTS = new Set<AgentTarget[\"executorHint\"]>([\"claude-code\", \"codex\", \"hermes\", \"openclaw\", \"custom\"]);\nconst PERMISSION_SCOPES = new Set<PermissionGrant[\"scope\"]>([\n \"repo:read\",\n \"repo:write\",\n \"issue:comment\",\n \"chat:postMessage\",\n \"reactions:write\",\n \"pr:create\",\n \"pr:update\",\n \"runner:local\",\n \"network:restricted\"\n]);\n\nexport function commandFromRawText(rawText: string): OpenTagCommand {\n const normalizedRawText = rawText.trim();\n const parsed = parseCommandText(normalizedRawText);\n\n return {\n rawText: normalizedRawText,\n intent: parsed.intent,\n args: parsed.args,\n parsed: parsed.command\n };\n}\n\nexport function parseOpenTagMention(body: string, mention = \"@opentag\"): MentionMatch {\n const escaped = mention.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n const pattern = new RegExp(`${escaped}(?=[\\\\s:,.!?]|$)`, \"i\");\n const match = body.match(pattern);\n\n if (typeof match?.index !== \"number\") {\n return { matched: false };\n }\n\n const rawText = extractCommandText(body.slice(match.index + match[0].length), mention);\n if (!rawText) {\n return { matched: false };\n }\n\n return {\n matched: true,\n ...commandFromRawText(rawText)\n };\n}\n\nfunction parseCommandText(rawText: string): { intent: OpenTagCommand[\"intent\"]; args: OpenTagCommand[\"args\"]; command: NonNullable<OpenTagCommand[\"parsed\"]> } {\n const diagnostics: CommandParseDiagnostic[] = [];\n const { tokens, diagnostics: tokenDiagnostics } = tokenizeCommand(rawText);\n diagnostics.push(...tokenDiagnostics);\n\n const firstToken = tokens[0]?.toLowerCase();\n const intent = firstToken && isKnownIntent(firstToken) ? firstToken : \"unknown\";\n const commandTokens = intent === \"unknown\" ? tokens : tokens.slice(1);\n const parsed = parseCommandTokens(commandTokens, diagnostics);\n const references = referencesFromFlags(parsed.flags, diagnostics);\n const requestedScopes = requestedScopesFromFlags(parsed.flags, diagnostics);\n const network = stringValuesForFlag(parsed.flags, \"network\")[0]?.toLowerCase();\n if (network && network !== \"restricted\") {\n diagnostics.push({\n level: \"warning\",\n code: \"invalid_network_policy\",\n message: `Unsupported network policy '${network}'. V1 only supports 'restricted'.`,\n token: network\n });\n }\n const approval = enumValueForFlag(parsed.flags, \"approval\", APPROVAL_VALUES, diagnostics);\n const executorHint = executorHintFromFlags(parsed.flags, diagnostics);\n const normalizedNetwork = network === \"restricted\" ? \"restricted\" : undefined;\n\n if (normalizedNetwork === \"restricted\" && !requestedScopes.includes(\"network:restricted\")) {\n requestedScopes.push(\"network:restricted\");\n }\n\n const args = argsFromParsed(parsed.prompt, parsed.flags);\n if (approval) {\n args.approval = approval;\n }\n if (normalizedNetwork) {\n args.network = normalizedNetwork;\n }\n if (executorHint) {\n args.executor = executorHint;\n }\n\n if (tokens.length === 0) {\n diagnostics.push({\n level: \"error\",\n code: \"empty_command\",\n message: \"The OpenTag command is empty.\"\n });\n }\n\n const command: NonNullable<OpenTagCommand[\"parsed\"]> = {\n version: \"v1\",\n prompt: parsed.prompt,\n flags: parsed.flags,\n references,\n requestedScopes,\n diagnostics\n };\n if (approval) {\n command.approval = approval;\n }\n if (normalizedNetwork) {\n command.network = normalizedNetwork;\n }\n if (executorHint) {\n command.executorHint = executorHint;\n }\n\n return { intent, args, command };\n}\n\nfunction extractCommandText(afterMention: string, mention: string): string | null {\n const normalized = afterMention.replace(/\\r\\n/g, \"\\n\").replace(/\\r/g, \"\\n\").replace(/^[ \\t]*[:,-]?[ \\t]*/, \"\");\n const [firstLineRaw = \"\", ...remainingLines] = normalized.split(\"\\n\");\n const firstLine = firstLineRaw.trim();\n\n if (firstLine.length > 0) {\n const lines = [stripContinuationMarker(firstLine)];\n if (shouldConsumeContinuation(firstLine, remainingLines)) {\n lines.push(...collectContinuationLines(remainingLines, mention));\n }\n return joinCommandLines(lines);\n }\n\n return joinCommandLines(collectContinuationLines(remainingLines, mention, true));\n}\n\nfunction shouldConsumeContinuation(firstLine: string, remainingLines: string[]): boolean {\n if (!remainingLines.some((line) => line.trim().length > 0)) {\n return false;\n }\n\n const nextNonBlank = remainingLines.find((line) => line.trim().length > 0)?.trim();\n return (\n firstLine.trimEnd().endsWith(\"\\\\\") ||\n nextNonBlank?.startsWith(\"--\") === true\n );\n}\n\nfunction collectContinuationLines(lines: string[], mention: string, skipLeadingBlank = false): string[] {\n const collected: string[] = [];\n let started = !skipLeadingBlank;\n const mentionPattern = new RegExp(`^${mention.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\")}(?=[\\\\s:,.!?]|$)`, \"i\");\n\n for (const line of lines) {\n const trimmed = line.trim();\n started = true;\n if (mentionPattern.test(trimmed)) {\n break;\n }\n collected.push(trimmed.length === 0 ? \"\" : stripContinuationMarker(trimmed));\n }\n\n return collected;\n}\n\nfunction stripContinuationMarker(line: string): string {\n return line.trimEnd().replace(/\\\\$/, \"\").trim();\n}\n\nfunction joinCommandLines(lines: string[]): string | null {\n const joined = lines.join(\"\\n\").trim();\n return joined.length > 0 ? joined : null;\n}\n\nfunction tokenizeCommand(rawText: string): { tokens: string[]; diagnostics: CommandParseDiagnostic[] } {\n const tokens: string[] = [];\n const diagnostics: CommandParseDiagnostic[] = [];\n let current = \"\";\n let quote: '\"' | \"'\" | null = null;\n let escaped = false;\n\n for (const char of rawText) {\n if (escaped) {\n current += char;\n escaped = false;\n continue;\n }\n\n if (char === \"\\\\\") {\n escaped = true;\n continue;\n }\n\n if (quote) {\n if (char === quote) {\n quote = null;\n } else {\n current += char;\n }\n continue;\n }\n\n if (char === '\"' || char === \"'\") {\n quote = char;\n continue;\n }\n\n if (/\\s/.test(char)) {\n if (current.length > 0) {\n tokens.push(current);\n current = \"\";\n }\n continue;\n }\n\n current += char;\n }\n\n if (escaped) {\n current += \"\\\\\";\n }\n\n if (current.length > 0) {\n tokens.push(current);\n }\n\n if (quote) {\n diagnostics.push({\n level: \"warning\",\n code: \"unterminated_quote\",\n message: `Command contains an unterminated ${quote} quote.`\n });\n }\n\n return { tokens, diagnostics };\n}\n\nfunction parseCommandTokens(\n tokens: string[],\n diagnostics: CommandParseDiagnostic[]\n): { prompt: string; flags: Record<string, CommandFlagValue> } {\n const promptTokens: string[] = [];\n const flags: Record<string, CommandFlagValue> = {};\n\n for (let index = 0; index < tokens.length; index += 1) {\n const token = tokens[index];\n if (!token) continue;\n\n if (!token.startsWith(\"--\") || token === \"--\") {\n promptTokens.push(token);\n continue;\n }\n\n const withoutPrefix = token.slice(2);\n const equalsIndex = withoutPrefix.indexOf(\"=\");\n const rawName = equalsIndex >= 0 ? withoutPrefix.slice(0, equalsIndex) : withoutPrefix;\n const name = normalizeFlagName(rawName);\n if (!name) {\n diagnostics.push({\n level: \"warning\",\n code: \"empty_flag\",\n message: \"Command contains an empty flag name.\",\n token\n });\n continue;\n }\n\n if (!KNOWN_FLAGS.has(name)) {\n diagnostics.push({\n level: \"warning\",\n code: \"unknown_flag\",\n message: `Unknown OpenTag command flag '--${name}'.`,\n token\n });\n }\n\n let value: CommandArgValue = true;\n if (equalsIndex >= 0) {\n value = parseFlagValue(withoutPrefix.slice(equalsIndex + 1));\n } else {\n const nextToken = tokens[index + 1];\n if (nextToken && !nextToken.startsWith(\"--\")) {\n value = parseFlagValue(nextToken);\n index += 1;\n }\n }\n\n if (flags[name] !== undefined && SINGLE_VALUE_FLAGS.has(name)) {\n diagnostics.push({\n level: \"warning\",\n code: \"duplicate_flag\",\n message: `Flag '--${name}' was provided more than once; later consumers should treat the last value as authoritative.`,\n token\n });\n }\n appendFlagValue(flags, name, value);\n }\n\n return { prompt: promptTokens.join(\" \").trim(), flags };\n}\n\nfunction normalizeFlagName(name: string): string {\n return name.trim().toLowerCase();\n}\n\nfunction parseFlagValue(value: string): CommandArgValue {\n const trimmed = value.trim();\n if (/^-?\\d+(\\.\\d+)?$/.test(trimmed)) {\n return Number(trimmed);\n }\n if (trimmed.toLowerCase() === \"true\") return true;\n if (trimmed.toLowerCase() === \"false\") return false;\n return trimmed;\n}\n\nfunction appendFlagValue(flags: Record<string, CommandFlagValue>, name: string, value: CommandArgValue): void {\n const existing = flags[name];\n if (existing === undefined) {\n flags[name] = value;\n } else if (Array.isArray(existing)) {\n existing.push(value);\n } else {\n flags[name] = [existing, value];\n }\n}\n\nfunction argsFromParsed(prompt: string, flags: Record<string, CommandFlagValue>): OpenTagCommand[\"args\"] {\n const args: OpenTagCommand[\"args\"] = {};\n if (prompt.length > 0) {\n args.prompt = prompt;\n }\n\n for (const [name, value] of Object.entries(flags)) {\n args[name] = collapseArgValue(value);\n }\n\n return args;\n}\n\nfunction collapseArgValue(value: CommandFlagValue): CommandArgValue {\n if (!Array.isArray(value)) {\n return value;\n }\n return value.map((entry) => String(entry)).join(\",\");\n}\n\nfunction referencesFromFlags(flags: Record<string, CommandFlagValue>, diagnostics: CommandParseDiagnostic[]): CommandReference[] {\n const references: CommandReference[] = [];\n const line = lineFromFlag(flags, diagnostics);\n const range = rangeFromFlag(flags, diagnostics);\n\n for (const uri of stringValuesForFlag(flags, \"file\")) {\n references.push(commandReference(\"file\", uri, line, range));\n }\n for (const uri of stringValuesForFlag(flags, \"path\")) {\n references.push(commandReference(\"path\", uri, line, range));\n }\n for (const uri of stringValuesForFlag(flags, \"url\")) {\n references.push(commandReference(\"url\", uri, undefined, undefined));\n }\n\n if (references.length === 0 && line !== undefined) {\n references.push(commandReference(\"line\", String(line), line, undefined));\n }\n if (references.length === 0 && range !== undefined) {\n references.push(commandReference(\"range\", `${range.startLine}-${range.endLine}`, undefined, range));\n }\n\n return references;\n}\n\nfunction commandReference(\n kind: CommandReference[\"kind\"],\n uri: string,\n line: number | undefined,\n range: { startLine: number; endLine: number } | undefined\n): CommandReference {\n const reference: CommandReference = { kind, uri };\n if (line !== undefined) {\n reference.line = line;\n }\n if (range !== undefined) {\n reference.startLine = range.startLine;\n reference.endLine = range.endLine;\n }\n return reference;\n}\n\nfunction requestedScopesFromFlags(\n flags: Record<string, CommandFlagValue>,\n diagnostics: CommandParseDiagnostic[]\n): PermissionGrant[\"scope\"][] {\n const requestedScopes: PermissionGrant[\"scope\"][] = [];\n\n for (const scope of stringValuesForFlag(flags, \"scope\")) {\n if (PERMISSION_SCOPES.has(scope as PermissionGrant[\"scope\"])) {\n appendUnique(requestedScopes, scope as PermissionGrant[\"scope\"]);\n } else {\n diagnostics.push({\n level: \"warning\",\n code: \"invalid_scope\",\n message: `Unsupported permission scope '${scope}'.`,\n token: scope\n });\n }\n }\n\n return requestedScopes;\n}\n\nfunction enumValueForFlag<T extends string>(\n flags: Record<string, CommandFlagValue>,\n name: string,\n allowed: Set<T>,\n diagnostics: CommandParseDiagnostic[]\n): T | undefined {\n const value = stringValuesForFlag(flags, name).at(-1)?.toLowerCase();\n if (!value) return undefined;\n if (allowed.has(value as T)) {\n return value as T;\n }\n diagnostics.push({\n level: \"warning\",\n code: `invalid_${name}`,\n message: `Unsupported ${name} value '${value}'.`,\n token: value\n });\n return undefined;\n}\n\nfunction executorHintFromFlags(\n flags: Record<string, CommandFlagValue>,\n diagnostics: CommandParseDiagnostic[]\n): AgentTarget[\"executorHint\"] | undefined {\n const value = stringValuesForFlag(flags, \"executor\").at(-1)?.toLowerCase();\n if (!value) return undefined;\n if (EXECUTOR_HINTS.has(value as AgentTarget[\"executorHint\"])) {\n return value as AgentTarget[\"executorHint\"];\n }\n diagnostics.push({\n level: \"warning\",\n code: \"invalid_executor\",\n message: `Unsupported executor hint '${value}'.`,\n token: value\n });\n return undefined;\n}\n\nfunction lineFromFlag(flags: Record<string, CommandFlagValue>, diagnostics: CommandParseDiagnostic[]): number | undefined {\n const value = valuesForFlag(flags, \"line\").at(-1);\n if (value === undefined) return undefined;\n const line = typeof value === \"number\" ? value : Number(value);\n if (Number.isInteger(line) && line > 0) {\n return line;\n }\n diagnostics.push({\n level: \"warning\",\n code: \"invalid_line\",\n message: `Line must be a positive integer; received '${String(value)}'.`,\n token: String(value)\n });\n return undefined;\n}\n\nfunction rangeFromFlag(\n flags: Record<string, CommandFlagValue>,\n diagnostics: CommandParseDiagnostic[]\n): { startLine: number; endLine: number } | undefined {\n const value = valuesForFlag(flags, \"range\").at(-1);\n if (value === undefined) return undefined;\n const match = String(value).match(/^(\\d+)-(\\d+)$/);\n if (!match?.[1] || !match[2]) {\n diagnostics.push({\n level: \"warning\",\n code: \"invalid_range\",\n message: `Range must look like '10-20'; received '${String(value)}'.`,\n token: String(value)\n });\n return undefined;\n }\n\n const startLine = Number(match[1]);\n const endLine = Number(match[2]);\n if (startLine > 0 && endLine >= startLine) {\n return { startLine, endLine };\n }\n\n diagnostics.push({\n level: \"warning\",\n code: \"invalid_range\",\n message: `Range start must be less than or equal to range end; received '${String(value)}'.`,\n token: String(value)\n });\n return undefined;\n}\n\nfunction stringValuesForFlag(flags: Record<string, CommandFlagValue>, name: string): string[] {\n return valuesForFlag(flags, name).map((value) => String(value)).filter((value) => value.length > 0);\n}\n\nfunction valuesForFlag(flags: Record<string, CommandFlagValue>, name: string): CommandArgValue[] {\n const value = flags[name];\n if (value === undefined) return [];\n return Array.isArray(value) ? value : [value];\n}\n\nfunction appendUnique<T>(values: T[], value: T): void {\n if (!values.includes(value)) {\n values.push(value);\n }\n}\n\nfunction isKnownIntent(value: string): value is KnownIntent {\n return INTENTS.includes(value as KnownIntent);\n}\n","import { z } from \"zod\";\nimport {\n actionReceiptHeading,\n buildActionReceiptsFromResult,\n type ActionReceipt,\n type ActionReceiptContext,\n type ActionReceiptDecision,\n type ActionReceiptPrimaryDecision,\n type ActionReceiptState\n} from \"./action.js\";\nimport { OpenTagRunResultSchema, type OpenTagRunResult } from \"./schema.js\";\n\nexport const OpenTagPresentationActionSchema = z.object({\n index: z.number().int().positive(),\n proposalId: z.string().min(1).optional(),\n intentId: z.string().min(1).optional(),\n title: z.string().min(1),\n state: z.enum([\"ready_to_apply\", \"needs_approval\", \"needs_setup\", \"unsupported\"]),\n targetLabel: z.string().min(1),\n visibleDecisions: z.array(z.enum([\"apply\", \"approve\", \"reject\", \"continue\"])),\n primaryDecision: z.enum([\"apply\", \"continue\", \"none\"]),\n setupReason: z.string().min(1).optional(),\n details: z.array(z.string().min(1)).optional(),\n detailRows: z.array(z.object({ label: z.string().min(1), value: z.string().min(1) })).optional()\n});\n\nexport const OpenTagRunStatusPresentationSchema = z.object({\n kind: z.literal(\"run_status\"),\n runId: z.string().min(1),\n state: z.enum([\"received\", \"queued\", \"running\", \"waiting_for_approval\", \"completed\", \"failed\", \"cancelled\", \"interrupted\", \"timed_out\"]),\n message: z.string().min(1).optional(),\n nextAction: z.string().min(1).optional(),\n detailVisibility: z.enum([\"source_thread\", \"audit\"]).optional()\n});\n\nexport const OpenTagDoctorCheckPresentationSchema = z.object({\n status: z.enum([\"ok\", \"warn\", \"fail\", \"unknown\"]),\n name: z.string().min(1),\n message: z.string().min(1).optional()\n});\n\nexport const OpenTagDoctorSummaryPresentationSchema = z.object({\n kind: z.literal(\"doctor_summary\"),\n title: z.string().min(1),\n checks: z.array(OpenTagDoctorCheckPresentationSchema)\n});\n\nexport const OpenTagSourceThreadStatusRunSchema = z.object({\n id: z.string().min(1),\n status: z.string().min(1),\n updatedAt: z.string().min(1).optional()\n});\n\nexport const OpenTagSourceThreadQueuedFollowUpSchema = z.object({\n id: z.string().min(1),\n status: z.string().min(1).optional(),\n command: z.string().min(1).optional()\n});\n\nexport const OpenTagSourceThreadStatusPresentationSchema = z.object({\n kind: z.literal(\"source_thread_status\"),\n title: z.string().min(1),\n sourceContainer: z.string().min(1).optional(),\n projectTarget: z.string().min(1).optional(),\n bindingState: z.enum([\"bound\", \"unbound\"]),\n activeRun: OpenTagSourceThreadStatusRunSchema.optional(),\n queuedFollowUps: z.array(OpenTagSourceThreadQueuedFollowUpSchema),\n queuedFollowUpsTotal: z.number().int().nonnegative().optional(),\n currentCommand: z.string().min(1).optional(),\n nextAction: z.string().min(1),\n stopHint: z.string().min(1).optional(),\n detailHint: z.string().min(1).optional()\n});\n\nexport const OpenTagActionReceiptPresentationSchema = z.object({\n kind: z.literal(\"action_receipt\"),\n title: z.string().min(1),\n actions: z.array(OpenTagPresentationActionSchema),\n auditRunId: z.string().min(1).optional()\n});\n\nexport const OpenTagFinalSummaryPresentationSchema = z.object({\n kind: z.literal(\"final_summary\"),\n outcome: z.string().min(1),\n summary: z.string().min(1),\n changedFiles: z.array(z.string().min(1)).optional(),\n verification: OpenTagRunResultSchema.shape.verification,\n nextActions: z.array(z.string().min(1)).optional(),\n actionReceiptTitle: z.string().min(1).optional(),\n actions: z.array(OpenTagPresentationActionSchema).optional(),\n auditRunId: z.string().min(1).optional(),\n result: OpenTagRunResultSchema\n});\n\nexport const OpenTagPresentationSchema = z.discriminatedUnion(\"kind\", [\n OpenTagRunStatusPresentationSchema,\n OpenTagDoctorSummaryPresentationSchema,\n OpenTagSourceThreadStatusPresentationSchema,\n OpenTagActionReceiptPresentationSchema,\n OpenTagFinalSummaryPresentationSchema\n]);\n\nexport type OpenTagPresentationAction = z.infer<typeof OpenTagPresentationActionSchema>;\nexport type OpenTagRunStatusPresentation = z.infer<typeof OpenTagRunStatusPresentationSchema>;\nexport type OpenTagDoctorCheckPresentation = z.infer<typeof OpenTagDoctorCheckPresentationSchema>;\nexport type OpenTagDoctorSummaryPresentation = z.infer<typeof OpenTagDoctorSummaryPresentationSchema>;\nexport type OpenTagSourceThreadStatusRun = z.infer<typeof OpenTagSourceThreadStatusRunSchema>;\nexport type OpenTagSourceThreadQueuedFollowUp = z.infer<typeof OpenTagSourceThreadQueuedFollowUpSchema>;\nexport type OpenTagSourceThreadStatusPresentation = z.infer<typeof OpenTagSourceThreadStatusPresentationSchema>;\nexport type OpenTagActionReceiptPresentation = z.infer<typeof OpenTagActionReceiptPresentationSchema>;\nexport type OpenTagFinalSummaryPresentation = z.infer<typeof OpenTagFinalSummaryPresentationSchema>;\nexport type OpenTagPresentation = z.infer<typeof OpenTagPresentationSchema>;\n\nfunction nextActionSummary(result: OpenTagRunResult): string | undefined {\n if (!result.nextAction) return undefined;\n if (typeof result.nextAction === \"string\") return result.nextAction;\n return result.nextAction.summary;\n}\n\nfunction presentationActionFromReceipt(receipt: ActionReceipt): OpenTagPresentationAction {\n const details = presentationActionDetailsFromReceipt(receipt);\n const detailRows = presentationActionDetailRowsFromReceipt(receipt);\n return {\n index: receipt.candidate.index,\n proposalId: receipt.candidate.proposalId,\n intentId: receipt.candidate.intent.intentId,\n title: receipt.candidate.intent.summary,\n state: receipt.state as ActionReceiptState,\n targetLabel: receipt.targetLabel,\n visibleDecisions: receipt.visibleDecisions as ActionReceiptDecision[],\n primaryDecision: receipt.primaryDecision as ActionReceiptPrimaryDecision,\n ...(receipt.setupReason ? { setupReason: receipt.setupReason } : {}),\n ...(details.length ? { details } : {}),\n ...(detailRows.length ? { detailRows } : {})\n };\n}\n\nfunction stringParam(params: Record<string, unknown> | undefined, key: string): string | undefined {\n const value = params?.[key];\n return typeof value === \"string\" && value.length > 0 ? value : undefined;\n}\n\nfunction stringArrayParam(params: Record<string, unknown> | undefined, key: string): string[] {\n const value = params?.[key];\n if (!Array.isArray(value)) return [];\n return value.filter((item): item is string => typeof item === \"string\" && item.length > 0);\n}\n\nfunction inlineCode(value: string): string {\n return `\\`${value.replace(/`/g, \"\\\\`\")}\\``;\n}\n\nfunction listValue(values: string[]): string {\n return values.join(\"\\n\");\n}\n\nfunction actionDecisionCommand(decision: ActionReceiptDecision, index: number): string {\n return `${decision} ${index}`;\n}\n\nfunction renderVerificationParams(params: Record<string, unknown> | undefined): string[] {\n const value = params?.[\"verification\"];\n if (!Array.isArray(value)) return [];\n return value\n .map((item) => {\n if (!item || typeof item !== \"object\" || Array.isArray(item)) return undefined;\n const command = (item as Record<string, unknown>)[\"command\"];\n const outcome = (item as Record<string, unknown>)[\"outcome\"];\n const summary = (item as Record<string, unknown>)[\"summary\"];\n if (typeof outcome !== \"string\") return undefined;\n const prefix = typeof command === \"string\" && command.length > 0 ? `${inlineCode(command)}: ${outcome}` : outcome;\n return typeof summary === \"string\" && summary.length > 0 ? `${prefix} - ${summary}` : prefix;\n })\n .filter((line): line is string => Boolean(line));\n}\n\nfunction presentationActionDetailsFromReceipt(receipt: ActionReceipt): string[] {\n const details: string[] = [];\n const params = receipt.candidate.intent.params;\n if (receipt.candidate.intent.action === \"create_pull_request\") {\n const head = stringParam(params, \"head\") ?? stringParam(params, \"branch\");\n const base = stringParam(params, \"base\") ?? stringParam(params, \"baseBranch\");\n const changedFiles = stringArrayParam(params, \"changedFiles\");\n if (head || base) details.push(`Branch: \\`${head ?? \"unknown\"}\\` -> \\`${base ?? \"main\"}\\``);\n if (changedFiles.length > 0) details.push(`Changed files: ${changedFiles.map((file) => `\\`${file}\\``).join(\", \")}`);\n }\n if (receipt.candidate.proposalPreconditions?.length) {\n details.push(`Preconditions: ${receipt.candidate.proposalPreconditions.length} check(s) in the audit log.`);\n }\n return details;\n}\n\nfunction presentationActionDetailRowsFromReceipt(receipt: ActionReceipt): Array<{ label: string; value: string }> {\n const candidate = receipt.candidate;\n const params = candidate.intent.params;\n const rows: Array<{ label: string; value: string }> = [{ label: \"Target\", value: receipt.targetLabel }];\n if (receipt.setupReason) rows.push({ label: \"Status\", value: receipt.setupReason });\n if (candidate.intent.action === \"create_pull_request\") {\n const title = stringParam(params, \"title\");\n const head = stringParam(params, \"head\") ?? stringParam(params, \"branch\");\n const base = stringParam(params, \"base\") ?? stringParam(params, \"baseBranch\");\n const changedFiles = stringArrayParam(params, \"changedFiles\");\n const risks = stringArrayParam(params, \"risks\");\n const verification = renderVerificationParams(params);\n if (title) rows.push({ label: \"Title\", value: title });\n if (head || base) rows.push({ label: \"Branch\", value: `${inlineCode(head ?? \"unknown\")} -> ${inlineCode(base ?? \"main\")}` });\n if (changedFiles.length > 0) rows.push({ label: \"Changed files\", value: changedFiles.map(inlineCode).join(\", \") });\n if (verification.length > 0) rows.push({ label: \"Verification\", value: listValue(verification) });\n if (risks.length > 0) rows.push({ label: \"Risks\", value: listValue(risks) });\n }\n if (candidate.proposalPreconditions?.length) {\n rows.push({ label: \"Preconditions\", value: listValue(candidate.proposalPreconditions) });\n }\n return rows;\n}\n\nexport function createRunStatusPresentation(input: {\n runId: string;\n state: OpenTagRunStatusPresentation[\"state\"];\n message?: string;\n nextAction?: string;\n detailVisibility?: OpenTagRunStatusPresentation[\"detailVisibility\"];\n}): OpenTagRunStatusPresentation {\n return OpenTagRunStatusPresentationSchema.parse({\n kind: \"run_status\",\n runId: input.runId,\n state: input.state,\n ...(input.message ? { message: input.message } : {}),\n ...(input.nextAction ? { nextAction: input.nextAction } : {}),\n ...(input.detailVisibility ? { detailVisibility: input.detailVisibility } : {})\n });\n}\n\nexport function createDoctorSummaryPresentation(input: {\n title?: string;\n checks: OpenTagDoctorCheckPresentation[];\n}): OpenTagDoctorSummaryPresentation {\n return OpenTagDoctorSummaryPresentationSchema.parse({\n kind: \"doctor_summary\",\n title: input.title ?? \"OpenTag doctor\",\n checks: input.checks.map((check) => ({\n status: check.status,\n name: check.name,\n ...(check.message ? { message: check.message } : {})\n }))\n });\n}\n\nexport function createSourceThreadStatusPresentation(input: {\n title?: string;\n sourceContainer?: string;\n projectTarget?: string;\n bindingState: OpenTagSourceThreadStatusPresentation[\"bindingState\"];\n activeRun?: OpenTagSourceThreadStatusRun;\n queuedFollowUps?: OpenTagSourceThreadQueuedFollowUp[];\n queuedFollowUpsTotal?: number;\n currentCommand?: string;\n nextAction: string;\n stopHint?: string;\n detailHint?: string;\n}): OpenTagSourceThreadStatusPresentation {\n return OpenTagSourceThreadStatusPresentationSchema.parse({\n kind: \"source_thread_status\",\n title: input.title ?? \"OpenTag status\",\n ...(input.sourceContainer ? { sourceContainer: input.sourceContainer } : {}),\n ...(input.projectTarget ? { projectTarget: input.projectTarget } : {}),\n bindingState: input.bindingState,\n ...(input.activeRun ? { activeRun: input.activeRun } : {}),\n queuedFollowUps: input.queuedFollowUps ?? [],\n ...(input.queuedFollowUpsTotal !== undefined ? { queuedFollowUpsTotal: input.queuedFollowUpsTotal } : {}),\n ...(input.currentCommand ? { currentCommand: input.currentCommand } : {}),\n nextAction: input.nextAction,\n ...(input.stopHint ? { stopHint: input.stopHint } : {}),\n ...(input.detailHint ? { detailHint: input.detailHint } : {})\n });\n}\n\nexport function createActionReceiptPresentation(input: {\n result: OpenTagRunResult;\n receiptContext?: ActionReceiptContext;\n auditRunId?: string;\n}): OpenTagActionReceiptPresentation | null {\n const receipts = buildActionReceiptsFromResult(input.result, input.receiptContext);\n if (receipts.length === 0) return null;\n return OpenTagActionReceiptPresentationSchema.parse({\n kind: \"action_receipt\",\n title: actionReceiptHeading(receipts),\n actions: receipts.map(presentationActionFromReceipt),\n ...(input.auditRunId ? { auditRunId: input.auditRunId } : {})\n });\n}\n\nexport function createFinalSummaryPresentation(input: {\n result: OpenTagRunResult;\n receiptContext?: ActionReceiptContext;\n auditRunId?: string;\n}): OpenTagFinalSummaryPresentation {\n const actionReceipt = createActionReceiptPresentation(input);\n const nextAction = nextActionSummary(input.result);\n return OpenTagFinalSummaryPresentationSchema.parse({\n kind: \"final_summary\",\n outcome: input.result.conclusion,\n summary: input.result.summary,\n ...(input.result.changedFiles?.length ? { changedFiles: input.result.changedFiles } : {}),\n ...(input.result.verification?.length ? { verification: input.result.verification } : {}),\n ...(nextAction ? { nextActions: [nextAction] } : {}),\n ...(actionReceipt ? { actionReceiptTitle: actionReceipt.title, actions: actionReceipt.actions } : {}),\n ...(input.auditRunId ? { auditRunId: input.auditRunId } : {}),\n result: input.result\n });\n}\n\nexport function renderOpenTagPresentationPlainText(presentation: OpenTagPresentation): string {\n if (presentation.kind === \"run_status\") {\n return [\n `Run ${presentation.runId}: ${presentation.state}`,\n ...(presentation.message ? [`Message: ${presentation.message}`] : []),\n ...(presentation.nextAction ? [`Next action: ${presentation.nextAction}`] : [])\n ].join(\"\\n\");\n }\n if (presentation.kind === \"doctor_summary\") {\n return [\n presentation.title,\n ...presentation.checks.map((check) => `${check.status.toUpperCase()} ${check.name}${check.message ? `: ${check.message}` : \"\"}`)\n ].join(\"\\n\");\n }\n if (presentation.kind === \"source_thread_status\") {\n const queuedTotal = presentation.queuedFollowUpsTotal ?? presentation.queuedFollowUps.length;\n const queuedOverflow = Math.max(queuedTotal - presentation.queuedFollowUps.length, 0);\n const queuedIds = presentation.queuedFollowUps.map((followUp) => {\n const status = followUp.status ? ` (${followUp.status})` : \"\";\n const command = followUp.command ? `: ${followUp.command}` : \"\";\n return `${followUp.id}${status}${command}`;\n });\n const queuedDetail =\n queuedIds.length > 0 ? ` (${queuedIds.join(\", \")}${queuedOverflow > 0 ? `, +${queuedOverflow} more` : \"\"})` : \"\";\n const queuedFollowUps =\n queuedTotal === 0\n ? \"none\"\n : `${queuedTotal}${queuedDetail}`;\n const activeRun = presentation.activeRun\n ? `${presentation.activeRun.id} (${presentation.activeRun.status})${presentation.activeRun.updatedAt ? `, updated ${presentation.activeRun.updatedAt}` : \"\"}`\n : \"none\";\n return [\n presentation.title,\n ...(presentation.sourceContainer ? [`Source container: ${presentation.sourceContainer}`] : []),\n `Project Target: ${presentation.projectTarget ?? \"not bound\"}`,\n `Active run: ${activeRun}`,\n ...(presentation.currentCommand ? [`Command: ${presentation.currentCommand}`] : []),\n `Queued follow-ups: ${queuedFollowUps}`,\n `Next action: ${presentation.nextAction}`,\n ...(presentation.stopHint ? [`Stop/timeout: ${presentation.stopHint}`] : []),\n ...(presentation.detailHint ? [`Details: ${presentation.detailHint}`] : [])\n ].join(\"\\n\");\n }\n if (presentation.kind === \"action_receipt\") {\n const lines = [presentation.title];\n for (const action of presentation.actions) {\n lines.push(`${action.index}. ${action.title}`);\n lines.push(`Target: ${action.targetLabel}`);\n if (action.setupReason) lines.push(`Status: ${action.setupReason}`);\n if (action.details?.length) lines.push(...action.details);\n lines.push(`Actions: ${action.visibleDecisions.map((decision) => actionDecisionCommand(decision, action.index)).join(\", \")}`);\n }\n if (presentation.auditRunId) lines.push(`Audit: opentag status --run ${presentation.auditRunId}`);\n return lines.join(\"\\n\");\n }\n return [\n `Finished: ${presentation.outcome}`,\n presentation.summary,\n ...(presentation.changedFiles?.length ? [\"Changed files:\", ...presentation.changedFiles.map((file) => `- ${file}`)] : []),\n ...(presentation.verification?.length ? [\"Verification:\", ...presentation.verification.map((check) => `- ${check.command}: ${check.outcome}`)] : []),\n ...(presentation.nextActions?.length ? [\"Next actions:\", ...presentation.nextActions.map((action) => `- ${action}`)] : []),\n ...(presentation.actions?.length\n ? [\n presentation.actionReceiptTitle ?? \"Suggested actions\",\n ...presentation.actions.flatMap((action) => [\n `${action.index}. ${action.title}`,\n `Target: ${action.targetLabel}`,\n ...(action.setupReason ? [`Status: ${action.setupReason}`] : []),\n ...(action.details?.length ? action.details : []),\n `Actions: ${action.visibleDecisions.map((decision) => actionDecisionCommand(decision, action.index)).join(\", \")}`\n ])\n ]\n : []),\n ...(presentation.auditRunId ? [`Audit: opentag status --run ${presentation.auditRunId}`] : [])\n ].join(\"\\n\");\n}\n","export type ProjectTargetRef = {\n provider: string;\n owner: string;\n repo: string;\n};\n\nexport type EventMetadataWithProjectTarget = {\n metadata?: Record<string, unknown>;\n};\n\nconst PROJECT_TARGET_REF_PATTERN = /^(?:([\\w-]+):)?([\\w.-]+)\\/([\\w.-]+)$/;\n\nfunction normalizeLocalPath(path: string): string {\n const normalized = path.trim().replace(/\\\\/g, \"/\").replace(/\\/+$/, \"\");\n return normalized || \"/\";\n}\n\nfunction safeProjectSegment(value: string, fallback: string): string {\n const safe = value\n .trim()\n .replace(/[^\\w.-]+/g, \"-\")\n .replace(/^-+|-+$/g, \"\");\n return safe || fallback;\n}\n\nfunction basename(path: string): string {\n const segments = normalizeLocalPath(path).split(\"/\").filter(Boolean);\n return segments.at(-1) ?? \"project\";\n}\n\nfunction stableHash(value: string): string {\n let first = 0xdeadbeef ^ value.length;\n let second = 0x41c6ce57 ^ value.length;\n\n for (let index = 0; index < value.length; index += 1) {\n const code = value.charCodeAt(index);\n first = Math.imul(first ^ code, 2654435761);\n second = Math.imul(second ^ code, 1597334677);\n }\n\n first = Math.imul(first ^ (first >>> 16), 2246822507) ^ Math.imul(second ^ (second >>> 13), 3266489909);\n second = Math.imul(second ^ (second >>> 16), 2246822507) ^ Math.imul(first ^ (first >>> 13), 3266489909);\n\n return `${(second >>> 0).toString(36)}${(first >>> 0).toString(36)}`.slice(0, 12);\n}\n\nexport function formatProjectTargetRef(ref: ProjectTargetRef): string {\n return `${ref.provider}:${ref.owner}/${ref.repo}`;\n}\n\nexport function parseProjectTargetRef(value: string): ProjectTargetRef {\n const match = value.match(PROJECT_TARGET_REF_PATTERN);\n if (!match) {\n throw new Error(`Invalid Project Target ref: ${value}`);\n }\n return {\n provider: match[1] ?? \"github\",\n owner: match[2] as string,\n repo: match[3] as string\n };\n}\n\nfunction nonBlankMetadataString(value: unknown): string | null {\n if (typeof value !== \"string\") return null;\n const trimmed = value.trim();\n return trimmed.length > 0 ? trimmed : null;\n}\n\nexport function projectTargetRefFromEvent(input: EventMetadataWithProjectTarget | null | undefined): ProjectTargetRef | null {\n const metadata = input?.metadata;\n if (!metadata) return null;\n\n const owner = nonBlankMetadataString(metadata[\"owner\"]);\n const repo = nonBlankMetadataString(metadata[\"repo\"]);\n if (!owner || !repo) return null;\n\n const rawProvider = metadata[\"repoProvider\"];\n const provider = rawProvider === undefined ? \"github\" : nonBlankMetadataString(rawProvider);\n if (!provider) return null;\n\n return {\n provider,\n owner,\n repo\n };\n}\n\nexport function projectTargetRefFromLocalPath(path: string): ProjectTargetRef {\n const normalizedPath = normalizeLocalPath(path);\n return {\n provider: \"local\",\n owner: `path_${stableHash(normalizedPath)}`,\n repo: safeProjectSegment(basename(path), \"project\")\n };\n}\n","import type {\n ApplyIntentOutcome,\n CapabilityContract,\n ContextPacket,\n ContextPacketFactConfidence,\n ContextPointer,\n ConversationAnchor,\n MutationIntent,\n OpenTagEvent,\n PermissionGrant,\n PolicyResolution,\n PolicyRule,\n PolicyScope,\n WorkItemReference,\n WorkThread\n} from \"./schema.js\";\n\nconst CONTEXT_PACKET_STAGES = [\"collect\", \"classify\", \"filter\", \"preserve\", \"summarize\", \"budget\", \"emit\"] as const;\nconst POLICY_SCOPE_ORDER: PolicyScope[] = [\n \"organization_default\",\n \"adapter_surface_default\",\n \"work_context_owner_container\",\n \"work_item_override\",\n \"primary_anchor_override\"\n];\n\nexport type ContextSourceClassification = \"primary_evidence\" | \"supporting_context\" | \"background_noise\" | \"sensitive_material\";\n\nexport type ClassifiedContextPointer = {\n pointer: ContextPointer;\n classification: ContextSourceClassification;\n reason: string;\n};\n\nfunction contextPacketSourceRole(classification: ContextSourceClassification): \"primary\" | \"supporting\" | \"background\" {\n switch (classification) {\n case \"primary_evidence\":\n return \"primary\";\n case \"supporting_context\":\n return \"supporting\";\n case \"background_noise\":\n case \"sensitive_material\":\n return \"background\";\n }\n}\n\nexport function contextPointerLabel(pointer: ContextPointer): string {\n return pointer.provider ? `${pointer.provider}.${pointer.kind}` : pointer.kind;\n}\n\nexport type ContextPacketAssemblyOptions = {\n budgetTokens?: number;\n risks?: string[];\n exclusions?: string[];\n redactions?: Array<{ reason: string; sourceUri?: string }>;\n hooks?: ContextPacketAssemblyHooks;\n};\n\nexport type ContextPacketAssemblyHooks = {\n collect?(input: { event: OpenTagEvent; pointers: ContextPointer[] }): ContextPointer[];\n classify?(input: { event: OpenTagEvent; classified: ClassifiedContextPointer[] }): ClassifiedContextPointer[];\n filter?(input: { event: OpenTagEvent; classified: ClassifiedContextPointer[] }): ClassifiedContextPointer[];\n preserve?(input: { event: OpenTagEvent; facts: ContextPacketFact[] }): ContextPacketFact[];\n summarize?(input: { event: OpenTagEvent; summary: string }): string;\n budget?(input: {\n event: OpenTagEvent;\n classified: ClassifiedContextPointer[];\n budgetTokens?: number;\n }): ClassifiedContextPointer[];\n emit?(input: { event: OpenTagEvent; packet: ContextPacket }): ContextPacket;\n};\n\nexport type AdapterMutationCompilation<TOperation = unknown> =\n | {\n ok: true;\n adapter: string;\n intentId: string;\n operation: TOperation;\n }\n | {\n ok: false;\n adapter: string;\n outcome: ApplyIntentOutcome;\n };\n\nexport type AdapterMutationCompiler<TOperation = unknown> = {\n adapter: string;\n compile(intent: MutationIntent): AdapterMutationCompilation<TOperation>;\n};\n\nexport type AdapterMutationCompilerRegistry = {\n register<TOperation>(compiler: AdapterMutationCompiler<TOperation>): void;\n get(adapter: string): AdapterMutationCompiler | undefined;\n compile(adapter: string, intents: MutationIntent[]): AdapterMutationCompilation[];\n};\n\nexport function createAdapterMutationCompilerRegistry(compilers: AdapterMutationCompiler[] = []): AdapterMutationCompilerRegistry {\n const byAdapter = new Map(compilers.map((compiler) => [compiler.adapter, compiler]));\n return {\n register(compiler) {\n byAdapter.set(compiler.adapter, compiler);\n },\n get(adapter) {\n return byAdapter.get(adapter);\n },\n compile(adapter, intents) {\n const compiler = byAdapter.get(adapter);\n if (!compiler) {\n return intents.map((intent) => ({\n ok: false,\n adapter,\n outcome: {\n intentId: intent.intentId,\n outcome: \"unsupported\",\n message: `No adapter mutation compiler is registered for ${adapter}.`\n }\n }));\n }\n return intents.map((intent) => compiler.compile(intent));\n }\n };\n}\n\nfunction classifyContextPointer(pointer: ContextPointer): ClassifiedContextPointer {\n if (pointer.kind === \"text\") {\n return { pointer, classification: \"primary_evidence\", reason: \"Original user-authored text is primary evidence.\" };\n }\n if ([\"issue\", \"pull_request\", \"comment\", \"thread\", \"message\"].includes(pointer.kind)) {\n return { pointer, classification: \"primary_evidence\", reason: `${contextPointerLabel(pointer)} is directly attached to the invocation.` };\n }\n if ([\"repo\", \"file\", \"url\"].includes(pointer.kind)) {\n return { pointer, classification: \"supporting_context\", reason: `${contextPointerLabel(pointer)} supports execution but is not itself the request.` };\n }\n return { pointer, classification: \"supporting_context\", reason: \"Pointer is relevant context.\" };\n}\n\nexport function collectContextPointers(event: OpenTagEvent): ContextPointer[] {\n return event.context;\n}\n\nexport function classifyContextPointers(pointers: ContextPointer[]): ClassifiedContextPointer[] {\n return pointers.map((pointer) => classifyContextPointer(pointer));\n}\n\nexport function filterClassifiedContextPointers(classified: ClassifiedContextPointer[]): ClassifiedContextPointer[] {\n return classified.filter((entry) => entry.classification !== \"background_noise\" && entry.classification !== \"sensitive_material\");\n}\n\ntype ContextPacketFact = { text: string; sourceUri?: string; source?: ContextPointer; confidence?: ContextPacketFactConfidence };\n\nfunction metadataString(event: OpenTagEvent, key: string): string | undefined {\n const value = event.metadata[key];\n return typeof value === \"string\" && value.length > 0 ? value : undefined;\n}\n\nfunction metadataStringArray(event: OpenTagEvent, key: string): string[] {\n const value = event.metadata[key];\n if (!Array.isArray(value)) return [];\n return value.filter((item): item is string => typeof item === \"string\" && item.length > 0);\n}\n\nfunction preserveActionLoopFacts(event: OpenTagEvent): ContextPacketFact[] {\n const facts: ContextPacketFact[] = [];\n const threadActionVerb = metadataString(event, \"threadActionVerb\");\n const parentRunId = metadataString(event, \"parentRunId\");\n const sourceProposalId = metadataString(event, \"sourceProposalId\");\n const approvalDecisionId = metadataString(event, \"approvalDecisionId\");\n const sourceApplyPlanId = metadataString(event, \"sourceApplyPlanId\");\n const previousRunSummary = metadataString(event, \"previousRunSummary\");\n const fallbackReason = metadataString(event, \"fallbackReason\");\n const selectedIntentIds = metadataStringArray(event, \"selectedIntentIds\");\n\n if (threadActionVerb) facts.push({ text: `Action loop thread action: ${threadActionVerb}`, confidence: \"observed\" });\n if (parentRunId) facts.push({ text: `Action loop parent run: ${parentRunId}`, confidence: \"observed\" });\n if (sourceProposalId) facts.push({ text: `Action loop proposal: ${sourceProposalId}`, confidence: \"observed\" });\n if (approvalDecisionId) facts.push({ text: `Action loop approval decision: ${approvalDecisionId}`, confidence: \"observed\" });\n if (sourceApplyPlanId) facts.push({ text: `Action loop apply plan: ${sourceApplyPlanId}`, confidence: \"observed\" });\n if (selectedIntentIds.length > 0) facts.push({ text: `Action loop selected intents: ${selectedIntentIds.join(\", \")}`, confidence: \"observed\" });\n if (previousRunSummary) facts.push({ text: `Action loop previous result: ${previousRunSummary}`, confidence: \"observed\" });\n if (fallbackReason) facts.push({ text: `Action loop fallback reason: ${fallbackReason}`, confidence: \"observed\" });\n\n return facts;\n}\n\nexport function preserveContextFacts(event: OpenTagEvent, classified: ClassifiedContextPointer[]): ContextPacketFact[] {\n const sourceUri = classified[0]?.pointer.uri;\n return [\n {\n text: `Requested intent: ${event.command.intent}`,\n ...(sourceUri ? { sourceUri } : {}),\n ...(classified[0]?.pointer ? { source: classified[0].pointer } : {}),\n confidence: \"observed\"\n },\n ...preserveActionLoopFacts(event),\n ...classified.map((entry) => ({\n text: `${entry.classification}: ${contextPointerLabel(entry.pointer)}`,\n sourceUri: entry.pointer.uri,\n source: entry.pointer,\n confidence: \"observed\" as const\n }))\n ];\n}\n\nexport function summarizeContextPacket(event: OpenTagEvent): string {\n // A whitespace-only rawText is functionally empty, so fall back to the derived\n // request label rather than emitting a blank summary.\n return event.command.rawText.trim() || `OpenTag ${event.command.intent} request`;\n}\n\nexport function budgetContextPointers(classified: ClassifiedContextPointer[], budgetTokens?: number): ClassifiedContextPointer[] {\n if (!budgetTokens) return classified;\n const maxPointers = Math.max(1, Math.floor(budgetTokens / 500));\n return classified.slice(0, maxPointers);\n}\n\nexport function assembleContextPacketFromEvent(\n event: OpenTagEvent,\n emittedAt = event.receivedAt,\n options: ContextPacketAssemblyOptions = {}\n): ContextPacket {\n const collected = options.hooks?.collect?.({ event, pointers: collectContextPointers(event) }) ?? collectContextPointers(event);\n const classified = options.hooks?.classify?.({ event, classified: classifyContextPointers(collected) }) ?? classifyContextPointers(collected);\n const filtered =\n options.hooks?.filter?.({ event, classified: filterClassifiedContextPointers(classified) }) ??\n filterClassifiedContextPointers(classified);\n const budgeted =\n options.hooks?.budget?.({\n event,\n classified: budgetContextPointers(filtered, options.budgetTokens),\n ...(options.budgetTokens ? { budgetTokens: options.budgetTokens } : {})\n }) ??\n budgetContextPointers(filtered, options.budgetTokens);\n const writeScopes = event.permissions\n .map((permission) => permission.scope)\n .filter((scope) => scope === \"repo:write\" || scope === \"pr:create\" || scope === \"pr:update\");\n const summary = options.hooks?.summarize?.({ event, summary: summarizeContextPacket(event) }) ?? summarizeContextPacket(event);\n const facts = options.hooks?.preserve?.({ event, facts: preserveContextFacts(event, budgeted) }) ?? preserveContextFacts(event, budgeted);\n const packet = {\n summary,\n sourcePointers: budgeted.map((entry) => entry.pointer),\n intent: {\n // OpenTagCommandSchema.rawText permits an empty string, but\n // ContextPacketIntentSchema.rawText requires min length 1. A\n // whitespace-only rawText is functionally empty, so trim before the\n // emptiness check and fall back to the (always non-empty) summary. The\n // original, untrimmed rawText is preserved whenever it has real content,\n // keeping the emitted packet schema-valid so the store does not accept the\n // run on write and then throw on read.\n rawText: event.command.rawText.trim() ? event.command.rawText : summary,\n normalizedIntent: event.command.intent,\n requestedBy: event.actor\n },\n sources: budgeted.map((entry) => ({\n pointer: entry.pointer,\n role: contextPacketSourceRole(entry.classification),\n included: true,\n reason: entry.reason\n })),\n facts,\n risks:\n options.risks ??\n (writeScopes.length > 0\n ? [`External write-capable scopes were requested: ${writeScopes.join(\", \")}.`]\n : [\"No external write-capable scopes were requested.\"]),\n exclusions: options.exclusions ?? [\"Do not mutate external state unless an explicit capability and policy allow it.\"],\n mustPreserve: [summary],\n ...(options.redactions?.length ? { redactions: options.redactions } : {}),\n assembly: {\n stages: [...CONTEXT_PACKET_STAGES],\n ...(options.budgetTokens ? { budgetTokens: options.budgetTokens } : {}),\n emittedAt\n }\n };\n return options.hooks?.emit?.({ event, packet }) ?? packet;\n}\n\nexport function defaultRunEventMetadata(type: string): {\n visibility: \"human\" | \"audit\" | \"debug\";\n importance: \"low\" | \"normal\" | \"high\" | \"blocking\";\n} {\n const visibility = type.startsWith(\"callback.\") ? \"human\" : type.startsWith(\"executor.log\") ? \"debug\" : \"audit\";\n const importance =\n type === \"run.waiting_for_permission\"\n ? \"blocking\"\n : type === \"run.completed\" || type.startsWith(\"callback.final\")\n ? \"high\"\n : type === \"run.created\"\n ? \"low\"\n : \"normal\";\n return { visibility, importance };\n}\n\nexport const DefaultCapabilityContracts = [\n {\n id: \"reply_thread\",\n semanticAction: \"reply_thread\",\n capabilityClass: \"callback\",\n requiresExplicitIntent: false,\n mayAutoApplyByPolicy: true,\n requiredPermissionScopes: [\"issue:comment\", \"chat:postMessage\"]\n },\n {\n id: \"attach_artifact\",\n semanticAction: \"attach_artifact\",\n capabilityClass: \"callback\",\n requiresExplicitIntent: false,\n mayAutoApplyByPolicy: true,\n requiredPermissionScopes: [\"issue:comment\", \"chat:postMessage\"]\n },\n {\n id: \"create_pr\",\n semanticAction: \"create_pull_request\",\n capabilityClass: \"external_write\",\n requiresExplicitIntent: true,\n mayAutoApplyByPolicy: true,\n requiredPermissionScopes: [\"pr:create\"],\n requiredExecutorConditions: [\"isolated branch exists\"]\n },\n {\n id: \"set_status\",\n semanticAction: \"transition_status\",\n capabilityClass: \"external_write\",\n requiresExplicitIntent: true,\n mayAutoApplyByPolicy: true,\n requiredPermissionScopes: [\"repo:write\"]\n },\n {\n id: \"set_assignee\",\n semanticAction: \"set_assignee\",\n capabilityClass: \"external_write\",\n requiresExplicitIntent: true,\n mayAutoApplyByPolicy: true,\n requiredPermissionScopes: [\"repo:write\"]\n },\n {\n id: \"set_priority\",\n semanticAction: \"set_priority\",\n capabilityClass: \"external_write\",\n requiresExplicitIntent: true,\n mayAutoApplyByPolicy: true,\n requiredPermissionScopes: [\"repo:write\"]\n },\n {\n id: \"set_labels\",\n semanticAction: \"set_labels\",\n capabilityClass: \"external_write\",\n requiresExplicitIntent: true,\n mayAutoApplyByPolicy: true,\n requiredPermissionScopes: [\"repo:write\"]\n },\n {\n id: \"request_review\",\n semanticAction: \"request_review\",\n capabilityClass: \"external_write\",\n requiresExplicitIntent: true,\n mayAutoApplyByPolicy: true,\n adapterTargets: [\"github\"],\n requiredPermissionScopes: [\"pr:update\"]\n }\n] satisfies CapabilityContract[];\n\nfunction firstContextUri(event: OpenTagEvent, input: { provider?: string; kind: string }): string | undefined {\n return event.context.find((pointer) => pointer.kind === input.kind && (!input.provider || pointer.provider === input.provider))?.uri;\n}\n\nexport function workItemReferenceFromEvent(event: OpenTagEvent): WorkItemReference | undefined {\n return event.workItem;\n}\n\nexport function primaryConversationAnchorFromEvent(event: OpenTagEvent): ConversationAnchor {\n const sourcePointer =\n firstContextUri(event, { provider: event.callback.provider, kind: \"comment\" }) ??\n firstContextUri(event, { provider: event.callback.provider, kind: \"message\" }) ??\n firstContextUri(event, { provider: event.callback.provider, kind: \"thread\" }) ??\n firstContextUri(event, { kind: \"url\" });\n return {\n provider: event.callback.provider,\n kind: event.callback.threadKey ? \"thread\" : `${event.callback.provider}_thread`,\n externalId: event.callback.threadKey ?? event.callback.uri,\n uri: sourcePointer ?? event.callback.uri,\n controlPlane: true,\n canApprove: true,\n ...(event.callback.threadKey ? { threadKey: event.callback.threadKey } : {})\n };\n}\n\nfunction callbackConversationKey(callback: OpenTagEvent[\"callback\"]): string {\n return `${callback.provider}:${callback.threadKey ?? callback.uri}`;\n}\n\nfunction metadataRecordString(metadata: Record<string, unknown>, key: string): string | undefined {\n const value = metadata[key];\n return typeof value === \"string\" && value.length > 0 ? value : undefined;\n}\n\nfunction metadataIssueNumber(metadata: Record<string, unknown>): string | undefined {\n const value = metadata[\"issueNumber\"];\n if (typeof value === \"number\" && Number.isInteger(value) && value > 0) return String(value);\n if (typeof value === \"string\" && /^[1-9]\\d*$/.test(value)) return value;\n return undefined;\n}\n\nfunction legacyGitHubIssueConversationKey(event: OpenTagEvent): string | undefined {\n if (event.callback.provider !== \"github\") return undefined;\n const owner = metadataRecordString(event.metadata, \"owner\");\n const repo = metadataRecordString(event.metadata, \"repo\");\n const issueNumber = metadataIssueNumber(event.metadata);\n if (!owner || !repo || !issueNumber) return undefined;\n if (event.callback.threadKey !== `${owner}/${repo}#${issueNumber}`) return undefined;\n return `github:${owner}/${repo}`;\n}\n\nexport function conversationKeyFromEvent(event: OpenTagEvent): string {\n return callbackConversationKey(event.callback);\n}\n\nexport function conversationKeysFromEvent(event: OpenTagEvent): string[] {\n return [...new Set([conversationKeyFromEvent(event), legacyGitHubIssueConversationKey(event)].filter((key): key is string => Boolean(key)))];\n}\n\nexport function workThreadFromEvent(event: OpenTagEvent): WorkThread | undefined {\n const workItemReference = workItemReferenceFromEvent(event);\n if (!workItemReference) return undefined;\n\n const primaryAnchor = primaryConversationAnchorFromEvent(event);\n return {\n id: `thread_${workItemReference.provider}_${workItemReference.externalId}_${primaryAnchor.externalId}`,\n workItemReference,\n primaryAnchor\n };\n}\n\nexport function contextPacketFromEvent(event: OpenTagEvent, emittedAt = event.receivedAt): ContextPacket {\n return assembleContextPacketFromEvent(event, emittedAt);\n}\n\nexport function protocolRunFieldsFromEvent(\n event: OpenTagEvent,\n emittedAt = event.receivedAt\n): { thread?: WorkThread; contextPacket: ContextPacket } {\n const thread = workThreadFromEvent(event);\n const contextPacket = contextPacketFromEvent(event, emittedAt);\n return {\n ...(thread ? { thread } : {}),\n contextPacket\n };\n}\n\nexport function capabilityForMutationIntent(\n intent: MutationIntent,\n capabilities: readonly CapabilityContract[] = DefaultCapabilityContracts\n): CapabilityContract | undefined {\n const capabilityId =\n intent.action === \"create_pull_request\"\n ? \"create_pr\"\n : intent.action === \"request_review\"\n ? \"request_review\"\n : intent.action === \"link_artifact\"\n ? \"attach_artifact\"\n : intent.domain === \"status\"\n ? \"set_status\"\n : intent.domain === \"assignee\"\n ? \"set_assignee\"\n : intent.domain === \"priority\"\n ? \"set_priority\"\n : intent.domain === \"labels\"\n ? \"set_labels\"\n : undefined;\n\n return capabilityId ? capabilities.find((capability) => capability.id === capabilityId) : undefined;\n}\n\nexport function resolvePolicy(input: {\n capabilityId: string;\n mutationDomain?: string;\n rules: PolicyRule[];\n defaultDecision?: \"allow\" | \"deny\";\n}): PolicyResolution {\n const matchingRules = input.rules.filter(\n (rule) =>\n (!rule.capabilityId || rule.capabilityId === input.capabilityId) &&\n (!rule.mutationDomain || rule.mutationDomain === input.mutationDomain)\n );\n const sortedRules = [...matchingRules].sort((left, right) => {\n const scopeDelta = POLICY_SCOPE_ORDER.indexOf(right.scope) - POLICY_SCOPE_ORDER.indexOf(left.scope);\n if (scopeDelta !== 0) return scopeDelta;\n if (left.effect === right.effect) return 0;\n return left.effect === \"deny\" ? -1 : 1;\n });\n const winningRule = sortedRules[0];\n if (winningRule) {\n return {\n capabilityId: input.capabilityId,\n decision: winningRule.effect,\n resolvedBy: winningRule.scope,\n rules: matchingRules,\n reason: winningRule.reason\n };\n }\n\n return {\n capabilityId: input.capabilityId,\n decision: input.defaultDecision ?? \"deny\",\n resolvedBy: \"organization_default\",\n rules: [],\n reason: input.defaultDecision === \"allow\" ? \"Allowed by default policy.\" : \"Denied by default policy.\"\n };\n}\n\nexport function permissionScopesAllowCapability(permissions: PermissionGrant[], capability: CapabilityContract): boolean {\n const grantedScopes = new Set(permissions.map((permission) => permission.scope));\n return capability.requiredPermissionScopes.some((scope) => grantedScopes.has(scope));\n}\n\nexport function preflightMutationIntent(input: {\n intent: MutationIntent;\n permissions: PermissionGrant[];\n policyRules: PolicyRule[];\n adapter?: string;\n executorConditions?: string[];\n capabilities?: readonly CapabilityContract[];\n}): { capability?: CapabilityContract; policyResolution?: PolicyResolution; outcome: ApplyIntentOutcome } {\n const capability = capabilityForMutationIntent(input.intent, input.capabilities);\n if (!capability) {\n return {\n outcome: {\n intentId: input.intent.intentId,\n outcome: \"unsupported\",\n message: `No capability contract maps mutation action ${input.intent.action}.`\n }\n };\n }\n\n if (!permissionScopesAllowCapability(input.permissions, capability)) {\n return {\n capability,\n outcome: {\n intentId: input.intent.intentId,\n outcome: \"unsupported\",\n message: `Missing platform permission for capability ${capability.id}.`\n }\n };\n }\n if (input.adapter && capability.adapterTargets && !capability.adapterTargets.includes(input.adapter)) {\n return {\n capability,\n outcome: {\n intentId: input.intent.intentId,\n outcome: \"unsupported\",\n message: `Capability ${capability.id} cannot be applied by adapter ${input.adapter}.`\n }\n };\n }\n const missingConditions = (capability.requiredExecutorConditions ?? []).filter(\n (condition) => !(input.executorConditions ?? []).includes(condition)\n );\n if (missingConditions.length > 0) {\n return {\n capability,\n outcome: {\n intentId: input.intent.intentId,\n outcome: \"unsupported\",\n message: `Missing executor condition(s) for capability ${capability.id}: ${missingConditions.join(\", \")}.`\n }\n };\n }\n\n const policyResolution = resolvePolicy({\n capabilityId: capability.id,\n mutationDomain: input.intent.domain,\n rules: input.policyRules,\n defaultDecision: capability.capabilityClass === \"external_write\" ? \"deny\" : \"allow\"\n });\n if (policyResolution.decision === \"deny\") {\n return {\n capability,\n policyResolution,\n outcome: {\n intentId: input.intent.intentId,\n outcome: \"unsupported\",\n message: `OpenTag policy denied capability ${capability.id}: ${policyResolution.reason}`\n }\n };\n }\n\n return {\n capability,\n policyResolution,\n outcome: {\n intentId: input.intent.intentId,\n outcome: \"skipped\",\n message: `Preflight passed for ${capability.id}; adapter execution is not implemented in this protocol slice.`\n }\n };\n}\n","export const DEFAULT_MAX_REQUEST_BODY_BYTES = 1024 * 1024;\nexport const DEFAULT_REQUEST_BODY_READ_TIMEOUT_MS = 10_000;\n\nexport class RequestBodyTooLargeError extends Error {\n readonly maxBytes: number;\n readonly contentLength?: number;\n\n constructor(input: { maxBytes: number; contentLength?: number }) {\n super(`Request body exceeds ${input.maxBytes} byte(s).`);\n this.name = \"RequestBodyTooLargeError\";\n this.maxBytes = input.maxBytes;\n if (input.contentLength !== undefined) {\n this.contentLength = input.contentLength;\n }\n }\n}\n\nexport class RequestBodyReadTimeoutError extends Error {\n readonly timeoutMs: number;\n\n constructor(input: { timeoutMs: number }) {\n super(`Request body read timed out after ${input.timeoutMs}ms.`);\n this.name = \"RequestBodyReadTimeoutError\";\n this.timeoutMs = input.timeoutMs;\n }\n}\n\nasync function readChunkWithTimeout(\n reader: ReadableStreamDefaultReader<Uint8Array>,\n remainingMs: number,\n configuredTimeoutMs: number\n): Promise<ReadableStreamReadResult<Uint8Array>> {\n if (remainingMs <= 0) {\n await reader.cancel();\n throw new RequestBodyReadTimeoutError({ timeoutMs: configuredTimeoutMs });\n }\n let timeout: ReturnType<typeof setTimeout> | undefined;\n try {\n return await Promise.race([\n reader.read(),\n new Promise<never>((_, reject) => {\n timeout = setTimeout(() => {\n void reader.cancel();\n reject(new RequestBodyReadTimeoutError({ timeoutMs: configuredTimeoutMs }));\n }, remainingMs);\n })\n ]);\n } finally {\n if (timeout) clearTimeout(timeout);\n }\n}\n\nexport async function readRequestTextWithLimit(\n request: Request,\n input: { maxBytes?: number; timeoutMs?: number } = {}\n): Promise<string> {\n const maxBytes = input.maxBytes ?? DEFAULT_MAX_REQUEST_BODY_BYTES;\n const timeoutMs = input.timeoutMs ?? DEFAULT_REQUEST_BODY_READ_TIMEOUT_MS;\n const deadlineAt = Date.now() + timeoutMs;\n const contentLength = request.headers.get(\"content-length\");\n if (contentLength) {\n const parsedLength = Number(contentLength);\n if (Number.isFinite(parsedLength) && parsedLength > maxBytes) {\n throw new RequestBodyTooLargeError({ maxBytes, contentLength: parsedLength });\n }\n }\n\n const stream = request.body;\n if (!stream) return \"\";\n\n const reader = stream.getReader();\n const chunks: Uint8Array[] = [];\n let totalBytes = 0;\n try {\n while (true) {\n const { done, value } = await readChunkWithTimeout(reader, deadlineAt - Date.now(), timeoutMs);\n if (done) break;\n if (!value) continue;\n totalBytes += value.byteLength;\n if (totalBytes > maxBytes) {\n await reader.cancel();\n throw new RequestBodyTooLargeError({ maxBytes });\n }\n chunks.push(value);\n }\n } finally {\n reader.releaseLock();\n }\n\n const bytes = new Uint8Array(totalBytes);\n let offset = 0;\n for (const chunk of chunks) {\n bytes.set(chunk, offset);\n offset += chunk.byteLength;\n }\n return new TextDecoder().decode(bytes);\n}\n"],"mappings":"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","names":["stripped","rest","selection","reason","z","z"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opentag/core",
3
- "version": "0.3.1",
3
+ "version": "0.3.3",
4
4
  "description": "Core OpenTag protocol schemas, types, JSON Schema, and mention parsing.",
5
5
  "type": "module",
6
6
  "engines": {