@agent-native/core 0.90.3 → 0.90.5
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/bin/agent-native.js +25 -3
- package/corpus/README.md +1 -1
- package/corpus/core/CHANGELOG.md +17 -0
- package/corpus/core/bin/agent-native.js +25 -3
- package/corpus/core/package.json +1 -1
- package/corpus/core/src/agent/durable-background.ts +18 -18
- package/corpus/core/src/agent/engine/ai-sdk-engine.ts +8 -2
- package/corpus/core/src/agent/engine/anthropic-engine.ts +11 -1
- package/corpus/core/src/agent/engine/index.ts +1 -0
- package/corpus/core/src/agent/engine/registry.ts +63 -2
- package/corpus/core/src/agent/production-agent.ts +22 -11
- package/corpus/core/src/agent/run-manager.ts +17 -6
- package/corpus/core/src/agent/run-store.ts +16 -11
- package/corpus/core/src/cli/create.ts +35 -0
- package/corpus/core/src/cli/design-connect.ts +263 -1
- package/corpus/core/src/cli/index.ts +84 -7
- package/corpus/core/src/cli/workspacify.ts +34 -0
- package/corpus/core/src/client/KeepTabOpenNotice.tsx +20 -15
- package/corpus/core/src/client/RunStuckBanner.tsx +14 -13
- package/corpus/core/src/client/agent-chat-adapter.ts +28 -17
- package/corpus/core/src/client/history/VersionHistoryPanel.tsx +77 -47
- package/corpus/core/src/client/history/index.ts +3 -0
- package/corpus/core/src/client/history/use-history.ts +28 -0
- package/corpus/core/src/client/index.ts +8 -0
- package/corpus/core/src/client/review/index.ts +5 -0
- package/corpus/core/src/client/review/use-review.ts +40 -2
- package/corpus/core/src/client/use-run-stuck-detection.ts +8 -5
- package/corpus/core/src/history/actions/create-resource-version.ts +11 -8
- package/corpus/core/src/history/index.ts +0 -1
- package/corpus/core/src/history/registry.ts +24 -12
- package/corpus/core/src/history/store.ts +84 -53
- package/corpus/core/src/review/actions/consume-review-feedback.ts +15 -5
- package/corpus/core/src/review/actions/delete-review-comment.ts +15 -3
- package/corpus/core/src/review/actions/resolve-review-thread.ts +12 -5
- package/corpus/core/src/review/index.ts +0 -5
- package/corpus/core/src/review/registry.ts +24 -12
- package/corpus/core/src/review/store.ts +10 -7
- package/corpus/core/src/server/agent-chat-plugin.ts +6 -0
- package/corpus/core/src/server/credential-provider.ts +13 -3
- package/corpus/templates/assets/actions/_preset-skeleton-validation.ts +11 -11
- package/corpus/templates/assets/actions/generate-image.ts +64 -28
- package/corpus/templates/assets/app/components/generation/GenerationResults.tsx +1 -1
- package/corpus/templates/assets/app/routes/brand-kits.$id_.presets.$presetId.tsx +91 -74
- package/corpus/templates/assets/server/lib/generation.ts +29 -4
- package/corpus/templates/assets/server/lib/image-processing.ts +131 -0
- package/corpus/templates/calendar/.agents/skills/event-management/SKILL.md +24 -2
- package/corpus/templates/calendar/AGENTS.md +3 -0
- package/corpus/templates/calendar/actions/create-event.ts +8 -34
- package/corpus/templates/calendar/actions/event-action-helpers.ts +52 -0
- package/corpus/templates/calendar/actions/manage-event-draft.ts +7 -34
- package/corpus/templates/calendar/actions/update-event.ts +10 -23
- package/corpus/templates/calendar/app/components/calendar/AttendeeAutocomplete.tsx +47 -0
- package/corpus/templates/calendar/app/components/calendar/CreateEventDialog.tsx +23 -0
- package/corpus/templates/calendar/app/components/calendar/EventAttendeesSection.tsx +59 -2
- package/corpus/templates/calendar/app/components/calendar/EventDetailPanel.tsx +40 -1
- package/corpus/templates/calendar/app/components/calendar/EventDetailPopover.tsx +34 -1
- package/corpus/templates/calendar/app/hooks/use-events.ts +6 -0
- package/corpus/templates/calendar/app/i18n/zh-TW.ts +4 -0
- package/corpus/templates/calendar/app/i18n-data.ts +40 -0
- package/corpus/templates/calendar/changelog/2026-07-07-you-can-mark-event-guests-as-optional-while-inviting-them-or.md +6 -0
- package/corpus/templates/calendar/server/handlers/events.ts +1 -0
- package/corpus/templates/calendar/server/lib/google-calendar.ts +4 -0
- package/corpus/templates/calendar/server/plugins/agent-chat.ts +1 -1
- package/corpus/templates/calendar/shared/api.ts +2 -0
- package/corpus/templates/clips/.agents/skills/ai-video-tools/SKILL.md +29 -3
- package/corpus/templates/clips/actions/generate-workflow.ts +19 -8
- package/corpus/templates/clips/actions/get-clips-ai-prefs.ts +36 -0
- package/corpus/templates/clips/actions/lib/clips-ai-prefs.ts +28 -0
- package/corpus/templates/clips/actions/regenerate-chapters.ts +21 -7
- package/corpus/templates/clips/actions/regenerate-summary.ts +26 -8
- package/corpus/templates/clips/actions/regenerate-title.ts +44 -7
- package/corpus/templates/clips/actions/update-clips-ai-prefs.ts +50 -0
- package/corpus/templates/clips/app/components/meetings/meeting-card.tsx +7 -2
- package/corpus/templates/clips/app/hooks/use-auto-title.ts +25 -10
- package/corpus/templates/clips/app/i18n/ar-SA.ts +28 -6
- package/corpus/templates/clips/app/i18n/de-DE.ts +28 -6
- package/corpus/templates/clips/app/i18n/en-US.ts +29 -6
- package/corpus/templates/clips/app/i18n/es-ES.ts +29 -6
- package/corpus/templates/clips/app/i18n/fr-FR.ts +30 -6
- package/corpus/templates/clips/app/i18n/hi-IN.ts +26 -6
- package/corpus/templates/clips/app/i18n/ja-JP.ts +27 -6
- package/corpus/templates/clips/app/i18n/ko-KR.ts +28 -6
- package/corpus/templates/clips/app/i18n/pt-BR.ts +28 -6
- package/corpus/templates/clips/app/i18n/zh-CN.ts +26 -6
- package/corpus/templates/clips/app/i18n/zh-TW.ts +25 -6
- package/corpus/templates/clips/app/routes/_app.meetings._index.tsx +73 -0
- package/corpus/templates/clips/app/routes/_app.settings._index.tsx +1 -0
- package/corpus/templates/clips/app/routes/r.$recordingId.tsx +70 -2
- package/corpus/templates/clips/changelog/2026-07-07-ai-tools-can-include-the-full-video-not-just-the-transcript-.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-07-clips-desktop-now-surfaces-meetings-and-dictate-directly-in-.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-07-meeting-notes-now-explain-exactly-how-to-start-granola-style.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-07-meeting-start-alerts-now-include-separate-start-notes-and-jo.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-07-recordings-start-more-predictably-and-newly-saved-clips-refr.md +6 -0
- package/corpus/templates/clips/chrome-extension/public/manifest.json +1 -1
- package/corpus/templates/clips/desktop/src/app.tsx +435 -105
- package/corpus/templates/clips/desktop/src/lib/recorder.ts +27 -21
- package/corpus/templates/clips/desktop/src/overlays/meeting-notification.tsx +23 -22
- package/corpus/templates/clips/desktop/src/styles.css +167 -2
- package/corpus/templates/clips/desktop/src-tauri/src/native_screen.rs +1 -1
- package/corpus/templates/clips/desktop/src-tauri/src/notifications.rs +3 -7
- package/corpus/templates/clips/desktop/src-tauri/src/tray_meetings.rs +5 -4
- package/corpus/templates/clips/server/routes/_agent-native/clips/user-prefs.put.ts +16 -8
- package/corpus/templates/clips/shared/clips-ai-prefs.ts +81 -0
- package/corpus/templates/content/AGENTS.md +1 -0
- package/corpus/templates/content/actions/_database-source-utils.ts +73 -8
- package/corpus/templates/content/actions/_database-utils.ts +2 -1
- package/corpus/templates/content/actions/prepare-builder-source-review.ts +20 -1
- package/corpus/templates/content/actions/stage-builder-source-bulk-update.ts +663 -0
- package/corpus/templates/content/app/components/editor/DocumentProperties.tsx +33 -7
- package/corpus/templates/content/app/components/editor/database/DatabaseView.tsx +53 -4
- package/corpus/templates/content/app/components/editor/database/settings.tsx +24 -0
- package/corpus/templates/content/app/hooks/use-content-database.ts +70 -1
- package/corpus/templates/content/app/hooks/use-document-properties.ts +63 -5
- package/corpus/templates/content/app/i18n/zh-TW.ts +3 -0
- package/corpus/templates/content/app/i18n-data.ts +31 -0
- package/corpus/templates/content/changelog/2026-07-01-builder-source-rows-can-be-staged-in-bulk-with-a-reviewable.md +6 -0
- package/corpus/templates/content/changelog/2026-07-07-builder-backed-database-fields-now-edit-like-normal-content-fields.md +6 -0
- package/corpus/templates/content/parity/matrix.md +24 -24
- package/corpus/templates/content/parity/matrix.ts +2 -0
- package/corpus/templates/content/shared/api.ts +59 -4
- package/corpus/templates/design/.agents/skills/visual-edit/SKILL.md +16 -1
- package/corpus/templates/design/actions/add-localhost-screens.ts +1 -0
- package/corpus/templates/design/actions/connect-localhost.ts +26 -3
- package/corpus/templates/design/actions/open-visual-edit.ts +4 -37
- package/corpus/templates/design/app/components/design/DesignCanvas.tsx +362 -12
- package/corpus/templates/design/app/components/design/bridge/editor-chrome.bridge.ts +89 -14
- package/corpus/templates/design/app/components/design/bridge-security.ts +7 -1
- package/corpus/templates/design/app/components/design/multi-screen/types.ts +1 -1
- package/corpus/templates/design/app/i18n/zh-TW.ts +3 -0
- package/corpus/templates/design/app/i18n-data.ts +41 -0
- package/corpus/templates/design/changelog/2026-07-07-local-visual-edit-keeps-bridge-access-when-opening-previousl.md +6 -0
- package/corpus/templates/design/changelog/2026-07-07-local-visual-edit-now-keeps-the-live-app-connection-authenti.md +6 -0
- package/corpus/templates/design/changelog/2026-07-07-local-visual-edit-uses-live-app-iframes-for-click-to-edit-pr.md +6 -0
- package/dist/agent/durable-background.d.ts +12 -12
- package/dist/agent/durable-background.js +18 -18
- package/dist/agent/durable-background.js.map +1 -1
- package/dist/agent/engine/ai-sdk-engine.d.ts.map +1 -1
- package/dist/agent/engine/ai-sdk-engine.js +8 -2
- package/dist/agent/engine/ai-sdk-engine.js.map +1 -1
- package/dist/agent/engine/anthropic-engine.d.ts.map +1 -1
- package/dist/agent/engine/anthropic-engine.js +11 -1
- package/dist/agent/engine/anthropic-engine.js.map +1 -1
- package/dist/agent/engine/index.d.ts +1 -1
- package/dist/agent/engine/index.d.ts.map +1 -1
- package/dist/agent/engine/index.js +1 -1
- package/dist/agent/engine/index.js.map +1 -1
- package/dist/agent/engine/registry.d.ts +14 -0
- package/dist/agent/engine/registry.d.ts.map +1 -1
- package/dist/agent/engine/registry.js +56 -2
- package/dist/agent/engine/registry.js.map +1 -1
- package/dist/agent/production-agent.d.ts +2 -2
- package/dist/agent/production-agent.d.ts.map +1 -1
- package/dist/agent/production-agent.js +18 -11
- package/dist/agent/production-agent.js.map +1 -1
- package/dist/agent/run-manager.d.ts +7 -1
- package/dist/agent/run-manager.d.ts.map +1 -1
- package/dist/agent/run-manager.js +6 -1
- package/dist/agent/run-manager.js.map +1 -1
- package/dist/agent/run-store.d.ts +1 -1
- package/dist/agent/run-store.d.ts.map +1 -1
- package/dist/agent/run-store.js +15 -10
- package/dist/agent/run-store.js.map +1 -1
- package/dist/cli/create.d.ts.map +1 -1
- package/dist/cli/create.js +31 -0
- package/dist/cli/create.js.map +1 -1
- package/dist/cli/design-connect.d.ts.map +1 -1
- package/dist/cli/design-connect.js +197 -1
- package/dist/cli/design-connect.js.map +1 -1
- package/dist/cli/index.js +76 -9
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/workspacify.d.ts.map +1 -1
- package/dist/cli/workspacify.js +30 -0
- package/dist/cli/workspacify.js.map +1 -1
- package/dist/client/KeepTabOpenNotice.d.ts +9 -10
- package/dist/client/KeepTabOpenNotice.d.ts.map +1 -1
- package/dist/client/KeepTabOpenNotice.js +8 -4
- package/dist/client/KeepTabOpenNotice.js.map +1 -1
- package/dist/client/RunStuckBanner.d.ts.map +1 -1
- package/dist/client/RunStuckBanner.js +14 -13
- package/dist/client/RunStuckBanner.js.map +1 -1
- package/dist/client/agent-chat-adapter.d.ts.map +1 -1
- package/dist/client/agent-chat-adapter.js +25 -17
- package/dist/client/agent-chat-adapter.js.map +1 -1
- package/dist/client/history/VersionHistoryPanel.d.ts +1 -1
- package/dist/client/history/VersionHistoryPanel.d.ts.map +1 -1
- package/dist/client/history/VersionHistoryPanel.js +12 -5
- package/dist/client/history/VersionHistoryPanel.js.map +1 -1
- package/dist/client/history/index.d.ts +1 -1
- package/dist/client/history/index.d.ts.map +1 -1
- package/dist/client/history/index.js +1 -1
- package/dist/client/history/index.js.map +1 -1
- package/dist/client/history/use-history.d.ts +12 -0
- package/dist/client/history/use-history.d.ts.map +1 -1
- package/dist/client/history/use-history.js +6 -0
- package/dist/client/history/use-history.js.map +1 -1
- package/dist/client/index.d.ts +2 -2
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +2 -2
- package/dist/client/index.js.map +1 -1
- package/dist/client/review/index.d.ts +1 -1
- package/dist/client/review/index.d.ts.map +1 -1
- package/dist/client/review/index.js +1 -1
- package/dist/client/review/index.js.map +1 -1
- package/dist/client/review/use-review.d.ts +23 -0
- package/dist/client/review/use-review.d.ts.map +1 -1
- package/dist/client/review/use-review.js +8 -0
- package/dist/client/review/use-review.js.map +1 -1
- package/dist/client/use-run-stuck-detection.d.ts +1 -1
- package/dist/client/use-run-stuck-detection.d.ts.map +1 -1
- package/dist/client/use-run-stuck-detection.js +6 -4
- package/dist/client/use-run-stuck-detection.js.map +1 -1
- package/dist/collab/struct-routes.d.ts +1 -1
- package/dist/file-upload/actions/upload-image.d.ts +1 -1
- package/dist/history/actions/create-resource-version.js +7 -4
- package/dist/history/actions/create-resource-version.js.map +1 -1
- package/dist/history/index.d.ts +1 -1
- package/dist/history/index.d.ts.map +1 -1
- package/dist/history/index.js +1 -1
- package/dist/history/index.js.map +1 -1
- package/dist/history/registry.d.ts.map +1 -1
- package/dist/history/registry.js +14 -12
- package/dist/history/registry.js.map +1 -1
- package/dist/history/store.d.ts.map +1 -1
- package/dist/history/store.js +74 -49
- package/dist/history/store.js.map +1 -1
- package/dist/notifications/routes.d.ts +1 -1
- package/dist/resources/handlers.d.ts +3 -3
- package/dist/review/actions/consume-review-feedback.d.ts +1 -0
- package/dist/review/actions/consume-review-feedback.js +8 -2
- package/dist/review/actions/consume-review-feedback.js.map +1 -1
- package/dist/review/actions/delete-review-comment.d.ts +2 -1
- package/dist/review/actions/delete-review-comment.js +11 -3
- package/dist/review/actions/delete-review-comment.js.map +1 -1
- package/dist/review/actions/resolve-review-thread.d.ts +2 -1
- package/dist/review/actions/resolve-review-thread.js +5 -2
- package/dist/review/actions/resolve-review-thread.js.map +1 -1
- package/dist/review/index.d.ts +1 -1
- package/dist/review/index.d.ts.map +1 -1
- package/dist/review/index.js +1 -1
- package/dist/review/index.js.map +1 -1
- package/dist/review/registry.d.ts.map +1 -1
- package/dist/review/registry.js +14 -12
- package/dist/review/registry.js.map +1 -1
- package/dist/review/store.d.ts +3 -3
- package/dist/review/store.d.ts.map +1 -1
- package/dist/review/store.js +7 -4
- package/dist/review/store.js.map +1 -1
- package/dist/server/agent-chat-plugin.d.ts.map +1 -1
- package/dist/server/agent-chat-plugin.js +5 -0
- package/dist/server/agent-chat-plugin.js.map +1 -1
- package/dist/server/agent-engine-api-key-route.d.ts +1 -1
- package/dist/server/credential-provider.d.ts +2 -0
- package/dist/server/credential-provider.d.ts.map +1 -1
- package/dist/server/credential-provider.js +13 -3
- package/dist/server/credential-provider.js.map +1 -1
- package/package.json +1 -1
package/dist/review/store.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/review/store.ts"],"names":[],"mappings":"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","sourcesContent":["import { getDbExec, isPostgres } from \"../db/client.js\";\nimport { ensureIndexExists, ensureTableExists } from \"../db/ddl-guard.js\";\nimport type { Visibility } from \"../sharing/schema.js\";\nimport type {\n ReviewActorKind,\n ReviewComment,\n ReviewCommentKind,\n ReviewCommentStatus,\n ReviewMention,\n ReviewResolutionTarget,\n ReviewScope,\n ReviewStatus,\n ReviewStatusEntry,\n} from \"./types.js\";\n\nlet reviewTablesInitPromise: Promise<void> | undefined;\n\nexport interface InsertReviewCommentInput {\n resourceType: string;\n resourceId: string;\n threadId?: string | null;\n parentCommentId?: string | null;\n targetId?: string | null;\n kind?: ReviewCommentKind;\n anchor?: unknown | null;\n body: string;\n authorEmail?: string | null;\n authorName?: string | null;\n createdBy?: ReviewActorKind;\n resolutionTarget?: ReviewResolutionTarget | null;\n mentions?: ReviewMention[];\n ownerEmail?: string | null;\n orgId?: string | null;\n visibility?: Visibility | null;\n metadata?: Record<string, unknown> | null;\n}\n\nexport interface QueryReviewCommentsInput {\n resourceType: string;\n resourceId: string;\n scope: ReviewScope;\n bypassScope?: boolean;\n includeResolved?: boolean;\n includeDeleted?: boolean;\n targetId?: string | null;\n limit?: number;\n}\n\nexport interface UpsertReviewStatusInput {\n resourceType: string;\n resourceId: string;\n status: ReviewStatus;\n note?: string | null;\n updatedBy?: string | null;\n ownerEmail?: string | null;\n orgId?: string | null;\n visibility?: Visibility | null;\n metadata?: Record<string, unknown> | null;\n}\n\nexport async function ensureReviewTables(): Promise<void> {\n if (!reviewTablesInitPromise) {\n reviewTablesInitPromise = (async () => {\n const client = getDbExec();\n const createCommentsSql = `CREATE TABLE IF NOT EXISTS agent_review_comments (\n id TEXT PRIMARY KEY,\n resource_type TEXT NOT NULL,\n resource_id TEXT NOT NULL,\n thread_id TEXT NOT NULL,\n parent_comment_id TEXT,\n target_id TEXT,\n kind TEXT NOT NULL DEFAULT 'comment',\n status TEXT NOT NULL DEFAULT 'open',\n anchor_json TEXT,\n body TEXT NOT NULL,\n author_email TEXT,\n author_name TEXT,\n created_by TEXT NOT NULL DEFAULT 'human',\n resolution_target TEXT,\n mentions_json TEXT,\n owner_email TEXT,\n org_id TEXT,\n visibility TEXT NOT NULL DEFAULT 'private',\n resolved_by TEXT,\n resolved_at TEXT,\n consumed_at TEXT,\n deleted_by TEXT,\n deleted_at TEXT,\n created_at TEXT NOT NULL,\n updated_at TEXT NOT NULL,\n metadata_json TEXT\n )`;\n const createStatusesSql = `CREATE TABLE IF NOT EXISTS agent_review_statuses (\n id TEXT PRIMARY KEY,\n resource_type TEXT NOT NULL,\n resource_id TEXT NOT NULL,\n status TEXT NOT NULL,\n note TEXT,\n updated_by TEXT,\n updated_at TEXT NOT NULL,\n owner_email TEXT,\n org_id TEXT,\n visibility TEXT NOT NULL DEFAULT 'private',\n metadata_json TEXT\n )`;\n const indexes = [\n `CREATE INDEX IF NOT EXISTS idx_agent_review_comments_resource\n ON agent_review_comments (resource_type, resource_id, created_at)`,\n `CREATE INDEX IF NOT EXISTS idx_agent_review_comments_thread\n ON agent_review_comments (thread_id, created_at)`,\n `CREATE INDEX IF NOT EXISTS idx_agent_review_comments_owner\n ON agent_review_comments (owner_email, created_at)`,\n `CREATE INDEX IF NOT EXISTS idx_agent_review_comments_org\n ON agent_review_comments (org_id, created_at)`,\n `CREATE INDEX IF NOT EXISTS idx_agent_review_statuses_resource\n ON agent_review_statuses (resource_type, resource_id)`,\n ];\n\n if (isPostgres()) {\n await ensureTableExists(\"agent_review_comments\", createCommentsSql);\n await ensureTableExists(\"agent_review_statuses\", createStatusesSql);\n await ensureIndexExists(\n \"idx_agent_review_comments_resource\",\n indexes[0],\n );\n await ensureIndexExists(\"idx_agent_review_comments_thread\", indexes[1]);\n await ensureIndexExists(\"idx_agent_review_comments_owner\", indexes[2]);\n await ensureIndexExists(\"idx_agent_review_comments_org\", indexes[3]);\n await ensureIndexExists(\n \"idx_agent_review_statuses_resource\",\n indexes[4],\n );\n } else {\n await client.execute(createCommentsSql);\n await client.execute(createStatusesSql);\n for (const indexSql of indexes) {\n await client.execute(indexSql);\n }\n }\n })();\n }\n\n await reviewTablesInitPromise;\n}\n\nexport async function insertReviewComment(\n input: InsertReviewCommentInput,\n): Promise<ReviewComment> {\n await ensureReviewTables();\n const client = getDbExec();\n const id = createReviewId(\"comment\");\n const now = new Date().toISOString();\n const comment: ReviewComment = {\n id,\n resourceType: input.resourceType,\n resourceId: input.resourceId,\n threadId: input.threadId ?? id,\n parentCommentId: input.parentCommentId ?? null,\n targetId: input.targetId ?? null,\n kind: input.kind ?? \"comment\",\n status: \"open\",\n anchor: input.anchor ?? null,\n body: input.body,\n authorEmail: input.authorEmail ?? null,\n authorName: input.authorName ?? null,\n createdBy: input.createdBy ?? \"human\",\n resolutionTarget: input.resolutionTarget ?? null,\n mentions: input.mentions ?? [],\n ownerEmail: input.ownerEmail ?? input.authorEmail ?? null,\n orgId: input.orgId ?? null,\n visibility:\n input.visibility === \"org\" || input.visibility === \"public\"\n ? input.visibility\n : \"private\",\n resolvedBy: null,\n resolvedAt: null,\n consumedAt: null,\n deletedBy: null,\n deletedAt: null,\n createdAt: now,\n updatedAt: now,\n metadata: input.metadata ?? null,\n };\n\n await client.execute({\n sql: `INSERT INTO agent_review_comments (\n id,\n resource_type,\n resource_id,\n thread_id,\n parent_comment_id,\n target_id,\n kind,\n status,\n anchor_json,\n body,\n author_email,\n author_name,\n created_by,\n resolution_target,\n mentions_json,\n owner_email,\n org_id,\n visibility,\n resolved_by,\n resolved_at,\n consumed_at,\n deleted_by,\n deleted_at,\n created_at,\n updated_at,\n metadata_json\n ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`,\n args: [\n comment.id,\n comment.resourceType,\n comment.resourceId,\n comment.threadId,\n comment.parentCommentId,\n comment.targetId,\n comment.kind,\n comment.status,\n stringifyOptionalJson(comment.anchor),\n comment.body,\n comment.authorEmail,\n comment.authorName,\n comment.createdBy,\n comment.resolutionTarget,\n stringifyOptionalJson(comment.mentions),\n comment.ownerEmail,\n comment.orgId,\n comment.visibility,\n comment.resolvedBy,\n comment.resolvedAt,\n comment.consumedAt,\n comment.deletedBy,\n comment.deletedAt,\n comment.createdAt,\n comment.updatedAt,\n stringifyOptionalJson(comment.metadata),\n ],\n });\n\n return comment;\n}\n\nexport async function queryReviewComments(\n input: QueryReviewCommentsInput,\n): Promise<ReviewComment[]> {\n await ensureReviewTables();\n const client = getDbExec();\n const { clause, params } = input.bypassScope\n ? { clause: \"1 = 1\", params: [] as unknown[] }\n : scopedReviewClause(input.scope);\n const filters = [\"resource_type = ?\", \"resource_id = ?\", clause];\n const filterParams: unknown[] = [\n input.resourceType,\n input.resourceId,\n ...params,\n ];\n if (!input.includeDeleted) {\n filters.push(\"deleted_at IS NULL\");\n filters.push(\"status <> 'deleted'\");\n }\n if (!input.includeResolved) {\n filters.push(\"status <> 'resolved'\");\n }\n if (input.targetId !== undefined) {\n if (input.targetId === null) {\n filters.push(\"target_id IS NULL\");\n } else {\n filters.push(\"target_id = ?\");\n filterParams.push(input.targetId);\n }\n }\n\n const result = await client.execute({\n sql: `SELECT ${commentColumns()}\n FROM agent_review_comments\n WHERE ${filters.join(\" AND \")}\n ORDER BY created_at ASC\n LIMIT ?`,\n args: [...filterParams, clampLimit(input.limit)],\n });\n return (result.rows ?? []).map(mapCommentRow);\n}\n\nexport async function getReviewCommentById(\n id: string,\n scope: ReviewScope,\n options: { bypassScope?: boolean } = {},\n): Promise<ReviewComment | null> {\n await ensureReviewTables();\n const client = getDbExec();\n const { clause, params } = options.bypassScope\n ? { clause: \"1 = 1\", params: [] as unknown[] }\n : scopedReviewClause(scope);\n const result = await client.execute({\n sql: `SELECT ${commentColumns()}\n FROM agent_review_comments\n WHERE id = ? AND ${clause}\n LIMIT 1`,\n args: [id, ...params],\n });\n const row = result.rows?.[0];\n return row ? mapCommentRow(row) : null;\n}\n\nexport async function resolveReviewThread(\n threadId: string,\n resolvedBy?: string | null,\n resource?: { resourceType: string; resourceId: string },\n): Promise<void> {\n await ensureReviewTables();\n const now = new Date().toISOString();\n const resourceClause = resource\n ? \"AND resource_type = ? AND resource_id = ?\"\n : \"\";\n await getDbExec().execute({\n sql: `UPDATE agent_review_comments\n SET status = 'resolved',\n resolved_by = ?,\n resolved_at = ?,\n updated_at = ?\n WHERE thread_id = ? AND deleted_at IS NULL ${resourceClause}`,\n args: [\n resolvedBy ?? null,\n now,\n now,\n threadId,\n ...(resource ? [resource.resourceType, resource.resourceId] : []),\n ],\n });\n}\n\nexport async function deleteReviewComment(\n id: string,\n deletedBy?: string | null,\n): Promise<void> {\n await ensureReviewTables();\n const now = new Date().toISOString();\n await getDbExec().execute({\n sql: `UPDATE agent_review_comments\n SET status = 'deleted',\n deleted_by = ?,\n deleted_at = ?,\n updated_at = ?\n WHERE id = ?`,\n args: [deletedBy ?? null, now, now, id],\n });\n}\n\nexport async function consumeReviewFeedback(\n ids: string[],\n consumedAt = new Date().toISOString(),\n resource?: { resourceType: string; resourceId: string },\n): Promise<void> {\n if (!ids.length) {\n return;\n }\n await ensureReviewTables();\n const placeholders = ids.map(() => \"?\").join(\", \");\n const resourceClause = resource\n ? \"AND resource_type = ? AND resource_id = ?\"\n : \"\";\n await getDbExec().execute({\n sql: `UPDATE agent_review_comments\n SET consumed_at = ?,\n updated_at = ?\n WHERE id IN (${placeholders}) ${resourceClause}`,\n args: [\n consumedAt,\n consumedAt,\n ...ids,\n ...(resource ? [resource.resourceType, resource.resourceId] : []),\n ],\n });\n}\n\nexport async function upsertReviewStatus(\n input: UpsertReviewStatusInput,\n): Promise<ReviewStatusEntry> {\n await ensureReviewTables();\n const client = getDbExec();\n const id = statusId(input.resourceType, input.resourceId);\n const now = new Date().toISOString();\n const existing = await client.execute({\n sql: \"SELECT id FROM agent_review_statuses WHERE id = ? LIMIT 1\",\n args: [id],\n });\n const entry: ReviewStatusEntry = {\n id,\n resourceType: input.resourceType,\n resourceId: input.resourceId,\n status: input.status,\n note: input.note ?? null,\n updatedBy: input.updatedBy ?? null,\n updatedAt: now,\n ownerEmail: input.ownerEmail ?? input.updatedBy ?? null,\n orgId: input.orgId ?? null,\n visibility:\n input.visibility === \"org\" || input.visibility === \"public\"\n ? input.visibility\n : \"private\",\n metadata: input.metadata ?? null,\n };\n\n if (existing.rows?.length) {\n await client.execute({\n sql: `UPDATE agent_review_statuses\n SET status = ?,\n note = ?,\n updated_by = ?,\n updated_at = ?,\n owner_email = ?,\n org_id = ?,\n visibility = ?,\n metadata_json = ?\n WHERE id = ?`,\n args: [\n entry.status,\n entry.note,\n entry.updatedBy,\n entry.updatedAt,\n entry.ownerEmail,\n entry.orgId,\n entry.visibility,\n stringifyOptionalJson(entry.metadata),\n entry.id,\n ],\n });\n } else {\n await client.execute({\n sql: `INSERT INTO agent_review_statuses (\n id,\n resource_type,\n resource_id,\n status,\n note,\n updated_by,\n updated_at,\n owner_email,\n org_id,\n visibility,\n metadata_json\n ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`,\n args: [\n entry.id,\n entry.resourceType,\n entry.resourceId,\n entry.status,\n entry.note,\n entry.updatedBy,\n entry.updatedAt,\n entry.ownerEmail,\n entry.orgId,\n entry.visibility,\n stringifyOptionalJson(entry.metadata),\n ],\n });\n }\n\n return entry;\n}\n\nexport async function getReviewStatus(\n resourceType: string,\n resourceId: string,\n scope: ReviewScope,\n options: { bypassScope?: boolean } = {},\n): Promise<ReviewStatusEntry | null> {\n await ensureReviewTables();\n const client = getDbExec();\n const { clause, params } = options.bypassScope\n ? { clause: \"1 = 1\", params: [] as unknown[] }\n : scopedReviewClause(scope);\n const result = await client.execute({\n sql: `SELECT ${statusColumns()}\n FROM agent_review_statuses\n WHERE resource_type = ? AND resource_id = ? AND ${clause}\n LIMIT 1`,\n args: [resourceType, resourceId, ...params],\n });\n const row = result.rows?.[0];\n return row ? mapStatusRow(row) : null;\n}\n\nexport function __resetReviewInitForTests(): void {\n reviewTablesInitPromise = undefined;\n}\n\nfunction commentColumns(): string {\n return [\n \"id\",\n \"resource_type\",\n \"resource_id\",\n \"thread_id\",\n \"parent_comment_id\",\n \"target_id\",\n \"kind\",\n \"status\",\n \"anchor_json\",\n \"body\",\n \"author_email\",\n \"author_name\",\n \"created_by\",\n \"resolution_target\",\n \"mentions_json\",\n \"owner_email\",\n \"org_id\",\n \"visibility\",\n \"resolved_by\",\n \"resolved_at\",\n \"consumed_at\",\n \"deleted_by\",\n \"deleted_at\",\n \"created_at\",\n \"updated_at\",\n \"metadata_json\",\n ].join(\", \");\n}\n\nfunction statusColumns(): string {\n return [\n \"id\",\n \"resource_type\",\n \"resource_id\",\n \"status\",\n \"note\",\n \"updated_by\",\n \"updated_at\",\n \"owner_email\",\n \"org_id\",\n \"visibility\",\n \"metadata_json\",\n ].join(\", \");\n}\n\nfunction scopedReviewClause(scope: ReviewScope): {\n clause: string;\n params: unknown[];\n} {\n const parts: string[] = [];\n const params: unknown[] = [];\n\n if (scope.userEmail) {\n parts.push(\"owner_email = ?\");\n params.push(scope.userEmail);\n }\n if (scope.orgId) {\n parts.push(\"(visibility = 'org' AND org_id = ?)\");\n params.push(scope.orgId);\n }\n parts.push(\"visibility = 'public'\");\n\n return { clause: `(${parts.join(\" OR \")})`, params };\n}\n\nfunction mapCommentRow(row: Record<string, unknown>): ReviewComment {\n return {\n id: String(row.id),\n resourceType: String(row.resource_type),\n resourceId: String(row.resource_id),\n threadId: String(row.thread_id),\n parentCommentId: nullableString(row.parent_comment_id),\n targetId: nullableString(row.target_id),\n kind: normalizeKind(row.kind),\n status: normalizeCommentStatus(row.status),\n anchor: parseOptionalJson(row.anchor_json),\n body: String(row.body),\n authorEmail: nullableString(row.author_email),\n authorName: nullableString(row.author_name),\n createdBy: normalizeActor(row.created_by),\n resolutionTarget: normalizeResolutionTarget(row.resolution_target),\n mentions: parseMentions(row.mentions_json),\n ownerEmail: nullableString(row.owner_email),\n orgId: nullableString(row.org_id),\n visibility: normalizeVisibility(row.visibility),\n resolvedBy: nullableString(row.resolved_by),\n resolvedAt: nullableString(row.resolved_at),\n consumedAt: nullableString(row.consumed_at),\n deletedBy: nullableString(row.deleted_by),\n deletedAt: nullableString(row.deleted_at),\n createdAt: String(row.created_at),\n updatedAt: String(row.updated_at),\n metadata: parseObject(row.metadata_json),\n };\n}\n\nfunction mapStatusRow(row: Record<string, unknown>): ReviewStatusEntry {\n return {\n id: String(row.id),\n resourceType: String(row.resource_type),\n resourceId: String(row.resource_id),\n status: normalizeReviewStatus(row.status),\n note: nullableString(row.note),\n updatedBy: nullableString(row.updated_by),\n updatedAt: String(row.updated_at),\n ownerEmail: nullableString(row.owner_email),\n orgId: nullableString(row.org_id),\n visibility: normalizeVisibility(row.visibility),\n metadata: parseObject(row.metadata_json),\n };\n}\n\nfunction createReviewId(prefix: string): string {\n return `rev_${prefix}_${globalThis.crypto.randomUUID()}`;\n}\n\nfunction statusId(resourceType: string, resourceId: string): string {\n return `${resourceType}:${resourceId}`;\n}\n\nfunction clampLimit(value: number | undefined): number {\n if (!Number.isFinite(value)) {\n return 200;\n }\n return Math.min(500, Math.max(1, Math.floor(value ?? 200)));\n}\n\nfunction nullableString(value: unknown): string | null {\n return value === null || value === undefined ? null : String(value);\n}\n\nfunction stringifyOptionalJson(value: unknown): string | null {\n return value === null || value === undefined ? null : JSON.stringify(value);\n}\n\nfunction parseOptionalJson(value: unknown): unknown | null {\n if (value === null || value === undefined || value === \"\") {\n return null;\n }\n if (typeof value !== \"string\") {\n return value;\n }\n return JSON.parse(value);\n}\n\nfunction parseObject(value: unknown): Record<string, unknown> | null {\n const parsed = parseOptionalJson(value);\n return typeof parsed === \"object\" && parsed !== null && !Array.isArray(parsed)\n ? (parsed as Record<string, unknown>)\n : null;\n}\n\nfunction parseMentions(value: unknown): ReviewMention[] {\n const parsed = parseOptionalJson(value);\n return Array.isArray(parsed) ? (parsed as ReviewMention[]) : [];\n}\n\nfunction normalizeVisibility(value: unknown): Visibility {\n return value === \"org\" || value === \"public\" ? value : \"private\";\n}\n\nfunction normalizeKind(value: unknown): ReviewCommentKind {\n return value === \"annotation\" ||\n value === \"correction\" ||\n value === \"question\" ||\n value === \"decision\" ||\n value === \"review\"\n ? value\n : \"comment\";\n}\n\nfunction normalizeCommentStatus(value: unknown): ReviewCommentStatus {\n return value === \"resolved\" || value === \"deleted\" ? value : \"open\";\n}\n\nfunction normalizeReviewStatus(value: unknown): ReviewStatus {\n return value === \"in_review\" ||\n value === \"approved\" ||\n value === \"changes_requested\"\n ? value\n : \"draft\";\n}\n\nfunction normalizeActor(value: unknown): ReviewActorKind {\n return value === \"agent\" || value === \"import\" || value === \"system\"\n ? value\n : \"human\";\n}\n\nfunction normalizeResolutionTarget(\n value: unknown,\n): ReviewResolutionTarget | null {\n return value === \"agent\" || value === \"human\" ? value : null;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/review/store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAc1E,IAAI,uBAAkD,CAAC;AA6CvD,MAAM,CAAC,KAAK,UAAU,kBAAkB;IACtC,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAC7B,uBAAuB,GAAG,CAAC,KAAK,IAAI,EAAE;YACpC,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;YAC3B,MAAM,iBAAiB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;MA2B1B,CAAC;YACD,MAAM,iBAAiB,GAAG;;;;;;;;;;;;MAY1B,CAAC;YACD,MAAM,OAAO,GAAG;gBACd;6EACqE;gBACrE;4DACoD;gBACpD;8DACsD;gBACtD;yDACiD;gBACjD;iEACyD;aAC1D,CAAC;YAEF,IAAI,UAAU,EAAE,EAAE,CAAC;gBACjB,MAAM,iBAAiB,CAAC,uBAAuB,EAAE,iBAAiB,CAAC,CAAC;gBACpE,MAAM,iBAAiB,CAAC,uBAAuB,EAAE,iBAAiB,CAAC,CAAC;gBACpE,MAAM,iBAAiB,CACrB,oCAAoC,EACpC,OAAO,CAAC,CAAC,CAAC,CACX,CAAC;gBACF,MAAM,iBAAiB,CAAC,kCAAkC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;gBACxE,MAAM,iBAAiB,CAAC,iCAAiC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;gBACvE,MAAM,iBAAiB,CAAC,+BAA+B,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;gBACrE,MAAM,iBAAiB,CACrB,oCAAoC,EACpC,OAAO,CAAC,CAAC,CAAC,CACX,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,MAAM,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;gBACxC,MAAM,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;gBACxC,KAAK,MAAM,QAAQ,IAAI,OAAO,EAAE,CAAC;oBAC/B,MAAM,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;gBACjC,CAAC;YACH,CAAC;QACH,CAAC,CAAC,EAAE,CAAC;IACP,CAAC;IAED,MAAM,uBAAuB,CAAC;AAChC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,KAA+B;IAE/B,MAAM,kBAAkB,EAAE,CAAC;IAC3B,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,EAAE,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;IACrC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACrC,MAAM,OAAO,GAAkB;QAC7B,EAAE;QACF,YAAY,EAAE,KAAK,CAAC,YAAY;QAChC,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,EAAE;QAC9B,eAAe,EAAE,KAAK,CAAC,eAAe,IAAI,IAAI;QAC9C,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,IAAI;QAChC,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,SAAS;QAC7B,MAAM,EAAE,MAAM;QACd,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,IAAI;QAC5B,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,WAAW,EAAE,KAAK,CAAC,WAAW,IAAI,IAAI;QACtC,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,IAAI;QACpC,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,OAAO;QACrC,gBAAgB,EAAE,KAAK,CAAC,gBAAgB,IAAI,IAAI;QAChD,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,EAAE;QAC9B,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,WAAW,IAAI,IAAI;QACzD,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,IAAI;QAC1B,UAAU,EACR,KAAK,CAAC,UAAU,KAAK,KAAK,IAAI,KAAK,CAAC,UAAU,KAAK,QAAQ;YACzD,CAAC,CAAC,KAAK,CAAC,UAAU;YAClB,CAAC,CAAC,SAAS;QACf,UAAU,EAAE,IAAI;QAChB,UAAU,EAAE,IAAI;QAChB,UAAU,EAAE,IAAI;QAChB,SAAS,EAAE,IAAI;QACf,SAAS,EAAE,IAAI;QACf,SAAS,EAAE,GAAG;QACd,SAAS,EAAE,GAAG;QACd,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,IAAI;KACjC,CAAC;IAEF,MAAM,MAAM,CAAC,OAAO,CAAC;QACnB,GAAG,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;4FA2BmF;QACxF,IAAI,EAAE;YACJ,OAAO,CAAC,EAAE;YACV,OAAO,CAAC,YAAY;YACpB,OAAO,CAAC,UAAU;YAClB,OAAO,CAAC,QAAQ;YAChB,OAAO,CAAC,eAAe;YACvB,OAAO,CAAC,QAAQ;YAChB,OAAO,CAAC,IAAI;YACZ,OAAO,CAAC,MAAM;YACd,qBAAqB,CAAC,OAAO,CAAC,MAAM,CAAC;YACrC,OAAO,CAAC,IAAI;YACZ,OAAO,CAAC,WAAW;YACnB,OAAO,CAAC,UAAU;YAClB,OAAO,CAAC,SAAS;YACjB,OAAO,CAAC,gBAAgB;YACxB,qBAAqB,CAAC,OAAO,CAAC,QAAQ,CAAC;YACvC,OAAO,CAAC,UAAU;YAClB,OAAO,CAAC,KAAK;YACb,OAAO,CAAC,UAAU;YAClB,OAAO,CAAC,UAAU;YAClB,OAAO,CAAC,UAAU;YAClB,OAAO,CAAC,UAAU;YAClB,OAAO,CAAC,SAAS;YACjB,OAAO,CAAC,SAAS;YACjB,OAAO,CAAC,SAAS;YACjB,OAAO,CAAC,SAAS;YACjB,qBAAqB,CAAC,OAAO,CAAC,QAAQ,CAAC;SACxC;KACF,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,KAA+B;IAE/B,MAAM,kBAAkB,EAAE,CAAC;IAC3B,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC,WAAW;QAC1C,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAe,EAAE;QAC9C,CAAC,CAAC,kBAAkB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACpC,MAAM,OAAO,GAAG,CAAC,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,CAAC,CAAC;IACjE,MAAM,YAAY,GAAc;QAC9B,KAAK,CAAC,YAAY;QAClB,KAAK,CAAC,UAAU;QAChB,GAAG,MAAM;KACV,CAAC;IACF,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;QAC1B,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACnC,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IACtC,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC;QAC3B,OAAO,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IACvC,CAAC;IACD,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QACjC,IAAI,KAAK,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;YAC5B,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QACpC,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAC9B,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC;QAClC,GAAG,EAAE,UAAU,cAAc,EAAE;;cAErB,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;;cAErB;QACV,IAAI,EAAE,CAAC,GAAG,YAAY,EAAE,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;KACjD,CAAC,CAAC;IACH,OAAO,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,EAAU,EACV,KAAkB,EAClB,OAAO,GAA8B,EAAE;IAEvC,MAAM,kBAAkB,EAAE,CAAC;IAC3B,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,WAAW;QAC5C,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAe,EAAE;QAC9C,CAAC,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAC9B,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC;QAClC,GAAG,EAAE,UAAU,cAAc,EAAE;;yBAEV,MAAM;cACjB;QACV,IAAI,EAAE,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC;KACtB,CAAC,CAAC;IACH,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC7B,OAAO,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACzC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,QAAgB,EAChB,UAA0B,EAC1B,QAAuD;IAEvD,MAAM,kBAAkB,EAAE,CAAC;IAC3B,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACrC,MAAM,cAAc,GAAG,QAAQ;QAC7B,CAAC,CAAC,2CAA2C;QAC7C,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE,CAAC,OAAO,CAAC;QACvC,GAAG,EAAE;;;;;mDAK0C,cAAc,EAAE;QAC/D,IAAI,EAAE;YACJ,UAAU,IAAI,IAAI;YAClB,GAAG;YACH,GAAG;YACH,QAAQ;YACR,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SAClE;KACF,CAAC,CAAC;IACH,OAAO,MAAM,CAAC,YAAY,IAAI,CAAC,CAAC;AAClC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,EAAU,EACV,SAAyB;IAEzB,MAAM,kBAAkB,EAAE,CAAC;IAC3B,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACrC,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE,CAAC,OAAO,CAAC;QACvC,GAAG,EAAE;;;;;mBAKU;QACf,IAAI,EAAE,CAAC,SAAS,IAAI,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC;KACxC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC,YAAY,IAAI,CAAC,CAAC;AAClC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,GAAa,EACb,UAAU,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EACrC,QAAuD;IAEvD,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;QAChB,OAAO,CAAC,CAAC;IACX,CAAC;IACD,MAAM,kBAAkB,EAAE,CAAC;IAC3B,MAAM,YAAY,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnD,MAAM,cAAc,GAAG,QAAQ;QAC7B,CAAC,CAAC,2CAA2C;QAC7C,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE,CAAC,OAAO,CAAC;QACvC,GAAG,EAAE;;;qBAGY,YAAY,KAAK,cAAc,EAAE;QAClD,IAAI,EAAE;YACJ,UAAU;YACV,UAAU;YACV,GAAG,GAAG;YACN,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SAClE;KACF,CAAC,CAAC;IACH,OAAO,MAAM,CAAC,YAAY,IAAI,CAAC,CAAC;AAClC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,KAA8B;IAE9B,MAAM,kBAAkB,EAAE,CAAC;IAC3B,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;IAC1D,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACrC,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC;QACpC,GAAG,EAAE,2DAA2D;QAChE,IAAI,EAAE,CAAC,EAAE,CAAC;KACX,CAAC,CAAC;IACH,MAAM,KAAK,GAAsB;QAC/B,EAAE;QACF,YAAY,EAAE,KAAK,CAAC,YAAY;QAChC,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,IAAI;QACxB,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,IAAI;QAClC,SAAS,EAAE,GAAG;QACd,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,SAAS,IAAI,IAAI;QACvD,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,IAAI;QAC1B,UAAU,EACR,KAAK,CAAC,UAAU,KAAK,KAAK,IAAI,KAAK,CAAC,UAAU,KAAK,QAAQ;YACzD,CAAC,CAAC,KAAK,CAAC,UAAU;YAClB,CAAC,CAAC,SAAS;QACf,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,IAAI;KACjC,CAAC;IAEF,IAAI,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC;QAC1B,MAAM,MAAM,CAAC,OAAO,CAAC;YACnB,GAAG,EAAE;;;;;;;;;qBASU;YACf,IAAI,EAAE;gBACJ,KAAK,CAAC,MAAM;gBACZ,KAAK,CAAC,IAAI;gBACV,KAAK,CAAC,SAAS;gBACf,KAAK,CAAC,SAAS;gBACf,KAAK,CAAC,UAAU;gBAChB,KAAK,CAAC,KAAK;gBACX,KAAK,CAAC,UAAU;gBAChB,qBAAqB,CAAC,KAAK,CAAC,QAAQ,CAAC;gBACrC,KAAK,CAAC,EAAE;aACT;SACF,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,MAAM,MAAM,CAAC,OAAO,CAAC;YACnB,GAAG,EAAE;;;;;;;;;;;;iDAYsC;YAC3C,IAAI,EAAE;gBACJ,KAAK,CAAC,EAAE;gBACR,KAAK,CAAC,YAAY;gBAClB,KAAK,CAAC,UAAU;gBAChB,KAAK,CAAC,MAAM;gBACZ,KAAK,CAAC,IAAI;gBACV,KAAK,CAAC,SAAS;gBACf,KAAK,CAAC,SAAS;gBACf,KAAK,CAAC,UAAU;gBAChB,KAAK,CAAC,KAAK;gBACX,KAAK,CAAC,UAAU;gBAChB,qBAAqB,CAAC,KAAK,CAAC,QAAQ,CAAC;aACtC;SACF,CAAC,CAAC;IACL,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,YAAoB,EACpB,UAAkB,EAClB,KAAkB,EAClB,OAAO,GAA8B,EAAE;IAEvC,MAAM,kBAAkB,EAAE,CAAC;IAC3B,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,WAAW;QAC5C,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAe,EAAE;QAC9C,CAAC,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAC9B,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC;QAClC,GAAG,EAAE,UAAU,aAAa,EAAE;;wDAEsB,MAAM;cAChD;QACV,IAAI,EAAE,CAAC,YAAY,EAAE,UAAU,EAAE,GAAG,MAAM,CAAC;KAC5C,CAAC,CAAC;IACH,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC7B,OAAO,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,yBAAyB;IACvC,uBAAuB,GAAG,SAAS,CAAC;AACtC,CAAC;AAED,SAAS,cAAc;IACrB,OAAO;QACL,IAAI;QACJ,eAAe;QACf,aAAa;QACb,WAAW;QACX,mBAAmB;QACnB,WAAW;QACX,MAAM;QACN,QAAQ;QACR,aAAa;QACb,MAAM;QACN,cAAc;QACd,aAAa;QACb,YAAY;QACZ,mBAAmB;QACnB,eAAe;QACf,aAAa;QACb,QAAQ;QACR,YAAY;QACZ,aAAa;QACb,aAAa;QACb,aAAa;QACb,YAAY;QACZ,YAAY;QACZ,YAAY;QACZ,YAAY;QACZ,eAAe;KAChB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,SAAS,aAAa;IACpB,OAAO;QACL,IAAI;QACJ,eAAe;QACf,aAAa;QACb,QAAQ;QACR,MAAM;QACN,YAAY;QACZ,YAAY;QACZ,aAAa;QACb,QAAQ;QACR,YAAY;QACZ,eAAe;KAChB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAkB;IAI5C,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,MAAM,GAAc,EAAE,CAAC;IAE7B,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;QACpB,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC9B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAC/B,CAAC;IACD,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAChB,KAAK,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;QAClD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;IAEpC,OAAO,EAAE,MAAM,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC;AACvD,CAAC;AAED,SAAS,aAAa,CAAC,GAA4B;IACjD,OAAO;QACL,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;QAClB,YAAY,EAAE,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC;QACvC,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC;QACnC,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC;QAC/B,eAAe,EAAE,cAAc,CAAC,GAAG,CAAC,iBAAiB,CAAC;QACtD,QAAQ,EAAE,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC;QACvC,IAAI,EAAE,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC;QAC7B,MAAM,EAAE,sBAAsB,CAAC,GAAG,CAAC,MAAM,CAAC;QAC1C,MAAM,EAAE,iBAAiB,CAAC,GAAG,CAAC,WAAW,CAAC;QAC1C,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;QACtB,WAAW,EAAE,cAAc,CAAC,GAAG,CAAC,YAAY,CAAC;QAC7C,UAAU,EAAE,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC;QAC3C,SAAS,EAAE,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC;QACzC,gBAAgB,EAAE,yBAAyB,CAAC,GAAG,CAAC,iBAAiB,CAAC;QAClE,QAAQ,EAAE,aAAa,CAAC,GAAG,CAAC,aAAa,CAAC;QAC1C,UAAU,EAAE,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC;QAC3C,KAAK,EAAE,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC;QACjC,UAAU,EAAE,mBAAmB,CAAC,GAAG,CAAC,UAAU,CAAC;QAC/C,UAAU,EAAE,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC;QAC3C,UAAU,EAAE,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC;QAC3C,UAAU,EAAE,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC;QAC3C,SAAS,EAAE,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC;QACzC,SAAS,EAAE,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC;QACzC,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC;QACjC,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC;QACjC,QAAQ,EAAE,WAAW,CAAC,GAAG,CAAC,aAAa,CAAC;KACzC,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,GAA4B;IAChD,OAAO;QACL,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;QAClB,YAAY,EAAE,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC;QACvC,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC;QACnC,MAAM,EAAE,qBAAqB,CAAC,GAAG,CAAC,MAAM,CAAC;QACzC,IAAI,EAAE,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC;QAC9B,SAAS,EAAE,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC;QACzC,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC;QACjC,UAAU,EAAE,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC;QAC3C,KAAK,EAAE,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC;QACjC,UAAU,EAAE,mBAAmB,CAAC,GAAG,CAAC,UAAU,CAAC;QAC/C,QAAQ,EAAE,WAAW,CAAC,GAAG,CAAC,aAAa,CAAC;KACzC,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,MAAc;IACpC,OAAO,OAAO,MAAM,IAAI,UAAU,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,CAAC;AAC3D,CAAC;AAED,SAAS,QAAQ,CAAC,YAAoB,EAAE,UAAkB;IACxD,OAAO,GAAG,YAAY,IAAI,UAAU,EAAE,CAAC;AACzC,CAAC;AAED,SAAS,UAAU,CAAC,KAAyB;IAC3C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,GAAG,CAAC;IACb,CAAC;IACD,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC;AAC9D,CAAC;AAED,SAAS,cAAc,CAAC,KAAc;IACpC,OAAO,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACtE,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAc;IAC3C,OAAO,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAc;IACvC,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;QAC1D,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAC3B,CAAC;AAED,SAAS,WAAW,CAAC,KAAc;IACjC,MAAM,MAAM,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;IACxC,OAAO,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;QAC5E,CAAC,CAAE,MAAkC;QACrC,CAAC,CAAC,IAAI,CAAC;AACX,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,MAAM,MAAM,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;IACxC,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAE,MAA0B,CAAC,CAAC,CAAC,EAAE,CAAC;AAClE,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAc;IACzC,OAAO,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACnE,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,OAAO,KAAK,KAAK,YAAY;QAC3B,KAAK,KAAK,YAAY;QACtB,KAAK,KAAK,UAAU;QACpB,KAAK,KAAK,UAAU;QACpB,KAAK,KAAK,QAAQ;QAClB,CAAC,CAAC,KAAK;QACP,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC;AAED,SAAS,sBAAsB,CAAC,KAAc;IAC5C,OAAO,KAAK,KAAK,UAAU,IAAI,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;AACtE,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAc;IAC3C,OAAO,KAAK,KAAK,WAAW;QAC1B,KAAK,KAAK,UAAU;QACpB,KAAK,KAAK,mBAAmB;QAC7B,CAAC,CAAC,KAAK;QACP,CAAC,CAAC,OAAO,CAAC;AACd,CAAC;AAED,SAAS,cAAc,CAAC,KAAc;IACpC,OAAO,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,QAAQ;QAClE,CAAC,CAAC,KAAK;QACP,CAAC,CAAC,OAAO,CAAC;AACd,CAAC;AAED,SAAS,yBAAyB,CAChC,KAAc;IAEd,OAAO,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AAC/D,CAAC","sourcesContent":["import { getDbExec, isPostgres } from \"../db/client.js\";\nimport { ensureIndexExists, ensureTableExists } from \"../db/ddl-guard.js\";\nimport type { Visibility } from \"../sharing/schema.js\";\nimport type {\n ReviewActorKind,\n ReviewComment,\n ReviewCommentKind,\n ReviewCommentStatus,\n ReviewMention,\n ReviewResolutionTarget,\n ReviewScope,\n ReviewStatus,\n ReviewStatusEntry,\n} from \"./types.js\";\n\nlet reviewTablesInitPromise: Promise<void> | undefined;\n\nexport interface InsertReviewCommentInput {\n resourceType: string;\n resourceId: string;\n threadId?: string | null;\n parentCommentId?: string | null;\n targetId?: string | null;\n kind?: ReviewCommentKind;\n anchor?: unknown | null;\n body: string;\n authorEmail?: string | null;\n authorName?: string | null;\n createdBy?: ReviewActorKind;\n resolutionTarget?: ReviewResolutionTarget | null;\n mentions?: ReviewMention[];\n ownerEmail?: string | null;\n orgId?: string | null;\n visibility?: Visibility | null;\n metadata?: Record<string, unknown> | null;\n}\n\nexport interface QueryReviewCommentsInput {\n resourceType: string;\n resourceId: string;\n scope: ReviewScope;\n bypassScope?: boolean;\n includeResolved?: boolean;\n includeDeleted?: boolean;\n targetId?: string | null;\n limit?: number;\n}\n\nexport interface UpsertReviewStatusInput {\n resourceType: string;\n resourceId: string;\n status: ReviewStatus;\n note?: string | null;\n updatedBy?: string | null;\n ownerEmail?: string | null;\n orgId?: string | null;\n visibility?: Visibility | null;\n metadata?: Record<string, unknown> | null;\n}\n\nexport async function ensureReviewTables(): Promise<void> {\n if (!reviewTablesInitPromise) {\n reviewTablesInitPromise = (async () => {\n const client = getDbExec();\n const createCommentsSql = `CREATE TABLE IF NOT EXISTS agent_review_comments (\n id TEXT PRIMARY KEY,\n resource_type TEXT NOT NULL,\n resource_id TEXT NOT NULL,\n thread_id TEXT NOT NULL,\n parent_comment_id TEXT,\n target_id TEXT,\n kind TEXT NOT NULL DEFAULT 'comment',\n status TEXT NOT NULL DEFAULT 'open',\n anchor_json TEXT,\n body TEXT NOT NULL,\n author_email TEXT,\n author_name TEXT,\n created_by TEXT NOT NULL DEFAULT 'human',\n resolution_target TEXT,\n mentions_json TEXT,\n owner_email TEXT,\n org_id TEXT,\n visibility TEXT NOT NULL DEFAULT 'private',\n resolved_by TEXT,\n resolved_at TEXT,\n consumed_at TEXT,\n deleted_by TEXT,\n deleted_at TEXT,\n created_at TEXT NOT NULL,\n updated_at TEXT NOT NULL,\n metadata_json TEXT\n )`;\n const createStatusesSql = `CREATE TABLE IF NOT EXISTS agent_review_statuses (\n id TEXT PRIMARY KEY,\n resource_type TEXT NOT NULL,\n resource_id TEXT NOT NULL,\n status TEXT NOT NULL,\n note TEXT,\n updated_by TEXT,\n updated_at TEXT NOT NULL,\n owner_email TEXT,\n org_id TEXT,\n visibility TEXT NOT NULL DEFAULT 'private',\n metadata_json TEXT\n )`;\n const indexes = [\n `CREATE INDEX IF NOT EXISTS idx_agent_review_comments_resource\n ON agent_review_comments (resource_type, resource_id, created_at)`,\n `CREATE INDEX IF NOT EXISTS idx_agent_review_comments_thread\n ON agent_review_comments (thread_id, created_at)`,\n `CREATE INDEX IF NOT EXISTS idx_agent_review_comments_owner\n ON agent_review_comments (owner_email, created_at)`,\n `CREATE INDEX IF NOT EXISTS idx_agent_review_comments_org\n ON agent_review_comments (org_id, created_at)`,\n `CREATE INDEX IF NOT EXISTS idx_agent_review_statuses_resource\n ON agent_review_statuses (resource_type, resource_id)`,\n ];\n\n if (isPostgres()) {\n await ensureTableExists(\"agent_review_comments\", createCommentsSql);\n await ensureTableExists(\"agent_review_statuses\", createStatusesSql);\n await ensureIndexExists(\n \"idx_agent_review_comments_resource\",\n indexes[0],\n );\n await ensureIndexExists(\"idx_agent_review_comments_thread\", indexes[1]);\n await ensureIndexExists(\"idx_agent_review_comments_owner\", indexes[2]);\n await ensureIndexExists(\"idx_agent_review_comments_org\", indexes[3]);\n await ensureIndexExists(\n \"idx_agent_review_statuses_resource\",\n indexes[4],\n );\n } else {\n await client.execute(createCommentsSql);\n await client.execute(createStatusesSql);\n for (const indexSql of indexes) {\n await client.execute(indexSql);\n }\n }\n })();\n }\n\n await reviewTablesInitPromise;\n}\n\nexport async function insertReviewComment(\n input: InsertReviewCommentInput,\n): Promise<ReviewComment> {\n await ensureReviewTables();\n const client = getDbExec();\n const id = createReviewId(\"comment\");\n const now = new Date().toISOString();\n const comment: ReviewComment = {\n id,\n resourceType: input.resourceType,\n resourceId: input.resourceId,\n threadId: input.threadId ?? id,\n parentCommentId: input.parentCommentId ?? null,\n targetId: input.targetId ?? null,\n kind: input.kind ?? \"comment\",\n status: \"open\",\n anchor: input.anchor ?? null,\n body: input.body,\n authorEmail: input.authorEmail ?? null,\n authorName: input.authorName ?? null,\n createdBy: input.createdBy ?? \"human\",\n resolutionTarget: input.resolutionTarget ?? null,\n mentions: input.mentions ?? [],\n ownerEmail: input.ownerEmail ?? input.authorEmail ?? null,\n orgId: input.orgId ?? null,\n visibility:\n input.visibility === \"org\" || input.visibility === \"public\"\n ? input.visibility\n : \"private\",\n resolvedBy: null,\n resolvedAt: null,\n consumedAt: null,\n deletedBy: null,\n deletedAt: null,\n createdAt: now,\n updatedAt: now,\n metadata: input.metadata ?? null,\n };\n\n await client.execute({\n sql: `INSERT INTO agent_review_comments (\n id,\n resource_type,\n resource_id,\n thread_id,\n parent_comment_id,\n target_id,\n kind,\n status,\n anchor_json,\n body,\n author_email,\n author_name,\n created_by,\n resolution_target,\n mentions_json,\n owner_email,\n org_id,\n visibility,\n resolved_by,\n resolved_at,\n consumed_at,\n deleted_by,\n deleted_at,\n created_at,\n updated_at,\n metadata_json\n ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`,\n args: [\n comment.id,\n comment.resourceType,\n comment.resourceId,\n comment.threadId,\n comment.parentCommentId,\n comment.targetId,\n comment.kind,\n comment.status,\n stringifyOptionalJson(comment.anchor),\n comment.body,\n comment.authorEmail,\n comment.authorName,\n comment.createdBy,\n comment.resolutionTarget,\n stringifyOptionalJson(comment.mentions),\n comment.ownerEmail,\n comment.orgId,\n comment.visibility,\n comment.resolvedBy,\n comment.resolvedAt,\n comment.consumedAt,\n comment.deletedBy,\n comment.deletedAt,\n comment.createdAt,\n comment.updatedAt,\n stringifyOptionalJson(comment.metadata),\n ],\n });\n\n return comment;\n}\n\nexport async function queryReviewComments(\n input: QueryReviewCommentsInput,\n): Promise<ReviewComment[]> {\n await ensureReviewTables();\n const client = getDbExec();\n const { clause, params } = input.bypassScope\n ? { clause: \"1 = 1\", params: [] as unknown[] }\n : scopedReviewClause(input.scope);\n const filters = [\"resource_type = ?\", \"resource_id = ?\", clause];\n const filterParams: unknown[] = [\n input.resourceType,\n input.resourceId,\n ...params,\n ];\n if (!input.includeDeleted) {\n filters.push(\"deleted_at IS NULL\");\n filters.push(\"status <> 'deleted'\");\n }\n if (!input.includeResolved) {\n filters.push(\"status <> 'resolved'\");\n }\n if (input.targetId !== undefined) {\n if (input.targetId === null) {\n filters.push(\"target_id IS NULL\");\n } else {\n filters.push(\"target_id = ?\");\n filterParams.push(input.targetId);\n }\n }\n\n const result = await client.execute({\n sql: `SELECT ${commentColumns()}\n FROM agent_review_comments\n WHERE ${filters.join(\" AND \")}\n ORDER BY created_at ASC\n LIMIT ?`,\n args: [...filterParams, clampLimit(input.limit)],\n });\n return (result.rows ?? []).map(mapCommentRow);\n}\n\nexport async function getReviewCommentById(\n id: string,\n scope: ReviewScope,\n options: { bypassScope?: boolean } = {},\n): Promise<ReviewComment | null> {\n await ensureReviewTables();\n const client = getDbExec();\n const { clause, params } = options.bypassScope\n ? { clause: \"1 = 1\", params: [] as unknown[] }\n : scopedReviewClause(scope);\n const result = await client.execute({\n sql: `SELECT ${commentColumns()}\n FROM agent_review_comments\n WHERE id = ? AND ${clause}\n LIMIT 1`,\n args: [id, ...params],\n });\n const row = result.rows?.[0];\n return row ? mapCommentRow(row) : null;\n}\n\nexport async function resolveReviewThread(\n threadId: string,\n resolvedBy?: string | null,\n resource?: { resourceType: string; resourceId: string },\n): Promise<number> {\n await ensureReviewTables();\n const now = new Date().toISOString();\n const resourceClause = resource\n ? \"AND resource_type = ? AND resource_id = ?\"\n : \"\";\n const result = await getDbExec().execute({\n sql: `UPDATE agent_review_comments\n SET status = 'resolved',\n resolved_by = ?,\n resolved_at = ?,\n updated_at = ?\n WHERE thread_id = ? AND deleted_at IS NULL ${resourceClause}`,\n args: [\n resolvedBy ?? null,\n now,\n now,\n threadId,\n ...(resource ? [resource.resourceType, resource.resourceId] : []),\n ],\n });\n return result.rowsAffected ?? 0;\n}\n\nexport async function deleteReviewComment(\n id: string,\n deletedBy?: string | null,\n): Promise<number> {\n await ensureReviewTables();\n const now = new Date().toISOString();\n const result = await getDbExec().execute({\n sql: `UPDATE agent_review_comments\n SET status = 'deleted',\n deleted_by = ?,\n deleted_at = ?,\n updated_at = ?\n WHERE id = ?`,\n args: [deletedBy ?? null, now, now, id],\n });\n return result.rowsAffected ?? 0;\n}\n\nexport async function consumeReviewFeedback(\n ids: string[],\n consumedAt = new Date().toISOString(),\n resource?: { resourceType: string; resourceId: string },\n): Promise<number> {\n if (!ids.length) {\n return 0;\n }\n await ensureReviewTables();\n const placeholders = ids.map(() => \"?\").join(\", \");\n const resourceClause = resource\n ? \"AND resource_type = ? AND resource_id = ?\"\n : \"\";\n const result = await getDbExec().execute({\n sql: `UPDATE agent_review_comments\n SET consumed_at = ?,\n updated_at = ?\n WHERE id IN (${placeholders}) ${resourceClause}`,\n args: [\n consumedAt,\n consumedAt,\n ...ids,\n ...(resource ? [resource.resourceType, resource.resourceId] : []),\n ],\n });\n return result.rowsAffected ?? 0;\n}\n\nexport async function upsertReviewStatus(\n input: UpsertReviewStatusInput,\n): Promise<ReviewStatusEntry> {\n await ensureReviewTables();\n const client = getDbExec();\n const id = statusId(input.resourceType, input.resourceId);\n const now = new Date().toISOString();\n const existing = await client.execute({\n sql: \"SELECT id FROM agent_review_statuses WHERE id = ? LIMIT 1\",\n args: [id],\n });\n const entry: ReviewStatusEntry = {\n id,\n resourceType: input.resourceType,\n resourceId: input.resourceId,\n status: input.status,\n note: input.note ?? null,\n updatedBy: input.updatedBy ?? null,\n updatedAt: now,\n ownerEmail: input.ownerEmail ?? input.updatedBy ?? null,\n orgId: input.orgId ?? null,\n visibility:\n input.visibility === \"org\" || input.visibility === \"public\"\n ? input.visibility\n : \"private\",\n metadata: input.metadata ?? null,\n };\n\n if (existing.rows?.length) {\n await client.execute({\n sql: `UPDATE agent_review_statuses\n SET status = ?,\n note = ?,\n updated_by = ?,\n updated_at = ?,\n owner_email = ?,\n org_id = ?,\n visibility = ?,\n metadata_json = ?\n WHERE id = ?`,\n args: [\n entry.status,\n entry.note,\n entry.updatedBy,\n entry.updatedAt,\n entry.ownerEmail,\n entry.orgId,\n entry.visibility,\n stringifyOptionalJson(entry.metadata),\n entry.id,\n ],\n });\n } else {\n await client.execute({\n sql: `INSERT INTO agent_review_statuses (\n id,\n resource_type,\n resource_id,\n status,\n note,\n updated_by,\n updated_at,\n owner_email,\n org_id,\n visibility,\n metadata_json\n ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`,\n args: [\n entry.id,\n entry.resourceType,\n entry.resourceId,\n entry.status,\n entry.note,\n entry.updatedBy,\n entry.updatedAt,\n entry.ownerEmail,\n entry.orgId,\n entry.visibility,\n stringifyOptionalJson(entry.metadata),\n ],\n });\n }\n\n return entry;\n}\n\nexport async function getReviewStatus(\n resourceType: string,\n resourceId: string,\n scope: ReviewScope,\n options: { bypassScope?: boolean } = {},\n): Promise<ReviewStatusEntry | null> {\n await ensureReviewTables();\n const client = getDbExec();\n const { clause, params } = options.bypassScope\n ? { clause: \"1 = 1\", params: [] as unknown[] }\n : scopedReviewClause(scope);\n const result = await client.execute({\n sql: `SELECT ${statusColumns()}\n FROM agent_review_statuses\n WHERE resource_type = ? AND resource_id = ? AND ${clause}\n LIMIT 1`,\n args: [resourceType, resourceId, ...params],\n });\n const row = result.rows?.[0];\n return row ? mapStatusRow(row) : null;\n}\n\nexport function __resetReviewInitForTests(): void {\n reviewTablesInitPromise = undefined;\n}\n\nfunction commentColumns(): string {\n return [\n \"id\",\n \"resource_type\",\n \"resource_id\",\n \"thread_id\",\n \"parent_comment_id\",\n \"target_id\",\n \"kind\",\n \"status\",\n \"anchor_json\",\n \"body\",\n \"author_email\",\n \"author_name\",\n \"created_by\",\n \"resolution_target\",\n \"mentions_json\",\n \"owner_email\",\n \"org_id\",\n \"visibility\",\n \"resolved_by\",\n \"resolved_at\",\n \"consumed_at\",\n \"deleted_by\",\n \"deleted_at\",\n \"created_at\",\n \"updated_at\",\n \"metadata_json\",\n ].join(\", \");\n}\n\nfunction statusColumns(): string {\n return [\n \"id\",\n \"resource_type\",\n \"resource_id\",\n \"status\",\n \"note\",\n \"updated_by\",\n \"updated_at\",\n \"owner_email\",\n \"org_id\",\n \"visibility\",\n \"metadata_json\",\n ].join(\", \");\n}\n\nfunction scopedReviewClause(scope: ReviewScope): {\n clause: string;\n params: unknown[];\n} {\n const parts: string[] = [];\n const params: unknown[] = [];\n\n if (scope.userEmail) {\n parts.push(\"owner_email = ?\");\n params.push(scope.userEmail);\n }\n if (scope.orgId) {\n parts.push(\"(visibility = 'org' AND org_id = ?)\");\n params.push(scope.orgId);\n }\n parts.push(\"visibility = 'public'\");\n\n return { clause: `(${parts.join(\" OR \")})`, params };\n}\n\nfunction mapCommentRow(row: Record<string, unknown>): ReviewComment {\n return {\n id: String(row.id),\n resourceType: String(row.resource_type),\n resourceId: String(row.resource_id),\n threadId: String(row.thread_id),\n parentCommentId: nullableString(row.parent_comment_id),\n targetId: nullableString(row.target_id),\n kind: normalizeKind(row.kind),\n status: normalizeCommentStatus(row.status),\n anchor: parseOptionalJson(row.anchor_json),\n body: String(row.body),\n authorEmail: nullableString(row.author_email),\n authorName: nullableString(row.author_name),\n createdBy: normalizeActor(row.created_by),\n resolutionTarget: normalizeResolutionTarget(row.resolution_target),\n mentions: parseMentions(row.mentions_json),\n ownerEmail: nullableString(row.owner_email),\n orgId: nullableString(row.org_id),\n visibility: normalizeVisibility(row.visibility),\n resolvedBy: nullableString(row.resolved_by),\n resolvedAt: nullableString(row.resolved_at),\n consumedAt: nullableString(row.consumed_at),\n deletedBy: nullableString(row.deleted_by),\n deletedAt: nullableString(row.deleted_at),\n createdAt: String(row.created_at),\n updatedAt: String(row.updated_at),\n metadata: parseObject(row.metadata_json),\n };\n}\n\nfunction mapStatusRow(row: Record<string, unknown>): ReviewStatusEntry {\n return {\n id: String(row.id),\n resourceType: String(row.resource_type),\n resourceId: String(row.resource_id),\n status: normalizeReviewStatus(row.status),\n note: nullableString(row.note),\n updatedBy: nullableString(row.updated_by),\n updatedAt: String(row.updated_at),\n ownerEmail: nullableString(row.owner_email),\n orgId: nullableString(row.org_id),\n visibility: normalizeVisibility(row.visibility),\n metadata: parseObject(row.metadata_json),\n };\n}\n\nfunction createReviewId(prefix: string): string {\n return `rev_${prefix}_${globalThis.crypto.randomUUID()}`;\n}\n\nfunction statusId(resourceType: string, resourceId: string): string {\n return `${resourceType}:${resourceId}`;\n}\n\nfunction clampLimit(value: number | undefined): number {\n if (!Number.isFinite(value)) {\n return 200;\n }\n return Math.min(500, Math.max(1, Math.floor(value ?? 200)));\n}\n\nfunction nullableString(value: unknown): string | null {\n return value === null || value === undefined ? null : String(value);\n}\n\nfunction stringifyOptionalJson(value: unknown): string | null {\n return value === null || value === undefined ? null : JSON.stringify(value);\n}\n\nfunction parseOptionalJson(value: unknown): unknown | null {\n if (value === null || value === undefined || value === \"\") {\n return null;\n }\n if (typeof value !== \"string\") {\n return value;\n }\n return JSON.parse(value);\n}\n\nfunction parseObject(value: unknown): Record<string, unknown> | null {\n const parsed = parseOptionalJson(value);\n return typeof parsed === \"object\" && parsed !== null && !Array.isArray(parsed)\n ? (parsed as Record<string, unknown>)\n : null;\n}\n\nfunction parseMentions(value: unknown): ReviewMention[] {\n const parsed = parseOptionalJson(value);\n return Array.isArray(parsed) ? (parsed as ReviewMention[]) : [];\n}\n\nfunction normalizeVisibility(value: unknown): Visibility {\n return value === \"org\" || value === \"public\" ? value : \"private\";\n}\n\nfunction normalizeKind(value: unknown): ReviewCommentKind {\n return value === \"annotation\" ||\n value === \"correction\" ||\n value === \"question\" ||\n value === \"decision\" ||\n value === \"review\"\n ? value\n : \"comment\";\n}\n\nfunction normalizeCommentStatus(value: unknown): ReviewCommentStatus {\n return value === \"resolved\" || value === \"deleted\" ? value : \"open\";\n}\n\nfunction normalizeReviewStatus(value: unknown): ReviewStatus {\n return value === \"in_review\" ||\n value === \"approved\" ||\n value === \"changes_requested\"\n ? value\n : \"draft\";\n}\n\nfunction normalizeActor(value: unknown): ReviewActorKind {\n return value === \"agent\" || value === \"import\" || value === \"system\"\n ? value\n : \"human\";\n}\n\nfunction normalizeResolutionTarget(\n value: unknown,\n): ReviewResolutionTarget | null {\n return value === \"agent\" || value === \"human\" ? value : null;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-chat-plugin.d.ts","sourceRoot":"","sources":["../../src/server/agent-chat-plugin.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"agent-chat-plugin.d.ts","sourceRoot":"","sources":["../../src/server/agent-chat-plugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -5087,6 +5087,11 @@ Non-code requests are still fine on this surface: read data, navigate the UI, su
|
|
|
5087
5087
|
scope: "user",
|
|
5088
5088
|
scopeId: ownerEmail,
|
|
5089
5089
|
});
|
|
5090
|
+
const { clearProviderCredentialAuthFailure } = await import("./credential-provider.js");
|
|
5091
|
+
await clearProviderCredentialAuthFailure({
|
|
5092
|
+
key: secretKey,
|
|
5093
|
+
value: trimmedKey,
|
|
5094
|
+
});
|
|
5090
5095
|
}
|
|
5091
5096
|
catch (err) {
|
|
5092
5097
|
console.error("[agent-chat] save-key persistence failed:", err instanceof Error ? err.message : err);
|