@opentag/core 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -580,6 +580,7 @@ var PERMISSION_SCOPES = /* @__PURE__ */ new Set([
580
580
  "repo:write",
581
581
  "issue:comment",
582
582
  "chat:postMessage",
583
+ "reactions:write",
583
584
  "pr:create",
584
585
  "pr:update",
585
586
  "runner:local",
@@ -1177,7 +1178,7 @@ function preserveContextFacts(event, classified) {
1177
1178
  ];
1178
1179
  }
1179
1180
  function summarizeContextPacket(event) {
1180
- return event.command.rawText || `OpenTag ${event.command.intent} request`;
1181
+ return event.command.rawText.trim() || `OpenTag ${event.command.intent} request`;
1181
1182
  }
1182
1183
  function budgetContextPointers(classified, budgetTokens) {
1183
1184
  if (!budgetTokens) return classified;
@@ -1200,7 +1201,14 @@ function assembleContextPacketFromEvent(event, emittedAt = event.receivedAt, opt
1200
1201
  summary,
1201
1202
  sourcePointers: budgeted.map((entry) => entry.pointer),
1202
1203
  intent: {
1203
- rawText: event.command.rawText,
1204
+ // OpenTagCommandSchema.rawText permits an empty string, but
1205
+ // ContextPacketIntentSchema.rawText requires min length 1. A
1206
+ // whitespace-only rawText is functionally empty, so trim before the
1207
+ // emptiness check and fall back to the (always non-empty) summary. The
1208
+ // original, untrimmed rawText is preserved whenever it has real content,
1209
+ // keeping the emitted packet schema-valid so the store does not accept the
1210
+ // run on write and then throw on read.
1211
+ rawText: event.command.rawText.trim() ? event.command.rawText : summary,
1204
1212
  normalizedIntent: event.command.intent,
1205
1213
  requestedBy: event.actor
1206
1214
  },
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/action.ts","../src/json-schema.ts","../src/schema.ts","../src/mention.ts","../src/project-target.ts","../src/protocol.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\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","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 \"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\", \"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\"]),\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 \"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","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 return event.command.rawText || `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 rawText: event.command.rawText,\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"],"mappings":"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","names":["stripped","rest","selection","reason"]}
1
+ {"version":3,"sources":["../src/action.ts","../src/json-schema.ts","../src/schema.ts","../src/mention.ts","../src/project-target.ts","../src/protocol.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\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","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 \"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\", \"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\"]),\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","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"],"mappings":";AA2BA,IAAM,gBAAkD;AAAA,EACtD,SAAS;AAAA,EACT,UAAU;AAAA,EACV,IAAI;AAAA,EACJ,MAAM;AAAA,EACN,OAAO;AAAA,EACP,UAAU;AAAA,EACV,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,SAAS;AACX;AAEA,IAAM,gBAAoE;AAAA,EACxE,EAAE,SAAS,YAAY,MAAM,UAAU;AAAA,EACvC,EAAE,SAAS,eAAe,MAAM,QAAQ;AAAA,EACxC,EAAE,SAAS,uBAAuB,MAAM,WAAW;AAAA,EACnD,EAAE,SAAS,gBAAgB,MAAM,SAAS;AAC5C;AAEA,IAAM,iBAAyC;AAAA,EAC7C,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,WAAW;AAAA,EACX,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,UAAU;AAAA,EACV,WAAW;AAAA,EACX,IAAI;AAAA,EACJ,KAAK;AAAA,EACL,cAAc;AAAA,EACd,eAAe;AACjB;AAEA,SAAS,eAAe,OAAuB;AAC7C,SAAO,MAAM,KAAK,EAAE,QAAQ,qBAAqB,EAAE;AACrD;AAEA,SAAS,aAAa,OAAuB;AAC3C,SAAO,MAAM,QAAQ,uBAAuB,MAAM;AACpD;AAEA,SAAS,eAAe,QAAyC;AAC/D,QAAM,aAAa,OAAO,IAAI,cAAc,EAAE,OAAO,OAAO;AAC5D,QAAM,QAAQ,WAAW,CAAC;AAC1B,MAAI,CAAC,MAAO,QAAO,EAAE,MAAM,SAAS;AACpC,MAAI,MAAM,YAAY,MAAM,SAAS,UAAU,eAAM,QAAO,EAAE,MAAM,MAAM;AAC1E,MAAI,QAAQ,KAAK,KAAK,EAAG,QAAO,EAAE,MAAM,SAAS,OAAO,OAAO,KAAK,EAAE;AACtE,MAAI,MAAM,WAAW,WAAW,EAAG,QAAO,EAAE,MAAM,YAAY,YAAY,MAAM;AAChF,MAAI,MAAM,WAAW,SAAS,EAAG,QAAO,EAAE,MAAM,UAAU,UAAU,MAAM;AAE1E,QAAM,gBAAgB,WAAW,KAAK,CAAC,UAAU,MAAM,WAAW,WAAW,CAAC;AAC9E,MAAI,cAAe,QAAO,EAAE,MAAM,YAAY,YAAY,cAAc;AACxE,QAAM,cAAc,WAAW,KAAK,CAAC,UAAU,MAAM,WAAW,SAAS,CAAC;AAC1E,MAAI,YAAa,QAAO,EAAE,MAAM,UAAU,UAAU,YAAY;AAEhE,QAAM,SAAS,eAAe,MAAM,YAAY,CAAC;AACjD,SAAO,SAAS,EAAE,MAAM,UAAU,OAAO,IAAI,EAAE,MAAM,SAAS;AAChE;AAEA,SAAS,qBAAqB,MAAc,WAAsD;AAChG,MAAI,CAAC,KAAK,KAAK,EAAG,QAAO;AACzB,MAAI,UAAU,SAAS,OAAO;AAC5B,UAAMA,YAAW,KAAK,QAAQ,uBAAuB,EAAE,EAAE,KAAK;AAC9D,WAAOA,UAAS,SAAS,IAAIA,YAAW;AAAA,EAC1C;AACA,MAAI,UAAU,SAAS,SAAU,QAAO,KAAK,KAAK;AAClD,QAAM,gBACJ,UAAU,SAAS,UACf,OAAO,UAAU,KAAK,IACtB,UAAU,SAAS,aACjB,aAAa,UAAU,UAAU,IACjC,UAAU,SAAS,WACjB,aAAa,UAAU,QAAQ,IAC/B,OAAO,KAAK,cAAc,EAAE,KAAK,GAAG;AAC9C,QAAM,UAAU,IAAI,OAAO,WAAW,aAAa,YAAY,GAAG;AAClE,QAAM,WAAW,KAAK,QAAQ,SAAS,EAAE,EAAE,KAAK;AAChD,SAAO,SAAS,SAAS,IAAI,WAAW;AAC1C;AAEO,SAAS,yBAAyB,SAA6C;AACpF,QAAM,OAAO,QAAQ,KAAK;AAC1B,MAAI,CAAC,KAAM,QAAO;AAElB,aAAW,aAAa,eAAe;AACrC,UAAM,QAAQ,KAAK,MAAM,UAAU,OAAO;AAC1C,QAAI,CAAC,MAAO;AACZ,UAAM,WAAW,MAAM,CAAC,KAAK;AAC7B,UAAMC,QAAO,KAAK,MAAM,SAAS,MAAM,EAAE,KAAK;AAC9C,UAAMC,aAAY,eAAeD,MAAK,MAAM,MAAM,CAAC;AACnD,UAAME,UAAS,qBAAqBF,OAAMC,UAAS;AACnD,WAAO;AAAA,MACL,MAAM,UAAU;AAAA,MAChB,WAAAA;AAAA,MACA,SAAS;AAAA,MACT,GAAIC,UAAS,EAAE,QAAAA,QAAO,IAAI,CAAC;AAAA,IAC7B;AAAA,EACF;AAEA,QAAM,CAAC,eAAe,IAAI,GAAG,UAAU,IAAI,KAAK,MAAM,MAAM;AAC5D,QAAM,YAAY,eAAe,YAAY,EAAE,YAAY;AAC3D,QAAM,OAAO,cAAc,SAAS;AACpC,MAAI,CAAC,KAAM,QAAO;AAClB,QAAM,OAAO,WAAW,KAAK,GAAG;AAChC,QAAM,YAAY,eAAe,UAAU;AAC3C,QAAM,SAAS,qBAAqB,MAAM,SAAS;AACnD,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA,SAAS;AAAA,IACT,GAAI,SAAS,EAAE,OAAO,IAAI,CAAC;AAAA,EAC7B;AACF;AAEO,SAAS,uCACd,WACA,aAAa,GACe;AAC5B,QAAM,aAAyC,CAAC;AAChD,MAAI,QAAQ;AACZ,aAAW,YAAY,WAAW;AAChC,eAAW,UAAU,SAAS,SAAS;AACrC,iBAAW,KAAK;AAAA,QACd;AAAA,QACA,YAAY,SAAS;AAAA,QACrB,iBAAiB,SAAS;AAAA,QAC1B,GAAI,SAAS,eAAe,SAAS,EAAE,uBAAuB,SAAS,cAAc,IAAI,CAAC;AAAA,QAC1F;AAAA,MACF,CAAC;AACD,eAAS;AAAA,IACX;AAAA,EACF;AACA,SAAO;AACT;AAEO,SAAS,oCAAoC,QAAsD;AACxG,SAAO,uCAAuC,OAAO,oBAAoB,CAAC,CAAC;AAC7E;;;ACtKA,SAAS,uBAAuB;;;ACAhC,SAAS,SAAS;AAEX,IAAM,iBAAiB,EAAE,OAAO,EAAE,IAAI,CAAC;AACvC,IAAM,eAAe;AACrB,IAAM,2BAA2B,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,KAAK,SAAS,GAAG,GAAG;AAAA,EAC9F,SAAS;AACX,CAAC;AACM,IAAM,qBAAqB,EAAE,KAAK,CAAC,eAAe,SAAS,UAAU,YAAY,QAAQ,CAAC;AAC1F,IAAM,wBAAwB,EAAE,OAAO,EAAE,IAAI,CAAC;AAC9C,IAAM,wBAAwB,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,EAAE,QAAQ,GAAG,EAAE,OAAO,CAAC,CAAC;AAC3E,IAAM,yBAAyB,EAAE,MAAM,CAAC,uBAAuB,EAAE,MAAM,qBAAqB,CAAC,CAAC;AAE9F,IAAM,yBAAyB,EAAE,OAAO;AAAA,EAC7C,MAAM,EAAE,KAAK,CAAC,QAAQ,QAAQ,QAAQ,SAAS,OAAO,MAAM,CAAC;AAAA,EAC7D,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EACrB,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS;AAAA,EAC3C,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS;AAAA,EAChD,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS;AAAA,EAC9C,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS;AACpC,CAAC;AAEM,IAAM,+BAA+B,EAAE,OAAO;AAAA,EACnD,OAAO,EAAE,KAAK,CAAC,WAAW,OAAO,CAAC;AAAA,EAClC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EACtB,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EACzB,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS;AACpC,CAAC;AAEM,IAAM,6BAA6B,EAAE,OAAO;AAAA,EACjD,SAAS,EAAE,QAAQ,IAAI;AAAA,EACvB,QAAQ,EAAE,OAAO;AAAA,EACjB,OAAO,EAAE,OAAO,sBAAsB;AAAA,EACtC,YAAY,EAAE,MAAM,sBAAsB;AAAA,EAC1C,iBAAiB,EAAE,MAAM,qBAAqB;AAAA,EAC9C,UAAU,EAAE,KAAK,CAAC,QAAQ,YAAY,OAAO,CAAC,EAAE,SAAS;AAAA,EACzD,SAAS,EAAE,KAAK,CAAC,YAAY,CAAC,EAAE,SAAS;AAAA,EACzC,cAAc,mBAAmB,SAAS;AAAA,EAC1C,aAAa,EAAE,MAAM,4BAA4B;AACnD,CAAC;AAEM,IAAM,sBAAsB,EAAE,OAAO;AAAA,EAC1C,UAAU;AAAA,EACV,gBAAgB,EAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EAChC,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,EACnC,aAAa,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,EACxC,gBAAgB,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS;AAC7C,CAAC;AAEM,IAAM,oBAAoB,EAAE,OAAO;AAAA,EACxC,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EACzB,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EACzB,cAAc,mBAAmB,SAAS;AAAA,EAC1C,eAAe,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS;AAC5C,CAAC;AAEM,IAAM,uBAAuB,EAAE,OAAO;AAAA,EAC3C,SAAS,EAAE,OAAO;AAAA,EAClB,QAAQ,EAAE,KAAK,CAAC,OAAO,UAAU,eAAe,WAAW,OAAO,SAAS,CAAC;AAAA,EAC5E,MAAM,EAAE,OAAO,qBAAqB;AAAA,EACpC,QAAQ,2BAA2B,SAAS;AAC9C,CAAC;AAEM,IAAM,uBAAuB,EAAE,OAAO;AAAA,EAC3C,UAAU,eAAe,SAAS;AAAA,EAClC,MAAM;AAAA,EACN,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EACrB,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS;AAAA,EAC3C,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS;AAAA,EAChD,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS;AAAA,EAC9C,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,EAClC,YAAY,EAAE,KAAK,CAAC,UAAU,WAAW,cAAc,CAAC;AAC1D,CAAC;AAEM,IAAM,mCAAmC,EAAE,KAAK,CAAC,WAAW,YAAY,UAAU,YAAY,aAAa,UAAU,MAAM,CAAC;AAE5H,IAAM,4BAA4B,EAAE,OAAO;AAAA,EAChD,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EACzB,kBAAkB,EAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EAClC,aAAa;AACf,CAAC;AAEM,IAAM,gCAAgC,EAAE,KAAK,CAAC,WAAW,cAAc,YAAY,CAAC;AAEpF,IAAM,4BAA4B,EAAE,OAAO;AAAA,EAChD,SAAS;AAAA,EACT,MAAM;AAAA,EACN,UAAU,EAAE,QAAQ;AAAA,EACpB,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC;AAC1B,CAAC;AAEM,IAAM,oCAAoC,EAAE,KAAK,CAAC,YAAY,YAAY,WAAW,CAAC;AAEtF,IAAM,sBAAsB,EAAE,OAAO;AAAA,EAC1C,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EACzB,gBAAgB,EAAE,MAAM,oBAAoB;AAAA,EAC5C,QAAQ,0BAA0B,SAAS;AAAA,EAC3C,SAAS,EAAE,MAAM,yBAAyB,EAAE,SAAS;AAAA,EACrD,OAAO,EACJ;AAAA,IACC,EAAE,OAAO;AAAA,MACP,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC;AAAA,MACtB,WAAW,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,MACtC,QAAQ,qBAAqB,SAAS;AAAA,MACtC,YAAY,kCAAkC,SAAS;AAAA,IACzD,CAAC;AAAA,EACH,EACC,SAAS;AAAA,EACZ,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,EAAE,SAAS;AAAA,EAC3C,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,EAAE,SAAS;AAAA,EAChD,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,EAAE,SAAS;AAAA,EAClD,YAAY,EACT;AAAA,IACC,EAAE,OAAO;AAAA,MACP,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC;AAAA,MACxB,WAAW,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,IACxC,CAAC;AAAA,EACH,EACC,SAAS;AAAA,EACZ,UAAU,EACP,OAAO;AAAA,IACN,QAAQ,EAAE,MAAM,gCAAgC;AAAA,IAChD,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS;AAAA,IACnD,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS;AAAA,EAC5C,CAAC,EACA,SAAS;AACd,CAAC;AAEM,IAAM,wBAAwB,EAAE,OAAO;AAAA,EAC5C,OAAO;AAAA,EACP,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EACxB,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS;AAC5C,CAAC;AAEM,IAAM,wBAAwB,EAAE,KAAK,CAAC,aAAa,YAAY,gBAAgB,CAAC;AAEhF,IAAM,2BAA2B,EAAE,OAAO;AAAA,EAC/C,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EACpB,gBAAgB,EAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EAChC,iBAAiB;AAAA,EACjB,wBAAwB,EAAE,QAAQ;AAAA,EAClC,sBAAsB,EAAE,QAAQ;AAAA,EAChC,gBAAgB,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,EAAE,SAAS;AAAA,EACpD,0BAA0B,EAAE,MAAM,sBAAsB,MAAM,KAAK;AAAA,EACnE,4BAA4B,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,EAAE,SAAS;AAClE,CAAC;AAEM,IAAM,oBAAoB,EAAE,KAAK;AAAA,EACtC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAEM,IAAM,qBAAqB,EAAE,KAAK,CAAC,SAAS,MAAM,CAAC;AAEnD,IAAM,mBAAmB,EAAE,OAAO;AAAA,EACvC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EACpB,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,cAAc,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,EACzC,gBAAgB,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,EAC3C,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC;AAC1B,CAAC;AAEM,IAAM,yBAAyB,EAAE,OAAO;AAAA,EAC7C,cAAc,EAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EAC9B,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,OAAO,EAAE,MAAM,gBAAgB;AAAA,EAC/B,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC;AAC1B,CAAC;AAEM,IAAM,+BAA+B,EAAE,OAAO;AAAA,EACnD,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EACpB,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EACzB,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EACxB,UAAU,EAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EAC1B,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;AAAA,EAClC,aAAa,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS;AAC1C,CAAC;AAEM,IAAM,0BAA0B,EAAE,KAAK;AAAA,EAC5C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAEM,IAAM,sBAAsB,EAAE,OAAO;AAAA,EAC1C,UAAU;AAAA,EACV,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EACrB,WAAW,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS;AACxC,CAAC;AAEM,IAAM,0BAA0B,EAAE,OAAO;AAAA,EAC9C,UAAU,EAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EAC1B,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EACtB,YAAY,EAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EAC5B,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EACrB,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,EAClC,gBAAgB,EACb,OAAO;AAAA,IACN,UAAU,EAAE,OAAO,EAAE,IAAI,CAAC;AAAA,IAC1B,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC;AAAA,IACpB,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,EAClC,CAAC,EACA,SAAS;AAAA,EACZ,UAAU,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,SAAS;AAC3C,CAAC;AAEM,IAAM,2BAA2B,EAAE,OAAO;AAAA,EAC/C,UAAU;AAAA,EACV,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EACtB,YAAY,EAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EAC5B,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EACrB,WAAW,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,EACtC,cAAc,EAAE,QAAQ,EAAE,SAAS;AAAA,EACnC,YAAY,EAAE,QAAQ,EAAE,SAAS;AAAA,EACjC,UAAU,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,SAAS;AAC3C,CAAC;AAEM,IAAM,mBAAmB,EAAE,OAAO;AAAA,EACvC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,EAC/B,mBAAmB;AAAA,EACnB,eAAe;AAAA,EACf,kBAAkB,EAAE,MAAM,wBAAwB,EAAE,SAAS;AAC/D,CAAC;AAEM,IAAM,2BAA2B,EAAE,KAAK;AAAA,EAC7C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAEM,IAAM,+BAA+B,EAAE,KAAK;AAAA,EACjD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAEM,IAAM,6BAA6B,EAAE,OAAO;AAAA,EACjD,QAAQ;AAAA,EACR,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EACxB,YAAY;AAAA,EACZ,WAAW,EAAE,OAAO,EAAE,SAAS;AAAA,EAC/B,aAAa,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,EACxC,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS;AACtC,CAAC;AAEM,IAAM,8BAA8B,EAAE,KAAK,CAAC,UAAU,aAAa,YAAY,WAAW,CAAC;AAE3F,IAAM,wBAAwB,EAAE,OAAO;AAAA,EAC5C,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EACpB,eAAe,EAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EAC/B,iBAAiB,EAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EACjC,aAAa,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,EACxC,OAAO,EAAE,KAAK,MAAM,kBAAkB;AAAA,EACtC,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,cAAc,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,EACzC,WAAW,EAAE,OAAO,EAAE,SAAS;AAAA,EAC/B,WAAW,EAAE,OAAO,EAAE,SAAS;AACjC,CAAC;AAEM,IAAM,2BAA2B,EAAE,KAAK,CAAC,SAAS,SAAS,OAAO,CAAC;AACnE,IAAM,2BAA2B,EAAE,KAAK,CAAC,OAAO,UAAU,QAAQ,UAAU,CAAC;AAE7E,IAAM,iBAAiB,EAAE,OAAO;AAAA,EACrC,IAAI,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC,EAAE,SAAS;AAAA,EAC1E,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EACvB,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EACtB,WAAW,EAAE,OAAO,EAAE,SAAS;AAAA,EAC/B,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,EACpC,SAAS,EAAE,QAAQ,EAAE,SAAS;AAAA,EAC9B,eAAe,qBAAqB,SAAS;AAC/C,CAAC;AAEM,IAAM,qBAAqB,EAAE,KAAK;AAAA,EACvC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAEM,IAAM,mBAAmB,EAAE,OAAO;AAAA,EACvC,MAAM,EAAE,KAAK;AAAA,IACX;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AAAA,EACD,UAAU,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,EACrC,mBAAmB,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,EAAE,SAAS;AAAA,EACvD,UAAU,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,SAAS;AAC3C,CAAC;AAEM,IAAM,mBAAmB,EAAE,MAAM;AAAA,EACtC,EAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EAChB,EAAE,OAAO;AAAA,IACP,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC;AAAA,IACzB,MAAM;AAAA,EACR,CAAC;AACH,CAAC;AAEM,IAAM,gCAAgC,EAAE,KAAK;AAAA,EAClD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAEM,IAAM,uBAAuB,EAAE,OAAO;AAAA,EAC3C,UAAU,EAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EAC1B,QAAQ,EAAE,MAAM,CAAC,+BAA+B,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;AAAA,EAClE,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EACxB,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EACzB,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,SAAS;AAAA,EACvC,qBAAqB,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,EAAE,SAAS;AAAA,EACzD,eAAe,qBAAqB,SAAS;AAC/C,CAAC;AAEM,IAAM,iCAAiC,EAAE,OAAO;AAAA,EACrD,YAAY,EAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EAC5B,WAAW,EAAE,OAAO,EAAE,SAAS;AAAA,EAC/B,aAAa,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,EACxC,YAAY,iBAAiB,SAAS;AAAA,EACtC,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EACzB,SAAS,EAAE,MAAM,oBAAoB,EAAE,IAAI,CAAC;AAAA,EAC5C,eAAe,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,EAAE,SAAS;AAAA,EACnD,uBAAuB,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,EAAE,SAAS;AAAA,EAC3D,UAAU,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,SAAS;AAC3C,CAAC;AAEM,IAAM,oCAAoC,EAAE,OAAO;AAAA,EACxD,YAAY,EAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EAC5B,UAAU,EAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EAC1B,QAAQ,EAAE,MAAM,CAAC,+BAA+B,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;AAAA,EAClE,QAAQ,EAAE,KAAK,CAAC,WAAW,cAAc,SAAS,YAAY,CAAC;AAAA,EAC/D,wBAAwB,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,EACnD,sBAAsB,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,EACjD,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS;AACrC,CAAC;AAEM,IAAM,wBAAwB,EAAE,OAAO;AAAA,EAC5C,UAAU,EAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EAC1B,SAAS,EAAE,MAAM,iCAAiC;AACpD,CAAC;AAEM,IAAM,yBAAyB,EAAE,OAAO;AAAA,EAC7C,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EACpB,YAAY,EAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EAC5B,mBAAmB,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;AAAA,EAC5C,mBAAmB,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,EAAE,SAAS;AAAA,EACvD,YAAY;AAAA,EACZ,YAAY,EAAE,OAAO,EAAE,SAAS;AAAA,EAChC,OAAO,EAAE,KAAK,CAAC,UAAU,QAAQ,CAAC;AAAA,EAClC,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,EACnC,UAAU,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,SAAS;AAC3C,CAAC;AAEM,IAAM,2BAA2B,EAAE,OAAO;AAAA,EAC/C,UAAU,EAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EAC1B,SAAS,EAAE,KAAK,CAAC,WAAW,WAAW,UAAU,SAAS,aAAa,CAAC;AAAA,EACxE,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,EACpC,aAAa,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,EACxC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS;AACpC,CAAC;AAEM,IAAM,kBAAkB,EAAE,OAAO;AAAA,EACtC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EACpB,YAAY,EAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EAC5B,oBAAoB,EAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EACpC,mBAAmB,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;AAAA,EAC5C,MAAM,EAAE,KAAK,CAAC,6BAA6B,QAAQ,CAAC,EAAE,QAAQ,2BAA2B;AAAA,EACzF,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,EACpC,aAAa,EAAE,QAAQ,EAAE,SAAS;AAAA,EAClC,UAAU,EAAE,MAAM,wBAAwB,EAAE,SAAS;AACvD,CAAC;AAEM,IAAM,qBAAqB,EAAE,OAAO;AAAA,EACzC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EACpB,QAAQ;AAAA,EACR,eAAe,EAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EAC/B,YAAY,EAAE,OAAO,EAAE,SAAS;AAAA,EAChC,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,SAAS,EAAE,MAAM,oBAAoB;AAAA,EACrC,UAAU,wBAAwB,SAAS;AAAA,EAC3C,aAAa,EAAE,MAAM,qBAAqB;AAAA,EAC1C,UAAU;AAAA,EACV,UAAU,EAAE,OAAO,EAAE,QAAQ,CAAC;AAChC,CAAC;AAEM,IAAM,uBAAuB,EAAE,OAAO;AAAA,EAC3C,MAAM,mBAAmB,SAAS;AAAA,EAClC,OAAO,EAAE,OAAO;AAAA,EAChB,KAAK,EAAE,OAAO;AAAA,EACd,UAAU,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,SAAS;AAC3C,CAAC;AAEM,IAAM,yBAAyB,EAAE,OAAO;AAAA,EAC7C,YAAY,EAAE,KAAK,CAAC,WAAW,WAAW,aAAa,aAAa,CAAC;AAAA,EACrE,SAAS,EAAE,OAAO;AAAA,EAClB,cAAc,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,SAAS;AAAA,EAC3C,uBAAuB,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS;AAAA,EACjD,WAAW,EAAE,MAAM,oBAAoB,EAAE,SAAS;AAAA,EAClD,kBAAkB,EAAE,MAAM,8BAA8B,EAAE,SAAS;AAAA,EACnE,kBAAkB,uBAAuB,SAAS;AAAA,EAClD,WAAW,gBAAgB,SAAS;AAAA,EACpC,cAAc,EACX;AAAA,IACC,EAAE,OAAO;AAAA,MACP,SAAS,EAAE,OAAO;AAAA,MAClB,SAAS,EAAE,KAAK,CAAC,UAAU,UAAU,SAAS,CAAC;AAAA,MAC/C,SAAS,EAAE,OAAO,EAAE,SAAS;AAAA,IAC/B,CAAC;AAAA,EACH,EACC,SAAS;AAAA,EACZ,YAAY,iBAAiB,SAAS;AACxC,CAAC;AAEM,IAAM,mBAAmB,EAAE,OAAO;AAAA,EACvC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EACpB,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EACzB,QAAQ,EAAE,KAAK,CAAC,UAAU,YAAY,WAAW,kBAAkB,aAAa,UAAU,WAAW,CAAC;AAAA,EACtG,QAAQ,iBAAiB,SAAS;AAAA,EAClC,aAAa,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,EACxC,mBAAmB,iBAAiB,SAAS;AAAA,EAC7C,kBAAkB,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,EAC7C,mBAAmB,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,EAC9C,eAAe,oBAAoB,SAAS;AAAA,EAC5C,kBAAkB,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,EAC7C,UAAU,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,EACrC,WAAW,EAAE,OAAO,EAAE,SAAS;AAAA,EAC/B,WAAW,EAAE,OAAO,EAAE,SAAS;AAAA,EAC/B,QAAQ,uBAAuB,SAAS;AAC1C,CAAC;;;ADlbM,IAAM,qBAAqB;AAAA,EAChC,cAAc,gBAAgB,oBAAoB,cAAc;AAAA,EAChE,YAAY,gBAAgB,kBAAkB,YAAY;AAAA,EAC1D,kBAAkB,gBAAgB,wBAAwB,kBAAkB;AAAA,EAC5E,sBAAsB,gBAAgB,4BAA4B,sBAAsB;AAAA,EACxF,iBAAiB,gBAAgB,uBAAuB,iBAAiB;AAAA,EACzE,mBAAmB,gBAAgB,yBAAyB,mBAAmB;AAAA,EAC/E,oBAAoB,gBAAgB,0BAA0B,oBAAoB;AAAA,EAClF,YAAY,gBAAgB,kBAAkB,YAAY;AAAA,EAC1D,eAAe,gBAAgB,qBAAqB,eAAe;AAAA,EACnE,oBAAoB,gBAAgB,0BAA0B,oBAAoB;AAAA,EAClF,oBAAoB,gBAAgB,0BAA0B,oBAAoB;AAAA,EAClF,UAAU,gBAAgB,gBAAgB,UAAU;AAAA,EACpD,cAAc,gBAAgB,oBAAoB,cAAc;AAAA,EAChE,wBAAwB,gBAAgB,8BAA8B,wBAAwB;AAAA,EAC9F,oBAAoB,gBAAgB,0BAA0B,oBAAoB;AAAA,EAClF,kBAAkB,gBAAgB,wBAAwB,kBAAkB;AAAA,EAC5E,iBAAiB,gBAAgB,uBAAuB,iBAAiB;AAAA,EACzE,mBAAmB,gBAAgB,yBAAyB,mBAAmB;AAAA,EAC/E,YAAY,gBAAgB,kBAAkB,YAAY;AAAA,EAC1D,yBAAyB,gBAAgB,+BAA+B,yBAAyB;AAAA,EACjG,gBAAgB,gBAAgB,sBAAsB,gBAAgB;AAAA,EACtE,0BAA0B,gBAAgB,gCAAgC,0BAA0B;AAAA,EACpG,kBAAkB,gBAAgB,wBAAwB,kBAAkB;AAAA,EAC5E,WAAW,gBAAgB,iBAAiB,WAAW;AAAA,EACvD,oBAAoB,gBAAgB,0BAA0B,oBAAoB;AACpF;;;AE1CA,IAAM,UAAyB,CAAC,OAAO,UAAU,eAAe,WAAW,KAAK;AAChF,IAAM,cAAc,oBAAI,IAAI;AAAA,EAC1B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AACD,IAAM,qBAAqB,oBAAI,IAAI,CAAC,YAAY,YAAY,QAAQ,WAAW,SAAS,UAAU,SAAS,CAAC;AAC5G,IAAM,kBAAkB,oBAAI,IAAoE,CAAC,QAAQ,YAAY,OAAO,CAAC;AAC7H,IAAM,iBAAiB,oBAAI,IAAiC,CAAC,eAAe,SAAS,UAAU,YAAY,QAAQ,CAAC;AACpH,IAAM,oBAAoB,oBAAI,IAA8B;AAAA,EAC1D;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAEM,SAAS,mBAAmB,SAAiC;AAClE,QAAM,oBAAoB,QAAQ,KAAK;AACvC,QAAM,SAAS,iBAAiB,iBAAiB;AAEjD,SAAO;AAAA,IACL,SAAS;AAAA,IACT,QAAQ,OAAO;AAAA,IACf,MAAM,OAAO;AAAA,IACb,QAAQ,OAAO;AAAA,EACjB;AACF;AAEO,SAAS,oBAAoB,MAAc,UAAU,YAA0B;AACpF,QAAM,UAAU,QAAQ,QAAQ,uBAAuB,MAAM;AAC7D,QAAM,UAAU,IAAI,OAAO,GAAG,OAAO,oBAAoB,GAAG;AAC5D,QAAM,QAAQ,KAAK,MAAM,OAAO;AAEhC,MAAI,OAAO,OAAO,UAAU,UAAU;AACpC,WAAO,EAAE,SAAS,MAAM;AAAA,EAC1B;AAEA,QAAM,UAAU,mBAAmB,KAAK,MAAM,MAAM,QAAQ,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO;AACrF,MAAI,CAAC,SAAS;AACZ,WAAO,EAAE,SAAS,MAAM;AAAA,EAC1B;AAEA,SAAO;AAAA,IACL,SAAS;AAAA,IACT,GAAG,mBAAmB,OAAO;AAAA,EAC/B;AACF;AAEA,SAAS,iBAAiB,SAAqI;AAC7J,QAAM,cAAwC,CAAC;AAC/C,QAAM,EAAE,QAAQ,aAAa,iBAAiB,IAAI,gBAAgB,OAAO;AACzE,cAAY,KAAK,GAAG,gBAAgB;AAEpC,QAAM,aAAa,OAAO,CAAC,GAAG,YAAY;AAC1C,QAAM,SAAS,cAAc,cAAc,UAAU,IAAI,aAAa;AACtE,QAAM,gBAAgB,WAAW,YAAY,SAAS,OAAO,MAAM,CAAC;AACpE,QAAM,SAAS,mBAAmB,eAAe,WAAW;AAC5D,QAAM,aAAa,oBAAoB,OAAO,OAAO,WAAW;AAChE,QAAM,kBAAkB,yBAAyB,OAAO,OAAO,WAAW;AAC1E,QAAM,UAAU,oBAAoB,OAAO,OAAO,SAAS,EAAE,CAAC,GAAG,YAAY;AAC7E,MAAI,WAAW,YAAY,cAAc;AACvC,gBAAY,KAAK;AAAA,MACf,OAAO;AAAA,MACP,MAAM;AAAA,MACN,SAAS,+BAA+B,OAAO;AAAA,MAC/C,OAAO;AAAA,IACT,CAAC;AAAA,EACH;AACA,QAAM,WAAW,iBAAiB,OAAO,OAAO,YAAY,iBAAiB,WAAW;AACxF,QAAM,eAAe,sBAAsB,OAAO,OAAO,WAAW;AACpE,QAAM,oBAAoB,YAAY,eAAe,eAAe;AAEpE,MAAI,sBAAsB,gBAAgB,CAAC,gBAAgB,SAAS,oBAAoB,GAAG;AACzF,oBAAgB,KAAK,oBAAoB;AAAA,EAC3C;AAEA,QAAM,OAAO,eAAe,OAAO,QAAQ,OAAO,KAAK;AACvD,MAAI,UAAU;AACZ,SAAK,WAAW;AAAA,EAClB;AACA,MAAI,mBAAmB;AACrB,SAAK,UAAU;AAAA,EACjB;AACA,MAAI,cAAc;AAChB,SAAK,WAAW;AAAA,EAClB;AAEA,MAAI,OAAO,WAAW,GAAG;AACvB,gBAAY,KAAK;AAAA,MACf,OAAO;AAAA,MACP,MAAM;AAAA,MACN,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AAEA,QAAM,UAAiD;AAAA,IACrD,SAAS;AAAA,IACT,QAAQ,OAAO;AAAA,IACf,OAAO,OAAO;AAAA,IACd;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACA,MAAI,UAAU;AACZ,YAAQ,WAAW;AAAA,EACrB;AACA,MAAI,mBAAmB;AACrB,YAAQ,UAAU;AAAA,EACpB;AACA,MAAI,cAAc;AAChB,YAAQ,eAAe;AAAA,EACzB;AAEA,SAAO,EAAE,QAAQ,MAAM,QAAQ;AACjC;AAEA,SAAS,mBAAmB,cAAsB,SAAgC;AAChF,QAAM,aAAa,aAAa,QAAQ,SAAS,IAAI,EAAE,QAAQ,OAAO,IAAI,EAAE,QAAQ,uBAAuB,EAAE;AAC7G,QAAM,CAAC,eAAe,IAAI,GAAG,cAAc,IAAI,WAAW,MAAM,IAAI;AACpE,QAAM,YAAY,aAAa,KAAK;AAEpC,MAAI,UAAU,SAAS,GAAG;AACxB,UAAM,QAAQ,CAAC,wBAAwB,SAAS,CAAC;AACjD,QAAI,0BAA0B,WAAW,cAAc,GAAG;AACxD,YAAM,KAAK,GAAG,yBAAyB,gBAAgB,OAAO,CAAC;AAAA,IACjE;AACA,WAAO,iBAAiB,KAAK;AAAA,EAC/B;AAEA,SAAO,iBAAiB,yBAAyB,gBAAgB,SAAS,IAAI,CAAC;AACjF;AAEA,SAAS,0BAA0B,WAAmB,gBAAmC;AACvF,MAAI,CAAC,eAAe,KAAK,CAAC,SAAS,KAAK,KAAK,EAAE,SAAS,CAAC,GAAG;AAC1D,WAAO;AAAA,EACT;AAEA,QAAM,eAAe,eAAe,KAAK,CAAC,SAAS,KAAK,KAAK,EAAE,SAAS,CAAC,GAAG,KAAK;AACjF,SACE,UAAU,QAAQ,EAAE,SAAS,IAAI,KACjC,cAAc,WAAW,IAAI,MAAM;AAEvC;AAEA,SAAS,yBAAyB,OAAiB,SAAiB,mBAAmB,OAAiB;AACtG,QAAM,YAAsB,CAAC;AAC7B,MAAI,UAAU,CAAC;AACf,QAAM,iBAAiB,IAAI,OAAO,IAAI,QAAQ,QAAQ,uBAAuB,MAAM,CAAC,oBAAoB,GAAG;AAE3G,aAAW,QAAQ,OAAO;AACxB,UAAM,UAAU,KAAK,KAAK;AAC1B,cAAU;AACV,QAAI,eAAe,KAAK,OAAO,GAAG;AAChC;AAAA,IACF;AACA,cAAU,KAAK,QAAQ,WAAW,IAAI,KAAK,wBAAwB,OAAO,CAAC;AAAA,EAC7E;AAEA,SAAO;AACT;AAEA,SAAS,wBAAwB,MAAsB;AACrD,SAAO,KAAK,QAAQ,EAAE,QAAQ,OAAO,EAAE,EAAE,KAAK;AAChD;AAEA,SAAS,iBAAiB,OAAgC;AACxD,QAAM,SAAS,MAAM,KAAK,IAAI,EAAE,KAAK;AACrC,SAAO,OAAO,SAAS,IAAI,SAAS;AACtC;AAEA,SAAS,gBAAgB,SAA8E;AACrG,QAAM,SAAmB,CAAC;AAC1B,QAAM,cAAwC,CAAC;AAC/C,MAAI,UAAU;AACd,MAAI,QAA0B;AAC9B,MAAI,UAAU;AAEd,aAAW,QAAQ,SAAS;AAC1B,QAAI,SAAS;AACX,iBAAW;AACX,gBAAU;AACV;AAAA,IACF;AAEA,QAAI,SAAS,MAAM;AACjB,gBAAU;AACV;AAAA,IACF;AAEA,QAAI,OAAO;AACT,UAAI,SAAS,OAAO;AAClB,gBAAQ;AAAA,MACV,OAAO;AACL,mBAAW;AAAA,MACb;AACA;AAAA,IACF;AAEA,QAAI,SAAS,OAAO,SAAS,KAAK;AAChC,cAAQ;AACR;AAAA,IACF;AAEA,QAAI,KAAK,KAAK,IAAI,GAAG;AACnB,UAAI,QAAQ,SAAS,GAAG;AACtB,eAAO,KAAK,OAAO;AACnB,kBAAU;AAAA,MACZ;AACA;AAAA,IACF;AAEA,eAAW;AAAA,EACb;AAEA,MAAI,SAAS;AACX,eAAW;AAAA,EACb;AAEA,MAAI,QAAQ,SAAS,GAAG;AACtB,WAAO,KAAK,OAAO;AAAA,EACrB;AAEA,MAAI,OAAO;AACT,gBAAY,KAAK;AAAA,MACf,OAAO;AAAA,MACP,MAAM;AAAA,MACN,SAAS,oCAAoC,KAAK;AAAA,IACpD,CAAC;AAAA,EACH;AAEA,SAAO,EAAE,QAAQ,YAAY;AAC/B;AAEA,SAAS,mBACP,QACA,aAC6D;AAC7D,QAAM,eAAyB,CAAC;AAChC,QAAM,QAA0C,CAAC;AAEjD,WAAS,QAAQ,GAAG,QAAQ,OAAO,QAAQ,SAAS,GAAG;AACrD,UAAM,QAAQ,OAAO,KAAK;AAC1B,QAAI,CAAC,MAAO;AAEZ,QAAI,CAAC,MAAM,WAAW,IAAI,KAAK,UAAU,MAAM;AAC7C,mBAAa,KAAK,KAAK;AACvB;AAAA,IACF;AAEA,UAAM,gBAAgB,MAAM,MAAM,CAAC;AACnC,UAAM,cAAc,cAAc,QAAQ,GAAG;AAC7C,UAAM,UAAU,eAAe,IAAI,cAAc,MAAM,GAAG,WAAW,IAAI;AACzE,UAAM,OAAO,kBAAkB,OAAO;AACtC,QAAI,CAAC,MAAM;AACT,kBAAY,KAAK;AAAA,QACf,OAAO;AAAA,QACP,MAAM;AAAA,QACN,SAAS;AAAA,QACT;AAAA,MACF,CAAC;AACD;AAAA,IACF;AAEA,QAAI,CAAC,YAAY,IAAI,IAAI,GAAG;AAC1B,kBAAY,KAAK;AAAA,QACf,OAAO;AAAA,QACP,MAAM;AAAA,QACN,SAAS,mCAAmC,IAAI;AAAA,QAChD;AAAA,MACF,CAAC;AAAA,IACH;AAEA,QAAI,QAAyB;AAC7B,QAAI,eAAe,GAAG;AACpB,cAAQ,eAAe,cAAc,MAAM,cAAc,CAAC,CAAC;AAAA,IAC7D,OAAO;AACL,YAAM,YAAY,OAAO,QAAQ,CAAC;AAClC,UAAI,aAAa,CAAC,UAAU,WAAW,IAAI,GAAG;AAC5C,gBAAQ,eAAe,SAAS;AAChC,iBAAS;AAAA,MACX;AAAA,IACF;AAEA,QAAI,MAAM,IAAI,MAAM,UAAa,mBAAmB,IAAI,IAAI,GAAG;AAC7D,kBAAY,KAAK;AAAA,QACf,OAAO;AAAA,QACP,MAAM;AAAA,QACN,SAAS,WAAW,IAAI;AAAA,QACxB;AAAA,MACF,CAAC;AAAA,IACH;AACA,oBAAgB,OAAO,MAAM,KAAK;AAAA,EACpC;AAEA,SAAO,EAAE,QAAQ,aAAa,KAAK,GAAG,EAAE,KAAK,GAAG,MAAM;AACxD;AAEA,SAAS,kBAAkB,MAAsB;AAC/C,SAAO,KAAK,KAAK,EAAE,YAAY;AACjC;AAEA,SAAS,eAAe,OAAgC;AACtD,QAAM,UAAU,MAAM,KAAK;AAC3B,MAAI,kBAAkB,KAAK,OAAO,GAAG;AACnC,WAAO,OAAO,OAAO;AAAA,EACvB;AACA,MAAI,QAAQ,YAAY,MAAM,OAAQ,QAAO;AAC7C,MAAI,QAAQ,YAAY,MAAM,QAAS,QAAO;AAC9C,SAAO;AACT;AAEA,SAAS,gBAAgB,OAAyC,MAAc,OAA8B;AAC5G,QAAM,WAAW,MAAM,IAAI;AAC3B,MAAI,aAAa,QAAW;AAC1B,UAAM,IAAI,IAAI;AAAA,EAChB,WAAW,MAAM,QAAQ,QAAQ,GAAG;AAClC,aAAS,KAAK,KAAK;AAAA,EACrB,OAAO;AACL,UAAM,IAAI,IAAI,CAAC,UAAU,KAAK;AAAA,EAChC;AACF;AAEA,SAAS,eAAe,QAAgB,OAAiE;AACvG,QAAM,OAA+B,CAAC;AACtC,MAAI,OAAO,SAAS,GAAG;AACrB,SAAK,SAAS;AAAA,EAChB;AAEA,aAAW,CAAC,MAAM,KAAK,KAAK,OAAO,QAAQ,KAAK,GAAG;AACjD,SAAK,IAAI,IAAI,iBAAiB,KAAK;AAAA,EACrC;AAEA,SAAO;AACT;AAEA,SAAS,iBAAiB,OAA0C;AAClE,MAAI,CAAC,MAAM,QAAQ,KAAK,GAAG;AACzB,WAAO;AAAA,EACT;AACA,SAAO,MAAM,IAAI,CAAC,UAAU,OAAO,KAAK,CAAC,EAAE,KAAK,GAAG;AACrD;AAEA,SAAS,oBAAoB,OAAyC,aAA2D;AAC/H,QAAM,aAAiC,CAAC;AACxC,QAAM,OAAO,aAAa,OAAO,WAAW;AAC5C,QAAM,QAAQ,cAAc,OAAO,WAAW;AAE9C,aAAW,OAAO,oBAAoB,OAAO,MAAM,GAAG;AACpD,eAAW,KAAK,iBAAiB,QAAQ,KAAK,MAAM,KAAK,CAAC;AAAA,EAC5D;AACA,aAAW,OAAO,oBAAoB,OAAO,MAAM,GAAG;AACpD,eAAW,KAAK,iBAAiB,QAAQ,KAAK,MAAM,KAAK,CAAC;AAAA,EAC5D;AACA,aAAW,OAAO,oBAAoB,OAAO,KAAK,GAAG;AACnD,eAAW,KAAK,iBAAiB,OAAO,KAAK,QAAW,MAAS,CAAC;AAAA,EACpE;AAEA,MAAI,WAAW,WAAW,KAAK,SAAS,QAAW;AACjD,eAAW,KAAK,iBAAiB,QAAQ,OAAO,IAAI,GAAG,MAAM,MAAS,CAAC;AAAA,EACzE;AACA,MAAI,WAAW,WAAW,KAAK,UAAU,QAAW;AAClD,eAAW,KAAK,iBAAiB,SAAS,GAAG,MAAM,SAAS,IAAI,MAAM,OAAO,IAAI,QAAW,KAAK,CAAC;AAAA,EACpG;AAEA,SAAO;AACT;AAEA,SAAS,iBACP,MACA,KACA,MACA,OACkB;AAClB,QAAM,YAA8B,EAAE,MAAM,IAAI;AAChD,MAAI,SAAS,QAAW;AACtB,cAAU,OAAO;AAAA,EACnB;AACA,MAAI,UAAU,QAAW;AACvB,cAAU,YAAY,MAAM;AAC5B,cAAU,UAAU,MAAM;AAAA,EAC5B;AACA,SAAO;AACT;AAEA,SAAS,yBACP,OACA,aAC4B;AAC5B,QAAM,kBAA8C,CAAC;AAErD,aAAW,SAAS,oBAAoB,OAAO,OAAO,GAAG;AACvD,QAAI,kBAAkB,IAAI,KAAiC,GAAG;AAC5D,mBAAa,iBAAiB,KAAiC;AAAA,IACjE,OAAO;AACL,kBAAY,KAAK;AAAA,QACf,OAAO;AAAA,QACP,MAAM;AAAA,QACN,SAAS,iCAAiC,KAAK;AAAA,QAC/C,OAAO;AAAA,MACT,CAAC;AAAA,IACH;AAAA,EACF;AAEA,SAAO;AACT;AAEA,SAAS,iBACP,OACA,MACA,SACA,aACe;AACf,QAAM,QAAQ,oBAAoB,OAAO,IAAI,EAAE,GAAG,EAAE,GAAG,YAAY;AACnE,MAAI,CAAC,MAAO,QAAO;AACnB,MAAI,QAAQ,IAAI,KAAU,GAAG;AAC3B,WAAO;AAAA,EACT;AACA,cAAY,KAAK;AAAA,IACf,OAAO;AAAA,IACP,MAAM,WAAW,IAAI;AAAA,IACrB,SAAS,eAAe,IAAI,WAAW,KAAK;AAAA,IAC5C,OAAO;AAAA,EACT,CAAC;AACD,SAAO;AACT;AAEA,SAAS,sBACP,OACA,aACyC;AACzC,QAAM,QAAQ,oBAAoB,OAAO,UAAU,EAAE,GAAG,EAAE,GAAG,YAAY;AACzE,MAAI,CAAC,MAAO,QAAO;AACnB,MAAI,eAAe,IAAI,KAAoC,GAAG;AAC5D,WAAO;AAAA,EACT;AACA,cAAY,KAAK;AAAA,IACf,OAAO;AAAA,IACP,MAAM;AAAA,IACN,SAAS,8BAA8B,KAAK;AAAA,IAC5C,OAAO;AAAA,EACT,CAAC;AACD,SAAO;AACT;AAEA,SAAS,aAAa,OAAyC,aAA2D;AACxH,QAAM,QAAQ,cAAc,OAAO,MAAM,EAAE,GAAG,EAAE;AAChD,MAAI,UAAU,OAAW,QAAO;AAChC,QAAM,OAAO,OAAO,UAAU,WAAW,QAAQ,OAAO,KAAK;AAC7D,MAAI,OAAO,UAAU,IAAI,KAAK,OAAO,GAAG;AACtC,WAAO;AAAA,EACT;AACA,cAAY,KAAK;AAAA,IACf,OAAO;AAAA,IACP,MAAM;AAAA,IACN,SAAS,8CAA8C,OAAO,KAAK,CAAC;AAAA,IACpE,OAAO,OAAO,KAAK;AAAA,EACrB,CAAC;AACD,SAAO;AACT;AAEA,SAAS,cACP,OACA,aACoD;AACpD,QAAM,QAAQ,cAAc,OAAO,OAAO,EAAE,GAAG,EAAE;AACjD,MAAI,UAAU,OAAW,QAAO;AAChC,QAAM,QAAQ,OAAO,KAAK,EAAE,MAAM,eAAe;AACjD,MAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG;AAC5B,gBAAY,KAAK;AAAA,MACf,OAAO;AAAA,MACP,MAAM;AAAA,MACN,SAAS,2CAA2C,OAAO,KAAK,CAAC;AAAA,MACjE,OAAO,OAAO,KAAK;AAAA,IACrB,CAAC;AACD,WAAO;AAAA,EACT;AAEA,QAAM,YAAY,OAAO,MAAM,CAAC,CAAC;AACjC,QAAM,UAAU,OAAO,MAAM,CAAC,CAAC;AAC/B,MAAI,YAAY,KAAK,WAAW,WAAW;AACzC,WAAO,EAAE,WAAW,QAAQ;AAAA,EAC9B;AAEA,cAAY,KAAK;AAAA,IACf,OAAO;AAAA,IACP,MAAM;AAAA,IACN,SAAS,kEAAkE,OAAO,KAAK,CAAC;AAAA,IACxF,OAAO,OAAO,KAAK;AAAA,EACrB,CAAC;AACD,SAAO;AACT;AAEA,SAAS,oBAAoB,OAAyC,MAAwB;AAC5F,SAAO,cAAc,OAAO,IAAI,EAAE,IAAI,CAAC,UAAU,OAAO,KAAK,CAAC,EAAE,OAAO,CAAC,UAAU,MAAM,SAAS,CAAC;AACpG;AAEA,SAAS,cAAc,OAAyC,MAAiC;AAC/F,QAAM,QAAQ,MAAM,IAAI;AACxB,MAAI,UAAU,OAAW,QAAO,CAAC;AACjC,SAAO,MAAM,QAAQ,KAAK,IAAI,QAAQ,CAAC,KAAK;AAC9C;AAEA,SAAS,aAAgB,QAAa,OAAgB;AACpD,MAAI,CAAC,OAAO,SAAS,KAAK,GAAG;AAC3B,WAAO,KAAK,KAAK;AAAA,EACnB;AACF;AAEA,SAAS,cAAc,OAAqC;AAC1D,SAAO,QAAQ,SAAS,KAAoB;AAC9C;;;AC/gBA,IAAM,6BAA6B;AAEnC,SAAS,mBAAmB,MAAsB;AAChD,QAAM,aAAa,KAAK,KAAK,EAAE,QAAQ,OAAO,GAAG,EAAE,QAAQ,QAAQ,EAAE;AACrE,SAAO,cAAc;AACvB;AAEA,SAAS,mBAAmB,OAAe,UAA0B;AACnE,QAAM,OAAO,MACV,KAAK,EACL,QAAQ,aAAa,GAAG,EACxB,QAAQ,YAAY,EAAE;AACzB,SAAO,QAAQ;AACjB;AAEA,SAAS,SAAS,MAAsB;AACtC,QAAM,WAAW,mBAAmB,IAAI,EAAE,MAAM,GAAG,EAAE,OAAO,OAAO;AACnE,SAAO,SAAS,GAAG,EAAE,KAAK;AAC5B;AAEA,SAAS,WAAW,OAAuB;AACzC,MAAI,QAAQ,aAAa,MAAM;AAC/B,MAAI,SAAS,aAAa,MAAM;AAEhC,WAAS,QAAQ,GAAG,QAAQ,MAAM,QAAQ,SAAS,GAAG;AACpD,UAAM,OAAO,MAAM,WAAW,KAAK;AACnC,YAAQ,KAAK,KAAK,QAAQ,MAAM,UAAU;AAC1C,aAAS,KAAK,KAAK,SAAS,MAAM,UAAU;AAAA,EAC9C;AAEA,UAAQ,KAAK,KAAK,QAAS,UAAU,IAAK,UAAU,IAAI,KAAK,KAAK,SAAU,WAAW,IAAK,UAAU;AACtG,WAAS,KAAK,KAAK,SAAU,WAAW,IAAK,UAAU,IAAI,KAAK,KAAK,QAAS,UAAU,IAAK,UAAU;AAEvG,SAAO,IAAI,WAAW,GAAG,SAAS,EAAE,CAAC,IAAI,UAAU,GAAG,SAAS,EAAE,CAAC,GAAG,MAAM,GAAG,EAAE;AAClF;AAEO,SAAS,uBAAuB,KAA+B;AACpE,SAAO,GAAG,IAAI,QAAQ,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI;AACjD;AAEO,SAAS,sBAAsB,OAAiC;AACrE,QAAM,QAAQ,MAAM,MAAM,0BAA0B;AACpD,MAAI,CAAC,OAAO;AACV,UAAM,IAAI,MAAM,+BAA+B,KAAK,EAAE;AAAA,EACxD;AACA,SAAO;AAAA,IACL,UAAU,MAAM,CAAC,KAAK;AAAA,IACtB,OAAO,MAAM,CAAC;AAAA,IACd,MAAM,MAAM,CAAC;AAAA,EACf;AACF;AAEA,SAAS,uBAAuB,OAA+B;AAC7D,MAAI,OAAO,UAAU,SAAU,QAAO;AACtC,QAAM,UAAU,MAAM,KAAK;AAC3B,SAAO,QAAQ,SAAS,IAAI,UAAU;AACxC;AAEO,SAAS,0BAA0B,OAAmF;AAC3H,QAAM,WAAW,OAAO;AACxB,MAAI,CAAC,SAAU,QAAO;AAEtB,QAAM,QAAQ,uBAAuB,SAAS,OAAO,CAAC;AACtD,QAAM,OAAO,uBAAuB,SAAS,MAAM,CAAC;AACpD,MAAI,CAAC,SAAS,CAAC,KAAM,QAAO;AAE5B,QAAM,cAAc,SAAS,cAAc;AAC3C,QAAM,WAAW,gBAAgB,SAAY,WAAW,uBAAuB,WAAW;AAC1F,MAAI,CAAC,SAAU,QAAO;AAEtB,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;AAEO,SAAS,8BAA8B,MAAgC;AAC5E,QAAM,iBAAiB,mBAAmB,IAAI;AAC9C,SAAO;AAAA,IACL,UAAU;AAAA,IACV,OAAO,QAAQ,WAAW,cAAc,CAAC;AAAA,IACzC,MAAM,mBAAmB,SAAS,IAAI,GAAG,SAAS;AAAA,EACpD;AACF;;;AC7EA,IAAM,wBAAwB,CAAC,WAAW,YAAY,UAAU,YAAY,aAAa,UAAU,MAAM;AACzG,IAAM,qBAAoC;AAAA,EACxC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAUA,SAAS,wBAAwB,gBAAsF;AACrH,UAAQ,gBAAgB;AAAA,IACtB,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AAAA,IACL,KAAK;AACH,aAAO;AAAA,EACX;AACF;AAEO,SAAS,oBAAoB,SAAiC;AACnE,SAAO,QAAQ,WAAW,GAAG,QAAQ,QAAQ,IAAI,QAAQ,IAAI,KAAK,QAAQ;AAC5E;AAgDO,SAAS,sCAAsC,YAAuC,CAAC,GAAoC;AAChI,QAAM,YAAY,IAAI,IAAI,UAAU,IAAI,CAAC,aAAa,CAAC,SAAS,SAAS,QAAQ,CAAC,CAAC;AACnF,SAAO;AAAA,IACL,SAAS,UAAU;AACjB,gBAAU,IAAI,SAAS,SAAS,QAAQ;AAAA,IAC1C;AAAA,IACA,IAAI,SAAS;AACX,aAAO,UAAU,IAAI,OAAO;AAAA,IAC9B;AAAA,IACA,QAAQ,SAAS,SAAS;AACxB,YAAM,WAAW,UAAU,IAAI,OAAO;AACtC,UAAI,CAAC,UAAU;AACb,eAAO,QAAQ,IAAI,CAAC,YAAY;AAAA,UAC9B,IAAI;AAAA,UACJ;AAAA,UACA,SAAS;AAAA,YACP,UAAU,OAAO;AAAA,YACjB,SAAS;AAAA,YACT,SAAS,kDAAkD,OAAO;AAAA,UACpE;AAAA,QACF,EAAE;AAAA,MACJ;AACA,aAAO,QAAQ,IAAI,CAAC,WAAW,SAAS,QAAQ,MAAM,CAAC;AAAA,IACzD;AAAA,EACF;AACF;AAEA,SAAS,uBAAuB,SAAmD;AACjF,MAAI,QAAQ,SAAS,QAAQ;AAC3B,WAAO,EAAE,SAAS,gBAAgB,oBAAoB,QAAQ,mDAAmD;AAAA,EACnH;AACA,MAAI,CAAC,SAAS,gBAAgB,WAAW,UAAU,SAAS,EAAE,SAAS,QAAQ,IAAI,GAAG;AACpF,WAAO,EAAE,SAAS,gBAAgB,oBAAoB,QAAQ,GAAG,oBAAoB,OAAO,CAAC,2CAA2C;AAAA,EAC1I;AACA,MAAI,CAAC,QAAQ,QAAQ,KAAK,EAAE,SAAS,QAAQ,IAAI,GAAG;AAClD,WAAO,EAAE,SAAS,gBAAgB,sBAAsB,QAAQ,GAAG,oBAAoB,OAAO,CAAC,qDAAqD;AAAA,EACtJ;AACA,SAAO,EAAE,SAAS,gBAAgB,sBAAsB,QAAQ,+BAA+B;AACjG;AAEO,SAAS,uBAAuB,OAAuC;AAC5E,SAAO,MAAM;AACf;AAEO,SAAS,wBAAwB,UAAwD;AAC9F,SAAO,SAAS,IAAI,CAAC,YAAY,uBAAuB,OAAO,CAAC;AAClE;AAEO,SAAS,gCAAgC,YAAoE;AAClH,SAAO,WAAW,OAAO,CAAC,UAAU,MAAM,mBAAmB,sBAAsB,MAAM,mBAAmB,oBAAoB;AAClI;AAIA,SAAS,eAAe,OAAqB,KAAiC;AAC5E,QAAM,QAAQ,MAAM,SAAS,GAAG;AAChC,SAAO,OAAO,UAAU,YAAY,MAAM,SAAS,IAAI,QAAQ;AACjE;AAEA,SAAS,oBAAoB,OAAqB,KAAuB;AACvE,QAAM,QAAQ,MAAM,SAAS,GAAG;AAChC,MAAI,CAAC,MAAM,QAAQ,KAAK,EAAG,QAAO,CAAC;AACnC,SAAO,MAAM,OAAO,CAAC,SAAyB,OAAO,SAAS,YAAY,KAAK,SAAS,CAAC;AAC3F;AAEA,SAAS,wBAAwB,OAA0C;AACzE,QAAM,QAA6B,CAAC;AACpC,QAAM,mBAAmB,eAAe,OAAO,kBAAkB;AACjE,QAAM,cAAc,eAAe,OAAO,aAAa;AACvD,QAAM,mBAAmB,eAAe,OAAO,kBAAkB;AACjE,QAAM,qBAAqB,eAAe,OAAO,oBAAoB;AACrE,QAAM,oBAAoB,eAAe,OAAO,mBAAmB;AACnE,QAAM,qBAAqB,eAAe,OAAO,oBAAoB;AACrE,QAAM,iBAAiB,eAAe,OAAO,gBAAgB;AAC7D,QAAM,oBAAoB,oBAAoB,OAAO,mBAAmB;AAExE,MAAI,iBAAkB,OAAM,KAAK,EAAE,MAAM,8BAA8B,gBAAgB,IAAI,YAAY,WAAW,CAAC;AACnH,MAAI,YAAa,OAAM,KAAK,EAAE,MAAM,2BAA2B,WAAW,IAAI,YAAY,WAAW,CAAC;AACtG,MAAI,iBAAkB,OAAM,KAAK,EAAE,MAAM,yBAAyB,gBAAgB,IAAI,YAAY,WAAW,CAAC;AAC9G,MAAI,mBAAoB,OAAM,KAAK,EAAE,MAAM,kCAAkC,kBAAkB,IAAI,YAAY,WAAW,CAAC;AAC3H,MAAI,kBAAmB,OAAM,KAAK,EAAE,MAAM,2BAA2B,iBAAiB,IAAI,YAAY,WAAW,CAAC;AAClH,MAAI,kBAAkB,SAAS,EAAG,OAAM,KAAK,EAAE,MAAM,iCAAiC,kBAAkB,KAAK,IAAI,CAAC,IAAI,YAAY,WAAW,CAAC;AAC9I,MAAI,mBAAoB,OAAM,KAAK,EAAE,MAAM,gCAAgC,kBAAkB,IAAI,YAAY,WAAW,CAAC;AACzH,MAAI,eAAgB,OAAM,KAAK,EAAE,MAAM,gCAAgC,cAAc,IAAI,YAAY,WAAW,CAAC;AAEjH,SAAO;AACT;AAEO,SAAS,qBAAqB,OAAqB,YAA6D;AACrH,QAAM,YAAY,WAAW,CAAC,GAAG,QAAQ;AACzC,SAAO;AAAA,IACL;AAAA,MACE,MAAM,qBAAqB,MAAM,QAAQ,MAAM;AAAA,MAC/C,GAAI,YAAY,EAAE,UAAU,IAAI,CAAC;AAAA,MACjC,GAAI,WAAW,CAAC,GAAG,UAAU,EAAE,QAAQ,WAAW,CAAC,EAAE,QAAQ,IAAI,CAAC;AAAA,MAClE,YAAY;AAAA,IACd;AAAA,IACA,GAAG,wBAAwB,KAAK;AAAA,IAChC,GAAG,WAAW,IAAI,CAAC,WAAW;AAAA,MAC5B,MAAM,GAAG,MAAM,cAAc,KAAK,oBAAoB,MAAM,OAAO,CAAC;AAAA,MACpE,WAAW,MAAM,QAAQ;AAAA,MACzB,QAAQ,MAAM;AAAA,MACd,YAAY;AAAA,IACd,EAAE;AAAA,EACJ;AACF;AAEO,SAAS,uBAAuB,OAA6B;AAGlE,SAAO,MAAM,QAAQ,QAAQ,KAAK,KAAK,WAAW,MAAM,QAAQ,MAAM;AACxE;AAEO,SAAS,sBAAsB,YAAwC,cAAmD;AAC/H,MAAI,CAAC,aAAc,QAAO;AAC1B,QAAM,cAAc,KAAK,IAAI,GAAG,KAAK,MAAM,eAAe,GAAG,CAAC;AAC9D,SAAO,WAAW,MAAM,GAAG,WAAW;AACxC;AAEO,SAAS,+BACd,OACA,YAAY,MAAM,YAClB,UAAwC,CAAC,GAC1B;AACf,QAAM,YAAY,QAAQ,OAAO,UAAU,EAAE,OAAO,UAAU,uBAAuB,KAAK,EAAE,CAAC,KAAK,uBAAuB,KAAK;AAC9H,QAAM,aAAa,QAAQ,OAAO,WAAW,EAAE,OAAO,YAAY,wBAAwB,SAAS,EAAE,CAAC,KAAK,wBAAwB,SAAS;AAC5I,QAAM,WACJ,QAAQ,OAAO,SAAS,EAAE,OAAO,YAAY,gCAAgC,UAAU,EAAE,CAAC,KAC1F,gCAAgC,UAAU;AAC5C,QAAM,WACJ,QAAQ,OAAO,SAAS;AAAA,IACtB;AAAA,IACA,YAAY,sBAAsB,UAAU,QAAQ,YAAY;AAAA,IAChE,GAAI,QAAQ,eAAe,EAAE,cAAc,QAAQ,aAAa,IAAI,CAAC;AAAA,EACvE,CAAC,KACD,sBAAsB,UAAU,QAAQ,YAAY;AACtD,QAAM,cAAc,MAAM,YACvB,IAAI,CAAC,eAAe,WAAW,KAAK,EACpC,OAAO,CAAC,UAAU,UAAU,gBAAgB,UAAU,eAAe,UAAU,WAAW;AAC7F,QAAM,UAAU,QAAQ,OAAO,YAAY,EAAE,OAAO,SAAS,uBAAuB,KAAK,EAAE,CAAC,KAAK,uBAAuB,KAAK;AAC7H,QAAM,QAAQ,QAAQ,OAAO,WAAW,EAAE,OAAO,OAAO,qBAAqB,OAAO,QAAQ,EAAE,CAAC,KAAK,qBAAqB,OAAO,QAAQ;AACxI,QAAM,SAAS;AAAA,IACb;AAAA,IACA,gBAAgB,SAAS,IAAI,CAAC,UAAU,MAAM,OAAO;AAAA,IACrD,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAQN,SAAS,MAAM,QAAQ,QAAQ,KAAK,IAAI,MAAM,QAAQ,UAAU;AAAA,MAChE,kBAAkB,MAAM,QAAQ;AAAA,MAChC,aAAa,MAAM;AAAA,IACrB;AAAA,IACA,SAAS,SAAS,IAAI,CAAC,WAAW;AAAA,MAChC,SAAS,MAAM;AAAA,MACf,MAAM,wBAAwB,MAAM,cAAc;AAAA,MAClD,UAAU;AAAA,MACV,QAAQ,MAAM;AAAA,IAChB,EAAE;AAAA,IACF;AAAA,IACA,OACE,QAAQ,UACP,YAAY,SAAS,IAClB,CAAC,iDAAiD,YAAY,KAAK,IAAI,CAAC,GAAG,IAC3E,CAAC,kDAAkD;AAAA,IACzD,YAAY,QAAQ,cAAc,CAAC,iFAAiF;AAAA,IACpH,cAAc,CAAC,OAAO;AAAA,IACtB,GAAI,QAAQ,YAAY,SAAS,EAAE,YAAY,QAAQ,WAAW,IAAI,CAAC;AAAA,IACvE,UAAU;AAAA,MACR,QAAQ,CAAC,GAAG,qBAAqB;AAAA,MACjC,GAAI,QAAQ,eAAe,EAAE,cAAc,QAAQ,aAAa,IAAI,CAAC;AAAA,MACrE;AAAA,IACF;AAAA,EACF;AACA,SAAO,QAAQ,OAAO,OAAO,EAAE,OAAO,OAAO,CAAC,KAAK;AACrD;AAEO,SAAS,wBAAwB,MAGtC;AACA,QAAM,aAAa,KAAK,WAAW,WAAW,IAAI,UAAU,KAAK,WAAW,cAAc,IAAI,UAAU;AACxG,QAAM,aACJ,SAAS,+BACL,aACA,SAAS,mBAAmB,KAAK,WAAW,gBAAgB,IAC1D,SACA,SAAS,gBACP,QACA;AACV,SAAO,EAAE,YAAY,WAAW;AAClC;AAEO,IAAM,6BAA6B;AAAA,EACxC;AAAA,IACE,IAAI;AAAA,IACJ,gBAAgB;AAAA,IAChB,iBAAiB;AAAA,IACjB,wBAAwB;AAAA,IACxB,sBAAsB;AAAA,IACtB,0BAA0B,CAAC,iBAAiB,kBAAkB;AAAA,EAChE;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,gBAAgB;AAAA,IAChB,iBAAiB;AAAA,IACjB,wBAAwB;AAAA,IACxB,sBAAsB;AAAA,IACtB,0BAA0B,CAAC,iBAAiB,kBAAkB;AAAA,EAChE;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,gBAAgB;AAAA,IAChB,iBAAiB;AAAA,IACjB,wBAAwB;AAAA,IACxB,sBAAsB;AAAA,IACtB,0BAA0B,CAAC,WAAW;AAAA,IACtC,4BAA4B,CAAC,wBAAwB;AAAA,EACvD;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,gBAAgB;AAAA,IAChB,iBAAiB;AAAA,IACjB,wBAAwB;AAAA,IACxB,sBAAsB;AAAA,IACtB,0BAA0B,CAAC,YAAY;AAAA,EACzC;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,gBAAgB;AAAA,IAChB,iBAAiB;AAAA,IACjB,wBAAwB;AAAA,IACxB,sBAAsB;AAAA,IACtB,0BAA0B,CAAC,YAAY;AAAA,EACzC;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,gBAAgB;AAAA,IAChB,iBAAiB;AAAA,IACjB,wBAAwB;AAAA,IACxB,sBAAsB;AAAA,IACtB,0BAA0B,CAAC,YAAY;AAAA,EACzC;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,gBAAgB;AAAA,IAChB,iBAAiB;AAAA,IACjB,wBAAwB;AAAA,IACxB,sBAAsB;AAAA,IACtB,0BAA0B,CAAC,YAAY;AAAA,EACzC;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,gBAAgB;AAAA,IAChB,iBAAiB;AAAA,IACjB,wBAAwB;AAAA,IACxB,sBAAsB;AAAA,IACtB,gBAAgB,CAAC,QAAQ;AAAA,IACzB,0BAA0B,CAAC,WAAW;AAAA,EACxC;AACF;AAEA,SAAS,gBAAgB,OAAqB,OAAgE;AAC5G,SAAO,MAAM,QAAQ,KAAK,CAAC,YAAY,QAAQ,SAAS,MAAM,SAAS,CAAC,MAAM,YAAY,QAAQ,aAAa,MAAM,SAAS,GAAG;AACnI;AAEO,SAAS,2BAA2B,OAAoD;AAC7F,SAAO,MAAM;AACf;AAEO,SAAS,mCAAmC,OAAyC;AAC1F,QAAM,gBACJ,gBAAgB,OAAO,EAAE,UAAU,MAAM,SAAS,UAAU,MAAM,UAAU,CAAC,KAC7E,gBAAgB,OAAO,EAAE,UAAU,MAAM,SAAS,UAAU,MAAM,UAAU,CAAC,KAC7E,gBAAgB,OAAO,EAAE,UAAU,MAAM,SAAS,UAAU,MAAM,SAAS,CAAC,KAC5E,gBAAgB,OAAO,EAAE,MAAM,MAAM,CAAC;AACxC,SAAO;AAAA,IACL,UAAU,MAAM,SAAS;AAAA,IACzB,MAAM,MAAM,SAAS,YAAY,WAAW,GAAG,MAAM,SAAS,QAAQ;AAAA,IACtE,YAAY,MAAM,SAAS,aAAa,MAAM,SAAS;AAAA,IACvD,KAAK,iBAAiB,MAAM,SAAS;AAAA,IACrC,cAAc;AAAA,IACd,YAAY;AAAA,IACZ,GAAI,MAAM,SAAS,YAAY,EAAE,WAAW,MAAM,SAAS,UAAU,IAAI,CAAC;AAAA,EAC5E;AACF;AAEA,SAAS,wBAAwB,UAA4C;AAC3E,SAAO,GAAG,SAAS,QAAQ,IAAI,SAAS,aAAa,SAAS,GAAG;AACnE;AAEA,SAAS,qBAAqB,UAAmC,KAAiC;AAChG,QAAM,QAAQ,SAAS,GAAG;AAC1B,SAAO,OAAO,UAAU,YAAY,MAAM,SAAS,IAAI,QAAQ;AACjE;AAEA,SAAS,oBAAoB,UAAuD;AAClF,QAAM,QAAQ,SAAS,aAAa;AACpC,MAAI,OAAO,UAAU,YAAY,OAAO,UAAU,KAAK,KAAK,QAAQ,EAAG,QAAO,OAAO,KAAK;AAC1F,MAAI,OAAO,UAAU,YAAY,aAAa,KAAK,KAAK,EAAG,QAAO;AAClE,SAAO;AACT;AAEA,SAAS,iCAAiC,OAAyC;AACjF,MAAI,MAAM,SAAS,aAAa,SAAU,QAAO;AACjD,QAAM,QAAQ,qBAAqB,MAAM,UAAU,OAAO;AAC1D,QAAM,OAAO,qBAAqB,MAAM,UAAU,MAAM;AACxD,QAAM,cAAc,oBAAoB,MAAM,QAAQ;AACtD,MAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAa,QAAO;AAC5C,MAAI,MAAM,SAAS,cAAc,GAAG,KAAK,IAAI,IAAI,IAAI,WAAW,GAAI,QAAO;AAC3E,SAAO,UAAU,KAAK,IAAI,IAAI;AAChC;AAEO,SAAS,yBAAyB,OAA6B;AACpE,SAAO,wBAAwB,MAAM,QAAQ;AAC/C;AAEO,SAAS,0BAA0B,OAA+B;AACvE,SAAO,CAAC,GAAG,IAAI,IAAI,CAAC,yBAAyB,KAAK,GAAG,iCAAiC,KAAK,CAAC,EAAE,OAAO,CAAC,QAAuB,QAAQ,GAAG,CAAC,CAAC,CAAC;AAC7I;AAEO,SAAS,oBAAoB,OAA6C;AAC/E,QAAM,oBAAoB,2BAA2B,KAAK;AAC1D,MAAI,CAAC,kBAAmB,QAAO;AAE/B,QAAM,gBAAgB,mCAAmC,KAAK;AAC9D,SAAO;AAAA,IACL,IAAI,UAAU,kBAAkB,QAAQ,IAAI,kBAAkB,UAAU,IAAI,cAAc,UAAU;AAAA,IACpG;AAAA,IACA;AAAA,EACF;AACF;AAEO,SAAS,uBAAuB,OAAqB,YAAY,MAAM,YAA2B;AACvG,SAAO,+BAA+B,OAAO,SAAS;AACxD;AAEO,SAAS,2BACd,OACA,YAAY,MAAM,YACqC;AACvD,QAAM,SAAS,oBAAoB,KAAK;AACxC,QAAM,gBAAgB,uBAAuB,OAAO,SAAS;AAC7D,SAAO;AAAA,IACL,GAAI,SAAS,EAAE,OAAO,IAAI,CAAC;AAAA,IAC3B;AAAA,EACF;AACF;AAEO,SAAS,4BACd,QACA,eAA8C,4BACd;AAChC,QAAM,eACJ,OAAO,WAAW,wBACd,cACA,OAAO,WAAW,mBAChB,mBACA,OAAO,WAAW,kBAChB,oBACA,OAAO,WAAW,WAChB,eACA,OAAO,WAAW,aAChB,iBACA,OAAO,WAAW,aAChB,iBACA,OAAO,WAAW,WAChB,eACA;AAElB,SAAO,eAAe,aAAa,KAAK,CAAC,eAAe,WAAW,OAAO,YAAY,IAAI;AAC5F;AAEO,SAAS,cAAc,OAKT;AACnB,QAAM,gBAAgB,MAAM,MAAM;AAAA,IAChC,CAAC,UACE,CAAC,KAAK,gBAAgB,KAAK,iBAAiB,MAAM,kBAClD,CAAC,KAAK,kBAAkB,KAAK,mBAAmB,MAAM;AAAA,EAC3D;AACA,QAAM,cAAc,CAAC,GAAG,aAAa,EAAE,KAAK,CAAC,MAAM,UAAU;AAC3D,UAAM,aAAa,mBAAmB,QAAQ,MAAM,KAAK,IAAI,mBAAmB,QAAQ,KAAK,KAAK;AAClG,QAAI,eAAe,EAAG,QAAO;AAC7B,QAAI,KAAK,WAAW,MAAM,OAAQ,QAAO;AACzC,WAAO,KAAK,WAAW,SAAS,KAAK;AAAA,EACvC,CAAC;AACD,QAAM,cAAc,YAAY,CAAC;AACjC,MAAI,aAAa;AACf,WAAO;AAAA,MACL,cAAc,MAAM;AAAA,MACpB,UAAU,YAAY;AAAA,MACtB,YAAY,YAAY;AAAA,MACxB,OAAO;AAAA,MACP,QAAQ,YAAY;AAAA,IACtB;AAAA,EACF;AAEA,SAAO;AAAA,IACL,cAAc,MAAM;AAAA,IACpB,UAAU,MAAM,mBAAmB;AAAA,IACnC,YAAY;AAAA,IACZ,OAAO,CAAC;AAAA,IACR,QAAQ,MAAM,oBAAoB,UAAU,+BAA+B;AAAA,EAC7E;AACF;AAEO,SAAS,gCAAgC,aAAgC,YAAyC;AACvH,QAAM,gBAAgB,IAAI,IAAI,YAAY,IAAI,CAAC,eAAe,WAAW,KAAK,CAAC;AAC/E,SAAO,WAAW,yBAAyB,KAAK,CAAC,UAAU,cAAc,IAAI,KAAK,CAAC;AACrF;AAEO,SAAS,wBAAwB,OAOkE;AACxG,QAAM,aAAa,4BAA4B,MAAM,QAAQ,MAAM,YAAY;AAC/E,MAAI,CAAC,YAAY;AACf,WAAO;AAAA,MACL,SAAS;AAAA,QACP,UAAU,MAAM,OAAO;AAAA,QACvB,SAAS;AAAA,QACT,SAAS,+CAA+C,MAAM,OAAO,MAAM;AAAA,MAC7E;AAAA,IACF;AAAA,EACF;AAEA,MAAI,CAAC,gCAAgC,MAAM,aAAa,UAAU,GAAG;AACnE,WAAO;AAAA,MACL;AAAA,MACA,SAAS;AAAA,QACP,UAAU,MAAM,OAAO;AAAA,QACvB,SAAS;AAAA,QACT,SAAS,8CAA8C,WAAW,EAAE;AAAA,MACtE;AAAA,IACF;AAAA,EACF;AACA,MAAI,MAAM,WAAW,WAAW,kBAAkB,CAAC,WAAW,eAAe,SAAS,MAAM,OAAO,GAAG;AACpG,WAAO;AAAA,MACL;AAAA,MACA,SAAS;AAAA,QACP,UAAU,MAAM,OAAO;AAAA,QACvB,SAAS;AAAA,QACT,SAAS,cAAc,WAAW,EAAE,iCAAiC,MAAM,OAAO;AAAA,MACpF;AAAA,IACF;AAAA,EACF;AACA,QAAM,qBAAqB,WAAW,8BAA8B,CAAC,GAAG;AAAA,IACtE,CAAC,cAAc,EAAE,MAAM,sBAAsB,CAAC,GAAG,SAAS,SAAS;AAAA,EACrE;AACA,MAAI,kBAAkB,SAAS,GAAG;AAChC,WAAO;AAAA,MACL;AAAA,MACA,SAAS;AAAA,QACP,UAAU,MAAM,OAAO;AAAA,QACvB,SAAS;AAAA,QACT,SAAS,gDAAgD,WAAW,EAAE,KAAK,kBAAkB,KAAK,IAAI,CAAC;AAAA,MACzG;AAAA,IACF;AAAA,EACF;AAEA,QAAM,mBAAmB,cAAc;AAAA,IACrC,cAAc,WAAW;AAAA,IACzB,gBAAgB,MAAM,OAAO;AAAA,IAC7B,OAAO,MAAM;AAAA,IACb,iBAAiB,WAAW,oBAAoB,mBAAmB,SAAS;AAAA,EAC9E,CAAC;AACD,MAAI,iBAAiB,aAAa,QAAQ;AACxC,WAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA,SAAS;AAAA,QACP,UAAU,MAAM,OAAO;AAAA,QACvB,SAAS;AAAA,QACT,SAAS,oCAAoC,WAAW,EAAE,KAAK,iBAAiB,MAAM;AAAA,MACxF;AAAA,IACF;AAAA,EACF;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA,SAAS;AAAA,MACP,UAAU,MAAM,OAAO;AAAA,MACvB,SAAS;AAAA,MACT,SAAS,wBAAwB,WAAW,EAAE;AAAA,IAChD;AAAA,EACF;AACF;","names":["stripped","rest","selection","reason"]}
@@ -1 +1 @@
1
- {"version":3,"file":"mention.d.ts","sourceRoot":"","sources":["../src/mention.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAIV,cAAc,EAEf,MAAM,aAAa,CAAC;AAErB,KAAK,YAAY,GAAG;IAAE,OAAO,EAAE,KAAK,CAAA;CAAE,GAAG,CAAC;IAAE,OAAO,EAAE,IAAI,CAAA;CAAE,GAAG,cAAc,CAAC,CAAC;AAkC9E,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,cAAc,CAUlE;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,SAAa,GAAG,YAAY,CAkBpF"}
1
+ {"version":3,"file":"mention.d.ts","sourceRoot":"","sources":["../src/mention.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAIV,cAAc,EAEf,MAAM,aAAa,CAAC;AAErB,KAAK,YAAY,GAAG;IAAE,OAAO,EAAE,KAAK,CAAA;CAAE,GAAG,CAAC;IAAE,OAAO,EAAE,IAAI,CAAA;CAAE,GAAG,cAAc,CAAC,CAAC;AAmC9E,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,cAAc,CAUlE;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,SAAa,GAAG,YAAY,CAkBpF"}
@@ -1 +1 @@
1
- {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,kBAAkB,EAClB,aAAa,EACb,2BAA2B,EAC3B,cAAc,EACd,kBAAkB,EAClB,cAAc,EACd,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,UAAU,EAEV,iBAAiB,EACjB,UAAU,EACX,MAAM,aAAa,CAAC;AAWrB,MAAM,MAAM,2BAA2B,GAAG,kBAAkB,GAAG,oBAAoB,GAAG,kBAAkB,GAAG,oBAAoB,CAAC;AAEhI,MAAM,MAAM,wBAAwB,GAAG;IACrC,OAAO,EAAE,cAAc,CAAC;IACxB,cAAc,EAAE,2BAA2B,CAAC;IAC5C,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAcF,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,cAAc,GAAG,MAAM,CAEnE;AAED,MAAM,MAAM,4BAA4B,GAAG;IACzC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,UAAU,CAAC,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC3D,KAAK,CAAC,EAAE,0BAA0B,CAAC;CACpC,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACvC,OAAO,CAAC,CAAC,KAAK,EAAE;QAAE,KAAK,EAAE,YAAY,CAAC;QAAC,QAAQ,EAAE,cAAc,EAAE,CAAA;KAAE,GAAG,cAAc,EAAE,CAAC;IACvF,QAAQ,CAAC,CAAC,KAAK,EAAE;QAAE,KAAK,EAAE,YAAY,CAAC;QAAC,UAAU,EAAE,wBAAwB,EAAE,CAAA;KAAE,GAAG,wBAAwB,EAAE,CAAC;IAC9G,MAAM,CAAC,CAAC,KAAK,EAAE;QAAE,KAAK,EAAE,YAAY,CAAC;QAAC,UAAU,EAAE,wBAAwB,EAAE,CAAA;KAAE,GAAG,wBAAwB,EAAE,CAAC;IAC5G,QAAQ,CAAC,CAAC,KAAK,EAAE;QAAE,KAAK,EAAE,YAAY,CAAC;QAAC,KAAK,EAAE,iBAAiB,EAAE,CAAA;KAAE,GAAG,iBAAiB,EAAE,CAAC;IAC3F,SAAS,CAAC,CAAC,KAAK,EAAE;QAAE,KAAK,EAAE,YAAY,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,MAAM,CAAC;IACpE,MAAM,CAAC,CAAC,KAAK,EAAE;QACb,KAAK,EAAE,YAAY,CAAC;QACpB,UAAU,EAAE,wBAAwB,EAAE,CAAC;QACvC,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,GAAG,wBAAwB,EAAE,CAAC;IAC/B,IAAI,CAAC,CAAC,KAAK,EAAE;QAAE,KAAK,EAAE,YAAY,CAAC;QAAC,MAAM,EAAE,aAAa,CAAA;KAAE,GAAG,aAAa,CAAC;CAC7E,CAAC;AAEF,MAAM,MAAM,0BAA0B,CAAC,UAAU,GAAG,OAAO,IACvD;IACE,EAAE,EAAE,IAAI,CAAC;IACT,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,UAAU,CAAC;CACvB,GACD;IACE,EAAE,EAAE,KAAK,CAAC;IACV,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,kBAAkB,CAAC;CAC7B,CAAC;AAEN,MAAM,MAAM,uBAAuB,CAAC,UAAU,GAAG,OAAO,IAAI;IAC1D,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,MAAM,EAAE,cAAc,GAAG,0BAA0B,CAAC,UAAU,CAAC,CAAC;CACzE,CAAC;AAEF,MAAM,MAAM,+BAA+B,GAAG;IAC5C,QAAQ,CAAC,UAAU,EAAE,QAAQ,EAAE,uBAAuB,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;IAC1E,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,uBAAuB,GAAG,SAAS,CAAC;IAC1D,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,GAAG,0BAA0B,EAAE,CAAC;CACnF,CAAC;AAEF,wBAAgB,qCAAqC,CAAC,SAAS,GAAE,uBAAuB,EAAO,GAAG,+BAA+B,CAyBhI;AAeD,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,YAAY,GAAG,cAAc,EAAE,CAE5E;AAED,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,cAAc,EAAE,GAAG,wBAAwB,EAAE,CAE9F;AAED,wBAAgB,+BAA+B,CAAC,UAAU,EAAE,wBAAwB,EAAE,GAAG,wBAAwB,EAAE,CAElH;AAED,KAAK,iBAAiB,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,cAAc,CAAC;IAAC,UAAU,CAAC,EAAE,2BAA2B,CAAA;CAAE,CAAC;AAoCjI,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,wBAAwB,EAAE,GAAG,iBAAiB,EAAE,CAiBrH;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,CAElE;AAED,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,wBAAwB,EAAE,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,wBAAwB,EAAE,CAI/H;AAED,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,YAAY,EACnB,SAAS,SAAmB,EAC5B,OAAO,GAAE,4BAAiC,GACzC,aAAa,CAgDf;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG;IACrD,UAAU,EAAE,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;IACxC,UAAU,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;CACpD,CAWA;AAED,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAmEP,CAAC;AAMjC,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,YAAY,GAAG,iBAAiB,GAAG,SAAS,CAE7F;AAED,wBAAgB,kCAAkC,CAAC,KAAK,EAAE,YAAY,GAAG,kBAAkB,CAe1F;AA4BD,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,CAEpE;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,EAAE,CAEvE;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,YAAY,GAAG,UAAU,GAAG,SAAS,CAU/E;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,YAAY,EAAE,SAAS,SAAmB,GAAG,aAAa,CAEvG;AAED,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,YAAY,EACnB,SAAS,SAAmB,GAC3B;IAAE,MAAM,CAAC,EAAE,UAAU,CAAC;IAAC,aAAa,EAAE,aAAa,CAAA;CAAE,CAOvD;AAED,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,cAAc,EACtB,YAAY,GAAE,SAAS,kBAAkB,EAA+B,GACvE,kBAAkB,GAAG,SAAS,CAmBhC;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE;IACnC,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,eAAe,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;CACpC,GAAG,gBAAgB,CA8BnB;AAED,wBAAgB,+BAA+B,CAAC,WAAW,EAAE,eAAe,EAAE,EAAE,UAAU,EAAE,kBAAkB,GAAG,OAAO,CAGvH;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE;IAC7C,MAAM,EAAE,cAAc,CAAC;IACvB,WAAW,EAAE,eAAe,EAAE,CAAC;IAC/B,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,YAAY,CAAC,EAAE,SAAS,kBAAkB,EAAE,CAAC;CAC9C,GAAG;IAAE,UAAU,CAAC,EAAE,kBAAkB,CAAC;IAAC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IAAC,OAAO,EAAE,kBAAkB,CAAA;CAAE,CAyExG"}
1
+ {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opentag/core",
3
- "version": "0.2.0",
3
+ "version": "0.3.0",
4
4
  "description": "Core OpenTag protocol schemas, types, JSON Schema, and mention parsing.",
5
5
  "type": "module",
6
6
  "engines": {