@unbrained/pm-cli 2026.5.28 → 2026.5.29
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/CHANGELOG.md +100 -83
- package/dist/cli/commander-usage.js +8 -8
- package/dist/cli/commander-usage.js.map +1 -1
- package/dist/cli/commands/aggregate.js +4 -3
- package/dist/cli/commands/aggregate.js.map +1 -1
- package/dist/cli/commands/calendar.d.ts +8 -0
- package/dist/cli/commands/calendar.js +13 -2
- package/dist/cli/commands/calendar.js.map +1 -1
- package/dist/cli/commands/completion.js +34 -2
- package/dist/cli/commands/completion.js.map +1 -1
- package/dist/cli/commands/config.d.ts +11 -1
- package/dist/cli/commands/config.js +68 -6
- package/dist/cli/commands/config.js.map +1 -1
- package/dist/cli/commands/create.d.ts +1 -0
- package/dist/cli/commands/create.js +40 -4
- package/dist/cli/commands/create.js.map +1 -1
- package/dist/cli/commands/extension/bundled-catalog.js +4 -3
- package/dist/cli/commands/extension/bundled-catalog.js.map +1 -1
- package/dist/cli/commands/health.js +3 -11
- package/dist/cli/commands/health.js.map +1 -1
- package/dist/cli/commands/linked-test-parsers.js +5 -4
- package/dist/cli/commands/linked-test-parsers.js.map +1 -1
- package/dist/cli/commands/plan.js +5 -4
- package/dist/cli/commands/plan.js.map +1 -1
- package/dist/cli/commands/search.js +45 -2
- package/dist/cli/commands/search.js.map +1 -1
- package/dist/cli/commands/update-many.js +35 -6
- package/dist/cli/commands/update-many.js.map +1 -1
- package/dist/cli/commands/update.d.ts +2 -0
- package/dist/cli/commands/update.js +38 -6
- package/dist/cli/commands/update.js.map +1 -1
- package/dist/cli/help-json-payload.d.ts +1 -11
- package/dist/cli/help-json-payload.js +12 -12
- package/dist/cli/help-json-payload.js.map +1 -1
- package/dist/cli/register-mutation.js +20 -8
- package/dist/cli/register-mutation.js.map +1 -1
- package/dist/cli/register-setup.js +4 -2
- package/dist/cli/register-setup.js.map +1 -1
- package/dist/cli/registration-helpers.d.ts +2 -6
- package/dist/cli/registration-helpers.js +9 -6
- package/dist/cli/registration-helpers.js.map +1 -1
- package/dist/core/config/nested-settings.d.ts +86 -0
- package/dist/core/config/nested-settings.js +258 -0
- package/dist/core/config/nested-settings.js.map +1 -0
- package/dist/core/item/parse.d.ts +19 -0
- package/dist/core/item/parse.js +76 -2
- package/dist/core/item/parse.js.map +1 -1
- package/dist/core/item/priority.d.ts +2 -1
- package/dist/core/item/priority.js +12 -2
- package/dist/core/item/priority.js.map +1 -1
- package/dist/core/search/providers.js +25 -5
- package/dist/core/search/providers.js.map +1 -1
- package/dist/core/search/staleness.d.ts +23 -0
- package/dist/core/search/staleness.js +34 -0
- package/dist/core/search/staleness.js.map +1 -0
- package/dist/core/search/vector-stores.js +12 -3
- package/dist/core/search/vector-stores.js.map +1 -1
- package/dist/core/shared/html-entity-decode.d.ts +21 -0
- package/dist/core/shared/html-entity-decode.js +122 -0
- package/dist/core/shared/html-entity-decode.js.map +1 -0
- package/dist/core/shared/split-comma-list.d.ts +20 -0
- package/dist/core/shared/split-comma-list.js +29 -0
- package/dist/core/shared/split-comma-list.js.map +1 -0
- package/dist/mcp/server.js +10 -3
- package/dist/mcp/server.js.map +1 -1
- package/dist/sdk/cli-contracts/commander-mutation-options.js +47 -11
- package/dist/sdk/cli-contracts/commander-mutation-options.js.map +1 -1
- package/dist/sdk/cli-contracts/tool-option-contracts.js +5 -2
- package/dist/sdk/cli-contracts/tool-option-contracts.js.map +1 -1
- package/dist/sdk/cli-contracts/tool-parameter-tables.js +12 -2
- package/dist/sdk/cli-contracts/tool-parameter-tables.js.map +1 -1
- package/dist/sdk/cli-contracts.js +25 -4
- package/dist/sdk/cli-contracts.js.map +1 -1
- package/dist/sdk/runtime.d.ts +1 -1
- package/dist/sdk/runtime.js +3 -3
- package/dist/sdk/runtime.js.map +1 -1
- package/docs/AGENT_GUIDE.md +7 -0
- package/docs/COMMANDS.md +17 -0
- package/docs/CONFIGURATION.md +55 -0
- package/docs/QUICKSTART.md +3 -0
- package/package.json +1 -1
- package/packages/pm-calendar/extensions/calendar/runtime.js +5 -0
- package/packages/pm-calendar/extensions/calendar/runtime.ts +6 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calendar.js","sources":["cli/commands/calendar.ts"],"sourceRoot":"/","sourcesContent":["import { pathExists } from \"../../core/fs/fs-utils.js\";\nimport { getActiveExtensionRegistrations } from \"../../core/extensions/index.js\";\nimport { resolveItemTypeRegistry, type ItemTypeRegistry } from \"../../core/item/type-registry.js\";\nimport { parseIntegerLimit, parsePriority, parseType } from \"../shared-parsers.js\";\nimport { normalizeStatusInput } from \"../../core/item/status.js\";\nimport { collectRuntimeFilterValues, matchesRuntimeFilters } from \"../../core/schema/runtime-field-filters.js\";\nimport {\n resolveRuntimeFieldRegistry,\n resolveRuntimeStatusRegistry,\n type RuntimeStatusRegistry,\n} from \"../../core/schema/runtime-schema.js\";\nimport { EXIT_CODE } from \"../../core/shared/constants.js\";\nimport type { GlobalOptions } from \"../../core/shared/command-types.js\";\nimport { PmCliError } from \"../../core/shared/errors.js\";\nimport { compareTimestampStrings, nowIso, resolveIsoOrRelative } from \"../../core/shared/time.js\";\nimport { listAllFrontMatter } from \"../../core/store/item-store.js\";\nimport { getSettingsPath, resolvePmRoot } from \"../../core/store/paths.js\";\nimport { readSettings } from \"../../core/store/settings.js\";\nimport type { ItemFrontMatter, ItemStatus, ItemType, RecurrenceRule } from \"../../types/index.js\";\nimport { RECURRENCE_WEEKDAY_VALUES, weekdayOrderIndex } from \"../../types/index.js\";\n\nexport const CALENDAR_VIEW_VALUES = [\"agenda\", \"day\", \"week\", \"month\"] as const;\nexport type CalendarView = (typeof CALENDAR_VIEW_VALUES)[number];\n\nexport const CALENDAR_OUTPUT_VALUES = [\"markdown\", \"toon\", \"json\"] as const;\nexport type CalendarOutputFormat = (typeof CALENDAR_OUTPUT_VALUES)[number];\n\nexport interface CalendarOptions {\n view?: string;\n date?: string;\n from?: string;\n to?: string;\n past?: boolean;\n fullPeriod?: boolean;\n limit?: string;\n type?: string;\n tag?: string;\n priority?: string;\n status?: string;\n assignee?: string;\n assigneeFilter?: string;\n sprint?: string;\n release?: string;\n include?: string;\n recurrenceLookaheadDays?: string;\n recurrenceLookbackDays?: string;\n occurrenceLimit?: string;\n format?: string;\n [key: string]: unknown;\n}\n\nexport interface CalendarRow {\n at: string;\n date: string;\n kind: \"deadline\" | \"reminder\" | \"event\";\n reminder_text: string | null;\n event_title: string | null;\n event_end: string | null;\n event_location: string | null;\n event_all_day: boolean | null;\n event_timezone: string | null;\n event_recurring: boolean | null;\n event_recurrence_rule: string | null;\n item_id: string;\n item_title: string;\n item_type: ItemType;\n item_status: ItemStatus;\n item_priority: number;\n item_assignee: string | null;\n item_deadline: string | null;\n item_tags: string[];\n}\n\nexport interface CalendarDayBucket {\n date: string;\n count: number;\n events: CalendarRow[];\n}\n\nexport interface CalendarResult {\n view: CalendarView;\n output_default: \"markdown\";\n now: string;\n anchor: string;\n range: {\n start: string | null;\n end: string | null;\n period_start: string | null;\n period_end: string | null;\n full_period: boolean;\n past: boolean;\n from: string | null;\n to: string | null;\n };\n filters: {\n type: string | null;\n tag: string | null;\n priority: string | null;\n status: string | null;\n assignee: string | null;\n assignee_filter: string | null;\n sprint: string | null;\n release: string | null;\n runtime_filters?: Record<string, unknown>;\n limit: string | null;\n include: string | null;\n full_period: string | null;\n recurrence_lookahead_days: string | null;\n recurrence_lookback_days: string | null;\n occurrence_limit: string | null;\n };\n summary: {\n events: number;\n items: number;\n deadlines: number;\n reminders: number;\n scheduled: number;\n by_kind: {\n deadline: number;\n reminder: number;\n event: number;\n };\n by_type: Record<string, number>;\n by_status: Record<string, number>;\n recurring_events: number;\n };\n events: CalendarRow[];\n days: CalendarDayBucket[];\n warnings?: string[];\n}\n\nconst UTC_DAY_TO_WEEKDAY = [\"sun\", \"mon\", \"tue\", \"wed\", \"thu\", \"fri\", \"sat\"] as const;\nconst DEFAULT_RECURRENCE_LOOKAHEAD_DAYS = 365;\nconst DEFAULT_RECURRENCE_LOOKBACK_DAYS = 365;\nconst DEFAULT_EVENTS_ONLY_LOOKAHEAD_DAYS = 28;\nconst MAX_RECURRENCE_OCCURRENCES = 1000;\n\nfunction parseNonNegativeInteger(raw: string | undefined, label: string): number | undefined {\n if (raw === undefined) return undefined;\n const parsed = Number(raw);\n if (!Number.isInteger(parsed) || parsed < 0) {\n throw new PmCliError(`${label} must be a non-negative integer`, EXIT_CODE.USAGE);\n }\n return parsed;\n}\n\ntype CalendarIncludeKind = \"deadlines\" | \"reminders\" | \"events\";\n\nfunction parseIncludeSources(raw: string | undefined): Set<CalendarIncludeKind> {\n if (!raw) {\n return new Set([\"deadlines\", \"reminders\", \"events\"]);\n }\n const normalized = raw.trim().toLowerCase();\n if (normalized === \"all\") {\n return new Set([\"deadlines\", \"reminders\", \"events\"]);\n }\n const values = normalized\n .split(/[\\|,]/)\n .map((value) => value.trim())\n .filter((value) => value.length > 0);\n if (values.length === 0) {\n throw new PmCliError(\"Calendar include filter must not be empty\", EXIT_CODE.USAGE);\n }\n const include = new Set<CalendarIncludeKind>();\n for (const value of values) {\n if (value === \"deadlines\" || value === \"deadline\") {\n include.add(\"deadlines\");\n continue;\n }\n if (value === \"reminders\" || value === \"reminder\") {\n include.add(\"reminders\");\n continue;\n }\n if (value === \"events\" || value === \"event\" || value === \"scheduled\") {\n include.add(\"events\");\n continue;\n }\n throw new PmCliError(\"Calendar include filter must be deadlines|reminders|events|scheduled|all\", EXIT_CODE.USAGE);\n }\n return include;\n}\n\nfunction parseView(raw: string | undefined): CalendarView {\n if (!raw) return \"agenda\";\n const normalized = raw.trim().toLowerCase();\n if (!CALENDAR_VIEW_VALUES.includes(normalized as CalendarView)) {\n throw new PmCliError(\"Calendar view must be one of agenda|day|week|month\", EXIT_CODE.USAGE);\n }\n return normalized as CalendarView;\n}\n\nfunction parseOutputFormat(raw: string | undefined): CalendarOutputFormat | undefined {\n if (!raw) return undefined;\n const normalized = raw.trim().toLowerCase();\n if (!CALENDAR_OUTPUT_VALUES.includes(normalized as CalendarOutputFormat)) {\n throw new PmCliError(\"Calendar format must be one of markdown|toon|json\", EXIT_CODE.USAGE);\n }\n return normalized as CalendarOutputFormat;\n}\n\nexport function resolveCalendarOutputFormat(options: CalendarOptions, global: GlobalOptions): CalendarOutputFormat {\n const commandFormat = parseOutputFormat(options.format);\n if (global.json && commandFormat && commandFormat !== \"json\") {\n throw new PmCliError(\"Cannot combine --json with --format markdown|toon\", EXIT_CODE.USAGE);\n }\n if (global.json) {\n return \"json\";\n }\n return commandFormat ?? \"markdown\";\n}\n\nfunction parseStatus(raw: string | undefined, statusRegistry: RuntimeStatusRegistry): ItemStatus | undefined {\n if (raw === undefined) return undefined;\n const normalized = normalizeStatusInput(raw, statusRegistry);\n if (!normalized) {\n const allowedStatuses = statusRegistry.definitions.map((definition) => definition.id);\n throw new PmCliError(`Calendar status filter must be one of ${allowedStatuses.join(\"|\")}`, EXIT_CODE.USAGE);\n }\n return normalized;\n}\n\nfunction parseAssigneeFilter(raw: string | undefined): \"assigned\" | \"unassigned\" | undefined {\n if (raw === undefined) {\n return undefined;\n }\n const normalized = raw.trim().toLowerCase();\n if (!normalized) {\n throw new PmCliError(\"Calendar assignee filter must be one of assigned|unassigned\", EXIT_CODE.USAGE);\n }\n if (normalized !== \"assigned\" && normalized !== \"unassigned\") {\n throw new PmCliError(`Invalid calendar assignee filter \"${raw}\". Allowed: assigned|unassigned`, EXIT_CODE.USAGE);\n }\n return normalized;\n}\n\nfunction toUtcDayKey(timestamp: string): string {\n return new Date(timestamp).toISOString().slice(0, 10);\n}\n\nfunction startOfUtcDay(timestamp: string): string {\n const date = new Date(timestamp);\n return new Date(Date.UTC(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate(), 0, 0, 0, 0)).toISOString();\n}\n\nfunction addUtcDays(timestamp: string, days: number): string {\n const date = new Date(timestamp);\n return new Date(date.getTime() + days * 24 * 60 * 60 * 1000).toISOString();\n}\n\nfunction startOfUtcWeekMonday(timestamp: string): string {\n const base = new Date(startOfUtcDay(timestamp));\n const day = base.getUTCDay();\n const delta = day === 0 ? -6 : 1 - day;\n return addUtcDays(base.toISOString(), delta);\n}\n\nfunction startOfUtcMonth(timestamp: string): string {\n const date = new Date(timestamp);\n return new Date(Date.UTC(date.getUTCFullYear(), date.getUTCMonth(), 1, 0, 0, 0, 0)).toISOString();\n}\n\nfunction startOfNextUtcMonth(timestamp: string): string {\n const date = new Date(timestamp);\n return new Date(Date.UTC(date.getUTCFullYear(), date.getUTCMonth() + 1, 1, 0, 0, 0, 0)).toISOString();\n}\n\nfunction maxTimestamp(left: string, right: string): string {\n return compareTimestampStrings(left, right) >= 0 ? left : right;\n}\n\nfunction toSortedCountRecord(values: Map<string, number>): Record<string, number> {\n return Object.fromEntries([...values.entries()].sort(([left], [right]) => left.localeCompare(right)));\n}\n\nfunction incrementCount(values: Map<string, number>, key: string): void {\n values.set(key, (values.get(key) ?? 0) + 1);\n}\n\nfunction formatRecurrenceRuleForSummary(rule: RecurrenceRule | undefined): string | null {\n if (!rule) {\n return null;\n }\n const parts: string[] = [`freq=${rule.freq}`];\n if (rule.interval !== undefined) {\n parts.push(`interval=${rule.interval}`);\n }\n if (rule.count !== undefined) {\n parts.push(`count=${rule.count}`);\n }\n if (rule.until) {\n parts.push(`until=${rule.until}`);\n }\n if (rule.by_weekday && rule.by_weekday.length > 0) {\n const weekdays = [...rule.by_weekday].sort((left, right) => weekdayOrderIndex(left) - weekdayOrderIndex(right));\n parts.push(`by_weekday=${weekdays.join(\"|\")}`);\n }\n if (rule.by_month_day && rule.by_month_day.length > 0) {\n const monthDays = [...rule.by_month_day].sort((left, right) => left - right);\n parts.push(`by_month_day=${monthDays.join(\"|\")}`);\n }\n if (rule.exdates && rule.exdates.length > 0) {\n const exdates = [...rule.exdates].sort((left, right) => left.localeCompare(right));\n parts.push(`exdates=${exdates.join(\"|\")}`);\n }\n return parts.join(\",\");\n}\n\nfunction buildUtcTimestamp(year: number, month: number, day: number, timeSource: Date): string | undefined {\n const candidate = new Date(\n Date.UTC(\n year,\n month,\n day,\n timeSource.getUTCHours(),\n timeSource.getUTCMinutes(),\n timeSource.getUTCSeconds(),\n timeSource.getUTCMilliseconds(),\n ),\n );\n if (candidate.getUTCFullYear() !== year || candidate.getUTCMonth() !== month || candidate.getUTCDate() !== day) {\n return undefined;\n }\n return candidate.toISOString();\n}\n\nfunction weekdayToken(timestamp: string): (typeof UTC_DAY_TO_WEEKDAY)[number] {\n return UTC_DAY_TO_WEEKDAY[new Date(timestamp).getUTCDay()];\n}\n\nfunction buildRecurringEventWindow(\n start: string | undefined,\n end: string | undefined,\n nowValue: string,\n lookbackDays: number | undefined,\n lookaheadDays: number | undefined,\n): { start: string; end: string } {\n const windowStart = start ?? addUtcDays(nowValue, -(lookbackDays ?? DEFAULT_RECURRENCE_LOOKBACK_DAYS));\n const windowEnd = end ?? addUtcDays(start ?? nowValue, lookaheadDays ?? DEFAULT_RECURRENCE_LOOKAHEAD_DAYS);\n return {\n start: windowStart,\n end: compareTimestampStrings(windowEnd, windowStart) > 0 ? windowEnd : addUtcDays(windowStart, 1),\n };\n}\n\nfunction expandRecurringOccurrences(\n startAt: string,\n recurrence: RecurrenceRule,\n window: { start: string; end: string },\n occurrenceLimit: number | undefined,\n): string[] {\n const maxOccurrences = occurrenceLimit ?? MAX_RECURRENCE_OCCURRENCES;\n const interval = recurrence.interval ?? 1;\n const countLimit = recurrence.count ?? Number.POSITIVE_INFINITY;\n const until = recurrence.until;\n const excluded = new Set(recurrence.exdates ?? []);\n const recurrenceWeekdays =\n recurrence.by_weekday && recurrence.by_weekday.length > 0 ? [...recurrence.by_weekday] : [weekdayToken(startAt)];\n const recurrenceMonthDays =\n recurrence.by_month_day && recurrence.by_month_day.length > 0 ? [...recurrence.by_month_day] : [new Date(startAt).getUTCDate()];\n const weekdayFilter = recurrence.by_weekday ? new Set(recurrence.by_weekday) : undefined;\n const monthDayFilter = recurrence.by_month_day ? new Set(recurrence.by_month_day) : undefined;\n const sortedWeekdays = [...new Set(recurrenceWeekdays)].sort(\n (left, right) =>\n weekdayOrderIndex(left as (typeof RECURRENCE_WEEKDAY_VALUES)[number]) -\n weekdayOrderIndex(right as (typeof RECURRENCE_WEEKDAY_VALUES)[number]),\n );\n const sortedMonthDays = [...new Set(recurrenceMonthDays)].sort((left, right) => left - right);\n\n const occurrences: string[] = [];\n let produced = 0;\n const consumeCandidate = (candidateAt: string): \"continue\" | \"stop\" => {\n if (compareTimestampStrings(candidateAt, startAt) < 0) {\n return \"continue\";\n }\n if (until && compareTimestampStrings(candidateAt, until) > 0) {\n return \"stop\";\n }\n if (compareTimestampStrings(candidateAt, window.end) >= 0) {\n return \"stop\";\n }\n if (excluded.has(candidateAt)) {\n return \"continue\";\n }\n produced += 1;\n if (compareTimestampStrings(candidateAt, window.start) >= 0) {\n occurrences.push(candidateAt);\n }\n if (produced >= countLimit) {\n return \"stop\";\n }\n return \"continue\";\n };\n\n const startDate = new Date(startAt);\n if (recurrence.freq === \"daily\") {\n let candidateAt = startAt;\n for (let iteration = 0; iteration < maxOccurrences; iteration += 1) {\n const candidateWeekday = weekdayToken(candidateAt);\n const candidateMonthDay = new Date(candidateAt).getUTCDate();\n const weekdayMatches = !weekdayFilter || weekdayFilter.has(candidateWeekday);\n const monthDayMatches = !monthDayFilter || monthDayFilter.has(candidateMonthDay);\n if (weekdayMatches && monthDayMatches && consumeCandidate(candidateAt) === \"stop\") {\n break;\n }\n candidateAt = addUtcDays(candidateAt, interval);\n }\n return occurrences;\n }\n\n if (recurrence.freq === \"weekly\") {\n const weekStart = startOfUtcWeekMonday(startAt);\n for (let step = 0; step < maxOccurrences; step += 1) {\n const candidateWeekStart = addUtcDays(weekStart, step * interval * 7);\n for (const weekday of sortedWeekdays) {\n const dayOffset = weekdayOrderIndex(weekday as (typeof RECURRENCE_WEEKDAY_VALUES)[number]);\n const candidateDay = addUtcDays(candidateWeekStart, dayOffset);\n const dayDate = new Date(candidateDay);\n const candidateAt = new Date(\n Date.UTC(\n dayDate.getUTCFullYear(),\n dayDate.getUTCMonth(),\n dayDate.getUTCDate(),\n startDate.getUTCHours(),\n startDate.getUTCMinutes(),\n startDate.getUTCSeconds(),\n startDate.getUTCMilliseconds(),\n ),\n ).toISOString();\n const candidateMonthDay = dayDate.getUTCDate();\n if (monthDayFilter && !monthDayFilter.has(candidateMonthDay)) {\n continue;\n }\n const consumed = consumeCandidate(candidateAt);\n if (consumed === \"stop\") {\n return occurrences;\n }\n }\n }\n return occurrences;\n }\n\n if (recurrence.freq === \"monthly\") {\n const startYear = startDate.getUTCFullYear();\n const startMonth = startDate.getUTCMonth();\n for (let step = 0; step < maxOccurrences; step += 1) {\n const monthAnchor = new Date(Date.UTC(startYear, startMonth + step * interval, 1, 0, 0, 0, 0));\n const year = monthAnchor.getUTCFullYear();\n const month = monthAnchor.getUTCMonth();\n for (const monthDay of sortedMonthDays) {\n const candidateAt = buildUtcTimestamp(year, month, monthDay, startDate);\n if (!candidateAt) {\n continue;\n }\n const candidateWeekday = weekdayToken(candidateAt);\n if (weekdayFilter && !weekdayFilter.has(candidateWeekday)) {\n continue;\n }\n const consumed = consumeCandidate(candidateAt);\n if (consumed === \"stop\") {\n return occurrences;\n }\n }\n }\n return occurrences;\n }\n\n const year = startDate.getUTCFullYear();\n const month = startDate.getUTCMonth();\n for (let step = 0; step < maxOccurrences; step += 1) {\n const candidateYear = year + step * interval;\n for (const monthDay of sortedMonthDays) {\n const candidateAt = buildUtcTimestamp(candidateYear, month, monthDay, startDate);\n if (!candidateAt) {\n continue;\n }\n const candidateWeekday = weekdayToken(candidateAt);\n if (weekdayFilter && !weekdayFilter.has(candidateWeekday)) {\n continue;\n }\n const consumed = consumeCandidate(candidateAt);\n if (consumed === \"stop\") {\n return occurrences;\n }\n }\n }\n\n return occurrences;\n}\n\nfunction sortEvents(values: CalendarRow[]): CalendarRow[] {\n return [...values].sort((a, b) => {\n const byAt = compareTimestampStrings(a.at, b.at);\n if (byAt !== 0) return byAt;\n const byPriority = a.item_priority - b.item_priority;\n if (byPriority !== 0) return byPriority;\n const byId = a.item_id.localeCompare(b.item_id);\n if (byId !== 0) return byId;\n const byKind = a.kind.localeCompare(b.kind);\n if (byKind !== 0) return byKind;\n const byEventTitle = String(a.event_title).localeCompare(String(b.event_title));\n if (byEventTitle !== 0) return byEventTitle;\n return String(a.reminder_text).localeCompare(String(b.reminder_text));\n });\n}\n\nfunction buildEventSeed(\n items: ItemFrontMatter[],\n recurringWindow: { start: string; end: string },\n includeSources: Set<CalendarIncludeKind>,\n occurrenceLimit: number | undefined,\n): CalendarRow[] {\n const events: CalendarRow[] = [];\n for (const item of items) {\n if (includeSources.has(\"deadlines\") && item.deadline) {\n events.push({\n at: item.deadline,\n date: toUtcDayKey(item.deadline),\n kind: \"deadline\",\n reminder_text: null,\n event_title: null,\n event_end: null,\n event_location: null,\n event_all_day: null,\n event_timezone: null,\n event_recurring: null,\n event_recurrence_rule: null,\n item_id: item.id,\n item_title: item.title,\n item_type: item.type,\n item_status: item.status,\n item_priority: item.priority,\n item_assignee: item.assignee ?? null,\n item_deadline: item.deadline,\n item_tags: item.tags,\n });\n }\n for (const reminder of includeSources.has(\"reminders\") ? (item.reminders ?? []) : []) {\n events.push({\n at: reminder.at,\n date: toUtcDayKey(reminder.at),\n kind: \"reminder\",\n reminder_text: reminder.text,\n event_title: null,\n event_end: null,\n event_location: null,\n event_all_day: null,\n event_timezone: null,\n event_recurring: null,\n event_recurrence_rule: null,\n item_id: item.id,\n item_title: item.title,\n item_type: item.type,\n item_status: item.status,\n item_priority: item.priority,\n item_assignee: item.assignee ?? null,\n item_deadline: item.deadline ?? null,\n item_tags: item.tags,\n });\n }\n for (const event of includeSources.has(\"events\") ? (item.events ?? []) : []) {\n const recurrenceRuleSummary = formatRecurrenceRuleForSummary(event.recurrence);\n const recurringDurationMs = (() => {\n if (!event.end_at) {\n return null;\n }\n const duration = Date.parse(event.end_at) - Date.parse(event.start_at);\n return Number.isFinite(duration) && duration > 0 ? duration : null;\n })();\n const occurrences = event.recurrence\n ? expandRecurringOccurrences(event.start_at, event.recurrence, recurringWindow, occurrenceLimit)\n : [event.start_at];\n for (const occurrenceAt of occurrences) {\n const occurrenceEnd =\n event.recurrence && recurringDurationMs !== null\n ? new Date(new Date(occurrenceAt).getTime() + recurringDurationMs).toISOString()\n : (event.end_at ?? null);\n events.push({\n at: occurrenceAt,\n date: toUtcDayKey(occurrenceAt),\n kind: \"event\",\n reminder_text: event.description ?? null,\n event_title: event.title ?? item.title,\n event_end: occurrenceEnd,\n event_location: event.location ?? null,\n event_all_day: event.all_day ?? null,\n event_timezone: event.timezone ?? null,\n event_recurring: event.recurrence ? true : false,\n event_recurrence_rule: recurrenceRuleSummary,\n item_id: item.id,\n item_title: item.title,\n item_type: item.type,\n item_status: item.status,\n item_priority: item.priority,\n item_assignee: item.assignee ?? null,\n item_deadline: item.deadline ?? null,\n item_tags: item.tags,\n });\n }\n }\n }\n return sortEvents(events);\n}\n\nfunction filterItems(\n items: ItemFrontMatter[],\n options: CalendarOptions,\n typeRegistry: ItemTypeRegistry,\n statusRegistry: RuntimeStatusRegistry,\n runtimeFieldFilters: Record<string, unknown>,\n): ItemFrontMatter[] {\n const typeFilter = parseType(options.type, typeRegistry);\n const tagFilter = options.tag?.trim().toLowerCase();\n const priorityFilter = parsePriority(options.priority);\n const statusFilter = parseStatus(options.status, statusRegistry);\n const assigneeFilter = options.assignee?.trim();\n const assigneeModeFilter = parseAssigneeFilter(options.assigneeFilter);\n const sprintFilter = options.sprint?.trim();\n const releaseFilter = options.release?.trim();\n\n if (assigneeFilter && (assigneeFilter.toLowerCase() === \"none\" || assigneeFilter.toLowerCase() === \"null\")) {\n throw new PmCliError(\n '--assignee no longer accepts \"none\" or \"null\". Use --assignee-filter unassigned.',\n EXIT_CODE.USAGE,\n );\n }\n if (assigneeFilter !== undefined && assigneeModeFilter === \"unassigned\") {\n throw new PmCliError(\"Cannot combine --assignee with --assignee-filter unassigned\", EXIT_CODE.USAGE);\n }\n\n return items.filter((item) => {\n if (typeFilter && item.type !== typeFilter) return false;\n if (tagFilter && !item.tags.some((tag) => tag.trim().toLowerCase() === tagFilter)) return false;\n if (priorityFilter !== undefined && item.priority !== priorityFilter) return false;\n if (statusFilter && item.status !== statusFilter) return false;\n if (assigneeModeFilter === \"assigned\" && !item.assignee) return false;\n if (assigneeModeFilter === \"unassigned\" && item.assignee) return false;\n if (assigneeFilter !== undefined && item.assignee !== assigneeFilter) {\n return false;\n }\n if (sprintFilter !== undefined && item.sprint !== sprintFilter) return false;\n if (releaseFilter !== undefined && item.release !== releaseFilter) return false;\n if (!matchesRuntimeFilters(item as Record<string, unknown>, runtimeFieldFilters)) return false;\n return true;\n });\n}\n\nfunction includeEventInWindow(event: CalendarRow, start: string | undefined, end: string | undefined): boolean {\n if (start && compareTimestampStrings(event.at, start) < 0) {\n return false;\n }\n if (end && compareTimestampStrings(event.at, end) >= 0) {\n return false;\n }\n return true;\n}\n\nfunction resolveCalendarBoundaryInput(raw: string, nowValue: string, fieldLabel: \"--date\" | \"--from\" | \"--to\"): string {\n if (raw.trim().toLowerCase() === \"today\") {\n return startOfUtcDay(nowValue);\n }\n return resolveIsoOrRelative(raw, new Date(nowValue), fieldLabel);\n}\n\nfunction buildRange(\n view: CalendarView,\n options: CalendarOptions,\n nowValue: string,\n): {\n anchor: string;\n start?: string;\n end?: string;\n periodStart?: string;\n periodEnd?: string;\n fullPeriod: boolean;\n} {\n const anchor = options.date ? resolveCalendarBoundaryInput(options.date, nowValue, \"--date\") : nowValue;\n const includePast = options.past === true;\n const fullPeriodRequested = options.fullPeriod === true;\n\n const from = options.from ? resolveCalendarBoundaryInput(options.from, nowValue, \"--from\") : undefined;\n const to = options.to ? resolveCalendarBoundaryInput(options.to, nowValue, \"--to\") : undefined;\n if (from && to && compareTimestampStrings(from, to) >= 0) {\n throw new PmCliError(\"Calendar --from must be before --to\", EXIT_CODE.USAGE);\n }\n\n if (view !== \"agenda\" && (options.from !== undefined || options.to !== undefined)) {\n throw new PmCliError(\"--from and --to are only supported for --view agenda\", EXIT_CODE.USAGE);\n }\n\n if (view === \"agenda\") {\n if (fullPeriodRequested) {\n throw new PmCliError(\n \"--full-period is only supported for --view day|week|month. For agenda windows, use --from and --to.\",\n EXIT_CODE.USAGE,\n );\n }\n const start = from ?? (options.date ? anchor : includePast ? undefined : nowValue);\n return {\n anchor,\n start,\n end: to,\n fullPeriod: false,\n };\n }\n\n if (view === \"day\") {\n const dayStart = startOfUtcDay(anchor);\n const fullPeriod = includePast || fullPeriodRequested;\n const start = fullPeriod ? dayStart : maxTimestamp(dayStart, nowValue);\n return {\n anchor,\n start,\n end: addUtcDays(dayStart, 1),\n periodStart: dayStart,\n periodEnd: addUtcDays(dayStart, 1),\n fullPeriod,\n };\n }\n\n if (view === \"week\") {\n const weekStart = startOfUtcWeekMonday(anchor);\n const fullPeriod = includePast || fullPeriodRequested;\n const start = fullPeriod ? weekStart : maxTimestamp(weekStart, nowValue);\n return {\n anchor,\n start,\n end: addUtcDays(weekStart, 7),\n periodStart: weekStart,\n periodEnd: addUtcDays(weekStart, 7),\n fullPeriod,\n };\n }\n\n const monthStart = startOfUtcMonth(anchor);\n const monthEnd = startOfNextUtcMonth(anchor);\n const fullPeriod = includePast || fullPeriodRequested;\n const start = fullPeriod ? monthStart : maxTimestamp(monthStart, nowValue);\n return {\n anchor,\n start,\n end: monthEnd,\n periodStart: monthStart,\n periodEnd: monthEnd,\n fullPeriod,\n };\n}\n\nfunction bucketEventsByDay(events: CalendarRow[]): CalendarDayBucket[] {\n const dayMap = new Map<string, CalendarRow[]>();\n for (const event of events) {\n const list = dayMap.get(event.date) ?? [];\n list.push(event);\n dayMap.set(event.date, list);\n }\n return [...dayMap.entries()]\n .sort(([left], [right]) => left.localeCompare(right))\n .map(([date, dayEvents]) => ({\n date,\n count: dayEvents.length,\n events: sortEvents(dayEvents),\n }));\n}\n\nfunction summarize(events: CalendarRow[]): CalendarResult[\"summary\"] {\n const itemIds = new Set<string>();\n const byType = new Map<string, number>();\n const byStatus = new Map<string, number>();\n let deadlines = 0;\n let reminders = 0;\n let scheduled = 0;\n let recurringEvents = 0;\n for (const event of events) {\n itemIds.add(event.item_id);\n incrementCount(byType, event.item_type);\n incrementCount(byStatus, event.item_status);\n if (event.kind === \"deadline\") {\n deadlines += 1;\n } else if (event.kind === \"reminder\") {\n reminders += 1;\n } else {\n scheduled += 1;\n if (event.event_recurring === true) {\n recurringEvents += 1;\n }\n }\n }\n return {\n events: events.length,\n items: itemIds.size,\n deadlines,\n reminders,\n scheduled,\n by_kind: {\n deadline: deadlines,\n reminder: reminders,\n event: scheduled,\n },\n by_type: toSortedCountRecord(byType),\n by_status: toSortedCountRecord(byStatus),\n recurring_events: recurringEvents,\n };\n}\n\nfunction formatWindow(range: CalendarResult[\"range\"]): string {\n const start = range.start ?? \"unbounded\";\n const end = range.end ?? \"unbounded\";\n return `${start} -> ${end}`;\n}\n\nfunction formatClock(timestamp: string): string {\n return `${new Date(timestamp).toISOString().slice(11, 16)}Z`;\n}\n\nfunction formatSummaryCountRecord(values: Record<string, number>): string {\n const entries = Object.entries(values);\n if (entries.length === 0) {\n return \"empty\";\n }\n return entries.map(([key, value]) => `${key}=${value}`).join(\", \");\n}\n\nfunction formatEventEnd(event: CalendarRow): string | null {\n if (!event.event_end) {\n return null;\n }\n if (event.event_all_day === true) {\n return event.event_end.slice(0, 10);\n }\n if (event.date === toUtcDayKey(event.event_end)) {\n return formatClock(event.event_end);\n }\n return event.event_end;\n}\n\nfunction formatEventLine(event: CalendarRow): string {\n const core = `${formatClock(event.at)} [${event.kind}] ${event.item_id} type=${event.item_type} p${event.item_priority} ${event.item_status} ${event.item_title}`;\n if (event.kind === \"reminder\") {\n const reminderText = event.reminder_text ?? \"\";\n return `${core} — ${reminderText} reminder=${JSON.stringify(reminderText)}`;\n }\n if (event.kind === \"event\") {\n const details: string[] = [];\n const title = event.event_title ?? event.item_title;\n const titleDiffers = event.event_title !== null && event.event_title !== event.item_title;\n if (titleDiffers) {\n details.push(title);\n details.push(`title=${JSON.stringify(title)}`);\n }\n if (event.event_recurring) {\n details.push(\"(recurring)\");\n details.push(\"recurring=true\");\n }\n const end = formatEventEnd(event);\n if (end) {\n details.push(`end=${end}`);\n }\n if (event.event_all_day !== null) {\n details.push(`all_day=${event.event_all_day ? \"true\" : \"false\"}`);\n }\n if (event.event_timezone) {\n details.push(`timezone=${event.event_timezone}`);\n }\n if (event.event_location) {\n details.push(`@ ${event.event_location}`);\n details.push(`location=${JSON.stringify(event.event_location)}`);\n }\n if (event.event_recurrence_rule) {\n details.push(`recurrence=${event.event_recurrence_rule}`);\n }\n if (event.reminder_text) {\n details.push(`description=${JSON.stringify(event.reminder_text)}`);\n }\n return `${core} — ${details.join(\" \")}`;\n }\n return core;\n}\n\nexport function renderCalendarMarkdown(result: CalendarResult): string {\n const lines: string[] = [];\n lines.push(`# pm calendar (${result.view})`);\n lines.push(\"\");\n lines.push(`- now: ${result.now}`);\n lines.push(`- window: ${formatWindow(result.range)}`);\n if (result.range.period_start && result.range.period_end) {\n lines.push(`- period: ${result.range.period_start} -> ${result.range.period_end}`);\n lines.push(`- period-mode: ${result.range.full_period ? \"full-period\" : \"active-window\"}`);\n }\n lines.push(\n `- events: ${result.summary.events} (deadlines: ${result.summary.deadlines}, reminders: ${result.summary.reminders}, scheduled: ${result.summary.scheduled})`,\n );\n lines.push(`- items: ${result.summary.items}`);\n lines.push(`- by-kind: ${formatSummaryCountRecord(result.summary.by_kind)}`);\n lines.push(`- by-type: ${formatSummaryCountRecord(result.summary.by_type)}`);\n lines.push(`- by-status: ${formatSummaryCountRecord(result.summary.by_status)}`);\n lines.push(`- recurring-events: ${result.summary.recurring_events}`);\n lines.push(\"\");\n\n if (result.events.length === 0) {\n lines.push(\"No calendar events matched the selected filters.\");\n return lines.join(\"\\n\");\n }\n\n for (const day of result.days) {\n lines.push(`## ${day.date} (${day.count})`);\n for (const event of day.events) {\n lines.push(`- ${formatEventLine(event)}`);\n }\n lines.push(\"\");\n }\n if (result.warnings && result.warnings.length > 0) {\n lines.push(\"### warnings\");\n for (const warning of result.warnings) {\n lines.push(`- ${warning}`);\n }\n lines.push(\"\");\n }\n return lines.join(\"\\n\").replace(/\\n+$/, \"\");\n}\n\nexport async function runCalendar(options: CalendarOptions, global: GlobalOptions): Promise<CalendarResult> {\n const pmRoot = resolvePmRoot(process.cwd(), global.path);\n if (!(await pathExists(getSettingsPath(pmRoot)))) {\n throw new PmCliError(`Tracker is not initialized at ${pmRoot}. Run pm init first.`, EXIT_CODE.NOT_FOUND);\n }\n\n const nowValue = nowIso();\n const view = parseView(options.view);\n const rangeBounds = buildRange(view, options, nowValue);\n const limit = parseIntegerLimit(options.limit);\n const includeSources = parseIncludeSources(options.include);\n const explicitLookahead = parseNonNegativeInteger(options.recurrenceLookaheadDays, \"Calendar recurrence lookahead days\");\n const recurrenceLookbackDays = parseNonNegativeInteger(options.recurrenceLookbackDays, \"Calendar recurrence lookback days\");\n const occurrenceLimit = parseNonNegativeInteger(options.occurrenceLimit, \"Calendar occurrence limit\");\n if (occurrenceLimit !== undefined && occurrenceLimit < 1) {\n throw new PmCliError(\"Calendar occurrence limit must be >= 1\", EXIT_CODE.USAGE);\n }\n\n const eventsOnly = includeSources.has(\"events\") && !includeSources.has(\"deadlines\") && !includeSources.has(\"reminders\");\n const hasExplicitBounds = options.to !== undefined || explicitLookahead !== undefined || occurrenceLimit !== undefined;\n const eventsOnlyCapApplied = eventsOnly && !hasExplicitBounds;\n const recurrenceLookaheadDays = eventsOnlyCapApplied ? DEFAULT_EVENTS_ONLY_LOOKAHEAD_DAYS : explicitLookahead;\n const recurrenceLookbackWindowDays =\n eventsOnlyCapApplied && recurrenceLookbackDays === undefined\n ? 0\n : recurrenceLookbackDays;\n\n const settings = await readSettings(pmRoot);\n const statusRegistry = resolveRuntimeStatusRegistry(settings.schema);\n const runtimeFieldRegistry = resolveRuntimeFieldRegistry(settings.schema);\n const runtimeFieldFilters = collectRuntimeFilterValues(options as Record<string, unknown>, runtimeFieldRegistry, \"calendar\");\n const typeRegistry = resolveItemTypeRegistry(settings, getActiveExtensionRegistrations());\n const listWarnings: string[] = [];\n if (eventsOnlyCapApplied) {\n listWarnings.push(\n `recurring_events_default_cap_applied:lookback=0d,lookahead=${DEFAULT_EVENTS_ONLY_LOOKAHEAD_DAYS}d -- use --recurrence-lookback-days/--recurrence-lookahead-days or --to for wider range`,\n );\n }\n const items = await listAllFrontMatter(pmRoot, settings.item_format, typeRegistry.type_to_folder, listWarnings, settings.schema);\n const filteredItems = filterItems(items, options, typeRegistry, statusRegistry, runtimeFieldFilters);\n const recurringWindow = buildRecurringEventWindow(\n rangeBounds.start,\n rangeBounds.end,\n nowValue,\n recurrenceLookbackWindowDays,\n recurrenceLookaheadDays,\n );\n const seededEvents = buildEventSeed(filteredItems, recurringWindow, includeSources, occurrenceLimit);\n const rangedEvents = seededEvents.filter((event) => includeEventInWindow(event, rangeBounds.start, rangeBounds.end));\n const limitedEvents = limit === undefined ? rangedEvents : rangedEvents.slice(0, limit);\n const days = bucketEventsByDay(limitedEvents);\n const warnings = [...new Set(listWarnings)].sort((left, right) => left.localeCompare(right));\n\n return {\n view,\n output_default: \"markdown\",\n now: nowValue,\n anchor: rangeBounds.anchor,\n range: {\n start: rangeBounds.start ?? null,\n end: rangeBounds.end ?? null,\n period_start: rangeBounds.periodStart ?? null,\n period_end: rangeBounds.periodEnd ?? null,\n full_period: rangeBounds.fullPeriod,\n past: options.past === true,\n from: options.from ?? null,\n to: options.to ?? null,\n },\n filters: {\n type: options.type ?? null,\n tag: options.tag ?? null,\n priority: options.priority ?? null,\n status: options.status ?? null,\n assignee: options.assignee ?? null,\n assignee_filter: options.assigneeFilter ?? null,\n sprint: options.sprint ?? null,\n release: options.release ?? null,\n runtime_filters: runtimeFieldFilters,\n limit: options.limit ?? null,\n include: options.include ?? null,\n full_period: options.fullPeriod === true ? \"true\" : null,\n recurrence_lookahead_days: options.recurrenceLookaheadDays ?? null,\n recurrence_lookback_days: options.recurrenceLookbackDays ?? null,\n occurrence_limit: options.occurrenceLimit ?? null,\n },\n summary: summarize(limitedEvents),\n events: limitedEvents,\n days,\n ...(warnings.length > 0 ? { warnings } : {}),\n };\n}\n"],"names":[],"mappings":"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","debugId":"132930ce-4e5e-5b59-938c-0871bc77b52e"}
|
|
1
|
+
{"version":3,"file":"calendar.js","sources":["cli/commands/calendar.ts"],"sourceRoot":"/","sourcesContent":["import { encode as encodeToon } from \"@toon-format/toon\";\nimport { pathExists } from \"../../core/fs/fs-utils.js\";\nimport { getActiveExtensionRegistrations } from \"../../core/extensions/index.js\";\nimport { resolveItemTypeRegistry, type ItemTypeRegistry } from \"../../core/item/type-registry.js\";\nimport { parseIntegerLimit, parsePriority, parseType } from \"../shared-parsers.js\";\nimport { normalizeStatusInput } from \"../../core/item/status.js\";\nimport { collectRuntimeFilterValues, matchesRuntimeFilters } from \"../../core/schema/runtime-field-filters.js\";\nimport {\n resolveRuntimeFieldRegistry,\n resolveRuntimeStatusRegistry,\n type RuntimeStatusRegistry,\n} from \"../../core/schema/runtime-schema.js\";\nimport { EXIT_CODE } from \"../../core/shared/constants.js\";\nimport type { GlobalOptions } from \"../../core/shared/command-types.js\";\nimport { PmCliError } from \"../../core/shared/errors.js\";\nimport { compareTimestampStrings, nowIso, resolveIsoOrRelative } from \"../../core/shared/time.js\";\nimport { listAllFrontMatter } from \"../../core/store/item-store.js\";\nimport { getSettingsPath, resolvePmRoot } from \"../../core/store/paths.js\";\nimport { readSettings } from \"../../core/store/settings.js\";\nimport type { ItemFrontMatter, ItemStatus, ItemType, RecurrenceRule } from \"../../types/index.js\";\nimport { RECURRENCE_WEEKDAY_VALUES, weekdayOrderIndex } from \"../../types/index.js\";\n\nexport const CALENDAR_VIEW_VALUES = [\"agenda\", \"day\", \"week\", \"month\"] as const;\nexport type CalendarView = (typeof CALENDAR_VIEW_VALUES)[number];\n\nexport const CALENDAR_OUTPUT_VALUES = [\"markdown\", \"toon\", \"json\"] as const;\nexport type CalendarOutputFormat = (typeof CALENDAR_OUTPUT_VALUES)[number];\n\nexport interface CalendarOptions {\n view?: string;\n date?: string;\n from?: string;\n to?: string;\n past?: boolean;\n fullPeriod?: boolean;\n limit?: string;\n type?: string;\n tag?: string;\n priority?: string;\n status?: string;\n assignee?: string;\n assigneeFilter?: string;\n sprint?: string;\n release?: string;\n include?: string;\n recurrenceLookaheadDays?: string;\n recurrenceLookbackDays?: string;\n occurrenceLimit?: string;\n format?: string;\n [key: string]: unknown;\n}\n\nexport interface CalendarRow {\n at: string;\n date: string;\n kind: \"deadline\" | \"reminder\" | \"event\";\n reminder_text: string | null;\n event_title: string | null;\n event_end: string | null;\n event_location: string | null;\n event_all_day: boolean | null;\n event_timezone: string | null;\n event_recurring: boolean | null;\n event_recurrence_rule: string | null;\n item_id: string;\n item_title: string;\n item_type: ItemType;\n item_status: ItemStatus;\n item_priority: number;\n item_assignee: string | null;\n item_deadline: string | null;\n item_tags: string[];\n}\n\nexport interface CalendarDayBucket {\n date: string;\n count: number;\n events: CalendarRow[];\n}\n\nexport interface CalendarResult {\n view: CalendarView;\n output_default: \"markdown\";\n now: string;\n anchor: string;\n range: {\n start: string | null;\n end: string | null;\n period_start: string | null;\n period_end: string | null;\n full_period: boolean;\n past: boolean;\n from: string | null;\n to: string | null;\n };\n filters: {\n type: string | null;\n tag: string | null;\n priority: string | null;\n status: string | null;\n assignee: string | null;\n assignee_filter: string | null;\n sprint: string | null;\n release: string | null;\n runtime_filters?: Record<string, unknown>;\n limit: string | null;\n include: string | null;\n full_period: string | null;\n recurrence_lookahead_days: string | null;\n recurrence_lookback_days: string | null;\n occurrence_limit: string | null;\n };\n summary: {\n events: number;\n items: number;\n deadlines: number;\n reminders: number;\n scheduled: number;\n by_kind: {\n deadline: number;\n reminder: number;\n event: number;\n };\n by_type: Record<string, number>;\n by_status: Record<string, number>;\n recurring_events: number;\n };\n events: CalendarRow[];\n days: CalendarDayBucket[];\n warnings?: string[];\n}\n\nconst UTC_DAY_TO_WEEKDAY = [\"sun\", \"mon\", \"tue\", \"wed\", \"thu\", \"fri\", \"sat\"] as const;\nconst DEFAULT_RECURRENCE_LOOKAHEAD_DAYS = 365;\nconst DEFAULT_RECURRENCE_LOOKBACK_DAYS = 365;\nconst DEFAULT_EVENTS_ONLY_LOOKAHEAD_DAYS = 28;\nconst MAX_RECURRENCE_OCCURRENCES = 1000;\n\nfunction parseNonNegativeInteger(raw: string | undefined, label: string): number | undefined {\n if (raw === undefined) return undefined;\n const parsed = Number(raw);\n if (!Number.isInteger(parsed) || parsed < 0) {\n throw new PmCliError(`${label} must be a non-negative integer`, EXIT_CODE.USAGE);\n }\n return parsed;\n}\n\ntype CalendarIncludeKind = \"deadlines\" | \"reminders\" | \"events\";\n\nfunction parseIncludeSources(raw: string | undefined): Set<CalendarIncludeKind> {\n if (!raw) {\n return new Set([\"deadlines\", \"reminders\", \"events\"]);\n }\n const normalized = raw.trim().toLowerCase();\n if (normalized === \"all\") {\n return new Set([\"deadlines\", \"reminders\", \"events\"]);\n }\n const values = normalized\n .split(/[\\|,]/)\n .map((value) => value.trim())\n .filter((value) => value.length > 0);\n if (values.length === 0) {\n throw new PmCliError(\"Calendar include filter must not be empty\", EXIT_CODE.USAGE);\n }\n const include = new Set<CalendarIncludeKind>();\n for (const value of values) {\n if (value === \"deadlines\" || value === \"deadline\") {\n include.add(\"deadlines\");\n continue;\n }\n if (value === \"reminders\" || value === \"reminder\") {\n include.add(\"reminders\");\n continue;\n }\n if (value === \"events\" || value === \"event\" || value === \"scheduled\") {\n include.add(\"events\");\n continue;\n }\n throw new PmCliError(\"Calendar include filter must be deadlines|reminders|events|scheduled|all\", EXIT_CODE.USAGE);\n }\n return include;\n}\n\nfunction parseView(raw: string | undefined): CalendarView {\n if (!raw) return \"agenda\";\n const normalized = raw.trim().toLowerCase();\n if (!CALENDAR_VIEW_VALUES.includes(normalized as CalendarView)) {\n throw new PmCliError(\"Calendar view must be one of agenda|day|week|month\", EXIT_CODE.USAGE);\n }\n return normalized as CalendarView;\n}\n\nfunction parseOutputFormat(raw: string | undefined): CalendarOutputFormat | undefined {\n if (!raw) return undefined;\n const normalized = raw.trim().toLowerCase();\n if (!CALENDAR_OUTPUT_VALUES.includes(normalized as CalendarOutputFormat)) {\n throw new PmCliError(\"Calendar format must be one of markdown|toon|json\", EXIT_CODE.USAGE);\n }\n return normalized as CalendarOutputFormat;\n}\n\nexport function resolveCalendarOutputFormat(options: CalendarOptions, global: GlobalOptions): CalendarOutputFormat {\n const commandFormat = parseOutputFormat(options.format);\n if (global.json && commandFormat && commandFormat !== \"json\") {\n throw new PmCliError(\"Cannot combine --json with --format markdown|toon\", EXIT_CODE.USAGE);\n }\n if (global.json) {\n return \"json\";\n }\n return commandFormat ?? \"markdown\";\n}\n\nfunction parseStatus(raw: string | undefined, statusRegistry: RuntimeStatusRegistry): ItemStatus | undefined {\n if (raw === undefined) return undefined;\n const normalized = normalizeStatusInput(raw, statusRegistry);\n if (!normalized) {\n const allowedStatuses = statusRegistry.definitions.map((definition) => definition.id);\n throw new PmCliError(`Calendar status filter must be one of ${allowedStatuses.join(\"|\")}`, EXIT_CODE.USAGE);\n }\n return normalized;\n}\n\nfunction parseAssigneeFilter(raw: string | undefined): \"assigned\" | \"unassigned\" | undefined {\n if (raw === undefined) {\n return undefined;\n }\n const normalized = raw.trim().toLowerCase();\n if (!normalized) {\n throw new PmCliError(\"Calendar assignee filter must be one of assigned|unassigned\", EXIT_CODE.USAGE);\n }\n if (normalized !== \"assigned\" && normalized !== \"unassigned\") {\n throw new PmCliError(`Invalid calendar assignee filter \"${raw}\". Allowed: assigned|unassigned`, EXIT_CODE.USAGE);\n }\n return normalized;\n}\n\nfunction toUtcDayKey(timestamp: string): string {\n return new Date(timestamp).toISOString().slice(0, 10);\n}\n\nfunction startOfUtcDay(timestamp: string): string {\n const date = new Date(timestamp);\n return new Date(Date.UTC(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate(), 0, 0, 0, 0)).toISOString();\n}\n\nfunction addUtcDays(timestamp: string, days: number): string {\n const date = new Date(timestamp);\n return new Date(date.getTime() + days * 24 * 60 * 60 * 1000).toISOString();\n}\n\nfunction startOfUtcWeekMonday(timestamp: string): string {\n const base = new Date(startOfUtcDay(timestamp));\n const day = base.getUTCDay();\n const delta = day === 0 ? -6 : 1 - day;\n return addUtcDays(base.toISOString(), delta);\n}\n\nfunction startOfUtcMonth(timestamp: string): string {\n const date = new Date(timestamp);\n return new Date(Date.UTC(date.getUTCFullYear(), date.getUTCMonth(), 1, 0, 0, 0, 0)).toISOString();\n}\n\nfunction startOfNextUtcMonth(timestamp: string): string {\n const date = new Date(timestamp);\n return new Date(Date.UTC(date.getUTCFullYear(), date.getUTCMonth() + 1, 1, 0, 0, 0, 0)).toISOString();\n}\n\nfunction maxTimestamp(left: string, right: string): string {\n return compareTimestampStrings(left, right) >= 0 ? left : right;\n}\n\nfunction toSortedCountRecord(values: Map<string, number>): Record<string, number> {\n return Object.fromEntries([...values.entries()].sort(([left], [right]) => left.localeCompare(right)));\n}\n\nfunction incrementCount(values: Map<string, number>, key: string): void {\n values.set(key, (values.get(key) ?? 0) + 1);\n}\n\nfunction formatRecurrenceRuleForSummary(rule: RecurrenceRule | undefined): string | null {\n if (!rule) {\n return null;\n }\n const parts: string[] = [`freq=${rule.freq}`];\n if (rule.interval !== undefined) {\n parts.push(`interval=${rule.interval}`);\n }\n if (rule.count !== undefined) {\n parts.push(`count=${rule.count}`);\n }\n if (rule.until) {\n parts.push(`until=${rule.until}`);\n }\n if (rule.by_weekday && rule.by_weekday.length > 0) {\n const weekdays = [...rule.by_weekday].sort((left, right) => weekdayOrderIndex(left) - weekdayOrderIndex(right));\n parts.push(`by_weekday=${weekdays.join(\"|\")}`);\n }\n if (rule.by_month_day && rule.by_month_day.length > 0) {\n const monthDays = [...rule.by_month_day].sort((left, right) => left - right);\n parts.push(`by_month_day=${monthDays.join(\"|\")}`);\n }\n if (rule.exdates && rule.exdates.length > 0) {\n const exdates = [...rule.exdates].sort((left, right) => left.localeCompare(right));\n parts.push(`exdates=${exdates.join(\"|\")}`);\n }\n return parts.join(\",\");\n}\n\nfunction buildUtcTimestamp(year: number, month: number, day: number, timeSource: Date): string | undefined {\n const candidate = new Date(\n Date.UTC(\n year,\n month,\n day,\n timeSource.getUTCHours(),\n timeSource.getUTCMinutes(),\n timeSource.getUTCSeconds(),\n timeSource.getUTCMilliseconds(),\n ),\n );\n if (candidate.getUTCFullYear() !== year || candidate.getUTCMonth() !== month || candidate.getUTCDate() !== day) {\n return undefined;\n }\n return candidate.toISOString();\n}\n\nfunction weekdayToken(timestamp: string): (typeof UTC_DAY_TO_WEEKDAY)[number] {\n return UTC_DAY_TO_WEEKDAY[new Date(timestamp).getUTCDay()];\n}\n\nfunction buildRecurringEventWindow(\n start: string | undefined,\n end: string | undefined,\n nowValue: string,\n lookbackDays: number | undefined,\n lookaheadDays: number | undefined,\n): { start: string; end: string } {\n const windowStart = start ?? addUtcDays(nowValue, -(lookbackDays ?? DEFAULT_RECURRENCE_LOOKBACK_DAYS));\n const windowEnd = end ?? addUtcDays(start ?? nowValue, lookaheadDays ?? DEFAULT_RECURRENCE_LOOKAHEAD_DAYS);\n return {\n start: windowStart,\n end: compareTimestampStrings(windowEnd, windowStart) > 0 ? windowEnd : addUtcDays(windowStart, 1),\n };\n}\n\nfunction expandRecurringOccurrences(\n startAt: string,\n recurrence: RecurrenceRule,\n window: { start: string; end: string },\n occurrenceLimit: number | undefined,\n): string[] {\n const maxOccurrences = occurrenceLimit ?? MAX_RECURRENCE_OCCURRENCES;\n const interval = recurrence.interval ?? 1;\n const countLimit = recurrence.count ?? Number.POSITIVE_INFINITY;\n const until = recurrence.until;\n const excluded = new Set(recurrence.exdates ?? []);\n const recurrenceWeekdays =\n recurrence.by_weekday && recurrence.by_weekday.length > 0 ? [...recurrence.by_weekday] : [weekdayToken(startAt)];\n const recurrenceMonthDays =\n recurrence.by_month_day && recurrence.by_month_day.length > 0 ? [...recurrence.by_month_day] : [new Date(startAt).getUTCDate()];\n const weekdayFilter = recurrence.by_weekday ? new Set(recurrence.by_weekday) : undefined;\n const monthDayFilter = recurrence.by_month_day ? new Set(recurrence.by_month_day) : undefined;\n const sortedWeekdays = [...new Set(recurrenceWeekdays)].sort(\n (left, right) =>\n weekdayOrderIndex(left as (typeof RECURRENCE_WEEKDAY_VALUES)[number]) -\n weekdayOrderIndex(right as (typeof RECURRENCE_WEEKDAY_VALUES)[number]),\n );\n const sortedMonthDays = [...new Set(recurrenceMonthDays)].sort((left, right) => left - right);\n\n const occurrences: string[] = [];\n let produced = 0;\n const consumeCandidate = (candidateAt: string): \"continue\" | \"stop\" => {\n if (compareTimestampStrings(candidateAt, startAt) < 0) {\n return \"continue\";\n }\n if (until && compareTimestampStrings(candidateAt, until) > 0) {\n return \"stop\";\n }\n if (compareTimestampStrings(candidateAt, window.end) >= 0) {\n return \"stop\";\n }\n if (excluded.has(candidateAt)) {\n return \"continue\";\n }\n produced += 1;\n if (compareTimestampStrings(candidateAt, window.start) >= 0) {\n occurrences.push(candidateAt);\n }\n if (produced >= countLimit) {\n return \"stop\";\n }\n return \"continue\";\n };\n\n const startDate = new Date(startAt);\n if (recurrence.freq === \"daily\") {\n let candidateAt = startAt;\n for (let iteration = 0; iteration < maxOccurrences; iteration += 1) {\n const candidateWeekday = weekdayToken(candidateAt);\n const candidateMonthDay = new Date(candidateAt).getUTCDate();\n const weekdayMatches = !weekdayFilter || weekdayFilter.has(candidateWeekday);\n const monthDayMatches = !monthDayFilter || monthDayFilter.has(candidateMonthDay);\n if (weekdayMatches && monthDayMatches && consumeCandidate(candidateAt) === \"stop\") {\n break;\n }\n candidateAt = addUtcDays(candidateAt, interval);\n }\n return occurrences;\n }\n\n if (recurrence.freq === \"weekly\") {\n const weekStart = startOfUtcWeekMonday(startAt);\n for (let step = 0; step < maxOccurrences; step += 1) {\n const candidateWeekStart = addUtcDays(weekStart, step * interval * 7);\n for (const weekday of sortedWeekdays) {\n const dayOffset = weekdayOrderIndex(weekday as (typeof RECURRENCE_WEEKDAY_VALUES)[number]);\n const candidateDay = addUtcDays(candidateWeekStart, dayOffset);\n const dayDate = new Date(candidateDay);\n const candidateAt = new Date(\n Date.UTC(\n dayDate.getUTCFullYear(),\n dayDate.getUTCMonth(),\n dayDate.getUTCDate(),\n startDate.getUTCHours(),\n startDate.getUTCMinutes(),\n startDate.getUTCSeconds(),\n startDate.getUTCMilliseconds(),\n ),\n ).toISOString();\n const candidateMonthDay = dayDate.getUTCDate();\n if (monthDayFilter && !monthDayFilter.has(candidateMonthDay)) {\n continue;\n }\n const consumed = consumeCandidate(candidateAt);\n if (consumed === \"stop\") {\n return occurrences;\n }\n }\n }\n return occurrences;\n }\n\n if (recurrence.freq === \"monthly\") {\n const startYear = startDate.getUTCFullYear();\n const startMonth = startDate.getUTCMonth();\n for (let step = 0; step < maxOccurrences; step += 1) {\n const monthAnchor = new Date(Date.UTC(startYear, startMonth + step * interval, 1, 0, 0, 0, 0));\n const year = monthAnchor.getUTCFullYear();\n const month = monthAnchor.getUTCMonth();\n for (const monthDay of sortedMonthDays) {\n const candidateAt = buildUtcTimestamp(year, month, monthDay, startDate);\n if (!candidateAt) {\n continue;\n }\n const candidateWeekday = weekdayToken(candidateAt);\n if (weekdayFilter && !weekdayFilter.has(candidateWeekday)) {\n continue;\n }\n const consumed = consumeCandidate(candidateAt);\n if (consumed === \"stop\") {\n return occurrences;\n }\n }\n }\n return occurrences;\n }\n\n const year = startDate.getUTCFullYear();\n const month = startDate.getUTCMonth();\n for (let step = 0; step < maxOccurrences; step += 1) {\n const candidateYear = year + step * interval;\n for (const monthDay of sortedMonthDays) {\n const candidateAt = buildUtcTimestamp(candidateYear, month, monthDay, startDate);\n if (!candidateAt) {\n continue;\n }\n const candidateWeekday = weekdayToken(candidateAt);\n if (weekdayFilter && !weekdayFilter.has(candidateWeekday)) {\n continue;\n }\n const consumed = consumeCandidate(candidateAt);\n if (consumed === \"stop\") {\n return occurrences;\n }\n }\n }\n\n return occurrences;\n}\n\nfunction sortEvents(values: CalendarRow[]): CalendarRow[] {\n return [...values].sort((a, b) => {\n const byAt = compareTimestampStrings(a.at, b.at);\n if (byAt !== 0) return byAt;\n const byPriority = a.item_priority - b.item_priority;\n if (byPriority !== 0) return byPriority;\n const byId = a.item_id.localeCompare(b.item_id);\n if (byId !== 0) return byId;\n const byKind = a.kind.localeCompare(b.kind);\n if (byKind !== 0) return byKind;\n const byEventTitle = String(a.event_title).localeCompare(String(b.event_title));\n if (byEventTitle !== 0) return byEventTitle;\n return String(a.reminder_text).localeCompare(String(b.reminder_text));\n });\n}\n\nfunction buildEventSeed(\n items: ItemFrontMatter[],\n recurringWindow: { start: string; end: string },\n includeSources: Set<CalendarIncludeKind>,\n occurrenceLimit: number | undefined,\n): CalendarRow[] {\n const events: CalendarRow[] = [];\n for (const item of items) {\n if (includeSources.has(\"deadlines\") && item.deadline) {\n events.push({\n at: item.deadline,\n date: toUtcDayKey(item.deadline),\n kind: \"deadline\",\n reminder_text: null,\n event_title: null,\n event_end: null,\n event_location: null,\n event_all_day: null,\n event_timezone: null,\n event_recurring: null,\n event_recurrence_rule: null,\n item_id: item.id,\n item_title: item.title,\n item_type: item.type,\n item_status: item.status,\n item_priority: item.priority,\n item_assignee: item.assignee ?? null,\n item_deadline: item.deadline,\n item_tags: item.tags,\n });\n }\n for (const reminder of includeSources.has(\"reminders\") ? (item.reminders ?? []) : []) {\n events.push({\n at: reminder.at,\n date: toUtcDayKey(reminder.at),\n kind: \"reminder\",\n reminder_text: reminder.text,\n event_title: null,\n event_end: null,\n event_location: null,\n event_all_day: null,\n event_timezone: null,\n event_recurring: null,\n event_recurrence_rule: null,\n item_id: item.id,\n item_title: item.title,\n item_type: item.type,\n item_status: item.status,\n item_priority: item.priority,\n item_assignee: item.assignee ?? null,\n item_deadline: item.deadline ?? null,\n item_tags: item.tags,\n });\n }\n for (const event of includeSources.has(\"events\") ? (item.events ?? []) : []) {\n const recurrenceRuleSummary = formatRecurrenceRuleForSummary(event.recurrence);\n const recurringDurationMs = (() => {\n if (!event.end_at) {\n return null;\n }\n const duration = Date.parse(event.end_at) - Date.parse(event.start_at);\n return Number.isFinite(duration) && duration > 0 ? duration : null;\n })();\n const occurrences = event.recurrence\n ? expandRecurringOccurrences(event.start_at, event.recurrence, recurringWindow, occurrenceLimit)\n : [event.start_at];\n for (const occurrenceAt of occurrences) {\n const occurrenceEnd =\n event.recurrence && recurringDurationMs !== null\n ? new Date(new Date(occurrenceAt).getTime() + recurringDurationMs).toISOString()\n : (event.end_at ?? null);\n events.push({\n at: occurrenceAt,\n date: toUtcDayKey(occurrenceAt),\n kind: \"event\",\n reminder_text: event.description ?? null,\n event_title: event.title ?? item.title,\n event_end: occurrenceEnd,\n event_location: event.location ?? null,\n event_all_day: event.all_day ?? null,\n event_timezone: event.timezone ?? null,\n event_recurring: event.recurrence ? true : false,\n event_recurrence_rule: recurrenceRuleSummary,\n item_id: item.id,\n item_title: item.title,\n item_type: item.type,\n item_status: item.status,\n item_priority: item.priority,\n item_assignee: item.assignee ?? null,\n item_deadline: item.deadline ?? null,\n item_tags: item.tags,\n });\n }\n }\n }\n return sortEvents(events);\n}\n\nfunction filterItems(\n items: ItemFrontMatter[],\n options: CalendarOptions,\n typeRegistry: ItemTypeRegistry,\n statusRegistry: RuntimeStatusRegistry,\n runtimeFieldFilters: Record<string, unknown>,\n): ItemFrontMatter[] {\n const typeFilter = parseType(options.type, typeRegistry);\n const tagFilter = options.tag?.trim().toLowerCase();\n const priorityFilter = parsePriority(options.priority);\n const statusFilter = parseStatus(options.status, statusRegistry);\n const assigneeFilter = options.assignee?.trim();\n const assigneeModeFilter = parseAssigneeFilter(options.assigneeFilter);\n const sprintFilter = options.sprint?.trim();\n const releaseFilter = options.release?.trim();\n\n if (assigneeFilter && (assigneeFilter.toLowerCase() === \"none\" || assigneeFilter.toLowerCase() === \"null\")) {\n throw new PmCliError(\n '--assignee no longer accepts \"none\" or \"null\". Use --assignee-filter unassigned.',\n EXIT_CODE.USAGE,\n );\n }\n if (assigneeFilter !== undefined && assigneeModeFilter === \"unassigned\") {\n throw new PmCliError(\"Cannot combine --assignee with --assignee-filter unassigned\", EXIT_CODE.USAGE);\n }\n\n return items.filter((item) => {\n if (typeFilter && item.type !== typeFilter) return false;\n if (tagFilter && !item.tags.some((tag) => tag.trim().toLowerCase() === tagFilter)) return false;\n if (priorityFilter !== undefined && item.priority !== priorityFilter) return false;\n if (statusFilter && item.status !== statusFilter) return false;\n if (assigneeModeFilter === \"assigned\" && !item.assignee) return false;\n if (assigneeModeFilter === \"unassigned\" && item.assignee) return false;\n if (assigneeFilter !== undefined && item.assignee !== assigneeFilter) {\n return false;\n }\n if (sprintFilter !== undefined && item.sprint !== sprintFilter) return false;\n if (releaseFilter !== undefined && item.release !== releaseFilter) return false;\n if (!matchesRuntimeFilters(item as Record<string, unknown>, runtimeFieldFilters)) return false;\n return true;\n });\n}\n\nfunction includeEventInWindow(event: CalendarRow, start: string | undefined, end: string | undefined): boolean {\n if (start && compareTimestampStrings(event.at, start) < 0) {\n return false;\n }\n if (end && compareTimestampStrings(event.at, end) >= 0) {\n return false;\n }\n return true;\n}\n\nfunction resolveCalendarBoundaryInput(raw: string, nowValue: string, fieldLabel: \"--date\" | \"--from\" | \"--to\"): string {\n if (raw.trim().toLowerCase() === \"today\") {\n return startOfUtcDay(nowValue);\n }\n return resolveIsoOrRelative(raw, new Date(nowValue), fieldLabel);\n}\n\nfunction buildRange(\n view: CalendarView,\n options: CalendarOptions,\n nowValue: string,\n): {\n anchor: string;\n start?: string;\n end?: string;\n periodStart?: string;\n periodEnd?: string;\n fullPeriod: boolean;\n} {\n const anchor = options.date ? resolveCalendarBoundaryInput(options.date, nowValue, \"--date\") : nowValue;\n const includePast = options.past === true;\n const fullPeriodRequested = options.fullPeriod === true;\n\n const from = options.from ? resolveCalendarBoundaryInput(options.from, nowValue, \"--from\") : undefined;\n const to = options.to ? resolveCalendarBoundaryInput(options.to, nowValue, \"--to\") : undefined;\n if (from && to && compareTimestampStrings(from, to) >= 0) {\n throw new PmCliError(\"Calendar --from must be before --to\", EXIT_CODE.USAGE);\n }\n\n if (view !== \"agenda\" && (options.from !== undefined || options.to !== undefined)) {\n throw new PmCliError(\"--from and --to are only supported for --view agenda\", EXIT_CODE.USAGE);\n }\n\n if (view === \"agenda\") {\n if (fullPeriodRequested) {\n throw new PmCliError(\n \"--full-period is only supported for --view day|week|month. For agenda windows, use --from and --to.\",\n EXIT_CODE.USAGE,\n );\n }\n const start = from ?? (options.date ? anchor : includePast ? undefined : nowValue);\n return {\n anchor,\n start,\n end: to,\n fullPeriod: false,\n };\n }\n\n if (view === \"day\") {\n const dayStart = startOfUtcDay(anchor);\n const fullPeriod = includePast || fullPeriodRequested;\n const start = fullPeriod ? dayStart : maxTimestamp(dayStart, nowValue);\n return {\n anchor,\n start,\n end: addUtcDays(dayStart, 1),\n periodStart: dayStart,\n periodEnd: addUtcDays(dayStart, 1),\n fullPeriod,\n };\n }\n\n if (view === \"week\") {\n const weekStart = startOfUtcWeekMonday(anchor);\n const fullPeriod = includePast || fullPeriodRequested;\n const start = fullPeriod ? weekStart : maxTimestamp(weekStart, nowValue);\n return {\n anchor,\n start,\n end: addUtcDays(weekStart, 7),\n periodStart: weekStart,\n periodEnd: addUtcDays(weekStart, 7),\n fullPeriod,\n };\n }\n\n const monthStart = startOfUtcMonth(anchor);\n const monthEnd = startOfNextUtcMonth(anchor);\n const fullPeriod = includePast || fullPeriodRequested;\n const start = fullPeriod ? monthStart : maxTimestamp(monthStart, nowValue);\n return {\n anchor,\n start,\n end: monthEnd,\n periodStart: monthStart,\n periodEnd: monthEnd,\n fullPeriod,\n };\n}\n\nfunction bucketEventsByDay(events: CalendarRow[]): CalendarDayBucket[] {\n const dayMap = new Map<string, CalendarRow[]>();\n for (const event of events) {\n const list = dayMap.get(event.date) ?? [];\n list.push(event);\n dayMap.set(event.date, list);\n }\n return [...dayMap.entries()]\n .sort(([left], [right]) => left.localeCompare(right))\n .map(([date, dayEvents]) => ({\n date,\n count: dayEvents.length,\n events: sortEvents(dayEvents),\n }));\n}\n\nfunction summarize(events: CalendarRow[]): CalendarResult[\"summary\"] {\n const itemIds = new Set<string>();\n const byType = new Map<string, number>();\n const byStatus = new Map<string, number>();\n let deadlines = 0;\n let reminders = 0;\n let scheduled = 0;\n let recurringEvents = 0;\n for (const event of events) {\n itemIds.add(event.item_id);\n incrementCount(byType, event.item_type);\n incrementCount(byStatus, event.item_status);\n if (event.kind === \"deadline\") {\n deadlines += 1;\n } else if (event.kind === \"reminder\") {\n reminders += 1;\n } else {\n scheduled += 1;\n if (event.event_recurring === true) {\n recurringEvents += 1;\n }\n }\n }\n return {\n events: events.length,\n items: itemIds.size,\n deadlines,\n reminders,\n scheduled,\n by_kind: {\n deadline: deadlines,\n reminder: reminders,\n event: scheduled,\n },\n by_type: toSortedCountRecord(byType),\n by_status: toSortedCountRecord(byStatus),\n recurring_events: recurringEvents,\n };\n}\n\nfunction formatWindow(range: CalendarResult[\"range\"]): string {\n const start = range.start ?? \"unbounded\";\n const end = range.end ?? \"unbounded\";\n return `${start} -> ${end}`;\n}\n\nfunction formatClock(timestamp: string): string {\n return `${new Date(timestamp).toISOString().slice(11, 16)}Z`;\n}\n\nfunction formatSummaryCountRecord(values: Record<string, number>): string {\n const entries = Object.entries(values);\n if (entries.length === 0) {\n return \"empty\";\n }\n return entries.map(([key, value]) => `${key}=${value}`).join(\", \");\n}\n\nfunction formatEventEnd(event: CalendarRow): string | null {\n if (!event.event_end) {\n return null;\n }\n if (event.event_all_day === true) {\n return event.event_end.slice(0, 10);\n }\n if (event.date === toUtcDayKey(event.event_end)) {\n return formatClock(event.event_end);\n }\n return event.event_end;\n}\n\nfunction formatEventLine(event: CalendarRow): string {\n const core = `${formatClock(event.at)} [${event.kind}] ${event.item_id} type=${event.item_type} p${event.item_priority} ${event.item_status} ${event.item_title}`;\n if (event.kind === \"reminder\") {\n const reminderText = event.reminder_text ?? \"\";\n return `${core} — ${reminderText} reminder=${JSON.stringify(reminderText)}`;\n }\n if (event.kind === \"event\") {\n const details: string[] = [];\n const title = event.event_title ?? event.item_title;\n const titleDiffers = event.event_title !== null && event.event_title !== event.item_title;\n if (titleDiffers) {\n details.push(title);\n details.push(`title=${JSON.stringify(title)}`);\n }\n if (event.event_recurring) {\n details.push(\"(recurring)\");\n details.push(\"recurring=true\");\n }\n const end = formatEventEnd(event);\n if (end) {\n details.push(`end=${end}`);\n }\n if (event.event_all_day !== null) {\n details.push(`all_day=${event.event_all_day ? \"true\" : \"false\"}`);\n }\n if (event.event_timezone) {\n details.push(`timezone=${event.event_timezone}`);\n }\n if (event.event_location) {\n details.push(`@ ${event.event_location}`);\n details.push(`location=${JSON.stringify(event.event_location)}`);\n }\n if (event.event_recurrence_rule) {\n details.push(`recurrence=${event.event_recurrence_rule}`);\n }\n if (event.reminder_text) {\n details.push(`description=${JSON.stringify(event.reminder_text)}`);\n }\n return `${core} — ${details.join(\" \")}`;\n }\n return core;\n}\n\nexport function renderCalendarMarkdown(result: CalendarResult): string {\n const lines: string[] = [];\n lines.push(`# pm calendar (${result.view})`);\n lines.push(\"\");\n lines.push(`- now: ${result.now}`);\n lines.push(`- window: ${formatWindow(result.range)}`);\n if (result.range.period_start && result.range.period_end) {\n lines.push(`- period: ${result.range.period_start} -> ${result.range.period_end}`);\n lines.push(`- period-mode: ${result.range.full_period ? \"full-period\" : \"active-window\"}`);\n }\n lines.push(\n `- events: ${result.summary.events} (deadlines: ${result.summary.deadlines}, reminders: ${result.summary.reminders}, scheduled: ${result.summary.scheduled})`,\n );\n lines.push(`- items: ${result.summary.items}`);\n lines.push(`- by-kind: ${formatSummaryCountRecord(result.summary.by_kind)}`);\n lines.push(`- by-type: ${formatSummaryCountRecord(result.summary.by_type)}`);\n lines.push(`- by-status: ${formatSummaryCountRecord(result.summary.by_status)}`);\n lines.push(`- recurring-events: ${result.summary.recurring_events}`);\n lines.push(\"\");\n\n if (result.events.length === 0) {\n lines.push(\"No calendar events matched the selected filters.\");\n return lines.join(\"\\n\");\n }\n\n for (const day of result.days) {\n lines.push(`## ${day.date} (${day.count})`);\n for (const event of day.events) {\n lines.push(`- ${formatEventLine(event)}`);\n }\n lines.push(\"\");\n }\n if (result.warnings && result.warnings.length > 0) {\n lines.push(\"### warnings\");\n for (const warning of result.warnings) {\n lines.push(`- ${warning}`);\n }\n lines.push(\"\");\n }\n return lines.join(\"\\n\").replace(/\\n+$/, \"\");\n}\n\n/**\n * Serializes a CalendarResult as TOON (the project's structured output format).\n *\n * The calendar result is JSON-serializable end-to-end (only strings, numbers,\n * booleans, null, plain objects, and arrays), so the value is fed directly to\n * `@toon-format/toon`'s encoder.\n */\nexport function renderCalendarToon(result: CalendarResult): string {\n return encodeToon(result as unknown as Parameters<typeof encodeToon>[0]);\n}\n\nexport async function runCalendar(options: CalendarOptions, global: GlobalOptions): Promise<CalendarResult> {\n const pmRoot = resolvePmRoot(process.cwd(), global.path);\n if (!(await pathExists(getSettingsPath(pmRoot)))) {\n throw new PmCliError(`Tracker is not initialized at ${pmRoot}. Run pm init first.`, EXIT_CODE.NOT_FOUND);\n }\n\n const nowValue = nowIso();\n const view = parseView(options.view);\n const rangeBounds = buildRange(view, options, nowValue);\n const limit = parseIntegerLimit(options.limit);\n const includeSources = parseIncludeSources(options.include);\n const explicitLookahead = parseNonNegativeInteger(options.recurrenceLookaheadDays, \"Calendar recurrence lookahead days\");\n const recurrenceLookbackDays = parseNonNegativeInteger(options.recurrenceLookbackDays, \"Calendar recurrence lookback days\");\n const occurrenceLimit = parseNonNegativeInteger(options.occurrenceLimit, \"Calendar occurrence limit\");\n if (occurrenceLimit !== undefined && occurrenceLimit < 1) {\n throw new PmCliError(\"Calendar occurrence limit must be >= 1\", EXIT_CODE.USAGE);\n }\n\n const eventsOnly = includeSources.has(\"events\") && !includeSources.has(\"deadlines\") && !includeSources.has(\"reminders\");\n const hasExplicitBounds = options.to !== undefined || explicitLookahead !== undefined || occurrenceLimit !== undefined;\n const eventsOnlyCapApplied = eventsOnly && !hasExplicitBounds;\n const recurrenceLookaheadDays = eventsOnlyCapApplied ? DEFAULT_EVENTS_ONLY_LOOKAHEAD_DAYS : explicitLookahead;\n const recurrenceLookbackWindowDays =\n eventsOnlyCapApplied && recurrenceLookbackDays === undefined\n ? 0\n : recurrenceLookbackDays;\n\n const settings = await readSettings(pmRoot);\n const statusRegistry = resolveRuntimeStatusRegistry(settings.schema);\n const runtimeFieldRegistry = resolveRuntimeFieldRegistry(settings.schema);\n const runtimeFieldFilters = collectRuntimeFilterValues(options as Record<string, unknown>, runtimeFieldRegistry, \"calendar\");\n const typeRegistry = resolveItemTypeRegistry(settings, getActiveExtensionRegistrations());\n const listWarnings: string[] = [];\n if (eventsOnlyCapApplied) {\n listWarnings.push(\n `recurring_events_default_cap_applied:lookback=0d,lookahead=${DEFAULT_EVENTS_ONLY_LOOKAHEAD_DAYS}d -- use --recurrence-lookback-days/--recurrence-lookahead-days or --to for wider range`,\n );\n }\n const items = await listAllFrontMatter(pmRoot, settings.item_format, typeRegistry.type_to_folder, listWarnings, settings.schema);\n const filteredItems = filterItems(items, options, typeRegistry, statusRegistry, runtimeFieldFilters);\n const recurringWindow = buildRecurringEventWindow(\n rangeBounds.start,\n rangeBounds.end,\n nowValue,\n recurrenceLookbackWindowDays,\n recurrenceLookaheadDays,\n );\n const seededEvents = buildEventSeed(filteredItems, recurringWindow, includeSources, occurrenceLimit);\n const rangedEvents = seededEvents.filter((event) => includeEventInWindow(event, rangeBounds.start, rangeBounds.end));\n const limitedEvents = limit === undefined ? rangedEvents : rangedEvents.slice(0, limit);\n const days = bucketEventsByDay(limitedEvents);\n const warnings = [...new Set(listWarnings)].sort((left, right) => left.localeCompare(right));\n\n return {\n view,\n output_default: \"markdown\",\n now: nowValue,\n anchor: rangeBounds.anchor,\n range: {\n start: rangeBounds.start ?? null,\n end: rangeBounds.end ?? null,\n period_start: rangeBounds.periodStart ?? null,\n period_end: rangeBounds.periodEnd ?? null,\n full_period: rangeBounds.fullPeriod,\n past: options.past === true,\n from: options.from ?? null,\n to: options.to ?? null,\n },\n filters: {\n type: options.type ?? null,\n tag: options.tag ?? null,\n priority: options.priority ?? null,\n status: options.status ?? null,\n assignee: options.assignee ?? null,\n assignee_filter: options.assigneeFilter ?? null,\n sprint: options.sprint ?? null,\n release: options.release ?? null,\n runtime_filters: runtimeFieldFilters,\n limit: options.limit ?? null,\n include: options.include ?? null,\n full_period: options.fullPeriod === true ? \"true\" : null,\n recurrence_lookahead_days: options.recurrenceLookaheadDays ?? null,\n recurrence_lookback_days: options.recurrenceLookbackDays ?? null,\n occurrence_limit: options.occurrenceLimit ?? null,\n },\n summary: summarize(limitedEvents),\n events: limitedEvents,\n days,\n ...(warnings.length > 0 ? { warnings } : {}),\n };\n}\n"],"names":[],"mappings":"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","debugId":"2d099da8-a10b-5047-9f45-5e49ce70a53d"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
|
|
2
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="
|
|
2
|
+
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="9f9c17c8-52f5-5483-a616-b0a0b1a8b584")}catch(e){}}();
|
|
3
3
|
import { EXIT_CODE } from "../../core/shared/constants.js";
|
|
4
4
|
import { PmCliError } from "../../core/shared/errors.js";
|
|
5
5
|
import { ACTIVITY_FLAG_CONTRACTS, APPEND_FLAG_CONTRACTS, CALENDAR_FLAG_CONTRACTS, COMPLETION_FLAG_CONTRACTS, CONTRACTS_FLAG_CONTRACTS, CONTEXT_FLAG_CONTRACTS, CREATE_FLAG_CONTRACTS, DEPS_FLAG_CONTRACTS, GUIDE_FLAG_CONTRACTS, GLOBAL_FLAG_CONTRACTS, HEALTH_FLAG_CONTRACTS, INIT_FLAG_CONTRACTS, LIST_FILTER_FLAG_CONTRACTS, NORMALIZE_FLAG_CONTRACTS, PLAN_FLAG_CONTRACTS, PM_CORE_COMMAND_NAMES, SEARCH_FLAG_CONTRACTS, UPDATE_FLAG_CONTRACTS, UPDATE_MANY_FLAG_CONTRACTS, toCompletionFlagString, } from "../../sdk/cli-contracts.js";
|
|
@@ -473,6 +473,7 @@ ${zshListRuntimeFieldFlags} '--json[Output JSON]' \\
|
|
|
473
473
|
'(-s --status)'{-s,--status}'[Item status]:(${statusChoices})' \\
|
|
474
474
|
'(-p --priority)'{-p,--priority}'[Priority (0-4)]:(0 1 2 3 4)' \\
|
|
475
475
|
'--tags[Comma-separated tags]:tags' \\
|
|
476
|
+
'--add-tags[Add tags additively without replacing existing]:tags' \\
|
|
476
477
|
'(-b --body)'{-b,--body}'[Item body]:body' \\
|
|
477
478
|
'--deadline[Deadline (ISO/date string or relative +6h/+1d/+2w/+6m)]:deadline' \\
|
|
478
479
|
'--estimate[Estimated minutes]:minutes' \\
|
|
@@ -509,6 +510,10 @@ ${zshCreateRuntimeFieldFlags} '--json[Output JSON]' \\
|
|
|
509
510
|
'(-p --priority)'{-p,--priority}'[Priority (0-4)]:(0 1 2 3 4)' \\
|
|
510
511
|
'--type[Item type]:(${typeChoices})' \\
|
|
511
512
|
'--tags[Comma-separated tags]:tags' \\
|
|
513
|
+
'--add-tags[Add tags additively without replacing existing]:tags' \\
|
|
514
|
+
'--remove-tags[Remove tags from the existing list]:tags' \\
|
|
515
|
+
'--expected[Short alias for --expected-result]:expected_result' \\
|
|
516
|
+
'--actual[Short alias for --actual-result]:actual_result' \\
|
|
512
517
|
'--comment[Comment seed author=<value>,created_at=<iso|now>,text=<value>]:comment' \\
|
|
513
518
|
'--note[Note seed author=<value>,created_at=<iso|now>,text=<value>]:note' \\
|
|
514
519
|
'--learning[Learning seed author=<value>,created_at=<iso|now>,text=<value>]:learning' \\
|
|
@@ -560,6 +565,8 @@ ${zshUpdateRuntimeFieldFlags} '--allow-audit-update[Allow non-owner m
|
|
|
560
565
|
'(-p --priority)'{-p,--priority}'[Priority (0-4)]:(0 1 2 3 4)' \\
|
|
561
566
|
'--type[Item type]:(${typeChoices})' \\
|
|
562
567
|
'--tags[Comma-separated tags]:tags' \\
|
|
568
|
+
'--add-tags[Add tags additively without replacing existing]:tags' \\
|
|
569
|
+
'--remove-tags[Remove tags from the existing list]:tags' \\
|
|
563
570
|
'--deadline[Deadline (ISO/date string or relative +6h/+1d/+2w/+6m)]:deadline' \\
|
|
564
571
|
'--estimate[Estimated minutes]:minutes' \\
|
|
565
572
|
'--acceptance-criteria[Acceptance criteria]:criteria' \\
|
|
@@ -583,6 +590,8 @@ ${zshUpdateRuntimeFieldFlags} '--allow-audit-update[Allow non-owner m
|
|
|
583
590
|
'--resolution[Issue resolution summary]:resolution' \\
|
|
584
591
|
'--expected-result[Issue expected behavior]:expected_result' \\
|
|
585
592
|
'--actual-result[Issue observed behavior]:actual_result' \\
|
|
593
|
+
'--expected[Short alias for --expected-result]:expected_result' \\
|
|
594
|
+
'--actual[Short alias for --actual-result]:actual_result' \\
|
|
586
595
|
'--affected-version[Affected version identifier]:affected_version' \\
|
|
587
596
|
'--fixed-version[Fixed version identifier]:fixed_version' \\
|
|
588
597
|
'--component[Issue component ownership]:component' \\
|
|
@@ -964,9 +973,16 @@ ${zshSearchRuntimeFieldFlags} '--json[Output JSON]' \\
|
|
|
964
973
|
;;
|
|
965
974
|
close)
|
|
966
975
|
_arguments \\
|
|
976
|
+
'--reason[Closure reason]:reason' \\
|
|
977
|
+
'--close-reason[Alias for --reason]:close_reason' \\
|
|
967
978
|
'--author[Mutation author]:author' \\
|
|
968
979
|
'--message[History message]:message' \\
|
|
969
980
|
'--validate-close[Validate closure metadata mode]:(off warn strict)' \\
|
|
981
|
+
'--resolution[Closure resolution summary]:resolution' \\
|
|
982
|
+
'--expected-result[Expected behavior note]:expected_result' \\
|
|
983
|
+
'--actual-result[Observed behavior note]:actual_result' \\
|
|
984
|
+
'--expected[Short alias for --expected-result]:expected_result' \\
|
|
985
|
+
'--actual[Short alias for --actual-result]:actual_result' \\
|
|
970
986
|
'--force[Force override]' \\
|
|
971
987
|
'--json[Output JSON]' \\
|
|
972
988
|
'--quiet[Suppress stdout]'
|
|
@@ -1301,6 +1317,7 @@ complete -c pm -n '__fish_seen_subcommand_from create' -l schedule-preset
|
|
|
1301
1317
|
complete -c pm -n '__fish_seen_subcommand_from create' -s s -l status -d 'Item status' -r -a '${statusChoices}'
|
|
1302
1318
|
complete -c pm -n '__fish_seen_subcommand_from create' -s p -l priority -d 'Priority (0-4)' -r -a '0 1 2 3 4'
|
|
1303
1319
|
complete -c pm -n '__fish_seen_subcommand_from create' -l tags -d 'Comma-separated tags' -r
|
|
1320
|
+
complete -c pm -n '__fish_seen_subcommand_from create' -l add-tags -d 'Add tags additively without replacing existing' -r
|
|
1304
1321
|
complete -c pm -n '__fish_seen_subcommand_from create' -s b -l body -d 'Item body' -r
|
|
1305
1322
|
complete -c pm -n '__fish_seen_subcommand_from create' -l deadline -d 'Deadline (ISO/date string or relative +6h/+1d/+2w/+6m)' -r
|
|
1306
1323
|
complete -c pm -n '__fish_seen_subcommand_from create' -l estimate -d 'Estimated minutes' -r
|
|
@@ -1332,6 +1349,10 @@ complete -c pm -n '__fish_seen_subcommand_from update' -s s -l status
|
|
|
1332
1349
|
complete -c pm -n '__fish_seen_subcommand_from update' -l close-reason -d 'Set close reason' -r
|
|
1333
1350
|
complete -c pm -n '__fish_seen_subcommand_from update' -s p -l priority -d 'Priority (0-4)' -r -a '0 1 2 3 4'
|
|
1334
1351
|
complete -c pm -n '__fish_seen_subcommand_from update' -l type -d 'Item type' -r -a '${typeChoices}'
|
|
1352
|
+
complete -c pm -n '__fish_seen_subcommand_from update' -l add-tags -d 'Add tags additively without replacing existing' -r
|
|
1353
|
+
complete -c pm -n '__fish_seen_subcommand_from update' -l remove-tags -d 'Remove tags from the existing list' -r
|
|
1354
|
+
complete -c pm -n '__fish_seen_subcommand_from update' -l expected -d 'Short alias for --expected-result' -r
|
|
1355
|
+
complete -c pm -n '__fish_seen_subcommand_from update' -l actual -d 'Short alias for --actual-result' -r
|
|
1335
1356
|
complete -c pm -n '__fish_seen_subcommand_from update' -l comment -d 'Comment seed author=<value>,created_at=<iso|now>,text=<value>' -r
|
|
1336
1357
|
complete -c pm -n '__fish_seen_subcommand_from update' -l note -d 'Note seed author=<value>,created_at=<iso|now>,text=<value>' -r
|
|
1337
1358
|
complete -c pm -n '__fish_seen_subcommand_from update' -l learning -d 'Learning seed author=<value>,created_at=<iso|now>,text=<value>' -r
|
|
@@ -1383,6 +1404,8 @@ complete -c pm -n '__fish_seen_subcommand_from update-many' -s b -l body
|
|
|
1383
1404
|
complete -c pm -n '__fish_seen_subcommand_from update-many' -s p -l priority -d 'Priority (0-4)' -r -a '0 1 2 3 4'
|
|
1384
1405
|
complete -c pm -n '__fish_seen_subcommand_from update-many' -l type -d 'Item type' -r -a '${typeChoices}'
|
|
1385
1406
|
complete -c pm -n '__fish_seen_subcommand_from update-many' -l tags -d 'Comma-separated tags' -r
|
|
1407
|
+
complete -c pm -n '__fish_seen_subcommand_from update-many' -l add-tags -d 'Add tags additively without replacing existing' -r
|
|
1408
|
+
complete -c pm -n '__fish_seen_subcommand_from update-many' -l remove-tags -d 'Remove tags from the existing list' -r
|
|
1386
1409
|
complete -c pm -n '__fish_seen_subcommand_from update-many' -l deadline -d 'Deadline (ISO/date string or relative)' -r
|
|
1387
1410
|
complete -c pm -n '__fish_seen_subcommand_from update-many' -l estimate -d 'Estimated minutes' -r
|
|
1388
1411
|
complete -c pm -n '__fish_seen_subcommand_from update-many' -l acceptance-criteria -d 'Acceptance criteria' -r
|
|
@@ -1406,6 +1429,8 @@ complete -c pm -n '__fish_seen_subcommand_from update-many' -l repro-steps
|
|
|
1406
1429
|
complete -c pm -n '__fish_seen_subcommand_from update-many' -l resolution -d 'Issue resolution summary' -r
|
|
1407
1430
|
complete -c pm -n '__fish_seen_subcommand_from update-many' -l expected-result -d 'Issue expected behavior' -r
|
|
1408
1431
|
complete -c pm -n '__fish_seen_subcommand_from update-many' -l actual-result -d 'Issue observed behavior' -r
|
|
1432
|
+
complete -c pm -n '__fish_seen_subcommand_from update-many' -l expected -d 'Short alias for --expected-result' -r
|
|
1433
|
+
complete -c pm -n '__fish_seen_subcommand_from update-many' -l actual -d 'Short alias for --actual-result' -r
|
|
1409
1434
|
complete -c pm -n '__fish_seen_subcommand_from update-many' -l affected-version -d 'Affected version identifier' -r
|
|
1410
1435
|
complete -c pm -n '__fish_seen_subcommand_from update-many' -l fixed-version -d 'Fixed version identifier' -r
|
|
1411
1436
|
complete -c pm -n '__fish_seen_subcommand_from update-many' -l component -d 'Issue component ownership' -r
|
|
@@ -1667,6 +1692,13 @@ complete -c pm -n '__fish_seen_subcommand_from claim release start-task pause-ta
|
|
|
1667
1692
|
complete -c pm -n '__fish_seen_subcommand_from claim release start-task pause-task close close-task delete' -l message -d 'History message' -r
|
|
1668
1693
|
complete -c pm -n '__fish_seen_subcommand_from claim release start-task pause-task close close-task delete' -l force -d 'Force override'
|
|
1669
1694
|
complete -c pm -n '__fish_seen_subcommand_from close close-task' -l validate-close -d 'Validate closure metadata mode' -r -a 'off warn strict'
|
|
1695
|
+
complete -c pm -n '__fish_seen_subcommand_from close' -l reason -d 'Closure reason' -r
|
|
1696
|
+
complete -c pm -n '__fish_seen_subcommand_from close' -l close-reason -d 'Alias for --reason' -r
|
|
1697
|
+
complete -c pm -n '__fish_seen_subcommand_from close' -l resolution -d 'Closure resolution summary' -r
|
|
1698
|
+
complete -c pm -n '__fish_seen_subcommand_from close' -l expected-result -d 'Expected behavior note' -r
|
|
1699
|
+
complete -c pm -n '__fish_seen_subcommand_from close' -l actual-result -d 'Observed behavior note' -r
|
|
1700
|
+
complete -c pm -n '__fish_seen_subcommand_from close' -l expected -d 'Short alias for --expected-result' -r
|
|
1701
|
+
complete -c pm -n '__fish_seen_subcommand_from close' -l actual -d 'Short alias for --actual-result' -r
|
|
1670
1702
|
complete -c pm -n '__fish_seen_subcommand_from release' -l allow-audit-release -d 'Allow non-owner release handoffs without requiring --force'
|
|
1671
1703
|
complete -c pm -n '__fish_seen_subcommand_from delete' -l dry-run -d 'Preview the item file that would be deleted without mutating'
|
|
1672
1704
|
|
|
@@ -1782,4 +1814,4 @@ export function runCompletion(shell, itemTypes = DEFAULT_ITEM_TYPES, tags = [],
|
|
|
1782
1814
|
};
|
|
1783
1815
|
}
|
|
1784
1816
|
//# sourceMappingURL=completion.js.map
|
|
1785
|
-
//# debugId=
|
|
1817
|
+
//# debugId=9f9c17c8-52f5-5483-a616-b0a0b1a8b584
|