@dendelion/paper-camp 0.18.1 → 0.20.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/app/assets/index-3pzg7Iyw.js +2 -0
- package/dist/app/assets/index-3pzg7Iyw.js.map +1 -0
- package/dist/app/assets/index-BHmWkgBW.js +2 -0
- package/dist/app/assets/{index-Bm61MVP8.js.map → index-BHmWkgBW.js.map} +1 -1
- package/dist/app/assets/index-BuzzfADD.js +2 -0
- package/dist/app/assets/index-BuzzfADD.js.map +1 -0
- package/dist/app/assets/index-CkLeljbk.js +2 -0
- package/dist/app/assets/index-CkLeljbk.js.map +1 -0
- package/dist/app/assets/{index-Dz77-ZQi.js → index-DMDqfoCe.js} +3 -3
- package/dist/app/assets/index-DMDqfoCe.js.map +1 -0
- package/dist/app/assets/index-D_Lo8ptS.js +6 -0
- package/dist/app/assets/index-D_Lo8ptS.js.map +1 -0
- package/dist/app/assets/{index-NfzGv6aM.js → index-DfekHwwU.js} +3 -3
- package/dist/app/assets/{index-NfzGv6aM.js.map → index-DfekHwwU.js.map} +1 -1
- package/dist/app/assets/index-Gi97Lmex.js +4 -0
- package/dist/app/assets/{index-0_VbynEu.js.map → index-Gi97Lmex.js.map} +1 -1
- package/dist/app/assets/main-Bm0W4ucz.css +1 -0
- package/dist/app/assets/main-DP_okYxh.js +215 -0
- package/dist/app/assets/main-DP_okYxh.js.map +1 -0
- package/dist/app/assets/sidebar-section-B-A20bg9.js +2 -0
- package/dist/app/assets/sidebar-section-B-A20bg9.js.map +1 -0
- package/dist/app/index.html +2 -2
- package/dist/app/toolbar.js +3933 -3844
- package/dist/app/toolbar.js.map +1 -1
- package/dist/chunks/{phase-progress.BIIDRJmI.js → phase-progress.DPAZ01Gg.js} +1942 -1706
- package/dist/chunks/phase-progress.DPAZ01Gg.js.map +1 -0
- package/dist/cli/index.js +8515 -7725
- package/dist/cli/index.js.map +1 -1
- package/dist/core/corpus-format.d.ts +11 -0
- package/dist/core/corpus-format.d.ts.map +1 -0
- package/dist/core/corpus-format.test.d.ts +2 -0
- package/dist/core/corpus-format.test.d.ts.map +1 -0
- package/dist/core/doctor/checks/metadata.d.ts.map +1 -1
- package/dist/core/doctor/rules.d.ts +6 -1
- package/dist/core/doctor/rules.d.ts.map +1 -1
- package/dist/core/git-pr/pr-lookup.d.ts +39 -2
- package/dist/core/git-pr/pr-lookup.d.ts.map +1 -1
- package/dist/core/git-pr/pr.d.ts +15 -1
- package/dist/core/git-pr/pr.d.ts.map +1 -1
- package/dist/core/index.js +108 -101
- package/dist/core/issues.d.ts +51 -0
- package/dist/core/issues.d.ts.map +1 -0
- package/dist/core/issues.test.d.ts +2 -0
- package/dist/core/issues.test.d.ts.map +1 -0
- package/dist/core/parse/parser.d.ts.map +1 -1
- package/dist/core/parse/schemas.d.ts +16 -4
- package/dist/core/parse/schemas.d.ts.map +1 -1
- package/dist/core/readers.d.ts +7 -2
- package/dist/core/readers.d.ts.map +1 -1
- package/dist/core/run-order.d.ts +1 -1
- package/dist/core/run-order.d.ts.map +1 -1
- package/dist/core/scaffold/scaffold.d.ts +0 -1
- package/dist/core/scaffold/scaffold.d.ts.map +1 -1
- package/dist/core/scaffold/templates.d.ts +1 -1
- package/dist/core/scaffold/templates.d.ts.map +1 -1
- package/dist/core/sections.d.ts.map +1 -1
- package/dist/core/serialize/serializer.d.ts +4 -2
- package/dist/core/serialize/serializer.d.ts.map +1 -1
- package/dist/core/status/status.d.ts +8 -4
- package/dist/core/status/status.d.ts.map +1 -1
- package/dist/types/index.d.ts +116 -5
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +23 -17
- package/dist/types/index.js.map +1 -1
- package/package.json +2 -2
- package/dist/app/assets/index-0_VbynEu.js +0 -4
- package/dist/app/assets/index-Bm61MVP8.js +0 -2
- package/dist/app/assets/index-CHYyIAaz.js +0 -6
- package/dist/app/assets/index-CHYyIAaz.js.map +0 -1
- package/dist/app/assets/index-DNRXB82k.js +0 -2
- package/dist/app/assets/index-DNRXB82k.js.map +0 -1
- package/dist/app/assets/index-Dz77-ZQi.js.map +0 -1
- package/dist/app/assets/index-pnCSf_Qk.js +0 -2
- package/dist/app/assets/index-pnCSf_Qk.js.map +0 -1
- package/dist/app/assets/main-AfQrNPNu.js +0 -217
- package/dist/app/assets/main-AfQrNPNu.js.map +0 -1
- package/dist/app/assets/main-BuCfycKH.css +0 -1
- package/dist/app/assets/sidebar-section-AupYBPL3.js +0 -2
- package/dist/app/assets/sidebar-section-AupYBPL3.js.map +0 -1
- package/dist/app/assets/tokens-C3C44lLs.js +0 -2
- package/dist/app/assets/tokens-C3C44lLs.js.map +0 -1
- package/dist/chunks/phase-progress.BIIDRJmI.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index-pnCSf_Qk.js","sources":["../../../src/core/notifications.ts","../../../src/app/features/inbox/helpers.ts","../../../src/app/features/inbox/notification-row.tsx","../../../src/app/features/inbox/question-row.tsx","../../../src/app/features/inbox/inbox-page.tsx"],"sourcesContent":["import type { Notification, ParkedQuestion, StoredNotification } from '../types/index';\n\nfunction ageInDays(date: string): number {\n return Math.floor((Date.now() - Date.parse(date)) / 86_400_000);\n}\n\nexport function notificationAgeDays(notification: Notification): number {\n return notification.kind === 'question' ? notification.ageDays : ageInDays(notification.date);\n}\n\n/** Every parked question alongside completed/reply notifications, oldest-first — the\n * unified feed (IDEA-153) replacing the questions-only Inbox. */\nexport function mergeNotifications(\n parkedQuestions: ParkedQuestion[],\n stored: StoredNotification[],\n): Notification[] {\n const entries: Notification[] = [\n ...parkedQuestions.map((q): Notification => ({ ...q, kind: 'question' })),\n ...stored,\n ];\n return entries.sort((a, b) => notificationAgeDays(b) - notificationAgeDays(a));\n}\n","export const formatAge = (ageDays: number): string => {\n if (!Number.isFinite(ageDays)) return 'age unknown';\n if (ageDays <= 0) return 'today';\n return ageDays === 1 ? '1 day ago' : `${ageDays} days ago`;\n};\n","import { PlanIdStamp } from '@/app/features/plans/components';\nimport type { StoredNotification } from '@/types/index';\nimport { formatAge } from './helpers';\n\nconst KIND_LABELS: Record<StoredNotification['kind'], string> = {\n completed: 'Completed',\n reply: 'Reply',\n};\n\ninterface NotificationRowProps {\n notification: StoredNotification;\n ageDays: number;\n onOpen: () => void;\n}\n\nexport const NotificationRow = ({ notification, ageDays, onOpen }: NotificationRowProps) => (\n <div className=\"flex items-center gap-3 py-2.5 border-b border-black/10 last:border-b-0\">\n <button\n type=\"button\"\n onClick={onOpen}\n aria-label={`Open ${notification.entityTitle}`}\n className=\"bg-transparent border-none p-0 cursor-pointer\"\n >\n <PlanIdStamp id={notification.entityId} />\n </button>\n <span className=\"text-xs uppercase tracking-wide opacity-40 whitespace-nowrap\">\n {KIND_LABELS[notification.kind]}\n </span>\n <span className=\"flex-1 min-w-0 truncate\">{notification.text}</span>\n <span className=\"opacity-50 text-xs whitespace-nowrap\">{formatAge(ageDays)}</span>\n </div>\n);\n","import { FeedbackThread, PlanIdStamp } from '@/app/features/plans/components';\nimport { useSendFeedbackMessage } from '@/app/features/plans/hooks';\nimport type { ParkedQuestion, PlanEntry } from '@/types/index';\nimport { Button, Spinner, Textarea, useToast } from '@dendelion/paper-ui';\nimport { useState } from 'react';\nimport { formatAge } from './helpers';\n\ninterface QuestionRowProps {\n question: ParkedQuestion;\n plan: PlanEntry;\n expanded: boolean;\n onToggle: () => void;\n onOpen: () => void;\n reload: () => Promise<void>;\n}\n\nexport const QuestionRow = ({\n question,\n plan,\n expanded,\n onToggle,\n onOpen,\n reload,\n}: QuestionRowProps) => {\n const { toast } = useToast();\n const [input, setInput] = useState('');\n const { sending, send, undo, undoing, undoEdit } = useSendFeedbackMessage(plan, {\n reload,\n notify: toast,\n });\n\n const handleSend = async () => {\n if (!input.trim()) return;\n if (await send(input.trim())) setInput('');\n };\n\n return (\n <div className=\"border-b border-black/10 last:border-b-0\">\n <div className=\"flex items-center gap-3 py-2.5\">\n <button\n type=\"button\"\n onClick={onOpen}\n aria-label={`Open ${question.entityTitle}`}\n className=\"bg-transparent border-none p-0 cursor-pointer\"\n >\n <PlanIdStamp id={question.entityId} />\n </button>\n <button\n type=\"button\"\n onClick={onToggle}\n aria-expanded={expanded}\n className=\"flex-1 min-w-0 truncate text-left bg-transparent border-none p-0 cursor-pointer\"\n >\n {question.text}\n </button>\n <span className=\"opacity-50 text-xs whitespace-nowrap\">{formatAge(question.ageDays)}</span>\n </div>\n {expanded && (\n <div className=\"flex flex-col gap-3 pb-4\">\n <FeedbackThread\n messages={plan.thread ?? []}\n undo={undo}\n undoing={undoing}\n onUndo={undoEdit}\n />\n <Textarea\n value={input}\n onChange={(e) => setInput(e.target.value)}\n aria-label={`Reply to ${question.entityTitle}`}\n placeholder=\"Reply to resolve and resume…\"\n rows={2}\n disabled={sending}\n />\n <div className=\"flex justify-end items-center gap-3\">\n <span className={sending ? 'visible' : 'invisible'}>\n <Spinner size=\"small\" label=\"Agent replying…\" />\n </span>\n <Button size=\"small\" onClick={handleSend} disabled={sending || !input.trim()}>\n Reply\n </Button>\n </div>\n </div>\n )}\n </div>\n );\n};\n","import { PageTitle } from '@/app/components/page-title';\nimport { PlanIdStamp } from '@/app/features/plans/components';\nimport { entityRouteParam } from '@/app/hooks';\nimport { useAppStore } from '@/app/stores/app-store';\nimport { notificationAgeDays } from '@/core/notifications';\nimport { useNavigate } from '@tanstack/react-router';\nimport { useEffect, useState } from 'react';\nimport { formatAge } from './helpers';\nimport { NotificationRow } from './notification-row';\nimport { QuestionRow } from './question-row';\n\nexport const InboxPage = () => {\n const [expandedKey, setExpandedKey] = useState<string | null>(null);\n const notifications = useAppStore((s) => s.notifications);\n const loadFailed = useAppStore((s) => s.notificationsError !== null);\n const plans = useAppStore((s) => s.plans);\n const loadPlans = useAppStore((s) => s.loadPlans);\n const loadNotifications = useAppStore((s) => s.loadNotifications);\n const markRead = useAppStore((s) => s.markRead);\n const navigate = useNavigate();\n\n useEffect(() => {\n loadNotifications();\n }, [loadNotifications]);\n\n useEffect(() => {\n if (!notifications) return;\n for (const n of notifications) {\n if (n.kind !== 'question' && !n.read) markRead(n.id);\n }\n }, [notifications, markRead]);\n\n const reload = async () => {\n await Promise.all([loadPlans(), loadNotifications()]);\n };\n\n const openEntity = (id: string, title: string) => {\n if (plans?.entries.some((p) => p.id === id || p.title === title)) {\n navigate({ to: '/plans/$planId', params: { planId: entityRouteParam(id, title) } });\n } else {\n navigate({ to: '/ideas/$ideaId', params: { ideaId: entityRouteParam(id, title) } });\n }\n };\n\n return (\n <div>\n <PageTitle>Inbox</PageTitle>\n <p className=\"opacity-50 mb-6\">\n Every parked question, completed run, and agent reply, oldest first.\n </p>\n {loadFailed && <p className=\"opacity-50\">Couldn't load notifications.</p>}\n {!loadFailed && !notifications && <p className=\"opacity-50\">Loading…</p>}\n {notifications && notifications.length === 0 && (\n <p className=\"opacity-50\">Nothing here — no parked questions or recent activity.</p>\n )}\n {notifications && notifications.length > 0 && (\n <div className=\"flex flex-col\">\n {notifications.map((n, i) => {\n const key = `${n.entityId}-${n.kind}-${i}`;\n const onOpen = () => openEntity(n.entityId, n.entityTitle);\n\n if (n.kind !== 'question') {\n return (\n <NotificationRow\n key={key}\n notification={n}\n ageDays={notificationAgeDays(n)}\n onOpen={onOpen}\n />\n );\n }\n\n const plan = plans?.entries.find((p) => p.id === n.entityId);\n if (!plan) {\n return (\n <div\n key={key}\n className=\"flex items-center gap-3 py-2.5 border-b border-black/10 last:border-b-0\"\n >\n <button\n type=\"button\"\n onClick={onOpen}\n aria-label={`Open ${n.entityTitle}`}\n className=\"bg-transparent border-none p-0 cursor-pointer\"\n >\n <PlanIdStamp id={n.entityId} />\n </button>\n <span className=\"flex-1 min-w-0 truncate\">{n.text}</span>\n <span className=\"opacity-50 text-xs whitespace-nowrap\">\n {formatAge(n.ageDays)}\n </span>\n </div>\n );\n }\n return (\n <QuestionRow\n key={key}\n question={n}\n plan={plan}\n expanded={expandedKey === key}\n onToggle={() => setExpandedKey((cur) => (cur === key ? null : key))}\n onOpen={onOpen}\n reload={reload}\n />\n );\n })}\n </div>\n )}\n </div>\n );\n};\n"],"names":["ageInDays","date","notificationAgeDays","notification","formatAge","ageDays","KIND_LABELS","NotificationRow","onOpen","jsxs","jsx","PlanIdStamp","QuestionRow","question","plan","expanded","onToggle","reload","toast","useToast","input","setInput","useState","sending","send","undo","undoing","undoEdit","useSendFeedbackMessage","handleSend","FeedbackThread","Textarea","e","Spinner","Button","InboxPage","expandedKey","setExpandedKey","notifications","useAppStore","s","loadFailed","plans","loadPlans","loadNotifications","markRead","navigate","useNavigate","useEffect","n","openEntity","id","title","p","entityRouteParam","PageTitle","i","key","cur"],"mappings":"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"}
|